diff --git a/jan/fba.chm b/jan/fba.chm
deleted file mode 100644
index 52961f2c6..000000000
Binary files a/jan/fba.chm and /dev/null differ
diff --git a/jan/fbahelpfilesrc/Table of Contents.hhc b/jan/fbahelpfilesrc/Table of Contents.hhc
deleted file mode 100644
index 17ea92f80..000000000
--- a/jan/fbahelpfilesrc/Table of Contents.hhc
+++ /dev/null
@@ -1,141 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/jan/fbahelpfilesrc/acknowledgments.htm b/jan/fbahelpfilesrc/acknowledgments.htm
deleted file mode 100644
index 2d63050b5..000000000
--- a/jan/fbahelpfilesrc/acknowledgments.htm
+++ /dev/null
@@ -1,36 +0,0 @@
-
-
-
-
-Acknowledgments
-
-
-
-
-
-
-
-
-FB Alpha
-
-
-
-Acknowledgments
-
-The original FBA Team was Jan_Klaassen, LoopMaster, KEV, Mike_Haggar, TrebleWinner (Barry), Ayeye and HyperYagami.
-
-There have also been big contributions from iq_132, Captain CPS-X, JacKc, dink and OopsWare.
-
-Individual acknowledgements are also credited in the whatsnew.html file distributed with FB Alpha.
-
-The current active Team is Barry, KEV, iq_132, JackC and dink.
-
-The following is the original acknowledgements from the old readme.txt;
-
-"Thanks to: Dave, ElSemi, Gangta, OG, Razoola, Logiqx, TRAC, CrashTest, Andrea Mazzoleni, Derek Liauw Kie Fa, Dirk Stevens, Maxim Stepin, the MAME team, Shawn and Craig at XGaming.
-
-Thanks also to everyone who has made suggestions, submitted code, or helped in any other way."
-
-
-
-
diff --git a/jan/fbahelpfilesrc/cheat_format.htm b/jan/fbahelpfilesrc/cheat_format.htm
deleted file mode 100644
index 96594ddab..000000000
--- a/jan/fbahelpfilesrc/cheat_format.htm
+++ /dev/null
@@ -1,55 +0,0 @@
-
-
-
-
-Cheat Format
-
-
-
-
-
-
-
-
-FB Alpha
-
-
-
-Cheat Format
-
-Below is a short description of the FB Alpha cheat file format. Cheat files must be placed in the cheats support file folder, and named according to the short name/name of the zip file containing the ROMs, with the extension being either .INI (e.g. 1941.zip becomes 1941.ini). FBA will present a warning and some additional info whenever it encounters an error in a cheat file, and will stop processing the file at that point.
-
-Cheat File Format
-
-
-
-// Text
-Comment
-
-include "filename"
-Include another cheat file
-
-cheat "cheatname" {
-New cheat called "cheatname" (the curly bracket is optional)
-
- type n
-Specify cheat type (optional, defaults to 0)
- type 0 = apply each frame, save original value and remain active type 1 = one-shot, fire and forget; type 2 = one-shot, save original value and remain active
-
- default n
-Set default option to n (0 <= n <= 95)
-
- 0 "name"
-Text displayed in the cheat dialog when the cheat is disabled
-
- n "name", o, p, q
-Add option n (1 <= n <= 95), called "name" Store byte value q at address p in the address space of CPU o You can specify upto 32 o/p/q groups per option, all must be on the same line
-
-}
-Required if you used a curly bracket above, considered an error otherwise
-
-
-
-
-
-
diff --git a/jan/fbahelpfilesrc/command.htm b/jan/fbahelpfilesrc/command.htm
deleted file mode 100644
index 7e2c6c84e..000000000
--- a/jan/fbahelpfilesrc/command.htm
+++ /dev/null
@@ -1,48 +0,0 @@
-
-
-
-
-Command Line
-
-
-
-
-
-
-
-
-FB Alpha
-
-
-
-Command Line
-
-FB Alpha can be invoked with command line options. When invoked this way, FB Alpha will automatically switch to fullscreen mode when a game is loaded, and the Escape key quits FB Alpha. The options are as follows;
-
-fba <game> [-listinfo|-w|-a|-r <width>x<height>x<depth>]
-
-<game> = The game's romname. You can specify the filename of a savestate or input recording instead.
--w = Run in a window instead of fullscreen.
--a = Use the same resolution as the original arcade game.
--r = Specify a resolution. Depth is optional.
-
-If neither -a nor -r are specified, the default fullscreen resolution is used.
-
-Examples:
-
-
-fba sfa3 -r 800x600x32
-
-fba awesome_sfzch_recording.fr -w
-
-fba vsav2 -a
-
-
-For front-ends, you can also do fba -listinfo , -listinfomdonly , -listinfopceonly , -listinfotg16only , -listinfosgxonly , -listinfosg1000only , -listinfocolecoonly , or -listinfosmsonly , -listinfoggonly , or -listinfomsxonly which will output information about the supported games to
-stdout, and the ROM files they need in the MAME XML format.
-
-You can also do fba -listextrainfo . This will output the following data in a tab-delimited format to stdout; setname, visible size, aspect ratio, hardware code, hardware description, working status, max players, comments.
-
-
-
-
diff --git a/jan/fbahelpfilesrc/dialog_cheats.htm b/jan/fbahelpfilesrc/dialog_cheats.htm
deleted file mode 100644
index 99c975f5c..000000000
--- a/jan/fbahelpfilesrc/dialog_cheats.htm
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
-Cheat Dialog
-
-
-
-
-
-
-
-
-FB Alpha
-
-
-
-Cheat Dialog
-
-If you have cheats for a game in the cheat support file path then you can enable these cheats in this dialog.
-
-FB Alpha will look for cheats in it's own format or the Nebula/Kawaks format. For the FB Alpha format the file should be named after the games short name with an INI file extension, for the Nebula/Kawaks format the file should have the DAT file extension. FB Alpha will also look for cheats in the old MAME format cheat.dat file.
-
-To change the status of a cheat simply select it in the list and then change it in the dropdown. To save your changes and return to the game click OK . To change the cheats back to the default status you can click Default and then click OK to save the changes and return to the game.
-
-
-
-
diff --git a/jan/fbahelpfilesrc/dialog_choose_monitor.htm b/jan/fbahelpfilesrc/dialog_choose_monitor.htm
deleted file mode 100644
index c77092cf3..000000000
--- a/jan/fbahelpfilesrc/dialog_choose_monitor.htm
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
-
-
-Choose Monitor for Full Screen Dialog
-
-
-
-
-
-
-
-
-FB Alpha
-
-
-
-Choose Monitor for Full Screen Dialog
-
-This dialog can be used to choose which monitor to use for running games in full screen. This is useful if you have a multi-monitor setup.
-
-You can select a different monitor for horizontal and vertical games if desired. Simply select the required monitor from the dropdowns and press the OK button.
-
-
-
-
diff --git a/jan/fbahelpfilesrc/dialog_dips.htm b/jan/fbahelpfilesrc/dialog_dips.htm
deleted file mode 100644
index c8f37e576..000000000
--- a/jan/fbahelpfilesrc/dialog_dips.htm
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
-Dip Switch Dialog
-
-
-
-
-
-
-
-
-FB Alpha
-
-
-
-Dip Switch Dialog
-
-Some arcade games used Dip Switches to configure things like difficulty or coinage. This dialog allows you to change these settings for games that had these switches.
-
-To change a setting, simply select it from the list and then make your changes in the dropdown box below. Once you are finished click OK to save your changes. Most games will require a reset for the changes to take effect.
-
-To reset the settings back to the defaults simply click the Defaults button and then press OK to save.
-
-
-
-
diff --git a/jan/fbahelpfilesrc/dialog_game_info.htm b/jan/fbahelpfilesrc/dialog_game_info.htm
deleted file mode 100644
index 3e080d92f..000000000
--- a/jan/fbahelpfilesrc/dialog_game_info.htm
+++ /dev/null
@@ -1,30 +0,0 @@
-
-
-
-
-Game Information Dialog
-
-
-
-
-
-
-
-
-FB Alpha
-
-
-
-Game Information Dialog
-
-This dialog allows you to view various items of information about the highlighted game. This includes driver information, rom/sample information and various details from external support files (images/history.dat entries, etc.)
-
-Simply click on the different tabs to select the information you want to view.
-
-The Rescan Romset button allows you to rescan the indivdual romset for the highlighted game. The Favorite checkbox allows you to add/remove the game from your favorites filter in the Game Selection dialog .
-
-The Close closes the dialog box.
-
-
-
-
diff --git a/jan/fbahelpfilesrc/dialog_game_select.htm b/jan/fbahelpfilesrc/dialog_game_select.htm
deleted file mode 100644
index 2e5ec424d..000000000
--- a/jan/fbahelpfilesrc/dialog_game_select.htm
+++ /dev/null
@@ -1,79 +0,0 @@
-
-
-
-
-Game Select Dialog
-
-
-
-
-
-
-
-
-FB Alpha
-
-
-
-Game Select Dialog
-
-The purpose of this dialog is to choose a game to play. When you click on a game in the list the dialog will display a preview image of the game if you have a PNG file in the folder you have defined as your previews folder with the games short name (the same applies to a screenshot of the games title screen, if a file exists in the titles folder). The info panel under the gamelist will also be refreshed and will display information about the game.
-
-To play a game either double-click on it in the list, or select it and press the Play button.
-
-The game list can be filtered using any of the filters in the dialog. This allows you to filter by Hardware , Favorites , Genre , Family (Game Series), or Board Type . Once you (de)select a filter the game list is automatically refreshed. (De)selecting a parent filter will (de)select all the child filters below it. You can also search using the search box in the dialog. Typing in this box will filter the gamelist based on what you typed.
-
-The games in the list may have status icons next to them. These are;
-
-
-
-
-This game doesn't work.
-
-
-This game wasn't found when the roms were last scanned.
-
-
-Some non-essential roms for this game were not found when the last scan was done.
-
-
-
-
-The following options are available in the Options section of the dialog;
-
-
-
-Show Available
-Filters the gamelist to show games available on your system (ie, that you have the roms for).
-
-Show Unavailable
-Filters the gamelist to show games unavailable on your system (ie, that you don't have the roms for).
-
-Always show clones
-Will expand the gamelist to show clone games without the user having to click the "+" on the parent.
-
-Use zipnames
-Will show the games shortname before the main title.
-
-Latin text only
-Will show only Latin text in the games title.
-
-
-
-There are two buttons with these options. The first is ROMs Dirs... . Clicking this button will bring up the Rom Path Dialog . The second is Scan ROMs . This will rescan your roms so the emulator knows what you have available. If you add games into the Rom paths then click this button to rescan for them.
-
-Under the info panel is some information relating to the number of sets displayed and the number unavailable.
-
-To get information about the roms and/or samples required by a game, select the game in the list and then click the Rom Info button.
-
-If a game has IPS patches available, then the IPS Manager button becomes enabled when you click on the game in the gamelist. Clicking this button will bring up the IPS Manager Dialog . If you configure some patches to apply then the Apply Patches checkbox becomes available. Checking this box will enable the patches to be applied when you click the Play button.
-
-You can view game information, by clicking on the Game Info button. This opens the Game Information Dialog .
-
-You can also right-click on a game in the list to open a context menu. Pressing Play from this menu, will play the game highlighted. View Game Information will open the Game Information Dialog . View in Progetto EMMA will open the games information page on Progetto EMMA (external web link). Favorite will add the game to your Favorites, which are available from the filters.
-
-The dialog is resizable. You can drag any edge or any corner and the dialog controls will move/resize as appropriate. The dialog size is restored on entry and saved when the program is exited.
-
-
-
-
diff --git a/jan/fbahelpfilesrc/dialog_inputs.htm b/jan/fbahelpfilesrc/dialog_inputs.htm
deleted file mode 100644
index 546626f87..000000000
--- a/jan/fbahelpfilesrc/dialog_inputs.htm
+++ /dev/null
@@ -1,32 +0,0 @@
-
-
-
-
-Inputs Dialog
-
-
-
-
-
-
-
-
-FB Alpha
-
-
-
-Inputs Dialog
-
-This dialog is used to define the controls used to control a game. The available inputs are listed. Double click on an input to open up a dialog box that allows you to map the control you want to use for that input.
-
-As well as inputs for the game being emulated, there can also be various extra inputs for Auto-Fire or macros for simulating multiple button presses with one input.
-
-You can also choose from various presets by using the dropdown boxes below the inputs. Simply select the player from the first box, the controller from the second, and the control type from the third. The control type can be Auto-center or Normal . Once you have made your selection click Use preset to change the inputs for the selected game or click Make default to make your selection be the default for all games which have not been currently configured.
-
-You can create presets by clicking the Save preset button. This will save a file with the current input definitions in a hardware specific file. If you are playing a CPS game, the file will be called cps.ini , for Neo-Geo games, the file will be called neogeo.ini , for PGM games the file will be called pgm.ini, and for all other games the file will be called preset.ini .
-
-Controls are first assigned from the games specific ini file. If that isn't found, then the hardware specific ini file is tried (cps.ini , neogeo.ini , pgm.ini ). If this isn't found then the default preset (applied by clicking Make default ) is tried. If this isn't found then the application's default controls are mapped.
-
-
-
-
diff --git a/jan/fbahelpfilesrc/dialog_ips_manager.htm b/jan/fbahelpfilesrc/dialog_ips_manager.htm
deleted file mode 100644
index 38dce53de..000000000
--- a/jan/fbahelpfilesrc/dialog_ips_manager.htm
+++ /dev/null
@@ -1,30 +0,0 @@
-
-
-
-
-IPS Patch Manager Dialog
-
-
-
-
-
-
-
-
-FB Alpha
-
-
-
-IPS Patch Manager Dialog
-
-The IPS Patch Manager allows you to configure IPS patches. IPS patches can be used to change a game, for example, they can enable hidden characters, provide cheat functionality, translations or all sorts of other possibilities.
-
-When you enter the IPS Patch Manager you will see a list of the available patches. These are grouped by their category. If you click on a patch then you will see an image preview of it to the right of the list and a description in the textbox below. To enable patches simply check them and click the OK button. This will save the configuration and you can then use the Apply Patches checkbox in the Game Select Dialog .
-
-You can change the language used to display the patches by choosing it from the dropdown. If there is no data available for your selected language then the reference language will be used.
-
-You can deselect all patches by clicking the Deselect All button.
-
-
-
-
diff --git a/jan/fbahelpfilesrc/dialog_multislot.htm b/jan/fbahelpfilesrc/dialog_multislot.htm
deleted file mode 100644
index 1dd2d5586..000000000
--- a/jan/fbahelpfilesrc/dialog_multislot.htm
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
-Game Select Dialog
-
-
-
-
-
-
-
-
-FB Alpha
-
-
-
-NeoGeo MVS Multislot Game Select Dialog
-
-The purpose of this dialog is to choose which Neo-Geo MVS games to load. There are six slots available in which a game can be loaded. To load a game in a slot, click the relevant Select button. This will open the Game Select Dialog , showing only MVS cartridges, allowing you to choose a game to load in the slot. To clear a game from a slot, click the relevant Clear button.
-
-When you have made your selections, click the OK button to start the MVS Multislot driver with your games loaded. Once you enter a credit, before starting a game you can select which game to play by pressing the select buttons. By default these are mapped to 3 and 4 on your keyboard. Pressing these buttons will cycle through the games you have loaded.
-
-Your slot selections are saved when the dialog is closed.
-
-
-
-
diff --git a/jan/fbahelpfilesrc/dialog_neocdz.htm b/jan/fbahelpfilesrc/dialog_neocdz.htm
deleted file mode 100644
index 86881eb04..000000000
--- a/jan/fbahelpfilesrc/dialog_neocdz.htm
+++ /dev/null
@@ -1,32 +0,0 @@
-
-
-
-
-Neo Geo CDZ Game Select Dialog
-
-
-
-
-
-
-
-
-FB Alpha
-
-
-
-Neo Geo CDZ Game Select Dialog
-
-The purpose of this dialog is to choose a Neo Geo CDZ game to play. When you click on a game in the list the dialog will display images of the games cd covers, if you have PNG files in the folder you have defined as your Neo Geo CDZ Covers folder with the games four digit NGCD-ID code, appended with either -front or -back , eg, 0030-front.png . The info panel under the gamelist will also be refreshed and will display information about the game.
-
-To play a game either double-click on it in the list, or select it and press the Play button.
-
-When you enter the dialog, a scan will take place of the ISO/CUE files in the folder you have defined as the Neo Geo CDZ games folder. If a game is recognised it is added to the dialog list. To force the scan to run again you can click the Scan Games button. You can force the scan to look in sub-directories of the folder you defined by selecting the Scan sub-dirs option. You can also force the scan to look for ISO's only and ignore CUE files by selecting the Scan for ISO only option.
-
-You can use the Directories button to open the Support File Path Dialog to change the folders to use for the games and/or covers.
-
-To view a full-size image of the covers, you can click on a cover image to open the image in a larger dialog box.
-
-
-
-
diff --git a/jan/fbahelpfilesrc/dialog_palette_viewer.htm b/jan/fbahelpfilesrc/dialog_palette_viewer.htm
deleted file mode 100644
index 0dd3adf92..000000000
--- a/jan/fbahelpfilesrc/dialog_palette_viewer.htm
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
-Palette Viewer Dialog
-
-
-
-
-
-
-
-
-FB Alpha
-
-
-
-Palette Viewer Dialog
-
-This dialog allows you to view the games palette. It isn't supported by all drivers, but most do support this feature.
-
-256 palette entries are displayed on screen at once, and the Previous... and Next... buttons move between the entries in mutliples of 256.
-
-The Close closes the dialog box.
-
-
-
-
diff --git a/jan/fbahelpfilesrc/dialog_rom_paths.htm b/jan/fbahelpfilesrc/dialog_rom_paths.htm
deleted file mode 100644
index 4f5a690e2..000000000
--- a/jan/fbahelpfilesrc/dialog_rom_paths.htm
+++ /dev/null
@@ -1,30 +0,0 @@
-
-
-
-
-Rom Path Dialog
-
-
-
-
-
-
-
-
-FB Alpha
-
-
-
-Rom Path Dialog
-
-This dialog allows you to configure the folders that FB Alpha will search for roms. You can configure up to 20 folders to search in. Simply select the folder number from the tabs and then click Browse... to select the folder. Once you have finished click OK and if you have made any changes then FB Alpha will scan your roms.
-
-The last ten folders (numbers 11 to 20) are special supplementary cases. Usually FB Alpha will take the first file for a rom it finds and ignore any in the later folders. Any files placed in the last ten folders will be searched as well as the first file found. So, if you have some roms that require extra files than that found in MAME (the Neo-Geo bios is a good example), then you could put the extra files in ones of these folders.
-
-It is recommended to put the console (Megadrive/PC-Engine/Sega SG-1000/Colecovision/Master System/Game Gear) games in one of these special paths to prevent conflicts. Although, internally, FB Alpha uses an md_ prefix for the Megadrive games shortnames, either a pce_ , tg_ , or sgx_ prefix for PC-Engine games shortnames, cv_ for Colecovision game shortnames, sg1k_ for Sega SG-1000 game shortnames, sms_ for Sega Master System game shortnames, and gg_ for Sega Game Gear game shortnames this prefix should not be applied to the zipfiles the roms are stored in. This means you can point some of the supplementary rom paths at your MESS software list folder(s) for Megadrive, PC-Engine, TurboGrafx 16, SuperGrafx, ColecoVision, Sega SG-1000, Sega Master System or Game Gear and you're done.
-
-DO NOT ASK US WHERE TO FIND ROMS. They are copyrighted and we can't help you.
-
-
-
-
diff --git a/jan/fbahelpfilesrc/dialog_shot_factory.htm b/jan/fbahelpfilesrc/dialog_shot_factory.htm
deleted file mode 100644
index 46700e9e0..000000000
--- a/jan/fbahelpfilesrc/dialog_shot_factory.htm
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
-Shot Factory Dialog
-
-
-
-
-
-
-
-
-FB Alpha
-
-
-
-Shot Factory Dialog
-
-This dialog can be used to enable/disable parts of the games layers and then take a screenshot. This can be useful for sprite capture or similar tasks.
-
-To enable or disable a layer simply check or uncheck it in the list. To take a screenshot click Capture , to advance a frame click Advance Frame . When you are finished click Done to close the dialog.
-
-Not all games support the dialog, and those that do may not have all the layers that are displayed in the dialog.
-
-
-
-
diff --git a/jan/fbahelpfilesrc/dialog_support_path.htm b/jan/fbahelpfilesrc/dialog_support_path.htm
deleted file mode 100644
index 596a83299..000000000
--- a/jan/fbahelpfilesrc/dialog_support_path.htm
+++ /dev/null
@@ -1,103 +0,0 @@
-
-
-
-
-Support File Path Dialog
-
-
-
-
-
-
-
-
-FB Alpha
-
-
-
-Support File Dialog
-
-This dialog allows you to configure the folders to search for support files. Simply select the type of support file you want to configure from the tabs and click Browse... to configure the folder to use for those files. Press OK when you have finished to save the changes.
-
-Most support files are named after a games short name. This is a unique name and can be found in the Game Select Dialog by enabling the Use Zipnames option. For example if you wanted to place a preview file for X-Men vs. Street Fighter you would call it xmvsf.png.
-
-To use the support files they should be placed in the folder which you have configured.
-
-The table below gives an overview of all the support files and how they should be named.
-
-
-
-Previews
-This will display an in-game preview image in several dialog boxes. The files should be named shortgamename.png .
-
-Titles
-This will display an image of the game's title screen in the Game Selection Dialog , and the Game Info Dialog . The files should be named shortgamename.png .
-
-Icons
-This will display an icon for the game's in the Game Selection Dialog . The files should be named shortgamename.ico .
-
-Cheats
-These files provide cheat functionality for the Cheat Dialog . Cheat files can be in one of three formats. The FB Alpha format requires a filename of shortgamename.ini , the Nebula/Kawaks format requires a filename of shortgamename.dat and the old MAME format requires all the cheats in the one cheat.dat file.
-
-High Scores
-You can use this file to save high scores in your games. Place the hiscore.dat file in the folder you configure and enable the Save high scores when supported option from the Misc menu . High scores will only be saved for games that have support for it flagged.
-
-Samples
-Some games require sound samples recorded from the original games in order to recreate the full sound of the original. The samples required by FB Alpha are the same as those required by MAME.
-
-IPS
-This will enable IPS Patches if the patches are placed in this path. See the IPS Manager Dialog for more information.
-
-Neo Geo CDZ Games
-Keep any Neo Geo CDZ games you have in this folder and they will be shown in the Neo Geo CDZ Game Select Dialog .
-
-Neo Geo CDZ Covers
-This will display the cover for Neo Geo CDZ games. See the Neo Geo CDZ Game Select Dialog for more information.
-
-Blend Files
-These files provide alpha blending functionality for the supported games (currently Capcom CPS-1/CPS-2 and Neo Geo). The blend file format requires a filename of shortgamename.bld .
-
-Select Previews
-This will display an image of the game's select screen in the Game Info Dialog . The files should be named shortgamename.png .
-
-Versus Previews
-This will display an image of the game's versus screen in the Game Info Dialog . The files should be named shortgamename.png .
-
-HowTo Previews
-This will display an image of the game's howto screen in the Game Info Dialog . The files should be named shortgamename.png .
-
-Scores Previews
-This will display an image of the game's high score screen in the Game Info Dialog . The files should be named shortgamename.png .
-
-Bosses Previews
-This will display an image of the game's bosses screen in the Game Info Dialog . The files should be named shortgamename.png .
-
-Game Over Previews
-This will display an image of the game's game over screen in the Game Info Dialog . The files should be named shortgamename.png .
-
-Flyers
-This will display an image of the game's flyer in the Game Info Dialog . The files should be named shortgamename.png .
-
-Marquees
-This will display an image of the game's marquee in the Game Info Dialog . The files should be named shortgamename.png .
-
-Control Panels
-This will display an image of the game's control panel in the Game Info Dialog . The files should be named shortgamename.png .
-
-Cabinets
-This will display an image of the game's cabinet in the Game Info Dialog . The files should be named shortgamename.png .
-
-PCBs
-This will display an image of the game's PCB in the Game Info Dialog . The files should be named shortgamename.png .
-
-History.dat
-The location of the history.dat file. This file provides various details of the game in the Game Info Dialog .
-
-EEPROM Saves
-Games that use NVRAM or EEPROMs will save their data in this folder.
-
-
-
-
-
-
diff --git a/jan/fbahelpfilesrc/fba.chm b/jan/fbahelpfilesrc/fba.chm
deleted file mode 100644
index 52961f2c6..000000000
Binary files a/jan/fbahelpfilesrc/fba.chm and /dev/null differ
diff --git a/jan/fbahelpfilesrc/fba.hhk b/jan/fbahelpfilesrc/fba.hhk
deleted file mode 100644
index b3a5f0c9b..000000000
--- a/jan/fbahelpfilesrc/fba.hhk
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
diff --git a/jan/fbahelpfilesrc/fba.hhp b/jan/fbahelpfilesrc/fba.hhp
deleted file mode 100644
index da6a8fcba..000000000
--- a/jan/fbahelpfilesrc/fba.hhp
+++ /dev/null
@@ -1,42 +0,0 @@
-[OPTIONS]
-Compatibility=1.1 or later
-Compiled file=fba.chm
-Contents file=Table of Contents.hhc
-Default topic=intro.htm
-Display compile progress=No
-Index file=fba.hhk
-Language=0x809 English (United Kingdom)
-
-
-[FILES]
-sysreq.htm
-acknowledgments.htm
-cheat_format.htm
-command.htm
-dialog_cheats.htm
-dialog_dips.htm
-dialog_game_select.htm
-dialog_inputs.htm
-dialog_rom_paths.htm
-dialog_shot_factory.htm
-dialog_support_path.htm
-intro.htm
-keys.htm
-localise_app.htm
-menu_audio.htm
-menu_game.htm
-menu_help.htm
-menu_input.htm
-menu_misc.htm
-menu_video.htm
-presets.htm
-dialog_ips_manager.htm
-dialog_multislot.htm
-dialog_neocdz.htm
-localise_gamelist.htm
-dialog_palette_viewer.htm
-dialog_game_info.htm
-dialog_choose_monitor.htm
-
-[INFOTYPES]
-
diff --git a/jan/fbahelpfilesrc/images/misc.bmp b/jan/fbahelpfilesrc/images/misc.bmp
deleted file mode 100644
index 408da009c..000000000
Binary files a/jan/fbahelpfilesrc/images/misc.bmp and /dev/null differ
diff --git a/jan/fbahelpfilesrc/images/tv not found non essential.ico b/jan/fbahelpfilesrc/images/tv not found non essential.ico
deleted file mode 100644
index 367cb47cf..000000000
Binary files a/jan/fbahelpfilesrc/images/tv not found non essential.ico and /dev/null differ
diff --git a/jan/fbahelpfilesrc/images/tv not found.ico b/jan/fbahelpfilesrc/images/tv not found.ico
deleted file mode 100644
index 9cfa60df9..000000000
Binary files a/jan/fbahelpfilesrc/images/tv not found.ico and /dev/null differ
diff --git a/jan/fbahelpfilesrc/images/tv not working.ico b/jan/fbahelpfilesrc/images/tv not working.ico
deleted file mode 100644
index 9149eeba3..000000000
Binary files a/jan/fbahelpfilesrc/images/tv not working.ico and /dev/null differ
diff --git a/jan/fbahelpfilesrc/intro.htm b/jan/fbahelpfilesrc/intro.htm
deleted file mode 100644
index 8b509805d..000000000
--- a/jan/fbahelpfilesrc/intro.htm
+++ /dev/null
@@ -1,51 +0,0 @@
-
-
-
-
-Introducing FB Alpha
-
-
-
-
-
-
-
-
-FB Alpha
-
-
-
-Introducing FB Alpha
-
-FB Alpha is an arcade emulator supporting the following platforms;
-
-
-Capcom CPS-1
-Capcom CPS-2
-Capcom CPS-3
-Cave
-Data East DEC-0, DEC-8 and DECO IC16 based games
-Galaxian based hardware
-Irem M62, M63, M72, M90, M92 and M107 hardware
-Kaneko 16
-Konami
-Neo-Geo
-NMK16
-Pacman based hardware
-PGM
-Psikyo 68EC020 and SH-2 based hardware
-Sega System 1, System 16 (and similar), System 18, X-Board and Y-Board
-Super Kaneko Nova System
-Toaplan 1
-Toaplan 2
-Taito F2, X, Z and others
-Miscellaneous drivers for lots of other hardware
-
-
-FB Alpha also has WIP console/computer drivers for Sega Megadrive/Genesis, ColecoVision, Sega SG-1000, Sega Master System/Game Gear, MSX-1 and also PC-Engine/TurboGrafx 16/SuperGrafx.
-
-FB Alpha can currently be obtained from https://www.fbalpha.com .
-
-
-
-
diff --git a/jan/fbahelpfilesrc/keys.htm b/jan/fbahelpfilesrc/keys.htm
deleted file mode 100644
index f123b01bf..000000000
--- a/jan/fbahelpfilesrc/keys.htm
+++ /dev/null
@@ -1,131 +0,0 @@
-
-
-
-
-Keys
-
-
-
-
-
-
-
-
-FB Alpha
-
-
-
-Keys
-
-
-
-F6
-Open game selection dialog.
-
-CTRL and F6
-Start a game via netplay.
-
-F5
-Open inputs dialog.
-
-CTRL and F5
-Open dip switch dialog.
-
-CTRL and F4
-Exit Game.
-
-ALT and F4
-Exit emulator.
-
-Pause
-Pause the emulation.
-
-F1
-Hold to fast forward emulation.
-
-ALT and Enter
-Switch to fullscreen.
-
-Esc
-Return to windowed mode from fullscreen.
-
-ALT and +
-Volume up.
-
-ALT and -
-Volume down.
-
-Backspace
-Toggle Frames per Second display.
-
-T
-On-screen chat (netplay only)
-
-F7
-Insert or eject a memory card.
-
-CTRL and F7
-Select memory card.
-
-CTRL, SHIFT and F7
-Create a memory card.
-
-CTRL and F9
-Load savestate.
-
-CTRL and F10
-Save savestate.
-
-F8
-Activate previous savestate slot.
-
-F11
-Activate next savestate slot.
-
-F9
-Load savestate from active slot.
-
-F10
-Save savestate to active slot.
-
-Shift and F8
-Undo savestate in active slot.
-
-F12
-Save screenshot.
-
-CTRL and F12
-Open shot factory.
-
-CTRL, SHIFT and F1
-Invoke debugger (debug builds only).
-
-CTRL and F1
-Enable cheats.
-
-CTRL and HOME
-Start New Cheat Search.
-
-CTRL and /
-Cheat value not changed.
-
-CTRL and *
-Cheat value changed.
-
-CTRL and +
-Cheat value increased.
-
-CTRL and -
-Cheat value decreased.
-
-Double-click on game screen
-Enter full screen.
-
-Right-click on game screen
-Show/hide menu bar.
-
-
-
-
-
-
diff --git a/jan/fbahelpfilesrc/localise_app.htm b/jan/fbahelpfilesrc/localise_app.htm
deleted file mode 100644
index 0e4686058..000000000
--- a/jan/fbahelpfilesrc/localise_app.htm
+++ /dev/null
@@ -1,32 +0,0 @@
-
-
-
-
-Localising the Application
-
-
-
-
-
-
-
-
-FB Alpha
-
-
-
-Localising the Application
-
-The application can be localised using templates. To generate a template click on the Misc Menu , then UI Language , Export UI translation template... .
-
-Save the template where you want and then open it in a text editor. Localise the strings by amending them and saving the file.
-
-To enable your localisation, click on the Misc Menu , then UI Language , Select UI Language and then open your template.
-
-To remove an applied template, click on the Misc Menu , then UI Language , Reset UI default Language .
-
-It is also possible to download localisation files from within the program. To do this, click on the Misc Menu , then UI Language , Download UI language . This will open a dialog showing the languages available for download. Once you select a language press the OK button the template will be downloaded and applied.
-
-
-
-
diff --git a/jan/fbahelpfilesrc/localise_gamelist.htm b/jan/fbahelpfilesrc/localise_gamelist.htm
deleted file mode 100644
index 69d1ac073..000000000
--- a/jan/fbahelpfilesrc/localise_gamelist.htm
+++ /dev/null
@@ -1,32 +0,0 @@
-
-
-
-
-Localising the Gamelist
-
-
-
-
-
-
-
-
-FB Alpha
-
-
-
-Localising the Gamelist
-
-The gamelist can be localised using templates. To generate a template click on the Misc Menu , then Gamelist Language , Export gamelist translation template... .
-
-Save the template where you want and then open it in a text editor. The file is a tab-delimited text file, containing the games shortname and longname. Simply localise the longnames and save the file. If you are using multi-byte characters and need to use a different codepage than the system default, then uncomment the codepage line at the top of the file (remove the // ), and change the number to the relevant codepage.
-
-To enable your localisation, click on the Misc Menu , then Gamelist Language , Select gamelist Language and then open your template.
-
-To remove an applied template, click on the Misc Menu , then Gamelist Language , Reset gamelist default Language .
-
-You can use MAME+ LST files for the template. Simply rename the file's extension to glt (eg, if the file is called mame_kr.lst , change it to mame_kr.glt ), and add any necessary codepage definition if required. FB Alpha will ignore any extra text after the first two tab-delimited tokens.
-
-
-
-
diff --git a/jan/fbahelpfilesrc/menu_audio.htm b/jan/fbahelpfilesrc/menu_audio.htm
deleted file mode 100644
index 59850702d..000000000
--- a/jan/fbahelpfilesrc/menu_audio.htm
+++ /dev/null
@@ -1,83 +0,0 @@
-
-
-
-
-Audio Menu
-
-
-
-
-
-
-
-
-FB Alpha
-
-
-
-Audio Menu
-
-
-
-Select plugin
-Select the audio plugin to use.
-
-Plugin options
-Configure the selected plugin (see below).
-
-2-point 1st order sample interpolation
-Enable sample interpolation on some of the APDCM cores.
-
-4-point 3rd order sample interpolation
-Enable higher quality (but slower) sample interpolation on some of the APDCM cores.
-
-Disable FM interpolation
-Disable interpolation on the FM cores.
-
-4-point 3rd order FM interpolation
-Enable sample interpolation on the FM cores.
-
-Sound Logging
-Start or stop logging sound to a file.
-
-Buffer Size
-Set the number of frames to buffer sound for. Most users shouldn't need to change this.
-
-
-
-DirectSound Audio Plugin Menu
-
-
-
-Use Low-pass filter
-Enable a low-pass filter.
-
-Sound Disabled
-Disable sound.
-
-11025Hz, 22050Hz, 44100Hz, 48000Hz Sample Rate
-Set the sound frequency. Higher is better quality but slightly slower.
-
-
-
-XAudio2 Audio Plugin Menu
-
-
-
-Use Low-pass filter
-Enable a low-pass filter.
-
-Use Reverb
-Enable a reverb filter.
-
-Sound Disabled
-Disable sound.
-
-11025Hz, 22050Hz, 44100Hz, 48000Hz Sample Rate
-Set the sound frequency. Higher is better quality but slightly slower.
-
-
-
-
-
-
diff --git a/jan/fbahelpfilesrc/menu_game.htm b/jan/fbahelpfilesrc/menu_game.htm
deleted file mode 100644
index 0eeb407b9..000000000
--- a/jan/fbahelpfilesrc/menu_game.htm
+++ /dev/null
@@ -1,113 +0,0 @@
-
-
-
-
-Game Menu
-
-
-
-
-
-
-
-
-FB Alpha
-
-
-
-Game Menu
-
-
-
-Load Game
-Opens the Game Select Dialog to choose a game to load.
-
-Play via Kaillera
-Opens the Game Select Dialog to choose a game to load for netplay.
-
-Most recent games
-Displays the ten most recent games. Click on one to start that game.
-
-Start Neo Geo Multi-slot
-Opens the NeoGeo MVS Multislot Game Select Dialog .
-
-Load Neo Geo CDZ game
-Opens the NeoGeo CDZ Game Select Dialog .
-
-Select CD Image (ISO/CUE)
-Opens a file select dialog, which allows you to choose and ISO/CUE CD image to use with the Neo Geo CDZ driver.
-
-Start Neo Geo CDZ
-Starts the Neo Geo CDZ emulation, using the current loaded ISO/CUE CD image.
-
-Exit Game
-Closes the current game.
-
-Pause Game
-Pauses the current game.
-
-Adjust CPU speed
-Allows you to over or underclock the games CPU. Only some drivers support this.
-
-Reset CPU speed to 100%
-Turns off any over or underclocking of the games CPU.
-
-Create new memory card
-Creates a new memory card file (only used by the Neo Geo driver).
-
-Select Memory Card
-Allows you to select a memory card file (only used by the Neo Geo driver).
-
-Insert Memory Card
-Inserts the currently selected memory card (only used by the Neo Geo driver).
-
-Eject Memory Card
-Ejects the current memory card (only used by the Neo Geo driver).
-
-Replay Input
-Prompts for an input recording file (.FR), loads the game and plays back the input recording.
-
-Record Input
-Start recording an input recording file (.FR).
-
-Stop Replay/Record
-Stops the current playing back or recording of an input recording.
-
-Load State
-Prompt for a savestate file (.FS) to load from disc.
-
-Save State
-Saves the games state to a savestate file (.FS). This can be used to save your current game for later play.
-
-Activate Previous Slot
-Activates the previous savestate slot.
-
-Activate Next Slot
-Activates the next savestate slot.
-
-Load state from active slot
-Loads the savestate from the current selected slot.
-
-Save state to active slot
-Saves the savestate to the current selected slot.
-
-Undo last state save
-Undoes the last save state in the active slot.
-
-Restore full state on load
-This option will automatically take a savestate when you exit a game and load that state when you load the game.
-
-Record AVI
-Opens the codec selection dialog ready to start recording an AVI file.
-
-Stop recording
-Stops recording an AVI file.
-
-Exit Emulator
-Exits the application.
-
-
-
-
-
-
diff --git a/jan/fbahelpfilesrc/menu_help.htm b/jan/fbahelpfilesrc/menu_help.htm
deleted file mode 100644
index 835a00568..000000000
--- a/jan/fbahelpfilesrc/menu_help.htm
+++ /dev/null
@@ -1,47 +0,0 @@
-
-
-
-
-Help Menu
-
-
-
-
-
-
-
-
-FB Alpha
-
-
-
-Help Menu
-
-
-
-Help
-View this file.
-
-What's New
-View the what's new document.
-
-FB Alpha hompage
-Visit the FB Alpha homepage.
-
-FB Alpha Forums
-Visit the FB Alpha forums.
-
-Neo-Source Forums
-Visit the Neo-Source forums - this forum is active and is the best place to report bugs or discuss FBA.
-
-System Information
-View information about your system.
-
-About FB Alpha
-View the About dialog containing the license and version info.
-
-
-
-
-
-
diff --git a/jan/fbahelpfilesrc/menu_input.htm b/jan/fbahelpfilesrc/menu_input.htm
deleted file mode 100644
index 5d3403de7..000000000
--- a/jan/fbahelpfilesrc/menu_input.htm
+++ /dev/null
@@ -1,38 +0,0 @@
-
-
-
-
-Input Menu
-
-
-
-
-
-
-
-
-FB Alpha
-
-
-
-Input Menu
-
-
-
-Select plugin
-Select the input plugin to use - currently does nothing.
-
-Auto-Fire Rate
-Sets the rate (speed) of auto-fire). Options available are Slow , Medium , Fast and Very Fast .
-
-Map Game Inputs
-Opens the game inputs dialog.
-
-Set dipswitches
-Opens the game dipswitch dialog.
-
-
-
-
-
-
diff --git a/jan/fbahelpfilesrc/menu_misc.htm b/jan/fbahelpfilesrc/menu_misc.htm
deleted file mode 100644
index 2f19b8e89..000000000
--- a/jan/fbahelpfilesrc/menu_misc.htm
+++ /dev/null
@@ -1,131 +0,0 @@
-
-
-
-
-Misc Menu
-
-
-
-
-
-
-
-
-FB Alpha
-
-
-
-Misc Menu
-
-
-
-Auto Pause
-Will automatically pause the emulator if it loses focus or you switch to another window.
-
-Always process keyboard input
-Will process the keyboard input.
-
-Display Mode Indicator
-Will show an indicator telling when the emulator is paused, recording, etc.
-
-Don't change Num Lock status
-Enabling this will stop FB Alpha from changing the Num Lock status when starting or exiting. Enabling this option means that you will manually have to control the Num Lock status if you want to use Hotrod or X-Arcade sticks.
-
-Create support folders at runtime
-Disabling this will prevent FB Alpha creating the support file folders at program start.
-
-Set application thread priority
-Set the applications thread priority. Set it to higher to go faster, or lower to be more co-operative with multi-tasking windows apps.
-
-Save high scores when supported
-Enable this to turn on high score saving. See the Support File Path Dialog section for more information.
-
-Use alpha blend effects when supported
-Enable this to turn on alpha blend effects for supported games. See the Support File Path Dialog section for more information.
-
-Display Gear-Shift Indicator when supported
-Show the current gear on-screen for games that support it. This is usually a L for low gear, and a H for high gear.
-
-AVI Writer Output Size
-Multiplier to scale the resolution when writing an AVI file, options are 1x , 2x , 3x .
-
-Generate dat file
-Generate dat files for use with rom managers. FB Alpha can output dat files in the clrmamepro (xml format). You can choose to ouput a dat file for the arcade games, or a console/computer specific dat file (for Megadrive, PC-Engine, TurboGrafx 16, SuprGrafx, Sega SG-1000, ColecoVision, Sega Master System, Game Gear, or MSX-1).
-
-Generate all dats
-Generate dat files for use with rom managers. FB Alpha can output dat files in the clrmamepro (xml format). This option outputs all dat files to the folder selected.
-
-Configure ROM paths
-Open the Rom Path Dialog .
-
-Configure support file paths
-Open the Support File Path Dialog .
-
-UI Language
-See the Localising the Application section for more information.
-
-Gamelist Language
-See the Localising the Gamelist section for more information.
-
-Enable driver icons display
-Enables game icons in the Game Selection Dialog .
-
-Icon size
-Choose between 16 x 16 , 24 x 24 , or 32 x 32 .
-
-Save Snapshot
-Saves a snapshot in the screenshot folder.
-
-Shot Factory
-Opens the Shot Factory Dialog .
-
-Enable Cheats
-Opens the Cheat Dialog to allow you to apply cheats. This item is only enabled if you have a valid cheat file in the cheat support file folder.
-
-Start New Search
-Will start a new cheat search.
-
-Target value has not changed
-Tell the cheat search that the value you are looking for has not changed.
-
-Target value has changed
-Tell the cheat search that the value you are looking for has changed.
-
-Target value has decreased
-Tell the cheat search that the value you are looking for has decreased.
-
-Target value has increased
-Tell the cheat search that the value you are looking for has increased.
-
-Dump search to file
-Dumps all the remaining addresses and values from a cheat search into a file called cheatsearchdump.txt in the FB Alpha root folder.
-
-Exit Cheat Search
-Exits the cheat search mode.
-
-Palette Viewer
-Opens the Palette Viewer Dialog .
-
-Associate with .fs and .fr files
-Associates .fs and .fr files with windows so that you can open FB Alpha using one of these files from explorer.
-
-Disassociate with .fs and .fr files
-Removes the association with .fs and .fr files from Windows.
-
-Save input mapping now
-Will save the input and dip switch settings for the current game to the games config file.
-
-Auto-save input mapping
-If this is enabled then FB Alpha will automatically save the input and dip switch settings for the current game to the games config file when you close the game.
-
-Save settings to .ini now
-Will save the application settings to the .ini file. This also happens automatically when you close the application.
-
-Reload settings from .ini
-Will reload the application settings from the .ini file.
-
-
-
-
-
-
diff --git a/jan/fbahelpfilesrc/menu_video.htm b/jan/fbahelpfilesrc/menu_video.htm
deleted file mode 100644
index 0be90d5fa..000000000
--- a/jan/fbahelpfilesrc/menu_video.htm
+++ /dev/null
@@ -1,228 +0,0 @@
-
-
-
-
-Video Menu
-
-
-
-
-
-
-
-
-FB Alpha
-
-
-
-Video Menu
-
-
-
-Select blitter
-Select which blitter to use.
-
-Blitter options
-Configure the selected blitter (see below).
-
-Stretch
-Choose between Normal , Full , or Correct Aspect Ratio . The recommended setting is Correct Aspect Ratio to preserve the games original look.
-
-Enable Gamma Correction
-Enables gamma correction.
-
-Darken mid-tones, Lighten mid-tones, Other Gamma value
-Allows you to configure the gamma value to use.
-
-Use video hardware when possible, use video hardware exclusively, use software exclusively
-Tells FB Alpha how to apply the gamma correction. Recommended setting is Use video hardware exclusively unless this gives you problems.
-
-Window size
-Determines the size of the window when not in fullscreen. Choose between Auto , Single Size , Double Size , Triple Size , Quadruple Size , or Maximise .
-
-Toggle fullscreen mode
-Switch to fullscreen.
-
-Auto Switch to Fullscreen after loading
-Enabling this option will automatically switch to fullscreen after you load a game from the Game Select Dialog .
-
-Full Screen Resolution
-Allows you to set the fullscreen resolution to use. This can be configured independently for hoziontal and vertical games. You can select between Arcade (which attempts to use the games native resolution, Single Size , Double Size , Triple Size , Quadruple Size or you can specify a specific resolution to use.
-
-Fullscreen bitdepth
-Allows you to choose between 16-bit , 24-bit and 32-bit colour modes for use in fullscreen.
-
-Choose Fullscreen Monitor
-Opens the Choose Monitor for Full Screen dialog .
-
-Automatically detect aspect ratio
-If this is enabled FB Alpha will automatically attempt to determine the aspect ratio of your monitor.
-
-Normal CRT, Normal LCD, Widescreen CRT, Widescreen LCD aspect ratio
-Select the one that best describes your monitor. This will help to preserve the look of the original game. This option will be selected for you automatically if the Automatically detect aspect ratio item is enabled.
-
-Mirrored vertical alignment
-If enabled will mirror the aspect ratio settings for vertical games.
-
-Rotate vertically aligned games
-If this option is enabled then vertical games will be rotated by FB Alpha. Only disable this if you want to align your monitor vertically to play vertical games.
-
-Force 60hz refresh rate
-This option will force the video to ouput at 60hz. This will help to eliminate tearing but may induce other problems.
-
-Enable Triple Buffering (Fullscreen)
-Use a triple buffer in fullscreen.
-
-Enable VSync (Windowed)
-Enabling this will help to eliminate tearing in Windowed mode but you may see slightly juttering scrolling.
-
-Auto frameskip
-This will skip frames in the video output if necessary to keep the game running at fullspeed. This is only necessary for slower computers but it is recommended to leave it on for all computers.
-
-
-
-Basic (DirectDraw 7) Blitter Menu
-
-
-
-No Effects
-Turns off all effects.
-
-Scanlines
-Will turn on a scanline effect.
-
-Scanlines 50%
-Will turn on an alternative scanline effect.
-
-Rotate scanlines
-If this is enabled then scanlines will be rotated for vertical games.
-
-Force Flip
-Forces hardware flipping for games that require it. This is usually detected as an available feature, but due to DirectDraw being old, the support doesn't usually get detected. This option will force the flipping if a game needs it. This is best used with the System Memory Buffering Method . This option will likely force Windows to disable Aero and revert to basic settings, and is therefore recommended for older computers still using Windows XP only. If you are using a version of Windows newer than XP then you should be using the Enhanced or DirectX 9 blitters.
-
-Buffering Method
-Choose between Autodetect , Video memory , and System memory . The recommended setting is Autodetect unless this causes you problems.
-
-
-
-SoftFX (DirectDraw 7) Blitter Menu
-
-
-
-Filter List
-Choose a graphics filter to apply. These will only work with the colour depths specified.
-
-Force image to SoftFX size
-Will force the video image to the selected filter size.
-
-Buffering Method
-Choose between Autodetect , Video memory , and System memory . The recommended setting is Autodetect unless this causes you problems.
-
-Directly access video memory
-Leave this enabled unless it causes you problems.
-
-
-
-Enhanced (Direct3D 7) Blitter Menu
-
-
-
-Disable all effects
-Turns off all effects.
-
-Enable bi-linear filtering
-Enables bi-linear filtering.
-
-Rotate scanlines and RGB effects
-If this is enabled then scanlines and RGB effects will be rotated for vertical games.
-
-Enable Pre-scale
-Enables pre-scale for use with the SoftFX filters.
-
-Pre-scale using SoftFX
-Turns on prescaling using SoftFX.
-
-SoftFX Algorithm
-Choose a SoftFX filter to apply to the video.
-
-Force image to SoftFX size
-Will force the video image to the selected filter size.
-
-Enable scanlines
-Will turn on a scanline effect.
-
-Set scanline intensity
-Allows you to set the scanline intensity.
-
-Enable phosphor feedback
-Will turn on a phosphor feedback effect.
-
-Set phosphor feedback intensity
-Allows you to set the phosphor feedback intensity.
-
-No Effects, RGB Effects, 3D Projection
-Allows you to turn on RGB Effects , 3D Projection or turn off all RGB and 3D Projection effects.
-
-Auto size scanlined RGB preset
-Enabling this will auto size any scanlined RGB presets.
-
-Manually select RGB preset
-Allows you to select and RGB preset to use.
-
-Set 3D Projection properties
-Allows you to set the 3D Projection Angle and Fishbowl factor.
-
-Force 16-bit emulation
-It is recommended to leave this off, as it will break games that require 32-bit colour depths.
-
-Use DirectX texture managment
-It is recommended to leave this on.
-
-
-
-Experimental (DirectX Graphics 9) Blitter Menu
-
-
-
-Enable point/linear/cubic filtering
-Enable point, linear or cubic filtering.
-
-Cubic filter quality
-Set the quality of the cubic filter.
-
-Enable point/linear/cubic filtering
-Enable point, linear or cubic filtering.
-
-Enable scanlines
-Will turn on a scanline effect.
-
-Set scanline intensity
-Allows you to set the scanline intensity.
-
-Single-pass, Multi-pass, High performance
-See the Experimental Blitter section of System Requirements for details.
-
-
-
-DirectX 9 Alt (DirectX Graphics 9) Blitter Menu
-
-
-
-Enable point/linear/ filtering
-Enable point or linear filtering.
-
-SoftFX Algorithm
-Choose a SoftFX filter to apply to the video.
-
-Hardware vertex processing
-Enable hardware vertex processing.
-
-Motion blur
-Enable motion blur.
-
-
-
-
-
-
-
diff --git a/jan/fbahelpfilesrc/presets.htm b/jan/fbahelpfilesrc/presets.htm
deleted file mode 100644
index 965e98df4..000000000
--- a/jan/fbahelpfilesrc/presets.htm
+++ /dev/null
@@ -1,30 +0,0 @@
-
-
-
-
-Creating Presets
-
-
-
-
-
-
-
-
-FB Alpha
-
-
-
-Creating Input Presets
-
-You can create preset controls that can be listed in the Inputs Dialog for you to select.
-
-To do this you need to create an .INI file in the config\presets folder. An example is included with FB Alpha in the zip file preset-example.zip .
-
-In the .INI file it it is possible to use specific names such as "P1 Low Punch" or generic names such as "P1 Fire 1" . When a game is allocating inputs it will look for specific name first, and then the generic ones.
-
-A good starting point can be take the .INI file for a game, copy it to the config/presets folder and rename it to what you want your preset to be called and then edit that file.
-
-
-
-
diff --git a/jan/fbahelpfilesrc/sysreq.htm b/jan/fbahelpfilesrc/sysreq.htm
deleted file mode 100644
index 22add432c..000000000
--- a/jan/fbahelpfilesrc/sysreq.htm
+++ /dev/null
@@ -1,54 +0,0 @@
-
-
-
-
-System Requirements
-
-
-
-
-
-
-
-
-FB Alpha
-
-
-
-System Requirements
-
-Operating System
-
-You will need at least Windows XP to run FB Alpha. Windows 7 or later is highly recommended. You should have the latest DirectX runtimes installed.
-
-If you are running Windows XP, then you will need to use the separately available Windows XP binary.
-
-CPU & RAM
-
-A CPU capable of running Windows XP or greater should be sufficient for most games. Exact requirements will vary by game and/or your chosen video and audio settings. You shouldn't have any issues with anything that even slightly resembles a modern CPU.
-
-The minimum amount of RAM recommended is 192MB. Most people shouldn't have any problems with RAM these days.
-
-Video
-
-15/16/24/32 BPP displays are supported.
-
-Basic Blitter : DirectDraw7 support is required. The Basic blitter will work with any videocard that supports the minimum requirements.
-
-Enhanced Blitter :DirectDraw7 + Direct3D7 support is required. The Enhanced blitter will not work with every video card available, specifically older Voodoo cards (up Voodoo 3000) will not work.
-
-Experimental Blitter : DirectX Graphics 9 support is required. The Experimental blitter has limited functionality with DirectX 8.1 compatible hardware, but needs DirectX 9 for full functionality. For optimal results, Geforce FX 5900 series or Radeon 9800 series (or faster) graphics cards are required. For these cards, select the appropriate filter version from the Advanced options submenu. For all other compatible cards (e.g. Geforce FX series or Radeon 8500 and higher), select the high-performance option.
-
-DirectX9 Alt Blitter : Same as Experimental Blitter above.
-
-Sound
-
-Any sound hardware supporting DirectSound3 should work. Most people should have no problems.
-
-Input
-
-The keyboard and system mouse will always work. There is preliminary support for additional mice, and devices such as the X Arcade joystick which act as a keyboard are supported. All standard or DirectInput8 compatible joysticks/joypads, and mice should work.
-
-
-
-
diff --git a/jan/makefile b/jan/makefile
deleted file mode 100644
index 920082e1a..000000000
--- a/jan/makefile
+++ /dev/null
@@ -1,101 +0,0 @@
-# Main Makefile for FB Alpha, execute an appropriate system-specific makefile
-
-export
-
-#
-# Declare variables
-#
-
-# Make a special build, pass the quoted text as comment (use FORCE_UPDATE declaration below to force recompilation of resources)
-# SPECIALBUILD = "This text will appear in the property sheet of the .exe file"
-
-
-
-#
-# Flags. Uncomment any of these declarations to enable their function.
-#
-
-# Include Unicode support
-UNICODE = 1
-
-# Use Segoe Fonts (installed by default on Windows Vista and newer)
-USE_SEGOE = 1
-
-# Build A68K ASM 68000 core
-#BUILD_A68K = 1
-
-# Include x86 Assembly routines
-BUILD_X86_ASM = 1
-
-# Build for x64 targets (MinGW64 and MSVC only, this will undefine BUILD_A68K and BUILD_X86_ASM)
-#BUILD_X64_EXE = 1
-
-# Build for Windows XP target (for use with Visual Studio 2012-15)
-#BUILD_VS_XP_TARGET = 1
-
-# Include 7-zip support
-INCLUDE_7Z_SUPPORT = 1
-
-# Include AVI recording support (uses Video For Windows)
-INCLUDE_AVI_RECORDING = 1
-
-# Include Toaplan sound sample hacks for games without MCU dumps
-TOAPLAN_SOUND_SAMPLES_HACK = 1
-
-# Include Files that require C++11 (Killer Instinct, Midway Mortal Kombat style drivers, and associated files) - requires C++11 support
-INCLUDE_CPLUSPLUS11_FILES = 1
-
-# Include symbols and other debug information in the executable
-#SYMBOL = 1
-
-# Include features for debugging drivers
-DEBUG = 1
-
-# Include rom set verifying features (comment this for release builds)
-#ROM_VERIFY = 1
-
-# Force recompilation of files that need it (i.e. use __TIME__, __DATE__, SPECIALBUILD).
-FORCE_UPDATE = 1
-
-# Use the __fastcall calling convention when interfacing with A68K/Musashi/Doze
-FASTCALL = 1
-
-# Compress executable with upx (the DEBUG option ignores this)
-# COMPRESS = 1
-
-# Perl is available
-PERL = 1
-
-# Endianness
-LSB_FIRST = 1
-
-# Include png.h from burner.h
-INCLUDE_LIB_PNGH = 1
-
-
-#
-# execute an appropriate system-specific makefile
-#
-
-mingw345: FORCE
- @$(MAKE) -s -f makefile.mingw GCC345=1
-
-mingw452: FORCE
- @$(MAKE) -s -f makefile.mingw GCC452=1
-
-mingw471: FORCE
- @$(MAKE) -s -f makefile.mingw GCC471=1
-
-mingw510: FORCE
- @$(MAKE) -s -f makefile.mingw GCC510=1
-
-mamemingw: FORCE
- @$(MAKE) -s -f makefile.mamemingw
-
-sdl: FORCE
- @$(MAKE) -s -f makefile.sdl
-
-vc: FORCE
- @$(MAKE) -s -f makefile.vc
-
-FORCE:
\ No newline at end of file
diff --git a/jan/makefile.burn_rules b/jan/makefile.burn_rules
deleted file mode 100644
index 4eab7367f..000000000
--- a/jan/makefile.burn_rules
+++ /dev/null
@@ -1,166 +0,0 @@
-alldir = burn burn/devices burn/snd burn/drv burn/drv/capcom burn/drv/cave burn/drv/coleco burn/drv/cps3 burn/drv/dataeast \
- burn/drv/galaxian burn/drv/irem burn/drv/konami burn/drv/megadrive burn/drv/midway burn/drv/pce burn/drv/pst90s burn/drv/pre90s \
- burn/drv/neogeo burn/drv/pgm burn/drv/psikyo burn/drv/sega burn/drv/sg1000 burn/drv/sms burn/drv/msx burn/drv/snes burn/drv/taito \
- burn/drv/toaplan cpu cpu/a68k cpu/arm cpu/arm7 cpu/h6280 cpu/hd6309 cpu/i8039 cpu/i8051 cpu/konami cpu/m68k cpu/m6502 cpu/m6800 \
- cpu/m6805 cpu/m6809 cpu/nec cpu/pic16c5x cpu/s2650 cpu/tlcs90 cpu/sh2 cpu/tms32010 cpu/upd7725 cpu/upd7810 cpu/v60 cpu/z80
-
-drvobj = d_dodonpachi.o d_donpachi.o d_esprade.o d_feversos.o d_gaia.o d_guwange.o d_hotdogst.o d_korokoro.o d_mazinger.o \
- d_metmqstr.o d_pwrinst2.o d_sailormn.o d_tjumpman.o d_uopoko.o \
- \
- d_cps1.o \
- \
- d_cps2.o \
- \
- d_cps3.o \
- \
- d_actfancr.o d_backfire.o d_boogwing.o d_bwing.o d_cbuster.o d_chanbara.o d_cninja.o d_darkseal.o d_dassault.o d_dblewing.o d_dec0.o \
- d_dec8.o d_dietgogo.o d_funkyjet.o d_karnov.o d_kchamp.o d_lemmings.o d_pktgaldx.o d_rohga.o d_shootout.o d_sidepckt.o d_simpl156.o d_supbtime.o \
- d_tumblep.o d_vaportra.o \
- \
- d_galaxian.o \
- \
- d_m62.o d_m63.o d_m72.o d_m90.o d_m92.o d_m107.o d_vigilant.o \
- \
- d_88games.o d_ajax.o d_aliens.o d_asterix.o d_battlex.o d_battlnts.o d_bishi.o d_bladestl.o d_blockhl.o d_bottom9.o d_chqflag.o d_circusc.o \
- d_contra.o d_crimfght.o d_dbz.o d_finalzr.o d_gberet.o d_gijoe.o d_gbusters.o d_gradius3.o d_gyruss.o d_hcastle.o d_hexion.o d_hyperspt.o \
- d_ironhors.o d_jackal.o d_jailbrek.o d_junofrst.o d_kontest.o d_labyrunr.o d_lethal.o d_mainevt.o d_megazone.o d_mikie.o d_mogura.o d_moo.o \
- d_mystwarr.o d_nemesis.o d_pandoras.o d_parodius.o d_pingpong.o d_pooyan.o d_rocnrope.o d_rockrage.o d_rollerg.o d_scotrsht.o d_shaolins.o \
- d_simpsons.o d_spy.o d_surpratk.o d_thunderx.o d_timeplt.o d_tmnt.o d_tp84.o d_trackfld.o d_tutankhm.o d_twin16.o d_ultraman.o d_vendetta.o \
- d_xexex.o d_xmen.o d_yiear.o \
- \
- d_neogeo.o \
- \
- d_pgm.o \
- \
- d_psikyo.o d_psikyo4.o d_psikyosh.o \
- \
- d_angelkds.o d_appoooh.o d_bankp.o d_dotrikun.o d_hangon.o d_outrun.o d_segae.o d_suprloco.o d_sys1.o d_sys16a.o d_sys16b.o d_sys18.o \
- d_xbrd.o d_ybrd.o d_zaxxon.o \
- \
- d_arkanoid.o d_ashnojoe.o d_asuka.o d_bublbobl.o d_chaknpop.o d_darius2.o d_darkmist.o d_exzisus.o d_flstory.o d_ksayakyu.o d_lkage.o \
- d_minivdr.o d_othunder.o d_retofinv.o d_rollrace.o d_slapshot.o d_superchs.o d_supridr.o d_taitob.o d_taitoh.o d_taitof2.o d_taitof3.o \
- d_taitol.o d_taitomisc.o d_taitox.o d_taitoz.o d_tnzs.o d_wyvernf0.o \
- \
- d_batrider.o d_batsugun.o d_battleg.o d_bbakraid.o d_demonwld.o d_dogyuun.o d_fixeight.o d_ghox.o d_hellfire.o \
- d_kbash.o d_kbash2.o d_mahoudai.o d_outzone.o d_pipibibs.o d_rallybik.o d_samesame.o d_shippumd.o d_slapfght.o \
- d_snowbro2.o d_tekipaki.o d_truxton.o d_truxton2.o d_vfive.o d_vimana.o d_wardner.o d_zerowing.o \
- \
- d_4enraya.o d_1942.o d_1943.o d_aeroboto.o d_alinvade.o d_alpha68k.o d_alpha68k1.o d_alpha68k2.o d_ambush.o d_arabian.o d_armedf.o d_atetris.o d_aztarac.o \
- d_baraduke.o d_bbusters.o d_battlane.o d_bionicc.o d_blktiger.o d_blockout.o d_blueprnt.o d_bogeyman.o d_bombjack.o d_btime.o d_brkthru.o \
- d_cabal.o d_calorie.o d_canyon.o d_capbowl.o d_cclimber.o d_cheekyms.o d_chinagat.o d_citycon.o d_cloak.o d_commando.o d_cybertnk.o \
- d_dacholer.o d_ddragon.o d_djboy.o d_dkong.o d_docastle.o d_dogfgt.o d_drmicro.o d_dynduke.o d_epos.o d_exedexes.o d_fantland.o d_fastfred.o \
- d_firetrap.o d_freekick.o d_funkybee.o d_galaga.o d_galivan.o d_gaplus.o d_gauntlet.o d_ginganin.o d_gng.o d_gunsmoke.o d_higemaru.o d_himesiki.o \
- d_hvyunit.o d_ikki.o d_invaders.o d_jack.o d_jrpacman.o d_kangaroo.o d_kncljoe.o d_kyugo.o d_ladybug.o d_lasso.o d_lastduel.o d_lwings.o d_mainsnk.o \
- d_mappy.o d_marineb.o d_mario.o d_markham.o d_megasys1.o d_meijinsn.o d_metlfrzr.o d_millipede.o d_mirax.o d_mitchell.o d_mole.o d_momoko.o d_mouser.o \
- d_mrdo.o d_mrflea.o d_mrjong.o d_munchmo.o d_mustache.o d_mystston.o d_namcos1.o d_namcos86.o d_ninjakd2.o d_naughtyb.o d_pacland.o d_pacman.o d_pac2650.o \
- d_pengadvb.o d_phoenix.o d_pkunwar.o d_popeye.o d_prehisle.o d_psychic5.o d_pturn.o d_punchout.o d_qbert.o d_quizo.o d_rallyx.o d_renegade.o \
- d_route16.o d_rpunch.o d_safarir.o d_sauro.o d_scregg.o d_seicross.o d_sf.o d_sidearms.o d_skyarmy.o d_skyfox.o d_skykid.o d_snk.o \
- d_snk68.o d_solomon.o d_sonson.o d_srumbler.o d_ssozumo.o d_sub.o d_suna8.o d_tail2nose.o d_tbowl.o d_tecmo.o d_terracre.o d_thedeep.o \
- d_tigeroad.o d_timelimt.o d_toki.o d_toypop.o d_travrusa.o d_tsamurai.o d_twincobr.o d_usgames.o d_vastar.o d_vulgus.o d_wallc.o d_warpwarp.o d_wc90.o \
- d_wc90b.o d_wiz.o d_wrally.o d_wwfsstar.o d_xain.o d_xxmissio.o d_zodiack.o \
- \
- d_1945kiii.o d_aerofgt.o d_airbustr.o d_aquarium.o d_bestleag.o d_bigstrkb.o d_blmbycar.o d_bloodbro.o d_crospang.o d_crshrace.o d_dcon.o \
- d_ddragon3.o d_deniam.o d_diverboy.o d_dooyong.o d_dreamwld.o d_drgnmst.o d_drtomy.o d_egghunt.o d_esd16.o d_f1gp.o d_funybubl.o d_fuukifg2.o \
- d_fuukifg3.o d_gaelco.o d_gaelco2.o d_gaiden.o d_galpanic.o d_galspnbl.o d_gotcha.o d_gumbo.o d_hyperpac.o d_jchan.o d_kaneko16.o d_lordgun.o \
- d_macrossp.o d_mcatadv.o d_metro.o d_midas.o d_mugsmash.o d_mwarr.o d_namcos2.o d_news.o d_nmg5.o d_nmk16.o d_ohmygod.o d_onetwo.o d_pass.o d_pirates.o \
- d_playmark.o d_powerins.o d_pushman.o d_raiden.o d_raiden2.o d_sandscrp.o d_seta.o d_seta2.o d_shadfrce.o d_silkroad.o d_silvmil.o d_speedspn.o \
- d_ssv.o d_suna16.o d_suprnova.o d_taotaido.o d_tecmo16.o d_tecmosys.o d_tetrisp2.o d_tumbleb.o d_unico.o d_vmetal.o d_welltris.o d_wwfwfest.o \
- d_xorworld.o d_yunsun16.o d_yunsung8.o d_zerozone.o \
- \
- d_parent.o \
- \
- d_megadrive.o \
- \
- d_pce.o \
- \
- d_sms.o \
- \
- d_msx.o \
- \
- d_snes.o \
- \
- d_coleco.o \
- \
- d_sg1000.o
-
-ifdef INCLUDE_CPLUSPLUS11_FILES
- drvobj += d_kinst.o d_wunit.o
-endif
-
-depobj := $(drvobj) \
- \
- burn.o burn_gun.o burn_led.o burn_shift.o burn_memory.o burn_pal.o burn_sound.o burn_sound_c.o cheat.o debug_track.o hiscore.o load.o \
- tilemap_generic.o tiles_generic.o timer.o vector.o \
- \
- 6821pia.o 8255ppi.o 8257dma.o c169.o eeprom.o gaelco_crypt.o joyprocess.o nb1414m4.o nb1414m4_8bit.o nmk004.o nmk112.o kaneko_tmap.o mb87078.o \
- mermaid.o namco_c45.o namcoio.o pandora.o resnet.o seibusnd.o sknsspr.o slapstic.o st0020.o t5182.o timekpr.o tms34061.o v3021.o vdc.o tms9928a.o \
- watchdog.o \
- \
- ay8910.o burn_y8950.o burn_ym2151.o burn_ym2203.o burn_ym2413.o burn_ym2608.o burn_ym2610.o burn_ym2612.o \
- burn_ym3526.o burn_ym3812.o burn_ymf278b.o c6280.o dac.o es5506.o es8712.o flt_rc.o fm.o fmopl.o gaelco.o ics2115.o iremga20.o \
- k005289.o k007232.o k051649.o k053260.o k054539.o msm5205.o msm5232.o msm6295.o namco_snd.o c140.o nes_apu.o tms36xx.o phoenixsound.o \
- pleiadssound.o pokey.o rf5c68.o saa1099.o samples.o segapcm.o sn76477.o sn76496.o upd7759.o vlm5030.o x1010.o ym2151.o ym2413.o \
- ymdeltat.o ymf278b.o ymz280b.o \
- \
- arm7_intf.o arm_intf.o h6280_intf.o hd6309_intf.o konami_intf.o m6502_intf.o m6800_intf.o m6805_intf.o m6809_intf.o \
- m68000_intf.o nec_intf.o pic16c5x_intf.o s2650_intf.o tlcs90_intf.o z80_intf.o \
- \
- arm.o arm7.o h6280.o hd6309.o i8039.o mcs51.o konami.o m6502.o m6800.o m6805.o m6809.o nec.o pic16c5x.o s2650.o sh2.o tms32010.o tlcs90.o \
- upd7725.o upd7810.o v25.o v60.o z80.o z80daisy.o \
- \
- cave.o cave_palette.o cave_sprite.o cave_tile.o \
- \
- cps2_crpt.o cps.o cps_config.o cps_draw.o cps_mem.o cps_obj.o cps_pal.o cps_run.o cps_rw.o cps_scr.o cpsr.o cpsrd.o \
- cpst.o ctv.o fcrash_snd.o kabuki.o ps.o ps_m.o ps_z.o qs.o qs_c.o qs_z.o sf2mdt_snd.o \
- \
- cps3run.o cps3snd.o \
- \
- deco16ic.o deco146.o \
- \
- gal_gfx.o gal_run.o gal_sound.o gal_stars.o \
- \
- irem_cpu.o \
- \
- k007342_k007420.o k051316.o k051733.o k051960.o k052109.o k053245.o k053247.o k053250.o k053251.o k053936.o k054000.o \
- k054338.o k055555.o k056832.o konamigx.o konamiic.o timeplt_snd.o \
- \
- neo_decrypt.o neo_palette.o neo_run.o neo_sprite.o neo_text.o neo_upd4990a.o neogeo.o \
- \
- pgm_crypt.o pgm_draw.o pgm_run.o pgm_asic3.o pgm_asic27a_type1.o pgm_asic27a_type2.o pgm_asic27a_type3.o pgm_asic25.o \
- \
- psikyo_palette.o psikyo_sprite.o psikyo_tile.o psikyosh_render.o \
- \
- fd1089.o fd1094.o genesis_vid.o mc8123.o sega_315_5195.o sys16_fd1094.o sys16_gfx.o sys16_run.o \
- \
- cchip.o pc080sn.o pc090oj.o taito.o taito_ic.o taitof3_snd.o taitof3_video.o taito_m68705.o tc0100scn.o tc0110pcr.o tc0140syt.o tc0150rod.o \
- tc0180vcu.o tc0220ioc.o tc0280grd.o tc0360pri.o tc0480scp.o tc0510nio.o tc0640fio.o tnzs_prot.o \
- \
- toa_bcu2.o toa_extratext.o toa_gp9001.o toa_palette.o toaplan1.o toaplan.o \
- \
- megadrive.o \
- \
- pce.o \
- \
- sms.o smspio.o smssystem.o smsvdp.o smsfmintf.o smsrender.o smssound.o smstms.o \
- \
- snes_65816.o snes_io.o snes_main.o snes_ppu.o snes_spc700.o
-
-
-ifdef DEBUG
- depobj += m68kdasm.o
-endif
-
-ifdef BUILD_X86_ASM
- autobj += burn_sound_a.o
-endif
-
-
-ifdef INCLUDE_CPLUSPLUS11_FILES
- alldir += cpu/mips3 cpu/tms34010 cpu/adsp2100
- depobj += ide.o cop0.o cop1.o mips3.o mips3_intf.o dcs2k.o midwayic.o midwunit.o tms34010.o tms34010_optable.o tms34010_intf.o \
- adsp2100.o adsp2100_intf.o
-ifdef BUILD_X64_EXE
- alldir += cpu/mips3/x64
- depobj += mips3_x64.o
-endif
-endif
\ No newline at end of file
diff --git a/jan/makefile.burner_win32_rules b/jan/makefile.burner_win32_rules
deleted file mode 100644
index 5b74fcd30..000000000
--- a/jan/makefile.burner_win32_rules
+++ /dev/null
@@ -1,43 +0,0 @@
-alldir += burner burner/win32 dep/kaillera/client dep/libs/libpng dep/libs/lib7z dep/libs/zlib intf intf/video \
- intf/video/scalers intf/video/win32 intf/audio intf/audio/win32 intf/input intf/input/win32 intf/cd intf/cd/win32 \
- intf/perfcount intf/perfcount/win32 dep/generated
-
-depobj += about.o bzip.o choose_monitor.o cona.o debugger.o drv.o dynhuff.o fba_kaillera.o gameinfo.o image_win32.o inpc.o \
- inpcheat.o inpd.o inpdipsw.o inps.o ips_manager.o localise.o localise_download.o localise_gamelist.o main.o \
- media.o memcard.o menu.o misc_win32.o neocdlist.o neocdsel.o numdial.o paletteviewer.o popup_win32.o progress.o \
- replay.o res.o roms.o run.o scrn.o sel.o sfactd.o splash.o stated.o support_paths.o systeminfo.o wave.o \
- \
- conc.o cong.o dat.o gamc.o gami.o image.o ioapi.o misc.o sshot.o state.o statec.o unzip.o zipfn.o \
- \
- adler32.o compress.o crc32.o deflate.o gzclose.o gzlib.o gzread.o gzwrite.o infback.o inffast.o inflate.o inftrees.o \
- trees.o uncompr.o zutil.o \
- \
- png.o pngerror.o pngget.o pngmem.o pngpread.o pngread.o pngrio.o pngrtran.o pngrutil.o pngset.o pngtrans.o pngwio.o \
- pngwrite.o pngwtran.o pngwutil.o \
- \
- net.o \
- \
- aud_dsp.o aud_interface.o cd_interface.o inp_interface.o interface.o lowpass2.o prf_interface.o vid_interface.o \
- vid_softfx.o vid_support.o \
- \
- 2xpm.o 2xsai.o ddt3x.o epx.o hq2xs.o hq2xs_16.o xbr.o \
- \
- aud_dsound3.o aud_xaudio2.o cd_isowav.o cdsound.o ddraw_core.o dinput_core.o directx9_core.o dsound_core.o \
- inp_dinput.o prf_performance_counter.o vid_d3d.o vid_ddraw.o vid_ddrawfx.o vid_directx9.o vid_directx_support.o
-
-ifdef INCLUDE_7Z_SUPPORT
-depobj += un7z.o \
- \
- 7zArcIn.o 7zBuf.o 7zBuf2.o 7zCrc.o 7zCrcOpt.o 7zDec.o 7zFile.o 7zStream.o Bcj2.o Bra.o Bra86.o BraIA64.o CpuArch.o \
- Delta.o LzmaDec.o Lzma2Dec.o Ppmd7.o Ppmd7Dec.o Sha256.o Xz.o XzCrc64.o XzCrc64Opt.o XzDec.o
-endif
-
-ifdef INCLUDE_AVI_RECORDING
-depobj += avi.o
-endif
-
-autobj += $(depobj)
-
-ifdef BUILD_X86_ASM
-autobj += eagle_fm.o 2xsaimmx.o hq2x32.o hq3x32.o hq4x32.o superscale.o
-endif
\ No newline at end of file
diff --git a/jan/makefile.libretro b/jan/makefile.libretro
deleted file mode 100644
index 6a3cb0f62..000000000
--- a/jan/makefile.libretro
+++ /dev/null
@@ -1,391 +0,0 @@
-DEBUG = 0
-LIBRETRO_OPTIMIZATIONS = 1
-FRONTEND_SUPPORTS_RGB565 = 1
-HAVE_GRIFFIN = 0
-
-ifeq ($(platform),)
-platform = unix
-ifeq ($(shell uname -a),)
- platform = win
-else ifneq ($(findstring Darwin,$(shell uname -a)),)
- platform = osx
-else ifneq ($(findstring MINGW,$(shell uname -a)),)
- platform = win
-endif
-endif
-
-# system platform
-system_platform = unix
-ifeq ($(shell uname -a),)
- system_platform = win
-EXE_EXT=.exe
-else ifneq ($(findstring Darwin,$(shell uname -a)),)
- system_platform = osx
-else ifneq ($(findstring MINGW,$(shell uname -a)),)
- system_platform = win
-endif
-
-
-MAIN_FBA_DIR := src
-FBA_BURN_DIR := $(MAIN_FBA_DIR)/burn
-FBA_BURN_DRIVERS_DIR := $(MAIN_FBA_DIR)/burn/drv
-FBA_BURNER_DIR := $(MAIN_FBA_DIR)/burner
-LIBRETRO_DIR := $(FBA_BURNER_DIR)/libretro
-FBA_CPU_DIR := $(MAIN_FBA_DIR)/cpu
-FBA_LIB_DIR := $(MAIN_FBA_DIR)/dep/libs
-FBA_INTERFACE_DIR := $(MAIN_FBA_DIR)/intf
-FBA_GENERATED_DIR = $(MAIN_FBA_DIR)/dep/generated
-FBA_SCRIPTS_DIR = $(MAIN_FBA_DIR)/dep/scripts
-GRIFFIN_DIR = griffin-libretro
-
-EXTERNAL_ZLIB = 0
-
-ifeq ($(platform), unix)
- TARGET := libretro.so
- fpic := -fPIC
- SHARED := -shared -Wl,-no-undefined -Wl,--version-script=$(LIBRETRO_DIR)/link.T
- ENDIANNESS_DEFINES := -DLSB_FIRST
-else ifeq ($(platform), osx)
- TARGET := libretro.dylib
- fpic := -fPIC
- SHARED := -dynamiclib
- ENDIANNESS_DEFINES := -DLSB_FIRST
-else ifeq ($(platform), ps3)
- TARGET := libretro_ps3.a
- CC = $(CELL_SDK)/host-win32/ppu/bin/ppu-lv2-gcc.exe
- CXX = $(CELL_SDK)/host-win32/ppu/bin/ppu-lv2-g++.exe
- AR = $(CELL_SDK)/host-win32/ppu/bin/ppu-lv2-ar.exe
- ENDIANNESS_DEFINES = -DWORDS_BIGENDIAN
- PLATFORM_DEFINES += -D__CELLOS_LV2__
- EXTERNAL_ZLIB = 1
-else ifeq ($(platform), sncps3)
- TARGET := libretro_ps3.a
- CXX = $(CELL_SDK)/host-win32/sn/bin/ps3ppusnc.exe
- CC = $(CELL_SDK)/host-win32/sn/bin/ps3ppusnc.exe
- AR = $(CELL_SDK)/host-win32/sn/bin/ps3snarl.exe
- ENDIANNESS_DEFINES = -DWORDS_BIGENDIAN
- PLATFORM_DEFINES += -D__CELLOS_LV2__ -DSN_TARGET_PS3
- EXTERNAL_ZLIB = 1
-else ifeq ($(platform), psl1ght)
- TARGET := libretro_psl1ght.a
- CC = $(PS3DEV)/ppu/bin/ppu-gcc$(EXE_EXT)
- CXX = $(PS3DEV)/ppu/bin/ppu-g++$(EXE_EXT)
- AR = $(PS3DEV)/ppu/bin/ppu-ar$(EXE_EXT)
- ENDIANNESS_DEFINES = -DWORDS_BIGENDIAN
- PLATFORM_DEFINES += -D__CELLOS_LV2__
- EXTERNAL_ZLIB = 1
-else ifeq ($(platform), xenon)
- TARGET := libretro_xenon360.a
- CC = xenon-gcc$(EXE_EXT)
- CXX = xenon-g++$(EXE_EXT)
- AR = xenon-ar$(EXE_EXT)
- ENDIANNESS_DEFINES = -DWORDS_BIGENDIAN
- PLATFORM_DEFINES := -D__LIBXENON__ -m32 -D__ppc__
-else ifeq ($(platform), ngc)
- TARGET := libretro_ngc.a
- CC = $(DEVKITPPC)/bin/powerpc-eabi-gcc$(EXE_EXT)
- CXX = $(DEVKITPPC)/bin/powerpc-eabi-g++$(EXE_EXT)
- AR = $(DEVKITPPC)/bin/powerpc-eabi-ar$(EXE_EXT)
- ENDIANNESS_DEFINES = -DWORDS_BIGENDIAN
- PLATFORM_DEFINES := -DGEKKO -DHW_DOL -mrvl -mcpu=750 -meabi -mhard-float
- EXTERNAL_ZLIB = 1
-else ifeq ($(platform), wii)
- TARGET := libretro_wii.a
- CC = $(DEVKITPPC)/bin/powerpc-eabi-gcc$(EXE_EXT)
- CXX = $(DEVKITPPC)/bin/powerpc-eabi-g++$(EXE_EXT)
- AR = $(DEVKITPPC)/bin/powerpc-eabi-ar$(EXE_EXT)
- ENDIANNESS_DEFINES = -DWORDS_BIGENDIAN
- PLATFORM_DEFINES := -DGEKKO -DHW_RVL -mrvl -mcpu=750 -meabi -mhard-float
- EXTERNAL_ZLIB = 1
-else
- TARGET := retro.dll
- CC = gcc
- CXX = g++
- SHARED := -shared -Wl,-no-undefined -Wl,--version-script=$(LIBRETRO_DIR)/link.T
- LDFLAGS += -static-libgcc -static-libstdc++
- ENDIANNESS_DEFINES := -DLSB_FIRST
-endif
-
-CC_SYSTEM = gcc
-CXX_SYSTEM = g++
-
-.PHONY: clean generate-files generate-files-clean clean-objs
-
-all: $(TARGET)
-
-BURN_BLACKLIST := $(FBA_BURNER_DIR)/un7z.cpp \
- $(FBA_CPU_DIR)/arm7/arm7exec.c \
- $(FBA_CPU_DIR)/arm7/arm7core.c \
- $(FBA_CPU_DIR)/hd6309/6309tbl.c \
- $(FBA_CPU_DIR)/hd6309/6309ops.c \
- $(FBA_CPU_DIR)/konami/konamtbl.c \
- $(FBA_CPU_DIR)/konami/konamops.c \
- $(FBA_CPU_DIR)/m68k/m68k_in.c \
- $(FBA_CPU_DIR)/m6800/6800ops.c \
- $(FBA_CPU_DIR)/m6800/6800tbl.c \
- $(FBA_CPU_DIR)/m6805/6805ops.c \
- $(FBA_CPU_DIR)/m6809/6809ops.c \
- $(FBA_CPU_DIR)/m6809/6809tbl.c \
- $(FBA_CPU_DIR)/sh2/mksh2.cpp \
- $(FBA_CPU_DIR)/sh2/mksh2-x86.cpp \
- $(FBA_CPU_DIR)/m68k/m68kmake.c \
- $(FBA_BURNER_DIR)/wave_writer.cpp \
- $(FBA_CPU_DIR)/m68k/m68kdasm.c \
- $(FBA_LIBRETRO_DIR)/menu.cpp \
- $(FBA_CPU_DIR)/sh2/mksh2.cpp \
- $(FBA_BURNER_DIR)/sshot.cpp \
- $(FBA_BURNER_DIR)/conc.cpp \
- $(FBA_BURNER_DIR)/dat.cpp \
- $(FBA_BURNER_DIR)/cong.cpp \
- $(FBA_BURNER_DIR)/image.cpp \
- $(FBA_BURNER_DIR)/misc.cpp \
- $(FBA_CPU_DIR)/h6280/tblh6280.c \
- $(FBA_CPU_DIR)/m6502/t65sc02.c \
- $(FBA_CPU_DIR)/m6502/t65c02.c \
- $(FBA_CPU_DIR)/m6502/tdeco16.c \
- $(FBA_CPU_DIR)/m6502/tn2a03.c \
- $(FBA_CPU_DIR)/m6502/t6502.c \
- $(FBA_CPU_DIR)/nec/v25sfr.c \
- $(FBA_CPU_DIR)/nec/v25instr.c \
- $(FBA_CPU_DIR)/nec/necinstr.c \
- $(FBA_BURN_DIR)/drv/capcom/ctv_make.cpp
-
-#ifeq ($(LIBRETRO_OPTIMIZATIONS), 1)
-#BURN_BLACKLIST += $(FBA_BURN_DIR)/drv/capcom/ctv.cpp
-#endif
-
-ifeq ($(EXTERNAL_ZLIB), 1)
-BURN_BLACKLIST += $(FBA_BURNER_DIR)/unzip.c \
- $(FBA_BURNER_DIR)/ioapi.c
-endif
-
-ifeq ($(HAVE_GRIFFIN), 1)
-GRIFFIN_CXXSRCFILES := $(GRIFFIN_DIR)/cps12.cpp $(GRIFFIN_DIR)/cps3.cpp $(GRIFFIN_DIR)/neogeo.cpp $(GRIFFIN_DIR)/pgm.cpp $(GRIFFIN_DIR)/snes.cpp $(GRIFFIN_DIR)/galaxian.cpp $(GRIFFIN_DIR)/cpu-m68k.cpp
-BURN_BLACKLIST += $(FBA_CPU_DIR)/m68000_intf.cpp
-else
-CPS2_DIR := $(FBA_BURN_DRIVERS_DIR)/capcom
-CPS3_DIR := $(FBA_BURN_DRIVERS_DIR)/cps3
-GALAXIAN_DIR := $(FBA_BURN_DRIVERS_DIR)/galaxian
-NEOGEO_DIR := $(FBA_BURN_DRIVERS_DIR)/neogeo
-PGM_DIR := $(FBA_BURN_DRIVERS_DIR)/pgm
-SNES_DIR := $(FBA_BURN_DRIVERS_DIR)/snes
-M68K_DIR := $(FBA_CPU_DIR)/m68k
-endif
-
-FBA_BURN_DIRS := $(FBA_BURN_DIR) \
- $(FBA_BURN_DIR)/devices \
- $(FBA_BURN_DIR)/snd \
- $(CPS2_DIR) \
- $(FBA_BURN_DRIVERS_DIR)/cave \
- $(CPS3_DIR) \
- $(FBA_BURN_DRIVERS_DIR)/dataeast \
- $(GALAXIAN_DIR) \
- $(FBA_BURN_DRIVERS_DIR)/irem \
- $(FBA_BURN_DRIVERS_DIR)/konami \
- $(FBA_BURN_DRIVERS_DIR)/megadrive \
- $(NEOGEO_DIR) \
- $(FBA_BURN_DRIVERS_DIR)/pce \
- $(PGM_DIR) \
- $(FBA_BURN_DRIVERS_DIR)/pre90s \
- $(FBA_BURN_DRIVERS_DIR)/psikyo \
- $(FBA_BURN_DRIVERS_DIR)/pst90s \
- $(FBA_BURN_DRIVERS_DIR)/sega \
- $(SNES_DIR) \
- $(FBA_BURN_DRIVERS_DIR)/taito \
- $(FBA_BURN_DRIVERS_DIR)/toaplan
-
-FBA_CPU_DIRS := $(FBA_CPU_DIR) \
- $(FBA_CPU_DIR)/arm \
- $(FBA_CPU_DIR)/arm7 \
- $(FBA_CPU_DIR)/h6280 \
- $(FBA_CPU_DIR)/hd6309 \
- $(FBA_CPU_DIR)/i8039 \
- $(FBA_CPU_DIR)/konami \
- $(M68K_DIR) \
- $(FBA_CPU_DIR)/m6502 \
- $(FBA_CPU_DIR)/m6800 \
- $(FBA_CPU_DIR)/m6805 \
- $(FBA_CPU_DIR)/m6809 \
- $(FBA_CPU_DIR)/nec \
- $(FBA_CPU_DIR)/s2650 \
- $(FBA_CPU_DIR)/sh2 \
- $(FBA_CPU_DIR)/z80
-
-FBA_LIB_DIRS := $(FBA_LIB_DIR)/zlib
-
-FBA_SRC_DIRS := $(FBA_BURNER_DIR) $(FBA_BURN_DIRS) $(FBA_CPU_DIRS) $(FBA_BURNER_DIRS)
-
-
-ifeq ($(EXTERNAL_ZLIB), 1)
-FBA_DEFINES += -DEXTERNAL_ZLIB
-else
-FBA_SRC_DIRS += $(FBA_LIB_DIRS)
-endif
-
-FBA_CXXSRCS := $(GRIFFIN_CXXSRCFILES) $(filter-out $(BURN_BLACKLIST),$(foreach dir,$(FBA_SRC_DIRS),$(wildcard $(dir)/*.cpp)))
-FBA_CXXSRCS += $(LIBRETRO_DIR)/libretro.cpp $(LIBRETRO_DIR)/neocdlist.cpp
-FBA_CXXOBJ := $(FBA_CXXSRCS:.cpp=.o)
-FBA_CSRCS := $(filter-out $(BURN_BLACKLIST),$(foreach dir,$(FBA_SRC_DIRS),$(wildcard $(dir)/*.c)))
-FBA_COBJ := $(FBA_CSRCS:.c=.o)
-
-OBJS := $(FBA_COBJ) $(FBA_CXXOBJ)
-
-FBA_DEFINES := -DUSE_SPEEDHACKS -D__LIBRETRO__ \
- -D__LIBRETRO_OPTIMIZATIONS__ \
- $(ENDIANNESS_DEFINES) \
- $(PLATFORM_DEFINES) \
- -DINLINE="static inline" \
- -DSH2_INLINE="static inline"
-
-INCDIRS := -I$(FBA_BURNER_DIR)/win32 \
- -I$(LIBRETRO_DIR) \
- -I$(LIBRETRO_DIR)/tchar \
- -I$(FBA_BURN_DIR) \
- -I$(MAIN_FBA_DIR)/cpu \
- -I$(FBA_BURN_DIR)/snd \
- -I$(FBA_BURN_DIR)/devices \
- -I$(FBA_INTERFACE_DIR) \
- -I$(FBA_INTERFACE_DIR)/input \
- -I$(FBA_INTERFACE_DIR)/cd \
- -I$(FBA_BURNER_DIR) \
- -I$(FBA_CPU_DIR) \
- -I$(FBA_CPU_DIR)/i8039 \
- -I$(FBA_LIB_DIR)/zlib \
- -I$(FBA_BURN_DIR)/drv/capcom \
- -I$(FBA_BURN_DIR)/drv/dataeast \
- -I$(FBA_BURN_DIR)/drv/cave \
- -I$(FBA_BURN_DIR)/drv/neogeo \
- -I$(FBA_BURN_DIR)/drv/psikyo \
- -I$(FBA_BURN_DIR)/drv/sega \
- -I$(FBA_BURN_DIR)/drv/toaplan \
- -I$(FBA_BURN_DIR)/drv/taito \
- -I$(FBA_GENERATED_DIR) \
- -I$(FBA_LIB_DIR)
-
-ifeq ($(LIBRETRO_OPTIMIZATIONS), 1)
-FBA_DEFINES += -D__LIBRETRO_OPTIMIZATIONS__
-endif
-
-ifeq ($(DEBUG), 1)
-CFLAGS += -O0 -g
-CXXFLAGS += -O0 -g
-else
-CFLAGS += -O3 -DNDEBUG
-CXXFLAGS += -O3 -DNDEBUG
-endif
-
-ifeq ($(platform), sncps3)
-WARNINGS_DEFINES =
-else
-WARNINGS_DEFINES = -Wno-write-strings
-C_STD_DEFINES = -std=gnu99
-endif
-
-CFLAGS += $(C_STD_DEFINES) $(fpic) $(WARNINGS_DEFINES) $(FBA_DEFINES)
-CXXFLAGS += $(fpic) $(WARNINGS_DEFINES) $(FBA_DEFINES)
-LDFLAGS += $(fpic)
-
-ifeq ($(FRONTEND_SUPPORTS_RGB565), 1)
-CFLAGS += -DFRONTEND_SUPPORTS_RGB565
-CXXFLAGS += -DFRONTEND_SUPPORTS_RGB565
-endif
-
-ifeq ($(ZLIB_INTERNAL), 0)
-INCDIRS += -I$(FBA_LIB_DIR)
-endif
-
-ifeq ($(LIBRETRO_OPTIMIZATIONS), 1)
-GENERATE_OPTS := -D__LIBRETRO_OPTIMIZATIONS__
-else
-GENERATE_OPTS :=
-endif
-
-PERL = perl$(EXE_EXT)
-M68KMAKE_EXE = m68kmake$(EXE_EXT)
-CTVMAKE_EXE = ctvmake$(EXE_EXT)
-PGM_SPRITE_CREATE_EXE = pgmspritecreate$(EXE_EXT)
-EXE_PREFIX = ./
-
-generate-files-clean:
- rm -rf $(FBA_GENERATED_DIR)/
- rm -rf $(FBA_CPU_DIR)/m68k/m68kopac.c
- rm -rf $(FBA_CPU_DIR)/m68k/m68kopdm.c
- rm -rf $(FBA_CPU_DIR)/m68k/m68kopnz.c
- rm -rf $(FBA_CPU_DIR)/m68k/m68kops.c
- rm -rf $(FBA_CPU_DIR)/m68k/m68kops.h
-
-generate-files:
- @mkdir -p $(FBA_GENERATED_DIR) 2>/dev/null || /bin/true
- @echo "Generating $(FBA_GENERATED_DIR)/driverlist.h..."
- @echo ""
- $(PERL) $(FBA_SCRIPTS_DIR)/gamelist.pl -o $(FBA_GENERATED_DIR)/driverlist.h -l gamelist.txt $(FBA_BURN_DRIVERS_DIR)/capcom $(FBA_BURN_DRIVERS_DIR)/cave $(FBA_BURN_DRIVERS_DIR)/cps3 $(FBA_BURN_DRIVERS_DIR)/dataeast $(FBA_BURN_DRIVERS_DIR)/galaxian $(FBA_BURN_DRIVERS_DIR)/irem $(FBA_BURN_DRIVERS_DIR)/konami $(FBA_BURN_DRIVERS_DIR)/megadrive $(FBA_BURN_DRIVERS_DIR)/neogeo $(FBA_BURN_DRIVERS_DIR)/pce $(FBA_BURN_DRIVERS_DIR)/pgm $(FBA_BURN_DRIVERS_DIR)/pre90s $(FBA_BURN_DRIVERS_DIR)/psikyo $(FBA_BURN_DRIVERS_DIR)/pst90s $(FBA_BURN_DRIVERS_DIR)/sega $(FBA_BURN_DRIVERS_DIR)/snes $(FBA_BURN_DRIVERS_DIR)/taito $(FBA_BURN_DRIVERS_DIR)/toaplan
- @echo ""
- @echo "Generating $(FBA_GENERATED_DIR)/neo_sprite_func.h..."
- @echo ""
- @echo "Generating $(FBA_GENERATED_DIR)/neo_sprite_func_table.h..."
- @echo ""
- $(PERL) $(FBA_SCRIPTS_DIR)/neo_sprite_func.pl -o $(FBA_GENERATED_DIR)/neo_sprite_func.h $(LIBRETRO_OPTIMIZATIONS)
- @echo ""
- @echo "Generating $(FBA_GENERATED_DIR)/psikyo_tile_func.h..."
- @echo ""
- @echo "Generating $(FBA_GENERATED_DIR)/psikyo_tile_func_table.h..."
- @echo ""
- $(PERL) $(FBA_SCRIPTS_DIR)/psikyo_tile_func.pl -o $(FBA_GENERATED_DIR)/psikyo_tile_func.h
- @echo "Generating $(FBA_GENERATED_DIR)/cave_sprite_func.h..."
- @echo ""
- @echo "Generating[ $(FBA_GENERATED_DIR)/cave_tile_func_table.h"
- @echo ""
- $(PERL) $(FBA_SCRIPTS_DIR)/cave_sprite_func.pl -o $(FBA_GENERATED_DIR)/cave_sprite_func.h
- $(PERL) $(FBA_SCRIPTS_DIR)/cave_tile_func.pl -o $(FBA_GENERATED_DIR)/cave_tile_func.h
- @echo ""
- @echo "Generate $(FBA_GENERATED_DIR)/toa_gp9001_func_table.h"
- @echo ""
- $(PERL) $(FBA_SCRIPTS_DIR)/toa_gp9001_func.pl -o $(FBA_GENERATED_DIR)/toa_gp9001_func.h
- $(CXX_SYSTEM) $(GENERATE_OPTS) -o $(PGM_SPRITE_CREATE_EXE) $(FBA_BURN_DRIVERS_DIR)/pgm/pgm_sprite_create.cpp
- @echo ""
- @echo "Generating $(FBA_GENERATED_DIR)/pgm_sprite.h..."
- @echo ""
- $(EXE_PREFIX)$(PGM_SPRITE_CREATE_EXE) > $(FBA_GENERATED_DIR)/pgm_sprite.h
- $(CC_SYSTEM) $(GENERATE_OPTS) -o $(M68KMAKE_EXE) $(FBA_CPU_DIR)/m68k/m68kmake.c
- $(EXE_PREFIX)$(M68KMAKE_EXE) $(FBA_CPU_DIR)/m68k/ $(FBA_CPU_DIR)/m68k/m68k_in.c
- $(CXX_SYSTEM) $(GENERATE_OPTS) -o $(CTVMAKE_EXE) $(FBA_BURN_DRIVERS_DIR)/capcom/ctv_make.cpp
- @echo ""
- @echo "Generating $(FBA_GENERATED_DIR)/ctv.h..."
- @echo ""
- $(EXE_PREFIX)$(CTVMAKE_EXE) > $(FBA_GENERATED_DIR)/ctv.h
-
-$(TARGET): $(OBJS)
- @echo "LD $@"
-ifeq ($(platform), ps3)
- @$(AR) rcs $@ $(OBJS)
-else ifeq ($(platform), sncps3)
- $(AR) rcs $@ $(OBJS)
-else ifeq ($(platform), psl1ght)
- $(AR) rcs $@ $(OBJS)
-else ifeq ($(platform), xenon)
- @$(AR) rcs $@ $(OBJS)
-else ifeq ($(platform), ngc)
- @$(AR) rcs $@ $(OBJS)
-else ifeq ($(platform), wii)
- @$(AR) rcs $@ $(OBJS)
-else
- @$(CXX) -o $@ $(SHARED) $(OBJS) $(LDFLAGS)
-endif
-
-%.o: %.cpp
- @echo "CXX $<"
- @$(CXX) -c -o $@ $< $(CXXFLAGS) $(INCDIRS)
-
-%.o: %.c
- @echo "CC $<"
- @$(CC) -c -o $@ $< $(CFLAGS) $(INCDIRS)
-
-clean-objs:
- rm -f $(OBJS)
-
-clean:
- rm -f $(TARGET)
- rm -f $(OBJS)
- rm -f $(M68KMAKE_EXE)
- rm -f $(PGM_SPRITE_CREATE_EXE)
- rm -f $(CTVMAKE_EXE)
diff --git a/jan/makefile.mamemingw b/jan/makefile.mamemingw
deleted file mode 100644
index 9cddfdab7..000000000
--- a/jan/makefile.mamemingw
+++ /dev/null
@@ -1,666 +0,0 @@
-# Makefile for FBA, for use with GNU make & GCC (MinGW)
-#
-# The first pass makes sure all intermediary targets are present. The second pass updates
-# any targets, if necessary. (Intermediary) targets which have their own unique rules
-# are generated as required.
-
-unexport
-
-#
-# Flags. Uncomment any of these declarations to enable their function.
-#
-
-# Check for changes in header files
-DEPEND = 1
-
-
-
-#
-# Declare variables
-#
-
-# Specify the name of the executable file, without ".exe"
-NAME = fba
-COMPILENAME = 3
-
-ifdef BUILD_X64_EXE
-ifdef BUILD_A68K
-undefine BUILD_A68K
-endif
-ifdef BUILD_X86_ASM
-undefine BUILD_X86_ASM
-endif
-endif
-
-ifndef DEBUG
-undefine BUILD_A68K
-endif
-
-ifndef CPUTYPE
- CPUTYPE = i686
-endif
-
-ifdef BUILD_X86_ASM
- MMX = 1
-else
- MMX = 0
-endif
-
-ifndef BUILD_X86_ASM
- NAME := $(NAME)x
- COMPILENAME := $(COMPILENAME)x
-endif
-ifdef BUILD_X64_EXE
- NAME = fba64
- COMPILENAME = 6
-endif
-ifdef DEBUG
- NAME := $(NAME)d
- COMPILENAME := $(COMPILENAME)d
-endif
-ifdef SYMBOL
- NAME := $(NAME)s
- COMPILENAME := $(COMPILENAME)s
-endif
-ifndef UNICODE
- NAME := $(NAME)a
- COMPILENAME := $(COMPILENAME)a
-endif
-
-ifeq ($(CPUTYPE),i686)
- ppro = ppro
-else
- NAME := $(NAME)$(CPUTYPE)
-endif
-
-
-
-#
-# Specify paths/files
-#
-
-
-objdir = obj/$(COMPILENAME)/
-
-
-srcdir = src/
-
-include makefile.burn_rules
-include makefile.burner_win32_rules
-
-incdir = $(foreach dir,$(alldir),-I$(srcdir)$(dir)) -I$(objdir)dep/generated -I$(srcdir)dep/mingw/include -I$(srcdir)dep/mingw/include/directx9 -I$(srcdir)dep/mingw/include/xaudio2
-
-
-ifdef UNICODE
-# lib = -lunicows
-endif
-
-lib += -luser32 -lgdi32 -lcomdlg32 -lcomctl32 -lshell32 -lwinmm -lshlwapi -ladvapi32 -lsetupapi -lole32 -luuid -lwininet
-
-
-depobj += resource.o \
-
-autdep = $(depobj:.o=.d)
-
-ifdef BUILD_A68K
-a68k.o = $(objdir)cpu/a68k/a68k.o
-endif
-
-app_gnuc.rc = $(srcdir)dep/generated/app_gnuc.rc
-license.rtf = $(srcdir)dep/generated/license.rtf
-driverlist.h = $(srcdir)dep/generated/driverlist.h
-ctv.h = $(srcdir)dep/generated/ctv.h
-toa_gp9001_func.h = $(srcdir)dep/generated/toa_gp9001_func.h
-neo_sprite_func.h = $(srcdir)dep/generated/neo_sprite_func.h
-cave_tile_func.h = $(srcdir)dep/generated/cave_tile_func.h
-cave_sprite_func.h = $(srcdir)dep/generated/cave_sprite_func.h
-psikyo_tile_func.h = $(srcdir)dep/generated/psikyo_tile_func.h
-pgm_sprite.h = $(srcdir)dep/generated/pgm_sprite.h
-build_details.h = $(srcdir)dep/generated/build_details.h
-
-allobj = $(objdir)cpu/m68k/m68kcpu.o $(objdir)cpu/m68k/m68kops.o \
- $(foreach file,$(autobj:.o=.c), \
- $(foreach dir,$(alldir),$(subst $(srcdir),$(objdir), \
- $(firstword $(subst .c,.o,$(wildcard $(srcdir)$(dir)/$(file))))))) \
- $(foreach file,$(autobj:.o=.cpp), \
- $(foreach dir,$(alldir),$(subst $(srcdir),$(objdir), \
- $(firstword $(subst .cpp,.o,$(wildcard $(srcdir)$(dir)/$(file))))))) \
- $(foreach file,$(autobj:.o=.asm), \
- $(foreach dir,$(alldir),$(subst $(srcdir),$(objdir), \
- $(firstword $(subst .asm,.o,$(wildcard $(srcdir)$(dir)/$(file))))))) \
- $(foreach file,$(autobj:.o=.rc), \
- $(foreach dir,$(alldir),$(subst $(srcdir),$(objdir), \
- $(firstword $(subst .rc,.o,$(wildcard $(srcdir)$(dir)/$(file)))))))
-
-ifdef BUILD_A68K
-allobj += $(a68k.o)
-endif
-
-alldep = $(foreach file,$(autobj:.o=.c), \
- $(foreach dir,$(alldir),$(subst $(srcdir),$(objdir), \
- $(firstword $(subst .c,.d,$(wildcard $(srcdir)$(dir)/$(file))))))) \
- $(foreach file,$(autobj:.o=.cpp), \
- $(foreach dir,$(alldir),$(subst $(srcdir),$(objdir), \
- $(firstword $(subst .cpp,.d,$(wildcard $(srcdir)$(dir)/$(file))))))) \
- $(foreach file,$(autobj:.o=.rc), \
- $(foreach dir,$(alldir),$(subst $(srcdir),$(objdir), \
- $(firstword $(subst .rc,.d,$(wildcard $(srcdir)$(dir)/$(file)))))))
-
-#
-#
-# Specify compiler/linker/assembler
-#
-#
-
-CC = gcc
-CXX = g++
-LD = $(CXX)
-AS = nasm
-
-LDFLAGS = -static
-
-CFLAGS = -pipe \
- -std=gnu99 -O1 \
- -mwindows \
- -fforce-addr -finline-limit=1200 -fthread-jumps \
- -fexpensive-optimizations \
- -Wall -Wno-long-long -Wno-sign-compare -Wno-uninitialized -Wno-unused \
- -Wno-sequence-point \
- $(DEF) $(incdir)
-
-CXXFLAGS = -pipe \
- -std=gnu++11 -O1 \
- -mwindows \
- -fforce-addr -finline-limit=1200 -fthread-jumps \
- -fexpensive-optimizations -fcheck-new \
- -Wall -W -pedantic -Wshadow -Wno-long-long -Wno-write-strings \
- -Wunknown-pragmas -Wundef -Wno-conversion -Wno-missing-braces -Wno-multichar \
- -Wuninitialized -Wpointer-arith -Wno-inline -Wno-address -Wno-unused-value \
- -Wno-unused-but-set-variable -Wno-sequence-point -Wno-narrowing -Wno-extra \
- $(DEF) $(incdir)
-
-ifdef BUILD_X64_EXE
- CFLAGS += -m64
- CXXFLAGS += -m64
- LDFLAGS += -m64
-else
- CFLAGS += -m32
- CXXFLAGS += -m32
- LDFLAGS += -m32
-endif
-
-ASFLAGS = -O1 -f coff -w-orphan-labels
-
-# D3DUtils & D3DMath need these
-# DEF = -Dsinf=\(float\)sin -Dcosf=\(float\)cos -Dasinf=\(float\)asin -Dacosf=\(float\)acos -Dsqrtf=\(float\)sqrt
-
- DEF := -DBUILD_WIN32 -DUSE_SPEEDHACKS -DFILENAME=$(NAME) -DMMX=$(MMX)
-
-ifdef UNICODE
- DEF := $(DEF) -D_UNICODE
-endif
-
-ifdef SPECIALBUILD
- DEF := $(DEF) -DSPECIALBUILD=$(SPECIALBUILD)
-endif
-
-ifdef FASTCALL
- DEF := $(DEF) -DFASTCALL
-endif
-
-ifdef DEBUG
- DEF := $(DEF) -DFBA_DEBUG
-endif
-
-ifdef ROM_VERIFY
- DEF := $(DEF) -DROM_VERIFY
-endif
-
-ifdef INCLUDE_7Z_SUPPORT
- DEF := $(DEF) -DINCLUDE_7Z_SUPPORT
-endif
-
-ifdef TOAPLAN_SOUND_SAMPLES_HACK
- DEF := $(DEF) -DTOAPLAN_SOUND_SAMPLES_HACK
-endif
-
-ifdef LSB_FIRST
- DEF := $(DEF) -DLSB_FIRST
-endif
-
-ifdef INCLUDE_LIB_PNGH
- DEF := $(DEF) -DINCLUDE_LIB_PNGH
-endif
-
-ifdef BUILD_A68K
- DEF := $(DEF) -DBUILD_A68K
-endif
-
-ifdef BUILD_X86_ASM
- DEF := $(DEF) -DBUILD_X86_ASM
-endif
-
-ifdef BUILD_X64_EXE
- DEF := $(DEF) -DBUILD_X64_EXE
-ifdef INCLUDE_CPLUSPLUS11_FILES
- DEF := $(DEF) -DXBYAK_NO_OP_NAMES -DMIPS3_X64_DRC
-endif
-endif
-
-ifdef USE_SEGOE
- DEF := $(DEF) -DUSE_SEGOE
-endif
-
-ifdef SYMBOL
-
- CFLAGS += -ggdb3
- ASFLAGS += -g
- DEF := $(DEF) -D_DEBUG
-
-ifdef PROFILE
- CFLAGS += -pg
- CXXFLAGS += -pg
-else
- CFLAGS += -fomit-frame-pointer
- CXXFLAGS += -fomit-frame-pointer
-endif
-
-else
- LDFLAGS += -s
-endif
-
-ifdef BUILD_X86_ASM
- CFLAGS += -mmmx
- CXXFLAGS += -mmmx
-endif
-
-# For zlib
-DEF := $(DEF) -DNO_VIZ -D_LARGEFILE64_SOURCE=0 -D_FILE_OFFSET_BITS=32
-
-# For lib7z
-ifdef INCLUDE_7Z_SUPPORT
-DEF := $(DEF) -D_7ZIP_PPMD_SUPPPORT
-endif
-
-#
-#
-# Specify paths
-#
-#
-
-vpath %.asm $(foreach dir,$(alldir),$(srcdir)$(dir)/ )
-vpath %.cpp $(foreach dir,$(alldir),$(srcdir)$(dir)/ )
-vpath %.c $(foreach dir,$(alldir),$(srcdir)$(dir)/ )
-vpath %.h $(foreach dir,$(alldir),$(srcdir)$(dir)/ )
-vpath %.rc $(foreach dir,$(alldir),$(srcdir)$(dir)/ )
-
-vpath %.o $(foreach dir,$(alldir),$(objdir)$(dir)/ )
-vpath %.d $(foreach dir,$(alldir),$(objdir)$(dir)/ )
-
-#
-#
-# Rules
-#
-#
-
-.PHONY: all init cleandep touch clean
-
-ifeq ($(MAKELEVEL),1)
-ifdef DEPEND
-
-all: init $(autdep) $(autobj)
- @$(MAKE) -f makefile.mamemingw -s GCC471=1
-
-else
-
-all: init $(autobj)
-
- @$(MAKE) -f makefile.mamemingw -s GCC471=1
-
-
-endif
-else
-
-all: $(NAME).exe
-
-endif
-
-#
-#
-# Rule for linking the executable
-#
-#
-
-ifeq ($(MAKELEVEL),2)
-
-$(NAME).exe: $(allobj)
- @echo
- @echo Linking executable... $(NAME).exe
- @$(LD) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(lib)
-
-ifdef DEBUG
-
-# Don't compress when making a debug build
-
-else
-ifdef COMPRESS
- @upx --best $@
-endif
-endif
-endif
-
-ifeq ($(MAKELEVEL),1)
-ifdef FORCE_UPDATE
-$(build_details.h): FORCE
-endif
-endif
-
-#
-# Generate the gamelist
-#
-
-burn.o burn.d: driverlist.h
-
-$(driverlist.h): $(drvobj) $(srcdir)dep/scripts/gamelist.pl
-ifdef PERL
- @$(srcdir)dep/scripts/gamelist.pl -o $@ -l gamelist.txt \
- $(filter %.cpp,$(foreach file,$(drvobj:.o=.cpp),$(foreach dir,$(alldir), \
- $(firstword $(wildcard $(srcdir)$(dir)/$(file))))))
-else
-ifeq ($(MAKELEVEL),2)
- @echo
- @echo Warning: Perl is not available on this system.
- @echo $@ cannot be updated or created!
- @echo
-endif
-endif
-
-#
-# Verify if driverlist.h needs to be updated
-#
-
-#ifeq ($(MAKELEVEL),1)
-#ifdef FORCE_UPDATE
-#$(driverlist.h): FORCE
-#endif
-#endif
-
-
-#
-# Fix the .rc file
-#
-
-resource.o resource.d: $(app_gnuc.rc) string.rc version.rc version.h $(build_details.h)
-
-$(license.rtf): $(srcdir)license.txt $(srcdir)dep/scripts/license2rtf.pl
-
-ifdef PERL
-ifdef USE_SEGOE
- @$(srcdir)dep/scripts/license2rtf.pl $< -o $(srcdir)dep/generated/$(@F:.rc=.rtf) -f 'Segoe UI'
-else
- @$(srcdir)dep/scripts/license2rtf.pl $< -o $(srcdir)dep/generated/$(@F:.rc=.rtf)
-endif
-else
-ifeq ($(MAKELEVEL),2)
- @echo
- @echo Warning: Perl is not available on this system.
- @echo $@ cannot be updated or created!
- @echo
-endif
-endif
-
-$(app_gnuc.rc): app.rc $(license.rc) $(license.rtf) $(srcdir)dep/scripts/fixrc.pl $(srcdir)burner/resource/fba.ico $(srcdir)burner/resource/about.bmp $(srcdir)burner/resource/splash.bmp $(srcdir)burner/resource/misc.bmp
-
-ifdef PERL
- @$(srcdir)dep/scripts/fixrc.pl $< -o $@
-else
-ifeq ($(MAKELEVEL),2)
- @echo
- @echo Warning: Perl is not available on this system.
- @echo $@ cannot be updated or created!
- @echo
-endif
-endif
-
-#
-# Generate some info on the build details
-#
-
-about.o about.d: $(build_details.h)
-
-$(build_details.h): $(srcdir)dep/scripts/build_details.cpp
- $(CXX) -mconsole $(CXXFLAGS) $(LDFLAGS) $< -o $(objdir)/dep/generated/build_details.exe
- obj\\$(COMPILENAME)\\dep\\generated\\build_details.exe >$@
-
-#
-# Compile 68000 cores
-#
-
-# A68K
-
-ifdef BUILD_A68K
-$(a68k.o): fba_make68k.c
- @echo Compiling A68K MC68000 core...
- @$(CC) -mconsole $(CFLAGS) $(LDFLAGS) -DWIN32 -Wno-unused -Wno-conversion -Wno-missing-prototypes \
- -s $< -o $(subst $(srcdir),$(objdir),$($@
-
-#
-# Extra rules for generated header file toa_gp9001_func.h, needed by toa_gp9001.cpp
-#
-
-toa_bcu2.d toa_bcu2.o toa_gp9001.d toa_gp9001.o: $(toa_gp9001_func.h)
-
-$(toa_gp9001_func.h): $(srcdir)dep/scripts/toa_gp9001_func.pl
- @$(srcdir)dep/scripts/toa_gp9001_func.pl -o $(toa_gp9001_func.h)
-
-#
-# Extra rules for generated header file neo_sprite_func.h, needed by neo_sprite.cpp
-#
-
-neo_sprite.d neo_sprite.o: $(neo_sprite_func.h)
-
-$(neo_sprite_func.h): $(srcdir)dep/scripts/neo_sprite_func.pl
- @$(srcdir)dep/scripts/neo_sprite_func.pl -o $(neo_sprite_func.h)
-
-#
-# Extra rules for generated header file cave_tile_func.h, needed by cave_tile.cpp
-#
-
-cave_tile.d cave_tile.o: $(cave_tile_func.h)
-
-$(cave_tile_func.h): $(srcdir)dep/scripts/cave_tile_func.pl
- @$(srcdir)dep/scripts/cave_tile_func.pl -o $(cave_tile_func.h)
-
-#
-# Extra rules for generated header file cave_sprite_func.h, needed by cave_sprite.cpp
-#
-
-cave_sprite.d cave_sprite.o: $(cave_sprite_func.h)
-
-$(cave_sprite_func.h): $(srcdir)dep/scripts/cave_sprite_func.pl
- @$(srcdir)dep/scripts/cave_sprite_func.pl -o $(cave_sprite_func.h)
-
-#
-# Extra rules for generated header file psikyo_tile_func.h / psikyo_sprite_func.h, needed by psikyo_tile.cpp / psikyo_sprite.cpp
-#
-
-psikyo_tile.d psikyo_tile.o psikyosprite.d psikyo_sprite.o: $(psikyo_tile_func.h)
-
-$(psikyo_tile_func.h): $(srcdir)dep/scripts/psikyo_tile_func.pl
- $(srcdir)dep/scripts/psikyo_tile_func.pl -o $(psikyo_tile_func.h)
-
-#
-# Extra rules for generated header file pgm_sprite.h, needed by pgm_draw.cpp
-#
-
-pgm_draw.d pgm_draw.o: $(pgm_sprite.h)
-
-$(pgm_sprite.h): pgm_sprite_create.cpp
- echo Generating $(srcdir)dep/generated/$(@F)...
- $(CC) -mconsole $(CXXFLAGS) $(LDFLAGS) $< -o $(subst $(srcdir),$(objdir),$($@
-
-
-
-ifeq ($(MAKELEVEL),2)
-ifdef DEPEND
-
-include $(alldep)
-
-endif
-endif
-
-#
-# Generic rule for resource files
-#
-
-%.o: %.rc
- @echo Compiling resource file $($(subst $(srcdir),$(objdir),$($(subst $(srcdir),$(objdir),$($(subst $(srcdir),$(objdir),$($@
-
-#
-# Compile 68000 cores
-#
-
-# A68K
-
-ifdef BUILD_A68K
-$(a68k.o): fba_make68k.c
- @echo Compiling A68K MC68000 core...
- @$(CC) -mconsole $(CFLAGS) $(LDFLAGS) -DWIN32 -Wno-unused -Wno-conversion -Wno-missing-prototypes \
- -s $< -o $(subst $(srcdir),$(objdir),$($@
-
-#
-# Extra rules for generated header file toa_gp9001_func.h, needed by toa_gp9001.cpp
-#
-
-toa_bcu2.d toa_bcu2.o toa_gp9001.d toa_gp9001.o: $(toa_gp9001_func.h)
-
-$(toa_gp9001_func.h): $(srcdir)dep/scripts/toa_gp9001_func.pl
- @$(srcdir)dep/scripts/toa_gp9001_func.pl -o $(toa_gp9001_func.h)
-
-#
-# Extra rules for generated header file neo_sprite_func.h, needed by neo_sprite.cpp
-#
-
-neo_sprite.d neo_sprite.o: $(neo_sprite_func.h)
-
-$(neo_sprite_func.h): $(srcdir)dep/scripts/neo_sprite_func.pl
- @$(srcdir)dep/scripts/neo_sprite_func.pl -o $(neo_sprite_func.h)
-
-#
-# Extra rules for generated header file cave_tile_func.h, needed by cave_tile.cpp
-#
-
-cave_tile.d cave_tile.o: $(cave_tile_func.h)
-
-$(cave_tile_func.h): $(srcdir)dep/scripts/cave_tile_func.pl
- @$(srcdir)dep/scripts/cave_tile_func.pl -o $(cave_tile_func.h)
-
-#
-# Extra rules for generated header file cave_sprite_func.h, needed by cave_sprite.cpp
-#
-
-cave_sprite.d cave_sprite.o: $(cave_sprite_func.h)
-
-$(cave_sprite_func.h): $(srcdir)dep/scripts/cave_sprite_func.pl
- @$(srcdir)dep/scripts/cave_sprite_func.pl -o $(cave_sprite_func.h)
-
-#
-# Extra rules for generated header file psikyo_tile_func.h / psikyo_sprite_func.h, needed by psikyo_tile.cpp / psikyo_sprite.cpp
-#
-
-psikyo_tile.d psikyo_tile.o psikyosprite.d psikyo_sprite.o: $(psikyo_tile_func.h)
-
-$(psikyo_tile_func.h): $(srcdir)dep/scripts/psikyo_tile_func.pl
- $(srcdir)dep/scripts/psikyo_tile_func.pl -o $(psikyo_tile_func.h)
-
-#
-# Extra rules for generated header file pgm_sprite.h, needed by pgm_draw.cpp
-#
-
-pgm_draw.d pgm_draw.o: $(pgm_sprite.h)
-
-$(pgm_sprite.h): pgm_sprite_create.cpp
- @echo Generating $(srcdir)dep/generated/$(@F)...
- @$(CC) -mconsole $(CXXFLAGS) $(LDFLAGS) $< \
- -o $(subst $(srcdir),$(objdir),$($@
-
-
-ifeq ($(MAKELEVEL),2)
-ifdef DEPEND
-
-include $(alldep)
-
-endif
-endif
-
-#
-# Generic rule for resource files
-#
-
-%.o: %.rc
- @echo Compiling resource file $($(subst $(srcdir),$(objdir),$($(subst $(srcdir),$(objdir),$($(subst $(srcdir),$(objdir),$($@
-
-#
-# Extra rules for generated header file toa_gp9001_func.h, needed by toa_gp9001.cpp
-#
-
-toa_bcu2.d toa_bcu2.o toa_gp9001.d toa_gp9001.o: $(toa_gp9001_func.h)
-
-$(toa_gp9001_func.h): $(srcdir)dep/scripts/toa_gp9001_func.pl
- @$(srcdir)dep/scripts/toa_gp9001_func.pl -o $(toa_gp9001_func.h)
-
-#
-# Extra rules for generated header file neo_sprite_func.h, needed by neo_sprite.cpp
-#
-
-neo_sprite.d neo_sprite.o: $(neo_sprite_func.h)
-
-$(neo_sprite_func.h): $(srcdir)dep/scripts/neo_sprite_func.pl
- @$(srcdir)dep/scripts/neo_sprite_func.pl -o $(neo_sprite_func.h)
-
-#
-# Extra rules for generated header file cave_tile_func.h, needed by cave_tile.cpp
-#
-
-cave_tile.d cave_tile.o: $(cave_tile_func.h)
-
-$(cave_tile_func.h): $(srcdir)dep/scripts/cave_tile_func.pl
- @perl $(srcdir)dep/scripts/cave_tile_func.pl -o $(cave_tile_func.h)
-
-#
-# Extra rules for generated header file cave_sprite_func.h, needed by cave_sprite.cpp
-#
-
-cave_sprite.d cave_sprite.o: $(cave_sprite_func.h)
-
-$(cave_sprite_func.h): $(srcdir)dep/scripts/cave_sprite_func.pl
- @perl $(srcdir)dep/scripts/cave_sprite_func.pl -o $(cave_sprite_func.h)
-
-#
-# Extra rules for generated header file psikyo_tile_func.h / psikyo_sprite_func.h, needed by psikyo_tile.cpp / psikyo_sprite.cpp
-#
-
-psikyo_tile.d psikyo_tile.o psikyosprite.d psikyo_sprite.o: $(psikyo_tile_func.h)
-
-$(psikyo_tile_func.h): $(srcdir)dep/scripts/psikyo_tile_func.pl
- @perl $(srcdir)dep/scripts/psikyo_tile_func.pl -o $(psikyo_tile_func.h)
-
-#
-# Extra rules for generated header file pgm_sprite.h, needed by pgm_draw.cpp
-#
-
-pgm_draw.d pgm_draw.o: $(pgm_sprite.h)
-
-$(pgm_sprite.h): pgm_sprite_create.cpp
- @echo Generating $(srcdir)dep/generated/$(@F)...
- @$(HOSTCXX) $(LDFLAGS) $< -o $(objdir)dep/generated/pgm_sprite_create
- @$(objdir)dep/generated/pgm_sprite_create >$@
-
-ifeq ($(MAKELEVEL),2)
-ifdef DEPEND
-
-include $(alldep)
-
-endif
-endif
-
-#
-# Generic rule for resource files
-#
-
-%.o: %.rc
- @echo Compiling resource file $($(subst $(srcdir),$(objdir),$($(subst $(srcdir),$(objdir),$($(subst $(srcdir),$(objdir),$($@
-
-#
-# Compile 68000 cores
-#
-
-# A68K
-
-ifdef BUILD_A68K
-$(a68k.o): fba_make68k.c
- echo "Compiling A68K MC68000 core... "
- $(CC) $(CFLAGS) -DWIN32 $< /Fo$(subst $(srcdir),$(objdir),$($@
-
-#
-# Extra rules for generated header file toa_gp9001_func.h, needed by toa_gp9001.cpp
-#
-
-toa_bcu2.o toa_gp9001.o: $(toa_gp9001_func.h)
-
-$(toa_gp9001_func.h): $(srcdir)dep/scripts/toa_gp9001_func.pl
- $(srcdir)dep/scripts/toa_gp9001_func.pl -o $(toa_gp9001_func.h)
-
-#
-# Extra rules for generated header file neo_sprite_func.h, needed by neo_sprite.cpp
-#
-
-neo_sprite.o: $(neo_sprite_func.h)
-
-$(neo_sprite_func.h): $(srcdir)dep/scripts/neo_sprite_func.pl
- $(srcdir)dep/scripts/neo_sprite_func.pl -o $(neo_sprite_func.h)
-
-#
-# Extra rules for generated header file cave_tile_func.h, needed by cave_tile.cpp
-#
-
-cave_tile.o: $(cave_tile_func.h)
-
-$(cave_tile_func.h): $(srcdir)dep/scripts/cave_tile_func.pl
- $(srcdir)dep/scripts/cave_tile_func.pl -o $(cave_tile_func.h)
-
-#
-# Extra rules for generated header file cave_sprite_func.h, needed by cave_sprite.cpp
-#
-
-cave_sprite.o: $(cave_sprite_func.h)
-
-$(cave_sprite_func.h): $(srcdir)dep/scripts/cave_sprite_func.pl
- $(srcdir)dep/scripts/cave_sprite_func.pl -o $(cave_sprite_func.h)
-
-#
-# Extra rules for generated header file psikyo_tile_func.h / psikyo_sprite_func.h, needed by psikyo_tile.cpp / psikyo_sprite.cpp
-#
-
-psikyo_tile.o psikyo_sprite.o: $(psikyo_tile_func.h)
-
-$(psikyo_tile_func.h): $(srcdir)dep/scripts/psikyo_tile_func.pl
- $(srcdir)dep/scripts/psikyo_tile_func.pl -o $(psikyo_tile_func.h)
-
-#
-# Extra rules for generated header file pgm_sprite.h, needed by pgm_draw.cpp
-#
-
-pgm_draw.d pgm_draw.o: $(pgm_sprite.h)
-
-$(pgm_sprite.h): pgm_sprite_create.cpp
- @echo Generating... $(srcdir)dep/generated/$(@F)
- $(CC) $(CXXFLAGS) $< /Fo$(subst $(srcdir),$(objdir),$($@
-
-#
-# Generic rule for resource files
-#
-
-%.res: %.rc
- @echo Compiling resource file... $( $$CTV_HEADER.target; \
- rm ctv_make
-
-#-------------------------------------------------------------------------------
-# perl scripts
-#-------------------------------------------------------------------------------
-
-# cave_sprite_func.h
-CAVE_SPRFUNC_HEADER.depends = GENERATED
-CAVE_SPRFUNC_HEADER.target = $$GEN/cave_sprite_func.h
-CAVE_SPRFUNC_HEADER.commands = \
- @echo "Generating cave_sprite_func.h"; \
- perl $$SCRIPTS/cave_sprite_func.pl -o $$CAVE_SPRFUNC_HEADER.target;
-
-# cave_tile_func.h
-CAVE_TILEFUNC_HEADER.depends = GENERATED
-CAVE_TILEFUNC_HEADER.target = $$GEN/cave_tile_func.h
-CAVE_TILEFUNC_HEADER.commands = \
- @echo "Generating cave_tile_func.h"; \
- perl $$SCRIPTS/cave_tile_func.pl -o $$CAVE_TILEFUNC_HEADER.target;
-
-# neo_sprite_func.h
-NEO_SPRFUNC_HEADER.depends = GENERATED
-NEO_SPRFUNC_HEADER.target = $$GEN/neo_sprite_func.h
-NEO_SPRFUNC_HEADER.commands = \
- @echo "Generating neo_sprite_func.h"; \
- perl $$SCRIPTS/neo_sprite_func.pl -o $$NEO_SPRFUNC_HEADER.target;
-
-# psikyo_tile_func.h
-PSIKYO_TILEFUNC_HEADER.depends = GENERATED
-PSIKYO_TILEFUNC_HEADER.target = $$GEN/psikyo_tile_func.h
-PSIKYO_TILEFUNC_HEADER.commands = \
- @echo "Generating psikyo_tile_func.h"; \
- perl $$SCRIPTS/psikyo_tile_func.pl -o $$PSIKYO_TILEFUNC_HEADER.target;
-
-# toa_gp9001_func
-TOA_GP9001_FUNC_HEADER.depends = GENERATED
-TOA_GP9001_FUNC_HEADER.target = $$GEN/toa_gp9001_func.h
-TOA_GP9001_FUNC_HEADER.commands = \
- @echo "Generating toa_gp9001_func.h"; \
- perl $$SCRIPTS/toa_gp9001_func.pl -o $$TOA_GP9001_FUNC_HEADER.target;
-
-#-------------------------------------------------------------------------------
-# pgm_sprite.h
-#-------------------------------------------------------------------------------
-PGM_SPRITE_CREATE.depends = GENERATED
-PGM_SPRITE_CREATE.target = $$GEN/pgm_sprite_create
-PGM_SPRITE_CREATE.commands =\
- @echo "Compiling pgm_sprite_create.cpp"; \
- $$QMAKE_CXX $$SRC/burn/drv/pgm/pgm_sprite_create.cpp -o $$PGM_SPRITE_CREATE.target;
-
-PGM_SPRITE_HEADER.depends = PGM_SPRITE_CREATE
-PGM_SPRITE_HEADER.target = $$GEN/pgm_sprite.h
-PGM_SPRITE_HEADER.commands =\
- @echo "Generating pgm_sprite.h"; \
- $$PGM_SPRITE_CREATE.target > $$PGM_SPRITE_HEADER.target
-
-
-
-#-------------------------------------------------------------------------------
-# Musashi68k
-#-------------------------------------------------------------------------------
-M68K_MAKE.target = $$GEN/m68kmake
-M68K_MAKE.depends = $$SRC/cpu/m68k/m68kmake.c GENERATED
-M68K_MAKE.commands = \
- @echo "Compiling Musashi MC680x0 core: m68kmake.c..."; \
- $$QMAKE_CC $$SRC/cpu/m68k/m68kmake.c -I$$SRC/burn -o $$M68K_MAKE.target; \
- $$M68K_MAKE.target $$GEN/ $$SRC/cpu/m68k/m68k_in.c;
-
-# objects
-
-M68K_OPS.target = $$GEN/m68kops.o
-M68K_OPS.depends = M68K_MAKE
-M68K_OPS.commands = \
- @echo "Compiling Musashi MC680x0 core: m68kops.c..."; \
- $$QMAKE_CC $$QMAKE_CFLAGS -I$$SRC/cpu/m68k -I$$SRC/burn $$GEN/m68kops.c -c -o $$M68K_OPS.target;
-
-M68K_OPS_HEADER.target = $$GEN/m68kops.h
-M68K_OPS_HEADER.depends = M68K_MAKE
-M68K_OPS_HEADER.commands = \
- $$M68K_MAKE.target $$GEN/ $$SRC/cpu/m68k/m68k_in.c;
-
-M68K_LIB.target = $$GEN/libm68kops.o
-M68K_LIB.depends = M68K_MAKE M68K_OPS M68K_OPS_HEADER
-M68K_LIB.commands = \
- @echo "Partially linking Musashi MC680x0 core: libm68kops.o..."; \
- $$FBA_LD -r $$M68K_OPS.target -o $$M68K_LIB.target
-
-
-OBJECTS += $$M68K_LIB.target
-
-#-------------------------------------------------------------------------------
-# Gamelist
-#-------------------------------------------------------------------------------
-DRIVERLIST.depends = GENERATED
-DRIVERLIST.target = $$GEN/driverlist.h
-
-DRIVERLIST_PATHS =
-$$DRV_SMS:DRIVERLIST_PATHS += $$SRC/burn/drv/sms
-$$DRV_PCE:DRIVERLIST_PATHS += $$SRC/burn/drv/pce
-$$DRV_PGM:DRIVERLIST_PATHS += $$SRC/burn/drv/pgm
-$$DRV_CAVE:DRIVERLIST_PATHS += $$SRC/burn/drv/cave
-$$DRV_CPS3:DRIVERLIST_PATHS += $$SRC/burn/drv/cps3
-$$DRV_IREM:DRIVERLIST_PATHS += $$SRC/burn/drv/irem
-$$DRV_SEGA:DRIVERLIST_PATHS += $$SRC/burn/drv/sega
-$$DRV_SNES:DRIVERLIST_PATHS += $$SRC/burn/drv/snes
-$$DRV_TAITO:DRIVERLIST_PATHS += $$SRC/burn/drv/taito
-$$DRV_CAPCOM:DRIVERLIST_PATHS += $$SRC/burn/drv/capcom
-$$DRV_NEOGEO:DRIVERLIST_PATHS += $$SRC/burn/drv/neogeo
-$$DRV_KONAMI:DRIVERLIST_PATHS += $$SRC/burn/drv/konami
-$$DRV_PRE90S:DRIVERLIST_PATHS += $$SRC/burn/drv/pre90s
-$$DRV_PST90S:DRIVERLIST_PATHS += $$SRC/burn/drv/pst90s
-$$DRV_PSIKYO:DRIVERLIST_PATHS += $$SRC/burn/drv/psikyo
-$$DRV_TOAPLAN:DRIVERLIST_PATHS += $$SRC/burn/drv/toaplan
-$$DRV_DATAEAST:DRIVERLIST_PATHS += $$SRC/burn/drv/dataeast
-$$DRV_GALAXIAN:DRIVERLIST_PATHS += $$SRC/burn/drv/galaxian
-$$DRV_MEGADRIVE:DRIVERLIST_PATHS += $$SRC/burn/drv/megadrive
-$$DRV_MIDWAY:DRIVERLIST_PATHS += $$SRC/burn/drv/midway
-
-DRIVERLIST.commands = \
- @echo "Generating driverlist.h"; \
- perl $$SCRIPTS/gamelist.pl -o $$DRIVERLIST.target $$DRIVERLIST_PATHS;
-
-#===============================================================================
-# OPENGL DEPS
-#===============================================================================
-
-LINUX_VIDEO_GLX = true
-MACX_VIDEO_CGL = true
-
-linux {
-
- $${LINUX_VIDEO_GLX} {
- LIBS += -lX11 -lXext -lGLEW -lGL
- }
-}
-
-macx {
-}
-
-
-#-------------------------------------------------------------------------------
-#-------------------------------------------------------------------------------
-QMAKE_EXTRA_TARGETS += \
- GENERATED \
- CTV_HEADER \
- CAVE_SPRFUNC_HEADER \
- CAVE_TILEFUNC_HEADER \
- NEO_SPRFUNC_HEADER \
- PSIKYO_TILEFUNC_HEADER \
- PGM_SPRITE_CREATE \
- PGM_SPRITE_HEADER \
- TOA_GP9001_FUNC_HEADER \
- DRIVERLIST \
- M68K_MAKE \
- M68K_OPAC \
- M68K_OPDM \
- M68K_OPNZ \
- M68K_OPS \
- M68K_OPS_HEADER \
- M68K_LIB
-
-PRE_TARGETDEPS += \
- $$CTV_HEADER.target \
- $$CAVE_SPRFUNC_HEADER.target \
- $$CAVE_TILEFUNC_HEADER.target \
- $$NEO_SPRFUNC_HEADER.target \
- $$PSIKYO_TILEFUNC_HEADER.target \
- $$PGM_SPRITE_HEADER.target \
- $$TOA_GP9001_FUNC_HEADER.target \
- $$DRIVERLIST.target \
- $$M68K_LIB.target \
-
-LIBS += -lSDL
-linux:LIBS += -lpulse-simple
-
-QMAKE_CLEAN += $$GEN/*
-#===============================================================================
-# CAPCOM DRIVERS
-#===============================================================================
-$$DRV_CAPCOM {
- message("Capcom drivers enabled")
-
- HEADERS += $$files(../../src/burn/drv/capcom/*.h)
- SOURCES += $$files(../../src/burn/drv/capcom/*.cpp)
- SOURCES -= ../../src/burn/drv/capcom/ctv_make.cpp
-}
-
-#===============================================================================
-# CAVE DRIVERS
-#===============================================================================
-$$DRV_CAVE {
- message("Cave drivers enabled")
- HEADERS += $$files(../../src/burn/drv/cave/*.h)
- SOURCES += $$files(../../src/burn/drv/cave/*.cpp)
-}
-
-#===============================================================================
-# CPS3 DRIVERS
-#===============================================================================
-$$DRV_CPS3 {
- message("CPS3 drivers enabled")
-
- HEADERS += $$files(../../src/burn/drv/cps3/*.h)
- SOURCES += $$files(../../src/burn/drv/cps3/*.cpp)
-}
-
-#===============================================================================
-# DATAEAST DRIVERS
-#===============================================================================
-$$DRV_DATAEAST {
- message("Dataeast drivers enabled")
-
- HEADERS += $$files(../../src/burn/drv/dataeast/*.h)
- SOURCES += $$files(../../src/burn/drv/dataeast/*.cpp)
-}
-
-#===============================================================================
-# GALAXIAN DRIVERS
-#===============================================================================
-$$DRV_GALAXIAN {
- message("Galaxian drivers enabled")
-
- HEADERS += $$files(../../src/burn/drv/galaxian/*.h)
- SOURCES += $$files(../../src/burn/drv/galaxian/*.cpp)
-}
-
-#===============================================================================
-# IREM DRIVERS
-#===============================================================================
-$$DRV_IREM {
- message("Irem drivers enabled")
-
- HEADERS += $$files(../../src/burn/drv/irem/*.h)
- SOURCES += $$files(../../src/burn/drv/irem/*.cpp)
-}
-
-#===============================================================================
-# KONAMI DRIVERS
-#===============================================================================
-$$DRV_KONAMI {
- message("Konami drivers enabled")
-
- HEADERS += $$files(../../src/burn/drv/konami/*.h)
- SOURCES += $$files(../../src/burn/drv/konami/*.cpp)
-}
-
-#===============================================================================
-# MEGADRIVE DRIVERS
-#===============================================================================
-$$DRV_MEGADRIVE {
- message("Megadrive drivers enabled")
-
- HEADERS += $$files(../../src/burn/drv/megadrive/*.h)
- SOURCES += $$files(../../src/burn/drv/megadrive/*.cpp)
-}
-
-#===============================================================================
-# NEOGEO DRIVERS
-#===============================================================================
-$$DRV_NEOGEO {
- message("Neogeo drivers enabled")
-
- HEADERS += $$files(../../src/burn/drv/neogeo/*.h)
- SOURCES += $$files(../../src/burn/drv/neogeo/*.cpp)
- SOURCES *= ../../src/burner/qt/neocdlist.cpp
-}
-
-#===============================================================================
-# PC-ENGINE DRIVERS
-#===============================================================================
-$$DRV_PCE {
- message("PC-Engine drivers enabled")
-
- HEADERS += $$files(../../src/burn/drv/pce/*.h)
- SOURCES += $$files(../../src/burn/drv/pce/*.cpp)
-}
-
-#===============================================================================
-# PGM DRIVERS
-#===============================================================================
-$$DRV_PGM {
- message("PGM drivers enabled")
-
- HEADERS += $$files(../../src/burn/drv/pgm/*.h)
- SOURCES += $$files(../../src/burn/drv/pgm/*.cpp)
- SOURCES -= ../../src/burn/drv/pgm/pgm_sprite_create.cpp
-}
-
-#===============================================================================
-# PRE90S DRIVERS
-#===============================================================================
-$$DRV_PRE90S {
- message("Pre90s drivers enabled")
-
- HEADERS += $$files(../../src/burn/drv/pre90s/*.h)
- SOURCES += $$files(../../src/burn/drv/pre90s/*.cpp)
-
- HEADERS *= ../../src/burn/drv/sega/mc8123.h
- SOURCES *= ../../src/burn/drv/sega/mc8123.cpp
- # CAPCOM deps...
- HEADERS *= $$files(../../src/burn/drv/capcom/*.h)
- SOURCES *= $$files(../../src/burn/drv/capcom/*.cpp)
- SOURCES -= ../../src/burn/drv/capcom/ctv_make.cpp
- # KONAMI deps...
- HEADERS *= $$files(../../src/burn/drv/konami/*.h)
- SOURCES *= $$files(../../src/burn/drv/konami/k*.cpp)
-
-}
-
-
-#===============================================================================
-# PSIKYO DRIVERS
-#===============================================================================
-$$DRV_PSIKYO {
- message("Psikyo drivers enabled")
-
- HEADERS += $$files(../../src/burn/drv/psikyo/*.h)
- SOURCES += $$files(../../src/burn/drv/psikyo/*.cpp)
-}
-
-
-#===============================================================================
-# PST90S DRIVERS
-#===============================================================================
-$$DRV_PST90S {
- message("Pst90s drivers enabled")
- HEADERS += $$files(../../src/burn/drv/pst90s/*.h)
- SOURCES += $$files(../../src/burn/drv/pst90s/*.cpp)
-}
-
-#===============================================================================
-# SEGA DRIVERS
-#===============================================================================
-$$DRV_SEGA {
- message("Sega drivers enabled")
-
- HEADERS *= $$files(../../src/burn/drv/sega/*.h)
- SOURCES *= $$files(../../src/burn/drv/sega/*.cpp)
-}
-
-#===============================================================================
-# MASTERSYSTEM DRIVERS
-#===============================================================================
-$$DRV_SMS {
- message("SMS drivers enabled")
-
- HEADERS += $$files(../../src/burn/drv/sms/*.h)
- SOURCES += $$files(../../src/burn/drv/sms/*.cpp)
-}
-
-#===============================================================================
-# SNES DRIVERS
-#===============================================================================
-$$DRV_SNES {
- message("SNES drivers enabled")
-
- HEADERS += $$files(../../src/burn/drv/snes/*.h)
- SOURCES += $$files(../../src/burn/drv/snes/*.cpp)
-}
-
-
-#===============================================================================
-# TAITO DRIVERS
-#===============================================================================
-$$DRV_TAITO {
- message("Taito drivers enabled")
-
- HEADERS += $$files(../../src/burn/drv/taito/*.h)
- SOURCES += $$files(../../src/burn/drv/taito/*.cpp)
-}
-
-
-#===============================================================================
-# TOAPLAN DRIVERS
-#===============================================================================
-$$DRV_TOAPLAN {
- message("Toaplan drivers enabled")
-
- HEADERS += $$files(../../src/burn/drv/toaplan/*.h)
- SOURCES += $$files(../../src/burn/drv/toaplan/*.cpp)
-}
-
-#===============================================================================
-# MIDWAY DRIVERS
-#===============================================================================
-$$DRV_MIDWAY {
- message("Midway drivers enabled")
- HEADERS += $$files(../../src/burn/drv/midway/*.h)
- SOURCES += $$files(../../src/burn/drv/midway/*.cpp)
-}
-
-SOURCES += \
- ../../src/burn/devices/8255ppi.cpp \
- ../../src/burn/devices/8257dma.cpp \
- ../../src/burn/devices/eeprom.cpp \
- ../../src/burn/devices/pandora.cpp \
- ../../src/burn/devices/seibusnd.cpp \
- ../../src/burn/devices/sknsspr.cpp \
- ../../src/burn/devices/slapstic.cpp \
- ../../src/burn/devices/t5182.cpp \
- ../../src/burn/devices/timekpr.cpp \
- ../../src/burn/devices/tms34061.cpp \
- ../../src/burn/devices/v3021.cpp \
- ../../src/burn/devices/vdc.cpp \
- ../../src/burn/snd/burn_y8950.cpp \
- ../../src/burn/snd/burn_ym2151.cpp \
- ../../src/burn/snd/burn_ym2203.cpp \
- ../../src/burn/snd/burn_ym2413.cpp \
- ../../src/burn/snd/burn_ym2608.cpp \
- ../../src/burn/snd/burn_ym2610.cpp \
- ../../src/burn/snd/burn_ym2612.cpp \
- ../../src/burn/snd/burn_ym3526.cpp \
- ../../src/burn/snd/burn_ym3812.cpp \
- ../../src/burn/snd/burn_ymf278b.cpp \
- ../../src/burn/snd/c6280.cpp \
- ../../src/burn/snd/dac.cpp \
- ../../src/burn/snd/es5506.cpp \
- ../../src/burn/snd/es8712.cpp \
- ../../src/burn/snd/flt_rc.cpp \
- ../../src/burn/snd/ics2115.cpp \
- ../../src/burn/snd/iremga20.cpp \
- ../../src/burn/snd/k005289.cpp \
- ../../src/burn/snd/k007232.cpp \
- ../../src/burn/snd/k051649.cpp \
- ../../src/burn/snd/k053260.cpp \
- ../../src/burn/snd/k054539.cpp \
- ../../src/burn/snd/msm5205.cpp \
- ../../src/burn/snd/msm5232.cpp \
- ../../src/burn/snd/msm6295.cpp \
- ../../src/burn/snd/namco_snd.cpp \
- ../../src/burn/snd/nes_apu.cpp \
- ../../src/burn/snd/rf5c68.cpp \
- ../../src/burn/snd/saa1099.cpp \
- ../../src/burn/snd/samples.cpp \
- ../../src/burn/snd/segapcm.cpp \
- ../../src/burn/snd/sn76496.cpp \
- ../../src/burn/snd/upd7759.cpp \
- ../../src/burn/snd/vlm5030.cpp \
- ../../src/burn/snd/x1010.cpp \
- ../../src/burn/snd/ymz280b.cpp \
- ../../src/burn/snd/ay8910.c \
- ../../src/burn/snd/fm.c \
- ../../src/burn/snd/fmopl.c \
- ../../src/burn/snd/ym2151.c \
- ../../src/burn/snd/ym2413.c \
- ../../src/burn/snd/ymdeltat.c \
- ../../src/burn/snd/ymf278b.c \
- ../../src/burn/snd/pokey.cpp \
- ../../src/burn/burn_sound.cpp \
- ../../src/burn/burn.cpp \
- ../../src/burn/cheat.cpp \
- ../../src/burn/debug_track.cpp \
- ../../src/burn/hiscore.cpp \
- ../../src/burn/load.cpp \
- ../../src/burn/tiles_generic.cpp \
- ../../src/burn/timer.cpp \
- ../../src/burn/vector.cpp \
- ../../src/burn/burn_sound_c.cpp \
- ../../src/burn/burn_memory.cpp \
- ../../src/burn/burn_led.cpp \
- ../../src/burn/burn_gun.cpp \
- ../../src/cpu/hd6309_intf.cpp \
- ../../src/cpu/konami_intf.cpp \
- ../../src/cpu/m6502_intf.cpp \
- ../../src/cpu/m6800_intf.cpp \
- ../../src/cpu/m6805_intf.cpp \
- ../../src/cpu/m6809_intf.cpp \
- ../../src/cpu/m68000_intf.cpp \
- ../../src/cpu/nec_intf.cpp \
- ../../src/cpu/pic16c5x_intf.cpp \
- ../../src/cpu/s2650_intf.cpp \
- ../../src/cpu/h6280_intf.cpp \
- ../../src/cpu/arm7_intf.cpp \
- ../../src/cpu/arm_intf.cpp \
- ../../src/cpu/arm/arm.cpp \
- ../../src/cpu/arm7/arm7.cpp \
- ../../src/cpu/arm7/arm7core.c \
- ../../src/cpu/arm7/arm7exec.c \
- ../../src/cpu/h6280/h6280.cpp \
- ../../src/cpu/h6280/tblh6280.c \
- ../../src/cpu/hd6309/hd6309.cpp \
- ../../src/cpu/hd6309/6309ops.c \
- ../../src/cpu/hd6309/6309tbl.c \
- ../../src/cpu/i8039/i8039.cpp \
- ../../src/cpu/konami/konami.cpp \
- ../../src/cpu/konami/konamops.c \
- ../../src/cpu/konami/konamtbl.c \
- ../../src/cpu/m6502/m6502.cpp \
- ../../src/cpu/m6502/t65c02.c \
- ../../src/cpu/m6502/t65sc02.c \
- ../../src/cpu/m6502/t6502.c \
- ../../src/cpu/m6502/tdeco16.c \
- ../../src/cpu/m6502/tn2a03.c \
- ../../src/cpu/m6800/m6800.cpp \
- ../../src/cpu/m6800/6800ops.c \
- ../../src/cpu/m6800/6800tbl.c \
- ../../src/cpu/m6805/m6805.cpp \
- ../../src/cpu/m6805/6805ops.c \
- ../../src/cpu/m6809/m6809.cpp \
- ../../src/cpu/m6809/6809ops.c \
- ../../src/cpu/m6809/6809tbl.c \
- ../../src/cpu/nec/nec.cpp \
- ../../src/cpu/nec/v25.cpp \
- ../../src/cpu/nec/necinstr.c \
- ../../src/cpu/nec/v25instr.c \
- ../../src/cpu/nec/v25sfr.c \
- ../../src/cpu/pic16c5x/pic16c5x.cpp \
- ../../src/cpu/s2650/s2650.cpp \
- ../../src/cpu/sh2/sh2.cpp \
- ../../src/cpu/z80/z80.cpp \
- ../../src/cpu/z80/z80daisy.cpp \
- ../../src/cpu/m68k/m68kcpu.c \
- ../../src/burner/conc.cpp \
- ../../src/burner/cong.cpp \
- ../../src/burner/dat.cpp \
- ../../src/burner/gamc.cpp \
- ../../src/burner/gami.cpp \
- ../../src/burner/image.cpp \
- ../../src/burner/misc.cpp \
- ../../src/burner/sshot.cpp \
- ../../src/burner/state.cpp \
- ../../src/burner/statec.cpp \
- ../../src/burner/zipfn.cpp \
- ../../src/burner/ioapi.c \
- ../../src/burner/unzip.c \
- ../../src/dep/libs/libpng/png.c \
- ../../src/dep/libs/libpng/pngerror.c \
- ../../src/dep/libs/libpng/pngget.c \
- ../../src/dep/libs/libpng/pngmem.c \
- ../../src/dep/libs/libpng/pngpread.c \
- ../../src/dep/libs/libpng/pngread.c \
- ../../src/dep/libs/libpng/pngrio.c \
- ../../src/dep/libs/libpng/pngrtran.c \
- ../../src/dep/libs/libpng/pngrutil.c \
- ../../src/dep/libs/libpng/pngset.c \
- ../../src/dep/libs/libpng/pngtrans.c \
- ../../src/dep/libs/libpng/pngwio.c \
- ../../src/dep/libs/libpng/pngwrite.c \
- ../../src/dep/libs/libpng/pngwtran.c \
- ../../src/dep/libs/libpng/pngwutil.c \
- ../../src/intf/interface.cpp \
- ../../src/intf/audio/aud_dsp.cpp \
- ../../src/intf/audio/aud_interface.cpp \
- ../../src/intf/audio/lowpass2.cpp \
- ../../src/intf/cd/cd_interface.cpp \
- ../../src/intf/input/inp_interface.cpp \
- ../../src/intf/video/vid_interface.cpp \
- ../../src/intf/video/vid_support.cpp \
- ../../src/cpu/z80_intf.cpp \
- ../../src/burner/qt/main.cpp \
- ../../src/burner/qt/aboutdialog.cpp \
- ../../src/burner/qt/bzip.cpp \
- ../../src/burner/qt/dipswitchdialog.cpp \
- ../../src/burner/qt/driver.cpp \
- ../../src/burner/qt/emuworker.cpp \
- ../../src/burner/qt/mainwindow.cpp \
- ../../src/burner/qt/progress.cpp \
- ../../src/burner/qt/qaudiointerface.cpp \
- ../../src/burner/qt/qinputinterface.cpp \
- ../../src/burner/qt/qutil.cpp \
- ../../src/burner/qt/romdirsdialog.cpp \
- ../../src/burner/qt/rominfodialog.cpp \
- ../../src/burner/qt/romscandialog.cpp \
- ../../src/burner/qt/selectdialog.cpp \
- ../../src/burner/qt/stringset.cpp \
- ../../src/burner/qt/supportdirsdialog.cpp \
- ../../src/dep/libs/zlib/adler32.c \
- ../../src/dep/libs/zlib/compress.c \
- ../../src/dep/libs/zlib/crc32.c \
- ../../src/dep/libs/zlib/deflate.c \
- ../../src/dep/libs/zlib/gzclose.c \
- ../../src/dep/libs/zlib/gzlib.c \
- ../../src/dep/libs/zlib/gzread.c \
- ../../src/dep/libs/zlib/gzwrite.c \
- ../../src/dep/libs/zlib/infback.c \
- ../../src/dep/libs/zlib/inffast.c \
- ../../src/dep/libs/zlib/inflate.c \
- ../../src/dep/libs/zlib/inftrees.c \
- ../../src/dep/libs/zlib/trees.c \
- ../../src/dep/libs/zlib/uncompr.c \
- ../../src/dep/libs/zlib/zutil.c \
- ../../src/burn/devices/nmk004.cpp \
- ../../src/cpu/tlcs90/tlcs90.cpp \
- ../../src/cpu/tlcs90_intf.cpp \
- ../../src/burn/devices/kaneko_tmap.cpp \
- ../../src/burner/qt/inputdialog.cpp \
- ../../src/burner/qt/widgets/hexspinbox.cpp \
- ../../src/burner/qt/logdialog.cpp \
- ../../src/burner/qt/inputsetdialog.cpp \
- ../../src/burner/qt/oglviewport.cpp \
- ../../src/intf/video/opengl/vid_opengl.cpp \
- ../../src/intf/video/opengl/shader.cpp \
- ../../src/cpu/mips3/cop0.cpp \
- ../../src/cpu/mips3/cop1.cpp \
- ../../src/cpu/mips3/mips3_dasm.cpp \
- ../../src/cpu/mips3/mips3.cpp \
- ../../src/cpu/mips3_intf.cpp \
- ../../src/cpu/adsp2100_intf.cpp \
- ../../src/cpu/adsp2100/adsp2100.cpp \
- ../../src/cpu/adsp2100/2100dasm.cpp
-
-
-
-HEADERS += \
- ../../src/burn/devices/8255ppi.h \
- ../../src/burn/devices/8257dma.h \
- ../../src/burn/devices/eeprom.h \
- ../../src/burn/devices/pandora.h \
- ../../src/burn/devices/seibusnd.h \
- ../../src/burn/devices/sknsspr.h \
- ../../src/burn/devices/slapstic.h \
- ../../src/burn/devices/t5182.h \
- ../../src/burn/devices/timekpr.h \
- ../../src/burn/devices/tms34061.h \
- ../../src/burn/devices/v3021.h \
- ../../src/burn/devices/vdc.h \
- ../../src/burn/snd/ay8910.h \
- ../../src/burn/snd/burn_y8950.h \
- ../../src/burn/snd/burn_ym2151.h \
- ../../src/burn/snd/burn_ym2203.h \
- ../../src/burn/snd/burn_ym2413.h \
- ../../src/burn/snd/burn_ym2608.h \
- ../../src/burn/snd/burn_ym2610.h \
- ../../src/burn/snd/burn_ym2612.h \
- ../../src/burn/snd/burn_ym3526.h \
- ../../src/burn/snd/burn_ym3812.h \
- ../../src/burn/snd/burn_ymf278b.h \
- ../../src/burn/snd/c6280.h \
- ../../src/burn/snd/dac.h \
- ../../src/burn/snd/es5506.h \
- ../../src/burn/snd/es8712.h \
- ../../src/burn/snd/flt_rc.h \
- ../../src/burn/snd/fm.h \
- ../../src/burn/snd/fmopl.h \
- ../../src/burn/snd/ics2115.h \
- ../../src/burn/snd/iremga20.h \
- ../../src/burn/snd/k005289.h \
- ../../src/burn/snd/k007232.h \
- ../../src/burn/snd/k051649.h \
- ../../src/burn/snd/k053260.h \
- ../../src/burn/snd/k054539.h \
- ../../src/burn/snd/msm5205.h \
- ../../src/burn/snd/msm5232.h \
- ../../src/burn/snd/msm6295.h \
- ../../src/burn/snd/namco_snd.h \
- ../../src/burn/snd/nes_apu.h \
- ../../src/burn/snd/nes_defs.h \
- ../../src/burn/snd/rescap.h \
- ../../src/burn/snd/rf5c68.h \
- ../../src/burn/snd/saa1099.h \
- ../../src/burn/snd/samples.h \
- ../../src/burn/snd/segapcm.h \
- ../../src/burn/snd/sn76496.h \
- ../../src/burn/snd/upd7759.h \
- ../../src/burn/snd/vlm5030.h \
- ../../src/burn/snd/x1010.h \
- ../../src/burn/snd/ym2151.h \
- ../../src/burn/snd/ym2413.h \
- ../../src/burn/snd/ymdeltat.h \
- ../../src/burn/snd/ymf278b.h \
- ../../src/burn/snd/ymz280b.h \
- ../../src/burn/snd/pokey.h \
- ../../src/burn/burn_sound.h \
- ../../src/burn/burn.h \
- ../../src/burn/burnint.h \
- ../../src/burn/cheat.h \
- ../../src/burn/driver.h \
- ../../src/burn/hiscore.h \
- ../../src/burn/state.h \
- ../../src/burn/stdfunc.h \
- ../../src/burn/tiles_generic.h \
- ../../src/burn/timer.h \
- ../../src/burn/vector.h \
- ../../src/burn/version.h \
- ../../src/burn/burn_led.h \
- ../../src/burn/burn_gun.h \
- ../../src/burn/bitswap.h \
- ../../src/cpu/h6280_intf.h \
- ../../src/cpu/hd6309_intf.h \
- ../../src/cpu/konami_intf.h \
- ../../src/cpu/m6502_intf.h \
- ../../src/cpu/m6800_intf.h \
- ../../src/cpu/m6805_intf.h \
- ../../src/cpu/m6809_intf.h \
- ../../src/cpu/m68000_debug.h \
- ../../src/cpu/m68000_intf.h \
- ../../src/cpu/nec_intf.h \
- ../../src/cpu/pic16c5x_intf.h \
- ../../src/cpu/s2650_intf.h \
- ../../src/cpu/arm7_intf.h \
- ../../src/cpu/arm_intf.h \
- ../../src/cpu/arm7/arm7core.h \
- ../../src/cpu/h6280/h6280.h \
- ../../src/cpu/h6280/h6280ops.h \
- ../../src/cpu/hd6309/hd6309.h \
- ../../src/cpu/i8039/i8039.h \
- ../../src/cpu/konami/konami.h \
- ../../src/cpu/m6502/ill02.h \
- ../../src/cpu/m6502/m6502.h \
- ../../src/cpu/m6502/ops02.h \
- ../../src/cpu/m6502/opsc02.h \
- ../../src/cpu/m6502/opsn2a03.h \
- ../../src/cpu/m6800/m6800.h \
- ../../src/cpu/m6805/m6805.h \
- ../../src/cpu/m6809/m6809.h \
- ../../src/cpu/nec/nec.h \
- ../../src/cpu/nec/necea.h \
- ../../src/cpu/nec/necinstr.h \
- ../../src/cpu/nec/necmacro.h \
- ../../src/cpu/nec/necmodrm.h \
- ../../src/cpu/nec/necpriv.h \
- ../../src/cpu/nec/v25instr.h \
- ../../src/cpu/nec/v25priv.h \
- ../../src/cpu/pic16c5x/pic16c5x.h \
- ../../src/cpu/s2650/s2650.h \
- ../../src/cpu/z80/z80.h \
- ../../src/cpu/z80/z80daisy.h \
- ../../src/cpu/m68k/m68kcpu.h \
- ../../src/cpu/m68k/m68kconf.h \
- ../../src/burner/burner.h \
- ../../src/burner/gameinp.h \
- ../../src/burner/ioapi.h \
- ../../src/burner/neocdlist.h \
- ../../src/burner/title.h \
- ../../src/burner/unzip.h \
- ../../src/dep/libs/libpng/png.h \
- ../../src/dep/libs/libpng/pngconf.h \
- ../../src/dep/libs/libpng/pngdebug.h \
- ../../src/dep/libs/libpng/pnginfo.h \
- ../../src/dep/libs/libpng/pnglibconf.h \
- ../../src/dep/libs/libpng/pngpriv.h \
- ../../src/dep/libs/libpng/pngstruct.h \
- ../../src/intf/interface.h \
- ../../src/intf/audio/aud_dsp.h \
- ../../src/intf/audio/lowpass2.h \
- ../../src/intf/cd/cd_interface.h \
- ../../src/intf/input/inp_keys.h \
- ../../src/intf/video/vid_support.h \
- ../../src/cpu/sh2_intf.h \
- ../../src/cpu/z80_intf.h \
- ../../src/burner/qt/aboutdialog.h \
- ../../src/burner/qt/burner_qt.h \
- ../../src/burner/qt/dipswitchdialog.h \
- ../../src/burner/qt/emuworker.h \
- ../../src/burner/qt/mainwindow.h \
- ../../src/burner/qt/qaudiointerface.h \
- ../../src/burner/qt/qinputinterface.h \
- ../../src/burner/qt/qutil.h \
- ../../src/burner/qt/romdirsdialog.h \
- ../../src/burner/qt/rominfodialog.h \
- ../../src/burner/qt/romscandialog.h \
- ../../src/burner/qt/selectdialog.h \
- ../../src/burner/qt/supportdirsdialog.h \
- ../../src/burner/qt/tchar.h \
- ../../src/dep/libs/zlib/crc32.h \
- ../../src/dep/libs/zlib/deflate.h \
- ../../src/dep/libs/zlib/gzguts.h \
- ../../src/dep/libs/zlib/inffast.h \
- ../../src/dep/libs/zlib/inffixed.h \
- ../../src/dep/libs/zlib/inflate.h \
- ../../src/dep/libs/zlib/inftrees.h \
- ../../src/dep/libs/zlib/trees.h \
- ../../src/dep/libs/zlib/zconf.h \
- ../../src/dep/libs/zlib/zconf.h.in \
- ../../src/dep/libs/zlib/zlib.h \
- ../../src/dep/libs/zlib/zutil.h \
- ../../src/burn/devices/nmk004.h \
- ../../src/burn/devices/kaneko_tmap.h \
- ../../src/burner/qt/inputdialog.h \
- ../../src/burner/qt/widgets/hexspinbox.h \
- ../../src/burner/qt/logdialog.h \
- ../../src/burner/qt/inputsetdialog.h \
- ../../src/burner/qt/oglviewport.h \
- ../../src/intf/video/opengl/shader.h \
- ../../src/cpu/mips3/mips3_common.h \
- ../../src/cpu/mips3/mips3_memory.h \
- ../../src/cpu/mips3/mips3.h \
- ../../src/cpu/mips3/mips3_arithm.h \
- ../../src/cpu/mips3/mips3_bitops.h \
- ../../src/cpu/mips3/mips3_branch.h \
- ../../src/cpu/mips3/mips3_misc.h \
- ../../src/cpu/mips3/mips3_rw.h \
- ../../src/cpu/mips3/mips3_shift.h \
- ../../src/cpu/mips3/mipsdef.h \
- ../../src/cpu/mips3_intf.h \
- ../../src/cpu/adsp2100_intf.h \
- ../../src/cpu/adsp2100/adsp2100.h \
- ../../src/cpu/adsp2100/adsp2100_defs.h \
- ../../src/cpu/adsp2100/cpuintrf.h
-
-
-#-------------------------------------------------------------------------------
-# MIPS3 x64 recompiler
-#-------------------------------------------------------------------------------
-
-$$DRC_MIPS3_X64 {
- message("MIPS3 x64 dynarec enabled")
- DEFINES += \
- XBYAK_NO_OP_NAMES \
- MIPS3_X64_DRC
-
- HEADERS += \
- ../../src/cpu/mips3/x64/mips3_x64.h \
- ../../src/cpu/mips3/x64/mips3_x64_arithm.h \
- ../../src/cpu/mips3/x64/mips3_x64_bitops.h \
- ../../src/cpu/mips3/x64/mips3_x64_branch.h \
- ../../src/cpu/mips3/x64/mips3_x64_cop0.h \
- ../../src/cpu/mips3/x64/mips3_x64_cop1.h \
- ../../src/cpu/mips3/x64/mips3_x64_defs.h \
- ../../src/cpu/mips3/x64/mips3_x64_misc.h \
- ../../src/cpu/mips3/x64/mips3_x64_rw.h \
- ../../src/cpu/mips3/x64/mips3_x64_shift.h \
- ../../src/cpu/mips3/x64/xbyak/xbyak.h \
- ../../src/cpu/mips3/x64/xbyak/xbyak_bin2hex.h \
- ../../src/cpu/mips3/x64/xbyak/xbyak_mnemonic.h \
- ../../src/cpu/mips3/x64/xbyak/xbyak_util.h
-
- SOURCES += \
- ../../src/cpu/mips3/x64/mips3_x64.cpp
-}
-
-
-#-------------------------------------------------------------------------------
-# Linux only drivers
-#-------------------------------------------------------------------------------
-linux: HEADERS += ../../src/intf/audio/linux/ringbuffer.h
-linux: SOURCES += ../../src/intf/audio/linux/aud_pulse_simple.cpp
-
-OTHER_FILES +=
-
-RESOURCES += \
- ../../src/burner/qt/rscr.qrc
-
-FORMS += \
- ../../src/burner/qt/aboutdialog.ui \
- ../../src/burner/qt/dipswitchdialog.ui \
- ../../src/burner/qt/romdirsdialog.ui \
- ../../src/burner/qt/rominfodialog.ui \
- ../../src/burner/qt/romscandialog.ui \
- ../../src/burner/qt/selectdialog.ui \
- ../../src/burner/qt/supportdirsdialog.ui \
- ../../src/burner/qt/inputdialog.ui \
- ../../src/burner/qt/logdialog.ui \
- ../../src/burner/qt/inputsetdialog.ui \
diff --git a/jan/projectfiles/qtcreator/fba_sdl.pro b/jan/projectfiles/qtcreator/fba_sdl.pro
deleted file mode 100644
index 6b2d44b3e..000000000
--- a/jan/projectfiles/qtcreator/fba_sdl.pro
+++ /dev/null
@@ -1,1271 +0,0 @@
-#===============================================================================
-# FINAL BURN ALPHA QT
-#===============================================================================
-TARGET = fbasdl
-
-#===============================================================================
-# DRIVERS
-#===============================================================================
-DRV_CAPCOM = true
-DRV_CAVE = true
-DRV_CPS3 = true
-DRV_DATAEAST = true
-DRV_GALAXIAN = true
-DRV_IREM = true
-DRV_KONAMI = true
-DRV_SMS = true
-DRV_MEGADRIVE = true
-DRV_NEOGEO = true
-DRV_PCE = true
-DRV_PGM = true
-DRV_PRE90S = true
-DRV_PST90S = true
-DRV_SEGA = true
-DRV_SNES = true
-DRV_TAITO = true
-DRV_TOAPLAN = true
-DRV_PSIKYO = true
-
-#===============================================================================
-# DEPENDENCIES
-#===============================================================================
-
-#-------------------------------------------------------------------------------
-# for Linux, absolute paths
-#-------------------------------------------------------------------------------
-SRC = $$system(readlink -m $$PWD/../../src)
-SCRIPTS = $$SRC/dep/scripts
-GEN = $$SRC/dep/generated
-
-# We need ld
-FBA_LD = ld
-
-#-------------------------------------------------------------------------------
-# Additional include paths
-#-------------------------------------------------------------------------------
-INCLUDEPATH += \
- $$GEN \
- $$SRC/dep/qtcreator \
- $$SRC/burn \
- $$SRC/burn/snd \
- $$SRC/burn/devices \
- $$SRC/burn/drv/capcom \
- $$SRC/burn/drv/cave \
- $$SRC/burn/drv/konami \
- $$SRC/burn/drv/neogeo \
- $$SRC/burn/drv/pgm \
- $$SRC/burn/drv/pre90s \
- $$SRC/burn/drv/psikyo \
- $$SRC/burn/drv/pst90s \
- $$SRC/burn/drv/taito \
- $$SRC/burn/drv/toaplan \
- $$SRC/burner \
- $$SRC/burner/sdl \
- $$SRC/cpu \
- $$SRC/cpu/i8039 \
- $$SRC/cpu/konami \
- $$SRC/cpu/m68k \
- $$SRC/intf \
- $$SRC/intf/video \
- $$SRC/intf/video/scalers \
- $$SRC/intf/input \
- $$SRC/intf/audio \
- $$SRC/intf/cd \
- $$SRC/dep/libs/libpng \
- $$SRC/dep/libs/zlib \
-
-DEFINES += BUILD_SDL \
- LSB_FIRST \
- "__fastcall=" \
- "_fastcall=" \
- WITH_QTCREATOR \
- INCLUDE_LIB_PNGH
-
-# no warnings...
-QMAKE_CXXFLAGS += -w
-QMAKE_CFLAGS += -w
-
-
-#-------------------------------------------------------------------------------
-# C++11
-#-------------------------------------------------------------------------------
-CONFIG += c++11
-
-#-------------------------------------------------------------------------------
-# src/dep/generated
-#-------------------------------------------------------------------------------
-GENERATED.target = $$GEN/empty
-GENERATED.commands = \
- @echo "Creating generated directory..."; \
- cd $$SRC/dep; \
- mkdir generated; \
- touch generated/empty
-
-#-------------------------------------------------------------------------------
-# src/dep/generated/ctv.h
-#-------------------------------------------------------------------------------
-CTV_HEADER.depends = GENERATED
-CTV_HEADER.target = $$GEN/ctv.h
-
-CTV_HEADER.commands = \
- @echo "Building ctv..."; \
- cd $$SRC/burn/drv/capcom; \
- $$QMAKE_CXX ctv_make.cpp -o ctv_make; \
- ./ctv_make > $$CTV_HEADER.target; \
- rm ctv_make
-
-#-------------------------------------------------------------------------------
-# perl scripts
-#-------------------------------------------------------------------------------
-
-# cave_sprite_func.h
-CAVE_SPRFUNC_HEADER.depends = GENERATED
-CAVE_SPRFUNC_HEADER.target = $$GEN/cave_sprite_func.h
-CAVE_SPRFUNC_HEADER.commands = \
- @echo "Generating cave_sprite_func.h"; \
- perl $$SCRIPTS/cave_sprite_func.pl -o $$CAVE_SPRFUNC_HEADER.target;
-
-# cave_tile_func.h
-CAVE_TILEFUNC_HEADER.depends = GENERATED
-CAVE_TILEFUNC_HEADER.target = $$GEN/cave_tile_func.h
-CAVE_TILEFUNC_HEADER.commands = \
- @echo "Generating cave_tile_func.h"; \
- perl $$SCRIPTS/cave_tile_func.pl -o $$CAVE_TILEFUNC_HEADER.target;
-
-# neo_sprite_func.h
-NEO_SPRFUNC_HEADER.depends = GENERATED
-NEO_SPRFUNC_HEADER.target = $$GEN/neo_sprite_func.h
-NEO_SPRFUNC_HEADER.commands = \
- @echo "Generating neo_sprite_func.h"; \
- perl $$SCRIPTS/neo_sprite_func.pl -o $$NEO_SPRFUNC_HEADER.target;
-
-# psikyo_tile_func.h
-PSIKYO_TILEFUNC_HEADER.depends = GENERATED
-PSIKYO_TILEFUNC_HEADER.target = $$GEN/psikyo_tile_func.h
-PSIKYO_TILEFUNC_HEADER.commands = \
- @echo "Generating psikyo_tile_func.h"; \
- perl $$SCRIPTS/psikyo_tile_func.pl -o $$PSIKYO_TILEFUNC_HEADER.target;
-
-# toa_gp9001_func
-TOA_GP9001_FUNC_HEADER.depends = GENERATED
-TOA_GP9001_FUNC_HEADER.target = $$GEN/toa_gp9001_func.h
-TOA_GP9001_FUNC_HEADER.commands = \
- @echo "Generating toa_gp9001_func.h"; \
- perl $$SCRIPTS/toa_gp9001_func.pl -o $$TOA_GP9001_FUNC_HEADER.target;
-
-#-------------------------------------------------------------------------------
-# pgm_sprite.h
-#-------------------------------------------------------------------------------
-PGM_SPRITE_CREATE.depends = GENERATED
-PGM_SPRITE_CREATE.target = $$GEN/pgm_sprite_create
-PGM_SPRITE_CREATE.commands =\
- @echo "Compiling pgm_sprite_create.cpp"; \
- $$QMAKE_CXX $$SRC/burn/drv/pgm/pgm_sprite_create.cpp -o $$PGM_SPRITE_CREATE.target;
-
-PGM_SPRITE_HEADER.depends = PGM_SPRITE_CREATE
-PGM_SPRITE_HEADER.target = $$GEN/pgm_sprite.h
-PGM_SPRITE_HEADER.commands =\
- @echo "Generating pgm_sprite.h"; \
- $$PGM_SPRITE_CREATE.target > $$PGM_SPRITE_HEADER.target
-
-
-
-#-------------------------------------------------------------------------------
-# Musashi68k
-#-------------------------------------------------------------------------------
-M68K_MAKE.target = $$GEN/m68kmake
-M68K_MAKE.depends = $$SRC/cpu/m68k/m68kmake.c GENERATED
-M68K_MAKE.commands = \
- @echo "Compiling Musashi MC680x0 core: m68kmake.c..."; \
- $$QMAKE_CC $$SRC/cpu/m68k/m68kmake.c -o $$M68K_MAKE.target; \
- $$M68K_MAKE.target $$GEN/ $$SRC/cpu/m68k/m68k_in.c;
-
-# objects
-M68K_OPAC.target = $$GEN/m68kopac.o
-M68K_OPAC.depends = M68K_MAKE
-M68K_OPAC.commands = \
- @echo "Compiling Musashi MC680x0 core: m68kopac.c..."; \
- $$QMAKE_CC $$QMAKE_CFLAGS -I$$SRC/cpu/m68k $$GEN/m68kopac.c -c -o $$M68K_OPAC.target;
-
-M68K_OPDM.target = $$GEN/m68kopdm.o
-M68K_OPDM.depends = M68K_MAKE
-M68K_OPDM.commands = \
- @echo "Compiling Musashi MC680x0 core: m68kopdm.c..."; \
- $$QMAKE_CC $$QMAKE_CFLAGS -I$$SRC/cpu/m68k $$GEN/m68kopdm.c -c -o $$M68K_OPDM.target;
-
-M68K_OPNZ.target = $$GEN/m68kopnz.o
-M68K_OPNZ.depends = M68K_MAKE
-M68K_OPNZ.commands = \
- @echo "Compiling Musashi MC680x0 core: m68kopnz.c..."; \
- $$QMAKE_CC $$QMAKE_CFLAGS -I$$SRC/cpu/m68k $$GEN/m68kopnz.c -c -o $$M68K_OPNZ.target;
-
-M68K_OPS.target = $$GEN/m68kops.o
-M68K_OPS.depends = M68K_MAKE
-M68K_OPS.commands = \
- @echo "Compiling Musashi MC680x0 core: m68kops.c..."; \
- $$QMAKE_CC $$QMAKE_CFLAGS -I$$SRC/cpu/m68k $$GEN/m68kops.c -c -o $$M68K_OPS.target;
-
-M68K_OPS_HEADER.target = $$GEN/m68kops.h
-M68K_OPS_HEADER.depends = M68K_MAKE
-M68K_OPS_HEADER.commands = \
- $$M68K_MAKE.target $$GEN/ $$SRC/cpu/m68k/m68k_in.c;
-
-M68K_LIB.target = $$GEN/libm68kops.o
-M68K_LIB.depends = M68K_MAKE M68K_OPAC M68K_OPDM M68K_OPNZ M68K_OPS M68K_OPS_HEADER
-M68K_LIB.commands = \
- @echo "Partially linking Musashi MC680x0 core: libm68kops.o..."; \
- $$FBA_LD -r $$M68K_OPAC.target $$M68K_OPDM.target \
- $$M68K_OPNZ.target $$M68K_OPS.target -o $$M68K_LIB.target
-
-
-OBJECTS += $$M68K_LIB.target
-
-#-------------------------------------------------------------------------------
-# Gamelist
-#-------------------------------------------------------------------------------
-DRIVERLIST.depends = GENERATED
-DRIVERLIST.target = $$GEN/driverlist.h
-
-DRIVERLIST_PATHS =
-$$DRV_SMS:DRIVERLIST_PATHS += $$SRC/burn/drv/sms
-$$DRV_PCE:DRIVERLIST_PATHS += $$SRC/burn/drv/pce
-$$DRV_PGM:DRIVERLIST_PATHS += $$SRC/burn/drv/pgm
-$$DRV_CAVE:DRIVERLIST_PATHS += $$SRC/burn/drv/cave
-$$DRV_CPS3:DRIVERLIST_PATHS += $$SRC/burn/drv/cps3
-$$DRV_IREM:DRIVERLIST_PATHS += $$SRC/burn/drv/irem
-$$DRV_SEGA:DRIVERLIST_PATHS += $$SRC/burn/drv/sega
-$$DRV_SNES:DRIVERLIST_PATHS += $$SRC/burn/drv/snes
-$$DRV_TAITO:DRIVERLIST_PATHS += $$SRC/burn/drv/taito
-$$DRV_CAPCOM:DRIVERLIST_PATHS += $$SRC/burn/drv/capcom
-$$DRV_NEOGEO:DRIVERLIST_PATHS += $$SRC/burn/drv/neogeo
-$$DRV_KONAMI:DRIVERLIST_PATHS += $$SRC/burn/drv/konami
-$$DRV_PRE90S:DRIVERLIST_PATHS += $$SRC/burn/drv/pre90s
-$$DRV_PST90S:DRIVERLIST_PATHS += $$SRC/burn/drv/pst90s
-$$DRV_PSIKYO:DRIVERLIST_PATHS += $$SRC/burn/drv/psikyo
-$$DRV_TOAPLAN:DRIVERLIST_PATHS += $$SRC/burn/drv/toaplan
-$$DRV_DATAEAST:DRIVERLIST_PATHS += $$SRC/burn/drv/dataeast
-$$DRV_GALAXIAN:DRIVERLIST_PATHS += $$SRC/burn/drv/galaxian
-$$DRV_MEGADRIVE:DRIVERLIST_PATHS += $$SRC/burn/drv/megadrive
-
-DRIVERLIST.commands = \
- @echo "Generating driverlist.h"; \
- perl $$SCRIPTS/gamelist.pl -o $$DRIVERLIST.target $$DRIVERLIST_PATHS;
-
-#-------------------------------------------------------------------------------
-#-------------------------------------------------------------------------------
-QMAKE_EXTRA_TARGETS += \
- GENERATED \
- CTV_HEADER \
- CAVE_SPRFUNC_HEADER \
- CAVE_TILEFUNC_HEADER \
- NEO_SPRFUNC_HEADER \
- PSIKYO_TILEFUNC_HEADER \
- PGM_SPRITE_CREATE \
- PGM_SPRITE_HEADER \
- TOA_GP9001_FUNC_HEADER \
- DRIVERLIST \
- M68K_MAKE \
- M68K_OPAC \
- M68K_OPDM \
- M68K_OPNZ \
- M68K_OPS \
- M68K_OPS_HEADER \
- M68K_LIB
-
-PRE_TARGETDEPS += \
- $$CTV_HEADER.target \
- $$CAVE_SPRFUNC_HEADER.target \
- $$CAVE_TILEFUNC_HEADER.target \
- $$NEO_SPRFUNC_HEADER.target \
- $$PSIKYO_TILEFUNC_HEADER.target \
- $$PGM_SPRITE_HEADER.target \
- $$TOA_GP9001_FUNC_HEADER.target \
- $$DRIVERLIST.target \
- $$M68K_LIB.target \
-
-LIBS += -lSDL
-
-QMAKE_CLEAN += $$GEN/*
-#===============================================================================
-# CAPCOM DRIVERS
-#===============================================================================
-$$DRV_CAPCOM {
- message("Capcom drivers enabled")
-
- HEADERS += \
- ../../src/burn/drv/capcom/cps.h \
- ../../src/burn/drv/capcom/ctv_do.h
-
- SOURCES += \
- ../../src/burn/drv/capcom/cps_config.cpp \
- ../../src/burn/drv/capcom/cps_draw.cpp \
- ../../src/burn/drv/capcom/cps_mem.cpp \
- ../../src/burn/drv/capcom/cps_obj.cpp \
- ../../src/burn/drv/capcom/cps_pal.cpp \
- ../../src/burn/drv/capcom/cps_run.cpp \
- ../../src/burn/drv/capcom/cps_rw.cpp \
- ../../src/burn/drv/capcom/cps_scr.cpp \
- ../../src/burn/drv/capcom/cps.cpp \
- ../../src/burn/drv/capcom/cps2_crpt.cpp \
- ../../src/burn/drv/capcom/cpsr.cpp \
- ../../src/burn/drv/capcom/cpsrd.cpp \
- ../../src/burn/drv/capcom/cpst.cpp \
- ../../src/burn/drv/capcom/ctv.cpp \
- ../../src/burn/drv/capcom/d_cps1.cpp \
- ../../src/burn/drv/capcom/d_cps2.cpp \
- ../../src/burn/drv/capcom/fcrash_snd.cpp \
- ../../src/burn/drv/capcom/kabuki.cpp \
- ../../src/burn/drv/capcom/ps_m.cpp \
- ../../src/burn/drv/capcom/ps_z.cpp \
- ../../src/burn/drv/capcom/ps.cpp \
- ../../src/burn/drv/capcom/qs_c.cpp \
- ../../src/burn/drv/capcom/qs_z.cpp \
- ../../src/burn/drv/capcom/qs.cpp \
- ../../src/burn/drv/capcom/sf2mdt_snd.cpp
-}
-
-#===============================================================================
-# CAVE DRIVERS
-#===============================================================================
-$$DRV_CAVE {
- message("Cave drivers enabled")
- HEADERS += \
- ../../src/burn/drv/cave/cave_sprite_render_zoom.h \
- ../../src/burn/drv/cave/cave_sprite_render.h \
- ../../src/burn/drv/cave/cave_tile_render.h \
- ../../src/burn/drv/cave/cave.h
-
- SOURCES += \
- ../../src/burn/drv/cave/cave_palette.cpp \
- ../../src/burn/drv/cave/cave_sprite.cpp \
- ../../src/burn/drv/cave/cave_tile.cpp \
- ../../src/burn/drv/cave/cave.cpp \
- ../../src/burn/drv/cave/d_dodonpachi.cpp \
- ../../src/burn/drv/cave/d_donpachi.cpp \
- ../../src/burn/drv/cave/d_esprade.cpp \
- ../../src/burn/drv/cave/d_feversos.cpp \
- ../../src/burn/drv/cave/d_gaia.cpp \
- ../../src/burn/drv/cave/d_guwange.cpp \
- ../../src/burn/drv/cave/d_hotdogst.cpp \
- ../../src/burn/drv/cave/d_korokoro.cpp \
- ../../src/burn/drv/cave/d_mazinger.cpp \
- ../../src/burn/drv/cave/d_metmqstr.cpp \
- ../../src/burn/drv/cave/d_pwrinst2.cpp \
- ../../src/burn/drv/cave/d_sailormn.cpp \
- ../../src/burn/drv/cave/d_tjumpman.cpp \
- ../../src/burn/drv/cave/d_uopoko.cpp
-}
-
-#===============================================================================
-# CPS3 DRIVERS
-#===============================================================================
-$$DRV_CPS3 {
- message("CPS3 drivers enabled")
-
- HEADERS += \
- ../../src/burn/drv/cps3/cps3.h
-
- SOURCES += \
- ../../src/burn/drv/cps3/cps3run.cpp \
- ../../src/burn/drv/cps3/cps3snd.cpp \
- ../../src/burn/drv/cps3/d_cps3.cpp
-}
-
-#===============================================================================
-# DATAEAST DRIVERS
-#===============================================================================
-$$DRV_DATAEAST {
- message("Dataeast drivers enabled")
-
- HEADERS += \
- ../../src/burn/drv/dataeast/deco16ic.h
-
- SOURCES += \
- ../../src/burn/drv/dataeast/d_actfancr.cpp \
- ../../src/burn/drv/dataeast/d_backfire.cpp \
- ../../src/burn/drv/dataeast/d_boogwing.cpp \
- ../../src/burn/drv/dataeast/d_cbuster.cpp \
- ../../src/burn/drv/dataeast/d_cninja.cpp \
- ../../src/burn/drv/dataeast/d_darkseal.cpp \
- ../../src/burn/drv/dataeast/d_dassault.cpp \
- ../../src/burn/drv/dataeast/d_dec0.cpp \
- ../../src/burn/drv/dataeast/d_dec8.cpp \
- ../../src/burn/drv/dataeast/d_dietgogo.cpp \
- ../../src/burn/drv/dataeast/d_funkyjet.cpp \
- ../../src/burn/drv/dataeast/d_karnov.cpp \
- ../../src/burn/drv/dataeast/d_lemmings.cpp \
- ../../src/burn/drv/dataeast/d_pktgaldx.cpp \
- ../../src/burn/drv/dataeast/d_rohga.cpp \
- ../../src/burn/drv/dataeast/d_sidepckt.cpp \
- ../../src/burn/drv/dataeast/d_simpl156.cpp \
- ../../src/burn/drv/dataeast/d_supbtime.cpp \
- ../../src/burn/drv/dataeast/d_tumblep.cpp \
- ../../src/burn/drv/dataeast/d_vaportra.cpp \
- ../../src/burn/drv/dataeast/deco16ic.cpp
-}
-
-#===============================================================================
-# GALAXIAN DRIVERS
-#===============================================================================
-$$DRV_GALAXIAN {
- message("Galaxian drivers enabled")
-
- HEADERS += \
- ../../src/burn/drv/galaxian/gal.h
-
- SOURCES += \
- ../../src/burn/drv/galaxian/d_galaxian.cpp \
- ../../src/burn/drv/galaxian/gal_gfx.cpp \
- ../../src/burn/drv/galaxian/gal_run.cpp \
- ../../src/burn/drv/galaxian/gal_sound.cpp \
- ../../src/burn/drv/galaxian/gal_stars.cpp
-}
-
-#===============================================================================
-# IREM DRIVERS
-#===============================================================================
-$$DRV_IREM {
- message("Irem drivers enabled")
-
- HEADERS += \
- ../../src/burn/drv/irem/irem_cpu.h
-
- SOURCES += \
- ../../src/burn/drv/irem/d_m62.cpp \
- ../../src/burn/drv/irem/d_m63.cpp \
- ../../src/burn/drv/irem/d_m72.cpp \
- ../../src/burn/drv/irem/d_m90.cpp \
- ../../src/burn/drv/irem/d_m92.cpp \
- ../../src/burn/drv/irem/d_m107.cpp \
- ../../src/burn/drv/irem/d_vigilant.cpp \
- ../../src/burn/drv/irem/irem_cpu.cpp
-}
-
-#===============================================================================
-# KONAMI DRIVERS
-#===============================================================================
-$$DRV_KONAMI {
- message("Konami drivers enabled")
-
- HEADERS += \
- ../../src/burn/drv/konami/konamiic.h
-
- SOURCES += \
- ../../src/burn/drv/konami/d_88games.cpp \
- ../../src/burn/drv/konami/d_ajax.cpp \
- ../../src/burn/drv/konami/d_aliens.cpp \
- ../../src/burn/drv/konami/d_blockhl.cpp \
- ../../src/burn/drv/konami/d_bottom9.cpp \
- ../../src/burn/drv/konami/d_contra.cpp \
- ../../src/burn/drv/konami/d_crimfght.cpp \
- ../../src/burn/drv/konami/d_gberet.cpp \
- ../../src/burn/drv/konami/d_gbusters.cpp \
- ../../src/burn/drv/konami/d_gradius3.cpp \
- ../../src/burn/drv/konami/d_gyruss.cpp \
- ../../src/burn/drv/konami/d_hcastle.cpp \
- ../../src/burn/drv/konami/d_hexion.cpp \
- ../../src/burn/drv/konami/d_kontest.cpp \
- ../../src/burn/drv/konami/d_mainevt.cpp \
- ../../src/burn/drv/konami/d_mikie.cpp \
- ../../src/burn/drv/konami/d_mogura.cpp \
- ../../src/burn/drv/konami/d_nemesis.cpp \
- ../../src/burn/drv/konami/d_parodius.cpp \
- ../../src/burn/drv/konami/d_pooyan.cpp \
- ../../src/burn/drv/konami/d_rollerg.cpp \
- ../../src/burn/drv/konami/d_scotrsht.cpp \
- ../../src/burn/drv/konami/d_simpsons.cpp \
- ../../src/burn/drv/konami/d_spy.cpp \
- ../../src/burn/drv/konami/d_surpratk.cpp \
- ../../src/burn/drv/konami/d_thunderx.cpp \
- ../../src/burn/drv/konami/d_tmnt.cpp \
- ../../src/burn/drv/konami/d_twin16.cpp \
- ../../src/burn/drv/konami/d_ultraman.cpp \
- ../../src/burn/drv/konami/d_vendetta.cpp \
- ../../src/burn/drv/konami/d_xmen.cpp \
- ../../src/burn/drv/konami/k051316.cpp \
- ../../src/burn/drv/konami/k051733.cpp \
- ../../src/burn/drv/konami/k051960.cpp \
- ../../src/burn/drv/konami/k052109.cpp \
- ../../src/burn/drv/konami/k053245.cpp \
- ../../src/burn/drv/konami/k053247.cpp \
- ../../src/burn/drv/konami/k053251.cpp \
- ../../src/burn/drv/konami/k053936.cpp \
- ../../src/burn/drv/konami/k054000.cpp \
- ../../src/burn/drv/konami/konamiic.cpp
-}
-
-#===============================================================================
-# MEGADRIVE DRIVERS
-#===============================================================================
-$$DRV_MEGADRIVE {
- message("Megadrive drivers enabled")
-
- HEADERS += \
- ../../src/burn/drv/megadrive/megadrive.h
-
- SOURCES += \
- ../../src/burn/drv/megadrive/d_megadrive.cpp \
- ../../src/burn/drv/megadrive/megadrive.cpp
-}
-
-#===============================================================================
-# NEOGEO DRIVERS
-#===============================================================================
-$$DRV_NEOGEO {
- message("Neogeo drivers enabled")
-
- HEADERS += \
- ../../src/burn/drv/neogeo/neo_sprite_render.h \
- ../../src/burn/drv/neogeo/neo_text_render.h \
- ../../src/burn/drv/neogeo/neogeo.h
-
- SOURCES += \
- ../../src/burn/drv/neogeo/d_neogeo.cpp \
- ../../src/burn/drv/neogeo/neo_decrypt.cpp \
- ../../src/burn/drv/neogeo/neo_palette.cpp \
- ../../src/burn/drv/neogeo/neo_run.cpp \
- ../../src/burn/drv/neogeo/neo_sprite.cpp \
- ../../src/burn/drv/neogeo/neo_text.cpp \
- ../../src/burn/drv/neogeo/neo_upd4990a.cpp \
- ../../src/burn/drv/neogeo/neogeo.cpp
-}
-
-#===============================================================================
-# PC-ENGINE DRIVERS
-#===============================================================================
-$$DRV_PCE {
- message("PC-Engine drivers enabled")
-
- HEADERS += \
- ../../src/burn/drv/pce/pce.h
-
- SOURCES += \
- ../../src/burn/drv/pce/d_pce.cpp \
- ../../src/burn/drv/pce/pce.cpp
-}
-
-#===============================================================================
-# PGM DRIVERS
-#===============================================================================
-$$DRV_PGM {
- message("PGM drivers enabled")
-
- HEADERS += \
- ../../src/burn/drv/pgm/pgm.h
-
- SOURCES += \
- ../../src/burn/drv/pgm/d_pgm.cpp \
- ../../src/burn/drv/pgm/pgm_crypt.cpp \
- ../../src/burn/drv/pgm/pgm_draw.cpp \
- ../../src/burn/drv/pgm/pgm_prot.cpp \
- ../../src/burn/drv/pgm/pgm_run.cpp
-}
-
-#===============================================================================
-# PRE90S DRIVERS
-#===============================================================================
-$$DRV_PRE90S {
- message("Pre90s drivers enabled")
-
- SOURCES += \
- ../../src/burn/drv/pre90s/d_4enraya.cpp \
- ../../src/burn/drv/pre90s/d_1942.cpp \
- ../../src/burn/drv/pre90s/d_1943.cpp \
- ../../src/burn/drv/pre90s/d_ambush.cpp \
- ../../src/burn/drv/pre90s/d_arabian.cpp \
- ../../src/burn/drv/pre90s/d_armedf.cpp \
- ../../src/burn/drv/pre90s/d_atetris.cpp \
- ../../src/burn/drv/pre90s/d_aztarac.cpp \
- ../../src/burn/drv/pre90s/d_baraduke.cpp \
- ../../src/burn/drv/pre90s/d_bionicc.cpp \
- ../../src/burn/drv/pre90s/d_blktiger.cpp \
- ../../src/burn/drv/pre90s/d_blockout.cpp \
- ../../src/burn/drv/pre90s/d_blueprnt.cpp \
- ../../src/burn/drv/pre90s/d_bombjack.cpp \
- ../../src/burn/drv/pre90s/d_capbowl.cpp \
- ../../src/burn/drv/pre90s/d_commando.cpp \
- ../../src/burn/drv/pre90s/d_cybertnk.cpp \
- ../../src/burn/drv/pre90s/d_ddragon.cpp \
- ../../src/burn/drv/pre90s/d_dkong.cpp \
- ../../src/burn/drv/pre90s/d_dynduke.cpp \
- ../../src/burn/drv/pre90s/d_epos.cpp \
- ../../src/burn/drv/pre90s/d_exedexes.cpp \
- ../../src/burn/drv/pre90s/d_funkybee.cpp \
- ../../src/burn/drv/pre90s/d_galaga.cpp \
- ../../src/burn/drv/pre90s/d_gauntlet.cpp \
- ../../src/burn/drv/pre90s/d_ginganin.cpp \
- ../../src/burn/drv/pre90s/d_gng.cpp \
- ../../src/burn/drv/pre90s/d_gunsmoke.cpp \
- ../../src/burn/drv/pre90s/d_higemaru.cpp \
- ../../src/burn/drv/pre90s/d_ikki.cpp \
- ../../src/burn/drv/pre90s/d_jack.cpp \
- ../../src/burn/drv/pre90s/d_kangaroo.cpp \
- ../../src/burn/drv/pre90s/d_kyugo.cpp \
- ../../src/burn/drv/pre90s/d_ladybug.cpp \
- ../../src/burn/drv/pre90s/d_lwings.cpp \
- ../../src/burn/drv/pre90s/d_madgear.cpp \
- ../../src/burn/drv/pre90s/d_marineb.cpp \
- ../../src/burn/drv/pre90s/d_markham.cpp \
- ../../src/burn/drv/pre90s/d_meijinsn.cpp \
- ../../src/burn/drv/pre90s/d_mitchell.cpp \
- ../../src/burn/drv/pre90s/d_mole.cpp \
- ../../src/burn/drv/pre90s/d_momoko.cpp \
- ../../src/burn/drv/pre90s/d_mrdo.cpp \
- ../../src/burn/drv/pre90s/d_mrflea.cpp \
- ../../src/burn/drv/pre90s/d_mustache.cpp \
- ../../src/burn/drv/pre90s/d_mystston.cpp \
- ../../src/burn/drv/pre90s/d_pac2650.cpp \
- ../../src/burn/drv/pre90s/d_pacland.cpp \
- ../../src/burn/drv/pre90s/d_pacman.cpp \
- ../../src/burn/drv/pre90s/d_pkunwar.cpp \
- ../../src/burn/drv/pre90s/d_prehisle.cpp \
- ../../src/burn/drv/pre90s/d_punchout.cpp \
- ../../src/burn/drv/pre90s/d_quizo.cpp \
- ../../src/burn/drv/pre90s/d_rallyx.cpp \
- ../../src/burn/drv/pre90s/d_renegade.cpp \
- ../../src/burn/drv/pre90s/d_route16.cpp \
- ../../src/burn/drv/pre90s/d_rpunch.cpp \
- ../../src/burn/drv/pre90s/d_scregg.cpp \
- ../../src/burn/drv/pre90s/d_sf.cpp \
- ../../src/burn/drv/pre90s/d_skyfox.cpp \
- ../../src/burn/drv/pre90s/d_skykid.cpp \
- ../../src/burn/drv/pre90s/d_snk68.cpp \
- ../../src/burn/drv/pre90s/d_solomon.cpp \
- ../../src/burn/drv/pre90s/d_sonson.cpp \
- ../../src/burn/drv/pre90s/d_srumbler.cpp \
- ../../src/burn/drv/pre90s/d_tail2nose.cpp \
- ../../src/burn/drv/pre90s/d_tecmo.cpp \
- ../../src/burn/drv/pre90s/d_terracre.cpp \
- ../../src/burn/drv/pre90s/d_tigeroad.cpp \
- ../../src/burn/drv/pre90s/d_toki.cpp \
- ../../src/burn/drv/pre90s/d_vulgus.cpp \
- ../../src/burn/drv/pre90s/d_wallc.cpp \
- ../../src/burn/drv/pre90s/d_wc90.cpp \
- ../../src/burn/drv/pre90s/d_wc90b.cpp \
- ../../src/burn/drv/pre90s/d_wwfsstar.cpp \
- ../../src/burn/drv/pre90s/d_xain.cpp
-}
-
-
-#===============================================================================
-# PSIKYO DRIVERS
-#===============================================================================
-$$DRV_PSIKYO {
- message("Psikyo drivers enabled")
-
- HEADERS += \
- ../../src/burn/drv/psikyo/psikyo_render.h \
- ../../src/burn/drv/psikyo/psikyo_sprite_func.h \
- ../../src/burn/drv/psikyo/psikyo.h \
- ../../src/burn/drv/psikyo/psikyosh_render.h
-
- SOURCES += \
- ../../src/burn/drv/psikyo/d_psikyo.cpp \
- ../../src/burn/drv/psikyo/d_psikyo4.cpp \
- ../../src/burn/drv/psikyo/d_psikyosh.cpp \
- ../../src/burn/drv/psikyo/psikyo_palette.cpp \
- ../../src/burn/drv/psikyo/psikyo_sprite.cpp \
- ../../src/burn/drv/psikyo/psikyo_tile.cpp \
- ../../src/burn/drv/psikyo/psikyosh_render.cpp
-}
-
-
-#===============================================================================
-# PST90S DRIVERS
-#===============================================================================
-$$DRV_PST90S {
- message("Pst90s drivers enabled")
-
- HEADERS += \
- ../../src/burn/drv/pst90s/kanekotb.h \
- ../../src/burn/drv/pst90s/nmk004.h
-
- SOURCES += \
- ../../src/burn/drv/pst90s/d_1945kiii.cpp \
- ../../src/burn/drv/pst90s/d_aerofgt.cpp \
- ../../src/burn/drv/pst90s/d_airbustr.cpp \
- ../../src/burn/drv/pst90s/d_aquarium.cpp \
- ../../src/burn/drv/pst90s/d_blmbycar.cpp \
- ../../src/burn/drv/pst90s/d_bloodbro.cpp \
- ../../src/burn/drv/pst90s/d_crospang.cpp \
- ../../src/burn/drv/pst90s/d_crshrace.cpp \
- ../../src/burn/drv/pst90s/d_dcon.cpp \
- ../../src/burn/drv/pst90s/d_ddragon3.cpp \
- ../../src/burn/drv/pst90s/d_deniam.cpp \
- ../../src/burn/drv/pst90s/d_diverboy.cpp \
- ../../src/burn/drv/pst90s/d_drgnmst.cpp \
- ../../src/burn/drv/pst90s/d_drtomy.cpp \
- ../../src/burn/drv/pst90s/d_egghunt.cpp \
- ../../src/burn/drv/pst90s/d_esd16.cpp \
- ../../src/burn/drv/pst90s/d_f1gp.cpp \
- ../../src/burn/drv/pst90s/d_fstarfrc.cpp \
- ../../src/burn/drv/pst90s/d_funybubl.cpp \
- ../../src/burn/drv/pst90s/d_fuukifg3.cpp \
- ../../src/burn/drv/pst90s/d_gaelco.cpp \
- ../../src/burn/drv/pst90s/d_gaiden.cpp \
- ../../src/burn/drv/pst90s/d_galpanic.cpp \
- ../../src/burn/drv/pst90s/d_galspnbl.cpp \
- ../../src/burn/drv/pst90s/d_gotcha.cpp \
- ../../src/burn/drv/pst90s/d_gumbo.cpp \
- ../../src/burn/drv/pst90s/d_hyperpac.cpp \
- ../../src/burn/drv/pst90s/d_jchan.cpp \
- ../../src/burn/drv/pst90s/d_kaneko16.cpp \
- ../../src/burn/drv/pst90s/d_lordgun.cpp \
- ../../src/burn/drv/pst90s/d_mcatadv.cpp \
- ../../src/burn/drv/pst90s/d_midas.cpp \
- ../../src/burn/drv/pst90s/d_mugsmash.cpp \
- ../../src/burn/drv/pst90s/d_news.cpp \
- ../../src/burn/drv/pst90s/d_nmg5.cpp \
- ../../src/burn/drv/pst90s/d_nmk16.cpp \
- ../../src/burn/drv/pst90s/d_ohmygod.cpp \
- ../../src/burn/drv/pst90s/d_pass.cpp \
- ../../src/burn/drv/pst90s/d_pirates.cpp \
- ../../src/burn/drv/pst90s/d_playmark.cpp \
- ../../src/burn/drv/pst90s/d_powerins.cpp \
- ../../src/burn/drv/pst90s/d_pushman.cpp \
- ../../src/burn/drv/pst90s/d_raiden.cpp \
- ../../src/burn/drv/pst90s/d_seta.cpp \
- ../../src/burn/drv/pst90s/d_seta2.cpp \
- ../../src/burn/drv/pst90s/d_shadfrce.cpp \
- ../../src/burn/drv/pst90s/d_silkroad.cpp \
- ../../src/burn/drv/pst90s/d_silvmil.cpp \
- ../../src/burn/drv/pst90s/d_speedspn.cpp \
- ../../src/burn/drv/pst90s/d_suna16.cpp \
- ../../src/burn/drv/pst90s/d_suprnova.cpp \
- ../../src/burn/drv/pst90s/d_taotaido.cpp \
- ../../src/burn/drv/pst90s/d_tecmosys.cpp \
- ../../src/burn/drv/pst90s/d_tumbleb.cpp \
- ../../src/burn/drv/pst90s/d_unico.cpp \
- ../../src/burn/drv/pst90s/d_vmetal.cpp \
- ../../src/burn/drv/pst90s/d_welltris.cpp \
- ../../src/burn/drv/pst90s/d_wwfwfest.cpp \
- ../../src/burn/drv/pst90s/d_xorworld.cpp \
- ../../src/burn/drv/pst90s/d_yunsun16.cpp \
- ../../src/burn/drv/pst90s/d_zerozone.cpp \
- ../../src/burn/drv/pst90s/nmk004.cpp
-}
-
-#===============================================================================
-# SEGA DRIVERS
-#===============================================================================
-$$DRV_SEGA {
- message("Sega drivers enabled")
-
- HEADERS += \
- ../../src/burn/drv/sega/fd1094.h \
- ../../src/burn/drv/sega/genesis_vid.h \
- ../../src/burn/drv/sega/mc8123.h \
- ../../src/burn/drv/sega/sys16.h
-
- SOURCES += \
- ../../src/burn/drv/sega/d_angelkds.cpp \
- ../../src/burn/drv/sega/d_bankp.cpp \
- ../../src/burn/drv/sega/d_dotrikun.cpp \
- ../../src/burn/drv/sega/d_hangon.cpp \
- ../../src/burn/drv/sega/d_outrun.cpp \
- ../../src/burn/drv/sega/d_suprloco.cpp \
- ../../src/burn/drv/sega/d_sys1.cpp \
- ../../src/burn/drv/sega/d_sys16a.cpp \
- ../../src/burn/drv/sega/d_sys16b.cpp \
- ../../src/burn/drv/sega/d_sys18.cpp \
- ../../src/burn/drv/sega/d_xbrd.cpp \
- ../../src/burn/drv/sega/d_ybrd.cpp \
- ../../src/burn/drv/sega/fd1089.cpp \
- ../../src/burn/drv/sega/fd1094.cpp \
- ../../src/burn/drv/sega/genesis_vid.cpp \
- ../../src/burn/drv/sega/mc8123.cpp \
- ../../src/burn/drv/sega/sys16_fd1094.cpp \
- ../../src/burn/drv/sega/sys16_gfx.cpp \
- ../../src/burn/drv/sega/sys16_run.cpp
-}
-
-#===============================================================================
-# MASTERSYSTEM DRIVERS
-#===============================================================================
-$$DRV_SMS {
- message("SMS drivers enabled")
-
- HEADERS += \
- ../../src/burn/drv/sms/sms.h
-
- SOURCES += \
- ../../src/burn/drv/sms/d_sms.cpp \
- ../../src/burn/drv/sms/sms.cpp
-}
-
-#===============================================================================
-# SNES DRIVERS
-#===============================================================================
-$$DRV_SNES {
- message("SNES drivers enabled")
-
- HEADERS += \
- ../../src/burn/drv/snes/snes.h
-
- SOURCES += \
- ../../src/burn/drv/snes/d_snes.cpp \
- ../../src/burn/drv/snes/snes_65816.cpp \
- ../../src/burn/drv/snes/snes_io.cpp \
- ../../src/burn/drv/snes/snes_main.cpp \
- ../../src/burn/drv/snes/snes_ppu.cpp \
- ../../src/burn/drv/snes/snes_spc700.cpp
-}
-
-
-#===============================================================================
-# TAITO DRIVERS
-#===============================================================================
-$$DRV_TAITO {
- message("Taito drivers enabled")
-
- HEADERS += \
- ../../src/burn/drv/taito/taito_ic.h \
- ../../src/burn/drv/taito/taito_m68705.h \
- ../../src/burn/drv/taito/taito.h \
- ../../src/burn/drv/taito/tnzs_prot.h
-
- SOURCES += \
- ../../src/burn/drv/taito/cchip.cpp \
- ../../src/burn/drv/taito/d_arkanoid.cpp \
- ../../src/burn/drv/taito/d_ashnojoe.cpp \
- ../../src/burn/drv/taito/d_asuka.cpp \
- ../../src/burn/drv/taito/d_bublbobl.cpp \
- ../../src/burn/drv/taito/d_chaknpop.cpp \
- ../../src/burn/drv/taito/d_darius2.cpp \
- ../../src/burn/drv/taito/d_darkmist.cpp \
- ../../src/burn/drv/taito/d_exzisus.cpp \
- ../../src/burn/drv/taito/d_flstory.cpp \
- ../../src/burn/drv/taito/d_lkage.cpp \
- ../../src/burn/drv/taito/d_minivdr.cpp \
- ../../src/burn/drv/taito/d_othunder.cpp \
- ../../src/burn/drv/taito/d_retofinv.cpp \
- ../../src/burn/drv/taito/d_slapshot.cpp \
- ../../src/burn/drv/taito/d_superchs.cpp \
- ../../src/burn/drv/taito/d_taitob.cpp \
- ../../src/burn/drv/taito/d_taitof2.cpp \
- ../../src/burn/drv/taito/d_taitomisc.cpp \
- ../../src/burn/drv/taito/d_taitox.cpp \
- ../../src/burn/drv/taito/d_taitoz.cpp \
- ../../src/burn/drv/taito/d_tnzs.cpp \
- ../../src/burn/drv/taito/d_wyvernf0.cpp \
- ../../src/burn/drv/taito/pc080sn.cpp \
- ../../src/burn/drv/taito/pc090oj.cpp \
- ../../src/burn/drv/taito/taito_ic.cpp \
- ../../src/burn/drv/taito/taito_m68705.cpp \
- ../../src/burn/drv/taito/taito.cpp \
- ../../src/burn/drv/taito/tc0100scn.cpp \
- ../../src/burn/drv/taito/tc0110pcr.cpp \
- ../../src/burn/drv/taito/tc0140syt.cpp \
- ../../src/burn/drv/taito/tc0150rod.cpp \
- ../../src/burn/drv/taito/tc0180vcu.cpp \
- ../../src/burn/drv/taito/tc0220ioc.cpp \
- ../../src/burn/drv/taito/tc0280grd.cpp \
- ../../src/burn/drv/taito/tc0360pri.cpp \
- ../../src/burn/drv/taito/tc0480scp.cpp \
- ../../src/burn/drv/taito/tc0510nio.cpp \
- ../../src/burn/drv/taito/tc0640fio.cpp \
- ../../src/burn/drv/taito/tnzs_prot.cpp
-}
-
-
-#===============================================================================
-# TOAPLAN DRIVERS
-#===============================================================================
-$$DRV_TOAPLAN {
- message("Toaplan drivers enabled")
-
- HEADERS += \
- ../../src/burn/drv/toaplan/toa_extratext.h \
- ../../src/burn/drv/toaplan/toa_gp9001_render.h \
- ../../src/burn/drv/toaplan/toaplan.h
-
- SOURCES += \
- ../../src/burn/drv/toaplan/d_batrider.cpp \
- ../../src/burn/drv/toaplan/d_batsugun.cpp \
- ../../src/burn/drv/toaplan/d_battleg.cpp \
- ../../src/burn/drv/toaplan/d_bbakraid.cpp \
- ../../src/burn/drv/toaplan/d_demonwld.cpp \
- ../../src/burn/drv/toaplan/d_dogyuun.cpp \
- ../../src/burn/drv/toaplan/d_fixeight.cpp \
- ../../src/burn/drv/toaplan/d_ghox.cpp \
- ../../src/burn/drv/toaplan/d_hellfire.cpp \
- ../../src/burn/drv/toaplan/d_kbash.cpp \
- ../../src/burn/drv/toaplan/d_kbash2.cpp \
- ../../src/burn/drv/toaplan/d_mahoudai.cpp \
- ../../src/burn/drv/toaplan/d_outzone.cpp \
- ../../src/burn/drv/toaplan/d_pipibibs.cpp \
- ../../src/burn/drv/toaplan/d_rallybik.cpp \
- ../../src/burn/drv/toaplan/d_samesame.cpp \
- ../../src/burn/drv/toaplan/d_shippumd.cpp \
- ../../src/burn/drv/toaplan/d_snowbro2.cpp \
- ../../src/burn/drv/toaplan/d_tekipaki.cpp \
- ../../src/burn/drv/toaplan/d_tigerheli.cpp \
- ../../src/burn/drv/toaplan/d_truxton.cpp \
- ../../src/burn/drv/toaplan/d_truxton2.cpp \
- ../../src/burn/drv/toaplan/d_vfive.cpp \
- ../../src/burn/drv/toaplan/d_vimana.cpp \
- ../../src/burn/drv/toaplan/d_zerowing.cpp \
- ../../src/burn/drv/toaplan/toa_bcu2.cpp \
- ../../src/burn/drv/toaplan/toa_extratext.cpp \
- ../../src/burn/drv/toaplan/toa_gp9001.cpp \
- ../../src/burn/drv/toaplan/toa_palette.cpp \
- ../../src/burn/drv/toaplan/toaplan.cpp \
- ../../src/burn/drv/toaplan/toaplan1.cpp
-}
-
-SOURCES += \
- ../../src/burn/devices/8255ppi.cpp \
- ../../src/burn/devices/8257dma.cpp \
- ../../src/burn/devices/eeprom.cpp \
- ../../src/burn/devices/pandora.cpp \
- ../../src/burn/devices/seibusnd.cpp \
- ../../src/burn/devices/sknsspr.cpp \
- ../../src/burn/devices/slapstic.cpp \
- ../../src/burn/devices/t5182.cpp \
- ../../src/burn/devices/timekpr.cpp \
- ../../src/burn/devices/tms34061.cpp \
- ../../src/burn/devices/v3021.cpp \
- ../../src/burn/devices/vdc.cpp \
- ../../src/burn/snd/burn_y8950.cpp \
- ../../src/burn/snd/burn_ym2151.cpp \
- ../../src/burn/snd/burn_ym2203.cpp \
- ../../src/burn/snd/burn_ym2413.cpp \
- ../../src/burn/snd/burn_ym2608.cpp \
- ../../src/burn/snd/burn_ym2610.cpp \
- ../../src/burn/snd/burn_ym2612.cpp \
- ../../src/burn/snd/burn_ym3526.cpp \
- ../../src/burn/snd/burn_ym3812.cpp \
- ../../src/burn/snd/burn_ymf278b.cpp \
- ../../src/burn/snd/c6280.cpp \
- ../../src/burn/snd/dac.cpp \
- ../../src/burn/snd/es5506.cpp \
- ../../src/burn/snd/es8712.cpp \
- ../../src/burn/snd/flt_rc.cpp \
- ../../src/burn/snd/ics2115.cpp \
- ../../src/burn/snd/iremga20.cpp \
- ../../src/burn/snd/k005289.cpp \
- ../../src/burn/snd/k007232.cpp \
- ../../src/burn/snd/k051649.cpp \
- ../../src/burn/snd/k053260.cpp \
- ../../src/burn/snd/k054539.cpp \
- ../../src/burn/snd/msm5205.cpp \
- ../../src/burn/snd/msm5232.cpp \
- ../../src/burn/snd/msm6295.cpp \
- ../../src/burn/snd/namco_snd.cpp \
- ../../src/burn/snd/nes_apu.cpp \
- ../../src/burn/snd/rf5c68.cpp \
- ../../src/burn/snd/saa1099.cpp \
- ../../src/burn/snd/samples.cpp \
- ../../src/burn/snd/segapcm.cpp \
- ../../src/burn/snd/sn76496.cpp \
- ../../src/burn/snd/upd7759.cpp \
- ../../src/burn/snd/vlm5030.cpp \
- ../../src/burn/snd/x1010.cpp \
- ../../src/burn/snd/ymz280b.cpp \
- ../../src/burn/snd/ay8910.c \
- ../../src/burn/snd/fm.c \
- ../../src/burn/snd/fmopl.c \
- ../../src/burn/snd/ym2151.c \
- ../../src/burn/snd/ym2413.c \
- ../../src/burn/snd/ymdeltat.c \
- ../../src/burn/snd/ymf278b.c \
- ../../src/burn/burn_sound.cpp \
- ../../src/burn/burn.cpp \
- ../../src/burn/cheat.cpp \
- ../../src/burn/debug_track.cpp \
- ../../src/burn/hiscore.cpp \
- ../../src/burn/load.cpp \
- ../../src/burn/tiles_generic.cpp \
- ../../src/burn/timer.cpp \
- ../../src/burn/vector.cpp \
- ../../src/burn/burn_sound_c.cpp \
- ../../src/burn/burn_memory.cpp \
- ../../src/burn/burn_led.cpp \
- ../../src/burn/burn_gun.cpp \
- ../../src/cpu/hd6309_intf.cpp \
- ../../src/cpu/konami_intf.cpp \
- ../../src/cpu/m6502_intf.cpp \
- ../../src/cpu/m6800_intf.cpp \
- ../../src/cpu/m6805_intf.cpp \
- ../../src/cpu/m6809_intf.cpp \
- ../../src/cpu/m68000_intf.cpp \
- ../../src/cpu/nec_intf.cpp \
- ../../src/cpu/pic16c5x_intf.cpp \
- ../../src/cpu/s2650_intf.cpp \
- ../../src/cpu/h6280_intf.cpp \
- ../../src/cpu/arm7_intf.cpp \
- ../../src/cpu/arm_intf.cpp \
- ../../src/cpu/arm/arm.cpp \
- ../../src/cpu/arm7/arm7.cpp \
- ../../src/cpu/arm7/arm7core.c \
- ../../src/cpu/arm7/arm7exec.c \
- ../../src/cpu/h6280/h6280.cpp \
- ../../src/cpu/h6280/tblh6280.c \
- ../../src/cpu/hd6309/hd6309.cpp \
- ../../src/cpu/hd6309/6309ops.c \
- ../../src/cpu/hd6309/6309tbl.c \
- ../../src/cpu/i8039/i8039.cpp \
- ../../src/cpu/konami/konami.cpp \
- ../../src/cpu/konami/konamops.c \
- ../../src/cpu/konami/konamtbl.c \
- ../../src/cpu/m6502/m6502.cpp \
- ../../src/cpu/m6502/t65c02.c \
- ../../src/cpu/m6502/t65sc02.c \
- ../../src/cpu/m6502/t6502.c \
- ../../src/cpu/m6502/tdeco16.c \
- ../../src/cpu/m6502/tn2a03.c \
- ../../src/cpu/m6800/m6800.cpp \
- ../../src/cpu/m6800/6800ops.c \
- ../../src/cpu/m6800/6800tbl.c \
- ../../src/cpu/m6805/m6805.cpp \
- ../../src/cpu/m6805/6805ops.c \
- ../../src/cpu/m6809/m6809.cpp \
- ../../src/cpu/m6809/6809ops.c \
- ../../src/cpu/m6809/6809tbl.c \
- ../../src/cpu/nec/nec.cpp \
- ../../src/cpu/nec/v25.cpp \
- ../../src/cpu/nec/necinstr.c \
- ../../src/cpu/nec/v25instr.c \
- ../../src/cpu/nec/v25sfr.c \
- ../../src/cpu/pic16c5x/pic16c5x.cpp \
- ../../src/cpu/s2650/s2650.cpp \
- ../../src/cpu/sh2/sh2.cpp \
- ../../src/cpu/z80/z80.cpp \
- ../../src/cpu/z80/z80daisy.cpp \
- ../../src/cpu/m68k/m68kcpu.c \
- ../../src/burner/conc.cpp \
- ../../src/burner/cong.cpp \
- ../../src/burner/dat.cpp \
- ../../src/burner/gamc.cpp \
- ../../src/burner/gami.cpp \
- ../../src/burner/image.cpp \
- ../../src/burner/misc.cpp \
- ../../src/burner/sshot.cpp \
- ../../src/burner/state.cpp \
- ../../src/burner/statec.cpp \
- ../../src/burner/zipfn.cpp \
- ../../src/burner/ioapi.c \
- ../../src/burner/unzip.c \
- ../../src/burner/sdl/bzip.cpp \
- ../../src/burner/sdl/config.cpp \
- ../../src/burner/sdl/drv.cpp \
- ../../src/burner/sdl/inpdipsw.cpp \
- ../../src/burner/sdl/main.cpp \
- ../../src/burner/sdl/run.cpp \
- ../../src/burner/sdl/stated.cpp \
- ../../src/burner/sdl/stringset.cpp \
- ../../src/dep/libs/libpng/png.c \
- ../../src/dep/libs/libpng/pngerror.c \
- ../../src/dep/libs/libpng/pngget.c \
- ../../src/dep/libs/libpng/pngmem.c \
- ../../src/dep/libs/libpng/pngpread.c \
- ../../src/dep/libs/libpng/pngread.c \
- ../../src/dep/libs/libpng/pngrio.c \
- ../../src/dep/libs/libpng/pngrtran.c \
- ../../src/dep/libs/libpng/pngrutil.c \
- ../../src/dep/libs/libpng/pngset.c \
- ../../src/dep/libs/libpng/pngtrans.c \
- ../../src/dep/libs/libpng/pngwio.c \
- ../../src/dep/libs/libpng/pngwrite.c \
- ../../src/dep/libs/libpng/pngwtran.c \
- ../../src/dep/libs/libpng/pngwutil.c \
- ../../src/dep/libs/zlib/adler32.c \
- ../../src/dep/libs/zlib/compress.c \
- ../../src/dep/libs/zlib/crc32.c \
- ../../src/dep/libs/zlib/deflate.c \
- ../../src/dep/libs/zlib/gzclose.c \
- ../../src/dep/libs/zlib/gzlib.c \
- ../../src/dep/libs/zlib/gzread.c \
- ../../src/dep/libs/zlib/gzwrite.c \
- ../../src/dep/libs/zlib/infback.c \
- ../../src/dep/libs/zlib/inffast.c \
- ../../src/dep/libs/zlib/inflate.c \
- ../../src/dep/libs/zlib/inftrees.c \
- ../../src/dep/libs/zlib/trees.c \
- ../../src/dep/libs/zlib/uncompr.c \
- ../../src/dep/libs/zlib/zutil.c \
- ../../src/intf/interface.cpp \
- ../../src/intf/audio/aud_dsp.cpp \
- ../../src/intf/audio/aud_interface.cpp \
- ../../src/intf/audio/lowpass2.cpp \
- ../../src/intf/audio/sdl/aud_sdl.cpp \
- ../../src/intf/cd/cd_interface.cpp \
- ../../src/intf/input/inp_interface.cpp \
- ../../src/intf/input/sdl/inp_sdl.cpp \
- ../../src/intf/video/vid_interface.cpp \
- ../../src/intf/video/vid_support.cpp \
- ../../src/intf/video/sdl/vid_sdlfx.cpp \
- ../../src/intf/video/sdl/vid_sdlopengl.cpp \
- ../../src/cpu/z80_intf.cpp \
- ../../src/burner/libretro/neocdlist.cpp \
- ../../src/intf/video/vid_softfx.cpp \
- ../../src/intf/video/scalers/2xpm.cpp \
- ../../src/intf/video/scalers/2xsai.cpp \
- ../../src/intf/video/scalers/ddt3x.cpp \
- ../../src/intf/video/scalers/epx.cpp \
- ../../src/intf/video/scalers/hq2xs_16.cpp \
- ../../src/intf/video/scalers/hq2xs.cpp \
- ../../src/intf/video/scalers/xbr.cpp
-
-HEADERS += \
- ../../src/burn/devices/8255ppi.h \
- ../../src/burn/devices/8257dma.h \
- ../../src/burn/devices/eeprom.h \
- ../../src/burn/devices/pandora.h \
- ../../src/burn/devices/seibusnd.h \
- ../../src/burn/devices/sknsspr.h \
- ../../src/burn/devices/slapstic.h \
- ../../src/burn/devices/t5182.h \
- ../../src/burn/devices/timekpr.h \
- ../../src/burn/devices/tms34061.h \
- ../../src/burn/devices/v3021.h \
- ../../src/burn/devices/vdc.h \
- ../../src/burn/snd/ay8910.h \
- ../../src/burn/snd/burn_y8950.h \
- ../../src/burn/snd/burn_ym2151.h \
- ../../src/burn/snd/burn_ym2203.h \
- ../../src/burn/snd/burn_ym2413.h \
- ../../src/burn/snd/burn_ym2608.h \
- ../../src/burn/snd/burn_ym2610.h \
- ../../src/burn/snd/burn_ym2612.h \
- ../../src/burn/snd/burn_ym3526.h \
- ../../src/burn/snd/burn_ym3812.h \
- ../../src/burn/snd/burn_ymf278b.h \
- ../../src/burn/snd/c6280.h \
- ../../src/burn/snd/dac.h \
- ../../src/burn/snd/es5506.h \
- ../../src/burn/snd/es8712.h \
- ../../src/burn/snd/flt_rc.h \
- ../../src/burn/snd/fm.h \
- ../../src/burn/snd/fmopl.h \
- ../../src/burn/snd/ics2115.h \
- ../../src/burn/snd/iremga20.h \
- ../../src/burn/snd/k005289.h \
- ../../src/burn/snd/k007232.h \
- ../../src/burn/snd/k051649.h \
- ../../src/burn/snd/k053260.h \
- ../../src/burn/snd/k054539.h \
- ../../src/burn/snd/msm5205.h \
- ../../src/burn/snd/msm5232.h \
- ../../src/burn/snd/msm6295.h \
- ../../src/burn/snd/namco_snd.h \
- ../../src/burn/snd/nes_apu.h \
- ../../src/burn/snd/nes_defs.h \
- ../../src/burn/snd/rescap.h \
- ../../src/burn/snd/rf5c68.h \
- ../../src/burn/snd/saa1099.h \
- ../../src/burn/snd/samples.h \
- ../../src/burn/snd/segapcm.h \
- ../../src/burn/snd/sn76496.h \
- ../../src/burn/snd/upd7759.h \
- ../../src/burn/snd/vlm5030.h \
- ../../src/burn/snd/x1010.h \
- ../../src/burn/snd/ym2151.h \
- ../../src/burn/snd/ym2413.h \
- ../../src/burn/snd/ymdeltat.h \
- ../../src/burn/snd/ymf278b.h \
- ../../src/burn/snd/ymz280b.h \
- ../../src/burn/burn_sound.h \
- ../../src/burn/burn.h \
- ../../src/burn/burnint.h \
- ../../src/burn/cheat.h \
- ../../src/burn/driver.h \
- ../../src/burn/hiscore.h \
- ../../src/burn/state.h \
- ../../src/burn/stdfunc.h \
- ../../src/burn/tiles_generic.h \
- ../../src/burn/timer.h \
- ../../src/burn/vector.h \
- ../../src/burn/version.h \
- ../../src/burn/burn_led.h \
- ../../src/burn/burn_gun.h \
- ../../src/burn/bitswap.h \
- ../../src/cpu/h6280_intf.h \
- ../../src/cpu/hd6309_intf.h \
- ../../src/cpu/konami_intf.h \
- ../../src/cpu/m6502_intf.h \
- ../../src/cpu/m6800_intf.h \
- ../../src/cpu/m6805_intf.h \
- ../../src/cpu/m6809_intf.h \
- ../../src/cpu/m68000_debug.h \
- ../../src/cpu/m68000_intf.h \
- ../../src/cpu/nec_intf.h \
- ../../src/cpu/pic16c5x_intf.h \
- ../../src/cpu/s2650_intf.h \
- ../../src/cpu/arm7_intf.h \
- ../../src/cpu/arm_intf.h \
- ../../src/cpu/arm7/arm7core.h \
- ../../src/cpu/h6280/h6280.h \
- ../../src/cpu/h6280/h6280ops.h \
- ../../src/cpu/hd6309/hd6309.h \
- ../../src/cpu/i8039/i8039.h \
- ../../src/cpu/konami/konami.h \
- ../../src/cpu/m6502/ill02.h \
- ../../src/cpu/m6502/m6502.h \
- ../../src/cpu/m6502/ops02.h \
- ../../src/cpu/m6502/opsc02.h \
- ../../src/cpu/m6502/opsn2a03.h \
- ../../src/cpu/m6800/m6800.h \
- ../../src/cpu/m6805/m6805.h \
- ../../src/cpu/m6809/m6809.h \
- ../../src/cpu/nec/nec.h \
- ../../src/cpu/nec/necea.h \
- ../../src/cpu/nec/necinstr.h \
- ../../src/cpu/nec/necmacro.h \
- ../../src/cpu/nec/necmodrm.h \
- ../../src/cpu/nec/necpriv.h \
- ../../src/cpu/nec/v25instr.h \
- ../../src/cpu/nec/v25priv.h \
- ../../src/cpu/pic16c5x/pic16c5x.h \
- ../../src/cpu/s2650/s2650.h \
- ../../src/cpu/z80/z80.h \
- ../../src/cpu/z80/z80daisy.h \
- ../../src/cpu/m68k/m68kcpu.h \
- ../../src/cpu/m68k/m68kconf.h \
- ../../src/burner/burner.h \
- ../../src/burner/gameinp.h \
- ../../src/burner/ioapi.h \
- ../../src/burner/neocdlist.h \
- ../../src/burner/title.h \
- ../../src/burner/unzip.h \
- ../../src/burner/sdl/tchar.h \
- ../../src/dep/libs/libpng/png.h \
- ../../src/dep/libs/libpng/pngconf.h \
- ../../src/dep/libs/libpng/pngdebug.h \
- ../../src/dep/libs/libpng/pnginfo.h \
- ../../src/dep/libs/libpng/pnglibconf.h \
- ../../src/dep/libs/libpng/pngpriv.h \
- ../../src/dep/libs/libpng/pngstruct.h \
- ../../src/dep/libs/zlib/crc32.h \
- ../../src/dep/libs/zlib/deflate.h \
- ../../src/dep/libs/zlib/gzguts.h \
- ../../src/dep/libs/zlib/inffast.h \
- ../../src/dep/libs/zlib/inffixed.h \
- ../../src/dep/libs/zlib/inflate.h \
- ../../src/dep/libs/zlib/inftrees.h \
- ../../src/dep/libs/zlib/trees.h \
- ../../src/dep/libs/zlib/zconf.h \
- ../../src/dep/libs/zlib/zconf.h.in \
- ../../src/dep/libs/zlib/zlib.h \
- ../../src/dep/libs/zlib/zutil.h \
- ../../src/intf/interface.h \
- ../../src/intf/audio/aud_dsp.h \
- ../../src/intf/audio/lowpass2.h \
- ../../src/intf/cd/cd_interface.h \
- ../../src/intf/input/inp_keys.h \
- ../../src/intf/input/sdl/inp_sdl_keys.h \
- ../../src/intf/video/vid_support.h \
- ../../src/burner/sdl/burner_sdl.h \
- ../../src/cpu/sh2_intf.h \
- ../../src/cpu/z80_intf.h \
- ../../src/intf/video/vid_softfx.h \
- ../../src/intf/video/scalers/hq_shared32.h \
- ../../src/intf/video/scalers/hq2xs.h \
- ../../src/intf/video/scalers/hq3xs.h \
- ../../src/intf/video/scalers/interp.h \
- ../../src/intf/video/scalers/scale2x_vc.h \
- ../../src/intf/video/scalers/scale2x.h \
- ../../src/intf/video/scalers/scale3x.h \
- ../../src/intf/video/scalers/xbr.h
-
-OTHER_FILES +=
diff --git a/jan/projectfiles/visualstudio-2003-libretro-xbox1/fba_vs2003_libretro_xbox1.sln b/jan/projectfiles/visualstudio-2003-libretro-xbox1/fba_vs2003_libretro_xbox1.sln
deleted file mode 100644
index d606ab40a..000000000
--- a/jan/projectfiles/visualstudio-2003-libretro-xbox1/fba_vs2003_libretro_xbox1.sln
+++ /dev/null
@@ -1,30 +0,0 @@
-Microsoft Visual Studio Solution File, Format Version 8.00
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "visualstudio-2003-libretro-xbox1", "fba_vs2003_libretro_xbox1.vcproj", "{812368D1-1F0C-4480-81F1-7FB1EC247E58}"
- ProjectSection(ProjectDependencies) = postProject
- EndProjectSection
-EndProject
-Global
- GlobalSection(SolutionConfiguration) = preSolution
- Debug = Debug
- Profile = Profile
- Profile_FastCap = Profile_FastCap
- Release = Release
- Release_LTCG = Release_LTCG
- EndGlobalSection
- GlobalSection(ProjectConfiguration) = postSolution
- {812368D1-1F0C-4480-81F1-7FB1EC247E58}.Debug.ActiveCfg = Debug|Xbox
- {812368D1-1F0C-4480-81F1-7FB1EC247E58}.Debug.Build.0 = Debug|Xbox
- {812368D1-1F0C-4480-81F1-7FB1EC247E58}.Profile.ActiveCfg = Profile|Xbox
- {812368D1-1F0C-4480-81F1-7FB1EC247E58}.Profile.Build.0 = Profile|Xbox
- {812368D1-1F0C-4480-81F1-7FB1EC247E58}.Profile_FastCap.ActiveCfg = Profile_FastCap|Xbox
- {812368D1-1F0C-4480-81F1-7FB1EC247E58}.Profile_FastCap.Build.0 = Profile_FastCap|Xbox
- {812368D1-1F0C-4480-81F1-7FB1EC247E58}.Release.ActiveCfg = Release|Xbox
- {812368D1-1F0C-4480-81F1-7FB1EC247E58}.Release.Build.0 = Release|Xbox
- {812368D1-1F0C-4480-81F1-7FB1EC247E58}.Release_LTCG.ActiveCfg = Release_LTCG|Xbox
- {812368D1-1F0C-4480-81F1-7FB1EC247E58}.Release_LTCG.Build.0 = Release_LTCG|Xbox
- EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- EndGlobalSection
- GlobalSection(ExtensibilityAddIns) = postSolution
- EndGlobalSection
-EndGlobal
diff --git a/jan/projectfiles/visualstudio-2003-libretro-xbox1/fba_vs2003_libretro_xbox1.vcproj b/jan/projectfiles/visualstudio-2003-libretro-xbox1/fba_vs2003_libretro_xbox1.vcproj
deleted file mode 100644
index a4b004389..000000000
--- a/jan/projectfiles/visualstudio-2003-libretro-xbox1/fba_vs2003_libretro_xbox1.vcproj
+++ /dev/null
@@ -1,3112 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/jan/projectfiles/visualstudio-2003-libretro-xbox1/stdint.h b/jan/projectfiles/visualstudio-2003-libretro-xbox1/stdint.h
deleted file mode 100644
index 9d8fe7b0a..000000000
--- a/jan/projectfiles/visualstudio-2003-libretro-xbox1/stdint.h
+++ /dev/null
@@ -1,249 +0,0 @@
-// ISO C9x compliant stdint.h for Microsoft Visual Studio
-// Based on ISO/IEC 9899:TC2 Committee draft (May 6, 2005) WG14/N1124
-//
-// Copyright (c) 2006-2008 Alexander Chemeris
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice,
-// this list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright
-// notice, this list of conditions and the following disclaimer in the
-// documentation and/or other materials provided with the distribution.
-//
-// 3. The name of the author may be used to endorse or promote products
-// derived from this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
-// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
-// EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
-// OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-// OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
-// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-///////////////////////////////////////////////////////////////////////////////
-#ifndef __RARCH_STDINT_H
-#define __RARCH_STDINT_H
-
-#if _MSC_VER && (_MSC_VER < 1600)
-//pre-MSVC 2010 needs an implementation of stdint.h
-
-#if _MSC_VER > 1000
-#pragma once
-#endif
-
-#include
-
-// For Visual Studio 6 in C++ mode and for many Visual Studio versions when
-// compiling for ARM we should wrap include with 'extern "C++" {}'
-// or compiler give many errors like this:
-// error C2733: second C linkage of overloaded function 'wmemchr' not allowed
-#ifdef __cplusplus
-extern "C" {
-#endif
-# include
-#ifdef __cplusplus
-}
-#endif
-
-// Define _W64 macros to mark types changing their size, like intptr_t.
-#ifndef _W64
-# if !defined(__midl) && (defined(_X86_) || defined(_M_IX86)) && _MSC_VER >= 1300
-# define _W64 __w64
-# else
-# define _W64
-# endif
-#endif
-
-
-// 7.18.1 Integer types
-
-// 7.18.1.1 Exact-width integer types
-
-// Visual Studio 6 and Embedded Visual C++ 4 doesn't
-// realize that, e.g. char has the same size as __int8
-// so we give up on __intX for them.
-#if (_MSC_VER < 1300)
- typedef signed char int8_t;
- typedef signed short int16_t;
- typedef signed int int32_t;
- typedef unsigned char uint8_t;
- typedef unsigned short uint16_t;
- typedef unsigned int uint32_t;
-#else
- typedef signed __int8 int8_t;
- typedef signed __int16 int16_t;
- typedef signed __int32 int32_t;
- typedef unsigned __int8 uint8_t;
- typedef unsigned __int16 uint16_t;
- typedef unsigned __int32 uint32_t;
-#endif
-typedef signed __int64 int64_t;
-typedef unsigned __int64 uint64_t;
-
-
-// 7.18.1.2 Minimum-width integer types
-typedef int8_t int_least8_t;
-typedef int16_t int_least16_t;
-typedef int32_t int_least32_t;
-typedef int64_t int_least64_t;
-typedef uint8_t uint_least8_t;
-typedef uint16_t uint_least16_t;
-typedef uint32_t uint_least32_t;
-typedef uint64_t uint_least64_t;
-
-// 7.18.1.3 Fastest minimum-width integer types
-typedef int8_t int_fast8_t;
-typedef int16_t int_fast16_t;
-typedef int32_t int_fast32_t;
-typedef int64_t int_fast64_t;
-typedef uint8_t uint_fast8_t;
-typedef uint16_t uint_fast16_t;
-typedef uint32_t uint_fast32_t;
-typedef uint64_t uint_fast64_t;
-
-// 7.18.1.4 Integer types capable of holding object pointers
-#ifdef _WIN64 // [
- typedef signed __int64 intptr_t;
- typedef unsigned __int64 uintptr_t;
-#else // _WIN64 ][
- typedef _W64 signed int intptr_t;
- typedef _W64 unsigned int uintptr_t;
-#endif // _WIN64 ]
-
-// 7.18.1.5 Greatest-width integer types
-typedef int64_t intmax_t;
-typedef uint64_t uintmax_t;
-
-
-// 7.18.2 Limits of specified-width integer types
-
-#if !defined(__cplusplus) || defined(__STDC_LIMIT_MACROS) // [ See footnote 220 at page 257 and footnote 221 at page 259
-
-// 7.18.2.1 Limits of exact-width integer types
-#define INT8_MIN ((int8_t)_I8_MIN)
-#define INT8_MAX _I8_MAX
-#define INT16_MIN ((int16_t)_I16_MIN)
-#define INT16_MAX _I16_MAX
-#define INT32_MIN ((int32_t)_I32_MIN)
-#define INT32_MAX _I32_MAX
-#define INT64_MIN ((int64_t)_I64_MIN)
-#define INT64_MAX _I64_MAX
-#define UINT8_MAX _UI8_MAX
-#define UINT16_MAX _UI16_MAX
-#define UINT32_MAX _UI32_MAX
-#define UINT64_MAX _UI64_MAX
-
-// 7.18.2.2 Limits of minimum-width integer types
-#define INT_LEAST8_MIN INT8_MIN
-#define INT_LEAST8_MAX INT8_MAX
-#define INT_LEAST16_MIN INT16_MIN
-#define INT_LEAST16_MAX INT16_MAX
-#define INT_LEAST32_MIN INT32_MIN
-#define INT_LEAST32_MAX INT32_MAX
-#define INT_LEAST64_MIN INT64_MIN
-#define INT_LEAST64_MAX INT64_MAX
-#define UINT_LEAST8_MAX UINT8_MAX
-#define UINT_LEAST16_MAX UINT16_MAX
-#define UINT_LEAST32_MAX UINT32_MAX
-#define UINT_LEAST64_MAX UINT64_MAX
-
-// 7.18.2.3 Limits of fastest minimum-width integer types
-#define INT_FAST8_MIN INT8_MIN
-#define INT_FAST8_MAX INT8_MAX
-#define INT_FAST16_MIN INT16_MIN
-#define INT_FAST16_MAX INT16_MAX
-#define INT_FAST32_MIN INT32_MIN
-#define INT_FAST32_MAX INT32_MAX
-#define INT_FAST64_MIN INT64_MIN
-#define INT_FAST64_MAX INT64_MAX
-#define UINT_FAST8_MAX UINT8_MAX
-#define UINT_FAST16_MAX UINT16_MAX
-#define UINT_FAST32_MAX UINT32_MAX
-#define UINT_FAST64_MAX UINT64_MAX
-
-// 7.18.2.4 Limits of integer types capable of holding object pointers
-#ifdef _WIN64 // [
-# define INTPTR_MIN INT64_MIN
-# define INTPTR_MAX INT64_MAX
-# define UINTPTR_MAX UINT64_MAX
-#else // _WIN64 ][
-# define INTPTR_MIN INT32_MIN
-# define INTPTR_MAX INT32_MAX
-# define UINTPTR_MAX UINT32_MAX
-#endif // _WIN64 ]
-
-// 7.18.2.5 Limits of greatest-width integer types
-#define INTMAX_MIN INT64_MIN
-#define INTMAX_MAX INT64_MAX
-#define UINTMAX_MAX UINT64_MAX
-
-// 7.18.3 Limits of other integer types
-
-#ifdef _WIN64 // [
-# define PTRDIFF_MIN _I64_MIN
-# define PTRDIFF_MAX _I64_MAX
-#else // _WIN64 ][
-# define PTRDIFF_MIN _I32_MIN
-# define PTRDIFF_MAX _I32_MAX
-#endif // _WIN64 ]
-
-#define SIG_ATOMIC_MIN INT_MIN
-#define SIG_ATOMIC_MAX INT_MAX
-
-#ifndef SIZE_MAX // [
-# ifdef _WIN64 // [
-# define SIZE_MAX _UI64_MAX
-# else // _WIN64 ][
-# define SIZE_MAX _UI32_MAX
-# endif // _WIN64 ]
-#endif // SIZE_MAX ]
-
-// WCHAR_MIN and WCHAR_MAX are also defined in
-#ifndef WCHAR_MIN // [
-# define WCHAR_MIN 0
-#endif // WCHAR_MIN ]
-#ifndef WCHAR_MAX // [
-# define WCHAR_MAX _UI16_MAX
-#endif // WCHAR_MAX ]
-
-#define WINT_MIN 0
-#define WINT_MAX _UI16_MAX
-
-#endif // __STDC_LIMIT_MACROS ]
-
-
-// 7.18.4 Limits of other integer types
-
-#if !defined(__cplusplus) || defined(__STDC_CONSTANT_MACROS) // [ See footnote 224 at page 260
-
-// 7.18.4.1 Macros for minimum-width integer constants
-
-#define INT8_C(val) val##i8
-#define INT16_C(val) val##i16
-#define INT32_C(val) val##i32
-#define INT64_C(val) val##i64
-
-#define UINT8_C(val) val##ui8
-#define UINT16_C(val) val##ui16
-#define UINT32_C(val) val##ui32
-#define UINT64_C(val) val##ui64
-
-// 7.18.4.2 Macros for greatest-width integer constants
-#define INTMAX_C INT64_C
-#define UINTMAX_C UINT64_C
-
-#endif // __STDC_CONSTANT_MACROS ]
-
-#else
-//sanity for everything else
-#include
-#endif
-
-#endif
diff --git a/jan/projectfiles/visualstudio-2003-libretro-xbox1/zconf.h b/jan/projectfiles/visualstudio-2003-libretro-xbox1/zconf.h
deleted file mode 100644
index fa1e786ff..000000000
--- a/jan/projectfiles/visualstudio-2003-libretro-xbox1/zconf.h
+++ /dev/null
@@ -1,327 +0,0 @@
-/* zconf.h -- configuration of the zlib compression library
- * Copyright (C) 1995-2005 Jean-loup Gailly.
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* @(#) $Id$ */
-
-#ifndef ZCONF_H
-#define ZCONF_H
-
-/* added for file_extractor; OK to remove, just increases executable size */
-#define DYNAMIC_CRC_TABLE
-
-/*
- * If you *really* need a unique prefix for all types and library functions,
- * compile with -DZ_PREFIX. The "standard" zlib should be compiled without it.
- */
-#ifdef Z_PREFIX
-# define deflateInit_ z_deflateInit_
-# define deflate z_deflate
-# define deflateEnd z_deflateEnd
-# define inflateInit_ z_inflateInit_
-# define inflate z_inflate
-# define inflateEnd z_inflateEnd
-# define deflateInit2_ z_deflateInit2_
-# define deflateSetDictionary z_deflateSetDictionary
-# define deflateCopy z_deflateCopy
-# define deflateReset z_deflateReset
-# define deflateParams z_deflateParams
-# define deflateBound z_deflateBound
-# define deflatePrime z_deflatePrime
-# define inflateInit2_ z_inflateInit2_
-# define inflateSetDictionary z_inflateSetDictionary
-# define inflateSync z_inflateSync
-# define inflateSyncPoint z_inflateSyncPoint
-# define inflateCopy z_inflateCopy
-# define inflateReset z_inflateReset
-# define inflateBack z_inflateBack
-# define inflateBackEnd z_inflateBackEnd
-# define compress z_compress
-# define compress2 z_compress2
-# define compressBound z_compressBound
-# define uncompress z_uncompress
-# define adler32 z_adler32
-# define crc32 z_crc32
-# define get_crc_table z_get_crc_table
-# define zError z_zError
-
-# define alloc_func z_alloc_func
-# define free_func z_free_func
-# define in_func z_in_func
-# define out_func z_out_func
-# define Byte z_Byte
-# define uInt z_uInt
-# define uLong z_uLong
-# define Bytef z_Bytef
-# define charf z_charf
-# define intf z_intf
-# define uIntf z_uIntf
-# define uLongf z_uLongf
-# define voidpf z_voidpf
-# define voidp z_voidp
-#endif
-
-#if defined(__MSDOS__) && !defined(MSDOS)
-# define MSDOS
-#endif
-#if (defined(OS_2) || defined(__OS2__)) && !defined(OS2)
-# define OS2
-#endif
-#if defined(_WINDOWS) && !defined(WINDOWS)
-# define WINDOWS
-#endif
-#if defined(_WIN32) || defined(_WIN32_WCE) || defined(__WIN32__)
-# ifndef WIN32
-# define WIN32
-# endif
-#endif
-#if (defined(MSDOS) || defined(OS2) || defined(WINDOWS)) && !defined(WIN32)
-# if !defined(__GNUC__) && !defined(__FLAT__) && !defined(__386__)
-# ifndef SYS16BIT
-# define SYS16BIT
-# endif
-# endif
-#endif
-
-/*
- * Compile with -DMAXSEG_64K if the alloc function cannot allocate more
- * than 64k bytes at a time (needed on systems with 16-bit int).
- */
-#ifdef SYS16BIT
-# define MAXSEG_64K
-#endif
-#ifdef MSDOS
-# define UNALIGNED_OK
-#endif
-
-#ifdef __STDC_VERSION__
-# ifndef STDC
-# define STDC
-# endif
-# if __STDC_VERSION__ >= 199901L
-# ifndef STDC99
-# define STDC99
-# endif
-# endif
-#endif
-#if !defined(STDC) && (defined(__STDC__) || defined(__cplusplus))
-# define STDC
-#endif
-#if !defined(STDC) && (defined(__GNUC__) || defined(__BORLANDC__))
-# define STDC
-#endif
-#if !defined(STDC) && (defined(MSDOS) || defined(WINDOWS) || defined(WIN32))
-# define STDC
-#endif
-#if !defined(STDC) && (defined(OS2) || defined(__HOS_AIX__))
-# define STDC
-#endif
-
-#if defined(__OS400__) && !defined(STDC) /* iSeries (formerly AS/400). */
-# define STDC
-#endif
-
-#ifndef STDC
-# ifndef const /* cannot use !defined(STDC) && !defined(const) on Mac */
-# define const /* note: need a more gentle solution here */
-# endif
-#endif
-
-/* Some Mac compilers merge all .h files incorrectly: */
-#if defined(__MWERKS__)||defined(applec)||defined(THINK_C)||defined(__SC__)
-# define NO_DUMMY_DECL
-#endif
-
-/* Maximum value for memLevel in deflateInit2 */
-#ifndef MAX_MEM_LEVEL
-# ifdef MAXSEG_64K
-# define MAX_MEM_LEVEL 8
-# else
-# define MAX_MEM_LEVEL 9
-# endif
-#endif
-
-/* Maximum value for windowBits in deflateInit2 and inflateInit2.
- * WARNING: reducing MAX_WBITS makes minigzip unable to extract .gz files
- * created by gzip. (Files created by minigzip can still be extracted by
- * gzip.)
- */
-#ifndef MAX_WBITS
-# define MAX_WBITS 15 /* 32K LZ77 window */
-#endif
-
-/* The memory requirements for deflate are (in bytes):
- (1 << (windowBits+2)) + (1 << (memLevel+9))
- that is: 128K for windowBits=15 + 128K for memLevel = 8 (default values)
- plus a few kilobytes for small objects. For example, if you want to reduce
- the default memory requirements from 256K to 128K, compile with
- make CFLAGS="-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7"
- Of course this will generally degrade compression (there's no free lunch).
-
- The memory requirements for inflate are (in bytes) 1 << windowBits
- that is, 32K for windowBits=15 (default value) plus a few kilobytes
- for small objects.
-*/
-
- /* Type declarations */
-
-#ifndef OF /* function prototypes */
-# ifdef STDC
-# define OF(args) args
-# else
-# define OF(args) ()
-# endif
-#endif
-
-/* The following definitions for FAR are needed only for MSDOS mixed
- * model programming (small or medium model with some far allocations).
- * This was tested only with MSC; for other MSDOS compilers you may have
- * to define NO_MEMCPY in zutil.h. If you don't need the mixed model,
- * just define FAR to be empty.
- */
-#ifdef SYS16BIT
-# if defined(M_I86SM) || defined(M_I86MM)
- /* MSC small or medium model */
-# define SMALL_MEDIUM
-# ifdef _MSC_VER
-# define FAR _far
-# else
-# define FAR far
-# endif
-# endif
-# if (defined(__SMALL__) || defined(__MEDIUM__))
- /* Turbo C small or medium model */
-# define SMALL_MEDIUM
-# ifdef __BORLANDC__
-# define FAR _far
-# else
-# define FAR far
-# endif
-# endif
-#endif
-
-#if defined(WINDOWS) || defined(WIN32)
- /* If building or using zlib as a DLL, define ZLIB_DLL.
- * This is not mandatory, but it offers a little performance increase.
- */
-# ifdef ZLIB_DLL
-# if defined(WIN32) && (!defined(__BORLANDC__) || (__BORLANDC__ >= 0x500))
-# ifdef ZLIB_INTERNAL
-# define ZEXTERN extern __declspec(dllexport)
-# else
-# define ZEXTERN extern __declspec(dllimport)
-# endif
-# endif
-# endif /* ZLIB_DLL */
- /* If building or using zlib with the WINAPI/WINAPIV calling convention,
- * define ZLIB_WINAPI.
- * Caution: the standard ZLIB1.DLL is NOT compiled using ZLIB_WINAPI.
- */
-# ifdef ZLIB_WINAPI
-# ifdef FAR
-# undef FAR
-# endif
-# include
- /* No need for _export, use ZLIB.DEF instead. */
- /* For complete Windows compatibility, use WINAPI, not __stdcall. */
-# define ZEXPORT WINAPI
-# ifdef WIN32
-# define ZEXPORTVA WINAPIV
-# else
-# define ZEXPORTVA FAR CDECL
-# endif
-# endif
-#endif
-
-#if defined (__BEOS__)
-# ifdef ZLIB_DLL
-# ifdef ZLIB_INTERNAL
-# define ZEXPORT __declspec(dllexport)
-# define ZEXPORTVA __declspec(dllexport)
-# else
-# define ZEXPORT __declspec(dllimport)
-# define ZEXPORTVA __declspec(dllimport)
-# endif
-# endif
-#endif
-
-#ifndef ZEXTERN
-# define ZEXTERN extern
-#endif
-#ifndef ZEXPORT
-# define ZEXPORT
-#endif
-#ifndef ZEXPORTVA
-# define ZEXPORTVA
-#endif
-
-#ifndef FAR
-# define FAR
-#endif
-
-#if !defined(__MACTYPES__)
-typedef unsigned char Byte; /* 8 bits */
-#endif
-typedef unsigned int uInt; /* 16 bits or more */
-typedef unsigned long uLong; /* 32 bits or more */
-
-#ifdef SMALL_MEDIUM
- /* Borland C/C++ and some old MSC versions ignore FAR inside typedef */
-# define Bytef Byte FAR
-#else
- typedef Byte FAR Bytef;
-#endif
-typedef char FAR charf;
-typedef int FAR intf;
-typedef uInt FAR uIntf;
-typedef uLong FAR uLongf;
-
-#ifdef STDC
- typedef void const *voidpc;
- typedef void FAR *voidpf;
- typedef void *voidp;
-#else
- typedef Byte const *voidpc;
- typedef Byte FAR *voidpf;
- typedef Byte *voidp;
-#endif
-
-#ifndef SEEK_SET
-# define SEEK_SET 0 /* Seek from beginning of file. */
-# define SEEK_CUR 1 /* Seek from current position. */
-# define SEEK_END 2 /* Set file pointer to EOF plus "offset" */
-#endif
-#ifndef z_off_t
-# define z_off_t long
-#endif
-
-#if defined(__OS400__)
-# define NO_vsnprintf
-#endif
-
-#if defined(__MVS__)
-# define NO_vsnprintf
-# ifdef FAR
-# undef FAR
-# endif
-#endif
-
-/* MVS linker does not support external names larger than 8 bytes */
-#if defined(__MVS__)
-# pragma map(deflateInit_,"DEIN")
-# pragma map(deflateInit2_,"DEIN2")
-# pragma map(deflateEnd,"DEEND")
-# pragma map(deflateBound,"DEBND")
-# pragma map(inflateInit_,"ININ")
-# pragma map(inflateInit2_,"ININ2")
-# pragma map(inflateEnd,"INEND")
-# pragma map(inflateSync,"INSY")
-# pragma map(inflateSetDictionary,"INSEDI")
-# pragma map(compressBound,"CMBND")
-# pragma map(inflate_table,"INTABL")
-# pragma map(inflate_fast,"INFA")
-# pragma map(inflate_copyright,"INCOPY")
-#endif
-
-#endif /* ZCONF_H */
diff --git a/jan/projectfiles/visualstudio-2003-libretro-xbox1/zlib.h b/jan/projectfiles/visualstudio-2003-libretro-xbox1/zlib.h
deleted file mode 100644
index e47687170..000000000
--- a/jan/projectfiles/visualstudio-2003-libretro-xbox1/zlib.h
+++ /dev/null
@@ -1,1357 +0,0 @@
-/* zlib.h -- interface of the 'zlib' general purpose compression library
- version 1.2.3, July 18th, 2005
-
- Copyright (C) 1995-2005 Jean-loup Gailly and Mark Adler
-
- This software is provided 'as-is', without any express or implied
- warranty. In no event will the authors be held liable for any damages
- arising from the use of this software.
-
- Permission is granted to anyone to use this software for any purpose,
- including commercial applications, and to alter it and redistribute it
- freely, subject to the following restrictions:
-
- 1. The origin of this software must not be misrepresented; you must not
- claim that you wrote the original software. If you use this software
- in a product, an acknowledgment in the product documentation would be
- appreciated but is not required.
- 2. Altered source versions must be plainly marked as such, and must not be
- misrepresented as being the original software.
- 3. This notice may not be removed or altered from any source distribution.
-
- Jean-loup Gailly Mark Adler
- jloup@gzip.org madler@alumni.caltech.edu
-
-
- The data format used by the zlib library is described by RFCs (Request for
- Comments) 1950 to 1952 in the files http://www.ietf.org/rfc/rfc1950.txt
- (zlib format), rfc1951.txt (deflate format) and rfc1952.txt (gzip format).
-*/
-
-#ifndef ZLIB_H
-#define ZLIB_H
-
-#include "zconf.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define ZLIB_VERSION "1.2.3"
-#define ZLIB_VERNUM 0x1230
-
-/*
- The 'zlib' compression library provides in-memory compression and
- decompression functions, including integrity checks of the uncompressed
- data. This version of the library supports only one compression method
- (deflation) but other algorithms will be added later and will have the same
- stream interface.
-
- Compression can be done in a single step if the buffers are large
- enough (for example if an input file is mmap'ed), or can be done by
- repeated calls of the compression function. In the latter case, the
- application must provide more input and/or consume the output
- (providing more output space) before each call.
-
- The compressed data format used by default by the in-memory functions is
- the zlib format, which is a zlib wrapper documented in RFC 1950, wrapped
- around a deflate stream, which is itself documented in RFC 1951.
-
- The library also supports reading and writing files in gzip (.gz) format
- with an interface similar to that of stdio using the functions that start
- with "gz". The gzip format is different from the zlib format. gzip is a
- gzip wrapper, documented in RFC 1952, wrapped around a deflate stream.
-
- This library can optionally read and write gzip streams in memory as well.
-
- The zlib format was designed to be compact and fast for use in memory
- and on communications channels. The gzip format was designed for single-
- file compression on file systems, has a larger header than zlib to maintain
- directory information, and uses a different, slower check method than zlib.
-
- The library does not install any signal handler. The decoder checks
- the consistency of the compressed data, so the library should never
- crash even in case of corrupted input.
-*/
-
-typedef voidpf (*alloc_func) OF((voidpf opaque, uInt items, uInt size));
-typedef void (*free_func) OF((voidpf opaque, voidpf address));
-
-struct internal_state;
-
-typedef struct z_stream_s {
- Bytef *next_in; /* next input byte */
- uInt avail_in; /* number of bytes available at next_in */
- uLong total_in; /* total nb of input bytes read so far */
-
- Bytef *next_out; /* next output byte should be put there */
- uInt avail_out; /* remaining free space at next_out */
- uLong total_out; /* total nb of bytes output so far */
-
- const char *msg; /* last error message, NULL if no error */
- struct internal_state FAR *state; /* not visible by applications */
-
- alloc_func zalloc; /* used to allocate the internal state */
- free_func zfree; /* used to free the internal state */
- voidpf opaque; /* private data object passed to zalloc and zfree */
-
- int data_type; /* best guess about the data type: binary or text */
- uLong adler; /* adler32 value of the uncompressed data */
- uLong reserved; /* reserved for future use */
-} z_stream;
-
-typedef z_stream FAR *z_streamp;
-
-/*
- gzip header information passed to and from zlib routines. See RFC 1952
- for more details on the meanings of these fields.
-*/
-typedef struct gz_header_s {
- int text; /* true if compressed data believed to be text */
- uLong time; /* modification time */
- int xflags; /* extra flags (not used when writing a gzip file) */
- int os; /* operating system */
- Bytef *extra; /* pointer to extra field or Z_NULL if none */
- uInt extra_len; /* extra field length (valid if extra != Z_NULL) */
- uInt extra_max; /* space at extra (only when reading header) */
- Bytef *name; /* pointer to zero-terminated file name or Z_NULL */
- uInt name_max; /* space at name (only when reading header) */
- Bytef *comment; /* pointer to zero-terminated comment or Z_NULL */
- uInt comm_max; /* space at comment (only when reading header) */
- int hcrc; /* true if there was or will be a header crc */
- int done; /* true when done reading gzip header (not used
- when writing a gzip file) */
-} gz_header;
-
-typedef gz_header FAR *gz_headerp;
-
-/*
- The application must update next_in and avail_in when avail_in has
- dropped to zero. It must update next_out and avail_out when avail_out
- has dropped to zero. The application must initialize zalloc, zfree and
- opaque before calling the init function. All other fields are set by the
- compression library and must not be updated by the application.
-
- The opaque value provided by the application will be passed as the first
- parameter for calls of zalloc and zfree. This can be useful for custom
- memory management. The compression library attaches no meaning to the
- opaque value.
-
- zalloc must return Z_NULL if there is not enough memory for the object.
- If zlib is used in a multi-threaded application, zalloc and zfree must be
- thread safe.
-
- On 16-bit systems, the functions zalloc and zfree must be able to allocate
- exactly 65536 bytes, but will not be required to allocate more than this
- if the symbol MAXSEG_64K is defined (see zconf.h). WARNING: On MSDOS,
- pointers returned by zalloc for objects of exactly 65536 bytes *must*
- have their offset normalized to zero. The default allocation function
- provided by this library ensures this (see zutil.c). To reduce memory
- requirements and avoid any allocation of 64K objects, at the expense of
- compression ratio, compile the library with -DMAX_WBITS=14 (see zconf.h).
-
- The fields total_in and total_out can be used for statistics or
- progress reports. After compression, total_in holds the total size of
- the uncompressed data and may be saved for use in the decompressor
- (particularly if the decompressor wants to decompress everything in
- a single step).
-*/
-
- /* constants */
-
-#define Z_NO_FLUSH 0
-#define Z_PARTIAL_FLUSH 1 /* will be removed, use Z_SYNC_FLUSH instead */
-#define Z_SYNC_FLUSH 2
-#define Z_FULL_FLUSH 3
-#define Z_FINISH 4
-#define Z_BLOCK 5
-/* Allowed flush values; see deflate() and inflate() below for details */
-
-#define Z_OK 0
-#define Z_STREAM_END 1
-#define Z_NEED_DICT 2
-#define Z_ERRNO (-1)
-#define Z_STREAM_ERROR (-2)
-#define Z_DATA_ERROR (-3)
-#define Z_MEM_ERROR (-4)
-#define Z_BUF_ERROR (-5)
-#define Z_VERSION_ERROR (-6)
-/* Return codes for the compression/decompression functions. Negative
- * values are errors, positive values are used for special but normal events.
- */
-
-#define Z_NO_COMPRESSION 0
-#define Z_BEST_SPEED 1
-#define Z_BEST_COMPRESSION 9
-#define Z_DEFAULT_COMPRESSION (-1)
-/* compression levels */
-
-#define Z_FILTERED 1
-#define Z_HUFFMAN_ONLY 2
-#define Z_RLE 3
-#define Z_FIXED 4
-#define Z_DEFAULT_STRATEGY 0
-/* compression strategy; see deflateInit2() below for details */
-
-#define Z_BINARY 0
-#define Z_TEXT 1
-#define Z_ASCII Z_TEXT /* for compatibility with 1.2.2 and earlier */
-#define Z_UNKNOWN 2
-/* Possible values of the data_type field (though see inflate()) */
-
-#define Z_DEFLATED 8
-/* The deflate compression method (the only one supported in this version) */
-
-#define Z_NULL 0 /* for initializing zalloc, zfree, opaque */
-
-#define zlib_version zlibVersion()
-/* for compatibility with versions < 1.0.2 */
-
- /* basic functions */
-
-ZEXTERN const char * ZEXPORT zlibVersion OF((void));
-/* The application can compare zlibVersion and ZLIB_VERSION for consistency.
- If the first character differs, the library code actually used is
- not compatible with the zlib.h header file used by the application.
- This check is automatically made by deflateInit and inflateInit.
- */
-
-/*
-ZEXTERN int ZEXPORT deflateInit OF((z_streamp strm, int level));
-
- Initializes the internal stream state for compression. The fields
- zalloc, zfree and opaque must be initialized before by the caller.
- If zalloc and zfree are set to Z_NULL, deflateInit updates them to
- use default allocation functions.
-
- The compression level must be Z_DEFAULT_COMPRESSION, or between 0 and 9:
- 1 gives best speed, 9 gives best compression, 0 gives no compression at
- all (the input data is simply copied a block at a time).
- Z_DEFAULT_COMPRESSION requests a default compromise between speed and
- compression (currently equivalent to level 6).
-
- deflateInit returns Z_OK if success, Z_MEM_ERROR if there was not
- enough memory, Z_STREAM_ERROR if level is not a valid compression level,
- Z_VERSION_ERROR if the zlib library version (zlib_version) is incompatible
- with the version assumed by the caller (ZLIB_VERSION).
- msg is set to null if there is no error message. deflateInit does not
- perform any compression: this will be done by deflate().
-*/
-
-
-ZEXTERN int ZEXPORT deflate OF((z_streamp strm, int flush));
-/*
- deflate compresses as much data as possible, and stops when the input
- buffer becomes empty or the output buffer becomes full. It may introduce some
- output latency (reading input without producing any output) except when
- forced to flush.
-
- The detailed semantics are as follows. deflate performs one or both of the
- following actions:
-
- - Compress more input starting at next_in and update next_in and avail_in
- accordingly. If not all input can be processed (because there is not
- enough room in the output buffer), next_in and avail_in are updated and
- processing will resume at this point for the next call of deflate().
-
- - Provide more output starting at next_out and update next_out and avail_out
- accordingly. This action is forced if the parameter flush is non zero.
- Forcing flush frequently degrades the compression ratio, so this parameter
- should be set only when necessary (in interactive applications).
- Some output may be provided even if flush is not set.
-
- Before the call of deflate(), the application should ensure that at least
- one of the actions is possible, by providing more input and/or consuming
- more output, and updating avail_in or avail_out accordingly; avail_out
- should never be zero before the call. The application can consume the
- compressed output when it wants, for example when the output buffer is full
- (avail_out == 0), or after each call of deflate(). If deflate returns Z_OK
- and with zero avail_out, it must be called again after making room in the
- output buffer because there might be more output pending.
-
- Normally the parameter flush is set to Z_NO_FLUSH, which allows deflate to
- decide how much data to accumualte before producing output, in order to
- maximize compression.
-
- If the parameter flush is set to Z_SYNC_FLUSH, all pending output is
- flushed to the output buffer and the output is aligned on a byte boundary, so
- that the decompressor can get all input data available so far. (In particular
- avail_in is zero after the call if enough output space has been provided
- before the call.) Flushing may degrade compression for some compression
- algorithms and so it should be used only when necessary.
-
- If flush is set to Z_FULL_FLUSH, all output is flushed as with
- Z_SYNC_FLUSH, and the compression state is reset so that decompression can
- restart from this point if previous compressed data has been damaged or if
- random access is desired. Using Z_FULL_FLUSH too often can seriously degrade
- compression.
-
- If deflate returns with avail_out == 0, this function must be called again
- with the same value of the flush parameter and more output space (updated
- avail_out), until the flush is complete (deflate returns with non-zero
- avail_out). In the case of a Z_FULL_FLUSH or Z_SYNC_FLUSH, make sure that
- avail_out is greater than six to avoid repeated flush markers due to
- avail_out == 0 on return.
-
- If the parameter flush is set to Z_FINISH, pending input is processed,
- pending output is flushed and deflate returns with Z_STREAM_END if there
- was enough output space; if deflate returns with Z_OK, this function must be
- called again with Z_FINISH and more output space (updated avail_out) but no
- more input data, until it returns with Z_STREAM_END or an error. After
- deflate has returned Z_STREAM_END, the only possible operations on the
- stream are deflateReset or deflateEnd.
-
- Z_FINISH can be used immediately after deflateInit if all the compression
- is to be done in a single step. In this case, avail_out must be at least
- the value returned by deflateBound (see below). If deflate does not return
- Z_STREAM_END, then it must be called again as described above.
-
- deflate() sets strm->adler to the adler32 checksum of all input read
- so far (that is, total_in bytes).
-
- deflate() may update strm->data_type if it can make a good guess about
- the input data type (Z_BINARY or Z_TEXT). In doubt, the data is considered
- binary. This field is only for information purposes and does not affect
- the compression algorithm in any manner.
-
- deflate() returns Z_OK if some progress has been made (more input
- processed or more output produced), Z_STREAM_END if all input has been
- consumed and all output has been produced (only when flush is set to
- Z_FINISH), Z_STREAM_ERROR if the stream state was inconsistent (for example
- if next_in or next_out was NULL), Z_BUF_ERROR if no progress is possible
- (for example avail_in or avail_out was zero). Note that Z_BUF_ERROR is not
- fatal, and deflate() can be called again with more input and more output
- space to continue compressing.
-*/
-
-
-ZEXTERN int ZEXPORT deflateEnd OF((z_streamp strm));
-/*
- All dynamically allocated data structures for this stream are freed.
- This function discards any unprocessed input and does not flush any
- pending output.
-
- deflateEnd returns Z_OK if success, Z_STREAM_ERROR if the
- stream state was inconsistent, Z_DATA_ERROR if the stream was freed
- prematurely (some input or output was discarded). In the error case,
- msg may be set but then points to a static string (which must not be
- deallocated).
-*/
-
-
-/*
-ZEXTERN int ZEXPORT inflateInit OF((z_streamp strm));
-
- Initializes the internal stream state for decompression. The fields
- next_in, avail_in, zalloc, zfree and opaque must be initialized before by
- the caller. If next_in is not Z_NULL and avail_in is large enough (the exact
- value depends on the compression method), inflateInit determines the
- compression method from the zlib header and allocates all data structures
- accordingly; otherwise the allocation will be deferred to the first call of
- inflate. If zalloc and zfree are set to Z_NULL, inflateInit updates them to
- use default allocation functions.
-
- inflateInit returns Z_OK if success, Z_MEM_ERROR if there was not enough
- memory, Z_VERSION_ERROR if the zlib library version is incompatible with the
- version assumed by the caller. msg is set to null if there is no error
- message. inflateInit does not perform any decompression apart from reading
- the zlib header if present: this will be done by inflate(). (So next_in and
- avail_in may be modified, but next_out and avail_out are unchanged.)
-*/
-
-
-ZEXTERN int ZEXPORT inflate OF((z_streamp strm, int flush));
-/*
- inflate decompresses as much data as possible, and stops when the input
- buffer becomes empty or the output buffer becomes full. It may introduce
- some output latency (reading input without producing any output) except when
- forced to flush.
-
- The detailed semantics are as follows. inflate performs one or both of the
- following actions:
-
- - Decompress more input starting at next_in and update next_in and avail_in
- accordingly. If not all input can be processed (because there is not
- enough room in the output buffer), next_in is updated and processing
- will resume at this point for the next call of inflate().
-
- - Provide more output starting at next_out and update next_out and avail_out
- accordingly. inflate() provides as much output as possible, until there
- is no more input data or no more space in the output buffer (see below
- about the flush parameter).
-
- Before the call of inflate(), the application should ensure that at least
- one of the actions is possible, by providing more input and/or consuming
- more output, and updating the next_* and avail_* values accordingly.
- The application can consume the uncompressed output when it wants, for
- example when the output buffer is full (avail_out == 0), or after each
- call of inflate(). If inflate returns Z_OK and with zero avail_out, it
- must be called again after making room in the output buffer because there
- might be more output pending.
-
- The flush parameter of inflate() can be Z_NO_FLUSH, Z_SYNC_FLUSH,
- Z_FINISH, or Z_BLOCK. Z_SYNC_FLUSH requests that inflate() flush as much
- output as possible to the output buffer. Z_BLOCK requests that inflate() stop
- if and when it gets to the next deflate block boundary. When decoding the
- zlib or gzip format, this will cause inflate() to return immediately after
- the header and before the first block. When doing a raw inflate, inflate()
- will go ahead and process the first block, and will return when it gets to
- the end of that block, or when it runs out of data.
-
- The Z_BLOCK option assists in appending to or combining deflate streams.
- Also to assist in this, on return inflate() will set strm->data_type to the
- number of unused bits in the last byte taken from strm->next_in, plus 64
- if inflate() is currently decoding the last block in the deflate stream,
- plus 128 if inflate() returned immediately after decoding an end-of-block
- code or decoding the complete header up to just before the first byte of the
- deflate stream. The end-of-block will not be indicated until all of the
- uncompressed data from that block has been written to strm->next_out. The
- number of unused bits may in general be greater than seven, except when
- bit 7 of data_type is set, in which case the number of unused bits will be
- less than eight.
-
- inflate() should normally be called until it returns Z_STREAM_END or an
- error. However if all decompression is to be performed in a single step
- (a single call of inflate), the parameter flush should be set to
- Z_FINISH. In this case all pending input is processed and all pending
- output is flushed; avail_out must be large enough to hold all the
- uncompressed data. (The size of the uncompressed data may have been saved
- by the compressor for this purpose.) The next operation on this stream must
- be inflateEnd to deallocate the decompression state. The use of Z_FINISH
- is never required, but can be used to inform inflate that a faster approach
- may be used for the single inflate() call.
-
- In this implementation, inflate() always flushes as much output as
- possible to the output buffer, and always uses the faster approach on the
- first call. So the only effect of the flush parameter in this implementation
- is on the return value of inflate(), as noted below, or when it returns early
- because Z_BLOCK is used.
-
- If a preset dictionary is needed after this call (see inflateSetDictionary
- below), inflate sets strm->adler to the adler32 checksum of the dictionary
- chosen by the compressor and returns Z_NEED_DICT; otherwise it sets
- strm->adler to the adler32 checksum of all output produced so far (that is,
- total_out bytes) and returns Z_OK, Z_STREAM_END or an error code as described
- below. At the end of the stream, inflate() checks that its computed adler32
- checksum is equal to that saved by the compressor and returns Z_STREAM_END
- only if the checksum is correct.
-
- inflate() will decompress and check either zlib-wrapped or gzip-wrapped
- deflate data. The header type is detected automatically. Any information
- contained in the gzip header is not retained, so applications that need that
- information should instead use raw inflate, see inflateInit2() below, or
- inflateBack() and perform their own processing of the gzip header and
- trailer.
-
- inflate() returns Z_OK if some progress has been made (more input processed
- or more output produced), Z_STREAM_END if the end of the compressed data has
- been reached and all uncompressed output has been produced, Z_NEED_DICT if a
- preset dictionary is needed at this point, Z_DATA_ERROR if the input data was
- corrupted (input stream not conforming to the zlib format or incorrect check
- value), Z_STREAM_ERROR if the stream structure was inconsistent (for example
- if next_in or next_out was NULL), Z_MEM_ERROR if there was not enough memory,
- Z_BUF_ERROR if no progress is possible or if there was not enough room in the
- output buffer when Z_FINISH is used. Note that Z_BUF_ERROR is not fatal, and
- inflate() can be called again with more input and more output space to
- continue decompressing. If Z_DATA_ERROR is returned, the application may then
- call inflateSync() to look for a good compression block if a partial recovery
- of the data is desired.
-*/
-
-
-ZEXTERN int ZEXPORT inflateEnd OF((z_streamp strm));
-/*
- All dynamically allocated data structures for this stream are freed.
- This function discards any unprocessed input and does not flush any
- pending output.
-
- inflateEnd returns Z_OK if success, Z_STREAM_ERROR if the stream state
- was inconsistent. In the error case, msg may be set but then points to a
- static string (which must not be deallocated).
-*/
-
- /* Advanced functions */
-
-/*
- The following functions are needed only in some special applications.
-*/
-
-/*
-ZEXTERN int ZEXPORT deflateInit2 OF((z_streamp strm,
- int level,
- int method,
- int windowBits,
- int memLevel,
- int strategy));
-
- This is another version of deflateInit with more compression options. The
- fields next_in, zalloc, zfree and opaque must be initialized before by
- the caller.
-
- The method parameter is the compression method. It must be Z_DEFLATED in
- this version of the library.
-
- The windowBits parameter is the base two logarithm of the window size
- (the size of the history buffer). It should be in the range 8..15 for this
- version of the library. Larger values of this parameter result in better
- compression at the expense of memory usage. The default value is 15 if
- deflateInit is used instead.
-
- windowBits can also be -8..-15 for raw deflate. In this case, -windowBits
- determines the window size. deflate() will then generate raw deflate data
- with no zlib header or trailer, and will not compute an adler32 check value.
-
- windowBits can also be greater than 15 for optional gzip encoding. Add
- 16 to windowBits to write a simple gzip header and trailer around the
- compressed data instead of a zlib wrapper. The gzip header will have no
- file name, no extra data, no comment, no modification time (set to zero),
- no header crc, and the operating system will be set to 255 (unknown). If a
- gzip stream is being written, strm->adler is a crc32 instead of an adler32.
-
- The memLevel parameter specifies how much memory should be allocated
- for the internal compression state. memLevel=1 uses minimum memory but
- is slow and reduces compression ratio; memLevel=9 uses maximum memory
- for optimal speed. The default value is 8. See zconf.h for total memory
- usage as a function of windowBits and memLevel.
-
- The strategy parameter is used to tune the compression algorithm. Use the
- value Z_DEFAULT_STRATEGY for normal data, Z_FILTERED for data produced by a
- filter (or predictor), Z_HUFFMAN_ONLY to force Huffman encoding only (no
- string match), or Z_RLE to limit match distances to one (run-length
- encoding). Filtered data consists mostly of small values with a somewhat
- random distribution. In this case, the compression algorithm is tuned to
- compress them better. The effect of Z_FILTERED is to force more Huffman
- coding and less string matching; it is somewhat intermediate between
- Z_DEFAULT and Z_HUFFMAN_ONLY. Z_RLE is designed to be almost as fast as
- Z_HUFFMAN_ONLY, but give better compression for PNG image data. The strategy
- parameter only affects the compression ratio but not the correctness of the
- compressed output even if it is not set appropriately. Z_FIXED prevents the
- use of dynamic Huffman codes, allowing for a simpler decoder for special
- applications.
-
- deflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was not enough
- memory, Z_STREAM_ERROR if a parameter is invalid (such as an invalid
- method). msg is set to null if there is no error message. deflateInit2 does
- not perform any compression: this will be done by deflate().
-*/
-
-ZEXTERN int ZEXPORT deflateSetDictionary OF((z_streamp strm,
- const Bytef *dictionary,
- uInt dictLength));
-/*
- Initializes the compression dictionary from the given byte sequence
- without producing any compressed output. This function must be called
- immediately after deflateInit, deflateInit2 or deflateReset, before any
- call of deflate. The compressor and decompressor must use exactly the same
- dictionary (see inflateSetDictionary).
-
- The dictionary should consist of strings (byte sequences) that are likely
- to be encountered later in the data to be compressed, with the most commonly
- used strings preferably put towards the end of the dictionary. Using a
- dictionary is most useful when the data to be compressed is short and can be
- predicted with good accuracy; the data can then be compressed better than
- with the default empty dictionary.
-
- Depending on the size of the compression data structures selected by
- deflateInit or deflateInit2, a part of the dictionary may in effect be
- discarded, for example if the dictionary is larger than the window size in
- deflate or deflate2. Thus the strings most likely to be useful should be
- put at the end of the dictionary, not at the front. In addition, the
- current implementation of deflate will use at most the window size minus
- 262 bytes of the provided dictionary.
-
- Upon return of this function, strm->adler is set to the adler32 value
- of the dictionary; the decompressor may later use this value to determine
- which dictionary has been used by the compressor. (The adler32 value
- applies to the whole dictionary even if only a subset of the dictionary is
- actually used by the compressor.) If a raw deflate was requested, then the
- adler32 value is not computed and strm->adler is not set.
-
- deflateSetDictionary returns Z_OK if success, or Z_STREAM_ERROR if a
- parameter is invalid (such as NULL dictionary) or the stream state is
- inconsistent (for example if deflate has already been called for this stream
- or if the compression method is bsort). deflateSetDictionary does not
- perform any compression: this will be done by deflate().
-*/
-
-ZEXTERN int ZEXPORT deflateCopy OF((z_streamp dest,
- z_streamp source));
-/*
- Sets the destination stream as a complete copy of the source stream.
-
- This function can be useful when several compression strategies will be
- tried, for example when there are several ways of pre-processing the input
- data with a filter. The streams that will be discarded should then be freed
- by calling deflateEnd. Note that deflateCopy duplicates the internal
- compression state which can be quite large, so this strategy is slow and
- can consume lots of memory.
-
- deflateCopy returns Z_OK if success, Z_MEM_ERROR if there was not
- enough memory, Z_STREAM_ERROR if the source stream state was inconsistent
- (such as zalloc being NULL). msg is left unchanged in both source and
- destination.
-*/
-
-ZEXTERN int ZEXPORT deflateReset OF((z_streamp strm));
-/*
- This function is equivalent to deflateEnd followed by deflateInit,
- but does not free and reallocate all the internal compression state.
- The stream will keep the same compression level and any other attributes
- that may have been set by deflateInit2.
-
- deflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source
- stream state was inconsistent (such as zalloc or state being NULL).
-*/
-
-ZEXTERN int ZEXPORT deflateParams OF((z_streamp strm,
- int level,
- int strategy));
-/*
- Dynamically update the compression level and compression strategy. The
- interpretation of level and strategy is as in deflateInit2. This can be
- used to switch between compression and straight copy of the input data, or
- to switch to a different kind of input data requiring a different
- strategy. If the compression level is changed, the input available so far
- is compressed with the old level (and may be flushed); the new level will
- take effect only at the next call of deflate().
-
- Before the call of deflateParams, the stream state must be set as for
- a call of deflate(), since the currently available input may have to
- be compressed and flushed. In particular, strm->avail_out must be non-zero.
-
- deflateParams returns Z_OK if success, Z_STREAM_ERROR if the source
- stream state was inconsistent or if a parameter was invalid, Z_BUF_ERROR
- if strm->avail_out was zero.
-*/
-
-ZEXTERN int ZEXPORT deflateTune OF((z_streamp strm,
- int good_length,
- int max_lazy,
- int nice_length,
- int max_chain));
-/*
- Fine tune deflate's internal compression parameters. This should only be
- used by someone who understands the algorithm used by zlib's deflate for
- searching for the best matching string, and even then only by the most
- fanatic optimizer trying to squeeze out the last compressed bit for their
- specific input data. Read the deflate.c source code for the meaning of the
- max_lazy, good_length, nice_length, and max_chain parameters.
-
- deflateTune() can be called after deflateInit() or deflateInit2(), and
- returns Z_OK on success, or Z_STREAM_ERROR for an invalid deflate stream.
- */
-
-ZEXTERN uLong ZEXPORT deflateBound OF((z_streamp strm,
- uLong sourceLen));
-/*
- deflateBound() returns an upper bound on the compressed size after
- deflation of sourceLen bytes. It must be called after deflateInit()
- or deflateInit2(). This would be used to allocate an output buffer
- for deflation in a single pass, and so would be called before deflate().
-*/
-
-ZEXTERN int ZEXPORT deflatePrime OF((z_streamp strm,
- int bits,
- int value));
-/*
- deflatePrime() inserts bits in the deflate output stream. The intent
- is that this function is used to start off the deflate output with the
- bits leftover from a previous deflate stream when appending to it. As such,
- this function can only be used for raw deflate, and must be used before the
- first deflate() call after a deflateInit2() or deflateReset(). bits must be
- less than or equal to 16, and that many of the least significant bits of
- value will be inserted in the output.
-
- deflatePrime returns Z_OK if success, or Z_STREAM_ERROR if the source
- stream state was inconsistent.
-*/
-
-ZEXTERN int ZEXPORT deflateSetHeader OF((z_streamp strm,
- gz_headerp head));
-/*
- deflateSetHeader() provides gzip header information for when a gzip
- stream is requested by deflateInit2(). deflateSetHeader() may be called
- after deflateInit2() or deflateReset() and before the first call of
- deflate(). The text, time, os, extra field, name, and comment information
- in the provided gz_header structure are written to the gzip header (xflag is
- ignored -- the extra flags are set according to the compression level). The
- caller must assure that, if not Z_NULL, name and comment are terminated with
- a zero byte, and that if extra is not Z_NULL, that extra_len bytes are
- available there. If hcrc is true, a gzip header crc is included. Note that
- the current versions of the command-line version of gzip (up through version
- 1.3.x) do not support header crc's, and will report that it is a "multi-part
- gzip file" and give up.
-
- If deflateSetHeader is not used, the default gzip header has text false,
- the time set to zero, and os set to 255, with no extra, name, or comment
- fields. The gzip header is returned to the default state by deflateReset().
-
- deflateSetHeader returns Z_OK if success, or Z_STREAM_ERROR if the source
- stream state was inconsistent.
-*/
-
-/*
-ZEXTERN int ZEXPORT inflateInit2 OF((z_streamp strm,
- int windowBits));
-
- This is another version of inflateInit with an extra parameter. The
- fields next_in, avail_in, zalloc, zfree and opaque must be initialized
- before by the caller.
-
- The windowBits parameter is the base two logarithm of the maximum window
- size (the size of the history buffer). It should be in the range 8..15 for
- this version of the library. The default value is 15 if inflateInit is used
- instead. windowBits must be greater than or equal to the windowBits value
- provided to deflateInit2() while compressing, or it must be equal to 15 if
- deflateInit2() was not used. If a compressed stream with a larger window
- size is given as input, inflate() will return with the error code
- Z_DATA_ERROR instead of trying to allocate a larger window.
-
- windowBits can also be -8..-15 for raw inflate. In this case, -windowBits
- determines the window size. inflate() will then process raw deflate data,
- not looking for a zlib or gzip header, not generating a check value, and not
- looking for any check values for comparison at the end of the stream. This
- is for use with other formats that use the deflate compressed data format
- such as zip. Those formats provide their own check values. If a custom
- format is developed using the raw deflate format for compressed data, it is
- recommended that a check value such as an adler32 or a crc32 be applied to
- the uncompressed data as is done in the zlib, gzip, and zip formats. For
- most applications, the zlib format should be used as is. Note that comments
- above on the use in deflateInit2() applies to the magnitude of windowBits.
-
- windowBits can also be greater than 15 for optional gzip decoding. Add
- 32 to windowBits to enable zlib and gzip decoding with automatic header
- detection, or add 16 to decode only the gzip format (the zlib format will
- return a Z_DATA_ERROR). If a gzip stream is being decoded, strm->adler is
- a crc32 instead of an adler32.
-
- inflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was not enough
- memory, Z_STREAM_ERROR if a parameter is invalid (such as a null strm). msg
- is set to null if there is no error message. inflateInit2 does not perform
- any decompression apart from reading the zlib header if present: this will
- be done by inflate(). (So next_in and avail_in may be modified, but next_out
- and avail_out are unchanged.)
-*/
-
-ZEXTERN int ZEXPORT inflateSetDictionary OF((z_streamp strm,
- const Bytef *dictionary,
- uInt dictLength));
-/*
- Initializes the decompression dictionary from the given uncompressed byte
- sequence. This function must be called immediately after a call of inflate,
- if that call returned Z_NEED_DICT. The dictionary chosen by the compressor
- can be determined from the adler32 value returned by that call of inflate.
- The compressor and decompressor must use exactly the same dictionary (see
- deflateSetDictionary). For raw inflate, this function can be called
- immediately after inflateInit2() or inflateReset() and before any call of
- inflate() to set the dictionary. The application must insure that the
- dictionary that was used for compression is provided.
-
- inflateSetDictionary returns Z_OK if success, Z_STREAM_ERROR if a
- parameter is invalid (such as NULL dictionary) or the stream state is
- inconsistent, Z_DATA_ERROR if the given dictionary doesn't match the
- expected one (incorrect adler32 value). inflateSetDictionary does not
- perform any decompression: this will be done by subsequent calls of
- inflate().
-*/
-
-ZEXTERN int ZEXPORT inflateSync OF((z_streamp strm));
-/*
- Skips invalid compressed data until a full flush point (see above the
- description of deflate with Z_FULL_FLUSH) can be found, or until all
- available input is skipped. No output is provided.
-
- inflateSync returns Z_OK if a full flush point has been found, Z_BUF_ERROR
- if no more input was provided, Z_DATA_ERROR if no flush point has been found,
- or Z_STREAM_ERROR if the stream structure was inconsistent. In the success
- case, the application may save the current current value of total_in which
- indicates where valid compressed data was found. In the error case, the
- application may repeatedly call inflateSync, providing more input each time,
- until success or end of the input data.
-*/
-
-ZEXTERN int ZEXPORT inflateCopy OF((z_streamp dest,
- z_streamp source));
-/*
- Sets the destination stream as a complete copy of the source stream.
-
- This function can be useful when randomly accessing a large stream. The
- first pass through the stream can periodically record the inflate state,
- allowing restarting inflate at those points when randomly accessing the
- stream.
-
- inflateCopy returns Z_OK if success, Z_MEM_ERROR if there was not
- enough memory, Z_STREAM_ERROR if the source stream state was inconsistent
- (such as zalloc being NULL). msg is left unchanged in both source and
- destination.
-*/
-
-ZEXTERN int ZEXPORT inflateReset OF((z_streamp strm));
-/*
- This function is equivalent to inflateEnd followed by inflateInit,
- but does not free and reallocate all the internal decompression state.
- The stream will keep attributes that may have been set by inflateInit2.
-
- inflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source
- stream state was inconsistent (such as zalloc or state being NULL).
-*/
-
-ZEXTERN int ZEXPORT inflatePrime OF((z_streamp strm,
- int bits,
- int value));
-/*
- This function inserts bits in the inflate input stream. The intent is
- that this function is used to start inflating at a bit position in the
- middle of a byte. The provided bits will be used before any bytes are used
- from next_in. This function should only be used with raw inflate, and
- should be used before the first inflate() call after inflateInit2() or
- inflateReset(). bits must be less than or equal to 16, and that many of the
- least significant bits of value will be inserted in the input.
-
- inflatePrime returns Z_OK if success, or Z_STREAM_ERROR if the source
- stream state was inconsistent.
-*/
-
-ZEXTERN int ZEXPORT inflateGetHeader OF((z_streamp strm,
- gz_headerp head));
-/*
- inflateGetHeader() requests that gzip header information be stored in the
- provided gz_header structure. inflateGetHeader() may be called after
- inflateInit2() or inflateReset(), and before the first call of inflate().
- As inflate() processes the gzip stream, head->done is zero until the header
- is completed, at which time head->done is set to one. If a zlib stream is
- being decoded, then head->done is set to -1 to indicate that there will be
- no gzip header information forthcoming. Note that Z_BLOCK can be used to
- force inflate() to return immediately after header processing is complete
- and before any actual data is decompressed.
-
- The text, time, xflags, and os fields are filled in with the gzip header
- contents. hcrc is set to true if there is a header CRC. (The header CRC
- was valid if done is set to one.) If extra is not Z_NULL, then extra_max
- contains the maximum number of bytes to write to extra. Once done is true,
- extra_len contains the actual extra field length, and extra contains the
- extra field, or that field truncated if extra_max is less than extra_len.
- If name is not Z_NULL, then up to name_max characters are written there,
- terminated with a zero unless the length is greater than name_max. If
- comment is not Z_NULL, then up to comm_max characters are written there,
- terminated with a zero unless the length is greater than comm_max. When
- any of extra, name, or comment are not Z_NULL and the respective field is
- not present in the header, then that field is set to Z_NULL to signal its
- absence. This allows the use of deflateSetHeader() with the returned
- structure to duplicate the header. However if those fields are set to
- allocated memory, then the application will need to save those pointers
- elsewhere so that they can be eventually freed.
-
- If inflateGetHeader is not used, then the header information is simply
- discarded. The header is always checked for validity, including the header
- CRC if present. inflateReset() will reset the process to discard the header
- information. The application would need to call inflateGetHeader() again to
- retrieve the header from the next gzip stream.
-
- inflateGetHeader returns Z_OK if success, or Z_STREAM_ERROR if the source
- stream state was inconsistent.
-*/
-
-/*
-ZEXTERN int ZEXPORT inflateBackInit OF((z_streamp strm, int windowBits,
- unsigned char FAR *window));
-
- Initialize the internal stream state for decompression using inflateBack()
- calls. The fields zalloc, zfree and opaque in strm must be initialized
- before the call. If zalloc and zfree are Z_NULL, then the default library-
- derived memory allocation routines are used. windowBits is the base two
- logarithm of the window size, in the range 8..15. window is a caller
- supplied buffer of that size. Except for special applications where it is
- assured that deflate was used with small window sizes, windowBits must be 15
- and a 32K byte window must be supplied to be able to decompress general
- deflate streams.
-
- See inflateBack() for the usage of these routines.
-
- inflateBackInit will return Z_OK on success, Z_STREAM_ERROR if any of
- the paramaters are invalid, Z_MEM_ERROR if the internal state could not
- be allocated, or Z_VERSION_ERROR if the version of the library does not
- match the version of the header file.
-*/
-
-typedef unsigned (*in_func) OF((void FAR *, unsigned char FAR * FAR *));
-typedef int (*out_func) OF((void FAR *, unsigned char FAR *, unsigned));
-
-ZEXTERN int ZEXPORT inflateBack OF((z_streamp strm,
- in_func in, void FAR *in_desc,
- out_func out, void FAR *out_desc));
-/*
- inflateBack() does a raw inflate with a single call using a call-back
- interface for input and output. This is more efficient than inflate() for
- file i/o applications in that it avoids copying between the output and the
- sliding window by simply making the window itself the output buffer. This
- function trusts the application to not change the output buffer passed by
- the output function, at least until inflateBack() returns.
-
- inflateBackInit() must be called first to allocate the internal state
- and to initialize the state with the user-provided window buffer.
- inflateBack() may then be used multiple times to inflate a complete, raw
- deflate stream with each call. inflateBackEnd() is then called to free
- the allocated state.
-
- A raw deflate stream is one with no zlib or gzip header or trailer.
- This routine would normally be used in a utility that reads zip or gzip
- files and writes out uncompressed files. The utility would decode the
- header and process the trailer on its own, hence this routine expects
- only the raw deflate stream to decompress. This is different from the
- normal behavior of inflate(), which expects either a zlib or gzip header and
- trailer around the deflate stream.
-
- inflateBack() uses two subroutines supplied by the caller that are then
- called by inflateBack() for input and output. inflateBack() calls those
- routines until it reads a complete deflate stream and writes out all of the
- uncompressed data, or until it encounters an error. The function's
- parameters and return types are defined above in the in_func and out_func
- typedefs. inflateBack() will call in(in_desc, &buf) which should return the
- number of bytes of provided input, and a pointer to that input in buf. If
- there is no input available, in() must return zero--buf is ignored in that
- case--and inflateBack() will return a buffer error. inflateBack() will call
- out(out_desc, buf, len) to write the uncompressed data buf[0..len-1]. out()
- should return zero on success, or non-zero on failure. If out() returns
- non-zero, inflateBack() will return with an error. Neither in() nor out()
- are permitted to change the contents of the window provided to
- inflateBackInit(), which is also the buffer that out() uses to write from.
- The length written by out() will be at most the window size. Any non-zero
- amount of input may be provided by in().
-
- For convenience, inflateBack() can be provided input on the first call by
- setting strm->next_in and strm->avail_in. If that input is exhausted, then
- in() will be called. Therefore strm->next_in must be initialized before
- calling inflateBack(). If strm->next_in is Z_NULL, then in() will be called
- immediately for input. If strm->next_in is not Z_NULL, then strm->avail_in
- must also be initialized, and then if strm->avail_in is not zero, input will
- initially be taken from strm->next_in[0 .. strm->avail_in - 1].
-
- The in_desc and out_desc parameters of inflateBack() is passed as the
- first parameter of in() and out() respectively when they are called. These
- descriptors can be optionally used to pass any information that the caller-
- supplied in() and out() functions need to do their job.
-
- On return, inflateBack() will set strm->next_in and strm->avail_in to
- pass back any unused input that was provided by the last in() call. The
- return values of inflateBack() can be Z_STREAM_END on success, Z_BUF_ERROR
- if in() or out() returned an error, Z_DATA_ERROR if there was a format
- error in the deflate stream (in which case strm->msg is set to indicate the
- nature of the error), or Z_STREAM_ERROR if the stream was not properly
- initialized. In the case of Z_BUF_ERROR, an input or output error can be
- distinguished using strm->next_in which will be Z_NULL only if in() returned
- an error. If strm->next is not Z_NULL, then the Z_BUF_ERROR was due to
- out() returning non-zero. (in() will always be called before out(), so
- strm->next_in is assured to be defined if out() returns non-zero.) Note
- that inflateBack() cannot return Z_OK.
-*/
-
-ZEXTERN int ZEXPORT inflateBackEnd OF((z_streamp strm));
-/*
- All memory allocated by inflateBackInit() is freed.
-
- inflateBackEnd() returns Z_OK on success, or Z_STREAM_ERROR if the stream
- state was inconsistent.
-*/
-
-ZEXTERN uLong ZEXPORT zlibCompileFlags OF((void));
-/* Return flags indicating compile-time options.
-
- Type sizes, two bits each, 00 = 16 bits, 01 = 32, 10 = 64, 11 = other:
- 1.0: size of uInt
- 3.2: size of uLong
- 5.4: size of voidpf (pointer)
- 7.6: size of z_off_t
-
- Compiler, assembler, and debug options:
- 8: DEBUG
- 9: ASMV or ASMINF -- use ASM code
- 10: ZLIB_WINAPI -- exported functions use the WINAPI calling convention
- 11: 0 (reserved)
-
- One-time table building (smaller code, but not thread-safe if true):
- 12: BUILDFIXED -- build static block decoding tables when needed
- 13: DYNAMIC_CRC_TABLE -- build CRC calculation tables when needed
- 14,15: 0 (reserved)
-
- Library content (indicates missing functionality):
- 16: NO_GZCOMPRESS -- gz* functions cannot compress (to avoid linking
- deflate code when not needed)
- 17: NO_GZIP -- deflate can't write gzip streams, and inflate can't detect
- and decode gzip streams (to avoid linking crc code)
- 18-19: 0 (reserved)
-
- Operation variations (changes in library functionality):
- 20: PKZIP_BUG_WORKAROUND -- slightly more permissive inflate
- 21: FASTEST -- deflate algorithm with only one, lowest compression level
- 22,23: 0 (reserved)
-
- The sprintf variant used by gzprintf (zero is best):
- 24: 0 = vs*, 1 = s* -- 1 means limited to 20 arguments after the format
- 25: 0 = *nprintf, 1 = *printf -- 1 means gzprintf() not secure!
- 26: 0 = returns value, 1 = void -- 1 means inferred string length returned
-
- Remainder:
- 27-31: 0 (reserved)
- */
-
-
- /* utility functions */
-
-/*
- The following utility functions are implemented on top of the
- basic stream-oriented functions. To simplify the interface, some
- default options are assumed (compression level and memory usage,
- standard memory allocation functions). The source code of these
- utility functions can easily be modified if you need special options.
-*/
-
-ZEXTERN int ZEXPORT compress OF((Bytef *dest, uLongf *destLen,
- const Bytef *source, uLong sourceLen));
-/*
- Compresses the source buffer into the destination buffer. sourceLen is
- the byte length of the source buffer. Upon entry, destLen is the total
- size of the destination buffer, which must be at least the value returned
- by compressBound(sourceLen). Upon exit, destLen is the actual size of the
- compressed buffer.
- This function can be used to compress a whole file at once if the
- input file is mmap'ed.
- compress returns Z_OK if success, Z_MEM_ERROR if there was not
- enough memory, Z_BUF_ERROR if there was not enough room in the output
- buffer.
-*/
-
-ZEXTERN int ZEXPORT compress2 OF((Bytef *dest, uLongf *destLen,
- const Bytef *source, uLong sourceLen,
- int level));
-/*
- Compresses the source buffer into the destination buffer. The level
- parameter has the same meaning as in deflateInit. sourceLen is the byte
- length of the source buffer. Upon entry, destLen is the total size of the
- destination buffer, which must be at least the value returned by
- compressBound(sourceLen). Upon exit, destLen is the actual size of the
- compressed buffer.
-
- compress2 returns Z_OK if success, Z_MEM_ERROR if there was not enough
- memory, Z_BUF_ERROR if there was not enough room in the output buffer,
- Z_STREAM_ERROR if the level parameter is invalid.
-*/
-
-ZEXTERN uLong ZEXPORT compressBound OF((uLong sourceLen));
-/*
- compressBound() returns an upper bound on the compressed size after
- compress() or compress2() on sourceLen bytes. It would be used before
- a compress() or compress2() call to allocate the destination buffer.
-*/
-
-ZEXTERN int ZEXPORT uncompress OF((Bytef *dest, uLongf *destLen,
- const Bytef *source, uLong sourceLen));
-/*
- Decompresses the source buffer into the destination buffer. sourceLen is
- the byte length of the source buffer. Upon entry, destLen is the total
- size of the destination buffer, which must be large enough to hold the
- entire uncompressed data. (The size of the uncompressed data must have
- been saved previously by the compressor and transmitted to the decompressor
- by some mechanism outside the scope of this compression library.)
- Upon exit, destLen is the actual size of the compressed buffer.
- This function can be used to decompress a whole file at once if the
- input file is mmap'ed.
-
- uncompress returns Z_OK if success, Z_MEM_ERROR if there was not
- enough memory, Z_BUF_ERROR if there was not enough room in the output
- buffer, or Z_DATA_ERROR if the input data was corrupted or incomplete.
-*/
-
-
-typedef voidp gzFile;
-
-ZEXTERN gzFile ZEXPORT gzopen OF((const char *path, const char *mode));
-/*
- Opens a gzip (.gz) file for reading or writing. The mode parameter
- is as in fopen ("rb" or "wb") but can also include a compression level
- ("wb9") or a strategy: 'f' for filtered data as in "wb6f", 'h' for
- Huffman only compression as in "wb1h", or 'R' for run-length encoding
- as in "wb1R". (See the description of deflateInit2 for more information
- about the strategy parameter.)
-
- gzopen can be used to read a file which is not in gzip format; in this
- case gzread will directly read from the file without decompression.
-
- gzopen returns NULL if the file could not be opened or if there was
- insufficient memory to allocate the (de)compression state; errno
- can be checked to distinguish the two cases (if errno is zero, the
- zlib error is Z_MEM_ERROR). */
-
-ZEXTERN gzFile ZEXPORT gzdopen OF((int fd, const char *mode));
-/*
- gzdopen() associates a gzFile with the file descriptor fd. File
- descriptors are obtained from calls like open, dup, creat, pipe or
- fileno (in the file has been previously opened with fopen).
- The mode parameter is as in gzopen.
- The next call of gzclose on the returned gzFile will also close the
- file descriptor fd, just like fclose(fdopen(fd), mode) closes the file
- descriptor fd. If you want to keep fd open, use gzdopen(dup(fd), mode).
- gzdopen returns NULL if there was insufficient memory to allocate
- the (de)compression state.
-*/
-
-ZEXTERN int ZEXPORT gzsetparams OF((gzFile file, int level, int strategy));
-/*
- Dynamically update the compression level or strategy. See the description
- of deflateInit2 for the meaning of these parameters.
- gzsetparams returns Z_OK if success, or Z_STREAM_ERROR if the file was not
- opened for writing.
-*/
-
-ZEXTERN int ZEXPORT gzread OF((gzFile file, voidp buf, unsigned len));
-/*
- Reads the given number of uncompressed bytes from the compressed file.
- If the input file was not in gzip format, gzread copies the given number
- of bytes into the buffer.
- gzread returns the number of uncompressed bytes actually read (0 for
- end of file, -1 for error). */
-
-ZEXTERN int ZEXPORT gzwrite OF((gzFile file,
- voidpc buf, unsigned len));
-/*
- Writes the given number of uncompressed bytes into the compressed file.
- gzwrite returns the number of uncompressed bytes actually written
- (0 in case of error).
-*/
-
-ZEXTERN int ZEXPORTVA gzprintf OF((gzFile file, const char *format, ...));
-/*
- Converts, formats, and writes the args to the compressed file under
- control of the format string, as in fprintf. gzprintf returns the number of
- uncompressed bytes actually written (0 in case of error). The number of
- uncompressed bytes written is limited to 4095. The caller should assure that
- this limit is not exceeded. If it is exceeded, then gzprintf() will return
- return an error (0) with nothing written. In this case, there may also be a
- buffer overflow with unpredictable consequences, which is possible only if
- zlib was compiled with the insecure functions sprintf() or vsprintf()
- because the secure snprintf() or vsnprintf() functions were not available.
-*/
-
-ZEXTERN int ZEXPORT gzputs OF((gzFile file, const char *s));
-/*
- Writes the given null-terminated string to the compressed file, excluding
- the terminating null character.
- gzputs returns the number of characters written, or -1 in case of error.
-*/
-
-ZEXTERN char * ZEXPORT gzgets OF((gzFile file, char *buf, int len));
-/*
- Reads bytes from the compressed file until len-1 characters are read, or
- a newline character is read and transferred to buf, or an end-of-file
- condition is encountered. The string is then terminated with a null
- character.
- gzgets returns buf, or Z_NULL in case of error.
-*/
-
-ZEXTERN int ZEXPORT gzputc OF((gzFile file, int c));
-/*
- Writes c, converted to an unsigned char, into the compressed file.
- gzputc returns the value that was written, or -1 in case of error.
-*/
-
-ZEXTERN int ZEXPORT gzgetc OF((gzFile file));
-/*
- Reads one byte from the compressed file. gzgetc returns this byte
- or -1 in case of end of file or error.
-*/
-
-ZEXTERN int ZEXPORT gzungetc OF((int c, gzFile file));
-/*
- Push one character back onto the stream to be read again later.
- Only one character of push-back is allowed. gzungetc() returns the
- character pushed, or -1 on failure. gzungetc() will fail if a
- character has been pushed but not read yet, or if c is -1. The pushed
- character will be discarded if the stream is repositioned with gzseek()
- or gzrewind().
-*/
-
-ZEXTERN int ZEXPORT gzflush OF((gzFile file, int flush));
-/*
- Flushes all pending output into the compressed file. The parameter
- flush is as in the deflate() function. The return value is the zlib
- error number (see function gzerror below). gzflush returns Z_OK if
- the flush parameter is Z_FINISH and all output could be flushed.
- gzflush should be called only when strictly necessary because it can
- degrade compression.
-*/
-
-ZEXTERN z_off_t ZEXPORT gzseek OF((gzFile file,
- z_off_t offset, int whence));
-/*
- Sets the starting position for the next gzread or gzwrite on the
- given compressed file. The offset represents a number of bytes in the
- uncompressed data stream. The whence parameter is defined as in lseek(2);
- the value SEEK_END is not supported.
- If the file is opened for reading, this function is emulated but can be
- extremely slow. If the file is opened for writing, only forward seeks are
- supported; gzseek then compresses a sequence of zeroes up to the new
- starting position.
-
- gzseek returns the resulting offset location as measured in bytes from
- the beginning of the uncompressed stream, or -1 in case of error, in
- particular if the file is opened for writing and the new starting position
- would be before the current position.
-*/
-
-ZEXTERN int ZEXPORT gzrewind OF((gzFile file));
-/*
- Rewinds the given file. This function is supported only for reading.
-
- gzrewind(file) is equivalent to (int)gzseek(file, 0L, SEEK_SET)
-*/
-
-ZEXTERN z_off_t ZEXPORT gztell OF((gzFile file));
-/*
- Returns the starting position for the next gzread or gzwrite on the
- given compressed file. This position represents a number of bytes in the
- uncompressed data stream.
-
- gztell(file) is equivalent to gzseek(file, 0L, SEEK_CUR)
-*/
-
-ZEXTERN int ZEXPORT gzeof OF((gzFile file));
-/*
- Returns 1 when EOF has previously been detected reading the given
- input stream, otherwise zero.
-*/
-
-ZEXTERN int ZEXPORT gzdirect OF((gzFile file));
-/*
- Returns 1 if file is being read directly without decompression, otherwise
- zero.
-*/
-
-ZEXTERN int ZEXPORT gzclose OF((gzFile file));
-/*
- Flushes all pending output if necessary, closes the compressed file
- and deallocates all the (de)compression state. The return value is the zlib
- error number (see function gzerror below).
-*/
-
-ZEXTERN const char * ZEXPORT gzerror OF((gzFile file, int *errnum));
-/*
- Returns the error message for the last error which occurred on the
- given compressed file. errnum is set to zlib error number. If an
- error occurred in the file system and not in the compression library,
- errnum is set to Z_ERRNO and the application may consult errno
- to get the exact error code.
-*/
-
-ZEXTERN void ZEXPORT gzclearerr OF((gzFile file));
-/*
- Clears the error and end-of-file flags for file. This is analogous to the
- clearerr() function in stdio. This is useful for continuing to read a gzip
- file that is being written concurrently.
-*/
-
- /* checksum functions */
-
-/*
- These functions are not related to compression but are exported
- anyway because they might be useful in applications using the
- compression library.
-*/
-
-ZEXTERN uLong ZEXPORT adler32 OF((uLong adler, const Bytef *buf, uInt len));
-/*
- Update a running Adler-32 checksum with the bytes buf[0..len-1] and
- return the updated checksum. If buf is NULL, this function returns
- the required initial value for the checksum.
- An Adler-32 checksum is almost as reliable as a CRC32 but can be computed
- much faster. Usage example:
-
- uLong adler = adler32(0L, Z_NULL, 0);
-
- while (read_buffer(buffer, length) != EOF) {
- adler = adler32(adler, buffer, length);
- }
- if (adler != original_adler) error();
-*/
-
-ZEXTERN uLong ZEXPORT adler32_combine OF((uLong adler1, uLong adler2,
- z_off_t len2));
-/*
- Combine two Adler-32 checksums into one. For two sequences of bytes, seq1
- and seq2 with lengths len1 and len2, Adler-32 checksums were calculated for
- each, adler1 and adler2. adler32_combine() returns the Adler-32 checksum of
- seq1 and seq2 concatenated, requiring only adler1, adler2, and len2.
-*/
-
-ZEXTERN uLong ZEXPORT crc32 OF((uLong crc, const Bytef *buf, uInt len));
-/*
- Update a running CRC-32 with the bytes buf[0..len-1] and return the
- updated CRC-32. If buf is NULL, this function returns the required initial
- value for the for the crc. Pre- and post-conditioning (one's complement) is
- performed within this function so it shouldn't be done by the application.
- Usage example:
-
- uLong crc = crc32(0L, Z_NULL, 0);
-
- while (read_buffer(buffer, length) != EOF) {
- crc = crc32(crc, buffer, length);
- }
- if (crc != original_crc) error();
-*/
-
-ZEXTERN uLong ZEXPORT crc32_combine OF((uLong crc1, uLong crc2, z_off_t len2));
-
-/*
- Combine two CRC-32 check values into one. For two sequences of bytes,
- seq1 and seq2 with lengths len1 and len2, CRC-32 check values were
- calculated for each, crc1 and crc2. crc32_combine() returns the CRC-32
- check value of seq1 and seq2 concatenated, requiring only crc1, crc2, and
- len2.
-*/
-
-
- /* various hacks, don't look :) */
-
-/* deflateInit and inflateInit are macros to allow checking the zlib version
- * and the compiler's view of z_stream:
- */
-ZEXTERN int ZEXPORT deflateInit_ OF((z_streamp strm, int level,
- const char *version, int stream_size));
-ZEXTERN int ZEXPORT inflateInit_ OF((z_streamp strm,
- const char *version, int stream_size));
-ZEXTERN int ZEXPORT deflateInit2_ OF((z_streamp strm, int level, int method,
- int windowBits, int memLevel,
- int strategy, const char *version,
- int stream_size));
-ZEXTERN int ZEXPORT inflateInit2_ OF((z_streamp strm, int windowBits,
- const char *version, int stream_size));
-ZEXTERN int ZEXPORT inflateBackInit_ OF((z_streamp strm, int windowBits,
- unsigned char FAR *window,
- const char *version,
- int stream_size));
-#define deflateInit(strm, level) \
- deflateInit_((strm), (level), ZLIB_VERSION, sizeof(z_stream))
-#define inflateInit(strm) \
- inflateInit_((strm), ZLIB_VERSION, sizeof(z_stream))
-#define deflateInit2(strm, level, method, windowBits, memLevel, strategy) \
- deflateInit2_((strm),(level),(method),(windowBits),(memLevel),\
- (strategy), ZLIB_VERSION, sizeof(z_stream))
-#define inflateInit2(strm, windowBits) \
- inflateInit2_((strm), (windowBits), ZLIB_VERSION, sizeof(z_stream))
-#define inflateBackInit(strm, windowBits, window) \
- inflateBackInit_((strm), (windowBits), (window), \
- ZLIB_VERSION, sizeof(z_stream))
-
-
-#if !defined(ZUTIL_H) && !defined(NO_DUMMY_DECL)
- struct internal_state {int dummy;}; /* hack for buggy compilers */
-#endif
-
-ZEXTERN const char * ZEXPORT zError OF((int));
-ZEXTERN int ZEXPORT inflateSyncPoint OF((z_streamp z));
-ZEXTERN const uLongf * ZEXPORT get_crc_table OF((void));
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* ZLIB_H */
diff --git a/jan/projectfiles/visualstudio-2010-libretro-360/fba_vs2010_libretro_360.sln b/jan/projectfiles/visualstudio-2010-libretro-360/fba_vs2010_libretro_360.sln
deleted file mode 100644
index 17244b946..000000000
--- a/jan/projectfiles/visualstudio-2010-libretro-360/fba_vs2010_libretro_360.sln
+++ /dev/null
@@ -1,32 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 11.00
-# Visual Studio 2010
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libretro-msvc2010-360", "fba_vs2010_libretro_360.vcxproj", "{00AAF92F-A249-4DF2-AE24-0C5427DB319E}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- CodeAnalysis|Xbox 360 = CodeAnalysis|Xbox 360
- Debug|Xbox 360 = Debug|Xbox 360
- Profile_FastCap|Xbox 360 = Profile_FastCap|Xbox 360
- Profile|Xbox 360 = Profile|Xbox 360
- Release_LTCG|Xbox 360 = Release_LTCG|Xbox 360
- Release|Xbox 360 = Release|Xbox 360
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {00AAF92F-A249-4DF2-AE24-0C5427DB319E}.CodeAnalysis|Xbox 360.ActiveCfg = CodeAnalysis|Xbox 360
- {00AAF92F-A249-4DF2-AE24-0C5427DB319E}.CodeAnalysis|Xbox 360.Build.0 = CodeAnalysis|Xbox 360
- {00AAF92F-A249-4DF2-AE24-0C5427DB319E}.Debug|Xbox 360.ActiveCfg = Debug|Xbox 360
- {00AAF92F-A249-4DF2-AE24-0C5427DB319E}.Debug|Xbox 360.Build.0 = Debug|Xbox 360
- {00AAF92F-A249-4DF2-AE24-0C5427DB319E}.Profile_FastCap|Xbox 360.ActiveCfg = Profile_FastCap|Xbox 360
- {00AAF92F-A249-4DF2-AE24-0C5427DB319E}.Profile_FastCap|Xbox 360.Build.0 = Profile_FastCap|Xbox 360
- {00AAF92F-A249-4DF2-AE24-0C5427DB319E}.Profile|Xbox 360.ActiveCfg = Profile|Xbox 360
- {00AAF92F-A249-4DF2-AE24-0C5427DB319E}.Profile|Xbox 360.Build.0 = Profile|Xbox 360
- {00AAF92F-A249-4DF2-AE24-0C5427DB319E}.Release_LTCG|Xbox 360.ActiveCfg = Release_LTCG|Xbox 360
- {00AAF92F-A249-4DF2-AE24-0C5427DB319E}.Release_LTCG|Xbox 360.Build.0 = Release_LTCG|Xbox 360
- {00AAF92F-A249-4DF2-AE24-0C5427DB319E}.Release|Xbox 360.ActiveCfg = Release|Xbox 360
- {00AAF92F-A249-4DF2-AE24-0C5427DB319E}.Release|Xbox 360.Build.0 = Release|Xbox 360
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/jan/projectfiles/visualstudio-2010-libretro-360/fba_vs2010_libretro_360.vcxproj b/jan/projectfiles/visualstudio-2010-libretro-360/fba_vs2010_libretro_360.vcxproj
deleted file mode 100644
index 6133770a1..000000000
--- a/jan/projectfiles/visualstudio-2010-libretro-360/fba_vs2010_libretro_360.vcxproj
+++ /dev/null
@@ -1,868 +0,0 @@
-
-
-
-
- CodeAnalysis
- Xbox 360
-
-
- Debug
- Xbox 360
-
-
- Profile
- Xbox 360
-
-
- Profile_FastCap
- Xbox 360
-
-
- Release
- Xbox 360
-
-
- Release_LTCG
- Xbox 360
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- true
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- true
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- CompileAsC
- CompileAsC
- CompileAsC
- CompileAsC
- CompileAsC
- CompileAsC
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- CompileAsC
- CompileAsC
- CompileAsC
- CompileAsC
- CompileAsC
- CompileAsC
-
-
- CompileAsC
- CompileAsC
- CompileAsC
- CompileAsC
- CompileAsC
- CompileAsC
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- CompileAsC
- CompileAsC
- CompileAsC
- CompileAsC
- CompileAsC
- CompileAsC
-
-
- CompileAsC
- CompileAsC
- CompileAsC
- CompileAsC
- CompileAsC
- CompileAsC
-
-
- CompileAsC
- CompileAsC
- CompileAsC
- CompileAsC
- CompileAsC
- CompileAsC
-
-
- CompileAsC
- CompileAsC
- CompileAsC
- CompileAsC
- CompileAsC
- CompileAsC
-
-
-
-
-
-
-
- true
-
-
- true
-
-
-
-
-
-
- true
-
-
-
- true
-
-
- true
-
-
-
-
-
-
- true
-
-
- true
-
-
-
-
- true
-
-
- true
-
-
- true
-
-
- true
-
-
- true
-
-
-
-
- true
-
-
- true
-
-
-
-
- true
-
-
-
-
- true
-
-
- true
-
-
-
-
- CompileAsC
- CompileAsC
- CompileAsC
- CompileAsC
- CompileAsC
- CompileAsC
-
-
- true
-
-
- true
-
-
- CompileAsC
- CompileAsC
- CompileAsC
- CompileAsC
- CompileAsC
- CompileAsC
-
-
- CompileAsC
- CompileAsC
- CompileAsC
- CompileAsC
- CompileAsC
- CompileAsC
-
-
- CompileAsC
- CompileAsC
- CompileAsC
- CompileAsC
- CompileAsC
- CompileAsC
-
-
- CompileAsC
- CompileAsC
- CompileAsC
- CompileAsC
- CompileAsC
- CompileAsC
-
-
- true
-
-
-
- true
-
-
-
- true
-
-
- true
-
-
-
-
-
-
-
-
-
-
- {00AAF92F-A249-4DF2-AE24-0C5427DB319E}
- Xbox360Proj
-
-
-
- StaticLibrary
- MultiByte
-
-
- StaticLibrary
- MultiByte
-
-
- StaticLibrary
- MultiByte
-
-
- StaticLibrary
- MultiByte
-
-
- StaticLibrary
- MultiByte
- true
-
-
- StaticLibrary
- true
- MultiByte
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- $(OutDir)$(ProjectName).lib
-
-
- $(OutDir)$(ProjectName).lib
-
-
- $(OutDir)$(ProjectName).lib
-
-
- $(OutDir)$(ProjectName).lib
-
-
- $(OutDir)libretro$(TargetExt)
-
-
- $(OutDir)$(ProjectName).lib
-
-
-
- NotUsing
- Level3
- ProgramDatabase
- Disabled
- false
- true
- false
- $(OutDir)$(ProjectName).pch
- MultiThreadedDebug
- _DEBUG;_XBOX;_XBOX360;_LIB;%(PreprocessorDefinitions);USE_SPEEDHACKS;__LIBRETRO__;INLINE=__inline static;EXTERNAL_ZLIB;__fastcall=;MAME_INLINE=_inline static;MSB_FIRST;__LIBRETRO_OPTIMIZATIONS__;FRONTEND_SUPPORTS_RGB565
- Callcap
- $(SolutionDir)\..\..\src\burn\drv\taito;$(SolutionDir)\..\..\src\dep\generated;$(SolutionDir)\..\..\src\burner\libretro;$(SolutionDir)\..\..\src\burner;$(SolutionDir)\..\..\src\burn;$(SolutionDir)\..\..\src\burn\drv\pgm;$(SolutionDir)\..\..\src\burn\devices;$(SolutionDir)\..\..\src\burn\snd;$(SolutionDir)\..\..\src\cpu\;$(SolutionDir)\..\..\src\cpu\arm;$(SolutionDir)\..\..\src\cpu\arm7;$(SolutionDir)\..\..\src\cpu\h6280;$(SolutionDir)\..\..\src\cpu\hd6309;$(SolutionDir)\..\..\src\cpu\i8039;$(SolutionDir)\..\..\src\cpu\konami;$(SolutionDir)\..\..\src\cpu\m6502;$(SolutionDir)\..\..\src\cpu\m6800;$(SolutionDir)\..\..\src\cpu\m6805;$(SolutionDir)\..\..\src\cpu\m6809;$(SolutionDir)\..\..\src\cpu\m68k;$(SolutionDir)\..\..\src\cpu\nec;$(SolutionDir)\..\..\src\cpu\s2650;$(SolutionDir)\..\..\src\cpu\sh2;$(SolutionDir)\..\..\src\cpu\z80;$(SolutionDir)\..\..\src\intf\input;$(SolutionDir)\..\..\src\intf;$(SolutionDir)\..\..\src\dep\libs\zlib;$(SolutionDir)\..\..\src\intf\cd
- true
-
-
- true
-
-
-
-
- NotUsing
- Level4
- ProgramDatabase
- Disabled
- false
- true
- AnalyzeOnly
- false
- $(OutDir)$(ProjectName).pch
- MultiThreadedDebug
- _DEBUG;_XBOX;_XBOX360;_LIB;%(PreprocessorDefinitions);USE_SPEEDHACKS;__LIBRETRO__;INLINE=__inline static;EXTERNAL_ZLIB;__fastcall=;MAME_INLINE=_inline static;MSB_FIRST;__LIBRETRO_OPTIMIZATIONS__;FRONTEND_SUPPORTS_RGB565
- Callcap
- $(SolutionDir)\..\..\src\burn\drv\taito;$(SolutionDir)\..\..\src\dep\generated;$(SolutionDir)\..\..\src\burner\libretro;$(SolutionDir)\..\..\src\burner;$(SolutionDir)\..\..\src\burn;$(SolutionDir)\..\..\src\burn\drv\pgm;$(SolutionDir)\..\..\src\burn\devices;$(SolutionDir)\..\..\src\burn\snd;$(SolutionDir)\..\..\src\cpu\;$(SolutionDir)\..\..\src\cpu\arm;$(SolutionDir)\..\..\src\cpu\arm7;$(SolutionDir)\..\..\src\cpu\h6280;$(SolutionDir)\..\..\src\cpu\hd6309;$(SolutionDir)\..\..\src\cpu\i8039;$(SolutionDir)\..\..\src\cpu\konami;$(SolutionDir)\..\..\src\cpu\m6502;$(SolutionDir)\..\..\src\cpu\m6800;$(SolutionDir)\..\..\src\cpu\m6805;$(SolutionDir)\..\..\src\cpu\m6809;$(SolutionDir)\..\..\src\cpu\m68k;$(SolutionDir)\..\..\src\cpu\nec;$(SolutionDir)\..\..\src\cpu\s2650;$(SolutionDir)\..\..\src\cpu\sh2;$(SolutionDir)\..\..\src\cpu\z80;$(SolutionDir)\..\..\src\intf\input;$(SolutionDir)\..\..\src\intf;$(SolutionDir)\..\..\src\dep\libs\zlib;$(SolutionDir)\..\..\src\intf\cd
- true
-
-
- true
-
-
-
-
- Level3
- NotUsing
- Full
- true
- false
- true
- ProgramDatabase
- Size
- false
- $(OutDir)$(ProjectName).pch
- MultiThreaded
- NDEBUG;_XBOX;_XBOX360;PROFILE;_LIB;%(PreprocessorDefinitions);USE_SPEEDHACKS;__LIBRETRO__;INLINE=__inline static;EXTERNAL_ZLIB;__fastcall=;MAME_INLINE=_inline static;MSB_FIRST;__LIBRETRO_OPTIMIZATIONS__;FRONTEND_SUPPORTS_RGB565
- Callcap
- $(SolutionDir)\..\..\src\burn\drv\taito;$(SolutionDir)\..\..\src\dep\generated;$(SolutionDir)\..\..\src\burner\libretro;$(SolutionDir)\..\..\src\burner;$(SolutionDir)\..\..\src\burn;$(SolutionDir)\..\..\src\burn\drv\pgm;$(SolutionDir)\..\..\src\burn\devices;$(SolutionDir)\..\..\src\burn\snd;$(SolutionDir)\..\..\src\cpu\;$(SolutionDir)\..\..\src\cpu\arm;$(SolutionDir)\..\..\src\cpu\arm7;$(SolutionDir)\..\..\src\cpu\h6280;$(SolutionDir)\..\..\src\cpu\hd6309;$(SolutionDir)\..\..\src\cpu\i8039;$(SolutionDir)\..\..\src\cpu\konami;$(SolutionDir)\..\..\src\cpu\m6502;$(SolutionDir)\..\..\src\cpu\m6800;$(SolutionDir)\..\..\src\cpu\m6805;$(SolutionDir)\..\..\src\cpu\m6809;$(SolutionDir)\..\..\src\cpu\m68k;$(SolutionDir)\..\..\src\cpu\nec;$(SolutionDir)\..\..\src\cpu\s2650;$(SolutionDir)\..\..\src\cpu\sh2;$(SolutionDir)\..\..\src\cpu\z80;$(SolutionDir)\..\..\src\intf\input;$(SolutionDir)\..\..\src\intf;$(SolutionDir)\..\..\src\dep\libs\zlib;$(SolutionDir)\..\..\src\intf\cd
- true
-
-
- true
- false
- xapilib.lib;%(IgnoreSpecificDefaultLibraries)
- true
-
-
-
-
- Level3
- NotUsing
- Full
- true
- false
- true
- ProgramDatabase
- Fastcap
- Size
- false
- $(OutDir)$(ProjectName).pch
- MultiThreaded
- NDEBUG;_XBOX;_XBOX360;PROFILE;FASTCAP;_LIB;%(PreprocessorDefinitions);USE_SPEEDHACKS;__LIBRETRO__;INLINE=__inline static;EXTERNAL_ZLIB;__fastcall=;MAME_INLINE=_inline static;MSB_FIRST;__LIBRETRO_OPTIMIZATIONS__;FRONTEND_SUPPORTS_RGB565
- $(SolutionDir)\..\..\src\burn\drv\taito;$(SolutionDir)\..\..\src\generated;$(SolutionDir)\..\..\src\burner\libretro;$(SolutionDir)\..\..\src\burner;$(SolutionDir)\..\..\src\burn;$(SolutionDir)\..\..\src\burn\drv\pgm;$(SolutionDir)\..\..\src\burn\devices;$(SolutionDir)\..\..\src\burn\snd;$(SolutionDir)\..\..\src\cpu\;$(SolutionDir)\..\..\src\cpu\arm;$(SolutionDir)\..\..\src\cpu\arm7;$(SolutionDir)\..\..\src\cpu\h6280;$(SolutionDir)\..\..\src\cpu\hd6309;$(SolutionDir)\..\..\src\cpu\i8039;$(SolutionDir)\..\..\src\cpu\konami;$(SolutionDir)\..\..\src\cpu\m6502;$(SolutionDir)\..\..\src\cpu\m6800;$(SolutionDir)\..\..\src\cpu\m6805;$(SolutionDir)\..\..\src\cpu\m6809;$(SolutionDir)\..\..\src\cpu\m68k;$(SolutionDir)\..\..\src\cpu\nec;$(SolutionDir)\..\..\src\cpu\s2650;$(SolutionDir)\..\..\src\cpu\sh2;$(SolutionDir)\..\..\src\cpu\z80;$(SolutionDir)\..\..\src\intf\input;$(SolutionDir)\..\..\src\intf;$(SolutionDir)\..\..\src\dep\libs\zlib;$(SolutionDir)\..\..\src\intf\cd
- true
-
-
- true
- false
- true
-
-
-
-
- Level3
- NotUsing
- Full
- true
- true
- ProgramDatabase
- Size
- false
- false
- $(OutDir)$(ProjectName).pch
- MultiThreaded
- NDEBUG;_XBOX;_XBOX360;_LIB;%(PreprocessorDefinitions);USE_SPEEDHACKS;__LIBRETRO__;INLINE=__inline static;EXTERNAL_ZLIB;__fastcall=;MAME_INLINE=_inline static;MSB_FIRST;__LIBRETRO_OPTIMIZATIONS__;FRONTEND_SUPPORTS_RGB565
- $(SolutionDir)\..\..\src\burn\drv\taito;$(SolutionDir)\..\..\src\dep\generated;$(SolutionDir)\..\..\src\burner\libretro;$(SolutionDir)\..\..\src\burner;$(SolutionDir)\..\..\src\burn;$(SolutionDir)\..\..\src\burn\drv\pgm;$(SolutionDir)\..\..\src\burn\devices;$(SolutionDir)\..\..\src\burn\snd;$(SolutionDir)\..\..\src\cpu\;$(SolutionDir)\..\..\src\cpu\arm;$(SolutionDir)\..\..\src\cpu\arm7;$(SolutionDir)\..\..\src\cpu\h6280;$(SolutionDir)\..\..\src\cpu\hd6309;$(SolutionDir)\..\..\src\cpu\i8039;$(SolutionDir)\..\..\src\cpu\konami;$(SolutionDir)\..\..\src\cpu\m6502;$(SolutionDir)\..\..\src\cpu\m6800;$(SolutionDir)\..\..\src\cpu\m6805;$(SolutionDir)\..\..\src\cpu\m6809;$(SolutionDir)\..\..\src\cpu\m68k;$(SolutionDir)\..\..\src\cpu\nec;$(SolutionDir)\..\..\src\cpu\s2650;$(SolutionDir)\..\..\src\cpu\sh2;$(SolutionDir)\..\..\src\cpu\z80;$(SolutionDir)\..\..\src\intf\input;$(SolutionDir)\..\..\src\intf;$(SolutionDir)\..\..\src\dep\libs\zlib;$(SolutionDir)\..\..\src\intf\cd
- true
- true
-
-
- true
- true
- true
-
-
-
-
- Level3
- NotUsing
- Full
- true
- true
- ProgramDatabase
- Size
- false
- false
- $(OutDir)$(ProjectName).pch
- MultiThreaded
- NDEBUG;_XBOX;_XBOX360;LTCG;_LIB;%(PreprocessorDefinitions);USE_SPEEDHACKS;__LIBRETRO__;INLINE=__inline static;EXTERNAL_ZLIB;__fastcall=;MAME_INLINE=_inline static;MSB_FIRST;__LIBRETRO_OPTIMIZATIONS__;FRONTEND_SUPPORTS_RGB565
- $(SolutionDir)\..\..\src\burn\drv\taito;$(SolutionDir)\..\..\src\dep\generated;$(SolutionDir)\..\..\src\burner\libretro;$(SolutionDir)\..\..\src\burner;$(SolutionDir)\..\..\src\burn;$(SolutionDir)\..\..\src\burn\drv\pgm;$(SolutionDir)\..\..\src\burn\devices;$(SolutionDir)\..\..\src\burn\snd;$(SolutionDir)\..\..\src\cpu\;$(SolutionDir)\..\..\src\cpu\arm;$(SolutionDir)\..\..\src\cpu\arm7;$(SolutionDir)\..\..\src\cpu\h6280;$(SolutionDir)\..\..\src\cpu\hd6309;$(SolutionDir)\..\..\src\cpu\i8039;$(SolutionDir)\..\..\src\cpu\konami;$(SolutionDir)\..\..\src\cpu\m6502;$(SolutionDir)\..\..\src\cpu\m6800;$(SolutionDir)\..\..\src\cpu\m6805;$(SolutionDir)\..\..\src\cpu\m6809;$(SolutionDir)\..\..\src\cpu\m68k;$(SolutionDir)\..\..\src\cpu\nec;$(SolutionDir)\..\..\src\cpu\s2650;$(SolutionDir)\..\..\src\cpu\sh2;$(SolutionDir)\..\..\src\cpu\z80;$(SolutionDir)\..\..\src\intf\input;$(SolutionDir)\..\..\src\intf;$(SolutionDir)\..\..\src\dep\libs\zlib;$(SolutionDir)\..\..\src\intf\cd
- true
-
-
- true
- true
- true
-
-
-
-
-
-
\ No newline at end of file
diff --git a/jan/projectfiles/visualstudio-2010-libretro-360/fba_vs2010_libretro_360.vcxproj.filters b/jan/projectfiles/visualstudio-2010-libretro-360/fba_vs2010_libretro_360.vcxproj.filters
deleted file mode 100644
index ba2a5bacf..000000000
--- a/jan/projectfiles/visualstudio-2010-libretro-360/fba_vs2010_libretro_360.vcxproj.filters
+++ /dev/null
@@ -1,1611 +0,0 @@
-
-
-
-
- {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
- cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx
-
-
- {93995380-89BD-4b04-88EB-625FBE52EBFB}
- h;hpp;hxx;hm;inl;inc;xsd
-
-
- {5934b0a0-a392-46b1-a6b9-85680f426502}
-
-
- {7c7aaba6-9639-446b-97ad-78934fe6257e}
-
-
- {19ce1c3e-fbdf-4f4c-a2c5-b388e3d5b300}
-
-
- {80c3d021-c22f-4966-a9ed-200bf11c7711}
-
-
- {9b42773a-1929-47d0-8c89-956aef201ae0}
-
-
- {bb09c40c-3bc8-4b28-b784-b6cd023e5512}
-
-
- {be7d8be7-fecc-423c-aea1-1f2afd87d36a}
-
-
- {5d6ecda8-d51d-45e8-b3f7-82eea2707c27}
-
-
- {6b45ac37-2362-4d09-9622-46a3bcf7d68d}
-
-
- {25e3cd1c-1fcc-41de-a4c4-cd2b8b496a0a}
-
-
- {f5b330a7-4220-4c25-99e1-0d96dff79849}
-
-
- {414d8631-5515-4093-92ea-b4a8bf383345}
-
-
- {5325ef73-60f6-4b8b-9aab-44d0121e1981}
-
-
- {fbab1812-0ae7-4ddd-83f8-94aee0284c9e}
-
-
- {ab923f25-32a8-42c7-bd0f-6ed2c688ca11}
-
-
- {610fa212-4405-452d-a849-fb70d7e0ef63}
-
-
- {8c63af19-d7d7-4531-84d1-9bf349c8a8e3}
-
-
- {b7f20cc9-683f-43c2-bc98-e62b2fd559dc}
-
-
- {e5072976-2218-4f59-ad88-781c310d79c5}
-
-
- {25acca22-2077-4e00-bdbf-14bc6d910891}
-
-
- {af0f0827-8ccc-419c-8050-7a5cd3fa65df}
-
-
- {4424fa18-bbca-4bf9-bb5c-b587e15a1bdd}
-
-
- {5a0edcb9-76f2-48c3-937c-4fe535375637}
-
-
- {98d5634b-00af-461d-b1e8-5ddb78a01358}
-
-
- {8038da63-c558-4a07-b86c-5dfbbac7a440}
-
-
- {d52a4de1-1f51-4ec6-be1b-69678b7abf9c}
-
-
- {a37ddb81-83fd-4d7e-9d51-32ae6213552a}
-
-
- {feedda35-2155-4f29-8d40-0c37531357d0}
-
-
- {2490bcbc-49fd-44af-905f-bd2457903f9f}
-
-
- {132bbd53-5e65-4def-93c9-6965688b90e8}
-
-
- {eb5987df-30e3-4820-bdc9-994f6a6e1296}
-
-
- {65990e1c-3971-4672-b2a9-dcacaac8a82b}
-
-
- {95c99912-6a6e-4b1d-804d-a8fa62290a5a}
-
-
- {64a01927-1d33-44c6-b011-22c0b88fa1b1}
-
-
- {a16f8dee-998c-4c1c-a8a2-787b8191c4b5}
-
-
- {6f9fd21b-f948-49f2-b50d-55ebd40a2c1a}
-
-
- {44d80511-457a-4de2-81ef-0324f6950b51}
-
-
- {56be89cb-445f-47cf-8d08-654f93832a11}
-
-
- {aa239b2a-4448-46ed-aa06-51a84303473a}
-
-
- {7f4ef354-8a73-47f9-9c04-9924b98358ff}
-
-
-
-
- Source Files\burn\drv\cps3
-
-
- Source Files\burn\drv\cps3
-
-
- Source Files\burn\drv\cps3
-
-
- Source Files\burner
-
-
- Source Files\burner
-
-
- Source Files\burner
-
-
- Source Files\burner
-
-
- Source Files\burner
-
-
- Source Files\burn\drv\snes
-
-
- Source Files\burn\drv\snes
-
-
- Source Files\burn\drv\snes
-
-
- Source Files\burn\drv\snes
-
-
- Source Files\burn\drv\capcom
-
-
- Source Files\burn\drv\capcom
-
-
- Source Files\burn\drv\capcom
-
-
- Source Files\burn\drv\capcom
-
-
- Source Files\burn\drv\capcom
-
-
- Source Files\burn\drv\capcom
-
-
- Source Files\burn\drv\capcom
-
-
- Source Files\burn\drv\capcom
-
-
- Source Files\burn\drv\capcom
-
-
- Source Files\burn\drv\capcom
-
-
- Source Files\burn\drv\capcom
-
-
- Source Files\burn\drv\capcom
-
-
- Source Files\burn\drv\capcom
-
-
- Source Files\burn\drv\capcom
-
-
- Source Files\burn\drv\capcom
-
-
- Source Files\burn\drv\capcom
-
-
- Source Files\burn\drv\capcom
-
-
- Source Files\burn\drv\capcom
-
-
- Source Files\burn\drv\capcom
-
-
- Source Files\burn\drv\capcom
-
-
- Source Files\burn\drv\capcom
-
-
- Source Files\burn\drv\capcom
-
-
- Source Files\burn\drv\capcom
-
-
- Source Files\burn\drv\capcom
-
-
- Source Files\burn\drv\cave
-
-
- Source Files\burn\drv\cave
-
-
- Source Files\burn\drv\cave
-
-
- Source Files\burn\drv\cave
-
-
- Source Files\burn\drv\cave
-
-
- Source Files\burn\drv\cave
-
-
- Source Files\burn\drv\cave
-
-
- Source Files\burn\drv\cave
-
-
- Source Files\burn\drv\cave
-
-
- Source Files\burn\drv\cave
-
-
- Source Files\burn\drv\cave
-
-
- Source Files\burn\drv\cave
-
-
- Source Files\burn\drv\cave
-
-
- Source Files\burn\drv\cave
-
-
- Source Files\burn\drv\cave
-
-
- Source Files\burn\drv\cave
-
-
- Source Files\burn\drv\cave
-
-
- Source Files\burn\drv\cave
-
-
- Source Files\burn\drv\dataeast
-
-
- Source Files\burn\drv\dataeast
-
-
- Source Files\burn\drv\dataeast
-
-
- Source Files\burn\drv\dataeast
-
-
- Source Files\burn\drv\dataeast
-
-
- Source Files\burn\drv\dataeast
-
-
- Source Files\burn\drv\dataeast
-
-
- Source Files\burn\drv\dataeast
-
-
- Source Files\burn\drv\dataeast
-
-
- Source Files\burn\drv\dataeast
-
-
- Source Files\burn\drv\dataeast
-
-
- Source Files\burn\drv\dataeast
-
-
- Source Files\burn\drv\dataeast
-
-
- Source Files\burn\drv\dataeast
-
-
- Source Files\burn\drv\dataeast
-
-
- Source Files\burn\drv\dataeast
-
-
- Source Files\burn\drv\dataeast
-
-
- Source Files\burn\drv\dataeast
-
-
- Source Files\burn\drv\dataeast
-
-
- Source Files\burn\drv\dataeast
-
-
- Source Files\burn\drv\dataeast
-
-
- Source Files\burn\drv\galaxian
-
-
- Source Files\burn\drv\galaxian
-
-
- Source Files\burn\drv\galaxian
-
-
- Source Files\burn\drv\galaxian
-
-
- Source Files\burn\drv\galaxian
-
-
- Source Files\burn\drv\irem
-
-
- Source Files\burn\drv\irem
-
-
- Source Files\burn\drv\irem
-
-
- Source Files\burn\drv\irem
-
-
- Source Files\burn\drv\irem
-
-
- Source Files\burn\drv\irem
-
-
- Source Files\burn\drv\irem
-
-
- Source Files\burn\drv\konami
-
-
- Source Files\burn\drv\konami
-
-
- Source Files\burn\drv\konami
-
-
- Source Files\burn\drv\konami
-
-
- Source Files\burn\drv\konami
-
-
- Source Files\burn\drv\konami
-
-
- Source Files\burn\drv\konami
-
-
- Source Files\burn\drv\konami
-
-
- Source Files\burn\drv\konami
-
-
- Source Files\burn\drv\konami
-
-
- Source Files\burn\drv\konami
-
-
- Source Files\burn\drv\konami
-
-
- Source Files\burn\drv\konami
-
-
- Source Files\burn\drv\konami
-
-
- Source Files\burn\drv\konami
-
-
- Source Files\burn\drv\konami
-
-
- Source Files\burn\drv\konami
-
-
- Source Files\burn\drv\konami
-
-
- Source Files\burn\drv\konami
-
-
- Source Files\burn\drv\konami
-
-
- Source Files\burn\drv\konami
-
-
- Source Files\burn\drv\konami
-
-
- Source Files\burn\drv\konami
-
-
- Source Files\burn\drv\konami
-
-
- Source Files\burn\drv\konami
-
-
- Source Files\burn\drv\konami
-
-
- Source Files\burn\drv\konami
-
-
- Source Files\burn\drv\konami
-
-
- Source Files\burn\drv\konami
-
-
- Source Files\burn\drv\konami
-
-
- Source Files\burn\drv\konami
-
-
- Source Files\burn\drv\konami
-
-
- Source Files\burn\drv\konami
-
-
- Source Files\burn\drv\konami
-
-
- Source Files\burn\drv\konami
-
-
- Source Files\burn\drv\konami
-
-
- Source Files\burn\drv\konami
-
-
- Source Files\burn\drv\konami
-
-
- Source Files\burn\drv\megadrive
-
-
- Source Files\burn\drv\megadrive
-
-
- Source Files\burn\drv\neogeo
-
-
- Source Files\burn\drv\neogeo
-
-
- Source Files\burn\drv\neogeo
-
-
- Source Files\burn\drv\neogeo
-
-
- Source Files\burn\drv\neogeo
-
-
- Source Files\burn\drv\neogeo
-
-
- Source Files\burn\drv\neogeo
-
-
- Source Files\burn\drv\neogeo
-
-
- Source Files\burn\drv\pce
-
-
- Source Files\burn\drv\pce
-
-
- Source Files\burn\drv\pgm
-
-
- Source Files\burn\drv\pgm
-
-
- Source Files\burn\drv\pgm
-
-
- Source Files\burn\drv\pgm
-
-
- Source Files\burn\drv\pgm
-
-
- Source Files\burn\drv\pgm
-
-
- Source Files\burn\drv\pre90s
-
-
- Source Files\burn\drv\pre90s
-
-
- Source Files\burn\drv\pre90s
-
-
- Source Files\burn\drv\pre90s
-
-
- Source Files\burn\drv\pre90s
-
-
- Source Files\burn\drv\pre90s
-
-
- Source Files\burn\drv\pre90s
-
-
- Source Files\burn\drv\pre90s
-
-
- Source Files\burn\drv\pre90s
-
-
- Source Files\burn\drv\pre90s
-
-
- Source Files\burn\drv\pre90s
-
-
- Source Files\burn\drv\pre90s
-
-
- Source Files\burn\drv\pre90s
-
-
- Source Files\burn\drv\pre90s
-
-
- Source Files\burn\drv\pre90s
-
-
- Source Files\burn\drv\pre90s
-
-
- Source Files\burn\drv\pre90s
-
-
- Source Files\burn\drv\pre90s
-
-
- Source Files\burn\drv\pre90s
-
-
- Source Files\burn\drv\pre90s
-
-
- Source Files\burn\drv\pre90s
-
-
- Source Files\burn\drv\pre90s
-
-
- Source Files\burn\drv\pre90s
-
-
- Source Files\burn\drv\pre90s
-
-
- Source Files\burn\drv\pre90s
-
-
- Source Files\burn\drv\pre90s
-
-
- Source Files\burn\drv\pre90s
-
-
- Source Files\burn\drv\pre90s
-
-
- Source Files\burn\drv\pre90s
-
-
- Source Files\burn\drv\pre90s
-
-
- Source Files\burn\drv\pre90s
-
-
- Source Files\burn\drv\pre90s
-
-
- Source Files\burn\drv\pre90s
-
-
- Source Files\burn\drv\pre90s
-
-
- Source Files\burn\drv\pre90s
-
-
- Source Files\burn\drv\pre90s
-
-
- Source Files\burn\drv\pre90s
-
-
- Source Files\burn\drv\pre90s
-
-
- Source Files\burn\drv\pre90s
-
-
- Source Files\burn\drv\pre90s
-
-
- Source Files\burn\drv\pre90s
-
-
- Source Files\burn\drv\pre90s
-
-
- Source Files\burn\drv\pre90s
-
-
- Source Files\burn\drv\pre90s
-
-
- Source Files\burn\drv\pre90s
-
-
- Source Files\burn\drv\pre90s
-
-
- Source Files\burn\drv\pre90s
-
-
- Source Files\burn\drv\pre90s
-
-
- Source Files\burn\drv\pre90s
-
-
- Source Files\burn\drv\pre90s
-
-
- Source Files\burn\drv\pre90s
-
-
- Source Files\burn\drv\pre90s
-
-
- Source Files\burn\drv\pre90s
-
-
- Source Files\burn\drv\pre90s
-
-
- Source Files\burn\drv\pre90s
-
-
- Source Files\burn\drv\pre90s
-
-
- Source Files\burn\drv\pre90s
-
-
- Source Files\burn\drv\pre90s
-
-
- Source Files\burn\drv\pre90s
-
-
- Source Files\burn\drv\pre90s
-
-
- Source Files\burn\drv\pre90s
-
-
- Source Files\burn\drv\pre90s
-
-
- Source Files\burn\drv\pre90s
-
-
- Source Files\burn\drv\pre90s
-
-
- Source Files\burn\drv\pre90s
-
-
- Source Files\burn\drv\pre90s
-
-
- Source Files\burn\drv\pre90s
-
-
- Source Files\burn\drv\pre90s
-
-
- Source Files\burn\drv\psikyo
-
-
- Source Files\burn\drv\psikyo
-
-
- Source Files\burn\drv\psikyo
-
-
- Source Files\burn\drv\psikyo
-
-
- Source Files\burn\drv\psikyo
-
-
- Source Files\burn\drv\psikyo
-
-
- Source Files\burn\drv\psikyo
-
-
- Source Files\burn\drv\pst90s
-
-
- Source Files\burn\drv\pst90s
-
-
- Source Files\burn\drv\pst90s
-
-
- Source Files\burn\drv\pst90s
-
-
- Source Files\burn\drv\pst90s
-
-
- Source Files\burn\drv\pst90s
-
-
- Source Files\burn\drv\pst90s
-
-
- Source Files\burn\drv\pst90s
-
-
- Source Files\burn\drv\pst90s
-
-
- Source Files\burn\drv\pst90s
-
-
- Source Files\burn\drv\pst90s
-
-
- Source Files\burn\drv\pst90s
-
-
- Source Files\burn\drv\pst90s
-
-
- Source Files\burn\drv\pst90s
-
-
- Source Files\burn\drv\pst90s
-
-
- Source Files\burn\drv\pst90s
-
-
- Source Files\burn\drv\pst90s
-
-
- Source Files\burn\drv\pst90s
-
-
- Source Files\burn\drv\pst90s
-
-
- Source Files\burn\drv\pst90s
-
-
- Source Files\burn\drv\pst90s
-
-
- Source Files\burn\drv\pst90s
-
-
- Source Files\burn\drv\pst90s
-
-
- Source Files\burn\drv\pst90s
-
-
- Source Files\burn\drv\pst90s
-
-
- Source Files\burn\drv\pst90s
-
-
- Source Files\burn\drv\pst90s
-
-
- Source Files\burn\drv\pst90s
-
-
- Source Files\burn\drv\pst90s
-
-
- Source Files\burn\drv\pst90s
-
-
- Source Files\burn\drv\pst90s
-
-
- Source Files\burn\drv\pst90s
-
-
- Source Files\burn\drv\pst90s
-
-
- Source Files\burn\drv\pst90s
-
-
- Source Files\burn\drv\pst90s
-
-
- Source Files\burn\drv\pst90s
-
-
- Source Files\burn\drv\pst90s
-
-
- Source Files\burn\drv\pst90s
-
-
- Source Files\burn\drv\pst90s
-
-
- Source Files\burn\drv\pst90s
-
-
- Source Files\burn\drv\pst90s
-
-
- Source Files\burn\drv\pst90s
-
-
- Source Files\burn\drv\pst90s
-
-
- Source Files\burn\drv\pst90s
-
-
- Source Files\burn\drv\pst90s
-
-
- Source Files\burn\drv\pst90s
-
-
- Source Files\burn\drv\pst90s
-
-
- Source Files\burn\drv\pst90s
-
-
- Source Files\burn\drv\pst90s
-
-
- Source Files\burn\drv\pst90s
-
-
- Source Files\burn\drv\pst90s
-
-
- Source Files\burn\drv\pst90s
-
-
- Source Files\burn\drv\pst90s
-
-
- Source Files\burn\drv\pst90s
-
-
- Source Files\burn\drv\pst90s
-
-
- Source Files\burn\drv\pst90s
-
-
- Source Files\burn\drv\pst90s
-
-
- Source Files\burn\drv\pst90s
-
-
- Source Files\burn\drv\pst90s
-
-
- Source Files\burn\drv\sega
-
-
- Source Files\burn\drv\sega
-
-
- Source Files\burn\drv\sega
-
-
- Source Files\burn\drv\sega
-
-
- Source Files\burn\drv\sega
-
-
- Source Files\burn\drv\sega
-
-
- Source Files\burn\drv\sega
-
-
- Source Files\burn\drv\sega
-
-
- Source Files\burn\drv\sega
-
-
- Source Files\burn\drv\sega
-
-
- Source Files\burn\drv\sega
-
-
- Source Files\burn\drv\sega
-
-
- Source Files\burn\drv\sega
-
-
- Source Files\burn\drv\sega
-
-
- Source Files\burn\drv\sega
-
-
- Source Files\burn\drv\sega
-
-
- Source Files\burn\drv\sega
-
-
- Source Files\burn\drv\sega
-
-
- Source Files\burn\drv\sega
-
-
- Source Files\burn\drv\taito
-
-
- Source Files\burn\drv\taito
-
-
- Source Files\burn\drv\taito
-
-
- Source Files\burn\drv\taito
-
-
- Source Files\burn\drv\taito
-
-
- Source Files\burn\drv\taito
-
-
- Source Files\burn\drv\taito
-
-
- Source Files\burn\drv\taito
-
-
- Source Files\burn\drv\taito
-
-
- Source Files\burn\drv\taito
-
-
- Source Files\burn\drv\taito
-
-
- Source Files\burn\drv\taito
-
-
- Source Files\burn\drv\taito
-
-
- Source Files\burn\drv\taito
-
-
- Source Files\burn\drv\taito
-
-
- Source Files\burn\drv\taito
-
-
- Source Files\burn\drv\taito
-
-
- Source Files\burn\drv\taito
-
-
- Source Files\burn\drv\taito
-
-
- Source Files\burn\drv\taito
-
-
- Source Files\burn\drv\taito
-
-
- Source Files\burn\drv\taito
-
-
- Source Files\burn\drv\taito
-
-
- Source Files\burn\drv\taito
-
-
- Source Files\burn\drv\taito
-
-
- Source Files\burn\drv\taito
-
-
- Source Files\burn\drv\taito
-
-
- Source Files\burn\drv\taito
-
-
- Source Files\burn\drv\taito
-
-
- Source Files\burn\drv\taito
-
-
- Source Files\burn\drv\taito
-
-
- Source Files\burn\drv\taito
-
-
- Source Files\burn\drv\taito
-
-
- Source Files\burn\drv\taito
-
-
- Source Files\burn\drv\taito
-
-
- Source Files\burn\drv\taito
-
-
- Source Files\burn\drv\taito
-
-
- Source Files\burn\drv\toaplan
-
-
- Source Files\burn\drv\toaplan
-
-
- Source Files\burn\drv\toaplan
-
-
- Source Files\burn\drv\toaplan
-
-
- Source Files\burn\drv\toaplan
-
-
- Source Files\burn\drv\toaplan
-
-
- Source Files\burn\drv\toaplan
-
-
- Source Files\burn\drv\toaplan
-
-
- Source Files\burn\drv\toaplan
-
-
- Source Files\burn\drv\toaplan
-
-
- Source Files\burn\drv\toaplan
-
-
- Source Files\burn\drv\toaplan
-
-
- Source Files\burn\drv\toaplan
-
-
- Source Files\burn\drv\toaplan
-
-
- Source Files\burn\drv\toaplan
-
-
- Source Files\burn\drv\toaplan
-
-
- Source Files\burn\drv\toaplan
-
-
- Source Files\burn\drv\toaplan
-
-
- Source Files\burn\drv\toaplan
-
-
- Source Files\burn\drv\toaplan
-
-
- Source Files\burn\drv\toaplan
-
-
- Source Files\burn\drv\toaplan
-
-
- Source Files\burn\drv\toaplan
-
-
- Source Files\burn\drv\toaplan
-
-
- Source Files\burn\drv\toaplan
-
-
- Source Files\burn\drv\toaplan
-
-
- Source Files\burn\drv\toaplan
-
-
- Source Files\burn\drv\toaplan
-
-
- Source Files\burn\drv\toaplan
-
-
- Source Files\burn\drv\toaplan
-
-
- Source Files\burn\drv\toaplan
-
-
- Source Files\burn\devices
-
-
- Source Files\burn\devices
-
-
- Source Files\burn\devices
-
-
- Source Files\burn\devices
-
-
- Source Files\burn\devices
-
-
- Source Files\burn\devices
-
-
- Source Files\burn\devices
-
-
- Source Files\burn\devices
-
-
- Source Files\cpu\arm
-
-
- Source Files\cpu\arm7
-
-
- Source Files\cpu\arm7
-
-
- Source Files\cpu\arm7
-
-
- Source Files\cpu\h6280
-
-
- Source Files\cpu\h6280
-
-
- Source Files\cpu\hd6309
-
-
- Source Files\cpu\hd6309
-
-
- Source Files\cpu\hd6309
-
-
- Source Files\cpu\i8039
-
-
- Source Files\cpu\konami
-
-
- Source Files\cpu\konami
-
-
- Source Files\cpu\konami
-
-
- Source Files\cpu\sh2
-
-
- Source Files\cpu\z80
-
-
- Source Files\cpu\z80
-
-
- Source Files\cpu\s2650
-
-
- Source Files\cpu\nec
-
-
- Source Files\cpu\nec
-
-
- Source Files\cpu\nec
-
-
- Source Files\cpu\nec
-
-
- Source Files\cpu\nec
-
-
- Source Files\cpu\m68k
-
-
- Source Files\cpu\m68k
-
-
- Source Files\cpu\m68k
-
-
- Source Files\cpu\m68k
-
-
- Source Files\cpu\m6809
-
-
- Source Files\cpu\m6809
-
-
- Source Files\cpu\m6809
-
-
- Source Files\cpu\m6805
-
-
- Source Files\cpu\m6805
-
-
- Source Files\cpu\m6800
-
-
- Source Files\cpu\m6800
-
-
- Source Files\cpu\m6800
-
-
- Source Files\cpu\m6502
-
-
- Source Files\cpu\m6502
-
-
- Source Files\cpu\m6502
-
-
- Source Files\cpu\m6502
-
-
- Source Files\cpu\m6502
-
-
- Source Files\cpu\m6502
-
-
- Source Files\cpu
-
-
- Source Files\cpu
-
-
- Source Files\cpu
-
-
- Source Files\cpu
-
-
- Source Files\cpu
-
-
- Source Files\cpu
-
-
- Source Files\cpu
-
-
- Source Files\cpu
-
-
- Source Files\cpu
-
-
- Source Files\cpu
-
-
- Source Files\burn
-
-
- Source Files\burn
-
-
- Source Files\burn
-
-
- Source Files\burn
-
-
- Source Files\burn
-
-
- Source Files\burn
-
-
- Source Files\burn
-
-
- Source Files\burn
-
-
- Source Files\burn
-
-
- Source Files\burn
-
-
- Source Files\burn
-
-
- Source Files\burn
-
-
- Source Files\burn
-
-
- Source Files\burn\snd
-
-
- Source Files\burn\snd
-
-
- Source Files\burn\snd
-
-
- Source Files\burn\snd
-
-
- Source Files\burn\snd
-
-
- Source Files\burn\snd
-
-
- Source Files\burn\snd
-
-
- Source Files\burn\snd
-
-
- Source Files\burn\snd
-
-
- Source Files\burn\snd
-
-
- Source Files\burn\snd
-
-
- Source Files\burn\snd
-
-
- Source Files\burn\snd
-
-
- Source Files\burn\snd
-
-
- Source Files\burn\snd
-
-
- Source Files\burn\snd
-
-
- Source Files\burn\snd
-
-
- Source Files\burn\snd
-
-
- Source Files\burn\snd
-
-
- Source Files\burn\snd
-
-
- Source Files\burn\snd
-
-
- Source Files\burn\snd
-
-
- Source Files\burn\snd
-
-
- Source Files\burn\snd
-
-
- Source Files\burn\snd
-
-
- Source Files\burn\snd
-
-
- Source Files\burn\snd
-
-
- Source Files\burn\snd
-
-
- Source Files\burn\snd
-
-
- Source Files\burn\snd
-
-
- Source Files\burn\snd
-
-
- Source Files\burn\snd
-
-
- Source Files\burn\snd
-
-
- Source Files\burn\snd
-
-
- Source Files\burn\snd
-
-
- Source Files\burn\snd
-
-
- Source Files\burn\snd
-
-
- Source Files\burn\snd
-
-
- Source Files\cpu\m68k
-
-
- Source Files\cpu\m68k
-
-
- Source Files\cpu\m68k
-
-
- Source Files\cpu\m68k
-
-
- Source Files\burner\libretro
-
-
- Source Files\burner\libretro
-
-
- Source Files\burn\drv\capcom
-
-
- Source Files\burn\drv\capcom
-
-
- Source Files\burn\drv\pst90s
-
-
- Source Files\burn\drv\pre90s
-
-
- Source Files\burn\drv\pre90s
-
-
- Source Files\burn\drv\pre90s
-
-
- Source Files\cpu
-
-
- Source Files\cpu
-
-
- Source Files\cpu
-
-
- Source Files\burn\snd
-
-
- Source Files\burn\drv\konami
-
-
- Source Files\burn\devices
-
-
- Source Files\burn\devices
-
-
-
\ No newline at end of file
diff --git a/jan/projectfiles/visualstudio-2010/fba_vs2010.sln b/jan/projectfiles/visualstudio-2010/fba_vs2010.sln
deleted file mode 100644
index d38382c2e..000000000
--- a/jan/projectfiles/visualstudio-2010/fba_vs2010.sln
+++ /dev/null
@@ -1,26 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 11.00
-# Visual Studio 2010
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "fba_vs2010", "fba_vs2010.vcxproj", "{86D06C32-A849-4988-A176-A38D014C36C1}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Win32 = Debug|Win32
- Debug|x64 = Debug|x64
- Release|Win32 = Release|Win32
- Release|x64 = Release|x64
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {86D06C32-A849-4988-A176-A38D014C36C1}.Debug|Win32.ActiveCfg = Debug|Win32
- {86D06C32-A849-4988-A176-A38D014C36C1}.Debug|Win32.Build.0 = Debug|Win32
- {86D06C32-A849-4988-A176-A38D014C36C1}.Debug|x64.ActiveCfg = Debug|x64
- {86D06C32-A849-4988-A176-A38D014C36C1}.Debug|x64.Build.0 = Debug|x64
- {86D06C32-A849-4988-A176-A38D014C36C1}.Release|Win32.ActiveCfg = Release|Win32
- {86D06C32-A849-4988-A176-A38D014C36C1}.Release|Win32.Build.0 = Release|Win32
- {86D06C32-A849-4988-A176-A38D014C36C1}.Release|x64.ActiveCfg = Debug|x64
- {86D06C32-A849-4988-A176-A38D014C36C1}.Release|x64.Build.0 = Debug|x64
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/jan/projectfiles/visualstudio-2010/fba_vs2010.vcxproj b/jan/projectfiles/visualstudio-2010/fba_vs2010.vcxproj
deleted file mode 100644
index 514e3be0f..000000000
--- a/jan/projectfiles/visualstudio-2010/fba_vs2010.vcxproj
+++ /dev/null
@@ -1,1018 +0,0 @@
-
-
-
-
- Debug
- Win32
-
-
- Debug
- x64
-
-
- Release
- Win32
-
-
- Release
- x64
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Default
-
-
- Default
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ..\..\src\burner\;%(AdditionalIncludeDirectories)
-
-
-
-
- {86D06C32-A849-4988-A176-A38D014C36C1}
- fba_vs2010
-
-
-
- Application
- true
- Unicode
-
-
- Application
- true
- Unicode
-
-
- Application
- false
- true
- MultiByte
-
-
- Application
- false
- true
- MultiByte
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- C:\Program Files %28x86%29\Visual Leak Detector\include;..\..\src\dep\vc\include;C:\Program Files %28x86%29\Microsoft DirectX SDK %28June 2010%29\Include;$(IncludePath)
- $(SolutionDir)$(Configuration)\
- C:\Program Files %28x86%29\Visual Leak Detector\lib;$(LibraryPath)
-
-
- src\depend\dx7\include;C:\Program Files %28x86%29\Microsoft DirectX SDK %28June 2010%29\Lib\x86;C:\Program Files %28x86%29\Microsoft DirectX SDK %28June 2010%29\Include;$(IncludePath)
-
-
-
- Level3
- Disabled
- ..\..\src\dep\libs\lib7z;..\..\src\burner\win32\resource;..\..\src\burn\drv\taito;..\..\src\burn\drv\misc_post90s;..\..\src\burn\devices;..\..\src\dep\generated;..\..\src\intf\audio\win32;..\..\src\intf\audio;..\..\src\intf\;..\..\src\intf\video\scalers;..\..\src\intf\video\win32;..\..\src\intf\video;..\..\src\intf\perfcount\win32;..\..\src\intf\perfcount;..\..\src\intf\input\win32;..\..\src\intf\input;..\..\src\intf\cd\win32;..\..\src\intf\cd;..\..\src\intf;..\..\src\burner\win32;..\..\src\dep\libs\zlib;..\..\src\dep\libs\libpng;..\..\src\dep\libs;..\..\src\dep\kaillera\client;..\..\src\dep\kaillera;..\..\src\burn\snd;..\..\src\cpu;..\..\src\burner;..\..\src\burn;..\..\src\cpu\z80;..\..\src\cpu\sh2;..\..\src\cpu\s2650;..\..\src\cpu\nec;..\..\src\cpu\m6809;..\..\src\cpu\m6805;..\..\src\cpu\m6800;..\..\src\cpu\m6502;..\..\src\cpu\m68k;..\..\src\cpu\i8039;..\..\src\cpu\konami;..\..\src\cpu\hd6309;..\..\src\cpu\h6280;..\..\src\cpu\arm7;..\..\src\cpu\arm;..\..\src\cpu\g65816;..\..\src\cpu\spc700;%(AdditionalIncludeDirectories)
- Default
- BUILD_WIN32;FASTCALL;_DEBUG;FBA_DEBUG;LSB_FIRST;INLINE=__inline static;INCLUDE_LIB_PNGH;C_INLINE=__inline;MAME_INLINE=__inline static;%(PreprocessorDefinitions)
-
-
- true
- C:\Program Files %28x86%29\Microsoft DirectX SDK %28June 2010%29\Lib\x86;%(AdditionalLibraryDirectories)
- LinkVerbose
- user32.lib;gdi32.lib;comdlg32.lib;comctl32.lib;shell32.lib;winmm.lib;ole32.lib;shlwapi.lib;advapi32.lib;setupapi.lib;d3d9.lib;d3dx9.lib;dsound.lib;dinput8.lib;%(AdditionalDependencies)
- false
-
-
- $(MSBuildProjectDirectory)/../../src/dep/vs2010/pre.bat "$(VCInstallDir)
-
-
-
-
- Level3
- Disabled
- src\burn\drivers\taito;src\burn\drivers\misc_post90s;src\burn\devices;src\depend\generated;src\interface\scalers;src\interface\win32\resource;src\interface\win32;src\interface;src\burner\win32\resource;src\burner\win32;src\depend\libs\zlib;src\depend\libs\libpng;src\depend\libs;src\depend\kaillera\client;src\depend\kaillera;src\burn\sound;src\cpu;src\burner;src\burn;src\cpu\z80;src\cpu\sh2;src\cpu\s2650;src\cpu\nec;src\cpu\m6809;src\cpu\m6805;src\cpu\m6800;src\cpu\m6502;src\cpu\m68k;src\cpu\i8039;src\cpu\konami;src\cpu\hd6309;src\cpu\h6280;src\cpu\arm7;src\cpu\arm;%(AdditionalIncludeDirectories)
- CompileAsCpp
- BUILD_WIN32;FASTCALL;%(PreprocessorDefinitions)
-
-
- true
- C:\Program Files %28x86%29\Microsoft DirectX SDK %28June 2010%29\Lib\x86;%(AdditionalLibraryDirectories)
- LinkVerbose
- user32.lib;gdi32.lib;comdlg32.lib;comctl32.lib;shell32.lib;winmm.lib;ole32.lib;shlwapi.lib;advapi32.lib;setupapi.lib;d3d9.lib;d3dx9.lib;dsound.lib;dinput8.lib;%(AdditionalDependencies)
- false
-
-
-
-
- Level3
- MaxSpeed
- true
- true
- src\burn\drivers\taito;src\burn\drivers\misc_post90s;src\burn\devices;src\depend\generated;src\interface\scalers;src\interface\win32\resource;src\interface\win32;src\interface;src\burner\win32\resource;src\burner\win32;src\depend\libs\zlib;src\depend\libs\libpng;src\depend\libs;src\depend\kaillera\client;src\depend\kaillera;src\burn\sound;src\cpu;src\burner;src\burn;src\cpu\z80;src\cpu\sh2;src\cpu\s2650;src\cpu\nec;src\cpu\m6809;src\cpu\m6805;src\cpu\m6800;src\cpu\m6502;src\cpu\m68k;src\cpu\i8039;src\cpu\konami;src\cpu\hd6309;src\cpu\h6280;src\cpu\arm7;src\cpu\arm;%(AdditionalIncludeDirectories)
- BUILD_WIN32;FASTCALL;_MBCS;%(PreprocessorDefinitions)
-
-
- true
- true
- true
- user32.lib;gdi32.lib;comdlg32.lib;comctl32.lib;shell32.lib;winmm.lib;ole32.lib;shlwapi.lib;advapi32.lib;setupapi.lib;d3d9.lib;d3dx9.lib;dsound.lib;dinput8.lib;%(AdditionalDependencies)
-
-
-
-
- Level3
- MaxSpeed
- true
- true
- src\burn\drivers\taito;src\burn\drivers\misc_post90s;src\burn\devices;src\depend\generated;src\interface\scalers;src\interface\win32\resource;src\interface\win32;src\interface;src\burner\win32\resource;src\burner\win32;src\depend\libs\zlib;src\depend\libs\libpng;src\depend\libs;src\depend\kaillera\client;src\depend\kaillera;src\burn\sound;src\cpu;src\burner;src\burn;src\cpu\z80;src\cpu\sh2;src\cpu\s2650;src\cpu\nec;src\cpu\m6809;src\cpu\m6805;src\cpu\m6800;src\cpu\m6502;src\cpu\m68k;src\cpu\i8039;src\cpu\konami;src\cpu\hd6309;src\cpu\h6280;src\cpu\arm7;src\cpu\arm;%(AdditionalIncludeDirectories)
- BUILD_WIN32;FASTCALL;_MBCS;%(PreprocessorDefinitions)
-
-
- true
- true
- true
- user32.lib;gdi32.lib;comdlg32.lib;comctl32.lib;shell32.lib;winmm.lib;ole32.lib;shlwapi.lib;advapi32.lib;setupapi.lib;d3d9.lib;d3dx9.lib;dsound.lib;dinput8.lib;%(AdditionalDependencies)
-
-
-
-
-
-
\ No newline at end of file
diff --git a/jan/projectfiles/visualstudio-2010/fba_vs2010.vcxproj.filters b/jan/projectfiles/visualstudio-2010/fba_vs2010.vcxproj.filters
deleted file mode 100644
index d0a4de47c..000000000
--- a/jan/projectfiles/visualstudio-2010/fba_vs2010.vcxproj.filters
+++ /dev/null
@@ -1,2773 +0,0 @@
-
-
-
-
- Burn
-
-
- Burn
-
-
- Burn
-
-
- Burn
-
-
- Burn
-
-
- Burn
-
-
- Burn
-
-
- Burn
-
-
- Burn
-
-
- Burn
-
-
- Burn
-
-
- Burn
-
-
- Burn
-
-
- Burn
-
-
- Burn
-
-
- Burn\snd
-
-
- Burn\snd
-
-
- Burn\snd
-
-
- Burn\snd
-
-
- Burn\snd
-
-
- Burn\snd
-
-
- Burn\snd
-
-
- Burn\snd
-
-
- Burn\snd
-
-
- Burn\snd
-
-
- Burn\snd
-
-
- Burn\snd
-
-
- Burn\snd
-
-
- Burn\snd
-
-
- Burn\snd
-
-
- Burn\snd
-
-
- Burn\snd
-
-
- Burn\snd
-
-
- Burn\snd
-
-
- Burn\snd
-
-
- Burn\snd
-
-
- Burn\snd
-
-
- Burn\snd
-
-
- Burn\snd
-
-
- Burn\snd
-
-
- Burn\snd
-
-
- Burn\snd
-
-
- Burn\snd
-
-
- Burn\snd
-
-
- Burn\snd
-
-
- Burn\snd
-
-
- Burn\snd
-
-
- Burn\snd
-
-
- Burn\snd
-
-
- Burn\snd
-
-
- Burn\snd
-
-
- Burn\snd
-
-
- Burn\snd
-
-
- Burn\snd
-
-
- Burn\snd
-
-
- Burn\devices
-
-
- Burn\devices
-
-
- Burn\devices
-
-
- Burn\devices
-
-
- Burn\devices
-
-
- Burn\devices
-
-
- Burn\devices
-
-
- Burn\devices
-
-
- Burn\devices
-
-
- Burn\devices
-
-
- Burn\drv\capcom
-
-
- Burn\drv\capcom
-
-
- Burn\drv\cave
-
-
- Burn\drv\cave
-
-
- Burn\drv\cave
-
-
- Burn\drv\cave
-
-
- Burn\drv\cps3
-
-
- Burn\drv\dataeast
-
-
- Burn\drv\galaxian
-
-
- Burn\drv\irem
-
-
- Burn\drv\konami
-
-
- Burn\drv\megadrive
-
-
- Burn\drv\neogeo
-
-
- Burn\drv\neogeo
-
-
- Burn\drv\neogeo
-
-
- Burn\drv\pce
-
-
- Burn\drv\pgm
-
-
- Burn\drv\psikyo
-
-
- Burn\drv\psikyo
-
-
- Burn\drv\psikyo
-
-
- Burn\drv\psikyo
-
-
- Burn\drv\post90s
-
-
- Burn\drv\post90s
-
-
- Burn\drv\sega
-
-
- Burn\drv\sega
-
-
- Burn\drv\sega
-
-
- Burn\drv\sega
-
-
- Burn\drv\snes
-
-
- Burn\drv\taito
-
-
- Burn\drv\taito
-
-
- Burn\drv\taito
-
-
- Burn\drv\taito
-
-
- Burn\drv\toaplan
-
-
- Burn\drv\toaplan
-
-
- Burn\drv\toaplan
-
-
- cpus
-
-
- cpus
-
-
- cpus
-
-
- cpus
-
-
- cpus
-
-
- cpus
-
-
- cpus
-
-
- cpus
-
-
- cpus
-
-
- cpus
-
-
- cpus
-
-
- cpus
-
-
- cpus
-
-
- cpus
-
-
- cpus
-
-
- cpus\arm7
-
-
- cpus\h6280
-
-
- cpus\h6280
-
-
- cpus\hd6309
-
-
- cpus\i8039
-
-
- cpus\konami
-
-
- cpus\m6502
-
-
- cpus\m6502
-
-
- cpus\m6502
-
-
- cpus\m6502
-
-
- cpus\m6502
-
-
- cpus\m6800
-
-
- cpus\m6805
-
-
- cpus
-
-
- cpus\nec
-
-
- cpus\nec
-
-
- cpus\nec
-
-
- cpus\nec
-
-
- cpus\nec
-
-
- cpus\nec
-
-
- cpus\nec
-
-
- cpus\nec
-
-
- cpus\s2650
-
-
- cpus
-
-
- cpus
-
-
- cpus\m68k
-
-
- burner
-
-
- burner
-
-
- burner
-
-
- burner
-
-
- burner
-
-
- burner
-
-
- burner
-
-
- burner\win32
-
-
- burner\win32
-
-
- burner\win32
-
-
- burner\win32
-
-
- burner\win32
-
-
- interfaces
-
-
- interfaces\audio
-
-
- interfaces\audio
-
-
- interfaces\audio\win32
-
-
- interfaces\cd
-
-
- interfaces\cd\win32
-
-
- interfaces\input
-
-
- interfaces\input\win32
-
-
- interfaces\video
-
-
- interfaces\video
-
-
- interfaces\video\win32
-
-
- interfaces\video\win32
-
-
- interfaces\video\win32
-
-
- interfaces\video\win32
-
-
- interfaces\video\scalers
-
-
- interfaces\video\scalers
-
-
- interfaces\video\scalers
-
-
- interfaces\video\scalers
-
-
- interfaces\video\scalers
-
-
- interfaces\video\scalers
-
-
- interfaces\video\scalers
-
-
- interfaces\video\scalers
-
-
- libs\zlib
-
-
- libs\zlib
-
-
- libs\zlib
-
-
- libs\zlib
-
-
- libs\zlib
-
-
- libs\zlib
-
-
- libs\zlib
-
-
- libs\zlib
-
-
- libs\zlib
-
-
- libs\zlib
-
-
- libs\zlib
-
-
- libs\libpng
-
-
- libs\libpng
-
-
- libs\libpng
-
-
- libs\libpng
-
-
- libs\libpng
-
-
- libs\libpng
-
-
- libs\libpng
-
-
- libs\7z
-
-
- libs\7z
-
-
- libs\7z
-
-
- libs\7z
-
-
- libs\7z
-
-
- libs\7z
-
-
- libs\7z
-
-
- libs\7z
-
-
- libs\7z
-
-
- libs\7z
-
-
- libs\7z
-
-
- libs\7z
-
-
- libs\7z
-
-
- libs\7z
-
-
- libs\7z
-
-
- libs\7z
-
-
- libs\7z
-
-
- libs\7z
-
-
- libs\7z
-
-
- libs\7z
-
-
- libs\7z
-
-
- libs\7z
-
-
- libs\7z
-
-
- libs\7z
-
-
- libs\7z
-
-
- libs\7z
-
-
- libs\7z
-
-
- libs\7z
-
-
- libs\7z
-
-
- libs\7z
-
-
- shitty networking code
-
-
- shitty networking code
-
-
- Burn\drv\sms
-
-
-
-
- Burn
-
-
- Burn
-
-
- Burn
-
-
- Burn
-
-
- Burn
-
-
- Burn
-
-
- Burn
-
-
- Burn
-
-
- Burn
-
-
- Burn
-
-
- Burn
-
-
- Burn
-
-
- Burn
-
-
- Burn\snd
-
-
- Burn\snd
-
-
- Burn\snd
-
-
- Burn\snd
-
-
- Burn\snd
-
-
- Burn\snd
-
-
- Burn\snd
-
-
- Burn\snd
-
-
- Burn\snd
-
-
- Burn\snd
-
-
- Burn\snd
-
-
- Burn\snd
-
-
- Burn\snd
-
-
- Burn\snd
-
-
- Burn\snd
-
-
- Burn\snd
-
-
- Burn\snd
-
-
- Burn\snd
-
-
- Burn\snd
-
-
- Burn\snd
-
-
- Burn\snd
-
-
- Burn\snd
-
-
- Burn\snd
-
-
- Burn\snd
-
-
- Burn\snd
-
-
- Burn\snd
-
-
- Burn\snd
-
-
- Burn\snd
-
-
- Burn\snd
-
-
- Burn\snd
-
-
- Burn\snd
-
-
- Burn\snd
-
-
- Burn\snd
-
-
- Burn\snd
-
-
- Burn\snd
-
-
- Burn\snd
-
-
- Burn\snd
-
-
- Burn\snd
-
-
- Burn\snd
-
-
- Burn\devices
-
-
- Burn\devices
-
-
- Burn\devices
-
-
- Burn\devices
-
-
- Burn\devices
-
-
- Burn\devices
-
-
- Burn\devices
-
-
- Burn\devices
-
-
- Burn\devices
-
-
- Burn\devices
-
-
- Burn\drv\capcom
-
-
- Burn\drv\capcom
-
-
- Burn\drv\capcom
-
-
- Burn\drv\capcom
-
-
- Burn\drv\capcom
-
-
- Burn\drv\capcom
-
-
- Burn\drv\capcom
-
-
- Burn\drv\capcom
-
-
- Burn\drv\capcom
-
-
- Burn\drv\capcom
-
-
- Burn\drv\capcom
-
-
- Burn\drv\capcom
-
-
- Burn\drv\capcom
-
-
- Burn\drv\capcom
-
-
- Burn\drv\capcom
-
-
- Burn\drv\capcom
-
-
- Burn\drv\capcom
-
-
- Burn\drv\capcom
-
-
- Burn\drv\capcom
-
-
- Burn\drv\capcom
-
-
- Burn\drv\capcom
-
-
- Burn\drv\capcom
-
-
- Burn\drv\capcom
-
-
- Burn\drv\capcom
-
-
- Burn\drv\capcom
-
-
- Burn\drv\cave
-
-
- Burn\drv\cave
-
-
- Burn\drv\cave
-
-
- Burn\drv\cave
-
-
- Burn\drv\cave
-
-
- Burn\drv\cave
-
-
- Burn\drv\cave
-
-
- Burn\drv\cave
-
-
- Burn\drv\cave
-
-
- Burn\drv\cave
-
-
- Burn\drv\cave
-
-
- Burn\drv\cave
-
-
- Burn\drv\cave
-
-
- Burn\drv\cave
-
-
- Burn\drv\cave
-
-
- Burn\drv\cave
-
-
- Burn\drv\cave
-
-
- Burn\drv\cave
-
-
- Burn\drv\cps3
-
-
- Burn\drv\cps3
-
-
- Burn\drv\cps3
-
-
- Burn\drv\dataeast
-
-
- Burn\drv\dataeast
-
-
- Burn\drv\dataeast
-
-
- Burn\drv\dataeast
-
-
- Burn\drv\dataeast
-
-
- Burn\drv\dataeast
-
-
- Burn\drv\dataeast
-
-
- Burn\drv\dataeast
-
-
- Burn\drv\dataeast
-
-
- Burn\drv\dataeast
-
-
- Burn\drv\dataeast
-
-
- Burn\drv\dataeast
-
-
- Burn\drv\dataeast
-
-
- Burn\drv\dataeast
-
-
- Burn\drv\dataeast
-
-
- Burn\drv\dataeast
-
-
- Burn\drv\dataeast
-
-
- Burn\drv\dataeast
-
-
- Burn\drv\dataeast
-
-
- Burn\drv\dataeast
-
-
- Burn\drv\dataeast
-
-
- Burn\drv\galaxian
-
-
- Burn\drv\galaxian
-
-
- Burn\drv\galaxian
-
-
- Burn\drv\galaxian
-
-
- Burn\drv\galaxian
-
-
- Burn\drv\irem
-
-
- Burn\drv\irem
-
-
- Burn\drv\irem
-
-
- Burn\drv\irem
-
-
- Burn\drv\irem
-
-
- Burn\drv\irem
-
-
- Burn\drv\irem
-
-
- Burn\drv\konami
-
-
- Burn\drv\konami
-
-
- Burn\drv\konami
-
-
- Burn\drv\konami
-
-
- Burn\drv\konami
-
-
- Burn\drv\konami
-
-
- Burn\drv\konami
-
-
- Burn\drv\konami
-
-
- Burn\drv\konami
-
-
- Burn\drv\konami
-
-
- Burn\drv\konami
-
-
- Burn\drv\konami
-
-
- Burn\drv\konami
-
-
- Burn\drv\konami
-
-
- Burn\drv\konami
-
-
- Burn\drv\konami
-
-
- Burn\drv\konami
-
-
- Burn\drv\konami
-
-
- Burn\drv\konami
-
-
- Burn\drv\konami
-
-
- Burn\drv\konami
-
-
- Burn\drv\konami
-
-
- Burn\drv\konami
-
-
- Burn\drv\konami
-
-
- Burn\drv\konami
-
-
- Burn\drv\konami
-
-
- Burn\drv\konami
-
-
- Burn\drv\konami
-
-
- Burn\drv\konami
-
-
- Burn\drv\konami
-
-
- Burn\drv\konami
-
-
- Burn\drv\konami
-
-
- Burn\drv\konami
-
-
- Burn\drv\konami
-
-
- Burn\drv\konami
-
-
- Burn\drv\konami
-
-
- Burn\drv\konami
-
-
- Burn\drv\konami
-
-
- Burn\drv\konami
-
-
- Burn\drv\megadrive
-
-
- Burn\drv\megadrive
-
-
- Burn\drv\neogeo
-
-
- Burn\drv\neogeo
-
-
- Burn\drv\neogeo
-
-
- Burn\drv\neogeo
-
-
- Burn\drv\neogeo
-
-
- Burn\drv\neogeo
-
-
- Burn\drv\neogeo
-
-
- Burn\drv\neogeo
-
-
- Burn\drv\pce
-
-
- Burn\drv\pce
-
-
- Burn\drv\pgm
-
-
- Burn\drv\pgm
-
-
- Burn\drv\pgm
-
-
- Burn\drv\pgm
-
-
- Burn\drv\pgm
-
-
- Burn\drv\pre90s
-
-
- Burn\drv\pre90s
-
-
- Burn\drv\pre90s
-
-
- Burn\drv\pre90s
-
-
- Burn\drv\pre90s
-
-
- Burn\drv\pre90s
-
-
- Burn\drv\pre90s
-
-
- Burn\drv\pre90s
-
-
- Burn\drv\pre90s
-
-
- Burn\drv\pre90s
-
-
- Burn\drv\pre90s
-
-
- Burn\drv\pre90s
-
-
- Burn\drv\pre90s
-
-
- Burn\drv\pre90s
-
-
- Burn\drv\pre90s
-
-
- Burn\drv\pre90s
-
-
- Burn\drv\pre90s
-
-
- Burn\drv\pre90s
-
-
- Burn\drv\pre90s
-
-
- Burn\drv\pre90s
-
-
- Burn\drv\pre90s
-
-
- Burn\drv\pre90s
-
-
- Burn\drv\pre90s
-
-
- Burn\drv\pre90s
-
-
- Burn\drv\pre90s
-
-
- Burn\drv\pre90s
-
-
- Burn\drv\pre90s
-
-
- Burn\drv\pre90s
-
-
- Burn\drv\pre90s
-
-
- Burn\drv\pre90s
-
-
- Burn\drv\pre90s
-
-
- Burn\drv\pre90s
-
-
- Burn\drv\pre90s
-
-
- Burn\drv\pre90s
-
-
- Burn\drv\pre90s
-
-
- Burn\drv\pre90s
-
-
- Burn\drv\pre90s
-
-
- Burn\drv\pre90s
-
-
- Burn\drv\pre90s
-
-
- Burn\drv\pre90s
-
-
- Burn\drv\pre90s
-
-
- Burn\drv\pre90s
-
-
- Burn\drv\pre90s
-
-
- Burn\drv\pre90s
-
-
- Burn\drv\pre90s
-
-
- Burn\drv\pre90s
-
-
- Burn\drv\pre90s
-
-
- Burn\drv\pre90s
-
-
- Burn\drv\pre90s
-
-
- Burn\drv\pre90s
-
-
- Burn\drv\pre90s
-
-
- Burn\drv\pre90s
-
-
- Burn\drv\pre90s
-
-
- Burn\drv\pre90s
-
-
- Burn\drv\pre90s
-
-
- Burn\drv\pre90s
-
-
- Burn\drv\pre90s
-
-
- Burn\drv\pre90s
-
-
- Burn\drv\pre90s
-
-
- Burn\drv\pre90s
-
-
- Burn\drv\pre90s
-
-
- Burn\drv\pre90s
-
-
- Burn\drv\pre90s
-
-
- Burn\drv\pre90s
-
-
- Burn\drv\pre90s
-
-
- Burn\drv\pre90s
-
-
- Burn\drv\pre90s
-
-
- Burn\drv\pre90s
-
-
- Burn\drv\pre90s
-
-
- Burn\drv\pre90s
-
-
- Burn\drv\pre90s
-
-
- Burn\drv\pre90s
-
-
- Burn\drv\psikyo
-
-
- Burn\drv\psikyo
-
-
- Burn\drv\psikyo
-
-
- Burn\drv\psikyo
-
-
- Burn\drv\psikyo
-
-
- Burn\drv\psikyo
-
-
- Burn\drv\psikyo
-
-
- Burn\drv\post90s
-
-
- Burn\drv\post90s
-
-
- Burn\drv\post90s
-
-
- Burn\drv\post90s
-
-
- Burn\drv\post90s
-
-
- Burn\drv\post90s
-
-
- Burn\drv\post90s
-
-
- Burn\drv\post90s
-
-
- Burn\drv\post90s
-
-
- Burn\drv\post90s
-
-
- Burn\drv\post90s
-
-
- Burn\drv\post90s
-
-
- Burn\drv\post90s
-
-
- Burn\drv\post90s
-
-
- Burn\drv\post90s
-
-
- Burn\drv\post90s
-
-
- Burn\drv\post90s
-
-
- Burn\drv\post90s
-
-
- Burn\drv\post90s
-
-
- Burn\drv\post90s
-
-
- Burn\drv\post90s
-
-
- Burn\drv\post90s
-
-
- Burn\drv\post90s
-
-
- Burn\drv\post90s
-
-
- Burn\drv\post90s
-
-
- Burn\drv\post90s
-
-
- Burn\drv\post90s
-
-
- Burn\drv\post90s
-
-
- Burn\drv\post90s
-
-
- Burn\drv\post90s
-
-
- Burn\drv\post90s
-
-
- Burn\drv\post90s
-
-
- Burn\drv\post90s
-
-
- Burn\drv\post90s
-
-
- Burn\drv\post90s
-
-
- Burn\drv\post90s
-
-
- Burn\drv\post90s
-
-
- Burn\drv\post90s
-
-
- Burn\drv\post90s
-
-
- Burn\drv\post90s
-
-
- Burn\drv\post90s
-
-
- Burn\drv\post90s
-
-
- Burn\drv\post90s
-
-
- Burn\drv\post90s
-
-
- Burn\drv\post90s
-
-
- Burn\drv\post90s
-
-
- Burn\drv\post90s
-
-
- Burn\drv\post90s
-
-
- Burn\drv\post90s
-
-
- Burn\drv\post90s
-
-
- Burn\drv\post90s
-
-
- Burn\drv\post90s
-
-
- Burn\drv\post90s
-
-
- Burn\drv\post90s
-
-
- Burn\drv\post90s
-
-
- Burn\drv\post90s
-
-
- Burn\drv\post90s
-
-
- Burn\drv\post90s
-
-
- Burn\drv\post90s
-
-
- Burn\drv\post90s
-
-
- Burn\drv\sega
-
-
- Burn\drv\sega
-
-
- Burn\drv\sega
-
-
- Burn\drv\sega
-
-
- Burn\drv\sega
-
-
- Burn\drv\sega
-
-
- Burn\drv\sega
-
-
- Burn\drv\sega
-
-
- Burn\drv\sega
-
-
- Burn\drv\sega
-
-
- Burn\drv\sega
-
-
- Burn\drv\sega
-
-
- Burn\drv\sega
-
-
- Burn\drv\sega
-
-
- Burn\drv\sega
-
-
- Burn\drv\sega
-
-
- Burn\drv\sega
-
-
- Burn\drv\sega
-
-
- Burn\drv\sega
-
-
- Burn\drv\snes
-
-
- Burn\drv\snes
-
-
- Burn\drv\snes
-
-
- Burn\drv\snes
-
-
- Burn\drv\snes
-
-
- Burn\drv\snes
-
-
- Burn\drv\taito
-
-
- Burn\drv\taito
-
-
- Burn\drv\taito
-
-
- Burn\drv\taito
-
-
- Burn\drv\taito
-
-
- Burn\drv\taito
-
-
- Burn\drv\taito
-
-
- Burn\drv\taito
-
-
- Burn\drv\taito
-
-
- Burn\drv\taito
-
-
- Burn\drv\taito
-
-
- Burn\drv\taito
-
-
- Burn\drv\taito
-
-
- Burn\drv\taito
-
-
- Burn\drv\taito
-
-
- Burn\drv\taito
-
-
- Burn\drv\taito
-
-
- Burn\drv\taito
-
-
- Burn\drv\taito
-
-
- Burn\drv\taito
-
-
- Burn\drv\taito
-
-
- Burn\drv\taito
-
-
- Burn\drv\taito
-
-
- Burn\drv\taito
-
-
- Burn\drv\taito
-
-
- Burn\drv\taito
-
-
- Burn\drv\taito
-
-
- Burn\drv\taito
-
-
- Burn\drv\taito
-
-
- Burn\drv\taito
-
-
- Burn\drv\taito
-
-
- Burn\drv\taito
-
-
- Burn\drv\taito
-
-
- Burn\drv\taito
-
-
- Burn\drv\taito
-
-
- Burn\drv\taito
-
-
- Burn\drv\taito
-
-
- Burn\drv\toaplan
-
-
- Burn\drv\toaplan
-
-
- Burn\drv\toaplan
-
-
- Burn\drv\toaplan
-
-
- Burn\drv\toaplan
-
-
- Burn\drv\toaplan
-
-
- Burn\drv\toaplan
-
-
- Burn\drv\toaplan
-
-
- Burn\drv\toaplan
-
-
- Burn\drv\toaplan
-
-
- Burn\drv\toaplan
-
-
- Burn\drv\toaplan
-
-
- Burn\drv\toaplan
-
-
- Burn\drv\toaplan
-
-
- Burn\drv\toaplan
-
-
- Burn\drv\toaplan
-
-
- Burn\drv\toaplan
-
-
- Burn\drv\toaplan
-
-
- Burn\drv\toaplan
-
-
- Burn\drv\toaplan
-
-
- Burn\drv\toaplan
-
-
- Burn\drv\toaplan
-
-
- Burn\drv\toaplan
-
-
- Burn\drv\toaplan
-
-
- Burn\drv\toaplan
-
-
- Burn\drv\toaplan
-
-
- Burn\drv\toaplan
-
-
- Burn\drv\toaplan
-
-
- Burn\drv\toaplan
-
-
- Burn\drv\toaplan
-
-
- Burn\drv\toaplan
-
-
- cpus\arm
-
-
- cpus
-
-
- cpus
-
-
- cpus
-
-
- cpus
-
-
- cpus
-
-
- cpus
-
-
- cpus
-
-
- cpus
-
-
- cpus
-
-
- cpus
-
-
- cpus
-
-
- cpus
-
-
- cpus
-
-
- cpus\arm7
-
-
- cpus\h6280
-
-
- cpus\hd6309
-
-
- cpus\i8039
-
-
- cpus\konami
-
-
- cpus\m6502
-
-
- cpus\m6800
-
-
- cpus\m6805
-
-
- cpus\nec
-
-
- cpus\nec
-
-
- cpus\s2650
-
-
- cpus\sh2
-
-
- cpus
-
-
- cpus
-
-
- cpus\m68k
-
-
- cpus\m68k
-
-
- cpus\m68k
-
-
- cpus\m68k
-
-
- cpus\m68k
-
-
- cpus\m6809
-
-
- burner
-
-
- burner
-
-
- burner
-
-
- burner
-
-
- burner
-
-
- burner
-
-
- burner
-
-
- burner
-
-
- burner
-
-
- burner
-
-
- burner
-
-
- burner
-
-
- burner
-
-
- burner
-
-
- burner\win32
-
-
- burner\win32
-
-
- burner\win32
-
-
- burner\win32
-
-
- burner\win32
-
-
- burner\win32
-
-
- burner\win32
-
-
- burner\win32
-
-
- burner\win32
-
-
- burner\win32
-
-
- burner\win32
-
-
- burner\win32
-
-
- burner\win32
-
-
- burner\win32
-
-
- burner\win32
-
-
- burner\win32
-
-
- burner\win32
-
-
- burner\win32
-
-
- burner\win32
-
-
- burner\win32
-
-
- burner\win32
-
-
- burner\win32
-
-
- burner\win32
-
-
- burner\win32
-
-
- burner\win32
-
-
- burner\win32
-
-
- burner\win32
-
-
- burner\win32
-
-
- burner\win32
-
-
- burner\win32
-
-
- burner\win32
-
-
- burner\win32
-
-
- burner\win32
-
-
- burner\win32
-
-
- burner\win32
-
-
- burner\win32
-
-
- burner\win32
-
-
- burner\win32
-
-
- burner\win32
-
-
- burner\win32
-
-
- burner\win32
-
-
- burner\win32
-
-
- interfaces
-
-
- interfaces\audio
-
-
- interfaces\audio
-
-
- interfaces\audio
-
-
- interfaces\audio\win32
-
-
- interfaces\audio\win32
-
-
- interfaces\audio\win32
-
-
- interfaces\cd
-
-
- interfaces\cd\win32
-
-
- interfaces\cd\win32
-
-
- interfaces\input
-
-
- interfaces\input\win32
-
-
- interfaces\input\win32
-
-
- interfaces\video
-
-
- interfaces\video
-
-
- interfaces\video
-
-
- interfaces\video\win32
-
-
- interfaces\video\win32
-
-
- interfaces\video\win32
-
-
- interfaces\video\win32
-
-
- interfaces\video\win32
-
-
- interfaces\video\win32
-
-
- interfaces\video\win32
-
-
- interfaces\video\scalers
-
-
- interfaces\video\scalers
-
-
- interfaces\video\scalers
-
-
- interfaces\video\scalers
-
-
- interfaces\video\scalers
-
-
- interfaces\video\scalers
-
-
- interfaces\video\scalers
-
-
- interfaces\video\scalers
-
-
- interfaces\video\scalers
-
-
- interfaces\perf
-
-
- interfaces\perf\win32
-
-
- libs\zlib
-
-
- libs\zlib
-
-
- libs\zlib
-
-
- libs\zlib
-
-
- libs\zlib
-
-
- libs\zlib
-
-
- libs\zlib
-
-
- libs\zlib
-
-
- libs\zlib
-
-
- libs\zlib
-
-
- libs\zlib
-
-
- libs\zlib
-
-
- libs\zlib
-
-
- libs\zlib
-
-
- libs\zlib
-
-
- libs\libpng
-
-
- libs\libpng
-
-
- libs\libpng
-
-
- libs\libpng
-
-
- libs\libpng
-
-
- libs\libpng
-
-
- libs\libpng
-
-
- libs\libpng
-
-
- libs\libpng
-
-
- libs\libpng
-
-
- libs\libpng
-
-
- libs\libpng
-
-
- libs\libpng
-
-
- libs\libpng
-
-
- libs\libpng
-
-
- libs\7z
-
-
- libs\7z
-
-
- libs\7z
-
-
- libs\7z
-
-
- libs\7z
-
-
- libs\7z
-
-
- libs\7z
-
-
- libs\7z
-
-
- libs\7z
-
-
- libs\7z
-
-
- libs\7z
-
-
- libs\7z
-
-
- libs\7z
-
-
- libs\7z
-
-
- libs\7z
-
-
- libs\7z
-
-
- libs\7z
-
-
- libs\7z
-
-
- libs\7z
-
-
- libs\7z
-
-
- libs\7z
-
-
- libs\7z
-
-
- libs\7z
-
-
- libs\7z
-
-
- libs\7z
-
-
- libs\7z
-
-
- libs\7z
-
-
- libs\7z
-
-
- libs\7z
-
-
- libs\7z
-
-
- libs\7z
-
-
- libs\7z
-
-
- libs\7z
-
-
- libs\7z
-
-
- libs\7z
-
-
- libs\7z
-
-
- cpus\m68k
-
-
- shitty networking code
-
-
- Burn\drv\sms
-
-
- Burn\drv\sms
-
-
-
-
- {20c66404-b041-4c1c-92d5-e247bed49381}
-
-
- {6fb047bd-f52c-4c9e-aafe-1a083b0b5e7b}
-
-
- {be891496-733a-468e-b938-3a04ff7da28e}
-
-
- {157177a2-3cd7-44b7-abe0-2f7b96b670f6}
-
-
- {35dfe3ae-1f3b-4f8c-8362-670dd008d911}
-
-
- {bdc4c8f8-e20e-4ee1-ac54-51563fdeff45}
-
-
- {4fd52931-a65f-49a4-aae5-521161f7a82a}
-
-
- {c16fd15f-a44a-4691-94ad-0f7bc7199f3d}
-
-
- {c4b93ffc-1f2a-4461-a73b-d7153fd1a1e6}
-
-
- {0937431a-c5c3-4079-86ff-f553d99ef136}
-
-
- {c9f79ec1-aa17-4960-ae86-875f4946c39c}
-
-
- {921dd117-a8fb-4b7c-beba-816870ec29b1}
-
-
- {15e73a36-20e3-4787-9098-93110d20385d}
-
-
- {6c7e826a-8962-479c-8584-38f4c4bda59f}
-
-
- {14559fe7-78ad-4e5d-9fde-0a27cfebe3f2}
-
-
- {1ee2e0f5-6bec-41dd-8b09-f110a36e0fbd}
-
-
- {e84ef75c-1e60-48a1-b3a7-c4c007594961}
-
-
- {ea0abb96-fbd6-4b68-b495-ffdc0d9b007e}
-
-
- {33f8a601-1bcb-458c-8818-aff159407b66}
-
-
- {92c33e19-ba3d-48e8-aaa5-0be3efbbd9bb}
-
-
- {cfa988bf-dda1-4336-b896-65c08a977e45}
-
-
- {ec5d82b7-2cb0-4fb4-a5dc-16ab24a692c8}
-
-
- {63ac0368-033b-4bab-ab4f-a4e2f2480828}
-
-
- {ac9d3e68-c859-431c-afcf-a45a59bde41f}
-
-
- {181a963c-900f-43fe-88c7-76b3ca2db96a}
-
-
- {2f6c4a65-24db-4b48-a4bc-5f3dc417ce2a}
-
-
- {022cec73-4f7c-4e2b-b5ae-961baf57059a}
-
-
- {7f799802-3d11-4d1b-a292-44e8081c8506}
-
-
- {d8cca765-414c-4d1f-b707-0fcce579f63f}
-
-
- {bd20b85f-0fc1-48e9-9300-5512f0b48d32}
-
-
- {7b46bc32-63cc-4d07-926c-6521e5e3734a}
-
-
- {b75322ce-7e8d-4ebb-9417-0c21fc7ca996}
-
-
- {30900300-8680-4de9-949f-e5730750f260}
-
-
- {38ae639d-7a13-425e-8992-6ccfb38ebff9}
-
-
- {abfb0299-f5db-42c5-9d0e-8d4f719efcc5}
-
-
- {bb4aef48-9a9c-44da-95e9-c62d6e6b026f}
-
-
- {258c1673-602b-41dc-b192-6ef0c1c21e99}
-
-
- {3c2c0e48-8c0b-4de2-bc84-a6b2ad8dd9df}
-
-
- {c1631cbb-48f8-4fcd-9b5d-f978c18d97e1}
-
-
- {216c2b82-0104-409a-98c6-c6368441eb39}
-
-
- {7bc6d679-0841-4db6-b257-8070b73933b9}
-
-
- {7caa12c1-b685-4ae8-964a-dc887e3b0aa4}
-
-
- {fb178d63-1f81-415e-8cd7-a48079015c54}
-
-
- {8d48ac20-3c2b-4c0a-b151-8e9f55f8a55a}
-
-
- {688e8e7c-7d25-4fb2-8b08-99830cf36885}
-
-
- {ac6b8038-053a-4b04-a976-516b7cf1c6a7}
-
-
- {ec55b2b2-6ba4-4d8e-ae94-9aa7cba90fd0}
-
-
- {77a52c8d-cc17-42bd-bb06-f256cef06e7a}
-
-
- {71d3f67e-bf57-4151-a259-00d382e81c46}
-
-
- {c9aa7869-9ab8-4b00-8662-d8972e1967f0}
-
-
- {f88c916d-3b4e-4035-91f9-b395dbf046e1}
-
-
- {3d547c1f-d964-4d1b-bb82-71e414c1a83f}
-
-
- {3a50b1b9-d941-4370-b3f0-33fec23251ad}
-
-
- {6b4ef829-71a4-4561-81d3-e4c25f7a8f40}
-
-
- {f7d4de4f-dfdc-43b3-a668-f4acd52b2a23}
-
-
- {16c81b29-859d-4d57-963e-e6e08ba76fdb}
-
-
- {9cda8029-cb8c-41ad-821d-ea5f7689041d}
-
-
- {4419ca8b-16c8-43ef-ab6b-cdd4da2922f2}
-
-
-
-
- Burn
-
-
- interfaces\video\win32\resource
-
-
- interfaces\video\scalers
-
-
- interfaces\video\scalers
-
-
- interfaces\video\scalers
-
-
- interfaces\video\scalers
-
-
- interfaces\video\scalers
-
-
- interfaces\video\scalers
-
-
- libs\zlib
-
-
- libs\libpng
-
-
- libs\7z
-
-
-
-
- burner\win32
-
-
- libs\7z
-
-
-
\ No newline at end of file
diff --git a/jan/src/burn/bitswap.h b/jan/src/burn/bitswap.h
deleted file mode 100644
index 537eb1686..000000000
--- a/jan/src/burn/bitswap.h
+++ /dev/null
@@ -1,116 +0,0 @@
-#define BITSWAP32(n, \
- bit31, bit30, bit29, bit28, bit27, bit26, bit25, bit24, \
- bit23, bit22, bit21, bit20, bit19, bit18, bit17, bit16, \
- bit15, bit14, bit13, bit12, bit11, bit10, bit09, bit08, \
- bit07, bit06, bit05, bit04, bit03, bit02, bit01, bit00) \
- (((((n) >> (bit31)) & 1) << 31) | \
- ((((n) >> (bit30)) & 1) << 30) | \
- ((((n) >> (bit29)) & 1) << 29) | \
- ((((n) >> (bit28)) & 1) << 28) | \
- ((((n) >> (bit27)) & 1) << 27) | \
- ((((n) >> (bit26)) & 1) << 26) | \
- ((((n) >> (bit25)) & 1) << 25) | \
- ((((n) >> (bit24)) & 1) << 24) | \
- ((((n) >> (bit23)) & 1) << 23) | \
- ((((n) >> (bit22)) & 1) << 22) | \
- ((((n) >> (bit21)) & 1) << 21) | \
- ((((n) >> (bit20)) & 1) << 20) | \
- ((((n) >> (bit19)) & 1) << 19) | \
- ((((n) >> (bit18)) & 1) << 18) | \
- ((((n) >> (bit17)) & 1) << 17) | \
- ((((n) >> (bit16)) & 1) << 16) | \
- ((((n) >> (bit15)) & 1) << 15) | \
- ((((n) >> (bit14)) & 1) << 14) | \
- ((((n) >> (bit13)) & 1) << 13) | \
- ((((n) >> (bit12)) & 1) << 12) | \
- ((((n) >> (bit11)) & 1) << 11) | \
- ((((n) >> (bit10)) & 1) << 10) | \
- ((((n) >> (bit09)) & 1) << 9) | \
- ((((n) >> (bit08)) & 1) << 8) | \
- ((((n) >> (bit07)) & 1) << 7) | \
- ((((n) >> (bit06)) & 1) << 6) | \
- ((((n) >> (bit05)) & 1) << 5) | \
- ((((n) >> (bit04)) & 1) << 4) | \
- ((((n) >> (bit03)) & 1) << 3) | \
- ((((n) >> (bit02)) & 1) << 2) | \
- ((((n) >> (bit01)) & 1) << 1) | \
- ((((n) >> (bit00)) & 1) << 0))
-
-#define BITSWAP24(n, \
- bit23, bit22, bit21, bit20, bit19, bit18, bit17, bit16, \
- bit15, bit14, bit13, bit12, bit11, bit10, bit09, bit08, \
- bit07, bit06, bit05, bit04, bit03, bit02, bit01, bit00) \
- (((((n) >> (bit23)) & 1) << 23) | \
- ((((n) >> (bit22)) & 1) << 22) | \
- ((((n) >> (bit21)) & 1) << 21) | \
- ((((n) >> (bit20)) & 1) << 20) | \
- ((((n) >> (bit19)) & 1) << 19) | \
- ((((n) >> (bit18)) & 1) << 18) | \
- ((((n) >> (bit17)) & 1) << 17) | \
- ((((n) >> (bit16)) & 1) << 16) | \
- ((((n) >> (bit15)) & 1) << 15) | \
- ((((n) >> (bit14)) & 1) << 14) | \
- ((((n) >> (bit13)) & 1) << 13) | \
- ((((n) >> (bit12)) & 1) << 12) | \
- ((((n) >> (bit11)) & 1) << 11) | \
- ((((n) >> (bit10)) & 1) << 10) | \
- ((((n) >> (bit09)) & 1) << 9) | \
- ((((n) >> (bit08)) & 1) << 8) | \
- ((((n) >> (bit07)) & 1) << 7) | \
- ((((n) >> (bit06)) & 1) << 6) | \
- ((((n) >> (bit05)) & 1) << 5) | \
- ((((n) >> (bit04)) & 1) << 4) | \
- ((((n) >> (bit03)) & 1) << 3) | \
- ((((n) >> (bit02)) & 1) << 2) | \
- ((((n) >> (bit01)) & 1) << 1) | \
- ((((n) >> (bit00)) & 1) << 0))
-
-#define BITSWAP16(n, \
- bit15, bit14, bit13, bit12, bit11, bit10, bit09, bit08, \
- bit07, bit06, bit05, bit04, bit03, bit02, bit01, bit00) \
- (((((n) >> (bit15)) & 1) << 15) | \
- ((((n) >> (bit14)) & 1) << 14) | \
- ((((n) >> (bit13)) & 1) << 13) | \
- ((((n) >> (bit12)) & 1) << 12) | \
- ((((n) >> (bit11)) & 1) << 11) | \
- ((((n) >> (bit10)) & 1) << 10) | \
- ((((n) >> (bit09)) & 1) << 9) | \
- ((((n) >> (bit08)) & 1) << 8) | \
- ((((n) >> (bit07)) & 1) << 7) | \
- ((((n) >> (bit06)) & 1) << 6) | \
- ((((n) >> (bit05)) & 1) << 5) | \
- ((((n) >> (bit04)) & 1) << 4) | \
- ((((n) >> (bit03)) & 1) << 3) | \
- ((((n) >> (bit02)) & 1) << 2) | \
- ((((n) >> (bit01)) & 1) << 1) | \
- ((((n) >> (bit00)) & 1) << 0))
-
-#define BITSWAP08(n, \
- bit07, bit06, bit05, bit04, bit03, bit02, bit01, bit00) \
- (((((n) >> (bit07)) & 1) << 7) | \
- ((((n) >> (bit06)) & 1) << 6) | \
- ((((n) >> (bit05)) & 1) << 5) | \
- ((((n) >> (bit04)) & 1) << 4) | \
- ((((n) >> (bit03)) & 1) << 3) | \
- ((((n) >> (bit02)) & 1) << 2) | \
- ((((n) >> (bit01)) & 1) << 1) | \
- ((((n) >> (bit00)) & 1) << 0))
-
-#define BIT(x,n) (((x)>>(n))&1)
-
-/* ----- macros for accessing bytes and words within larger chunks ----- */
-#ifdef LSB_FIRST
- #define BYTE_XOR_BE(a) ((a) ^ 1) /* read/write a byte to a 16-bit space */
- #define BYTE_XOR_LE(a) (a)
- #define BYTE4_XOR_BE(a) ((a) ^ 3) /* read/write a byte to a 32-bit space */
- #define BYTE4_XOR_LE(a) (a)
- #define WORD_XOR_BE(a) ((a) ^ 2) /* read/write a word to a 32-bit space */
- #define WORD_XOR_LE(a) (a)
-#else
- #define BYTE_XOR_BE(a) (a)
- #define BYTE_XOR_LE(a) ((a) ^ 1) /* read/write a byte to a 16-bit space */
- #define BYTE4_XOR_BE(a) (a)
- #define BYTE4_XOR_LE(a) ((a) ^ 3) /* read/write a byte to a 32-bit space */
- #define WORD_XOR_BE(a) (a)
- #define WORD_XOR_LE(a) ((a) ^ 2) /* read/write a word to a 32-bit space */
-#endif
diff --git a/jan/src/burn/burn.cpp b/jan/src/burn/burn.cpp
deleted file mode 100644
index 6141abbad..000000000
--- a/jan/src/burn/burn.cpp
+++ /dev/null
@@ -1,1056 +0,0 @@
-// Burn - Drivers module
-
-#include "version.h"
-#include "burnint.h"
-#include "burn_sound.h"
-#include "driverlist.h"
-
-#ifndef __LIBRETRO__
-// filler function, used if the application is not printing debug messages
-static INT32 __cdecl BurnbprintfFiller(INT32, TCHAR* , ...) { return 0; }
-// pointer to burner printing function
-#ifndef bprintf
-INT32 (__cdecl *bprintf)(INT32 nStatus, TCHAR* szFormat, ...) = BurnbprintfFiller;
-#endif
-#endif
-
-INT32 nBurnVer = BURN_VERSION; // Version number of the library
-
-UINT32 nBurnDrvCount = 0; // Count of game drivers
-UINT32 nBurnDrvActive = ~0U; // Which game driver is selected
-UINT32 nBurnDrvSelect[8] = { ~0U, ~0U, ~0U, ~0U, ~0U, ~0U, ~0U, ~0U }; // Which games are selected (i.e. loaded but not necessarily active)
-
-bool bBurnUseMMX;
-#if defined BUILD_A68K
-bool bBurnUseASMCPUEmulation = false;
-#endif
-
-#if defined (FBA_DEBUG)
- clock_t starttime = 0;
-#endif
-
-UINT32 nCurrentFrame; // Framecount for emulated game
-
-UINT32 nFramesEmulated; // Counters for FPS display
-UINT32 nFramesRendered; //
-bool bForce60Hz = false;
-bool bBurnUseBlend = true;
-INT32 nBurnFPS = 6000;
-INT32 nBurnCPUSpeedAdjust = 0x0100; // CPU speed adjustment (clock * nBurnCPUSpeedAdjust / 0x0100)
-
-// Burn Draw:
-UINT8* pBurnDraw = NULL; // Pointer to correctly sized bitmap
-INT32 nBurnPitch = 0; // Pitch between each line
-INT32 nBurnBpp; // Bytes per pixel (2, 3, or 4)
-
-INT32 nBurnSoundRate = 0; // sample rate of sound or zero for no sound
-INT32 nBurnSoundLen = 0; // length in samples per frame
-INT16* pBurnSoundOut = NULL; // pointer to output buffer
-
-INT32 nInterpolation = 1; // Desired interpolation level for ADPCM/PCM sound
-INT32 nFMInterpolation = 0; // Desired interpolation level for FM sound
-
-UINT8 nBurnLayer = 0xFF; // Can be used externally to select which layers to show
-UINT8 nSpriteEnable = 0xFF; // Can be used externally to select which layers to show
-
-INT32 nMaxPlayers;
-
-bool bSaveCRoms = 0;
-
-UINT32 *pBurnDrvPalette;
-
-bool BurnCheckMMXSupport()
-{
-#if defined BUILD_X86_ASM
- UINT32 nSignatureEAX = 0, nSignatureEBX = 0, nSignatureECX = 0, nSignatureEDX = 0;
-
- CPUID(1, nSignatureEAX, nSignatureEBX, nSignatureECX, nSignatureEDX);
-
- return (nSignatureEDX >> 23) & 1; // bit 23 of edx indicates MMX support
-#else
- return 0;
-#endif
-}
-
-extern "C" INT32 BurnLibInit()
-{
- BurnLibExit();
- nBurnDrvCount = sizeof(pDriver) / sizeof(pDriver[0]); // count available drivers
-
- cmc_4p_Precalc();
- bBurnUseMMX = BurnCheckMMXSupport();
-
- return 0;
-}
-
-extern "C" INT32 BurnLibExit()
-{
- nBurnDrvCount = 0;
-
- return 0;
-}
-
-INT32 BurnGetZipName(char** pszName, UINT32 i)
-{
- static char szFilename[MAX_PATH];
- char* pszGameName = NULL;
-
- if (pszName == NULL) {
- return 1;
- }
-
- if (i == 0) {
- pszGameName = pDriver[nBurnDrvActive]->szShortName;
- } else {
- INT32 nOldBurnDrvSelect = nBurnDrvActive;
- UINT32 j = pDriver[nBurnDrvActive]->szBoardROM ? 1 : 0;
-
- // Try BIOS/board ROMs first
- if (i == 1 && j == 1) { // There is a BIOS/board ROM
- pszGameName = pDriver[nBurnDrvActive]->szBoardROM;
- }
-
- if (pszGameName == NULL) {
- // Go through the list to seek out the parent
- while (j < i) {
- char* pszParent = pDriver[nBurnDrvActive]->szParent;
- pszGameName = NULL;
-
- if (pszParent == NULL) { // No parent
- break;
- }
-
- for (nBurnDrvActive = 0; nBurnDrvActive < nBurnDrvCount; nBurnDrvActive++) {
- if (strcmp(pszParent, pDriver[nBurnDrvActive]->szShortName) == 0) { // Found parent
- pszGameName = pDriver[nBurnDrvActive]->szShortName;
- break;
- }
- }
-
- j++;
- }
- }
-
- nBurnDrvActive = nOldBurnDrvSelect;
- }
-
- if (pszGameName == NULL) {
- *pszName = NULL;
- return 1;
- }
-
- strcpy(szFilename, pszGameName);
-
- *pszName = szFilename;
-
- return 0;
-}
-
-// ----------------------------------------------------------------------------
-// Static functions which forward to each driver's data and functions
-
-INT32 BurnStateMAMEScan(INT32 nAction, INT32* pnMin);
-void BurnStateExit();
-INT32 BurnStateInit();
-
-// Get the text fields for the driver in TCHARs
-extern "C" TCHAR* BurnDrvGetText(UINT32 i)
-{
- char* pszStringA = NULL;
- wchar_t* pszStringW = NULL;
- static char* pszCurrentNameA;
- static wchar_t* pszCurrentNameW;
-
-#if defined (_UNICODE)
-
- static wchar_t szShortNameW[32];
- static wchar_t szDateW[32];
- static wchar_t szFullNameW[256];
- static wchar_t szCommentW[256];
- static wchar_t szManufacturerW[256];
- static wchar_t szSystemW[256];
- static wchar_t szParentW[32];
- static wchar_t szBoardROMW[32];
- static wchar_t szSampleNameW[32];
-
-#else
-
- static char szShortNameA[32];
- static char szDateA[32];
- static char szFullNameA[256];
- static char szCommentA[256];
- static char szManufacturerA[256];
- static char szSystemA[256];
- static char szParentA[32];
- static char szBoardROMA[32];
- static char szSampleNameA[32];
-
-#endif
-
- if (!(i & DRV_ASCIIONLY)) {
- switch (i & 0xFF) {
-#ifndef __LIBRETRO__
- case DRV_FULLNAME:
- pszStringW = pDriver[nBurnDrvActive]->szFullNameW;
-
- if (i & DRV_NEXTNAME) {
- if (pszCurrentNameW && pDriver[nBurnDrvActive]->szFullNameW) {
- pszCurrentNameW += wcslen(pszCurrentNameW) + 1;
- if (!pszCurrentNameW[0]) {
- return NULL;
- }
- pszStringW = pszCurrentNameW;
- }
- } else {
-
-#if !defined (_UNICODE)
-
- // Ensure all of the Unicode titles are printable in the current locale
- pszCurrentNameW = pDriver[nBurnDrvActive]->szFullNameW;
- if (pszCurrentNameW && pszCurrentNameW[0]) {
- INT32 nRet;
-
- do {
- nRet = wcstombs(szFullNameA, pszCurrentNameW, 256);
- pszCurrentNameW += wcslen(pszCurrentNameW) + 1;
- } while (nRet >= 0 && pszCurrentNameW[0]);
-
- // If all titles can be printed, we can use the Unicode versions
- if (nRet >= 0) {
- pszStringW = pszCurrentNameW = pDriver[nBurnDrvActive]->szFullNameW;
- }
- }
-
-#else
-
- pszStringW = pszCurrentNameW = pDriver[nBurnDrvActive]->szFullNameW;
-
-#endif
-
- }
- break;
-#endif // __LIBRETRO__
- case DRV_COMMENT:
- pszStringW = pDriver[nBurnDrvActive]->szCommentW;
- break;
- case DRV_MANUFACTURER:
- pszStringW = pDriver[nBurnDrvActive]->szManufacturerW;
- break;
- case DRV_SYSTEM:
- pszStringW = pDriver[nBurnDrvActive]->szSystemW;
- }
-
-#if defined (_UNICODE)
-
- if (pszStringW && pszStringW[0]) {
- return pszStringW;
- }
-
-#else
-
- switch (i & 0xFF) {
- case DRV_NAME:
- pszStringA = szShortNameA;
- break;
- case DRV_DATE:
- pszStringA = szDateA;
- break;
- case DRV_FULLNAME:
- pszStringA = szFullNameA;
- break;
- case DRV_COMMENT:
- pszStringA = szCommentA;
- break;
- case DRV_MANUFACTURER:
- pszStringA = szManufacturerA;
- break;
- case DRV_SYSTEM:
- pszStringA = szSystemA;
- break;
- case DRV_PARENT:
- pszStringA = szParentA;
- break;
- case DRV_BOARDROM:
- pszStringA = szBoardROMA;
- break;
- case DRV_SAMPLENAME:
- pszStringA = szSampleNameA;
- break;
- }
-
- if (pszStringW && pszStringA && pszStringW[0]) {
- if (wcstombs(pszStringA, pszStringW, 256) != -1U) {
- return pszStringA;
- }
-
- }
-
- pszStringA = NULL;
-
-#endif
-
- }
-
- if (i & DRV_UNICODEONLY) {
- return NULL;
- }
-
- switch (i & 0xFF) {
- case DRV_NAME:
- pszStringA = pDriver[nBurnDrvActive]->szShortName;
- break;
- case DRV_DATE:
- pszStringA = pDriver[nBurnDrvActive]->szDate;
- break;
- case DRV_FULLNAME:
- pszStringA = pDriver[nBurnDrvActive]->szFullNameA;
-
- if (i & DRV_NEXTNAME) {
- if (!pszCurrentNameW && pDriver[nBurnDrvActive]->szFullNameA) {
- pszCurrentNameA += strlen(pszCurrentNameA) + 1;
- if (!pszCurrentNameA[0]) {
- return NULL;
- }
- pszStringA = pszCurrentNameA;
- }
- } else {
- pszStringA = pszCurrentNameA = pDriver[nBurnDrvActive]->szFullNameA;
- pszCurrentNameW = NULL;
- }
- break;
- case DRV_COMMENT:
- pszStringA = pDriver[nBurnDrvActive]->szCommentA;
- break;
- case DRV_MANUFACTURER:
- pszStringA = pDriver[nBurnDrvActive]->szManufacturerA;
- break;
- case DRV_SYSTEM:
- pszStringA = pDriver[nBurnDrvActive]->szSystemA;
- break;
- case DRV_PARENT:
- pszStringA = pDriver[nBurnDrvActive]->szParent;
- break;
- case DRV_BOARDROM:
- pszStringA = pDriver[nBurnDrvActive]->szBoardROM;
- break;
- case DRV_SAMPLENAME:
- pszStringA = pDriver[nBurnDrvActive]->szSampleName;
- }
-
-#if defined (_UNICODE)
-
- switch (i & 0xFF) {
- case DRV_NAME:
- pszStringW = szShortNameW;
- break;
- case DRV_DATE:
- pszStringW = szDateW;
- break;
- case DRV_FULLNAME:
- pszStringW = szFullNameW;
- break;
- case DRV_COMMENT:
- pszStringW = szCommentW;
- break;
- case DRV_MANUFACTURER:
- pszStringW = szManufacturerW;
- break;
- case DRV_SYSTEM:
- pszStringW = szSystemW;
- break;
- case DRV_PARENT:
- pszStringW = szParentW;
- break;
- case DRV_BOARDROM:
- pszStringW = szBoardROMW;
- break;
- case DRV_SAMPLENAME:
- pszStringW = szSampleNameW;
- break;
- }
-
- if (pszStringW && pszStringA && pszStringA[0]) {
- if (mbstowcs(pszStringW, pszStringA, 256) != -1U) {
- return pszStringW;
- }
- }
-
-#else
-
- if (pszStringA && pszStringA[0]) {
- return pszStringA;
- }
-
-#endif
-
- return NULL;
-}
-
-
-// Get the ASCII text fields for the driver in ASCII format;
-extern "C" char* BurnDrvGetTextA(UINT32 i)
-{
- switch (i) {
- case DRV_NAME:
- return pDriver[nBurnDrvActive]->szShortName;
- case DRV_DATE:
- return pDriver[nBurnDrvActive]->szDate;
- case DRV_FULLNAME:
- return pDriver[nBurnDrvActive]->szFullNameA;
- case DRV_COMMENT:
- return pDriver[nBurnDrvActive]->szCommentA;
- case DRV_MANUFACTURER:
- return pDriver[nBurnDrvActive]->szManufacturerA;
- case DRV_SYSTEM:
- return pDriver[nBurnDrvActive]->szSystemA;
- case DRV_PARENT:
- return pDriver[nBurnDrvActive]->szParent;
- case DRV_BOARDROM:
- return pDriver[nBurnDrvActive]->szBoardROM;
- case DRV_SAMPLENAME:
- return pDriver[nBurnDrvActive]->szSampleName;
- default:
- return NULL;
- }
-}
-
-#if defined (_UNICODE)
-void BurnLocalisationSetName(char *szName, TCHAR *szLongName)
-{
- for (UINT32 i = 0; i < nBurnDrvCount; i++) {
- nBurnDrvActive = i;
- if (!strcmp(szName, pDriver[i]->szShortName)) {
- pDriver[i]->szFullNameW = szLongName;
- }
- }
-}
-#endif
-
-// Get the zip names for the driver
-extern "C" INT32 BurnDrvGetZipName(char** pszName, UINT32 i)
-{
- if (pDriver[nBurnDrvActive]->GetZipName) { // Forward to drivers function
- return pDriver[nBurnDrvActive]->GetZipName(pszName, i);
- }
-
- return BurnGetZipName(pszName, i); // Forward to general function
-}
-
-extern "C" INT32 BurnDrvGetRomInfo(struct BurnRomInfo* pri, UINT32 i) // Forward to drivers function
-{
- return pDriver[nBurnDrvActive]->GetRomInfo(pri, i);
-}
-
-extern "C" INT32 BurnDrvGetRomName(char** pszName, UINT32 i, INT32 nAka) // Forward to drivers function
-{
- return pDriver[nBurnDrvActive]->GetRomName(pszName, i, nAka);
-}
-
-extern "C" INT32 BurnDrvGetInputInfo(struct BurnInputInfo* pii, UINT32 i) // Forward to drivers function
-{
- return pDriver[nBurnDrvActive]->GetInputInfo(pii, i);
-}
-
-extern "C" INT32 BurnDrvGetDIPInfo(struct BurnDIPInfo* pdi, UINT32 i)
-{
- if (pDriver[nBurnDrvActive]->GetDIPInfo) { // Forward to drivers function
- return pDriver[nBurnDrvActive]->GetDIPInfo(pdi, i);
- }
-
- return 1; // Fail automatically
-}
-
-extern "C" INT32 BurnDrvGetSampleInfo(struct BurnSampleInfo* pri, UINT32 i) // Forward to drivers function
-{
- return pDriver[nBurnDrvActive]->GetSampleInfo(pri, i);
-}
-
-extern "C" INT32 BurnDrvGetSampleName(char** pszName, UINT32 i, INT32 nAka) // Forward to drivers function
-{
- return pDriver[nBurnDrvActive]->GetSampleName(pszName, i, nAka);
-}
-
-// Get the screen size
-extern "C" INT32 BurnDrvGetVisibleSize(INT32* pnWidth, INT32* pnHeight)
-{
- *pnWidth =pDriver[nBurnDrvActive]->nWidth;
- *pnHeight=pDriver[nBurnDrvActive]->nHeight;
-
- return 0;
-}
-
-extern "C" INT32 BurnDrvGetVisibleOffs(INT32* pnLeft, INT32* pnTop)
-{
- *pnLeft = 0;
- *pnTop = 0;
-
- return 0;
-}
-
-extern "C" INT32 BurnDrvGetFullSize(INT32* pnWidth, INT32* pnHeight)
-{
- if (pDriver[nBurnDrvActive]->Flags & BDF_ORIENTATION_VERTICAL) {
- *pnWidth =pDriver[nBurnDrvActive]->nHeight;
- *pnHeight=pDriver[nBurnDrvActive]->nWidth;
- } else {
- *pnWidth =pDriver[nBurnDrvActive]->nWidth;
- *pnHeight=pDriver[nBurnDrvActive]->nHeight;
- }
-
- return 0;
-}
-
-// Get screen aspect ratio
-extern "C" INT32 BurnDrvGetAspect(INT32* pnXAspect, INT32* pnYAspect)
-{
- *pnXAspect = pDriver[nBurnDrvActive]->nXAspect;
- *pnYAspect = pDriver[nBurnDrvActive]->nYAspect;
-
- return 0;
-}
-
-extern "C" INT32 BurnDrvSetVisibleSize(INT32 pnWidth, INT32 pnHeight)
-{
- if (pDriver[nBurnDrvActive]->Flags & BDF_ORIENTATION_VERTICAL) {
- pDriver[nBurnDrvActive]->nHeight = pnWidth;
- pDriver[nBurnDrvActive]->nWidth = pnHeight;
- } else {
- pDriver[nBurnDrvActive]->nWidth = pnWidth;
- pDriver[nBurnDrvActive]->nHeight = pnHeight;
- }
-
- return 0;
-}
-
-extern "C" INT32 BurnDrvSetAspect(INT32 pnXAspect,INT32 pnYAspect)
-{
- pDriver[nBurnDrvActive]->nXAspect = pnXAspect;
- pDriver[nBurnDrvActive]->nYAspect = pnYAspect;
-
- return 0;
-}
-
-// Get the hardware code
-extern "C" INT32 BurnDrvGetHardwareCode()
-{
- return pDriver[nBurnDrvActive]->Hardware;
-}
-
-// Get flags, including BDF_GAME_WORKING flag
-extern "C" INT32 BurnDrvGetFlags()
-{
- return pDriver[nBurnDrvActive]->Flags;
-}
-
-// Return BDF_WORKING flag
-extern "C" bool BurnDrvIsWorking()
-{
- return pDriver[nBurnDrvActive]->Flags & BDF_GAME_WORKING;
-}
-
-// Return max. number of players
-extern "C" INT32 BurnDrvGetMaxPlayers()
-{
- return pDriver[nBurnDrvActive]->Players;
-}
-
-// Return genre flags
-extern "C" INT32 BurnDrvGetGenreFlags()
-{
- return pDriver[nBurnDrvActive]->Genre;
-}
-
-// Return family flags
-extern "C" INT32 BurnDrvGetFamilyFlags()
-{
- return pDriver[nBurnDrvActive]->Family;
-}
-
-// Init game emulation (loading any needed roms)
-extern "C" INT32 BurnDrvInit()
-{
- INT32 nReturnValue;
-
- if (nBurnDrvActive >= nBurnDrvCount) {
- return 1;
- }
-
-#if defined (FBA_DEBUG)
- {
- TCHAR szText[1024] = _T("");
- TCHAR* pszPosition = szText;
- TCHAR* pszName = BurnDrvGetText(DRV_FULLNAME);
- INT32 nName = 1;
-
- while ((pszName = BurnDrvGetText(DRV_NEXTNAME | DRV_FULLNAME)) != NULL) {
- nName++;
- }
-
- // Print the title
-
- bprintf(PRINT_IMPORTANT, _T("*** Starting emulation of %s - %s.\n"), BurnDrvGetText(DRV_NAME), BurnDrvGetText(DRV_FULLNAME));
-
-#ifdef BUILD_A68K
- if (bBurnUseASMCPUEmulation)
- bprintf(PRINT_ERROR, _T("*** WARNING: Assembly MC68000 core is enabled for this session!\n"));
-#endif
-
- // Then print the alternative titles
-
- if (nName > 1) {
- bprintf(PRINT_IMPORTANT, _T(" Alternative %s "), (nName > 2) ? _T("titles are") : _T("title is"));
- pszName = BurnDrvGetText(DRV_FULLNAME);
- nName = 1;
- while ((pszName = BurnDrvGetText(DRV_NEXTNAME | DRV_FULLNAME)) != NULL) {
- if (pszPosition + _tcslen(pszName) - 1022 > szText) {
- break;
- }
- if (nName > 1) {
- bprintf(PRINT_IMPORTANT, _T(SEPERATOR_1));
- }
- bprintf(PRINT_IMPORTANT, _T("%s"), pszName);
- nName++;
- }
- bprintf(PRINT_IMPORTANT, _T(".\n"));
- }
- }
-#endif
-
- BurnSetRefreshRate(60.0);
-
- CheatInit();
- HiscoreInit();
- BurnStateInit();
- BurnInitMemoryManager();
- BurnRandomInit();
-
- nReturnValue = pDriver[nBurnDrvActive]->Init(); // Forward to drivers function
-
- nMaxPlayers = pDriver[nBurnDrvActive]->Players;
-
-#if defined (FBA_DEBUG)
- if (!nReturnValue) {
- starttime = clock();
- nFramesEmulated = 0;
- nFramesRendered = 0;
- nCurrentFrame = 0;
- } else {
- starttime = 0;
- }
-#endif
-
- return nReturnValue;
-}
-
-// Exit game emulation
-extern "C" INT32 BurnDrvExit()
-{
-#if defined (FBA_DEBUG)
- if (starttime) {
- clock_t endtime;
- clock_t nElapsedSecs;
-
- endtime = clock();
- nElapsedSecs = (endtime - starttime);
- bprintf(PRINT_IMPORTANT, _T(" ** Emulation ended (running for %.2f seconds).\n"), (float)nElapsedSecs / CLOCKS_PER_SEC);
- bprintf(PRINT_IMPORTANT, _T(" %.2f%% of frames rendered (%d out of a total %d).\n"), (float)nFramesRendered / nFramesEmulated * 100, nFramesRendered, nFramesEmulated);
- bprintf(PRINT_IMPORTANT, _T(" %.2f frames per second (average).\n"), (float)nFramesRendered / nFramesEmulated * nBurnFPS / 100);
- bprintf(PRINT_NORMAL, _T("\n"));
- }
-#endif
-
- CheatExit();
- CheatSearchExit();
- HiscoreExit();
- BurnStateExit();
-
- nBurnCPUSpeedAdjust = 0x0100;
-
- pBurnDrvPalette = NULL;
-
- INT32 nRet = pDriver[nBurnDrvActive]->Exit(); // Forward to drivers function
-
- BurnExitMemoryManager();
-#if defined FBA_DEBUG
- DebugTrackerExit();
-#endif
-
- return nRet;
-}
-
-INT32 (__cdecl* BurnExtCartridgeSetupCallback)(BurnCartrigeCommand nCommand) = NULL;
-
-INT32 BurnDrvCartridgeSetup(BurnCartrigeCommand nCommand)
-{
- if (nBurnDrvActive >= nBurnDrvCount || BurnExtCartridgeSetupCallback == NULL) {
- return 1;
- }
-
- if (nCommand == CART_EXIT) {
- return pDriver[nBurnDrvActive]->Exit();
- }
-
- if (nCommand != CART_INIT_END && nCommand != CART_INIT_START) {
- return 1;
- }
-
- BurnExtCartridgeSetupCallback(CART_INIT_END);
-
-#if defined FBA_DEBUG
- bprintf(PRINT_NORMAL, _T(" * Loading"));
-#endif
-
- if (BurnExtCartridgeSetupCallback(CART_INIT_START)) {
- return 1;
- }
-
- if (nCommand == CART_INIT_START) {
- return pDriver[nBurnDrvActive]->Init();
- }
-
- return 0;
-}
-
-// Do one frame of game emulation
-extern "C" INT32 BurnDrvFrame()
-{
- CheatApply(); // Apply cheats (if any)
- HiscoreApply();
- return pDriver[nBurnDrvActive]->Frame(); // Forward to drivers function
-}
-
-// Force redraw of the screen
-extern "C" INT32 BurnDrvRedraw()
-{
- if (pDriver[nBurnDrvActive]->Redraw) {
- return pDriver[nBurnDrvActive]->Redraw(); // Forward to drivers function
- }
-
- return 1; // No funtion provide, so simply return
-}
-
-// Refresh Palette
-extern "C" INT32 BurnRecalcPal()
-{
- if (nBurnDrvActive < nBurnDrvCount) {
- UINT8* pr = pDriver[nBurnDrvActive]->pRecalcPal;
- if (pr == NULL) return 1;
- *pr = 1; // Signal for the driver to refresh it's palette
- }
-
- return 0;
-}
-
-extern "C" INT32 BurnDrvGetPaletteEntries()
-{
- return pDriver[nBurnDrvActive]->nPaletteEntries;
-}
-
-// ----------------------------------------------------------------------------
-
-INT32 (__cdecl *BurnExtProgressRangeCallback)(double fProgressRange) = NULL;
-INT32 (__cdecl *BurnExtProgressUpdateCallback)(double fProgress, const TCHAR* pszText, bool bAbs) = NULL;
-
-INT32 BurnSetProgressRange(double fProgressRange)
-{
- if (BurnExtProgressRangeCallback) {
- return BurnExtProgressRangeCallback(fProgressRange);
- }
-
- return 1;
-}
-
-INT32 BurnUpdateProgress(double fProgress, const TCHAR* pszText, bool bAbs)
-{
- if (BurnExtProgressUpdateCallback) {
- return BurnExtProgressUpdateCallback(fProgress, pszText, bAbs);
- }
-
- return 1;
-}
-
-// ----------------------------------------------------------------------------
-
-INT32 BurnSetRefreshRate(double dFrameRate)
-{
- if (!bForce60Hz) {
- nBurnFPS = (INT32)(100.0 * dFrameRate);
- }
-
- return 0;
-}
-
-inline static INT32 BurnClearSize(INT32 w, INT32 h)
-{
- UINT8 *pl;
- INT32 y;
-
- w *= nBurnBpp;
-
- // clear the screen to zero
- for (pl = pBurnDraw, y = 0; y < h; pl += nBurnPitch, y++) {
- memset(pl, 0x00, w);
- }
-
- return 0;
-}
-
-INT32 BurnClearScreen()
-{
- struct BurnDriver* pbd = pDriver[nBurnDrvActive];
-
- if (pbd->Flags & BDF_ORIENTATION_VERTICAL) {
- BurnClearSize(pbd->nHeight, pbd->nWidth);
- } else {
- BurnClearSize(pbd->nWidth, pbd->nHeight);
- }
-
- return 0;
-}
-
-// Byteswaps an area of memory
-INT32 BurnByteswap(UINT8* pMem, INT32 nLen)
-{
- nLen >>= 1;
- for (INT32 i = 0; i < nLen; i++, pMem += 2) {
- UINT8 t = pMem[0];
- pMem[0] = pMem[1];
- pMem[1] = t;
- }
-
- return 0;
-}
-
-// Application-defined rom loading function:
-INT32 (__cdecl *BurnExtLoadRom)(UINT8 *Dest, INT32 *pnWrote, INT32 i) = NULL;
-
-// Application-defined colour conversion function
-static UINT32 __cdecl BurnHighColFiller(INT32, INT32, INT32, INT32) { return (UINT32)(~0); }
-UINT32 (__cdecl *BurnHighCol) (INT32 r, INT32 g, INT32 b, INT32 i) = BurnHighColFiller;
-
-// ----------------------------------------------------------------------------
-// Savestate support
-
-// Application-defined callback for processing the area
-static INT32 __cdecl DefAcb (struct BurnArea* /* pba */) { return 1; }
-INT32 (__cdecl *BurnAcb) (struct BurnArea* pba) = DefAcb;
-
-// Scan driver data
-INT32 BurnAreaScan(INT32 nAction, INT32* pnMin)
-{
- INT32 nRet = 0;
-
- // Handle any MAME-style variables
- if (nAction & ACB_DRIVER_DATA) {
- nRet = BurnStateMAMEScan(nAction, pnMin);
- }
-
- // Forward to the driver
- if (pDriver[nBurnDrvActive]->AreaScan) {
- nRet |= pDriver[nBurnDrvActive]->AreaScan(nAction, pnMin);
- }
-
- return nRet;
-}
-
-// ----------------------------------------------------------------------------
-// State-able random generator, based on early BSD LCG rand
-static UINT64 nBurnRandSeed = 0;
-
-UINT16 BurnRandom()
-{
- if (!nBurnRandSeed) { // for the rare rollover-to-0 occurance
- nBurnRandSeed = 0x2d1e0f;
- }
-
- nBurnRandSeed = nBurnRandSeed * 1103515245 + 12345;
-
- return (UINT32)(nBurnRandSeed / 65536) % 0x10000;
-}
-
-void BurnRandomScan(INT32 nAction)
-{
- if (nAction & ACB_DRIVER_DATA) {
- SCAN_VAR(nBurnRandSeed);
- }
-}
-
-void BurnRandomInit()
-{ // for states & input recordings - init before emulation starts
- nBurnRandSeed = time(NULL);
-}
-
-// ----------------------------------------------------------------------------
-// Wrappers for MAME-specific function calls
-
-#include "driver.h"
-
-// ----------------------------------------------------------------------------
-// Wrapper for MAME logerror calls
-
-#if defined (FBA_DEBUG) && defined (MAME_USE_LOGERROR)
-void logerror(char* szFormat, ...)
-{
- static char szLogMessage[1024];
-
- va_list vaFormat;
- va_start(vaFormat, szFormat);
-
- _vsnprintf(szLogMessage, 1024, szFormat, vaFormat);
-
- va_end(vaFormat);
-
- bprintf(PRINT_ERROR, _T("%hs"), szLogMessage);
-
- return;
-}
-#endif
-
-// ----------------------------------------------------------------------------
-// Wrapper for MAME state_save_register_* calls
-
-struct BurnStateEntry { BurnStateEntry* pNext; BurnStateEntry* pPrev; char szName[256]; void* pValue; UINT32 nSize; };
-
-static BurnStateEntry* pStateEntryAnchor = NULL;
-typedef void (*BurnPostloadFunction)();
-static BurnPostloadFunction BurnPostload[8];
-
-static void BurnStateRegister(const char* module, INT32 instance, const char* name, void* val, UINT32 size)
-{
- // Allocate new node
- BurnStateEntry* pNewEntry = (BurnStateEntry*)BurnMalloc(sizeof(BurnStateEntry));
- if (pNewEntry == NULL) {
- return;
- }
-
- memset(pNewEntry, 0, sizeof(BurnStateEntry));
-
- // Link the new node
- pNewEntry->pNext = pStateEntryAnchor;
- if (pStateEntryAnchor) {
- pStateEntryAnchor->pPrev = pNewEntry;
- }
- pStateEntryAnchor = pNewEntry;
-
- sprintf(pNewEntry->szName, "%s:%s %i", module, name, instance);
-
- pNewEntry->pValue = val;
- pNewEntry->nSize = size;
-}
-
-void BurnStateExit()
-{
- if (pStateEntryAnchor) {
- BurnStateEntry* pCurrentEntry = pStateEntryAnchor;
- BurnStateEntry* pNextEntry;
-
- do {
- pNextEntry = pCurrentEntry->pNext;
- BurnFree(pCurrentEntry);
- } while ((pCurrentEntry = pNextEntry) != 0);
- }
-
- pStateEntryAnchor = NULL;
-
- for (INT32 i = 0; i < 8; i++) {
- BurnPostload[i] = NULL;
- }
-}
-
-INT32 BurnStateInit()
-{
- BurnStateExit();
-
- return 0;
-}
-
-INT32 BurnStateMAMEScan(INT32 nAction, INT32* pnMin)
-{
- if (nAction & ACB_VOLATILE) {
-
- if (pnMin && *pnMin < 0x029418) { // Return minimum compatible version
- *pnMin = 0x029418;
- }
-
- if (pStateEntryAnchor) {
- struct BurnArea ba;
- BurnStateEntry* pCurrentEntry = pStateEntryAnchor;
-
- do {
- ba.Data = pCurrentEntry->pValue;
- ba.nLen = pCurrentEntry->nSize;
- ba.nAddress = 0;
- ba.szName = pCurrentEntry->szName;
- BurnAcb(&ba);
-
- } while ((pCurrentEntry = pCurrentEntry->pNext) != 0);
- }
-
- if (nAction & ACB_WRITE) {
- for (INT32 i = 0; i < 8; i++) {
- if (BurnPostload[i]) {
- BurnPostload[i]();
- }
- }
- }
- }
-
- return 0;
-}
-
-// wrapper functions
-
-extern "C" void state_save_register_func_postload(void (*pFunction)())
-{
- for (INT32 i = 0; i < 8; i++) {
- if (BurnPostload[i] == NULL) {
- BurnPostload[i] = pFunction;
- break;
- }
- }
-}
-
-extern "C" void state_save_register_INT8(const char* module, INT32 instance, const char* name, INT8* val, UINT32 size)
-{
- BurnStateRegister(module, instance, name, (void*)val, size * sizeof(INT8));
-}
-
-extern "C" void state_save_register_UINT8(const char* module, INT32 instance, const char* name, UINT8* val, UINT32 size)
-{
- BurnStateRegister(module, instance, name, (void*)val, size * sizeof(UINT8));
-}
-
-extern "C" void state_save_register_INT16(const char* module, INT32 instance, const char* name, INT16* val, UINT32 size)
-{
- BurnStateRegister(module, instance, name, (void*)val, size * sizeof(INT16));
-}
-
-extern "C" void state_save_register_UINT16(const char* module, INT32 instance, const char* name, UINT16* val, UINT32 size)
-{
- BurnStateRegister(module, instance, name, (void*)val, size * sizeof(UINT16));
-}
-
-extern "C" void state_save_register_INT32(const char* module, INT32 instance, const char* name, INT32* val, UINT32 size)
-{
- BurnStateRegister(module, instance, name, (void*)val, size * sizeof(INT32));
-}
-
-extern "C" void state_save_register_UINT32(const char* module, INT32 instance, const char* name, UINT32* val, UINT32 size)
-{
- BurnStateRegister(module, instance, name, (void*)val, size * sizeof(UINT32));
-}
-
-extern "C" void state_save_register_int(const char* module, INT32 instance, const char* name, INT32* val)
-{
- BurnStateRegister(module, instance, name, (void*)val, sizeof(INT32));
-}
-
-extern "C" void state_save_register_float(const char* module, INT32 instance, const char* name, float* val, UINT32 size)
-{
- BurnStateRegister(module, instance, name, (void*)val, size * sizeof(float));
-}
-
-extern "C" void state_save_register_double(const char* module, INT32 instance, const char* name, double* val, UINT32 size)
-{
- BurnStateRegister(module, instance, name, (void*)val, size * sizeof(double));
-}
diff --git a/jan/src/burn/burn.h b/jan/src/burn/burn.h
deleted file mode 100644
index 70f4c3d17..000000000
--- a/jan/src/burn/burn.h
+++ /dev/null
@@ -1,641 +0,0 @@
-// FB Alpha - Emulator for MC68000/Z80 based arcade games
-// Refer to the "license.txt" file for more info
-
-// Burner emulation library
-
-#ifdef __cplusplus
- extern "C" {
-#endif
-
-#if !defined (_WIN32)
- #define __cdecl
-#endif
-
-#ifndef MAX_PATH
- #define MAX_PATH 260
-#endif
-
-#include
-
-extern TCHAR szAppHiscorePath[MAX_PATH];
-extern TCHAR szAppSamplesPath[MAX_PATH];
-extern TCHAR szAppBlendPath[MAX_PATH];
-extern TCHAR szAppEEPROMPath[MAX_PATH];
-
-// Alignment macro, to keep savestates compatible between 32/64bit platforms.
-#ifdef _MSC_VER
-#define ALIGN_VAR(x) __declspec(align(x))
-#else
-#define ALIGN_VAR(x) __attribute__((aligned(x)))
-#endif
-
-// Enable the MAME logerror() function in debug builds
-// #define MAME_USE_LOGERROR
-
-// Give access to the CPUID function for various compilers
-#if defined (__GNUC__)
- #define CPUID(f,ra,rb,rc,rd) __asm__ __volatile__ ("cpuid" \
- : "=a" (ra), "=b" (rb), "=c" (rc), "=d" (rd) \
- : "a" (f) \
- );
-#elif defined (_MSC_VER)
- #define CPUID(f,ra,rb,rc,rd) __asm { __asm mov eax, f \
- __asm cpuid \
- __asm mov ra, eax \
- __asm mov rb, ebx \
- __asm mov rc, ecx \
- __asm mov rd, edx }
-#else
- #define CPUID(f,ra,rb,rc,rd)
-#endif
-
-#ifndef BUILD_X86_ASM
- #undef CPUID
- #define CPUID(f,ra,rb,rc,rd)
-#endif
-
-#ifdef _UNICODE
- #define SEPERATOR_1 " \u2022 "
- #define SEPERATOR_2 " \u25E6 "
-#else
- #define SEPERATOR_1 " ~ "
- #define SEPERATOR_2 " ~ "
-#endif
-
-#ifdef _UNICODE
- #define WRITE_UNICODE_BOM(file) { UINT16 BOM[] = { 0xFEFF }; fwrite(BOM, 2, 1, file); }
-#else
- #define WRITE_UNICODE_BOM(file)
-#endif
-
-typedef unsigned char UINT8;
-typedef signed char INT8;
-typedef unsigned short UINT16;
-typedef signed short INT16;
-typedef unsigned int UINT32;
-typedef signed int INT32;
-#ifdef _MSC_VER
-typedef signed __int64 INT64;
-typedef unsigned __int64 UINT64;
-#else
-__extension__ typedef unsigned long long UINT64;
-__extension__ typedef long long INT64;
-#endif
-
-#include "state.h"
-#include "cheat.h"
-#include "hiscore.h"
-#include "joyprocess.h"
-
-extern INT32 nBurnVer; // Version number of the library
-
-enum BurnCartrigeCommand { CART_INIT_START, CART_INIT_END, CART_EXIT };
-
-// ---------------------------------------------------------------------------
-// Callbacks
-
-// Application-defined rom loading function
-extern INT32 (__cdecl *BurnExtLoadRom)(UINT8* Dest, INT32* pnWrote, INT32 i);
-
-// Application-defined progress indicator functions
-extern INT32 (__cdecl *BurnExtProgressRangeCallback)(double dProgressRange);
-extern INT32 (__cdecl *BurnExtProgressUpdateCallback)(double dProgress, const TCHAR* pszText, bool bAbs);
-
-// Application-defined catridge initialisation function
-extern INT32 (__cdecl *BurnExtCartridgeSetupCallback)(BurnCartrigeCommand nCommand);
-
-// Application-defined colour conversion function
-extern UINT32 (__cdecl *BurnHighCol) (INT32 r, INT32 g, INT32 b, INT32 i);
-
-// ---------------------------------------------------------------------------
-
-extern UINT32 nCurrentFrame;
-
-inline static INT32 GetCurrentFrame() {
- return nCurrentFrame;
-}
-
-inline static void SetCurrentFrame(const UINT32 n) {
- nCurrentFrame = n;
-}
-
-// ---------------------------------------------------------------------------
-// Driver info structures
-
-// ROMs
-
-#define BRF_PRG (1 << 20)
-#define BRF_GRA (1 << 21)
-#define BRF_SND (1 << 22)
-
-#define BRF_ESS (1 << 24)
-#define BRF_BIOS (1 << 25)
-#define BRF_SELECT (1 << 26)
-#define BRF_OPT (1 << 27)
-#define BRF_NODUMP (1 << 28)
-
-struct BurnRomInfo {
- char szName[100];
- UINT32 nLen;
- UINT32 nCrc;
- UINT32 nType;
-};
-
-struct BurnSampleInfo {
- char szName[100];
- UINT32 nFlags;
-};
-
-// Inputs
-
-#define BIT_DIGITAL (1)
-
-#define BIT_GROUP_ANALOG (4)
-#define BIT_ANALOG_REL (4)
-#define BIT_ANALOG_ABS (5)
-
-#define BIT_GROUP_CONSTANT (8)
-#define BIT_CONSTANT (8)
-#define BIT_DIPSWITCH (9)
-
-struct BurnInputInfo {
- char* szName;
- UINT8 nType;
- union {
- UINT8* pVal; // Most inputs use a char*
- UINT16* pShortVal; // All analog inputs use a short*
- };
- char* szInfo;
-};
-
-// DIPs
-
-struct BurnDIPInfo {
- INT32 nInput;
- UINT8 nFlags;
- UINT8 nMask;
- UINT8 nSetting;
- char* szText;
-};
-
-
-// ---------------------------------------------------------------------------
-// Common CPU definitions
-
-#define CPU_IRQSTATUS_NONE 0
-#define CPU_IRQSTATUS_ACK 1
-#define CPU_IRQSTATUS_AUTO 2
-#define CPU_IRQSTATUS_HOLD 4
-
-#define CPU_IRQLINE0 0
-#define CPU_IRQLINE1 1
-#define CPU_IRQLINE2 2
-#define CPU_IRQLINE3 3
-#define CPU_IRQLINE4 4
-#define CPU_IRQLINE5 5
-#define CPU_IRQLINE6 6
-#define CPU_IRQLINE7 7
-
-#define CPU_IRQLINE_IRQ CPU_IRQLINE0
-#define CPU_IRQLINE_FIRQ CPU_IRQLINE1
-#define CPU_IRQLINE_NMI 0x20
-
-#define MAP_READ 1
-#define MAP_WRITE 2
-#define MAP_FETCHOP 4
-#define MAP_FETCHARG 8
-#define MAP_FETCH (MAP_FETCHOP|MAP_FETCHARG)
-#define MAP_ROM (MAP_READ|MAP_FETCH)
-#define MAP_RAM (MAP_ROM|MAP_WRITE)
-
-
-// ---------------------------------------------------------------------------
-
-extern bool bBurnUseMMX;
-#ifdef BUILD_A68K
-extern bool bBurnUseASMCPUEmulation;
-#endif
-
-extern UINT32 nFramesEmulated;
-extern UINT32 nFramesRendered;
-extern clock_t starttime; // system time when emulation started and after roms loaded
-
-extern bool bForce60Hz;
-extern bool bBurnUseBlend;
-
-extern INT32 nBurnFPS;
-extern INT32 nBurnCPUSpeedAdjust;
-
-extern UINT32 nBurnDrvCount; // Count of game drivers
-extern UINT32 nBurnDrvActive; // Which game driver is selected
-extern UINT32 nBurnDrvSelect[8]; // Which games are selected (i.e. loaded but not necessarily active)
-
-extern INT32 nMaxPlayers;
-
-extern UINT8 *pBurnDraw; // Pointer to correctly sized bitmap
-extern INT32 nBurnPitch; // Pitch between each line
-extern INT32 nBurnBpp; // Bytes per pixel (2, 3, or 4)
-
-extern UINT8 nBurnLayer; // Can be used externally to select which layers to show
-extern UINT8 nSpriteEnable; // Can be used externally to select which Sprites to show
-
-extern INT32 nBurnSoundRate; // Samplerate of sound
-extern INT32 nBurnSoundLen; // Length in samples per frame
-extern INT16* pBurnSoundOut; // Pointer to output buffer
-
-extern INT32 nInterpolation; // Desired interpolation level for ADPCM/PCM sound
-extern INT32 nFMInterpolation; // Desired interpolation level for FM sound
-
-extern UINT32 *pBurnDrvPalette;
-
-#define PRINT_NORMAL (0)
-#define PRINT_UI (1)
-#define PRINT_IMPORTANT (2)
-#define PRINT_ERROR (3)
-#define PRINT_LEVEL1 (4)
-#define PRINT_LEVEL2 (5)
-#define PRINT_LEVEL3 (6)
-#define PRINT_LEVEL4 (7)
-#define PRINT_LEVEL5 (8)
-#define PRINT_LEVEL6 (9)
-#define PRINT_LEVEL7 (10)
-#define PRINT_LEVEL8 (11)
-#define PRINT_LEVEL9 (12)
-#define PRINT_LEVEL10 (13)
-
-#ifndef bprintf
-extern INT32 (__cdecl *bprintf) (INT32 nStatus, TCHAR* szFormat, ...);
-#endif
-
-INT32 BurnLibInit();
-INT32 BurnLibExit();
-
-INT32 BurnDrvInit();
-INT32 BurnDrvExit();
-
-INT32 BurnDrvCartridgeSetup(BurnCartrigeCommand nCommand);
-
-INT32 BurnDrvFrame();
-INT32 BurnDrvRedraw();
-INT32 BurnRecalcPal();
-INT32 BurnDrvGetPaletteEntries();
-
-INT32 BurnSetProgressRange(double dProgressRange);
-INT32 BurnUpdateProgress(double dProgressStep, const TCHAR* pszText, bool bAbs);
-
-void BurnLocalisationSetName(char *szName, TCHAR *szLongName);
-
-UINT16 BurnRandom(); // State-able Random Number Generator (0-32767)
-void BurnRandomScan(INT32 nAction); // Must be called in driver's DrvScan() if BurnRandom() is used
-void BurnRandomInit(); // Called automatically in BurnDrvInit() / Internal use only
-
-// ---------------------------------------------------------------------------
-// Retrieve driver information
-
-#define DRV_NAME (0)
-#define DRV_DATE (1)
-#define DRV_FULLNAME (2)
-//#define DRV_MEDIUMNAME (3)
-#define DRV_COMMENT (4)
-#define DRV_MANUFACTURER (5)
-#define DRV_SYSTEM (6)
-#define DRV_PARENT (7)
-#define DRV_BOARDROM (8)
-#define DRV_SAMPLENAME (9)
-
-#define DRV_NEXTNAME (1 << 8)
-#define DRV_ASCIIONLY (1 << 12)
-#define DRV_UNICODEONLY (1 << 13)
-
-TCHAR* BurnDrvGetText(UINT32 i);
-char* BurnDrvGetTextA(UINT32 i);
-
-INT32 BurnDrvGetZipName(char** pszName, UINT32 i);
-INT32 BurnDrvGetRomInfo(struct BurnRomInfo *pri, UINT32 i);
-INT32 BurnDrvGetRomName(char** pszName, UINT32 i, INT32 nAka);
-INT32 BurnDrvGetInputInfo(struct BurnInputInfo* pii, UINT32 i);
-INT32 BurnDrvGetDIPInfo(struct BurnDIPInfo* pdi, UINT32 i);
-INT32 BurnDrvGetVisibleSize(INT32* pnWidth, INT32* pnHeight);
-INT32 BurnDrvGetVisibleOffs(INT32* pnLeft, INT32* pnTop);
-INT32 BurnDrvGetFullSize(INT32* pnWidth, INT32* pnHeight);
-INT32 BurnDrvGetAspect(INT32* pnXAspect, INT32* pnYAspect);
-INT32 BurnDrvGetHardwareCode();
-INT32 BurnDrvGetFlags();
-bool BurnDrvIsWorking();
-INT32 BurnDrvGetMaxPlayers();
-INT32 BurnDrvSetVisibleSize(INT32 pnWidth, INT32 pnHeight);
-INT32 BurnDrvSetAspect(INT32 pnXAspect, INT32 pnYAspect);
-INT32 BurnDrvGetGenreFlags();
-INT32 BurnDrvGetFamilyFlags();
-INT32 BurnDrvGetSampleInfo(struct BurnSampleInfo *pri, UINT32 i);
-INT32 BurnDrvGetSampleName(char** pszName, UINT32 i, INT32 nAka);
-
-void Reinitialise();
-
-extern bool bDoIpsPatch;
-void IpsApplyPatches(UINT8* base, char* rom_name);
-
-// ---------------------------------------------------------------------------
-// Flags used with the Burndriver structure
-
-// Flags for the flags member
-#define BDF_GAME_NOT_WORKING (0)
-#define BDF_GAME_WORKING (1 << 0)
-#define BDF_ORIENTATION_FLIPPED (1 << 1)
-#define BDF_ORIENTATION_VERTICAL (1 << 2)
-#define BDF_BOARDROM (1 << 3)
-#define BDF_CLONE (1 << 4)
-#define BDF_BOOTLEG (1 << 5)
-#define BDF_PROTOTYPE (1 << 6)
-#define BDF_16BIT_ONLY (1 << 7)
-#define BDF_HACK (1 << 8)
-#define BDF_HOMEBREW (1 << 9)
-#define BDF_DEMO (1 << 10)
-#define BDF_HISCORE_SUPPORTED (1 << 11)
-
-// Flags for the hardware member
-// Format: 0xDDEEFFFF, where EE: Manufacturer, DD: Hardware platform, FFFF: Flags (used by driver)
-
-#define HARDWARE_PUBLIC_MASK (0xFFFF0000)
-
-#define HARDWARE_PREFIX_CARTRIDGE ((INT32)0x80000000)
-
-#define HARDWARE_PREFIX_MISC_PRE90S (0x00000000)
-#define HARDWARE_PREFIX_CAPCOM (0x01000000)
-#define HARDWARE_PREFIX_SEGA (0x02000000)
-#define HARDWARE_PREFIX_KONAMI (0x03000000)
-#define HARDWARE_PREFIX_TOAPLAN (0x04000000)
-#define HARDWARE_PREFIX_SNK (0x05000000)
-#define HARDWARE_PREFIX_CAVE (0x06000000)
-#define HARDWARE_PREFIX_CPS2 (0x07000000)
-#define HARDWARE_PREFIX_IGS_PGM (0x08000000)
-#define HARDWARE_PREFIX_CPS3 (0x09000000)
-#define HARDWARE_PREFIX_MISC_POST90S (0x0a000000)
-#define HARDWARE_PREFIX_TAITO (0x0b000000)
-#define HARDWARE_PREFIX_SEGA_MEGADRIVE (0x0c000000)
-#define HARDWARE_PREFIX_PSIKYO (0x0d000000)
-#define HARDWARE_PREFIX_KANEKO (0x0e000000)
-#define HARDWARE_PREFIX_PACMAN (0x0f000000)
-#define HARDWARE_PREFIX_GALAXIAN (0x10000000)
-#define HARDWARE_PREFIX_IREM (0x11000000)
-//#define HARDWARE_PREFIX_NINTENDO_SNES (0x12000000)
-#define HARDWARE_PREFIX_DATAEAST (0x13000000)
-#define HARDWARE_PREFIX_CAPCOM_MISC (0x14000000)
-#define HARDWARE_PREFIX_SETA (0x15000000)
-#define HARDWARE_PREFIX_TECHNOS (0x16000000)
-#define HARDWARE_PREFIX_PCENGINE (0x17000000)
-#define HARDWARE_PREFIX_SEGA_MASTER_SYSTEM (0x18000000)
-#define HARDWARE_PREFIX_SEGA_SG1000 (0x19000000)
-#define HARDWARE_PREFIX_COLECO (0x1A000000)
-#define HARDWARE_PREFIX_MIDWAY (0x1B000000)
-#define HARDWARE_PREFIX_SEGA_GAME_GEAR (0x12000000)
-#define HARDWARE_PREFIX_MSX (0x1C000000)
-
-#define HARDWARE_MISC_PRE90S (HARDWARE_PREFIX_MISC_PRE90S)
-#define HARDWARE_MISC_POST90S (HARDWARE_PREFIX_MISC_POST90S)
-
-#define HARDWARE_CAPCOM_CPS1 (HARDWARE_PREFIX_CAPCOM | 0x00010000)
-#define HARDWARE_CAPCOM_CPS1_QSOUND (HARDWARE_PREFIX_CAPCOM | 0x00020000)
-#define HARDWARE_CAPCOM_CPS1_GENERIC (HARDWARE_PREFIX_CAPCOM | 0x00030000)
-#define HARDWARE_CAPCOM_CPSCHANGER (HARDWARE_PREFIX_CAPCOM | 0x00040000)
-#define HARDWARE_CAPCOM_CPS2 (HARDWARE_PREFIX_CPS2 | 0x00010000)
-#define HARDWARE_CAPCOM_CPS2_SIMM (0x0002)
-
-#define HARDWARE_SEGA_SYSTEMX (HARDWARE_PREFIX_SEGA | 0x00010000)
-#define HARDWARE_SEGA_SYSTEMY (HARDWARE_PREFIX_SEGA | 0x00020000)
-#define HARDWARE_SEGA_SYSTEM16A (HARDWARE_PREFIX_SEGA | 0x00030000)
-#define HARDWARE_SEGA_SYSTEM16B (HARDWARE_PREFIX_SEGA | 0x00040000)
-#define HARDWARE_SEGA_SYSTEM16M (HARDWARE_PREFIX_SEGA | 0x00050000)
-#define HARDWARE_SEGA_SYSTEM18 (HARDWARE_PREFIX_SEGA | 0x00060000)
-#define HARDWARE_SEGA_HANGON (HARDWARE_PREFIX_SEGA | 0x00070000)
-#define HARDWARE_SEGA_OUTRUN (HARDWARE_PREFIX_SEGA | 0x00080000)
-#define HARDWARE_SEGA_SYSTEM1 (HARDWARE_PREFIX_SEGA | 0x00090000)
-#define HARDWARE_SEGA_MISC (HARDWARE_PREFIX_SEGA | 0x000a0000)
-
-#define HARDWARE_SEGA_PCB_MASK (0x0f)
-#define HARDWARE_SEGA_5358 (0x01)
-#define HARDWARE_SEGA_5358_SMALL (0x02)
-#define HARDWARE_SEGA_5704 (0x03)
-#define HARDWARE_SEGA_5521 (0x04)
-#define HARDWARE_SEGA_5797 (0x05)
-#define HARDWARE_SEGA_5704_PS2 (0x06)
-#define HARDWARE_SEGA_171_SHADOW (0x07)
-#define HARDWARE_SEGA_171_5874 (0x08)
-#define HARDWARE_SEGA_171_5987 (0x09)
-#define HARDWARE_SEGA_837_7525 (0x0a)
-
-#define HARDWARE_SEGA_FD1089A_ENC (0x0010)
-#define HARDWARE_SEGA_FD1089B_ENC (0x0020)
-#define HARDWARE_SEGA_MC8123_ENC (0x0040)
-#define HARDWARE_SEGA_FD1094_ENC (0x0080)
-#define HARDWARE_SEGA_SPRITE_LOAD32 (0x0100)
-#define HARDWARE_SEGA_YM2203 (0x0200)
-#define HARDWARE_SEGA_INVERT_TILES (0x0400)
-#define HARDWARE_SEGA_YM2413 (0x0800)
-#define HARDWARE_SEGA_FD1094_ENC_CPU2 (0x1000)
-#define HARDWARE_SEGA_ISGSM (0x2000)
-
-#define HARDWARE_KONAMI_68K_Z80 (HARDWARE_PREFIX_KONAMI | 0x00010000)
-#define HARDWARE_KONAMI_68K_ONLY (HARDWARE_PREFIX_KONAMI | 0x00020000)
-
-#define HARDWARE_TOAPLAN_RAIZING (HARDWARE_PREFIX_TOAPLAN | 0x00010000)
-#define HARDWARE_TOAPLAN_68K_Zx80 (HARDWARE_PREFIX_TOAPLAN | 0x00020000)
-#define HARDWARE_TOAPLAN_68K_ONLY (HARDWARE_PREFIX_TOAPLAN | 0x00030000)
-#define HARDWARE_TOAPLAN_MISC (HARDWARE_PREFIX_TOAPLAN | 0x00040000)
-
-#define HARDWARE_SNK_NEOGEO (HARDWARE_PREFIX_SNK | 0x00010000)
-#define HARDWARE_SNK_SWAPP (0x0001) // Swap code roms
-#define HARDWARE_SNK_SWAPV (0x0002) // Swap sound roms
-#define HARDWARE_SNK_SWAPC (0x0004) // Swap sprite roms
-#define HARDWARE_SNK_CMC42 (0x0008) // CMC42 encryption chip
-#define HARDWARE_SNK_CMC50 (0x0010) // CMC50 encryption chip
-#define HARDWARE_SNK_ALTERNATE_TEXT (0x0020) // KOF2000 text layer banks
-#define HARDWARE_SNK_SMA_PROTECTION (0x0040) // SMA protection
-#define HARDWARE_SNK_KOF2K3 (0x0080) // KOF2K3 hardware
-#define HARDWARE_SNK_ENCRYPTED_M1 (0x0100) // M1 encryption
-#define HARDWARE_SNK_P32 (0x0200) // SWAP32 P ROMs
-#define HARDWARE_SNK_SPRITE32 (0x0400)
-
-#define HARDWARE_SNK_CONTROLMASK (0xF000)
-#define HARDWARE_SNK_JOYSTICK (0x0000) // Uses joysticks
-#define HARDWARE_SNK_PADDLE (0x1000) // Uses joysticks or paddles
-#define HARDWARE_SNK_TRACKBALL (0x2000) // Uses a trackball
-#define HARDWARE_SNK_4_JOYSTICKS (0x3000) // Uses 4 joysticks
-#define HARDWARE_SNK_MAHJONG (0x4000) // Uses a special mahjong controller
-#define HARDWARE_SNK_GAMBLING (0x5000) // Uses gambling controls
-
-#define HARDWARE_SNK_MVS (HARDWARE_PREFIX_SNK | 0x00020000)
-#define HARDWARE_SNK_NEOCD (HARDWARE_PREFIX_SNK | 0x00030000)
-#define HARDWARE_SNK_DEDICATED_PCB (HARDWARE_PREFIX_SNK | 0x00040000)
-
-#define HARDWARE_CAVE_68K_ONLY (HARDWARE_PREFIX_CAVE)
-#define HARDWARE_CAVE_68K_Z80 (HARDWARE_PREFIX_CAVE | 0x0001)
-#define HARDWARE_CAVE_M6295 (0x0002)
-#define HARDWARE_CAVE_YM2151 (0x0004)
-
-#define HARDWARE_IGS_PGM (HARDWARE_PREFIX_IGS_PGM)
-#define HARDWARE_IGS_USE_ARM_CPU (0x0001)
-
-#define HARDWARE_CAPCOM_CPS3 (HARDWARE_PREFIX_CPS3)
-#define HARDWARE_CAPCOM_CPS3_NO_CD (0x0001)
-
-#define HARDWARE_TAITO_TAITOZ (HARDWARE_PREFIX_TAITO | 0x00010000)
-#define HARDWARE_TAITO_TAITOF2 (HARDWARE_PREFIX_TAITO | 0x00020000)
-#define HARDWARE_TAITO_MISC (HARDWARE_PREFIX_TAITO | 0x00030000)
-#define HARDWARE_TAITO_TAITOX (HARDWARE_PREFIX_TAITO | 0x00040000)
-#define HARDWARE_TAITO_TAITOB (HARDWARE_PREFIX_TAITO | 0x00050000)
-
-#define HARDWARE_IREM_M62 (HARDWARE_PREFIX_IREM | 0x00010000)
-#define HARDWARE_IREM_M63 (HARDWARE_PREFIX_IREM | 0x00020000)
-#define HARDWARE_IREM_M72 (HARDWARE_PREFIX_IREM | 0x00030000)
-#define HARDWARE_IREM_M90 (HARDWARE_PREFIX_IREM | 0x00040000)
-#define HARDWARE_IREM_M92 (HARDWARE_PREFIX_IREM | 0x00050000)
-#define HARDWARE_IREM_MISC (HARDWARE_PREFIX_IREM | 0x00060000)
-
-#define HARDWARE_SEGA_MASTER_SYSTEM (HARDWARE_PREFIX_SEGA_MASTER_SYSTEM)
-
-#define HARDWARE_SMS_MAPPER_CODIES (0x01)
-#define HARDWARE_SMS_MAPPER_MSX (0x02)
-#define HARDWARE_SMS_MAPPER_MSX_NEMESIS (0x03)
-#define HARDWARE_SMS_MAPPER_KOREA (0x04)
-#define HARDWARE_SMS_MAPPER_KOREA8K (0x05)
-#define HARDWARE_SMS_MAPPER_KOREA16K (0x06)
-#define HARDWARE_SMS_MAPPER_4PAK (0x07)
-#define HARDWARE_SMS_MAPPER_XIN1 (0x08)
-#define HARDWARE_SMS_MAPPER_NONE (0x0F)
-
-#define HARDWARE_SMS_GG_SMS_MODE (0x2000)
-#define HARDWARE_SMS_DISPLAY_PAL (0x4000)
-#define HARDWARE_SMS_JAPANESE (0x8000)
-
-#define HARDWARE_SEGA_GAME_GEAR (HARDWARE_PREFIX_SEGA_GAME_GEAR)
-
-#define HARDWARE_SEGA_MEGADRIVE (HARDWARE_PREFIX_SEGA_MEGADRIVE)
-
-#define HARDWARE_SEGA_SG1000 (HARDWARE_PREFIX_SEGA_SG1000)
-#define HARDWARE_SEGA_SG1000_RAMEXP (0x2000)
-#define HARDWARE_COLECO (HARDWARE_PREFIX_COLECO)
-
-#define HARDWARE_MSX (HARDWARE_PREFIX_MSX)
-#define HARDWARE_MSX_MAPPER_ASCII8 (0x01)
-#define HARDWARE_MSX_MAPPER_ASCII8_SRAM (0x01)
-#define HARDWARE_MSX_MAPPER_ASCII16 (0x02)
-#define HARDWARE_MSX_MAPPER_ASCII16_SRAM (0x02)
-#define HARDWARE_MSX_MAPPER_KONAMI (0x03)
-#define HARDWARE_MSX_MAPPER_KONAMI_SCC (0x04)
-#define HARDWARE_MSX_MAPPER_BASIC (0x05)
-#define HARDWARE_MSX_MAPPER_DOOLY (0x06)
-#define HARDWARE_MSX_MAPPER_RTYPE (0x07)
-#define HARDWARE_MSX_MAPPER_CROSS_BLAIM (0x08)
-
-#define HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_EEPROM (1)
-#define HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM (2)
-#define HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_FRAM (3)
-#define HARDWARE_SEGA_MEGADRIVE_PCB_CM_JCART (4)
-#define HARDWARE_SEGA_MEGADRIVE_PCB_CM_JCART_SEPROM (5)
-#define HARDWARE_SEGA_MEGADRIVE_PCB_CODE_MASTERS (6)
-#define HARDWARE_SEGA_MEGADRIVE_PCB_SSF2 (7)
-#define HARDWARE_SEGA_MEGADRIVE_PCB_GAME_KANDUME (8)
-#define HARDWARE_SEGA_MEGADRIVE_PCB_BEGGAR (9)
-#define HARDWARE_SEGA_MEGADRIVE_PCB_NBA_JAM (10)
-#define HARDWARE_SEGA_MEGADRIVE_PCB_NBA_JAM_TE (11)
-#define HARDWARE_SEGA_MEGADRIVE_PCB_NFL_QB_96 (12)
-#define HARDWARE_SEGA_MEGADRIVE_PCB_C_SLAM (13)
-#define HARDWARE_SEGA_MEGADRIVE_PCB_EA_NHLPA (14)
-#define HARDWARE_SEGA_MEGADRIVE_PCB_LIONK3 (15)
-#define HARDWARE_SEGA_MEGADRIVE_PCB_SDK99 (16)
-#define HARDWARE_SEGA_MEGADRIVE_PCB_SKINGKONG (17)
-#define HARDWARE_SEGA_MEGADRIVE_PCB_REDCL_EN (18)
-#define HARDWARE_SEGA_MEGADRIVE_PCB_RADICA (19)
-#define HARDWARE_SEGA_MEGADRIVE_PCB_KOF98 (20)
-#define HARDWARE_SEGA_MEGADRIVE_PCB_KOF99 (21)
-#define HARDWARE_SEGA_MEGADRIVE_PCB_SOULBLAD (22)
-#define HARDWARE_SEGA_MEGADRIVE_PCB_MJLOVER (23)
-#define HARDWARE_SEGA_MEGADRIVE_PCB_SQUIRRELK (24)
-#define HARDWARE_SEGA_MEGADRIVE_PCB_SMOUSE (25)
-#define HARDWARE_SEGA_MEGADRIVE_PCB_SMB (26)
-#define HARDWARE_SEGA_MEGADRIVE_PCB_SMB2 (27)
-#define HARDWARE_SEGA_MEGADRIVE_PCB_KAIJU (28)
-#define HARDWARE_SEGA_MEGADRIVE_PCB_CHINFIGHT3 (29)
-#define HARDWARE_SEGA_MEGADRIVE_PCB_LIONK2 (30)
-#define HARDWARE_SEGA_MEGADRIVE_PCB_BUGSLIFE (31)
-#define HARDWARE_SEGA_MEGADRIVE_PCB_ELFWOR (32)
-#define HARDWARE_SEGA_MEGADRIVE_PCB_ROCKMANX3 (33)
-#define HARDWARE_SEGA_MEGADRIVE_PCB_SBUBBOB (34)
-#define HARDWARE_SEGA_MEGADRIVE_PCB_REALTEC (35)
-#define HARDWARE_SEGA_MEGADRIVE_PCB_MC_SUP19IN1 (36)
-#define HARDWARE_SEGA_MEGADRIVE_PCB_MC_SUP15IN1 (37)
-#define HARDWARE_SEGA_MEGADRIVE_PCB_MC_12IN1 (38)
-#define HARDWARE_SEGA_MEGADRIVE_PCB_TOPFIGHTER (39)
-#define HARDWARE_SEGA_MEGADRIVE_PCB_POKEMON (40)
-#define HARDWARE_SEGA_MEGADRIVE_PCB_POKEMON2 (41)
-#define HARDWARE_SEGA_MEGADRIVE_PCB_MULAN (42)
-
-#define HARDWARE_SEGA_MEGADRIVE_SRAM_00400 (0x0100)
-#define HARDWARE_SEGA_MEGADRIVE_SRAM_00800 (0x0200)
-#define HARDWARE_SEGA_MEGADRIVE_SRAM_01000 (0x0400)
-#define HARDWARE_SEGA_MEGADRIVE_SRAM_04000 (0x0800)
-#define HARDWARE_SEGA_MEGADRIVE_SRAM_10000 (0x1000)
-#define HARDWARE_SEGA_MEGADRIVE_FRAM_00400 (0x2000)
-
-#define HARDWARE_PSIKYO (HARDWARE_PREFIX_PSIKYO)
-
-#define HARDWARE_KANEKO16 (HARDWARE_PREFIX_KANEKO | 0x10000)
-#define HARDWARE_KANEKO_MISC (HARDWARE_PREFIX_KANEKO | 0x20000)
-#define HARDWARE_KANEKO_SKNS (HARDWARE_PREFIX_KANEKO | 0x30000)
-
-#define HARDWARE_PACMAN (HARDWARE_PREFIX_PACMAN)
-
-#define HARDWARE_GALAXIAN (HARDWARE_PREFIX_GALAXIAN)
-
-//#define HARDWARE_NINTENDO_SNES (HARDWARE_PREFIX_NINTENDO_SNES)
-
-#define HARWARE_CAPCOM_MISC (HARDWARE_PREFIX_CAPCOM_MISC)
-
-#define HARDWARE_SETA1 (HARDWARE_PREFIX_SETA | 0x10000)
-#define HARDWARE_SETA2 (HARDWARE_PREFIX_SETA | 0x20000)
-#define HARDWARE_SETA_SSV (HARDWARE_PREFIX_SETA | 0x30000)
-
-#define HARDWARE_TECHNOS (HARDWARE_PREFIX_TECHNOS)
-
-#define HARDWARE_PCENGINE_PCENGINE (HARDWARE_PREFIX_PCENGINE | 0x00010000)
-#define HARDWARE_PCENGINE_TG16 (HARDWARE_PREFIX_PCENGINE | 0x00020000)
-#define HARDWARE_PCENGINE_SGX (HARDWARE_PREFIX_PCENGINE | 0x00030000)
-
-// flags for the genre member
-#define GBF_HORSHOOT (1 << 0)
-#define GBF_VERSHOOT (1 << 1)
-#define GBF_SCRFIGHT (1 << 2)
-#define GBF_VSFIGHT (1 << 3)
-#define GBF_BIOS (1 << 4)
-#define GBF_BREAKOUT (1 << 5)
-#define GBF_CASINO (1 << 6)
-#define GBF_BALLPADDLE (1 << 7)
-#define GBF_MAZE (1 << 8)
-#define GBF_MINIGAMES (1 << 9)
-#define GBF_PINBALL (1 << 10)
-#define GBF_PLATFORM (1 << 11)
-#define GBF_PUZZLE (1 << 12)
-#define GBF_QUIZ (1 << 13)
-#define GBF_SPORTSMISC (1 << 14)
-#define GBF_SPORTSFOOTBALL (1 << 15)
-#define GBF_MISC (1 << 16)
-#define GBF_MAHJONG (1 << 17)
-#define GBF_RACING (1 << 18)
-#define GBF_SHOOT (1 << 19)
-
-// flags for the family member
-#define FBF_MSLUG (1 << 0)
-#define FBF_SF (1 << 1)
-#define FBF_KOF (1 << 2)
-#define FBF_DSTLK (1 << 3)
-#define FBF_FATFURY (1 << 4)
-#define FBF_SAMSHO (1 << 5)
-#define FBF_19XX (1 << 6)
-#define FBF_SONICWI (1 << 7)
-#define FBF_PWRINST (1 << 8)
-
-#ifdef __cplusplus
- } // End of extern "C"
-#endif
-
diff --git a/jan/src/burn/burn_gun.cpp b/jan/src/burn/burn_gun.cpp
deleted file mode 100644
index be2859597..000000000
--- a/jan/src/burn/burn_gun.cpp
+++ /dev/null
@@ -1,209 +0,0 @@
-#include "burnint.h"
-#include "burn_gun.h"
-
-// Generic Light Gun support for FBA
-// written by Barry Harris (Treble Winner) based on the code in Kev's opwolf driver
-
-INT32 nBurnGunNumPlayers = 0;
-bool bBurnGunAutoHide = 1;
-static bool bBurnGunDrawTargets = true;
-
-static INT32 nBurnGunMaxX = 0;
-static INT32 nBurnGunMaxY = 0;
-
-INT32 BurnGunX[MAX_GUNS];
-INT32 BurnGunY[MAX_GUNS];
-
-#define a 0,
-#define b 1,
-
-UINT8 BurnGunTargetData[18][18] = {
- { a a a a a a a a b a a a a a a a a a },
- { a a a a a a b b b b b a a a a a a a },
- { a a a a b b a a b a a b b a a a a a },
- { a a a b a a a a b a a a a b a a a a },
- { a a b a a a a a b a a a a a b a a a },
- { a a b a a a a b b b a a a a b a a a },
- { a b a a a a b b b b b a a a a b a a },
- { a b a a a b b a a a a b a a a b a a },
- { b b b b b b b a a a b b b b b b b a },
- { a b a a a b b a a a a b b a a b a a },
- { a b a a a a b a b a b b a a a b a a },
- { a a b a a a a b b b b a a a b a a a },
- { a a b a a a a a b b a a a a b a a a },
- { a a a b a a a a b a a a a b a a a a },
- { a a a a b b a a b a a b b a a a a a },
- { a a a a a a b b b b b a a a a a a a },
- { a a a a a a a a b a a a a a a a a a },
- { a a a a a a a a a a a a a a a a a a },
-};
-#undef b
-#undef a
-
-#define GunTargetHideTime 60 * 4 /* 4 seconds @ 60 fps */
-static INT32 GunTargetTimer[MAX_GUNS] = {0, 0, 0, 0};
-static INT32 GunTargetLastX[MAX_GUNS] = {0, 0, 0, 0};
-static INT32 GunTargetLastY[MAX_GUNS] = {0, 0, 0, 0};
-
-static void GunTargetUpdate(INT32 player)
-{
- if (GunTargetLastX[player] != BurnGunReturnX(player) || GunTargetLastY[player] != BurnGunReturnY(player)) {
- GunTargetLastX[player] = BurnGunReturnX(player);
- GunTargetLastY[player] = BurnGunReturnY(player);
- GunTargetTimer[player] = nCurrentFrame;
- }
-}
-
-static UINT8 GunTargetShouldDraw(INT32 player)
-{
- return ((INT32)nCurrentFrame < GunTargetTimer[player] + GunTargetHideTime);
-}
-#undef GunTargetHideTime
-
-UINT8 BurnGunReturnX(INT32 num)
-{
-#if defined FBA_DEBUG
- if (!Debug_BurnGunInitted) bprintf(PRINT_ERROR, _T("BurnGunReturnX called without init\n"));
- if (num >= nBurnGunNumPlayers) bprintf(PRINT_ERROR, _T("BurnGunReturnX called with invalid player %x\n"), num);
-#endif
-
- if (num > MAX_GUNS - 1) return 0xff;
-
- float temp = (float)((BurnGunX[num] >> 8) + 8) / nBurnGunMaxX * 0xff;
- return (UINT8)temp;
-}
-
-UINT8 BurnGunReturnY(INT32 num)
-{
-#if defined FBA_DEBUG
- if (!Debug_BurnGunInitted) bprintf(PRINT_ERROR, _T("BurnGunReturnY called without init\n"));
- if (num >= nBurnGunNumPlayers) bprintf(PRINT_ERROR, _T("BurnGunReturnY called with invalid player %x\n"), num);
-#endif
-
- if (num > MAX_GUNS - 1) return 0xff;
-
- float temp = (float)((BurnGunY[num] >> 8) + 8) / nBurnGunMaxY * 0xff;
- return (UINT8)temp;
-}
-
-void BurnGunMakeInputs(INT32 num, INT16 x, INT16 y)
-{
-#if defined FBA_DEBUG
- if (!Debug_BurnGunInitted) bprintf(PRINT_ERROR, _T("BurnGunMakeInputs called without init\n"));
- if (num >= nBurnGunNumPlayers) bprintf(PRINT_ERROR, _T("BurnGunMakeInputs called with invalid player %x\n"), num);
-#endif
-
- if (num > MAX_GUNS - 1) return;
-
- const INT32 MinX = -8 * 0x100;
- const INT32 MinY = -8 * 0x100;
-
- if (y == 1 || y == -1 || x == 1 || x == -1) return; // prevent walking crosshair
-
- BurnGunX[num] += x;
- BurnGunY[num] += y;
-
- if (BurnGunX[num] < MinX) BurnGunX[num] = MinX;
- if (BurnGunX[num] > MinX + nBurnGunMaxX * 0x100) BurnGunX[num] = MinX + nBurnGunMaxX * 0x100;
- if (BurnGunY[num] < MinY) BurnGunY[num] = MinY;
- if (BurnGunY[num] > MinY + nBurnGunMaxY * 0x100) BurnGunY[num] = MinY + nBurnGunMaxY * 0x100;
-
- for (INT32 i = 0; i < nBurnGunNumPlayers; i++)
- GunTargetUpdate(i);
-}
-
-void BurnGunInit(INT32 nNumPlayers, bool bDrawTargets)
-{
- Debug_BurnGunInitted = 1;
-
- if (nNumPlayers > MAX_GUNS) nNumPlayers = MAX_GUNS;
- nBurnGunNumPlayers = nNumPlayers;
- bBurnGunDrawTargets = bDrawTargets;
-
- if (BurnDrvGetFlags() & BDF_ORIENTATION_VERTICAL) {
- BurnDrvGetVisibleSize(&nBurnGunMaxY, &nBurnGunMaxX);
- } else {
- BurnDrvGetVisibleSize(&nBurnGunMaxX, &nBurnGunMaxY);
- }
-
- for (INT32 i = 0; i < MAX_GUNS; i++) {
- BurnGunX[i] = ((nBurnGunMaxX / 2) - 7) << 8;
- BurnGunY[i] = ((nBurnGunMaxY / 2) - 8) << 8;
- }
-}
-
-void BurnGunExit()
-{
-#if defined FBA_DEBUG
- if (!Debug_BurnGunInitted) bprintf(PRINT_ERROR, _T("BurnGunExit called without init\n"));
-#endif
-
- nBurnGunNumPlayers = 0;
- bBurnGunDrawTargets = true;
-
- nBurnGunMaxX = 0;
- nBurnGunMaxY = 0;
-
- for (INT32 i = 0; i < MAX_GUNS; i++) {
- BurnGunX[i] = 0;
- BurnGunY[i] = 0;
- }
-
- Debug_BurnGunInitted = 0;
-}
-
-void BurnGunScan()
-{
-#if defined FBA_DEBUG
- if (!Debug_BurnGunInitted) bprintf(PRINT_ERROR, _T("BurnGunScan called without init\n"));
-#endif
-
- SCAN_VAR(BurnGunX);
- SCAN_VAR(BurnGunY);
-}
-
-void BurnGunDrawTarget(INT32 num, INT32 x, INT32 y)
-{
-#if defined FBA_DEBUG
- if (!Debug_BurnGunInitted) bprintf(PRINT_ERROR, _T("BurnGunDrawTarget called without init\n"));
- if (num >= nBurnGunNumPlayers) bprintf(PRINT_ERROR, _T("BurnGunDrawTarget called with invalid player %x\n"), num);
-#endif
-
- if (bBurnGunDrawTargets == false) return;
-
- if (num > MAX_GUNS - 1) return;
-
- if (bBurnGunAutoHide && !GunTargetShouldDraw(num)) return;
-
- UINT8* pTile = pBurnDraw + nBurnGunMaxX * nBurnBpp * (y - 1) + nBurnBpp * x;
-
- UINT32 nTargetCol = 0;
- if (num == 0) nTargetCol = BurnHighCol(0xfc, 0x12, 0xee, 0);
- if (num == 1) nTargetCol = BurnHighCol(0x1c, 0xfc, 0x1c, 0);
- if (num == 2) nTargetCol = BurnHighCol(0x15, 0x93, 0xfd, 0);
- if (num == 3) nTargetCol = BurnHighCol(0xf7, 0xfa, 0x0e, 0);
-
- for (INT32 y2 = 0; y2 < 17; y2++) {
-
- pTile += nBurnGunMaxX * nBurnBpp;
-
- if ((y + y2) < 0 || (y + y2) > nBurnGunMaxY - 1) {
- continue;
- }
-
- for (INT32 x2 = 0; x2 < 17; x2++) {
-
- if ((x + x2) < 0 || (x + x2) > nBurnGunMaxX - 1) {
- continue;
- }
-
- if (BurnGunTargetData[y2][x2]) {
- if (nBurnBpp == 2) {
- ((UINT16*)pTile)[x2] = (UINT16)nTargetCol;
- } else {
- ((UINT32*)pTile)[x2] = nTargetCol;
- }
- }
- }
- }
-}
diff --git a/jan/src/burn/burn_gun.h b/jan/src/burn/burn_gun.h
deleted file mode 100644
index bd3bf66da..000000000
--- a/jan/src/burn/burn_gun.h
+++ /dev/null
@@ -1,16 +0,0 @@
-#define MAX_GUNS 4
-
-extern INT32 nBurnGunNumPlayers;
-extern bool bBurnGunAutoHide;
-
-extern INT32 BurnGunX[MAX_GUNS];
-extern INT32 BurnGunY[MAX_GUNS];
-
-UINT8 BurnGunReturnX(INT32 num);
-UINT8 BurnGunReturnY(INT32 num);
-
-extern void BurnGunInit(INT32 nNumPlayers, bool bDrawTargets);
-void BurnGunExit();
-void BurnGunScan();
-extern void BurnGunDrawTarget(INT32 num, INT32 x, INT32 y);
-extern void BurnGunMakeInputs(INT32 num, INT16 x, INT16 y);
diff --git a/jan/src/burn/burn_led.cpp b/jan/src/burn/burn_led.cpp
deleted file mode 100644
index 3f9be8d95..000000000
--- a/jan/src/burn/burn_led.cpp
+++ /dev/null
@@ -1,264 +0,0 @@
-#include "burnint.h"
-#include "burn_led.h"
-
-#define MAX_LED 8
-
-static INT32 led_status[MAX_LED];
-
-static INT32 led_count;
-static INT32 led_alpha_level;
-static INT32 led_alpha_level2;
-static INT32 led_color;
-static INT32 led_size;
-static INT32 led_position0;
-static INT32 led_position;
-static INT32 led_xpos;
-static INT32 led_ypos;
-static INT32 led_xadv;
-static INT32 led_yadv;
-
-static INT32 nScreenWidth, nScreenHeight;
-static INT32 screen_flipped;
-static INT32 flipscreen = -1;
-
-static inline UINT32 alpha_blend32(UINT32 d)
-{
- return (((((led_color & 0xff00ff) * led_alpha_level) + ((d & 0xff00ff) * led_alpha_level2)) & 0xff00ff00) |
- ((((led_color & 0x00ff00) * led_alpha_level) + ((d & 0x00ff00) * led_alpha_level2)) & 0x00ff0000)) >> 8;
-}
-
-static void set_led_draw_position()
-{
- led_position = led_position0;
-
- if (screen_flipped ^ flipscreen) {
- switch (led_position & 3) {
- case LED_POSITION_TOP_LEFT: led_position = LED_POSITION_BOTTOM_RIGHT; break;
- case LED_POSITION_TOP_RIGHT: led_position = LED_POSITION_BOTTOM_LEFT; break;
- case LED_POSITION_BOTTOM_LEFT: led_position = LED_POSITION_TOP_RIGHT; break;
- case LED_POSITION_BOTTOM_RIGHT: led_position = LED_POSITION_TOP_LEFT; break;
- }
- }
-
- if (BurnDrvGetFlags() & BDF_ORIENTATION_VERTICAL) {
- BurnDrvGetVisibleSize(&nScreenHeight, &nScreenWidth);
-
- led_xadv = 0;
- led_yadv = led_size + 1;
-
- switch (led_position & 3)
- {
- case LED_POSITION_TOP_LEFT:
- led_xpos = (nScreenWidth - 1) - led_size;
- led_ypos = 1;
- break;
-
- case LED_POSITION_BOTTOM_RIGHT:
- led_xpos = 1;
- led_ypos = (nScreenHeight - 1) - (led_yadv * led_count);
- break;
-
- case LED_POSITION_BOTTOM_LEFT:
- led_xpos = 1;
- led_ypos = 1;
- break;
-
- case LED_POSITION_TOP_RIGHT:
- default:
- led_xpos = (nScreenWidth - 1) - led_size;
- led_ypos = (nScreenHeight - 1) - (led_yadv * led_count);
- break;
- }
- } else {
- BurnDrvGetVisibleSize(&nScreenWidth, &nScreenHeight);
-
- led_xadv = led_size + 1;
- led_yadv = 0;
-
- switch (led_position & 3)
- {
- case LED_POSITION_BOTTOM_LEFT:
- led_xpos = 1;
- led_ypos = (nScreenHeight - 1) - led_size;
-// led_ypos;
- break;
-
- case LED_POSITION_TOP_RIGHT:
- led_xpos = (nScreenWidth - 1) - (led_xadv * led_count);
- led_ypos = 1;
- break;
-
- case LED_POSITION_TOP_LEFT:
- led_xpos = 1;
- led_ypos = 1;
- break;
-
- case LED_POSITION_BOTTOM_RIGHT:
- default:
- led_xpos = (nScreenWidth - 1) - (led_xadv * led_count);
- led_ypos = (nScreenHeight - 1) - led_size;
- break;
- }
- }
-}
-
-void BurnLEDSetFlipscreen(INT32 flip)
-{
-#if defined FBA_DEBUG
- if (!Debug_BurnLedInitted) bprintf(PRINT_ERROR, _T("BurnLEDSetFlipscreen called without init\n"));
-#endif
-
- flip = flip ? 1 : 0;
-
- if (flipscreen != flip) {
- flipscreen = flip;
- set_led_draw_position();
- }
-}
-
-void BurnLEDReset()
-{
-#if defined FBA_DEBUG
- if (!Debug_BurnLedInitted) bprintf(PRINT_ERROR, _T("BurnLEDReset called without init\n"));
-#endif
-
- memset (led_status, 0, MAX_LED * sizeof(INT32));
-
- BurnLEDSetFlipscreen(0);
-}
-
-void BurnLEDInit(INT32 num, INT32 position, INT32 size, INT32 color, INT32 transparency)
-{
- Debug_BurnLedInitted = 1;
-
- if (num >= MAX_LED) num = MAX_LED - 1;
-
- led_count = num;
- led_color = color;
- led_size = size;
- led_position0 = position;
-
- led_alpha_level = (255 * transparency) / 100;
- led_alpha_level2 = 256 - led_alpha_level;
-
- screen_flipped = (BurnDrvGetFlags() & BDF_ORIENTATION_FLIPPED) ? 1 : 0;
-
- BurnLEDReset();
-}
-
-void BurnLEDSetStatus(INT32 led, UINT32 status)
-{
-#if defined FBA_DEBUG
- if (!Debug_BurnLedInitted) bprintf(PRINT_ERROR, _T("BurnLEDSetStatus called without init\n"));
- if (led >= led_count) bprintf(PRINT_ERROR, _T("BurnLEDSetStatus called with invalid led %x\n"), led);
-#endif
-
- if (led >= led_count) return;
-
- if (screen_flipped ^ flipscreen) {
- led = (led_count - 1) - led;
- }
-
- led_status[led] = status ? 1 : 0;
-}
-
-void BurnLEDExit()
-{
-#if defined FBA_DEBUG
- if (!Debug_BurnLedInitted) bprintf(PRINT_ERROR, _T("BurnLEDExit called without init\n"));
-#endif
-
- BurnLEDReset();
-
- led_count = 0;
-
- led_alpha_level = 0;
- led_alpha_level2 = 0;
- led_color = 0;
- led_size = 0;
- led_position = 0;
- led_position0 = 0;
-
- led_xpos = 0;
- led_ypos = 0;
-
- screen_flipped = 0;
- nScreenWidth = 0;
- nScreenHeight = 0;
-
- flipscreen = -1;
-
- Debug_BurnLedInitted = 0;
-}
-
-void BurnLEDRender()
-{
-#if defined FBA_DEBUG
- if (!Debug_BurnLedInitted) bprintf(PRINT_ERROR, _T("BurnLEDRender called without init\n"));
-#endif
-
- INT32 xpos = led_xpos;
- INT32 ypos = led_ypos;
- int color = BurnHighCol((led_color >> 16) & 0xff, (led_color >> 8) & 0xff, (led_color >> 0) & 0xff, 0);
-
- for (INT32 i = 0; i < led_count; i++)
- {
- if (xpos < 0 || xpos > (nScreenWidth - led_size)) break;
-
- if (led_status[i])
- {
- for (INT32 y = 0; y < led_size; y++)
- {
- UINT8 *ptr = pBurnDraw + (((ypos + y) * nScreenWidth) + xpos) * nBurnBpp;
-
- for (INT32 x = 0; x < led_size; x++)
- {
- if (nBurnBpp >= 4)
- {
- *((UINT32*)ptr) = alpha_blend32(*((UINT32*)ptr));
- }
- else if (nBurnBpp == 3)
- {
- UINT32 t = alpha_blend32((ptr[2] << 16) | (ptr[1] << 8) | ptr[0]);
-
- ptr[2] = t >> 16;
- ptr[1] = t >> 8;
- ptr[0] = t >> 0;
- }
- else if (nBurnBpp == 2) // alpha blend not supported for 16-bit
- {
- *((UINT16*)ptr) = color;
- }
-
- ptr += nBurnBpp;
- }
- }
- }
-
- xpos += led_xadv;
- ypos += led_yadv;
- }
-}
-
-INT32 BurnLEDScan(INT32 nAction, INT32 *pnMin)
-{
-#if defined FBA_DEBUG
- if (!Debug_BurnLedInitted) bprintf(PRINT_ERROR, _T("BurnLEDScan called without init\n"));
-#endif
-
- struct BurnArea ba;
-
- if (pnMin != NULL) {
- *pnMin = 0x029707;
- }
-
- if (nAction & ACB_DRIVER_DATA) {
- ba.Data = &led_status;
- ba.nLen = led_count * sizeof(INT32);
- ba.nAddress = 0;
- ba.szName = "Led status";
- BurnAcb(&ba);
- }
-
- return 0;
-}
diff --git a/jan/src/burn/burn_led.h b/jan/src/burn/burn_led.h
deleted file mode 100644
index 166be06c4..000000000
--- a/jan/src/burn/burn_led.h
+++ /dev/null
@@ -1,30 +0,0 @@
-
-#define LED_COLOR_RED 0xff0000
-#define LED_COLOR_GREEN 0x00ff00
-#define LED_COLOR_BLUE 0x0000ff
-#define LED_COLOR_WHITE 0xffffff
-#define LED_COLOR_YELLOW 0xffff00
-
-#define LED_SIZE_2x2 2
-#define LED_SIZE_3x3 3
-#define LED_SIZE_4x4 4
-#define LED_SIZE_5x5 5
-#define LED_SIZE_6x6 6
-#define LED_SIZE_7x7 7
-#define LED_SIZE_8x8 8
-
-#define LED_POSITION_TOP_LEFT 0
-#define LED_POSITION_TOP_RIGHT 1
-#define LED_POSITION_BOTTOM_LEFT 2
-#define LED_POSITION_BOTTOM_RIGHT 3
-
-// transparency is a percentage 0 - 100
-void BurnLEDInit(INT32 num, INT32 position, INT32 size, INT32 color, INT32 transparency);
-
-void BurnLEDReset();
-void BurnLEDSetStatus(INT32 led, UINT32 status);
-void BurnLEDSetFlipscreen(INT32 flip);
-void BurnLEDRender();
-void BurnLEDExit();
-
-INT32 BurnLEDScan(INT32 nAction, INT32 *pnMin);
diff --git a/jan/src/burn/burn_memory.cpp b/jan/src/burn/burn_memory.cpp
deleted file mode 100644
index 1d4402959..000000000
--- a/jan/src/burn/burn_memory.cpp
+++ /dev/null
@@ -1,77 +0,0 @@
-// FB Alpha memory management module
-
-// The purpose of this module is to offer replacement functions for standard C/C++ ones
-// that allocate and free memory. This should help deal with the problem of memory
-// leaks and non-null pointers on game exit.
-
-#include "burnint.h"
-
-#define MAX_MEM_PTR 0x400 // more than 1024 malloc calls should be insane...
-
-static UINT8 *memptr[MAX_MEM_PTR]; // pointer to allocated memory
-
-// this should be called early on... BurnDrvInit?
-
-void BurnInitMemoryManager()
-{
- memset (memptr, 0, MAX_MEM_PTR * sizeof(UINT8 **));
-}
-
-// should we pass the pointer as a variable here so that we can save a pointer to it
-// and then ensure it is NULL'd in BurnFree or BurnExitMemoryManager?
-
-// call instead of 'malloc'
-UINT8 *BurnMalloc(INT32 size)
-{
- for (INT32 i = 0; i < MAX_MEM_PTR; i++)
- {
- if (memptr[i] == NULL) {
- memptr[i] = (UINT8*)malloc(size);
-
- if (memptr[i] == NULL) {
- bprintf (0, _T("BurnMalloc failed to allocate %d bytes of memory!\n"), size);
- return NULL;
- }
-
- memset (memptr[i], 0, size); // set contents to 0
-
- return memptr[i];
- }
- }
-
- bprintf (0, _T("BurnMalloc called too many times!\n"));
-
- return NULL; // Freak out!
-}
-
-// call instead of "free"
-void _BurnFree(void *ptr)
-{
- UINT8 *mptr = (UINT8*)ptr;
-
- for (INT32 i = 0; i < MAX_MEM_PTR; i++)
- {
- if (memptr[i] == mptr) {
- free (memptr[i]);
- memptr[i] = NULL;
-
- break;
- }
- }
-}
-
-// call in BurnDrvExit?
-
-void BurnExitMemoryManager()
-{
- for (INT32 i = 0; i < MAX_MEM_PTR; i++)
- {
- if (memptr[i] != NULL) {
-#if defined FBA_DEBUG
- bprintf(PRINT_ERROR, _T("BurnExitMemoryManager had to free mem pointer %i\n"), i);
-#endif
- free (memptr[i]);
- memptr[i] = NULL;
- }
- }
-}
diff --git a/jan/src/burn/burn_pal.cpp b/jan/src/burn/burn_pal.cpp
deleted file mode 100644
index 2d36cb0e5..000000000
--- a/jan/src/burn/burn_pal.cpp
+++ /dev/null
@@ -1,303 +0,0 @@
-#include "burnint.h"
-#include "burn_pal.h"
-
-UINT32 *BurnPalette = NULL;
-UINT8 *BurnPalRAM = NULL;
-
-//-------------------------------------------------------------------------------------
-
-static inline UINT32 PaletteWrite4Bit(INT32 offset, INT32 rshift, INT32 gshift, INT32 bshift)
-{
- if (BurnPalRAM == NULL) return 0;
-
- UINT16 *pal = (UINT16*)BurnPalRAM;
- UINT16 p = BURN_ENDIAN_SWAP_INT16(pal[offset]);
-
- UINT8 r = (p >> rshift) & 0xf;
- UINT8 g = (p >> gshift) & 0xf;
- UINT8 b = (p >> bshift) & 0xf;
-
- return BurnHighCol(r+(r*16), b+(b*16), g+(g*16), 0);
-}
-
-static inline void PaletteUpdate4Bit(INT32 rshift, INT32 gshift, INT32 bshift)
-{
- if (BurnPalette == NULL) return;
-
- for (INT32 i = 0; i < BurnDrvGetPaletteEntries(); i++)
- {
- BurnPalette[i] = PaletteWrite4Bit(i, rshift, gshift, bshift);
- }
-}
-
-void BurnPaletteUpdate_xxxxBBBBGGGGRRRR()
-{
- PaletteUpdate4Bit(0, 4, 8);
-}
-
-void BurnPaletteUpdate_xxxxBBBBRRRRGGGG()
-{
- PaletteUpdate4Bit(4, 0, 8);
-}
-
-void BurnPaletteUpdate_xxxxRRRRGGGGBBBB()
-{
- PaletteUpdate4Bit(8, 4, 0);
-}
-
-void BurnPaletteWrite_xxxxBBBBGGGGRRRR(INT32 offset)
-{
- offset /= 2;
-
- BurnPalette[offset] = PaletteWrite4Bit(offset, 0, 4, 8);
-}
-
-void BurnPaletteWrite_xxxxBBBBRRRRGGGG(INT32 offset)
-{
- offset /= 2;
-
- BurnPalette[offset] = PaletteWrite4Bit(offset, 4, 0, 8);
-}
-
-void BurnPaletteWrite_xxxxRRRRGGGGBBBB(INT32 offset)
-{
- offset /= 2;
-
- BurnPalette[offset] = PaletteWrite4Bit(offset, 8, 4, 0);
-}
-
-//-------------------------------------------------------------------------------------
-
-static inline UINT32 PaletteWrite5Bit(INT32 offset, INT32 rshift, INT32 gshift, INT32 bshift)
-{
- if (BurnPalRAM == NULL) return 0;
-
- UINT16 *pal = (UINT16*)BurnPalRAM;
- UINT16 p = BURN_ENDIAN_SWAP_INT16(pal[offset]);
-
- UINT8 r = (p >> rshift) & 0x1f;
- UINT8 g = (p >> gshift) & 0x1f;
- UINT8 b = (p >> bshift) & 0x1f;
-
- r = (r * 8) + (r / 4);
- g = (g * 8) + (g / 4);
- b = (b * 8) + (b / 4);
-
- return BurnHighCol(r, g, b, 0);
-}
-
-static inline void PaletteUpdate5Bit(INT32 rshift, INT32 gshift, INT32 bshift)
-{
- if (BurnPalette == NULL) return;
-
- for (INT32 i = 0; i < BurnDrvGetPaletteEntries(); i++)
- {
- BurnPalette[i] = PaletteWrite5Bit(i, rshift, gshift, bshift);
- }
-}
-
-void BurnPaletteUpdate_xRRRRRGGGGGBBBBB()
-{
- PaletteUpdate5Bit(10, 5, 0);
-}
-
-void BurnPaletteUpdate_xBBBBBGGGGGRRRRR()
-{
- PaletteUpdate5Bit(0, 5, 10);
-}
-
-void BurnPaletteUpdate_xGGGGGBBBBBRRRRR()
-{
- PaletteUpdate5Bit(0, 10, 5);
-}
-
-void BurnPaletteUpdate_xGGGGGRRRRRBBBBB()
-{
- PaletteUpdate5Bit(5, 10, 0);
-}
-
-void BurnPaletteUpdate_GGGGGRRRRRBBBBBx()
-{
- PaletteUpdate5Bit(6, 11, 1);
-}
-
-void BurnPaletteWrite_xRRRRRGGGGGBBBBB(INT32 offset)
-{
- offset /= 2;
-
- if (BurnPalette) {
- BurnPalette[offset] = PaletteWrite5Bit(offset, 10, 5, 0);
- }
-}
-
-void BurnPaletteWrite_xBBBBBGGGGGRRRRR(INT32 offset)
-{
- offset /= 2;
-
- if (BurnPalette) {
- BurnPalette[offset] = PaletteWrite5Bit(offset, 0, 5, 10);
- }
-}
-
-void BurnPaletteWrite_xGGGGGBBBBBRRRRR(INT32 offset)
-{
- offset /= 2;
-
- if (BurnPalette) {
- BurnPalette[offset] = PaletteWrite5Bit(offset, 0, 10, 5);
- }
-}
-
-void BurnPaletteWrite_xGGGGGRRRRRBBBBB(INT32 offset)
-{
- offset /= 2;
-
- if (BurnPalette) {
- BurnPalette[offset] = PaletteWrite5Bit(offset, 5, 10, 0);
- }
-}
-
-void BurnPaletteWrite_GGGGGRRRRRBBBBBx(INT32 offset)
-{
- offset /= 2;
-
- if (BurnPalette) {
- BurnPalette[offset] = PaletteWrite5Bit(offset, 6, 11, 1);
- }
-}
-
-//-------------------------------------------------------------------------------------
-
-void BurnPaletteUpdate_RRRRGGGGBBBBRGBx()
-{
- if (BurnPalRAM == NULL || BurnPalette == NULL) return;
-
- UINT16 *pal = (UINT16*)BurnPalRAM;
-
- for (INT32 i = 0; i < BurnDrvGetPaletteEntries(); i++)
- {
- UINT16 p = BURN_ENDIAN_SWAP_INT16(pal[i]);
-
- UINT8 r = ((p >> 11) & 0x1e) | ((p >> 3) & 0x01);
- UINT8 g = ((p >> 7) & 0x1e) | ((p >> 2) & 0x01);
- UINT8 b = ((p >> 3) & 0x1e) | ((p >> 1) & 0x01);
-
- r = (r * 8) + (r / 4);
- g = (g * 8) + (g / 4);
- b = (b * 8) + (b / 4);
-
- BurnPalette[i] = BurnHighCol(r, g, b, 0);
- }
-}
-
-void BurnPaletteWrite_RRRRGGGGBBBBRGBx(INT32 offset)
-{
- if (BurnPalRAM == NULL || BurnPalette == NULL) return;
-
- offset /= 2;
-
- UINT16 *pal = (UINT16*)BurnPalRAM;
- UINT16 p = BURN_ENDIAN_SWAP_INT16(pal[offset]);
-
- UINT8 r = ((p >> 11) & 0x1e) | ((p >> 3) & 0x01);
- UINT8 g = ((p >> 7) & 0x1e) | ((p >> 2) & 0x01);
- UINT8 b = ((p >> 3) & 0x1e) | ((p >> 1) & 0x01);
-
- r = (r * 8) + (r / 4);
- g = (g * 8) + (g / 4);
- b = (b * 8) + (b / 4);
-
- BurnPalette[offset] = BurnHighCol(r, g, b, 0);
-}
-
-//-------------------------------------------------------------------------------------
-
-static inline void palette_update_8bit(INT32 r_mask, INT32 g_mask, INT32 b_mask, INT32 r_shift, INT32 g_shift, INT32 b_shift, INT32 invert)
-{
- if (BurnPalRAM == NULL || BurnPalette == NULL) return;
-
- r_mask = (1 << r_mask) - 1;
- g_mask = (1 << g_mask) - 1;
- b_mask = (1 << b_mask) - 1;
- invert = (invert) ? 0xff : 0;
-
- for (INT32 i = 0; i < BurnDrvGetPaletteEntries(); i++)
- {
- UINT8 p = BurnPalRAM[i] ^ invert;
- UINT8 r = (p >> r_shift) & r_mask;
- UINT8 g = (p >> g_shift) & g_mask;
- UINT8 b = (p >> b_shift) & b_mask;
-
- if (r_mask == 3) r = pal2bit(r);
- if (r_mask == 7) r = pal3bit(r);
-
- if (g_mask == 3) g = pal2bit(r);
- if (g_mask == 7) g = pal3bit(r);
-
- if (b_mask == 3) b = pal2bit(r);
- if (b_mask == 7) b = pal3bit(r);
-
- BurnPalette[i] = BurnHighCol(r,g,b,0);
- }
-}
-
-void BurnPaletteUpdate_BBGGGRRR()
-{
- palette_update_8bit(3, 3, 2, 0, 3, 6, 0);
-}
-
-void BurnPaletteUpdate_RRRGGGBB()
-{
- palette_update_8bit(3, 3, 2, 5, 2, 0, 0);
-}
-
-void BurnPaletteUpdate_BBGGGRRR_inverted()
-{
- palette_update_8bit(3, 3, 2, 0, 3, 6, 1);
-}
-
-void BurnPaletteUpdate_RRRGGGBB_inverted()
-{
- palette_update_8bit(3, 3, 2, 5, 2, 0, 1);
-}
-
-static inline void palette_write_8bit(INT32 offset, INT32 r_shift, INT32 g_shift, INT32 b_shift, INT32 r_mask, INT32 g_mask, INT32 b_mask, INT32 invert)
-{
- if (BurnPalRAM == NULL || BurnPalette == NULL) return;
-
- UINT8 p = BurnPalRAM[offset] ^ invert;
- UINT8 r = (p >> r_shift) & r_mask;
- UINT8 g = (p >> g_shift) & g_mask;
- UINT8 b = (p >> b_shift) & b_mask;
-
- if (r_mask == 3) r = pal2bit(r);
- if (r_mask == 7) r = pal3bit(r);
-
- if (g_mask == 3) g = pal2bit(r);
- if (g_mask == 7) g = pal3bit(r);
-
- if (b_mask == 3) b = pal2bit(r);
- if (b_mask == 7) b = pal3bit(r);
-
- BurnPalette[offset] = BurnHighCol(r,g,b,0);
-}
-
-void BurnPaletteWrite_BBGGGRRR(INT32 offset)
-{
- palette_write_8bit(offset, 3, 3, 2, 0, 3, 6, 0);
-}
-
-void BurnPaletteWrite_RRRGGGBB(INT32 offset)
-{
- palette_write_8bit(offset, 3, 3, 2, 5, 2, 0, 0);
-}
-
-void BurnPaletteWrite_BBGGGRRR_inverted(INT32 offset)
-{
- palette_write_8bit(offset, 3, 3, 2, 0, 3, 6, 1);
-}
-
-void BurnPaletteWrite_RRRGGGBB_inverted(INT32 offset)
-{
- palette_write_8bit(offset, 3, 3, 2, 5, 2, 0, 1);
-}
diff --git a/jan/src/burn/burn_pal.h b/jan/src/burn/burn_pal.h
deleted file mode 100644
index e0d58d471..000000000
--- a/jan/src/burn/burn_pal.h
+++ /dev/null
@@ -1,47 +0,0 @@
-// Common RAM-based palette decoding functions
-
-// point these to destination palette and to palette ram
-
-extern UINT32 *BurnPalette;
-extern UINT8 *BurnPalRAM;
-
-// palette update functions are called to recalculate the entire palette
-
-void BurnPaletteUpdate_xxxxBBBBRRRRGGGG();
-void BurnPaletteUpdate_xxxxBBBBGGGGRRRR();
-void BurnPaletteUpdate_xxxxRRRRGGGGBBBB();
-void BurnPaletteUpdate_xRRRRRGGGGGBBBBB();
-void BurnPaletteUpdate_xBBBBBGGGGGRRRRR();
-void BurnPaletteUpdate_xGGGGGBBBBBRRRRR();
-void BurnPaletteUpdate_xGGGGGRRRRRBBBBB();
-void BurnPaletteUpdate_GGGGGRRRRRBBBBBx();
-void BurnPaletteUpdate_RRRRGGGGBBBBRGBx();
-void BurnPaletteUpdate_BBGGGRRR();
-void BurnPaletteUpdate_RRRGGGBB();
-void BurnPaletteUpdate_BBGGGRRR_inverted();
-void BurnPaletteUpdate_RRRGGGBB_inverted();
-
-// palette write functions called to write single palette entry
-// note that the offset should not be shifted, only masked for palette size
-
-void BurnPaletteWrite_xxxxBBBBRRRRGGGG(INT32 offset);
-void BurnPaletteWrite_xxxxBBBBGGGGRRRR(INT32 offset);
-void BurnPaletteWrite_xxxxRRRRGGGGBBBB(INT32 offset);
-void BurnPaletteWrite_xRRRRRGGGGGBBBBB(INT32 offset);
-void BurnPaletteWrite_xBBBBBGGGGGRRRRR(INT32 offset);
-void BurnPaletteWrite_xGGGGGBBBBBRRRRR(INT32 offset);
-void BurnPaletteWrite_xGGGGGRRRRRBBBBB(INT32 offset);
-void BurnPaletteWrite_GGGGGRRRRRBBBBBx(INT32 offset);
-void BurnPaletteWrite_RRRRGGGGBBBBRGBx(INT32 offset);
-void BurnPaletteWrite_BBGGGRRR(INT32 offset);
-void BurnPaletteWrite_RRRGGGBB(INT32 offset);
-void BurnPaletteWrite_BBGGGRRR_inverted(INT32 offset);
-void BurnPaletteWrite_RRRGGGBB_inverted(INT32 offset);
-
-// palette expansion macros
-
-#define pal5bit(x) ((((x) & 0x1f)<<3)|(((x) & 0x1f) >> 2))
-#define pal4bit(x) ((((x) & 0x0f)<<4)|(((x) & 0x0f) << 4))
-#define pal3bit(x) ((((x) & 0x07)<<5)|(((x) & 0x07) << 2)|(((x) & 0x07) >> 1))
-#define pal2bit(x) ((((x) & 0x03)<<6)|(((x) & 0x03) << 4)|(((x) & 0x03) << 2) | ((x) & 0x03))
-#define pal1bit(x) (((x) & 1) ? 0xff : 0)
diff --git a/jan/src/burn/burn_shift.cpp b/jan/src/burn/burn_shift.cpp
deleted file mode 100644
index e98c1f6d4..000000000
--- a/jan/src/burn/burn_shift.cpp
+++ /dev/null
@@ -1,402 +0,0 @@
-// FBAlpha Toggable Shifter and Gear Display
-//
-// For how-to, search BurnShift in konami/d_chqflag.cpp :)
-//
-
-#include "burnint.h"
-#include "burn_shift.h"
-
-INT32 BurnShiftEnabled = 1; // enable/disable rendering
-INT32 bBurnShiftStatus; // current status of shifter
-
-static INT32 prev_shift;
-
-static INT32 shift_alpha_level;
-static INT32 shift_alpha_level2;
-static INT32 shift_alpha_level_grey;
-static INT32 shift_alpha_level2_grey;
-static INT32 shift_color;
-static INT32 shift_size;
-static INT32 shift_position0;
-static INT32 shift_position;
-static INT32 shift_xpos;
-static INT32 shift_ypos;
-static INT32 shift_xadv;
-static INT32 shift_yadv;
-
-static INT32 nScreenWidth, nScreenHeight;
-static INT32 screen_flipped;
-static INT32 screen_vertical;
-static INT32 flipscreen = -1;
-static INT32 colortab[10] = { 0, 0, 0x42f4f4, 0xffffff, 0x0000ff, 0x9200f4, 0xf4f400, 0xf45900, 0x00d8f4, 0 };
-static INT32 lhtimer = 0; // color-cycle effect counter
-
-#define a 0,
-#define b 1,
-#define c 2,
-#define d 3,
-UINT8 BurnGearRender[8*8];
-#if 0
-// small font
-UINT8 BurnGearL[8*8] = {
- a a a a a a a a
- a a a a a a a a
- a a a b c a a a
- a a a b c a a a
- a a a b c c c a
- a a a b b b c a
- a a a c c c c a
- a a a a a a a a };
-
-UINT8 BurnGearH[8*8] = {
- a a a a a a a a
- a a a a a a a a
- a a a b c b c a
- a a a b b b c a
- a a a b c b c a
- a a a c c c c a
- a a a a a a a a
- a a a a a a a a };
-#endif
-#if 0
-// blocky font (Gab75)
-UINT8 BurnGearL[8*8] = {
- b b d a a d a a
- b b d a a d a a
- d d d d d d d d
- b b d a a d a a
- b b d a a d a a
- d d d d d d d d
- b b d b b d b b
- b b d b b d b b };
-
-UINT8 BurnGearH[8*8] = {
- b b d a a d b b
- b b d a a d b b
- d d d d d d d d
- b b d b b d b b
- b b d b b d b b
- d d d d d d d d
- b b d a a d b b
- b b d a a d b b };
-#endif
-#if 1
-// Shadow font (Gab75)
-UINT8 BurnGearL[8*8] = {
- a a a a a a a a
- a a b b a a a a
- a a b b c a a a
- a a b b c a a a
- a a b b c a a a
- a a b b b b a a
- a a a c c c c a
- a a a a a a a a };
-
-UINT8 BurnGearH[8*8] = {
- a a a a a a a a
- a b b a a b b a
- a b b c a b b c
- a b b b b b b c
- a b b c c b b c
- a b b c a b b c
- a a c c a a c c
- a a a a a a a a };
-#endif
-#undef b
-#undef a
-#undef c
-#undef d
-
-static UINT32 alpha_blend32(UINT32 d, UINT32 col)
-{
- if (col == 3) col = 3 /*0x1f1f1f*/; else
- if (col == 2) col = 0; else
- if (lhtimer == 0) col = colortab[1]; else
- col = colortab[lhtimer/2];
-
-
- if (col == 3) { // handle grey with a lighter transparency
- col = 0x1f1f1f;
- return (((((col & 0xff00ff) * shift_alpha_level_grey) + ((d & 0xff00ff) * shift_alpha_level2_grey)) & 0xff00ff00) |
- ((((col & 0x00ff00) * shift_alpha_level_grey) + ((d & 0x00ff00) * shift_alpha_level2_grey)) & 0x00ff0000)) >> 8;
- }
-
- return (((((col & 0xff00ff) * shift_alpha_level) + ((d & 0xff00ff) * shift_alpha_level2)) & 0xff00ff00) |
- ((((col & 0x00ff00) * shift_alpha_level) + ((d & 0x00ff00) * shift_alpha_level2)) & 0x00ff0000)) >> 8;
-}
-
-static void set_shift_draw_position()
-{
- shift_position = shift_position0;
-
- if (screen_flipped ^ flipscreen) {
- switch (shift_position & 3) {
- case SHIFT_POSITION_TOP_LEFT: shift_position = SHIFT_POSITION_BOTTOM_RIGHT; break;
- case SHIFT_POSITION_TOP_RIGHT: shift_position = SHIFT_POSITION_BOTTOM_LEFT; break;
- case SHIFT_POSITION_BOTTOM_LEFT: shift_position = SHIFT_POSITION_TOP_RIGHT; break;
- case SHIFT_POSITION_BOTTOM_RIGHT: shift_position = SHIFT_POSITION_TOP_LEFT; break;
- }
- }
-
- if (BurnDrvGetFlags() & BDF_ORIENTATION_VERTICAL) {
- BurnDrvGetVisibleSize(&nScreenHeight, &nScreenWidth);
-
- screen_vertical = 1;
-
- shift_xadv = 0;
- shift_yadv = shift_size + 1;
-
- switch (shift_position & 3)
- {
- case SHIFT_POSITION_TOP_LEFT:
- shift_xpos = (nScreenWidth - 1) - shift_size;
- shift_ypos = 1;
- break;
-
- case SHIFT_POSITION_BOTTOM_RIGHT:
- shift_xpos = 1;
- shift_ypos = (nScreenHeight - 1) - (shift_yadv * 1);
- break;
-
- case SHIFT_POSITION_BOTTOM_LEFT:
- shift_xpos = 1;
- shift_ypos = 1;
- break;
-
- case SHIFT_POSITION_TOP_RIGHT:
- default:
- shift_xpos = (nScreenWidth - 1) - shift_size;
- shift_ypos = (nScreenHeight - 1) - (shift_yadv * 1);
- break;
- }
- } else {
- BurnDrvGetVisibleSize(&nScreenWidth, &nScreenHeight);
-
- screen_vertical = 0;
-
- shift_xadv = shift_size + 1;
- shift_yadv = 0;
-
- switch (shift_position & 3)
- {
- case SHIFT_POSITION_BOTTOM_LEFT:
- shift_xpos = 1;
- shift_ypos = (nScreenHeight - 1) - shift_size;
-// shift_ypos;
- break;
-
- case SHIFT_POSITION_TOP_RIGHT:
- shift_xpos = (nScreenWidth - 1) - (shift_xadv * 1);
- shift_ypos = 1;
- break;
-
- case SHIFT_POSITION_TOP_LEFT:
- shift_xpos = 1;
- shift_ypos = 1;
- break;
-
- case SHIFT_POSITION_BOTTOM_RIGHT:
- default:
- shift_xpos = (nScreenWidth - 1) - (shift_xadv * 1);
- shift_ypos = (nScreenHeight - 1) - shift_size;
- break;
- }
- }
-}
-
-void BurnShiftSetFlipscreen(INT32 flip)
-{
-#if defined FBA_DEBUG
- if (!Debug_BurnShiftInitted) bprintf(PRINT_ERROR, _T("BurnShiftSetFlipscreen called without init\n"));
-#endif
-
- flip = flip ? 1 : 0;
-
- if (flipscreen != flip) {
- flipscreen = flip;
- set_shift_draw_position();
- }
-}
-
-void BurnShiftReset()
-{
-#if defined FBA_DEBUG
- if (!Debug_BurnShiftInitted) bprintf(PRINT_ERROR, _T("BurnShiftReset called without init\n"));
-#endif
-
- prev_shift = 0;
-
- BurnShiftSetStatus(0);
-
- BurnShiftSetFlipscreen(0);
-
- lhtimer = 0;
-}
-
-void BurnShiftInit(INT32 position, INT32 color, INT32 transparency)
-{
- Debug_BurnShiftInitted = 1;
-
- colortab[1] = shift_color = color;
-
- shift_size = 8;
- shift_position0 = position;
-
- shift_alpha_level = (255 * transparency) / 100;
- shift_alpha_level2 = 256 - shift_alpha_level;
-
- shift_alpha_level_grey = (255 * 20) / 100;
- shift_alpha_level2_grey = 256 - shift_alpha_level_grey;
-
- screen_flipped = (BurnDrvGetFlags() & BDF_ORIENTATION_FLIPPED) ? 1 : 0;
- screen_vertical = (BurnDrvGetFlags() & BDF_ORIENTATION_VERTICAL) ? 1 : 0;
-
- BurnShiftReset();
-}
-
-void BurnShiftInitDefault()
-{
- BurnShiftInit(SHIFT_POSITION_BOTTOM_RIGHT, SHIFT_COLOR_GREEN, 80);
-}
-
-INT32 BurnShiftInputCheckToggle(UINT8 shiftinput)
-{
- if (prev_shift != shiftinput && shiftinput) {
- bBurnShiftStatus = !bBurnShiftStatus;
- BurnShiftSetStatus(bBurnShiftStatus);
- }
-
- prev_shift = shiftinput;
-
- return bBurnShiftStatus;
-}
-
-void BurnShiftSetStatus(UINT32 status)
-{
-#if defined FBA_DEBUG
- if (!Debug_BurnShiftInitted) bprintf(PRINT_ERROR, _T("BurnShiftSetStatus called without init\n"));
-#endif
-
- bBurnShiftStatus = status ? 1 : 0;
-
- UINT8 *source = (status) ? &BurnGearH[0] : &BurnGearL[0];
-
- for (UINT8 y = 0; y < 8; y++)
- for (UINT8 x = 0; x < 8; x++)
- {
- if ((screen_flipped ^ flipscreen)) {
- if (screen_vertical)
- { // flipped + vertical
- BurnGearRender[(y * 8) + x] = source[(x * 8) + (7-y)];
- }
- else
- { // flipped
- BurnGearRender[(y * 8) + x] = source[(y * 8) + (7-x)];
- }
- } else if (screen_vertical)
- { // vertical
- BurnGearRender[(y * 8) + x] = source[(x * 8) + y];
- } else
- { // normal
- BurnGearRender[(y * 8) + x] = source[(y * 8) + x];
- }
- }
- lhtimer = 19; // for color effects
-}
-
-void BurnShiftExit()
-{
-#if defined FBA_DEBUG
- if (!Debug_BurnShiftInitted) bprintf(PRINT_ERROR, _T("BurnShiftExit called without init\n"));
-#endif
-
- shift_alpha_level = 0;
- shift_alpha_level2 = 0;
- shift_alpha_level_grey = 0;
- shift_alpha_level2_grey = 0;
- shift_color = 0;
- shift_size = 0;
- shift_position = 0;
- shift_position0 = 0;
-
- shift_xpos = 0;
- shift_ypos = 0;
-
- screen_flipped = 0;
- nScreenWidth = 0;
- nScreenHeight = 0;
- lhtimer = 0;
-
- flipscreen = -1;
-
- Debug_BurnShiftInitted = 0;
-}
-
-void BurnShiftRender()
-{
-#if defined FBA_DEBUG
- if (!Debug_BurnShiftInitted) bprintf(PRINT_ERROR, _T("BurnShiftRender called without init\n"));
-#endif
-
- if (!BurnShiftEnabled) return;
-
- INT32 xpos = shift_xpos;
- INT32 ypos = shift_ypos;
- INT32 color = BurnHighCol((shift_color >> 16) & 0xff, (shift_color >> 8) & 0xff, (shift_color >> 0) & 0xff, 0);
-
- {
- if (xpos < 0 || xpos > (nScreenWidth - shift_size)) return;
-
- {
- for (INT32 y = 0; y < 8; y++)
- {
- UINT8 *ptr = pBurnDraw + (((ypos + y) * nScreenWidth) + xpos) * nBurnBpp;
-
- for (INT32 x = 0; x < 8; x++) {
- if (BurnGearRender[(y*8)+x])
- {
- if (nBurnBpp >= 4)
- {
- *((UINT32*)ptr) = alpha_blend32(*((UINT32*)ptr), BurnGearRender[(y*8)+x]);
- }
- else if (nBurnBpp == 3)
- {
- UINT32 t = alpha_blend32((ptr[2] << 16) | (ptr[1] << 8) | ptr[0], BurnGearRender[(y*8)+x]);
-
- ptr[2] = t >> 16;
- ptr[1] = t >> 8;
- ptr[0] = t >> 0;
- }
- else if (nBurnBpp == 2 && BurnGearRender[(y*8)+x] == 1) // alpha blend not supported for 16-bit
- {
- *((UINT16*)ptr) = color;
- }
- }
- ptr += nBurnBpp;
- }
- }
- }
-
- xpos += shift_xadv;
- ypos += shift_yadv;
- }
- if (lhtimer > 0) lhtimer--;
-}
-
-INT32 BurnShiftScan(INT32 nAction)
-{
-#if defined FBA_DEBUG
- if (!Debug_BurnShiftInitted) bprintf(PRINT_ERROR, _T("BurnShiftScan called without init\n"));
-#endif
-
- if (nAction & ACB_DRIVER_DATA) {
- SCAN_VAR(bBurnShiftStatus);
- }
-
- if (nAction & ACB_WRITE) {
- BurnShiftSetStatus(bBurnShiftStatus);
- lhtimer = 0;
- }
-
- return 0;
-}
diff --git a/jan/src/burn/burn_shift.h b/jan/src/burn/burn_shift.h
deleted file mode 100644
index 04010624e..000000000
--- a/jan/src/burn/burn_shift.h
+++ /dev/null
@@ -1,27 +0,0 @@
-
-#define SHIFT_COLOR_RED 0xff0000
-#define SHIFT_COLOR_GREEN 0x00ff00
-#define SHIFT_COLOR_BLUE 0x0000ff
-#define SHIFT_COLOR_WHITE 0xffffff
-#define SHIFT_COLOR_YELLOW 0xffff00
-
-#define SHIFT_POSITION_TOP_LEFT 0
-#define SHIFT_POSITION_TOP_RIGHT 1
-#define SHIFT_POSITION_BOTTOM_LEFT 2
-#define SHIFT_POSITION_BOTTOM_RIGHT 3
-
-// transparency is a percentage 0 - 100
-void BurnShiftInit(INT32 position, INT32 color, INT32 transparency);
-void BurnShiftInitDefault();
-
-void BurnShiftReset();
-void BurnShiftSetFlipscreen(INT32 flip);
-void BurnShiftRender();
-void BurnShiftSetStatus(UINT32 status);
-INT32 BurnShiftInputCheckToggle(UINT8 shiftinput);
-void BurnShiftExit();
-
-INT32 BurnShiftScan(INT32 nAction);
-
-extern INT32 BurnShiftEnabled;
-extern INT32 bBurnShiftStatus;
diff --git a/jan/src/burn/burn_sound.cpp b/jan/src/burn/burn_sound.cpp
deleted file mode 100644
index 46850ce94..000000000
--- a/jan/src/burn/burn_sound.cpp
+++ /dev/null
@@ -1,23 +0,0 @@
-#include "burnint.h"
-#include "burn_sound.h"
-
-INT16 Precalc[4096 *4];
-
-// Routine used to precalculate the table used for interpolation
-INT32 cmc_4p_Precalc()
-{
- INT32 a, x, x2, x3;
-
- for (a = 0; a < 4096; a++) {
- x = a * 4; // x = 0..16384
- x2 = x * x / 16384; // pow(x, 2);
- x3 = x2 * x / 16384; // pow(x, 3);
-
- Precalc[a * 4 + 0] = (INT16)(-x / 3 + x2 / 2 - x3 / 6);
- Precalc[a * 4 + 1] = (INT16)(-x / 2 - x2 + x3 / 2 + 16384);
- Precalc[a * 4 + 2] = (INT16)( x + x2 / 2 - x3 / 2);
- Precalc[a * 4 + 3] = (INT16)(-x / 6 + x3 / 6);
- }
-
- return 0;
-}
diff --git a/jan/src/burn/burn_sound.h b/jan/src/burn/burn_sound.h
deleted file mode 100644
index f923e56f8..000000000
--- a/jan/src/burn/burn_sound.h
+++ /dev/null
@@ -1,48 +0,0 @@
-// burn_sound.h - General sound support functions
-// based on code by Daniel Moreno (ComaC) < comac2k@teleline.es >
-
-#if defined BUILD_X86_ASM
-extern "C" {
- int __cdecl ChannelMix_QS_A(int* Dest, int nLen,
- char* Sample, int LoopEnd,
- int* Pos,
- int VolL, int VolR,
- int LoopLen,
- int IncPos,
- char* EndBuff);
-
- void __cdecl BurnSoundCopyClamp_A(int* Src, short* Dest, int Len);
- void __cdecl BurnSoundCopyClamp_Add_A(int* Src, short* Dest, int Len);
-
- void __cdecl BurnSoundCopyClamp_Mono_A(int* Src, short* Dest, int Len);
- void __cdecl BurnSoundCopyClamp_Mono_Add_A(int* Src, short* Dest, int Len);
-
- void __cdecl BurnSoundCopy_FM_A(short* SrcL, short* SrcR, short* Dest, int Len, int VolL, int VolR);
- void __cdecl BurnSoundCopy_FM_Add_A(short* SrcL, short* SrcR, short* Dest, int Len, int VolL, int VolR);
-
- /* SrcOPN should have left channel data at SrcOPN, right channel at SrcOPN + 4096, SrcPSG should have all summed channels */
- void __cdecl BurnSoundCopy_FM_OPN_A(short* SrcOPN, int* SrcPSG, short* Dest, int Len, int VolPSGL, int VolPSGR);
- void __cdecl BurnSoundCopy_FM_OPN_Add_A(short* SrcOPN, int* SrcPSG, short* Dest, int Len, int VolPSGL, int VolPSGR);
-}
-#endif
-
-void BurnSoundCopyClamp_C(INT32* Src, INT16* Dest, INT32 Len);
-void BurnSoundCopyClamp_Add_C(INT32* Src, INT16* Dest, INT32 Len);
-void BurnSoundCopyClamp_Mono_C(INT32* Src, INT16* Dest, INT32 Len);
-void BurnSoundCopyClamp_Mono_Add_C(INT32* Src, INT16* Dest, INT32 Len);
-
-extern INT32 cmc_4p_Precalc();
-
-#ifdef __ELF__
- #define Precalc _Precalc
-#endif
-
-extern "C" INT16 Precalc[];
-
-#define INTERPOLATE4PS_8BIT(fp, sN, s0, s1, s2) (((INT32)((sN) * Precalc[(INT32)(fp) * 4 + 0]) + (INT32)((s0) * Precalc[(INT32)(fp) * 4 + 1]) + (INT32)((s1) * Precalc[(INT32)(fp) * 4 + 2]) + (INT32)((s2) * Precalc[(INT32)(fp) * 4 + 3])) / 64)
-#define INTERPOLATE4PS_16BIT(fp, sN, s0, s1, s2) (((INT32)((sN) * Precalc[(INT32)(fp) * 4 + 0]) + (INT32)((s0) * Precalc[(INT32)(fp) * 4 + 1]) + (INT32)((s1) * Precalc[(INT32)(fp) * 4 + 2]) + (INT32)((s2) * Precalc[(INT32)(fp) * 4 + 3])) / 16384)
-#define INTERPOLATE4PS_CUSTOM(fp, sN, s0, s1, s2, v) (((INT32)((sN) * Precalc[(INT32)(fp) * 4 + 0]) + (INT32)((s0) * Precalc[(INT32)(fp) * 4 + 1]) + (INT32)((s1) * Precalc[(INT32)(fp) * 4 + 2]) + (INT32)((s2) * Precalc[(INT32)(fp) * 4 + 3])) / (INT32)(v))
-
-#define INTERPOLATE4PU_8BIT(fp, sN, s0, s1, s2) (((UINT32)((sN) * Precalc[(INT32)(fp) * 4 + 0]) + (UINT32)((s0) * Precalc[(INT32)(fp) * 4 + 1]) + (UINT32)((s1) * Precalc[(INT32)(fp) * 4 + 2]) + (UINT32)((s2) * Precalc[(INT32)(fp) * 4 + 3])) / 64)
-#define INTERPOLATE4PU_16BIT(fp, sN, s0, s1, s2) (((UINT32)((sN) * Precalc[(INT32)(fp) * 4 + 0]) + (UINT32)((s0) * Precalc[(INT32)(fp) * 4 + 1]) + (UINT32)((s1) * Precalc[(INT32)(fp) * 4 + 2]) + (UINT32)((s2) * Precalc[(INT32)(fp) * 4 + 3])) / 16384)
-#define INTERPOLATE4PU_CUSTOM(fp, sN, s0, s1, s2, v) (((UINT32)((sN) * Precalc[(INT32)(fp) * 4 + 0]) + (UINT32)((s0) * Precalc[(INT32)(fp) * 4 + 1]) + (UINT32)((s1) * Precalc[(INT32)(fp) * 4 + 2]) + (UINT32)((s2) * Precalc[(INT32)(fp) * 4 + 3])) / (UINT32)(v))
diff --git a/jan/src/burn/burn_sound_a.asm b/jan/src/burn/burn_sound_a.asm
deleted file mode 100644
index 577358851..000000000
--- a/jan/src/burn/burn_sound_a.asm
+++ /dev/null
@@ -1,751 +0,0 @@
-; MMX general sound support + PCM channel mixing
-; based on code by Daniel Moreno (ComaC) - 2001 < comac2k@teleline.es >
-
-; ChannelMix_QS mixes one channel using 4 point, 3rd order interpolation.
-; The volume of the resulting audio is 64 times louder, to have extra precision
-; when mixing the channels.
-;
-; The BurnSoundCopy* functions convert a 32-bit (interleaved stereo or mono) buffer
-; to interleaved 16-bit stereo, clamping and dividing volume by 256 on the fly.
-;
-; BurnSoundCopy_FM interleaves 2 16-bit buffers into a single interleaved stereo buffer,
-; correcting volume (variable) on the fly
-;
-; BurnSoundCopy_FM interleaves 2 16-bit buffers into a single interleaved stereo buffer,
-; adding a 3rd 32-bit buffer correcting volume on the 3rd buffer (variable) on the fly
-
-[BITS 32]
-
-global ChannelMix_QS_A
-global _ChannelMix_QS_A
-
-global ChannelMix_8U_A
-global _ChannelMix_8U_A
-
-global BurnSoundCopyClamp_A
-global _BurnSoundCopyClamp_A
-global BurnSoundCopyClamp_Add_A
-global _BurnSoundCopyClamp_Add_A
-
-global _BurnSoundCopyClamp_Mono_A
-global BurnSoundCopyClamp_Mono_A
-global _BurnSoundCopyClamp_Mono_Add_A
-global BurnSoundCopyClamp_Mono_Add_A
-
-global BurnSoundCopy_FM_A
-global _BurnSoundCopy_FM_A
-global BurnSoundCopy_FM_Add_A
-global _BurnSoundCopy_FM_Add_A
-
-global _BurnSoundCopy_FM_OPN_A
-global BurnSoundCopy_FM_OPN_A
-global _BurnSoundCopy_FM_OPN_Add_A
-global BurnSoundCopy_FM_OPN_Add_A
-
-extern _Precalc
-
-
-
-section .text
-
-; This macro is used from other functions. It contains the main mixing
-; loop for 8 bit samples. At its input it expects:
-;
-; EAX -> pointer to sample buffer
-; EBX -> index inside sample (current position)
-; ECX -> index of the first sample that does NOT have to play (LoopEnd)
-; ESI -> pointer to destination buffer
-; mm3 -> Volumes Low = Left, High = Right
-;
-; Param 1 -> dword containing position increment
-; Param 2 -> dword containing loop length
-; Param 3 -> dword containing size of out buffer in samples
-; Param 4 -> pointer to enf buffer
-; Param 5 -> instructions to do to unpacked samples, or text NONE if none
-;
-; At exit:
-;
-; EBX -> next position to play
-; EDX -> destroyed
-; [Param 2] -> updated acordingly
-; [Param 4] -> zero
-; mm0 -> destroyed
-; mm1 -> destroyed
-
-%macro Mix_Loop 5
-
-%define INCR %1
-%define LOOP %2
-%define BUFLEN %3
-%define ENDBUF %4
-
- cmp EBX, ECX ; Past the end?
- jl %%Sigue ; No? -> Continue
-
-%%PassedEnd:
- mov EDX, ECX ; We are at or near the end of the sample
- add EDX, 0x3000 ; We need to either stop, set the pointer
- and EDX, (0xFFFF << 12) ; to the loop point, or render a few samples
- cmp EBX, EDX ; from the end buffer
- jge %%LoopCheck ;
-
- ; We need to render samples from the end buffer
-
- push EBX ; We need to copy EBX to EDX (!!!)
- pxor mm0, mm0 ; Zero mm0 (to do zero extension of sample)
-
- add EBX, 0x4000 ; load end buffer in EDX, index in EBX
- sub EBX, EDX ;
- mov EDX, ENDBUF ;
- shr EBX, 12 ;
-
- punpcklbw mm0, [EDX + EBX] ; Load & unpack samples (from the end buffer) to 16 bit
-
- pop EDX ; !!!
- jmp %%Interpolate
-
-%%LoopCheck:
- cmp LOOP, 0x1000 ; > 0x1000
- jg %%SetLoopPoint ; Yes -> Loop Sample
- cmp LOOP, 0
- je %%EndSample
-
- mov EBX, ECX ; Kludge to work around some situations
- add EBX, 0x2000 ; where the QSound hardware is left in
- jmp %%End_StayOn ; a non-standard state (e.g. DDTOD, DDSOM)
-
-%%EndSample:
- xor EBX, EBX
- xor EAX, EAX ; set bKey to zero
- jmp %%End ; exit function
-
-%%SetLoopPoint:
- sub EBX, LOOP ; Set EBX to the loop point
-
-%%NextSample:
- cmp EBX, ECX ; Passed the end?
- jge %%PassedEnd
-
-%%Sigue:
- mov EDX, EBX
- and EBX, (0xFFFF << 12) ; QSound banks are 0x10000 bytes
- shr EBX, 12 ; EBX = Integer(nPos)
-
- pxor mm0, mm0 ; Zero mm0 (to do zero extension of sample)
- punpcklbw mm0, [EAX + EBX] ; Load & unpack samples to 16 bit
-
-%%Interpolate:
- mov EBX, EDX
- and EDX, 0x0FFF ; EDX = Decimal(nPos)
-
- ; Execute sign adaptation instructions if necessary:
-
-%ifnidni %5, NONE
- pxor mm0, %5
-%endif
-
- ; Interpolate sample
-
- pmaddwd mm0, [_Precalc + EDX*8] ; Get multipliers
- movq mm1, mm0 ; We need High(mm0) + Low(mm0)
- psrlq mm0, 32 ; mm0 = High(mm0)
- paddd mm0, mm1 ; mm0 = Sample interpolated * 16384
- psrad mm0, 16 ; Shift samples right
- packssdw mm0, mm0 ; Hi(mm0) = sample, Low(mm0) = sample
-
- add EBX, INCR ; Advance counters
- pmaddwd mm0, mm3 ; Multiply samples with volume
- dec BUFLEN ; 1 sample less left
-
- paddd mm0, [ESI] ; Add to buffer
- movq [ESI], mm0 ; Store result on buffer
-
- lea ESI, [ESI + 8]
- jnz %%NextSample ; Continue if there are more samples
-
-%%End_StayOn:
- mov EAX, 1 ; leave bKey at 1
-%%End:
-
-%endmacro
-
-; Parameters to ChannelMix_QS/8U:
-
-%define BuffDest dword [EBP + 8]
-%define BuffLen dword [EBP + 12]
-%define SampleBuff dword [EBP + 16]
-%define LoopEnd dword [EBP + 20]
-%define PosPtr dword [EBP + 24]
-%define Volumes qword [EBP + 28]
-%define LoopLen dword [EBP + 36]
-%define IncrPos dword [EBP + 40]
-%define EndBuff dword [EBP + 44]
-
-_ChannelMix_QS_A:
-ChannelMix_QS_A:
-
- push EBP
- mov EBP, ESP
-
- push EBX
- push ESI
- push EDI
-
- mov EAX, SampleBuff ; EAX = Sample Buffer
- mov EBX, PosPtr
-
- movq mm3, Volumes ; mm3 = Volumes
-
- mov EBX, [EBX] ; EBX = Sample Position
- mov ECX, LoopEnd ; ECX = LoopEnd
- sub ECX, 0x3000
- mov ESI, BuffDest ; ESI = destionation buffer
- mov EDI, IncrPos ; EDI = IncrPos
-
- Mix_Loop EDI, LoopLen, BuffLen, EndBuff, NONE
-
- mov ECX, PosPtr
- pop EDI
- pop ESI
- mov [ECX], EBX ; Save position
-
-; emms
- pop EBX
- pop EBP
- ret
-
-
-_ChannelMix_8U_A:
-ChannelMix_8U_A:
-
- push EBP
- mov EBP, ESP
-
- push EBX
- push ESI
- push EDI
-
- mov EAX, SampleBuff ; EAX = Sample Buffer
- mov EBX, PosPtr
-
- movq mm3, Volumes ; mm3 = Volumes
- movq mm4, [XorSign] ; mm4 = Value to xor to adapt sign
-
- dec EAX
- mov EBX, [EBX] ; EBX = Sample Position
- mov ECX, LoopEnd ; ECX = LoopEnd
- mov ESI, BuffDest ; ESI = destionation buffer
- mov EDI, IncrPos ; EDI = IncrPos
-
- Mix_Loop EDI, LoopLen, BuffLen, EndBuff, mm4
-
- mov ECX, PosPtr
- pop EDI
- pop ESI
- mov [ECX], EBX ; Save position
-
-; emms
- pop EBX
- pop EBP
- ret
-
-
-; Parameters to BurnSoundCopyClamp* functions
-
-%define BufSrc [EBP + 8]
-%define BufDest [EBP + 12]
-%define Len [EBP + 16]
-
-_BurnSoundCopyClamp_A:
-BurnSoundCopyClamp_A:
-
- push EBP
- mov EBP, ESP
-
- mov ECX, BufSrc ; ECX = Buff Src
- mov EDX, BufDest ; EDX = Buff Dest
-
- mov EAX, Len ; EAX = Length
- shr EAX, 1
- je .LastSample
-
-.Loop:
- movq mm0, [ECX] ; Hi(mm0) = SampleR*256, Low(mm0) = SampleL*256
- movq mm1, [ECX + 8] ; Load next sample too
- psrad mm0, 8 ; Hi(mm0) = Sample1R, Low(mm0) = Sample1L
- psrad mm1, 8 ; Hi(mm1) = Sample2R, Low(mm1) = Sample2L
- add ECX, byte 16 ; ECX -> next samples
-
- packssdw mm0, mm1 ; We have both samples packed here
- dec EAX ; 2 samples less left
-
- movq [EDX], mm0 ; Save the result
-
- lea EDX, [EDX + 8] ; EDX -> next sample
- jnz .Loop ; Continue if there are more samples
-
-.LastSample:
- mov EAX, Len ; EAX = Length
- test EAX, 1
- je .End
-
- ; We need to handle an odd amount of sample pairs.
- ; Handle the last sample pair here
-
- movq mm0, [ECX]
- psrad mm0, 8
- packssdw mm0, mm0
- movd [EDX], mm0
-
-.End:
- emms ; Done with MMX
- pop EBP
- ret
-
-_BurnSoundCopyClamp_Add_A:
-BurnSoundCopyClamp_Add_A:
-
- push EBP
- mov EBP, ESP
-
- mov ECX, BufSrc ; ECX = Buff Src
- mov EDX, BufDest ; EDX = Buff Dest
-
- mov EAX, Len ; EAX = Length
- shr EAX, 1
- je .LastSample
-
-.Loop:
- movq mm0, [ECX] ; Hi(mm0) = SampleR*256, Low(mm0) = SampleL*256
- movq mm1, [ECX + 8] ; Load next sample too
- psrad mm0, 8 ; Hi(mm0) = Sample1R, Low(mm0) = Sample1L
- psrad mm1, 8 ; Hi(mm1) = Sample2R, Low(mm1) = Sample2L
- add ECX, byte 16 ; ECX -> next samples
-
- packssdw mm0, mm1 ; Here we have the 2 samples packed
-
- paddsw mm0, [EDX] ; Add to the contents of the buffer
- dec EAX ; 2 samples less left
-
- movq [EDX], mm0 ; Save the result
-
- lea EDX, [EDX + 8] ; EDX -> next 2 samples
- jnz .Loop ; Continue if there are more samples
-
-.LastSample:
- mov EAX, Len ; EAX = Length
- test EAX, 1
- je .End
-
- ; We need to handle an odd amount of sample pairs.
- ; Handle the last sample pair here
-
- movq mm0, [ECX]
- psrad mm0, 8
- packssdw mm0, mm0
- movd mm1, [EDX]
- paddsw mm0, mm1
- movd [EDX], mm0
-
-.End:
- emms ; Done with MMX
- pop EBP
- ret
-
-_BurnSoundCopyClamp_Mono_A:
-BurnSoundCopyClamp_Mono_A:
-
- push EBP
- mov EBP, ESP
-
- mov ECX, BufSrc ; ECX = Buff Src
- mov EDX, BufDest ; EDX = Buff Dest
-
- mov EAX, Len ; EAX = Length
- shr EAX, 1
- je .LastSample
-
-.Loop:
- movq mm0, [ECX] ; Hi(mm0) = Sample2*256, Low(mm0) = Sample1*256
- psrad mm0, 8 ; Hi(mm0) = Sample2, Low(mm0) = Sample1
- add ECX, byte 8 ; ECX -> next samples
- packssdw mm0, mm0 ; We have both samples packed here
- punpcklwd mm0, mm0
-
- dec EAX ; 2 samples less left
-
- movq [EDX], mm0 ; Save the result
-
- lea EDX, [EDX + 8] ; EDX -> next sample
- jnz .Loop ; Continue if there are more samples
-
-.LastSample:
- mov EAX, Len ; EAX = Length
- test EAX, 1
- je .End
-
- ; We need to handle an odd amount of samples.
- ; Handle the last sample here
-
- movd mm0, [ECX]
- psrad mm0, 8
- packssdw mm0, mm0
- punpcklwd mm0, mm0
- movd [EDX], mm0
-
-.End:
- emms ; Done with MMX
- pop EBP
- ret
-
-_BurnSoundCopyClamp_Mono_Add_A:
-BurnSoundCopyClamp_Mono_Add_A:
-
- push EBP
- mov EBP, ESP
-
- mov ECX, BufSrc ; ECX = Buff Src
- mov EDX, BufDest ; EDX = Buff Dest
-
- mov EAX, Len ; EAX = Length
- shr EAX, 1
- je .LastSample
-
-.Loop:
- movq mm0, [ECX] ; Hi(mm0) = Sample2*256, Low(mm0) = Sample1*256
- psrad mm0, 8 ; Hi(mm0) = Sample2, Low(mm0) = Sample1
- add ECX, byte 8 ; ECX -> next samples
- packssdw mm0, mm0 ; We have both samples packed here
- punpcklwd mm0, mm0
-
- paddsw mm0, [EDX] ; Add to the contents of the buffer
- dec EAX ; 2 samples less left
-
- movq [EDX], mm0 ; Save the result
-
- lea EDX, [EDX + 8] ; EDX -> next 2 samples
- jnz .Loop ; Continue if there are more samples
-
-.LastSample:
- mov EAX, Len ; EAX = Length
- test EAX, 1
- je .End
-
- ; We need to handle an odd amount of samples.
- ; Handle the last sample here
-
- movd mm0, [ECX]
- psrad mm0, 8
- packssdw mm0, mm0
- punpcklwd mm0, mm0
- movd mm1, [EDX]
- paddsw mm0, mm1
- movd [EDX], mm0
-
-.End:
- emms ; Done with MMX
- pop EBP
- ret
-
-; Parameters to BurnSoundCopy_FM
-
-%define BufSrcL dword [EBP + 8]
-%define BufSrcR dword [EBP + 12]
-%define BufDest dword [EBP + 16]
-%define Len dword [EBP + 20]
-%define Volumes qword [EBP + 24]
-
-_BurnSoundCopy_FM_A:
-BurnSoundCopy_FM_A:
-
- push EBP
- mov EBP, ESP
- push EBX
-
- movq mm1, Volumes
- packssdw mm1, Volumes
-
- ; mm1 now holds the volumes as packed words
-
- mov EAX, Len ; EAX = Length
-
- mov EDX, BufDest ; EDX = BufDest
- mov ECX, BufSrcR ; ECX = BufSrcR
- mov EBX, BufSrcL ; EBX = BufSrcL
-
- shr EAX, 1
- je .LastSample
-
-.Loop:
- movd mm0, [EBX]
- punpcklwd mm0, [ECX]
-
- ; mm0 now has SrcR2 - SrcL2 - SrcR1 - SrcL1
-
- pmulhw mm0, mm1 ; Multiply mm0 with volumes
-
- add EBX, byte 4 ; EBX -> next samples
- add ECX, byte 4 ; ECX -> next samples
-
- dec EAX ; 2 sample less left
-
- movq [EDX], mm0 ; Save the result
-
- lea EDX, [EDX + 8] ; EDX -> next sample
- jnz .Loop ; Continue if there are more samples
-
-.LastSample:
- mov EAX, Len ; EAX = Length
- test EAX, 1
- je .End
-
- ; We need to handle an odd amount of sample pairs.
- ; Handle the last sample pair here
-
- movd mm0, [EBX]
- punpcklwd mm0, [ECX]
-
- ; mm0 now has ? - ? - SrcR1 - SrcL1
-
- pmulhw mm0, mm1 ; Multiply mm0 with volumes
-
- movd [EDX], mm0 ; Save the result
-
-.End:
- emms ; Done with MMX
- pop EBX
- pop EBP
- ret
-
-_BurnSoundCopy_FM_Add_A:
-BurnSoundCopy_FM_Add_A:
-
- push EBP
- mov EBP, ESP
- push EBX
-
- movq mm1, Volumes
- packssdw mm1, Volumes
-
- ; mm1 now holds the volumes as packed words
-
- mov EAX, Len ; EAX = Length
-
- mov EDX, BufDest ; EDX = BufDest
- mov ECX, BufSrcR ; ECX = BufSrcR
- mov EBX, BufSrcL ; EBX = BufSrcL
-
- shr EAX, 1
- je .LastSample
-
-.Loop:
- movd mm0, [EBX]
- punpcklwd mm0, [ECX]
-
- ; mm0 now has SrcR2 - SrcL2 - SrcR1 - SrcL1
-
- pmulhw mm0, mm1 ; Multiply mm0 with volumes
-
- add EBX, byte 4 ; EBX -> next samples
- add ECX, byte 4 ; ECX -> next samples
-
- paddsw mm0, [EDX] ; Add to the contents of the buffer
- dec EAX ; 2 sample less left
-
- movq [EDX], mm0 ; Save the result
-
- lea EDX, [EDX + 8] ; EDX -> next sample
- jnz .Loop ; Continue if there are more samples
-
-.LastSample:
- mov EAX, Len ; EAX = Length
- test EAX, 1
- je .End
-
- ; We need to handle an odd amount of sample pairs.
- ; Handle the last sample pair here
-
- movd mm0, [EBX]
- punpcklwd mm0, [ECX]
-
- ; mm0 now has ? - ? - SrcR1 - SrcL1
-
- pmulhw mm0, mm1 ; Multiply mm0 with volumes
-
- movd mm1, [EDX]
- paddsw mm0, mm1 ; Add to the contents of the buffer
- movd [EDX], mm0 ; Save the result
-
-.End:
- emms ; Done with MMX
- pop EBX
- pop EBP
- ret
-
-; Parameters to BurnSoundCopyFM_OPN_A
-
-%define BufSrcOPN dword [EBP + 8]
-%define BufSrcPSG dword [EBP + 12]
-%define BufDest dword [EBP + 16]
-%define Len dword [EBP + 20]
-%define Volumes qword [EBP + 24]
-
-_BurnSoundCopy_FM_OPN_A:
-BurnSoundCopy_FM_OPN_A:
-
- push EBP
- mov EBP, ESP
- push EBX
-
- movq mm4, Volumes
- packssdw mm4, Volumes
-
- mov EBX, BufSrcOPN ; EBX = Buff Src (OPN)
- mov ECX, BufSrcPSG ; ECX = Buff Src (PSG)
- mov EDX, BufDest ; EDX = Buff Dest
-
- mov EAX, Len ; EAX = Length
- shr EAX, 1
- je .LastSample
-
-.Loop:
- movq mm0, [ECX] ; Hi(mm0) = Sample2, Low(mm0) = Sample1
- add ECX, byte 8 ; ECX -> next samples
-
- packssdw mm0, mm0
-
- movd mm1, [EBX] ; OPN sample left
-
- punpcklwd mm0, mm0
-
- ; mm0 now has SrcPSGR2 - SrcPSGL2 - SrcPSGR1 - SrcPSGL1
-
- punpcklwd mm1, [EBX + 8192] ; OPN sample right
-
- ; mm1 now has SrcOPNR2 - SrcOPNL2 - SrcOPNR1 - SrcOPNL1
-
- pmulhw mm0, mm4 ; Multiply mm0 with volumes
-
- add EBX, byte 4 ; EBX -> next samples
-
- paddsw mm0, mm1
-
- dec EAX ; 2 samples less left
-
- movq [EDX], mm0 ; Save the result
-
- lea EDX, [EDX + 8] ; EDX -> next sample
- jnz .Loop ; Continue if there are more samples
-
-.LastSample:
- mov EAX, Len ; EAX = Length
- test EAX, 1
- je .End
-
- ; We need to handle an odd amount of samples.
- ; Handle the last sample here
-
- movd mm0, [ECX]
- packssdw mm0, mm0
- movd mm1, [EBX]
- punpcklwd mm0, mm0
- punpcklwd mm1, [EBX + 8192]
- pmulhw mm0, mm4
- paddsw mm0, mm1
-
- movd [EDX], mm0
-
-.End:
- emms ; Done with MMX
- pop EBX
- pop EBP
- ret
-
-_BurnSoundCopy_FM_OPN_Add_A:
-BurnSoundCopy_FM_OPN_Add_A:
-
- push EBP
- mov EBP, ESP
- push EBX
-
- movq mm4, Volumes
- packssdw mm4, Volumes
-
- mov EBX, BufSrcOPN ; EBX = Buff Src (OPN)
- mov ECX, BufSrcPSG ; ECX = Buff Src (PSG)
- mov EDX, BufDest ; EDX = Buff Dest
-
- mov EAX, Len ; EAX = Length
- shr EAX, 1
- je .LastSample
-
-.Loop:
- movq mm0, [ECX] ; Hi(mm0) = Sample2, Low(mm0) = Sample1
- add ECX, byte 8 ; ECX -> next samples
-
- packssdw mm0, mm0
-
- movd mm1, [EBX] ; OPN sample left
-
- punpcklwd mm0, mm0
-
- ; mm0 now has SrcPSGR2 - SrcPSGL2 - SrcPSGR1 - SrcPSGL1
-
- punpcklwd mm1, [EBX + 8192] ; OPN sample right
-
- ; mm1 now has SrcOPNR2 - SrcOPNL2 - SrcOPNR1 - SrcOPNL1
-
- pmulhw mm0, mm4 ; Multiply mm0 with volumes
-
- add EBX, byte 4 ; EBX -> next samples
-
- paddsw mm0, mm1
-
- paddsw mm0, [EDX] ; Add to the contents of the buffer
-
- dec EAX ; 2 samples less left
-
- movq [EDX], mm0 ; Save the result
-
- lea EDX, [EDX + 8] ; EDX -> next sample
- jnz .Loop ; Continue if there are more samples
-
-.LastSample:
- mov EAX, Len ; EAX = Length
- test EAX, 1
- je .End
-
- ; We need to handle an odd amount of samples.
- ; Handle the last sample here
-
- movd mm0, [ECX]
- packssdw mm0, mm0
- movd mm1, [EBX]
- punpcklwd mm0, mm0
- punpcklwd mm1, [EBX + 8192]
- pmulhw mm0, mm4
- paddsw mm0, mm1
-
- movd mm1, [EDX]
- paddsw mm0, mm1 ; Add to the contents of the buffer
-
- movd [EDX], mm0
-
-.End:
- emms ; Done with MMX
- pop EBX
- pop EBP
- ret
-
-
-section .data
-
-; Used to xor with the unpacked samples to change sign:
-XorSign: dw 0x8000, 0x8000, 0x8000, 0x8000
-
-
-
-section .bss
-
-VolMMX: resd 2
-ActiveFlag: resb 1
diff --git a/jan/src/burn/burn_sound_c.cpp b/jan/src/burn/burn_sound_c.cpp
deleted file mode 100644
index 961efdb3e..000000000
--- a/jan/src/burn/burn_sound_c.cpp
+++ /dev/null
@@ -1,46 +0,0 @@
-#include "burnint.h"
-#include "burn_sound.h"
-
-#define CLIP(A) ((A) < -0x8000 ? -0x8000 : (A) > 0x7fff ? 0x7fff : (A))
-
-void BurnSoundCopyClamp_C(INT32 *Src, INT16 *Dest, INT32 Len)
-{
- Len *= 2;
- while (Len--) {
- *Dest = CLIP((*Src >> 8));
- Src++;
- Dest++;
- }
-}
-
-void BurnSoundCopyClamp_Add_C(INT32 *Src, INT16 *Dest, INT32 Len)
-{
- Len *= 2;
- while (Len--) {
- *Dest = CLIP((*Src >> 8) + *Dest);
- Src++;
- Dest++;
- }
-}
-
-void BurnSoundCopyClamp_Mono_C(INT32 *Src, INT16 *Dest, INT32 Len)
-{
- while (Len--) {
- Dest[0] = CLIP((*Src >> 8));
- Dest[1] = CLIP((*Src >> 8));
- Src++;
- Dest += 2;
- }
-}
-
-void BurnSoundCopyClamp_Mono_Add_C(INT32 *Src, INT16 *Dest, INT32 Len)
-{
- while (Len--) {
- Dest[0] = CLIP((*Src >> 8) + Dest[0]);
- Dest[1] = CLIP((*Src >> 8) + Dest[1]);
- Src++;
- Dest += 2;
- }
-}
-
-#undef CLIP
diff --git a/jan/src/burn/burnint.h b/jan/src/burn/burnint.h
deleted file mode 100644
index 172f52a80..000000000
--- a/jan/src/burn/burnint.h
+++ /dev/null
@@ -1,244 +0,0 @@
-// Burn - Arcade emulator library - internal code
-
-// Standard headers
-#include
-#include
-#include
-#include
-#include
-
-#if defined(__LIBRETRO__) && defined(_MSC_VER)
-#include
-#else
-#include "tchar.h"
-#endif
-
-#ifdef __LIBRETRO_OPTIMIZATIONS__
-#include "burn_libretro_opts.h"
-#endif
-
-#include "burn.h"
-
-#ifdef LSB_FIRST
-typedef union
-{
- struct { UINT8 l,h,h2,h3; } b;
- struct { UINT16 l,h; } w;
- UINT32 d;
-} PAIR;
-
-#define BURN_ENDIAN_SWAP_INT8(x) x
-#define BURN_ENDIAN_SWAP_INT16(x) x
-#define BURN_ENDIAN_SWAP_INT32(x) x
-#define BURN_ENDIAN_SWAP_INT64(x) x
-#else
-// define the above union and BURN_ENDIAN_SWAP macros in the following platform specific header
-#include "burn_endian.h"
-#endif
-
-// ---------------------------------------------------------------------------
-// Driver information
-
-struct BurnDriver {
- char* szShortName; // The filename of the zip file (without extension)
- char* szParent; // The filename of the parent (without extension, NULL if not applicable)
- char* szBoardROM; // The filename of the board ROMs (without extension, NULL if not applicable)
- char* szSampleName; // The filename of the samples zip file (without extension, NULL if not applicable)
- char* szDate;
-
- // szFullNameA, szCommentA, szManufacturerA and szSystemA should always contain valid info
- // szFullNameW, szCommentW, szManufacturerW and szSystemW should be used only if characters or scripts are needed that ASCII can't handle
- char* szFullNameA; char* szCommentA; char* szManufacturerA; char* szSystemA;
- wchar_t* szFullNameW; wchar_t* szCommentW; wchar_t* szManufacturerW; wchar_t* szSystemW;
-
- INT32 Flags; // See burn.h
- INT32 Players; // Max number of players a game supports (so we can remove single player games from netplay)
- INT32 Hardware; // Which type of hardware the game runs on
- INT32 Genre;
- INT32 Family;
- INT32 (*GetZipName)(char** pszName, UINT32 i); // Function to get possible zip names
- INT32 (*GetRomInfo)(struct BurnRomInfo* pri, UINT32 i); // Function to get the length and crc of each rom
- INT32 (*GetRomName)(char** pszName, UINT32 i, INT32 nAka); // Function to get the possible names for each rom
- INT32 (*GetSampleInfo)(struct BurnSampleInfo* pri, UINT32 i); // Function to get the sample flags
- INT32 (*GetSampleName)(char** pszName, UINT32 i, INT32 nAka); // Function to get the possible names for each sample
- INT32 (*GetInputInfo)(struct BurnInputInfo* pii, UINT32 i); // Function to get the input info for the game
- INT32 (*GetDIPInfo)(struct BurnDIPInfo* pdi, UINT32 i); // Function to get the input info for the game
- INT32 (*Init)(); INT32 (*Exit)(); INT32 (*Frame)(); INT32 (*Redraw)(); INT32 (*AreaScan)(INT32 nAction, INT32* pnMin);
- UINT8* pRecalcPal; UINT32 nPaletteEntries; // Set to 1 if the palette needs to be fully re-calculated
- INT32 nWidth, nHeight; INT32 nXAspect, nYAspect; // Screen width, height, x/y aspect
-};
-
-#define BurnDriverD BurnDriver // Debug status
-#define BurnDriverX BurnDriver // Exclude from build
-
-// Standard functions for dealing with ROM and input info structures
-#include "stdfunc.h"
-
-// ---------------------------------------------------------------------------
-
-// burn.cpp
-INT32 BurnSetRefreshRate(double dRefreshRate);
-INT32 BurnByteswap(UINT8* pm,INT32 nLen);
-INT32 BurnClearScreen();
-
-// load.cpp
-
-/*
- Flags for use with BurnLoadRomExt
-
- GROUP(x) load this many bytes, then skip by nGap from start position (flag is optional)
- REVERSE load the bytes in a group in reverse order (0,1,2,3 -> 3,2,1,0)
- INVERT Src ^= 0xff
- BYTESWAP change order of bytes from 0,1,2,3 to 1,0,3,2
- NIBBLES Dest[0] = (byte & & 0xf); Dest[1] = (byte >> 4) & 0xf;
- XOR Dest ^= Src
-*/
-
-#define LD_GROUP(x) ((x) & 0xff) // 256 - plenty
-#define LD_REVERSE (1<<8)
-#define LD_INVERT (1<<9)
-#define LD_BYTESWAP (1<<10)
-#define LD_NIBBLES (1<<11)
-#define LD_XOR (1<<12)
-
-INT32 BurnLoadRomExt(UINT8 *Dest, INT32 i, INT32 nGap, INT32 nFlags);
-INT32 BurnLoadRom(UINT8* Dest, INT32 i, INT32 nGap);
-INT32 BurnXorRom(UINT8 *Dest, INT32 i, INT32 nGap);
-INT32 BurnLoadBitField(UINT8* pDest, UINT8* pSrc, INT32 nField, INT32 nSrcLen);
-
-// ---------------------------------------------------------------------------
-// Plotting pixels
-
-inline static void PutPix(UINT8* pPix, UINT32 c)
-{
- if (nBurnBpp >= 4) {
- *((UINT32*)pPix) = c;
- } else {
- if (nBurnBpp == 2) {
- *((UINT16*)pPix) = (UINT16)c;
- } else {
- pPix[0] = (UINT8)(c >> 0);
- pPix[1] = (UINT8)(c >> 8);
- pPix[2] = (UINT8)(c >> 16);
- }
- }
-}
-
-// ---------------------------------------------------------------------------
-// Setting up cpus for cheats
-
-struct cpu_core_config {
- void (*open)(INT32); // cpu open
- void (*close)(); // cpu close
-
- UINT8 (*read)(UINT32); // read
- void (*write)(UINT32, UINT8); // write
- INT32 (*active)(); // active cpu
- INT32 (*totalcycles)(); // total cycles
- void (*newframe)(); // new frame
-
- INT32 (*run)(INT32); // execute cycles
- void (*runend)(); // end run
- void (*reset)(); // reset cpu
-
- UINT64 nMemorySize; // how large is our memory range?
- UINT32 nAddressXor; // fix endianness for some cpus
-};
-
-void CpuCheatRegister(INT32 type, cpu_core_config *config);
-
-// burn_memory.cpp
-void BurnInitMemoryManager();
-UINT8 *BurnMalloc(INT32 size);
-void _BurnFree(void *ptr);
-#define BurnFree(x) _BurnFree(x); x = NULL;
-void BurnExitMemoryManager();
-
-// ---------------------------------------------------------------------------
-// Sound clipping macro
-#define BURN_SND_CLIP(A) ((A) < -0x8000 ? -0x8000 : (A) > 0x7fff ? 0x7fff : (A))
-
-// sound routes
-#define BURN_SND_ROUTE_LEFT 1
-#define BURN_SND_ROUTE_RIGHT 2
-#define BURN_SND_ROUTE_BOTH (BURN_SND_ROUTE_LEFT | BURN_SND_ROUTE_RIGHT)
-
-// ---------------------------------------------------------------------------
-// Debug Tracker
-
-extern UINT8 Debug_BurnTransferInitted;
-extern UINT8 Debug_BurnGunInitted;
-extern UINT8 Debug_BurnLedInitted;
-extern UINT8 Debug_BurnShiftInitted;
-extern UINT8 Debug_HiscoreInitted;
-extern UINT8 Debug_GenericTilesInitted;
-
-extern UINT8 DebugDev_8255PPIInitted;
-extern UINT8 DebugDev_8257DMAInitted;
-extern UINT8 DebugDev_EEPROMInitted;
-extern UINT8 DebugDev_PandoraInitted;
-extern UINT8 DebugDev_SeibuSndInitted;
-extern UINT8 DebugDev_SknsSprInitted;
-extern UINT8 DebugDev_SlapsticInitted;
-extern UINT8 DebugDev_T5182Initted;
-extern UINT8 DebugDev_TimeKprInitted;
-extern UINT8 DebugDev_Tms34061Initted;
-extern UINT8 DebugDev_V3021Initted;
-extern UINT8 DebugDev_VDCInitted;
-
-extern UINT8 DebugSnd_AY8910Initted;
-extern UINT8 DebugSnd_Y8950Initted;
-extern UINT8 DebugSnd_YM2151Initted;
-extern UINT8 DebugSnd_YM2203Initted;
-extern UINT8 DebugSnd_YM2413Initted;
-extern UINT8 DebugSnd_YM2608Initted;
-extern UINT8 DebugSnd_YM2610Initted;
-extern UINT8 DebugSnd_YM2612Initted;
-extern UINT8 DebugSnd_YM3526Initted;
-extern UINT8 DebugSnd_YM3812Initted;
-extern UINT8 DebugSnd_YMF278BInitted;
-extern UINT8 DebugSnd_C6280Initted;
-extern UINT8 DebugSnd_DACInitted;
-extern UINT8 DebugSnd_ES5506Initted;
-extern UINT8 DebugSnd_ES8712Initted;
-extern UINT8 DebugSnd_FilterRCInitted;
-extern UINT8 DebugSnd_ICS2115Initted;
-extern UINT8 DebugSnd_IremGA20Initted;
-extern UINT8 DebugSnd_K005289Initted;
-extern UINT8 DebugSnd_K007232Initted;
-extern UINT8 DebugSnd_K051649Initted;
-extern UINT8 DebugSnd_K053260Initted;
-extern UINT8 DebugSnd_K054539Initted;
-extern UINT8 DebugSnd_MSM5205Initted;
-extern UINT8 DebugSnd_MSM5232Initted;
-extern UINT8 DebugSnd_MSM6295Initted;
-extern UINT8 DebugSnd_NamcoSndInitted;
-extern UINT8 DebugSnd_NESAPUSndInitted;
-extern UINT8 DebugSnd_RF5C68Initted;
-extern UINT8 DebugSnd_SAA1099Initted;
-extern UINT8 DebugSnd_SamplesInitted;
-extern UINT8 DebugSnd_SegaPCMInitted;
-extern UINT8 DebugSnd_SN76496Initted;
-extern UINT8 DebugSnd_UPD7759Initted;
-extern UINT8 DebugSnd_VLM5030Initted;
-extern UINT8 DebugSnd_X1010Initted;
-extern UINT8 DebugSnd_YMZ280BInitted;
-
-extern UINT8 DebugCPU_ARM7Initted;
-extern UINT8 DebugCPU_ARMInitted;
-extern UINT8 DebugCPU_H6280Initted;
-extern UINT8 DebugCPU_HD6309Initted;
-extern UINT8 DebugCPU_KonamiInitted;
-extern UINT8 DebugCPU_M6502Initted;
-extern UINT8 DebugCPU_M6800Initted;
-extern UINT8 DebugCPU_M6805Initted;
-extern UINT8 DebugCPU_M6809Initted;
-extern UINT8 DebugCPU_S2650Initted;
-extern UINT8 DebugCPU_SekInitted;
-extern UINT8 DebugCPU_VezInitted;
-extern UINT8 DebugCPU_ZetInitted;
-extern UINT8 DebugCPU_PIC16C5XInitted;
-extern UINT8 DebugCPU_I8039Initted;
-extern UINT8 DebugCPU_SH2Initted;
-
-void DebugTrackerExit();
diff --git a/jan/src/burn/cheat.cpp b/jan/src/burn/cheat.cpp
deleted file mode 100644
index 15c99a297..000000000
--- a/jan/src/burn/cheat.cpp
+++ /dev/null
@@ -1,538 +0,0 @@
-// Cheat module
-
-#include "burnint.h"
-
-#define CHEAT_MAXCPU 8 // enough?
-
-
-bool bCheatsAllowed;
-CheatInfo* pCheatInfo = NULL;
-
-static bool bCheatsEnabled = false;
-static INT32 cheat_core_init_pointer = 0;
-
-struct cheat_core {
- cpu_core_config *cpuconfig;
-
- INT32 nCPU; // which cpu
-};
-
-static struct cheat_core cpus[CHEAT_MAXCPU];
-static cheat_core *cheat_ptr;
-static cpu_core_config *cheat_subptr;
-
-void CpuCheatRegister(INT32 nCPU, cpu_core_config *config)
-{
- cheat_core *s_ptr = &cpus[cheat_core_init_pointer];
-
- s_ptr->cpuconfig = config;
- s_ptr->nCPU = nCPU;
-
- cheat_core_init_pointer++;
-}
-
-INT32 CheatUpdate()
-{
- bCheatsEnabled = false;
-
- if (bCheatsAllowed) {
- CheatInfo* pCurrentCheat = pCheatInfo;
- CheatAddressInfo* pAddressInfo;
-
- while (pCurrentCheat) {
- if (pCurrentCheat->nStatus > 1) {
- pAddressInfo = pCurrentCheat->pOption[pCurrentCheat->nCurrent]->AddressInfo;
- if (pAddressInfo->nAddress) {
- bCheatsEnabled = true;
- }
- }
- pCurrentCheat = pCurrentCheat->pNext;
- }
- }
-
- return 0;
-}
-
-INT32 CheatEnable(INT32 nCheat, INT32 nOption) // -1 / 0 - disable, -2 disable & don't undo memory
-{
- INT32 nCurrentCheat = 0;
- CheatInfo* pCurrentCheat = pCheatInfo;
- CheatAddressInfo* pAddressInfo;
- INT32 nOpenCPU = -1;
- INT32 no_undo = 0;
-
- if (!bCheatsAllowed) {
- return 1;
- }
-
- if (nOption >= CHEAT_MAX_OPTIONS) {
- return 1;
- }
-
- cheat_ptr = &cpus[0]; // first cpu...
- cheat_subptr = cheat_ptr->cpuconfig;
-
- while (pCurrentCheat && nCurrentCheat <= nCheat) {
- if (nCurrentCheat == nCheat) { // Cheat found, let's process it.
- INT32 deactivate = 0;
-
- if (nOption == -1 || nOption == 0 || nOption == -2) { // -2 = dont write back previous
- if (nOption == -2) no_undo = 1;
- nOption = pCurrentCheat->nDefault;
- deactivate = 1;
- }
-
- // Return OK if the cheat is already active with the same option
- if (pCurrentCheat->nCurrent == nOption) {
- return 0;
- }
-
- if (deactivate) { // disable cheat option
- if (pCurrentCheat->nType != 1) {
- nOption = 1; // Set to the first option as there is no addressinfo associated with default (disabled) cheat entry. -dink
-
- // Deactivate old option (if any)
- pAddressInfo = pCurrentCheat->pOption[nOption]->AddressInfo;
-
- while (pAddressInfo->nAddress) {
- if (pAddressInfo->nCPU != nOpenCPU) {
-
- if (nOpenCPU != -1) {
- cheat_subptr->close();
- }
-
- nOpenCPU = pAddressInfo->nCPU;
- cheat_ptr = &cpus[nOpenCPU];
- cheat_subptr = cheat_ptr->cpuconfig;
- cheat_subptr->open(cheat_ptr->nCPU);
- }
-
- if (!no_undo) {
- // Write back original values to memory
- bprintf(0, _T("Cheat #%d, option #%d. action: "), nCheat, nOption);
- bprintf(0, _T("Undo cheat @ 0x%X -> 0x%X.\n"), pAddressInfo->nAddress, pAddressInfo->nOriginalValue);
- cheat_subptr->write(pAddressInfo->nAddress, pAddressInfo->nOriginalValue);
- }
- pAddressInfo++;
- }
- nOption = 0; // Set back to 0 (see above line: nOption = 1;)
- }
- } else { // activate cheat option
- pAddressInfo = pCurrentCheat->pOption[nOption]->AddressInfo;
-
- while (pAddressInfo->nAddress) {
- if (pAddressInfo->nCPU != nOpenCPU) {
- if (nOpenCPU != -1) {
- cheat_subptr->close();
- }
-
- nOpenCPU = pAddressInfo->nCPU;
- cheat_ptr = &cpus[nOpenCPU];
- cheat_subptr = cheat_ptr->cpuconfig;
- cheat_subptr->open(cheat_ptr->nCPU);
- }
-
- pCurrentCheat->bModified = 0;
-
- // Copy the original values
- pAddressInfo->nOriginalValue = cheat_subptr->read(pAddressInfo->nAddress);
-
- bprintf(0, _T("Cheat #%d, option #%d. action: "), nCheat, nOption);
- if (pCurrentCheat->bWatchMode) {
- bprintf(0, _T("Watch memory @ 0x%X (0x%X)\n"), pAddressInfo->nAddress, pAddressInfo->nOriginalValue);
- } else
- if (pCurrentCheat->bOneShot) {
- bprintf(0, _T("Apply cheat @ 0x%X -> 0x%X. (Before 0x%X - One-Shot mode)\n"), pAddressInfo->nAddress, pAddressInfo->nValue, pAddressInfo->nOriginalValue);
- pCurrentCheat->bOneShot = 3; // re-load the one-shot frame counter
- } else {
- bprintf(0, _T("Apply cheat @ 0x%X -> 0x%X. (Undo 0x%X)\n"), pAddressInfo->nAddress, pAddressInfo->nValue, pAddressInfo->nOriginalValue);
- }
- if (pCurrentCheat->bWaitForModification)
- bprintf(0, _T(" - Triggered by: Waiting for modification!\n"));
-
- if (pCurrentCheat->nType != 0) {
- if (pAddressInfo->nCPU != nOpenCPU) {
- if (nOpenCPU != -1) {
- cheat_subptr->close();
- }
-
- nOpenCPU = pAddressInfo->nCPU;
- cheat_ptr = &cpus[nOpenCPU];
- cheat_subptr = cheat_ptr->cpuconfig;
- cheat_subptr->open(cheat_ptr->nCPU);
- }
-
- if (!pCurrentCheat->bWatchMode && !pCurrentCheat->bWaitForModification) {
- // Activate the cheat
- cheat_subptr->write(pAddressInfo->nAddress, pAddressInfo->nValue);
- }
- }
-
- pAddressInfo++;
- }
- }
-
- // Set cheat status and active option
- if (pCurrentCheat->nType != 1) {
- pCurrentCheat->nCurrent = nOption;
- }
- if (pCurrentCheat->nType == 0) {
- pCurrentCheat->nStatus = 2;
- }
- if (pCurrentCheat->nType == 2) {
- pCurrentCheat->nStatus = 1;
- }
-
- break;
- }
- pCurrentCheat = pCurrentCheat->pNext;
- nCurrentCheat++;
- }
-
- if (nOpenCPU != -1) {
- cheat_subptr->close();
- }
-
- CheatUpdate();
-
- if (nCurrentCheat == nCheat && pCurrentCheat) {
- return 0;
- }
-
- return 1;
-}
-
-#if defined (BUILD_WIN32)
-extern INT32 VidSNewTinyMsg(const TCHAR* pText, INT32 nRGB = 0, INT32 nDuration = 0, INT32 nPriority = 5);
-#endif
-
-INT32 CheatApply()
-{
- if (!bCheatsEnabled) {
- return 0;
- }
-
- INT32 nOpenCPU = -1;
- INT32 nCurrentCheat = 0;
-
- CheatInfo* pCurrentCheat = pCheatInfo;
- CheatAddressInfo* pAddressInfo;
- while (pCurrentCheat) {
- if (pCurrentCheat->nStatus > 1) {
- pAddressInfo = pCurrentCheat->pOption[pCurrentCheat->nCurrent]->AddressInfo;
-
- while (pAddressInfo->nAddress) {
-
- if (pAddressInfo->nCPU != nOpenCPU) {
- if (nOpenCPU != -1) {
- cheat_subptr->close();
- }
-
- nOpenCPU = pAddressInfo->nCPU;
- cheat_ptr = &cpus[nOpenCPU];
- cheat_subptr = cheat_ptr->cpuconfig;
- cheat_subptr->open(cheat_ptr->nCPU);
- }
-
- if (pCurrentCheat->bWatchMode) {
- // Watch address mode, Win32-only for now.
-#if defined (BUILD_WIN32)
- pAddressInfo->nOriginalValue = cheat_subptr->read(pAddressInfo->nAddress);
- wchar_t framestring[32];
- swprintf(framestring, L"%X", pAddressInfo->nOriginalValue);
- VidSNewTinyMsg(framestring, 0, 5, 5);
-#endif
- } else {
- // update the cheat
- if (pCurrentCheat->bWaitForModification) {
- UINT32 nValNow = cheat_subptr->read(pAddressInfo->nAddress);
- if (nValNow != pAddressInfo->nOriginalValue) {
- bprintf(0, _T(" - Address modified! old = %X new = %X\n"),pAddressInfo->nOriginalValue, nValNow);
- cheat_subptr->write(pAddressInfo->nAddress, pAddressInfo->nValue);
- pCurrentCheat->bModified = 1;
- pAddressInfo->nOriginalValue = pAddressInfo->nValue;
- }
- } else {
- // Write the value.
- cheat_subptr->write(pAddressInfo->nAddress, pAddressInfo->nValue);
- pCurrentCheat->bModified = 1;
- }
- }
- pAddressInfo++;
- }
- if (pCurrentCheat->bModified) {
- if (pCurrentCheat->bOneShot == 2) {
- if (nOpenCPU != -1) {
- cheat_subptr->close();
- nOpenCPU = -1;
- }
- bprintf(0, _T("One-Shot cheat #%d ends.\n"), nCurrentCheat);
- CheatEnable(nCurrentCheat, -2);
- }
- if (pCurrentCheat->bOneShot > 1) pCurrentCheat->bOneShot--;
- }
- }
- pCurrentCheat = pCurrentCheat->pNext;
- nCurrentCheat++;
- }
-
- if (nOpenCPU != -1) {
- cheat_subptr->close();
- }
-
- return 0;
-}
-
-INT32 CheatInit()
-{
- CheatExit();
-
- bCheatsEnabled = false;
-
- return 0;
-}
-
-void CheatExit()
-{
- if (pCheatInfo) {
- CheatInfo* pCurrentCheat = pCheatInfo;
- CheatInfo* pNextCheat;
-
- do {
- pNextCheat = pCurrentCheat->pNext;
- for (INT32 i = 0; i < CHEAT_MAX_OPTIONS; i++) {
- BurnFree(pCurrentCheat->pOption[i]);
- }
- BurnFree(pCurrentCheat);
- } while ((pCurrentCheat = pNextCheat) != 0);
- }
-
- memset (cpus, 0, sizeof(cheat_core));
-
- cheat_core_init_pointer = 0;
-
- pCheatInfo = NULL;
-
- CheatSearchInitCallbackFunction = NULL;
-}
-
-// Cheat search
-
-static UINT8 *MemoryValues = NULL;
-static UINT8 *MemoryStatus = NULL;
-static UINT32 nMemorySize = 0;
-CheatSearchInitCallback CheatSearchInitCallbackFunction = NULL;
-
-#define NOT_IN_RESULTS 0
-#define IN_RESULTS 1
-
-UINT32 CheatSearchShowResultAddresses[CHEATSEARCH_SHOWRESULTS];
-UINT32 CheatSearchShowResultValues[CHEATSEARCH_SHOWRESULTS];
-
-INT32 CheatSearchInit()
-{
- return 1;
-}
-
-void CheatSearchExit()
-{
- BurnFree(MemoryValues);
- BurnFree(MemoryStatus);
-
- nMemorySize = 0;
-
- memset(CheatSearchShowResultAddresses, 0, CHEATSEARCH_SHOWRESULTS);
- memset(CheatSearchShowResultValues, 0, CHEATSEARCH_SHOWRESULTS);
-}
-
-void CheatSearchStart()
-{
- UINT32 nAddress;
-
- INT32 nActiveCPU = 0;
- cheat_ptr = &cpus[nActiveCPU];
- cheat_subptr = cheat_ptr->cpuconfig;
- cheat_subptr->open(cheat_ptr->nCPU);
-
- nActiveCPU = cheat_subptr->active();
- if (nActiveCPU >= 0) cheat_subptr->close();
- cheat_subptr->open(cheat_ptr->nCPU);
- nMemorySize = cheat_subptr->nMemorySize;
-
- MemoryValues = (UINT8*)BurnMalloc(nMemorySize);
- MemoryStatus = (UINT8*)BurnMalloc(nMemorySize);
-
- memset(MemoryStatus, IN_RESULTS, nMemorySize);
-
- if (CheatSearchInitCallbackFunction) CheatSearchInitCallbackFunction();
-
- for (nAddress = 0; nAddress < nMemorySize; nAddress++) {
- if (MemoryStatus[nAddress] == NOT_IN_RESULTS) continue;
- MemoryValues[nAddress] = cheat_subptr->read(nAddress);
- }
-
- cheat_subptr->close();
- if (nActiveCPU >= 0) cheat_subptr->open(nActiveCPU);
-}
-
-static void CheatSearchGetResults()
-{
- UINT32 nAddress;
- UINT32 nResultsPos = 0;
-
- memset(CheatSearchShowResultAddresses, 0, CHEATSEARCH_SHOWRESULTS);
- memset(CheatSearchShowResultValues, 0, CHEATSEARCH_SHOWRESULTS);
-
- for (nAddress = 0; nAddress < nMemorySize; nAddress++) {
- if (MemoryStatus[nAddress] == IN_RESULTS) {
- CheatSearchShowResultAddresses[nResultsPos] = nAddress;
- CheatSearchShowResultValues[nResultsPos] = MemoryValues[nAddress];
- nResultsPos++;
- }
- }
-}
-
-UINT32 CheatSearchValueNoChange()
-{
- UINT32 nMatchedAddresses = 0;
- UINT32 nAddress;
-
- INT32 nActiveCPU = 0;
-
- nActiveCPU = cheat_subptr->active();
- if (nActiveCPU >= 0) cheat_subptr->close();
- cheat_subptr->open(0);
-
- for (nAddress = 0; nAddress < nMemorySize; nAddress++) {
- if (MemoryStatus[nAddress] == NOT_IN_RESULTS) continue;
- if (cheat_subptr->read(nAddress) == MemoryValues[nAddress]) {
- MemoryValues[nAddress] = cheat_subptr->read(nAddress);
- nMatchedAddresses++;
- } else {
- MemoryStatus[nAddress] = NOT_IN_RESULTS;
- }
- }
-
- cheat_subptr->close();
- if (nActiveCPU >= 0) cheat_subptr->open(nActiveCPU);
-
- if (nMatchedAddresses <= CHEATSEARCH_SHOWRESULTS) CheatSearchGetResults();
-
- return nMatchedAddresses;
-}
-
-UINT32 CheatSearchValueChange()
-{
- UINT32 nMatchedAddresses = 0;
- UINT32 nAddress;
-
- INT32 nActiveCPU = 0;
-
- nActiveCPU = cheat_subptr->active();
- if (nActiveCPU >= 0) cheat_subptr->close();
- cheat_subptr->open(0);
-
- for (nAddress = 0; nAddress < nMemorySize; nAddress++) {
- if (MemoryStatus[nAddress] == NOT_IN_RESULTS) continue;
- if (cheat_subptr->read(nAddress) != MemoryValues[nAddress]) {
- MemoryValues[nAddress] = cheat_subptr->read(nAddress);
- nMatchedAddresses++;
- } else {
- MemoryStatus[nAddress] = NOT_IN_RESULTS;
- }
- }
-
- cheat_subptr->close();
- if (nActiveCPU >= 0) cheat_subptr->open(nActiveCPU);
-
- if (nMatchedAddresses <= CHEATSEARCH_SHOWRESULTS) CheatSearchGetResults();
-
- return nMatchedAddresses;
-}
-
-UINT32 CheatSearchValueDecreased()
-{
- UINT32 nMatchedAddresses = 0;
- UINT32 nAddress;
-
- INT32 nActiveCPU = 0;
-
- nActiveCPU = cheat_subptr->active();
- if (nActiveCPU >= 0) cheat_subptr->close();
- cheat_subptr->open(0);
-
- for (nAddress = 0; nAddress < nMemorySize; nAddress++) {
- if (MemoryStatus[nAddress] == NOT_IN_RESULTS) continue;
- if (cheat_subptr->read(nAddress) < MemoryValues[nAddress]) {
- MemoryValues[nAddress] = cheat_subptr->read(nAddress);
- nMatchedAddresses++;
- } else {
- MemoryStatus[nAddress] = NOT_IN_RESULTS;
- }
- }
-
- cheat_subptr->close();
- if (nActiveCPU >= 0) cheat_subptr->open(nActiveCPU);
-
- if (nMatchedAddresses <= CHEATSEARCH_SHOWRESULTS) CheatSearchGetResults();
-
- return nMatchedAddresses;
-}
-
-UINT32 CheatSearchValueIncreased()
-{
- UINT32 nMatchedAddresses = 0;
- UINT32 nAddress;
-
- INT32 nActiveCPU = 0;
-
- nActiveCPU = cheat_subptr->active();
- if (nActiveCPU >= 0) cheat_subptr->close();
- cheat_subptr->open(0);
-
- for (nAddress = 0; nAddress < nMemorySize; nAddress++) {
- if (MemoryStatus[nAddress] == NOT_IN_RESULTS) continue;
- if (cheat_subptr->read(nAddress) > MemoryValues[nAddress]) {
- MemoryValues[nAddress] = cheat_subptr->read(nAddress);
- nMatchedAddresses++;
- } else {
- MemoryStatus[nAddress] = NOT_IN_RESULTS;
- }
- }
-
- cheat_subptr->close();
- if (nActiveCPU >= 0) cheat_subptr->open(nActiveCPU);
-
- if (nMatchedAddresses <= CHEATSEARCH_SHOWRESULTS) CheatSearchGetResults();
-
- return nMatchedAddresses;
-}
-
-void CheatSearchDumptoFile()
-{
- FILE *fp = fopen("cheatsearchdump.txt", "wt");
- UINT32 nAddress;
-
- if (fp) {
- char Temp[256];
-
- for (nAddress = 0; nAddress < nMemorySize; nAddress++) {
- if (MemoryStatus[nAddress] == IN_RESULTS) {
- sprintf(Temp, "Address %08X Value %02X\n", nAddress, MemoryValues[nAddress]);
- fwrite(Temp, 1, strlen(Temp), fp);
- }
- }
-
- fclose(fp);
- }
-}
-
-void CheatSearchExcludeAddressRange(UINT32 nStart, UINT32 nEnd)
-{
- for (UINT32 nAddress = nStart; nAddress <= nEnd; nAddress++) {
- MemoryStatus[nAddress] = NOT_IN_RESULTS;
- }
-}
-
-#undef NOT_IN_RESULTS
-#undef IN_RESULTS
diff --git a/jan/src/burn/cheat.h b/jan/src/burn/cheat.h
deleted file mode 100644
index c9bf79677..000000000
--- a/jan/src/burn/cheat.h
+++ /dev/null
@@ -1,57 +0,0 @@
-#define CHEAT_MAX_ADDRESS (512)
-#define CHEAT_MAX_OPTIONS (512)
-#define CHEAT_MAX_NAME (128)
-
-extern bool bCheatsAllowed;
-
-struct CheatAddressInfo {
- INT32 nCPU;
- INT32 nAddress;
- UINT32 nValue;
- UINT32 nOriginalValue;
-};
-
-struct CheatOption {
- TCHAR szOptionName[CHEAT_MAX_NAME];
- struct CheatAddressInfo AddressInfo[CHEAT_MAX_ADDRESS + 1];
-};
-
-struct CheatInfo {
- struct CheatInfo* pNext;
- struct CheatInfo* pPrevious;
- INT32 nType; // Cheat type
- INT32 nStatus; // 0 = Inactive
- INT32 nCurrent; // Currently selected option
- INT32 nDefault; // Default option
- INT32 bOneShot; // For one-shot cheats, also acts as a frame counter for them.
- INT32 bWatchMode; // Display value on screen
- INT32 bWaitForModification; // Wait for Modification before changing
- INT32 bModified; // Wrote cheat?
- TCHAR szCheatName[CHEAT_MAX_NAME];
- struct CheatOption* pOption[CHEAT_MAX_OPTIONS];
-};
-
-extern CheatInfo* pCheatInfo;
-
-INT32 CheatUpdate();
-INT32 CheatEnable(INT32 nCheat, INT32 nOption);
-INT32 CheatApply();
-INT32 CheatInit();
-void CheatExit();
-
-#define CHEATSEARCH_SHOWRESULTS 3
-extern UINT32 CheatSearchShowResultAddresses[CHEATSEARCH_SHOWRESULTS];
-extern UINT32 CheatSearchShowResultValues[CHEATSEARCH_SHOWRESULTS];
-
-INT32 CheatSearchInit();
-void CheatSearchExit();
-void CheatSearchStart();
-UINT32 CheatSearchValueNoChange();
-UINT32 CheatSearchValueChange();
-UINT32 CheatSearchValueDecreased();
-UINT32 CheatSearchValueIncreased();
-void CheatSearchDumptoFile();
-
-typedef void (*CheatSearchInitCallback)();
-extern CheatSearchInitCallback CheatSearchInitCallbackFunction;
-void CheatSearchExcludeAddressRange(UINT32 nStart, UINT32 nEnd);
diff --git a/jan/src/burn/debug_track.cpp b/jan/src/burn/debug_track.cpp
deleted file mode 100644
index 7b18e9af1..000000000
--- a/jan/src/burn/debug_track.cpp
+++ /dev/null
@@ -1,155 +0,0 @@
-// A module to track if various support devices, cpus, sound modules are in use
-
-#include "burnint.h"
-
-UINT8 Debug_BurnTransferInitted;
-UINT8 Debug_BurnGunInitted;
-UINT8 Debug_BurnLedInitted;
-UINT8 Debug_BurnShiftInitted;
-UINT8 Debug_HiscoreInitted;
-UINT8 Debug_GenericTilesInitted;
-
-UINT8 DebugDev_8255PPIInitted;
-UINT8 DebugDev_8257DMAInitted;
-UINT8 DebugDev_EEPROMInitted;
-UINT8 DebugDev_PandoraInitted;
-UINT8 DebugDev_SeibuSndInitted;
-UINT8 DebugDev_SknsSprInitted;
-UINT8 DebugDev_SlapsticInitted;
-UINT8 DebugDev_T5182Initted;
-UINT8 DebugDev_TimeKprInitted;
-UINT8 DebugDev_Tms34061Initted;
-UINT8 DebugDev_V3021Initted;
-UINT8 DebugDev_VDCInitted;
-
-UINT8 DebugSnd_AY8910Initted;
-UINT8 DebugSnd_Y8950Initted;
-UINT8 DebugSnd_YM2151Initted;
-UINT8 DebugSnd_YM2203Initted;
-UINT8 DebugSnd_YM2413Initted;
-UINT8 DebugSnd_YM2608Initted;
-UINT8 DebugSnd_YM2610Initted;
-UINT8 DebugSnd_YM2612Initted;
-UINT8 DebugSnd_YM3526Initted;
-UINT8 DebugSnd_YM3812Initted;
-UINT8 DebugSnd_YMF278BInitted;
-UINT8 DebugSnd_C6280Initted;
-UINT8 DebugSnd_DACInitted;
-UINT8 DebugSnd_ES5506Initted;
-UINT8 DebugSnd_ES8712Initted;
-UINT8 DebugSnd_FilterRCInitted;
-UINT8 DebugSnd_ICS2115Initted;
-UINT8 DebugSnd_IremGA20Initted;
-UINT8 DebugSnd_K005289Initted;
-UINT8 DebugSnd_K007232Initted;
-UINT8 DebugSnd_K051649Initted;
-UINT8 DebugSnd_K053260Initted;
-UINT8 DebugSnd_K054539Initted;
-UINT8 DebugSnd_MSM5205Initted;
-UINT8 DebugSnd_MSM5232Initted;
-UINT8 DebugSnd_MSM6295Initted;
-UINT8 DebugSnd_NamcoSndInitted;
-UINT8 DebugSnd_NESAPUSndInitted;
-UINT8 DebugSnd_RF5C68Initted;
-UINT8 DebugSnd_SAA1099Initted;
-UINT8 DebugSnd_SamplesInitted;
-UINT8 DebugSnd_SegaPCMInitted;
-UINT8 DebugSnd_SN76496Initted;
-UINT8 DebugSnd_UPD7759Initted;
-UINT8 DebugSnd_VLM5030Initted;
-UINT8 DebugSnd_X1010Initted;
-UINT8 DebugSnd_YMZ280BInitted;
-
-UINT8 DebugCPU_ARM7Initted;
-UINT8 DebugCPU_ARMInitted;
-UINT8 DebugCPU_H6280Initted;
-UINT8 DebugCPU_HD6309Initted;
-UINT8 DebugCPU_KonamiInitted;
-UINT8 DebugCPU_M6502Initted;
-UINT8 DebugCPU_M6800Initted;
-UINT8 DebugCPU_M6805Initted;
-UINT8 DebugCPU_M6809Initted;
-UINT8 DebugCPU_S2650Initted;
-UINT8 DebugCPU_SekInitted;
-UINT8 DebugCPU_VezInitted;
-UINT8 DebugCPU_ZetInitted;
-UINT8 DebugCPU_PIC16C5XInitted;
-UINT8 DebugCPU_I8039Initted;
-UINT8 DebugCPU_SH2Initted;
-
-void DebugTrackerExit()
-{
- if (Debug_BurnTransferInitted) bprintf(PRINT_ERROR, _T("BurnTransfer Not Exited\n"));
- if (Debug_BurnGunInitted) bprintf(PRINT_ERROR, _T("BurnGun Not Exited\n"));
- if (Debug_BurnLedInitted) bprintf(PRINT_ERROR, _T("BurnLed Not Exited\n"));
- if (Debug_BurnShiftInitted) bprintf(PRINT_ERROR, _T("BurnShit Not Exited\n"));
- if (Debug_HiscoreInitted) bprintf(PRINT_ERROR, _T("Hiscore Not Exited\n"));
- if (Debug_GenericTilesInitted) bprintf(PRINT_ERROR, _T("GenericTiles Not Exited\n"));
-
- if (DebugDev_8255PPIInitted) bprintf(PRINT_ERROR, _T("Device 8255PPI Not Exited\n"));
- if (DebugDev_8257DMAInitted) bprintf(PRINT_ERROR, _T("Device 8257DMA Not Exited\n"));
- if (DebugDev_EEPROMInitted) bprintf(PRINT_ERROR, _T("Device EEPROM Not Exited\n"));
- if (DebugDev_PandoraInitted) bprintf(PRINT_ERROR, _T("Device Pandora Not Exited\n"));
- if (DebugDev_SeibuSndInitted) bprintf(PRINT_ERROR, _T("Device SeibuSnd Not Exited\n"));
- if (DebugDev_SknsSprInitted) bprintf(PRINT_ERROR, _T("Device SknsSpr Not Exited\n"));
- if (DebugDev_SlapsticInitted) bprintf(PRINT_ERROR, _T("Device Slapstic Not Exited\n"));
- if (DebugDev_T5182Initted) bprintf(PRINT_ERROR, _T("Device T5182 Not Exited\n"));
- if (DebugDev_TimeKprInitted) bprintf(PRINT_ERROR, _T("Device TimeKpr Not Exited\n"));
- if (DebugDev_Tms34061Initted) bprintf(PRINT_ERROR, _T("Device TMS34061 Not Exited\n"));
- if (DebugDev_V3021Initted) bprintf(PRINT_ERROR, _T("Device V3021 Not Exited\n"));
- if (DebugDev_VDCInitted) bprintf(PRINT_ERROR, _T("Device VDC Not Exited\n"));
-
- if (DebugSnd_AY8910Initted) bprintf(PRINT_ERROR, _T("Sound Module AY8910 Not Exited\n"));
- if (DebugSnd_Y8950Initted) bprintf(PRINT_ERROR, _T("Sound Module Y8950 Not Exited\n"));
- if (DebugSnd_YM2151Initted) bprintf(PRINT_ERROR, _T("Sound Module YM2151 Not Exited\n"));
- if (DebugSnd_YM2203Initted) bprintf(PRINT_ERROR, _T("Sound Module YM2203 Not Exited\n"));
- if (DebugSnd_YM2413Initted) bprintf(PRINT_ERROR, _T("Sound Module YM2413 Not Exited\n"));
- if (DebugSnd_YM2608Initted) bprintf(PRINT_ERROR, _T("Sound Module YM2608 Not Exited\n"));
- if (DebugSnd_YM2610Initted) bprintf(PRINT_ERROR, _T("Sound Module YM2610 Not Exited\n"));
- if (DebugSnd_YM2612Initted) bprintf(PRINT_ERROR, _T("Sound Module YM2612 Not Exited\n"));
- if (DebugSnd_YM3526Initted) bprintf(PRINT_ERROR, _T("Sound Module YM3526 Not Exited\n"));
- if (DebugSnd_YM3812Initted) bprintf(PRINT_ERROR, _T("Sound Module YM3812 Not Exited\n"));
- if (DebugSnd_YMF278BInitted) bprintf(PRINT_ERROR, _T("Sound Module YMF278B Not Exited\n"));
- if (DebugSnd_C6280Initted) bprintf(PRINT_ERROR, _T("Sound Module C6280 Not Exited\n"));
- if (DebugSnd_DACInitted) bprintf(PRINT_ERROR, _T("Sound Module DAC Not Exited\n"));
- if (DebugSnd_ES5506Initted) bprintf(PRINT_ERROR, _T("Sound Module ES5506 Not Exited\n"));
- if (DebugSnd_ES8712Initted) bprintf(PRINT_ERROR, _T("Sound Module ES8712 Not Exited\n"));
- if (DebugSnd_FilterRCInitted) bprintf(PRINT_ERROR, _T("Sound Module Filter RC Not Exited\n"));
- if (DebugSnd_ICS2115Initted) bprintf(PRINT_ERROR, _T("Sound Module ICS2115 Not Exited\n"));
- if (DebugSnd_IremGA20Initted) bprintf(PRINT_ERROR, _T("Sound Module IremGA20 Not Exited\n"));
- if (DebugSnd_K005289Initted) bprintf(PRINT_ERROR, _T("Sound Module K005289 Not Exited\n"));
- if (DebugSnd_K007232Initted) bprintf(PRINT_ERROR, _T("Sound Module K007232 Not Exited\n"));
- if (DebugSnd_K051649Initted) bprintf(PRINT_ERROR, _T("Sound Module K051649 Not Exited\n"));
- if (DebugSnd_K053260Initted) bprintf(PRINT_ERROR, _T("Sound Module K053260 Not Exited\n"));
- if (DebugSnd_K054539Initted) bprintf(PRINT_ERROR, _T("Sound Module K054539 Not Exited\n"));
- if (DebugSnd_MSM5205Initted) bprintf(PRINT_ERROR, _T("Sound Module MSM5205 Not Exited\n"));
- if (DebugSnd_MSM5232Initted) bprintf(PRINT_ERROR, _T("Sound Module MSM5232 Not Exited\n"));
- if (DebugSnd_MSM6295Initted) bprintf(PRINT_ERROR, _T("Sound Module MSM6295 Not Exited\n"));
- if (DebugSnd_NamcoSndInitted) bprintf(PRINT_ERROR, _T("Sound Module NamcoSnd Not Exited\n"));
- if (DebugSnd_NESAPUSndInitted) bprintf(PRINT_ERROR, _T("Sound Module NESAPUSnd Not Exited\n"));
- if (DebugSnd_SAA1099Initted) bprintf(PRINT_ERROR, _T("Sound Module SAA1099 Not Exited\n"));
- if (DebugSnd_SamplesInitted) bprintf(PRINT_ERROR, _T("Sound Module Samples Not Exited\n"));
- if (DebugSnd_SegaPCMInitted) bprintf(PRINT_ERROR, _T("Sound Module SegaPCM Not Exited\n"));
- if (DebugSnd_SN76496Initted) bprintf(PRINT_ERROR, _T("Sound Module SN76496 Not Exited\n"));
- if (DebugSnd_UPD7759Initted) bprintf(PRINT_ERROR, _T("Sound Module UPD7759 Not Exited\n"));
- if (DebugSnd_VLM5030Initted) bprintf(PRINT_ERROR, _T("Sound Module VLM5030 Not Exited\n"));
- if (DebugSnd_X1010Initted) bprintf(PRINT_ERROR, _T("Sound Module X1010 Not Exited\n"));
- if (DebugSnd_YMZ280BInitted) bprintf(PRINT_ERROR, _T("Sound Module YMZ280B Not Exited\n"));
-
- if (DebugCPU_ARM7Initted) bprintf(PRINT_ERROR, _T("CPU ARM7 Not Exited\n"));
- if (DebugCPU_ARMInitted) bprintf(PRINT_ERROR, _T("CPU ARM Not Exited\n"));
- if (DebugCPU_H6280Initted) bprintf(PRINT_ERROR, _T("CPU H6280 Not Exited\n"));
- if (DebugCPU_HD6309Initted) bprintf(PRINT_ERROR, _T("CPU HD6309 Not Exited\n"));
- if (DebugCPU_KonamiInitted) bprintf(PRINT_ERROR, _T("CPU Konami Not Exited\n"));
- if (DebugCPU_M6502Initted) bprintf(PRINT_ERROR, _T("CPU M6502 Not Exited\n"));
- if (DebugCPU_M6800Initted) bprintf(PRINT_ERROR, _T("CPU M6800 Not Exited\n"));
- if (DebugCPU_M6805Initted) bprintf(PRINT_ERROR, _T("CPU M6805 Not Exited\n"));
- if (DebugCPU_M6809Initted) bprintf(PRINT_ERROR, _T("CPU M6809 Not Exited\n"));
- if (DebugCPU_S2650Initted) bprintf(PRINT_ERROR, _T("CPU S2650 Not Exited\n"));
- if (DebugCPU_SekInitted) bprintf(PRINT_ERROR, _T("CPU Sek Not Exited\n"));
- if (DebugCPU_VezInitted) bprintf(PRINT_ERROR, _T("CPU Vez Not Exited\n"));
- if (DebugCPU_ZetInitted) bprintf(PRINT_ERROR, _T("CPU Zet Not Exited\n"));
- if (DebugCPU_PIC16C5XInitted) bprintf(PRINT_ERROR, _T("CPU PIC16C5X Not Exited\n"));
- if (DebugCPU_I8039Initted) bprintf(PRINT_ERROR, _T("CPU I8039 Not Exited\n"));
- if (DebugCPU_SH2Initted) bprintf(PRINT_ERROR, _T("CPU SH2 Not Exited\n"));
-}
diff --git a/jan/src/burn/devices/6821pia.cpp b/jan/src/burn/devices/6821pia.cpp
deleted file mode 100644
index 71531aaf7..000000000
--- a/jan/src/burn/devices/6821pia.cpp
+++ /dev/null
@@ -1,1015 +0,0 @@
-/**********************************************************************
-
- Motorola 6821 PIA interface and emulation
-
- This function emulates all the functionality of up to 8 M6821
- peripheral interface adapters.
-
- MAME sources by Nathan Woods
-
-**********************************************************************/
-
-#include
-#include
-#include "burnint.h"
-#include "6821pia.h"
-
-#ifdef __LP64__
-#define FPTR unsigned long /* 64bit: sizeof(void *) is sizeof(long) */
-#else
-#define FPTR unsigned int
-#endif
-
-#define VERBOSE 0
-
-#if VERBOSE
-#define LOG(x) logerror x
-#else
-#define LOG(x)
-#endif
-
-
-/******************* internal PIA data structure *******************/
-
-struct pia6821
-{
- const struct pia6821_interface *intf;
- UINT8 addr;
-
- UINT8 in_a;
- UINT8 in_ca1;
- UINT8 in_ca2;
- UINT8 out_a;
- UINT8 out_ca2;
- UINT8 ddr_a;
- UINT8 ctl_a;
- UINT8 irq_a1;
- UINT8 irq_a2;
- UINT8 irq_a_state;
-
- UINT8 in_b;
- UINT8 in_cb1;
- UINT8 in_cb2;
- UINT8 out_b;
- UINT8 out_cb2;
- UINT8 ddr_b;
- UINT8 ctl_b;
- UINT8 irq_b1;
- UINT8 irq_b2;
- UINT8 irq_b_state;
- UINT8 in_set; // which input ports are set
-};
-
-
-/******************* convenince macros and defines *******************/
-
-#define PIA_IRQ1 0x80
-#define PIA_IRQ2 0x40
-
-#define IRQ1_ENABLED(c) (c & 0x01)
-#define IRQ1_DISABLED(c) (!(c & 0x01))
-#define C1_LOW_TO_HIGH(c) (c & 0x02)
-#define C1_HIGH_TO_LOW(c) (!(c & 0x02))
-#define OUTPUT_SELECTED(c) (c & 0x04)
-#define DDR_SELECTED(c) (!(c & 0x04))
-#define IRQ2_ENABLED(c) (c & 0x08)
-#define IRQ2_DISABLED(c) (!(c & 0x08))
-#define STROBE_E_RESET(c) (c & 0x08)
-#define STROBE_C1_RESET(c) (!(c & 0x08))
-#define SET_C2(c) (c & 0x08)
-#define RESET_C2(c) (!(c & 0x08))
-#define C2_LOW_TO_HIGH(c) (c & 0x10)
-#define C2_HIGH_TO_LOW(c) (!(c & 0x10))
-#define C2_SET_MODE(c) (c & 0x10)
-#define C2_STROBE_MODE(c) (!(c & 0x10))
-#define C2_OUTPUT(c) (c & 0x20)
-#define C2_INPUT(c) (!(c & 0x20))
-
-#define PIA_IN_SET_A 0x01
-#define PIA_IN_SET_CA1 0x02
-#define PIA_IN_SET_CA2 0x04
-#define PIA_IN_SET_B 0x08
-#define PIA_IN_SET_CB1 0x10
-#define PIA_IN_SET_CB2 0x20
-
-/******************* static variables *******************/
-
-static struct pia6821 pia[MAX_PIA];
-
-static const UINT8 swizzle_address[4] = { 0, 2, 1, 3 };
-
-
-
-/******************* stave state *******************/
-#if 0
-static void update_6821_interrupts(struct pia6821 *p);
-
-static void pia_postload(int which)
-{
- struct pia6821 *p = pia + which;
- update_6821_interrupts(p);
- if (p->intf->out_a_func && p->ddr_a) p->intf->out_a_func(0, p->out_a & p->ddr_a);
- if (p->intf->out_b_func && p->ddr_b) p->intf->out_b_func(0, p->out_b & p->ddr_b);
- if (p->intf->out_ca2_func) p->intf->out_ca2_func(0, p->out_ca2);
- if (p->intf->out_cb2_func) p->intf->out_cb2_func(0, p->out_cb2);
-}
-
-static void pia_postload_0(void)
-{
- pia_postload(0);
-}
-
-static void pia_postload_1(void)
-{
- pia_postload(1);
-}
-
-static void pia_postload_2(void)
-{
- pia_postload(2);
-}
-
-static void pia_postload_3(void)
-{
- pia_postload(3);
-}
-
-static void pia_postload_4(void)
-{
- pia_postload(4);
-}
-
-static void pia_postload_5(void)
-{
- pia_postload(5);
-}
-
-static void pia_postload_6(void)
-{
- pia_postload(6);
-}
-
-static void pia_postload_7(void)
-{
- pia_postload(7);
-}
-
-static void (*pia_postload_funcs[MAX_PIA])(void) =
-{
- pia_postload_0,
- pia_postload_1,
- pia_postload_2,
- pia_postload_3,
- pia_postload_4,
- pia_postload_5,
- pia_postload_6,
- pia_postload_7
-};
-
-void pia_init(int count)
-{
- int i;
- for (i = 0; i < count; i++)
- {
- state_save_register_UINT8("6821pia", i, "in_a", &pia[i].in_a, 1);
- state_save_register_UINT8("6821pia", i, "in_ca1", &pia[i].in_ca1, 1);
- state_save_register_UINT8("6821pia", i, "in_ca2", &pia[i].in_ca2, 1);
- state_save_register_UINT8("6821pia", i, "out_a", &pia[i].out_a, 1);
- state_save_register_UINT8("6821pia", i, "out_ca2", &pia[i].out_ca2, 1);
- state_save_register_UINT8("6821pia", i, "ddr_a", &pia[i].ddr_a, 1);
- state_save_register_UINT8("6821pia", i, "ctl_a", &pia[i].ctl_a, 1);
- state_save_register_UINT8("6821pia", i, "irq_a1", &pia[i].irq_a1, 1);
- state_save_register_UINT8("6821pia", i, "irq_a2", &pia[i].irq_a2, 1);
- state_save_register_UINT8("6821pia", i, "in_b", &pia[i].in_b, 1);
- state_save_register_UINT8("6821pia", i, "in_cb1", &pia[i].in_cb1, 1);
- state_save_register_UINT8("6821pia", i, "in_cb2", &pia[i].in_cb2, 1);
- state_save_register_UINT8("6821pia", i, "out_b", &pia[i].out_b, 1);
- state_save_register_UINT8("6821pia", i, "out_cb2", &pia[i].out_cb2, 1);
- state_save_register_UINT8("6821pia", i, "ddr_b", &pia[i].ddr_b, 1);
- state_save_register_UINT8("6821pia", i, "ctl_b", &pia[i].ctl_b, 1);
- state_save_register_UINT8("6821pia", i, "irq_b1", &pia[i].irq_b1, 1);
- state_save_register_UINT8("6821pia", i, "irq_b2", &pia[i].irq_b2, 1);
- state_save_register_UINT8("6821pia", i, "in_set", &pia[i].in_set, 1);
- state_save_register_func_postload(pia_postload_funcs[i]);
- }
-}
-#endif
-
-/******************* un-configuration *******************/
-
-void pia_init(void) // was pia_unconfig
-{
- memset(&pia, 0, sizeof(pia));
-}
-
-void pia_exit(void)
-{
- pia_init();
-}
-
-/******************* configuration *******************/
-
-void pia_config(int which, int addressing, const struct pia6821_interface *intf)
-{
- if (which >= MAX_PIA) return;
- memset(&pia[which], 0, sizeof(pia[0]));
- if (!intf) return;
- pia[which].intf = intf;
- pia[which].addr = addressing;
- // set default read values.
- // Ports A,CA1,CA2 default to 1
- // Ports B,CB1,CB2 are three-state and undefined (set to 0)
- pia[which].in_a = pia[which].in_ca1 = pia[which].in_ca2 = 0xff;
- if ((intf->in_a_func) && ((FPTR)(intf->in_a_func) <= 0x100))
- { pia[which].in_a = ((FPTR)(intf->in_a_func) - 1); pia[which].in_set |= PIA_IN_SET_A; }
- if ((intf->in_b_func) && ((FPTR)(intf->in_b_func) <= 0x100))
- { pia[which].in_b = ((FPTR)(intf->in_b_func) - 1); pia[which].in_set |= PIA_IN_SET_B; }
- if ((intf->in_ca1_func) && ((FPTR)(intf->in_ca1_func) <= 0x100))
- { pia[which].in_ca1 = ((FPTR)(intf->in_ca1_func) - 1); pia[which].in_set |= PIA_IN_SET_CA1; }
- if ((intf->in_ca2_func) && ((FPTR)(intf->in_ca2_func) <= 0x100))
- { pia[which].in_ca2 = ((FPTR)(intf->in_ca2_func) - 1); pia[which].in_set |= PIA_IN_SET_CA2; }
- if ((intf->in_cb1_func) && ((FPTR)(intf->in_cb1_func) <= 0x100))
- { pia[which].in_cb1 = ((FPTR)(intf->in_cb1_func) - 1); pia[which].in_set |= PIA_IN_SET_CB1; }
- if ((intf->in_cb2_func) && ((FPTR)(intf->in_cb2_func) <= 0x100))
- { pia[which].in_cb2 = ((FPTR)(intf->in_cb2_func) - 1); pia[which].in_set |= PIA_IN_SET_CB2; }
-}
-
-
-/******************* reset *******************/
-
-void pia_reset(void)
-{
- int i;
-
- /* zap each structure, preserving the interface and swizzle */
- for (i = 0; i < MAX_PIA; i++) pia_config(i, pia[i].addr, pia[i].intf);
-}
-
-
-/******************* wire-OR for all interrupt handlers *******************/
-
-static void update_shared_irq_handler(void (*irq_func)(int state))
-{
- int i;
-
- /* search all PIAs for this same IRQ function */
- for (i = 0; i < MAX_PIA; i++)
- if (pia[i].intf)
- {
- /* check IRQ A */
- if (pia[i].intf->irq_a_func == irq_func && pia[i].irq_a_state)
- {
- (*irq_func)(1);
- return;
- }
-
- /* check IRQ B */
- if (pia[i].intf->irq_b_func == irq_func && pia[i].irq_b_state)
- {
- (*irq_func)(1);
- return;
- }
- }
-
- /* if we found nothing, the state is off */
- (*irq_func)(0);
-}
-
-
-/******************* external interrupt check *******************/
-
-static void update_6821_interrupts(struct pia6821 *p)
-{
- int new_state;
-
- /* start with IRQ A */
- new_state = 0;
- if ((p->irq_a1 && IRQ1_ENABLED(p->ctl_a)) || (p->irq_a2 && IRQ2_ENABLED(p->ctl_a))) new_state = 1;
- if (new_state != p->irq_a_state)
- {
- p->irq_a_state = new_state;
- if (p->intf->irq_a_func) update_shared_irq_handler(p->intf->irq_a_func);
- }
-
- /* then do IRQ B */
- new_state = 0;
- if ((p->irq_b1 && IRQ1_ENABLED(p->ctl_b)) || (p->irq_b2 && IRQ2_ENABLED(p->ctl_b))) new_state = 1;
- if (new_state != p->irq_b_state)
- {
- p->irq_b_state = new_state;
- if (p->intf->irq_b_func) update_shared_irq_handler(p->intf->irq_b_func);
- }
-}
-
-
-/******************* CPU interface for PIA read *******************/
-
-int pia_read(int which, int offset)
-{
- struct pia6821 *p = pia + which;
- int val = 0;
-
- /* adjust offset for 16-bit and ordering */
- offset &= 3;
- if (p->addr & PIA_ALTERNATE_ORDERING) offset = swizzle_address[offset];
-
- switch (offset)
- {
- /******************* port A output/DDR read *******************/
- case PIA_DDRA:
-
- /* read output register */
- if (OUTPUT_SELECTED(p->ctl_a))
- {
- /* update the input */
- if ((FPTR)(p->intf->in_a_func) > 0x100)
- p->in_a = p->intf->in_a_func(0);
-#ifdef MAME_DEBUG
- else if ((p->ddr_a ^ 0xff) && !(p->in_set & PIA_IN_SET_A)) {
- logerror("PIA%d: Warning! no port A read handler. Assuming pins %02x not connected\n",
- which, p->ddr_a ^ 0xff);
- p->in_set |= PIA_IN_SET_A; // disable logging
- }
-#endif // MAME_DEBUG
-
- /* combine input and output values */
- val = (p->out_a & p->ddr_a) + (p->in_a & ~p->ddr_a);
-
- /* IRQ flags implicitly cleared by a read */
- p->irq_a1 = p->irq_a2 = 0;
- update_6821_interrupts(p);
-
- /* CA2 is configured as output and in read strobe mode */
- if (C2_OUTPUT(p->ctl_a) && C2_STROBE_MODE(p->ctl_a))
- {
- /* this will cause a transition low; call the output function if we're currently high */
- if (p->out_ca2)
- if (p->intf->out_ca2_func) p->intf->out_ca2_func(0, 0);
- p->out_ca2 = 0;
-
- /* if the CA2 strobe is cleared by the E, reset it right away */
- if (STROBE_E_RESET(p->ctl_a))
- {
- if (p->intf->out_ca2_func) p->intf->out_ca2_func(0, 1);
- p->out_ca2 = 1;
- }
- }
-
- LOG(("%04x: PIA%d read port A = %02X\n", activecpu_get_previouspc(), which, val));
- }
-
- /* read DDR register */
- else
- {
- val = p->ddr_a;
- LOG(("%04x: PIA%d read DDR A = %02X\n", activecpu_get_previouspc(), which, val));
- }
- break;
-
- /******************* port B output/DDR read *******************/
- case PIA_DDRB:
-
- /* read output register */
- if (OUTPUT_SELECTED(p->ctl_b))
- {
- /* update the input */
- if ((FPTR)(p->intf->in_b_func) > 0x100)
- p->in_b = p->intf->in_b_func(0);
-#ifdef MAME_DEBUG
- else if ((p->ddr_b ^ 0xff) && !(p->in_set & PIA_IN_SET_B)) {
- logerror("PIA%d: Error! no port B read handler. Three-state pins %02x are undefined\n",
- which, p->ddr_b ^ 0xff);
- p->in_set |= PIA_IN_SET_B; // disable logging
- }
-#endif // MAME_DEBUG
-
- /* combine input and output values */
- val = (p->out_b & p->ddr_b) + (p->in_b & ~p->ddr_b);
-
- /* This read will implicitly clear the IRQ B1 flag. If CB2 is in write-strobe
- output mode with CB1 restore, and a CB1 active transition set the flag,
- clearing it will cause CB2 to go high again. Note that this is different
- from what happens with port A. */
- if (p->irq_b1 && C2_OUTPUT(p->ctl_b) && C2_STROBE_MODE(p->ctl_b) && STROBE_C1_RESET(p->ctl_b))
- {
- /* call the CB2 output function */
- if (!p->out_cb2)
- if (p->intf->out_cb2_func) p->intf->out_cb2_func(0, 1);
-
- /* clear CB2 */
- p->out_cb2 = 1;
- }
-
- /* IRQ flags implicitly cleared by a read */
- p->irq_b1 = p->irq_b2 = 0;
- update_6821_interrupts(p);
-
- LOG(("%04x: PIA%d read port B = %02X\n", activecpu_get_previouspc(), which, val));
- }
-
- /* read DDR register */
- else
- {
- val = p->ddr_b;
- LOG(("%04x: PIA%d read DDR B = %02X\n", activecpu_get_previouspc(), which, val));
- }
- break;
-
- /******************* port A control read *******************/
- case PIA_CTLA:
-
- /* Update CA1 & CA2 if callback exists, these in turn may update IRQ's */
- if ((FPTR)(p->intf->in_ca1_func) > 0x100)
- pia_set_input_ca1(which, p->intf->in_ca1_func(0));
-#ifdef MAME_DEBUG
- else if (!(p->in_set & PIA_IN_SET_CA1)) {
- logerror("PIA%d: Warning! no CA1 read handler. Assuming pin not connected\n",which);
- p->in_set |= PIA_IN_SET_CA1; // disable logging
- }
-#endif // MAME_DEBUG
- if ((FPTR)(p->intf->in_ca2_func) > 0x100)
- pia_set_input_ca2(which, p->intf->in_ca2_func(0));
-#ifdef MAME_DEBUG
- else if (C2_INPUT(p->ctl_a) && !(p->in_set & PIA_IN_SET_CA2)) {
- logerror("PIA%d: Warning! no CA2 read handler. Assuming pin not connected\n",which);
- p->in_set |= PIA_IN_SET_CA2; // disable logging
- }
-#endif // MAME_DEBUG
-
- /* read control register */
- val = p->ctl_a;
-
- /* set the IRQ flags if we have pending IRQs */
- if (p->irq_a1) val |= PIA_IRQ1;
- if (p->irq_a2 && C2_INPUT(p->ctl_a)) val |= PIA_IRQ2;
-
- LOG(("%04x: PIA%d read control A = %02X\n", activecpu_get_previouspc(), which, val));
- break;
-
- /******************* port B control read *******************/
- case PIA_CTLB:
-
- /* Update CB1 & CB2 if callback exists, these in turn may update IRQ's */
- if ((FPTR)(p->intf->in_cb1_func) > 0x100)
- pia_set_input_cb1(which, p->intf->in_cb1_func(0));
-#ifdef MAME_DEBUG
- else if (!(p->in_set & PIA_IN_SET_CB1)) {
- logerror("PIA%d: Error! no CB1 read handler. Three-state pin is undefined\n",which);
- p->in_set |= PIA_IN_SET_CB1; // disable logging
- }
-#endif // MAME_DEBUG
- if ((FPTR)(p->intf->in_cb2_func) > 0x100)
- pia_set_input_cb2(which, p->intf->in_cb2_func(0));
-#ifdef MAME_DEBUG
- else if (C2_INPUT(p->ctl_b) && !(p->in_set & PIA_IN_SET_CB2)) {
- logerror("PIA%d: Error! no CB2 read handler. Three-state pin is undefined\n",which);
- p->in_set |= PIA_IN_SET_CB2; // disable logging
- }
-#endif // MAME_DEBUG
-
- /* read control register */
- val = p->ctl_b;
-
- /* set the IRQ flags if we have pending IRQs */
- if (p->irq_b1) val |= PIA_IRQ1;
- if (p->irq_b2 && C2_INPUT(p->ctl_b)) val |= PIA_IRQ2;
-
- LOG(("%04x: PIA%d read control B = %02X\n", activecpu_get_previouspc(), which, val));
- break;
- }
-
- return val;
-}
-
-
-/******************* CPU interface for PIA write *******************/
-
-void pia_write(int which, int offset, int data)
-{
- struct pia6821 *p = pia + which;
-
- /* adjust offset for 16-bit and ordering */
- offset &= 3;
- if (p->addr & PIA_ALTERNATE_ORDERING) offset = swizzle_address[offset];
-
- switch (offset)
- {
- /******************* port A output/DDR write *******************/
- case PIA_DDRA:
-
- /* write output register */
- if (OUTPUT_SELECTED(p->ctl_a))
- {
- LOG(("%04x: PIA%d port A write = %02X\n", activecpu_get_previouspc(), which, data));
-
- /* update the output value */
- p->out_a = data;/* & p->ddr_a; */ /* NS990130 - don't mask now, DDR could change later */
-
- /* send it to the output function */
- if (p->intf->out_a_func && p->ddr_a) p->intf->out_a_func(0, p->out_a & p->ddr_a); /* NS990130 */
- }
-
- /* write DDR register */
- else
- {
- LOG(("%04x: PIA%d DDR A write = %02X\n", activecpu_get_previouspc(), which, data));
-
- if (p->ddr_a != data)
- {
- /* NS990130 - if DDR changed, call the callback again */
- p->ddr_a = data;
-
- /* send it to the output function */
- if (p->intf->out_a_func && p->ddr_a) p->intf->out_a_func(0, p->out_a & p->ddr_a);
- }
- }
- break;
-
- /******************* port B output/DDR write *******************/
- case PIA_DDRB:
-
- /* write output register */
- if (OUTPUT_SELECTED(p->ctl_b))
- {
- LOG(("%04x: PIA%d port B write = %02X\n", activecpu_get_previouspc(), which, data));
-
- /* update the output value */
- p->out_b = data;/* & p->ddr_b */ /* NS990130 - don't mask now, DDR could change later */
-
- /* send it to the output function */
- if (p->intf->out_b_func && p->ddr_b) p->intf->out_b_func(0, p->out_b & p->ddr_b); /* NS990130 */
-
- /* CB2 is configured as output and in write strobe mode */
- if (C2_OUTPUT(p->ctl_b) && C2_STROBE_MODE(p->ctl_b))
- {
- /* this will cause a transition low; call the output function if we're currently high */
- if (p->out_cb2)
- if (p->intf->out_cb2_func) p->intf->out_cb2_func(0, 0);
- p->out_cb2 = 0;
-
- /* if the CB2 strobe is cleared by the E, reset it right away */
- if (STROBE_E_RESET(p->ctl_b))
- {
- if (p->intf->out_cb2_func) p->intf->out_cb2_func(0, 1);
- p->out_cb2 = 1;
- }
- }
- }
-
- /* write DDR register */
- else
- {
- LOG(("%04x: PIA%d DDR B write = %02X\n", activecpu_get_previouspc(), which, data));
-
- if (p->ddr_b != data)
- {
- /* NS990130 - if DDR changed, call the callback again */
- p->ddr_b = data;
-
- /* send it to the output function */
- if (p->intf->out_b_func && p->ddr_b) p->intf->out_b_func(0, p->out_b & p->ddr_b);
- }
- }
- break;
-
- /******************* port A control write *******************/
- case PIA_CTLA:
-
- /* Bit 7 and 6 read only - PD 16/01/00 */
-
- data &= 0x3f;
-
-
- LOG(("%04x: PIA%d control A write = %02X\n", activecpu_get_previouspc(), which, data));
-
- /* CA2 is configured as output */
- if (C2_OUTPUT(data))
- {
- int temp;
-
- if (C2_SET_MODE(data))
- {
- /* set/reset mode--bit value determines the new output */
- temp = SET_C2(data) ? 1 : 0;
- }
- else {
- /* strobe mode--output is always high unless strobed. */
- temp = 1;
- }
-
- /* if we're going from input to output mode, or we're already in output mode
- and this change creates a transition, call the CA2 output function */
- if (C2_INPUT(p->ctl_a) || (C2_OUTPUT(p->ctl_a) && (p->out_ca2 ^ temp)))
- if (p->intf->out_ca2_func) p->intf->out_ca2_func(0, temp);
-
- /* set the new value */
- p->out_ca2 = temp;
- }
-
- /* update the control register */
- p->ctl_a = data;
-
- /* update externals */
- update_6821_interrupts(p);
- break;
-
- /******************* port B control write *******************/
- case PIA_CTLB:
-
- /* Bit 7 and 6 read only - PD 16/01/00 */
-
- data &= 0x3f;
-
- LOG(("%04x: PIA%d control B write = %02X\n", activecpu_get_previouspc(), which, data));
-
- /* CB2 is configured as output */
- if (C2_OUTPUT(data))
- {
- int temp;
-
- if (C2_SET_MODE(data))
- {
- /* set/reset mode--bit value determines the new output */
- temp = SET_C2(data) ? 1 : 0;
- }
- else {
- /* strobe mode--output is always high unless strobed. */
- temp = 1;
- }
-
- /* if we're going from input to output mode, or we're already in output mode
- and this change creates a transition, call the CB2 output function */
- if (C2_INPUT(p->ctl_b) || (C2_OUTPUT(p->ctl_b) && (p->out_cb2 ^ temp)))
- if (p->intf->out_cb2_func) p->intf->out_cb2_func(0, temp);
-
- /* set the new value */
- p->out_cb2 = temp;
- }
-
- /* update the control register */
- p->ctl_b = data;
-
- /* update externals */
- update_6821_interrupts(p);
- break;
- }
-}
-
-
-/******************* interface setting PIA port A input *******************/
-
-void pia_set_input_a(int which, int data)
-{
- struct pia6821 *p = pia + which;
-
- /* set the input, what could be easier? */
- p->in_a = data;
- p->in_set |= PIA_IN_SET_A;
-}
-
-
-
-/******************* interface setting PIA port CA1 input *******************/
-
-void pia_set_input_ca1(int which, int data)
-{
- struct pia6821 *p = pia + which;
-
- /* limit the data to 0 or 1 */
- data = data ? 1 : 0;
-
- /* the new state has caused a transition */
- if (p->in_ca1 ^ data)
- {
- /* handle the active transition */
- if ((data && C1_LOW_TO_HIGH(p->ctl_a)) || (!data && C1_HIGH_TO_LOW(p->ctl_a)))
- {
- /* mark the IRQ */
- p->irq_a1 = 1;
-
- /* update externals */
- update_6821_interrupts(p);
-
- /* CA2 is configured as output and in read strobe mode and cleared by a CA1 transition */
- if (C2_OUTPUT(p->ctl_a) && C2_STROBE_MODE(p->ctl_a) && STROBE_C1_RESET(p->ctl_a))
- {
- /* call the CA2 output function */
- if (!p->out_ca2)
- if (p->intf->out_ca2_func) p->intf->out_ca2_func(0, 1);
-
- /* clear CA2 */
- p->out_ca2 = 1;
- }
- }
- }
-
- /* set the new value for CA1 */
- p->in_ca1 = data;
- p->in_set |= PIA_IN_SET_CA1;
-}
-
-
-
-/******************* interface setting PIA port CA2 input *******************/
-
-void pia_set_input_ca2(int which, int data)
-{
- struct pia6821 *p = pia + which;
-
- /* limit the data to 0 or 1 */
- data = data ? 1 : 0;
-
- /* CA2 is in input mode */
- if (C2_INPUT(p->ctl_a))
- {
- /* the new state has caused a transition */
- if (p->in_ca2 ^ data)
- {
- /* handle the active transition */
- if ((data && C2_LOW_TO_HIGH(p->ctl_a)) || (!data && C2_HIGH_TO_LOW(p->ctl_a)))
- {
- /* mark the IRQ */
- p->irq_a2 = 1;
-
- /* update externals */
- update_6821_interrupts(p);
- }
- }
- }
-
- /* set the new value for CA2 */
- p->in_ca2 = data;
- p->in_set |= PIA_IN_SET_CA2;
-}
-
-
-
-/******************* interface setting PIA port B input *******************/
-
-void pia_set_input_b(int which, int data)
-{
- struct pia6821 *p = pia + which;
-
- /* set the input, what could be easier? */
- p->in_b = data;
- p->in_set |= PIA_IN_SET_B;
-}
-
-
-
-/******************* interface setting PIA port CB1 input *******************/
-
-void pia_set_input_cb1(int which, int data)
-{
- struct pia6821 *p = pia + which;
-
- /* limit the data to 0 or 1 */
- data = data ? 1 : 0;
-
- /* the new state has caused a transition */
- if (p->in_cb1 ^ data)
- {
- /* handle the active transition */
- if ((data && C1_LOW_TO_HIGH(p->ctl_b)) || (!data && C1_HIGH_TO_LOW(p->ctl_b)))
- {
- /* mark the IRQ */
- p->irq_b1 = 1;
-
- /* update externals */
- update_6821_interrupts(p);
-
- /* If CB2 is configured as a write-strobe output which is reset by a CB1
- transition, this reset will only happen when a read from port B implicitly
- clears the IRQ B1 flag. So we handle the CB2 reset there. Note that this
- is different from what happens with port A. */
- }
- }
-
- /* set the new value for CB1 */
- p->in_cb1 = data;
- p->in_set |= PIA_IN_SET_CB1;
-}
-
-
-
-/******************* interface setting PIA port CB2 input *******************/
-
-void pia_set_input_cb2(int which, int data)
-{
- struct pia6821 *p = pia + which;
-
- /* limit the data to 0 or 1 */
- data = data ? 1 : 0;
-
- /* CB2 is in input mode */
- if (C2_INPUT(p->ctl_b))
- {
- /* the new state has caused a transition */
- if (p->in_cb2 ^ data)
- {
- /* handle the active transition */
- if ((data && C2_LOW_TO_HIGH(p->ctl_b)) || (!data && C2_HIGH_TO_LOW(p->ctl_b)))
- {
- /* mark the IRQ */
- p->irq_b2 = 1;
-
- /* update externals */
- update_6821_interrupts(p);
- }
- }
- }
-
- /* set the new value for CA2 */
- p->in_cb2 = data;
- p->in_set |= PIA_IN_SET_CB2;
-}
-
-
-
-/******************* interface retrieving DDR *******************/
-
-UINT8 pia_get_ddr_a(int which)
-{
- struct pia6821 *p = pia + which;
- return p->ddr_a;
-}
-
-
-
-UINT8 pia_get_ddr_b(int which)
-{
- struct pia6821 *p = pia + which;
- return p->ddr_b;
-}
-
-
-
-#if 0
-/******************* Standard 8-bit CPU interfaces, D0-D7 *******************/
-
-READ8_HANDLER( pia_0_r ) { return pia_read(0, offset); }
-READ8_HANDLER( pia_1_r ) { return pia_read(1, offset); }
-READ8_HANDLER( pia_2_r ) { return pia_read(2, offset); }
-READ8_HANDLER( pia_3_r ) { return pia_read(3, offset); }
-READ8_HANDLER( pia_4_r ) { return pia_read(4, offset); }
-READ8_HANDLER( pia_5_r ) { return pia_read(5, offset); }
-READ8_HANDLER( pia_6_r ) { return pia_read(6, offset); }
-READ8_HANDLER( pia_7_r ) { return pia_read(7, offset); }
-
-WRITE8_HANDLER( pia_0_w ) { pia_write(0, offset, data); }
-WRITE8_HANDLER( pia_1_w ) { pia_write(1, offset, data); }
-WRITE8_HANDLER( pia_2_w ) { pia_write(2, offset, data); }
-WRITE8_HANDLER( pia_3_w ) { pia_write(3, offset, data); }
-WRITE8_HANDLER( pia_4_w ) { pia_write(4, offset, data); }
-WRITE8_HANDLER( pia_5_w ) { pia_write(5, offset, data); }
-WRITE8_HANDLER( pia_6_w ) { pia_write(6, offset, data); }
-WRITE8_HANDLER( pia_7_w ) { pia_write(7, offset, data); }
-
-/******************* Standard 16-bit CPU interfaces, D0-D7 *******************/
-
-READ16_HANDLER( pia_0_lsb_r ) { return pia_read(0, offset); }
-READ16_HANDLER( pia_1_lsb_r ) { return pia_read(1, offset); }
-READ16_HANDLER( pia_2_lsb_r ) { return pia_read(2, offset); }
-READ16_HANDLER( pia_3_lsb_r ) { return pia_read(3, offset); }
-READ16_HANDLER( pia_4_lsb_r ) { return pia_read(4, offset); }
-READ16_HANDLER( pia_5_lsb_r ) { return pia_read(5, offset); }
-READ16_HANDLER( pia_6_lsb_r ) { return pia_read(6, offset); }
-READ16_HANDLER( pia_7_lsb_r ) { return pia_read(7, offset); }
-
-WRITE16_HANDLER( pia_0_lsb_w ) { if (ACCESSING_LSB) pia_write(0, offset, data & 0xff); }
-WRITE16_HANDLER( pia_1_lsb_w ) { if (ACCESSING_LSB) pia_write(1, offset, data & 0xff); }
-WRITE16_HANDLER( pia_2_lsb_w ) { if (ACCESSING_LSB) pia_write(2, offset, data & 0xff); }
-WRITE16_HANDLER( pia_3_lsb_w ) { if (ACCESSING_LSB) pia_write(3, offset, data & 0xff); }
-WRITE16_HANDLER( pia_4_lsb_w ) { if (ACCESSING_LSB) pia_write(4, offset, data & 0xff); }
-WRITE16_HANDLER( pia_5_lsb_w ) { if (ACCESSING_LSB) pia_write(5, offset, data & 0xff); }
-WRITE16_HANDLER( pia_6_lsb_w ) { if (ACCESSING_LSB) pia_write(6, offset, data & 0xff); }
-WRITE16_HANDLER( pia_7_lsb_w ) { if (ACCESSING_LSB) pia_write(7, offset, data & 0xff); }
-
-/******************* Standard 16-bit CPU interfaces, D8-D15 *******************/
-
-READ16_HANDLER( pia_0_msb_r ) { return pia_read(0, offset) << 8; }
-READ16_HANDLER( pia_1_msb_r ) { return pia_read(1, offset) << 8; }
-READ16_HANDLER( pia_2_msb_r ) { return pia_read(2, offset) << 8; }
-READ16_HANDLER( pia_3_msb_r ) { return pia_read(3, offset) << 8; }
-READ16_HANDLER( pia_4_msb_r ) { return pia_read(4, offset) << 8; }
-READ16_HANDLER( pia_5_msb_r ) { return pia_read(5, offset) << 8; }
-READ16_HANDLER( pia_6_msb_r ) { return pia_read(6, offset) << 8; }
-READ16_HANDLER( pia_7_msb_r ) { return pia_read(7, offset) << 8; }
-
-WRITE16_HANDLER( pia_0_msb_w ) { if (ACCESSING_MSB) pia_write(0, offset, data >> 8); }
-WRITE16_HANDLER( pia_1_msb_w ) { if (ACCESSING_MSB) pia_write(1, offset, data >> 8); }
-WRITE16_HANDLER( pia_2_msb_w ) { if (ACCESSING_MSB) pia_write(2, offset, data >> 8); }
-WRITE16_HANDLER( pia_3_msb_w ) { if (ACCESSING_MSB) pia_write(3, offset, data >> 8); }
-WRITE16_HANDLER( pia_4_msb_w ) { if (ACCESSING_MSB) pia_write(4, offset, data >> 8); }
-WRITE16_HANDLER( pia_5_msb_w ) { if (ACCESSING_MSB) pia_write(5, offset, data >> 8); }
-WRITE16_HANDLER( pia_6_msb_w ) { if (ACCESSING_MSB) pia_write(6, offset, data >> 8); }
-WRITE16_HANDLER( pia_7_msb_w ) { if (ACCESSING_MSB) pia_write(7, offset, data >> 8); }
-
-/******************* 8-bit A/B port interfaces *******************/
-
-WRITE8_HANDLER( pia_0_porta_w ) { pia_set_input_a(0, data); }
-WRITE8_HANDLER( pia_1_porta_w ) { pia_set_input_a(1, data); }
-WRITE8_HANDLER( pia_2_porta_w ) { pia_set_input_a(2, data); }
-WRITE8_HANDLER( pia_3_porta_w ) { pia_set_input_a(3, data); }
-WRITE8_HANDLER( pia_4_porta_w ) { pia_set_input_a(4, data); }
-WRITE8_HANDLER( pia_5_porta_w ) { pia_set_input_a(5, data); }
-WRITE8_HANDLER( pia_6_porta_w ) { pia_set_input_a(6, data); }
-WRITE8_HANDLER( pia_7_porta_w ) { pia_set_input_a(7, data); }
-
-WRITE8_HANDLER( pia_0_portb_w ) { pia_set_input_b(0, data); }
-WRITE8_HANDLER( pia_1_portb_w ) { pia_set_input_b(1, data); }
-WRITE8_HANDLER( pia_2_portb_w ) { pia_set_input_b(2, data); }
-WRITE8_HANDLER( pia_3_portb_w ) { pia_set_input_b(3, data); }
-WRITE8_HANDLER( pia_4_portb_w ) { pia_set_input_b(4, data); }
-WRITE8_HANDLER( pia_5_portb_w ) { pia_set_input_b(5, data); }
-WRITE8_HANDLER( pia_6_portb_w ) { pia_set_input_b(6, data); }
-WRITE8_HANDLER( pia_7_portb_w ) { pia_set_input_b(7, data); }
-
-READ8_HANDLER( pia_0_porta_r ) { return pia[0].in_a; }
-READ8_HANDLER( pia_1_porta_r ) { return pia[1].in_a; }
-READ8_HANDLER( pia_2_porta_r ) { return pia[2].in_a; }
-READ8_HANDLER( pia_3_porta_r ) { return pia[3].in_a; }
-READ8_HANDLER( pia_4_porta_r ) { return pia[4].in_a; }
-READ8_HANDLER( pia_5_porta_r ) { return pia[5].in_a; }
-READ8_HANDLER( pia_6_porta_r ) { return pia[6].in_a; }
-READ8_HANDLER( pia_7_porta_r ) { return pia[7].in_a; }
-
-READ8_HANDLER( pia_0_portb_r ) { return pia[0].in_b; }
-READ8_HANDLER( pia_1_portb_r ) { return pia[1].in_b; }
-READ8_HANDLER( pia_2_portb_r ) { return pia[2].in_b; }
-READ8_HANDLER( pia_3_portb_r ) { return pia[3].in_b; }
-READ8_HANDLER( pia_4_portb_r ) { return pia[4].in_b; }
-READ8_HANDLER( pia_5_portb_r ) { return pia[5].in_b; }
-READ8_HANDLER( pia_6_portb_r ) { return pia[6].in_b; }
-READ8_HANDLER( pia_7_portb_r ) { return pia[7].in_b; }
-
-/******************* 1-bit CA1/CA2/CB1/CB2 port interfaces *******************/
-
-WRITE8_HANDLER( pia_0_ca1_w ) { pia_set_input_ca1(0, data); }
-WRITE8_HANDLER( pia_1_ca1_w ) { pia_set_input_ca1(1, data); }
-WRITE8_HANDLER( pia_2_ca1_w ) { pia_set_input_ca1(2, data); }
-WRITE8_HANDLER( pia_3_ca1_w ) { pia_set_input_ca1(3, data); }
-WRITE8_HANDLER( pia_4_ca1_w ) { pia_set_input_ca1(4, data); }
-WRITE8_HANDLER( pia_5_ca1_w ) { pia_set_input_ca1(5, data); }
-WRITE8_HANDLER( pia_6_ca1_w ) { pia_set_input_ca1(6, data); }
-WRITE8_HANDLER( pia_7_ca1_w ) { pia_set_input_ca1(7, data); }
-WRITE8_HANDLER( pia_0_ca2_w ) { pia_set_input_ca2(0, data); }
-WRITE8_HANDLER( pia_1_ca2_w ) { pia_set_input_ca2(1, data); }
-WRITE8_HANDLER( pia_2_ca2_w ) { pia_set_input_ca2(2, data); }
-WRITE8_HANDLER( pia_3_ca2_w ) { pia_set_input_ca2(3, data); }
-WRITE8_HANDLER( pia_4_ca2_w ) { pia_set_input_ca2(4, data); }
-WRITE8_HANDLER( pia_5_ca2_w ) { pia_set_input_ca2(5, data); }
-WRITE8_HANDLER( pia_6_ca2_w ) { pia_set_input_ca2(6, data); }
-WRITE8_HANDLER( pia_7_ca2_w ) { pia_set_input_ca2(7, data); }
-
-WRITE8_HANDLER( pia_0_cb1_w ) { pia_set_input_cb1(0, data); }
-WRITE8_HANDLER( pia_1_cb1_w ) { pia_set_input_cb1(1, data); }
-WRITE8_HANDLER( pia_2_cb1_w ) { pia_set_input_cb1(2, data); }
-WRITE8_HANDLER( pia_3_cb1_w ) { pia_set_input_cb1(3, data); }
-WRITE8_HANDLER( pia_4_cb1_w ) { pia_set_input_cb1(4, data); }
-WRITE8_HANDLER( pia_5_cb1_w ) { pia_set_input_cb1(5, data); }
-WRITE8_HANDLER( pia_6_cb1_w ) { pia_set_input_cb1(6, data); }
-WRITE8_HANDLER( pia_7_cb1_w ) { pia_set_input_cb1(7, data); }
-WRITE8_HANDLER( pia_0_cb2_w ) { pia_set_input_cb2(0, data); }
-WRITE8_HANDLER( pia_1_cb2_w ) { pia_set_input_cb2(1, data); }
-WRITE8_HANDLER( pia_2_cb2_w ) { pia_set_input_cb2(2, data); }
-WRITE8_HANDLER( pia_3_cb2_w ) { pia_set_input_cb2(3, data); }
-WRITE8_HANDLER( pia_4_cb2_w ) { pia_set_input_cb2(4, data); }
-WRITE8_HANDLER( pia_5_cb2_w ) { pia_set_input_cb2(5, data); }
-WRITE8_HANDLER( pia_6_cb2_w ) { pia_set_input_cb2(6, data); }
-WRITE8_HANDLER( pia_7_cb2_w ) { pia_set_input_cb2(7, data); }
-
-READ8_HANDLER( pia_0_ca1_r ) { return pia[0].in_ca1; }
-READ8_HANDLER( pia_1_ca1_r ) { return pia[1].in_ca1; }
-READ8_HANDLER( pia_2_ca1_r ) { return pia[2].in_ca1; }
-READ8_HANDLER( pia_3_ca1_r ) { return pia[3].in_ca1; }
-READ8_HANDLER( pia_4_ca1_r ) { return pia[4].in_ca1; }
-READ8_HANDLER( pia_5_ca1_r ) { return pia[5].in_ca1; }
-READ8_HANDLER( pia_6_ca1_r ) { return pia[6].in_ca1; }
-READ8_HANDLER( pia_7_ca1_r ) { return pia[7].in_ca1; }
-READ8_HANDLER( pia_0_ca2_r ) { return pia[0].in_ca2; }
-READ8_HANDLER( pia_1_ca2_r ) { return pia[1].in_ca2; }
-READ8_HANDLER( pia_2_ca2_r ) { return pia[2].in_ca2; }
-READ8_HANDLER( pia_3_ca2_r ) { return pia[3].in_ca2; }
-READ8_HANDLER( pia_4_ca2_r ) { return pia[4].in_ca2; }
-READ8_HANDLER( pia_5_ca2_r ) { return pia[5].in_ca2; }
-READ8_HANDLER( pia_6_ca2_r ) { return pia[6].in_ca2; }
-READ8_HANDLER( pia_7_ca2_r ) { return pia[7].in_ca2; }
-
-READ8_HANDLER( pia_0_cb1_r ) { return pia[0].in_cb1; }
-READ8_HANDLER( pia_1_cb1_r ) { return pia[1].in_cb1; }
-READ8_HANDLER( pia_2_cb1_r ) { return pia[2].in_cb1; }
-READ8_HANDLER( pia_3_cb1_r ) { return pia[3].in_cb1; }
-READ8_HANDLER( pia_4_cb1_r ) { return pia[4].in_cb1; }
-READ8_HANDLER( pia_5_cb1_r ) { return pia[5].in_cb1; }
-READ8_HANDLER( pia_6_cb1_r ) { return pia[6].in_cb1; }
-READ8_HANDLER( pia_7_cb1_r ) { return pia[7].in_cb1; }
-READ8_HANDLER( pia_0_cb2_r ) { return pia[0].in_cb2; }
-READ8_HANDLER( pia_1_cb2_r ) { return pia[1].in_cb2; }
-READ8_HANDLER( pia_2_cb2_r ) { return pia[2].in_cb2; }
-READ8_HANDLER( pia_3_cb2_r ) { return pia[3].in_cb2; }
-READ8_HANDLER( pia_4_cb2_r ) { return pia[4].in_cb2; }
-READ8_HANDLER( pia_5_cb2_r ) { return pia[5].in_cb2; }
-READ8_HANDLER( pia_6_cb2_r ) { return pia[6].in_cb2; }
-READ8_HANDLER( pia_7_cb2_r ) { return pia[7].in_cb2; }
-#endif
diff --git a/jan/src/burn/devices/6821pia.h b/jan/src/burn/devices/6821pia.h
deleted file mode 100644
index c45ca338d..000000000
--- a/jan/src/burn/devices/6821pia.h
+++ /dev/null
@@ -1,238 +0,0 @@
-/**********************************************************************
-
- Motorola 6821 PIA interface and emulation
-
- This function emulates all the functionality of up to 4 M6821
- peripheral interface adapters.
-
-**********************************************************************/
-#define MAX_PIA 8
-
-
-/* this is the standard ordering of the registers */
-/* alternate ordering swaps registers 1 and 2 */
-#define PIA_DDRA 0
-#define PIA_CTLA 1
-#define PIA_DDRB 2
-#define PIA_CTLB 3
-
-/* PIA addressing modes */
-#define PIA_STANDARD_ORDERING 0
-#define PIA_ALTERNATE_ORDERING 1
-
-#ifdef MESS
-#define PIA_8BIT 0
-#define PIA_AUTOSENSE 8
-#endif
-
-
-struct pia6821_interface
-{
- UINT8 (*in_a_func)(UINT16 offset);
- UINT8 (*in_b_func)(UINT16 offset);
- UINT8 (*in_ca1_func)(UINT16 offset);
- UINT8 (*in_cb1_func)(UINT16 offset);
- UINT8 (*in_ca2_func)(UINT16 offset);
- UINT8 (*in_cb2_func)(UINT16 offset);
- void (*out_a_func)(UINT16 offset, UINT8 data);
- void (*out_b_func)(UINT16 offset, UINT8 data);
- void (*out_ca2_func)(UINT16 offset, UINT8 data);
- void (*out_cb2_func)(UINT16 offset, UINT8 data);
- void (*irq_a_func)(int state);
- void (*irq_b_func)(int state);
-};
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-//void pia_init(int count);
-void pia_init(void);
-void pia_exit(void);
-void pia_config(int which, int addressing, const struct pia6821_interface *intf);
-void pia_reset(void);
-int pia_read(int which, int offset);
-void pia_write(int which, int offset, int data);
-void pia_set_input_a(int which, int data);
-void pia_set_input_ca1(int which, int data);
-void pia_set_input_ca2(int which, int data);
-void pia_set_input_b(int which, int data);
-void pia_set_input_cb1(int which, int data);
-void pia_set_input_cb2(int which, int data);
-UINT8 pia_get_ddr_a(int which);
-UINT8 pia_get_ddr_b(int which);
-
-#if 0
-#define PIA_UNUSED_VAL(x) ((read8_handler)(x+1))
-/******************* Standard 8-bit CPU interfaces, D0-D7 *******************/
-
-READ8_HANDLER( pia_0_r );
-READ8_HANDLER( pia_1_r );
-READ8_HANDLER( pia_2_r );
-READ8_HANDLER( pia_3_r );
-READ8_HANDLER( pia_4_r );
-READ8_HANDLER( pia_5_r );
-READ8_HANDLER( pia_6_r );
-READ8_HANDLER( pia_7_r );
-
-WRITE8_HANDLER( pia_0_w );
-WRITE8_HANDLER( pia_1_w );
-WRITE8_HANDLER( pia_2_w );
-WRITE8_HANDLER( pia_3_w );
-WRITE8_HANDLER( pia_4_w );
-WRITE8_HANDLER( pia_5_w );
-WRITE8_HANDLER( pia_6_w );
-WRITE8_HANDLER( pia_7_w );
-
-/******************* Standard 16-bit CPU interfaces, D0-D7 *******************/
-
-READ16_HANDLER( pia_0_lsb_r );
-READ16_HANDLER( pia_1_lsb_r );
-READ16_HANDLER( pia_2_lsb_r );
-READ16_HANDLER( pia_3_lsb_r );
-READ16_HANDLER( pia_4_lsb_r );
-READ16_HANDLER( pia_5_lsb_r );
-READ16_HANDLER( pia_6_lsb_r );
-READ16_HANDLER( pia_7_lsb_r );
-
-WRITE16_HANDLER( pia_0_lsb_w );
-WRITE16_HANDLER( pia_1_lsb_w );
-WRITE16_HANDLER( pia_2_lsb_w );
-WRITE16_HANDLER( pia_3_lsb_w );
-WRITE16_HANDLER( pia_4_lsb_w );
-WRITE16_HANDLER( pia_5_lsb_w );
-WRITE16_HANDLER( pia_6_lsb_w );
-WRITE16_HANDLER( pia_7_lsb_w );
-
-/******************* Standard 16-bit CPU interfaces, D8-D15 *******************/
-
-READ16_HANDLER( pia_0_msb_r );
-READ16_HANDLER( pia_1_msb_r );
-READ16_HANDLER( pia_2_msb_r );
-READ16_HANDLER( pia_3_msb_r );
-READ16_HANDLER( pia_4_msb_r );
-READ16_HANDLER( pia_5_msb_r );
-READ16_HANDLER( pia_6_msb_r );
-READ16_HANDLER( pia_7_msb_r );
-
-WRITE16_HANDLER( pia_0_msb_w );
-WRITE16_HANDLER( pia_1_msb_w );
-WRITE16_HANDLER( pia_2_msb_w );
-WRITE16_HANDLER( pia_3_msb_w );
-WRITE16_HANDLER( pia_4_msb_w );
-WRITE16_HANDLER( pia_5_msb_w );
-WRITE16_HANDLER( pia_6_msb_w );
-WRITE16_HANDLER( pia_7_msb_w );
-
-/******************* 8-bit A/B port interfaces *******************/
-
-WRITE8_HANDLER( pia_0_porta_w );
-WRITE8_HANDLER( pia_1_porta_w );
-WRITE8_HANDLER( pia_2_porta_w );
-WRITE8_HANDLER( pia_3_porta_w );
-WRITE8_HANDLER( pia_4_porta_w );
-WRITE8_HANDLER( pia_5_porta_w );
-WRITE8_HANDLER( pia_6_porta_w );
-WRITE8_HANDLER( pia_7_porta_w );
-
-WRITE8_HANDLER( pia_0_portb_w );
-WRITE8_HANDLER( pia_1_portb_w );
-WRITE8_HANDLER( pia_2_portb_w );
-WRITE8_HANDLER( pia_3_portb_w );
-WRITE8_HANDLER( pia_4_portb_w );
-WRITE8_HANDLER( pia_5_portb_w );
-WRITE8_HANDLER( pia_6_portb_w );
-WRITE8_HANDLER( pia_7_portb_w );
-
-READ8_HANDLER( pia_0_porta_r );
-READ8_HANDLER( pia_1_porta_r );
-READ8_HANDLER( pia_2_porta_r );
-READ8_HANDLER( pia_3_porta_r );
-READ8_HANDLER( pia_4_porta_r );
-READ8_HANDLER( pia_5_porta_r );
-READ8_HANDLER( pia_6_porta_r );
-READ8_HANDLER( pia_7_porta_r );
-
-READ8_HANDLER( pia_0_portb_r );
-READ8_HANDLER( pia_1_portb_r );
-READ8_HANDLER( pia_2_portb_r );
-READ8_HANDLER( pia_3_portb_r );
-READ8_HANDLER( pia_4_portb_r );
-READ8_HANDLER( pia_5_portb_r );
-READ8_HANDLER( pia_6_portb_r );
-READ8_HANDLER( pia_7_portb_r );
-
-/******************* 1-bit CA1/CA2/CB1/CB2 port interfaces *******************/
-
-WRITE8_HANDLER( pia_0_ca1_w );
-WRITE8_HANDLER( pia_1_ca1_w );
-WRITE8_HANDLER( pia_2_ca1_w );
-WRITE8_HANDLER( pia_3_ca1_w );
-WRITE8_HANDLER( pia_4_ca1_w );
-WRITE8_HANDLER( pia_5_ca1_w );
-WRITE8_HANDLER( pia_6_ca1_w );
-WRITE8_HANDLER( pia_7_ca1_w );
-WRITE8_HANDLER( pia_0_ca2_w );
-WRITE8_HANDLER( pia_1_ca2_w );
-WRITE8_HANDLER( pia_2_ca2_w );
-WRITE8_HANDLER( pia_3_ca2_w );
-WRITE8_HANDLER( pia_4_ca2_w );
-WRITE8_HANDLER( pia_5_ca2_w );
-WRITE8_HANDLER( pia_6_ca2_w );
-WRITE8_HANDLER( pia_7_ca2_w );
-
-WRITE8_HANDLER( pia_0_cb1_w );
-WRITE8_HANDLER( pia_1_cb1_w );
-WRITE8_HANDLER( pia_2_cb1_w );
-WRITE8_HANDLER( pia_3_cb1_w );
-WRITE8_HANDLER( pia_4_cb1_w );
-WRITE8_HANDLER( pia_5_cb1_w );
-WRITE8_HANDLER( pia_6_cb1_w );
-WRITE8_HANDLER( pia_7_cb1_w );
-WRITE8_HANDLER( pia_0_cb2_w );
-WRITE8_HANDLER( pia_1_cb2_w );
-WRITE8_HANDLER( pia_2_cb2_w );
-WRITE8_HANDLER( pia_3_cb2_w );
-WRITE8_HANDLER( pia_4_cb2_w );
-WRITE8_HANDLER( pia_5_cb2_w );
-WRITE8_HANDLER( pia_6_cb2_w );
-WRITE8_HANDLER( pia_7_cb2_w );
-
-READ8_HANDLER( pia_0_ca1_r );
-READ8_HANDLER( pia_1_ca1_r );
-READ8_HANDLER( pia_2_ca1_r );
-READ8_HANDLER( pia_3_ca1_r );
-READ8_HANDLER( pia_4_ca1_r );
-READ8_HANDLER( pia_5_ca1_r );
-READ8_HANDLER( pia_6_ca1_r );
-READ8_HANDLER( pia_7_ca1_r );
-READ8_HANDLER( pia_0_ca2_r );
-READ8_HANDLER( pia_1_ca2_r );
-READ8_HANDLER( pia_2_ca2_r );
-READ8_HANDLER( pia_3_ca2_r );
-READ8_HANDLER( pia_4_ca2_r );
-READ8_HANDLER( pia_5_ca2_r );
-READ8_HANDLER( pia_6_ca2_r );
-READ8_HANDLER( pia_7_ca2_r );
-
-READ8_HANDLER( pia_0_cb1_r );
-READ8_HANDLER( pia_1_cb1_r );
-READ8_HANDLER( pia_2_cb1_r );
-READ8_HANDLER( pia_3_cb1_r );
-READ8_HANDLER( pia_4_cb1_r );
-READ8_HANDLER( pia_5_cb1_r );
-READ8_HANDLER( pia_6_cb1_r );
-READ8_HANDLER( pia_7_cb1_r );
-READ8_HANDLER( pia_0_cb2_r );
-READ8_HANDLER( pia_1_cb2_r );
-READ8_HANDLER( pia_2_cb2_r );
-READ8_HANDLER( pia_3_cb2_r );
-READ8_HANDLER( pia_4_cb2_r );
-READ8_HANDLER( pia_5_cb2_r );
-READ8_HANDLER( pia_6_cb2_r );
-READ8_HANDLER( pia_7_cb2_r );
-#endif
-
-#ifdef __cplusplus
-}
-#endif
diff --git a/jan/src/burn/devices/8255ppi.cpp b/jan/src/burn/devices/8255ppi.cpp
deleted file mode 100644
index 95b63e533..000000000
--- a/jan/src/burn/devices/8255ppi.cpp
+++ /dev/null
@@ -1,486 +0,0 @@
-// Based on MAME driver by Curt Coder
-
-#include "burnint.h"
-#include "8255ppi.h"
-
-#define MAX_PPIS 3
-
-PPIPortRead PPI0PortReadA;
-PPIPortRead PPI0PortReadB;
-PPIPortRead PPI0PortReadC;
-PPIPortWrite PPI0PortWriteA;
-PPIPortWrite PPI0PortWriteB;
-PPIPortWrite PPI0PortWriteC;
-PPIPortRead PPI1PortReadA;
-PPIPortRead PPI1PortReadB;
-PPIPortRead PPI1PortReadC;
-PPIPortWrite PPI1PortWriteA;
-PPIPortWrite PPI1PortWriteB;
-PPIPortWrite PPI1PortWriteC;
-PPIPortRead PPI2PortReadA;
-PPIPortRead PPI2PortReadB;
-PPIPortRead PPI2PortReadC;
-PPIPortWrite PPI2PortWriteA;
-PPIPortWrite PPI2PortWriteB;
-PPIPortWrite PPI2PortWriteC;
-
-typedef struct
-{
- /* mode flags */
- UINT8 groupA_mode;
- UINT8 groupB_mode;
- UINT8 portA_dir;
- UINT8 portB_dir;
- UINT8 portCH_dir;
- UINT8 portCL_dir;
-
- /* handshake signals (1=asserted; 0=non-asserted) */
- UINT8 obf_a;
- UINT8 obf_b;
- UINT8 ibf_a;
- UINT8 ibf_b;
- UINT8 inte_a;
- UINT8 inte_b;
-
- UINT8 in_mask[3]; /* input mask */
- UINT8 out_mask[3]; /* output mask */
- UINT8 read[3]; /* data read from ports */
- UINT8 latch[3]; /* data written to ports */
- UINT8 output[3]; /* actual output data */
-} ppi8255;
-
-static ppi8255 chips[MAX_PPIS];
-static INT32 nNumChips = 0;
-
-static void ppi8255_get_handshake_signals(ppi8255 *chip, UINT8 *result)
-{
- UINT8 handshake = 0x00;
- UINT8 mask = 0x00;
-
- /* group A */
- if (chip->groupA_mode == 1)
- {
- if (chip->portA_dir)
- {
- handshake |= chip->ibf_a ? 0x20 : 0x00;
- handshake |= (chip->ibf_a && chip->inte_a) ? 0x08 : 0x00;
- mask |= 0x28;
- }
- else
- {
- handshake |= chip->obf_a ? 0x00 : 0x80;
- handshake |= (chip->obf_a && chip->inte_a) ? 0x08 : 0x00;
- mask |= 0x88;
- }
- }
- else if (chip->groupA_mode == 2)
- {
- handshake |= chip->inte_a ? 0x08 : 0x00;
- handshake |= chip->obf_a ? 0x00 : 0x80;
- handshake |= chip->ibf_a ? 0x20 : 0x00;
- mask |= 0xA8;
- }
-
- /* group B */
- if (chip->groupB_mode == 1)
- {
- if (chip->portA_dir)
- {
- handshake |= chip->ibf_b ? 0x02 : 0x00;
- handshake |= (chip->ibf_b && chip->inte_b) ? 0x01 : 0x00;
- mask |= 0x03;
- }
- else
- {
- handshake |= chip->obf_b ? 0x00 : 0x02;
- handshake |= (chip->obf_b && chip->inte_b) ? 0x01 : 0x00;
- mask |= 0x03;
- }
- }
-
- *result &= ~mask;
- *result |= handshake & mask;
-}
-
-static void ppi8255_write_port(ppi8255 *chip, INT32 port, INT32 chipnum)
-{
- UINT8 write_data;
-
- write_data = chip->latch[port] & chip->out_mask[port];
- write_data |= 0xFF & ~chip->out_mask[port];
-
- /* write out special port 2 signals */
- if (port == 2)
- ppi8255_get_handshake_signals(chip, &write_data);
-
- chip->output[port] = write_data;
-
- if (chipnum == 0 && port == 0) {
- if (PPI0PortWriteA) PPI0PortWriteA(write_data);
- }
-
- if (chipnum == 0 && port == 1) {
- if (PPI0PortWriteB) PPI0PortWriteB(write_data);
- }
-
- if (chipnum == 0 && port == 2) {
- if (PPI0PortWriteC) PPI0PortWriteC(write_data);
- }
-
- if (chipnum == 1 && port == 0) {
- if (PPI1PortWriteA) PPI1PortWriteA(write_data);
- }
-
- if (chipnum == 1 && port == 1) {
- if (PPI1PortWriteB) PPI1PortWriteB(write_data);
- }
-
- if (chipnum == 1 && port == 2) {
- if (PPI1PortWriteC) PPI1PortWriteC(write_data);
- }
-
- if (chipnum == 2 && port == 0) {
- if (PPI2PortWriteA) PPI2PortWriteA(write_data);
- }
-
- if (chipnum == 2 && port == 1) {
- if (PPI2PortWriteB) PPI2PortWriteB(write_data);
- }
-
- if (chipnum == 2 && port == 2) {
- if (PPI2PortWriteC) PPI2PortWriteC(write_data);
- }
-}
-
-static void ppi8255_input(ppi8255 *chip, INT32 port, UINT8 data, INT32 which)
-{
- INT32 changed = 0;
-
- chip->read[port] = data;
-
- /* port C is special */
- if (port == 2)
- {
- if (((chip->groupA_mode == 1) && (chip->portA_dir == 0)) || (chip->groupA_mode == 2))
- {
- /* is !ACKA asserted? */
- if (chip->obf_a && !(data & 0x40))
- {
- chip->obf_a = 0;
- changed = 1;
- }
- }
-
- if ((chip->groupB_mode == 1) && (chip->portB_dir == 0))
- {
- /* is !ACKB asserted? */
- if (chip->obf_b && !(data & 0x04))
- {
- chip->obf_b = 0;
- changed = 1;
- }
- }
-
- if (changed)
- ppi8255_write_port(chip, 2, which);
- }
-}
-
-static UINT8 ppi8255_read_port(ppi8255 *chip, INT32 port, INT32 chipnum)
-{
- UINT8 result = 0x00;
-
- if (chip->in_mask[port])
- {
- if (chipnum == 0 && port == 0) {
- ppi8255_input(chip, port, (PPI0PortReadA) ? PPI0PortReadA() : 0, chipnum);
- }
-
- if (chipnum == 0 && port == 1) {
- ppi8255_input(chip, port, (PPI0PortReadB) ? PPI0PortReadB() : 0, chipnum);
- }
-
- if (chipnum == 0 && port == 2) {
- ppi8255_input(chip, port, (PPI0PortReadC) ? PPI0PortReadC() : 0, chipnum);
- }
-
- if (chipnum == 1 && port == 0) {
- ppi8255_input(chip, port, (PPI1PortReadA) ? PPI1PortReadA() : 0, chipnum);
- }
-
- if (chipnum == 1 && port == 1) {
- ppi8255_input(chip, port, (PPI1PortReadB) ? PPI1PortReadB() : 0, chipnum);
- }
-
- if (chipnum == 1 && port == 2) {
- ppi8255_input(chip, port, (PPI1PortReadC) ? PPI1PortReadC() : 0, chipnum);
- }
-
- if (chipnum == 2 && port == 0) {
- ppi8255_input(chip, port, (PPI2PortReadA) ? PPI2PortReadA() : 0, chipnum);
- }
-
- if (chipnum == 2 && port == 1) {
- ppi8255_input(chip, port, (PPI2PortReadB) ? PPI2PortReadB() : 0, chipnum);
- }
-
- if (chipnum == 2 && port == 2) {
- ppi8255_input(chip, port, (PPI2PortReadC) ? PPI2PortReadC() : 0, chipnum);
- }
-
- result |= chip->read[port] & chip->in_mask[port];
- }
- result |= chip->latch[port] & chip->out_mask[port];
-
- /* read special port 2 signals */
- if (port == 2)
- ppi8255_get_handshake_signals(chip, &result);
-
- return result;
-}
-
-UINT8 ppi8255_r(INT32 which, INT32 offset)
-{
-#if defined FBA_DEBUG
- if (!DebugDev_8255PPIInitted) bprintf(PRINT_ERROR, _T("ppi8255_r called without init\n"));
- if (which > nNumChips) bprintf(PRINT_ERROR, _T("ppi8255_r called with invalid chip %x\n"), which);
-#endif
-
- ppi8255 *chip = &chips[which];
- UINT8 result = 0;
-
- offset %= 4;
-
- switch(offset)
- {
- case 0: /* Port A read */
- case 1: /* Port B read */
- case 2: /* Port C read */
- result = ppi8255_read_port(chip, offset, which);
- break;
-
- case 3: /* Control word */
- result = 0xFF;
- break;
- }
-
- return result;
-}
-
-static void set_mode(INT32 which, INT32 data, INT32 call_handlers)
-{
- ppi8255 *chip = &chips[which];
- INT32 i;
-
- /* parse out mode */
- chip->groupA_mode = (data >> 5) & 3;
- chip->groupB_mode = (data >> 2) & 1;
- chip->portA_dir = (data >> 4) & 1;
- chip->portB_dir = (data >> 1) & 1;
- chip->portCH_dir = (data >> 3) & 1;
- chip->portCL_dir = (data >> 0) & 1;
-
- /* normalize groupA_mode */
- if (chip->groupA_mode == 3)
- chip->groupA_mode = 2;
-
- /* Port A direction */
- if (chip->portA_dir)
- chip->in_mask[0] = 0xFF, chip->out_mask[0] = 0x00; /* input */
- else
- chip->in_mask[0] = 0x00, chip->out_mask[0] = 0xFF; /* output */
-
- /* Port B direction */
- if (chip->portB_dir)
- chip->in_mask[1] = 0xFF, chip->out_mask[1] = 0x00; /* input */
- else
- chip->in_mask[1] = 0x00, chip->out_mask[1] = 0xFF; /* output */
-
- /* Port C upper direction */
- if (chip->portCH_dir)
- chip->in_mask[2] = 0xF0, chip->out_mask[2] = 0x00; /* input */
- else
- chip->in_mask[2] = 0x00, chip->out_mask[2] = 0xF0; /* output */
-
- /* Port C lower direction */
- if (chip->portCL_dir)
- chip->in_mask[2] |= 0x0F; /* input */
- else
- chip->out_mask[2] |= 0x0F; /* output */
-
- /* now depending on the group modes, certain Port C lines may be replaced
- * with varying control signals */
- switch(chip->groupA_mode)
- {
- case 0: /* Group A mode 0 */
- /* no changes */
- break;
-
- case 1: /* Group A mode 1 */
- /* bits 5-3 are reserved by Group A mode 1 */
- chip->in_mask[2] &= ~0x38;
- chip->out_mask[2] &= ~0x38;
- break;
-
- case 2: /* Group A mode 2 */
- /* bits 7-3 are reserved by Group A mode 2 */
- chip->in_mask[2] &= ~0xF8;
- chip->out_mask[2] &= ~0xF8;
- break;
- }
-
- switch(chip->groupB_mode)
- {
- case 0: /* Group B mode 0 */
- /* no changes */
- break;
-
- case 1: /* Group B mode 1 */
- /* bits 2-0 are reserved by Group B mode 1 */
- chip->in_mask[2] &= ~0x07;
- chip->out_mask[2] &= ~0x07;
- break;
- }
-
- /* KT: 25-Dec-99 - 8255 resets latches when mode set */
- chip->latch[0] = chip->latch[1] = chip->latch[2] = 0;
-
- if (call_handlers)
- {
- for (i = 0; i < 3; i++)
- ppi8255_write_port(chip, i, which);
- }
-}
-
-void ppi8255_w(INT32 which, INT32 offset, UINT8 data)
-{
-#if defined FBA_DEBUG
- if (!DebugDev_8255PPIInitted) bprintf(PRINT_ERROR, _T("ppi8255_w called without init\n"));
- if (which > nNumChips) bprintf(PRINT_ERROR, _T("ppi8255_w called with invalid chip %x\n"), which);
-#endif
-
- ppi8255 *chip = &chips[which];
-
- offset %= 4;
-
- switch( offset )
- {
- case 0: /* Port A write */
- case 1: /* Port B write */
- case 2: /* Port C write */
- chip->latch[offset] = data;
- ppi8255_write_port(chip, offset, which);
-
- switch(offset)
- {
- case 0:
- if (!chip->portA_dir && (chip->groupA_mode != 0))
- {
- chip->obf_a = 1;
- ppi8255_write_port(chip, 2, which);
- }
- break;
-
- case 1:
- if (!chip->portB_dir && (chip->groupB_mode != 0))
- {
- chip->obf_b = 1;
- ppi8255_write_port(chip, 2, which);
- }
- break;
- }
- break;
-
- case 3: /* Control word */
- if (data & 0x80)
- {
- set_mode(which, data & 0x7f, 1);
- }
- else
- {
- /* bit set/reset */
- INT32 bit;
-
- bit = (data >> 1) & 0x07;
-
- if (data & 1)
- chip->latch[2] |= (1<latch[2] &= ~(1< nNumChips) bprintf(PRINT_ERROR, _T("ppi8255_set_portC called with invalid chip %x\n"), which);
-#endif
-
- ppi8255_input(&chips[which], 2, data, which);
-}
-
-#undef MAX_PPIS
diff --git a/jan/src/burn/devices/8255ppi.h b/jan/src/burn/devices/8255ppi.h
deleted file mode 100644
index c88a76f6a..000000000
--- a/jan/src/burn/devices/8255ppi.h
+++ /dev/null
@@ -1,27 +0,0 @@
-typedef UINT8 (*PPIPortRead)();
-typedef void (*PPIPortWrite)(UINT8 data);
-extern PPIPortRead PPI0PortReadA;
-extern PPIPortRead PPI0PortReadB;
-extern PPIPortRead PPI0PortReadC;
-extern PPIPortWrite PPI0PortWriteA;
-extern PPIPortWrite PPI0PortWriteB;
-extern PPIPortWrite PPI0PortWriteC;
-extern PPIPortRead PPI1PortReadA;
-extern PPIPortRead PPI1PortReadB;
-extern PPIPortRead PPI1PortReadC;
-extern PPIPortWrite PPI1PortWriteA;
-extern PPIPortWrite PPI1PortWriteB;
-extern PPIPortWrite PPI1PortWriteC;
-extern PPIPortRead PPI2PortReadA;
-extern PPIPortRead PPI2PortReadB;
-extern PPIPortRead PPI2PortReadC;
-extern PPIPortWrite PPI2PortWriteA;
-extern PPIPortWrite PPI2PortWriteB;
-extern PPIPortWrite PPI2PortWriteC;
-
-void ppi8255_init(INT32 num);
-void ppi8255_exit();
-void ppi8255_scan();
-UINT8 ppi8255_r(INT32 which, INT32 offset);
-void ppi8255_w(INT32 which, INT32 offset, UINT8 data);
-void ppi8255_set_portC( INT32 which, UINT8 data );
diff --git a/jan/src/burn/devices/8257dma.cpp b/jan/src/burn/devices/8257dma.cpp
deleted file mode 100644
index f668eaf3d..000000000
--- a/jan/src/burn/devices/8257dma.cpp
+++ /dev/null
@@ -1,440 +0,0 @@
-/**********************************************************************
-
- 8257 DMA interface and emulation
-
- For datasheet http://www.threedee.com/jcm/library/index.html
-
- 2008/05 Miodrag Milanovic
-
- - added support for autoload mode
- - fixed bug in calculating count
-
- 2007/11 couriersud
-
- - architecture copied from 8237 DMA
- - significant changes to implementation
-
- The DMA works like this:
-
- 1. The device asserts the DRQn line
- 2. The DMA clears the TC (terminal count) line
- 3. The DMA asserts the CPU's HRQ (halt request) line
- 4. Upon acknowledgement of the halt, the DMA will let the device
- know that it needs to send information by asserting the DACKn
- line
- 5. The DMA will read the byte from the device
- 6. The device clears the DRQn line
- 7. The DMA clears the CPU's HRQ line
- 8. (steps 3-7 are repeated for every byte in the chain)
-
- MAME sources by Curt Coder,Carl
-
-**********************************************************************/
-
-#include "burnint.h"
-#include "driver.h"
-#include "8257dma.h"
-
-#define I8257_NUM_CHANNELS (4)
-
-#define I8257_STATUS_UPDATE 0x10
-#define I8257_STATUS_TC_CH3 0x08
-#define I8257_STATUS_TC_CH2 0x04
-#define I8257_STATUS_TC_CH1 0x02
-#define I8257_STATUS_TC_CH0 0x01
-
-#define DMA_MODE_AUTOLOAD(mode) ((mode) & 0x80)
-#define DMA_MODE_TCSTOP(mode) ((mode) & 0x40)
-#define DMA_MODE_EXWRITE(mode) ((mode) & 0x20)
-#define DMA_MODE_ROTPRIO(mode) ((mode) & 0x10)
-#define DMA_MODE_CH_EN(mode, chan) ((mode) & (1 << (chan)))
-
-#define TIMER_OPERATION 0
-#define TIMER_MSBFLIP 1
-#define TIMER_DRQ_SYNC 2
-
-static void (*m_out_hrq_func)(INT32 line); // halt
-static void (*m_out_tc_func)(INT32 line);
-static void (*m_out_mark_func)(INT32 line);
-
-static UINT8 (*m_in_memr_func)(UINT16 address);
-static void (*m_out_memw_func)(UINT16 address, UINT8 data);
-static ior_in_functs m_in_ior_func[I8257_NUM_CHANNELS];
-static ior_out_functs m_out_iow_func[I8257_NUM_CHANNELS];
-static INT32 (*m_idle_func)(INT32);
-
-static UINT16 m_registers[I8257_NUM_CHANNELS*2];
-static UINT16 m_address[I8257_NUM_CHANNELS];
-static UINT16 m_count[I8257_NUM_CHANNELS];
-static UINT8 m_rwmode[I8257_NUM_CHANNELS];
-static UINT8 m_mode;
-static UINT8 m_rr;
-static UINT8 m_msb;
-static UINT8 m_drq;
-static UINT8 m_status; /* bits 0- 3 : Terminal count for channels 0-3 */
-
-void i8257_update_status();
-
-//-------------------------------------------------
-// device_start - device-specific startup
-//-------------------------------------------------
-
-// fake functions to keep everything safe
-static void null_line(INT32){}
-static UINT8 null_in(UINT16){ return 0; }
-static void null_out(UINT16,UINT8){}
-static INT32 null_idle(INT32){return 0;}
-
-static INT32 trigger_transfer = 0;
-
-void i8257Init()
-{
- DebugDev_8257DMAInitted = 1;
-
- // these aren't used atm.
- m_out_hrq_func = null_line;
- m_out_tc_func = null_line;
- m_out_mark_func = null_line;
-
- m_in_memr_func = null_in;
- m_out_memw_func = null_out;
-
- m_idle_func = null_idle;
-
- for (INT32 i = 0; i < I8257_NUM_CHANNELS; i++) {
- m_in_ior_func[i] = null_in;
- m_out_iow_func[i] = null_out;
- }
-}
-
-void i8257Exit()
-{
-#if defined FBA_DEBUG
- if (!DebugDev_8257DMAInitted) bprintf(PRINT_ERROR, _T("i8257Exit called without init\n"));
-#endif
-
- DebugDev_8257DMAInitted = 0;
-}
-
-void i8257Config(UINT8 (*cpuread)(UINT16), void (*cpuwrite)(UINT16,UINT8), INT32 (*idle)(INT32), ior_in_functs *read_f, ior_out_functs *write_f)
-{
-#if defined FBA_DEBUG
- if (!DebugDev_8257DMAInitted) bprintf(PRINT_ERROR, _T("i8257Config called without init\n"));
-#endif
-
- m_in_memr_func = cpuread;
- m_out_memw_func = cpuwrite;
-
- for (INT32 i = 0; i < I8257_NUM_CHANNELS; i++) {
- if (read_f != NULL) m_in_ior_func[i] = (read_f[i] != NULL) ? read_f[i] : null_in;
- if (write_f != NULL) m_out_iow_func[i] = (write_f[i] != NULL) ? write_f[i] : null_out;
- }
-
- if (idle != NULL) m_idle_func = idle;
-}
-
-//-------------------------------------------------
-// device_reset - device-specific reset
-//-------------------------------------------------
-
-void i8257Reset()
-{
-#if defined FBA_DEBUG
- if (!DebugDev_8257DMAInitted) bprintf(PRINT_ERROR, _T("i8257Reset called without init\n"));
-#endif
-
- trigger_transfer = 0;
- m_status &= 0xf0;
- m_mode = 0;
- i8257_update_status();
-}
-
-static INT32 i8257_do_operation(INT32 channel)
-{
- INT32 done = 0;
- UINT8 data;
-
- UINT8 mode = m_rwmode[channel];
-
- if (m_count[channel] == 0x0000)
- {
- m_status |= (0x01 << channel);
-
- m_out_tc_func(ASSERT_LINE);
- }
-
- switch (mode)
- {
- case 0:
- m_address[channel]++;
- m_count[channel]--;
- done = (m_count[channel] == 0xFFFF);
- break;
-
- case 1:
- data = m_in_memr_func(m_address[channel]);
- m_out_iow_func[channel](m_address[channel], data);
- m_address[channel]++;
- m_count[channel]--;
- done = (m_count[channel] == 0xFFFF);
- break;
-
- case 2:
- data = m_in_ior_func[channel](m_address[channel]);
- m_out_memw_func(m_address[channel], data);
- m_address[channel]++;
- m_count[channel]--;
- done = (m_count[channel] == 0xFFFF);
- break;
- }
-
- if (done)
- {
- if ((channel==2) && DMA_MODE_AUTOLOAD(m_mode))
- {
- /* in case of autoload at the end channel 3 info is */
- /* copied to channel 2 info */
- m_registers[4] = m_registers[6];
- m_registers[5] = m_registers[7];
- }
-
- m_out_tc_func(CLEAR_LINE);
- }
-
- return done;
-}
-
-static void i8257_timer(INT32 id, INT32 param)
-{
- switch (id)
- {
- case TIMER_OPERATION:
- {
- INT32 i, channel = 0, rr;
- INT32 done;
-
- rr = DMA_MODE_ROTPRIO(m_mode) ? m_rr : 0;
- for (i = 0; i < I8257_NUM_CHANNELS; i++)
- {
- channel = (i + rr) % I8257_NUM_CHANNELS;
- if ((m_status & (1 << channel)) == 0)
- {
- if (m_mode & m_drq & (1 << channel))
- {
- break;
- }
- }
- }
-
- done = i8257_do_operation(channel);
- m_rr = (channel + 1) & 0x03;
-
- if (done)
- {
- m_drq &= ~(0x01 << channel);
- trigger_transfer = 1; // i8257_update_status();
- if (!(DMA_MODE_AUTOLOAD(m_mode) && channel==2))
- {
- if (DMA_MODE_TCSTOP(m_mode))
- {
- m_mode &= ~(0x01 << channel);
- }
- }
- }
- break;
- }
-
- case TIMER_MSBFLIP:
- m_msb ^= 1;
- break;
-
- case TIMER_DRQ_SYNC:
- {
- INT32 channel = param >> 1;
- INT32 state = param & 0x01;
-
- /* normalize state */
- if (state)
- {
- m_drq |= 0x01 << channel;
- m_address[channel] = m_registers[channel * 2];
- m_count[channel] = m_registers[channel * 2 + 1] & 0x3FFF;
- m_rwmode[channel] = m_registers[channel * 2 + 1] >> 14;
- /* clear channel TC */
- m_status &= ~(0x01 << channel);
- }
- else
- m_drq &= ~(0x01 << channel);
-
- trigger_transfer = 1; // i8257_update_status();
- break;
- }
- }
-}
-
-void i8257_update_status()
-{
-#if defined FBA_DEBUG
- if (!DebugDev_8257DMAInitted) bprintf(PRINT_ERROR, _T("i8257_update_status called without init\n"));
-#endif
-
- UINT16 pending_transfer;
-
- /* no transfer is active right now; is there a transfer pending right now? */
- pending_transfer = m_drq & (m_mode & 0x0F);
-
- while (pending_transfer)
- {
- m_idle_func(4);
- i8257_timer(TIMER_OPERATION, 0);
-
- pending_transfer = m_drq & (m_mode & 0x0F);
- }
-
- /* set the halt line */
- m_out_hrq_func(pending_transfer ? ASSERT_LINE : CLEAR_LINE);
-}
-
-static void i8257_prepare_msb_flip()
-{
- i8257_timer(TIMER_MSBFLIP, 0);
-}
-
-UINT8 i8257Read(UINT8 offset)
-{
-#if defined FBA_DEBUG
- if (!DebugDev_8257DMAInitted) bprintf(PRINT_ERROR, _T("i8257Read called without init\n"));
-#endif
-
- UINT8 data = 0xFF;
-
- switch (offset & 0x0f)
- {
- case 0:
- case 1:
- case 2:
- case 3:
- case 4:
- case 5:
- case 6:
- case 7:
- /* DMA address/count register */
- data = ( m_registers[offset & 7] >> (m_msb ? 8 : 0) ) & 0xFF;
- i8257_prepare_msb_flip();
- break;
-
- case 8:
- /* DMA status register */
- data = (UINT8) m_status;
- /* read resets status ! */
- m_status &= 0xF0;
- break;
-
- default:
- data = 0xFF;
- break;
- }
-
- return data;
-}
-
-void i8257Write(UINT8 offset, UINT8 data)
-{
-#if defined FBA_DEBUG
- if (!DebugDev_8257DMAInitted) bprintf(PRINT_ERROR, _T("i8257Write called without init\n"));
-#endif
-
- switch (offset & 0x0f)
- {
- case 0:
- case 1:
- case 2:
- case 3:
- case 4:
- case 5:
- case 6:
- case 7:
- /* DMA address/count register */
- if (m_msb)
- {
- m_registers[offset & 0x7] |= ((UINT16) data) << 8;
- }
- else
- {
- m_registers[offset & 0x7] = data;
- }
-
- if (DMA_MODE_AUTOLOAD(m_mode))
- {
- /* in case of autoload when inserting channel 2 info */
- /* it is automaticaly copied to channel 3 info */
- switch(offset)
- {
- case 4:
- case 5:
- if (m_msb)
- {
- m_registers[(offset & 0x7)+2] |= ((UINT16) data) << 8;
- }
- else
- {
- m_registers[(offset & 0x7)+2] = data;
- }
- }
- }
-
- i8257_prepare_msb_flip();
- break;
-
- case 8:
- /* DMA mode register */
- m_mode = data;
- break;
- }
-}
-
-void i8257_drq_write(INT32 channel, INT32 state)
-{
-#if defined FBA_DEBUG
- if (!DebugDev_8257DMAInitted) bprintf(PRINT_ERROR, _T("i8257_drq_write called without init\n"));
-#endif
-
- INT32 param = (channel << 1) | (state ? 1 : 0);
-
- i8257_timer(TIMER_DRQ_SYNC, param);
-}
-
-void i8257_do_transfer(INT32)
-{
-#if defined FBA_DEBUG
- if (!DebugDev_8257DMAInitted) bprintf(PRINT_ERROR, _T("i8257_do_transfer called without init\n"));
-#endif
-
- if (trigger_transfer)
- i8257_update_status();
- trigger_transfer = 0;
-}
-
-void i8257Scan()
-{
-#if defined FBA_DEBUG
- if (!DebugDev_8257DMAInitted) bprintf(PRINT_ERROR, _T("i8257Scan called without init\n"));
-#endif
-
- for (INT32 i = 0; i < I8257_NUM_CHANNELS; i++) {
- SCAN_VAR(m_registers[i * 2 + 0]);
- SCAN_VAR(m_registers[i * 2 + 1]);
-
- SCAN_VAR(m_address[i]);
- SCAN_VAR(m_count[i]);
- SCAN_VAR(m_rwmode[i]);
- }
-
- SCAN_VAR(m_mode);
- SCAN_VAR(m_rr);
- SCAN_VAR(m_msb);
- SCAN_VAR(m_drq);
- SCAN_VAR(m_status);
-
- SCAN_VAR(trigger_transfer);
-}
diff --git a/jan/src/burn/devices/8257dma.h b/jan/src/burn/devices/8257dma.h
deleted file mode 100644
index 40819003d..000000000
--- a/jan/src/burn/devices/8257dma.h
+++ /dev/null
@@ -1,13 +0,0 @@
-
-typedef UINT8 (*ior_in_functs)(UINT16 address);
-typedef void (*ior_out_functs)(UINT16 address, UINT8 data);
-
-void i8257Reset();
-UINT8 i8257Read(UINT8 offset);
-void i8257Write(UINT8 offset, UINT8 data);
-void i8257_drq_write(INT32 channel, INT32 state);
-void i8257_do_transfer(INT32 state); // call after last drq_write
-void i8257Init();
-void i8257Exit();
-void i8257Config(UINT8 (*cpuread)(UINT16), void (*cpuwrite)(UINT16,UINT8), INT32 (*idle)(INT32), ior_in_functs *read_f, ior_out_functs *write_f);
-void i8257Scan();
diff --git a/jan/src/burn/devices/c169.cpp b/jan/src/burn/devices/c169.cpp
deleted file mode 100644
index c14c7b35c..000000000
--- a/jan/src/burn/devices/c169.cpp
+++ /dev/null
@@ -1,181 +0,0 @@
-#include "tiles_generic.h"
-
-static UINT32 size;
-static INT32 color;
-static INT32 priority;
-
-static INT32 left;
-static INT32 top;
-static INT32 incxx;
-static INT32 incxy;
-static INT32 incyx;
-static INT32 incyy;
-
-static INT32 startx=0;
-static INT32 starty=0;
-
-static INT32 clip_min_y;
-static INT32 clip_max_y;
-static INT32 clip_min_x;
-static INT32 clip_max_x;
-
-static INT32 global_priority = 0;
-
-static UINT8 *roz_ram;
-static UINT8 *roz_ctrl;
-static UINT16 *roz_bitmap;
-
-void c169_roz_init(UINT8 *ram, UINT8 *control, UINT16 *bitmap)
-{
- roz_ram = ram;
- roz_ctrl = control;
- roz_bitmap = bitmap;
-}
-
-static void c169_roz_unpack_params(const UINT16 *source)
-{
- const INT32 xoffset = 36, yoffset = 3;
-
- UINT16 temp = source[1];
- size = 512 << ((temp & 0x0300) >> 8);
- color = (temp & 0x000f) * 256;
- priority = (temp & 0x00f0) >> 4;
-
- temp = source[2];
- left = (temp & 0x7000) >> 3;
- if (temp & 0x8000) temp |= 0xf000; else temp &= 0x0fff; // sign extend
- incxx = (INT16)temp;
-
- temp = source[3];
- top = (temp&0x7000)>>3;
- if (temp & 0x8000) temp |= 0xf000; else temp &= 0x0fff; // sign extend
- incxy = (INT16)temp;
-
- temp = source[4];
- if (temp & 0x8000) temp |= 0xf000; else temp &= 0x0fff; // sign extend
- incyx = (INT16)temp;
-
- temp = source[5];
- if (temp & 0x8000) temp |= 0xf000; else temp &= 0x0fff; // sign extend
- incyy = (INT16)temp;
-
- startx = (INT16)source[6];
- starty = (INT16)source[7];
- startx <<= 4;
- starty <<= 4;
-
- startx += xoffset * incxx + yoffset * incyx;
- starty += xoffset * incxy + yoffset * incyy;
-
- startx <<= 8;
- starty <<= 8;
- incxx <<= 8;
- incxy <<= 8;
- incyx <<= 8;
- incyy <<= 8;
-}
-
-static void c169_roz_draw_helper()
-{
- UINT32 size_mask = size - 1;
- UINT16 *srcbitmap = roz_bitmap;
- UINT32 hstartx = startx + clip_min_x * incxx + clip_min_y * incyx;
- UINT32 hstarty = starty + clip_min_x * incxy + clip_min_y * incyy;
- INT32 sx = clip_min_x;
- INT32 sy = clip_min_y;
- while (sy <= clip_max_y)
- {
- INT32 x = sx;
- UINT32 cx = hstartx;
- UINT32 cy = hstarty;
- UINT16 *dest = pTransDraw + (sy * nScreenWidth) + sx;
- UINT8 *prio = pPrioDraw + (sy * nScreenWidth) + sx;
- while (x <= clip_max_x)
- {
- UINT32 xpos = (((cx >> 16) & size_mask) + left) & 0xfff;
- UINT32 ypos = (((cy >> 16) & size_mask) + top) & 0xfff;
- INT32 pxl = srcbitmap[(ypos * 0x1000) + xpos];
- if ((pxl & 0x8000) == 0) {
- *dest = srcbitmap[(ypos * 0x1000) + xpos] + color;
- *prio = global_priority;
- }
- cx += incxx;
- cy += incxy;
- x++;
- dest++;
- prio++;
- }
- hstartx += incyx;
- hstarty += incyy;
- sy++;
- }
-}
-
-static void c169_roz_draw_scanline(INT32 line, INT32 pri)
-{
- if (line >= 0 && line <= clip_max_y) // namco's clipping is 1 less for max_*
- {
- INT32 row = line / 8;
- INT32 offs = row * 0x100 + (line & 7) * 0x10 + 0xe080;
- UINT16 *source = (UINT16*)(roz_ram + offs);
-
- if ((source[1] & 0x8000) == 0)
- {
- if (pri == priority)
- {
- c169_roz_unpack_params(source);
-
- INT32 oldmin = clip_min_y;
- INT32 oldmax = clip_max_y;
-
- clip_min_y = line;
- clip_max_y = line+1;
-
- c169_roz_draw_helper();
-
- clip_min_y = oldmin;
- clip_max_y = oldmax;
- }
- }
- }
-}
-
-void c169_roz_draw(INT32 pri, INT32 line)
-{
- GenericTilesGetClip(&clip_min_x, &clip_max_x, &clip_min_y, &clip_max_y);
-
- if (line != -1) {
- if (line >= clip_min_y && line <= clip_max_y) {
- clip_min_y = line;
- clip_max_y = line+1;
- } else {
- return; // nothing to draw due to clipping
- }
- }
-
- const UINT16 *source = (UINT16*)roz_ctrl;
-
- INT32 mode = source[0]; // 0x8000 or 0x1000
-
- global_priority = pri;
-
- for (INT32 which = 1; which >= 0; which--)
- {
- UINT16 attrs = source[1 + (which*8)];
- if ((attrs & 0x8000) == 0)
- {
- if (which == 1 && mode == 0x8000)
- {
- for (INT32 scanline = clip_min_y; scanline <= clip_max_y; scanline++)
- c169_roz_draw_scanline(scanline, pri);
- }
- else
- {
- c169_roz_unpack_params(source + (which*8));
- if (priority == pri)
- c169_roz_draw_helper();
- }
- }
- }
-}
-
diff --git a/jan/src/burn/devices/c169.h b/jan/src/burn/devices/c169.h
deleted file mode 100644
index c154ca4b8..000000000
--- a/jan/src/burn/devices/c169.h
+++ /dev/null
@@ -1,2 +0,0 @@
-void c169_roz_init(UINT8 *ram, UINT8 *control, UINT16 *bitmap);
-void c169_roz_draw(INT32 pri, INT32 line);
diff --git a/jan/src/burn/devices/eeprom.cpp b/jan/src/burn/devices/eeprom.cpp
deleted file mode 100644
index 091fb4dbe..000000000
--- a/jan/src/burn/devices/eeprom.cpp
+++ /dev/null
@@ -1,385 +0,0 @@
-// MAME sources by ????
-
-#include "burnint.h"
-#include "eeprom.h"
-
-#define SERIAL_BUFFER_LENGTH 40
-#define MEMORY_SIZE 1024
-
-static const eeprom_interface *intf;
-
-static INT32 serial_count;
-static UINT8 serial_buffer[SERIAL_BUFFER_LENGTH];
-static UINT8 eeprom_data[MEMORY_SIZE];
-static INT32 eeprom_data_bits;
-static INT32 eeprom_read_address;
-static INT32 eeprom_clock_count;
-static INT32 latch, reset_line, clock_line, sending;
-static INT32 locked;
-static INT32 reset_delay;
-
-static INT32 neeprom_available = 0;
-
-static INT32 overrun_errmsg_ignore = 0;
-
-static INT32 eeprom_command_match(const char *buf, const char *cmd, INT32 len)
-{
- if ( cmd == 0 ) return 0;
- if ( len == 0 ) return 0;
-
- for (;len>0;)
- {
- char b = *buf;
- char c = *cmd;
-
- if ((b==0) || (c==0))
- return (b==c);
-
- switch ( c )
- {
- case '0':
- case '1':
- if (b != c) return 0;
- case 'X':
- case 'x':
- buf++;
- len--;
- cmd++;
- break;
-
- case '*':
- c = cmd[1];
- switch( c )
- {
- case '0':
- case '1':
- if (b == c) { cmd++; }
- else { buf++; len--; }
- break;
- default: return 0;
- }
- }
- }
- return (*cmd==0);
-}
-
-INT32 EEPROMAvailable()
-{
-#if defined FBA_DEBUG
- if (!DebugDev_EEPROMInitted) bprintf(PRINT_ERROR, _T("EEPROMAvailable called without init\n"));
-#endif
-
- return neeprom_available;
-}
-
-void EEPROMInit(const eeprom_interface *interface)
-{
- DebugDev_EEPROMInitted = 1;
-
- intf = interface;
-
- if ((1 << intf->address_bits) * intf->data_bits / 8 > MEMORY_SIZE)
- {
- bprintf(0, _T("EEPROM larger than eeprom allows"));
- }
-
- memset(eeprom_data,0xff,(1 << intf->address_bits) * intf->data_bits / 8);
- serial_count = 0;
- latch = 0;
- reset_line = EEPROM_ASSERT_LINE;
- clock_line = EEPROM_ASSERT_LINE;
- eeprom_read_address = 0;
- sending = 0;
- if (intf->cmd_unlock) locked = 1;
- else locked = 0;
-
- TCHAR output[MAX_PATH];
- _stprintf (output, _T("%s%s.nv"), szAppEEPROMPath, BurnDrvGetText(DRV_NAME));
-
- neeprom_available = 0;
-
- INT32 len = ((1 << intf->address_bits) * (intf->data_bits >> 3)) & (MEMORY_SIZE-1);
-
- FILE *fz = _tfopen(output, _T("rb"));
- if (fz != NULL) {
- neeprom_available = 1;
- fread (eeprom_data, len, 1, fz);
- fclose (fz);
- }
-}
-
-void EEPROMExit()
-{
-#if defined FBA_DEBUG
- if (!DebugDev_EEPROMInitted) bprintf(PRINT_ERROR, _T("EEPROMExit called without init\n"));
-#endif
-
- if (!DebugDev_EEPROMInitted) return;
-
- TCHAR output[MAX_PATH];
- _stprintf (output, _T("%s%s.nv"), szAppEEPROMPath, BurnDrvGetText(DRV_NAME));
-
- neeprom_available = 0;
-
- INT32 len = ((1 << intf->address_bits) * (intf->data_bits >> 3)) & (MEMORY_SIZE-1);
-
- FILE *fz = _tfopen(output, _T("wb"));
- if (fz) {
- fwrite (eeprom_data, len, 1, fz);
- fclose (fz);
- }
-
- overrun_errmsg_ignore = 0;
-
- DebugDev_EEPROMInitted = 0;
-}
-
-void EEPROMIgnoreErrMessage(INT32 onoff)
-{
- overrun_errmsg_ignore = (onoff) ? 1 : 0;
-}
-
-static void eeprom_write(INT32 bit)
-{
- if (serial_count >= SERIAL_BUFFER_LENGTH-1)
- {
- if (!overrun_errmsg_ignore) {
- bprintf(0, _T("error: EEPROM serial buffer overflow\n"));
- }
- return;
- }
-
- serial_buffer[serial_count++] = (bit ? '1' : '0');
- serial_buffer[serial_count] = 0;
-
- if ( (serial_count > intf->address_bits) &&
- eeprom_command_match((char*)serial_buffer,intf->cmd_read,strlen((char*)serial_buffer)-intf->address_bits) )
- {
- INT32 i,address;
-
- address = 0;
- for (i = serial_count-intf->address_bits;i < serial_count;i++)
- {
- address <<= 1;
- if (serial_buffer[i] == '1') address |= 1;
- }
- if (intf->data_bits == 16)
- eeprom_data_bits = (eeprom_data[2*address+0] << 8) + eeprom_data[2*address+1];
- else
- eeprom_data_bits = eeprom_data[address];
- eeprom_read_address = address;
- eeprom_clock_count = 0;
- sending = 1;
- serial_count = 0;
- }
- else if ( (serial_count > intf->address_bits) &&
- eeprom_command_match((char*)serial_buffer,intf->cmd_erase,strlen((char*)serial_buffer)-intf->address_bits) )
- {
- INT32 i,address;
-
- address = 0;
- for (i = serial_count-intf->address_bits;i < serial_count;i++)
- {
- address <<= 1;
- if (serial_buffer[i] == '1') address |= 1;
- }
-
- if (locked == 0)
- {
- if (intf->data_bits == 16)
- {
- eeprom_data[2*address+0] = 0xff;
- eeprom_data[2*address+1] = 0xff;
- }
- else
- eeprom_data[address] = 0xff;
- }
- else
- serial_count = 0;
- }
- else if ( (serial_count > (intf->address_bits + intf->data_bits)) &&
- eeprom_command_match((char*)serial_buffer,intf->cmd_write,strlen((char*)serial_buffer)-(intf->address_bits + intf->data_bits)) )
- {
- INT32 i,address,data;
-
- address = 0;
- for (i = serial_count-intf->data_bits-intf->address_bits;i < (serial_count-intf->data_bits);i++)
- {
- address <<= 1;
- if (serial_buffer[i] == '1') address |= 1;
- }
- data = 0;
- for (i = serial_count-intf->data_bits;i < serial_count;i++)
- {
- data <<= 1;
- if (serial_buffer[i] == '1') data |= 1;
- }
-
- if (locked == 0)
- {
- if (intf->data_bits == 16)
- {
- eeprom_data[2*address+0] = data >> 8;
- eeprom_data[2*address+1] = data & 0xff;
- }
- else
- eeprom_data[address] = data;
- }
- else
- serial_count = 0;
- }
- else if ( eeprom_command_match((char*)serial_buffer,intf->cmd_lock,strlen((char*)serial_buffer)) )
- {
- locked = 1;
- serial_count = 0;
- }
- else if ( eeprom_command_match((char*)serial_buffer,intf->cmd_unlock,strlen((char*)serial_buffer)) )
- {
- locked = 0;
- serial_count = 0;
- }
-}
-
-void EEPROMReset()
-{
-#if defined FBA_DEBUG
- if (!DebugDev_EEPROMInitted) bprintf(PRINT_ERROR, _T("EEPROMReset called without init\n"));
-#endif
-
- serial_count = 0;
- sending = 0;
- reset_delay = intf->reset_delay;
-}
-
-void EEPROMWriteBit(INT32 bit)
-{
-#if defined FBA_DEBUG
- if (!DebugDev_EEPROMInitted) bprintf(PRINT_ERROR, _T("EEPROMWriteBit called without init\n"));
-#endif
-
- latch = bit;
-}
-
-INT32 EEPROMRead()
-{
-#if defined FBA_DEBUG
- if (!DebugDev_EEPROMInitted) bprintf(PRINT_ERROR, _T("EEPROMRead called without init\n"));
-#endif
-
- INT32 res;
-
- if (sending)
- res = (eeprom_data_bits >> intf->data_bits) & 1;
- else
- {
- if (reset_delay > 0)
- {
- /* this is needed by wbeachvl */
- reset_delay--;
- res = 0;
- }
- else
- res = 1;
- }
-
- return res;
-}
-
-void EEPROMSetCSLine(INT32 state)
-{
-#if defined FBA_DEBUG
- if (!DebugDev_EEPROMInitted) bprintf(PRINT_ERROR, _T("EEPROMSetCSLine called without init\n"));
-#endif
-
- reset_line = state;
-
- if (reset_line != EEPROM_CLEAR_LINE)
- EEPROMReset();
-}
-
-void EEPROMSetClockLine(INT32 state)
-{
-#if defined FBA_DEBUG
- if (!DebugDev_EEPROMInitted) bprintf(PRINT_ERROR, _T("EEPROMSetClockLine called without init\n"));
-#endif
-
- if (state == EEPROM_PULSE_LINE || (clock_line == EEPROM_CLEAR_LINE && state != EEPROM_CLEAR_LINE))
- {
- if (reset_line == EEPROM_CLEAR_LINE)
- {
- if (sending)
- {
- if (eeprom_clock_count == intf->data_bits && intf->enable_multi_read)
- {
- eeprom_read_address = (eeprom_read_address + 1) & ((1 << intf->address_bits) - 1);
- if (intf->data_bits == 16)
- eeprom_data_bits = (eeprom_data[2*eeprom_read_address+0] << 8) + eeprom_data[2*eeprom_read_address+1];
- else
- eeprom_data_bits = eeprom_data[eeprom_read_address];
- eeprom_clock_count = 0;
- }
- eeprom_data_bits = (eeprom_data_bits << 1) | 1;
- eeprom_clock_count++;
- }
- else
- eeprom_write(latch);
- }
- }
-
- clock_line = state;
-}
-
-void EEPROMFill(const UINT8 *data, INT32 offset, INT32 length)
-{
-#if defined FBA_DEBUG
- if (!DebugDev_EEPROMInitted) bprintf(PRINT_ERROR, _T("EEPROMFill called without init\n"));
-#endif
-
- memcpy(eeprom_data + offset, data, length);
-}
-
-void EEPROMScan(INT32 nAction, INT32* pnMin)
-{
-#if defined FBA_DEBUG
- if (!DebugDev_EEPROMInitted) bprintf(PRINT_ERROR, _T("EEPROMScan called without init\n"));
-#endif
-
- struct BurnArea ba;
-
- if (nAction & ACB_DRIVER_DATA) {
-
- if (pnMin && *pnMin < 0x020902) {
- *pnMin = 0x029705;
- }
-
- memset(&ba, 0, sizeof(ba));
- ba.Data = serial_buffer;
- ba.nLen = SERIAL_BUFFER_LENGTH;
- ba.szName = "Serial Buffer";
- BurnAcb(&ba);
-
- SCAN_VAR(serial_count);
- SCAN_VAR(eeprom_data_bits);
- SCAN_VAR(eeprom_read_address);
- SCAN_VAR(eeprom_clock_count);
- SCAN_VAR(latch);
- SCAN_VAR(reset_line);
- SCAN_VAR(clock_line);
- SCAN_VAR(sending);
- SCAN_VAR(locked);
- SCAN_VAR(reset_delay);
- }
-
-// if (nAction & ACB_NVRAM) {
-//
-// if (pnMin && (nAction & ACB_TYPEMASK) == ACB_NVRAM) {
-// *pnMin = 0x02705;
-// }
-//
-// memset(&ba, 0, sizeof(ba));
-// ba.Data = eeprom_data;
-// ba.nLen = MEMORY_SIZE;
-// ba.szName = "EEPROM memory";
-// BurnAcb(&ba);
-// }
-}
diff --git a/jan/src/burn/devices/eeprom.h b/jan/src/burn/devices/eeprom.h
deleted file mode 100644
index 998e00f46..000000000
--- a/jan/src/burn/devices/eeprom.h
+++ /dev/null
@@ -1,59 +0,0 @@
-
-typedef struct _eeprom_interface eeprom_interface;
-struct _eeprom_interface
-{
- INT32 address_bits; /* EEPROM has 2^address_bits cells */
- INT32 data_bits; /* every cell has this many bits (8 or 16) */
- const char *cmd_read; /* read command string, e.g. "0110" */
- const char *cmd_write; /* write command string, e.g. "0111" */
- const char *cmd_erase; /* erase command string, or 0 if n/a */
- const char *cmd_lock; /* lock command string, or 0 if n/a */
- const char *cmd_unlock; /* unlock command string, or 0 if n/a */
- INT32 enable_multi_read; /* set to 1 to enable multiple values to be read from one read command */
- INT32 reset_delay; /* number of times eeprom_read_bit() should return 0 after a reset, */
- /* before starting to return 1. */
-};
-
-// default for most in fba
-const eeprom_interface eeprom_interface_93C46 =
-{
- 6, // address bits 6
- 16, // data bits 16
- "*110", // read 1 10 aaaaaa
- "*101", // write 1 01 aaaaaa dddddddddddddddd
- "*111", // erase 1 11 aaaaaa
- "*10000xxxx", // lock 1 00 00xxxx
- "*10011xxxx", // unlock 1 00 11xxxx
- 1,
- 0
-};
-
-#define EEPROM_CLEAR_LINE 0
-#define EEPROM_ASSERT_LINE 1
-#define EEPROM_PULSE_LINE 2
-
-void EEPROMInit(const eeprom_interface *interface);
-void EEPROMReset();
-void EEPROMExit();
-
-INT32 EEPROMAvailable(); // are we loading an eeprom file?
-
-INT32 EEPROMRead();
-
-// Write each individually
-void EEPROMWriteBit(INT32 bit);
-void EEPROMSetCSLine(INT32 state);
-void EEPROMSetClockLine(INT32 state);
-
-// Or all at once
-#define EEPROMWrite(clock, cs, bit) \
- EEPROMWriteBit(bit); \
- EEPROMSetCSLine(cs ? EEPROM_CLEAR_LINE : EEPROM_ASSERT_LINE); \
- EEPROMSetClockLine(clock ? EEPROM_ASSERT_LINE : EEPROM_CLEAR_LINE)
-
-void EEPROMFill(const UINT8 *data, INT32 offset, INT32 length);
-
-void EEPROMScan(INT32 nAction, INT32* pnMin);
-
-// Some buggy games throw a lot of garbage at the EEPROM (Taito F3)
-void EEPROMIgnoreErrMessage(INT32 onoff);
diff --git a/jan/src/burn/devices/gaelco_crypt.cpp b/jan/src/burn/devices/gaelco_crypt.cpp
deleted file mode 100644
index 12e34205c..000000000
--- a/jan/src/burn/devices/gaelco_crypt.cpp
+++ /dev/null
@@ -1,128 +0,0 @@
-// Based on sources by Manuel Abadia
-
-#include "burnint.h"
-#include "m68000_intf.h"
-#include "bitswap.h"
-
-static INT32 decrypt(INT32 const param1, INT32 const param2, INT32 const enc_prev_word, INT32 const dec_prev_word, INT32 const enc_word)
-{
- INT32 const swap = (BIT(dec_prev_word, 8) << 1) | BIT(dec_prev_word, 7);
- INT32 const type = (BIT(dec_prev_word,12) << 1) | BIT(dec_prev_word, 2);
- INT32 res=0;
- INT32 k=0;
-
- switch (swap)
- {
- case 0: res = BITSWAP16(enc_word, 1, 2, 0,14,12,15, 4, 8,13, 7, 3, 6,11, 5,10, 9); break;
- case 1: res = BITSWAP16(enc_word, 14,10, 4,15, 1, 6,12,11, 8, 0, 9,13, 7, 3, 5, 2); break;
- case 2: res = BITSWAP16(enc_word, 2,13,15, 1,12, 8,14, 4, 6, 0, 9, 5,10, 7, 3,11); break;
- case 3: res = BITSWAP16(enc_word, 3, 8, 1,13,14, 4,15, 0,10, 2, 7,12, 6,11, 9, 5); break;
- }
-
- res ^= param2;
-
- switch (type)
- {
- case 0:
- k = 0x003a;
- break;
-
- case 1:
- k = (BIT(dec_prev_word, 0) << 0) |
- (BIT(dec_prev_word, 1) << 1) |
- (BIT(dec_prev_word, 1) << 2) |
- (BIT(enc_prev_word, 3) << 3) |
- (BIT(enc_prev_word, 8) << 4) |
- (BIT(enc_prev_word,15) << 5);
- break;
-
- case 2:
- k = (BIT(enc_prev_word, 5) << 0) |
- (BIT(dec_prev_word, 5) << 1) |
- (BIT(enc_prev_word, 7) << 2) |
- (BIT(enc_prev_word, 3) << 3) |
- (BIT(enc_prev_word,13) << 4) |
- (BIT(enc_prev_word,14) << 5);
- break;
-
- case 3:
- k = (BIT(enc_prev_word, 0) << 0) |
- (BIT(enc_prev_word, 9) << 1) |
- (BIT(enc_prev_word, 6) << 2) |
- (BIT(dec_prev_word, 4) << 3) |
- (BIT(enc_prev_word, 2) << 4) |
- (BIT(dec_prev_word,11) << 5);
- break;
- }
-
- k ^= param1;
-
- res = ((res & 0xffc0) | ((res + k) & 0x003f)) ^ param1;
-
- switch (type)
- {
- case 0:
- k = (BIT(enc_word, 9) << 0) |
- (BIT(res,2) << 1) |
- (BIT(enc_word, 5) << 2) |
- (BIT(res,5) << 3) |
- (BIT(res,4) << 4);
- break;
-
- case 1:
- k = (BIT(dec_prev_word, 2) << 0) |
- (BIT(enc_prev_word, 4) << 1) |
- (BIT(dec_prev_word,14) << 2) |
- (BIT(res, 1) << 3) |
- (BIT(dec_prev_word,12) << 4);
- break;
-
- case 2:
- k = (BIT(enc_prev_word, 6) << 0) |
- (BIT(dec_prev_word, 6) << 1) |
- (BIT(dec_prev_word,15) << 2) |
- (BIT(res,0) << 3) |
- (BIT(dec_prev_word, 7) << 4);
- break;
-
- case 3:
- k = (BIT(dec_prev_word, 2) << 0) |
- (BIT(dec_prev_word, 9) << 1) |
- (BIT(enc_prev_word, 5) << 2) |
- (BIT(dec_prev_word, 1) << 3) |
- (BIT(enc_prev_word,10) << 4);
-
- break;
- }
-
- k ^= param1;
-
- res = ((res & 0x003f) | ((res + (k << 6)) & 0x07c0) | ((res + (k << 11)) & 0xf800)) ^ ((param1 << 6) | (param1 << 11));
-
- return BITSWAP16(res, 2,6,0,11,14,12,7,10,5,4,8,3,9,1,13,15);
-}
-
-UINT16 __fastcall gaelco_decrypt(INT32 offset, INT32 data, INT32 param1, INT32 param2)
-{
- static INT32 lastpc, lastoffset, lastencword, lastdecword;
-
- INT32 thispc = SekGetPC(-1);
-
- if (lastpc == thispc && offset == lastoffset + 1)
- {
- lastpc = 0;
- data = decrypt(param1, param2, lastencword, lastdecword, data);
- }
- else
- {
- lastpc = thispc;
- lastoffset = offset;
- lastencword = data;
-
- data = decrypt(param1, param2, 0, 0, data);
-
- lastdecword = data;
- }
-
- return BURN_ENDIAN_SWAP_INT16(data);
-}
diff --git a/jan/src/burn/devices/gaelco_crypt.h b/jan/src/burn/devices/gaelco_crypt.h
deleted file mode 100644
index fee1afda0..000000000
--- a/jan/src/burn/devices/gaelco_crypt.h
+++ /dev/null
@@ -1 +0,0 @@
-UINT16 __fastcall gaelco_decrypt(INT32 offset, INT32 data, INT32 param1, INT32 param2);
diff --git a/jan/src/burn/devices/joyprocess.cpp b/jan/src/burn/devices/joyprocess.cpp
deleted file mode 100644
index 98c7de8ea..000000000
--- a/jan/src/burn/devices/joyprocess.cpp
+++ /dev/null
@@ -1,67 +0,0 @@
-#include "burnint.h"
-#include "joyprocess.h"
-
-#define INPUT_4WAY 2
-#define INPUT_CLEAROPPOSITES 4
-#define INPUT_MAKEACTIVELOW 8
-
-void ProcessJoystick(UINT8 *input, INT8 playernum, INT8 up_bit, INT8 down_bit, INT8 left_bit, INT8 right_bit, UINT8 flags)
-{
- // Fixed Apr. 26, 2016: Limitation: this only works on the first 4 bits - active high to start with
- // Note: only works on the first 4 or last 4 bits for udlr - active high to start with
- // grep ProcessJoystick in drv/pre90s for examples
-
- static INT32 fourway[4] = { 0, 0, 0, 0 }; // 4-way buffer
- static UINT8 DrvInputPrev[4] = { 0, 0, 0, 0 }; // 4-way buffer
-
- UINT8 mask1 = (up_bit > 3) ? 0xf0 : 0xf;
- UINT8 mask2 = (up_bit > 3) ? 0xf : 0xf0;
-
- UINT8 ud = (1 << up_bit) | (1 << down_bit);
- UINT8 rl = (1 << right_bit) | (1 << left_bit);
-
- if (flags & INPUT_4WAY) {
- playernum &= 3; // just incase.
- if(*input != DrvInputPrev[playernum]) {
- fourway[playernum] = *input & mask1; //0xf;
-
- if((fourway[playernum] & rl) && (fourway[playernum] & ud))
- fourway[playernum] ^= (fourway[playernum] & (DrvInputPrev[playernum] & 0xf));
-
- if((fourway[playernum] & rl) && (fourway[playernum] & ud)) // if it starts out diagonally, pick a direction
- fourway[playernum] &= (rand()&1) ? rl : ud;
- }
-
- DrvInputPrev[playernum] = *input;
-
- *input = fourway[playernum] | (DrvInputPrev[playernum] & mask2);//0xf0); // preserve the unprocessed/other bits
- }
-
- if (flags & INPUT_CLEAROPPOSITES) {
- if ((*input & rl) == rl) {
- *input &= ~rl;
- }
- if ((*input & ud) == ud) {
- *input &= ~ud;
- }
- }
-
- if (flags & INPUT_MAKEACTIVELOW) {
- *input = 0xff - *input;
- }
-}
-
-void CompileInput(UINT8 **input, void *output, INT32 num, INT32 bits, UINT32 *init)
-{
- for (INT32 j = 0; j < num; j++) {
- if (bits > 16) ((UINT32*)output)[j] = init[j];
- if (bits > 8 && bits < 17) ((UINT16*)output)[j] = init[j];
- if (bits < 9) ((UINT8*)output)[j] = init[j];
-
- for (INT32 i = 0; i < bits; i++) {
- if (bits > 16) ((UINT32*)output)[j] ^= (input[j][i] & 1) << i;
- if (bits > 8 && bits < 17) ((UINT16*)output)[j] ^= (input[j][i] & 1) << i;
- if (bits < 9) ((UINT8*)output)[j] ^= (input[j][i] & 1) << i;
- }
- }
-}
diff --git a/jan/src/burn/devices/joyprocess.h b/jan/src/burn/devices/joyprocess.h
deleted file mode 100644
index cd0df60b5..000000000
--- a/jan/src/burn/devices/joyprocess.h
+++ /dev/null
@@ -1,7 +0,0 @@
-#define INPUT_4WAY 2
-#define INPUT_CLEAROPPOSITES 4
-#define INPUT_MAKEACTIVELOW 8
-
-void ProcessJoystick(UINT8 *input, INT8 playernum, INT8 up_bit, INT8 down_bit, INT8 left_bit, INT8 right_bit, UINT8 flags);
-void CompileInput(UINT8 **input, void *output, INT32 num, INT32 bits, UINT32 *init);
-
diff --git a/jan/src/burn/devices/kaneko_tmap.cpp b/jan/src/burn/devices/kaneko_tmap.cpp
deleted file mode 100644
index 24b80ce91..000000000
--- a/jan/src/burn/devices/kaneko_tmap.cpp
+++ /dev/null
@@ -1,180 +0,0 @@
-// Based on MAME sources by Luca Elia, David Haywood
-
-#include "tiles_generic.h"
-#include "kaneko_tmap.h"
-
-static INT32 kaneko_view2_xoff[MAX_VIEW2_CHIPS] = { 0, 0 };
-static INT32 kaneko_view2_yoff[MAX_VIEW2_CHIPS] = { 0, 0 };
-static UINT8 *kaneko_view2_vram[MAX_VIEW2_CHIPS] = { NULL, NULL };
-static UINT8 *kaneko_view2_regs[MAX_VIEW2_CHIPS] = { NULL, NULL };
-static UINT8 *kaneko_view2_gfx[MAX_VIEW2_CHIPS] = { NULL, NULL };
-static UINT8 *kaneko_view2_gfx_trans[MAX_VIEW2_CHIPS] = { NULL, NULL };
-static INT32 kaneko_color_offset[MAX_VIEW2_CHIPS] = { 0, 0 };
-
-void kaneko_view2_init(INT32 chip, UINT8 *video_ram, UINT8 *reg_ram, UINT8 *gfx_rom, INT32 color_offset, UINT8 *gfx_trans, INT32 global_x, INT32 global_y)
-{
- kaneko_view2_vram[chip] = video_ram;
- kaneko_view2_regs[chip] = reg_ram;
- kaneko_view2_gfx[chip] = gfx_rom;
- kaneko_color_offset[chip] = color_offset;
- kaneko_view2_gfx_trans[chip] = gfx_trans;
-
- kaneko_view2_xoff[chip] = global_x;
- kaneko_view2_yoff[chip] = global_y;
-}
-
-void kaneko_view2_exit()
-{
- for (INT32 i = 0; i < MAX_VIEW2_CHIPS; i++) {
- kaneko_view2_vram[i] = NULL;
- kaneko_view2_regs[i] = NULL;
- kaneko_view2_gfx[i] = NULL;
- kaneko_color_offset[i] = 0;
- kaneko_view2_gfx_trans[i] = NULL;
-
- kaneko_view2_xoff[i] = 0;
- kaneko_view2_yoff[i] = 0;
- }
-}
-
-void kaneko_view2_draw_layer(INT32 chip, INT32 layer, INT32 priority)
-{
- UINT16 *vram = (UINT16*)(kaneko_view2_vram[chip] + (layer ? 0x0000 : 0x1000));
- UINT16 *sram = (UINT16*)(kaneko_view2_vram[chip] + (layer ? 0x2000 : 0x3000));
- UINT16 *regs = (UINT16*)kaneko_view2_regs[chip];
-
- INT32 tmflip = BURN_ENDIAN_SWAP_INT16(regs[4]);
-
- INT32 enable = ~tmflip & (layer ? 0x0010 : 0x1000);
- if (enable == 0) return; // disable!
-
- INT32 tmflipx = tmflip & 0x0200; // flip whole tilemap x
- INT32 tmflipy = tmflip & 0x0100; // flip whole tilemap y
-
- INT32 lsenable = tmflip & (layer ? 0x0008 : 0x0800); // linescroll
-
- INT32 xscroll = BURN_ENDIAN_SWAP_INT16(regs[2 - (layer * 2)]);
- INT32 yscroll = BURN_ENDIAN_SWAP_INT16(regs[3 - (layer * 2)]) >> 6;
-
- xscroll += (tmflipx) ? -((344 + (layer * 2)) * 64) : ((kaneko_view2_xoff[chip] + (layer * 2)) * 64);
- yscroll += ((tmflipy) ? -260 : 11) + kaneko_view2_yoff[chip];
- yscroll &= 0x1ff;
-
- if (lsenable)
- {
- UINT16 *dest = pTransDraw;
-
- for (INT32 y = 0; y < nScreenHeight; y++, dest += nScreenWidth) // line by line
- {
- INT32 scrollyy = (yscroll + y) & 0x1ff;
- INT32 scrollxx = ((xscroll + BURN_ENDIAN_SWAP_INT16(sram[y])) >> 6) & 0x1ff;
-
- INT32 srcy = (scrollyy & 0x1ff) >> 4;
- INT32 srcx = (scrollxx & 0x1ff) >> 4;
-
- for (INT32 x = 0; x < nScreenWidth + 16; x+=16)
- {
- INT32 offs = ((srcy << 5) | ((srcx + (x >> 4)) & 0x1f));
-
- INT32 attr = BURN_ENDIAN_SWAP_INT16(vram[offs * 2 + 0]);
- INT32 code = BURN_ENDIAN_SWAP_INT16(vram[offs * 2 + 1]) & 0x1fff;
- INT32 color = ((attr & 0x00fc) << 2) + kaneko_color_offset[chip];
- INT32 flipx = (attr & 0x0002) ? 0x0f : 0;
- INT32 flipy = (attr & 0x0001) ? 0xf0 : 0;
- INT32 group = (attr & 0x0700) >> 8;
-
- if (kaneko_view2_gfx_trans[chip]) {
- if (kaneko_view2_gfx_trans[chip][code]) continue;
- }
-
- if (group != priority) continue;
-
- UINT8 *gfxsrc = kaneko_view2_gfx[chip] + (code << 8) + (((scrollyy & 0x0f) << 4) ^ flipy);
-
- for (INT32 dx = 0; dx < 16; dx++)
- {
- INT32 dst = (x + dx) - (scrollxx & 0x0f);
- if (dst < 0 || dst >= nScreenWidth) continue;
-
- if (gfxsrc[dx^flipx]) {
- dest[dst] = color + gfxsrc[dx^flipx];
- }
- }
- }
- }
- }
- else
- {
- INT32 scrollx = (xscroll >> 6) & 0x1ff;
-
- for (INT32 offs = 0; offs < 32 * 32; offs++)
- {
- INT32 sx = (offs & 0x1f) * 16;
- INT32 sy = (offs / 0x20) * 16;
-
- sy -= yscroll;
- if (sy < -15) sy += 512;
- sx -= scrollx;
- if (sx < -15) sx += 512;
-
- if (sx >= nScreenWidth || sy >= nScreenHeight) continue;
-
- INT32 attr = BURN_ENDIAN_SWAP_INT16(vram[offs * 2 + 0]);
- INT32 code = BURN_ENDIAN_SWAP_INT16(vram[offs * 2 + 1]) & 0x1fff;
- INT32 color = ((attr & 0x00fc) >> 2) + (0x400 >> 4);
- INT32 flipx = (attr & 0x0002);
- INT32 flipy = (attr & 0x0001);
- INT32 group = (attr & 0x0700) >> 8;
-
- if (kaneko_view2_gfx_trans[chip]) {
- if (kaneko_view2_gfx_trans[chip][code]) continue;
- }
-
- if (tmflipy) {
- flipy ^= 1;
- sy = 224 - sy; // fix later
- }
-
- if (tmflipx) {
- flipx ^= 2;
- sx = 304 - sx; // fix later!
- }
-
- if (group != priority) continue;
-
- if (sx >= 0 && sy >=0 && sx <= (nScreenWidth - 16) && sy <= (nScreenHeight-16)) // non-clipped
- {
- if (flipy) {
- if (flipx) {
- Render16x16Tile_Mask_FlipXY(pTransDraw, code, sx, sy, color, 4, 0, 0, kaneko_view2_gfx[chip]);
- } else {
- Render16x16Tile_Mask_FlipY(pTransDraw, code, sx, sy, color, 4, 0, 0, kaneko_view2_gfx[chip]);
- }
- } else {
- if (flipx) {
- Render16x16Tile_Mask_FlipX(pTransDraw, code, sx, sy, color, 4, 0, 0, kaneko_view2_gfx[chip]);
- } else {
- Render16x16Tile_Mask(pTransDraw, code, sx, sy, color, 4, 0, 0, kaneko_view2_gfx[chip]);
- }
- }
- }
- else // clipped
- {
- if (flipy) {
- if (flipx) {
- Render16x16Tile_Mask_FlipXY_Clip(pTransDraw, code, sx, sy, color, 4, 0, 0, kaneko_view2_gfx[chip]);
- } else {
- Render16x16Tile_Mask_FlipY_Clip(pTransDraw, code, sx, sy, color, 4, 0, 0, kaneko_view2_gfx[chip]);
- }
- } else {
- if (flipx) {
- Render16x16Tile_Mask_FlipX_Clip(pTransDraw, code, sx, sy, color, 4, 0, 0, kaneko_view2_gfx[chip]);
- } else {
- Render16x16Tile_Mask_Clip(pTransDraw, code, sx, sy, color, 4, 0, 0, kaneko_view2_gfx[chip]);
- }
- }
- }
- }
- }
-}
-
diff --git a/jan/src/burn/devices/kaneko_tmap.h b/jan/src/burn/devices/kaneko_tmap.h
deleted file mode 100644
index 3facae7ca..000000000
--- a/jan/src/burn/devices/kaneko_tmap.h
+++ /dev/null
@@ -1,5 +0,0 @@
-#define MAX_VIEW2_CHIPS 2
-
-void kaneko_view2_init(INT32 chip, UINT8 *video_ram, UINT8 *reg_ram, UINT8 *gfx_rom, INT32 color_offset, UINT8 *gfx_trans, INT32 global_x, INT32 global_y);
-void kaneko_view2_exit();
-void kaneko_view2_draw_layer(INT32 chip, INT32 layer, INT32 priority);
diff --git a/jan/src/burn/devices/mb87078.cpp b/jan/src/burn/devices/mb87078.cpp
deleted file mode 100644
index e5604047d..000000000
--- a/jan/src/burn/devices/mb87078.cpp
+++ /dev/null
@@ -1,168 +0,0 @@
-// Based on MAME sources by Fabio Priuli,Philip Bennett
-
-#include "burnint.h"
-#include "mb87078.h"
-
-static INT32 m_gain[4]; /* gain index 0-63,64,65 */
-static INT32 m_channel_latch; /* current channel */
-static UINT8 m_latch[2][4]; /* 6bit+3bit 4 data latches */
-static UINT8 m_reset_comp;
-static void (*m_gain_changed_cb)(INT32, INT32) = NULL;
-
-static void reset_comp_w( int level );
-
-static const float mb87078_gain_decibel[66] = {
- 0.0, -0.5, -1.0, -1.5, -2.0, -2.5, -3.0, -3.5,
- -4.0, -4.5, -5.0, -5.5, -6.0, -6.5, -7.0, -7.5,
- -8.0, -8.5, -9.0, -9.5,-10.0,-10.5,-11.0,-11.5,
- -12.0,-12.5,-13.0,-13.5,-14.0,-14.5,-15.0,-15.5,
- -16.0,-16.5,-17.0,-17.5,-18.0,-18.5,-19.0,-19.5,
- -20.0,-20.5,-21.0,-21.5,-22.0,-22.5,-23.0,-23.5,
- -24.0,-24.5,-25.0,-25.5,-26.0,-26.5,-27.0,-27.5,
- -28.0,-28.5,-29.0,-29.5,-30.0,-30.5,-31.0,-31.5,
- -32.0, -256.0
- };
-
-static const int mb87078_gain_percent[66] = {
- 100,94,89,84,79,74,70,66,
- 63,59,56,53,50,47,44,42,
- 39,37,35,33,31,29,28,26,
- 25,23,22,21,19,18,17,16,
- 15,14,14,13,12,11,11,10,
- 10, 9, 8, 8, 7, 7, 7, 6,
- 6, 5, 5, 5, 5, 4, 4, 4,
- 3, 3, 3, 3, 3, 2, 2, 2,
- 2, 0
-};
-
-void mb87078_init(void (*callback)(INT32, INT32))
-{
- m_gain_changed_cb = callback;
- mb87078_reset();
-}
-
-void mb87078_exit()
-{
- // nothing to do here
-}
-
-void mb87078_scan()
-{
- SCAN_VAR(m_channel_latch);
- SCAN_VAR(m_reset_comp);
- SCAN_VAR(m_gain);
- SCAN_VAR(m_latch);
-}
-
-void mb87078_reset()
-{
- m_channel_latch = 0;
- m_reset_comp = 0;
- m_gain[0] = m_gain[1] = m_gain[2] = m_gain[3] = 0;
- memset(m_latch, 0, sizeof(m_latch));
-
- /* reset chip */
- reset_comp_w(0);
- reset_comp_w(1);
-}
-
-/*****************************************************************************
- IMPLEMENTATION
-*****************************************************************************/
-
-#define GAIN_MAX_INDEX 64
-#define GAIN_INFINITY_INDEX 65
-
-
-static INT32 calc_gain_index( INT32 data0, INT32 data1 )
-{
-//data 0: GD0-GD5
-//data 1: 1 2 4 8 16
-// c1 c2 EN C0 C32
-
- if (!(data1 & 0x04))
- {
- return GAIN_INFINITY_INDEX;
- }
- else
- {
- if (data1 & 0x10)
- {
- return GAIN_MAX_INDEX;
- }
- else
- {
- if (data1 & 0x08)
- {
- return 0;
- }
- else
- {
- return (data0 ^ 0x3f);
- }
- }
- }
-}
-
-
-static void gain_recalc()
-{
- for (INT32 i = 0; i < 4; i++)
- {
- INT32 old_index = m_gain[i];
- m_gain[i] = calc_gain_index(m_latch[0][i], m_latch[1][i]);
- if (old_index != m_gain[i])
- m_gain_changed_cb(i, mb87078_gain_percent[m_gain[i]]);
- }
-}
-
-
-void mb87078_write(INT32 dsel, INT32 data)
-{
- if (m_reset_comp == 0)
- return;
-
- if (dsel == 0) /* gd0 - gd5 */
- {
- m_latch[0][m_channel_latch] = data & 0x3f;
- }
- else /* dcs1, dsc2, en, c0, c32, X */
- {
- m_channel_latch = data & 3;
- m_latch[1][m_channel_latch] = data & 0x1f; //always zero bit 5
- }
- gain_recalc();
-}
-
-
-float mb87078_gain_decibel_r( INT32 channel )
-{
- return mb87078_gain_decibel[m_gain[channel]];
-}
-
-
-INT32 mb87078_gain_percent_r( INT32 channel )
-{
- return mb87078_gain_percent[m_gain[channel]];
-}
-
-static void reset_comp_w( INT32 level )
-{
- m_reset_comp = level;
-
- /*this seems to be true, according to the datasheets*/
- if (level == 0)
- {
- m_latch[0][0] = 0x3f;
- m_latch[0][1] = 0x3f;
- m_latch[0][2] = 0x3f;
- m_latch[0][3] = 0x3f;
-
- m_latch[1][0] = 0x0 | 0x4;
- m_latch[1][1] = 0x1 | 0x4;
- m_latch[1][2] = 0x2 | 0x4;
- m_latch[1][3] = 0x3 | 0x4;
- }
-
- gain_recalc();
-}
diff --git a/jan/src/burn/devices/mb87078.h b/jan/src/burn/devices/mb87078.h
deleted file mode 100644
index 8639479c4..000000000
--- a/jan/src/burn/devices/mb87078.h
+++ /dev/null
@@ -1,8 +0,0 @@
-void mb87078_init(void (*callback)(INT32, INT32));
-void mb87078_exit();
-void mb87078_scan();
-void mb87078_reset();
-void mb87078_write(INT32 dsel, INT32 data);
-float mb87078_gain_decibel_r(INT32 channel);
-INT32 mb87078_gain_percent_r(INT32 channel);
-
diff --git a/jan/src/burn/devices/mermaid.cpp b/jan/src/burn/devices/mermaid.cpp
deleted file mode 100644
index 5e13e24ec..000000000
--- a/jan/src/burn/devices/mermaid.cpp
+++ /dev/null
@@ -1,167 +0,0 @@
-// Based on Mermaid / Beast MCU code by Angelo Salese, Tomasz Slanina, David Haywood
-
-#include "burnint.h"
-#include "z80_intf.h"
-#include "mcs51.h"
-
-static UINT8 *mermaid_inputs;
-static UINT8 mermaid_p[4] = { 0, 0, 0, 0 };
-static UINT8 data_to_mermaid;
-static UINT8 data_to_z80;
-static INT32 z80_to_mermaid_full;
-static INT32 mermaid_to_z80_full;
-static INT32 mermaid_int0;
-static INT32 mermaid_initted = 0;
-INT32 mermaid_sub_z80_reset;
-
-void mermaidWrite(UINT8 data)
-{
- data_to_mermaid = data;
- z80_to_mermaid_full = 1;
- mermaid_int0 = 0;
- mcs51_set_irq_line(MCS51_INT0_LINE, CPU_IRQSTATUS_ACK);
-}
-
-UINT8 mermaidRead()
-{
- mermaid_to_z80_full = 0;
- return data_to_z80;
-}
-
-UINT8 mermaidStatus()
-{
- return (!mermaid_to_z80_full << 2) | (z80_to_mermaid_full << 3);
-}
-
-static void mermaid_write_port(INT32 port, UINT8 data)
-{
- switch (port)
- {
- case MCS51_PORT_P0:
- {
- if ((mermaid_p[0] & 2) == 0 && (data & 2)) {
- mermaid_to_z80_full = 1;
- data_to_z80 = mermaid_p[1];
- }
- if (data & 1) z80_to_mermaid_full = 0;
-
- mermaid_p[0] = data;
- }
- return;
-
- case MCS51_PORT_P1:
- {
- if (data == 0xff) {
- mermaid_int0 = 1;
- mcs51_set_irq_line(MCS51_INT0_LINE, CPU_IRQSTATUS_NONE);
- }
-
- mermaid_p[1] = data;
- }
- return;
-
- case MCS51_PORT_P2:
- return;
-
- case MCS51_PORT_P3:
- {
- if ((data & 2) == 0) {
- ZetOpen(1);
- ZetReset();
- ZetClose();
- mermaid_sub_z80_reset = 1;
- } else {
- mermaid_sub_z80_reset = 0;
- }
- }
- return;
- }
-}
-
-static UINT8 mermaid_read_port(INT32 port)
-{
-#define BIT(x,y) (((x)>>(y))&1)
-
- switch (port)
- {
- case MCS51_PORT_P0:
- return 0;
-
- case MCS51_PORT_P1:
- if (mermaid_p[0] & 1) return 0;
- return data_to_mermaid;
-
- case MCS51_PORT_P2:
- return mermaid_inputs[(mermaid_p[0] >> 2) & 3];
-
- case MCS51_PORT_P3:
- {
- UINT8 dsw = 0;
- UINT8 dsw1 = mermaid_inputs[4];
- UINT8 dsw2 = mermaid_inputs[5];
-
- switch ((mermaid_p[0] >> 5) & 3)
- {
- case 0: dsw = (BIT(dsw2, 4) << 3) | (BIT(dsw2, 0) << 2) | (BIT(dsw1, 4) << 1) | BIT(dsw1, 0); break;
- case 1: dsw = (BIT(dsw2, 5) << 3) | (BIT(dsw2, 1) << 2) | (BIT(dsw1, 5) << 1) | BIT(dsw1, 1); break;
- case 2: dsw = (BIT(dsw2, 6) << 3) | (BIT(dsw2, 2) << 2) | (BIT(dsw1, 6) << 1) | BIT(dsw1, 2); break;
- case 3: dsw = (BIT(dsw2, 7) << 3) | (BIT(dsw2, 3) << 2) | (BIT(dsw1, 7) << 1) | BIT(dsw1, 3); break;
- }
-
- return (dsw << 4) | (mermaid_int0 << 2) | (mermaid_to_z80_full << 3);
- }
- }
-
- return 0;
-#undef BIT
-}
-
-void mermaidReset()
-{
- mcs51_reset();
-
- memset (mermaid_p, 0, 4);
- mermaid_sub_z80_reset = 0;
- data_to_mermaid = 0;
- data_to_z80 = 0;
- z80_to_mermaid_full = 0;
- mermaid_to_z80_full = 0;
- mermaid_int0 = 0;
-}
-
-void mermaidInit(UINT8 *rom, UINT8 *inputs)
-{
- mcs51_program_data=rom;
- mermaid_inputs = inputs;
- mcs51_init ();
- mcs51_set_write_handler(mermaid_write_port);
- mcs51_set_read_handler(mermaid_read_port);
- mermaid_initted = 1;
-}
-
-void mermaidExit()
-{
- if (!mermaid_initted) return;
- mermaid_initted = 0;
- mcs51_exit();
-}
-
-INT32 mermaidRun(INT32 cycles)
-{
- mcs51Run(cycles / 12);
-
- return cycles;
-}
-
-INT32 mermaidScan(INT32 nAction)
-{
- SCAN_VAR(mermaid_sub_z80_reset);
- SCAN_VAR(data_to_mermaid);
- SCAN_VAR(data_to_z80);
- SCAN_VAR(z80_to_mermaid_full);
- SCAN_VAR(mermaid_to_z80_full);
- SCAN_VAR(mermaid_int0);
- mcs51_scan(nAction);
-
- return 0;
-}
diff --git a/jan/src/burn/devices/mermaid.h b/jan/src/burn/devices/mermaid.h
deleted file mode 100644
index 9f24b5cf0..000000000
--- a/jan/src/burn/devices/mermaid.h
+++ /dev/null
@@ -1,13 +0,0 @@
-#include "mcs51.h"
-
-void mermaidWrite(UINT8 data);
-UINT8 mermaidRead();
-UINT8 mermaidStatus();
-
-extern INT32 mermaid_sub_z80_reset;
-void mermaidReset();
-void mermaidInit(UINT8 *rom, UINT8 *inputs);
-void mermaidExit();
-INT32 mermaidRun(INT32 cycles);
-INT32 mermaidScan(INT32 nAction);
-
diff --git a/jan/src/burn/devices/namco_c45.cpp b/jan/src/burn/devices/namco_c45.cpp
deleted file mode 100644
index 87f63cf90..000000000
--- a/jan/src/burn/devices/namco_c45.cpp
+++ /dev/null
@@ -1,224 +0,0 @@
-#include "tiles_generic.h"
-#include "m68000_intf.h"
-
-UINT8 *c45RoadRAM = NULL; // external
-
-static UINT8 *c45RoadTiles = NULL;
-static UINT16 *c45RoadBitmap = NULL;
-static UINT8 *c45RoadClut = NULL;
-static UINT8 c45_temp_clut[0x100];
-
-void c45RoadReset()
-{
- if (c45RoadRAM != NULL) memset (c45RoadRAM, 0, 0x20000);
- if (c45RoadTiles != NULL) memset (c45RoadTiles, 0, 0x40000);
-}
-
-void c45RoadInit(UINT32 , UINT8 *clut)
-{
- c45RoadRAM = (UINT8*)BurnMalloc(0x20000);
- c45RoadTiles = (UINT8*)BurnMalloc(0x40000);
-
- c45RoadClut = clut;
- c45RoadBitmap = (UINT16*)BurnMalloc(0x400 * sizeof(UINT16));
-
- if (c45RoadClut == NULL) {
- c45RoadClut = c45_temp_clut;
- for (INT32 i = 0; i < 0x100; i++) c45RoadClut[i] = i;
- }
-}
-
-void c45RoadExit()
-{
- if (c45RoadRAM != NULL) BurnFree(c45RoadRAM);
- if (c45RoadTiles != NULL) BurnFree(c45RoadTiles);
- if (c45RoadBitmap != NULL) BurnFree(c45RoadBitmap);
-
- c45RoadRAM = NULL;
- c45RoadTiles = NULL;
- c45RoadBitmap = NULL;
-
- c45RoadClut = NULL;
-}
-
-static inline void update_tile_pixel(INT32 offset)
-{
- UINT16 s = *((UINT16*)(c45RoadRAM + (offset * 2)));
-
- UINT8 *pxl = c45RoadTiles + ((offset * 8) & 0x3fff8);
-
- for (INT32 x = 7; x >= 0; x--) {
- pxl[7-x] = (((s >> (x + 8)) & 1) << 1) | ((s >> x) & 1);
- }
-}
-
-static void __fastcall c45_road_write_word(UINT32 address, UINT16 data)
-{
- UINT16 *ram = (UINT16*)c45RoadRAM;
-
- INT32 offset = (address & 0x1ffff) / 2;
-
- if (offset < (0x1fa00 / 2)) // tiles
- {
- if (data != ram[offset]) {
- ram[offset] = data;
- update_tile_pixel(offset);
- }
- }
- else // scroll regs
- {
- ram[offset] = data;
- }
-}
-
-static void __fastcall c45_road_write_byte(UINT32 address, UINT8 data)
-{
- UINT16 *ram = (UINT16*)c45RoadRAM;
-
- INT32 offset = (address & 0x1ffff) ^ 1;
-
- if (offset < 0x1fa00) // tiles
- {
- if (data != ram[offset]) {
- c45RoadRAM[offset] = data;
- update_tile_pixel(offset/2);
- }
- }
- else // scroll regs
- {
- c45RoadRAM[offset] = data;
- }
-}
-
-void c45RoadMap68k(UINT32 address)
-{
- SekMapHandler(7, address, address | 0x1ffff, MAP_WRITE);
- SekSetWriteWordHandler(7, c45_road_write_word);
- SekSetWriteByteHandler(7, c45_road_write_byte);
-
- SekMapMemory(c45RoadRAM, address, address | 0x0ffff, MAP_WRITE);
-}
-
-static void predraw_c45_road_tiles_line(UINT32 line, UINT32 startx, UINT32 pixels_wide, UINT32 incx)
-{
- UINT16 *ram = (UINT16*)c45RoadRAM;
-
- INT32 startx_shift = startx >> 20;
- INT32 endx_shift = (((pixels_wide * incx) >> 20) + 1) + startx_shift;
-
- INT32 offs = ((line / 16) * 64) + startx_shift;
-
- INT32 code_offset = (line & 0xf) * 16;
-
- for (INT32 sx = startx_shift; sx < endx_shift; sx++, offs++)
- {
- INT32 color = ((ram[offs] >> 10) << 2);
- UINT8 *gfx = c45RoadTiles + ((ram[offs] & 0x3ff) * 256 + code_offset);
- UINT8 *clut = c45RoadClut + color;
-
- for (INT32 x = 0; x < 16; x++)
- {
- c45RoadBitmap[((sx * 16) + x) & 0x3ff] = clut[gfx[x]] + 0xf00;
- }
- }
-}
-
-void c45RoadDraw()
-{
- INT32 min_x, min_y, max_x, max_y;
-
- GenericTilesGetClip(&min_x, &max_x, &min_y, &max_y);
-
- UINT16 *m_lineram = (UINT16*)(c45RoadRAM + 0x1fa00);
-
- UINT32 yscroll = m_lineram[0x3fe/2];
-
- static INT32 ROAD_COLS = 64;
- static INT32 ROAD_ROWS = 512;
- static INT32 ROAD_TILE_SIZE = 16;
- static INT32 ROAD_TILEMAP_WIDTH = ROAD_TILE_SIZE * ROAD_COLS;
- static INT32 ROAD_TILEMAP_HEIGHT = ROAD_TILE_SIZE * ROAD_ROWS;
-
- // loop over scanlines
- for (INT32 y = min_y; y < max_y; y++)
- {
- // skip if we are not the right priority
- INT32 screenx = m_lineram[y + 15];
-
- INT32 pri = (screenx & 0xf000) >> 12;
-
- // skip if we don't have a valid zoom factor
- UINT32 zoomx = m_lineram[0x400/2 + y + 15] & 0x3ff;
- if (zoomx == 0)
- continue;
-
- // skip if we don't have a valid source increment
- UINT32 sourcey = m_lineram[0x200/2 + y + 15] + yscroll;
- const UINT16 *source_gfx = c45RoadBitmap;
- UINT32 dsourcex = (ROAD_TILEMAP_WIDTH << 16) / zoomx;
- if (dsourcex == 0)
- continue;
-
- // mask off priority bits and sign-extend
- screenx &= 0x0fff;
- if (screenx & 0x0800)
- screenx |= ~0x7ff;
-
- // adjust the horizontal placement
- screenx -= 64; // needs adjustment to left
-
- INT32 numpixels = (44 * ROAD_TILE_SIZE << 16) / dsourcex;
- UINT32 sourcex = 0;
-
- // crop left
- INT32 clip_pixels = min_x - screenx;
- if (clip_pixels > 0)
- {
- numpixels -= clip_pixels;
- sourcex += dsourcex*clip_pixels;
- screenx = min_x;
- }
-
- // crop right
- clip_pixels = (screenx + numpixels) - (max_x+1);
- if (clip_pixels > 0)
- numpixels -= clip_pixels;
-
- UINT16 *dest = pTransDraw + y * nScreenWidth;
- UINT8 *pdest = pPrioDraw + y * nScreenWidth;
-
- predraw_c45_road_tiles_line(sourcey & (ROAD_TILEMAP_HEIGHT - 1), sourcex, numpixels, dsourcex);
-
- while (numpixels-- > 0)
- {
- if (pdest[screenx] <= pri) {
- dest[screenx] = source_gfx[sourcex >> 16];
- pdest[screenx] = pri;
- }
- screenx++;
- sourcex += dsourcex;
- }
- }
-}
-
-// call from save state
-void c45RoadState(INT32 nAction)
-{
- if (c45RoadRAM == NULL) return;
-
- struct BurnArea ba;
- memset(&ba, 0, sizeof(ba));
- ba.Data = c45RoadRAM;
- ba.nLen = 0x20000;
- ba.szName = "C45 Road RAM";
- BurnAcb(&ba);
-
- if (nAction & ACB_WRITE)
- {
- INT32 Planes[2] = { 0, 8 };
- INT32 XOffs[16] = { STEP8(0, 1), STEP8(16, 1) };
- INT32 YOffs[16] = { STEP16(0, 32) };
-
- GfxDecode(0x0400, 2, 16, 16, Planes, XOffs, YOffs, 0x200, c45RoadRAM + 0x10000, c45RoadTiles);
- }
-}
diff --git a/jan/src/burn/devices/namco_c45.h b/jan/src/burn/devices/namco_c45.h
deleted file mode 100644
index 5cf17e335..000000000
--- a/jan/src/burn/devices/namco_c45.h
+++ /dev/null
@@ -1,9 +0,0 @@
-extern UINT8 *c45RoadRAM; // external
-
-void c45RoadReset();
-void c45RoadInit(UINT32 trans_color, UINT8 *clut);
-void c45RoadExit();
-void c45RoadDraw();
-void c45RoadState(INT32 nAction);
-
-void c45RoadMap68k(UINT32 address);
diff --git a/jan/src/burn/devices/namcoio.cpp b/jan/src/burn/devices/namcoio.cpp
deleted file mode 100644
index 49dea5a17..000000000
--- a/jan/src/burn/devices/namcoio.cpp
+++ /dev/null
@@ -1,479 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:Nicola Salmoria
-/***************************************************************************
-
-The following Namco custom chips are all instances of the same 4-bit MCU,
-the Fujitsu MB8843 (42-pin DIP package) and MB8842/MB8844 (28-pin DIP),
-differently programmed.
-
-chip MCU pins function
----- ------ ---- --------
-56XX 42 I/O (coin management built-in)
-58XX 42 I/O (coin management built-in)
-62XX 28 I/O and explosion (noise) generator
-
-16XX interface:
----------------
-Super Pac Man 56XX 56XX ---- ----
-Pac & Pal 56XX 59XX ---- ----
-Mappy 58XX 58XX ---- ----
-Phozon 58XX 56XX ---- ----
-The Tower of Druaga 58XX 56XX ---- ----
-Grobda 58XX 56XX ---- ----
-Dig Dug II 58XX 56XX ---- ----
-Motos 56XX 56XX ---- ----
-Gaplus 56XX 58XX 62XX ----
-Gaplus (alt.) 58XX 56XX 62XX ----
-Libble Rabble 58XX 56XX 56XX ----
-Toy Pop 58XX 56XX 56XX ----
-
-
-Pinouts:
-
- MB8843 MB8842/MB8844
- +------+ +------+
- EXTAL|1 42|Vcc EXTAL|1 28|Vcc
- XTAL|2 41|K3 XTAL|2 27|K3
- /RESET|3 40|K2 /RESET|3 26|K2
- /IRQ|4 39|K1 O0|4 25|K1
- SO|5 38|K0 O1|5 24|K0
- SI|6 37|R15 O2|6 23|R10 /IRQ
-/SC /TO|7 36|R14 O3|7 22|R9 /TC
- /TC|8 35|R13 O4|8 21|R8
- P0|9 34|R12 O5|9 20|R7
- P1|10 33|R11 O6|10 19|R6
- P2|11 32|R10 O7|11 18|R5
- P3|12 31|R9 R0|12 17|R4
- O0|13 30|R8 R1|13 16|R3
- O1|14 29|R7 GND|14 15|R2
- O2|15 28|R6 +------+
- O3|16 27|R5
- O4|17 26|R4
- O5|18 25|R3
- O6|19 24|R2
- O7|20 23|R1
- GND|21 22|R0
- +------+
-
-
- O O R R R K
-62XX O O IO O I
-
- P O O R R R R K
-56XX O O O I I I IO I
-58XX O O O I I I IO I
-59XX O O O I I I IO I
-
-
-Namco custom I/O chips 56XX, 58XX, 59XX
-
-These chips work together with a 16XX, that interfaces them with the buffer
-RAM. Each chip uses 16 nibbles of memory; the 16XX supports up to 4 chips,
-but most games use only 2.
-
-The 56XX, 58XX and 59XX are pin-to-pin compatible, but not functionally equivalent:
-they provide the same functions, but the command codes and memory addresses
-are different, so they cannot be exchanged.
-
-The devices have 42 pins. There are 16 input lines and 8 output lines to be
-used for I/O.
-
-
-pin description
---- -----------
-1 clock (Mappy, Super Pac-Man)
-2 clock (Gaplus; equivalent to the above?)
-3 reset
-4 irq
-5-6 (to/from 16XX) (this is probably a normal I/O port used to synchronize with the 16XX)
-7-8 ?
-9-12 address to r/w from RAM; 12 also goes to the 16XX and acts as r/w line, so
- the chip can only read from addresses 0-7 and only write to addresses 8-F
- (this is probably a normal I/O port used for that purpose)
-13-16 out port A
-17-20 out port B
-21 GND
-22-25 in port B
-26-29 in port C
-30-33 in port D
-34-37 (to 16XX) probably data to r/w from RAM
- (this is probably a normal I/O port used for that purpose)
-38-41 in port A
-42 Vcc
-
-TODO:
-- It's likely that the 56XX and 58XX chips, when in "coin mode", also internally
- handle outputs for start lamps, coin counters and coin lockout, like the 51XX.
- Such lines are NOT present in the Mappy and Super Pacman schematics, so they
- were probably not used for those games, but they might have been used in
- others (most likely Gaplus).
-
-***************************************************************************/
-
-#include "burnint.h"
-#include "namcoio.h"
-#include "driver.h"
-
-struct ChipData
-{
- UINT8 (*in_0_cb)(UINT8);
- UINT8 (*in_1_cb)(UINT8);
- UINT8 (*in_2_cb)(UINT8);
- UINT8 (*in_3_cb)(UINT8);
- void (*out_0_cb)(UINT8, UINT8);
- void (*out_1_cb)(UINT8, UINT8);
- void (*run_func)(INT32);
- INT32 type;
-
- UINT8 ram[16];
- INT32 reset;
- INT32 lastcoins;
- INT32 lastbuttons;
- INT32 credits;
- INT32 coins[2];
- INT32 coins_per_cred[2];
- INT32 creds_per_coin[2];
- INT32 in_count;
-};
-
-static struct ChipData Chips[5];
-
-static UINT8 fakeIn(UINT8) { return 0; }
-static void fakeOut(UINT8,UINT8) { }
-
-void namcoio_init(INT32 chip, INT32 type, UINT8 (*in0)(UINT8), UINT8 (*in1)(UINT8), UINT8 (*in2)(UINT8), UINT8 (*in3)(UINT8), void (*out0)(UINT8, UINT8), void (*out1)(UINT8, UINT8))
-{
- ChipData *ptr = &Chips[chip];
-
- ptr->type = type;
-
- ptr->in_0_cb = (in0 == NULL) ? fakeIn : in0;
- ptr->in_1_cb = (in1 == NULL) ? fakeIn : in1;
- ptr->in_2_cb = (in2 == NULL) ? fakeIn : in2;
- ptr->in_3_cb = (in3 == NULL) ? fakeIn : in3;
- ptr->out_0_cb = (out0 == NULL) ? fakeOut : out0;
- ptr->out_1_cb = (out1 == NULL) ? fakeOut : out1;
-
- switch (type)
- {
- case NAMCO56xx: ptr->run_func = namco56xx_customio_run; break;
- case NAMCO58xx: ptr->run_func = namco58xx_customio_run; break;
- case NAMCO59xx: ptr->run_func = namco59xx_customio_run; break;
- }
-}
-
-//-------------------------------------------------
-// device_reset - device-specific reset
-//-------------------------------------------------
-
-void namcoio_set_reset_line(INT32 chip, INT32 state)
-{
- ChipData *ptr = &Chips[chip];
-
- ptr->reset = (state == ASSERT_LINE) ? 1 : 0;
- if (state != CLEAR_LINE)
- {
- /* reset internal registers */
- ptr->credits = 0;
- ptr->coins[0] = 0;
- ptr->coins_per_cred[0] = 1;
- ptr->creds_per_coin[0] = 1;
- ptr->coins[1] = 0;
- ptr->coins_per_cred[1] = 1;
- ptr->creds_per_coin[1] = 1;
- ptr->in_count = 0;
- }
-}
-
-void namcoio_reset(INT32 chip)
-{
- namcoio_set_reset_line(chip, ASSERT_LINE);
- namcoio_set_reset_line(chip, CLEAR_LINE);
-}
-
-/*****************************************************************************
- DEVICE HANDLERS
-*****************************************************************************/
-
-#define IORAM_READ(offset) (ptr->ram[offset] & 0x0f)
-#define IORAM_WRITE(offset,data) {ptr->ram[offset] = (data) & 0x0f;}
-
-static void handle_coins( INT32 chip, int swap )
-{
- int val, toggled;
- int credit_add = 0;
- int credit_sub = 0;
- int button;
-
- ChipData *ptr = &Chips[chip];
-
- val = ~ptr->in_0_cb(0 & 0x0f); // pins 38-41
- toggled = val ^ ptr->lastcoins;
- ptr->lastcoins = val;
-
- /* check coin insertion */
- if (val & toggled & 0x01)
- {
- ptr->coins[0]++;
- if (ptr->coins[0] >= (ptr->coins_per_cred[0] & 7))
- {
- credit_add = ptr->creds_per_coin[0] - (ptr->coins_per_cred[0] >> 3);
- ptr->coins[0] -= ptr->coins_per_cred[0] & 7;
- }
- else if (ptr->coins_per_cred[0] & 8)
- credit_add = 1;
- }
- if (val & toggled & 0x02)
- {
- ptr->coins[1]++;
- if (ptr->coins[1] >= (ptr->coins_per_cred[1] & 7))
- {
- credit_add = ptr->creds_per_coin[1] - (ptr->coins_per_cred[1] >> 3);
- ptr->coins[1] -= ptr->coins_per_cred[1] & 7;
- }
- else if (ptr->coins_per_cred[1] & 8)
- credit_add = 1;
- }
- if (val & toggled & 0x08)
- {
- credit_add = 1;
- }
-
- val = ~ptr->in_3_cb(0 & 0x0f); // pins 30-33
- toggled = val ^ ptr->lastbuttons;
- ptr->lastbuttons = val;
-
- /* check start buttons, only if the game allows */
- if (IORAM_READ(9) == 0)
- // the other argument is IORAM_READ(10) = 1, meaning unknown
- {
- if (val & toggled & 0x04)
- {
- if (ptr->credits >= 1) credit_sub = 1;
- }
- else if (val & toggled & 0x08)
- {
- if (ptr->credits >= 2) credit_sub = 2;
- }
- }
-
- ptr->credits += credit_add - credit_sub;
-
- IORAM_WRITE(0 ^ swap, ptr->credits / 10); // BCD credits
- IORAM_WRITE(1 ^ swap, ptr->credits % 10); // BCD credits
- IORAM_WRITE(2 ^ swap, credit_add); // credit increment (coin inputs)
- IORAM_WRITE(3 ^ swap, credit_sub); // credit decrement (start buttons)
- IORAM_WRITE(4, ~ptr->in_1_cb(0 & 0x0f)); // pins 22-25
- button = ((val & 0x05) << 1) | (val & toggled & 0x05);
- IORAM_WRITE(5, button); // pins 30 & 32 normal and impulse
- IORAM_WRITE(6, ~ptr->in_2_cb(0 & 0x0f)); // pins 26-29
- button = (val & 0x0a) | ((val & toggled & 0x0a) >> 1);
- IORAM_WRITE(7, button); // pins 31 & 33 normal and impulse
-}
-
-
-void namco56xx_customio_run(INT32 chip)
-{
- ChipData *ptr = &Chips[chip];
-
- switch (IORAM_READ(8))
- {
- case 1: // read switch inputs
- IORAM_WRITE(0, ~ptr->in_0_cb(0 & 0x0f)); // pins 38-41
- IORAM_WRITE(1, ~ptr->in_1_cb(0 & 0x0f)); // pins 22-25
- IORAM_WRITE(2, ~ptr->in_2_cb(0 & 0x0f)); // pins 26-29
- IORAM_WRITE(3, ~ptr->in_3_cb(0 & 0x0f)); // pins 30-33
- ptr->out_0_cb((UINT8)0, IORAM_READ(9)); // output to pins 13-16 (motos, pacnpal, gaplus)
- ptr->out_1_cb((UINT8)0, IORAM_READ(10)); // output to pins 17-20 (gaplus)
- break;
-
- case 2: // initialize coinage settings
- ptr->coins_per_cred[0] = IORAM_READ(9);
- ptr->creds_per_coin[0] = IORAM_READ(10);
- ptr->coins_per_cred[1] = IORAM_READ(11);
- ptr->creds_per_coin[1] = IORAM_READ(12);
- break;
-
- case 4:
- handle_coins(chip,0);
- break;
-
- case 7: // bootup check (liblrabl only)
- {
- IORAM_WRITE(2, 0xe);
- IORAM_WRITE(7, 0x6);
- }
- break;
-
- case 8: // bootup check
- {
- int i, sum;
-
- sum = 0;
- for (i = 9; i < 16; i++)
- sum += IORAM_READ(i);
- IORAM_WRITE(0, sum >> 4);
- IORAM_WRITE(1, sum & 0xf);
- }
- break;
-
- case 9: // read dip switches and inputs
- ptr->out_0_cb((UINT8)0, 0 & 0x0f); // set pin 13 = 0
- IORAM_WRITE(0, ~ptr->in_0_cb(0 & 0x0f)); // pins 38-41, pin 13 = 0
- IORAM_WRITE(2, ~ptr->in_1_cb(0 & 0x0f)); // pins 22-25, pin 13 = 0
- IORAM_WRITE(4, ~ptr->in_2_cb(0 & 0x0f)); // pins 26-29, pin 13 = 0
- IORAM_WRITE(6, ~ptr->in_3_cb(0 & 0x0f)); // pins 30-33, pin 13 = 0
- ptr->out_0_cb((UINT8)0, 1 & 0x0f); // set pin 13 = 1
- IORAM_WRITE(1, ~ptr->in_0_cb(0 & 0x0f)); // pins 38-41, pin 13 = 1
- IORAM_WRITE(3, ~ptr->in_1_cb(0 & 0x0f)); // pins 22-25, pin 13 = 1
- IORAM_WRITE(5, ~ptr->in_2_cb(0 & 0x0f)); // pins 26-29, pin 13 = 1
- IORAM_WRITE(7, ~ptr->in_3_cb(0 & 0x0f)); // pins 30-33, pin 13 = 1
- break;
- }
-}
-
-void namco59xx_customio_run(INT32 chip)
-{
- ChipData *ptr = &Chips[chip];
-
- switch (IORAM_READ(8))
- {
- case 3: // pacnpal chip #1: read dip switches and inputs
- IORAM_WRITE(4, ~ptr->in_0_cb(0 & 0x0f)); // pins 38-41, pin 13 = 0 ?
- IORAM_WRITE(5, ~ptr->in_2_cb(0 & 0x0f)); // pins 26-29 ?
- IORAM_WRITE(6, ~ptr->in_1_cb(0 & 0x0f)); // pins 22-25 ?
- IORAM_WRITE(7, ~ptr->in_3_cb(0 & 0x0f)); // pins 30-33
- break;
- }
-}
-
-void namco58xx_customio_run(INT32 chip)
-{
- ChipData *ptr = &Chips[chip];
-
- switch (IORAM_READ(8))
- {
- case 1: // read switch inputs
- IORAM_WRITE(4, ~ptr->in_0_cb(0 & 0x0f)); // pins 38-41
- IORAM_WRITE(5, ~ptr->in_1_cb(0 & 0x0f)); // pins 22-25
- IORAM_WRITE(6, ~ptr->in_2_cb(0 & 0x0f)); // pins 26-29
- IORAM_WRITE(7, ~ptr->in_3_cb(0 & 0x0f)); // pins 30-33
- ptr->out_0_cb((UINT8)0, IORAM_READ(9)); // output to pins 13-16 (toypop)
- ptr->out_1_cb((UINT8)0, IORAM_READ(10)); // output to pins 17-20 (toypop)
- break;
-
- case 2: // initialize coinage settings
- ptr->coins_per_cred[0] = IORAM_READ(9);
- ptr->creds_per_coin[0] = IORAM_READ(10);
- ptr->coins_per_cred[1] = IORAM_READ(11);
- ptr->creds_per_coin[1] = IORAM_READ(12);
- break;
-
- case 3: // process coin and start inputs, read switch inputs
- handle_coins(chip,2);
- break;
-
- case 4: // read dip switches and inputs
- ptr->out_0_cb((UINT8)0, 0 & 0x0f); // set pin 13 = 0
- IORAM_WRITE(0, ~ptr->in_0_cb(0 & 0x0f)); // pins 38-41, pin 13 = 0
- IORAM_WRITE(2, ~ptr->in_1_cb(0 & 0x0f)); // pins 22-25, pin 13 = 0
- IORAM_WRITE(4, ~ptr->in_2_cb(0 & 0x0f)); // pins 26-29, pin 13 = 0
- IORAM_WRITE(6, ~ptr->in_3_cb(0 & 0x0f)); // pins 30-33, pin 13 = 0
- ptr->out_0_cb((UINT8)0, 1 & 0x0f); // set pin 13 = 1
- IORAM_WRITE(1, ~ptr->in_0_cb(0 & 0x0f)); // pins 38-41, pin 13 = 1
- IORAM_WRITE(3, ~ptr->in_1_cb(0 & 0x0f)); // pins 22-25, pin 13 = 1
- IORAM_WRITE(5, ~ptr->in_2_cb(0 & 0x0f)); // pins 26-29, pin 13 = 1
- IORAM_WRITE(7, ~ptr->in_3_cb(0 & 0x0f)); // pins 30-33, pin 13 = 1
- break;
-
- case 5: // bootup check
- {
- int i, n, rng, seed;
- #define NEXT(n) ((((n) & 1) ? (n) ^ 0x90 : (n)) >> 1)
-
- /* initialize the LFSR depending on the first two arguments */
- n = (IORAM_READ(9) * 16 + IORAM_READ(10)) & 0x7f;
- seed = 0x22;
- for (i = 0; i < n; i++)
- seed = NEXT(seed);
-
- /* calculate the answer */
- for (i = 1; i < 8; i++)
- {
- n = 0;
- rng = seed;
- if (rng & 1) { n ^= ~IORAM_READ(11); }
- rng = NEXT(rng);
- seed = rng; // save state for next loop
- if (rng & 1) { n ^= ~IORAM_READ(10); }
- rng = NEXT(rng);
- if (rng & 1) { n ^= ~IORAM_READ(9); }
- rng = NEXT(rng);
- if (rng & 1) { n ^= ~IORAM_READ(15); }
- rng = NEXT(rng);
- if (rng & 1) { n ^= ~IORAM_READ(14); }
- rng = NEXT(rng);
- if (rng & 1) { n ^= ~IORAM_READ(13); }
- rng = NEXT(rng);
- if (rng & 1) { n ^= ~IORAM_READ(12); }
-
- IORAM_WRITE(i, ~n);
- }
- IORAM_WRITE(0, 0x0);
- /* kludge for gaplus */
- if (IORAM_READ(9) == 0xf) IORAM_WRITE(0, 0xf);
- }
- break;
- }
-}
-
-void namcoio_run(INT32 chip)
-{
- ChipData *ptr = &Chips[chip];
-
- ptr->run_func(chip);
-}
-
-UINT8 namcoio_read(INT32 chip, UINT8 offset)
-{
- ChipData *ptr = &Chips[chip];
-
- // RAM is 4-bit wide; Pac & Pal requires the | 0xf0 otherwise Easter egg doesn't work
- offset &= 0x3f;
-
- return 0xf0 | ptr->ram[offset];
-}
-
-void namcoio_write(INT32 chip, UINT8 offset, UINT8 data)
-{
- ChipData *ptr = &Chips[chip];
-
- offset &= 0x3f;
- data &= 0x0f; // RAM is 4-bit wide
-
- ptr->ram[offset] = data;
-}
-
-UINT8 namcoio_read_reset_line(INT32 chip)
-{
- ChipData *ptr = &Chips[chip];
-
- return ptr->reset;
-}
-
-INT32 namcoio_scan(INT32 chip)
-{
- ChipData *ptr = &Chips[chip];
-
- SCAN_VAR(ptr->ram);
- SCAN_VAR(ptr->reset);
- SCAN_VAR(ptr->lastcoins);
- SCAN_VAR(ptr->lastbuttons);
- SCAN_VAR(ptr->coins);
- SCAN_VAR(ptr->credits);
- SCAN_VAR(ptr->coins_per_cred);
- SCAN_VAR(ptr->creds_per_coin);
- SCAN_VAR(ptr->in_count);
-
- return 0;
-}
diff --git a/jan/src/burn/devices/namcoio.h b/jan/src/burn/devices/namcoio.h
deleted file mode 100644
index 16f01caee..000000000
--- a/jan/src/burn/devices/namcoio.h
+++ /dev/null
@@ -1,19 +0,0 @@
-
-#define NAMCO56xx 0
-#define NAMCO58xx 1
-#define NAMCO59xx 2
-
-void namcoio_init(INT32 chip, INT32 type, UINT8 (*in0)(UINT8), UINT8 (*in1)(UINT8), UINT8 (*in2)(UINT8), UINT8 (*in3)(UINT8), void (*out0)(UINT8, UINT8), void (*out1)(UINT8, UINT8));
-void namcoio_reset(INT32 chip);
-INT32 namcoio_scan(INT32 chip);
-
-void namco56xx_customio_run(INT32 chip);
-void namco59xx_customio_run(INT32 chip);
-void namco58xx_customio_run(INT32 chip);
-
-void namcoio_run(INT32 chip);
-
-UINT8 namcoio_read(INT32 chip, UINT8 offset);
-void namcoio_write(INT32 chip, UINT8 offset, UINT8 data);
-UINT8 namcoio_read_reset_line(INT32 chip);
-void namcoio_set_reset_line(INT32 chip, INT32 state);
diff --git a/jan/src/burn/devices/nb1414m4.cpp b/jan/src/burn/devices/nb1414m4.cpp
deleted file mode 100644
index 883500b2f..000000000
--- a/jan/src/burn/devices/nb1414m4.cpp
+++ /dev/null
@@ -1,306 +0,0 @@
-// license:MAME
-// copyright-holders:Angelo Salese
-/*******************************************************************************************************************
-
-Nichibutsu 1414M4 device emulation
-
-Written by Angelo Salese, based on researches by Tomasz Slanina with Legion
-
-This is some fancy MCU / blitter that copies text strings in various Nihon Bussan games;
-
-TODO:
-- where is the condition that makes "insert coin" text to properly blink?
-- first byte meaning is completely unknown;
-- Ninja Emaki triggers unknown commands 0x8000 & 0xff20;
-- Ninja Emaki continue screen is corrupt;
-- How to NOT draw the params?
-- Device-ify this;
-
-Notes:
-- Just before any string in the "MCU" rom, there's a control byte, this meaning is as follows:
- 0?-- ---- ---- ---- interpret as data?
- 10-- ---- ---- ---- single string transfer
- 11-- ---- ---- ---- src -> dst copy, if destination != 0 fixed src, otherwise do a src -> dst
- --xx xxxx xxxx xxxx destination offset in the VRAM tilemap
-
-- I'm sure that this is a shared device, that shares everything. All of the known differences are due of not
- understood features of the chip (some bytes in the ROM etc.)
-
-********************************************************************************************************************/
-
-#include "tiles_generic.h" // for UINT* etc
-#include "nb1414m4.h"
-
-UINT8 *nb1414_blit_data = NULL;
-UINT32 nb1414_frame = 0;
-
-static void nichibutsu_1414m4_dma(UINT16 src,UINT16 dst,UINT16 size, UINT8 condition,UINT16 *vram)
-{
- UINT8 * data = nb1414_blit_data;
- int i;
-
- for(i=0;i 1) /* ONE OR TWO PLAYERS */
- {
- dst = ((data[0x0ad]<<8)|(data[0x0ae]&0xff)) & 0x3fff;
- nichibutsu_1414m4_dma(0x00af,dst,0x18,fl_cond,vram);
- }
-}
-
-static void kozure_score_msg(UINT16 dst,UINT8 src_base,UINT16 *vram)
-{
- int i;
- UINT8 first_digit;
- UINT8 res;
- UINT8 * data = nb1414_blit_data;
-
- first_digit = 0;
-
- for(i=0;i<6;i++)
- {
- res = ((vram[(i/2)+5+src_base*3] >> (!(i & 1) * 4)) & 0xf);
-
- if(first_digit || res)
- {
- vram[i+dst+0x0000] = res + 0x30;
- first_digit = 1;
- }
- else
- vram[i+dst+0x0000] = 0x20;
-
- vram[i+dst+0x0400] = data[0x10f+(src_base*0x1c)+i];
- }
-
- vram[6+dst+0x0000] = 0x30;
- vram[6+dst+0x0400] = data[0x10f+(src_base*0x1c)+6];
- vram[7+dst+0x0000] = 0x30;
- vram[7+dst+0x0400] = data[0x10f+(src_base*0x1c)+7];
-
-}
-
-static void nichibutsu_1414m4_0200( UINT16 mcu_cmd,UINT16 *vram)
-{
- UINT8 * data = nb1414_blit_data;
- UINT16 dst;
-
- dst = (data[0x330+((mcu_cmd & 0xf)*2)]<<8)|(data[0x331+((mcu_cmd & 0xf)*2)]&0xff);
-
- dst &= 0x3fff;
-
- if(dst & 0x7ff) // fill
- nichibutsu_1414m4_fill(0x0000,data[dst & 0x3fff],data[dst+1],vram);
- else // src -> dst
- nichibutsu_1414m4_dma(dst & 0x3fff,0x0000,0x400,1,vram);
-}
-
-/*
-[0x02] & 0x01 p1 up
-[0x02] & 0x02 p1 down
-[0x02] & 0x04 p1 left
-[0x02] & 0x08 p1 right
-[0x02] & 0x10 p1 button 1
-[0x02] & 0x20 p1 button 2
-[0x02] & 0x40 p1 button 3
-[0x03] & 0x01 p2 up
-[0x03] & 0x02 p2 down
-[0x03] & 0x04 p2 left
-[0x03] & 0x08 p2 right
-[0x03] & 0x10 p2 button 1
-[0x03] & 0x20 p2 button 2
-[0x03] & 0x40 p2 button 3
-[0x04] & 0x10 service
-[0x04] & 0x04 coin A
-[0x04] & 0x08 coin B
-[0x04] & 0x01 start 1
-[0x04] & 0x02 start 2
-[0x05] DSW1
-[0x06] DSW2
-[0x07] & 0x40 demo sounds ON / OFF
-[0x07] & 0x7 lives setting
-[0x07] & 0x80 cabinet (upright / table)
-[0x07] & 0x30 difficulty (easy / normal / hard / hardest)
-[0x0f] coinage A
-[0x10] coinage B
-[0x11] sound test num
-*/
-static void nichibutsu_1414m4_0600( UINT8 is2p,UINT16 *vram)
-{
- UINT8 * data = nb1414_blit_data;
- UINT16 dst;
- int i;
-
- dst = ((data[0x1f5]<<8)|(data[0x1f6]&0xff)) & 0x3fff;
- vram[dst] = (vram[7] & 0x7) + 0x30;//data[0x1f7];
-
- dst = ((data[0x1f8]<<8)|(data[0x1f9]&0xff)) & 0x3fff;
- nichibutsu_1414m4_dma(0x1fa + (((vram[7] & 0x30) >> 4) * 0x18),dst,12,1,vram);
-
- // 0x25a - 0x261 unknown meaning
-
- dst = ((data[0x262]<<8)|(data[0x263]&0xff)) & 0x3fff;
- nichibutsu_1414m4_dma(0x264 + (((vram[7] & 0x80) >> 7) * 0x18),dst,12,1,vram);
-
- dst = ((data[0x294]<<8)|(data[0x295]&0xff)) & 0x3fff;
- nichibutsu_1414m4_dma(0x296 + (((vram[7] & 0x40) >> 6) * 0x18),dst,12,1,vram);
-
- dst = ((data[0x2c6]<<8)|(data[0x2c7]&0xff)) & 0x3fff;
- vram[dst] = ((vram[0xf] & 0xf0) >> 4) + 0x30;//data[0x2c8];
-
- dst = ((data[0x2c9]<<8)|(data[0x2ca]&0xff)) & 0x3fff;
- vram[dst] = ((vram[0xf] & 0x0f) >> 0) + 0x30;//data[0x2cb];
-
- dst = ((data[0x2cc]<<8)|(data[0x2cd]&0xff)) & 0x3fff;
- vram[dst] = ((vram[0x10] & 0xf0) >> 4) + 0x30;//data[0x2ce];
-
- dst = ((data[0x2cf]<<8)|(data[0x2d0]&0xff)) & 0x3fff;
- vram[dst] = ((vram[0x10] & 0x0f) >> 0) + 0x30;//data[0x2d1];
-
- dst = ((data[0x2d2]<<8)|(data[0x2d3]&0xff)) & 0x3fff;
- vram[dst+0] = ((vram[0x11] & 0xf0) >> 4) + 0x30;//data[0x2d4];
- vram[dst+1] = (vram[0x11] & 0x0f) + 0x30;//data[0x2d5];
-
- dst = ((data[0x2d6]<<8)|(data[0x2d7]&0xff)) & 0x3fff;
- nichibutsu_1414m4_dma(0x2d8 + (is2p * 0x18),dst,12,1,vram); // 1p / 2p string
-
- dst = ((data[0x308]<<8)|(data[0x309]&0xff)) & 0x3fff;
- for(i=0;i<5;i++) /* system inputs */
- nichibutsu_1414m4_dma(0x310 + (((vram[0x04] >> (4-i)) & 1) * 6),dst + (i * 0x20),0x3,1,vram);
-
- dst = ((data[0x30a]<<8)|(data[0x30b]&0xff)) & 0x3fff;
- for(i=0;i<7;i++) /* 1p / 2p inputs */
- nichibutsu_1414m4_dma(0x310 + (((vram[0x02 + is2p] >> (6-i)) & 1) * 6),dst + (i * 0x20),0x3,1,vram);
-
- dst = ((data[0x30c]<<8)|(data[0x30d]&0xff)) & 0x3fff;
- for(i=0;i<8;i++) /* dips */
- nichibutsu_1414m4_dma(0x310 + (((vram[0x05] >> (7-i)) & 1) * 6),dst + (i * 0x20),0x3,1,vram);
-
- dst = ((data[0x30e]<<8)|(data[0x30f]&0xff)) & 0x3fff;
- for(i=0;i<8;i++) /* dips */
- nichibutsu_1414m4_dma(0x310 + (((vram[0x06] >> (7-i)) & 1) * 6),dst + (i * 0x20),0x3,1,vram);
-}
-
-static void nichibutsu_1414m4_0e00(UINT16 mcu_cmd,UINT16 *vram)
-{
- UINT8 * data = nb1414_blit_data;
- UINT16 dst;
-
- dst = ((data[0xdf]<<8)|(data[0xe0]&0xff)) & 0x3fff;
- nichibutsu_1414m4_dma(0x00e1,dst,8,1,vram); /* hi-score */
-
- if(mcu_cmd & 0x04)
- {
- dst = ((data[0xfb]<<8)|(data[0xfc]&0xff)) & 0x3fff;
- nichibutsu_1414m4_dma(0x00fd,dst,8,!(mcu_cmd & 1),vram); /* 1p-msg */
- dst = ((data[0x10d]<<8)|(data[0x10e]&0xff)) & 0x3fff;
- kozure_score_msg(dst,0,vram); /* 1p score */
- if(mcu_cmd & 0x80)
- {
- dst = ((data[0x117]<<8)|(data[0x118]&0xff)) & 0x3fff;
- nichibutsu_1414m4_dma(0x0119,dst,8,!(mcu_cmd & 2),vram); /* 2p-msg */
- dst = ((data[0x129]<<8)|(data[0x12a]&0xff)) & 0x3fff;
- kozure_score_msg(dst,1,vram); /* 2p score */
- }
- }
- else
- {
- dst = ((data[0x133]<<8)|(data[0x134]&0xff)) & 0x3fff;
- nichibutsu_1414m4_dma(0x0135,dst,0x10,!(mcu_cmd & 1),vram); /* game over */
- insert_coin_msg(vram);
- if((mcu_cmd & 0x18) == 0) // TODO: either one of these two disables credit display
- credit_msg(vram);
- }
-}
-
-void nb_1414m4_exec(UINT16 mcu_cmd,UINT16 *vram,UINT16 *scrollx,UINT16 *scrolly)
-{
- /* latch fg scroll values */
- *scrollx = (vram[0x0d] & 0xff) | ((vram[0x0e] & 0xff) << 8);
- *scrolly = (vram[0x0b] & 0xff) | ((vram[0x0c] & 0xff) << 8);
-
- /* process the command */
- switch(mcu_cmd & 0xff00)
- {
- /* title screen / continue screens */
- case 0x0000: insert_coin_msg(vram); credit_msg(vram); break;
-
- /* direct DMA'ing / fill */
- case 0x0200: nichibutsu_1414m4_0200(mcu_cmd & 0x87,vram); break;
-
- /* service mode */
- case 0x0600: nichibutsu_1414m4_0600(mcu_cmd & 1,vram); break;
-
- /* gameplay */
- case 0x0e00: nichibutsu_1414m4_0e00(mcu_cmd & 0xff,vram); break;
-
- case 0x8000: break; //Ninja Emaki, attract mode
- case 0xff00: break; //Ninja Emaki POST, presumably invalid
- default:
- //popmessage("NB 1414M4 executes %04x command, contact MAMEdev\n",mcu_cmd);
- break;
- }
-}
diff --git a/jan/src/burn/devices/nb1414m4.h b/jan/src/burn/devices/nb1414m4.h
deleted file mode 100644
index 93c6581fa..000000000
--- a/jan/src/burn/devices/nb1414m4.h
+++ /dev/null
@@ -1,5 +0,0 @@
-void nb_1414m4_exec(UINT16 mcu_cmd,UINT16 *vram,UINT16 *scrollx,UINT16 *scrolly);
-
-extern UINT8 *nb1414_blit_data;
-extern UINT32 nb1414_frame;
-
diff --git a/jan/src/burn/devices/nb1414m4_8bit.cpp b/jan/src/burn/devices/nb1414m4_8bit.cpp
deleted file mode 100644
index 1fc757724..000000000
--- a/jan/src/burn/devices/nb1414m4_8bit.cpp
+++ /dev/null
@@ -1,311 +0,0 @@
-// license:MAME
-// copyright-holders:Angelo Salese
-/*******************************************************************************************************************
-
-Nichibutsu 1414M4 device emulation
-
-Written by Angelo Salese, based on researches by Tomasz Slanina with Legion
-
-This is some fancy MCU / blitter that copies text strings in various Nihon Bussan games;
-
-TODO:
-- where is the condition that makes "insert coin" text to properly blink?
-- first byte meaning is completely unknown;
-- Ninja Emaki triggers unknown commands 0x8000 & 0xff20;
-- Ninja Emaki continue screen is corrupt;
-- How to NOT draw the params?
-- Device-ify this;
-
-Notes:
-- Just before any string in the "MCU" rom, there's a control byte, this meaning is as follows:
- 0?-- ---- ---- ---- interpret as data?
- 10-- ---- ---- ---- single string transfer
- 11-- ---- ---- ---- src -> dst copy, if destination != 0 fixed src, otherwise do a src -> dst
- --xx xxxx xxxx xxxx destination offset in the VRAM tilemap
-
-- I'm sure that this is a shared device, that shares everything. All of the known differences are due of not
- understood features of the chip (some bytes in the ROM etc.)
-
-********************************************************************************************************************/
-
-#include "tiles_generic.h" // for UINT* etc
-#include "nb1414m4_8bit.h"
-
-UINT8 *nb1414_blit_data8b = NULL;
-UINT32 nb1414_frame8b = 0;
-
-static void nichibutsu_1414m4_dma(UINT16 src,UINT16 dst,UINT16 size, UINT8 condition,UINT8 *vram)
-{
- UINT8 * data = nb1414_blit_data8b;
- int i;
-
- for(i=0;i 1) /* ONE OR TWO PLAYERS */
- {
- dst = ((data[0x0ad]<<8)|(data[0x0ae]&0xff)) & 0x3fff;
- nichibutsu_1414m4_dma(0x00af,dst,0x18,fl_cond,vram);
- }
-}
-
-static void kozure_score_msg(UINT16 dst,UINT8 src_base,UINT8 *vram)
-{
- int i;
- UINT8 first_digit;
- UINT8 res;
- UINT8 * data = nb1414_blit_data8b;
-
- first_digit = 0;
-
- for(i=0;i<6;i++)
- {
- res = ((vram[(i/2)+5+src_base*3] >> (!(i & 1) * 4)) & 0xf);
-
- if(first_digit || res)
- {
- vram[i+dst+0x0000] = res + 0x30;
- first_digit = 1;
- }
- else
- vram[i+dst+0x0000] = 0x20;
-
- vram[i+dst+0x0400] = data[0x10f+(src_base*0x1c)+i];
- }
-
- vram[6+dst+0x0000] = 0x30;
- vram[6+dst+0x0400] = data[0x10f+(src_base*0x1c)+6];
- vram[7+dst+0x0000] = 0x30;
- vram[7+dst+0x0400] = data[0x10f+(src_base*0x1c)+7];
-
-}
-
-static void nichibutsu_1414m4_0200( UINT16 mcu_cmd,UINT8 *vram)
-{
- UINT8 * data = nb1414_blit_data8b;
- UINT16 dst;
-
- dst = (data[0x330+((mcu_cmd & 0xf)*2)]<<8)|(data[0x331+((mcu_cmd & 0xf)*2)]&0xff);
-
- dst &= 0x3fff;
-
- if(dst & 0x7ff) // fill
- nichibutsu_1414m4_fill(0x0000,data[dst & 0x3fff],data[dst+1],vram);
- else // src -> dst
- nichibutsu_1414m4_dma(dst & 0x3fff,0x0000,0x400,1,vram);
-}
-
-/*
-[0x02] & 0x01 p1 up
-[0x02] & 0x02 p1 down
-[0x02] & 0x04 p1 left
-[0x02] & 0x08 p1 right
-[0x02] & 0x10 p1 button 1
-[0x02] & 0x20 p1 button 2
-[0x02] & 0x40 p1 button 3
-[0x03] & 0x01 p2 up
-[0x03] & 0x02 p2 down
-[0x03] & 0x04 p2 left
-[0x03] & 0x08 p2 right
-[0x03] & 0x10 p2 button 1
-[0x03] & 0x20 p2 button 2
-[0x03] & 0x40 p2 button 3
-[0x04] & 0x10 service
-[0x04] & 0x04 coin A
-[0x04] & 0x08 coin B
-[0x04] & 0x01 start 1
-[0x04] & 0x02 start 2
-[0x05] DSW1
-[0x06] DSW2
-[0x07] & 0x40 demo sounds ON / OFF
-[0x07] & 0x7 lives setting
-[0x07] & 0x80 cabinet (upright / table)
-[0x07] & 0x30 difficulty (easy / normal / hard / hardest)
-[0x0f] coinage A
-[0x10] coinage B
-[0x11] sound test num
-*/
-static void nichibutsu_1414m4_0600( UINT8 is2p,UINT8 *vram)
-{
- UINT8 * data = nb1414_blit_data8b;
- UINT16 dst;
- int i;
-
- dst = ((data[0x1f5]<<8)|(data[0x1f6]&0xff)) & 0x3fff;
- vram[dst] = (vram[7] & 0x7) + 0x30;//data[0x1f7];
-
- dst = ((data[0x1f8]<<8)|(data[0x1f9]&0xff)) & 0x3fff;
- nichibutsu_1414m4_dma(0x1fa + (((vram[7] & 0x30) >> 4) * 0x18),dst,12,1,vram);
-
- // 0x25a - 0x261 unknown meaning
-
- dst = ((data[0x262]<<8)|(data[0x263]&0xff)) & 0x3fff;
- nichibutsu_1414m4_dma(0x264 + (((vram[7] & 0x80) >> 7) * 0x18),dst,12,1,vram);
-
- dst = ((data[0x294]<<8)|(data[0x295]&0xff)) & 0x3fff;
- nichibutsu_1414m4_dma(0x296 + (((vram[7] & 0x40) >> 6) * 0x18),dst,12,1,vram);
-
- dst = ((data[0x2c6]<<8)|(data[0x2c7]&0xff)) & 0x3fff;
- vram[dst] = ((vram[0xf] & 0xf0) >> 4) + 0x30;//data[0x2c8];
-
- dst = ((data[0x2c9]<<8)|(data[0x2ca]&0xff)) & 0x3fff;
- vram[dst] = ((vram[0xf] & 0x0f) >> 0) + 0x30;//data[0x2cb];
-
- dst = ((data[0x2cc]<<8)|(data[0x2cd]&0xff)) & 0x3fff;
- vram[dst] = ((vram[0x10] & 0xf0) >> 4) + 0x30;//data[0x2ce];
-
- dst = ((data[0x2cf]<<8)|(data[0x2d0]&0xff)) & 0x3fff;
- vram[dst] = ((vram[0x10] & 0x0f) >> 0) + 0x30;//data[0x2d1];
-
- dst = ((data[0x2d2]<<8)|(data[0x2d3]&0xff)) & 0x3fff;
- vram[dst+0] = ((vram[0x11] & 0xf0) >> 4) + 0x30;//data[0x2d4];
- vram[dst+1] = (vram[0x11] & 0x0f) + 0x30;//data[0x2d5];
-
- dst = ((data[0x2d6]<<8)|(data[0x2d7]&0xff)) & 0x3fff;
- nichibutsu_1414m4_dma(0x2d8 + (is2p * 0x18),dst,12,1,vram); // 1p / 2p string
-
- dst = ((data[0x308]<<8)|(data[0x309]&0xff)) & 0x3fff;
- for(i=0;i<5;i++) /* system inputs */
- nichibutsu_1414m4_dma(0x310 + (((vram[0x04] >> (4-i)) & 1) * 6),dst + (i * 0x20),0x3,1,vram);
-
- dst = ((data[0x30a]<<8)|(data[0x30b]&0xff)) & 0x3fff;
- for(i=0;i<7;i++) /* 1p / 2p inputs */
- nichibutsu_1414m4_dma(0x310 + (((vram[0x02 + is2p] >> (6-i)) & 1) * 6),dst + (i * 0x20),0x3,1,vram);
-
- dst = ((data[0x30c]<<8)|(data[0x30d]&0xff)) & 0x3fff;
- for(i=0;i<8;i++) /* dips */
- nichibutsu_1414m4_dma(0x310 + (((vram[0x05] >> (7-i)) & 1) * 6),dst + (i * 0x20),0x3,1,vram);
-
- dst = ((data[0x30e]<<8)|(data[0x30f]&0xff)) & 0x3fff;
- for(i=0;i<8;i++) /* dips */
- nichibutsu_1414m4_dma(0x310 + (((vram[0x06] >> (7-i)) & 1) * 6),dst + (i * 0x20),0x3,1,vram);
-}
-
-static void nichibutsu_1414m4_0e00(UINT16 mcu_cmd,UINT8 *vram)
-{
- UINT8 * data = nb1414_blit_data8b;
- UINT16 dst;
-
- dst = ((data[0xdf]<<8)|(data[0xe0]&0xff)) & 0x3fff;
- nichibutsu_1414m4_dma(0x00e1,dst,8,1,vram); /* hi-score */
-
- if(mcu_cmd & 0x04)
- {
- dst = ((data[0xfb]<<8)|(data[0xfc]&0xff)) & 0x3fff;
- nichibutsu_1414m4_dma(0x00fd,dst,8,!(mcu_cmd & 1),vram); /* 1p-msg */
- dst = ((data[0x10d]<<8)|(data[0x10e]&0xff)) & 0x3fff;
- kozure_score_msg(dst,0,vram); /* 1p score */
- if(mcu_cmd & 0x80)
- {
- dst = ((data[0x117]<<8)|(data[0x118]&0xff)) & 0x3fff;
- nichibutsu_1414m4_dma(0x0119,dst,8,!(mcu_cmd & 2),vram); /* 2p-msg */
- dst = ((data[0x129]<<8)|(data[0x12a]&0xff)) & 0x3fff;
- kozure_score_msg(dst,1,vram); /* 2p score */
- }
- }
- else
- {
- dst = ((data[0x133]<<8)|(data[0x134]&0xff)) & 0x3fff;
- nichibutsu_1414m4_dma(0x0135,dst,0x10,!(mcu_cmd & 1),vram); /* game over */
- insert_coin_msg(vram);
- if((mcu_cmd & 0x18) == 0) // TODO: either one of these two disables credit display
- credit_msg(vram);
- }
-}
-
-void nb_1414m4_exec8b(UINT16 mcu_cmd,UINT8 *vram,UINT16 *scrollx,UINT16 *scrolly,INT32 emakimode)
-{
- /* latch fg scroll values */
- *scrollx = (vram[0x0d] & 0xff) | ((vram[0x0e] & 0xff) << 8);
- *scrolly = (vram[0x0b] & 0xff) | ((vram[0x0c] & 0xff) << 8);
-
- if (emakimode && mcu_cmd == 0x286) {
- // this fixes the continue screen in Ninja Emaki
- memset(vram, 0x00, 18);
- }
-
- /* process the command */
- switch(mcu_cmd & 0xff00)
- {
- /* title screen / continue screens */
- case 0x0000: insert_coin_msg(vram); credit_msg(vram); break;
-
- /* direct DMA'ing / fill */
- case 0x0200: nichibutsu_1414m4_0200(mcu_cmd & 0x87,vram); break;
-
- /* service mode */
- case 0x0600: nichibutsu_1414m4_0600(mcu_cmd & 1,vram); break;
-
- /* gameplay */
- case 0x0e00: nichibutsu_1414m4_0e00(mcu_cmd & 0xff,vram); break;
-
- case 0x8000: break; //Ninja Emaki, attract mode
- case 0xff00: break; //Ninja Emaki POST, presumably invalid
- default:
- //popmessage("NB 1414M4 executes %04x command, contact MAMEdev\n",mcu_cmd);
- break;
- }
-}
diff --git a/jan/src/burn/devices/nb1414m4_8bit.h b/jan/src/burn/devices/nb1414m4_8bit.h
deleted file mode 100644
index d7b2e0763..000000000
--- a/jan/src/burn/devices/nb1414m4_8bit.h
+++ /dev/null
@@ -1,5 +0,0 @@
-void nb_1414m4_exec8b(UINT16 mcu_cmd,UINT8 *vram,UINT16 *scrollx,UINT16 *scrolly,INT32 emakimode);
-
-extern UINT8 *nb1414_blit_data8b;
-extern UINT32 nb1414_frame8b;
-
diff --git a/jan/src/burn/devices/nmk004.cpp b/jan/src/burn/devices/nmk004.cpp
deleted file mode 100644
index 75b63f567..000000000
--- a/jan/src/burn/devices/nmk004.cpp
+++ /dev/null
@@ -1,239 +0,0 @@
-// NMK004 device
-// Based on MAME device by David Haywood and trap15
-
-#include "burnint.h"
-#include "m68000_intf.h"
-#include "tlcs90_intf.h"
-#include "nmk004.h"
-#include "burn_ym2203.h"
-#include "msm6295.h"
-
-UINT8 *NMK004OKIROM0;
-UINT8 *NMK004OKIROM1;
-UINT8 *NMK004PROGROM;
-
-static UINT8 *ram;
-
-static UINT8 to_nmk004 = 0;
-static UINT8 to_main = 0;
-static INT32 bankdata[2] = { 0, 0 };
-
-static INT32 nmk004_initted = 0;
-
-static UINT8 nmk004_tlcs90_read(UINT32 address)
-{
- if (address >= 0xfec0 && address < 0xffc0) { // internal ram
- return ram[0x800 + (address - 0xfec0)];
- }
-
- switch (address)
- {
- case 0xf800:
- case 0xf801:
- return BurnYM2203Read(0, address & 1);
-
- case 0xf900:
- return MSM6295ReadStatus(0);
-
- case 0xfa00:
- return MSM6295ReadStatus(1);
-
- case 0xfb00:
- return to_nmk004;
- }
-
- return 0;
-}
-
-static void oki_bankswitch(INT32 chip, INT32 bank)
-{
- UINT8 *rom = (chip) ? NMK004OKIROM1 : NMK004OKIROM0;
-
- bankdata[chip] = bank;
- bank = (bank + 1) & 3;
-
- memcpy (rom + 0x20000, rom + 0x20000 + bank * 0x20000, 0x20000);
-}
-
-static void nmk004_tlcs90_write(UINT32 address, UINT8 data)
-{
- if (address >= 0xfec0 && address < 0xffc0) { // internal ram
- ram[0x800 + (address - 0xfec0)] = data;
- return;
- }
-
- switch (address)
- {
- case 0xf800:
- case 0xf801:
- BurnYM2203Write(0, address & 1, data);
- return;
-
- case 0xf900:
- MSM6295Command(0, data);
- return;
-
- case 0xfa00:
- MSM6295Command(1, data);
- return;
-
- case 0xfc00:
- to_main = data;
- return;
-
- case 0xfc01:
- oki_bankswitch(0, data);
- return;
-
- case 0xfc02:
- oki_bankswitch(1, data);
- return;
- }
-}
-
-static void nmk004_tlcs90_write_port(UINT16 port, UINT8 data)
-{
- switch (port)
- {
- case 0xffc8: { // hack - disable watchdog function
- if (data & 1) {
- // SekReset();
- // bprintf (0, _T("Resetting 68k!\n"));
- } else {
- // bprintf (0, _T("Clear 68k reset!\n"));
- }
- }
- }
-}
-
-void NMK004_reset()
-{
- memset (ram, 0, 0x900);
-
- tlcs90Open(0);
- tlcs90Reset();
- BurnYM2203Reset();
- tlcs90Close();
-
- MSM6295Reset(0);
- MSM6295Reset(1);
-
- oki_bankswitch(0,0);
- oki_bankswitch(1,0);
- to_main = 0;
- to_nmk004 = 0;
-}
-
-static void NMK004YM2203IrqHandler(INT32, INT32 nStatus)
-{
- tlcs90SetIRQLine(0, (nStatus) ? CPU_IRQSTATUS_ACK : CPU_IRQSTATUS_NONE);
-}
-
-inline static double NMK004GetTime()
-{
- return (double)tlcs90TotalCycles() / 8000000;
-}
-
-inline static INT32 NMK004SynchroniseStream(INT32 nSoundRate)
-{
- return (INT64)(tlcs90TotalCycles() * nSoundRate / 8000000);
-}
-
-void NMK004_init()
-{
- nmk004_initted = 1;
- ram = (UINT8*)BurnMalloc(0x900);
-
- tlcs90Init(0, 8000000);
- tlcs90Open(0);
- tlcs90MapMemory(NMK004PROGROM, 0x0000, 0xefff, MAP_ROM);
- tlcs90MapMemory(ram, 0xf000, 0xf7ff, MAP_RAM);
- tlcs90SetReadHandler(nmk004_tlcs90_read);
- tlcs90SetWriteHandler(nmk004_tlcs90_write);
- tlcs90SetWritePortHandler(nmk004_tlcs90_write_port);
- tlcs90Close();
-
- BurnYM2203Init(1, 1500000, &NMK004YM2203IrqHandler, NMK004SynchroniseStream, NMK004GetTime, 0);
- BurnTimerAttachTlcs90(8000000);
- /* reminder: these route#s are opposite of MAME, for example:
- MCFG_SOUND_ROUTE(0, "mono", 0.50)
- MCFG_SOUND_ROUTE(1, "mono", 0.50)
- MCFG_SOUND_ROUTE(2, "mono", 0.50)
- MCFG_SOUND_ROUTE(3, "mono", 1.20)
- Is equal to the 4 route lines below. -dink
- */
- BurnYM2203SetRoute(0, BURN_SND_YM2203_YM2203_ROUTE, 1.20, BURN_SND_ROUTE_BOTH);
- BurnYM2203SetRoute(0, BURN_SND_YM2203_AY8910_ROUTE_1, 0.50, BURN_SND_ROUTE_BOTH);
- BurnYM2203SetRoute(0, BURN_SND_YM2203_AY8910_ROUTE_2, 0.50, BURN_SND_ROUTE_BOTH);
- BurnYM2203SetRoute(0, BURN_SND_YM2203_AY8910_ROUTE_3, 0.50, BURN_SND_ROUTE_BOTH);
-
- MSM6295Init(0, 4000000 / 165, 1);
- MSM6295Init(1, 4000000 / 165, 1);
- MSM6295SetRoute(0, 0.10, BURN_SND_ROUTE_BOTH);
- MSM6295SetRoute(1, 0.10, BURN_SND_ROUTE_BOTH);
-}
-
-void NMK004_exit()
-{
- if (!nmk004_initted) return;
-
- nmk004_initted = 0;
-
- BurnFree(ram);
- ram = NULL;
-
- tlcs90Exit();
- BurnYM2203Exit();
- MSM6295Exit(0);
- MSM6295Exit(1);
-}
-
-INT32 NMK004Scan(INT32 nAction, INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (nAction & ACB_VOLATILE) {
- memset(&ba, 0, sizeof(ba));
-
- ba.Data = ram;
- ba.nLen = 0x900;
- ba.szName = "tlcs90 ram";
- BurnAcb(&ba);
-
- tlcs90Scan(nAction);
-
- BurnYM2203Scan(nAction, pnMin);
- MSM6295Scan(0, nAction);
- MSM6295Scan(1, nAction);
-
- SCAN_VAR(to_nmk004);
- SCAN_VAR(to_main);
- SCAN_VAR(bankdata[0]);
- SCAN_VAR(bankdata[1]);
- }
-
- if (nAction & ACB_WRITE)
- {
- oki_bankswitch(0,bankdata[0]);
- oki_bankswitch(1,bankdata[1]);
- }
-
- return 0;
-}
-
-void NMK004NmiWrite(INT32 data)
-{
- data ^= 0xff; // hack - no game works properly without this being inverted.
-
- tlcs90SetIRQLine(0x20 /*nmi*/, (data & 1) ? CPU_IRQSTATUS_ACK : CPU_IRQSTATUS_NONE);
-}
-
-void NMK004Write(INT32, INT32 data)
-{
- to_nmk004 = data & 0xff;
-}
-
-UINT8 NMK004Read()
-{
- return to_main;
-}
diff --git a/jan/src/burn/devices/nmk004.h b/jan/src/burn/devices/nmk004.h
deleted file mode 100644
index 46b42880d..000000000
--- a/jan/src/burn/devices/nmk004.h
+++ /dev/null
@@ -1,14 +0,0 @@
-extern UINT8 *NMK004OKIROM0;
-extern UINT8 *NMK004OKIROM1;
-extern UINT8 *NMK004PROGROM;
-
-void NMK004_init();
-void NMK004_reset();
-void NMK004_exit();
-
-void NMK004NmiWrite(INT32 data);
-
-void NMK004Write(INT32, INT32 data);
-UINT8 NMK004Read();
-
-INT32 NMK004Scan(INT32 nAction, INT32* pnMin);
diff --git a/jan/src/burn/devices/nmk112.cpp b/jan/src/burn/devices/nmk112.cpp
deleted file mode 100644
index 605e041ab..000000000
--- a/jan/src/burn/devices/nmk112.cpp
+++ /dev/null
@@ -1,75 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:Alex W. Jackson
-// NMK112 - NMK custom IC for bankswitching the sample ROMs of a pair of OKI6295 ADPCM chips
-
-#include "burnint.h"
-#include "msm6295.h"
-
-#define TABLESIZE 0x100
-#define BANKSIZE 0x10000
-
-static UINT8 page_mask;
-static UINT8 current_bank[8];
-static UINT32 romlen[2];
-static UINT8 *romdata[2];
-
-void NMK112_okibank_write(INT32 offset, UINT8 data)
-{
- current_bank[offset] = data;
-
- INT32 chip = (offset & 4) / 4;
- INT32 size = romlen[chip];
- if (size == 0) return;
-
- INT32 banknum = offset & 3;
- INT32 paged = (page_mask & (1 << chip));
-
- UINT8 *rom = romdata[chip];
-
- INT32 bankaddr = (data * BANKSIZE) % size;
-
- if ((paged) && (banknum == 0))
- {
- MSM6295SetBank(chip, rom + bankaddr + 0x400, 0x00400, (BANKSIZE - 1));
- }
- else
- {
- MSM6295SetBank(chip, rom + bankaddr, 0x00000 + (banknum * BANKSIZE), (banknum * BANKSIZE) + (BANKSIZE - 1));
- }
-
- if (paged)
- {
- MSM6295SetBank(chip, rom + bankaddr + (banknum * TABLESIZE), (banknum * TABLESIZE), (banknum * TABLESIZE) + (TABLESIZE - 1));
- }
-}
-
-void NMK112Reset()
-{
- for (INT32 i = 0; i < 8; i++) {
- NMK112_okibank_write(i, 0);
- }
-}
-
-void NMK112_init(UINT8 disable_page_mask, UINT8 *region0, UINT8 *region1, INT32 length0, INT32 length1)
-{
- romdata[0] = region0;
- romdata[1] = region1;
- romlen[0] = length0;
- romlen[1] = length1;
- page_mask = ~disable_page_mask;
-
- NMK112Reset();
-}
-
-INT32 NMK112_Scan(INT32 nAction)
-{
- SCAN_VAR(current_bank);
-
- if (nAction & ACB_WRITE) {
- for (INT32 i = 0; i < 8; i++) {
- NMK112_okibank_write(i, current_bank[i]);
- }
- }
-
- return 0;
-}
diff --git a/jan/src/burn/devices/nmk112.h b/jan/src/burn/devices/nmk112.h
deleted file mode 100644
index be13de3e4..000000000
--- a/jan/src/burn/devices/nmk112.h
+++ /dev/null
@@ -1,4 +0,0 @@
-void NMK112_okibank_write(INT32 offset, UINT8 data);
-void NMK112Reset();
-void NMK112_init(UINT8 disable_page_mask, UINT8 *region0, UINT8 *region1, INT32 len0, INT32 len1);
-INT32 NMK112_Scan(INT32 nAction);
diff --git a/jan/src/burn/devices/pandora.cpp b/jan/src/burn/devices/pandora.cpp
deleted file mode 100644
index 8bea17117..000000000
--- a/jan/src/burn/devices/pandora.cpp
+++ /dev/null
@@ -1,144 +0,0 @@
-// Kaneko Pandora module
-// Based on MAME sources by David Haywood, Luca Elia
-
-#include "tiles_generic.h"
-
-static UINT16 *pandora_temp = NULL;
-static UINT8 *pandora_ram = NULL;
-static UINT8 *pandora_gfx = NULL;
-static INT32 pandora_clear;
-static INT32 pandora_xoffset;
-static INT32 pandora_yoffset;
-static INT32 pandora_color_offset;
-static INT32 pandora_code_max;
-INT32 pandora_flipscreen;
-
-void pandora_set_clear(INT32 clear)
-{
-#if defined FBA_DEBUG
- if (!DebugDev_PandoraInitted) bprintf(PRINT_ERROR, _T("pandora_set_clear called without init\n"));
-#endif
-
- pandora_clear = clear;
-}
-
-void pandora_update(UINT16 *dest)
-{
-#if defined FBA_DEBUG
- if (!DebugDev_PandoraInitted) bprintf(PRINT_ERROR, _T("pandora_update called without init\n"));
-#endif
-
- for (INT32 i = 0; i < nScreenWidth * nScreenHeight; i++) {
- if (pandora_temp[i]) {
- dest[i] = pandora_temp[i] & 0x3ff;
- }
- }
-}
-
-void pandora_buffer_sprites()
-{
-#if defined FBA_DEBUG
- if (!DebugDev_PandoraInitted) bprintf(PRINT_ERROR, _T("pandora_buffer_sprites called without init\n"));
-#endif
-
- INT32 sx=0, sy=0, x=0, y=0;
-
- if (pandora_clear) memset (pandora_temp, 0, nScreenWidth * nScreenHeight * sizeof(UINT16));
-
- for (INT32 offs = 0; offs < 0x1000; offs += 8)
- {
- INT32 attr = pandora_ram[offs+7];
- INT32 code = pandora_ram[offs+6] + ((attr & 0x3f) << 8);
- INT32 dy = pandora_ram[offs+5];
- INT32 dx = pandora_ram[offs+4];
- INT32 color = pandora_ram[offs+3];
- INT32 flipy = attr & 0x40;
- INT32 flipx = attr & 0x80;
-
- if (color & 1) dx |= 0x100;
- if (color & 2) dy |= 0x100;
-
- if (color & 4)
- {
- x += dx;
- y += dy;
- }
- else
- {
- x = dx;
- y = dy;
- }
-
- code &= pandora_code_max;
-
- if (pandora_flipscreen)
- {
- sx = 240 - x;
- sy = 240 - y;
- flipx = !flipx;
- flipy = !flipy;
- }
- else
- {
- sx = x;
- sy = y;
- }
-
- sx = (sx + pandora_xoffset) & 0x1ff;
- sy = (sy + pandora_yoffset) & 0x1ff;
- if (sx & 0x100) sx -= 0x200;
- if (sy & 0x100) sy -= 0x200;
-
- if (sx >= nScreenWidth || sx < -15) continue;
- if (sy >= nScreenHeight || sy < -15) continue;
-
- if (flipy) {
- if (flipx) {
- Render16x16Tile_Mask_FlipXY_Clip(pandora_temp, code, sx, sy, color >> 4, 4, 0, pandora_color_offset, pandora_gfx);
- } else {
- Render16x16Tile_Mask_FlipY_Clip(pandora_temp, code, sx, sy, color >> 4, 4, 0, pandora_color_offset, pandora_gfx);
- }
- } else {
- if (flipx) {
- Render16x16Tile_Mask_FlipX_Clip(pandora_temp, code, sx, sy, color >> 4, 4, 0, pandora_color_offset, pandora_gfx);
- } else {
- Render16x16Tile_Mask_Clip(pandora_temp, code, sx, sy, color >> 4, 4, 0, pandora_color_offset, pandora_gfx);
- }
- }
- }
-}
-
-// must be called after GenericTilesInit()
-void pandora_init(UINT8 *ram, UINT8 *gfx, INT32 gfx_mod, INT32 color_offset, INT32 x, INT32 y)
-{
- DebugDev_PandoraInitted = 1;
-
- pandora_ram = ram;
- pandora_xoffset = x;
- pandora_yoffset = y;
- pandora_gfx = gfx;
- pandora_color_offset = color_offset;
- pandora_code_max = gfx_mod;
-
- if (BurnDrvGetFlags() & BDF_ORIENTATION_VERTICAL) {
- BurnDrvGetVisibleSize(&nScreenHeight, &nScreenWidth);
- } else {
- BurnDrvGetVisibleSize(&nScreenWidth, &nScreenHeight);
- }
-
- pandora_temp = (UINT16*)BurnMalloc(nScreenWidth * nScreenHeight * sizeof(UINT16));
- pandora_clear = 1;
-}
-
-void pandora_exit()
-{
-#if defined FBA_DEBUG
- if (!DebugDev_PandoraInitted) bprintf(PRINT_ERROR, _T("pandora_exit called without init\n"));
-#endif
-
- BurnFree (pandora_temp);
-
- pandora_ram = pandora_gfx = NULL;
-
- DebugDev_PandoraInitted = 0;
-}
diff --git a/jan/src/burn/devices/pandora.h b/jan/src/burn/devices/pandora.h
deleted file mode 100644
index 49374993d..000000000
--- a/jan/src/burn/devices/pandora.h
+++ /dev/null
@@ -1,7 +0,0 @@
-extern INT32 pandora_flipscreen;
-
-void pandora_set_clear(INT32 clear);
-void pandora_update(UINT16 *dest);
-void pandora_buffer_sprites();
-void pandora_init(UINT8 *ram, UINT8 *gfx, INT32 gfx_mod, INT32 color_offset, INT32 x, INT32 y);
-void pandora_exit();
diff --git a/jan/src/burn/devices/resnet.cpp b/jan/src/burn/devices/resnet.cpp
deleted file mode 100644
index 60b226367..000000000
--- a/jan/src/burn/devices/resnet.cpp
+++ /dev/null
@@ -1,151 +0,0 @@
-// Based on MAME sources by Couriersud
-
-#include "burnint.h"
-#include "resnet.h"
-
-double compute_resistor_weights(INT32 minval, INT32 maxval, double scaler, INT32 count_1, const INT32 * resistances_1, double * weights_1, INT32 pulldown_1, INT32 pullup_1, INT32 count_2, const INT32 * resistances_2, double * weights_2, INT32 pulldown_2, INT32 pullup_2, INT32 count_3, const INT32 * resistances_3, double * weights_3, INT32 pulldown_3, INT32 pullup_3)
-{
- INT32 networks_no;
-
- INT32 rescount[MAX_NETS]; /* number of resistors in each of the nets */
- double r[MAX_NETS][MAX_RES_PER_NET]; /* resistances */
- double w[MAX_NETS][MAX_RES_PER_NET]; /* calulated weights */
- double ws[MAX_NETS][MAX_RES_PER_NET]; /* calulated, scaled weights */
- INT32 r_pd[MAX_NETS]; /* pulldown resistances */
- INT32 r_pu[MAX_NETS]; /* pullup resistances */
-
- double max_out[MAX_NETS];
- double * out[MAX_NETS];
-
- INT32 i,j,n;
- double scale;
- double max;
-
- /* parse input parameters */
-
- networks_no = 0;
- for (n = 0; n < MAX_NETS; n++)
- {
- INT32 count, pd, pu;
- const INT32 * resistances;
- double * weights;
-
- switch(n){
- case 0:
- count = count_1;
- resistances = resistances_1;
- weights = weights_1;
- pd = pulldown_1;
- pu = pullup_1;
- break;
- case 1:
- count = count_2;
- resistances = resistances_2;
- weights = weights_2;
- pd = pulldown_2;
- pu = pullup_2;
- break;
- case 2:
- default:
- count = count_3;
- resistances = resistances_3;
- weights = weights_3;
- pd = pulldown_3;
- pu = pullup_3;
- break;
- }
-
- /* parameters validity check */
- if (count > MAX_RES_PER_NET)
- bprintf(PRINT_ERROR, _T("compute_resistor_weights(): too many resistors in net #%i. The maximum allowed is %i, the number requested was: %i\n"), n, MAX_RES_PER_NET, count);
-
- if (count > 0)
- {
- rescount[networks_no] = count;
- for (i=0; i < count; i++)
- {
- r[networks_no][i] = 1.0 * resistances[i];
- }
- out[networks_no] = weights;
- r_pd[networks_no] = pd;
- r_pu[networks_no] = pu;
- networks_no++;
- }
- }
- if (networks_no < 1)
- bprintf(PRINT_ERROR, _T("compute_resistor_weights(): no input data\n"));
-
- /* calculate outputs for all given networks */
- for( i = 0; i < networks_no; i++ )
- {
- double R0, R1, Vout, dst;
-
- /* of n resistors */
- for(n = 0; n < rescount[i]; n++)
- {
- R0 = ( r_pd[i] == 0 ) ? 1.0/1e12 : 1.0/r_pd[i];
- R1 = ( r_pu[i] == 0 ) ? 1.0/1e12 : 1.0/r_pu[i];
-
- for( j = 0; j < rescount[i]; j++ )
- {
- if( j==n ) /* only one resistance in the network connected to Vcc */
- {
- if (r[i][j] != 0.0)
- R1 += 1.0/r[i][j];
- }
- else
- if (r[i][j] != 0.0)
- R0 += 1.0/r[i][j];
- }
-
- /* now determine the voltage */
- R0 = 1.0/R0;
- R1 = 1.0/R1;
- Vout = (maxval - minval) * R0 / (R1 + R0) + minval;
-
- /* and convert it to a destination value */
- dst = (Vout < minval) ? minval : (Vout > maxval) ? maxval : Vout;
-
- w[i][n] = dst;
- }
- }
-
- /* calculate maximum outputs for all given networks */
- j = 0;
- max = 0.0;
- for( i = 0; i < networks_no; i++ )
- {
- double sum = 0.0;
-
- /* of n resistors */
- for( n = 0; n < rescount[i]; n++ )
- sum += w[i][n]; /* maximum output, ie when each resistance is connected to Vcc */
-
- max_out[i] = sum;
- if (max < sum)
- {
- max = sum;
- j = i;
- }
- }
-
-
- if (scaler < 0.0) /* use autoscale ? */
- /* calculate the output scaler according to the network with the greatest output */
- scale = ((double)maxval) / max_out[j];
- else /* use scaler provided on entry */
- scale = scaler;
-
- /* calculate scaled output and fill the output table(s)*/
- for(i = 0; i < networks_no;i++)
- {
- for (n = 0; n < rescount[i]; n++)
- {
- ws[i][n] = w[i][n]*scale; /* scale the result */
- (out[i])[n] = ws[i][n]; /* fill the output table */
- }
- }
-
- return (scale);
-
-}
diff --git a/jan/src/burn/devices/resnet.h b/jan/src/burn/devices/resnet.h
deleted file mode 100644
index a0dd796ab..000000000
--- a/jan/src/burn/devices/resnet.h
+++ /dev/null
@@ -1,10 +0,0 @@
-#define MAX_NETS 3
-#define MAX_RES_PER_NET 18
-
-#define combine_6_weights(tab,w0,w1,w2,w3,w4,w5) ((int)(((tab)[0]*(w0) + (tab)[1]*(w1) + (tab)[2]*(w2) + (tab)[3]*(w3) + (tab)[4]*(w4) + (tab)[5]*(w5)) + 0.5))
-#define combine_5_weights(tab,w0,w1,w2,w3,w4) ((int)(((tab)[0]*(w0) + (tab)[1]*(w1) + (tab)[2]*(w2) + (tab)[3]*(w3) + (tab)[4]*(w4)) + 0.5))
-#define combine_4_weights(tab,w0,w1,w2,w3) ((int)(((tab)[0]*(w0) + (tab)[1]*(w1) + (tab)[2]*(w2) + (tab)[3]*(w3)) + 0.5))
-#define combine_3_weights(tab,w0,w1,w2) ((int)(((tab)[0]*(w0) + (tab)[1]*(w1) + (tab)[2]*(w2)) + 0.5))
-#define combine_2_weights(tab,w0,w1) ((int)(((tab)[0]*(w0) + (tab)[1]*(w1)) + 0.5))
-
-double compute_resistor_weights(INT32 minval, INT32 maxval, double scaler, INT32 count_1, const INT32 * resistances_1, double * weights_1, INT32 pulldown_1, INT32 pullup_1, INT32 count_2, const INT32 * resistances_2, double * weights_2, INT32 pulldown_2, INT32 pullup_2, INT32 count_3, const INT32 * resistances_3, double * weights_3, INT32 pulldown_3, INT32 pullup_3);
diff --git a/jan/src/burn/devices/seibusnd.cpp b/jan/src/burn/devices/seibusnd.cpp
deleted file mode 100644
index ced2ab7e5..000000000
--- a/jan/src/burn/devices/seibusnd.cpp
+++ /dev/null
@@ -1,747 +0,0 @@
-//
-// FB Alpha Seibu sound hardware module
-//
-// Based on MAME sources by Bryan McPhail, R. Belmont
-//
-// Games using this hardware:
-//
-// Dead Angle 2x YM2203 + adpcm -- not implemented
-//
-// Dynamite Duke 1x YM3812 + 1x M6295
-// Toki 1x YM3812 + 1x M6295
-// Raiden 1x YM3812 + 1x M6295
-// Blood Brothers 1x YM3812 + 1x M6295
-// D-Con 1x YM3812 + 1x M6295
-// Legionnaire 1x YM3812 + 1x M6295
-//
-// SD Gundam PSK 1x YM2151 + 1x M6295
-// Raiden II 1x YM2151 + 2x M6295
-// Raiden DX 1x YM2151 + 2x M6295
-// Zero Team 1x YM2151 + 2x M6295
-//
-// Cross Shooter 1x YM2151 + ?
-// Cabal 1x YM2151 + adpcm
-//
-
-#include "burnint.h"
-#include "z80_intf.h"
-#include "burn_ym3812.h"
-#include "burn_ym2151.h"
-#include "burn_ym2203.h"
-#include "msm6295.h"
-#include "bitswap.h"
-
-static UINT8 main2sub[2];
-static UINT8 sub2main[2];
-static INT32 main2sub_pending;
-static INT32 sub2main_pending;
-static INT32 SeibuSoundBank;
-static INT32 irq1,irq2;
-
-UINT8 *SeibuZ80DecROM = NULL;
-UINT8 *SeibuZ80ROM = NULL;
-UINT8 *SeibuZ80RAM = NULL;
-INT32 seibu_coin_input;
-
-static INT32 seibu_sndcpu_frequency;
-static INT32 seibu_snd_type;
-static INT32 is_sdgndmps = 0;
-
-// ADPCM related
-static UINT16 adpcmcurrent[2];
-static UINT8 adpcmnibble[2];
-static UINT16 adpcmend[2];
-static UINT8 adpcmplaying[2];
-static INT32 adpcmfrequency[2];
-static INT32 adpcmsignal[2];
-static INT32 adpcmstep[2];
-
-static INT32 diff_lookup[49*16];
-static const INT32 index_shift[8] = { -1, -1, -1, -1, 2, 4, 6, 8 };
-
-static void adpcm_init(); // forward
-static void adpcm_reset(); // forward
-
-UINT8 *SeibuADPCMData[2];
-INT32 SeibuADPCMDataLen[2];
-
-enum
-{
- VECTOR_INIT,
- RST10_ASSERT,
- RST10_CLEAR,
- RST18_ASSERT,
- RST18_CLEAR
-};
-
-static void update_irq_lines(INT32 param)
-{
- switch(param)
- {
- case VECTOR_INIT:
- irq1 = irq2 = 0xff;
- break;
-
- case RST10_ASSERT:
- irq1 = 0xd7;
- break;
-
- case RST10_CLEAR:
- irq1 = 0xff;
- break;
-
- case RST18_ASSERT:
- irq2 = 0xdf;
- break;
-
- case RST18_CLEAR:
- irq2 = 0xff;
- break;
- }
-
- if ((irq1 & irq2) == 0xff) {
- ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
- } else {
- ZetSetVector(irq1 & irq2);
- ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
- }
-}
-
-UINT8 seibu_main_word_read(INT32 offset)
-{
-#if defined FBA_DEBUG
- if (!DebugDev_SeibuSndInitted) bprintf(PRINT_ERROR, _T("seibu_main_word_read called without init\n"));
-#endif
-
- offset = (offset >> 1) & 7;
-
- switch (offset)
- {
- case 2:
- case 3:
- return sub2main[offset-2];
- case 5:
- return main2sub_pending ? 1 : 0;
- default:
- return 0xff;
- }
-}
-
-void seibu_main_word_write(INT32 offset, UINT8 data)
-{
-#if defined FBA_DEBUG
- if (!DebugDev_SeibuSndInitted) bprintf(PRINT_ERROR, _T("seibu_main_word_write called without init\n"));
-#endif
-
- offset = (offset >> 1) & 7;
-
- switch (offset)
- {
- case 0:
- case 1:
- main2sub[offset] = data;
- break;
-
- case 4:
- //if (is_sdgndmps) update_irq_lines(RST10_ASSERT);
- update_irq_lines(RST18_ASSERT);
- break;
-
- case 6:
- sub2main_pending = 0;
- main2sub_pending = 1;
- break;
-
- default:
- break;
- }
-}
-
-void seibu_sound_mustb_write_word(INT32 /*offset*/, UINT16 data)
-{
-#if defined FBA_DEBUG
- if (!DebugDev_SeibuSndInitted) bprintf(PRINT_ERROR, _T("seibu_sound_mustb_write_word called without init\n"));
-#endif
-
- main2sub[0] = data & 0xff;
- main2sub[1] = data >> 8;
-
- update_irq_lines(RST18_ASSERT);
-}
-
-static void seibu_z80_bank(INT32 data)
-{
- SeibuSoundBank = data & 1;
-
- ZetMapArea(0x8000, 0xffff, 0, SeibuZ80ROM + 0x10000 + (data & 1) * 0x8000);
- ZetMapArea(0x8000, 0xffff, 2, SeibuZ80ROM + 0x10000 + (data & 1) * 0x8000);
-}
-
-void __fastcall seibu_sound_write(UINT16 address, UINT8 data)
-{
-#if defined FBA_DEBUG
- if (!DebugDev_SeibuSndInitted) bprintf(PRINT_ERROR, _T("seibu_sound_write called without init\n"));
-#endif
-
- switch (address)
- {
- case 0x4000:
- main2sub_pending = 0;
- sub2main_pending = 1;
- return;
-
- case 0x4001:
- if (!is_sdgndmps)
- update_irq_lines(VECTOR_INIT);
- return;
-
- case 0x4002:
- // rst10 ack (unused)
- return;
-
- case 0x4003:
- update_irq_lines(RST18_CLEAR);
- return;
-
- case 0x4005:
- adpcmcurrent[0] = data << 8;
- adpcmnibble[0] = 4;
- return;
-
- case 0x4006:
- adpcmend[0] = data << 8;
- return;
-
- case 0x4007:
- seibu_z80_bank(data);
- return;
-
- case 0x401a: // raiden2
- if ((seibu_snd_type & 8) == 0) {
- seibu_z80_bank(data);
- } else { // Cabal ADPCM
- if (data < 2) adpcmplaying[0] = data;
- }
- return;
-
- case 0x4008:
- switch (seibu_snd_type & 3)
- {
- case 0:
- BurnYM3812Write(0, 0, data);
- return;
-
- case 1:
- BurnYM2151SelectRegister(data);
- return;
-
- case 2:
- BurnYM2203Write(0, 0, data);
- return;
- }
- return;
-
- case 0x4009:
- switch (seibu_snd_type & 3)
- {
- case 0:
- BurnYM3812Write(0, 1, data);
- return;
-
- case 1:
- BurnYM2151WriteRegister(data);
- return;
-
- case 2:
- BurnYM2203Write(0, 1, data);
- return;
- }
- return;
-
- case 0x4018:
- case 0x4019:
- sub2main[address & 1] = data;
- return;
-
- case 0x401b:
- // coin counters
- return;
-
- case 0x6000:
- if ((seibu_snd_type & 8) == 0) MSM6295Command(0, data);
- return;
-
- case 0x6002:
- if (seibu_snd_type & 4) MSM6295Command(1, data);
- return;
-
- case 0x6005:
- adpcmcurrent[1] = data << 8;
- adpcmnibble[1] = 4;
- return;
-
- case 0x6006:
- adpcmend[1] = data << 8;
- return;
-
- // type 2
- case 0x6008:
- case 0x6009:
- if (seibu_snd_type == 2) BurnYM2203Write(1, address & 1, data);
- return;
-
- case 0x601a:
- if (data < 2) adpcmplaying[1] = data;
- return;
-
- }
-}
-
-UINT8 __fastcall seibu_sound_read(UINT16 address)
-{
-#if defined FBA_DEBUG
- if (!DebugDev_SeibuSndInitted) bprintf(PRINT_ERROR, _T("seibu_sound_read called without init\n"));
-#endif
-
- switch (address)
- {
- case 0x4008:
- switch (seibu_snd_type & 3)
- {
- case 0:
- return BurnYM3812Read(0, 0);
-
- case 1:
- return BurnYM2151ReadStatus();
-
- case 2:
- return BurnYM2203Read(0, 0);
- }
- return 0;
-
- case 0x4009: {
- if ((seibu_snd_type&3)==1) return BurnYM2151ReadStatus();
- if ((seibu_snd_type&3) < 2) return 0;
- return BurnYM2203Read(0, 1);
- }
-
- case 0x4010:
- case 0x4011:
- return main2sub[address & 1];
-
- case 0x4012:
- return sub2main_pending ? 1 : 0;
-
- case 0x4013:
- return seibu_coin_input;
-
- case 0x6000:
- return (((seibu_snd_type & 8) == 0) ? MSM6295ReadStatus(0) : 0);
-
- case 0x6002:
- if (seibu_snd_type & 4) return MSM6295ReadStatus(1);
- }
-
- return 0;
-}
-
-static UINT8 decrypt_data(INT32 a,INT32 src)
-{
- if ( BIT(a,9) & BIT(a,8)) src ^= 0x80;
- if ( BIT(a,11) & BIT(a,4) & BIT(a,1)) src ^= 0x40;
- if ( BIT(a,11) & ~BIT(a,8) & BIT(a,1)) src ^= 0x04;
- if ( BIT(a,13) & ~BIT(a,6) & BIT(a,4)) src ^= 0x02;
- if (~BIT(a,11) & BIT(a,9) & BIT(a,2)) src ^= 0x01;
-
- if (BIT(a,13) & BIT(a,4)) src = BITSWAP08(src,7,6,5,4,3,2,0,1);
- if (BIT(a, 8) & BIT(a,4)) src = BITSWAP08(src,7,6,5,4,2,3,1,0);
-
- return src;
-}
-
-static UINT8 decrypt_opcode(INT32 a,INT32 src)
-{
- if ( BIT(a,9) & BIT(a,8)) src ^= 0x80;
- if ( BIT(a,11) & BIT(a,4) & BIT(a,1)) src ^= 0x40;
- if (~BIT(a,13) & BIT(a,12)) src ^= 0x20;
- if (~BIT(a,6) & BIT(a,1)) src ^= 0x10;
- if (~BIT(a,12) & BIT(a,2)) src ^= 0x08;
- if ( BIT(a,11) & ~BIT(a,8) & BIT(a,1)) src ^= 0x04;
- if ( BIT(a,13) & ~BIT(a,6) & BIT(a,4)) src ^= 0x02;
- if (~BIT(a,11) & BIT(a,9) & BIT(a,2)) src ^= 0x01;
-
- if (BIT(a,13) & BIT(a,4)) src = BITSWAP08(src,7,6,5,4,3,2,0,1);
- if (BIT(a, 8) & BIT(a,4)) src = BITSWAP08(src,7,6,5,4,2,3,1,0);
- if (BIT(a,12) & BIT(a,9)) src = BITSWAP08(src,7,6,4,5,3,2,1,0);
- if (BIT(a,11) & ~BIT(a,6)) src = BITSWAP08(src,6,7,5,4,3,2,1,0);
-
- return src;
-}
-
-static void seibu_sound_decrypt(INT32 length)
-{
- for (INT32 i = 0; i < length; i++)
- {
- UINT8 src = SeibuZ80ROM[i];
-
- SeibuZ80ROM[i] = decrypt_data(i,src);
- SeibuZ80DecROM[i] = decrypt_opcode(i,src);
- }
-}
-
-static INT32 DrvSynchroniseStream(INT32 nSoundRate)
-{
- return (INT64)ZetTotalCycles() * nSoundRate / seibu_sndcpu_frequency;
-}
-
-static void DrvFMIRQHandler(INT32, INT32 nStatus)
-{
- if (nStatus) {
- update_irq_lines(RST10_ASSERT);
- } else {
- update_irq_lines(RST10_CLEAR);
- }
-}
-
-static void Drv2151FMIRQHandler(INT32 nStatus)
-{
- DrvFMIRQHandler(0, nStatus);
-}
-
-static double Drv2203GetTime()
-{
- return (double)ZetTotalCycles() / seibu_sndcpu_frequency;
-}
-
-void seibu_sound_reset()
-{
-#if defined FBA_DEBUG
- if (!DebugDev_SeibuSndInitted) bprintf(PRINT_ERROR, _T("seibu_sound_reset called without init\n"));
-#endif
-
- ZetOpen(0);
- ZetReset();
- update_irq_lines(VECTOR_INIT);
- seibu_z80_bank(0); // default banking. (fix for raiden2/dx coin-up)
- ZetClose();
-
- switch (seibu_snd_type & 3)
- {
- case 0:
- BurnYM3812Reset();
- break;
-
- case 1:
- BurnYM2151Reset();
- break;
-
- case 2:
- BurnYM2203Reset();
- break;
- }
-
- if ((seibu_snd_type & 8) == 0) MSM6295Reset(0);
- if (seibu_snd_type & 4) MSM6295Reset(1);
-
- memset (main2sub, 0, 2);
- memset (sub2main, 0, 2);
- main2sub_pending = 0;
- sub2main_pending = 0;
-
- seibu_coin_input = 0;
- //SeibuSoundBank = 0; // set w/ seibu_z80_bank();
-
- adpcm_reset();
-}
-
-void seibu_sound_init(INT32 type, INT32 len, INT32 freq0 /*cpu*/, INT32 freq1 /*ym*/, INT32 freq2 /*oki*/)
-{
- DebugDev_SeibuSndInitted = 1;
-
- seibu_snd_type = type;
-
- if (len && SeibuZ80DecROM != NULL) {
- seibu_sound_decrypt(len);
- } else {
- SeibuZ80DecROM = SeibuZ80ROM;
- }
-
- seibu_sndcpu_frequency = freq0;
-
- ZetInit(0);
- ZetOpen(0);
- ZetMapArea(0x0000, 0x1fff, 0, SeibuZ80ROM);
- ZetMapArea(0x0000, 0x1fff, 2, SeibuZ80DecROM, SeibuZ80ROM);
- ZetMapArea(0x2000, 0x27ff, 0, SeibuZ80RAM);
- ZetMapArea(0x2000, 0x27ff, 1, SeibuZ80RAM);
- ZetMapArea(0x2000, 0x27ff, 2, SeibuZ80RAM);
- ZetSetWriteHandler(seibu_sound_write);
- ZetSetReadHandler(seibu_sound_read);
- ZetClose();
-
- switch (seibu_snd_type & 3)
- {
- case 0:
- BurnYM3812Init(1, freq1, &DrvFMIRQHandler, &DrvSynchroniseStream, 0);
- BurnTimerAttachZetYM3812(freq0);
- break;
-
- case 1:
- BurnYM2151Init(freq1);
- BurnYM2151SetIrqHandler(&Drv2151FMIRQHandler);
- BurnYM2151SetAllRoutes(0.50, BURN_SND_ROUTE_BOTH);
- break;
-
- case 2:
- BurnYM2203Init(2, freq1, DrvFMIRQHandler, DrvSynchroniseStream, Drv2203GetTime, 0);
- BurnTimerAttachZet(freq0);
- break;
- }
-
- if ((seibu_snd_type & 8) == 0) {
- MSM6295Init(0, freq2, 1);
- MSM6295SetRoute(0, 0.40, BURN_SND_ROUTE_BOTH);
-
- if (seibu_snd_type & 4) {
- MSM6295Init(1, freq2, 1);
- MSM6295SetRoute(1, 0.40, BURN_SND_ROUTE_BOTH);
- }
- } else {
- adpcmfrequency[0] = freq2;
- adpcmfrequency[1] = freq2;
- adpcm_init();
- }
-
- // init kludge for sdgndmps
- if (!strcmp(BurnDrvGetTextA(DRV_NAME), "sdgndmps")) {
- is_sdgndmps = 1;
- }
-}
-
-void seibu_sound_exit()
-{
-#if defined FBA_DEBUG
- if (!DebugDev_SeibuSndInitted) bprintf(PRINT_ERROR, _T("seibu_sound_exit called without init\n"));
-#endif
-
- if (!DebugDev_SeibuSndInitted) return;
-
- switch (seibu_snd_type & 3)
- {
- case 0:
- BurnYM3812Exit();
- break;
-
- case 1:
- BurnYM2151Exit();
- break;
-
- case 2:
- BurnYM2203Exit();
- break;
- }
-
- ZetExit();
-
- if ((seibu_snd_type & 8) == 0) MSM6295Exit(0);
- if (seibu_snd_type & 4) MSM6295Exit(1);
-
- MSM6295ROM = NULL;
-
- SeibuZ80DecROM = NULL;
- SeibuZ80ROM = NULL;
- SeibuZ80RAM = NULL;
- seibu_sndcpu_frequency = 0;
- is_sdgndmps = 0;
-
- DebugDev_SeibuSndInitted = 0;
-}
-
-static void adpcm_init()
-{
- /* nibble to bit map */
- static const INT32 nbl2bit[16][4] =
- {
- { 1, 0, 0, 0}, { 1, 0, 0, 1}, { 1, 0, 1, 0}, { 1, 0, 1, 1},
- { 1, 1, 0, 0}, { 1, 1, 0, 1}, { 1, 1, 1, 0}, { 1, 1, 1, 1},
- {-1, 0, 0, 0}, {-1, 0, 0, 1}, {-1, 0, 1, 0}, {-1, 0, 1, 1},
- {-1, 1, 0, 0}, {-1, 1, 0, 1}, {-1, 1, 1, 0}, {-1, 1, 1, 1}
- };
-
- INT32 step, nib;
-
- /* loop over all possible steps */
- for (step = 0; step <= 48; step++)
- {
- /* compute the step value */
- INT32 stepval = (INT32)(floor (16.0 * pow (11.0 / 10.0, (double)step)));
-
- /* loop over all nibbles and compute the difference */
- for (nib = 0; nib < 16; nib++)
- {
- diff_lookup[step*16 + nib] = nbl2bit[nib][0] *
- (stepval * nbl2bit[nib][1] +
- stepval/2 * nbl2bit[nib][2] +
- stepval/4 * nbl2bit[nib][3] +
- stepval/8);
- }
- }
-
- adpcm_reset();
-}
-
-static void adpcm_reset()
-{
- for (INT32 i = 0; i < 2; i++) {
- adpcmcurrent[i] = 0;
- adpcmnibble[i] = 0;
- adpcmend[i] = 0;
- adpcmplaying[i] = 0;
- adpcmsignal[i] = -2;
- adpcmstep[i] = 0;
- }
-}
-
-static INT32 adpcm_clock(INT32 chip, UINT8 nibble)
-{
- adpcmsignal[chip] += diff_lookup[adpcmstep[chip] * 16 + (nibble & 15)];
-
- if (adpcmsignal[chip] > 2047)
- adpcmsignal[chip] = 2047;
- else if (adpcmsignal[chip] < -2048)
- adpcmsignal[chip] = -2048;
-
- adpcmstep[chip] += index_shift[nibble & 7];
- if (adpcmstep[chip] > 48)
- adpcmstep[chip] = 48;
- else if (adpcmstep[chip] < 0)
- adpcmstep[chip] = 0;
-
- return adpcmsignal[chip];
-}
-
-static void adpcm_update(INT32 chip, INT16 *pbuf, INT32 samples)
-{
- UINT8 *adpcmrom = SeibuADPCMData[chip];
- INT32 val, samp, i;
-
- while (adpcmplaying[chip] && samples > 0)
- {
- val = (adpcmrom[adpcmcurrent[chip]] >> adpcmnibble[chip]) & 0xf;
-
- adpcmnibble[chip] ^= 4;
- if (adpcmnibble[chip] == 4)
- {
- adpcmcurrent[chip]++;
- if (adpcmcurrent[chip] >= adpcmend[chip])
- adpcmplaying[chip] = 0;
- }
-
- samp = ((adpcm_clock(chip, val) << 4));
-
- for (i = 0; (i < 6) && (samples > 0); i++) { // slow it down
- *pbuf = BURN_SND_CLIP(*pbuf + samp);
- pbuf++;
- *pbuf = BURN_SND_CLIP(*pbuf + samp);
- pbuf++;
- samples--;
- }
- }
-}
-
-void seibu_sound_update(INT16 *pbuf, INT32 nLen)
-{
-#if defined FBA_DEBUG
- if (!DebugDev_SeibuSndInitted) bprintf(PRINT_ERROR, _T("seibu_sound_update called without init\n"));
-#endif
-
- switch (seibu_snd_type & 3)
- {
- case 0:
- BurnYM3812Update(pbuf, nLen);
- break;
-
- case 1:
- BurnYM2151Render(pbuf, nLen);
- break;
-
- case 2:
- BurnYM2203Update(pbuf, nLen);
- break;
- }
-
- if ((seibu_snd_type & 8) == 0) {
- MSM6295Render(0, pbuf, nLen);
-
- if (seibu_snd_type & 4)
- MSM6295Render(1, pbuf, nLen);
- }
-}
-
-void seibu_sound_update_cabal(INT16 *pbuf, INT32 nLen)
-{
-#if defined FBA_DEBUG
- if (!DebugDev_SeibuSndInitted) bprintf(PRINT_ERROR, _T("seibu_sound_update called without init\n"));
-#endif
-
- adpcm_update(0, pbuf, nLen);
- adpcm_update(1, pbuf, nLen);
-}
-
-void seibu_sound_scan(INT32 *pnMin, INT32 nAction)
-{
-#if defined FBA_DEBUG
- if (!DebugDev_SeibuSndInitted) bprintf(PRINT_ERROR, _T("seibu_sound_scan called without init\n"));
-#endif
-
- if (nAction & ACB_VOLATILE)
- {
- ZetScan(nAction);
-
- ZetOpen(0);
- switch (seibu_snd_type & 3)
- {
- case 0:
- BurnYM3812Scan(nAction, pnMin);
- break;
-
- case 1:
- BurnYM2151Scan(nAction);
- break;
-
- case 2:
- BurnYM2203Scan(nAction, pnMin);
- break;
- }
- ZetClose();
-
- if ((seibu_snd_type & 8) == 0) {
- MSM6295Scan(0, nAction);
- if (seibu_snd_type & 4) {
- MSM6295Scan(1, nAction);
- }
- }
-
- SCAN_VAR(main2sub[0]);
- SCAN_VAR(main2sub[1]);
- SCAN_VAR(sub2main[0]);
- SCAN_VAR(sub2main[1]);
- SCAN_VAR(main2sub_pending);
- SCAN_VAR(sub2main_pending);
- SCAN_VAR(SeibuSoundBank);
- SCAN_VAR(irq1);
- SCAN_VAR(irq2);
-
- SCAN_VAR(adpcmcurrent);
- SCAN_VAR(adpcmnibble);
- SCAN_VAR(adpcmend);
- SCAN_VAR(adpcmplaying);
- }
-
- if (nAction & ACB_WRITE)
- {
- ZetOpen(0);
- seibu_z80_bank(SeibuSoundBank);
- ZetClose();
- }
-}
diff --git a/jan/src/burn/devices/seibusnd.h b/jan/src/burn/devices/seibusnd.h
deleted file mode 100644
index 95f377abf..000000000
--- a/jan/src/burn/devices/seibusnd.h
+++ /dev/null
@@ -1,40 +0,0 @@
-#include "burn_ym3812.h"
-#include "burn_ym2151.h"
-#include "burn_ym2203.h"
-#include "msm6295.h"
-
-extern UINT8 *SeibuZ80DecROM;
-extern UINT8 *SeibuZ80ROM;
-extern UINT8 *SeibuZ80RAM;
-
-extern UINT8 *SeibuADPCMData[2];
-extern INT32 SeibuADPCMDataLen[2];
-
-extern INT32 seibu_coin_input;
-
-unsigned char seibu_main_word_read(INT32 offset);
-void seibu_main_word_write(INT32 offset, UINT8 data);
-void seibu_sound_mustb_write_word(INT32 offset, UINT16 data);
-
-void seibu_sound_reset();
-
-void seibu_sound_update(INT16 *pbuf, INT32 nLen);
-void seibu_sound_update_cabal(INT16 *pbuf, INT32 nLen);
-
-/*
- type & 3
-
- Type 0 - YM3812
- Type 1 - YM2151
- Type 2 - YM2203
-
- type & 8 - adpcm (disable oki6295)
-
- otherwise add a single oki6295
- add 4 to init a second oki6295
-*/
-
-void seibu_sound_init(INT32 type, INT32 encrypted_len, INT32 freq0 /*cpu*/, INT32 freq1 /*ym*/, INT32 freq2 /*oki*/);
-void seibu_sound_exit();
-
-void seibu_sound_scan(INT32 *pnMin, INT32 nAction);
diff --git a/jan/src/burn/devices/sknsspr.cpp b/jan/src/burn/devices/sknsspr.cpp
deleted file mode 100644
index bdfba5b63..000000000
--- a/jan/src/burn/devices/sknsspr.cpp
+++ /dev/null
@@ -1,558 +0,0 @@
-/* Super Kaneko Nova System Sprites
-
- "CG24173 6186" & "CG24143 4181" (always used as a pair?)
-
- - used by suprnova.c
- galpani3.c
- jchan.c
-
- - ToDo:
- Get rid of sprite position kludges
- Fix zooming precision/rounding (most noticeable on jchan backgrounds)
-
- Ported from MAME 0.144u4
- based on MAME sources by David Haywood
-*/
-
-#include "tiles_generic.h"
-
-#define cliprect_min_y 0
-#define cliprect_max_y (nScreenHeight-1)
-#define cliprect_min_x 0
-#define cliprect_max_x (nScreenWidth - 1)
-
-#define SUPRNOVA_DECODE_BUFFER_SIZE 0x2000
-
-static INT32 sprite_kludge_x, sprite_kludge_y;
-static UINT8 decodebuffer[0x2000];
-
-static INT32 skns_rle_decode ( INT32 romoffset, INT32 size, UINT8*gfx_source, INT32 gfx_length )
-{
- UINT8 *src = gfx_source;
- INT32 srcsize = gfx_length;
- UINT8 *dst = decodebuffer;
- INT32 decodeoffset = 0;
-
- while(size>0) {
- UINT8 code = src[(romoffset++)%srcsize];
- size -= (code & 0x7f) + 1;
- if(code & 0x80) { /* (code & 0x7f) normal values will follow */
- code &= 0x7f;
- do {
- dst[(decodeoffset++)%SUPRNOVA_DECODE_BUFFER_SIZE] = src[(romoffset++)%srcsize];
- code--;
- } while(code != 0xff);
- } else { /* repeat next value (code & 0x7f) times */
- UINT8 val = src[(romoffset++)%srcsize];
- do {
- dst[(decodeoffset++)%SUPRNOVA_DECODE_BUFFER_SIZE] = val;
- code--;
- } while(code != 0xff);
- }
- }
- return &src[romoffset%srcsize]-gfx_source;
-}
-
-void skns_sprite_kludge(INT32 x, INT32 y)
-{
-#if defined FBA_DEBUG
- if (!DebugDev_SknsSprInitted) bprintf(PRINT_ERROR, _T("skns_sprite_kludge called without init\n"));
-#endif
-
- sprite_kludge_x = x;
- sprite_kludge_y = y;
-}
-
-/* Zooming blitter, zoom is by way of both source and destination offsets */
-/* We are working in .6 fixed point if you hadn't guessed */
-
-#define z_decls(step) \
- UINT16 zxs = 0x40-(zx_m>>2); \
- UINT16 zxd = 0x40-(zx_s>>2); \
- UINT16 zys = 0x40-(zy_m>>2); \
- UINT16 zyd = 0x40-(zy_s>>2); \
- INT32 xs, ys, xd, yd, old, old2; \
- INT32 step_spr = step; \
- INT32 bxs = 0, bys = 0; \
- INT32 clip_min_x = cliprect_min_x<<6; \
- INT32 clip_max_x = (cliprect_max_x+1)<<6; \
- INT32 clip_min_y = cliprect_min_y<<6; \
- INT32 clip_max_y = (cliprect_max_y+1)<<6; \
- sx <<= 6; \
- sy <<= 6; \
- x <<= 6; \
- y <<= 6;
-
-#define z_clamp_x_min() \
- if(x < clip_min_x) { \
- do { \
- bxs += zxs; \
- x += zxd; \
- } while(x < clip_min_x); \
- }
-
-#define z_clamp_x_max() \
- if(x > clip_max_x) { \
- do { \
- bxs += zxs; \
- x -= zxd; \
- } while(x > clip_max_x); \
- }
-
-#define z_clamp_y_min() \
- if(y < clip_min_y) { \
- do { \
- bys += zys; \
- y += zyd; \
- } while(y < clip_min_y); \
- src += (bys>>6)*step_spr; \
- }
-
-#define z_clamp_y_max() \
- if(y > clip_max_y) { \
- do { \
- bys += zys; \
- y -= zyd; \
- } while(y > clip_max_y); \
- src += (bys>>6)*step_spr; \
- }
-
-#define z_loop_x() \
- xs = bxs; \
- xd = x; \
- while(xs < sx && xd <= clip_max_x)
-
-#define z_loop_x_flip() \
- xs = bxs; \
- xd = x; \
- while(xs < sx && xd >= clip_min_x)
-
-#define z_loop_y() \
- ys = bys; \
- yd = y; \
- while(ys < sy && yd <= clip_max_y)
-
-#define z_loop_y_flip() \
- ys = bys; \
- yd = y; \
- while(ys < sy && yd >= clip_min_y)
-
-#define z_draw_pixel() \
- UINT8 val = src[xs >> 6]; \
- if(val) \
- if ((yd>>6) < nScreenHeight && (xd>>6) < nScreenWidth) \
- bitmap[(yd>>6) * nScreenWidth + (xd>>6)] = val + colour;
-
-#define z_x_dst(op) \
- old = xd; \
- do { \
- xs += zxs; \
- xd op zxd; \
- } while(!((xd^old) & ~0x3f));
-
-#define z_y_dst(op) \
- old = yd; \
- old2 = ys; \
- do { \
- ys += zys; \
- yd op zyd; \
- } while(!((yd^old) & ~0x3f)); \
- while((ys^old2) & ~0x3f) { \
- src += step_spr; \
- old2 += 0x40; \
- }
-
-static void blit_nf_z(UINT16 *bitmap, const UINT8 *src, INT32 x, INT32 y, INT32 sx, INT32 sy, UINT16 zx_m, UINT16 zx_s, UINT16 zy_m, UINT16 zy_s, INT32 colour)
-{
- z_decls(sx);
- z_clamp_x_min();
- z_clamp_y_min();
- z_loop_y() {
- z_loop_x() {
- z_draw_pixel();
- z_x_dst(+=);
- }
- z_y_dst(+=);
- }
-}
-
-static void blit_fy_z(UINT16 *bitmap, const UINT8 *src, INT32 x, INT32 y, INT32 sx, INT32 sy, UINT16 zx_m, UINT16 zx_s, UINT16 zy_m, UINT16 zy_s, INT32 colour)
-{
- z_decls(sx);
- z_clamp_x_min();
- z_clamp_y_max();
- z_loop_y_flip() {
- z_loop_x() {
- z_draw_pixel();
- z_x_dst(+=);
- }
- z_y_dst(-=);
- }
-}
-
-static void blit_fx_z(UINT16 *bitmap, const UINT8 *src, INT32 x, INT32 y, INT32 sx, INT32 sy, UINT16 zx_m, UINT16 zx_s, UINT16 zy_m, UINT16 zy_s, INT32 colour)
-{
- z_decls(sx);
- z_clamp_x_max();
- z_clamp_y_min();
- z_loop_y() {
- z_loop_x_flip() {
- z_draw_pixel();
- z_x_dst(-=);
- }
- z_y_dst(+=);
- }
-}
-
-static void blit_fxy_z(UINT16 *bitmap, const UINT8 *src, INT32 x, INT32 y, INT32 sx, INT32 sy, UINT16 zx_m, UINT16 zx_s, UINT16 zy_m, UINT16 zy_s, INT32 colour)
-{
- z_decls(sx);
- z_clamp_x_max();
- z_clamp_y_max();
- z_loop_y_flip() {
- z_loop_x_flip() {
- z_draw_pixel();
- z_x_dst(-=);
- }
- z_y_dst(-=);
- }
-}
-
-static void (*const blit_z[4])(UINT16 *bitmap, const UINT8 *src, INT32 x, INT32 y, INT32 sx, INT32 sy, UINT16 zx_m, UINT16 zx_s, UINT16 zy_m, UINT16 zy_s, INT32 colour) = {
- blit_nf_z,
- blit_fy_z,
- blit_fx_z,
- blit_fxy_z,
-};
-
-// disable_priority is a hack to make jchan drawing a bit quicker (rather than moving the sprites around different bitmaps and adding colors
-void skns_draw_sprites(UINT16 *bitmap, UINT32* spriteram_source, INT32 spriteram_size, UINT8* gfx_source, INT32 gfx_length, UINT32* sprite_regs, INT32 disable_priority)
-{
-#if defined FBA_DEBUG
- if (!DebugDev_SknsSprInitted) bprintf(PRINT_ERROR, _T("skns_draw_sprites called without init\n"));
-#endif
-
- /*- SPR RAM Format -**
-
- 16 bytes per sprite
-
- 0x00 --ss --SS z--- ---- jjjg g-ff ppcc cccc
-
- s = y size
- S = x size
- j = joint
- g = group sprite is part of (if groups are enabled)
- f = flip
- p = priority
- c = palette
-
- 0x04 ---- -aaa aaaa aaaa aaaa aaaa aaaa aaaa
-
- a = ROM address of sprite data
-
- 0x08 ZZZZ ZZ-- zzzz zz-- xxxx xxxx xx-- ----
-
- Z = horizontal zoom table
- z = horizontal zoom subtable
- x = x position
-
- 0x0C ZZZZ ZZ-- zzzz zz-- yyyy yyyy yy-- ----
-
- Z = vertical zoom table
- z = vertical zoom subtable
- x = y position
-
- **- End of Comments -*/
-
- UINT32 *source = spriteram_source;
- UINT32 *finish = source + spriteram_size/4;
-
- INT32 group_x_offset[4];
- INT32 group_y_offset[4];
- INT32 group_enable;
- INT32 group_number;
- INT32 sprite_flip;
- INT32 sprite_x_scroll;
- INT32 sprite_y_scroll;
- INT32 disabled = sprite_regs[0x04/4] & 0x08; // RWR1
- INT32 xsize,ysize, size, xpos=0,ypos=0, pri=0, romoffset, colour=0, xflip,yflip, joint;
- INT32 sx,sy;
- INT32 endromoffs=0, gfxlen;
- INT32 grow;
- UINT16 zoomx_m, zoomx_s, zoomy_m, zoomy_s;
-
- if ((!disabled)){
-
- group_enable = (BURN_ENDIAN_SWAP_INT32(sprite_regs[0x00/4]) & 0x0040) >> 6; // RWR0
-
- /* Sengekis uses global flip */
- sprite_flip = (BURN_ENDIAN_SWAP_INT32(sprite_regs[0x04/4]) & 0x03); // RWR1
-
- sprite_y_scroll = ((BURN_ENDIAN_SWAP_INT32(sprite_regs[0x08/4]) & 0x7fc0) >> 6); // RWR2
- sprite_x_scroll = ((BURN_ENDIAN_SWAP_INT32(sprite_regs[0x10/4]) & 0x7fc0) >> 6); // RWR4
- if (sprite_y_scroll&0x100) sprite_y_scroll -= 0x200; // Signed
- if (sprite_x_scroll&0x100) sprite_x_scroll -= 0x200; // Signed
-
- group_x_offset[0] = (BURN_ENDIAN_SWAP_INT32(sprite_regs[0x18/4]) & 0xffc0) >> 6; // RWR6
- group_y_offset[0] = (BURN_ENDIAN_SWAP_INT32(sprite_regs[0x1c/4]) & 0xffc0) >> 6; // RWR7
- if (group_x_offset[0]&0x200) group_x_offset[0] -= 0x400; // Signed
- if (group_y_offset[0]&0x200) group_y_offset[0] -= 0x400; // Signed
-
- group_x_offset[1] = (BURN_ENDIAN_SWAP_INT32(sprite_regs[0x20/4]) & 0xffc0) >> 6; // RWR8
- group_y_offset[1] = (BURN_ENDIAN_SWAP_INT32(sprite_regs[0x24/4]) & 0xffc0) >> 6; // RWR9
- if (group_x_offset[1]&0x200) group_x_offset[1] -= 0x400; // Signed
- if (group_y_offset[1]&0x200) group_y_offset[1] -= 0x400; // Signed
-
- group_x_offset[2] = (BURN_ENDIAN_SWAP_INT32(sprite_regs[0x28/4]) & 0xffc0) >> 6; // RWR10
- group_y_offset[2] = (BURN_ENDIAN_SWAP_INT32(sprite_regs[0x2c/4]) & 0xffc0) >> 6; // RWR11
- if (group_x_offset[2]&0x200) group_x_offset[2] -= 0x400; // Signed
- if (group_y_offset[2]&0x200) group_y_offset[2] -= 0x400; // Signed
-
- group_x_offset[3] = (BURN_ENDIAN_SWAP_INT32(sprite_regs[0x30/4]) & 0xffc0) >> 6; // RWR12
- group_y_offset[3] = (BURN_ENDIAN_SWAP_INT32(sprite_regs[0x34/4]) & 0xffc0) >> 6; // RWR13
- if (group_x_offset[3]&0x200) group_x_offset[3] -= 0x400; // Signed
- if (group_y_offset[3]&0x200) group_y_offset[3] -= 0x400; // Signed
-
- /* Seems that sprites are consistently off by a fixed no. of pixels in different games
- (Patterns emerge through Manufacturer/Date/Orientation) */
- sprite_x_scroll += sprite_kludge_x;
- sprite_y_scroll += sprite_kludge_y;
-
-
- gfxlen = gfx_length;
- while( source> 9;
- yflip = (BURN_ENDIAN_SWAP_INT32(source[0]) & 0x00000100) >> 8;
-
- ysize = (BURN_ENDIAN_SWAP_INT32(source[0]) & 0x30000000) >> 28;
- xsize = (BURN_ENDIAN_SWAP_INT32(source[0]) & 0x03000000) >> 24;
- xsize ++;
- ysize ++;
-
- xsize *= 16;
- ysize *= 16;
-
- size = xsize * ysize;
-
- joint = (BURN_ENDIAN_SWAP_INT32(source[0]) & 0x0000e000) >> 13;
-
- if (!(joint & 1))
- {
- xpos = (BURN_ENDIAN_SWAP_INT32(source[2]) & 0x0000ffc0) >> 6;
- ypos = (BURN_ENDIAN_SWAP_INT32(source[3]) & 0x0000ffc0) >> 6;
-
- xpos += sprite_x_scroll; // Global offset
- ypos += sprite_y_scroll;
-
- if (group_enable)
- {
- group_number = (BURN_ENDIAN_SWAP_INT32(source[0]) & 0x00001800) >> 11;
-
- /* the group positioning doesn't seem to be working as i'd expect,
- if I apply the x position the cursor on galpani4 ends up moving
- from the correct position to too far right, also the y offset
- seems to cause the position to be off by one in galpans2 even if
- it fixes the position in galpani4?
-
- even if I take into account the global sprite scroll registers
- it isn't right
-
- global offset kludged using game specific offset -pjp */
-
- xpos += group_x_offset[group_number];
- ypos += group_y_offset[group_number];
- }
- }
- else
- {
- xpos += (BURN_ENDIAN_SWAP_INT32(source[2]) & 0x0000ffc0) >> 6;
- ypos += (BURN_ENDIAN_SWAP_INT32(source[3]) & 0x0000ffc0) >> 6;
- }
-
- if (xpos > 0x1ff) xpos -= 0x400;
- if (ypos > 0x1ff) ypos -= 0x400;
-
- /* Local sprite offset (for taking flip into account and drawing offset) */
- sx = xpos;
- sy = ypos;
-
- /* Global Sprite Flip (sengekis) */
- if (sprite_flip&2)
- {
- xflip ^= 1;
- sx = nScreenWidth - sx;
- }
- if (sprite_flip&1)
- {
- yflip ^= 1;
- sy = nScreenHeight - sy;
- }
-
- /* Palette linking */
- if (!(joint & 2))
- {
- colour = (BURN_ENDIAN_SWAP_INT32(source[0]) & 0x0000003f) >> 0;
- }
-
- /* Priority and Tile linking */
- if (!(joint & 4))
- {
- romoffset = (BURN_ENDIAN_SWAP_INT32(source[1]) & 0x07ffffff) >> 0;
- pri = (BURN_ENDIAN_SWAP_INT32(source[0]) & 0x000000c0) >> 6;
- } else {
- romoffset = endromoffs;
- }
-
- grow = (BURN_ENDIAN_SWAP_INT32(source[0])>>23) & 1;
-
- if (!grow)
- {
- zoomx_m = (BURN_ENDIAN_SWAP_INT32(source[2]) >> 24)&0x00fc;
- zoomx_s = (BURN_ENDIAN_SWAP_INT32(source[2]) >> 16)&0x00fc;
- zoomy_m = (BURN_ENDIAN_SWAP_INT32(source[3]) >> 24)&0x00fc;
- zoomy_s = (BURN_ENDIAN_SWAP_INT32(source[3]) >> 16)&0x00fc;
- }
- else
- {
- // sengekis uses this on sprites which are shrinking as they head towards the ground
- // it's also used on the input test of Gals Panic S2
- //
- // it appears to offer a higher precision 'shrink' mode (although I'm not entirely
- // convinced this implementation is correct because we simply end up ignoring
- // part of the data)
- zoomx_m = 0;
- zoomx_s = (BURN_ENDIAN_SWAP_INT32(source[2]) >> 24)&0x00fc;
- zoomy_m = 0;
- zoomy_s = (BURN_ENDIAN_SWAP_INT32(source[3]) >> 24)&0x00fc;
-
-
- }
-
- romoffset &= gfxlen-1;
-
- endromoffs = skns_rle_decode ( romoffset, size, gfx_source, gfx_length );
-
- // in Cyvern
-
- // train in tunnel pri = 0x00
- // nothing? = 0x01
- // players etc. pri = 0x02
- // pickups etc. pri = 0x03
-
- {
- INT32 NewColour = (colour<<8);
- if (disable_priority) {
- NewColour += disable_priority; // jchan hack
- } else {
- NewColour += (pri << 14);
- }
-
- if(zoomx_m || zoomx_s || zoomy_m || zoomy_s)
- {
- blit_z[ (xflip<<1) | yflip ](bitmap, decodebuffer, sx, sy, xsize, ysize, zoomx_m, zoomx_s, zoomy_m, zoomy_s, NewColour);
- }
- else
- {
- if (!xflip && !yflip) {
- INT32 xx,yy;
-
- for (xx = 0; xx= cliprect_min_x))
- {
- for (yy = 0; yy= cliprect_min_y))
- {
- INT32 pix;
- pix = decodebuffer[xsize*yy+xx];
- if (pix)
- bitmap[(sy+yy) * nScreenWidth + (sx+xx)] = pix+ NewColour; // change later
- }
- }
- }
- }
- } else if (!xflip && yflip) {
- INT32 xx,yy;
- sy -= ysize;
-
- for (xx = 0; xx= cliprect_min_x))
- {
- for (yy = 0; yy= cliprect_min_y))
- {
- INT32 pix;
- pix = decodebuffer[xsize*yy+xx];
- if (pix)
- bitmap[(sy+(ysize-1-yy)) * nScreenWidth + (sx+xx)] = pix+ NewColour; // change later
- }
- }
- }
- }
- } else if (xflip && !yflip) {
- INT32 xx,yy;
- sx -= xsize;
-
- for (xx = 0; xx= cliprect_min_x))
- {
- for (yy = 0; yy= cliprect_min_y))
- {
- INT32 pix;
- pix = decodebuffer[xsize*yy+xx];
- if (pix)
- bitmap[(sy+yy) * nScreenWidth + (sx+(xsize-1-xx))] = pix+ NewColour; // change later
- }
- }
- }
- }
- } else if (xflip && yflip) {
- INT32 xx,yy;
- sx -= xsize;
- sy -= ysize;
-
- for (xx = 0; xx= cliprect_min_x))
- {
- for (yy = 0; yy= cliprect_min_y))
- {
- INT32 pix;
- pix = decodebuffer[xsize*yy+xx];
- if (pix)
- bitmap[(sy+(ysize-1-yy)) * nScreenWidth + (sx+(xsize-1-xx))] = pix+ NewColour; // change later
- }
- }
- }
- }
- }
- }
- }
-
- source+=4;
- }
- }
-}
-
-void skns_init()
-{
- DebugDev_SknsSprInitted = 1;
-}
-
-void skns_exit()
-{
-#if defined FBA_DEBUG
- if (!DebugDev_SknsSprInitted) bprintf(PRINT_ERROR, _T("skns_exit called without init\n"));
-#endif
-
- DebugDev_SknsSprInitted = 0;
-}
diff --git a/jan/src/burn/devices/sknsspr.h b/jan/src/burn/devices/sknsspr.h
deleted file mode 100644
index 1f90f862a..000000000
--- a/jan/src/burn/devices/sknsspr.h
+++ /dev/null
@@ -1,4 +0,0 @@
-void skns_sprite_kludge(INT32 x, INT32 y);
-void skns_draw_sprites(UINT16 *bitmap, UINT32* spriteram_source, INT32 spriteram_size, UINT8* gfx_source, INT32 gfx_length, UINT32* sprite_regs, INT32 disable_priority);
-void skns_init();
-void skns_exit();
diff --git a/jan/src/burn/devices/slapstic.cpp b/jan/src/burn/devices/slapstic.cpp
deleted file mode 100644
index 024ebb516..000000000
--- a/jan/src/burn/devices/slapstic.cpp
+++ /dev/null
@@ -1,1136 +0,0 @@
-/*************************************************************************
-
- Atari Slapstic decoding helper
-
-**************************************************************************
-
- Atari Slapstic FAQ
- Version 1.12
- by Aaron Giles and Frank Palazzolo
- 9/12/2002
-
-
- What is a slapstic?
-
- The slapstic was a security chip made by Atari, which was used for
- bank switching and security in several coin-operated video games from
- 1984 through 1990.
-
-
- What is a SLOOP?
-
- The SLOOP (or "SLOOPstic") is a follow-on chip to the slapstic. It
- provides a similar type of security, but is programmed onto a GAL6001,
- rather than a custom part. It was created because Atari was running
- out of slapstics to use in their games, and the original masks for the
- slapstic had been lost by the company that manufactured them. A separate
- FAQ for this chip is planned for the future.
-
-
- How do I identify a slapstic chip on my board?
-
- Look for a small, socketed 20-pin DIP on the board. The number on
- the chip will be 137412-1xx.
-
-
- Are slapstic chips interchangeable?
-
- Sadly, no. They were designed to prevent operators from burning
- new EPROMs and "upgrading" their PCBs to a new game without buying
- the necessary kits from Atari. For example, the five System 1 games
- each used a different slapstic, so that you couldn't take, say,
- a Marble Madness machine, burn new EPROMs, and convert it into
- an Indiana Jones .
-
- That said, however, there are two pairs of the slapstics that appear
- to be functionally identical, despite the fact that they have
- different part numbers:
-
- 137412-103 (Marble Madness ) appears to be functionally identical
- to 137412-110 (Road Blasters & APB )
-
- 137412-106 (Gauntlet II ) appears to be functionally identical
- to 137412-109 (Championship Sprint )
-
- Note, however, that I have not tried these swaps to confirm that they
- work. Your mileage may vary.
-
-
- How many different slapstics are there?
-
- All told, a total of 13 actual slapstics have been found. However,
- there are gaps in the numbering which indicate that more may exist.
-
-
- Do all slapstics work the same?
-
- In general, yes. However, matters are complicated by the existence
- of multiple revisions of the chip design:
-
- SLAPSTIC Part #137412-101 through 137412-110
- SLAPSTIC-2 Part #137412-111 through 137412-118
-
- In the simplest case, both revs act the same. However, they differ
- in how the more complex modes of operation are used.
-
-
- How is the slapstic connected to the game?
-
- The slapstic generally sits between the CPU's address bus and one
- of the program ROMs. Here's a pinout:
-
- A9 1 +-v-+ 20 A8
- A10 2 | | 19 A7
- A11 3 | | 18 A6
- A12 4 | | 17 A5
- A13 5 | | 16 A4
- /CS 6 | | 15 A3
- CLK 7 | | 14 A2
- VCC 8 | | 13 A1
- BS1 9 | | 12 A0
- BS0 10 +---+ 11 GND
-
- A0-A13 are the address lines from the CPU. CLK and /CS together
- trigger a state change. BS0 and BS1 are the bank select outputs,
- which usually connect to the protected program ROM in place of
- two address lines (traditionally A12 and A13).
-
- Most slapstics were used on 68000 or T-11 based games, which had
- a 16-bit address bus. This meant that A0-A13 on the slapstic were
- generally connected to A1-A14 on the CPU. However, two 8-bit
- games (Tetris and Empire Strikes Back) used the slapstic as well.
- This slapstic (#101) has a slightly different pinout, though it
- operates similarly to the others in its class.
-
- A8 1 +-v-+ 20 A7
- A9 2 | | 19 A6
- A10 3 | | 18 A5
- A11 4 | | 17 A4
- A12 5 | | 16 A3
- /CS 6 | | 15 A2
- CLK 7 | | 14 A1
- VCC 8 | | 13 A0
- /BS1 9 | | 12 GND
- BS1 10 +---+ 11 BS0
-
-
- Which games used slapstics?
-
- 137412-101 Empire Strikes Back
- 137412-101 Tetris
- 137412-103 Marble Madness
- 137412-104 Gauntlet
- 137412-105 Paperboy
- 137412-105 Indiana Jones & the Temple of Doom
- 137412-106 Gauntlet II
- 137412-107 2-Player Gauntlet
- 137412-107 Peter Packrat
- 137412-107 720 Degrees
- 137412-107 Xybots
- 137412-108 Road Runner
- 137412-108 Super Sprint
- 137412-109 Championship Sprint
- 137412-109 Road Blasters (some versions)
- 137412-110 Road Blasters
- 137412-110 APB
- 137412-111 Pit Fighter
- 137412-112 Pit Fighter (Europe)
- 137412-113 Unknown (Europe)
- 137412-115 Race Drivin' DSK board
- 137412-116 Hydra
- 137412-116 Tournament Cyberball 2072
- 137412-117 Race Drivin' main board
- 137412-118 Rampart
- 137412-118 Vindicators Part II
-
-
- How does the slapstic work?
-
- On power-up, the slapstic starts by pointing to bank 0 or bank 3.
- After that, certain sequences of addresses will trigger a bankswitch.
- Each sequence begins with an access to location $0000, followed by one
- or more special addresses.
-
- Each slapstic has a 'simple' mode of bankswitching, consisting of an
- access to $0000 followed by an access to one of four bank addresses.
- Other accesses are allowed in between these two accesses without
- affecting the outcome.
-
- Additionally, each slapstic has a trickier variant of the
- bankswitching, which requires an access to $0000, followed by accesses
- to two specific addresses, followed by one of four alternate bank
- addresses. All three accesses following the $0000 must occur in
- sequence with no interruptions, or else the sequence is invalidated.
-
- Finally, each slapstic has a mechanism for modifying the value of the
- current bank. Earlier chips (101-110) allowed you to twiddle the
- specific bits of the bank number, clearing or setting bits 0 and 1
- independently. Later chips (111-118) provided a mechanism of adding
- 1, 2, or 3 to the number of the current bank.
-
- Surprisingly, the slapstic appears to have used DRAM cells to store
- the current bank. After 5 or 6 seconds without a clock, the chip
- reverts to the default bank, with the chip reset (bank select
- addresses are enabled). Typically, the slapstic region is accessed
- often enough to cause a problem.
-
- For full details, see the MAME source code.
-
- Ported from MAME 0.146u3
- *alt2_kludge may need additional code fixes
-
-*************************************************************************/
-
-#include "burnint.h"
-#include "m68000_intf.h"
-#include "m68000_debug.h"
-
-
-/*************************************
- *
- * Structure of slapstic params
- *
- *************************************/
-
-struct mask_value
-{
- INT32 mask, value;
-};
-
-
-struct slapstic_data
-{
- INT32 bankstart;
- INT32 bank[4];
-
- struct mask_value alt1;
- struct mask_value alt2;
- struct mask_value alt3;
- struct mask_value alt4;
- INT32 altshift;
-
- struct mask_value bit1;
- struct mask_value bit2c0;
- struct mask_value bit2s0;
- struct mask_value bit2c1;
- struct mask_value bit2s1;
- struct mask_value bit3;
-
- struct mask_value add1;
- struct mask_value add2;
- struct mask_value addplus1;
- struct mask_value addplus2;
- struct mask_value add3;
-};
-
-
-/*************************************
- *
- * Shorthand
- *
- *************************************/
-
-#define UNKNOWN 0xffff
-#define NO_BITWISE \
- { UNKNOWN,UNKNOWN }, \
- { UNKNOWN,UNKNOWN }, \
- { UNKNOWN,UNKNOWN }, \
- { UNKNOWN,UNKNOWN }, \
- { UNKNOWN,UNKNOWN }, \
- { UNKNOWN,UNKNOWN }
-#define NO_ADDITIVE \
- { UNKNOWN,UNKNOWN }, \
- { UNKNOWN,UNKNOWN }, \
- { UNKNOWN,UNKNOWN }, \
- { UNKNOWN,UNKNOWN }, \
- { UNKNOWN,UNKNOWN }
-
-#define MATCHES_MASK_VALUE(val, maskval) (((val) & (maskval).mask) == (maskval).value)
-
-
-/*************************************
- *
- * Constants
- *
- *************************************/
-
-enum
-{
- DISABLED,
- ENABLED,
- ALTERNATE1,
- ALTERNATE2,
- ALTERNATE3,
- BITWISE1,
- BITWISE2,
- BITWISE3,
- ADDITIVE1,
- ADDITIVE2,
- ADDITIVE3
-};
-
-
-/*************************************
- *
- * Slapstic definitions
- *
- *************************************/
-
-/* slapstic 137412-101: Empire Strikes Back/Tetris (NOT confirmed) */
-static const struct slapstic_data slapstic101 =
-{
- /* basic banking */
- 3, /* starting bank */
- { 0x0080,0x0090,0x00a0,0x00b0 }, /* bank select values */
-
- /* alternate banking */
- { 0x007f,UNKNOWN }, /* 1st mask/value in sequence */
- { 0x1fff,0x1dff }, /* 2nd mask/value in sequence */
- { 0x1ffc,0x1b5c }, /* 3rd mask/value in sequence */
- { 0x1fcf,0x0080 }, /* 4th mask/value in sequence */
- 0, /* shift to get bank from 3rd */
-
- /* bitwise banking */
- { 0x1ff0,0x1540 }, /* 1st mask/value in sequence */
- { 0x1ff3,0x1540 }, /* clear bit 0 value */
- { 0x1ff3,0x1541 }, /* set bit 0 value */
- { 0x1ff3,0x1542 }, /* clear bit 1 value */
- { 0x1ff3,0x1543 }, /* set bit 1 value */
- { 0x1ff8,0x1550 }, /* final mask/value in sequence */
-
- /* additive banking */
- NO_ADDITIVE
-};
-
-
-/* slapstic 137412-103: Marble Madness (confirmed) */
-static const struct slapstic_data slapstic103 =
-{
- /* basic banking */
- 3, /* starting bank */
- { 0x0040,0x0050,0x0060,0x0070 }, /* bank select values */
-
- /* alternate banking */
- { 0x007f,0x002d }, /* 1st mask/value in sequence */
- { 0x3fff,0x3d14 }, /* 2nd mask/value in sequence */
- { 0x3ffc,0x3d24 }, /* 3rd mask/value in sequence */
- { 0x3fcf,0x0040 }, /* 4th mask/value in sequence */
- 0, /* shift to get bank from 3rd */
-
- /* bitwise banking */
- { 0x3ff0,0x34c0 }, /* 1st mask/value in sequence */
- { 0x3ff3,0x34c0 }, /* clear bit 0 value */
- { 0x3ff3,0x34c1 }, /* set bit 0 value */
- { 0x3ff3,0x34c2 }, /* clear bit 1 value */
- { 0x3ff3,0x34c3 }, /* set bit 1 value */
- { 0x3ff8,0x34d0 }, /* final mask/value in sequence */
-
- /* additive banking */
- NO_ADDITIVE
-};
-
-
-/* slapstic 137412-104: Gauntlet (confirmed) */
-static const struct slapstic_data slapstic104 =
-{
- /* basic banking */
- 3, /* starting bank */
- { 0x0020,0x0028,0x0030,0x0038 }, /* bank select values */
-
- /* alternate banking */
- { 0x007f,0x0069 }, /* 1st mask/value in sequence */
- { 0x3fff,0x3735 }, /* 2nd mask/value in sequence */
- { 0x3ffc,0x3764 }, /* 3rd mask/value in sequence */
- { 0x3fe7,0x0020 }, /* 4th mask/value in sequence */
- 0, /* shift to get bank from 3rd */
-
- /* bitwise banking */
- { 0x3ff0,0x3d90 }, /* 1st mask/value in sequence */
- { 0x3ff3,0x3d90 }, /* clear bit 0 value */
- { 0x3ff3,0x3d91 }, /* set bit 0 value */
- { 0x3ff3,0x3d92 }, /* clear bit 1 value */
- { 0x3ff3,0x3d93 }, /* set bit 1 value */
- { 0x3ff8,0x3da0 }, /* final mask/value in sequence */
-
- /* additive banking */
- NO_ADDITIVE
-};
-
-
-/* slapstic 137412-105: Indiana Jones/Paperboy (confirmed) */
-static const struct slapstic_data slapstic105 =
-{
- /* basic banking */
- 3, /* starting bank */
- { 0x0010,0x0014,0x0018,0x001c }, /* bank select values */
-
- /* alternate banking */
- { 0x007f,0x003d }, /* 1st mask/value in sequence */
- { 0x3fff,0x0092 }, /* 2nd mask/value in sequence */
- { 0x3ffc,0x00a4 }, /* 3rd mask/value in sequence */
- { 0x3ff3,0x0010 }, /* 4th mask/value in sequence */
- 0, /* shift to get bank from 3rd */
-
- /* bitwise banking */
- { 0x3ff0,0x35b0 }, /* 1st mask/value in sequence */
- { 0x3ff3,0x35b0 }, /* clear bit 0 value */
- { 0x3ff3,0x35b1 }, /* set bit 0 value */
- { 0x3ff3,0x35b2 }, /* clear bit 1 value */
- { 0x3ff3,0x35b3 }, /* set bit 1 value */
- { 0x3ff8,0x35c0 }, /* final mask/value in sequence */
-
- /* additive banking */
- NO_ADDITIVE
-};
-
-
-/* slapstic 137412-106: Gauntlet II (confirmed) */
-static const struct slapstic_data slapstic106 =
-{
- /* basic banking */
- 3, /* starting bank */
- { 0x0008,0x000a,0x000c,0x000e }, /* bank select values */
-
- /* alternate banking */
- { 0x007f,0x002b }, /* 1st mask/value in sequence */
- { 0x3fff,0x0052 }, /* 2nd mask/value in sequence */
- { 0x3ffc,0x0064 }, /* 3rd mask/value in sequence */
- { 0x3ff9,0x0008 }, /* 4th mask/value in sequence */
- 0, /* shift to get bank from 3rd */
-
- /* bitwise banking */
- { 0x3ff0,0x3da0 }, /* 1st mask/value in sequence */
- { 0x3ff3,0x3da0 }, /* clear bit 0 value */
- { 0x3ff3,0x3da1 }, /* set bit 0 value */
- { 0x3ff3,0x3da2 }, /* clear bit 1 value */
- { 0x3ff3,0x3da3 }, /* set bit 1 value */
- { 0x3ff8,0x3db0 }, /* final mask/value in sequence */
-
- /* additive banking */
- NO_ADDITIVE
-};
-
-
-/* slapstic 137412-107: Peter Packrat/Xybots/2p Gauntlet/720 (confirmed) */
-static const struct slapstic_data slapstic107 =
-{
- /* basic banking */
- 3, /* starting bank */
- { 0x0018,0x001a,0x001c,0x001e }, /* bank select values */
-
- /* alternate banking */
- { 0x007f,0x006b }, /* 1st mask/value in sequence */
- { 0x3fff,0x3d52 }, /* 2nd mask/value in sequence */
- { 0x3ffc,0x3d64 }, /* 3rd mask/value in sequence */
- { 0x3ff9,0x0018 }, /* 4th mask/value in sequence */
- 0, /* shift to get bank from 3rd */
-
- /* bitwise banking */
- { 0x3ff0,0x00a0 }, /* 1st mask/value in sequence */
- { 0x3ff3,0x00a0 }, /* clear bit 0 value */
- { 0x3ff3,0x00a1 }, /* set bit 0 value */
- { 0x3ff3,0x00a2 }, /* clear bit 1 value */
- { 0x3ff3,0x00a3 }, /* set bit 1 value */
- { 0x3ff8,0x00b0 }, /* final mask/value in sequence */
-
- /* additive banking */
- NO_ADDITIVE
-};
-
-
-/* slapstic 137412-108: Road Runner/Super Sprint (confirmed) */
-static const struct slapstic_data slapstic108 =
-{
- /* basic banking */
- 3, /* starting bank */
- { 0x0028,0x002a,0x002c,0x002e }, /* bank select values */
-
- /* alternate banking */
- { 0x007f,0x001f }, /* 1st mask/value in sequence */
- { 0x3fff,0x3772 }, /* 2nd mask/value in sequence */
- { 0x3ffc,0x3764 }, /* 3rd mask/value in sequence */
- { 0x3ff9,0x0028 }, /* 4th mask/value in sequence */
- 0, /* shift to get bank from 3rd */
-
- /* bitwise banking */
- { 0x3ff0,0x0060 }, /* 1st mask/value in sequence */
- { 0x3ff3,0x0060 }, /* clear bit 0 value */
- { 0x3ff3,0x0061 }, /* set bit 0 value */
- { 0x3ff3,0x0062 }, /* clear bit 1 value */
- { 0x3ff3,0x0063 }, /* set bit 1 value */
- { 0x3ff8,0x0070 }, /* final mask/value in sequence */
-
- /* additive banking */
- NO_ADDITIVE
-};
-
-
-/* slapstic 137412-109: Championship Sprint/Road Blasters (confirmed) */
-static const struct slapstic_data slapstic109 =
-{
- /* basic banking */
- 3, /* starting bank */
- { 0x0008,0x000a,0x000c,0x000e }, /* bank select values */
-
- /* alternate banking */
- { 0x007f,0x002b }, /* 1st mask/value in sequence */
- { 0x3fff,0x0052 }, /* 2nd mask/value in sequence */
- { 0x3ffc,0x0064 }, /* 3rd mask/value in sequence */
- { 0x3ff9,0x0008 }, /* 4th mask/value in sequence */
- 0, /* shift to get bank from 3rd */
-
- /* bitwise banking */
- { 0x3ff0,0x3da0 }, /* 1st mask/value in sequence */
- { 0x3ff3,0x3da0 }, /* clear bit 0 value */
- { 0x3ff3,0x3da1 }, /* set bit 0 value */
- { 0x3ff3,0x3da2 }, /* clear bit 1 value */
- { 0x3ff3,0x3da3 }, /* set bit 1 value */
- { 0x3ff8,0x3db0 }, /* final mask/value in sequence */
-
- /* additive banking */
- NO_ADDITIVE
-};
-
-
-/* slapstic 137412-110: Road Blasters/APB (confirmed) */
-static const struct slapstic_data slapstic110 =
-{
- /* basic banking */
- 3, /* starting bank */
- { 0x0040,0x0050,0x0060,0x0070 }, /* bank select values */
-
- /* alternate banking */
- { 0x007f,0x002d }, /* 1st mask/value in sequence */
- { 0x3fff,0x3d14 }, /* 2nd mask/value in sequence */
- { 0x3ffc,0x3d24 }, /* 3rd mask/value in sequence */
- { 0x3fcf,0x0040 }, /* 4th mask/value in sequence */
- 0, /* shift to get bank from 3rd */
-
- /* bitwise banking */
- { 0x3ff0,0x34c0 }, /* 1st mask/value in sequence */
- { 0x3ff3,0x34c0 }, /* clear bit 0 value */
- { 0x3ff3,0x34c1 }, /* set bit 0 value */
- { 0x3ff3,0x34c2 }, /* clear bit 1 value */
- { 0x3ff3,0x34c3 }, /* set bit 1 value */
- { 0x3ff8,0x34d0 }, /* final mask/value in sequence */
-
- /* additive banking */
- NO_ADDITIVE
-};
-
-
-/*************************************
- *
- * Slapstic-2 definitions
- *
- *************************************/
-
-/* slapstic 137412-111: Pit Fighter (confirmed) */
-static const struct slapstic_data slapstic111 =
-{
- /* basic banking */
- 0, /* starting bank */
- { 0x0042,0x0052,0x0062,0x0072 }, /* bank select values */
-
- /* alternate banking */
- { 0x007f,0x000a }, /* 1st mask/value in sequence */
- { 0x3fff,0x28a4 }, /* 2nd mask/value in sequence */
- { 0x0784,0x0080 }, /* 3rd mask/value in sequence */
- { 0x3fcf,0x0042 }, /* 4th mask/value in sequence */
- 0, /* shift to get bank from 3rd */
-
- /* bitwise banking */
- NO_BITWISE,
-
- /* additive banking */
- { 0x3fff,0x00a1 }, /* 1st mask/value in sequence */
- { 0x3fff,0x00a2 }, /* 2nd mask/value in sequence */
- { 0x3c4f,0x284d }, /* +1 mask/value */
- { 0x3a5f,0x285d }, /* +2 mask/value */
- { 0x3ff8,0x2800 } /* final mask/value in sequence */
-};
-
-
-/* slapstic 137412-112: Pit Fighter (Japan) (confirmed) */
-static const struct slapstic_data slapstic112 =
-{
- /* basic banking */
- 0, /* starting bank */
- { 0x002c,0x003c,0x006c,0x007c }, /* bank select values */
-
- /* alternate banking */
- { 0x007f,0x0014 }, /* 1st mask/value in sequence */
- { 0x3fff,0x29a0 }, /* 2nd mask/value in sequence */
- { 0x0073,0x0010 }, /* 3rd mask/value in sequence */
- { 0x3faf,0x002c }, /* 4th mask/value in sequence */
- 2, /* shift to get bank from 3rd */
-
- /* bitwise banking */
- NO_BITWISE,
-
- /* additive banking */
- { 0x3fff,0x2dce }, /* 1st mask/value in sequence */
- { 0x3fff,0x2dcf }, /* 2nd mask/value in sequence */
- { 0x3def,0x15e2 }, /* +1 mask/value */
- { 0x3fbf,0x15a2 }, /* +2 mask/value */
- { 0x3ffc,0x1450 } /* final mask/value in sequence */
-};
-
-
-/* slapstic 137412-113: Unknown (Europe) (confirmed) */
-static const struct slapstic_data slapstic113 =
-{
- /* basic banking */
- 0, /* starting bank */
- { 0x0008,0x0018,0x0028,0x0038 }, /* bank select values */
-
- /* alternate banking */
- { 0x007f,0x0059 }, /* 1st mask/value in sequence */
- { 0x3fff,0x11a5 }, /* 2nd mask/value in sequence */
- { 0x0860,0x0800 }, /* 3rd mask/value in sequence */
- { 0x3fcf,0x0008 }, /* 4th mask/value in sequence */
- 3, /* shift to get bank from 3rd */
-
- /* bitwise banking */
- NO_BITWISE,
-
- /* additive banking */
- { 0x3fff,0x049b }, /* 1st mask/value in sequence */
- { 0x3fff,0x049c }, /* 2nd mask/value in sequence */
- { 0x3fcf,0x3ec7 }, /* +1 mask/value */
- { 0x3edf,0x3ed7 }, /* +2 mask/value */
- { 0x3fff,0x3fb2 } /* final mask/value in sequence */
-};
-
-
-/* slapstic 137412-114: Pit Fighter (rev 9) (confirmed) */
-static const struct slapstic_data slapstic114 =
-{
- /* basic banking */
- 0, /* starting bank */
- { 0x0040,0x0048,0x0050,0x0058 }, /* bank select values */
-
- /* alternate banking */
- { 0x007f,0x0016 }, /* 1st mask/value in sequence */
- { 0x3fff,0x24de }, /* 2nd mask/value in sequence */
- { 0x3871,0x0000 }, /* 3rd mask/value in sequence */
- { 0x3fe7,0x0040 }, /* 4th mask/value in sequence */
- 1, /* shift to get bank from 3rd */
-
- /* bitwise banking */
- NO_BITWISE,
-
- /* additive banking */
- { 0x3fff,0x0ab7 }, /* 1st mask/value in sequence */
- { 0x3fff,0x0ab8 }, /* 2nd mask/value in sequence */
- { 0x3f63,0x0d40 }, /* +1 mask/value */
- { 0x3fd9,0x0dc8 }, /* +2 mask/value */
- { 0x3fff,0x0ab0 } /* final mask/value in sequence */
-};
-
-
-/* slapstic 137412-115: Race Drivin' DSK board (confirmed) */
-static const struct slapstic_data slapstic115 =
-{
- /* basic banking */
- 0, /* starting bank */
- { 0x0020,0x0022,0x0024,0x0026 }, /* bank select values */
-
- /* alternate banking */
- { 0x007f,0x0054 }, /* 1st mask/value in sequence */
- { 0x3fff,0x3e01 }, /* 2nd mask/value in sequence */
- { 0x3879,0x0029 }, /* 3rd mask/value in sequence */
- { 0x3ff9,0x0020 }, /* 4th mask/value in sequence */
- 1, /* shift to get bank from 3rd */
-
- /* bitwise banking */
- NO_BITWISE,
-
- /* additive banking */
- { 0x3fff,0x2591 }, /* 1st mask/value in sequence */
- { 0x3fff,0x2592 }, /* 2nd mask/value in sequence */
- { 0x3fe6,0x3402 }, /* +1 mask/value */
- { 0x3fb4,0x3410 }, /* +2 mask/value */
- { 0x3fff,0x34a2 } /* final mask/value in sequence */
-};
-
-
-/* slapstic 137412-116: Hydra (confirmed) */
-static const struct slapstic_data slapstic116 =
-{
- /* basic banking */
- 0, /* starting bank */
- { 0x0044,0x004c,0x0054,0x005c }, /* bank select values */
-
- /* alternate banking */
- { 0x007f,0x0069 }, /* 1st mask/value in sequence */
- { 0x3fff,0x2bab }, /* 2nd mask/value in sequence */
- { 0x387c,0x0808 }, /* 3rd mask/value in sequence */
- { 0x3fe7,0x0044 }, /* 4th mask/value in sequence */
- 0, /* shift to get bank from 3rd */
-
- /* bitwise banking */
- NO_BITWISE,
-
- /* additive banking */
- { 0x3fff,0x3f7c }, /* 1st mask/value in sequence */
- { 0x3fff,0x3f7d }, /* 2nd mask/value in sequence */
- { 0x3db2,0x3c12 }, /* +1 mask/value */
- { 0x3fe3,0x3e43 }, /* +2 mask/value */
- { 0x3fff,0x2ba8 } /* final mask/value in sequence */
-};
-
-
-/* slapstic 137412-117: Race Drivin' main board (confirmed) */
-static const struct slapstic_data slapstic117 =
-{
- /* basic banking */
- 0, /* starting bank */
- { 0x0008,0x001a,0x002c,0x003e }, /* bank select values */
-
- /* alternate banking */
- { 0x007f,0x007d }, /* 1st mask/value in sequence */
- { 0x3fff,0x3580 }, /* 2nd mask/value in sequence */
- { 0x0079,0x0020 }, /* 3rd mask/value in sequence */
- { 0x3fc9,0x0008 }, /* 4th mask/value in sequence */
- 1, /* shift to get bank from 3rd */
-
- /* bitwise banking */
- NO_BITWISE,
-
- /* additive banking */
- { 0x3fff,0x0676 }, /* 1st mask/value in sequence */
- { 0x3fff,0x0677 }, /* 2nd mask/value in sequence */
- { 0x3e62,0x1a42 }, /* +1 mask/value */
- { 0x3e35,0x1a11 }, /* +2 mask/value */
- { 0x3fff,0x1a42 } /* final mask/value in sequence */
-};
-
-
-/* slapstic 137412-118: Rampart/Vindicators II (confirmed) */
-static const struct slapstic_data slapstic118 =
-{
- /* basic banking */
- 0, /* starting bank */
- { 0x0014,0x0034,0x0054,0x0074 }, /* bank select values */
-
- /* alternate banking */
- { 0x007f,0x0002 }, /* 1st mask/value in sequence */
- { 0x3fff,0x1950 }, /* 2nd mask/value in sequence */
- { 0x0067,0x0020 }, /* 3rd mask/value in sequence */
- { 0x3f9f,0x0014 }, /* 4th mask/value in sequence */
- 3, /* shift to get bank from 3rd */
-
- /* bitwise banking */
- NO_BITWISE,
-
- /* additive banking */
- { 0x3fff,0x1958 }, /* 1st mask/value in sequence */
- { 0x3fff,0x1959 }, /* 2nd mask/value in sequence */
- { 0x3f73,0x3052 }, /* +1 mask/value */
- { 0x3f67,0x3042 }, /* +2 mask/value */
- { 0x3ff8,0x30e0 } /* final mask/value in sequence */
-};
-
-
-/*************************************
- *
- * Master slapstic table
- *
- *************************************/
-
-/* master table */
-static const struct slapstic_data *const slapstic_table[] =
-{
- &slapstic101, /* NOT confirmed! */
- NULL, /* never seen */
- &slapstic103,
- &slapstic104,
- &slapstic105,
- &slapstic106,
- &slapstic107,
- &slapstic108,
- &slapstic109,
- &slapstic110,
- &slapstic111,
- &slapstic112,
- &slapstic113,
- &slapstic114,
- &slapstic115,
- &slapstic116,
- &slapstic117,
- &slapstic118
-};
-
-
-/*************************************
- *
- * Statics
- *
- *************************************/
-
-static UINT8 state;
-static UINT8 current_bank;
-static UINT8 access_68k;
-
-static UINT8 alt_bank;
-static UINT8 bit_bank;
-static UINT8 add_bank;
-static UINT8 bit_xor;
-
-static struct slapstic_data slapstic;
-
-
-/*************************************
- *
- * Initialization
- *
- *************************************/
-
-void SlapsticReset(void)
-{
-#if defined FBA_DEBUG
- if (!DebugDev_SlapsticInitted) bprintf(PRINT_ERROR, _T("SlapsticReset called without init\n"));
-#endif
-
- /* reset the chip */
- state = DISABLED;
-
- /* the 111 and later chips seem to reset to bank 0 */
- current_bank = slapstic.bankstart;
-}
-
-
-void SlapsticInit(INT32 chip)
-{
- DebugDev_SlapsticInitted = 1;
-
- /* only a small number of chips are known to exist */
- if (chip < 101 || chip > 118)
- return;
-
- /* set up the parameters */
- if (!slapstic_table[chip - 101])
- return;
-
- slapstic = *slapstic_table[chip - 101];
-
- /* reset the chip */
- SlapsticReset();
-
- /* see if we're 68k or 6502/6809 based */
- extern INT32 nSekCount;
- access_68k = (nSekCount != -1); // Ok?
-}
-
-void SlapsticExit()
-{
-#if defined FBA_DEBUG
- if (!DebugDev_SlapsticInitted) bprintf(PRINT_ERROR, _T("SlapsticExit called without init\n"));
-#endif
-
- DebugDev_SlapsticInitted = 0;
-}
-
-/*************************************
- *
- * Returns active bank without tweaking
- *
- *************************************/
-
-INT32 SlapsticBank(void)
-{
-#if defined FBA_DEBUG
- if (!DebugDev_SlapsticInitted) bprintf(PRINT_ERROR, _T("SlapsticBank called without init\n"));
-#endif
-
- return current_bank;
-}
-
-
-/*************************************
- *
- * Kludge to catch alt seqeuences
- *
- *************************************/
-
-static INT32 alt2_kludge(UINT32 /*offset*/)
-{
- /* Of the 3 alternate addresses, only the middle one needs to actually hit
- in the slapstic region; the first and third ones can be anywhere in the
- address space. For this reason, the read/write handlers usually only
- see the 2nd access. For the 68000-based games, we do the following
- kludge to examine the opcode that is executing and look for the 1st
- and 3rd accesses. */
- if (access_68k)
- {
- static const SekRegister SekRegs1[8] = { SEK_REG_A0, SEK_REG_A1, SEK_REG_A2, SEK_REG_A3, SEK_REG_A4, SEK_REG_A5, SEK_REG_A6, SEK_REG_A7 };
-
- /* first verify that the prefetched PC matches the first alternate */
- if (MATCHES_MASK_VALUE((INT32)(SekGetPC(-1) >> 1), slapstic.alt1))
- {
- /* now look for a move.w (An),(An) or cmpm.w (An)+,(An)+ */
- UINT16 opcode = SekFetchWord((SekGetPC(-1) - 4) & 0xffffff); // IQ_132 check this!
- // UINT16 opcode = space->direct().read_decrypted_word(cpu_get_previouspc(&space->device()) & 0xffffff);
- if ((opcode & 0xf1f8) == 0x3090 || (opcode & 0xf1f8) == 0xb148)
- {
- /* fetch the value of the register for the second operand, and see */
- /* if it matches the third alternate */
- UINT32 regval = SekDbgGetRegister(SekRegs1[((opcode >> 9) & 7)]) >> 1;
- if (MATCHES_MASK_VALUE((INT32)regval, slapstic.alt3))
- {
- alt_bank = (regval >> slapstic.altshift) & 3;
- return ALTERNATE3;
- }
- }
- }
-
- /* if there's no second memory hit within this instruction, the next */
- /* opcode fetch will botch the operation, so just fall back to */
- /* the enabled state */
- return ENABLED;
- }
-
- /* kludge for ESB */
- return ALTERNATE2;
-}
-
-
-/*************************************
- *
- * Call this *after* every access
- *
- *************************************/
-
-INT32 SlapsticTweak(INT32 offset)
-{
-#if defined FBA_DEBUG
- if (!DebugDev_SlapsticInitted) bprintf(PRINT_ERROR, _T("SlapsticTweak called without init\n"));
-#endif
-
- /* reset is universal */
- if (offset == 0x0000)
- {
- state = ENABLED;
- }
-
- /* otherwise, use the state machine */
- else
- {
- switch (state)
- {
- /* DISABLED state: everything is ignored except a reset */
- case DISABLED:
- break;
-
- /* ENABLED state: the chip has been activated and is ready for a bankswitch */
- case ENABLED:
-
- /* check for request to enter bitwise state */
- if (MATCHES_MASK_VALUE(offset, slapstic.bit1))
- {
- state = BITWISE1;
- }
-
- /* check for request to enter additive state */
- else if (MATCHES_MASK_VALUE(offset, slapstic.add1))
- {
- state = ADDITIVE1;
- }
-
- /* check for request to enter alternate state */
- else if (MATCHES_MASK_VALUE(offset, slapstic.alt1))
- {
- state = ALTERNATE1;
- }
-
- /* special kludge for catching the second alternate address if */
- /* the first one was missed (since it's usually an opcode fetch) */
- else if (MATCHES_MASK_VALUE(offset, slapstic.alt2))
- {
- state = alt2_kludge(offset);
- }
-
- /* check for standard bankswitches */
- else if (offset == slapstic.bank[0])
- {
- state = DISABLED;
- current_bank = 0;
- }
- else if (offset == slapstic.bank[1])
- {
- state = DISABLED;
- current_bank = 1;
- }
- else if (offset == slapstic.bank[2])
- {
- state = DISABLED;
- current_bank = 2;
- }
- else if (offset == slapstic.bank[3])
- {
- state = DISABLED;
- current_bank = 3;
- }
- break;
-
- /* ALTERNATE1 state: look for alternate2 offset, or else fall back to ENABLED */
- case ALTERNATE1:
- if (MATCHES_MASK_VALUE(offset, slapstic.alt2))
- {
- state = ALTERNATE2;
- }
- else
- {
- state = ENABLED;
- }
- break;
-
- /* ALTERNATE2 state: look for altbank offset, or else fall back to ENABLED */
- case ALTERNATE2:
- if (MATCHES_MASK_VALUE(offset, slapstic.alt3))
- {
- state = ALTERNATE3;
- alt_bank = (offset >> slapstic.altshift) & 3;
- }
- else
- {
- state = ENABLED;
- }
- break;
-
- /* ALTERNATE3 state: wait for the final value to finish the transaction */
- case ALTERNATE3:
- if (MATCHES_MASK_VALUE(offset, slapstic.alt4))
- {
- state = DISABLED;
- current_bank = alt_bank;
- }
- break;
-
- /* BITWISE1 state: waiting for a bank to enter the BITWISE state */
- case BITWISE1:
- if (offset == slapstic.bank[0] || offset == slapstic.bank[1] ||
- offset == slapstic.bank[2] || offset == slapstic.bank[3])
- {
- state = BITWISE2;
- bit_bank = current_bank;
- bit_xor = 0;
- }
- break;
-
- /* BITWISE2 state: watch for twiddling and the escape mechanism */
- case BITWISE2:
-
- /* check for clear bit 0 case */
- if (MATCHES_MASK_VALUE(offset ^ bit_xor, slapstic.bit2c0))
- {
- bit_bank &= ~1;
- bit_xor ^= 3;
- }
-
- /* check for set bit 0 case */
- else if (MATCHES_MASK_VALUE(offset ^ bit_xor, slapstic.bit2s0))
- {
- bit_bank |= 1;
- bit_xor ^= 3;
- }
-
- /* check for clear bit 1 case */
- else if (MATCHES_MASK_VALUE(offset ^ bit_xor, slapstic.bit2c1))
- {
- bit_bank &= ~2;
- bit_xor ^= 3;
- }
-
- /* check for set bit 1 case */
- else if (MATCHES_MASK_VALUE(offset ^ bit_xor, slapstic.bit2s1))
- {
- bit_bank |= 2;
- bit_xor ^= 3;
- }
-
- /* check for escape case */
- else if (MATCHES_MASK_VALUE(offset, slapstic.bit3))
- {
- state = BITWISE3;
- }
- break;
-
- /* BITWISE3 state: waiting for a bank to seal the deal */
- case BITWISE3:
- if (offset == slapstic.bank[0] || offset == slapstic.bank[1] ||
- offset == slapstic.bank[2] || offset == slapstic.bank[3])
- {
- state = DISABLED;
- current_bank = bit_bank;
- }
- break;
-
- /* ADDITIVE1 state: look for add2 offset, or else fall back to ENABLED */
- case ADDITIVE1:
- if (MATCHES_MASK_VALUE(offset, slapstic.add2))
- {
- state = ADDITIVE2;
- add_bank = current_bank;
- }
- else
- {
- state = ENABLED;
- }
- break;
-
- /* ADDITIVE2 state: watch for twiddling and the escape mechanism */
- case ADDITIVE2:
-
- /* check for add 1 case -- can intermix */
- if (MATCHES_MASK_VALUE(offset, slapstic.addplus1))
- {
- add_bank = (add_bank + 1) & 3;
- }
-
- /* check for add 2 case -- can intermix */
- if (MATCHES_MASK_VALUE(offset, slapstic.addplus2))
- {
- add_bank = (add_bank + 2) & 3;
- }
-
- /* check for escape case -- can intermix with the above */
- if (MATCHES_MASK_VALUE(offset, slapstic.add3))
- {
- state = ADDITIVE3;
- }
- break;
-
- /* ADDITIVE3 state: waiting for a bank to seal the deal */
- case ADDITIVE3:
- if (offset == slapstic.bank[0] || offset == slapstic.bank[1] ||
- offset == slapstic.bank[2] || offset == slapstic.bank[3])
- {
- state = DISABLED;
- current_bank = add_bank;
- }
- break;
- }
- }
-
- /* return the active bank */
- return current_bank;
-}
-
-
-void SlapsticScan(INT32 nAction)
-{
-#if defined FBA_DEBUG
- if (!DebugDev_SlapsticInitted) bprintf(PRINT_ERROR, _T("SlapsticScan called without init\n"));
-#endif
-
- if (nAction & ACB_NVRAM) {
- SCAN_VAR(state);
- SCAN_VAR(current_bank);
- SCAN_VAR(alt_bank);
- SCAN_VAR(bit_bank);
- SCAN_VAR(add_bank);
- SCAN_VAR(bit_xor);
- }
-}
diff --git a/jan/src/burn/devices/slapstic.h b/jan/src/burn/devices/slapstic.h
deleted file mode 100644
index dcfa7aadf..000000000
--- a/jan/src/burn/devices/slapstic.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/*************************************************************************
-
- Atari Slapstic decoding helper
-
-**************************************************************************
-
- For more information on the slapstic, see slapstic.html, or go to
- http://www.aarongiles.com/slapstic.html
-
-*************************************************************************/
-
-void SlapsticInit(INT32 chip);
-void SlapsticExit();
-void SlapsticReset(void);
-
-INT32 SlapsticBank(void);
-INT32 SlapsticTweak(INT32 offset);
-
-void SlapsticScan(INT32 nAction);
diff --git a/jan/src/burn/devices/st0020.cpp b/jan/src/burn/devices/st0020.cpp
deleted file mode 100644
index 03e098d16..000000000
--- a/jan/src/burn/devices/st0020.cpp
+++ /dev/null
@@ -1,184 +0,0 @@
-// Based on MAME sources by Luca Elia,David Haywood
-
-#include "tiles_generic.h"
-#include "st0020.h"
-
-// directly map sprite ram
-
-UINT8 *st0020BlitRAM;
-UINT8 *st0020SprRAM;
-UINT8 *st0020GfxRAM;
-UINT8 *st0020GfxROM;
-INT32 st0020GfxROMLen;
-
-static INT32 is_jclub2 = 0;
-static INT32 is_st0032 = 0;
-
-UINT16 st0020GfxramReadWord(UINT32 offset)
-{
- INT32 bank = (st0020BlitRAM[0x8a] & 3) * 0x100000;
-
- UINT16 *ram = (UINT16*)(st0020GfxRAM + (offset & 0xfffff) + bank);
-
- return (ram[0] << 8) | (ram[0] >> 8);
-}
-
-UINT8 st0020GfxramReadByte(UINT32 offset)
-{
- INT32 bank = (st0020BlitRAM[0x8a] & 3) * 0x100000;
-
- return st0020GfxRAM[((offset & 0xfffff) + bank)^1];
-}
-
-void st0020GfxramWriteByte(UINT32 offset, UINT8 data)
-{
- INT32 bank = (st0020BlitRAM[0x8a] & 3) * 0x100000;
-
- st0020GfxRAM[((offset & 0xfffff) + bank) ^ 1] = data;
-}
-
-void st0020GfxramWriteWord(UINT32 offset, UINT16 data)
-{
- INT32 bank = (st0020BlitRAM[0x8a] & 3) * 0x100000;
-
- UINT16 *ram = (UINT16*)(st0020GfxRAM + (offset & 0xfffff) + bank);
-
- data = (data << 8) | (data >> 8);
-
- ram[0] = data;
-}
-
-static void st0020_blitter_write()
-{
- UINT16 *st0020_blitram = (UINT16*)st0020BlitRAM;
- UINT16 *st0020_gfxram = (UINT16*)st0020GfxRAM;
-
- UINT32 src = (st0020_blitram[0xc0/2] + (st0020_blitram[0xc2/2] << 16)) << 1;
- UINT32 dst = (st0020_blitram[0xc4/2] + (st0020_blitram[0xc6/2] << 16)) << 4;
- UINT32 len = (st0020_blitram[0xc8/2]) << 4;
- UINT32 size = st0020GfxROMLen;
-
- dst &= 0x3fffff;
- src &= 0xffffff;
-
- if ((src+len <= size) && (dst+len <= 4 * 0x100000) )
- {
- memcpy( &st0020_gfxram[dst/2], &st0020GfxROM[src], len );
- }
-}
-
-void st0020_blitram_write_word(UINT32 offset, UINT16 data)
-{
- UINT16 *st0020_blitram = (UINT16*)st0020BlitRAM;
-
- st0020_blitram[(offset/2)&0x7f] = data;
-
- if ((offset & 0xfe) == 0xca) st0020_blitter_write();
-}
-
-UINT16 st0020_blitram_read_word(UINT32 offset)
-{
- UINT16 *st0020_blitram = (UINT16*)st0020BlitRAM;
-
- return st0020_blitram[(offset/2)&0x7f];
-}
-
-void st0020_blitram_write_byte(UINT32 offset, UINT8 data)
-{
- st0020BlitRAM[(offset & 0xff)] = data;
- if ((offset & 0xfe) == 0xca) st0020_blitter_write();
-}
-
-static void st0020_draw_zooming_sprites(INT32 priority)
-{
- UINT16 *spriteram16_2 = (UINT16*)st0020SprRAM;
- UINT16 *s1 = spriteram16_2;
- UINT16 *end1 = spriteram16_2 + 0x02000/2;
-
- const INT32 ramoffs[2][4] = { { 0, 1, 2, 3 }, { 2, 3, 1, 0 } };
-
- priority <<= 4;
-
- for ( ; s1 < end1; s1+=8/2 )
- {
- int attr, code, color, num, sprite, zoom, size;
- int sx, x, xoffs, flipx, xnum, xstart, xend, xinc, xdim, xscale;
- int sy, y, yoffs, flipy, ynum, ystart, yend, yinc, ydim, yscale;
-
- xoffs = s1[ ramoffs[is_st0032][0] ];
- yoffs = s1[ ramoffs[is_st0032][1] ];
- sprite = s1[ ramoffs[is_st0032][2] ];
- num = s1[ ramoffs[is_st0032][3] ] % 0x101; // how many?
-
- if (sprite & 0x8000) break;
-
- int s2 = 0;
- int spritebase = (sprite & 0x7fff) * 16/2;
-
- for( ; num > 0; num--,s2+=16/2 )
- {
- code = spriteram16_2[(spritebase + s2 + 0 )&0x3ffff];
- attr = spriteram16_2[(spritebase + s2 + 1 )&0x3ffff];
- sx = spriteram16_2[(spritebase + s2 + 2 )&0x3ffff];
- sy = spriteram16_2[(spritebase + s2 + 3 )&0x3ffff];
- zoom = spriteram16_2[(spritebase + s2 + 4 )&0x3ffff];
- size = spriteram16_2[(spritebase + s2 + 5 )&0x3ffff];
-
- if (priority != (size & 0xf0))
- break;
-
- flipx = (attr & 0x8000);
- flipy = (attr & 0x4000);
-
- color = (attr & 0x0400) ? attr : attr * 4;
-
- xnum = 1 << ((size >> 0) & 3);
- ynum = 1 << ((size >> 2) & 3);
-
- xnum = (xnum + 1) / 2;
-
- if (flipx) { xstart = xnum-1; xend = -1; xinc = -1; }
- else { xstart = 0; xend = xnum; xinc = +1; }
-
- if (flipy) { ystart = ynum-1; yend = -1; yinc = -1; }
- else { ystart = 0; yend = ynum; yinc = +1; }
-
- sx += xoffs;
- sy += yoffs;
-
- sx = (sx & 0x1ff) - (sx & 0x200);
- sy = (sy & 0x1ff) - (sy & 0x200);
-
- sy = -sy;
-
- if (is_jclub2)
- sy += 0x100;
-
- sx <<= 16;
- sy <<= 16;
-
- xdim = ( ( ((zoom >> 0) & 0xff) + 1) << 16 ) / xnum;
- ydim = ( ( ((zoom >> 8) & 0xff) + 1) << 16 ) / ynum;
-
- xscale = xdim / 16;
- yscale = ydim / 8;
-
- if (xscale & 0xffff) xscale += (1<<16) / 16;
- if (yscale & 0xffff) yscale += (1<<16) / 8;
-
- for (x = xstart; x != xend; x += xinc)
- {
- for (y = ystart; y != yend; y += yinc, code++)
- {
- RenderZoomedTile(pTransDraw, st0020GfxRAM, code % (0x400000/0x80), color * 64, 0, (sx + x * xdim) / 0x10000, (sy + y * ydim) / 0x10000, flipx, flipy, 16, 8, xscale, yscale);
- }
- }
- }
- }
-}
-
-void st0020Draw()
-{
- for (int pri = 0; pri < 0x10; pri++)
- st0020_draw_zooming_sprites(pri);
-}
diff --git a/jan/src/burn/devices/st0020.h b/jan/src/burn/devices/st0020.h
deleted file mode 100644
index 0d231669a..000000000
--- a/jan/src/burn/devices/st0020.h
+++ /dev/null
@@ -1,15 +0,0 @@
-extern UINT8 *st0020BlitRAM; // 0x100 bytes
-extern UINT8 *st0020SprRAM; // 0x80000 bytes
-extern UINT8 *st0020GfxRAM; // 0x400000 bytes
-extern UINT8 *st0020GfxROM;
-extern INT32 st0020GfxROMLen;
-
-UINT16 st0020GfxramReadWord(UINT32 offset);
-UINT8 st0020GfxramReadByte(UINT32 offset);
-void st0020GfxramWriteByte(UINT32 offset, UINT8 data);
-void st0020GfxramWriteWord(UINT32 offset, UINT16 data);
-
-void st0020_blitram_write_word(UINT32 offset, UINT16 data);
-void st0020_blitram_write_byte(UINT32 offset, UINT8 data);
-UINT16 st0020_blitram_read_word(UINT32 offset);
-void st0020Draw();
diff --git a/jan/src/burn/devices/t5182.cpp b/jan/src/burn/devices/t5182.cpp
deleted file mode 100644
index bf5ce693e..000000000
--- a/jan/src/burn/devices/t5182.cpp
+++ /dev/null
@@ -1,222 +0,0 @@
-// FB Alpha t5182 core
-// Based on MAME sources by Jonathan Gevaryahu
-
-#include "burnint.h"
-#include "t5182.h"
-#include "z80_intf.h"
-#include "burn_ym2151.h"
-
-// only used in t5182.c
-static INT32 irqstate;
-static UINT8 *t5182RAM = NULL;
-
-static INT32 nCPU;
-static INT32 coin_frame;
-
-// use externally
-UINT8 *t5182SharedRAM = NULL; // allocate externally
-UINT8 *t5182ROM = NULL; // allocate externally
-
-UINT8 t5182_semaphore_snd = 0;
-UINT8 t5182_semaphore_main = 0;
-UINT8 t5182_coin_input;
-
-void t5182_setirq_callback(INT32 param)
-{
-#if defined FBA_DEBUG
- if (!DebugDev_T5182Initted) bprintf(PRINT_ERROR, _T("t5182_setirq_callback called without init\n"));
-#endif
-
- switch (param)
- {
- case YM2151_ASSERT:
- irqstate |= 1|4;
- break;
-
- case YM2151_CLEAR:
- irqstate &= ~1;
- break;
-
- case YM2151_ACK:
- irqstate &= ~4;
- break;
-
- case CPU_ASSERT:
- irqstate |= 2;
- break;
-
- case CPU_CLEAR:
- irqstate &= ~2;
- break;
- }
-
- ZetSetIRQLine(0, (irqstate) ? CPU_IRQSTATUS_ACK : CPU_IRQSTATUS_NONE);
-}
-
-
-static void __fastcall t5182_port_write(UINT16 p, UINT8 d)
-{
- switch (p & 0xff)
- {
- case 0x00:
- BurnYM2151SelectRegister(d);
- return;
-
- case 0x01:
- BurnYM2151WriteRegister(d);
- return;
-
- case 0x10:
- case 0x11:
- t5182_semaphore_snd = ~p & 1;
- return;
-
- case 0x12:
- t5182_setirq_callback(YM2151_ACK);
- return;
-
- case 0x13:
- t5182_setirq_callback(CPU_CLEAR);
- return;
- }
-}
-
-static UINT8 __fastcall t5182_port_read(UINT16 p)
-{
- switch (p & 0xff)
- {
- case 0x00:
- case 0x01:
- return BurnYM2151ReadStatus();
-
- case 0x20:
- return t5182_semaphore_main | (irqstate & 2);
-
- case 0x30: {
- // hack to make coins pulse
- if (t5182_coin_input == 0) {
- coin_frame = 0;
- } else {
- if (coin_frame == 0) {
- coin_frame = GetCurrentFrame();
- } else {
- if ((GetCurrentFrame() - coin_frame) >= 2) {
- return 0; // no coins
- }
- }
- }
- return t5182_coin_input;
- }
- }
-
- return 0;
-}
-
-static void t5182YM2151IrqHandler(INT32 Irq)
-{
- t5182_setirq_callback((Irq) ? YM2151_ASSERT : YM2151_CLEAR);
-}
-
-void t5182Reset()
-{
-#if defined FBA_DEBUG
- if (!DebugDev_T5182Initted) bprintf(PRINT_ERROR, _T("t5182Reset called without init\n"));
-#endif
-
- ZetOpen(nCPU);
- ZetReset();
- ZetClose();
-
- BurnYM2151Reset();
-
- t5182_semaphore_snd = 0;
- t5182_semaphore_main = 0;
-
- coin_frame = 0;
-
- irqstate = 0;
-}
-
-void t5182Init(INT32 nZ80CPU, INT32 clock)
-{
- DebugDev_T5182Initted = 1;
-
- nCPU = nZ80CPU;
-
- t5182RAM = (UINT8*)BurnMalloc(0x800);
-
- ZetInit(nCPU);
- ZetOpen(nCPU);
- ZetMapMemory(t5182ROM + 0x0000, 0x0000, 0x1fff, MAP_ROM);
-
- for (INT32 i = 0x2000; i < 0x4000; i += 0x800) {
- ZetMapMemory(t5182RAM, i, i + 0x7ff, MAP_RAM); // internal ram
- }
-
- for (INT32 i = 0x4000; i < 0x8000; i += 0x100) {
- ZetMapMemory(t5182SharedRAM, i, i + 0x0ff, MAP_RAM); // shared ram
- }
-
- ZetMapMemory(t5182ROM + 0x8000, 0x8000, 0xffff, MAP_ROM); // external rom
-
- ZetSetOutHandler(t5182_port_write);
- ZetSetInHandler(t5182_port_read);
- ZetClose();
-
- BurnYM2151Init(clock);
- BurnYM2151SetIrqHandler(&t5182YM2151IrqHandler);
- BurnYM2151SetRoute(BURN_SND_YM2151_YM2151_ROUTE_1, 1.00, BURN_SND_ROUTE_LEFT);
- BurnYM2151SetRoute(BURN_SND_YM2151_YM2151_ROUTE_2, 1.00, BURN_SND_ROUTE_RIGHT);
-}
-
-void t5182Exit()
-{
-#if defined FBA_DEBUG
- if (!DebugDev_T5182Initted) bprintf(PRINT_ERROR, _T("t5182Exit called without init\n"));
-#endif
-
- if (!DebugDev_T5182Initted) return;
-
- BurnYM2151Exit();
-
- if (nHasZet > 0) {
- ZetExit();
- }
-
- BurnFree (t5182RAM);
-
- t5182SharedRAM = NULL;
- t5182RAM = NULL;
- t5182ROM = NULL;
-
- DebugDev_T5182Initted = 0;
-}
-
-INT32 t5182Scan(INT32 nAction)
-{
-#if defined FBA_DEBUG
- if (!DebugDev_T5182Initted) bprintf(PRINT_ERROR, _T("t5182Scan called without init\n"));
-#endif
-
- struct BurnArea ba;
-
- if (nAction & ACB_VOLATILE) {
- memset(&ba, 0, sizeof(ba));
- ba.Data = t5182RAM;
- ba.nLen = 0x00800;
- ba.szName = "t5182 RAM";
- BurnAcb(&ba);
-
- if (nCPU == 0) { // if this is z80 #0, it is likely the only one
- ZetScan(nAction);
- }
-
- BurnYM2151Scan(nAction);
-
- SCAN_VAR(t5182_semaphore_snd);
- SCAN_VAR(t5182_semaphore_main);
- SCAN_VAR(irqstate);
- }
-
- return 0;
-}
diff --git a/jan/src/burn/devices/t5182.h b/jan/src/burn/devices/t5182.h
deleted file mode 100644
index ca020387e..000000000
--- a/jan/src/burn/devices/t5182.h
+++ /dev/null
@@ -1,25 +0,0 @@
-
-#define T5182_CLOCK (14318180/4)
-
-enum
-{
- VECTOR_INIT,
- YM2151_ASSERT,
- YM2151_CLEAR,
- YM2151_ACK,
- CPU_ASSERT,
- CPU_CLEAR
-};
-
-extern UINT8 *t5182SharedRAM; // allocate in driver
-extern UINT8 *t5182ROM; // allocate in driver
-extern UINT8 t5182_semaphore_snd;
-extern UINT8 t5182_semaphore_main;
-extern UINT8 t5182_coin_input; // coin input in driver
-
-void t5182_setirq_callback(INT32 param);
-
-void t5182Reset();
-void t5182Init(INT32 nZ80CPU, INT32 clock);
-void t5182Exit();
-INT32 t5182Scan(INT32 nAction);
diff --git a/jan/src/burn/devices/timekpr.cpp b/jan/src/burn/devices/timekpr.cpp
deleted file mode 100644
index 9ba39050a..000000000
--- a/jan/src/burn/devices/timekpr.cpp
+++ /dev/null
@@ -1,401 +0,0 @@
-// Based on MAME sources by Aaron Giles,smf
-
-#include "burnint.h"
-#include "time.h"
-#include "timekpr.h"
-
-typedef struct
-{
- UINT8 control;
- UINT8 seconds;
- UINT8 minutes;
- UINT8 hours;
- UINT8 day;
- UINT8 date;
- UINT8 month;
- UINT8 year;
- UINT8 century;
- UINT8 *data;
- INT32 type;
- INT32 size;
- INT32 offset_control;
- INT32 offset_seconds;
- INT32 offset_minutes;
- INT32 offset_hours;
- INT32 offset_day;
- INT32 offset_date;
- INT32 offset_month;
- INT32 offset_year;
- INT32 offset_century;
- INT32 offset_flags;
-} timekeeper_chip;
-
-static timekeeper_chip Chip;
-
-static INT32 AllocatedOwnDataArea = 0;
-
-#define MASK_SECONDS ( 0x7f )
-#define MASK_MINUTES ( 0x7f )
-#define MASK_HOURS ( 0x3f )
-#define MASK_DAY ( 0x07 )
-#define MASK_DATE ( 0x3f )
-#define MASK_MONTH ( 0x1f )
-#define MASK_YEAR ( 0xff )
-#define MASK_CENTURY ( 0xff )
-
-#define CONTROL_W ( 0x80 )
-#define CONTROL_R ( 0x40 )
-#define CONTROL_S ( 0x20 ) /* not emulated */
-#define CONTROL_CALIBRATION ( 0x1f ) /* not emulated */
-
-#define SECONDS_ST ( 0x80 )
-
-#define DAY_FT ( 0x40 ) /* M48T37 - not emulated */
-#define DAY_CEB ( 0x20 ) /* M48T35/M48T58 */
-#define DAY_CB ( 0x10 ) /* M48T35/M48T58 */
-
-#define DATE_BLE ( 0x80 ) /* M48T58: not emulated */
-#define DATE_BL ( 0x40 ) /* M48T58: not emulated */
-
-#define FLAGS_BL ( 0x10 ) /* MK48T08/M48T37: not emulated */
-#define FLAGS_AF ( 0x40 ) /* M48T37: not emulated */
-#define FLAGS_WDF ( 0x80 ) /* M48T37: not emulated */
-
-static inline UINT8 make_bcd(UINT8 data)
-{
- return ( ( ( data / 10 ) % 10 ) << 4 ) + ( data % 10 );
-}
-
-static inline UINT8 from_bcd(UINT8 data)
-{
- return ( ( ( data >> 4 ) & 15 ) * 10 ) + ( data & 15 );
-}
-
-static INT32 inc_bcd( UINT8 *data, INT32 mask, INT32 min, INT32 max )
-{
- INT32 bcd;
- INT32 carry;
-
- bcd = ( *( data ) + 1 ) & mask;
- carry = 0;
-
- if( ( bcd & 0x0f ) > 9 )
- {
- bcd &= 0xf0;
- bcd += 0x10;
- if( bcd > max )
- {
- bcd = min;
- carry = 1;
- }
- }
-
- *( data ) = ( *( data ) & ~mask ) | ( bcd & mask );
- return carry;
-}
-
-static void counter_to_ram(UINT8 *data, INT32 offset, INT32 counter)
-{
- if( offset >= 0 )
- {
- data[ offset ] = counter;
- }
-}
-
-static void counters_to_ram()
-{
- counter_to_ram( Chip.data, Chip.offset_control, Chip.control );
- counter_to_ram( Chip.data, Chip.offset_seconds, Chip.seconds );
- counter_to_ram( Chip.data, Chip.offset_minutes, Chip.minutes );
- counter_to_ram( Chip.data, Chip.offset_hours, Chip.hours );
- counter_to_ram( Chip.data, Chip.offset_day, Chip.day );
- counter_to_ram( Chip.data, Chip.offset_date, Chip.date );
- counter_to_ram( Chip.data, Chip.offset_month, Chip.month );
- counter_to_ram( Chip.data, Chip.offset_year, Chip.year );
- counter_to_ram( Chip.data, Chip.offset_century, Chip.century );
-}
-
-static INT32 counter_from_ram(UINT8 *data, INT32 offset)
-{
- if( offset >= 0 )
- {
- return data[ offset ];
- }
- return 0;
-}
-
-static void counters_from_ram()
-{
- Chip.control = counter_from_ram( Chip.data, Chip.offset_control );
- Chip.seconds = counter_from_ram( Chip.data, Chip.offset_seconds );
- Chip.minutes = counter_from_ram( Chip.data, Chip.offset_minutes );
- Chip.hours = counter_from_ram( Chip.data, Chip.offset_hours );
- Chip.day = counter_from_ram( Chip.data, Chip.offset_day );
- Chip.date = counter_from_ram( Chip.data, Chip.offset_date );
- Chip.month = counter_from_ram( Chip.data, Chip.offset_month );
- Chip.year = counter_from_ram( Chip.data, Chip.offset_year );
- Chip.century = counter_from_ram( Chip.data, Chip.offset_century );
-}
-
-UINT8 TimeKeeperRead(UINT32 offset)
-{
-#if defined FBA_DEBUG
- if (!DebugDev_TimeKprInitted) bprintf(PRINT_ERROR, _T("TimeKeeperRead called without init\n"));
-#endif
-
- return Chip.data[offset];
-}
-
-INT32 TimeKeeperIsEmpty()
-{
-#if defined FBA_DEBUG
- if (!DebugDev_TimeKprInitted) bprintf(PRINT_ERROR, _T("TimeKeeperIsEmpty called without init\n"));
-#endif
-
- INT32 found = 0;
-
- for (INT32 i = 0; i < Chip.size; i++) {
- if (Chip.data[i] != 0xff)
- found = 1;
- }
-
- return !found;
-}
-
-UINT8* TimeKeeperGetRaw()
-{
-#if defined FBA_DEBUG
- if (!DebugDev_TimeKprInitted) bprintf(PRINT_ERROR, _T("TimeKeeperGetRaw called without init\n"));
-#endif
-
- return Chip.data;
-}
-
-void TimeKeeperWrite(INT32 offset, UINT8 data)
-{
-#if defined FBA_DEBUG
- if (!DebugDev_TimeKprInitted) bprintf(PRINT_ERROR, _T("TimeKeeperWrite called without init\n"));
-#endif
-
- if( offset == Chip.offset_control )
- {
- if( ( Chip.control & CONTROL_W ) != 0 &&
- ( data & CONTROL_W ) == 0 )
- {
- counters_from_ram();
- }
- Chip.control = data;
- }
- else if( (Chip.type == TIMEKEEPER_M48T58 || Chip.type == TIMEKEEPER_M48T35) && offset == Chip.offset_day )
- {
- Chip.day = ( Chip.day & ~DAY_CEB ) | ( data & DAY_CEB );
- }
-
- Chip.data[ offset ] = data;
-}
-
-void TimeKeeperTick()
-{
-#if defined FBA_DEBUG
- if (!DebugDev_TimeKprInitted) bprintf(PRINT_ERROR, _T("TimeKeeperTick called without init\n"));
-#endif
-
- INT32 carry;
-
- if( ( Chip.seconds & SECONDS_ST ) != 0 ||
- ( Chip.control & CONTROL_W ) != 0 )
- {
- return;
- }
-
- carry = inc_bcd( &Chip.seconds, MASK_SECONDS, 0x00, 0x59 );
- if( carry )
- {
- carry = inc_bcd( &Chip.minutes, MASK_MINUTES, 0x00, 0x59 );
- }
- if( carry )
- {
- carry = inc_bcd( &Chip.hours, MASK_HOURS, 0x00, 0x23 );
- }
-
- if( carry )
- {
- UINT8 month;
- UINT8 year;
- UINT8 maxdays;
- static const UINT8 daysinmonth[] = { 0x31, 0x28, 0x31, 0x30, 0x31, 0x30, 0x31, 0x31, 0x30, 0x31, 0x30, 0x31 };
-
- inc_bcd( &Chip.day, MASK_DAY, 0x01, 0x07 );
-
- month = from_bcd( Chip.month );
- year = from_bcd( Chip.year );
-
- if( month == 2 && ( year % 4 ) == 0 )
- {
- maxdays = 0x29;
- }
- else if( month >= 1 && month <= 12 )
- {
- maxdays = daysinmonth[ month - 1 ];
- }
- else
- {
- maxdays = 0x31;
- }
-
- carry = inc_bcd( &Chip.date, MASK_DATE, 0x01, maxdays );
- }
- if( carry )
- {
- carry = inc_bcd( &Chip.month, MASK_MONTH, 0x01, 0x12 );
- }
- if( carry )
- {
- carry = inc_bcd( &Chip.year, MASK_YEAR, 0x00, 0x99 );
- }
- if( carry )
- {
- carry = inc_bcd( &Chip.century, MASK_CENTURY, 0x00, 0x99 );
- if( (Chip.type == TIMEKEEPER_M48T58 || Chip.type == TIMEKEEPER_M48T35) && ( Chip.day & DAY_CEB ) != 0 )
- {
- Chip.day ^= DAY_CB;
- }
- }
-
- if( ( Chip.control & CONTROL_R ) == 0 )
- {
- counters_to_ram();
- }
-}
-
-void TimeKeeperInit(INT32 type, UINT8 *data)
-{
- DebugDev_TimeKprInitted = 1;
-
- time_t rawtime;
- struct tm *timeinfo;
-
- Chip.type = type;
-
- switch( Chip.type )
- {
- case TIMEKEEPER_M48T02:
- Chip.offset_control = 0x7f8;
- Chip.offset_seconds = 0x7f9;
- Chip.offset_minutes = 0x7fa;
- Chip.offset_hours = 0x7fb;
- Chip.offset_day = 0x7fc;
- Chip.offset_date = 0x7fd;
- Chip.offset_month = 0x7fe;
- Chip.offset_year = 0x7ff;
- Chip.offset_century = -1;
- Chip.offset_flags = -1;
- Chip.size = 0x800;
- break;
- case TIMEKEEPER_M48T35:
- Chip.offset_control = 0x7ff8;
- Chip.offset_seconds = 0x7ff9;
- Chip.offset_minutes = 0x7ffa;
- Chip.offset_hours = 0x7ffb;
- Chip.offset_day = 0x7ffc;
- Chip.offset_date = 0x7ffd;
- Chip.offset_month = 0x7ffe;
- Chip.offset_year = 0x7fff;
- Chip.offset_century = -1;
- Chip.offset_flags = -1;
- Chip.size = 0x8000;
- break;
- case TIMEKEEPER_M48T37:
- Chip.offset_control = 0x7ff8;
- Chip.offset_seconds = 0x7ff9;
- Chip.offset_minutes = 0x7ffa;
- Chip.offset_hours = 0x7ffb;
- Chip.offset_day = 0x7ffc;
- Chip.offset_date = 0x7ffd;
- Chip.offset_month = 0x7ffe;
- Chip.offset_year = 0x7fff;
- Chip.offset_century = 0x7ff1;
- Chip.offset_flags = 0x7ff0;
- Chip.size = 0x8000;
- break;
- case TIMEKEEPER_M48T58:
- Chip.offset_control = 0x1ff8;
- Chip.offset_seconds = 0x1ff9;
- Chip.offset_minutes = 0x1ffa;
- Chip.offset_hours = 0x1ffb;
- Chip.offset_day = 0x1ffc;
- Chip.offset_date = 0x1ffd;
- Chip.offset_month = 0x1ffe;
- Chip.offset_year = 0x1fff;
- Chip.offset_century = -1;
- Chip.offset_flags = -1;
- Chip.size = 0x2000;
- break;
- case TIMEKEEPER_MK48T08:
- Chip.offset_control = 0x1ff8;
- Chip.offset_seconds = 0x1ff9;
- Chip.offset_minutes = 0x1ffa;
- Chip.offset_hours = 0x1ffb;
- Chip.offset_day = 0x1ffc;
- Chip.offset_date = 0x1ffd;
- Chip.offset_month = 0x1ffe;
- Chip.offset_year = 0x1fff;
- Chip.offset_century = 0x1ff1;
- Chip.offset_flags = 0x1ff0;
- Chip.size = 0x2000;
- break;
- }
-
- if( data == NULL )
- {
- data = (UINT8*)BurnMalloc(Chip.size);
- memset(data, 0xff, Chip.size );
- AllocatedOwnDataArea = 1;
- }
- Chip.data = data;
-
- time(&rawtime);
- timeinfo = localtime(&rawtime);
-
- Chip.control = 0;
- Chip.seconds = make_bcd(timeinfo->tm_sec);
- Chip.minutes = make_bcd(timeinfo->tm_min);
- Chip.hours = make_bcd(timeinfo->tm_hour);
- Chip.day = make_bcd(timeinfo->tm_wday + 1 );
- Chip.date = make_bcd(timeinfo->tm_mday );
- Chip.month = make_bcd(timeinfo->tm_mon + 1 );
- Chip.year = make_bcd(timeinfo->tm_year % 100 );
- Chip.century = make_bcd(timeinfo->tm_year / 100 );
-}
-
-void TimeKeeperExit()
-{
-#if defined FBA_DEBUG
- if (!DebugDev_TimeKprInitted) bprintf(PRINT_ERROR, _T("TimeKeeperExit called without init\n"));
-#endif
-
- if (AllocatedOwnDataArea) {
- BurnFree (Chip.data);
- }
- AllocatedOwnDataArea = 0;
- memset(&Chip, 0, sizeof(Chip));
-
- DebugDev_TimeKprInitted = 0;
-}
-
-void TimeKeeperScan(INT32 nAction)
-{
-#if defined FBA_DEBUG
- if (!DebugDev_TimeKprInitted) bprintf(PRINT_ERROR, _T("TimeKeeperScan called without init\n"));
-#endif
-
- struct BurnArea ba;
-
- if (nAction & ACB_NVRAM) {
- memset(&ba, 0, sizeof(ba));
- ba.Data = Chip.data;
- ba.nLen = Chip.size;
- ba.szName = "Time Keeper RAM";
- BurnAcb(&ba);
- }
-}
diff --git a/jan/src/burn/devices/timekpr.h b/jan/src/burn/devices/timekpr.h
deleted file mode 100644
index e8b8b6c79..000000000
--- a/jan/src/burn/devices/timekpr.h
+++ /dev/null
@@ -1,15 +0,0 @@
-#define TIMEKEEPER_M48T02 1
-#define TIMEKEEPER_M48T35 2
-#define TIMEKEEPER_M48T37 3
-#define TIMEKEEPER_M48T58 4
-#define TIMEKEEPER_MK48T08 5
-
-UINT8 TimeKeeperRead(UINT32 offset);
-void TimeKeeperWrite(INT32 offset, UINT8 data);
-void TimeKeeperTick();
-void TimeKeeperInit(INT32 type, UINT8 *data);
-void TimeKeeperExit();
-void TimeKeeperScan(INT32 nAction);
-INT32 TimeKeeperIsEmpty();
-UINT8* TimeKeeperGetRaw();
-
diff --git a/jan/src/burn/devices/tms34061.cpp b/jan/src/burn/devices/tms34061.cpp
deleted file mode 100644
index 551df93ad..000000000
--- a/jan/src/burn/devices/tms34061.cpp
+++ /dev/null
@@ -1,623 +0,0 @@
-/****************************************************************************
- * *
- * Functions to emulate the TMS34061 video controller *
- * *
- * Created by Zsolt Vasvari on 5/26/1998. *
- * Updated by Aaron Giles on 11/21/2000. *
- * Modified for use in FBA by iq_132 4/15/2014 *
- * *
- * This is far from complete. See the TMS34061 User's Guide available on *
- * www.spies.com/arcade *
- * *
- ****************************************************************************/
-
-#include "burnint.h"
-#include "driver.h"
-
-/* register constants */
-enum
-{
- TMS34061_HORENDSYNC = 0,
- TMS34061_HORENDBLNK,
- TMS34061_HORSTARTBLNK,
- TMS34061_HORTOTAL,
- TMS34061_VERENDSYNC,
- TMS34061_VERENDBLNK,
- TMS34061_VERSTARTBLNK,
- TMS34061_VERTOTAL,
- TMS34061_DISPUPDATE,
- TMS34061_DISPSTART,
- TMS34061_VERINT,
- TMS34061_CONTROL1,
- TMS34061_CONTROL2,
- TMS34061_STATUS,
- TMS34061_XYOFFSET,
- TMS34061_XYADDRESS,
- TMS34061_DISPADDRESS,
- TMS34061_VERCOUNTER,
- TMS34061_REGCOUNT
-};
-
-static UINT8 m_rowshift;
-static UINT32 m_vramsize;
-static UINT16 m_regs[TMS34061_REGCOUNT];
-static UINT16 m_xmask;
-static UINT8 m_yshift;
-static UINT32 m_vrammask;
-static UINT8 * m_vram;
-static UINT8 * m_vram_orig;
-static UINT8 * m_latchram;
-static UINT8 * m_latchram_orig;
-static UINT8 m_latchdata;
-static UINT8 * m_shiftreg;
-static INT32 m_timer;
-static void (*m_interrupt_cb)(INT32 state);
-static void (*m_partial_update)();
-INT32 tms34061_current_scanline;
-
-//-------------------------------------------------
-// device_start - device-specific startup
-//-------------------------------------------------
-
-void tms34061_reset()
-{
-#if defined FBA_DEBUG
- if (!DebugDev_Tms34061Initted) bprintf(PRINT_ERROR, _T("tms34061_reset called without init\n"));
-#endif
-
- memset (m_vram, 0, m_vramsize);
- memset (m_latchram, 0, m_vramsize);
-
- /* initialize registers to their default values from the manual */
- m_regs[TMS34061_HORENDSYNC] = 0x0010;
- m_regs[TMS34061_HORENDBLNK] = 0x0020;
- m_regs[TMS34061_HORSTARTBLNK] = 0x01f0;
- m_regs[TMS34061_HORTOTAL] = 0x0200;
- m_regs[TMS34061_VERENDSYNC] = 0x0004;
- m_regs[TMS34061_VERENDBLNK] = 0x0010;
- m_regs[TMS34061_VERSTARTBLNK] = 0x00f0;
- m_regs[TMS34061_VERTOTAL] = 0x0100;
- m_regs[TMS34061_DISPUPDATE] = 0x0000;
- m_regs[TMS34061_DISPSTART] = 0x0000;
- m_regs[TMS34061_VERINT] = 0x0000;
- m_regs[TMS34061_CONTROL1] = 0x7000;
- m_regs[TMS34061_CONTROL2] = 0x0600;
- m_regs[TMS34061_STATUS] = 0x0000;
- m_regs[TMS34061_XYOFFSET] = 0x0010;
- m_regs[TMS34061_XYADDRESS] = 0x0000;
- m_regs[TMS34061_DISPADDRESS] = 0x0000;
- m_regs[TMS34061_VERCOUNTER] = 0x0000;
-
- /* start vertical interrupt timer */
- m_timer = -1; // disable
-}
-
-void tms34061_init(UINT8 rowshift, UINT32 ram_size, void (*partial_update)(), void (*callback)(INT32 state))
-{
- DebugDev_Tms34061Initted = 1;
-
- m_partial_update = partial_update;
- m_rowshift = rowshift;
- m_vramsize = ram_size;
-
- /* resolve callbak */
- m_interrupt_cb = callback;
-
- /* reset the data */
- m_vrammask = m_vramsize - 1;
-
- /* allocate memory for VRAM */
- m_vram = m_vram_orig = (UINT8*)BurnMalloc(m_vramsize + 256 * 2);
-
- /* allocate memory for latch RAM */
- m_latchram = m_latchram_orig = (UINT8*)BurnMalloc(m_vramsize + 256 * 2);
-
- /* add some buffer space for VRAM and latch RAM */
- m_vram += 256;
- m_latchram += 256;
-
- /* point the shift register to the base of VRAM for now */
- m_shiftreg = m_vram;
-}
-
-void tms34061_exit()
-{
-#if defined FBA_DEBUG
- if (!DebugDev_Tms34061Initted) bprintf(PRINT_ERROR, _T("tms34061_exit called without init\n"));
-#endif
-
- BurnFree(m_vram_orig);
- m_vram = NULL;
- BurnFree(m_latchram_orig);
- m_latchram = NULL;
-
- DebugDev_Tms34061Initted = 0;
-}
-
-/*************************************
- *
- * Interrupt handling
- *
- *************************************/
-
-static void update_interrupts()
-{
- /* if we have a callback, process it */
- if (m_interrupt_cb)
- {
- /* if the status bit is set, and ints are enabled, turn it on */
- if ((m_regs[TMS34061_STATUS] & 0x0001) && (m_regs[TMS34061_CONTROL1] & 0x0400))
- m_interrupt_cb(ASSERT_LINE);
- else
- m_interrupt_cb(CLEAR_LINE);
- }
-}
-
-
-void tms34061_interrupt()
-{
-#if defined FBA_DEBUG
- if (!DebugDev_Tms34061Initted) bprintf(PRINT_ERROR, _T("tms34061_interrupt called without init\n"));
-#endif
-
- if (tms34061_current_scanline != m_timer) return;
-
- /* set the interrupt bit in the status reg */
- m_regs[TMS34061_STATUS] |= 1;
-
- /* update the interrupt state */
- update_interrupts();
-}
-
-
-
-/*************************************
- *
- * Register writes
- *
- *************************************/
-
-static void register_w(INT32 offset, UINT8 data)
-{
- INT32 scanline;
- INT32 regnum = offset >> 2;
-
- /* certain registers affect the display directly */
- if ((regnum >= TMS34061_HORENDSYNC && regnum <= TMS34061_DISPSTART) ||
- (regnum == TMS34061_CONTROL2))
- m_partial_update();
-
- /* store the hi/lo half */
- if (regnum < TMS34061_REGCOUNT)
- {
- if (offset & 0x02)
- m_regs[regnum] = (m_regs[regnum] & 0x00ff) | (data << 8);
- else
- m_regs[regnum] = (m_regs[regnum] & 0xff00) | data;
- }
-
- /* update the state of things */
- switch (regnum)
- {
- /* vertical interrupt: adjust the timer */
- case TMS34061_VERINT:
- scanline = m_regs[TMS34061_VERINT] - m_regs[TMS34061_VERENDBLNK];
-
- if (scanline < 0)
- scanline += m_regs[TMS34061_VERTOTAL];
-
- // FBA -- this isn't accurate, it will only trigger on a per-scanline basis, but should be
- // scanline and horizontal position in the scanline. It doesn't seem to bother the tested
- // games much though, so don't worry about it
- m_timer = scanline; //m_regs[TMS34061_HORSTARTBLNK];
- // m_timer->adjust(m_screen->time_until_pos(scanline, m_regs[TMS34061_HORSTARTBLNK]));
- break;
-
- /* XY offset: set the X and Y masks */
- case TMS34061_XYOFFSET:
- switch (m_regs[TMS34061_XYOFFSET] & 0x00ff)
- {
- case 0x01: m_yshift = 2; break;
- case 0x02: m_yshift = 3; break;
- case 0x04: m_yshift = 4; break;
- case 0x08: m_yshift = 5; break;
- case 0x10: m_yshift = 6; break;
- case 0x20: m_yshift = 7; break;
- case 0x40: m_yshift = 8; break;
- case 0x80: m_yshift = 9; break;
- default: /*logerror("Invalid value for XYOFFSET = %04x\n", m_regs[TMS34061_XYOFFSET]);*/ break;
- }
- m_xmask = (1 << m_yshift) - 1;
- break;
-
- /* CONTROL1: they could have turned interrupts on */
- case TMS34061_CONTROL1:
- update_interrupts();
- break;
-
- /* other supported registers */
- case TMS34061_XYADDRESS:
- break;
- }
-}
-
-
-
-/*************************************
- *
- * Register reads
- *
- *************************************/
-
-static UINT8 register_r(INT32 offset)
-{
- INT32 regnum = offset >> 2;
- UINT16 result;
-
- /* extract the correct portion of the register */
- if (regnum < TMS34061_REGCOUNT)
- result = m_regs[regnum];
- else
- result = 0xffff;
-
- /* special cases: */
- switch (regnum)
- {
- /* status register: a read here clears it */
- case TMS34061_STATUS:
- m_regs[TMS34061_STATUS] = 0;
- update_interrupts();
- break;
-
- /* vertical count register: return the current scanline */
- case TMS34061_VERCOUNTER:
- result = (tms34061_current_scanline + m_regs[TMS34061_VERENDBLNK]) % m_regs[TMS34061_VERTOTAL];
- break;
- }
-
- /* log it */
- return (offset & 0x02) ? (result >> 8) : result;
-}
-
-
-
-/*************************************
- *
- * XY addressing
- *
- *************************************/
-
-static void adjust_xyaddress(INT32 offset)
-{
- /* note that carries are allowed if the Y coordinate isn't being modified */
- switch (offset & 0x1e)
- {
- case 0x00: /* no change */
- break;
-
- case 0x02: /* X + 1 */
- m_regs[TMS34061_XYADDRESS]++;
- break;
-
- case 0x04: /* X - 1 */
- m_regs[TMS34061_XYADDRESS]--;
- break;
-
- case 0x06: /* X = 0 */
- m_regs[TMS34061_XYADDRESS] &= ~m_xmask;
- break;
-
- case 0x08: /* Y + 1 */
- m_regs[TMS34061_XYADDRESS] += 1 << m_yshift;
- break;
-
- case 0x0a: /* X + 1, Y + 1 */
- m_regs[TMS34061_XYADDRESS] = (m_regs[TMS34061_XYADDRESS] & ~m_xmask) |
- ((m_regs[TMS34061_XYADDRESS] + 1) & m_xmask);
- m_regs[TMS34061_XYADDRESS] += 1 << m_yshift;
- break;
-
- case 0x0c: /* X - 1, Y + 1 */
- m_regs[TMS34061_XYADDRESS] = (m_regs[TMS34061_XYADDRESS] & ~m_xmask) |
- ((m_regs[TMS34061_XYADDRESS] - 1) & m_xmask);
- m_regs[TMS34061_XYADDRESS] += 1 << m_yshift;
- break;
-
- case 0x0e: /* X = 0, Y + 1 */
- m_regs[TMS34061_XYADDRESS] &= ~m_xmask;
- m_regs[TMS34061_XYADDRESS] += 1 << m_yshift;
- break;
-
- case 0x10: /* Y - 1 */
- m_regs[TMS34061_XYADDRESS] -= 1 << m_yshift;
- break;
-
- case 0x12: /* X + 1, Y - 1 */
- m_regs[TMS34061_XYADDRESS] = (m_regs[TMS34061_XYADDRESS] & ~m_xmask) |
- ((m_regs[TMS34061_XYADDRESS] + 1) & m_xmask);
- m_regs[TMS34061_XYADDRESS] -= 1 << m_yshift;
- break;
-
- case 0x14: /* X - 1, Y - 1 */
- m_regs[TMS34061_XYADDRESS] = (m_regs[TMS34061_XYADDRESS] & ~m_xmask) |
- ((m_regs[TMS34061_XYADDRESS] - 1) & m_xmask);
- m_regs[TMS34061_XYADDRESS] -= 1 << m_yshift;
- break;
-
- case 0x16: /* X = 0, Y - 1 */
- m_regs[TMS34061_XYADDRESS] &= ~m_xmask;
- m_regs[TMS34061_XYADDRESS] -= 1 << m_yshift;
- break;
-
- case 0x18: /* Y = 0 */
- m_regs[TMS34061_XYADDRESS] &= m_xmask;
- break;
-
- case 0x1a: /* X + 1, Y = 0 */
- m_regs[TMS34061_XYADDRESS]++;
- m_regs[TMS34061_XYADDRESS] &= m_xmask;
- break;
-
- case 0x1c: /* X - 1, Y = 0 */
- m_regs[TMS34061_XYADDRESS]--;
- m_regs[TMS34061_XYADDRESS] &= m_xmask;
- break;
-
- case 0x1e: /* X = 0, Y = 0 */
- m_regs[TMS34061_XYADDRESS] = 0;
- break;
- }
-}
-
-
-static void xypixel_w(INT32 offset, UINT8 data)
-{
- /* determine the offset, then adjust it */
- INT32 pixeloffs = m_regs[TMS34061_XYADDRESS];
- if (offset)
- adjust_xyaddress(offset);
-
- /* adjust for the upper bits */
- pixeloffs |= (m_regs[TMS34061_XYOFFSET] & 0x0f00) << 8;
-
- /* mask to the VRAM size */
- pixeloffs &= m_vrammask;
-
- /* set the pixel data */
- m_vram[pixeloffs] = data;
- m_latchram[pixeloffs] = m_latchdata;
-}
-
-
-static UINT8 xypixel_r(INT32 offset)
-{
- /* determine the offset, then adjust it */
- INT32 pixeloffs = m_regs[TMS34061_XYADDRESS];
- if (offset)
- adjust_xyaddress(offset);
-
- /* adjust for the upper bits */
- pixeloffs |= (m_regs[TMS34061_XYOFFSET] & 0x0f00) << 8;
-
- /* mask to the VRAM size */
- pixeloffs &= m_vrammask;
-
- /* return the result */
- return m_vram[pixeloffs];
-}
-
-
-
-/*************************************
- *
- * Core writes
- *
- *************************************/
-
-void tms34061_write(INT32 col, INT32 row, INT32 func, UINT8 data)
-{
-#if defined FBA_DEBUG
- if (!DebugDev_Tms34061Initted) bprintf(PRINT_ERROR, _T("tms34061_write called without init\n"));
-#endif
-
- INT32 offs;
-
- /* the function code determines what to do */
- switch (func)
- {
- /* both 0 and 2 map to register access */
- case 0:
- case 2:
- register_w(col, data);
- break;
-
- /* function 1 maps to XY access; col is the address adjustment */
- case 1:
- xypixel_w(col, data);
- break;
-
- /* function 3 maps to direct access */
- case 3:
- offs = ((row << m_rowshift) | col) & m_vrammask;
- if (m_regs[TMS34061_CONTROL2] & 0x0040)
- offs |= (m_regs[TMS34061_CONTROL2] & 3) << 16;
-
- if (m_vram[offs] != data || m_latchram[offs] != m_latchdata)
- {
- m_vram[offs] = data;
- m_latchram[offs] = m_latchdata;
- }
- break;
-
- /* function 4 performs a shift reg transfer to VRAM */
- case 4:
- offs = col << m_rowshift;
- if (m_regs[TMS34061_CONTROL2] & 0x0040)
- offs |= (m_regs[TMS34061_CONTROL2] & 3) << 16;
- offs &= m_vrammask;
-
- memcpy(&m_vram[offs], m_shiftreg, (size_t)1 << m_rowshift);
- memset(&m_latchram[offs], m_latchdata, (size_t)1 << m_rowshift);
- break;
-
- /* function 5 performs a shift reg transfer from VRAM */
- case 5:
- offs = col << m_rowshift;
- if (m_regs[TMS34061_CONTROL2] & 0x0040)
- offs |= (m_regs[TMS34061_CONTROL2] & 3) << 16;
- offs &= m_vrammask;
-
- m_shiftreg = &m_vram[offs];
- break;
-
- /* log anything else */
- default:
- break;
- }
-}
-
-
-UINT8 tms34061_read(INT32 col, INT32 row, INT32 func)
-{
-#if defined FBA_DEBUG
- if (!DebugDev_Tms34061Initted) bprintf(PRINT_ERROR, _T("tms34061_read called without init\n"));
-#endif
-
- INT32 result = 0;
- INT32 offs;
-
- /* the function code determines what to do */
- switch (func)
- {
- /* both 0 and 2 map to register access */
- case 0:
- case 2:
- result = register_r(col);
- break;
-
- /* function 1 maps to XY access; col is the address adjustment */
- case 1:
- result = xypixel_r(col);
- break;
-
- /* funtion 3 maps to direct access */
- case 3:
- offs = ((row << m_rowshift) | col) & m_vrammask;
- result = m_vram[offs];
- break;
-
- /* function 4 performs a shift reg transfer to VRAM */
- case 4:
- offs = col << m_rowshift;
- if (m_regs[TMS34061_CONTROL2] & 0x0040)
- offs |= (m_regs[TMS34061_CONTROL2] & 3) << 16;
- offs &= m_vrammask;
-
- memcpy(&m_vram[offs], m_shiftreg, (size_t)1 << m_rowshift);
- memset(&m_latchram[offs], m_latchdata, (size_t)1 << m_rowshift);
- break;
-
- /* function 5 performs a shift reg transfer from VRAM */
- case 5:
- offs = col << m_rowshift;
- if (m_regs[TMS34061_CONTROL2] & 0x0040)
- offs |= (m_regs[TMS34061_CONTROL2] & 3) << 16;
- offs &= m_vrammask;
-
- m_shiftreg = &m_vram[offs];
- break;
-
- /* log anything else */
- default:
- break;
- }
-
- return result;
-}
-
-
-
-/*************************************
- *
- * Misc functions
- *
- *************************************/
-
-UINT8 tms34061_latch_read()
-{
-#if defined FBA_DEBUG
- if (!DebugDev_Tms34061Initted) bprintf(PRINT_ERROR, _T("tms34061_latch_read called without init\n"));
-#endif
-
- return m_latchdata;
-}
-
-
-void tms34061_latch_write(UINT8 data)
-{
-#if defined FBA_DEBUG
- if (!DebugDev_Tms34061Initted) bprintf(PRINT_ERROR, _T("tms34061_latch_write called without init\n"));
-#endif
-
- m_latchdata = data;
-}
-
-INT32 tms34061_display_blanked()
-{
-#if defined FBA_DEBUG
- if (!DebugDev_Tms34061Initted) bprintf(PRINT_ERROR, _T("tms34061_display_blanked called without init\n"));
-#endif
-
- return (~m_regs[TMS34061_CONTROL2] >> 13) & 1;
-}
-
-UINT8 *tms34061_get_vram_pointer()
-{
-#if defined FBA_DEBUG
- if (!DebugDev_Tms34061Initted) bprintf(PRINT_ERROR, _T("tms34061_get_vram_pointer called without init\n"));
-#endif
-
- return m_vram;
-}
-
-
-/*************************************
- *
- * Save function
- *
- *************************************/
-
-INT32 tms34061_scan(INT32 nAction, INT32 *)
-{
-#if defined FBA_DEBUG
- if (!DebugDev_Tms34061Initted) bprintf(PRINT_ERROR, _T("tms34061_scan called without init\n"));
-#endif
-
- struct BurnArea ba;
-
- if (nAction & ACB_VOLATILE) {
- memset(&ba, 0, sizeof(ba));
-
- ba.Data = m_vram;
- ba.nLen = m_vramsize+256;
- ba.szName = "tms34061 video ram";
- BurnAcb(&ba);
-
- ba.Data = m_latchram;
- ba.nLen = m_vramsize+256;
- ba.szName = "tms34061 latch ram";
- BurnAcb(&ba);
-
- ba.Data = m_regs;
- ba.nLen = TMS34061_REGCOUNT * sizeof(UINT16);
- ba.szName = "tms34061 registers";
- BurnAcb(&ba);
-
- SCAN_VAR(m_xmask);
- SCAN_VAR(m_yshift);
- SCAN_VAR(m_latchdata);
- SCAN_VAR(m_timer);
- }
-
- return 0;
-}
diff --git a/jan/src/burn/devices/tms34061.h b/jan/src/burn/devices/tms34061.h
deleted file mode 100644
index 3d7532de7..000000000
--- a/jan/src/burn/devices/tms34061.h
+++ /dev/null
@@ -1,15 +0,0 @@
-
-UINT8 tms34061_latch_read();
-void tms34061_latch_write(UINT8 data);
-UINT8 tms34061_read(INT32 col, INT32 row, INT32 func);
-void tms34061_write(INT32 col, INT32 row, INT32 func, UINT8 data);
-
-INT32 tms34061_display_blanked();
-UINT8 *tms34061_get_vram_pointer();
-extern INT32 tms34061_current_scanline;
-
-void tms34061_interrupt();
-void tms34061_init(UINT8 rowshift, UINT32 ram_size, void (*partial_update)(), void (*callback)(INT32 state));
-void tms34061_reset();
-void tms34061_exit();
-INT32 tms34061_scan(INT32 nAction, INT32 *);
diff --git a/jan/src/burn/devices/tms9928a.cpp b/jan/src/burn/devices/tms9928a.cpp
deleted file mode 100644
index 95acdb2dc..000000000
--- a/jan/src/burn/devices/tms9928a.cpp
+++ /dev/null
@@ -1,632 +0,0 @@
-// Based on MAME sources by Sean Young, Nathan Woods, Aaron Giles, Wilbert Pol, and hap
-
-#include "tiles_generic.h"
-#include "tms9928a.h"
-
-/* Some defines used in defining the screens */
-#define TMS9928A_TOTAL_HORZ 342
-#define TMS9928A_TOTAL_VERT_NTSC 262
-#define TMS9928A_TOTAL_VERT_PAL 313
-
-#define TMS9928A_HORZ_DISPLAY_START (2 + 14 + 8 + 13)
-#define TMS9928A_VERT_DISPLAY_START_PAL 16
-#define TMS9928A_VERT_DISPLAY_START_NTSC 16
-
-static INT32 TMS9928A_palette[16] = {
- 0x000000, 0x000000, 0x21c842, 0x5edc78, 0x5455ed, 0x7d76fc, 0xd4524d, 0x42ebf5,
- 0xfc5554, 0xff7978, 0xd4c154, 0xe6ce80, 0x21b03b, 0xc95bba, 0xcccccc, 0xffffff
-};
-
-typedef struct {
- UINT8 mode;
- UINT8 ReadAhead;
- UINT8 Regs[8];
- UINT8 StatusReg;
- UINT8 FifthSprite;
- UINT8 FirstByte;
- UINT8 latch;
- UINT8 INT;
- INT32 Addr;
- INT32 colour;
- INT32 pattern;
- INT32 nametbl;
- INT32 spriteattribute;
- INT32 spritepattern;
- INT32 colourmask;
- INT32 patternmask;
-
- UINT8 *vMem;
- UINT16 *tmpbmp;
- INT32 tmpbmpsize;
- INT32 vramsize;
- INT32 model;
- INT32 revA;
-
- INT32 LimitSprites;
- INT32 top_border;
- INT32 bottom_border;
- INT32 vertical_size;
-
- void (*INTCallback)(INT32);
-} TMS9928A;
-
-static TMS9928A tms;
-
-static INT32 TMS9928A_initted = 0;
-
-static UINT32 Palette[16]; // high color support
-
-static void TMS89928aPaletteRecalc()
-{
- for (INT32 i = 0; i < 16; i++) {
- Palette[i] = BurnHighCol(TMS9928A_palette[i] >> 16, TMS9928A_palette[i] >> 8, TMS9928A_palette[i] >> 0 , 0);
- }
-}
-
-static void check_interrupt()
-{
- INT32 b = (tms.StatusReg & 0x80 && tms.Regs[1] & 0x20) ? 1 : 0;
- if (b != tms.INT) {
- tms.INT = b;
- if (tms.INTCallback) tms.INTCallback (tms.INT);
- }
-}
-
-static void update_table_masks()
-{
- tms.colourmask = (tms.Regs[3] & 0x7f) * 8 | 7;
- tms.patternmask = (tms.Regs[4] & 3) * 256 | (tms.colourmask & 0xff);
-}
-
-static void change_register(INT32 reg, UINT8 val)
-{
- static const UINT8 Mask[8] = { 0x03, 0xfb, 0x0f, 0xff, 0x07, 0x7f, 0x07, 0xff };
-
- val &= Mask[reg];
- tms.Regs[reg] = val;
-
- switch (reg)
- {
- case 0:
- {
- if (val & 2) {
- tms.colour = ((tms.Regs[3] & 0x80) * 64) & (tms.vramsize - 1);
- tms.pattern = ((tms.Regs[4] & 4) * 2048) & (tms.vramsize - 1);
- update_table_masks();
- } else {
- tms.colour = (tms.Regs[3] * 64) & (tms.vramsize - 1);
- tms.pattern = (tms.Regs[4] * 2048) & (tms.vramsize - 1);
- }
- tms.mode = ( (tms.revA ? (tms.Regs[0] & 2) : 0) | ((tms.Regs[1] & 0x10)>>4) | ((tms.Regs[1] & 8)>>1));
- }
- break;
-
- case 1:
- {
- tms.mode = ( (tms.revA ? (tms.Regs[0] & 2) : 0) | ((tms.Regs[1] & 0x10)>>4) | ((tms.Regs[1] & 8)>>1));
- check_interrupt();
- }
- break;
-
- case 2:
- tms.nametbl = (val * 1024) & (tms.vramsize - 1);
- break;
-
- case 3:
- {
- if (tms.Regs[0] & 2) {
- tms.colour = ((val & 0x80) * 64) & (tms.vramsize - 1);
- update_table_masks();
- } else {
- tms.colour = (val * 64) & (tms.vramsize - 1);
- }
- }
- break;
-
- case 4:
- {
- if (tms.Regs[0] & 2) {
- tms.pattern = ((val & 4) * 2048) & (tms.vramsize - 1);
- update_table_masks();
- } else {
- tms.pattern = (val * 2048) & (tms.vramsize - 1);
- }
- }
- break;
-
- case 5:
- tms.spriteattribute = (val * 128) & (tms.vramsize - 1);
- break;
-
- case 6:
- tms.spritepattern = (val * 2048) & (tms.vramsize - 1);
- break;
-
- case 7:
- /* The backdrop is updated at TMS9928A_refresh() */
- break;
- }
-}
-
-void TMS9928AReset()
-{
- for (INT32 i = 0; i < 8; i++)
- tms.Regs[i] = 0;
-
- memset(tms.vMem, 0, tms.vramsize);
- memset(tms.tmpbmp, 0, tms.tmpbmpsize);
-
- tms.StatusReg = 0;
- tms.FifthSprite = 31;
- tms.nametbl = tms.pattern = tms.colour = 0;
- tms.spritepattern = tms.spriteattribute = 0;
- tms.colourmask = tms.patternmask = 0x3fff;
- tms.Addr = tms.ReadAhead = tms.INT = 0;
- tms.FirstByte = 0;
- tms.latch = 0;
- tms.mode = 0;
-}
-
-void TMS9928AInit(INT32 model, INT32 vram, INT32 borderx, INT32 bordery, void (*INTCallback)(int))
-{
- TMS9928A_initted = 1;
-
- GenericTilesInit();
-
- memset(&tms, 0, sizeof(tms));
- tms.model = model;
- tms.revA = 1;
-
- tms.INTCallback = INTCallback;
-
- tms.top_border = TMS9928A_VERT_DISPLAY_START_NTSC;
- tms.bottom_border = ((tms.model == TMS9929) || (tms.model == TMS9929A)) ? 51 : 24;
- tms.vertical_size = TMS9928A_TOTAL_VERT_NTSC;
-
- tms.vramsize = vram;
- tms.vMem = (UINT8*)BurnMalloc(tms.vramsize);
-
- tms.tmpbmpsize = TMS9928A_TOTAL_HORZ * TMS9928A_TOTAL_VERT_PAL * sizeof(short) * 2;
- tms.tmpbmp = (UINT16*)BurnMalloc(tms.tmpbmpsize);
-
- TMS9928AReset ();
- tms.LimitSprites = 1;
-}
-
-void TMS9928AExit()
-{
- if (!TMS9928A_initted) return;
-
- TMS9928A_initted = 0;
- TMS9928AReset();
-
- GenericTilesExit();
-
- BurnFree (tms.tmpbmp);
- BurnFree (tms.vMem);
-}
-
-void TMS9928APostLoad()
-{
- for (INT32 i = 0; i < 8; i++)
- change_register(i, tms.Regs[i]);
-
- if (tms.INTCallback) tms.INTCallback(tms.INT);
-}
-
-UINT8 TMS9928AReadVRAM()
-{
- INT32 b = tms.ReadAhead;
- tms.ReadAhead = tms.vMem[tms.Addr];
- tms.Addr = (tms.Addr + 1) & (tms.vramsize - 1);
- tms.latch = 0;
- return b;
-}
-
-void TMS9928AWriteVRAM(INT32 data)
-{
- tms.vMem[tms.Addr] = data;
- tms.Addr = (tms.Addr + 1) & (tms.vramsize - 1);
- tms.ReadAhead = data;
- tms.latch = 0;
-}
-
-UINT8 TMS9928AReadRegs()
-{
- INT32 b = tms.StatusReg;
- tms.StatusReg = tms.FifthSprite;
- check_interrupt();
- tms.latch = 0;
- return b;
-}
-
-void TMS9928AWriteRegs(INT32 data)
-{
- if (tms.latch) {
- /* set high part of read/write address */
- tms.Addr = ((UINT16)data << 8 | (tms.Addr & 0xff)) & (tms.vramsize - 1);
- if (data & 0x80) {
- change_register(data & 0x07, tms.FirstByte);
- } else {
- if (!(data & 0x40)) {
- TMS9928AReadVRAM();
- }
- }
-
- tms.latch = 0;
- } else {
- /* set low part of read/write address */
- tms.Addr = ((tms.Addr & 0xff00) | data) & (tms.vramsize - 1);
- tms.FirstByte = data;
- tms.latch = 1;
- }
-}
-
-void TMS9928ASetSpriteslimit(INT32 limit)
-{
- tms.LimitSprites = limit;
-}
-
-static inline UINT8 readvmem(INT32 vaddr)
-{
- return tms.vMem[vaddr];
-}
-
-static void TMS9928AScanline_INT(INT32 vpos)
-{
- UINT16 BackColour = tms.Regs[7] & 0xf;
- UINT16 *p = tms.tmpbmp + (vpos * TMS9928A_TOTAL_HORZ);
-
- INT32 y = vpos - tms.top_border;
-
- if ( y < 0 || y >= 192 || !(tms.Regs[1] & 0x40) )
- {
- /* Draw backdrop colour */
- for ( INT32 i = 0; i < TMS9928A_TOTAL_HORZ; i++ )
- p[i] = BackColour;
-
- /* vblank is set at the last cycle of the first inactive line */
- if ( y == 193 )
- {
- tms.StatusReg |= 0x80;
- check_interrupt();
- }
- }
- else
- {
- /* Draw regular line */
-
- /* Left border */
- for ( INT32 i = 0; i < TMS9928A_HORZ_DISPLAY_START; i++ )
- p[i] = BackColour;
-
- /* Active display */
-
- switch( tms.mode )
- {
- case 0: /* MODE 0 */
- {
- UINT16 addr = tms.nametbl + ( ( y & 0xF8 ) << 2 );
-
- for ( INT32 x = TMS9928A_HORZ_DISPLAY_START; x < TMS9928A_HORZ_DISPLAY_START + 256; x+= 8, addr++ )
- {
- UINT8 charcode = readvmem( addr );
- UINT8 pattern = readvmem( tms.pattern + ( charcode << 3 ) + ( y & 7 ) );
- UINT8 colour = readvmem( tms.colour + ( charcode >> 3 ) );
- UINT16 fg = (colour >> 4) ? (colour >> 4) : BackColour;
- UINT16 bg = (colour & 15) ? (colour & 15) : BackColour;
-
- for ( INT32 i = 0; i < 8; pattern <<= 1, i++ )
- p[x+i] = ( pattern & 0x80 ) ? fg : bg;
- }
- }
- break;
-
- case 1: /* MODE 1 */
- {
- UINT16 addr = tms.nametbl + ( ( y >> 3 ) * 40 );
- UINT16 fg = (tms.Regs[7] >> 4) ? (tms.Regs[7] >> 4) : BackColour;
- UINT16 bg = BackColour;
-
- /* Extra 6 pixels left border */
- for ( INT32 x = TMS9928A_HORZ_DISPLAY_START; x < TMS9928A_HORZ_DISPLAY_START + 6; x++ )
- p[x] = bg;
-
- for ( INT32 x = TMS9928A_HORZ_DISPLAY_START + 6; x < TMS9928A_HORZ_DISPLAY_START + 246; x+= 6, addr++ )
- {
- UINT16 charcode = readvmem( addr );
- UINT8 pattern = readvmem( tms.pattern + ( charcode << 3 ) + ( y & 7 ) );
-
- for ( INT32 i = 0; i < 6; pattern <<= 1, i++ )
- p[x+i] = ( pattern & 0x80 ) ? fg : bg;
- }
-
- /* Extra 10 pixels right border */
- for ( INT32 x = TMS9928A_HORZ_DISPLAY_START + 246; x < TMS9928A_HORZ_DISPLAY_START + 256; x++ )
- p[x] = bg;
- }
- break;
-
- case 2: /* MODE 2 */
- {
- UINT16 addr = tms.nametbl + ( ( y >> 3 ) * 32 );
-
- for ( INT32 x = TMS9928A_HORZ_DISPLAY_START; x < TMS9928A_HORZ_DISPLAY_START + 256; x+= 8, addr++ )
- {
- UINT16 charcode = readvmem( addr ) + ( ( y >> 6 ) << 8 );
- UINT8 pattern = readvmem( tms.pattern + ( ( charcode & tms.patternmask ) << 3 ) + ( y & 7 ) );
- UINT8 colour = readvmem( tms.colour + ( ( charcode & tms.colourmask ) << 3 ) + ( y & 7 ) );
- UINT16 fg = (colour >> 4) ? (colour >> 4) : BackColour;
- UINT16 bg = (colour & 15) ? (colour & 15) : BackColour;
-
- for ( INT32 i = 0; i < 8; pattern <<= 1, i++ )
- p[x+i] = ( pattern & 0x80 ) ? fg : bg;
- }
- }
- break;
-
- case 3: /* MODE 1+2 */
- {
- UINT16 addr = tms.nametbl + ( ( y >> 3 ) * 40 );
- UINT16 fg = (tms.Regs[7] >> 4) ? (tms.Regs[7] >> 4) : BackColour;
- UINT16 bg = BackColour;
-
- /* Extra 6 pixels left border */
- for ( INT32 x = TMS9928A_HORZ_DISPLAY_START; x < TMS9928A_HORZ_DISPLAY_START + 6; x++ )
- p[x] = bg;
-
- for ( INT32 x = TMS9928A_HORZ_DISPLAY_START + 6; x < TMS9928A_HORZ_DISPLAY_START + 246; x+= 6, addr++ )
- {
- UINT16 charcode = ( readvmem( addr ) + ( ( y >> 6 ) << 8 ) ) & tms.patternmask;
- UINT8 pattern = readvmem( tms.pattern + ( charcode << 3 ) + ( y & 7 ) );
-
- for ( INT32 i = 0; i < 6; pattern <<= 1, i++ )
- p[x+i] = ( pattern & 0x80 ) ? fg : bg;
- }
-
- /* Extra 10 pixels right border */
- for ( INT32 x = TMS9928A_HORZ_DISPLAY_START + 246; x < TMS9928A_HORZ_DISPLAY_START + 256; x++ )
- p[x] = bg;
- }
- break;
-
- case 4: /* MODE 3 */
- {
- UINT16 addr = tms.nametbl + ( ( y >> 3 ) * 32 );
-
- for ( INT32 x = TMS9928A_HORZ_DISPLAY_START; x < TMS9928A_HORZ_DISPLAY_START + 256; x+= 8, addr++ )
- {
- UINT8 charcode = readvmem( addr );
- UINT8 colour = readvmem( tms.pattern + ( charcode << 3 ) + ( ( y >> 2 ) & 7 ) );
- UINT16 fg = (colour >> 4) ? (colour >> 4) : BackColour;
- UINT16 bg = (colour & 15) ? (colour & 15) : BackColour;
-
- p[x+0] = p[x+1] = p[x+2] = p[x+3] = fg;
- p[x+4] = p[x+5] = p[x+6] = p[x+7] = bg;
- }
- }
- break;
-
- case 5: case 7: /* MODE bogus */
- {
- UINT16 fg = (tms.Regs[7] >> 4) ? (tms.Regs[7] >> 4) : BackColour;
- UINT16 bg = BackColour;
-
- /* Extra 6 pixels left border */
- for ( INT32 x = TMS9928A_HORZ_DISPLAY_START; x < TMS9928A_HORZ_DISPLAY_START + 6; x++ )
- p[x] = bg;
-
- for ( INT32 x = TMS9928A_HORZ_DISPLAY_START + 6; x < TMS9928A_HORZ_DISPLAY_START + 246; x+= 6 )
- {
- p[x+0] = p[x+1] = p[x+2] = p[x+3] = fg;
- p[x+4] = p[x+5] = bg;
- }
-
- /* Extra 10 pixels right border */
- for ( INT32 x = TMS9928A_HORZ_DISPLAY_START + 246; x < TMS9928A_HORZ_DISPLAY_START + 256; x++ )
- p[x] = bg;
- }
- break;
-
- case 6: /* MODE 2+3 */
- {
- UINT16 addr = tms.nametbl + ( ( y >> 3 ) * 32 );
-
- for ( INT32 x = TMS9928A_HORZ_DISPLAY_START; x < TMS9928A_HORZ_DISPLAY_START + 256; x+= 8, addr++ )
- {
- UINT8 charcode = readvmem( addr );
- UINT8 colour = readvmem( tms.pattern + ( ( ( charcode + ( ( y >> 2 ) & 7 ) + ( ( y >> 6 ) << 8 ) ) & tms.patternmask ) << 3 ) );
- UINT16 fg = (colour >> 4) ? (colour >> 4) : BackColour;
- UINT16 bg = (colour & 15) ? (colour & 15) : BackColour;
-
- p[x+0] = p[x+1] = p[x+2] = p[x+3] = fg;
- p[x+4] = p[x+5] = p[x+6] = p[x+7] = bg;
- }
- }
- break;
- }
-
- /* Draw sprites */
- if ( ( tms.Regs[1] & 0x50 ) != 0x40 )
- {
- /* sprites are disabled */
- tms.FifthSprite = 31;
- }
- else
- {
- UINT8 sprite_size = ( tms.Regs[1] & 0x02 ) ? 16 : 8;
- UINT8 sprite_mag = tms.Regs[1] & 0x01;
- UINT8 sprite_height = sprite_size * ( sprite_mag + 1 );
- UINT8 spr_drawn[32+256+32] = { 0 };
- UINT8 num_sprites = 0;
- bool fifth_encountered = false;
-
- for ( UINT16 sprattr = 0; sprattr < 128; sprattr += 4 )
- {
- INT32 spr_y = readvmem( tms.spriteattribute + sprattr + 0 );
-
- tms.FifthSprite = sprattr / 4;
-
- /* Stop processing sprites */
- if ( spr_y == 208 )
- break;
-
- if ( spr_y > 0xE0 )
- spr_y -= 256;
-
- /* vert pos 255 is displayed on the first line of the screen */
- spr_y++;
-
- /* is sprite enabled on this line? */
- if ( spr_y <= y && y < spr_y + sprite_height )
- {
- INT32 spr_x = readvmem( tms.spriteattribute + sprattr + 1 );
- UINT8 sprcode = readvmem( tms.spriteattribute + sprattr + 2 );
- UINT8 sprcol = readvmem( tms.spriteattribute + sprattr + 3 );
- UINT16 pataddr = tms.spritepattern + ( ( sprite_size == 16 ) ? sprcode & ~0x03 : sprcode ) * 8;
-
- num_sprites++;
-
- /* Fifth sprite encountered? */
- if ( num_sprites == 5 )
- {
- fifth_encountered = true;
- break;
- }
-
- if ( sprite_mag )
- pataddr += ( ( ( y - spr_y ) & 0x1F ) >> 1 );
- else
- pataddr += ( ( y - spr_y ) & 0x0F );
-
- UINT8 pattern = readvmem( pataddr );
-
- if ( sprcol & 0x80 )
- spr_x -= 32;
-
- sprcol &= 0x0f;
-
- for ( INT32 s = 0; s < sprite_size; s += 8 )
- {
- for ( INT32 i = 0; i < 8; pattern <<= 1, i++ )
- {
- INT32 colission_index = spr_x + ( sprite_mag ? i * 2 : i ) + 32;
-
- for ( INT32 z = 0; z <= sprite_mag; colission_index++, z++ )
- {
- /* Check if pixel should be drawn */
- if ( pattern & 0x80 )
- {
- if ( colission_index >= 32 && colission_index < 32 + 256 )
- {
- /* Check for colission */
- if ( spr_drawn[ colission_index ] )
- tms.StatusReg |= 0x20;
- spr_drawn[ colission_index ] |= 0x01;
-
- if ( sprcol )
- {
- /* Has another sprite already drawn here? */
- if ( ! ( spr_drawn[ colission_index ] & 0x02 ) )
- {
- spr_drawn[ colission_index ] |= 0x02;
- p[ TMS9928A_HORZ_DISPLAY_START + colission_index - 32 ] = sprcol;
- }
- }
- }
- }
- }
- }
-
- pattern = readvmem( pataddr + 16 );
- spr_x += sprite_mag ? 16 : 8;
- }
- }
- }
-
- /* Update sprite overflow bits */
- if (~tms.StatusReg & 0x40)
- {
- tms.StatusReg = (tms.StatusReg & 0xe0) | tms.FifthSprite;
- if (fifth_encountered && ~tms.StatusReg & 0x80)
- tms.StatusReg |= 0x40;
- }
- }
-
- /* Right border */
- for ( INT32 i = TMS9928A_HORZ_DISPLAY_START + 256; i < TMS9928A_TOTAL_HORZ; i++ )
- p[i] = BackColour;
- }
-}
-
-void TMS9928AScanline(INT32 vpos)
-{
- if (vpos==0) // draw the border on the first scanline, border shouldn't use any cpu
- { // to render. this keeps cv defender's radar working.
- for (INT32 i = 0; i < tms.top_border+1; i++)
- {
- TMS9928AScanline_INT(i);
- }
- } else {
- TMS9928AScanline_INT(vpos + tms.top_border);
- }
-}
-
-INT32 TMS9928ADraw()
-{
- TMS89928aPaletteRecalc();
-
- {
- for (INT32 y = 0; y < nScreenHeight; y++)
- {
- for (INT32 x = 0; x < nScreenWidth; x++)
- {
- pTransDraw[y * nScreenWidth + x] = tms.tmpbmp[y * TMS9928A_TOTAL_HORZ + ((TMS9928A_HORZ_DISPLAY_START/2)+10)+x];
- }
- }
- }
-
- BurnTransferCopy(Palette);
-
- return 0;
-}
-
-INT32 TMS9928AScan(INT32 nAction, INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin) {
- *pnMin = 0x029708;
- }
-
- if (nAction & ACB_VOLATILE) {
- memset(&ba, 0, sizeof(ba));
-
- ba.Data = tms.vMem;
- ba.nLen = tms.vramsize;
- ba.szName = "video ram";
- BurnAcb(&ba);
-
- ba.Data = tms.Regs;
- ba.nLen = 8;
- ba.szName = "tms registers";
- BurnAcb(&ba);
-
- SCAN_VAR(tms.ReadAhead);
- SCAN_VAR(tms.StatusReg);
- SCAN_VAR(tms.FirstByte);
- SCAN_VAR(tms.latch);
- SCAN_VAR(tms.mode);
- SCAN_VAR(tms.INT);
- SCAN_VAR(tms.Addr);
- SCAN_VAR(tms.colour);
- SCAN_VAR(tms.pattern);
- SCAN_VAR(tms.nametbl);
- SCAN_VAR(tms.spriteattribute);
- SCAN_VAR(tms.spritepattern);
- SCAN_VAR(tms.colourmask);
- SCAN_VAR(tms.patternmask);
- }
-
- return 0;
-}
diff --git a/jan/src/burn/devices/tms9928a.h b/jan/src/burn/devices/tms9928a.h
deleted file mode 100644
index 61877709c..000000000
--- a/jan/src/burn/devices/tms9928a.h
+++ /dev/null
@@ -1,27 +0,0 @@
-
-#define TMS9928A_PALETTE_SIZE 16
-
-typedef enum
-{
- TMS_INVALID_MODEL,
- TMS99x8,
- TMS9929,
- TMS99x8A,
- TMS9929A
-} tms9928a_model;
-
-void TMS9928AInit(INT32 model, INT32 vram, INT32 borderx, INT32 bordery, void (*INTCallback)(INT32));
-void TMS9928AReset();
-void TMS9928AExit();
-void TMS9928AScanline(INT32 scanline);
-INT32 TMS9928ADraw();
-
-void TMS9928ASetSpriteslimit(INT32 limit);
-
-void TMS9928AWriteRegs(INT32 data);
-UINT8 TMS9928AReadRegs();
-
-void TMS9928AWriteVRAM(INT32 data);
-UINT8 TMS9928AReadVRAM();
-
-INT32 TMS9928AScan(INT32 nAction, INT32 *pnMin);
diff --git a/jan/src/burn/devices/v3021.cpp b/jan/src/burn/devices/v3021.cpp
deleted file mode 100644
index caf993a1e..000000000
--- a/jan/src/burn/devices/v3021.cpp
+++ /dev/null
@@ -1,114 +0,0 @@
-/* v3021 Calendar Emulation */
-/* Based on MAME sources by Angelo Salese */
-
-#include "burnint.h"
-
-static UINT8 CalVal, CalMask, CalCom=0, CalCnt=0;
-
-static UINT8 bcd(UINT8 data)
-{
- return ((data / 10) << 4) | (data % 10);
-}
-
-UINT8 v3021Read()
-{
-#if defined FBA_DEBUG
- if (!DebugDev_V3021Initted) bprintf(PRINT_ERROR, _T("v3021Read called without init\n"));
-#endif
-
- UINT8 calr;
- calr = (CalVal & CalMask) ? 1 : 0;
- CalMask <<= 1;
- return calr;
-}
-
-void v3021Write(UINT16 data)
-{
-#if defined FBA_DEBUG
- if (!DebugDev_V3021Initted) bprintf(PRINT_ERROR, _T("v3021Write called without init\n"));
-#endif
-
- time_t nLocalTime = time(NULL);
- tm* tmLocalTime = localtime(&nLocalTime);
-
- CalCom <<= 1;
- CalCom |= data & 1;
- ++CalCnt;
- if(CalCnt==4)
- {
- CalMask = 1;
- CalVal = 1;
- CalCnt = 0;
-
- switch(CalCom & 0xf)
- {
- case 0x1: case 0x3: case 0x5: case 0x7: case 0x9: case 0xb: case 0xd:
- CalVal++;
- break;
-
- case 0x0: // Day
- CalVal=bcd(tmLocalTime->tm_wday);
- break;
-
- case 0x2: // Hours
- CalVal=bcd(tmLocalTime->tm_hour);
- break;
-
- case 0x4: // Seconds
- CalVal=bcd(tmLocalTime->tm_sec);
- break;
-
- case 0x6: // Month
- CalVal=bcd(tmLocalTime->tm_mon + 1); // not bcd in MVS
- break;
-
- case 0x8: // Milliseconds?
- CalVal=0;
- break;
-
- case 0xa: // Day
- CalVal=bcd(tmLocalTime->tm_mday);
- break;
-
- case 0xc: // Minute
- CalVal=bcd(tmLocalTime->tm_min);
- break;
-
- case 0xe: // Year
- CalVal=bcd(tmLocalTime->tm_year % 100);
- break;
-
- case 0xf: // Load Date
- tmLocalTime = localtime(&nLocalTime);
- break;
- }
- }
-}
-
-void v3021Init()
-{
- DebugDev_V3021Initted = 1;
-}
-
-void v3021Exit()
-{
-#if defined FBA_DEBUG
- if (!DebugDev_V3021Initted) bprintf(PRINT_ERROR, _T("v3021Exit called without init\n"));
-#endif
-
- DebugDev_V3021Initted = 0;
-}
-
-INT32 v3021Scan()
-{
-#if defined FBA_DEBUG
- if (!DebugDev_V3021Initted) bprintf(PRINT_ERROR, _T("v3021Scan called without init\n"));
-#endif
-
- SCAN_VAR(CalVal);
- SCAN_VAR(CalMask);
- SCAN_VAR(CalCom);
- SCAN_VAR(CalCnt);
-
- return 0;
-}
diff --git a/jan/src/burn/devices/v3021.h b/jan/src/burn/devices/v3021.h
deleted file mode 100644
index ccdfeff4a..000000000
--- a/jan/src/burn/devices/v3021.h
+++ /dev/null
@@ -1,9 +0,0 @@
-/* v3021 Calendar Emulation */
-
-UINT8 v3021Read();
-void v3021Write(UINT16 data);
-
-void v3021Init();
-void v3021Exit();
-
-INT32 v3021Scan();
diff --git a/jan/src/burn/devices/vdc.cpp b/jan/src/burn/devices/vdc.cpp
deleted file mode 100644
index c653246fe..000000000
--- a/jan/src/burn/devices/vdc.cpp
+++ /dev/null
@@ -1,1296 +0,0 @@
-// Based on MESS driver by Charles MacDonald
-
-#include "tiles_generic.h"
-#include "h6280_intf.h"
-
-UINT16 *vce_data; // allocate externally!
-static UINT16 vce_address;
-static UINT16 vce_control;
-
-static INT32 vce_current_bitmap_line;
-
-UINT8 *vdc_vidram[2]; // allocate externally!
-
-static UINT8 vdc_register[2];
-static UINT16 vdc_data[2][32];
-static UINT8 vdc_latch[2];
-static UINT16 vdc_yscroll[2];
-static UINT16 vdc_width[2];
-static UINT16 vdc_height[2];
-static UINT8 vdc_inc[2];
-static UINT8 vdc_dvssr_write[2];
-static UINT8 vdc_status[2];
-static UINT16 vdc_sprite_ram[2][0x100];
-
-static INT32 vdc_vblank_triggered[2];
-static UINT16 vdc_current_segment[2];
-static UINT16 vdc_current_segment_line[2];
-static INT32 vdc_raster_count[2];
-static INT32 vdc_curline[2];
-static INT32 vdc_satb_countdown[2];
-
-UINT16 *vdc_tmp_draw; // allocate externally!
-
-static UINT16 vpc_priority;
-static UINT16 vpc_window1;
-static UINT16 vpc_window2;
-static UINT8 vpc_vdc_select;
-static UINT8 vpc_prio[4];
-static UINT8 vpc_vdc0_enabled[4];
-static UINT8 vpc_vdc1_enabled[4];
-static UINT8 vpc_prio_map[0x200];
-
-//--------------------------------------------------------------------------------------------------------------------------------
-
-static void vpc_update_prio_map()
-{
- for (INT32 i = 0; i < 512; i++)
- {
- vpc_prio_map[i] = 0;
- if (vpc_window1 < 0x40 || i > vpc_window1) vpc_prio_map[i] |= 1;
- if (vpc_window2 < 0x40 || i > vpc_window2) vpc_prio_map[i] |= 2;
- }
-}
-
-void vpc_write(UINT8 offset, UINT8 data)
-{
-#if defined FBA_DEBUG
- if (!DebugDev_VDCInitted) bprintf(PRINT_ERROR, _T("vpc_write called without init\n"));
-#endif
-
- switch (offset & 0x07)
- {
- case 0x00: /* Priority register #0 */
- vpc_priority = (vpc_priority & 0xff00) | data;
- vpc_prio[0] = ( data >> 2 ) & 3;
- vpc_vdc0_enabled[0] = data & 1;
- vpc_vdc1_enabled[0] = data & 2;
- vpc_prio[1] = ( data >> 6 ) & 3;
- vpc_vdc0_enabled[1] = data & 0x10;
- vpc_vdc1_enabled[1] = data & 0x20;
- break;
-
- case 0x01: /* Priority register #1 */
- vpc_priority = (vpc_priority & 0x00ff) | (data << 8);
- vpc_prio[2] = ( data >> 2 ) & 3;
- vpc_vdc0_enabled[2] = data & 1;
- vpc_vdc1_enabled[2] = data & 2;
- vpc_prio[3] = ( data >> 6 ) & 3;
- vpc_vdc0_enabled[3] = data & 0x10;
- vpc_vdc1_enabled[3] = data & 0x20;
- break;
-
- case 0x02: /* Window 1 LSB */
- vpc_window1 = (vpc_window1 & 0xff00) | data;
- vpc_update_prio_map();
- break;
-
- case 0x03: /* Window 1 MSB */
- vpc_window1 = (vpc_window1 & 0x00ff) | ((data & 3) << 8);
- vpc_update_prio_map();
- break;
-
- case 0x04: /* Window 2 LSB */
- vpc_window2 = (vpc_window2 & 0xff00) | data;
- vpc_update_prio_map();
- break;
-
- case 0x05: /* Window 2 MSB */
- vpc_window2 = (vpc_window2 & 0x00ff) | ((data & 3) << 8);
- vpc_update_prio_map();
- break;
-
- case 0x06: /* VDC I/O select */
- vpc_vdc_select = data & 1;
- break;
- }
-}
-
-UINT8 vpc_read(UINT8 offset)
-{
-#if defined FBA_DEBUG
- if (!DebugDev_VDCInitted) bprintf(PRINT_ERROR, _T("vpc_read called without init\n"));
-#endif
-
- switch (offset & 0x07)
- {
- case 0x00: /* Priority register #0 */
- return vpc_priority & 0xff;
-
- case 0x01: /* Priority register #1 */
- return vpc_priority >> 8;
-
- case 0x02: /* Window 1 LSB */
- return vpc_window1 & 0xff;
-
- case 0x03: /* Window 1 MSB; high bits are 0 or 1? */
- return vpc_window1 >> 8;
-
- case 0x04: /* Window 2 LSB */
- return vpc_window2 & 0xff;
-
- case 0x05: /* Window 2 MSB; high bits are 0 or 1? */
- return vpc_window2 >> 8;
- }
-
- return 0;
-}
-
-void vpc_reset()
-{
-#if defined FBA_DEBUG
- if (!DebugDev_VDCInitted) bprintf(PRINT_ERROR, _T("vpc_reset called without init\n"));
-#endif
-
- memset (vpc_prio, 0, 4);
- memset (vpc_vdc0_enabled, 0, 4);
- memset (vpc_vdc1_enabled, 0, 4);
- memset (vpc_prio_map, 0, 0x200);
-
- vpc_write(0, 0x11);
- vpc_write(1, 0x11);
- vpc_window1 = 0;
- vpc_window2 = 0;
- vpc_vdc_select = 0;
- vpc_priority = 0;
-}
-
-//--------------------------------------------------------------------------------------------------------------------------------
-
-UINT8 vce_read(UINT8 offset)
-{
-#if defined FBA_DEBUG
- if (!DebugDev_VDCInitted) bprintf(PRINT_ERROR, _T("vce_read called without init\n"));
-#endif
-
- switch (offset & 7)
- {
- case 0x04:
- return (vce_data[vce_address] >> 0) & 0xff; //.l
-
- case 0x05:
- UINT8 ret = ((vce_data[vce_address] >> 8) & 0xff) | 0xfe; //.h
- vce_address = (vce_address + 1) & 0x01ff;
- return ret;
- }
-
- return 0xff;
-}
-
-void vce_write(UINT8 offset, UINT8 data)
-{
-#if defined FBA_DEBUG
- if (!DebugDev_VDCInitted) bprintf(PRINT_ERROR, _T("vce_write called without init\n"));
-#endif
-
- switch (offset & 7)
- {
- case 0x00:
- vce_control = data;
- break;
-
- case 0x02:
- vce_address = (vce_address & 0x100) | data;
- break;
-
- case 0x03:
- vce_address = (vce_address & 0x0ff) | ((data & 1) << 8);
- break;
-
- case 0x04:
- vce_data[vce_address] = (vce_data[vce_address] & 0x100) | data;
- break;
-
- case 0x05:
- vce_data[vce_address] = (vce_data[vce_address] & 0x0ff) | ((data & 1) << 8);
- vce_address = (vce_address + 1) & 0x01ff;
- break;
- }
-}
-
-void vce_palette_init(UINT32 *Palette)
-{
-#if defined FBA_DEBUG
- if (!DebugDev_VDCInitted) bprintf(PRINT_ERROR, _T("vce_palette_init called without init\n"));
-#endif
-
- for (INT32 i = 0; i < 512; i++)
- {
- INT32 r = ((i >> 3) & 7) << 5;
- INT32 g = ((i >> 6) & 7) << 5;
- INT32 b = ((i >> 0) & 7) << 5;
-
- INT32 y = ((66 * r + 129 * g + 25 * b + 128) >> 8) + 16;
-
- Palette[0x000 + i] = BurnHighCol(r, g, b, 0);
- Palette[0x200 + i] = BurnHighCol(y, y, y, 0);
- }
-}
-
-void vce_reset()
-{
-#if defined FBA_DEBUG
- if (!DebugDev_VDCInitted) bprintf(PRINT_ERROR, _T("vce_reset called without init\n"));
-#endif
-
- memset (vce_data, 0, 512 * sizeof(UINT16));
-
- vce_address = 0;
- vce_control = 0;
-
- vce_current_bitmap_line = 0;
-}
-
-
-//--------------------------------------------------------------------------------------------------------------------------------
-
-#define STATE_VSW 0
-#define STATE_VDS 1
-#define STATE_VDW 2
-#define STATE_VCR 3
-
-#define VDC_WPF 684 /* width of a line in frame including blanking areas */
-#define VDC_LPF 262 /* number of lines in a single frame */
-
-#define VDC_BSY 0x40 /* Set when the VDC accesses VRAM */
-#define VDC_VD 0x20 /* Set when in the vertical blanking period */
-#define VDC_DV 0x10 /* Set when a VRAM > VRAM DMA transfer is done */
-#define VDC_DS 0x08 /* Set when a VRAM > SATB DMA transfer is done */
-#define VDC_RR 0x04 /* Set when the current scanline equals the RCR register */
-#define VDC_OR 0x02 /* Set when there are more than 16 sprites on a line */
-#define VDC_CR 0x01 /* Set when sprite #0 overlaps with another sprite */
-
-#define CR_BB 0x80 /* Background blanking */
-#define CR_SB 0x40 /* Object blanking */
-#define CR_VR 0x08 /* Interrupt on vertical blank enable */
-#define CR_RC 0x04 /* Interrupt on line compare enable */
-#define CR_OV 0x02 /* Interrupt on sprite overflow enable */
-#define CR_CC 0x01 /* Interrupt on sprite #0 collision enable */
-
-#define DCR_DSR 0x10 /* VRAM > SATB auto-transfer enable */
-#define DCR_DID 0x08 /* Destination diretion */
-#define DCR_SID 0x04 /* Source direction */
-#define DCR_DVC 0x02 /* VRAM > VRAM EOT interrupt enable */
-#define DCR_DSC 0x01 /* VRAM > SATB EOT interrupt enable */
-
-enum vdc_regs {MAWR = 0, MARR, VxR, reg3, reg4, CR, RCR, BXR, BYR, MWR, HSR, HDR, VPR, VDW, VCR, DCR, SOUR, DESR, LENR, DVSSR };
-
-
-static void conv_obj(INT32 which, INT32 i, INT32 l, INT32 hf, INT32 vf, UINT8 *buf)
-{
- INT32 b0, b1, b2, b3, i0, i1, i2, i3, x;
- INT32 xi;
- INT32 tmp;
-
- l &= 0x0F;
- if(vf) l = (15 - l);
-
- tmp = l + ( i << 5);
-
- b0 = vdc_vidram[which][(tmp + 0x00) * 2 + 0];
- b0 |= vdc_vidram[which][(tmp + 0x00) * 2 + 1]<<8;
- b1 = vdc_vidram[which][(tmp + 0x10) * 2 + 0];
- b1 |= vdc_vidram[which][(tmp + 0x10) * 2 + 1]<<8;
- b2 = vdc_vidram[which][(tmp + 0x20) * 2 + 0];
- b2 |= vdc_vidram[which][(tmp + 0x20) * 2 + 1]<<8;
- b3 = vdc_vidram[which][(tmp + 0x30) * 2 + 0];
- b3 |= vdc_vidram[which][(tmp + 0x30) * 2 + 1]<<8;
-
- for(x=0;x<16;x++)
- {
- if(hf) xi = x; else xi = (15 - x);
- i0 = (b0 >> xi) & 1;
- i1 = (b1 >> xi) & 1;
- i2 = (b2 >> xi) & 1;
- i3 = (b3 >> xi) & 1;
- buf[x] = (i3 << 3 | i2 << 2 | i1 << 1 | i0);
- }
-}
-
-static void pce_refresh_sprites(INT32 which, INT32 line, UINT8 *drawn, UINT16 *line_buffer)
-{
- INT32 i;
- UINT8 sprites_drawn = 0;
-
- /* Are we in greyscale mode or in color mode? */
- INT32 color_base = vce_control & 0x80 ? 512 : 0;
-
- /* count up: Highest priority is Sprite 0 */
- for(i = 0; i < 64; i++)
- {
- static const INT32 cgy_table[] = {16, 32, 64, 64};
-
- INT32 obj_y = (vdc_sprite_ram[which][(i << 2) + 0] & 0x03FF) - 64;
- INT32 obj_x = (vdc_sprite_ram[which][(i << 2) + 1] & 0x03FF) - 32;
- INT32 obj_i = (vdc_sprite_ram[which][(i << 2) + 2] & 0x07FE);
- INT32 obj_a = (vdc_sprite_ram[which][(i << 2) + 3]);
- INT32 cgx = (obj_a >> 8) & 1; /* sprite width */
- INT32 cgy = (obj_a >> 12) & 3; /* sprite height */
- INT32 hf = (obj_a >> 11) & 1; /* horizontal flip */
- INT32 vf = (obj_a >> 15) & 1; /* vertical flip */
- INT32 palette = (obj_a & 0x000F);
- INT32 priority = (obj_a >> 7) & 1;
- INT32 obj_h = cgy_table[cgy];
- INT32 obj_l = (line - obj_y);
- INT32 cgypos;
- UINT8 buf[16];
-
- if ((obj_y == -64) || (obj_y > line)) continue;
- if ((obj_x == -32) || (obj_x >= vdc_width[which])) continue;
-
- /* no need to draw an object that's ABOVE where we are. */
- if((obj_y + obj_h) < line) continue;
-
- /* If CGX is set, bit 0 of sprite pattern index is forced to 0 */
- if ( cgx )
- obj_i &= ~2;
-
- /* If CGY is set to 1, bit 1 of the sprite pattern index is forced to 0. */
- if ( cgy & 1 )
- obj_i &= ~4;
-
- /* If CGY is set to 2 or 3, bit 1 and 2 of the sprite pattern index are forced to 0. */
- if ( cgy & 2 )
- obj_i &= ~12;
-
- if (obj_l < obj_h)
- {
- sprites_drawn++;
- if(sprites_drawn > 16)
- {
- if(vdc_data[which][0x05] & 0x02)
- {
- /* note: flag is set only if irq is taken, Mizubaku Daibouken relies on this behaviour */
- vdc_status[which] |= 0x02;
- h6280SetIRQLine(0, CPU_IRQSTATUS_ACK);
- }
- continue; /* Should cause an interrupt */
- }
-
- cgypos = (obj_l >> 4);
- if(vf) cgypos = ((obj_h - 1) >> 4) - cgypos;
-
- if(cgx == 0)
- {
- INT32 x;
- INT32 pixel_x = ( ( obj_x * 512 ) / vdc_width[which] );
-
- conv_obj(which, obj_i + (cgypos << 2), obj_l, hf, vf, buf);
-
- for(x = 0; x < 16; x++)
- {
- if(((obj_x + x) < (vdc_width[which])) && ((obj_x + x) >= 0))
- {
- if ( buf[x] )
- {
- if( drawn[pixel_x] < 2 )
- {
- if( priority || drawn[pixel_x] == 0 )
- {
- line_buffer[pixel_x] = color_base + vce_data[0x100 + (palette << 4) + buf[x]];
-
- if ( vdc_width[which] != 512 )
- {
- INT32 dp = 1;
- while ( pixel_x + dp < ( ( ( obj_x + x + 1 ) * 512 ) / vdc_width[which] ) )
- {
- drawn[pixel_x + dp] = i + 2;
- line_buffer[pixel_x + dp] = color_base + vce_data[0x100 + (palette << 4) + buf[x]];
- dp++;
- }
- }
- }
- drawn[pixel_x] = i + 2;
- }
- /* Check for sprite #0 collision */
- else if (drawn[pixel_x] == 2)
- {
- if(vdc_data[which][0x05] & 0x01)
- h6280SetIRQLine(0, CPU_IRQSTATUS_ACK);
- vdc_status[which] |= 0x01;
- }
- }
- }
- if ( vdc_width[which] != 512 )
- {
- pixel_x = ( ( obj_x + x + 1 ) * 512 ) / vdc_width[which];
- }
- else
- {
- pixel_x += 1;
- }
- }
- }
- else
- {
- INT32 x;
- INT32 pixel_x = ( ( obj_x * 512 ) / vdc_width[which] );
-
- conv_obj(which, obj_i + (cgypos << 2) + (hf ? 2 : 0), obj_l, hf, vf, buf);
-
- for(x = 0; x < 16; x++)
- {
- if(((obj_x + x) < (vdc_width[which])) && ((obj_x + x) >= 0))
- {
- if ( buf[x] )
- {
- if( drawn[pixel_x] < 2 )
- {
- if ( priority || drawn[pixel_x] == 0 )
- {
- line_buffer[pixel_x] = color_base + vce_data[0x100 + (palette << 4) + buf[x]];
- if ( vdc_width[which] != 512 )
- {
- INT32 dp = 1;
- while ( pixel_x + dp < ( ( ( obj_x + x + 1 ) * 512 ) / vdc_width[which] ) )
- {
- drawn[pixel_x + dp] = i + 2;
- line_buffer[pixel_x + dp] = color_base + vce_data[0x100 + (palette << 4) + buf[x]];
- dp++;
- }
- }
- }
- drawn[pixel_x] = i + 2;
- }
- /* Check for sprite #0 collision */
- else if ( drawn[pixel_x] == 2 )
- {
- if(vdc_data[which][0x05] & 0x01)
- h6280SetIRQLine(0, CPU_IRQSTATUS_ACK);
- vdc_status[which] |= 0x01;
- }
- }
- }
- if ( vdc_width[which] != 512 )
- {
- pixel_x = ( ( obj_x + x + 1 ) * 512 ) / vdc_width[which];
- }
- else
- {
- pixel_x += 1;
- }
- }
-
- /* 32 pixel wide sprites are counted as 2 sprites and the right half
- is only drawn if there are 2 open slots.
- */
- sprites_drawn++;
- if( sprites_drawn > 16 )
- {
- if(vdc_data[which][0x05] & 0x02)
- {
- /* note: flag is set only if irq is taken, Mizubaku Daibouken relies on this behaviour */
- vdc_status[which] |= 0x02;
- h6280SetIRQLine(0, CPU_IRQSTATUS_ACK);
- }
- }
- else
- {
- conv_obj(which, obj_i + (cgypos << 2) + (hf ? 0 : 2), obj_l, hf, vf, buf);
- for(x = 0; x < 16; x++)
- {
- if(((obj_x + 0x10 + x) < (vdc_width[which])) && ((obj_x + 0x10 + x) >= 0))
- {
- if ( buf[x] )
- {
- if( drawn[pixel_x] < 2 )
- {
- if( priority || drawn[pixel_x] == 0 )
- {
- line_buffer[pixel_x] = color_base + vce_data[0x100 + (palette << 4) + buf[x]];
- if ( vdc_width[which] != 512 )
- {
- INT32 dp = 1;
- while ( pixel_x + dp < ( ( ( obj_x + x + 17 ) * 512 ) / vdc_width[which] ) )
- {
- drawn[pixel_x + dp] = i + 2;
- line_buffer[pixel_x + dp] = color_base + vce_data[0x100 + (palette << 4) + buf[x]];
- dp++;
- }
- }
- }
- drawn[pixel_x] = i + 2;
- }
- /* Check for sprite #0 collision */
- else if ( drawn[pixel_x] == 2 )
- {
- if(vdc_data[which][0x05] & 0x01)
- h6280SetIRQLine(0, CPU_IRQSTATUS_ACK);
- vdc_status[which] |= 0x01;
- }
- }
- }
- if ( vdc_width[which] != 512 )
- {
- pixel_x = ( ( obj_x + x + 17 ) * 512 ) / vdc_width[which];
- }
- else
- {
- pixel_x += 1;
- }
- }
- }
- }
- }
- }
-}
-
-
-static void draw_overscan_line(INT32 line)
-{
- INT32 i;
-
- /* Are we in greyscale mode or in color mode? */
- INT32 color_base = vce_control & 0x80 ? 512 : 0;
-
- /* our line buffer */
- UINT16 *line_buffer = vdc_tmp_draw + line * 684; //&vce.bmp->pix16(line);
-
- for ( i = 0; i < 684; i++ )
- line_buffer[i] = color_base + vce_data[0x100];
-}
-
-static void draw_sgx_overscan_line(INT32 line)
-{
- INT32 i;
-
- /* Are we in greyscale mode or in color mode? */
- INT32 color_base = vce_control & 0x80 ? 512 : 0;
-
- /* our line buffer */
- UINT16 *line_buffer = vdc_tmp_draw + line * 684; //&vce.bmp->pix16(line);
-
- for ( i = 0; i < VDC_WPF; i++ )
- line_buffer[i] = color_base + vce_data[0];
-}
-
-static void draw_black_line(INT32 line)
-{
- UINT16 *line_buffer = vdc_tmp_draw + line * 684; //&vce.bmp->pix16(line);
-
- for(INT32 i=0; i< 684; i++)
- line_buffer[i] = 0x400; // black
-}
-
-static void vdc_advance_line(INT32 which)
-{
- INT32 ret = 0;
-
- vdc_curline[which] += 1;
- vdc_current_segment_line[which] += 1;
- vdc_raster_count[which] += 1;
-
- if ( vdc_satb_countdown[which] )
- {
- vdc_satb_countdown[which] -= 1;
- if ( vdc_satb_countdown[which] == 0 )
- {
- if ( vdc_data[which][DCR] & DCR_DSC )
- {
- vdc_status[which] |= VDC_DS; /* set satb done flag */
- ret = 1;
- }
- }
- }
-
- if ( vce_current_bitmap_line == 0 )
- {
- vdc_current_segment[which] = STATE_VSW;
- vdc_current_segment_line[which] = 0;
- vdc_vblank_triggered[which] = 0;
- vdc_curline[which] = 0;
- }
-
- if ( STATE_VSW == vdc_current_segment[which] && vdc_current_segment_line[which] >= ( (vdc_data[which][VPR]&0xff) & 0x1F ) )
- {
- vdc_current_segment[which] = STATE_VDS;
- vdc_current_segment_line[which] = 0;
- }
-
- if ( STATE_VDS == vdc_current_segment[which] && vdc_current_segment_line[which] >= (vdc_data[which][VPR] >> 8) )
- {
- vdc_current_segment[which] = STATE_VDW;
- vdc_current_segment_line[which] = 0;
- vdc_raster_count[which] = 0x40;
- }
-
- if ( STATE_VDW == vdc_current_segment[which] && vdc_current_segment_line[which] > ( vdc_data[which][VDW] & 0x01FF ) )
- {
- vdc_current_segment[which] = STATE_VCR;
- vdc_current_segment_line[which] = 0;
-
- /* Generate VBlank interrupt, sprite DMA */
- vdc_vblank_triggered[which] = 1;
- if ( vdc_data[which][CR] & CR_VR )
- {
- vdc_status[which] |= VDC_VD;
- ret = 1;
- }
-
- /* do VRAM > SATB DMA if the enable bit is set or the DVSSR reg. was written to */
- if( ( vdc_data[which][DCR] & DCR_DSR ) || vdc_dvssr_write[which] )
- {
- INT32 i;
-
- vdc_dvssr_write[which] = 0;
-
- for( i = 0; i < 256; i++ )
- {
- vdc_sprite_ram[which][i] = ( vdc_vidram[which][ ( vdc_data[which][DVSSR] << 1 ) + i * 2 + 1 ] << 8 ) | vdc_vidram[which][ ( vdc_data[which][DVSSR] << 1 ) + i * 2 ];
- }
-
- /* generate interrupt if needed */
- if ( vdc_data[which][DCR] & DCR_DSC )
- {
- vdc_satb_countdown[which] = 4;
- }
- }
- }
-
- if ( STATE_VCR == vdc_current_segment[which] )
- {
- if ( vdc_current_segment_line[which] >= 3 && vdc_current_segment_line[which] >= (vdc_data[which][VCR]&0xff) )
- {
- vdc_current_segment[which] = STATE_VSW;
- vdc_current_segment_line[which] = 0;
- vdc_curline[which] = 0;
- }
- }
-
- /* generate interrupt on line compare if necessary */
- if ( vdc_raster_count[which] == vdc_data[which][RCR] && vdc_data[which][CR] & CR_RC )
- {
- vdc_status[which] |= VDC_RR;
- ret = 1;
- }
-
- /* handle frame events */
- if(vdc_curline[which] == 261 && ! vdc_vblank_triggered[which] )
- {
-
- vdc_vblank_triggered[which] = 1;
- if(vdc_data[which][CR] & CR_VR)
- { /* generate IRQ1 if enabled */
- vdc_status[which] |= VDC_VD; /* set vblank flag */
- ret = 1;
- }
-
- /* do VRAM > SATB DMA if the enable bit is set or the DVSSR reg. was written to */
- if ( ( vdc_data[which][DCR] & DCR_DSR ) || vdc_dvssr_write[which] )
- {
- INT32 i;
-
- vdc_dvssr_write[which] = 0;
-
- for( i = 0; i < 256; i++ )
- {
- vdc_sprite_ram[which][i] = ( vdc_vidram[which][ ( vdc_data[which][DVSSR] << 1 ) + i * 2 + 1 ] << 8 ) | vdc_vidram[which][ ( vdc_data[which][DVSSR] << 1 ) + i * 2 ];
- }
-
- /* generate interrupt if needed */
- if(vdc_data[which][DCR] & DCR_DSC)
- {
- vdc_satb_countdown[which] = 4;
- }
- }
- }
-
- if (ret)
- h6280SetIRQLine(0, CPU_IRQSTATUS_ACK);
-}
-
-static void pce_refresh_line(INT32 which, INT32 /*line*/, INT32 external_input, UINT8 *drawn, UINT16 *line_buffer)
-{
- static const INT32 width_table[4] = {5, 6, 7, 7};
-
- INT32 scroll_y = ( vdc_yscroll[which] & 0x01FF);
- INT32 scroll_x = (vdc_data[which][BXR] & 0x03FF);
- INT32 nt_index;
-
- /* is virtual map 32 or 64 characters tall ? (256 or 512 pixels) */
- INT32 v_line = (scroll_y) & (vdc_data[which][MWR] & 0x0040 ? 0x1FF : 0x0FF);
-
- /* row within character */
- INT32 v_row = (v_line & 7);
-
- /* row of characters in BAT */
- INT32 nt_row = (v_line >> 3);
-
- /* virtual X size (# bits to shift) */
- INT32 v_width = width_table[(vdc_data[which][MWR] >> 4) & 3];
-
- /* pointer to the name table (Background Attribute Table) in VRAM */
- UINT8 *bat = &(vdc_vidram[which][nt_row << (v_width+1)]);
-
- /* Are we in greyscale mode or in color mode? */
- INT32 color_base = vce_control & 0x80 ? 512 : 0;
-
- INT32 b0, b1, b2, b3;
- INT32 i0, i1, i2, i3;
- INT32 cell_pattern_index;
- INT32 cell_palette;
- INT32 x, c, i;
-
- /* character blanking bit */
- if(!(vdc_data[which][CR] & CR_BB))
- {
- return;
- }
- else
- {
- INT32 pixel = 0;
- INT32 phys_x = - ( scroll_x & 0x07 );
-
- for(i=0;i<(vdc_width[which] >> 3) + 1;i++)
- {
- nt_index = (i + (scroll_x >> 3)) & ((2 << (v_width-1))-1);
- nt_index *= 2;
-
- /* get name table data: */
-
- /* palette # = index from 0-15 */
- cell_palette = ( bat[nt_index + 1] >> 4 ) & 0x0F;
-
- /* This is the 'character number', from 0-0x0FFF */
- /* then it is shifted left 4 bits to form a VRAM address */
- /* and one more bit to convert VRAM word offset to a */
- /* byte-offset within the VRAM space */
- cell_pattern_index = ( ( ( bat[nt_index + 1] << 8 ) | bat[nt_index] ) & 0x0FFF) << 5;
-
- INT32 vram_offs = (cell_pattern_index + (v_row << 1)) & 0xffff;
-
- b0 = vdc_vidram[which][vram_offs + 0x00];
- b1 = vdc_vidram[which][vram_offs + 0x01];
- b2 = vdc_vidram[which][vram_offs + 0x10];
- b3 = vdc_vidram[which][vram_offs + 0x11];
-
- for(x=0;x<8;x++)
- {
- i0 = (b0 >> (7-x)) & 1;
- i1 = (b1 >> (7-x)) & 1;
- i2 = (b2 >> (7-x)) & 1;
- i3 = (b3 >> (7-x)) & 1;
- c = (cell_palette << 4 | i3 << 3 | i2 << 2 | i1 << 1 | i0);
-
- /* colour #0 always comes from palette #0 */
- if ( ! ( c & 0x0F ) )
- c &= 0x0F;
-
- if ( phys_x >= 0 && phys_x < vdc_width[which] )
- {
- drawn[ pixel ] = c ? 1 : 0;
- if ( c || ! external_input )
- line_buffer[ pixel ] = color_base + vce_data[c];
- pixel++;
- if ( vdc_width[which] != 512 )
- {
- while ( pixel < ( ( ( phys_x + 1 ) * 512 ) / vdc_width[which] ) )
- {
- drawn[ pixel ] = c ? 1 : 0;
- if ( c || ! external_input )
- line_buffer[ pixel ] = color_base + vce_data[c];
- pixel++;
- }
- }
- }
- phys_x += 1;
- }
- }
- }
-}
-
-void pce_interrupt()
-{
-#if defined FBA_DEBUG
- if (!DebugDev_VDCInitted) bprintf(PRINT_ERROR, _T("pce_interrupt called without init\n"));
-#endif
-
- INT32 which = 0; // only 1 on pce
-
- if (vce_current_bitmap_line >= 14 && vce_current_bitmap_line < 256)
- {
- draw_overscan_line(vce_current_bitmap_line);
-
- if (vdc_current_segment[which] == 0x02)
- {
- UINT8 drawn[684];
- UINT16 *line_buffer = vdc_tmp_draw + (vce_current_bitmap_line * 684) + 86;
-
- memset (drawn, 0, 684);
-
- vdc_yscroll[which] = (vdc_current_segment_line[which] == 0) ? vdc_data[which][BYR] : (vdc_yscroll[which] + 1);
-
- pce_refresh_line(0, vdc_current_segment_line[which], 0, drawn, line_buffer);
-
- if (vdc_data[which][CR] & CR_SB)
- {
- pce_refresh_sprites(0, vdc_current_segment_line[which], drawn, line_buffer);
- }
- }
- }
- else
- {
- draw_black_line(vce_current_bitmap_line);
- }
-
- vce_current_bitmap_line = (vce_current_bitmap_line + 1) % VDC_LPF;
- vdc_advance_line(0);
-}
-
-void sgx_interrupt()
-{
-#if defined FBA_DEBUG
- if (!DebugDev_VDCInitted) bprintf(PRINT_ERROR, _T("sgx_interrupt called without init\n"));
-#endif
-
- if (vce_current_bitmap_line >= 14 && vce_current_bitmap_line < 256)
- {
- draw_sgx_overscan_line(vce_current_bitmap_line);
-
- if ( vdc_current_segment[0] == STATE_VDW )
- {
- UINT8 drawn[2][512];
- UINT16 *line_buffer;
- UINT16 temp_buffer[2][512];
- INT32 i;
-
- memset( drawn, 0, sizeof(drawn) );
-
- vdc_yscroll[0] = ( vdc_current_segment_line[0] == 0 ) ? vdc_data[0][BYR] : ( vdc_yscroll[0] + 1 );
- vdc_yscroll[1] = ( vdc_current_segment_line[1] == 0 ) ? vdc_data[1][BYR] : ( vdc_yscroll[1] + 1 );
-
- pce_refresh_line( 0, vdc_current_segment_line[0], 0, drawn[0], temp_buffer[0]);
-
- if(vdc_data[0][CR] & CR_SB)
- {
- pce_refresh_sprites(0, vdc_current_segment_line[0], drawn[0], temp_buffer[0]);
- }
-
- pce_refresh_line( 1, vdc_current_segment_line[1], 1, drawn[1], temp_buffer[1]);
-
- if ( vdc_data[1][CR] & CR_SB )
- {
- pce_refresh_sprites(1, vdc_current_segment_line[1], drawn[1], temp_buffer[1]);
- }
-
- line_buffer = vdc_tmp_draw + (vce_current_bitmap_line * 684) + 86;
-
- for( i = 0; i < 512; i++ )
- {
- INT32 cur_prio = vpc_prio_map[i];
-
- if ( vpc_vdc0_enabled[cur_prio] )
- {
- if ( vpc_vdc1_enabled[cur_prio] )
- {
- switch( vpc_prio[cur_prio] )
- {
- case 0: /* BG1 SP1 BG0 SP0 */
- if ( drawn[0][i] )
- {
- line_buffer[i] = temp_buffer[0][i];
- }
- else if ( drawn[1][i] )
- {
- line_buffer[i] = temp_buffer[1][i];
- }
- break;
- case 1: /* BG1 BG0 SP1 SP0 */
- if ( drawn[0][i] )
- {
- if ( drawn[0][i] > 1 )
- {
- line_buffer[i] = temp_buffer[0][i];
- }
- else
- {
- if ( drawn[1][i] > 1 )
- {
- line_buffer[i] = temp_buffer[1][i];
- }
- else
- {
- line_buffer[i] = temp_buffer[0][i];
- }
- }
- }
- else if ( drawn[1][i] )
- {
- line_buffer[i] = temp_buffer[1][i];
- }
- break;
- case 2:
- if ( drawn[0][i] )
- {
- if ( drawn[0][i] > 1 )
- {
- if ( drawn[1][i] == 1 )
- {
- line_buffer[i] = temp_buffer[1][i];
- }
- else
- {
- line_buffer[i] = temp_buffer[0][i];
- }
- }
- else
- {
- line_buffer[i] = temp_buffer[0][i];
- }
- }
- else if ( drawn[1][i] )
- {
- line_buffer[i] = temp_buffer[1][i];
- }
- break;
- }
- }
- else
- {
- if ( drawn[0][i] )
- {
- line_buffer[i] = temp_buffer[0][i];
- }
- }
- }
- else
- {
- if ( vpc_vdc1_enabled[cur_prio] )
- {
- if ( drawn[1][i] )
- {
- line_buffer[i] = temp_buffer[1][i];
- }
- }
- }
- }
- }
- }
- else
- {
- draw_black_line(vce_current_bitmap_line);
- }
-
- /* bump current scanline */
- vce_current_bitmap_line = ( vce_current_bitmap_line + 1 ) % VDC_LPF;
- vdc_advance_line( 0 );
- vdc_advance_line( 1 );
-}
-
-static void vdc_do_dma(INT32 which)
-{
- INT32 src = vdc_data[which][0x10];
- INT32 dst = vdc_data[which][0x11];
- INT32 len = vdc_data[which][0x12];
-
- INT32 did = (vdc_data[which][0x0f] >> 3) & 1;
- INT32 sid = (vdc_data[which][0x0f] >> 2) & 1;
- INT32 dvc = (vdc_data[which][0x0f] >> 1) & 1;
-
- do {
- UINT8 l, h;
-
- l = vdc_vidram[which][((src * 2) + 0) & 0xffff];
- h = vdc_vidram[which][((src * 2) + 1) & 0xffff];
-
- if ((dst & 0x8000) == 0) {
- vdc_vidram[which][(dst * 2) + 0] = l;
- vdc_vidram[which][(dst * 2) + 1] = h;
- }
-
- if(sid) src = (src - 1) & 0xffff;
- else src = (src + 1) & 0xffff;
-
- if(did) dst = (dst - 1) & 0xffff;
- else dst = (dst + 1) & 0xffff;
-
- len = (len - 1) & 0xffff;
-
- } while (len != 0xffff);
-
- vdc_status[which] |= 0x10;
- vdc_data[which][0x10] = src;
- vdc_data[which][0x11] = dst;
- vdc_data[which][0x12] = len;
-
- if (dvc)
- {
- h6280SetIRQLine(0, CPU_IRQSTATUS_ACK);
- }
-}
-
-void vdc_write(INT32 which, UINT8 offset, UINT8 data)
-{
-#if defined FBA_DEBUG
- if (!DebugDev_VDCInitted) bprintf(PRINT_ERROR, _T("vdc_write called without init\n"));
-#endif
-
- switch (offset & 3)
- {
- case 0x00:
- vdc_register[which] = data & 0x1f;
- break;
-
- case 0x02:
- {
- vdc_data[which][vdc_register[which]] = (vdc_data[which][vdc_register[which]] & 0xff00) | data;
-
- switch (vdc_register[which])
- {
- case VxR:{
- vdc_latch[which] = data;
- }
- break;
-
- case BYR: {
- vdc_yscroll[which]=vdc_data[which][BYR];
- }
- break;
-
- case HDR: {
- vdc_width[which] = ((data & 0x003F) + 1) << 3;
- }
- break;
-
- case VDW: {
- vdc_height[which] &= 0xFF00;
- vdc_height[which] |= (data & 0xFF);
- vdc_height[which] &= 0x01FF;
- }
- break;
-
- case LENR:
- case SOUR:
- case DESR:
- break;
- }
- }
- break;
-
- case 0x03:
- {
- vdc_data[which][vdc_register[which]] = (vdc_data[which][vdc_register[which]] & 0x00ff) | (data << 8);
-
- switch (vdc_register[which])
- {
- case VxR:
- {
- INT32 voff = vdc_data[which][MAWR] * 2;
- if ((voff & 0x10000) == 0) {
- vdc_vidram[which][voff + 0] = vdc_latch[which];
- vdc_vidram[which][voff + 1] = data;
- }
- vdc_data[which][MAWR] += vdc_inc[which];
- }
- break;
-
- case CR:
- {
- static const UINT8 inctab[] = {1, 32, 64, 128};
- vdc_inc[which] = inctab[(data >> 3) & 3];
- }
- break;
-
- case VDW:
- {
- vdc_height[which] &= 0x00FF;
- vdc_height[which] |= (data << 8);
- vdc_height[which] &= 0x01FF;
- }
- break;
-
- case DVSSR:
- vdc_dvssr_write[which] = 1;
- break;
-
- case BYR:
- vdc_yscroll[which]=vdc_data[which][BYR];
- break;
-
- case LENR:
- vdc_do_dma( which );
- break;
-
- case SOUR:
- case DESR:
- break;
- }
- }
- break;
- }
-}
-
-UINT8 vdc_read(INT32 which, UINT8 offset)
-{
-#if defined FBA_DEBUG
- if (!DebugDev_VDCInitted) bprintf(PRINT_ERROR, _T("vdc_read called without init\n"));
-#endif
-
- switch(offset & 3)
- {
- case 0x00: {
- UINT8 ret = vdc_status[which];
- vdc_status[which] &= ~0x3f;
- h6280SetIRQLine(0, CPU_IRQSTATUS_NONE);
- return ret;
- }
-
- case 0x02: {
- INT32 voff = (vdc_data[which][1] * 2 + 0) & 0xffff;
- return vdc_vidram[which][voff];
- }
-
- case 0x03: {
- INT32 voff = (vdc_data[which][1] * 2 + 1) & 0xffff;
- if (vdc_register[which] == 0x02) vdc_data[which][1] += vdc_inc[which];
- return vdc_vidram[which][voff];
- }
- }
-
- return 0;
-}
-
-void sgx_vdc_write(UINT8 offset, UINT8 data)
-{
-#if defined FBA_DEBUG
- if (!DebugDev_VDCInitted) bprintf(PRINT_ERROR, _T("sgx_vdc_write called without init\n"));
-#endif
-
- if (vpc_vdc_select)
- {
- vdc_write( 1, offset, data );
- }
- else
- {
- vdc_write( 0, offset, data );
- }
-}
-
-UINT8 sgx_vdc_read(UINT8 offset)
-{
-#if defined FBA_DEBUG
- if (!DebugDev_VDCInitted) bprintf(PRINT_ERROR, _T("sgx_vdc_read called without init\n"));
-#endif
-
- return (vpc_vdc_select) ? vdc_read( 1, offset ) : vdc_read( 0, offset );
-}
-
-void vdc_reset()
-{
-#if defined FBA_DEBUG
- if (!DebugDev_VDCInitted) bprintf(PRINT_ERROR, _T("vdc_reset called without init\n"));
-#endif
-
- memset (vdc_register, 0, 2);
- memset (vdc_data, 0, 2 * 32 * sizeof(UINT16));
- memset (vdc_latch, 0, 2);
- memset (vdc_yscroll, 0, 2 * sizeof(UINT16));
- memset (vdc_width, 0, 2 * sizeof(UINT16));
- memset (vdc_height, 0, 2 * sizeof(UINT16));
- memset (vdc_inc, 0, 2);
- memset (vdc_dvssr_write, 0, 2);
- memset (vdc_status, 0, 2);
- memset (vdc_sprite_ram, 0, 2 * 0x100 * sizeof(UINT16));
- memset (vdc_vblank_triggered, 0, 2 * sizeof(INT32));
- memset (vdc_current_segment, 0, 2 * sizeof(UINT16));
- memset (vdc_current_segment_line, 0, 2 * sizeof(UINT16));
- memset (vdc_raster_count, 0, 2 * sizeof(INT32));
- memset (vdc_curline, 0, 2 * sizeof(INT32));
- memset (vdc_satb_countdown, 0, 2 * sizeof(INT32));
-
- vdc_inc[0] = 1;
- vdc_inc[1] = 1;
-}
-
-void vdc_get_dimensions(INT32 which, INT32 *x, INT32 *y)
-{
-#if defined FBA_DEBUG
- if (!DebugDev_VDCInitted) bprintf(PRINT_ERROR, _T("vdc_get_dimensions called without init\n"));
-#endif
-
- *x = vdc_width[which] * 2;
- *y = vdc_height[which];
-}
-
-void vdc_init()
-{
- DebugDev_VDCInitted = 1;
-}
-
-void vdc_exit()
-{
-#if defined FBA_DEBUG
- if (!DebugDev_VDCInitted) bprintf(PRINT_ERROR, _T("vdc_exit called without init\n"));
-#endif
-
- DebugDev_VDCInitted = 0;
-}
-
-INT32 vdc_scan(INT32 nAction, INT32 *pnMin)
-{
-#if defined FBA_DEBUG
- if (!DebugDev_VDCInitted) bprintf(PRINT_ERROR, _T("vdc_scan called without init\n"));
-#endif
-
- struct BurnArea ba;
-
- if (pnMin) {
- *pnMin = 0x029702;
- }
-
- if (nAction & ACB_DRIVER_DATA) {
- for (INT32 i = 0; i < 2; i++) {
- SCAN_VAR(vdc_register[i]);
- SCAN_VAR(vdc_data[i]);
- SCAN_VAR(vdc_latch[i]);
- SCAN_VAR(vdc_yscroll[i]);
- SCAN_VAR(vdc_width[i]);
- SCAN_VAR(vdc_height[i]);
- SCAN_VAR(vdc_inc[i]);
- SCAN_VAR(vdc_dvssr_write[i]);
- SCAN_VAR(vdc_status[i]);
- SCAN_VAR(vdc_sprite_ram[i]);
- SCAN_VAR(vdc_vblank_triggered[i]);
- SCAN_VAR(vdc_current_segment[i]);
- SCAN_VAR(vdc_current_segment_line[i]);
- SCAN_VAR(vdc_raster_count[i]);
- SCAN_VAR(vdc_curline[i]);
- SCAN_VAR(vdc_satb_countdown[i]);
- }
-
- ba.Data = vdc_sprite_ram;
- ba.nLen = 2 * 0x100 * sizeof(UINT16);
- ba.nAddress = 0;
- ba.szName = "VDC Sprite RAM";
- BurnAcb(&ba);
-
- ba.Data = vdc_data;
- ba.nLen = 2 * 0x20 * sizeof(UINT16);
- ba.nAddress = 0;
- ba.szName = "VDC DATA";
- BurnAcb(&ba);
-
- SCAN_VAR(vce_address);
- SCAN_VAR(vce_control);
- SCAN_VAR(vce_current_bitmap_line);
-
- SCAN_VAR(vpc_window1);
- SCAN_VAR(vpc_window2);
- SCAN_VAR(vpc_vdc_select);
- SCAN_VAR(vpc_priority);
-
- for (INT32 i = 0; i < 4; i++) {
- SCAN_VAR(vpc_prio[i]);
- SCAN_VAR(vpc_vdc0_enabled[i]);
- SCAN_VAR(vpc_vdc1_enabled[i]);
- }
-
- ba.Data = vpc_prio_map;
- ba.nLen = 0x0000200;
- ba.nAddress = 0;
- ba.szName = "VPC Priority Map";
- BurnAcb(&ba);
- }
-
- return 0;
-}
diff --git a/jan/src/burn/devices/vdc.h b/jan/src/burn/devices/vdc.h
deleted file mode 100644
index 7a2bc9eea..000000000
--- a/jan/src/burn/devices/vdc.h
+++ /dev/null
@@ -1,33 +0,0 @@
-
-// video
-void vdc_reset();
-void vdc_write(INT32 which, UINT8 offset, UINT8 data);
-UINT8 vdc_read(INT32 which, UINT8 offset);
-extern UINT8 *vdc_vidram[2];
-extern UINT16 *vdc_tmp_draw;
-
-void pce_interrupt(); // update scanline...
-void sgx_interrupt();
-
-void vdc_get_dimensions(INT32 which, INT32 *x, INT32 *y); // get resolution
-
-void sgx_vdc_write(UINT8 offset, UINT8 data);
-UINT8 sgx_vdc_read(UINT8 offset);
-
-void vdc_init();
-void vdc_exit();
-
-
-// priority
-void vpc_reset();
-void vpc_write(UINT8 offset, UINT8 data);
-UINT8 vpc_read(UINT8 offset);
-
-// palette
-void vce_reset();
-void vce_palette_init(UINT32 *Palette);
-void vce_write(UINT8 offset, UINT8 data);
-UINT8 vce_read(UINT8 offset);
-extern UINT16 *vce_data;
-
-INT32 vdc_scan(INT32 nAction, INT32 *pnMin);
diff --git a/jan/src/burn/devices/watchdog.cpp b/jan/src/burn/devices/watchdog.cpp
deleted file mode 100644
index da3903178..000000000
--- a/jan/src/burn/devices/watchdog.cpp
+++ /dev/null
@@ -1,80 +0,0 @@
-#include "burnint.h"
-
-static INT32 (*WatchdogReset)(INT32 clear_mem) = NULL;
-static INT32 WatchdogFrames = 0;
-static INT32 Watchdog = 0;
-static INT32 WatchdogEnable = 0;
-
-void BurnWatchogWrite()
-{
- Watchdog = 0;
- WatchdogEnable = 1;
-}
-
-UINT8 BurnWatchdogRead()
-{
- Watchdog = 0;
- WatchdogEnable = 1;
-
- return 0;
-}
-
-void BurnWatchdogReset()
-{
- Watchdog = 0;
- WatchdogEnable = 0;
-}
-
-void BurnWatchdogInit(INT32 (*reset)(INT32 clear_mem), INT32 frames)
-{
- if (reset == NULL) {
-#if defined FBA_DEBUG
- bprintf (PRINT_ERROR, _T("Error: BurnWatchdogInit called with no reset!\n"));
-#endif
- return;
- }
-
- if (frames == 0) {
-#if defined FBA_DEBUG
- bprintf (PRINT_ERROR, _T("Error: BurnWatchdogInit called with 0 frames (%d)!\n"), frames);
-#endif
- frames = 180; // default
- }
-
- WatchdogReset = reset;
- WatchdogFrames = frames;
-}
-
-void BurnWatchdogUpdate()
-{
- if (WatchdogFrames == -1) {
- return;
- }
-
- if (WatchdogEnable) {
- Watchdog++;
- }
-
- if (Watchdog >= WatchdogFrames) {
- if (WatchdogReset != NULL) {
- WatchdogReset(0);
-#if defined FBA_DEBUG
- bprintf (0, _T("BurnWatchdogUpdate - Watchdog triggered!\n"));
-#endif
-
- }
- }
-
- Watchdog = 0;
-}
-
-INT32 BurnWatchdogScan(INT32 nAction)
-{
- if (nAction & ACB_VOLATILE)
- {
- SCAN_VAR(WatchdogEnable);
- SCAN_VAR(Watchdog);
- }
-
- return 0;
-}
diff --git a/jan/src/burn/devices/watchdog.h b/jan/src/burn/devices/watchdog.h
deleted file mode 100644
index 87c59816c..000000000
--- a/jan/src/burn/devices/watchdog.h
+++ /dev/null
@@ -1,25 +0,0 @@
-
-// call this when resetting the watchdog timer on writes
-// the watchdog will never trigger if the timer hasn't been reset once
-void BurnWatchogWrite();
-
-// call this when resetting the watchdog time on reads
-// the watchdog will never trigger if the timer hasn't been reset once
-UINT8 BurnWatchdogRead();
-
-// call this in the DrvReset
-void BurnWatchdogReset();
-
-// call this to initialize the watchdog
-// pass the DrvReset routine though this (note INT32 DrvReset(INT32 clear_mem))
-// note watchdog should not clear ram! It should really only reset the cpus and
-// sound cores(?)
-// pass the number of frames without resetting the timer before triggering
-// pass -1 for frames to disable watchdog entirely
-void BurnWatchdogInit(INT32 (*reset)(INT32 clear_mem), INT32 frames);
-
-// update the wathdog timer, call at the start of the 'Frame function.
-void BurnWatchdogUpdate();
-
-// save state support
-INT32 BurnWatchdogScan(INT32 nAction);
diff --git a/jan/src/burn/driver.h b/jan/src/burn/driver.h
deleted file mode 100644
index ffddfe60a..000000000
--- a/jan/src/burn/driver.h
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * For the MAME sound cores
- */
-
-#ifndef DRIVER_H
-#define DRIVER_H
-
-#include
-#include
-#include
-#include
-
-#if !defined (_WIN32)
- #define __cdecl
-#endif
-
-#ifndef INLINE
- #define INLINE __inline static
-#endif
-
-#define FBA
-
-typedef unsigned char UINT8;
-typedef signed char INT8;
-typedef unsigned short UINT16;
-typedef signed short INT16;
-typedef unsigned int UINT32;
-typedef signed int INT32;
-#ifdef _MSC_VER
-typedef signed __int64 INT64;
-typedef unsigned __int64 UINT64;
-#else
-__extension__ typedef unsigned long long UINT64;
-__extension__ typedef long long INT64;
-#endif
-
-// Alignment macro, to keep savestates compatible between 32/64bit platforms.
-#ifdef _MSC_VER
-#define ALIGN_VAR(x) __declspec(align(x))
-#else
-#define ALIGN_VAR(x) __attribute__((aligned(x)))
-#endif
-
-#define OSD_CPU_H
-
-/* U64 and S64 are used to wrap long integer constants. */
-#if defined(__GNUC__) || defined(_MSC_VER)
-#define U64(val) val##ULL
-#define S64(val) val##LL
-#else
-#define U64(val) val
-#define S64(val) val
-#endif
-
-/* OPN */
-#define HAS_YM2203 1
-#define HAS_YM2608 1
-#define HAS_YM2610 1
-#define HAS_YM2610B 1
-#define HAS_YM2612 1
-#define HAS_YM3438 1
-/* OPL */
-#define HAS_YM3812 1
-#define HAS_YM3526 1
-#define HAS_Y8950 1
-
-enum {
- CLEAR_LINE = 0,
- ASSERT_LINE,
- HOLD_LINE,
- PULSE_LINE
-};
-
-#define timer_get_time() BurnTimerGetTime()
-
-#define READ8_HANDLER(name) UINT8 name(void)
-#define WRITE8_HANDLER(name) void name(UINT8 data)
-
-#ifdef __cplusplus
- extern "C" {
-#endif
- double BurnTimerGetTime(void);
-
- typedef UINT8 (*read8_handler)(UINT32 offset);
- typedef void (*write8_handler)(UINT32 offset, UINT32 data);
-
- #ifdef MAME_USE_LOGERROR
- void __cdecl logerror(char* szFormat, ...);
- #else
- #define logerror
- #endif
-#ifdef __cplusplus
- }
-#endif
-
-#endif /* DRIVER_H */
diff --git a/jan/src/burn/drv/capcom/cps.cpp b/jan/src/burn/drv/capcom/cps.cpp
deleted file mode 100644
index d5480fb0a..000000000
--- a/jan/src/burn/drv/capcom/cps.cpp
+++ /dev/null
@@ -1,2107 +0,0 @@
-#include "cps.h"
-// CPS (general)
-
-INT32 Cps = 0; // 1 = CPS1, 2 = CPS2, 3 = CPS Changer
-INT32 Cps1Qs = 0;
-INT32 Cps1DisablePSnd = 0; // Disables the Z80 as well
-INT32 Cps2DisableQSnd = 0; // Disables the Z80 as well
-
-INT32 nCPS68KClockspeed = 0;
-INT32 nCpsCycles = 0; // 68K Cycles per frame
-INT32 nCpsZ80Cycles;
-
-UINT8 *CpsGfx =NULL; UINT32 nCpsGfxLen =0; // All the graphics
-UINT8 *CpsRom =NULL; UINT32 nCpsRomLen =0; // Program Rom (as in rom)
-UINT8 *CpsCode=NULL; UINT32 nCpsCodeLen=0; // Program Rom (decrypted)
-UINT8 *CpsZRom=NULL; UINT32 nCpsZRomLen=0; // Z80 Roms
-INT8 *CpsQSam=NULL; UINT32 nCpsQSamLen=0; // QSound Sample Roms
-UINT8 *CpsAd =NULL; UINT32 nCpsAdLen =0; // ADPCM Data
-UINT8 *CpsStar=NULL;
-UINT8 *CpsKey=NULL; UINT32 nCpsKeyLen = 0;
-UINT32 nCpsGfxScroll[4]={0,0,0,0}; // Offset to Scroll tiles
-UINT32 nCpsGfxMask=0; // Address mask
-
-// Separate out the bits of a byte
-inline static UINT32 Separate(UINT32 b)
-{
- UINT32 a = b; // 00000000 00000000 00000000 11111111
- a =((a & 0x000000F0) << 12) | (a & 0x0000000F); // 00000000 00001111 00000000 00001111
- a = ((a & 0x000C000C) << 6) | (a & 0x00030003); // 00000011 00000011 00000011 00000011
- a = ((a & 0x02020202) << 3) | (a & 0x01010101); // 00010001 00010001 00010001 00010001
-
- return a;
-}
-
-// Precalculated table of the Separate function
-static UINT32 SepTable[256];
-
-static INT32 SepTableCalc()
-{
- static INT32 bDone = 0;
- if (bDone) {
- return 0; // Already done it
- }
-
- for (INT32 i = 0; i < 256; i++) {
- SepTable[i] = Separate(255 - i);
- }
-
- bDone = 1; // done it
- return 0;
-}
-
-// Allocate space and load up a rom
-static INT32 LoadUp(UINT8** pRom, INT32* pnRomLen, INT32 nNum)
-{
- UINT8 *Rom;
- struct BurnRomInfo ri;
-
- ri.nLen = 0;
- BurnDrvGetRomInfo(&ri, nNum); // Find out how big the rom is
- if (ri.nLen <= 0) {
- return 1;
- }
-
- // Load the rom
- Rom = (UINT8*)BurnMalloc(ri.nLen);
- if (Rom == NULL) {
- return 1;
- }
-
- if (BurnLoadRom(Rom,nNum,1)) {
- BurnFree(Rom);
- return 1;
- }
-
- // Success
- *pRom = Rom; *pnRomLen = ri.nLen;
- return 0;
-}
-
-static INT32 LoadUpSplit(UINT8** pRom, INT32* pnRomLen, INT32 nNum, INT32 nNumRomsGroup)
-{
- UINT8 *Rom;
- struct BurnRomInfo ri;
- UINT32 nRomSize[8], nTotalRomSize = 0;
- INT32 i;
-
- ri.nLen = 0;
- for (i = 0; i < nNumRomsGroup; i++) {
- BurnDrvGetRomInfo(&ri, nNum + i);
- nRomSize[i] = ri.nLen;
- }
-
- for (i = 0; i < nNumRomsGroup; i++) {
- nTotalRomSize += nRomSize[i];
- }
- if (!nTotalRomSize) return 1;
-
- Rom = (UINT8*)BurnMalloc(nTotalRomSize);
- if (Rom == NULL) return 1;
-
- INT32 Offset = 0;
- for (i = 0; i < nNumRomsGroup; i++) {
- if (i > 0) Offset += nRomSize[i - 1];
- if (BurnLoadRom(Rom + Offset, nNum + i, 1)) {
- BurnFree(Rom);
- return 1;
- }
- }
-
- *pRom = Rom;
- *pnRomLen = nTotalRomSize;
-
- return 0;
-}
-
-// ----------------------------CPS1--------------------------------
-// Load 1 rom and interleave in the CPS style:
-// rom : aa bb
-// --ba --ba --ba --ba --ba --ba --ba --ba 8 pixels (four bytes)
-// (skip four bytes)
-
-static INT32 CpsLoadOne(UINT8* Tile, INT32 nNum, INT32 nWord, INT32 nShift)
-{
- UINT8 *Rom = NULL; INT32 nRomLen=0;
- UINT8 *pt = NULL, *pr = NULL;
- INT32 i;
-
- LoadUp(&Rom, &nRomLen, nNum);
- if (Rom == NULL) {
- return 1;
- }
-
- nRomLen &= ~1; // make sure even
-
- for (i = 0, pt = Tile, pr = Rom; i < nRomLen; pt += 8) {
- UINT32 Pix; // Eight pixels
- UINT8 b;
- b = *pr++; i++; Pix = SepTable[b];
- if (nWord) {
- b = *pr++; i++; Pix |= SepTable[b] << 1;
- }
-
- Pix <<= nShift;
- *((UINT32 *)pt) |= Pix;
- }
-
- BurnFree(Rom);
- return 0;
-}
-
-static INT32 CpsLoadOnePang(UINT8 *Tile,INT32 nNum,INT32 nWord,INT32 nShift)
-{
- INT32 i=0;
- UINT8 *Rom = NULL; INT32 nRomLen = 0;
- UINT8 *pt = NULL, *pr = NULL;
-
- LoadUp(&Rom, &nRomLen, nNum);
- if (Rom == NULL) {
- return 1;
- }
-
- nRomLen &= ~1; // make sure even
-
- for (i = 0x100000, pt = Tile, pr = Rom + 0x100000; i < nRomLen; pt += 8) {
- UINT32 Pix; // Eight pixels
- UINT8 b;
- b = *pr++; i++; Pix = SepTable[b];
- if (nWord) {
- b = *pr++; i++; Pix |= SepTable[b] << 1;
- }
-
- Pix <<= nShift;
- *((UINT32 *)pt) |= Pix;
- }
-
- BurnFree(Rom);
- return 0;
-}
-
-static INT32 CpsLoadOneHack160(UINT8 *Tile, INT32 nNum, INT32 nWord, INT32 nType)
-{
- INT32 i = 0, j = 0;
- UINT8 *Rom1 = NULL, *Rom2 = NULL;
- INT32 nRomLen1 = 0, nRomLen2 = 0;
- UINT8 *pt = NULL, *pr = NULL;
-
- LoadUp(&Rom1, &nRomLen1, nNum);
- if (Rom1 == NULL) {
- return 1;
- }
- LoadUp(&Rom2, &nRomLen2, nNum + 1);
- if (Rom2 == NULL) {
- return 1;
- }
-
- INT32 TileOffset[4] = { 0x000000, 0x000004, 0x200000, 0x200004 };
- if (nType == 1) {
- TileOffset[1] = 0x200000;
- TileOffset[2] = 0x000004;
- }
-
- for (j = 0; j < 4; j++) {
- for (i = 0, pt = Tile + TileOffset[j], pr = Rom1 + (0x80000 * j); i < 0x80000; pt += 8) {
- UINT32 Pix; // Eight pixels
- UINT8 b;
- b = *pr++; i++; Pix = SepTable[b];
- if (nWord) {
- b = *pr++; i++; Pix |= SepTable[b] << 1;
- }
-
- Pix <<= 0;
- *((UINT32 *)pt) |= Pix;
- }
-
- for (i = 0, pt = Tile + TileOffset[j], pr = Rom2 + (0x80000 * j); i < 0x80000; pt += 8) {
- UINT32 Pix; // Eight pixels
- UINT8 b;
- b = *pr++; i++; Pix = SepTable[b];
- if (nWord) {
- b = *pr++; i++; Pix |= SepTable[b] << 1;
- }
-
- Pix <<= 2;
- *((UINT32 *)pt) |= Pix;
- }
- }
-
- BurnFree(Rom2);
- BurnFree(Rom1);
- return 0;
-}
-
-static INT32 CpsLoadOneBootleg(UINT8* Tile, INT32 nNum, INT32 nWord, INT32 nShift)
-{
- UINT8 *Rom = NULL; INT32 nRomLen=0;
- UINT8 *pt = NULL, *pr = NULL;
- INT32 i;
-
- LoadUp(&Rom, &nRomLen, nNum);
- if (Rom == NULL) {
- return 1;
- }
- nRomLen &= ~1; // make sure even
-
- for (i = 0, pt = Tile, pr = Rom; i < 0x40000; pt += 8) {
- UINT32 Pix; // Eight pixels
- UINT8 b;
- b = *pr++; i++; Pix = SepTable[b];
- if (nWord) {
- b = *pr++; i++; Pix |= SepTable[b] << 1;
- }
-
- Pix <<= nShift;
- *((UINT32 *)pt) |= Pix;
- }
-
- for (i = 0, pt = Tile + 4, pr = Rom + 0x40000; i < 0x40000; pt += 8) {
- UINT32 Pix; // Eight pixels
- UINT8 b;
- b = *pr++; i++; Pix = SepTable[b];
- if (nWord) {
- b = *pr++; i++; Pix |= SepTable[b] << 1;
- }
-
- Pix <<= nShift;
- *((UINT32 *)pt) |= Pix;
- }
-
- BurnFree(Rom);
- return 0;
-}
-
-static INT32 CpsLoadOneBootlegSmallSingle(UINT8* Tile, INT32 nNum, INT32 nWord, INT32 nShift)
-{
- UINT8 *Rom = NULL; INT32 nRomLen=0;
- UINT8 *pt = NULL, *pr = NULL;
- INT32 i;
-
- LoadUp(&Rom, &nRomLen, nNum);
- if (Rom == NULL) {
- return 1;
- }
- nRomLen &= ~1; // make sure even
-
- for (i = 0, pt = Tile, pr = Rom; i < 0x40000; pt += 8) {
- UINT32 Pix; // Eight pixels
- UINT8 b;
- b = *pr++; i++; Pix = SepTable[b];
- if (nWord) {
- b = *pr++; i++; Pix |= SepTable[b] << 1;
- }
-
- Pix <<= nShift;
- *((UINT32 *)pt) |= Pix;
- }
-
- BurnFree(Rom);
- return 0;
-}
-
-static INT32 CpsLoadOneBootlegType2(UINT8* Tile, INT32 nNum, INT32 nWord, INT32 nShift)
-{
- UINT8 *Rom = NULL; INT32 nRomLen=0;
- UINT8 *pt = NULL, *pr = NULL;
- INT32 i;
-
- LoadUp(&Rom, &nRomLen, nNum);
- if (Rom == NULL) {
- return 1;
- }
- nRomLen &= ~1; // make sure even
-
- for (i = 0, pt = Tile, pr = Rom; i < 0x40000; pt += 8) {
- UINT32 Pix; // Eight pixels
- UINT8 b;
- b = *pr++; i++; Pix = SepTable[b];
- if (nWord) {
- b = *pr++; i++; Pix |= SepTable[b] << 1;
- }
-
- Pix <<= nShift;
- *((UINT32 *)pt) |= Pix;
- }
-
- for (i = 0, pt = Tile + 4, pr = Rom + 0x40000; i < 0x40000; pt += 8) {
- UINT32 Pix; // Eight pixels
- UINT8 b;
- b = *pr++; i++; Pix = SepTable[b];
- if (nWord) {
- b = *pr++; i++; Pix |= SepTable[b] << 1;
- }
-
- Pix <<= nShift;
- *((UINT32 *)pt) |= Pix;
- }
-
- for (i = 0, pt = Tile + 0x200000, pr = Rom + 0x80000; i < 0x40000; pt += 8) {
- UINT32 Pix; // Eight pixels
- UINT8 b;
- b = *pr++; i++; Pix = SepTable[b];
- if (nWord) {
- b = *pr++; i++; Pix |= SepTable[b] << 1;
- }
-
- Pix <<= nShift;
- *((UINT32 *)pt) |= Pix;
- }
-
- for (i = 0, pt = Tile + 0x200004, pr = Rom + 0xc0000; i < 0x40000; pt += 8) {
- UINT32 Pix; // Eight pixels
- UINT8 b;
- b = *pr++; i++; Pix = SepTable[b];
- if (nWord) {
- b = *pr++; i++; Pix |= SepTable[b] << 1;
- }
-
- Pix <<= nShift;
- *((UINT32 *)pt) |= Pix;
- }
-
- BurnFree(Rom);
- return 0;
-}
-
-static INT32 CpsLoadOneBootlegType2Small(UINT8* Tile, INT32 nNum, INT32 nWord, INT32 nShift)
-{
- UINT8 *Rom = NULL; INT32 nRomLen=0;
- UINT8 *pt = NULL, *pr = NULL;
- INT32 i;
-
- LoadUp(&Rom, &nRomLen, nNum);
- if (Rom == NULL) {
- return 1;
- }
- nRomLen &= ~1; // make sure even
-
- for (i = 0, pt = Tile, pr = Rom; i < 0x40000; pt += 8) {
- UINT32 Pix; // Eight pixels
- UINT8 b;
- b = *pr++; i++; Pix = SepTable[b];
- if (nWord) {
- b = *pr++; i++; Pix |= SepTable[b] << 1;
- }
-
- Pix <<= nShift;
- *((UINT32 *)pt) |= Pix;
- }
-
- for (i = 0, pt = Tile + 4, pr = Rom + 0x40000; i < 0x40000; pt += 8) {
- UINT32 Pix; // Eight pixels
- UINT8 b;
- b = *pr++; i++; Pix = SepTable[b];
- if (nWord) {
- b = *pr++; i++; Pix |= SepTable[b] << 1;
- }
-
- Pix <<= nShift;
- *((UINT32 *)pt) |= Pix;
- }
-
- BurnFree(Rom);
- return 0;
-}
-
-static INT32 CpsLoadOneBootlegType2SmallSingle(UINT8* Tile, INT32 nNum, INT32 nWord, INT32 nShift)
-{
- UINT8 *Rom = NULL; INT32 nRomLen=0;
- UINT8 *pt = NULL, *pr = NULL;
- INT32 i;
-
- LoadUp(&Rom, &nRomLen, nNum);
- if (Rom == NULL) {
- return 1;
- }
- nRomLen &= ~1; // make sure even
-
- for (i = 0, pt = Tile, pr = Rom; i < 0x40000; pt += 8) {
- UINT32 Pix; // Eight pixels
- UINT8 b;
- b = *pr++; i++; Pix = SepTable[b];
- if (nWord) {
- b = *pr++; i++; Pix |= SepTable[b] << 1;
- }
-
- Pix <<= nShift;
- *((UINT32 *)pt) |= Pix;
- }
-
- BurnFree(Rom);
- return 0;
-}
-
-static INT32 CpsLoadOneBootlegType3(UINT8 *Tile, INT32 nNum, INT32 nWord, INT32 nShift)
-{
- UINT8 *Rom = NULL; INT32 nRomLen=0;
- UINT8 *pt = NULL, *pr = NULL;
- INT32 i;
-
- LoadUp(&Rom, &nRomLen, nNum);
- if (Rom == NULL) {
- return 1;
- }
- nRomLen &= ~1; // make sure even
-
- for (i = 0, pt = Tile, pr = Rom; i < nRomLen; pt += 4) {
- UINT32 Pix; // Eight pixels
- UINT8 b;
- b = *pr++; i++; Pix = SepTable[b];
- if (nWord) {
- b = *pr++; i++; Pix |= SepTable[b] << 1;
- }
-
- Pix <<= nShift;
- *((UINT32 *)pt) |= Pix;
- }
-
- BurnFree(Rom);
- return 0;
-}
-
-static INT32 CpsLoadOneBootlegType3Swap(UINT8 *Tile, INT32 nNum, INT32 nWord, INT32 nShift)
-{
- UINT8 *Rom = NULL; int nRomLen=0;
- UINT8 *pt = NULL, *pr = NULL;
- INT32 i;
-
- LoadUp(&Rom, &nRomLen, nNum);
- if (Rom == NULL) {
- return 1;
- }
- nRomLen &= ~1; // make sure even
-
- for (i = 0, pt = Tile, pr = Rom; i < nRomLen; pt += 4) {
- UINT32 Pix; // Eight pixels
- UINT8 b;
- b = *pr++; i++; Pix = SepTable[b];
- if (nWord) {
- b = *pr++; i++; Pix |= SepTable[b] << 1;
- }
-
- Pix <<= nShift;
- *((UINT32 *)pt) |= Pix;
-
- b = *pr++; i++; Pix = SepTable[b];
- if (nWord) {
- b = *pr++; i++; Pix |= SepTable[b] << 1;
- }
-
- Pix <<= (nShift + 1);
- *((UINT32 *)pt) |= Pix;
- }
-
- BurnFree(Rom);
- return 0;
-}
-
-static INT32 CpsLoadOneSf2ebbl(UINT8* Tile, INT32 nNum, INT32 nWord, INT32 nShift)
-{
- UINT8 *Rom = NULL; INT32 nRomLen=0;
- UINT8 *pt = NULL, *pr = NULL;
- INT32 i;
-
- LoadUp(&Rom, &nRomLen, nNum);
- if (Rom == NULL) {
- return 1;
- }
- nRomLen &= ~1; // make sure even
-
- for (i = 0, pt = Tile, pr = Rom; i < 0x10000; pt += 8) {
- UINT32 Pix; // Eight pixels
- UINT8 b;
- b = *pr++; i++; Pix = SepTable[b];
- if (nWord) {
- b = *pr++; i++; Pix |= SepTable[b] << 1;
- }
-
- Pix <<= nShift;
- *((UINT32 *)pt) |= Pix;
- }
-
- for (i = 0, pt = Tile + 4, pr = Rom + 0x10000; i < 0x10000; pt += 8) {
- UINT32 Pix; // Eight pixels
- UINT8 b;
- b = *pr++; i++; Pix = SepTable[b];
- if (nWord) {
- b = *pr++; i++; Pix |= SepTable[b] << 1;
- }
-
- Pix <<= nShift;
- *((UINT32 *)pt) |= Pix;
- }
-
- BurnFree(Rom);
- return 0;
-}
-
-static INT32 CpsLoadOneSf2b(UINT8* Tile, INT32 nNum, INT32 nWord, INT32 nShift)
-{
- UINT8 *Rom = NULL; INT32 nRomLen=0;
- UINT8 *pt = NULL, *pr = NULL;
- INT32 i;
-
- LoadUp(&Rom, &nRomLen, nNum);
- if (Rom == NULL) {
- return 1;
- }
- nRomLen &= ~1; // make sure even
-
- for (i = 0, pt = Tile + 4, pr = Rom; i < 0x10000; pt += 8) {
- UINT32 Pix; // Eight pixels
- UINT8 b;
- b = *pr++; i++; Pix = SepTable[b];
- if (nWord) {
- b = *pr++; i++; Pix |= SepTable[b] << 1;
- }
-
- Pix <<= nShift;
- *((UINT32 *)pt) |= Pix;
- }
-
- for (i = 0, pt = Tile, pr = Rom + 0x10000; i < 0x10000; pt += 8) {
- UINT32 Pix; // Eight pixels
- UINT8 b;
- b = *pr++; i++; Pix = SepTable[b];
- if (nWord) {
- b = *pr++; i++; Pix |= SepTable[b] << 1;
- }
-
- Pix <<= nShift;
- *((UINT32 *)pt) |= Pix;
- }
-
- BurnFree(Rom);
- return 0;
-}
-
-static INT32 CpsLoadOneSf2koryu(UINT8* Tile, INT32 nNum, INT32 nWord, INT32 nShift)
-{
- UINT8 *Rom = NULL; INT32 nRomLen=0;
- UINT8 *pt = NULL, *pr = NULL;
- INT32 i;
-
- LoadUp(&Rom, &nRomLen, nNum);
- if (Rom == NULL) {
- return 1;
- }
-
- nRomLen &= ~1; // make sure even
-
- for (i = 0, pt = Tile, pr = Rom; i < nRomLen >> 1; pt += 8) {
- UINT32 Pix; // Eight pixels
- UINT8 b;
- b = *pr++; i++; Pix = SepTable[b];
- if (nWord) {
- b = *pr++; i++; Pix |= SepTable[b] << 1;
- }
-
- Pix <<= nShift;
- *((UINT32 *)pt) |= Pix;
- }
-
- Tile += 4;
-
- for (i = 0, pt = Tile, pr = Rom + (nRomLen >> 1); i < nRomLen >> 1; pt += 8) {
- UINT32 Pix; // Eight pixels
- UINT8 b;
- b = *pr++; i++; Pix = SepTable[b];
- if (nWord) {
- b = *pr++; i++; Pix |= SepTable[b] << 1;
- }
-
- Pix <<= nShift;
- *((UINT32 *)pt) |= Pix;
- }
-
- BurnFree(Rom);
- return 0;
-}
-
-static INT32 CpsLoadOneSf2stt(UINT8* Tile, INT32 nNum, INT32 nWord, INT32 nShift)
-{
- UINT8 *Rom = NULL; INT32 nRomLen=0;
- UINT8 *pt = NULL, *pr = NULL;
- INT32 i;
-
- LoadUp(&Rom, &nRomLen, nNum);
- if (Rom == NULL) {
- return 1;
- }
-
- nRomLen &= ~1; // make sure even
-
- for (i = 0, pt = Tile, pr = Rom + (nRomLen >> 1); i < nRomLen >> 1; pt += 8) {
- UINT32 Pix; // Eight pixels
- UINT8 b;
- b = *pr++; i++; Pix = SepTable[b];
- if (nWord) {
- b = *pr++; i++; Pix |= SepTable[b] << 1;
- }
-
- Pix <<= nShift;
- *((UINT32 *)pt) |= Pix;
- }
-
- Tile += 4;
-
- for (i = 0, pt = Tile, pr = Rom; i < nRomLen >> 1; pt += 8) {
- UINT32 Pix; // Eight pixels
- UINT8 b;
- b = *pr++; i++; Pix = SepTable[b];
- if (nWord) {
- b = *pr++; i++; Pix |= SepTable[b] << 1;
- }
-
- Pix <<= nShift;
- *((UINT32 *)pt) |= Pix;
- }
-
- BurnFree(Rom);
- return 0;
-}
-
-static INT32 CpsLoadOneWonder3b(UINT8* Tile, INT32 nNum, INT32 nWord, INT32 nShift)
-{
- UINT8 *Rom = NULL; INT32 nRomLen=0;
- UINT8 *pt = NULL, *pr = NULL;
- INT32 i;
-
- LoadUp(&Rom, &nRomLen, nNum);
- if (Rom == NULL) {
- return 1;
- }
-
- nRomLen &= ~1; // make sure even
-
- for (i = 0, pt = Tile, pr = Rom; i < (nRomLen >> 1); pt += 8) {
- UINT32 Pix; // Eight pixels
- UINT8 b;
- b = *pr++; i++; Pix = SepTable[b];
- if (nWord) {
- b = *pr++; i++; Pix |= SepTable[b] << 1;
- }
-
- Pix <<= nShift;
- *((UINT32 *)pt) |= Pix;
- }
-
- for (i = 0, pt = Tile + 0x200000, pr = Rom + 0x40000; i < (nRomLen >> 1); pt += 8) {
- UINT32 Pix; // Eight pixels
- UINT8 b;
- b = *pr++; i++; Pix = SepTable[b];
- if (nWord) {
- b = *pr++; i++; Pix |= SepTable[b] << 1;
- }
-
- Pix <<= nShift;
- *((UINT32 *)pt) |= Pix;
- }
-
- BurnFree(Rom);
- return 0;
-}
-
-static INT32 CpsLoadPunisherbTiles(UINT8* Tile, INT32 nNum)
-{
- UINT8 *Rom = (UINT8*)BurnMalloc(0x400000 * sizeof(UINT8));
- UINT8 *pt = NULL, *pr = NULL;
- INT32 i, j;
-
- if (Rom == NULL) {
- return 1;
- }
-
- if (BurnLoadRom(Rom + 0x000000, nNum + 0, 2)) {
- BurnFree(Rom);
- return 1;
- }
-
- if (BurnLoadRom(Rom + 0x000001, nNum + 1, 2)) {
- BurnFree(Rom);
- return 1;
- }
-
- if (BurnLoadRom(Rom + 0x100000, nNum + 2, 2)) {
- BurnFree(Rom);
- return 1;
- }
-
- if (BurnLoadRom(Rom + 0x100001, nNum + 3, 2)) {
- BurnFree(Rom);
- return 1;
- }
-
- if (BurnLoadRom(Rom + 0x200000, nNum + 4, 2)) {
- BurnFree(Rom);
- return 1;
- }
-
- if (BurnLoadRom(Rom + 0x200001, nNum + 5, 2)) {
- BurnFree(Rom);
- return 1;
- }
-
- if (BurnLoadRom(Rom + 0x300000, nNum + 6, 2)) {
- BurnFree(Rom);
- return 1;
- }
-
- if (BurnLoadRom(Rom + 0x300001, nNum + 7, 2)) {
- BurnFree(Rom);
- return 1;
- }
-
- INT32 TileOffset[4] = { 0x000000, 0x200000, 0x000004, 0x200004 };
-
- for (j = 0; j < 4; j++) {
- for (i = 0, pt = Tile + TileOffset[j], pr = Rom + (0x80000 * j); i < 0x80000; pt += 8) {
- UINT32 Pix; // Eight pixels
- UINT8 b;
- b = *pr++; i++; Pix = SepTable[b];
- b = *pr++; i++; Pix |= SepTable[b] << 1;
-
- Pix <<= 0;
- *((UINT32 *)pt) |= Pix;
- }
-
- for (i = 0, pt = Tile + TileOffset[j], pr = Rom + 0x200000 + (0x80000 * j); i < 0x80000; pt += 8) {
- UINT32 Pix; // Eight pixels
- UINT8 b;
- b = *pr++; i++; Pix = SepTable[b];
- b = *pr++; i++; Pix |= SepTable[b] << 1;
-
- Pix <<= 2;
- *((UINT32 *)pt) |= Pix;
- }
- }
-
- BurnFree(Rom);
- return 0;
-}
-
-static INT32 CpsLoadSf2ceuab3Tiles(UINT8* Tile, INT32 nNum)
-{
- UINT8 *Rom = (UINT8*)BurnMalloc(0x200000 * sizeof(UINT8));
- UINT8 *Temp = (UINT8*)BurnMalloc(0x200000 * sizeof(UINT8));
- UINT8 *pt = NULL, *pr = NULL;
- INT32 i;
-
- if (Rom == NULL) {
- return 1;
- }
-
- if (BurnLoadRom(Temp + 0x000000, nNum + 0, 1)) {
- BurnFree(Rom);
- return 1;
- }
-
- if (BurnLoadRom(Temp + 0x100000, nNum + 1, 1)) {
- BurnFree(Rom);
- return 1;
- }
-
- for (i = 0; i < 0x100000; i += 2) {
- Rom[i + 0x000000] = Temp[i + 0x000000];
- Rom[i + 0x000001] = Temp[i + 0x100000];
- Rom[i + 0x100000] = Temp[i + 0x000001];
- Rom[i + 0x100001] = Temp[i + 0x100001];
- }
-
- BurnFree(Temp);
-
- for (i = 0, pt = Tile, pr = Rom; i < 0x80000; pt += 8) {
- UINT32 Pix; // Eight pixels
- UINT8 b;
- b = *pr++; i++; Pix = SepTable[b];
- b = *pr++; i++; Pix |= SepTable[b] << 1;
-
- Pix <<= 0;
- *((UINT32 *)pt) |= Pix;
- }
-
- for (i = 0, pt = Tile + 4, pr = Rom + 0x80000; i < 0x80000; pt += 8) {
- UINT32 Pix; // Eight pixels
- UINT8 b;
- b = *pr++; i++; Pix = SepTable[b];
- b = *pr++; i++; Pix |= SepTable[b] << 1;
-
- Pix <<= 0;
- *((UINT32 *)pt) |= Pix;
- }
-
- for (i = 0, pt = Tile, pr = Rom + 0x100000; i < 0x80000; pt += 8) {
- UINT32 Pix; // Eight pixels
- UINT8 b;
- b = *pr++; i++; Pix = SepTable[b];
- b = *pr++; i++; Pix |= SepTable[b] << 1;
-
- Pix <<= 2;
- *((UINT32 *)pt) |= Pix;
- }
-
- for (i = 0, pt = Tile + 4, pr = Rom + 0x180000; i < 0x80000; pt += 8) {
- UINT32 Pix; // Eight pixels
- UINT8 b;
- b = *pr++; i++; Pix = SepTable[b];
- b = *pr++; i++; Pix |= SepTable[b] << 1;
-
- Pix <<= 2;
- *((UINT32 *)pt) |= Pix;
- }
-
- BurnFree(Rom);
- return 0;
-}
-
-static INT32 CpsLoadSf2ceeablTiles(UINT8* Tile, INT32 nNum)
-{
- UINT8 *Rom = (UINT8*)BurnMalloc(0x200000 * sizeof(UINT8));
- UINT8 *Temp = (UINT8*)BurnMalloc(0x200000 * sizeof(UINT8));
- UINT8 *pt = NULL, *pr = NULL;
- INT32 i;
-
- if (Rom == NULL) {
- return 1;
- }
-
- if (BurnLoadRom(Temp + 0x000000, nNum + 0, 2)) {
- BurnFree(Rom);
- return 1;
- }
-
- if (BurnLoadRom(Temp + 0x000001, nNum + 1, 2)) {
- BurnFree(Rom);
- return 1;
- }
-
- if (BurnLoadRom(Temp + 0x100000, nNum + 2, 2)) {
- BurnFree(Rom);
- return 1;
- }
-
- if (BurnLoadRom(Temp + 0x100001, nNum + 3, 2)) {
- BurnFree(Rom);
- return 1;
- }
-
- for (i = 0; i < 0x100000; i += 2) {
- Rom[i + 0x000000] = Temp[i + 0x000000];
- Rom[i + 0x000001] = Temp[i + 0x100000];
- Rom[i + 0x100000] = Temp[i + 0x000001];
- Rom[i + 0x100001] = Temp[i + 0x100001];
- }
-
- BurnFree(Temp);
-
- for (i = 0, pt = Tile, pr = Rom; i < 0x80000; pt += 8) {
- UINT32 Pix; // Eight pixels
- UINT8 b;
- b = *pr++; i++; Pix = SepTable[b];
- b = *pr++; i++; Pix |= SepTable[b] << 1;
-
- Pix <<= 0;
- *((UINT32 *)pt) |= Pix;
- }
-
- for (i = 0, pt = Tile + 4, pr = Rom + 0x80000; i < 0x80000; pt += 8) {
- UINT32 Pix; // Eight pixels
- UINT8 b;
- b = *pr++; i++; Pix = SepTable[b];
- b = *pr++; i++; Pix |= SepTable[b] << 1;
-
- Pix <<= 0;
- *((UINT32 *)pt) |= Pix;
- }
-
- for (i = 0, pt = Tile, pr = Rom + 0x100000; i < 0x80000; pt += 8) {
- UINT32 Pix; // Eight pixels
- UINT8 b;
- b = *pr++; i++; Pix = SepTable[b];
- b = *pr++; i++; Pix |= SepTable[b] << 1;
-
- Pix <<= 2;
- *((UINT32 *)pt) |= Pix;
- }
-
- for (i = 0, pt = Tile + 4, pr = Rom + 0x180000; i < 0x80000; pt += 8) {
- UINT32 Pix; // Eight pixels
- UINT8 b;
- b = *pr++; i++; Pix = SepTable[b];
- b = *pr++; i++; Pix |= SepTable[b] << 1;
-
- Pix <<= 2;
- *((UINT32 *)pt) |= Pix;
- }
-
- BurnFree(Rom);
- return 0;
-}
-
-static INT32 CpsLoadSf2ceuab7Tiles(UINT8* Tile, INT32 nNum)
-{
- UINT8 *Rom = (UINT8*)BurnMalloc(0x200000 * sizeof(UINT8));
- UINT8 *Temp = (UINT8*)BurnMalloc(0x200000 * sizeof(UINT8));
- UINT8 *pt = NULL, *pr = NULL;
- INT32 i;
-
- if (Rom == NULL) {
- return 1;
- }
-
- if (BurnLoadRom(Temp + 0x000000, nNum + 0, 2)) {
- BurnFree(Rom);
- return 1;
- }
-
- if (BurnLoadRom(Temp + 0x080000, nNum + 1, 2)) {
- BurnFree(Rom);
- return 1;
- }
-
- if (BurnLoadRom(Temp + 0x000001, nNum + 2, 2)) {
- BurnFree(Rom);
- return 1;
- }
-
- if (BurnLoadRom(Temp + 0x080001, nNum + 3, 2)) {
- BurnFree(Rom);
- return 1;
- }
-
- if (BurnLoadRom(Temp + 0x100000, nNum + 4, 2)) {
- BurnFree(Rom);
- return 1;
- }
-
- if (BurnLoadRom(Temp + 0x180000, nNum + 5, 2)) {
- BurnFree(Rom);
- return 1;
- }
-
- if (BurnLoadRom(Temp + 0x100001, nNum + 6, 2)) {
- BurnFree(Rom);
- return 1;
- }
-
- if (BurnLoadRom(Temp + 0x180001, nNum + 7, 2)) {
- BurnFree(Rom);
- return 1;
- }
-
- for (i = 0; i < 0x100000; i += 2) {
- Rom[i + 0x000000] = Temp[i + 0x000000];
- Rom[i + 0x000001] = Temp[i + 0x100000];
- Rom[i + 0x100000] = Temp[i + 0x000001];
- Rom[i + 0x100001] = Temp[i + 0x100001];
- }
-
- BurnFree(Temp);
-
- for (i = 0, pt = Tile, pr = Rom; i < 0x80000; pt += 8) {
- UINT32 Pix; // Eight pixels
- UINT8 b;
- b = *pr++; i++; Pix = SepTable[b];
- b = *pr++; i++; Pix |= SepTable[b] << 1;
-
- Pix <<= 0;
- *((UINT32 *)pt) |= Pix;
- }
-
- for (i = 0, pt = Tile + 4, pr = Rom + 0x80000; i < 0x80000; pt += 8) {
- UINT32 Pix; // Eight pixels
- UINT8 b;
- b = *pr++; i++; Pix = SepTable[b];
- b = *pr++; i++; Pix |= SepTable[b] << 1;
-
- Pix <<= 0;
- *((UINT32 *)pt) |= Pix;
- }
-
- for (i = 0, pt = Tile, pr = Rom + 0x100000; i < 0x80000; pt += 8) {
- UINT32 Pix; // Eight pixels
- UINT8 b;
- b = *pr++; i++; Pix = SepTable[b];
- b = *pr++; i++; Pix |= SepTable[b] << 1;
-
- Pix <<= 2;
- *((UINT32 *)pt) |= Pix;
- }
-
- for (i = 0, pt = Tile + 4, pr = Rom + 0x180000; i < 0x80000; pt += 8) {
- UINT32 Pix; // Eight pixels
- UINT8 b;
- b = *pr++; i++; Pix = SepTable[b];
- b = *pr++; i++; Pix |= SepTable[b] << 1;
-
- Pix <<= 2;
- *((UINT32 *)pt) |= Pix;
- }
-
- BurnFree(Rom);
- return 0;
-}
-
-INT32 CpsLoadTiles(UINT8* Tile, INT32 nStart)
-{
- // left side of 16x16 tiles
- CpsLoadOne(Tile, nStart , 1, 0);
- CpsLoadOne(Tile, nStart + 1, 1, 2);
- // right side of 16x16 tiles
- CpsLoadOne(Tile + 4, nStart + 2, 1, 0);
- CpsLoadOne(Tile + 4, nStart + 3, 1, 2);
- return 0;
-}
-
-INT32 CpsLoadTilesByte(UINT8* Tile, INT32 nStart)
-{
- CpsLoadOne(Tile, nStart + 0, 0, 0);
- CpsLoadOne(Tile, nStart + 1, 0, 1);
- CpsLoadOne(Tile, nStart + 2, 0, 2);
- CpsLoadOne(Tile, nStart + 3, 0, 3);
- CpsLoadOne(Tile + 4, nStart + 4, 0, 0);
- CpsLoadOne(Tile + 4, nStart + 5, 0, 1);
- CpsLoadOne(Tile + 4, nStart + 6, 0, 2);
- CpsLoadOne(Tile + 4, nStart + 7, 0, 3);
- return 0;
-}
-
-INT32 CpsLoadTilesForgottn(INT32 nStart)
-{
- CpsLoadOne(CpsGfx + 0 + 0x000000, nStart + 0, 0, 0);
- CpsLoadOne(CpsGfx + 0 + 0x000000, nStart + 1, 0, 1);
- CpsLoadOne(CpsGfx + 0 + 0x000000, nStart + 2, 1, 2);
- CpsLoadOne(CpsGfx + 4 + 0x000000, nStart + 3, 0, 0);
- CpsLoadOne(CpsGfx + 4 + 0x000000, nStart + 4, 0, 1);
- CpsLoadOne(CpsGfx + 4 + 0x000000, nStart + 5, 0, 2);
- CpsLoadOne(CpsGfx + 4 + 0x000000, nStart + 6, 0, 3);
- CpsLoadOne(CpsGfx + 0 + 0x100000, nStart + 7, 0, 0);
- CpsLoadOne(CpsGfx + 0 + 0x100000, nStart + 8, 0, 1);
- CpsLoadOne(CpsGfx + 4 + 0x100000, nStart + 9, 0, 0);
- CpsLoadOne(CpsGfx + 4 + 0x100000, nStart + 10, 0, 1);
- CpsLoadOne(CpsGfx + 4 + 0x100000, nStart + 11, 0, 2);
- CpsLoadOne(CpsGfx + 4 + 0x100000, nStart + 12, 0, 3);
- CpsLoadOne(CpsGfx + 0 + 0x200000, nStart + 13, 1, 0);
- CpsLoadOne(CpsGfx + 0 + 0x200000, nStart + 14, 0, 2);
- CpsLoadOne(CpsGfx + 0 + 0x200000, nStart + 15, 0, 3);
- CpsLoadOne(CpsGfx + 4 + 0x200000, nStart + 16, 1, 0);
- CpsLoadOne(CpsGfx + 4 + 0x200000, nStart + 17, 0, 2);
- CpsLoadOne(CpsGfx + 4 + 0x200000, nStart + 18, 0, 3);
- CpsLoadOne(CpsGfx + 0 + 0x300000, nStart + 19, 0, 2);
- CpsLoadOne(CpsGfx + 0 + 0x300000, nStart + 20, 0, 3);
- CpsLoadOne(CpsGfx + 4 + 0x300000, nStart + 21, 0, 2);
- CpsLoadOne(CpsGfx + 4 + 0x300000, nStart + 22, 0, 3);
-
- return 0;
-}
-
-INT32 CpsLoadTilesForgottna(INT32 nStart)
-{
- CpsLoadOne(CpsGfx + 0 + 0x000000, nStart + 0, 0, 0);
- CpsLoadOne(CpsGfx + 0 + 0x000000, nStart + 1, 0, 1);
- CpsLoadOne(CpsGfx + 0 + 0x000000, nStart + 2, 1, 2);
- CpsLoadOne(CpsGfx + 4 + 0x000000, nStart + 3, 1, 0);
- CpsLoadOne(CpsGfx + 4 + 0x000000, nStart + 4, 0, 2);
- CpsLoadOne(CpsGfx + 4 + 0x000000, nStart + 5, 0, 3);
- CpsLoadOne(CpsGfx + 0 + 0x100000, nStart + 6, 0, 0);
- CpsLoadOne(CpsGfx + 0 + 0x100000, nStart + 7, 0, 1);
- CpsLoadOne(CpsGfx + 4 + 0x100000, nStart + 8, 0, 2);
- CpsLoadOne(CpsGfx + 4 + 0x100000, nStart + 9, 0, 3);
- CpsLoadOne(CpsGfx + 0 + 0x200000, nStart + 10, 1, 0);
- CpsLoadOne(CpsGfx + 0 + 0x200000, nStart + 11, 0, 2);
- CpsLoadOne(CpsGfx + 0 + 0x200000, nStart + 12, 0, 3);
- CpsLoadOne(CpsGfx + 4 + 0x200000, nStart + 13, 1, 0);
- CpsLoadOne(CpsGfx + 4 + 0x200000, nStart + 14, 0, 2);
- CpsLoadOne(CpsGfx + 4 + 0x200000, nStart + 15, 0, 3);
- CpsLoadOne(CpsGfx + 0 + 0x300000, nStart + 16, 0, 2);
- CpsLoadOne(CpsGfx + 0 + 0x300000, nStart + 17, 0, 3);
- CpsLoadOne(CpsGfx + 4 + 0x300000, nStart + 18, 0, 2);
- CpsLoadOne(CpsGfx + 4 + 0x300000, nStart + 19, 0, 3);
-
- return 0;
-}
-
-INT32 CpsLoadTilesForgottnu(INT32 nStart)
-{
- CpsLoadOne(CpsGfx + 0 + 0x000000, nStart + 0, 0, 0);
- CpsLoadOne(CpsGfx + 0 + 0x000000, nStart + 1, 0, 1);
- CpsLoadOne(CpsGfx + 0 + 0x000000, nStart + 2, 1, 2);
- CpsLoadOne(CpsGfx + 4 + 0x000000, nStart + 3, 1, 0);
- CpsLoadOne(CpsGfx + 4 + 0x000000, nStart + 4, 0, 2);
- CpsLoadOne(CpsGfx + 4 + 0x000000, nStart + 5, 0, 3);
- CpsLoadOne(CpsGfx + 0 + 0x100000, nStart + 6, 0, 0);
- CpsLoadOne(CpsGfx + 0 + 0x100000, nStart + 7, 0, 1);
- CpsLoadOne(CpsGfx + 4 + 0x100000, nStart + 8, 0, 2);
- CpsLoadOne(CpsGfx + 4 + 0x100000, nStart + 9, 0, 3);
- CpsLoadOne(CpsGfx + 0 + 0x200000, nStart + 10, 1, 0);
- CpsLoadOne(CpsGfx + 0 + 0x200000, nStart + 11, 0, 2);
- CpsLoadOne(CpsGfx + 0 + 0x200000, nStart + 12, 0, 3);
- CpsLoadOne(CpsGfx + 4 + 0x200000, nStart + 13, 1, 0);
- CpsLoadOne(CpsGfx + 4 + 0x200000, nStart + 14, 1, 2);
- CpsLoadOne(CpsGfx + 0 + 0x300000, nStart + 15, 0, 2);
- CpsLoadOne(CpsGfx + 0 + 0x300000, nStart + 16, 0, 3);
-
- return 0;
-}
-
-INT32 CpsLoadTilesPang(UINT8* Tile, INT32 nStart)
-{
- CpsLoadOne( Tile, nStart, 1, 0);
- CpsLoadOne( Tile, nStart + 1, 1, 2);
- CpsLoadOnePang(Tile + 4, nStart, 1, 0);
- CpsLoadOnePang(Tile + 4, nStart + 1, 1, 2);
-
- return 0;
-}
-
-static INT32 CpsLoadTilesBootleg(UINT8 *Tile, INT32 nStart)
-{
- CpsLoadOneBootleg(Tile, nStart + 0, 0, 0);
- CpsLoadOneBootleg(Tile, nStart + 1, 0, 1);
- CpsLoadOneBootleg(Tile, nStart + 2, 0, 2);
- CpsLoadOneBootleg(Tile, nStart + 3, 0, 3);
-
- return 0;
-}
-
-INT32 CpsLoadTilesSf2ebbl(UINT8 *Tile, INT32 nStart)
-{
- CpsLoadOneSf2ebbl(Tile, nStart + 0, 0, 0);
- CpsLoadOneSf2ebbl(Tile, nStart + 1, 0, 2);
- CpsLoadOneSf2ebbl(Tile, nStart + 2, 0, 1);
- CpsLoadOneSf2ebbl(Tile, nStart + 3, 0, 3);
-
- return 0;
-}
-
-INT32 CpsLoadTilesSf2b(UINT8 *Tile, INT32 nStart)
-{
- CpsLoadOneSf2b(Tile, nStart + 0, 0, 0);
- CpsLoadOneSf2b(Tile, nStart + 1, 0, 2);
- CpsLoadOneSf2b(Tile, nStart + 2, 0, 1);
- CpsLoadOneSf2b(Tile, nStart + 3, 0, 3);
-
- return 0;
-}
-
-INT32 CpsLoadTilesSf2koryuExtra(UINT8* Tile, INT32 nStart)
-{
- CpsLoadOneSf2koryu(Tile, nStart + 0, 1, 0);
- CpsLoadOneSf2koryu(Tile, nStart + 1, 1, 2);
-
- return 0;
-}
-
-static INT32 CpsLoadTilesBootlegType3(UINT8 *Tile, INT32 nStart)
-{
- CpsLoadOneBootlegType3(Tile, nStart + 0, 0, 0);
- CpsLoadOneBootlegType3(Tile, nStart + 1, 0, 1);
- CpsLoadOneBootlegType3(Tile, nStart + 2, 0, 2);
- CpsLoadOneBootlegType3(Tile, nStart + 3, 0, 3);
-
- return 0;
-}
-
-INT32 CpsLoadTilesHack160(INT32 nStart)
-{
- CpsLoadOneHack160(CpsGfx, nStart, 1, 0);
-
- return 0;
-}
-
-INT32 CpsLoadTilesHack160Alt(INT32 nStart)
-{
- CpsLoadOneHack160(CpsGfx, nStart, 1, 1);
-
- return 0;
-}
-
-INT32 CpsLoadTilesSf2koryu(INT32 nStart)
-{
- CpsLoadOneSf2koryu(CpsGfx + 0x000000, nStart + 0, 1, 0);
- CpsLoadOneSf2koryu(CpsGfx + 0x000000, nStart + 1, 1, 2);
- CpsLoadOneSf2koryu(CpsGfx + 0x200000, nStart + 2, 1, 0);
- CpsLoadOneSf2koryu(CpsGfx + 0x200000, nStart + 3, 1, 2);
- CpsLoadOneSf2koryu(CpsGfx + 0x400000, nStart + 4, 1, 0);
- CpsLoadOneSf2koryu(CpsGfx + 0x400000, nStart + 5, 1, 2);
-
- return 0;
-}
-
-INT32 CpsLoadTilesSf2stt(INT32 nStart)
-{
- CpsLoadOneSf2stt(CpsGfx + 0x000000, nStart + 0, 1, 0);
- CpsLoadOneSf2stt(CpsGfx + 0x000000, nStart + 1, 1, 2);
- CpsLoadOneSf2stt(CpsGfx + 0x200000, nStart + 2, 1, 0);
- CpsLoadOneSf2stt(CpsGfx + 0x200000, nStart + 3, 1, 2);
- CpsLoadOneSf2stt(CpsGfx + 0x400000, nStart + 4, 1, 0);
- CpsLoadOneSf2stt(CpsGfx + 0x400000, nStart + 5, 1, 2);
-
- return 0;
-}
-
-INT32 CpsLoadTilesSf2mdt(INT32 nStart)
-{
- CpsLoadTilesBootlegType3(CpsGfx + 0x000000, nStart + 0);
- CpsLoadTilesBootlegType3(CpsGfx + 0x200000, nStart + 4);
- CpsLoadTilesBootlegType3(CpsGfx + 0x400000, nStart + 8);
-
- return 0;
-}
-
-INT32 CpsLoadTilesSf2mdta(INT32 nStart)
-{
- CpsLoadOneBootlegType3Swap(CpsGfx + 0x000000, nStart + 0, 0, 0);
- CpsLoadOneBootlegType3Swap(CpsGfx + 0x000000, nStart + 1, 0, 2);
- CpsLoadOneBootlegType3Swap(CpsGfx + 0x200000, nStart + 2, 0, 0);
- CpsLoadOneBootlegType3Swap(CpsGfx + 0x200000, nStart + 3, 0, 2);
- CpsLoadOneBootlegType3Swap(CpsGfx + 0x400000, nStart + 4, 0, 0);
- CpsLoadOneBootlegType3Swap(CpsGfx + 0x400000, nStart + 5, 0, 2);
-
- return 0;
-}
-
-INT32 CpsLoadTilesSf2ceuab3(INT32 nStart)
-{
- CpsLoadOneBootlegType2(CpsGfx + 0x000000, nStart + 0, 0, 0);
- CpsLoadOneBootlegType2(CpsGfx + 0x000000, nStart + 1, 0, 1);
- CpsLoadOneBootlegType2(CpsGfx + 0x000000, nStart + 2, 0, 2);
- CpsLoadOneBootlegType2(CpsGfx + 0x000000, nStart + 3, 0, 3);
- // The last two roms are a complete pain, handled by this custom function
- CpsLoadSf2ceuab3Tiles(CpsGfx + 0x400000, nStart + 4);
-
- return 0;
-}
-
-INT32 CpsLoadTilesSf2ceeabl(INT32 nStart)
-{
- CpsLoadOneBootlegType2Small(CpsGfx + 0x000000, nStart + 0, 0, 0);
- CpsLoadOneBootlegType2Small(CpsGfx + 0x200000, nStart + 1, 0, 0);
- CpsLoadOneBootlegType2Small(CpsGfx + 0x000000, nStart + 2, 0, 1);
- CpsLoadOneBootlegType2Small(CpsGfx + 0x200000, nStart + 3, 0, 1);
- CpsLoadOneBootlegType2Small(CpsGfx + 0x000000, nStart + 4, 0, 2);
- CpsLoadOneBootlegType2Small(CpsGfx + 0x200000, nStart + 5, 0, 2);
- CpsLoadOneBootlegType2Small(CpsGfx + 0x000000, nStart + 6, 0, 3);
- CpsLoadOneBootlegType2Small(CpsGfx + 0x200000, nStart + 7, 0, 3);
- // The last four roms are a complete pain, handled by this custom function
- CpsLoadSf2ceeablTiles(CpsGfx + 0x400000, nStart + 8);
-
- return 0;
-}
-
-INT32 CpsLoadTilesSf2ceuab7(INT32 nStart)
-{
- CpsLoadOneBootlegType2SmallSingle(CpsGfx + 0x000000, nStart + 0, 0, 0);
- CpsLoadOneBootlegType2SmallSingle(CpsGfx + 0x000004, nStart + 1, 0, 0);
- CpsLoadOneBootlegType2SmallSingle(CpsGfx + 0x200000, nStart + 2, 0, 0);
- CpsLoadOneBootlegType2SmallSingle(CpsGfx + 0x200004, nStart + 3, 0, 0);
- CpsLoadOneBootlegType2SmallSingle(CpsGfx + 0x000000, nStart + 4, 0, 1);
- CpsLoadOneBootlegType2SmallSingle(CpsGfx + 0x000004, nStart + 5, 0, 1);
- CpsLoadOneBootlegType2SmallSingle(CpsGfx + 0x200000, nStart + 6, 0, 1);
- CpsLoadOneBootlegType2SmallSingle(CpsGfx + 0x200004, nStart + 7, 0, 1);
- CpsLoadOneBootlegType2SmallSingle(CpsGfx + 0x000000, nStart + 8, 0, 2);
- CpsLoadOneBootlegType2SmallSingle(CpsGfx + 0x000004, nStart + 9, 0, 2);
- CpsLoadOneBootlegType2SmallSingle(CpsGfx + 0x200000, nStart + 10, 0, 2);
- CpsLoadOneBootlegType2SmallSingle(CpsGfx + 0x200004, nStart + 11, 0, 2);
- CpsLoadOneBootlegType2SmallSingle(CpsGfx + 0x000000, nStart + 12, 0, 3);
- CpsLoadOneBootlegType2SmallSingle(CpsGfx + 0x000004, nStart + 13, 0, 3);
- CpsLoadOneBootlegType2SmallSingle(CpsGfx + 0x200000, nStart + 14, 0, 3);
- CpsLoadOneBootlegType2SmallSingle(CpsGfx + 0x200004, nStart + 15, 0, 3);
-
- // The last eight roms are a complete pain, handled by this custom function
- CpsLoadSf2ceuab7Tiles(CpsGfx + 0x400000, nStart + 16);
-
- return 0;
-}
-
-INT32 CpsLoadTilesSf2ebbl3(INT32 nStart)
-{
- CpsLoadOne(CpsGfx + 0x000000, nStart , 1, 0);
- CpsLoadOne(CpsGfx + 0x000000, nStart + 1, 1, 2);
- CpsLoadOne(CpsGfx + 0x000004, nStart + 2, 0, 0);
- CpsLoadOne(CpsGfx + 0x000004, nStart + 3, 0, 1);
- CpsLoadOne(CpsGfx + 0x000004, nStart + 4, 0, 2);
- CpsLoadOne(CpsGfx + 0x000004, nStart + 5, 0, 3);
- CpsLoadOne(CpsGfx + 0x200000, nStart + 6, 0, 0);
- CpsLoadOne(CpsGfx + 0x200000, nStart + 7, 0, 1);
- CpsLoadOne(CpsGfx + 0x200000, nStart + 8, 1, 2);
- CpsLoadOne(CpsGfx + 0x200004, nStart + 9, 1, 0);
- CpsLoadOne(CpsGfx + 0x200004, nStart + 10, 0, 2);
- CpsLoadOne(CpsGfx + 0x200004, nStart + 11, 0, 3);
- CpsLoadOne(CpsGfx + 0x400000, nStart + 12, 1, 0);
- CpsLoadOne(CpsGfx + 0x400000, nStart + 13, 1, 2);
- CpsLoadOne(CpsGfx + 0x400004, nStart + 14, 1, 0);
- CpsLoadOne(CpsGfx + 0x400004, nStart + 15, 1, 2);
-
- return 0;
-}
-
-INT32 CpsLoadTilesFcrash(INT32 nStart)
-{
- CpsLoadTilesBootlegType3(CpsGfx + 0x000000, nStart + 0);
- CpsLoadTilesBootlegType3(CpsGfx + 0x080000, nStart + 4);
- CpsLoadTilesBootlegType3(CpsGfx + 0x100000, nStart + 8);
- CpsLoadTilesBootlegType3(CpsGfx + 0x180000, nStart + 12);
-
- return 0;
-}
-
-INT32 CpsLoadTilesCawingbl(INT32 nStart)
-{
- CpsLoadTilesBootlegType3(CpsGfx + 0x000000, nStart + 0);
-
- return 0;
-}
-
-INT32 CpsLoadTilesCaptcommb(INT32 nStart)
-{
- CpsLoadOneBootlegType2(CpsGfx + 0x000000, nStart + 0, 0, 0);
- CpsLoadOneBootlegType2(CpsGfx + 0x000000, nStart + 1, 0, 1);
- CpsLoadOneBootlegType2(CpsGfx + 0x000000, nStart + 2, 0, 2);
- CpsLoadOneBootlegType2(CpsGfx + 0x000000, nStart + 3, 0, 3);
-
- return 0;
-}
-
-INT32 CpsLoadTilesDinopic(INT32 nStart)
-{
- CpsLoadTilesBootleg(CpsGfx + 0x000000, nStart + 0);
- CpsLoadTilesBootleg(CpsGfx + 0x200000, nStart + 4);
-
- return 0;
-}
-
-INT32 CpsLoadTilesDinopic4(INT32 nStart)
-{
- CpsLoadOneBootlegSmallSingle(CpsGfx + 0x000000, nStart + 0, 0, 0);
- CpsLoadOneBootlegSmallSingle(CpsGfx + 0x000004, nStart + 1, 0, 0);
- CpsLoadOneBootlegSmallSingle(CpsGfx + 0x000000, nStart + 2, 0, 1);
- CpsLoadOneBootlegSmallSingle(CpsGfx + 0x000004, nStart + 3, 0, 1);
- CpsLoadOneBootlegSmallSingle(CpsGfx + 0x000000, nStart + 4, 0, 2);
- CpsLoadOneBootlegSmallSingle(CpsGfx + 0x000004, nStart + 5, 0, 2);
- CpsLoadOneBootlegSmallSingle(CpsGfx + 0x000000, nStart + 6, 0, 3);
- CpsLoadOneBootlegSmallSingle(CpsGfx + 0x000004, nStart + 7, 0, 3);
- CpsLoadOneBootlegSmallSingle(CpsGfx + 0x200000, nStart + 8, 0, 0);
- CpsLoadOneBootlegSmallSingle(CpsGfx + 0x200004, nStart + 9, 0, 0);
- CpsLoadOneBootlegSmallSingle(CpsGfx + 0x200000, nStart + 10, 0, 1);
- CpsLoadOneBootlegSmallSingle(CpsGfx + 0x200004, nStart + 11, 0, 1);
- CpsLoadOneBootlegSmallSingle(CpsGfx + 0x200000, nStart + 12, 0, 2);
- CpsLoadOneBootlegSmallSingle(CpsGfx + 0x200004, nStart + 13, 0, 2);
- CpsLoadOneBootlegSmallSingle(CpsGfx + 0x200000, nStart + 14, 0, 3);
- CpsLoadOneBootlegSmallSingle(CpsGfx + 0x200004, nStart + 15, 0, 3);
-
- return 0;
-}
-
-INT32 CpsLoadTilesSlampic(INT32 nStart)
-{
- CpsLoadTilesBootleg(CpsGfx + 0x000000, nStart + 0);
- CpsLoadTilesBootleg(CpsGfx + 0x200000, nStart + 4);
- CpsLoadTilesBootleg(CpsGfx + 0x400000, nStart + 8);
-
- return 0;
-}
-
-INT32 CpsLoadTilesKodb(INT32 nStart)
-{
- CpsLoadTilesByte(CpsGfx, nStart);
-
- return 0;
-}
-
-INT32 CpsLoadTilesWonder3b(INT32 nStart)
-{
- CpsLoadOneWonder3b(CpsGfx + 0x000000, nStart + 0, 0, 0);
- CpsLoadOneWonder3b(CpsGfx + 0x000000, nStart + 1, 0, 2);
- CpsLoadOneWonder3b(CpsGfx + 0x000004, nStart + 2, 0, 0);
- CpsLoadOneWonder3b(CpsGfx + 0x000004, nStart + 3, 0, 2);
- CpsLoadOneWonder3b(CpsGfx + 0x000000, nStart + 4, 0, 1);
- CpsLoadOneWonder3b(CpsGfx + 0x000000, nStart + 5, 0, 3);
- CpsLoadOneWonder3b(CpsGfx + 0x000004, nStart + 6, 0, 1);
- CpsLoadOneWonder3b(CpsGfx + 0x000004, nStart + 7, 0, 3);
-
- return 0;
-}
-
-INT32 CpsLoadTilesPang3r1a(INT32 nStart)
-{
- CpsLoadOne(CpsGfx + 0x000000, nStart + 0, 1, 0);
- CpsLoadOne(CpsGfx + 0x200000, nStart + 1, 1, 0);
- CpsLoadOne(CpsGfx + 0x000004, nStart + 2, 1, 0);
- CpsLoadOne(CpsGfx + 0x200004, nStart + 3, 1, 0);
- CpsLoadOne(CpsGfx + 0x000000, nStart + 4, 1, 2);
- CpsLoadOne(CpsGfx + 0x200000, nStart + 5, 1, 2);
- CpsLoadOne(CpsGfx + 0x000004, nStart + 6, 1, 2);
- CpsLoadOne(CpsGfx + 0x200004, nStart + 7, 1, 2);
-
- return 0;
-}
-
-INT32 CpsLoadTilesPunisherb(INT32 nStart)
-{
- CpsLoadPunisherbTiles(CpsGfx, nStart);
-
- return 0;
-}
-
-INT32 CpsLoadStars(UINT8* pStar, INT32 nStart)
-{
- UINT8* pTemp[2] = { NULL, NULL};
- INT32 nLen;
-
- for (INT32 i = 0; i < 2; i++) {
- if (LoadUp(&pTemp[i], &nLen, nStart + (i << 1))) {
- BurnFree(pTemp[0]);
- BurnFree(pTemp[1]);
- }
- }
-
- for (INT32 i = 0; i < 0x1000; i++) {
- pStar[i] = pTemp[0][i << 1];
- pStar[0x01000 + i] = pTemp[1][i << 1];
- }
-
- BurnFree(pTemp[0]);
- BurnFree(pTemp[1]);
-
- return 0;
-}
-
-INT32 CpsLoadStarsByte(UINT8* pStar, INT32 nStart)
-{
- UINT8* pTemp[2] = { NULL, NULL};
- INT32 nLen;
-
- for (INT32 i = 0; i < 2; i++) {
- if (LoadUp(&pTemp[i], &nLen, nStart + (i * 4))) {
- BurnFree(pTemp[0]);
- BurnFree(pTemp[1]);
- }
- }
-
- for (INT32 i = 0; i < 0x1000; i++) {
- pStar[i] = pTemp[0][i];
- pStar[0x01000 + i] = pTemp[1][i];
- }
-
- BurnFree(pTemp[0]);
- BurnFree(pTemp[1]);
-
- return 0;
-}
-
-INT32 CpsLoadStarsForgottnAlt(UINT8* pStar, INT32 nStart)
-{
- UINT8* pTemp[2] = { NULL, NULL};
- INT32 nLen;
-
- for (INT32 i = 0; i < 2; i++) {
- if (LoadUp(&pTemp[i], &nLen, nStart + (i * 3))) {
- BurnFree(pTemp[0]);
- BurnFree(pTemp[1]);
- }
- }
-
- for (INT32 i = 0; i < 0x1000; i++) {
- pStar[i] = pTemp[0][i << 1];
- pStar[0x01000 + i] = pTemp[1][i << 1];
- }
-
- BurnFree(pTemp[0]);
- BurnFree(pTemp[1]);
-
- return 0;
-}
-
-// ----------------------------CPS2--------------------------------
-// Load 1 rom and interleve in the CPS2 style:
-// rom : aa bb -- -- (4 bytes)
-// --ba --ba --ba --ba --ba --ba --ba --ba 8 pixels (four bytes)
-// (skip four bytes)
-
-// memory 000000-100000 are in even word fields of first 080000 section
-// memory 100000-200000 are in odd word fields of first 080000 section
-// i = ABCD nnnn nnnn nnnn nnnn n000
-// s = 00AB Cnnn nnnn nnnn nnnn nnD0
-
-inline static void Cps2Load100000(UINT8* Tile, UINT8* Sect, INT32 nShift)
-{
- UINT8 *pt, *pEnd, *ps;
- pt = Tile; pEnd = Tile + 0x100000; ps = Sect;
-
- do {
- UINT32 Pix; // Eight pixels
- Pix = SepTable[ps[0]];
- Pix |= SepTable[ps[1]] << 1;
- Pix <<= nShift;
- *((UINT32*)pt) |= Pix;
-
- pt += 8; ps += 4;
- }
- while (pt < pEnd);
-}
-
-static INT32 Cps2LoadOne(UINT8* Tile, INT32 nNum, INT32 nWord, INT32 nShift)
-{
- UINT8 *Rom = NULL; INT32 nRomLen = 0;
- UINT8 *pt, *pr;
-
- LoadUp(&Rom, &nRomLen, nNum);
- if (Rom == NULL) {
- return 1;
- }
-
- if (nWord == 0) {
- UINT8*Rom2 = NULL; INT32 nRomLen2 = 0;
- UINT8*Rom3 = Rom;
-
- LoadUp(&Rom2, &nRomLen2, nNum + 1);
- if (Rom2 == NULL) {
- return 1;
- }
-
- nRomLen <<= 1;
- Rom = (UINT8*)BurnMalloc(nRomLen);
- if (Rom == NULL) {
- BurnFree(Rom2);
- BurnFree(Rom3);
- return 1;
- }
-
- for (INT32 i = 0; i < nRomLen2; i++) {
- Rom[(i << 1) + 0] = Rom3[i];
- Rom[(i << 1) + 1] = Rom2[i];
- }
-
- BurnFree(Rom2);
- BurnFree(Rom3);
- }
-
- // Go through each section
- pt = Tile; pr = Rom;
- for (INT32 b = 0; b < nRomLen >> 19; b++) {
- Cps2Load100000(pt, pr, nShift); pt += 0x100000;
- Cps2Load100000(pt, pr + 2, nShift); pt += 0x100000;
- pr += 0x80000;
- }
-
- BurnFree(Rom);
-
- return 0;
-}
-
-static INT32 Cps2LoadSplit(UINT8* Tile, INT32 nNum, INT32 nShift, INT32 nNumRomsGroup)
-{
- UINT8 *Rom = NULL; INT32 nRomLen = 0;
- UINT8 *pt, *pr;
-
- LoadUpSplit(&Rom, &nRomLen, nNum, nNumRomsGroup);
- if (Rom == NULL) {
- return 1;
- }
-
- // Go through each section
- pt = Tile; pr = Rom;
- for (INT32 b = 0; b < nRomLen >> 19; b++) {
- Cps2Load100000(pt, pr, nShift); pt += 0x100000;
- Cps2Load100000(pt, pr + 2, nShift); pt += 0x100000;
- pr += 0x80000;
- }
-
- BurnFree(Rom);
-
- return 0;
-}
-
-INT32 Cps2LoadTiles(UINT8* Tile, INT32 nStart)
-{
- // left side of 16x16 tiles
- Cps2LoadOne(Tile, nStart, 1, 0);
- Cps2LoadOne(Tile, nStart + 1, 1, 2);
- // right side of 16x16 tiles
- Cps2LoadOne(Tile + 4, nStart + 2, 1, 0);
- Cps2LoadOne(Tile + 4, nStart + 3, 1, 2);
-
- return 0;
-}
-
-INT32 Cps2LoadTilesSplit4(UINT8* Tile, INT32 nStart)
-{
- // left side of 16x16 tiles
- Cps2LoadSplit(Tile, nStart + 0, 0, 4);
- Cps2LoadSplit(Tile, nStart + 4, 2, 4);
- // right side of 16x16 tiles
- Cps2LoadSplit(Tile + 4, nStart + 8, 0, 4);
- Cps2LoadSplit(Tile + 4, nStart + 12, 2, 4);
-
- return 0;
-}
-
-INT32 Cps2LoadTilesSplit8(UINT8* Tile, INT32 nStart)
-{
- // left side of 16x16 tiles
- Cps2LoadSplit(Tile, nStart + 0, 0, 8);
- Cps2LoadSplit(Tile, nStart + 8, 2, 8);
- // right side of 16x16 tiles
- Cps2LoadSplit(Tile + 4, nStart + 16, 0, 8);
- Cps2LoadSplit(Tile + 4, nStart + 24, 2, 8);
-
- return 0;
-}
-
-INT32 Cps2LoadTilesSIM(UINT8* Tile, INT32 nStart)
-{
- Cps2LoadOne(Tile, nStart, 0, 0);
- Cps2LoadOne(Tile, nStart + 2, 0, 2);
- Cps2LoadOne(Tile + 4, nStart + 4, 0, 0);
- Cps2LoadOne(Tile + 4, nStart + 6, 0, 2);
-
- return 0;
-}
-
-INT32 Cps2LoadTiles19xxj(UINT8* Tile, INT32 nStart)
-{
- // left
- Cps2LoadOne(Tile + 0x000000, nStart + 0, 1, 0);
- Cps2LoadOne(Tile + 0x000000, nStart + 1, 1, 2);
-
- // right
- Cps2LoadOne(Tile + 0x000004, nStart + 2, 1, 0);
- Cps2LoadOne(Tile + 0x000004, nStart + 3, 1, 2);
-
- // left
- Cps2LoadOne(Tile + 0x800000, nStart + 4, 1, 0);
- Cps2LoadOne(Tile + 0xa00000, nStart + 5, 1, 0);
- Cps2LoadOne(Tile + 0xc00000, nStart + 6, 1, 0);
- Cps2LoadOne(Tile + 0xe00000, nStart + 7, 1, 0);
- Cps2LoadOne(Tile + 0x800000, nStart + 8, 1, 2);
- Cps2LoadOne(Tile + 0xa00000, nStart + 9, 1, 2);
- Cps2LoadOne(Tile + 0xc00000, nStart + 10, 1, 2);
- Cps2LoadOne(Tile + 0xe00000, nStart + 11, 1, 2);
-
- // right
- Cps2LoadOne(Tile + 0x800004, nStart + 12, 1, 0);
- Cps2LoadOne(Tile + 0xa00004, nStart + 13, 1, 0);
- Cps2LoadOne(Tile + 0xc00004, nStart + 14, 1, 0);
- Cps2LoadOne(Tile + 0xe00004, nStart + 15, 1, 0);
- Cps2LoadOne(Tile + 0x800004, nStart + 16, 1, 2);
- Cps2LoadOne(Tile + 0xa00004, nStart + 17, 1, 2);
- Cps2LoadOne(Tile + 0xc00004, nStart + 18, 1, 2);
- Cps2LoadOne(Tile + 0xe00004, nStart + 19, 1, 2);
-
- return 0;
-}
-
-INT32 Cps2LoadTilesGigaman2(UINT8 *Tile, UINT8 *pSrc)
-{
- UINT8 *pt = Tile;
- UINT8 *pr = pSrc;
- for (INT32 b = 0; b < 0x200000 >> 19; b++) {
- Cps2Load100000(pt, pr, 0); pt += 0x100000;
- Cps2Load100000(pt, pr + 2, 0); pt += 0x100000;
- pr += 0x80000;
- }
-
- pt = Tile;
- pr = pSrc + 0x200000;
- for (INT32 b = 0; b < 0x200000 >> 19; b++) {
- Cps2Load100000(pt, pr, 2); pt += 0x100000;
- Cps2Load100000(pt, pr + 2, 2); pt += 0x100000;
- pr += 0x80000;
- }
-
- pt = Tile + 4;
- pr = pSrc + 0x400000;
- for (INT32 b = 0; b < 0x200000 >> 19; b++) {
- Cps2Load100000(pt, pr, 0); pt += 0x100000;
- Cps2Load100000(pt, pr + 2, 0); pt += 0x100000;
- pr += 0x80000;
- }
-
- pt = Tile + 4;
- pr = pSrc + 0x600000;
- for (INT32 b = 0; b < 0x200000 >> 19; b++) {
- Cps2Load100000(pt, pr, 2); pt += 0x100000;
- Cps2Load100000(pt, pr + 2, 2); pt += 0x100000;
- pr += 0x80000;
- }
-
- return 0;
-}
-
-// ----------------------------------------------------------------
-
-// The file extension indicates the data contained in a file.
-// it consists of 2 numbers optionally followed by a single letter.
-// The letter indicates the version. The meaning for the nubmers
-// is as follows:
-// 01 - 02 : Z80 program
-// 03 - 10 : 68K program (filenames ending with x contain the XOR table)
-// 11 - 12 : QSound sample data
-// 13 - nn : Graphics data
-
-static UINT32 nGfxMaxSize;
-
-static INT32 CpsGetROMs(bool bLoad)
-{
- struct BurnRomInfo ri;
-
- UINT8* CpsCodeLoad = CpsCode;
- UINT8* CpsRomLoad = CpsRom;
- UINT8* CpsGfxLoad = CpsGfx;
- UINT8* CpsZRomLoad = CpsZRom;
- UINT8* CpsQSamLoad = (UINT8*)CpsQSam;
- UINT8* CpsKeyLoad = CpsKey;
-
- INT32 nGfxNum = 0;
-
- if (bLoad) {
- if (!CpsCodeLoad || !CpsRomLoad || !CpsGfxLoad || !CpsZRomLoad || !CpsQSamLoad) {
- return 1;
- }
- } else {
- nCpsCodeLen = nCpsRomLen = nCpsGfxLen = nCpsZRomLen = nCpsQSamLen = 0;
-
- nGfxMaxSize = 0;
- if (BurnDrvGetHardwareCode() & HARDWARE_CAPCOM_CPS2_SIMM) {
- nGfxMaxSize = ~0U;
- }
- }
-
- INT32 i = 0;
- do {
- ri.nLen = 0;
- ri.nType = 0;
- BurnDrvGetRomInfo(&ri, i);
-
- if ((ri.nType & 0x0f) == CPS2_PRG_68K) {
- if (bLoad) {
- if (BurnLoadRom(CpsRomLoad, i, 1)) return 1;
- CpsRomLoad += ri.nLen;
- } else {
- nCpsRomLen += ri.nLen;
- }
- i++;
- }
-
- if ((ri.nType & 0x0f) == CPS2_PRG_68K_SIMM) {
- if (bLoad) {
- if (BurnLoadRom(CpsRomLoad + 0x000001, i + 0, 2)) return 1;
- if (BurnLoadRom(CpsRomLoad + 0x000000, i + 1, 2)) return 1;
- CpsRomLoad += ri.nLen * 2;
- i += 2;
- } else {
- nCpsRomLen += ri.nLen;
- i++;
- }
- }
-
- if ((ri.nType & 0x0f) == CPS2_PRG_68K_XOR_TABLE) {
- if (bLoad) {
- if (BurnLoadRom(CpsCodeLoad, i, 1)) return 1;
- CpsCodeLoad += ri.nLen;
- } else {
- nCpsCodeLen += ri.nLen;
- }
- i++;
- }
-
- if ((ri.nType & 0x0f) == CPS2_GFX) {
- if (bLoad) {
- Cps2LoadTiles(CpsGfxLoad, i);
- CpsGfxLoad += (nGfxMaxSize == ~0U ? ri.nLen : nGfxMaxSize) * 4;
- i += 4;
- } else {
- if (ri.nLen > nGfxMaxSize) {
- nGfxMaxSize = ri.nLen;
- }
- if (ri.nLen < nGfxMaxSize) {
- nGfxMaxSize = ~0U;
- }
- nCpsGfxLen += ri.nLen;
- nGfxNum++;
- i++;
- }
- }
-
- if ((ri.nType & 0x0f) == CPS2_GFX_SIMM) {
- if (bLoad) {
- Cps2LoadTilesSIM(CpsGfxLoad, i);
- CpsGfxLoad += ri.nLen * 8;
- i += 8;
- } else {
- nCpsGfxLen += ri.nLen;
- i++;
- }
- }
-
- if ((ri.nType & 0x0f) == CPS2_GFX_SPLIT4) {
- if (bLoad) {
- Cps2LoadTilesSplit4(CpsGfxLoad, i);
- CpsGfxLoad += (nGfxMaxSize == ~0U ? ri.nLen : nGfxMaxSize) * 16;
- i += 16;
- } else {
- if (ri.nLen > nGfxMaxSize) {
- nGfxMaxSize = ri.nLen;
- }
- if (ri.nLen < nGfxMaxSize) {
- nGfxMaxSize = ~0U;
- }
- nCpsGfxLen += ri.nLen;
- nGfxNum++;
- i++;
- }
- }
-
- if ((ri.nType & 0x0f) == CPS2_GFX_SPLIT8) {
- if (bLoad) {
- Cps2LoadTilesSplit8(CpsGfxLoad, i);
- CpsGfxLoad += (nGfxMaxSize == ~0U ? ri.nLen : nGfxMaxSize) * 32;
- i += 32;
- } else {
- if (ri.nLen > nGfxMaxSize) {
- nGfxMaxSize = ri.nLen;
- }
- if (ri.nLen < nGfxMaxSize) {
- nGfxMaxSize = ~0U;
- }
- nCpsGfxLen += ri.nLen;
- nGfxNum++;
- i++;
- }
- }
-
- if ((ri.nType & 0x0f) == CPS2_GFX_19XXJ) {
- if (bLoad) {
- Cps2LoadTiles19xxj(CpsGfxLoad, i);
- CpsGfxLoad += (nGfxMaxSize == ~0U ? ri.nLen : nGfxMaxSize) * 20;
- i += 20;
- } else {
- nGfxMaxSize = 0xcd000;
- nCpsGfxLen += ri.nLen;
- nGfxNum++;
- i++;
- }
- }
-
- if ((ri.nType & 0x0f) == CPS2_PRG_Z80) {
- if (bLoad) {
- BurnLoadRom(CpsZRomLoad, i, 1);
- CpsZRomLoad += ri.nLen;
- } else {
- nCpsZRomLen += ri.nLen;
- }
- i++;
- }
-
- if ((ri.nType & 0x0f) == CPS2_QSND) {
- if (bLoad) {
- BurnLoadRom(CpsQSamLoad, i, 1);
- BurnByteswap(CpsQSamLoad, ri.nLen);
- CpsQSamLoad += ri.nLen;
- } else {
- nCpsQSamLen += ri.nLen;
- }
- i++;
- }
-
- if ((ri.nType & 0x0f) == CPS2_QSND_SIMM) {
- if (bLoad) {
- BurnLoadRom(CpsQSamLoad, i, 1);
- BurnByteswap(CpsQSamLoad, ri.nLen);
- CpsQSamLoad += ri.nLen;
- } else {
- nCpsQSamLen += ri.nLen;
- }
- i++;
- }
-
- if ((ri.nType & 0x0f) == CPS2_QSND_SIMM_BYTESWAP) {
- if (bLoad) {
- BurnLoadRom(CpsQSamLoad + 1, i + 0, 2);
- BurnLoadRom(CpsQSamLoad + 0, i + 1, 2);
- i += 2;
- } else {
- nCpsQSamLen += ri.nLen;
- i++;
- }
- }
-
- if ((ri.nType & 0x0f) == CPS2_ENCRYPTION_KEY) {
- if (bLoad) {
- if (BurnLoadRom(CpsKeyLoad, i, 1)) return 1;
- CpsKeyLoad += ri.nLen;
- } else {
- nCpsKeyLen += ri.nLen;
- }
- i++;
- }
- } while (ri.nLen);
-
- if (bLoad) {
-#if 0
- for (UINT32 i = 0; i < nCpsCodeLen / 4; i++) {
- ((UINT32*)CpsCode)[i] ^= ((UINT32*)CpsRom)[i];
- }
-#endif
- cps2_decrypt_game_data();
-
-// if (!nCpsCodeLen) return 1;
- } else {
-
- if (nGfxMaxSize != ~0U) {
- nCpsGfxLen = nGfxNum * nGfxMaxSize;
- }
-
-#if 1 && defined FBA_DEBUG
- if (!nCpsCodeLen) {
- bprintf(PRINT_IMPORTANT, _T(" - 68K ROM size:\t0x%08X (Decrypted with key)\n"), nCpsRomLen);
- } else {
- bprintf(PRINT_IMPORTANT, _T(" - 68K ROM size:\t0x%08X (XOR table size: 0x%08X)\n"), nCpsRomLen, nCpsCodeLen);
- }
- bprintf(PRINT_IMPORTANT, _T(" - Z80 ROM size:\t0x%08X\n"), nCpsZRomLen);
- bprintf(PRINT_IMPORTANT, _T(" - Graphics data:\t0x%08X\n"), nCpsGfxLen);
- bprintf(PRINT_IMPORTANT, _T(" - QSound data:\t0x%08X\n"), nCpsQSamLen);
- bprintf(PRINT_IMPORTANT, _T(" - Key data:\t\t0x%08X\n"), nCpsKeyLen);
-#endif
-
- if (/*!nCpsCodeLen ||*/ !nCpsRomLen || !nCpsGfxLen || !nCpsZRomLen || ! nCpsQSamLen) {
- return 1;
- }
- }
-
- return 0;
-}
-
-// ----------------------------------------------------------------
-
-INT32 CpsInit()
-{
- INT32 nMemLen, i;
-
- if (Cps == 1) {
- BurnSetRefreshRate(59.61);
- } else {
- if (Cps == 2) {
- BurnSetRefreshRate(59.629403);
- }
- }
-
- if (!nCPS68KClockspeed) {
- if (!(Cps & 1)) {
- nCPS68KClockspeed = 11800000;
- } else {
- nCPS68KClockspeed = 10000000;
- }
- }
- nCPS68KClockspeed = nCPS68KClockspeed * 100 / nBurnFPS;
-
- nMemLen = nCpsGfxLen + nCpsRomLen + nCpsCodeLen + nCpsZRomLen + nCpsQSamLen + nCpsAdLen + nCpsKeyLen;
-
- if (Cps1Qs == 1) {
- nMemLen += nCpsZRomLen * 2;
- }
-
- // Allocate Gfx, Rom and Z80 Roms
- CpsGfx = (UINT8*)BurnMalloc(nMemLen);
- if (CpsGfx == NULL) {
- return 1;
- }
- memset(CpsGfx, 0, nMemLen);
-
- CpsRom = CpsGfx + nCpsGfxLen;
- CpsCode = CpsRom + nCpsRomLen;
- if (Cps1Qs == 1) {
- CpsEncZRom = CpsCode + nCpsCodeLen;
- CpsZRom = CpsEncZRom + nCpsZRomLen * 2;
- } else {
- CpsZRom = CpsCode + nCpsCodeLen;
- }
- CpsQSam =(INT8*)(CpsZRom + nCpsZRomLen);
- CpsAd =(UINT8*)(CpsQSam + nCpsQSamLen);
- CpsKey =(UINT8*)(CpsAd + nCpsAdLen);
-
- // Create Gfx addr mask
- for (i = 0; i < 31; i++) {
- if ((1 << i) >= (INT32)nCpsGfxLen) {
- break;
- }
- }
- nCpsGfxMask = (1 << i) - 1;
-
- // Offset to Scroll tiles
- if (!(Cps & 1)) {
- nCpsGfxScroll[1] = nCpsGfxScroll[2] = nCpsGfxScroll[3] = 0x800000;
- } else {
- nCpsGfxScroll[1] = nCpsGfxScroll[2] = nCpsGfxScroll[3] = 0;
- }
-
-#if 0
- if (nCpsZRomLen>=5) {
- // 77->cfff and rst 00 in case driver doesn't load
- CpsZRom[0] = 0x3E; CpsZRom[1] = 0x77;
- CpsZRom[2] = 0x32; CpsZRom[3] = 0xFF; CpsZRom[4] = 0xCF;
- CpsZRom[5] = 0xc7;
- }
-#endif
-
- SepTableCalc(); // Precalc the separate table
-
- CpsReset = 0; Cpi01A = Cpi01C = Cpi01E = 0; // blank other inputs
-
- // Use this as default - all CPS-2 games use it
- SetCpsBId(CPS_B_21_DEF, 0);
-
- return 0;
-}
-
-INT32 Cps2Init()
-{
- Cps = 2;
-
- if (CpsGetROMs(false)) {
- return 1;
- }
-
- CpsInit();
-
- if (CpsGetROMs(true)) {
- return 1;
- }
-
- return CpsRunInit();
-}
-
-INT32 CpsExit()
-{
- if (!(Cps & 1)) {
- CpsRunExit();
- }
-
- CpsLayEn[1] = CpsLayEn[2] = CpsLayEn[3] = CpsLayEn[4] = CpsLayEn[5] = 0;
- nCpsLcReg = 0;
- nCpsGfxScroll[1] = nCpsGfxScroll[2] = nCpsGfxScroll[3] = 0;
- nCpsGfxMask = 0;
-
- Scroll1TileMask = 0;
- Scroll2TileMask = 0;
- Scroll3TileMask = 0;
-
- nCpsCodeLen = nCpsRomLen = nCpsGfxLen = nCpsZRomLen = nCpsQSamLen = nCpsAdLen = nCpsKeyLen = 0;
- CpsRom = CpsZRom = CpsAd = CpsStar = NULL;
- CpsQSam = NULL;
- CpsKey = NULL;
-
- // All Memory is allocated to this (this is the only one we can free)
- BurnFree(CpsGfx);
-
- BurnFree(CpsCode);
-
- bCpsUpdatePalEveryFrame = 0;
-
- nCPS68KClockspeed = 0;
- Cps = 0;
- nCpsNumScanlines = 259;
-
- return 0;
-}
diff --git a/jan/src/burn/drv/capcom/cps.h b/jan/src/burn/drv/capcom/cps.h
deleted file mode 100644
index ec6219f3d..000000000
--- a/jan/src/burn/drv/capcom/cps.h
+++ /dev/null
@@ -1,506 +0,0 @@
-// CPS ----------------------------------
-#include "burnint.h"
-#include "m68000_intf.h"
-#include "z80_intf.h"
-
-#include "msm6295.h"
-#include "eeprom.h"
-#include "timer.h"
-
-// Maximum number of beam-synchronized interrupts to check
-#define MAX_RASTER 10
-
-extern UINT32 CpsMProt[4]; // Mprot changes
-extern UINT32 CpsBID[3]; // Board ID changes
-
-// cps.cpp
-extern INT32 Cps; // 1 = CPS1, 2 = CPS2, 3 = CPS CHanger
-extern INT32 Cps1Qs;
-extern INT32 Cps1DisablePSnd;
-extern INT32 Cps2DisableQSnd;
-extern INT32 nCPS68KClockspeed;
-extern INT32 nCpsCycles; // Cycles per frame
-extern INT32 nCpsZ80Cycles;
-extern UINT8 *CpsGfx; extern UINT32 nCpsGfxLen; // All the graphics
-extern UINT8 *CpsRom; extern UINT32 nCpsRomLen; // Program Rom (as in rom)
-extern UINT8 *CpsCode; extern UINT32 nCpsCodeLen; // Program Rom (decrypted)
-extern UINT8 *CpsZRom; extern UINT32 nCpsZRomLen; // Z80 Roms
-extern INT8 *CpsQSam; extern UINT32 nCpsQSamLen; // QSound Sample Roms
-extern UINT8 *CpsAd; extern UINT32 nCpsAdLen; // ADPCM Data
-extern UINT8 *CpsKey; extern UINT32 nCpsKeyLen;
-extern UINT32 nCpsGfxScroll[4]; // Offset to Scroll tiles
-extern UINT32 nCpsGfxMask; // Address mask
-extern UINT8* CpsStar;
-INT32 CpsInit();
-INT32 Cps2Init();
-INT32 CpsExit();
-INT32 CpsLoadTiles(UINT8 *Tile,INT32 nStart);
-INT32 CpsLoadTilesByte(UINT8 *Tile,INT32 nStart);
-INT32 CpsLoadTilesForgottn(INT32 nStart);
-INT32 CpsLoadTilesForgottna(INT32 nStart);
-INT32 CpsLoadTilesForgottnu(INT32 nStart);
-INT32 CpsLoadTilesPang(UINT8 *Tile,INT32 nStart);
-INT32 CpsLoadTilesSf2ebbl(UINT8 *Tile, INT32 nStart);
-INT32 CpsLoadTilesSf2b(UINT8 *Tile, INT32 nStart);
-INT32 CpsLoadTilesSf2koryuExtra(UINT8 *Tile, INT32 nStart);
-INT32 CpsLoadTilesHack160(INT32 nStart);
-INT32 CpsLoadTilesHack160Alt(INT32 nStart);
-INT32 CpsLoadTilesSf2koryu(INT32 nStart);
-INT32 CpsLoadTilesSf2stt(INT32 nStart);
-INT32 CpsLoadTilesSf2mdt(INT32 nStart);
-INT32 CpsLoadTilesSf2mdta(INT32 nStart);
-INT32 CpsLoadTilesSf2ceuab3(INT32 nStart);
-INT32 CpsLoadTilesSf2ceeabl(INT32 nStart);
-INT32 CpsLoadTilesSf2ceuab7(INT32 nStart);
-INT32 CpsLoadTilesSf2ebbl3(INT32 nStart);
-INT32 CpsLoadTilesFcrash(INT32 nStart);
-INT32 CpsLoadTilesCawingbl(INT32 nStart);
-INT32 CpsLoadTilesCaptcommb(INT32 nStart);
-INT32 CpsLoadTilesDinopic(INT32 nStart);
-INT32 CpsLoadTilesDinopic4(INT32 nStart);
-INT32 CpsLoadTilesSlampic(INT32 nStart);
-INT32 CpsLoadTilesKodb(INT32 nStart);
-INT32 CpsLoadTilesWonder3b(INT32 nStart);
-INT32 CpsLoadTilesPang3r1a(INT32 nStart);
-INT32 CpsLoadTilesPunisherb(INT32 nStart);
-INT32 CpsLoadStars(UINT8 *pStar, INT32 nStart);
-INT32 CpsLoadStarsByte(UINT8 *pStar, INT32 nStart);
-INT32 CpsLoadStarsForgottnAlt(UINT8 *pStar, INT32 nStart);
-INT32 Cps2LoadTiles(UINT8 *Tile,INT32 nStart);
-INT32 Cps2LoadTilesSIM(UINT8 *Tile,INT32 nStart);
-INT32 Cps2LoadTilesGigaman2(UINT8 *Tile, UINT8 *pSrc);
-
-// cps_config.h
-#define CPS_B_01 0
-#define CPS_B_02 1
-#define CPS_B_03 2
-#define CPS_B_04 3
-#define CPS_B_05 4
-#define CPS_B_11 5
-#define CPS_B_12 6
-#define CPS_B_13 7
-#define CPS_B_14 8
-#define CPS_B_15 9
-#define CPS_B_16 10
-#define CPS_B_17 11
-#define CPS_B_18 12
-#define CPS_B_21_DEF 13
-#define CPS_B_21_BT1 14
-#define CPS_B_21_BT2 15
-#define CPS_B_21_BT3 16
-#define CPS_B_21_BT4 17
-#define CPS_B_21_BT5 18
-#define CPS_B_21_BT6 19
-#define CPS_B_21_BT7 20
-#define CPS_B_21_QS1 21
-#define CPS_B_21_QS2 22
-#define CPS_B_21_QS3 23
-#define CPS_B_21_QS4 24
-#define CPS_B_21_QS5 25
-#define HACK_B_1 26
-#define HACK_B_2 27
-#define HACK_B_3 28
-#define HACK_B_4 29
-#define HACK_B_5 30
-#define HACK_B_6 31
-
-#define GFXTYPE_SPRITES (1<<0)
-#define GFXTYPE_SCROLL1 (1<<1)
-#define GFXTYPE_SCROLL2 (1<<2)
-#define GFXTYPE_SCROLL3 (1<<3)
-#define GFXTYPE_STARS (1<<4)
-
-#define mapper_LWCHR 0
-#define mapper_LW621 1
-#define mapper_DM620 2
-#define mapper_ST24M1 3
-#define mapper_DM22A 4
-#define mapper_DAM63B 5
-#define mapper_ST22B 6
-#define mapper_TK22B 7
-#define mapper_WL24B 8
-#define mapper_S224B 9
-#define mapper_YI24B 10
-#define mapper_AR24B 11
-#define mapper_AR22B 12
-#define mapper_O224B 13
-#define mapper_MS24B 14
-#define mapper_CK24B 15
-#define mapper_NM24B 16
-#define mapper_CA24B 17
-#define mapper_CA22B 18
-#define mapper_STF29 19
-#define mapper_RT24B 20
-#define mapper_RT22B 21
-#define mapper_KD29B 22
-#define mapper_CC63B 23
-#define mapper_KR63B 24
-#define mapper_S9263B 25
-#define mapper_VA63B 26
-#define mapper_VA22B 27
-#define mapper_Q522B 28
-#define mapper_TK263B 29
-#define mapper_CD63B 30
-#define mapper_PS63B 31
-#define mapper_MB63B 32
-#define mapper_QD22B 33
-#define mapper_QD63B 34
-#define mapper_TN2292 35
-#define mapper_RCM63B 36
-#define mapper_PKB10B 37
-#define mapper_pang3 38
-#define mapper_sfzch 39
-#define mapper_cps2 40
-#define mapper_frog 41
-#define mapper_pokon 42
-#define mapper_KNM10B 43
-extern void SetGfxMapper(INT32 MapperId);
-extern INT32 GfxRomBankMapper(INT32 Type, INT32 Code);
-extern void SetCpsBId(INT32 CpsBId, INT32 bStars);
-
-// cps_pal.cpp
-extern UINT32* CpsPal; // Hicolor version of palette
-extern INT32 nCpsPalCtrlReg;
-extern INT32 bCpsUpdatePalEveryFrame;
-INT32 CpsPalInit();
-INT32 CpsPalExit();
-INT32 CpsPalUpdate(UINT8 *pNewPal);
-
-// cps_mem.cpp
-extern UINT8 *CpsRam90;
-extern UINT8 *CpsZRamC0,*CpsZRamF0;
-extern UINT8 *CpsSavePal;
-extern UINT8 *CpsRam708,*CpsReg,*CpsFrg;
-extern UINT8 *CpsSaveReg[MAX_RASTER + 1];
-extern UINT8 *CpsSaveFrg[MAX_RASTER + 1];
-extern UINT8 *CpsRamFF;
-void CpsMapObjectBanks(INT32 nBank);
-INT32 CpsMemInit();
-INT32 CpsMemExit();
-INT32 CpsAreaScan(INT32 nAction,INT32 *pnMin);
-
-typedef INT32 (*CpsMemScanCallback)(INT32, INT32*);
-extern CpsMemScanCallback CpsMemScanCallbackFunction;
-
-// cps_run.cpp
-extern UINT8 CpsReset;
-extern UINT8 Cpi01A, Cpi01C, Cpi01E;
-extern UINT8 fFakeDip;
-extern INT32 nIrqLine50, nIrqLine52; // The scanlines at which the interrupts are triggered
-extern INT32 nCpsNumScanlines;
-extern INT32 Cps1VBlankIRQLine;
-extern INT32 CpsDrawSpritesInReverse;
-INT32 CpsRunInit();
-INT32 CpsRunExit();
-INT32 Cps1Frame();
-INT32 Cps2Frame();
-typedef INT32 (*CpsRunInitCallback)();
-extern CpsRunInitCallback CpsRunInitCallbackFunction;
-typedef INT32 (*CpsRunExitCallback)();
-extern CpsRunExitCallback CpsRunExitCallbackFunction;
-typedef INT32 (*CpsRunResetCallback)();
-extern CpsRunResetCallback CpsRunResetCallbackFunction;
-typedef void (*CpsRunFrameStartCallback)();
-extern CpsRunFrameStartCallback CpsRunFrameStartCallbackFunction;
-typedef void (*CpsRunFrameMiddleCallback)();
-extern CpsRunFrameMiddleCallback CpsRunFrameMiddleCallbackFunction;
-typedef void (*CpsRunFrameEndCallback)();
-extern CpsRunFrameEndCallback CpsRunFrameEndCallbackFunction;
-
-inline static UINT8* CpsFindGfxRam(INT32 nAddr,INT32 nLen)
-{
- nAddr&=0xffffff; // 24-bit bus
- if (nAddr>=0x900000 && nAddr+nLen<=0x930000) return CpsRam90+nAddr-0x900000;
- return NULL;
-}
-
-inline static void GetPalette(INT32 nStart, INT32 nCount)
-{
- // Update Palette (Ghouls points to the wrong place on boot up I think)
- INT32 nPal = (BURN_ENDIAN_SWAP_INT16(*((UINT16*)(CpsReg + 0x0A))) << 8) & 0xFFFC00;
-
- UINT8* Find = CpsFindGfxRam(nPal, 0xc00 << 1);
- if (Find) {
- memcpy(CpsSavePal + (nStart << 10), Find + (nStart << 10), nCount << 10);
- }
-}
-
-// cps_rw.cpp
-// Treble Winner - Added INP(1FD) for sf2ue
-#define CPSINPSET INP(000) INP(001) INP(006) INP(007) INP(008) INP(010) INP(011) INP(012) INP(018) INP(019) INP(01B) INP(020) INP(021) INP(029) INP(176) INP(177) INP(179) INP(186) INP(1fd)
-
-// prototype for input bits
-#define INP(nnn) extern UINT8 CpsInp##nnn[8];
-CPSINPSET
-#undef INP
-
-#define INP(nnn) extern UINT8 Inp##nnn;
-CPSINPSET
-#undef INP
-
-#define CPSINPEX INP(c000) INP(c001) INP(c002) INP(c003)
-
-#define INP(nnnn) extern UINT8 CpsInp##nnnn[8];
-CPSINPEX
-#undef INP
-
-// For the Forgotten Worlds analog controls
-extern UINT16 CpsInp055, CpsInp05d;
-extern UINT16 CpsInpPaddle1, CpsInpPaddle2;
-extern UINT8 CpsDigUD[4];
-
-extern INT32 PangEEP;
-extern INT32 Forgottn;
-extern INT32 Cps1QsHack;
-extern INT32 Kodh;
-extern INT32 Cawingb;
-extern INT32 Wofh;
-extern INT32 Sf2thndr;
-extern INT32 Pzloop2;
-extern INT32 Mmatrix;
-extern INT32 Sfa2ObjHack;
-extern INT32 Ssf2tb;
-extern INT32 Dinohunt;
-extern INT32 Port6SoundWrite;
-extern INT32 CpsBootlegEEPROM;
-
-extern UINT8* CpsEncZRom;
-
-INT32 CpsRwInit();
-INT32 CpsRwExit();
-INT32 CpsRwGetInp();
-void CpsWritePort(const UINT32 ia, UINT8 d);
-UINT8 __fastcall CpsReadByte(UINT32 a);
-void __fastcall CpsWriteByte(UINT32 a, UINT8 d);
-UINT16 __fastcall CpsReadWord(UINT32 a);
-void __fastcall CpsWriteWord(UINT32 a, UINT16 d);
-
-typedef void (*CpsRWSoundCommandCallback)(UINT16);
-extern CpsRWSoundCommandCallback CpsRWSoundCommandCallbackFunction;
-
-// cps_draw.cpp
-extern UINT8 CpsRecalcPal; // Flag - If it is 1, recalc the whole palette
-extern INT32 nCpsLcReg; // Address of layer controller register
-extern INT32 CpsLayEn[6]; // bits for layer enable
-extern INT32 nStartline, nEndline; // specify the vertical slice of the screen to render
-extern INT32 nRasterline[MAX_RASTER + 2]; // The lines at which an interrupt occurs
-extern INT32 MaskAddr[4];
-extern INT32 CpsLayer1XOffs;
-extern INT32 CpsLayer2XOffs;
-extern INT32 CpsLayer3XOffs;
-extern INT32 CpsLayer1YOffs;
-extern INT32 CpsLayer2YOffs;
-extern INT32 CpsLayer3YOffs;
-extern INT32 Cps1DisableBgHi;
-extern INT32 CpsDisableRowScroll;
-extern INT32 Cps1OverrideLayers;
-extern INT32 nCps1Layers[4];
-extern INT32 nCps1LayerOffs[3];
-void DrawFnInit();
-INT32 CpsDraw();
-INT32 CpsRedraw();
-
-#define BURN_SND_QSND_OUTPUT_1 0
-#define BURN_SND_QSND_OUTPUT_2 1
-
-INT32 QsndInit();
-void QsndSetRoute(INT32 nIndex, double nVolume, INT32 nRouteDir);
-void QsndExit();
-void QsndReset();
-void QsndNewFrame();
-void QsndEndFrame();
-void QsndSyncZ80();
-INT32 QsndScan(INT32 nAction);
-
-// qs_z.cpp
-INT32 QsndZInit();
-INT32 QsndZExit();
-INT32 QsndZScan(INT32 nAction);
-
-// qs_c.cpp
-INT32 QscInit(INT32 nRate);
-void QscSetRoute(INT32 nIndex, double nVolume, INT32 nRouteDir);
-void QscReset();
-void QscExit();
-INT32 QscScan(INT32 nAction);
-void QscNewFrame();
-void QscWrite(INT32 a, INT32 d);
-INT32 QscUpdate(INT32 nEnd);
-
-// cps_tile.cpp
-extern UINT32* CpstPal;
-extern UINT32 nCpstType; extern INT32 nCpstX,nCpstY;
-extern UINT32 nCpstTile; extern INT32 nCpstFlip;
-extern UINT32 nCpsBlend;
-extern short* CpstRowShift;
-extern UINT32 CpstPmsk; // Pixel mask
-
-inline static void CpstSetPal(INT32 nPal)
-{
- nPal <<= 4;
- nPal &= 0x7F0;
- CpstPal= CpsPal + nPal;
-}
-
-// ctv.cpp
-extern INT32 nBgHi;
-extern UINT16 ZValue;
-extern UINT16 *ZBuf;
-extern UINT16 *pZVal;
-extern UINT32 nCtvRollX,nCtvRollY;
-extern UINT8 *pCtvTile; // Pointer to tile data
-extern INT32 nCtvTileAdd; // Amount to add after each tile line
-extern UINT8 *pCtvLine; // Pointer to output bitmap
-typedef INT32 (*CtvDoFn)();
-typedef INT32 (*CpstOneDoFn)();
-extern CtvDoFn CtvDoX[0x20];
-extern CtvDoFn CtvDoXM[0x20];
-extern CtvDoFn CtvDoXB[0x20];
-extern CpstOneDoFn CpstOneDoX[3];
-extern CpstOneDoFn CpstOneObjDoX[2];
-INT32 CtvReady();
-
-// nCpstType constants
-// To get size do (nCpstType & 24) + 8
-#define CTT_FLIPX ( 1)
-#define CTT_CARE ( 2)
-#define CTT_ROWS ( 4)
-#define CTT_8X8 ( 0)
-#define CTT_16X16 ( 8)
-#define CTT_32X32 (24)
-
-// cps_obj.cpp
-extern INT32 nCpsObjectBank;
-extern UINT8 *CpsBootlegSpriteRam;
-extern INT32 Cps1LockSpriteList910000;
-extern INT32 Cps1DetectEndSpriteList8000;
-
-typedef INT32 (*Cps1ObjGetCallback)();
-extern Cps1ObjGetCallback Cps1ObjGetCallbackFunction;
-typedef INT32 (*Cps1ObjDrawCallback)(INT32, INT32);
-extern Cps1ObjDrawCallback Cps1ObjDrawCallbackFunction;
-
-INT32 CpsObjInit();
-INT32 CpsObjExit();
-INT32 CpsObjGet();
-INT32 FcrashObjGet();
-INT32 KodbObjGet();
-INT32 DinopicObjGet();
-INT32 DaimakaibObjGet();
-INT32 WofhObjGet();
-INT32 Sf2mdtObjGet();
-void CpsObjDrawInit();
-INT32 Cps1ObjDraw(INT32 nLevelFrom,INT32 nLevelTo);
-INT32 Cps2ObjDraw(INT32 nLevelFrom,INT32 nLevelTo);
-INT32 FcrashObjDraw(INT32 nLevelFrom,INT32 nLevelTo);
-
-// cps_scr.cpp
-#define SCROLL_2 0
-#define SCROLL_3 1
-extern INT32 Ghouls;
-extern INT32 Ssf2t;
-extern INT32 Xmcota;
-
-extern INT32 Scroll1TileMask;
-extern INT32 Scroll2TileMask;
-extern INT32 Scroll3TileMask;
-INT32 Cps1Scr1Draw(UINT8 *Base,INT32 sx,INT32 sy);
-INT32 Cps1Scr3Draw(UINT8 *Base,INT32 sx,INT32 sy);
-INT32 Cps2Scr1Draw(UINT8 *Base,INT32 sx,INT32 sy);
-INT32 Cps2Scr3Draw(UINT8 *Base,INT32 sx,INT32 sy);
-
-// cpsr.cpp
-extern UINT8 *CpsrBase; // Tile data base
-extern INT32 nCpsrScrX,nCpsrScrY; // Basic scroll info
-extern UINT16 *CpsrRows; // Row scroll table, 0x400 words long
-extern INT32 nCpsrRowStart; // Start of row scroll (can wrap?)
-
-// Information needed to draw a line
-struct CpsrLineInfo {
- INT32 nStart; // 0-0x3ff - where to start drawing tiles from
- INT32 nWidth; // 0-0x400 - width of scroll shifts
- // e.g. for no rowscroll at all, nWidth=0
- INT32 nTileStart; // Range of tiles which are visible onscreen
- INT32 nTileEnd; // (e.g. 0x20 -> 0x50 , wraps around to 0x10)
- INT16 Rows[16]; // 16 row scroll values for this line
- INT32 nMaxLeft, nMaxRight; // Maximum row shifts left and right
-};
-extern struct CpsrLineInfo CpsrLineInfo[15];
-INT32 Cps1rPrepare();
-INT32 Cps2rPrepare();
-
-// cpsrd.cpp
-INT32 Cps1rRender();
-INT32 Cps2rRender();
-
-// dc_input.cpp
-extern struct BurnInputInfo CpsFsi[0x1B];
-
-// ps.cpp
-extern UINT8 PsndCode, PsndFade; // Sound code/fade sent to the z80 program
-INT32 PsndInit();
-INT32 PsndExit();
-void PsndNewFrame();
-INT32 PsndSyncZ80(INT32 nCycles);
-INT32 PsndScan(INT32 nAction);
-
-// ps_z.cpp
-INT32 PsndZInit();
-INT32 PsndZExit();
-INT32 PsndZScan(INT32 nAction);
-extern INT32 Kodb;
-
-// ps_m.cpp
-extern INT32 bPsmOkay; // 1 if the module is okay
-INT32 PsmInit();
-INT32 PsmExit();
-void PsmNewFrame();
-INT32 PsmUpdate(INT32 nEnd);
-
-// kabuki.cpp
-void wof_decode();
-void dino_decode();
-void punisher_decode();
-void slammast_decode();
-
-// cps2_crypt.cpp
-void cps2_decrypt_game_data();
-
-// fcrash_snd.cpp
-void FcrashSoundCommand(UINT16 d);
-INT32 FcrashSoundInit();
-INT32 FcrashSoundReset();
-INT32 FcrashSoundExit();
-void FcrashSoundFrameStart();
-void FcrashSoundFrameEnd();
-INT32 FcrashScanSound(INT32 nAction, INT32 *pnMin);
-
-// sf2mdt_snd.cpp
-void Sf2mdtSoundCommand(UINT16 d);
-INT32 Sf2mdtSoundInit();
-INT32 Sf2mdtSoundReset();
-INT32 Sf2mdtSoundExit();
-void Sf2mdtSoundFrameStart();
-void Sf2mdtSoundFrameEnd();
-INT32 Sf2mdtScanSound(INT32 nAction, INT32 *pnMin);
-
-// d_cps2.cpp
-#define CPS2_PRG_68K 1
-#define CPS2_PRG_68K_SIMM 2
-#define CPS2_PRG_68K_XOR_TABLE 3
-#define CPS2_GFX 5
-#define CPS2_GFX_SIMM 6
-#define CPS2_GFX_SPLIT4 7
-#define CPS2_GFX_SPLIT8 8
-#define CPS2_GFX_19XXJ 9
-#define CPS2_PRG_Z80 10
-#define CPS2_QSND 12
-#define CPS2_QSND_SIMM 13
-#define CPS2_QSND_SIMM_BYTESWAP 14
-#define CPS2_ENCRYPTION_KEY 15
-
-extern INT32 Cps2Volume;
-extern UINT16 Cps2VolumeStates[40];
-extern INT32 Cps2DisableDigitalVolume;
-extern UINT8 Cps2VolUp;
-extern UINT8 Cps2VolDwn;
diff --git a/jan/src/burn/drv/capcom/cps2_crpt.cpp b/jan/src/burn/drv/capcom/cps2_crpt.cpp
deleted file mode 100644
index 81d03e16a..000000000
--- a/jan/src/burn/drv/capcom/cps2_crpt.cpp
+++ /dev/null
@@ -1,802 +0,0 @@
-/******************************************************************************
-
-CPS-2 Encryption
-
-All credit goes to Andreas Naive for breaking the encryption algorithm.
-Code by Nicola Salmoria.
-Thanks to Charles MacDonald and Razoola for extracting the data from the hardware.
-
-
-The encryption only affects opcodes, not data.
-
-It consists of two 4-round Feistel networks (FN) and involves both
-the 16-bit opcode and the low 16 bits of the address.
-
-Let be:
-
-E = 16-bit ciphertext
-A = 16-bit address
-K = 64-bit key
-D = 16-bit plaintext
-y = FN1(x,k) = function describing the first Feistel network (x,y = 16 bit, k = 64 bit)
-y = FN2(x,k) = function describing the second Feistel network (x,y = 16 bit, k = 64 bit)
-y = EX(x) = fixed function that expands the 16-bit x to the 64-bit y
-
-Then the cipher can be described as:
-
-D = FN2( E, K XOR EX( FN1(A, K ) ) )
-
-
-Each round of the Feistel networks consists of four substitution boxes. The boxes
-have 6 inputs and 2 outputs. Usually the input is the XOR of a data bit and a key
-bit, however in some cases only the key is used.
-
-(TODO-notes about accuracy of s-boxes)
-
-The s-boxes were chosen in order to use an empty key (all FF) for the dead board.
-
-
-Also, the hardware has different watchdog opcodes and address range (see below)
-which are stored in the battery backed RAM. There doesn't appear to be any relation
-between those and the 64-bit encryption key, so they probably use an additional
-64 bits of battery-backed RAM.
-
-
-
-First FN:
-
- B(0 1 3 5 8 9 11 12) A(10 4 6 7 2 13 15 14)
- L0 R0
- | |
- XOR<-----------[F1]<------------|
- | |
- R1 L1
- | |
- |------------>[F2]----------->XOR
- | |
- L2 R2
- | |
- XOR<-----------[F3]<------------|
- | |
- R3 L3
- | |
- |------------>[F4]----------->XOR
- | |
- L4 R4
- (10 4 6 7 2 13 15 14) (0 1 3 5 8 9 11 12)
-
-
-Second FN:
-
- B(3 5 9 10 8 15 12 11) A(6 0 2 13 1 4 14 7)
- L0 R0
- | |
- XOR<-----------[F1]<------------|
- | |
- R1 L1
- | |
- |------------>[F2]----------->XOR
- | |
- L2 R2
- | |
- XOR<-----------[F3]<------------|
- | |
- R3 L3
- | |
- |------------>[F4]----------->XOR
- | |
- L4 R4
- (6 0 2 13 1 4 14 7) (3 5 9 10 8 15 12 11)
-
-******************************************************************************
-
-Some Encryption notes.
-----------------------
-
-Address range.
-
-The encryption does _not_ cover the entire address space. The range covered
-differs per game.
-
-
-Encryption Watchdog.
-
-The CPS2 system has a watchdog system that will disable the decryption
-of data if the watchdog isn't triggered at least once every few seconds.
-The trigger varies from game to game (some games do use the same) and is
-basically a 68000 opcode/s instruction. The instruction is the same for
-all regions of the game. The watchdog instructions are listed alongside
-the decryption keys.
-
-*******************************************************************************/
-
-#if 0
-#include "driver.h"
-#include "cpu/m68000/m68kmame.h"
-#include "ui.h"
-#include "includes/cps1.h"
-#endif
-
-#if 1
-#include "cps.h"
-#include "bitswap.h"
-
-#define BIT(x,n) (((x)>>(n))&1)
-#define BITSWAP8(a, b, c, d, e, f, g, h, i) BITSWAP08(a, b, c, d, e, f, g, h, i)
-#endif
-
-
-/******************************************************************************/
-
-static const INT32 fn1_groupA[8] = { 10, 4, 6, 7, 2, 13, 15, 14 };
-static const INT32 fn1_groupB[8] = { 0, 1, 3, 5, 8, 9, 11, 12 };
-
-static const INT32 fn2_groupA[8] = { 6, 0, 2, 13, 1, 4, 14, 7 };
-static const INT32 fn2_groupB[8] = { 3, 5, 9, 10, 8, 15, 12, 11 };
-
-/******************************************************************************/
-
-// The order of the input and output bits in the s-boxes is arbitrary.
-// Each s-box can be XORed with an arbitrary vale in range 0-3 (but the same value
-// must be used for the corresponding output bits in f1 and f3 or in f2 and f4)
-
-struct sbox
-{
- const UINT8 table[64];
- const INT32 inputs[6]; // positions of the inputs bits, -1 means no input except from key
- const INT32 outputs[2]; // positions of the output bits
-};
-
-// the above struct better defines how the hardware works, however
-// to speed up the decryption at run time we convert it to the
-// following one
-struct optimised_sbox
-{
- UINT8 input_lookup[256];
- UINT8 output[64];
-};
-
-
-static const struct sbox fn1_r1_boxes[4] =
-{
- { // subkey bits 0- 5
- {
- 0,2,2,0,1,0,1,1,3,2,0,3,0,3,1,2,1,1,1,2,1,3,2,2,2,3,3,2,1,1,1,2,
- 2,2,0,0,3,1,3,1,1,1,3,0,0,1,0,0,1,2,2,1,2,3,2,2,2,3,1,3,2,0,1,3,
- },
- { 3, 4, 5, 6, -1, -1 },
- { 3, 6 }
- },
- { // subkey bits 6-11
- {
- 3,0,2,2,2,1,1,1,1,2,1,0,0,0,2,3,2,3,1,3,0,0,0,2,1,2,2,3,0,3,3,3,
- 0,1,3,2,3,3,3,1,1,1,1,2,0,1,2,1,3,2,3,1,1,3,2,2,2,3,1,3,2,3,0,0,
- },
- { 0, 1, 2, 4, 7, -1 },
- { 2, 7 }
- },
- { // subkey bits 12-17
- {
- 3,0,3,1,1,0,2,2,3,1,2,0,3,3,2,3,0,1,0,1,2,3,0,2,0,2,0,1,0,0,1,0,
- 2,3,1,2,1,0,2,0,2,1,0,1,0,2,1,0,3,1,2,3,1,3,1,1,1,2,0,2,2,0,0,0,
- },
- { 0, 1, 2, 3, 6, 7 },
- { 0, 1 }
- },
- { // subkey bits 18-23
- {
- 3,2,0,3,0,2,2,1,1,2,3,2,1,3,2,1,2,2,1,3,3,2,1,0,1,0,1,3,0,0,0,2,
- 2,1,0,1,0,1,0,1,3,1,1,2,2,3,2,0,3,3,2,0,2,1,3,3,0,0,3,0,1,1,3,3,
- },
- { 0, 1, 3, 5, 6, 7 },
- { 4, 5 }
- },
-};
-
-static const struct sbox fn1_r2_boxes[4] =
-{
- { // subkey bits 24-29
- {
- 3,3,2,0,3,0,3,1,0,3,0,1,0,2,1,3,1,3,0,3,3,1,3,3,3,2,3,2,2,3,1,2,
- 0,2,2,1,0,1,2,0,3,3,0,1,3,2,1,2,3,0,1,3,0,1,2,2,1,2,1,2,0,1,3,0,
- },
- { 0, 1, 2, 3, 6, -1 },
- { 1, 6 }
- },
- { // subkey bits 30-35
- {
- 1,2,3,2,1,3,0,1,1,0,2,0,0,2,3,2,3,3,0,1,2,2,1,0,1,0,1,2,3,2,1,3,
- 2,2,2,0,1,0,2,3,2,1,2,1,2,1,0,3,0,1,2,3,1,2,1,3,2,0,3,2,3,0,2,0,
- },
- { 2, 4, 5, 6, 7, -1 },
- { 5, 7 }
- },
- { // subkey bits 36-41
- {
- 0,1,0,2,1,1,0,1,0,2,2,2,1,3,0,0,1,1,3,1,2,2,2,3,1,0,3,3,3,2,2,2,
- 1,1,3,0,3,1,3,0,1,3,3,2,1,1,0,0,1,2,2,2,1,1,1,2,2,0,0,3,2,3,1,3,
- },
- { 1, 2, 3, 4, 5, 7 },
- { 0, 3 }
- },
- { // subkey bits 42-47
- {
- 2,1,0,3,3,3,2,0,1,2,1,1,1,0,3,1,1,3,3,0,1,2,1,0,0,0,3,0,3,0,3,0,
- 1,3,3,3,0,3,2,0,2,1,2,2,2,1,1,3,0,1,0,1,0,1,1,1,1,3,1,0,1,2,3,3,
- },
- { 0, 1, 3, 4, 6, 7 },
- { 2, 4 }
- },
-};
-
-static const struct sbox fn1_r3_boxes[4] =
-{
- { // subkey bits 48-53
- {
- 0,0,0,3,3,1,1,0,2,0,2,0,0,0,3,2,0,1,2,3,2,2,1,0,3,0,0,0,0,0,2,3,
- 3,0,0,1,1,2,3,3,0,1,3,2,0,1,3,3,2,0,0,1,0,2,0,0,0,3,1,3,3,3,3,3,
- },
- { 0, 1, 5, 6, 7, -1 },
- { 0, 5 }
- },
- { // subkey bits 54-59
- {
- 2,3,2,3,0,2,3,0,2,2,3,0,3,2,0,2,1,0,2,3,1,1,1,0,0,1,0,2,1,2,2,1,
- 3,0,2,1,2,3,3,0,3,2,3,1,0,2,1,0,1,2,2,3,0,2,1,3,1,3,0,2,1,1,1,3,
- },
- { 2, 3, 4, 6, 7, -1 },
- { 6, 7 }
- },
- { // subkey bits 60-65
- {
- 3,0,2,1,1,3,1,2,2,1,2,2,2,0,0,1,2,3,1,0,2,0,0,2,3,1,2,0,0,0,3,0,
- 2,1,1,2,0,0,1,2,3,1,1,2,0,1,3,0,3,1,1,0,0,2,3,0,0,0,0,3,2,0,0,0,
- },
- { 0, 2, 3, 4, 5, 6 },
- { 1, 4 }
- },
- { // subkey bits 66-71
- {
- 0,1,0,0,2,1,3,2,3,3,2,1,0,1,1,1,1,1,0,3,3,1,1,0,0,2,2,1,0,3,3,2,
- 1,3,3,0,3,0,2,1,1,2,3,2,2,2,1,0,0,3,3,3,2,2,3,1,0,2,3,0,3,1,1,0,
- },
- { 0, 1, 2, 3, 5, 7 },
- { 2, 3 }
- },
-};
-
-static const struct sbox fn1_r4_boxes[4] =
-{
- { // subkey bits 72-77
- {
- 1,1,1,1,1,0,1,3,3,2,3,0,1,2,0,2,3,3,0,1,2,1,2,3,0,3,2,3,2,0,1,2,
- 0,1,0,3,2,1,3,2,3,1,2,3,2,0,1,2,2,0,0,0,2,1,3,0,3,1,3,0,1,3,3,0,
- },
- { 1, 2, 3, 4, 5, 7 },
- { 0, 4 }
- },
- { // subkey bits 78-83
- {
- 3,0,0,0,0,1,0,2,3,3,1,3,0,3,1,2,2,2,3,1,0,0,2,0,1,0,2,2,3,3,0,0,
- 1,1,3,0,2,3,0,3,0,3,0,2,0,2,0,1,0,3,0,1,3,1,1,0,0,1,3,3,2,2,1,0,
- },
- { 0, 1, 2, 3, 5, 6 },
- { 1, 3 }
- },
- { // subkey bits 84-89
- {
- 0,1,1,2,0,1,3,1,2,0,3,2,0,0,3,0,3,0,1,2,2,3,3,2,3,2,0,1,0,0,1,0,
- 3,0,2,3,0,2,2,2,1,1,0,2,2,0,0,1,2,1,1,1,2,3,0,3,1,2,3,3,1,1,3,0,
- },
- { 0, 2, 4, 5, 6, 7 },
- { 2, 6 }
- },
- { // subkey bits 90-95
- {
- 0,1,2,2,0,1,0,3,2,2,1,1,3,2,0,2,0,1,3,3,0,2,2,3,3,2,0,0,2,1,3,3,
- 1,1,1,3,1,2,1,1,0,3,3,2,3,2,3,0,3,1,0,0,3,0,0,0,2,2,2,1,2,3,0,0,
- },
- { 0, 1, 3, 4, 6, 7 },
- { 5, 7 }
- },
-};
-
-/******************************************************************************/
-
-static const struct sbox fn2_r1_boxes[4] =
-{
- { // subkey bits 0- 5
- {
- 2,0,2,0,3,0,0,3,1,1,0,1,3,2,0,1,2,0,1,2,0,2,0,2,2,2,3,0,2,1,3,0,
- 0,1,0,1,2,2,3,3,0,3,0,2,3,0,1,2,1,1,0,2,0,3,1,1,2,2,1,3,1,1,3,1,
- },
- { 0, 3, 4, 5, 7, -1 },
- { 6, 7 }
- },
- { // subkey bits 6-11
- {
- 1,1,0,3,0,2,0,1,3,0,2,0,1,1,0,0,1,3,2,2,0,2,2,2,2,0,1,3,3,3,1,1,
- 1,3,1,3,2,2,2,2,2,2,0,1,0,1,1,2,3,1,1,2,0,3,3,3,2,2,3,1,1,1,3,0,
- },
- { 1, 2, 3, 4, 6, -1 },
- { 3, 5 }
- },
- { // subkey bits 12-17
- {
- 1,0,2,2,3,3,3,3,1,2,2,1,0,1,2,1,1,2,3,1,2,0,0,1,2,3,1,2,0,0,0,2,
- 2,0,1,1,0,0,2,0,0,0,2,3,2,3,0,1,3,0,0,0,2,3,2,0,1,3,2,1,3,1,1,3,
- },
- { 1, 2, 4, 5, 6, 7 },
- { 1, 4 }
- },
- { // subkey bits 18-23
- {
- 1,3,3,0,3,2,3,1,3,2,1,1,3,3,2,1,2,3,0,3,1,0,0,2,3,0,0,0,3,3,0,1,
- 2,3,0,0,0,1,2,1,3,0,0,1,0,2,2,2,3,3,1,2,1,3,0,0,0,3,0,1,3,2,2,0,
- },
- { 0, 2, 3, 5, 6, 7 },
- { 0, 2 }
- },
-};
-
-static const struct sbox fn2_r2_boxes[4] =
-{
- { // subkey bits 24-29
- {
- 3,1,3,0,3,0,3,1,3,0,0,1,1,3,0,3,1,1,0,1,2,3,2,3,3,1,2,2,2,0,2,3,
- 2,2,2,1,1,3,3,0,3,1,2,1,1,1,0,2,0,3,3,0,0,2,0,0,1,1,2,1,2,1,1,0,
- },
- { 0, 2, 4, 6, -1, -1 },
- { 4, 6 }
- },
- { // subkey bits 30-35
- {
- 0,3,0,3,3,2,1,2,3,1,1,1,2,0,2,3,0,3,1,2,2,1,3,3,3,2,1,2,2,0,1,0,
- 2,3,0,1,2,0,1,1,2,0,2,1,2,0,2,3,3,1,0,2,3,3,0,3,1,1,3,0,0,1,2,0,
- },
- { 1, 3, 4, 5, 6, 7 },
- { 0, 3 }
- },
- { // subkey bits 36-41
- {
- 0,0,2,1,3,2,1,0,1,2,2,2,1,1,0,3,1,2,2,3,2,1,1,0,3,0,0,1,1,2,3,1,
- 3,3,2,2,1,0,1,1,1,2,0,1,2,3,0,3,3,0,3,2,2,0,2,2,1,2,3,2,1,0,2,1,
- },
- { 0, 1, 3, 4, 5, 7 },
- { 1, 7 }
- },
- { // subkey bits 42-47
- {
- 0,2,1,2,0,2,2,0,1,3,2,0,3,2,3,0,3,3,2,3,1,2,3,1,2,2,0,0,2,2,1,2,
- 2,3,3,3,1,1,0,0,0,3,2,0,3,2,3,1,1,1,1,0,1,0,1,3,0,0,1,2,2,3,2,0,
- },
- { 1, 2, 3, 5, 6, 7 },
- { 2, 5 }
- },
-};
-
-static const struct sbox fn2_r3_boxes[4] =
-{
- { // subkey bits 48-53
- {
- 2,1,2,1,2,3,1,3,2,2,1,3,3,0,0,1,0,2,0,3,3,1,0,0,1,1,0,2,3,2,1,2,
- 1,1,2,1,1,3,2,2,0,2,2,3,3,3,2,0,0,0,0,0,3,3,3,0,1,2,1,0,2,3,3,1,
- },
- { 2, 3, 4, 6, -1, -1 },
- { 3, 5 }
- },
- { // subkey bits 54-59
- {
- 3,2,3,3,1,0,3,0,2,0,1,1,1,0,3,0,3,1,3,1,0,1,2,3,2,2,3,2,0,1,1,2,
- 3,0,0,2,1,0,0,2,2,0,1,0,0,2,0,0,1,3,1,3,2,0,3,3,1,0,2,2,2,3,0,0,
- },
- { 0, 1, 3, 5, 7, -1 },
- { 0, 2 }
- },
- { // subkey bits 60-65
- {
- 2,2,1,0,2,3,3,0,0,0,1,3,1,2,3,2,2,3,1,3,0,3,0,3,3,2,2,1,0,0,0,2,
- 1,2,2,2,0,0,1,2,0,1,3,0,2,3,2,1,3,2,2,2,3,1,3,0,2,0,2,1,0,3,3,1,
- },
- { 0, 1, 2, 3, 5, 7 },
- { 1, 6 }
- },
- { // subkey bits 66-71
- {
- 1,2,3,2,0,2,1,3,3,1,0,1,1,2,2,0,0,1,1,1,2,1,1,2,0,1,3,3,1,1,1,2,
- 3,3,1,0,2,1,1,1,2,1,0,0,2,2,3,2,3,2,2,0,2,2,3,3,0,2,3,0,2,2,1,1,
- },
- { 0, 2, 4, 5, 6, 7 },
- { 4, 7 }
- },
-};
-
-static const struct sbox fn2_r4_boxes[4] =
-{
- { // subkey bits 72-77
- {
- 2,0,1,1,2,1,3,3,1,1,1,2,0,1,0,2,0,1,2,0,2,3,0,2,3,3,2,2,3,2,0,1,
- 3,0,2,0,2,3,1,3,2,0,0,1,1,2,3,1,1,1,0,1,2,0,3,3,1,1,1,3,3,1,1,0,
- },
- { 0, 1, 3, 6, 7, -1 },
- { 0, 3 }
- },
- { // subkey bits 78-83
- {
- 1,2,2,1,0,3,3,1,0,2,2,2,1,0,1,0,1,1,0,1,0,2,1,0,2,1,0,2,3,2,3,3,
- 2,2,1,2,2,3,1,3,3,3,0,1,0,1,3,0,0,0,1,2,0,3,3,2,3,2,1,3,2,1,0,2,
- },
- { 0, 1, 2, 4, 5, 6 },
- { 4, 7 }
- },
- { // subkey bits 84-89
- {
- 2,3,2,1,3,2,3,0,0,2,1,1,0,0,3,2,3,1,0,1,2,2,2,1,3,2,2,1,0,2,1,2,
- 0,3,1,0,0,3,1,1,3,3,2,0,1,0,1,3,0,0,1,2,1,2,3,2,1,0,0,3,2,1,1,3,
- },
- { 0, 2, 3, 4, 5, 7 },
- { 1, 2 }
- },
- { // subkey bits 90-95
- {
- 2,0,0,3,2,2,2,1,3,3,1,1,2,0,0,3,1,0,3,2,1,0,2,0,3,2,2,3,2,0,3,0,
- 1,3,0,2,2,1,3,3,0,1,0,3,1,1,3,2,0,3,0,2,3,2,1,3,2,3,0,0,1,3,2,1,
- },
- { 2, 3, 4, 5, 6, 7 },
- { 5, 6 }
- },
-};
-
-/******************************************************************************/
-
-
-static UINT8 fn(UINT8 in, const struct optimised_sbox *sboxes, UINT32 key)
-{
- const struct optimised_sbox *sbox1 = &sboxes[0];
- const struct optimised_sbox *sbox2 = &sboxes[1];
- const struct optimised_sbox *sbox3 = &sboxes[2];
- const struct optimised_sbox *sbox4 = &sboxes[3];
-
- return
- sbox1->output[sbox1->input_lookup[in] ^ ((key >> 0) & 0x3f)] |
- sbox2->output[sbox2->input_lookup[in] ^ ((key >> 6) & 0x3f)] |
- sbox3->output[sbox3->input_lookup[in] ^ ((key >> 12) & 0x3f)] |
- sbox4->output[sbox4->input_lookup[in] ^ ((key >> 18) & 0x3f)];
-}
-
-
-
-// srckey is the 64-bit master key (2x32 bits)
-// dstkey will contain the 96-bit key for the 1st FN (4x24 bits)
-static void expand_1st_key(UINT32 *dstkey, const UINT32 *srckey)
-{
- static const INT32 bits[96] =
- {
- 33, 58, 49, 36, 0, 31,
- 22, 30, 3, 16, 5, 53,
- 10, 41, 23, 19, 27, 39,
- 43, 6, 34, 12, 61, 21,
- 48, 13, 32, 35, 6, 42,
- 43, 14, 21, 41, 52, 25,
- 18, 47, 46, 37, 57, 53,
- 20, 8, 55, 54, 59, 60,
- 27, 33, 35, 18, 8, 15,
- 63, 1, 50, 44, 16, 46,
- 5, 4, 45, 51, 38, 25,
- 13, 11, 62, 29, 48, 2,
- 59, 61, 62, 56, 51, 57,
- 54, 9, 24, 63, 22, 7,
- 26, 42, 45, 40, 23, 14,
- 2, 31, 52, 28, 44, 17,
- };
- INT32 i;
-
- dstkey[0] = 0;
- dstkey[1] = 0;
- dstkey[2] = 0;
- dstkey[3] = 0;
-
- for (i = 0; i < 96; ++i)
- dstkey[i / 24] |= BIT(srckey[bits[i] / 32], bits[i] % 32) << (i % 24);
-}
-
-
-// srckey is the 64-bit master key (2x32 bits) XORed with the subkey
-// dstkey will contain the 96-bit key for the 2nd FN (4x24 bits)
-static void expand_2nd_key(UINT32 *dstkey, const UINT32 *srckey)
-{
- static const INT32 bits[96] =
- {
- 34, 9, 32, 24, 44, 54,
- 38, 61, 47, 13, 28, 7,
- 29, 58, 18, 1, 20, 60,
- 15, 6, 11, 43, 39, 19,
- 63, 23, 16, 62, 54, 40,
- 31, 3, 56, 61, 17, 25,
- 47, 38, 55, 57, 5, 4,
- 15, 42, 22, 7, 2, 19,
- 46, 37, 29, 39, 12, 30,
- 49, 57, 31, 41, 26, 27,
- 24, 36, 11, 63, 33, 16,
- 56, 62, 48, 60, 59, 32,
- 12, 30, 53, 48, 10, 0,
- 50, 35, 3, 59, 14, 49,
- 51, 45, 44, 2, 21, 33,
- 55, 52, 23, 28, 8, 26,
- };
- INT32 i;
-
- dstkey[0] = 0;
- dstkey[1] = 0;
- dstkey[2] = 0;
- dstkey[3] = 0;
-
- for (i = 0; i < 96; ++i)
- dstkey[i / 24] |= BIT(srckey[bits[i] / 32], bits[i] % 32) << (i % 24);
-}
-
-
-
-// seed is the 16-bit seed generated by the first FN
-// subkey will contain the 64-bit key to be XORed with the master key
-// for the 2nd FN (2x32 bits)
-static void expand_subkey(UINT32* subkey, UINT16 seed)
-{
- // Note that each row of the table is a permutation of the seed bits.
- static const INT32 bits[64] =
- {
- 5, 10, 14, 9, 4, 0, 15, 6, 1, 8, 3, 2, 12, 7, 13, 11,
- 5, 12, 7, 2, 13, 11, 9, 14, 4, 1, 6, 10, 8, 0, 15, 3,
- 4, 10, 2, 0, 6, 9, 12, 1, 11, 7, 15, 8, 13, 5, 14, 3,
- 14, 11, 12, 7, 4, 5, 2, 10, 1, 15, 0, 9, 8, 6, 13, 3,
- };
- INT32 i;
-
- subkey[0] = 0;
- subkey[1] = 0;
-
- for (i = 0; i < 64; ++i)
- subkey[i / 32] |= BIT(seed, bits[i]) << (i % 32);
-}
-
-
-
-static UINT16 feistel(UINT16 val, const INT32 *bitsA, const INT32 *bitsB,
- const struct optimised_sbox* boxes1, const struct optimised_sbox* boxes2, const struct optimised_sbox* boxes3, const struct optimised_sbox* boxes4,
- UINT32 key1, UINT32 key2, UINT32 key3, UINT32 key4)
-{
- UINT8 l = BITSWAP8(val, bitsB[7],bitsB[6],bitsB[5],bitsB[4],bitsB[3],bitsB[2],bitsB[1],bitsB[0]);
- UINT8 r = BITSWAP8(val, bitsA[7],bitsA[6],bitsA[5],bitsA[4],bitsA[3],bitsA[2],bitsA[1],bitsA[0]);
-
- l ^= fn(r, boxes1, key1);
- r ^= fn(l, boxes2, key2);
- l ^= fn(r, boxes3, key3);
- r ^= fn(l, boxes4, key4);
-
- return
- (BIT(l, 0) << bitsA[0]) |
- (BIT(l, 1) << bitsA[1]) |
- (BIT(l, 2) << bitsA[2]) |
- (BIT(l, 3) << bitsA[3]) |
- (BIT(l, 4) << bitsA[4]) |
- (BIT(l, 5) << bitsA[5]) |
- (BIT(l, 6) << bitsA[6]) |
- (BIT(l, 7) << bitsA[7]) |
- (BIT(r, 0) << bitsB[0]) |
- (BIT(r, 1) << bitsB[1]) |
- (BIT(r, 2) << bitsB[2]) |
- (BIT(r, 3) << bitsB[3]) |
- (BIT(r, 4) << bitsB[4]) |
- (BIT(r, 5) << bitsB[5]) |
- (BIT(r, 6) << bitsB[6]) |
- (BIT(r, 7) << bitsB[7]);
-}
-
-
-
-static INT32 extract_inputs(UINT32 val, const INT32 *inputs)
-{
- INT32 i;
- INT32 res = 0;
-
- for (i = 0; i < 6; ++i)
- {
- if (inputs[i] != -1)
- res |= BIT(val, inputs[i]) << i;
- }
-
- return res;
-}
-
-
-
-static void optimise_sboxes(struct optimised_sbox* out, const struct sbox* in)
-{
- INT32 box;
-
- for (box = 0; box < 4; ++box)
- {
- INT32 i;
-
- // precalculate the input lookup
- for (i = 0; i < 256; ++i)
- {
- out[box].input_lookup[i] = extract_inputs(i, in[box].inputs);
- }
-
- // precalculate the output masks
- for (i = 0; i < 64; ++i)
- {
- INT32 o = in[box].table[i];
-
- out[box].output[i] = 0;
- if (o & 1)
- out[box].output[i] |= 1 << in[box].outputs[0];
- if (o & 2)
- out[box].output[i] |= 1 << in[box].outputs[1];
- }
- }
-}
-
-static void cps2_decrypt(const UINT32 *master_key, UINT32 lower_limit, UINT32 upper_limit)
-{
- UINT16 *rom = (UINT16 *)CpsRom;
- UINT32 length = (upper_limit > 0) ? (upper_limit * 2) : nCpsRomLen;
- if (length > nCpsRomLen) length = nCpsRomLen;
- CpsCode = (UINT8*)BurnMalloc(length);
- nCpsCodeLen = length;
- UINT16 *dec = (UINT16*)CpsCode;
-
- INT32 i;
- UINT32 key1[4];
- struct optimised_sbox sboxes1[4*4];
- struct optimised_sbox sboxes2[4*4];
-
- optimise_sboxes(&sboxes1[0*4], fn1_r1_boxes);
- optimise_sboxes(&sboxes1[1*4], fn1_r2_boxes);
- optimise_sboxes(&sboxes1[2*4], fn1_r3_boxes);
- optimise_sboxes(&sboxes1[3*4], fn1_r4_boxes);
- optimise_sboxes(&sboxes2[0*4], fn2_r1_boxes);
- optimise_sboxes(&sboxes2[1*4], fn2_r2_boxes);
- optimise_sboxes(&sboxes2[2*4], fn2_r3_boxes);
- optimise_sboxes(&sboxes2[3*4], fn2_r4_boxes);
-
-
- // expand master key to 1st FN 96-bit key
- expand_1st_key(key1, master_key);
-
- // add extra bits for s-boxes with less than 6 inputs
- key1[0] ^= BIT(key1[0], 1) << 4;
- key1[0] ^= BIT(key1[0], 2) << 5;
- key1[0] ^= BIT(key1[0], 8) << 11;
- key1[1] ^= BIT(key1[1], 0) << 5;
- key1[1] ^= BIT(key1[1], 8) << 11;
- key1[2] ^= BIT(key1[2], 1) << 5;
- key1[2] ^= BIT(key1[2], 8) << 11;
-
- for (i = 0; i < 0x10000; ++i)
- {
- INT32 a;
- UINT16 seed;
- UINT32 subkey[2];
- UINT32 key2[4];
-
- if ((i & 0xff) == 0)
- {
-#if 0
- char loadingMessage[256]; // for displaying with UI
- sprintf(loadingMessage, "Decrypting %d%%", i*100/0x10000);
- ui_set_startup_text(loadingMessage,FALSE);
-#endif
-
-#if 1
- TCHAR loadingMessage[256]; // for displaying with UI
- _stprintf(loadingMessage, _T("Decrypting 68000 ROMs with key %d %s"), (i*100/0x10000), _T("%"));
- BurnUpdateProgress(0.0, loadingMessage, 0);
-#endif
- }
-
-
- // pass the address through FN1
- seed = feistel(i, fn1_groupA, fn1_groupB,
- &sboxes1[0*4], &sboxes1[1*4], &sboxes1[2*4], &sboxes1[3*4],
- key1[0], key1[1], key1[2], key1[3]);
-
-
- // expand the result to 64-bit
- expand_subkey(subkey, seed);
-
- // XOR with the master key
- subkey[0] ^= master_key[0];
- subkey[1] ^= master_key[1];
-
- // expand key to 2nd FN 96-bit key
- expand_2nd_key(key2, subkey);
-
- // add extra bits for s-boxes with less than 6 inputs
- key2[0] ^= BIT(key2[0], 0) << 5;
- key2[0] ^= BIT(key2[0], 6) << 11;
- key2[1] ^= BIT(key2[1], 0) << 5;
- key2[1] ^= BIT(key2[1], 1) << 4;
- key2[2] ^= BIT(key2[2], 2) << 5;
- key2[2] ^= BIT(key2[2], 3) << 4;
- key2[2] ^= BIT(key2[2], 7) << 11;
- key2[3] ^= BIT(key2[3], 1) << 5;
-
-
- // decrypt the opcodes
- for (a = i; a < length/2; a += 0x10000)
- {
- if (a >= lower_limit && a <= upper_limit) {
- dec[a] = BURN_ENDIAN_SWAP_INT16(feistel(BURN_ENDIAN_SWAP_INT16(rom[a]), fn2_groupA, fn2_groupB,
- &sboxes2[0 * 4], &sboxes2[1 * 4], &sboxes2[2 * 4], &sboxes2[3 * 4],
- key2[0], key2[1], key2[2], key2[3]));
- } else {
- dec[a] = rom[a];
- }
- }
- }
-#if 0
- memory_set_decrypted_region(0, 0x000000, length - 1, dec);
- m68k_set_encrypted_opcode_range(0,0,length);
-#endif
-}
-
-
-#if 1
-void cps2_decrypt_game_data()
-{
- if (CpsKey) {
- UINT32 key[2];
- UINT32 lower;
- UINT32 upper;
-
- UINT16 decoded[10];
- memset(decoded, 0, sizeof(decoded));
-
- for (INT32 b = 0; b < 10 * 16; b++) {
- INT32 bit = (317 - b) % 160;
- if ((CpsKey[bit / 8] >> ((bit ^ 7) % 8)) & 1) {
- decoded[b / 16] |= (0x8000 >> (b % 16));
- }
- }
-
- key[0] = (decoded[0] << 16) | decoded[1];
- key[1] = (decoded[2] << 16) | decoded[3];
-
- if (decoded[9] == 0xffff) {
- upper = 0xffffff;
- lower = 0xff0000;
- } else {
- upper = (((~decoded[9] & 0x3ff) << 14) | 0x3fff) + 1;
- lower = 0;
- }
-
-// bprintf(PRINT_NORMAL, _T("%08X, %08X, %08X, %08X\n"), key[0], key[1], lower, upper);
-
- cps2_decrypt(key, lower / 2, upper / 2);
- }
-}
-#endif
-
-#if 0
-DRIVER_INIT( cps2 )
-{
- const char *gamename = machine->gamedrv->name;
- const struct game_keys *k = &keys_table[0];
-
- while (k->name)
- {
- if (strcmp(k->name, gamename) == 0)
- {
- // we have a proper key so use it to decrypt
- cps2_decrypt(k->keys, k->upper_limit ? k->upper_limit : 0x400000);
-
- break;
- }
- ++k;
- }
-
- init_cps2_video(machine);
-}
-#endif
diff --git a/jan/src/burn/drv/capcom/cps_config.cpp b/jan/src/burn/drv/capcom/cps_config.cpp
deleted file mode 100644
index cbdb9cc66..000000000
--- a/jan/src/burn/drv/capcom/cps_config.cpp
+++ /dev/null
@@ -1,1757 +0,0 @@
-#include "cps.h"
-
-struct GfxRange {
- INT32 Type;
- INT32 Start;
- INT32 End;
- INT32 Bank;
-};
-
-static const struct GfxRange *GfxBankMapper = NULL;
-static INT32 GfxBankSizes[4] = { 0, 0, 0, 0 };
-
-static const struct GfxRange mapper_LWCHR_table[] = {
- { GFXTYPE_SPRITES, 0x00000, 0x07fff, 0 },
- { GFXTYPE_SCROLL1, 0x00000, 0x1ffff, 0 },
-
- { GFXTYPE_STARS, 0x00000, 0x1ffff, 1 },
- { GFXTYPE_SCROLL2, 0x00000, 0x1ffff, 1 },
- { GFXTYPE_SCROLL3, 0x00000, 0x1ffff, 1 },
- { 0 , 0, 0, 0 }
-};
-
-static const struct GfxRange mapper_LW621_table[] = {
- { GFXTYPE_SPRITES, 0x00000, 0x07fff, 0 },
- { GFXTYPE_SCROLL1, 0x00000, 0x1ffff, 0 },
-
- { GFXTYPE_STARS, 0x00000, 0x1ffff, 1 },
- { GFXTYPE_SCROLL2, 0x00000, 0x1ffff, 1 },
- { GFXTYPE_SCROLL3, 0x00000, 0x1ffff, 1 },
- { 0 , 0, 0, 0 }
-};
-
-static const struct GfxRange mapper_DM620_table[] = {
- { GFXTYPE_SCROLL3, 0x8000, 0xbfff, 1 },
-
- { GFXTYPE_SPRITES, 0x2000, 0x3fff, 2 },
-
- { GFXTYPE_STARS | GFXTYPE_SPRITES | GFXTYPE_SCROLL1 | GFXTYPE_SCROLL2 | GFXTYPE_SCROLL3, 0x00000, 0x1ffff, 0 },
- { 0 , 0, 0, 0 }
-};
-
-static const struct GfxRange mapper_DM22A_table[] = {
- { GFXTYPE_SPRITES, 0x00000, 0x01fff, 0 },
- { GFXTYPE_SCROLL1, 0x02000, 0x03fff, 0 },
-
- { GFXTYPE_SCROLL2, 0x04000, 0x07fff, 1 },
-
- { GFXTYPE_SCROLL3, 0x00000, 0x1ffff, 2 },
-
- { GFXTYPE_SPRITES, 0x02000, 0x03fff, 3 },
- { 0 , 0, 0, 0 }
-};
-
-static const struct GfxRange mapper_DAM63B_table[] = {
- { GFXTYPE_SPRITES, 0x00000, 0x01fff, 0 },
- { GFXTYPE_SCROLL1, 0x02000, 0x02fff, 0 },
- { GFXTYPE_SCROLL2, 0x04000, 0x07fff, 0 },
-
- { GFXTYPE_SCROLL3, 0x00000, 0x1ffff, 1 },
- { GFXTYPE_SPRITES, 0x02000, 0x03fff, 1 },
- { 0 , 0, 0, 0 }
-};
-
-static const struct GfxRange mapper_ST24M1_table[] =
-{
- { GFXTYPE_STARS, 0x00000, 0x003ff, 0 },
- { GFXTYPE_SPRITES, 0x00000, 0x04fff, 0 },
- { GFXTYPE_SCROLL2, 0x04000, 0x07fff, 0 },
-
- { GFXTYPE_SCROLL3, 0x00000, 0x07fff, 1 },
- { GFXTYPE_SCROLL1, 0x07000, 0x07fff, 1 },
- { 0 , 0, 0, 0 }
-};
-
-static const struct GfxRange mapper_ST22B_table[] = {
- { GFXTYPE_STARS, 0x00000, 0x1ffff, 0 },
- { GFXTYPE_SPRITES, 0x00000, 0x03fff, 0 },
-
- { GFXTYPE_SPRITES, 0x04000, 0x04fff, 1 },
- { GFXTYPE_SCROLL2, 0x04000, 0x07fff, 1 },
-
- { GFXTYPE_SCROLL3, 0x00000, 0x03fff, 2 },
-
- { GFXTYPE_SCROLL3, 0x04000, 0x07fff, 3 },
- { GFXTYPE_SCROLL1, 0x07000, 0x07fff, 3 },
- { 0 , 0, 0, 0 }
-};
-
-static const struct GfxRange mapper_TK22B_table[] = {
- { GFXTYPE_SPRITES, 0x0000, 0x3fff, 0 },
-
- { GFXTYPE_SPRITES, 0x4000, 0x5fff, 1 },
- { GFXTYPE_SCROLL1, 0x6000, 0x7fff, 1 },
-
- { GFXTYPE_SCROLL3, 0x0000, 0x3fff, 2 },
-
- { GFXTYPE_SCROLL2, 0x4000, 0x7fff, 3 },
- { 0 , 0, 0, 0 }
-};
-
-static const struct GfxRange mapper_WL24B_table[] = {
- { GFXTYPE_SPRITES, 0x0000, 0x4fff, 0 },
- { GFXTYPE_SCROLL3, 0x5000, 0x6fff, 0 },
- { GFXTYPE_SCROLL1, 0x7000, 0x7fff, 0 },
-
- { GFXTYPE_SCROLL2, 0x0000, 0x3fff, 1 },
- { 0 , 0, 0, 0 }
-};
-
-static const struct GfxRange mapper_S224B_table[] = {
- { GFXTYPE_SPRITES, 0x0000, 0x43ff, 0 },
- { GFXTYPE_SCROLL1, 0x4400, 0x4bff, 0 },
- { GFXTYPE_SCROLL3, 0x4c00, 0x5fff, 0 },
- { GFXTYPE_SCROLL2, 0x6000, 0x7fff, 0 },
- { 0 , 0, 0, 0 }
-};
-
-static const struct GfxRange mapper_YI24B_table[] = {
- { GFXTYPE_SPRITES, 0x0000, 0x1fff, 0 },
- { GFXTYPE_SCROLL3, 0x2000, 0x3fff, 0 },
- { GFXTYPE_SCROLL1, 0x4000, 0x47ff, 0 },
- { GFXTYPE_SCROLL2, 0x4800, 0x7fff, 0 },
- { 0 , 0, 0, 0 }
-};
-
-static const struct GfxRange mapper_AR24B_table[] = {
- { GFXTYPE_SPRITES, 0x0000, 0x2fff, 0 },
- { GFXTYPE_SCROLL1, 0x3000, 0x3fff, 0 },
- { GFXTYPE_SCROLL2, 0x4000, 0x5fff, 0 },
- { GFXTYPE_SCROLL3, 0x6000, 0x7fff, 0 },
- { 0 , 0, 0, 0 }
-};
-
-static const struct GfxRange mapper_AR22B_table[] = {
- { GFXTYPE_SPRITES, 0x0000, 0x2fff, 0 },
- { GFXTYPE_SCROLL1, 0x3000, 0x3fff, 0 },
-
- { GFXTYPE_SCROLL2, 0x4000, 0x5fff, 1 },
- { GFXTYPE_SCROLL3, 0x6000, 0x7fff, 1 },
- { 0 , 0, 0, 0 }
-};
-
-static const struct GfxRange mapper_O224B_table[] = {
- { GFXTYPE_SCROLL1, 0x0000, 0x0bff, 0 },
- { GFXTYPE_SCROLL2, 0x0c00, 0x3bff, 0 },
- { GFXTYPE_SCROLL3, 0x3c00, 0x4bff, 0 },
- { GFXTYPE_SPRITES, 0x4c00, 0x7fff, 0 },
-
- { GFXTYPE_SPRITES, 0x8000, 0xa7ff, 1 },
- { GFXTYPE_SCROLL2, 0xa800, 0xb7ff, 1 },
- { GFXTYPE_SCROLL3, 0xb800, 0xbfff, 1 },
- { 0 , 0, 0, 0 }
-};
-
-static const struct GfxRange mapper_MS24B_table[] = {
- { GFXTYPE_SPRITES, 0x0000, 0x3fff, 0 },
- { GFXTYPE_SCROLL1, 0x4000, 0x4fff, 0 },
- { GFXTYPE_SCROLL2, 0x5000, 0x6fff, 0 },
- { GFXTYPE_SCROLL3, 0x7000, 0x7fff, 0 },
- { 0 , 0, 0, 0 }
-};
-
-static const struct GfxRange mapper_CK24B_table[] = {
- { GFXTYPE_SPRITES, 0x0000, 0x2fff, 0 },
- { GFXTYPE_SCROLL1, 0x3000, 0x3fff, 0 },
- { GFXTYPE_SCROLL2, 0x4000, 0x6fff, 0 },
- { GFXTYPE_SCROLL3, 0x7000, 0x7fff, 0 },
- { 0 , 0, 0, 0 }
-};
-
-static const struct GfxRange mapper_NM24B_table[] = {
- { GFXTYPE_SPRITES, 0x0000, 0x3fff, 0 },
- { GFXTYPE_SCROLL2, 0x0000, 0x3fff, 0 },
- { GFXTYPE_SCROLL1, 0x4000, 0x47ff, 0 },
- { GFXTYPE_SPRITES, 0x4800, 0x67ff, 0 },
- { GFXTYPE_SCROLL2, 0x4800, 0x67ff, 0 },
- { GFXTYPE_SCROLL3, 0x6800, 0x7fff, 0 },
- { 0 , 0, 0, 0 }
-};
-
-static const struct GfxRange mapper_CA24B_table[] = {
- { GFXTYPE_SPRITES, 0x0000, 0x2fff, 0 },
- { GFXTYPE_SCROLL2, 0x0000, 0x2fff, 0 },
- { GFXTYPE_SCROLL3, 0x3000, 0x4fff, 0 },
- { GFXTYPE_SCROLL1, 0x5000, 0x57ff, 0 },
- { GFXTYPE_SPRITES, 0x5800, 0x7fff, 0 },
- { GFXTYPE_SCROLL2, 0x5800, 0x7fff, 0 },
- { 0 , 0, 0, 0 }
-};
-
-static const struct GfxRange mapper_CA22B_table[] = {
- { GFXTYPE_SPRITES, 0x0000, 0x2fff, 0 },
- { GFXTYPE_SCROLL2, 0x0000, 0x2fff, 0 },
- { GFXTYPE_SCROLL3, 0x3000, 0x3fff, 0 },
-
- { GFXTYPE_SCROLL3, 0x4000, 0x4fff, 1 },
- { GFXTYPE_SCROLL1, 0x5000, 0x57ff, 1 },
- { GFXTYPE_SPRITES, 0x5800, 0x7fff, 1 },
- { GFXTYPE_SCROLL2, 0x5800, 0x7fff, 1 },
- { 0 , 0, 0, 0 }
-};
-
-static const struct GfxRange mapper_STF29_table[] = {
- { GFXTYPE_SPRITES, 0x00000, 0x07fff, 0 },
-
- { GFXTYPE_SPRITES, 0x08000, 0x0ffff, 1 },
-
- { GFXTYPE_SPRITES, 0x10000, 0x11fff, 2 },
- { GFXTYPE_SCROLL3, 0x02000, 0x03fff, 2 },
- { GFXTYPE_SCROLL1, 0x04000, 0x04fff, 2 },
- { GFXTYPE_SCROLL2, 0x05000, 0x07fff, 2 },
- { 0 , 0, 0, 0 }
-};
-
-static const struct GfxRange mapper_RT24B_table[] = {
- { GFXTYPE_SPRITES, 0x0000, 0x53ff, 0 },
- { GFXTYPE_SCROLL1, 0x5400, 0x6fff, 0 },
- { GFXTYPE_SCROLL3, 0x7000, 0x7fff, 0 },
-
- { GFXTYPE_SCROLL3, 0x0000, 0x3fff, 1 },
- { GFXTYPE_SCROLL2, 0x2800, 0x7fff, 1 },
- { GFXTYPE_SPRITES, 0x5400, 0x7fff, 1 },
- { 0 , 0, 0, 0 }
-};
-
-static const struct GfxRange mapper_RT22B_table[] = {
- { GFXTYPE_SPRITES, 0x0000, 0x3fff, 0 },
-
- { GFXTYPE_SPRITES, 0x4000, 0x53ff, 1 },
- { GFXTYPE_SCROLL1, 0x5400, 0x6fff, 1 },
- { GFXTYPE_SCROLL3, 0x7000, 0x7fff, 1 },
-
- { GFXTYPE_SCROLL3, 0x0000, 0x3fff, 2 },
- { GFXTYPE_SCROLL2, 0x2800, 0x3fff, 2 },
-
- { GFXTYPE_SCROLL2, 0x4000, 0x7fff, 3 },
- { GFXTYPE_SPRITES, 0x5400, 0x7fff, 3 },
- { 0 , 0, 0, 0 }
-};
-
-static const struct GfxRange mapper_KD29B_table[] = {
- { GFXTYPE_SPRITES, 0x0000, 0x7fff, 0 },
-
- { GFXTYPE_SPRITES, 0x8000, 0x8fff, 1 },
- { GFXTYPE_SCROLL2, 0x9000, 0xbfff, 1 },
- { GFXTYPE_SCROLL1, 0xc000, 0xd7ff, 1 },
- { GFXTYPE_SCROLL3, 0xd800, 0xffff, 1 },
- { 0 , 0, 0, 0 }
-};
-
-static const struct GfxRange mapper_CC63B_table[] = {
- { GFXTYPE_SPRITES, 0x0000, 0x7fff, 0 },
- { GFXTYPE_SCROLL2, 0x0000, 0x7fff, 0 },
-
- { GFXTYPE_SPRITES, 0x8000, 0xffff, 1 },
- { GFXTYPE_SCROLL1, 0x8000, 0xffff, 1 },
- { GFXTYPE_SCROLL2, 0x8000, 0xffff, 1 },
- { GFXTYPE_SCROLL3, 0x8000, 0xffff, 1 },
- { 0 , 0, 0, 0 }
-};
-
-static const struct GfxRange mapper_KR63B_table[] = {
- { GFXTYPE_SPRITES, 0x0000, 0x7fff, 0 },
- { GFXTYPE_SCROLL2, 0x0000, 0x7fff, 0 },
-
- { GFXTYPE_SCROLL1, 0x8000, 0x9fff, 1 },
- { GFXTYPE_SPRITES, 0x8000, 0xcfff, 1 },
- { GFXTYPE_SCROLL2, 0x8000, 0xcfff, 1 },
- { GFXTYPE_SCROLL3, 0xd000, 0xffff, 1 },
- { 0 , 0, 0, 0 }
-};
-
-static const struct GfxRange mapper_S9263B_table[] = {
- { GFXTYPE_SPRITES, 0x00000, 0x07fff, 0 },
-
- { GFXTYPE_SPRITES, 0x08000, 0x0ffff, 1 },
-
- { GFXTYPE_SPRITES, 0x10000, 0x11fff, 2 },
- { GFXTYPE_SCROLL3, 0x02000, 0x03fff, 2 },
- { GFXTYPE_SCROLL1, 0x04000, 0x04fff, 2 },
- { GFXTYPE_SCROLL2, 0x05000, 0x07fff, 2 },
- { 0 , 0, 0, 0 }
-};
-
-static const struct GfxRange mapper_VA63B_table[] = {
- { GFXTYPE_SPRITES | GFXTYPE_SCROLL1 | GFXTYPE_SCROLL2 | GFXTYPE_SCROLL3, 0x00000, 0x07fff, 0 },
- { 0 , 0, 0 , 0 }
-};
-
-static const struct GfxRange mapper_VA22B_table[] = {
- { GFXTYPE_SPRITES | GFXTYPE_SCROLL1 | GFXTYPE_SCROLL2 | GFXTYPE_SCROLL3, 0x00000, 0x03fff, 0 },
- { GFXTYPE_SPRITES | GFXTYPE_SCROLL1 | GFXTYPE_SCROLL2 | GFXTYPE_SCROLL3, 0x04000, 0x07fff, 1 },
- { 0 , 0, 0 , 0 }
-};
-
-static const struct GfxRange mapper_Q522B_table[] = {
- { GFXTYPE_SPRITES | GFXTYPE_SCROLL2, 0x0000, 0x6fff, 0 },
- { GFXTYPE_SCROLL3, 0x7000, 0x77ff, 0 },
- { GFXTYPE_SCROLL1, 0x7800, 0x7fff, 0 },
- { 0 , 0, 0, 0 }
-};
-
-static const struct GfxRange mapper_TK263B_table[] = {
- { GFXTYPE_SPRITES | GFXTYPE_SCROLL1 | GFXTYPE_SCROLL2 | GFXTYPE_SCROLL3, 0x00000, 0x07fff, 0 },
- { GFXTYPE_SPRITES | GFXTYPE_SCROLL1 | GFXTYPE_SCROLL2 | GFXTYPE_SCROLL3, 0x08000, 0x0ffff, 1 },
- { 0 , 0, 0, 0 }
-};
-
-static const struct GfxRange mapper_CD63B_table[] = {
- { GFXTYPE_SCROLL1, 0x0000, 0x0fff, 0 },
- { GFXTYPE_SPRITES, 0x1000, 0x7fff, 0 },
-
- { GFXTYPE_SPRITES | GFXTYPE_SCROLL2, 0x8000, 0xdfff, 1 },
- { GFXTYPE_SCROLL3, 0xe000, 0xffff, 1 },
- { 0 , 0, 0, 0 }
-};
-
-static const struct GfxRange mapper_PS63B_table[] = {
- { GFXTYPE_SCROLL1, 0x0000, 0x0fff, 0 },
- { GFXTYPE_SPRITES, 0x1000, 0x7fff, 0 },
-
- { GFXTYPE_SPRITES | GFXTYPE_SCROLL2, 0x8000, 0xdbff, 1 },
- { GFXTYPE_SCROLL3, 0xdc00, 0xffff, 1 },
- { 0 , 0, 0, 0 }
-};
-
-static const struct GfxRange mapper_MB63B_table[] = {
- { GFXTYPE_SCROLL1, 0x00000, 0x00fff, 0 },
- { GFXTYPE_SPRITES | GFXTYPE_SCROLL2, 0x01000, 0x07fff, 0 },
-
- { GFXTYPE_SPRITES | GFXTYPE_SCROLL2, 0x08000, 0x0ffff, 1 },
-
- { GFXTYPE_SPRITES | GFXTYPE_SCROLL2, 0x10000, 0x167ff, 2 },
- { GFXTYPE_SCROLL3, 0x16800, 0x17fff, 2 },
- { 0 , 0, 0, 0 }
-};
-
-static const struct GfxRange mapper_QD22B_table[] = {
- { GFXTYPE_SPRITES, 0x0000, 0x3fff, 0 },
- { GFXTYPE_SCROLL1, 0x0000, 0x3fff, 0 },
- { GFXTYPE_SCROLL2, 0x0000, 0x3fff, 0 },
- { GFXTYPE_SCROLL3, 0x0000, 0x3fff, 0 },
- { 0 , 0, 0, 0 }
-};
-
-static const struct GfxRange mapper_QD63B_table[] = {
- { GFXTYPE_SCROLL1, 0x0000, 0x07ff, 0 },
- { GFXTYPE_SCROLL3, 0x0800, 0x1fff, 0 },
- { GFXTYPE_SPRITES | GFXTYPE_SCROLL2, 0x2000, 0x7fff, 0 },
- { 0 , 0, 0, 0 }
-};
-
-static const struct GfxRange mapper_TN2292_table[] = {
- { GFXTYPE_SCROLL1, 0x0000, 0x0fff, 0 },
- { GFXTYPE_SCROLL3, 0x1000, 0x3fff, 0 },
- { GFXTYPE_SPRITES | GFXTYPE_SCROLL2, 0x4000, 0x7fff, 0 },
-
- { GFXTYPE_SPRITES | GFXTYPE_SCROLL2, 0x8000, 0xffff, 1 },
- { 0 , 0, 0, 0 }
-};
-
-static const struct GfxRange mapper_RCM63B_table[] = {
- { GFXTYPE_SPRITES | GFXTYPE_SCROLL1 | GFXTYPE_SCROLL2 | GFXTYPE_SCROLL3, 0x00000, 0x07fff, 0 },
- { GFXTYPE_SPRITES | GFXTYPE_SCROLL1 | GFXTYPE_SCROLL2 | GFXTYPE_SCROLL3, 0x08000, 0x0ffff, 1 },
- { GFXTYPE_SPRITES | GFXTYPE_SCROLL1 | GFXTYPE_SCROLL2 | GFXTYPE_SCROLL3, 0x10000, 0x17fff, 2 },
- { GFXTYPE_SPRITES | GFXTYPE_SCROLL1 | GFXTYPE_SCROLL2 | GFXTYPE_SCROLL3, 0x18000, 0x1ffff, 3 },
- { 0 , 0, 0, 0 }
-};
-
-static const struct GfxRange mapper_PKB10B_table[] = {
- { GFXTYPE_SCROLL1, 0x0000, 0x0fff, 0 },
- { GFXTYPE_SPRITES | GFXTYPE_SCROLL2, 0x1000, 0x5fff, 0 },
- { GFXTYPE_SCROLL3, 0x6000, 0x7fff, 0 },
- { 0 , 0, 0, 0 }
-};
-
-static const struct GfxRange mapper_pang3_table[] = {
- { GFXTYPE_SPRITES | GFXTYPE_SCROLL2, 0x0000, 0x7fff, 0 },
-
- { GFXTYPE_SPRITES | GFXTYPE_SCROLL2, 0x8000, 0x9fff, 1 },
- { GFXTYPE_SCROLL1, 0xa000, 0xbfff, 1 },
- { GFXTYPE_SCROLL3, 0xc000, 0xffff, 1 },
- { 0 , 0, 0, 0 }
-};
-
-static const struct GfxRange mapper_pokonyan_table[] = {
- { GFXTYPE_SPRITES, 0x0000, 0x2fff, 0 },
- { GFXTYPE_SCROLL1, 0x7000, 0x7fff, 0 },
- { GFXTYPE_SCROLL3, 0x3000, 0x3fff, 0 },
- { GFXTYPE_SCROLL2, 0x4000, 0x6fff, 0 },
- { 0 , 0, 0, 0 }
-};
-
-static const struct GfxRange mapper_sfzch_table[] = {
- { GFXTYPE_SPRITES | GFXTYPE_SCROLL1 | GFXTYPE_SCROLL2 | GFXTYPE_SCROLL3, 0x00000, 0x1ffff, 0 },
- { 0 , 0, 0, 0 }
-};
-
-static const struct GfxRange mapper_cps2_table[] =
-{
- { GFXTYPE_SCROLL1 | GFXTYPE_SCROLL2 | GFXTYPE_SCROLL3 | GFXTYPE_SPRITES, 0x00000, 0x1ffff, 1 },
- { 0 , 0, 0, 0 }
-};
-
-static const struct GfxRange mapper_frog_table[] = {
- { GFXTYPE_SPRITES | GFXTYPE_SCROLL1 | GFXTYPE_SCROLL2 | GFXTYPE_SCROLL3, 0x00001, 0x1ffff, 0 },
- { 0 , 0, 0, 0 }
-};
-
-static const struct GfxRange mapper_KNM10B_table[] = {
- { GFXTYPE_SPRITES, 0x00000, 0x07fff, 0 },
- { GFXTYPE_SPRITES, 0x08000, 0x0ffff, 1 },
- { GFXTYPE_SPRITES, 0x10000, 0x17fff, 2 },
- { GFXTYPE_SCROLL2, 0x04000, 0x07fff, 2 },
- { GFXTYPE_SCROLL1, 0x01000, 0x01fff, 2 },
- { GFXTYPE_SCROLL3, 0x02000, 0x03fff, 2 },
- { 0 , 0, 0, 0 }
-};
-
-void SetGfxMapper(INT32 MapperId)
-{
- switch (MapperId) {
- case mapper_LWCHR: {
- GfxBankSizes[0] = 0x8000;
- GfxBankSizes[1] = 0x8000;
- GfxBankSizes[2] = 0x0000;
- GfxBankSizes[3] = 0x0000;
- GfxBankMapper = mapper_LWCHR_table;
- return;
- }
-
- case mapper_LW621: {
- GfxBankSizes[0] = 0x8000;
- GfxBankSizes[1] = 0x8000;
- GfxBankSizes[2] = 0x0000;
- GfxBankSizes[3] = 0x0000;
- GfxBankMapper = mapper_LW621_table;
- return;
- }
-
- case mapper_DM620: {
- GfxBankSizes[0] = 0x8000;
- GfxBankSizes[1] = 0x2000;
- GfxBankSizes[2] = 0x2000;
- GfxBankSizes[3] = 0x0000;
- GfxBankMapper = mapper_DM620_table;
- return;
- }
-
- case mapper_DM22A: {
- GfxBankSizes[0] = 0x4000;
- GfxBankSizes[1] = 0x4000;
- GfxBankSizes[2] = 0x2000;
- GfxBankSizes[3] = 0x2000;
- GfxBankMapper = mapper_DM22A_table;
- return;
- }
-
- case mapper_DAM63B: {
- GfxBankSizes[0] = 0x8000;
- GfxBankSizes[1] = 0x8000;
- GfxBankSizes[2] = 0x0000;
- GfxBankSizes[3] = 0x0000;
- GfxBankMapper = mapper_DAM63B_table;
- return;
- }
-
- case mapper_ST24M1: {
- GfxBankSizes[0] = 0x8000;
- GfxBankSizes[1] = 0x8000;
- GfxBankSizes[2] = 0x0000;
- GfxBankSizes[3] = 0x0000;
- GfxBankMapper = mapper_ST24M1_table;
- return;
- }
-
- case mapper_ST22B: {
- GfxBankSizes[0] = 0x4000;
- GfxBankSizes[1] = 0x4000;
- GfxBankSizes[2] = 0x4000;
- GfxBankSizes[3] = 0x4000;
- GfxBankMapper = mapper_ST22B_table;
- return;
- }
-
- case mapper_TK22B: {
- GfxBankSizes[0] = 0x4000;
- GfxBankSizes[1] = 0x4000;
- GfxBankSizes[2] = 0x4000;
- GfxBankSizes[3] = 0x4000;
- GfxBankMapper = mapper_TK22B_table;
- return;
- }
-
- case mapper_WL24B: {
- GfxBankSizes[0] = 0x8000;
- GfxBankSizes[1] = 0x8000;
- GfxBankSizes[2] = 0x0000;
- GfxBankSizes[3] = 0x0000;
- GfxBankMapper = mapper_WL24B_table;
- return;
- }
-
- case mapper_S224B: {
- GfxBankSizes[0] = 0x8000;
- GfxBankSizes[1] = 0x0000;
- GfxBankSizes[2] = 0x0000;
- GfxBankSizes[3] = 0x0000;
- GfxBankMapper = mapper_S224B_table;
- return;
- }
-
- case mapper_YI24B: {
- GfxBankSizes[0] = 0x8000;
- GfxBankSizes[1] = 0x0000;
- GfxBankSizes[2] = 0x0000;
- GfxBankSizes[3] = 0x0000;
- GfxBankMapper = mapper_YI24B_table;
- return;
- }
-
- case mapper_AR24B: {
- GfxBankSizes[0] = 0x8000;
- GfxBankSizes[1] = 0x0000;
- GfxBankSizes[2] = 0x0000;
- GfxBankSizes[3] = 0x0000;
- GfxBankMapper = mapper_AR24B_table;
- return;
- }
-
- case mapper_AR22B: {
- GfxBankSizes[0] = 0x4000;
- GfxBankSizes[1] = 0x4000;
- GfxBankSizes[2] = 0x0000;
- GfxBankSizes[3] = 0x0000;
- GfxBankMapper = mapper_AR22B_table;
- return;
- }
-
- case mapper_O224B: {
- GfxBankSizes[0] = 0x8000;
- GfxBankSizes[1] = 0x4000;
- GfxBankSizes[2] = 0x0000;
- GfxBankSizes[3] = 0x0000;
- GfxBankMapper = mapper_O224B_table;
- return;
- }
-
- case mapper_MS24B: {
- GfxBankSizes[0] = 0x8000;
- GfxBankSizes[1] = 0x0000;
- GfxBankSizes[2] = 0x0000;
- GfxBankSizes[3] = 0x0000;
- GfxBankMapper = mapper_MS24B_table;
- return;
- }
-
- case mapper_CK24B: {
- GfxBankSizes[0] = 0x8000;
- GfxBankSizes[1] = 0x0000;
- GfxBankSizes[2] = 0x0000;
- GfxBankSizes[3] = 0x0000;
- GfxBankMapper = mapper_CK24B_table;
- return;
- }
-
- case mapper_NM24B: {
- GfxBankSizes[0] = 0x8000;
- GfxBankSizes[1] = 0x0000;
- GfxBankSizes[2] = 0x0000;
- GfxBankSizes[3] = 0x0000;
- GfxBankMapper = mapper_NM24B_table;
- return;
- }
-
- case mapper_CA24B: {
- GfxBankSizes[0] = 0x8000;
- GfxBankSizes[1] = 0x0000;
- GfxBankSizes[2] = 0x0000;
- GfxBankSizes[3] = 0x0000;
- GfxBankMapper = mapper_CA24B_table;
- return;
- }
-
- case mapper_CA22B: {
- GfxBankSizes[0] = 0x4000;
- GfxBankSizes[1] = 0x4000;
- GfxBankSizes[2] = 0x0000;
- GfxBankSizes[3] = 0x0000;
- GfxBankMapper = mapper_CA22B_table;
- return;
- }
-
- case mapper_STF29: {
- GfxBankSizes[0] = 0x08000;
- GfxBankSizes[1] = 0x08000;
- GfxBankSizes[2] = 0x08000;
- GfxBankSizes[3] = 0x00000;
- GfxBankMapper = mapper_STF29_table;
- return;
- }
-
- case mapper_RT24B: {
- GfxBankSizes[0] = 0x8000;
- GfxBankSizes[1] = 0x8000;
- GfxBankSizes[2] = 0x0000;
- GfxBankSizes[3] = 0x0000;
- GfxBankMapper = mapper_RT24B_table;
- return;
- }
-
- case mapper_RT22B: {
- GfxBankSizes[0] = 0x4000;
- GfxBankSizes[1] = 0x4000;
- GfxBankSizes[2] = 0x4000;
- GfxBankSizes[3] = 0x4000;
- GfxBankMapper = mapper_RT22B_table;
- return;
- }
-
- case mapper_KD29B: {
- GfxBankSizes[0] = 0x8000;
- GfxBankSizes[1] = 0x8000;
- GfxBankSizes[2] = 0x0000;
- GfxBankSizes[3] = 0x0000;
- GfxBankMapper = mapper_KD29B_table;
- return;
- }
-
- case mapper_CC63B: {
- GfxBankSizes[0] = 0x8000;
- GfxBankSizes[1] = 0x8000;
- GfxBankSizes[2] = 0x0000;
- GfxBankSizes[3] = 0x0000;
- GfxBankMapper = mapper_CC63B_table;
- return;
- }
-
- case mapper_KR63B: {
- GfxBankSizes[0] = 0x8000;
- GfxBankSizes[1] = 0x8000;
- GfxBankSizes[2] = 0x0000;
- GfxBankSizes[3] = 0x0000;
- GfxBankMapper = mapper_KR63B_table;
- return;
- }
-
- case mapper_S9263B: {
- GfxBankSizes[0] = 0x08000;
- GfxBankSizes[1] = 0x08000;
- GfxBankSizes[2] = 0x08000;
- GfxBankSizes[3] = 0x00000;
- GfxBankMapper = mapper_S9263B_table;
- return;
- }
-
- case mapper_VA63B: {
- GfxBankSizes[0] = 0x8000;
- GfxBankSizes[1] = 0x0000;
- GfxBankSizes[2] = 0x0000;
- GfxBankSizes[3] = 0x0000;
- GfxBankMapper = mapper_VA63B_table;
- return;
- }
-
- case mapper_VA22B: {
- GfxBankSizes[0] = 0x4000;
- GfxBankSizes[1] = 0x4000;
- GfxBankSizes[2] = 0x0000;
- GfxBankSizes[3] = 0x0000;
- GfxBankMapper = mapper_VA22B_table;
- return;
- }
-
- case mapper_Q522B: {
- GfxBankSizes[0] = 0x8000;
- GfxBankSizes[1] = 0x0000;
- GfxBankSizes[2] = 0x0000;
- GfxBankSizes[3] = 0x0000;
- GfxBankMapper = mapper_Q522B_table;
- return;
- }
-
- case mapper_TK263B: {
- GfxBankSizes[0] = 0x8000;
- GfxBankSizes[1] = 0x8000;
- GfxBankSizes[2] = 0x0000;
- GfxBankSizes[3] = 0x0000;
- GfxBankMapper = mapper_TK263B_table;
- return;
- }
-
- case mapper_CD63B: {
- GfxBankSizes[0] = 0x8000;
- GfxBankSizes[1] = 0x8000;
- GfxBankSizes[2] = 0x0000;
- GfxBankSizes[3] = 0x0000;
- GfxBankMapper = mapper_CD63B_table;
- return;
- }
-
- case mapper_PS63B: {
- GfxBankSizes[0] = 0x8000;
- GfxBankSizes[1] = 0x8000;
- GfxBankSizes[2] = 0x0000;
- GfxBankSizes[3] = 0x0000;
- GfxBankMapper = mapper_PS63B_table;
- return;
- }
-
- case mapper_MB63B: {
- GfxBankSizes[0] = 0x08000;
- GfxBankSizes[1] = 0x08000;
- GfxBankSizes[2] = 0x08000;
- GfxBankSizes[3] = 0x00000;
- GfxBankMapper = mapper_MB63B_table;
- return;
- }
-
- case mapper_QD22B: {
- GfxBankSizes[0] = 0x4000;
- GfxBankSizes[1] = 0x0000;
- GfxBankSizes[2] = 0x0000;
- GfxBankSizes[3] = 0x0000;
- GfxBankMapper = mapper_QD22B_table;
- return;
- }
-
- case mapper_QD63B: {
- GfxBankSizes[0] = 0x8000;
- GfxBankSizes[1] = 0x0000;
- GfxBankSizes[2] = 0x0000;
- GfxBankSizes[3] = 0x0000;
- GfxBankMapper = mapper_QD63B_table;
- return;
- }
-
- case mapper_TN2292: {
- GfxBankSizes[0] = 0x8000;
- GfxBankSizes[1] = 0x8000;
- GfxBankSizes[2] = 0x0000;
- GfxBankSizes[3] = 0x0000;
- GfxBankMapper = mapper_TN2292_table;
- return;
- }
-
- case mapper_RCM63B: {
- GfxBankSizes[0] = 0x8000;
- GfxBankSizes[1] = 0x8000;
- GfxBankSizes[2] = 0x8000;
- GfxBankSizes[3] = 0x8000;
- GfxBankMapper = mapper_RCM63B_table;
- return;
- }
-
- case mapper_PKB10B: {
- GfxBankSizes[0] = 0x8000;
- GfxBankSizes[1] = 0x0000;
- GfxBankSizes[2] = 0x0000;
- GfxBankSizes[3] = 0x0000;
- GfxBankMapper = mapper_PKB10B_table;
- return;
- }
-
- case mapper_pang3: {
- GfxBankSizes[0] = 0x8000;
- GfxBankSizes[1] = 0x8000;
- GfxBankSizes[2] = 0x0000;
- GfxBankSizes[3] = 0x0000;
- GfxBankMapper = mapper_pang3_table;
- return;
- }
-
- case mapper_pokon: {
- GfxBankSizes[0] = 0x8000;
- GfxBankSizes[1] = 0x8000;
- GfxBankSizes[2] = 0x8000;
- GfxBankSizes[3] = 0x0000;
- GfxBankMapper = mapper_pokonyan_table;
- return;
- }
-
- case mapper_sfzch: {
- GfxBankSizes[0] = 0x20000;
- GfxBankSizes[1] = 0x00000;
- GfxBankSizes[2] = 0x00000;
- GfxBankSizes[3] = 0x00000;
- GfxBankMapper = mapper_sfzch_table;
- return;
- }
-
- case mapper_cps2: {
- GfxBankSizes[0] = 0x20000;
- GfxBankSizes[1] = 0x20000;
- GfxBankSizes[2] = 0x00000;
- GfxBankSizes[3] = 0x00000;
- GfxBankMapper = mapper_cps2_table;
- return;
- }
-
- case mapper_frog: {
- GfxBankSizes[0] = 0x20000;
- GfxBankSizes[1] = 0x00000;
- GfxBankSizes[2] = 0x00000;
- GfxBankSizes[3] = 0x00000;
- GfxBankMapper = mapper_frog_table;
- return;
- }
-
- case mapper_KNM10B: {
- GfxBankSizes[0] = 0x8000;
- GfxBankSizes[1] = 0x8000;
- GfxBankSizes[2] = 0x8000;
- GfxBankSizes[3] = 0x0000;
- GfxBankMapper = mapper_KNM10B_table;
- return;
- }
- }
-}
-
-INT32 GfxRomBankMapper(INT32 Type, INT32 Code)
-{
- const struct GfxRange *Range = GfxBankMapper;
- INT32 Shift = 0;
-
- switch (Type) {
- case GFXTYPE_SPRITES: Shift = 1; break;
- case GFXTYPE_SCROLL1: Shift = 0; break;
- case GFXTYPE_SCROLL2: Shift = 1; break;
- case GFXTYPE_SCROLL3: Shift = 3; break;
- }
-
- Code <<= Shift;
-
- while (Range->Type) {
- if (Code >= Range->Start && Code <= Range->End) {
- if (Range->Type & Type) {
- INT32 Base = 0;
- INT32 i;
-
- for (i = 0; i < Range->Bank; ++i)
- Base += GfxBankSizes[i];
-
- return (Base + (Code & (GfxBankSizes[Range->Bank] - 1))) >> Shift;
- }
- }
-
- ++Range;
- }
-
-// bprintf(PRINT_NORMAL, _T("tile %02x/%04x out of range\n"), Type,Code>>Shift);
-
- return -1;
-}
-
-void SetCpsBId(INT32 CpsBId, INT32 bStars)
-{
- switch (CpsBId) {
- case CPS_B_01: {
- CpsBID[0] = 0x00;
- CpsBID[1] = 0x00;
- CpsBID[2] = 0x00;
-
- CpsMProt[0] = 0x00;
- CpsMProt[1] = 0x00;
- CpsMProt[2] = 0x00;
- CpsMProt[3] = 0x00;
-
- nCpsLcReg = 0x66;
- MaskAddr[0] = 0x68;
- MaskAddr[1] = 0x6a;
- MaskAddr[2] = 0x6c;
- MaskAddr[3] = 0x6e;
-
- nCpsPalCtrlReg = 0x70;
-
- CpsLayEn[1] = 0x02;
- CpsLayEn[2] = 0x04;
- CpsLayEn[3] = 0x08;
- if (bStars) {
- CpsLayEn[4] = 0x30;
- CpsLayEn[5] = 0x30;
- }
- return;
- }
-
- case CPS_B_02: {
- CpsBID[0] = 0x60;
- CpsBID[1] = 0x00;
- CpsBID[2] = 0x02;
-
- CpsMProt[0] = 0x00;
- CpsMProt[1] = 0x00;
- CpsMProt[2] = 0x00;
- CpsMProt[3] = 0x00;
-
- nCpsLcReg = 0x6c;
- MaskAddr[0] = 0x6a;
- MaskAddr[1] = 0x68;
- MaskAddr[2] = 0x66;
- MaskAddr[3] = 0x64;
-
- nCpsPalCtrlReg = 0x62;
-
- CpsLayEn[1] = 0x02;
- CpsLayEn[2] = 0x04;
- CpsLayEn[3] = 0x08;
- if (bStars) {
- CpsLayEn[4] = 0x00;
- CpsLayEn[5] = 0x00;
- }
- return;
- }
-
- case CPS_B_03: {
- CpsBID[0] = 0x00;
- CpsBID[1] = 0x00;
- CpsBID[2] = 0x00;
-
- CpsMProt[0] = 0x00;
- CpsMProt[1] = 0x00;
- CpsMProt[2] = 0x00;
- CpsMProt[3] = 0x00;
-
- nCpsLcReg = 0x70;
- MaskAddr[0] = 0x6e;
- MaskAddr[1] = 0x6c;
- MaskAddr[2] = 0x6a;
- MaskAddr[3] = 0x68;
-
- nCpsPalCtrlReg = 0x66;
-
- CpsLayEn[1] = 0x20;
- CpsLayEn[2] = 0x10;
- CpsLayEn[3] = 0x08;
- if (bStars) {
- CpsLayEn[4] = 0x00;
- CpsLayEn[5] = 0x00;
- }
- return;
- }
-
- case CPS_B_04: {
- CpsBID[0] = 0x60;
- CpsBID[1] = 0x00;
- CpsBID[2] = 0x04;
-
- CpsMProt[0] = 0x00;
- CpsMProt[1] = 0x00;
- CpsMProt[2] = 0x00;
- CpsMProt[3] = 0x00;
-
- nCpsLcReg = 0x6e;
- MaskAddr[0] = 0x66;
- MaskAddr[1] = 0x70;
- MaskAddr[2] = 0x68;
- MaskAddr[3] = 0x72;
-
- nCpsPalCtrlReg = 0x6a;
-
- CpsLayEn[1] = 0x02;
- //CpsLayEn[2] = 0x0c;
- CpsLayEn[2] = 0x04;
- //CpsLayEn[3] = 0x0c;
- CpsLayEn[3] = 0x08;
- if (bStars) {
- CpsLayEn[4] = 0x00;
- CpsLayEn[5] = 0x00;
- }
- return;
- }
-
- case CPS_B_05: {
- CpsBID[0] = 0x60;
- CpsBID[1] = 0x00;
- CpsBID[2] = 0x05;
-
- CpsMProt[0] = 0x00;
- CpsMProt[1] = 0x00;
- CpsMProt[2] = 0x00;
- CpsMProt[3] = 0x00;
-
- nCpsLcReg = 0x68;
- MaskAddr[0] = 0x6a;
- MaskAddr[1] = 0x6c;
- MaskAddr[2] = 0x6e;
- MaskAddr[3] = 0x70;
-
- nCpsPalCtrlReg = 0x72;
-
- CpsLayEn[1] = 0x02;
- CpsLayEn[2] = 0x08;
- CpsLayEn[3] = 0x20;
- if (bStars) {
- CpsLayEn[4] = 0x14;
- CpsLayEn[5] = 0x14;
- }
- return;
- }
-
- case CPS_B_11: {
- CpsBID[0] = 0x72;
- CpsBID[1] = 0x04;
- CpsBID[2] = 0x01;
-
- CpsMProt[0] = 0x00;
- CpsMProt[1] = 0x00;
- CpsMProt[2] = 0x00;
- CpsMProt[3] = 0x00;
-
- nCpsLcReg = 0x66;
- MaskAddr[0] = 0x68;
- MaskAddr[1] = 0x6a;
- MaskAddr[2] = 0x6c;
- MaskAddr[3] = 0x6e;
-
- nCpsPalCtrlReg = 0x70;
-
- CpsLayEn[1] = 0x08;
- CpsLayEn[2] = 0x10;
- CpsLayEn[3] = 0x20;
- if (bStars) {
- CpsLayEn[4] = 0x00;
- CpsLayEn[5] = 0x00;
- }
- return;
- }
-
- case CPS_B_12: {
- CpsBID[0] = 0x60;
- CpsBID[1] = 0x04;
- CpsBID[2] = 0x02;
-
- CpsMProt[0] = 0x00;
- CpsMProt[1] = 0x00;
- CpsMProt[2] = 0x00;
- CpsMProt[3] = 0x00;
-
- nCpsLcReg = 0x6c;
- MaskAddr[0] = 0x6a;
- MaskAddr[1] = 0x68;
- MaskAddr[2] = 0x66;
- MaskAddr[3] = 0x64;
-
- nCpsPalCtrlReg = 0x62;
-
- CpsLayEn[1] = 0x02;
- CpsLayEn[2] = 0x04;
- CpsLayEn[3] = 0x08;
- if (bStars) {
- CpsLayEn[4] = 0x00;
- CpsLayEn[5] = 0x00;
- }
- return;
- }
-
- case CPS_B_13: {
- CpsBID[0] = 0x6e;
- CpsBID[1] = 0x04;
- CpsBID[2] = 0x03;
-
- CpsMProt[0] = 0x00;
- CpsMProt[1] = 0x00;
- CpsMProt[2] = 0x00;
- CpsMProt[3] = 0x00;
-
- nCpsLcReg = 0x62;
- MaskAddr[0] = 0x64;
- MaskAddr[1] = 0x66;
- MaskAddr[2] = 0x68;
- MaskAddr[3] = 0x6a;
-
- nCpsPalCtrlReg = 0x6c;
-
- CpsLayEn[1] = 0x20;
- CpsLayEn[2] = 0x02;
- CpsLayEn[3] = 0x04;
- if (bStars) {
- CpsLayEn[4] = 0x00;
- CpsLayEn[5] = 0x00;
- }
- return;
- }
-
- case CPS_B_14: {
- CpsBID[0] = 0x5e;
- CpsBID[1] = 0x04;
- CpsBID[2] = 0x04;
-
- CpsMProt[0] = 0x00;
- CpsMProt[1] = 0x00;
- CpsMProt[2] = 0x00;
- CpsMProt[3] = 0x00;
-
- nCpsLcReg = 0x52;
- MaskAddr[0] = 0x54;
- MaskAddr[1] = 0x56;
- MaskAddr[2] = 0x58;
- MaskAddr[3] = 0x5a;
-
- nCpsPalCtrlReg = 0x5c;
-
- CpsLayEn[1] = 0x08;
- CpsLayEn[2] = 0x20;
- CpsLayEn[3] = 0x10;
- if (bStars) {
- CpsLayEn[4] = 0x00;
- CpsLayEn[5] = 0x00;
- }
- return;
- }
-
- case CPS_B_15: {
- CpsBID[0] = 0x4e;
- CpsBID[1] = 0x04;
- CpsBID[2] = 0x05;
-
- CpsMProt[0] = 0x00;
- CpsMProt[1] = 0x00;
- CpsMProt[2] = 0x00;
- CpsMProt[3] = 0x00;
-
- nCpsLcReg = 0x42;
- MaskAddr[0] = 0x44;
- MaskAddr[1] = 0x46;
- MaskAddr[2] = 0x48;
- MaskAddr[3] = 0x4a;
-
- nCpsPalCtrlReg = 0x4c;
-
- CpsLayEn[1] = 0x04;
- CpsLayEn[2] = 0x02;
- CpsLayEn[3] = 0x20;
- if (bStars) {
- CpsLayEn[4] = 0x00;
- CpsLayEn[5] = 0x00;
- }
- return;
- }
-
- case CPS_B_16: {
- CpsBID[0] = 0x40;
- CpsBID[1] = 0x04;
- CpsBID[2] = 0x06;
-
- CpsMProt[0] = 0x00;
- CpsMProt[1] = 0x00;
- CpsMProt[2] = 0x00;
- CpsMProt[3] = 0x00;
-
- nCpsLcReg = 0x4c;
- MaskAddr[0] = 0x4a;
- MaskAddr[1] = 0x48;
- MaskAddr[2] = 0x46;
- MaskAddr[3] = 0x44;
-
- nCpsPalCtrlReg = 0x42;
-
- CpsLayEn[1] = 0x10;
- CpsLayEn[2] = 0x0a;
- CpsLayEn[3] = 0x0a;
- if (bStars) {
- CpsLayEn[4] = 0x00;
- CpsLayEn[5] = 0x00;
- }
- return;
- }
-
- case CPS_B_17: {
- CpsBID[0] = 0x48;
- CpsBID[1] = 0x04;
- CpsBID[2] = 0x07;
-
- CpsMProt[0] = 0x00;
- CpsMProt[1] = 0x00;
- CpsMProt[2] = 0x00;
- CpsMProt[3] = 0x00;
-
- nCpsLcReg = 0x54;
- MaskAddr[0] = 0x52;
- MaskAddr[1] = 0x50;
- MaskAddr[2] = 0x4e;
- MaskAddr[3] = 0x4c;
-
- nCpsPalCtrlReg = 0x4a;
-
- CpsLayEn[1] = 0x08;
- CpsLayEn[2] = 0x14;
- CpsLayEn[3] = 0x02;
- if (bStars) {
- CpsLayEn[4] = 0x00;
- CpsLayEn[5] = 0x00;
- }
- return;
- }
-
- case CPS_B_18: {
- CpsBID[0] = 0xd0;
- CpsBID[1] = 0x04;
- CpsBID[2] = 0x08;
-
- CpsMProt[0] = 0x00;
- CpsMProt[1] = 0x00;
- CpsMProt[2] = 0x00;
- CpsMProt[3] = 0x00;
-
- nCpsLcReg = 0xdc;
- MaskAddr[0] = 0xda;
- MaskAddr[1] = 0xd8;
- MaskAddr[2] = 0xd6;
- MaskAddr[3] = 0xd4;
-
- nCpsPalCtrlReg = 0xd2;
-
- CpsLayEn[1] = 0x10;
- CpsLayEn[2] = 0x08;
- CpsLayEn[3] = 0x02;
- if (bStars) {
- CpsLayEn[4] = 0x00;
- CpsLayEn[5] = 0x00;
- }
- return;
- }
-
- case CPS_B_21_BT1: {
- CpsBID[0] = 0x72;
- CpsBID[1] = 0x08;
- CpsBID[2] = 0x00;
-
- CpsMProt[0] = 0x4e;
- CpsMProt[1] = 0x4c;
- CpsMProt[2] = 0x4a;
- CpsMProt[3] = 0x48;
-
- nCpsLcReg = 0x68;
- MaskAddr[0] = 0x66;
- MaskAddr[1] = 0x64;
- MaskAddr[2] = 0x62;
- MaskAddr[3] = 0x60;
-
- nCpsPalCtrlReg = 0x70;
-
- CpsLayEn[1] = 0x20;
- CpsLayEn[2] = 0x04;
- CpsLayEn[3] = 0x08;
- if (bStars) {
- CpsLayEn[4] = 0x12;
- CpsLayEn[5] = 0x12;
- }
- return;
- }
-
- case CPS_B_21_BT2: {
- CpsBID[0] = 0x00;
- CpsBID[1] = 0x00;
- CpsBID[2] = 0x00;
-
- CpsMProt[0] = 0x5e;
- CpsMProt[1] = 0x5c;
- CpsMProt[2] = 0x5a;
- CpsMProt[3] = 0x58;
-
- nCpsLcReg = 0x60;
- MaskAddr[0] = 0x6e;
- MaskAddr[1] = 0x6c;
- MaskAddr[2] = 0x6a;
- MaskAddr[3] = 0x68;
-
- nCpsPalCtrlReg = 0x70;
-
- CpsLayEn[1] = 0x30;
- CpsLayEn[2] = 0x08;
- CpsLayEn[3] = 0x30;
- if (bStars) {
- CpsLayEn[4] = 0x00;
- CpsLayEn[5] = 0x00;
- }
- return;
- }
-
- case CPS_B_21_BT3: {
- CpsBID[0] = 0x00;
- CpsBID[1] = 0x00;
- CpsBID[2] = 0x00;
-
- CpsMProt[0] = 0x46;
- CpsMProt[1] = 0x44;
- CpsMProt[2] = 0x42;
- CpsMProt[3] = 0x40;
-
- nCpsLcReg = 0x60;
- MaskAddr[0] = 0x6e;
- MaskAddr[1] = 0x6c;
- MaskAddr[2] = 0x6a;
- MaskAddr[3] = 0x68;
-
- nCpsPalCtrlReg = 0x70;
-
- CpsLayEn[1] = 0x20;
- CpsLayEn[2] = 0x12;
- CpsLayEn[3] = 0x12;
- if (bStars) {
- CpsLayEn[4] = 0x00;
- CpsLayEn[5] = 0x00;
- }
- return;
- }
-
- case CPS_B_21_BT4: {
- CpsBID[0] = 0x00;
- CpsBID[1] = 0x00;
- CpsBID[2] = 0x00;
-
- CpsMProt[0] = 0x46;
- CpsMProt[1] = 0x44;
- CpsMProt[2] = 0x42;
- CpsMProt[3] = 0x40;
-
- nCpsLcReg = 0x68;
- MaskAddr[0] = 0x66;
- MaskAddr[1] = 0x64;
- MaskAddr[2] = 0x62;
- MaskAddr[3] = 0x60;
-
- nCpsPalCtrlReg = 0x70;
-
- CpsLayEn[1] = 0x20;
- CpsLayEn[2] = 0x10;
- CpsLayEn[3] = 0x02;
- if (bStars) {
- CpsLayEn[4] = 0x00;
- CpsLayEn[5] = 0x00;
- }
- return;
- }
-
- case CPS_B_21_BT5: {
- CpsBID[0] = 0x32;
- CpsBID[1] = 0x00;
- CpsBID[2] = 0x00;
-
- CpsMProt[0] = 0x4e;
- CpsMProt[1] = 0x4c;
- CpsMProt[2] = 0x4a;
- CpsMProt[3] = 0x48;
-
- nCpsLcReg = 0x60;
- MaskAddr[0] = 0x6e;
- MaskAddr[1] = 0x6c;
- MaskAddr[2] = 0x6a;
- MaskAddr[3] = 0x68;
-
- nCpsPalCtrlReg = 0x70;
-
- CpsLayEn[1] = 0x20;
- CpsLayEn[2] = 0x04;
- CpsLayEn[3] = 0x02;
- if (bStars) {
- CpsLayEn[4] = 0x00;
- CpsLayEn[5] = 0x00;
- }
- return;
- }
-
- case CPS_B_21_BT6: {
- CpsBID[0] = 0x00;
- CpsBID[1] = 0x00;
- CpsBID[2] = 0x00;
-
- CpsMProt[0] = 0x00;
- CpsMProt[1] = 0x00;
- CpsMProt[2] = 0x00;
- CpsMProt[3] = 0x00;
-
- nCpsLcReg = 0x60;
- MaskAddr[0] = 0x6e;
- MaskAddr[1] = 0x6c;
- MaskAddr[2] = 0x6a;
- MaskAddr[3] = 0x68;
-
- nCpsPalCtrlReg = 0x70;
-
- CpsLayEn[1] = 0x20;
- CpsLayEn[2] = 0x14;
- CpsLayEn[3] = 0x14;
- if (bStars) {
- CpsLayEn[4] = 0x00;
- CpsLayEn[5] = 0x00;
- }
- return;
- }
-
- case CPS_B_21_BT7: {
- CpsBID[0] = 0x00;
- CpsBID[1] = 0x00;
- CpsBID[2] = 0x00;
-
- CpsMProt[0] = 0x00;
- CpsMProt[1] = 0x00;
- CpsMProt[2] = 0x00;
- CpsMProt[3] = 0x00;
-
- nCpsLcReg = 0x6c;
- MaskAddr[0] = 0x00;
- MaskAddr[1] = 0x00;
- MaskAddr[2] = 0x00;
- MaskAddr[3] = 0x00;
-
- nCpsPalCtrlReg = 0x52;
-
- CpsLayEn[1] = 0x14;
- CpsLayEn[2] = 0x02;
- CpsLayEn[3] = 0x14;
- if (bStars) {
- CpsLayEn[4] = 0x00;
- CpsLayEn[5] = 0x00;
- }
- return;
- }
-
- case CPS_B_21_DEF: {
- CpsBID[0] = 0x32;
- CpsBID[1] = 0x00;
- CpsBID[2] = 0x00;
-
- CpsMProt[0] = 0x40;
- CpsMProt[1] = 0x42;
- CpsMProt[2] = 0x44;
- CpsMProt[3] = 0x46;
-
- nCpsLcReg = 0x66;
- MaskAddr[0] = 0x68;
- MaskAddr[1] = 0x6a;
- MaskAddr[2] = 0x6c;
- MaskAddr[3] = 0x6e;
-
- nCpsPalCtrlReg = 0x70;
-
- CpsLayEn[1] = 0x02;
- CpsLayEn[2] = 0x04;
- CpsLayEn[3] = 0x08;
- if (bStars) {
- CpsLayEn[4] = 0x30;
- CpsLayEn[5] = 0x30;
- }
- return;
- }
-
- case CPS_B_21_QS1: {
- CpsBID[0] = 0x00;
- CpsBID[1] = 0x00;
- CpsBID[2] = 0x00;
-
- CpsMProt[0] = 0x00;
- CpsMProt[1] = 0x00;
- CpsMProt[2] = 0x00;
- CpsMProt[3] = 0x00;
-
- nCpsLcReg = 0x62;
- MaskAddr[0] = 0x64;
- MaskAddr[1] = 0x66;
- MaskAddr[2] = 0x68;
- MaskAddr[3] = 0x6a;
-
- nCpsPalCtrlReg = 0x6c;
-
- CpsLayEn[1] = 0x10;
- CpsLayEn[2] = 0x08;
- CpsLayEn[3] = 0x04;
- if (bStars) {
- CpsLayEn[4] = 0x00;
- CpsLayEn[5] = 0x00;
- }
- return;
- }
-
- case CPS_B_21_QS2: {
- CpsBID[0] = 0x00;
- CpsBID[1] = 0x00;
- CpsBID[2] = 0x00;
-
- CpsMProt[0] = 0x00;
- CpsMProt[1] = 0x00;
- CpsMProt[2] = 0x00;
- CpsMProt[3] = 0x00;
-
- nCpsLcReg = 0x4a;
- MaskAddr[0] = 0x4c;
- MaskAddr[1] = 0x4e;
- MaskAddr[2] = 0x40;
- MaskAddr[3] = 0x42;
-
- nCpsPalCtrlReg = 0x44;
-
- CpsLayEn[1] = 0x16;
- CpsLayEn[2] = 0x16;
- CpsLayEn[3] = 0x16;
- if (bStars) {
- CpsLayEn[4] = 0x00;
- CpsLayEn[5] = 0x00;
- }
- return;
- }
-
- case CPS_B_21_QS3: {
- CpsBID[0] = 0x4e;
- CpsBID[1] = 0x0c;
- CpsBID[2] = 0x00;
-
- CpsMProt[0] = 0x00;
- CpsMProt[1] = 0x00;
- CpsMProt[2] = 0x00;
- CpsMProt[3] = 0x00;
-
- nCpsLcReg = 0x52;
- MaskAddr[0] = 0x54;
- MaskAddr[1] = 0x56;
- MaskAddr[2] = 0x48;
- MaskAddr[3] = 0x4a;
-
- nCpsPalCtrlReg = 0x4c;
-
- CpsLayEn[1] = 0x04;
- CpsLayEn[2] = 0x02;
- CpsLayEn[3] = 0x20;
- if (bStars) {
- CpsLayEn[4] = 0x00;
- CpsLayEn[5] = 0x00;
- }
- return;
- }
-
- case CPS_B_21_QS4: {
- CpsBID[0] = 0x6e;
- CpsBID[1] = 0x0c;
- CpsBID[2] = 0x01;
-
- CpsMProt[0] = 0x00;
- CpsMProt[1] = 0x00;
- CpsMProt[2] = 0x00;
- CpsMProt[3] = 0x00;
-
- nCpsLcReg = 0x56;
- MaskAddr[0] = 0x40;
- MaskAddr[1] = 0x42;
- MaskAddr[2] = 0x68;
- MaskAddr[3] = 0x6a;
-
- nCpsPalCtrlReg = 0x6c;
-
- CpsLayEn[1] = 0x04;
- CpsLayEn[2] = 0x08;
- CpsLayEn[3] = 0x10;
- if (bStars) {
- CpsLayEn[4] = 0x00;
- CpsLayEn[5] = 0x00;
- }
- return;
- }
-
- case CPS_B_21_QS5: {
- CpsBID[0] = 0x5e;
- CpsBID[1] = 0x0c;
- CpsBID[2] = 0x02;
-
- CpsMProt[0] = 0x00;
- CpsMProt[1] = 0x00;
- CpsMProt[2] = 0x00;
- CpsMProt[3] = 0x00;
-
- nCpsLcReg = 0x6a;
- MaskAddr[0] = 0x6c;
- MaskAddr[1] = 0x6e;
- MaskAddr[2] = 0x70;
- MaskAddr[3] = 0x72;
-
- nCpsPalCtrlReg = 0x5c;
-
- CpsLayEn[1] = 0x04;
- CpsLayEn[2] = 0x08;
- CpsLayEn[3] = 0x10;
- if (bStars) {
- CpsLayEn[4] = 0x00;
- CpsLayEn[5] = 0x00;
- }
- return;
- }
-
- case HACK_B_1: {
- CpsBID[0] = 0x00;
- CpsBID[1] = 0x00;
- CpsBID[2] = 0x00;
-
- CpsMProt[0] = 0x00;
- CpsMProt[1] = 0x00;
- CpsMProt[2] = 0x00;
- CpsMProt[3] = 0x00;
-
- nCpsLcReg = 0x54;
- MaskAddr[0] = 0x52;
- MaskAddr[1] = 0x50;
- MaskAddr[2] = 0x4e;
- MaskAddr[3] = 0x4c;
-
- nCpsPalCtrlReg = 0x4a;
-
- CpsLayEn[1] = 0xff;
- CpsLayEn[2] = 0xff;
- CpsLayEn[3] = 0xff;
- if (bStars) {
- CpsLayEn[4] = 0x00;
- CpsLayEn[5] = 0x00;
- }
- return;
- }
-
- case HACK_B_2: {
- CpsBID[0] = 0x00;
- CpsBID[1] = 0x00;
- CpsBID[2] = 0x00;
-
- CpsMProt[0] = 0x00;
- CpsMProt[1] = 0x00;
- CpsMProt[2] = 0x00;
- CpsMProt[3] = 0x00;
-
- nCpsLcReg = 0xc4;
- MaskAddr[0] = 0x52;
- MaskAddr[1] = 0x50;
- MaskAddr[2] = 0x4e;
- MaskAddr[3] = 0x4c;
-
- nCpsPalCtrlReg = 0x4a;
-
- CpsLayEn[1] = 0x02;
- CpsLayEn[2] = 0x02;
- CpsLayEn[3] = 0x08;
- if (bStars) {
- CpsLayEn[4] = 0x00;
- CpsLayEn[5] = 0x00;
- }
- return;
- }
-
- case HACK_B_3: {
- CpsBID[0] = 0x00;
- CpsBID[1] = 0x00;
- CpsBID[2] = 0x00;
-
- CpsMProt[0] = 0x00;
- CpsMProt[1] = 0x00;
- CpsMProt[2] = 0x00;
- CpsMProt[3] = 0x00;
-
- nCpsLcReg = 0x60;
- MaskAddr[0] = 0x68;
- MaskAddr[1] = 0x6a;
- MaskAddr[2] = 0x6c;
- MaskAddr[3] = 0x6e;
-
- nCpsPalCtrlReg = 0x6a;
-
- CpsLayEn[1] = 0x02;
- CpsLayEn[2] = 0x04;
- CpsLayEn[3] = 0x08;
- if (bStars) {
- CpsLayEn[4] = 0x30;
- CpsLayEn[5] = 0x30;
- }
- return;
- }
-
- case HACK_B_4: {
- CpsBID[0] = 0x00;
- CpsBID[1] = 0x00;
- CpsBID[2] = 0x00;
-
- CpsMProt[0] = 0x00;
- CpsMProt[1] = 0x00;
- CpsMProt[2] = 0x00;
- CpsMProt[3] = 0x00;
-
- nCpsLcReg = 0x70;
- MaskAddr[0] = 0x6e;
- MaskAddr[1] = 0x6c;
- MaskAddr[2] = 0x6a;
- MaskAddr[3] = 0x68;
-
- nCpsPalCtrlReg = 0x66;
-
- CpsLayEn[1] = 0x02;
- CpsLayEn[2] = 0x04;
- CpsLayEn[3] = 0x08;
- if (bStars) {
- CpsLayEn[4] = 0x00;
- CpsLayEn[5] = 0x00;
- }
- return;
- }
-
- case HACK_B_5: {
- CpsBID[0] = 0x00;
- CpsBID[1] = 0x00;
- CpsBID[2] = 0x00;
-
- CpsMProt[0] = 0x00;
- CpsMProt[1] = 0x00;
- CpsMProt[2] = 0x00;
- CpsMProt[3] = 0x00;
-
- nCpsLcReg = 0x60;
- MaskAddr[0] = 0x66;
- MaskAddr[1] = 0x70;
- MaskAddr[2] = 0x68;
- MaskAddr[3] = 0x72;
-
- nCpsPalCtrlReg = 0x6a;
-
- CpsLayEn[1] = 0x02;
- CpsLayEn[2] = 0x04;
- CpsLayEn[3] = 0x08;
- if (bStars) {
- CpsLayEn[4] = 0x30;
- CpsLayEn[5] = 0x30;
- }
- return;
- }
-
- case HACK_B_6: {
- CpsBID[0] = 0x00;
- CpsBID[1] = 0x00;
- CpsBID[2] = 0x00;
-
- CpsMProt[0] = 0x00;
- CpsMProt[1] = 0x00;
- CpsMProt[2] = 0x00;
- CpsMProt[3] = 0x00;
-
- nCpsLcReg = 0x60;
- MaskAddr[0] = 0x66;
- MaskAddr[1] = 0x68;
- MaskAddr[2] = 0x6c;
- MaskAddr[3] = 0x6e;
-
- nCpsPalCtrlReg = 0x6a;
-
- CpsLayEn[1] = 0x02;
- CpsLayEn[2] = 0x04;
- CpsLayEn[3] = 0x08;
- if (bStars) {
- CpsLayEn[4] = 0x30;
- CpsLayEn[5] = 0x30;
- }
- return;
- }
- }
-}
diff --git a/jan/src/burn/drv/capcom/cps_draw.cpp b/jan/src/burn/drv/capcom/cps_draw.cpp
deleted file mode 100644
index 2321633b3..000000000
--- a/jan/src/burn/drv/capcom/cps_draw.cpp
+++ /dev/null
@@ -1,516 +0,0 @@
-#include "cps.h"
-// CPS - Draw
-
-UINT8 CpsRecalcPal = 0; // Flag - If it is 1, recalc the whole palette
-
-static INT32 LayerCont;
-INT32 nStartline, nEndline;
-INT32 nRasterline[MAX_RASTER + 2];
-
-INT32 nCpsLcReg = 0; // Address of layer controller register
-INT32 CpsLayEn[6] = {0, 0, 0, 0, 0, 0}; // bits for layer enable
-INT32 MaskAddr[4] = {0, 0, 0, 0};
-
-INT32 CpsLayer1XOffs = 0;
-INT32 CpsLayer2XOffs = 0;
-INT32 CpsLayer3XOffs = 0;
-INT32 CpsLayer1YOffs = 0;
-INT32 CpsLayer2YOffs = 0;
-INT32 CpsLayer3YOffs = 0;
-
-INT32 Cps1DisableBgHi = 0;
-INT32 CpsDisableRowScroll = 0;
-
-INT32 Cps1OverrideLayers = 0;
-INT32 nCps1Layers[4] = { -1, -1, -1, -1 };
-INT32 nCps1LayerOffs[3] = { -1, -1, -1 };
-
-static void Cps1Layers();
-static void Cps2Layers();
-
-typedef INT32 (*CpsObjDrawDoFn)(INT32,INT32);
-typedef INT32 (*CpsScrXDrawDoFn)(UINT8 *,INT32,INT32);
-typedef void (*CpsLayersDoFn)();
-typedef INT32 (*CpsrPrepareDoFn)();
-typedef INT32 (*CpsrRenderDoFn)();
-
-CpsObjDrawDoFn CpsObjDrawDoX;
-CpsScrXDrawDoFn CpsScr1DrawDoX;
-CpsScrXDrawDoFn CpsScr3DrawDoX;
-CpsLayersDoFn CpsLayersDoX;
-CpsrPrepareDoFn CpsrPrepareDoX;
-CpsrRenderDoFn CpsrRenderDoX;
-
-void DrawFnInit()
-{
- if(Cps == 2) {
- CpsLayersDoX = Cps2Layers;
- CpsScr1DrawDoX = Cps2Scr1Draw;
- CpsScr3DrawDoX = Cps2Scr3Draw;
- CpsObjDrawDoX = Cps2ObjDraw;
- CpsrPrepareDoX = Cps2rPrepare;
- CpsrRenderDoX = Cps2rRender;
- } else {
- CpsLayersDoX = Cps1Layers;
- CpsScr1DrawDoX = Cps1Scr1Draw;
- CpsScr3DrawDoX = Cps1Scr3Draw;
- CpsObjDrawDoX = Cps1ObjDraw;
- CpsrPrepareDoX = Cps1rPrepare;
- CpsrRenderDoX = Cps1rRender;
- }
-}
-
-static INT32 DrawScroll1(INT32 i)
-{
- // Draw Scroll 1
- INT32 nOff, nScrX, nScrY;
- UINT8 *Find;
-
- nOff = BURN_ENDIAN_SWAP_INT16(*((UINT16 *)(CpsSaveReg[i] + 0x02)));
- if (Cps1OverrideLayers && nCps1LayerOffs[0] != -1) {
- nOff = BURN_ENDIAN_SWAP_INT16(nCps1LayerOffs[0]);
- }
-
- // Get scroll coordinates
- nScrX = BURN_ENDIAN_SWAP_INT16(*((UINT16 *)(CpsSaveReg[i] + 0x0c))); // Scroll 1 X
- nScrY = BURN_ENDIAN_SWAP_INT16(*((UINT16 *)(CpsSaveReg[i] + 0x0e))); // Scroll 1 Y
-
- nScrX += 0x40;
-
-// bprintf(PRINT_NORMAL, _T("1 %x, %x, %x\n"), nOff, nScrX, nScrY);
-
- nScrX += CpsLayer1XOffs;
- nScrY += 0x10;
- nScrY += CpsLayer1YOffs;
- nOff <<= 8;
- nOff &= 0xffc000;
- Find = CpsFindGfxRam(nOff, 0x4000);
- if (Find == NULL) {
- return 1;
- }
- CpsScr1DrawDoX(Find, nScrX, nScrY);
- return 0;
-}
-
-static INT32 DrawScroll2Init(INT32 i)
-{
- // Draw Scroll 2
- INT32 nScr2Off; INT32 n;
-
- nScr2Off = BURN_ENDIAN_SWAP_INT16(*((UINT16 *)(CpsSaveReg[i] + 0x04)));
- if (Cps1OverrideLayers && nCps1LayerOffs[1] != -1) {
- nScr2Off = BURN_ENDIAN_SWAP_INT16(nCps1LayerOffs[1]);
- }
-
- // Get scroll coordinates
- nCpsrScrX= BURN_ENDIAN_SWAP_INT16(*((UINT16 *)(CpsSaveReg[i] + 0x10))); // Scroll 2 X
- nCpsrScrY= BURN_ENDIAN_SWAP_INT16(*((UINT16 *)(CpsSaveReg[i] + 0x12))); // Scroll 2 Ytess
-
- // Get row scroll information
- n = BURN_ENDIAN_SWAP_INT16(*((UINT16 *)(CpsSaveReg[i] + 0x22)));
-
- nScr2Off <<= 8;
-
- nCpsrScrX += 0x40;
-
-// bprintf(PRINT_NORMAL, _T("2 %x, %x, %x\n"), nScr2Off, nCpsrScrX, nCpsrScrY);
-
- nCpsrScrX += CpsLayer2XOffs;
- nCpsrScrX &= 0x03FF;
-
- nCpsrScrY += 0x10;
- nCpsrScrY += CpsLayer2YOffs;
- nCpsrScrY &= 0x03FF;
-
- nScr2Off &= 0xFFC000;
- CpsrBase = CpsFindGfxRam(nScr2Off, 0x4000);
- if (CpsrBase == NULL) {
- return 1;
- }
-
- CpsrRows = NULL;
-
- if ((n & 1) && !CpsDisableRowScroll) {
- INT32 nTab, nStart;
- // Find row scroll table:
-
- nTab = BURN_ENDIAN_SWAP_INT16(*((UINT16 *)(CpsSaveReg[i] + 0x08)));
- nStart = BURN_ENDIAN_SWAP_INT16(*((UINT16 *)(CpsSaveReg[i] + 0x20)));
-
- nTab <<= 8;
- nTab &= 0xFFF800; // Vampire - Row scroll effect in VS screen background
-
- CpsrRows = (UINT16 *)CpsFindGfxRam(nTab, 0x0800);
-
- // Find start offset
- nCpsrRowStart = nStart + 16;
- }
-
- CpsrPrepareDoX();
- return 0;
-}
-
-inline static INT32 DrawScroll2Exit()
-{
- CpsrBase = NULL;
- nCpsrScrX = 0;
- nCpsrScrY = 0;
- CpsrRows = NULL;
- return 0;
-}
-
-inline static INT32 DrawScroll2Do()
-{
- if (CpsrBase == NULL) {
- return 1;
- }
- CpsrRenderDoX();
- return 0;
-}
-
-static INT32 DrawScroll3(INT32 i)
-{
- // Draw Scroll 3
- INT32 nOff, nScrX, nScrY;
- UINT8 *Find;
-
- nOff = BURN_ENDIAN_SWAP_INT16(*((UINT16 *)(CpsSaveReg[i] + 0x06)));
- if (Cps1OverrideLayers && nCps1LayerOffs[2] != -1) {
- nOff = BURN_ENDIAN_SWAP_INT16(nCps1LayerOffs[2]);
- }
-
- // Get scroll coordinates
- nScrX = BURN_ENDIAN_SWAP_INT16(*((UINT16 *)(CpsSaveReg[i] + 0x14))); // Scroll 3 X
- nScrY = BURN_ENDIAN_SWAP_INT16(*((UINT16 *)(CpsSaveReg[i] + 0x16))); // Scroll 3 Y
-
- nScrX += 0x40;
-
-// bprintf(PRINT_NORMAL, _T("3 %x, %x, %x\n"), nOff, nScrX, nScrY);
-
- nScrX += CpsLayer3XOffs;
- nScrY += 0x10;
- nScrY += CpsLayer3YOffs;
-
- nOff <<= 8;
- nOff &= 0xffc000;
- Find=CpsFindGfxRam(nOff, 0x4000);
- if (Find == NULL) {
- return 1;
- }
- CpsScr3DrawDoX(Find, nScrX, nScrY);
- return 0;
-}
-
-static INT32 DrawStar(INT32 nLayer)
-{
- INT32 nStar, nStarXPos, nStarYPos, nStarColour;
- UINT8* pStar = CpsStar + (nLayer << 12);
-
- for (nStar = 0; nStar < 0x1000; nStar++) {
- nStarColour = pStar[nStar];
-
- if (nStarColour != 0x0F) {
- nStarXPos = (((nStar >> 8) << 5) - *((INT16*)(CpsSaveReg[0] + 0x18 + (nLayer << 2))) + (nStarColour & 0x1F) - 64) & 0x01FF;
- nStarYPos = ((nStar & 0xFF) - *((INT16*)(CpsSaveReg[0] + 0x1A + (nLayer << 2))) - 16) & 0xFF;
-
- if (nStarXPos < 384 && nStarYPos < 224) {
- nStarColour = ((nStarColour & 0xE0) >> 1) + ((GetCurrentFrame() >> 4) & 0x0F);
- PutPix(pBurnDraw + (nBurnPitch * nStarYPos) + (nBurnBpp * nStarXPos), CpsPal[0x0800 + (nLayer << 9) + nStarColour]);
- }
- }
- }
-
- return 0;
-}
-
-static void Cps1Layers()
-{
- INT32 Draw[4]={-1,-1,-1,-1};
- INT32 nDrawMask=0;
- INT32 i=0;
-
- nDrawMask=1; // Sprites always on
- LayerCont = BURN_ENDIAN_SWAP_INT16(*((UINT16 *)(CpsSaveReg[0] + nCpsLcReg)));
- // Get correct bits from Layer Controller
- if (LayerCont & CpsLayEn[1]) nDrawMask|=2;
- if (LayerCont & CpsLayEn[2]) nDrawMask|=4;
- if (LayerCont & CpsLayEn[3]) nDrawMask|=8;
- nDrawMask&=nBurnLayer; // User choice of layers to display
-
- // Layer control:
- Draw[0]=(LayerCont>>12)&3; // top layer
- Draw[1]=(LayerCont>>10)&3;
- Draw[2]=(LayerCont>> 8)&3;
- Draw[3]=(LayerCont>> 6)&3; // bottom layer (most covered up)
-
- if (Cps1OverrideLayers) {
- nDrawMask = 1;
- Draw[0] = nCps1Layers[0];
- Draw[1] = nCps1Layers[1];
- Draw[2] = nCps1Layers[2];
- Draw[3] = nCps1Layers[3];
- if (Draw[1] != -1) nDrawMask |= 2;
- if (Draw[2] != -1) nDrawMask |= 4;
- if (Draw[3] != -1) nDrawMask |= 8;
- nDrawMask &= nBurnLayer;
- }
-
- // Check for repeated layers and if there are any, the lower layer is omitted
-#define CRP(a,b) if (Draw[a]==Draw[b]) Draw[b]=-1;
- CRP(0,1) CRP(0,2) CRP(0,3) CRP(1,2) CRP(1,3) CRP(2,3)
-#undef CRP
-
- for (i = 0; i < 2; i++) {
- if (LayerCont & CpsLayEn[4 + i]) {
- DrawStar(i);
- }
- }
-
- // prepare layer 2
- DrawScroll2Init(0);
-
- // draw layers, bottom -> top
- for (i=3;i>=0;i--)
- {
- INT32 n=Draw[i]; // Find out which layer to draw
-
- if (n==0) {
- if (nDrawMask & 1) CpsObjDrawDoX(0,7);
-
- if (!Cps1DisableBgHi && i+1 < 4) {
- nBgHi=1;
- switch (Draw[i+1]) {
- case 1:
- if (nDrawMask & 2) DrawScroll1(0);
- break;
- case 2:
- if (nDrawMask & 4) DrawScroll2Do();
- break;
- case 3:
- if (nDrawMask & 8) DrawScroll3(0);
- break;
- }
- nBgHi=0;
- }
- }
-
- // Then Draw the scroll layer on top
- switch (n) {
- case 1:
- if (nDrawMask & 2) DrawScroll1(0);
- break;
- case 2:
- if (nDrawMask & 4) DrawScroll2Do();
- break;
- case 3:
- if (nDrawMask & 8) DrawScroll3(0);
- break;
- }
- }
-
- DrawScroll2Exit();
-}
-
-static void Cps2Layers()
-{
- INT32 Draw[MAX_RASTER][4];
- INT32 Prio[MAX_RASTER][4];
- INT32 nDrawMask[MAX_RASTER];
-
- CpsObjDrawInit();
-
- INT32 nSlice = 0;
- do {
- LayerCont = BURN_ENDIAN_SWAP_INT16(*((UINT16 *)(CpsSaveReg[nSlice] + nCpsLcReg)));
-
- // Determine which layers are enabled
- nDrawMask[nSlice] = 1; // Sprites always on
- if (LayerCont & CpsLayEn[1]) nDrawMask[nSlice] |= 2;
- if (LayerCont & CpsLayEn[2]) nDrawMask[nSlice] |= 4;
- if (LayerCont & CpsLayEn[3]) nDrawMask[nSlice] |= 8;
- nDrawMask[nSlice] &= nBurnLayer; // User choice of layers to display
-
- // Determine layer priority:
- Draw[nSlice][3] = (LayerCont >> 12) & 3; // top layer
- Draw[nSlice][2] = (LayerCont >> 10) & 3;
- Draw[nSlice][1] = (LayerCont >> 8) & 3;
- Draw[nSlice][0] = (LayerCont >> 6) & 3; // bottom layer (most covered up)
-
- // Determine layer-sprite priority (layer >= sprites -> layer on top)
- INT32 nLayPri = (CpsSaveFrg[nSlice][4] << 8) | CpsSaveFrg[nSlice][5]; // Layer priority register at word (400004)
- Prio[nSlice][3] = (nLayPri >> 12) & 7;
- Prio[nSlice][2] = (nLayPri >> 8) & 7;
- Prio[nSlice][1] = (nLayPri >> 4) & 7;
- Prio[nSlice][0] = 0;
-
- // Check for repeated layers (if found, discard the lower layer)
-#define CRP(a, b) if (Draw[nSlice][a] == Draw[nSlice][b]) Draw[nSlice][b] = -1;
- CRP(3, 2) CRP(3, 1) CRP(2, 1) CRP(3, 0) CRP(2, 0) CRP(1, 0)
-#undef CRP
-
- // Pre-process priorities
- // Higher priority layers must have higher layer-sprite priorities
- // N.B. If this is not the case, masking effects may occur (not emulated)
-#if 0
- // Raise sprite priorities of top layers if needed
- INT32 nHighPrio = 0;
- for (INT32 i = 0; i < 4; i++) {
- if (Draw[nSlice][i] > 0) {
- if (Prio[nSlice][Draw[nSlice][i]] < nHighPrio) {
- Prio[nSlice][Draw[nSlice][i]] = nHighPrio;
- } else {
- nHighPrio = Prio[nSlice][Draw[nSlice][i]];
- }
- }
- }
-#else
- // Lower sprite priorities of bottom layers if needed
- INT32 nHighPrio = 9999;
- for (INT32 i = 3; i >= 0; i--) {
- if (Draw[nSlice][i] > 0) {
- if (Prio[nSlice][Draw[nSlice][i]] > nHighPrio) {
- Prio[nSlice][Draw[nSlice][i]] = nHighPrio;
- } else {
- nHighPrio = Prio[nSlice][Draw[nSlice][i]];
- }
- }
- }
-#endif
- nSlice++;
- } while (nSlice < MAX_RASTER && nRasterline[nSlice]);
-
- INT32 nPrevPrio = -1;
- for (INT32 nCurrPrio = 0; nCurrPrio < 8; nCurrPrio++) {
-
- nSlice = 0;
- do {
- for (INT32 i = 0; i < 4; i++) {
- if ((Draw[nSlice][i] >= 0) && Prio[nSlice][Draw[nSlice][i]] == nCurrPrio) {
-
- // Render sprites between the previous layer and this one
- if ((nDrawMask[0] & 1) && (nPrevPrio < nCurrPrio)) {
- CpsObjDrawDoX(nPrevPrio + 1, nCurrPrio);
- nPrevPrio = nCurrPrio;
- }
-
- nStartline = nRasterline[nSlice];
- nEndline = nRasterline[nSlice + 1];
- if (!nEndline) {
- nEndline = 224;
- }
-
- // Render layer
- switch (Draw[nSlice][i]) {
- case 1:
- if (nDrawMask[nSlice] & 2) {
- DrawScroll1(nSlice);
- }
- break;
- case 2:
- if (nDrawMask[nSlice] & 4) {
- DrawScroll2Init(nSlice);
- DrawScroll2Do();
- DrawScroll2Exit();
- }
- break;
- case 3:
- if (nDrawMask[nSlice] & 8) {
- DrawScroll3(nSlice);
- }
- break;
- }
- }
- }
- nSlice++;
- } while (nSlice < MAX_RASTER && nRasterline[nSlice]);
- }
-
- // Render highest priority sprites
- if ((nDrawMask[0] & 1) && (nPrevPrio < 7)) {
- CpsObjDrawDoX(nPrevPrio + 1, 7);
- }
-}
-
-void CpsClearScreen()
-{
- if (Cps == 1) {
- switch (nBurnBpp) {
- case 4: {
- UINT32* pClear = (UINT32*)pBurnDraw;
- UINT32 nColour = CpsPal[0xbff ^ 15];
- for (INT32 i = 0; i < 384 * 224 / 8; i++) {
- *pClear++ = nColour;
- *pClear++ = nColour;
- *pClear++ = nColour;
- *pClear++ = nColour;
- *pClear++ = nColour;
- *pClear++ = nColour;
- *pClear++ = nColour;
- *pClear++ = nColour;
- }
- break;
- }
-
- case 3: {
- UINT8* pClear = pBurnDraw;
- UINT8 r = CpsPal[0xbff ^ 15];
- UINT8 g = (CpsPal[0xbff ^ 15] >> 8) & 0xFF;
- UINT8 b = (CpsPal[0xbff ^ 15] >> 16) & 0xFF;
- r &= 0xFF;
- for (INT32 i = 0; i < 384 * 224; i++) {
- *pClear++ = r;
- *pClear++ = g;
- *pClear++ = b;
- }
- break;
- }
-
- case 2: {
- UINT32* pClear = (UINT32*)pBurnDraw;
- UINT32 nColour = CpsPal[0xbff ^ 15] | CpsPal[0xbff ^ 15] << 16;
- for (INT32 i = 0; i < 384 * 224 / 16; i++) {
- *pClear++ = nColour;
- *pClear++ = nColour;
- *pClear++ = nColour;
- *pClear++ = nColour;
- *pClear++ = nColour;
- *pClear++ = nColour;
- *pClear++ = nColour;
- *pClear++ = nColour;
- }
- break;
- }
- }
- } else {
- memset(pBurnDraw, 0, 384 * 224 * nBurnBpp);
- }
-}
-
-static void DoDraw(INT32 Recalc)
-{
- CtvReady(); // Point to correct tile drawing functions
-
- if (CpsRecalcPal || bCpsUpdatePalEveryFrame) GetPalette(0, 6);
- if (Recalc || bCpsUpdatePalEveryFrame) CpsPalUpdate(CpsSavePal); // recalc whole palette if needed
-
- CpsClearScreen();
-
- CpsLayersDoX();
-}
-
-INT32 CpsDraw()
-{
- DoDraw(CpsRecalcPal);
-
- CpsRecalcPal = 0;
- return 0;
-}
-
-INT32 CpsRedraw()
-{
- DoDraw(1);
-
- CpsRecalcPal = 0;
- return 0;
-}
-
diff --git a/jan/src/burn/drv/capcom/cps_mem.cpp b/jan/src/burn/drv/capcom/cps_mem.cpp
deleted file mode 100644
index 4d9cb9d58..000000000
--- a/jan/src/burn/drv/capcom/cps_mem.cpp
+++ /dev/null
@@ -1,439 +0,0 @@
-#include "cps.h"
-// CPS - Memory
-
-UINT32 CpsMProt[4];
-UINT32 CpsBID[3];
-
-static UINT8 *CpsMem=NULL,*CpsMemEnd=NULL;
-UINT8 *CpsRam90=NULL;
-UINT8 *CpsZRamC0=NULL,*CpsZRamF0=NULL,*CpsEncZRom=NULL;
-UINT8 *CpsSavePal=NULL;
-UINT8 *CpsSaveReg[MAX_RASTER + 1];
-UINT8 *CpsSaveFrg[MAX_RASTER + 1];
-static UINT8 *CpsSaveRegData = NULL;
-static UINT8 *CpsSaveFrgData = NULL;
-UINT8 *CpsRam660=NULL,*CpsRam708=NULL,*CpsReg=NULL,*CpsFrg=NULL;
-UINT8 *CpsRamFF=NULL;
-
-CpsMemScanCallback CpsMemScanCallbackFunction = NULL;
-
-// This routine is called first to determine how much memory is needed
-// and then to set up all the pointers.
-static INT32 CpsMemIndex()
-{
- UINT8* Next; Next = CpsMem;
-
- CpsRam90 = Next; Next += 0x030000; // Video Ram
- CpsRamFF = Next; Next += 0x010000; // Work Ram
- CpsReg = Next; Next += 0x000100; // Registers
-
- CpsSavePal = Next; Next += 0x002000; // Draw Copy of Correct Palette
-
- if (((Cps == 2) && !Cps2DisableQSnd) || Cps1Qs == 1) {
- CpsZRamC0 = Next; Next += 0x001000; // Z80 c000-cfff
- CpsZRamF0 = Next; Next += 0x001000; // Z80 f000-ffff
- }
-
- if (Cps == 2) {
- CpsRam660 = Next; Next += 0x004000; // Extra Memory
- CpsRam708 = Next; Next += 0x010000; // Obj Ram
- CpsFrg = Next; Next += 0x000010; // 'Four' Registers (Registers at 0x400000)
-
- ZBuf = (UINT16*)Next; Next += 384 * 224 * 2; // Sprite Masking Z buffer
-
- CpsSaveRegData = Next; Next += 0x0100 * (MAX_RASTER + 1); // Draw Copy of registers
- CpsSaveFrgData = Next; Next += 0x0010 * (MAX_RASTER + 1); // Draw Copy of 'Four' Registers
-
- for (INT32 i = 0; i < MAX_RASTER + 1; i++) {
- CpsSaveReg[i] = CpsSaveRegData + i * 0x0100;
- CpsSaveFrg[i] = CpsSaveFrgData + i * 0x0010;
- }
-
- } else {
- CpsSaveRegData = Next; Next += 0x0100; // Draw Copy of registers
- CpsSaveFrgData = Next; Next += 0x0010; // Draw Copy of 'Four' Registers
-
- CpsSaveReg[0] = CpsSaveRegData;
- CpsSaveFrg[0] = CpsSaveFrgData;
- }
-
- CpsMemEnd = Next;
-
- return 0;
-}
-
-static INT32 AllocateMemory()
-{
- INT32 nLen;
-
- CpsMem = NULL; // Find out how much memory is needed
- CpsMemIndex();
- nLen = CpsMemEnd - (UINT8*)0;
-
- if ((CpsMem = (UINT8*)BurnMalloc(nLen)) == NULL) {
- return 1;
- }
-
- memset(CpsMem, 0, nLen); // blank all memory
- CpsMemIndex(); // Index the allocated memory
-
- return 0;
-}
-
-// Map the correct bank of obj memory to the 68000 address space (including mirrors).
-void CpsMapObjectBanks(INT32 nBank)
-{
- if (nBank != nCpsObjectBank) {
- nCpsObjectBank = nBank;
-
- if (nCpsObjectBank) {
- SekMapMemory(CpsRam708 + 0x8000, 0x708000, 0x709FFF, MAP_RAM);
- SekMapMemory(CpsRam708 + 0x8000, 0x70A000, 0x70BFFF, MAP_RAM);
- SekMapMemory(CpsRam708 + 0x8000, 0x70C000, 0x70DFFF, MAP_RAM);
- SekMapMemory(CpsRam708 + 0x8000, 0x70E000, 0x70FFFF, MAP_RAM);
- } else {
- SekMapMemory(CpsRam708, 0x708000, 0x709FFF, MAP_RAM);
- SekMapMemory(CpsRam708, 0x70A000, 0x70BFFF, MAP_RAM);
- SekMapMemory(CpsRam708, 0x70C000, 0x70DFFF, MAP_RAM);
- SekMapMemory(CpsRam708, 0x70E000, 0x70FFFF, MAP_RAM);
- }
- }
-}
-
-INT32 __fastcall CPSResetCallback()
-{
- // Reset instruction on 68000
- if (((Cps & 1) && !Cps1DisablePSnd) || ((Cps == 2) && !Cps2DisableQSnd)) ZetReset(); // Reset Z80 (CPU #1)
-
- return 0;
-}
-
-// ----------------------------------------------------------------------------
-
-UINT8 __fastcall CPSQSoundC0ReadByte(UINT32 sekAddress)
-{
-// bprintf(PRINT_NORMAL, _T(" QS %06X read\n"), sekAddress);
-
- if (!(sekAddress & 1)) {
- return 0xFF;
- }
-
- QsndSyncZ80();
-
- sekAddress &= 0x1FFF;
- return CpsZRamC0[sekAddress >> 1];
-}
-
-void __fastcall CPSQSoundC0WriteByte(UINT32 sekAddress, UINT8 byteValue)
-{
-// bprintf(PRINT_NORMAL, _T(" QS %06X -> %02X\n"), sekAddress, byteValue);
-
- if (!(sekAddress & 1)) {
- return;
- }
-
- sekAddress &= 0x1FFF;
-
-#if 1 && defined USE_SPEEDHACKS
- // Sync only when the last byte of the sound command is written
- if (sekAddress == 0x001F) {
- QsndSyncZ80();
- }
-#else
- QsndSyncZ80();
-#endif
-
- CpsZRamC0[sekAddress >> 1] = byteValue;
-}
-
-UINT8 __fastcall CPSQSoundF0ReadByte(UINT32 sekAddress)
-{
-// bprintf(PRINT_NORMAL, _T(" QS %06X read\n"), sekAddress);
-
- if (!(sekAddress & 1)) {
- return 0xFF;
- }
-
- QsndSyncZ80();
-
- sekAddress &= 0x1FFF;
- return CpsZRamF0[sekAddress >> 1];
-}
-
-void __fastcall CPSQSoundF0WriteByte(UINT32 sekAddress, UINT8 byteValue)
-{
-// bprintf(PRINT_NORMAL, _T(" QS %06X -> %02X\n"), sekAddress, byteValue);
-
- if (!(sekAddress & 1)) {
- return;
- }
-
- sekAddress &= 0x1FFF;
-
-#if 1 && defined USE_SPEEDHACKS
- // Sync only when the last byte of the sound command is written
- if (sekAddress == 0x001F) {
- QsndSyncZ80();
- }
-#else
- QsndSyncZ80();
-#endif
-
- CpsZRamF0[sekAddress >> 1] = byteValue;
-}
-
-// ----------------------------------------------------------------------------
-
-#if 0
-UINT8 __fastcall CPSExtraNVRAMReadByte(UINT32 sekAddress)
-{
-// bprintf(PRINT_NORMAL, _T(" - 0x%06X read.\n"), sekAddress);
-
- sekAddress &= 0x3FFF;
- return CpsRam660[sekAddress];
-}
-
-void __fastcall CPSExtraNVRAMWriteByte(UINT32 sekAddress, UINT8 byteValue)
-{
-// bprintf(PRINT_NORMAL, _T(" - 0x%06X -> %02X\n"), sekAddress, byteValue);
-
- sekAddress &= 0x3FFF;
- CpsRam660[sekAddress] = byteValue;
-}
-#endif
-
-// ----------------------------------------------------------------------------
-
-/*
-INT32 prevline;
-
-void __fastcall CpsWriteSpriteByte(UINT32 sekAddress, UINT8 byteValue)
-{
- if (prevline != SekCurrentScanline()) {
- prevline = SekCurrentScanline();
-// bprintf(PRINT_NORMAL, _T(" - sb (%3i)\n"), prevline);
- }
-
- sekAddress &= 0x1FFF;
- CpsRam708[sekAddress + nCpsObjectBank * 0x8000] = byteValue;
-}
-
-void __fastcall CpsWriteSpriteWord(UINT32 sekAddress, UINT16 wordValue)
-{
- if (prevline != SekCurrentScanline()) {
- prevline = SekCurrentScanline();
-// bprintf(PRINT_NORMAL, _T(" - sw (%3i)\n"), prevline);
- }
-
- sekAddress &= 0x1FFE;
- CpsRam708[sekAddress + nCpsObjectBank * 0x8000 + 1] = wordValue >> 8;
- CpsRam708[sekAddress + nCpsObjectBank * 0x8000 + 0] = wordValue & 255;
-}
-*/
-
-// ----------------------------------------------------------------------------
-
-UINT8 __fastcall haxx0rReadByte(UINT32 sekAddress)
-{
- sekAddress &= 0xFFFF;
- bprintf(PRINT_NORMAL, _T(" QS %06X read (%02X)\n"), sekAddress, CpsEncZRom[sekAddress]);
- return CpsEncZRom[sekAddress];
-}
-
-INT32 CpsMemInit()
-{
- if (AllocateMemory()) {
- return 1;
- }
-
- SekOpen(0);
-
- SekSetResetCallback(CPSResetCallback);
-
- // Map in memory:
- // 68000 Rom (as seen as is, through read)
- SekMapMemory(CpsRom, 0, nCpsRomLen - 1, MAP_READ);
-
- // 68000 Rom (as seen decrypted, through fetch)
- if (nCpsCodeLen > 0) {
- // Decoded part (up to nCpsCodeLen)
- SekMapMemory(CpsCode, 0, nCpsCodeLen - 1, MAP_FETCH);
- }
- if (nCpsRomLen > nCpsCodeLen) {
- // The rest (up to nCpsRomLen)
- SekMapMemory(CpsRom + nCpsCodeLen, nCpsCodeLen, nCpsRomLen - 1, MAP_FETCH);
- }
-
- if (Cps == 2) {
- nCpsObjectBank = -1;
- CpsMapObjectBanks(0);
-
-#if 0
- SekMapHandler(3, 0x660000, 0x663FFF, MAP_RAM);
- SekSetReadByteHandler(3, CPSExtraNVRAMReadByte);
- SekSetWriteByteHandler(3, CPSExtraNVRAMWriteByte);
-#else
- SekMapMemory(CpsRam660, 0x660000, 0x663FFF, MAP_RAM);
-#endif
-
-// SekMapHandler(4, 0x708000, 0x709FFF, MAP_WRITE);
-// SekMapHandler(4, 0x70A000, 0x70BFFF, MAP_WRITE);
-// SekMapHandler(4, 0x70C000, 0x70DFFF, MAP_WRITE);
-// SekMapHandler(4, 0x70E000, 0x70FFFF, MAP_WRITE);
-
-// SekSetWriteByteHandler(4, CpsWriteSpriteByte);
-// SekSetWriteWordHandler(4, CpsWriteSpriteWord);
- }
-
- SekMapMemory(CpsRam90, 0x900000, 0x92FFFF, MAP_RAM); // Gfx Ram
- SekMapMemory(CpsRamFF, 0xFF0000, 0xFFFFFF, MAP_RAM); // Work Ram
-
- SekSetReadByteHandler(0, CpsReadByte);
- SekSetWriteByteHandler(0, CpsWriteByte);
- SekSetReadWordHandler(0, CpsReadWord);
- SekSetWriteWordHandler(0, CpsWriteWord);
-
- // QSound
- if ((Cps == 2) && !Cps2DisableQSnd) {
- SekMapHandler(1, 0x618000, 0x619FFF, MAP_RAM);
-
- SekSetReadByteHandler(1, CPSQSoundC0ReadByte);
- SekSetWriteByteHandler(1, CPSQSoundC0WriteByte);
- }
-
- if (Cps1Qs == 1) {
- // Map the 1st 32KB of the QSound ROM into the 68K address space
- for (INT32 i = 0x7FFF; i >= 0; i--) {
- CpsEncZRom[(i << 1) + 0] = CpsEncZRom[i];
- CpsEncZRom[(i << 1) + 1] = 0xFF;
- }
- SekMapMemory(CpsEncZRom, 0xF00000, 0xF0FFFF, MAP_ROM);
-
- // QSound shared RAM
- SekMapHandler(1, 0xF18000, 0xF19FFF, MAP_RAM);
- SekMapHandler(2, 0xF1E000, 0xF1FFFF, MAP_RAM);
-
- SekSetReadByteHandler(1, CPSQSoundC0ReadByte);
- SekSetWriteByteHandler(1, CPSQSoundC0WriteByte);
- SekSetReadByteHandler(2, CPSQSoundF0ReadByte);
- SekSetWriteByteHandler(2, CPSQSoundF0WriteByte);
- }
-
- SekClose();
-
- return 0;
-}
-
-INT32 CpsMemExit()
-{
-#if 0
- FILE* fp = fopen("mem.raw", "wb");
- if (fp) {
- fwrite(CpsRam660, 1, 0x4000, fp);
- fclose(fp);
- }
-#endif
-
- // Deallocate all used memory
- BurnFree(CpsMem);
-
- CpsMemScanCallbackFunction = NULL;
-
- return 0;
-}
-
-static INT32 ScanRam()
-{
- // scan ram:
- struct BurnArea ba;
- memset(&ba, 0, sizeof(ba));
-
- ba.Data = CpsRam90; ba.nLen = 0x030000; ba.szName = "CpsRam90"; BurnAcb(&ba);
- ba.Data = CpsRamFF; ba.nLen = 0x010000; ba.szName = "CpsRamFF"; BurnAcb(&ba);
- ba.Data = CpsReg; ba.nLen = 0x000100; ba.szName = "CpsReg"; BurnAcb(&ba);
-
- if (((Cps == 2) && !Cps2DisableQSnd) || Cps1Qs == 1) {
- ba.Data = CpsZRamC0; ba.nLen = 0x001000; ba.szName = "CpsZRamC0"; BurnAcb(&ba);
- ba.Data = CpsZRamF0; ba.nLen = 0x001000; ba.szName = "CpsZRamF0"; BurnAcb(&ba);
- }
-
- if (Cps == 2) {
- ba.Data = CpsRam708; ba.nLen = 0x010000; ba.szName = "CpsRam708"; BurnAcb(&ba);
- ba.Data = CpsFrg; ba.nLen = 0x000010; ba.szName = "CpsFrg"; BurnAcb(&ba);
- }
-
- return 0;
-}
-
-// Scan the current state of the CPS1/2 machine
-INT32 CpsAreaScan(INT32 nAction, INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (CpsMem == NULL) {
- return 1;
- }
-
- if (pnMin) { // Return minimum compatible version
- *pnMin = 0x029521;
- }
-
- if (nAction & ACB_MEMORY_ROM) {
- memset(&ba, 0, sizeof(ba));
- ba.Data = CpsRom;
- ba.nLen = nCpsRomLen;
- ba.szName = "CpsRom";
- BurnAcb(&ba);
-
- if (nCpsZRomLen) {
- ba.Data = CpsZRom;
- ba.nLen = nCpsZRomLen;
- ba.szName = "CpsZRom";
- BurnAcb(&ba);
- }
- }
-
- if (Cps == 2 || Cps1Qs == 1 || PangEEP == 1 || CpsBootlegEEPROM == 1) { // Scan EEPROM
- EEPROMScan(nAction, pnMin);
- }
-
- if (nAction & ACB_MEMORY_RAM) {
-
- ScanRam();
-
- if (Cps == 2) {
- memset(&ba, 0, sizeof(ba));
- ba.Data = CpsRam660;
- ba.nLen = 0x004000;
- ba.szName = "CpsRam660";
- BurnAcb(&ba);
- }
- }
-
-
- if (nAction & ACB_DRIVER_DATA) { // Scan volatile variables/registers/RAM
-
- SekScan(nAction); // Scan 68000 state
-
- if (Cps1OverrideLayers) {
- SCAN_VAR(nCps1Layers);
- SCAN_VAR(nCps1LayerOffs);
- }
-
- if (nAction & ACB_WRITE) { // Palette could have changed
- CpsRecalcPal = 1;
- }
- }
-
- if (((Cps == 2) && !Cps2DisableQSnd) || Cps1Qs == 1) { // Scan QSound chips
- QsndScan(nAction);
- } else { // Scan PSound chips
- if ((Cps & 1) && !Cps1DisablePSnd) PsndScan(nAction);
- }
-
- if (CpsMemScanCallbackFunction) {
- CpsMemScanCallbackFunction(nAction, pnMin);
- }
-
- return 0;
-}
diff --git a/jan/src/burn/drv/capcom/cps_obj.cpp b/jan/src/burn/drv/capcom/cps_obj.cpp
deleted file mode 100644
index cd316e1a7..000000000
--- a/jan/src/burn/drv/capcom/cps_obj.cpp
+++ /dev/null
@@ -1,869 +0,0 @@
-#include "cps.h"
-// CPS Objs (sprites)
-
-INT32 nCpsObjectBank;
-INT32 Sfa2ObjHack = 0;
-
-UINT8 *CpsBootlegSpriteRam = NULL;
-
-INT32 Cps1LockSpriteList910000 = 0;
-INT32 Cps1DetectEndSpriteList8000 = 0;
-
-Cps1ObjGetCallback Cps1ObjGetCallbackFunction = NULL;
-Cps1ObjDrawCallback Cps1ObjDrawCallbackFunction = NULL;
-
-// Our copy of the sprite table
-static UINT8 *ObjMem = NULL;
-
-static INT32 nMax = 0;
-static INT32 nGetNext = 0;
-
-static INT32 nMaxZValue;
-static INT32 nMaxZMask;
-
-static INT32 nZOffset;
-
-// Object frames, so you can lag the Objs by nFrameCount-1 frames
-struct ObjFrame {
- INT32 nShiftX, nShiftY;
- UINT8* Obj;
- INT32 nCount;
-};
-
-static INT32 nFrameCount = 0;
-static struct ObjFrame of[3];
-
-static UINT8 *blendtable;
-
-static void CpsBlendInit()
-{
- blendtable = NULL;
-
- TCHAR filename[MAX_PATH];
-
- _stprintf(filename, _T("%s%s.bld"), szAppBlendPath, BurnDrvGetText(DRV_NAME));
-
- FILE *fa = _tfopen(filename, _T("rt"));
-
- if (fa == NULL) {
- _stprintf(filename, _T("%s%s.bld"), szAppBlendPath, BurnDrvGetText(DRV_PARENT));
-
- fa = _tfopen(filename, _T("rt"));
-
- if (fa == NULL) {
- return;
- }
- }
-
- bprintf (PRINT_IMPORTANT, _T("Using sprite blending (.bld) table!\n"));
-
- blendtable = (UINT8*)BurnMalloc(0x40000); // maximum number of sprites
- memset (blendtable, 0, 0x40000); // no blend
-
- char szLine[64];
-
- INT32 table[4] = { 0, 0xff-0x3f, 0xff-0x7f, 0xff-0x7f }; // last one 7f?
-
- while (1)
- {
- if (fgets (szLine, 64, fa) == NULL) break;
-
- if (strncmp ("Game", szLine, 4) == 0) continue; // don't care
- if (strncmp ("Name", szLine, 4) == 0) continue; // don't care
- if (szLine[0] == ';') continue; // comment (also don't care)
-
- INT32 type, single_entry = -1;
- UINT32 min,max,k;
-
- for (k = 0; k < strlen(szLine); k++) {
- if (szLine[k] == '-') { single_entry = k+1; break; }
- }
-
- if (single_entry < 0) {
- sscanf(szLine,"%x %d",&max,&type);
- min = max;
- } else {
- sscanf(szLine,"%x",&min);
- sscanf(szLine+single_entry,"%x %d",&max,&type);
- }
-
- for (k = min; k <= max; k++) {
- if (k < 0x40000)
- blendtable[k] = table[type&3];
- }
- }
-
- fclose (fa);
-}
-
-INT32 CpsObjInit()
-{
- if (bBurnUseBlend) CpsBlendInit();
-
- nMax = 0x100; // CPS1 has 256 sprites
-
- if (Cps == 2) { // CPS2 has 1024 sprites
- nMax = 0x400;
- }
-
- nFrameCount = 2; // CPS2 sprites lagged by 1 frame and double buffered
- // CPS1 sprites lagged by 1 frame
-
- ObjMem = (UINT8*)BurnMalloc((nMax << 3) * nFrameCount);
- if (ObjMem == NULL) {
- return 1;
- }
-
- // Set up the frame buffers
- for (INT32 i = 0; i < nFrameCount; i++) {
- of[i].Obj = ObjMem + (nMax << 3) * i;
- of[i].nCount = 0;
- }
-
- nGetNext=0;
-
- if (Cps == 2) {
- memset(ZBuf, 0, 384 * 224 * 2);
- nMaxZMask = nZOffset = 0;
- nMaxZValue = 1;
- }
-
- return 0;
-}
-
-INT32 CpsObjExit()
-{
- if (blendtable)
- BurnFree(blendtable);
-
- for (INT32 i = 0; i < nFrameCount; i++) {
- of[i].Obj = NULL;
- of[i].nCount = 0;
- }
-
- BurnFree(ObjMem);
-
- nFrameCount = 0;
- nMax = 0;
-
- Cps1DetectEndSpriteList8000 = 0;
-
- Cps1ObjGetCallbackFunction = NULL;
- Cps1ObjDrawCallbackFunction = NULL;
-
- return 0;
-}
-
-// Get CPS sprites into Obj
-INT32 CpsObjGet()
-{
- INT32 i;
- UINT8 *pg, *po;
- struct ObjFrame* pof;
- UINT8* Get = NULL;
-
- if (Cps1ObjGetCallbackFunction) {
- return Cps1ObjGetCallbackFunction();
- }
-
- pof = of + nGetNext;
-
- pof->nCount = 0;
-
- po = pof->Obj;
- pof->nShiftX = -0x40;
- pof->nShiftY = -0x10;
-
- if (Cps == 2) {
- Get = CpsRam708 + ((nCpsObjectBank ^ 1) << 15); // Select CPS2 sprite buffer
-// Get = CpsRam708 + ((GetCurrentFrame() & 1) << 15); // Select CPS2 sprite buffer
-
- pof->nShiftX = -CpsSaveFrg[0][0x9];
- pof->nShiftY = -CpsSaveFrg[0][0xB];
- } else {
- INT32 nOff = BURN_ENDIAN_SWAP_INT16(*((UINT16*)(CpsReg + 0x00))) << 8;
- nOff &= 0xfff800;
- Get = CpsFindGfxRam(nOff, 0x800);
-
- if (Cps1LockSpriteList910000) {
- Get = CpsFindGfxRam(0x910000, 0x800);
- }
- }
-
- if (Get==NULL) return 1;
-
- // Make a copy of all active sprites in the list
- for (pg = Get, i = 0; i < nMax; pg += 8, i++) {
- UINT16* ps = (UINT16*)pg;
-
- if (Cps == 2) {
- if (BURN_ENDIAN_SWAP_INT16(ps[1]) & 0x8000) { // end of sprite list
- break;
- }
- if (BURN_ENDIAN_SWAP_INT16(ps[3]) >= 0xff00) { // end of sprite list (ringdest)
- break;
- }
- } else {
- if (BURN_ENDIAN_SWAP_INT16(ps[3]) >= 0xff00) { // end of sprite list
- break;
- }
- if (Cps1DetectEndSpriteList8000) {
- if (BURN_ENDIAN_SWAP_INT16(ps[1]) & 0x8000) {
- break;
- }
- }
- }
-
- if ((BURN_ENDIAN_SWAP_INT16(ps[0]) | BURN_ENDIAN_SWAP_INT16(ps[3])) == 0) { // sprite blank
- continue;
- }
-
- // Okay - this sprite is active:
- memcpy(po, pg, 8); // copy it over
-
- pof->nCount++;
- po += 8;
- }
-
- nGetNext++;
- if (nGetNext >= nFrameCount) {
- nGetNext = 0;
- }
-
- return 0;
-}
-
-void CpsObjDrawInit()
-{
- nZOffset = nMaxZMask;
-
- if (nZOffset >= 0xFC00) {
- // The Z buffer might moverflow the next fram, so initialise it
- memset(ZBuf, 0, 384 * 224 * 2);
- nZOffset = 0;
- }
-
- nMaxZValue = nZOffset + 1;
- nMaxZMask = nZOffset;
-
- return;
-}
-
-INT32 Cps1ObjDraw(INT32 nLevelFrom,INT32 nLevelTo)
-{
- INT32 i; UINT16 *ps; INT32 nPsAdd;
- struct ObjFrame *pof;
- (void)nLevelFrom; (void)nLevelTo;
-
- if (Cps1ObjDrawCallbackFunction) {
- return Cps1ObjDrawCallbackFunction(nLevelFrom, nLevelTo);
- }
-
- // Draw the earliest frame we have in history
- pof=of+nGetNext;
-
- // Point to Obj list
- ps=(UINT16 *)pof->Obj;
-
- if (!CpsDrawSpritesInReverse) {
- ps+=(pof->nCount-1)<<2; nPsAdd=-4; // CPS1 is reversed
- } else {
- nPsAdd=4;
- }
-
- // Go through all the Objs
- for (i=0; inCount; i++,ps+=nPsAdd) {
- INT32 x,y,n,a,bx,by,dx,dy; INT32 nFlip;
-
- x = BURN_ENDIAN_SWAP_INT16(ps[0]); y = BURN_ENDIAN_SWAP_INT16(ps[1]); n = BURN_ENDIAN_SWAP_INT16(ps[2]); a = BURN_ENDIAN_SWAP_INT16(ps[3]);
-
- // Find out sprite size
- bx=((a>> 8)&15)+1;
- by=((a>>12)&15)+1;
-
- n = GfxRomBankMapper(GFXTYPE_SPRITES, n);
- if (n == -1) continue;
-
- n |= (y & 0x6000) << 3; // high bits of address
-
- // CPS1 coords are 9 bit signed?
- x&=0x01ff; if (x>=0x1c0) x-=0x200;
- y&=0x01ff; y^=0x100; y-=0x100;
-
- x+=pof->nShiftX;
- y+=pof->nShiftY;
-
- // Find the palette for the tiles on this sprite
- CpstPal = CpsPal + ((a & 0x1F) << 4);
-
- nFlip=(a>>5)&3;
-
- // Take care with tiles if the sprite goes off the screen
- if (x<0 || y<0 || x+(bx<<4)>384 || y+(by<<4)>224) {
- nCpstType=CTT_16X16 | CTT_CARE;
- } else {
- nCpstType=CTT_16X16;
- }
-
- nCpstFlip=nFlip;
- for (dy=0;dyObj + nPsAdd * (nMaxZValue - nZOffset - 1);
- nCount = nZOffset + pof->nCount;
-
- // Go through all the Objs
- for (ZValue = (UINT16)nMaxZValue; ZValue <= nCount; ZValue++, ps += nPsAdd) {
- INT32 x, y, n, a, bx, by, dx, dy;
- INT32 nFlip;
- INT32 v = BURN_ENDIAN_SWAP_INT16(ps[0]) >> 13;
-
- if ((nSpriteEnable & (1 << v)) == 0) {
- continue;
- }
-
- // Check if sprite is between these levels
- if (v > nLevelTo) {
- bMask = 1;
- continue;
- }
- if (v < nLevelFrom) {
- continue;
- }
-
- if (bMask) {
- nMaxZMask = ZValue;
- } else {
- nMaxZValue = ZValue;
- }
-
- // Select CpstOne function;
- if (bMask || nMaxZMask > nMaxZValue) {
- pCpstOne = CpstOneObjDoX[1];
- } else {
- pCpstOne = CpstOneObjDoX[0];
- }
-
- x = BURN_ENDIAN_SWAP_INT16(ps[0]);
- y = BURN_ENDIAN_SWAP_INT16(ps[1]);
- n = BURN_ENDIAN_SWAP_INT16(ps[2]);
- a = BURN_ENDIAN_SWAP_INT16(ps[3]);
-
- if (a & 0x80) { // marvel vs capcom ending sprite off-set
- x += CpsSaveFrg[0][0x9];
- }
-
- // CPS2 coords are 10 bit signed (-512 to 511)
- x &= 0x03FF; x ^= 0x200; x -= 0x200;
- y &= 0x03FF; y ^= 0x200; y -= 0x200;
-
-#if 0
- // This *MAY* be needed to get correct sprite positions when raster interrups are used.
- if (nRasterline[1]) {
- for (INT32 i = 1; i < MAX_RASTER; i++) {
- if ((y < nRasterline[i]) || (nRasterline[i] == 0)) {
- x -= CpsSaveFrg[i - 1][0x09];
- y -= CpsSaveFrg[i - 1][0x0B];
- break;
- }
- }
- } else {
- x -= CpsSaveFrg[0][0x9];
- y -= CpsSaveFrg[0][0xB];
- }
-#else
- // Ignore sprite offsets when raster interrupts are used (seems to work for all games).
- x += pof->nShiftX;
- y += pof->nShiftY;
-
-// x -= CpsSaveFrg[0][0x9];
-// y -= CpsSaveFrg[0][0xB];
-
-#endif
- n |= (BURN_ENDIAN_SWAP_INT16(ps[1]) & 0x6000) << 3; // high bits of address
-
- // Find the palette for the tiles on this sprite
- CpstPal = CpsPal + ((a & 0x1F) << 4);
-
- nFlip = (a >> 5) & 3;
- // Find out sprite size
- bx = ((a >> 8) & 15) + 1;
- by = ((a >> 12) & 15) + 1;
-
- // Take care with tiles if the sprite goes off the screen
- if (x < 0 || y < 0 || x + (bx << 4) > 383 || y + (by << 4) > 223) {
- nCpstType = CTT_16X16 | CTT_CARE;
- } else {
- nCpstType = CTT_16X16;
- }
-
-// if (v == 0) {
-// bprintf(PRINT_IMPORTANT, _T(" - %4i: 0x%04X 0x%04X 0x%04X 0x%04X\n"), ZValue - (UINT16)nMaxZValue, ps[0], ps[1], ps[2], ps[3]);
-// }
-
- nCpstFlip = nFlip;
- for (dy = 0; dy < by; dy++) {
- for (dx = 0; dx < bx; dx++) {
- INT32 ex, ey;
-
- if (nFlip & 1) {
- ex = (bx - dx - 1);
- } else {
- ex = dx;
- }
-
- if (nFlip & 2) {
- ey = (by - dy - 1);
- } else {
- ey = dy;
- }
-
- nCpstX = x + (ex << 4);
- nCpstY = y + (ey << 4);
-
-// nCpstTile = n + (dy << 4) + dx; // normal version
- nCpstTile = (n & ~0x0F) + (dy << 4) + ((n + dx) & 0x0F); // pgear fix
-
- if (Sfa2ObjHack) {
- // hack to not render blue squares on high score screen after name entry - they should be hidden by priority from what I can see
- if (nCpstTile == 0x1a410 && (a & 0x1f) == 0 && (nCpstX == 0x40 || nCpstX == 0x100) && nCpstY == 0x50 && v == 0 && nLevelFrom == 0 && nLevelTo == 0) continue;
- if (nCpstTile == 0x1a411 && (a & 0x1f) == 0 && (nCpstX == 0x50 || nCpstX == 0x110) && nCpstY == 0x50 && v == 0 && nLevelFrom == 0 && nLevelTo == 0) continue;
- //if (ps[2] == 0xa410) bprintf(PRINT_NORMAL, _T("%x, %x, %x, %x, %x, %x, %x\n"), nCpstTile, a & 0x1f, nCpstX, nCpstY, v, nLevelFrom, nLevelTo);
- }
-
- nCpsBlend = (blendtable) ? blendtable[nCpstTile] : 0;
- nCpstTile <<= 7; // Find real tile address
-
- pCpstOne();
- nCpsBlend = 0;
- }
- }
- }
-
- return 0;
-}
-
-// Final crash sprites
-
-INT32 FcrashObjGet()
-{
- INT32 i;
- UINT8 *pg, *po;
- struct ObjFrame* pof;
- UINT8* Get = NULL;
-
- pof = of + nGetNext;
-
- pof->nCount = 0;
-
- po = pof->Obj;
- pof->nShiftX = -0x40;
- pof->nShiftY = -0x10;
-
- Get = CpsRam90 + 0x50c8;
-
- if (Get==NULL) return 1;
-
- // Make a copy of all active sprites in the list
- for (pg = Get, i = 0; i < nMax; pg += 8, i++) {
- UINT16* ps = (UINT16*)pg;
- INT32 n, y, x, a;
-
- y = BURN_ENDIAN_SWAP_INT16(ps[-1]);
-
- if (y == 0x8000) { // end of sprite list
- break;
- }
-
- n = BURN_ENDIAN_SWAP_INT16(ps[0]);
- a = BURN_ENDIAN_SWAP_INT16(ps[1]);
- x = BURN_ENDIAN_SWAP_INT16(ps[2]);
-
- po[0] = n & 0xff;
- po[1] = n >> 8;
- po[2] = a & 0xff;
- po[3] = a >> 8;
- po[4] = x & 0xff;
- po[5] = x >> 8;
- po[6] = y & 0xff;
- po[7] = y >> 8;
-
- pof->nCount++;
- po += 8;
- }
-
- nGetNext++;
- if (nGetNext >= nFrameCount) {
- nGetNext = 0;
- }
-
- return 0;
-}
-
-INT32 KodbObjGet()
-{
- INT32 i;
- UINT8 *pg, *po;
- struct ObjFrame* pof;
- UINT8* Get = NULL;
-
- pof = of + nGetNext;
-
- pof->nCount = 0;
-
- po = pof->Obj;
- pof->nShiftX = -0x40;
- pof->nShiftY = -0x10;
-
- Get = CpsBootlegSpriteRam + 0x1000;
-
- if (Get==NULL) return 1;
-
- // Make a copy of all active sprites in the list
- for (pg = Get, i = 0; i < nMax; pg += 8, i++) {
- UINT16* ps = (UINT16*)pg;
- INT32 n, y, x, a;
-
- y = BURN_ENDIAN_SWAP_INT16(ps[-1]);
-
- if (y == 0xffff) { // end of sprite list
- break;
- }
-
- n = BURN_ENDIAN_SWAP_INT16(ps[0]);
- a = BURN_ENDIAN_SWAP_INT16(ps[1]);
- x = BURN_ENDIAN_SWAP_INT16(ps[2]);
-
- po[0] = n & 0xff;
- po[1] = n >> 8;
- po[2] = a & 0xff;
- po[3] = a >> 8;
- po[4] = x & 0xff;
- po[5] = x >> 8;
- po[6] = y & 0xff;
- po[7] = y >> 8;
-
- pof->nCount++;
- po += 8;
- }
-
- nGetNext++;
- if (nGetNext >= nFrameCount) {
- nGetNext = 0;
- }
-
- return 0;
-}
-
-INT32 DinopicObjGet()
-{
- INT32 i;
- UINT8 *pg, *po;
- struct ObjFrame* pof;
- UINT8* Get = NULL;
-
- pof = of + nGetNext;
-
- pof->nCount = 0;
-
- po = pof->Obj;
- pof->nShiftX = -0x40;
- pof->nShiftY = -0x10;
-
- Get = CpsBootlegSpriteRam + 0x1000;
-
- if (Get==NULL) return 1;
-
- // Make a copy of all active sprites in the list
- for (pg = Get, i = 0; i < nMax; pg += 8, i++) {
- UINT16* ps = (UINT16*)pg;
- INT32 n, y, x, a;
-
- y = BURN_ENDIAN_SWAP_INT16(ps[-1]);
-
- if (y == 0x8000) { // end of sprite list
- break;
- }
-
- n = BURN_ENDIAN_SWAP_INT16(ps[0]);
- a = BURN_ENDIAN_SWAP_INT16(ps[1]);
- x = BURN_ENDIAN_SWAP_INT16(ps[2]);
-
- po[0] = n & 0xff;
- po[1] = n >> 8;
- po[2] = a & 0xff;
- po[3] = a >> 8;
- po[4] = x & 0xff;
- po[5] = x >> 8;
- po[6] = y & 0xff;
- po[7] = y >> 8;
-
- pof->nCount++;
- po += 8;
- }
-
- nGetNext++;
- if (nGetNext >= nFrameCount) {
- nGetNext = 0;
- }
-
- return 0;
-}
-
-INT32 DaimakaibObjGet()
-{
- INT32 i;
- UINT8 *pg, *po;
- struct ObjFrame* pof;
- UINT8* Get = NULL;
-
- pof = of + nGetNext;
-
- pof->nCount = 0;
-
- po = pof->Obj;
- pof->nShiftX = -0x40;
- pof->nShiftY = -0x10;
-
- // writes a blank sprite, followed by end of sprite list marker, start at 0x10 to ignore these
- Get = CpsBootlegSpriteRam + 0x1010;
-
- if (Get==NULL) return 1;
-
- // Make a copy of all active sprites in the list
- for (pg = Get, i = 0; i < nMax; pg += 8, i++) {
- UINT16* ps = (UINT16*)pg;
- INT32 n, y, x, a;
-
- y = BURN_ENDIAN_SWAP_INT16(ps[-1]);
-
- if (y == 0x8000) { // end of sprite list
- break;
- }
-
- n = BURN_ENDIAN_SWAP_INT16(ps[0]);
- a = BURN_ENDIAN_SWAP_INT16(ps[1]);
- x = BURN_ENDIAN_SWAP_INT16(ps[2]);
-
- n = GfxRomBankMapper(GFXTYPE_SPRITES, n);
- if (n == -1) continue;
-
- n |= (y & 0x6000) << 3; // high bits of address
-
- po[0] = n & 0xff;
- po[1] = n >> 8;
- po[2] = a & 0xff;
- po[3] = a >> 8;
- po[4] = x & 0xff;
- po[5] = x >> 8;
- po[6] = y & 0xff;
- po[7] = y >> 8;
-
- pof->nCount++;
- po += 8;
- }
-
- nGetNext++;
- if (nGetNext >= nFrameCount) {
- nGetNext = 0;
- }
-
- return 0;
-}
-
-INT32 WofhObjGet()
-{
- INT32 i;
- UINT8 *pg, *po;
- struct ObjFrame* pof;
- UINT8* Get = NULL;
-
- pof = of + nGetNext;
-
- pof->nCount = 0;
-
- po = pof->Obj;
- pof->nShiftX = -0x40;
- pof->nShiftY = -0x10;
-
- Get = CpsRam90 + 0x1000;
-
- if (Get==NULL) return 1;
-
- // Make a copy of all active sprites in the list
- for (pg = Get, i = 0; i < nMax; pg += 8, i++) {
- UINT16* ps = (UINT16*)pg;
- INT32 n, y, x, a;
-
- y = BURN_ENDIAN_SWAP_INT16(ps[-1]);
-
- if (y == 0x8000) { // end of sprite list
- break;
- }
-
- n = BURN_ENDIAN_SWAP_INT16(ps[0]);
- a = BURN_ENDIAN_SWAP_INT16(ps[1]);
- x = BURN_ENDIAN_SWAP_INT16(ps[2]);
-
- po[0] = n & 0xff;
- po[1] = n >> 8;
- po[2] = a & 0xff;
- po[3] = a >> 8;
- po[4] = x & 0xff;
- po[5] = x >> 8;
- po[6] = y & 0xff;
- po[7] = y >> 8;
-
- pof->nCount++;
- po += 8;
- }
-
- nGetNext++;
- if (nGetNext >= nFrameCount) {
- nGetNext = 0;
- }
-
- return 0;
-}
-
-INT32 Sf2mdtObjGet()
-{
- INT32 i;
- UINT8 *pg, *po;
- struct ObjFrame* pof;
- UINT8* Get = NULL;
-
- pof = of + nGetNext;
-
- pof->nCount = 0;
-
- po = pof->Obj;
- pof->nShiftX = -0x40;
- pof->nShiftY = -0x10;
-
- Get = CpsBootlegSpriteRam + 0x1000;
-
- if (Get==NULL) return 1;
-
- // Make a copy of all active sprites in the list
- for (pg = Get, i = 0; i < nMax; pg += 8, i++) {
- UINT16* ps = (UINT16*)pg;
- INT32 n, y, x, a;
-
- y = BURN_ENDIAN_SWAP_INT16(ps[-1]);
-
- if (y == 0x8000) { // end of sprite list
- break;
- }
-
- n = BURN_ENDIAN_SWAP_INT16(ps[0]);
- a = BURN_ENDIAN_SWAP_INT16(ps[1]);
- x = BURN_ENDIAN_SWAP_INT16(ps[2]) + 0x03;
-
- po[0] = n & 0xff;
- po[1] = n >> 8;
- po[2] = a & 0xff;
- po[3] = a >> 8;
- po[4] = x & 0xff;
- po[5] = x >> 8;
- po[6] = y & 0xff;
- po[7] = y >> 8;
-
- pof->nCount++;
- po += 8;
- }
-
- nGetNext++;
- if (nGetNext >= nFrameCount) {
- nGetNext = 0;
- }
-
- return 0;
-}
-
-INT32 FcrashObjDraw(INT32 nLevelFrom,INT32 nLevelTo)
-{
- INT32 i; UINT16 *ps; INT32 nPsAdd;
- struct ObjFrame *pof;
- (void)nLevelFrom; (void)nLevelTo;
-
- // Draw the earliest frame we have in history
- pof=of+nGetNext;
-
- // Point to Obj list
- ps=(UINT16 *)pof->Obj;
-
- nPsAdd=4;
-
- // Go through all the Objs
- for (i=0; inCount; i++,ps+=nPsAdd) {
- INT32 x,y,n,a; INT32 nFlip;
-
- n = BURN_ENDIAN_SWAP_INT16(ps[0]);
- a = BURN_ENDIAN_SWAP_INT16(ps[1]);
- x = BURN_ENDIAN_SWAP_INT16(ps[2]);
- y = BURN_ENDIAN_SWAP_INT16(ps[3]);
-
- x &= 0x1ff;
- y &= 0x1ff;
-
- x -= 16;
- y = 224 - y;
-
- // Find the palette for the tiles on this sprite
- CpstPal = CpsPal + ((a & 0x1F) << 4);
-
- nFlip=(a>>5)&3;
-
- // Take care with tiles if the sprite goes off the screen
- if (x<0 || y<0 || x+(1<<4)>384 || y+(1<<4)>224) {
- nCpstType=CTT_16X16 | CTT_CARE;
- } else {
- nCpstType=CTT_16X16;
- }
-
- nCpstFlip=nFlip;
- nCpstX=x;
- nCpstY=y;
- nCpstTile = n;
- nCpstTile <<= 7;
- CpstOneObjDoX[0]();
- }
-
- return 0;
-}
diff --git a/jan/src/burn/drv/capcom/cps_pal.cpp b/jan/src/burn/drv/capcom/cps_pal.cpp
deleted file mode 100644
index 03c2c2e64..000000000
--- a/jan/src/burn/drv/capcom/cps_pal.cpp
+++ /dev/null
@@ -1,73 +0,0 @@
-#include "cps.h"
-#include "bitswap.h"
-
-// CPS (palette)
-
-static UINT8* CpsPalSrc = NULL; // Copy of current input palette
-UINT32* CpsPal = NULL; // Hicolor version of palette
-INT32 nCpsPalCtrlReg;
-INT32 bCpsUpdatePalEveryFrame = 0; // Some of the hacks need this as they don't write to CpsReg 0x0a
-
-INT32 CpsPalInit()
-{
- INT32 nLen = 0;
-
- nLen = 0xc00 * sizeof(UINT16);
- CpsPalSrc = (UINT8*)BurnMalloc(nLen);
- if (CpsPalSrc == NULL) {
- return 1;
- }
- memset(CpsPalSrc, 0, nLen);
-
- nLen = 0xc00 * sizeof(UINT32);
- CpsPal = (UINT32*)BurnMalloc(nLen);
- if (CpsPal == NULL) {
- return 1;
- }
-
- return 0;
-}
-
-INT32 CpsPalExit()
-{
- BurnFree(CpsPal);
- BurnFree(CpsPalSrc);
- return 0;
-}
-
-// Update CpsPal with the new palette at pNewPal (length 0xc00 bytes)
-INT32 CpsPalUpdate(UINT8* pNewPal)
-{
- UINT16 *ps, *pn;
-
- ps = (UINT16*)CpsPalSrc;
- pn = (UINT16*)pNewPal;
-
- memcpy(ps, pn, 0xc00 * sizeof(UINT16));
-
- INT32 nCtrl = CpsReg[nCpsPalCtrlReg];
- UINT16 *PaletteRAM = (UINT16*)CpsPalSrc;
-
- for (INT32 nPage = 0; nPage < 6; nPage++) {
- if (BIT(nCtrl, nPage)) {
- for (INT32 Offset = 0; Offset < 0x200; ++Offset) {
- INT32 Palette = BURN_ENDIAN_SWAP_INT16(*(PaletteRAM++));
- INT32 r, g, b, Bright;
-
- Bright = 0x0f + ((Palette >> 12) << 1);
-
- r = ((Palette >> 8) & 0x0f) * 0x11 * Bright / 0x2d;
- g = ((Palette >> 4) & 0x0f) * 0x11 * Bright / 0x2d;
- b = ((Palette >> 0) & 0x0f) * 0x11 * Bright / 0x2d;
-
- CpsPal[(0x200 * nPage) + (Offset ^ 15)] = BurnHighCol(r, g, b, 0);
- }
- } else {
- if (PaletteRAM != (UINT16*)CpsPalSrc) {
- PaletteRAM += 0x200;
- }
- }
- }
-
- return 0;
-}
diff --git a/jan/src/burn/drv/capcom/cps_run.cpp b/jan/src/burn/drv/capcom/cps_run.cpp
deleted file mode 100644
index c81adaa1f..000000000
--- a/jan/src/burn/drv/capcom/cps_run.cpp
+++ /dev/null
@@ -1,530 +0,0 @@
-// CPS - Run
-#include "cps.h"
-
-// Inputs:
-UINT8 CpsReset = 0;
-UINT8 Cpi01A = 0, Cpi01C = 0, Cpi01E = 0;
-
-static INT32 nInterrupt;
-static INT32 nIrqLine, nIrqCycles;
-static bool bEnableAutoIrq50, bEnableAutoIrq52; // Trigger an interrupt every 32 scanlines
-
-static const INT32 nFirstLine = 0x10; // The first scanline of the display
-
-static INT32 nCpsCyclesExtra;
-
-INT32 CpsDrawSpritesInReverse = 0;
-
-INT32 nIrqLine50, nIrqLine52;
-
-INT32 nCpsNumScanlines = 259;
-INT32 Cps1VBlankIRQLine = 2;
-
-CpsRunInitCallback CpsRunInitCallbackFunction = NULL;
-CpsRunInitCallback CpsRunExitCallbackFunction = NULL;
-CpsRunResetCallback CpsRunResetCallbackFunction = NULL;
-CpsRunFrameStartCallback CpsRunFrameStartCallbackFunction = NULL;
-CpsRunFrameMiddleCallback CpsRunFrameMiddleCallbackFunction = NULL;
-CpsRunFrameEndCallback CpsRunFrameEndCallbackFunction = NULL;
-
-static void CpsQSoundCheatSearchCallback()
-{
- // Q-Sound Shared RAM ranges - not useful for cheat searching, and runs the Z80
- // in the handler, exclude it from cheat searching
- if (Cps == 2) {
- CheatSearchExcludeAddressRange(0x618000, 0x619FFF);
- }
-
- if (Cps1Qs == 1) {
- CheatSearchExcludeAddressRange(0xF18000, 0xF19FFF);
- CheatSearchExcludeAddressRange(0xF1E000, 0xF1FFFF);
- }
-}
-
-static INT32 DrvReset()
-{
- // Reset machine
- if (Cps == 2 || PangEEP || Cps1Qs == 1 || CpsBootlegEEPROM) EEPROMReset();
-
- SekOpen(0);
- SekReset();
- SekClose();
-
- if (((Cps & 1) && !Cps1DisablePSnd) || ((Cps == 2) && !Cps2DisableQSnd)) {
- ZetOpen(0);
- ZetReset();
- ZetClose();
- }
-
- if (Cps == 2) {
- // Disable beam-synchronized interrupts
- *((UINT16*)(CpsReg + 0x4E)) = BURN_ENDIAN_SWAP_INT16(0x0200);
- *((UINT16*)(CpsReg + 0x50)) = BURN_ENDIAN_SWAP_INT16(nCpsNumScanlines);
- *((UINT16*)(CpsReg + 0x52)) = BURN_ENDIAN_SWAP_INT16(nCpsNumScanlines);
- }
-
- SekOpen(0);
- CpsMapObjectBanks(0);
- SekClose();
-
- nCpsCyclesExtra = 0;
-
- if (((Cps == 2) && !Cps2DisableQSnd) || Cps1Qs == 1) { // Sound init (QSound)
- QsndReset();
- }
-
- if (CpsRunResetCallbackFunction) {
- CpsRunResetCallbackFunction();
- }
-
- HiscoreReset();
-
- return 0;
-}
-
-static const eeprom_interface qsound_eeprom_interface =
-{
- 7, /* address bits */
- 8, /* data bits */
- "0110", /* read command */
- "0101", /* write command */
- "0111", /* erase command */
- 0,
- 0,
- 0,
- 0
-};
-
-static const eeprom_interface cps2_eeprom_interface =
-{
- 6, /* address bits */
- 16, /* data bits */
- "0110", /* read command */
- "0101", /* write command */
- "0111", /* erase command */
- 0,
- 0,
- 0,
- 0
-};
-
-INT32 CpsRunInit()
-{
- SekInit(0, 0x68000); // Allocate 68000
-
- if (CpsMemInit()) { // Memory init
- return 1;
- }
-
- if (Cps == 2 || PangEEP) {
- EEPROMInit(&cps2_eeprom_interface);
- } else {
- if (Cps1Qs == 1 || CpsBootlegEEPROM) {
- EEPROMInit(&qsound_eeprom_interface);
- }
- }
-
- CpsRwInit(); // Registers setup
-
- if (CpsPalInit()) { // Palette init
- return 1;
- }
- if (CpsObjInit()) { // Sprite init
- return 1;
- }
-
- if ((Cps & 1) && Cps1Qs == 0 && Cps1DisablePSnd == 0) { // Sound init (MSM6295 + YM2151)
- if (PsndInit()) {
- return 1;
- }
- }
-
- if (((Cps == 2) && !Cps2DisableQSnd) || Cps1Qs == 1) { // Sound init (QSound)
- if (QsndInit()) {
- return 1;
- }
- QsndSetRoute(BURN_SND_QSND_OUTPUT_1, 1.00, BURN_SND_ROUTE_LEFT);
- QsndSetRoute(BURN_SND_QSND_OUTPUT_2, 1.00, BURN_SND_ROUTE_RIGHT);
- }
-
- if (Cps == 2 || PangEEP || Cps1Qs == 1 || CpsBootlegEEPROM) EEPROMReset();
-
- if (CpsRunInitCallbackFunction) {
- CpsRunInitCallbackFunction();
- }
-
- DrvReset();
-
- //Init Draw Function
- DrawFnInit();
-
- pBurnDrvPalette = CpsPal;
-
- if (Cps == 2 || Cps1Qs == 1) {
- CheatSearchInitCallbackFunction = CpsQSoundCheatSearchCallback;
- }
-
- return 0;
-}
-
-INT32 CpsRunExit()
-{
- if (Cps == 2 || PangEEP || Cps1Qs == 1 || CpsBootlegEEPROM) EEPROMExit();
-
- // Sound exit
- if (((Cps == 2) && !Cps2DisableQSnd) || Cps1Qs == 1) QsndExit();
- if (Cps != 2 && Cps1Qs == 0 && !Cps1DisablePSnd) PsndExit();
-
- // Graphics exit
- CpsObjExit();
- CpsPalExit();
-
- // Sprite Masking exit
- ZBuf = NULL;
-
- // Memory exit
- CpsRwExit();
- CpsMemExit();
-
- SekExit();
-
- if (CpsRunExitCallbackFunction) {
- CpsRunExitCallbackFunction();
- CpsRunExitCallbackFunction = NULL;
- }
- CpsRunInitCallbackFunction = NULL;
- CpsRunResetCallbackFunction = NULL;
- CpsRunFrameStartCallbackFunction = NULL;
- CpsRunFrameMiddleCallbackFunction = NULL;
- CpsRunFrameEndCallbackFunction = NULL;
-
- Cps1VBlankIRQLine = 2;
-
- Cps2DisableQSnd = 0;
- CpsBootlegEEPROM = 0;
-
- return 0;
-}
-
-inline static void CopyCpsReg(INT32 i)
-{
- memcpy(CpsSaveReg[i], CpsReg, 0x0100);
-}
-
-inline static void CopyCpsFrg(INT32 i)
-{
- memcpy(CpsSaveFrg[i], CpsFrg, 0x0010);
-}
-
-// Schedule a beam-synchronized interrupt
-static void ScheduleIRQ()
-{
- INT32 nLine = nCpsNumScanlines;
-
- if (nIrqLine50 <= nLine) {
- nLine = nIrqLine50;
- }
- if (nIrqLine52 < nLine) {
- nLine = nIrqLine52;
- }
-
- if (nLine < nCpsNumScanlines) {
- nIrqLine = nLine;
- nIrqCycles = (nLine * nCpsCycles / nCpsNumScanlines) + 1;
- } else {
- nIrqCycles = nCpsCycles + 1;
- }
-
- return;
-}
-
-// Execute a beam-synchronised interrupt and schedule the next one
-static void DoIRQ()
-{
- // 0x4E - bit 9 = 1: Beam Synchronized interrupts disabled
- // 0x50 - Beam synchronized interrupt #1 occurs at raster line.
- // 0x52 - Beam synchronized interrupt #2 occurs at raster line.
-
- // Trigger IRQ and copy registers.
- if (nIrqLine >= nFirstLine) {
-
- nInterrupt++;
- nRasterline[nInterrupt] = nIrqLine - nFirstLine;
- }
-
- SekSetIRQLine(4, CPU_IRQSTATUS_AUTO);
- SekRun(nCpsCycles * 0x01 / nCpsNumScanlines);
- if (nRasterline[nInterrupt] < 224) {
- CopyCpsReg(nInterrupt);
- CopyCpsFrg(nInterrupt);
- } else {
- nRasterline[nInterrupt] = 0;
- }
-
- // Schedule next interrupt
- if (!bEnableAutoIrq50) {
- if (nIrqLine >= nIrqLine50) {
- nIrqLine50 = nCpsNumScanlines;
- }
- } else {
- if (bEnableAutoIrq50 && nIrqLine == nIrqLine50) {
- nIrqLine50 += 32;
- }
- }
- if (!bEnableAutoIrq52 && nIrqLine >= nIrqLine52) {
- nIrqLine52 = nCpsNumScanlines;
- } else {
- if (bEnableAutoIrq52 && nIrqLine == nIrqLine52) {
- nIrqLine52 += 32;
- }
- }
- ScheduleIRQ();
- if (nIrqCycles < SekTotalCycles()) {
- nIrqCycles = SekTotalCycles() + 1;
- }
-
- return;
-}
-
-INT32 Cps1Frame()
-{
- INT32 nDisplayEnd, nNext, i;
-
- if (CpsReset) {
- DrvReset();
- }
-
- SekNewFrame();
- if (Cps1Qs == 1) {
- QsndNewFrame();
- } else {
- if (!Cps1DisablePSnd) {
- ZetOpen(0);
- PsndNewFrame();
- }
- }
-
- if (CpsRunFrameStartCallbackFunction) {
- CpsRunFrameStartCallbackFunction();
- }
-
- nCpsCycles = (INT32)((INT64)nCPS68KClockspeed * nBurnCPUSpeedAdjust >> 8);
-
- CpsRwGetInp(); // Update the input port values
-
- nDisplayEnd = (nCpsCycles * (nFirstLine + 224)) / nCpsNumScanlines; // Account for VBlank
-
- SekOpen(0);
-
- SekRun((nCpsCycles * nFirstLine / nCpsNumScanlines) + nCpsCyclesExtra); // run 68K for the first few lines
-
- CpsObjGet(); // Get objects
-
- for (i = 0; i < 4; i++) {
- nNext = ((i + 1) * nCpsCycles) >> 2; // find out next cycle count to run to
-
- if (i == 2 && CpsRunFrameMiddleCallbackFunction) {
- CpsRunFrameMiddleCallbackFunction();
- }
-
- if (SekTotalCycles() < nDisplayEnd && nNext > nDisplayEnd) {
-
- SekRun(nNext - nDisplayEnd); // run 68K
-
- memcpy(CpsSaveReg[0], CpsReg, 0x100); // Registers correct now
-
- SekSetIRQLine(Cps1VBlankIRQLine, CPU_IRQSTATUS_AUTO); // Trigger VBlank interrupt
- }
-
- SekRun(nNext - SekTotalCycles()); // run 68K
- }
-
- if (pBurnDraw) {
- CpsDraw(); // Draw frame
- }
-
- if (Cps1Qs == 1) {
- QsndEndFrame();
- } else {
- if (!Cps1DisablePSnd) {
- PsndSyncZ80(nCpsZ80Cycles);
- PsmUpdate(nBurnSoundLen);
- ZetClose();
- }
- }
-
- if (CpsRunFrameEndCallbackFunction) {
- CpsRunFrameEndCallbackFunction();
- }
-
- nCpsCyclesExtra = SekTotalCycles() - nCpsCycles;
-
- SekClose();
-
- return 0;
-}
-
-INT32 Cps2Frame()
-{
- INT32 nDisplayEnd, nNext; // variables to keep track of executed 68K cyles
- INT32 i;
-
- if (CpsReset) {
- DrvReset();
- }
-
-// extern INT32 prevline;
-// prevline = -1;
-
- SekNewFrame();
- if (!Cps2DisableQSnd) QsndNewFrame();
-
- nCpsCycles = (INT32)(((INT64)nCPS68KClockspeed * nBurnCPUSpeedAdjust) / 0x0100);
- SekOpen(0);
- SekSetCyclesScanline(nCpsCycles / nCpsNumScanlines);
-
- CpsRwGetInp(); // Update the input port values
-
- // Check the volumes every 5 frames or so
- if (GetCurrentFrame() % 5 == 0) {
- if (Cps2VolUp) Cps2Volume++;
- if (Cps2VolDwn) Cps2Volume--;
-
- if (Cps2Volume > 39) Cps2Volume = 39;
- if (Cps2Volume < 0) Cps2Volume = 0;
-
- QscSetRoute(BURN_SND_QSND_OUTPUT_1, Cps2Volume / 39.0, BURN_SND_ROUTE_LEFT);
- QscSetRoute(BURN_SND_QSND_OUTPUT_2, Cps2Volume / 39.0, BURN_SND_ROUTE_RIGHT);
- }
-
- nDisplayEnd = nCpsCycles * (nFirstLine + 224) / nCpsNumScanlines; // Account for VBlank
-
- nInterrupt = 0;
- for (i = 0; i < MAX_RASTER + 2; i++) {
- nRasterline[i] = 0;
- }
-
- // Determine which (if any) of the line counters generates the first IRQ
- bEnableAutoIrq50 = bEnableAutoIrq52 = false;
- nIrqLine50 = nIrqLine52 = nCpsNumScanlines;
- if (BURN_ENDIAN_SWAP_INT16(*((UINT16*)(CpsReg + 0x50))) & 0x8000) {
- bEnableAutoIrq50 = true;
- }
- if (bEnableAutoIrq50 || (BURN_ENDIAN_SWAP_INT16(*((UINT16*)(CpsReg + 0x4E))) & 0x0200) == 0) {
- nIrqLine50 = (BURN_ENDIAN_SWAP_INT16(*((UINT16*)(CpsReg + 0x50))) & 0x01FF);
- }
- if (BURN_ENDIAN_SWAP_INT16(*((UINT16*)(CpsReg + 0x52))) & 0x8000) {
- bEnableAutoIrq52 = true;
- }
- if (bEnableAutoIrq52 || (BURN_ENDIAN_SWAP_INT16(*((UINT16*)(CpsReg + 0x4E))) & 0x0200) == 0) {
- nIrqLine52 = (BURN_ENDIAN_SWAP_INT16(*((UINT16*)(CpsReg + 0x52))) & 0x01FF);
- }
- ScheduleIRQ();
-
- if (nIrqCycles < nCpsCycles * nFirstLine / nCpsNumScanlines) {
- SekRun(nIrqCycles + nCpsCyclesExtra);
- nCpsCyclesExtra = 0;
- DoIRQ();
- }
- nNext = nCpsCycles * nFirstLine / nCpsNumScanlines;
- if (SekTotalCycles() < nNext) {
- SekRun(nNext - SekTotalCycles());
- }
-
- CopyCpsReg(0); // Get inititial copy of registers
- CopyCpsFrg(0); //
-
- if (nIrqLine >= nCpsNumScanlines && (BURN_ENDIAN_SWAP_INT16(*((UINT16*)(CpsReg + 0x4E))) & 0x0200) == 0) {
- nIrqLine50 = BURN_ENDIAN_SWAP_INT16(*((UINT16*)(CpsReg + 0x50))) & 0x01FF;
- nIrqLine52 = BURN_ENDIAN_SWAP_INT16(*((UINT16*)(CpsReg + 0x52))) & 0x01FF;
- ScheduleIRQ();
- }
-
- for (i = 0; i < 3; i++) {
- nNext = ((i + 1) * nDisplayEnd) / 3; // find out next cycle count to run to
-
- while (nNext > nIrqCycles && nInterrupt < MAX_RASTER) {
- SekRun(nIrqCycles - SekTotalCycles());
- DoIRQ();
- }
- SekRun(nNext - SekTotalCycles()); // run cpu
- }
-
- CpsObjGet(); // Get objects
-
-// nCpsCyclesSegment[0] = (nCpsCycles * nVBlank) / nCpsNumScanlines;
-// nDone += SekRun(nCpsCyclesSegment[0] - nDone);
-
- SekSetIRQLine(2, CPU_IRQSTATUS_AUTO); // VBlank
- if (pBurnDraw) {
- CpsDraw();
- }
- SekRun(nCpsCycles - SekTotalCycles());
-
- nCpsCyclesExtra = SekTotalCycles() - nCpsCycles;
-
- if (!Cps2DisableQSnd) QsndEndFrame();
-
- SekClose();
-
-// bprintf(PRINT_NORMAL, _T(" -\n"));
-
-#if 0 && defined FBA_DEBUG
- if (nInterrupt) {
- bprintf(PRINT_IMPORTANT, _T("Beam synchronized interrupt at line %2X.\r"), nRasterline[nInterrupt]);
- } else {
- bprintf(PRINT_NORMAL, _T("Beam synchronized interrupt disabled. \r"));
- }
-
- extern INT32 counter;
- if (counter) {
- bprintf(PRINT_NORMAL, _T("\n\nSlices start at: "));
- for (i = 0; i < MAX_RASTER + 2; i++) {
- bprintf(PRINT_NORMAL, _T("%2X "), nRasterline[i]);
- }
- bprintf(PRINT_NORMAL, _T("\n"));
- for (i = 0; i < 0x80; i++) {
- if (*((UINT16*)(CpsSaveReg[0] + i * 2)) != *((UINT16*)(CpsSaveReg[nInterrupt] + i * 2))) {
- bprintf(PRINT_NORMAL, _T("Register %2X: %4X -> %4X\n"), i * 2, *((UINT16*)(CpsSaveReg[0] + i * 2)), *((UINT16*)(CpsSaveReg[nInterrupt] + i * 2)));
- }
- }
- bprintf(PRINT_NORMAL, _T("\n"));
- for (i = 0; i < 0x010; i++) {
- if (CpsSaveFrg[0][i] != CpsSaveFrg[nInterrupt][i]) {
- bprintf(PRINT_NORMAL, _T("FRG %X: %02X -> %02X\n"), i, CpsSaveFrg[0][i], CpsSaveFrg[nInterrupt][i]);
- }
- }
- bprintf(PRINT_NORMAL, _T("\n"));
- if (((CpsSaveFrg[0][4] << 8) | CpsSaveFrg[0][5]) != ((CpsSaveFrg[nInterrupt][4] << 8) | CpsSaveFrg[nInterrupt][5])) {
- bprintf(PRINT_NORMAL, _T("Layer-sprite priority: %04X -> %04X\n"), ((CpsSaveFrg[0][4] << 8) | CpsSaveFrg[0][5]), ((CpsSaveFrg[nInterrupt][4] << 8) | CpsSaveFrg[nInterrupt][5]));
- }
-
- bprintf(PRINT_NORMAL, _T("\n"));
- for (INT32 j = 0; j <= nInterrupt; j++) {
- if (j) {
- bprintf(PRINT_NORMAL, _T("IRQ : %i (triggered at line %3i)\n\n"), j, nRasterline[j]);
- } else {
- bprintf(PRINT_NORMAL, _T("Initial register status\n\n"));
- }
-
- for (i = 0; i < 0x080; i+= 8) {
- bprintf(PRINT_NORMAL, _T("%2X: %4X %4X %4X %4X %4X %4X %4X %4X\n"), i * 2, *((UINT16*)(CpsSaveReg[j] + 0 + i * 2)), *((UINT16*)(CpsSaveReg[j] + 2 + i * 2)), *((UINT16*)(CpsSaveReg[j] + 4 + i * 2)), *((UINT16*)(CpsSaveReg[j] + 6 + i * 2)), *((UINT16*)(CpsSaveReg[j] + 8 + i * 2)), *((UINT16*)(CpsSaveReg[j] + 10 + i * 2)), *((UINT16*)(CpsSaveReg[j] + 12 + i * 2)), *((UINT16*)(CpsSaveReg[j] + 14 + i * 2)));
- }
-
- bprintf(PRINT_NORMAL, _T("\nFRG: "));
- for (i = 0; i < 0x010; i++) {
- bprintf(PRINT_NORMAL, _T("%02X "), CpsSaveFrg[j][i]);
- }
- bprintf(PRINT_NORMAL, _T("\n\n"));
-
- }
-
- extern INT32 bRunPause;
- bRunPause = 1;
- counter = 0;
- }
-#endif
-
- return 0;
-}
-
diff --git a/jan/src/burn/drv/capcom/cps_rw.cpp b/jan/src/burn/drv/capcom/cps_rw.cpp
deleted file mode 100644
index 1ad8bc8b4..000000000
--- a/jan/src/burn/drv/capcom/cps_rw.cpp
+++ /dev/null
@@ -1,627 +0,0 @@
-#include "cps.h"
-// CPS - Read/Write
-
-// Input bits
-#define INP(nnn) UINT8 CpsInp##nnn[8];
-CPSINPSET
-#undef INP
-
-// Bytes to return from ports
-#define INP(nnn) UINT8 Inp##nnn;
-CPSINPSET
-#undef INP
-
-UINT16 CpsInp055 = 0;
-UINT16 CpsInp05d = 0;
-UINT8 CpsDigUD[4] = {0, 0, 0, 0};
-UINT16 CpsInpPaddle1 = 0;
-UINT16 CpsInpPaddle2 = 0;
-static INT32 ReadPaddle = 0;
-INT32 CpsPaddle1Value = 0;
-INT32 CpsPaddle2Value = 0;
-INT32 CpsPaddle1 = 0;
-INT32 CpsPaddle2 = 0;
-static INT32 nDial055, nDial05d;
-UINT8 fFakeDip = 0;
-
-INT32 PangEEP = 0;
-INT32 Forgottn = 0;
-INT32 Cps1QsHack = 0;
-INT32 Kodh = 0;
-INT32 Cawingb = 0;
-INT32 Wofh = 0;
-INT32 Sf2thndr = 0;
-INT32 Pzloop2 = 0;
-INT32 Ssf2tb = 0;
-INT32 Dinohunt = 0;
-INT32 Port6SoundWrite = 0;
-INT32 CpsBootlegEEPROM = 0;
-
-CpsRWSoundCommandCallback CpsRWSoundCommandCallbackFunction = NULL;
-
-static INT32 nCalc[2] = {0, 0};
-
-static const bool nCPSExtraNVRAM = false;
-static INT32 n664001;
-
-#define INP(nnnn) UINT8 CpsInp##nnnn[8];
-CPSINPEX
-#undef INP
-
-#define INP(nnnn) static UINT8 Inp##nnnn;
-CPSINPEX
-#undef INP
-
-
-// Read input port 0x000-0x1ff
-static UINT8 CpsReadPort(const UINT32 ia)
-{
- UINT8 d = 0xFF;
-
- if (ia == 0x000) {
- d = (UINT8)~Inp000;
- if (Pzloop2) {
- if (ReadPaddle) {
- d -= CpsPaddle2Value;
- } else {
- d = CpsPaddle2;
- }
- }
- return d;
- }
- if (ia == 0x001) {
- d = (UINT8)~Inp001;
- if (Pzloop2) {
- if (ReadPaddle) {
- d -= CpsPaddle1Value;
- } else {
- d = CpsPaddle1;
- }
- }
- return d;
- }
- if (ia == 0x010) {
- d = (UINT8)~Inp010;
- return d;
- }
- if (ia == 0x011) {
- d = (UINT8)~Inp011;
- return d;
- }
- if (ia == 0x012) {
- d = (UINT8)~Inp012;
- return d;
- }
- if (ia == 0x018) {
- d = (UINT8)~Inp018;
- return d;
- }
- if (ia == 0x019) {
- d = (UINT8)~Inp019;
- return d;
- }
- if (ia == 0x01B) {
- d = (UINT8)~Inp01B;
- return d;
- }
-
- if (ia == 0x01A) {
- d = (UINT8)~Cpi01A;
- return d;
- }
- if (ia == 0x01C) {
- d = (UINT8)~Cpi01C;
- return d;
- }
- if (ia == 0x01E) {
- d = (UINT8)~Cpi01E;
- return d;
- }
-
- if (Cps == 2) {
- // Used on CPS2 only I think
- if (ia == 0x020) {
- d = (UINT8)~Inp020;
- return d;
- }
- if (ia == 0x021) {
- d = (UINT8)~Inp021;
- d &= 0xFE;
- d |= EEPROMRead();
- return d;
- }
-
- // CPS2 Volume control
- if (ia == 0x030) {
- if (Ssf2tb) {
- d = 0x20;
- } else {
- d = Cps2VolumeStates[Cps2Volume] >> 8;
- if (Cps2DisableDigitalVolume) d = 0xd0;
- }
- return d;
- }
- if (ia == 0x031) {
- d = Cps2VolumeStates[Cps2Volume] & 0xff;
- return d;
- }
-
- if (ia >= 0x0100 && ia < 0x0200) {
- static INT32 nRasterLine;
-
-// bprintf(PRINT_NORMAL, _T(" - port 0x%02X (%3i)\n"), ia & 255, SekCurrentScanline());
-
- // The linecounters seem to return the line at which the last IRQ triggered by this counter is scheduled minus the current line
- if ((ia & 0x0FE) == 0x50) {
- if ((ia & 1) == 0) {
- nRasterLine = nIrqLine50 - SekCurrentScanline();
- return nRasterLine >> 8;
- } else {
- return nRasterLine & 0xFF;
- }
- }
- if ((ia & 0x0FE) == 0x52) {
- if ((ia & 1) == 0) {
- nRasterLine = nIrqLine52 - SekCurrentScanline();
- return nRasterLine >> 8;
- } else {
- return nRasterLine & 0xFF;
- }
- }
-
- }
- } else {
- // Board ID
- if (ia == 0x100 + CpsBID[0]) {
- d = (UINT8)CpsBID[1];
- return d;
- }
- if (ia == 0x100 + (CpsBID[0] + 1)) {
- d = (UINT8)CpsBID[2];
- return d;
- }
-
- if (Sf2thndr) {
- // this reads the B-ID from here on startup as well as the normal location in-game
- if (ia == 0x1c8) {
- d = (UINT8)CpsBID[1];
- return d;
- }
-
- if (ia == 0x1c9) {
- d = (UINT8)CpsBID[2];
- return d;
- }
- }
-
- // CPS1 EEPROM read
- if (ia == 0xC007) {
- if (Cps1Qs || CpsBootlegEEPROM) {
- return EEPROMRead();
- } else {
- return 0;
- }
- }
-
- // Pang3 EEPROM
- if (PangEEP == 1) {
- if (ia == 0x17B) {
- return EEPROMRead();
- }
- }
-
- // Extra Input ports (move from game-to-game)
- if (ia == 0x006) {
- d = (UINT8)~Inp006;
- return d;
- }
- if (ia == 0x007) {
- d = (UINT8)~Inp007;
- return d;
- }
- if (ia == 0x008) {
- d = (UINT8)~Inp008;
- return d;
- }
- if (ia == 0x029) {
- d = (UINT8)~Inp029;
- return d;
- }
- if (ia == 0x176) {
- d = (UINT8)~Inp176;
- return d;
- }
- if (ia == 0x177) {
- d = (UINT8)~Inp177;
- return d;
- }
- if (ia == 0x179) {
- d = (UINT8)~Inp179;
- return d;
- }
- if (ia == 0x186) {
- d = (UINT8)~Inp186;
- return d;
- }
- if (ia == 0x1fd) {
- d = (UINT8)~Inp1fd;
- return d;
- }
- if (ia == 0xC000) {
- d = (UINT8)~Inpc000;
- return d;
- }
- if (ia == 0xC001) {
- d = (UINT8)~Inpc001;
- return d;
- }
- if (ia == 0xC002) {
- d = (UINT8)~Inpc002;
- return d;
- }
- if (ia == 0xC003) {
- d = (UINT8)~Inpc003;
- return d;
- }
-
- // Forgotten Worlds Dial
- if (Forgottn) {
- if (ia == 0x053) {
- return (nDial055 >> 8) & 0xFF;
- }
- if (ia == 0x055) {
- return (nDial055 >> 16) & 0xFF;
- }
- if (ia == 0x05B) {
- return (nDial05d >> 8) & 0xFF;
- }
- if (ia == 0x05D) {
- return (nDial05d >> 16) & 0xFF;
- }
- }
- }
-
-// bprintf(PRINT_NORMAL, _T("Read Port %x\n"), ia);
-
- return d;
-}
-
-// Write output port 0x000-0x1ff
-void CpsWritePort(const UINT32 ia, UINT8 d)
-{
- if ((Cps & 1) && Cps1Qs == 0) {
- if (!Cps1DisablePSnd) {
- // CPS1 sound code
- if (ia == 0x181 || (Port6SoundWrite && (ia == 0x006 || ia == 0x007))) {
- PsndSyncZ80((INT64)SekTotalCycles() * nCpsZ80Cycles / nCpsCycles);
-
- PsndCode = d;
- return;
- }
-
- // CPS1 sound fade
- if (ia == 0x189) {
- PsndSyncZ80((INT64)SekTotalCycles() * nCpsZ80Cycles / nCpsCycles);
-
- PsndFade = d;
- return;
- }
- } else {
- if (ia == 0x181 || (Port6SoundWrite && (ia == 0x006 || ia == 0x007))) {
- if (CpsRWSoundCommandCallbackFunction) {
- CpsRWSoundCommandCallbackFunction(d);
- }
- }
- }
-
- if (ia == 0x041) {
- nDial055 = 0;
- }
- if (ia == 0x049) {
- nDial05d = 0;
- }
- }
-
- if (Cps == 1 && Cps1QsHack == 1) {
- if (ia == 0x181) {
- // Pass the Sound Code to the Q-Sound Shared Ram
- CpsZRamC0[0x001] = d;
- }
- }
-
- // CPS registers
- if (ia >= 0x100 && ia < 0x200) {
- //Pang3 EEPROM
- if (PangEEP == 1 && ia == 0x17B) {
- EEPROMWrite(d & 0x40, d & 0x80, d & 0x01);
- return;
- }
- CpsReg[(ia ^ 1) & 0xFF] = d;
-
- if (ia == 0x10b) {
- GetPalette(0, 6);
- CpsPalUpdate(CpsSavePal);
- }
- return;
- }
-
- if (Cps == 2) {
- if (ia == 0x40) {
- EEPROMWrite(d & 0x20, d& 0x40, d & 0x10);
- return;
- }
-
- // CPS2 object bank select
- if ((ia & 0x1FF) == 0x0E1) {
-// bprintf(PRINT_NORMAL, _T(" - %2i (%3i)\n"), d & 1, SekCurrentScanline());
-// CpsObjGet();
- CpsMapObjectBanks(d & 1);
- return;
- }
-
- if (ia == 0x41 && Pzloop2) {
- ReadPaddle = d & 0x02;
- }
- }
-
- if (Cps1Qs == 1 || CpsBootlegEEPROM) {
- //CPS1 EEPROM write
- if (ia == 0xc007) {
- EEPROMWrite(d & 0x40, d & 0x80, d & 0x01);
- return;
- }
- }
-
-// bprintf(PRINT_NORMAL, _T("Write Port %x, %x\n"), ia, d);
-}
-
-UINT8 __fastcall CpsReadByte(UINT32 a)
-{
- // Input ports mirrored between 0x800000 and 0x807fff
- if ((a & 0xFF8000) == 0x800000) {
- return CpsReadPort(a & 0x1FF);
- }
-
- if (Cps == 2) {
- if ((a & 0xFF8000) == 0x660000) {
- if (a == 0x664001) {
- return n664001;
- }
- }
-
- return 0x00;
- }
-
- if (a >= 0xF1C000 && a <= 0xF1C007) {
- return CpsReadPort(a & 0xC00F);
- }
-
- if (Dinohunt && a == 0xfc0001) return (UINT8)~Inpc001;
-
-// bprintf(PRINT_NORMAL, _T("Read Byte %x\n"), a);
-
- return 0x00;
-}
-
-void __fastcall CpsWriteByte(UINT32 a,UINT8 d)
-{
- // Output ports mirrored between 0x800000 and 0x807fff
- if ((a & 0xFF8000) == 0x800000) {
- CpsWritePort(a & 0x1FF, d);
- return;
- }
-
- if (Cps == 2) {
- // 0x400000 registers
- if ((a & 0xFFFFF0) == 0x400000) {
- CpsFrg[a & 0x0F] = d;
- return;
- }
- if ((a & 0xFF8000) == 0x660000) {
- if (a == 0x664001) {
- // bit 1 toggled on/off each frame
- n664001 = d;
- }
-
- return;
- }
-
- return;
- }
-
- if (Cps1Qs == 1 || CpsBootlegEEPROM) {
- // CPS1 EEPROM
- if (a == 0xf1c007) {
- CpsWritePort(a & 0xC00F, d);
- return;
- }
- }
-
-// bprintf(PRINT_NORMAL, _T("Write Byte %x, %x\n"), a, d);
-}
-
-UINT16 __fastcall CpsReadWord(UINT32 a)
-{
- if ((a & 0xFF8FFF) == 0x800100 + CpsMProt[3]) {
- return (UINT16)((nCalc[0] * nCalc[1]) >> 16);
- }
- // ports mirrored between 0x800000 and 0x807fff
- if ((a & 0xFF8FFF) == 0x800100 + CpsMProt[2]) {
- return (UINT16)((nCalc[0] * nCalc[1]));
- }
-
-// bprintf(PRINT_NORMAL, _T("Read Word %x\n"), a);
-
- SEK_DEF_READ_WORD(0, a);
-}
-
-void __fastcall CpsWriteWord(UINT32 a, UINT16 d)
-{
- // ports mirrored between 0x800000 and 0x807fff
- if ((a & 0xFF8FFF) == 0x800100 + CpsMProt[0])
- nCalc[0] = d;
- if ((a & 0xFF8FFF) == 0x800100 + CpsMProt[1])
- nCalc[1] = d;
-
- if (a == 0x804040) {
- if ((d & 0x0008) == 0) {
- if (!Cps2DisableQSnd) ZetReset();
- }
- }
-
-// bprintf(PRINT_NORMAL, _T("Write Word %x, %x\n"), a, d);
-
- SEK_DEF_WRITE_WORD(0, a, d);
-}
-
-// Reset all inputs to zero
-static INT32 InpBlank()
-{
-#define INP(nnn) Inp##nnn = 0; memset(CpsInp##nnn, 0, sizeof(CpsInp##nnn));
- CPSINPSET
-#undef INP
-
-#define INP(nnnn) Inp##nnnn = 0; memset(CpsInp##nnnn, 0, sizeof(CpsInp##nnnn));
- CPSINPEX
-#undef INP
-
- CpsInp055 = CpsInp05d = 0;
- memset(CpsDigUD, 0, sizeof(CpsDigUD));
-
- return 0;
-}
-
-INT32 CpsRwInit()
-{
- InpBlank();
- return 0;
-}
-
-INT32 CpsRwExit()
-{
- InpBlank();
- CpsRWSoundCommandCallbackFunction = NULL;
- return 0;
-}
-
-inline static void StopOpposite(UINT8* pInput)
-{
- if ((*pInput & 0x03) == 0x03) {
- *pInput &= ~0x03;
- }
- if ((*pInput & 0x0C) == 0x0C) {
- *pInput &= ~0x0C;
- }
-}
-
-INT32 CpsRwGetInp()
-{
- // Compile separate buttons into Inpxxx
-#define INP(nnn) \
- { INT32 i = 0; Inp##nnn = 0; \
- for (i = 0; i < 8; i++) { Inp##nnn |= (CpsInp##nnn[i] & 1) << i; } }
- CPSINPSET
-#undef INP
-
-
-#define INP(nnnn) \
- { INT32 i = 0; Inp##nnnn = 0; \
- for (i = 0; i < 8; i++) { Inp##nnnn |= (CpsInp##nnnn[i] & 1) << i; } }
- CPSINPEX
-#undef INP
-
- if (Forgottn) {
- // Handle analog controls
- if (fFakeDip & 0x80) {
- if (CpsDigUD[0]) nDial055 += 4080; // p1
- if (CpsDigUD[1]) nDial055 -= 4080;
- if (CpsDigUD[2]) nDial05d += 4080; // p2
- if (CpsDigUD[3]) nDial05d -= 4080;
- nDial055 += (INT32)((INT16)CpsInp055) * 4;
- nDial05d += (INT32)((INT16)CpsInp05d) * 4;
- } else {
- if (CpsDigUD[0]) nDial055 -= 4080; // p1
- if (CpsDigUD[1]) nDial055 += 4080;
- if (CpsDigUD[2]) nDial05d -= 4080; // p2
- if (CpsDigUD[3]) nDial05d += 4080;
- nDial055 -= (INT32)((INT16)CpsInp055) * 4;
- nDial05d -= (INT32)((INT16)CpsInp05d) * 4;
- }
- }
-
- if (Pzloop2) {
- if (ReadPaddle) {
- CpsPaddle1Value = 0;
- CpsPaddle2Value = 0;
- if (CpsInpPaddle1) {
- if (CpsInpPaddle1 > 0x8000) {
- CpsPaddle1Value = 2;
- }
-
- if (CpsInpPaddle1 < 0x7fff) {
- CpsPaddle1Value = 1;
- }
- }
-
- if (CpsInpPaddle2) {
- if (CpsInpPaddle2 > 0x8000) {
- CpsPaddle2Value = 2;
- }
-
- if (CpsInpPaddle2 < 0x7fff) {
- CpsPaddle2Value = 1;
- }
- }
- }
-
- CpsPaddle1 += (CpsInpPaddle1 >> 8) & 0xff;
- CpsPaddle2 += (CpsInpPaddle2 >> 8) & 0xff;
- }
-
- StopOpposite(&Inp000);
- StopOpposite(&Inp001);
-
- // Ghouls uses a 4-way stick
- if (Ghouls) {
- static UINT8 nPrevInp000, nPrevInp001;
-
- if ((Inp000 & 0x03) && (Inp000 & 0x0C)) {
- Inp000 ^= (nPrevInp000 & 0x0F);
- } else {
- nPrevInp000 = Inp000;
- }
-
- if ((Inp001 & 0x03) && (Inp001 & 0x0C)) {
- Inp001 ^= (nPrevInp001 & 0x0F);
- } else {
- nPrevInp001 = Inp001;
- }
- }
-
- if (nMaxPlayers > 2) {
- if (Cps == 2) {
- StopOpposite(&Inp011);
- if (nMaxPlayers == 4) {
- StopOpposite(&Inp010);
- }
- } else {
- StopOpposite(&Inp177);
- if (nMaxPlayers == 4) {
- StopOpposite(&Inp179);
- }
- if (Cps1Qs) {
- StopOpposite(&Inpc001);
- if (nMaxPlayers == 4) {
- StopOpposite(&Inpc003);
- }
- }
- }
- }
-
- return 0;
-}
-
-void CpsSoundCmd(UINT16 sound_code) {
-// CpsWritePort(0x181, sound_code);
- PsndCode = sound_code;
-}
diff --git a/jan/src/burn/drv/capcom/cps_scr.cpp b/jan/src/burn/drv/capcom/cps_scr.cpp
deleted file mode 100644
index 881f07b57..000000000
--- a/jan/src/burn/drv/capcom/cps_scr.cpp
+++ /dev/null
@@ -1,262 +0,0 @@
-#include "cps.h"
-
-// CPS Scroll (Background Layers)
-
-// Base = 0x4000 long tile map
-// sx=Scroll X value, sy=Scroll Y value,
-INT32 Ghouls=0;
-INT32 Ssf2t=0;
-INT32 Xmcota=0;
-
-INT32 Scroll1TileMask = 0;
-INT32 Scroll2TileMask = 0;
-INT32 Scroll3TileMask = 0;
-
-INT32 Cps1Scr1Draw(UINT8 *Base,INT32 sx,INT32 sy)
-{
- INT32 x,y;
- INT32 ix,iy;
- INT32 nKnowBlank=-1; // The tile we know is blank
-
- ix=(sx>>3)+1; iy=(sy>>3)+1;
- sx&=7; sy&=7; sx=8-sx; sy=8-sy;
-
- for (y=-1; y<28; y++)
- {
- for (x=-1; x<48; x++)
- {
- INT32 t,a;
- UINT16 *pst;
- INT32 fx,fy,p;
- fx=ix+x; fy=iy+y; // fx/fy= 0 to 63
-
- // Find tile address
- p=((fy&0x20)<<8) | ((fx&0x3f)<<7) | ((fy&0x1f)<<2);
- p&=0x3fff;
- pst=(UINT16 *)(Base + p);
-
- t = BURN_ENDIAN_SWAP_INT16(pst[0]);
-
- if (Scroll1TileMask) t &= Scroll1TileMask;
-
- t = GfxRomBankMapper(GFXTYPE_SCROLL1, t);
- if (t == -1) continue;
-
- t<<=6; // Get real tile address
-
- t+=nCpsGfxScroll[1]; // add on offset to scroll tiles
- if (t==nKnowBlank) continue; // Don't draw: we know it's blank
-
- a = BURN_ENDIAN_SWAP_INT16(pst[1]);
-
- CpstSetPal(0x20 | (a&0x1f));
-
- // Don't need to clip except around the border
- if (x<0 || x>=48-1 || y<0 || y>=28-1)
- nCpstType=CTT_8X8 | CTT_CARE;
- else
- nCpstType=CTT_8X8;
-
- nCpstX=sx+(x<<3); nCpstY=sy+(y<<3);
- nCpstTile=t; nCpstFlip=(a>>5)&3;
-
- if (nBgHi) {
- CpstPmsk = BURN_ENDIAN_SWAP_INT16(*(UINT16*)(CpsSaveReg[0] + MaskAddr[(a & 0x180) >> 7]));
- }
-
- if(CpstOneDoX[nBgHi]()) nKnowBlank=t;
-
- }
- }
-
- return 0;
-}
-
-INT32 Cps2Scr1Draw(UINT8 *Base, INT32 sx, INT32 sy)
-{
- INT32 x, y;
- INT32 ix, iy;
- INT32 nFirstY, nLastY;
- INT32 nKnowBlank = -1; // The tile we know is blank
-
- ix = (sx >> 3) + 1;
- sx &= 7;
- sx = 8 - sx;
-
- iy = (sy >> 3) + 1;
- sy &= 7;
-
- nLastY = (nEndline + sy) >> 3;
- nFirstY = (nStartline + sy) >> 3;
-
- sy = 8 - sy;
-
- for (y = nFirstY - 1; y < nLastY; y++) {
- INT32 nClipY = ((y << 3) < nStartline) | (((y << 3) + 8) >= nEndline);
- for (x = -1; x < 48; x++) {
- INT32 t, a;
- UINT16 *pst;
- INT32 fx, fy, p;
- fx = ix + x;
- fy = iy + y; // 0 <= fx/fy <= 63
-
- // Find tile address
- p = ((fy & 0x20) << 8) | ((fx & 0x3F) << 7) | ((fy & 0x1F) << 2);
- p &= 0x3FFF;
- pst = (UINT16 *)(Base + p);
-
- t = BURN_ENDIAN_SWAP_INT16(pst[0]);
- t <<= 6; // Get real tile address
-
- t += nCpsGfxScroll[1]; // add on offset to scroll tiles
-
- if (t != nKnowBlank) { // Draw tile
- a = BURN_ENDIAN_SWAP_INT16(pst[1]);
-
- CpstSetPal(0x20 | (a & 0x1F));
-
- nCpstX = sx + (x << 3);
- nCpstY = sy + (y << 3);
- nCpstTile = t;
- nCpstFlip = (a >> 5) & 3;
-
- // Don't need to clip except around the border
- if (x < 0 || x >= 48 - 1 || nClipY) {
- nCpstType = CTT_8X8 | CTT_CARE;
- } else {
- nCpstType = CTT_8X8;
- }
-
- if (CpstOneDoX[2]()) {
- nKnowBlank = t;
- }
- }
- }
- }
- return 0;
-}
-
-INT32 Cps1Scr3Draw(UINT8 *Base,INT32 sx,INT32 sy)
-{
- INT32 x,y;
- INT32 ix,iy;
- INT32 nKnowBlank=-1; // The tile we know is blank
- ix=(sx>>5)+1; iy=(sy>>5)+1;
- sx&=31; sy&=31; sx=32-sx; sy=32-sy;
-
- for (y=-1; y<7; y++)
- {
- for (x=-1; x<12; x++)
- {
- INT32 t,a;
- UINT16 *pst;
- INT32 fx,fy,p;
- fx=ix+x; fy=iy+y; // fx/fy= 0 to 63
-
- // Find tile address
- p=((fy&0x38)<<8) | ((fx&0x3f)<<5) | ((fy&0x07)<<2);
- p&=0x3fff;
- pst=(UINT16 *)(Base + p);
-
- t = BURN_ENDIAN_SWAP_INT16(pst[0]);
-
- if (Scroll3TileMask) t &= Scroll3TileMask;
-
- t = GfxRomBankMapper(GFXTYPE_SCROLL3, t);
- if (t == -1) continue;
-
- t<<=9; // Get real tile address
- t+=nCpsGfxScroll[3]; // add on offset to scroll tiles
-
- if (t==nKnowBlank) continue; // Don't draw: we know it's blank
-
- a = BURN_ENDIAN_SWAP_INT16(pst[1]);
-
- CpstSetPal(0x60 | (a&0x1f));
-
- // Don't need to clip except around the border
- if (x<0 || x>=12-1 || y<0 || y>=7-1)
- nCpstType=CTT_32X32 | CTT_CARE;
- else
- nCpstType=CTT_32X32;
-
- nCpstX=sx+(x<<5); nCpstY=sy+(y<<5);
- nCpstTile=t; nCpstFlip=(a>>5)&3;
-
- if (nBgHi) {
- CpstPmsk = BURN_ENDIAN_SWAP_INT16(*(UINT16*)(CpsSaveReg[0] + MaskAddr[(a & 0x180) >> 7]));
- }
-
- if(CpstOneDoX[nBgHi]()) nKnowBlank=t;
- }
- }
-
- return 0;
-}
-
-INT32 Cps2Scr3Draw(UINT8 *Base, INT32 sx, INT32 sy)
-{
- INT32 x, y;
- INT32 ix, iy;
- INT32 nFirstY, nLastY;
- INT32 nKnowBlank = -1; // The tile we know is blank
-
- ix = (sx >> 5) + 1;
- sx &= 31;
- sx = 32 - sx;
-
- iy = (sy >> 5) + 1;
- sy &= 31;
-
- nLastY = (nEndline + sy) >> 5;
- nFirstY = (nStartline + sy) >> 5;
-
- sy = 32 - sy;
-
- for (y = nFirstY - 1; y < nLastY; y++) {
- INT32 nClipY = ((y << 5) < nStartline) | (((y << 5) + 32) >= nEndline);
- for (x = -1; x < 12; x++) {
- INT32 t, a;
- UINT16 *pst;
- INT32 fx, fy, p;
- fx = ix + x;
- fy = iy + y; // 0 <= fx/fy <= 63
-
- // Find tile address
- p = ((fy & 0x38) << 8) | ((fx & 0x3F) << 5) | ((fy & 0x07) << 2);
- p &= 0x3FFF;
- pst = (UINT16 *)(Base + p);
-
- t = BURN_ENDIAN_SWAP_INT16(pst[0]);
-
- if(Xmcota && t>=0x5800) t-=0x4000;
- else if(Ssf2t && t<0x5600) t+=0x4000;
- t <<= 9; // Get real tile address
- t += nCpsGfxScroll[3]; // add on offset to scroll tiles
-
- if (t != nKnowBlank) { // Draw tile
- a = BURN_ENDIAN_SWAP_INT16(pst[1]);
-
- CpstSetPal(0x60 | (a & 0x1F));
-
- nCpstX = sx + (x << 5);
- nCpstY = sy + (y << 5);
- nCpstTile = t;
- nCpstFlip = (a >> 5) & 3;
-
- // Don't need to clip except around the border
- if (x < 0 || x >= 12 - 1 || nClipY) {
- nCpstType = CTT_32X32 | CTT_CARE;
- } else {
- nCpstType = CTT_32X32;
- }
-
- if (CpstOneDoX[2]()) {
- nKnowBlank = t;
- }
- }
- }
- }
- return 0;
-}
-
diff --git a/jan/src/burn/drv/capcom/cpsr.cpp b/jan/src/burn/drv/capcom/cpsr.cpp
deleted file mode 100644
index 4406b84a7..000000000
--- a/jan/src/burn/drv/capcom/cpsr.cpp
+++ /dev/null
@@ -1,199 +0,0 @@
-#include "cps.h"
-
-// CPS Scroll2 with Row scroll support
-
-UINT8 *CpsrBase=NULL; // Tile data base
-INT32 nCpsrScrX=0,nCpsrScrY=0; // Basic scroll info
-UINT16 *CpsrRows=NULL; // Row scroll table, 0x400 words long
-int nCpsrRowStart=0; // Start of row scroll (can wrap?)
-static INT32 nShiftY=0;
-static INT32 EndLineInfo=0;
-
-struct CpsrLineInfo CpsrLineInfo[15];
-
-static void GetRowsRange(INT32 *pnStart,INT32 *pnWidth,INT32 nRowFrom,INT32 nRowTo)
-{
- INT32 i,nStart,nWidth;
-
- // Get the range of scroll values within nRowCount rows
- // Start with zero range
- nStart = BURN_ENDIAN_SWAP_INT16(CpsrRows[nRowFrom&0x3ff]); nStart&=0x3ff; nWidth=0;
- for (i=nRowFrom;i=0)
- {
- // On the right
- if (nDiff>=nWidth) nWidth=nDiff; // expand width to cover it
- }
- else
- {
- // On the left
- nStart+=nDiff; nStart&=0x3ff;
- nWidth-=nDiff; // expand width to cover it
- }
- }
-
- if (nWidth>0x400) nWidth=0x400;
-
- *pnStart=nStart;
- *pnWidth=nWidth;
-}
-
-
-static INT32 PrepareRows()
-{
- INT32 y; INT32 r;
- struct CpsrLineInfo *pli;
- // Calculate the amount of pixels to shift each
- // row of the tile lines, assuming we draw tile x at
- // (x-pli->nTileStart)<<4 - i.e. 0, 16, ...
-
- r=nShiftY-16;
- for (y = -1, pli = CpsrLineInfo; y < EndLineInfo; y++, pli++)
- {
- // Maximum row scroll left and right on this line
- INT32 nMaxLeft=0,nMaxRight=0;
- INT32 ty; INT16 *pr;
-
- if (CpsrRows==NULL)
- {
- // No row shift - all the same
- INT32 v;
- v =(pli->nTileStart<<4)-nCpsrScrX;
- nMaxLeft=v; nMaxRight=v;
- for (ty=0,pr=pli->Rows; ty<16; ty++,pr++)
- {
- *pr=(INT16)v;
- }
- }
- else
- {
- for (ty=0,pr=pli->Rows; ty<16; ty++,pr++,r++)
- {
- // Get the row offset, if it's in range
- if (r>=0 && rnTileStart<<4)-nCpsrScrX;
- v -= BURN_ENDIAN_SWAP_INT16(CpsrRows[(nCpsrRowStart+r)&0x3ff]);
- // clip to 10-bit signed
- v+=0x200; v&=0x3ff; v-=0x200;
- *pr=(INT16)v;
- if (vnMaxRight) nMaxRight=v;
- }
- else
- {
- *pr=0;
- }
- }
- }
-
- pli->nMaxLeft =nMaxLeft;
- pli->nMaxRight=nMaxRight;
- }
-
- return 0;
-}
-
-// Prepare to draw Scroll 2 with rows, by seeing how much
-// row scroll each tile line uses (pli->nStart/nWidth),
-// and finding which tiles are visible onscreen (pli->nTileStart/End).
-
-INT32 Cps1rPrepare()
-{
- INT32 y; struct CpsrLineInfo *pli;
- if (CpsrBase==NULL) return 1;
-
- nEndline = 224;
- EndLineInfo = 14;
- nShiftY=16-(nCpsrScrY&15);
-
- for (y=-1,pli=CpsrLineInfo; y224) nRowTo=224;
-
- // Shift by row table start offset
- nRowFrom+=nCpsrRowStart;
- nRowTo +=nCpsrRowStart;
-
- // Find out what range of scroll values there are for this line
- GetRowsRange(&nStart,&nWidth,nRowFrom,nRowTo);
- }
-
- nStart+=nCpsrScrX;
- nStart&=0x3ff;
-
- // Save info in CpsrLineInfo table
- pli->nStart=nStart;
- pli->nWidth=nWidth;
- // Find range of tiles to draw to see whole width:
- pli->nTileStart=nStart>>4;
- pli->nTileEnd=(nStart+nWidth+0x18f)>>4;
- }
-
- PrepareRows();
- return 0;
-}
-
-INT32 Cps2rPrepare()
-{
- INT32 y;
- struct CpsrLineInfo *pli;
- if (CpsrBase==NULL) return 1;
-
- EndLineInfo = ((nEndline + 15) >> 4);
-
- nShiftY=16-(nCpsrScrY&15);
- for (y = -1, pli = CpsrLineInfo; y < EndLineInfo; y++, pli++)
- {
- INT32 nStart=0,nWidth=0;
-
- if (CpsrRows!=NULL)
- {
- INT32 nRowFrom,nRowTo;
- // Find out which rows we need to check
- nRowFrom=(y<<4)+nShiftY;
- nRowTo=nRowFrom+16;
- if (nRowFrom < 0) nRowFrom = 0;
- if (nRowTo > nEndline) nRowTo = nEndline;
-
- // Shift by row table start offset
- nRowFrom+=nCpsrRowStart;
- nRowTo +=nCpsrRowStart;
-
- // Find out what range of scroll values there are for this line
- GetRowsRange(&nStart,&nWidth,nRowFrom,nRowTo);
- }
-
- nStart+=nCpsrScrX;
- nStart&=0x3ff;
-
- // Save info in CpsrLineInfo table
- pli->nStart=nStart;
- pli->nWidth=nWidth;
- // Find range of tiles to draw to see whole width:
- pli->nTileStart=nStart>>4;
- pli->nTileEnd=(nStart+nWidth+0x18f)>>4;
- }
-
- PrepareRows();
- return 0;
-}
-
diff --git a/jan/src/burn/drv/capcom/cpsrd.cpp b/jan/src/burn/drv/capcom/cpsrd.cpp
deleted file mode 100644
index 4598db76e..000000000
--- a/jan/src/burn/drv/capcom/cpsrd.cpp
+++ /dev/null
@@ -1,235 +0,0 @@
-#include "cps.h"
-
-// CPS Scroll2 with Row scroll - Draw
-static INT32 nKnowBlank=-1; // The tile we know is blank
-static INT32 nFirstY, nLastY;
-static INT32 bVCare;
-
-inline static UINT16 *FindTile(INT32 fx,INT32 fy)
-{
- INT32 p; UINT16 *pst;
- // Find tile address
- p=((fy&0x30)<<8) | ((fx&0x3f)<<6) | ((fy&0x0f)<<2);
- pst=(UINT16 *)(CpsrBase + p);
- return pst;
-}
-
-// Draw a tile line without Row Shift
-static void Cps1TileLine(INT32 y,INT32 sx)
-{
- INT32 x,ix,iy,sy;
-
- bVCare=0;
- if (y<0 || y>=14-1) bVCare=1; // Take care on the edges
-
- ix=(sx>>4)+1; sx&=15; sx=16-sx;
- sy=16-(nCpsrScrY&15); iy=(nCpsrScrY>>4)+1;
- nCpstY=sy+(y<<4);
-
- for (x=-1; x<24; x++)
- {
- UINT16 *pst; INT32 t,a;
- // Don't need to clip except around the border
- if (bVCare || x<0 || x>=24-1) nCpstType=CTT_16X16 | CTT_CARE;
- else nCpstType=CTT_16X16;
-
- pst=FindTile(ix+x,iy+y);
- t = BURN_ENDIAN_SWAP_INT16(pst[0]);
-
- if (Scroll2TileMask) t &= Scroll2TileMask;
-
- t = GfxRomBankMapper(GFXTYPE_SCROLL2, t);
- if (t == -1) continue;
-
- t<<=7; // Get real tile address
- t+=nCpsGfxScroll[2]; // add on offset to scroll tile
- if (t==nKnowBlank) continue; // Don't draw: we know it's blank
-
- a = BURN_ENDIAN_SWAP_INT16(pst[1]);
-
- CpstSetPal(0x40 | (a&0x1f));
- nCpstX=sx+(x<<4); nCpstTile=t; nCpstFlip=(a>>5)&3;
-
- if(nBgHi) CpstPmsk = BURN_ENDIAN_SWAP_INT16(*(UINT16 *)(CpsSaveReg[0] + MaskAddr[(a&0x180)>>7]));
- if(CpstOneDoX[nBgHi]()) nKnowBlank=t;
- }
-}
-
-static void Cps2TileLine(INT32 y,INT32 sx)
-{
- INT32 x,ix,iy,sy;
-
- ix=(sx>>4)+1; sx&=15; sx=16-sx;
- sy=16-(nCpsrScrY&15); iy=(nCpsrScrY>>4)+1;
- nCpstY=sy+(y<<4);
-
- for (x=-1; x<24; x++)
- {
- UINT16 *pst; INT32 t,a;
- // Don't need to clip except around the border
- if (bVCare || x<0 || x>=24-1) nCpstType=CTT_16X16 | CTT_CARE;
- else nCpstType=CTT_16X16;
-
- pst=FindTile(ix+x,iy+y);
- t = BURN_ENDIAN_SWAP_INT16(pst[0]);
- t<<=7; // Get real tile address
- t+=nCpsGfxScroll[2]; // add on offset to scroll tiles
- if (t==nKnowBlank) continue; // Don't draw: we know it's blank
- a = BURN_ENDIAN_SWAP_INT16(pst[1]);
-
- CpstSetPal(0x40 | (a&0x1f));
- nCpstX=sx+(x<<4); nCpstTile=t; nCpstFlip=(a>>5)&3;
- if(CpstOneDoX[2]()) nKnowBlank=t;
- }
-}
-
-// Draw a tile line with Row Shift
-static void Cps1TileLineRows(INT32 y,struct CpsrLineInfo *pli)
-{
- INT32 sy,iy,x;
- INT32 nTileCount;
- INT32 nLimLeft,nLimRight;
-
- bVCare=0;
- if (y<0 || y>=14-1) bVCare=1; // Take care on the edges
-
- nTileCount=pli->nTileEnd-pli->nTileStart;
-
- sy=16-(nCpsrScrY&15); iy=(nCpsrScrY>>4)+1;
- nCpstY=sy+(y<<4);
- CpstRowShift=pli->Rows;
-
- // If these rowshift limits go off the edges, we should take
- // care drawing the tile.
- nLimLeft =pli->nMaxLeft;
- nLimRight=pli->nMaxRight;
- for (x=0; xnTileStart+x;
-
- // See if we have to clip vertically anyway
- bCare=bVCare;
- if (bCare==0) // If we don't...
- {
- // Check screen limits of this tile
- if (nLimLeft < 0) bCare=1; // Will cross left egde
- if (nLimRight> 384-16) bCare=1; // Will cross right edge
- }
- if (bCare) nCpstType=CTT_16X16 | CTT_ROWS | CTT_CARE;
- else nCpstType=CTT_16X16 | CTT_ROWS;
-
- pst=FindTile(tx,iy+y);
- t = BURN_ENDIAN_SWAP_INT16(pst[0]);
-
- if (Scroll2TileMask) t &= Scroll2TileMask;
-
- t = GfxRomBankMapper(GFXTYPE_SCROLL2, t);
- if (t == -1) continue;
-
- t<<=7; // Get real tile address
- t+=nCpsGfxScroll[2]; // add on offset to scroll tiles
- if (t==nKnowBlank) continue; // Don't draw: we know it's blank
-
- a = BURN_ENDIAN_SWAP_INT16(pst[1]);
-
- CpstSetPal(0x40 | (a&0x1f));
-
- nCpstX=x<<4; nCpstTile=t; nCpstFlip=(a>>5)&3;
-
- if (nBgHi) {
- CpstPmsk = BURN_ENDIAN_SWAP_INT16(*(UINT16*)(CpsSaveReg[0] + MaskAddr[(a & 0x180) >> 7]));
- }
-
- if(CpstOneDoX[nBgHi]()) nKnowBlank=t;
- }
-}
-
-static void Cps2TileLineRows(INT32 y,struct CpsrLineInfo *pli)
-{
- INT32 sy,iy,x;
- INT32 nTileCount;
- INT32 nLimLeft,nLimRight;
-
- nTileCount=pli->nTileEnd-pli->nTileStart;
-
- sy=16-(nCpsrScrY&15); iy=(nCpsrScrY>>4)+1;
- nCpstY=sy+(y<<4);
- CpstRowShift=pli->Rows;
-
- // If these rowshift limits go off the edges, we should take
- // care drawing the tile.
- nLimLeft =pli->nMaxLeft;
- nLimRight=pli->nMaxRight;
- for (x=0; xnTileStart+x;
-
- // See if we have to clip vertically anyway
- bCare=bVCare;
- if (bCare==0) // If we don't...
- {
- // Check screen limits of this tile
- if (nLimLeft < 0) bCare=1; // Will cross left egde
- if (nLimRight> 384-16) bCare=1; // Will cross right edge
- }
- if (bCare) nCpstType=CTT_16X16 | CTT_ROWS | CTT_CARE;
- else nCpstType=CTT_16X16 | CTT_ROWS;
-
- pst=FindTile(tx,iy+y);
- t = BURN_ENDIAN_SWAP_INT16(pst[0]);
- t<<=7; // Get real tile address
- t+=nCpsGfxScroll[2]; // add on offset to scroll tiles
-
- if (t==nKnowBlank) continue; // Don't draw: we know it's blank
- a = BURN_ENDIAN_SWAP_INT16(pst[1]);
-
- CpstSetPal(0x40 | (a&0x1f));
-
- nCpstX=x<<4; nCpstTile=t; nCpstFlip=(a>>5)&3;
- if(CpstOneDoX[2]()) nKnowBlank=t;
- }
-}
-
-INT32 Cps1rRender()
-{
- INT32 y; struct CpsrLineInfo *pli;
- if (CpsrBase==NULL) return 1;
-
- nKnowBlank=-1; // We don't know which tile is blank yet
-
- for (y=-1,pli=CpsrLineInfo; y<14; y++,pli++)
- {
- if (pli->nWidth==0)
- Cps1TileLine(y,pli->nStart); // no rowscroll needed
- else
- Cps1TileLineRows(y,pli); // row scroll
- }
- return 0;
-}
-
-INT32 Cps2rRender()
-{
- INT32 y;
- struct CpsrLineInfo *pli;
- if (CpsrBase==NULL) return 1;
-
- nKnowBlank = -1; // We don't know which tile is blank yet
-
- nLastY = (nEndline + (nCpsrScrY & 15)) >> 4;
- nFirstY = (nStartline + (nCpsrScrY & 15)) >> 4;
- for (y = nFirstY - 1, pli = CpsrLineInfo + nFirstY; y < nLastY; y++, pli++) {
-
- bVCare = ((y << 4) < nStartline) | (((y << 4) + 16) >= nEndline);
-
- if (pli->nWidth==0) {
- Cps2TileLine(y,pli->nStart); // no rowscroll needed
- } else {
- Cps2TileLineRows(y,pli); // row scroll
- }
- }
- return 0;
-}
diff --git a/jan/src/burn/drv/capcom/cpst.cpp b/jan/src/burn/drv/capcom/cpst.cpp
deleted file mode 100644
index 0d8d38a76..000000000
--- a/jan/src/burn/drv/capcom/cpst.cpp
+++ /dev/null
@@ -1,193 +0,0 @@
-#include "cps.h"
-
-// CPS Tiles
-UINT32 *CpstPal=NULL;
-
-// Arguments for the tile draw function
-UINT32 nCpstType = 0;
-INT32 nCpstX = 0, nCpstY = 0;
-UINT32 nCpstTile = 0;
-UINT32 nCpsBlend = 0;
-INT32 nCpstFlip = 0;
-INT16 *CpstRowShift = NULL;
-UINT32 CpstPmsk = 0; // Pixel mask
-
-INT32 nBgHi = 0;
-UINT16 ZValue = 1;
-UINT16* ZBuf = NULL;
-UINT16* pZVal = NULL;
-
-static INT32 CpstOne();
-static INT32 Cps2tOne();
-static INT32 CpstOneBgHi();
-static INT32 CpstOneObjZ();
-CpstOneDoFn CpstOneDoX[3] = { CpstOne, CpstOneBgHi, Cps2tOne};
-CpstOneDoFn CpstOneObjDoX[2] = { CpstOne, CpstOneObjZ};
-
-static INT32 CpstOne()
-{
- INT32 nFun; INT32 nSize;
- nSize=(nCpstType&24)+8;
-
- if (nCpstType&CTT_CARE)
- {
- if ((nCpstType&CTT_ROWS)==0)
- {
- // Return if not visible at all
- if (nCpstX <= -nSize) return 0;
- if (nCpstX >= 384) return 0;
- if (nCpstY <= -nSize) return 0;
- if (nCpstY >= 224) return 0;
- }
- nCtvRollX=0x4000017f + nCpstX * 0x7fff;
- nCtvRollY=0x400000df + nCpstY * 0x7fff;
- }
-
- // Clip to loaded graphics data (we have a gap of 0x200 at the end)
- nCpstTile&=nCpsGfxMask; if (nCpstTile>=nCpsGfxLen) return 1;
- pCtvTile=CpsGfx+nCpstTile;
-
- // Find pLine (pointer to first pixel)
- pCtvLine=pBurnDraw + nCpstY*nBurnPitch + nCpstX*nBurnBpp;
-
- if (nSize==32) nCtvTileAdd=16; else nCtvTileAdd=8;
-
- if (nCpstFlip&2)
- {
- // Flip vertically
- if (nSize==16) { nCtvTileAdd= -8; pCtvTile+=15* 8; }
- else if (nSize==32) { nCtvTileAdd=-16; pCtvTile+=31*16; }
- else { nCtvTileAdd= -8; pCtvTile+= 7* 8; }
- }
-
- nFun =nCpstType&0x1e;
- nFun|=nCpstFlip&1;
- return CtvDoX[nFun]();
-}
-
-static INT32 CpstOneBgHi()
-{
- INT32 nFun; INT32 nSize;
- nSize=(nCpstType&24)+8;
-
- if (nCpstType&CTT_CARE)
- {
- if ((nCpstType&CTT_ROWS)==0)
- {
- // Return if not visible at all
- if (nCpstX<=-nSize) return 0;
- if (nCpstX>=384) return 0;
- if (nCpstY<=-nSize) return 0;
- if (nCpstY>=224) return 0;
- }
- nCtvRollX=0x4000017f + nCpstX * 0x7fff;
- nCtvRollY=0x400000df + nCpstY * 0x7fff;
- }
-
- // Clip to loaded graphics data (we have a gap of 0x200 at the end)
- nCpstTile&=nCpsGfxMask;
- if (nCpstTile>=nCpsGfxLen) return 1;
- pCtvTile=CpsGfx+nCpstTile;
-
- // Find pLine (pointer to first pixel)
- pCtvLine=pBurnDraw + nCpstY*nBurnPitch + nCpstX*nBurnBpp;
-
- if (nSize==32) nCtvTileAdd=16; else nCtvTileAdd=8;
-
- if (nCpstFlip&2)
- {
- // Flip vertically
- if (nSize==16) { nCtvTileAdd= -8; pCtvTile+=15* 8; }
- else if (nSize==32) { nCtvTileAdd=-16; pCtvTile+=31*16; }
- else { nCtvTileAdd= -8; pCtvTile+= 7* 8; }
- }
-
- nFun =nCpstType&0x1e;
- nFun|=nCpstFlip&1;
- return CtvDoXB[nFun]();
-}
-
-static INT32 Cps2tOne()
-{
- INT32 nFun; INT32 nSize;
- nSize=(nCpstType&24)+8;
-
- if (nCpstType&CTT_CARE)
- {
- if ((nCpstType&CTT_ROWS)==0)
- {
- // Return if not visible at all
- if (nCpstX <= -nSize) return 0;
- if (nCpstX >= 384) return 0;
- if (nCpstY <= -nStartline - nSize) return 0;
- if (nCpstY >= nEndline) return 0;
- }
- nCtvRollX=0x4000017f + nCpstX * 0x7fff;
- nCtvRollY=0x40000000 + nEndline - nStartline - 1 + (nCpstY - nStartline) * 0x7fff;
- }
-
- // Clip to loaded graphics data (we have a gap of 0x200 at the end)
- nCpstTile&=nCpsGfxMask; if (nCpstTile>=nCpsGfxLen) return 0;
- pCtvTile=CpsGfx+nCpstTile;
-
- // Find pLine (pointer to first pixel)
- pCtvLine=pBurnDraw + nCpstY*nBurnPitch + nCpstX*nBurnBpp;
-
- if (nSize==32) nCtvTileAdd=16; else nCtvTileAdd=8;
-
- if (nCpstFlip&2)
- {
- // Flip vertically
- if (nSize==16) { nCtvTileAdd= -8; pCtvTile+=15* 8; }
- else if (nSize==32) { nCtvTileAdd=-16; pCtvTile+=31*16; }
- else { nCtvTileAdd= -8; pCtvTile+= 7* 8; }
- }
-
- nFun =nCpstType&0x1e;
- nFun|=nCpstFlip&1;
- return CtvDoX[nFun]();
-}
-
-static INT32 CpstOneObjZ()
-{
- INT32 nFun; INT32 nSize;
- nSize=(nCpstType&24)+8;
-
-
- if (nCpstType&CTT_CARE)
- {
- if ((nCpstType&CTT_ROWS)==0)
- {
- // Return if not visible at all
- if (nCpstX <= -nSize) return 0;
- if (nCpstX >= 384) return 0;
- if (nCpstY <= -nSize) return 0;
- if (nCpstY >= 224) return 0;
- }
- nCtvRollX=0x4000017f + nCpstX * 0x7fff;
- nCtvRollY=0x400000df + nCpstY * 0x7fff;
- }
-
-
- // Clip to loaded graphics data (we have a gap of 0x200 at the end)
- nCpstTile&=nCpsGfxMask; if (nCpstTile>=nCpsGfxLen) return 1;
- pCtvTile=CpsGfx+nCpstTile;
-
- // Find pLine (pointer to first pixel)
- pCtvLine=pBurnDraw + nCpstY*nBurnPitch + nCpstX*nBurnBpp;
- pZVal=ZBuf + nCpstY*384 + nCpstX;
-
- if (nSize==32) nCtvTileAdd=16; else nCtvTileAdd=8;
-
- if (nCpstFlip&2)
- {
- // Flip vertically
- if (nSize==16) { nCtvTileAdd= -8; pCtvTile+=15* 8; }
- else if (nSize==32) { nCtvTileAdd=-16; pCtvTile+=31*16; }
- else { nCtvTileAdd= -8; pCtvTile+= 7* 8; }
- }
-
- nFun =nCpstType&0x1e;
- nFun|=nCpstFlip&1;
- return CtvDoXM[nFun]();
-}
diff --git a/jan/src/burn/drv/capcom/ctv.cpp b/jan/src/burn/drv/capcom/ctv.cpp
deleted file mode 100644
index ff3d247ce..000000000
--- a/jan/src/burn/drv/capcom/ctv.cpp
+++ /dev/null
@@ -1,49 +0,0 @@
-#include "cps.h"
-
-// CPS Tile Variants
-// horizontal/vertical clip rolls
-UINT32 nCtvRollX=0,nCtvRollY=0;
-// Add 0x7fff after each pixel/line
-// If nRollX/Y&0x20004000 both == 0, you can draw the pixel
-
-UINT8 *pCtvTile=NULL; // Pointer to tile data
-INT32 nCtvTileAdd=0; // Amount to add after each tile line
-UINT8 *pCtvLine=NULL; // Pointer to output bitmap
-
-static inline UINT32 alpha_blend(UINT32 d, UINT32 s, UINT32 p)
-{
- INT32 a = 255 - p;
-
- return (((((s & 0xff00ff) * p) + ((d & 0xff00ff) * a)) & 0xff00ff00) +
- ((((s & 0x00ff00) * p) + ((d & 0x00ff00) * a)) & 0x00ff0000)) >> 8;
-}
-
-// Include all tile variants:
-#include "ctv.h"
-
-static INT32 nLastBpp=0;
-INT32 CtvReady()
-{
- // Set up the CtvDoX functions to point to the correct bpp functions.
- // Must be called before calling CpstOne
- if (nBurnBpp!=nLastBpp)
- {
- if (nBurnBpp==2) {
- memcpy(CtvDoX,CtvDo2,sizeof(CtvDoX));
- memcpy(CtvDoXM,CtvDo2m,sizeof(CtvDoXM));
- memcpy(CtvDoXB,CtvDo2b,sizeof(CtvDoXB));
- }
- else if (nBurnBpp==3) {
- memcpy(CtvDoX,CtvDo3,sizeof(CtvDoX));
- memcpy(CtvDoXM,CtvDo3m,sizeof(CtvDoXM));
- memcpy(CtvDoXB,CtvDo3b,sizeof(CtvDoXB));
- }
- else if (nBurnBpp==4) {
- memcpy(CtvDoX,CtvDo4,sizeof(CtvDoX));
- memcpy(CtvDoXM,CtvDo4m,sizeof(CtvDoXM));
- memcpy(CtvDoXB,CtvDo4b,sizeof(CtvDoXB));
- }
- }
- nLastBpp=nBurnBpp;
- return 0;
-}
diff --git a/jan/src/burn/drv/capcom/ctv_do.h b/jan/src/burn/drv/capcom/ctv_do.h
deleted file mode 100644
index 37e9ca903..000000000
--- a/jan/src/burn/drv/capcom/ctv_do.h
+++ /dev/null
@@ -1,192 +0,0 @@
-// CPS Tiles (header)
-
-// Draw a nxn tile
-// pCtvLine, pTile, nTileAdd are defined
-// CU_FLIPX is 1 to flip the tile horizontally
-// CU_CARE is 1 to clip output based on nCtvRollX/Y
-// CU_ROWS is 1 to shift output based on CpstRowShift
-// CU_SIZE is 8, 16 or 32
-// CU_BPP is 1 2 3 4 bytes per pixel
-// CU_MASK CPS1 BgHi CPS2 Sprite Masking
-
-#ifndef CU_FLIPX
- #error "CU_FLIPX wasn\'t defined"
-#endif
-
-#ifndef CU_CARE
- #error "CU_CARE wasn\'t defined"
-#endif
-
-#ifndef CU_ROWS
- #error "CU_ROWS wasn\'t defined"
-#endif
-
-#ifndef CU_SIZE
- #error "CU_SIZE wasn\'t defined"
-#endif
-
-#ifndef CU_BPP
- #error "CU_BPP wasn\'t defined"
-#endif
-
-#ifndef CU_MASK
- #error "CU_MASK wasn\'t defined"
-#endif
-
-{
- INT32 y;
- UINT32 *ctp;
- UINT32 nBlank = 0;
-
- UINT32 b; // Eight bit-packed pixels (msb) AAAABBBB CCCCDDDD EEEEFFFF GGGGHHHH (lsb)
- UINT32 c; // 32-bit colour value
- UINT8 *pPix; // Pointer to output bitmap
-
-#if CU_ROWS == 1
- INT16 *Rows = CpstRowShift;
-#endif
-
- ctp = CpstPal;
-
-for (y = 0; y < CU_SIZE; y++, pCtvLine += nBurnPitch, pCtvTile += nCtvTileAdd
-
-#if CU_ROWS==1
- ,Rows++
-#endif
-
-#if CU_MASK==1
- ,pZVal += 384
-#endif
-
-)
-{
-#if CU_CARE==1
- UINT32 rx = nCtvRollX; // Copy of nCtvRollX
-#endif
-
-#if CU_MASK==1
- UINT16 *pPixZ;
-#endif
-
-#if CU_CARE==1
- if (nCtvRollY & 0x20004000) { nCtvRollY += 0x7fff; continue; } else nCtvRollY += 0x7fff; // okay to plot line
-#endif
-
- // Point to the line to draw
- pPix = pCtvLine;
-#if CU_MASK==1
- pPixZ = pZVal;
-#endif
-
-#if CU_ROWS==1
- #if CU_MASK==1
- pPixZ += Rows[0];
- #endif
- pPix += Rows[0] * nBurnBpp;
- #if CU_CARE==1
- rx += Rows[0] * 0x7fff;
- #endif
-#endif
-
-// Make macros for plotting c and advancing pPix by one pixel
-#if CU_BPP==2
- #if CU_MASK==1
- #define PLOT { if(*pPixZ < ZValue) { *((UINT16 *)pPix)=(UINT16)c; *pPixZ=ZValue; } }
- #define ADV { pPix+=2; pPixZ++; }
- #else
- #define PLOT { *((UINT16 *)pPix)=(UINT16)c; }
- #define ADV pPix+=2
- #endif
-#elif CU_BPP==3
- #if CU_MASK==1
- #define PLOT { if(*pPixZ < ZValue) { if (nCpsBlend) { c = alpha_blend(pPix[0]|(pPix[1]<<8)|(pPix[2]<<16), c, nCpsBlend); } pPix[0]=(UINT8)c; pPix[1]=(UINT8)(c>>8); pPix[2]=(UINT8)(c>>16); } }
- #define ADV { pPix+=3; pPixZ++; }
- #else
- #define PLOT { if (nCpsBlend) { c = alpha_blend(pPix[0]|(pPix[1]<<8)|(pPix[2]<<16), c, nCpsBlend); } pPix[0]=(UINT8)c; pPix[1]=(UINT8)(c>>8); pPix[2]=(UINT8)(c>>16); }
- #define ADV pPix+=3
- #endif
-#elif CU_BPP==4
- #if CU_MASK==1
- #define PLOT { if(*pPixZ < ZValue) { if (nCpsBlend) { c = alpha_blend(*((UINT32 *)pPix), c, nCpsBlend); } *((UINT32 *)pPix)=c; *pPixZ=ZValue; } }
- #define ADV { pPix+=4; pPixZ++; }
- #else
- #define PLOT { if (nCpsBlend) { c = alpha_blend(*((UINT32 *)pPix), c, nCpsBlend); } *((UINT32 *)pPix)=c; }
- #define ADV pPix+=4
- #endif
-#else
- #error Unsupported CU_BPP
-#endif
-
-// Make macros for plotting the next pixel from 'b' (= 8 packed pixels)
-// or skipping the pixel.
-#if CU_FLIPX==0
- #define NEXTPIXEL ADV; b <<= 4;
- #if CU_MASK==2
- #define DRAWPIXEL { c = (b >> 28); if (c && CpstPmsk & (1 << (c ^ 15))) { c = ctp[c]; PLOT } }
- #else
- #define DRAWPIXEL { if (b & 0xf0000000) { c = ctp[b >> 28]; PLOT } }
- #endif
-#else
- #define NEXTPIXEL ADV; b >>= 4;
- #if CU_MASK==2
- #define DRAWPIXEL { c = (b & 15); if (c && CpstPmsk & (1 << (c ^ 15))) { c = ctp[c]; PLOT } }
- #else
- #define DRAWPIXEL { if (b & 0x0000000f) { c = ctp[b & 15]; PLOT } }
- #endif
-#endif
-
-#define EIGHT(x) x x x x x x x x
-
-#if CU_CARE==1
- // If we need to clip left or right, check nCtvRollX before plotting
- #define DO_PIX if ((rx & 0x20004000) == 0) DRAWPIXEL NEXTPIXEL rx += 0x7fff;
-#else
- // Always plot
- #define DO_PIX DRAWPIXEL NEXTPIXEL
-#endif
-
-#define DRAW_8 nBlank |= b; EIGHT(DO_PIX)
-
-#if CU_SIZE==8
- // 8x8 tiles
- b=*((UINT32 *)(pCtvTile+0)); DRAW_8
-#elif CU_SIZE==16
- // 16x16 tiles
- #if CU_FLIPX==0
- b=*((UINT32 *)(pCtvTile+0)); DRAW_8
- b=*((UINT32 *)(pCtvTile+4)); DRAW_8
- #else
- b=*((UINT32 *)(pCtvTile+4)); DRAW_8
- b=*((UINT32 *)(pCtvTile+0)); DRAW_8
- #endif
-
-#elif CU_SIZE==32
- // 32x32 tiles
- #if CU_FLIPX==0
- b=*((UINT32 *)(pCtvTile+ 0)); DRAW_8
- b=*((UINT32 *)(pCtvTile+ 4)); DRAW_8
- b=*((UINT32 *)(pCtvTile+ 8)); DRAW_8
- b=*((UINT32 *)(pCtvTile+12)); DRAW_8
- #else
- b=*((UINT32 *)(pCtvTile+12)); DRAW_8
- b=*((UINT32 *)(pCtvTile+ 8)); DRAW_8
- b=*((UINT32 *)(pCtvTile+ 4)); DRAW_8
- b=*((UINT32 *)(pCtvTile+ 0)); DRAW_8
- #endif
-
-#else
- #error Unsupported CU_SIZE
-#endif
-
-#undef DRAW_8
-#undef DO_PIX
-#undef EIGHT
-#undef DRAWPIXEL
-#undef NEXTPIXEL
-
-#undef ADV
-#undef PLOT
-}
-
- return nBlank == 0;
-}
diff --git a/jan/src/burn/drv/capcom/ctv_make.cpp b/jan/src/burn/drv/capcom/ctv_make.cpp
deleted file mode 100644
index f39e55978..000000000
--- a/jan/src/burn/drv/capcom/ctv_make.cpp
+++ /dev/null
@@ -1,125 +0,0 @@
-#include
-
-// Create the ctv.h header file
-// which includes all combinations of the cps tile drawing functions
-
-int main()
-{
- int nCuMask=0;
- int nCuBpp=0;
- int nCuSize=0;
- int nCuRows=0;
- int nCuCare=0;
- int nCuFlipX=0;
-
- for (nCuMask=0; nCuMask<=2; nCuMask++)
- {
- printf ("#define CU_MASK (%d)\n\n",nCuMask);
- for (nCuBpp=2; nCuBpp<=4; nCuBpp++)
- {
- printf ("#define CU_BPP (%d)\n\n",nCuBpp);
- for (nCuSize=8; nCuSize<=32; nCuSize<<=1)
- {
- printf ("#define CU_SIZE (%d)\n\n",nCuSize);
- for (nCuRows=0; nCuRows<2; nCuRows++)
- {
- printf ("#define CU_ROWS (%d)\n\n",nCuRows);
- for (nCuCare=0; nCuCare<2; nCuCare++)
- {
- printf ("#define CU_CARE (%d)\n",nCuCare);
- for (nCuFlipX=0; nCuFlipX<2; nCuFlipX++)
- {
- printf ("#define CU_FLIPX (%d)\n",nCuFlipX);
-
- if (((nCuRows && (nCuSize != 16)) || (nCuRows && nCuMask))) {
- printf("// Invalid combination of capabilities.\n");
- } else {
- printf ("static INT32 ");
- printf ("CtvDo");
- printf ("%d",nCuBpp);
- printf ("%.2d",nCuSize);
- if (nCuRows) printf ("r"); else printf ("_");
- if (nCuCare) printf ("c"); else printf ("_");
- if (nCuFlipX) printf ("f"); else printf ("_");
- if (nCuMask==1) printf ("m()\n#include \"ctv_do.h\"\n");
- else if (nCuMask==2) printf ("b()\n#include \"ctv_do.h\"\n");
- else printf ("_()\n#include \"ctv_do.h\"\n");
- }
-
-
-
- printf ("#undef CU_FLIPX\n");
- }
- printf ("#undef CU_CARE\n\n");
- }
- printf ("#undef CU_ROWS\n\n");
- }
- printf ("#undef CU_SIZE\n\n");
- }
- printf ("#undef CU_BPP\n\n");
- }
- printf ("#undef CU_MASK\n\n");
- }
-
- printf ("\n\n");
-
- printf ("// Filler function\n");
- printf ("static INT32 CtvDo_______() { return 0; }\n\n\n\n");
-
- for (nCuMask=0; nCuMask<=2; nCuMask++)
- {
- for (nCuBpp=2; nCuBpp<=4; nCuBpp++)
- {
- int i=0;
-
- if (nCuMask==1)
- {
- printf ("// Lookup table for %d bpp with Sprite Masking\n",nCuBpp);
- printf ("static CtvDoFn CtvDo%dm[0x20]={\n",nCuBpp);
- }
- else if (nCuMask==2)
- {
- printf ("// Lookup table for %d bpp with BgHi\n",nCuBpp);
- printf ("static CtvDoFn CtvDo%db[0x20]={\n",nCuBpp);
- }
- else
- {
- printf ("// Lookup table for %d bpp\n",nCuBpp);
- printf ("static CtvDoFn CtvDo%d[0x20]={\n",nCuBpp);
- }
-
- for (i=0;i<0x20;i++)
- {
- int s;
- printf ("CtvDo");
-
- s=(i&24)+8;
- if (s!=8 && s!=16 && s!=32) { printf ("_______"); goto End; }
- if ((i&4) && (s!=16)) { printf ("_______"); goto End; }
- if ((i&4) && nCuMask) { printf ("_______"); goto End; }
- printf ("%d",nCuBpp);
- printf ("%.2d",s);
- if (i&4) printf ("r"); else printf ("_");
- if (i&2) printf ("c"); else printf ("_");
- if (i&1) printf ("f"); else printf ("_");
- if (nCuMask==1) printf ("m");
- else if (nCuMask==2) printf ("b");
- else printf ("_");
-
- End:
- printf (",");
- if (((i+1)&3)==0) printf("\n");
- }
- printf ("};\n");
- }
- }
-
- printf ("\n\n");
- printf ("// Current BPP:\n");
- printf ("CtvDoFn CtvDoX[0x20];\n");
- printf ("CtvDoFn CtvDoXM[0x20];\n");
- printf ("CtvDoFn CtvDoXB[0x20];\n");
- printf ("\n\n");
-
- return 0;
-}
diff --git a/jan/src/burn/drv/capcom/d_cps1.cpp b/jan/src/burn/drv/capcom/d_cps1.cpp
deleted file mode 100644
index 83c5da42a..000000000
--- a/jan/src/burn/drv/capcom/d_cps1.cpp
+++ /dev/null
@@ -1,21335 +0,0 @@
-#include "cps.h"
-#include "timekpr.h"
-
-#define CPS1_68K_PROGRAM_BYTESWAP 1
-#define CPS1_68K_PROGRAM_NO_BYTESWAP 2
-#define CPS1_Z80_PROGRAM 3
-#define CPS1_TILES 4
-#define CPS1_OKIM6295_SAMPLES 5
-#define CPS1_QSOUND_SAMPLES 6
-#define CPS1_PIC 7
-#define CPS1_EXTRA_TILES_SF2EBBL_400000 8
-#define CPS1_EXTRA_TILES_400000 9
-#define CPS1_EXTRA_TILES_SF2KORYU_400000 10
-#define CPS1_EXTRA_TILES_SF2B_400000 11
-
-typedef INT32 (*Cps1Callback)(INT32);
-static Cps1Callback Cps1GfxLoadCallbackFunction = NULL;
-
-// Input Definitions
-
-static struct BurnInputInfo NTFOInputList[] =
-{
- {"P1 Coin" , BIT_DIGITAL , CpsInp018+0, "p1 coin" },
- {"P1 Start" , BIT_DIGITAL , CpsInp018+4, "p1 start" },
- {"P1 Up" , BIT_DIGITAL , CpsInp001+3, "p1 up" },
- {"P1 Down" , BIT_DIGITAL , CpsInp001+2, "p1 down" },
- {"P1 Left" , BIT_DIGITAL , CpsInp001+1, "p1 left" },
- {"P1 Right" , BIT_DIGITAL , CpsInp001+0, "p1 right" },
- {"P1 Shot" , BIT_DIGITAL , CpsInp001+4, "p1 fire 1" },
- {"P1 Special" , BIT_DIGITAL , CpsInp001+5, "p1 fire 2" },
-
- {"P2 Coin" , BIT_DIGITAL , CpsInp018+1, "p2 coin" },
- {"P2 Start" , BIT_DIGITAL , CpsInp018+5, "p2 start" },
- {"P2 Up" , BIT_DIGITAL , CpsInp000+3, "p2 up" },
- {"P2 Down" , BIT_DIGITAL , CpsInp000+2, "p2 down" },
- {"P2 Left" , BIT_DIGITAL , CpsInp000+1, "p2 left" },
- {"P2 Right" , BIT_DIGITAL , CpsInp000+0, "p2 right" },
- {"P2 Shot" , BIT_DIGITAL , CpsInp000+4, "p2 fire 1" },
- {"P2 Special" , BIT_DIGITAL , CpsInp000+5, "p2 fire 2" },
-
- {"Reset" , BIT_DIGITAL , &CpsReset, "reset" },
- {"Service" , BIT_DIGITAL , CpsInp018+2, "service" },
- {"Dip A" , BIT_DIPSWITCH, &Cpi01A , "dip" },
- {"Dip B" , BIT_DIPSWITCH, &Cpi01C , "dip" },
- {"Dip C" , BIT_DIPSWITCH, &Cpi01E , "dip" },
-};
-
-STDINPUTINFO(NTFO)
-
-static struct BurnInputInfo ThreeWondersInputList[] =
-{
- {"P1 Coin" , BIT_DIGITAL , CpsInp018+0, "p1 coin" },
- {"P1 Start" , BIT_DIGITAL , CpsInp018+4, "p1 start" },
- {"P1 Up" , BIT_DIGITAL , CpsInp001+3, "p1 up" },
- {"P1 Down" , BIT_DIGITAL , CpsInp001+2, "p1 down" },
- {"P1 Left" , BIT_DIGITAL , CpsInp001+1, "p1 left" },
- {"P1 Right" , BIT_DIGITAL , CpsInp001+0, "p1 right" },
- {"P1 Button 1" , BIT_DIGITAL , CpsInp001+4, "p1 fire 1" },
- {"P1 Button 2" , BIT_DIGITAL , CpsInp001+5, "p1 fire 2" },
-
- {"P2 Coin" , BIT_DIGITAL , CpsInp018+1, "p2 coin" },
- {"P2 Start" , BIT_DIGITAL , CpsInp018+5, "p2 start" },
- {"P2 Up" , BIT_DIGITAL , CpsInp000+3, "p2 up" },
- {"P2 Down" , BIT_DIGITAL , CpsInp000+2, "p2 down" },
- {"P2 Left" , BIT_DIGITAL , CpsInp000+1, "p2 left" },
- {"P2 Right" , BIT_DIGITAL , CpsInp000+0, "p2 right" },
- {"P2 Button 1" , BIT_DIGITAL , CpsInp000+4, "p2 fire 1" },
- {"P2 Button 2" , BIT_DIGITAL , CpsInp000+5, "p2 fire 2" },
-
- {"Reset" , BIT_DIGITAL , &CpsReset , "reset" },
- {"Diagnostic" , BIT_DIGITAL , CpsInp018+6, "diag" },
- {"Service" , BIT_DIGITAL , CpsInp018+2, "service" },
- {"Dip A" , BIT_DIPSWITCH, &Cpi01A , "dip" },
- {"Dip B" , BIT_DIPSWITCH, &Cpi01C , "dip" },
- {"Dip C" , BIT_DIPSWITCH, &Cpi01E , "dip" },
-};
-
-STDINPUTINFO(ThreeWonders)
-
-static struct BurnInputInfo CaptcommInputList[] =
-{
- {"P1 Coin" , BIT_DIGITAL , CpsInp018+0, "p1 coin" },
- {"P1 Start" , BIT_DIGITAL , CpsInp018+4, "p1 start" },
- {"P1 Up" , BIT_DIGITAL , CpsInp001+3, "p1 up" },
- {"P1 Down" , BIT_DIGITAL , CpsInp001+2, "p1 down" },
- {"P1 Left" , BIT_DIGITAL , CpsInp001+1, "p1 left" },
- {"P1 Right" , BIT_DIGITAL , CpsInp001+0, "p1 right" },
- {"P1 Attack" , BIT_DIGITAL , CpsInp001+4, "p1 fire 1" },
- {"P1 Jump" , BIT_DIGITAL , CpsInp001+5, "p1 fire 2" },
-
- {"P2 Coin" , BIT_DIGITAL , CpsInp018+1, "p2 coin" },
- {"P2 Start" , BIT_DIGITAL , CpsInp018+5, "p2 start" },
- {"P2 Up" , BIT_DIGITAL , CpsInp000+3, "p2 up" },
- {"P2 Down" , BIT_DIGITAL , CpsInp000+2, "p2 down" },
- {"P2 Left" , BIT_DIGITAL , CpsInp000+1, "p2 left" },
- {"P2 Right" , BIT_DIGITAL , CpsInp000+0, "p2 right" },
- {"P2 Attack" , BIT_DIGITAL , CpsInp000+4, "p2 fire 1" },
- {"P2 Jump" , BIT_DIGITAL , CpsInp000+5, "p2 fire 2" },
-
- {"P3 Coin" , BIT_DIGITAL , CpsInp177+6, "p3 coin" },
- {"P3 Start" , BIT_DIGITAL , CpsInp177+7, "p3 start" },
- {"P3 Up" , BIT_DIGITAL , CpsInp177+3, "p3 up" },
- {"P3 Down" , BIT_DIGITAL , CpsInp177+2, "p3 down" },
- {"P3 Left" , BIT_DIGITAL , CpsInp177+1, "p3 left" },
- {"P3 Right" , BIT_DIGITAL , CpsInp177+0, "p3 right" },
- {"P3 Attack" , BIT_DIGITAL , CpsInp177+4, "p3 fire 1" },
- {"P3 Jump" , BIT_DIGITAL , CpsInp177+5, "p3 fire 2" },
-
- {"P4 Coin" , BIT_DIGITAL , CpsInp179+6, "p4 coin" },
- {"P4 Start" , BIT_DIGITAL , CpsInp179+7, "p4 start" },
- {"P4 Up" , BIT_DIGITAL , CpsInp179+3, "p4 up" },
- {"P4 Down" , BIT_DIGITAL , CpsInp179+2, "p4 down" },
- {"P4 Left" , BIT_DIGITAL , CpsInp179+1, "p4 left" },
- {"P4 Right" , BIT_DIGITAL , CpsInp179+0, "p4 right" },
- {"P4 Attack" , BIT_DIGITAL , CpsInp179+4, "p4 fire 1" },
- {"P4 Jump" , BIT_DIGITAL , CpsInp179+5, "p4 fire 2" },
-
- {"Reset" , BIT_DIGITAL , &CpsReset , "reset" },
- {"Diagnostic" , BIT_DIGITAL , CpsInp018+6, "diag" },
- {"Service" , BIT_DIGITAL , CpsInp018+2, "service" },
- {"Dip A" , BIT_DIPSWITCH, &Cpi01A , "dip" },
- {"Dip B" , BIT_DIPSWITCH, &Cpi01C , "dip" },
- {"Dip C" , BIT_DIPSWITCH, &Cpi01E , "dip" },
-};
-
-STDINPUTINFO(Captcomm)
-
-static struct BurnInputInfo CawingInputList[] =
-{
- {"P1 Coin" , BIT_DIGITAL , CpsInp018+0, "p1 coin" },
- {"P1 Start" , BIT_DIGITAL , CpsInp018+4, "p1 start" },
- {"P1 Up" , BIT_DIGITAL , CpsInp001+3, "p1 up" },
- {"P1 Down" , BIT_DIGITAL , CpsInp001+2, "p1 down" },
- {"P1 Left" , BIT_DIGITAL , CpsInp001+1, "p1 left" },
- {"P1 Right" , BIT_DIGITAL , CpsInp001+0, "p1 right" },
- {"P1 Shot" , BIT_DIGITAL , CpsInp001+4, "p1 fire 1" },
- {"P1 Special" , BIT_DIGITAL , CpsInp001+5, "p1 fire 2" },
- {"P1 Fire 3" , BIT_DIGITAL , CpsInp001+6, "p1 fire 3" },
-
- {"P2 Coin" , BIT_DIGITAL , CpsInp018+1, "p2 coin" },
- {"P2 Start" , BIT_DIGITAL , CpsInp018+5, "p2 start" },
- {"P2 Up" , BIT_DIGITAL , CpsInp000+3, "p2 up" },
- {"P2 Down" , BIT_DIGITAL , CpsInp000+2, "p2 down" },
- {"P2 Left" , BIT_DIGITAL , CpsInp000+1, "p2 left" },
- {"P2 Right" , BIT_DIGITAL , CpsInp000+0, "p2 right" },
- {"P2 Shot" , BIT_DIGITAL , CpsInp000+4, "p2 fire 1" },
- {"P2 Special" , BIT_DIGITAL , CpsInp000+5, "p2 fire 2" },
- {"P2 Fire 3" , BIT_DIGITAL , CpsInp000+6, "p2 fire 3" },
-
- {"Reset" , BIT_DIGITAL , &CpsReset, "reset" },
- {"Diagnostic" , BIT_DIGITAL , CpsInp018+6, "diag" },
- {"Service" , BIT_DIGITAL , CpsInp018+2, "service" },
- {"Dip A" , BIT_DIPSWITCH, &Cpi01A , "dip" },
- {"Dip B" , BIT_DIPSWITCH, &Cpi01C , "dip" },
- {"Dip C" , BIT_DIPSWITCH, &Cpi01E , "dip" },
-};
-
-STDINPUTINFO(Cawing)
-
-static struct BurnInputInfo Cworld2jInputList[] =
-{
- {"P1 Coin" , BIT_DIGITAL , CpsInp018+0, "p1 coin" },
- {"P1 Start" , BIT_DIGITAL , CpsInp018+4, "p1 start" },
- {"P1 Answer 1" , BIT_DIGITAL , CpsInp001+4, "p1 fire 1" },
- {"P1 Answer 2" , BIT_DIGITAL , CpsInp001+5, "p1 fire 2" },
- {"P1 Answer 3" , BIT_DIGITAL , CpsInp001+6, "p1 fire 3" },
- {"P1 Answer 4" , BIT_DIGITAL , CpsInp001+7, "p1 fire 4" },
-
- {"P2 Coin" , BIT_DIGITAL , CpsInp018+1, "p2 coin" },
- {"P2 Start" , BIT_DIGITAL , CpsInp018+5, "p2 start" },
- {"P2 Answer 1" , BIT_DIGITAL , CpsInp000+4, "p2 fire 1" },
- {"P2 Answer 2" , BIT_DIGITAL , CpsInp000+5, "p2 fire 2" },
- {"P2 Answer 3" , BIT_DIGITAL , CpsInp000+6, "p2 fire 3" },
- {"P2 Answer 4" , BIT_DIGITAL , CpsInp000+7, "p2 fire 4" },
-
- {"Reset" , BIT_DIGITAL , &CpsReset, "reset" },
- {"Diagnostic" , BIT_DIGITAL , CpsInp018+6, "diag" },
- {"Service" , BIT_DIGITAL , CpsInp018+2, "service" },
- {"Dip A" , BIT_DIPSWITCH, &Cpi01A , "dip" },
- {"Dip B" , BIT_DIPSWITCH, &Cpi01C , "dip" },
- {"Dip C" , BIT_DIPSWITCH, &Cpi01E , "dip" },
-};
-
-STDINPUTINFO(Cworld2j)
-
-static struct BurnInputInfo DinoInputList[] =
-{
- {"P1 Coin" , BIT_DIGITAL , CpsInp018+0 , "p1 coin" },
- {"P1 Start" , BIT_DIGITAL , CpsInp018+4 , "p1 start" },
- {"P1 Up" , BIT_DIGITAL , CpsInp001+3 , "p1 up" },
- {"P1 Down" , BIT_DIGITAL , CpsInp001+2 , "p1 down" },
- {"P1 Left" , BIT_DIGITAL , CpsInp001+1 , "p1 left" },
- {"P1 Right" , BIT_DIGITAL , CpsInp001+0 , "p1 right" },
- {"P1 Attack" , BIT_DIGITAL , CpsInp001+4 , "p1 fire 1"},
- {"P1 Jump" , BIT_DIGITAL , CpsInp001+5 , "p1 fire 2"},
-
- {"P2 Coin" , BIT_DIGITAL , CpsInp018+1 , "p2 coin" },
- {"P2 Start" , BIT_DIGITAL , CpsInp018+5 , "p2 start" },
- {"P2 Up" , BIT_DIGITAL , CpsInp000+3 , "p2 up" },
- {"P2 Down" , BIT_DIGITAL , CpsInp000+2 , "p2 down" },
- {"P2 Left" , BIT_DIGITAL , CpsInp000+1 , "p2 left" },
- {"P2 Right" , BIT_DIGITAL , CpsInp000+0 , "p2 right" },
- {"P2 Attack" , BIT_DIGITAL , CpsInp000+4 , "p2 fire 1"},
- {"P2 Jump" , BIT_DIGITAL , CpsInp000+5 , "p2 fire 2"},
-
- {"P3 Coin" , BIT_DIGITAL , CpsInpc001+6, "p3 coin" },
- {"P3 Start" , BIT_DIGITAL , CpsInpc001+7, "p3 start" },
- {"P3 Up" , BIT_DIGITAL , CpsInpc001+3, "p3 up" },
- {"P3 Down" , BIT_DIGITAL , CpsInpc001+2, "p3 down" },
- {"P3 Left" , BIT_DIGITAL , CpsInpc001+1, "p3 left" },
- {"P3 Right" , BIT_DIGITAL , CpsInpc001+0, "p3 right" },
- {"P3 Attack" , BIT_DIGITAL , CpsInpc001+4, "p3 fire 1"},
- {"P3 Jump" , BIT_DIGITAL , CpsInpc001+5, "p3 fire 2"},
-
- {"Reset" , BIT_DIGITAL , &CpsReset , "reset" },
- {"Diagnostic" , BIT_DIGITAL , CpsInp018+6 , "diag" },
- {"Service" , BIT_DIGITAL , CpsInp018+2 , "service" },
- {"Dip C" , BIT_DIPSWITCH, &Cpi01E , "dip" },
-};
-
-STDINPUTINFO(Dino)
-
-static struct BurnInputInfo DinohInputList[] =
-{
- {"P1 Coin" , BIT_DIGITAL , CpsInp018+0 , "p1 coin" },
- {"P1 Start" , BIT_DIGITAL , CpsInp018+4 , "p1 start" },
- {"P1 Up" , BIT_DIGITAL , CpsInp001+3 , "p1 up" },
- {"P1 Down" , BIT_DIGITAL , CpsInp001+2 , "p1 down" },
- {"P1 Left" , BIT_DIGITAL , CpsInp001+1 , "p1 left" },
- {"P1 Right" , BIT_DIGITAL , CpsInp001+0 , "p1 right" },
- {"P1 Attack" , BIT_DIGITAL , CpsInp001+4 , "p1 fire 1"},
- {"P1 Jump" , BIT_DIGITAL , CpsInp001+5 , "p1 fire 2"},
- {"P1 Bomb" , BIT_DIGITAL , CpsInp001+6 , "p1 fire 3"},
-
- {"P2 Coin" , BIT_DIGITAL , CpsInp018+1 , "p2 coin" },
- {"P2 Start" , BIT_DIGITAL , CpsInp018+5 , "p2 start" },
- {"P2 Up" , BIT_DIGITAL , CpsInp000+3 , "p2 up" },
- {"P2 Down" , BIT_DIGITAL , CpsInp000+2 , "p2 down" },
- {"P2 Left" , BIT_DIGITAL , CpsInp000+1 , "p2 left" },
- {"P2 Right" , BIT_DIGITAL , CpsInp000+0 , "p2 right" },
- {"P2 Attack" , BIT_DIGITAL , CpsInp000+4 , "p2 fire 1"},
- {"P2 Jump" , BIT_DIGITAL , CpsInp000+5 , "p2 fire 2"},
- {"P2 Bomb" , BIT_DIGITAL , CpsInp000+6 , "p2 fire 3"},
-
- {"P3 Coin" , BIT_DIGITAL , CpsInp177+6, "p3 coin" },
- {"P3 Start" , BIT_DIGITAL , CpsInp177+7, "p3 start" },
- {"P3 Up" , BIT_DIGITAL , CpsInp177+3, "p3 up" },
- {"P3 Down" , BIT_DIGITAL , CpsInp177+2, "p3 down" },
- {"P3 Left" , BIT_DIGITAL , CpsInp177+1, "p3 left" },
- {"P3 Right" , BIT_DIGITAL , CpsInp177+0, "p3 right" },
- {"P3 Attack" , BIT_DIGITAL , CpsInp177+4, "p3 fire 1" },
- {"P3 Jump" , BIT_DIGITAL , CpsInp177+5, "p3 fire 2" },
-
- {"Reset" , BIT_DIGITAL , &CpsReset , "reset" },
- {"Diagnostic" , BIT_DIGITAL , CpsInp018+6 , "diag" },
- {"Service" , BIT_DIGITAL , CpsInp018+2 , "service" },
- {"Dip C" , BIT_DIPSWITCH, &Cpi01E , "dip" },
-};
-
-STDINPUTINFO(Dinoh)
-
-static struct BurnInputInfo DynwarInputList[] =
-{
- {"P1 Coin" , BIT_DIGITAL , CpsInp018+0, "p1 coin" },
- {"P1 Start" , BIT_DIGITAL , CpsInp018+4, "p1 start" },
- {"P1 Up" , BIT_DIGITAL , CpsInp001+3, "p1 up" },
- {"P1 Down" , BIT_DIGITAL , CpsInp001+2, "p1 down" },
- {"P1 Left" , BIT_DIGITAL , CpsInp001+1, "p1 left" },
- {"P1 Right" , BIT_DIGITAL , CpsInp001+0, "p1 right" },
- {"P1 Attack Left" , BIT_DIGITAL , CpsInp001+4, "p1 fire 1" },
- {"P1 Attack Right" , BIT_DIGITAL , CpsInp001+5, "p1 fire 2" },
- {"P1 Special" , BIT_DIGITAL , CpsInp001+6, "p1 fire 3" },
-
- {"P2 Coin" , BIT_DIGITAL , CpsInp018+1, "p2 coin" },
- {"P2 Start" , BIT_DIGITAL , CpsInp018+5, "p2 start" },
- {"P2 Up" , BIT_DIGITAL , CpsInp000+3, "p2 up" },
- {"P2 Down" , BIT_DIGITAL , CpsInp000+2, "p2 down" },
- {"P2 Left" , BIT_DIGITAL , CpsInp000+1, "p2 left" },
- {"P2 Right" , BIT_DIGITAL , CpsInp000+0, "p2 right" },
- {"P2 Attack Left" , BIT_DIGITAL , CpsInp000+4, "p2 fire 1" },
- {"P2 Attack Right" , BIT_DIGITAL , CpsInp000+5, "p2 fire 2" },
- {"P2 Special" , BIT_DIGITAL , CpsInp000+6, "p2 fire 3" },
-
- {"Reset" , BIT_DIGITAL , &CpsReset, "reset" },
- {"Service" , BIT_DIGITAL , CpsInp018+2, "service" },
- {"Dip A" , BIT_DIPSWITCH, &Cpi01A , "dip" },
- {"Dip B" , BIT_DIPSWITCH, &Cpi01C , "dip" },
- {"Dip C" , BIT_DIPSWITCH, &Cpi01E , "dip" },
-};
-
-STDINPUTINFO(Dynwar)
-
-static struct BurnInputInfo FfightInputList[] =
-{
- {"P1 Coin" , BIT_DIGITAL , CpsInp018+0, "p1 coin" },
- {"P1 Start" , BIT_DIGITAL , CpsInp018+4, "p1 start" },
- {"P1 Up" , BIT_DIGITAL , CpsInp001+3, "p1 up" },
- {"P1 Down" , BIT_DIGITAL , CpsInp001+2, "p1 down" },
- {"P1 Left" , BIT_DIGITAL , CpsInp001+1, "p1 left" },
- {"P1 Right" , BIT_DIGITAL , CpsInp001+0, "p1 right" },
- {"P1 Attack" , BIT_DIGITAL , CpsInp001+4, "p1 fire 1" },
- {"P1 Jump" , BIT_DIGITAL , CpsInp001+5, "p1 fire 2" },
- {"P1 Special" , BIT_DIGITAL , CpsInp001+6, "p1 fire 3" },
-
- {"P2 Coin" , BIT_DIGITAL , CpsInp018+1, "p2 coin" },
- {"P2 Start" , BIT_DIGITAL , CpsInp018+5, "p2 start" },
- {"P2 Up" , BIT_DIGITAL , CpsInp000+3, "p2 up" },
- {"P2 Down" , BIT_DIGITAL , CpsInp000+2, "p2 down" },
- {"P2 Left" , BIT_DIGITAL , CpsInp000+1, "p2 left" },
- {"P2 Right" , BIT_DIGITAL , CpsInp000+0, "p2 right" },
- {"P2 Attack" , BIT_DIGITAL , CpsInp000+4, "p2 fire 1" },
- {"P2 Jump" , BIT_DIGITAL , CpsInp000+5, "p2 fire 2" },
- {"P2 Special" , BIT_DIGITAL , CpsInp000+6, "p2 fire 3" },
-
- {"Reset" , BIT_DIGITAL , &CpsReset, "reset" },
- {"Service" , BIT_DIGITAL , CpsInp018+2, "service" },
- {"Dip A" , BIT_DIPSWITCH, &Cpi01A , "dip" },
- {"Dip B" , BIT_DIPSWITCH, &Cpi01C , "dip" },
- {"Dip C" , BIT_DIPSWITCH, &Cpi01E , "dip" },
-};
-
-STDINPUTINFO(Ffight)
-
-#define A(a, b, c, d) {a, b, (UINT8*)(c), d}
-
-static struct BurnInputInfo ForgottnInputList[] =
-{
- {"P1 Coin" , BIT_DIGITAL, CpsInp018+0, "p1 coin" },
- {"P1 Start" , BIT_DIGITAL, CpsInp018+4, "p1 start" },
- {"P1 Up" , BIT_DIGITAL, CpsInp001+3, "p1 up" },
- {"P1 Down" , BIT_DIGITAL, CpsInp001+2, "p1 down" },
- {"P1 Left" , BIT_DIGITAL, CpsInp001+1, "p1 left" },
- {"P1 Right" , BIT_DIGITAL, CpsInp001+0, "p1 right" },
- {"P1 Attack" , BIT_DIGITAL, CpsInp001+4, "p1 fire 1"},
- A("P1 Turn (analog)", BIT_ANALOG_REL, &CpsInp055, "p1 z-axis"),
- {"P1 Turn - (digital)", BIT_DIGITAL, CpsDigUD+0, "p1 fire 2"},
- {"P1 Turn + (digital)", BIT_DIGITAL, CpsDigUD+1, "p1 fire 3"},
-
- {"P2 Coin" , BIT_DIGITAL, CpsInp018+1, "p2 coin" },
- {"P2 Start" , BIT_DIGITAL, CpsInp018+5, "p2 start" },
- {"P2 Up" , BIT_DIGITAL, CpsInp000+3, "p2 up" },
- {"P2 Down" , BIT_DIGITAL, CpsInp000+2, "p2 down" },
- {"P2 Left" , BIT_DIGITAL, CpsInp000+1, "p2 left" },
- {"P2 Right" , BIT_DIGITAL, CpsInp000+0, "p2 right" },
- {"P2 Attack" , BIT_DIGITAL, CpsInp000+4, "p2 fire 1"},
- A("P2 Turn (analog)", BIT_ANALOG_REL, &CpsInp05d, "p2 z-axis"),
- {"P2 Turn - (digital)", BIT_DIGITAL, CpsDigUD+2, "p2 fire 2"},
- {"P2 Turn + (digital)", BIT_DIGITAL, CpsDigUD+3, "p2 fire 3"},
-
- {"Reset" , BIT_DIGITAL, &CpsReset, "reset" },
- {"Service" , BIT_DIGITAL, CpsInp018+2, "service" },
-
- {"Dip A" , BIT_DIPSWITCH, &Cpi01A , "dip" },
- {"Dip B" , BIT_DIPSWITCH, &Cpi01C , "dip" },
- {"Dip C" , BIT_DIPSWITCH, &Cpi01E , "dip" },
- {"Dip D" , BIT_DIPSWITCH, &fFakeDip , "dip" },
-};
-
-#undef A
-
-STDINPUTINFO(Forgottn)
-
-static struct BurnInputInfo GanbareInputList[] = {
- {"Coin 1" , BIT_DIGITAL , CpsInp018+0, "p1 coin" },
- {"Coin 2" , BIT_DIGITAL , CpsInp018+1, "p2 coin" },
- {"Start" , BIT_DIGITAL , CpsInp018+4, "p1 start" },
- {"Left Switch" , BIT_DIGITAL , CpsInp001+1, "p1 left" },
- {"Right Switch" , BIT_DIGITAL , CpsInp001+0, "p1 right" },
- {"Show Switch" , BIT_DIGITAL , CpsInp001+4, "p1 fire 1" },
- {"Pay Switch" , BIT_DIGITAL , CpsInp001+5, "p1 fire 2" },
-
- {"Reset" , BIT_DIGITAL , &CpsReset , "reset" },
- {"Diagnostic" , BIT_DIGITAL , CpsInp018+6, "diag" },
- {"Service" , BIT_DIGITAL , CpsInp018+2, "service" },
- {"Dip A" , BIT_DIPSWITCH, &Cpi01A , "dip" },
- {"Dip B" , BIT_DIPSWITCH, &Cpi01C , "dip" },
- {"Dip C" , BIT_DIPSWITCH, &Cpi01E , "dip" },
-};
-
-STDINPUTINFO(Ganbare)
-
-static struct BurnInputInfo GhoulsInputList[] =
-{
- {"P1 Coin" , BIT_DIGITAL , CpsInp018+0, "p1 coin" },
- {"P1 Start" , BIT_DIGITAL , CpsInp018+4, "p1 start" },
- {"P1 Up" , BIT_DIGITAL , CpsInp001+3, "p1 up" },
- {"P1 Down" , BIT_DIGITAL , CpsInp001+2, "p1 down" },
- {"P1 Left" , BIT_DIGITAL , CpsInp001+1, "p1 left" },
- {"P1 Right" , BIT_DIGITAL , CpsInp001+0, "p1 right" },
- {"P1 Fire" , BIT_DIGITAL , CpsInp001+4, "p1 fire 1" },
- {"P1 Jump" , BIT_DIGITAL , CpsInp001+5, "p1 fire 2" },
-
- {"P2 Coin" , BIT_DIGITAL , CpsInp018+1, "p2 coin" },
- {"P2 Start" , BIT_DIGITAL , CpsInp018+5, "p2 start" },
- {"P2 Up" , BIT_DIGITAL , CpsInp000+3, "p2 up" },
- {"P2 Down" , BIT_DIGITAL , CpsInp000+2, "p2 down" },
- {"P2 Left" , BIT_DIGITAL , CpsInp000+1, "p2 left" },
- {"P2 Right" , BIT_DIGITAL , CpsInp000+0, "p2 right" },
- {"P2 Fire" , BIT_DIGITAL , CpsInp000+4, "p2 fire 1" },
- {"P2 Jump" , BIT_DIGITAL , CpsInp000+5, "p2 fire 2" },
-
- {"Reset" , BIT_DIGITAL , &CpsReset , "reset" },
- {"Service" , BIT_DIGITAL , CpsInp018+2, "service" },
- {"Dip A" , BIT_DIPSWITCH, &Cpi01A , "dip" },
- {"Dip B" , BIT_DIPSWITCH, &Cpi01C , "dip" },
- {"Dip C" , BIT_DIPSWITCH, &Cpi01E , "dip" },
-};
-
-STDINPUTINFO(Ghouls)
-
-static struct BurnInputInfo KnightsInputList[] =
-{
- {"P1 Coin" , BIT_DIGITAL , CpsInp018+0, "p1 coin" },
- {"P1 Start" , BIT_DIGITAL , CpsInp018+4, "p1 start" },
- {"P1 Up" , BIT_DIGITAL , CpsInp001+3, "p1 up" },
- {"P1 Down" , BIT_DIGITAL , CpsInp001+2, "p1 down" },
- {"P1 Left" , BIT_DIGITAL , CpsInp001+1, "p1 left" },
- {"P1 Right" , BIT_DIGITAL , CpsInp001+0, "p1 right" },
- {"P1 Attack" , BIT_DIGITAL , CpsInp001+4, "p1 fire 1" },
- {"P1 Jump" , BIT_DIGITAL , CpsInp001+5, "p1 fire 2" },
-
- {"P2 Coin" , BIT_DIGITAL , CpsInp018+1, "p2 coin" },
- {"P2 Start" , BIT_DIGITAL , CpsInp018+5, "p2 start" },
- {"P2 Up" , BIT_DIGITAL , CpsInp000+3, "p2 up" },
- {"P2 Down" , BIT_DIGITAL , CpsInp000+2, "p2 down" },
- {"P2 Left" , BIT_DIGITAL , CpsInp000+1, "p2 left" },
- {"P2 Right" , BIT_DIGITAL , CpsInp000+0, "p2 right" },
- {"P2 Attack" , BIT_DIGITAL , CpsInp000+4, "p2 fire 1" },
- {"P2 Jump" , BIT_DIGITAL , CpsInp000+5, "p2 fire 2" },
-
- {"P3 Coin" , BIT_DIGITAL , CpsInp177+6, "p3 coin" },
- {"P3 Start" , BIT_DIGITAL , CpsInp177+7, "p3 start" },
- {"P3 Up" , BIT_DIGITAL , CpsInp177+3, "p3 up" },
- {"P3 Down" , BIT_DIGITAL , CpsInp177+2, "p3 down" },
- {"P3 Left" , BIT_DIGITAL , CpsInp177+1, "p3 left" },
- {"P3 Right" , BIT_DIGITAL , CpsInp177+0, "p3 right" },
- {"P3 Attack" , BIT_DIGITAL , CpsInp177+4, "p3 fire 1" },
- {"P3 Jump" , BIT_DIGITAL , CpsInp177+5, "p3 fire 2" },
-
- {"Reset" , BIT_DIGITAL , &CpsReset, "reset" },
- {"Diagnostic" , BIT_DIGITAL , CpsInp018+6, "diag" },
- {"Service" , BIT_DIGITAL , CpsInp018+2, "service" },
- {"Dip A" , BIT_DIPSWITCH, &Cpi01A , "dip" },
- {"Dip B" , BIT_DIPSWITCH, &Cpi01C , "dip" },
- {"Dip C" , BIT_DIPSWITCH, &Cpi01E , "dip" },
-};
-
-STDINPUTINFO(Knights)
-
-static struct BurnInputInfo KodInputList[] =
-{
- {"P1 Coin" , BIT_DIGITAL , CpsInp018+0, "p1 coin" },
- {"P1 Start" , BIT_DIGITAL , CpsInp018+4, "p1 start" },
- {"P1 Up" , BIT_DIGITAL , CpsInp001+3, "p1 up" },
- {"P1 Down" , BIT_DIGITAL , CpsInp001+2, "p1 down" },
- {"P1 Left" , BIT_DIGITAL , CpsInp001+1, "p1 left" },
- {"P1 Right" , BIT_DIGITAL , CpsInp001+0, "p1 right" },
- {"P1 Attack" , BIT_DIGITAL , CpsInp001+4, "p1 fire 1" },
- {"P1 Jump" , BIT_DIGITAL , CpsInp001+5, "p1 fire 2" },
-
- {"P2 Coin" , BIT_DIGITAL , CpsInp018+1, "p2 coin" },
- {"P2 Start" , BIT_DIGITAL , CpsInp018+5, "p2 start" },
- {"P2 Up" , BIT_DIGITAL , CpsInp000+3, "p2 up" },
- {"P2 Down" , BIT_DIGITAL , CpsInp000+2, "p2 down" },
- {"P2 Left" , BIT_DIGITAL , CpsInp000+1, "p2 left" },
- {"P2 Right" , BIT_DIGITAL , CpsInp000+0, "p2 right" },
- {"P2 Attack" , BIT_DIGITAL , CpsInp000+4, "p2 fire 1" },
- {"P2 Jump" , BIT_DIGITAL , CpsInp000+5, "p2 fire 2" },
-
- {"P3 Coin" , BIT_DIGITAL , CpsInp177+6, "p3 coin" },
- {"P3 Start" , BIT_DIGITAL , CpsInp177+7, "p3 start" },
- {"P3 Up" , BIT_DIGITAL , CpsInp177+3, "p3 up" },
- {"P3 Down" , BIT_DIGITAL , CpsInp177+2, "p3 down" },
- {"P3 Left" , BIT_DIGITAL , CpsInp177+1, "p3 left" },
- {"P3 Right" , BIT_DIGITAL , CpsInp177+0, "p3 right" },
- {"P3 Attack" , BIT_DIGITAL , CpsInp177+4, "p3 fire 1" },
- {"P3 Jump" , BIT_DIGITAL , CpsInp177+5, "p3 fire 2" },
-
- {"Reset" , BIT_DIGITAL , &CpsReset, "reset" },
- {"Diagnostic" , BIT_DIGITAL , CpsInp018+6, "diag" },
- {"Service" , BIT_DIGITAL , CpsInp018+2, "service" },
- {"Dip A" , BIT_DIPSWITCH, &Cpi01A , "dip" },
- {"Dip B" , BIT_DIPSWITCH, &Cpi01C , "dip" },
- {"Dip C" , BIT_DIPSWITCH, &Cpi01E , "dip" },
-};
-
-STDINPUTINFO(Kod)
-
-static struct BurnInputInfo KodhInputList[] =
-{
- {"P1 Coin" , BIT_DIGITAL , CpsInp018+0, "p1 coin" },
- {"P1 Start" , BIT_DIGITAL , CpsInp018+4, "p1 start" },
- {"P1 Up" , BIT_DIGITAL , CpsInp001+3, "p1 up" },
- {"P1 Down" , BIT_DIGITAL , CpsInp001+2, "p1 down" },
- {"P1 Left" , BIT_DIGITAL , CpsInp001+1, "p1 left" },
- {"P1 Right" , BIT_DIGITAL , CpsInp001+0, "p1 right" },
- {"P1 Attack" , BIT_DIGITAL , CpsInp001+4, "p1 fire 1" },
- {"P1 Jump" , BIT_DIGITAL , CpsInp001+5, "p1 fire 2" },
-
- {"P2 Coin" , BIT_DIGITAL , CpsInp018+1, "p2 coin" },
- {"P2 Start" , BIT_DIGITAL , CpsInp018+5, "p2 start" },
- {"P2 Up" , BIT_DIGITAL , CpsInp000+3, "p2 up" },
- {"P2 Down" , BIT_DIGITAL , CpsInp000+2, "p2 down" },
- {"P2 Left" , BIT_DIGITAL , CpsInp000+1, "p2 left" },
- {"P2 Right" , BIT_DIGITAL , CpsInp000+0, "p2 right" },
- {"P2 Attack" , BIT_DIGITAL , CpsInp000+4, "p2 fire 1" },
- {"P2 Jump" , BIT_DIGITAL , CpsInp000+5, "p2 fire 2" },
-
- {"P3 Coin" , BIT_DIGITAL , CpsInpc000+6, "p3 coin" },
- {"P3 Start" , BIT_DIGITAL , CpsInpc000+7, "p3 start" },
- {"P3 Up" , BIT_DIGITAL , CpsInpc000+3, "p3 up" },
- {"P3 Down" , BIT_DIGITAL , CpsInpc000+2, "p3 down" },
- {"P3 Left" , BIT_DIGITAL , CpsInpc000+1, "p3 left" },
- {"P3 Right" , BIT_DIGITAL , CpsInpc000+0, "p3 right" },
- {"P3 Attack" , BIT_DIGITAL , CpsInpc000+4, "p3 fire 1" },
- {"P3 Jump" , BIT_DIGITAL , CpsInpc000+5, "p3 fire 2" },
-
- {"Reset" , BIT_DIGITAL , &CpsReset, "reset" },
- {"Diagnostic" , BIT_DIGITAL , CpsInp018+6, "diag" },
- {"Service" , BIT_DIGITAL , CpsInp018+2, "service" },
- {"Dip A" , BIT_DIPSWITCH, &Cpi01A , "dip" },
- {"Dip B" , BIT_DIPSWITCH, &Cpi01C , "dip" },
- {"Dip C" , BIT_DIPSWITCH, &Cpi01E , "dip" },
-};
-
-STDINPUTINFO(Kodh)
-
-static struct BurnInputInfo MegamanInputList[] =
-{
- {"P1 Coin" , BIT_DIGITAL , CpsInp018+0, "p1 coin" },
- {"P1 Start" , BIT_DIGITAL , CpsInp018+4, "p1 start" },
- {"P1 Up" , BIT_DIGITAL , CpsInp001+3, "p1 up" },
- {"P1 Down" , BIT_DIGITAL , CpsInp001+2, "p1 down" },
- {"P1 Left" , BIT_DIGITAL , CpsInp001+1, "p1 left" },
- {"P1 Right" , BIT_DIGITAL , CpsInp001+0, "p1 right" },
- {"P1 Fire" , BIT_DIGITAL , CpsInp001+4, "p1 fire 1" },
- {"P1 Jump" , BIT_DIGITAL , CpsInp001+5, "p1 fire 2" },
- {"P1 Select" , BIT_DIGITAL , CpsInp001+6, "p1 fire 3" },
-
- {"P2 Coin" , BIT_DIGITAL , CpsInp018+1, "p2 coin" },
- {"P2 Start" , BIT_DIGITAL , CpsInp018+5, "p2 start" },
- {"P2 Up" , BIT_DIGITAL , CpsInp000+3, "p2 up" },
- {"P2 Down" , BIT_DIGITAL , CpsInp000+2, "p2 down" },
- {"P2 Left" , BIT_DIGITAL , CpsInp000+1, "p2 left" },
- {"P2 Right" , BIT_DIGITAL , CpsInp000+0, "p2 right" },
- {"P2 Fire" , BIT_DIGITAL , CpsInp000+4, "p2 fire 1" },
- {"P2 Jump" , BIT_DIGITAL , CpsInp000+5, "p2 fire 2" },
- {"P2 Select" , BIT_DIGITAL , CpsInp000+6, "p2 fire 3" },
-
- {"Diagnostic" , BIT_DIGITAL , CpsInp018+6, "diag" },
- {"Service" , BIT_DIGITAL , CpsInp018+2, "service" },
- {"Reset" , BIT_DIGITAL , &CpsReset, "reset" },
- {"Dip A" , BIT_DIPSWITCH, &Cpi01A , "dip" },
- {"Dip B" , BIT_DIPSWITCH, &Cpi01C , "dip" },
- {"Dip C" , BIT_DIPSWITCH, &Cpi01E , "dip" },
-};
-
-STDINPUTINFO(Megaman)
-
-static struct BurnInputInfo MercsInputList[] =
-{
- {"P1 Coin" , BIT_DIGITAL , CpsInp018+0, "p1 coin" },
- {"P1 Start" , BIT_DIGITAL , CpsInp018+4, "p1 start" },
- {"P1 Up" , BIT_DIGITAL , CpsInp001+3, "p1 up" },
- {"P1 Down" , BIT_DIGITAL , CpsInp001+2, "p1 down" },
- {"P1 Left" , BIT_DIGITAL , CpsInp001+1, "p1 left" },
- {"P1 Right" , BIT_DIGITAL , CpsInp001+0, "p1 right" },
- {"P1 Shot" , BIT_DIGITAL , CpsInp001+4, "p1 fire 1" },
- {"P1 Special" , BIT_DIGITAL , CpsInp001+5, "p1 fire 2" },
-
- {"P2 Coin" , BIT_DIGITAL , CpsInp018+1, "p2 coin" },
- {"P2 Start" , BIT_DIGITAL , CpsInp018+5, "p2 start" },
- {"P2 Up" , BIT_DIGITAL , CpsInp000+3, "p2 up" },
- {"P2 Down" , BIT_DIGITAL , CpsInp000+2, "p2 down" },
- {"P2 Left" , BIT_DIGITAL , CpsInp000+1, "p2 left" },
- {"P2 Right" , BIT_DIGITAL , CpsInp000+0, "p2 right" },
- {"P2 Shot" , BIT_DIGITAL , CpsInp000+4, "p2 fire 1" },
- {"P2 Special" , BIT_DIGITAL , CpsInp000+5, "p2 fire 2" },
-
- {"P3 Coin" , BIT_DIGITAL , CpsInp177+6, "p3 coin" },
- {"P3 Start" , BIT_DIGITAL , CpsInp177+7, "p3 start" },
- {"P3 Up" , BIT_DIGITAL , CpsInp177+3, "p3 up" },
- {"P3 Down" , BIT_DIGITAL , CpsInp177+2, "p3 down" },
- {"P3 Left" , BIT_DIGITAL , CpsInp177+1, "p3 left" },
- {"P3 Right" , BIT_DIGITAL , CpsInp177+0, "p3 right" },
- {"P3 Shot" , BIT_DIGITAL , CpsInp177+4, "p3 fire 1" },
- {"P3 Special" , BIT_DIGITAL , CpsInp177+5, "p3 fire 2" },
-
- {"Reset" , BIT_DIGITAL , &CpsReset, "reset" },
- {"Diagnostic" , BIT_DIGITAL , CpsInp018+6, "diag" },
- {"Service" , BIT_DIGITAL , CpsInp018+2, "service" },
- {"Dip A" , BIT_DIPSWITCH, &Cpi01A , "dip" },
- {"Dip B" , BIT_DIPSWITCH, &Cpi01C , "dip" },
- {"Dip C" , BIT_DIPSWITCH, &Cpi01E , "dip" },
-};
-
-STDINPUTINFO(Mercs)
-
-static struct BurnInputInfo MswordInputList[] =
-{
- {"P1 Coin" , BIT_DIGITAL , CpsInp018+0, "p1 coin" },
- {"P1 Start" , BIT_DIGITAL , CpsInp018+4, "p1 start" },
- {"P1 Up" , BIT_DIGITAL , CpsInp001+3, "p1 up" },
- {"P1 Down" , BIT_DIGITAL , CpsInp001+2, "p1 down" },
- {"P1 Left" , BIT_DIGITAL , CpsInp001+1, "p1 left" },
- {"P1 Right" , BIT_DIGITAL , CpsInp001+0, "p1 right" },
- {"P1 Attack" , BIT_DIGITAL , CpsInp001+4, "p1 fire 1" },
- {"P1 Jump" , BIT_DIGITAL , CpsInp001+5, "p1 fire 2" },
- {"P1 Fire 3" , BIT_DIGITAL , CpsInp001+6, "p1 fire 3" },
-
- {"P2 Coin" , BIT_DIGITAL , CpsInp018+1, "p2 coin" },
- {"P2 Start" , BIT_DIGITAL , CpsInp018+5, "p2 start" },
- {"P2 Up" , BIT_DIGITAL , CpsInp000+3, "p2 up" },
- {"P2 Down" , BIT_DIGITAL , CpsInp000+2, "p2 down" },
- {"P2 Left" , BIT_DIGITAL , CpsInp000+1, "p2 left" },
- {"P2 Right" , BIT_DIGITAL , CpsInp000+0, "p2 right" },
- {"P2 Attack" , BIT_DIGITAL , CpsInp000+4, "p2 fire 1" },
- {"P2 Jump" , BIT_DIGITAL , CpsInp000+5, "p2 fire 2" },
- {"P2 Fire 3" , BIT_DIGITAL , CpsInp000+6, "p2 fire 3" },
-
- {"Reset" , BIT_DIGITAL , &CpsReset, "reset" },
- {"Diagnostic" , BIT_DIGITAL , CpsInp018+6, "diag" },
- {"Service" , BIT_DIGITAL , CpsInp018+2, "service" },
- {"Dip A" , BIT_DIPSWITCH, &Cpi01A , "dip" },
- {"Dip B" , BIT_DIPSWITCH, &Cpi01C , "dip" },
- {"Dip C" , BIT_DIPSWITCH, &Cpi01E , "dip" },
-};
-
-STDINPUTINFO(Msword)
-
-static struct BurnInputInfo MtwinsInputList[] =
-{
- {"P1 Coin" , BIT_DIGITAL , CpsInp018+0, "p1 coin" },
- {"P1 Start" , BIT_DIGITAL , CpsInp018+4, "p1 start" },
- {"P1 Up" , BIT_DIGITAL , CpsInp001+3, "p1 up" },
- {"P1 Down" , BIT_DIGITAL , CpsInp001+2, "p1 down" },
- {"P1 Left" , BIT_DIGITAL , CpsInp001+1, "p1 left" },
- {"P1 Right" , BIT_DIGITAL , CpsInp001+0, "p1 right" },
- {"P1 Attack" , BIT_DIGITAL , CpsInp001+4, "p1 fire 1" },
- {"P1 Jump" , BIT_DIGITAL , CpsInp001+5, "p1 fire 2" },
- {"P1 Special" , BIT_DIGITAL , CpsInp001+6, "p1 fire 3" },
-
- {"P2 Coin" , BIT_DIGITAL , CpsInp018+1, "p2 coin" },
- {"P2 Start" , BIT_DIGITAL , CpsInp018+5, "p2 start" },
- {"P2 Up" , BIT_DIGITAL , CpsInp000+3, "p2 up" },
- {"P2 Down" , BIT_DIGITAL , CpsInp000+2, "p2 down" },
- {"P2 Left" , BIT_DIGITAL , CpsInp000+1, "p2 left" },
- {"P2 Right" , BIT_DIGITAL , CpsInp000+0, "p2 right" },
- {"P2 Attack" , BIT_DIGITAL , CpsInp000+4, "p2 fire 1" },
- {"P2 Jump" , BIT_DIGITAL , CpsInp000+5, "p2 fire 2" },
- {"P2 Special" , BIT_DIGITAL , CpsInp000+6, "p2 fire 3" },
-
- {"Reset" , BIT_DIGITAL , &CpsReset, "reset" },
- {"Diagnostic" , BIT_DIGITAL , CpsInp018+6, "diag" },
- {"Service" , BIT_DIGITAL , CpsInp018+2, "service" },
- {"Dip A" , BIT_DIPSWITCH, &Cpi01A , "dip" },
- {"Dip B" , BIT_DIPSWITCH, &Cpi01C , "dip" },
- {"Dip C" , BIT_DIPSWITCH, &Cpi01E , "dip" },
-};
-
-STDINPUTINFO(Mtwins)
-
-static struct BurnInputInfo NemoInputList[] =
-{
- {"P1 Coin" , BIT_DIGITAL , CpsInp018+0, "p1 coin" },
- {"P1 Start" , BIT_DIGITAL , CpsInp018+4, "p1 start" },
- {"P1 Up" , BIT_DIGITAL , CpsInp001+3, "p1 up" },
- {"P1 Down" , BIT_DIGITAL , CpsInp001+2, "p1 down" },
- {"P1 Left" , BIT_DIGITAL , CpsInp001+1, "p1 left" },
- {"P1 Right" , BIT_DIGITAL , CpsInp001+0, "p1 right" },
- {"P1 Attack" , BIT_DIGITAL , CpsInp001+4, "p1 fire 1" },
- {"P1 Jump" , BIT_DIGITAL , CpsInp001+5, "p1 fire 2" },
- {"P1 Fire 3" , BIT_DIGITAL , CpsInp001+6, "p1 fire 3" },
-
- {"P2 Coin" , BIT_DIGITAL , CpsInp018+1, "p2 coin" },
- {"P2 Start" , BIT_DIGITAL , CpsInp018+5, "p2 start" },
- {"P2 Up" , BIT_DIGITAL , CpsInp000+3, "p2 up" },
- {"P2 Down" , BIT_DIGITAL , CpsInp000+2, "p2 down" },
- {"P2 Left" , BIT_DIGITAL , CpsInp000+1, "p2 left" },
- {"P2 Right" , BIT_DIGITAL , CpsInp000+0, "p2 right" },
- {"P2 Attack" , BIT_DIGITAL , CpsInp000+4, "p2 fire 1" },
- {"P2 Jump" , BIT_DIGITAL , CpsInp000+5, "p2 fire 2" },
- {"P2 Fire 3" , BIT_DIGITAL , CpsInp000+6, "p2 fire 3" },
-
- {"Reset" , BIT_DIGITAL , &CpsReset, "reset" },
- {"Diagnostic" , BIT_DIGITAL , CpsInp018+6, "diag" },
- {"Service" , BIT_DIGITAL , CpsInp018+2, "service" },
- {"Dip A" , BIT_DIPSWITCH, &Cpi01A , "dip" },
- {"Dip B" , BIT_DIPSWITCH, &Cpi01C , "dip" },
- {"Dip C" , BIT_DIPSWITCH, &Cpi01E , "dip" },
-};
-
-STDINPUTINFO(Nemo)
-
-static struct BurnInputInfo Pang3InputList[] =
-{
- {"P1 Coin" , BIT_DIGITAL , CpsInp018+0, "p1 coin" },
- {"P1 Start" , BIT_DIGITAL , CpsInp018+4, "p1 start" },
- {"P1 Up" , BIT_DIGITAL , CpsInp001+3, "p1 up" },
- {"P1 Down" , BIT_DIGITAL , CpsInp001+2, "p1 down" },
- {"P1 Left" , BIT_DIGITAL , CpsInp001+1, "p1 left" },
- {"P1 Right" , BIT_DIGITAL , CpsInp001+0, "p1 right" },
- {"P1 Shot 1" , BIT_DIGITAL , CpsInp001+4, "p1 fire 1" },
- {"P1 Shot 2" , BIT_DIGITAL , CpsInp001+5, "p1 fire 2" },
-
- {"P2 Coin" , BIT_DIGITAL , CpsInp018+1, "p2 coin" },
- {"P2 Start" , BIT_DIGITAL , CpsInp018+5, "p2 start" },
- {"P2 Up" , BIT_DIGITAL , CpsInp000+3, "p2 up" },
- {"P2 Down" , BIT_DIGITAL , CpsInp000+2, "p2 down" },
- {"P2 Left" , BIT_DIGITAL , CpsInp000+1, "p2 left" },
- {"P2 Right" , BIT_DIGITAL , CpsInp000+0, "p2 right" },
- {"P2 Shot 1" , BIT_DIGITAL , CpsInp000+4, "p2 fire 1" },
- {"P2 Shot 2" , BIT_DIGITAL , CpsInp000+5, "p2 fire 2" },
-
- {"Reset" , BIT_DIGITAL , &CpsReset, "reset" },
- {"Diagnostic" , BIT_DIGITAL , CpsInp018+6, "diag" },
- {"Service" , BIT_DIGITAL , CpsInp018+2, "service" },
- {"Dip C" , BIT_DIPSWITCH, &Cpi01E , "dip" },
-};
-
-STDINPUTINFO(Pang3)
-
-static struct BurnInputInfo PnickjInputList[] =
-{
- {"P1 Coin" , BIT_DIGITAL , CpsInp018+0, "p1 coin" },
- {"P1 Start" , BIT_DIGITAL , CpsInp018+4, "p1 start" },
- {"P1 Up" , BIT_DIGITAL , CpsInp001+3, "p1 up" },
- {"P1 Down" , BIT_DIGITAL , CpsInp001+2, "p1 down" },
- {"P1 Left" , BIT_DIGITAL , CpsInp001+1, "p1 left" },
- {"P1 Right" , BIT_DIGITAL , CpsInp001+0, "p1 right" },
- {"P1 Turn 1" , BIT_DIGITAL , CpsInp001+4, "p1 fire 1" },
- {"P1 Turn 2" , BIT_DIGITAL , CpsInp001+5, "p1 fire 2" },
-
- {"P2 Coin" , BIT_DIGITAL , CpsInp018+1, "p2 coin" },
- {"P2 Start" , BIT_DIGITAL , CpsInp018+5, "p2 start" },
- {"P2 Up" , BIT_DIGITAL , CpsInp000+3, "p2 up" },
- {"P2 Down" , BIT_DIGITAL , CpsInp000+2, "p2 down" },
- {"P2 Left" , BIT_DIGITAL , CpsInp000+1, "p2 left" },
- {"P2 Right" , BIT_DIGITAL , CpsInp000+0, "p2 right" },
- {"P2 Turn 1" , BIT_DIGITAL , CpsInp000+4, "p2 fire 1" },
- {"P2 Turn 2" , BIT_DIGITAL , CpsInp000+5, "p2 fire 2" },
-
- {"Reset" , BIT_DIGITAL , &CpsReset, "reset" },
- {"Diagnostic" , BIT_DIGITAL , CpsInp018+6, "diag" },
- {"Service" , BIT_DIGITAL , CpsInp018+2, "service" },
- {"Dip A" , BIT_DIPSWITCH, &Cpi01A , "dip" },
- {"Dip B" , BIT_DIPSWITCH, &Cpi01C , "dip" },
- {"Dip C" , BIT_DIPSWITCH, &Cpi01E , "dip" },
-};
-
-STDINPUTINFO(Pnickj)
-
-static struct BurnInputInfo PokonyanInputList[] =
-{
- {"P1 Coin" , BIT_DIGITAL , CpsInp018+0, "p1 coin" },
- {"P1 Start" , BIT_DIGITAL , CpsInp018+4, "p1 start" },
- {"P1 Up" , BIT_DIGITAL , CpsInp001+3, "p1 up" },
- {"P1 Down" , BIT_DIGITAL , CpsInp001+2, "p1 down" },
- {"P1 Left" , BIT_DIGITAL , CpsInp001+1, "p1 left" },
- {"P1 Right" , BIT_DIGITAL , CpsInp001+0, "p1 right" },
- {"P1 Attack" , BIT_DIGITAL , CpsInp001+4, "p1 fire 1" },
- {"P1 Jump" , BIT_DIGITAL , CpsInp001+5, "p1 fire 2" },
- {"P1 Fire 3" , BIT_DIGITAL , CpsInp001+6, "p1 fire 3" },
-
- {"P2 Coin" , BIT_DIGITAL , CpsInp018+1, "p2 coin" },
- {"P2 Start" , BIT_DIGITAL , CpsInp018+5, "p2 start" },
- {"P2 Up" , BIT_DIGITAL , CpsInp000+3, "p2 up" },
- {"P2 Down" , BIT_DIGITAL , CpsInp000+2, "p2 down" },
- {"P2 Left" , BIT_DIGITAL , CpsInp000+1, "p2 left" },
- {"P2 Right" , BIT_DIGITAL , CpsInp000+0, "p2 right" },
- {"P2 Attack" , BIT_DIGITAL , CpsInp000+4, "p2 fire 1" },
- {"P2 Jump" , BIT_DIGITAL , CpsInp000+5, "p2 fire 2" },
- {"P2 Fire 3" , BIT_DIGITAL , CpsInp000+6, "p2 fire 3" },
-
- {"Reset" , BIT_DIGITAL , &CpsReset , "reset" },
- {"Service" , BIT_DIGITAL , CpsInp018+2, "service" },
- {"Dip A" , BIT_DIPSWITCH, &Cpi01A , "dip" },
- {"Dip B" , BIT_DIPSWITCH, &Cpi01C , "dip" },
- {"Dip C" , BIT_DIPSWITCH, &Cpi01E , "dip" },
-};
-
-STDINPUTINFO(Pokonyan)
-
-static struct BurnInputInfo PunisherInputList[] =
-{
- {"P1 Coin" , BIT_DIGITAL , CpsInp018+0, "p1 coin" },
- {"P1 Start" , BIT_DIGITAL , CpsInp018+4, "p1 start" },
- {"P1 Up" , BIT_DIGITAL , CpsInp001+3, "p1 up" },
- {"P1 Down" , BIT_DIGITAL , CpsInp001+2, "p1 down" },
- {"P1 Left" , BIT_DIGITAL , CpsInp001+1, "p1 left" },
- {"P1 Right" , BIT_DIGITAL , CpsInp001+0, "p1 right" },
- {"P1 Attack" , BIT_DIGITAL , CpsInp001+4, "p1 fire 1" },
- {"P1 Jump" , BIT_DIGITAL , CpsInp001+5, "p1 fire 2" },
-
- {"P2 Coin" , BIT_DIGITAL , CpsInp018+1, "p2 coin" },
- {"P2 Start" , BIT_DIGITAL , CpsInp018+5, "p2 start" },
- {"P2 Up" , BIT_DIGITAL , CpsInp000+3, "p2 up" },
- {"P2 Down" , BIT_DIGITAL , CpsInp000+2, "p2 down" },
- {"P2 Left" , BIT_DIGITAL , CpsInp000+1, "p2 left" },
- {"P2 Right" , BIT_DIGITAL , CpsInp000+0, "p2 right" },
- {"P2 Attack" , BIT_DIGITAL , CpsInp000+4, "p2 fire 1" },
- {"P2 Jump" , BIT_DIGITAL , CpsInp000+5, "p2 fire 2" },
-
- {"Reset" , BIT_DIGITAL , &CpsReset, "reset" },
- {"Diagnostic" , BIT_DIGITAL , CpsInp018+6, "diag" },
- {"Service" , BIT_DIGITAL , CpsInp018+2, "service" },
- {"Dip C" , BIT_DIPSWITCH, &Cpi01E , "dip" },
-};
-
-STDINPUTINFO(Punisher)
-
-static struct BurnInputInfo PunisherbzInputList[] =
-{
- {"P1 Coin" , BIT_DIGITAL , CpsInp018+0, "p1 coin" },
- {"P1 Start" , BIT_DIGITAL , CpsInp018+4, "p1 start" },
- {"P1 Up" , BIT_DIGITAL , CpsInp001+3, "p1 up" },
- {"P1 Down" , BIT_DIGITAL , CpsInp001+2, "p1 down" },
- {"P1 Left" , BIT_DIGITAL , CpsInp001+1, "p1 left" },
- {"P1 Right" , BIT_DIGITAL , CpsInp001+0, "p1 right" },
- {"P1 Attack" , BIT_DIGITAL , CpsInp001+4, "p1 fire 1" },
- {"P1 Jump" , BIT_DIGITAL , CpsInp001+5, "p1 fire 2" },
- {"P1 Super" , BIT_DIGITAL , CpsInp001+6, "p1 fire 3" },
-
- {"P2 Coin" , BIT_DIGITAL , CpsInp018+1, "p2 coin" },
- {"P2 Start" , BIT_DIGITAL , CpsInp018+5, "p2 start" },
- {"P2 Up" , BIT_DIGITAL , CpsInp000+3, "p2 up" },
- {"P2 Down" , BIT_DIGITAL , CpsInp000+2, "p2 down" },
- {"P2 Left" , BIT_DIGITAL , CpsInp000+1, "p2 left" },
- {"P2 Right" , BIT_DIGITAL , CpsInp000+0, "p2 right" },
- {"P2 Attack" , BIT_DIGITAL , CpsInp000+4, "p2 fire 1" },
- {"P2 Jump" , BIT_DIGITAL , CpsInp000+5, "p2 fire 2" },
- {"P2 Super" , BIT_DIGITAL , CpsInp000+6, "p2 fire 3" },
-
- {"Reset" , BIT_DIGITAL , &CpsReset, "reset" },
- {"Diagnostic" , BIT_DIGITAL , CpsInp018+6, "diag" },
- {"Service" , BIT_DIGITAL , CpsInp018+2, "service" },
- {"Dip A" , BIT_DIPSWITCH, &Cpi01A , "dip" },
- {"Dip B" , BIT_DIPSWITCH, &Cpi01C , "dip" },
-};
-
-STDINPUTINFO(Punisherbz)
-
-static struct BurnInputInfo QadInputList[] =
-{
- {"P1 Coin" , BIT_DIGITAL , CpsInp018+0, "p1 coin" },
- {"P1 Start" , BIT_DIGITAL , CpsInp018+4, "p1 start" },
- {"P1 Answer 1" , BIT_DIGITAL , CpsInp001+4, "p1 fire 1" },
- {"P1 Answer 2" , BIT_DIGITAL , CpsInp001+5, "p1 fire 2" },
- {"P1 Answer 3" , BIT_DIGITAL , CpsInp001+6, "p1 fire 3" },
- {"P1 Answer 4" , BIT_DIGITAL , CpsInp001+7, "p1 fire 4" },
-
- {"P2 Coin" , BIT_DIGITAL , CpsInp018+1, "p2 coin" },
- {"P2 Start" , BIT_DIGITAL , CpsInp018+5, "p2 start" },
- {"P2 Answer 1" , BIT_DIGITAL , CpsInp000+4, "p2 fire 1" },
- {"P2 Answer 2" , BIT_DIGITAL , CpsInp000+5, "p2 fire 2" },
- {"P2 Answer 3" , BIT_DIGITAL , CpsInp000+6, "p2 fire 3" },
- {"P2 Answer 4" , BIT_DIGITAL , CpsInp000+7, "p2 fire 4" },
-
- {"Reset" , BIT_DIGITAL , &CpsReset, "reset" },
- {"Diagnostic" , BIT_DIGITAL , CpsInp018+6, "diag" },
- {"Service" , BIT_DIGITAL , CpsInp018+2, "service" },
- {"Dip A" , BIT_DIPSWITCH, &Cpi01A , "dip" },
- {"Dip B" , BIT_DIPSWITCH, &Cpi01C , "dip" },
- {"Dip C" , BIT_DIPSWITCH, &Cpi01E , "dip" },
-};
-
-STDINPUTINFO(Qad)
-
-static struct BurnInputInfo Qtono2jInputList[] =
-{
- {"P1 Coin" , BIT_DIGITAL , CpsInp018+0, "p1 coin" },
- {"P1 Start" , BIT_DIGITAL , CpsInp018+4, "p1 start" },
- {"P1 Answer 1" , BIT_DIGITAL , CpsInp001+4, "p1 fire 1" },
- {"P1 Answer 2" , BIT_DIGITAL , CpsInp001+5, "p1 fire 2" },
- {"P1 Answer 3" , BIT_DIGITAL , CpsInp001+6, "p1 fire 3" },
- {"P1 Answer 4" , BIT_DIGITAL , CpsInp001+7, "p1 fire 4" },
-
- {"P2 Coin" , BIT_DIGITAL , CpsInp018+1, "p2 coin" },
- {"P2 Start" , BIT_DIGITAL , CpsInp018+5, "p2 start" },
- {"P2 Answer 1" , BIT_DIGITAL , CpsInp000+4, "p2 fire 1" },
- {"P2 Answer 2" , BIT_DIGITAL , CpsInp000+5, "p2 fire 2" },
- {"P2 Answer 3" , BIT_DIGITAL , CpsInp000+6, "p2 fire 3" },
- {"P2 Answer 4" , BIT_DIGITAL , CpsInp000+7, "p2 fire 4" },
-
- {"Reset" , BIT_DIGITAL , &CpsReset, "reset" },
- {"Diagnostic" , BIT_DIGITAL , CpsInp018+6, "diag" },
- {"Service" , BIT_DIGITAL , CpsInp018+2, "service" },
- {"Dip A" , BIT_DIPSWITCH, &Cpi01A , "dip" },
- {"Dip B" , BIT_DIPSWITCH, &Cpi01C , "dip" },
- {"Dip C" , BIT_DIPSWITCH, &Cpi01E , "dip" },
-};
-
-STDINPUTINFO(Qtono2j)
-
-static struct BurnInputInfo Sf2InputList[] = {
- {"P1 Coin" , BIT_DIGITAL , CpsInp018+0, "p1 coin" },
- {"P1 Start" , BIT_DIGITAL , CpsInp018+4, "p1 start" },
- {"P1 Up" , BIT_DIGITAL , CpsInp001+3, "p1 up" },
- {"P1 Down" , BIT_DIGITAL , CpsInp001+2, "p1 down" },
- {"P1 Left" , BIT_DIGITAL , CpsInp001+1, "p1 left" },
- {"P1 Right" , BIT_DIGITAL , CpsInp001+0, "p1 right" },
- {"P1 Weak Punch" , BIT_DIGITAL , CpsInp001+4, "p1 fire 1" },
- {"P1 Medium Punch" , BIT_DIGITAL , CpsInp001+5, "p1 fire 2" },
- {"P1 Strong Punch" , BIT_DIGITAL , CpsInp001+6, "p1 fire 3" },
- {"P1 Weak Kick" , BIT_DIGITAL , CpsInp177+0, "p1 fire 4" },
- {"P1 Medium Kick" , BIT_DIGITAL , CpsInp177+1, "p1 fire 5" },
- {"P1 Strong Kick" , BIT_DIGITAL , CpsInp177+2, "p1 fire 6" },
-
- {"P2 Coin" , BIT_DIGITAL , CpsInp018+1, "p2 coin" },
- {"P2 Start" , BIT_DIGITAL , CpsInp018+5, "p2 start" },
- {"P2 Up" , BIT_DIGITAL , CpsInp000+3, "p2 up" },
- {"P2 Down" , BIT_DIGITAL , CpsInp000+2, "p2 down" },
- {"P2 Left" , BIT_DIGITAL , CpsInp000+1, "p2 left" },
- {"P2 Right" , BIT_DIGITAL , CpsInp000+0, "p2 right" },
- {"P2 Weak Punch" , BIT_DIGITAL , CpsInp000+4, "p2 fire 1" },
- {"P2 Medium Punch" , BIT_DIGITAL , CpsInp000+5, "p2 fire 2" },
- {"P2 Strong Punch" , BIT_DIGITAL , CpsInp000+6, "p2 fire 3" },
- {"P2 Weak Kick" , BIT_DIGITAL , CpsInp177+4, "p2 fire 4" },
- {"P2 Medium Kick" , BIT_DIGITAL , CpsInp177+5, "p2 fire 5" },
- {"P2 Strong Kick" , BIT_DIGITAL , CpsInp177+6, "p2 fire 6" },
-
- {"Reset" , BIT_DIGITAL , &CpsReset , "reset" },
- {"Diagnostic" , BIT_DIGITAL , CpsInp018+6, "diag" },
- {"Service" , BIT_DIGITAL , CpsInp018+2, "service" },
- {"Dip A" , BIT_DIPSWITCH, &Cpi01A , "dip" },
- {"Dip B" , BIT_DIPSWITCH, &Cpi01C , "dip" },
- {"Dip C" , BIT_DIPSWITCH, &Cpi01E , "dip" },
-};
-
-STDINPUTINFO(Sf2)
-
-static struct BurnInputInfo Sf2ueInputList[] = {
- {"P1 Coin" , BIT_DIGITAL , CpsInp018+0, "p1 coin" },
- {"P1 Start" , BIT_DIGITAL , CpsInp018+4, "p1 start" },
- {"P1 Up" , BIT_DIGITAL , CpsInp001+3, "p1 up" },
- {"P1 Down" , BIT_DIGITAL , CpsInp001+2, "p1 down" },
- {"P1 Left" , BIT_DIGITAL , CpsInp001+1, "p1 left" },
- {"P1 Right" , BIT_DIGITAL , CpsInp001+0, "p1 right" },
- {"P1 Weak Punch" , BIT_DIGITAL , CpsInp001+4, "p1 fire 1" },
- {"P1 Medium Punch" , BIT_DIGITAL , CpsInp001+5, "p1 fire 2" },
- {"P1 Strong Punch" , BIT_DIGITAL , CpsInp001+6, "p1 fire 3" },
- {"P1 Weak Kick" , BIT_DIGITAL , CpsInp1fd+0, "p1 fire 4" },
- {"P1 Medium Kick" , BIT_DIGITAL , CpsInp1fd+1, "p1 fire 5" },
- {"P1 Strong Kick" , BIT_DIGITAL , CpsInp1fd+2, "p1 fire 6" },
-
- {"P2 Coin" , BIT_DIGITAL , CpsInp018+1, "p2 coin" },
- {"P2 Start" , BIT_DIGITAL , CpsInp018+5, "p2 start" },
- {"P2 Up" , BIT_DIGITAL , CpsInp000+3, "p2 up" },
- {"P2 Down" , BIT_DIGITAL , CpsInp000+2, "p2 down" },
- {"P2 Left" , BIT_DIGITAL , CpsInp000+1, "p2 left" },
- {"P2 Right" , BIT_DIGITAL , CpsInp000+0, "p2 right" },
- {"P2 Weak Punch" , BIT_DIGITAL , CpsInp000+4, "p2 fire 1" },
- {"P2 Medium Punch" , BIT_DIGITAL , CpsInp000+5, "p2 fire 2" },
- {"P2 Strong Punch" , BIT_DIGITAL , CpsInp000+6, "p2 fire 3" },
- {"P2 Weak Kick" , BIT_DIGITAL , CpsInp1fd+4, "p2 fire 4" },
- {"P2 Medium Kick" , BIT_DIGITAL , CpsInp1fd+5, "p2 fire 5" },
- {"P2 Strong Kick" , BIT_DIGITAL , CpsInp1fd+6, "p2 fire 6" },
-
- {"Reset" , BIT_DIGITAL , &CpsReset , "reset" },
- {"Diagnostic" , BIT_DIGITAL , CpsInp018+6, "diag" },
- {"Service" , BIT_DIGITAL , CpsInp018+2, "service" },
- {"Dip A" , BIT_DIPSWITCH, &Cpi01A , "dip" },
- {"Dip B" , BIT_DIPSWITCH, &Cpi01C , "dip" },
- {"Dip C" , BIT_DIPSWITCH, &Cpi01E , "dip" },
-};
-
-STDINPUTINFO(Sf2ue)
-
-static struct BurnInputInfo Sf2yycInputList[] = {
- {"P1 Coin" , BIT_DIGITAL , CpsInp019+0, "p1 coin" },
- {"P1 Start" , BIT_DIGITAL , CpsInp019+4, "p1 start" },
- {"P1 Up" , BIT_DIGITAL , CpsInp001+3, "p1 up" },
- {"P1 Down" , BIT_DIGITAL , CpsInp001+2, "p1 down" },
- {"P1 Left" , BIT_DIGITAL , CpsInp001+1, "p1 left" },
- {"P1 Right" , BIT_DIGITAL , CpsInp001+0, "p1 right" },
- {"P1 Weak Punch" , BIT_DIGITAL , CpsInp001+4, "p1 fire 1" },
- {"P1 Medium Punch" , BIT_DIGITAL , CpsInp001+5, "p1 fire 2" },
- {"P1 Strong Punch" , BIT_DIGITAL , CpsInp001+6, "p1 fire 3" },
- {"P1 Weak Kick" , BIT_DIGITAL , CpsInp176+0, "p1 fire 4" },
- {"P1 Medium Kick" , BIT_DIGITAL , CpsInp176+1, "p1 fire 5" },
- {"P1 Strong Kick" , BIT_DIGITAL , CpsInp176+2, "p1 fire 6" },
-
- {"P2 Coin" , BIT_DIGITAL , CpsInp019+1, "p2 coin" },
- {"P2 Start" , BIT_DIGITAL , CpsInp019+5, "p2 start" },
- {"P2 Up" , BIT_DIGITAL , CpsInp000+3, "p2 up" },
- {"P2 Down" , BIT_DIGITAL , CpsInp000+2, "p2 down" },
- {"P2 Left" , BIT_DIGITAL , CpsInp000+1, "p2 left" },
- {"P2 Right" , BIT_DIGITAL , CpsInp000+0, "p2 right" },
- {"P2 Weak Punch" , BIT_DIGITAL , CpsInp000+4, "p2 fire 1" },
- {"P2 Medium Punch" , BIT_DIGITAL , CpsInp000+5, "p2 fire 2" },
- {"P2 Strong Punch" , BIT_DIGITAL , CpsInp000+6, "p2 fire 3" },
- {"P2 Weak Kick" , BIT_DIGITAL , CpsInp176+4, "p2 fire 4" },
- {"P2 Medium Kick" , BIT_DIGITAL , CpsInp176+5, "p2 fire 5" },
- {"P2 Strong Kick" , BIT_DIGITAL , CpsInp176+6, "p2 fire 6" },
-
- {"Reset" , BIT_DIGITAL , &CpsReset , "reset" },
- {"Diagnostic" , BIT_DIGITAL , CpsInp019+6, "diag" },
- {"Service" , BIT_DIGITAL , CpsInp019+2, "service" },
- {"Dip A" , BIT_DIPSWITCH, &Cpi01A , "dip" },
- {"Dip B" , BIT_DIPSWITCH, &Cpi01C , "dip" },
- {"Dip C" , BIT_DIPSWITCH, &Cpi01E , "dip" },
-};
-
-STDINPUTINFO(Sf2yyc)
-
-static struct BurnInputInfo Sf2ceeablInputList[] = {
- {"P1 Coin" , BIT_DIGITAL , CpsInp018+0, "p1 coin" },
- {"P1 Start" , BIT_DIGITAL , CpsInp018+4, "p1 start" },
- {"P1 Up" , BIT_DIGITAL , CpsInp001+3, "p1 up" },
- {"P1 Down" , BIT_DIGITAL , CpsInp001+2, "p1 down" },
- {"P1 Left" , BIT_DIGITAL , CpsInp001+1, "p1 left" },
- {"P1 Right" , BIT_DIGITAL , CpsInp001+0, "p1 right" },
- {"P1 Weak Punch" , BIT_DIGITAL , CpsInp001+4, "p1 fire 1" },
- {"P1 Medium Punch" , BIT_DIGITAL , CpsInp001+5, "p1 fire 2" },
- {"P1 Strong Punch" , BIT_DIGITAL , CpsInp001+6, "p1 fire 3" },
- {"P1 Weak Kick" , BIT_DIGITAL , CpsInp012+0, "p1 fire 4" },
- {"P1 Medium Kick" , BIT_DIGITAL , CpsInp012+1, "p1 fire 5" },
- {"P1 Strong Kick" , BIT_DIGITAL , CpsInp012+2, "p1 fire 6" },
-
- {"P2 Coin" , BIT_DIGITAL , CpsInp018+1, "p2 coin" },
- {"P2 Start" , BIT_DIGITAL , CpsInp018+5, "p2 start" },
- {"P2 Up" , BIT_DIGITAL , CpsInp000+3, "p2 up" },
- {"P2 Down" , BIT_DIGITAL , CpsInp000+2, "p2 down" },
- {"P2 Left" , BIT_DIGITAL , CpsInp000+1, "p2 left" },
- {"P2 Right" , BIT_DIGITAL , CpsInp000+0, "p2 right" },
- {"P2 Weak Punch" , BIT_DIGITAL , CpsInp000+4, "p2 fire 1" },
- {"P2 Medium Punch" , BIT_DIGITAL , CpsInp000+5, "p2 fire 2" },
- {"P2 Strong Punch" , BIT_DIGITAL , CpsInp000+6, "p2 fire 3" },
- {"P2 Weak Kick" , BIT_DIGITAL , CpsInp012+4, "p2 fire 4" },
- {"P2 Medium Kick" , BIT_DIGITAL , CpsInp012+5, "p2 fire 5" },
- {"P2 Strong Kick" , BIT_DIGITAL , CpsInp012+6, "p2 fire 6" },
-
- {"Reset" , BIT_DIGITAL , &CpsReset , "reset" },
- {"Diagnostic" , BIT_DIGITAL , CpsInp018+6, "diag" },
- {"Service" , BIT_DIGITAL , CpsInp018+2, "service" },
- {"Dip A" , BIT_DIPSWITCH, &Cpi01A , "dip" },
- {"Dip B" , BIT_DIPSWITCH, &Cpi01C , "dip" },
- {"Dip C" , BIT_DIPSWITCH, &Cpi01E , "dip" },
-};
-
-STDINPUTINFO(Sf2ceeabl)
-
-static struct BurnInputInfo Sf2ceuablInputList[] = {
- {"P1 Coin" , BIT_DIGITAL , CpsInp029+0, "p1 coin" },
- {"P1 Start" , BIT_DIGITAL , CpsInp029+4, "p1 start" },
- {"P1 Up" , BIT_DIGITAL , CpsInp011+3, "p1 up" },
- {"P1 Down" , BIT_DIGITAL , CpsInp011+2, "p1 down" },
- {"P1 Left" , BIT_DIGITAL , CpsInp011+1, "p1 left" },
- {"P1 Right" , BIT_DIGITAL , CpsInp011+0, "p1 right" },
- {"P1 Weak Punch" , BIT_DIGITAL , CpsInp011+4, "p1 fire 1" },
- {"P1 Medium Punch" , BIT_DIGITAL , CpsInp011+5, "p1 fire 2" },
- {"P1 Strong Punch" , BIT_DIGITAL , CpsInp011+6, "p1 fire 3" },
- {"P1 Weak Kick" , BIT_DIGITAL , CpsInp186+0, "p1 fire 4" },
- {"P1 Medium Kick" , BIT_DIGITAL , CpsInp186+1, "p1 fire 5" },
- {"P1 Strong Kick" , BIT_DIGITAL , CpsInp186+2, "p1 fire 6" },
-
- {"P2 Coin" , BIT_DIGITAL , CpsInp029+1, "p2 coin" },
- {"P2 Start" , BIT_DIGITAL , CpsInp029+5, "p2 start" },
- {"P2 Up" , BIT_DIGITAL , CpsInp010+3, "p2 up" },
- {"P2 Down" , BIT_DIGITAL , CpsInp010+2, "p2 down" },
- {"P2 Left" , BIT_DIGITAL , CpsInp010+1, "p2 left" },
- {"P2 Right" , BIT_DIGITAL , CpsInp010+0, "p2 right" },
- {"P2 Weak Punch" , BIT_DIGITAL , CpsInp010+4, "p2 fire 1" },
- {"P2 Medium Punch" , BIT_DIGITAL , CpsInp010+5, "p2 fire 2" },
- {"P2 Strong Punch" , BIT_DIGITAL , CpsInp010+6, "p2 fire 3" },
- {"P2 Weak Kick" , BIT_DIGITAL , CpsInp186+4, "p2 fire 4" },
- {"P2 Medium Kick" , BIT_DIGITAL , CpsInp186+5, "p2 fire 5" },
- {"P2 Strong Kick" , BIT_DIGITAL , CpsInp186+6, "p2 fire 6" },
-
- {"Reset" , BIT_DIGITAL , &CpsReset , "reset" },
- {"Diagnostic" , BIT_DIGITAL , CpsInp029+6, "diag" },
- {"Service" , BIT_DIGITAL , CpsInp029+2, "service" },
- {"Dip A" , BIT_DIPSWITCH, &Cpi01A , "dip" },
- {"Dip B" , BIT_DIPSWITCH, &Cpi01C , "dip" },
- {"Dip C" , BIT_DIPSWITCH, &Cpi01E , "dip" },
-};
-
-STDINPUTINFO(Sf2ceuabl)
-
-static struct BurnInputInfo SfzchInputList[] =
-{
- {"P1 Pause" , BIT_DIGITAL , CpsInp018+2, "" },
- {"P1 Start" , BIT_DIGITAL , CpsInp018+4, "p1 start" },
- {"P1 Up" , BIT_DIGITAL , CpsInp001+3, "p1 up" },
- {"P1 Down" , BIT_DIGITAL , CpsInp001+2, "p1 down" },
- {"P1 Left" , BIT_DIGITAL , CpsInp001+1, "p1 left" },
- {"P1 Right" , BIT_DIGITAL , CpsInp001+0, "p1 right" },
- {"P1 Weak Punch" , BIT_DIGITAL , CpsInp001+4, "p1 fire 1" },
- {"P1 Medium Punch" , BIT_DIGITAL , CpsInp001+5, "p1 fire 2" },
- {"P1 Strong Punch" , BIT_DIGITAL , CpsInp001+6, "p1 fire 3" },
- {"P1 Weak Kick" , BIT_DIGITAL , CpsInp001+7, "p1 fire 4" },
- {"P1 Medium Kick" , BIT_DIGITAL , CpsInp018+0, "p1 fire 5" },
- {"P1 Strong Kick" , BIT_DIGITAL , CpsInp018+6, "p1 fire 6" },
-
- {"P2 Pause" , BIT_DIGITAL , CpsInp018+3, "" },
- {"P2 Start" , BIT_DIGITAL , CpsInp018+5, "p2 start" },
- {"P2 Up" , BIT_DIGITAL , CpsInp000+3, "p2 up" },
- {"P2 Down" , BIT_DIGITAL , CpsInp000+2, "p2 down" },
- {"P2 Left" , BIT_DIGITAL , CpsInp000+1, "p2 left" },
- {"P2 Right" , BIT_DIGITAL , CpsInp000+0, "p2 right" },
- {"P2 Weak Punch" , BIT_DIGITAL , CpsInp000+4, "p2 fire 1" },
- {"P2 Medium Punch" , BIT_DIGITAL , CpsInp000+5, "p2 fire 2" },
- {"P2 Strong Punch" , BIT_DIGITAL , CpsInp000+6, "p2 fire 3" },
- {"P2 Weak Kick" , BIT_DIGITAL , CpsInp000+7, "p2 fire 4" },
- {"P2 Medium Kick" , BIT_DIGITAL , CpsInp018+1, "p2 fire 5" },
- {"P2 Strong Kick" , BIT_DIGITAL , CpsInp018+7, "p2 fire 6" },
-
- {"Reset" , BIT_DIGITAL , &CpsReset , "reset" },
-};
-
-STDINPUTINFO(Sfzch)
-
-static struct BurnInputInfo SlammastInputList[] =
-{
- {"P1 Coin" , BIT_DIGITAL , CpsInp018+0, "p1 coin" },
- {"P1 Start" , BIT_DIGITAL , CpsInp018+4, "p1 start" },
- {"P1 Up" , BIT_DIGITAL , CpsInp001+3, "p1 up" },
- {"P1 Down" , BIT_DIGITAL , CpsInp001+2, "p1 down" },
- {"P1 Left" , BIT_DIGITAL , CpsInp001+1, "p1 left" },
- {"P1 Right" , BIT_DIGITAL , CpsInp001+0, "p1 right" },
- {"P1 Attack" , BIT_DIGITAL , CpsInp001+4, "p1 fire 1" },
- {"P1 Jump" , BIT_DIGITAL , CpsInp001+5, "p1 fire 2" },
- {"P1 Pin" , BIT_DIGITAL , CpsInp001+6, "p1 fire 3" },
-
- {"P2 Coin" , BIT_DIGITAL , CpsInp018+1, "p2 coin" },
- {"P2 Start" , BIT_DIGITAL , CpsInp018+5, "p2 start" },
- {"P2 Up" , BIT_DIGITAL , CpsInp000+3, "p2 up" },
- {"P2 Down" , BIT_DIGITAL , CpsInp000+2, "p2 down" },
- {"P2 Left" , BIT_DIGITAL , CpsInp000+1, "p2 left" },
- {"P2 Right" , BIT_DIGITAL , CpsInp000+0, "p2 right" },
- {"P2 Attack" , BIT_DIGITAL , CpsInp000+4, "p2 fire 1" },
- {"P2 Jump" , BIT_DIGITAL , CpsInp000+5, "p2 fire 2" },
- {"P2 Pin" , BIT_DIGITAL , CpsInp000+6, "p2 fire 3" },
-
- {"P3 Coin" , BIT_DIGITAL , CpsInpc001+6, "p3 coin" },
- {"P3 Start" , BIT_DIGITAL , CpsInpc001+7, "p3 start" },
- {"P3 Up" , BIT_DIGITAL , CpsInpc001+3, "p3 up" },
- {"P3 Down" , BIT_DIGITAL , CpsInpc001+2, "p3 down" },
- {"P3 Left" , BIT_DIGITAL , CpsInpc001+1, "p3 left" },
- {"P3 Right" , BIT_DIGITAL , CpsInpc001+0, "p3 right" },
- {"P3 Attack" , BIT_DIGITAL , CpsInpc001+4, "p3 fire 1"},
- {"P3 Jump" , BIT_DIGITAL , CpsInpc001+5, "p3 fire 2"},
- {"P3 Pin" , BIT_DIGITAL , CpsInp001+7 , "p3 fire 3"},
-
- {"P4 Coin" , BIT_DIGITAL , CpsInpc003+6, "p4 coin" },
- {"P4 Start" , BIT_DIGITAL , CpsInpc003+7, "p4 start" },
- {"P4 Up" , BIT_DIGITAL , CpsInpc003+3, "p4 up" },
- {"P4 Down" , BIT_DIGITAL , CpsInpc003+2, "p4 down" },
- {"P4 Left" , BIT_DIGITAL , CpsInpc003+1, "p4 left" },
- {"P4 Right" , BIT_DIGITAL , CpsInpc003+0, "p4 right" },
- {"P4 Attack" , BIT_DIGITAL , CpsInpc003+4, "p4 fire 1"},
- {"P4 Jump" , BIT_DIGITAL , CpsInpc003+5, "p4 fire 2"},
- {"P4 Pin" , BIT_DIGITAL , CpsInp000+7 , "p4 fire 3"},
-
- {"Reset" , BIT_DIGITAL , &CpsReset , "reset" },
- {"Diagnostic" , BIT_DIGITAL , CpsInp018+6 , "diag" },
- {"Service" , BIT_DIGITAL , CpsInp018+2 , "service" },
- {"Dip C" , BIT_DIPSWITCH, &Cpi01E , "dip" },
-};
-
-STDINPUTINFO(Slammast)
-
-static struct BurnInputInfo StriderInputList[] =
-{
- {"P1 Coin" , BIT_DIGITAL , CpsInp018+0, "p1 coin" },
- {"P1 Start" , BIT_DIGITAL , CpsInp018+4, "p1 start" },
- {"P1 Up" , BIT_DIGITAL , CpsInp001+3, "p1 up" },
- {"P1 Down" , BIT_DIGITAL , CpsInp001+2, "p1 down" },
- {"P1 Left" , BIT_DIGITAL , CpsInp001+1, "p1 left" },
- {"P1 Right" , BIT_DIGITAL , CpsInp001+0, "p1 right" },
- {"P1 Attack" , BIT_DIGITAL , CpsInp001+4, "p1 fire 1" },
- {"P1 Jump" , BIT_DIGITAL , CpsInp001+5, "p1 fire 2" },
- {"P1 Fire 3" , BIT_DIGITAL , CpsInp001+6, "p1 fire 3" },
-
- {"P2 Coin" , BIT_DIGITAL , CpsInp018+1, "p2 coin" },
- {"P2 Start" , BIT_DIGITAL , CpsInp018+5, "p2 start" },
- {"P2 Up" , BIT_DIGITAL , CpsInp000+3, "p2 up" },
- {"P2 Down" , BIT_DIGITAL , CpsInp000+2, "p2 down" },
- {"P2 Left" , BIT_DIGITAL , CpsInp000+1, "p2 left" },
- {"P2 Right" , BIT_DIGITAL , CpsInp000+0, "p2 right" },
- {"P2 Attack" , BIT_DIGITAL , CpsInp000+4, "p2 fire 1" },
- {"P2 Jump" , BIT_DIGITAL , CpsInp000+5, "p2 fire 2" },
- {"P2 Fire 3" , BIT_DIGITAL , CpsInp000+6, "p2 fire 3" },
-
- {"Reset" , BIT_DIGITAL , &CpsReset , "reset" },
- {"Service" , BIT_DIGITAL , CpsInp018+2, "service" },
- {"Dip A" , BIT_DIPSWITCH, &Cpi01A , "dip" },
- {"Dip B" , BIT_DIPSWITCH, &Cpi01C , "dip" },
- {"Dip C" , BIT_DIPSWITCH, &Cpi01E , "dip" },
-};
-
-STDINPUTINFO(Strider)
-
-static struct BurnInputInfo UnsquadInputList[] =
-{
- {"P1 Coin" , BIT_DIGITAL , CpsInp018+0, "p1 coin" },
- {"P1 Start" , BIT_DIGITAL , CpsInp018+4, "p1 start" },
- {"P1 Up" , BIT_DIGITAL , CpsInp001+3, "p1 up" },
- {"P1 Down" , BIT_DIGITAL , CpsInp001+2, "p1 down" },
- {"P1 Left" , BIT_DIGITAL , CpsInp001+1, "p1 left" },
- {"P1 Right" , BIT_DIGITAL , CpsInp001+0, "p1 right" },
- {"P1 Shot" , BIT_DIGITAL , CpsInp001+4, "p1 fire 1" },
- {"P1 Special" , BIT_DIGITAL , CpsInp001+5, "p1 fire 2" },
- {"P1 Fire 3" , BIT_DIGITAL , CpsInp001+6, "p1 fire 3" },
-
- {"P2 Coin" , BIT_DIGITAL , CpsInp018+1, "p2 coin" },
- {"P2 Start" , BIT_DIGITAL , CpsInp018+5, "p2 start" },
- {"P2 Up" , BIT_DIGITAL , CpsInp000+3, "p2 up" },
- {"P2 Down" , BIT_DIGITAL , CpsInp000+2, "p2 down" },
- {"P2 Left" , BIT_DIGITAL , CpsInp000+1, "p2 left" },
- {"P2 Right" , BIT_DIGITAL , CpsInp000+0, "p2 right" },
- {"P2 Shot" , BIT_DIGITAL , CpsInp000+4, "p2 fire 1" },
- {"P2 Special" , BIT_DIGITAL , CpsInp000+5, "p2 fire 2" },
- {"P2 Fire 3" , BIT_DIGITAL , CpsInp000+6, "p2 fire 3" },
-
- {"Reset" , BIT_DIGITAL , &CpsReset, "reset" },
- {"Diagnostic" , BIT_DIGITAL , CpsInp018+6, "diag" },
- {"Service" , BIT_DIGITAL , CpsInp018+2, "service" },
- {"Dip A" , BIT_DIPSWITCH, &Cpi01A , "dip" },
- {"Dip B" , BIT_DIPSWITCH, &Cpi01C , "dip" },
- {"Dip C" , BIT_DIPSWITCH, &Cpi01E , "dip" },
-
-};
-
-STDINPUTINFO(Unsquad)
-
-static struct BurnInputInfo VarthInputList[] =
-{
- {"P1 Coin" , BIT_DIGITAL , CpsInp018+0, "p1 coin" },
- {"P1 Start" , BIT_DIGITAL , CpsInp018+4, "p1 start" },
- {"P1 Up" , BIT_DIGITAL , CpsInp001+3, "p1 up" },
- {"P1 Down" , BIT_DIGITAL , CpsInp001+2, "p1 down" },
- {"P1 Left" , BIT_DIGITAL , CpsInp001+1, "p1 left" },
- {"P1 Right" , BIT_DIGITAL , CpsInp001+0, "p1 right" },
- {"P1 Shot" , BIT_DIGITAL , CpsInp001+4, "p1 fire 1" },
- {"P1 Bomb" , BIT_DIGITAL , CpsInp001+5, "p1 fire 2" },
- {"P1 Fire 3" , BIT_DIGITAL , CpsInp001+6, "p1 fire 3" },
-
- {"P2 Coin" , BIT_DIGITAL , CpsInp018+1, "p2 coin" },
- {"P2 Start" , BIT_DIGITAL , CpsInp018+5, "p2 start" },
- {"P2 Up" , BIT_DIGITAL , CpsInp000+3, "p2 up" },
- {"P2 Down" , BIT_DIGITAL , CpsInp000+2, "p2 down" },
- {"P2 Left" , BIT_DIGITAL , CpsInp000+1, "p2 left" },
- {"P2 Right" , BIT_DIGITAL , CpsInp000+0, "p2 right" },
- {"P2 Shot" , BIT_DIGITAL , CpsInp000+4, "p2 fire 1" },
- {"P2 Bomb" , BIT_DIGITAL , CpsInp000+5, "p2 fire 2" },
- {"P2 Fire 3" , BIT_DIGITAL , CpsInp000+6, "p2 fire 3" },
-
- {"Reset" , BIT_DIGITAL , &CpsReset, "reset" },
- {"Diagnostic" , BIT_DIGITAL , CpsInp018+6, "diag" },
- {"Service" , BIT_DIGITAL , CpsInp018+2, "service" },
- {"Dip A" , BIT_DIPSWITCH, &Cpi01A , "dip" },
- {"Dip B" , BIT_DIPSWITCH, &Cpi01C , "dip" },
- {"Dip C" , BIT_DIPSWITCH, &Cpi01E , "dip" },
-};
-
-STDINPUTINFO(Varth)
-
-static struct BurnInputInfo WillowInputList[] =
-{
- {"P1 Coin" , BIT_DIGITAL , CpsInp018+0, "p1 coin" },
- {"P1 Start" , BIT_DIGITAL , CpsInp018+4, "p1 start" },
- {"P1 Up" , BIT_DIGITAL , CpsInp001+3, "p1 up" },
- {"P1 Down" , BIT_DIGITAL , CpsInp001+2, "p1 down" },
- {"P1 Left" , BIT_DIGITAL , CpsInp001+1, "p1 left" },
- {"P1 Right" , BIT_DIGITAL , CpsInp001+0, "p1 right" },
- {"P1 Attack" , BIT_DIGITAL , CpsInp001+4, "p1 fire 1" },
- {"P1 Jump" , BIT_DIGITAL , CpsInp001+5, "p1 fire 2" },
- {"P1 Fire 3" , BIT_DIGITAL , CpsInp001+6, "p1 fire 3" },
-
- {"P2 Coin" , BIT_DIGITAL , CpsInp018+1, "p2 coin" },
- {"P2 Start" , BIT_DIGITAL , CpsInp018+5, "p2 start" },
- {"P2 Up" , BIT_DIGITAL , CpsInp000+3, "p2 up" },
- {"P2 Down" , BIT_DIGITAL , CpsInp000+2, "p2 down" },
- {"P2 Left" , BIT_DIGITAL , CpsInp000+1, "p2 left" },
- {"P2 Right" , BIT_DIGITAL , CpsInp000+0, "p2 right" },
- {"P2 Attack" , BIT_DIGITAL , CpsInp000+4, "p2 fire 1" },
- {"P2 Jump" , BIT_DIGITAL , CpsInp000+5, "p2 fire 2" },
- {"P2 Fire 3" , BIT_DIGITAL , CpsInp000+6, "p2 fire 3" },
-
- {"Reset" , BIT_DIGITAL , &CpsReset, "reset" },
- {"Diagnostic" , BIT_DIGITAL , CpsInp018+6, "diag" },
- {"Service" , BIT_DIGITAL , CpsInp018+2, "service" },
- {"Dip A" , BIT_DIPSWITCH, &Cpi01A , "dip" },
- {"Dip B" , BIT_DIPSWITCH, &Cpi01C , "dip" },
- {"Dip C" , BIT_DIPSWITCH, &Cpi01E , "dip" },
-};
-
-STDINPUTINFO(Willow)
-
-static struct BurnInputInfo WofInputList[] =
-{
- {"P1 Coin" , BIT_DIGITAL , CpsInp018+0, "p1 coin" },
- {"P1 Start" , BIT_DIGITAL , CpsInp018+4, "p1 start" },
- {"P1 Up" , BIT_DIGITAL , CpsInp001+3, "p1 up" },
- {"P1 Down" , BIT_DIGITAL , CpsInp001+2, "p1 down" },
- {"P1 Left" , BIT_DIGITAL , CpsInp001+1, "p1 left" },
- {"P1 Right" , BIT_DIGITAL , CpsInp001+0, "p1 right" },
- {"P1 Attack" , BIT_DIGITAL , CpsInp001+4, "p1 fire 1" },
- {"P1 Jump" , BIT_DIGITAL , CpsInp001+5, "p1 fire 2" },
-
- {"P2 Coin" , BIT_DIGITAL , CpsInp018+1, "p2 coin" },
- {"P2 Start" , BIT_DIGITAL , CpsInp018+5, "p2 start" },
- {"P2 Up" , BIT_DIGITAL , CpsInp000+3, "p2 up" },
- {"P2 Down" , BIT_DIGITAL , CpsInp000+2, "p2 down" },
- {"P2 Left" , BIT_DIGITAL , CpsInp000+1, "p2 left" },
- {"P2 Right" , BIT_DIGITAL , CpsInp000+0, "p2 right" },
- {"P2 Attack" , BIT_DIGITAL , CpsInp000+4, "p2 fire 1" },
- {"P2 Jump" , BIT_DIGITAL , CpsInp000+5, "p2 fire 2" },
-
- {"P3 Coin" , BIT_DIGITAL , CpsInpc001+6, "p3 coin" },
- {"P3 Start" , BIT_DIGITAL , CpsInpc001+7, "p3 start" },
- {"P3 Up" , BIT_DIGITAL , CpsInpc001+3, "p3 up" },
- {"P3 Down" , BIT_DIGITAL , CpsInpc001+2, "p3 down" },
- {"P3 Left" , BIT_DIGITAL , CpsInpc001+1, "p3 left" },
- {"P3 Right" , BIT_DIGITAL , CpsInpc001+0, "p3 right" },
- {"P3 Attack" , BIT_DIGITAL , CpsInpc001+4, "p3 fire 1"},
- {"P3 Jump" , BIT_DIGITAL , CpsInpc001+5, "p3 fire 2"},
-
- {"Reset" , BIT_DIGITAL , &CpsReset, "reset" },
- {"Diagnostic" , BIT_DIGITAL , CpsInp018+6, "diag" },
- {"Service" , BIT_DIGITAL , CpsInp018+2, "service" },
- {"Dip C" , BIT_DIPSWITCH, &Cpi01E , "dip" },
-};
-
-STDINPUTINFO(Wof)
-
-static struct BurnInputInfo WofchInputList[] =
-{
- {"P1 Start" , BIT_DIGITAL , CpsInp018+4, "p1 start" },
- {"P1 Up" , BIT_DIGITAL , CpsInp001+3, "p1 up" },
- {"P1 Down" , BIT_DIGITAL , CpsInp001+2, "p1 down" },
- {"P1 Left" , BIT_DIGITAL , CpsInp001+1, "p1 left" },
- {"P1 Right" , BIT_DIGITAL , CpsInp001+0, "p1 right" },
- {"P1 Attack" , BIT_DIGITAL , CpsInp001+4, "p1 fire 1" },
- {"P1 Jump" , BIT_DIGITAL , CpsInp001+5, "p1 fire 2" },
- {"P1 Fire" , BIT_DIGITAL , CpsInp001+6, "p1 fire 3" },
-
- {"P2 Start" , BIT_DIGITAL , CpsInp018+5, "p2 start" },
- {"P2 Up" , BIT_DIGITAL , CpsInp000+3, "p2 up" },
- {"P2 Down" , BIT_DIGITAL , CpsInp000+2, "p2 down" },
- {"P2 Left" , BIT_DIGITAL , CpsInp000+1, "p2 left" },
- {"P2 Right" , BIT_DIGITAL , CpsInp000+0, "p2 right" },
- {"P2 Attack" , BIT_DIGITAL , CpsInp000+4, "p2 fire 1" },
- {"P2 Jump" , BIT_DIGITAL , CpsInp000+5, "p2 fire 2" },
- {"P2 Fire" , BIT_DIGITAL , CpsInp000+6, "p2 fire 3" },
-
- {"P3 Start" , BIT_DIGITAL , CpsInpc001+7, "p3 start" },
- {"P3 Up" , BIT_DIGITAL , CpsInpc001+3, "p3 up" },
- {"P3 Down" , BIT_DIGITAL , CpsInpc001+2, "p3 down" },
- {"P3 Left" , BIT_DIGITAL , CpsInpc001+1, "p3 left" },
- {"P3 Right" , BIT_DIGITAL , CpsInpc001+0, "p3 right" },
- {"P3 Attack" , BIT_DIGITAL , CpsInpc001+4, "p3 fire 1"},
- {"P3 Jump" , BIT_DIGITAL , CpsInpc001+5, "p3 fire 2"},
- {"P3 Fire" , BIT_DIGITAL , CpsInpc001+6, "p3 fire 3"},
-
- {"Reset" , BIT_DIGITAL , &CpsReset, "reset" },
-};
-
-STDINPUTINFO(Wofch)
-
-static struct BurnInputInfo WofhfhInputList[] =
-{
- {"P1 Coin" , BIT_DIGITAL , CpsInp018+0, "p1 coin" },
- {"P1 Start" , BIT_DIGITAL , CpsInp018+4, "p1 start" },
- {"P1 Up" , BIT_DIGITAL , CpsInp001+3, "p1 up" },
- {"P1 Down" , BIT_DIGITAL , CpsInp001+2, "p1 down" },
- {"P1 Left" , BIT_DIGITAL , CpsInp001+1, "p1 left" },
- {"P1 Right" , BIT_DIGITAL , CpsInp001+0, "p1 right" },
- {"P1 Attack" , BIT_DIGITAL , CpsInp001+4, "p1 fire 1" },
- {"P1 Jump" , BIT_DIGITAL , CpsInp001+5, "p1 fire 2" },
- {"P1 Fire 3" , BIT_DIGITAL , CpsInp001+6, "p1 fire 3" },
-
- {"P2 Coin" , BIT_DIGITAL , CpsInp018+1, "p2 coin" },
- {"P2 Start" , BIT_DIGITAL , CpsInp018+5, "p2 start" },
- {"P2 Up" , BIT_DIGITAL , CpsInp000+3, "p2 up" },
- {"P2 Down" , BIT_DIGITAL , CpsInp000+2, "p2 down" },
- {"P2 Left" , BIT_DIGITAL , CpsInp000+1, "p2 left" },
- {"P2 Right" , BIT_DIGITAL , CpsInp000+0, "p2 right" },
- {"P2 Attack" , BIT_DIGITAL , CpsInp000+4, "p2 fire 1" },
- {"P2 Jump" , BIT_DIGITAL , CpsInp000+5, "p2 fire 2" },
- {"P2 Fire 3" , BIT_DIGITAL , CpsInp000+6, "p2 fire 3" },
-
- {"P3 Coin" , BIT_DIGITAL , CpsInp177+6, "p3 coin" },
- {"P3 Start" , BIT_DIGITAL , CpsInp177+7, "p3 start" },
- {"P3 Up" , BIT_DIGITAL , CpsInp177+3, "p3 up" },
- {"P3 Down" , BIT_DIGITAL , CpsInp177+2, "p3 down" },
- {"P3 Left" , BIT_DIGITAL , CpsInp177+1, "p3 left" },
- {"P3 Right" , BIT_DIGITAL , CpsInp177+0, "p3 right" },
- {"P3 Attack" , BIT_DIGITAL , CpsInp177+4, "p3 fire 1" },
- {"P3 Jump" , BIT_DIGITAL , CpsInp177+5, "p3 fire 2" },
- {"P3 Fire 3" , BIT_DIGITAL , CpsInp177+6, "p3 fire 3" },
-
- {"Reset" , BIT_DIGITAL , &CpsReset, "reset" },
- {"Diagnostic" , BIT_DIGITAL , CpsInp018+6, "diag" },
- {"Service" , BIT_DIGITAL , CpsInp018+2, "service" },
- {"Dip A" , BIT_DIPSWITCH, &Cpi01A , "dip" },
- {"Dip B" , BIT_DIPSWITCH, &Cpi01C , "dip" },
- {"Dip C" , BIT_DIPSWITCH, &Cpi01E , "dip" },
-};
-
-STDINPUTINFO(Wofhfh)
-
-static struct BurnInputInfo WofhInputList[] =
-{
- {"P1 Coin" , BIT_DIGITAL , CpsInp018+0, "p1 coin" },
- {"P1 Start" , BIT_DIGITAL , CpsInp018+4, "p1 start" },
- {"P1 Up" , BIT_DIGITAL , CpsInp001+3, "p1 up" },
- {"P1 Down" , BIT_DIGITAL , CpsInp001+2, "p1 down" },
- {"P1 Left" , BIT_DIGITAL , CpsInp001+1, "p1 left" },
- {"P1 Right" , BIT_DIGITAL , CpsInp001+0, "p1 right" },
- {"P1 Attack" , BIT_DIGITAL , CpsInp001+4, "p1 fire 1" },
- {"P1 Jump" , BIT_DIGITAL , CpsInp001+5, "p1 fire 2" },
- {"P1 Fire 3" , BIT_DIGITAL , CpsInp001+6, "p1 fire 3" },
-
- {"P2 Coin" , BIT_DIGITAL , CpsInp018+1, "p2 coin" },
- {"P2 Start" , BIT_DIGITAL , CpsInp018+5, "p2 start" },
- {"P2 Up" , BIT_DIGITAL , CpsInp000+3, "p2 up" },
- {"P2 Down" , BIT_DIGITAL , CpsInp000+2, "p2 down" },
- {"P2 Left" , BIT_DIGITAL , CpsInp000+1, "p2 left" },
- {"P2 Right" , BIT_DIGITAL , CpsInp000+0, "p2 right" },
- {"P2 Attack" , BIT_DIGITAL , CpsInp000+4, "p2 fire 1" },
- {"P2 Jump" , BIT_DIGITAL , CpsInp000+5, "p2 fire 2" },
- {"P2 Fire 3" , BIT_DIGITAL , CpsInp000+6, "p2 fire 3" },
-
- {"P3 Coin" , BIT_DIGITAL , CpsInp177+6, "p3 coin" }, // doesn't work in some sets?
- {"P3 Start" , BIT_DIGITAL , CpsInp177+7, "p3 start" },
- {"P3 Up" , BIT_DIGITAL , CpsInp177+3, "p3 up" },
- {"P3 Down" , BIT_DIGITAL , CpsInp177+2, "p3 down" },
- {"P3 Left" , BIT_DIGITAL , CpsInp177+1, "p3 left" },
- {"P3 Right" , BIT_DIGITAL , CpsInp177+0, "p3 right" },
- {"P3 Attack" , BIT_DIGITAL , CpsInp177+4, "p3 fire 1" },
- {"P3 Jump" , BIT_DIGITAL , CpsInp177+5, "p3 fire 2" },
- {"P3 Fire 3" , BIT_DIGITAL , CpsInp177+6, "p3 fire 3" },
-
- {"Reset" , BIT_DIGITAL , &CpsReset, "reset" },
- {"Service" , BIT_DIGITAL , CpsInp018+2, "service" },
- {"Dip A" , BIT_DIPSWITCH, &Cpi01A , "dip" },
- {"Dip B" , BIT_DIPSWITCH, &Cpi01C , "dip" },
- {"Dip C" , BIT_DIPSWITCH, &Cpi01E , "dip" },
-};
-
-STDINPUTINFO(Wofh)
-
-static struct BurnInputInfo Wof3jsInputList[] =
-{
- {"P1 Coin" , BIT_DIGITAL , CpsInp018+0, "p1 coin" },
- {"P1 Start" , BIT_DIGITAL , CpsInp018+4, "p1 start" },
- {"P1 Up" , BIT_DIGITAL , CpsInp001+3, "p1 up" },
- {"P1 Down" , BIT_DIGITAL , CpsInp001+2, "p1 down" },
- {"P1 Left" , BIT_DIGITAL , CpsInp001+1, "p1 left" },
- {"P1 Right" , BIT_DIGITAL , CpsInp001+0, "p1 right" },
- {"P1 Attack" , BIT_DIGITAL , CpsInp001+4, "p1 fire 1" },
- {"P1 Jump" , BIT_DIGITAL , CpsInp001+5, "p1 fire 2" },
- {"P1 Fire 3" , BIT_DIGITAL , CpsInp001+6, "p1 fire 3" },
-
- {"P2 Coin" , BIT_DIGITAL , CpsInp018+1, "p2 coin" },
- {"P2 Start" , BIT_DIGITAL , CpsInp018+5, "p2 start" },
- {"P2 Up" , BIT_DIGITAL , CpsInp000+3, "p2 up" },
- {"P2 Down" , BIT_DIGITAL , CpsInp000+2, "p2 down" },
- {"P2 Left" , BIT_DIGITAL , CpsInp000+1, "p2 left" },
- {"P2 Right" , BIT_DIGITAL , CpsInp000+0, "p2 right" },
- {"P2 Attack" , BIT_DIGITAL , CpsInp000+4, "p2 fire 1" },
- {"P2 Jump" , BIT_DIGITAL , CpsInp000+5, "p2 fire 2" },
- {"P2 Fire 3" , BIT_DIGITAL , CpsInp000+6, "p2 fire 3" },
-
- {"P3 Start" , BIT_DIGITAL , CpsInp177+7, "p3 start" },
- {"P3 Up" , BIT_DIGITAL , CpsInp177+3, "p3 up" },
- {"P3 Down" , BIT_DIGITAL , CpsInp177+2, "p3 down" },
- {"P3 Left" , BIT_DIGITAL , CpsInp177+1, "p3 left" },
- {"P3 Right" , BIT_DIGITAL , CpsInp177+0, "p3 right" },
- {"P3 Attack" , BIT_DIGITAL , CpsInp177+4, "p3 fire 1" },
- {"P3 Jump" , BIT_DIGITAL , CpsInp177+5, "p3 fire 2" },
- {"P3 Fire 3" , BIT_DIGITAL , CpsInp177+6, "p3 fire 3" },
-
- {"Reset" , BIT_DIGITAL , &CpsReset, "reset" },
- {"Service" , BIT_DIGITAL , CpsInp018+2, "service" },
- {"Dip A" , BIT_DIPSWITCH, &Cpi01A , "dip" },
- {"Dip B" , BIT_DIPSWITCH, &Cpi01C , "dip" },
- {"Dip C" , BIT_DIPSWITCH, &Cpi01E , "dip" },
-};
-
-STDINPUTINFO(Wof3js)
-
-// don't know where this one reads config data from (if at all), reads values at 0x80001a, 0x80001e, 0x80001f (but values make no difference)
-// if I force it to use EEPROM, the config data gets forgotten
-static struct BurnInputInfo WofsjbInputList[] =
-{
- {"P1 Coin" , BIT_DIGITAL , CpsInp018+0, "p1 coin" },
- {"P1 Start" , BIT_DIGITAL , CpsInp018+4, "p1 start" },
- {"P1 Up" , BIT_DIGITAL , CpsInp001+3, "p1 up" },
- {"P1 Down" , BIT_DIGITAL , CpsInp001+2, "p1 down" },
- {"P1 Left" , BIT_DIGITAL , CpsInp001+1, "p1 left" },
- {"P1 Right" , BIT_DIGITAL , CpsInp001+0, "p1 right" },
- {"P1 Attack" , BIT_DIGITAL , CpsInp001+4, "p1 fire 1" },
- {"P1 Jump" , BIT_DIGITAL , CpsInp001+5, "p1 fire 2" },
- {"P1 Fire 3" , BIT_DIGITAL , CpsInp001+6, "p1 fire 3" },
-
- {"P2 Coin" , BIT_DIGITAL , CpsInp018+1, "p2 coin" },
- {"P2 Start" , BIT_DIGITAL , CpsInp018+5, "p2 start" },
- {"P2 Up" , BIT_DIGITAL , CpsInp000+3, "p2 up" },
- {"P2 Down" , BIT_DIGITAL , CpsInp000+2, "p2 down" },
- {"P2 Left" , BIT_DIGITAL , CpsInp000+1, "p2 left" },
- {"P2 Right" , BIT_DIGITAL , CpsInp000+0, "p2 right" },
- {"P2 Attack" , BIT_DIGITAL , CpsInp000+4, "p2 fire 1" },
- {"P2 Jump" , BIT_DIGITAL , CpsInp000+5, "p2 fire 2" },
- {"P2 Fire 3" , BIT_DIGITAL , CpsInp000+6, "p2 fire 3" },
-
- {"P3 Coin" , BIT_DIGITAL , CpsInp01B+6, "p3 coin" },
- {"P3 Start" , BIT_DIGITAL , CpsInp01B+7, "p3 start" },
- {"P3 Up" , BIT_DIGITAL , CpsInp01B+3, "p3 up" },
- {"P3 Down" , BIT_DIGITAL , CpsInp01B+2, "p3 down" },
- {"P3 Left" , BIT_DIGITAL , CpsInp01B+1, "p3 left" },
- {"P3 Right" , BIT_DIGITAL , CpsInp01B+0, "p3 right" },
- {"P3 Attack" , BIT_DIGITAL , CpsInp01B+4, "p3 fire 1"},
- {"P3 Jump" , BIT_DIGITAL , CpsInp01B+5, "p3 fire 2"},
- {"P3 Fire 3" , BIT_DIGITAL , CpsInp01B+6, "p3 fire 3"},
-
- {"Reset" , BIT_DIGITAL , &CpsReset, "reset" },
- {"Diagnostic" , BIT_DIGITAL , CpsInp018+6, "diag" },
- {"Service" , BIT_DIGITAL , CpsInp018+2, "service" },
- {"Dip C" , BIT_DIPSWITCH, &Cpi01E , "dip" },
-};
-
-STDINPUTINFO(Wofsjb)
-
-// Dip Switch Definitions
-
-#define CPS1_COINAGE_1(dipval) \
- {0 , 0xfe, 0 , 8 , "Coin A" }, \
- {dipval, 0x01, 0x07, 0x07, "4 Coins 1 Credit" }, \
- {dipval, 0x01, 0x07, 0x06, "3 Coins 1 Credit" }, \
- {dipval, 0x01, 0x07, 0x05, "2 Coins 1 Credit" }, \
- {dipval, 0x01, 0x07, 0x00, "1 Coin 1 Credit" }, \
- {dipval, 0x01, 0x07, 0x01, "1 Coin 2 Credits" }, \
- {dipval, 0x01, 0x07, 0x02, "1 Coin 3 Credits" }, \
- {dipval, 0x01, 0x07, 0x03, "1 Coin 4 Credits" }, \
- {dipval, 0x01, 0x07, 0x04, "1 Coin 6 Credits" }, \
- \
- {0 , 0xfe, 0 , 8 , "Coin B" }, \
- {dipval, 0x01, 0x38, 0x38, "4 Coins 1 Credit" }, \
- {dipval, 0x01, 0x38, 0x30, "3 Coins 1 Credit" }, \
- {dipval, 0x01, 0x38, 0x28, "2 Coins 1 Credit" }, \
- {dipval, 0x01, 0x38, 0x00, "1 Coin 1 Credit" }, \
- {dipval, 0x01, 0x38, 0x08, "1 Coin 2 Credits" }, \
- {dipval, 0x01, 0x38, 0x10, "1 Coin 3 Credits" }, \
- {dipval, 0x01, 0x38, 0x18, "1 Coin 4 Credits" }, \
- {dipval, 0x01, 0x38, 0x20, "1 Coin 6 Credits" },
-
-#define CPS1_COINAGE_2(dipval) \
- {0 , 0xfe, 0 , 8 , "Coinage" }, \
- {dipval, 0x01, 0x07, 0x07, "4 Coins 1 Credit" }, \
- {dipval, 0x01, 0x07, 0x06, "3 Coins 1 Credit" }, \
- {dipval, 0x01, 0x07, 0x05, "2 Coins 1 Credit" }, \
- {dipval, 0x01, 0x07, 0x00, "1 Coin 1 Credit" }, \
- {dipval, 0x01, 0x07, 0x01, "1 Coin 2 Credits" }, \
- {dipval, 0x01, 0x07, 0x02, "1 Coin 3 Credits" }, \
- {dipval, 0x01, 0x07, 0x03, "1 Coin 4 Credits" }, \
- {dipval, 0x01, 0x07, 0x04, "1 Coin 6 Credits" },
-
-#define CPS1_COINAGE_3(dipval) \
- {0 , 0xfe, 0 , 8 , "Coin A" }, \
- {dipval, 0x01, 0x07, 0x06, "4 Coins 1 Credit" }, \
- {dipval, 0x01, 0x07, 0x05, "3 Coins 1 Credit" }, \
- {dipval, 0x01, 0x07, 0x04, "2 Coins 1 Credit" }, \
- {dipval, 0x01, 0x07, 0x07, "2 Coins 1 Credit (1 to cont)"}, \
- {dipval, 0x01, 0x07, 0x00, "1 Coin 1 Credit" }, \
- {dipval, 0x01, 0x07, 0x01, "1 Coin 2 Credits" }, \
- {dipval, 0x01, 0x07, 0x02, "1 Coin 3 Credits" }, \
- {dipval, 0x01, 0x07, 0x03, "1 Coin 4 Credits" }, \
- \
- {0 , 0xfe, 0 , 8 , "Coin B" }, \
- {dipval, 0x01, 0x38, 0x30, "4 Coins 1 Credit" }, \
- {dipval, 0x01, 0x38, 0x28, "3 Coins 1 Credit" }, \
- {dipval, 0x01, 0x38, 0x20, "2 Coins 1 Credit" }, \
- {dipval, 0x01, 0x38, 0x38, "2 Coins 1 Credit (1 to cont)"}, \
- {dipval, 0x01, 0x38, 0x00, "1 Coin 1 Credit" }, \
- {dipval, 0x01, 0x38, 0x08, "1 Coin 2 Credits" }, \
- {dipval, 0x01, 0x38, 0x10, "1 Coin 3 Credits" }, \
- {dipval, 0x01, 0x38, 0x18, "1 Coin 4 Credits" },
-
-#define CPS1_DIFFICULTY_1(dipval) \
- {0 , 0xfe, 0 , 8 , "Difficulty" }, \
- {dipval, 0x01, 0x07, 0x00, "1 (Easiest)" }, \
- {dipval, 0x01, 0x07, 0x01, "2" }, \
- {dipval, 0x01, 0x07, 0x02, "3" }, \
- {dipval, 0x01, 0x07, 0x03, "4 (Normal)" }, \
- {dipval, 0x01, 0x07, 0x04, "5" }, \
- {dipval, 0x01, 0x07, 0x05, "6" }, \
- {dipval, 0x01, 0x07, 0x06, "7" }, \
- {dipval, 0x01, 0x07, 0x07, "8 (Hardest)" },
-
-#define CPS1_DIFFICULTY_2(dipval) \
- {0 , 0xfe, 0 , 8 , "Difficulty" }, \
- {dipval, 0x01, 0x07, 0x03, "1 (Easiest)" }, \
- {dipval, 0x01, 0x07, 0x02, "2" }, \
- {dipval, 0x01, 0x07, 0x01, "3" }, \
- {dipval, 0x01, 0x07, 0x00, "4 (Normal)" }, \
- {dipval, 0x01, 0x07, 0x04, "5" }, \
- {dipval, 0x01, 0x07, 0x05, "6" }, \
- {dipval, 0x01, 0x07, 0x06, "7" }, \
- {dipval, 0x01, 0x07, 0x07, "8 (Hardest)" },
-
-static struct BurnDIPInfo NTFODIPList[]=
-{
- // Defaults
- {0x12, 0xff, 0xff, 0x00, NULL },
- {0x13, 0xff, 0xff, 0x00, NULL },
- {0x14, 0xff, 0xff, 0x60, NULL },
-
- // Dip A
- CPS1_COINAGE_1(0x12)
-
- {0 , 0xfe, 0 , 2 , "2C to Start, 1 to Cont" },
- {0x12, 0x01, 0x40, 0x00, "Off" },
- {0x12, 0x01, 0x40, 0x40, "On" },
-
- // Dip B
- CPS1_DIFFICULTY_1(0x13)
-
- {0 , 0xfe, 0 , 4 , "Level Up Timer" },
- {0x13, 0x01, 0x18, 0x00, "More Slowly" },
- {0x13, 0x01, 0x18, 0x08, "Slowly" },
- {0x13, 0x01, 0x18, 0x10, "Quickly" },
- {0x13, 0x01, 0x18, 0x18, "More Quickly" },
-
- {0 , 0xfe, 0 , 4 , "Bullet's Speed" },
- {0x13, 0x01, 0x60, 0x00, "Very Slow" },
- {0x13, 0x01, 0x60, 0x20, "Slow" },
- {0x13, 0x01, 0x60, 0x40, "Fast" },
- {0x13, 0x01, 0x60, 0x60, "Very Fast" },
-
- {0 , 0xfe, 0 , 2 , "Initital Vitality" },
- {0x13, 0x01, 0x80, 0x00, "3 bars" },
- {0x13, 0x01, 0x80, 0x80, "4 bars" },
-
- // Dip C
- {0 , 0xfe, 0 , 2 , "Throttle Game Speed" },
- {0x14, 0x01, 0x01, 0x01, "Off" },
- {0x14, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2 , "Free Play" },
- {0x14, 0x01, 0x04, 0x00, "Off" },
- {0x14, 0x01, 0x04, 0x04, "On" },
-
- {0 , 0xfe, 0 , 2 , "Freeze" },
- {0x14, 0x01, 0x08, 0x00, "Off" },
- {0x14, 0x01, 0x08, 0x08, "On" },
-
- {0 , 0xfe, 0 , 2 , "Flip" },
- {0x14, 0x01, 0x10, 0x00, "Off" },
- {0x14, 0x01, 0x10, 0x10, "On" },
-
- {0 , 0xfe, 0 , 2 , "Demo Sound" },
- {0x14, 0x01, 0x20, 0x00, "Off" },
- {0x14, 0x01, 0x20, 0x20, "On" },
-
- {0 , 0xfe, 0 , 2 , "Allow Continue" },
- {0x14, 0x01, 0x40, 0x00, "Off" },
- {0x14, 0x01, 0x40, 0x40, "On" },
-
- {0 , 0xfe, 0 , 2 , "Game Mode" },
- {0x14, 0x01, 0x80, 0x00, "Game" },
- {0x14, 0x01, 0x80, 0x80, "Test" },
-};
-
-STDDIPINFO(NTFO)
-
-static struct BurnDIPInfo ThreeWondersDIPList[]=
-{
- // Defaults
- {0x13, 0xff, 0xff, 0x00, NULL },
- {0x14, 0xff, 0xff, 0x65, NULL },
- {0x15, 0xff, 0xff, 0x66, NULL },
-
- // Dip A
- CPS1_COINAGE_1(0x13)
-
- {0 , 0xfe, 0 , 2 , "2C to Start, 1 to Cont" },
- {0x13, 0x01, 0x40, 0x00, "Off" },
- {0x13, 0x01, 0x40, 0x40, "On" },
-
- {0 , 0xfe, 0 , 2 , "Freeze" },
- {0x13, 0x01, 0x80, 0x00, "Off" },
- {0x13, 0x01, 0x80, 0x80, "On" },
-
- // Dip B
- {0 , 0xfe, 0 , 4 , "Action Lives" },
- {0x14, 0x01, 0x03, 0x00, "1" },
- {0x14, 0x01, 0x03, 0x01, "2" },
- {0x14, 0x01, 0x03, 0x02, "3" },
- {0x14, 0x01, 0x03, 0x03, "5" },
-
- {0 , 0xfe, 0 , 4 , "Action Game Level" },
- {0x14, 0x01, 0x0c, 0x00, "Easy" },
- {0x14, 0x01, 0x0c, 0x04, "Normal" },
- {0x14, 0x01, 0x0c, 0x08, "Hard" },
- {0x14, 0x01, 0x0c, 0x0c, "Hardest" },
-
- {0 , 0xfe, 0 , 4 , "Shooting Lives" },
- {0x14, 0x01, 0x30, 0x00, "1" },
- {0x14, 0x01, 0x30, 0x10, "2" },
- {0x14, 0x01, 0x30, 0x20, "3" },
- {0x14, 0x01, 0x30, 0x30, "5" },
-
- {0 , 0xfe, 0 , 4 , "Shooting Game Level" },
- {0x14, 0x01, 0xc0, 0x00, "Easy" },
- {0x14, 0x01, 0xc0, 0x40, "Normal" },
- {0x14, 0x01, 0xc0, 0x80, "Hard" },
- {0x14, 0x01, 0xc0, 0xc0, "Hardest" },
-
- // Dip C
- {0 , 0xfe, 0 , 4 , "Puzzle Lives" },
- {0x15, 0x01, 0x03, 0x00, "1" },
- {0x15, 0x01, 0x03, 0x01, "2" },
- {0x15, 0x01, 0x03, 0x02, "3" },
- {0x15, 0x01, 0x03, 0x03, "5" },
-
- {0 , 0xfe, 0 , 4 , "Puzzle Game Level" },
- {0x15, 0x01, 0x0c, 0x00, "Easy" },
- {0x15, 0x01, 0x0c, 0x04, "Normal" },
- {0x15, 0x01, 0x0c, 0x08, "Hard" },
- {0x15, 0x01, 0x0c, 0x0c, "Hardest" },
-
- {0 , 0xfe, 0 , 2 , "Flip Screen" },
- {0x15, 0x01, 0x10, 0x00, "Off" },
- {0x15, 0x01, 0x10, 0x10, "On" },
-
- {0 , 0xfe, 0 , 2 , "Demo Sound" },
- {0x15, 0x01, 0x20, 0x00, "Off" },
- {0x15, 0x01, 0x20, 0x20, "On" },
-
- {0 , 0xfe, 0 , 2 , "Allow Continue" },
- {0x15, 0x01, 0x40, 0x00, "Off" },
- {0x15, 0x01, 0x40, 0x40, "On" },
-
- {0 , 0xfe, 0 , 2 , "Game Mode" },
- {0x15, 0x01, 0x80, 0x00, "Game" },
- {0x15, 0x01, 0x80, 0x80, "Test" },
-};
-
-STDDIPINFO(ThreeWonders)
-
-static struct BurnDIPInfo CaptcommDIPList[]=
-{
- // Defaults
- {0x23, 0xff, 0xff, 0x00, NULL },
- {0x24, 0xff, 0xff, 0x0b, NULL },
- {0x25, 0xff, 0xff, 0x60, NULL },
-
- // Dip A
- CPS1_COINAGE_2(0x23)
-
- {0 , 0xfe, 0 , 2 , "2C to Start, 1 to Cont" },
- {0x23, 0x01, 0x40, 0x00, "Off" },
- {0x23, 0x01, 0x40, 0x40, "On" },
-
- // Dip B
- CPS1_DIFFICULTY_1(0x24)
-
- {0 , 0xfe, 0 , 4 , "Difficulty 2" },
- {0x24, 0x01, 0x18, 0x00, "Easy" },
- {0x24, 0x01, 0x18, 0x08, "Normal" },
- {0x24, 0x01, 0x18, 0x10, "Hard" },
- {0x24, 0x01, 0x18, 0x18, "Hardest" },
-
- {0 , 0xfe, 0 , 4 , "Play Mode" },
- {0x24, 0x01, 0xc0, 0x80, "1 Player" },
- {0x24, 0x01, 0xc0, 0x00, "2 Player" },
- {0x24, 0x01, 0xc0, 0x40, "3 Player" },
- {0x24, 0x01, 0xc0, 0xc0, "4 Player" },
-
- // Dip C
- {0 , 0xfe, 0 , 4 , "Lives" },
- {0x25, 0x01, 0x03, 0x03, "1" },
- {0x25, 0x01, 0x03, 0x00, "2" },
- {0x25, 0x01, 0x03, 0x01, "3" },
- {0x25, 0x01, 0x03, 0x02, "4" },
-
- {0 , 0xfe, 0 , 2 , "Free Play" },
- {0x25, 0x01, 0x04, 0x00, "Off" },
- {0x25, 0x01, 0x04, 0x04, "On" },
-
- {0 , 0xfe, 0 , 2 , "Freeze" },
- {0x25, 0x01, 0x08, 0x00, "Off" },
- {0x25, 0x01, 0x08, 0x08, "On" },
-
- {0 , 0xfe, 0 , 2 , "Flip" },
- {0x25, 0x01, 0x10, 0x00, "Off" },
- {0x25, 0x01, 0x10, 0x10, "On" },
-
- {0 , 0xfe, 0 , 2 , "Demo Sound" },
- {0x25, 0x01, 0x20, 0x00, "Off" },
- {0x25, 0x01, 0x20, 0x20, "On" },
-
- {0 , 0xfe, 0 , 2 , "Allow Continue" },
- {0x25, 0x01, 0x40, 0x00, "Off" },
- {0x25, 0x01, 0x40, 0x40, "On" },
-
- {0 , 0xfe, 0 , 2 , "Game Mode" },
- {0x25, 0x01, 0x80, 0x00, "Game" },
- {0x25, 0x01, 0x80, 0x80, "Test" },
-};
-
-STDDIPINFO(Captcomm)
-
-static struct BurnDIPInfo CawingDIPList[]=
-{
- // Defaults
- {0x15, 0xff, 0xff, 0x00, NULL },
- {0x16, 0xff, 0xff, 0x03, NULL },
- {0x17, 0xff, 0xff, 0x60, NULL },
-
- // Dip A
- CPS1_COINAGE_1(0x15)
-
- {0 , 0xfe, 0 , 2 , "2C to Start, 1 to Cont" },
- {0x15, 0x01, 0x40, 0x00, "Off" },
- {0x15, 0x01, 0x40, 0x40, "On" },
-
- // Dip B
- {0 , 0xfe, 0 , 8 , "Difficulty (Enemys strength)"},
- {0x16, 0x01, 0x07, 0x00, "1 (Easiest)" },
- {0x16, 0x01, 0x07, 0x01, "2" },
- {0x16, 0x01, 0x07, 0x02, "3" },
- {0x16, 0x01, 0x07, 0x03, "4 (Normal)" },
- {0x16, 0x01, 0x07, 0x04, "5" },
- {0x16, 0x01, 0x07, 0x05, "6" },
- {0x16, 0x01, 0x07, 0x06, "7" },
- {0x16, 0x01, 0x07, 0x07, "8 (Hardest)" },
-
- {0 , 0xfe, 0 , 4 , "Difficulty (Players strength)"},
- {0x16, 0x01, 0x18, 0x08, "Easy" },
- {0x16, 0x01, 0x18, 0x00, "Normal" },
- {0x16, 0x01, 0x18, 0x10, "Difficult" },
- {0x16, 0x01, 0x18, 0x18, "Very Difficult" },
-
- // Dip C
- {0 , 0xfe, 0 , 2 , "Free Play" },
- {0x17, 0x01, 0x04, 0x00, "Off" },
- {0x17, 0x01, 0x04, 0x04, "On" },
-
- {0 , 0xfe, 0 , 2 , "Freeze" },
- {0x17, 0x01, 0x08, 0x00, "Off" },
- {0x17, 0x01, 0x08, 0x08, "On" },
-
- {0 , 0xfe, 0 , 2 , "Flip" },
- {0x17, 0x01, 0x10, 0x00, "Off" },
- {0x17, 0x01, 0x10, 0x10, "On" },
-
- {0 , 0xfe, 0 , 2 , "Sound" },
- {0x17, 0x01, 0x20, 0x00, "Off" },
- {0x17, 0x01, 0x20, 0x20, "On" },
-
- {0 , 0xfe, 0 , 2 , "Allow Continue" },
- {0x17, 0x01, 0x40, 0x00, "Off" },
- {0x17, 0x01, 0x40, 0x40, "On" },
-
- {0 , 0xfe, 0 , 2 , "Game Mode" },
- {0x17, 0x01, 0x80, 0x00, "Game" },
- {0x17, 0x01, 0x80, 0x80, "Test" },
-};
-
-STDDIPINFO(Cawing)
-
-static struct BurnDIPInfo Cworld2jDIPList[]=
-{
- // Defaults
- {0x0f, 0xff, 0xff, 0x00, NULL },
- {0x10, 0xff, 0xff, 0x01, NULL },
- {0x11, 0xff, 0xff, 0x60, NULL },
-
- // Dip A
- CPS1_COINAGE_2(0x0f)
-
- {0 , 0xfe, 0 , 2 , "2C to Start, 1 to Cont" },
- {0x0f, 0x01, 0x40, 0x00, "Off" },
- {0x0f, 0x01, 0x40, 0x40, "On" },
-
- {0 , 0xfe, 0 , 2 , "Extended Test Mode" },
- {0x0f, 0x01, 0x80, 0x00, "Off" },
- {0x0f, 0x01, 0x80, 0x80, "On" },
-
- // Dip B
- {0 , 0xfe, 0 , 4 , "Difficulty" },
- {0x10, 0x01, 0x07, 0x01, "0" },
- {0x10, 0x01, 0x07, 0x02, "1" },
- {0x10, 0x01, 0x07, 0x03, "2" },
- {0x10, 0x01, 0x07, 0x04, "3" },
- {0x10, 0x01, 0x07, 0x05, "4" },
-
- {0 , 0xfe, 0 , 3 , "Extend" },
- {0x10, 0x01, 0x18, 0x18, "D" },
- {0x10, 0x01, 0x18, 0x08, "E" },
- {0x10, 0x01, 0x18, 0x00, "N" },
-
- {0 , 0xfe, 0 , 5 , "Lives" },
- {0x10, 0x01, 0xe0, 0xe0, "1" },
- {0x10, 0x01, 0xe0, 0x60, "2" },
- {0x10, 0x01, 0xe0, 0x00, "3" },
- {0x10, 0x01, 0xe0, 0x40, "4" },
- {0x10, 0x01, 0xe0, 0x20, "5" },
-
- // Dip C
- {0 , 0xfe, 0 , 2 , "Free Play" },
- {0x11, 0x01, 0x04, 0x00, "Off" },
- {0x11, 0x01, 0x04, 0x04, "On" },
-
- {0 , 0xfe, 0 , 2 , "Freeze" },
- {0x11, 0x01, 0x08, 0x00, "Off" },
- {0x11, 0x01, 0x08, 0x08, "On" },
-
- {0 , 0xfe, 0 , 2 , "Flip" },
- {0x11, 0x01, 0x10, 0x00, "Off" },
- {0x11, 0x01, 0x10, 0x10, "On" },
-
- {0 , 0xfe, 0 , 2 , "Demo Sound" },
- {0x11, 0x01, 0x20, 0x00, "Off" },
- {0x11, 0x01, 0x20, 0x20, "On" },
-
- {0 , 0xfe, 0 , 2 , "Allow Continue" },
- {0x11, 0x01, 0x40, 0x00, "Off" },
- {0x11, 0x01, 0x40, 0x40, "On" },
-
- {0 , 0xfe, 0 , 2 , "Game Mode" },
- {0x11, 0x01, 0x80, 0x00, "Game" },
- {0x11, 0x01, 0x80, 0x80, "Test" },
-};
-
-STDDIPINFO(Cworld2j)
-
-static struct BurnDIPInfo DinoDIPList[]=
-{
- // Defaults
- {0x1b, 0xff, 0xff, 0x00, NULL },
-
- // Dip C
- {0 , 0xfe, 0 , 2 , "Freeze" },
- {0x1b, 0x01, 0x08, 0x00, "Off" },
- {0x1b, 0x01, 0x08, 0x08, "On" },
-};
-
-STDDIPINFO(Dino)
-
-static struct BurnDIPInfo DinohDIPList[]=
-{
- // Defaults
- {0x1d, 0xff, 0xff, 0x00, NULL },
-
- // Dip C
- {0 , 0xfe, 0 , 2 , "Freeze" },
- {0x1d, 0x01, 0x08, 0x00, "Off" },
- {0x1d, 0x01, 0x08, 0x08, "On" },
-};
-
-STDDIPINFO(Dinoh)
-
-static struct BurnDIPInfo DynwarDIPList[]=
-{
- // Defaults
- {0x14, 0xff, 0xff, 0x00, NULL },
- {0x15, 0xff, 0xff, 0x00, NULL },
- {0x16, 0xff, 0xff, 0x00, NULL },
-
- // Dip A
- CPS1_COINAGE_3(0x14)
-
- {0 , 0xfe, 0 , 2 , "Free Play" },
- {0x14, 0x01, 0x80, 0x00, "Off" },
- {0x14, 0x01, 0x80, 0x80, "On" },
-
- // Dip B
- CPS1_DIFFICULTY_2(0x15)
-
- // Dip C
- {0 , 0xfe, 0 , 2 , "Freeze" },
- {0x16, 0x01, 0x01, 0x00, "Off" },
- {0x16, 0x01, 0x01, 0x01, "On" },
-
- {0 , 0xfe, 0 , 2 , "Turbo Mode" },
- {0x16, 0x01, 0x02, 0x00, "Off" },
- {0x16, 0x01, 0x02, 0x02, "On" },
-
- {0 , 0xfe, 0 , 2 , "Flip" },
- {0x16, 0x01, 0x10, 0x00, "Off" },
- {0x16, 0x01, 0x10, 0x10, "On" },
-
- {0 , 0xfe, 0 , 2 , "Demo Sound" },
- {0x16, 0x01, 0x20, 0x20, "Off" },
- {0x16, 0x01, 0x20, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2 , "Allow Continue" },
- {0x16, 0x01, 0x40, 0x40, "Off" },
- {0x16, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2 , "Game Mode" },
- {0x16, 0x01, 0x80, 0x00, "Game" },
- {0x16, 0x01, 0x80, 0x80, "Test" },
-};
-
-STDDIPINFO(Dynwar)
-
-static struct BurnDIPInfo FfightDIPList[]=
-{
- // Defaults
- {0x14, 0xff, 0xff, 0x00, NULL },
- {0x15, 0xff, 0xff, 0x0b, NULL },
- {0x16, 0xff, 0xff, 0x60, NULL },
-
- // Dip A
- CPS1_COINAGE_1(0x14)
-
- {0 , 0xfe, 0 , 2 , "2C to Start, 1 to Cont" },
- {0x14, 0x01, 0x40, 0x00, "Off" },
- {0x14, 0x01, 0x40, 0x40, "On" },
-
- // Dip B
- CPS1_DIFFICULTY_1(0x15)
-
- {0 , 0xfe, 0 , 4 , "Difficulty 2" },
- {0x15, 0x01, 0x18, 0x00, "Easy" },
- {0x15, 0x01, 0x18, 0x08, "Normal" },
- {0x15, 0x01, 0x18, 0x10, "Hard" },
- {0x15, 0x01, 0x18, 0x18, "Hardest" },
-
- {0 , 0xfe, 0 , 4 , "Bonus Life" },
- {0x15, 0x01, 0x60, 0x00, "100k" },
- {0x15, 0x01, 0x60, 0x20, "200k" },
- {0x15, 0x01, 0x60, 0x40, "100k and every 200k" },
- {0x15, 0x01, 0x60, 0x60, "None" },
-
- // Dip C
- {0 , 0xfe, 0 , 4 , "Lives" },
- {0x16, 0x01, 0x03, 0x03, "1" },
- {0x16, 0x01, 0x03, 0x00, "2" },
- {0x16, 0x01, 0x03, 0x01, "3" },
- {0x16, 0x01, 0x03, 0x02, "4" },
-
- {0 , 0xfe, 0 , 2 , "Free Play" },
- {0x16, 0x01, 0x04, 0x00, "Off" },
- {0x16, 0x01, 0x04, 0x04, "On" },
-
- {0 , 0xfe, 0 , 2 , "Freeze" },
- {0x16, 0x01, 0x08, 0x00, "Off" },
- {0x16, 0x01, 0x08, 0x08, "On" },
-
- {0 , 0xfe, 0 , 2 , "Flip" },
- {0x16, 0x01, 0x10, 0x00, "Off" },
- {0x16, 0x01, 0x10, 0x10, "On" },
-
- {0 , 0xfe, 0 , 2 , "Demo Sound" },
- {0x16, 0x01, 0x20, 0x00, "Off" },
- {0x16, 0x01, 0x20, 0x20, "On" },
-
- {0 , 0xfe, 0 , 2 , "Allow Continue" },
- {0x16, 0x01, 0x40, 0x00, "Off" },
- {0x16, 0x01, 0x40, 0x40, "On" },
-
- {0 , 0xfe, 0 , 2 , "Game Mode" },
- {0x16, 0x01, 0x80, 0x00, "Game" },
- {0x16, 0x01, 0x80, 0x80, "Test" },
-};
-
-STDDIPINFO(Ffight)
-
-static struct BurnDIPInfo ForgottnDIPList[]=
-{
- // Defaults
- {0x16, 0xff, 0xff, 0x00, NULL },
- {0x17, 0xff, 0xff, 0x03, NULL },
- {0x18, 0xff, 0xff, 0x00, NULL },
- {0x19, 0xff, 0xff, 0x00, NULL },
-
- // Dip A
- CPS1_COINAGE_1(0x16)
-
- {0 , 0xfe, 0 , 2 , "Demo Sound" },
- {0x16, 0x01, 0x40, 0x40, "Off" },
- {0x16, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2 , "Flip" },
- {0x16, 0x01, 0x80, 0x00, "Off" },
- {0x16, 0x01, 0x80, 0x80, "On" },
-
- // Dip B
- CPS1_DIFFICULTY_1(0x17)
-
- {0 , 0xfe, 0 , 2 , "Service Mode" },
- {0x17, 0x01, 0x40, 0x00, "Off" },
- {0x17, 0x01, 0x40, 0x40, "On" },
-
- {0 , 0xfe, 0 , 2 , "Freeze" },
- {0x17, 0x01, 0x80, 0x00, "Off" },
- {0x17, 0x01, 0x80, 0x80, "On" },
-
- // Fake dip for "turn"-input inversion
- {0 , 0xfe, 0 , 2 , "Invert \"Turn\" inputs" },
- {0x19, 0x01, 0x80, 0x00, "Off" },
- {0x19, 0x01, 0x80, 0x80, "On" },
-};
-
-STDDIPINFO(Forgottn)
-
-static struct BurnDIPInfo GanbareDIPList[]=
-{
- // Defaults
- {0x0a, 0xff, 0xff, 0x00, NULL },
- {0x0b, 0xff, 0xff, 0x00, NULL },
- {0x0c, 0xff, 0xff, 0x00, NULL },
-
- // Dip A
- {0 , 0xfe, 0 , 2 , "Medal Setup" },
- {0x0a, 0x01, 0x01, 0x00, "1 Medal 1 Credit" },
- {0x0a, 0x01, 0x01, 0x01, "Don't use" },
-
- {0 , 0xfe, 0 , 2 , "Coin Setup" },
- {0x0a, 0x01, 0x02, 0x00, "100 Yen" },
- {0x0a, 0x01, 0x02, 0x02, "10 Yen" },
-
- {0 , 0xfe, 0 , 8 , "Change Setup" },
- {0x0a, 0x01, 0x1c, 0x18, "12" },
- {0x0a, 0x01, 0x1c, 0x1c, "11" },
- {0x0a, 0x01, 0x1c, 0x00, "10" },
- {0x0a, 0x01, 0x1c, 0x04, "8" },
- {0x0a, 0x01, 0x1c, 0x08, "7" },
- {0x0a, 0x01, 0x1c, 0x0c, "6" },
- {0x0a, 0x01, 0x1c, 0x10, "5" },
- {0x0a, 0x01, 0x1c, 0x14, "No change" },
-
- {0 , 0xfe, 0 , 4 , "10 Yen Setup" },
- {0x0a, 0x01, 0x60, 0x00, "1 Coin 1 Credit" },
- {0x0a, 0x01, 0x60, 0x20, "2 Coins 1 Credit" },
- {0x0a, 0x01, 0x60, 0x40, "3 Coins 1 Credit" },
- {0x0a, 0x01, 0x60, 0x60, "Don't use" },
-
- {0 , 0xfe, 0 , 2 , "Payout Setup" },
- {0x0a, 0x01, 0x80, 0x00, "Credit Mode" },
- {0x0a, 0x01, 0x80, 0x80, "Payout Mode" },
-
- // Dip B
- {0 , 0xfe, 0 , 8 , "Payout Rate Setup" },
- {0x0b, 0x01, 0x07, 0x06, "90%" },
- {0x0b, 0x01, 0x07, 0x07, "85%" },
- {0x0b, 0x01, 0x07, 0x00, "80%" },
- {0x0b, 0x01, 0x07, 0x01, "75%" },
- {0x0b, 0x01, 0x07, 0x02, "70%" },
- {0x0b, 0x01, 0x07, 0x03, "65%" },
- {0x0b, 0x01, 0x07, 0x04, "60%" },
- {0x0b, 0x01, 0x07, 0x05, "55%" },
-
- // Dip C
- {0 , 0xfe, 0 , 4 , "Demo Sound Setup" },
- {0x0c, 0x01, 0x03, 0x00, "Always" },
- {0x0c, 0x01, 0x03, 0x01, "Every second sound" },
- {0x0c, 0x01, 0x03, 0x02, "Every third sound" },
- {0x0c, 0x01, 0x03, 0x03, "Off" },
-
- {0 , 0xfe, 0 , 2 , "Clear RAM" },
- {0x0c, 0x01, 0x40, 0x00, "No" },
- {0x0C, 0x01, 0x40, 0x40, "Yes" },
-
- {0 , 0xfe, 0 , 2 , "Test Mode Display" },
- {0x0c, 0x01, 0x80, 0x00, "Off" },
- {0x0C, 0x01, 0x80, 0x80, "On" },
-};
-
-STDDIPINFO(Ganbare)
-
-static struct BurnDIPInfo GhoulsDIPList[]=
-{
- // Defaults
- {0x12, 0xff, 0xff, 0x00, NULL },
- {0x13, 0xff, 0xff, 0x00, NULL },
- {0x14, 0xff, 0xff, 0x00, NULL },
-
- // Dip A
- CPS1_COINAGE_1(0x12)
-
- {0 , 0xfe, 0 , 3 , "Cabinet" },
- {0x12, 0x01, 0xc0, 0x00, "Upright 1 Player" },
- {0x12, 0x01, 0xc0, 0x40, "Upright 2 Players" },
- {0x12, 0x01, 0xc0, 0xc0, "Cocktail" },
-
- // Dip B
- CPS1_DIFFICULTY_2(0x13)
-
- {0 , 0xfe, 0 , 4 , "Bonus Life" },
- {0x13, 0x01, 0x30, 0x10, "10k, 30k and every 30k" },
- {0x13, 0x01, 0x30, 0x20, "20k, 50k and every 70k" },
- {0x13, 0x01, 0x30, 0x00, "30k, 60k and every 70k" },
- {0x13, 0x01, 0x30, 0x30, "40k, 70k and every 80k" },
-
- // Dip C
- {0 , 0xfe, 0 , 4 , "Lives" },
- {0x14, 0x01, 0x03, 0x00, "3" },
- {0x14, 0x01, 0x03, 0x01, "4" },
- {0x14, 0x01, 0x03, 0x02, "5" },
- {0x14, 0x01, 0x03, 0x03, "6" },
-
- {0 , 0xfe, 0 , 2 , "Flip" },
- {0x14, 0x01, 0x10, 0x00, "Off" },
- {0x14, 0x01, 0x10, 0x10, "On" },
-
- {0 , 0xfe, 0 , 2 , "Allow Continue" },
- {0x14, 0x01, 0x40, 0x40, "Off" },
- {0x14, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2 , "Game Mode" },
- {0x14, 0x01, 0x80, 0x00, "Game" },
- {0x14, 0x01, 0x80, 0x80, "Test" },
-};
-
-STDDIPINFO(Ghouls)
-
-static struct BurnDIPInfo GhoulsuDIPList[]=
-{
- // Defaults
- {0x12, 0xff, 0xff, 0x00, NULL },
- {0x13, 0xff, 0xff, 0x00, NULL },
- {0x14, 0xff, 0xff, 0x00, NULL },
-
- // Dip A
- CPS1_COINAGE_1(0x12)
-
- {0 , 0xfe, 0 , 3 , "Cabinet" },
- {0x12, 0x01, 0xc0, 0x00, "Upright 1 Player" },
- {0x12, 0x01, 0xc0, 0x40, "Upright 2 Players" },
- {0x12, 0x01, 0xc0, 0xc0, "Cocktail" },
-
- // Dip B
- CPS1_DIFFICULTY_2(0x13)
-
- {0 , 0xfe, 0 , 4 , "Bonus Life" },
- {0x13, 0x01, 0x30, 0x10, "10k, 30k and every 30k" },
- {0x13, 0x01, 0x30, 0x20, "20k, 50k and every 70k" },
- {0x13, 0x01, 0x30, 0x00, "30k, 60k and every 70k" },
- {0x13, 0x01, 0x30, 0x30, "40k, 70k and every 80k" },
-
- {0 , 0xfe, 0 , 2 , "Freeze" },
- {0x13, 0x01, 0x80, 0x00, "Off" },
- {0x13, 0x01, 0x80, 0x80, "On" },
-
- // Dip C
- {0 , 0xfe, 0 , 4 , "Lives" },
- {0x14, 0x01, 0x03, 0x03, "2" },
- {0x14, 0x01, 0x03, 0x00, "3" },
- {0x14, 0x01, 0x03, 0x01, "4" },
- {0x14, 0x01, 0x03, 0x02, "5" },
-
- {0 , 0xfe, 0 , 2 , "Flip" },
- {0x14, 0x01, 0x10, 0x00, "Off" },
- {0x14, 0x01, 0x10, 0x10, "On" },
-
- {0 , 0xfe, 0 , 2 , "Allow Continue" },
- {0x14, 0x01, 0x40, 0x40, "Off" },
- {0x14, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2 , "Game Mode" },
- {0x14, 0x01, 0x80, 0x00, "Game" },
- {0x14, 0x01, 0x80, 0x80, "Test" },
-};
-
-STDDIPINFO(Ghoulsu)
-
-static struct BurnDIPInfo DaimakaiDIPList[]=
-{
- // Defaults
- {0x12, 0xff, 0xff, 0x00, NULL },
- {0x13, 0xff, 0xff, 0x00, NULL },
- {0x14, 0xff, 0xff, 0x00, NULL },
-
- // Dip A
- CPS1_COINAGE_1(0x12)
-
- {0 , 0xfe, 0 , 3 , "Cabinet" },
- {0x12, 0x01, 0xc0, 0x00, "Upright 1 Player" },
- {0x12, 0x01, 0xc0, 0x40, "Upright 2 Players" },
- {0x12, 0x01, 0xc0, 0xc0, "Cocktail" },
-
- // Dip B
- CPS1_DIFFICULTY_2(0x13)
-
- {0 , 0xfe, 0 , 4 , "Bonus Life" },
- {0x13, 0x01, 0x30, 0x10, "10k, 30k and every 30k" },
- {0x13, 0x01, 0x30, 0x20, "20k, 50k and every 70k" },
- {0x13, 0x01, 0x30, 0x00, "30k, 60k and every 70k" },
- {0x13, 0x01, 0x30, 0x30, "40k, 70k and every 80k" },
-
- {0 , 0xfe, 0 , 2 , "Freeze" },
- {0x13, 0x01, 0x80, 0x00, "Off" },
- {0x13, 0x01, 0x80, 0x80, "On" },
-
- // Dip C
- {0 , 0xfe, 0 , 4 , "Lives" },
- {0x14, 0x01, 0x03, 0x00, "3" },
- {0x14, 0x01, 0x03, 0x01, "4" },
- {0x14, 0x01, 0x03, 0x02, "5" },
- {0x14, 0x01, 0x03, 0x03, "6" },
-
- {0 , 0xfe, 0 , 2 , "Flip" },
- {0x14, 0x01, 0x10, 0x00, "Off" },
- {0x14, 0x01, 0x10, 0x10, "On" },
-
- {0 , 0xfe, 0 , 2 , "Allow Continue" },
- {0x14, 0x01, 0x40, 0x40, "Off" },
- {0x14, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2 , "Game Mode" },
- {0x14, 0x01, 0x80, 0x00, "Game" },
- {0x14, 0x01, 0x80, 0x80, "Test" },
-};
-
-STDDIPINFO(Daimakai)
-
-static struct BurnDIPInfo KnightsDIPList[]=
-{
- // Defaults
- {0x1b, 0xff, 0xff, 0x00, NULL },
- {0x1c, 0xff, 0xff, 0x03, NULL },
- {0x1d, 0xff, 0xff, 0x60, NULL },
-
- // Dip A
- CPS1_COINAGE_2(0x1b)
-
- {0 , 0xfe, 0 , 2 , "2C to Start, 1 to Cont" },
- {0x1b, 0x01, 0x40, 0x00, "Off" },
- {0x1b, 0x01, 0x40, 0x40, "On" },
-
- // Dip B
- {0 , 0xfe, 0 , 8 , "Enemys Attack Frequency"},
- {0x1c, 0x01, 0x07, 0x00, "1 (Easiest)" },
- {0x1c, 0x01, 0x07, 0x01, "2" },
- {0x1c, 0x01, 0x07, 0x02, "3" },
- {0x1c, 0x01, 0x07, 0x03, "4 (Normal)" },
- {0x1c, 0x01, 0x07, 0x04, "5" },
- {0x1c, 0x01, 0x07, 0x05, "6" },
- {0x1c, 0x01, 0x07, 0x06, "7" },
- {0x1c, 0x01, 0x07, 0x07, "8 (Hardest)" },
-
- {0 , 0xfe, 0 , 8 , "Enemys Attack Power" },
- {0x1c, 0x01, 0x38, 0x38, "1 (Easiest)" },
- {0x1c, 0x01, 0x38, 0x30, "2" },
- {0x1c, 0x01, 0x38, 0x28, "3" },
- {0x1c, 0x01, 0x38, 0x00, "4 (Normal)" },
- {0x1c, 0x01, 0x38, 0x08, "5" },
- {0x1c, 0x01, 0x38, 0x10, "6" },
- {0x1c, 0x01, 0x38, 0x18, "7" },
- {0x1c, 0x01, 0x38, 0x20, "8 (Hardest)" },
-
- {0 , 0xfe, 0 , 2 , "Coin Slots" },
- {0x1c, 0x01, 0x40, 0x40, "1" },
- {0x1c, 0x01, 0x40, 0x00, "3" },
-
- {0 , 0xfe, 0 , 2 , "Play Mode" },
- {0x1c, 0x01, 0x80, 0x80, "2P" },
- {0x1c, 0x01, 0x80, 0x00, "3P" },
-
- // Dip C
- {0 , 0xfe, 0 , 4 , "Lives" },
- {0x1d, 0x01, 0x03, 0x03, "1" },
- {0x1d, 0x01, 0x03, 0x00, "2" },
- {0x1d, 0x01, 0x03, 0x01, "3" },
- {0x1d, 0x01, 0x03, 0x02, "4" },
-
- {0 , 0xfe, 0 , 2 , "Free Play" },
- {0x1d, 0x01, 0x04, 0x00, "Off" },
- {0x1d, 0x01, 0x04, 0x04, "On" },
-
- {0 , 0xfe, 0 , 2 , "Freeze" },
- {0x1d, 0x01, 0x08, 0x00, "Off" },
- {0x1d, 0x01, 0x08, 0x08, "On" },
-
- {0 , 0xfe, 0 , 2 , "Flip" },
- {0x1d, 0x01, 0x10, 0x00, "Off" },
- {0x1d, 0x01, 0x10, 0x10, "On" },
-
- {0 , 0xfe, 0 , 2 , "Demo Sound" },
- {0x1d, 0x01, 0x20, 0x00, "Off" },
- {0x1d, 0x01, 0x20, 0x20, "On" },
-
- {0 , 0xfe, 0 , 2 , "Allow Continue" },
- {0x1d, 0x01, 0x40, 0x00, "Off" },
- {0x1d, 0x01, 0x40, 0x40, "On" },
-
- {0 , 0xfe, 0 , 2 , "Game Mode" },
- {0x1d, 0x01, 0x80, 0x00, "Game" },
- {0x1d, 0x01, 0x80, 0x80, "Test" },
-};
-
-STDDIPINFO(Knights)
-
-static struct BurnDIPInfo KodDIPList[]=
-{
- // Defaults
- {0x1b, 0xff, 0xff, 0x00, NULL },
- {0x1c, 0xff, 0xff, 0x03, NULL },
- {0x1d, 0xff, 0xff, 0x60, NULL },
-
- // Dip A
- CPS1_COINAGE_2(0x1b)
-
- {0 , 0xfe, 0 , 2 , "Coin Slots" },
- {0x1b, 0x01, 0x08, 0x08, "1" },
- {0x1b, 0x01, 0x08, 0x00, "3" },
-
- {0 , 0xfe, 0 , 2 , "Play Mode" },
- {0x1b, 0x01, 0x10, 0x10, "2 Players" },
- {0x1b, 0x01, 0x10, 0x00, "3 Players" },
-
- {0 , 0xfe, 0 , 2 , "2C to Start, 1 to Cont" },
- {0x1b, 0x01, 0x40, 0x00, "Off" },
- {0x1b, 0x01, 0x40, 0x40, "On" },
-
- // Dip B
- CPS1_DIFFICULTY_1(0x1c)
-
- {0 , 0xfe, 0 , 8 , "Lives" },
- {0x1c, 0x01, 0x38, 0x08, "1" },
- {0x1c, 0x01, 0x38, 0x00, "2" },
- {0x1c, 0x01, 0x38, 0x10, "3" },
- {0x1c, 0x01, 0x38, 0x18, "4" },
- {0x1c, 0x01, 0x38, 0x20, "5" },
- {0x1c, 0x01, 0x38, 0x28, "6" },
- {0x1c, 0x01, 0x38, 0x30, "7" },
- {0x1c, 0x01, 0x38, 0x38, "8" },
-
- {0 , 0xfe, 0 , 4 , "Bonus Life" },
- {0x1c, 0x01, 0xc0, 0x40, "80k and every 400k" },
- {0x1c, 0x01, 0xc0, 0x80, "160k and every 450k" },
- {0x1c, 0x01, 0xc0, 0x00, "200k and every 450k" },
- {0x1c, 0x01, 0xc0, 0xc0, "None" },
-
- // Dip C
- {0 , 0xfe, 0 , 2 , "Free Play" },
- {0x1d, 0x01, 0x04, 0x00, "Off" },
- {0x1d, 0x01, 0x04, 0x04, "On" },
-
- {0 , 0xfe, 0 , 2 , "Freeze" },
- {0x1d, 0x01, 0x08, 0x00, "Off" },
- {0x1d, 0x01, 0x08, 0x08, "On" },
-
- {0 , 0xfe, 0 , 2 , "Flip Screen" },
- {0x1d, 0x01, 0x10, 0x00, "Off" },
- {0x1d, 0x01, 0x10, 0x10, "On" },
-
- {0 , 0xfe, 0 , 2 , "Demo Sound" },
- {0x1d, 0x01, 0x20, 0x00, "Off" },
- {0x1d, 0x01, 0x20, 0x20, "On" },
-
- {0 , 0xfe, 0 , 2 , "Allow Continue" },
- {0x1d, 0x01, 0x40, 0x00, "Off" },
- {0x1d, 0x01, 0x40, 0x40, "On" },
-
- {0 , 0xfe, 0 , 2 , "Game Mode" },
- {0x1d, 0x01, 0x80, 0x00, "Game" },
- {0x1d, 0x01, 0x80, 0x80, "Test" },
-};
-
-STDDIPINFO(Kod)
-
-static struct BurnDIPInfo Kodr1DIPList[]=
-{
- // Defaults
- {0x1b, 0xff, 0xff, 0x00, NULL },
- {0x1c, 0xff, 0xff, 0x03, NULL },
- {0x1d, 0xff, 0xff, 0x60, NULL },
-
- // Dip A
- CPS1_COINAGE_2(0x1b)
-
- {0 , 0xfe, 0 , 2 , "Coin Slots" },
- {0x1b, 0x01, 0x08, 0x08, "1" },
- {0x1b, 0x01, 0x08, 0x00, "3" },
-
- {0 , 0xfe, 0 , 2 , "Play Mode" },
- {0x1b, 0x01, 0x10, 0x10, "2 Players" },
- {0x1b, 0x01, 0x10, 0x00, "3 Players" },
-
- {0 , 0xfe, 0 , 2 , "2C to Start, 1 to Cont" },
- {0x1b, 0x01, 0x40, 0x00, "Off" },
- {0x1b, 0x01, 0x40, 0x40, "On" },
-
- // Dip B
- CPS1_DIFFICULTY_1(0x1c)
-
- {0 , 0xfe, 0 , 8 , "Lives" },
- {0x1c, 0x01, 0x38, 0x08, "1" },
- {0x1c, 0x01, 0x38, 0x00, "2" },
- {0x1c, 0x01, 0x38, 0x10, "3" },
- {0x1c, 0x01, 0x38, 0x18, "4" },
- {0x1c, 0x01, 0x38, 0x20, "5" },
- {0x1c, 0x01, 0x38, 0x28, "6" },
- {0x1c, 0x01, 0x38, 0x30, "7" },
- {0x1c, 0x01, 0x38, 0x38, "8" },
-
- {0 , 0xfe, 0 , 4 , "Bonus Life" },
- {0x1c, 0x01, 0xc0, 0x40, "80k and every 400k" },
- {0x1c, 0x01, 0xc0, 0x00, "160k and every 450k" },
- {0x1c, 0x01, 0xc0, 0x80, "200k and every 450k" },
- {0x1c, 0x01, 0xc0, 0xc0, "None" },
-
- // Dip C
- {0 , 0xfe, 0 , 2 , "Free Play" },
- {0x1d, 0x01, 0x04, 0x00, "Off" },
- {0x1d, 0x01, 0x04, 0x04, "On" },
-
- {0 , 0xfe, 0 , 2 , "Freeze" },
- {0x1d, 0x01, 0x08, 0x00, "Off" },
- {0x1d, 0x01, 0x08, 0x08, "On" },
-
- {0 , 0xfe, 0 , 2 , "Flip Screen" },
- {0x1d, 0x01, 0x10, 0x00, "Off" },
- {0x1d, 0x01, 0x10, 0x10, "On" },
-
- {0 , 0xfe, 0 , 2 , "Demo Sound" },
- {0x1d, 0x01, 0x20, 0x00, "Off" },
- {0x1d, 0x01, 0x20, 0x20, "On" },
-
- {0 , 0xfe, 0 , 2 , "Allow Continue" },
- {0x1d, 0x01, 0x40, 0x00, "Off" },
- {0x1d, 0x01, 0x40, 0x40, "On" },
-
- {0 , 0xfe, 0 , 2 , "Game Mode" },
- {0x1d, 0x01, 0x80, 0x00, "Game" },
- {0x1d, 0x01, 0x80, 0x80, "Test" },
-};
-
-STDDIPINFO(Kodr1)
-
-static struct BurnDIPInfo MegamanDIPList[]=
-{
- // Defaults
- {0x15, 0xff, 0xff, 0x00, NULL },
- {0x16, 0xff, 0xff, 0x01, NULL },
- {0x17, 0xff, 0xff, 0x00, NULL },
-
- // Dip A
- {0 , 0xfe, 0 , 19 , "Coinage" },
- {0x15, 0x01, 0x1f, 0x00, "1 Coin 1 Credit" },
- {0x15, 0x01, 0x1f, 0x01, "1 Coin 2 Credits" },
- {0x15, 0x01, 0x1f, 0x02, "1 Coin 3 Credits" },
- {0x15, 0x01, 0x1f, 0x03, "1 Coin 4 Credits" },
- {0x15, 0x01, 0x1f, 0x04, "1 Coin 5 Credits" },
- {0x15, 0x01, 0x1f, 0x05, "1 Coin 6 Credits" },
- {0x15, 0x01, 0x1f, 0x06, "1 Coin 7 Credits" },
- {0x15, 0x01, 0x1f, 0x07, "1 Coin 8 Credits" },
- {0x15, 0x01, 0x1f, 0x08, "1 Coin 9 Credits" },
- {0x15, 0x01, 0x1f, 0x09, "2 Coins 1 Credit" },
- {0x15, 0x01, 0x1f, 0x0a, "3 Coins 1 Credit" },
- {0x15, 0x01, 0x1f, 0x0b, "4 Coins 1 Credit" },
- {0x15, 0x01, 0x1f, 0x0c, "5 Coins 1 Credit" },
- {0x15, 0x01, 0x1f, 0x0d, "6 Coins 1 Credit" },
- {0x15, 0x01, 0x1f, 0x0e, "7 Coins 1 Credit" },
- {0x15, 0x01, 0x1f, 0x0f, "8 Coins 1 Credit" },
- {0x15, 0x01, 0x1f, 0x10, "9 Coins 1 Credit" },
- {0x15, 0x01, 0x1f, 0x11, "2 Coins Start 1 Coin Continue"},
- {0x15, 0x01, 0x1f, 0x12, "Free Play" },
-
- {0 , 0xfe, 0 , 4 , "Coin Slots" },
- {0x15, 0x01, 0x60, 0x40, "1, Common" },
- {0x15, 0x01, 0x60, 0x00, "2, Common" },
- {0x15, 0x01, 0x60, 0x20, "2, Individual" },
-
- // Dip B
- {0 , 0xfe, 0 , 4 , "Difficulty" },
- {0x16, 0x01, 0x03, 0x00, "Easy" },
- {0x16, 0x01, 0x03, 0x01, "Normal" },
- {0x16, 0x01, 0x03, 0x02, "Hard" },
- {0x16, 0x01, 0x03, 0x03, "Hardest" },
-
- {0 , 0xfe, 0 , 4 , "Time" },
- {0x16, 0x01, 0x0c, 0x00, "100" },
- {0x16, 0x01, 0x0c, 0x04, "90" },
- {0x16, 0x01, 0x0c, 0x08, "70" },
- {0x16, 0x01, 0x0c, 0x0c, "60" },
-
- {0 , 0xfe, 0 , 2 , "Voice" },
- {0x16, 0x01, 0x40, 0x40, "Off" },
- {0x16, 0x01, 0x40, 0x00, "On" },
-
- // Dip C
- {0 , 0xfe, 0 , 2 , "Flip Screen" },
- {0x17, 0x01, 0x01, 0x00, "Off" },
- {0x17, 0x01, 0x01, 0x01, "On" },
-
- {0 , 0xfe, 0 , 2 , "Demo Sound" },
- {0x17, 0x01, 0x02, 0x02, "Off" },
- {0x17, 0x01, 0x02, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2 , "Allow Continue" },
- {0x17, 0x01, 0x04, 0x04, "Off" },
- {0x17, 0x01, 0x04, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2 , "Game Mode" },
- {0x17, 0x01, 0x80, 0x00, "Game" },
- {0x17, 0x01, 0x80, 0x80, "Test" },
-};
-
-STDDIPINFO(Megaman)
-
-static struct BurnDIPInfo RockmanjDIPList[]=
-{
- // Defaults
- {0x15, 0xff, 0xff, 0x00, NULL },
- {0x16, 0xff, 0xff, 0x01, NULL },
- {0x17, 0xff, 0xff, 0x00, NULL },
-
- // Dip A
- {0 , 0xfe, 0 , 19 , "Coinage" },
- {0x15, 0x01, 0x1f, 0x00, "1 Coin 1 Credit" },
- {0x15, 0x01, 0x1f, 0x01, "1 Coin 2 Credits" },
- {0x15, 0x01, 0x1f, 0x02, "1 Coin 3 Credits" },
- {0x15, 0x01, 0x1f, 0x03, "1 Coin 4 Credits" },
- {0x15, 0x01, 0x1f, 0x04, "1 Coin 5 Credits" },
- {0x15, 0x01, 0x1f, 0x05, "1 Coin 6 Credits" },
- {0x15, 0x01, 0x1f, 0x06, "1 Coin 7 Credits" },
- {0x15, 0x01, 0x1f, 0x07, "1 Coin 8 Credits" },
- {0x15, 0x01, 0x1f, 0x08, "1 Coin 9 Credits" },
- {0x15, 0x01, 0x1f, 0x09, "2 Coins 1 Credit" },
- {0x15, 0x01, 0x1f, 0x0a, "3 Coins 1 Credit" },
- {0x15, 0x01, 0x1f, 0x0b, "4 Coins 1 Credit" },
- {0x15, 0x01, 0x1f, 0x0c, "5 Coins 1 Credit" },
- {0x15, 0x01, 0x1f, 0x0d, "6 Coins 1 Credit" },
- {0x15, 0x01, 0x1f, 0x0e, "7 Coins 1 Credit" },
- {0x15, 0x01, 0x1f, 0x0f, "8 Coins 1 Credit" },
- {0x15, 0x01, 0x1f, 0x10, "9 Coins 1 Credit" },
- {0x15, 0x01, 0x1f, 0x11, "2 Coins Start 1 Coin Continue"},
- {0x15, 0x01, 0x1f, 0x12, "Free Play" },
-
- {0 , 0xfe, 0 , 3 , "Coin Slots" },
- {0x15, 0x01, 0x60, 0x40, "1, Common" },
- {0x15, 0x01, 0x60, 0x00, "2, Common" },
- {0x15, 0x01, 0x60, 0x20, "2, Individual" },
-
- // Dip B
- {0 , 0xfe, 0 , 4 , "Difficulty" },
- {0x16, 0x01, 0x03, 0x00, "Easy" },
- {0x16, 0x01, 0x03, 0x01, "Normal" },
- {0x16, 0x01, 0x03, 0x02, "Hard" },
- {0x16, 0x01, 0x03, 0x03, "Hardest" },
-
- {0 , 0xfe, 0 , 4 , "Time" },
- {0x16, 0x01, 0x0c, 0x00, "100" },
- {0x16, 0x01, 0x0c, 0x04, "90" },
- {0x16, 0x01, 0x0c, 0x08, "70" },
- {0x16, 0x01, 0x0c, 0x0c, "60" },
-
- // Dip C
- {0 , 0xfe, 0 , 2 , "Flip Screen" },
- {0x17, 0x01, 0x01, 0x00, "Off" },
- {0x17, 0x01, 0x01, 0x01, "On" },
-
- {0 , 0xfe, 0 , 2 , "Demo Sound" },
- {0x17, 0x01, 0x02, 0x02, "Off" },
- {0x17, 0x01, 0x02, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2 , "Allow Continue" },
- {0x17, 0x01, 0x04, 0x04, "Off" },
- {0x17, 0x01, 0x04, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2 , "Game Mode" },
- {0x17, 0x01, 0x80, 0x00, "Game" },
- {0x17, 0x01, 0x80, 0x80, "Test" },
-};
-
-STDDIPINFO(Rockmanj)
-
-static struct BurnDIPInfo MercsDIPList[]=
-{
- // Defaults
- {0x1b, 0xff, 0xff, 0x00, NULL },
- {0x1c, 0xff, 0xff, 0x03, NULL },
- {0x1d, 0xff, 0xff, 0x60, NULL },
-
- // Dip A
- CPS1_COINAGE_2(0x1b)
-
- {0 , 0xfe, 0 , 2 , "2C to Start, 1 to Cont" },
- {0x1b, 0x01, 0x40, 0x00, "Off" },
- {0x1b, 0x01, 0x40, 0x40, "On" },
-
- // Dip B
- CPS1_DIFFICULTY_1(0x1c)
-
- {0 , 0xfe, 0 , 2 , "Coin Slots" },
- {0x1c, 0x01, 0x08, 0x08, "1" },
- {0x1c, 0x01, 0x08, 0x00, "3" },
-
- {0 , 0xfe, 0 , 2 , "Play Mode" },
- {0x1c, 0x01, 0x10, 0x10, "2 Player" },
- {0x1c, 0x01, 0x10, 0x00, "3 Player" },
-
- // Dip C
- {0 , 0xfe, 0 , 2 , "Freeze" },
- {0x1d, 0x01, 0x08, 0x00, "Off" },
- {0x1d, 0x01, 0x08, 0x08, "On" },
-
- {0 , 0xfe, 0 , 2 , "Flip Screen" },
- {0x1d, 0x01, 0x10, 0x00, "Off" },
- {0x1d, 0x01, 0x10, 0x10, "On" },
-
- {0 , 0xfe, 0 , 2 , "Demo Sound" },
- {0x1d, 0x01, 0x20, 0x00, "Off" },
- {0x1d, 0x01, 0x20, 0x20, "On" },
-
- {0 , 0xfe, 0 , 2 , "Allow Continue" },
- {0x1d, 0x01, 0x40, 0x00, "Off" },
- {0x1d, 0x01, 0x40, 0x40, "On" },
-
- {0 , 0xfe, 0 , 2 , "Service Mode" },
- {0x1d, 0x01, 0x80, 0x00, "Off" },
- {0x1d, 0x01, 0x80, 0x80, "On" },
-};
-
-STDDIPINFO(Mercs)
-
-static struct BurnDIPInfo MswordDIPList[]=
-{
- // Defaults
- {0x15, 0xff, 0xff, 0x00, NULL },
- {0x16, 0xff, 0xff, 0x03, NULL },
- {0x17, 0xff, 0xff, 0x60, NULL },
-
- // Dip A
- CPS1_COINAGE_1(0x15)
-
- {0 , 0xfe, 0 , 2 , "2C to Start, 1 to Cont" },
- {0x15, 0x01, 0x40, 0x00, "Off" },
- {0x15, 0x01, 0x40, 0x40, "On" },
-
- // Dip B
- {0 , 0xfe, 0 , 8 , "Players vitality consumption"},
- {0x16, 0x01, 0x07, 0x00, "1 (Easiest)" },
- {0x16, 0x01, 0x07, 0x01, "2" },
- {0x16, 0x01, 0x07, 0x02, "3" },
- {0x16, 0x01, 0x07, 0x03, "4 (Normal)" },
- {0x16, 0x01, 0x07, 0x04, "5" },
- {0x16, 0x01, 0x07, 0x05, "6" },
- {0x16, 0x01, 0x07, 0x06, "7" },
- {0x16, 0x01, 0x07, 0x07, "8 (Hardest)" },
-
- {0 , 0xfe, 0 , 8 , "Level 2" },
- {0x16, 0x01, 0x38, 0x18, "1 (Easiest)" },
- {0x16, 0x01, 0x38, 0x10, "2" },
- {0x16, 0x01, 0x38, 0x08, "3" },
- {0x16, 0x01, 0x38, 0x00, "4 (Normal)" },
- {0x16, 0x01, 0x38, 0x20, "5" },
- {0x16, 0x01, 0x38, 0x28, "6" },
- {0x16, 0x01, 0x38, 0x30, "7" },
- {0x16, 0x01, 0x38, 0x38, "8 (Hardest)" },
-
- {0 , 0xfe, 0 , 2 , "Stage Select" },
- {0x16, 0x01, 0x40, 0x00, "Off" },
- {0x16, 0x01, 0x40, 0x40, "On" },
-
- // Dip C
- {0 , 0xfe, 0 , 4 , "Vitality" },
- {0x17, 0x01, 0x03, 0x03, "1" },
- {0x17, 0x01, 0x03, 0x00, "2" },
- {0x17, 0x01, 0x03, 0x01, "3 (2 when continue)" },
- {0x17, 0x01, 0x03, 0x02, "4 (3 when continue)" },
-
- {0 , 0xfe, 0 , 2 , "Free Play" },
- {0x17, 0x01, 0x04, 0x00, "Off" },
- {0x17, 0x01, 0x04, 0x04, "On" },
-
- {0 , 0xfe, 0 , 2 , "Freeze" },
- {0x17, 0x01, 0x08, 0x00, "Off" },
- {0x17, 0x01, 0x08, 0x08, "On" },
-
- {0 , 0xfe, 0 , 2 , "Flip" },
- {0x17, 0x01, 0x10, 0x00, "Off" },
- {0x17, 0x01, 0x10, 0x10, "On" },
-
- {0 , 0xfe, 0 , 2 , "Demo Sound" },
- {0x17, 0x01, 0x20, 0x00, "Off" },
- {0x17, 0x01, 0x20, 0x20, "On" },
-
- {0 , 0xfe, 0 , 2 , "Allow Continue" },
- {0x17, 0x01, 0x40, 0x00, "Off" },
- {0x17, 0x01, 0x40, 0x40, "On" },
-
- {0 , 0xfe, 0 , 2 , "Game Mode" },
- {0x17, 0x01, 0x80, 0x00, "Game" },
- {0x17, 0x01, 0x80, 0x80, "Test" },
-};
-
-STDDIPINFO(Msword)
-
-static struct BurnDIPInfo MtwinsDIPList[]=
-{
- // Defaults
- {0x15, 0xff, 0xff, 0x00, NULL },
- {0x16, 0xff, 0xff, 0x03, NULL },
- {0x17, 0xff, 0xff, 0x60, NULL },
-
- // Dip A
- CPS1_COINAGE_1(0x15)
-
- // Dip B
- CPS1_DIFFICULTY_1(0x16)
-
- {0 , 0xfe, 0 , 4 , "Lives" },
- {0x16, 0x01, 0x38, 0x28, "1" },
- {0x16, 0x01, 0x38, 0x20, "2" },
- {0x16, 0x01, 0x38, 0x30, "3" },
- {0x16, 0x01, 0x38, 0x38, "4" },
-
- // Dip C
- {0 , 0xfe, 0 , 2 , "Free Play" },
- {0x17, 0x01, 0x04, 0x00, "Off" },
- {0x17, 0x01, 0x04, 0x04, "On" },
-
- {0 , 0xfe, 0 , 2 , "Freeze" },
- {0x17, 0x01, 0x08, 0x00, "Off" },
- {0x17, 0x01, 0x08, 0x08, "On" },
-
- {0 , 0xfe, 0 , 2 , "Flip" },
- {0x17, 0x01, 0x10, 0x00, "Off" },
- {0x17, 0x01, 0x10, 0x10, "On" },
-
- {0 , 0xfe, 0 , 2 , "Demo Sounds" },
- {0x17, 0x01, 0x20, 0x00, "Off" },
- {0x17, 0x01, 0x20, 0x20, "On" },
-
- {0 , 0xfe, 0 , 2 , "Allow Continue" },
- {0x17, 0x01, 0x40, 0x00, "Off" },
- {0x17, 0x01, 0x40, 0x40, "On" },
-
- {0 , 0xfe, 0 , 2 , "Game Mode" },
- {0x17, 0x01, 0x80, 0x00, "Game" },
- {0x17, 0x01, 0x80, 0x80, "Test" },
-};
-
-STDDIPINFO(Mtwins)
-
-static struct BurnDIPInfo NemoDIPList[]=
-{
- // Defaults
- {0x15, 0xff, 0xff, 0x00, NULL },
- {0x16, 0xff, 0xff, 0x03, NULL },
- {0x17, 0xff, 0xff, 0x60, NULL },
-
- // Dip A
- CPS1_COINAGE_1(0x15)
-
- {0 , 0xfe, 0 , 2 , "2C to Start, 1 to Cont" },
- {0x15, 0x01, 0x40, 0x00, "Off" },
- {0x15, 0x01, 0x40, 0x40, "On" },
-
- // Dip B
- CPS1_DIFFICULTY_1(0x16)
-
- {0 , 0xfe, 0 , 3 , "Life Bar" },
- {0x16, 0x01, 0x18, 0x18, "Minimum" },
- {0x16, 0x01, 0x18, 0x00, "Medium" },
- {0x16, 0x01, 0x18, 0x10, "Maximum" },
-
- // Dip C
- {0 , 0xfe, 0 , 4 , "Lives" },
- {0x17, 0x01, 0x03, 0x01, "1" },
- {0x17, 0x01, 0x03, 0x00, "2" },
- {0x17, 0x01, 0x03, 0x02, "3" },
- {0x17, 0x01, 0x03, 0x03, "4" },
-
- {0 , 0xfe, 0 , 2 , "Free Play" },
- {0x17, 0x01, 0x04, 0x00, "Off" },
- {0x17, 0x01, 0x04, 0x04, "On" },
-
- {0 , 0xfe, 0 , 2 , "Freeze" },
- {0x17, 0x01, 0x08, 0x00, "Off" },
- {0x17, 0x01, 0x08, 0x08, "On" },
-
- {0 , 0xfe, 0 , 2 , "Flip" },
- {0x17, 0x01, 0x10, 0x00, "Off" },
- {0x17, 0x01, 0x10, 0x10, "On" },
-
- {0 , 0xfe, 0 , 2 , "Demo Sound" },
- {0x17, 0x01, 0x20, 0x00, "Off" },
- {0x17, 0x01, 0x20, 0x20, "On" },
-
- {0 , 0xfe, 0 , 2 , "Allow Continue" },
- {0x17, 0x01, 0x40, 0x00, "Off" },
- {0x17, 0x01, 0x40, 0x40, "On" },
-
- {0 , 0xfe, 0 , 2 , "Game Mode" },
- {0x17, 0x01, 0x80, 0x00, "Game" },
- {0x17, 0x01, 0x80, 0x80, "Test" },
-};
-
-STDDIPINFO(Nemo)
-
-static struct BurnDIPInfo Pang3DIPList[]=
-{
- // Defaults
- {0x13, 0xff, 0xff, 0x00, NULL },
-
- // Dip C
- {0 , 0xfe, 0 , 2 , "Freeze" },
- {0x13, 0x01, 0x08, 0x00, "Off" },
- {0x13, 0x01, 0x08, 0x08, "On" },
-};
-
-STDDIPINFO(Pang3)
-
-static struct BurnDIPInfo PnickjDIPList[]=
-{
- // Defaults
- {0x13, 0xff, 0xff, 0x00, NULL },
- {0x14, 0xff, 0xff, 0x03, NULL },
- {0x15, 0xff, 0xff, 0x20, NULL },
-
- // Dip A
- CPS1_COINAGE_2(0x13)
-
- {0 , 0xfe, 0 , 2 , "Coin Slots" },
- {0x13, 0x01, 0x08, 0x00, "1" },
- {0x13, 0x01, 0x08, 0x08, "2" },
-
- // Dip B
- CPS1_DIFFICULTY_1(0x14)
-
- {0 , 0xfe, 0 , 4 , "Vs. Play Mode" },
- {0x14, 0x01, 0xc0, 0x00, "1 Game Match" },
- {0x14, 0x01, 0xc0, 0x40, "3 Games Match" },
- {0x14, 0x01, 0xc0, 0x80, "5 Games Match" },
- {0x14, 0x01, 0xc0, 0xc0, "7 Games Match" },
-
- // Dip C
- {0 , 0xfe, 0 , 2 , "Freeze" },
- {0x15, 0x01, 0x08, 0x00, "Off" },
- {0x15, 0x01, 0x08, 0x08, "On" },
-
- {0 , 0xfe, 0 , 2 , "Flip" },
- {0x15, 0x01, 0x10, 0x00, "Off" },
- {0x15, 0x01, 0x10, 0x10, "On" },
-
- {0 , 0xfe, 0 , 2 , "Demo Sound" },
- {0x15, 0x01, 0x20, 0x00, "Off" },
- {0x15, 0x01, 0x20, 0x20, "On" },
-
- {0 , 0xfe, 0 , 2 , "Game Mode" },
- {0x15, 0x01, 0x80, 0x00, "Game" },
- {0x15, 0x01, 0x80, 0x80, "Test" },
-};
-
-STDDIPINFO(Pnickj)
-
-static struct BurnDIPInfo PokonyanDIPList[]=
-{
- // Defaults
- {0x14, 0xff, 0xff, 0x41, NULL },
- {0x15, 0xff, 0xff, 0x04, NULL },
- {0x16, 0xff, 0xff, 0x00, NULL },
-
- {0 , 0xfe, 0 , 4 , "Coinage" },
- {0x14, 0x01, 0x03, 0x03, "4 Coins 1 Credit" },
- {0x14, 0x01, 0x03, 0x02, "3 Coins 1 Credit" },
- {0x14, 0x01, 0x03, 0x00, "2 Coins 1 Credit" },
- {0x14, 0x01, 0x03, 0x01, "1 Coin 1 Credit" },
-
- {0 , 0xfe, 0 , 2 , "Controls" },
- {0x14, 0x01, 0x40, 0x40, "Digital" },
- {0x14, 0x01, 0x40, 0x00, "Wheel" }, // I assume this enables the wheel as the directions don't work (and the left/right input check just flashes) - not worked out to hook the wheel up yet though
-
- // Dip B
- {0 , 0xfe, 0 , 4 , "Demo Sounds" },
- {0x15, 0x01, 0x03, 0x03, "Off" },
- {0x15, 0x01, 0x03, 0x02, "Every 4" },
- {0x15, 0x01, 0x03, 0x01, "Every 2" },
- {0x15, 0x01, 0x03, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2 , "Prize Mode" },
- {0x15, 0x01, 0x04, 0x04, "Not Used" },
- {0x15, 0x01, 0x04, 0x00, "Used" },
-
- {0 , 0xfe, 0 , 2 , "Credit Mode" },
- {0x15, 0x01, 0x08, 0x00, "Off" },
- {0x15, 0x01, 0x08, 0x08, "On" },
-
- {0 , 0xfe, 0 , 2 , "Max Stage" },
- {0x15, 0x01, 0x10, 0x10, "2" },
- {0x15, 0x01, 0x10, 0x00, "3" },
-
- {0 , 0xfe, 0 , 2 , "Card Check" },
- {0x15, 0x01, 0x20, 0x00, "Off" },
- {0x15, 0x01, 0x20, 0x20, "On" },
-
- {0 , 0xfe, 0 , 2 , "Unknown" },
- {0x15, 0x01, 0x80, 0x80, "1.0 sec" },
- {0x15, 0x01, 0x80, 0x00, "1.2 sec" },
-
- // Dip C
- {0 , 0xfe, 0 , 2 , "Body Check" },
- {0x16, 0x01, 0x02, 0x00, "Off" },
- {0x16, 0x01, 0x02, 0x02, "On" },
-
- {0 , 0xfe, 0 , 2 , "Screen Stop" },
- {0x16, 0x01, 0x08, 0x00, "Off" },
- {0x16, 0x01, 0x08, 0x08, "On" },
-
- {0 , 0xfe, 0 , 2 , "Flip" },
- {0x16, 0x01, 0x10, 0x00, "Off" },
- {0x16, 0x01, 0x10, 0x10, "On" },
-
- {0 , 0xfe, 0 , 2 , "Game Mode" },
- {0x16, 0x01, 0x80, 0x00, "Game" },
- {0x16, 0x01, 0x80, 0x80, "Test" },
-};
-
-STDDIPINFO(Pokonyan)
-
-static struct BurnDIPInfo PunisherDIPList[]=
-{
- // Defaults
- {0x13, 0xff, 0xff, 0x00, NULL },
-
- // Dip C
- {0 , 0xfe, 0 , 2 , "Freeze" },
- {0x13, 0x01, 0x08, 0x00, "Off" },
- {0x13, 0x01, 0x08, 0x08, "On" },
-};
-
-STDDIPINFO(Punisher)
-
-static struct BurnDIPInfo PunisherbzDIPList[]=
-{
- // Defaults
- {0x15, 0xff, 0xff, 0x10, NULL },
- {0x16, 0xff, 0xff, 0x6B, NULL },
-
- // Dip A
- CPS1_COINAGE_2(0x15)
-
- {0 , 0xfe, 0 , 2 , "2C to Start, 1 to Cont" },
- {0x15, 0x01, 0x08, 0x00, "Off" },
- {0x15, 0x01, 0x08, 0x08, "On" },
-
- {0 , 0xfe, 0 , 4 , "Lives" },
- {0x15, 0x01, 0x30, 0x00, "1" },
- {0x15, 0x01, 0x30, 0x10, "2" },
- {0x15, 0x01, 0x30, 0x20, "3" },
- {0x15, 0x01, 0x30, 0x30, "4" },
-
- {0 , 0xfe, 0 , 2 , "Sound" },
- {0x15, 0x01, 0x40, 0x00, "Q Sound" },
- {0x15, 0x01, 0x40, 0x40, "Monaural" },
-
- {0 , 0xfe, 0 , 2 , "Flip Screen" },
- {0x15, 0x01, 0x80, 0x00, "Off" },
- {0x15, 0x01, 0x80, 0x80, "On" },
-
- // Dip B
- {0 , 0xfe, 0 , 8 , "Difficulty" },
- {0x16, 0x01, 0x07, 0x00, "0 (Easiest)" },
- {0x16, 0x01, 0x07, 0x01, "1" },
- {0x16, 0x01, 0x07, 0x02, "2" },
- {0x16, 0x01, 0x07, 0x03, "3 (Normal)" },
- {0x16, 0x01, 0x07, 0x04, "4" },
- {0x16, 0x01, 0x07, 0x05, "5" },
- {0x16, 0x01, 0x07, 0x06, "6" },
- {0x16, 0x01, 0x07, 0x07, "7 (Hardest)" },
-
- {0 , 0xfe, 0 , 4 , "Extend" },
- {0x16, 0x01, 0x18, 0x00, "800000" },
- {0x16, 0x01, 0x18, 0x08, "1800000" },
- {0x16, 0x01, 0x18, 0x10, "2800000" },
- {0x16, 0x01, 0x18, 0x18, "No Extend" },
-
- {0 , 0xfe, 0 , 2 , "Allow Continue" },
- {0x16, 0x01, 0x20, 0x00, "Off" },
- {0x16, 0x01, 0x20, 0x20, "On" },
-
- {0 , 0xfe, 0 , 2 , "Demo Sound" },
- {0x16, 0x01, 0x40, 0x00, "Off" },
- {0x16, 0x01, 0x40, 0x40, "On" },
-};
-
-STDDIPINFO(Punisherbz)
-
-static struct BurnDIPInfo QadDIPList[]=
-{
- // Defaults
- {0x0f, 0xff, 0xff, 0x00, NULL },
- {0x10, 0xff, 0xff, 0x0b, NULL },
- {0x11, 0xff, 0xff, 0x00, NULL },
-
- // Dip A
- CPS1_COINAGE_2(0x0f)
-
- {0 , 0xfe, 0 , 2 , "2C to Start, 1 to Cont" },
- {0x0f, 0x01, 0x40, 0x00, "Off" },
- {0x0f, 0x01, 0x40, 0x40, "On" },
-
- // Dip B
- {0 , 0xfe, 0 , 5 , "Difficulty" },
- {0x10, 0x01, 0x07, 0x01, "Easiest" },
- {0x10, 0x01, 0x07, 0x02, "Easy" },
- {0x10, 0x01, 0x07, 0x03, "Normal" },
- {0x10, 0x01, 0x07, 0x04, "Hard" },
- {0x10, 0x01, 0x07, 0x05, "Hardest" },
-
- {0 , 0xfe, 0 , 4 , "Wisdom of Enemy" },
- {0x10, 0x01, 0x18, 0x00, "Easy" },
- {0x10, 0x01, 0x18, 0x08, "Normal" },
- {0x10, 0x01, 0x18, 0x10, "Hard" },
- {0x10, 0x01, 0x18, 0x18, "Hardest" },
-
- {0 , 0xfe, 0 , 5 , "Lives" },
- {0x10, 0x01, 0xe0, 0x80, "1" },
- {0x10, 0x01, 0xe0, 0x60, "2" },
- {0x10, 0x01, 0xe0, 0x40, "3" },
- {0x10, 0x01, 0xe0, 0x20, "4" },
- {0x10, 0x01, 0xe0, 0x00, "5" },
-
- // Dip C
- {0 , 0xfe, 0 , 2 , "Free Play" },
- {0x11, 0x01, 0x04, 0x00, "Off" },
- {0x11, 0x01, 0x04, 0x04, "On" },
-
- {0 , 0xfe, 0 , 2 , "Freeze" },
- {0x11, 0x01, 0x08, 0x00, "Off" },
- {0x11, 0x01, 0x08, 0x08, "On" },
-
- {0 , 0xfe, 0 , 2 , "Flip" },
- {0x11, 0x01, 0x10, 0x00, "Off" },
- {0x11, 0x01, 0x10, 0x10, "On" },
-
- {0 , 0xfe, 0 , 2 , "Demo Sound" },
- {0x11, 0x01, 0x20, 0x20, "Off" },
- {0x11, 0x01, 0x20, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2 , "Allow Continue" },
- {0x11, 0x01, 0x40, 0x40, "Off" },
- {0x11, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2 , "Game Mode" },
- {0x11, 0x01, 0x80, 0x00, "Game" },
- {0x11, 0x01, 0x80, 0x80, "Test" },
-};
-
-STDDIPINFO(Qad)
-
-static struct BurnDIPInfo QadjrDIPList[]=
-{
- // Defaults
- {0x0f, 0xff, 0xff, 0x00, NULL },
- {0x10, 0xff, 0xff, 0x00, NULL },
- {0x11, 0xff, 0xff, 0x20, NULL },
-
- // Dip A
- CPS1_COINAGE_2(0x0f)
-
- {0 , 0xfe, 0 , 2 , "2C to Start, 1 to Cont" },
- {0x0f, 0x01, 0x40, 0x00, "Off" },
- {0x0f, 0x01, 0x40, 0x40, "On" },
-
- // Dip B
- {0 , 0xfe, 0 , 5 , "Difficulty" },
- {0x10, 0x01, 0x07, 0x00, "0" },
- {0x10, 0x01, 0x07, 0x01, "1" },
- {0x10, 0x01, 0x07, 0x02, "2" },
- {0x10, 0x01, 0x07, 0x03, "3" },
- {0x10, 0x01, 0x07, 0x04, "4" },
-
- {0 , 0xfe, 0 , 3 , "Lives" },
- {0x10, 0x01, 0xe0, 0x40, "1" },
- {0x10, 0x01, 0xe0, 0x20, "2" },
- {0x10, 0x01, 0xe0, 0x00, "3" },
-
- // Dip C
- {0 , 0xfe, 0 , 2 , "Free Play" },
- {0x11, 0x01, 0x04, 0x00, "Off" },
- {0x11, 0x01, 0x04, 0x04, "On" },
-
- {0 , 0xfe, 0 , 2 , "Freeze" },
- {0x11, 0x01, 0x08, 0x00, "Off" },
- {0x11, 0x01, 0x08, 0x08, "On" },
-
- {0 , 0xfe, 0 , 2 , "Flip" },
- {0x11, 0x01, 0x10, 0x00, "Off" },
- {0x11, 0x01, 0x10, 0x10, "On" },
-
- {0 , 0xfe, 0 , 2 , "Demo Sound" },
- {0x11, 0x01, 0x20, 0x00, "Off" },
- {0x11, 0x01, 0x20, 0x20, "On" },
-
- {0 , 0xfe, 0 , 2 , "Allow Continue" },
- {0x11, 0x01, 0x40, 0x40, "Off" },
- {0x11, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2 , "Game Mode" },
- {0x11, 0x01, 0x80, 0x00, "Game" },
- {0x11, 0x01, 0x80, 0x80, "Test" },
-};
-
-STDDIPINFO(Qadjr)
-
-static struct BurnDIPInfo Qtono2jDIPList[]=
-{
- // Defaults
- {0x0f, 0xff, 0xff, 0x00, NULL },
- {0x10, 0xff, 0xff, 0x03, NULL },
- {0x11, 0xff, 0xff, 0x20, NULL },
-
- // Dip A
- CPS1_COINAGE_2(0x0f)
-
- {0 , 0xfe, 0 , 2 , "2C to Start, 1 to Cont" },
- {0x0f, 0x01, 0x40, 0x00, "Off" },
- {0x0f, 0x01, 0x40, 0x40, "On" },
-
- // Dip B
- CPS1_DIFFICULTY_1(0x10)
-
- {0 , 0xfe, 0 , 5 , "Lives" },
- {0x10, 0x01, 0xe0, 0x80, "1" },
- {0x10, 0x01, 0xe0, 0x60, "2" },
- {0x10, 0x01, 0xe0, 0x00, "3" },
- {0x10, 0x01, 0xe0, 0x40, "4" },
- {0x10, 0x01, 0xe0, 0x20, "5" },
-
- // Dip C
- {0 , 0xfe, 0 , 2 , "Infinite Lives" },
- {0x11, 0x01, 0x02, 0x00, "Off" },
- {0x11, 0x01, 0x02, 0x02, "On" },
-
- {0 , 0xfe, 0 , 2 , "Free Play" },
- {0x11, 0x01, 0x04, 0x00, "Off" },
- {0x11, 0x01, 0x04, 0x04, "On" },
-
- {0 , 0xfe, 0 , 2 , "Freeze" },
- {0x11, 0x01, 0x08, 0x00, "Off" },
- {0x11, 0x01, 0x08, 0x08, "On" },
-
- {0 , 0xfe, 0 , 2 , "Flip" },
- {0x11, 0x01, 0x10, 0x00, "Off" },
- {0x11, 0x01, 0x10, 0x10, "On" },
-
- {0 , 0xfe, 0 , 2 , "Demo Sound" },
- {0x11, 0x01, 0x20, 0x00, "Off" },
- {0x11, 0x01, 0x20, 0x20, "On" },
-
- {0 , 0xfe, 0 , 2 , "Allow Continue" },
- {0x11, 0x01, 0x40, 0x40, "Off" },
- {0x11, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2 , "Game Mode" },
- {0x11, 0x01, 0x80, 0x00, "Game" },
- {0x11, 0x01, 0x80, 0x80, "Test" },
-};
-
-STDDIPINFO(Qtono2j)
-
-static struct BurnDIPInfo Sf2DIPList[]=
-{
- // Defaults
- {0x1b, 0xff, 0xff, 0x00, NULL },
- {0x1c, 0xff, 0xff, 0x03, NULL },
- {0x1d, 0xff, 0xff, 0x60, NULL },
-
- // Dip A
- CPS1_COINAGE_1(0x1b)
-
- {0 , 0xfe, 0 , 2 , "2C to Start, 1 to Cont" },
- {0x1b, 0x01, 0x40, 0x00, "Off" },
- {0x1b, 0x01, 0x40, 0x40, "On" },
-
- // Dip B
- CPS1_DIFFICULTY_1(0x1c)
-
- // Dip C
- {0 , 0xfe, 0 , 2 , "Free Play" },
- {0x1d, 0x01, 0x04, 0x00, "Off" },
- {0x1d, 0x01, 0x04, 0x04, "On" },
-
- {0 , 0xfe, 0 , 2 , "Freeze" },
- {0x1d, 0x01, 0x08, 0x00, "Off" },
- {0x1d, 0x01, 0x08, 0x08, "On" },
-
- {0 , 0xfe, 0 , 2 , "Flip Screen" },
- {0x1d, 0x01, 0x10, 0x00, "Off" },
- {0x1d, 0x01, 0x10, 0x10, "On" },
-
- {0 , 0xfe, 0 , 2 , "Demo Sound" },
- {0x1d, 0x01, 0x20, 0x00, "Off" },
- {0x1d, 0x01, 0x20, 0x20, "On" },
-
- {0 , 0xfe, 0 , 2 , "Allow Continue" },
- {0x1d, 0x01, 0x40, 0x00, "Off" },
- {0x1d, 0x01, 0x40, 0x40, "On" },
-
- {0 , 0xfe, 0 , 2 , "Game Mode" },
- {0x1d, 0x01, 0x80, 0x00, "Game" },
- {0x1d, 0x01, 0x80, 0x80, "Test" },
-};
-
-STDDIPINFO(Sf2)
-
-static struct BurnDIPInfo Sf2amfDIPList[]=
-{
- // Defaults
- {0x1b, 0xff, 0xff, 0x00, NULL },
- {0x1c, 0xff, 0xff, 0x03, NULL },
- {0x1d, 0xff, 0xff, 0x60, NULL },
-
- // Dip A
- CPS1_COINAGE_1(0x1b)
-
- {0 , 0xfe, 0 , 2 , "2C to Start, 1 to Cont" },
- {0x1b, 0x01, 0x40, 0x00, "Off" },
- {0x1b, 0x01, 0x40, 0x40, "On" },
-
- // Dip B
- CPS1_DIFFICULTY_1(0x1c)
-
- {0 , 0xfe, 0 , 2 , "Turbo Mode" },
- {0x1c, 0x01, 0x38, 0x00, "Off" },
- {0x1c, 0x01, 0x38, 0x38, "On" },
-
- // Dip C
- {0 , 0xfe, 0 , 2 , "Free Play" },
- {0x1d, 0x01, 0x04, 0x00, "Off" },
- {0x1d, 0x01, 0x04, 0x04, "On" },
-
- {0 , 0xfe, 0 , 2 , "Freeze" },
- {0x1d, 0x01, 0x08, 0x00, "Off" },
- {0x1d, 0x01, 0x08, 0x08, "On" },
-
- {0 , 0xfe, 0 , 2 , "Flip Screen" },
- {0x1d, 0x01, 0x10, 0x00, "Off" },
- {0x1d, 0x01, 0x10, 0x10, "On" },
-
- {0 , 0xfe, 0 , 2 , "Demo Sound" },
- {0x1d, 0x01, 0x20, 0x00, "Off" },
- {0x1d, 0x01, 0x20, 0x20, "On" },
-
- {0 , 0xfe, 0 , 2 , "Allow Continue" },
- {0x1d, 0x01, 0x40, 0x00, "Off" },
- {0x1d, 0x01, 0x40, 0x40, "On" },
-
- {0 , 0xfe, 0 , 2 , "Game Mode" },
- {0x1d, 0x01, 0x80, 0x00, "Game" },
- {0x1d, 0x01, 0x80, 0x80, "Test" },
-};
-
-STDDIPINFO(Sf2amf)
-
-static struct BurnDIPInfo Sf2jDIPList[]=
-{
- // Defaults
- {0x1b, 0xff, 0xff, 0x00, NULL },
- {0x1c, 0xff, 0xff, 0x03, NULL },
- {0x1d, 0xff, 0xff, 0x60, NULL },
-
- // Dip A
- CPS1_COINAGE_1(0x1b)
-
- {0 , 0xfe, 0 , 2 , "2C to Start, 1 to Cont" },
- {0x1b, 0x01, 0x40, 0x00, "Off" },
- {0x1b, 0x01, 0x40, 0x40, "On" },
-
- // Dip B
- CPS1_DIFFICULTY_1(0x1c)
-
- {0 , 0xfe, 0 , 2 , "2 Players Game" },
- {0x1c, 0x01, 0x08, 0x00, "1 Credit/No Continue" },
- {0x1c, 0x01, 0x08, 0x08, "2 Credits/Winner Continue"},
-
- // Dip C
- {0 , 0xfe, 0 , 2 , "Free Play" },
- {0x1d, 0x01, 0x04, 0x00, "Off" },
- {0x1d, 0x01, 0x04, 0x04, "On" },
-
- {0 , 0xfe, 0 , 2 , "Freeze" },
- {0x1d, 0x01, 0x08, 0x00, "Off" },
- {0x1d, 0x01, 0x08, 0x08, "On" },
-
- {0 , 0xfe, 0 , 2 , "Flip Screen" },
- {0x1d, 0x01, 0x10, 0x00, "Off" },
- {0x1d, 0x01, 0x10, 0x10, "On" },
-
- {0 , 0xfe, 0 , 2 , "Demo Sound" },
- {0x1d, 0x01, 0x20, 0x00, "Off" },
- {0x1d, 0x01, 0x20, 0x20, "On" },
-
- {0 , 0xfe, 0 , 2 , "Allow Continue" },
- {0x1d, 0x01, 0x40, 0x00, "Off" },
- {0x1d, 0x01, 0x40, 0x40, "On" },
-
- {0 , 0xfe, 0 , 2 , "Game Mode" },
- {0x1d, 0x01, 0x80, 0x00, "Game" },
- {0x1d, 0x01, 0x80, 0x80, "Test" },
-};
-
-STDDIPINFO(Sf2j)
-
-static struct BurnDIPInfo Sf2bhhDIPList[]=
-{
- // Defaults
- {0x1b, 0xff, 0xff, 0x00, NULL },
- {0x1c, 0xff, 0xff, 0x03, NULL },
- {0x1d, 0xff, 0xff, 0x60, NULL },
-
- // Dip A
- CPS1_COINAGE_1(0x1b)
-
- {0 , 0xfe, 0 , 2 , "2C to Start, 1 to Cont" },
- {0x1b, 0x01, 0x40, 0x00, "Off" },
- {0x1b, 0x01, 0x40, 0x40, "On" },
-
- // Dip B
- CPS1_DIFFICULTY_1(0x1c)
-
- // Dip C
- {0 , 0xfe, 0 , 2 , "Speed" },
- {0x1d, 0x01, 0x01, 0x00, "Normal" },
- {0x1d, 0x01, 0x01, 0x01, "Fast" },
-
- {0 , 0xfe, 0 , 2 , "Free Play" },
- {0x1d, 0x01, 0x04, 0x00, "Off" },
- {0x1d, 0x01, 0x04, 0x04, "On" },
-
- {0 , 0xfe, 0 , 2 , "Freeze" },
- {0x1d, 0x01, 0x08, 0x00, "Off" },
- {0x1d, 0x01, 0x08, 0x08, "On" },
-
- {0 , 0xfe, 0 , 2 , "Flip Screen" },
- {0x1d, 0x01, 0x10, 0x00, "Off" },
- {0x1d, 0x01, 0x10, 0x10, "On" },
-
- {0 , 0xfe, 0 , 2 , "Demo Sound" },
- {0x1d, 0x01, 0x20, 0x00, "Off" },
- {0x1d, 0x01, 0x20, 0x20, "On" },
-
- {0 , 0xfe, 0 , 2 , "Allow Continue" },
- {0x1d, 0x01, 0x40, 0x00, "Off" },
- {0x1d, 0x01, 0x40, 0x40, "On" },
-
- {0 , 0xfe, 0 , 2 , "Game Mode" },
- {0x1d, 0x01, 0x80, 0x00, "Game" },
- {0x1d, 0x01, 0x80, 0x80, "Test" },
-};
-
-STDDIPINFO(Sf2bhh)
-
-static struct BurnDIPInfo Sf2megaDIPList[]=
-{
- // Defaults
- {0x1b, 0xff, 0xff, 0x00, NULL },
- {0x1c, 0xff, 0xff, 0x13, NULL }, // 0x10 high to boot
- {0x1d, 0xff, 0xff, 0x60, NULL },
-
- // Dip A
- CPS1_COINAGE_1(0x1b)
-
- {0 , 0xfe, 0 , 2 , "2C to Start, 1 to Cont" },
- {0x1b, 0x01, 0x40, 0x00, "Off" },
- {0x1b, 0x01, 0x40, 0x40, "On" },
-
- // Dip B
- CPS1_DIFFICULTY_1(0x1c)
-
- // Dip C
- {0 , 0xfe, 0 , 2 , "Free Play" },
- {0x1d, 0x01, 0x04, 0x00, "Off" },
- {0x1d, 0x01, 0x04, 0x04, "On" },
-
- {0 , 0xfe, 0 , 2 , "Freeze" },
- {0x1d, 0x01, 0x08, 0x00, "Off" },
- {0x1d, 0x01, 0x08, 0x08, "On" },
-
- {0 , 0xfe, 0 , 2 , "Flip Screen" },
- {0x1d, 0x01, 0x10, 0x00, "Off" },
- {0x1d, 0x01, 0x10, 0x10, "On" },
-
- {0 , 0xfe, 0 , 2 , "Demo Sound" },
- {0x1d, 0x01, 0x20, 0x00, "Off" },
- {0x1d, 0x01, 0x20, 0x20, "On" },
-
- {0 , 0xfe, 0 , 2 , "Allow Continue" },
- {0x1d, 0x01, 0x40, 0x00, "Off" },
- {0x1d, 0x01, 0x40, 0x40, "On" },
-
- {0 , 0xfe, 0 , 2 , "Game Mode" },
- {0x1d, 0x01, 0x80, 0x00, "Game" },
- {0x1d, 0x01, 0x80, 0x80, "Test" },
-};
-
-STDDIPINFO(Sf2mega)
-
-static struct BurnDIPInfo SlammastDIPList[]=
-{
- // Defaults
- {0x23, 0xff, 0xff, 0x00, NULL },
-
- // Dip C
- {0 , 0xfe, 0 , 2 , "Freeze" },
- {0x23, 0x01, 0x08, 0x08, "Off" },
- {0x23, 0x01, 0x08, 0x00, "On" },
-};
-
-STDDIPINFO(Slammast)
-
-static struct BurnDIPInfo StriderDIPList[]=
-{
- // Defaults
- {0x14, 0xff, 0xff, 0x00, NULL },
- {0x15, 0xff, 0xff, 0x00, NULL },
- {0x16, 0xff, 0xff, 0x00, NULL },
-
- // Dip A
- CPS1_COINAGE_1(0x14)
-
- {0 , 0xfe, 0 , 3 , "Cabinet" },
- {0x14, 0x01, 0xc0, 0x00, "Upright 1P" },
- {0x14, 0x01, 0xc0, 0x40, "Upright 2P" },
- {0x14, 0x01, 0xc0, 0xc0, "Cocktail" },
-
- // Dip B
- CPS1_DIFFICULTY_2(0x15)
-
- {0 , 0xfe, 0 , 4 , "Bonus Life" },
- {0x15, 0x01, 0x30, 0x00, "20k, 40k and every 60k" },
- {0x15, 0x01, 0x30, 0x10, "30k, 50k and every 70k" },
- {0x15, 0x01, 0x30, 0x20, "20k & 60k only" },
- {0x15, 0x01, 0x30, 0x30, "30k & 60k only" },
-
- // Dip C
- {0 , 0xfe, 0 , 4 , "Lives" },
- {0x16, 0x01, 0x03, 0x03, "2" },
- {0x16, 0x01, 0x03, 0x00, "3" },
- {0x16, 0x01, 0x03, 0x01, "4" },
- {0x16, 0x01, 0x03, 0x02, "5" },
-
- {0 , 0xfe, 0 , 2 , "Freeze" },
- {0x16, 0x01, 0x04, 0x00, "Off" },
- {0x16, 0x01, 0x04, 0x04, "On" },
-
- {0 , 0xfe, 0 , 2 , "Free Play" },
- {0x16, 0x01, 0x08, 0x00, "Off" },
- {0x16, 0x01, 0x08, 0x08, "On" },
-
- {0 , 0xfe, 0 , 2 , "Flip" },
- {0x16, 0x01, 0x10, 0x00, "Off" },
- {0x16, 0x01, 0x10, 0x10, "On" },
-
- {0 , 0xfe, 0 , 2 , "Sound" },
- {0x16, 0x01, 0x20, 0x20, "Off" },
- {0x16, 0x01, 0x20, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2 , "Allow Continue" },
- {0x16, 0x01, 0x40, 0x40, "Off" },
- {0x16, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2 , "Game Mode" },
- {0x16, 0x01, 0x80, 0x00, "Game" },
- {0x16, 0x01, 0x80, 0x80, "Test" },
-};
-
-STDDIPINFO(Strider)
-
-static struct BurnDIPInfo StrideruaDIPList[]=
-{
- // Defaults
- {0x14, 0xff, 0xff, 0x00, NULL },
- {0x15, 0xff, 0xff, 0x00, NULL },
- {0x16, 0xff, 0xff, 0x00, NULL },
-
- // Dip A
- CPS1_COINAGE_1(0x14)
-
- {0 , 0xfe, 0 , 3 , "Cabinet" },
- {0x14, 0x01, 0xc0, 0x00, "Upright 1P" },
- {0x14, 0x01, 0xc0, 0x40, "Upright 2P" },
- {0x14, 0x01, 0xc0, 0xc0, "Cocktail" },
-
- // Dip B
- CPS1_DIFFICULTY_2(0x15)
-
- {0 , 0xfe, 0 , 2 , "2C to Start, 1 to Cont" },
- {0x15, 0x01, 0x08, 0x00, "Off" },
- {0x15, 0x01, 0x08, 0x08, "On" },
-
- {0 , 0xfe, 0 , 4 , "Bonus Life" },
- {0x15, 0x01, 0x30, 0x00, "20k, 40k and every 60k" },
- {0x15, 0x01, 0x30, 0x10, "30k, 50k and every 70k" },
- {0x15, 0x01, 0x30, 0x20, "20k & 60k only" },
- {0x15, 0x01, 0x30, 0x30, "30k & 60k only" },
-
- // Dip C
- {0 , 0xfe, 0 , 4 , "Lives" },
- {0x16, 0x01, 0x03, 0x03, "2" },
- {0x16, 0x01, 0x03, 0x00, "3" },
- {0x16, 0x01, 0x03, 0x01, "4" },
- {0x16, 0x01, 0x03, 0x02, "5" },
-
- {0 , 0xfe, 0 , 2 , "Freeze" },
- {0x16, 0x01, 0x04, 0x00, "Off" },
- {0x16, 0x01, 0x04, 0x04, "On" },
-
- {0 , 0xfe, 0 , 2 , "Free Play" },
- {0x16, 0x01, 0x08, 0x00, "Off" },
- {0x16, 0x01, 0x08, 0x08, "On" },
-
- {0 , 0xfe, 0 , 2 , "Flip" },
- {0x16, 0x01, 0x10, 0x00, "Off" },
- {0x16, 0x01, 0x10, 0x10, "On" },
-
- {0 , 0xfe, 0 , 2 , "Sound" },
- {0x16, 0x01, 0x20, 0x20, "Off" },
- {0x16, 0x01, 0x20, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2 , "Allow Continue" },
- {0x16, 0x01, 0x40, 0x40, "Off" },
- {0x16, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2 , "Game Mode" },
- {0x16, 0x01, 0x80, 0x00, "Game" },
- {0x16, 0x01, 0x80, 0x80, "Test" },
-};
-
-STDDIPINFO(Striderua)
-
-static struct BurnDIPInfo UnsquadDIPList[]=
-{
- // Defaults
- {0x15, 0xff, 0xff, 0x00, NULL },
- {0x16, 0xff, 0xff, 0x03, NULL },
- {0x17, 0xff, 0xff, 0x60, NULL },
-
- // Dip A
- CPS1_COINAGE_3(0x15)
-
- // Dip B
- CPS1_DIFFICULTY_1(0x16)
-
- {0 , 0xfe, 0 , 4 , "Damage" },
- {0x16, 0x01, 0x18, 0x08, "Small" },
- {0x16, 0x01, 0x18, 0x00, "Normal" },
- {0x16, 0x01, 0x18, 0x10, "Big" },
- {0x16, 0x01, 0x18, 0x18, "Biggest" },
-
- // Dip C
- {0 , 0xfe, 0 , 2 , "Free Play" },
- {0x17, 0x01, 0x04, 0x00, "Off" },
- {0x17, 0x01, 0x04, 0x04, "On" },
-
- {0 , 0xfe, 0 , 2 , "Freeze" },
- {0x17, 0x01, 0x08, 0x00, "Off" },
- {0x17, 0x01, 0x08, 0x08, "On" },
-
- {0 , 0xfe, 0 , 2 , "Flip" },
- {0x17, 0x01, 0x10, 0x00, "Off" },
- {0x17, 0x01, 0x10, 0x10, "On" },
-
- {0 , 0xfe, 0 , 2 , "Demo Sound" },
- {0x17, 0x01, 0x20, 0x00, "Off" },
- {0x17, 0x01, 0x20, 0x20, "On" },
-
- {0 , 0xfe, 0 , 2 , "Allow Continue" },
- {0x17, 0x01, 0x40, 0x00, "Off" },
- {0x17, 0x01, 0x40, 0x40, "On" },
-
- {0 , 0xfe, 0 , 2 , "Game Mode" },
- {0x17, 0x01, 0x80, 0x00, "Game" },
- {0x17, 0x01, 0x80, 0x80, "Test" },
-};
-
-STDDIPINFO(Unsquad)
-
-static struct BurnDIPInfo VarthDIPList[]=
-{
- // Defaults
- {0x15, 0xff, 0xff, 0x00, NULL },
- {0x16, 0xff, 0xff, 0x0b, NULL },
- {0x17, 0xff, 0xff, 0x60, NULL },
-
- // Dip A
- CPS1_COINAGE_1(0x15)
-
- {0 , 0xfe, 0 , 2 , "2C to Start, 1 to Cont" },
- {0x15, 0x01, 0x40, 0x00, "Off" },
- {0x15, 0x01, 0x40, 0x40, "On" },
-
- // Dip B
- CPS1_DIFFICULTY_1(0x16)
-
- {0 , 0xfe, 0 , 4 , "Bonus Life" },
- {0x16, 0x01, 0x18, 0x00, "600k and every 1400k" },
- {0x16, 0x01, 0x18, 0x08, "600k, 2000k and every 4500k"},
- {0x16, 0x01, 0x18, 0x10, "1200k, 3500k" },
- {0x16, 0x01, 0x18, 0x18, "2000k only" },
-
- // Dip C
- {0 , 0xfe, 0 , 4 , "Lives" },
- {0x17, 0x01, 0x03, 0x01, "1" },
- {0x17, 0x01, 0x03, 0x02, "2" },
- {0x17, 0x01, 0x03, 0x00, "3" },
- {0x17, 0x01, 0x03, 0x03, "4" },
-
- {0 , 0xfe, 0 , 2 , "Free Play" },
- {0x17, 0x01, 0x04, 0x00, "Off" },
- {0x17, 0x01, 0x04, 0x04, "On" },
-
- {0 , 0xfe, 0 , 2 , "Freeze" },
- {0x17, 0x01, 0x08, 0x00, "Off" },
- {0x17, 0x01, 0x08, 0x08, "On" },
-
- {0 , 0xfe, 0 , 2 , "Flip Screen" },
- {0x17, 0x01, 0x10, 0x00, "Off" },
- {0x17, 0x01, 0x10, 0x10, "On" },
-
- {0 , 0xfe, 0 , 2 , "Demo Sound" },
- {0x17, 0x01, 0x20, 0x00, "Off" },
- {0x17, 0x01, 0x20, 0x20, "On" },
-
- {0 , 0xfe, 0 , 2 , "Allow Continue" },
- {0x17, 0x01, 0x40, 0x00, "Off" },
- {0x17, 0x01, 0x40, 0x40, "On" },
-
- {0 , 0xfe, 0 , 2 , "Game Mode" },
- {0x17, 0x01, 0x80, 0x00, "Game" },
- {0x17, 0x01, 0x80, 0x80, "Test" },
-};
-
-STDDIPINFO(Varth)
-
-static struct BurnDIPInfo WillowDIPList[]=
-{
- // Defaults
- {0x15, 0xff, 0xff, 0x00, NULL },
- {0x16, 0xff, 0xff, 0x00, NULL },
- {0x17, 0xff, 0xff, 0x00, NULL },
-
- // Dip A
- CPS1_COINAGE_3(0x15)
-
- {0 , 0xfe, 0 , 3 , "Cabinet" },
- {0x15, 0x01, 0xc0, 0x00, "Upright 1P" },
- {0x15, 0x01, 0xc0, 0x40, "Upright 2P" },
- {0x15, 0x01, 0xc0, 0xc0, "Cocktail" },
-
- // Dip B
- CPS1_DIFFICULTY_2(0x16)
-
- {0 , 0xfe, 0 , 4 , "Nando Speed" },
- {0x16, 0x01, 0x18, 0x08, "Slow" },
- {0x16, 0x01, 0x18, 0x00, "Normal" },
- {0x16, 0x01, 0x18, 0x10, "Fast" },
- {0x16, 0x01, 0x18, 0x18, "Very Fast" },
-
- {0 , 0xfe, 0 , 2 , "Stage Magic Continue" },
- {0x16, 0x01, 0x80, 0x00, "Off" },
- {0x16, 0x01, 0x80, 0x80, "On" },
-
- // Dip C
- {0 , 0xfe, 0 , 4 , "Lives" },
- {0x17, 0x01, 0x03, 0x01, "1" },
- {0x17, 0x01, 0x03, 0x00, "2" },
- {0x17, 0x01, 0x03, 0x02, "3" },
- {0x17, 0x01, 0x03, 0x03, "4" },
-
- {0 , 0xfe, 0 , 4 , "Vitality" },
- {0x17, 0x01, 0x0c, 0x0c, "2" },
- {0x17, 0x01, 0x0c, 0x00, "3" },
- {0x17, 0x01, 0x0c, 0x04, "4" },
- {0x17, 0x01, 0x0c, 0x08, "5" },
-
- {0 , 0xfe, 0 , 2 , "Screen" },
- {0x17, 0x01, 0x10, 0x00, "Off" },
- {0x17, 0x01, 0x10, 0x10, "On" },
-
- {0 , 0xfe, 0 , 2 , "Demo Sounds" },
- {0x17, 0x01, 0x20, 0x20, "Off" },
- {0x17, 0x01, 0x20, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2 , "Allow Continue" },
- {0x17, 0x01, 0x40, 0x40, "Off" },
- {0x17, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2 , "Game Mode" },
- {0x17, 0x01, 0x80, 0x00, "Game" },
- {0x17, 0x01, 0x80, 0x80, "Test" },
-};
-
-STDDIPINFO(Willow)
-
-static struct BurnDIPInfo WofDIPList[]=
-{
- // Defaults
- {0x1b, 0xff, 0xff, 0x00, NULL },
-
- // Dip C
- {0 , 0xfe, 0 , 2 , "Freeze" },
- {0x1b, 0x01, 0x08, 0x08, "Off" },
- {0x1b, 0x01, 0x08, 0x00, "On" },
-};
-
-STDDIPINFO(Wof)
-
-static struct BurnDIPInfo WofhfhDIPList[]=
-{
- // Defaults
- {0x1b, 0xff, 0xff, 0x00, NULL },
- {0x1c, 0xff, 0xff, 0x13, NULL },
- {0x1d, 0xff, 0xff, 0x00, NULL },
-
- // Dip A
- {0 , 0xfe, 0 , 4 , "Coin A" },
- {0x1b, 0x01, 0x03, 0x00, "1 Coin 1 Credit" },
- {0x1b, 0x01, 0x03, 0x01, "1 Coin 2 Credits" },
- {0x1b, 0x01, 0x03, 0x02, "1 Coin 3 Credits" },
- {0x1b, 0x01, 0x03, 0x03, "1 Coin 4 Credits" },
-
- // Dip B
- {0 , 0xfe, 0 , 8 , "Difficulty" },
- {0x1c, 0x01, 0x07, 0x00, "Extra Easy" },
- {0x1c, 0x01, 0x07, 0x01, "Very Easy" },
- {0x1c, 0x01, 0x07, 0x02, "Easy" },
- {0x1c, 0x01, 0x07, 0x03, "Normal" },
- {0x1c, 0x01, 0x07, 0x04, "Hard" },
- {0x1c, 0x01, 0x07, 0x05, "Very Hard" },
- {0x1c, 0x01, 0x07, 0x06, "Extra Hard" },
- {0x1c, 0x01, 0x07, 0x07, "Hardest" },
-
- {0 , 0xfe, 0 , 8 , "Lives" },
- {0x1c, 0x01, 0x70, 0x70, "Start 4 Continue 5" },
- {0x1c, 0x01, 0x70, 0x60, "Start 3 Continue 4" },
- {0x1c, 0x01, 0x70, 0x50, "Start 2 Continue 3" },
- {0x1c, 0x01, 0x70, 0x40, "Start 1 Continue 2" },
- {0x1c, 0x01, 0x70, 0x30, "Start 4 Continue 4" },
- {0x1c, 0x01, 0x70, 0x20, "Start 3 Continue 3" },
- {0x1c, 0x01, 0x70, 0x10, "Start 2 Continue 2" },
- {0x1c, 0x01, 0x70, 0x00, "Start 1 Continue 1" },
-
- // Dip C
- {0 , 0xfe, 0 , 3 , "Coin Slots" },
- {0x1d, 0x01, 0x03, 0x02, "2 Players 1 Shooter" },
- {0x1d, 0x01, 0x03, 0x01, "3 Players 1 Shooter" },
- {0x1d, 0x01, 0x03, 0x00, "3 Players 3 Shooters" },
-};
-
-STDDIPINFO(Wofhfh)
-
-static struct BurnDIPInfo WofhDIPList[]=
-{
- // Defaults
- {0x1a, 0xff, 0xff, 0x00, NULL },
- {0x1b, 0xff, 0xff, 0x00, NULL },
- {0x1c, 0xff, 0xff, 0x13, NULL },
-
- // Dip A
- {0 , 0xfe, 0 , 3 , "Coin Slots" },
- {0x1a, 0x01, 0x03, 0x02, "2 Players 1 Shooter" },
- {0x1a, 0x01, 0x03, 0x01, "3 Players 1 Shooter" },
- {0x1a, 0x01, 0x03, 0x00, "3 Players 3 Shooters" },
-
- // Dip B
- {0 , 0xfe, 0 , 4 , "Coinage" },
- {0x1b, 0x01, 0x03, 0x00, "1 Coin 1 Credit" },
- {0x1b, 0x01, 0x03, 0x01, "1 Coin 2 Credits" },
- {0x1b, 0x01, 0x03, 0x02, "1 Coin 3 Credits" },
- {0x1b, 0x01, 0x03, 0x03, "1 Coin 4 Credits" },
-
- // Dip C
- {0 , 0xfe, 0 , 8 , "Difficulty" },
- {0x1c, 0x01, 0x07, 0x00, "Extra Easy" },
- {0x1c, 0x01, 0x07, 0x01, "Very Easy" },
- {0x1c, 0x01, 0x07, 0x02, "Easy" },
- {0x1c, 0x01, 0x07, 0x03, "Normal" },
- {0x1c, 0x01, 0x07, 0x04, "Hard" },
- {0x1c, 0x01, 0x07, 0x05, "Very Hard" },
- {0x1c, 0x01, 0x07, 0x06, "Extra Hard" },
- {0x1c, 0x01, 0x07, 0x07, "Hardest" },
-
- {0 , 0xfe, 0 , 8 , "Lives" },
- {0x1c, 0x01, 0x70, 0x70, "Start 4 Continue 5" },
- {0x1c, 0x01, 0x70, 0x60, "Start 3 Continue 4" },
- {0x1c, 0x01, 0x70, 0x50, "Start 2 Continue 3" },
- {0x1c, 0x01, 0x70, 0x40, "Start 1 Continue 2" },
- {0x1c, 0x01, 0x70, 0x30, "Start 4 Continue 4" },
- {0x1c, 0x01, 0x70, 0x20, "Start 3 Continue 3" },
- {0x1c, 0x01, 0x70, 0x10, "Start 2 Continue 2" },
- {0x1c, 0x01, 0x70, 0x00, "Start 1 Continue 1" },
-};
-
-STDDIPINFO(Wofh)
-
-static struct BurnDIPInfo Wof3jsDIPList[]=
-{
- // Defaults
- {0x1c, 0xff, 0xff, 0x00, NULL },
- {0x1d, 0xff, 0xff, 0x00, NULL },
- {0x1e, 0xff, 0xff, 0x00, NULL },
-
- // Dip A
- {0 , 0xfe, 0 , 4 , "Coinage" },
- {0x1c, 0x01, 0x03, 0x01, "2 Coins 1 Credit" },
- {0x1c, 0x01, 0x03, 0x00, "1 Coin 1 Credit" },
- {0x1c, 0x01, 0x03, 0x02, "1 Coin 2 Credits" },
- {0x1c, 0x01, 0x03, 0x03, "1 Coin 3 Credits" },
-
- // Dip B
- {0 , 0xfe, 0 , 2 , "Coin Slots" },
- {0x1d, 0x01, 0x01, 0x01, "3 Players 1 Shooter" },
- {0x1d, 0x01, 0x01, 0x00, "3 Players 3 Shooters" },
-
- // Dip C
- // not sure about difficulty (no way to test)
- {0 , 0xfe, 0 , 8 , "Difficulty" },
- {0x1e, 0x01, 0x07, 0x00, "Value 0" },
- {0x1e, 0x01, 0x07, 0x01, "Value 1" },
- {0x1e, 0x01, 0x07, 0x02, "Value 2" },
- {0x1e, 0x01, 0x07, 0x03, "Value 3" },
- {0x1e, 0x01, 0x07, 0x04, "Value 4" },
- {0x1e, 0x01, 0x07, 0x05, "Value 5" },
- {0x1e, 0x01, 0x07, 0x06, "Value 6" },
- {0x1e, 0x01, 0x07, 0x07, "Value 7" },
-
- {0 , 0xfe, 0 , 5 , "Lives" },
- {0x1e, 0x01, 0x70, 0x40, "Start 1 Continue 1" },
- {0x1e, 0x01, 0x70, 0x30, "Start 4 Continue 3" },
- {0x1e, 0x01, 0x70, 0x20, "Start 4 Continue 4" },
- {0x1e, 0x01, 0x70, 0x10, "Start 3 Continue 3" },
- {0x1e, 0x01, 0x70, 0x00, "Start 2 Continue 2" },
-};
-
-STDDIPINFO(Wof3js)
-
-static struct BurnDIPInfo Wof3jsaDIPList[]=
-{
- // Defaults
- {0x1c, 0xff, 0xff, 0x00, NULL },
- {0x1d, 0xff, 0xff, 0x00, NULL },
- {0x1e, 0xff, 0xff, 0x13, NULL },
-
- // Dip A
- {0 , 0xfe, 0 , 3 , "Coin Slots" },
- {0x1c, 0x01, 0x03, 0x02, "2 Players 1 Shooter" },
- {0x1c, 0x01, 0x03, 0x01, "3 Players 1 Shooter" },
- {0x1c, 0x01, 0x03, 0x00, "3 Players 3 Shooters" },
-
- // Dip B
- {0 , 0xfe, 0 , 4 , "Coinage" },
- {0x1d, 0x01, 0x03, 0x00, "1 Coin 1 Credit" },
- {0x1d, 0x01, 0x03, 0x01, "1 Coin 2 Credits" },
- {0x1d, 0x01, 0x03, 0x02, "1 Coin 3 Credits" },
- {0x1d, 0x01, 0x03, 0x03, "1 Coin 4 Credits" },
-
- // Dip C
- {0 , 0xfe, 0 , 8 , "Difficulty" },
- {0x1e, 0x01, 0x07, 0x00, "Extra Easy" },
- {0x1e, 0x01, 0x07, 0x01, "Very Easy" },
- {0x1e, 0x01, 0x07, 0x02, "Easy" },
- {0x1e, 0x01, 0x07, 0x03, "Normal" },
- {0x1e, 0x01, 0x07, 0x04, "Hard" },
- {0x1e, 0x01, 0x07, 0x05, "Very Hard" },
- {0x1e, 0x01, 0x07, 0x06, "Extra Hard" },
- {0x1e, 0x01, 0x07, 0x07, "Hardest" },
-
- {0 , 0xfe, 0 , 8 , "Lives" },
- {0x1e, 0x01, 0x70, 0x70, "Start 4 Continue 5" },
- {0x1e, 0x01, 0x70, 0x60, "Start 3 Continue 4" },
- {0x1e, 0x01, 0x70, 0x50, "Start 2 Continue 3" },
- {0x1e, 0x01, 0x70, 0x40, "Start 1 Continue 2" },
- {0x1e, 0x01, 0x70, 0x30, "Start 4 Continue 4" },
- {0x1e, 0x01, 0x70, 0x20, "Start 3 Continue 3" },
- {0x1e, 0x01, 0x70, 0x10, "Start 2 Continue 2" },
- {0x1e, 0x01, 0x70, 0x00, "Start 1 Continue 1" },
-};
-
-STDDIPINFO(Wof3jsa)
-
-static struct BurnDIPInfo Wof3sjDIPList[]=
-{
- // Defaults
- {0x1a, 0xff, 0xff, 0x00, NULL },
- {0x1b, 0xff, 0xff, 0x13, NULL },
- {0x1c, 0xff, 0xff, 0x00, NULL },
-
- // Dip A
- {0 , 0xfe, 0 , 4 , "Coinage" },
- {0x1a, 0x01, 0x03, 0x00, "1 Coin 1 Credit" },
- {0x1a, 0x01, 0x03, 0x01, "1 Coin 2 Credits" },
- {0x1a, 0x01, 0x03, 0x02, "1 Coin 3 Credits" },
- {0x1a, 0x01, 0x03, 0x03, "1 Coin 4 Credits" },
-
- // Dip B
- {0 , 0xfe, 0 , 8 , "Difficulty" },
- {0x1b, 0x01, 0x07, 0x00, "Extra Easy" },
- {0x1b, 0x01, 0x07, 0x01, "Very Easy" },
- {0x1b, 0x01, 0x07, 0x02, "Easy" },
- {0x1b, 0x01, 0x07, 0x03, "Normal" },
- {0x1b, 0x01, 0x07, 0x04, "Hard" },
- {0x1b, 0x01, 0x07, 0x05, "Very Hard" },
- {0x1b, 0x01, 0x07, 0x06, "Extra Hard" },
- {0x1b, 0x01, 0x07, 0x07, "Hardest" },
-
- {0 , 0xfe, 0 , 8 , "Lives" },
- {0x1b, 0x01, 0x70, 0x70, "Start 4 Continue 5" },
- {0x1b, 0x01, 0x70, 0x60, "Start 3 Continue 4" },
- {0x1b, 0x01, 0x70, 0x50, "Start 2 Continue 3" },
- {0x1b, 0x01, 0x70, 0x40, "Start 1 Continue 2" },
- {0x1b, 0x01, 0x70, 0x30, "Start 4 Continue 4" },
- {0x1b, 0x01, 0x70, 0x20, "Start 3 Continue 3" },
- {0x1b, 0x01, 0x70, 0x10, "Start 2 Continue 2" },
- {0x1b, 0x01, 0x70, 0x00, "Start 1 Continue 1" },
-
- // Dip C
- {0 , 0xfe, 0 , 3 , "Coin Slots" },
- {0x1c, 0x01, 0x03, 0x02, "2 Players 1 Shooter" },
- {0x1c, 0x01, 0x03, 0x01, "3 Players 1 Shooter" },
- {0x1c, 0x01, 0x03, 0x00, "3 Players 3 Shooters" },
-};
-
-STDDIPINFO(Wof3sj)
-
-// Rom Definitions
-
-#define A_BOARD_PLDS \
- { "buf1", 0x000117, 0xeb122de7, BRF_OPT }, \
- { "ioa1", 0x000117, 0x59c7ee3b, BRF_OPT }, \
- { "prg1", 0x000117, 0xf1129744, BRF_OPT }, \
- { "rom1", 0x000117, 0x41dc73b9, BRF_OPT }, \
- { "sou1", 0x000117, 0x84f4b2fe, BRF_OPT },
-
-#define A_BOARD_QSOUND_PLDS \
- { "buf1", 0x000117, 0xeb122de7, BRF_OPT }, \
- { "ioa1", 0x000117, 0x59c7ee3b, BRF_OPT }, \
- { "prg2", 0x000117, 0x4386879a, BRF_OPT }, \
- { "rom1", 0x000117, 0x41dc73b9, BRF_OPT }, \
-
-static struct BurnRomInfo NTFODrvRomDesc[] = {
- { "41em_30.11f", 0x020000, 0x4249ec61, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "41em_35.11h", 0x020000, 0xddbee5eb, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "41em_31.12f", 0x020000, 0x584e88e5, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "41em_36.12h", 0x020000, 0x3cfc31d0, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "41-32m.8h", 0x080000, 0x4e9648ca, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "41-5m.7a", 0x080000, 0x01d1cb11, BRF_GRA | CPS1_TILES },
- { "41-7m.9a", 0x080000, 0xaeaa3509, BRF_GRA | CPS1_TILES },
- { "41-1m.3a", 0x080000, 0xff77985a, BRF_GRA | CPS1_TILES },
- { "41-3m.5a", 0x080000, 0x983be58f, BRF_GRA | CPS1_TILES },
-
- { "41_9.12b", 0x010000, 0x0f9d8527, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "41_18.11c", 0x020000, 0xd1f15aeb, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "41_19.12c", 0x020000, 0x15aec3a6, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "yi24b.1a", 0x000117, 0x3004dcdf, BRF_OPT }, // b-board PLDs
- { "iob1.11e", 0x000117, 0x3abc0700, BRF_OPT },
-};
-
-STD_ROM_PICK(NTFODrv)
-STD_ROM_FN(NTFODrv)
-
-static struct BurnRomInfo NTFOR1DrvRomDesc[] = {
- { "41e_30.11f", 0x020000, 0x9deb1e75, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "41e_35.11h", 0x020000, 0xd63942b3, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "41e_31.12f", 0x020000, 0xdf201112, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "41e_36.12h", 0x020000, 0x816a818f, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "41-32m.8h", 0x080000, 0x4e9648ca, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "41-5m.7a", 0x080000, 0x01d1cb11, BRF_GRA | CPS1_TILES },
- { "41-7m.9a", 0x080000, 0xaeaa3509, BRF_GRA | CPS1_TILES },
- { "41-1m.3a", 0x080000, 0xff77985a, BRF_GRA | CPS1_TILES },
- { "41-3m.5a", 0x080000, 0x983be58f, BRF_GRA | CPS1_TILES },
-
- { "41_9.12b", 0x010000, 0x0f9d8527, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "41_18.11c", 0x020000, 0xd1f15aeb, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "41_19.12c", 0x020000, 0x15aec3a6, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "yi24b.1a", 0x000117, 0x3004dcdf, BRF_OPT }, // b-board PLDs
- { "iob1.11e", 0x000117, 0x3abc0700, BRF_OPT },
-};
-
-STD_ROM_PICK(NTFOR1Drv)
-STD_ROM_FN(NTFOR1Drv)
-
-static struct BurnRomInfo NTFOUDrvRomDesc[] = {
- { "41u_30.11f", 0x020000, 0xbe5439d0, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "41u_35.11h", 0x020000, 0x6ac96595, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "41u_31.12f", 0x020000, 0x9811d6eb, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "41u_36.12h", 0x020000, 0xa87e6137, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "41-32m.8h", 0x080000, 0x4e9648ca, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "41-5m.7a", 0x080000, 0x01d1cb11, BRF_GRA | CPS1_TILES },
- { "41-7m.9a", 0x080000, 0xaeaa3509, BRF_GRA | CPS1_TILES },
- { "41-1m.3a", 0x080000, 0xff77985a, BRF_GRA | CPS1_TILES },
- { "41-3m.5a", 0x080000, 0x983be58f, BRF_GRA | CPS1_TILES },
-
- { "41_9.12b", 0x010000, 0x0f9d8527, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "41e_18.11c", 0x020000, 0xd1f15aeb, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "41_19.12c", 0x020000, 0x15aec3a6, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "yi24b.1a", 0x000117, 0x3004dcdf, BRF_OPT }, // b-board PLDs
- { "iob1.11e", 0x000117, 0x3abc0700, BRF_OPT },
-};
-
-STD_ROM_PICK(NTFOUDrv)
-STD_ROM_FN(NTFOUDrv)
-
-static struct BurnRomInfo NTFOJDrvRomDesc[] = {
- { "41_36.12f", 0x020000, 0x7fbd42ab, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "41_42.12h", 0x020000, 0xc7781f89, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "41_37.13f", 0x020000, 0xc6464b0b, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "41_43.13h", 0x020000, 0x440fc0b5, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "41_34.10f", 0x020000, 0xb5f341ec, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "41_40.10h", 0x020000, 0x3979837d, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "41_35.11f", 0x020000, 0x95cc979a, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "41_41.11h", 0x020000, 0x57496819, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "41_09.4b", 0x020000, 0xbe1b6bc2, BRF_GRA | CPS1_TILES },
- { "41_01.4a", 0x020000, 0xd8946fc1, BRF_GRA | CPS1_TILES },
- { "41_13.9b", 0x020000, 0x2e06d0ec, BRF_GRA | CPS1_TILES },
- { "41_05.9a", 0x020000, 0xd8ba28e0, BRF_GRA | CPS1_TILES },
- { "41_24.5e", 0x020000, 0x5aa43cee, BRF_GRA | CPS1_TILES },
- { "41_17.5c", 0x020000, 0xbbeff902, BRF_GRA | CPS1_TILES },
- { "41_38.8h", 0x020000, 0x8889c0aa, BRF_GRA | CPS1_TILES },
- { "41_32.8f", 0x020000, 0xf0168249, BRF_GRA | CPS1_TILES },
- { "41_10.5b", 0x020000, 0xb7eb6a6d, BRF_GRA | CPS1_TILES },
- { "41_02.5a", 0x020000, 0x802e8153, BRF_GRA | CPS1_TILES },
- { "41_14.10b", 0x020000, 0x5a33f676, BRF_GRA | CPS1_TILES },
- { "41_06.10a", 0x020000, 0x4e53650b, BRF_GRA | CPS1_TILES },
- { "41_25.7e", 0x020000, 0x94add360, BRF_GRA | CPS1_TILES },
- { "41_18.7c", 0x020000, 0xa5e1c1f3, BRF_GRA | CPS1_TILES },
- { "41_39.9h", 0x020000, 0x5b5c3949, BRF_GRA | CPS1_TILES },
- { "41_33.9f", 0x020000, 0x7a31b0e2, BRF_GRA | CPS1_TILES },
-
- { "41_23.13b", 0x010000, 0x0f9d8527, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "41_30.12c", 0x020000, 0xd1f15aeb, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "41_31.13c", 0x020000, 0x15aec3a6, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "yi22b.1a", 0x000117, 0x00000000, BRF_OPT | BRF_NODUMP }, // b-board PLDs
- { "lwio.12e", 0x000117, 0xad52b90c, BRF_OPT },
-};
-
-STD_ROM_PICK(NTFOJDrv)
-STD_ROM_FN(NTFOJDrv)
-
-static struct BurnRomInfo ThreeWondersRomDesc[] = {
- { "rte_30a.11f", 0x020000, 0xef5b8b33, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "rte_35a.11h", 0x020000, 0x7d705529, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "rte_31a.12f", 0x020000, 0x32835e5e, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "rte_36a.12h", 0x020000, 0x7637975f, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "rt_28a.9f", 0x020000, 0x054137c8, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "rt_33a.9h", 0x020000, 0x7264cb1b, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "rte_29a.10f", 0x020000, 0xcddaa919, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "rte_34a.10h", 0x020000, 0xed52e7e5, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "rt-5m.7a", 0x080000, 0x86aef804, BRF_GRA | CPS1_TILES },
- { "rt-7m.9a", 0x080000, 0x4f057110, BRF_GRA | CPS1_TILES },
- { "rt-1m.3a", 0x080000, 0x902489d0, BRF_GRA | CPS1_TILES },
- { "rt-3m.5a", 0x080000, 0xe35ce720, BRF_GRA | CPS1_TILES },
- { "rt-6m.8a", 0x080000, 0x13cb0e7c, BRF_GRA | CPS1_TILES },
- { "rt-8m.10a", 0x080000, 0x1f055014, BRF_GRA | CPS1_TILES },
- { "rt-2m.4a", 0x080000, 0xe9a034f4, BRF_GRA | CPS1_TILES },
- { "rt-4m.6a", 0x080000, 0xdf0eea8b, BRF_GRA | CPS1_TILES },
-
- { "rt_9.12b", 0x010000, 0xabfca165, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "rt_18.11c", 0x020000, 0x26b211ab, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "rt_19.12c", 0x020000, 0xdbe64ad0, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "rt24b.1a", 0x000117, 0x54b85159, BRF_OPT }, // b-board PLDs
- { "iob1.11e", 0x000117, 0x3abc0700, BRF_OPT },
- { "ioc1.ic1", 0x000117, 0x0d182081, BRF_OPT }, // c-board PLDs
-};
-
-STD_ROM_PICK(ThreeWonders)
-STD_ROM_FN(ThreeWonders)
-
-static struct BurnRomInfo ThreeWondersr1RomDesc[] = {
- { "rte_30.11f", 0x020000, 0x0d541519, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "rte_35.11h", 0x020000, 0x73dd0e20, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "rte_31.12f", 0x020000, 0x33e0337d, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "rte_36.12h", 0x020000, 0xa8865243, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "rte_28.9f", 0x020000, 0x054137c8, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "rte_33.9h", 0x020000, 0x7264cb1b, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "rte_29.10f", 0x020000, 0x9a8df1e4, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "rte_34.10h", 0x020000, 0x6348a79d, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "rt-5m.7a", 0x080000, 0x86aef804, BRF_GRA | CPS1_TILES },
- { "rt-7m.9a", 0x080000, 0x4f057110, BRF_GRA | CPS1_TILES },
- { "rt-1m.3a", 0x080000, 0x902489d0, BRF_GRA | CPS1_TILES },
- { "rt-3m.5a", 0x080000, 0xe35ce720, BRF_GRA | CPS1_TILES },
- { "rt-6m.8a", 0x080000, 0x13cb0e7c, BRF_GRA | CPS1_TILES },
- { "rt-8m.10a", 0x080000, 0x1f055014, BRF_GRA | CPS1_TILES },
- { "rt-2m.4a", 0x080000, 0xe9a034f4, BRF_GRA | CPS1_TILES },
- { "rt-4m.6a", 0x080000, 0xdf0eea8b, BRF_GRA | CPS1_TILES },
-
- { "rt_9.12b", 0x010000, 0x7d5a77a7, BRF_PRG | CPS1_Z80_PROGRAM }, // 1 byte different from 3wonders, pcb verified
-
- { "rt_18.11c", 0x020000, 0xf6dc0d3d, BRF_SND | CPS1_OKIM6295_SAMPLES }, // 6 bytes different from 3wonders, pcb verified
- { "rt_19.12c", 0x020000, 0xdbe64ad0, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "rt24b.1a", 0x000117, 0x54b85159, BRF_OPT }, // b-board PLDs
- { "iob1.11e", 0x000117, 0x3abc0700, BRF_OPT },
- { "ioc1.ic1", 0x000117, 0x0d182081, BRF_OPT }, // c-board PLDs
-};
-
-STD_ROM_PICK(ThreeWondersr1)
-STD_ROM_FN(ThreeWondersr1)
-
-static struct BurnRomInfo Wonder3uRomDesc[] = {
- { "rtu_30a.11f", 0x020000, 0x0b156fd8, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "rtu_35a.11h", 0x020000, 0x57350bf4, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "rtu_31a.12f", 0x020000, 0x0e723fcc, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "rtu_36a.12h", 0x020000, 0x523a45dc, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "rt_28a.9f", 0x020000, 0x054137c8, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "rt_33a.9h", 0x020000, 0x7264cb1b, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "rtu_29a.10f", 0x020000, 0x37ba3e20, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "rtu_34a.10h", 0x020000, 0xf99f46c0, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "rt-5m.7a", 0x080000, 0x86aef804, BRF_GRA | CPS1_TILES },
- { "rt-7m.9a", 0x080000, 0x4f057110, BRF_GRA | CPS1_TILES },
- { "rt-1m.3a", 0x080000, 0x902489d0, BRF_GRA | CPS1_TILES },
- { "rt-3m.5a", 0x080000, 0xe35ce720, BRF_GRA | CPS1_TILES },
- { "rt-6m.8a", 0x080000, 0x13cb0e7c, BRF_GRA | CPS1_TILES },
- { "rt-8m.10a", 0x080000, 0x1f055014, BRF_GRA | CPS1_TILES },
- { "rt-2m.4a", 0x080000, 0xe9a034f4, BRF_GRA | CPS1_TILES },
- { "rt-4m.6a", 0x080000, 0xdf0eea8b, BRF_GRA | CPS1_TILES },
-
- { "rt_9.12b", 0x010000, 0xabfca165, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "rt_18.11c", 0x020000, 0x26b211ab, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "rt_19.12c", 0x020000, 0xdbe64ad0, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "rt24b.1a", 0x000117, 0x54b85159, BRF_OPT }, // b-board PLDs
- { "iob1.11e", 0x000117, 0x3abc0700, BRF_OPT },
- { "ioc1.ic1", 0x000117, 0x0d182081, BRF_OPT }, // c-board PLDs
-};
-
-STD_ROM_PICK(Wonder3u)
-STD_ROM_FN(Wonder3u)
-
-static struct BurnRomInfo Wonder3RomDesc[] = {
- { "rtj_36.12f", 0x020000, 0xe3741247, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "rtj_42.12h", 0x020000, 0xb4baa117, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "rtj_37.13f", 0x020000, 0xa1f677b0, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "rtj_43.13h", 0x020000, 0x85337a47, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "rt_34.10f", 0x020000, 0x054137c8, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "rt_40.10h", 0x020000, 0x7264cb1b, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "rtj_35.11f", 0x020000, 0xe72f9ea3, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "rtj_41.11h", 0x020000, 0xa11ee998, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "rt_09.4b", 0x020000, 0x2c40e480, BRF_GRA | CPS1_TILES },
- { "rt_01.4a", 0x020000, 0x3e11f8cd, BRF_GRA | CPS1_TILES },
- { "rt_13.9b", 0x020000, 0x51009117, BRF_GRA | CPS1_TILES },
- { "rt_05.9a", 0x020000, 0x283fd470, BRF_GRA | CPS1_TILES },
- { "rt_24.5e", 0x020000, 0xee4484ce, BRF_GRA | CPS1_TILES },
- { "rt_17.5c", 0x020000, 0xe5dcddeb, BRF_GRA | CPS1_TILES },
- { "rt_38.8h", 0x020000, 0xb2940c2d, BRF_GRA | CPS1_TILES },
- { "rt_32.8f", 0x020000, 0x08e2b758, BRF_GRA | CPS1_TILES },
- { "rt_10.5b", 0x020000, 0xe3f3ff94, BRF_GRA | CPS1_TILES },
- { "rt_02.5a", 0x020000, 0xfcffd73c, BRF_GRA | CPS1_TILES },
- { "rt_14.10b", 0x020000, 0x5c546d9a, BRF_GRA | CPS1_TILES },
- { "rt_06.10a", 0x020000, 0xd9650bc4, BRF_GRA | CPS1_TILES },
- { "rt_25.7e", 0x020000, 0x11b28831, BRF_GRA | CPS1_TILES },
- { "rt_18.7c", 0x020000, 0xce1afb7c, BRF_GRA | CPS1_TILES },
- { "rt_39.9h", 0x020000, 0xea7ac9ee, BRF_GRA | CPS1_TILES },
- { "rt_33.9f", 0x020000, 0xd6a99384, BRF_GRA | CPS1_TILES },
- { "rt_11.7b", 0x020000, 0x04f3c298, BRF_GRA | CPS1_TILES },
- { "rt_03.7a", 0x020000, 0x98087e08, BRF_GRA | CPS1_TILES },
- { "rt_15.11b", 0x020000, 0xb6aba565, BRF_GRA | CPS1_TILES },
- { "rt_07.11a", 0x020000, 0xc62defa1, BRF_GRA | CPS1_TILES },
- { "rt_26.8e", 0x020000, 0x532f542e, BRF_GRA | CPS1_TILES },
- { "rt_19.8c", 0x020000, 0x1f0f72bd, BRF_GRA | CPS1_TILES },
- { "rt_28.10e", 0x020000, 0x6064e499, BRF_GRA | CPS1_TILES },
- { "rt_21.10c", 0x020000, 0x20012ddc, BRF_GRA | CPS1_TILES },
- { "rt_12.8b", 0x020000, 0xe54664cc, BRF_GRA | CPS1_TILES },
- { "rt_04.8a", 0x020000, 0x4d7b9a1a, BRF_GRA | CPS1_TILES },
- { "rt_16.12b", 0x020000, 0x37c96cfc, BRF_GRA | CPS1_TILES },
- { "rt_08.12a", 0x020000, 0x75f4975b, BRF_GRA | CPS1_TILES },
- { "rt_27.9e", 0x020000, 0xec6edc0f, BRF_GRA | CPS1_TILES },
- { "rt_20.9c", 0x020000, 0x4fe52659, BRF_GRA | CPS1_TILES },
- { "rt_29.11e", 0x020000, 0x8fa77f9f, BRF_GRA | CPS1_TILES },
- { "rt_22.11c", 0x020000, 0x228a0d4a, BRF_GRA | CPS1_TILES },
-
- { "rt_23.13b", 0x010000, 0xabfca165, BRF_PRG | CPS1_Z80_PROGRAM },
-// { "rt_23.13b", 0x010000, 0x7d5a77a7, BRF_PRG | CPS1_Z80_PROGRAM }, // dumped from another board, 1 byte different, pcb verified
-
- { "rt_30.12c", 0x020000, 0x26b211ab, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "rt_31.13c", 0x020000, 0xdbe64ad0, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "rt22b.1a", 0x000117, 0x89560d6a, BRF_OPT }, // b-board PLDs
- { "iob1.12e", 0x000117, 0x3abc0700, BRF_OPT },
- { "ioc1.ic1", 0x000117, 0x0d182081, BRF_OPT }, // c-board PLDs
-};
-
-STD_ROM_PICK(Wonder3)
-STD_ROM_FN(Wonder3)
-
-static struct BurnRomInfo Wonder3hRomDesc[] = {
- { "22.bin", 0x020000, 0xe6071884, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "26.bin", 0x020000, 0xa28447b7, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "23.bin", 0x020000, 0xfd3d6509, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "27.bin", 0x020000, 0x999cba3d, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "rt_28a.9f", 0x020000, 0x054137c8, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "rt_33a.9h", 0x020000, 0x7264cb1b, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "rte_29a.10f", 0x020000, 0xcddaa919, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "rte_34a.10h", 0x020000, 0xed52e7e5, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "16.bin", 0x040000, 0xc997bca2, BRF_GRA | CPS1_TILES },
- { "6.bin", 0x040000, 0x3eea321a, BRF_GRA | CPS1_TILES },
- { "18.bin", 0x040000, 0x98acdfd4, BRF_GRA | CPS1_TILES },
- { "8.bin", 0x040000, 0xdc9ca6f9, BRF_GRA | CPS1_TILES },
- { "12.bin", 0x040000, 0x0d8a6007, BRF_GRA | CPS1_TILES },
- { "2.bin", 0x040000, 0xd75563b9, BRF_GRA | CPS1_TILES },
- { "14.bin", 0x040000, 0x84369a28, BRF_GRA | CPS1_TILES },
- { "4.bin", 0x040000, 0xd4831578, BRF_GRA | CPS1_TILES },
- { "17.bin", 0x040000, 0x040edff5, BRF_GRA | CPS1_TILES },
- { "7.bin", 0x040000, 0xc7c0468c, BRF_GRA | CPS1_TILES },
- { "19.bin", 0x040000, 0x9fef114f, BRF_GRA | CPS1_TILES },
- { "9.bin", 0x040000, 0x48cbfba5, BRF_GRA | CPS1_TILES },
- { "13.bin", 0x040000, 0x8fc3d7d1, BRF_GRA | CPS1_TILES },
- { "3.bin", 0x040000, 0xc65e9a86, BRF_GRA | CPS1_TILES },
- { "15.bin", 0x040000, 0xf239341a, BRF_GRA | CPS1_TILES },
- { "5.bin", 0x040000, 0x947ac944, BRF_GRA | CPS1_TILES },
-
- { "rt_9.12b", 0x010000, 0xabfca165, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "rt_18.11c", 0x020000, 0x26b211ab, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "rt_19.12c", 0x020000, 0xdbe64ad0, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "rt24b.1a", 0x000117, 0x54b85159, BRF_OPT }, // b-board PLDs
- { "iob1.11e", 0x000117, 0x3abc0700, BRF_OPT },
- { "ioc1.ic1", 0x000117, 0x0d182081, BRF_OPT }, // c-board PLDs
-};
-
-STD_ROM_PICK(Wonder3h)
-STD_ROM_FN(Wonder3h)
-
-static struct BurnRomInfo Wonder3haRomDesc[] = {
- { "22.bin", 0x040000, 0x8eb6b675, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "26.bin", 0x040000, 0xab2d0699, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "23.bin", 0x040000, 0x74db820f, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "27.bin", 0x040000, 0xc75e807b, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "16.bin", 0x040000, 0xc997bca2, BRF_GRA | CPS1_TILES },
- { "6.bin", 0x040000, 0x3eea321a, BRF_GRA | CPS1_TILES },
- { "18.bin", 0x040000, 0x98acdfd4, BRF_GRA | CPS1_TILES },
- { "8.bin", 0x040000, 0xdc9ca6f9, BRF_GRA | CPS1_TILES },
- { "12.bin", 0x040000, 0x0d8a6007, BRF_GRA | CPS1_TILES },
- { "2.bin", 0x040000, 0xd75563b9, BRF_GRA | CPS1_TILES },
- { "14.bin", 0x040000, 0x84369a28, BRF_GRA | CPS1_TILES },
- { "4.bin", 0x040000, 0xd4831578, BRF_GRA | CPS1_TILES },
- { "17.bin", 0x040000, 0x040edff5, BRF_GRA | CPS1_TILES },
- { "7.bin", 0x040000, 0xc7c0468c, BRF_GRA | CPS1_TILES },
- { "19.bin", 0x040000, 0x9fef114f, BRF_GRA | CPS1_TILES },
- { "9.bin", 0x040000, 0x48cbfba5, BRF_GRA | CPS1_TILES },
- { "13.bin", 0x040000, 0x8fc3d7d1, BRF_GRA | CPS1_TILES },
- { "3.bin", 0x040000, 0xc65e9a86, BRF_GRA | CPS1_TILES },
- { "15.bin", 0x040000, 0xf239341a, BRF_GRA | CPS1_TILES },
- { "5.bin", 0x040000, 0x947ac944, BRF_GRA | CPS1_TILES },
-
- { "rt_9.12b", 0x010000, 0xabfca165, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "rt_18.11c", 0x020000, 0x26b211ab, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "rt_19.12c", 0x020000, 0xdbe64ad0, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "rt24b.1a", 0x000117, 0x54b85159, BRF_OPT }, // b-board PLDs
- { "iob1.11e", 0x000117, 0x3abc0700, BRF_OPT },
- { "ioc1.ic1", 0x000117, 0x0d182081, BRF_OPT }, // c-board PLDs
-};
-
-STD_ROM_PICK(Wonder3ha)
-STD_ROM_FN(Wonder3ha)
-
-static struct BurnRomInfo Wonder3bRomDesc[] = {
- { "274001.4", 0x080000, 0x47887cf3, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "274001.3", 0x080000, 0xe79eacb3, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "274001.12", 0x080000, 0x47cf8dfb, BRF_GRA | CPS1_TILES },
- { "274001.10", 0x080000, 0xa0d27605, BRF_GRA | CPS1_TILES },
- { "274001.11", 0x080000, 0x8112bbb4, BRF_GRA | CPS1_TILES },
- { "274001.9", 0x080000, 0xcb73759d, BRF_GRA | CPS1_TILES },
- { "274001.8", 0x080000, 0x3bc2ef5e, BRF_GRA | CPS1_TILES },
- { "274001.6", 0x080000, 0x312d790c, BRF_GRA | CPS1_TILES },
- { "274001.7", 0x080000, 0x58307167, BRF_GRA | CPS1_TILES },
- { "274001.5", 0x080000, 0x3f765ae8, BRF_GRA | CPS1_TILES },
-
- { "27512.2", 0x010000, 0xabfca165, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "27020.1", 0x040000, 0x3c4348cf, BRF_SND | CPS1_OKIM6295_SAMPLES },
-};
-
-STD_ROM_PICK(Wonder3b)
-STD_ROM_FN(Wonder3b)
-
-static struct BurnRomInfo CaptcommRomDesc[] = {
- { "cce_23f.8f", 0x080000, 0x42c814c5, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "cc_22f.7f", 0x080000, 0x0fd34195, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "cc_24f.9e", 0x020000, 0x3a794f25, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "cc_28f.9f", 0x020000, 0xfc3c2906, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "cc-5m.3a", 0x080000, 0x7261d8ba, BRF_GRA | CPS1_TILES },
- { "cc-7m.5a", 0x080000, 0x6a60f949, BRF_GRA | CPS1_TILES },
- { "cc-1m.4a", 0x080000, 0x00637302, BRF_GRA | CPS1_TILES },
- { "cc-3m.6a", 0x080000, 0xcc87cf61, BRF_GRA | CPS1_TILES },
- { "cc-6m.7a", 0x080000, 0x28718bed, BRF_GRA | CPS1_TILES },
- { "cc-8m.9a", 0x080000, 0xd4acc53a, BRF_GRA | CPS1_TILES },
- { "cc-2m.8a", 0x080000, 0x0c69f151, BRF_GRA | CPS1_TILES },
- { "cc-4m.10a", 0x080000, 0x1f9ebb97, BRF_GRA | CPS1_TILES },
-
- { "cc_09.11a", 0x010000, 0x698e8b58, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "cc_18.11c", 0x020000, 0x6de2c2db, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "cc_19.12c", 0x020000, 0xb99091ae, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "cc63b.1a", 0x000117, 0xcae8f0f9, BRF_OPT }, // b-board PLDs
- { "iob1.12d", 0x000117, 0x3abc0700, BRF_OPT },
- { "ccprg1.11d", 0x000117, 0xe1c225c4, BRF_OPT },
- { "ioc1.ic7", 0x000117, 0x0d182081, BRF_OPT }, // c-board PLDs
- { "c632b.ic1", 0x000117, 0x0fbd9270, BRF_OPT },
-};
-
-STD_ROM_PICK(Captcomm)
-STD_ROM_FN(Captcomm)
-
-static struct BurnRomInfo Captcommr1RomDesc[] = {
- { "cce_23d.8f", 0x080000, 0x19c58ece, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "cc_22d.7f", 0x080000, 0xa91949b7, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "cc_24d.9e", 0x020000, 0x680e543f, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "cc_28d.9f", 0x020000, 0x8820039f, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "cc-5m.3a", 0x080000, 0x7261d8ba, BRF_GRA | CPS1_TILES },
- { "cc-7m.5a", 0x080000, 0x6a60f949, BRF_GRA | CPS1_TILES },
- { "cc-1m.4a", 0x080000, 0x00637302, BRF_GRA | CPS1_TILES },
- { "cc-3m.6a", 0x080000, 0xcc87cf61, BRF_GRA | CPS1_TILES },
- { "cc-6m.7a", 0x080000, 0x28718bed, BRF_GRA | CPS1_TILES },
- { "cc-8m.9a", 0x080000, 0xd4acc53a, BRF_GRA | CPS1_TILES },
- { "cc-2m.8a", 0x080000, 0x0c69f151, BRF_GRA | CPS1_TILES },
- { "cc-4m.10a", 0x080000, 0x1f9ebb97, BRF_GRA | CPS1_TILES },
-
- { "cc_09.11a", 0x010000, 0x698e8b58, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "cc_18.11c", 0x020000, 0x6de2c2db, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "cc_19.12c", 0x020000, 0xb99091ae, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "cc63b.1a", 0x000117, 0xcae8f0f9, BRF_OPT }, // b-board PLDs
- { "iob1.12d", 0x000117, 0x3abc0700, BRF_OPT },
- { "ccprg.11d", 0x000117, 0xe1c225c4, BRF_OPT },
- { "ioc1.ic7", 0x000117, 0x0d182081, BRF_OPT }, // c-board PLDs
- { "c632.ic1", 0x000117, 0x0fbd9270, BRF_OPT },
-};
-
-STD_ROM_PICK(Captcommr1)
-STD_ROM_FN(Captcommr1)
-
-static struct BurnRomInfo CaptcommuRomDesc[] = {
- { "ccu_23b.8f", 0x080000, 0x03da44fd, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "ccu_22c.7f", 0x080000, 0x9b82a052, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "ccu_24b.9e", 0x020000, 0x84ff99b2, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "ccu_28b.9f", 0x020000, 0xfbcec223, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "cc-5m.3a", 0x080000, 0x7261d8ba, BRF_GRA | CPS1_TILES },
- { "cc-7m.5a", 0x080000, 0x6a60f949, BRF_GRA | CPS1_TILES },
- { "cc-1m.4a", 0x080000, 0x00637302, BRF_GRA | CPS1_TILES },
- { "cc-3m.6a", 0x080000, 0xcc87cf61, BRF_GRA | CPS1_TILES },
- { "cc-6m.7a", 0x080000, 0x28718bed, BRF_GRA | CPS1_TILES },
- { "cc-8m.9a", 0x080000, 0xd4acc53a, BRF_GRA | CPS1_TILES },
- { "cc-2m.8a", 0x080000, 0x0c69f151, BRF_GRA | CPS1_TILES },
- { "cc-4m.10a", 0x080000, 0x1f9ebb97, BRF_GRA | CPS1_TILES },
-
- { "ccu_09.11a", 0x010000, 0x698e8b58, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "ccu_18.11c", 0x020000, 0x6de2c2db, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "ccu_19.12c", 0x020000, 0xb99091ae, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "cc63b.1a", 0x000117, 0xcae8f0f9, BRF_OPT }, // b-board PLDs
- { "iob1.12d", 0x000117, 0x3abc0700, BRF_OPT },
- { "ccprg1.11d", 0x000117, 0xe1c225c4, BRF_OPT },
- { "ioc1.ic7", 0x000117, 0x0d182081, BRF_OPT }, // c-board PLDs
- { "c632.ic1", 0x000117, 0x0fbd9270, BRF_OPT },
-};
-
-STD_ROM_PICK(Captcommu)
-STD_ROM_FN(Captcommu)
-
-static struct BurnRomInfo CaptcommjRomDesc[] = {
- { "ccj_23f.8f", 0x080000, 0x5b482b62, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "ccj_22f.7f", 0x080000, 0x0fd34195, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "ccj_24f.9e", 0x020000, 0x3a794f25, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "ccj_28f.9f", 0x020000, 0xfc3c2906, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "cc_01.3a", 0x080000, 0x7261d8ba, BRF_GRA | CPS1_TILES },
- { "cc_02.4a", 0x080000, 0x6a60f949, BRF_GRA | CPS1_TILES },
- { "cc_03.5a", 0x080000, 0x00637302, BRF_GRA | CPS1_TILES },
- { "cc_04.6a", 0x080000, 0xcc87cf61, BRF_GRA | CPS1_TILES },
- { "cc_05.7a", 0x080000, 0x28718bed, BRF_GRA | CPS1_TILES },
- { "cc_06.8a", 0x080000, 0xd4acc53a, BRF_GRA | CPS1_TILES },
- { "cc_07.9a", 0x080000, 0x0c69f151, BRF_GRA | CPS1_TILES },
- { "cc_08.10a", 0x080000, 0x1f9ebb97, BRF_GRA | CPS1_TILES },
-
- { "ccj_09.12a", 0x010000, 0x698e8b58, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "ccj_18.11c", 0x020000, 0x6de2c2db, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "ccj_19.12c", 0x020000, 0xb99091ae, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "cc63b.1a", 0x000117, 0xcae8f0f9, BRF_OPT }, // b-board PLDs
- { "iob1.12d", 0x000117, 0x3abc0700, BRF_OPT },
- { "ccprg1.11d", 0x000117, 0xe1c225c4, BRF_OPT },
- { "ioc1.ic7", 0x000117, 0x0d182081, BRF_OPT }, // c-board PLDs
- { "c632b.ic1", 0x000117, 0x0fbd9270, BRF_OPT },
-};
-
-STD_ROM_PICK(Captcommj)
-STD_ROM_FN(Captcommj)
-
-static struct BurnRomInfo Captcommjr1RomDesc[] = {
- { "ccj_23b.8f", 0x080000, 0xe2a2d80e, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "ccj_22c.7f", 0x080000, 0x9b82a052, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "ccj_24b.9e", 0x020000, 0x84ff99b2, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "ccj_28b.9f", 0x020000, 0xfbcec223, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "cc_01.3a", 0x080000, 0x7261d8ba, BRF_GRA | CPS1_TILES },
- { "cc_02.4a", 0x080000, 0x6a60f949, BRF_GRA | CPS1_TILES },
- { "cc_03.5a", 0x080000, 0x00637302, BRF_GRA | CPS1_TILES },
- { "cc_04.6a", 0x080000, 0xcc87cf61, BRF_GRA | CPS1_TILES },
- { "cc_05.7a", 0x080000, 0x28718bed, BRF_GRA | CPS1_TILES },
- { "cc_06.8a", 0x080000, 0xd4acc53a, BRF_GRA | CPS1_TILES },
- { "cc_07.9a", 0x080000, 0x0c69f151, BRF_GRA | CPS1_TILES },
- { "cc_08.10a", 0x080000, 0x1f9ebb97, BRF_GRA | CPS1_TILES },
-
- { "ccj_09.12a", 0x010000, 0x698e8b58, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "ccj_18.11c", 0x020000, 0x6de2c2db, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "ccj_19.12c", 0x020000, 0xb99091ae, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "cc63b.1a", 0x000117, 0xcae8f0f9, BRF_OPT }, // b-board PLDs
- { "iob1.12d", 0x000117, 0x3abc0700, BRF_OPT },
- { "ccprg.11d", 0x000117, 0xe1c225c4, BRF_OPT },
- { "ioc1.ic7", 0x000117, 0x0d182081, BRF_OPT }, // c-board PLDs
- { "c632.ic1", 0x000117, 0x0fbd9270, BRF_OPT },
-};
-
-STD_ROM_PICK(Captcommjr1)
-STD_ROM_FN(Captcommjr1)
-
-static struct BurnRomInfo CaptcommbRomDesc[] = {
- { "25.bin", 0x080000, 0xcb71ed7a, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "27.bin", 0x080000, 0x47cb2e87, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "24.bin", 0x040000, 0x79794279, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "26.bin", 0x040000, 0xb01077ba, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "c91e-01.bin", 0x100000, 0xf863071c, BRF_GRA | CPS1_TILES },
- { "c91e-02.bin", 0x100000, 0x4b03c308, BRF_GRA | CPS1_TILES },
- { "c91e-03.bin", 0x100000, 0x3383ea96, BRF_GRA | CPS1_TILES },
- { "c91e-04.bin", 0x100000, 0xb8e1f4cf, BRF_GRA | CPS1_TILES },
-
- { "l.bin", 0x010000, 0x698e8b58, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "c91e-05.bin", 0x040000, 0x096115fb, BRF_SND | CPS1_OKIM6295_SAMPLES },
-};
-
-STD_ROM_PICK(Captcommb)
-STD_ROM_FN(Captcommb)
-
-static struct BurnRomInfo Captcommb2RomDesc[] = {
- { "5.bin", 0x080000, 0xc3a6ed28, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "4.bin", 0x080000, 0x28729335, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "3.bin", 0x040000, 0x1b526d73, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "2.bin", 0x040000, 0x73c99709, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "cap.bin", 0x080000, 0x7261d8ba, BRF_GRA | CPS1_TILES },
- { "cbp.bin", 0x080000, 0x6a60f949, BRF_GRA | CPS1_TILES },
- { "ccp.bin", 0x080000, 0x00637302, BRF_GRA | CPS1_TILES },
- { "cdp.bin", 0x080000, 0xcc87cf61, BRF_GRA | CPS1_TILES },
- { "cai.bin", 0x080000, 0x28718bed, BRF_GRA | CPS1_TILES },
- { "cbi.bin", 0x080000, 0xd4acc53a, BRF_GRA | CPS1_TILES },
- { "cci.bin", 0x080000, 0x0c69f151, BRF_GRA | CPS1_TILES },
- { "cdi.bin", 0x080000, 0x1f9ebb97, BRF_GRA | CPS1_TILES },
-
- { "1.bin", 0x040000, 0xaed2f4bd, BRF_PRG | CPS1_Z80_PROGRAM },
-};
-
-STD_ROM_PICK(Captcommb2)
-STD_ROM_FN(Captcommb2)
-
-static struct BurnRomInfo CawingRomDesc[] = {
- { "cae_30a.11f", 0x020000, 0x91fceacd, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "cae_35a.11h", 0x020000, 0x3ef03083, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "cae_31a.12f", 0x020000, 0xe5b75caf, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "cae_36a.12h", 0x020000, 0xc73fd713, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "ca-32m.8h", 0x080000, 0x0c4837d4, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "ca-5m.7a", 0x080000, 0x66d4cc37, BRF_GRA | CPS1_TILES },
- { "ca-7m.9a", 0x080000, 0xb6f896f2, BRF_GRA | CPS1_TILES },
- { "ca-1m.3a", 0x080000, 0x4d0620fd, BRF_GRA | CPS1_TILES },
- { "ca-3m.5a", 0x080000, 0x0b0341c3, BRF_GRA | CPS1_TILES },
-
- { "ca_9.12b", 0x010000, 0x96fe7485, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "ca_18.11c", 0x020000, 0x4a613a2c, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "ca_19.12c", 0x020000, 0x74584493, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "ca24b.1a", 0x000117, 0x76ec0b1c, BRF_OPT }, // b-board PLDs
- { "iob1.11e", 0x000117, 0x3abc0700, BRF_OPT },
-};
-
-STD_ROM_PICK(Cawing)
-STD_ROM_FN(Cawing)
-
-static struct BurnRomInfo Cawingr1RomDesc[] = {
- { "cae_30.11f", 0x020000, 0x23305cd5, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "cae_35.11h", 0x020000, 0x69419113, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "cae_31.12f", 0x020000, 0x9008dfb3, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "cae_36.12h", 0x020000, 0x4dbf6f8e, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "ca-32m.8h", 0x080000, 0x0c4837d4, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "ca-5m.7a", 0x080000, 0x66d4cc37, BRF_GRA | CPS1_TILES },
- { "ca-7m.9a", 0x080000, 0xb6f896f2, BRF_GRA | CPS1_TILES },
- { "ca-1m.3a", 0x080000, 0x4d0620fd, BRF_GRA | CPS1_TILES },
- { "ca-3m.5a", 0x080000, 0x0b0341c3, BRF_GRA | CPS1_TILES },
-
- { "cae_09.12b", 0x010000, 0x96fe7485, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "cae_18.11c", 0x020000, 0x4a613a2c, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "cae_19.12c", 0x020000, 0x74584493, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "ca24b.1a", 0x000117, 0x76ec0b1c, BRF_OPT }, // b-board PLDs
- { "iob1.11e", 0x000117, 0x3abc0700, BRF_OPT },
-};
-
-STD_ROM_PICK(Cawingr1)
-STD_ROM_FN(Cawingr1)
-
-static struct BurnRomInfo CawinguRomDesc[] = {
- { "cau_30a.11f", 0x020000, 0x91fceacd, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "cau_35a.11h", 0x020000, 0xf090d9b2, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "cau_31a.12f", 0x020000, 0xe5b75caf, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "cau_36a.12h", 0x020000, 0xc73fd713, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "ca-32m.8h", 0x080000, 0x0c4837d4, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "ca-5m.7a", 0x080000, 0x66d4cc37, BRF_GRA | CPS1_TILES },
- { "ca-7m.9a", 0x080000, 0xb6f896f2, BRF_GRA | CPS1_TILES },
- { "ca-1m.3a", 0x080000, 0x4d0620fd, BRF_GRA | CPS1_TILES },
- { "ca-3m.5a", 0x080000, 0x0b0341c3, BRF_GRA | CPS1_TILES },
-
- { "cau_09.12b", 0x010000, 0x96fe7485, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "cau_18.11c", 0x020000, 0x4a613a2c, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "cau_19.12c", 0x020000, 0x74584493, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "ca24b.1a", 0x000117, 0x76ec0b1c, BRF_OPT }, // b-board PLDs
- { "iob1.11e", 0x000117, 0x3abc0700, BRF_OPT },
-};
-
-STD_ROM_PICK(Cawingu)
-STD_ROM_FN(Cawingu)
-
-static struct BurnRomInfo CawingjRomDesc[] = {
- { "caj_36a.12f", 0x020000, 0x91fceacd, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "caj_42a.12h", 0x020000, 0x039f8362, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "caj_37a.13f", 0x020000, 0xe5b75caf, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "caj_43a.13h", 0x020000, 0xc73fd713, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "caj_34.10f", 0x020000, 0x51ea57f4, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "caj_40.10h", 0x020000, 0x2ab71ae1, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "caj_35.11f", 0x020000, 0x01d71973, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "caj_41.11h", 0x020000, 0x3a43b538, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "caj_09.4b", 0x020000, 0x41b0f9a6, BRF_GRA | CPS1_TILES },
- { "caj_01.4a", 0x020000, 0x1002d0b8, BRF_GRA | CPS1_TILES },
- { "caj_13.9b", 0x020000, 0x6f3948b2, BRF_GRA | CPS1_TILES },
- { "caj_05.9a", 0x020000, 0x207373d7, BRF_GRA | CPS1_TILES },
- { "caj_24.5e", 0x020000, 0xe356aad7, BRF_GRA | CPS1_TILES },
- { "caj_17.5c", 0x020000, 0x540f2fd8, BRF_GRA | CPS1_TILES },
- { "caj_38.8h", 0x020000, 0x2464d4ab, BRF_GRA | CPS1_TILES },
- { "caj_32.8f", 0x020000, 0x9b5836b3, BRF_GRA | CPS1_TILES },
- { "caj_10.5b", 0x020000, 0xbf8a5f52, BRF_GRA | CPS1_TILES },
- { "caj_02.5a", 0x020000, 0x125b018d, BRF_GRA | CPS1_TILES },
- { "caj_14.10b", 0x020000, 0x8458e7d7, BRF_GRA | CPS1_TILES },
- { "caj_06.10a", 0x020000, 0xcf80e164, BRF_GRA | CPS1_TILES },
- { "caj_25.7e", 0x020000, 0xcdd0204d, BRF_GRA | CPS1_TILES },
- { "caj_18.7c", 0x020000, 0x29c1d4b1, BRF_GRA | CPS1_TILES },
- { "caj_39.9h", 0x020000, 0xeea23b67, BRF_GRA | CPS1_TILES },
- { "caj_33.9f", 0x020000, 0xdde3891f, BRF_GRA | CPS1_TILES },
-
- { "caj_23.13b", 0x010000, 0x96fe7485, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "caj_30.12c", 0x020000, 0x4a613a2c, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "caj_31.13c", 0x020000, 0x74584493, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "ca22b.1a", 0x000117, 0x5152e678, BRF_OPT }, // b-board PLDs
- { "iob1.12e", 0x000117, 0x3abc0700, BRF_OPT },
-};
-
-STD_ROM_PICK(Cawingj)
-STD_ROM_FN(Cawingj)
-
-static struct BurnRomInfo CawingblRomDesc[] = {
- { "caw2.bin", 0x080000, 0x8125d3f0, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP }, // caw2
- { "caw1.bin", 0x080000, 0xb19b10ce, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP }, // caw1
-
- { "caw7.bin", 0x080000, 0xa045c689, BRF_GRA | CPS1_TILES },
- { "caw6.bin", 0x080000, 0x61192f7c, BRF_GRA | CPS1_TILES },
- { "caw5.bin", 0x080000, 0x30dd78db, BRF_GRA | CPS1_TILES },
- { "caw4.bin", 0x080000, 0x4937fc41, BRF_GRA | CPS1_TILES },
-
- { "caw3.bin", 0x020000, 0xffe16cdc, BRF_PRG | CPS1_Z80_PROGRAM },
-};
-
-STD_ROM_PICK(Cawingbl)
-STD_ROM_FN(Cawingbl)
-
-static struct BurnRomInfo Cawingb2RomDesc[] = {
- { "8.8", 0x020000, 0xf655708c, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "4.4", 0x020000, 0xa02fb5aa, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "7.7", 0x020000, 0x8c6c7430, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP }, // caw2
- { "3.3", 0x020000, 0xf585bf2c, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP }, // caw1
- { "6.6", 0x020000, 0x5fda906e, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP }, // caw2
- { "2.2", 0x020000, 0x736c1835, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP }, // caw1
- { "5.5", 0x020000, 0x76458083, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP }, // caw2
- { "1.1", 0x020000, 0xd3523f34, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP }, // caw1
-
- { "17.17", 0x020000, 0x0b538062, BRF_GRA | CPS1_TILES }, //caw7
- { "19.19", 0x020000, 0x3ad62311, BRF_GRA | CPS1_TILES }, //caw6
- { "21.21", 0x020000, 0x1b872a98, BRF_GRA | CPS1_TILES }, //caw5
- { "23.23", 0x020000, 0xad49eecd, BRF_GRA | CPS1_TILES },
- { "9.9", 0x020000, 0x8cd4df5b, BRF_GRA | CPS1_TILES }, //caw7
- { "11.11", 0x020000, 0xbf14418a, BRF_GRA | CPS1_TILES }, //caw6
- { "13.13", 0x020000, 0xcef1aab8, BRF_GRA | CPS1_TILES }, //caw5
- { "15.15", 0x020000, 0x397725dc, BRF_GRA | CPS1_TILES }, //caw4
- { "18.18", 0x020000, 0x9b14f7ed, BRF_GRA | CPS1_TILES }, //caw7
- { "20.20", 0x020000, 0x59bcc1bb, BRF_GRA | CPS1_TILES }, //caw6
- { "22.22", 0x020000, 0x23dc647a, BRF_GRA | CPS1_TILES }, //caw5
- { "24.24", 0x020000, 0xeda9fa6b, BRF_GRA | CPS1_TILES }, //caw4
- { "10.10", 0x020000, 0x17174249, BRF_GRA | CPS1_TILES }, //caw7
- { "12.12", 0x020000, 0x490440b2, BRF_GRA | CPS1_TILES }, //caw6
- { "14.14", 0x020000, 0x344a8270, BRF_GRA | CPS1_TILES }, //caw5
- { "16.16", 0x020000, 0xb991ad91, BRF_GRA | CPS1_TILES }, //caw4
-
- { "5.a", 0x020000, 0xffe16cdc, BRF_PRG | CPS1_Z80_PROGRAM },
-};
-
-STD_ROM_PICK(Cawingb2)
-STD_ROM_FN(Cawingb2)
-
-static struct BurnRomInfo Cps1demoRomDesc[] = {
- { "cd30-36.bin", 0x020000, 0x5eb617d6, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "cd35-42.bin", 0x020000, 0x1f1c0a62, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "cd31-37.bin", 0x020000, 0x7ee8cdcd, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP }, // sound rom from cps1frog ?
- { "cd36-43.bin", 0x020000, 0x7ee8cdcd, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP }, // sound rom from cps1frog ?
- { "ff-32m.8h", 0x080000, 0xc747696e, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "cd05-05m.bin", 0x080000, 0x35dc6153, BRF_GRA | CPS1_TILES },
- { "cd07-07m.bin", 0x080000, 0xbaf08a38, BRF_GRA | CPS1_TILES },
- { "cd01-01m.bin", 0x080000, 0x3ad8e790, BRF_GRA | CPS1_TILES },
- { "cd03-03m.bin", 0x080000, 0xfb5186f3, BRF_GRA | CPS1_TILES },
-
- { "ff_09.12b", 0x010000, 0xb8367eb5, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "ff_18.11c", 0x020000, 0x375c66e7, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "ff_19.12c", 0x020000, 0x1ef137f9, BRF_SND | CPS1_OKIM6295_SAMPLES },
-};
-
-STD_ROM_PICK(Cps1demo)
-STD_ROM_FN(Cps1demo)
-
-static struct BurnRomInfo Cworld2jRomDesc[] = {
- { "q5_36.12f", 0x020000, 0x38a08099, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "q5_42.12h", 0x020000, 0x4d29b3a4, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "q5_37.13f", 0x020000, 0xeb547ebc, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "q5_43.13h", 0x020000, 0x3ef65ea8, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "q5_34.10f", 0x020000, 0x7fcc1317, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "q5_40.10h", 0x020000, 0x7f14b7b4, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "q5_35.11f", 0x020000, 0xabacee26, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-// { "q5_35.11f", 0x020000, 0x59961612, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP }, // dumped from another board, 1 byte different, pcb verified
- { "q5_41.11h", 0x020000, 0xd3654067, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "q5_09.4b", 0x020000, 0x48496d80, BRF_GRA | CPS1_TILES },
- { "q5_01.4a", 0x020000, 0xc5453f56, BRF_GRA | CPS1_TILES },
- { "q5_13.9b", 0x020000, 0xc741ac52, BRF_GRA | CPS1_TILES },
- { "q5_05.9a", 0x020000, 0x143e068f, BRF_GRA | CPS1_TILES },
- { "q5_24.5e", 0x020000, 0xb419d139, BRF_GRA | CPS1_TILES },
- { "q5_17.5c", 0x020000, 0xbd3b4d11, BRF_GRA | CPS1_TILES },
- { "q5_38.8h", 0x020000, 0x9c24670c, BRF_GRA | CPS1_TILES },
- { "q5_32.8f", 0x020000, 0x3ef9c7c2, BRF_GRA | CPS1_TILES },
- { "q5_10.5b", 0x020000, 0x119e5e93, BRF_GRA | CPS1_TILES },
- { "q5_02.5a", 0x020000, 0xa2cadcbe, BRF_GRA | CPS1_TILES },
- { "q5_14.10b", 0x020000, 0xa8755f82, BRF_GRA | CPS1_TILES },
- { "q5_06.10a", 0x020000, 0xc92a91fc, BRF_GRA | CPS1_TILES },
- { "q5_25.7e", 0x020000, 0x979237cb, BRF_GRA | CPS1_TILES },
- { "q5_18.7c", 0x020000, 0xc57da03c, BRF_GRA | CPS1_TILES },
- { "q5_39.9h", 0x020000, 0xa5839b25, BRF_GRA | CPS1_TILES },
- { "q5_33.9f", 0x020000, 0x04d03930, BRF_GRA | CPS1_TILES },
-
- { "q5_23.13b", 0x010000, 0xe14dc524, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "q5_30.12c", 0x020000, 0xd10c1b68, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "q5_31.13c", 0x020000, 0x7d17e496, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "q522b.1a", 0x000117, 0x00000000, BRF_OPT | BRF_NODUMP}, // b-board PLDs
- { "lwio.12e", 0x000117, 0xad52b90c, BRF_OPT },
- { "ioc1.ic1", 0x000117, 0x0d182081, BRF_OPT }, // c-board PLDs
-};
-
-STD_ROM_PICK(Cworld2j)
-STD_ROM_FN(Cworld2j)
-
-static struct BurnRomInfo Cworld2jaRomDesc[] = {
-/* B-Board 90629B-3 - all roms have 90629B on the labels, no battery, possibly unofficial / desuicided with reproduction stickers */
- { "q5 - 34_90629b.8f", 0x080000, 0xde54487f, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "q5 - 33_90629b.6f", 0x080000, 0x93248458, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "q5 - 06_90629b.8a", 0x080000, 0x09d0e7ce, BRF_GRA | CPS1_TILES },
- { "q5 - 08_90629b.10a", 0x080000, 0x22e4ce9a, BRF_GRA | CPS1_TILES },
- { "q5 - 05_90629b.7a", 0x080000, 0xf7b3aed6, BRF_GRA | CPS1_TILES },
- { "q5 - 07_90629b.9a", 0x080000, 0x520c6c88, BRF_GRA | CPS1_TILES },
-
- { "q5 - 09_90629b.12a", 0x010000, 0xe14dc524, BRF_PRG | CPS1_Z80_PROGRAM }, // == q5_23.13b
-
- { "q5 - 18_90629b.11c", 0x020000, 0xd10c1b68, BRF_SND | CPS1_OKIM6295_SAMPLES }, // == q5_30.12c
- { "q5 - 19_90629b.12c", 0x020000, 0x7d17e496, BRF_SND | CPS1_OKIM6295_SAMPLES }, // == q5_31.13c
-
- A_BOARD_PLDS
-
- { "q529b.1a", 0x000117, 0x00000000, BRF_OPT | BRF_NODUMP}, // b-board PLDs
- { "iob1.11d", 0x000117, 0x3abc0700, BRF_OPT },
- { "ioc1.ic1", 0x000117, 0x0d182081, BRF_OPT }, // c-board PLDs
-};
-
-STD_ROM_PICK(Cworld2ja)
-STD_ROM_FN(Cworld2ja)
-
-static struct BurnRomInfo Cworld2jbRomDesc[] = {
-/* B-Board 91634B-2 - all roms have 91634B on the labels */
- { "q5 - 23_91634b.8f", 0x080000, 0x709f577f, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "q5 - 22_91634b.7f", 0x080000, 0x93248458, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "q5 - 01_91634b.3a", 0x080000, 0x09d0e7ce, BRF_GRA | CPS1_TILES },
- { "q5 - 02_91634b.4a", 0x080000, 0x22e4ce9a, BRF_GRA | CPS1_TILES },
- { "q5 - 03_91634b.5a", 0x080000, 0xf7b3aed6, BRF_GRA | CPS1_TILES },
- { "q5 - 04_91634b.6a", 0x080000, 0x520c6c88, BRF_GRA | CPS1_TILES },
-
- { "q5 - 09_91634b.12a", 0x010000, 0xe14dc524, BRF_PRG | CPS1_Z80_PROGRAM }, // == q5_23.13b
-
- { "q5 - 18_91634b.11c", 0x020000, 0xd10c1b68, BRF_SND | CPS1_OKIM6295_SAMPLES }, // == q5_30.12c
- { "q5 - 19_91634b.12c", 0x020000, 0x7d17e496, BRF_SND | CPS1_OKIM6295_SAMPLES }, // == q5_31.13c
-
- A_BOARD_PLDS
-
- { "q563b.1a", 0x000117, 0x00000000, BRF_OPT | BRF_NODUMP}, // b-board PLDs
- { "iob1.12d", 0x000117, 0x3abc0700, BRF_OPT },
- { "bprg1.11d", 0x000117, 0x31793da7, BRF_OPT },
- { "ioc1.ic7", 0x000117, 0x0d182081, BRF_OPT }, // c-board PLDs
- { "c632.ic1", 0x000117, 0x0fbd9270, BRF_OPT },
-};
-
-STD_ROM_PICK(Cworld2jb)
-STD_ROM_FN(Cworld2jb)
-
-static struct BurnRomInfo DinoRomDesc[] = {
- { "cde_23a.8f", 0x080000, 0x8f4e585e, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "cde_22a.7f", 0x080000, 0x9278aa12, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "cde_21a.6f", 0x080000, 0x66d23de2, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "cd-1m.3a", 0x080000, 0x8da4f917, BRF_GRA | CPS1_TILES },
- { "cd-3m.5a", 0x080000, 0x6c40f603, BRF_GRA | CPS1_TILES },
- { "cd-2m.4a", 0x080000, 0x09c8fc2d, BRF_GRA | CPS1_TILES },
- { "cd-4m.6a", 0x080000, 0x637ff38f, BRF_GRA | CPS1_TILES },
- { "cd-5m.7a", 0x080000, 0x470befee, BRF_GRA | CPS1_TILES },
- { "cd-7m.9a", 0x080000, 0x22bfb7a3, BRF_GRA | CPS1_TILES },
- { "cd-6m.8a", 0x080000, 0xe7599ac4, BRF_GRA | CPS1_TILES },
- { "cd-8m.10a", 0x080000, 0x211b4b15, BRF_GRA | CPS1_TILES },
-
- { "cd_q.5k", 0x020000, 0x605fdb0b, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "cd-q1.1k", 0x080000, 0x60927775, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "cd-q2.2k", 0x080000, 0x770f4c47, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "cd-q3.3k", 0x080000, 0x2f273ffc, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "cd-q4.4k", 0x080000, 0x2c67821d, BRF_SND | CPS1_QSOUND_SAMPLES },
-
- A_BOARD_QSOUND_PLDS
-
- { "cd63b.1a", 0x000117, 0xef72e902, BRF_OPT }, // b-board PLDs
- { "iob1.12d", 0x000117, 0x3abc0700, BRF_OPT },
- { "bprg1.11d", 0x000117, 0x31793da7, BRF_OPT },
- { "ioc1.ic1", 0x000117, 0x0d182081, BRF_OPT }, // c-board PLDs
- { "d7l1.7l", 0x000117, 0x27b7410d, BRF_OPT }, // d-board PLDs
- { "d8l1.8l", 0x000117, 0x539fc7da, BRF_OPT },
- { "d9k2.9k", 0x000117, 0xcd85a156, BRF_OPT },
- { "d10f1.10f", 0x000117, 0x6619c494, BRF_OPT },
-};
-
-STD_ROM_PICK(Dino)
-STD_ROM_FN(Dino)
-
-static struct BurnRomInfo DinoaRomDesc[] = {
- { "23.bin", 0x080000, 0xf477f7a0, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "22.bin", 0x080000, 0x1e534ca5, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "cdj_21a.6f", 0x080000, 0x66d23de2, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "cd_01.3a", 0x080000, 0x8da4f917, BRF_GRA | CPS1_TILES },
- { "cd_02.4a", 0x080000, 0x6c40f603, BRF_GRA | CPS1_TILES },
- { "cd_03.5a", 0x080000, 0x09c8fc2d, BRF_GRA | CPS1_TILES },
- { "cd_04.6a", 0x080000, 0x637ff38f, BRF_GRA | CPS1_TILES },
- { "cd_05.7a", 0x080000, 0x470befee, BRF_GRA | CPS1_TILES },
- { "cd_06.8a", 0x080000, 0x22bfb7a3, BRF_GRA | CPS1_TILES },
- { "cd_07.9a", 0x080000, 0xe7599ac4, BRF_GRA | CPS1_TILES },
- { "cd_08.10a", 0x080000, 0x211b4b15, BRF_GRA | CPS1_TILES },
-
- { "cd_q.5k", 0x020000, 0x605fdb0b, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "cd-q1.1k", 0x080000, 0x60927775, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "cd-q2.2k", 0x080000, 0x770f4c47, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "cd-q3.3k", 0x080000, 0x2f273ffc, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "cd-q4.4k", 0x080000, 0x2c67821d, BRF_SND | CPS1_QSOUND_SAMPLES },
-
- A_BOARD_QSOUND_PLDS
-
- { "cd63b.1a", 0x000117, 0xef72e902, BRF_OPT }, // b-board PLDs
- { "iob1.12d", 0x000117, 0x3abc0700, BRF_OPT },
- { "bprg1.11d", 0x000117, 0x31793da7, BRF_OPT },
- { "ioc1.ic1", 0x000117, 0x0d182081, BRF_OPT }, // c-board PLDs
- { "d7l1.7l", 0x000117, 0x27b7410d, BRF_OPT }, // d-board PLDs
- { "d8l1.8l", 0x000117, 0x539fc7da, BRF_OPT },
- { "d9k2.9k", 0x000117, 0xcd85a156, BRF_OPT },
- { "d10f1.10f", 0x000117, 0x6619c494, BRF_OPT },
-};
-
-STD_ROM_PICK(Dinoa)
-STD_ROM_FN(Dinoa)
-
-static struct BurnRomInfo DinojRomDesc[] = {
- { "cdj_23a.8f", 0x080000, 0x5f3ece96, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "cdj_22a.7f", 0x080000, 0xa0d8de29, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "cdj_21a.6f", 0x080000, 0x66d23de2, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "cd_01.3a", 0x080000, 0x8da4f917, BRF_GRA | CPS1_TILES },
- { "cd_02.4a", 0x080000, 0x6c40f603, BRF_GRA | CPS1_TILES },
- { "cd_03.5a", 0x080000, 0x09c8fc2d, BRF_GRA | CPS1_TILES },
- { "cd_04.6a", 0x080000, 0x637ff38f, BRF_GRA | CPS1_TILES },
- { "cd_05.7a", 0x080000, 0x470befee, BRF_GRA | CPS1_TILES },
- { "cd_06.8a", 0x080000, 0x22bfb7a3, BRF_GRA | CPS1_TILES },
- { "cd_07.9a", 0x080000, 0xe7599ac4, BRF_GRA | CPS1_TILES },
- { "cd_08.10a", 0x080000, 0x211b4b15, BRF_GRA | CPS1_TILES },
-
- { "cd_q.5k", 0x020000, 0x605fdb0b, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "cd-q1.1k", 0x080000, 0x60927775, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "cd-q2.2k", 0x080000, 0x770f4c47, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "cd-q3.3k", 0x080000, 0x2f273ffc, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "cd-q4.4k", 0x080000, 0x2c67821d, BRF_SND | CPS1_QSOUND_SAMPLES },
-
- A_BOARD_QSOUND_PLDS
-
- { "cd63b.1a", 0x000117, 0xef72e902, BRF_OPT }, // b-board PLDs
- { "iob1.12d", 0x000117, 0x3abc0700, BRF_OPT },
- { "bprg1.11d", 0x000117, 0x31793da7, BRF_OPT },
- { "ioc1.ic1", 0x000117, 0x0d182081, BRF_OPT }, // c-board PLDs
- { "d7l1.7l", 0x000117, 0x27b7410d, BRF_OPT }, // d-board PLDs
- { "d8l1.8l", 0x000117, 0x539fc7da, BRF_OPT },
- { "d9k2.9k", 0x000117, 0xcd85a156, BRF_OPT },
- { "d10f1.10f", 0x000117, 0x6619c494, BRF_OPT },
-};
-
-STD_ROM_PICK(Dinoj)
-STD_ROM_FN(Dinoj)
-
-static struct BurnRomInfo DinouRomDesc[] = {
- { "cdu_23a.8f", 0x080000, 0x7c2543cd, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "cdu_22a.7f", 0x080000, 0xd19f981e, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "cdu_21a.6f", 0x080000, 0x66d23de2, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "cd-1m.3a", 0x080000, 0x8da4f917, BRF_GRA | CPS1_TILES },
- { "cd-3m.5a", 0x080000, 0x6c40f603, BRF_GRA | CPS1_TILES },
- { "cd-2m.4a", 0x080000, 0x09c8fc2d, BRF_GRA | CPS1_TILES },
- { "cd-4m.6a", 0x080000, 0x637ff38f, BRF_GRA | CPS1_TILES },
- { "cd-5m.7a", 0x080000, 0x470befee, BRF_GRA | CPS1_TILES },
- { "cd-7m.9a", 0x080000, 0x22bfb7a3, BRF_GRA | CPS1_TILES },
- { "cd-6m.8a", 0x080000, 0xe7599ac4, BRF_GRA | CPS1_TILES },
- { "cd-8m.10a", 0x080000, 0x211b4b15, BRF_GRA | CPS1_TILES },
-
- { "cd_q.5k", 0x020000, 0x605fdb0b, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "cd-q1.1k", 0x080000, 0x60927775, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "cd-q2.2k", 0x080000, 0x770f4c47, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "cd-q3.3k", 0x080000, 0x2f273ffc, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "cd-q4.4k", 0x080000, 0x2c67821d, BRF_SND | CPS1_QSOUND_SAMPLES },
-
- A_BOARD_QSOUND_PLDS
-
- { "cd63b.1a", 0x000117, 0xef72e902, BRF_OPT }, // b-board PLDs
- { "iob1.12d", 0x000117, 0x3abc0700, BRF_OPT },
- { "bprg1.11d", 0x000117, 0x31793da7, BRF_OPT },
- { "ioc1.ic1", 0x000117, 0x0d182081, BRF_OPT }, // c-board PLDs
- { "d7l1.7l", 0x000117, 0x27b7410d, BRF_OPT }, // d-board PLDs
- { "d8l1.8l", 0x000117, 0x539fc7da, BRF_OPT },
- { "d9k2.9k", 0x000117, 0xcd85a156, BRF_OPT },
- { "d10f1.10f", 0x000117, 0x6619c494, BRF_OPT },
-};
-
-STD_ROM_PICK(Dinou)
-STD_ROM_FN(Dinou)
-
-static struct BurnRomInfo DinopicRomDesc[] = {
- // This set is also known as dinob
- { "5.bin", 0x080000, 0x96dfcbf1, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "3.bin", 0x080000, 0x13dfeb08, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "7.bin", 0x080000, 0x6133f349, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "2.bin", 0x080000, 0x0e4058ba, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "4.bin", 0x080000, 0xf3c2c98d, BRF_GRA | CPS1_TILES },
- { "8.bin", 0x080000, 0xd574befc, BRF_GRA | CPS1_TILES },
- { "9.bin", 0x080000, 0x55ef0adc, BRF_GRA | CPS1_TILES },
- { "6.bin", 0x080000, 0xcc0805fc, BRF_GRA | CPS1_TILES },
- { "13.bin", 0x080000, 0x1371f714, BRF_GRA | CPS1_TILES },
- { "12.bin", 0x080000, 0xb284c4a7, BRF_GRA | CPS1_TILES },
- { "11.bin", 0x080000, 0xb7ad3394, BRF_GRA | CPS1_TILES },
- { "10.bin", 0x080000, 0x88847705, BRF_GRA | CPS1_TILES },
-
- { "pic16c57-rp", 0x002d4c, 0x5a6d393c, BRF_PRG | CPS1_PIC },
-
- { "1.bin", 0x080000, 0x7d921309, BRF_SND | CPS1_OKIM6295_SAMPLES },
-};
-
-STD_ROM_PICK(Dinopic)
-STD_ROM_FN(Dinopic)
-
-static struct BurnRomInfo Dinopic2RomDesc[] = {
- { "27c4000-m12481.bin", 0x080000, 0x96dfcbf1, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "27c4000-m12374r-2.bin", 0x080000, 0x13dfeb08, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "27c4000-m12374r-3.bin", 0x080000, 0x6133f349, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "27c4000-m12374r-1.bin", 0x080000, 0x0e4058ba, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "27c4000-m12481-4.bin", 0x080000, 0xf3c2c98d, BRF_GRA | CPS1_TILES },
-#if !defined ROM_VERIFY
- { "27c4000-m12481-3.bin", 0x080000, 0xd574befc, BRF_GRA | CPS1_TILES },
-#else
- { "27c4000-m12481-3.bin", 0x080000, 0x417a4816, BRF_GRA | CPS1_TILES },
-#endif
- { "27c4000-m12481-2.bin", 0x080000, 0x55ef0adc, BRF_GRA | CPS1_TILES },
- { "27c4000-m12481-1.bin", 0x080000, 0xcc0805fc, BRF_GRA | CPS1_TILES },
- { "27c4000-m12481-8.bin", 0x080000, 0x1371f714, BRF_GRA | CPS1_TILES },
- { "27c4000-m12481-7.bin", 0x080000, 0xb284c4a7, BRF_GRA | CPS1_TILES },
- { "27c4000-m12481-6.bin", 0x080000, 0xb7ad3394, BRF_GRA | CPS1_TILES },
- { "27c4000-m12481-5.bin", 0x080000, 0x88847705, BRF_GRA | CPS1_TILES },
-
- { "pic16c57-xt.hex", 0x0026cc, 0xa6a5eac4, BRF_PRG | CPS1_PIC },
-
- { "27c4000-m12623.bin", 0x080000, 0x7d921309, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- { "cat93c46p.bin", 0x000080, 0xd49fa351, BRF_OPT },
- { "gal20v8a-1.bin", 0x000157, 0xcd99ca47, BRF_OPT },
- { "gal20v8a-2.bin", 0x000157, 0x60d016b9, BRF_OPT },
- { "gal20v8a-3.bin", 0x000157, 0x049b7f4f, BRF_OPT },
- { "palce16v8h-1.bin", 0x000117, 0x48253c66, BRF_OPT },
- { "palce16v8h-2.bin", 0x000117, 0x9ae375ba, BRF_OPT },
-};
-
-STD_ROM_PICK(Dinopic2)
-STD_ROM_FN(Dinopic2)
-
-static struct BurnRomInfo Dinopic3RomDesc[] = {
- { "27c4000-m15377-a-5.bin", 0x080000, 0x96dfcbf1, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "27c4000-m15262-a-3.bin", 0x080000, 0x13dfeb08, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "27c4000-m15295-a-4.bin", 0x080000, 0x6133f349, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "27c4000-m15263-a-1-2.bin", 0x080000, 0x0e4058ba, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "27c4000-m15263-a-1-9.bin", 0x080000, 0xf3c2c98d, BRF_GRA | CPS1_TILES },
- { "27c4000-m15262-a-8.bin", 0x080000, 0xa0e1f6e0, BRF_GRA | CPS1_TILES },
- { "27c4000-m15279-a-7.bin", 0x080000, 0x55ef0adc, BRF_GRA | CPS1_TILES },
- { "27c4000-m15279-a-6.bin", 0x080000, 0xcc0805fc, BRF_GRA | CPS1_TILES },
- { "27c4000-m15013-b-1-13.bin", 0x080000, 0x1371f714, BRF_GRA | CPS1_TILES },
- { "27c4000-m15263-a-1-12.bin", 0x080000, 0xb284c4a7, BRF_GRA | CPS1_TILES },
- { "27c4000-m15377-a-11.bin", 0x080000, 0xb7ad3394, BRF_GRA | CPS1_TILES },
- { "27c4000-m15279-a-10.bin", 0x080000, 0x88847705, BRF_GRA | CPS1_TILES },
-
- { "pic16c57-rc.bin", 0x001030, 0x4d262eaa, BRF_PRG | CPS1_PIC },
-
- { "27c4000-m15388-a-1.bin", 0x080000, 0x7d921309, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- { "cat93c46p.bin", 0x000080, 0xd49fa351, BRF_OPT },
- { "gal20v8a-1.bin", 0x000157, 0xcd99ca47, BRF_OPT },
- { "gal20v8a-2.bin", 0x000157, 0x60d016b9, BRF_OPT },
- { "gal20v8a-3.bin", 0x000157, 0x049b7f4f, BRF_OPT },
- { "palce16v8h-1.bin", 0x000117, 0x48253c66, BRF_OPT },
- { "palce16v8h-2.bin", 0x000117, 0x9ae375ba, BRF_OPT },
-};
-
-STD_ROM_PICK(Dinopic3)
-STD_ROM_FN(Dinopic3)
-
-static struct BurnRomInfo Dinopic4RomDesc[] = {
- { "cad_28.bin", 0x040000, 0x97dc3d86, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "cad_32.bin", 0x040000, 0x200a594f, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "cad_29.bin", 0x040000, 0x302303c4, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "cad_33.bin", 0x040000, 0x5bf6deda, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "cad_31.bin", 0x020000, 0xf0110c8a, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "cad_35.bin", 0x020000, 0xfbcf4314, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "cad_30.bin", 0x020000, 0xbbcafc3b, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "cad_34.bin", 0x020000, 0x481369b8, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "cad_24.bin", 0x040000, 0xe59e0066, BRF_GRA | CPS1_TILES },
- { "cad_20.bin", 0x040000, 0x779bffb2, BRF_GRA | CPS1_TILES },
- { "cad_14.bin", 0x040000, 0x79b60fc5, BRF_GRA | CPS1_TILES },
- { "cad_10.bin", 0x040000, 0x9d5b2ed4, BRF_GRA | CPS1_TILES },
- { "cad_26.bin", 0x040000, 0x2db8cb57, BRF_GRA | CPS1_TILES },
- { "cad_22.bin", 0x040000, 0xb58c4246, BRF_GRA | CPS1_TILES },
- { "cad_16.bin", 0x040000, 0x569e5cf0, BRF_GRA | CPS1_TILES },
- { "cad_12.bin", 0x040000, 0x33ed501d, BRF_GRA | CPS1_TILES },
- { "cad_25.bin", 0x040000, 0x900b82b7, BRF_GRA | CPS1_TILES },
- { "cad_21.bin", 0x040000, 0xd65ee299, BRF_GRA | CPS1_TILES },
- { "cad_15.bin", 0x040000, 0xaa54f07c, BRF_GRA | CPS1_TILES },
- { "cad_11.bin", 0x040000, 0x8594b5e8, BRF_GRA | CPS1_TILES },
- { "cad_27.bin", 0x040000, 0x27492fde, BRF_GRA | CPS1_TILES },
- { "cad_23.bin", 0x040000, 0xf07c16f2, BRF_GRA | CPS1_TILES },
- { "cad_17.bin", 0x040000, 0x920df2fd, BRF_GRA | CPS1_TILES },
- { "cad_13.bin", 0x040000, 0x07a564b4, BRF_GRA | CPS1_TILES },
-
- { "cad_09.bin", 0x010000, 0x46546432, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "cad_18.bin", 0x020000, 0xbd12c2ce, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "cad_19.bin", 0x020000, 0x9233de5a, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- { "pic16c57-rp", 0x000000, 0x00000000, BRF_PRG | BRF_NODUMP },
-};
-
-STD_ROM_PICK(Dinopic4)
-STD_ROM_FN(Dinopic4)
-
-static struct BurnRomInfo DinohRomDesc[] = {
- { "cda_23h.rom", 0x080000, 0x8e2a9cf0, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "cda_22h.rom", 0x080000, 0xf72cd219, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "cda_21h.rom", 0x080000, 0xbc275b76, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "cda_20h.rom", 0x080000, 0x8987c975, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "cd_gfx01.rom", 0x080000, 0x8da4f917, BRF_GRA | CPS1_TILES },
- { "cd_gfx03.rom", 0x080000, 0x6c40f603, BRF_GRA | CPS1_TILES },
- { "cd_gfx02.rom", 0x080000, 0x09c8fc2d, BRF_GRA | CPS1_TILES },
- { "cd_gfx04.rom", 0x080000, 0x637ff38f, BRF_GRA | CPS1_TILES },
- { "cd_gfx05.rom", 0x080000, 0x470befee, BRF_GRA | CPS1_TILES },
- { "cd_gfx07.rom", 0x080000, 0x22bfb7a3, BRF_GRA | CPS1_TILES },
- { "cd_gfx06.rom", 0x080000, 0xe7599ac4, BRF_GRA | CPS1_TILES },
- { "cd_gfx08.rom", 0x080000, 0x211b4b15, BRF_GRA | CPS1_TILES },
-
- // This doesn't work at all without the Q-Sound data present - does it really use Q-Sound??
- { "cd_q.rom", 0x020000, 0x605fdb0b, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "cd_q1.rom", 0x080000, 0x60927775, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "cd_q2.rom", 0x080000, 0x770f4c47, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "cd_q3.rom", 0x080000, 0x2f273ffc, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "cd_q4.rom", 0x080000, 0x2c67821d, BRF_SND | CPS1_QSOUND_SAMPLES },
-};
-
-STD_ROM_PICK(Dinoh)
-STD_ROM_FN(Dinoh)
-
-static struct BurnRomInfo DinotRomDesc[] = {
- // This set is also known as Kl2d
- { "kl2-r1.800", 0x100000, 0x4c70dca7, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "kl2-l2.800", 0x100000, 0xc6ae7338, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "cd-a.160", 0x200000, 0x7e4f9fb3, BRF_GRA | CPS1_TILES },
- { "cd-b.160", 0x200000, 0x89532d85, BRF_GRA | CPS1_TILES },
-
- { "cd_q.rom", 0x020000, 0x605fdb0b, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "cd_q1.rom", 0x080000, 0x60927775, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "cd_q2.rom", 0x080000, 0x770f4c47, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "cd_q3.rom", 0x080000, 0x2f273ffc, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "cd_q4.rom", 0x080000, 0x2c67821d, BRF_SND | CPS1_QSOUND_SAMPLES },
-};
-
-STD_ROM_PICK(Dinot)
-STD_ROM_FN(Dinot)
-
-static struct BurnRomInfo DinotpicRomDesc[] = {
- { "cd-d.800", 0x100000, 0x2a7b2915, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "cd-e.800", 0x100000, 0xe8370226, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "cd-a.160", 0x200000, 0x7e4f9fb3, BRF_GRA | CPS1_TILES },
- { "cd-b.160", 0x200000, 0x89532d85, BRF_GRA | CPS1_TILES },
-};
-
-STD_ROM_PICK(Dinotpic)
-STD_ROM_FN(Dinotpic)
-
-static struct BurnRomInfo DinohuntRomDesc[] = {
- { "u23", 0x080000, 0x8d5ddc5d, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "u22", 0x080000, 0xf72cd219, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "u21", 0x080000, 0xbc275b76, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "u20", 0x080000, 0x8987c975, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "u1", 0x080000, 0xa01a9fb5, BRF_GRA | CPS1_TILES },
- { "u2", 0x080000, 0xbdf02c17, BRF_GRA | CPS1_TILES },
- { "u3", 0x080000, 0x058beefa, BRF_GRA | CPS1_TILES },
- { "u4", 0x080000, 0x5028a9f1, BRF_GRA | CPS1_TILES },
- { "u5", 0x080000, 0xd77f89ea, BRF_GRA | CPS1_TILES },
- { "u6", 0x080000, 0xbfbcb034, BRF_GRA | CPS1_TILES },
- { "u7", 0x080000, 0xa2544d4e, BRF_GRA | CPS1_TILES },
- { "u8", 0x080000, 0x8869bbb1, BRF_GRA | CPS1_TILES },
-
- { "u9", 0x010000, 0x2eb16a83, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "u18", 0x020000, 0x8d2899ba, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "u19", 0x020000, 0xb34a4b42, BRF_SND | CPS1_OKIM6295_SAMPLES },
-};
-
-STD_ROM_PICK(Dinohunt)
-STD_ROM_FN(Dinohunt)
-
-static struct BurnRomInfo DinoehRomDesc[] = {
- { "dinoeh.23", 0x080000, 0xa6b88364, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "cde_22a.rom", 0x080000, 0x9278aa12, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "dinoeh.21", 0x080000, 0xb89a0548, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "cd_gfx01.rom", 0x080000, 0x8da4f917, BRF_GRA | CPS1_TILES },
- { "cd_gfx03.rom", 0x080000, 0x6c40f603, BRF_GRA | CPS1_TILES },
- { "cd_gfx02.rom", 0x080000, 0x09c8fc2d, BRF_GRA | CPS1_TILES },
- { "cd_gfx04.rom", 0x080000, 0x637ff38f, BRF_GRA | CPS1_TILES },
- { "cd_gfx05.rom", 0x080000, 0x470befee, BRF_GRA | CPS1_TILES },
- { "cd_gfx07.rom", 0x080000, 0x22bfb7a3, BRF_GRA | CPS1_TILES },
- { "cd_gfx06.rom", 0x080000, 0xe7599ac4, BRF_GRA | CPS1_TILES },
- { "cd_gfx08.rom", 0x080000, 0x211b4b15, BRF_GRA | CPS1_TILES },
-
- { "cd_q.rom", 0x020000, 0x605fdb0b, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "cd_q1.rom", 0x080000, 0x60927775, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "cd_q2.rom", 0x080000, 0x770f4c47, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "cd_q3.rom", 0x080000, 0x2f273ffc, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "cd_q4.rom", 0x080000, 0x2c67821d, BRF_SND | CPS1_QSOUND_SAMPLES },
-};
-
-STD_ROM_PICK(Dinoeh)
-STD_ROM_FN(Dinoeh)
-
-static struct BurnRomInfo DinohcRomDesc[] = {
- { "23", 0x080000, 0xcecf4b12, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "22", 0x080000, 0x07eeb238, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "21", 0x080000, 0x3bc3d57a, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "1", 0x080000, 0x8da4f917, BRF_GRA | CPS1_TILES },
- { "2", 0x080000, 0x6c40f603, BRF_GRA | CPS1_TILES },
- { "3", 0x080000, 0x09c8fc2d, BRF_GRA | CPS1_TILES },
- { "4", 0x080000, 0x637ff38f, BRF_GRA | CPS1_TILES },
- { "5", 0x080000, 0x470befee, BRF_GRA | CPS1_TILES },
- { "6", 0x080000, 0x22bfb7a3, BRF_GRA | CPS1_TILES },
- { "7", 0x080000, 0xe7599ac4, BRF_GRA | CPS1_TILES },
- { "8", 0x080000, 0x211b4b15, BRF_GRA | CPS1_TILES },
-
- { "9", 0x010000, 0x698e8b58, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "18", 0x020000, 0x6de2c2db, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "19", 0x020000, 0xb99091ae, BRF_SND | CPS1_OKIM6295_SAMPLES },
-};
-
-STD_ROM_PICK(Dinohc)
-STD_ROM_FN(Dinohc)
-
-static struct BurnRomInfo DynwarRomDesc[] = {
- { "30.11f", 0x020000, 0xf9ec6d68, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "35.11h", 0x020000, 0xe41fff2f, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "31.12f", 0x020000, 0xe3de76ff, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "36.12h", 0x020000, 0x7a13cfbf, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "tkm-9.8h", 0x080000, 0x93654bcf, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "tkm-5.7a", 0x080000, 0xf64bb6a0, BRF_GRA | CPS1_TILES },
- { "tkm-8.9a", 0x080000, 0x21fe6274, BRF_GRA | CPS1_TILES },
- { "tkm-6.3a", 0x080000, 0x0bf228cb, BRF_GRA | CPS1_TILES },
- { "tkm-7.5a", 0x080000, 0x1255dfb1, BRF_GRA | CPS1_TILES },
- { "tkm-1.8a", 0x080000, 0x44f7661e, BRF_GRA | CPS1_TILES },
- { "tkm-4.10a", 0x080000, 0xa54c515d, BRF_GRA | CPS1_TILES },
- { "tkm-2.4a", 0x080000, 0xca5c687c, BRF_GRA | CPS1_TILES },
- { "tkm-3.6a", 0x080000, 0xf9fe6591, BRF_GRA | CPS1_TILES },
-
- { "tke_17.12b", 0x010000, 0xb3b79d4f, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "tke_18.11c", 0x020000, 0xac6e307d, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "tke_19.12c", 0x020000, 0x068741db, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "tk24b1.1a", 0x000117, 0xae4a7645, BRF_OPT }, // b-board PLDs
- { "lwio.11e", 0x000117, 0xad52b90c, BRF_OPT },
-};
-
-STD_ROM_PICK(Dynwar)
-STD_ROM_FN(Dynwar)
-
-static struct BurnRomInfo DynwaraRomDesc[] = {
- { "tke_36.12f", 0x020000, 0x895991d1, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "tke_42.12h", 0x020000, 0xc898d2e8, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "tke_37.13f", 0x020000, 0xb228d58c, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "tke_43.13h", 0x020000, 0x1a14375a, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "34.10f", 0x020000, 0x8f663d00, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "40.10h", 0x020000, 0x1586dbf3, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "35.11f", 0x020000, 0x9db93d7a, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "41.11h", 0x020000, 0x1aae69a4, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "09.4b", 0x020000, 0xc3e83c69, BRF_GRA | CPS1_TILES },
- { "01.4a", 0x020000, 0x187b2886, BRF_GRA | CPS1_TILES },
- { "13.9b", 0x020000, 0x0273d87d, BRF_GRA | CPS1_TILES },
- { "05.9a", 0x020000, 0x339378b8, BRF_GRA | CPS1_TILES },
- { "24.5e", 0x020000, 0xc6909b6f, BRF_GRA | CPS1_TILES },
- { "17.5c", 0x020000, 0x2e2f8320, BRF_GRA | CPS1_TILES },
- { "38.8h", 0x020000, 0xcd7923ed, BRF_GRA | CPS1_TILES },
- { "32.8f", 0x020000, 0x21a0a453, BRF_GRA | CPS1_TILES },
- { "10.5b", 0x020000, 0xff28f8d0, BRF_GRA | CPS1_TILES },
- { "02.5a", 0x020000, 0xcc83c02f, BRF_GRA | CPS1_TILES },
- { "14.10b", 0x020000, 0x58d9b32f, BRF_GRA | CPS1_TILES },
- { "06.10a", 0x020000, 0x6f9edd75, BRF_GRA | CPS1_TILES },
- { "25.7e", 0x020000, 0x152ea74a, BRF_GRA | CPS1_TILES },
- { "18.7c", 0x020000, 0x1833f932, BRF_GRA | CPS1_TILES },
- { "39.9h", 0x020000, 0xbc09b360, BRF_GRA | CPS1_TILES },
- { "33.9f", 0x020000, 0x89de1533, BRF_GRA | CPS1_TILES },
- { "11.7b", 0x020000, 0x29eaf490, BRF_GRA | CPS1_TILES },
- { "03.7a", 0x020000, 0x7bf51337, BRF_GRA | CPS1_TILES },
- { "15.11b", 0x020000, 0xd36cdb91, BRF_GRA | CPS1_TILES },
- { "07.11a", 0x020000, 0xe04af054, BRF_GRA | CPS1_TILES },
- { "26.8e", 0x020000, 0x07fc714b, BRF_GRA | CPS1_TILES },
- { "19.8c", 0x020000, 0x7114e5c6, BRF_GRA | CPS1_TILES },
- { "28.10e", 0x020000, 0xaf62bf07, BRF_GRA | CPS1_TILES },
- { "21.10c", 0x020000, 0x523f462a, BRF_GRA | CPS1_TILES },
- { "12.8b", 0x020000, 0x38652339, BRF_GRA | CPS1_TILES },
- { "04.8a", 0x020000, 0x4951bc0f, BRF_GRA | CPS1_TILES },
- { "16.12b", 0x020000, 0x381608ae, BRF_GRA | CPS1_TILES },
- { "08.12a", 0x020000, 0xb475d4e9, BRF_GRA | CPS1_TILES },
- { "27.9e", 0x020000, 0xa27e81fa, BRF_GRA | CPS1_TILES },
- { "20.9c", 0x020000, 0x002796dc, BRF_GRA | CPS1_TILES },
- { "29.11e", 0x020000, 0x6b41f82d, BRF_GRA | CPS1_TILES },
- { "22.11c", 0x020000, 0x52145369, BRF_GRA | CPS1_TILES },
-
- { "23.13c", 0x010000, 0xb3b79d4f, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "tke_30.12e", 0x020000, 0xac6e307d, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "tke_31.13e", 0x020000, 0x068741db, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "tk22b.1a", 0x000117, 0x1a1ab6d7, BRF_OPT }, // b-board PLDs
- { "lwio.12c", 0x000117, 0xad52b90c, BRF_OPT },
-};
-
-STD_ROM_PICK(Dynwara)
-STD_ROM_FN(Dynwara)
-
-static struct BurnRomInfo DynwarjRomDesc[] = {
- { "36.12f", 0x020000, 0x1a516657, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "42.12h", 0x020000, 0x12a290a0, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "37.13f", 0x020000, 0x932fc943, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "43.13h", 0x020000, 0x872ad76d, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "34.10f", 0x020000, 0x8f663d00, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "40.10h", 0x020000, 0x1586dbf3, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "35.11f", 0x020000, 0x9db93d7a, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "41.11h", 0x020000, 0x1aae69a4, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "09.4b", 0x020000, 0xc3e83c69, BRF_GRA | CPS1_TILES },
- { "01.4a", 0x020000, 0x187b2886, BRF_GRA | CPS1_TILES },
- { "13.9b", 0x020000, 0x0273d87d, BRF_GRA | CPS1_TILES },
- { "05.9a", 0x020000, 0x339378b8, BRF_GRA | CPS1_TILES },
- { "24.5e", 0x020000, 0xc6909b6f, BRF_GRA | CPS1_TILES },
- { "17.5c", 0x020000, 0x2e2f8320, BRF_GRA | CPS1_TILES },
- { "38.8h", 0x020000, 0xcd7923ed, BRF_GRA | CPS1_TILES },
- { "32.8f", 0x020000, 0x21a0a453, BRF_GRA | CPS1_TILES },
- { "10.5b", 0x020000, 0xff28f8d0, BRF_GRA | CPS1_TILES },
- { "02.5a", 0x020000, 0xcc83c02f, BRF_GRA | CPS1_TILES },
- { "14.10b", 0x020000, 0x18fb232c, BRF_GRA | CPS1_TILES }, // 1 byte different from dynwara, pcb verified
- { "06.10a", 0x020000, 0x6f9edd75, BRF_GRA | CPS1_TILES },
- { "25.7e", 0x020000, 0x152ea74a, BRF_GRA | CPS1_TILES },
- { "18.7c", 0x020000, 0x1833f932, BRF_GRA | CPS1_TILES },
- { "39.9h", 0x020000, 0xbc09b360, BRF_GRA | CPS1_TILES },
- { "33.9f", 0x020000, 0x89de1533, BRF_GRA | CPS1_TILES },
- { "11.7b", 0x020000, 0x29eaf490, BRF_GRA | CPS1_TILES },
- { "03.7a", 0x020000, 0x7bf51337, BRF_GRA | CPS1_TILES },
- { "15.11b", 0x020000, 0xd36cdb91, BRF_GRA | CPS1_TILES },
- { "07.11a", 0x020000, 0xe04af054, BRF_GRA | CPS1_TILES },
- { "26.8e", 0x020000, 0x07fc714b, BRF_GRA | CPS1_TILES },
- { "19.8c", 0x020000, 0x7114e5c6, BRF_GRA | CPS1_TILES },
- { "28.10e", 0x020000, 0xaf62bf07, BRF_GRA | CPS1_TILES },
- { "21.10c", 0x020000, 0x523f462a, BRF_GRA | CPS1_TILES },
- { "12.8b", 0x020000, 0x38652339, BRF_GRA | CPS1_TILES },
- { "04.8a", 0x020000, 0x4951bc0f, BRF_GRA | CPS1_TILES },
- { "16.12b", 0x020000, 0x381608ae, BRF_GRA | CPS1_TILES },
- { "08.12a", 0x020000, 0xb475d4e9, BRF_GRA | CPS1_TILES },
- { "27.9e", 0x020000, 0xa27e81fa, BRF_GRA | CPS1_TILES },
- { "20.9c", 0x020000, 0x002796dc, BRF_GRA | CPS1_TILES },
- { "29.11e", 0x020000, 0x6b41f82d, BRF_GRA | CPS1_TILES },
- { "22.11c", 0x020000, 0x52145369, BRF_GRA | CPS1_TILES },
-
- { "23.13c", 0x010000, 0xb3b79d4f, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "30.12e", 0x020000, 0x7e5f6cb4, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "31.13e", 0x020000, 0x4a30c737, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "tk22b.1a", 0x000117, 0x1a1ab6d7, BRF_OPT }, // b-board PLDs
- { "lwio.12c", 0x000117, 0xad52b90c, BRF_OPT },
-};
-
-STD_ROM_PICK(Dynwarj)
-STD_ROM_FN(Dynwarj)
-
-static struct BurnRomInfo DynwarjrRomDesc[] = {
- { "tk1j_23.8f", 0x080000, 0x088a3009, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "tk1j_22.7f", 0x080000, 0x93654bcf, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "tk1_01.3a", 0x080000, 0xf64bb6a0, BRF_GRA | CPS1_TILES },
- { "tk1_02.4a", 0x080000, 0x21fe6274, BRF_GRA | CPS1_TILES },
- { "tk1_03.5a", 0x080000, 0x0bf228cb, BRF_GRA | CPS1_TILES },
- { "tk1_04.6a", 0x080000, 0x1255dfb1, BRF_GRA | CPS1_TILES },
- { "tk1_05.7a", 0x080000, 0x44f7661e, BRF_GRA | CPS1_TILES },
- { "tk1_06.8a", 0x080000, 0xa54c515d, BRF_GRA | CPS1_TILES },
- { "tk1_07.9a", 0x080000, 0xca5c687c, BRF_GRA | CPS1_TILES },
- { "tk1_08.10a", 0x080000, 0xf9fe6591, BRF_GRA | CPS1_TILES },
-
- { "tk1_09.12a", 0x020000, 0xdb77d899, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "tk1_18.11c", 0x020000, 0x7e5f6cb4, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "tk1_19.12c", 0x020000, 0x4a30c737, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "tk163b.1a", 0x000117, 0x00000000, BRF_OPT | BRF_NODUMP },// b-board PLDs
- { "iob1.12d", 0x000117, 0x3abc0700, BRF_OPT },
- { "bprg1.11d", 0x000117, 0x31793da7, BRF_OPT },
-
- { "ioc1.ic7", 0x000117, 0x0d182081, BRF_OPT }, // c-board PLDs
- { "c632.ic1", 0x000117, 0x0fbd9270, BRF_OPT },
-};
-
-STD_ROM_PICK(Dynwarjr)
-STD_ROM_FN(Dynwarjr)
-
-static struct BurnRomInfo FfightRomDesc[] = {
- { "ff_36.11f", 0x020000, 0xf9a5ce83, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "ff_42.11h", 0x020000, 0x65f11215, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "ff_37.12f", 0x020000, 0xe1033784, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "ffe_43.12h", 0x020000, 0x995e968a, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "ff-32m.8h", 0x080000, 0xc747696e, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "ff-5m.7a", 0x080000, 0x9c284108, BRF_GRA | CPS1_TILES },
- { "ff-7m.9a", 0x080000, 0xa7584dfb, BRF_GRA | CPS1_TILES },
- { "ff-1m.3a", 0x080000, 0x0b605e44, BRF_GRA | CPS1_TILES },
- { "ff-3m.5a", 0x080000, 0x52291cd2, BRF_GRA | CPS1_TILES },
-
- { "ff_09.12b", 0x010000, 0xb8367eb5, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "ff_18.11c", 0x020000, 0x375c66e7, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "ff_19.12c", 0x020000, 0x1ef137f9, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "s224b.1a", 0x000117, 0xcdc4413e, BRF_OPT }, // b-board PLDs
- { "iob1.11e", 0x000117, 0x3abc0700, BRF_OPT },
-};
-
-STD_ROM_PICK(Ffight)
-STD_ROM_FN(Ffight)
-
-static struct BurnRomInfo FfightaRomDesc[] = {
- { "ffe_30.11f", 0x020000, 0x2347bf51, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "ffe_35.11h", 0x020000, 0x5f694ecc, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "ffe_31.12f", 0x020000, 0x6dc6b792, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "ffe_36.12h", 0x020000, 0xb36a0b99, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "ff-32m.8h", 0x080000, 0xc747696e, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "ff-5m.7a", 0x080000, 0x9c284108, BRF_GRA | CPS1_TILES },
- { "ff-7m.9a", 0x080000, 0xa7584dfb, BRF_GRA | CPS1_TILES },
- { "ff-1m.3a", 0x080000, 0x0b605e44, BRF_GRA | CPS1_TILES },
- { "ff-3m.5a", 0x080000, 0x52291cd2, BRF_GRA | CPS1_TILES },
-
- { "ffe_23.12b", 0x010000, 0xb8367eb5, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "ff_18.11c", 0x020000, 0x375c66e7, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "ff_19.12c", 0x020000, 0x1ef137f9, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "s224b.1a", 0x000117, 0xcdc4413e, BRF_OPT }, // b-board PLDs
- { "lwio.11e", 0x000117, 0xad52b90c, BRF_OPT },
-};
-
-STD_ROM_PICK(Ffighta)
-STD_ROM_FN(Ffighta)
-
-static struct BurnRomInfo FfightuRomDesc[] = {
- { "ff_36.11f", 0x020000, 0xf9a5ce83, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "ff_42.11h", 0x020000, 0x65f11215, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "ff_37.12f", 0x020000, 0xe1033784, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "ffu_43.12h", 0x020000, 0x4ca65947, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "ff-32m.8h", 0x080000, 0xc747696e, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "ff-5m.7a", 0x080000, 0x9c284108, BRF_GRA | CPS1_TILES },
- { "ff-7m.9a", 0x080000, 0xa7584dfb, BRF_GRA | CPS1_TILES },
- { "ff-1m.3a", 0x080000, 0x0b605e44, BRF_GRA | CPS1_TILES },
- { "ff-3m.5a", 0x080000, 0x52291cd2, BRF_GRA | CPS1_TILES },
-
- { "ff_09.12b", 0x010000, 0xb8367eb5, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "ff_18.11c", 0x020000, 0x375c66e7, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "ff_19.12c", 0x020000, 0x1ef137f9, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "s224b.1a", 0x000117, 0xcdc4413e, BRF_OPT }, // b-board PLDs
- { "iob1.11e", 0x000117, 0x3abc0700, BRF_OPT },
-};
-
-STD_ROM_PICK(Ffightu)
-STD_ROM_FN(Ffightu)
-
-static struct BurnRomInfo Ffightu1RomDesc[] = {
- { "ff_36.11f", 0x020000, 0xf9a5ce83, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "ff_42.11h", 0x020000, 0x65f11215, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "ff_37.12f", 0x020000, 0xe1033784, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "ffu_43.12h", 0x020000, 0x4ca65947, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "ff_34.9f", 0x020000, 0x0c8dc3fc, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "ff_40.9h", 0x020000, 0x8075bab9, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "ff_35.10f", 0x020000, 0x4a934121, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "ff_41.10h", 0x020000, 0x2af68154, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "ff-5m.7a", 0x080000, 0x9c284108, BRF_GRA | CPS1_TILES },
- { "ff-7m.9a", 0x080000, 0xa7584dfb, BRF_GRA | CPS1_TILES },
- { "ff-1m.3a", 0x080000, 0x0b605e44, BRF_GRA | CPS1_TILES },
- { "ff-3m.5a", 0x080000, 0x52291cd2, BRF_GRA | CPS1_TILES },
-
- { "ff_09.12b", 0x010000, 0xb8367eb5, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "ff_18.11c", 0x020000, 0x375c66e7, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "ff_19.12c", 0x020000, 0x1ef137f9, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "s224b.1a", 0x000117, 0xcdc4413e, BRF_OPT }, // b-board PLDs
- { "iob1.11e", 0x000117, 0x3abc0700, BRF_OPT },
-};
-
-STD_ROM_PICK(Ffightu1)
-STD_ROM_FN(Ffightu1)
-
-static struct BurnRomInfo Ffightu2RomDesc[] = {
- { "ffu_h0.12f", 0x020000, 0xf9a5ce83, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "ffu_l0.12h", 0x020000, 0x65f11215, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "ffu_h1.13f", 0x020000, 0xe1033784, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "ffu_l1.13h", 0x020000, 0x4ca65947, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "34.10f", 0x020000, 0x0c8dc3fc, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "40.10h", 0x020000, 0x8075bab9, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "35.11f", 0x020000, 0x4a934121, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "41.11h", 0x020000, 0x2af68154, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "09.4b", 0x020000, 0x5b116d0d, BRF_GRA | CPS1_TILES },
- { "01.4a", 0x020000, 0x815b1797, BRF_GRA | CPS1_TILES },
- { "13.9b", 0x020000, 0x8721a7da, BRF_GRA | CPS1_TILES },
- { "05.9a", 0x020000, 0xd0fcd4b5, BRF_GRA | CPS1_TILES },
- { "24.5e", 0x020000, 0xa1ab607a, BRF_GRA | CPS1_TILES },
- { "19.7c", 0x020000, 0x2dc18cf4, BRF_GRA | CPS1_TILES },
- { "38.8h", 0x020000, 0x6535a57f, BRF_GRA | CPS1_TILES },
- { "32.8f", 0x020000, 0xc8bc4a57, BRF_GRA | CPS1_TILES },
- { "10.5b", 0x020000, 0x624a924a, BRF_GRA | CPS1_TILES },
- { "02.5a", 0x020000, 0x5d91f694, BRF_GRA | CPS1_TILES },
- { "14.10b", 0x020000, 0x0a2e9101, BRF_GRA | CPS1_TILES },
- { "06.10a", 0x020000, 0x1c18f042, BRF_GRA | CPS1_TILES },
- { "25.7e", 0x020000, 0x6e8181ea, BRF_GRA | CPS1_TILES },
- { "18.5c", 0x020000, 0xb19ede59, BRF_GRA | CPS1_TILES },
- { "39.9h", 0x020000, 0x9416b477, BRF_GRA | CPS1_TILES },
- { "33.9f", 0x020000, 0x7369fa07, BRF_GRA | CPS1_TILES },
-
- { "s.13c", 0x010000, 0xb8367eb5, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "30.12e", 0x020000, 0x375c66e7, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "31.13e", 0x020000, 0x1ef137f9, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "s222b.1a", 0x000117, 0x6d86b45e, BRF_OPT }, // b-board PLDs
- { "lwio.12c", 0x000117, 0xad52b90c, BRF_OPT },
-};
-
-STD_ROM_PICK(Ffightu2)
-STD_ROM_FN(Ffightu2)
-
-static struct BurnRomInfo FfightuaRomDesc[] = {
- { "ffu_36.11f", 0x020000, 0xe2a48af9, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP }, // in "30" socket
- { "ffu_42.11h", 0x020000, 0xf4bb480e, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP }, // in "35" socket
- { "ffu_37.12f", 0x020000, 0xc371c667, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP }, // in "31" socket
- { "ffu_43.12h", 0x020000, 0x2f5771f9, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP }, // in "36" socket / different CRC from ffightu, ffightu1, pcb verified
- { "ff-32m.8h", 0x080000, 0xc747696e, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "ff-5m.7a", 0x080000, 0x9c284108, BRF_GRA | CPS1_TILES },
- { "ff-7m.9a", 0x080000, 0xa7584dfb, BRF_GRA | CPS1_TILES },
- { "ff-1m.3a", 0x080000, 0x0b605e44, BRF_GRA | CPS1_TILES },
- { "ff-3m.5a", 0x080000, 0x52291cd2, BRF_GRA | CPS1_TILES },
-
- { "ff_09.12b", 0x010000, 0xb8367eb5, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "ff_18.11c", 0x020000, 0x375c66e7, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "ff_19.12c", 0x020000, 0x1ef137f9, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "s224b.1a", 0x000117, 0xcdc4413e, BRF_OPT }, // b-board PLDs
- { "iob1.11e", 0x000117, 0x3abc0700, BRF_OPT },
-};
-
-STD_ROM_PICK(Ffightua)
-STD_ROM_FN(Ffightua)
-
-static struct BurnRomInfo FfightubRomDesc[] = {
- { "ffu_30_3.11f", 0x020000, 0xe619eb30, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "ffu_35_3.11h", 0x020000, 0xbca85263, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "ffu_31_3.12f", 0x020000, 0x59abd207, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "ffu_36_3.12h", 0x020000, 0xdf46ece8, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "ff-32m.8h", 0x080000, 0xc747696e, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "ff-5m.7a", 0x080000, 0x9c284108, BRF_GRA | CPS1_TILES },
- { "ff-7m.9a", 0x080000, 0xa7584dfb, BRF_GRA | CPS1_TILES },
- { "ff-1m.3a", 0x080000, 0x0b605e44, BRF_GRA | CPS1_TILES },
- { "ff-3m.5a", 0x080000, 0x52291cd2, BRF_GRA | CPS1_TILES },
-
- { "ff_09.12b", 0x010000, 0xb8367eb5, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "ff_18.11c", 0x020000, 0x375c66e7, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "ff_19.12c", 0x020000, 0x1ef137f9, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "s224b.1a", 0x000117, 0xcdc4413e, BRF_OPT }, // b-board PLDs
- { "iob1.11e", 0x000117, 0x3abc0700, BRF_OPT },
-};
-
-STD_ROM_PICK(Ffightub)
-STD_ROM_FN(Ffightub)
-
-static struct BurnRomInfo FfightucRomDesc[] = {
- { "ffu_30.11f", 0x020000, 0xed988977, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "ffu_35.11h", 0x020000, 0x07bf1c21, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "ffu_31.12f", 0x020000, 0xdba5a476, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "ffu_36.12h", 0x020000, 0x4d89f542, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "ff-32m.8h", 0x080000, 0xc747696e, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "ff-5m.7a", 0x080000, 0x9c284108, BRF_GRA | CPS1_TILES },
- { "ff-7m.9a", 0x080000, 0xa7584dfb, BRF_GRA | CPS1_TILES },
- { "ff-1m.3a", 0x080000, 0x0b605e44, BRF_GRA | CPS1_TILES },
- { "ff-3m.5a", 0x080000, 0x52291cd2, BRF_GRA | CPS1_TILES },
-
- { "ff_23.12b", 0x010000, 0xb8367eb5, BRF_PRG | CPS1_Z80_PROGRAM }, // == ff_09.12b /* label is FF_23, pcb verified */
-
- { "ff_18.11c", 0x020000, 0x375c66e7, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "ff_19.12c", 0x020000, 0x1ef137f9, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "s224b.1a", 0x000117, 0xcdc4413e, BRF_OPT }, // b-board PLDs
- { "iob1.11e", 0x000117, 0x3abc0700, BRF_OPT },
-};
-
-STD_ROM_PICK(Ffightuc)
-STD_ROM_FN(Ffightuc)
-
-static struct BurnRomInfo FfightjRomDesc[] = {
- { "ff36.bin", 0x020000, 0xf9a5ce83, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "ff42.bin", 0x020000, 0x65f11215, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "ff37.bin", 0x020000, 0xe1033784, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "ff43.bin", 0x020000, 0xb6dee1c3, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "ffj_34.10f", 0x020000, 0x0c8dc3fc, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "ffj_40.10h", 0x020000, 0x8075bab9, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "ffj_35.11f", 0x020000, 0x4a934121, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "ffj_41.11h", 0x020000, 0x2af68154, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "ffj_09.4b", 0x020000, 0x5b116d0d, BRF_GRA | CPS1_TILES },
- { "ffj_01.4a", 0x020000, 0x815b1797, BRF_GRA | CPS1_TILES },
- { "ffj_13.9b", 0x020000, 0x8721a7da, BRF_GRA | CPS1_TILES },
- { "ffj_05.9a", 0x020000, 0xd0fcd4b5, BRF_GRA | CPS1_TILES },
- { "ffj_24.5e", 0x020000, 0xa1ab607a, BRF_GRA | CPS1_TILES },
- { "ffj_17.5c", 0x020000, 0x2dc18cf4, BRF_GRA | CPS1_TILES },
- { "ffj_38.8h", 0x020000, 0x6535a57f, BRF_GRA | CPS1_TILES },
- { "ffj_32.8f", 0x020000, 0xc8bc4a57, BRF_GRA | CPS1_TILES },
- { "ffj_10.5b", 0x020000, 0x624a924a, BRF_GRA | CPS1_TILES },
- { "ffj_02.5a", 0x020000, 0x5d91f694, BRF_GRA | CPS1_TILES },
- { "ffj_14.10b", 0x020000, 0x0a2e9101, BRF_GRA | CPS1_TILES },
- { "ffj_06.10a", 0x020000, 0x1c18f042, BRF_GRA | CPS1_TILES },
- { "ffj_25.7e", 0x020000, 0x6e8181ea, BRF_GRA | CPS1_TILES },
- { "ffj_18.7c", 0x020000, 0xb19ede59, BRF_GRA | CPS1_TILES },
- { "ffj_39.9h", 0x020000, 0x9416b477, BRF_GRA | CPS1_TILES },
- { "ffj_33.9f", 0x020000, 0x7369fa07, BRF_GRA | CPS1_TILES },
-
- { "ff_23.bin", 0x010000, 0xb8367eb5, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "ffj_30.bin", 0x020000, 0x375c66e7, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "ffj_31.bin", 0x020000, 0x1ef137f9, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "s222b.1a", 0x000117, 0x6d86b45e, BRF_OPT }, // b-board PLDs
- { "lwio.12c", 0x000117, 0xad52b90c, BRF_OPT },
-};
-
-STD_ROM_PICK(Ffightj)
-STD_ROM_FN(Ffightj)
-
-static struct BurnRomInfo Ffightj1RomDesc[] = {
- { "ffj_36.12f", 0x020000, 0xe2a48af9, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "ffj_42.12h", 0x020000, 0xf4bb480e, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "ffj_37.13f", 0x020000, 0xc371c667, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "ffj_43.13h", 0x020000, 0x6f81f194, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "ffj_34.10f", 0x020000, 0x0c8dc3fc, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "ffj_40.10h", 0x020000, 0x8075bab9, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "ffj_35.11f", 0x020000, 0x4a934121, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "ffj_41.11h", 0x020000, 0x2af68154, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "ffj_09.4b", 0x020000, 0x5b116d0d, BRF_GRA | CPS1_TILES },
- { "ffj_01.4a", 0x020000, 0x815b1797, BRF_GRA | CPS1_TILES },
- { "ffj_13.9b", 0x020000, 0x8721a7da, BRF_GRA | CPS1_TILES },
- { "ffj_05.9a", 0x020000, 0xd0fcd4b5, BRF_GRA | CPS1_TILES },
- { "ffj_24.5e", 0x020000, 0xa1ab607a, BRF_GRA | CPS1_TILES },
- { "ffj_17.5c", 0x020000, 0x2dc18cf4, BRF_GRA | CPS1_TILES },
- { "ffj_38.8h", 0x020000, 0x6535a57f, BRF_GRA | CPS1_TILES },
- { "ffj_32.8f", 0x020000, 0xc8bc4a57, BRF_GRA | CPS1_TILES },
- { "ffj_10.5b", 0x020000, 0x624a924a, BRF_GRA | CPS1_TILES },
- { "ffj_02.5a", 0x020000, 0x5d91f694, BRF_GRA | CPS1_TILES },
- { "ffj_14.10b", 0x020000, 0x0a2e9101, BRF_GRA | CPS1_TILES },
- { "ffj_06.10a", 0x020000, 0x1c18f042, BRF_GRA | CPS1_TILES },
- { "ffj_25.7e", 0x020000, 0x6e8181ea, BRF_GRA | CPS1_TILES },
- { "ffj_18.7c", 0x020000, 0xb19ede59, BRF_GRA | CPS1_TILES },
- { "ffj_39.9h", 0x020000, 0x9416b477, BRF_GRA | CPS1_TILES },
- { "ffj_33.9f", 0x020000, 0x7369fa07, BRF_GRA | CPS1_TILES },
-
- { "ff_23.13b", 0x010000, 0xb8367eb5, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "ffj_30.12c", 0x020000, 0x375c66e7, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "ffj_31.13c", 0x020000, 0x1ef137f9, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "s222b.1a", 0x000117, 0x6d86b45e, BRF_OPT }, // b-board PLDs
- { "lwio.12e", 0x000117, 0xad52b90c, BRF_OPT },
-};
-
-STD_ROM_PICK(Ffightj1)
-STD_ROM_FN(Ffightj1)
-
-static struct BurnRomInfo Ffightj2RomDesc[] = {
- { "ffj_36a.12f", 0x020000, 0x088ed1c9, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "ffj_42a.12h", 0x020000, 0xc4c491e6, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "ffj_37a.13f", 0x020000, 0x708557ff, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "ffj_43a.13h", 0x020000, 0xc004004a, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "ff_34.10f", 0x020000, 0x0c8dc3fc, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "ff_40.10h", 0x020000, 0x8075bab9, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "ff_35.11f", 0x020000, 0x4a934121, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "ff_41.11h", 0x020000, 0x2af68154, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "ff_09.4b", 0x020000, 0x5b116d0d, BRF_GRA | CPS1_TILES },
- { "ff_01.4a", 0x020000, 0x815b1797, BRF_GRA | CPS1_TILES },
- { "ff_13.9b", 0x020000, 0x8721a7da, BRF_GRA | CPS1_TILES },
- { "ff_05.9a", 0x020000, 0xd0fcd4b5, BRF_GRA | CPS1_TILES },
- { "ff_24.5e", 0x020000, 0xa1ab607a, BRF_GRA | CPS1_TILES },
- { "ff_17.5c", 0x020000, 0x2dc18cf4, BRF_GRA | CPS1_TILES },
- { "ff_38.8h", 0x020000, 0x6535a57f, BRF_GRA | CPS1_TILES },
- { "ff_32.8f", 0x020000, 0xc8bc4a57, BRF_GRA | CPS1_TILES },
- { "ff_10.5b", 0x020000, 0x624a924a, BRF_GRA | CPS1_TILES },
- { "ff_02.5a", 0x020000, 0x5d91f694, BRF_GRA | CPS1_TILES },
- { "ff_14.10b", 0x020000, 0x0a2e9101, BRF_GRA | CPS1_TILES },
- { "ff_06.10a", 0x020000, 0x1c18f042, BRF_GRA | CPS1_TILES },
- { "ff_25.7e", 0x020000, 0x6e8181ea, BRF_GRA | CPS1_TILES },
- { "ff_18.7c", 0x020000, 0xb19ede59, BRF_GRA | CPS1_TILES },
- { "ff_39.9h", 0x020000, 0x9416b477, BRF_GRA | CPS1_TILES },
- { "ff_33.9f", 0x020000, 0x7369fa07, BRF_GRA | CPS1_TILES },
-
- { "ff_23.13c", 0x010000, 0xb8367eb5, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "ff_30.12e", 0x020000, 0x375c66e7, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "ff_31.13e", 0x020000, 0x1ef137f9, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "s222b.1a", 0x000117, 0x6d86b45e, BRF_OPT }, // b-board PLDs
- { "lwio.12c", 0x000117, 0xad52b90c, BRF_OPT },
-};
-
-STD_ROM_PICK(Ffightj2)
-STD_ROM_FN(Ffightj2)
-
-static struct BurnRomInfo Ffightj3RomDesc[] = {
- { "ff_36.12f", 0x020000, 0xed988977, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "ffj_42.12h", 0x020000, 0x07bf1c21, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "ff_37.13f", 0x020000, 0xdba5a476, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "ffj_43.13h", 0x020000, 0xfbeca028, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "ff_34.10f", 0x020000, 0x0c8dc3fc, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "ffj_40.10h", 0x020000, 0x8075bab9, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "ff_35.11f", 0x020000, 0x4a934121, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "ffj_41.11h", 0x020000, 0x2af68154, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "ff_09.4b", 0x020000, 0x5b116d0d, BRF_GRA | CPS1_TILES },
- { "ff_01.4a", 0x020000, 0x815b1797, BRF_GRA | CPS1_TILES },
- { "ff_13.9b", 0x020000, 0x8721a7da, BRF_GRA | CPS1_TILES },
- { "ff_05.9a", 0x020000, 0xd0fcd4b5, BRF_GRA | CPS1_TILES },
- { "ff_24.5e", 0x020000, 0xa1ab607a, BRF_GRA | CPS1_TILES },
- { "ff_17.5c", 0x020000, 0x2dc18cf4, BRF_GRA | CPS1_TILES },
- { "ffj_38.8h", 0x020000, 0x6535a57f, BRF_GRA | CPS1_TILES },
- { "ff_32.8f", 0x020000, 0xc8bc4a57, BRF_GRA | CPS1_TILES },
- { "ff_10.5b", 0x020000, 0x624a924a, BRF_GRA | CPS1_TILES },
- { "ff_02.5a", 0x020000, 0x5d91f694, BRF_GRA | CPS1_TILES },
- { "ff_14.10b", 0x020000, 0x0a2e9101, BRF_GRA | CPS1_TILES },
- { "ff_06.10a", 0x020000, 0x1c18f042, BRF_GRA | CPS1_TILES },
- { "ff_25.7e", 0x020000, 0x6e8181ea, BRF_GRA | CPS1_TILES },
- { "ff_18.7c", 0x020000, 0xb19ede59, BRF_GRA | CPS1_TILES },
- { "ffj_39.9h", 0x020000, 0x9416b477, BRF_GRA | CPS1_TILES },
- { "ff_33.9f", 0x020000, 0x7369fa07, BRF_GRA | CPS1_TILES },
-
- { "ff_23.13b", 0x010000, 0xb8367eb5, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "ff_30.12c", 0x020000, 0x375c66e7, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "ff_31.13c", 0x020000, 0x1ef137f9, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "s222b.1a", 0x000117, 0x6d86b45e, BRF_OPT }, // b-board PLDs
- { "lwio.12e", 0x000117, 0xad52b90c, BRF_OPT },
-};
-
-STD_ROM_PICK(Ffightj3)
-STD_ROM_FN(Ffightj3)
-
-static struct BurnRomInfo FfightjhRomDesc[] = {
- { "ff_23.8f", 0x080000, 0xae3dda7f, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "ff_22.7f", 0x080000, 0xb2d5a3aa, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "ff_1.3a", 0x080000, 0x969d18e2, BRF_GRA | CPS1_TILES },
- { "ff_2.4a", 0x080000, 0x02b59f99, BRF_GRA | CPS1_TILES },
- { "ff_3.5a", 0x080000, 0x01d507ae, BRF_GRA | CPS1_TILES },
- { "ff_4.6a", 0x080000, 0xf7c4ceb0, BRF_GRA | CPS1_TILES },
-
- { "ff_9.12a", 0x010000, 0xb8367eb5, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "ff_18.11c", 0x020000, 0x375c66e7, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "ff_19.12c", 0x020000, 0x1ef137f9, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "gal16v8a-15lp.1a", 0x000117, 0x00000000, BRF_OPT | BRF_NODUMP }, // b-board PLDs
- { "iob1.12d", 0x000117, 0x3abc0700, BRF_OPT },
- { "bprg1.11d", 0x000117, 0x31793da7, BRF_OPT },
-
- { "ioc1.ic1", 0x000117, 0x0d182081, BRF_OPT }, // c-board PLDs
-};
-
-STD_ROM_PICK(Ffightjh)
-STD_ROM_FN(Ffightjh)
-
-static struct BurnRomInfo FfightblRomDesc[] = {
- { "fg-e.bin", 0x080000, 0xf8ccf27e, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "fg-f.bin", 0x080000, 0xd96c76b2, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "fg-d.bin", 0x080000, 0x4303f863, BRF_GRA | CPS1_TILES },
- { "fg-c.bin", 0x080000, 0xd1dfcd2d, BRF_GRA | CPS1_TILES },
- { "fg-b.bin", 0x080000, 0x22f2c097, BRF_GRA | CPS1_TILES },
- { "fg-a.bin", 0x080000, 0x16a89b2c, BRF_GRA | CPS1_TILES },
-
- { "ff1.bin", 0x020000, 0x5b276c14, BRF_PRG | CPS1_Z80_PROGRAM },
-};
-
-STD_ROM_PICK(Ffightbl)
-STD_ROM_FN(Ffightbl)
-
-static struct BurnRomInfo FfightblaRomDesc[] = {
- // This dump comes from another ffight bootleg. It contains same datas as ffightbl but reordered in smaller roms.
- // Almost identical to Final Crash except for ROMs 19, 21, 23 and 25.
- { "9.bin", 0x020000, 0xc6854c91, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP }, // fg-e.bin
- { "5.bin", 0x020000, 0x77f7c2b3, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP }, // fg-f.bin
- { "8.bin", 0x020000, 0x1895b3df, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP }, // fg-e.bin
- { "4.bin", 0x020000, 0xbbd411ee, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP }, // fg-f.bin
- { "7.bin", 0x020000, 0x5b23ebf2, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP } ,// fg-e.bin
- { "3.bin", 0x020000, 0xaba2aebe, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP }, // fg-f.bin
- { "6.bin", 0x020000, 0xd4bf37f6, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP }, // fg-e.bin
- { "2.bin", 0x020000, 0x07ac8f43, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP }, // fg-f.bin
-
- { "18.bin", 0x020000, 0xf1eee6d9, BRF_GRA | CPS1_TILES }, // fg-d.bin
- { "20.bin", 0x020000, 0x675f4537, BRF_GRA | CPS1_TILES }, // fg-c.bin
- { "22.bin", 0x020000, 0xdb8a32ac, BRF_GRA | CPS1_TILES }, // fg-b.bin
- { "24.bin", 0x020000, 0xf4113e57, BRF_GRA | CPS1_TILES }, // fg-a.bin
- { "10.bin", 0x020000, 0xd478853e, BRF_GRA | CPS1_TILES }, // fg-d.bin
- { "12.bin", 0x020000, 0x25055642, BRF_GRA | CPS1_TILES }, // fg-c.bin
- { "14.bin", 0x020000, 0xb77d0328, BRF_GRA | CPS1_TILES }, // fg-b.bin
- { "16.bin", 0x020000, 0xea111a79, BRF_GRA | CPS1_TILES }, // fg-a.bin
- { "ff-19.bin", 0x020000, 0x7bc03747, BRF_GRA | CPS1_TILES }, // fg-d.bin
- { "ff-21.bin", 0x020000, 0x0c248e2b, BRF_GRA | CPS1_TILES }, // fg-c.bin
- { "ff-23.bin", 0x020000, 0x53949d0e, BRF_GRA | CPS1_TILES }, // fg-b.bin
- { "ff-25.bin", 0x020000, 0x8d34a67d, BRF_GRA | CPS1_TILES }, // fg-a.bin
- { "11.bin", 0x020000, 0xd4457a60, BRF_GRA | CPS1_TILES }, // fg-d.bin
- { "13.bin", 0x020000, 0x3b26a37d, BRF_GRA | CPS1_TILES }, // fg-c.bin
- { "15.bin", 0x020000, 0x6d837e09, BRF_GRA | CPS1_TILES }, // fg-b.bin
- { "17.bin", 0x020000, 0xc59a4d6c, BRF_GRA | CPS1_TILES }, // fg-a.bin
-
- { "1.bin", 0x020000, 0x5b276c14, BRF_PRG | CPS1_Z80_PROGRAM }, // ff1.bin
-};
-
-STD_ROM_PICK(Ffightbla)
-STD_ROM_FN(Ffightbla)
-
-static struct BurnRomInfo FcrashRomDesc[] = {
- { "9.bin", 0x020000, 0xc6854c91, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "5.bin", 0x020000, 0x77f7c2b3, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "8.bin", 0x020000, 0x1895b3df, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "4.bin", 0x020000, 0xbbd411ee, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "7.bin", 0x020000, 0x5b23ebf2, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "3.bin", 0x020000, 0xaba2aebe, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "6.bin", 0x020000, 0xd4bf37f6, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "2.bin", 0x020000, 0x07ac8f43, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "18.bin", 0x020000, 0xf1eee6d9, BRF_GRA | CPS1_TILES },
- { "20.bin", 0x020000, 0x675f4537, BRF_GRA | CPS1_TILES },
- { "22.bin", 0x020000, 0xdb8a32ac, BRF_GRA | CPS1_TILES },
- { "24.bin", 0x020000, 0xf4113e57, BRF_GRA | CPS1_TILES },
- { "10.bin", 0x020000, 0xd478853e, BRF_GRA | CPS1_TILES },
- { "12.bin", 0x020000, 0x25055642, BRF_GRA | CPS1_TILES },
- { "14.bin", 0x020000, 0xb77d0328, BRF_GRA | CPS1_TILES },
- { "16.bin", 0x020000, 0xea111a79, BRF_GRA | CPS1_TILES },
- { "19.bin", 0x020000, 0xb3aa1f48, BRF_GRA | CPS1_TILES },
- { "21.bin", 0x020000, 0x04d175c9, BRF_GRA | CPS1_TILES },
- { "23.bin", 0x020000, 0xe592ba4f, BRF_GRA | CPS1_TILES },
- { "25.bin", 0x020000, 0xb89a740f, BRF_GRA | CPS1_TILES },
- { "11.bin", 0x020000, 0xd4457a60, BRF_GRA | CPS1_TILES },
- { "13.bin", 0x020000, 0x3b26a37d, BRF_GRA | CPS1_TILES },
- { "15.bin", 0x020000, 0x6d837e09, BRF_GRA | CPS1_TILES },
- { "17.bin", 0x020000, 0xc59a4d6c, BRF_GRA | CPS1_TILES },
-
- { "1.bin", 0x020000, 0x5b276c14, BRF_PRG | CPS1_Z80_PROGRAM },
-};
-
-STD_ROM_PICK(Fcrash)
-STD_ROM_FN(Fcrash)
-
-static struct BurnRomInfo ForgottnRomDesc[] = {
- { "lw40.12f", 0x020000, 0x73e920b7, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP }, /* Higher program numbers indicates a later revision */
- { "lw41.12h", 0x020000, 0x58210b9e, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP }, /* 1 byte difference: 0x66D4 == 0x0C versus 0x04 in lw15.12h below */
- { "lw42.13f", 0x020000, 0xbea45994, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "lw43.13h", 0x020000, 0x539b2339, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "lw-07.10g", 0x080000, 0xfd252a26, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "lw_2.2b", 0x020000, 0x4bd75fee, BRF_GRA | CPS1_TILES },
- { "lw_1.2a", 0x020000, 0x65f41485, BRF_GRA | CPS1_TILES },
- { "lw-08.9b", 0x080000, 0x25a8e43c, BRF_GRA | CPS1_TILES },
- { "lw_18.5e", 0x020000, 0xb4b6241b, BRF_GRA | CPS1_TILES },
- { "lw_17.5c", 0x020000, 0xc5eea115, BRF_GRA | CPS1_TILES },
- { "lw_30.8h", 0x020000, 0xb385954e, BRF_GRA | CPS1_TILES },
- { "lw_29.8f", 0x020000, 0x7bda1ac6, BRF_GRA | CPS1_TILES },
- { "lw_4.3b", 0x020000, 0x50cf757f, BRF_GRA | CPS1_TILES },
- { "lw_3.3a", 0x020000, 0xc03ef278, BRF_GRA | CPS1_TILES },
- { "lw_20.7e", 0x020000, 0xdf1a3665, BRF_GRA | CPS1_TILES },
- { "lw_19.7c", 0x020000, 0x15af8440, BRF_GRA | CPS1_TILES },
- { "lw_32.9h", 0x020000, 0x30967a15, BRF_GRA | CPS1_TILES },
- { "lw_31.9f", 0x020000, 0xc49d37fb, BRF_GRA | CPS1_TILES },
- { "lw-02.6b", 0x080000, 0x43e6c5c8, BRF_GRA | CPS1_TILES },
- { "lw_14.10b", 0x020000, 0x82862cce, BRF_GRA | CPS1_TILES },
- { "lw_13.10a", 0x020000, 0xb81c0e96, BRF_GRA | CPS1_TILES },
- { "lw-06.9d", 0x080000, 0x5b9edffc, BRF_GRA | CPS1_TILES },
- { "lw_26.10e", 0x020000, 0x57bcd032, BRF_GRA | CPS1_TILES },
- { "lw_25.10c", 0x020000, 0xbac91554, BRF_GRA | CPS1_TILES },
- { "lw_16.11b", 0x020000, 0x40b26554, BRF_GRA | CPS1_TILES },
- { "lw_15.11a", 0x020000, 0x1b7d2e07, BRF_GRA | CPS1_TILES },
- { "lw_28.11e", 0x020000, 0xa805ad30, BRF_GRA | CPS1_TILES },
- { "lw_27.11c", 0x020000, 0x103c1bd2, BRF_GRA | CPS1_TILES },
-
- { "lw_37.13c", 0x010000, 0x59df2a63, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "lw-03u.12e", 0x020000, 0x807d051f, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "lw-04u.13e", 0x020000, 0xe6cd098e, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "lw621.1a", 0x000117, 0x5eec6ce9, BRF_OPT }, // b-board PLDs
- { "lwio.12b", 0x000117, 0xad52b90c, BRF_OPT },
-};
-
-STD_ROM_PICK(Forgottn)
-STD_ROM_FN(Forgottn)
-
-static struct BurnRomInfo ForgottnaRomDesc[] = {
- { "lw11.12f", 0x020000, 0x73e920b7, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "lw15.12h", 0x020000, 0x50d7012d, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "lw10.13f", 0x020000, 0xbea45994, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "lw14.13h", 0x020000, 0x539b2339, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "lw-07.10g", 0x080000, 0xfd252a26, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "lw_2.2b", 0x020000, 0x4bd75fee, BRF_GRA | CPS1_TILES },
- { "lw_1.2a", 0x020000, 0x65f41485, BRF_GRA | CPS1_TILES },
- { "lw-08.9b", 0x080000, 0x25a8e43c, BRF_GRA | CPS1_TILES },
- { "lw-05.6d", 0x080000, 0xe4552fd7, BRF_GRA | CPS1_TILES },
- { "lw_30.8h", 0x020000, 0xb385954e, BRF_GRA | CPS1_TILES },
- { "lw_29.8f", 0x020000, 0x7bda1ac6, BRF_GRA | CPS1_TILES },
- { "lw_4.3b", 0x020000, 0x50cf757f, BRF_GRA | CPS1_TILES },
- { "lw_3.3a", 0x020000, 0xc03ef278, BRF_GRA | CPS1_TILES },
- { "lw_32.9h", 0x020000, 0x30967a15, BRF_GRA | CPS1_TILES },
- { "lw_31.9f", 0x020000, 0xc49d37fb, BRF_GRA | CPS1_TILES },
- { "lw-02.6b", 0x080000, 0x43e6c5c8, BRF_GRA | CPS1_TILES },
- { "lw_14.10b", 0x020000, 0x82862cce, BRF_GRA | CPS1_TILES },
- { "lw_13.10a", 0x020000, 0xb81c0e96, BRF_GRA | CPS1_TILES },
- { "lw-06.9d", 0x080000, 0x5b9edffc, BRF_GRA | CPS1_TILES },
- { "lw_26.10e", 0x020000, 0x57bcd032, BRF_GRA | CPS1_TILES },
- { "lw_25.10c", 0x020000, 0xbac91554, BRF_GRA | CPS1_TILES },
- { "lw_16.11b", 0x020000, 0x40b26554, BRF_GRA | CPS1_TILES },
- { "lw_15.11a", 0x020000, 0x1b7d2e07, BRF_GRA | CPS1_TILES },
- { "lw_28.11e", 0x020000, 0xa805ad30, BRF_GRA | CPS1_TILES },
- { "lw_27.11c", 0x020000, 0x103c1bd2, BRF_GRA | CPS1_TILES },
-
- { "lw_00.13c", 0x010000, 0x59df2a63, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "lw-03u.12e", 0x020000, 0x807d051f, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "lw-04u.13e", 0x020000, 0xe6cd098e, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "lw621.1a", 0x000117, 0x5eec6ce9, BRF_OPT }, // b-board PLDs
- { "lwio.12b", 0x000117, 0xad52b90c, BRF_OPT },
-};
-
-STD_ROM_PICK(Forgottna)
-STD_ROM_FN(Forgottna)
-
-static struct BurnRomInfo ForgottnuRomDesc[] = {
- { "lw11c.12f", 0x020000, 0xe62742b6, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "lw15c.12h", 0x020000, 0x1b70f216, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "lw10c.13f", 0x020000, 0x8f5ea3f5, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "lw14c.13h", 0x020000, 0x708e7472, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "lw-07.10g", 0x080000, 0xfd252a26, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "lw_2.2b", 0x020000, 0x4bd75fee, BRF_GRA | CPS1_TILES },
- { "lw_1.2a", 0x020000, 0x65f41485, BRF_GRA | CPS1_TILES },
- { "lw-08.9b", 0x080000, 0x25a8e43c, BRF_GRA | CPS1_TILES },
- { "lw-05.6d", 0x080000, 0xe4552fd7, BRF_GRA | CPS1_TILES },
- { "lw_30.8h", 0x020000, 0xb385954e, BRF_GRA | CPS1_TILES },
- { "lw_29.8f", 0x020000, 0x7bda1ac6, BRF_GRA | CPS1_TILES },
- { "lw_4.3b", 0x020000, 0x50cf757f, BRF_GRA | CPS1_TILES },
- { "lw_3.3a", 0x020000, 0xc03ef278, BRF_GRA | CPS1_TILES },
- { "lw_32.9h", 0x020000, 0x30967a15, BRF_GRA | CPS1_TILES },
- { "lw_31.9f", 0x020000, 0xc49d37fb, BRF_GRA | CPS1_TILES },
- { "lw-02.6b", 0x080000, 0x43e6c5c8, BRF_GRA | CPS1_TILES },
- { "lw_14.10b", 0x020000, 0x82862cce, BRF_GRA | CPS1_TILES },
- { "lw_13.10a", 0x020000, 0xb81c0e96, BRF_GRA | CPS1_TILES },
- { "lw-06.9d", 0x080000, 0x5b9edffc, BRF_GRA | CPS1_TILES },
- { "lw-13.10d", 0x080000, 0x8e058ef5, BRF_GRA | CPS1_TILES },
- { "lw_16.11b", 0x020000, 0x40b26554, BRF_GRA | CPS1_TILES },
- { "lw_15.11a", 0x020000, 0x1b7d2e07, BRF_GRA | CPS1_TILES },
-
- { "lw_00.13c", 0x010000, 0x59df2a63, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "lw-03u.12e", 0x020000, 0x807d051f, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "lw-04u.13e", 0x020000, 0xe6cd098e, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "lw621.1a", 0x000117, 0x5eec6ce9, BRF_OPT }, // b-board PLDs
- { "lwio.12b", 0x000117, 0xad52b90c, BRF_OPT },
-};
-
-STD_ROM_PICK(Forgottnu)
-STD_ROM_FN(Forgottnu)
-
-static struct BurnRomInfo ForgottnuaRomDesc[] = {
- { "lwu_11a.14f", 0x020000, 0xddf78831, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "lwu_15a.14g", 0x020000, 0xf7ce2097, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "lwu_10a.13f", 0x020000, 0x8cb38c81, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "lwu_14a.13g", 0x020000, 0xd70ef9fd, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "lw-07.13e", 0x080000, 0xfd252a26, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "lw-01.9d", 0x080000, 0x0318f298, BRF_GRA | CPS1_TILES },
- { "lw-08.9f", 0x080000, 0x25a8e43c, BRF_GRA | CPS1_TILES },
- { "lw-05.9e", 0x080000, 0xe4552fd7, BRF_GRA | CPS1_TILES },
- { "lw-12.9g", 0x080000, 0x8e6a832b, BRF_GRA | CPS1_TILES },
- { "lw-02.12d", 0x080000, 0x43e6c5c8, BRF_GRA | CPS1_TILES },
- { "lw-09.12f", 0x080000, 0x899cb4ad, BRF_GRA | CPS1_TILES },
- { "lw-06.12e", 0x080000, 0x5b9edffc, BRF_GRA | CPS1_TILES },
- { "lw-13.12g", 0x080000, 0x8e058ef5, BRF_GRA | CPS1_TILES },
-
- { "lwu_00.14a", 0x010000, 0x59df2a63, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "lw-03u.14c", 0x020000, 0x807d051f, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "lw-04u.13c", 0x020000, 0xe6cd098e, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "lwchr.3a", 0x000117, 0x54ed4c39, BRF_OPT }, // b-board PLDs
- { "lwio.15e", 0x000117, 0xad52b90c, BRF_OPT },
-};
-
-STD_ROM_PICK(Forgottnua)
-STD_ROM_FN(Forgottnua)
-
-static struct BurnRomInfo ForgottnuaaRomDesc[] = {
- { "lwu_11aa.14f", 0x020000, 0x73e920b7, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "lwu_15aa.14g", 0x020000, 0xe47524b9, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "lwu_10aa.13f", 0x020000, 0xbea45994, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "lwu_14aa.13g", 0x020000, 0x539b2339, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "lw-07.13e", 0x080000, 0xfd252a26, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "lw-01.9d", 0x080000, 0x0318f298, BRF_GRA | CPS1_TILES },
- { "lw-08.9f", 0x080000, 0x25a8e43c, BRF_GRA | CPS1_TILES },
- { "lw-05.9e", 0x080000, 0xe4552fd7, BRF_GRA | CPS1_TILES },
- { "lw-12.9g", 0x080000, 0x8e6a832b, BRF_GRA | CPS1_TILES },
- { "lw-02.12d", 0x080000, 0x43e6c5c8, BRF_GRA | CPS1_TILES },
- { "lw-09.12f", 0x080000, 0x899cb4ad, BRF_GRA | CPS1_TILES },
- { "lw-06.12e", 0x080000, 0x5b9edffc, BRF_GRA | CPS1_TILES },
- { "lw-13.12g", 0x080000, 0x8e058ef5, BRF_GRA | CPS1_TILES },
-
- { "lwu_00.14a", 0x010000, 0x59df2a63, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "lw-03u.14c", 0x020000, 0x807d051f, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "lw-04u.13c", 0x020000, 0xe6cd098e, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "lwchr.3a", 0x000117, 0x54ed4c39, BRF_OPT }, // b-board PLDs
- { "lwio.15e", 0x000117, 0xad52b90c, BRF_OPT },
-};
-
-STD_ROM_PICK(Forgottnuaa)
-STD_ROM_FN(Forgottnuaa)
-
-static struct BurnRomInfo ForgottnucRomDesc[] = {
- { "lw11c.14f", 0x020000, 0xe62742b6, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "lw15c.14g", 0x020000, 0x1b70f216, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "lw10c.13f", 0x020000, 0x8f5ea3f5, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "lw14c.13g", 0x020000, 0x708e7472, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "lw-07.13e", 0x080000, 0xfd252a26, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "lw-01.9d", 0x080000, 0x0318f298, BRF_GRA | CPS1_TILES },
- { "lw-08.9f", 0x080000, 0x25a8e43c, BRF_GRA | CPS1_TILES },
- { "lw-05.9e", 0x080000, 0xe4552fd7, BRF_GRA | CPS1_TILES },
- { "lw-12.9g", 0x080000, 0x8e6a832b, BRF_GRA | CPS1_TILES },
- { "lw-02.12d", 0x080000, 0x43e6c5c8, BRF_GRA | CPS1_TILES },
- { "lw-09.12f", 0x080000, 0x899cb4ad, BRF_GRA | CPS1_TILES },
- { "lw-06.12e", 0x080000, 0x5b9edffc, BRF_GRA | CPS1_TILES },
- { "lw-13.12g", 0x080000, 0x8e058ef5, BRF_GRA | CPS1_TILES },
-
- { "lw_00.14a", 0x010000, 0x59df2a63, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "lw-03u.14c", 0x020000, 0x807d051f, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "lw-04u.13c", 0x020000, 0xe6cd098e, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "lwchr.3a", 0x000117, 0x54ed4c39, BRF_OPT }, // b-board PLDs
- { "lwio.15e", 0x000117, 0xad52b90c, BRF_OPT },
-};
-
-STD_ROM_PICK(Forgottnuc)
-STD_ROM_FN(Forgottnuc)
-
-static struct BurnRomInfo ForgottnueRomDesc[] = {
- { "lw11e.14f", 0x020000, 0x82656910, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "lw15e.14g", 0x020000, 0xfb1e2bd0, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "lw10e.13f", 0x020000, 0x3ce81dbe, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "lw14e.13g", 0x020000, 0x472eaad1, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "lw-07.13e", 0x080000, 0xfd252a26, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "lw-01.9d", 0x080000, 0x0318f298, BRF_GRA | CPS1_TILES },
- { "lw-08.9f", 0x080000, 0x25a8e43c, BRF_GRA | CPS1_TILES },
- { "lw-05.9e", 0x080000, 0xe4552fd7, BRF_GRA | CPS1_TILES },
- { "lw-12.9g", 0x080000, 0x8e6a832b, BRF_GRA | CPS1_TILES },
- { "lw-02.12d", 0x080000, 0x43e6c5c8, BRF_GRA | CPS1_TILES },
- { "lw-09.12f", 0x080000, 0x899cb4ad, BRF_GRA | CPS1_TILES },
- { "lw-06.12e", 0x080000, 0x5b9edffc, BRF_GRA | CPS1_TILES },
- { "lw-13.12g", 0x080000, 0x8e058ef5, BRF_GRA | CPS1_TILES },
-
- { "lw_00.14a", 0x010000, 0x59df2a63, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "lw-03u.14c", 0x020000, 0x807d051f, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "lw-04u.13c", 0x020000, 0xe6cd098e, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "lwchr.3a", 0x000117, 0x54ed4c39, BRF_OPT }, // b-board PLDs
- { "lwio.15e", 0x000117, 0xad52b90c, BRF_OPT },
-};
-
-STD_ROM_PICK(Forgottnue)
-STD_ROM_FN(Forgottnue)
-
-static struct BurnRomInfo LostwrldRomDesc[] = {
- { "lw_11c.14f", 0x020000, 0x67e42546, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "lw_15c.14g", 0x020000, 0x402e2a46, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "lw_10c.13f", 0x020000, 0xc46479d7, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "lw_14c.13g", 0x020000, 0x97670f4a, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "lw-07.13e", 0x080000, 0xfd252a26, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "lw-01.9d", 0x080000, 0x0318f298, BRF_GRA | CPS1_TILES },
- { "lw-08.9f", 0x080000, 0x25a8e43c, BRF_GRA | CPS1_TILES },
- { "lw-05.9e", 0x080000, 0xe4552fd7, BRF_GRA | CPS1_TILES },
- { "lw-12.9g", 0x080000, 0x8e6a832b, BRF_GRA | CPS1_TILES },
- { "lw-02.12d", 0x080000, 0x43e6c5c8, BRF_GRA | CPS1_TILES },
- { "lw-09.12f", 0x080000, 0x899cb4ad, BRF_GRA | CPS1_TILES },
- { "lw-06.12e", 0x080000, 0x5b9edffc, BRF_GRA | CPS1_TILES },
- { "lw-13.12g", 0x080000, 0x8e058ef5, BRF_GRA | CPS1_TILES },
-
- { "lw_00b.14a", 0x010000, 0x59df2a63, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "lw-03.14c", 0x020000, 0xce2159e7, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "lw-04.13c", 0x020000, 0x39305536, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "lwchr.3a", 0x000117, 0x54ed4c39, BRF_OPT }, // b-board PLDs
- { "lwio.15e", 0x000117, 0xad52b90c, BRF_OPT },
-};
-
-STD_ROM_PICK(Lostwrld)
-STD_ROM_FN(Lostwrld)
-
-static struct BurnRomInfo LostwrldoRomDesc[] = {
- { "lw_11.14f", 0x020000, 0x61e2cc56, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "lw_15.14g", 0x020000, 0x8a0c18d3, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "lw_10.13f", 0x020000, 0x23bca4d5, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "lw_14.13g", 0x020000, 0x3a023771, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "lw-07.13e", 0x080000, 0xfd252a26, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "lw-01.9d", 0x080000, 0x0318f298, BRF_GRA | CPS1_TILES },
- { "lw-08.9f", 0x080000, 0x25a8e43c, BRF_GRA | CPS1_TILES },
- { "lw-05.9e", 0x080000, 0xe4552fd7, BRF_GRA | CPS1_TILES },
- { "lw-12.9g", 0x080000, 0x8e6a832b, BRF_GRA | CPS1_TILES },
- { "lw-02.12d", 0x080000, 0x43e6c5c8, BRF_GRA | CPS1_TILES },
- { "lw-09.12f", 0x080000, 0x899cb4ad, BRF_GRA | CPS1_TILES },
- { "lw-06.12e", 0x080000, 0x5b9edffc, BRF_GRA | CPS1_TILES },
- { "lw-13.12g", 0x080000, 0x8e058ef5, BRF_GRA | CPS1_TILES },
-
- { "lw_00b.14a", 0x010000, 0x59df2a63, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "lw-03.14c", 0x020000, 0xce2159e7, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "lw-04.13c", 0x020000, 0x39305536, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "lwchr.3a", 0x000117, 0x54ed4c39, BRF_OPT }, // b-board PLDs
- { "lwio.15e", 0x000117, 0xad52b90c, BRF_OPT },
-};
-
-STD_ROM_PICK(Lostwrldo)
-STD_ROM_FN(Lostwrldo)
-
-static struct BurnRomInfo GanbareRomDesc[] = {
- { "mrnj_23d.8f", 0x080000, 0xf929be72, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "mrnj_01.3a", 0x080000, 0x3f878020, BRF_GRA | CPS1_TILES },
- { "mrnj_02.4a", 0x080000, 0x3e5624d8, BRF_GRA | CPS1_TILES },
- { "mrnj_03.5a", 0x080000, 0xd1e61f96, BRF_GRA | CPS1_TILES },
- { "mrnj_04.6a", 0x080000, 0xd241971b, BRF_GRA | CPS1_TILES },
- { "mrnj_05.7a", 0x080000, 0xc0a14562, BRF_GRA | CPS1_TILES },
- { "mrnj_06.8a", 0x080000, 0xe6a71dfc, BRF_GRA | CPS1_TILES },
- { "mrnj_07.9a", 0x080000, 0x99afb6c7, BRF_GRA | CPS1_TILES },
- { "mrnj_08.10a", 0x080000, 0x52882c20, BRF_GRA | CPS1_TILES },
-
- { "mrnj_09.12a", 0x010000, 0x62470d72, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "mrnj_18.11c", 0x020000, 0x08e13940, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "mrnj_19.12c", 0x020000, 0x5fa59927, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- { "m48t35y-70pc1.9n", 0x008000, 0x96107b4a, BRF_OPT }, // timekeeper internal ram - game overwrites it on init anyway
-
- A_BOARD_PLDS
-
- { "gbpr2.1a", 0x000117, 0x486e8ca0, BRF_OPT }, // b-board PLDs
- { "iob1.12d", 0x000117, 0x3abc0700, BRF_OPT },
- { "bprg1.11d", 0x000117, 0x31793da7, BRF_OPT },
-
- { "ioc1.ic7", 0x000117, 0x0d182081, BRF_OPT }, // c-board PLDs
- { "c632.ic1", 0x000117, 0x0fbd9270, BRF_OPT },
-};
-
-STD_ROM_PICK(Ganbare)
-STD_ROM_FN(Ganbare)
-
-static struct BurnRomInfo GhoulsRomDesc[] = {
- { "dme_29.10h", 0x020000, 0x166a58a2, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "dme_30.10j", 0x020000, 0x7ac8407a, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "dme_27.9h", 0x020000, 0xf734b2be, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "dme_28.9j", 0x020000, 0x03d3e714, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "dm-17.7j", 0x080000, 0x3ea1b0f2, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "dm-05.3a", 0x080000, 0x0ba9c0b0, BRF_GRA | CPS1_TILES },
- { "dm-07.3f", 0x080000, 0x5d760ab9, BRF_GRA | CPS1_TILES },
- { "dm-06.3c", 0x080000, 0x4ba90b59, BRF_GRA | CPS1_TILES },
- { "dm-08.3g", 0x080000, 0x4bdee9de, BRF_GRA | CPS1_TILES },
- { "09.4a", 0x010000, 0xae24bb19, BRF_GRA | CPS1_TILES },
- { "18.7a", 0x010000, 0xd34e271a, BRF_GRA | CPS1_TILES },
- { "13.4e", 0x010000, 0x3f70dd37, BRF_GRA | CPS1_TILES },
- { "22.7e", 0x010000, 0x7e69e2e6, BRF_GRA | CPS1_TILES },
- { "11.4c", 0x010000, 0x37c9b6c6, BRF_GRA | CPS1_TILES },
- { "20.7c", 0x010000, 0x2f1345b4, BRF_GRA | CPS1_TILES },
- { "15.4g", 0x010000, 0x3c2a212a, BRF_GRA | CPS1_TILES },
- { "24.7g", 0x010000, 0x889aac05, BRF_GRA | CPS1_TILES },
- { "10.4b", 0x010000, 0xbcc0f28c, BRF_GRA | CPS1_TILES },
- { "19.7b", 0x010000, 0x2a40166a, BRF_GRA | CPS1_TILES },
- { "14.4f", 0x010000, 0x20f85c03, BRF_GRA | CPS1_TILES },
- { "23.7f", 0x010000, 0x8426144b, BRF_GRA | CPS1_TILES },
- { "12.4d", 0x010000, 0xda088d61, BRF_GRA | CPS1_TILES },
- { "21.7d", 0x010000, 0x17e11df0, BRF_GRA | CPS1_TILES },
- { "16.4h", 0x010000, 0xf187ba1c, BRF_GRA | CPS1_TILES },
- { "25.7h", 0x010000, 0x29f79c78, BRF_GRA | CPS1_TILES },
-
- { "26.10a", 0x010000, 0x3692f6e5, BRF_PRG | CPS1_Z80_PROGRAM },
-
- A_BOARD_PLDS
-
- { "dm620.2a", 0x000117, 0xf6e5f727, BRF_OPT }, // b-board PLDs
- { "lwio.8i", 0x000117, 0xad52b90c, BRF_OPT },
-};
-
-STD_ROM_PICK(Ghouls)
-STD_ROM_FN(Ghouls)
-
-static struct BurnRomInfo GhoulsuRomDesc[] = {
- { "dmu_29.10h", 0x020000, 0x334d85b2, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "dmu_30.10j", 0x020000, 0xcee8ceb5, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "dmu_27.9h", 0x020000, 0x4a524140, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "dmu_28.9j", 0x020000, 0x94aae205, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "dm-17.7j", 0x080000, 0x3ea1b0f2, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "dm-05.3a", 0x080000, 0x0ba9c0b0, BRF_GRA | CPS1_TILES },
- { "dm-07.3f", 0x080000, 0x5d760ab9, BRF_GRA | CPS1_TILES },
- { "dm-06.3c", 0x080000, 0x4ba90b59, BRF_GRA | CPS1_TILES },
- { "dm-08.3g", 0x080000, 0x4bdee9de, BRF_GRA | CPS1_TILES },
- { "09.4a", 0x010000, 0xae24bb19, BRF_GRA | CPS1_TILES },
- { "18.7a", 0x010000, 0xd34e271a, BRF_GRA | CPS1_TILES },
- { "13.4e", 0x010000, 0x3f70dd37, BRF_GRA | CPS1_TILES },
- { "22.7e", 0x010000, 0x7e69e2e6, BRF_GRA | CPS1_TILES },
- { "11.4c", 0x010000, 0x37c9b6c6, BRF_GRA | CPS1_TILES },
- { "20.7c", 0x010000, 0x2f1345b4, BRF_GRA | CPS1_TILES },
- { "15.4g", 0x010000, 0x3c2a212a, BRF_GRA | CPS1_TILES },
- { "24.7g", 0x010000, 0x889aac05, BRF_GRA | CPS1_TILES },
- { "10.4b", 0x010000, 0xbcc0f28c, BRF_GRA | CPS1_TILES },
- { "19.7b", 0x010000, 0x2a40166a, BRF_GRA | CPS1_TILES },
- { "14.4f", 0x010000, 0x20f85c03, BRF_GRA | CPS1_TILES },
- { "23.7f", 0x010000, 0x8426144b, BRF_GRA | CPS1_TILES },
- { "12.4d", 0x010000, 0xda088d61, BRF_GRA | CPS1_TILES },
- { "21.7d", 0x010000, 0x17e11df0, BRF_GRA | CPS1_TILES },
- { "16.4h", 0x010000, 0xf187ba1c, BRF_GRA | CPS1_TILES },
- { "25.7h", 0x010000, 0x29f79c78, BRF_GRA | CPS1_TILES },
-
- { "26.10a", 0x010000, 0x3692f6e5, BRF_PRG | CPS1_Z80_PROGRAM },
-
- A_BOARD_PLDS
-
- { "dm620.2a", 0x000117, 0xf6e5f727, BRF_OPT }, // b-board PLDs
- { "lwio.8i", 0x000117, 0xad52b90c, BRF_OPT },
-};
-
-STD_ROM_PICK(Ghoulsu)
-STD_ROM_FN(Ghoulsu)
-
-static struct BurnRomInfo DaimakaiRomDesc[] = {
- { "dmj_38.12f", 0x020000, 0x82fd1798, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "dmj_39.12h", 0x020000, 0x35366ccc, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "dmj_40.13f", 0x020000, 0xa17c170a, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "dmj_41.13h", 0x020000, 0x6af0b391, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "dm_33.10f", 0x020000, 0x384d60c4, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "dm_34.10h", 0x020000, 0x19abe30f, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "dm_35.11f", 0x020000, 0xc04b85c8, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "dm_36.11h", 0x020000, 0x89be83de, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "dm_02.4b", 0x020000, 0x8b98dc48, BRF_GRA | CPS1_TILES },
- { "dm_01.4a", 0x020000, 0x80896c33, BRF_GRA | CPS1_TILES },
- { "dm_10.9b", 0x020000, 0xc2e7d9ef, BRF_GRA | CPS1_TILES },
- { "dm_09.9a", 0x020000, 0xc9c4afa5, BRF_GRA | CPS1_TILES },
- { "dm_18.5e", 0x020000, 0x1aa0db99, BRF_GRA | CPS1_TILES },
- { "dm_17.5c", 0x020000, 0xdc6ed8ad, BRF_GRA | CPS1_TILES },
- { "dm_30.8h", 0x020000, 0xd9d3f8bd, BRF_GRA | CPS1_TILES },
- { "dm_29.8f", 0x020000, 0x49a48796, BRF_GRA | CPS1_TILES },
- { "dm_04.5b", 0x020000, 0xa4f4f8f0, BRF_GRA | CPS1_TILES },
- { "dm_03.5a", 0x020000, 0xb1033e62, BRF_GRA | CPS1_TILES },
- { "dm_12.10b", 0x020000, 0x10fdd76a, BRF_GRA | CPS1_TILES },
- { "dm_11.10a", 0x020000, 0x9040cb04, BRF_GRA | CPS1_TILES },
- { "dm_20.7e", 0x020000, 0x281d0b3e, BRF_GRA | CPS1_TILES },
- { "dm_19.7c", 0x020000, 0x2623b52f, BRF_GRA | CPS1_TILES },
- { "dm_32.9h", 0x020000, 0x99692344, BRF_GRA | CPS1_TILES },
- { "dm_31.9f", 0x020000, 0x54acb729, BRF_GRA | CPS1_TILES },
- { "dm_06.7b", 0x010000, 0xae24bb19, BRF_GRA | CPS1_TILES },
- { "dm_05.7a", 0x010000, 0xd34e271a, BRF_GRA | CPS1_TILES },
- { "dm_14.11b", 0x010000, 0x3f70dd37, BRF_GRA | CPS1_TILES },
- { "dm_13.11a", 0x010000, 0x7e69e2e6, BRF_GRA | CPS1_TILES },
- { "dm_22.8e", 0x010000, 0x37c9b6c6, BRF_GRA | CPS1_TILES },
- { "dm_21.8c", 0x010000, 0x2f1345b4, BRF_GRA | CPS1_TILES },
- { "dm_26.10e", 0x010000, 0x3c2a212a, BRF_GRA | CPS1_TILES },
- { "dm_25.10c", 0x010000, 0x889aac05, BRF_GRA | CPS1_TILES },
- { "dm_08.8b", 0x010000, 0xbcc0f28c, BRF_GRA | CPS1_TILES },
- { "dm_07.8a", 0x010000, 0x2a40166a, BRF_GRA | CPS1_TILES },
- { "dm_16.12b", 0x010000, 0x20f85c03, BRF_GRA | CPS1_TILES },
- { "dm_15.12a", 0x010000, 0x8426144b, BRF_GRA | CPS1_TILES },
- { "dm_24.9e", 0x010000, 0xda088d61, BRF_GRA | CPS1_TILES },
- { "dm_23.9c", 0x010000, 0x17e11df0, BRF_GRA | CPS1_TILES },
- { "dm_28.11e", 0x010000, 0xf187ba1c, BRF_GRA | CPS1_TILES },
- { "dm_27.11c", 0x010000, 0x29f79c78, BRF_GRA | CPS1_TILES },
-
- { "37.13c", 0x010000, 0x3692f6e5, BRF_PRG | CPS1_Z80_PROGRAM },
-
- A_BOARD_PLDS
-
- { "dm22a.1a", 0x000117, 0xd4776116, BRF_OPT }, // b-board PLDs
- { "lwio.12c", 0x000117, 0xad52b90c, BRF_OPT },
-};
-
-STD_ROM_PICK(Daimakai)
-STD_ROM_FN(Daimakai)
-
-static struct BurnRomInfo DaimakairRomDesc[] = {
- { "damj_23.8f", 0x080000, 0xc3b248ec, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "damj_22.7f", 0x080000, 0x595ff2f3, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "dam_01.3a", 0x080000, 0x0ba9c0b0, BRF_GRA | CPS1_TILES },
- { "dam_02.4a", 0x080000, 0x5d760ab9, BRF_GRA | CPS1_TILES },
- { "dam_03.5a", 0x080000, 0x4ba90b59, BRF_GRA | CPS1_TILES },
- { "dam_04.6a", 0x080000, 0x4bdee9de, BRF_GRA | CPS1_TILES },
- { "dam_05.7a", 0x080000, 0x7dc61b94, BRF_GRA | CPS1_TILES },
- { "dam_06.8a", 0x080000, 0xfde89758, BRF_GRA | CPS1_TILES },
- { "dam_07.9a", 0x080000, 0xec351d78, BRF_GRA | CPS1_TILES },
- { "dam_08.10a", 0x080000, 0xee2acc1e, BRF_GRA | CPS1_TILES },
-
- { "dam_09.12a", 0x020000, 0x0656ff53, BRF_PRG | CPS1_Z80_PROGRAM },
-
- A_BOARD_PLDS
-
- { "dam63b.1a", 0x000117, 0x474b3c8a, BRF_OPT }, // b-board PLDs
- { "iob1.12d", 0x000117, 0x3abc0700, BRF_OPT },
- { "bprg1.11d", 0x000117, 0x31793da7, BRF_OPT },
- { "ioc1.ic7", 0x000117, 0x0d182081, BRF_OPT }, // c-board PLDs
- { "c632.ic1", 0x000117, 0x0fbd9270, BRF_OPT },
-};
-
-STD_ROM_PICK(Daimakair)
-STD_ROM_FN(Daimakair)
-
-static struct BurnRomInfo DaimakaibRomDesc[] = {
- { "dmjb2.bin", 0x080000, 0x7d5f9f84, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "dmjb1.bin", 0x080000, 0x9b945cc4, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "dm_02.4b", 0x020000, 0x8b98dc48, BRF_GRA | CPS1_TILES },
- { "dm_01.4a", 0x020000, 0x80896c33, BRF_GRA | CPS1_TILES },
- { "dm_10.9b", 0x020000, 0xc2e7d9ef, BRF_GRA | CPS1_TILES },
- { "dm_09.9a", 0x020000, 0xc9c4afa5, BRF_GRA | CPS1_TILES },
- { "dm_18.5e", 0x020000, 0x1aa0db99, BRF_GRA | CPS1_TILES },
- { "dm_17.5c", 0x020000, 0xdc6ed8ad, BRF_GRA | CPS1_TILES },
- { "dm_30.8h", 0x020000, 0xd9d3f8bd, BRF_GRA | CPS1_TILES },
- { "dm_29.8f", 0x020000, 0x49a48796, BRF_GRA | CPS1_TILES },
- { "dm_04.5b", 0x020000, 0xa4f4f8f0, BRF_GRA | CPS1_TILES },
- { "dm_03.5a", 0x020000, 0xb1033e62, BRF_GRA | CPS1_TILES },
- { "dm_12.10b", 0x020000, 0x10fdd76a, BRF_GRA | CPS1_TILES },
- { "dm_11.10a", 0x020000, 0x9040cb04, BRF_GRA | CPS1_TILES },
- { "dm_20.7e", 0x020000, 0x281d0b3e, BRF_GRA | CPS1_TILES },
- { "dm_19.7c", 0x020000, 0x2623b52f, BRF_GRA | CPS1_TILES },
- { "dm_32.9h", 0x020000, 0x99692344, BRF_GRA | CPS1_TILES },
- { "dm_31.9f", 0x020000, 0x54acb729, BRF_GRA | CPS1_TILES },
- { "dm_06.7b", 0x010000, 0xae24bb19, BRF_GRA | CPS1_TILES },
- { "dm_05.7a", 0x010000, 0xd34e271a, BRF_GRA | CPS1_TILES },
- { "dm_14.11b", 0x010000, 0x3f70dd37, BRF_GRA | CPS1_TILES },
- { "dm_13.11a", 0x010000, 0x7e69e2e6, BRF_GRA | CPS1_TILES },
- { "dm_22.8e", 0x010000, 0x37c9b6c6, BRF_GRA | CPS1_TILES },
- { "dm_21.8c", 0x010000, 0x2f1345b4, BRF_GRA | CPS1_TILES },
- { "dm_26.10e", 0x010000, 0x3c2a212a, BRF_GRA | CPS1_TILES },
- { "dm_25.10c", 0x010000, 0x889aac05, BRF_GRA | CPS1_TILES },
- { "dm_08.8b", 0x010000, 0xbcc0f28c, BRF_GRA | CPS1_TILES },
- { "dm_07.8a", 0x010000, 0x2a40166a, BRF_GRA | CPS1_TILES },
- { "dm_16.12b", 0x010000, 0x20f85c03, BRF_GRA | CPS1_TILES },
- { "dm_15.12a", 0x010000, 0x8426144b, BRF_GRA | CPS1_TILES },
- { "dm_24.9e", 0x010000, 0xda088d61, BRF_GRA | CPS1_TILES },
- { "dm_23.9c", 0x010000, 0x17e11df0, BRF_GRA | CPS1_TILES },
- { "dm_28.11e", 0x010000, 0xf187ba1c, BRF_GRA | CPS1_TILES },
- { "dm_27.11c", 0x010000, 0x29f79c78, BRF_GRA | CPS1_TILES },
-
- { "dm_37.13c", 0x010000, 0x3692f6e5, BRF_PRG | CPS1_Z80_PROGRAM },
-};
-
-STD_ROM_PICK(Daimakaib)
-STD_ROM_FN(Daimakaib)
-
-static struct BurnRomInfo KnightsRomDesc[] = {
- { "kr_23e.8f", 0x080000, 0x1b3997eb, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "kr_22.7f", 0x080000, 0xd0b671a9, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "kr-5m.3a", 0x080000, 0x9e36c1a4, BRF_GRA | CPS1_TILES },
- { "kr-7m.5a", 0x080000, 0xc5832cae, BRF_GRA | CPS1_TILES },
- { "kr-1m.4a", 0x080000, 0xf095be2d, BRF_GRA | CPS1_TILES },
- { "kr-3m.6a", 0x080000, 0x179dfd96, BRF_GRA | CPS1_TILES },
- { "kr-6m.7a", 0x080000, 0x1f4298d2, BRF_GRA | CPS1_TILES },
- { "kr-8m.9a", 0x080000, 0x37fa8751, BRF_GRA | CPS1_TILES },
- { "kr-2m.8a", 0x080000, 0x0200bc3d, BRF_GRA | CPS1_TILES },
- { "kr-4m.10a", 0x080000, 0x0bb2b4e7, BRF_GRA | CPS1_TILES },
-
- { "kr_09.11a", 0x010000, 0x5e44d9ee, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "kr_18.11c", 0x020000, 0xda69d15f, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "kr_19.12c", 0x020000, 0xbfc654e9, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "kr63b.1a", 0x000117, 0xfd5b6522, BRF_OPT }, // b-board PLDs
- { "iob1.12d", 0x000117, 0x3abc0700, BRF_OPT },
- { "bprg1.11d", 0x000117, 0x31793da7, BRF_OPT },
- { "ioc1.ic7", 0x000117, 0x0d182081, BRF_OPT }, // c-board PLDs
- { "c632.ic1", 0x000117, 0x0fbd9270, BRF_OPT },
-};
-
-STD_ROM_PICK(Knights)
-STD_ROM_FN(Knights)
-
-static struct BurnRomInfo KnightsuRomDesc[] = {
- { "kr_23u.8f", 0x080000, 0x252bc2ba, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "kr_22.7f", 0x080000, 0xd0b671a9, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "kr-5m.3a", 0x080000, 0x9e36c1a4, BRF_GRA | CPS1_TILES },
- { "kr-7m.5a", 0x080000, 0xc5832cae, BRF_GRA | CPS1_TILES },
- { "kr-1m.4a", 0x080000, 0xf095be2d, BRF_GRA | CPS1_TILES },
- { "kr-3m.6a", 0x080000, 0x179dfd96, BRF_GRA | CPS1_TILES },
- { "kr-6m.7a", 0x080000, 0x1f4298d2, BRF_GRA | CPS1_TILES },
- { "kr-8m.9a", 0x080000, 0x37fa8751, BRF_GRA | CPS1_TILES },
- { "kr-2m.8a", 0x080000, 0x0200bc3d, BRF_GRA | CPS1_TILES },
- { "kr-4m.10a", 0x080000, 0x0bb2b4e7, BRF_GRA | CPS1_TILES },
-
- { "kr_09.11a", 0x010000, 0x5e44d9ee, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "kr_18.11c", 0x020000, 0xda69d15f, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "kr_19.12c", 0x020000, 0xbfc654e9, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "kr63b.1a", 0x000117, 0xfd5b6522, BRF_OPT }, // b-board PLDs
- { "iob1.12d", 0x000117, 0x3abc0700, BRF_OPT },
- { "bprg1.11d", 0x000117, 0x31793da7, BRF_OPT },
- { "ioc1.ic7", 0x000117, 0x0d182081, BRF_OPT }, // c-board PLDs
- { "c632.ic1", 0x000117, 0x0fbd9270, BRF_OPT },
-};
-
-STD_ROM_PICK(Knightsu)
-STD_ROM_FN(Knightsu)
-
-static struct BurnRomInfo KnightsjRomDesc[] = {
- { "kr_23j.8f", 0x080000, 0xeae7417f, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "kr_22.7f", 0x080000, 0xd0b671a9, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "kr_01.3a", 0x080000, 0x9e36c1a4, BRF_GRA | CPS1_TILES },
- { "kr_02.4a", 0x080000, 0xc5832cae, BRF_GRA | CPS1_TILES },
- { "kr_03.5a", 0x080000, 0xf095be2d, BRF_GRA | CPS1_TILES },
- { "kr_04.6a", 0x080000, 0x179dfd96, BRF_GRA | CPS1_TILES },
- { "kr_05.7a", 0x080000, 0x1f4298d2, BRF_GRA | CPS1_TILES },
- { "kr_06.8a", 0x080000, 0x37fa8751, BRF_GRA | CPS1_TILES },
- { "kr_07.9a", 0x080000, 0x0200bc3d, BRF_GRA | CPS1_TILES },
- { "kr_08.10a", 0x080000, 0x0bb2b4e7, BRF_GRA | CPS1_TILES },
-
- { "kr_09.12a", 0x010000, 0x5e44d9ee, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "kr_18.11c", 0x020000, 0xda69d15f, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "kr_19.12c", 0x020000, 0xbfc654e9, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "kr63b.1a", 0x000117, 0xfd5b6522, BRF_OPT }, // b-board PLDs
- { "iob1.12d", 0x000117, 0x3abc0700, BRF_OPT },
- { "bprg1.11d", 0x000117, 0x31793da7, BRF_OPT },
- { "ioc1.ic7", 0x000117, 0x0d182081, BRF_OPT }, // c-board PLDs
- { "c632.ic1", 0x000117, 0x0fbd9270, BRF_OPT },
-};
-
-STD_ROM_PICK(Knightsj)
-STD_ROM_FN(Knightsj)
-
-static struct BurnRomInfo KnightsjaRomDesc[] = {
- { "krj_36.12f", 0x020000, 0xad3d1a8e, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "krj_42.12h", 0x020000, 0xe694a491, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "krj_37.13f", 0x020000, 0x85596094, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "krj_43.13h", 0x020000, 0x9198bf8f, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "kr_34.10f", 0x020000, 0xfe6eb08d, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "kr_40.10h", 0x020000, 0x1172806d, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "kr_35.11f", 0x020000, 0xf854b020, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "kr_41.11h", 0x020000, 0xeb52e78d, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "kr_09.4b", 0x020000, 0x08b76e10, BRF_GRA | CPS1_TILES },
- { "kr_01.4a", 0x020000, 0x40cecf5c, BRF_GRA | CPS1_TILES },
- { "kr_13.9b", 0x020000, 0x435aaa03, BRF_GRA | CPS1_TILES },
- { "kr_05.9a", 0x020000, 0x5b8a615b, BRF_GRA | CPS1_TILES },
- { "kr_24.5e", 0x020000, 0xde65153e, BRF_GRA | CPS1_TILES },
- { "kr_17.5c", 0x020000, 0xb171c968, BRF_GRA | CPS1_TILES },
- { "kr_38.8h", 0x020000, 0xf4466bf4, BRF_GRA | CPS1_TILES },
- { "kr_32.8f", 0x020000, 0x87380ddd, BRF_GRA | CPS1_TILES },
- { "kr_10.5b", 0x020000, 0x37006d66, BRF_GRA | CPS1_TILES },
- { "kr_02.5a", 0x020000, 0xb54612e3, BRF_GRA | CPS1_TILES },
- { "kr_14.10b", 0x020000, 0x0ae88766, BRF_GRA | CPS1_TILES },
- { "kr_06.10a", 0x020000, 0xecb1a09a, BRF_GRA | CPS1_TILES },
- { "kr_25.7e", 0x020000, 0x9aace189, BRF_GRA | CPS1_TILES },
- { "kr_18.7c", 0x020000, 0x09fa14a5, BRF_GRA | CPS1_TILES },
- { "kr_39.9h", 0x020000, 0xfd8a9aeb, BRF_GRA | CPS1_TILES },
- { "kr_33.9f", 0x020000, 0x11803e95, BRF_GRA | CPS1_TILES },
- { "kr_11.7b", 0x020000, 0xa967ceb3, BRF_GRA | CPS1_TILES },
- { "kr_03.7a", 0x020000, 0xea10db07, BRF_GRA | CPS1_TILES },
- { "kr_15.11b", 0x020000, 0x8140b83b, BRF_GRA | CPS1_TILES },
- { "kr_07.11a", 0x020000, 0x6af10648, BRF_GRA | CPS1_TILES },
- { "kr_26.8e", 0x020000, 0x8865d86b, BRF_GRA | CPS1_TILES },
- { "kr_19.8c", 0x020000, 0x029f4abe, BRF_GRA | CPS1_TILES },
- { "kr_28.10e", 0x020000, 0x5f84f92f, BRF_GRA | CPS1_TILES },
- { "kr_21.10c", 0x020000, 0x01b35065, BRF_GRA | CPS1_TILES },
- { "kr_12.8b", 0x020000, 0x03d945b1, BRF_GRA | CPS1_TILES },
- { "kr_04.8a", 0x020000, 0xe30c8388, BRF_GRA | CPS1_TILES },
- { "kr_16.12b", 0x020000, 0x40c39d1b, BRF_GRA | CPS1_TILES },
- { "kr_08.12a", 0x020000, 0xd310c9e8, BRF_GRA | CPS1_TILES },
- { "kr_27.9e", 0x020000, 0x3e041444, BRF_GRA | CPS1_TILES },
- { "kr_20.9c", 0x020000, 0xbd4bffb8, BRF_GRA | CPS1_TILES },
- { "kr_29.11e", 0x020000, 0x1387a076, BRF_GRA | CPS1_TILES },
- { "kr_22.11c", 0x020000, 0xfd351922, BRF_GRA | CPS1_TILES },
-
- { "kr_23.13b", 0x010000, 0x5e44d9ee, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "kr_30.12c", 0x020000, 0xda69d15f, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "kr_31.13c", 0x020000, 0xbfc654e9, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "kr22b.1a", 0x000117, 0x00000000, BRF_OPT | BRF_NODUMP }, // b-board PLDs
- { "lwio.12e", 0x000117, 0xad52b90c, BRF_OPT },
- { "ioc1.ic7", 0x000117, 0x0d182081, BRF_OPT }, // c-board PLDs
- { "c632.ic1", 0x000117, 0x0fbd9270, BRF_OPT },
-};
-
-STD_ROM_PICK(Knightsja)
-STD_ROM_FN(Knightsja)
-
-static struct BurnRomInfo KnightsbRomDesc[] = {
- { "5.ic172", 0x040000, 0x7fd91118, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "3.ic173", 0x040000, 0xc9c6e720, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "4.ic176", 0x040000, 0xaf352703, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "2.ic175", 0x040000, 0x1eb91343, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "kr_gfx1.rom", 0x080000, 0x9e36c1a4, BRF_GRA | CPS1_TILES },
- { "kr_gfx3.rom", 0x080000, 0xc5832cae, BRF_GRA | CPS1_TILES },
- { "kr_gfx2.rom", 0x080000, 0xf095be2d, BRF_GRA | CPS1_TILES },
- { "kr_gfx4.rom", 0x080000, 0x179dfd96, BRF_GRA | CPS1_TILES },
- { "kr_gfx5.rom", 0x080000, 0x1f4298d2, BRF_GRA | CPS1_TILES },
- { "kr_gfx7.rom", 0x080000, 0x37fa8751, BRF_GRA | CPS1_TILES },
- { "kr_gfx6.rom", 0x080000, 0x0200bc3d, BRF_GRA | CPS1_TILES },
- { "kr_gfx8.rom", 0x080000, 0x0bb2b4e7, BRF_GRA | CPS1_TILES },
-
- { "1.ic26", 0x040000, 0xbd6f9cc1, BRF_PRG | CPS1_Z80_PROGRAM },
-};
-
-STD_ROM_PICK(Knightsb)
-STD_ROM_FN(Knightsb)
-
-static struct BurnRomInfo Knightsb2RomDesc[] = {
- { "040-z.02", 0x080000, 0x95d00a7e, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "040-r.02", 0x080000, 0x5a9d0b64, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "kr_gfx1.rom", 0x080000, 0x9e36c1a4, BRF_GRA | CPS1_TILES },
- { "kr_gfx3.rom", 0x080000, 0xc5832cae, BRF_GRA | CPS1_TILES },
- { "kr_gfx2.rom", 0x080000, 0xf095be2d, BRF_GRA | CPS1_TILES },
- { "kr_gfx4.rom", 0x080000, 0x179dfd96, BRF_GRA | CPS1_TILES },
- { "kr_gfx5.rom", 0x080000, 0x1f4298d2, BRF_GRA | CPS1_TILES },
- { "kr_gfx7.rom", 0x080000, 0x37fa8751, BRF_GRA | CPS1_TILES },
- { "kr_gfx6.rom", 0x080000, 0x0200bc3d, BRF_GRA | CPS1_TILES },
- { "kr_gfx8.rom", 0x080000, 0x0bb2b4e7, BRF_GRA | CPS1_TILES },
-
- { "kr_09.rom", 0x010000, 0x5e44d9ee, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "kr_18.rom", 0x020000, 0xda69d15f, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "kr_19.rom", 0x020000, 0xbfc654e9, BRF_SND | CPS1_OKIM6295_SAMPLES },
-};
-
-STD_ROM_PICK(Knightsb2)
-STD_ROM_FN(Knightsb2)
-
-static struct BurnRomInfo Knightsb3RomDesc[] = {
- { "23.096", 0x080000, 0x7733b8a6, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "22.096", 0x080000, 0xd0b671a9, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "1.096", 0x080000, 0x91541596, BRF_GRA | CPS1_TILES },
- { "2.096", 0x080000, 0x5d332114, BRF_GRA | CPS1_TILES },
- { "3.096", 0x080000, 0x60488eba, BRF_GRA | CPS1_TILES },
- { "4.096", 0x080000, 0x394bdd11, BRF_GRA | CPS1_TILES },
- { "5.096", 0x080000, 0xb52af98b, BRF_GRA | CPS1_TILES },
- { "6.096", 0x080000, 0xe44e5eac, BRF_GRA | CPS1_TILES },
- { "7.096", 0x080000, 0x0200bc3d, BRF_GRA | CPS1_TILES },
- { "8.096", 0x080000, 0x0bb2b4e7, BRF_GRA | CPS1_TILES },
-
- { "9.512", 0x010000, 0x5e44d9ee, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "18.010", 0x020000, 0x9b9be3ab, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "19.010", 0x020000, 0xbfc654e9, BRF_SND | CPS1_OKIM6295_SAMPLES },
-};
-
-STD_ROM_PICK(Knightsb3)
-STD_ROM_FN(Knightsb3)
-
-static struct BurnRomInfo Knightsb4RomDesc[] = {
- { "3.bin", 0x080000, 0xb818272c, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "2.bin", 0x080000, 0xb0b9a4c2, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "kr_gfx1.rom", 0x080000, 0x9e36c1a4, BRF_GRA | CPS1_TILES },
- { "kr_gfx3.rom", 0x080000, 0xc5832cae, BRF_GRA | CPS1_TILES },
- { "kr_gfx2.rom", 0x080000, 0xf095be2d, BRF_GRA | CPS1_TILES },
- { "kr_gfx4.rom", 0x080000, 0x179dfd96, BRF_GRA | CPS1_TILES },
- { "kr_gfx5.rom", 0x080000, 0x1f4298d2, BRF_GRA | CPS1_TILES },
- { "kr_gfx7.rom", 0x080000, 0x37fa8751, BRF_GRA | CPS1_TILES },
- { "kr_gfx6.rom", 0x080000, 0x0200bc3d, BRF_GRA | CPS1_TILES },
- { "kr_gfx8.rom", 0x080000, 0x0bb2b4e7, BRF_GRA | CPS1_TILES },
-
- { "1.bin", 0x040000, 0xbd6f9cc1, BRF_PRG | CPS1_Z80_PROGRAM },
-};
-
-STD_ROM_PICK(Knightsb4)
-STD_ROM_FN(Knightsb4)
-
-static struct BurnRomInfo KnightshRomDesc[] = {
- { "krh_23.rom", 0x080000, 0xfa2ff63d, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "krh_22.rom", 0x080000, 0x1438d070, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "kr_gfx1.rom", 0x080000, 0x9e36c1a4, BRF_GRA | CPS1_TILES },
- { "kr_gfx3.rom", 0x080000, 0xc5832cae, BRF_GRA | CPS1_TILES },
- { "kr_gfx2.rom", 0x080000, 0xf095be2d, BRF_GRA | CPS1_TILES },
- { "kr_gfx4.rom", 0x080000, 0x179dfd96, BRF_GRA | CPS1_TILES },
- { "kr_gfx5.rom", 0x080000, 0x1f4298d2, BRF_GRA | CPS1_TILES },
- { "kr_gfx7.rom", 0x080000, 0x37fa8751, BRF_GRA | CPS1_TILES },
- { "kr_gfx6.rom", 0x080000, 0x0200bc3d, BRF_GRA | CPS1_TILES },
- { "kr_gfx8.rom", 0x080000, 0x0bb2b4e7, BRF_GRA | CPS1_TILES },
-
- { "kr_09.rom", 0x010000, 0x5e44d9ee, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "kr_18.rom", 0x020000, 0xda69d15f, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "kr_19.rom", 0x020000, 0xbfc654e9, BRF_SND | CPS1_OKIM6295_SAMPLES },
-};
-
-STD_ROM_PICK(Knightsh)
-STD_ROM_FN(Knightsh)
-
-static struct BurnRomInfo Knightsh2RomDesc[] = {
- { "krha_23.rom", 0x080000, 0xa7fd309a, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "krh_22.rom", 0x080000, 0x1438d070, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "kr_gfx1.rom", 0x080000, 0x9e36c1a4, BRF_GRA | CPS1_TILES },
- { "kr_gfx3.rom", 0x080000, 0xc5832cae, BRF_GRA | CPS1_TILES },
- { "kr_gfx2.rom", 0x080000, 0xf095be2d, BRF_GRA | CPS1_TILES },
- { "kr_gfx4.rom", 0x080000, 0x179dfd96, BRF_GRA | CPS1_TILES },
- { "kr_gfx5.rom", 0x080000, 0x1f4298d2, BRF_GRA | CPS1_TILES },
- { "kr_gfx7.rom", 0x080000, 0x37fa8751, BRF_GRA | CPS1_TILES },
- { "kr_gfx6.rom", 0x080000, 0x0200bc3d, BRF_GRA | CPS1_TILES },
- { "kr_gfx8.rom", 0x080000, 0x0bb2b4e7, BRF_GRA | CPS1_TILES },
-
- { "kr_09.rom", 0x010000, 0x5e44d9ee, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "kr_18.rom", 0x020000, 0xda69d15f, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "kr_19.rom", 0x020000, 0xbfc654e9, BRF_SND | CPS1_OKIM6295_SAMPLES },
-};
-
-STD_ROM_PICK(Knightsh2)
-STD_ROM_FN(Knightsh2)
-
-static struct BurnRomInfo KodRomDesc[] = {
- { "kde_30a.11e", 0x020000, 0xfcb5efe2, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "kde_37a.11f", 0x020000, 0xf22e5266, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "kde_31a.12e", 0x020000, 0xc710d722, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "kde_38a.12f", 0x020000, 0x57d6ed3a, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "kd_28.9e", 0x020000, 0x9367bcd9, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "kd_35.9f", 0x020000, 0x4ca6a48a, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "kd_29.10e", 0x020000, 0x0360fa72, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "kd_36a.10f", 0x020000, 0x95a3cef8, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "kd-5m.4a", 0x080000, 0xe45b8701, BRF_GRA | CPS1_TILES },
- { "kd-7m.6a", 0x080000, 0xa7750322, BRF_GRA | CPS1_TILES },
- { "kd-1m.3a", 0x080000, 0x5f74bf78, BRF_GRA | CPS1_TILES },
- { "kd-3m.5a", 0x080000, 0x5e5303bf, BRF_GRA | CPS1_TILES },
- { "kd-6m.4c", 0x080000, 0x113358f3, BRF_GRA | CPS1_TILES },
- { "kd-8m.6c", 0x080000, 0x38853c44, BRF_GRA | CPS1_TILES },
- { "kd-2m.3c", 0x080000, 0x9ef36604, BRF_GRA | CPS1_TILES },
- { "kd-4m.5c", 0x080000, 0x402b9b4f, BRF_GRA | CPS1_TILES },
-
- { "kd_9.12a", 0x010000, 0xbac6ec26, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "kd_18.11c", 0x020000, 0x4c63181d, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "kd_19.12c", 0x020000, 0x92941b80, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
-#if !defined (ROM_VERIFY)
- { "kd29b.1a", 0x000117, 0xcc4866ff, BRF_OPT }, // b-board PLDs
-#else
- { "kd29b.1a", 0x000117, 0x00000000, BRF_OPT | BRF_NODUMP }, // b-board PLDs
-#endif
- { "iob1.11d", 0x000117, 0x3abc0700, BRF_OPT },
- { "ioc1.ic7", 0x000117, 0x0d182081, BRF_OPT }, // c-board PLDs
- { "c632.ic1", 0x000117, 0x0fbd9270, BRF_OPT },
-};
-
-STD_ROM_PICK(Kod)
-STD_ROM_FN(Kod)
-
-static struct BurnRomInfo Kodr1RomDesc[] = {
- { "kde_30.11e", 0x020000, 0xc7414fd4, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "kde_37.11f", 0x020000, 0xa5bf40d2, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "kde_31.12e", 0x020000, 0x1fffc7bd, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "kde_38.12f", 0x020000, 0x89e57a82, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "kde_28.9e", 0x020000, 0x9367bcd9, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "kde_35.9f", 0x020000, 0x4ca6a48a, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "kde_29.10e", 0x020000, 0x6a0ba878, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "kde_36.10f", 0x020000, 0xb509b39d, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "kd-5m.4a", 0x080000, 0xe45b8701, BRF_GRA | CPS1_TILES },
- { "kd-7m.6a", 0x080000, 0xa7750322, BRF_GRA | CPS1_TILES },
- { "kd-1m.3a", 0x080000, 0x5f74bf78, BRF_GRA | CPS1_TILES },
- { "kd-3m.5a", 0x080000, 0x5e5303bf, BRF_GRA | CPS1_TILES },
- { "kd-6m.4c", 0x080000, 0x113358f3, BRF_GRA | CPS1_TILES },
- { "kd-8m.6c", 0x080000, 0x38853c44, BRF_GRA | CPS1_TILES },
- { "kd-2m.3c", 0x080000, 0x9ef36604, BRF_GRA | CPS1_TILES },
- { "kd-4m.5c", 0x080000, 0x402b9b4f, BRF_GRA | CPS1_TILES },
-
- { "kd_9.12a", 0x010000, 0xf5514510, BRF_PRG | CPS1_Z80_PROGRAM }, // different CRC from kod, pcb verified
-
- { "kd_18.11c", 0x020000, 0x69ecb2c8, BRF_SND | CPS1_OKIM6295_SAMPLES }, // different CRC from kod, pcb verified
- { "kd_19.12c", 0x020000, 0x02d851c1, BRF_SND | CPS1_OKIM6295_SAMPLES }, // different CRC from kod, pcb verified
-
- A_BOARD_PLDS
-
-#if !defined (ROM_VERIFY)
- { "kd29b.1a", 0x000117, 0xcc4866ff, BRF_OPT }, // b-board PLDs
-#else
- { "kd29b.1a", 0x000117, 0x00000000, BRF_OPT | BRF_NODUMP }, // b-board PLDs
-#endif
- { "iob1.11d", 0x000117, 0x3abc0700, BRF_OPT },
- { "ioc1.ic7", 0x000117, 0x0d182081, BRF_OPT }, // c-board PLDs
- { "c632.ic1", 0x000117, 0x0fbd9270, BRF_OPT },
-};
-
-STD_ROM_PICK(Kodr1)
-STD_ROM_FN(Kodr1)
-
-static struct BurnRomInfo KoduRomDesc[] = {
- { "kdu_30b.11e", 0x020000, 0x825817f9, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "kdu_37b.11f", 0x020000, 0xd2422dfb, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "kdu_31b.12e", 0x020000, 0x9af36039, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "kdu_38b.12f", 0x020000, 0xbe8405a1, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "kdu_28.9e", 0x020000, 0x9367bcd9, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "kdu_35.9f", 0x020000, 0x4ca6a48a, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "kdu_29.10e", 0x020000, 0x0360fa72, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "kdu_36a.10f", 0x020000, 0x95a3cef8, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "kd-5m.4a", 0x080000, 0xe45b8701, BRF_GRA | CPS1_TILES },
- { "kd-7m.6a", 0x080000, 0xa7750322, BRF_GRA | CPS1_TILES },
- { "kd-1m.3a", 0x080000, 0x5f74bf78, BRF_GRA | CPS1_TILES },
- { "kd-3m.5a", 0x080000, 0x5e5303bf, BRF_GRA | CPS1_TILES },
- { "kd-6m.4c", 0x080000, 0x113358f3, BRF_GRA | CPS1_TILES },
- { "kd-8m.6c", 0x080000, 0x38853c44, BRF_GRA | CPS1_TILES },
- { "kd-2m.3c", 0x080000, 0x9ef36604, BRF_GRA | CPS1_TILES },
- { "kd-4m.5c", 0x080000, 0x402b9b4f, BRF_GRA | CPS1_TILES },
-
- { "kd_09.12a", 0x010000, 0xbac6ec26, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "kd_18.11c", 0x020000, 0x4c63181d, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "kd_19.12c", 0x020000, 0x92941b80, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
-#if !defined (ROM_VERIFY)
- { "kd29b.1a", 0x000117, 0xcc4866ff, BRF_OPT }, // b-board PLDs
-#else
- { "kd29b.1a", 0x000117, 0x00000000, BRF_OPT | BRF_NODUMP }, // b-board PLDs
-#endif
- { "iob1.11d", 0x000117, 0x3abc0700, BRF_OPT },
- { "ioc1.ic7", 0x000117, 0x0d182081, BRF_OPT }, // c-board PLDs
- { "c632.ic1", 0x000117, 0x0fbd9270, BRF_OPT },
-};
-
-STD_ROM_PICK(Kodu)
-STD_ROM_FN(Kodu)
-
-static struct BurnRomInfo KodjRomDesc[] = {
- { "kdj_30a.11e", 0x020000, 0xebc788ad, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "kdj_37a.11f", 0x020000, 0xe55c3529, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "kdj_31a.12e", 0x020000, 0xc710d722, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "kdj_38a.12f", 0x020000, 0x57d6ed3a, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "kd_33.6f", 0x080000, 0x9bd7ad4b, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "kd_06.8a", 0x080000, 0xe45b8701, BRF_GRA | CPS1_TILES },
- { "kd_08.10a", 0x080000, 0xa7750322, BRF_GRA | CPS1_TILES },
- { "kd_05.7a", 0x080000, 0x5f74bf78, BRF_GRA | CPS1_TILES },
- { "kd_07.9a", 0x080000, 0x5e5303bf, BRF_GRA | CPS1_TILES },
- { "kd_15.8c", 0x080000, 0x113358f3, BRF_GRA | CPS1_TILES },
- { "kd_17.10c", 0x080000, 0x38853c44, BRF_GRA | CPS1_TILES },
- { "kd_14.7c", 0x080000, 0x9ef36604, BRF_GRA | CPS1_TILES },
- { "kd_16.9c", 0x080000, 0x402b9b4f, BRF_GRA | CPS1_TILES },
-
- { "kd_09.12a", 0x010000, 0xbac6ec26, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "kd_18.11c", 0x020000, 0x4c63181d, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "kd_19.12c", 0x020000, 0x92941b80, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
-#if !defined (ROM_VERIFY)
- { "kd29b.1a", 0x000117, 0xcc4866ff, BRF_OPT }, // b-board PLDs
-#else
- { "kd29b.1a", 0x000117, 0x00000000, BRF_OPT | BRF_NODUMP }, // b-board PLDs
-#endif
- { "iob1.11d", 0x000117, 0x3abc0700, BRF_OPT },
- { "ioc1.ic7", 0x000117, 0x0d182081, BRF_OPT }, // c-board PLDs
- { "c632.ic1", 0x000117, 0x0fbd9270, BRF_OPT },
-};
-
-STD_ROM_PICK(Kodj)
-STD_ROM_FN(Kodj)
-
-static struct BurnRomInfo KodjaRomDesc[] = {
- { "kdj_36a.12f", 0x020000, 0xebc788ad, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "kdj_42a.12h", 0x020000, 0xe55c3529, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "kdj_37a.13f", 0x020000, 0xc710d722, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "kdj_43a.13h", 0x020000, 0x57d6ed3a, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "kd_34.10f", 0x020000, 0x9367bcd9, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "kd_40.10h", 0x020000, 0x4ca6a48a, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "kd_35.11f", 0x020000, 0x0360fa72, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "kd_41a.11h", 0x020000, 0x95a3cef8, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "kd_9.4b", 0x020000, 0x401a98e3, BRF_GRA | CPS1_TILES },
- { "kd_1.4a", 0x020000, 0x5894399a, BRF_GRA | CPS1_TILES },
- { "kd_13.9b", 0x020000, 0xb6685131, BRF_GRA | CPS1_TILES },
- { "kd_5.9a", 0x020000, 0xc29b9ab3, BRF_GRA | CPS1_TILES },
- { "kd_24.5e", 0x020000, 0x97008fdb, BRF_GRA | CPS1_TILES },
- { "kd_17.5c", 0x020000, 0xdc9a83d3, BRF_GRA | CPS1_TILES },
- { "kd_38.8h", 0x020000, 0x9c3dd2d1, BRF_GRA | CPS1_TILES },
- { "kd_32.8f", 0x020000, 0x1b2a802a, BRF_GRA | CPS1_TILES },
- { "kd_10.5b", 0x020000, 0xe788ae96, BRF_GRA | CPS1_TILES },
- { "kd_2.5a", 0x020000, 0xb022e3e3, BRF_GRA | CPS1_TILES },
- { "kd_14.10b", 0x020000, 0x4840c5ef, BRF_GRA | CPS1_TILES },
- { "kd_6.10a", 0x020000, 0x519faee4, BRF_GRA | CPS1_TILES },
- { "kd_25.7e", 0x020000, 0x5d0fa853, BRF_GRA | CPS1_TILES },
- { "kd_18.7c", 0x020000, 0x6ad3b2bb, BRF_GRA | CPS1_TILES },
- { "kd_39.9h", 0x020000, 0xd7920213, BRF_GRA | CPS1_TILES },
- { "kd_33.9f", 0x020000, 0x65c2bed6, BRF_GRA | CPS1_TILES },
- { "kd_11.7b", 0x020000, 0x147e3310, BRF_GRA | CPS1_TILES },
- { "kd_3.7a", 0x020000, 0x5d18bc83, BRF_GRA | CPS1_TILES },
- { "kd_15.11b", 0x020000, 0x57359746, BRF_GRA | CPS1_TILES },
- { "kd_7.11a", 0x020000, 0x7fe03079, BRF_GRA | CPS1_TILES },
- { "kd_26.8e", 0x020000, 0x57e5fab5, BRF_GRA | CPS1_TILES },
- { "kd_19.8c", 0x020000, 0xb1f30f7c, BRF_GRA | CPS1_TILES },
- { "kd_28.10e", 0x020000, 0x3a424135, BRF_GRA | CPS1_TILES },
- { "kd_21.10c", 0x020000, 0xce10d2c3, BRF_GRA | CPS1_TILES },
- { "kd_12.8b", 0x020000, 0xa6042aa2, BRF_GRA | CPS1_TILES },
- { "kd_4.8a", 0x020000, 0x0ce0ba30, BRF_GRA | CPS1_TILES },
- { "kd_16.12b", 0x020000, 0x63dcb7e0, BRF_GRA | CPS1_TILES },
- { "kd_8.12a", 0x020000, 0xc69b77ae, BRF_GRA | CPS1_TILES },
- { "kd_27.9e", 0x020000, 0x40d7bfed, BRF_GRA | CPS1_TILES },
- { "kd_20.9c", 0x020000, 0x01c1f399, BRF_GRA | CPS1_TILES },
- { "kd_29.11e", 0x020000, 0xa1eeac03, BRF_GRA | CPS1_TILES },
- { "kd_22.11c", 0x020000, 0x5ade98eb, BRF_GRA | CPS1_TILES },
-
- { "kd_23.13b", 0x010000, 0xbac6ec26, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "kd_30.12c", 0x020000, 0x4c63181d, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "kd_31.13c", 0x020000, 0x92941b80, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "kd22b.1a", 0x000117, 0x00000000, BRF_OPT | BRF_NODUMP }, // b-board PLDs
- { "iob1.12e", 0x000117, 0x3abc0700, BRF_OPT },
- { "ioc1.ic7", 0x000117, 0x0d182081, BRF_OPT }, // c-board PLDs
- { "c632.ic1", 0x000117, 0x0fbd9270, BRF_OPT },
-};
-
-STD_ROM_PICK(Kodja)
-STD_ROM_FN(Kodja)
-
-static struct BurnRomInfo KodbRomDesc[] = {
- { "3.ic172", 0x080000, 0x036dd74c, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "4.ic171", 0x080000, 0x3e4b7295, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "cp.ic90", 0x080000, 0xe3b8589e, BRF_GRA | CPS1_TILES },
- { "dp.ic89", 0x080000, 0x3eec9580, BRF_GRA | CPS1_TILES },
- { "ap.ic88", 0x080000, 0xfdf5f163, BRF_GRA | CPS1_TILES },
- { "bp.ic87", 0x080000, 0x4e1c52b7, BRF_GRA | CPS1_TILES },
- { "ci.ic91", 0x080000, 0x22228bc5, BRF_GRA | CPS1_TILES },
- { "di.ic92", 0x080000, 0xab031763, BRF_GRA | CPS1_TILES },
- { "ai.ic93", 0x080000, 0xcffbf4be, BRF_GRA | CPS1_TILES },
- { "bi.ic94", 0x080000, 0x4a1b43fe, BRF_GRA | CPS1_TILES },
-
- { "1.ic28", 0x010000, 0x01cae60c, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "2.ic19", 0x040000, 0xa2db1575, BRF_SND | CPS1_OKIM6295_SAMPLES },
-};
-
-STD_ROM_PICK(Kodb)
-STD_ROM_FN(Kodb)
-
-static struct BurnRomInfo KodhRomDesc[] = {
- { "23.096", 0x080000, 0xdaf89cfb, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "22.096", 0x080000, 0xc83e19d8, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "1.096", 0x080000, 0x09261881, BRF_GRA | CPS1_TILES },
- { "2.096", 0x080000, 0xbc121ff2, BRF_GRA | CPS1_TILES },
- { "3.096", 0x080000, 0xf463ae22, BRF_GRA | CPS1_TILES },
- { "4.096", 0x080000, 0x01308733, BRF_GRA | CPS1_TILES },
- { "5.096", 0x080000, 0x113358f3, BRF_GRA | CPS1_TILES },
- { "6.096", 0x080000, 0x38853c44, BRF_GRA | CPS1_TILES },
- { "7.096", 0x080000, 0xc7ab4704, BRF_GRA | CPS1_TILES },
- { "8.096", 0x080000, 0x402b9b4f, BRF_GRA | CPS1_TILES },
-
- { "9.096", 0x010000, 0xf5514510, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "18.096", 0x020000, 0x69ecb2c8, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "19.096", 0x020000, 0x02d851c1, BRF_SND | CPS1_OKIM6295_SAMPLES },
-};
-
-STD_ROM_PICK(Kodh)
-STD_ROM_FN(Kodh)
-
-// King Of Dragons 910731 ETC Phoenix set
-
-static struct BurnRomInfo KoddaRomDesc[] = {
- { "8f", 0x080000, 0x0a6ab826, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "7f", 0x080000, 0x9bd7ad4b, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "kd-5m.4a", 0x080000, 0xe45b8701, BRF_GRA | CPS1_TILES },
- { "kd-7m.6a", 0x080000, 0xa7750322, BRF_GRA | CPS1_TILES },
- { "kd-1m.3a", 0x080000, 0x5f74bf78, BRF_GRA | CPS1_TILES },
- { "kdda-7m.6a", 0x080000, 0x0e2cb76f, BRF_GRA | CPS1_TILES },
- { "kd-6m.4c", 0x080000, 0x113358f3, BRF_GRA | CPS1_TILES },
- { "kd-8m.6c", 0x080000, 0x38853c44, BRF_GRA | CPS1_TILES },
- { "kd-2m.3c", 0x080000, 0x9ef36604, BRF_GRA | CPS1_TILES },
- { "kd-4m.5c", 0x080000, 0x402b9b4f, BRF_GRA | CPS1_TILES },
-
- { "kd_9.12a", 0x010000, 0xbac6ec26, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "kd_18.11c", 0x020000, 0x4c63181d, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "kd_19.12c", 0x020000, 0x92941b80, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
-#if !defined (ROM_VERIFY)
- { "kd29b.1a", 0x000117, 0xcc4866ff, BRF_OPT }, // b-board PLDs
-#else
- { "kd29b.1a", 0x000117, 0x00000000, BRF_OPT | BRF_NODUMP }, // b-board PLDs
-#endif
- { "iob1.11d", 0x000117, 0x3abc0700, BRF_OPT },
- { "ioc1.ic7", 0x000117, 0x0d182081, BRF_OPT }, // c-board PLDs
- { "c632.ic1", 0x000117, 0x0fbd9270, BRF_OPT },
-};
-
-STD_ROM_PICK(Kodda)
-STD_ROM_FN(Kodda)
-
-static struct BurnRomInfo MegamanRomDesc[] = {
- { "rcmu_23b.8f", 0x080000, 0x1cd33c7a, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "rcmu_22b.7f", 0x080000, 0x708268c4, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "rcmu_21a.6f", 0x080000, 0x4376ea95, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "rcm_01.3a", 0x080000, 0x6ecdf13f, BRF_GRA | CPS1_TILES },
- { "rcm_02.4a", 0x080000, 0x944d4f0f, BRF_GRA | CPS1_TILES },
- { "rcm_03.5a", 0x080000, 0x36f3073c, BRF_GRA | CPS1_TILES },
- { "rcm_04.6a", 0x080000, 0x54e622ff, BRF_GRA | CPS1_TILES },
- { "rcm_05.7a", 0x080000, 0x5dd131fd, BRF_GRA | CPS1_TILES },
- { "rcm_06.8a", 0x080000, 0xf0faf813, BRF_GRA | CPS1_TILES },
- { "rcm_07.9a", 0x080000, 0x826de013, BRF_GRA | CPS1_TILES },
- { "rcm_08.10a", 0x080000, 0xfbff64cf, BRF_GRA | CPS1_TILES },
- { "rcm_10.3c", 0x080000, 0x4dc8ada9, BRF_GRA | CPS1_TILES },
- { "rcm_11.4c", 0x080000, 0xf2b9ee06, BRF_GRA | CPS1_TILES },
- { "rcm_12.5c", 0x080000, 0xfed5f203, BRF_GRA | CPS1_TILES },
- { "rcm_13.6c", 0x080000, 0x5069d4a9, BRF_GRA | CPS1_TILES },
- { "rcm_14.7c", 0x080000, 0x303be3bd, BRF_GRA | CPS1_TILES },
- { "rcm_15.8c", 0x080000, 0x4f2d372f, BRF_GRA | CPS1_TILES },
- { "rcm_16.9c", 0x080000, 0x93d97fde, BRF_GRA | CPS1_TILES },
- { "rcm_17.10c", 0x080000, 0x92371042, BRF_GRA | CPS1_TILES },
-
- { "rcm_09.11a", 0x010000, 0x22ac8f5f, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "rcm_18.11c", 0x020000, 0x80f1f8aa, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "rcm_19.12c", 0x020000, 0xf257dbe1, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "rcm63b.1a", 0x000117, 0x84acd494, BRF_OPT }, // b-board PLDs
- { "iob1.12d", 0x000117, 0x3abc0700, BRF_OPT },
- { "bprg1.11d", 0x000117, 0x31793da7, BRF_OPT },
- { "ioc1.ic7", 0x000117, 0x0d182081, BRF_OPT }, // c-board PLDs
- { "c632.ic1", 0x000117, 0x0fbd9270, BRF_OPT },
-};
-
-STD_ROM_PICK(Megaman)
-STD_ROM_FN(Megaman)
-
-static struct BurnRomInfo MegamanaRomDesc[] = {
- { "rcma_23b.8f", 0x080000, 0x61e4a397, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "rcma_22b.7f", 0x080000, 0x708268c4, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "rcma_21a.6f", 0x080000, 0x4376ea95, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "rcm_01.3a", 0x080000, 0x6ecdf13f, BRF_GRA | CPS1_TILES },
- { "rcm_02.4a", 0x080000, 0x944d4f0f, BRF_GRA | CPS1_TILES },
- { "rcm_03.5a", 0x080000, 0x36f3073c, BRF_GRA | CPS1_TILES },
- { "rcm_04.6a", 0x080000, 0x54e622ff, BRF_GRA | CPS1_TILES },
- { "rcm_05.7a", 0x080000, 0x5dd131fd, BRF_GRA | CPS1_TILES },
- { "rcm_06.8a", 0x080000, 0xf0faf813, BRF_GRA | CPS1_TILES },
- { "rcm_07.9a", 0x080000, 0x826de013, BRF_GRA | CPS1_TILES },
- { "rcm_08.10a", 0x080000, 0xfbff64cf, BRF_GRA | CPS1_TILES },
- { "rcm_10.3c", 0x080000, 0x4dc8ada9, BRF_GRA | CPS1_TILES },
- { "rcm_11.4c", 0x080000, 0xf2b9ee06, BRF_GRA | CPS1_TILES },
- { "rcm_12.5c", 0x080000, 0xfed5f203, BRF_GRA | CPS1_TILES },
- { "rcm_13.6c", 0x080000, 0x5069d4a9, BRF_GRA | CPS1_TILES },
- { "rcm_14.7c", 0x080000, 0x303be3bd, BRF_GRA | CPS1_TILES },
- { "rcm_15.8c", 0x080000, 0x4f2d372f, BRF_GRA | CPS1_TILES },
- { "rcm_16.9c", 0x080000, 0x93d97fde, BRF_GRA | CPS1_TILES },
- { "rcm_17.10c", 0x080000, 0x92371042, BRF_GRA | CPS1_TILES },
-
- { "rcm_09.12a", 0x020000, 0x9632d6ef, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "rcm_18.11c", 0x020000, 0x80f1f8aa, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "rcm_19.12c", 0x020000, 0xf257dbe1, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "rcm63b.1a", 0x000117, 0x84acd494, BRF_OPT }, // b-board PLDs
- { "iob1.12d", 0x000117, 0x3abc0700, BRF_OPT },
- { "bprg1.11d", 0x000117, 0x31793da7, BRF_OPT },
- { "ioc1.ic7", 0x000117, 0x0d182081, BRF_OPT }, // c-board PLDs
- { "c632.ic1", 0x000117, 0x0fbd9270, BRF_OPT },
-};
-
-STD_ROM_PICK(Megamana)
-STD_ROM_FN(Megamana)
-
-static struct BurnRomInfo RockmanjRomDesc[] = {
- { "rcm_23a.8f", 0x080000, 0xefd96cb2, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "rcm_22a.7f", 0x080000, 0x8729a689, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "rcm_21a.6f", 0x080000, 0x517ccde2, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "rcm_01.3a", 0x080000, 0x6ecdf13f, BRF_GRA | CPS1_TILES },
- { "rcm_02.4a", 0x080000, 0x944d4f0f, BRF_GRA | CPS1_TILES },
- { "rcm_03.5a", 0x080000, 0x36f3073c, BRF_GRA | CPS1_TILES },
- { "rcm_04.6a", 0x080000, 0x54e622ff, BRF_GRA | CPS1_TILES },
- { "rcm_05.7a", 0x080000, 0x5dd131fd, BRF_GRA | CPS1_TILES },
- { "rcm_06.8a", 0x080000, 0xf0faf813, BRF_GRA | CPS1_TILES },
- { "rcm_07.9a", 0x080000, 0x826de013, BRF_GRA | CPS1_TILES },
- { "rcm_08.10a", 0x080000, 0xfbff64cf, BRF_GRA | CPS1_TILES },
- { "rcm_10.3c", 0x080000, 0x4dc8ada9, BRF_GRA | CPS1_TILES },
- { "rcm_11.4c", 0x080000, 0xf2b9ee06, BRF_GRA | CPS1_TILES },
- { "rcm_12.5c", 0x080000, 0xfed5f203, BRF_GRA | CPS1_TILES },
- { "rcm_13.6c", 0x080000, 0x5069d4a9, BRF_GRA | CPS1_TILES },
- { "rcm_14.7c", 0x080000, 0x303be3bd, BRF_GRA | CPS1_TILES },
- { "rcm_15.8c", 0x080000, 0x4f2d372f, BRF_GRA | CPS1_TILES },
- { "rcm_16.9c", 0x080000, 0x93d97fde, BRF_GRA | CPS1_TILES },
- { "rcm_17.10c", 0x080000, 0x92371042, BRF_GRA | CPS1_TILES },
-
- { "rcm_09.12a", 0x020000, 0x9632d6ef, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "rcm_18.11c", 0x020000, 0x80f1f8aa, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "rcm_19.12c", 0x020000, 0xf257dbe1, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "rcm63b.1a", 0x000117, 0x84acd494, BRF_OPT }, // b-board PLDs
- { "iob1.12d", 0x000117, 0x3abc0700, BRF_OPT },
- { "bprg1.11d", 0x000117, 0x31793da7, BRF_OPT },
- { "ioc1.ic7", 0x000117, 0x0d182081, BRF_OPT }, // c-board PLDs
- { "c632.ic1", 0x000117, 0x0fbd9270, BRF_OPT },
-};
-
-STD_ROM_PICK(Rockmanj)
-STD_ROM_FN(Rockmanj)
-
-static struct BurnRomInfo MercsRomDesc[] = {
- { "so2_30e.11f", 0x020000, 0xe17f9bf7, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "so2_35e.11h", 0x020000, 0x78e63575, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "so2_31e.12f", 0x020000, 0x51204d36, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "so2_36e.12h", 0x020000, 0x9cfba8b4, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "so2-32m.8h", 0x080000, 0x2eb5cf0c, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "so2-6m.8a", 0x080000, 0xaa6102af, BRF_GRA | CPS1_TILES },
- { "so2-8m.10a", 0x080000, 0x839e6869, BRF_GRA | CPS1_TILES },
- { "so2-2m.4a", 0x080000, 0x597c2875, BRF_GRA | CPS1_TILES },
- { "so2-4m.6a", 0x080000, 0x912a9ca0, BRF_GRA | CPS1_TILES },
- { "so2_24.7d", 0x020000, 0x3f254efe, BRF_GRA | CPS1_TILES },
- { "so2_14.7c", 0x020000, 0xf5a8905e, BRF_GRA | CPS1_TILES },
- { "so2_26.9d", 0x020000, 0xf3aa5a4a, BRF_GRA | CPS1_TILES },
- { "so2_16.9c", 0x020000, 0xb43cd1a8, BRF_GRA | CPS1_TILES },
- { "so2_20.3d", 0x020000, 0x8ca751a3, BRF_GRA | CPS1_TILES },
- { "so2_10.3c", 0x020000, 0xe9f569fd, BRF_GRA | CPS1_TILES },
- { "so2_22.5d", 0x020000, 0xfce9a377, BRF_GRA | CPS1_TILES },
- { "so2_12.5c", 0x020000, 0xb7df8a06, BRF_GRA | CPS1_TILES },
-
- { "so2_09.12b", 0x010000, 0xd09d7c7a, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "so2_18.11c", 0x020000, 0xbbea1643, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "so2_19.12c", 0x020000, 0xac58aa71, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "o224b.1a", 0x000117, 0xc211c8cd, BRF_OPT }, // b-board PLDs
- { "iob1.11e", 0x000117, 0x3abc0700, BRF_OPT },
- { "c628", 0x000117, 0x00000000, BRF_OPT | BRF_NODUMP }, // c-board PLDs
-};
-
-STD_ROM_PICK(Mercs)
-STD_ROM_FN(Mercs)
-
-static struct BurnRomInfo MercsuRomDesc[] = {
- { "so2_30a.11f", 0x020000, 0xe4e725d7, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "so2_35a.11h", 0x020000, 0xe7843445, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "so2_31a.12f", 0x020000, 0xc0b91dea, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "so2_36a.12h", 0x020000, 0x591edf6c, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "so2-32m.8h", 0x080000, 0x2eb5cf0c, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "so2-6m.8a", 0x080000, 0xaa6102af, BRF_GRA | CPS1_TILES },
- { "so2-8m.10a", 0x080000, 0x839e6869, BRF_GRA | CPS1_TILES },
- { "so2-2m.4a", 0x080000, 0x597c2875, BRF_GRA | CPS1_TILES },
- { "so2-4m.6a", 0x080000, 0x912a9ca0, BRF_GRA | CPS1_TILES },
- { "so2_24.7d", 0x020000, 0x3f254efe, BRF_GRA | CPS1_TILES },
- { "so2_14.7c", 0x020000, 0xf5a8905e, BRF_GRA | CPS1_TILES },
- { "so2_26.9d", 0x020000, 0xf3aa5a4a, BRF_GRA | CPS1_TILES },
- { "so2_16.9c", 0x020000, 0xb43cd1a8, BRF_GRA | CPS1_TILES },
- { "so2_20.3d", 0x020000, 0x8ca751a3, BRF_GRA | CPS1_TILES },
- { "so2_10.3c", 0x020000, 0xe9f569fd, BRF_GRA | CPS1_TILES },
- { "so2_22.5d", 0x020000, 0xfce9a377, BRF_GRA | CPS1_TILES },
- { "so2_12.5c", 0x020000, 0xb7df8a06, BRF_GRA | CPS1_TILES },
-
- { "so2_09.12b", 0x010000, 0xd09d7c7a, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "so2_18.11c", 0x020000, 0xbbea1643, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "so2_19.12c", 0x020000, 0xac58aa71, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "o224b.1a", 0x000117, 0xc211c8cd, BRF_OPT }, // b-board PLDs
- { "iob1.11e", 0x000117, 0x3abc0700, BRF_OPT },
- { "c628", 0x000117, 0x00000000, BRF_OPT | BRF_NODUMP }, // c-board PLDs
-};
-
-STD_ROM_PICK(Mercsu)
-STD_ROM_FN(Mercsu)
-
-static struct BurnRomInfo Mercsur1RomDesc[] = {
- { "so2_30.11f", 0x020000, 0xe17f9bf7, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "so2_35.11h", 0x020000, 0x4477df61, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "so2_31.12f", 0x020000, 0x51204d36, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "so2_36.12h", 0x020000, 0x9cfba8b4, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "so2-32m.8h", 0x080000, 0x2eb5cf0c, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "so2-6m.8a", 0x080000, 0xaa6102af, BRF_GRA | CPS1_TILES },
- { "so2-8m.10a", 0x080000, 0x839e6869, BRF_GRA | CPS1_TILES },
- { "so2-2m.4a", 0x080000, 0x597c2875, BRF_GRA | CPS1_TILES },
- { "so2-4m.6a", 0x080000, 0x912a9ca0, BRF_GRA | CPS1_TILES },
- { "so2_24.7d", 0x020000, 0x3f254efe, BRF_GRA | CPS1_TILES },
- { "so2_14.7c", 0x020000, 0xf5a8905e, BRF_GRA | CPS1_TILES },
- { "so2_26.9d", 0x020000, 0xf3aa5a4a, BRF_GRA | CPS1_TILES },
- { "so2_16.9c", 0x020000, 0xb43cd1a8, BRF_GRA | CPS1_TILES },
- { "so2_20.3d", 0x020000, 0x8ca751a3, BRF_GRA | CPS1_TILES },
- { "so2_10.3c", 0x020000, 0xe9f569fd, BRF_GRA | CPS1_TILES },
- { "so2_22.5d", 0x020000, 0xfce9a377, BRF_GRA | CPS1_TILES },
- { "so2_12.5c", 0x020000, 0xb7df8a06, BRF_GRA | CPS1_TILES },
-
- { "so2_09.12b", 0x010000, 0xd09d7c7a, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "so2_18.11c", 0x020000, 0xbbea1643, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "so2_19.12c", 0x020000, 0xac58aa71, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "o224b.1a", 0x000117, 0xc211c8cd, BRF_OPT }, // b-board PLDs
- { "iob1.11e", 0x000117, 0x3abc0700, BRF_OPT },
- { "c628", 0x000117, 0x00000000, BRF_OPT | BRF_NODUMP }, // c-board PLDs
-};
-
-STD_ROM_PICK(Mercsur1)
-STD_ROM_FN(Mercsur1)
-
-static struct BurnRomInfo MercsjRomDesc[] = {
- { "so2_36.12f", 0x020000, 0xe17f9bf7, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "so2_42.12h", 0x020000, 0x2c3884c6, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "so2_37.13f", 0x020000, 0x51204d36, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "so2_43.13h", 0x020000, 0x9cfba8b4, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "so2_34.10f", 0x020000, 0xb8dae95f, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "so2_40.10h", 0x020000, 0xde37771c, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "so2_35.11f", 0x020000, 0x7d24394d, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "so2_41.11h", 0x020000, 0x914f85e0, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "so2_09.4b", 0x020000, 0x690c261d, BRF_GRA | CPS1_TILES },
- { "so2_01.4a", 0x020000, 0x31fd2715, BRF_GRA | CPS1_TILES },
- { "so2_13.9b", 0x020000, 0xb5e48282, BRF_GRA | CPS1_TILES },
- { "so2_05.9a", 0x020000, 0x54bed82c, BRF_GRA | CPS1_TILES },
- { "so2_24.5e", 0x020000, 0x78b6f0cb, BRF_GRA | CPS1_TILES },
- { "so2_17.5c", 0x020000, 0xe78bb308, BRF_GRA | CPS1_TILES },
- { "so2_38.8h", 0x020000, 0x0010a9a2, BRF_GRA | CPS1_TILES },
- { "so2_32.8f", 0x020000, 0x75dffc9a, BRF_GRA | CPS1_TILES },
- { "so2_10.5b", 0x020000, 0x2f871714, BRF_GRA | CPS1_TILES },
- { "so2_02.5a", 0x020000, 0xb4b2a0b7, BRF_GRA | CPS1_TILES },
- { "so2_14.10b", 0x020000, 0x737a744b, BRF_GRA | CPS1_TILES },
- { "so2_06.10a", 0x020000, 0x9d756f51, BRF_GRA | CPS1_TILES },
- { "so2_25.7e", 0x020000, 0x6d0e05d6, BRF_GRA | CPS1_TILES },
- { "so2_18.7c", 0x020000, 0x96f61f4e, BRF_GRA | CPS1_TILES },
- { "so2_39.9h", 0x020000, 0xd52ba336, BRF_GRA | CPS1_TILES },
- { "so2_33.9f", 0x020000, 0x39b90d25, BRF_GRA | CPS1_TILES },
- { "so2_11.7b", 0x020000, 0x3f254efe, BRF_GRA | CPS1_TILES },
- { "so2_03.7a", 0x020000, 0xf5a8905e, BRF_GRA | CPS1_TILES },
- { "so2_15.11b", 0x020000, 0xf3aa5a4a, BRF_GRA | CPS1_TILES },
- { "so2_07.11a", 0x020000, 0xb43cd1a8, BRF_GRA | CPS1_TILES },
- { "so2_26.8e", 0x020000, 0x8ca751a3, BRF_GRA | CPS1_TILES },
- { "so2_19.8c", 0x020000, 0xe9f569fd, BRF_GRA | CPS1_TILES },
- { "so2_28.10e", 0x020000, 0xfce9a377, BRF_GRA | CPS1_TILES },
- { "so2_21.10c", 0x020000, 0xb7df8a06, BRF_GRA | CPS1_TILES },
-
- { "so2_23.13b", 0x010000, 0xd09d7c7a, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "so2_30.12c", 0x020000, 0xbbea1643, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "so2_31.13c", 0x020000, 0xac58aa71, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "o222b.1a", 0x000117, 0x00000000, BRF_OPT | BRF_NODUMP }, // b-board PLDs
- { "lwio.12e", 0x000117, 0xad52b90c, BRF_OPT },
- { "c628", 0x000117, 0x00000000, BRF_OPT | BRF_NODUMP }, // c-board PLDs
-};
-
-STD_ROM_PICK(Mercsj)
-STD_ROM_FN(Mercsj)
-
-static struct BurnRomInfo MswordRomDesc[] = {
- { "mse_30.11f", 0x020000, 0x03fc8dbc, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "mse_35.11h", 0x020000, 0xd5bf66cd, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "mse_31.12f", 0x020000, 0x30332bcf, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "mse_36.12h", 0x020000, 0x8f7d6ce9, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "ms-32m.8h", 0x080000, 0x2475ddfc, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "ms-5m.7a", 0x080000, 0xc00fe7e2, BRF_GRA | CPS1_TILES },
- { "ms-7m.9a", 0x080000, 0x4ccacac5, BRF_GRA | CPS1_TILES },
- { "ms-1m.3a", 0x080000, 0x0d2bbe00, BRF_GRA | CPS1_TILES },
- { "ms-3m.5a", 0x080000, 0x3a1a5bf4, BRF_GRA | CPS1_TILES },
-
- { "ms_09.12b", 0x010000, 0x57b29519, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "ms_18.11c", 0x020000, 0xfb64e90d, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "ms_19.12c", 0x020000, 0x74f892b9, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "ms24b.1a", 0x000117, 0x636dbe6d, BRF_OPT }, // b-board PLDs
- { "iob1.11e", 0x000117, 0x3abc0700, BRF_OPT },
-};
-
-STD_ROM_PICK(Msword)
-STD_ROM_FN(Msword)
-
-static struct BurnRomInfo Mswordr1RomDesc[] = {
- { "ms_30.11f", 0x020000, 0x21c1f078, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "ms_35.11h", 0x020000, 0xa540a73a, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "ms_31.12f", 0x020000, 0xd7e762b5, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "ms_36.12h", 0x020000, 0x66f2dcdb, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "ms-32m.8h", 0x080000, 0x2475ddfc, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "ms-5m.7a", 0x080000, 0xc00fe7e2, BRF_GRA | CPS1_TILES },
- { "ms-7m.9a", 0x080000, 0x4ccacac5, BRF_GRA | CPS1_TILES },
- { "ms-1m.3a", 0x080000, 0x0d2bbe00, BRF_GRA | CPS1_TILES },
- { "ms-3m.5a", 0x080000, 0x3a1a5bf4, BRF_GRA | CPS1_TILES },
-
- { "ms_09.12b", 0x010000, 0x57b29519, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "ms_18.11c", 0x020000, 0xfb64e90d, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "ms_19.12c", 0x020000, 0x74f892b9, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "ms24b.1a", 0x000117, 0x636dbe6d, BRF_OPT }, // b-board PLDs
- { "iob1.11e", 0x000117, 0x3abc0700, BRF_OPT },
-};
-
-STD_ROM_PICK(Mswordr1)
-STD_ROM_FN(Mswordr1)
-
-static struct BurnRomInfo MswordjRomDesc[] = {
- { "msj_36.12f", 0x020000, 0x04f0ef50, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "msj_42.12h", 0x020000, 0x9fcbb9cd, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "msj_37.13f", 0x020000, 0x6c060d70, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "msj_43.13h", 0x020000, 0xaec77787, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "ms_34.10f", 0x020000, 0x0e59a62d, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "ms_40.10h", 0x020000, 0xbabade3a, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "ms_35.11f", 0x020000, 0x03da99d1, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "ms_41.11h", 0x020000, 0xfadf99ea, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "ms_09.4b", 0x020000, 0x4adee6f6, BRF_GRA | CPS1_TILES },
- { "ms_01.4a", 0x020000, 0xf7ab1b88, BRF_GRA | CPS1_TILES },
- { "ms_13.9b", 0x020000, 0xe01adc4b, BRF_GRA | CPS1_TILES },
- { "ms_05.9a", 0x020000, 0xf62c2369, BRF_GRA | CPS1_TILES },
- { "ms_24.5e", 0x020000, 0xbe64a3a1, BRF_GRA | CPS1_TILES },
- { "ms_17.5c", 0x020000, 0x0bc1665f, BRF_GRA | CPS1_TILES },
- { "ms_38.8h", 0x020000, 0x904a2ed5, BRF_GRA | CPS1_TILES },
- { "ms_32.8f", 0x020000, 0x3d89c530, BRF_GRA | CPS1_TILES },
- { "ms_10.5b", 0x020000, 0xf02c0718, BRF_GRA | CPS1_TILES },
- { "ms_02.5a", 0x020000, 0xd071a405, BRF_GRA | CPS1_TILES },
- { "ms_14.10b", 0x020000, 0xdfb2e4df, BRF_GRA | CPS1_TILES },
- { "ms_06.10a", 0x020000, 0xd3ce2a91, BRF_GRA | CPS1_TILES },
- { "ms_25.7e", 0x020000, 0x0f199d56, BRF_GRA | CPS1_TILES },
- { "ms_18.7c", 0x020000, 0x1ba76df2, BRF_GRA | CPS1_TILES },
- { "ms_39.9h", 0x020000, 0x01efce86, BRF_GRA | CPS1_TILES },
- { "ms_33.9f", 0x020000, 0xce25defc, BRF_GRA | CPS1_TILES },
-
- { "ms_23.13b", 0x010000, 0x57b29519, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "ms_30.12c", 0x020000, 0xfb64e90d, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "ms_31.13c", 0x020000, 0x74f892b9, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "ms22b.1a", 0x000117, 0xdde86cb0, BRF_OPT }, // b-board PLDs
- { "iob1.12e", 0x000117, 0x3abc0700, BRF_OPT },
-};
-
-STD_ROM_PICK(Mswordj)
-STD_ROM_FN(Mswordj)
-
-static struct BurnRomInfo MsworduRomDesc[] = {
- { "msu_30.11f", 0x020000, 0xd963c816, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "msu_35.11h", 0x020000, 0x72f179b3, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "msu_31.12f", 0x020000, 0x20cd7904, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "msu_36.12h", 0x020000, 0xbf88c080, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "ms-32m.8h", 0x080000, 0x2475ddfc, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "ms-5m.7a", 0x080000, 0xc00fe7e2, BRF_GRA | CPS1_TILES },
- { "ms-7m.9a", 0x080000, 0x4ccacac5, BRF_GRA | CPS1_TILES },
- { "ms-1m.3a", 0x080000, 0x0d2bbe00, BRF_GRA | CPS1_TILES },
- { "ms-3m.5a", 0x080000, 0x3a1a5bf4, BRF_GRA | CPS1_TILES },
-
- { "ms_09.12b", 0x010000, 0x57b29519, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "ms_18.11c", 0x020000, 0xfb64e90d, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "ms_19.12c", 0x020000, 0x74f892b9, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "ms24b.1a", 0x000117, 0x636dbe6d, BRF_OPT }, // b-board PLDs
- { "iob1.11e", 0x000117, 0x3abc0700, BRF_OPT },
-};
-
-STD_ROM_PICK(Mswordu)
-STD_ROM_FN(Mswordu)
-
-static struct BurnRomInfo MtwinsRomDesc[] = {
- { "che_30.11f", 0x020000, 0x9a2a2db1, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "che_35.11h", 0x020000, 0xa7f96b02, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "che_31.12f", 0x020000, 0xbbff8a99, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "che_36.12h", 0x020000, 0x0fa00c39, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "ck-32m.8h", 0x080000, 0x9b70bd41, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "ck-5m.7a", 0x080000, 0x4ec75f15, BRF_GRA | CPS1_TILES },
- { "ck-7m.9a", 0x080000, 0xd85d00d6, BRF_GRA | CPS1_TILES },
- { "ck-1m.3a", 0x080000, 0xf33ca9d4, BRF_GRA | CPS1_TILES },
- { "ck-3m.5a", 0x080000, 0x0ba2047f, BRF_GRA | CPS1_TILES },
-
- { "ch_09.12b", 0x010000, 0x4d4255b7, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "ch_18.11c", 0x020000, 0xf909e8de, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "ch_19.12c", 0x020000, 0xfc158cf7, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "ck24b.1a", 0x000117, 0xbd99c448, BRF_OPT }, // b-board PLDs
- { "iob1.11e", 0x000117, 0x3abc0700, BRF_OPT },
-};
-
-STD_ROM_PICK(Mtwins)
-STD_ROM_FN(Mtwins)
-
-static struct BurnRomInfo ChikijRomDesc[] = {
- { "chj_36a.12f", 0x020000, 0xec1328d8, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "chj_42a.12h", 0x020000, 0x4ae13503, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "chj_37a.13f", 0x020000, 0x46d2cf7b, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "chj_43a.13h", 0x020000, 0x8d387fe8, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "ch_34.10f", 0x020000, 0x609ed2f9, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "ch_40.10h", 0x020000, 0xbe0d8301, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "ch_35.11f", 0x020000, 0xb810867f, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "ch_41.11h", 0x020000, 0x8ad96155, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "ch_09.4b", 0x020000, 0x567ab3ca, BRF_GRA | CPS1_TILES },
- { "ch_01.4a", 0x020000, 0x7f3b7b56, BRF_GRA | CPS1_TILES },
- { "ch_13.9b", 0x020000, 0x12a7a8ba, BRF_GRA | CPS1_TILES },
- { "ch_05.9a", 0x020000, 0x6c1afb9a, BRF_GRA | CPS1_TILES },
- { "ch_24.5e", 0x020000, 0x9cb6e6bc, BRF_GRA | CPS1_TILES },
- { "ch_17.5c", 0x020000, 0xfe490846, BRF_GRA | CPS1_TILES },
- { "ch_38.8h", 0x020000, 0x6e5c8cb6, BRF_GRA | CPS1_TILES },
- { "ch_32.8f", 0x020000, 0x317d27b0, BRF_GRA | CPS1_TILES },
- { "ch_10.5b", 0x020000, 0xe8251a9b, BRF_GRA | CPS1_TILES },
- { "ch_02.5a", 0x020000, 0x7c8c88fb, BRF_GRA | CPS1_TILES },
- { "ch_14.10b", 0x020000, 0x4012ec4b, BRF_GRA | CPS1_TILES },
- { "ch_06.10a", 0x020000, 0x81884b2b, BRF_GRA | CPS1_TILES },
- { "ch_25.7e", 0x020000, 0x1dfcbac5, BRF_GRA | CPS1_TILES },
- { "ch_18.7c", 0x020000, 0x516a34d1, BRF_GRA | CPS1_TILES },
- { "ch_39.9h", 0x020000, 0x872fb2a4, BRF_GRA | CPS1_TILES },
- { "ch_33.9f", 0x020000, 0x30dc5ded, BRF_GRA | CPS1_TILES },
-
- { "ch_23.13b", 0x010000, 0x4d4255b7, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "ch_30.12c", 0x020000, 0xf909e8de, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "ch_31.13c", 0x020000, 0xfc158cf7, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "ck22b.1a", 0x000117, 0x24fdfdeb, BRF_OPT }, // b-board PLDs
- { "iob1.12e", 0x000117, 0x3abc0700, BRF_OPT },
-};
-
-STD_ROM_PICK(Chikij)
-STD_ROM_FN(Chikij)
-
-static struct BurnRomInfo NemoRomDesc[] = {
- { "nme_30a.11f", 0x020000, 0xd2c03e56, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "nme_35a.11h", 0x020000, 0x5fd31661, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "nme_31a.12f", 0x020000, 0xb2bd4f6f, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "nme_36a.12h", 0x020000, 0xee9450e3, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "nm-32m.8h", 0x080000, 0xd6d1add3, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "nm-5m.7a", 0x080000, 0x487b8747, BRF_GRA | CPS1_TILES },
- { "nm-7m.9a", 0x080000, 0x203dc8c6, BRF_GRA | CPS1_TILES },
- { "nm-1m.3a", 0x080000, 0x9e878024, BRF_GRA | CPS1_TILES },
- { "nm-3m.5a", 0x080000, 0xbb01e6b6, BRF_GRA | CPS1_TILES },
-
- { "nme_09.12b", 0x010000, 0x0f4b0581, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "nme_18.11c", 0x020000, 0xbab333d4, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "nme_19.12c", 0x020000, 0x2650a0a8, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "nm24b.1a", 0x000117, 0x7b25bac6, BRF_OPT }, // b-board PLDs
- { "iob1.11e", 0x000117, 0x3abc0700, BRF_OPT },
-};
-
-STD_ROM_PICK(Nemo)
-STD_ROM_FN(Nemo)
-
-static struct BurnRomInfo Nemor1RomDesc[] = {
- { "nme_30.11f", 0x020000, 0x71b333db, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "nme_35.11h", 0x020000, 0xd153bc18, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "nme_31.12f", 0x020000, 0x7e83dbd2, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "nme_36.12h", 0x020000, 0x6aeeec81, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "nm-32m.8h", 0x080000, 0xd6d1add3, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "nm-5m.7a", 0x080000, 0x487b8747, BRF_GRA | CPS1_TILES },
- { "nm-7m.9a", 0x080000, 0x203dc8c6, BRF_GRA | CPS1_TILES },
- { "nm-1m.3a", 0x080000, 0x9e878024, BRF_GRA | CPS1_TILES },
- { "nm-3m.5a", 0x080000, 0xbb01e6b6, BRF_GRA | CPS1_TILES },
-
- { "nme_09.12b", 0x010000, 0x0f4b0581, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "nme_18.11c", 0x020000, 0xbab333d4, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "nme_19.12c", 0x020000, 0x2650a0a8, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "nm24b.1a", 0x000117, 0x7b25bac6, BRF_OPT }, // b-board PLDs
- { "iob1.11e", 0x000117, 0x3abc0700, BRF_OPT },
-};
-
-STD_ROM_PICK(Nemor1)
-STD_ROM_FN(Nemor1)
-
-static struct BurnRomInfo NemojRomDesc[] = {
- { "nmj_36a.12f", 0x020000, 0xdaeceabb, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "nmj_42a.12h", 0x020000, 0x55024740, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "nmj_37a.13f", 0x020000, 0x619068b6, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "nmj_43a.13h", 0x020000, 0xa948a53b, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "nm_34.10f", 0x020000, 0x5737feed, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "nm_40.10h", 0x020000, 0x8a4099f3, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "nm_35.11f", 0x020000, 0xbd11a7f8, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "nm_41.11h", 0x020000, 0x6309603d, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "nm_09.4b", 0x020000, 0x9d60d286, BRF_GRA | CPS1_TILES },
- { "nm_01.4a", 0x020000, 0x8a83f7c4, BRF_GRA | CPS1_TILES },
- { "nm_13.9b", 0x020000, 0xa4909fe0, BRF_GRA | CPS1_TILES },
- { "nm_05.9a", 0x020000, 0x16db1e61, BRF_GRA | CPS1_TILES },
- { "nm_24.5e", 0x020000, 0x3312c648, BRF_GRA | CPS1_TILES },
- { "nm_17.5c", 0x020000, 0xccfc50e2, BRF_GRA | CPS1_TILES },
- { "nm_38.8h", 0x020000, 0xae98a997, BRF_GRA | CPS1_TILES },
- { "nm_32.8f", 0x020000, 0xb3704dde, BRF_GRA | CPS1_TILES },
- { "nm_10.5b", 0x020000, 0x33c1388c, BRF_GRA | CPS1_TILES },
- { "nm_02.5a", 0x020000, 0x84c69469, BRF_GRA | CPS1_TILES },
- { "nm_14.10b", 0x020000, 0x66612270, BRF_GRA | CPS1_TILES },
- { "nm_06.10a", 0x020000, 0x8b9bcf95, BRF_GRA | CPS1_TILES },
- { "nm_25.7e", 0x020000, 0xacfc84d2, BRF_GRA | CPS1_TILES },
- { "nm_18.7c", 0x020000, 0x4347deed, BRF_GRA | CPS1_TILES },
- { "nm_39.9h", 0x020000, 0x6a274ecd, BRF_GRA | CPS1_TILES },
- { "nm_33.9f", 0x020000, 0xc469dc74, BRF_GRA | CPS1_TILES },
-
- { "nm_23.13b", 0x010000, 0x8d3c5a42, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "nm_30.12c", 0x020000, 0xbab333d4, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "nm_31.13c", 0x020000, 0x2650a0a8, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "nm22b.1a", 0x000117, 0x00000000, BRF_OPT | BRF_NODUMP }, // b-board PLDs
- { "iob1.12e", 0x000117, 0x3abc0700, BRF_OPT },
-};
-
-STD_ROM_PICK(Nemoj)
-STD_ROM_FN(Nemoj)
-
-static struct BurnRomInfo Pang3RomDesc[] = {
- { "pa3e_17a.11l", 0x080000, 0xa213fa80, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "pa3e_16a.10l", 0x080000, 0x7169ea67, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "pa3-01m.2c", 0x200000, 0x068a152c, BRF_GRA | CPS1_TILES },
- { "pa3-07m.2f", 0x200000, 0x3a4a619d, BRF_GRA | CPS1_TILES },
-
- { "pa3_11.11f", 0x020000, 0xcb1423a2, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "pa3_05.10d", 0x020000, 0x73a10d5d, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "pa3_06.11d", 0x020000, 0xaffa4f82, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "cp1b1f.1f", 0x000117, 0x3979b8e3, BRF_OPT }, // b-board PLDs
- { "cp1b8k.8k", 0x000117, 0x8a52ea7a, BRF_OPT },
- { "cp1b9ka.9k", 0x000117, 0x238d3ff4, BRF_OPT },
- { "ioc1.ic7", 0x000117, 0x0d182081, BRF_OPT }, // c-board PLDs
- { "c632.ic1", 0x000117, 0x0fbd9270, BRF_OPT },
-};
-
-STD_ROM_PICK(Pang3)
-STD_ROM_FN(Pang3)
-
-static struct BurnRomInfo Pang3r1RomDesc[] = {
- { "pa3e_17.11l", 0x080000, 0xd7041d32, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "pa3e_16.10l", 0x080000, 0x1be9a483, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "pa3-01m.2c", 0x200000, 0x068a152c, BRF_GRA | CPS1_TILES },
- { "pa3-07m.2f", 0x200000, 0x3a4a619d, BRF_GRA | CPS1_TILES },
-
- { "pa3_11.11f", 0x020000, 0xcb1423a2, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "pa3_05.10d", 0x020000, 0x73a10d5d, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "pa3_06.11d", 0x020000, 0xaffa4f82, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "cp1b1f.1f", 0x000117, 0x3979b8e3, BRF_OPT }, // b-board PLDs
- { "cp1b8k.8k", 0x000117, 0x8a52ea7a, BRF_OPT },
- { "cp1b9k.9k", 0x000117, 0xa754bdc3, BRF_OPT },
- { "ioc1.ic7", 0x000117, 0x0d182081, BRF_OPT }, // c-board PLDs
- { "c632.ic1", 0x000117, 0x0fbd9270, BRF_OPT },
-};
-
-STD_ROM_PICK(Pang3r1)
-STD_ROM_FN(Pang3r1)
-
-static struct BurnRomInfo Pang3r1aRomDesc[] = {
- { "d.t.11l", 0x080000, 0xd7041d32, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "d.t.10l", 0x080000, 0x1be9a483, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "mx27c4100.2c", 0x080000, 0x22c934c4, BRF_GRA | CPS1_TILES },
- { "mx27c4100.3c", 0x080000, 0x07c85e9b, BRF_GRA | CPS1_TILES },
- { "mx27c4100.4c", 0x080000, 0xac119a46, BRF_GRA | CPS1_TILES },
- { "mx27c4100.5c", 0x080000, 0x4ad13297, BRF_GRA | CPS1_TILES },
- { "mx27c4100.2f", 0x080000, 0x51031180, BRF_GRA | CPS1_TILES },
- { "mx27c4100.3f", 0x080000, 0xe9cd657a, BRF_GRA | CPS1_TILES },
- { "mx27c4100.4f", 0x080000, 0x2e1d35f2, BRF_GRA | CPS1_TILES },
- { "mx27c4100.5f", 0x080000, 0x026d0cd2, BRF_GRA | CPS1_TILES },
-
- { "d.t.11f", 0x020000, 0xcb1423a2, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "d.t.10d", 0x020000, 0x73a10d5d, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "d.t.11d", 0x020000, 0xaffa4f82, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "cp1b1f.1f", 0x000117, 0x3979b8e3, BRF_OPT }, // b-board PLDs
- { "cp1b8k.8k", 0x000117, 0x8a52ea7a, BRF_OPT },
- { "cp1b9k.9k", 0x000117, 0xa754bdc3, BRF_OPT },
- { "ioc1.ic7", 0x000117, 0x0d182081, BRF_OPT }, // c-board PLDs
- { "c632.ic1", 0x000117, 0x0fbd9270, BRF_OPT },
-};
-
-STD_ROM_PICK(Pang3r1a)
-STD_ROM_FN(Pang3r1a)
-
-static struct BurnRomInfo Pang3bRomDesc[] = {
- { "pa3w_17.11l", 0x080000, 0x12138234, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "pa3w_16.10l", 0x080000, 0xd1ba585c, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "pa3-01m.2c", 0x200000, 0x068a152c, BRF_GRA | CPS1_TILES },
- { "pa3-07m.2f", 0x200000, 0x3a4a619d, BRF_GRA | CPS1_TILES },
-
- { "pa3_11.11f", 0x008000, 0x90a08c46, BRF_PRG | CPS1_Z80_PROGRAM }, // == pa3_11.11f but different size, resized by bootlegger
-
- { "pa3_05.10d", 0x020000, 0x73a10d5d, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "pa3_06.11d", 0x020000, 0xaffa4f82, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "cp1b1f.1f", 0x000117, 0x3979b8e3, BRF_OPT }, // b-board PLDs
- { "cp1b8k.8k", 0x000117, 0x8a52ea7a, BRF_OPT },
- { "cp1b9k.9k", 0x000117, 0xa754bdc3, BRF_OPT },
- { "ioc1.ic7", 0x000117, 0x0d182081, BRF_OPT }, // c-board PLDs
- { "c632.ic1", 0x000117, 0x0fbd9270, BRF_OPT },
-};
-
-STD_ROM_PICK(Pang3b)
-STD_ROM_FN(Pang3b)
-
-static struct BurnRomInfo Pang3b2RomDesc[] = {
- { "pa3_17bl.11l", 0x080000, 0x3b5d99de, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "pa3_16bl.10l", 0x080000, 0x1be9a483, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "pa3-01m.2c", 0x200000, 0x068a152c, BRF_GRA | CPS1_TILES },
- { "pa3-07m.2f", 0x200000, 0x3a4a619d, BRF_GRA | CPS1_TILES },
-
- { "pa3_11.11f", 0x020000, 0xcb1423a2, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "pa3_05.10d", 0x020000, 0x73a10d5d, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "pa3_06.11d", 0x020000, 0xaffa4f82, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "cp1b1f.1f", 0x000117, 0x3979b8e3, BRF_OPT }, // b-board PLDs
- { "cp1b8k.8k", 0x000117, 0x8a52ea7a, BRF_OPT },
- { "cp1b9k.9k", 0x000117, 0xa754bdc3, BRF_OPT },
- { "ioc1.ic7", 0x000117, 0x0d182081, BRF_OPT }, // c-board PLDs
- { "c632.ic1", 0x000117, 0x0fbd9270, BRF_OPT },
-};
-
-STD_ROM_PICK(Pang3b2)
-STD_ROM_FN(Pang3b2)
-
-static struct BurnRomInfo Pang3b3RomDesc[] = {
- { "17.11l", 0x080000, 0xf62425e9, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "16.10l", 0x080000, 0x7169ea67, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "1.2c", 0x200000, 0x068a152c, BRF_GRA | CPS1_TILES },
- { "7.2f", 0x200000, 0x3a4a619d, BRF_GRA | CPS1_TILES },
-
- { "11.11f", 0x020000, 0xcb1423a2, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "5.10d", 0x020000, 0x73a10d5d, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "06.11d", 0x020000, 0x6266d1df, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "cp1b1f.1f", 0x000117, 0x3979b8e3, BRF_OPT }, // b-board PLDs
- { "cp1b8k.8k", 0x000117, 0x8a52ea7a, BRF_OPT },
- { "cp1b9k.9k", 0x000117, 0xa754bdc3, BRF_OPT },
- { "ioc1.ic7", 0x000117, 0x0d182081, BRF_OPT }, // c-board PLDs
- { "c632.ic1", 0x000117, 0x0fbd9270, BRF_OPT },
-};
-
-STD_ROM_PICK(Pang3b3)
-STD_ROM_FN(Pang3b3)
-
-static struct BurnRomInfo Pang3jRomDesc[] = {
- { "pa3j_17.11l", 0x080000, 0x21f6e51f, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "pa3j_16.10l", 0x080000, 0xca1d7897, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "pa3-01m.2c", 0x200000, 0x068a152c, BRF_GRA | CPS1_TILES },
- { "pa3-07m.2f", 0x200000, 0x3a4a619d, BRF_GRA | CPS1_TILES },
-
- { "pa3_11.11f", 0x020000, 0xcb1423a2, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "pa3_05.10d", 0x020000, 0x73a10d5d, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "pa3_06.11d", 0x020000, 0xaffa4f82, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "cp1b1f.1f", 0x000117, 0x3979b8e3, BRF_OPT }, // b-board PLDs
- { "cp1b8k.8k", 0x000117, 0x8a52ea7a, BRF_OPT },
- { "cp1b9k.9k", 0x000117, 0xa754bdc3, BRF_OPT },
- { "ioc1.ic7", 0x000117, 0x0d182081, BRF_OPT }, // c-board PLDs
- { "c632.ic1", 0x000117, 0x0fbd9270, BRF_OPT },
-};
-
-STD_ROM_PICK(Pang3j)
-STD_ROM_FN(Pang3j)
-
-static struct BurnRomInfo PnickjRomDesc[] = {
- { "pnij_36.12f", 0x020000, 0x2d4ffb2b, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "pnij_42.12h", 0x020000, 0xc085dfaf, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "pnij_09.4b", 0x020000, 0x48177b0a, BRF_GRA | CPS1_TILES },
- { "pnij_01.4a", 0x020000, 0x01a0f311, BRF_GRA | CPS1_TILES },
- { "pnij_13.9b", 0x020000, 0x406451b0, BRF_GRA | CPS1_TILES },
- { "pnij_05.9a", 0x020000, 0x8c515dc0, BRF_GRA | CPS1_TILES },
- { "pnij_26.5e", 0x020000, 0xe2af981e, BRF_GRA | CPS1_TILES },
- { "pnij_18.5c", 0x020000, 0xf17a0e56, BRF_GRA | CPS1_TILES },
- { "pnij_38.8h", 0x020000, 0xeb75bd8c, BRF_GRA | CPS1_TILES },
- { "pnij_32.8f", 0x020000, 0x84560bef, BRF_GRA | CPS1_TILES },
- { "pnij_10.5b", 0x020000, 0xc2acc171, BRF_GRA | CPS1_TILES },
- { "pnij_02.5a", 0x020000, 0x0e21fc33, BRF_GRA | CPS1_TILES },
- { "pnij_14.10b", 0x020000, 0x7fe59b19, BRF_GRA | CPS1_TILES },
- { "pnij_06.10a", 0x020000, 0x79f4bfe3, BRF_GRA | CPS1_TILES },
- { "pnij_27.7e", 0x020000, 0x83d5cb0e, BRF_GRA | CPS1_TILES },
- { "pnij_19.7c", 0x020000, 0xaf08b230, BRF_GRA | CPS1_TILES },
- { "pnij_39.9h", 0x020000, 0x70fbe579, BRF_GRA | CPS1_TILES },
- { "pnij_33.9f", 0x020000, 0x3ed2c680, BRF_GRA | CPS1_TILES },
-
- { "pnij_17.13b", 0x010000, 0xe86f787a, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "pnij_24.12c", 0x020000, 0x5092257d, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "pnij_25.13c", 0x020000, 0x22109aaa, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "pkb10b.1a", 0x000117, 0x00000000, BRF_OPT | BRF_NODUMP }, // b-board PLDs
- { "iob1.12e", 0x000117, 0x3abc0700, BRF_OPT },
- { "ioc1.ic7", 0x000117, 0x0d182081, BRF_OPT }, // c-board PLDs
- { "c632.ic1", 0x000117, 0x0fbd9270, BRF_OPT },
-};
-
-STD_ROM_PICK(Pnickj)
-STD_ROM_FN(Pnickj)
-
-static struct BurnRomInfo PokonyanRomDesc[] = {
- { "xmqq-12f.bin", 0x020000, 0x196297bf, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "xmqq-12h.bin", 0x020000, 0x2d7ee2e9, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "xmqq-13f.bin", 0x020000, 0x8f6abf26, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "xmqq-13h.bin", 0x020000, 0x3fefe432, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "xmqq-4b.bin", 0x020000, 0x933ab76d, BRF_GRA | CPS1_TILES },
- { "xmqq-4a.bin", 0x020000, 0xb098e7a9, BRF_GRA | CPS1_TILES },
- { "xmqq-9b.bin", 0x020000, 0xb66d62d4, BRF_GRA | CPS1_TILES },
- { "xmqq-9a.bin", 0x020000, 0x9c23e40b, BRF_GRA | CPS1_TILES },
- { "xmqq-5e.bin", 0x020000, 0x63d06d6f, BRF_GRA | CPS1_TILES },
- { "xmqq-5c.bin", 0x020000, 0xe2169bb5, BRF_GRA | CPS1_TILES },
- { "xmqq-8h.bin", 0x020000, 0x113121f5, BRF_GRA | CPS1_TILES },
- { "xmqq-8f.bin", 0x020000, 0xbeb00e07, BRF_GRA | CPS1_TILES },
- { "xmqq-5b.bin", 0x020000, 0x05354905, BRF_GRA | CPS1_TILES },
- { "xmqq-5a.bin", 0x020000, 0xbd40215e, BRF_GRA | CPS1_TILES },
- { "xmqq-10b.bin", 0x020000, 0x9fa773ef, BRF_GRA | CPS1_TILES },
- { "xmqq-10a.bin", 0x020000, 0x638d4bc7, BRF_GRA | CPS1_TILES },
- { "xmqq-7e.bin", 0x020000, 0x72c45858, BRF_GRA | CPS1_TILES },
- { "xmqq-7c.bin", 0x020000, 0xd91cda18, BRF_GRA | CPS1_TILES },
- { "xmqq-9h.bin", 0x020000, 0x3cd8594b, BRF_GRA | CPS1_TILES },
- { "xmqq-9f.bin", 0x020000, 0x1ec10bed, BRF_GRA | CPS1_TILES },
-
- { "xmqq-13b.bin", 0x010000, 0x4e8b81a8, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "xmqq-12c.bin", 0x020000, 0x71ac69ad, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "xmqq-13c.bin", 0x020000, 0x71e29699, BRF_SND | CPS1_OKIM6295_SAMPLES },
-};
-
-STD_ROM_PICK(Pokonyan)
-STD_ROM_FN(Pokonyan)
-
-static struct BurnRomInfo PunisherRomDesc[] = {
- { "pse_26.11e", 0x020000, 0x389a99d2, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "pse_30.11f", 0x020000, 0x68fb06ac, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "pse_27.12e", 0x020000, 0x3eb181c3, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "pse_31.12f", 0x020000, 0x37108e7b, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "pse_24.9e", 0x020000, 0x0f434414, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "pse_28.9f", 0x020000, 0xb732345d, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "pse_25.10e", 0x020000, 0xb77102e2, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "pse_29.10f", 0x020000, 0xec037bce, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "ps_21.6f", 0x080000, 0x8affa5a9, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "ps-1m.3a", 0x080000, 0x77b7ccab, BRF_GRA | CPS1_TILES },
- { "ps-3m.5a", 0x080000, 0x0122720b, BRF_GRA | CPS1_TILES },
- { "ps-2m.4a", 0x080000, 0x64fa58d4, BRF_GRA | CPS1_TILES },
- { "ps-4m.6a", 0x080000, 0x60da42c8, BRF_GRA | CPS1_TILES },
- { "ps-5m.7a", 0x080000, 0xc54ea839, BRF_GRA | CPS1_TILES },
- { "ps-7m.9a", 0x080000, 0x04c5acbd, BRF_GRA | CPS1_TILES },
- { "ps-6m.8a", 0x080000, 0xa544f4cc, BRF_GRA | CPS1_TILES },
- { "ps-8m.10a", 0x080000, 0x8f02f436, BRF_GRA | CPS1_TILES },
-
- { "ps_q.5k", 0x020000, 0x49ff4446, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "ps-q1.1k", 0x080000, 0x31fd8726, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "ps-q2.2k", 0x080000, 0x980a9eef, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "ps-q3.3k", 0x080000, 0x0dd44491, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "ps-q4.4k", 0x080000, 0xbed42f03, BRF_SND | CPS1_QSOUND_SAMPLES },
-
- A_BOARD_QSOUND_PLDS
-
-#if !defined (ROM_VERIFY)
- { "ps63b.1a", 0x000117, 0x03a758b0, BRF_OPT }, // b-board PLDs
-#else
- { "ps63b.1a", 0x000117, 0x00000000, BRF_OPT | BRF_NODUMP }, // b-board PLDs
-#endif
-
- { "iob1.12d", 0x000117, 0x3abc0700, BRF_OPT },
- { "bprg1.11d", 0x000117, 0x31793da7, BRF_OPT },
- { "ioc1.ic1", 0x000117, 0x0d182081, BRF_OPT }, // c-board PLDs
- { "d7l1.7l", 0x000117, 0x27b7410d, BRF_OPT }, // d-board PLDs
- { "d8l1.8l", 0x000117, 0x539fc7da, BRF_OPT },
- { "d9k2.9k", 0x000117, 0xcd85a156, BRF_OPT },
- { "d10f1.10f", 0x000117, 0x6619c494, BRF_OPT },
-};
-
-STD_ROM_PICK(Punisher)
-STD_ROM_FN(Punisher)
-
-static struct BurnRomInfo PunisheruRomDesc[] = {
- { "psu_26.11e", 0x020000, 0x9236d121, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "psu_30.11f", 0x020000, 0x8320e501, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "psu_27.12e", 0x020000, 0x61c960a1, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "psu_31.12f", 0x020000, 0x78d4c298, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "psu_24.9e", 0x020000, 0x1cfecad7, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "psu_28.9f", 0x020000, 0xbdf921c1, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "psu_25.10e", 0x020000, 0xc51acc94, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "psu_29.10f", 0x020000, 0x52dce1ca, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "ps_21.6f", 0x080000, 0x8affa5a9, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "ps-1m.3a", 0x080000, 0x77b7ccab, BRF_GRA | CPS1_TILES },
- { "ps-3m.5a", 0x080000, 0x0122720b, BRF_GRA | CPS1_TILES },
- { "ps-2m.4a", 0x080000, 0x64fa58d4, BRF_GRA | CPS1_TILES },
- { "ps-4m.6a", 0x080000, 0x60da42c8, BRF_GRA | CPS1_TILES },
- { "ps-5m.7a", 0x080000, 0xc54ea839, BRF_GRA | CPS1_TILES },
- { "ps-7m.9a", 0x080000, 0x04c5acbd, BRF_GRA | CPS1_TILES },
- { "ps-6m.8a", 0x080000, 0xa544f4cc, BRF_GRA | CPS1_TILES },
- { "ps-8m.10a", 0x080000, 0x8f02f436, BRF_GRA | CPS1_TILES },
-
- { "ps_q.5k", 0x020000, 0x49ff4446, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "ps-q1.1k", 0x080000, 0x31fd8726, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "ps-q2.2k", 0x080000, 0x980a9eef, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "ps-q3.3k", 0x080000, 0x0dd44491, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "ps-q4.4k", 0x080000, 0xbed42f03, BRF_SND | CPS1_QSOUND_SAMPLES },
-
- A_BOARD_QSOUND_PLDS
-
-#if !defined (ROM_VERIFY)
- { "ps63b.1a", 0x000117, 0x03a758b0, BRF_OPT }, // b-board PLDs
-#else
- { "ps63b.1a", 0x000117, 0x00000000, BRF_OPT | BRF_NODUMP }, // b-board PLDs
-#endif
-
- { "iob1.12d", 0x000117, 0x3abc0700, BRF_OPT },
- { "bprg1.11d", 0x000117, 0x31793da7, BRF_OPT },
- { "ioc1.ic1", 0x000117, 0x0d182081, BRF_OPT }, // c-board PLDs
- { "d7l1.7l", 0x000117, 0x27b7410d, BRF_OPT }, // d-board PLDs
- { "d8l1.8l", 0x000117, 0x539fc7da, BRF_OPT },
- { "d9k2.9k", 0x000117, 0xcd85a156, BRF_OPT },
- { "d10f1.10f", 0x000117, 0x6619c494, BRF_OPT },
-};
-
-STD_ROM_PICK(Punisheru)
-STD_ROM_FN(Punisheru)
-
-static struct BurnRomInfo PunisherjRomDesc[] = {
- { "psj_23.8f", 0x080000, 0x6b2fda52, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "psj_22.7f", 0x080000, 0xe01036bc, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "psj_21.6f", 0x080000, 0x8affa5a9, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "ps_01.3a", 0x080000, 0x77b7ccab, BRF_GRA | CPS1_TILES },
- { "ps_02.4a", 0x080000, 0x0122720b, BRF_GRA | CPS1_TILES },
- { "ps_03.5a", 0x080000, 0x64fa58d4, BRF_GRA | CPS1_TILES },
- { "ps_04.6a", 0x080000, 0x60da42c8, BRF_GRA | CPS1_TILES },
- { "ps_05.7a", 0x080000, 0xc54ea839, BRF_GRA | CPS1_TILES },
- { "ps_06.8a", 0x080000, 0x04c5acbd, BRF_GRA | CPS1_TILES },
- { "ps_07.9a", 0x080000, 0xa544f4cc, BRF_GRA | CPS1_TILES },
- { "ps_08.10a", 0x080000, 0x8f02f436, BRF_GRA | CPS1_TILES },
-
- { "ps_q.5k", 0x020000, 0x49ff4446, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "ps-q1.1k", 0x080000, 0x31fd8726, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "ps-q2.2k", 0x080000, 0x980a9eef, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "ps-q3.3k", 0x080000, 0x0dd44491, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "ps-q4.4k", 0x080000, 0xbed42f03, BRF_SND | CPS1_QSOUND_SAMPLES },
-
- A_BOARD_QSOUND_PLDS
-
-#if !defined (ROM_VERIFY)
- { "ps63b.1a", 0x000117, 0x03a758b0, BRF_OPT }, // b-board PLDs
-#else
- { "ps63b.1a", 0x000117, 0x00000000, BRF_OPT | BRF_NODUMP }, // b-board PLDs
-#endif
-
- { "iob1.12d", 0x000117, 0x3abc0700, BRF_OPT },
- { "bprg1.11d", 0x000117, 0x31793da7, BRF_OPT },
- { "ioc1.ic1", 0x000117, 0x0d182081, BRF_OPT }, // c-board PLDs
- { "d7l1.7l", 0x000117, 0x27b7410d, BRF_OPT }, // d-board PLDs
- { "d8l1.8l", 0x000117, 0x539fc7da, BRF_OPT },
- { "d9k2.9k", 0x000117, 0xcd85a156, BRF_OPT },
- { "d10f1.10f", 0x000117, 0x6619c494, BRF_OPT },
-};
-
-STD_ROM_PICK(Punisherj)
-STD_ROM_FN(Punisherj)
-
-static struct BurnRomInfo PunisherhRomDesc[] = {
- { "psh_26.11e", 0x020000, 0x6ad2bb83, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "psh_30.11f", 0x020000, 0x058d3659, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "psh_27.12e", 0x020000, 0x579f4fd3, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "psh_31.12f", 0x020000, 0x2c9f70b5, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "psh_24.9e", 0x020000, 0xfaa14841, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "psh_28.9f", 0x020000, 0x5c5b1f20, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "psh_25.10e", 0x020000, 0x724fdfda, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "psh_29.10f", 0x020000, 0x779cf901, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "ps_21.6f", 0x080000, 0x8affa5a9, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "ps-1m.3a", 0x080000, 0x77b7ccab, BRF_GRA | CPS1_TILES },
- { "ps-3m.5a", 0x080000, 0x0122720b, BRF_GRA | CPS1_TILES },
- { "ps-2m.4a", 0x080000, 0x64fa58d4, BRF_GRA | CPS1_TILES },
- { "ps-4m.6a", 0x080000, 0x60da42c8, BRF_GRA | CPS1_TILES },
- { "ps-5m.7a", 0x080000, 0xc54ea839, BRF_GRA | CPS1_TILES },
- { "ps-7m.9a", 0x080000, 0x04c5acbd, BRF_GRA | CPS1_TILES },
- { "ps-6m.8a", 0x080000, 0xa544f4cc, BRF_GRA | CPS1_TILES },
- { "ps-8m.10a", 0x080000, 0x8f02f436, BRF_GRA | CPS1_TILES },
-
- { "ps_q.5k", 0x020000, 0x49ff4446, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "ps-q1.1k", 0x080000, 0x31fd8726, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "ps-q2.2k", 0x080000, 0x980a9eef, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "ps-q3.3k", 0x080000, 0x0dd44491, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "ps-q4.4k", 0x080000, 0xbed42f03, BRF_SND | CPS1_QSOUND_SAMPLES },
-
- A_BOARD_QSOUND_PLDS
-
-#if !defined (ROM_VERIFY)
- { "ps63b.1a", 0x000117, 0x03a758b0, BRF_OPT }, // b-board PLDs
-#else
- { "ps63b.1a", 0x000117, 0x00000000, BRF_OPT | BRF_NODUMP }, // b-board PLDs
-#endif
-
- { "iob1.12d", 0x000117, 0x3abc0700, BRF_OPT },
- { "bprg1.11d", 0x000117, 0x31793da7, BRF_OPT },
- { "ioc1.ic1", 0x000117, 0x0d182081, BRF_OPT }, // c-board PLDs
- { "d7l1.7l", 0x000117, 0x27b7410d, BRF_OPT }, // d-board PLDs
- { "d8l1.8l", 0x000117, 0x539fc7da, BRF_OPT },
- { "d9k2.9k", 0x000117, 0xcd85a156, BRF_OPT },
- { "d10f1.10f", 0x000117, 0x6619c494, BRF_OPT },
-};
-
-STD_ROM_PICK(Punisherh)
-STD_ROM_FN(Punisherh)
-
-static struct BurnRomInfo PunipicRomDesc[] = {
- { "cpu5.bin", 0x080000, 0xc3151563, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "cpu3.bin", 0x080000, 0x8c2593ac, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "cpu4.bin", 0x080000, 0x665a5485, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "cpu2.bin", 0x080000, 0xd7b13f39, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "gfx9.bin", 0x080000, 0x9b9a887a, BRF_GRA | CPS1_TILES },
- { "gfx8.bin", 0x080000, 0x2b94287a, BRF_GRA | CPS1_TILES },
- { "gfx7.bin", 0x080000, 0xe9bd74f5, BRF_GRA | CPS1_TILES },
- { "gfx6.bin", 0x080000, 0xa5e1c8a4, BRF_GRA | CPS1_TILES },
- { "gfx13.bin", 0x080000, 0x6d75a193, BRF_GRA | CPS1_TILES },
- { "gfx12.bin", 0x080000, 0xa3c205c1, BRF_GRA | CPS1_TILES },
- { "gfx11.bin", 0x080000, 0x22f2ec92, BRF_GRA | CPS1_TILES },
- { "gfx10.bin", 0x080000, 0x763974c9, BRF_GRA | CPS1_TILES },
-
- { "pic16c57", 0x004000, 0x00000000, BRF_PRG | BRF_NODUMP | CPS1_PIC },
-
- { "sound.bin", 0x080000, 0xaeec9dc6, BRF_SND | CPS1_OKIM6295_SAMPLES },
-};
-
-STD_ROM_PICK(Punipic)
-STD_ROM_FN(Punipic)
-
-static struct BurnRomInfo Punipic2RomDesc[] = {
- { "prg4.bin", 0x080000, 0xc3151563, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "prg3.bin", 0x080000, 0x8c2593ac, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "prg2.bin", 0x080000, 0x665a5485, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "prg1.bin", 0x080000, 0xd7b13f39, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "pu11256.bin", 0x200000, 0x6581faea, BRF_GRA | CPS1_TILES },
- { "pu13478.bin", 0x200000, 0x61613de4, BRF_GRA | CPS1_TILES },
-
- { "pic16c57", 0x004000, 0x00000000, BRF_PRG | BRF_NODUMP | CPS1_PIC },
-
- { "sound.bin", 0x080000, 0xaeec9dc6, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- { "93c46.bin", 0x000080, 0x36ab4e7d, BRF_OPT },
-};
-
-STD_ROM_PICK(Punipic2)
-STD_ROM_FN(Punipic2)
-
-static struct BurnRomInfo Punipic3RomDesc[] = {
- { "psb5b.rom", 0x080000, 0x58f42c05, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "psb3b.rom", 0x080000, 0x90113db4, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "psb4a.rom", 0x080000, 0x665a5485, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "psb2a.rom", 0x080000, 0xd7b13f39, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "psb-a.rom", 0x200000, 0x57f0f5e3, BRF_GRA | CPS1_TILES },
- { "psb-b.rom", 0x200000, 0xd9eb867e, BRF_GRA | CPS1_TILES },
-};
-
-STD_ROM_PICK(Punipic3)
-STD_ROM_FN(Punipic3)
-
-static struct BurnRomInfo PunisherbzRomDesc[] = {
- { "23.096", 0x080000, 0xbfa45d23, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "22.096", 0x080000, 0x092578a4, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "21.096", 0x080000, 0xd21ccddb, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "20.096", 0x080000, 0xf9f334ce, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "1.096", 0x080000, 0xad468e07, BRF_GRA | CPS1_TILES },
- { "2.096", 0x080000, 0xb9fdb6b5, BRF_GRA | CPS1_TILES },
- { "3.096", 0x080000, 0xbe0b1a78, BRF_GRA | CPS1_TILES },
- { "4.096", 0x080000, 0xbba67a43, BRF_GRA | CPS1_TILES },
- { "ps_gfx5.rom", 0x080000, 0xc54ea839, BRF_GRA | CPS1_TILES },
- { "ps_gfx7.rom", 0x080000, 0x04c5acbd, BRF_GRA | CPS1_TILES },
- { "ps_gfx6.rom", 0x080000, 0xa544f4cc, BRF_GRA | CPS1_TILES },
- { "ps_gfx8.rom", 0x080000, 0x8f02f436, BRF_GRA | CPS1_TILES },
-
- { "9.512", 0x010000, 0xb8367eb5, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "18.010", 0x020000, 0x375c66e7, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "19.010", 0x020000, 0xeb5ca884, BRF_SND | CPS1_OKIM6295_SAMPLES },
-};
-
-STD_ROM_PICK(Punisherbz)
-STD_ROM_FN(Punisherbz)
-
-static struct BurnRomInfo PunisherbRomDesc[] = {
- { "18.bin", 0x040000, 0x2565ad20, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "19.bin", 0x040000, 0x84bb4acf, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "16.bin", 0x040000, 0x4568520f, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "17.bin", 0x040000, 0xfda67fc1, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "14.bin", 0x020000, 0x1286d6ad, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "15.bin", 0x020000, 0x092538ac, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "12.bin", 0x020000, 0x019744d4, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "13.bin", 0x020000, 0x8b88ae0d, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "1.bin", 0x080000, 0x35cb609a, BRF_GRA | CPS1_TILES },
- { "2.bin", 0x080000, 0xdcf61484, BRF_GRA | CPS1_TILES },
- { "3.bin", 0x080000, 0x3a76db83, BRF_GRA | CPS1_TILES },
- { "4.bin", 0x080000, 0xb099b669, BRF_GRA | CPS1_TILES },
- { "5.bin", 0x080000, 0x91365595, BRF_GRA | CPS1_TILES },
- { "6.bin", 0x080000, 0xb3cd4553, BRF_GRA | CPS1_TILES },
- { "7.bin", 0x080000, 0x3b940554, BRF_GRA | CPS1_TILES },
- { "8.bin", 0x080000, 0x43704b5a, BRF_GRA | CPS1_TILES },
-
- { "11.bin", 0x010000, 0xd09d7c7a, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "9.bin", 0x020000, 0xbbea1643, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "10.bin", 0x020000, 0xac58aa71, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- { "pal1.jed", 0x000bd4, 0x22a9ff9e, BRF_OPT },
- { "pal2.jed", 0x000bd4, 0x8c4a97ac, BRF_OPT },
- { "pal3.jed", 0x000bd4, 0x0fdd5375, BRF_OPT },
- { "pal4.jed", 0x000e05, 0xb2d16eac, BRF_OPT },
-};
-
-STD_ROM_PICK(Punisherb)
-STD_ROM_FN(Punisherb)
-
-static struct BurnRomInfo QadRomDesc[] = {
- { "qdu_36a.12f", 0x020000, 0xde9c24a0, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "qdu_42a.12h", 0x020000, 0xcfe36f0c, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "qdu_37a.13f", 0x020000, 0x10d22320, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "qdu_43a.13h", 0x020000, 0x15e6beb9, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "qd_09.4b", 0x020000, 0x8c3f9f44, BRF_GRA | CPS1_TILES },
- { "qd_01.4a", 0x020000, 0xf688cf8f, BRF_GRA | CPS1_TILES },
- { "qd_13.9b", 0x020000, 0xafbd551b, BRF_GRA | CPS1_TILES },
- { "qd_05.9a", 0x020000, 0xc3db0910, BRF_GRA | CPS1_TILES },
- { "qd_24.5e", 0x020000, 0x2f1bd0ec, BRF_GRA | CPS1_TILES },
- { "qd_17.5c", 0x020000, 0xa812f9e2, BRF_GRA | CPS1_TILES },
- { "qd_38.8h", 0x020000, 0xccdddd1f, BRF_GRA | CPS1_TILES },
- { "qd_32.8f", 0x020000, 0xa8d295d3, BRF_GRA | CPS1_TILES },
-
- { "qd_23.13b", 0x010000, 0xcfb5264b, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "qdu_30.12c", 0x020000, 0xf190da84, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "qdu_31.13c", 0x020000, 0xb7583f73, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "qd22b.1a", 0x000117, 0x783c53ab, BRF_OPT }, // b-board PLDs
- { "iob1.12e", 0x000117, 0x3abc0700, BRF_OPT },
- { "ioc1.ic1", 0x000117, 0x0d182081, BRF_OPT }, // c-board PLDs
-};
-
-STD_ROM_PICK(Qad)
-STD_ROM_FN(Qad)
-
-static struct BurnRomInfo QadjrRomDesc[] = {
- { "qad_23a.8f", 0x080000, 0x4d3553de, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "qad_22a.7f", 0x080000, 0x3191ddd0, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "qad_01.3a", 0x080000, 0x9d853b57, BRF_GRA | CPS1_TILES },
- { "qad_02.4a", 0x080000, 0xb35976c4, BRF_GRA | CPS1_TILES },
- { "qad_03.5a", 0x080000, 0xcea4ca8c, BRF_GRA | CPS1_TILES },
- { "qad_04.6a", 0x080000, 0x41b74d1b, BRF_GRA | CPS1_TILES },
-
- { "qad_09.12a", 0x010000, 0x733161cc, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "qad_18.11c", 0x020000, 0x2bfe6f6a, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "qad_19.12c", 0x020000, 0x13d3236b, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "qad63b.1a", 0x000117, 0xb3312b13, BRF_OPT }, // b-board PLDs
- { "iob1.12d", 0x000117, 0x3abc0700, BRF_OPT },
- { "bprg1.11d", 0x000117, 0x31793da7, BRF_OPT },
- { "ioc1.ic7", 0x000117, 0x0d182081, BRF_OPT }, // c-board PLDs
- { "c632.ic1", 0x000117, 0x0fbd9270, BRF_OPT },
-};
-
-STD_ROM_PICK(Qadjr)
-STD_ROM_FN(Qadjr)
-
-static struct BurnRomInfo Qtono2jRomDesc[] = {
- { "tn2j_30.11e", 0x020000, 0x9226eb5e, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "tn2j_37.11f", 0x020000, 0xd1d30da1, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "tn2j_31.12e", 0x020000, 0x015e6a8a, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "tn2j_38.12f", 0x020000, 0x1f139bcc, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "tn2j_28.9e", 0x020000, 0x86d27f71, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "tn2j_35.9f", 0x020000, 0x7a1ab87d, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "tn2j_29.10e", 0x020000, 0x9c384e99, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "tn2j_36.10f", 0x020000, 0x4c4b2a0a, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "tn2-02m.4a", 0x080000, 0xf2016a34, BRF_GRA | CPS1_TILES },
- { "tn2-04m.6a", 0x080000, 0x094e0fb1, BRF_GRA | CPS1_TILES },
- { "tn2-01m.3a", 0x080000, 0xcb950cf9, BRF_GRA | CPS1_TILES },
- { "tn2-03m.5a", 0x080000, 0x18a5bf59, BRF_GRA | CPS1_TILES },
- { "tn2-11m.4c", 0x080000, 0xd0edd30b, BRF_GRA | CPS1_TILES },
- { "tn2-13m.6c", 0x080000, 0x426621c3, BRF_GRA | CPS1_TILES },
- { "tn2-10m.3c", 0x080000, 0xa34ece70, BRF_GRA | CPS1_TILES },
- { "tn2-12m.5c", 0x080000, 0xe04ff2f4, BRF_GRA | CPS1_TILES },
-
- { "tn2j_09.12a", 0x010000, 0xe464b969, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "tn2j_18.11c", 0x020000, 0xa40bf9a7, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "tn2j_19.12c", 0x020000, 0x5b3b931e, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "tn2292.1a", 0x000117, 0x3d899539, BRF_OPT }, // b-board PLDs
- { "iob1.11d", 0x000117, 0x3abc0700, BRF_OPT },
- { "ioc1.ic7", 0x000117, 0x0d182081, BRF_OPT }, // c-board PLDs
- { "c632.ic1", 0x000117, 0x0fbd9270, BRF_OPT },
-};
-
-STD_ROM_PICK(Qtono2j)
-STD_ROM_FN(Qtono2j)
-
-static struct BurnRomInfo Sf2RomDesc[] = {
- { "sf2e_30g.11e", 0x020000, 0xfe39ee33, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2e_37g.11f", 0x020000, 0xfb92cd74, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2e_31g.12e", 0x020000, 0x69a0a301, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2e_38g.12f", 0x020000, 0x5e22db70, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2e_28g.9e", 0x020000, 0x8bf9f1e5, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2e_35g.9f", 0x020000, 0x626ef934, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2_29b.10e", 0x020000, 0xbb4af315, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2_36b.10f", 0x020000, 0xc02a13eb, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "sf2-5m.4a", 0x080000, 0x22c9cc8e, BRF_GRA | CPS1_TILES },
- { "sf2-7m.6a", 0x080000, 0x57213be8, BRF_GRA | CPS1_TILES },
- { "sf2-1m.3a", 0x080000, 0xba529b4f, BRF_GRA | CPS1_TILES },
- { "sf2-3m.5a", 0x080000, 0x4b1b33a8, BRF_GRA | CPS1_TILES },
- { "sf2-6m.4c", 0x080000, 0x2c7e2229, BRF_GRA | CPS1_TILES },
- { "sf2-8m.6c", 0x080000, 0xb5548f17, BRF_GRA | CPS1_TILES },
- { "sf2-2m.3c", 0x080000, 0x14b84312, BRF_GRA | CPS1_TILES },
- { "sf2-4m.5c", 0x080000, 0x5e9cd89a, BRF_GRA | CPS1_TILES },
- { "sf2-13m.4d", 0x080000, 0x994bfa58, BRF_GRA | CPS1_TILES },
- { "sf2-15m.6d", 0x080000, 0x3e66ad9d, BRF_GRA | CPS1_TILES },
- { "sf2-9m.3d", 0x080000, 0xc1befaa8, BRF_GRA | CPS1_TILES },
- { "sf2-11m.5d", 0x080000, 0x0627c831, BRF_GRA | CPS1_TILES },
-
- { "sf2_9.12a", 0x010000, 0xa4823a1b, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "sf2_18.11c", 0x020000, 0x7f162009, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "sf2_19.12c", 0x020000, 0xbeade53f, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "stf29.1a", 0x000117, 0x043309c5, BRF_OPT }, // b-board PLDs
- { "iob1.11d", 0x000117, 0x3abc0700, BRF_OPT },
- { "c632.ic1", 0x000117, 0x0fbd9270, BRF_OPT }, // c-board PLDs
-};
-
-STD_ROM_PICK(Sf2)
-STD_ROM_FN(Sf2)
-
-static struct BurnRomInfo Sf2ebRomDesc[] = {
- { "sf2e_30b.11e", 0x020000, 0x57bd7051, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2e_37b.11f", 0x020000, 0x62691cdd, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2e_31b.12e", 0x020000, 0xa673143d, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2e_38b.12f", 0x020000, 0x4c2ccef7, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2_28b.9e", 0x020000, 0x4009955e, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2_35b.9f", 0x020000, 0x8c1f3994, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2_29b.10e", 0x020000, 0xbb4af315, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2_36b.10f", 0x020000, 0xc02a13eb, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "sf2-5m.4a", 0x080000, 0x22c9cc8e, BRF_GRA | CPS1_TILES },
- { "sf2-7m.6a", 0x080000, 0x57213be8, BRF_GRA | CPS1_TILES },
- { "sf2-1m.3a", 0x080000, 0xba529b4f, BRF_GRA | CPS1_TILES },
- { "sf2-3m.5a", 0x080000, 0x4b1b33a8, BRF_GRA | CPS1_TILES },
- { "sf2-6m.4c", 0x080000, 0x2c7e2229, BRF_GRA | CPS1_TILES },
- { "sf2-8m.6c", 0x080000, 0xb5548f17, BRF_GRA | CPS1_TILES },
- { "sf2-2m.3c", 0x080000, 0x14b84312, BRF_GRA | CPS1_TILES },
- { "sf2-4m.5c", 0x080000, 0x5e9cd89a, BRF_GRA | CPS1_TILES },
- { "sf2-13m.4d", 0x080000, 0x994bfa58, BRF_GRA | CPS1_TILES },
- { "sf2-15m.6d", 0x080000, 0x3e66ad9d, BRF_GRA | CPS1_TILES },
- { "sf2-9m.3d", 0x080000, 0xc1befaa8, BRF_GRA | CPS1_TILES },
- { "sf2-11m.5d", 0x080000, 0x0627c831, BRF_GRA | CPS1_TILES },
-
- { "sf2_9.12a", 0x010000, 0xa4823a1b, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "sf2_18.11c", 0x020000, 0x7f162009, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "sf2_19.12c", 0x020000, 0xbeade53f, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "stf29.1a", 0x000117, 0x043309c5, BRF_OPT }, // b-board PLDs
- { "iob1.11d", 0x000117, 0x3abc0700, BRF_OPT },
- { "c632.ic1", 0x000117, 0x0fbd9270, BRF_OPT }, // c-board PLDs
-};
-
-STD_ROM_PICK(Sf2eb)
-STD_ROM_FN(Sf2eb)
-
-static struct BurnRomInfo Sf2edRomDesc[] = {
- { "sf2e_30d.11e", 0x020000, 0x4bb2657c, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2e_37d.11f", 0x020000, 0x102f4561, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2e_31d.12e", 0x020000, 0xd57b67d7, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2e_38d.12f", 0x020000, 0x9c8916ef, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2e_28d.9e", 0x020000, 0x175819d1, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2e_35d.9f", 0x020000, 0x82060da4, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2_29b.10e", 0x020000, 0xbb4af315, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2_36b.10f", 0x020000, 0xc02a13eb, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "sf2-5m.4a", 0x080000, 0x22c9cc8e, BRF_GRA | CPS1_TILES },
- { "sf2-7m.6a", 0x080000, 0x57213be8, BRF_GRA | CPS1_TILES },
- { "sf2-1m.3a", 0x080000, 0xba529b4f, BRF_GRA | CPS1_TILES },
- { "sf2-3m.5a", 0x080000, 0x4b1b33a8, BRF_GRA | CPS1_TILES },
- { "sf2-6m.4c", 0x080000, 0x2c7e2229, BRF_GRA | CPS1_TILES },
- { "sf2-8m.6c", 0x080000, 0xb5548f17, BRF_GRA | CPS1_TILES },
- { "sf2-2m.3c", 0x080000, 0x14b84312, BRF_GRA | CPS1_TILES },
- { "sf2-4m.5c", 0x080000, 0x5e9cd89a, BRF_GRA | CPS1_TILES },
- { "sf2-13m.4d", 0x080000, 0x994bfa58, BRF_GRA | CPS1_TILES },
- { "sf2-15m.6d", 0x080000, 0x3e66ad9d, BRF_GRA | CPS1_TILES },
- { "sf2-9m.3d", 0x080000, 0xc1befaa8, BRF_GRA | CPS1_TILES },
- { "sf2-11m.5d", 0x080000, 0x0627c831, BRF_GRA | CPS1_TILES },
-
- { "sf2_9.12a", 0x010000, 0xa4823a1b, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "sf2_18.11c", 0x020000, 0x7f162009, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "sf2_19.12c", 0x020000, 0xbeade53f, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "stf29.1a", 0x000117, 0x043309c5, BRF_OPT }, // b-board PLDs
- { "iob1.11d", 0x000117, 0x3abc0700, BRF_OPT },
- { "c632.ic1", 0x000117, 0x0fbd9270, BRF_OPT }, // c-board PLDs
-};
-
-STD_ROM_PICK(Sf2ed)
-STD_ROM_FN(Sf2ed)
-
-static struct BurnRomInfo Sf2eeRomDesc[] = {
- { "sf2e_30e.11e", 0x020000, 0xf37cd088, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2e_37e.11f", 0x020000, 0xc39468e6, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2e_31e.12e", 0x020000, 0x7c4771b4, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2e_38e.12f", 0x020000, 0xa4bd0cd9, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2e_28e.9e", 0x020000, 0xe3b95625, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2e_35e.9f", 0x020000, 0x3648769a, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2_29b.10e", 0x020000, 0xbb4af315, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2_36b.10f", 0x020000, 0xc02a13eb, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "sf2-5m.4a", 0x080000, 0x22c9cc8e, BRF_GRA | CPS1_TILES },
- { "sf2-7m.6a", 0x080000, 0x57213be8, BRF_GRA | CPS1_TILES },
- { "sf2-1m.3a", 0x080000, 0xba529b4f, BRF_GRA | CPS1_TILES },
- { "sf2-3m.5a", 0x080000, 0x4b1b33a8, BRF_GRA | CPS1_TILES },
- { "sf2-6m.4c", 0x080000, 0x2c7e2229, BRF_GRA | CPS1_TILES },
- { "sf2-8m.6c", 0x080000, 0xb5548f17, BRF_GRA | CPS1_TILES },
- { "sf2-2m.3c", 0x080000, 0x14b84312, BRF_GRA | CPS1_TILES },
- { "sf2-4m.5c", 0x080000, 0x5e9cd89a, BRF_GRA | CPS1_TILES },
- { "sf2-13m.4d", 0x080000, 0x994bfa58, BRF_GRA | CPS1_TILES },
- { "sf2-15m.6d", 0x080000, 0x3e66ad9d, BRF_GRA | CPS1_TILES },
- { "sf2-9m.3d", 0x080000, 0xc1befaa8, BRF_GRA | CPS1_TILES },
- { "sf2-11m.5d", 0x080000, 0x0627c831, BRF_GRA | CPS1_TILES },
-
- { "sf2_9.12a", 0x010000, 0xa4823a1b, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "sf2_18.11c", 0x020000, 0x7f162009, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "sf2_19.12c", 0x020000, 0xbeade53f, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "stf29.1a", 0x000117, 0x043309c5, BRF_OPT }, // b-board PLDs
- { "iob2.11d", 0x000117, 0xd26f0a27, BRF_OPT },
- { "c632b.ic1", 0x000117, 0x0fbd9270, BRF_OPT }, // c-board PLDs
-};
-
-STD_ROM_PICK(Sf2ee)
-STD_ROM_FN(Sf2ee)
-
-static struct BurnRomInfo Sf2emRomDesc[] = {
- { "sf2e_30.11e", 0x020000, 0x997bdac4, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2e_37.11f", 0x020000, 0xf11b3d64, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2e_31.12e", 0x020000, 0x53e54744, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2e_38.12f", 0x020000, 0x5ff4dc81, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2_28.9e", 0x020000, 0x55d88c35, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2_35.9f", 0x020000, 0x4b964478, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2_29.10e", 0x020000, 0xfdd0b5c1, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2_36.10f", 0x020000, 0xdb66b127, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "sf2-5m.4a", 0x080000, 0x22c9cc8e, BRF_GRA | CPS1_TILES },
- { "sf2-7m.6a", 0x080000, 0x57213be8, BRF_GRA | CPS1_TILES },
- { "sf2-1m.3a", 0x080000, 0xba529b4f, BRF_GRA | CPS1_TILES },
- { "sf2-3m.5a", 0x080000, 0x4b1b33a8, BRF_GRA | CPS1_TILES },
- { "sf2-6m.4c", 0x080000, 0x2c7e2229, BRF_GRA | CPS1_TILES },
- { "sf2-8m.6c", 0x080000, 0xb5548f17, BRF_GRA | CPS1_TILES },
- { "sf2-2m.3c", 0x080000, 0x14b84312, BRF_GRA | CPS1_TILES },
- { "sf2-4m.5c", 0x080000, 0x5e9cd89a, BRF_GRA | CPS1_TILES },
- { "sf2-13m.4d", 0x080000, 0x994bfa58, BRF_GRA | CPS1_TILES },
- { "sf2-15m.6d", 0x080000, 0x3e66ad9d, BRF_GRA | CPS1_TILES },
- { "sf2-9m.3d", 0x080000, 0xc1befaa8, BRF_GRA | CPS1_TILES },
- { "sf2-11m.5d", 0x080000, 0x0627c831, BRF_GRA | CPS1_TILES },
-
- { "sf2_9.12a", 0x010000, 0xa4823a1b, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "sf2_18.11c", 0x020000, 0x7f162009, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "sf2_19.12c", 0x020000, 0xbeade53f, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "stf29.1a", 0x000117, 0x043309c5, BRF_OPT }, // b-board PLDs
- { "iob1.11d", 0x000117, 0x3abc0700, BRF_OPT },
- { "c632.ic1", 0x000117, 0x0fbd9270, BRF_OPT }, // c-board PLDs
-};
-
-STD_ROM_PICK(Sf2em)
-STD_ROM_FN(Sf2em)
-
-static struct BurnRomInfo Sf2ebblRomDesc[] = {
- { "12.bin", 0x040000, 0xa258b4d5, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "09.bin", 0x040000, 0x59ccd474, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "11.bin", 0x040000, 0x82097d63, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "10.bin", 0x040000, 0x0c83844d, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "1b_yf082.bin", 0x080000, 0x22c9cc8e, BRF_GRA | CPS1_TILES },
- { "1d_yf028.bin", 0x080000, 0x57213be8, BRF_GRA | CPS1_TILES },
- { "1a_yf087.bin", 0x080000, 0xba529b4f, BRF_GRA | CPS1_TILES },
- { "1c_yf088.bin", 0x080000, 0x4b1b33a8, BRF_GRA | CPS1_TILES },
- { "1f_yf085.bin", 0x080000, 0x2c7e2229, BRF_GRA | CPS1_TILES },
- { "1h_yf115.bin", 0x080000, 0xb5548f17, BRF_GRA | CPS1_TILES },
- { "1e_yf111.bin", 0x080000, 0x14b84312, BRF_GRA | CPS1_TILES },
- { "1g_yf002.bin", 0x080000, 0x5e9cd89a, BRF_GRA | CPS1_TILES },
- { "1j_yf117.bin", 0x080000, 0x994bfa58, BRF_GRA | CPS1_TILES },
- { "1l_ye040.bin", 0x080000, 0x3e66ad9d, BRF_GRA | CPS1_TILES },
- { "1i_yf038.bin", 0x080000, 0xc1befaa8, BRF_GRA | CPS1_TILES },
- { "1k_ye039.bin", 0x080000, 0x0627c831, BRF_GRA | CPS1_TILES },
-
- { "03.bin", 0x010000, 0xa4823a1b, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "02.bin", 0x020000, 0x7f162009, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "01.bin", 0x020000, 0xbeade53f, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- { "05.bin", 0x020000, 0xa505621e, BRF_GRA | CPS1_EXTRA_TILES_SF2EBBL_400000 },
- { "07.bin", 0x020000, 0xde6271fb, BRF_GRA | CPS1_EXTRA_TILES_SF2EBBL_400000 },
- { "06.bin", 0x020000, 0x23775344, BRF_GRA | CPS1_EXTRA_TILES_SF2EBBL_400000 },
- { "08.bin", 0x020000, 0x81c9550f, BRF_GRA | CPS1_EXTRA_TILES_SF2EBBL_400000 },
-
- { "04.bin", 0x010000, 0x13ea1c44, BRF_OPT }, // unknown
-};
-
-STD_ROM_PICK(Sf2ebbl)
-STD_ROM_FN(Sf2ebbl)
-
-static struct BurnRomInfo Sf2ebbl2RomDesc[] = {
- { "27c020.7", 0x040000, 0xa258b4d5, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "27c020.5", 0x040000, 0x59ccd474, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "27c020.6", 0x040000, 0x82097d63, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "27c020.4", 0x040000, 0x0c83844d, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "a-se235.bin", 0x100000, 0xa258de13, BRF_GRA | CPS1_TILES },
- { "c-se005.bin", 0x100000, 0xc781bf87, BRF_GRA | CPS1_TILES },
- { "b-se194.bin", 0x100000, 0x5726cab8, BRF_GRA | CPS1_TILES },
- { "d-se064.bin", 0x100000, 0x4dd24197, BRF_GRA | CPS1_TILES }, //sf2-8m.6c 99.999809%
- { "e-sf004.bin", 0x100000, 0x187667cc, BRF_GRA | CPS1_TILES },
- { "f-sf001.bin", 0x100000, 0x5b585071, BRF_GRA | CPS1_TILES },
-
- { "27c512.3", 0x010000, 0xa4823a1b, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "27c010.2", 0x020000, 0x7f162009, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "27c010.1", 0x020000, 0xbeade53f, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- { "27c1024.10", 0x020000, 0x84427d1b, BRF_GRA | CPS1_EXTRA_TILES_400000 },
- { "27c1024.12", 0x020000, 0x55bc790c, BRF_GRA | CPS1_EXTRA_TILES_400000 },
- { "27c1024.9", 0x020000, 0xf8725add, BRF_GRA | CPS1_EXTRA_TILES_400000 },
- { "27c1024.11", 0x020000, 0xc2a5373e, BRF_GRA | CPS1_EXTRA_TILES_400000 },
-
- { "27c512.8", 0x010000, 0x13ea1c44, BRF_OPT }, // unknown
-};
-
-STD_ROM_PICK(Sf2ebbl2)
-STD_ROM_FN(Sf2ebbl2)
-
-static struct BurnRomInfo Sf2ebbl3RomDesc[] = {
- { "ce91e-b.bin", 0x080000, 0x963200d2, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "ce91e-a.bin", 0x080000, 0x02e88ec7, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "1-b-yf197.07", 0x080000, 0x22c9cc8e, BRF_GRA | CPS1_TILES },
- { "1-d-yf207.12", 0x080000, 0x57213be8, BRF_GRA | CPS1_TILES },
- { "27020.1", 0x040000, 0x84afb959, BRF_GRA | CPS1_TILES },
- { "27020.3", 0x040000, 0xab21635d, BRF_GRA | CPS1_TILES },
- { "27020.5", 0x040000, 0x2ce56f9f, BRF_GRA | CPS1_TILES },
- { "27020.7", 0x040000, 0x0ad7fb2b, BRF_GRA | CPS1_TILES },
- { "27020.2", 0x040000, 0x031525cc, BRF_GRA | CPS1_TILES },
- { "27020.4", 0x040000, 0xc97046a5, BRF_GRA | CPS1_TILES },
- { "1-h-yg010.10", 0x080000, 0xb5548f17, BRF_GRA | CPS1_TILES },
- { "1-e-yg003.02", 0x080000, 0x14b84312, BRF_GRA | CPS1_TILES },
- { "27020.6", 0x040000, 0xdbbfd400, BRF_GRA | CPS1_TILES },
- { "27020.8", 0x040000, 0x37635e97, BRF_GRA | CPS1_TILES },
- { "1-j-yf213.09", 0x080000, 0x994bfa58, BRF_GRA | CPS1_TILES },
- { "wm91m-11-yd025.11", 0x080000, 0x3e66ad9d, BRF_GRA | CPS1_TILES },
- { "1-i-yf224.03", 0x080000, 0xc1befaa8, BRF_GRA | CPS1_TILES },
- { "1-k-yf036.06", 0x080000, 0x0627c831, BRF_GRA | CPS1_TILES },
-
- { "27512.3", 0x010000, 0xa4823a1b, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "27010.2", 0x020000, 0x7f162009, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "27010.1", 0x020000, 0xbeade53f, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- { "27010.09hi", 0x020000, 0xa505621e, BRF_GRA | CPS1_EXTRA_TILES_SF2EBBL_400000 },
- { "27010.11", 0x020000, 0xde6271fb, BRF_GRA | CPS1_EXTRA_TILES_SF2EBBL_400000 },
- { "27010.09lo", 0x020000, 0x23775344, BRF_GRA | CPS1_EXTRA_TILES_SF2EBBL_400000 },
- { "27010.06", 0x020000, 0x81c9550f, BRF_GRA | CPS1_EXTRA_TILES_SF2EBBL_400000 },
-
- { "27512.8", 0x010000, 0x13ea1c44, BRF_OPT }, // unknown
-};
-
-STD_ROM_PICK(Sf2ebbl3)
-STD_ROM_FN(Sf2ebbl3)
-
-static struct BurnRomInfo Sf2sttRomDesc[] = {
-#if !defined ROM_VERIFY
- // These first two are missing from the PCB
- { "prg part 1.stt", 0x040000, 0xa258b4d5, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "prg part 2.stt", 0x040000, 0x59ccd474, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-#else
- { "prg part 1.stt", 0x040000, 0x00000000, BRF_OPT | BRF_PRG | BRF_NODUMP },
- { "prg part 2.stt", 0x040000, 0x00000000, BRF_OPT | BRF_PRG | BRF_NODUMP },
-#endif
- { "ce91e-b", 0x040000, 0x0862386e, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "ce91e-a", 0x040000, 0x0c83844d, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "stt-a", 0x100000, 0x10a7036d, BRF_GRA | CPS1_TILES },
- { "stt-d", 0x100000, 0x3580b124, BRF_GRA | CPS1_TILES },
- { "stt-b", 0x100000, 0x7a09224e, BRF_GRA | CPS1_TILES },
- { "stt-e", 0x100000, 0x382a612c, BRF_GRA | CPS1_TILES },
- { "stt-c", 0x100000, 0x11701b8f, BRF_GRA | CPS1_TILES },
- { "stt-f", 0x100000, 0x101a0b72, BRF_GRA | CPS1_TILES },
-
- { "3.stt", 0x010000, 0xa4823a1b, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "2.stt", 0x020000, 0x7f162009, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "1.stt", 0x020000, 0xbeade53f, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- { "5.stt", 0x020000, 0xa505621e, BRF_GRA | CPS1_EXTRA_TILES_SF2EBBL_400000 },
- { "7.stt", 0x020000, 0xde6271fb, BRF_GRA | CPS1_EXTRA_TILES_SF2EBBL_400000 },
- { "6.stt", 0x020000, 0x23775344, BRF_GRA | CPS1_EXTRA_TILES_SF2EBBL_400000 },
- { "8.stt", 0x020000, 0x81c9550f, BRF_GRA | CPS1_EXTRA_TILES_SF2EBBL_400000 },
-
- { "4.stt", 0x010000, 0x13ea1c44, BRF_OPT }, // unknown
-};
-
-STD_ROM_PICK(Sf2stt)
-STD_ROM_FN(Sf2stt)
-
-static struct BurnRomInfo Sf2uaRomDesc[] = {
- { "sf2u_30a.11e", 0x020000, 0x08beb861, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2u_37a.11f", 0x020000, 0xb7638d69, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2u_31a.12e", 0x020000, 0x0d5394e0, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2u_38a.12f", 0x020000, 0x42d6a79e, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2u_28a.9e", 0x020000, 0x387a175c, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2u_35a.9f", 0x020000, 0xa1a5adcc, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2_29b.10e", 0x020000, 0xbb4af315, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2_36b.10f", 0x020000, 0xc02a13eb, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "sf2-5m.4a", 0x080000, 0x22c9cc8e, BRF_GRA | CPS1_TILES },
- { "sf2-7m.6a", 0x080000, 0x57213be8, BRF_GRA | CPS1_TILES },
- { "sf2-1m.3a", 0x080000, 0xba529b4f, BRF_GRA | CPS1_TILES },
- { "sf2-3m.5a", 0x080000, 0x4b1b33a8, BRF_GRA | CPS1_TILES },
- { "sf2-6m.4c", 0x080000, 0x2c7e2229, BRF_GRA | CPS1_TILES },
- { "sf2-8m.6c", 0x080000, 0xb5548f17, BRF_GRA | CPS1_TILES },
- { "sf2-2m.3c", 0x080000, 0x14b84312, BRF_GRA | CPS1_TILES },
- { "sf2-4m.5c", 0x080000, 0x5e9cd89a, BRF_GRA | CPS1_TILES },
- { "sf2-13m.4d", 0x080000, 0x994bfa58, BRF_GRA | CPS1_TILES },
- { "sf2-15m.6d", 0x080000, 0x3e66ad9d, BRF_GRA | CPS1_TILES },
- { "sf2-9m.3d", 0x080000, 0xc1befaa8, BRF_GRA | CPS1_TILES },
- { "sf2-11m.5d", 0x080000, 0x0627c831, BRF_GRA | CPS1_TILES },
-
- { "sf2_9.12a", 0x010000, 0xa4823a1b, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "sf2_18.11c", 0x020000, 0x7f162009, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "sf2_19.12c", 0x020000, 0xbeade53f, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "stf29.1a", 0x000117, 0x043309c5, BRF_OPT }, // b-board PLDs
- { "iob1.11d", 0x000117, 0x3abc0700, BRF_OPT },
- { "c632.ic1", 0x000117, 0x0fbd9270, BRF_OPT }, // c-board PLDs
-};
-
-STD_ROM_PICK(Sf2ua)
-STD_ROM_FN(Sf2ua)
-
-static struct BurnRomInfo Sf2ubRomDesc[] = {
- { "sf2u_30b.11e", 0x020000, 0x57bd7051, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2u_37b.11f", 0x020000, 0x4a54d479, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2u_31b.12e", 0x020000, 0xa673143d, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2u_38b.12f", 0x020000, 0x4c2ccef7, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2u_28b.9e", 0x020000, 0x4009955e, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2u_35b.9f", 0x020000, 0x8c1f3994, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2_29b.10e", 0x020000, 0xbb4af315, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2_36b.10f", 0x020000, 0xc02a13eb, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "sf2-5m.4a", 0x080000, 0x22c9cc8e, BRF_GRA | CPS1_TILES },
- { "sf2-7m.6a", 0x080000, 0x57213be8, BRF_GRA | CPS1_TILES },
- { "sf2-1m.3a", 0x080000, 0xba529b4f, BRF_GRA | CPS1_TILES },
- { "sf2-3m.5a", 0x080000, 0x4b1b33a8, BRF_GRA | CPS1_TILES },
- { "sf2-6m.4c", 0x080000, 0x2c7e2229, BRF_GRA | CPS1_TILES },
- { "sf2-8m.6c", 0x080000, 0xb5548f17, BRF_GRA | CPS1_TILES },
- { "sf2-2m.3c", 0x080000, 0x14b84312, BRF_GRA | CPS1_TILES },
- { "sf2-4m.5c", 0x080000, 0x5e9cd89a, BRF_GRA | CPS1_TILES },
- { "sf2-13m.4d", 0x080000, 0x994bfa58, BRF_GRA | CPS1_TILES },
- { "sf2-15m.6d", 0x080000, 0x3e66ad9d, BRF_GRA | CPS1_TILES },
- { "sf2-9m.3d", 0x080000, 0xc1befaa8, BRF_GRA | CPS1_TILES },
- { "sf2-11m.5d", 0x080000, 0x0627c831, BRF_GRA | CPS1_TILES },
-
- { "sf2_9.12a", 0x010000, 0xa4823a1b, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "sf2_18.11c", 0x020000, 0x7f162009, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "sf2_19.12c", 0x020000, 0xbeade53f, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "stf29.1a", 0x000117, 0x043309c5, BRF_OPT }, // b-board PLDs
- { "iob1.11d", 0x000117, 0x3abc0700, BRF_OPT },
- { "c632.ic1", 0x000117, 0x0fbd9270, BRF_OPT }, // c-board PLDs
-};
-
-STD_ROM_PICK(Sf2ub)
-STD_ROM_FN(Sf2ub)
-
-static struct BurnRomInfo Sf2ucRomDesc[] = {
- { "sf2u_30c.11e", 0x020000, 0x6cb59385, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2u_37c.11f", 0x020000, 0x32e2c278, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2u_31c.12e", 0x020000, 0xc4fff4a9, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2u_38c.12f", 0x020000, 0x8210fc0e, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2u_28c.9e", 0x020000, 0x6eddd5e8, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2u_35c.9f", 0x020000, 0x6bcb404c, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2_29b.10e", 0x020000, 0xbb4af315, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2_36b.10f", 0x020000, 0xc02a13eb, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "sf2-5m.4a", 0x080000, 0x22c9cc8e, BRF_GRA | CPS1_TILES },
- { "sf2-7m.6a", 0x080000, 0x57213be8, BRF_GRA | CPS1_TILES },
- { "sf2-1m.3a", 0x080000, 0xba529b4f, BRF_GRA | CPS1_TILES },
- { "sf2-3m.5a", 0x080000, 0x4b1b33a8, BRF_GRA | CPS1_TILES },
- { "sf2-6m.4c", 0x080000, 0x2c7e2229, BRF_GRA | CPS1_TILES },
- { "sf2-8m.6c", 0x080000, 0xb5548f17, BRF_GRA | CPS1_TILES },
- { "sf2-2m.3c", 0x080000, 0x14b84312, BRF_GRA | CPS1_TILES },
- { "sf2-4m.5c", 0x080000, 0x5e9cd89a, BRF_GRA | CPS1_TILES },
- { "sf2-13m.4d", 0x080000, 0x994bfa58, BRF_GRA | CPS1_TILES },
- { "sf2-15m.6d", 0x080000, 0x3e66ad9d, BRF_GRA | CPS1_TILES },
- { "sf2-9m.3d", 0x080000, 0xc1befaa8, BRF_GRA | CPS1_TILES },
- { "sf2-11m.5d", 0x080000, 0x0627c831, BRF_GRA | CPS1_TILES },
-
- { "sf2_9.12a", 0x010000, 0xa4823a1b, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "sf2_18.11c", 0x020000, 0x7f162009, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "sf2_19.12c", 0x020000, 0xbeade53f, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "stf29.1a", 0x000117, 0x043309c5, BRF_OPT }, // b-board PLDs
- { "iob1.11d", 0x000117, 0x3abc0700, BRF_OPT },
- { "c632.ic1", 0x000117, 0x0fbd9270, BRF_OPT }, // c-board PLDs
-};
-
-STD_ROM_PICK(Sf2uc)
-STD_ROM_FN(Sf2uc)
-
-static struct BurnRomInfo Sf2udRomDesc[] = {
- { "sf2u_30d.11e", 0x020000, 0x4bb2657c, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2u_37d.11f", 0x020000, 0xb33b42f2, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2u_31d.12e", 0x020000, 0xd57b67d7, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2u_38d.12f", 0x020000, 0x9c8916ef, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2u_28d.9e", 0x020000, 0x175819d1, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2u_35d.9f", 0x020000, 0x82060da4, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2_29b.10e", 0x020000, 0xbb4af315, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2_36b.10f", 0x020000, 0xc02a13eb, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "sf2-5m.4a", 0x080000, 0x22c9cc8e, BRF_GRA | CPS1_TILES },
- { "sf2-7m.6a", 0x080000, 0x57213be8, BRF_GRA | CPS1_TILES },
- { "sf2-1m.3a", 0x080000, 0xba529b4f, BRF_GRA | CPS1_TILES },
- { "sf2-3m.5a", 0x080000, 0x4b1b33a8, BRF_GRA | CPS1_TILES },
- { "sf2-6m.4c", 0x080000, 0x2c7e2229, BRF_GRA | CPS1_TILES },
- { "sf2-8m.6c", 0x080000, 0xb5548f17, BRF_GRA | CPS1_TILES },
- { "sf2-2m.3c", 0x080000, 0x14b84312, BRF_GRA | CPS1_TILES },
- { "sf2-4m.5c", 0x080000, 0x5e9cd89a, BRF_GRA | CPS1_TILES },
- { "sf2-13m.4d", 0x080000, 0x994bfa58, BRF_GRA | CPS1_TILES },
- { "sf2-15m.6d", 0x080000, 0x3e66ad9d, BRF_GRA | CPS1_TILES },
- { "sf2-9m.3d", 0x080000, 0xc1befaa8, BRF_GRA | CPS1_TILES },
- { "sf2-11m.5d", 0x080000, 0x0627c831, BRF_GRA | CPS1_TILES },
-
- { "sf2_9.12a", 0x010000, 0xa4823a1b, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "sf2_18.11c", 0x020000, 0x7f162009, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "sf2_19.12c", 0x020000, 0xbeade53f, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "stf29.1a", 0x000117, 0x043309c5, BRF_OPT }, // b-board PLDs
- { "iob1.11d", 0x000117, 0x3abc0700, BRF_OPT },
- { "c632.ic1", 0x000117, 0x0fbd9270, BRF_OPT }, // c-board PLDs
-};
-
-STD_ROM_PICK(Sf2ud)
-STD_ROM_FN(Sf2ud)
-
-static struct BurnRomInfo Sf2ueRomDesc[] = {
- { "sf2u_30e.11e", 0x020000, 0xf37cd088, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2u_37e.11f", 0x020000, 0x6c61a513, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2u_31e.12e", 0x020000, 0x7c4771b4, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2u_38e.12f", 0x020000, 0xa4bd0cd9, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2u_28e.9e", 0x020000, 0xe3b95625, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2u_35e.9f", 0x020000, 0x3648769a, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2_29b.10e", 0x020000, 0xbb4af315, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2_36b.10f", 0x020000, 0xc02a13eb, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "sf2-5m.4a", 0x080000, 0x22c9cc8e, BRF_GRA | CPS1_TILES },
- { "sf2-7m.6a", 0x080000, 0x57213be8, BRF_GRA | CPS1_TILES },
- { "sf2-1m.3a", 0x080000, 0xba529b4f, BRF_GRA | CPS1_TILES },
- { "sf2-3m.5a", 0x080000, 0x4b1b33a8, BRF_GRA | CPS1_TILES },
- { "sf2-6m.4c", 0x080000, 0x2c7e2229, BRF_GRA | CPS1_TILES },
- { "sf2-8m.6c", 0x080000, 0xb5548f17, BRF_GRA | CPS1_TILES },
- { "sf2-2m.3c", 0x080000, 0x14b84312, BRF_GRA | CPS1_TILES },
- { "sf2-4m.5c", 0x080000, 0x5e9cd89a, BRF_GRA | CPS1_TILES },
- { "sf2-13m.4d", 0x080000, 0x994bfa58, BRF_GRA | CPS1_TILES },
- { "sf2-15m.6d", 0x080000, 0x3e66ad9d, BRF_GRA | CPS1_TILES },
- { "sf2-9m.3d", 0x080000, 0xc1befaa8, BRF_GRA | CPS1_TILES },
- { "sf2-11m.5d", 0x080000, 0x0627c831, BRF_GRA | CPS1_TILES },
-
- { "sf2_9.12a", 0x010000, 0xa4823a1b, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "sf2_18.11c", 0x020000, 0x7f162009, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "sf2_19.12c", 0x020000, 0xbeade53f, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "stf29.1a", 0x000117, 0x043309c5, BRF_OPT }, // b-board PLDs
- { "iob2.11d", 0x000117, 0xd26f0a27, BRF_OPT },
- { "c632b.ic1", 0x000117, 0x0fbd9270, BRF_OPT }, // c-board PLDs
-};
-
-STD_ROM_PICK(Sf2ue)
-STD_ROM_FN(Sf2ue)
-
-static struct BurnRomInfo Sf2ufRomDesc[] = {
- { "sf2u_30f.11e", 0x020000, 0xfe39ee33, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2u_37f.11f", 0x020000, 0x169e7388, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2u_31f.12e", 0x020000, 0x69a0a301, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2u_38f.12f", 0x020000, 0x1510e4e2, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2u_28f.9e", 0x020000, 0xacd8175b, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2u_35f.9f", 0x020000, 0xc0a80bd1, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2_29b.10e", 0x020000, 0xbb4af315, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2_36b.10f", 0x020000, 0xc02a13eb, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "sf2-5m.4a", 0x080000, 0x22c9cc8e, BRF_GRA | CPS1_TILES },
- { "sf2-7m.6a", 0x080000, 0x57213be8, BRF_GRA | CPS1_TILES },
- { "sf2-1m.3a", 0x080000, 0xba529b4f, BRF_GRA | CPS1_TILES },
- { "sf2-3m.5a", 0x080000, 0x4b1b33a8, BRF_GRA | CPS1_TILES },
- { "sf2-6m.4c", 0x080000, 0x2c7e2229, BRF_GRA | CPS1_TILES },
- { "sf2-8m.6c", 0x080000, 0xb5548f17, BRF_GRA | CPS1_TILES },
- { "sf2-2m.3c", 0x080000, 0x14b84312, BRF_GRA | CPS1_TILES },
- { "sf2-4m.5c", 0x080000, 0x5e9cd89a, BRF_GRA | CPS1_TILES },
- { "sf2-13m.4d", 0x080000, 0x994bfa58, BRF_GRA | CPS1_TILES },
- { "sf2-15m.6d", 0x080000, 0x3e66ad9d, BRF_GRA | CPS1_TILES },
- { "sf2-9m.3d", 0x080000, 0xc1befaa8, BRF_GRA | CPS1_TILES },
- { "sf2-11m.5d", 0x080000, 0x0627c831, BRF_GRA | CPS1_TILES },
-
- { "sf2_9.12a", 0x010000, 0xa4823a1b, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "sf2_18.11c", 0x020000, 0x7f162009, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "sf2_19.12c", 0x020000, 0xbeade53f, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "stf29.1a", 0x000117, 0x043309c5, BRF_OPT }, // b-board PLDs
- { "iob1.11d", 0x000117, 0x3abc0700, BRF_OPT },
- { "c632.ic1", 0x000117, 0x0fbd9270, BRF_OPT }, // c-board PLDs
-};
-
-STD_ROM_PICK(Sf2uf)
-STD_ROM_FN(Sf2uf)
-
-static struct BurnRomInfo Sf2ugRomDesc[] = {
- { "sf2u_30g.11e", 0x020000, 0xfe39ee33, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2u_37g.11f", 0x020000, 0x5886cae7, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2u_31g.12e", 0x020000, 0x69a0a301, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2u_38g.12f", 0x020000, 0x5e22db70, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2u_28g.9e", 0x020000, 0x8bf9f1e5, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2u_35g.9f", 0x020000, 0x626ef934, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2_29b.10e", 0x020000, 0xbb4af315, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2_36b.10f", 0x020000, 0xc02a13eb, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "sf2-5m.4a", 0x080000, 0x22c9cc8e, BRF_GRA | CPS1_TILES },
- { "sf2-7m.6a", 0x080000, 0x57213be8, BRF_GRA | CPS1_TILES },
- { "sf2-1m.3a", 0x080000, 0xba529b4f, BRF_GRA | CPS1_TILES },
- { "sf2-3m.5a", 0x080000, 0x4b1b33a8, BRF_GRA | CPS1_TILES },
- { "sf2-6m.4c", 0x080000, 0x2c7e2229, BRF_GRA | CPS1_TILES },
- { "sf2-8m.6c", 0x080000, 0xb5548f17, BRF_GRA | CPS1_TILES },
- { "sf2-2m.3c", 0x080000, 0x14b84312, BRF_GRA | CPS1_TILES },
- { "sf2-4m.5c", 0x080000, 0x5e9cd89a, BRF_GRA | CPS1_TILES },
- { "sf2-13m.4d", 0x080000, 0x994bfa58, BRF_GRA | CPS1_TILES },
- { "sf2-15m.6d", 0x080000, 0x3e66ad9d, BRF_GRA | CPS1_TILES },
- { "sf2-9m.3d", 0x080000, 0xc1befaa8, BRF_GRA | CPS1_TILES },
- { "sf2-11m.5d", 0x080000, 0x0627c831, BRF_GRA | CPS1_TILES },
-
- { "sf2_9.12a", 0x010000, 0xa4823a1b, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "sf2_18.11c", 0x020000, 0x7f162009, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "sf2_19.12c", 0x020000, 0xbeade53f, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "stf29.1a", 0x000117, 0x043309c5, BRF_OPT }, // b-board PLDs
- { "iob1.11d", 0x000117, 0x3abc0700, BRF_OPT },
- { "c632.ic1", 0x000117, 0x0fbd9270, BRF_OPT }, // c-board PLDs
-};
-
-STD_ROM_PICK(Sf2ug)
-STD_ROM_FN(Sf2ug)
-
-static struct BurnRomInfo Sf2uiRomDesc[] = {
- { "sf2u_30i.11e", 0x020000, 0xfe39ee33, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2u_37i.11f", 0x020000, 0x9df707dd, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2u_31i.12e", 0x020000, 0x69a0a301, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2u_38i.12f", 0x020000, 0x4cb46daf, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2u_28i.9e", 0x020000, 0x1580be4c, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2u_35i.9f", 0x020000, 0x1468d185, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2_29b.10e", 0x020000, 0xbb4af315, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2_36b.10f", 0x020000, 0xc02a13eb, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "sf2-5m.4a", 0x080000, 0x22c9cc8e, BRF_GRA | CPS1_TILES },
- { "sf2-7m.6a", 0x080000, 0x57213be8, BRF_GRA | CPS1_TILES },
- { "sf2-1m.3a", 0x080000, 0xba529b4f, BRF_GRA | CPS1_TILES },
- { "sf2-3m.5a", 0x080000, 0x4b1b33a8, BRF_GRA | CPS1_TILES },
- { "sf2-6m.4c", 0x080000, 0x2c7e2229, BRF_GRA | CPS1_TILES },
- { "sf2-8m.6c", 0x080000, 0xb5548f17, BRF_GRA | CPS1_TILES },
- { "sf2-2m.3c", 0x080000, 0x14b84312, BRF_GRA | CPS1_TILES },
- { "sf2-4m.5c", 0x080000, 0x5e9cd89a, BRF_GRA | CPS1_TILES },
- { "sf2-13m.4d", 0x080000, 0x994bfa58, BRF_GRA | CPS1_TILES },
- { "sf2-15m.6d", 0x080000, 0x3e66ad9d, BRF_GRA | CPS1_TILES },
- { "sf2-9m.3d", 0x080000, 0xc1befaa8, BRF_GRA | CPS1_TILES },
- { "sf2-11m.5d", 0x080000, 0x0627c831, BRF_GRA | CPS1_TILES },
-
- { "sf2_9.12a", 0x010000, 0xa4823a1b, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "sf2_18.11c", 0x020000, 0x7f162009, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "sf2_19.12c", 0x020000, 0xbeade53f, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "stf29.1a", 0x000117, 0x043309c5, BRF_OPT }, // b-board PLDs
- { "iob1.11d", 0x000117, 0x3abc0700, BRF_OPT },
- { "c632.ic1", 0x000117, 0x0fbd9270, BRF_OPT }, // c-board PLDs
-};
-
-STD_ROM_PICK(Sf2ui)
-STD_ROM_FN(Sf2ui)
-
-static struct BurnRomInfo Sf2ukRomDesc[] = {
- { "sf2u_30k.11e", 0x020000, 0x8f66076c, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2u_37k.11f", 0x020000, 0x4e1f6a83, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2u_31k.12e", 0x020000, 0xf9f89f60, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2u_38k.12f", 0x020000, 0x6ce0a85a, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2u_28k.9e", 0x020000, 0x8e958f31, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2u_35k.9f", 0x020000, 0xfce76fad, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2u_29a.10e", 0x020000, 0xbb4af315, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2u_36a.10f", 0x020000, 0xc02a13eb, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "sf2-5m.4a", 0x080000, 0x22c9cc8e, BRF_GRA | CPS1_TILES },
- { "sf2-7m.6a", 0x080000, 0x57213be8, BRF_GRA | CPS1_TILES },
- { "sf2-1m.3a", 0x080000, 0xba529b4f, BRF_GRA | CPS1_TILES },
- { "sf2-3m.5a", 0x080000, 0x4b1b33a8, BRF_GRA | CPS1_TILES },
- { "sf2-6m.4c", 0x080000, 0x2c7e2229, BRF_GRA | CPS1_TILES },
- { "sf2-8m.6c", 0x080000, 0xb5548f17, BRF_GRA | CPS1_TILES },
- { "sf2-2m.3c", 0x080000, 0x14b84312, BRF_GRA | CPS1_TILES },
- { "sf2-4m.5c", 0x080000, 0x5e9cd89a, BRF_GRA | CPS1_TILES },
- { "sf2-13m.4d", 0x080000, 0x994bfa58, BRF_GRA | CPS1_TILES },
- { "sf2-15m.6d", 0x080000, 0x3e66ad9d, BRF_GRA | CPS1_TILES },
- { "sf2-9m.3d", 0x080000, 0xc1befaa8, BRF_GRA | CPS1_TILES },
- { "sf2-11m.5d", 0x080000, 0x0627c831, BRF_GRA | CPS1_TILES },
-
- { "sf2_09.12a", 0x010000, 0xa4823a1b, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "sf2_18.11c", 0x020000, 0x7f162009, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "sf2_19.12c", 0x020000, 0xbeade53f, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "stf29.1a", 0x000117, 0x043309c5, BRF_OPT }, // b-board PLDs
- { "iob1.11d", 0x000117, 0x3abc0700, BRF_OPT },
- { "c632.ic1", 0x000117, 0x0fbd9270, BRF_OPT }, // c-board PLDs
-};
-
-STD_ROM_PICK(Sf2uk)
-STD_ROM_FN(Sf2uk)
-
-static struct BurnRomInfo Sf2jRomDesc[] = {
- { "sf2j30.bin", 0x020000, 0x79022b31, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2j37.bin", 0x020000, 0x516776ec, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2j31.bin", 0x020000, 0xfe15cb39, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2j38.bin", 0x020000, 0x38614d70, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2j28.bin", 0x020000, 0xd283187a, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2j35.bin", 0x020000, 0xd28158e4, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2_29a.bin", 0x020000, 0xbb4af315, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2_36a.bin", 0x020000, 0xc02a13eb, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "sf2_06.8a", 0x080000, 0x22c9cc8e, BRF_GRA | CPS1_TILES },
- { "sf2_08.10a", 0x080000, 0x57213be8, BRF_GRA | CPS1_TILES },
- { "sf2_05.7a", 0x080000, 0xba529b4f, BRF_GRA | CPS1_TILES },
- { "sf2_07.9a", 0x080000, 0x4b1b33a8, BRF_GRA | CPS1_TILES },
- { "sf2_15.8c", 0x080000, 0x2c7e2229, BRF_GRA | CPS1_TILES },
- { "sf2_17.10c", 0x080000, 0xb5548f17, BRF_GRA | CPS1_TILES },
- { "sf2_14.7c", 0x080000, 0x14b84312, BRF_GRA | CPS1_TILES },
- { "sf2_16.9c", 0x080000, 0x5e9cd89a, BRF_GRA | CPS1_TILES },
- { "sf2_25.8d", 0x080000, 0x994bfa58, BRF_GRA | CPS1_TILES },
- { "sf2_27.10d", 0x080000, 0x3e66ad9d, BRF_GRA | CPS1_TILES },
- { "sf2_24.7d", 0x080000, 0xc1befaa8, BRF_GRA | CPS1_TILES },
- { "sf2_26.9d", 0x080000, 0x0627c831, BRF_GRA | CPS1_TILES },
-
- { "sf2_09.bin", 0x010000, 0xa4823a1b, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "sf2_18.bin", 0x020000, 0x7f162009, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "sf2_19.bin", 0x020000, 0xbeade53f, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "stf29.1a", 0x000117, 0x043309c5, BRF_OPT }, // b-board PLDs
- { "iob1.11d", 0x000117, 0x3abc0700, BRF_OPT },
- { "c632.ic1", 0x000117, 0x0fbd9270, BRF_OPT }, // c-board PLDs
-};
-
-STD_ROM_PICK(Sf2j)
-STD_ROM_FN(Sf2j)
-
-static struct BurnRomInfo Sf2j17RomDesc[] = {
- { "sf2_30l.11e", 0x020000, 0x79022b31, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2j_37l.11f", 0x020000, 0x04ba20c7, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2_31l.12e", 0x020000, 0xfe15cb39, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2_38l.12f", 0x020000, 0x65cb1883, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2_28l.9e", 0x020000, 0xd283187a, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2_35l.9f", 0x020000, 0xe3266622, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2_29l.10e", 0x020000, 0xbb4af315, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2_36l.10f", 0x020000, 0xc02a13eb, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "sf2_06.8a", 0x080000, 0x22c9cc8e, BRF_GRA | CPS1_TILES },
- { "sf2_08.10a", 0x080000, 0x57213be8, BRF_GRA | CPS1_TILES },
- { "sf2_05.7a", 0x080000, 0xba529b4f, BRF_GRA | CPS1_TILES },
- { "sf2_07.9a", 0x080000, 0x4b1b33a8, BRF_GRA | CPS1_TILES },
- { "sf2_15.8c", 0x080000, 0x2c7e2229, BRF_GRA | CPS1_TILES },
- { "sf2_17.10c", 0x080000, 0xb5548f17, BRF_GRA | CPS1_TILES },
- { "sf2_14.7c", 0x080000, 0x14b84312, BRF_GRA | CPS1_TILES },
- { "sf2_16.9c", 0x080000, 0x5e9cd89a, BRF_GRA | CPS1_TILES },
- { "sf2_25.8d", 0x080000, 0x994bfa58, BRF_GRA | CPS1_TILES },
- { "sf2_27.10d", 0x080000, 0x3e66ad9d, BRF_GRA | CPS1_TILES },
- { "sf2_24.7d", 0x080000, 0xc1befaa8, BRF_GRA | CPS1_TILES },
- { "sf2_26.9d", 0x080000, 0x0627c831, BRF_GRA | CPS1_TILES },
-
- { "sf2_09.12a", 0x010000, 0xa4823a1b, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "sf2_18.11c", 0x020000, 0x7f162009, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "sf2_19.12c", 0x020000, 0xbeade53f, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "stf29.1a", 0x000117, 0x043309c5, BRF_OPT }, // b-board PLDs
- { "iob1.11d", 0x000117, 0x3abc0700, BRF_OPT },
- { "c632.ic1", 0x000117, 0x0fbd9270, BRF_OPT }, // c-board PLDs
-};
-
-STD_ROM_PICK(Sf2j17)
-STD_ROM_FN(Sf2j17)
-
-static struct BurnRomInfo Sf2jaRomDesc[] = {
- { "sf2j_30a.11e", 0x020000, 0x57bd7051, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2j_37a.11f", 0x020000, 0x1e1f6844, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2j_31a.12e", 0x020000, 0xa673143d, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2j_38a.12f", 0x020000, 0x4c2ccef7, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2j_28a.9e", 0x020000, 0x4009955e, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2j_35a.9f", 0x020000, 0x8c1f3994, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2j_29a.10e", 0x020000, 0xbb4af315, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2j_36a.10f", 0x020000, 0xc02a13eb, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "sf2_06.8a", 0x080000, 0x22c9cc8e, BRF_GRA | CPS1_TILES },
- { "sf2_08.10a", 0x080000, 0x57213be8, BRF_GRA | CPS1_TILES },
- { "sf2_05.7a", 0x080000, 0xba529b4f, BRF_GRA | CPS1_TILES },
- { "sf2_07.9a", 0x080000, 0x4b1b33a8, BRF_GRA | CPS1_TILES },
- { "sf2_15.8c", 0x080000, 0x2c7e2229, BRF_GRA | CPS1_TILES },
- { "sf2_17.10c", 0x080000, 0xb5548f17, BRF_GRA | CPS1_TILES },
- { "sf2_14.7c", 0x080000, 0x14b84312, BRF_GRA | CPS1_TILES },
- { "sf2_16.9c", 0x080000, 0x5e9cd89a, BRF_GRA | CPS1_TILES },
- { "sf2_25.8d", 0x080000, 0x994bfa58, BRF_GRA | CPS1_TILES },
- { "sf2_27.10d", 0x080000, 0x3e66ad9d, BRF_GRA | CPS1_TILES },
- { "sf2_24.7d", 0x080000, 0xc1befaa8, BRF_GRA | CPS1_TILES },
- { "sf2_26.9d", 0x080000, 0x0627c831, BRF_GRA | CPS1_TILES },
-
- { "sf2j_09.12a", 0x010000, 0xa4823a1b, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "sf2j_18.11c", 0x020000, 0x7f162009, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "sf2j_19.12c", 0x020000, 0xbeade53f, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "stf29.1a", 0x000117, 0x043309c5, BRF_OPT }, // b-board PLDs
- { "iob1.11d", 0x000117, 0x3abc0700, BRF_OPT },
- { "c632.ic1", 0x000117, 0x0fbd9270, BRF_OPT }, // c-board PLDs
-};
-
-STD_ROM_PICK(Sf2ja)
-STD_ROM_FN(Sf2ja)
-
-static struct BurnRomInfo Sf2jcRomDesc[] = {
- { "sf2j_30c.11e", 0x020000, 0x8add35ec, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2j_37c.11f", 0x020000, 0x0d74a256, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2j_31c.12e", 0x020000, 0xc4fff4a9, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2j_38c.12f", 0x020000, 0x8210fc0e, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2j_28c.9e", 0x020000, 0x6eddd5e8, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2j_35c.9f", 0x020000, 0x6bcb404c, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2j_29a.10e", 0x020000, 0xbb4af315, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2j_36a.10f", 0x020000, 0xc02a13eb, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "sf2_06.8a", 0x080000, 0x22c9cc8e, BRF_GRA | CPS1_TILES },
- { "sf2_08.10a", 0x080000, 0x57213be8, BRF_GRA | CPS1_TILES },
- { "sf2_05.7a", 0x080000, 0xba529b4f, BRF_GRA | CPS1_TILES },
- { "sf2_07.9a", 0x080000, 0x4b1b33a8, BRF_GRA | CPS1_TILES },
- { "sf2_15.8c", 0x080000, 0x2c7e2229, BRF_GRA | CPS1_TILES },
- { "sf2_17.10c", 0x080000, 0xb5548f17, BRF_GRA | CPS1_TILES },
- { "sf2_14.7c", 0x080000, 0x14b84312, BRF_GRA | CPS1_TILES },
- { "sf2_16.9c", 0x080000, 0x5e9cd89a, BRF_GRA | CPS1_TILES },
- { "sf2_25.8d", 0x080000, 0x994bfa58, BRF_GRA | CPS1_TILES },
- { "sf2_27.10d", 0x080000, 0x3e66ad9d, BRF_GRA | CPS1_TILES },
- { "sf2_24.7d", 0x080000, 0xc1befaa8, BRF_GRA | CPS1_TILES },
- { "sf2_26.9d", 0x080000, 0x0627c831, BRF_GRA | CPS1_TILES },
-
- { "sf2_09.12a", 0x010000, 0xa4823a1b, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "sf2j_18.11c", 0x020000, 0x7f162009, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "sf2j_19.12c", 0x020000, 0xbeade53f, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "stf29.1a", 0x000117, 0x043309c5, BRF_OPT }, // b-board PLDs
- { "iob1.11d", 0x000117, 0x3abc0700, BRF_OPT },
- { "c632.ic1", 0x000117, 0x0fbd9270, BRF_OPT }, // c-board PLDs
-};
-
-STD_ROM_PICK(Sf2jc)
-STD_ROM_FN(Sf2jc)
-
-static struct BurnRomInfo Sf2jfRomDesc[] = {
- { "sf2j_30f.11e", 0x020000, 0xfe39ee33, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP }, // == sf2e_30g.11e
- { "sf2j_37f.11f", 0x020000, 0xc1428cc6, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2j_31f.12e", 0x020000, 0x69a0a301, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP }, // == sf2e_31g.12e
- { "sf2j_38f.12f", 0x020000, 0x1510e4e2, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2j_28f.9e", 0x020000, 0xacd8175b, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2j_35f.9f", 0x020000, 0xc0a80bd1, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2j_29a.10e", 0x020000, 0xbb4af315, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP }, // == sf2_29b.10e
- { "sf2j_36a.10f", 0x020000, 0xc02a13eb, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP }, // == sf2_36b.10f
-
- { "sf2_06.8a", 0x080000, 0x22c9cc8e, BRF_GRA | CPS1_TILES },
- { "sf2_08.10a", 0x080000, 0x57213be8, BRF_GRA | CPS1_TILES },
- { "sf2_05.7a", 0x080000, 0xba529b4f, BRF_GRA | CPS1_TILES },
- { "sf2_07.9a", 0x080000, 0x4b1b33a8, BRF_GRA | CPS1_TILES },
- { "sf2_15.8c", 0x080000, 0x2c7e2229, BRF_GRA | CPS1_TILES },
- { "sf2_17.10c", 0x080000, 0xb5548f17, BRF_GRA | CPS1_TILES },
- { "sf2_14.7c", 0x080000, 0x14b84312, BRF_GRA | CPS1_TILES },
- { "sf2_16.9c", 0x080000, 0x5e9cd89a, BRF_GRA | CPS1_TILES },
- { "sf2_25.8d", 0x080000, 0x994bfa58, BRF_GRA | CPS1_TILES },
- { "sf2_27.10d", 0x080000, 0x3e66ad9d, BRF_GRA | CPS1_TILES },
- { "sf2_24.7d", 0x080000, 0xc1befaa8, BRF_GRA | CPS1_TILES },
- { "sf2_26.9d", 0x080000, 0x0627c831, BRF_GRA | CPS1_TILES },
-
- { "sf2_09.12a", 0x010000, 0xa4823a1b, BRF_PRG | CPS1_Z80_PROGRAM }, // == sf2_9.12a
-
- { "sf2_18.11c", 0x020000, 0x7f162009, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "sf2_19.12c", 0x020000, 0xbeade53f, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "stf29.1a", 0x000117, 0x043309c5, BRF_OPT }, // b-board PLDs
- { "iob1.11d", 0x000117, 0x3abc0700, BRF_OPT },
- { "c632.ic1", 0x000117, 0x0fbd9270, BRF_OPT }, // c-board PLDs
-};
-
-STD_ROM_PICK(Sf2jf)
-STD_ROM_FN(Sf2jf)
-
-static struct BurnRomInfo Sf2jhRomDesc[] = {
- { "sf2j_30h.11e", 0x020000, 0xfe39ee33, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP }, // == sf2e_30g.11e
- { "sf2j_37h.11f", 0x020000, 0x330304b0, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2j_31h.12e", 0x020000, 0x69a0a301, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP }, // == sf2e_31g.12e
- { "sf2j_38h.12f", 0x020000, 0xa659f678, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2j_28h.9e", 0x020000, 0x8a5c8ee0, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2j_35h.9f", 0x020000, 0xc828fc4d, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2j_29a.10e", 0x020000, 0xbb4af315, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP }, // == sf2_29b.10e
- { "sf2j_36a.10f", 0x020000, 0xc02a13eb, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP }, // == sf2_36b.10f
-
- { "sf2_06.8a", 0x080000, 0x22c9cc8e, BRF_GRA | CPS1_TILES },
- { "sf2_08.10a", 0x080000, 0x57213be8, BRF_GRA | CPS1_TILES },
- { "sf2_05.7a", 0x080000, 0xba529b4f, BRF_GRA | CPS1_TILES },
- { "sf2_07.9a", 0x080000, 0x4b1b33a8, BRF_GRA | CPS1_TILES },
- { "sf2_15.8c", 0x080000, 0x2c7e2229, BRF_GRA | CPS1_TILES },
- { "sf2_17.10c", 0x080000, 0xb5548f17, BRF_GRA | CPS1_TILES },
- { "sf2_14.7c", 0x080000, 0x14b84312, BRF_GRA | CPS1_TILES },
- { "sf2_16.9c", 0x080000, 0x5e9cd89a, BRF_GRA | CPS1_TILES },
- { "sf2_25.8d", 0x080000, 0x994bfa58, BRF_GRA | CPS1_TILES },
- { "sf2_27.10d", 0x080000, 0x3e66ad9d, BRF_GRA | CPS1_TILES },
- { "sf2_24.7d", 0x080000, 0xc1befaa8, BRF_GRA | CPS1_TILES },
- { "sf2_26.9d", 0x080000, 0x0627c831, BRF_GRA | CPS1_TILES },
-
- { "sf2_09.12a", 0x010000, 0xa4823a1b, BRF_PRG | CPS1_Z80_PROGRAM }, // == sf2_9.12a
-
- { "sf2_18.11c", 0x020000, 0x7f162009, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "sf2_19.12c", 0x020000, 0xbeade53f, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "stf29.1a", 0x000117, 0x043309c5, BRF_OPT }, // b-board PLDs
- { "iob1.11d", 0x000117, 0x3abc0700, BRF_OPT },
- { "c632.ic1", 0x000117, 0x0fbd9270, BRF_OPT }, // c-board PLDs
-};
-
-STD_ROM_PICK(Sf2jh)
-STD_ROM_FN(Sf2jh)
-
-static struct BurnRomInfo Sf2jlRomDesc[] = {
- { "sf-2_30l.11e", 0x020000, 0x34a1ce02, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP }, // Verified "SF-2" without "J" for Japan region
- { "sf-2_37l.11f", 0x020000, 0x5b630ed2, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf-2_31l.12e", 0x020000, 0x64ebc8d2, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf-2_38l.12f", 0x020000, 0x73847443, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf-2_28l.9e", 0x020000, 0xeee2b426, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf-2_35l.9f", 0x020000, 0xeca8b452, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2j_29a.10e", 0x020000, 0xbb4af315, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP }, // == sf2_29b.10e
- { "sf2j_36a.10f", 0x020000, 0xc02a13eb, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP }, // == sf2_36b.10f
-
- { "sf2_06.8a", 0x080000, 0x22c9cc8e, BRF_GRA | CPS1_TILES },
- { "sf2_08.10a", 0x080000, 0x57213be8, BRF_GRA | CPS1_TILES },
- { "sf2_05.7a", 0x080000, 0xba529b4f, BRF_GRA | CPS1_TILES },
- { "sf2_07.9a", 0x080000, 0x4b1b33a8, BRF_GRA | CPS1_TILES },
- { "sf2_15.8c", 0x080000, 0x2c7e2229, BRF_GRA | CPS1_TILES },
- { "sf2_17.10c", 0x080000, 0xb5548f17, BRF_GRA | CPS1_TILES },
- { "sf2_14.7c", 0x080000, 0x14b84312, BRF_GRA | CPS1_TILES },
- { "sf2_16.9c", 0x080000, 0x5e9cd89a, BRF_GRA | CPS1_TILES },
- { "sf2_25.8d", 0x080000, 0x994bfa58, BRF_GRA | CPS1_TILES },
- { "sf2_27.10d", 0x080000, 0x3e66ad9d, BRF_GRA | CPS1_TILES },
- { "sf2_24.7d", 0x080000, 0xc1befaa8, BRF_GRA | CPS1_TILES },
- { "sf2_26.9d", 0x080000, 0x0627c831, BRF_GRA | CPS1_TILES },
-
- { "sf2j_09.12a", 0x010000, 0xa4823a1b, BRF_PRG | CPS1_Z80_PROGRAM }, // == sf2_09.12a / sf2_9.12a
-
- { "sf2j_18.11c", 0x020000, 0x7f162009, BRF_SND | CPS1_OKIM6295_SAMPLES }, // == sf2_18.11c
- { "sf2j_19.12c", 0x020000, 0xbeade53f, BRF_SND | CPS1_OKIM6295_SAMPLES }, // == sf2_19.12c
-
- A_BOARD_PLDS
-
- { "stf29.1a", 0x000117, 0x043309c5, BRF_OPT }, // b-board PLDs
- { "iob1.11d", 0x000117, 0x3abc0700, BRF_OPT },
- { "c632.ic1", 0x000117, 0x0fbd9270, BRF_OPT }, // c-board PLDs
-};
-
-STD_ROM_PICK(Sf2jl)
-STD_ROM_FN(Sf2jl)
-
-static struct BurnRomInfo Sf2jlaRomDesc[] = {
- // Not yet added to MAME but dumped from a real official board from Capcom
- { "sf-2_30l.bin", 0x020000, 0x79022b31, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP }, // Verified "SF-2" without "J" for Japan region
- { "sf-2_37l.bin", 0x020000, 0x04ba20c7, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf-2_31l.bin", 0x020000, 0xfe15cb39, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf-2_38l.bin", 0x020000, 0x65cb1883, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf-2_28l.bin", 0x020000, 0xd283187a, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf-2_35l.bin", 0x020000, 0xe3266622, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2_j_29_a.bin", 0x020000, 0xbb4af315, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP }, // == sf2_29b.10e
- { "sf2_j_36_a.bin", 0x020000, 0xc02a13eb, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP }, // == sf2_36b.10f
-
- { "sf2_06.8a", 0x080000, 0x22c9cc8e, BRF_GRA | CPS1_TILES },
- { "sf2_08.10a", 0x080000, 0x57213be8, BRF_GRA | CPS1_TILES },
- { "sf2_05.7a", 0x080000, 0xba529b4f, BRF_GRA | CPS1_TILES },
- { "sf2_07.9a", 0x080000, 0x4b1b33a8, BRF_GRA | CPS1_TILES },
- { "sf2_15.8c", 0x080000, 0x2c7e2229, BRF_GRA | CPS1_TILES },
- { "sf2_17.10c", 0x080000, 0xb5548f17, BRF_GRA | CPS1_TILES },
- { "sf2_14.7c", 0x080000, 0x14b84312, BRF_GRA | CPS1_TILES },
- { "sf2_16.9c", 0x080000, 0x5e9cd89a, BRF_GRA | CPS1_TILES },
- { "sf2_25.8d", 0x080000, 0x994bfa58, BRF_GRA | CPS1_TILES },
- { "sf2_27.10d", 0x080000, 0x3e66ad9d, BRF_GRA | CPS1_TILES },
- { "sf2_24.7d", 0x080000, 0xc1befaa8, BRF_GRA | CPS1_TILES },
- { "sf2_26.9d", 0x080000, 0x0627c831, BRF_GRA | CPS1_TILES },
-
- { "sf2j_09.12a", 0x010000, 0xa4823a1b, BRF_PRG | CPS1_Z80_PROGRAM }, // == sf2_09.12a / sf2_9.12a
-
- { "sf2j_18.11c", 0x020000, 0x7f162009, BRF_SND | CPS1_OKIM6295_SAMPLES }, // == sf2_18.11c
- { "sf2j_19.12c", 0x020000, 0xbeade53f, BRF_SND | CPS1_OKIM6295_SAMPLES }, // == sf2_19.12c
-
- A_BOARD_PLDS
-
- { "stf29.1a", 0x000117, 0x043309c5, BRF_OPT }, // b-board PLDs
- { "iob1.11d", 0x000117, 0x3abc0700, BRF_OPT },
- { "c632.ic1", 0x000117, 0x0fbd9270, BRF_OPT }, // c-board PLDs
-};
-
-STD_ROM_PICK(Sf2jla)
-STD_ROM_FN(Sf2jla)
-
-static struct BurnRomInfo Sf2qp1RomDesc[] = {
- { "stfii-qkn-cps-17.33", 0x080000, 0x3a9458ee, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "stfii-qkn-cps-17.34", 0x080000, 0x4ed215d8, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "sf2_06.bin", 0x080000, 0x22c9cc8e, BRF_GRA | CPS1_TILES },
- { "sf2_08.bin", 0x080000, 0x57213be8, BRF_GRA | CPS1_TILES },
- { "sf2_05.bin", 0x080000, 0xba529b4f, BRF_GRA | CPS1_TILES },
- { "sf2_07.bin", 0x080000, 0x4b1b33a8, BRF_GRA | CPS1_TILES },
- { "sf2_15.bin", 0x080000, 0x2c7e2229, BRF_GRA | CPS1_TILES },
- { "sf2_17.bin", 0x080000, 0xb5548f17, BRF_GRA | CPS1_TILES },
- { "sf2_14.bin", 0x080000, 0x14b84312, BRF_GRA | CPS1_TILES },
- { "sf2_16.bin", 0x080000, 0x5e9cd89a, BRF_GRA | CPS1_TILES },
- { "sf2_25.bin", 0x080000, 0x994bfa58, BRF_GRA | CPS1_TILES },
- { "sf2_27.bin", 0x080000, 0x3e66ad9d, BRF_GRA | CPS1_TILES },
- { "sf2_24.bin", 0x080000, 0xc1befaa8, BRF_GRA | CPS1_TILES },
- { "sf2_26.bin", 0x080000, 0x0627c831, BRF_GRA | CPS1_TILES },
-
- { "sf2_09.bin", 0x010000, 0xa4823a1b, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "sf2_18.bin", 0x020000, 0x7f162009, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "sf2_19.bin", 0x020000, 0xbeade53f, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-};
-
-STD_ROM_PICK(Sf2qp1)
-STD_ROM_FN(Sf2qp1)
-
-static struct BurnRomInfo Sf2thndrRomDesc[] = {
- { "17_30.11e", 0x020000, 0xd3cd6d18, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "17_37.11f", 0x020000, 0xe892716e, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2u_31b.12e", 0x020000, 0xa673143d, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2u_38b.12f", 0x020000, 0x4c2ccef7, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2u_28b.9e", 0x020000, 0x4009955e, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2u_35b.9f", 0x020000, 0x8c1f3994, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "17_29.10e", 0x020000, 0x8830b54d, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "17_36.10f", 0x020000, 0x3f13ada3, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "sf2_06.bin", 0x080000, 0x22c9cc8e, BRF_GRA | CPS1_TILES },
- { "sf2_08.bin", 0x080000, 0x57213be8, BRF_GRA | CPS1_TILES },
- { "sf2_05.bin", 0x080000, 0xba529b4f, BRF_GRA | CPS1_TILES },
- { "sf2_07.bin", 0x080000, 0x4b1b33a8, BRF_GRA | CPS1_TILES },
- { "sf2_15.bin", 0x080000, 0x2c7e2229, BRF_GRA | CPS1_TILES },
- { "sf2_17.bin", 0x080000, 0xb5548f17, BRF_GRA | CPS1_TILES },
- { "sf2_14.bin", 0x080000, 0x14b84312, BRF_GRA | CPS1_TILES },
- { "sf2_16.bin", 0x080000, 0x5e9cd89a, BRF_GRA | CPS1_TILES },
- { "sf2_25.bin", 0x080000, 0x994bfa58, BRF_GRA | CPS1_TILES },
- { "sf2_27.bin", 0x080000, 0x3e66ad9d, BRF_GRA | CPS1_TILES },
- { "sf2_24.bin", 0x080000, 0xc1befaa8, BRF_GRA | CPS1_TILES },
- { "sf2_26.bin", 0x080000, 0x0627c831, BRF_GRA | CPS1_TILES },
-
- { "sf2_09.bin", 0x010000, 0xa4823a1b, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "sf2_18.bin", 0x020000, 0x7f162009, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "sf2_19.bin", 0x020000, 0xbeade53f, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-};
-
-STD_ROM_PICK(Sf2thndr)
-STD_ROM_FN(Sf2thndr)
-
-static struct BurnRomInfo Sf2bRomDesc[] = {
- { "pf1-2-sg076.bin", 0x0100000, 0x1d15bc7a, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- // the pcb is missing some pals/gals so it cannot be tested
- { "pf4-sg072.bin", 0x0100000, 0x16289710, BRF_GRA | CPS1_TILES },
- { "pf7-sg103.bin", 0x0100000, 0xfb78022e, BRF_GRA | CPS1_TILES },
- { "pf5-sg095.bin", 0x0100000, 0x0a6be48b, BRF_GRA | CPS1_TILES },
- { "pf8-sg101.bin", 0x0100000, 0x6258c7cf, BRF_GRA | CPS1_TILES },
- { "pf6-sg068.bin", 0x0100000, 0x9b5b09d7, BRF_GRA | CPS1_TILES },
- { "pf9-sh001.bin", 0x0100000, 0x9f25090e, BRF_GRA | CPS1_TILES },
-
- { "3snd.ic28", 0x0020000, 0xd5bee9cc, BRF_PRG | CPS1_Z80_PROGRAM },
-};
-
-STD_ROM_PICK(Sf2b)
-STD_ROM_FN(Sf2b)
-
-static struct BurnRomInfo Sf2b2RomDesc[] = {
- // program roms u195 and u221 were missing from the PCB
-// { "prg.u195", 0x080000, 0x00000000, BRF_ESS | BRF_PRG | BRF_NODUMP }, // missing from dump
-// { "prg.u221", 0x080000, 0x00000000, BRF_ESS | BRF_PRG | BRF_NODUMP }, // missing from dump
-// Instead we use some programs rom from sf2eb
- { "sf2e_30b.11e", 0x020000, 0x57bd7051, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2e_37b.11f", 0x020000, 0x62691cdd, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2e_31b.12e", 0x020000, 0xa673143d, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2e_38b.12f", 0x020000, 0x4c2ccef7, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "prh2.u222", 0x040000, 0x6d0f77b8, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "prl1.u196", 0x040000, 0x9b96ee64, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "bdst-1.u70", 0x100000, 0xa94a8b19, BRF_GRA | CPS1_TILES },
- { "bdst-4.u68", 0x100000, 0x0405f21f, BRF_GRA | CPS1_TILES },
- { "bdst-2.u69", 0x100000, 0x05dc2043, BRF_GRA | CPS1_TILES },
- { "bdst-5.u64", 0x100000, 0x055b64f1, BRF_GRA | CPS1_TILES },
- { "bdst-3.u19", 0x100000, 0x1a518609, BRF_GRA | CPS1_TILES },
- { "bdst-6.u18", 0x100000, 0x84f9354f, BRF_GRA | CPS1_TILES },
-
- { "sound.u191", 0x010000, 0xa4823a1b, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "voice.u210", 0x040000, 0x6cfffb11, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- { "grp1.u31", 0x020000, 0x6de44671, BRF_GRA | CPS1_EXTRA_TILES_SF2B_400000 },
- { "grp3.u29", 0x020000, 0xe8f14362, BRF_GRA | CPS1_EXTRA_TILES_SF2B_400000 },
- { "grp2.u30", 0x020000, 0xbf0cd819, BRF_GRA | CPS1_EXTRA_TILES_SF2B_400000 },
- { "grp4.u28", 0x020000, 0x76f9f91f, BRF_GRA | CPS1_EXTRA_TILES_SF2B_400000 },
-
- { "u133", 0x010000, 0x13ea1c44, BRF_OPT }, // unknown
-};
-
-STD_ROM_PICK(Sf2b2)
-STD_ROM_FN(Sf2b2)
-
-static struct BurnRomInfo Sf2b3RomDesc[] = {
-/*Street Fighter 2 bootleg
-
-
-This game runs on a single bootleg PCB.
-It uses 2 square PLCC custom graphics chips by Altera
-On chips are written ...
-ALTERA EP1810LC
-I have seen a similar ALTERA chip on a Killer Instinct PCB
-
-
-CPU: 68000-10, Z8400 (Z80A)
-SND: YM2151, OKI6295, YM3012A
-OSC: 16.000Mhz, 10.000Mhz, 3.5795Mhz
-
-Developers:
-This PCB also has some 42 Pin Mask roms which are not dumped
-as my reader will only accept up to 40 pin roms.
-Hopefully, the existing dumped gfx roms will be the same.
-
-If you need more info, contact me.
-
-theguru@emuunlim.com*/
-
- { "sf2e_30b.11e", 0x020000, 0x57bd7051, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP }, // missing from dump (u6.bin and u5.bin match this set closest)
- { "sf2e_37b.11f", 0x020000, 0x62691cdd, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP }, // missing from dump (u6.bin and u5.bin match this set closest)
- { "sf2e_31b.12e", 0x020000, 0xa673143d, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP }, // missing from dump (u6.bin and u5.bin match this set closest)
- { "sf2e_38b.12f", 0x020000, 0x4c2ccef7, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP }, // missing from dump (u6.bin and u5.bin match this set closest)
- { "u6.bin", 0x020000, 0x5cfc3f39, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "u5.bin", 0x020000, 0x47dd24b6, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2_29b.10e", 0x020000, 0xbb4af315, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP }, // missing from dump (u6.bin and u5.bin match this set closest)
- { "sf2_36b.10f", 0x020000, 0xc02a13eb, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP }, // missing from dump (u6.bin and u5.bin match this set closest)
-
- { "sf2_06.bin", 0x080000, 0x22c9cc8e, BRF_GRA | CPS1_TILES },
- { "sf2_08.bin", 0x080000, 0x57213be8, BRF_GRA | CPS1_TILES },
- { "sf2_05.bin", 0x080000, 0xba529b4f, BRF_GRA | CPS1_TILES },
- { "sf2_07.bin", 0x080000, 0x4b1b33a8, BRF_GRA | CPS1_TILES },
- { "sf2_15.bin", 0x080000, 0x2c7e2229, BRF_GRA | CPS1_TILES },
- { "sf2_17.bin", 0x080000, 0xb5548f17, BRF_GRA | CPS1_TILES },
- { "sf2_14.bin", 0x080000, 0x14b84312, BRF_GRA | CPS1_TILES },
- { "sf2_16.bin", 0x080000, 0x5e9cd89a, BRF_GRA | CPS1_TILES },
- { "sf2_25.bin", 0x080000, 0x994bfa58, BRF_GRA | CPS1_TILES },
- { "sf2_27.bin", 0x080000, 0x3e66ad9d, BRF_GRA | CPS1_TILES },
- { "sf2_24.bin", 0x080000, 0xc1befaa8, BRF_GRA | CPS1_TILES },
- { "sf2_26.bin", 0x080000, 0x0627c831, BRF_GRA | CPS1_TILES },
-
- { "u7.bin", 0x010000, 0xa4823a1b, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "u8.bin", 0x040000, 0x6cfffb11, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- { "sf2-1.bin", 0x020000, 0x6de44671, BRF_GRA | CPS1_EXTRA_TILES_SF2B_400000 },
- { "sf2-3.bin", 0x020000, 0xe8f14362, BRF_GRA | CPS1_EXTRA_TILES_SF2B_400000 },
- { "sf2-2.bin", 0x020000, 0xbf0cd819, BRF_GRA | CPS1_EXTRA_TILES_SF2B_400000 },
- { "sf2-4.bin", 0x020000, 0x76f9f91f, BRF_GRA | CPS1_EXTRA_TILES_SF2B_400000 },
-
- { "sf2-5.bin", 0x010000, 0x13ea1c44, BRF_OPT }, // unknown
-
- { "u3.bin", 0x020000, 0x2c9ece7c, BRF_OPT }, // seems to have most in common with some extra gfx roms, but also some program roms, maybe bad dump or maybe needing data from Altera chip?
- { "u4.bin", 0x020000, 0x4efb4c7a, BRF_OPT }, // seems to have most in common with some extra gfx roms, but also some program roms, maybe bad dump or maybe needing data from Altera chip?
-};
-
-STD_ROM_PICK(Sf2b3)
-STD_ROM_FN(Sf2b3)
-
-static struct BurnRomInfo Sf2ceRomDesc[] = {
- { "s92e_23b.8f", 0x080000, 0x0aaa1a3a, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "s92_22b.7f", 0x080000, 0x2bbe15ed, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "s92_21a.6f", 0x080000, 0x925a7877, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "s92-1m.3a", 0x080000, 0x03b0d852, BRF_GRA | CPS1_TILES },
- { "s92-3m.5a", 0x080000, 0x840289ec, BRF_GRA | CPS1_TILES },
- { "s92-2m.4a", 0x080000, 0xcdb5f027, BRF_GRA | CPS1_TILES },
- { "s92-4m.6a", 0x080000, 0xe2799472, BRF_GRA | CPS1_TILES },
- { "s92-5m.7a", 0x080000, 0xba8a2761, BRF_GRA | CPS1_TILES },
- { "s92-7m.9a", 0x080000, 0xe584bfb5, BRF_GRA | CPS1_TILES },
- { "s92-6m.8a", 0x080000, 0x21e3f87d, BRF_GRA | CPS1_TILES },
- { "s92-8m.10a", 0x080000, 0xbefc47df, BRF_GRA | CPS1_TILES },
- { "s92-10m.3c", 0x080000, 0x960687d5, BRF_GRA | CPS1_TILES },
- { "s92-12m.5c", 0x080000, 0x978ecd18, BRF_GRA | CPS1_TILES },
- { "s92-11m.4c", 0x080000, 0xd6ec9a0a, BRF_GRA | CPS1_TILES },
- { "s92-13m.6c", 0x080000, 0xed2c67f6, BRF_GRA | CPS1_TILES },
-
- { "s92_09.11a", 0x010000, 0x08f6b60e, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "s92_18.11c", 0x020000, 0x7f162009, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "s92_19.12c", 0x020000, 0xbeade53f, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "s9263b.1a", 0x000117, 0x0a7ecfe0, BRF_OPT }, // b-board PLDs
- { "iob1.12d", 0x000117, 0x3abc0700, BRF_OPT },
- { "bprg1.11d", 0x000117, 0x31793da7, BRF_OPT },
- { "ioc1.ic7", 0x000117, 0x0d182081, BRF_OPT }, // c-board PLDs
- { "c632.ic1", 0x000117, 0x0fbd9270, BRF_OPT },
-};
-
-STD_ROM_PICK(Sf2ce)
-STD_ROM_FN(Sf2ce)
-
-static struct BurnRomInfo Sf2ceeaRomDesc[] = {
- { "s92e_23a.8f", 0x080000, 0x3f846b74, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "s92_22a.7f", 0x080000, 0x99f1cca4, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "s92_21a.6f", 0x080000, 0x925a7877, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "s92-1m.3a", 0x080000, 0x03b0d852, BRF_GRA | CPS1_TILES },
- { "s92-3m.5a", 0x080000, 0x840289ec, BRF_GRA | CPS1_TILES },
- { "s92-2m.4a", 0x080000, 0xcdb5f027, BRF_GRA | CPS1_TILES },
- { "s92-4m.6a", 0x080000, 0xe2799472, BRF_GRA | CPS1_TILES },
- { "s92-5m.7a", 0x080000, 0xba8a2761, BRF_GRA | CPS1_TILES },
- { "s92-7m.9a", 0x080000, 0xe584bfb5, BRF_GRA | CPS1_TILES },
- { "s92-6m.8a", 0x080000, 0x21e3f87d, BRF_GRA | CPS1_TILES },
- { "s92-8m.10a", 0x080000, 0xbefc47df, BRF_GRA | CPS1_TILES },
- { "s92-10m.3c", 0x080000, 0x960687d5, BRF_GRA | CPS1_TILES },
- { "s92-12m.5c", 0x080000, 0x978ecd18, BRF_GRA | CPS1_TILES },
- { "s92-11m.4c", 0x080000, 0xd6ec9a0a, BRF_GRA | CPS1_TILES },
- { "s92-13m.6c", 0x080000, 0xed2c67f6, BRF_GRA | CPS1_TILES },
-
- { "s92_09.11a", 0x010000, 0x08f6b60e, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "s92_18.11c", 0x020000, 0x7f162009, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "s92_19.12c", 0x020000, 0xbeade53f, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "s9263b.1a", 0x000117, 0x0a7ecfe0, BRF_OPT }, // b-board PLDs
- { "iob1.12d", 0x000117, 0x3abc0700, BRF_OPT },
- { "bprg1.11d", 0x000117, 0x31793da7, BRF_OPT },
- { "ioc1.ic7", 0x000117, 0x0d182081, BRF_OPT }, // c-board PLDs
- { "c632.ic1", 0x000117, 0x0fbd9270, BRF_OPT },
-};
-
-STD_ROM_PICK(Sf2ceea)
-STD_ROM_FN(Sf2ceea)
-
-static struct BurnRomInfo Sf2cejaRomDesc[] = {
- { "s92j_23a.8f", 0x080000, 0x4f42bb5a, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "s92j_22a.7f", 0x080000, 0xc4f64bcd, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "s92_21a.6f", 0x080000, 0x925a7877, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "s92_01.3a", 0x080000, 0x03b0d852, BRF_GRA | CPS1_TILES },
- { "s92_02.4a", 0x080000, 0x840289ec, BRF_GRA | CPS1_TILES },
- { "s92_03.5a", 0x080000, 0xcdb5f027, BRF_GRA | CPS1_TILES },
- { "s92_04.6a", 0x080000, 0xe2799472, BRF_GRA | CPS1_TILES },
- { "s92_05.7a", 0x080000, 0xba8a2761, BRF_GRA | CPS1_TILES },
- { "s92_06.8a", 0x080000, 0xe584bfb5, BRF_GRA | CPS1_TILES },
- { "s92_07.9a", 0x080000, 0x21e3f87d, BRF_GRA | CPS1_TILES },
- { "s92_08.10a", 0x080000, 0xbefc47df, BRF_GRA | CPS1_TILES },
- { "s92_10.3c", 0x080000, 0x960687d5, BRF_GRA | CPS1_TILES },
- { "s92_11.4c", 0x080000, 0x978ecd18, BRF_GRA | CPS1_TILES },
- { "s92_12.5c", 0x080000, 0xd6ec9a0a, BRF_GRA | CPS1_TILES },
- { "s92_13.6c", 0x080000, 0xed2c67f6, BRF_GRA | CPS1_TILES },
-
- { "s92_09.12a", 0x010000, 0x08f6b60e, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "s92_18.11c", 0x020000, 0x7f162009, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "s92_19.12c", 0x020000, 0xbeade53f, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "s9263b.1a", 0x000117, 0x0a7ecfe0, BRF_OPT }, // b-board PLDs
- { "iob1.12d", 0x000117, 0x3abc0700, BRF_OPT },
- { "bprg1.11d", 0x000117, 0x31793da7, BRF_OPT },
- { "ioc1.ic7", 0x000117, 0x0d182081, BRF_OPT }, // c-board PLDs
- { "c632.ic1", 0x000117, 0x0fbd9270, BRF_OPT },
-};
-
-STD_ROM_PICK(Sf2ceja)
-STD_ROM_FN(Sf2ceja)
-
-static struct BurnRomInfo Sf2cejbRomDesc[] = {
- { "s92j_23b.8f", 0x080000, 0x140876c5, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "s92j_22b.7f", 0x080000, 0x2fbb3bfe, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "s92_21a.6f", 0x080000, 0x925a7877, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "s92_01.3a", 0x080000, 0x03b0d852, BRF_GRA | CPS1_TILES },
- { "s92_02.4a", 0x080000, 0x840289ec, BRF_GRA | CPS1_TILES },
- { "s92_03.5a", 0x080000, 0xcdb5f027, BRF_GRA | CPS1_TILES },
- { "s92_04.6a", 0x080000, 0xe2799472, BRF_GRA | CPS1_TILES },
- { "s92_05.7a", 0x080000, 0xba8a2761, BRF_GRA | CPS1_TILES },
- { "s92_06.8a", 0x080000, 0xe584bfb5, BRF_GRA | CPS1_TILES },
- { "s92_07.9a", 0x080000, 0x21e3f87d, BRF_GRA | CPS1_TILES },
- { "s92_08.10a", 0x080000, 0xbefc47df, BRF_GRA | CPS1_TILES },
- { "s92_10.3c", 0x080000, 0x960687d5, BRF_GRA | CPS1_TILES },
- { "s92_11.4c", 0x080000, 0x978ecd18, BRF_GRA | CPS1_TILES },
- { "s92_12.5c", 0x080000, 0xd6ec9a0a, BRF_GRA | CPS1_TILES },
- { "s92_13.6c", 0x080000, 0xed2c67f6, BRF_GRA | CPS1_TILES },
-
- { "s92_09.12a", 0x010000, 0x08f6b60e, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "s92_18.11c", 0x020000, 0x7f162009, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "s92_19.12c", 0x020000, 0xbeade53f, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "s9263b.1a", 0x000117, 0x0a7ecfe0, BRF_OPT }, // b-board PLDs
- { "iob1.12d", 0x000117, 0x3abc0700, BRF_OPT },
- { "bprg1.11d", 0x000117, 0x31793da7, BRF_OPT },
- { "ioc1.ic7", 0x000117, 0x0d182081, BRF_OPT }, // c-board PLDs
- { "c632.ic1", 0x000117, 0x0fbd9270, BRF_OPT },
-};
-
-STD_ROM_PICK(Sf2cejb)
-STD_ROM_FN(Sf2cejb)
-
-static struct BurnRomInfo Sf2cejcRomDesc[] = {
- { "s92j_23c.8f", 0x080000, 0xf0120635, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "s92j_22c.7f", 0x080000, 0x8c0b2ed6, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "s92j_21a.6f", 0x080000, 0x925a7877, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "s92_01.3a", 0x080000, 0x03b0d852, BRF_GRA | CPS1_TILES },
- { "s92_02.4a", 0x080000, 0x840289ec, BRF_GRA | CPS1_TILES },
- { "s92_03.5a", 0x080000, 0xcdb5f027, BRF_GRA | CPS1_TILES },
- { "s92_04.6a", 0x080000, 0xe2799472, BRF_GRA | CPS1_TILES },
- { "s92_05.7a", 0x080000, 0xba8a2761, BRF_GRA | CPS1_TILES },
- { "s92_06.8a", 0x080000, 0xe584bfb5, BRF_GRA | CPS1_TILES },
- { "s92_07.9a", 0x080000, 0x21e3f87d, BRF_GRA | CPS1_TILES },
- { "s92_08.10a", 0x080000, 0xbefc47df, BRF_GRA | CPS1_TILES },
- { "s92_10.3c", 0x080000, 0x960687d5, BRF_GRA | CPS1_TILES },
- { "s92_11.4c", 0x080000, 0x978ecd18, BRF_GRA | CPS1_TILES },
- { "s92_12.5c", 0x080000, 0xd6ec9a0a, BRF_GRA | CPS1_TILES },
- { "s92_13.6c", 0x080000, 0xed2c67f6, BRF_GRA | CPS1_TILES },
-
- { "s92_09.12a", 0x010000, 0x08f6b60e, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "s92_18.11c", 0x020000, 0x7f162009, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "s92_19.12c", 0x020000, 0xbeade53f, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "s9263b.1a", 0x000117, 0x0a7ecfe0, BRF_OPT }, // b-board PLDs
- { "iob1.12d", 0x000117, 0x3abc0700, BRF_OPT },
- { "bprg1.11d", 0x000117, 0x31793da7, BRF_OPT },
- { "ioc1.ic7", 0x000117, 0x0d182081, BRF_OPT }, // c-board PLDs
- { "c632.ic1", 0x000117, 0x0fbd9270, BRF_OPT },
-};
-
-STD_ROM_PICK(Sf2cejc)
-STD_ROM_FN(Sf2cejc)
-
-static struct BurnRomInfo Sf2ceuaRomDesc[] = {
- { "s92u_23a.8f", 0x080000, 0xac44415b, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "s92_22a.7f", 0x080000, 0x99f1cca4, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "s92_21a.6f", 0x080000, 0x925a7877, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "s92-1m.3a", 0x080000, 0x03b0d852, BRF_GRA | CPS1_TILES },
- { "s92-3m.5a", 0x080000, 0x840289ec, BRF_GRA | CPS1_TILES },
- { "s92-2m.4a", 0x080000, 0xcdb5f027, BRF_GRA | CPS1_TILES },
- { "s92-4m.6a", 0x080000, 0xe2799472, BRF_GRA | CPS1_TILES },
- { "s92-5m.7a", 0x080000, 0xba8a2761, BRF_GRA | CPS1_TILES },
- { "s92-7m.9a", 0x080000, 0xe584bfb5, BRF_GRA | CPS1_TILES },
- { "s92-6m.8a", 0x080000, 0x21e3f87d, BRF_GRA | CPS1_TILES },
- { "s92-8m.10a", 0x080000, 0xbefc47df, BRF_GRA | CPS1_TILES },
- { "s92-10m.3c", 0x080000, 0x960687d5, BRF_GRA | CPS1_TILES },
- { "s92-12m.5c", 0x080000, 0x978ecd18, BRF_GRA | CPS1_TILES },
- { "s92-11m.4c", 0x080000, 0xd6ec9a0a, BRF_GRA | CPS1_TILES },
- { "s92-13m.6c", 0x080000, 0xed2c67f6, BRF_GRA | CPS1_TILES },
-
- { "s92_09.11a", 0x010000, 0x08f6b60e, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "s92_18.11c", 0x020000, 0x7f162009, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "s92_19.12c", 0x020000, 0xbeade53f, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "s9263b.1a", 0x000117, 0x0a7ecfe0, BRF_OPT }, // b-board PLDs
- { "iob1.12d", 0x000117, 0x3abc0700, BRF_OPT },
- { "bprg1.11d", 0x000117, 0x31793da7, BRF_OPT },
- { "ioc1.ic7", 0x000117, 0x0d182081, BRF_OPT }, // c-board PLDs
- { "c632.ic1", 0x000117, 0x0fbd9270, BRF_OPT },
-};
-
-STD_ROM_PICK(Sf2ceua)
-STD_ROM_FN(Sf2ceua)
-
-static struct BurnRomInfo Sf2ceubRomDesc[] = {
- { "s92u_23b.8f", 0x080000, 0x996a3015, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "s92_22b.7f", 0x080000, 0x2bbe15ed, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "s92_21a.6f", 0x080000, 0x925a7877, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "s92-1m.3a", 0x080000, 0x03b0d852, BRF_GRA | CPS1_TILES },
- { "s92-3m.5a", 0x080000, 0x840289ec, BRF_GRA | CPS1_TILES },
- { "s92-2m.4a", 0x080000, 0xcdb5f027, BRF_GRA | CPS1_TILES },
- { "s92-4m.6a", 0x080000, 0xe2799472, BRF_GRA | CPS1_TILES },
- { "s92-5m.7a", 0x080000, 0xba8a2761, BRF_GRA | CPS1_TILES },
- { "s92-7m.9a", 0x080000, 0xe584bfb5, BRF_GRA | CPS1_TILES },
- { "s92-6m.8a", 0x080000, 0x21e3f87d, BRF_GRA | CPS1_TILES },
- { "s92-8m.10a", 0x080000, 0xbefc47df, BRF_GRA | CPS1_TILES },
- { "s92-10m.3c", 0x080000, 0x960687d5, BRF_GRA | CPS1_TILES },
- { "s92-12m.5c", 0x080000, 0x978ecd18, BRF_GRA | CPS1_TILES },
- { "s92-11m.4c", 0x080000, 0xd6ec9a0a, BRF_GRA | CPS1_TILES },
- { "s92-13m.6c", 0x080000, 0xed2c67f6, BRF_GRA | CPS1_TILES },
-
- { "s92_09.11a", 0x010000, 0x08f6b60e, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "s92_18.11c", 0x020000, 0x7f162009, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "s92_19.12c", 0x020000, 0xbeade53f, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "s9263b.1a", 0x000117, 0x0a7ecfe0, BRF_OPT }, // b-board PLDs
- { "iob1.12d", 0x000117, 0x3abc0700, BRF_OPT },
- { "bprg1.11d", 0x000117, 0x31793da7, BRF_OPT },
- { "ioc1.ic7", 0x000117, 0x0d182081, BRF_OPT }, // c-board PLDs
- { "c632.ic1", 0x000117, 0x0fbd9270, BRF_OPT },
-};
-
-STD_ROM_PICK(Sf2ceub)
-STD_ROM_FN(Sf2ceub)
-
-static struct BurnRomInfo Sf2ceucRomDesc[] = {
- { "s92u_23c.8f", 0x080000, 0x0a8b6aa2, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "s92_22c.7f", 0x080000, 0x5fd8630b, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "s92_21a.6f", 0x080000, 0x925a7877, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "s92-1m.3a", 0x080000, 0x03b0d852, BRF_GRA | CPS1_TILES },
- { "s92-3m.5a", 0x080000, 0x840289ec, BRF_GRA | CPS1_TILES },
- { "s92-2m.4a", 0x080000, 0xcdb5f027, BRF_GRA | CPS1_TILES },
- { "s92-4m.6a", 0x080000, 0xe2799472, BRF_GRA | CPS1_TILES },
- { "s92-5m.7a", 0x080000, 0xba8a2761, BRF_GRA | CPS1_TILES },
- { "s92-7m.9a", 0x080000, 0xe584bfb5, BRF_GRA | CPS1_TILES },
- { "s92-6m.8a", 0x080000, 0x21e3f87d, BRF_GRA | CPS1_TILES },
- { "s92-8m.10a", 0x080000, 0xbefc47df, BRF_GRA | CPS1_TILES },
- { "s92-10m.3c", 0x080000, 0x960687d5, BRF_GRA | CPS1_TILES },
- { "s92-12m.5c", 0x080000, 0x978ecd18, BRF_GRA | CPS1_TILES },
- { "s92-11m.4c", 0x080000, 0xd6ec9a0a, BRF_GRA | CPS1_TILES },
- { "s92-13m.6c", 0x080000, 0xed2c67f6, BRF_GRA | CPS1_TILES },
-
- { "s92_09.11a", 0x010000, 0x08f6b60e, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "s92_18.11c", 0x020000, 0x7f162009, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "s92_19.12c", 0x020000, 0xbeade53f, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "s9263b.1a", 0x000117, 0x0a7ecfe0, BRF_OPT }, // b-board PLDs
- { "iob1.12d", 0x000117, 0x3abc0700, BRF_OPT },
- { "bprg1.11d", 0x000117, 0x31793da7, BRF_OPT },
- { "ioc1.ic7", 0x000117, 0x0d182081, BRF_OPT }, // c-board PLDs
- { "c632.ic1", 0x000117, 0x0fbd9270, BRF_OPT },
-};
-
-STD_ROM_PICK(Sf2ceuc)
-STD_ROM_FN(Sf2ceuc)
-
-static struct BurnRomInfo Sf2accRomDesc[] = {
- { "sf2ca_23-c.bin", 0x080000, 0xe7c8c5a6, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "sf2ca_22-c.bin", 0x080000, 0x99f1cca4, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "sf2ca_21-c.bin", 0x040000, 0xcf7fcc8c, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "s92_01.bin", 0x080000, 0x03b0d852, BRF_GRA | CPS1_TILES },
- { "s92_02.bin", 0x080000, 0x840289ec, BRF_GRA | CPS1_TILES },
- { "s92_03.bin", 0x080000, 0xcdb5f027, BRF_GRA | CPS1_TILES },
- { "s92_04.bin", 0x080000, 0xe2799472, BRF_GRA | CPS1_TILES },
- { "s92_05.bin", 0x080000, 0xba8a2761, BRF_GRA | CPS1_TILES },
- { "s92_06.bin", 0x080000, 0xe584bfb5, BRF_GRA | CPS1_TILES },
- { "s92_07.bin", 0x080000, 0x21e3f87d, BRF_GRA | CPS1_TILES },
- { "s92_08.bin", 0x080000, 0xbefc47df, BRF_GRA | CPS1_TILES },
- { "s92_10.bin", 0x080000, 0x960687d5, BRF_GRA | CPS1_TILES },
- { "s92_11.bin", 0x080000, 0x978ecd18, BRF_GRA | CPS1_TILES },
- { "s92_12.bin", 0x080000, 0xd6ec9a0a, BRF_GRA | CPS1_TILES },
- { "s92_13.bin", 0x080000, 0xed2c67f6, BRF_GRA | CPS1_TILES },
-
- { "s92_09.bin", 0x010000, 0x08f6b60e, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "s92_18.bin", 0x020000, 0x7f162009, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "s92_19.bin", 0x020000, 0xbeade53f, BRF_SND | CPS1_OKIM6295_SAMPLES },
-};
-
-STD_ROM_PICK(Sf2acc)
-STD_ROM_FN(Sf2acc)
-
-static struct BurnRomInfo Sf2accaRomDesc[] = {
- { "23-c.8f", 0x080000, 0x35f9517b, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "22-c.7f", 0x080000, 0x99f1cca4, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "21-c.6f", 0x080000, 0x2ab2034f, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "s92_01.bin", 0x080000, 0x03b0d852, BRF_GRA | CPS1_TILES },
- { "s92_02.bin", 0x080000, 0x840289ec, BRF_GRA | CPS1_TILES },
- { "s92_03.bin", 0x080000, 0xcdb5f027, BRF_GRA | CPS1_TILES },
- { "s92_04.bin", 0x080000, 0xe2799472, BRF_GRA | CPS1_TILES },
- { "s92_05.bin", 0x080000, 0xba8a2761, BRF_GRA | CPS1_TILES },
- { "s92_06.bin", 0x080000, 0xe584bfb5, BRF_GRA | CPS1_TILES },
- { "s92_07.bin", 0x080000, 0x21e3f87d, BRF_GRA | CPS1_TILES },
- { "s92_08.bin", 0x080000, 0xbefc47df, BRF_GRA | CPS1_TILES },
- { "s92_10.bin", 0x080000, 0x960687d5, BRF_GRA | CPS1_TILES },
- { "s92_11.bin", 0x080000, 0x978ecd18, BRF_GRA | CPS1_TILES },
- { "s92_12.bin", 0x080000, 0xd6ec9a0a, BRF_GRA | CPS1_TILES },
- { "s92_13.bin", 0x080000, 0xed2c67f6, BRF_GRA | CPS1_TILES },
-
- { "s92_09.bin", 0x010000, 0x08f6b60e, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "s92_18.bin", 0x020000, 0x7f162009, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "s92_19.bin", 0x020000, 0xbeade53f, BRF_SND | CPS1_OKIM6295_SAMPLES },
-};
-
-STD_ROM_PICK(Sf2acca)
-STD_ROM_FN(Sf2acca)
-
-static struct BurnRomInfo Sf2accp2RomDesc[] = {
- { "sf2ca-23.bin", 0x080000, 0x36c3ba2f, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "sf2ca-22.bin", 0x080000, 0x0550453d, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "sf2ca-21.bin", 0x040000, 0x4c1c43ba, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "s92_01.bin", 0x080000, 0x03b0d852, BRF_GRA | CPS1_TILES },
- { "s92_02.bin", 0x080000, 0x840289ec, BRF_GRA | CPS1_TILES },
- { "s92_03.bin", 0x080000, 0xcdb5f027, BRF_GRA | CPS1_TILES },
- { "s92_04.bin", 0x080000, 0xe2799472, BRF_GRA | CPS1_TILES },
- { "s92_05.bin", 0x080000, 0xba8a2761, BRF_GRA | CPS1_TILES },
- { "s92_06.bin", 0x080000, 0xe584bfb5, BRF_GRA | CPS1_TILES },
- { "s92_07.bin", 0x080000, 0x21e3f87d, BRF_GRA | CPS1_TILES },
- { "s92_08.bin", 0x080000, 0xbefc47df, BRF_GRA | CPS1_TILES },
- { "s92_10.bin", 0x080000, 0x960687d5, BRF_GRA | CPS1_TILES },
- { "s92_11.bin", 0x080000, 0x978ecd18, BRF_GRA | CPS1_TILES },
- { "s92_12.bin", 0x080000, 0xd6ec9a0a, BRF_GRA | CPS1_TILES },
- { "s92_13.bin", 0x080000, 0xed2c67f6, BRF_GRA | CPS1_TILES },
-
- { "s92_09.bin", 0x010000, 0x08f6b60e, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "s92_18.bin", 0x020000, 0x7f162009, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "s92_19.bin", 0x020000, 0xbeade53f, BRF_SND | CPS1_OKIM6295_SAMPLES },
-};
-
-STD_ROM_PICK(Sf2accp2)
-STD_ROM_FN(Sf2accp2)
-
-static struct BurnRomInfo Sf2dkot2RomDesc[] = {
- { "turboii.23", 0x080000, 0x9bbfe420, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "turboii.22", 0x080000, 0x3e57ba19, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "turboii.21", 0x080000, 0xed4186bd, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "s92_01.bin", 0x080000, 0x03b0d852, BRF_GRA | CPS1_TILES },
- { "s92_02.bin", 0x080000, 0x840289ec, BRF_GRA | CPS1_TILES },
- { "s92_03.bin", 0x080000, 0xcdb5f027, BRF_GRA | CPS1_TILES },
- { "s92_04.bin", 0x080000, 0xe2799472, BRF_GRA | CPS1_TILES },
- { "s92_05.bin", 0x080000, 0xba8a2761, BRF_GRA | CPS1_TILES },
- { "s92_06.bin", 0x080000, 0xe584bfb5, BRF_GRA | CPS1_TILES },
- { "s92_07.bin", 0x080000, 0x21e3f87d, BRF_GRA | CPS1_TILES },
- { "s92_08.bin", 0x080000, 0xbefc47df, BRF_GRA | CPS1_TILES },
- { "s92_10.bin", 0x080000, 0x960687d5, BRF_GRA | CPS1_TILES },
- { "s92_11.bin", 0x080000, 0x978ecd18, BRF_GRA | CPS1_TILES },
- { "s92_12.bin", 0x080000, 0xd6ec9a0a, BRF_GRA | CPS1_TILES },
- { "s92_13.bin", 0x080000, 0xed2c67f6, BRF_GRA | CPS1_TILES },
-
- { "s92_09.bin", 0x010000, 0x08f6b60e, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "s92_18.bin", 0x020000, 0x7f162009, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "s92_19.bin", 0x020000, 0xbeade53f, BRF_SND | CPS1_OKIM6295_SAMPLES },
-};
-
-STD_ROM_PICK(Sf2dkot2)
-STD_ROM_FN(Sf2dkot2)
-
-static struct BurnRomInfo Sf2rbRomDesc[] = {
- { "sf2d__23.rom", 0x080000, 0x450532b0, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "sf2d__22.rom", 0x080000, 0xfe9d9cf5, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "s92_21a.bin", 0x080000, 0x925a7877, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "s92_01.bin", 0x080000, 0x03b0d852, BRF_GRA | CPS1_TILES },
- { "s92_02.bin", 0x080000, 0x840289ec, BRF_GRA | CPS1_TILES },
- { "s92_03.bin", 0x080000, 0xcdb5f027, BRF_GRA | CPS1_TILES },
- { "s92_04.bin", 0x080000, 0xe2799472, BRF_GRA | CPS1_TILES },
- { "s92_05.bin", 0x080000, 0xba8a2761, BRF_GRA | CPS1_TILES },
- { "s92_06.bin", 0x080000, 0xe584bfb5, BRF_GRA | CPS1_TILES },
- { "s92_07.bin", 0x080000, 0x21e3f87d, BRF_GRA | CPS1_TILES },
- { "s92_08.bin", 0x080000, 0xbefc47df, BRF_GRA | CPS1_TILES },
- { "s92_10.bin", 0x080000, 0x960687d5, BRF_GRA | CPS1_TILES },
- { "s92_11.bin", 0x080000, 0x978ecd18, BRF_GRA | CPS1_TILES },
- { "s92_12.bin", 0x080000, 0xd6ec9a0a, BRF_GRA | CPS1_TILES },
- { "s92_13.bin", 0x080000, 0xed2c67f6, BRF_GRA | CPS1_TILES },
-
- { "s92_09.bin", 0x010000, 0x08f6b60e, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "s92_18.bin", 0x020000, 0x7f162009, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "s92_19.bin", 0x020000, 0xbeade53f, BRF_SND | CPS1_OKIM6295_SAMPLES },
-};
-
-STD_ROM_PICK(Sf2rb)
-STD_ROM_FN(Sf2rb)
-
-static struct BurnRomInfo Sf2rb2RomDesc[] = {
- // Is this really a rainbow set? There is no rainbow logo and little else in common
- { "27.bin", 0x020000, 0x40296ecd, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "31.bin", 0x020000, 0x87954a41, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "26.bin", 0x020000, 0xa6974195, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "30.bin", 0x020000, 0x8141fe32, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "25.bin", 0x020000, 0x9ef8f772, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "29.bin", 0x020000, 0x7d9c479c, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "24.bin", 0x020000, 0x93579684, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "28.bin", 0x020000, 0xff728865, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "s92_21a.bin", 0x080000, 0x925a7877, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "s92_01.bin", 0x080000, 0x03b0d852, BRF_GRA | CPS1_TILES },
- { "s92_02.bin", 0x080000, 0x840289ec, BRF_GRA | CPS1_TILES },
- { "s92_03.bin", 0x080000, 0xcdb5f027, BRF_GRA | CPS1_TILES },
- { "s92_04.bin", 0x080000, 0xe2799472, BRF_GRA | CPS1_TILES },
- { "s92_05.bin", 0x080000, 0xba8a2761, BRF_GRA | CPS1_TILES },
- { "s92_06.bin", 0x080000, 0xe584bfb5, BRF_GRA | CPS1_TILES },
- { "s92_07.bin", 0x080000, 0x21e3f87d, BRF_GRA | CPS1_TILES },
- { "s92_08.bin", 0x080000, 0xbefc47df, BRF_GRA | CPS1_TILES },
- { "s92_10.bin", 0x080000, 0x960687d5, BRF_GRA | CPS1_TILES },
- { "s92_11.bin", 0x080000, 0x978ecd18, BRF_GRA | CPS1_TILES },
- { "s92_12.bin", 0x080000, 0xd6ec9a0a, BRF_GRA | CPS1_TILES },
- { "s92_13.bin", 0x080000, 0xed2c67f6, BRF_GRA | CPS1_TILES },
-
- { "s92_09.bin", 0x010000, 0x08f6b60e, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "s92_18.bin", 0x020000, 0x7f162009, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "s92_19.bin", 0x020000, 0xbeade53f, BRF_SND | CPS1_OKIM6295_SAMPLES },
-};
-
-STD_ROM_PICK(Sf2rb2)
-STD_ROM_FN(Sf2rb2)
-
-static struct BurnRomInfo Sf2rb3RomDesc[] = {
- { "sf2_ce_rb.23", 0x080000, 0x202f9e50, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "sf2_ce_rb.22", 0x080000, 0x145e5219, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "s92_21a.bin", 0x080000, 0x925a7877, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "s92_01.bin", 0x080000, 0x03b0d852, BRF_GRA | CPS1_TILES },
- { "s92_02.bin", 0x080000, 0x840289ec, BRF_GRA | CPS1_TILES },
- { "s92_03.bin", 0x080000, 0xcdb5f027, BRF_GRA | CPS1_TILES },
- { "s92_04.bin", 0x080000, 0xe2799472, BRF_GRA | CPS1_TILES },
- { "s92_05.bin", 0x080000, 0xba8a2761, BRF_GRA | CPS1_TILES },
- { "s92_06.bin", 0x080000, 0xe584bfb5, BRF_GRA | CPS1_TILES },
- { "s92_07.bin", 0x080000, 0x21e3f87d, BRF_GRA | CPS1_TILES },
- { "s92_08.bin", 0x080000, 0xbefc47df, BRF_GRA | CPS1_TILES },
- { "s92_10.bin", 0x080000, 0x960687d5, BRF_GRA | CPS1_TILES },
- { "s92_11.bin", 0x080000, 0x978ecd18, BRF_GRA | CPS1_TILES },
- { "s92_12.bin", 0x080000, 0xd6ec9a0a, BRF_GRA | CPS1_TILES },
- { "s92_13.bin", 0x080000, 0xed2c67f6, BRF_GRA | CPS1_TILES },
-
- { "s92_09.bin", 0x010000, 0x08f6b60e, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "s92_18.bin", 0x020000, 0x7f162009, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "s92_19.bin", 0x020000, 0xbeade53f, BRF_SND | CPS1_OKIM6295_SAMPLES },
-};
-
-STD_ROM_PICK(Sf2rb3)
-STD_ROM_FN(Sf2rb3)
-
-static struct BurnRomInfo Sf2rb4RomDesc[] = {
- // this set was previously known as sf2m4
- { "u222ne", 0x0080000, 0x7133489e, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "u196ne", 0x0080000, 0xb07a4f90, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "s92_21a.bin", 0x0080000, 0x925a7877, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "s92_01.bin", 0x0080000, 0x03b0d852, BRF_GRA | CPS1_TILES },
- { "s92_02.bin", 0x0080000, 0x840289ec, BRF_GRA | CPS1_TILES },
- { "s92_03.bin", 0x0080000, 0xcdb5f027, BRF_GRA | CPS1_TILES },
- { "s92_04.bin", 0x0080000, 0xe2799472, BRF_GRA | CPS1_TILES },
- { "s92_05.bin", 0x0080000, 0xba8a2761, BRF_GRA | CPS1_TILES },
- { "s92_06.bin", 0x0080000, 0xe584bfb5, BRF_GRA | CPS1_TILES },
- { "s92_07.bin", 0x0080000, 0x21e3f87d, BRF_GRA | CPS1_TILES },
- { "s92_08.bin", 0x0080000, 0xbefc47df, BRF_GRA | CPS1_TILES },
- { "s92_10.bin", 0x0080000, 0x960687d5, BRF_GRA | CPS1_TILES },
- { "s92_11.bin", 0x0080000, 0x978ecd18, BRF_GRA | CPS1_TILES },
- { "s92_12.bin", 0x0080000, 0xd6ec9a0a, BRF_GRA | CPS1_TILES },
- { "s92_13.bin", 0x0080000, 0xed2c67f6, BRF_GRA | CPS1_TILES },
-
- { "s92_09.bin", 0x0010000, 0x08f6b60e, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "s92_18.bin", 0x0020000, 0x7f162009, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "s92_19.bin", 0x0020000, 0xbeade53f, BRF_SND | CPS1_OKIM6295_SAMPLES },
-};
-
-STD_ROM_PICK(Sf2rb4)
-STD_ROM_FN(Sf2rb4)
-
-static struct BurnRomInfo Sf2rb5RomDesc[] = {
- // this set was previously known as sf2m12
- { "sfu8-1.040", 0x0080000, 0x10ec67fe, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sfu8-3.040", 0x0080000, 0x92eb3a1c, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sfu8-2.010", 0x0020000, 0x1073b7b6, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sfu8-4.010", 0x0020000, 0x924c6ce2, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "s92_01.bin", 0x0080000, 0x03b0d852, BRF_GRA | CPS1_TILES },
- { "s92_02.bin", 0x0080000, 0x840289ec, BRF_GRA | CPS1_TILES },
- { "s92_03.bin", 0x0080000, 0xcdb5f027, BRF_GRA | CPS1_TILES },
- { "s92_04.bin", 0x0080000, 0xe2799472, BRF_GRA | CPS1_TILES },
- { "s92_05.bin", 0x0080000, 0xba8a2761, BRF_GRA | CPS1_TILES },
- { "s92_06.bin", 0x0080000, 0xe584bfb5, BRF_GRA | CPS1_TILES },
- { "s92_07.bin", 0x0080000, 0x21e3f87d, BRF_GRA | CPS1_TILES },
- { "s92_08.bin", 0x0080000, 0xbefc47df, BRF_GRA | CPS1_TILES },
- { "s92_10.bin", 0x0080000, 0x960687d5, BRF_GRA | CPS1_TILES },
- { "s92_11.bin", 0x0080000, 0x978ecd18, BRF_GRA | CPS1_TILES },
- { "s92_12.bin", 0x0080000, 0xd6ec9a0a, BRF_GRA | CPS1_TILES },
- { "s92_13.bin", 0x0080000, 0xed2c67f6, BRF_GRA | CPS1_TILES },
-
- { "s92_09.bin", 0x0010000, 0x08f6b60e, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "s92_18.bin", 0x0020000, 0x7f162009, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "s92_19.bin", 0x0020000, 0xbeade53f, BRF_SND | CPS1_OKIM6295_SAMPLES },
-};
-
-STD_ROM_PICK(Sf2rb5)
-STD_ROM_FN(Sf2rb5)
-
-static struct BurnRomInfo Sf2rb6RomDesc[] = {
- { "cebl_23", 0x080000, 0x1439fcad, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "cebl_22", 0x080000, 0x27e80cb1, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "cebl_21", 0x080000, 0xf21e3046, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "s92-1m.3a", 0x080000, 0x03b0d852, BRF_GRA | CPS1_TILES },
- { "s92-3m.5a", 0x080000, 0x840289ec, BRF_GRA | CPS1_TILES },
- { "s92-2m.4a", 0x080000, 0xcdb5f027, BRF_GRA | CPS1_TILES },
- { "s92-4m.6a", 0x080000, 0xe2799472, BRF_GRA | CPS1_TILES },
- { "s92-5m.7a", 0x080000, 0xba8a2761, BRF_GRA | CPS1_TILES },
- { "s92-7m.9a", 0x080000, 0xe584bfb5, BRF_GRA | CPS1_TILES },
- { "s92-6m.8a", 0x080000, 0x21e3f87d, BRF_GRA | CPS1_TILES },
- { "s92-8m.10a", 0x080000, 0xbefc47df, BRF_GRA | CPS1_TILES },
- { "s92-10m.3c", 0x080000, 0x960687d5, BRF_GRA | CPS1_TILES },
- { "s92-12m.5c", 0x080000, 0x978ecd18, BRF_GRA | CPS1_TILES },
- { "s92-11m.4c", 0x080000, 0xd6ec9a0a, BRF_GRA | CPS1_TILES },
- { "s92-13m.6c", 0x080000, 0xed2c67f6, BRF_GRA | CPS1_TILES },
-
- { "s92_09.11a", 0x010000, 0x08f6b60e, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "s92_18.11c", 0x020000, 0x7f162009, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "s92_19.12c", 0x020000, 0xbeade53f, BRF_SND | CPS1_OKIM6295_SAMPLES },
-};
-
-STD_ROM_PICK(Sf2rb6)
-STD_ROM_FN(Sf2rb6)
-
-static struct BurnRomInfo Sf2redRomDesc[] = {
- { "sf2red.23", 0x080000, 0x40276abb, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "sf2red.22", 0x080000, 0x18daf387, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "sf2red.21", 0x080000, 0x52c486bb, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "s92_01.bin", 0x080000, 0x03b0d852, BRF_GRA | CPS1_TILES },
- { "s92_02.bin", 0x080000, 0x840289ec, BRF_GRA | CPS1_TILES },
- { "s92_03.bin", 0x080000, 0xcdb5f027, BRF_GRA | CPS1_TILES },
- { "s92_04.bin", 0x080000, 0xe2799472, BRF_GRA | CPS1_TILES },
- { "s92_05.bin", 0x080000, 0xba8a2761, BRF_GRA | CPS1_TILES },
- { "s92_06.bin", 0x080000, 0xe584bfb5, BRF_GRA | CPS1_TILES },
- { "s92_07.bin", 0x080000, 0x21e3f87d, BRF_GRA | CPS1_TILES },
- { "s92_08.bin", 0x080000, 0xbefc47df, BRF_GRA | CPS1_TILES },
- { "s92_10.bin", 0x080000, 0x960687d5, BRF_GRA | CPS1_TILES },
- { "s92_11.bin", 0x080000, 0x978ecd18, BRF_GRA | CPS1_TILES },
- { "s92_12.bin", 0x080000, 0xd6ec9a0a, BRF_GRA | CPS1_TILES },
- { "s92_13.bin", 0x080000, 0xed2c67f6, BRF_GRA | CPS1_TILES },
-
- { "s92_09.bin", 0x010000, 0x08f6b60e, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "s92_18.bin", 0x020000, 0x7f162009, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "s92_19.bin", 0x020000, 0xbeade53f, BRF_SND | CPS1_OKIM6295_SAMPLES },
-};
-
-STD_ROM_PICK(Sf2red)
-STD_ROM_FN(Sf2red)
-
-static struct BurnRomInfo Sf2red2RomDesc[] = {
- // this set was previously known as sf2m13
- { "sf3d5-1040", 0x0080000, 0xbcdd2c3a, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf3d5-3040", 0x0080000, 0x01965987, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf3d5-2010", 0x0020000, 0xdd2e1d31, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf3d5-4010", 0x0020000, 0xc95e4443, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "s92_01.bin", 0x0080000, 0x03b0d852, BRF_GRA | CPS1_TILES },
- { "s92_02.bin", 0x0080000, 0x840289ec, BRF_GRA | CPS1_TILES },
- { "s92_03.bin", 0x0080000, 0xcdb5f027, BRF_GRA | CPS1_TILES },
- { "s92_04.bin", 0x0080000, 0xe2799472, BRF_GRA | CPS1_TILES },
- { "s92_05.bin", 0x0080000, 0xba8a2761, BRF_GRA | CPS1_TILES },
- { "s92_06.bin", 0x0080000, 0xe584bfb5, BRF_GRA | CPS1_TILES },
- { "s92_07.bin", 0x0080000, 0x21e3f87d, BRF_GRA | CPS1_TILES },
- { "s92_08.bin", 0x0080000, 0xbefc47df, BRF_GRA | CPS1_TILES },
- { "s92_10.bin", 0x0080000, 0x960687d5, BRF_GRA | CPS1_TILES },
- { "s92_11.bin", 0x0080000, 0x978ecd18, BRF_GRA | CPS1_TILES },
- { "s92_12.bin", 0x0080000, 0xd6ec9a0a, BRF_GRA | CPS1_TILES },
- { "s92_13.bin", 0x0080000, 0xed2c67f6, BRF_GRA | CPS1_TILES },
-
- { "s92_09.bin", 0x0010000, 0x08f6b60e, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "s92_18.bin", 0x0020000, 0x7f162009, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "s92_19.bin", 0x0020000, 0xbeade53f, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- // these weren't present with this set, but extra graphics are required (see bike's on Chun-Li stage)
- { "6.amf", 0x020000, 0x3a85a275, BRF_GRA | CPS1_EXTRA_TILES_SF2EBBL_400000 },
- { "9.amf", 0x020000, 0x9156472f, BRF_GRA | CPS1_EXTRA_TILES_SF2EBBL_400000 },
- { "8.amf", 0x020000, 0xecdb083b, BRF_GRA | CPS1_EXTRA_TILES_SF2EBBL_400000 },
- { "10.amf", 0x020000, 0x8fea8384, BRF_GRA | CPS1_EXTRA_TILES_SF2EBBL_400000 },
-};
-
-STD_ROM_PICK(Sf2red2)
-STD_ROM_FN(Sf2red2)
-
-static struct BurnRomInfo Sf2v004RomDesc[] = {
- { "sf2v004.23", 0x080000, 0x52d19f2c, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "sf2v004.22", 0x080000, 0x4b26fde7, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "sf2red.21", 0x080000, 0x52c486bb, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "s92_01.bin", 0x080000, 0x03b0d852, BRF_GRA | CPS1_TILES },
- { "s92_02.bin", 0x080000, 0x840289ec, BRF_GRA | CPS1_TILES },
- { "s92_03.bin", 0x080000, 0xcdb5f027, BRF_GRA | CPS1_TILES },
- { "s92_04.bin", 0x080000, 0xe2799472, BRF_GRA | CPS1_TILES },
- { "s92_05.bin", 0x080000, 0xba8a2761, BRF_GRA | CPS1_TILES },
- { "s92_06.bin", 0x080000, 0xe584bfb5, BRF_GRA | CPS1_TILES },
- { "s92_07.bin", 0x080000, 0x21e3f87d, BRF_GRA | CPS1_TILES },
- { "s92_08.bin", 0x080000, 0xbefc47df, BRF_GRA | CPS1_TILES },
- { "s92_10.bin", 0x080000, 0x960687d5, BRF_GRA | CPS1_TILES },
- { "s92_11.bin", 0x080000, 0x978ecd18, BRF_GRA | CPS1_TILES },
- { "s92_12.bin", 0x080000, 0xd6ec9a0a, BRF_GRA | CPS1_TILES },
- { "s92_13.bin", 0x080000, 0xed2c67f6, BRF_GRA | CPS1_TILES },
-
- { "s92_09.bin", 0x010000, 0x08f6b60e, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "s92_18.bin", 0x020000, 0x7f162009, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "s92_19.bin", 0x020000, 0xbeade53f, BRF_SND | CPS1_OKIM6295_SAMPLES },
-};
-
-STD_ROM_PICK(Sf2v004)
-STD_ROM_FN(Sf2v004)
-
-static struct BurnRomInfo Sf2v0042RomDesc[] = {
- // this set was previously known as sf2m15
- { "sf3g-1.040", 0x0080000, 0xc90559a5, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf3g-3.040", 0x0080000, 0x81f36682, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf3g-2.010", 0x0020000, 0x9eee20a1, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf3g-4.010", 0x0020000, 0x6ac3d875, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "s92_01.bin", 0x0080000, 0x03b0d852, BRF_GRA | CPS1_TILES },
- { "s92_02.bin", 0x0080000, 0x840289ec, BRF_GRA | CPS1_TILES },
- { "s92_03.bin", 0x0080000, 0xcdb5f027, BRF_GRA | CPS1_TILES },
- { "s92_04.bin", 0x0080000, 0xe2799472, BRF_GRA | CPS1_TILES },
- { "s92_05.bin", 0x0080000, 0xba8a2761, BRF_GRA | CPS1_TILES },
- { "s92_06.bin", 0x0080000, 0xe584bfb5, BRF_GRA | CPS1_TILES },
- { "s92_07.bin", 0x0080000, 0x21e3f87d, BRF_GRA | CPS1_TILES },
- { "s92_08.bin", 0x0080000, 0xbefc47df, BRF_GRA | CPS1_TILES },
- { "s92_10.bin", 0x0080000, 0x960687d5, BRF_GRA | CPS1_TILES },
- { "s92_11.bin", 0x0080000, 0x978ecd18, BRF_GRA | CPS1_TILES },
- { "s92_12.bin", 0x0080000, 0xd6ec9a0a, BRF_GRA | CPS1_TILES },
- { "s92_13.bin", 0x0080000, 0xed2c67f6, BRF_GRA | CPS1_TILES },
-
- { "s92_09.bin", 0x0010000, 0x08f6b60e, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "s92_18.bin", 0x0020000, 0x7f162009, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "s92_19.bin", 0x0020000, 0xbeade53f, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- // these weren't present with this set, but extra graphics are required (see bike's on Chun-Li stage)
- { "6.amf", 0x020000, 0x3a85a275, BRF_GRA | CPS1_EXTRA_TILES_SF2EBBL_400000 },
- { "9.amf", 0x020000, 0x9156472f, BRF_GRA | CPS1_EXTRA_TILES_SF2EBBL_400000 },
- { "8.amf", 0x020000, 0xecdb083b, BRF_GRA | CPS1_EXTRA_TILES_SF2EBBL_400000 },
- { "10.amf", 0x020000, 0x8fea8384, BRF_GRA | CPS1_EXTRA_TILES_SF2EBBL_400000 },
-};
-
-STD_ROM_PICK(Sf2v0042)
-STD_ROM_FN(Sf2v0042)
-
-static struct BurnRomInfo Sf2v0043RomDesc[] = {
- { "22_08-92.7f", 0x080000, 0x95fbcc3e, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "21_08-92.6f", 0x080000, 0x99f1cca4, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "23_08-92.8f", 0x080000, 0x52c486bb, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "s92_01.bin", 0x080000, 0x03b0d852, BRF_GRA | CPS1_TILES },
- { "s92_02.bin", 0x080000, 0x840289ec, BRF_GRA | CPS1_TILES },
- { "s92_03.bin", 0x080000, 0xcdb5f027, BRF_GRA | CPS1_TILES },
- { "s92_04.bin", 0x080000, 0xe2799472, BRF_GRA | CPS1_TILES },
- { "s92_05.bin", 0x080000, 0xba8a2761, BRF_GRA | CPS1_TILES },
- { "s92_06.bin", 0x080000, 0xe584bfb5, BRF_GRA | CPS1_TILES },
- { "s92_07.bin", 0x080000, 0x21e3f87d, BRF_GRA | CPS1_TILES },
- { "s92_08.bin", 0x080000, 0xbefc47df, BRF_GRA | CPS1_TILES },
- { "s92_10.bin", 0x080000, 0x960687d5, BRF_GRA | CPS1_TILES },
- { "s92_11.bin", 0x080000, 0x978ecd18, BRF_GRA | CPS1_TILES },
- { "s92_12.bin", 0x080000, 0xd6ec9a0a, BRF_GRA | CPS1_TILES },
- { "s92_13.bin", 0x080000, 0xed2c67f6, BRF_GRA | CPS1_TILES },
-
- { "s92_09.bin", 0x010000, 0x08f6b60e, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "s92_18.bin", 0x020000, 0x7f162009, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "s92_19.bin", 0x020000, 0xbeade53f, BRF_SND | CPS1_OKIM6295_SAMPLES },
-};
-
-STD_ROM_PICK(Sf2v0043)
-STD_ROM_FN(Sf2v0043)
-
-static struct BurnRomInfo Sf2dongbRomDesc[] = {
- { "1.8f", 0x0080000, 0x19fffa37, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "1.7f", 0x0080000, 0x99f1cca4, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "1.6f", 0x0080000, 0x65c2c719, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "s92-1m.3a", 0x080000, 0x03b0d852, BRF_GRA | CPS1_TILES },
- { "s92-3m.5a", 0x080000, 0x840289ec, BRF_GRA | CPS1_TILES },
- { "s92-2m.4a", 0x080000, 0xcdb5f027, BRF_GRA | CPS1_TILES },
- { "s92-4m.6a", 0x080000, 0xe2799472, BRF_GRA | CPS1_TILES },
- { "s92-5m.7a", 0x080000, 0xba8a2761, BRF_GRA | CPS1_TILES },
- { "s92-7m.9a", 0x080000, 0xe584bfb5, BRF_GRA | CPS1_TILES },
- { "s92-6m.8a", 0x080000, 0x21e3f87d, BRF_GRA | CPS1_TILES },
- { "s92-8m.10a", 0x080000, 0xbefc47df, BRF_GRA | CPS1_TILES },
- { "s92-10m.3c", 0x080000, 0x960687d5, BRF_GRA | CPS1_TILES },
- { "s92-12m.5c", 0x080000, 0x978ecd18, BRF_GRA | CPS1_TILES },
- { "s92-11m.4c", 0x080000, 0xd6ec9a0a, BRF_GRA | CPS1_TILES },
- { "s92-13m.6c", 0x080000, 0xed2c67f6, BRF_GRA | CPS1_TILES },
-
- { "s92_09.11a", 0x010000, 0x08f6b60e, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "s92_18.11c", 0x020000, 0x7f162009, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "s92_19.12c", 0x020000, 0xbeade53f, BRF_SND | CPS1_OKIM6295_SAMPLES },
-};
-
-STD_ROM_PICK(Sf2dongb)
-STD_ROM_FN(Sf2dongb)
-
-static struct BurnRomInfo Sf2bhhRomDesc[] = {
- { "23", 0x0080000, 0x5cf63a9e, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "22", 0x0080000, 0x3ed72bca, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "s92_21a.6f", 0x0080000, 0x925a7877, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "s92-1m.3a", 0x080000, 0x03b0d852, BRF_GRA | CPS1_TILES },
- { "s92-3m.5a", 0x080000, 0x840289ec, BRF_GRA | CPS1_TILES },
- { "s92-2m.4a", 0x080000, 0xcdb5f027, BRF_GRA | CPS1_TILES },
- { "s92-4m.6a", 0x080000, 0xe2799472, BRF_GRA | CPS1_TILES },
- { "s92-5m.7a", 0x080000, 0xba8a2761, BRF_GRA | CPS1_TILES },
- { "s92-7m.9a", 0x080000, 0xe584bfb5, BRF_GRA | CPS1_TILES },
- { "s92-6m.8a", 0x080000, 0x21e3f87d, BRF_GRA | CPS1_TILES },
- { "s92-8m.10a", 0x080000, 0xbefc47df, BRF_GRA | CPS1_TILES },
- { "s92-10m.3c", 0x080000, 0x960687d5, BRF_GRA | CPS1_TILES },
- { "s92-12m.5c", 0x080000, 0x978ecd18, BRF_GRA | CPS1_TILES },
- { "s92-11m.4c", 0x080000, 0xd6ec9a0a, BRF_GRA | CPS1_TILES },
- { "s92-13m.6c", 0x080000, 0xed2c67f6, BRF_GRA | CPS1_TILES },
-
- { "s92_09.11a", 0x010000, 0x08f6b60e, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "s92_18.11c", 0x020000, 0x7f162009, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "s92_19.12c", 0x020000, 0xbeade53f, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "s9263b.1a", 0x000117, 0x0a7ecfe0, BRF_OPT }, // b-board PLDs
- { "iob1.12d", 0x000117, 0x3abc0700, BRF_OPT },
- { "bprg1.11d", 0x000117, 0x31793da7, BRF_OPT },
- { "ioc1.ic7", 0x000117, 0x0d182081, BRF_OPT }, // c-board PLDs
- { "c632.ic1", 0x000117, 0x0fbd9270, BRF_OPT },
-};
-
-STD_ROM_PICK(Sf2bhh)
-STD_ROM_FN(Sf2bhh)
-
-static struct BurnRomInfo Sf2hfRomDesc[] = {
- { "s2te_23.8f", 0x080000, 0x2dd72514, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "s2te_22.7f", 0x080000, 0xaea6e035, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "s2te_21.6f", 0x080000, 0xfd200288, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "s92-1m.3a", 0x080000, 0x03b0d852, BRF_GRA | CPS1_TILES },
- { "s92-3m.5a", 0x080000, 0x840289ec, BRF_GRA | CPS1_TILES },
- { "s92-2m.4a", 0x080000, 0xcdb5f027, BRF_GRA | CPS1_TILES },
- { "s92-4m.6a", 0x080000, 0xe2799472, BRF_GRA | CPS1_TILES },
- { "s92-5m.7a", 0x080000, 0xba8a2761, BRF_GRA | CPS1_TILES },
- { "s92-7m.9a", 0x080000, 0xe584bfb5, BRF_GRA | CPS1_TILES },
- { "s92-6m.8a", 0x080000, 0x21e3f87d, BRF_GRA | CPS1_TILES },
- { "s92-8m.10a", 0x080000, 0xbefc47df, BRF_GRA | CPS1_TILES },
- { "s92-10m.3c", 0x080000, 0x960687d5, BRF_GRA | CPS1_TILES },
- { "s92-12m.5c", 0x080000, 0x978ecd18, BRF_GRA | CPS1_TILES },
- { "s92-11m.4c", 0x080000, 0xd6ec9a0a, BRF_GRA | CPS1_TILES },
- { "s92-13m.6c", 0x080000, 0xed2c67f6, BRF_GRA | CPS1_TILES },
-
- { "s92_09.11a", 0x010000, 0x08f6b60e, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "s92_18.11c", 0x020000, 0x7f162009, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "s92_19.12c", 0x020000, 0xbeade53f, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "s9263b.1a", 0x000117, 0x0a7ecfe0, BRF_OPT }, // b-board PLDs
- { "iob1.12d", 0x000117, 0x3abc0700, BRF_OPT },
- { "bprg1.11d", 0x000117, 0x31793da7, BRF_OPT },
- { "ioc1.ic7", 0x000117, 0x0d182081, BRF_OPT }, // c-board PLDs
- { "c632.ic1", 0x000117, 0x0fbd9270, BRF_OPT },
-};
-
-STD_ROM_PICK(Sf2hf)
-STD_ROM_FN(Sf2hf)
-
-static struct BurnRomInfo Sf2hfuRomDesc[] = {
- { "s2tu_23.8f", 0x080000, 0x89a1fc38, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "s2tu_22.7f", 0x080000, 0xaea6e035, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "s2tu_21.6f", 0x080000, 0xfd200288, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "s92-1m.3a", 0x080000, 0x03b0d852, BRF_GRA | CPS1_TILES },
- { "s92-3m.5a", 0x080000, 0x840289ec, BRF_GRA | CPS1_TILES },
- { "s92-2m.4a", 0x080000, 0xcdb5f027, BRF_GRA | CPS1_TILES },
- { "s92-4m.6a", 0x080000, 0xe2799472, BRF_GRA | CPS1_TILES },
- { "s92-5m.7a", 0x080000, 0xba8a2761, BRF_GRA | CPS1_TILES },
- { "s92-7m.9a", 0x080000, 0xe584bfb5, BRF_GRA | CPS1_TILES },
- { "s92-6m.8a", 0x080000, 0x21e3f87d, BRF_GRA | CPS1_TILES },
- { "s92-8m.10a", 0x080000, 0xbefc47df, BRF_GRA | CPS1_TILES },
- { "s92-10m.3c", 0x080000, 0x960687d5, BRF_GRA | CPS1_TILES },
- { "s92-12m.5c", 0x080000, 0x978ecd18, BRF_GRA | CPS1_TILES },
- { "s92-11m.4c", 0x080000, 0xd6ec9a0a, BRF_GRA | CPS1_TILES },
- { "s92-13m.6c", 0x080000, 0xed2c67f6, BRF_GRA | CPS1_TILES },
-
- { "s92_09.11a", 0x010000, 0x08f6b60e, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "s92_18.11c", 0x020000, 0x7f162009, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "s92_19.12c", 0x020000, 0xbeade53f, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "s9263b.1a", 0x000117, 0x0a7ecfe0, BRF_OPT }, // b-board PLDs
- { "iob1.12d", 0x000117, 0x3abc0700, BRF_OPT },
- { "bprg1.11d", 0x000117, 0x31793da7, BRF_OPT },
- { "ioc1.ic7", 0x000117, 0x0d182081, BRF_OPT }, // c-board PLDs
- { "c632.ic1", 0x000117, 0x0fbd9270, BRF_OPT },
-};
-
-STD_ROM_PICK(Sf2hfu)
-STD_ROM_FN(Sf2hfu)
-
-static struct BurnRomInfo Sf2hfjRomDesc[] = {
- { "s2tj_23.8f", 0x080000, 0xea73b4dc, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "s2tj_22.7f", 0x080000, 0xaea6e035, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "s2tj_21.6f", 0x080000, 0xfd200288, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "s92_01.3a", 0x080000, 0x03b0d852, BRF_GRA | CPS1_TILES },
- { "s92_02.4a", 0x080000, 0x840289ec, BRF_GRA | CPS1_TILES },
- { "s92_03.5a", 0x080000, 0xcdb5f027, BRF_GRA | CPS1_TILES },
- { "s92_04.6a", 0x080000, 0xe2799472, BRF_GRA | CPS1_TILES },
- { "s92_05.7a", 0x080000, 0xba8a2761, BRF_GRA | CPS1_TILES },
- { "s92_06.8a", 0x080000, 0xe584bfb5, BRF_GRA | CPS1_TILES },
- { "s92_07.9a", 0x080000, 0x21e3f87d, BRF_GRA | CPS1_TILES },
- { "s92_08.10a", 0x080000, 0xbefc47df, BRF_GRA | CPS1_TILES },
- { "s2t_10.3c", 0x080000, 0x3c042686, BRF_GRA | CPS1_TILES },
- { "s2t_11.4c", 0x080000, 0x8b7e7183, BRF_GRA | CPS1_TILES },
- { "s2t_12.5c", 0x080000, 0x293c888c, BRF_GRA | CPS1_TILES },
- { "s2t_13.6c", 0x080000, 0x842b35a4, BRF_GRA | CPS1_TILES },
-
- { "s92_09.12a", 0x010000, 0x08f6b60e, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "s92_18.11c", 0x020000, 0x7f162009, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "s92_19.12c", 0x020000, 0xbeade53f, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "s9263b.1a", 0x000117, 0x0a7ecfe0, BRF_OPT }, // b-board PLDs
- { "iob1.12d", 0x000117, 0x3abc0700, BRF_OPT },
- { "bprg1.11d", 0x000117, 0x31793da7, BRF_OPT },
- { "ioc1.ic7", 0x000117, 0x0d182081, BRF_OPT }, // c-board PLDs
- { "c632.ic1", 0x000117, 0x0fbd9270, BRF_OPT },
-};
-
-STD_ROM_PICK(Sf2hfj)
-STD_ROM_FN(Sf2hfj)
-
-static struct BurnRomInfo Sf2hfubRomDesc[] = {
- { "s2tu-23", 0x080000, 0x71d36456, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "s2tu-22", 0x080000, 0x8259426a, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "s2tu-21", 0x080000, 0x938f44d5, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "s92_01.3a", 0x080000, 0x03b0d852, BRF_GRA | CPS1_TILES },
- { "s92_02.4a", 0x080000, 0x840289ec, BRF_GRA | CPS1_TILES },
- { "s92_03.5a", 0x080000, 0xcdb5f027, BRF_GRA | CPS1_TILES },
- { "s92_04.6a", 0x080000, 0xe2799472, BRF_GRA | CPS1_TILES },
- { "s92_05.7a", 0x080000, 0xba8a2761, BRF_GRA | CPS1_TILES },
- { "s92_06.8a", 0x080000, 0xe584bfb5, BRF_GRA | CPS1_TILES },
- { "s92_07.9a", 0x080000, 0x21e3f87d, BRF_GRA | CPS1_TILES },
- { "s92_08.10a", 0x080000, 0xbefc47df, BRF_GRA | CPS1_TILES },
- { "s2t_10.3c", 0x080000, 0x3c042686, BRF_GRA | CPS1_TILES },
- { "s2t_11.4c", 0x080000, 0x8b7e7183, BRF_GRA | CPS1_TILES },
- { "s2t_12.5c", 0x080000, 0x293c888c, BRF_GRA | CPS1_TILES },
- { "s2t_13.6c", 0x080000, 0x842b35a4, BRF_GRA | CPS1_TILES },
-
- { "s92_09.12a", 0x010000, 0x08f6b60e, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "s92_18.11c", 0x020000, 0x7f162009, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "s92_19.12c", 0x020000, 0xbeade53f, BRF_SND | CPS1_OKIM6295_SAMPLES },
-};
-
-STD_ROM_PICK(Sf2hfub)
-STD_ROM_FN(Sf2hfub)
-
-static struct BurnRomInfo Sf2hfjbRomDesc[] = {
- // This set is also known as sf2ce13
- { "222-040.13", 0x080000, 0xec6f5cb3, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "196-040.13", 0x080000, 0x0e9ac52b, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "221-010.13", 0x020000, 0x8226c11c, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "195-010.13", 0x020000, 0x924c6ce2, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "s92_01.bin", 0x080000, 0x03b0d852, BRF_GRA | CPS1_TILES },
- { "s92_02.bin", 0x080000, 0x840289ec, BRF_GRA | CPS1_TILES },
- { "s92_03.bin", 0x080000, 0xcdb5f027, BRF_GRA | CPS1_TILES },
- { "s92_04.bin", 0x080000, 0xe2799472, BRF_GRA | CPS1_TILES },
- { "s92_05.bin", 0x080000, 0xba8a2761, BRF_GRA | CPS1_TILES },
- { "s92_06.bin", 0x080000, 0xe584bfb5, BRF_GRA | CPS1_TILES },
- { "s92_07.bin", 0x080000, 0x21e3f87d, BRF_GRA | CPS1_TILES },
- { "s92_08.bin", 0x080000, 0xbefc47df, BRF_GRA | CPS1_TILES },
- { "s2t_10.bin", 0x080000, 0x3c042686, BRF_GRA | CPS1_TILES },
- { "s2t_11.bin", 0x080000, 0x8b7e7183, BRF_GRA | CPS1_TILES },
- { "s2t_12.bin", 0x080000, 0x293c888c, BRF_GRA | CPS1_TILES },
- { "s2t_13.bin", 0x080000, 0x842b35a4, BRF_GRA | CPS1_TILES },
-
- { "s92_09.bin", 0x010000, 0x08f6b60e, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "s92_18.bin", 0x020000, 0x7f162009, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "s92_19.bin", 0x020000, 0xbeade53f, BRF_SND | CPS1_OKIM6295_SAMPLES },
-};
-
-STD_ROM_PICK(Sf2hfjb)
-STD_ROM_FN(Sf2hfjb)
-
-static struct BurnRomInfo Sf2hfjb2RomDesc[] = {
- { "sf12-1.040", 0x080000, 0xec6f5cb3, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf12-3.040", 0x080000, 0x0e9ac52b, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf12-2.010", 0x020000, 0xd1707134, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf12-4.010", 0x020000, 0xcd1d5666, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "s92_01.bin", 0x080000, 0x03b0d852, BRF_GRA | CPS1_TILES },
- { "s92_02.bin", 0x080000, 0x840289ec, BRF_GRA | CPS1_TILES },
- { "s92_03.bin", 0x080000, 0xcdb5f027, BRF_GRA | CPS1_TILES },
- { "s92_04.bin", 0x080000, 0xe2799472, BRF_GRA | CPS1_TILES },
- { "s92_05.bin", 0x080000, 0xba8a2761, BRF_GRA | CPS1_TILES },
- { "s92_06.bin", 0x080000, 0xe584bfb5, BRF_GRA | CPS1_TILES },
- { "s92_07.bin", 0x080000, 0x21e3f87d, BRF_GRA | CPS1_TILES },
- { "s92_08.bin", 0x080000, 0xbefc47df, BRF_GRA | CPS1_TILES },
- { "s2t_10.bin", 0x080000, 0x3c042686, BRF_GRA | CPS1_TILES },
- { "s2t_11.bin", 0x080000, 0x8b7e7183, BRF_GRA | CPS1_TILES },
- { "s2t_12.bin", 0x080000, 0x293c888c, BRF_GRA | CPS1_TILES },
- { "s2t_13.bin", 0x080000, 0x842b35a4, BRF_GRA | CPS1_TILES },
-
- { "s92_09.bin", 0x010000, 0x08f6b60e, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "s92_18.bin", 0x020000, 0x7f162009, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "s92_19.bin", 0x020000, 0xbeade53f, BRF_SND | CPS1_OKIM6295_SAMPLES },
-};
-
-STD_ROM_PICK(Sf2hfjb2)
-STD_ROM_FN(Sf2hfjb2)
-
-static struct BurnRomInfo Sf2yycRomDesc[] = {
- { "b12.rom", 0x0080000, 0x8f742fd5, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "b14.rom", 0x0080000, 0x8831ec7f, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "b11.rom", 0x0020000, 0x94a46525, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "b13.rom", 0x0020000, 0x8fb3dd47, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "s92_01.bin", 0x0080000, 0x03b0d852, BRF_GRA | CPS1_TILES },
- { "s92_02.bin", 0x0080000, 0x840289ec, BRF_GRA | CPS1_TILES },
- { "s92_03.bin", 0x0080000, 0xcdb5f027, BRF_GRA | CPS1_TILES },
- { "s92_04.bin", 0x0080000, 0xe2799472, BRF_GRA | CPS1_TILES },
- { "s92_05.bin", 0x0080000, 0xba8a2761, BRF_GRA | CPS1_TILES },
- { "s92_06.bin", 0x0080000, 0xe584bfb5, BRF_GRA | CPS1_TILES },
- { "s92_07.bin", 0x0080000, 0x21e3f87d, BRF_GRA | CPS1_TILES },
- { "s92_08.bin", 0x0080000, 0xbefc47df, BRF_GRA | CPS1_TILES },
- { "s92_10.bin", 0x0080000, 0x960687d5, BRF_GRA | CPS1_TILES },
- { "s92_11.bin", 0x0080000, 0x978ecd18, BRF_GRA | CPS1_TILES },
- { "s92_12.bin", 0x0080000, 0xd6ec9a0a, BRF_GRA | CPS1_TILES },
- { "s92_13.bin", 0x0080000, 0xed2c67f6, BRF_GRA | CPS1_TILES },
-
- { "s92_09.bin", 0x0010000, 0x08f6b60e, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "s92_18.bin", 0x0020000, 0x7f162009, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "s92_19.bin", 0x0020000, 0xbeade53f, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
-#if !defined ROM_VERIFY
- // these weren't present with this set, but extra graphics are required (see bike's on Chun-Li stage)
- { "6.amf", 0x020000, 0x3a85a275, BRF_GRA | CPS1_EXTRA_TILES_SF2EBBL_400000 },
- { "9.amf", 0x020000, 0x9156472f, BRF_GRA | CPS1_EXTRA_TILES_SF2EBBL_400000 },
- { "8.amf", 0x020000, 0xecdb083b, BRF_GRA | CPS1_EXTRA_TILES_SF2EBBL_400000 },
- { "10.amf", 0x020000, 0x8fea8384, BRF_GRA | CPS1_EXTRA_TILES_SF2EBBL_400000 },
-#endif
-};
-
-STD_ROM_PICK(Sf2yyc)
-STD_ROM_FN(Sf2yyc)
-
-static struct BurnRomInfo Sf2yyc2RomDesc[] = {
- // This set was previously known as sf2m14
- { "sf6-1.040", 0x0080000, 0xccd74822, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf6-3.040", 0x0080000, 0x2a48b557, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf6-2.010", 0x0020000, 0x64e6e091, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf6-4.010", 0x0020000, 0xc95e4443, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "s92_01.bin", 0x0080000, 0x03b0d852, BRF_GRA | CPS1_TILES },
- { "s92_02.bin", 0x0080000, 0x840289ec, BRF_GRA | CPS1_TILES },
- { "s92_03.bin", 0x0080000, 0xcdb5f027, BRF_GRA | CPS1_TILES },
- { "s92_04.bin", 0x0080000, 0xe2799472, BRF_GRA | CPS1_TILES },
- { "s92_05.bin", 0x0080000, 0xba8a2761, BRF_GRA | CPS1_TILES },
- { "s92_06.bin", 0x0080000, 0xe584bfb5, BRF_GRA | CPS1_TILES },
- { "s92_07.bin", 0x0080000, 0x21e3f87d, BRF_GRA | CPS1_TILES },
- { "s92_08.bin", 0x0080000, 0xbefc47df, BRF_GRA | CPS1_TILES },
- { "s92_10.bin", 0x0080000, 0x960687d5, BRF_GRA | CPS1_TILES },
- { "s92_11.bin", 0x0080000, 0x978ecd18, BRF_GRA | CPS1_TILES },
- { "s92_12.bin", 0x0080000, 0xd6ec9a0a, BRF_GRA | CPS1_TILES },
- { "s92_13.bin", 0x0080000, 0xed2c67f6, BRF_GRA | CPS1_TILES },
-
- { "s92_09.bin", 0x0010000, 0x08f6b60e, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "s92_18.bin", 0x0020000, 0x7f162009, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "s92_19.bin", 0x0020000, 0xbeade53f, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- // these weren't present with this set, but extra graphics are required (see bike's on Chun-Li stage)
- { "6.amf", 0x020000, 0x3a85a275, BRF_GRA | CPS1_EXTRA_TILES_SF2EBBL_400000 },
- { "9.amf", 0x020000, 0x9156472f, BRF_GRA | CPS1_EXTRA_TILES_SF2EBBL_400000 },
- { "8.amf", 0x020000, 0xecdb083b, BRF_GRA | CPS1_EXTRA_TILES_SF2EBBL_400000 },
- { "10.amf", 0x020000, 0x8fea8384, BRF_GRA | CPS1_EXTRA_TILES_SF2EBBL_400000 },
-};
-
-STD_ROM_PICK(Sf2yyc2)
-STD_ROM_FN(Sf2yyc2)
-
-static struct BurnRomInfo Sf2koryuRomDesc[] = {
- { "u222.rom", 0x0080000, 0x9236a79a, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "u196.rom", 0x0080000, 0xb23a869d, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "u221.rom", 0x0020000, 0x64e6e091, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "u195.rom", 0x0020000, 0xc95e4443, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
-#if !defined ROM_VERIFY
- { "u70.rom", 0x0100000, 0xbaa0f81f, BRF_GRA | CPS1_TILES },
- { "u68.rom", 0x0100000, 0x8edff95a, BRF_GRA | CPS1_TILES },
- { "u69.rom", 0x0100000, 0x468962b1, BRF_GRA | CPS1_TILES },
- { "u64.rom", 0x0100000, 0x8165f536, BRF_GRA | CPS1_TILES },
- { "u19.rom", 0x0100000, 0x39d763d3, BRF_GRA | CPS1_TILES },
- { "u18.rom", 0x0100000, 0x93ec42ae, BRF_GRA | CPS1_TILES },
-#else
- { "s92_01.bin", 0x0080000, 0x03b0d852, BRF_GRA | CPS1_TILES },
- { "s92_02.bin", 0x0080000, 0x840289ec, BRF_GRA | CPS1_TILES },
- { "s92_03.bin", 0x0080000, 0xcdb5f027, BRF_GRA | CPS1_TILES },
- { "s92_04.bin", 0x0080000, 0xe2799472, BRF_GRA | CPS1_TILES },
- { "s92_05.bin", 0x0080000, 0xba8a2761, BRF_GRA | CPS1_TILES },
- { "s92_06.bin", 0x0080000, 0xe584bfb5, BRF_GRA | CPS1_TILES },
- { "s92_07.bin", 0x0080000, 0x21e3f87d, BRF_GRA | CPS1_TILES },
- { "s92_08.bin", 0x0080000, 0xbefc47df, BRF_GRA | CPS1_TILES },
- { "s92_10.bin", 0x0080000, 0x960687d5, BRF_GRA | CPS1_TILES },
- { "s92_11.bin", 0x0080000, 0x978ecd18, BRF_GRA | CPS1_TILES },
- { "s92_12.bin", 0x0080000, 0xd6ec9a0a, BRF_GRA | CPS1_TILES },
- { "s92_13.bin", 0x0080000, 0xed2c67f6, BRF_GRA | CPS1_TILES },
-#endif
-
- { "s92_09.bin", 0x0010000, 0x08f6b60e, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "s92_18.bin", 0x0020000, 0x7f162009, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "s92_19.bin", 0x0020000, 0xbeade53f, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- // extra graphics roms are required (see bike's on Chun-Li stage), but using the current dumps we have lead to a corrupt
- // Street Fighter II logo
-};
-
-STD_ROM_PICK(Sf2koryu)
-STD_ROM_FN(Sf2koryu)
-
-static struct BurnRomInfo Sf2koryu2RomDesc[] = {
- { "sf10-3040", 0x0080000, 0x9236a79a, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf10-1040", 0x0080000, 0xb23a869d, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf10-2010", 0x0020000, 0x8226c11c, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf10-4010", 0x0020000, 0x924c6ce2, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "s92_01.bin", 0x0080000, 0x03b0d852, BRF_GRA | CPS1_TILES },
- { "s92_02.bin", 0x0080000, 0x840289ec, BRF_GRA | CPS1_TILES },
- { "s92_03.bin", 0x0080000, 0xcdb5f027, BRF_GRA | CPS1_TILES },
- { "s92_04.bin", 0x0080000, 0xe2799472, BRF_GRA | CPS1_TILES },
- { "s92_05.bin", 0x0080000, 0xba8a2761, BRF_GRA | CPS1_TILES },
- { "s92_06.bin", 0x0080000, 0xe584bfb5, BRF_GRA | CPS1_TILES },
- { "s92_07.bin", 0x0080000, 0x21e3f87d, BRF_GRA | CPS1_TILES },
- { "s92_08.bin", 0x0080000, 0xbefc47df, BRF_GRA | CPS1_TILES },
- { "s92_10.bin", 0x0080000, 0x960687d5, BRF_GRA | CPS1_TILES },
- { "s92_11.bin", 0x0080000, 0x978ecd18, BRF_GRA | CPS1_TILES },
- { "s92_12.bin", 0x0080000, 0xd6ec9a0a, BRF_GRA | CPS1_TILES },
- { "s92_13.bin", 0x0080000, 0xed2c67f6, BRF_GRA | CPS1_TILES },
-
- { "s92_09.bin", 0x0010000, 0x08f6b60e, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "s92_18.bin", 0x0020000, 0x7f162009, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "s92_19.bin", 0x0020000, 0xbeade53f, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- // extra graphics roms are required (see bike's on Chun-Li stage), but using the current dumps we have lead to a corrupt
- // Street Fighter II logo
-};
-
-STD_ROM_PICK(Sf2koryu2)
-STD_ROM_FN(Sf2koryu2)
-
-static struct BurnRomInfo Sf2koryu3RomDesc[] = {
- // this set was previously known as sf2m6
- { "u222-6b", 0x0080000, 0x0a3692be, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "u196-6b", 0x0080000, 0x80454da7, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "s92_21a.bin", 0x0080000, 0x925a7877, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "s92_01.bin", 0x0080000, 0x03b0d852, BRF_GRA | CPS1_TILES },
- { "s92_02.bin", 0x0080000, 0x840289ec, BRF_GRA | CPS1_TILES },
- { "s92_03.bin", 0x0080000, 0xcdb5f027, BRF_GRA | CPS1_TILES },
- { "s92_04.bin", 0x0080000, 0xe2799472, BRF_GRA | CPS1_TILES },
- { "s92_05.bin", 0x0080000, 0xba8a2761, BRF_GRA | CPS1_TILES },
- { "s92_06.bin", 0x0080000, 0xe584bfb5, BRF_GRA | CPS1_TILES },
- { "s92_07.bin", 0x0080000, 0x21e3f87d, BRF_GRA | CPS1_TILES },
- { "s92_08.bin", 0x0080000, 0xbefc47df, BRF_GRA | CPS1_TILES },
- { "s92_10.bin", 0x0080000, 0x960687d5, BRF_GRA | CPS1_TILES },
- { "s92_11.bin", 0x0080000, 0x978ecd18, BRF_GRA | CPS1_TILES },
- { "s92_12.bin", 0x0080000, 0xd6ec9a0a, BRF_GRA | CPS1_TILES },
- { "s92_13.bin", 0x0080000, 0xed2c67f6, BRF_GRA | CPS1_TILES },
-
- { "s92_09.bin", 0x0010000, 0x08f6b60e, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "s92_18.bin", 0x0020000, 0x7f162009, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "s92_19.bin", 0x0020000, 0xbeade53f, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- // these weren't present with this set, but extra graphics are required (see bike's on Chun-Li stage)
- { "6.amf", 0x020000, 0x3a85a275, BRF_GRA | CPS1_EXTRA_TILES_SF2EBBL_400000 },
- { "9.amf", 0x020000, 0x9156472f, BRF_GRA | CPS1_EXTRA_TILES_SF2EBBL_400000 },
- { "8.amf", 0x020000, 0xecdb083b, BRF_GRA | CPS1_EXTRA_TILES_SF2EBBL_400000 },
- { "10.amf", 0x020000, 0x8fea8384, BRF_GRA | CPS1_EXTRA_TILES_SF2EBBL_400000 },
-};
-
-STD_ROM_PICK(Sf2koryu3)
-STD_ROM_FN(Sf2koryu3)
-
-static struct BurnRomInfo Sf2amfRomDesc[] = {
- { "5.amf", 0x080000, 0x03991fba, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "4.amf", 0x080000, 0x39f15a1e, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-#if !defined ROM_VERIFY
- { "4.u221", 0x040000, 0xb0bb6242, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP }, // wasn't in original dump (set seems to be same as sf2amf7 but with different graphics roms)
- { "3.u195", 0x040000, 0xf516e578, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP }, // wasn't in original dump (set seems to be same as sf2amf7 but with different graphics roms)
-#else
- { "prg part 3.amf", 0x040000, 0x00000000, BRF_OPT | BRF_PRG | BRF_NODUMP | CPS1_68K_PROGRAM_BYTESWAP },
- { "prg part 4.amf", 0x040000, 0x00000000, BRF_OPT | BRF_PRG | BRF_NODUMP | CPS1_68K_PROGRAM_BYTESWAP },
-#endif
-
- { "y.c.e.c m.k.r-001", 0x100000, 0xa258de13, BRF_GRA | CPS1_TILES },
- { "y.c.e.c m.k.r-003", 0x100000, 0xc781bf87, BRF_GRA | CPS1_TILES },
- { "y.c.e.c m.k.r-002", 0x100000, 0x5726cab8, BRF_GRA | CPS1_TILES },
- { "y.c.e.c d.w.c-011", 0x100000, 0xbc90c12f, BRF_GRA | CPS1_TILES },
- { "y.c.e.c d.w.c-012", 0x100000, 0x187667cc, BRF_GRA | CPS1_TILES },
- { "y.c.e.c d.w.c-013", 0x100000, 0x5b585071, BRF_GRA | CPS1_TILES },
-
- { "3.amf", 0x010000, 0xa4823a1b, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "2.amf", 0x020000, 0x7f162009, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "1.amf", 0x020000, 0xbeade53f, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- { "6.amf", 0x020000, 0x3a85a275, BRF_GRA | CPS1_EXTRA_TILES_SF2EBBL_400000 },
- { "9.amf", 0x020000, 0x9156472f, BRF_GRA | CPS1_EXTRA_TILES_SF2EBBL_400000 },
- { "8.amf", 0x020000, 0xecdb083b, BRF_GRA | CPS1_EXTRA_TILES_SF2EBBL_400000 },
- { "10.amf", 0x020000, 0x8fea8384, BRF_GRA | CPS1_EXTRA_TILES_SF2EBBL_400000 },
-
- { "7.amf", 0x010000, 0x13ea1c44, BRF_OPT }, // unknown
-};
-
-STD_ROM_PICK(Sf2amf)
-STD_ROM_FN(Sf2amf)
-
-static struct BurnRomInfo Sf2amf2RomDesc[] = {
- { "m5m27c401.u222", 0x080000, 0x03991fba, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "m5m27c401.u196", 0x080000, 0x39f15a1e, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "27020.u221", 0x040000, 0xaa4d55a6, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "27020.u195", 0x040000, 0x2bffa6f9, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "fun-u70.bin", 0x100000, 0xa94a8b19, BRF_GRA | CPS1_TILES },
- { "fun-u68.bin", 0x100000, 0x0405f21f, BRF_GRA | CPS1_TILES },
- { "fun-u69.bin", 0x100000, 0x05dc2043, BRF_GRA | CPS1_TILES },
- { "fun-u67.bin", 0x100000, 0x055b64f1, BRF_GRA | CPS1_TILES },
- { "fun-u19.bin", 0x100000, 0x1a518609, BRF_GRA | CPS1_TILES },
- { "fun-u18.bin", 0x100000, 0x84f9354f, BRF_GRA | CPS1_TILES },
-
- { "27512.u191", 0x010000, 0xa4823a1b, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "fun-u210.bin", 0x040000, 0x6cfffb11, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- { "grp1.u31", 0x020000, 0x6de44671, BRF_GRA | CPS1_EXTRA_TILES_SF2B_400000 },
- { "grp3.u29", 0x020000, 0xe8f14362, BRF_GRA | CPS1_EXTRA_TILES_SF2B_400000 },
- { "grp2.u30", 0x020000, 0xbf0cd819, BRF_GRA | CPS1_EXTRA_TILES_SF2B_400000 },
- { "grp4.u28", 0x020000, 0x76f9f91f, BRF_GRA | CPS1_EXTRA_TILES_SF2B_400000 },
-
- { "27512.u133", 0x010000, 0x13ea1c44, BRF_OPT }, // unknown
-};
-
-STD_ROM_PICK(Sf2amf2)
-STD_ROM_FN(Sf2amf2)
-
-static struct BurnRomInfo Sf2amf3RomDesc[] = {
- // this set was previously known as sf2m7
- { "u222-2i", 0x0040000, 0x1ca7adbd, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "u196-2i", 0x0040000, 0xf758408c, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "u222-2s", 0x0040000, 0x720cea3e, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "u196-2s", 0x0040000, 0x9932832c, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "s92_21a.bin", 0x0080000, 0x925a7877, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "s92_01.bin", 0x0080000, 0x03b0d852, BRF_GRA | CPS1_TILES },
- { "s92_02.bin", 0x0080000, 0x840289ec, BRF_GRA | CPS1_TILES },
- { "s92_03.bin", 0x0080000, 0xcdb5f027, BRF_GRA | CPS1_TILES },
- { "s92_04.bin", 0x0080000, 0xe2799472, BRF_GRA | CPS1_TILES },
- { "s92_05.bin", 0x0080000, 0xba8a2761, BRF_GRA | CPS1_TILES },
- { "s92_06.bin", 0x0080000, 0xe584bfb5, BRF_GRA | CPS1_TILES },
- { "s92_07.bin", 0x0080000, 0x21e3f87d, BRF_GRA | CPS1_TILES },
- { "s92_08.bin", 0x0080000, 0xbefc47df, BRF_GRA | CPS1_TILES },
- { "s92_10.bin", 0x0080000, 0x960687d5, BRF_GRA | CPS1_TILES },
- { "s92_11.bin", 0x0080000, 0x978ecd18, BRF_GRA | CPS1_TILES },
- { "s92_12.bin", 0x0080000, 0xd6ec9a0a, BRF_GRA | CPS1_TILES },
- { "s92_13.bin", 0x0080000, 0xed2c67f6, BRF_GRA | CPS1_TILES },
-
- { "s92_09.bin", 0x0010000, 0x08f6b60e, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "s92_18.bin", 0x0020000, 0x7f162009, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "s92_19.bin", 0x0020000, 0xbeade53f, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- // these weren't present with this set, but extra graphics are required (see bike's on Chun-Li stage)
- { "6.amf", 0x020000, 0x3a85a275, BRF_GRA | CPS1_EXTRA_TILES_SF2EBBL_400000 },
- { "9.amf", 0x020000, 0x9156472f, BRF_GRA | CPS1_EXTRA_TILES_SF2EBBL_400000 },
- { "8.amf", 0x020000, 0xecdb083b, BRF_GRA | CPS1_EXTRA_TILES_SF2EBBL_400000 },
- { "10.amf", 0x020000, 0x8fea8384, BRF_GRA | CPS1_EXTRA_TILES_SF2EBBL_400000 },
-};
-
-STD_ROM_PICK(Sf2amf3)
-STD_ROM_FN(Sf2amf3)
-
-static struct BurnRomInfo Sf2amf4RomDesc[] = {
- // this set was previously known as sf2m10
- { "sfu9-1.040", 0x0080000, 0x95306baf, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sfu9-3.040", 0x0080000, 0x21024d5f, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sfu9-2.020", 0x0040000, 0x0b3fe5dd, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sfu9-4.020", 0x0040000, 0xdbee7b18, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "s92_01.bin", 0x0080000, 0x03b0d852, BRF_GRA | CPS1_TILES },
- { "s92_02.bin", 0x0080000, 0x840289ec, BRF_GRA | CPS1_TILES },
- { "s92_03.bin", 0x0080000, 0xcdb5f027, BRF_GRA | CPS1_TILES },
- { "s92_04.bin", 0x0080000, 0xe2799472, BRF_GRA | CPS1_TILES },
- { "s92_05.bin", 0x0080000, 0xba8a2761, BRF_GRA | CPS1_TILES },
- { "s92_06.bin", 0x0080000, 0xe584bfb5, BRF_GRA | CPS1_TILES },
- { "s92_07.bin", 0x0080000, 0x21e3f87d, BRF_GRA | CPS1_TILES },
- { "s92_08.bin", 0x0080000, 0xbefc47df, BRF_GRA | CPS1_TILES },
- { "s92_10.bin", 0x0080000, 0x960687d5, BRF_GRA | CPS1_TILES },
- { "s92_11.bin", 0x0080000, 0x978ecd18, BRF_GRA | CPS1_TILES },
- { "s92_12.bin", 0x0080000, 0xd6ec9a0a, BRF_GRA | CPS1_TILES },
- { "s92_13.bin", 0x0080000, 0xed2c67f6, BRF_GRA | CPS1_TILES },
-
- { "s92_09.bin", 0x0010000, 0x08f6b60e, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "s92_18.bin", 0x0020000, 0x7f162009, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "s92_19.bin", 0x0020000, 0xbeade53f, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- // extra graphics roms are required (see bike's on Chun-Li stage), but using the current dumps we have lead to a corrupt
- // Street Fighter II logo (it's the only set that shows the ' after the logo
-};
-
-STD_ROM_PICK(Sf2amf4)
-STD_ROM_FN(Sf2amf4)
-
-static struct BurnRomInfo Sf2amf5RomDesc[] = {
- // this set was previously known as sf2th
-// This was the original dump (JacKc found that if you split it into 4 then parts 2, 3 and 4 match u196 from sf2m5)
-// The first 128Kb of the original dump appears to be missing data, and we are assuming that the dump is bad and using
-// the u196 dump instead
-// { "stf2th-5.bin", 0x0080000, 0x3127302c, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "stf2th-7.bin", 0x0080000, 0x03991fba, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "stf2th-5.bin", 0x0080000, 0x39f15a1e, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "stf2th-6.bin", 0x0020000, 0x64e6e091, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "stf2th-4.bin", 0x0020000, 0xc95e4443, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "s92_01.bin", 0x0080000, 0x03b0d852, BRF_GRA | CPS1_TILES },
- { "s92_02.bin", 0x0080000, 0x840289ec, BRF_GRA | CPS1_TILES },
- { "s92_03.bin", 0x0080000, 0xcdb5f027, BRF_GRA | CPS1_TILES },
- { "s92_04.bin", 0x0080000, 0xe2799472, BRF_GRA | CPS1_TILES },
- { "s92_05.bin", 0x0080000, 0xba8a2761, BRF_GRA | CPS1_TILES },
- { "s92_06.bin", 0x0080000, 0xe584bfb5, BRF_GRA | CPS1_TILES },
- { "s92_07.bin", 0x0080000, 0x21e3f87d, BRF_GRA | CPS1_TILES },
- { "s92_08.bin", 0x0080000, 0xbefc47df, BRF_GRA | CPS1_TILES },
- { "s92_10.bin", 0x0080000, 0x960687d5, BRF_GRA | CPS1_TILES },
- { "s92_11.bin", 0x0080000, 0x978ecd18, BRF_GRA | CPS1_TILES },
- { "s92_12.bin", 0x0080000, 0xd6ec9a0a, BRF_GRA | CPS1_TILES },
- { "s92_13.bin", 0x0080000, 0xed2c67f6, BRF_GRA | CPS1_TILES },
-
- { "s92_09.bin", 0x0010000, 0x08f6b60e, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "s92_18.bin", 0x0020000, 0x7f162009, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "s92_19.bin", 0x0020000, 0xbeade53f, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- { "stf2th-10.bin", 0x020000, 0x84427d1b, BRF_GRA | CPS1_EXTRA_TILES_400000 },
- { "stf2th-12.bin", 0x020000, 0x55bc790c, BRF_GRA | CPS1_EXTRA_TILES_400000 },
- { "stf2th-9.bin", 0x020000, 0xf8725add, BRF_GRA | CPS1_EXTRA_TILES_400000 },
- { "stf2th-11.bin", 0x020000, 0xc2a5373e, BRF_GRA | CPS1_EXTRA_TILES_400000 },
-
- { "sf2th-8.bin", 0x010000, 0x13ea1c44, BRF_OPT }, // unknown
-};
-
-STD_ROM_PICK(Sf2amf5)
-STD_ROM_FN(Sf2amf5)
-
-static struct BurnRomInfo Sf2amf6RomDesc[] = {
- // this set was previously known as sf2tha
- { "t-2.u52", 0x0080000, 0x0d305e8b, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "t-1.u36", 0x0080000, 0x137d8665, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "t-4.u54", 0x0040000, 0x0b3fe5dd, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "t-3.u38", 0x0040000, 0xdbee7b18, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "w03.bin", 0x0080000, 0x03b0d852, BRF_GRA | CPS1_TILES },
- { "w05.bin", 0x0080000, 0x840289ec, BRF_GRA | CPS1_TILES },
- { "w04.bin", 0x0080000, 0xcdb5f027, BRF_GRA | CPS1_TILES },
- { "w06.bin", 0x0080000, 0xe2799472, BRF_GRA | CPS1_TILES },
- { "w07.bin", 0x0080000, 0xba8a2761, BRF_GRA | CPS1_TILES },
- { "w09.bin", 0x0080000, 0xe584bfb5, BRF_GRA | CPS1_TILES },
- { "w08.bin", 0x0080000, 0x21e3f87d, BRF_GRA | CPS1_TILES },
- { "w10.bin", 0x0080000, 0xbefc47df, BRF_GRA | CPS1_TILES },
- { "w11.bin", 0x0080000, 0x960687d5, BRF_GRA | CPS1_TILES },
- { "w13.bin", 0x0080000, 0x978ecd18, BRF_GRA | CPS1_TILES },
- { "w12.bin", 0x0080000, 0xd6ec9a0a, BRF_GRA | CPS1_TILES },
- { "w14.bin", 0x0080000, 0xed2c67f6, BRF_GRA | CPS1_TILES },
-
- { "s92_09.bin", 0x0010000, 0x08f6b60e, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "s92_18.bin", 0x0020000, 0x7f162009, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "s92_19.bin", 0x0020000, 0xbeade53f, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- { "r04.bin", 0x020000, 0x84427d1b, BRF_GRA | CPS1_EXTRA_TILES_400000 },
- { "r06.bin", 0x020000, 0x55bc790c, BRF_GRA | CPS1_EXTRA_TILES_400000 },
- { "r03.bin", 0x020000, 0xf8725add, BRF_GRA | CPS1_EXTRA_TILES_400000 },
- { "r05.bin", 0x020000, 0xc2a5373e, BRF_GRA | CPS1_EXTRA_TILES_400000 },
-
- { "g01.bin", 0x010000, 0x13ea1c44, BRF_OPT }, // unknown
-
- { "palce16v8h-7.u35", 0x006462, 0x4ce28f4a, BRF_OPT },
- { "plhs16l8an-8.u1", 0x001946, 0x50852ce7, BRF_OPT },
- { "palce16v8h-9.u34", 0x003254, 0xfeb26c41, BRF_OPT },
- { "plhs16l8an-x.u19", 0x001946, 0x63d7d7ba, BRF_OPT },
-};
-
-STD_ROM_PICK(Sf2amf6)
-STD_ROM_FN(Sf2amf6)
-
-static struct BurnRomInfo Sf2amf7RomDesc[] = {
- { "2.u222", 0x080000, 0x3a7a78f8, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "1.u196", 0x080000, 0x6a3cb7ac, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "4.u221", 0x040000, 0xb0bb6242, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "3.u195", 0x040000, 0xf516e578, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "y.c.e.c m.k.r-001.u70", 0x100000, 0xa258de13, BRF_GRA | CPS1_TILES },
- { "y.c.e.c.m.k.r-003.u68", 0x100000, 0xc781bf87, BRF_GRA | CPS1_TILES },
- { "y.c.e.c.m.k.r-002.u69", 0x100000, 0x5726cab8, BRF_GRA | CPS1_TILES },
- { "y.c.e.c.d.w.c-011.u64", 0x100000, 0xbc90c12f, BRF_GRA | CPS1_TILES },
- { "y.c.e.c.d.w.c-012.u19", 0x100000, 0x187667cc, BRF_GRA | CPS1_TILES },
- { "y.c.e.c.d.w.c-013.u18", 0x100000, 0x5b585071, BRF_GRA | CPS1_TILES },
-
- { "sound.u191", 0x010000, 0xa4823a1b, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "voice.u210", 0x040000, 0x6cfffb11, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- { "grp1.u31", 0x020000, 0x6de44671, BRF_GRA | CPS1_EXTRA_TILES_SF2B_400000 },
- { "grp3.u29", 0x020000, 0xe8f14362, BRF_GRA | CPS1_EXTRA_TILES_SF2B_400000 },
- { "grp2.u30", 0x020000, 0xbf0cd819, BRF_GRA | CPS1_EXTRA_TILES_SF2B_400000 },
- { "grp4.u28", 0x020000, 0x76f9f91f, BRF_GRA | CPS1_EXTRA_TILES_SF2B_400000 },
-
- { "conv.u133", 0x010000, 0x13ea1c44, BRF_OPT }, // unknown
-};
-
-STD_ROM_PICK(Sf2amf7)
-STD_ROM_FN(Sf2amf7)
-
-static struct BurnRomInfo Sf2amf8RomDesc[] = {
- // this set was previously known as sf2m5
- { "u222", 0x0080000, 0x03991fba, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "u196", 0x0080000, 0x39f15a1e, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "s92_21a.bin", 0x0080000, 0x925a7877, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "s92_01.bin", 0x0080000, 0x03b0d852, BRF_GRA | CPS1_TILES },
- { "s92_02.bin", 0x0080000, 0x840289ec, BRF_GRA | CPS1_TILES },
- { "s92_03.bin", 0x0080000, 0xcdb5f027, BRF_GRA | CPS1_TILES },
- { "s92_04.bin", 0x0080000, 0xe2799472, BRF_GRA | CPS1_TILES },
- { "s92_05.bin", 0x0080000, 0xba8a2761, BRF_GRA | CPS1_TILES },
- { "s92_06.bin", 0x0080000, 0xe584bfb5, BRF_GRA | CPS1_TILES },
- { "s92_07.bin", 0x0080000, 0x21e3f87d, BRF_GRA | CPS1_TILES },
- { "s92_08.bin", 0x0080000, 0xbefc47df, BRF_GRA | CPS1_TILES },
- { "s92_10.bin", 0x0080000, 0x960687d5, BRF_GRA | CPS1_TILES },
- { "s92_11.bin", 0x0080000, 0x978ecd18, BRF_GRA | CPS1_TILES },
- { "s92_12.bin", 0x0080000, 0xd6ec9a0a, BRF_GRA | CPS1_TILES },
- { "s92_13.bin", 0x0080000, 0xed2c67f6, BRF_GRA | CPS1_TILES },
-
- { "s92_09.bin", 0x0010000, 0x08f6b60e, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "s92_18.bin", 0x0020000, 0x7f162009, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "s92_19.bin", 0x0020000, 0xbeade53f, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- // these weren't present with this set, but extra graphics are required (see bike's on Chun-Li stage)
- { "6.amf", 0x020000, 0x3a85a275, BRF_GRA | CPS1_EXTRA_TILES_SF2EBBL_400000 },
- { "9.amf", 0x020000, 0x9156472f, BRF_GRA | CPS1_EXTRA_TILES_SF2EBBL_400000 },
- { "8.amf", 0x020000, 0xecdb083b, BRF_GRA | CPS1_EXTRA_TILES_SF2EBBL_400000 },
- { "10.amf", 0x020000, 0x8fea8384, BRF_GRA | CPS1_EXTRA_TILES_SF2EBBL_400000 },
-};
-
-STD_ROM_PICK(Sf2amf8)
-STD_ROM_FN(Sf2amf8)
-
-static struct BurnRomInfo Sf2megaRomDesc[] = {
- // this set was previously known as sf2m2
- { "ch222esp", 0x0080000, 0x9e6d058a, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "ch196esp", 0x0080000, 0xed2ff437, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "s92_21a.bin", 0x0080000, 0x925a7877, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "s92_01.bin", 0x0080000, 0x03b0d852, BRF_GRA | CPS1_TILES },
- { "s92_02.bin", 0x0080000, 0x840289ec, BRF_GRA | CPS1_TILES },
- { "s92_03.bin", 0x0080000, 0xcdb5f027, BRF_GRA | CPS1_TILES },
- { "s92_04.bin", 0x0080000, 0xe2799472, BRF_GRA | CPS1_TILES },
- { "s92_05.bin", 0x0080000, 0xba8a2761, BRF_GRA | CPS1_TILES },
- { "s92_06.bin", 0x0080000, 0xe584bfb5, BRF_GRA | CPS1_TILES },
- { "s92_07.bin", 0x0080000, 0x21e3f87d, BRF_GRA | CPS1_TILES },
- { "s92_08.bin", 0x0080000, 0xbefc47df, BRF_GRA | CPS1_TILES },
- { "s92_10.bin", 0x0080000, 0x960687d5, BRF_GRA | CPS1_TILES },
- { "s92_11.bin", 0x0080000, 0x978ecd18, BRF_GRA | CPS1_TILES },
- { "s92_12.bin", 0x0080000, 0xd6ec9a0a, BRF_GRA | CPS1_TILES },
- { "s92_13.bin", 0x0080000, 0xed2c67f6, BRF_GRA | CPS1_TILES },
-
- { "s92_09.bin", 0x0010000, 0x08f6b60e, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "s92_18.bin", 0x0020000, 0x7f162009, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "s92_19.bin", 0x0020000, 0xbeade53f, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- // these weren't present with this set, but extra graphics are required (see bike's on Chun-Li stage)
- { "6.amf", 0x020000, 0x3a85a275, BRF_GRA | CPS1_EXTRA_TILES_SF2EBBL_400000 },
- { "9.amf", 0x020000, 0x9156472f, BRF_GRA | CPS1_EXTRA_TILES_SF2EBBL_400000 },
- { "8.amf", 0x020000, 0xecdb083b, BRF_GRA | CPS1_EXTRA_TILES_SF2EBBL_400000 },
- { "10.amf", 0x020000, 0x8fea8384, BRF_GRA | CPS1_EXTRA_TILES_SF2EBBL_400000 },
-};
-
-STD_ROM_PICK(Sf2mega)
-STD_ROM_FN(Sf2mega)
-
-static struct BurnRomInfo Sf2mega2RomDesc[] = {
- // this set was previously known as sf2m9
- { "sf3a-1.040", 0x0080000, 0x9e6d058a, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf3a-3.040", 0x0080000, 0x518d8404, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf3a-2", 0x0020000, 0xfca4fc1e, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf3a-4", 0x0020000, 0xcfdd6f54, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "s92_01.bin", 0x0080000, 0x03b0d852, BRF_GRA | CPS1_TILES },
- { "s92_02.bin", 0x0080000, 0x840289ec, BRF_GRA | CPS1_TILES },
- { "s92_03.bin", 0x0080000, 0xcdb5f027, BRF_GRA | CPS1_TILES },
- { "s92_04.bin", 0x0080000, 0xe2799472, BRF_GRA | CPS1_TILES },
- { "s92_05.bin", 0x0080000, 0xba8a2761, BRF_GRA | CPS1_TILES },
- { "s92_06.bin", 0x0080000, 0xe584bfb5, BRF_GRA | CPS1_TILES },
- { "s92_07.bin", 0x0080000, 0x21e3f87d, BRF_GRA | CPS1_TILES },
- { "s92_08.bin", 0x0080000, 0xbefc47df, BRF_GRA | CPS1_TILES },
- { "s92_10.bin", 0x0080000, 0x960687d5, BRF_GRA | CPS1_TILES },
- { "s92_11.bin", 0x0080000, 0x978ecd18, BRF_GRA | CPS1_TILES },
- { "s92_12.bin", 0x0080000, 0xd6ec9a0a, BRF_GRA | CPS1_TILES },
- { "s92_13.bin", 0x0080000, 0xed2c67f6, BRF_GRA | CPS1_TILES },
-
- { "s92_09.bin", 0x0010000, 0x08f6b60e, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "s92_18.bin", 0x0020000, 0x7f162009, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "s92_19.bin", 0x0020000, 0xbeade53f, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- // these weren't present with this set, but extra graphics are required (see bike's on Chun-Li stage)
- { "6.amf", 0x020000, 0x3a85a275, BRF_GRA | CPS1_EXTRA_TILES_SF2EBBL_400000 },
- { "9.amf", 0x020000, 0x9156472f, BRF_GRA | CPS1_EXTRA_TILES_SF2EBBL_400000 },
- { "8.amf", 0x020000, 0xecdb083b, BRF_GRA | CPS1_EXTRA_TILES_SF2EBBL_400000 },
- { "10.amf", 0x020000, 0x8fea8384, BRF_GRA | CPS1_EXTRA_TILES_SF2EBBL_400000 },
-};
-
-STD_ROM_PICK(Sf2mega2)
-STD_ROM_FN(Sf2mega2)
-
-static struct BurnRomInfo Sf2mdRomDesc[] = {
- { "27040.6", 0x0080000, 0x16c6372e, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "27040.5", 0x0080000, 0x137d5f2e, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "27010.4", 0x0020000, 0x8226c11c, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "27010.3", 0x0020000, 0x924c6ce2, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "tat-01.bin", 0x0080000, 0xa887f7d4, BRF_GRA | CPS1_TILES },
- { "tat-03.bin", 0x0080000, 0x79fa8bf0, BRF_GRA | CPS1_TILES },
- { "tat-05.bin", 0x0080000, 0x9390ff23, BRF_GRA | CPS1_TILES },
- { "tat-07.bin", 0x0080000, 0x6a5f153c, BRF_GRA | CPS1_TILES },
- { "tat-02.bin", 0x0080000, 0xafb3b589, BRF_GRA | CPS1_TILES },
- { "tat-04.bin", 0x0080000, 0x32518120, BRF_GRA | CPS1_TILES },
- { "tat-06.bin", 0x0080000, 0x90f2053e, BRF_GRA | CPS1_TILES },
- { "tat-08.bin", 0x0080000, 0xc16579ae, BRF_GRA | CPS1_TILES },
- { "tat-09.bin", 0x0080000, 0x169d85a6, BRF_GRA | CPS1_TILES },
- { "tat-10.bin", 0x0080000, 0x0c638630, BRF_GRA | CPS1_TILES },
- { "tat-11.bin", 0x0080000, 0x32a3a841, BRF_GRA | CPS1_TILES },
- { "tat-12.bin", 0x0080000, 0x6ee19b94, BRF_GRA | CPS1_TILES },
-
- { "27512.1", 0x0010000, 0x08f6b60e, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "27020.2", 0x0040000, 0x6cfffb11, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- { "gal20v8.68kadd", 0x000157, 0xb7fbcc26, BRF_OPT },
-};
-
-STD_ROM_PICK(Sf2md)
-STD_ROM_FN(Sf2md)
-
-static struct BurnRomInfo Sf2mdtRomDesc[] = {
- { "3.ic172", 0x0080000, 0x5301b41f, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "1.ic171", 0x0080000, 0xc1c803f6, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "4.ic176", 0x0020000, 0x1073b7b6, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "2.ic175", 0x0020000, 0x924c6ce2, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "7.ic90", 0x0080000, 0x896eaf48, BRF_GRA | CPS1_TILES },
- { "13.ic89", 0x0080000, 0x305dd72a, BRF_GRA | CPS1_TILES },
- { "10.ic88", 0x0080000, 0xef3f5be8, BRF_GRA | CPS1_TILES },
- { "16.ic87", 0x0080000, 0xe57f6db9, BRF_GRA | CPS1_TILES },
- { "6.ic91", 0x0080000, 0x054cd5c4, BRF_GRA | CPS1_TILES },
- { "12.ic92", 0x0080000, 0x87e069e8, BRF_GRA | CPS1_TILES },
- { "9.ic93", 0x0080000, 0x818ca33d, BRF_GRA | CPS1_TILES },
- { "15.ic94", 0x0080000, 0x5dfb44d1, BRF_GRA | CPS1_TILES },
- { "8.ic86", 0x0080000, 0x34bbb3fa, BRF_GRA | CPS1_TILES },
- { "14.ic85", 0x0080000, 0x7d9f1a67, BRF_GRA | CPS1_TILES },
- { "11.ic84", 0x0080000, 0xcea6d1d6, BRF_GRA | CPS1_TILES },
- { "17.ic83", 0x0080000, 0x91a9a05d, BRF_GRA | CPS1_TILES },
-
- { "5.ic26", 0x0020000, 0x17d5ba8a, BRF_PRG | CPS1_Z80_PROGRAM },
-
- // extra graphics roms are required (see bike's on Chun-Li stage), but using the current dumps we have lead to a corrupt
- // Street Fighter II logo
-};
-
-STD_ROM_PICK(Sf2mdt)
-STD_ROM_FN(Sf2mdt)
-
-static struct BurnRomInfo Sf2mdtaRomDesc[] = {
- { "3.mdta", 0x0080000, 0x9f544ef4, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "5.mdta", 0x0080000, 0xd76d6621, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "2.mdta", 0x0020000, 0x74844192, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "4.mdta", 0x0020000, 0xbd98ff15, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- // f205v has redumped pf4 sh058.ic89 with the same result, it reports an error on pin 30, assumed bad.
- // Instead we used pf4-sg072.bin from a sf2mdta alt set dump by ANY.
-// { "pf4 sh058.ic89", 0x0100000, 0x40fdf624, BRF_GRA | CPS1_TILES },
- { "pf4 sh058.ic89", 0x0100000, 0x16289710, BRF_GRA | CPS1_TILES }, // == pf4-sg072.bin
- { "pf7 sh072.ic92", 0x0100000, 0xfb78022e, BRF_GRA | CPS1_TILES },
- { "pf5 sh036.ic90", 0x0100000, 0x0a6be48b, BRF_GRA | CPS1_TILES },
- { "pf8 sh074.ic93", 0x0100000, 0x6258c7cf, BRF_GRA | CPS1_TILES },
- { "pf6 sh070.ic88", 0x0100000, 0x9b5b09d7, BRF_GRA | CPS1_TILES },
- { "pf9 sh001.ic91", 0x0100000, 0x9f25090e, BRF_GRA | CPS1_TILES },
-
- { "1.ic28", 0x0020000, 0xd5bee9cc, BRF_PRG | CPS1_Z80_PROGRAM },
-
- // extra graphics roms are required (see bike's on Chun-Li stage), but using the current dumps we have lead to a corrupt
- // Street Fighter II logo
-};
-
-STD_ROM_PICK(Sf2mdta)
-STD_ROM_FN(Sf2mdta)
-
-static struct BurnRomInfo Sf2mdtbRomDesc[] = {
- { "3.ic172", 0x0080000, 0x0bdb9da2, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "1.ic171", 0x0080000, 0xd88abbce, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "4.ic176", 0x0020000, 0x74844192, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "2.ic175", 0x0020000, 0xbd98ff15, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "7.ic90", 0x0080000, 0x896eaf48, BRF_GRA | CPS1_TILES },
- { "13.ic89", 0x0080000, 0x305dd72a, BRF_GRA | CPS1_TILES },
- { "10.ic88", 0x0080000, 0xef3f5be8, BRF_GRA | CPS1_TILES },
- { "16.ic87", 0x0080000, 0xe57f6db9, BRF_GRA | CPS1_TILES },
- { "6.ic91", 0x0080000, 0x054cd5c4, BRF_GRA | CPS1_TILES },
- { "12.ic92", 0x0080000, 0x87e069e8, BRF_GRA | CPS1_TILES },
- { "9.ic93", 0x0080000, 0x818ca33d, BRF_GRA | CPS1_TILES },
- { "15.ic94", 0x0080000, 0x5dfb44d1, BRF_GRA | CPS1_TILES },
- { "8.ic86", 0x0080000, 0x34bbb3fa, BRF_GRA | CPS1_TILES },
- { "14.ic85", 0x0080000, 0x7d9f1a67, BRF_GRA | CPS1_TILES },
- { "11.ic84", 0x0080000, 0xcea6d1d6, BRF_GRA | CPS1_TILES },
- { "17.ic83", 0x0080000, 0x91a9a05d, BRF_GRA | CPS1_TILES },
-
- { "5.ic28", 0x0020000, 0xd5bee9cc, BRF_PRG | CPS1_Z80_PROGRAM },
-
- // extra graphics roms are required (see bike's on Chun-Li stage), but using the current dumps we have lead to a corrupt
- // Street Fighter II logo
-};
-
-STD_ROM_PICK(Sf2mdtb)
-STD_ROM_FN(Sf2mdtb)
-
-static struct BurnRomInfo Sf2mdtcRomDesc[] = {
- // f205v id 1396
- // PCB marked: 110-09-91 CH35/1
- { "3.ic171", 0x0080000, 0x9f544ef4, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "5.ic171", 0x0080000, 0xd76d6621, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "2.ic171", 0x0020000, 0x74844192, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "4.ic171", 0x0020000, 0xbd98ff15, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "pf4-sg072.ic90", 0x0100000, 0x446575c7, BRF_GRA | CPS1_TILES },
- { "pf7-sg088.ic88", 0x0100000, 0xfb78022e, BRF_GRA | CPS1_TILES },
- { "pf5-sg095.ic91", 0x0100000, 0x0a6be48b, BRF_GRA | CPS1_TILES },
- { "pf8-sg101.ic93", 0x0100000, 0x6258c7cf, BRF_GRA | CPS1_TILES },
- { "pf6-sg078.ic86", 0x0100000, 0x9b5b09d7, BRF_GRA | CPS1_TILES },
- { "pf9-sh001.ic84", 0x0100000, 0x9f25090e, BRF_GRA | CPS1_TILES },
-
- { "3.ic26", 0x0020000, 0xd5bee9cc, BRF_PRG | CPS1_Z80_PROGRAM },
-
- // extra graphics roms are required (see bike's on Chun-Li stage), but using the current dumps we have lead to a corrupt
- // Street Fighter II logo
-};
-
-STD_ROM_PICK(Sf2mdtc)
-STD_ROM_FN(Sf2mdtc)
-
-static struct BurnRomInfo Sf2ceeablRomDesc[] = {
- // this set was previously known as sf2m16
- { "joe-922", 0x0080000, 0xe927556c, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "joe-921", 0x0080000, 0x8632e786, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2m16_4.bin", 0x0020000, 0x1073b7b6, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf2m16_3.bin", 0x0020000, 0x924c6ce2, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "tat-01.bin", 0x0080000, 0xa887f7d4, BRF_GRA | CPS1_TILES },
- { "tat-03.bin", 0x0080000, 0x79fa8bf0, BRF_GRA | CPS1_TILES },
- { "tat-05.bin", 0x0080000, 0x9390ff23, BRF_GRA | CPS1_TILES },
- { "tat-07.bin", 0x0080000, 0x6a5f153c, BRF_GRA | CPS1_TILES },
- { "tat-02.bin", 0x0080000, 0xafb3b589, BRF_GRA | CPS1_TILES },
- { "tat-04.bin", 0x0080000, 0x32518120, BRF_GRA | CPS1_TILES },
- { "tat-06.bin", 0x0080000, 0x90f2053e, BRF_GRA | CPS1_TILES },
- { "tat-08.bin", 0x0080000, 0xc16579ae, BRF_GRA | CPS1_TILES },
- { "tat-09.bin", 0x0080000, 0x169d85a6, BRF_GRA | CPS1_TILES },
- { "tat-10.bin", 0x0080000, 0x0c638630, BRF_GRA | CPS1_TILES },
- { "tat-11.bin", 0x0080000, 0x32a3a841, BRF_GRA | CPS1_TILES },
- { "tat-12.bin", 0x0080000, 0x6ee19b94, BRF_GRA | CPS1_TILES },
-
- { "sf2m16_1.bin", 0x0010000, 0x08f6b60e, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "sf2m16_2.bin", 0x0040000, 0x6cfffb11, BRF_SND | CPS1_OKIM6295_SAMPLES },
-};
-
-STD_ROM_PICK(Sf2ceeabl)
-STD_ROM_FN(Sf2ceeabl)
-
-static struct BurnRomInfo Sf2ceeab2RomDesc[] = {
- // this set was previously known as sf2m1
- { "222e", 0x0080000, 0x1e20d0a3, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "196e", 0x0080000, 0x88cc38a3, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "s92_21a.bin", 0x0080000, 0x925a7877, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "s92_01.bin", 0x0080000, 0x03b0d852, BRF_GRA | CPS1_TILES },
- { "s92_02.bin", 0x0080000, 0x840289ec, BRF_GRA | CPS1_TILES },
- { "s92_03.bin", 0x0080000, 0xcdb5f027, BRF_GRA | CPS1_TILES },
- { "s92_04.bin", 0x0080000, 0xe2799472, BRF_GRA | CPS1_TILES },
- { "s92_05.bin", 0x0080000, 0xba8a2761, BRF_GRA | CPS1_TILES },
- { "s92_06.bin", 0x0080000, 0xe584bfb5, BRF_GRA | CPS1_TILES },
- { "s92_07.bin", 0x0080000, 0x21e3f87d, BRF_GRA | CPS1_TILES },
- { "s92_08.bin", 0x0080000, 0xbefc47df, BRF_GRA | CPS1_TILES },
- { "s92_10.bin", 0x0080000, 0x960687d5, BRF_GRA | CPS1_TILES },
- { "s92_11.bin", 0x0080000, 0x978ecd18, BRF_GRA | CPS1_TILES },
- { "s92_12.bin", 0x0080000, 0xd6ec9a0a, BRF_GRA | CPS1_TILES },
- { "s92_13.bin", 0x0080000, 0xed2c67f6, BRF_GRA | CPS1_TILES },
-
- { "s92_09.bin", 0x0010000, 0x08f6b60e, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "s92_18.bin", 0x0020000, 0x7f162009, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "s92_19.bin", 0x0020000, 0xbeade53f, BRF_SND | CPS1_OKIM6295_SAMPLES },
-};
-
-STD_ROM_PICK(Sf2ceeab2)
-STD_ROM_FN(Sf2ceeab2)
-
-static struct BurnRomInfo Sf2ceeab3RomDesc[] = {
- // f205v id 1395
- { "3.ic172", 0x0080000, 0x11b5fe98, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "1.ic171", 0x0080000, 0x6d948623, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "4.ic176", 0x0020000, 0x1073b7b6, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "2.ic175", 0x0020000, 0x924c6ce2, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "7.ic90", 0x0080000, 0x896eaf48, BRF_GRA | CPS1_TILES },
- { "13.ic89", 0x0080000, 0x305dd72a, BRF_GRA | CPS1_TILES },
- { "10.ic88", 0x0080000, 0xef3f5be8, BRF_GRA | CPS1_TILES },
- { "16.ic87", 0x0080000, 0xe57f6db9, BRF_GRA | CPS1_TILES },
- { "6.ic91", 0x0080000, 0x054cd5c4, BRF_GRA | CPS1_TILES },
- { "12.ic92", 0x0080000, 0x87e069e8, BRF_GRA | CPS1_TILES },
- { "9.ic93", 0x0080000, 0x818ca33d, BRF_GRA | CPS1_TILES },
- { "15.ic94", 0x0080000, 0x5dfb44d1, BRF_GRA | CPS1_TILES },
- { "8.ic86", 0x0080000, 0x34bbb3fa, BRF_GRA | CPS1_TILES },
- { "14.ic85", 0x0080000, 0x7d9f1a67, BRF_GRA | CPS1_TILES },
- { "11.ic84", 0x0080000, 0xcea6d1d6, BRF_GRA | CPS1_TILES },
- { "17.ic83", 0x0080000, 0x91a9a05d, BRF_GRA | CPS1_TILES },
-
- { "5.ic26", 0x0020000, 0x17d5ba8a, BRF_PRG | CPS1_Z80_PROGRAM },
-};
-
-STD_ROM_PICK(Sf2ceeab3)
-STD_ROM_FN(Sf2ceeab3)
-
-static struct BurnRomInfo Sf2ceeab4RomDesc[] = {
- // f20v id 1394
- { "3.ic172", 0x0080000, 0x30848e16, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "1.ic171", 0x0080000, 0x6d948623, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "4.ic176", 0x0020000, 0x1073b7b6, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "2.ic175", 0x0020000, 0x924c6ce2, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "7.ic90", 0x0080000, 0x896eaf48, BRF_GRA | CPS1_TILES },
- { "13.ic89", 0x0080000, 0x305dd72a, BRF_GRA | CPS1_TILES },
- { "10.ic88", 0x0080000, 0xef3f5be8, BRF_GRA | CPS1_TILES },
- { "16.ic87", 0x0080000, 0xe57f6db9, BRF_GRA | CPS1_TILES },
- { "6.ic91", 0x0080000, 0x054cd5c4, BRF_GRA | CPS1_TILES },
- { "12.ic92", 0x0080000, 0x87e069e8, BRF_GRA | CPS1_TILES },
- { "9.ic93", 0x0080000, 0x818ca33d, BRF_GRA | CPS1_TILES },
- { "15.ic94", 0x0080000, 0x5dfb44d1, BRF_GRA | CPS1_TILES },
- { "8.ic86", 0x0080000, 0x34bbb3fa, BRF_GRA | CPS1_TILES },
- { "14.ic85", 0x0080000, 0x7d9f1a67, BRF_GRA | CPS1_TILES },
- { "11.ic84", 0x0080000, 0xcea6d1d6, BRF_GRA | CPS1_TILES },
- { "17.ic83", 0x0080000, 0x91a9a05d, BRF_GRA | CPS1_TILES },
-
- { "5.ic26", 0x0020000, 0x17d5ba8a, BRF_PRG | CPS1_Z80_PROGRAM },
-};
-
-STD_ROM_PICK(Sf2ceeab4)
-STD_ROM_FN(Sf2ceeab4)
-
-
-static struct BurnRomInfo Sf2ceeab5RomDesc[] = {
- // f205v id 1400
- { "3.ic172", 0x0080000, 0x11b5fe98, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "5.ic171", 0x0080000, 0x43e85f2c, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "2.ic176", 0x0020000, 0x1073b7b6, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "4.ic175", 0x0020000, 0x924c6ce2, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "10.ic90", 0x0080000, 0x896eaf48, BRF_GRA | CPS1_TILES },
- { "16.ic89", 0x0080000, 0x305dd72a, BRF_GRA | CPS1_TILES },
- { "7.ic88", 0x0080000, 0xef3f5be8, BRF_GRA | CPS1_TILES },
- { "13.ic87", 0x0080000, 0xe57f6db9, BRF_GRA | CPS1_TILES },
- { "11.ic91", 0x0080000, 0x054cd5c4, BRF_GRA | CPS1_TILES },
- { "17.ic92", 0x0080000, 0x87e069e8, BRF_GRA | CPS1_TILES },
- { "8.ic93", 0x0080000, 0x818ca33d, BRF_GRA | CPS1_TILES },
- { "14.ic94", 0x0080000, 0x5dfb44d1, BRF_GRA | CPS1_TILES },
- { "9.ic86", 0x0080000, 0x34bbb3fa, BRF_GRA | CPS1_TILES },
- { "15.ic85", 0x0080000, 0x7d9f1a67, BRF_GRA | CPS1_TILES },
- { "6.ic84", 0x0080000, 0xcea6d1d6, BRF_GRA | CPS1_TILES },
- { "12.ic83", 0x0080000, 0x91a9a05d, BRF_GRA | CPS1_TILES },
-
- { "1.ic26", 0x0020000, 0x17d5ba8a, BRF_PRG | CPS1_Z80_PROGRAM },
-};
-
-STD_ROM_PICK(Sf2ceeab5)
-STD_ROM_FN(Sf2ceeab5)
-
-static struct BurnRomInfo Sf2cejablRomDesc[] = {
- // this set was previously known as sf2m11
- { "sfu7-1.040", 0x0080000, 0x866a9b31, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sfu7-3.040", 0x0080000, 0xf3a45593, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sfu7-2.010", 0x0020000, 0xd1707134, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sfu7-4.010", 0x0020000, 0xcd1d5666, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "s92_01.bin", 0x0080000, 0x03b0d852, BRF_GRA | CPS1_TILES },
- { "s92_02.bin", 0x0080000, 0x840289ec, BRF_GRA | CPS1_TILES },
- { "s92_03.bin", 0x0080000, 0xcdb5f027, BRF_GRA | CPS1_TILES },
- { "s92_04.bin", 0x0080000, 0xe2799472, BRF_GRA | CPS1_TILES },
- { "s92_05.bin", 0x0080000, 0xba8a2761, BRF_GRA | CPS1_TILES },
- { "s92_06.bin", 0x0080000, 0xe584bfb5, BRF_GRA | CPS1_TILES },
- { "s92_07.bin", 0x0080000, 0x21e3f87d, BRF_GRA | CPS1_TILES },
- { "s92_08.bin", 0x0080000, 0xbefc47df, BRF_GRA | CPS1_TILES },
- { "s92_10.bin", 0x0080000, 0x960687d5, BRF_GRA | CPS1_TILES },
- { "s92_11.bin", 0x0080000, 0x978ecd18, BRF_GRA | CPS1_TILES },
- { "s92_12.bin", 0x0080000, 0xd6ec9a0a, BRF_GRA | CPS1_TILES },
- { "s92_13.bin", 0x0080000, 0xed2c67f6, BRF_GRA | CPS1_TILES },
-
- { "s92_09.bin", 0x0010000, 0x08f6b60e, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "s92_18.bin", 0x0020000, 0x7f162009, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "s92_19.bin", 0x0020000, 0xbeade53f, BRF_SND | CPS1_OKIM6295_SAMPLES },
-};
-
-STD_ROM_PICK(Sf2cejabl)
-STD_ROM_FN(Sf2cejabl)
-
-static struct BurnRomInfo Sf2cejab2RomDesc[] = {
- { "u7-1.040", 0x0080000, 0x866a9b31, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "u7-3.040", 0x0080000, 0x49b15fcd, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "s92_21a.bin", 0x0080000, 0x925a7877, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "s92_01.bin", 0x0080000, 0x03b0d852, BRF_GRA | CPS1_TILES },
- { "s92_02.bin", 0x0080000, 0x840289ec, BRF_GRA | CPS1_TILES },
- { "s92_03.bin", 0x0080000, 0xcdb5f027, BRF_GRA | CPS1_TILES },
- { "s92_04.bin", 0x0080000, 0xe2799472, BRF_GRA | CPS1_TILES },
- { "s92_05.bin", 0x0080000, 0xba8a2761, BRF_GRA | CPS1_TILES },
- { "s92_06.bin", 0x0080000, 0xe584bfb5, BRF_GRA | CPS1_TILES },
- { "s92_07.bin", 0x0080000, 0x21e3f87d, BRF_GRA | CPS1_TILES },
- { "s92_08.bin", 0x0080000, 0xbefc47df, BRF_GRA | CPS1_TILES },
- { "s92_10.bin", 0x0080000, 0x960687d5, BRF_GRA | CPS1_TILES },
- { "s92_11.bin", 0x0080000, 0x978ecd18, BRF_GRA | CPS1_TILES },
- { "s92_12.bin", 0x0080000, 0xd6ec9a0a, BRF_GRA | CPS1_TILES },
- { "s92_13.bin", 0x0080000, 0xed2c67f6, BRF_GRA | CPS1_TILES },
-
- { "s92_09.bin", 0x0010000, 0x08f6b60e, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "s92_18.bin", 0x0020000, 0x7f162009, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "s92_19.bin", 0x0020000, 0xbeade53f, BRF_SND | CPS1_OKIM6295_SAMPLES },
-};
-
-STD_ROM_PICK(Sf2cejab2)
-STD_ROM_FN(Sf2cejab2)
-
-static struct BurnRomInfo Sf2ceuplRomDesc[] = {
- // Only the main program EPROMS were dumped for this set
- { "S2.U222", 0x0080000, 0x0804f973, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "S1.U196", 0x0080000, 0x2bc76a02, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "10.U221", 0x0020000, 0xd1707134, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "9.U195", 0x0020000, 0xcd1d5666, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "s92_01.3a", 0x0080000, 0x03b0d852, BRF_GRA | CPS1_TILES },
- { "s92_02.4a", 0x0080000, 0x840289ec, BRF_GRA | CPS1_TILES },
- { "s92_03.5a", 0x0080000, 0xcdb5f027, BRF_GRA | CPS1_TILES },
- { "s92_04.6a", 0x0080000, 0xe2799472, BRF_GRA | CPS1_TILES },
- { "s92_05.7a", 0x0080000, 0xba8a2761, BRF_GRA | CPS1_TILES },
- { "s92_06.8a", 0x0080000, 0xe584bfb5, BRF_GRA | CPS1_TILES },
- { "s92_07.9a", 0x0080000, 0x21e3f87d, BRF_GRA | CPS1_TILES },
- { "s92_08.10a", 0x0080000, 0xbefc47df, BRF_GRA | CPS1_TILES },
- { "s92_10.3c", 0x0080000, 0x960687d5, BRF_GRA | CPS1_TILES },
- { "s92_11.4c", 0x0080000, 0x978ecd18, BRF_GRA | CPS1_TILES },
- { "s92_12.5c", 0x0080000, 0xd6ec9a0a, BRF_GRA | CPS1_TILES },
- { "s92_13.6c", 0x0080000, 0xed2c67f6, BRF_GRA | CPS1_TILES },
-
- { "s92_09.12a", 0x0010000, 0x08f6b60e, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "s92_18.11c", 0x0020000, 0x7f162009, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "s92_19.12c", 0x0020000, 0xbeade53f, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "s9263b.1a", 0x000117, 0x0a7ecfe0, BRF_OPT }, // b-board PLDs
- { "iob1.12d", 0x000117, 0x3abc0700, BRF_OPT },
- { "bprg1.11d", 0x000117, 0x31793da7, BRF_OPT },
- { "ioc1.ic7", 0x000117, 0x0d182081, BRF_OPT }, // c-board PLDs
- { "c632.ic1", 0x000117, 0x0fbd9270, BRF_OPT },
-};
-
-STD_ROM_PICK(Sf2ceupl)
-STD_ROM_FN(Sf2ceupl)
-
-static struct BurnRomInfo Sf2ceuablRomDesc[] = {
- // this set was previously known as sf2m3
- { "u222chp", 0x0080000, 0xdb567b66, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "u196chp", 0x0080000, 0x95ea597e, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "s92_21a.bin", 0x0080000, 0x925a7877, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "s92_01.bin", 0x0080000, 0x03b0d852, BRF_GRA | CPS1_TILES },
- { "s92_02.bin", 0x0080000, 0x840289ec, BRF_GRA | CPS1_TILES },
- { "s92_03.bin", 0x0080000, 0xcdb5f027, BRF_GRA | CPS1_TILES },
- { "s92_04.bin", 0x0080000, 0xe2799472, BRF_GRA | CPS1_TILES },
- { "s92_05.bin", 0x0080000, 0xba8a2761, BRF_GRA | CPS1_TILES },
- { "s92_06.bin", 0x0080000, 0xe584bfb5, BRF_GRA | CPS1_TILES },
- { "s92_07.bin", 0x0080000, 0x21e3f87d, BRF_GRA | CPS1_TILES },
- { "s92_08.bin", 0x0080000, 0xbefc47df, BRF_GRA | CPS1_TILES },
- { "s92_10.bin", 0x0080000, 0x960687d5, BRF_GRA | CPS1_TILES },
- { "s92_11.bin", 0x0080000, 0x978ecd18, BRF_GRA | CPS1_TILES },
- { "s92_12.bin", 0x0080000, 0xd6ec9a0a, BRF_GRA | CPS1_TILES },
- { "s92_13.bin", 0x0080000, 0xed2c67f6, BRF_GRA | CPS1_TILES },
-
- { "s92_09.bin", 0x0010000, 0x08f6b60e, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "s92_18.bin", 0x0020000, 0x7f162009, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "s92_19.bin", 0x0020000, 0xbeade53f, BRF_SND | CPS1_OKIM6295_SAMPLES },
-};
-
-STD_ROM_PICK(Sf2ceuabl)
-STD_ROM_FN(Sf2ceuabl)
-
-static struct BurnRomInfo Sf2ceuab2RomDesc[] = {
- // this set was previously known as sf2m8
-// This was the original dump which was bad
-// { "u221.epr", 0x0020000, 0xd8276822, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "k4-222", 0x0080000, 0xdb567b66, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "k4-196", 0x0080000, 0x95ea597e, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "u221.epr", 0x0020000, 0x1073b7b6, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "u195.epr", 0x0020000, 0x924c6ce2, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "s92_01.bin", 0x0080000, 0x03b0d852, BRF_GRA | CPS1_TILES },
- { "s92_02.bin", 0x0080000, 0x840289ec, BRF_GRA | CPS1_TILES },
- { "s92_03.bin", 0x0080000, 0xcdb5f027, BRF_GRA | CPS1_TILES },
- { "s92_04.bin", 0x0080000, 0xe2799472, BRF_GRA | CPS1_TILES },
- { "s92_05.bin", 0x0080000, 0xba8a2761, BRF_GRA | CPS1_TILES },
- { "s92_06.bin", 0x0080000, 0xe584bfb5, BRF_GRA | CPS1_TILES },
- { "s92_07.bin", 0x0080000, 0x21e3f87d, BRF_GRA | CPS1_TILES },
- { "s92_08.bin", 0x0080000, 0xbefc47df, BRF_GRA | CPS1_TILES },
- { "s92_10.bin", 0x0080000, 0x960687d5, BRF_GRA | CPS1_TILES },
- { "s92_11.bin", 0x0080000, 0x978ecd18, BRF_GRA | CPS1_TILES },
- { "s92_12.bin", 0x0080000, 0xd6ec9a0a, BRF_GRA | CPS1_TILES },
- { "s92_13.bin", 0x0080000, 0xed2c67f6, BRF_GRA | CPS1_TILES },
-
- { "s92_09.bin", 0x0010000, 0x08f6b60e, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "s92_18.bin", 0x0020000, 0x7f162009, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "s92_19.bin", 0x0020000, 0xbeade53f, BRF_SND | CPS1_OKIM6295_SAMPLES },
-};
-
-STD_ROM_PICK(Sf2ceuab2)
-STD_ROM_FN(Sf2ceuab2)
-
-static struct BurnRomInfo Sf2ceuab3RomDesc[] = {
- // this set was previously known as sf2m8a
- { "yyc-2.2", 0x0080000, 0xdb567b66, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP }, // same as sf2m8
- { "yyc-3.4", 0x0080000, 0x95ea597e, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP }, // same as sf2m8
- { "yyc-4.1", 0x0020000, 0x1073b7b6, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP }, // same as sf2m8
- { "yyc-5.3", 0x0020000, 0x924c6ce2, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP }, // same as sf2m8
-
- { "yyc-a", 0x0100000, 0x8242621f, BRF_GRA | CPS1_TILES },
- { "yyc-c", 0x0100000, 0x0793a960, BRF_GRA | CPS1_TILES },
- { "yyc-b", 0x0100000, 0xb0159973, BRF_GRA | CPS1_TILES },
- { "yyc-d", 0x0100000, 0x92a8b572, BRF_GRA | CPS1_TILES },
- { "yyc-e", 0x0100000, 0x61138469, BRF_GRA | CPS1_TILES },
- { "yyc-f", 0x0100000, 0xb800dcdb, BRF_GRA | CPS1_TILES },
-
- { "a-15.5", 0x0010000, 0x6f07d2cb, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "b-16.6", 0x0040000, 0x6cfffb11, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- { "yyc-6.1", 0x0020000, 0x94778332, BRF_GRA | CPS1_EXTRA_TILES_SF2EBBL_400000 },
- { "yyc-8.9", 0x0020000, 0xf95bc505, BRF_GRA | CPS1_EXTRA_TILES_SF2EBBL_400000 },
- { "yyc-7.10", 0x0020000, 0xd1e452d3, BRF_GRA | CPS1_EXTRA_TILES_SF2EBBL_400000 },
- { "yyc-9.8", 0x0020000, 0x155824a9, BRF_GRA | CPS1_EXTRA_TILES_SF2EBBL_400000 },
-
- { "c-27.7", 0x0010000, 0x13ea1c44, BRF_OPT }, // unknown
-};
-
-STD_ROM_PICK(Sf2ceuab3)
-STD_ROM_FN(Sf2ceuab3)
-
-static struct BurnRomInfo Sf2ceuab4RomDesc[] = {
- { "6st-u196.u196", 0x0100000, 0x596609d4, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "6st-u10.u10", 0x0080000, 0xed4186bd, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "6st-u70.u70", 0x0100000, 0xbaa0f81f, BRF_GRA | CPS1_TILES },
- { "6st-u68.u68", 0x0100000, 0x8edff95a, BRF_GRA | CPS1_TILES },
- { "6st-u69.u69", 0x0100000, 0x468962b1, BRF_GRA | CPS1_TILES },
- { "6st-u64.u64", 0x0100000, 0x8165f536, BRF_GRA | CPS1_TILES },
- { "6st-u19.u19", 0x0100000, 0x39d763d3, BRF_GRA | CPS1_TILES },
- { "6st-u18.u18", 0x0100000, 0x2ddfe46e, BRF_GRA | CPS1_TILES },
-
- { "u191", 0x0010000, 0x08f6b60e, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "u210", 0x0040000, 0x6cfffb11, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- { "6st-u31.u31", 0x0040000, 0x35486f2d, BRF_GRA | CPS1_EXTRA_TILES_SF2KORYU_400000 },
- { "6st-u29.u29", 0x0040000, 0xe4eca601, BRF_GRA | CPS1_EXTRA_TILES_SF2KORYU_400000 },
-
- { "u133", 0x0010000, 0x13ea1c44, BRF_OPT }, // unknown
-};
-
-STD_ROM_PICK(Sf2ceuab4)
-STD_ROM_FN(Sf2ceuab4)
-
-static struct BurnRomInfo Sf2ceuab5RomDesc[] = {
- { "7.bin", 0x080000, 0xdb567b66, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP }, // same as sf2m8
- { "5.bin", 0x080000, 0x95ea597e, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP }, // same as sf2m8
- { "6.bin", 0x020000, 0x1073b7b6, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP }, // same as sf2m8
- { "4.bin", 0x020000, 0x924c6ce2, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP }, // same as sf2m8
-
- // not in the original dump (see below)
- { "s92_01.bin", 0x0080000, 0x03b0d852, BRF_GRA | CPS1_TILES },
- { "s92_02.bin", 0x0080000, 0x840289ec, BRF_GRA | CPS1_TILES },
- { "s92_03.bin", 0x0080000, 0xcdb5f027, BRF_GRA | CPS1_TILES },
- { "s92_04.bin", 0x0080000, 0xe2799472, BRF_GRA | CPS1_TILES },
- { "s92_05.bin", 0x0080000, 0xba8a2761, BRF_GRA | CPS1_TILES },
- { "s92_06.bin", 0x0080000, 0xe584bfb5, BRF_GRA | CPS1_TILES },
- { "s92_07.bin", 0x0080000, 0x21e3f87d, BRF_GRA | CPS1_TILES },
- { "s92_08.bin", 0x0080000, 0xbefc47df, BRF_GRA | CPS1_TILES },
- { "s92_10.bin", 0x0080000, 0x960687d5, BRF_GRA | CPS1_TILES },
- { "s92_11.bin", 0x0080000, 0x978ecd18, BRF_GRA | CPS1_TILES },
- { "s92_12.bin", 0x0080000, 0xd6ec9a0a, BRF_GRA | CPS1_TILES },
- { "s92_13.bin", 0x0080000, 0xed2c67f6, BRF_GRA | CPS1_TILES },
-
- { "s92_09.11a", 0x010000, 0x08f6b60e, BRF_PRG | CPS1_Z80_PROGRAM }, // this was missing from dump, but the pcm data is the same, so assuming the z80 program is too
-
- { "2.bin", 0x040000, 0x06dec6cd, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- { "9.bin", 0x020000, 0x94778332, BRF_GRA | CPS1_EXTRA_TILES_SF2EBBL_400000 },
- { "17.bin", 0x020000, 0xf95bc505, BRF_GRA | CPS1_EXTRA_TILES_SF2EBBL_400000 },
- { "10.bin", 0x020000, 0xd1e452d3, BRF_GRA | CPS1_EXTRA_TILES_SF2EBBL_400000 },
- { "18.bin", 0x020000, 0x155824a9, BRF_GRA | CPS1_EXTRA_TILES_SF2EBBL_400000 },
-
- { "8.bin", 0x010000, 0x13ea1c44, BRF_OPT }, // unknown
-
- // original gfx files (these are in similar format to the tat-x gfx roms with each half swapped,
- // however, only about 60% of the data is the same and each of these compress to approx. 52-55%
- // of the others, I believe these are bad dumps
- // romcmp also reports BADADDR -xxx-xxxxxxxxxxxxxx for each one
- { "11.bin", 0x080000, 0xc5430b62, BRF_OPT },
- { "13.bin", 0x080000, 0xe57f4114, BRF_OPT },
- { "12.bin", 0x080000, 0x9a3672e9, BRF_OPT },
- { "14.bin", 0x080000, 0x36b69ebd, BRF_OPT },
- { "19.bin", 0x080000, 0xadb33f90, BRF_OPT },
- { "21.bin", 0x080000, 0xfacffca9, BRF_OPT },
- { "20.bin", 0x080000, 0x28b4c2d1, BRF_OPT },
- { "22.bin", 0x080000, 0xcb49e6a7, BRF_OPT },
- { "15.bin", 0x080000, 0x8c08c9bd, BRF_OPT },
- { "23.bin", 0x080000, 0xf613febd, BRF_OPT },
- { "16.bin", 0x080000, 0xf23b588b, BRF_OPT },
- { "24(__sf2ceuab5).bin", 0x080000, 0xb4f16226, BRF_OPT },
-};
-
-STD_ROM_PICK(Sf2ceuab5)
-STD_ROM_FN(Sf2ceuab5)
-
-static struct BurnRomInfo Sf2ceuab6RomDesc[] = {
- { "s92u_23a.8f", 0x0080000, 0xac44415b, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP }, // not in original dump
- { "s92_22a.7f", 0x0080000, 0x99f1cca4, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP }, // not in original dump
- { "6", 0x0020000, 0x1073b7b6, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "4", 0x0020000, 0x924c6ce2, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "7", 0x0020000, 0x8312d055, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP }, // loads over final part of s92u_23a.8f
- { "5", 0x0020000, 0xd0580ff2, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP }, // loads over final part of s92_22a.7f
-
- { "11", 0x0080000, 0xa887f7d4, BRF_GRA | CPS1_TILES },
- { "13", 0x0080000, 0x79fa8bf0, BRF_GRA | CPS1_TILES },
- { "12", 0x0080000, 0x9390ff23, BRF_GRA | CPS1_TILES },
- { "14", 0x0080000, 0x6a5f153c, BRF_GRA | CPS1_TILES },
- { "19", 0x0080000, 0xafb3b589, BRF_GRA | CPS1_TILES },
- { "21", 0x0080000, 0x32518120, BRF_GRA | CPS1_TILES },
- { "20", 0x0080000, 0x90f2053e, BRF_GRA | CPS1_TILES },
- { "22", 0x0080000, 0xc16579ae, BRF_GRA | CPS1_TILES },
- { "15", 0x0080000, 0x169d85a6, BRF_GRA | CPS1_TILES },
- { "23", 0x0080000, 0x0c638630, BRF_GRA | CPS1_TILES },
- { "16", 0x0080000, 0x32a3a841, BRF_GRA | CPS1_TILES },
- { "24", 0x0080000, 0x6ee19b94, BRF_GRA | CPS1_TILES },
-
- { "3", 0x0010000, 0x08f6b60e, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "2", 0x0020000, 0x7f162009, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "1", 0x0020000, 0xbeade53f, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- { "9", 0x0020000, 0x94778332, BRF_GRA | CPS1_EXTRA_TILES_SF2EBBL_400000 },
- { "17", 0x0020000, 0xf95bc505, BRF_GRA | CPS1_EXTRA_TILES_SF2EBBL_400000 },
- { "10", 0x0020000, 0xd1e452d3, BRF_GRA | CPS1_EXTRA_TILES_SF2EBBL_400000 },
- { "18", 0x0020000, 0x155824a9, BRF_GRA | CPS1_EXTRA_TILES_SF2EBBL_400000 },
-
- { "8", 0x0010000, 0x13ea1c44, BRF_OPT }, // unknown
-};
-
-STD_ROM_PICK(Sf2ceuab6)
-STD_ROM_FN(Sf2ceuab6)
-
-static struct BurnRomInfo Sf2ceuab7RomDesc[] = {
- // this set is known as sf2ceblp in MAME 0.153
- { "prg31.bin", 0x0020000, 0xea78f9b4, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "prg36.bin", 0x0020000, 0xd30c263e, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "prg30.bin", 0x0020000, 0x005b54cc, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "prg35.bin", 0x0020000, 0xc184d26d, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "prg29.bin", 0x0020000, 0x524f5c55, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "prg34.bin", 0x0020000, 0xf06a12f2, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "prg28.bin", 0x0040000, 0xb7ad5214, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "prg33.bin", 0x0040000, 0x6340b914, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "24.bin", 0x0040000, 0xa8b5633a, BRF_GRA | CPS1_TILES },
- { "20.bin", 0x0040000, 0x8d5d0045, BRF_GRA | CPS1_TILES },
- { "25.bin", 0x0040000, 0x72e923df, BRF_GRA | CPS1_TILES },
- { "21.bin", 0x0040000, 0x55c2b455, BRF_GRA | CPS1_TILES },
- { "14.bin", 0x0040000, 0x5db24ca7, BRF_GRA | CPS1_TILES },
- { "10.bin", 0x0040000, 0xeb48f7f2, BRF_GRA | CPS1_TILES },
- { "15.bin", 0x0040000, 0x9a96be48, BRF_GRA | CPS1_TILES },
- { "11.bin", 0x0040000, 0xff36859e, BRF_GRA | CPS1_TILES },
- { "26.bin", 0x0040000, 0x82e8e384, BRF_GRA | CPS1_TILES },
- { "22.bin", 0x0040000, 0x4109d637, BRF_GRA | CPS1_TILES },
- { "27.bin", 0x0040000, 0x4a3a8d09, BRF_GRA | CPS1_TILES },
- { "23.bin", 0x0040000, 0xef9c2d4d, BRF_GRA | CPS1_TILES },
- { "16.bin", 0x0040000, 0x1fd98ad0, BRF_GRA | CPS1_TILES },
- { "12.bin", 0x0040000, 0x5d21d8b3, BRF_GRA | CPS1_TILES },
- { "17.bin", 0x0040000, 0xa917a922, BRF_GRA | CPS1_TILES },
- { "13.bin", 0x0040000, 0xbc937c96, BRF_GRA | CPS1_TILES },
- { "6.bin", 0x0040000, 0x023baa18, BRF_GRA | CPS1_TILES },
- { "1.bin", 0x0040000, 0x877b2b18, BRF_GRA | CPS1_TILES },
- { "8.bin", 0x0040000, 0x26fb340c, BRF_GRA | CPS1_TILES },
- { "4.bin", 0x0040000, 0xf2c400b4, BRF_GRA | CPS1_TILES },
- { "5.bin", 0x0040000, 0xa6ad6ef3, BRF_GRA | CPS1_TILES },
- { "2.bin", 0x0040000, 0x144aa4c9, BRF_GRA | CPS1_TILES },
- { "7.bin", 0x0040000, 0xf56085ba, BRF_GRA | CPS1_TILES },
- { "3.bin", 0x0040000, 0x8053335d, BRF_GRA | CPS1_TILES },
-
- { "s92_09.bin", 0x0010000, 0x08f6b60e, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "s92_18.bin", 0x0020000, 0x7f162009, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "s92_19.bin", 0x0020000, 0xbeade53f, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- { "pic16c55", 0x0002000, 0xf22e2311, BRF_OPT }, // PIC
-};
-
-STD_ROM_PICK(Sf2ceuab7)
-STD_ROM_FN(Sf2ceuab7)
-
-static struct BurnRomInfo Sf2ceuab8RomDesc[] = {
- // f205v id 1404 & 1405
- { "7.bin", 0x080000, 0x74803532, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "5.bin", 0x080000, 0x66c91972, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "6.bin", 0x020000, 0x1073b7b6, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "4.bin", 0x020000, 0x924c6ce2, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "a-se235.bin", 0x100000, 0xa258de13, BRF_GRA | CPS1_TILES },
- { "c-se005.bin", 0x100000, 0xc781bf87, BRF_GRA | CPS1_TILES },
- { "b-se194.bin", 0x100000, 0x5726cab8, BRF_GRA | CPS1_TILES },
- { "d-se064.bin", 0x100000, 0x4dd24197, BRF_GRA | CPS1_TILES },
- { "e-sf004.bin", 0x100000, 0x187667cc, BRF_GRA | CPS1_TILES },
- { "f-sf001.bin", 0x100000, 0x5b585071, BRF_GRA | CPS1_TILES },
-
- { "3.bin", 0x010000, 0xa4823a1b, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "2.bin", 0x020000, 0x7f162009, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "1.bin", 0x020000, 0xbeade53f, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- { "10.bin", 0x020000, 0x84427d1b, BRF_GRA | CPS1_EXTRA_TILES_400000 },
- { "12.bin", 0x020000, 0x55bc790c, BRF_GRA | CPS1_EXTRA_TILES_400000 },
- { "9.bin", 0x020000, 0xf8725add, BRF_GRA | CPS1_EXTRA_TILES_400000 },
- { "11.bin", 0x020000, 0xc2a5373e, BRF_GRA | CPS1_EXTRA_TILES_400000 },
-
- { "8.bin", 0x010000, 0x13ea1c44, BRF_OPT }, // unknown
-};
-
-STD_ROM_PICK(Sf2ceuab8)
-STD_ROM_FN(Sf2ceuab8)
-
-static struct BurnRomInfo Sf2ceuab9RomDesc[] = {
- // f205v id 1403
- { "7.bin", 0x080000, 0x74803532, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "6.bin", 0x080000, 0x66c91972, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "5.bin", 0x020000, 0x1073b7b6, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "4.bin", 0x020000, 0x924c6ce2, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "wm91m-07_yd034", 0x080000, 0x22c9cc8e, BRF_GRA | CPS1_TILES }, // == sf2-5m.4a
- { "wm91m-12_yd021", 0x080000, 0x57213be8, BRF_GRA | CPS1_TILES }, // == sf2-7m.6a
- { "wm91m-01_yd403", 0x080000, 0xba529b4f, BRF_GRA | CPS1_TILES }, // == sf2-1m.3a
- { "wm91m-04_yd051", 0x080000, 0x4b1b33a8, BRF_GRA | CPS1_TILES }, // == sf2-3m.5a
- { "wm91m-08_yd062", 0x080000, 0x2c7e2229, BRF_GRA | CPS1_TILES }, // == sf2-6m.4c
- { "wm91m-10_yd032", 0x080000, 0xb5548f17, BRF_GRA | CPS1_TILES }, // == sf2-8m.6c
- { "wm91m-02_yd028", 0x080000, 0x14b84312, BRF_GRA | CPS1_TILES }, // == sf2-2m.3c
- { "wm91m-05_yd004", 0x080000, 0x5e9cd89a, BRF_GRA | CPS1_TILES }, // == sf2-4m.5c
- { "wm91m-09_yd024", 0x080000, 0x994bfa58, BRF_GRA | CPS1_TILES }, // == sf2-13m.4d
- { "wm91m-11_yd014", 0x080000, 0x3e66ad9d, BRF_GRA | CPS1_TILES }, // == sf2-15m.6d
- { "wm91m-03_yd036", 0x080000, 0xc1befaa8, BRF_GRA | CPS1_TILES }, // == sf2-9m.3d
- { "wm91m-06_yd009", 0x080000, 0x0627c831, BRF_GRA | CPS1_TILES }, // == sf2-11m.5d
-
- { "3.bin", 0x010000, 0xa4823a1b, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "2.bin", 0x020000, 0x7f162009, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "1.bin", 0x020000, 0xbeade53f, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- { "10.bin", 0x020000, 0x84427d1b, BRF_GRA | CPS1_EXTRA_TILES_400000 },
- { "12.bin", 0x020000, 0x55bc790c, BRF_GRA | CPS1_EXTRA_TILES_400000 },
- { "9.bin", 0x020000, 0xf8725add, BRF_GRA | CPS1_EXTRA_TILES_400000 },
- { "11.bin", 0x020000, 0xc2a5373e, BRF_GRA | CPS1_EXTRA_TILES_400000 },
-
- { "8.bin", 0x010000, 0x13ea1c44, BRF_OPT }, // unknown
-};
-
-STD_ROM_PICK(Sf2ceuab9)
-STD_ROM_FN(Sf2ceuab9)
-
-static struct BurnRomInfo Sf2ceucblRomDesc[] = {
- { "s92u_23c.8f", 0x080000, 0x0a8b6aa2, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP }, // not included in dump (matches first half of ym.u23)
- { "s92_22c.7f", 0x080000, 0x5fd8630b, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP }, // not included in dump (matches first half of ym.u22)
- { "s92_21a.6f", 0x080000, 0x925a7877, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP }, // not included in dump (nearly matches first half of ym.u21)
- { "ym.u23", 0x040000, 0xd6b39cc3, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP }, // this looks half-sized (loading over the top of above roms)
- { "ym.u22", 0x040000, 0xefa0a775, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP }, // this looks half-sized (loading over the top of above roms)
- { "ym.u21", 0x040000, 0xc812b7b2, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP }, // this looks half-sized (loading over the top of above roms)
-
- // not in the original dump (see below)
- { "s92_01.bin", 0x0080000, 0x03b0d852, BRF_GRA | CPS1_TILES },
- { "s92_02.bin", 0x0080000, 0x840289ec, BRF_GRA | CPS1_TILES },
- { "s92_03.bin", 0x0080000, 0xcdb5f027, BRF_GRA | CPS1_TILES },
- { "s92_04.bin", 0x0080000, 0xe2799472, BRF_GRA | CPS1_TILES },
- { "s92_05.bin", 0x0080000, 0xba8a2761, BRF_GRA | CPS1_TILES },
- { "s92_06.bin", 0x0080000, 0xe584bfb5, BRF_GRA | CPS1_TILES },
- { "s92_07.bin", 0x0080000, 0x21e3f87d, BRF_GRA | CPS1_TILES },
- { "s92_08.bin", 0x0080000, 0xbefc47df, BRF_GRA | CPS1_TILES },
- { "s92_10.bin", 0x0080000, 0x960687d5, BRF_GRA | CPS1_TILES },
- { "s92_11.bin", 0x0080000, 0x978ecd18, BRF_GRA | CPS1_TILES },
- { "s92_12.bin", 0x0080000, 0xd6ec9a0a, BRF_GRA | CPS1_TILES },
- { "s92_13.bin", 0x0080000, 0xed2c67f6, BRF_GRA | CPS1_TILES },
-
- { "s92_09.11a", 0x010000, 0x08f6b60e, BRF_PRG | CPS1_Z80_PROGRAM }, // this was missing from dump, but the pcm data is the same, so assuming the z80 program is too
-
- { "2.bin", 0x040000, 0x06dec6cd, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- // these weren't in this dump - but given the presence of the bad graphic rom dumps (from sf2ceuab5), I think these should be here too
- { "9.bin", 0x020000, 0x94778332, BRF_GRA | CPS1_EXTRA_TILES_SF2EBBL_400000 },
- { "17.bin", 0x020000, 0xf95bc505, BRF_GRA | CPS1_EXTRA_TILES_SF2EBBL_400000 },
- { "10.bin", 0x020000, 0xd1e452d3, BRF_GRA | CPS1_EXTRA_TILES_SF2EBBL_400000 },
- { "18.bin", 0x020000, 0x155824a9, BRF_GRA | CPS1_EXTRA_TILES_SF2EBBL_400000 },
-
- // original gfx files (these are in similar format to the tat-x gfx roms with each half swapped,
- // however, only about 60% of the data is the same and each of these compress to approx. 52-55%
- // of the others, I believe these are bad dumps
- // romcmp also reports BADADDR -xxx-xxxxxxxxxxxxxx for each one
- { "11.bin", 0x080000, 0xc5430b62, BRF_OPT },
- { "13.bin", 0x080000, 0xe57f4114, BRF_OPT },
- { "12.bin", 0x080000, 0x9a3672e9, BRF_OPT },
- { "14.bin", 0x080000, 0x36b69ebd, BRF_OPT },
- { "19.bin", 0x080000, 0xadb33f90, BRF_OPT },
- { "21.bin", 0x080000, 0xfacffca9, BRF_OPT },
- { "20.bin", 0x080000, 0x28b4c2d1, BRF_OPT },
- { "22.bin", 0x080000, 0xcb49e6a7, BRF_OPT },
- { "15.bin", 0x080000, 0x8c08c9bd, BRF_OPT },
- { "23.bin", 0x080000, 0xf613febd, BRF_OPT },
- { "16.bin", 0x080000, 0xf23b588b, BRF_OPT },
- { "24(__sf2ceucbl).bin", 0x080000, 0xb4f16226, BRF_OPT },
-};
-
-STD_ROM_PICK(Sf2ceucbl)
-STD_ROM_FN(Sf2ceucbl)
-
-static struct BurnRomInfo Sf2tlonaRomDesc[] = {
- // There is a set known as sf2tlond and sf2turyu which contains the same data, but has double-size program roms
- { "tl4mt.1", 0x080000, 0x158635ca, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "tl4m.2", 0x080000, 0x882cd1c4, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "u221t.1m", 0x020000, 0x1073b7b6, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "u195t.1m", 0x020000, 0xdb7e1f72, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "s92_01.bin", 0x080000, 0x03b0d852, BRF_GRA | CPS1_TILES },
- { "s92_02.bin", 0x080000, 0x840289ec, BRF_GRA | CPS1_TILES },
- { "s92_03.bin", 0x080000, 0xcdb5f027, BRF_GRA | CPS1_TILES },
- { "s92_04.bin", 0x080000, 0xe2799472, BRF_GRA | CPS1_TILES },
- { "s92_05.bin", 0x080000, 0xba8a2761, BRF_GRA | CPS1_TILES },
- { "s92_06.bin", 0x080000, 0xe584bfb5, BRF_GRA | CPS1_TILES },
- { "s92_07.bin", 0x080000, 0x21e3f87d, BRF_GRA | CPS1_TILES },
- { "s92_08.bin", 0x080000, 0xbefc47df, BRF_GRA | CPS1_TILES },
- { "s92_10.bin", 0x080000, 0x960687d5, BRF_GRA | CPS1_TILES },
- { "s92_11.bin", 0x080000, 0x978ecd18, BRF_GRA | CPS1_TILES },
- { "s92_12.bin", 0x080000, 0xd6ec9a0a, BRF_GRA | CPS1_TILES },
- { "s92_13.bin", 0x080000, 0xed2c67f6, BRF_GRA | CPS1_TILES },
-
- { "s92_09.bin", 0x010000, 0x08f6b60e, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "s92_18.bin", 0x020000, 0x7f162009, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "s92_19.bin", 0x020000, 0xbeade53f, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- // these weren't present with this set, but extra graphics are required (see bike's on Chun-Li stage)
- { "6.amf", 0x020000, 0x3a85a275, BRF_GRA | CPS1_EXTRA_TILES_SF2EBBL_400000 },
- { "9.amf", 0x020000, 0x9156472f, BRF_GRA | CPS1_EXTRA_TILES_SF2EBBL_400000 },
- { "8.amf", 0x020000, 0xecdb083b, BRF_GRA | CPS1_EXTRA_TILES_SF2EBBL_400000 },
- { "10.amf", 0x020000, 0x8fea8384, BRF_GRA | CPS1_EXTRA_TILES_SF2EBBL_400000 },
-};
-
-STD_ROM_PICK(Sf2tlona)
-STD_ROM_FN(Sf2tlona)
-
-static struct BurnRomInfo Sf2tlonbRomDesc[] = {
- // This set is also known as sf2tury2
- { "tl4m.1", 0x080000, 0xafc7bd18, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "tl4m.2", 0x080000, 0x882cd1c4, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "u221.1m", 0x020000, 0xd1707134, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "u195.1m", 0x020000, 0xcd1d5666, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "s92_01.bin", 0x080000, 0x03b0d852, BRF_GRA | CPS1_TILES },
- { "s92_02.bin", 0x080000, 0x840289ec, BRF_GRA | CPS1_TILES },
- { "s92_03.bin", 0x080000, 0xcdb5f027, BRF_GRA | CPS1_TILES },
- { "s92_04.bin", 0x080000, 0xe2799472, BRF_GRA | CPS1_TILES },
- { "s92_05.bin", 0x080000, 0xba8a2761, BRF_GRA | CPS1_TILES },
- { "s92_06.bin", 0x080000, 0xe584bfb5, BRF_GRA | CPS1_TILES },
- { "s92_07.bin", 0x080000, 0x21e3f87d, BRF_GRA | CPS1_TILES },
- { "s92_08.bin", 0x080000, 0xbefc47df, BRF_GRA | CPS1_TILES },
- { "s92_10.bin", 0x080000, 0x960687d5, BRF_GRA | CPS1_TILES },
- { "s92_11.bin", 0x080000, 0x978ecd18, BRF_GRA | CPS1_TILES },
- { "s92_12.bin", 0x080000, 0xd6ec9a0a, BRF_GRA | CPS1_TILES },
- { "s92_13.bin", 0x080000, 0xed2c67f6, BRF_GRA | CPS1_TILES },
-
- { "s92_09.bin", 0x010000, 0x08f6b60e, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "s92_18.bin", 0x020000, 0x7f162009, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "s92_19.bin", 0x020000, 0xbeade53f, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- // these weren't present with this set, but extra graphics are required (see bike's on Chun-Li stage)
- { "6.amf", 0x020000, 0x3a85a275, BRF_GRA | CPS1_EXTRA_TILES_SF2EBBL_400000 },
- { "9.amf", 0x020000, 0x9156472f, BRF_GRA | CPS1_EXTRA_TILES_SF2EBBL_400000 },
- { "8.amf", 0x020000, 0xecdb083b, BRF_GRA | CPS1_EXTRA_TILES_SF2EBBL_400000 },
- { "10.amf", 0x020000, 0x8fea8384, BRF_GRA | CPS1_EXTRA_TILES_SF2EBBL_400000 },
-};
-
-STD_ROM_PICK(Sf2tlonb)
-STD_ROM_FN(Sf2tlonb)
-
-static struct BurnRomInfo Sf2tloncRomDesc[] = {
- { "sf11-1.040", 0x080000, 0xafc7bd18, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf11-3.040", 0x080000, 0x882cd1c4, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf11-2.010", 0x020000, 0xf8a5cd53, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sf11-4.010", 0x020000, 0xdb7e1f72, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "s92_01.bin", 0x080000, 0x03b0d852, BRF_GRA | CPS1_TILES },
- { "s92_02.bin", 0x080000, 0x840289ec, BRF_GRA | CPS1_TILES },
- { "s92_03.bin", 0x080000, 0xcdb5f027, BRF_GRA | CPS1_TILES },
- { "s92_04.bin", 0x080000, 0xe2799472, BRF_GRA | CPS1_TILES },
- { "s92_05.bin", 0x080000, 0xba8a2761, BRF_GRA | CPS1_TILES },
- { "s92_06.bin", 0x080000, 0xe584bfb5, BRF_GRA | CPS1_TILES },
- { "s92_07.bin", 0x080000, 0x21e3f87d, BRF_GRA | CPS1_TILES },
- { "s92_08.bin", 0x080000, 0xbefc47df, BRF_GRA | CPS1_TILES },
- { "s92_10.bin", 0x080000, 0x960687d5, BRF_GRA | CPS1_TILES },
- { "s92_11.bin", 0x080000, 0x978ecd18, BRF_GRA | CPS1_TILES },
- { "s92_12.bin", 0x080000, 0xd6ec9a0a, BRF_GRA | CPS1_TILES },
- { "s92_13.bin", 0x080000, 0xed2c67f6, BRF_GRA | CPS1_TILES },
-
- { "s92_09.bin", 0x010000, 0x08f6b60e, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "s92_18.bin", 0x020000, 0x7f162009, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "s92_19.bin", 0x020000, 0xbeade53f, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- // these weren't present with this set, but extra graphics are required (see bike's on Chun-Li stage)
- { "6.amf", 0x020000, 0x3a85a275, BRF_GRA | CPS1_EXTRA_TILES_SF2EBBL_400000 },
- { "9.amf", 0x020000, 0x9156472f, BRF_GRA | CPS1_EXTRA_TILES_SF2EBBL_400000 },
- { "8.amf", 0x020000, 0xecdb083b, BRF_GRA | CPS1_EXTRA_TILES_SF2EBBL_400000 },
- { "10.amf", 0x020000, 0x8fea8384, BRF_GRA | CPS1_EXTRA_TILES_SF2EBBL_400000 },
-};
-
-STD_ROM_PICK(Sf2tlonc)
-STD_ROM_FN(Sf2tlonc)
-
-static struct BurnRomInfo Sf2sl73aRomDesc[] = {
- // Sheng Long Hack is based off of sf2m5.
- // It runs perfectly fine on an real sf2ce capcom cps1 arcade board.
- { "sf2ced_23b.8f", 0x080000, 0x190f5419, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "sf2ced_22b.7f", 0x080000, 0x2b329193, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "sf2ced_21a.6f", 0x080000, 0xb4f13bef, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "s92_01.bin", 0x0080000, 0x03b0d852, BRF_GRA | CPS1_TILES },
- { "s92_02.bin", 0x0080000, 0x840289ec, BRF_GRA | CPS1_TILES },
- { "s92_03.bin", 0x0080000, 0xcdb5f027, BRF_GRA | CPS1_TILES },
- { "s92_04.bin", 0x0080000, 0xe2799472, BRF_GRA | CPS1_TILES },
- { "s92_05.bin", 0x0080000, 0xba8a2761, BRF_GRA | CPS1_TILES },
- { "s92_06.bin", 0x0080000, 0xe584bfb5, BRF_GRA | CPS1_TILES },
- { "s92_07.bin", 0x0080000, 0x21e3f87d, BRF_GRA | CPS1_TILES },
- { "s92_08.bin", 0x0080000, 0xbefc47df, BRF_GRA | CPS1_TILES },
- { "s92_10.bin", 0x0080000, 0x960687d5, BRF_GRA | CPS1_TILES },
- { "s92_11.bin", 0x0080000, 0x978ecd18, BRF_GRA | CPS1_TILES },
- { "s92_12.bin", 0x0080000, 0xd6ec9a0a, BRF_GRA | CPS1_TILES },
- { "s92_13.bin", 0x0080000, 0xed2c67f6, BRF_GRA | CPS1_TILES },
-
- { "s92_09.bin", 0x0010000, 0x08f6b60e, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "sf2ced_18.11c", 0x0020000, 0xa446a596, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "s92_19.bin", 0x0020000, 0xbeade53f, BRF_SND | CPS1_OKIM6295_SAMPLES },
-};
-
-STD_ROM_PICK(Sf2sl73a)
-STD_ROM_FN(Sf2sl73a)
-
-static struct BurnRomInfo Sf2cebltwRomDesc[] = {
- { "27.12e", 0x020000, 0x035ee5d9, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "31.12f", 0x020000, 0x353dbde1, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "24.9e", 0x020000, 0x005b54cc, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "28.9f", 0x020000, 0xc184d26d, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "25.10e", 0x020000, 0x524f5c55, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "29.10f", 0x020000, 0xf06a12f2, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "26.11e", 0x020000, 0x8312d055, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "30.11f", 0x020000, 0xd0580ff2, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "s92_21a.5f", 0x080000, 0x925a7877, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "s92_01.bin", 0x080000, 0x03b0d852, BRF_GRA | CPS1_TILES },
- { "s92_02.bin", 0x080000, 0x840289ec, BRF_GRA | CPS1_TILES },
- { "s92_03.bin", 0x080000, 0xcdb5f027, BRF_GRA | CPS1_TILES },
- { "s92_04.bin", 0x080000, 0xe2799472, BRF_GRA | CPS1_TILES },
- { "s92_05.bin", 0x080000, 0xba8a2761, BRF_GRA | CPS1_TILES },
- { "s92_06.bin", 0x080000, 0xe584bfb5, BRF_GRA | CPS1_TILES },
- { "s92_07.bin", 0x080000, 0x21e3f87d, BRF_GRA | CPS1_TILES },
- { "s92_08.bin", 0x080000, 0xbefc47df, BRF_GRA | CPS1_TILES },
- { "s92_10.bin", 0x080000, 0x960687d5, BRF_GRA | CPS1_TILES },
- { "s92_11.bin", 0x080000, 0x978ecd18, BRF_GRA | CPS1_TILES },
- { "s92_12.bin", 0x080000, 0xd6ec9a0a, BRF_GRA | CPS1_TILES },
- { "s92_13.bin", 0x080000, 0xed2c67f6, BRF_GRA | CPS1_TILES },
-
- { "s92_09.bin", 0x010000, 0x08f6b60e, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "s92_18.bin", 0x020000, 0x7f162009, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "s92_19.bin", 0x020000, 0xbeade53f, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- { "bruteforce.palce16v8h-25.11d", 0x040000, 0x430f722d, BRF_OPT }, // pal
-};
-
-STD_ROM_PICK(Sf2cebltw)
-STD_ROM_FN(Sf2cebltw)
-
-static struct BurnRomInfo SfzchRomDesc[] = {
- { "sfzch23", 0x080000, 0x1140743f, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "sfza22", 0x080000, 0x8d9b2480, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "sfzch21", 0x080000, 0x5435225d, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "sfza20", 0x080000, 0x806e8f38, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "sfz_01.3a", 0x080000, 0x0dd53e62, BRF_GRA | CPS1_TILES },
- { "sfz_02.4a", 0x080000, 0x94c31e3f, BRF_GRA | CPS1_TILES },
- { "sfz_03.5a", 0x080000, 0x9584ac85, BRF_GRA | CPS1_TILES },
- { "sfz_04.6a", 0x080000, 0xb983624c, BRF_GRA | CPS1_TILES },
- { "sfz_05.7a", 0x080000, 0x2b47b645, BRF_GRA | CPS1_TILES },
- { "sfz_06.8a", 0x080000, 0x74fd9fb1, BRF_GRA | CPS1_TILES },
- { "sfz_07.9a", 0x080000, 0xbb2c734d, BRF_GRA | CPS1_TILES },
- { "sfz_08.10a", 0x080000, 0x454f7868, BRF_GRA | CPS1_TILES },
- { "sfz_10.3c", 0x080000, 0x2a7d675e, BRF_GRA | CPS1_TILES },
- { "sfz_11.4c", 0x080000, 0xe35546c8, BRF_GRA | CPS1_TILES },
- { "sfz_12.5c", 0x080000, 0xf122693a, BRF_GRA | CPS1_TILES },
- { "sfz_13.6c", 0x080000, 0x7cf942c8, BRF_GRA | CPS1_TILES },
- { "sfz_14.7c", 0x080000, 0x09038c81, BRF_GRA | CPS1_TILES },
- { "sfz_15.8c", 0x080000, 0x1aa17391, BRF_GRA | CPS1_TILES },
- { "sfz_16.9c", 0x080000, 0x19a5abd6, BRF_GRA | CPS1_TILES },
- { "sfz_17.10c", 0x080000, 0x248b3b73, BRF_GRA | CPS1_TILES },
-
- { "sfz_09.12a", 0x010000, 0xc772628b, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "sfz_18.11c", 0x020000, 0x61022b2d, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "sfz_19.12c", 0x020000, 0x3b5886d5, BRF_SND | CPS1_OKIM6295_SAMPLES },
-};
-
-STD_ROM_PICK(Sfzch)
-STD_ROM_FN(Sfzch)
-
-static struct BurnRomInfo SlammastRomDesc[] = {
- { "mbe_23e.8f", 0x080000, 0x5394057a, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "mbe_24b.9e", 0x020000, 0x95d5e729, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "mbe_28b.9f", 0x020000, 0xb1c7cbcb, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "mbe_25b.10e", 0x020000, 0xa50d3fd4, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "mbe_29b.10f", 0x020000, 0x08e32e56, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "mbe_21a.6f", 0x080000, 0xd5007b05, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "mbe_20a.5f", 0x080000, 0xaeb557b0, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "mb-1m.3a", 0x080000, 0x41468e06, BRF_GRA | CPS1_TILES },
- { "mb-3m.5a", 0x080000, 0xf453aa9e, BRF_GRA | CPS1_TILES },
- { "mb-2m.4a", 0x080000, 0x2ffbfea8, BRF_GRA | CPS1_TILES },
- { "mb-4m.6a", 0x080000, 0x1eb9841d, BRF_GRA | CPS1_TILES },
- { "mb-5m.7a", 0x080000, 0x506b9dc9, BRF_GRA | CPS1_TILES },
- { "mb-7m.9a", 0x080000, 0xaff8c2fb, BRF_GRA | CPS1_TILES },
- { "mb-6m.8a", 0x080000, 0xb76c70e9, BRF_GRA | CPS1_TILES },
- { "mb-8m.10a", 0x080000, 0xe60c9556, BRF_GRA | CPS1_TILES },
- { "mb-10m.3c", 0x080000, 0x97976ff5, BRF_GRA | CPS1_TILES },
- { "mb-12m.5c", 0x080000, 0xb350a840, BRF_GRA | CPS1_TILES },
- { "mb-11m.4c", 0x080000, 0x8fb94743, BRF_GRA | CPS1_TILES },
- { "mb-13m.6c", 0x080000, 0xda810d5f, BRF_GRA | CPS1_TILES },
-
- { "mb_qa.5k", 0x020000, 0xe21a03c4, BRF_ESS | BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "mb-q1.1k", 0x080000, 0x0630c3ce, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "mb-q2.2k", 0x080000, 0x354f9c21, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "mb-q3.3k", 0x080000, 0x7838487c, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "mb-q4.4k", 0x080000, 0xab66e087, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "mb-q5.1m", 0x080000, 0xc789fef2, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "mb-q6.2m", 0x080000, 0xecb81b61, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "mb-q7.3m", 0x080000, 0x041e49ba, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "mb-q8.4m", 0x080000, 0x59fe702a, BRF_SND | CPS1_QSOUND_SAMPLES },
-
- A_BOARD_QSOUND_PLDS
-
- { "mb63b.1a", 0x000117, 0xb8392f02, BRF_OPT }, // b-board PLDs
- { "iob1.12d", 0x000117, 0x3abc0700, BRF_OPT },
- { "bprg1.11d", 0x000117, 0x31793da7, BRF_OPT },
- { "ioc1.ic1", 0x000117, 0x0d182081, BRF_OPT }, // c-board PLDs
-
- { "d7l1.7l", 0x000117, 0x27b7410d, BRF_OPT }, // d-board PLDs
- { "d8l1.8l", 0x000117, 0x539fc7da, BRF_OPT },
- { "d9k2.9k", 0x000117, 0xcd85a156, BRF_OPT },
- { "d10f1.10f", 0x000117, 0x6619c494, BRF_OPT },
-};
-
-STD_ROM_PICK(Slammast)
-STD_ROM_FN(Slammast)
-
-static struct BurnRomInfo SlammastuRomDesc[] = {
- { "mbu_23e.8f", 0x080000, 0x224f0062, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "mbu_24b.9e", 0x020000, 0x95d5e729, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "mbu_28b.9f", 0x020000, 0xb1c7cbcb, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "mbu_25b.10e", 0x020000, 0xa50d3fd4, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "mbu_29b.10f", 0x020000, 0x08e32e56, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "mbu_21a.6f", 0x080000, 0xd5007b05, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "mbu_20a.5f", 0x080000, 0xfc848af5, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "mb-1m.3a", 0x080000, 0x41468e06, BRF_GRA | CPS1_TILES },
- { "mb-3m.5a", 0x080000, 0xf453aa9e, BRF_GRA | CPS1_TILES },
- { "mb-2m.4a", 0x080000, 0x2ffbfea8, BRF_GRA | CPS1_TILES },
- { "mb-4m.6a", 0x080000, 0x1eb9841d, BRF_GRA | CPS1_TILES },
- { "mb-5m.7a", 0x080000, 0x506b9dc9, BRF_GRA | CPS1_TILES },
- { "mb-7m.9a", 0x080000, 0xaff8c2fb, BRF_GRA | CPS1_TILES },
- { "mb-6m.8a", 0x080000, 0xb76c70e9, BRF_GRA | CPS1_TILES },
- { "mb-8m.10a", 0x080000, 0xe60c9556, BRF_GRA | CPS1_TILES },
- { "mb-10m.3c", 0x080000, 0x97976ff5, BRF_GRA | CPS1_TILES },
- { "mb-12m.5c", 0x080000, 0xb350a840, BRF_GRA | CPS1_TILES },
- { "mb-11m.4c", 0x080000, 0x8fb94743, BRF_GRA | CPS1_TILES },
- { "mb-13m.6c", 0x080000, 0xda810d5f, BRF_GRA | CPS1_TILES },
-
- { "mb_qa.5k", 0x020000, 0xe21a03c4, BRF_ESS | BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "mb-q1.1k", 0x080000, 0x0630c3ce, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "mb-q2.2k", 0x080000, 0x354f9c21, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "mb-q3.3k", 0x080000, 0x7838487c, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "mb-q4.4k", 0x080000, 0xab66e087, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "mb-q5.1m", 0x080000, 0xc789fef2, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "mb-q6.2m", 0x080000, 0xecb81b61, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "mb-q7.3m", 0x080000, 0x041e49ba, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "mb-q8.4m", 0x080000, 0x59fe702a, BRF_SND | CPS1_QSOUND_SAMPLES },
-
- A_BOARD_QSOUND_PLDS
-
- { "mb63b.1a", 0x000117, 0xb8392f02, BRF_OPT }, // b-board PLDs
- { "iob1.12d", 0x000117, 0x3abc0700, BRF_OPT },
- { "bprg1.11d", 0x000117, 0x31793da7, BRF_OPT },
- { "ioc1.ic1", 0x000117, 0x0d182081, BRF_OPT }, // c-board PLDs
-
- { "d7l1.7l", 0x000117, 0x27b7410d, BRF_OPT }, // d-board PLDs
- { "d8l1.8l", 0x000117, 0x539fc7da, BRF_OPT },
- { "d9k2.9k", 0x000117, 0xcd85a156, BRF_OPT },
- { "d10f1.10f", 0x000117, 0x6619c494, BRF_OPT },
-};
-
-STD_ROM_PICK(Slammastu)
-STD_ROM_FN(Slammastu)
-
-static struct BurnRomInfo MbomberjRomDesc[] = {
- { "mbj_23e.8f", 0x080000, 0x0d06036a, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "mbj_22b.7f", 0x080000, 0xacd38478, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "mbj_21a.6f", 0x080000, 0xd5007b05, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "mbj_20a.5f", 0x080000, 0xaeb557b0, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "mb_01.3a", 0x080000, 0xa53b1c81, BRF_GRA | CPS1_TILES },
- { "mb_02.4a", 0x080000, 0x23fe10f6, BRF_GRA | CPS1_TILES },
- { "mb_03.5a", 0x080000, 0xcb866c2f, BRF_GRA | CPS1_TILES },
- { "mb_04.6a", 0x080000, 0xc9143e75, BRF_GRA | CPS1_TILES },
- { "mb_05.7a", 0x080000, 0x506b9dc9, BRF_GRA | CPS1_TILES },
- { "mb_06.8a", 0x080000, 0xaff8c2fb, BRF_GRA | CPS1_TILES },
- { "mb_07.9a", 0x080000, 0xb76c70e9, BRF_GRA | CPS1_TILES },
- { "mb_08.10a", 0x080000, 0xe60c9556, BRF_GRA | CPS1_TILES },
- { "mb_10.3c", 0x080000, 0x97976ff5, BRF_GRA | CPS1_TILES },
- { "mb_11.4c", 0x080000, 0xb350a840, BRF_GRA | CPS1_TILES },
- { "mb_12.5c", 0x080000, 0x8fb94743, BRF_GRA | CPS1_TILES },
- { "mb_13.6c", 0x080000, 0xda810d5f, BRF_GRA | CPS1_TILES },
-
- { "mb_qa.5k", 0x020000, 0xe21a03c4, BRF_ESS | BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "mb-q1.1k", 0x080000, 0x0630c3ce, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "mb-q2.2k", 0x080000, 0x354f9c21, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "mb-q3.3k", 0x080000, 0x7838487c, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "mb-q4.4k", 0x080000, 0xab66e087, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "mb-q5.1m", 0x080000, 0xc789fef2, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "mb-q6.2m", 0x080000, 0xecb81b61, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "mb-q7.3m", 0x080000, 0x041e49ba, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "mb-q8.4m", 0x080000, 0x59fe702a, BRF_SND | CPS1_QSOUND_SAMPLES },
-
- A_BOARD_QSOUND_PLDS
-
- { "mb63b.1a", 0x000117, 0xb8392f02, BRF_OPT }, // b-board PLDs
- { "iob1.12d", 0x000117, 0x3abc0700, BRF_OPT },
- { "bprg1.11d", 0x000117, 0x31793da7, BRF_OPT },
- { "ioc1.ic1", 0x000117, 0x0d182081, BRF_OPT }, // c-board PLDs
-
- { "d7l1.7l", 0x000117, 0x27b7410d, BRF_OPT }, // d-board PLDs
- { "d8l1.8l", 0x000117, 0x539fc7da, BRF_OPT },
- { "d9k2.9k", 0x000117, 0xcd85a156, BRF_OPT },
- { "d10f1.10f", 0x000117, 0x6619c494, BRF_OPT },
-};
-
-STD_ROM_PICK(Mbomberj)
-STD_ROM_FN(Mbomberj)
-
-static struct BurnRomInfo MbombrdRomDesc[] = {
- { "mbde_26.11e", 0x020000, 0x72b7451c, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "mbde_30.11f", 0x020000, 0xa036dc16, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "mbde_27.12e", 0x020000, 0x4086f534, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "mbde_31.12f", 0x020000, 0x085f47f0, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "mbde_24.9e", 0x020000, 0xc20895a5, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "mbde_28.9f", 0x020000, 0x2618d5e1, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "mbde_25.10e", 0x020000, 0x9bdb6b11, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "mbde_29.10f", 0x020000, 0x3f52d5e5, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "mbde_21.6f", 0x080000, 0x690c026a, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "mbde_20.5f", 0x080000, 0xb8b2139b, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "mb-1m.3a", 0x080000, 0x41468e06, BRF_GRA | CPS1_TILES },
- { "mb-3m.5a", 0x080000, 0xf453aa9e, BRF_GRA | CPS1_TILES },
- { "mb-2m.4a", 0x080000, 0x2ffbfea8, BRF_GRA | CPS1_TILES },
- { "mb-4m.6a", 0x080000, 0x1eb9841d, BRF_GRA | CPS1_TILES },
- { "mb-5m.7a", 0x080000, 0x506b9dc9, BRF_GRA | CPS1_TILES },
- { "mb-7m.9a", 0x080000, 0xaff8c2fb, BRF_GRA | CPS1_TILES },
- { "mb-6m.8a", 0x080000, 0xb76c70e9, BRF_GRA | CPS1_TILES },
- { "mb-8m.10a", 0x080000, 0xe60c9556, BRF_GRA | CPS1_TILES },
- { "mb-10m.3c", 0x080000, 0x97976ff5, BRF_GRA | CPS1_TILES },
- { "mb-12m.5c", 0x080000, 0xb350a840, BRF_GRA | CPS1_TILES },
- { "mb-11m.4c", 0x080000, 0x8fb94743, BRF_GRA | CPS1_TILES },
- { "mb-13m.6c", 0x080000, 0xda810d5f, BRF_GRA | CPS1_TILES },
-
- { "mb_q.5k", 0x020000, 0xd6fa76d1, BRF_ESS | BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "mb-q1.1k", 0x080000, 0x0630c3ce, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "mb-q2.2k", 0x080000, 0x354f9c21, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "mb-q3.3k", 0x080000, 0x7838487c, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "mb-q4.4k", 0x080000, 0xab66e087, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "mb-q5.1m", 0x080000, 0xc789fef2, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "mb-q6.2m", 0x080000, 0xecb81b61, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "mb-q7.3m", 0x080000, 0x041e49ba, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "mb-q8.4m", 0x080000, 0x59fe702a, BRF_SND | CPS1_QSOUND_SAMPLES },
-
- A_BOARD_QSOUND_PLDS
-
- { "mb63b.1a", 0x000117, 0xb8392f02, BRF_OPT }, // b-board PLDs
- { "iob1.12d", 0x000117, 0x3abc0700, BRF_OPT },
- { "bprg1.11d", 0x000117, 0x31793da7, BRF_OPT },
- { "ioc1.ic1", 0x000117, 0x0d182081, BRF_OPT }, // c-board PLDs
-
- { "d7l1.7l", 0x000117, 0x27b7410d, BRF_OPT }, // d-board PLDs
- { "d8l1.8l", 0x000117, 0x539fc7da, BRF_OPT },
- { "d9k2.9k", 0x000117, 0xcd85a156, BRF_OPT },
- { "d10f1.10f", 0x000117, 0x6619c494, BRF_OPT },
-};
-
-STD_ROM_PICK(Mbombrd)
-STD_ROM_FN(Mbombrd)
-
-static struct BurnRomInfo MbombrdjRomDesc[] = {
- { "mbdj_26.11e", 0x020000, 0x72b7451c, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "mbdj_30.11f", 0x020000, 0xbeff31cf, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "mbdj_27.12e", 0x020000, 0x4086f534, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "mbdj_31.12f", 0x020000, 0x085f47f0, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "mbdj_24.9e", 0x020000, 0xc20895a5, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "mbdj_28.9f", 0x020000, 0x2618d5e1, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "mbdj_25.10e", 0x020000, 0x9bdb6b11, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "mbdj_29.10f", 0x020000, 0x3f52d5e5, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "mbdj_21.6f", 0x080000, 0x690c026a, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "mbdj_20.5f", 0x080000, 0xb8b2139b, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "mb_01.3a", 0x080000, 0xa53b1c81, BRF_GRA | CPS1_TILES },
- { "mb_02.4a", 0x080000, 0x23fe10f6, BRF_GRA | CPS1_TILES },
- { "mb_03.5a", 0x080000, 0xcb866c2f, BRF_GRA | CPS1_TILES },
- { "mb_04.6a", 0x080000, 0xc9143e75, BRF_GRA | CPS1_TILES },
- { "mb_05.7a", 0x080000, 0x506b9dc9, BRF_GRA | CPS1_TILES },
- { "mb_06.8a", 0x080000, 0xaff8c2fb, BRF_GRA | CPS1_TILES },
- { "mb_07.9a", 0x080000, 0xb76c70e9, BRF_GRA | CPS1_TILES },
- { "mb_08.10a", 0x080000, 0xe60c9556, BRF_GRA | CPS1_TILES },
- { "mb_10.3c", 0x080000, 0x97976ff5, BRF_GRA | CPS1_TILES },
- { "mb_11.4c", 0x080000, 0xb350a840, BRF_GRA | CPS1_TILES },
- { "mb_12.5c", 0x080000, 0x8fb94743, BRF_GRA | CPS1_TILES },
- { "mb_13.6c", 0x080000, 0xda810d5f, BRF_GRA | CPS1_TILES },
-
- { "mb_qa.5k", 0x020000, 0xe21a03c4, BRF_ESS | BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "mb-q1.1k", 0x080000, 0x0630c3ce, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "mb-q2.2k", 0x080000, 0x354f9c21, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "mb-q3.3k", 0x080000, 0x7838487c, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "mb-q4.4k", 0x080000, 0xab66e087, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "mb-q5.1m", 0x080000, 0xc789fef2, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "mb-q6.2m", 0x080000, 0xecb81b61, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "mb-q7.3m", 0x080000, 0x041e49ba, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "mb-q8.4m", 0x080000, 0x59fe702a, BRF_SND | CPS1_QSOUND_SAMPLES },
-
- A_BOARD_QSOUND_PLDS
-
- { "mb63b.1a", 0x000117, 0xb8392f02, BRF_OPT }, // b-board PLDs
- { "iob1.12d", 0x000117, 0x3abc0700, BRF_OPT },
- { "bprg1.11d", 0x000117, 0x31793da7, BRF_OPT },
- { "ioc1.ic1", 0x000117, 0x0d182081, BRF_OPT }, // c-board PLDs
-
- { "d7l1.7l", 0x000117, 0x27b7410d, BRF_OPT }, // d-board PLDs
- { "d8l1.8l", 0x000117, 0x539fc7da, BRF_OPT },
- { "d9k2.9k", 0x000117, 0xcd85a156, BRF_OPT },
- { "d10f1.10f", 0x000117, 0x6619c494, BRF_OPT },
-};
-
-STD_ROM_PICK(Mbombrdj)
-STD_ROM_FN(Mbombrdj)
-
-static struct BurnRomInfo SlampicRomDesc[] = {
- { "5.bin", 0x080000, 0x7dba63cd, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "3.bin", 0x080000, 0xd86671f3, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "4.bin", 0x080000, 0xd14d0e42, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "2.bin", 0x080000, 0x38063cd8, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "9.bin", 0x080000, 0xdc140351, BRF_GRA | CPS1_TILES },
- { "8.bin", 0x080000, 0x9ae88035, BRF_GRA | CPS1_TILES },
- { "7.bin", 0x080000, 0x5321f759, BRF_GRA | CPS1_TILES },
- { "6.bin", 0x080000, 0xc8eb5f76, BRF_GRA | CPS1_TILES },
- { "17.bin", 0x080000, 0x21652214, BRF_GRA | CPS1_TILES },
- { "16.bin", 0x080000, 0xd49d2eb0, BRF_GRA | CPS1_TILES },
- { "15.bin", 0x080000, 0x0d98bfd6, BRF_GRA | CPS1_TILES },
- { "14.bin", 0x080000, 0x807284f1, BRF_GRA | CPS1_TILES },
- { "13.bin", 0x080000, 0x293579c5, BRF_GRA | CPS1_TILES },
- { "12.bin", 0x080000, 0xc3727ce7, BRF_GRA | CPS1_TILES },
- { "11.bin", 0x080000, 0x2919883b, BRF_GRA | CPS1_TILES },
- { "10.bin", 0x080000, 0xf538e620, BRF_GRA | CPS1_TILES },
-
- // not in dump but the game expects to read it as protection, maybe the PIC writes to the same area?
- { "mb_qa.5k", 0x020000, 0xe21a03c4, BRF_ESS | BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "pic16c57-xt-p.bin", 0x002000, 0xaeae5ccc, BRF_PRG | CPS1_PIC },
-#if !defined ROM_VERIFY
- { "pic16c57-xt-p.hex", 0x005a1e, 0x61f8607e, BRF_OPT }, // hex dump of PIC
-#endif
-
- { "18.bin", 0x080000, 0x73a0c11c, BRF_SND | CPS1_OKIM6295_SAMPLES },
-};
-
-STD_ROM_PICK(Slampic)
-STD_ROM_FN(Slampic)
-
-static struct BurnRomInfo StriderRomDesc[] = {
- { "30.11f", 0x020000, 0xda997474, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "35.11h", 0x020000, 0x5463aaa3, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "31.12f", 0x020000, 0xd20786db, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "36.12h", 0x020000, 0x21aa2863, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "st-14.8h", 0x080000, 0x9b3cfc08, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "st-2.8a", 0x080000, 0x4eee9aea, BRF_GRA | CPS1_TILES },
- { "st-11.10a", 0x080000, 0x2d7f21e4, BRF_GRA | CPS1_TILES },
- { "st-5.4a", 0x080000, 0x7705aa46, BRF_GRA | CPS1_TILES },
- { "st-9.6a", 0x080000, 0x5b18b722, BRF_GRA | CPS1_TILES },
- { "st-1.7a", 0x080000, 0x005f000b, BRF_GRA | CPS1_TILES },
- { "st-10.9a", 0x080000, 0xb9441519, BRF_GRA | CPS1_TILES },
- { "st-4.3a", 0x080000, 0xb7d04e8b, BRF_GRA | CPS1_TILES },
- { "st-8.5a", 0x080000, 0x6b4713b4, BRF_GRA | CPS1_TILES },
-
- { "09.12b", 0x010000, 0x2ed403bc, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "18.11c", 0x020000, 0x4386bc80, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "19.12c", 0x020000, 0x444536d7, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "st24m1.1a", 0x000117, 0xa80d357e, BRF_OPT }, // b-board PLDs
- { "lwio.11e", 0x000117, 0xad52b90c, BRF_OPT },
-};
-
-STD_ROM_PICK(Strider)
-STD_ROM_FN(Strider)
-
-static struct BurnRomInfo StrideruaRomDesc[] = {
- { "30.11f", 0x020000, 0x66aec273, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP }, // different CRC from strider, pcb verified
- { "35.11h", 0x020000, 0x50e0e865, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP }, // different CRC from strider, pcb verified
- { "31.12f", 0x020000, 0xeae93bd1, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP }, // different CRC from strider, pcb verified
- { "36.12h", 0x020000, 0xb904a31d, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP }, // different CRC from strider, pcb verified
- { "st-14.8h", 0x080000, 0x9b3cfc08, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP }, // in "32" socket
-
- { "st-2.8a", 0x080000, 0x4eee9aea, BRF_GRA | CPS1_TILES },
- { "st-11.10a", 0x080000, 0x2d7f21e4, BRF_GRA | CPS1_TILES },
- { "st-5.4a", 0x080000, 0x7705aa46, BRF_GRA | CPS1_TILES },
- { "st-9.6a", 0x080000, 0x5b18b722, BRF_GRA | CPS1_TILES },
- { "st-1.7a", 0x080000, 0x005f000b, BRF_GRA | CPS1_TILES },
- { "st-10.9a", 0x080000, 0xb9441519, BRF_GRA | CPS1_TILES },
- { "st-4.3a", 0x080000, 0xb7d04e8b, BRF_GRA | CPS1_TILES },
- { "st-8.5a", 0x080000, 0x6b4713b4, BRF_GRA | CPS1_TILES },
-
- { "09.12b", 0x010000, 0x08d63519, BRF_PRG | CPS1_Z80_PROGRAM }, // different CRC from strider, pcb verified
-
- { "18.11c", 0x020000, 0x4386bc80, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "19.12c", 0x020000, 0x444536d7, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "st24b2.1a", 0x000117, 0x00000000, BRF_OPT | BRF_NODUMP }, // b-board PLDs
- { "lwio.11e", 0x000117, 0xad52b90c, BRF_OPT },
-};
-
-STD_ROM_PICK(Striderua)
-STD_ROM_FN(Striderua)
-
-static struct BurnRomInfo StriderucRomDesc[] = {
- { "34.8f", 0x080000, 0xe0fb5657, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "33.6f", 0x080000, 0x9b3cfc08, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "6.8a", 0x080000, 0x4eee9aea, BRF_GRA | CPS1_TILES },
- { "8.10a", 0x080000, 0x2d7f21e4, BRF_GRA | CPS1_TILES },
- { "5.7a", 0x080000, 0x7705aa46, BRF_GRA | CPS1_TILES },
- { "7.9a", 0x080000, 0x5b18b722, BRF_GRA | CPS1_TILES },
- { "15.8c", 0x080000, 0x005f000b, BRF_GRA | CPS1_TILES },
- { "17.10c", 0x080000, 0xb9441519, BRF_GRA | CPS1_TILES },
- { "14.7c", 0x080000, 0xb7d04e8b, BRF_GRA | CPS1_TILES },
- { "16.9c", 0x080000, 0x6b4713b4, BRF_GRA | CPS1_TILES },
-
- { "9.12a", 0x010000, 0x08d63519, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "18.11c", 0x020000, 0x4386bc80, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "19.12c", 0x020000, 0x444536d7, BRF_SND | CPS1_OKIM6295_SAMPLES },
-};
-
-STD_ROM_PICK(Strideruc)
-STD_ROM_FN(Strideruc)
-
-static struct BurnRomInfo StriderjrRomDesc[] = {
- { "sthj_23.8f", 0x080000, 0x046e7b12, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "sthj_22.7f", 0x080000, 0x9b3cfc08, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "sth_01.3a", 0x080000, 0x4eee9aea, BRF_GRA | CPS1_TILES },
- { "sth_02.4a", 0x080000, 0x2d7f21e4, BRF_GRA | CPS1_TILES },
- { "sth_03.5a", 0x080000, 0x7705aa46, BRF_GRA | CPS1_TILES },
- { "sth_04.6a", 0x080000, 0x5b18b722, BRF_GRA | CPS1_TILES },
- { "sth_05.7a", 0x080000, 0x005f000b, BRF_GRA | CPS1_TILES },
- { "sth_06.8a", 0x080000, 0xb9441519, BRF_GRA | CPS1_TILES },
- { "sth_07.9a", 0x080000, 0xb7d04e8b, BRF_GRA | CPS1_TILES },
- { "sth_08.10a", 0x080000, 0x6b4713b4, BRF_GRA | CPS1_TILES },
-
- { "sth_09.12a", 0x010000, 0x08d63519, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "sth_18.11c", 0x020000, 0x4386bc80, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "sth_19.12c", 0x020000, 0x444536d7, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "sth63b.1a", 0x000117, 0xc706b773, BRF_OPT }, // b-board PLDs
- { "iob1.12d", 0x000117, 0x3abc0700, BRF_OPT },
- { "bprg1.11d", 0x000117, 0x31793da7, BRF_OPT },
- { "ioc1.ic7", 0x000117, 0x0d182081, BRF_OPT }, // c-board PLDs
- { "c632.ic1", 0x000117, 0x0fbd9270, BRF_OPT },
-};
-
-STD_ROM_PICK(Striderjr)
-STD_ROM_FN(Striderjr)
-
-static struct BurnRomInfo StriderjRomDesc[] = {
- { "sth_36.12f", 0x020000, 0x53c7b006, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sth_42.12h", 0x020000, 0x4037f65f, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sth_37.13f", 0x020000, 0x80e8877d, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sth_43.13h", 0x020000, 0x6b3fa466, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sth_34.10f", 0x020000, 0xbea770b5, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sth_40.10h", 0x020000, 0x43b922dc, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sth_35.11f", 0x020000, 0x5cc429da, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sth_41.11h", 0x020000, 0x50af457f, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "sth_09.4b", 0x020000, 0x1ef6bfbd, BRF_GRA | CPS1_TILES },
- { "sth_01.4a", 0x020000, 0x1e21b0c1, BRF_GRA | CPS1_TILES },
- { "sth_13.9b", 0x020000, 0x063263ae, BRF_GRA | CPS1_TILES },
- { "sth_05.9a", 0x020000, 0xec9f8714, BRF_GRA | CPS1_TILES },
- { "sth_24.5e", 0x020000, 0x6356f4d2, BRF_GRA | CPS1_TILES },
- { "sth_17.5c", 0x020000, 0xb4f73d86, BRF_GRA | CPS1_TILES },
- { "sth_38.8h", 0x020000, 0xee5abfc2, BRF_GRA | CPS1_TILES },
- { "sth_32.8f", 0x020000, 0x44a206a3, BRF_GRA | CPS1_TILES },
- { "sth_10.5b", 0x020000, 0xdf3dd3bc, BRF_GRA | CPS1_TILES },
- { "sth_02.5a", 0x020000, 0xc75f9ea0, BRF_GRA | CPS1_TILES },
- { "sth_14.10b", 0x020000, 0x6c03e19d, BRF_GRA | CPS1_TILES },
- { "sth_06.10a", 0x020000, 0xd84f5478, BRF_GRA | CPS1_TILES },
- { "sth_25.7e", 0x020000, 0x921e506a, BRF_GRA | CPS1_TILES },
- { "sth_18.7c", 0x020000, 0x5b318956, BRF_GRA | CPS1_TILES },
- { "sth_39.9h", 0x020000, 0x9321d6aa, BRF_GRA | CPS1_TILES },
- { "sth_33.9f", 0x020000, 0xb47ddfc7, BRF_GRA | CPS1_TILES },
- { "sth_11.7b", 0x020000, 0x2484f241, BRF_GRA | CPS1_TILES },
- { "sth_03.7a", 0x020000, 0xaaa07245, BRF_GRA | CPS1_TILES },
- { "sth_15.11b", 0x020000, 0xe415d943, BRF_GRA | CPS1_TILES },
- { "sth_07.11a", 0x020000, 0x97d072d2, BRF_GRA | CPS1_TILES },
- { "sth_26.8e", 0x020000, 0x0ebfcb02, BRF_GRA | CPS1_TILES },
- { "sth_19.8c", 0x020000, 0x257ce683, BRF_GRA | CPS1_TILES },
- { "sth_28.10e", 0x020000, 0x98ac8cd1, BRF_GRA | CPS1_TILES },
- { "sth_21.10c", 0x020000, 0x538d9423, BRF_GRA | CPS1_TILES },
- { "sth_12.8b", 0x020000, 0xf670a477, BRF_GRA | CPS1_TILES },
- { "sth_04.8a", 0x020000, 0x853d3e01, BRF_GRA | CPS1_TILES },
- { "sth_16.12b", 0x020000, 0x4092019f, BRF_GRA | CPS1_TILES },
- { "sth_08.12a", 0x020000, 0x2ce9b4c7, BRF_GRA | CPS1_TILES },
- { "sth_27.9e", 0x020000, 0xf82c88d9, BRF_GRA | CPS1_TILES },
- { "sth_20.9c", 0x020000, 0xeb584dd4, BRF_GRA | CPS1_TILES },
- { "sth_29.11e", 0x020000, 0x34ae2997, BRF_GRA | CPS1_TILES },
- { "sth_22.11c", 0x020000, 0x78dd9c48, BRF_GRA | CPS1_TILES },
-
- { "sth_23.13c", 0x010000, 0x2ed403bc, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "sth_30.12e", 0x020000, 0x4386bc80, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "sth_31.13e", 0x020000, 0x444536d7, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "st22b.1a", 0x000117, 0x68fecc55, BRF_OPT }, // b-board PLDs
- { "lwio.12c", 0x000117, 0xad52b90c, BRF_OPT },
-};
-
-STD_ROM_PICK(Striderj)
-STD_ROM_FN(Striderj)
-
-static struct BurnRomInfo UnsquadRomDesc[] = {
- { "aru_30.11f", 0x020000, 0x24d8f88d, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "aru_35.11h", 0x020000, 0x8b954b59, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "aru_31.12f", 0x020000, 0x33e9694b, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "aru_36.12h", 0x020000, 0x7cc8fb9e, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "ar-32m.8h", 0x080000, 0xae1d7fb0, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "ar-5m.7a", 0x080000, 0xbf4575d8, BRF_GRA | CPS1_TILES },
- { "ar-7m.9a", 0x080000, 0xa02945f4, BRF_GRA | CPS1_TILES },
- { "ar-1m.3a", 0x080000, 0x5965ca8d, BRF_GRA | CPS1_TILES },
- { "ar-3m.5a", 0x080000, 0xac6db17d, BRF_GRA | CPS1_TILES },
-
- { "ar_09.12b", 0x010000, 0xf3dd1367, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "aru_18.11c", 0x020000, 0x584b43a9, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "ar24b.1a", 0x000117, 0x09a51271, BRF_OPT }, // b-board PLDs
- { "lwio.11e", 0x000117, 0xad52b90c, BRF_OPT },
-};
-
-STD_ROM_PICK(Unsquad)
-STD_ROM_FN(Unsquad)
-
-static struct BurnRomInfo Area88RomDesc[] = {
- { "ar_36.12f", 0x020000, 0x65030392, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "ar_42.12h", 0x020000, 0xc48170de, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "ar_37.13f", 0x020000, 0x33e9694b, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "ar_43.13h", 0x020000, 0x7cc8fb9e, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "ar_34.10f", 0x020000, 0xf6e80386, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "ar_40.10h", 0x020000, 0xbe36c145, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "ar_35.11f", 0x020000, 0x86d98ff3, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "ar_41.11h", 0x020000, 0x758893d3, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "ar_09.4b", 0x020000, 0xdb9376f8, BRF_GRA | CPS1_TILES },
- { "ar_01.4a", 0x020000, 0x392151b4, BRF_GRA | CPS1_TILES },
- { "ar_13.9b", 0x020000, 0x81436481, BRF_GRA | CPS1_TILES },
- { "ar_05.9a", 0x020000, 0xe246ed9f, BRF_GRA | CPS1_TILES },
- { "ar_24.5e", 0x020000, 0x9cd6e2a3, BRF_GRA | CPS1_TILES },
- { "ar_17.5c", 0x020000, 0x0b8e0df4, BRF_GRA | CPS1_TILES },
- { "ar_38.8h", 0x020000, 0x8b9e75b9, BRF_GRA | CPS1_TILES },
- { "ar_32.8f", 0x020000, 0xdb6acdcf, BRF_GRA | CPS1_TILES },
- { "ar_10.5b", 0x020000, 0x4219b622, BRF_GRA | CPS1_TILES },
- { "ar_02.5a", 0x020000, 0xbac5dec5, BRF_GRA | CPS1_TILES },
- { "ar_14.10b", 0x020000, 0xe6bae179, BRF_GRA | CPS1_TILES },
- { "ar_06.10a", 0x020000, 0xc8f04223, BRF_GRA | CPS1_TILES },
- { "ar_25.7e", 0x020000, 0x15ccf981, BRF_GRA | CPS1_TILES },
- { "ar_18.7c", 0x020000, 0x9336db6a, BRF_GRA | CPS1_TILES },
- { "ar_39.9h", 0x020000, 0x9b8e1363, BRF_GRA | CPS1_TILES },
- { "ar_33.9f", 0x020000, 0x3968f4b5, BRF_GRA | CPS1_TILES },
-
- { "ar_23.13c", 0x010000, 0xf3dd1367, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "ar_30.12e", 0x020000, 0x584b43a9, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "ar22b.1a", 0x000117, 0xf1db9030, BRF_OPT }, // b-board PLDs
- { "lwio.12c", 0x000117, 0xad52b90c, BRF_OPT },
-};
-
-STD_ROM_PICK(Area88)
-STD_ROM_FN(Area88)
-
-static struct BurnRomInfo Area88rRomDesc[] = {
- { "araj_23.8f", 0x080000, 0x7045d6cb, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "araj_22.7f", 0x080000, 0x9913002e, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "ara_01.3a", 0x080000, 0xbf4575d8, BRF_GRA | CPS1_TILES },
- { "ara_02.4a", 0x080000, 0xa02945f4, BRF_GRA | CPS1_TILES },
- { "ara_03.5a", 0x080000, 0x5965ca8d, BRF_GRA | CPS1_TILES },
- { "ara_04.6a", 0x080000, 0xac6db17d, BRF_GRA | CPS1_TILES },
-
- { "ara_09.12a", 0x020000, 0xaf88359c, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "ara_18.11c", 0x020000, 0x584b43a9, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "ara63b.1a", 0x000117, 0xf5569c93, BRF_OPT },// b-board PLDs
- { "iob1.12d", 0x000117, 0x3abc0700, BRF_OPT },
- { "bprg1.11d", 0x000117, 0x31793da7, BRF_OPT },
-
- { "ioc1.ic7", 0x000117, 0x0d182081, BRF_OPT }, // c-board PLDs
- { "c632.ic1", 0x000117, 0x0fbd9270, BRF_OPT },
-};
-
-STD_ROM_PICK(Area88r)
-STD_ROM_FN(Area88r)
-
-static struct BurnRomInfo VarthRomDesc[] = {
- { "vae_30b.11f", 0x020000, 0xadb8d391, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "vae_35b.11h", 0x020000, 0x44e5548f, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "vae_31b.12f", 0x020000, 0x1749a71c, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "vae_36b.12h", 0x020000, 0x5f2e2450, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "vae_28b.9f", 0x020000, 0xe524ca50, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "vae_33b.9h", 0x020000, 0xc0bbf8c9, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "vae_29b.10f", 0x020000, 0x6640996a, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "vae_34b.10h", 0x020000, 0xfa59be8a, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "va-5m.7a", 0x080000, 0xb1fb726e, BRF_GRA | CPS1_TILES },
- { "va-7m.9a", 0x080000, 0x4c6588cd, BRF_GRA | CPS1_TILES },
- { "va-1m.3a", 0x080000, 0x0b1ace37, BRF_GRA | CPS1_TILES },
- { "va-3m.5a", 0x080000, 0x44dfe706, BRF_GRA | CPS1_TILES },
-
- { "va_09.12b", 0x010000, 0x7a99446e, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "va_18.11c", 0x020000, 0xde30510e, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "va_19.12c", 0x020000, 0x0610a4ac, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "va24b.1a", 0x000117, 0xcc476650, BRF_OPT }, // b-board PLDs
- { "iob1.11e", 0x000117, 0x3abc0700, BRF_OPT },
-};
-
-STD_ROM_PICK(Varth)
-STD_ROM_FN(Varth)
-
-static struct BurnRomInfo Varthr1RomDesc[] = {
- { "vae_30a.11f", 0x020000, 0x7fcd0091, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "vae_35a.11h", 0x020000, 0x35cf9509, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "vae_31a.12f", 0x020000, 0x15e5ee81, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "vae_36a.12h", 0x020000, 0x153a201e, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "vae_28a.9f", 0x020000, 0x7a0e0d25, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "vae_33a.9h", 0x020000, 0xf2365922, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "vae_29a.10f", 0x020000, 0x5e2cd2c3, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "vae_34a.10h", 0x020000, 0x3d9bdf83, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "va-5m.7a", 0x080000, 0xb1fb726e, BRF_GRA | CPS1_TILES },
- { "va-7m.9a", 0x080000, 0x4c6588cd, BRF_GRA | CPS1_TILES },
- { "va-1m.3a", 0x080000, 0x0b1ace37, BRF_GRA | CPS1_TILES },
- { "va-3m.5a", 0x080000, 0x44dfe706, BRF_GRA | CPS1_TILES },
-
- { "va_09.12b", 0x010000, 0x7a99446e, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "va_18.11c", 0x020000, 0xde30510e, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "va_19.12c", 0x020000, 0x0610a4ac, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "va24b.1a", 0x000117, 0xcc476650, BRF_OPT }, // b-board PLDs
- { "iob1.11e", 0x000117, 0x3abc0700, BRF_OPT },
-};
-
-STD_ROM_PICK(Varthr1)
-STD_ROM_FN(Varthr1)
-
-static struct BurnRomInfo VarthjRomDesc[] = {
- { "vaj_36b.12f", 0x020000, 0x1d798d6a, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "vaj_42b.12h", 0x020000, 0x0f720233, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "vaj_37b.13f", 0x020000, 0x24414b17, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "vaj_43b.13h", 0x020000, 0x34b4b06c, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "vaj_34b.10f", 0x020000, 0x87c79aed, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "vaj_40b.10h", 0x020000, 0x210b4bd0, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "vaj_35b.11f", 0x020000, 0x6b0da69f, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "vaj_41b.11h", 0x020000, 0x6542c8a4, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "va_09.4b", 0x020000, 0x183dfaa8, BRF_GRA | CPS1_TILES },
- { "va_01.4a", 0x020000, 0xc41312b5, BRF_GRA | CPS1_TILES },
- { "va_13.9b", 0x020000, 0x45537e69, BRF_GRA | CPS1_TILES },
- { "va_05.9a", 0x020000, 0x7065d4e9, BRF_GRA | CPS1_TILES },
- { "va_24.5e", 0x020000, 0x57191ccf, BRF_GRA | CPS1_TILES },
- { "va_17.5c", 0x020000, 0x054f5a5b, BRF_GRA | CPS1_TILES },
- { "va_38.8h", 0x020000, 0xe117a17e, BRF_GRA | CPS1_TILES },
- { "va_32.8f", 0x020000, 0x3b4f40b2, BRF_GRA | CPS1_TILES },
- { "va_10.5b", 0x020000, 0xd62750cd, BRF_GRA | CPS1_TILES },
- { "va_02.5a", 0x020000, 0x11590325, BRF_GRA | CPS1_TILES },
- { "va_14.10b", 0x020000, 0xdc2f4783, BRF_GRA | CPS1_TILES },
- { "va_06.10a", 0x020000, 0x06e833ac, BRF_GRA | CPS1_TILES },
- { "va_25.7e", 0x020000, 0x51d90690, BRF_GRA | CPS1_TILES },
- { "va_18.7c", 0x020000, 0xa17817c0, BRF_GRA | CPS1_TILES },
- { "va_39.9h", 0x020000, 0xb0b12f51, BRF_GRA | CPS1_TILES },
- { "va_33.9f", 0x020000, 0x4b003af7, BRF_GRA | CPS1_TILES },
-
- { "va_23.13c", 0x010000, 0x7a99446e, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "va_30.12e", 0x020000, 0xde30510e, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "va_31.13e", 0x020000, 0x0610a4ac, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "va22b.1a", 0x000117, 0xbd7cd574, BRF_OPT }, // b-board PLDs
- { "lwio.12c", 0x000117, 0xad52b90c, BRF_OPT },
- { "ioc1.ic1", 0x000117, 0x0d182081, BRF_OPT }, // c-board PLDs
-};
-
-STD_ROM_PICK(Varthj)
-STD_ROM_FN(Varthj)
-
-static struct BurnRomInfo VarthjrRomDesc[] = {
- { "vaj_23b.8f", 0x080000, 0xad3d3522, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "vaj_22b.7f", 0x080000, 0x034e3e55, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "va_01.3a", 0x080000, 0xb1fb726e, BRF_GRA | CPS1_TILES }, // == va-5m.7a
- { "va_02.4a", 0x080000, 0x4c6588cd, BRF_GRA | CPS1_TILES }, // == va-7m.9a
- { "va_03.5a", 0x080000, 0x0b1ace37, BRF_GRA | CPS1_TILES }, // == va-1m.3a
- { "va_04.6a", 0x080000, 0x44dfe706, BRF_GRA | CPS1_TILES }, // == va-3m.5a
-
- { "va_09.12a", 0x010000, 0x7a99446e, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "va_18.11c", 0x020000, 0xde30510e, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "va_19.12c", 0x020000, 0x0610a4ac, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "va63b.1a", 0x000117, 0x132ab7c5, BRF_OPT }, // b-board PLDs
- { "iob1.12d", 0x000117, 0x3abc0700, BRF_OPT },
- { "bprg1.11d", 0x000117, 0x31793da7, BRF_OPT },
-
- { "ioc1.ic1", 0x000117, 0x0d182081, BRF_OPT }, // c-board PLDs
-};
-
-STD_ROM_PICK(Varthjr)
-STD_ROM_FN(Varthjr)
-
-static struct BurnRomInfo VarthuRomDesc[] = {
- { "vau_23a.8f", 0x080000, 0xfbe68726, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "vau_22a.7f", 0x080000, 0x0ed71bbd, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "va-5m.3a", 0x080000, 0xb1fb726e, BRF_GRA | CPS1_TILES },
- { "va-7m.5a", 0x080000, 0x4c6588cd, BRF_GRA | CPS1_TILES },
- { "va-1m.4a", 0x080000, 0x0b1ace37, BRF_GRA | CPS1_TILES },
- { "va-3m.6a", 0x080000, 0x44dfe706, BRF_GRA | CPS1_TILES },
-
- { "va_09.11a", 0x010000, 0x7a99446e, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "va_18.11c", 0x020000, 0xde30510e, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "va_19.12c", 0x020000, 0x0610a4ac, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "va63b.1a", 0x000117, 0x132ab7c5, BRF_OPT }, // b-board PLDs
- { "iob1.12d", 0x000117, 0x3abc0700, BRF_OPT },
- { "bprg1.11d", 0x000117, 0x31793da7, BRF_OPT },
-};
-
-STD_ROM_PICK(Varthu)
-STD_ROM_FN(Varthu)
-
-static struct BurnRomInfo VarthbRomDesc[] = {
- { "2", 0x080000, 0x2f010023, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "1", 0x080000, 0x0861dff3, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "4", 0x010000, 0xaa51e43b, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "3", 0x010000, 0xf7e4f2f0, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "14", 0x040000, 0x7ca73780, BRF_GRA | CPS1_TILES },
- { "13", 0x040000, 0x9fb11869, BRF_GRA | CPS1_TILES },
- { "12", 0x040000, 0xafeba416, BRF_GRA | CPS1_TILES },
- { "11", 0x040000, 0x9eef3507, BRF_GRA | CPS1_TILES },
- { "10", 0x040000, 0xeeec6183, BRF_GRA | CPS1_TILES },
- { "9", 0x040000, 0x0e94f718, BRF_GRA | CPS1_TILES },
- { "8", 0x040000, 0xc4ddc5b4, BRF_GRA | CPS1_TILES },
- { "7", 0x040000, 0x8941ca12, BRF_GRA | CPS1_TILES },
-
- { "6", 0x010000, 0x7a99446e, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "5", 0x040000, 0x1547e595, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- { "varth1.bin", 0x000157, 0x4c6a0d99, BRF_OPT }, // unknown
- { "varth2.bin", 0x000157, 0x00000000, BRF_OPT | BRF_NODUMP },
- { "varth3.bin", 0x000157, 0x00000000, BRF_OPT | BRF_NODUMP },
- { "varth4.bin", 0x000117, 0x53317bf6, BRF_OPT }, // unknown
- { "varth5.bin", 0x000157, 0x00000000, BRF_OPT | BRF_NODUMP },
- { "varth6.bin", 0x000157, 0x00000000, BRF_OPT | BRF_NODUMP },
-};
-
-STD_ROM_PICK(Varthb)
-STD_ROM_FN(Varthb)
-
-static struct BurnRomInfo WillowRomDesc[] = {
- // No "Warning" (c) Capcom U.S.A., genuine export ROM labels
- { "wle_30.11f", 0x020000, 0x15372aa2, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "wle_35.11h", 0x020000, 0x2e64623b, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "wlu_31.12f", 0x020000, 0x0eb48a83, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "wlu_36.12h", 0x020000, 0x36100209, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "wlm-32.8h", 0x080000, 0xdfd9f643, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "wlm-7.7a", 0x080000, 0xafa74b73, BRF_GRA | CPS1_TILES },
- { "wlm-5.9a", 0x080000, 0x12a0dc0b, BRF_GRA | CPS1_TILES },
- { "wlm-3.3a", 0x080000, 0xc6f2abce, BRF_GRA | CPS1_TILES },
- { "wlm-1.5a", 0x080000, 0x4aa4c6d3, BRF_GRA | CPS1_TILES },
- { "wl_24.7d", 0x020000, 0x6f0adee5, BRF_GRA | CPS1_TILES },
- { "wl_14.7c", 0x020000, 0x9cf3027d, BRF_GRA | CPS1_TILES },
- { "wl_26.9d", 0x020000, 0xf09c8ecf, BRF_GRA | CPS1_TILES },
- { "wl_16.9c", 0x020000, 0xe35407aa, BRF_GRA | CPS1_TILES },
- { "wl_20.3d", 0x020000, 0x84992350, BRF_GRA | CPS1_TILES },
- { "wl_10.3c", 0x020000, 0xb87b5a36, BRF_GRA | CPS1_TILES },
- { "wl_22.5d", 0x020000, 0xfd3f89f0, BRF_GRA | CPS1_TILES },
- { "wl_12.5c", 0x020000, 0x7da49d69, BRF_GRA | CPS1_TILES },
-
- { "wl_09.12b", 0x010000, 0xf6b3d060, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "wl_18.11c", 0x020000, 0xbde23d4d, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "wl_19.12c", 0x020000, 0x683898f5, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "wl24b.1a", 0x000117, 0x7101cdf1, BRF_OPT }, // b-board PLDs
- { "lwio.11e", 0x000117, 0xad52b90c, BRF_OPT },
-};
-
-STD_ROM_PICK(Willow)
-STD_ROM_FN(Willow)
-
-static struct BurnRomInfo WillowuRomDesc[] = {
- { "wlu_30.11f", 0x020000, 0xd604dbb1, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "35.11h", 0x020000, 0x7a791e77, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "wlu_31.12f", 0x020000, 0x0eb48a83, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "wlu_36.12h", 0x020000, 0x36100209, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "wlm-32.8h", 0x080000, 0xdfd9f643, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "wlm-7.7a", 0x080000, 0xafa74b73, BRF_GRA | CPS1_TILES },
- { "wlm-5.9a", 0x080000, 0x12a0dc0b, BRF_GRA | CPS1_TILES },
- { "wlm-3.3a", 0x080000, 0xc6f2abce, BRF_GRA | CPS1_TILES },
- { "wlm-1.5a", 0x080000, 0x4aa4c6d3, BRF_GRA | CPS1_TILES },
- { "wl_24.7d", 0x020000, 0x6f0adee5, BRF_GRA | CPS1_TILES },
- { "wl_14.7c", 0x020000, 0x9cf3027d, BRF_GRA | CPS1_TILES },
- { "wl_26.9d", 0x020000, 0xf09c8ecf, BRF_GRA | CPS1_TILES },
- { "wl_16.9c", 0x020000, 0xe35407aa, BRF_GRA | CPS1_TILES },
- { "wl_20.3d", 0x020000, 0x84992350, BRF_GRA | CPS1_TILES },
- { "wl_10.3c", 0x020000, 0xb87b5a36, BRF_GRA | CPS1_TILES },
- { "wl_22.5d", 0x020000, 0xfd3f89f0, BRF_GRA | CPS1_TILES },
- { "wl_12.5c", 0x020000, 0x7da49d69, BRF_GRA | CPS1_TILES },
-
- { "wl_09.12b", 0x010000, 0xf6b3d060, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "wl_18.11c", 0x020000, 0xbde23d4d, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "wl_19.12c", 0x020000, 0x683898f5, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "wl24b.1a", 0x000117, 0x7101cdf1, BRF_OPT }, // b-board PLDs
- { "lwio.11e", 0x000117, 0xad52b90c, BRF_OPT },
-};
-
-STD_ROM_PICK(Willowu)
-STD_ROM_FN(Willowu)
-
-static struct BurnRomInfo WillowuoRomDesc[] = {
- { "wlu_30.11f", 0x020000, 0xd604dbb1, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "wlu_35.11h", 0x020000, 0xdaee72fe, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "wlu_31.12f", 0x020000, 0x0eb48a83, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "wlu_36.12h", 0x020000, 0x36100209, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "wlm-32.8h", 0x080000, 0xdfd9f643, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "wlm-7.7a", 0x080000, 0xafa74b73, BRF_GRA | CPS1_TILES },
- { "wlm-5.9a", 0x080000, 0x12a0dc0b, BRF_GRA | CPS1_TILES },
- { "wlm-3.3a", 0x080000, 0xc6f2abce, BRF_GRA | CPS1_TILES },
- { "wlm-1.5a", 0x080000, 0x4aa4c6d3, BRF_GRA | CPS1_TILES },
- { "wl_24.7d", 0x020000, 0x6f0adee5, BRF_GRA | CPS1_TILES },
- { "wl_14.7c", 0x020000, 0x9cf3027d, BRF_GRA | CPS1_TILES },
- { "wl_26.9d", 0x020000, 0xf09c8ecf, BRF_GRA | CPS1_TILES },
- { "wl_16.9c", 0x020000, 0xe35407aa, BRF_GRA | CPS1_TILES },
- { "wl_20.3d", 0x020000, 0x84992350, BRF_GRA | CPS1_TILES },
- { "wl_10.3c", 0x020000, 0xb87b5a36, BRF_GRA | CPS1_TILES },
- { "wl_22.5d", 0x020000, 0xfd3f89f0, BRF_GRA | CPS1_TILES },
- { "wl_12.5c", 0x020000, 0x7da49d69, BRF_GRA | CPS1_TILES },
-
- { "wl_09.12b", 0x010000, 0xf6b3d060, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "wl_18.11c", 0x020000, 0xbde23d4d, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "wl_19.12c", 0x020000, 0x683898f5, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "wl24b.1a", 0x000117, 0x7101cdf1, BRF_OPT }, // b-board PLDs
- { "lwio.11e", 0x000117, 0xad52b90c, BRF_OPT },
-};
-
-STD_ROM_PICK(Willowuo)
-STD_ROM_FN(Willowuo)
-
-static struct BurnRomInfo WillowjRomDesc[] = {
- // Japan "warning" but (c) Capcom U.S.A.
- { "wl_36.12f", 0x020000, 0x2b0d7cbc, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "wl_42.12h", 0x020000, 0x1ac39615, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "wl_37.13f", 0x020000, 0x30a717fa, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "wl_43.13h", 0x020000, 0xd0dddc9e, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "wl_34.10f", 0x020000, 0x23a84f7a, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "wl_40.10h", 0x020000, 0xc7a0ed21, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "wl_35.11f", 0x020000, 0x5eff7951, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "wl_41.11h", 0x020000, 0x8d6477a3, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "wl_09.4b", 0x020000, 0x05aa71b4, BRF_GRA | CPS1_TILES },
- { "wl_01.4a", 0x020000, 0x08c2df12, BRF_GRA | CPS1_TILES },
- { "wl_13.9b", 0x020000, 0x1f7c87cd, BRF_GRA | CPS1_TILES },
- { "wl_05.9a", 0x020000, 0xf5254bf2, BRF_GRA | CPS1_TILES },
- { "wl_24.5e", 0x020000, 0xd9d73ba1, BRF_GRA | CPS1_TILES },
- { "wl_17.5c", 0x020000, 0xa652f30c, BRF_GRA | CPS1_TILES },
- { "wl_38.8h", 0x020000, 0xf6f9111b, BRF_GRA | CPS1_TILES },
- { "wl_32.8f", 0x020000, 0x10f64027, BRF_GRA | CPS1_TILES },
- { "wl_10.5b", 0x020000, 0xdbba0a3f, BRF_GRA | CPS1_TILES },
- { "wl_02.5a", 0x020000, 0x86fba7a5, BRF_GRA | CPS1_TILES },
- { "wl_14.10b", 0x020000, 0x7d5798b2, BRF_GRA | CPS1_TILES },
- { "wl_06.10a", 0x020000, 0x1f052948, BRF_GRA | CPS1_TILES },
- { "wl_25.7e", 0x020000, 0x857d17d2, BRF_GRA | CPS1_TILES },
- { "wl_18.7c", 0x020000, 0x316c7fbc, BRF_GRA | CPS1_TILES },
- { "wl_39.9h", 0x020000, 0xe6fce9b0, BRF_GRA | CPS1_TILES },
- { "wl_33.9f", 0x020000, 0xa15d5517, BRF_GRA | CPS1_TILES },
-
- { "wl_11.7b", 0x020000, 0x6f0adee5, BRF_GRA | CPS1_TILES },
- { "wl_03.7a", 0x020000, 0x9cf3027d, BRF_GRA | CPS1_TILES },
- { "wl_15.11b", 0x020000, 0xf09c8ecf, BRF_GRA | CPS1_TILES },
- { "wl_07.11a", 0x020000, 0xe35407aa, BRF_GRA | CPS1_TILES },
- { "wl_26.8e", 0x020000, 0x84992350, BRF_GRA | CPS1_TILES },
- { "wl_19.8c", 0x020000, 0xb87b5a36, BRF_GRA | CPS1_TILES },
- { "wl_28.10e", 0x020000, 0xfd3f89f0, BRF_GRA | CPS1_TILES },
- { "wl_21.10c", 0x020000, 0x7da49d69, BRF_GRA | CPS1_TILES },
-
- { "wl_23.13c", 0x010000, 0xf6b3d060, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "wl_30.12e", 0x020000, 0xbde23d4d, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "wl_31.13e", 0x020000, 0x683898f5, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "wl22b.1a", 0x000117, 0x00000000, BRF_OPT | BRF_NODUMP }, // b-board PLDs
- { "lwio.12c", 0x000117, 0xad52b90c, BRF_OPT },
-};
-
-STD_ROM_PICK(Willowj)
-STD_ROM_FN(Willowj)
-
-static struct BurnRomInfo WofRomDesc[] = {
- { "tk2e_23c.8f", 0x080000, 0x0d708505, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "tk2e_22c.7f", 0x080000, 0x608c17e3, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "tk2-1m.3a", 0x080000, 0x0d9cb9bf, BRF_GRA | CPS1_TILES },
- { "tk2-3m.5a", 0x080000, 0x45227027, BRF_GRA | CPS1_TILES },
- { "tk2-2m.4a", 0x080000, 0xc5ca2460, BRF_GRA | CPS1_TILES },
- { "tk2-4m.6a", 0x080000, 0xe349551c, BRF_GRA | CPS1_TILES },
- { "tk2-5m.7a", 0x080000, 0x291f0f0b, BRF_GRA | CPS1_TILES },
- { "tk2-7m.9a", 0x080000, 0x3edeb949, BRF_GRA | CPS1_TILES },
- { "tk2-6m.8a", 0x080000, 0x1abd14d6, BRF_GRA | CPS1_TILES },
- { "tk2-8m.10a", 0x080000, 0xb27948e3, BRF_GRA | CPS1_TILES },
-
- { "tk2_qa.5k", 0x020000, 0xc9183a0d, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "tk2-q1.1k", 0x080000, 0x611268cf, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "tk2-q2.2k", 0x080000, 0x20f55ca9, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "tk2-q3.3k", 0x080000, 0xbfcf6f52, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "tk2-q4.4k", 0x080000, 0x36642e88, BRF_SND | CPS1_QSOUND_SAMPLES },
-
- A_BOARD_QSOUND_PLDS
-
- { "tk263b.1a", 0x000117, 0xc4b0349b, BRF_OPT }, // b-board PLDs
- { "iob1.12d", 0x000117, 0x3abc0700, BRF_OPT },
- { "bprg1.11d", 0x000117, 0x31793da7, BRF_OPT },
-
- { "ioc1.ic1", 0x000117, 0x0d182081, BRF_OPT }, // c-board PLDs
-
- { "d7l1.7l", 0x000117, 0x27b7410d, BRF_OPT }, // d-board PLDs
- { "d8l1.8l", 0x000117, 0x539fc7da, BRF_OPT },
- { "d9k1.9k", 0x000117, 0x00000000, BRF_OPT | BRF_NODUMP },
- { "d10f1.10f", 0x000117, 0x6619c494, BRF_OPT },
-};
-
-STD_ROM_PICK(Wof)
-STD_ROM_FN(Wof)
-
-static struct BurnRomInfo Wofr1RomDesc[] = {
- { "tk2e_23b.8f", 0x080000, 0x11fb2ed1, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "tk2e_22b.7f", 0x080000, 0x479b3f24, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "tk2-1m.3a", 0x080000, 0x0d9cb9bf, BRF_GRA | CPS1_TILES },
- { "tk2-3m.5a", 0x080000, 0x45227027, BRF_GRA | CPS1_TILES },
- { "tk2-2m.4a", 0x080000, 0xc5ca2460, BRF_GRA | CPS1_TILES },
- { "tk2-4m.6a", 0x080000, 0xe349551c, BRF_GRA | CPS1_TILES },
- { "tk2-5m.7a", 0x080000, 0x291f0f0b, BRF_GRA | CPS1_TILES },
- { "tk2-7m.9a", 0x080000, 0x3edeb949, BRF_GRA | CPS1_TILES },
- { "tk2-6m.8a", 0x080000, 0x1abd14d6, BRF_GRA | CPS1_TILES },
- { "tk2-8m.10a", 0x080000, 0xb27948e3, BRF_GRA | CPS1_TILES },
-
- { "tk2_qa.5k", 0x020000, 0xc9183a0d, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "tk2-q1.1k", 0x080000, 0x611268cf, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "tk2-q2.2k", 0x080000, 0x20f55ca9, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "tk2-q3.3k", 0x080000, 0xbfcf6f52, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "tk2-q4.4k", 0x080000, 0x36642e88, BRF_SND | CPS1_QSOUND_SAMPLES },
-
- A_BOARD_QSOUND_PLDS
-
- { "tk263b.1a", 0x000117, 0xc4b0349b, BRF_OPT }, // b-board PLDs
- { "iob1.12d", 0x000117, 0x3abc0700, BRF_OPT },
- { "bprg1.11d", 0x000117, 0x31793da7, BRF_OPT },
-
- { "ioc1.ic1", 0x000117, 0x0d182081, BRF_OPT }, // c-board PLDs
-
- { "d7l1.7l", 0x000117, 0x27b7410d, BRF_OPT }, // d-board PLDs
- { "d8l1.8l", 0x000117, 0x539fc7da, BRF_OPT },
- { "d9k1.9k", 0x000117, 0x00000000, BRF_OPT | BRF_NODUMP },
- { "d10f1.10f", 0x000117, 0x6619c494, BRF_OPT },
-};
-
-STD_ROM_PICK(Wofr1)
-STD_ROM_FN(Wofr1)
-
-static struct BurnRomInfo WofuRomDesc[] = {
- { "tk2u_23c.8f", 0x080000, 0x29b89c12, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "tk2u_22c.7f", 0x080000, 0xf5af4774, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "tk2-1m.3a", 0x080000, 0x0d9cb9bf, BRF_GRA | CPS1_TILES },
- { "tk2-3m.5a", 0x080000, 0x45227027, BRF_GRA | CPS1_TILES },
- { "tk2-2m.4a", 0x080000, 0xc5ca2460, BRF_GRA | CPS1_TILES },
- { "tk2-4m.6a", 0x080000, 0xe349551c, BRF_GRA | CPS1_TILES },
- { "tk2-5m.7a", 0x080000, 0x291f0f0b, BRF_GRA | CPS1_TILES },
- { "tk2-7m.9a", 0x080000, 0x3edeb949, BRF_GRA | CPS1_TILES },
- { "tk2-6m.8a", 0x080000, 0x1abd14d6, BRF_GRA | CPS1_TILES },
- { "tk2-8m.10a", 0x080000, 0xb27948e3, BRF_GRA | CPS1_TILES },
-
- { "tk2_qa.5k", 0x020000, 0xc9183a0d, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "tk2-q1.1k", 0x080000, 0x611268cf, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "tk2-q2.2k", 0x080000, 0x20f55ca9, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "tk2-q3.3k", 0x080000, 0xbfcf6f52, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "tk2-q4.4k", 0x080000, 0x36642e88, BRF_SND | CPS1_QSOUND_SAMPLES },
-
- A_BOARD_QSOUND_PLDS
-
- { "tk263b.1a", 0x000117, 0xc4b0349b, BRF_OPT }, // b-board PLDs
- { "iob1.12d", 0x000117, 0x3abc0700, BRF_OPT },
- { "bprg1.11d", 0x000117, 0x31793da7, BRF_OPT },
-
- { "ioc1.ic1", 0x000117, 0x0d182081, BRF_OPT }, // c-board PLDs
-
- { "d7l1.7l", 0x000117, 0x27b7410d, BRF_OPT }, // d-board PLDs
- { "d8l1.8l", 0x000117, 0x539fc7da, BRF_OPT },
- { "d9k1.9k", 0x000117, 0x00000000, BRF_OPT | BRF_NODUMP},
- { "d10f1.10f", 0x000117, 0x6619c494, BRF_OPT },
-};
-
-STD_ROM_PICK(Wofu)
-STD_ROM_FN(Wofu)
-
-static struct BurnRomInfo WofjRomDesc[] = {
- { "tk2j_23c.8f", 0x080000, 0x9b215a68, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "tk2j_22c.7f", 0x080000, 0xb74b09ac, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "tk2_01.3a", 0x080000, 0x0d9cb9bf, BRF_GRA | CPS1_TILES },
- { "tk2_02.4a", 0x080000, 0x45227027, BRF_GRA | CPS1_TILES },
- { "tk2_03.5a", 0x080000, 0xc5ca2460, BRF_GRA | CPS1_TILES },
- { "tk2_04.6a", 0x080000, 0xe349551c, BRF_GRA | CPS1_TILES },
- { "tk2_05.7a", 0x080000, 0xe4a44d53, BRF_GRA | CPS1_TILES },
- { "tk2_06.8a", 0x080000, 0x58066ba8, BRF_GRA | CPS1_TILES },
- { "tk2_07.9a", 0x080000, 0xd706568e, BRF_GRA | CPS1_TILES },
- { "tk2_08.10a", 0x080000, 0xd4a19a02, BRF_GRA | CPS1_TILES },
-
- { "tk2_qa.5k", 0x020000, 0xc9183a0d, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "tk2-q1.1k", 0x080000, 0x611268cf, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "tk2-q2.2k", 0x080000, 0x20f55ca9, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "tk2-q3.3k", 0x080000, 0xbfcf6f52, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "tk2-q4.4k", 0x080000, 0x36642e88, BRF_SND | CPS1_QSOUND_SAMPLES },
-
- A_BOARD_QSOUND_PLDS
-
- { "tk263b.1a", 0x000117, 0xc4b0349b, BRF_OPT }, // b-board PLDs
- { "iob1.12d", 0x000117, 0x3abc0700, BRF_OPT },
- { "bprg1.11d", 0x000117, 0x31793da7, BRF_OPT },
-
- { "ioc1.ic1", 0x000117, 0x0d182081, BRF_OPT }, // c-board PLDs
-
- { "d7l1.7l", 0x000117, 0x27b7410d, BRF_OPT }, // d-board PLDs
- { "d8l1.8l", 0x000117, 0x539fc7da, BRF_OPT },
- { "d9k1.9k", 0x000117, 0x00000000, BRF_OPT | BRF_NODUMP },
- { "d10f1.10f", 0x000117, 0x6619c494, BRF_OPT },
-};
-
-STD_ROM_PICK(Wofj)
-STD_ROM_FN(Wofj)
-
-static struct BurnRomInfo WofaRomDesc[] = {
- { "tk2a_23c.8f", 0x080000, 0x2e024628, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "tk2a_22c.7f", 0x080000, 0x900ad4cd, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "tk2-1m.3a", 0x080000, 0x0d9cb9bf, BRF_GRA | CPS1_TILES },
- { "tk2-3m.5a", 0x080000, 0x45227027, BRF_GRA | CPS1_TILES },
- { "tk2-2m.4a", 0x080000, 0xc5ca2460, BRF_GRA | CPS1_TILES },
- { "tk2-4m.6a", 0x080000, 0xe349551c, BRF_GRA | CPS1_TILES },
- { "tk2-5m.7a", 0x080000, 0x291f0f0b, BRF_GRA | CPS1_TILES },
- { "tk2-7m.9a", 0x080000, 0x3edeb949, BRF_GRA | CPS1_TILES },
- { "tk2-6m.8a", 0x080000, 0x1abd14d6, BRF_GRA | CPS1_TILES },
- { "tk2-8m.10a", 0x080000, 0xb27948e3, BRF_GRA | CPS1_TILES },
-
- { "tk2_qa.5k", 0x020000, 0xc9183a0d, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "tk2-q1.1k", 0x080000, 0x611268cf, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "tk2-q2.2k", 0x080000, 0x20f55ca9, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "tk2-q3.3k", 0x080000, 0xbfcf6f52, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "tk2-q4.4k", 0x080000, 0x36642e88, BRF_SND | CPS1_QSOUND_SAMPLES },
-
- A_BOARD_QSOUND_PLDS
-
- { "tk263b.1a", 0x000117, 0xc4b0349b, BRF_OPT }, // b-board PLDs
- { "iob1.12d", 0x000117, 0x3abc0700, BRF_OPT },
- { "bprg1.11d", 0x000117, 0x31793da7, BRF_OPT },
-
- { "ioc1.ic1", 0x000117, 0x0d182081, BRF_OPT }, // c-board PLDs
-
- { "d7l1.7l", 0x000117, 0x27b7410d, BRF_OPT }, // d-board PLDs
- { "d8l1.8l", 0x000117, 0x539fc7da, BRF_OPT },
- { "d9k1.9k", 0x000117, 0x00000000, BRF_OPT | BRF_NODUMP },
- { "d10f1.10f", 0x000117, 0x6619c494, BRF_OPT },
-};
-
-STD_ROM_PICK(Wofa)
-STD_ROM_FN(Wofa)
-
-static struct BurnRomInfo WofchRomDesc[] = {
- { "tk2(ch)_23.8f", 0x080000, 0x4e0b8dee, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "tk2(ch)_22.7f", 0x080000, 0xd0937a8d, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "tk2-1m.3a", 0x080000, 0x0d9cb9bf, BRF_GRA | CPS1_TILES },
- { "tk2-3m.5a", 0x080000, 0x45227027, BRF_GRA | CPS1_TILES },
- { "tk2-2m.4a", 0x080000, 0xc5ca2460, BRF_GRA | CPS1_TILES },
- { "tk2-4m.6a", 0x080000, 0xe349551c, BRF_GRA | CPS1_TILES },
- { "tk2(ch)_05.7a", 0x080000, 0xe4a44d53, BRF_GRA | CPS1_TILES },
- { "tk2(ch)_06.8a", 0x080000, 0x58066ba8, BRF_GRA | CPS1_TILES },
- { "tk2(ch)_07.9a", 0x080000, 0xcc9006c9, BRF_GRA | CPS1_TILES }, // 1 byte different from wofj, pcb verified
- { "tk2(ch)_08.10a",0x080000, 0xd4a19a02, BRF_GRA | CPS1_TILES },
-
- { "tk2_qa.5k", 0x020000, 0xc9183a0d, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "tk2-q1.1k", 0x080000, 0x611268cf, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "tk2-q2.2k", 0x080000, 0x20f55ca9, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "tk2-q3.3k", 0x080000, 0xbfcf6f52, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "tk2-q4.4k", 0x080000, 0x36642e88, BRF_SND | CPS1_QSOUND_SAMPLES },
-
- { "buf1", 0x000117, 0xeb122de7, BRF_OPT }, // a-board PLDs
- { "ioa1", 0x000117, 0x59c7ee3b, BRF_OPT },
- { "prg2", 0x000117, 0x4386879a, BRF_OPT },
- { "rom1", 0x000117, 0x41dc73b9, BRF_OPT },
- { "sou1", 0x000117, 0x84f4b2fe, BRF_OPT },
-
- { "tk263b.1a", 0x000117, 0xc4b0349b, BRF_OPT }, // b-board PLDs
- { "iob1.12d", 0x000117, 0x3abc0700, BRF_OPT },
- { "bprg1.11d", 0x000117, 0x31793da7, BRF_OPT },
-
- { "ioc1.ic7", 0x000117, 0x0d182081, BRF_OPT }, // c-board PLDs
- { "c632.ic1", 0x000117, 0x0fbd9270, BRF_OPT },
-
- { "d7l1.7l", 0x000117, 0x27b7410d, BRF_OPT }, // d-board PLDs
- { "d8l1.8l", 0x000117, 0x539fc7da, BRF_OPT },
- { "d9k1.9k", 0x000117, 0x00000000, BRF_OPT | BRF_NODUMP },
- { "d10f1.10f", 0x000117, 0x6619c494, BRF_OPT },
-};
-
-STD_ROM_PICK(Wofch)
-STD_ROM_FN(Wofch)
-
-static struct BurnRomInfo WofchdxRomDesc[] = {
- { "tk2(ch)dx_23.8f", 0x080000, 0x29389b7d, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "tk2(ch)dx_22.7f", 0x080000, 0xa959df0c, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "tk2-1m.3a", 0x080000, 0x0d9cb9bf, BRF_GRA | CPS1_TILES },
- { "tk2-3m.5a", 0x080000, 0x45227027, BRF_GRA | CPS1_TILES },
- { "tk2-2m.4a", 0x080000, 0xc5ca2460, BRF_GRA | CPS1_TILES },
- { "tk2-4m.6a", 0x080000, 0xe349551c, BRF_GRA | CPS1_TILES },
- { "tk2(ch)_05.7a", 0x080000, 0xe4a44d53, BRF_GRA | CPS1_TILES },
- { "tk2(ch)_06.8a", 0x080000, 0x58066ba8, BRF_GRA | CPS1_TILES },
- { "tk2(ch)_07.9a", 0x080000, 0xcc9006c9, BRF_GRA | CPS1_TILES }, // 1 byte different from wofj, pcb verified
- { "tk2(ch)_08.10a",0x080000, 0xd4a19a02, BRF_GRA | CPS1_TILES },
-
- { "tk2_qa.5k", 0x020000, 0xc9183a0d, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "tk2-q1.1k", 0x080000, 0x611268cf, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "tk2-q2.2k", 0x080000, 0x20f55ca9, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "tk2-q3.3k", 0x080000, 0xbfcf6f52, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "tk2-q4.4k", 0x080000, 0x36642e88, BRF_SND | CPS1_QSOUND_SAMPLES },
-
- { "buf1", 0x000117, 0xeb122de7, BRF_OPT }, // a-board PLDs
- { "ioa1", 0x000117, 0x59c7ee3b, BRF_OPT },
- { "prg2", 0x000117, 0x4386879a, BRF_OPT },
- { "rom1", 0x000117, 0x41dc73b9, BRF_OPT },
- { "sou1", 0x000117, 0x84f4b2fe, BRF_OPT },
-
- { "tk263b.1a", 0x000117, 0xc4b0349b, BRF_OPT }, // b-board PLDs
- { "iob1.12d", 0x000117, 0x3abc0700, BRF_OPT },
- { "bprg1.11d", 0x000117, 0x31793da7, BRF_OPT },
-
- { "ioc1.ic7", 0x000117, 0x0d182081, BRF_OPT }, // c-board PLDs
- { "c632.ic1", 0x000117, 0x0fbd9270, BRF_OPT },
-
- { "d7l1.7l", 0x000117, 0x27b7410d, BRF_OPT }, // d-board PLDs
- { "d8l1.8l", 0x000117, 0x539fc7da, BRF_OPT },
- { "d9k1.9k", 0x000117, 0x00000000, BRF_OPT | BRF_NODUMP },
- { "d10f1.10f", 0x000117, 0x6619c494, BRF_OPT },
-};
-
-STD_ROM_PICK(Wofchdx)
-STD_ROM_FN(Wofchdx)
-
-static struct BurnRomInfo WofhfhRomDesc[] = {
- { "23", 0x080000, 0x6ae4b312, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "22", 0x080000, 0x94e8d01a, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "1", 0x080000, 0x0d9cb9bf, BRF_GRA | CPS1_TILES },
- { "2", 0x080000, 0x45227027, BRF_GRA | CPS1_TILES },
- { "3", 0x080000, 0xc5ca2460, BRF_GRA | CPS1_TILES },
- { "4", 0x080000, 0xe349551c, BRF_GRA | CPS1_TILES },
- { "5", 0x080000, 0x34949d7b, BRF_GRA | CPS1_TILES },
- { "6", 0x080000, 0xdfa70971, BRF_GRA | CPS1_TILES },
- { "7", 0x080000, 0x073686a6, BRF_GRA | CPS1_TILES },
- { "8", 0x080000, 0x5300f8db, BRF_GRA | CPS1_TILES },
-
- { "9", 0x020000, 0x86fe8a97, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "18", 0x020000, 0xc04be720, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "19", 0x020000, 0xfbb8d8c1, BRF_SND | CPS1_OKIM6295_SAMPLES },
-};
-
-STD_ROM_PICK(Wofhfh)
-STD_ROM_FN(Wofhfh)
-
-static struct BurnRomInfo WofhRomDesc[] = {
- { "sgyx.800", 0x100000, 0x3703a650, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "sgyx-1.160", 0x200000, 0xa60be9f6, BRF_GRA | CPS1_TILES },
- { "sgyx-2.160", 0x200000, 0x6ad9d048, BRF_GRA | CPS1_TILES },
-
- // These sound roms are taken from sgyxz
- { "sgyxz_snd2.bin", 0x010000, 0x210c376f, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "sgyxz_snd1.bin", 0x040000, 0xc15ac0f2, BRF_SND | CPS1_OKIM6295_SAMPLES },
-};
-
-STD_ROM_PICK(Wofh)
-STD_ROM_FN(Wofh)
-
-static struct BurnRomInfo WofhaRomDesc[] = {
- { "fg-c.040", 0x080000, 0xd046fc86, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "fg-a.040", 0x080000, 0xf176ee8f, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "sgyx-1.160", 0x200000, 0xa60be9f6, BRF_GRA | CPS1_TILES },
- { "sgyx-2.160", 0x200000, 0x6ad9d048, BRF_GRA | CPS1_TILES },
-
- // These sound roms are taken from sgyxz
- { "sgyxz_snd2.bin", 0x010000, 0x210c376f, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "sgyxz_snd1.bin", 0x040000, 0xc15ac0f2, BRF_SND | CPS1_OKIM6295_SAMPLES },
-};
-
-STD_ROM_PICK(Wofha)
-STD_ROM_FN(Wofha)
-
-static struct BurnRomInfo SgyxzRomDesc[] = {
- { "sgyxz_prg2.bin", 0x080000, 0x95429c83, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "sgyxz_prg1.bin", 0x080000, 0xd8511929, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "sgyxz_gfx1.bin", 0x200000, 0xa60be9f6, BRF_GRA | CPS1_TILES },
- { "sgyxz_gfx2.bin", 0x200000, 0x6ad9d048, BRF_GRA | CPS1_TILES },
-
- { "sgyxz_snd2.bin", 0x010000, 0x210c376f, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "sgyxz_snd1.bin", 0x040000, 0xc15ac0f2, BRF_SND | CPS1_OKIM6295_SAMPLES },
-};
-
-STD_ROM_PICK(Sgyxz)
-STD_ROM_FN(Sgyxz)
-
-static struct BurnRomInfo Wof3jsRomDesc[] = {
- { "3js_23.rom", 0x080000, 0x1ebb76da, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "3js_22.rom", 0x080000, 0xf41d6153, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP }, // First and second halves identical
- { "3js_24.rom", 0x020000, 0x06ead409, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "3js_28.rom", 0x020000, 0x8ba934e6, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "tk2_gfx1.rom", 0x080000, 0x0d9cb9bf, BRF_GRA | CPS1_TILES },
- { "tk2_gfx3.rom", 0x080000, 0x45227027, BRF_GRA | CPS1_TILES },
- { "tk2_gfx2.rom", 0x080000, 0xc5ca2460, BRF_GRA | CPS1_TILES },
- { "tk2_gfx4.rom", 0x080000, 0xe349551c, BRF_GRA | CPS1_TILES },
- { "3js_gfx5.rom", 0x080000, 0x94b58f82, BRF_GRA | CPS1_TILES },
- { "3js_gfx7.rom", 0x080000, 0xdf4fb386, BRF_GRA | CPS1_TILES },
- { "3js_gfx6.rom", 0x080000, 0xc22c5bd8, BRF_GRA | CPS1_TILES },
- { "3js_gfx8.rom", 0x080000, 0xf9cfd08b, BRF_GRA | CPS1_TILES },
-
- { "3js_09.rom", 0x010000, 0x21ce044c, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "3js_18.rom", 0x020000, 0xac6e307d, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "3js_19.rom", 0x020000, 0x068741db, BRF_SND | CPS1_OKIM6295_SAMPLES },
-};
-
-STD_ROM_PICK(Wof3js)
-STD_ROM_FN(Wof3js)
-
-static struct BurnRomInfo Wof3jsaRomDesc[] = {
- { "cx2.040", 0x080000, 0xc01a6d2f, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "cx1.040", 0x080000, 0xfd95e677, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "tx-a.160", 0x200000, 0xae348da2, BRF_GRA | CPS1_TILES },
- { "tx-b.160", 0x200000, 0x384a6db0, BRF_GRA | CPS1_TILES },
-
- // These sound roms are taken from wofhfh, this set looks it uses psound
- { "9", 0x020000, 0x86fe8a97, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "18", 0x020000, 0xc04be720, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "19", 0x020000, 0xfbb8d8c1, BRF_SND | CPS1_OKIM6295_SAMPLES },
-};
-
-STD_ROM_PICK(Wof3jsa)
-STD_ROM_FN(Wof3jsa)
-
-static struct BurnRomInfo Wof3sjRomDesc[] = {
- { "k6b.040", 0x080000, 0x7b365108, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "k6a.040", 0x080000, 0x10488a51, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "k6a.160", 0x200000, 0xa121180d, BRF_GRA | CPS1_TILES },
- { "k6b.160", 0x200000, 0xa4db96c4, BRF_GRA | CPS1_TILES },
-
- // These sound roms are taken from wofhfh, this set looks it uses psound
- { "9", 0x020000, 0x86fe8a97, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "18", 0x020000, 0xc04be720, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "19", 0x020000, 0xfbb8d8c1, BRF_SND | CPS1_OKIM6295_SAMPLES },
-};
-
-STD_ROM_PICK(Wof3sj)
-STD_ROM_FN(Wof3sj)
-
-static struct BurnRomInfo Wof3sjaRomDesc[] = {
- { "3js.800", 0x100000, 0x812f9200, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "k6a.160", 0x200000, 0xa121180d, BRF_GRA | CPS1_TILES },
- { "k6b.160", 0x200000, 0xa4db96c4, BRF_GRA | CPS1_TILES },
-
- // These sound roms are taken from wofhfh, this set looks it uses psound
- { "9", 0x020000, 0x86fe8a97, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "18", 0x020000, 0xc04be720, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "19", 0x020000, 0xfbb8d8c1, BRF_SND | CPS1_OKIM6295_SAMPLES },
-};
-
-STD_ROM_PICK(Wof3sja)
-STD_ROM_FN(Wof3sja)
-
-static struct BurnRomInfo WofsjRomDesc[] = {
- { "c-c47b.040", 0x080000, 0xb1809761, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "a-2402.040", 0x080000, 0x4fab4232, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "tk2_gfx1.rom", 0x080000, 0x0d9cb9bf, BRF_GRA | CPS1_TILES },
- { "tk2_gfx3.rom", 0x080000, 0x45227027, BRF_GRA | CPS1_TILES },
- { "tk2_gfx2.rom", 0x080000, 0xc5ca2460, BRF_GRA | CPS1_TILES },
- { "tk2_gfx4.rom", 0x080000, 0xe349551c, BRF_GRA | CPS1_TILES },
- { "tk2_gfx5.rom", 0x080000, 0x291f0f0b, BRF_GRA | CPS1_TILES },
- { "tk2_gfx7.rom", 0x080000, 0x3edeb949, BRF_GRA | CPS1_TILES },
- { "tk2_gfx6.rom", 0x080000, 0x1abd14d6, BRF_GRA | CPS1_TILES },
- { "tk2_gfx8.rom", 0x080000, 0xb27948e3, BRF_GRA | CPS1_TILES },
-
- // These sound roms are taken from wofhfh, this set looks it uses psound
- { "9", 0x020000, 0x86fe8a97, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "18", 0x020000, 0xc04be720, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "19", 0x020000, 0xfbb8d8c1, BRF_SND | CPS1_OKIM6295_SAMPLES },
-};
-
-STD_ROM_PICK(Wofsj)
-STD_ROM_FN(Wofsj)
-
-static struct BurnRomInfo WofsjaRomDesc[] = {
- { "one.800", 0x100000, 0x0507584d, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "tk2_gfx1.rom", 0x080000, 0x0d9cb9bf, BRF_GRA | CPS1_TILES },
- { "tk2_gfx3.rom", 0x080000, 0x45227027, BRF_GRA | CPS1_TILES },
- { "tk2_gfx2.rom", 0x080000, 0xc5ca2460, BRF_GRA | CPS1_TILES },
- { "tk2_gfx4.rom", 0x080000, 0xe349551c, BRF_GRA | CPS1_TILES },
- { "tk2_gfx5.rom", 0x080000, 0x291f0f0b, BRF_GRA | CPS1_TILES },
- { "tk2_gfx7.rom", 0x080000, 0x3edeb949, BRF_GRA | CPS1_TILES },
- { "tk2_gfx6.rom", 0x080000, 0x1abd14d6, BRF_GRA | CPS1_TILES },
- { "tk2_gfx8.rom", 0x080000, 0xb27948e3, BRF_GRA | CPS1_TILES },
-
- // These sound roms are taken from wofhfh, this set looks it uses psound
- { "9", 0x020000, 0x86fe8a97, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "18", 0x020000, 0xc04be720, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "19", 0x020000, 0xfbb8d8c1, BRF_SND | CPS1_OKIM6295_SAMPLES },
-};
-
-STD_ROM_PICK(Wofsja)
-STD_ROM_FN(Wofsja)
-
-static struct BurnRomInfo WofsjbRomDesc[] = {
- { "c-d140.040", 0x080000, 0xe6d933a6, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "a-0050.040", 0x080000, 0x403eaead, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "tk2_gfx1.rom", 0x080000, 0x0d9cb9bf, BRF_GRA | CPS1_TILES },
- { "tk2_gfx3.rom", 0x080000, 0x45227027, BRF_GRA | CPS1_TILES },
- { "tk2_gfx2.rom", 0x080000, 0xc5ca2460, BRF_GRA | CPS1_TILES },
- { "tk2_gfx4.rom", 0x080000, 0xe349551c, BRF_GRA | CPS1_TILES },
- { "tk2_gfx5.rom", 0x080000, 0x291f0f0b, BRF_GRA | CPS1_TILES },
- { "tk2_gfx7.rom", 0x080000, 0x3edeb949, BRF_GRA | CPS1_TILES },
- { "tk2_gfx6.rom", 0x080000, 0x1abd14d6, BRF_GRA | CPS1_TILES },
- { "tk2_gfx8.rom", 0x080000, 0xb27948e3, BRF_GRA | CPS1_TILES },
-
- // using the sound roms from wofhfh or wof3js doesn't give the right result
- // it doesn't use Q-Sound either
-};
-
-STD_ROM_PICK(Wofsjb)
-STD_ROM_FN(Wofsjb)
-
-static struct BurnRomInfo WofsjcRomDesc[] = {
- { "2223.bin", 0x100000, 0xcb28807e, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "1.bin", 0x080000, 0x0d9cb9bf, BRF_GRA | CPS1_TILES },
- { "2.bin", 0x080000, 0x45227027, BRF_GRA | CPS1_TILES },
- { "3.bin", 0x080000, 0xc5ca2460, BRF_GRA | CPS1_TILES },
- { "4.bin", 0x080000, 0xe349551c, BRF_GRA | CPS1_TILES },
- { "5.bin", 0x080000, 0x291f0f0b, BRF_GRA | CPS1_TILES },
- { "6.bin", 0x080000, 0x3edeb949, BRF_GRA | CPS1_TILES },
- { "7.bin", 0x080000, 0x1abd14d6, BRF_GRA | CPS1_TILES },
- { "8.bin", 0x080000, 0xb27948e3, BRF_GRA | CPS1_TILES },
-
- { "9.bin", 0x010000, 0x210c376f, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "18.bin", 0x020000, 0xc04be720, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "19.bin", 0x020000, 0xfbb8d8c1, BRF_SND | CPS1_OKIM6295_SAMPLES },
-};
-
-STD_ROM_PICK(Wofsjc)
-STD_ROM_FN(Wofsjc)
-
-static struct BurnRomInfo WofbRomDesc[] = {
- { "3-f2ab.040", 0x080000, 0x61fd0a01, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "1-9207.040", 0x080000, 0x7f59e24c, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "4-d4d2.010", 0x020000, 0xfe5eee87, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "2-6c41.010", 0x020000, 0x739379be, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "5-caf3.040", 0x080000, 0xc8dcaa95, BRF_GRA | CPS1_TILES },
- { "6-034f.040", 0x080000, 0x1ab0000c, BRF_GRA | CPS1_TILES },
- { "7-b0fa.040", 0x080000, 0x8425ff6b, BRF_GRA | CPS1_TILES },
- { "8-a6b7.040", 0x080000, 0x24ce197b, BRF_GRA | CPS1_TILES },
- { "9-8a2c.040", 0x080000, 0x9d20ef9b, BRF_GRA | CPS1_TILES },
- { "10-7d24.040", 0x080000, 0x90c93dd2, BRF_GRA | CPS1_TILES },
- { "11-4171.040", 0x080000, 0x219fd7e2, BRF_GRA | CPS1_TILES },
- { "12-f56b.040", 0x080000, 0xefc17c9a, BRF_GRA | CPS1_TILES },
-
- // These sound roms are taken from wof3js, this set looks it uses psound
- { "3js_09.rom", 0x010000, 0x21ce044c, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "3js_18.rom", 0x020000, 0xac6e307d, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "3js_19.rom", 0x020000, 0x068741db, BRF_SND | CPS1_OKIM6295_SAMPLES },
-};
-
-STD_ROM_PICK(Wofb)
-STD_ROM_FN(Wofb)
-
-static struct BurnRomInfo WofjhRomDesc[] = {
- { "tk2j23h.bin", 0x080000, 0x84d38575, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "tk2j22c.bin", 0x080000, 0xb74b09ac, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "tk2_gfx1.rom", 0x080000, 0x0d9cb9bf, BRF_GRA | CPS1_TILES },
- { "tk2_gfx3.rom", 0x080000, 0x45227027, BRF_GRA | CPS1_TILES },
- { "tk2_gfx2.rom", 0x080000, 0xc5ca2460, BRF_GRA | CPS1_TILES },
- { "tk2_gfx4.rom", 0x080000, 0xe349551c, BRF_GRA | CPS1_TILES },
- { "tk205.bin", 0x080000, 0xe4a44d53, BRF_GRA | CPS1_TILES },
- { "tk206.bin", 0x080000, 0x58066ba8, BRF_GRA | CPS1_TILES },
- { "tk207.bin", 0x080000, 0xd706568e, BRF_GRA | CPS1_TILES },
- { "tk208.bin", 0x080000, 0xd4a19a02, BRF_GRA | CPS1_TILES },
-
- { "tk2_qa.rom", 0x020000, 0xc9183a0d, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "tk2_q1.rom", 0x080000, 0x611268cf, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "tk2_q2.rom", 0x080000, 0x20f55ca9, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "tk2_q3.rom", 0x080000, 0xbfcf6f52, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "tk2_q4.rom", 0x080000, 0x36642e88, BRF_SND | CPS1_QSOUND_SAMPLES },
-};
-
-STD_ROM_PICK(Wofjh)
-STD_ROM_FN(Wofjh)
-
-static struct BurnRomInfo WofahRomDesc[] = {
- { "htk2a_23b.rom", 0x080000, 0x1b17fc85, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "tk2a_22b.rom", 0x080000, 0x900ad4cd, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "tk2_gfx1.rom", 0x080000, 0x0d9cb9bf, BRF_GRA | CPS1_TILES },
- { "tk2_gfx3.rom", 0x080000, 0x45227027, BRF_GRA | CPS1_TILES },
- { "tk2_gfx2.rom", 0x080000, 0xc5ca2460, BRF_GRA | CPS1_TILES },
- { "tk2_gfx4.rom", 0x080000, 0xe349551c, BRF_GRA | CPS1_TILES },
- { "tk2_gfx5.rom", 0x080000, 0x291f0f0b, BRF_GRA | CPS1_TILES },
- { "tk2_gfx7.rom", 0x080000, 0x3edeb949, BRF_GRA | CPS1_TILES },
- { "tk2_gfx6.rom", 0x080000, 0x1abd14d6, BRF_GRA | CPS1_TILES },
- { "tk2_gfx8.rom", 0x080000, 0xb27948e3, BRF_GRA | CPS1_TILES },
-
- { "tk2_qa.rom", 0x020000, 0xc9183a0d, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "tk2_q1.rom", 0x080000, 0x611268cf, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "tk2_q2.rom", 0x080000, 0x20f55ca9, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "tk2_q3.rom", 0x080000, 0xbfcf6f52, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "tk2_q4.rom", 0x080000, 0x36642e88, BRF_SND | CPS1_QSOUND_SAMPLES },
-};
-
-STD_ROM_PICK(Wofah)
-STD_ROM_FN(Wofah)
-
-static struct BurnRomInfo WofahaRomDesc[] = {
- { "htk2ah_23b.rom",0x080000, 0x6e3ff382, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- // Taken from wofah, possibly not correct, although does match original Asia set as well
- { "tk2a_22b.rom", 0x080000, 0x900ad4cd, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "tk2_gfx1.rom", 0x080000, 0x0d9cb9bf, BRF_GRA | CPS1_TILES },
- { "tk2_gfx3.rom", 0x080000, 0x45227027, BRF_GRA | CPS1_TILES },
- { "tk2_gfx2.rom", 0x080000, 0xc5ca2460, BRF_GRA | CPS1_TILES },
- { "tk2_gfx4.rom", 0x080000, 0xe349551c, BRF_GRA | CPS1_TILES },
- { "tk2_gfx5.rom", 0x080000, 0x291f0f0b, BRF_GRA | CPS1_TILES },
- { "tk2_gfx7.rom", 0x080000, 0x3edeb949, BRF_GRA | CPS1_TILES },
- { "tk2_gfx6.rom", 0x080000, 0x1abd14d6, BRF_GRA | CPS1_TILES },
- { "tk2_gfx8.rom", 0x080000, 0xb27948e3, BRF_GRA | CPS1_TILES },
-
- { "tk2_qa.rom", 0x020000, 0xc9183a0d, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "tk2_q1.rom", 0x080000, 0x611268cf, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "tk2_q2.rom", 0x080000, 0x20f55ca9, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "tk2_q3.rom", 0x080000, 0xbfcf6f52, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "tk2_q4.rom", 0x080000, 0x36642e88, BRF_SND | CPS1_QSOUND_SAMPLES },
-};
-
-STD_ROM_PICK(Wofaha)
-STD_ROM_FN(Wofaha)
-
-static struct BurnRomInfo WofahbRomDesc[] = {
- { "tk2ah_23b.rom", 0x080000, 0x48fd83c6, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- // Taken from wofah, possibly not correct, although does match original Asia set as well
- { "tk2a_22b.rom", 0x080000, 0x900ad4cd, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "tk2_gfx1.rom", 0x080000, 0x0d9cb9bf, BRF_GRA | CPS1_TILES },
- { "tk2_gfx3.rom", 0x080000, 0x45227027, BRF_GRA | CPS1_TILES },
- { "tk2_gfx2.rom", 0x080000, 0xc5ca2460, BRF_GRA | CPS1_TILES },
- { "tk2_gfx4.rom", 0x080000, 0xe349551c, BRF_GRA | CPS1_TILES },
- { "tk2_gfx5.rom", 0x080000, 0x291f0f0b, BRF_GRA | CPS1_TILES },
- { "tk2_gfx7.rom", 0x080000, 0x3edeb949, BRF_GRA | CPS1_TILES },
- { "tk2_gfx6.rom", 0x080000, 0x1abd14d6, BRF_GRA | CPS1_TILES },
- { "tk2_gfx8.rom", 0x080000, 0xb27948e3, BRF_GRA | CPS1_TILES },
-
- { "tk2_qa.rom", 0x020000, 0xc9183a0d, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "tk2_q1.rom", 0x080000, 0x611268cf, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "tk2_q2.rom", 0x080000, 0x20f55ca9, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "tk2_q3.rom", 0x080000, 0xbfcf6f52, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "tk2_q4.rom", 0x080000, 0x36642e88, BRF_SND | CPS1_QSOUND_SAMPLES },
-};
-
-STD_ROM_PICK(Wofahb)
-STD_ROM_FN(Wofahb)
-
-static struct BurnRomInfo Cps1frogRomDesc[] = {
- { "frog30-36.bin", 0x020000, 0x8eb8ddbe, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "frog35-42.bin", 0x020000, 0xacb5a988, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "frog31-37.bin", 0x020000, 0x154803cc, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "frog36-43.bin", 0x020000, 0x154803cc, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "frog32-32m.bin",0x080000, 0x75660aac, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "frog05-05m.bin",0x080000, 0x7bbc4b54, BRF_GRA | CPS1_TILES },
- { "frog07-07m.bin",0x080000, 0x0beadd80, BRF_GRA | CPS1_TILES },
- { "frog01-01m.bin",0x080000, 0xf84d02bb, BRF_GRA | CPS1_TILES },
- { "frog03-03m.bin",0x080000, 0xd784a5b0, BRF_GRA | CPS1_TILES },
-
- { "frog09-09.bin", 0x010000, 0x3ac7fb5c, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "frog18-18.bin", 0x020000, 0x65d1ef07, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "frog19-19.bin", 0x020000, 0x7ee8cdcd, BRF_SND | CPS1_OKIM6295_SAMPLES },
-};
-
-STD_ROM_PICK(Cps1frog)
-STD_ROM_FN(Cps1frog)
-
-// Game config
-
-typedef void (*KabukiDecode)();
-static KabukiDecode KabukiDecodeFunction;
-
-static INT32 GameHasStars = 0;
-
-struct GameConfig {
- const char *DriverName;
- INT32 CpsBId;
- INT32 CpsMapperId;
- INT32 CpsStars;
- KabukiDecode DecodeFunction;
-};
-
-static const struct GameConfig ConfigTable[] =
-{
- { "1941" , CPS_B_05 , mapper_YI24B , 0, NULL },
- { "1941r1" , CPS_B_05 , mapper_YI24B , 0, NULL },
- { "1941u" , CPS_B_05 , mapper_YI24B , 0, NULL },
- { "1941j" , CPS_B_05 , mapper_YI24B , 0, NULL },
- { "3wonders" , CPS_B_21_BT1, mapper_RT24B , 0, NULL },
- { "3wondersr1" , CPS_B_21_BT1, mapper_RT24B , 0, NULL },
- { "3wondersu" , CPS_B_21_BT1, mapper_RT24B , 0, NULL },
- { "wonder3" , CPS_B_21_BT1, mapper_RT22B , 0, NULL },
- { "3wondersh" , CPS_B_02 , mapper_RT24B , 0, NULL },
- { "3wondersha" , CPS_B_21_BT1, mapper_RT24B , 0, NULL },
- { "3wondersb" , CPS_B_21_BT1, mapper_RT24B , 0, NULL },
- { "captcomm" , CPS_B_21_BT3, mapper_CC63B , 0, NULL },
- { "captcommr1" , CPS_B_21_BT3, mapper_CC63B , 0, NULL },
- { "captcommu" , CPS_B_21_BT3, mapper_CC63B , 0, NULL },
- { "captcommj" , CPS_B_21_BT3, mapper_CC63B , 0, NULL },
- { "captcommjr1" , CPS_B_21_BT3, mapper_CC63B , 0, NULL },
- { "captcommb" , CPS_B_21_BT3, mapper_CC63B , 0, NULL },
- { "captcommb2" , CPS_B_21_BT3, mapper_CC63B , 0, NULL },
- { "cawing" , CPS_B_16 , mapper_CA24B , 0, NULL },
- { "cawingr1" , CPS_B_16 , mapper_CA24B , 0, NULL },
- { "cawingu" , CPS_B_16 , mapper_CA24B , 0, NULL },
- { "cawingj" , CPS_B_16 , mapper_CA22B , 0, NULL },
- { "cawingbl" , CPS_B_16 , mapper_CA24B , 0, NULL },
- { "cawingb2" , CPS_B_16 , mapper_CA24B , 0, NULL },
- { "cworld2j" , CPS_B_21_BT6, mapper_Q522B , 0, NULL },
- { "cworld2ja" , CPS_B_21_DEF, mapper_Q522B , 0, NULL }, // patched set, no battery, could be desuicided
- { "cworld2jb" , CPS_B_21_BT6, mapper_Q522B , 0, NULL }, // actually Q563B
- { "dino" , CPS_B_21_QS2, mapper_CD63B , 0, dino_decode },
- { "dinoa" , CPS_B_21_QS2, mapper_CD63B , 0, dino_decode },
- { "dinou" , CPS_B_21_QS2, mapper_CD63B , 0, dino_decode },
- { "dinoj" , CPS_B_21_QS2, mapper_CD63B , 0, dino_decode },
- { "dinopic" , CPS_B_21_QS2, mapper_CD63B , 0, NULL },
- { "dinopic2" , CPS_B_21_QS2, mapper_CD63B , 0, NULL },
- { "dinopic3" , CPS_B_21_QS2, mapper_CD63B , 0, NULL },
- { "dinopic4" , CPS_B_21_QS2, mapper_CD63B , 0, NULL },
- { "dinoeh" , CPS_B_21_QS2, mapper_CD63B , 0, dino_decode },
- { "dinoh" , CPS_B_21_DEF, mapper_CD63B , 0, dino_decode },
- { "dinohc" , CPS_B_21_DEF, mapper_CD63B , 0, dino_decode }, // hacked to run on Street Fighter II' Champion Edition C-Board
- { "dinot" , CPS_B_21_DEF, mapper_CD63B , 0, dino_decode },
- { "dinotpic" , CPS_B_21_QS2, mapper_CD63B , 0, dino_decode },
- { "dinohunt" , CPS_B_21_DEF, mapper_CD63B , 0, NULL },
- { "dynwar" , CPS_B_02 , mapper_TK22B , 0, NULL },
- { "dynwara" , CPS_B_02 , mapper_TK22B , 0, NULL },
- { "dynwarj" , CPS_B_02 , mapper_TK22B , 0, NULL },
- { "dynwarjr" , CPS_B_21_DEF, mapper_TK22B , 0, NULL },
- { "ffight" , CPS_B_04 , mapper_S224B , 0, NULL },
- { "ffighta" , CPS_B_04 , mapper_S224B , 0, NULL },
- { "ffightu" , CPS_B_04 , mapper_S224B , 0, NULL },
- { "ffightu1" , CPS_B_04 , mapper_S224B , 0, NULL },
- { "ffightu2" , CPS_B_04 , mapper_S224B , 0, NULL },
- { "ffightua" , CPS_B_01 , mapper_S224B , 0, NULL },
- { "ffightub" , CPS_B_03 , mapper_S224B , 0, NULL }, // 04 handwritten on CPS-B chip
- { "ffightuc" , CPS_B_05 , mapper_S224B , 0, NULL },
- { "ffightj" , CPS_B_04 , mapper_S224B , 0, NULL },
- { "ffightj1" , CPS_B_01 , mapper_S224B , 0, NULL },
- { "ffightj2" , CPS_B_02 , mapper_S224B , 0, NULL },
- { "ffightj3" , CPS_B_05 , mapper_S224B , 0, NULL },
- { "ffightjh" , CPS_B_01 , mapper_S224B , 0, NULL },
- { "ffightbl" , HACK_B_5 , mapper_S224B , 0, NULL },
- { "ffightbla" , HACK_B_5 , mapper_S224B , 0, NULL },
- { "fcrash" , HACK_B_5 , mapper_S224B , 0, NULL }, // doesn't really have an ID, but this used to give the relevant values to our rendering functions
- { "forgottn" , CPS_B_01 , mapper_LW621 , 1, NULL },
- { "forgottna" , CPS_B_01 , mapper_LW621 , 1, NULL },
- { "forgottnu" , CPS_B_01 , mapper_LW621 , 1, NULL },
- { "forgottnua" , CPS_B_01 , mapper_LWCHR , 1, NULL },
- { "forgottnuaa" , CPS_B_01 , mapper_LWCHR , 1, NULL },
- { "forgottnuc" , CPS_B_01 , mapper_LWCHR , 1, NULL },
- { "forgottnue" , CPS_B_01 , mapper_LWCHR , 1, NULL },
- { "lostwrld" , CPS_B_01 , mapper_LWCHR , 1, NULL },
- { "lostwrldo" , CPS_B_01 , mapper_LWCHR , 1, NULL },
- { "ganbare" , CPS_B_21_DEF, mapper_sfzch , 0, NULL },
- { "ghouls" , CPS_B_01 , mapper_DM620 , 0, NULL },
- { "ghoulsu" , CPS_B_01 , mapper_DM620 , 0, NULL },
- { "daimakai" , CPS_B_01 , mapper_DM22A , 0, NULL },
- { "daimakair" , CPS_B_21_DEF, mapper_DAM63B, 0, NULL },
- { "daimakaib" , CPS_B_21_DEF, mapper_DAM63B, 0, NULL }, // game controls layers at 0x98000c
- { "knights" , CPS_B_21_BT4, mapper_KR63B , 0, NULL },
- { "knightsu" , CPS_B_21_BT4, mapper_KR63B , 0, NULL },
- { "knightsj" , CPS_B_21_BT4, mapper_KR63B , 0, NULL },
- { "knightsja" , CPS_B_21_BT4, mapper_KR63B , 0, NULL },
- { "knightsb" , CPS_B_21_BT4, mapper_KR63B , 0, NULL }, // game controls layers (and priorities?) at 0x98000c
- { "knightsb2" , CPS_B_21_BT4, mapper_KR63B , 0, NULL },
- { "knightsb3" , CPS_B_21_DEF, mapper_KR63B , 0, NULL },
- { "knightsb4" , CPS_B_21_BT4, mapper_KR63B , 0, NULL }, // game controls layers (and priorities?) at 0x98000c
- { "knightsh" , CPS_B_21_DEF, mapper_KR63B , 0, NULL },
- { "knightsh2" , CPS_B_21_DEF, mapper_KR63B , 0, NULL },
- { "kod" , CPS_B_21_BT2, mapper_KD29B , 0, NULL },
- { "kodr1" , CPS_B_21_BT2, mapper_KD29B , 0, NULL },
- { "kodu" , CPS_B_21_BT2, mapper_KD29B , 0, NULL },
- { "kodj" , CPS_B_21_BT2, mapper_KD29B , 0, NULL },
- { "kodja" , CPS_B_21_BT2, mapper_KD29B , 0, NULL },
- { "kodb" , CPS_B_21_BT2, mapper_KD29B , 0, NULL }, // game writes priority masks 1&2 at 0x980020-22 range, 0&3 assumed hard-coded at boot
- { "kodh" , CPS_B_21_DEF, mapper_KD29B , 0, NULL },
- { "kodda" , CPS_B_21_DEF, mapper_KD29B , 0, NULL },
- { "megaman" , CPS_B_21_DEF, mapper_RCM63B, 0, NULL },
- { "megamana" , CPS_B_21_DEF, mapper_RCM63B, 0, NULL },
- { "rockmanj" , CPS_B_21_DEF, mapper_RCM63B, 0, NULL },
- { "mercs" , CPS_B_12 , mapper_O224B , 0, NULL },
- { "mercsu" , CPS_B_12 , mapper_O224B , 0, NULL },
- { "mercsur1" , CPS_B_12 , mapper_O224B , 0, NULL },
- { "mercsj" , CPS_B_12 , mapper_O224B , 0, NULL },
- { "msword" , CPS_B_13 , mapper_MS24B , 0, NULL },
- { "mswordr1" , CPS_B_13 , mapper_MS24B , 0, NULL },
- { "mswordu" , CPS_B_13 , mapper_MS24B , 0, NULL },
- { "mswordj" , CPS_B_13 , mapper_MS24B , 0, NULL },
- { "mtwins" , CPS_B_14 , mapper_CK24B , 0, NULL },
- { "chikij" , CPS_B_14 , mapper_CK24B , 0, NULL },
- { "nemo" , CPS_B_15 , mapper_NM24B , 0, NULL },
- { "nemor1" , CPS_B_15 , mapper_NM24B , 0, NULL },
- { "nemoj" , CPS_B_15 , mapper_NM24B , 0, NULL },
- { "pang3" , CPS_B_21_DEF, mapper_pang3 , 0, NULL },
- { "pang3r1" , CPS_B_21_DEF, mapper_pang3 , 0, NULL },
- { "pang3r1a" , CPS_B_21_DEF, mapper_pang3 , 0, NULL },
- { "pang3b" , CPS_B_21_DEF, mapper_pang3 , 0, NULL },
- { "pang3b2" , CPS_B_04 , mapper_pang3 , 0, NULL }, // hacked to run on Final Fight C-Board
- { "pang3b3" , CPS_B_04 , mapper_pang3 , 0, NULL }, // hacked to run on Final Fight C-Board
- { "pang3j" , CPS_B_21_DEF, mapper_pang3 , 0, NULL },
- { "pnickj" , CPS_B_21_DEF, mapper_PKB10B, 0, NULL },
- { "pokonyan" , CPS_B_21_DEF, mapper_pokon , 0, NULL },
- { "punisher" , CPS_B_21_QS3, mapper_PS63B , 0, punisher_decode },
- { "punisheru" , CPS_B_21_QS3, mapper_PS63B , 0, punisher_decode },
- { "punisherj" , CPS_B_21_QS3, mapper_PS63B , 0, punisher_decode },
- { "punisherh" , CPS_B_21_QS3, mapper_PS63B , 0, punisher_decode },
- { "punipic" , CPS_B_21_QS3, mapper_PS63B , 0, NULL }, // game controls layers at 0x98000c
- { "punipic2" , CPS_B_21_QS3, mapper_PS63B , 0, NULL }, // game controls layers at 0x98000c
- { "punipic3" , CPS_B_21_QS3, mapper_PS63B , 0, NULL }, // game controls layers at 0x98000c
- { "punisherbz" , CPS_B_21_DEF, mapper_PS63B , 0, NULL },
- { "punisherb" , CPS_B_21_QS3, mapper_PS63B , 0, NULL },
- { "qad" , CPS_B_21_BT7, mapper_QD22B , 0, NULL },
- { "qadjr" , CPS_B_21_DEF, mapper_QD63B , 0, NULL },
- { "qtono2j" , CPS_B_21_DEF, mapper_TN2292, 0, NULL },
- { "sf2" , CPS_B_11 , mapper_STF29 , 0, NULL },
- { "sf2eb" , CPS_B_17 , mapper_STF29 , 0, NULL },
- { "sf2ed" , CPS_B_05 , mapper_STF29 , 0, NULL },
- { "sf2ee" , CPS_B_18 , mapper_STF29 , 0, NULL },
- { "sf2em" , CPS_B_17 , mapper_STF29 , 0, NULL },
- { "sf2ebbl" , CPS_B_17 , mapper_STF29 , 0, NULL },
- { "sf2ebbl2" , CPS_B_17 , mapper_STF29 , 0, NULL },
- { "sf2ebbl3" , CPS_B_17 , mapper_STF29 , 0, NULL },
- { "sf2stt" , CPS_B_17 , mapper_STF29 , 0, NULL },
- { "sf2ua" , CPS_B_17 , mapper_STF29 , 0, NULL },
- { "sf2ub" , CPS_B_17 , mapper_STF29 , 0, NULL },
- { "sf2uc" , CPS_B_12 , mapper_STF29 , 0, NULL },
- { "sf2ud" , CPS_B_05 , mapper_STF29 , 0, NULL },
- { "sf2ue" , CPS_B_18 , mapper_STF29 , 0, NULL },
- { "sf2uf" , CPS_B_15 , mapper_STF29 , 0, NULL },
- { "sf2ug" , CPS_B_11 , mapper_STF29 , 0, NULL },
- { "sf2ui" , CPS_B_14 , mapper_STF29 , 0, NULL },
- { "sf2uk" , CPS_B_17 , mapper_STF29 , 0, NULL },
- { "sf2j" , CPS_B_13 , mapper_STF29 , 0, NULL },
- { "sf2j17" , CPS_B_17 , mapper_STF29 , 0, NULL },
- { "sf2ja" , CPS_B_17 , mapper_STF29 , 0, NULL },
- { "sf2jc" , CPS_B_12 , mapper_STF29 , 0, NULL },
- { "sf2jf" , CPS_B_15 , mapper_STF29 , 0, NULL },
- { "sf2jh" , CPS_B_13 , mapper_STF29 , 0, NULL },
- { "sf2jl" , CPS_B_17 , mapper_STF29 , 0, NULL },
- { "sf2jla" , CPS_B_17 , mapper_STF29 , 0, NULL },
- { "sf2qp1" , CPS_B_17 , mapper_STF29 , 0, NULL },
- { "sf2thndr" , CPS_B_17 , mapper_STF29 , 0, NULL },
- { "sf2b" , CPS_B_17 , mapper_STF29 , 0, NULL },
- { "sf2b2" , CPS_B_17 , mapper_STF29 , 0, NULL },
- { "sf2b3" , CPS_B_17 , mapper_STF29 , 0, NULL },
- { "sf2bhh" , CPS_B_21_DEF, mapper_S9263B, 0, NULL },
- { "sf2ce" , CPS_B_21_DEF, mapper_S9263B, 0, NULL },
- { "sf2ceea" , CPS_B_21_DEF, mapper_S9263B, 0, NULL },
- { "sf2ceua" , CPS_B_21_DEF, mapper_S9263B, 0, NULL },
- { "sf2ceub" , CPS_B_21_DEF, mapper_S9263B, 0, NULL },
- { "sf2ceuc" , CPS_B_21_DEF, mapper_S9263B, 0, NULL },
- { "sf2ceja" , CPS_B_21_DEF, mapper_S9263B, 0, NULL },
- { "sf2cejb" , CPS_B_21_DEF, mapper_S9263B, 0, NULL },
- { "sf2cejc" , CPS_B_21_DEF, mapper_S9263B, 0, NULL },
- { "sf2rb" , CPS_B_21_DEF, mapper_S9263B, 0, NULL },
- { "sf2rb2" , CPS_B_21_DEF, mapper_S9263B, 0, NULL },
- { "sf2rb3" , CPS_B_21_DEF, mapper_S9263B, 0, NULL },
- { "sf2rb4" , HACK_B_1 , mapper_S9263B, 0, NULL },
- { "sf2rb5" , HACK_B_1 , mapper_S9263B, 0, NULL },
- { "sf2rb6" , CPS_B_21_DEF, mapper_S9263B, 0, NULL },
- { "sf2red" , CPS_B_21_DEF, mapper_S9263B, 0, NULL },
- { "sf2red2" , CPS_B_21_DEF, mapper_S9263B, 0, NULL },
- { "sf2v004" , CPS_B_21_DEF, mapper_S9263B, 0, NULL },
- { "sf2v0042" , CPS_B_21_DEF, mapper_S9263B, 0, NULL },
- { "sf2v0043" , CPS_B_21_DEF, mapper_S9263B, 0, NULL },
- { "sf2dongb" , CPS_B_21_DEF, mapper_S9263B, 0, NULL },
- { "sf2acc" , CPS_B_21_DEF, mapper_S9263B, 0, NULL },
- { "sf2acca" , CPS_B_21_DEF, mapper_S9263B, 0, NULL },
- { "sf2accp2" , CPS_B_21_DEF, mapper_S9263B, 0, NULL },
- { "sf2dkot2" , CPS_B_21_DEF, mapper_S9263B, 0, NULL },
- { "sf2md" , CPS_B_21_DEF, mapper_S9263B, 0, NULL }, // game controls layers at 0x98000c
- { "sf2mdt" , CPS_B_21_DEF, mapper_S9263B, 0, NULL },
- { "sf2mdta" , CPS_B_21_DEF, mapper_S9263B, 0, NULL },
- { "sf2mdtb" , CPS_B_21_DEF, mapper_S9263B, 0, NULL },
- { "sf2mdtc" , CPS_B_21_DEF, mapper_S9263B, 0, NULL },
- { "sf2tlona" , CPS_B_21_DEF, mapper_S9263B, 0, NULL },
- { "sf2tlonb" , CPS_B_21_DEF, mapper_S9263B, 0, NULL },
- { "sf2tlonc" , CPS_B_21_DEF, mapper_S9263B, 0, NULL },
- { "sf2yyc" , CPS_B_21_DEF, mapper_S9263B, 0, NULL },
- { "sf2yyc2" , CPS_B_21_DEF, mapper_S9263B, 0, NULL },
- { "sf2koryu" , CPS_B_21_DEF, mapper_S9263B, 0, NULL },
- { "sf2koryu2" , CPS_B_21_DEF, mapper_S9263B, 0, NULL },
- { "sf2koryu3" , CPS_B_21_DEF, mapper_S9263B, 0, NULL },
- { "sf2amf" , CPS_B_21_DEF, mapper_S9263B, 0, NULL },
- { "sf2amf2" , CPS_B_21_DEF, mapper_S9263B, 0, NULL },
- { "sf2amf3" , CPS_B_21_DEF, mapper_S9263B, 0, NULL },
- { "sf2amf4" , CPS_B_21_DEF, mapper_S9263B, 0, NULL },
- { "sf2amf5" , CPS_B_21_DEF, mapper_S9263B, 0, NULL },
- { "sf2amf6" , CPS_B_21_DEF, mapper_S9263B, 0, NULL },
- { "sf2amf7" , CPS_B_21_DEF, mapper_S9263B, 0, NULL },
- { "sf2amf8" , CPS_B_21_DEF, mapper_S9263B, 0, NULL },
- { "sf2mega" , CPS_B_21_DEF, mapper_S9263B, 0, NULL },
- { "sf2mega2" , CPS_B_21_DEF, mapper_S9263B, 0, NULL },
- { "sf2ceeabl" , CPS_B_21_DEF, mapper_S9263B, 0, NULL }, // game controls layers at 0x98000c
- { "sf2ceeab2" , CPS_B_21_DEF, mapper_S9263B, 0, NULL }, // game controls layers at 0x98000c
- { "sf2ceeab3" , CPS_B_21_DEF, mapper_S9263B, 0, NULL },
- { "sf2ceeab4" , CPS_B_21_DEF, mapper_S9263B, 0, NULL },
- { "sf2ceeab5" , CPS_B_21_DEF, mapper_S9263B, 0, NULL },
- { "sf2cejabl" , HACK_B_1 , mapper_S9263B, 0, NULL },
- { "sf2cejab2" , HACK_B_1 , mapper_S9263B, 0, NULL },
- { "sf2ceupl" , HACK_B_1 , mapper_S9263B, 0, NULL },
- { "sf2ceuabl" , HACK_B_2 , mapper_S9263B, 0, NULL },
- { "sf2ceuab2" , HACK_B_2 , mapper_S9263B, 0, NULL },
- { "sf2ceuab3" , HACK_B_2 , mapper_S9263B, 0, NULL },
- { "sf2ceuab4" , HACK_B_2 , mapper_S9263B, 0, NULL },
- { "sf2ceuab5" , HACK_B_2 , mapper_S9263B, 0, NULL },
- { "sf2ceuab6" , CPS_B_21_DEF, mapper_S9263B, 0, NULL },
- { "sf2ceuab7" , CPS_B_21_DEF, mapper_S9263B, 0, NULL },
- { "sf2ceuab8" , HACK_B_1 , mapper_S9263B, 0, NULL },
- { "sf2ceuab9" , HACK_B_1 , mapper_S9263B, 0, NULL },
- { "sf2ceucbl" , CPS_B_21_DEF, mapper_S9263B, 0, NULL },
- { "sf2cebltw" , CPS_B_21_DEF, mapper_S9263B, 0, NULL },
- { "sf2sl73a" , CPS_B_21_DEF, mapper_S9263B, 0, NULL },
- { "sf2hf" , CPS_B_21_DEF, mapper_S9263B, 0, NULL },
- { "sf2hfu" , CPS_B_21_DEF, mapper_S9263B, 0, NULL },
- { "sf2hfj" , CPS_B_21_DEF, mapper_S9263B, 0, NULL },
- { "sf2hfub" , CPS_B_21_DEF, mapper_S9263B, 0, NULL },
- { "sf2hfjb" , HACK_B_4 , mapper_S9263B, 0, NULL },
- { "sf2hfjb2" , HACK_B_4 , mapper_S9263B, 0, NULL },
- { "slammast" , CPS_B_21_QS4, mapper_MB63B , 0, slammast_decode },
- { "slammastu" , CPS_B_21_QS4, mapper_MB63B , 0, slammast_decode },
- { "mbomberj" , CPS_B_21_QS4, mapper_MB63B , 0, slammast_decode },
- { "mbombrd" , CPS_B_21_QS5, mapper_MB63B , 0, slammast_decode },
- { "mbombrdj" , CPS_B_21_QS5, mapper_MB63B , 0, slammast_decode },
- { "slampic" , CPS_B_21_QS4, mapper_MB63B , 0, NULL },
- { "strider" , CPS_B_01 , mapper_ST24M1, 1, NULL },
- { "striderua" , CPS_B_01 , mapper_ST24M1, 1, NULL },
- { "strideruc" , CPS_B_17 , mapper_ST24M1, 1, NULL },
- { "striderjr" , CPS_B_21_DEF, mapper_ST24M1, 1, NULL },
- { "striderj" , CPS_B_01 , mapper_ST22B , 1, NULL },
- { "unsquad" , CPS_B_11 , mapper_AR24B , 0, NULL },
- { "area88" , CPS_B_11 , mapper_AR22B , 0, NULL },
- { "area88r" , CPS_B_21_DEF, mapper_AR22B , 0, NULL },
- { "varth" , CPS_B_04 , mapper_VA63B , 0, NULL },
- { "varthr1" , CPS_B_04 , mapper_VA63B , 0, NULL },
- { "varthu" , CPS_B_04 , mapper_VA63B , 0, NULL },
- { "varthj" , CPS_B_21_BT5, mapper_VA22B , 0, NULL },
- { "varthjr" , CPS_B_21_BT5, mapper_VA63B , 0, NULL }, // CPSB test has been patched out (72=0001) register is also written to, possibly leftover from development */
- { "varthb" , CPS_B_04 , mapper_VA63B , 0, NULL },
- { "willow" , CPS_B_03 , mapper_WL24B , 0, NULL },
- { "willowu" , CPS_B_03 , mapper_WL24B , 0, NULL },
- { "willowuo" , CPS_B_03 , mapper_WL24B , 0, NULL },
- { "willowj" , CPS_B_03 , mapper_WL24B , 0, NULL },
- { "wof" , CPS_B_21_QS1, mapper_TK263B, 0, wof_decode },
- { "wofr1" , CPS_B_21_DEF, mapper_TK263B, 0, wof_decode },
- { "wofu" , CPS_B_21_QS1, mapper_TK263B, 0, wof_decode },
- { "wofj" , CPS_B_21_QS1, mapper_TK263B, 0, wof_decode },
- { "wofa" , CPS_B_21_DEF, mapper_TK263B, 0, wof_decode },
- { "wofhfh" , CPS_B_21_DEF, mapper_TK263B, 0, NULL },
- { "wofh" , HACK_B_6 , mapper_TK263B, 0, NULL },
- { "wofha" , HACK_B_6 , mapper_TK263B, 0, NULL },
- { "sgyxz" , HACK_B_6 , mapper_TK263B, 0, NULL },
- { "wof3js" , CPS_B_21_DEF, mapper_TK263B, 0, NULL },
- { "wof3jsa" , HACK_B_6 , mapper_TK263B, 0, NULL },
- { "wof3sj" , HACK_B_6 , mapper_TK263B, 0, NULL },
- { "wof3sja" , HACK_B_6 , mapper_TK263B, 0, NULL },
- { "wofsj" , HACK_B_6 , mapper_TK263B, 0, NULL },
- { "wofsja" , HACK_B_6 , mapper_TK263B, 0, NULL },
- { "wofsjb" , CPS_B_21_DEF, mapper_TK263B, 0, NULL },
- { "wofsjc" , HACK_B_6 , mapper_TK263B, 0, NULL },
- { "wofb" , CPS_B_21_DEF, mapper_TK263B, 0, NULL }, // game controls layers at 0x98000c
- { "wofjh" , CPS_B_21_QS1, mapper_TK263B, 0, wof_decode },
- { "wofah" , CPS_B_21_DEF, mapper_TK263B, 0, wof_decode },
- { "wofaha" , CPS_B_21_DEF, mapper_TK263B, 0, wof_decode },
- { "wofahb" , CPS_B_21_DEF, mapper_TK263B, 0, wof_decode },
- { "sfzch" , CPS_B_21_DEF, mapper_sfzch , 0, NULL },
- { "wofch" , CPS_B_21_DEF, mapper_sfzch , 0, wof_decode },
- { "wofchdx" , CPS_B_21_DEF, mapper_sfzch , 0, wof_decode },
- { "cps1demo" , CPS_B_04 , mapper_sfzch , 0, NULL },
- { "cps1frog" , CPS_B_04 , mapper_frog , 0, NULL },
- { "kenseim" , CPS_B_21_DEF, mapper_KNM10B, 0, NULL },
-
- // Not included games
- { "pnicku" , CPS_B_21_DEF, mapper_PKB10B, 0, NULL }, // IPS
- { "sf2cebr" , CPS_B_21_DEF, mapper_S9263B, 0, NULL }, // IPS
- { "sf2ceh" , CPS_B_21_DEF, mapper_S9263B, 0, NULL }, // IPS
- { "slammasa" , CPS_B_21_QS4, mapper_MB63B , 0, slammast_decode }, // IPS
- { "slammash" , CPS_B_21_QS4, mapper_MB63B , 0, slammast_decode }, // IPS
- { "mbombdje" , CPS_B_21_QS5, mapper_MB63B , 0, slammast_decode }, // IPS
- { "mbombrda" , CPS_B_21_QS5, mapper_MB63B , 0, slammast_decode }, // IPS
- { "mbombrdh" , CPS_B_21_QS5, mapper_MB63B , 0, slammast_decode }, // IPS
- { "mbombrdu" , CPS_B_21_QS5, mapper_MB63B , 0, slammast_decode }, // IPS
- { "woffr" , CPS_B_21_DEF, mapper_TK263B, 0, wof_decode }, // IPS
-
- // CPS Changer Region Hacks (not included)
- { "sfach" , CPS_B_21_DEF, mapper_sfzch , 0, NULL },
- { "sfabch" , CPS_B_21_DEF, mapper_sfzch , 0, NULL },
- { "sfzbch" , CPS_B_21_DEF, mapper_sfzch , 0, NULL },
- { "sfzech" , CPS_B_21_DEF, mapper_sfzch , 0, NULL },
- { "sfzhch" , CPS_B_21_DEF, mapper_sfzch , 0, NULL },
-
- { 0 , 0 , 0 , 0, 0 }
-};
-
-static void SetGameConfig()
-{
- const char *GameName = BurnDrvGetTextA(DRV_NAME);
- const struct GameConfig *k = &ConfigTable[0];
-
- while (k->DriverName) {
- if (strcmp(k->DriverName, GameName) == 0) {
- break;
- }
- ++k;
- }
-
- if (k->DriverName) {
- GameHasStars = k->CpsStars;
- SetCpsBId(k->CpsBId, GameHasStars);
- SetGfxMapper(k->CpsMapperId);
- KabukiDecodeFunction = k->DecodeFunction;
- } else {
-#if 1 && defined FBA_DEBUG
- bprintf(PRINT_IMPORTANT, _T("Missing Config Data\n"));
-#endif
- }
-}
-
-// Driver functions
-
-static UINT32 nCps68KByteswapRomNum = 0;
-static UINT32 nCps68KNoByteswapRomNum = 0;
-static UINT32 nCpsZ80RomNum = 0;
-static UINT32 nCpsTilesRomNum = 0;
-static UINT32 nCpsOkim6295RomNum = 0;
-static UINT32 nCpsQsoundRomNum = 0;
-static UINT32 nCpsPicRomNum = 0;
-static UINT32 nCpsExtraTilesRomNum = 0;
-static UINT32 nCpsExtraGfxLen = 0;
-
-static INT32 Cps1LoadRoms(INT32 bLoad)
-{
- struct BurnRomInfo ri;
- ri.nType = 0;
- ri.nLen = 0;
- INT32 nOffset = -1;
- UINT32 i = 0;
- INT32 nRet = 0;
-
- if (!bLoad) {
- do {
- ri.nLen = 0;
- ri.nType = 0;
- BurnDrvGetRomInfo(&ri, ++nOffset);
- if ((ri.nType & 0xff) == CPS1_68K_PROGRAM_BYTESWAP) {
- nCpsRomLen += ri.nLen;
- nCps68KByteswapRomNum++;
- }
- if ((ri.nType & 0xff) == CPS1_68K_PROGRAM_NO_BYTESWAP) {
- nCpsRomLen += ri.nLen;
- nCps68KNoByteswapRomNum++;
- }
- if ((ri.nType & 0xff) == CPS1_Z80_PROGRAM) {
- nCpsZRomLen += ri.nLen;
- nCpsZ80RomNum++;
- }
- if ((ri.nType & 0xff) == CPS1_TILES) {
- nCpsGfxLen += ri.nLen;
- nCpsTilesRomNum++;
- }
- if ((ri.nType & 0xff) == CPS1_PIC) {
- nCpsPicRomNum++;
- }
- if ((ri.nType & 0xff) == CPS1_OKIM6295_SAMPLES) {
- nCpsAdLen += ri.nLen;
- nCpsOkim6295RomNum++;
- }
- if ((ri.nType & 0xff) == CPS1_QSOUND_SAMPLES) {
- Cps1Qs = 1;
- nCpsQSamLen += ri.nLen;
- nCpsQsoundRomNum++;
- }
- if (((ri.nType & 0xff) == CPS1_EXTRA_TILES_SF2EBBL_400000) || ((ri.nType & 0xff) == CPS1_EXTRA_TILES_400000) || ((ri.nType & 0xff) == CPS1_EXTRA_TILES_SF2KORYU_400000) || ((ri.nType & 0xff) == CPS1_EXTRA_TILES_SF2B_400000)) {
- nCpsExtraGfxLen += ri.nLen;
- nCpsExtraTilesRomNum++;
- }
- i++;
-
- } while (ri.nLen);
-
- if (Cps1Qs) nCpsZRomLen *= 2;
- if (GameHasStars) nCpsGfxLen += 0x2000;
- if (PangEEP) nCpsGfxLen *= 2;
- if (nCpsPicRomNum) Cps1DisablePSnd = 1;
-
-#if 1 && defined FBA_DEBUG
- if (nCpsRomLen) bprintf(PRINT_IMPORTANT, _T("68K Rom Length %06X, (%i roms byteswapped, %i roms not byteswapped)\n"), nCpsRomLen, nCps68KByteswapRomNum, nCps68KNoByteswapRomNum);
- if (nCpsZRomLen) bprintf(PRINT_IMPORTANT, _T("Z80 Rom Length %06X, (%i roms)\n"), nCpsZRomLen, nCpsZ80RomNum);
- if (nCpsGfxLen) bprintf(PRINT_IMPORTANT, _T("Tile Rom Length %08X, (%i roms)\n"), nCpsGfxLen, nCpsTilesRomNum);
- if (nCpsAdLen) bprintf(PRINT_IMPORTANT, _T("OKIM6295 Rom Length %08X, (%i roms)\n"), nCpsAdLen, nCpsOkim6295RomNum);
- if (nCpsQSamLen) bprintf(PRINT_IMPORTANT, _T("QSound Rom Length %08X, (%i roms)\n"), nCpsQSamLen, nCpsQsoundRomNum);
- if (nCpsExtraGfxLen) bprintf(PRINT_IMPORTANT, _T("Extra Tile Rom Length %08X, (%i roms)\n"), nCpsExtraGfxLen, nCpsExtraTilesRomNum);
-#endif
- }
-
- if (bLoad) {
- INT32 Offset = 0;
-
- i = 0;
- while (i < nCps68KByteswapRomNum + nCps68KNoByteswapRomNum) {
- BurnDrvGetRomInfo(&ri, i + 0);
- if ((ri.nType & 0xff) == CPS1_68K_PROGRAM_BYTESWAP) {
- nRet = BurnLoadRom(CpsRom + Offset + 1, i + 0, 2); if (nRet) return 1;
- nRet = BurnLoadRom(CpsRom + Offset + 0, i + 1, 2); if (nRet) return 1;
-
- BurnDrvGetRomInfo(&ri, i + 0);
- Offset += ri.nLen;
- BurnDrvGetRomInfo(&ri, i + 1);
- Offset += ri.nLen;
-
- i += 2;
- }
-
- if ((ri.nType & 0xff) == CPS1_68K_PROGRAM_NO_BYTESWAP) {
- nRet = BurnLoadRom(CpsRom + Offset, i, 1); if (nRet) return 1;
-
- BurnDrvGetRomInfo(&ri, i);
- Offset += ri.nLen;
-
- i++;
- }
- }
-
- // Graphics
- if (nCpsGfxLen) {
- Offset = 0;
- i = nCps68KByteswapRomNum + nCps68KNoByteswapRomNum;
- while (i < nCps68KByteswapRomNum + nCps68KNoByteswapRomNum + nCpsTilesRomNum) {
- if (Cps1GfxLoadCallbackFunction) {
- Cps1GfxLoadCallbackFunction(i);
-
- i += nCpsTilesRomNum;
- } else {
- BurnDrvGetRomInfo(&ri, i + 0);
-
- if (ri.nLen < 0x80000) {
- CpsLoadTilesByte(CpsGfx + Offset, i);
-
- BurnDrvGetRomInfo(&ri, i + 0);
- Offset += ri.nLen;
- BurnDrvGetRomInfo(&ri, i + 1);
- Offset += ri.nLen;
- BurnDrvGetRomInfo(&ri, i + 2);
- Offset += ri.nLen;
- BurnDrvGetRomInfo(&ri, i + 3);
- Offset += ri.nLen;
- BurnDrvGetRomInfo(&ri, i + 4);
- Offset += ri.nLen;
- BurnDrvGetRomInfo(&ri, i + 5);
- Offset += ri.nLen;
- BurnDrvGetRomInfo(&ri, i + 6);
- Offset += ri.nLen;
- BurnDrvGetRomInfo(&ri, i + 7);
- Offset += ri.nLen;
-
- i += 8;
- } else {
- if (PangEEP) {
- CpsLoadTilesPang(CpsGfx + Offset, i);
-
- BurnDrvGetRomInfo(&ri, i + 0);
- Offset += ri.nLen;
- BurnDrvGetRomInfo(&ri, i + 1);
- Offset += ri.nLen;
- BurnDrvGetRomInfo(&ri, i + 2);
- Offset += ri.nLen;
- BurnDrvGetRomInfo(&ri, i + 3);
- Offset += ri.nLen;
-
- i += 4;
- } else {
- if (nCpsTilesRomNum < 4) {
- // Handle this seperately
- i += nCpsTilesRomNum;
- } else {
- CpsLoadTiles(CpsGfx + Offset, i);
-
- BurnDrvGetRomInfo(&ri, i + 0);
- Offset += ri.nLen;
- BurnDrvGetRomInfo(&ri, i + 1);
- Offset += ri.nLen;
- BurnDrvGetRomInfo(&ri, i + 2);
- Offset += ri.nLen;
- BurnDrvGetRomInfo(&ri, i + 3);
- Offset += ri.nLen;
-
- i += 4;
- }
- }
- }
- }
- }
- }
-
- // Z80 Program
- if (nCpsZRomLen) {
- Offset = 0;
- for (i = nCps68KByteswapRomNum + nCps68KNoByteswapRomNum + nCpsTilesRomNum; i < nCps68KByteswapRomNum + nCps68KNoByteswapRomNum + nCpsTilesRomNum + nCpsZ80RomNum; i++) {
- BurnLoadRom(CpsZRom + Offset, i, 1);
-
- if (Cps1Qs) BurnLoadRom(CpsEncZRom + Offset, i, 1);
-
- BurnDrvGetRomInfo(&ri, i);
- Offset += ri.nLen;
- }
- }
-
- // Pic (skip for now)
- if (nCpsPicRomNum) {
- BurnDrvGetRomInfo(&ri, i);
- }
-
- // OKIM6295 Samples
- if (nCpsAdLen) {
- Offset = 0;
- for (i = nCps68KByteswapRomNum + nCps68KNoByteswapRomNum + nCpsTilesRomNum + nCpsZ80RomNum; i < nCps68KByteswapRomNum + nCps68KNoByteswapRomNum + nCpsTilesRomNum + nCpsZ80RomNum + nCpsOkim6295RomNum; i++) {
- BurnLoadRom(CpsAd + Offset, i, 1);
-
- BurnDrvGetRomInfo(&ri, i);
- Offset += ri.nLen;
- }
- }
-
- // QSound Samples
- if (nCpsQSamLen) {
- Offset = 0;
- for (i = nCps68KByteswapRomNum + nCps68KNoByteswapRomNum + nCpsTilesRomNum + nCpsZ80RomNum; i < nCps68KByteswapRomNum + nCps68KNoByteswapRomNum + nCpsTilesRomNum + nCpsZ80RomNum + nCpsQsoundRomNum; i++) {
- BurnLoadRom((UINT8*)CpsQSam + Offset, i, 1);
-
- BurnDrvGetRomInfo(&ri, i);
- Offset += ri.nLen;
- }
- }
-
- // Extra Tile Roms
- if (nCpsExtraGfxLen) {
- Offset = 0;
- for (i = nCps68KByteswapRomNum + nCps68KNoByteswapRomNum + nCpsTilesRomNum + nCpsZ80RomNum + nCpsQsoundRomNum; i < nCps68KByteswapRomNum + nCps68KNoByteswapRomNum + nCpsTilesRomNum + nCpsZ80RomNum + nCpsQsoundRomNum + nCpsExtraTilesRomNum; i++) {
- BurnDrvGetRomInfo(&ri, i + 0);
-
- if ((ri.nType & 0xff) == CPS1_EXTRA_TILES_SF2EBBL_400000) {
- memset(CpsGfx + 0x400000, 0, nCpsExtraGfxLen);
- CpsLoadTilesSf2ebbl(CpsGfx + 0x400000, i);
-
- i += 4;
- }
-
- if ((ri.nType & 0xff) == CPS1_EXTRA_TILES_400000) {
- memset(CpsGfx + 0x400000, 0, nCpsExtraGfxLen);
- CpsLoadTiles(CpsGfx + 0x400000, i);
-
- i += 4;
- }
-
- if ((ri.nType & 0xff) == CPS1_EXTRA_TILES_SF2KORYU_400000) {
- memset(CpsGfx + 0x400000, 0, nCpsExtraGfxLen);
- CpsLoadTilesSf2koryuExtra(CpsGfx + 0x400000, i);
-
- i += 2;
- }
-
- if ((ri.nType & 0xff) == CPS1_EXTRA_TILES_SF2B_400000) {
- memset(CpsGfx + 0x400000, 0, nCpsExtraGfxLen);
- CpsLoadTilesSf2b(CpsGfx + 0x400000, i);
-
- i += 4;
- }
- }
- }
- }
-
- return nRet;
-}
-
-typedef void (*AmendProgRom)();
-static AmendProgRom AmendProgRomCallback;
-
-static INT32 DrvInit()
-{
- INT32 nRet = 0;
-
- SetGameConfig();
-
- Cps1LoadRoms(0);
-
- Cps = 1;
- nRet = CpsInit(); if (nRet != 0) return 1;
-
- if (Cps1LoadRoms(1)) return 1;
-
- if (AmendProgRomCallback) AmendProgRomCallback();
-
- SetGameConfig();
-
- if (Cps1Qs) {
- KabukiDecodeFunction();
- }
-
- nRet = CpsRunInit(); if (nRet != 0) return 1;
-
- Cps1VBlankIRQLine = 2;
-
- return 0;
-}
-
-static INT32 DrvExit()
-{
- CpsRunExit();
- CpsExit();
-
- nCpsRomLen = 0;
- nCpsZRomLen = 0;
- nCpsGfxLen = 0;
- nCpsAdLen = 0;
- nCpsQSamLen = 0;
- nCpsPicRomNum = 0;
- nCpsExtraGfxLen = 0;
-
- nCps68KByteswapRomNum = 0;
- nCps68KNoByteswapRomNum = 0;
- nCpsZ80RomNum = 0;
- nCpsTilesRomNum = 0;
- nCpsOkim6295RomNum = 0;
- nCpsQsoundRomNum = 0;
- nCpsExtraTilesRomNum = 0;
- KabukiDecodeFunction = NULL;
- GameHasStars = 0;
-
- AmendProgRomCallback = NULL;
-
- CpsLayer1XOffs = 0;
- CpsLayer2XOffs = 0;
- CpsLayer3XOffs = 0;
- CpsLayer1YOffs = 0;
- CpsLayer2YOffs = 0;
- CpsLayer3YOffs = 0;
- CpsDrawSpritesInReverse = 0;
- Cps1OverrideLayers = 0;
- nCps1Layers[0] = -1;
- nCps1Layers[1] = -1;
- nCps1Layers[2] = -1;
- nCps1Layers[3] = -1;
-
- Cps = 0;
- Cps1Qs = 0;
- Cps1DisablePSnd = 0;
- Forgottn = 0;
- Ghouls = 0;
- Kodb = 0;
- PangEEP = 0;
- Cps1LockSpriteList910000 = 0;
- Cps1DisableBgHi = 0;
- CpsDisableRowScroll = 0;
- Dinohunt = 0;
- Sf2thndr = 0;
- Port6SoundWrite = 0;
-
- Cps1QsHack = 0;
-
- Cps1GfxLoadCallbackFunction = NULL;
-
- BurnFree(CpsBootlegSpriteRam);
-
- return 0;
-}
-
-static INT32 TwelveMhzInit()
-{
- nCPS68KClockspeed = 12000000;
-
- return DrvInit();
-}
-
-static INT32 CpsBootlegSpriteRamScanCallback(INT32 nAction, INT32*)
-{
- if (nAction & ACB_MEMORY_RAM) {
- struct BurnArea ba;
- memset(&ba, 0, sizeof(ba));
-
- ba.Data = CpsBootlegSpriteRam;
- ba.nLen = 0x4000;
- ba.szName = "CpsBootlegSpriteRam";
- BurnAcb(&ba);
- }
-
- return 0;
-}
-
-static INT32 Wonder3bInit()
-{
- bCpsUpdatePalEveryFrame = 1;
- Cps1GfxLoadCallbackFunction = CpsLoadTilesWonder3b;
-
- CpsLayer1XOffs = 4;
- CpsLayer2XOffs = 6;
- CpsLayer3XOffs = 10;
-
- INT32 nRet = DrvInit();
-
- // the game doesn't write these anywhere - does the hardware have them stored somewhere?
- *((UINT16*)(CpsReg + 0x04)) = BURN_ENDIAN_SWAP_INT16(0x90c0); // scroll2 address
- *((UINT16*)(CpsReg + 0x06)) = BURN_ENDIAN_SWAP_INT16(0x9100); // scroll3 address
- *((UINT16*)(CpsReg + 0x0a)) = BURN_ENDIAN_SWAP_INT16(0x9140); // palette address
- *((UINT16*)(CpsReg + nCpsPalCtrlReg)) = BURN_ENDIAN_SWAP_INT16(0x003f); // palette control
-
- return nRet;
-}
-
-static INT32 CaptcommbInit()
-{
- CpsLayer1XOffs = -8;
- CpsLayer2XOffs = -11;
- CpsLayer3XOffs = -12;
- CpsDrawSpritesInReverse = 1;
- Cps1DetectEndSpriteList8000 = 1;
- Cps1GfxLoadCallbackFunction = CpsLoadTilesCaptcommb;
-
- return DrvInit();
-}
-
-static INT32 Captcommb2Init()
-{
- Cps1DisablePSnd = 1;
- CpsRunInitCallbackFunction = Sf2mdtSoundInit;
- CpsRunResetCallbackFunction = Sf2mdtSoundReset;
- CpsRunExitCallbackFunction = Sf2mdtSoundExit;
- CpsRunFrameStartCallbackFunction = Sf2mdtSoundFrameStart;
- CpsRunFrameEndCallbackFunction = Sf2mdtSoundFrameEnd;
- CpsRWSoundCommandCallbackFunction = Sf2mdtSoundCommand;
- CpsMemScanCallbackFunction = Sf2mdtScanSound;
-
- return DrvInit();
-}
-
-UINT8 __fastcall CawingblInputReadByte(UINT32 a)
-{
- switch (a) {
- case 0x882000: {
- return ~Inp000;
- }
-
- case 0x882001: {
- return ~Inp001;
- }
-
- case 0x882008: {
- return ~Inp018;
- }
-
- case 0x88200a: {
- return ~Cpi01A;
- }
-
- case 0x88200c: {
- return ~Cpi01C;
- }
-
- case 0x88200e: {
- return ~Cpi01E;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Input Read Byte %x\n"), a);
- }
- }
-
- return 0;
-}
-
-UINT16 __fastcall CawingblInputReadWord(UINT32 a)
-{
- switch (a) {
- default: {
- bprintf(PRINT_NORMAL, _T("Input Read Word %x\n"), a);
- }
- }
-
- return 0;
-}
-
-void __fastcall CawingblInputWriteByte(UINT32 a, UINT8 d)
-{
- switch (a) {
- case 0x882006: {
- FcrashSoundCommand(d);
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Input Write Byte %x, %x\n"), a, d);
- }
- }
-}
-
-void __fastcall CawingblInputWriteWord(UINT32 a, UINT16 d)
-{
- switch (a) {
- case 0x882006: {
- FcrashSoundCommand(d);
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Input Write Word %x, %x\n"), a, d);
- }
- }
-}
-
-static INT32 CawingblInit()
-{
- INT32 nRet = 0;
-
- Cps1DisablePSnd = 1;
- bCpsUpdatePalEveryFrame = 1;
-
- CpsLayer1XOffs = -63;
- CpsLayer2XOffs = -62;
- CpsLayer3XOffs = -65;
-
- Cps1ObjGetCallbackFunction = WofhObjGet;
- Cps1ObjDrawCallbackFunction = FcrashObjDraw;
- Cps1GfxLoadCallbackFunction = CpsLoadTilesCawingbl;
- CpsRunInitCallbackFunction = FcrashSoundInit;
- CpsRunResetCallbackFunction = FcrashSoundReset;
- CpsRunExitCallbackFunction = FcrashSoundExit;
- CpsRunFrameStartCallbackFunction = FcrashSoundFrameStart;
- CpsRunFrameEndCallbackFunction = FcrashSoundFrameEnd;
- CpsMemScanCallbackFunction = FcrashScanSound;
-
- nRet = DrvInit();
-
- SekOpen(0);
- SekMapHandler(1, 0x882000, 0x882fff, MAP_READ | MAP_WRITE);
- SekSetReadByteHandler(1, CawingblInputReadByte);
- SekSetReadWordHandler(1, CawingblInputReadWord);
- SekSetWriteByteHandler(1, CawingblInputWriteByte);
- SekSetWriteWordHandler(1, CawingblInputWriteWord);
- SekClose();
-
- Cps1VBlankIRQLine = 6;
-
- return 0;
-}
-
-static INT32 Cawingb2Init()
-{
- INT32 nRet = 0;
-
- Cps1DisablePSnd = 1;
- bCpsUpdatePalEveryFrame = 1;
-
- CpsLayer1XOffs = -63;
- CpsLayer2XOffs = -62;
- CpsLayer3XOffs = -65;
-
- Cps1ObjGetCallbackFunction = WofhObjGet;
- Cps1ObjDrawCallbackFunction = FcrashObjDraw;
- Cps1GfxLoadCallbackFunction = CpsLoadTilesFcrash;
- CpsRunInitCallbackFunction = FcrashSoundInit;
- CpsRunResetCallbackFunction = FcrashSoundReset;
- CpsRunExitCallbackFunction = FcrashSoundExit;
- CpsRunFrameStartCallbackFunction = FcrashSoundFrameStart;
- CpsRunFrameEndCallbackFunction = FcrashSoundFrameEnd;
- CpsMemScanCallbackFunction = FcrashScanSound;
-
- nRet = DrvInit();
-
- SekOpen(0);
- SekMapHandler(1, 0x882000, 0x882fff, MAP_READ | MAP_WRITE);
- SekSetReadByteHandler(1, CawingblInputReadByte);
- SekSetReadWordHandler(1, CawingblInputReadWord);
- SekSetWriteByteHandler(1, CawingblInputWriteByte);
- SekSetWriteWordHandler(1, CawingblInputWriteWord);
- SekClose();
-
- Cps1VBlankIRQLine = 6;
-
- return 0;
-}
-
-static INT32 Cps1demoInit()
-{
- bCpsUpdatePalEveryFrame = 1;
-
- return DrvInit();
-}
-
-void __fastcall DinopicScrollWrite(UINT32 a, UINT16 d)
-{
- switch (a) {
- case 0x980000: {
- // scroll1 y
- *((UINT16*)(CpsReg + 0x0e)) = BURN_ENDIAN_SWAP_INT16(d);
- return;
- }
-
- case 0x980002: {
- // scroll1 x
- *((UINT16*)(CpsReg + 0x0c)) = BURN_ENDIAN_SWAP_INT16(d - 0x40);
- return;
- }
-
- case 0x980004: {
- // scroll2 y
- *((UINT16*)(CpsReg + 0x12)) = BURN_ENDIAN_SWAP_INT16(d);
- return;
- }
-
- case 0x980006: {
- // scroll2 x
- *((UINT16*)(CpsReg + 0x10)) = BURN_ENDIAN_SWAP_INT16(d - 0x40);
- return;
- }
-
- case 0x980008: {
- // scroll3 y
- *((UINT16*)(CpsReg + 0x16)) = BURN_ENDIAN_SWAP_INT16(d);
- return;
- }
-
- case 0x98000a: {
- // scroll3 x
- *((UINT16*)(CpsReg + 0x14)) = BURN_ENDIAN_SWAP_INT16(d - 0x40);
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Write Word %x, %x\n"), a, d);
- }
- }
-}
-
-void __fastcall DinopicLayerWrite(UINT32 a, UINT16 d)
-{
- if (a == 0x800222) {
- *((UINT16*)(CpsReg + 0x06)) = d;
- return;
- }
-
- // Send anything else through the main handler
- SEK_DEF_WRITE_WORD(0, a, d);
-}
-
-static INT32 DinopicInit()
-{
- INT32 nRet = 0;
-
- Cps1DisablePSnd = 1;
- CpsBootlegEEPROM = 1;
- Cps1GfxLoadCallbackFunction = CpsLoadTilesDinopic;
- Cps1ObjGetCallbackFunction = DinopicObjGet;
- Cps1ObjDrawCallbackFunction = FcrashObjDraw;
- CpsMemScanCallbackFunction = CpsBootlegSpriteRamScanCallback;
-
- nRet = TwelveMhzInit();
-
- CpsBootlegSpriteRam = (UINT8*)BurnMalloc(0x4000);
-
- SekOpen(0);
- SekMapMemory(CpsBootlegSpriteRam, 0x990000, 0x991fff, MAP_RAM);
- SekMapHandler(1, 0x980000, 0x98000f, MAP_WRITE);
- SekSetWriteWordHandler(1, DinopicScrollWrite);
- SekMapHandler(2, 0x800200, 0x8002ff, MAP_WRITE);
- SekSetWriteWordHandler(2, DinopicLayerWrite);
- SekClose();
-
- return nRet;
-}
-
-UINT8 __fastcall DinohuntQSharedRamRead(UINT32 /*a*/)
-{
- return 0xff;
-}
-
-static INT32 DinohInit()
-{
- INT32 nRet = 0;
-
- Cps1QsHack = 1;
-
- nRet = TwelveMhzInit();
-
- SekOpen(0);
- SekMapHandler(1, 0xf18000, 0xf19fff, MAP_READ);
- SekSetReadByteHandler(1, DinohuntQSharedRamRead);
- SekClose();
-
- return nRet;
-}
-
-static UINT16 Dinopic4ProtValue = 0;
-
-UINT16 __fastcall Dinopic4ProtReadWord(UINT32 a)
-{
- switch (a) {
- case 0x57a2b0: {
- if (Dinopic4ProtValue == 0x04) return 0x0404;
- return 0xffff;
- }
- }
-
- return 0;
-}
-
-void __fastcall Dinopic4ProtWriteWord(UINT32 a, UINT16 d)
-{
- switch (a) {
- case 0x5762b0: {
- Dinopic4ProtValue = d;
- return;
- }
- }
-}
-
-static INT32 Dinopic4Init()
-{
- INT32 nRet = 0;
-
- CpsBootlegEEPROM = 1;
- Cps1GfxLoadCallbackFunction = CpsLoadTilesDinopic4;
-
- nRet = TwelveMhzInit();
-
- SekOpen(0);
- SekMapHandler(1, 0xf18000, 0xf19fff, MAP_READ);
- SekSetReadByteHandler(1, DinohuntQSharedRamRead);
- SekMapHandler(2, 0x570000, 0x57ffff, MAP_READ | MAP_WRITE);
- SekSetReadWordHandler(2, Dinopic4ProtReadWord);
- SekSetWriteWordHandler(2, Dinopic4ProtWriteWord);
- SekClose();
-
- return nRet;
-}
-
-static void DinotCallback()
-{
- UINT8 *TempRom = (UINT8*)BurnMalloc(0x200000);
- if (TempRom) {
- memcpy(TempRom, CpsRom, 0x200000);
- memset(CpsRom, 0, 0x200000);
- memcpy(CpsRom + 0x080000, TempRom + 0x000000, 0x80000);
- memcpy(CpsRom + 0x000000, TempRom + 0x080000, 0x80000);
- memcpy(CpsRom + 0x180000, TempRom + 0x100000, 0x80000);
- memcpy(CpsRom + 0x100000, TempRom + 0x180000, 0x80000);
- BurnFree(TempRom);
- }
-}
-
-static INT32 DinotInit()
-{
- INT32 nRet = 0;
-
- Cps1QsHack = 1;
- AmendProgRomCallback = DinotCallback;
- Cps1GfxLoadCallbackFunction = CpsLoadTilesHack160;
-
- nRet = TwelveMhzInit();
-
- SekOpen(0);
- SekMapHandler(1, 0xf18000, 0xf19fff, MAP_READ);
- SekSetReadByteHandler(1, DinohuntQSharedRamRead);
- SekClose();
-
- return nRet;
-}
-
-static INT32 DinotpicInit()
-{
- INT32 nRet = 0;
-
- Cps1DisablePSnd = 1;
- CpsBootlegEEPROM = 1;
- Cps1GfxLoadCallbackFunction = CpsLoadTilesHack160;
- Cps1ObjGetCallbackFunction = DinopicObjGet;
- Cps1ObjDrawCallbackFunction = FcrashObjDraw;
- CpsMemScanCallbackFunction = CpsBootlegSpriteRamScanCallback;
-
- nRet = TwelveMhzInit();
-
- CpsBootlegSpriteRam = (UINT8*)BurnMalloc(0x4000);
-
- SekOpen(0);
- SekMapMemory(CpsBootlegSpriteRam, 0x990000, 0x991fff, MAP_RAM);
- SekMapHandler(1, 0x980000, 0x98000f, MAP_WRITE);
- SekSetWriteWordHandler(1, DinopicScrollWrite);
- SekMapHandler(2, 0x800200, 0x8002ff, MAP_WRITE);
- SekSetWriteWordHandler(2, DinopicLayerWrite);
- SekClose();
-
- return nRet;
-}
-
-static INT32 DinohuntInit()
-{
- INT32 nRet = 0;
-
- Dinohunt = 1;
- CpsBootlegEEPROM = 1;
-
- nRet = TwelveMhzInit();
-
- SekOpen(0);
- SekMapHandler(1, 0xf18000, 0xf19fff, MAP_READ);
- SekSetReadByteHandler(1, DinohuntQSharedRamRead);
- SekClose();
-
- return nRet;
-}
-
-UINT8 __fastcall FcrashInputReadByte(UINT32 a)
-{
- switch (a) {
- case 0x880000: {
- return ~Inp000;
- }
-
- case 0x880008: {
- return ~Inp018;
- }
-
- case 0x88000a: {
- return ~Cpi01A;
- }
-
- case 0x88000c: {
- return ~Cpi01C;
- }
-
- case 0x88000e: {
- return ~Cpi01E;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Input Read Byte %x\n"), a);
- }
- }
-
- return 0;
-}
-
-UINT16 __fastcall FcrashInputReadWord(UINT32 a)
-{
- switch (a) {
- case 0x880000: {
- return (~Inp000 << 8) | ~Inp001;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Input Read Word %x\n"), a);
- }
- }
-
- return 0;
-}
-
-void __fastcall FcrashInputWriteByte(UINT32 a, UINT8 d)
-{
- switch (a) {
- default: {
- bprintf(PRINT_NORMAL, _T("Input Write Byte %x, %x\n"), a, d);
- }
- }
-}
-
-void __fastcall FcrashInputWriteWord(UINT32 a, UINT16 d)
-{
- switch (a) {
- case 0x880006: {
- FcrashSoundCommand(d);
- return;
- }
-
- case 0x890000: {
- // ???
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Input Write word %x, %x\n"), a, d);
- }
- }
-}
-
-static INT32 FfightblInit()
-{
- Cps1DisablePSnd = 1;
- bCpsUpdatePalEveryFrame = 1;
- CpsLayer1XOffs = -0x3f;
- CpsLayer2XOffs = -0x3c;
- CpsLayer3XOffs = 0xffc0;
-
- Cps1GfxLoadCallbackFunction = CpsLoadTilesCawingbl;
- Cps1ObjGetCallbackFunction = FcrashObjGet;
- Cps1ObjDrawCallbackFunction = FcrashObjDraw;
- CpsRunInitCallbackFunction = FcrashSoundInit;
- CpsRunResetCallbackFunction = FcrashSoundReset;
- CpsRunExitCallbackFunction = FcrashSoundExit;
- CpsRunFrameStartCallbackFunction = FcrashSoundFrameStart;
- CpsRunFrameEndCallbackFunction = FcrashSoundFrameEnd;
- CpsMemScanCallbackFunction = FcrashScanSound;
-
- INT32 nRet = DrvInit();
-
- SekOpen(0);
- SekMapHandler(1, 0x880000, 0x89ffff, MAP_READ | MAP_WRITE);
- SekSetReadByteHandler(1, FcrashInputReadByte);
- SekSetReadWordHandler(1, FcrashInputReadWord);
- SekSetWriteByteHandler(1, FcrashInputWriteByte);
- SekSetWriteWordHandler(1, FcrashInputWriteWord);
- SekClose();
-
- return nRet;
-}
-
-static void FcrashPatch()
-{
- // This fixes sprite ram clearing - shouldn't be necessary, but used for now pending understanding of the underlying issue
- CpsRom[0x2611] = 0x07;
-}
-
-static INT32 FcrashInit()
-{
- Cps1DisablePSnd = 1;
- bCpsUpdatePalEveryFrame = 1;
- CpsLayer1XOffs = -0x3f;
- CpsLayer2XOffs = -0x3c;
- CpsLayer3XOffs = 0xffc0;
-
- AmendProgRomCallback = FcrashPatch;
- Cps1GfxLoadCallbackFunction = CpsLoadTilesFcrash;
- Cps1ObjGetCallbackFunction = FcrashObjGet;
- Cps1ObjDrawCallbackFunction = FcrashObjDraw;
- CpsRunInitCallbackFunction = FcrashSoundInit;
- CpsRunResetCallbackFunction = FcrashSoundReset;
- CpsRunExitCallbackFunction = FcrashSoundExit;
- CpsRunFrameStartCallbackFunction = FcrashSoundFrameStart;
- CpsRunFrameEndCallbackFunction = FcrashSoundFrameEnd;
- CpsMemScanCallbackFunction = FcrashScanSound;
-
- INT32 nRet = DrvInit();
-
- SekOpen(0);
- SekMapHandler(1, 0x880000, 0x89ffff, MAP_READ | MAP_WRITE);
- SekSetReadByteHandler(1, FcrashInputReadByte);
- SekSetReadWordHandler(1, FcrashInputReadWord);
- SekSetWriteByteHandler(1, FcrashInputWriteByte);
- SekSetWriteWordHandler(1, FcrashInputWriteWord);
- SekClose();
-
- return nRet;
-}
-
-static INT32 ForgottnNewerInit()
-{
- INT32 nRet = 0;
-
- Forgottn = 1;
- Cps1GfxLoadCallbackFunction = CpsLoadTilesForgottn;
-
- nRet = DrvInit();
-
- CpsStar = CpsGfx + nCpsGfxLen - 0x2000;
-
- CpsLoadStarsForgottnAlt(CpsStar, 18);
-
- return nRet;
-}
-
-static INT32 ForgottnInit()
-{
- INT32 nRet = 0;
-
- Forgottn = 1;
-
- nRet = DrvInit();
-
- CpsStar = CpsGfx + nCpsGfxLen - 0x2000;
-
- CpsLoadStars(CpsStar, 9);
-
- return nRet;
-}
-
-static INT32 ForgottnAltGfxInit()
-{
- INT32 nRet = 0;
-
- Forgottn = 1;
- Cps1GfxLoadCallbackFunction = CpsLoadTilesForgottna;
-
- nRet = DrvInit();
-
- CpsStar = CpsGfx + nCpsGfxLen - 0x2000;
-
- CpsLoadStarsForgottnAlt(CpsStar, 15);
-
- return nRet;
-}
-
-static INT32 ForgottnAltGfxuInit()
-{
- INT32 nRet = 0;
-
- Forgottn = 1;
- Cps1GfxLoadCallbackFunction = CpsLoadTilesForgottnu;
-
- nRet = DrvInit();
-
- CpsStar = CpsGfx + nCpsGfxLen - 0x2000;
-
- CpsLoadStarsForgottnAlt(CpsStar, 15);
-
- return nRet;
-}
-
-UINT8 __fastcall GanbareTimeKeeperReadByte(UINT32 a)
-{
- if (a & 1) {
- return TimeKeeperRead((a & 0xffff) >> 1);
- } else {
- return CpsRamFF[(a & 0xffff) >> 1];
- }
-}
-
-UINT16 __fastcall GanbareTimeKeeperReadWord(UINT32 a)
-{
- SEK_DEF_READ_WORD(1, a);
-}
-
-void __fastcall GanbareTimeKeeperWriteByte(UINT32 a, UINT8 d)
-{
- if (a & 1) {
- TimeKeeperWrite((a & 0xffff) >> 1, d);
- } else {
- CpsRamFF[(a & 0xffff) >> 1] = d;
- }
-}
-
-void __fastcall GanbareTimeKeeperWriteWord(UINT32 a, UINT16 d)
-{
- SEK_DEF_WRITE_WORD(1, a, d);
-}
-
-static void GanabareTimeKeeperTick()
-{
- if ((GetCurrentFrame() % 60) == 0) TimeKeeperTick(); // refresh is 59.61
-
- SekOpen(0);
- SekSetIRQLine(4, CPU_IRQSTATUS_AUTO);
- SekClose();
-}
-
-static INT32 GanbareScanCallback(INT32 nAction, INT32*)
-{
- TimeKeeperScan(nAction);
-
- return 0;
-}
-
-static INT32 GanbareInit()
-{
- CpsRunFrameStartCallbackFunction = GanabareTimeKeeperTick;
- CpsMemScanCallbackFunction = GanbareScanCallback;
-
- INT32 nRet = DrvInit();
-
- SekOpen(0);
- SekMapHandler(1, 0xff0000, 0xffffff, MAP_RAM);
- SekSetReadByteHandler(1, GanbareTimeKeeperReadByte);
- SekSetReadWordHandler(1, GanbareTimeKeeperReadWord);
- SekSetWriteByteHandler(1, GanbareTimeKeeperWriteByte);
- SekSetWriteWordHandler(1, GanbareTimeKeeperWriteWord);
- SekClose();
-
- TimeKeeperInit(TIMEKEEPER_M48T35, NULL);
-
- return nRet;
-}
-
-static INT32 GanbareExit()
-{
- TimeKeeperExit();
-
- return DrvExit();
-}
-
-static void GhoulsCallback()
-{
- BurnByteswap(CpsRom + 0x080000, 0x080000);
-}
-
-static INT32 GhoulsInit()
-{
- Ghouls = 1;
- AmendProgRomCallback = GhoulsCallback;
-
- return DrvInit();
-}
-
-static INT32 DaimakaiInit()
-{
- Ghouls = 1;
-
- return DrvInit();
-}
-
-void __fastcall Daimakaib88WriteWord(UINT32 a, UINT16 d)
-{
- switch (a) {
- case 0x880000: {
- *((UINT16*)(CpsReg + nCpsPalCtrlReg)) = BURN_ENDIAN_SWAP_INT16(d);
- return;
- }
- }
-
- bprintf(PRINT_NORMAL, _T("Write word %x, %x\n"), a, d);
-}
-
-void __fastcall Daimakaib98WriteWord(UINT32 a, UINT16 d)
-{
- switch (a) {
- case 0x980000: {
- // scroll1 y
- *((UINT16*)(CpsReg + 0x0e)) = BURN_ENDIAN_SWAP_INT16(d);
- return;
- }
-
- case 0x980002: {
- // scroll1 x
- *((UINT16*)(CpsReg + 0x0c)) = BURN_ENDIAN_SWAP_INT16(d - 0x40);
- return;
- }
-
- case 0x980004: {
- // scroll2 y
- *((UINT16*)(CpsReg + 0x12)) = BURN_ENDIAN_SWAP_INT16(d);
- return;
- }
-
- case 0x980006: {
- // scroll2 x
- *((UINT16*)(CpsReg + 0x10)) = BURN_ENDIAN_SWAP_INT16(d - 0x40);
- return;
- }
-
- case 0x980008: {
- // scroll3 y
- *((UINT16*)(CpsReg + 0x16)) = BURN_ENDIAN_SWAP_INT16(d);
- return;
- }
-
- case 0x98000a: {
- // scroll3 x
- *((UINT16*)(CpsReg + 0x14)) = BURN_ENDIAN_SWAP_INT16(d - 0x40);
- return;
- }
-
- case 0x98000c: {
- // This seems to control layer order and enable
- switch (d) {
- case 0: {
- nCps1Layers[0] = 1;
- nCps1Layers[1] = 0;
- nCps1Layers[2] = 2;
- nCps1Layers[3] = 3;
- break;
- }
-
- case 1: {
- nCps1Layers[0] = 1;
- nCps1Layers[1] = 0;
- nCps1Layers[2] = -1;
- nCps1Layers[3] = 3;
- break;
- }
-
- case 2: {
- nCps1Layers[0] = 3;
- nCps1Layers[1] = -1;
- nCps1Layers[2] = -1;
- nCps1Layers[3] = 1;
- break;
- }
-
- case 6: {
- nCps1Layers[0] = -1;
- nCps1Layers[1] = -1;
- nCps1Layers[2] = -1;
- nCps1Layers[3] = -1;
- break;
- }
-
- default: {
- nCps1Layers[0] = 0;
- nCps1Layers[1] = 0;
- nCps1Layers[2] = 0;
- nCps1Layers[3] = 0;
- bprintf(PRINT_IMPORTANT, _T("Unknown value written at 0x98000c %x\n"), d);
- }
- }
- return;
- }
- }
-
- bprintf(PRINT_NORMAL, _T("Write word %x, %x\n"), a, d);
-}
-
-void __fastcall DaimakaibFFWriteByte(UINT32 a, UINT8 d)
-{
- CpsRamFF[((a & 0xffff) ^ 1)] = d;
-}
-
-void __fastcall DaimakaibFFWriteWord(UINT32 a, UINT16 d)
-{
- switch (a) {
- case 0xff0680: {
- *((UINT16*)(CpsReg + MaskAddr[1])) = BURN_ENDIAN_SWAP_INT16(d);
- break;
- }
-
- case 0xff0682: {
- *((UINT16*)(CpsReg + MaskAddr[2])) = BURN_ENDIAN_SWAP_INT16(d);
- break;
- }
-
- case 0xff0684: {
- *((UINT16*)(CpsReg + MaskAddr[3])) = BURN_ENDIAN_SWAP_INT16(d);
- break;
- }
- }
-
- UINT16 *RAM = (UINT16*)CpsRamFF;
- RAM[((a & 0xffff) >> 1)] = d;
-}
-
-static INT32 DaimakaibInit()
-{
- Ghouls = 1;
- Port6SoundWrite = 1;
- Cps1OverrideLayers = 1;
- Cps1ObjGetCallbackFunction = DaimakaibObjGet;
- Cps1ObjDrawCallbackFunction = FcrashObjDraw;
- CpsMemScanCallbackFunction = CpsBootlegSpriteRamScanCallback;
-
- INT32 nRet = DrvInit();
-
- CpsBootlegSpriteRam = (UINT8*)BurnMalloc(0x4000);
-
- SekOpen(0);
- SekMapMemory(CpsBootlegSpriteRam, 0x990000, 0x991fff, MAP_RAM);
- SekMapHandler(1, 0x880000, 0x88ffff, MAP_WRITE);
- SekSetWriteWordHandler(1, Daimakaib88WriteWord);
- SekMapHandler(2, 0x980000, 0x98ffff, MAP_WRITE);
- SekSetWriteWordHandler(2, Daimakaib98WriteWord);
- SekMapHandler(3, 0xff0000, 0xffffff, MAP_WRITE);
- SekSetWriteByteHandler(3, DaimakaibFFWriteByte);
- SekSetWriteWordHandler(3, DaimakaibFFWriteWord);
- SekClose();
-
- return nRet;
-}
-
-void __fastcall Knightsb98WriteWord(UINT32 a, UINT16 d)
-{
- switch (a) {
- case 0x980000: {
- // scroll1 y
- *((UINT16*)(CpsReg + 0x0e)) = BURN_ENDIAN_SWAP_INT16(d);
- return;
- }
-
- case 0x980002: {
- // scroll1 x
- *((UINT16*)(CpsReg + 0x0c)) = BURN_ENDIAN_SWAP_INT16(d - 0x3e);
- return;
- }
-
- case 0x980004: {
- // scroll2 y
- *((UINT16*)(CpsReg + 0x12)) = BURN_ENDIAN_SWAP_INT16(d);
- return;
- }
-
- case 0x980006: {
- // scroll2 x
- *((UINT16*)(CpsReg + 0x10)) = BURN_ENDIAN_SWAP_INT16(d - 0x3c);
- return;
- }
-
- case 0x980008: {
- // scroll3 y
- *((UINT16*)(CpsReg + 0x16)) = BURN_ENDIAN_SWAP_INT16(d);
- return;
- }
-
- case 0x98000a: {
- // scroll3 x
- *((UINT16*)(CpsReg + 0x14)) = BURN_ENDIAN_SWAP_INT16(d - 0x40);
- return;
- }
-
- case 0x98000c: {
- // This seems to control layer order and enable
- switch (d) {
- case 0x0000:
- case 0x001f:
- case 0x00ff:
- case 0x07ff:
- case 0x5800:
- case 0x5f00: {
- nCps1Layers[0] = 1;
- nCps1Layers[1] = 0;
- nCps1Layers[2] = 2;
- nCps1Layers[3] = 3;
- break;
- }
-
- case 0x2000: {
- nCps1Layers[0] = 0;
- nCps1Layers[1] = 1;
- nCps1Layers[2] = 2;
- nCps1Layers[3] = 3;
- break;
- }
-
- case 0x80ff:
- case 0x87ff:
- case 0xd800: {
- nCps1Layers[0] = 1;
- nCps1Layers[1] = 0;
- nCps1Layers[2] = 3;
- nCps1Layers[3] = 2;
- break;
- }
-
- case 0xa000: {
- nCps1Layers[0] = 2;
- nCps1Layers[1] = 1;
- nCps1Layers[2] = 0;
- nCps1Layers[3] = 3;
- break;
- }
-
- default: {
- nCps1Layers[0] = 1;
- nCps1Layers[1] = 0;
- nCps1Layers[2] = 2;
- nCps1Layers[3] = 3;
- bprintf(PRINT_IMPORTANT, _T("Unknown value written at 0x98000c %x\n"), d);
- }
- }
- return;
- }
-
- case 0x980020: {
- *((UINT16*)(CpsReg + MaskAddr[1])) = BURN_ENDIAN_SWAP_INT16(d);
- return;
- }
-
- case 0x980022: {
- *((UINT16*)(CpsReg + MaskAddr[2])) = BURN_ENDIAN_SWAP_INT16(d);
- return;
- }
-
- case 0x980024: {
- *((UINT16*)(CpsReg + MaskAddr[3])) = BURN_ENDIAN_SWAP_INT16(d);
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Write word %x, %x\n"), a, d);
- }
- }
-}
-
-static INT32 KnightsbScanCallback(INT32 nAction, INT32*pnMin)
-{
- CpsBootlegSpriteRamScanCallback(nAction, pnMin);
- Sf2mdtScanSound(nAction, pnMin);
-
- return 0;
-}
-
-static INT32 KnightsbInit()
-{
- Cps1DisablePSnd = 1;
- bCpsUpdatePalEveryFrame = 1;
- Cps1OverrideLayers = 1;
- Port6SoundWrite = 1;
-
- Cps1ObjGetCallbackFunction = DinopicObjGet;
- Cps1ObjDrawCallbackFunction = FcrashObjDraw;
- CpsRunInitCallbackFunction = Sf2mdtSoundInit;
- CpsRunResetCallbackFunction = Sf2mdtSoundReset;
- CpsRunExitCallbackFunction = Sf2mdtSoundExit;
- CpsRunFrameStartCallbackFunction = Sf2mdtSoundFrameStart;
- CpsRunFrameEndCallbackFunction = Sf2mdtSoundFrameEnd;
- CpsRWSoundCommandCallbackFunction = Sf2mdtSoundCommand;
- CpsMemScanCallbackFunction = Sf2mdtScanSound;
- CpsMemScanCallbackFunction = KnightsbScanCallback;
-
- INT32 nRet = DrvInit();
-
- CpsBootlegSpriteRam = (UINT8*)BurnMalloc(0x4000);
-
- SekOpen(0);
- SekMapMemory(CpsBootlegSpriteRam, 0x990000, 0x993fff, MAP_RAM);
- SekMapHandler(1, 0x980000, 0x98ffff, MAP_WRITE);
- SekSetWriteWordHandler(1, Knightsb98WriteWord);
- SekClose();
-
- return nRet;
-}
-
-static INT32 Knightsb2Init()
-{
- CpsDrawSpritesInReverse = 1;
- Cps1DetectEndSpriteList8000 = 1;
-
- return DrvInit();
-}
-
-UINT8 __fastcall KodbInputReadByte(UINT32 a)
-{
- switch (a) {
- case 0x992000: {
- return ~Inp000;
- }
-
- case 0x992001: {
- return ~Inp001;
- }
-
- case 0x992008: {
- return ~Inp018;
- }
-
- case 0x992009: {
- return 0xff;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Input Read Byte %x\n"), a);
- }
- }
-
- return 0;
-}
-
-void __fastcall Kodb98WriteByte(UINT32 a, UINT8 d)
-{
- switch (a) {
- case 0x992007: {
- PsndSyncZ80((INT64)SekTotalCycles() * nCpsZ80Cycles / nCpsCycles);
- PsndCode = d;
- return;
- }
- }
-
- bprintf(PRINT_IMPORTANT, _T("Unknown byte value written at %x %x\n"), a, d);
-}
-
-void __fastcall Kodb98WriteWord(UINT32 a, UINT16 d)
-{
- switch (a) {
- case 0x980000: {
- // scroll1 y
- *((UINT16*)(CpsReg + 0x0e)) = BURN_ENDIAN_SWAP_INT16(d);
- return;
- }
-
- case 0x980002: {
- // scroll1 x
- *((UINT16*)(CpsReg + 0x0c)) = BURN_ENDIAN_SWAP_INT16(d - 0x3e);
- return;
- }
-
- case 0x980004: {
- // scroll2 y
- *((UINT16*)(CpsReg + 0x12)) = BURN_ENDIAN_SWAP_INT16(d);
- return;
- }
-
- case 0x980006: {
- // scroll2 x
- *((UINT16*)(CpsReg + 0x10)) = BURN_ENDIAN_SWAP_INT16(d - 0x3c);
- return;
- }
-
- case 0x980008: {
- // scroll3 y
- *((UINT16*)(CpsReg + 0x16)) = BURN_ENDIAN_SWAP_INT16(d);
- return;
- }
-
- case 0x98000a: {
- // scroll3 x
- *((UINT16*)(CpsReg + 0x14)) = BURN_ENDIAN_SWAP_INT16(d - 0x40);
- return;
- }
-
- case 0x98000c: {
- *((UINT16*)(CpsReg + nCpsLcReg)) = BURN_ENDIAN_SWAP_INT16(d);
- return;
- }
-
- case 0x980020: {
- *((UINT16*)(CpsReg + MaskAddr[1])) = BURN_ENDIAN_SWAP_INT16(d);
- return;
- }
-
- case 0x980022: {
- *((UINT16*)(CpsReg + MaskAddr[2])) = BURN_ENDIAN_SWAP_INT16(d);
- return;
- }
-
- case 0x994000: {
- // ???
- return;
- }
- }
-
- bprintf(PRINT_IMPORTANT, _T("Unknown value written at %x %x\n"), a, d);
-}
-
-static void KodbPatch()
-{
- // This fixes sprite ram clearing - shouldn't be necessary, but used for now pending understanding of the underlying issue
- CpsRom[0x953] = 0x07;
-}
-
-static INT32 KodbInit()
-{
- INT32 nRet = 0;
-
- Kodb = 1;
- bCpsUpdatePalEveryFrame = 1;
- CpsDisableRowScroll = 1;
- AmendProgRomCallback = KodbPatch;
- Cps1GfxLoadCallbackFunction = CpsLoadTilesKodb;
- Cps1ObjGetCallbackFunction = KodbObjGet;
- Cps1ObjDrawCallbackFunction = FcrashObjDraw;
-
- nRet = DrvInit();
-
- CpsBootlegSpriteRam = (UINT8*)BurnMalloc(0x4000);
-
- SekOpen(0);
- SekMapMemory(CpsBootlegSpriteRam, 0x900000, 0x903fff, MAP_RAM);
- SekMapMemory(CpsBootlegSpriteRam, 0x904000, 0x907fff, MAP_RAM);
- SekMapHandler(1, 0x980000, 0x99ffff, MAP_WRITE);
- SekSetWriteByteHandler(1, Kodb98WriteByte);
- SekSetWriteWordHandler(1, Kodb98WriteWord);
- SekMapHandler(2, 0x992000, 0x992009, MAP_READ);
- SekSetReadByteHandler(2, KodbInputReadByte);
- SekClose();
-
- Cps1VBlankIRQLine = 4;
-
- return nRet;
-}
-
-static INT32 KodhInit()
-{
- Kodh = 1;
-
- return DrvInit();
-}
-
-static INT32 MercsInit()
-{
- Cps1DisableBgHi = 1;
-
- return DrvInit();
-}
-
-static INT32 Pang3bInit()
-{
- PangEEP = 1;
-
- return TwelveMhzInit();
-}
-
-static void Pang3Callback()
-{
- for (INT32 i = 0x80000; i < 0x100000; i += 2) {
- INT32 src = CpsRom[i];
- INT32 dst = src & 0xff00;
- if ( src & 0x01) dst ^= 0x04;
- if ( src & 0x02) dst ^= 0x21;
- if ( src & 0x04) dst ^= 0x01;
- if (~src & 0x08) dst ^= 0x50;
- if ( src & 0x10) dst ^= 0x40;
- if ( src & 0x20) dst ^= 0x06;
- if ( src & 0x40) dst ^= 0x08;
- if (~src & 0x80) dst ^= 0x88;
- CpsRom[i] = (UINT8)dst;
- }
-}
-
-static INT32 Pang3Init()
-{
- AmendProgRomCallback = Pang3Callback;
-
- return Pang3bInit();
-}
-
-static INT32 Pang3r1aInit()
-{
- Cps1GfxLoadCallbackFunction = CpsLoadTilesPang3r1a;
-
- return Pang3Init();
-}
-
-static UINT16 PunipicPriorityValue = 0;
-
-UINT8 __fastcall PunipicF18Read(UINT32)
-{
- return 0xff;
-}
-
-void __fastcall Punipic98WriteWord(UINT32 a, UINT16 d)
-{
- switch (a) {
- case 0x980000: {
- // scroll1 y
- *((UINT16*)(CpsReg + 0x0e)) = BURN_ENDIAN_SWAP_INT16(d);
- return;
- }
-
- case 0x980002: {
- // scroll1 x
- *((UINT16*)(CpsReg + 0x0c)) = BURN_ENDIAN_SWAP_INT16(d - 0x46);
- return;
- }
-
- case 0x980004: {
- // scroll2 y
- *((UINT16*)(CpsReg + 0x12)) = BURN_ENDIAN_SWAP_INT16(d);
- return;
- }
-
- case 0x980006: {
- // scroll2 x
- *((UINT16*)(CpsReg + 0x10)) = BURN_ENDIAN_SWAP_INT16(d - 0x40);
- return;
- }
-
- case 0x980008: {
- // scroll3 y
- *((UINT16*)(CpsReg + 0x16)) = BURN_ENDIAN_SWAP_INT16(d);
- return;
- }
-
- case 0x98000a: {
- // scroll3 x
- *((UINT16*)(CpsReg + 0x14)) = BURN_ENDIAN_SWAP_INT16(d - 0x46);
- return;
- }
-
- case 0x98000c: {
- PunipicPriorityValue = d;
- return;
- }
-
- case 0x98000e: {
- // layer enable and order appears to be handled by writes here and at 0x98000c
- if (d == 0x0000) {
- switch (PunipicPriorityValue) {
- case 0x24: {
- nCps1Layers[0] = 1;
- nCps1Layers[1] = 0;
- nCps1Layers[2] = 3;
- nCps1Layers[3] = 2;
- return;
- }
-
- case 0x54:{
- nCps1Layers[0] = 1;
- nCps1Layers[1] = 0;
- nCps1Layers[2] = 2;
- nCps1Layers[3] = 3;
- return;
- }
-
- case 0x64: {
- nCps1Layers[0] = 1;
- nCps1Layers[1] = 0;
- nCps1Layers[2] = 2;
- nCps1Layers[3] = 3;
- return;
- }
-
- case 0x7c: {
- nCps1Layers[0] = 0;
- nCps1Layers[1] = 1;
- nCps1Layers[2] = 3;
- nCps1Layers[3] = 2;
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Unknown PunipicPriorityValue %x when 0x98000e is %x\n"), PunipicPriorityValue, d);
- return;
- }
- }
- }
-
- if (d == 0xffff) {
- switch (PunipicPriorityValue) {
- case 0x24: {
- nCps1Layers[0] = 1;
- nCps1Layers[1] = 0;
- nCps1Layers[2] = -1;
- nCps1Layers[3] = 3;
- return;
- }
-
- case 0x54: {
- nCps1Layers[0] = 1;
- nCps1Layers[1] = 0;
- nCps1Layers[2] = 2;
- nCps1Layers[3] = -1;
- return;
- }
-
- case 0x64: {
- nCps1Layers[0] = 1;
- nCps1Layers[1] = 0;
- nCps1Layers[2] = 2;
- nCps1Layers[3] = -1;
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Unknown PunipicPriorityValue %x when 0x98000e is %x\n"), PunipicPriorityValue, d);
- return;
- }
- }
- }
-
- bprintf(PRINT_NORMAL, _T("Unknown value written to 0x98000e %x\n"), d);
-
- return;
- }
- }
-
- bprintf(PRINT_NORMAL, _T("Write Word %x, %x\n"), a, d);
-}
-
-void __fastcall PunipicFFWriteByte(UINT32 a, UINT8 d)
-{
- CpsRamFF[((a & 0xffff) ^ 1)] = d;
-}
-
-void __fastcall PunipicFFWriteWord(UINT32 a, UINT16 d)
-{
- switch (a) {
- case 0xff5b30: {
- *((UINT16*)(CpsReg + MaskAddr[1])) = BURN_ENDIAN_SWAP_INT16(d);
- break;
- }
-
- case 0xff5b32: {
- *((UINT16*)(CpsReg + MaskAddr[2])) = BURN_ENDIAN_SWAP_INT16(d);
- break;
- }
-
- case 0xff5b34: {
- *((UINT16*)(CpsReg + MaskAddr[3])) = BURN_ENDIAN_SWAP_INT16(d);
- break;
- }
-
- case 0xff5b8a: {
- // scroll 1 ram offset
- *((UINT16*)(CpsReg + 0x02)) = BURN_ENDIAN_SWAP_INT16(d);
- break;
- }
-
- case 0xff5b8c: {
- // scroll 2 ram offset
- *((UINT16*)(CpsReg + 0x04)) = BURN_ENDIAN_SWAP_INT16(d);
- break;
- }
-
- case 0xff5b8e: {
- // scroll 3 ram offset
- *((UINT16*)(CpsReg + 0x06)) = BURN_ENDIAN_SWAP_INT16(d);
- break;
- }
- }
-
- UINT16 *RAM = (UINT16*)CpsRamFF;
- RAM[((a & 0xffff) >> 1)] = d;
-}
-
-static INT32 PunipicScanCallback(INT32 nAction, INT32 *pnMin)
-{
- if (nAction & ACB_DRIVER_DATA) {
- SCAN_VAR(PunipicPriorityValue);
- }
-
- return CpsBootlegSpriteRamScanCallback(nAction, pnMin);
-}
-
-static INT32 PunipicInit()
-{
- Cps1DisablePSnd = 1;
- bCpsUpdatePalEveryFrame = 1;
- Cps1OverrideLayers = 1;
- CpsBootlegEEPROM = 1;
- Cps1GfxLoadCallbackFunction = CpsLoadTilesDinopic;
- Cps1ObjGetCallbackFunction = DinopicObjGet;
- Cps1ObjDrawCallbackFunction = FcrashObjDraw;
- CpsMemScanCallbackFunction = PunipicScanCallback;
-
- INT32 nRet = TwelveMhzInit();
-
- CpsBootlegSpriteRam = (UINT8*)BurnMalloc(0x4000);
-
- SekOpen(0);
- SekMapMemory(CpsBootlegSpriteRam, 0x990000, 0x993fff, MAP_RAM);
- SekMapHandler(1, 0xf18000, 0xf19fff, MAP_READ);
- SekSetReadByteHandler(1, PunipicF18Read);
- SekMapHandler(2, 0x980000, 0x980fff, MAP_WRITE);
- SekSetWriteWordHandler(2, Punipic98WriteWord);
- SekMapHandler(3, 0xff0000, 0xffffff, MAP_WRITE);
- SekSetWriteByteHandler(3, PunipicFFWriteByte);
- SekSetWriteWordHandler(3, PunipicFFWriteWord);
- SekClose();
-
- return nRet;
-}
-
-static INT32 PunipicExit()
-{
- PunipicPriorityValue = 0;
-
- return DrvExit();
-}
-
-static INT32 Punipic2Init()
-{
- Cps1DisablePSnd = 1;
- bCpsUpdatePalEveryFrame = 1;
- Cps1OverrideLayers = 1;
- CpsBootlegEEPROM = 1;
- Cps1GfxLoadCallbackFunction = CpsLoadTilesHack160Alt;
- Cps1ObjGetCallbackFunction = DinopicObjGet;
- Cps1ObjDrawCallbackFunction = FcrashObjDraw;
- CpsMemScanCallbackFunction = PunipicScanCallback;
-
- INT32 nRet = TwelveMhzInit();
-
- CpsBootlegSpriteRam = (UINT8*)BurnMalloc(0x4000);
-
- SekOpen(0);
- SekMapMemory(CpsBootlegSpriteRam, 0x990000, 0x993fff, MAP_RAM);
- SekMapHandler(1, 0xf18000, 0xf19fff, MAP_READ);
- SekSetReadByteHandler(1, PunipicF18Read);
- SekMapHandler(2, 0x980000, 0x980fff, MAP_WRITE);
- SekSetWriteWordHandler(2, Punipic98WriteWord);
- SekMapHandler(3, 0xff0000, 0xffffff, MAP_WRITE);
- SekSetWriteByteHandler(3, PunipicFFWriteByte);
- SekSetWriteWordHandler(3, PunipicFFWriteWord);
- SekClose();
-
- return nRet;
-}
-
-static INT32 Punipic3Init()
-{
- Cps1DisablePSnd = 1;
- bCpsUpdatePalEveryFrame = 1;
- Cps1OverrideLayers = 1;
- CpsBootlegEEPROM = 1;
- Cps1GfxLoadCallbackFunction = CpsLoadTilesHack160;
- Cps1ObjGetCallbackFunction = DinopicObjGet;
- Cps1ObjDrawCallbackFunction = FcrashObjDraw;
- CpsMemScanCallbackFunction = PunipicScanCallback;
-
- INT32 nRet = TwelveMhzInit();
-
- CpsBootlegSpriteRam = (UINT8*)BurnMalloc(0x4000);
-
- SekOpen(0);
- SekMapMemory(CpsBootlegSpriteRam, 0x990000, 0x993fff, MAP_RAM);
- SekMapHandler(1, 0xf18000, 0xf19fff, MAP_READ);
- SekSetReadByteHandler(1, PunipicF18Read);
- SekMapHandler(2, 0x980000, 0x980fff, MAP_WRITE);
- SekSetWriteWordHandler(2, Punipic98WriteWord);
- SekMapHandler(3, 0xff0000, 0xffffff, MAP_WRITE);
- SekSetWriteByteHandler(3, PunipicFFWriteByte);
- SekSetWriteWordHandler(3, PunipicFFWriteWord);
- SekClose();
-
- return nRet;
-}
-
-static INT32 PunisherbInit()
-{
- Cps1GfxLoadCallbackFunction = CpsLoadTilesPunisherb;
-
- return TwelveMhzInit();
-}
-
-static INT32 QadInit()
-{
- Cps1DisableBgHi = 1;
-
- return TwelveMhzInit();
-}
-
-static INT32 Sf2ebblInit()
-{
- INT32 nRet = DrvInit();
-
- Cps1LockSpriteList910000 = 1;
-
- CpsLayer1XOffs = -12;
- CpsLayer1YOffs = 1;
- CpsLayer2XOffs = -14;
- CpsLayer2YOffs = 1;
- CpsLayer3XOffs = -16;
- CpsLayer3YOffs = 1;
- CpsDrawSpritesInReverse = 1;
-
- return nRet;
-}
-
-static INT32 Sf2ebbl2Init()
-{
- Cps1GfxLoadCallbackFunction = CpsLoadTilesSf2koryu;
-
- INT32 nRet = DrvInit();
-
- Cps1LockSpriteList910000 = 1;
-
- CpsLayer1XOffs = -12;
- CpsLayer2XOffs = -14;
- CpsLayer3XOffs = -16;
- CpsDrawSpritesInReverse = 1;
-
- return nRet;
-}
-
-static INT32 Sf2ebbl3Init()
-{
- Cps1GfxLoadCallbackFunction = CpsLoadTilesSf2ebbl3;
-
- return Sf2ebblInit();
-}
-
-static INT32 Sf2sttInit()
-{
- Cps1GfxLoadCallbackFunction = CpsLoadTilesSf2stt;
-
- INT32 nRet = DrvInit();
-
- Cps1LockSpriteList910000 = 1;
-
- CpsLayer1XOffs = -12;
- CpsLayer1YOffs = 1;
- CpsLayer2XOffs = -14;
- CpsLayer2YOffs = 1;
- CpsLayer3XOffs = -16;
- CpsLayer3YOffs = 1;
- CpsDrawSpritesInReverse = 1;
-
- return nRet;
-}
-
-static INT32 Sf2jcInit()
-{
- Cps1DisableBgHi = 1;
-
- return DrvInit();
-}
-
-static void Sf2qp1Callback()
-{
- UINT8 *TempRom = (UINT8*)BurnMalloc(0x100000);
- if (TempRom) {
- memcpy(TempRom, CpsRom, 0x100000);
- memset(CpsRom, 0, 0x100000);
- memcpy(CpsRom + 0x000000, TempRom + 0x000000, 0x40000);
- memcpy(CpsRom + 0x0c0000, TempRom + 0x040000, 0x40000);
- memcpy(CpsRom + 0x080000, TempRom + 0x080000, 0x40000);
- memcpy(CpsRom + 0x040000, TempRom + 0x0c0000, 0x40000);
- BurnFree(TempRom);
- }
-}
-
-static INT32 Sf2qp1Init()
-{
- AmendProgRomCallback = Sf2qp1Callback;
-
- return DrvInit();
-}
-
-static INT32 Sf2thndrInit()
-{
- Sf2thndr = 1;
-
- return DrvInit();
-}
-
-UINT8 __fastcall Sf2bReadByte(UINT32 a)
-{
- switch (a) {
- case 0x70c000: {
- return ~Inp000;
- }
-
- case 0x70c001: {
- return ~Inp001;
- }
-
- case 0x70c008: {
- return 0xff;
- }
-
- case 0x70c009: {
- return ~Inp177;
- }
-
- case 0x70c018: {
- return ~Inp018;
- }
-
- case 0x70c01a: {
- return ~Cpi01A;
- }
-
- case 0x70c01c: {
- return ~Cpi01C;
- }
-
- case 0x70c01e: {
- return ~Cpi01E;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Read Byte %x\n"), a);
- }
- }
-
- return 0;
-}
-
-UINT16 __fastcall Sf2bReadWord(UINT32 a)
-{
- switch (a) {
- default: {
- bprintf(PRINT_NORMAL, _T("Read Word %x\n"), a);
- }
- }
-
- return 0;
-}
-
-void __fastcall Sf2bWriteByte(UINT32 a, UINT8 d)
-{
- switch (a) {
- case 0x70c106: {
- Sf2mdtSoundCommand(d);
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Write Byte %x, %x\n"), a, d);
- }
- }
-}
-
-void __fastcall Sf2bWriteWord(UINT32 a, UINT16 d)
-{
- switch (a) {
- case 0x70810c: {
- // scroll1 x
- *((UINT16*)(CpsReg + 0x0c)) = BURN_ENDIAN_SWAP_INT16(d + 0xffbe);
- return;
- }
-
- case 0x70810e: {
- // scroll1 y
- *((UINT16*)(CpsReg + 0x0e)) = BURN_ENDIAN_SWAP_INT16(d);
- return;
- }
-
- case 0x708110: {
- // scroll2 x
- *((UINT16*)(CpsReg + 0x10)) = BURN_ENDIAN_SWAP_INT16(d + 0xffc0);
- return;
- }
-
- case 0x708112: {
- // scroll2 y
- *((UINT16*)(CpsReg + 0x12)) = BURN_ENDIAN_SWAP_INT16(d);
- // update the row scroll start reg here as well
- *((UINT16*)(CpsReg + 0x20)) = BURN_ENDIAN_SWAP_INT16(d);
- // get the row scroll table address
- //*((UINT16*)(CpsReg + 0x08)) = *((UINT16*)(CpsRamFF + 0x8032));
- return;
- }
-
- case 0x708114: {
- // scroll3 x
- *((UINT16*)(CpsReg + 0x14)) = BURN_ENDIAN_SWAP_INT16(d + 0xffbe);
- return;
- }
-
- case 0x708116: {
- // scroll3 y
- *((UINT16*)(CpsReg + 0x16)) = BURN_ENDIAN_SWAP_INT16(d);
- return;
- }
-
- case 0x70814c: {
- *((UINT16*)(CpsReg + nCpsLcReg)) = BURN_ENDIAN_SWAP_INT16(d);
- return;
- }
-
- case 0x70d000: {
- // nop?
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Write Word %x, %x\n"), a, d);
- }
- }
-}
-
-static INT32 Sf2mdtScanCallback(INT32, INT32*);
-
-static INT32 Sf2bInit()
-{
- bCpsUpdatePalEveryFrame = 1;
- Cps1DisablePSnd = 1;
- Cps1GfxLoadCallbackFunction = CpsLoadTilesSf2mdta;
- Cps1ObjGetCallbackFunction = Sf2mdtObjGet;
- Cps1ObjDrawCallbackFunction = FcrashObjDraw;
- CpsRunInitCallbackFunction = Sf2mdtSoundInit;
- CpsRunResetCallbackFunction = Sf2mdtSoundReset;
- CpsRunExitCallbackFunction = Sf2mdtSoundExit;
- CpsRunFrameStartCallbackFunction = Sf2mdtSoundFrameStart;
- CpsRunFrameEndCallbackFunction = Sf2mdtSoundFrameEnd;
- CpsRWSoundCommandCallbackFunction = Sf2mdtSoundCommand;
- CpsMemScanCallbackFunction = Sf2mdtScanCallback;
-
- INT32 nRet = DrvInit();
-
- CpsBootlegSpriteRam = (UINT8*)BurnMalloc(0x4000);
-
- SekOpen(0);
- SekMapMemory(CpsBootlegSpriteRam, 0x700000, 0x703fff, MAP_RAM);
- SekMapMemory(CpsBootlegSpriteRam, 0x704000, 0x707fff, MAP_RAM); // mirror?
- SekMapHandler(1, 0x708000, 0x7fffff, MAP_READ | MAP_WRITE);
- SekSetReadByteHandler(1, Sf2bReadByte);
- SekSetReadWordHandler(1, Sf2bReadWord);
- SekSetWriteByteHandler(1, Sf2bWriteByte);
- SekSetWriteWordHandler(1, Sf2bWriteWord);
- SekClose();
-
- Cps1VBlankIRQLine = 4; // triggers the sprite ram and layer enable/scroll writes at 0x700000
-
- return nRet;
-}
-
-static INT32 Sf2b2Init()
-{
- Cps1GfxLoadCallbackFunction = CpsLoadTilesSf2stt;
-
- return DrvInit();
-}
-
-static INT32 Sf2ceInit()
-{
- nCPS68KClockspeed = 7000000;
-
- return DrvInit();
-}
-
-static void Sf2accp2Callback()
-{
- // This causes problems in FBA, but is ignored in MAME??
- // 011756: 66FF dc.w $66ff; ILLEGAL
-
-// *((UINT16*)(CpsRom + 0x11756)) = 0x4e71;
-}
-
-static INT32 Sf2accp2Init()
-{
- AmendProgRomCallback = Sf2accp2Callback;
-
- return Sf2ceInit();
-}
-
-static INT32 Sf2dkot2Init()
-{
- INT32 nRet;
-
- nRet = Sf2ceInit();
-
- SekOpen(0);
- SekMapMemory(CpsRom + 0x000000, 0x280000, 0x2fffff, MAP_ROM);
- SekMapMemory(CpsRom + 0x080000, 0x200000, 0x27ffff, MAP_ROM);
- SekClose();
-
- return nRet;
-}
-
-UINT8 __fastcall Sf2rbProtReadByte(UINT32 a)
-{
- switch (a) {
- case 0x201201: {
- return 0x02;
- }
-
- case 0x281201: {
- return 0x40;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Prot Read Byte %x\n"), a);
- }
- }
-
- return 0;
-}
-
-UINT16 __fastcall Sf2rbProtReadWord(UINT32 a)
-{
- switch (a) {
- default: {
- bprintf(PRINT_NORMAL, _T("Prot Read Word %x\n"), a);
- }
- }
-
- return 0;
-}
-
-static void Sf2rbCallback()
-{
- BurnByteswap(CpsRom, 0x100000);
-}
-
-static INT32 Sf2rbInit()
-{
- AmendProgRomCallback = Sf2rbCallback;
-
- INT32 nRet = Sf2ceInit();
-
- SekOpen(0);
- SekMapHandler(1, 0x200000, 0x2fffff, MAP_READ);
- SekSetReadByteHandler(1, Sf2rbProtReadByte);
- SekSetReadWordHandler(1, Sf2rbProtReadWord);
- SekClose();
-
- return nRet;
-}
-
-UINT8 __fastcall Sf2rb2ProtReadByte(UINT32 a)
-{
- switch (a) {
- case 0x201201: {
- return 0x00;
- }
-
- case 0x281201: {
- return 0x40;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Prot Read Byte %x\n"), a);
- }
- }
-
- return 0;
-}
-
-UINT16 __fastcall Sf2rb2ProtReadWord(UINT32 a)
-{
- switch (a) {
- default: {
- bprintf(PRINT_NORMAL, _T("Prot Read Word %x\n"), a);
- }
- }
-
- return 0;
-}
-
-static INT32 Sf2rb2Init()
-{
- INT32 nRet = Sf2ceInit();
-
- SekOpen(0);
- SekMapHandler(1, 0x200000, 0x2fffff, MAP_READ);
- SekSetReadByteHandler(1, Sf2rb2ProtReadByte);
- SekSetReadWordHandler(1, Sf2rb2ProtReadWord);
- SekClose();
-
- return nRet;
-}
-
-static void Sf2rb6Callback()
-{
- UINT8 *pTemp = (UINT8*)BurnMalloc(0x180000);
-
- if (pTemp) {
- memcpy(pTemp, CpsRom, 0x180000);
- memcpy(CpsRom + 0x080000, pTemp + 0x000000, 0x40000);
- memcpy(CpsRom + 0x140000, pTemp + 0x040000, 0x40000);
- memcpy(CpsRom + 0x100000, pTemp + 0x080000, 0x40000);
- memcpy(CpsRom + 0x040000, pTemp + 0x0c0000, 0x40000);
- memcpy(CpsRom + 0x000000, pTemp + 0x100000, 0x40000);
- memcpy(CpsRom + 0x0c0000, pTemp + 0x140000, 0x40000);
- BurnFree(pTemp);
- }
-}
-
-static INT32 Sf2rb6Init()
-{
- AmendProgRomCallback = Sf2rb6Callback;
-
- return Sf2ceInit();
-}
-
-static void Sf2yycCallback()
-{
- memcpy(CpsRom + 0x140000, CpsRom + 0x100000, 0x40000);
-}
-
-static INT32 Sf2yycInit()
-{
- nCpsRomLen = 0x40000;
-
- Cps1LockSpriteList910000 = 1;
- AmendProgRomCallback = Sf2yycCallback;
-
- CpsLayer1XOffs = -12;
- CpsLayer2XOffs = -14;
- CpsLayer3XOffs = -16;
- CpsDrawSpritesInReverse = 1;
-
- return Sf2ceInit();
-}
-
-static INT32 Sf2koryuInit()
-{
- Cps1GfxLoadCallbackFunction = CpsLoadTilesSf2koryu;
-
- Cps1LockSpriteList910000 = 1;
-
- CpsLayer1XOffs = -12;
- CpsLayer2XOffs = -14;
- CpsLayer3XOffs = -16;
- CpsDrawSpritesInReverse = 1;
-
- return Sf2ceInit();
-}
-
-static INT32 Sf2koryu2Init()
-{
- Cps1LockSpriteList910000 = 1;
-
- CpsLayer1XOffs = -12;
- CpsLayer2XOffs = -14;
- CpsLayer3XOffs = -16;
- CpsDrawSpritesInReverse = 1;
-
- return Sf2ceInit();
-}
-
-static INT32 Sf2amfInit()
-{
- Cps1GfxLoadCallbackFunction = CpsLoadTilesSf2koryu;
-
- return Sf2koryu2Init();
-}
-
-static INT32 Sf2amf2Init()
-{
- Cps1GfxLoadCallbackFunction = CpsLoadTilesSf2stt;
-
- return Sf2koryu2Init();
-}
-
-UINT8 __fastcall Sf2mdtReadByte(UINT32 a)
-{
- switch (a) {
- case 0x70c000: {
- return ~Inp000;
- }
-
- case 0x70c001: {
- return ~Inp001;
- }
-
- case 0x70c008: {
- return 0xff;
- }
-
- case 0x70c009: {
- return ~Inp177;
- }
-
- case 0x70c018: {
- return ~Inp018;
- }
-
- case 0x70c01a: {
- return ~Cpi01A;
- }
-
- case 0x70c01c: {
- return ~Cpi01C;
- }
-
- case 0x70c01e: {
- return ~Cpi01E;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Read Byte %x\n"), a);
- }
- }
-
- return 0;
-}
-
-UINT16 __fastcall Sf2mdtReadWord(UINT32 a)
-{
- switch (a) {
- default: {
- bprintf(PRINT_NORMAL, _T("Read Word %x\n"), a);
- }
- }
-
- return 0;
-}
-
-void __fastcall Sf2mdtWriteByte(UINT32 a, UINT8 d)
-{
- switch (a) {
- case 0x70c106: {
- Sf2mdtSoundCommand(d);
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Write Byte %x, %x\n"), a, d);
- }
- }
-}
-
-void __fastcall Sf2mdtWriteWord(UINT32 a, UINT16 d)
-{
- switch (a) {
- case 0x70810c: {
- // scroll3 x
- *((UINT16*)(CpsReg + 0x14)) = BURN_ENDIAN_SWAP_INT16(d + 0xffbe);
- return;
- }
-
- case 0x70810e: {
- // scroll3 y
- *((UINT16*)(CpsReg + 0x16)) = BURN_ENDIAN_SWAP_INT16(d);
- return;
- }
-
- case 0x708110: {
- // scroll2 x
- *((UINT16*)(CpsReg + 0x10)) = BURN_ENDIAN_SWAP_INT16(d + 0xffc0);
- return;
- }
-
- case 0x708112: {
- // scroll1 x
- *((UINT16*)(CpsReg + 0x0c)) = BURN_ENDIAN_SWAP_INT16(d + 0xffbe);
- return;
- }
-
- case 0x708114: {
- // scroll2 y
- *((UINT16*)(CpsReg + 0x12)) = BURN_ENDIAN_SWAP_INT16(d);
- // update the row scroll start reg here as well
- *((UINT16*)(CpsReg + 0x20)) = BURN_ENDIAN_SWAP_INT16(d);
- // get the row scroll table address
- *((UINT16*)(CpsReg + 0x08)) = *((UINT16*)(CpsRamFF + 0x802e));
- return;
- }
-
- case 0x708116: {
- // scroll1 y
- *((UINT16*)(CpsReg + 0x0e)) = BURN_ENDIAN_SWAP_INT16(d);
- return;
- }
-
- case 0x70814c: {
- *((UINT16*)(CpsReg + nCpsLcReg)) = BURN_ENDIAN_SWAP_INT16(d);
- return;
- }
-
- case 0x70d000: {
- // nop?
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Write Word %x, %x\n"), a, d);
- }
- }
-}
-
-void __fastcall Sf2mdtaWriteWord(UINT32 a, UINT16 d)
-{
- switch (a) {
- case 0x70810c: {
- // scroll1 x
- *((UINT16*)(CpsReg + 0x0c)) = BURN_ENDIAN_SWAP_INT16(d + 0xffbe);
- return;
- }
-
- case 0x70810e: {
- // scroll1 y
- *((UINT16*)(CpsReg + 0x0e)) = BURN_ENDIAN_SWAP_INT16(d);
- return;
- }
-
- case 0x708110: {
- // scroll3 x
- *((UINT16*)(CpsReg + 0x14)) = BURN_ENDIAN_SWAP_INT16(d + 0xffbe);
- return;
- }
-
- case 0x708112: {
- // scroll2 y
- *((UINT16*)(CpsReg + 0x12)) = BURN_ENDIAN_SWAP_INT16(d);
- // update the row scroll start reg here as well
- *((UINT16*)(CpsReg + 0x20)) = BURN_ENDIAN_SWAP_INT16(d);
- // get the row scroll table address
- *((UINT16*)(CpsReg + 0x08)) = *((UINT16*)(CpsRamFF + 0x802e));
- return;
- }
-
- case 0x708114: {
- // ???
- return;
- }
-
- case 0x708116: {
- // scroll3 y
- *((UINT16*)(CpsReg + 0x16)) = BURN_ENDIAN_SWAP_INT16(d);
- return;
- }
-
- case 0x70814c: {
- *((UINT16*)(CpsReg + nCpsLcReg)) = BURN_ENDIAN_SWAP_INT16(d);
- return;
- }
-
- case 0x70d000: {
- // nop?
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Write Word %x, %x\n"), a, d);
- }
- }
-}
-
-static INT32 Sf2mdtScanCallback(INT32 nAction, INT32*pnMin)
-{
- CpsBootlegSpriteRamScanCallback(nAction, pnMin);
- Sf2mdtScanSound(nAction, pnMin);
-
- return 0;
-}
-
-static INT32 Sf2mdtInit()
-{
- bCpsUpdatePalEveryFrame = 1;
- Cps1DisablePSnd = 1;
- Cps1GfxLoadCallbackFunction = CpsLoadTilesSf2mdt;
- Cps1ObjGetCallbackFunction = Sf2mdtObjGet;
- Cps1ObjDrawCallbackFunction = FcrashObjDraw;
- CpsRunInitCallbackFunction = Sf2mdtSoundInit;
- CpsRunResetCallbackFunction = Sf2mdtSoundReset;
- CpsRunExitCallbackFunction = Sf2mdtSoundExit;
- CpsRunFrameStartCallbackFunction = Sf2mdtSoundFrameStart;
- CpsRunFrameEndCallbackFunction = Sf2mdtSoundFrameEnd;
- CpsRWSoundCommandCallbackFunction = Sf2mdtSoundCommand;
- CpsMemScanCallbackFunction = Sf2mdtScanCallback;
-
- INT32 nRet = Sf2ceInit();
-
- CpsBootlegSpriteRam = (UINT8*)BurnMalloc(0x4000);
-
- SekOpen(0);
- SekMapMemory(CpsBootlegSpriteRam, 0x700000, 0x703fff, MAP_RAM);
- SekMapMemory(CpsBootlegSpriteRam, 0x704000, 0x707fff, MAP_RAM); // mirror? can use either of this - seems to make no difference
- SekMapHandler(1, 0x708000, 0x7fffff, MAP_READ | MAP_WRITE);
- SekSetReadByteHandler(1, Sf2mdtReadByte);
- SekSetReadWordHandler(1, Sf2mdtReadWord);
- SekSetWriteByteHandler(1, Sf2mdtWriteByte);
- SekSetWriteWordHandler(1, Sf2mdtWriteWord);
- SekClose();
-
- Cps1VBlankIRQLine = 4; // triggers the sprite ram and layer enable/scroll writes at 0x700000
-
- return nRet;
-}
-
-static INT32 Sf2mdtaInit()
-{
- bCpsUpdatePalEveryFrame = 1;
- Cps1DisablePSnd = 1;
- CpsLayer2XOffs = 0xffc0; // layer 2 scrolling seems to be taken care of by row scroll tables
- Cps1GfxLoadCallbackFunction = CpsLoadTilesSf2mdta;
- Cps1ObjGetCallbackFunction = Sf2mdtObjGet;
- Cps1ObjDrawCallbackFunction = FcrashObjDraw;
- CpsRunInitCallbackFunction = Sf2mdtSoundInit;
- CpsRunResetCallbackFunction = Sf2mdtSoundReset;
- CpsRunExitCallbackFunction = Sf2mdtSoundExit;
- CpsRunFrameStartCallbackFunction = Sf2mdtSoundFrameStart;
- CpsRunFrameEndCallbackFunction = Sf2mdtSoundFrameEnd;
- CpsRWSoundCommandCallbackFunction = Sf2mdtSoundCommand;
- CpsMemScanCallbackFunction = Sf2mdtScanCallback;
-
- INT32 nRet = Sf2ceInit();
-
- CpsBootlegSpriteRam = (UINT8*)BurnMalloc(0x4000);
-
- SekOpen(0);
- SekMapMemory(CpsBootlegSpriteRam, 0x700000, 0x703fff, MAP_RAM);
- SekMapMemory(CpsBootlegSpriteRam, 0x704000, 0x707fff, MAP_RAM); // mirror? can use either of this - seems to make no difference
- SekMapMemory(CpsRamFF, 0xfc0000, 0xfcffff, MAP_RAM);
- SekMapHandler(1, 0x708000, 0x7fffff, MAP_READ | MAP_WRITE);
- SekSetReadByteHandler(1, Sf2mdtReadByte);
- SekSetReadWordHandler(1, Sf2mdtReadWord);
- SekSetWriteByteHandler(1, Sf2mdtWriteByte);
- SekSetWriteWordHandler(1, Sf2mdtaWriteWord);
- SekClose();
-
- Cps1VBlankIRQLine = 4; // triggers the sprite ram and layer enable/scroll writes at 0x700000
-
- return nRet;
-}
-
-static INT32 Sf2mdtbInit()
-{
- bCpsUpdatePalEveryFrame = 1;
- Cps1DisablePSnd = 1;
- CpsLayer2XOffs = 0xffc0; // layer 2 scrolling seems to be taken care of by row scroll tables
- Cps1GfxLoadCallbackFunction = CpsLoadTilesSf2mdt;
- Cps1ObjGetCallbackFunction = Sf2mdtObjGet;
- Cps1ObjDrawCallbackFunction = FcrashObjDraw;
- CpsRunInitCallbackFunction = Sf2mdtSoundInit;
- CpsRunResetCallbackFunction = Sf2mdtSoundReset;
- CpsRunExitCallbackFunction = Sf2mdtSoundExit;
- CpsRunFrameStartCallbackFunction = Sf2mdtSoundFrameStart;
- CpsRunFrameEndCallbackFunction = Sf2mdtSoundFrameEnd;
- CpsRWSoundCommandCallbackFunction = Sf2mdtSoundCommand;
- CpsMemScanCallbackFunction = Sf2mdtScanCallback;
-
- INT32 nRet = Sf2ceInit();
-
- CpsBootlegSpriteRam = (UINT8*)BurnMalloc(0x4000);
-
- SekOpen(0);
- SekMapMemory(CpsBootlegSpriteRam, 0x700000, 0x703fff, MAP_RAM);
- SekMapMemory(CpsBootlegSpriteRam, 0x704000, 0x707fff, MAP_RAM); // mirror? can use either of this - seems to make no difference
- SekMapMemory(CpsRamFF, 0xfc0000, 0xfcffff, MAP_RAM);
- SekMapHandler(1, 0x708000, 0x7fffff, MAP_READ | MAP_WRITE);
- SekSetReadByteHandler(1, Sf2mdtReadByte);
- SekSetReadWordHandler(1, Sf2mdtReadWord);
- SekSetWriteByteHandler(1, Sf2mdtWriteByte);
- SekSetWriteWordHandler(1, Sf2mdtaWriteWord);
- SekClose();
-
- Cps1VBlankIRQLine = 4; // triggers the sprite ram and layer enable/scroll writes at 0x700000
-
- return nRet;
-}
-
-void __fastcall Sf2ceeablScrollWrite(UINT32 a, UINT16 d)
-{
- switch (a) {
- case 0x980000: {
- // scroll1 y
- *((UINT16*)(CpsReg + 0x0e)) = d;
- return;
- }
-
- case 0x980002: {
- // scroll1 x
- *((UINT16*)(CpsReg + 0x0c)) = d - 0x40;
- return;
- }
-
- case 0x980004: {
- // scroll2 y
- *((UINT16*)(CpsReg + 0x12)) = d;
- return;
- }
-
- case 0x980006: {
- // scroll2 x
- *((UINT16*)(CpsReg + 0x10)) = d - 0x3c;
- return;
- }
-
- case 0x980008: {
- // scroll3 y
- *((UINT16*)(CpsReg + 0x16)) = d;
- return;
- }
-
- case 0x98000a: {
- // scroll3 x
- *((UINT16*)(CpsReg + 0x14)) = d - 0x40;
- return;
- }
-
- case 0x98000c: {
- // This seems to control layer order and enable
- switch (d) {
- case 0x00: {
- nCps1Layers[0] = 0;
- nCps1Layers[1] = 1;
- nCps1Layers[2] = 3;
- nCps1Layers[3] = 2;
- break;
- }
-
- case 0x01: {
- nCps1Layers[0] = 0;
- nCps1Layers[1] = 3;
- nCps1Layers[2] = 2;
- nCps1Layers[3] = 1;
- break;
- }
-
- case 0x02: {
- nCps1Layers[0] = 0;
- nCps1Layers[1] = 1;
- nCps1Layers[2] = 2;
- nCps1Layers[3] = 3;
- break;
- }
-
- case 0x03: {
- nCps1Layers[0] = 0;
- nCps1Layers[1] = 2;
- nCps1Layers[2] = 1;
- nCps1Layers[3] = 3;
- break;
- }
-
- case 0x04: {
- nCps1Layers[0] = 1;
- nCps1Layers[1] = 0;
- nCps1Layers[2] = 2;
- nCps1Layers[3] = 3;
- break;
- }
-
- case 0x05: {
- nCps1Layers[0] = 0;
- nCps1Layers[1] = 2;
- nCps1Layers[2] = 3;
- nCps1Layers[3] = 1;
- break;
- }
-
- default: {
- nCps1Layers[0] = 0;
- nCps1Layers[1] = 3;
- nCps1Layers[2] = 2;
- nCps1Layers[3] = 1;
- bprintf(PRINT_IMPORTANT, _T("Unknown value written at 0x98000c %x\n"), d);
- }
- }
- return;
- }
-
- case 0x980016: {
- // scroll3 ram offset
- *((UINT16*)(CpsReg + 0x06)) = d;
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Write Word %x, %x\n"), a, d);
- }
- }
-}
-
-static INT32 Sf2ceeab2Init()
-{
- Port6SoundWrite = 1;
- bCpsUpdatePalEveryFrame = 1;
- Cps1OverrideLayers = 1;
- Cps1ObjGetCallbackFunction = DinopicObjGet;
- Cps1ObjDrawCallbackFunction = FcrashObjDraw;
-
- INT32 nRet = Sf2ceInit();
-
- CpsBootlegSpriteRam = (UINT8*)BurnMalloc(0x4000);
-
- SekOpen(0);
- SekMapMemory(CpsBootlegSpriteRam, 0x990000, 0x993fff, MAP_RAM);
- SekMapHandler(1, 0x980000, 0x980fff, MAP_WRITE);
- SekSetWriteWordHandler(1, Sf2ceeablScrollWrite);
- SekClose();
-
- return nRet;
-}
-
-static INT32 Sf2ceeablInit()
-{
- Cps1GfxLoadCallbackFunction = CpsLoadTilesSf2ceeabl;
-
- return Sf2ceeab2Init();
-}
-
-static INT32 Sf2cejablInit()
-{
- CpsLayer1XOffs = -12;
- CpsLayer2XOffs = -14;
- CpsLayer3XOffs = -16;
- CpsDrawSpritesInReverse = 1;
-
- return Sf2ceInit();
-}
-
-UINT8 __fastcall Sf2ceuablReadByte(UINT32 a)
-{
- UINT8 d = 0xff;
-
- switch (a) {
- case 0x800010: {
- d = (UINT8)~Inp010;
- return d;
- }
-
- case 0x800011: {
- d = (UINT8)~Inp011;
- return d;
- }
-
- case 0x800029: {
- d = (UINT8)~Inp029;
- return d;
- }
-
- case 0x800186: {
- d = (UINT8)~Inp186;
- return d;
- }
-
- case 0x80002a: {
- d = (UINT8)~Cpi01A;
- return d;
- }
-
- case 0x80002c: {
- d = (UINT8)~Cpi01C;
- return d;
- }
-
- case 0x80002e: {
- d = (UINT8)~Cpi01E;
- return d;
- }
- }
-
-// bprintf(PRINT_NORMAL, _T("Read byte %x\n"), a);
-
- return 0;
-}
-
-void __fastcall Sf2ceuablWriteByte(UINT32 a, UINT8 d)
-{
- switch (a) {
- case 0x800191: {
- PsndSyncZ80((INT64)SekTotalCycles() * nCpsZ80Cycles / nCpsCycles);
-
- PsndCode = d;
- return;
- }
- }
-
-// bprintf(PRINT_NORMAL, _T("Write byte %x, %x\n"), a, d);
-}
-
-void __fastcall Sf2ceuablWriteWord(UINT32 a, UINT16 d)
-{
- switch (a) {
- case 0x800100: {
- CpsReg[0x00] = d & 0xff;
- CpsReg[0x01] = d >> 8;
- return;
- }
-
- case 0x800102: {
- CpsReg[0x02] = d & 0xff;
- CpsReg[0x03] = d >> 8;
- return;
- }
-
- case 0x800104: {
- CpsReg[0x04] = d & 0xff;
- CpsReg[0x05] = d >> 8;
- return;
- }
-
- case 0x800106: {
- CpsReg[0x06] = d & 0xff;
- CpsReg[0x07] = d >> 8;
- return;
- }
-
- case 0x80010a: {
- CpsReg[0x0a] = d & 0xff;
- CpsReg[0x0b] = d >> 8;
-
- GetPalette(0, 6);
- CpsPalUpdate(CpsSavePal);
- return;
- }
-
- case 0x800122: {
- CpsReg[0x22] = d & 0xff;
- CpsReg[0x23] = d >> 8;
- return;
- }
-
- case 0x80014a: {
- CpsReg[0x4a] = d & 0xff;
- CpsReg[0x4b] = d >> 8;
- return;
- }
-
- case 0x80014c: {
- CpsReg[0x4c] = d & 0xff;
- CpsReg[0x4d] = d >> 8;
- return;
- }
-
- case 0x80014e: {
- CpsReg[0x4e] = d & 0xff;
- CpsReg[0x4f] = d >> 8;
- return;
- }
-
- case 0x800150: {
- CpsReg[0x50] = d & 0xff;
- CpsReg[0x51] = d >> 8;
- return;
- }
-
- case 0x800152: {
- CpsReg[0x52] = d & 0xff;
- CpsReg[0x53] = d >> 8;
- return;
- }
-
- case 0x8001a8: {
- CpsReg[0x08] = d & 0xff;
- CpsReg[0x09] = d >> 8;
- return;
- }
-
- case 0x8001ac: {
- CpsReg[0x0c] = d & 0xff;
- CpsReg[0x0d] = d >> 8;
- return;
- }
-
- case 0x8001ae: {
- CpsReg[0x0e] = d & 0xff;
- CpsReg[0x0f] = d >> 8;
- return;
- }
-
- case 0x8001b0: {
- CpsReg[0x10] = d & 0xff;
- CpsReg[0x11] = d >> 8;
- return;
- }
-
- case 0x8001b2: {
- CpsReg[0x12] = d & 0xff;
- CpsReg[0x13] = d >> 8;
- return;
- }
-
- case 0x8001b4: {
- CpsReg[0x14] = d & 0xff;
- CpsReg[0x15] = d >> 8;
- return;
- }
-
- case 0x8001b6: {
- CpsReg[0x16] = d & 0xff;
- CpsReg[0x17] = d >> 8;
- return;
- }
-
- case 0x8001c0: {
- CpsReg[0x20] = d & 0xff;
- CpsReg[0x21] = d >> 8;
- return;
- }
-
- case 0x8001c4: {
- CpsReg[0xc4] = d & 0xff;
- CpsReg[0xc5] = d >> 8;
- return;
- }
- }
-
-// bprintf(PRINT_NORMAL, _T("Write word %x, %x\n"), a, d);
-}
-
-static INT32 Sf2ceuablInit()
-{
- INT32 nRet = 0;
-
- CpsLayer1XOffs = -16;
- CpsLayer2XOffs = -16;
- CpsLayer3XOffs = -16;
- CpsDrawSpritesInReverse = 1;
-
- nRet = Sf2ceInit();
-
- SekOpen(0);
- SekMapHandler(1, 0x800000, 0x800200, MAP_RAM);
- SekSetReadByteHandler(1, Sf2ceuablReadByte);
- SekSetWriteByteHandler(1, Sf2ceuablWriteByte);
- SekSetWriteWordHandler(1, Sf2ceuablWriteWord);
-
- SekClose();
-
- return nRet;
-}
-
-static INT32 Sf2ceuab2Init()
-{
- Scroll1TileMask = 0x4fff;
- Scroll3TileMask = 0x1fff;
-
- return Sf2ceuablInit();
-}
-
-static INT32 Sf2ceuab3Init()
-{
- Cps1GfxLoadCallbackFunction = CpsLoadTilesSf2ceuab3;
-
- return Sf2ceuablInit();
-}
-
-static INT32 Sf2ceuab4Init()
-{
- Cps1GfxLoadCallbackFunction = CpsLoadTilesSf2koryu;
-
- return Sf2ceuablInit();
-}
-
-static void Sf2ceuab6Callback()
-{
- memcpy(CpsRom + 0x0c0000, CpsRom + 0x140000, 0x40000);
-}
-
-static INT32 Sf2ceuab6Init()
-{
- AmendProgRomCallback = Sf2ceuab6Callback;
- Cps1GfxLoadCallbackFunction = CpsLoadTilesSf2ceeabl;
-
- return Sf2ceInit();
-}
-
-static UINT16 Sf2ceuab7ProtValue = 0;
-
-UINT16 __fastcall Sf2ceuab7ProtReadWord(UINT32 a)
-{
- switch (a) {
- case 0x5762b0: {
- return 0;
- }
-
- case 0x57a2b0: {
- if (Sf2ceuab7ProtValue == 0x00) return 0x1992;
- if (Sf2ceuab7ProtValue == 0x04) return 0x0408;
- return 0xffff;
- }
- }
-
- return 0;
-}
-
-void __fastcall Sf2ceuab7ProtWriteWord(UINT32 a, UINT16 d)
-{
- switch (a) {
- case 0x5762b0: {
- Sf2ceuab7ProtValue = d;
- return;
- }
- }
-}
-
-static INT32 Sf2ceuab7Init()
-{
- Cps1GfxLoadCallbackFunction = CpsLoadTilesSf2ceuab7;
-
- INT32 nRet = Sf2ceInit();
-
- SekOpen(0);
- SekMapHandler(1, 0x570000, 0x57ffff, MAP_READ | MAP_WRITE);
- SekSetReadWordHandler(1, Sf2ceuab7ProtReadWord);
- SekSetWriteWordHandler(1, Sf2ceuab7ProtWriteWord);
- SekClose();
-
- return nRet;
-}
-
-static UINT16 Sf2ceuab8E00000Value = 0;
-static UINT16 Sf2ceuab8E00004Value = 0;
-
-UINT16 __fastcall Sf2ceuab8ReadWord(UINT32 a)
-{
- if (a == 0xe00000) return Sf2ceuab8E00000Value;
- if (a == 0xe00004) return Sf2ceuab8E00004Value;
-
- return 0;
-}
-
-void __fastcall Sf2ceuab8WriteWord(UINT32 a, UINT16 d)
-{
- if (a == 0xe00000) Sf2ceuab8E00000Value = d;
- if (a == 0xe00004) Sf2ceuab8E00004Value = d;
-}
-
-static INT32 Sf2ceuab8Init()
-{
- Cps1GfxLoadCallbackFunction = CpsLoadTilesSf2koryu;
- CpsDrawSpritesInReverse = 1;
- CpsLayer1XOffs = -0x10;
- CpsLayer2XOffs = 0xffc0;
- CpsLayer3XOffs = -0x10;
-
- INT32 nRet = Sf2ceInit();
-
- SekOpen(0);
- SekMapHandler(1, 0xe00000, 0xe0ffff, MAP_READ | MAP_WRITE);
- SekSetReadWordHandler(1, Sf2ceuab8ReadWord);
- SekSetWriteWordHandler(1, Sf2ceuab8WriteWord);
- SekMapMemory(CpsRamFF, 0xef0000, 0xefffff, MAP_RAM);
- SekMapMemory(CpsRamFF, 0xfe0000, 0xfeffff, MAP_RAM);
- SekClose();
-
- return nRet;
-}
-
-static INT32 Sf2ceuab9Init()
-{
- CpsDrawSpritesInReverse = 1;
- CpsLayer1XOffs = -0x10;
- CpsLayer2XOffs = 0xffc0;
- CpsLayer3XOffs = -0x10;
-
- INT32 nRet = Sf2ceInit();
-
- SekOpen(0);
- SekMapHandler(1, 0xe00000, 0xe0ffff, MAP_READ | MAP_WRITE);
- SekSetReadWordHandler(1, Sf2ceuab8ReadWord);
- SekSetWriteWordHandler(1, Sf2ceuab8WriteWord);
- SekMapMemory(CpsRamFF, 0xef0000, 0xefffff, MAP_RAM);
- SekMapMemory(CpsRamFF, 0xfe0000, 0xfeffff, MAP_RAM);
- SekClose();
-
- return nRet;
-}
-
-static void Sf2ceucblCallback()
-{
- memcpy(CpsRom + 0x000000, CpsRom + 0x180000, 0x40000);
- memcpy(CpsRom + 0x080000, CpsRom + 0x1c0000, 0x40000);
- memcpy(CpsRom + 0x100000, CpsRom + 0x200000, 0x40000);
-}
-
-static INT32 Sf2ceucblInit()
-{
- AmendProgRomCallback = Sf2ceucblCallback;
-
- return Sf2ceInit();
-}
-
-UINT8 __fastcall Sf2dongbProtReadByte(UINT32 a)
-{
- switch (a) {
- default: {
- bprintf(PRINT_NORMAL, _T("Prot Read Byte %x\n"), a);
- }
- }
-
- return 0;
-}
-
-UINT16 __fastcall Sf2dongbProtReadWord(UINT32 a)
-{
- switch (a) {
- case 0x180000: {
- return 0x0200;
- }
-
- case 0x1f7040: {
- return 0x0210;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Prot Read Word %x\n"), a);
- }
- }
-
- return 0;
-}
-
-static INT32 Sf2dongbInit()
-{
- INT32 nRet = Sf2ceInit();
-
- SekOpen(0);
- SekMapHandler(1, 0x180000, 0x1fffff, MAP_READ);
- SekSetReadByteHandler(1, Sf2dongbProtReadByte);
- SekSetReadWordHandler(1, Sf2dongbProtReadWord);
- SekClose();
-
- return nRet;
-}
-
-static INT32 Sf2bhhInit()
-{
- AmendProgRomCallback = Sf2qp1Callback;
-
- return Sf2ceInit();
-}
-
-static void Sf2hfubCallback()
-{
- UINT8 *pTemp = (UINT8*)BurnMalloc(0x40000);
-
- if (pTemp) {
- memcpy(pTemp, CpsRom + 0xc0000, 0x40000);
- memcpy(CpsRom + 0xc0000, CpsRom + 0x140000, 0x40000);
- memcpy(CpsRom + 0x140000, pTemp, 0x40000);
- BurnFree(pTemp);
- }
-}
-
-static INT32 Sf2hfubInit()
-{
- AmendProgRomCallback = Sf2hfubCallback;
-
- return Sf2ceInit();
-}
-
-void __fastcall Sf2hfjbWriteByte(UINT32 a, UINT8 d)
-{
- CpsWritePort(a & 0x1ff, d);
-}
-
-void __fastcall Sf2hfjbWriteWord(UINT32 a, UINT16 d)
-{
- if (a == 0x800124) {
- // row scroll start register moved in this set
- *((UINT16*)(CpsReg + 0x20)) = d;
- return;
- }
-
- SEK_DEF_WRITE_WORD(1, a, d);
-}
-
-static INT32 Sf2hfjbInit()
-{
- CpsLayer1XOffs = -12;
- CpsLayer2XOffs = -14;
- CpsLayer3XOffs = -16;
- CpsDrawSpritesInReverse = 1;
-
- INT32 nRet = Sf2ceInit();
-
- SekOpen(0);
- SekMapHandler(1, 0x800000, 0x807fff, MAP_WRITE);
- SekSetWriteByteHandler(1, Sf2hfjbWriteByte);
- SekSetWriteWordHandler(1, Sf2hfjbWriteWord);
- SekClose();
-
- return nRet;
-}
-
-static INT32 SfzchInit()
-{
- INT32 nRet = 0;
-
- nRet = TwelveMhzInit();
-
- Cps = 3;
-
- return nRet;
-}
-
-UINT8 __fastcall SlampicF18Read(UINT32)
-{
- return 0xff;
-}
-
-void __fastcall SlampicScrollWrite(UINT32 a, UINT16 d)
-{
- switch (a) {
- case 0x980000: {
- // scroll1 y
- *((UINT16*)(CpsReg + 0x0e)) = BURN_ENDIAN_SWAP_INT16(d);
- return;
- }
-
- case 0x980002: {
- // scroll1 x
- *((UINT16*)(CpsReg + 0x0c)) = BURN_ENDIAN_SWAP_INT16(d - 0x40);
- return;
- }
-
- case 0x980004: {
- // scroll2 y
- *((UINT16*)(CpsReg + 0x12)) = BURN_ENDIAN_SWAP_INT16(d);
- return;
- }
-
- case 0x980006: {
- // scroll2 x
- *((UINT16*)(CpsReg + 0x10)) = BURN_ENDIAN_SWAP_INT16(d - 0x40);
- return;
- }
-
- case 0x980008: {
- // scroll3 y
- *((UINT16*)(CpsReg + 0x16)) = BURN_ENDIAN_SWAP_INT16(d);
- return;
- }
-
- case 0x98000a: {
- // scroll3 x
- *((UINT16*)(CpsReg + 0x14)) = BURN_ENDIAN_SWAP_INT16(d - 0x40);
- return;
- }
-
- case 0x98000c: {
- // scroll 2 ram offset
- *((UINT16*)(CpsReg + 0x04)) = BURN_ENDIAN_SWAP_INT16(d << 4);
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Write Word %x, %x\n"), a, d);
- }
- }
-}
-
-void __fastcall SlampicFFWriteByte(UINT32 a, UINT8 d)
-{
- CpsRamFF[((a & 0xffff) ^ 1)] = d;
-}
-
-void __fastcall SlampicFFWriteWord(UINT32 a, UINT16 d)
-{
- switch (a) {
- case 0xff8d74: {
- *((UINT16*)(CpsReg + MaskAddr[1])) = BURN_ENDIAN_SWAP_INT16(d);
- break;
- }
-
- case 0xff8d76: {
- *((UINT16*)(CpsReg + MaskAddr[2])) = BURN_ENDIAN_SWAP_INT16(d);
- break;
- }
-
- case 0xff8d78: {
- *((UINT16*)(CpsReg + MaskAddr[3])) = BURN_ENDIAN_SWAP_INT16(d);
- break;
- }
- }
-
- UINT16 *RAM = (UINT16*)CpsRamFF;
- RAM[((a & 0xffff) >> 1)] = d;
-}
-
-static INT32 SlampicInit()
-{
- INT32 nRet = 0;
-
- Cps1DisablePSnd = 1;
- CpsBootlegEEPROM = 1;
- bCpsUpdatePalEveryFrame = 1;
- Cps1GfxLoadCallbackFunction = CpsLoadTilesSlampic;
- Cps1ObjGetCallbackFunction = Sf2mdtObjGet;
- Cps1ObjDrawCallbackFunction = FcrashObjDraw;
- CpsMemScanCallbackFunction = CpsBootlegSpriteRamScanCallback;
-
- nRet = TwelveMhzInit();
-
- for (INT32 i = 0x7fff; i >= 0; i--) {
- CpsZRom[(i << 1) + 0] = CpsZRom[i];
- CpsZRom[(i << 1) + 1] = 0xff;
- }
-
- CpsBootlegSpriteRam = (UINT8*)BurnMalloc(0x4000);
-
- SekOpen(0);
- SekMapMemory(CpsZRom, 0xf00000, 0xf0ffff, MAP_ROM);
- SekMapMemory(CpsBootlegSpriteRam, 0x990000, 0x993fff, MAP_RAM);
- SekMapHandler(1, 0xf18000, 0xf19fff, MAP_READ);
- SekSetReadByteHandler(1, SlampicF18Read);
- SekMapHandler(2, 0xf1e000, 0xf1ffff, MAP_READ);
- SekSetReadByteHandler(2, SlampicF18Read);
- SekMapHandler(3, 0x980000, 0x980fff, MAP_WRITE);
- SekSetWriteWordHandler(3, SlampicScrollWrite);
- SekMapHandler(4, 0xff0000, 0xffffff, MAP_WRITE);
- SekSetWriteByteHandler(4, SlampicFFWriteByte);
- SekSetWriteWordHandler(4, SlampicFFWriteWord);
- SekClose();
-
- return nRet;
-}
-
-static INT32 StriderInit()
-{
- INT32 nRet = 0;
-
- nRet = DrvInit();
-
- CpsStar = CpsGfx + nCpsGfxLen - 0x2000;
-
- CpsLoadStars(CpsStar, 5);
-
- return nRet;
-}
-
-static INT32 StriderjrInit()
-{
- INT32 nRet = 0;
-
- nRet = TwelveMhzInit();
-
- CpsStar = CpsGfx + nCpsGfxLen - 0x2000;
-
- CpsLoadStars(CpsStar, 2);
-
- return nRet;
-}
-
-static INT32 StriderjInit()
-{
- INT32 nRet = 0;
-
- nRet = DrvInit();
-
- CpsStar = CpsGfx + nCpsGfxLen - 0x2000;
-
- CpsLoadStarsByte(CpsStar, 8);
-
- return nRet;
-}
-
-void __fastcall VarthbScrollWriteWord(UINT32 a, UINT16 d)
-{
- switch (a) {
- case 0x980000: {
- // scroll1 y
- *((UINT16*)(CpsReg + 0x0e)) = BURN_ENDIAN_SWAP_INT16(d);
- return;
- }
-
- case 0x980002: {
- // scroll1 x
- *((UINT16*)(CpsReg + 0x0c)) = BURN_ENDIAN_SWAP_INT16(d - 0x40);
- return;
- }
-
- case 0x980004: {
- // scroll2 y
- *((UINT16*)(CpsReg + 0x12)) = BURN_ENDIAN_SWAP_INT16(d);
- return;
- }
-
- case 0x980006: {
- // scroll2 x
- *((UINT16*)(CpsReg + 0x10)) = BURN_ENDIAN_SWAP_INT16(d - 0x40);
- return;
- }
-
- case 0x980008: {
- // scroll3 y
- *((UINT16*)(CpsReg + 0x16)) = BURN_ENDIAN_SWAP_INT16(d);
- return;
- }
-
- case 0x98000a: {
- // scroll3 x
- *((UINT16*)(CpsReg + 0x14)) = BURN_ENDIAN_SWAP_INT16(d - 0x40);
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Write Word %x, %x\n"), a, d);
- }
- }
-}
-
-void __fastcall VarthbRegWriteByte(UINT32 a, UINT8 d)
-{
- CpsWritePort(a & 0x1ff, d);
-}
-
-void __fastcall VarthbRegWriteWord(UINT32 a, UINT16 d)
-{
- if (a == 0x800188) {
- if (d > 0x9000) {
- // scroll 3 ram offset
- *((UINT16*)(CpsReg + 0x06)) = d;
- return;
- } // sound fade command written through CpsWritePort
- }
-
- SEK_DEF_WRITE_WORD(2, a, d);
-}
-
-static INT32 VarthbInit()
-{
- INT32 nRet = 0;
-
- Port6SoundWrite = 1;
- Cps1ObjGetCallbackFunction = DinopicObjGet;
- Cps1ObjDrawCallbackFunction = FcrashObjDraw;
- CpsMemScanCallbackFunction = CpsBootlegSpriteRamScanCallback;
-
- nRet = TwelveMhzInit();
-
- CpsBootlegSpriteRam = (UINT8*)BurnMalloc(0x4000);
-
- SekOpen(0);
- SekMapMemory(CpsBootlegSpriteRam, 0x990000, 0x993fff, MAP_RAM);
- SekMapHandler(1, 0x980000, 0x980fff, MAP_WRITE);
- SekSetWriteWordHandler(1, VarthbScrollWriteWord);
- SekMapHandler(2, 0x800000, 0x807fff, MAP_WRITE);
- SekSetWriteByteHandler(2, VarthbRegWriteByte);
- SekSetWriteWordHandler(2, VarthbRegWriteWord);
- SekClose();
-
- return nRet;
-}
-
-static INT32 WofchInit()
-{
- INT32 nRet = 0;
-
- Cps1Qs = 1;
-
- nRet = TwelveMhzInit();
-
- Cps = 3;
-
- return nRet;
-}
-
-static UINT8 WofhProtValue;
-
-UINT8 __fastcall Wofh135ReadByte(UINT32)
-{
- return 0xff;
-}
-
-UINT16 __fastcall Wofh135ReadWord(UINT32)
-{
- return 0xffff;
-}
-
-UINT8 __fastcall WofhInputReadByte(UINT32 a)
-{
- switch (a) {
- case 0x880000: {
- return ~Inp000;
- }
-
- case 0x880001: {
- return ~Inp001;
- }
-
- case 0x880006: {
- return ~Inp018;
- }
-
- case 0x880007: {
- return ~Inp177;
- }
-
- case 0x880008: {
- return ~Cpi01A;
- }
-
- case 0x88000a: {
- return ~Cpi01C;
- }
-
- case 0x88000c: {
- return ~Cpi01E;
- }
-
- case 0x880e78: {
- return WofhProtValue; // protection
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Input Read Byte %x\n"), a);
- }
- }
-
- return 0x00;
-}
-
-UINT16 __fastcall WofhInputReadWord(UINT32 a)
-{
- SEK_DEF_READ_WORD(3, a);
-}
-
-void __fastcall WofhInputWriteByte(UINT32 a, UINT8 d)
-{
- switch (a) {
- case 0x88000e: {
- PsndSyncZ80((INT64)SekTotalCycles() * nCpsZ80Cycles / nCpsCycles);
-
- PsndCode = d;
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Input Write Byte %x, %x\n"), a, d);
- }
- }
-}
-
-void __fastcall WofhInputWriteWord(UINT32 a, UINT16 d)
-{
- switch (a) {
- case 0x88000e: {
- PsndSyncZ80((INT64)SekTotalCycles() * nCpsZ80Cycles / nCpsCycles);
-
- PsndCode = d & 0xff;
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Input Write word %x, %x\n"), a, d);
- }
- }
-}
-
-void __fastcall WofbFFWriteByte(UINT32 a, UINT8 d)
-{
- CpsRamFF[((a & 0xffff) ^ 1)] = d;
-}
-
-void __fastcall WofbFFWriteWord(UINT32 a, UINT16 d)
-{
- switch (a) {
- case 0xff639a: {
- *((UINT16*)(CpsReg + MaskAddr[1])) = BURN_ENDIAN_SWAP_INT16(d);
- break;
- }
-
- case 0xff639c: {
- *((UINT16*)(CpsReg + MaskAddr[2])) = BURN_ENDIAN_SWAP_INT16(d);
- break;
- }
-
- case 0xff639e: {
- *((UINT16*)(CpsReg + MaskAddr[3])) = BURN_ENDIAN_SWAP_INT16(d);
- break;
- }
- }
-
- UINT16 *RAM = (UINT16*)CpsRamFF;
- RAM[((a & 0xffff) >> 1)] = d;
-}
-
-static INT32 WofhInit()
-{
- INT32 nRet = 0;
-
- WofhProtValue = 0xD0;
-
- bCpsUpdatePalEveryFrame = 1;
- CpsLayer1XOffs = 0xffc0;
- CpsLayer2XOffs = 0xffc0;
- CpsLayer3XOffs = 0xffc0;
- Cps1GfxLoadCallbackFunction = CpsLoadTilesHack160;
- Cps1ObjGetCallbackFunction = WofhObjGet;
- Cps1ObjDrawCallbackFunction = FcrashObjDraw;
-
- nRet = TwelveMhzInit();
-
- SekOpen(0);
- SekMapHandler(3, 0x880000, 0x89ffff, MAP_READ | MAP_WRITE);
- SekSetReadByteHandler(3, WofhInputReadByte);
- SekSetReadWordHandler(3, WofhInputReadWord);
- SekSetWriteByteHandler(3, WofhInputWriteByte);
- SekSetWriteWordHandler(3, WofhInputWriteWord);
- SekMapHandler(4, 0x135000, 0x135fff, MAP_READ);
- SekSetReadByteHandler(4, Wofh135ReadByte);
- SekSetReadWordHandler(4, Wofh135ReadWord);
- SekMapHandler(5, 0xff0000, 0xffffff, MAP_WRITE);
- SekSetWriteByteHandler(5, WofbFFWriteByte);
- SekSetWriteWordHandler(5, WofbFFWriteWord);
- SekClose();
-
- return nRet;
-}
-
-static void SgyxzPatch()
-{
- // This fixes sprite ram clearing - shouldn't be necessary, but used for now pending understanding of the underlying issue
- CpsRom[0x2449] = 0x07;
-}
-
-static void SgyxzCallback()
-{
- UINT8 *pTemp = (UINT8*)BurnMalloc(0x40000);
-
- if (pTemp) {
- memcpy(pTemp , CpsRom + 0x40000, 0x40000);
- memcpy(CpsRom + 0x40000, CpsRom + 0x80000, 0x40000);
- memcpy(CpsRom + 0x80000, pTemp , 0x40000);
- BurnFree(pTemp);
- }
-
- SgyxzPatch();
-}
-
-static void __fastcall SgyxzSpriteRamWriteLong(UINT32 a, UINT32 d)
-{
- if (d == 0xffffffff) d = 0xefffefff; // Strange protection or glitch???
-
- *((UINT32*)(CpsRam90 + (a & 0x3fffc))) = (d << 16) | (d >> 16);
-}
-
-static INT32 SgyxzInit()
-{
- INT32 nRet = 0;
-
- WofhProtValue = 0xD0;
-
- bCpsUpdatePalEveryFrame = 1;
- CpsLayer1XOffs = 0xffc0;
- CpsLayer2XOffs = 0xffc0;
- CpsLayer3XOffs = 0xffc0;
- Cps1GfxLoadCallbackFunction = CpsLoadTilesHack160;
- AmendProgRomCallback = SgyxzCallback;
- Cps1ObjGetCallbackFunction = WofhObjGet;
- Cps1ObjDrawCallbackFunction = FcrashObjDraw;
-
- nRet = TwelveMhzInit();
-
- SekOpen(0);
- SekMapHandler(3, 0x880000, 0x89ffff, MAP_READ | MAP_WRITE);
- SekSetReadByteHandler(3, WofhInputReadByte);
- SekSetReadWordHandler(3, WofhInputReadWord);
- SekSetWriteByteHandler(3, WofhInputWriteByte);
- SekSetWriteWordHandler(3, WofhInputWriteWord);
- SekMapHandler(4, 0x135000, 0x135fff, MAP_READ);
- SekSetReadByteHandler(4, Wofh135ReadByte);
- SekSetReadWordHandler(4, Wofh135ReadWord);
- SekMapHandler(5, 0xff0000, 0xffffff, MAP_WRITE);
- SekSetWriteByteHandler(5, WofbFFWriteByte);
- SekSetWriteWordHandler(5, WofbFFWriteWord);
- SekMapHandler(6, 0x900000, 0x9007FF, MAP_WRITE);
- SekSetWriteLongHandler(6, SgyxzSpriteRamWriteLong);
- SekClose();
-
- return nRet;
-}
-
-static void Wof3jsCallback()
-{
- memcpy(CpsRom + 0x0c0000, CpsRom + 0x100000, 0x40000);
- memset(CpsRom + 0x100000, 0, 0x40000);
-}
-
-static INT32 Wof3jsInit()
-{
- AmendProgRomCallback = Wof3jsCallback;
-
- return TwelveMhzInit();
-}
-
-static INT32 Wof3jsaInit()
-{
- AmendProgRomCallback = SgyxzCallback;
-
- WofhProtValue = 0x50;
-
- bCpsUpdatePalEveryFrame = 1;
- CpsLayer1XOffs = 0xffc0;
- CpsLayer2XOffs = 0xffc0;
- CpsLayer3XOffs = 0xffc0;
- Cps1GfxLoadCallbackFunction = CpsLoadTilesHack160;
- Cps1ObjGetCallbackFunction = WofhObjGet;
- Cps1ObjDrawCallbackFunction = FcrashObjDraw;
-
- INT32 nRet = TwelveMhzInit();
-
- SekOpen(0);
- SekMapHandler(3, 0x880000, 0x89ffff, MAP_READ | MAP_WRITE);
- SekSetReadByteHandler(3, WofhInputReadByte);
- SekSetReadWordHandler(3, WofhInputReadWord);
- SekSetWriteByteHandler(3, WofhInputWriteByte);
- SekSetWriteWordHandler(3, WofhInputWriteWord);
- SekMapHandler(4, 0xff0000, 0xffffff, MAP_WRITE);
- SekSetWriteByteHandler(4, WofbFFWriteByte);
- SekSetWriteWordHandler(4, WofbFFWriteWord);
- SekClose();
-
- return nRet;
-}
-
-UINT8 __fastcall Wof3sjInputReadByte(UINT32 a)
-{
- switch (a) {
- case 0x880000: {
- return ~Inp000;
- }
-
- case 0x880001: {
- return ~Inp001;
- }
-
- case 0x880008: {
- return ~Inp018;
- }
-
- case 0x880009: {
- return ~Inp177;
- }
-
- case 0x88000a: {
- return ~Cpi01A;
- }
-
- case 0x88000c: {
- return ~Cpi01C;
- }
-
- case 0x88000e: {
- return ~Cpi01E;
- }
-
- case 0x880c1e: {
- return 0xff;
- }
-
- case 0x880e7e: {
- return 0xff;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Input Read Byte %x\n"), a);
- }
- }
-
- return 0;
-}
-
-UINT16 __fastcall Wof3sjInputReadWord(UINT32 a)
-{
- SEK_DEF_READ_WORD(3, a);
-}
-
-void __fastcall Wof3sjInputWriteByte(UINT32 a, UINT8 d)
-{
- switch (a) {
- case 0x880006: {
- PsndSyncZ80((INT64)SekTotalCycles() * nCpsZ80Cycles / nCpsCycles);
-
- PsndCode = d;
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Input Write Byte %x, %x\n"), a, d);
- }
- }
-}
-
-void __fastcall Wof3sjInputWriteWord(UINT32 a, UINT16 d)
-{
- switch (a) {
- case 0x880006: {
- PsndSyncZ80((INT64)SekTotalCycles() * nCpsZ80Cycles / nCpsCycles);
-
- PsndCode = d & 0xff;
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Input Write word %x, %x\n"), a, d);
- }
- }
-}
-
-static INT32 Wof3sjInit()
-{
- bCpsUpdatePalEveryFrame = 1;
- CpsLayer1XOffs = 0xffc0;
- CpsLayer2XOffs = 0xffc0;
- CpsLayer3XOffs = 0xffc0;
- Cps1GfxLoadCallbackFunction = CpsLoadTilesHack160;
- Cps1ObjGetCallbackFunction = WofhObjGet;
- Cps1ObjDrawCallbackFunction = FcrashObjDraw;
-
- INT32 nRet = TwelveMhzInit();
-
- SekOpen(0);
- SekMapHandler(3, 0x880000, 0x89ffff, MAP_READ | MAP_WRITE);
- SekSetReadByteHandler(3, Wof3sjInputReadByte);
- SekSetReadWordHandler(3, Wof3sjInputReadWord);
- SekSetWriteByteHandler(3, Wof3sjInputWriteByte);
- SekSetWriteWordHandler(3, Wof3sjInputWriteWord);
- SekMapHandler(4, 0xff0000, 0xffffff, MAP_WRITE);
- SekSetWriteByteHandler(4, WofbFFWriteByte);
- SekSetWriteWordHandler(4, WofbFFWriteWord);
- SekClose();
-
- return nRet;
-}
-
-static INT32 WofsjInit()
-{
- bCpsUpdatePalEveryFrame = 1;
- CpsLayer1XOffs = 0xffc0;
- CpsLayer2XOffs = 0xffc0;
- CpsLayer3XOffs = 0xffc0;
-
- Cps1ObjGetCallbackFunction = WofhObjGet;
- Cps1ObjDrawCallbackFunction = FcrashObjDraw;
-
- INT32 nRet = TwelveMhzInit();
-
- SekOpen(0);
- SekMapHandler(3, 0x880000, 0x89ffff, MAP_READ | MAP_WRITE);
- SekSetReadByteHandler(3, Wof3sjInputReadByte);
- SekSetReadWordHandler(3, Wof3sjInputReadWord);
- SekSetWriteByteHandler(3, Wof3sjInputWriteByte);
- SekSetWriteWordHandler(3, Wof3sjInputWriteWord);
- SekMapHandler(4, 0xff0000, 0xffffff, MAP_WRITE);
- SekSetWriteByteHandler(4, WofbFFWriteByte);
- SekSetWriteWordHandler(4, WofbFFWriteWord);
- SekClose();
-
- return nRet;
-}
-
-static INT32 WofsjbInit()
-{
- CpsLayer1XOffs = 2;
- CpsLayer2XOffs = 4;
- CpsLayer3XOffs = 8;
-
- Cps1DisablePSnd = 1;
-
- return TwelveMhzInit();
-}
-
-void __fastcall Wofb98WriteWord(UINT32 a, UINT16 d)
-{
- switch (a) {
- case 0x980000: {
- // scroll1 y
- *((UINT16*)(CpsReg + 0x0e)) = BURN_ENDIAN_SWAP_INT16(d);
- return;
- }
-
- case 0x980002: {
- // scroll1 x
- *((UINT16*)(CpsReg + 0x0c)) = BURN_ENDIAN_SWAP_INT16(d);
- return;
- }
-
- case 0x980004: {
- // scroll2 y
- *((UINT16*)(CpsReg + 0x12)) = BURN_ENDIAN_SWAP_INT16(d);
- return;
- }
-
- case 0x980006: {
- // scroll2 x
- *((UINT16*)(CpsReg + 0x10)) = BURN_ENDIAN_SWAP_INT16(d);
- return;
- }
-
- case 0x980008: {
- // scroll3 y
- *((UINT16*)(CpsReg + 0x16)) = BURN_ENDIAN_SWAP_INT16(d);
- return;
- }
-
- case 0x98000a: {
- // scroll3 x
- *((UINT16*)(CpsReg + 0x14)) = BURN_ENDIAN_SWAP_INT16(d);
- return;
- }
-
- case 0x98000c: {
- switch (d) {
- case 0x00:
- case 0x04:
- case 0x06:
- case 0x08:
- case 0x0a:
- case 0x0b:
- case 0x0e: {
- nCps1Layers[0] = 1;
- nCps1Layers[1] = 0;
- nCps1Layers[2] = 2;
- nCps1Layers[3] = 3;
- break;
- }
-
- case 0x01:
- case 0x05:
- case 0x0f: {
- nCps1Layers[0] = 1;
- nCps1Layers[1] = 0;
- nCps1Layers[2] = 3;
- nCps1Layers[3] = 2;
- break;
- }
-
- case 0x03:
- case 0x07:
- case 0x09: {
- nCps1Layers[0] = 1;
- nCps1Layers[1] = 3;
- nCps1Layers[2] = 0;
- nCps1Layers[3] = 2;
- break;
- }
-
- default: {
- nCps1Layers[0] = 1;
- nCps1Layers[1] = 0;
- nCps1Layers[2] = 2;
- nCps1Layers[3] = 3;
- bprintf(PRINT_IMPORTANT, _T("Unknown value written at 0x98000c %x\n"), d);
- }
- }
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Write word %x, %x\n"), a, d);
- }
- }
-}
-
-static INT32 WofbInit()
-{
- bCpsUpdatePalEveryFrame = 1;
- Cps1OverrideLayers = 1;
- Port6SoundWrite = 1;
- CpsBootlegEEPROM = 1;
- CpsLayer1XOffs = 0xffc0;
- CpsLayer2XOffs = 0xffc0;
- CpsLayer3XOffs = 0xffc0;
- Cps1GfxLoadCallbackFunction = CpsLoadTilesDinopic;
- Cps1ObjGetCallbackFunction = DinopicObjGet;
- Cps1ObjDrawCallbackFunction = FcrashObjDraw;
- CpsMemScanCallbackFunction = CpsBootlegSpriteRamScanCallback;
-
- INT32 nRet = TwelveMhzInit();
-
- CpsBootlegSpriteRam = (UINT8*)BurnMalloc(0x4000);
-
- SekOpen(0);
- SekMapMemory(CpsBootlegSpriteRam, 0x990000, 0x993fff, MAP_RAM);
- SekMapHandler(1, 0x980000, 0x98ffff, MAP_WRITE);
- SekSetWriteWordHandler(1, Wofb98WriteWord);
- SekMapHandler(2, 0xff0000, 0xffffff, MAP_WRITE);
- SekSetWriteByteHandler(2, WofbFFWriteByte);
- SekSetWriteWordHandler(2, WofbFFWriteWord);
- SekClose();
-
- // scroll3 ram offset
- *((UINT16*)(CpsReg + 0x06)) = BURN_ENDIAN_SWAP_INT16(0x9100);
-
- return nRet;
-}
-
-// Driver Definitions
-
-struct BurnDriver BurnDrvCps1941 = {
- "1941", NULL, NULL, NULL, "1990",
- "1941 - Counter Attack (900227 World)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL, 2, HARDWARE_CAPCOM_CPS1, GBF_VERSHOOT, FBF_19XX,
- NULL, NTFODrvRomInfo, NTFODrvRomName, NULL, NULL, NTFOInputInfo, NTFODIPInfo,
- DrvInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 224, 384, 3, 4
-};
-
-struct BurnDriver BurnDrvCps1941r1 = {
- "1941r1", "1941", NULL, NULL, "1990",
- "1941 - Counter Attack (World)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL, 2, HARDWARE_CAPCOM_CPS1, GBF_VERSHOOT, FBF_19XX,
- NULL, NTFOR1DrvRomInfo, NTFOR1DrvRomName, NULL, NULL, NTFOInputInfo, NTFODIPInfo,
- DrvInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 224, 384, 3, 4
-};
-
-struct BurnDriver BurnDrvCps1941u = {
- "1941u", "1941", NULL, NULL, "1990",
- "1941 - Counter Attack (900227 USA)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL, 2, HARDWARE_CAPCOM_CPS1, GBF_VERSHOOT, FBF_19XX,
- NULL, NTFOUDrvRomInfo, NTFOUDrvRomName, NULL, NULL, NTFOInputInfo, NTFODIPInfo,
- DrvInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 224, 384, 3, 4
-};
-
-struct BurnDriver BurnDrvCps1941j = {
- "1941j", "1941", NULL, NULL, "1990",
- "1941 - Counter Attack (Japan)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL, 2, HARDWARE_CAPCOM_CPS1, GBF_VERSHOOT, FBF_19XX,
- NULL, NTFOJDrvRomInfo, NTFOJDrvRomName, NULL, NULL, NTFOInputInfo, NTFODIPInfo,
- DrvInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 224, 384, 3, 4
-};
-
-struct BurnDriver BurnDrvCps3wonders = {
- "3wonders", NULL, NULL, NULL, "1991",
- "Three Wonders (wonder 3 910520 etc)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_CAPCOM_CPS1, GBF_MINIGAMES, 0,
- NULL, ThreeWondersRomInfo, ThreeWondersRomName, NULL, NULL, ThreeWondersInputInfo, ThreeWondersDIPInfo,
- DrvInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCps3wondersr1 = {
- "3wondersr1", "3wonders", NULL, NULL, "1991",
- "Three Wonders (wonder 3 910513 etc)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS1, GBF_MINIGAMES, 0,
- NULL, ThreeWondersr1RomInfo, ThreeWondersr1RomName, NULL, NULL, ThreeWondersInputInfo, ThreeWondersDIPInfo,
- DrvInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCps3wondersu = {
- "3wondersu", "3wonders", NULL, NULL, "1991",
- "Three Wonders (wonder 3 910520 USA)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS1, GBF_MINIGAMES, 0,
- NULL, Wonder3uRomInfo, Wonder3uRomName, NULL, NULL, ThreeWondersInputInfo, ThreeWondersDIPInfo,
- DrvInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsWonder3 = {
- "wonder3", "3wonders", NULL, NULL, "1991",
- "Wonder 3 (910520 Japan)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS1, GBF_MINIGAMES, 0,
- NULL, Wonder3RomInfo, Wonder3RomName, NULL, NULL, ThreeWondersInputInfo, ThreeWondersDIPInfo,
- DrvInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCps3wondersh = {
- "3wondersh", "3wonders", NULL, NULL, "1991",
- "Three Wonders (bootleg set 1, wonder 3 910520 etc)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS1, GBF_MINIGAMES, 0,
- NULL, Wonder3hRomInfo, Wonder3hRomName, NULL, NULL, ThreeWondersInputInfo, ThreeWondersDIPInfo,
- DrvInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCps3wondersha = {
- "3wondersha", "3wonders", NULL, NULL, "1991",
- "Three Wonders (bootleg set 3, wonder 3 910520 etc)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS1, GBF_MINIGAMES, 0,
- NULL, Wonder3haRomInfo, Wonder3haRomName, NULL, NULL, ThreeWondersInputInfo, ThreeWondersDIPInfo,
- DrvInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCps3wondersb = {
- "3wondersb", "3wonders", NULL, NULL, "1991",
- "Three Wonders (bootleg set 2, wonder 3 910520 etc)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS1, GBF_MINIGAMES, 0,
- NULL, Wonder3bRomInfo, Wonder3bRomName, NULL, NULL, ThreeWondersInputInfo, ThreeWondersDIPInfo,
- Wonder3bInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsCaptcomm = {
- "captcomm", NULL, NULL, NULL, "1991",
- "Captain Commando (911202 other country)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 4, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
- NULL, CaptcommRomInfo, CaptcommRomName, NULL, NULL, CaptcommInputInfo, CaptcommDIPInfo,
- DrvInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsCaptcommr1 = {
- "captcommr1", "captcomm", NULL, NULL, "1991",
- "Captain Commando (911014 other country)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 4, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
- NULL, Captcommr1RomInfo, Captcommr1RomName, NULL, NULL, CaptcommInputInfo, CaptcommDIPInfo,
- DrvInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsCaptcommu = {
- "captcommu", "captcomm", NULL, NULL, "1991",
- "Captain Commando (910928 USA)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 4, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
- NULL, CaptcommuRomInfo, CaptcommuRomName, NULL, NULL, CaptcommInputInfo, CaptcommDIPInfo,
- DrvInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsCaptcommj = {
- "captcommj", "captcomm", NULL, NULL, "1991",
- "Captain Commando (911202 Japan)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 4, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
- NULL, CaptcommjRomInfo, CaptcommjRomName, NULL, NULL, CaptcommInputInfo, CaptcommDIPInfo,
- DrvInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsCaptcommjr1 = {
- "captcommjr1", "captcomm", NULL, NULL, "1991",
- "Captain Commando (910928 Japan)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 4, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
- NULL, Captcommjr1RomInfo, Captcommjr1RomName, NULL, NULL, CaptcommInputInfo, CaptcommDIPInfo,
- DrvInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsCaptcommb = {
- "captcommb", "captcomm", NULL, NULL, "1991",
- "Captain Commando (bootleg set 1, 911014 other country)\0", NULL, "bootleg", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 4, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
- NULL, CaptcommbRomInfo, CaptcommbRomName, NULL, NULL, CaptcommInputInfo, CaptcommDIPInfo,
- CaptcommbInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsCaptcommb2 = {
- "captcommb2", "captcomm", NULL, NULL, "1991",
- "Captain Commando (bootleg set 2 (with YM2151 + 2xMSM5205), 911014 other country)\0", NULL, "bootleg", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 4, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
- NULL, Captcommb2RomInfo, Captcommb2RomName, NULL, NULL, CaptcommInputInfo, CaptcommDIPInfo,
- Captcommb2Init, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsCawing = {
- "cawing", NULL, NULL, NULL, "1990",
- "Carrier Air Wing (U.S. navy 901012 etc)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_CAPCOM_CPS1, GBF_HORSHOOT, 0,
- NULL, CawingRomInfo, CawingRomName, NULL, NULL, CawingInputInfo, CawingDIPInfo,
- DrvInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsCawingr1 = {
- "cawingr1", "cawing", NULL, NULL, "1990",
- "Carrier Air Wing (U.S. navy 901009 etc)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS1, GBF_HORSHOOT, 0,
- NULL, Cawingr1RomInfo, Cawingr1RomName, NULL, NULL, CawingInputInfo, CawingDIPInfo,
- DrvInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsCawingu = {
- "cawingu", "cawing", NULL, NULL, "1990",
- "Carrier Air Wing (U.S. navy 901012 USA)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS1, GBF_HORSHOOT, 0,
- NULL, CawinguRomInfo, CawinguRomName, NULL, NULL, CawingInputInfo, CawingDIPInfo,
- DrvInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsCawingj = {
- "cawingj", "cawing", NULL, NULL, "1990",
- "U.S. Navy (901012 Japan)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS1, GBF_HORSHOOT, 0,
- NULL, CawingjRomInfo, CawingjRomName, NULL, NULL, CawingInputInfo, CawingDIPInfo,
- DrvInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsCawingbl = {
- "cawingbl", "cawing", NULL, NULL, "1990",
- "Carrier Air Wing (bootleg set 1 (with 2xYM2203 + 2xMSM5205), U.S. navy 901012 etc)\0", NULL, "bootleg", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS1, GBF_HORSHOOT, 0,
- NULL, CawingblRomInfo, CawingblRomName, NULL, NULL, CawingInputInfo, CawingDIPInfo,
- CawingblInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsCawingb2 = {
- "cawingb2", "cawing", NULL, NULL, "1990",
- "Carrier Air Wing (bootleg set 2 (with 2xYM2203 + 2xMSM5205), U.S. navy 901012 etc)\0", NULL, "bootleg", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS1, GBF_HORSHOOT, 0,
- NULL, Cawingb2RomInfo, Cawingb2RomName, NULL, NULL, CawingInputInfo, CawingDIPInfo,
- Cawingb2Init, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsCps1demo = {
- "cps1demo", NULL, NULL, NULL, "2000",
- "Chaos Demo (CPS-1)\0", NULL, "Chaos", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_DEMO, 2, HARDWARE_CAPCOM_CPS1, GBF_MISC, 0,
- NULL, Cps1demoRomInfo, Cps1demoRomName, NULL, NULL, FfightInputInfo, FfightDIPInfo,
- Cps1demoInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsCworld2j = {
- "cworld2j", NULL, NULL, NULL, "1992",
- "Adventure Quiz Capcom World 2 (920611 Japan)\0", NULL, "Capcom", "CPS1",
- L"Adventure Quiz Capcom World 2 (\u30AF\u30A4\u30BA\uFF15 \u3042\u3069\u3079\u3093\u3061\u3083\u30FC\u304F\u3044\u305A \u304B\u3077\u3053\u3093\u308F\u30FC\u308B\u3069\uFF12 920611 Japan)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_CAPCOM_CPS1, GBF_PUZZLE, 0,
- NULL, Cworld2jRomInfo, Cworld2jRomName, NULL, NULL, Cworld2jInputInfo, Cworld2jDIPInfo,
- TwelveMhzInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsCworld2ja = {
- "cworld2ja", "cworld2j", NULL, NULL, "1992",
- "Adventure Quiz Capcom World 2 (Japan 920611, B-Board 90629B-3, no battery)\0", NULL, "Capcom", "CPS1",
- L"Adventure Quiz Capcom World 2 (\u30AF\u30A4\u30BA\uFF15 \u3042\u3069\u3079\u3093\u3061\u3083\u30FC\u304F\u3044\u305A \u304B\u3077\u3053\u3093\u308F\u30FC\u308B\u3069\uFF12 Japan 920611, B-Board 90629B-3, no battery)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS1, GBF_PUZZLE, 0,
- NULL, Cworld2jaRomInfo, Cworld2jaRomName, NULL, NULL, Cworld2jInputInfo, Cworld2jDIPInfo,
- TwelveMhzInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsCworld2jb = {
- "cworld2jb", "cworld2j", NULL, NULL, "1992",
- "Adventure Quiz Capcom World 2 (Japan 920611, B-Board 91634B-2)\0", NULL, "Capcom", "CPS1",
- L"Adventure Quiz Capcom World 2 (\u30AF\u30A4\u30BA\uFF15 \u3042\u3069\u3079\u3093\u3061\u3083\u30FC\u304F\u3044\u305A \u304B\u3077\u3053\u3093\u308F\u30FC\u308B\u3069\uFF12 Japan 920611, B-Board 91634B-2)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS1, GBF_PUZZLE, 0,
- NULL, Cworld2jbRomInfo, Cworld2jbRomName, NULL, NULL, Cworld2jInputInfo, Cworld2jDIPInfo,
- TwelveMhzInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsDino = {
- "dino", NULL, NULL, NULL, "1993",
- "Cadillacs & Dinosaurs (930201 etc)\0", NULL, "Capcom", "CPS1 / QSound",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 3, HARDWARE_CAPCOM_CPS1_QSOUND, GBF_SCRFIGHT, 0,
- NULL, DinoRomInfo, DinoRomName, NULL, NULL, DinoInputInfo, DinoDIPInfo,
- TwelveMhzInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsDinoa = {
- "dinoa", "dino", NULL, NULL, "1993",
- "Cadillacs & Dinosaurs (930223 Asia TW)\0", NULL, "Capcom", "CPS1 / QSound",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 3, HARDWARE_CAPCOM_CPS1_QSOUND, GBF_SCRFIGHT, 0,
- NULL, DinoaRomInfo, DinoaRomName, NULL, NULL, DinoInputInfo, DinoDIPInfo,
- TwelveMhzInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsDinoj = {
- "dinoj", "dino", NULL, NULL, "1993",
- "Cadillacs Kyouryuu-Shinseiki (Cadillacs 930201 Japan)\0", NULL, "Capcom", "CPS1 / QSound",
- L"Cadillacs \u6050\u7ADC\u65B0\u4E16\u7D00\0Cadillacs Kyouryuu-Shinseiki (Cadillacs 930201 Japan)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 3, HARDWARE_CAPCOM_CPS1_QSOUND, GBF_SCRFIGHT, 0,
- NULL, DinojRomInfo, DinojRomName, NULL, NULL, DinoInputInfo, DinoDIPInfo,
- TwelveMhzInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsDinou = {
- "dinou", "dino", NULL, NULL, "1993",
- "Cadillacs & Dinosaurs (930201 USA)\0", NULL, "Capcom", "CPS1 / QSound",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 3, HARDWARE_CAPCOM_CPS1_QSOUND, GBF_SCRFIGHT, 0,
- NULL, DinouRomInfo, DinouRomName, NULL, NULL, DinoInputInfo, DinoDIPInfo,
- TwelveMhzInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsDinopic = {
- "dinopic", "dino", NULL, NULL, "1993",
- "Cadillacs and Dinosaurs (bootleg set 1 (with PIC16c57), 930201 etc)\0", "No sound", "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 3, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
- NULL, DinopicRomInfo, DinopicRomName, NULL, NULL, DinoInputInfo, DinoDIPInfo,
- DinopicInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsDinopic2 = {
- "dinopic2", "dino", NULL, NULL, "1993",
- "Cadillacs and Dinosaurs (bootleg set 2 (with PIC16c57), 930201 etc)\0", "No sound", "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 3, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
- NULL, Dinopic2RomInfo, Dinopic2RomName, NULL, NULL, DinoInputInfo, DinoDIPInfo,
- DinopicInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsDinopic3 = {
- "dinopic3", "dino", NULL, NULL, "1993",
- "Cadillacs and Dinosaurs (bootleg set 3 (with PIC16c57), 930201 etc)\0", "No sound", "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 3, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
- NULL, Dinopic3RomInfo, Dinopic3RomName, NULL, NULL, DinoInputInfo, DinoDIPInfo,
- DinopicInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsDinopic4 = {
- "dinopic4", "dino", NULL, NULL, "1993",
- "Cadillacs and Dinosaurs (bootleg set 4 (with PIC16c57), 930223 Asia TW)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 3, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
- NULL, Dinopic4RomInfo, Dinopic4RomName, NULL, NULL, DinohInputInfo, DinohDIPInfo,
- Dinopic4Init, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsDinoh = {
- "dinoh", "dino", NULL, NULL, "1993",
- "Cadillacs and Dinosaurs (bootleg set 3, 930223 Asia TW)\0", NULL, "bootleg", "CPS1 / QSound",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 3, HARDWARE_CAPCOM_CPS1_QSOUND, GBF_SCRFIGHT, 0,
- NULL, DinohRomInfo, DinohRomName, NULL, NULL, DinohInputInfo, DinohDIPInfo,
- DinohInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsDinot = {
- "dinot", "dino", NULL, NULL, "1993",
- "Cadillacs and Dinosaurs Turbo (bootleg set 1, 930223 Asia TW)\0", NULL, "bootleg", "CPS1 / QSound",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 3, HARDWARE_CAPCOM_CPS1_QSOUND, GBF_SCRFIGHT, 0,
- NULL, DinotRomInfo, DinotRomName, NULL, NULL, DinohInputInfo, DinohDIPInfo,
- DinotInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsDinotpic = {
- "dinotpic", "dino", NULL, NULL, "1993",
- "Cadillacs and Dinosaurs Turbo (bootleg set 2 (with PIC16c57), 930201 etc)\0", "No sound", "bootleg", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 3, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
- NULL, DinotpicRomInfo, DinotpicRomName, NULL, NULL, DinoInputInfo, DinoDIPInfo,
- DinotpicInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsDinohunt = {
- "dinohunt", "dino", NULL, NULL, "1993",
- "Dinosaur Hunter (Chinese bootleg, 930223 Asia TW)\0", NULL, "bootleg", "CPS1",
- L"Dinosaur Hunter \u6050\u9F8D\u7375\u4EBA (Chinese bootleg, 930223 Asia TW)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 3, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
- NULL, DinohuntRomInfo, DinohuntRomName, NULL, NULL, DinoInputInfo, DinoDIPInfo,
- DinohuntInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsDinoeh = {
- "dinoeh", "dino", NULL, NULL, "1993",
- "Cadillacs and Dinosaurs (hack, 930201 etc)\0", NULL, "Capcom", "CPS1 / QSound",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_HACK, 3, HARDWARE_CAPCOM_CPS1_QSOUND, GBF_SCRFIGHT, 0,
- NULL, DinoehRomInfo, DinoehRomName, NULL, NULL, DinoInputInfo, DinoDIPInfo,
- TwelveMhzInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsDinohc = {
- "dinohc", "dino", NULL, NULL, "1993",
- "Cadillacs and Dinosaurs (Chinese bootleg, 930223 Asia TW)\0", NULL, "bootleg", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 3, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
- NULL, DinohcRomInfo, DinohcRomName, NULL, NULL, DinoInputInfo, DinoDIPInfo,
- DinohuntInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsDynwar = {
- "dynwar", NULL, NULL, NULL, "1989",
- "Dynasty Wars (US set 1)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
- NULL, DynwarRomInfo, DynwarRomName, NULL, NULL, DynwarInputInfo, DynwarDIPInfo,
- DrvInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsDynwara = {
- "dynwara", "dynwar", NULL, NULL, "1989",
- "Dynasty Wars (US set 2)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
- NULL, DynwaraRomInfo, DynwaraRomName, NULL, NULL, DynwarInputInfo, DynwarDIPInfo,
- DrvInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsDynwarj = {
- "dynwarj", "dynwar", NULL, NULL, "1989",
- "Tenchi wo Kurau (Japan)\0", NULL, "Capcom", "CPS1",
- L"\u5929\u5730\u3092\u55B0\u3089\u3046\0Tenchi wo Kurau (Japan)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
- NULL, DynwarjRomInfo, DynwarjRomName, NULL, NULL, DynwarInputInfo, DynwarDIPInfo,
- DrvInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsDynwarjr = {
- "dynwarjr", "dynwar", NULL, NULL, "1989",
- "Tenchi wo Kurau (Japan Resale Ver.)\0", NULL, "Capcom", "CPS1",
- L"\u5929\u5730\u3092\u55B0\u3089\u3046\0Tenchi wo Kurau (Japan Resale Ver.)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
- NULL, DynwarjrRomInfo, DynwarjrRomName, NULL, NULL, DynwarInputInfo, DynwarDIPInfo,
- TwelveMhzInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsFfight = {
- "ffight", NULL, NULL, NULL, "1989",
- "Final Fight (World, set 1)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
- NULL, FfightRomInfo, FfightRomName, NULL, NULL, FfightInputInfo, FfightDIPInfo,
- DrvInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsFfighta = {
- "ffighta", "ffight", NULL, NULL, "1989",
- "Final Fight (World, set 2)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
- NULL, FfightaRomInfo, FfightaRomName, NULL, NULL, FfightInputInfo, FfightDIPInfo,
- DrvInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsFfightu = {
- "ffightu", "ffight", NULL, NULL, "1989",
- "Final Fight (USA, set 1)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
- NULL, FfightuRomInfo, FfightuRomName, NULL, NULL, FfightInputInfo, FfightDIPInfo,
- DrvInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsFfightu1 = {
- "ffightu1", "ffight", NULL, NULL, "1989",
- "Final Fight (USA, set 2)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
- NULL, Ffightu1RomInfo, Ffightu1RomName, NULL, NULL, FfightInputInfo, FfightDIPInfo,
- DrvInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsFfightu2 = {
- "ffightu2", "ffight", NULL, NULL, "1989",
- "Final Fight (USA, set 3)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
- NULL, Ffightu2RomInfo, Ffightu2RomName, NULL, NULL, FfightInputInfo, FfightDIPInfo,
- DrvInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsFfightua = {
- "ffightua", "ffight", NULL, NULL, "1989",
- "Final Fight (900112 USA)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
- NULL, FfightuaRomInfo, FfightuaRomName, NULL, NULL, FfightInputInfo, FfightDIPInfo,
- DrvInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsFfightub = {
- "ffightub", "ffight", NULL, NULL, "1989",
- "Final Fight (900424 USA)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
- NULL, FfightubRomInfo, FfightubRomName, NULL, NULL, FfightInputInfo, FfightDIPInfo,
- DrvInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsFfightuc = {
- "ffightuc", "ffight", NULL, NULL, "1989",
- "Final Fight (900613 USA)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
- NULL, FfightucRomInfo, FfightucRomName, NULL, NULL, FfightInputInfo, FfightDIPInfo,
- DrvInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsFfightj = {
- "ffightj", "ffight", NULL, NULL, "1989",
- "Final Fight (Japan)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
- NULL, FfightjRomInfo, FfightjRomName, NULL, NULL, FfightInputInfo, FfightDIPInfo,
- DrvInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsFfightj1 = {
- "ffightj1", "ffight", NULL, NULL, "1989",
- "Final Fight (900112 Japan)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
- NULL, Ffightj1RomInfo, Ffightj1RomName, NULL, NULL, FfightInputInfo, FfightDIPInfo,
- DrvInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsFfightj2 = {
- "ffightj2", "ffight", NULL, NULL, "1989",
- "Final Fight (900305 Japan)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
- NULL, Ffightj2RomInfo, Ffightj2RomName, NULL, NULL, FfightInputInfo, FfightDIPInfo,
- DrvInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsFfightj3 = {
- "ffightj3", "ffight", NULL, NULL, "1989",
- "Final Fight (900613 Japan)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
- NULL, Ffightj3RomInfo, Ffightj3RomName, NULL, NULL, FfightInputInfo, FfightDIPInfo,
- DrvInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsFfightjh = {
- "ffightjh", "ffight", NULL, NULL, "1989",
- "Street Smart / Final Fight (Japan, hack)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
- NULL, FfightjhRomInfo, FfightjhRomName, NULL, NULL, FfightInputInfo, FfightDIPInfo,
- DrvInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsFfightbl = {
- "ffightbl", "ffight", NULL, NULL, "1990",
- "Final Fight (bootleg set 1 (with 2xYM2203 + 2xMSM5205), World)\0", NULL, "bootleg", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
- NULL, FfightblRomInfo, FfightblRomName, NULL, NULL, FfightInputInfo, FfightDIPInfo,
- FfightblInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsFfightbla = {
- "ffightbla", "ffight", NULL, NULL, "1990",
- "Final Fight (bootleg set 2 (with 2xYM2203 + 2xMSM5205), World))\0", NULL, "bootleg", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
- NULL, FfightblaRomInfo, FfightblaRomName, NULL, NULL, FfightInputInfo, FfightDIPInfo,
- FcrashInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsFcrash = {
- "fcrash", "ffight", NULL, NULL, "1990",
- "Final Crash (bootleg (with 2xYM2203 + 2xMSM5205))\0", NULL, "Playmark", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
- NULL, FcrashRomInfo, FcrashRomName, NULL, NULL, FfightInputInfo, FfightDIPInfo,
- FcrashInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsForgottn = {
- "forgottn", NULL, NULL, NULL, "1988",
- "Forgotten Worlds (World, newer)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_CAPCOM_CPS1_GENERIC, GBF_HORSHOOT, 0,
- NULL, ForgottnRomInfo, ForgottnRomName, NULL, NULL, ForgottnInputInfo, ForgottnDIPInfo,
- ForgottnNewerInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsForgottna = {
- "forgottna", "forgottn", NULL, NULL, "1988",
- "Forgotten Worlds (World)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS1_GENERIC, GBF_HORSHOOT, 0,
- NULL, ForgottnaRomInfo, ForgottnaRomName, NULL, NULL, ForgottnInputInfo, ForgottnDIPInfo,
- ForgottnAltGfxInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsForgottnu = {
- "forgottnu", "forgottn", NULL, NULL, "1988",
- "Forgotten Worlds (US, B-Board 88621B-2, rev C)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS1_GENERIC, GBF_HORSHOOT, 0,
- NULL, ForgottnuRomInfo, ForgottnuRomName, NULL, NULL, ForgottnInputInfo, ForgottnDIPInfo,
- ForgottnAltGfxuInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsForgottnua = {
- "forgottnua", "forgottn", NULL, NULL, "1988",
- "Forgotten Worlds (US, B-Board 88618B-2, rev A)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS1_GENERIC, GBF_HORSHOOT, 0,
- NULL, ForgottnuaRomInfo, ForgottnuaRomName, NULL, NULL, ForgottnInputInfo, ForgottnDIPInfo,
- ForgottnInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsForgottnuaa = {
- "forgottnuaa", "forgottn", NULL, NULL, "1988",
- "Forgotten Worlds (US, B-Board 88618B-2, rev AA)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS1_GENERIC, GBF_HORSHOOT, 0,
- NULL, ForgottnuaaRomInfo, ForgottnuaaRomName, NULL, NULL, ForgottnInputInfo, ForgottnDIPInfo,
- ForgottnInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsForgottnuc = {
- "forgottnuc", "forgottn", NULL, NULL, "1988",
- "Forgotten Worlds (US, B-Board 88618B-2, Rev C)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS1_GENERIC, GBF_HORSHOOT, 0,
- NULL, ForgottnucRomInfo, ForgottnucRomName, NULL, NULL, ForgottnInputInfo, ForgottnDIPInfo,
- ForgottnInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsForgottnue = {
- "forgottnue", "forgottn", NULL, NULL, "1988",
- "Forgotten Worlds (US, B-Board 88618B-2, Rev E)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS1_GENERIC, GBF_HORSHOOT, 0,
- NULL, ForgottnueRomInfo, ForgottnueRomName, NULL, NULL, ForgottnInputInfo, ForgottnDIPInfo,
- ForgottnInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsLostwrld = {
- "lostwrld", "forgottn", NULL, NULL, "1988",
- "Lost Worlds (Japan)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS1_GENERIC, GBF_HORSHOOT, 0,
- NULL, LostwrldRomInfo, LostwrldRomName, NULL, NULL, ForgottnInputInfo, ForgottnDIPInfo,
- ForgottnInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsLostwrldo = {
- "lostwrldo", "forgottn", NULL, NULL, "1988",
- "Lost Worlds (Japan Old ver.)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS1_GENERIC, GBF_HORSHOOT, 0,
- NULL, LostwrldoRomInfo, LostwrldoRomName, NULL, NULL, ForgottnInputInfo, ForgottnDIPInfo,
- ForgottnInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsGanbare = {
- "ganbare", NULL, NULL, NULL, "2000",
- "Ganbare! Marine Kun (Marine 2K0411 JPN)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_CAPCOM_CPS1_GENERIC, GBF_HORSHOOT, 0,
- NULL, GanbareRomInfo, GanbareRomName, NULL, NULL, GanbareInputInfo, GanbareDIPInfo,
- GanbareInit, GanbareExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsGhouls = {
- "ghouls", NULL, NULL, NULL, "1988",
- "Ghouls'n Ghosts (World)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_CAPCOM_CPS1, GBF_PLATFORM, 0,
- NULL, GhoulsRomInfo, GhoulsRomName, NULL, NULL, GhoulsInputInfo, GhoulsDIPInfo,
- GhoulsInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsGhoulsu = {
- "ghoulsu", "ghouls", NULL, NULL, "1988",
- "Ghouls'n Ghosts (US)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS1, GBF_PLATFORM, 0,
- NULL, GhoulsuRomInfo, GhoulsuRomName, NULL, NULL, GhoulsInputInfo, GhoulsuDIPInfo,
- GhoulsInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsDaimakai = {
- "daimakai", "ghouls", NULL, NULL, "1988",
- "Dai Makai-Mura (Japan)\0", NULL, "Capcom", "CPS1",
- L"\u5927\u9B54\u754C\u6751\0Dai Makai-Mura (Japan)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS1, GBF_PLATFORM, 0,
- NULL, DaimakaiRomInfo, DaimakaiRomName, NULL, NULL, GhoulsInputInfo, DaimakaiDIPInfo,
- DaimakaiInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsDaimakair = {
- "daimakair", "ghouls", NULL, NULL, "1988",
- "Dai Makai-Mura (Japan Resale Ver.)\0", NULL, "Capcom", "CPS1",
- L"\u5927\u9B54\u754C\u6751\0Dai Makai-Mura (Japan Resale Ver.)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS1, GBF_PLATFORM, 0,
- NULL, DaimakairRomInfo, DaimakairRomName, NULL, NULL, GhoulsInputInfo, DaimakaiDIPInfo,
- TwelveMhzInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsDaimakaib = {
- "daimakaib", "ghouls", NULL, NULL, "1988",
- "Dai Makai-Mura (bootleg, Japan)\0", NULL, "Capcom", "CPS1",
- L"\u5927\u9B54\u754C\u6751\0Dai Makai-Mura (bootleg, Japan)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS1, GBF_PLATFORM, 0,
- NULL, DaimakaibRomInfo, DaimakaibRomName, NULL, NULL, GhoulsInputInfo, DaimakaiDIPInfo,
- DaimakaibInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsKnights = {
- "knights", NULL, NULL, NULL, "1991",
- "Knights of the Round (911127 etc)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 3, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
- NULL, KnightsRomInfo, KnightsRomName, NULL, NULL, KnightsInputInfo, KnightsDIPInfo,
- DrvInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsKnightsu = {
- "knightsu", "knights", NULL, NULL, "1991",
- "Knights of the Round (911127 USA)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 3, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
- NULL, KnightsuRomInfo, KnightsuRomName, NULL, NULL, KnightsInputInfo, KnightsDIPInfo,
- DrvInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsKnightsj = {
- "knightsj", "knights", NULL, NULL, "1991",
- "Knights of the Round (911127 Japan, B-Board 91634B-2)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 3, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
- NULL, KnightsjRomInfo, KnightsjRomName, NULL, NULL, KnightsInputInfo, KnightsDIPInfo,
- DrvInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsKnightsja = {
- "knightsja", "knights", NULL, NULL, "1991",
- "Knights of the Round (911127 Japan, B-Board 89625B-1)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 3, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
- NULL, KnightsjaRomInfo, KnightsjaRomName, NULL, NULL, KnightsInputInfo, KnightsDIPInfo,
- DrvInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsKnightsb = {
- "knightsb", "knights", NULL, NULL, "1991",
- "Knights of the Round (bootleg set 1 (with YM2151 + 2xMSM5205), 911127 etc)\0", NULL, "bootleg", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 3, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
- NULL, KnightsbRomInfo, KnightsbRomName, NULL, NULL, KnightsInputInfo, KnightsDIPInfo,
- KnightsbInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsKnightsb2 = {
- "knightsb2", "knights", NULL, NULL, "1991",
- "Knights of the Round (bootleg set 2, 911127 etc)\0", NULL, "bootleg", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 3, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
- NULL, Knightsb2RomInfo, Knightsb2RomName, NULL, NULL, KnightsInputInfo, KnightsDIPInfo,
- Knightsb2Init, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsKnightsb3 = {
- "knightsb3", "knights", NULL, NULL, "1991",
- "Knights of the Round (bootleg set 3, 911127 Japan)\0", NULL, "bootleg", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 3, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
- NULL, Knightsb3RomInfo, Knightsb3RomName, NULL, NULL, KnightsInputInfo, KnightsDIPInfo,
- DrvInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsKnightsb4 = {
- "knightsb4", "knights", NULL, NULL, "1991",
- "Knights of the Round (bootleg set 4 (with YM2151 + 2xMSM5205), 911127 etc)\0", NULL, "bootleg", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 3, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
- NULL, Knightsb4RomInfo, Knightsb4RomName, NULL, NULL, KnightsInputInfo, KnightsDIPInfo,
- KnightsbInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsKnightsh = {
- "knightsh", "knights", NULL, NULL, "1991",
- "Knights of the Round (hack set 1)\0", NULL, "hack", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_HACK, 3, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
- NULL, KnightshRomInfo, KnightshRomName, NULL, NULL, KnightsInputInfo, KnightsDIPInfo,
- DrvInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsKnightsh2 = {
- "knightsh2", "knights", NULL, NULL, "1991",
- "Knights of the Round (hack set 2, 911127 etc)\0", NULL, "hack", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_HACK, 3, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
- NULL, Knightsh2RomInfo, Knightsh2RomName, NULL, NULL, KnightsInputInfo, KnightsDIPInfo,
- DrvInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsKod = {
- "kod", NULL, NULL, NULL, "1991",
- "The King of Dragons (910805 etc)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 3, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
- NULL, KodRomInfo, KodRomName, NULL, NULL, KodInputInfo, KodDIPInfo,
- DrvInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsKodr1 = {
- "kodr1", "kod", NULL, NULL, "1991",
- "The King of Dragons (910711 etc)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 3, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
- NULL, Kodr1RomInfo, Kodr1RomName, NULL, NULL, KodInputInfo, Kodr1DIPInfo,
- DrvInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsKodu = {
- "kodu", "kod", NULL, NULL, "1991",
- "The King of Dragons (US 910910)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 3, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
- NULL, KoduRomInfo, KoduRomName, NULL, NULL, KodInputInfo, KodDIPInfo,
- DrvInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsKodj = {
- "kodj", "kod", NULL, NULL, "1991",
- "The King of Dragons (Japan 910805, B-Board 90629B-3)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 3, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
- NULL, KodjRomInfo, KodjRomName, NULL, NULL, KodInputInfo, KodDIPInfo,
- DrvInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsKodja = {
- "kodja", "kod", NULL, NULL, "1991",
- "The King of Dragons (Japan 910805, B-Board 89625B-1)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 3, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
- NULL, KodjaRomInfo, KodjaRomName, NULL, NULL, KodInputInfo, KodDIPInfo,
- DrvInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsKodb = {
- "kodb", "kod", NULL, NULL, "1991",
- "The King of Dragons (bootleg, 910731 etc)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 3, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
- NULL, KodbRomInfo, KodbRomName, NULL, NULL, KodInputInfo, KodDIPInfo,
- KodbInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsKodh = {
- "kodh", "kod", NULL, NULL, "2002",
- "The King of Dragons (hack)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_HACK, 3, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
- NULL, KodhRomInfo, KodhRomName, NULL, NULL, KodhInputInfo, KodDIPInfo,
- KodhInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsKodda = {
- "kodda", "kod", NULL, NULL, "1991",
- "The King of Dragons (Phoenix bootleg, 910731 etc)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 3, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
- NULL, KoddaRomInfo, KoddaRomName, NULL, NULL, KodInputInfo, KodDIPInfo,
- DrvInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsMegaman = {
- "megaman", NULL, NULL, NULL, "1995",
- "Mega Man - the power battle (951006 USA)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, 0,
- NULL, MegamanRomInfo, MegamanRomName, NULL, NULL, MegamanInputInfo, MegamanDIPInfo,
- TwelveMhzInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsMegamana = {
- "megamana", "megaman", NULL, NULL, "1995",
- "Mega Man - the power battle (951006 Asia)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, 0,
- NULL, MegamanaRomInfo, MegamanaRomName, NULL, NULL, MegamanInputInfo, MegamanDIPInfo,
- TwelveMhzInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsRockmanj = {
- "rockmanj", "megaman", NULL, NULL, "1995",
- "Rockman - the power battle (950922 Japan)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, 0,
- NULL, RockmanjRomInfo, RockmanjRomName, NULL, NULL, MegamanInputInfo, RockmanjDIPInfo,
- TwelveMhzInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsMercs = {
- "mercs", NULL, NULL, NULL, "1990",
- "Mercs (900302 etc)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL, 3, HARDWARE_CAPCOM_CPS1, GBF_VERSHOOT, 0,
- NULL, MercsRomInfo, MercsRomName, NULL, NULL, MercsInputInfo, MercsDIPInfo,
- MercsInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 224, 384, 3, 4
-};
-
-struct BurnDriver BurnDrvCpsMercsu = {
- "mercsu", "mercs", NULL, NULL, "1990",
- "Mercs (900608 USA)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL, 3, HARDWARE_CAPCOM_CPS1, GBF_VERSHOOT, 0,
- NULL, MercsuRomInfo, MercsuRomName, NULL, NULL, MercsInputInfo, MercsDIPInfo,
- MercsInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 224, 384, 3, 4
-};
-
-struct BurnDriver BurnDrvCpsMercsur1 = {
- "mercsur1", "mercs", NULL, NULL, "1990",
- "Mercs (900302 USA)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL, 3, HARDWARE_CAPCOM_CPS1, GBF_VERSHOOT, 0,
- NULL, Mercsur1RomInfo, Mercsur1RomName, NULL, NULL, MercsInputInfo, MercsDIPInfo,
- MercsInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 224, 384, 3, 4
-};
-
-struct BurnDriver BurnDrvCpsMercsj = {
- "mercsj", "mercs", NULL, NULL, "1990",
- "Senjo no Ookami II (Ookami 2 900302 Japan)\0", NULL, "Capcom", "CPS1",
- L"\u6226\u5834\u306E\u72FC II\0Senjo no Ookami II (Ookami 2 900302 Japan)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL, 3, HARDWARE_CAPCOM_CPS1, GBF_VERSHOOT, 0,
- NULL, MercsjRomInfo, MercsjRomName, NULL, NULL, MercsInputInfo, MercsDIPInfo,
- MercsInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 224, 384, 3, 4
-};
-
-struct BurnDriver BurnDrvCpsMsword = {
- "msword", NULL, NULL, NULL, "1990",
- "Magic Sword - heroic fantasy (25.07.1990 other country)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
- NULL, MswordRomInfo, MswordRomName, NULL, NULL, MswordInputInfo, MswordDIPInfo,
- DrvInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsMswordr1 = {
- "mswordr1", "msword", NULL, NULL, "1990",
- "Magic Sword - heroic fantasy (23.06.1990 other country)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
- NULL, Mswordr1RomInfo, Mswordr1RomName, NULL, NULL, MswordInputInfo, MswordDIPInfo,
- DrvInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsMswordj = {
- "mswordj", "msword", NULL, NULL, "1990",
- "Magic Sword (23.06.1990 Japan)\0", NULL, "Capcom", "CPS1",
- L"Magic Sword (23.06.1990 Japan)\0Magic Sword\u30DE\u30B8\u30C3\u30AF\uFF65\u30BD\u30FC\u30C9\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
- NULL, MswordjRomInfo, MswordjRomName, NULL, NULL, MswordInputInfo, MswordDIPInfo,
- DrvInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsMswordu = {
- "mswordu", "msword", NULL, NULL, "1990",
- "Magic Sword - heroic fantasy (25.07.1990 USA)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
- NULL, MsworduRomInfo, MsworduRomName, NULL, NULL, MswordInputInfo, MswordDIPInfo,
- DrvInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsMtwins = {
- "mtwins", NULL, NULL, NULL, "1990",
- "Mega Twins (chiki chiki boys 900619 etc)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_CAPCOM_CPS1, GBF_PLATFORM, 0,
- NULL, MtwinsRomInfo, MtwinsRomName, NULL, NULL, MtwinsInputInfo, MtwinsDIPInfo,
- DrvInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsChikij = {
- "chikij", "mtwins", NULL, NULL, "1990",
- "Chiki Chiki Boys (900619 Japan)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS1, GBF_PLATFORM, 0,
- NULL, ChikijRomInfo, ChikijRomName, NULL, NULL, MtwinsInputInfo, MtwinsDIPInfo,
- DrvInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsNemo = {
- "nemo", NULL, NULL, NULL, "1990",
- "Nemo (90 11 30 etc)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_CAPCOM_CPS1, GBF_PLATFORM, 0,
- NULL, NemoRomInfo, NemoRomName, NULL, NULL, NemoInputInfo, NemoDIPInfo,
- DrvInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsNemor1 = {
- "nemor1", "nemo", NULL, NULL, "1990",
- "Nemo (90 11 09 etc)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS1, GBF_PLATFORM, 0,
- NULL, Nemor1RomInfo, Nemor1RomName, NULL, NULL, NemoInputInfo, NemoDIPInfo,
- DrvInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsNemoj = {
- "nemoj", "nemo", NULL, NULL, "1990",
- "Nemo (90 11 20 Japan)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2 ,HARDWARE_CAPCOM_CPS1, GBF_PLATFORM, 0,
- NULL, NemojRomInfo, NemojRomName, NULL, NULL, NemoInputInfo, NemoDIPInfo,
- DrvInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsPang3 = {
- "pang3", NULL, NULL, NULL, "1995",
- "Pang! 3 (950601 Euro)\0", NULL, "Mitchell", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_CAPCOM_CPS1_GENERIC, GBF_PUZZLE, 0,
- NULL, Pang3RomInfo, Pang3RomName, NULL, NULL, Pang3InputInfo, Pang3DIPInfo,
- Pang3Init, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsPang3r1 = {
- "pang3r1", "pang3", NULL, NULL, "1995",
- "Pang! 3 (950511 Euro)\0", NULL, "Mitchell", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS1_GENERIC, GBF_PUZZLE, 0,
- NULL, Pang3r1RomInfo, Pang3r1RomName, NULL, NULL, Pang3InputInfo, Pang3DIPInfo,
- Pang3Init, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsPang3r1a = {
- "pang3r1a", "pang3", NULL, NULL, "1995",
- "Pang! 3 (950511 Euro, alt)\0", NULL, "Mitchell", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS1_GENERIC, GBF_PUZZLE, 0,
- NULL, Pang3r1aRomInfo, Pang3r1aRomName, NULL, NULL, Pang3InputInfo, Pang3DIPInfo,
- Pang3r1aInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsPang3b = {
- "pang3b", "pang3", NULL, NULL, "1995",
- "Pang! 3 (bootleg set 1, 950511 Euro)\0", NULL, "Mitchell", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS1_GENERIC, GBF_PUZZLE, 0,
- NULL, Pang3bRomInfo, Pang3bRomName, NULL, NULL, Pang3InputInfo, Pang3DIPInfo,
- Pang3bInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsPang3b2 = {
- "pang3b2", "pang3", NULL, NULL, "1995",
- "Pang! 3 (bootleg set 2, 950511 Euro)\0", NULL, "Mitchell", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS1_GENERIC, GBF_PUZZLE, 0,
- NULL, Pang3b2RomInfo, Pang3b2RomName, NULL, NULL, Pang3InputInfo, Pang3DIPInfo,
- Pang3Init, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsPang3b3 = {
- "pang3b3", "pang3", NULL, NULL, "1995",
- "Pang! 3 (bootleg set 3, 950601 Euro)\0", NULL, "Mitchell", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS1_GENERIC, GBF_PUZZLE, 0,
- NULL, Pang3b3RomInfo, Pang3b3RomName, NULL, NULL, Pang3InputInfo, Pang3DIPInfo,
- Pang3Init, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsPang3j = {
- "pang3j", "pang3", NULL, NULL, "1995",
- "Pang! 3: Kaitou Tachi no Karei na Gogo (950511 Japan)\0", NULL, "Mitchell", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS1_GENERIC, GBF_PUZZLE, 0,
- NULL, Pang3jRomInfo, Pang3jRomName, NULL, NULL, Pang3InputInfo, Pang3DIPInfo,
- Pang3Init, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsPnickj = {
- "pnickj", NULL, NULL, NULL, "1994",
- "Pnickies (940608 Japan)\0", NULL, "Compile (Capcom license)", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_CAPCOM_CPS1, GBF_PUZZLE, 0,
- NULL, PnickjRomInfo, PnickjRomName, NULL, NULL, PnickjInputInfo, PnickjDIPInfo,
- TwelveMhzInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvPokonyan = {
- "pokonyan", NULL, NULL, NULL, "1994",
- "Pokonyan (Japan 940322)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_CAPCOM_CPS1, GBF_MISC, 0,
- NULL, PokonyanRomInfo, PokonyanRomName, NULL, NULL, PokonyanInputInfo, PokonyanDIPInfo,
- DrvInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsPunisher = {
- "punisher", NULL, NULL, NULL, "1993",
- "The Punisher (930422 etc)\0", NULL, "Capcom", "CPS1 / QSound",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_CAPCOM_CPS1_QSOUND, GBF_SCRFIGHT, 0,
- NULL, PunisherRomInfo, PunisherRomName, NULL, NULL, PunisherInputInfo, PunisherDIPInfo,
- TwelveMhzInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsPunisheru = {
- "punisheru", "punisher", NULL, NULL, "1993",
- "The Punisher (930422 USA)\0", NULL, "Capcom", "CPS1 / QSound",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS1_QSOUND, GBF_SCRFIGHT, 0,
- NULL, PunisheruRomInfo, PunisheruRomName, NULL, NULL, PunisherInputInfo, PunisherDIPInfo,
- TwelveMhzInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsPunisherj = {
- "punisherj", "punisher", NULL, NULL, "1993",
- "The Punisher (930422 Japan)\0", NULL, "Capcom", "CPS1 / QSound",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS1_QSOUND, GBF_SCRFIGHT, 0,
- NULL, PunisherjRomInfo, PunisherjRomName, NULL, NULL, PunisherInputInfo, PunisherDIPInfo,
- TwelveMhzInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsPunisherh = {
- "punisherh", "punisher", NULL, NULL, "1993",
- "The Punisher (930422 Hispanic)\0", NULL, "Capcom", "CPS1 / QSound",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS1_QSOUND, GBF_SCRFIGHT, 0,
- NULL, PunisherhRomInfo, PunisherhRomName, NULL, NULL, PunisherInputInfo, PunisherDIPInfo,
- TwelveMhzInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsPunipic = {
- "punipic", "punisher", NULL, NULL, "1993",
- "The Punisher (bootleg set 1 (with PIC16c57), 930422 etc)\0", "No sound", "bootleg", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
- NULL, PunipicRomInfo, PunipicRomName, NULL, NULL, PunisherInputInfo, PunisherDIPInfo,
- PunipicInit, PunipicExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsPunipic2 = {
- "punipic2", "punisher", NULL, NULL, "1993",
- "The Punisher (bootleg set 2 (with PIC16c57), 930422 etc)\0", "No sound", "bootleg", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
- NULL, Punipic2RomInfo, Punipic2RomName, NULL, NULL, PunisherInputInfo, PunisherDIPInfo,
- Punipic2Init, PunipicExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsPunipic3 = {
- "punipic3", "punisher", NULL, NULL, "1993",
- "The Punisher (bootleg set 3 (with PIC16c57), 930422 etc)\0", "No sound", "bootleg", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
- NULL, Punipic3RomInfo, Punipic3RomName, NULL, NULL, PunisherInputInfo, PunisherDIPInfo,
- Punipic3Init, PunipicExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsPunisherbz = {
- "punisherbz", "punisher", NULL, NULL, "2002",
- "Biaofeng Zhanjing (Chinese bootleg)\0", NULL, "bootleg", "CPS1",
- L"\uFEFF\u98C6\u98A8\u6230\u8B66\0The Punisher: Biaofeng Zhanjing (Chinese bootleg)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
- NULL, PunisherbzRomInfo, PunisherbzRomName, NULL, NULL, PunisherbzInputInfo, PunisherbzDIPInfo,
- TwelveMhzInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsPunisherb = {
- "punisherb", "punisher", NULL, NULL, "1993",
- "The Punisher (bootleg, 930422 etc)\0", NULL, "bootleg", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
- NULL, PunisherbRomInfo, PunisherbRomName, NULL, NULL, PunisherInputInfo, PunisherDIPInfo,
- PunisherbInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsQad = {
- "qad", NULL, NULL, NULL, "1992",
- "Quiz & Dragons (capcom quiz game 920701 USA)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_CAPCOM_CPS1, GBF_QUIZ, 0,
- NULL, QadRomInfo, QadRomName, NULL, NULL, QadInputInfo, QadDIPInfo,
- QadInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsQadjr = {
- "qadjr", "qad", NULL, NULL, "1992",
- "Quiz & Dragons (940921 Japan Resale Ver.)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS1, GBF_QUIZ, 0,
- NULL, QadjrRomInfo, QadjrRomName, NULL, NULL, QadInputInfo, QadjrDIPInfo,
- QadInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsQtono2j = {
- "qtono2j", NULL, NULL, NULL, "1995",
- "Quiz Tonosama no Yabou 2 Zenkoku-ban (tonosama 2 950123 Japan)\0", NULL, "Capcom", "CPS1",
- L"\u30AF\u30A4\u30BA\u6BBF\u69D8\u306E\u91CE\u671B\uFF12 (\u3068\u306E\u3055\u307E\u306E\u3084\u307C\u3046 2)\0Quiz Tonosama no Yabou 2 Zenkoku-ban (tonosama 2 950123 Japan)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_CAPCOM_CPS1, GBF_QUIZ, 0,
- NULL, Qtono2jRomInfo, Qtono2jRomName, NULL, NULL, Qtono2jInputInfo, Qtono2jDIPInfo,
- TwelveMhzInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2 = {
- "sf2", NULL, NULL, NULL, "1991",
- "Street Fighter II - The World Warrior (910522 etc)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2RomInfo, Sf2RomName, NULL, NULL, Sf2InputInfo, Sf2DIPInfo,
- DrvInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2eb = {
- "sf2eb", "sf2", NULL, NULL, "1991",
- "Street Fighter II - The World Warrior (910214 etc)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2ebRomInfo, Sf2ebRomName, NULL, NULL, Sf2InputInfo, Sf2DIPInfo,
- DrvInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2ed = {
- "sf2ed", "sf2", NULL, NULL, "1991",
- "Street Fighter II - The World Warrior (910318 etc)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2edRomInfo, Sf2edRomName, NULL, NULL, Sf2InputInfo, Sf2DIPInfo,
- DrvInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2ee = {
- "sf2ee", "sf2", NULL, NULL, "1991",
- "Street Fighter II - The World Warrior (910228 etc)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2eeRomInfo, Sf2eeRomName, NULL, NULL, Sf2ueInputInfo, Sf2DIPInfo,
- DrvInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2em = {
- "sf2em", "sf2", NULL, NULL, "1991",
- "Street Fighter II - The World Warrior (910129 etc)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2emRomInfo, Sf2emRomName, NULL, NULL, Sf2InputInfo, Sf2DIPInfo,
- DrvInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2ebbl = {
- "sf2ebbl", "sf2", NULL, NULL, "1992",
- "Street Fighter II - The World Warrior (TAB Austria bootleg, 910214 etc)\0", NULL, "bootleg", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2ebblRomInfo, Sf2ebblRomName, NULL, NULL, Sf2yycInputInfo, Sf2DIPInfo,
- Sf2ebblInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2ebbl2 = {
- "sf2ebbl2", "sf2", NULL, NULL, "1992",
- "Street Fighter II - The World Warrior (TAB Austria bootleg set 2, 910214 etc)\0", NULL, "bootleg", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2ebbl2RomInfo, Sf2ebbl2RomName, NULL, NULL, Sf2yycInputInfo, Sf2DIPInfo,
- Sf2ebbl2Init, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2ebbl3 = {
- "sf2ebbl3", "sf2", NULL, NULL, "1992",
- "Street Fighter II - The World Warrior (TAB Austria bootleg set 3, 910214 etc)\0", NULL, "bootleg", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2ebbl3RomInfo, Sf2ebbl3RomName, NULL, NULL, Sf2yycInputInfo, Sf2DIPInfo,
- Sf2ebbl3Init, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2stt = {
- "sf2stt", "sf2", NULL, NULL, "1992",
- "Street Fighter II - The World Warrior (STT, TAB Austria bootleg, 910214 etc)\0", NULL, "bootleg", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2sttRomInfo, Sf2sttRomName, NULL, NULL, Sf2yycInputInfo, Sf2DIPInfo,
- Sf2sttInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2ua = {
- "sf2ua", "sf2", NULL, NULL, "1991",
- "Street Fighter II - The World Warrior (910206 USA)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2uaRomInfo, Sf2uaRomName, NULL, NULL, Sf2InputInfo, Sf2DIPInfo,
- DrvInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2ub = {
- "sf2ub", "sf2", NULL, NULL, "1991",
- "Street Fighter II - The World Warrior (910214 USA)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2ubRomInfo, Sf2ubRomName, NULL, NULL, Sf2InputInfo, Sf2DIPInfo,
- DrvInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2uc = {
- "sf2uc", "sf2", NULL, NULL, "1991",
- "Street Fighter II - The World Warrior (910306 USA)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2ucRomInfo, Sf2ucRomName, NULL, NULL, Sf2InputInfo, Sf2DIPInfo,
- DrvInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2ud = {
- "sf2ud", "sf2", NULL, NULL, "1991",
- "Street Fighter II - The World Warrior (910318 USA)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2udRomInfo, Sf2udRomName, NULL, NULL, Sf2InputInfo, Sf2DIPInfo,
- DrvInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2ue = {
- "sf2ue", "sf2", NULL, NULL, "1991",
- "Street Fighter II - The World Warrior (910228 USA)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2ueRomInfo, Sf2ueRomName, NULL, NULL, Sf2ueInputInfo, Sf2DIPInfo,
- DrvInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2uf = {
- "sf2uf", "sf2", NULL, NULL, "1991",
- "Street Fighter II - The World Warrior (910411 USA)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2ufRomInfo, Sf2ufRomName, NULL, NULL, Sf2InputInfo, Sf2DIPInfo,
- DrvInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2ug = {
- "sf2ug", "sf2", NULL, NULL, "1991",
- "Street Fighter II - The World Warrior (910522 USA, rev G)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2ugRomInfo, Sf2ugRomName, NULL, NULL, Sf2InputInfo, Sf2DIPInfo,
- DrvInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2ui = {
- "sf2ui", "sf2", NULL, NULL, "1991",
- "Street Fighter II - The World Warrior (910522 USA, rev I)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2uiRomInfo, Sf2uiRomName, NULL, NULL, Sf2InputInfo, Sf2DIPInfo,
- DrvInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2uk = {
- "sf2uk", "sf2", NULL, NULL, "1991",
- "Street Fighter II - The World Warrior (911101 USA)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2ukRomInfo, Sf2ukRomName, NULL, NULL, Sf2InputInfo, Sf2DIPInfo,
- DrvInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2j = {
- "sf2j", "sf2", NULL, NULL, "1991",
- "Street Fighter II - The World Warrior (911210 Japan, CPS-B-13)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2jRomInfo, Sf2jRomName, NULL, NULL, Sf2InputInfo, Sf2jDIPInfo,
- DrvInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2j17 = {
- "sf2j17", "sf2", NULL, NULL, "1991",
- "Street Fighter II - The World Warrior (911210 Japan, CPS-B-17)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2j17RomInfo, Sf2j17RomName, NULL, NULL, Sf2InputInfo, Sf2jDIPInfo,
- DrvInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2ja = {
- "sf2ja", "sf2", NULL, NULL, "1991",
- "Street Fighter II - The World Warrior (910214 Japan)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2jaRomInfo, Sf2jaRomName, NULL, NULL, Sf2InputInfo, Sf2jDIPInfo,
- DrvInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2jc = {
- "sf2jc", "sf2", NULL, NULL, "1991",
- "Street Fighter II - The World Warrior (910306 Japan)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2jcRomInfo, Sf2jcRomName, NULL, NULL, Sf2InputInfo, Sf2jDIPInfo,
- Sf2jcInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2jf = {
- "sf2jf", "sf2", NULL, NULL, "1991",
- "Street Fighter II - The World Warrior (910411 Japan)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2jfRomInfo, Sf2jfRomName, NULL, NULL, Sf2InputInfo, Sf2jDIPInfo,
- DrvInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2jh = {
- "sf2jh", "sf2", NULL, NULL, "1991",
- "Street Fighter II - The World Warrior (910522 Japan)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2jhRomInfo, Sf2jhRomName, NULL, NULL, Sf2InputInfo, Sf2jDIPInfo,
- DrvInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2jl = {
- "sf2jl", "sf2", NULL, NULL, "1991",
- "Street Fighter II - The World Warrior (920312 Japan)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2jlRomInfo, Sf2jlRomName, NULL, NULL, Sf2InputInfo, Sf2jDIPInfo,
- DrvInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2jla = {
- "sf2jla", "sf2", NULL, NULL, "1991",
- "Street Fighter II - The World Warrior (911210 Japan, rev L)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2jlaRomInfo, Sf2jlaRomName, NULL, NULL, Sf2InputInfo, Sf2jDIPInfo,
- DrvInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2qp1 = {
- "sf2qp1", "sf2", NULL, NULL, "1991",
- "Street Fighter II - The World Warrior (Quicken Pt-I bootleg, 910214 USA)\0", NULL, "bootleg", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2qp1RomInfo, Sf2qp1RomName, NULL, NULL, Sf2InputInfo, Sf2DIPInfo,
- Sf2qp1Init, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2thndr = {
- "sf2thndr", "sf2", NULL, NULL, "1991",
- "Street Fighter II - The World Warrior (Thunder Edition bootleg, 910214 etc)\0", NULL, "bootleg", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2thndrRomInfo, Sf2thndrRomName, NULL, NULL, Sf2InputInfo, Sf2DIPInfo,
- Sf2thndrInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2b = {
- "sf2b", "sf2", NULL, NULL, "1992",
- "Street Fighter II - The World Warrior (bootleg, 910214 etc, set 1 (with YM2151 + 2xMSM5205))\0", "row scroll issues", "bootleg", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2bRomInfo, Sf2bRomName, NULL, NULL, Sf2InputInfo, Sf2DIPInfo,
- Sf2bInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2b2 = {
- "sf2b2", "sf2", NULL, NULL, "1991",
- "Street Fighter II - The World Warrior (bootleg, 910214 etc, set 2)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2b2RomInfo, Sf2b2RomName, NULL, NULL, Sf2InputInfo, Sf2DIPInfo,
- Sf2b2Init, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2b3 = {
- "sf2b3", "sf2", NULL, NULL, "1991",
- "Street Fighter II - The World Warrior (bootleg, 910214 etc, set 3)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2b3RomInfo, Sf2b3RomName, NULL, NULL, Sf2InputInfo, Sf2DIPInfo,
- DrvInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2ce = {
- "sf2ce", NULL, NULL, NULL, "1992",
- "Street Fighter II' - Champion Edition (street fighter 2' 920513 etc)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2ceRomInfo, Sf2ceRomName, NULL, NULL, Sf2InputInfo, Sf2DIPInfo,
- Sf2ceInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2ceea = {
- "sf2ceea", "sf2ce", NULL, NULL, "1992",
- "Street Fighter II' - Champion Edition (street fighter 2' 920313 etc)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2ceeaRomInfo, Sf2ceeaRomName, NULL, NULL, Sf2InputInfo, Sf2DIPInfo,
- Sf2ceInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2ceja = {
- "sf2ceja", "sf2ce", NULL, NULL, "1992",
- "Street Fighter II' - Champion Edition (street fighter 2' 920322 Japan)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2cejaRomInfo, Sf2cejaRomName, NULL, NULL, Sf2InputInfo, Sf2DIPInfo,
- Sf2ceInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2cejb = {
- "sf2cejb", "sf2ce", NULL, NULL, "1992",
- "Street Fighter II' - Champion Edition (street fighter 2' 920513 Japan)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2cejbRomInfo, Sf2cejbRomName, NULL, NULL, Sf2InputInfo, Sf2DIPInfo,
- Sf2ceInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2cejc = {
- "sf2cejc", "sf2ce", NULL, NULL, "1992",
- "Street Fighter II' - Champion Edition (street fighter 2' 920803 Japan)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2cejcRomInfo, Sf2cejcRomName, NULL, NULL, Sf2InputInfo, Sf2DIPInfo,
- Sf2ceInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2ceua = {
- "sf2ceua", "sf2ce", NULL, NULL, "1992",
- "Street Fighter II' - Champion Edition (street fighter 2' 920313 USA)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2ceuaRomInfo, Sf2ceuaRomName, NULL, NULL, Sf2InputInfo, Sf2DIPInfo,
- Sf2ceInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2ceub = {
- "sf2ceub", "sf2ce", NULL, NULL, "1992",
- "Street Fighter II' - Champion Edition (street fighter 2' 920513 USA)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2ceubRomInfo, Sf2ceubRomName, NULL, NULL, Sf2InputInfo, Sf2DIPInfo,
- Sf2ceInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2ceuc = {
- "sf2ceuc", "sf2ce", NULL, NULL, "1992",
- "Street Fighter II' - Champion Edition (street fighter 2' 920803 USA)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2ceucRomInfo, Sf2ceucRomName, NULL, NULL, Sf2InputInfo, Sf2DIPInfo,
- Sf2ceInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2acc = {
- "sf2acc", "sf2ce", NULL, NULL, "1992",
- "Street Fighter II' - Champion Edition (Accelerator! bootleg set 1, 920313 USA)\0", NULL, "bootleg", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2,HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2accRomInfo, Sf2accRomName, NULL, NULL, Sf2InputInfo, Sf2DIPInfo,
- Sf2ceInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2acca = {
- "sf2acca", "sf2ce", NULL, NULL, "1992",
- "Street Fighter II' - Champion Edition (Accelerator! bootleg set 2, 920310 Accelerator!)\0", NULL, "bootleg", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2,HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2accaRomInfo, Sf2accaRomName, NULL, NULL, Sf2InputInfo, Sf2DIPInfo,
- Sf2ceInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2accp2 = {
- "sf2accp2", "sf2ce", NULL, NULL, "1992",
- "Street Fighter II' - Champion Edition (Accelerator Pt.II bootleg, 920313 Testron)\0", NULL, "bootleg", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2,HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2accp2RomInfo, Sf2accp2RomName, NULL, NULL, Sf2InputInfo, Sf2DIPInfo,
- Sf2accp2Init, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2dkot2 = {
- "sf2dkot2", "sf2ce", NULL, NULL, "1992",
- "Street Fighter II' - Champion Edition (Double K.O. Turbo II bootleg, 902140 USA)\0", NULL, "bootleg", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2,HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2dkot2RomInfo, Sf2dkot2RomName, NULL, NULL, Sf2InputInfo, Sf2DIPInfo,
- Sf2dkot2Init, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2rb = {
- "sf2rb", "sf2ce", NULL, NULL, "1992",
- "Street Fighter II' - Champion Edition (Rainbow bootleg set 1, 920322 etc)\0", NULL, "bootleg", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2,HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2rbRomInfo, Sf2rbRomName, NULL, NULL, Sf2InputInfo, Sf2DIPInfo,
- Sf2rbInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2rb2 = {
- "sf2rb2", "sf2ce", NULL, NULL, "1992",
- "Street Fighter II' - Champion Edition (Rainbow bootleg set 2, 920322 etc)\0", NULL, "bootleg", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2,HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2rb2RomInfo, Sf2rb2RomName, NULL, NULL, Sf2InputInfo, Sf2DIPInfo,
- Sf2rb2Init, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2rb3 = {
- "sf2rb3", "sf2ce", NULL, NULL, "1992",
- "Street Fighter II' - Champion Edition (Rainbow bootleg set 3, 920322 etc)\0", NULL, "bootleg", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2,HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2rb3RomInfo, Sf2rb3RomName, NULL, NULL, Sf2InputInfo, Sf2DIPInfo,
- Sf2ceInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2rb4 = {
- "sf2rb4", "sf2ce", NULL, NULL, "1992",
- "Street Fighter II' - Champion Edition (Rainbow bootleg set 4, 920322 Japan)\0", NULL, "bootleg", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2rb4RomInfo, Sf2rb4RomName, NULL, NULL, Sf2yycInputInfo, Sf2jDIPInfo,
- Sf2cejablInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2rb5 = {
- "sf2rb5", "sf2ce", NULL, NULL, "1992",
- "Street Fighter II' - Champion Edition (Rainbow bootleg set 5, 920322 Japan)\0", NULL, "bootleg", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2rb5RomInfo, Sf2rb5RomName, NULL, NULL, Sf2yycInputInfo, Sf2jDIPInfo,
- Sf2cejablInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2rb6 = {
- "sf2rb6", "sf2ce", NULL, NULL, "1992",
- "Street Fighter II' - Champion Edition (Rainbow bootleg set 6, 920313 etc)\0", NULL, "bootleg", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2rb6RomInfo, Sf2rb6RomName, NULL, NULL, Sf2InputInfo, Sf2DIPInfo,
- Sf2rb6Init, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2red = {
- "sf2red", "sf2ce", NULL, NULL, "1992",
- "Street Fighter II' - Champion Edition (Red Wave bootleg set 1, 920313 etc)\0", NULL, "bootleg", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2redRomInfo, Sf2redRomName, NULL, NULL, Sf2InputInfo, Sf2DIPInfo,
- Sf2ceInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2red2 = {
- "sf2red2", "sf2ce", NULL, NULL, "1992",
- "Street Fighter II' - Champion Edition (Red Wave bootleg set 2, 920313 etc)\0", NULL, "bootleg", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2red2RomInfo, Sf2red2RomName, NULL, NULL, Sf2yycInputInfo, Sf2jDIPInfo,
- Sf2yycInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2v004 = {
- "sf2v004", "sf2ce", NULL, NULL, "1992",
- "Street Fighter II' - Champion Edition (V004 bootleg set 1, 102092 USA)\0", NULL, "bootleg", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2v004RomInfo, Sf2v004RomName, NULL, NULL, Sf2InputInfo, Sf2DIPInfo,
- Sf2ceInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2v0042 = {
- "sf2v0042", "sf2ce", NULL, NULL, "1992",
- "Street Fighter II' - Champion Edition (V004 bootleg set 2, 920313 etc)\0", NULL, "bootleg", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2v0042RomInfo, Sf2v0042RomName, NULL, NULL, Sf2yycInputInfo, Sf2jDIPInfo,
- Sf2yycInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2v0043 = {
- "sf2v0043", "sf2ce", NULL, NULL, "1992",
- "Street Fighter II' - Champion Edition (V004 bootleg set 3, 920313 etc)\0", NULL, "bootleg", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2,HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2v0043RomInfo, Sf2v0043RomName, NULL, NULL, Sf2InputInfo, Sf2DIPInfo,
- Sf2ceInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2dongb = {
- "sf2dongb", "sf2ce", NULL, NULL, "1992",
- "Street Fighter II': Champion Edition (Dongfang Bubai protection bootleg, etc 920313)\0", NULL, "bootleg", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2dongbRomInfo, Sf2dongbRomName, NULL, NULL, Sf2InputInfo, Sf2DIPInfo,
- Sf2dongbInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2bhh = {
- "sf2bhh", "sf2ce", NULL, NULL, "1992",
- "Street Fighter II' - Champion Edition (Hungh-Hsi bootleg, 920313 Taiwan)\0", NULL, "bootleg", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2,HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2bhhRomInfo, Sf2bhhRomName, NULL, NULL, Sf2InputInfo, Sf2bhhDIPInfo,
- Sf2bhhInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2hf = {
- "sf2hf", NULL, NULL, NULL, "1992",
- "Street Fighter II' - Hyper Fighting (street fighter 2' T 921209 ETC)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2hfRomInfo, Sf2hfRomName, NULL, NULL, Sf2InputInfo, Sf2DIPInfo,
- Sf2ceInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2hfu = {
- "sf2hfu", "sf2hf", NULL, NULL, "1992",
- "Street Fighter II' - Hyper Fighting (street fighter 2' T 921209 USA)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2hfuRomInfo, Sf2hfuRomName, NULL, NULL, Sf2InputInfo, Sf2DIPInfo,
- Sf2ceInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2hfj = {
- "sf2hfj", "sf2hf", NULL, NULL, "1992",
- "Street Fighter II' Turbo - Hyper Fighting (street fighter 2' T 921209 Japan)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2hfjRomInfo, Sf2hfjRomName, NULL, NULL, Sf2InputInfo, Sf2jDIPInfo,
- Sf2ceInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriverD BurnDrvCpsSf2hfub = {
- "sf2hfub", "sf2hf", NULL, NULL, "1992",
- "Street Fighter II' - Hyper Fighting (bootleg set 3, street fighter 2' T 921209 USA)\0", NULL, "bootleg", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2hfubRomInfo, Sf2hfubRomName, NULL, NULL, Sf2InputInfo, Sf2DIPInfo,
- Sf2hfubInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2hfjb = {
- "sf2hfjb", "sf2hf", NULL, NULL, "1992",
- "Street Fighter II' Turbo - Hyper Fighting (bootleg set 1, 921209 Japan)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2hfjbRomInfo, Sf2hfjbRomName, NULL, NULL, Sf2yycInputInfo, Sf2jDIPInfo,
- Sf2hfjbInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2hfjb2 = {
- "sf2hfjb2", "sf2hf", NULL, NULL, "1992",
- "Street Fighter II' Turbo - Hyper Fighting (bootleg set 2, 921209 Japan)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2hfjb2RomInfo, Sf2hfjb2RomName, NULL, NULL, Sf2yycInputInfo, Sf2jDIPInfo,
- Sf2hfjbInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2yyc = {
- "sf2yyc", "sf2ce", NULL, NULL, "1992",
- "Street Fighter II' - Champion Edition (YYC bootleg set 1, 920313 etc)\0", NULL, "bootleg", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2yycRomInfo, Sf2yycRomName, NULL, NULL, Sf2yycInputInfo, Sf2DIPInfo,
- Sf2yycInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2yyc2 = {
- "sf2yyc2", "sf2ce", NULL, NULL, "1992",
- "Street Fighter II' - Champion Edition (YYC bootleg set 2, 920313 etc)\0", NULL, "bootleg", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2yyc2RomInfo, Sf2yyc2RomName, NULL, NULL, Sf2yycInputInfo, Sf2DIPInfo,
- Sf2yycInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2koryu = {
- "sf2koryu", "sf2ce", NULL, NULL, "1992",
- "Street Fighter II' - Xiang Long (bootleg set 1, 811102 001)\0", NULL, "bootleg", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2koryuRomInfo, Sf2koryuRomName, NULL, NULL, Sf2yycInputInfo, Sf2DIPInfo,
- Sf2koryuInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2koryu2 = {
- "sf2koryu2", "sf2ce", NULL, NULL, "1992",
- "Street Fighter II' - Xiang Long (bootleg set 2, 811102 001)\0", NULL, "bootleg", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2koryu2RomInfo, Sf2koryu2RomName, NULL, NULL, Sf2yycInputInfo, Sf2DIPInfo,
- Sf2koryu2Init, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2koryu3 = {
- "sf2koryu3", "sf2ce", NULL, NULL, "1992",
- "Street Fighter II' - Xiang Long (bootleg set 3, 811102 001)\0", NULL, "bootleg", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG,2,HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2koryu3RomInfo, Sf2koryu3RomName, NULL, NULL, Sf2yycInputInfo, Sf2DIPInfo,
- Sf2koryu2Init, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2amf = {
- "sf2amf", "sf2ce", NULL, NULL, "1992",
- "Street Fighter II - Champion Edition (Alpha Magic-F bootleg set 1, 920313 etc)\0", NULL, "bootleg", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2amfRomInfo, Sf2amfRomName, NULL, NULL, Sf2yycInputInfo, Sf2amfDIPInfo,
- Sf2amfInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2amf2 = {
- "sf2amf2", "sf2ce", NULL, NULL, "1992",
- "Street Fighter II - Champion Edition (Alpha Magic-F bootleg set 2, 920313 etc)\0", NULL, "bootleg", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2amf2RomInfo, Sf2amf2RomName, NULL, NULL, Sf2yycInputInfo, Sf2amfDIPInfo,
- Sf2amf2Init, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2amf3 = {
- "sf2amf3", "sf2ce", NULL, NULL, "1992",
- "Street Fighter II - Champion Edition (Alpha Magic-F bootleg set 3, 920313 etc)\0", NULL, "bootleg", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2amf3RomInfo, Sf2amf3RomName, NULL, NULL, Sf2yycInputInfo, Sf2amfDIPInfo,
- Sf2koryu2Init, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2amf4 = {
- "sf2amf4", "sf2ce", NULL, NULL, "1992",
- "Street Fighter II - Champion Edition (Alpha Magic-F bootleg set 4, 920313 etc)\0", NULL, "bootleg", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2amf4RomInfo, Sf2amf4RomName, NULL, NULL, Sf2yycInputInfo, Sf2amfDIPInfo,
- Sf2koryu2Init, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2amf5 = {
- "sf2amf5", "sf2ce", NULL, NULL, "1992",
- "Street Fighter II - Champion Edition (Alpha Magic-F bootleg set 5, 920313 etc)\0", NULL, "bootleg", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2amf5RomInfo, Sf2amf5RomName, NULL, NULL, Sf2yycInputInfo, Sf2amfDIPInfo,
- Sf2koryu2Init, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2amf6 = {
- "sf2amf6", "sf2ce", NULL, NULL, "1992",
- "Street Fighter II - Champion Edition (Alpha Magic-F bootleg set 6, 920313 etc)\0", NULL, "bootleg", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2amf6RomInfo, Sf2amf6RomName, NULL, NULL, Sf2yycInputInfo, Sf2amfDIPInfo,
- Sf2koryu2Init, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2amf7 = {
- "sf2amf7", "sf2ce", NULL, NULL, "1992",
- "Street Fighter II - Champion Edition (Alpha Magic-F bootleg set 7, 920313 etc)\0", NULL, "bootleg", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2amf7RomInfo, Sf2amf7RomName, NULL, NULL, Sf2yycInputInfo, Sf2amfDIPInfo,
- Sf2amfInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2amf8 = {
- "sf2amf8", "sf2ce", NULL, NULL, "1992",
- "Street Fighter II - Champion Edition (Alpha Magic-F bootleg set 8, 920313 etc)\0", NULL, "bootleg", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2amf8RomInfo, Sf2amf8RomName, NULL, NULL, Sf2yycInputInfo, Sf2amfDIPInfo,
- Sf2koryu2Init, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2mega = {
- "sf2mega", "sf2ce", NULL, NULL, "1992",
- "Street Fighter II' - Champion Edition (Mega Co bootleg set 1, 920313 etc)\0", NULL, "Mega Co", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2megaRomInfo, Sf2megaRomName, NULL, NULL, Sf2yycInputInfo, Sf2megaDIPInfo,
- Sf2koryu2Init, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2mega2 = {
- "sf2mega2", "sf2ce", NULL, NULL, "1992",
- "Street Fighter II' - Champion Edition (Mega Co bootleg set 2, 920313 etc)\0", NULL, "Mega Co", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2mega2RomInfo, Sf2mega2RomName, NULL, NULL, Sf2yycInputInfo, Sf2megaDIPInfo,
- Sf2koryu2Init, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2md = {
- "sf2md", "sf2ce", NULL, NULL, "1992",
- "Street Fighter II' - Champion Edition (Magic Delta, bootleg, 920313 etc)\0", NULL, "bootleg", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2mdRomInfo, Sf2mdRomName, NULL, NULL, Sf2ceeablInputInfo, Sf2DIPInfo,
- Sf2ceeablInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2mdt = {
- "sf2mdt", "sf2ce", NULL, NULL, "1992",
- "Street Fighter II' - Magic Delta Turbo (bootleg set 1 (with YM2151 + 2xMSM5205), 920313 etc)\0", NULL, "bootleg", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2mdtRomInfo, Sf2mdtRomName, NULL, NULL, Sf2InputInfo, Sf2DIPInfo,
- Sf2mdtInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2mdta = {
- "sf2mdta", "sf2ce", NULL, NULL, "1992",
- "Street Fighter II' - Magic Delta Turbo (bootleg set 2 (with YM2151 + 2xMSM5205), 920313 etc)\0", NULL, "bootleg", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2mdtaRomInfo, Sf2mdtaRomName, NULL, NULL, Sf2InputInfo, Sf2DIPInfo,
- Sf2mdtaInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2mdtb = {
- "sf2mdtb", "sf2ce", NULL, NULL, "1992",
- "Street Fighter II' - Magic Delta Turbo (bootleg set 3 (with YM2151 + 2xMSM5205), 920313 etc)\0", NULL, "bootleg", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2mdtbRomInfo, Sf2mdtbRomName, NULL, NULL, Sf2InputInfo, Sf2DIPInfo,
- Sf2mdtbInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2mdtc = {
- "sf2mdtc", "sf2ce", NULL, NULL, "1992",
- "Street Fighter II' - Magic Delta Turbo (bootleg set 4 (with YM2151 + 2xMSM5205), 920313 etc)\0", NULL, "Playmark bootleg", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2mdtcRomInfo, Sf2mdtcRomName, NULL, NULL, Sf2InputInfo, Sf2DIPInfo,
- Sf2mdtaInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2ceeabl = {
- "sf2ceeabl", "sf2ce", NULL, NULL, "1992",
- "Street Fighter II' - Champion Edition (920313 etc bootleg set 1)\0", NULL, "bootleg", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2ceeablRomInfo, Sf2ceeablRomName, NULL, NULL, Sf2ceeablInputInfo, Sf2DIPInfo,
- Sf2ceeablInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2ceeab2 = {
- "sf2ceeab2", "sf2ce", NULL, NULL, "1992",
- "Street Fighter II' - Champion Edition (920313 etc bootleg set 2)\0", NULL, "bootleg", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2ceeab2RomInfo, Sf2ceeab2RomName, NULL, NULL, Sf2ceeablInputInfo, Sf2DIPInfo,
- Sf2ceeab2Init, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2ceeab3 = {
- "sf2ceeab3", "sf2ce", NULL, NULL, "1992",
- "Street Fighter II' - Champion Edition (920313 etc bootleg set 3)\0", NULL, "bootleg", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2ceeab3RomInfo, Sf2ceeab3RomName, NULL, NULL, Sf2InputInfo, Sf2DIPInfo,
- Sf2mdtbInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2ceeab4 = {
- "sf2ceeab4", "sf2ce", NULL, NULL, "1992",
- "Street Fighter II' - Champion Edition (920313 etc bootleg set 4)\0", NULL, "bootleg", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2ceeab4RomInfo, Sf2ceeab4RomName, NULL, NULL, Sf2InputInfo, Sf2DIPInfo,
- Sf2mdtbInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2ceeab5 = {
- "sf2ceeab5", "sf2ce", NULL, NULL, "1992",
- "Street Fighter II' - Champion Edition (920313 etc bootleg set 5)\0", NULL, "bootleg", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2ceeab5RomInfo, Sf2ceeab5RomName, NULL, NULL, Sf2InputInfo, Sf2DIPInfo,
- Sf2mdtbInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2cejabl = {
- "sf2cejabl", "sf2ce", NULL, NULL, "1992",
- "Street Fighter II' - Champion Edition (920322 Japan bootleg set 1)\0", NULL, "bootleg", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2cejablRomInfo, Sf2cejablRomName, NULL, NULL, Sf2yycInputInfo, Sf2jDIPInfo,
- Sf2cejablInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2cejab2 = {
- "sf2cejab2", "sf2ce", NULL, NULL, "1992",
- "Street Fighter II' - Champion Edition (920322 Japan bootleg set 2)\0", NULL, "bootleg", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2cejab2RomInfo, Sf2cejab2RomName, NULL, NULL, Sf2yycInputInfo, Sf2jDIPInfo,
- Sf2cejablInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2ceupl = {
- "sf2ceupl", "sf2ce", NULL, NULL, "1992",
- "Street Fighter II' - Champion Edition (UPL bootleg)\0", NULL, "bootleg (UPL)", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2ceuplRomInfo, Sf2ceuplRomName, NULL, NULL, Sf2yycInputInfo, Sf2jDIPInfo,
- Sf2cejablInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2ceuabl = {
- "sf2ceuabl", "sf2ce", NULL, NULL, "1992",
- "Street Fighter II' - Champion Edition (920313 USA bootleg set 1)\0", NULL, "bootleg", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2ceuablRomInfo, Sf2ceuablRomName, NULL, NULL, Sf2ceuablInputInfo, Sf2DIPInfo,
- Sf2ceuablInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2ceuab2 = {
- "sf2ceuab2", "sf2ce", NULL, NULL, "1992",
- "Street Fighter II' - Champion Edition (920313 USA bootleg set 2)\0", NULL, "bootleg", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2ceuab2RomInfo, Sf2ceuab2RomName, NULL, NULL, Sf2ceuablInputInfo, Sf2DIPInfo,
- Sf2ceuab2Init, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2ceuab3 = {
- "sf2ceuab3", "sf2ce", NULL, NULL, "1992",
- "Street Fighter II' - Champion Edition (920313 USA bootleg set 3)\0", NULL, "bootleg", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2ceuab3RomInfo, Sf2ceuab3RomName, NULL, NULL, Sf2ceuablInputInfo, Sf2DIPInfo,
- Sf2ceuab3Init, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2ceuab4 = {
- "sf2ceuab4", "sf2ce", NULL, NULL, "1992",
- "Street Fighter II' - Champion Edition (920313 USA bootleg set 4)\0", NULL, "bootleg", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2ceuab4RomInfo, Sf2ceuab4RomName, NULL, NULL, Sf2ceuablInputInfo, Sf2DIPInfo,
- Sf2ceuab4Init, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2ceuab5 = {
- "sf2ceuab5", "sf2ce", NULL, NULL, "1992",
- "Street Fighter II' - Champion Edition (920313 USA bootleg set 5)\0", NULL, "bootleg", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2ceuab5RomInfo, Sf2ceuab5RomName, NULL, NULL, Sf2ceuablInputInfo, Sf2DIPInfo,
- Sf2ceuablInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2ceuab6 = {
- "sf2ceuab6", "sf2ce", NULL, NULL, "1992",
- "Street Fighter II' - Champion Edition (920313 USA bootleg set 6)\0", NULL, "bootleg", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2ceuab6RomInfo, Sf2ceuab6RomName, NULL, NULL, Sf2InputInfo, Sf2DIPInfo,
- Sf2ceuab6Init, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2ceuab7 = {
- "sf2ceuab7", "sf2ce", NULL, NULL, "1992",
- "Street Fighter II' - Champion Edition (920313 USA bootleg set 7)\0", NULL, "bootleg", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2ceuab7RomInfo, Sf2ceuab7RomName, NULL, NULL, Sf2InputInfo, Sf2DIPInfo,
- Sf2ceuab7Init, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriverD BurnDrvCpsSf2ceuab8 = {
- "sf2ceuab8", "sf2ce", NULL, NULL, "1992",
- "Street Fighter II' - Champion Edition (920313 USA bootleg set 8)\0", NULL, "bootleg", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2ceuab8RomInfo, Sf2ceuab8RomName, NULL, NULL, Sf2yycInputInfo, Sf2DIPInfo,
- Sf2ceuab8Init, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriverD BurnDrvCpsSf2ceuab9 = {
- "sf2ceuab9", "sf2ce", NULL, NULL, "1992",
- "Street Fighter II' - Champion Edition (920313 USA bootleg set 9)\0", NULL, "bootleg", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2ceuab9RomInfo, Sf2ceuab9RomName, NULL, NULL, Sf2yycInputInfo, Sf2DIPInfo,
- Sf2ceuab9Init, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2ceucbl = {
- "sf2ceucbl", "sf2ce", NULL, NULL, "1992",
- "Street Fighter II' - Champion Edition (920803 USA bootleg)\0", NULL, "bootleg", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2ceucblRomInfo, Sf2ceucblRomName, NULL, NULL, Sf2InputInfo, Sf2DIPInfo,
- Sf2ceucblInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2tlona = {
- "sf2tlona", "sf2ce", NULL, NULL, "1992",
- "Street Fighter II' - Champion Edition (Tu Long bootleg set 1, 811102 001)\0", NULL, "bootleg", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2tlonaRomInfo, Sf2tlonaRomName, NULL, NULL, Sf2yycInputInfo, Sf2DIPInfo,
- Sf2koryu2Init, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2tlonb = {
- "sf2tlonb", "sf2ce", NULL, NULL, "1992",
- "Street Fighter II' - Champion Edition (Tu Long bootleg set 2, 811102 001)\0", NULL, "bootleg", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2tlonbRomInfo, Sf2tlonbRomName, NULL, NULL, Sf2yycInputInfo, Sf2DIPInfo,
- Sf2koryu2Init, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2tlonc = {
- "sf2tlonc", "sf2ce", NULL, NULL, "1992",
- "Street Fighter II' - Champion Edition (Tu Long bootleg set 3, 811102 001)\0", NULL, "bootleg", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2tloncRomInfo, Sf2tloncRomName, NULL, NULL, Sf2yycInputInfo, Sf2DIPInfo,
- Sf2koryu2Init, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2cebltw = {
- "sf2cebltw", "sf2ce", NULL, NULL, "1992",
- "Street Fighter II' - Champion Edition (920313 'Taiwan' bootleg with PAL)\0", NULL, "bootleg", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2cebltwRomInfo, Sf2cebltwRomName, NULL, NULL, Sf2InputInfo, Sf2DIPInfo,
- Sf2ceInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSf2sl73a = {
- "sf2sl73a", "sf2ce", NULL, NULL, "2013",
- "Street Fighter II' - Champion Edition (Sheng Long v 7.3a)\0", NULL, "Drakon", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_HACK, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2sl73aRomInfo, Sf2sl73aRomName, NULL, NULL, Sf2InputInfo, Sf2DIPInfo,
- Sf2ceInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSfzch = {
- "sfzch", NULL, NULL, NULL, "1995",
- "Street Fighter Zero (CPS Changer, 951020 Japan)\0", NULL, "Capcom", "CPS Changer",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_CAPCOM_CPSCHANGER, GBF_VSFIGHT, FBF_SF,
- NULL, SfzchRomInfo, SfzchRomName, NULL, NULL, SfzchInputInfo, NULL,
- SfzchInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSlammast = {
- "slammast", NULL, NULL, NULL, "1993",
- "Saturday Night Slam Masters (Slam Masters 930713 etc)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 4, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, 0,
- NULL, SlammastRomInfo, SlammastRomName, NULL, NULL, SlammastInputInfo, SlammastDIPInfo,
- TwelveMhzInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSlammastu = {
- "slammastu", "slammast", NULL, NULL, "1993",
- "Saturday Night Slam Masters (slam masters 930713 USA)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 4, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, 0,
- NULL, SlammastuRomInfo, SlammastuRomName, NULL, NULL, SlammastInputInfo, SlammastDIPInfo,
- TwelveMhzInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsMbomberj = {
- "mbomberj", "slammast", NULL, NULL, "1993",
- "Muscle Bomber - the body explosion (930713 Japan)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 4, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, 0,
- NULL, MbomberjRomInfo, MbomberjRomName, NULL, NULL, SlammastInputInfo, SlammastDIPInfo,
- TwelveMhzInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsMbombrd = {
- "mbombrd", NULL, NULL, NULL, "1993",
- "Muscle Bomber Duo - ultimate team battle (931206 etc)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 4, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, 0,
- NULL, MbombrdRomInfo, MbombrdRomName, NULL, NULL, SlammastInputInfo, SlammastDIPInfo,
- TwelveMhzInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsMbombrdj = {
- "mbombrdj", "mbombrd", NULL, NULL, "1993",
- "Muscle Bomber Duo - heat up warriors (931206 Japan)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 4, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, 0,
- NULL, MbombrdjRomInfo, MbombrdjRomName, NULL, NULL, SlammastInputInfo, SlammastDIPInfo,
- TwelveMhzInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSlampic = {
- "slampic", "slammast", NULL, NULL, "1993",
- "Saturday Night Slam Masters (bootleg (with PIC16c57), 930713 etc)\0", "No Sound", "bootleg", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 4, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, 0,
- NULL, SlampicRomInfo, SlampicRomName, NULL, NULL, SlammastInputInfo, SlammastDIPInfo,
- SlampicInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsStrider = {
- "strider", NULL, NULL, NULL, "1989",
- "Strider (US set 1)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_CAPCOM_CPS1, GBF_PLATFORM, 0,
- NULL, StriderRomInfo, StriderRomName, NULL, NULL, StriderInputInfo, StriderDIPInfo,
- StriderInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsStriderua = {
- "striderua", "strider", NULL, NULL, "1989",
- "Strider (US set 2)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE,2,HARDWARE_CAPCOM_CPS1, GBF_PLATFORM, 0,
- NULL, StrideruaRomInfo, StrideruaRomName, NULL, NULL, StriderInputInfo, StrideruaDIPInfo,
- StriderInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsStrideruc = {
- "strideruc", "strider", NULL, NULL, "1989",
- "Strider (US, Street Fighter II conversion)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE,2,HARDWARE_CAPCOM_CPS1, GBF_PLATFORM, 0,
- NULL, StriderucRomInfo, StriderucRomName, NULL, NULL, StriderInputInfo, StrideruaDIPInfo,
- StriderInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsStriderjr = {
- "striderjr", "strider", NULL, NULL, "1989",
- "Strider Hiryu (Japan Resale Ver.)\0", NULL, "Capcom", "CPS1",
- L"\u30B9\u30C8\u30E9\u30A4\u30C0\u30FC\u98DB\u7ADC\0Strider Hiryu (Japan Resale Ver.)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS1, GBF_PLATFORM, 0,
- NULL, StriderjrRomInfo, StriderjrRomName, NULL, NULL, StriderInputInfo, StriderDIPInfo,
- StriderjrInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsStriderj = {
- "striderj", "strider", NULL, NULL, "1989",
- "Strider Hiryu (Japan)\0", NULL, "Capcom", "CPS1",
- L"\u30B9\u30C8\u30E9\u30A4\u30C0\u30FC\u98DB\u7ADC\0Strider Hiryu (Japan)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS1, GBF_PLATFORM, 0,
- NULL, StriderjRomInfo, StriderjRomName, NULL, NULL, StriderInputInfo, StriderDIPInfo,
- StriderjInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsUnsquad = {
- "unsquad", NULL, NULL, NULL, "1989",
- "U.N. Squadron (US)\0", NULL, "Daipro / Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_CAPCOM_CPS1, GBF_HORSHOOT, 0,
- NULL, UnsquadRomInfo, UnsquadRomName, NULL, NULL, UnsquadInputInfo, UnsquadDIPInfo,
- DrvInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsArea88 = {
- "area88", "unsquad", NULL, NULL, "1989",
- "Area 88 (Japan)\0", NULL, "Daipro / Capcom", "CPS1",
- L"\u30A8\u30EA\u30A2\uFF18\uFF18\0Area 88 (Japan)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS1, GBF_HORSHOOT, 0,
- NULL, Area88RomInfo, Area88RomName, NULL, NULL, UnsquadInputInfo, UnsquadDIPInfo,
- DrvInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsArea88r = {
- "area88r", "unsquad", NULL, NULL, "1989",
- "Area 88 (Japan Resale ver.)\0", NULL, "Daipro / Capcom", "CPS1",
- L"\u30A8\u30EA\u30A2\uFF18\uFF18\0Area 88 (Japan Resale ver.)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS1, GBF_HORSHOOT, 0,
- NULL, Area88rRomInfo, Area88rRomName, NULL, NULL, UnsquadInputInfo, UnsquadDIPInfo,
- TwelveMhzInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsVarth = {
- "varth", NULL, NULL, NULL, "1992",
- "Varth - operation thunderstorm (920714 etc)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL, 2, HARDWARE_CAPCOM_CPS1, GBF_VERSHOOT, 0,
- NULL, VarthRomInfo, VarthRomName, NULL, NULL, VarthInputInfo, VarthDIPInfo,
- TwelveMhzInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 224, 384, 3, 4
-};
-
-struct BurnDriver BurnDrvCpsVarthr1 = {
- "varthr1", "varth", NULL, NULL, "1992",
- "Varth - operation thunderstorm (920612 etc)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL, 2, HARDWARE_CAPCOM_CPS1, GBF_VERSHOOT, 0,
- NULL, Varthr1RomInfo, Varthr1RomName, NULL, NULL, VarthInputInfo, VarthDIPInfo,
- TwelveMhzInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 224, 384, 3, 4
-};
-
-struct BurnDriver BurnDrvCpsVarthj = {
- "varthj", "varth", NULL, NULL, "1992",
- "Varth - operation thunderstorm (920714 Japan)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL, 2 ,HARDWARE_CAPCOM_CPS1, GBF_VERSHOOT, 0,
- NULL, VarthjRomInfo, VarthjRomName, NULL, NULL, VarthInputInfo, VarthDIPInfo,
- TwelveMhzInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 224, 384, 3, 4
-};
-
-struct BurnDriver BurnDrvCpsVarthjr = {
- "varthjr", "varth", NULL, NULL, "1992",
- "Varth - operation thunderstorm (920714 Japan Resale Ver.)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL, 2 ,HARDWARE_CAPCOM_CPS1, GBF_VERSHOOT, 0,
- NULL, VarthjrRomInfo, VarthjrRomName, NULL, NULL, VarthInputInfo, VarthDIPInfo,
- TwelveMhzInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 224, 384, 3, 4
-};
-
-struct BurnDriver BurnDrvCpsVarthu = {
- "varthu", "varth", NULL, NULL, "1992",
- "Varth - operation thunderstorm (920612 USA)\0", NULL, "Capcom (Romstar license)", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL, 2, HARDWARE_CAPCOM_CPS1, GBF_VERSHOOT, 0,
- NULL, VarthuRomInfo, VarthuRomName, NULL, NULL, VarthInputInfo, VarthDIPInfo,
- TwelveMhzInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 224, 384, 3, 4
-};
-
-struct BurnDriver BurnDrvCpsVarthb = {
- "varthb", "varth", NULL, NULL, "1992",
- "Varth - operation thunderstorm (bootleg, 920612 etc)\0", NULL, "bootleg", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS1, GBF_VERSHOOT, 0,
- NULL, VarthbRomInfo, VarthbRomName, NULL, NULL, VarthInputInfo, VarthDIPInfo,
- VarthbInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 224, 384, 3, 4
-};
-
-struct BurnDriver BurnDrvCpsWillow = {
- "willow", NULL, NULL, NULL, "1989",
- "Willow (World)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_CAPCOM_CPS1, GBF_PLATFORM, 0,
- NULL, WillowRomInfo, WillowRomName, NULL, NULL, WillowInputInfo, WillowDIPInfo,
- DrvInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsWillowu = {
- "willowu", "willow", NULL, NULL, "1989",
- "Willow (USA)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS1, GBF_PLATFORM, 0,
- NULL, WillowuRomInfo, WillowuRomName, NULL, NULL, WillowInputInfo, WillowDIPInfo,
- DrvInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsWillowuo = {
- "willowuo", "willow", NULL, NULL, "1989",
- "Willow (USA Old Ver.)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS1, GBF_PLATFORM, 0,
- NULL, WillowuoRomInfo, WillowuoRomName, NULL, NULL, WillowInputInfo, WillowDIPInfo,
- DrvInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsWillowj = {
- "willowj", "willow", NULL, NULL, "1989",
- "Willow (Japan, Japanese)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS1, GBF_PLATFORM, 0,
- NULL, WillowjRomInfo, WillowjRomName, NULL, NULL, WillowInputInfo, WillowDIPInfo,
- DrvInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsWof = {
- "wof", NULL, NULL, NULL, "1992",
- "Warriors of Fate (921031 etc)\0", NULL, "Capcom", "CPS1 / QSound",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 3, HARDWARE_CAPCOM_CPS1_QSOUND, GBF_SCRFIGHT, 0,
- NULL, WofRomInfo, WofRomName, NULL, NULL, WofInputInfo, WofDIPInfo,
- TwelveMhzInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsWofr1 = {
- "wofr1", "wof", NULL, NULL, "1992",
- "Warriors of Fate (921002 etc)\0", NULL, "Capcom", "CPS1 / QSound",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 3, HARDWARE_CAPCOM_CPS1_QSOUND, GBF_SCRFIGHT, 0,
- NULL, Wofr1RomInfo, Wofr1RomName, NULL, NULL, WofInputInfo, WofDIPInfo,
- TwelveMhzInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsWofu = {
- "wofu", "wof", NULL, NULL, "1992",
- "Warriors of Fate (921031 USA)\0", NULL, "Capcom", "CPS1 / QSound",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 3, HARDWARE_CAPCOM_CPS1_QSOUND, GBF_SCRFIGHT, 0,
- NULL, WofuRomInfo, WofuRomName, NULL, NULL, WofInputInfo, WofDIPInfo,
- TwelveMhzInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsWofj = {
- "wofj", "wof", NULL, NULL, "1992",
- "Tenchi wo Kurau II - Sekiheki no Tatakai (921031 Japan)\0", NULL, "Capcom", "CPS1 / QSound",
- L"\u5929\u5730\u3092\u55B0\u3089\u3046 II - \u8D64\u58C1\u306E\u6226\u3044\0Tenchi wo Kurau II - Sekiheki no Tatakai (921031 Japan)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 3, HARDWARE_CAPCOM_CPS1_QSOUND, GBF_SCRFIGHT, 0,
- NULL, WofjRomInfo, WofjRomName, NULL, NULL, WofInputInfo, WofDIPInfo,
- TwelveMhzInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsWofa = {
- "wofa", "wof", NULL, NULL, "1992",
- "Sangokushi II (921005 Asia)\0", NULL, "Capcom", "CPS1 / QSound",
- L"\u4E09\u56FD\u5FD7 II\0Sangokushi II (921005 Asia)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 3, HARDWARE_CAPCOM_CPS1_QSOUND, GBF_SCRFIGHT, 0,
- NULL, WofaRomInfo, WofaRomName, NULL, NULL, WofInputInfo, WofDIPInfo,
- TwelveMhzInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsWofch = {
- "wofch", NULL, NULL, NULL, "1992",
- "Tenchi wo Kurau II - Sekiheki no Tatakai (CPS Changer, 921031 Japan)\0", NULL, "Capcom", "CPS Changer",
- L"\u5929\u5730\u3092\u55B0\u3089\u3046 II - \u8D64\u58C1\u306E\u6226\u3044\0Tenchi wo Kurau II - Sekiheki no Tatakai (CPS Changer, 921031 Japan)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING, 3, HARDWARE_CAPCOM_CPSCHANGER, GBF_SCRFIGHT, 0,
- NULL, WofchRomInfo, WofchRomName, NULL, NULL, WofchInputInfo, NULL,
- WofchInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsWofchdx = {
- "wofchdx", "wofch", NULL, NULL, "2010",
- "Sangokushi III Gaiden: Kakou-On's Revenge DX (hack)\0", NULL, "Capcom", "CPS Changer",
- L"\u4E09\u56FD\u5FD7 III \u5916\u4F20: \u590F\u4FAF\u6069\u7684\u590D\u4EC7\0Sangokushi III Gaiden: Kakou-On's Revenge DX (hack)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 3, HARDWARE_CAPCOM_CPSCHANGER, GBF_SCRFIGHT, 0,
- NULL, WofchdxRomInfo, WofchdxRomName, NULL, NULL, WofInputInfo, NULL,
- WofchInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsWofhfh = {
- "wofhfh", "wof", NULL, NULL, "1992",
- "Sangokushi II: Huo Fenghuang (Chinese bootleg, 921005 Asia)\0", NULL, "bootleg", "CPS1",
- L"\u4E09\u56FD\u5FD7 II: \u706B\u9CF3\u51F0\0Sangokushi II: Huo Feng Huang (Chinese bootleg, 921005 Asia)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 3, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
- NULL, WofhfhRomInfo, WofhfhRomName, NULL, NULL, WofhfhInputInfo, WofhfhDIPInfo,
- TwelveMhzInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsWofh = {
- "wofh", "wof", NULL, NULL, "1992",
- "Sangokushi II: Sanguo Yingxiong Zhuan (Chinese bootleg set 1, 921005 Asia)\0", NULL, "bootleg", "CPS1",
- L"\u4E09\u56FD\u5FD7 II: \u4E09\u570B\u82F1\u96C4\u50B3\0Sangokushi II: Sanguo YingXiongZhuan (Chinese bootleg set 1, 921005 Asia)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 3, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
- NULL, WofhRomInfo, WofhRomName, NULL, NULL, WofhInputInfo, WofhDIPInfo,
- WofhInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsWofha = {
- "wofha", "wof", NULL, NULL, "1992",
- "Sangokushi II: Sanguo Yingxiong Zhuan (Chinese bootleg set 2, 921005 Asia)\0", NULL, "bootleg", "CPS1",
- L"\u4E09\u56FD\u5FD7 II: \u4E09\u570B\u82F1\u96C4\u50B3\0Sangokushi II: Sanguo YingXiongZhuan (Chinese bootleg set 2, 921005 Asia)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 3, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
- NULL, WofhaRomInfo, WofhaRomName, NULL, NULL, WofhInputInfo, WofhDIPInfo,
- WofhInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSgyxz = {
- "sgyxz", "wof", NULL, NULL, "1992",
- "Sangokushi II: Sanguo Yingxiong Zhuan (Chinese bootleg set 3, 921005 Asia)\0", NULL, "bootleg", "CPS1",
- L"\u4E09\u56FD\u5FD7 II: \u4E09\u570B\u82F1\u96C4\u50B3\0Sangokushi II: Sanguo YingXiongZhuan (Chinese bootleg set 3, 921005 Asia)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 3, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
- NULL, SgyxzRomInfo, SgyxzRomName, NULL, NULL, WofhInputInfo, WofhDIPInfo,
- SgyxzInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsWof3js = {
- "wof3js", "wof", NULL, NULL, "1992",
- "Sangokushi II: San Jian Sheng (Chinese bootleg set 1, 921005 Asia)\0", NULL, "bootleg", "CPS1",
- L"\u4E09\u56FD\u5FD7 II: \u4E09\u528D\u8056\0Sangokushi II: San Jian Sheng (Chinese bootleg set 1, 921005 Asia)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 3, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
- NULL, Wof3jsRomInfo, Wof3jsRomName, NULL, NULL, Wof3jsInputInfo, Wof3jsDIPInfo,
- Wof3jsInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsWof3jsa = {
- "wof3jsa", "wof", NULL, NULL, "1992",
- "Sangokushi II: San Jian Sheng (Chinese bootleg set 2, 921005 Asia)\0", NULL, "bootleg", "CPS1",
- L"\u4E09\u56FD\u5FD7 II: \u4E09\u528D\u8056\0Sangokushi II: San Jian Sheng (Chinese bootleg set 2, 921005 Asia)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 3, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
- NULL, Wof3jsaRomInfo, Wof3jsaRomName, NULL, NULL, Wof3jsInputInfo, Wof3jsaDIPInfo,
- Wof3jsaInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsWof3sj = {
- "wof3sj", "wof", NULL, NULL, "1992",
- "Sangokushi II: San Sheng Jian (Chinese bootleg set 1, 921005 Asia)\0", NULL, "bootleg", "CPS1",
- L"\u4E09\u56FD\u5FD7 II: \u4E09\u5723\u5251\0Sangokushi II: San Sheng Jian (Chinese bootleg set 1, 921005 Asia)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 3, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
- NULL, Wof3sjRomInfo, Wof3sjRomName, NULL, NULL, WofhInputInfo, Wof3sjDIPInfo,
- Wof3sjInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsWof3sja = {
- "wof3sja", "wof", NULL, NULL, "1992",
- "Sangokushi II: San Sheng Jian (Chinese bootleg set 2, 921005 Asia)\0", NULL, "bootleg", "CPS1",
- L"\u4E09\u56FD\u5FD7 II: \u4E09\u5723\u5251\0Sangokushi II: San Sheng Jian (Chinese bootleg set 2, 921005 Asia)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 3, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
- NULL, Wof3sjaRomInfo, Wof3sjaRomName, NULL, NULL, WofhInputInfo, Wof3sjDIPInfo,
- Wof3sjInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsWofsj = {
- "wofsj", "wof", NULL, NULL, "1992",
- "Sangokushi II: Sheng Jian Sanguo (Chinese bootleg set 1, 921005 Asia)\0", "Imperfect Graphics", "bootleg", "CPS1",
- L"\u4E09\u56FD\u5FD7 II: \u5723\u5251\u4E09\0Sangokushi II: Sheng Jian Sanguo (Chinese bootleg set 1, 921005 Asia)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 3, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
- NULL, WofsjRomInfo, WofsjRomName, NULL, NULL, WofhInputInfo, Wof3sjDIPInfo,
- WofsjInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsWofsja = {
- "wofsja", "wof", NULL, NULL, "1992",
- "Sangokushi II: Sheng Jian Sanguo (Chinese bootleg set 2, 921005 Asia)\0", "Imperfect Graphics", "bootleg", "CPS1",
- L"\u4E09\u56FD\u5FD7 II: \u5723\u5251\u4E09\0Sangokushi II: Sheng Jian Sanguo (Chinese bootleg set 2, 921005 Asia)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 3, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
- NULL, WofsjaRomInfo, WofsjaRomName, NULL, NULL, WofhInputInfo, Wof3sjDIPInfo,
- WofsjInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsWofsjb = {
- "wofsjb", "wof", NULL, NULL, "1992",
- "Sangokushi II: Sheng Jian Sanguo (Chinese bootleg set 3, 921005 Asia)\0", "No sound", "bootleg", "CPS1",
- L"\u4E09\u56FD\u5FD7 II: \u5723\u5251\u4E09\0Sangokushi II: Sheng Jian Sanguo (Chinese bootleg set 3, 921005 Asia)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 3, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
- NULL, WofsjbRomInfo, WofsjbRomName, NULL, NULL, WofsjbInputInfo, NULL,
- WofsjbInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsWofsjc = {
- "wofsjc", "wof", NULL, NULL, "1992",
- "Sangokushi II: Sheng Jian Sanguo (Chinese bootleg set 4, 921005 Asia)\0", "Imperfect graphics", "bootleg", "CPS1",
- L"\u4E09\u56FD\u5FD7 II: \u5723\u5251\u4E09\0Sangokushi II: Sheng Jian Sanguo (Chinese bootleg set 4, 921005 Asia)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 3, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
- NULL, WofsjcRomInfo, WofsjcRomName, NULL, NULL, WofhInputInfo, Wof3sjDIPInfo,
- WofsjInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsWofb = {
- "wofb", "wof", NULL, NULL, "1992",
- "Warriors of Fate (bootleg, 921002 etc)\0", NULL, "bootleg", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 3, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
- NULL, WofbRomInfo, WofbRomName, NULL, NULL, WofInputInfo, WofDIPInfo,
- WofbInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsWofjh = {
- "wofjh", "wof", NULL, NULL, "1992",
- "Tenchi wo Kurau II - Sekiheki no Tatakai (hack, 921031 Japan)\0", NULL, "hack", "CPS1 / QSound",
- L"\u5929\u5730\u3092\u55B0\u3089\u3046 II - \u8D64\u58C1\u306E\u6226\u3044\0Tenchi wo Kurau II - Sekiheki no Tatakai (hack, 921031 Japan)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_HACK, 3, HARDWARE_CAPCOM_CPS1_QSOUND, GBF_SCRFIGHT, 0,
- NULL, WofjhRomInfo, WofjhRomName, NULL, NULL, WofInputInfo, WofDIPInfo,
- TwelveMhzInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsWofah = {
- "wofah", "wof", NULL, NULL, "1992",
- "Sangokushi II (hack set 1, 921005 Asia)\0", NULL, "hack", "CPS1 / QSound",
- L"\u4E09\u56FD\u5FD7 II\0Sangokushi II (hack set 1, 921005 Asia)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_HACK, 3, HARDWARE_CAPCOM_CPS1_QSOUND, GBF_SCRFIGHT, 0,
- NULL, WofahRomInfo, WofahRomName, NULL, NULL, WofInputInfo, WofDIPInfo,
- TwelveMhzInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsWofaha = {
- "wofaha", "wof", NULL, NULL, "1992",
- "Sangokushi II (hack set 2, 921005 Asia)\0", NULL, "hack", "CPS1 / QSound",
- L"\u4E09\u56FD\u5FD7 II\0Sangokushi II (hack set 2, 921005 Asia)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_HACK, 3, HARDWARE_CAPCOM_CPS1_QSOUND, GBF_SCRFIGHT, 0,
- NULL, WofahaRomInfo, WofahaRomName, NULL, NULL, WofInputInfo, WofDIPInfo,
- TwelveMhzInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsWofahb = {
- "wofahb", "wof", NULL, NULL, "1992",
- "Sangokushi II (hack set 3, 921005 Asia)\0", NULL, "hack", "CPS1 / QSound",
- L"\u4E09\u56FD\u5FD7 II\0Sangokushi II (hack set 3, 921005 Asia)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_HACK, 3, HARDWARE_CAPCOM_CPS1_QSOUND, GBF_SCRFIGHT, 0,
- NULL, WofahbRomInfo, WofahbRomName, NULL, NULL, WofInputInfo, WofDIPInfo,
- TwelveMhzInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsCps1frog = {
- "cps1frog", NULL, NULL, NULL, "2006",
- "Frog Feast (CPS-1)\0", NULL, "Rastersoft (Homebrew)", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_HOMEBREW, 2, HARDWARE_CAPCOM_CPS1, GBF_MISC, 0,
- NULL, Cps1frogRomInfo, Cps1frogRomName, NULL, NULL, FfightInputInfo, FfightDIPInfo,
- Cps1demoInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-// Not included games
-
-// Pnickies (USA)
-// Seems like a region hack
-static struct BurnRomInfo PnickuRomDesc[] = {
- { "pnij36.bin", 0x020000, 0x2d4ffb2b, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "pniu42.bin", 0x020000, 0x22d20227, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
-
- { "pnij09.bin", 0x020000, 0x48177b0a, BRF_GRA | CPS1_TILES },
- { "pnij01.bin", 0x020000, 0x01a0f311, BRF_GRA | CPS1_TILES },
- { "pnij13.bin", 0x020000, 0x406451b0, BRF_GRA | CPS1_TILES },
- { "pnij05.bin", 0x020000, 0x8c515dc0, BRF_GRA | CPS1_TILES },
- { "pnij26.bin", 0x020000, 0xe2af981e, BRF_GRA | CPS1_TILES },
- { "pnij18.bin", 0x020000, 0xf17a0e56, BRF_GRA | CPS1_TILES },
- { "pnij38.bin", 0x020000, 0xeb75bd8c, BRF_GRA | CPS1_TILES },
- { "pnij32.bin", 0x020000, 0x84560bef, BRF_GRA | CPS1_TILES },
- { "pnij10.bin", 0x020000, 0xc2acc171, BRF_GRA | CPS1_TILES },
- { "pnij02.bin", 0x020000, 0x0e21fc33, BRF_GRA | CPS1_TILES },
- { "pnij14.bin", 0x020000, 0x7fe59b19, BRF_GRA | CPS1_TILES },
- { "pnij06.bin", 0x020000, 0x79f4bfe3, BRF_GRA | CPS1_TILES },
- { "pnij27.bin", 0x020000, 0x83d5cb0e, BRF_GRA | CPS1_TILES },
- { "pnij19.bin", 0x020000, 0xaf08b230, BRF_GRA | CPS1_TILES },
- { "pnij39.bin", 0x020000, 0x70fbe579, BRF_GRA | CPS1_TILES },
- { "pnij33.bin", 0x020000, 0x3ed2c680, BRF_GRA | CPS1_TILES },
-
- { "pnij17.bin", 0x010000, 0xe86f787a, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "pnij24.bin", 0x020000, 0x5092257d, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "pnij25.bin", 0x020000, 0x22109aaa, BRF_SND | CPS1_OKIM6295_SAMPLES },
-};
-
-STD_ROM_PICK(Pnicku)
-STD_ROM_FN(Pnicku)
-
-struct BurnDriverX BurnDrvCpsPnicku = {
- "pnicku", "pnickj", NULL, NULL, "1994",
- "Pnickies (940608 USA)\0", NULL, "Compile (Capcom license)", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_HACK, 2, HARDWARE_CAPCOM_CPS1, GBF_PUZZLE, 0,
- NULL, PnickuRomInfo, PnickuRomName, NULL, NULL, PnickjInputInfo, PnickjDIPInfo,
- TwelveMhzInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-// Saturday Night Slam Masters (Asia)
-// Seems to be just a region hack
-
-static struct BurnRomInfo SlammasaRomDesc[] = {
- { "mba_23e.rom", 0x080000, 0x027e49db, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "mbe_24b.rom", 0x020000, 0x95d5e729, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "mbe_28b.rom", 0x020000, 0xb1c7cbcb, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "mbe_25b.rom", 0x020000, 0xa50d3fd4, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "mbe_29b.rom", 0x020000, 0x08e32e56, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "mbe_21a.rom", 0x080000, 0xd5007b05, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "mbe_20a.rom", 0x080000, 0xaeb557b0, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "mb_gfx01.rom", 0x080000, 0x41468e06, BRF_GRA | CPS1_TILES },
- { "mb_gfx03.rom", 0x080000, 0xf453aa9e, BRF_GRA | CPS1_TILES },
- { "mb_gfx02.rom", 0x080000, 0x2ffbfea8, BRF_GRA | CPS1_TILES },
- { "mb_gfx04.rom", 0x080000, 0x1eb9841d, BRF_GRA | CPS1_TILES },
- { "mb_05.bin", 0x080000, 0x506b9dc9, BRF_GRA | CPS1_TILES },
- { "mb_07.bin", 0x080000, 0xaff8c2fb, BRF_GRA | CPS1_TILES },
- { "mb_06.bin", 0x080000, 0xb76c70e9, BRF_GRA | CPS1_TILES },
- { "mb_08.bin", 0x080000, 0xe60c9556, BRF_GRA | CPS1_TILES },
- { "mb_10.bin", 0x080000, 0x97976ff5, BRF_GRA | CPS1_TILES },
- { "mb_12.bin", 0x080000, 0xb350a840, BRF_GRA | CPS1_TILES },
- { "mb_11.bin", 0x080000, 0x8fb94743, BRF_GRA | CPS1_TILES },
- { "mb_13.bin", 0x080000, 0xda810d5f, BRF_GRA | CPS1_TILES },
-
- { "mb_qa.rom", 0x020000, 0xe21a03c4, BRF_ESS | BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "mb_q1.bin", 0x080000, 0x0630c3ce, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "mb_q2.bin", 0x080000, 0x354f9c21, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "mb_q3.bin", 0x080000, 0x7838487c, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "mb_q4.bin", 0x080000, 0xab66e087, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "mb_q5.bin", 0x080000, 0xc789fef2, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "mb_q6.bin", 0x080000, 0xecb81b61, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "mb_q7.bin", 0x080000, 0x041e49ba, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "mb_q8.bin", 0x080000, 0x59fe702a, BRF_SND | CPS1_QSOUND_SAMPLES },
-};
-
-STD_ROM_PICK(Slammasa)
-STD_ROM_FN(Slammasa)
-
-struct BurnDriverX BurnDrvCpsSlammasa = {
- "slammasa", "slammast", NULL, NULL, "1993",
- "Saturday Night Slam Masters (Slam Masters 930301 Asia)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_HACK, 4, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, 0,
- NULL, SlammasaRomInfo, SlammasaRomName, NULL, NULL, SlammastInputInfo, SlammastDIPInfo,
- TwelveMhzInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-// Saturday Night Slam Masters (Hispanic)
-// Seems to be just a region hack
-static struct BurnRomInfo SlammashRomDesc[] = {
- { "mbh_23e.rom", 0x080000, 0xb0220f4a, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "mbe_24b.rom", 0x020000, 0x95d5e729, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "mbe_28b.rom", 0x020000, 0xb1c7cbcb, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "mbe_25b.rom", 0x020000, 0xa50d3fd4, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "mbe_29b.rom", 0x020000, 0x08e32e56, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "mbe_21a.rom", 0x080000, 0xd5007b05, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "mbe_20a.rom", 0x080000, 0xaeb557b0, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "mb_gfx01.rom", 0x080000, 0x41468e06, BRF_GRA | CPS1_TILES },
- { "mb_gfx03.rom", 0x080000, 0xf453aa9e, BRF_GRA | CPS1_TILES },
- { "mb_gfx02.rom", 0x080000, 0x2ffbfea8, BRF_GRA | CPS1_TILES },
- { "mb_gfx04.rom", 0x080000, 0x1eb9841d, BRF_GRA | CPS1_TILES },
- { "mb_05.bin", 0x080000, 0x506b9dc9, BRF_GRA | CPS1_TILES },
- { "mb_07.bin", 0x080000, 0xaff8c2fb, BRF_GRA | CPS1_TILES },
- { "mb_06.bin", 0x080000, 0xb76c70e9, BRF_GRA | CPS1_TILES },
- { "mb_08.bin", 0x080000, 0xe60c9556, BRF_GRA | CPS1_TILES },
- { "mb_10.bin", 0x080000, 0x97976ff5, BRF_GRA | CPS1_TILES },
- { "mb_12.bin", 0x080000, 0xb350a840, BRF_GRA | CPS1_TILES },
- { "mb_11.bin", 0x080000, 0x8fb94743, BRF_GRA | CPS1_TILES },
- { "mb_13.bin", 0x080000, 0xda810d5f, BRF_GRA | CPS1_TILES },
-
- { "mb_qa.rom", 0x020000, 0xe21a03c4, BRF_ESS | BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "mb_q1.bin", 0x080000, 0x0630c3ce, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "mb_q2.bin", 0x080000, 0x354f9c21, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "mb_q3.bin", 0x080000, 0x7838487c, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "mb_q4.bin", 0x080000, 0xab66e087, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "mb_q5.bin", 0x080000, 0xc789fef2, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "mb_q6.bin", 0x080000, 0xecb81b61, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "mb_q7.bin", 0x080000, 0x041e49ba, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "mb_q8.bin", 0x080000, 0x59fe702a, BRF_SND | CPS1_QSOUND_SAMPLES },
-};
-
-STD_ROM_PICK(Slammash)
-STD_ROM_FN(Slammash)
-
-struct BurnDriverX BurnDrvCpsSlammash = {
- "slammash", "slammast", NULL, NULL, "1993",
- "Saturday Night Slam Masters (Slam Masters 930713 Hispanic)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_HACK, 4, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, 0,
- NULL, SlammashRomInfo, SlammashRomName, NULL, NULL, SlammastInputInfo, SlammastDIPInfo,
- TwelveMhzInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-// Muscle Bomber Duo (Japan E)
-// Seems to be just a region hack
-static struct BurnRomInfo MbombdjeRomDesc[] = {
- { "mbd_26.bin", 0x020000, 0x72b7451c, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "mbdje_30.rom", 0x020000, 0x61b09fb1, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "mbd_27.bin", 0x020000, 0x4086f534, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "mbd_31.bin", 0x020000, 0x085f47f0, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "mbd_24.bin", 0x020000, 0xc20895a5, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "mbd_28.bin", 0x020000, 0x2618d5e1, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "mbd_25.bin", 0x020000, 0x9bdb6b11, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "mbd_29.bin", 0x020000, 0x3f52d5e5, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "mbd_21.bin", 0x080000, 0x690c026a, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "mbd_20.bin", 0x080000, 0xb8b2139b, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "mb_gfx01.rom", 0x080000, 0x41468e06, BRF_GRA | CPS1_TILES },
- { "mb_gfx03.rom", 0x080000, 0xf453aa9e, BRF_GRA | CPS1_TILES },
- { "mb_gfx02.rom", 0x080000, 0x2ffbfea8, BRF_GRA | CPS1_TILES },
- { "mb_gfx04.rom", 0x080000, 0x1eb9841d, BRF_GRA | CPS1_TILES },
- { "mb_05.bin", 0x080000, 0x506b9dc9, BRF_GRA | CPS1_TILES },
- { "mb_07.bin", 0x080000, 0xaff8c2fb, BRF_GRA | CPS1_TILES },
- { "mb_06.bin", 0x080000, 0xb76c70e9, BRF_GRA | CPS1_TILES },
- { "mb_08.bin", 0x080000, 0xe60c9556, BRF_GRA | CPS1_TILES },
- { "mb_10.bin", 0x080000, 0x97976ff5, BRF_GRA | CPS1_TILES },
- { "mb_12.bin", 0x080000, 0xb350a840, BRF_GRA | CPS1_TILES },
- { "mb_11.bin", 0x080000, 0x8fb94743, BRF_GRA | CPS1_TILES },
- { "mb_13.bin", 0x080000, 0xda810d5f, BRF_GRA | CPS1_TILES },
-
- { "mb_q.bin", 0x020000, 0xd6fa76d1, BRF_ESS | BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "mb_q1.bin", 0x080000, 0x0630c3ce, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "mb_q2.bin", 0x080000, 0x354f9c21, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "mb_q3.bin", 0x080000, 0x7838487c, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "mb_q4.bin", 0x080000, 0xab66e087, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "mb_q5.bin", 0x080000, 0xc789fef2, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "mb_q6.bin", 0x080000, 0xecb81b61, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "mb_q7.bin", 0x080000, 0x041e49ba, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "mb_q8.bin", 0x080000, 0x59fe702a, BRF_SND | CPS1_QSOUND_SAMPLES },
-};
-
-STD_ROM_PICK(Mbombdje)
-STD_ROM_FN(Mbombdje)
-
-struct BurnDriverX BurnDrvCpsMbombdje = {
- "mbombdje", "mbombrd", NULL, NULL, "1993",
- "Muscle Bomber Duo - heat up warriors (931206 Japan E)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_HACK, 4, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, 0,
- NULL, MbombdjeRomInfo, MbombdjeRomName, NULL, NULL, SlammastInputInfo, SlammastDIPInfo,
- TwelveMhzInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-// Muscle Bomber Duo (Asia)
-// Seems to be just a region hack
-static struct BurnRomInfo MbombrdaRomDesc[] = {
- { "mbd_26.bin", 0x020000, 0x72b7451c, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "mbda_30.rom", 0x020000, 0x42eaa9da, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "mbd_27.bin", 0x020000, 0x4086f534, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "mbd_31.bin", 0x020000, 0x085f47f0, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "mbd_24.bin", 0x020000, 0xc20895a5, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "mbd_28.bin", 0x020000, 0x2618d5e1, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "mbd_25.bin", 0x020000, 0x9bdb6b11, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "mbd_29.bin", 0x020000, 0x3f52d5e5, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "mbd_21.bin", 0x080000, 0x690c026a, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "mbd_20.bin", 0x080000, 0xb8b2139b, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "mb_gfx01.rom", 0x080000, 0x41468e06, BRF_GRA | CPS1_TILES },
- { "mb_gfx03.rom", 0x080000, 0xf453aa9e, BRF_GRA | CPS1_TILES },
- { "mb_gfx02.rom", 0x080000, 0x2ffbfea8, BRF_GRA | CPS1_TILES },
- { "mb_gfx04.rom", 0x080000, 0x1eb9841d, BRF_GRA | CPS1_TILES },
- { "mb_05.bin", 0x080000, 0x506b9dc9, BRF_GRA | CPS1_TILES },
- { "mb_07.bin", 0x080000, 0xaff8c2fb, BRF_GRA | CPS1_TILES },
- { "mb_06.bin", 0x080000, 0xb76c70e9, BRF_GRA | CPS1_TILES },
- { "mb_08.bin", 0x080000, 0xe60c9556, BRF_GRA | CPS1_TILES },
- { "mb_10.bin", 0x080000, 0x97976ff5, BRF_GRA | CPS1_TILES },
- { "mb_12.bin", 0x080000, 0xb350a840, BRF_GRA | CPS1_TILES },
- { "mb_11.bin", 0x080000, 0x8fb94743, BRF_GRA | CPS1_TILES },
- { "mb_13.bin", 0x080000, 0xda810d5f, BRF_GRA | CPS1_TILES },
-
- { "mb_q.bin", 0x020000, 0xd6fa76d1, BRF_ESS | BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "mb_q1.bin", 0x080000, 0x0630c3ce, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "mb_q2.bin", 0x080000, 0x354f9c21, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "mb_q3.bin", 0x080000, 0x7838487c, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "mb_q4.bin", 0x080000, 0xab66e087, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "mb_q5.bin", 0x080000, 0xc789fef2, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "mb_q6.bin", 0x080000, 0xecb81b61, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "mb_q7.bin", 0x080000, 0x041e49ba, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "mb_q8.bin", 0x080000, 0x59fe702a, BRF_SND | CPS1_QSOUND_SAMPLES },
-};
-
-STD_ROM_PICK(Mbombrda)
-STD_ROM_FN(Mbombrda)
-
-struct BurnDriverX BurnDrvCpsMbombrda = {
- "mbombrda", "mbombrd", NULL, NULL, "1993",
- "Muscle Bomber Duo - ultimate team battle (931206 Asia)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_HACK, 4, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, 0,
- NULL, MbombrdaRomInfo, MbombrdaRomName, NULL, NULL, SlammastInputInfo, SlammastDIPInfo,
- TwelveMhzInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-// Muscle Bomber Duo (Hispanic)
-// Seems to be just a region hack
-static struct BurnRomInfo MbombrdhRomDesc[] = {
- { "mbd_26.bin", 0x020000, 0x72b7451c, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "mbdh_30.rom", 0x020000, 0x836cea7d, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "mbd_27.bin", 0x020000, 0x4086f534, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "mbd_31.bin", 0x020000, 0x085f47f0, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "mbd_24.bin", 0x020000, 0xc20895a5, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "mbd_28.bin", 0x020000, 0x2618d5e1, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "mbd_25.bin", 0x020000, 0x9bdb6b11, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "mbd_29.bin", 0x020000, 0x3f52d5e5, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "mbd_21.bin", 0x080000, 0x690c026a, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "mbd_20.bin", 0x080000, 0xb8b2139b, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "mb_gfx01.rom", 0x080000, 0x41468e06, BRF_GRA | CPS1_TILES },
- { "mb_gfx03.rom", 0x080000, 0xf453aa9e, BRF_GRA | CPS1_TILES },
- { "mb_gfx02.rom", 0x080000, 0x2ffbfea8, BRF_GRA | CPS1_TILES },
- { "mb_gfx04.rom", 0x080000, 0x1eb9841d, BRF_GRA | CPS1_TILES },
- { "mb_05.bin", 0x080000, 0x506b9dc9, BRF_GRA | CPS1_TILES },
- { "mb_07.bin", 0x080000, 0xaff8c2fb, BRF_GRA | CPS1_TILES },
- { "mb_06.bin", 0x080000, 0xb76c70e9, BRF_GRA | CPS1_TILES },
- { "mb_08.bin", 0x080000, 0xe60c9556, BRF_GRA | CPS1_TILES },
- { "mb_10.bin", 0x080000, 0x97976ff5, BRF_GRA | CPS1_TILES },
- { "mb_12.bin", 0x080000, 0xb350a840, BRF_GRA | CPS1_TILES },
- { "mb_11.bin", 0x080000, 0x8fb94743, BRF_GRA | CPS1_TILES },
- { "mb_13.bin", 0x080000, 0xda810d5f, BRF_GRA | CPS1_TILES },
-
- { "mb_q.bin", 0x020000, 0xd6fa76d1, BRF_ESS | BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "mb_q1.bin", 0x080000, 0x0630c3ce, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "mb_q2.bin", 0x080000, 0x354f9c21, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "mb_q3.bin", 0x080000, 0x7838487c, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "mb_q4.bin", 0x080000, 0xab66e087, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "mb_q5.bin", 0x080000, 0xc789fef2, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "mb_q6.bin", 0x080000, 0xecb81b61, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "mb_q7.bin", 0x080000, 0x041e49ba, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "mb_q8.bin", 0x080000, 0x59fe702a, BRF_SND | CPS1_QSOUND_SAMPLES },
-};
-
-STD_ROM_PICK(Mbombrdh)
-STD_ROM_FN(Mbombrdh)
-
-struct BurnDriverX BurnDrvCpsMbombrdh = {
- "mbombrdh", "mbombrd", NULL, NULL, "1993",
- "Muscle Bomber Duo - ultimate team battle (931206 Hispanic)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_HACK, 4, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, 0,
- NULL, MbombrdhRomInfo, MbombrdhRomName, NULL, NULL, SlammastInputInfo, SlammastDIPInfo,
- TwelveMhzInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-// Muscle Bomber Duo (USA)
-// Seems to be just a region hack
-static struct BurnRomInfo MbombrduRomDesc[] = {
- { "mbd_26.bin", 0x020000, 0x72b7451c, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "mbdu_30.rom", 0x020000, 0x5c234403, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "mbd_27.bin", 0x020000, 0x4086f534, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "mbd_31.bin", 0x020000, 0x085f47f0, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "mbd_24.bin", 0x020000, 0xc20895a5, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "mbd_28.bin", 0x020000, 0x2618d5e1, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "mbd_25.bin", 0x020000, 0x9bdb6b11, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "mbd_29.bin", 0x020000, 0x3f52d5e5, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
- { "mbd_21.bin", 0x080000, 0x690c026a, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "mbd_20.bin", 0x080000, 0xb8b2139b, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "mb_gfx01.rom", 0x080000, 0x41468e06, BRF_GRA | CPS1_TILES },
- { "mb_gfx03.rom", 0x080000, 0xf453aa9e, BRF_GRA | CPS1_TILES },
- { "mb_gfx02.rom", 0x080000, 0x2ffbfea8, BRF_GRA | CPS1_TILES },
- { "mb_gfx04.rom", 0x080000, 0x1eb9841d, BRF_GRA | CPS1_TILES },
- { "mb_05.bin", 0x080000, 0x506b9dc9, BRF_GRA | CPS1_TILES },
- { "mb_07.bin", 0x080000, 0xaff8c2fb, BRF_GRA | CPS1_TILES },
- { "mb_06.bin", 0x080000, 0xb76c70e9, BRF_GRA | CPS1_TILES },
- { "mb_08.bin", 0x080000, 0xe60c9556, BRF_GRA | CPS1_TILES },
- { "mb_10.bin", 0x080000, 0x97976ff5, BRF_GRA | CPS1_TILES },
- { "mb_12.bin", 0x080000, 0xb350a840, BRF_GRA | CPS1_TILES },
- { "mb_11.bin", 0x080000, 0x8fb94743, BRF_GRA | CPS1_TILES },
- { "mb_13.bin", 0x080000, 0xda810d5f, BRF_GRA | CPS1_TILES },
-
- { "mb_q.bin", 0x020000, 0xd6fa76d1, BRF_ESS | BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "mb_q1.bin", 0x080000, 0x0630c3ce, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "mb_q2.bin", 0x080000, 0x354f9c21, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "mb_q3.bin", 0x080000, 0x7838487c, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "mb_q4.bin", 0x080000, 0xab66e087, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "mb_q5.bin", 0x080000, 0xc789fef2, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "mb_q6.bin", 0x080000, 0xecb81b61, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "mb_q7.bin", 0x080000, 0x041e49ba, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "mb_q8.bin", 0x080000, 0x59fe702a, BRF_SND | CPS1_QSOUND_SAMPLES },
-};
-
-STD_ROM_PICK(Mbombrdu)
-STD_ROM_FN(Mbombrdu)
-
-struct BurnDriverX BurnDrvCpsMbombrdu = {
- "mbombrdu", "mbombrd", NULL, NULL, "1993",
- "Muscle Bomber Duo - ultimate team battle (931206 USA)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_HACK, 4, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, 0,
- NULL, MbombrduRomInfo, MbombrduRomName, NULL, NULL, SlammastInputInfo, SlammastDIPInfo,
- TwelveMhzInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-static struct BurnRomInfo Sf2cebrRomDesc[] = {
- { "sf2cebr.23", 0x080000, 0x74e848ee, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "sf2cebr.22", 0x080000, 0xc3c49626, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "s92_21a.bin", 0x080000, 0x925a7877, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "s92_01.bin", 0x080000, 0x03b0d852, BRF_GRA | CPS1_TILES },
- { "s92_02.bin", 0x080000, 0x840289ec, BRF_GRA | CPS1_TILES },
- { "s92_03.bin", 0x080000, 0xcdb5f027, BRF_GRA | CPS1_TILES },
- { "s92_04.bin", 0x080000, 0xe2799472, BRF_GRA | CPS1_TILES },
- { "s92_05.bin", 0x080000, 0xba8a2761, BRF_GRA | CPS1_TILES },
- { "s92_06.bin", 0x080000, 0xe584bfb5, BRF_GRA | CPS1_TILES },
- { "s92_07.bin", 0x080000, 0x21e3f87d, BRF_GRA | CPS1_TILES },
- { "s92_08.bin", 0x080000, 0xbefc47df, BRF_GRA | CPS1_TILES },
- { "s92br_10.bin", 0x080000, 0xb3e1dd5f, BRF_GRA | CPS1_TILES },
- { "s92br_11.bin", 0x080000, 0xf13af812, BRF_GRA | CPS1_TILES },
- { "s92br_12.bin", 0x080000, 0x10ce42af, BRF_GRA | CPS1_TILES },
- { "s92br_13.bin", 0x080000, 0x32cf5af3, BRF_GRA | CPS1_TILES },
-
- { "s92_09.bin", 0x010000, 0x08f6b60e, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "s92_18.bin", 0x020000, 0x7f162009, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "s92_19.bin", 0x020000, 0xbeade53f, BRF_SND | CPS1_OKIM6295_SAMPLES },
-};
-
-STD_ROM_PICK(Sf2cebr)
-STD_ROM_FN(Sf2cebr)
-
-struct BurnDriverX BurnDrvCpsSf2cebr = {
- "sf2cebr", "sf2ce", NULL, NULL, "1992",
- "Street Fighter II' - Champion Edition (bootleg, Brazil)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_HACK, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2cebrRomInfo, Sf2cebrRomName, NULL, NULL, Sf2InputInfo, Sf2DIPInfo,
- Sf2ceInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-static struct BurnRomInfo Sf2cehRomDesc[] = {
- { "sf2ceh.23", 0x080000, 0x25dc14c8, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "sf2ceh.22", 0x080000, 0x1c9dd91c, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "s92_21a.bin", 0x080000, 0x925a7877, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "s92_01.bin", 0x080000, 0x03b0d852, BRF_GRA | CPS1_TILES },
- { "s92_02.bin", 0x080000, 0x840289ec, BRF_GRA | CPS1_TILES },
- { "s92_03.bin", 0x080000, 0xcdb5f027, BRF_GRA | CPS1_TILES },
- { "s92_04.bin", 0x080000, 0xe2799472, BRF_GRA | CPS1_TILES },
- { "s92_05.bin", 0x080000, 0xba8a2761, BRF_GRA | CPS1_TILES },
- { "s92_06.bin", 0x080000, 0xe584bfb5, BRF_GRA | CPS1_TILES },
- { "s92_07.bin", 0x080000, 0x21e3f87d, BRF_GRA | CPS1_TILES },
- { "s92_08.bin", 0x080000, 0xbefc47df, BRF_GRA | CPS1_TILES },
- { "s92_10.bin", 0x080000, 0x960687d5, BRF_GRA | CPS1_TILES },
- { "s92_11.bin", 0x080000, 0x978ecd18, BRF_GRA | CPS1_TILES },
- { "s92_12.bin", 0x080000, 0xd6ec9a0a, BRF_GRA | CPS1_TILES },
- { "s92_13.bin", 0x080000, 0xed2c67f6, BRF_GRA | CPS1_TILES },
-
- { "s92_09.bin", 0x010000, 0x08f6b60e, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "s92_18.bin", 0x020000, 0x7f162009, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "s92_19.bin", 0x020000, 0xbeade53f, BRF_SND | CPS1_OKIM6295_SAMPLES },
-};
-
-STD_ROM_PICK(Sf2ceh)
-STD_ROM_FN(Sf2ceh)
-
-struct BurnDriverX BurnDrvCpsSf2ceh = {
- "sf2ceh", "sf2ce", NULL, NULL, "1992",
- "Street Fighter II' - Champion Edition (bootleg, Hispanic)\0", NULL, "Capcom", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_HACK, 2, HARDWARE_CAPCOM_CPS1, GBF_VSFIGHT, FBF_SF,
- NULL, Sf2cehRomInfo, Sf2cehRomName, NULL, NULL, Sf2InputInfo, Sf2DIPInfo,
- Sf2ceInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-// Warriors of Fate (French Translation)
-// Very similar to wof
-static struct BurnRomInfo WoffrRomDesc[] = {
- { "tk2e_23bfr.rom",0x080000, 0xe006e81e, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "tk2e_22b.rom", 0x080000, 0x479b3f24, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "tk2_gfx1.rom", 0x080000, 0x0d9cb9bf, BRF_GRA | CPS1_TILES },
- { "tk2_gfx3.rom", 0x080000, 0x45227027, BRF_GRA | CPS1_TILES },
- { "tk2_gfx2.rom", 0x080000, 0xc5ca2460, BRF_GRA | CPS1_TILES },
- { "tk2_gfx4.rom", 0x080000, 0xe349551c, BRF_GRA | CPS1_TILES },
- { "tk2_gfx5fr.rom",0x080000, 0x1b6bc2b2, BRF_GRA | CPS1_TILES },
- { "tk2_gfx7fr.rom",0x080000, 0x3f1e5334, BRF_GRA | CPS1_TILES },
- { "tk2_gfx6fr.rom",0x080000, 0x28c9d96f, BRF_GRA | CPS1_TILES },
- { "tk2_gfx8fr.rom",0x080000, 0xb3b9a29e, BRF_GRA | CPS1_TILES },
-
- { "tk2_qa.rom", 0x020000, 0xc9183a0d, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "tk2_q1.rom", 0x080000, 0x611268cf, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "tk2_q2.rom", 0x080000, 0x20f55ca9, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "tk2_q3.rom", 0x080000, 0xbfcf6f52, BRF_SND | CPS1_QSOUND_SAMPLES },
- { "tk2_q4.rom", 0x080000, 0x36642e88, BRF_SND | CPS1_QSOUND_SAMPLES },
-};
-
-STD_ROM_PICK(Woffr)
-STD_ROM_FN(Woffr)
-
-struct BurnDriverX BurnDrvCpsWoffr = {
- "woffr", "wof", NULL, NULL, "1992",
- "Warriors of Fate (French Translation)\0", NULL, "Capcom", "CPS1 / QSound",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_HACK, 3, HARDWARE_CAPCOM_CPS1_QSOUND, GBF_SCRFIGHT, 0,
- NULL, WoffrRomInfo, WoffrRomName, NULL, NULL, WofInputInfo, WofDIPInfo,
- TwelveMhzInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-// CPS Changer Region Hacks (not included)
-
-// Street Fighter Alpha (CPS Changer, 950727 Publicity US)
-static struct BurnRomInfo SfachRomDesc[] = {
- { "sfach23", 0x080000, 0x02a1a853, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "sfza22", 0x080000, 0x8d9b2480, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "sfzch21", 0x080000, 0x5435225d, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "sfza20", 0x080000, 0x806e8f38, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "sfz_01.3a", 0x080000, 0x0dd53e62, BRF_GRA | CPS1_TILES },
- { "sfz_02.4a", 0x080000, 0x94c31e3f, BRF_GRA | CPS1_TILES },
- { "sfz_03.5a", 0x080000, 0x9584ac85, BRF_GRA | CPS1_TILES },
- { "sfz_04.6a", 0x080000, 0xb983624c, BRF_GRA | CPS1_TILES },
- { "sfz_05.7a", 0x080000, 0x2b47b645, BRF_GRA | CPS1_TILES },
- { "sfz_06.8a", 0x080000, 0x74fd9fb1, BRF_GRA | CPS1_TILES },
- { "sfz_07.9a", 0x080000, 0xbb2c734d, BRF_GRA | CPS1_TILES },
- { "sfz_08.10a", 0x080000, 0x454f7868, BRF_GRA | CPS1_TILES },
- { "sfz_10.3c", 0x080000, 0x2a7d675e, BRF_GRA | CPS1_TILES },
- { "sfz_11.4c", 0x080000, 0xe35546c8, BRF_GRA | CPS1_TILES },
- { "sfz_12.5c", 0x080000, 0xf122693a, BRF_GRA | CPS1_TILES },
- { "sfz_13.6c", 0x080000, 0x7cf942c8, BRF_GRA | CPS1_TILES },
- { "sfz_14.7c", 0x080000, 0x09038c81, BRF_GRA | CPS1_TILES },
- { "sfz_15.8c", 0x080000, 0x1aa17391, BRF_GRA | CPS1_TILES },
- { "sfz_16.9c", 0x080000, 0x19a5abd6, BRF_GRA | CPS1_TILES },
- { "sfz_17.10c", 0x080000, 0x248b3b73, BRF_GRA | CPS1_TILES },
-
- { "sfz_09.12a", 0x010000, 0xc772628b, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "sfz_18.11c", 0x020000, 0x61022b2d, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "sfz_19.12c", 0x020000, 0x3b5886d5, BRF_SND | CPS1_OKIM6295_SAMPLES },
-};
-
-STD_ROM_PICK(Sfach)
-STD_ROM_FN(Sfach)
-
-struct BurnDriverX BurnDrvCpsSfach = {
- "sfach", "sfzch", NULL, NULL, "1995",
- "Street Fighter Alpha (CPS Changer, 950727 Publicity US)\0", NULL, "Capcom", "CPS Changer",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPSCHANGER, GBF_VSFIGHT, FBF_SF,
- NULL, SfachRomInfo, SfachRomName, NULL, NULL, SfzchInputInfo, NULL,
- SfzchInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-// Street Fighter Zero (CPS Changer, 950925 Asia)
-static struct BurnRomInfo SfzachRomDesc[] = {
- { "sfzach23", 0x080000, 0x2562108b, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "sfza22", 0x080000, 0x8d9b2480, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "sfzch21", 0x080000, 0x5435225d, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "sfza20", 0x080000, 0x806e8f38, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "sfz_01.3a", 0x080000, 0x0dd53e62, BRF_GRA | CPS1_TILES },
- { "sfz_02.4a", 0x080000, 0x94c31e3f, BRF_GRA | CPS1_TILES },
- { "sfz_03.5a", 0x080000, 0x9584ac85, BRF_GRA | CPS1_TILES },
- { "sfz_04.6a", 0x080000, 0xb983624c, BRF_GRA | CPS1_TILES },
- { "sfz_05.7a", 0x080000, 0x2b47b645, BRF_GRA | CPS1_TILES },
- { "sfz_06.8a", 0x080000, 0x74fd9fb1, BRF_GRA | CPS1_TILES },
- { "sfz_07.9a", 0x080000, 0xbb2c734d, BRF_GRA | CPS1_TILES },
- { "sfz_08.10a", 0x080000, 0x454f7868, BRF_GRA | CPS1_TILES },
- { "sfz_10.3c", 0x080000, 0x2a7d675e, BRF_GRA | CPS1_TILES },
- { "sfz_11.4c", 0x080000, 0xe35546c8, BRF_GRA | CPS1_TILES },
- { "sfz_12.5c", 0x080000, 0xf122693a, BRF_GRA | CPS1_TILES },
- { "sfz_13.6c", 0x080000, 0x7cf942c8, BRF_GRA | CPS1_TILES },
- { "sfz_14.7c", 0x080000, 0x09038c81, BRF_GRA | CPS1_TILES },
- { "sfz_15.8c", 0x080000, 0x1aa17391, BRF_GRA | CPS1_TILES },
- { "sfz_16.9c", 0x080000, 0x19a5abd6, BRF_GRA | CPS1_TILES },
- { "sfz_17.10c", 0x080000, 0x248b3b73, BRF_GRA | CPS1_TILES },
-
- { "sfz_09.12a", 0x010000, 0xc772628b, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "sfz_18.11c", 0x020000, 0x61022b2d, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "sfz_19.12c", 0x020000, 0x3b5886d5, BRF_SND | CPS1_OKIM6295_SAMPLES },
-};
-
-STD_ROM_PICK(Sfzach)
-STD_ROM_FN(Sfzach)
-
-struct BurnDriverX BurnDrvCpsSfzach = {
- "sfzach", "sfzch", NULL, NULL, "1995",
- "Street Fighter Zero (CPS Changer, 950925 Asia)\0", NULL, "Capcom", "CPS Changer",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPSCHANGER, GBF_VSFIGHT, FBF_SF,
- NULL, SfzachRomInfo, SfzachRomName, NULL, NULL, SfzchInputInfo, NULL,
- SfzchInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-// Street Fighter Zero (CPS Changer, 950727 Brazil)
-static struct BurnRomInfo SfzbchRomDesc[] = {
- { "sfbch23", 0x080000, 0x53699f68, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "sfza22", 0x080000, 0x8d9b2480, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "sfzch21", 0x080000, 0x5435225d, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "sfza20", 0x080000, 0x806e8f38, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "sfz_01.3a", 0x080000, 0x0dd53e62, BRF_GRA | CPS1_TILES },
- { "sfz_02.4a", 0x080000, 0x94c31e3f, BRF_GRA | CPS1_TILES },
- { "sfz_03.5a", 0x080000, 0x9584ac85, BRF_GRA | CPS1_TILES },
- { "sfz_04.6a", 0x080000, 0xb983624c, BRF_GRA | CPS1_TILES },
- { "sfz_05.7a", 0x080000, 0x2b47b645, BRF_GRA | CPS1_TILES },
- { "sfz_06.8a", 0x080000, 0x74fd9fb1, BRF_GRA | CPS1_TILES },
- { "sfz_07.9a", 0x080000, 0xbb2c734d, BRF_GRA | CPS1_TILES },
- { "sfz_08.10a", 0x080000, 0x454f7868, BRF_GRA | CPS1_TILES },
- { "sfz_10.3c", 0x080000, 0x2a7d675e, BRF_GRA | CPS1_TILES },
- { "sfz_11.4c", 0x080000, 0xe35546c8, BRF_GRA | CPS1_TILES },
- { "sfz_12.5c", 0x080000, 0xf122693a, BRF_GRA | CPS1_TILES },
- { "sfz_13.6c", 0x080000, 0x7cf942c8, BRF_GRA | CPS1_TILES },
- { "sfz_14.7c", 0x080000, 0x09038c81, BRF_GRA | CPS1_TILES },
- { "sfz_15.8c", 0x080000, 0x1aa17391, BRF_GRA | CPS1_TILES },
- { "sfz_16.9c", 0x080000, 0x19a5abd6, BRF_GRA | CPS1_TILES },
- { "sfz_17.10c", 0x080000, 0x248b3b73, BRF_GRA | CPS1_TILES },
-
- { "sfz_09.12a", 0x010000, 0xc772628b, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "sfz_18.11c", 0x020000, 0x61022b2d, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "sfz_19.12c", 0x020000, 0x3b5886d5, BRF_SND | CPS1_OKIM6295_SAMPLES },
-};
-
-STD_ROM_PICK(Sfzbch)
-STD_ROM_FN(Sfzbch)
-
-struct BurnDriverX BurnDrvCpsSfzbch = {
- "sfzbch", "sfzch", NULL, NULL, "1995",
- "Street Fighter Zero (CPS Changer, 950727 Brazil)\0", NULL, "Capcom", "CPS Changer",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPSCHANGER, GBF_VSFIGHT, FBF_SF,
- NULL, SfzbchRomInfo, SfzbchRomName, NULL, NULL, SfzchInputInfo, NULL,
- SfzchInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-// Street Fighter Zero (CPS Changer, 950727 Euro)
-static struct BurnRomInfo SfzechRomDesc[] = {
- { "sfzech23", 0x080000, 0x5ec7058f, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "sfza22", 0x080000, 0x8d9b2480, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "sfzch21", 0x080000, 0x5435225d, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "sfza20", 0x080000, 0x806e8f38, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "sfz_01.3a", 0x080000, 0x0dd53e62, BRF_GRA | CPS1_TILES },
- { "sfz_02.4a", 0x080000, 0x94c31e3f, BRF_GRA | CPS1_TILES },
- { "sfz_03.5a", 0x080000, 0x9584ac85, BRF_GRA | CPS1_TILES },
- { "sfz_04.6a", 0x080000, 0xb983624c, BRF_GRA | CPS1_TILES },
- { "sfz_05.7a", 0x080000, 0x2b47b645, BRF_GRA | CPS1_TILES },
- { "sfz_06.8a", 0x080000, 0x74fd9fb1, BRF_GRA | CPS1_TILES },
- { "sfz_07.9a", 0x080000, 0xbb2c734d, BRF_GRA | CPS1_TILES },
- { "sfz_08.10a", 0x080000, 0x454f7868, BRF_GRA | CPS1_TILES },
- { "sfz_10.3c", 0x080000, 0x2a7d675e, BRF_GRA | CPS1_TILES },
- { "sfz_11.4c", 0x080000, 0xe35546c8, BRF_GRA | CPS1_TILES },
- { "sfz_12.5c", 0x080000, 0xf122693a, BRF_GRA | CPS1_TILES },
- { "sfz_13.6c", 0x080000, 0x7cf942c8, BRF_GRA | CPS1_TILES },
- { "sfz_14.7c", 0x080000, 0x09038c81, BRF_GRA | CPS1_TILES },
- { "sfz_15.8c", 0x080000, 0x1aa17391, BRF_GRA | CPS1_TILES },
- { "sfz_16.9c", 0x080000, 0x19a5abd6, BRF_GRA | CPS1_TILES },
- { "sfz_17.10c", 0x080000, 0x248b3b73, BRF_GRA | CPS1_TILES },
-
- { "sfz_09.12a", 0x010000, 0xc772628b, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "sfz_18.11c", 0x020000, 0x61022b2d, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "sfz_19.12c", 0x020000, 0x3b5886d5, BRF_SND | CPS1_OKIM6295_SAMPLES },
-};
-
-STD_ROM_PICK(Sfzech)
-STD_ROM_FN(Sfzech)
-
-struct BurnDriverX BurnDrvCpsSfzech = {
- "sfzech", "sfzch", NULL, NULL, "1995",
- "Street Fighter Zero (CPS Changer, 950727 Euro)\0", NULL, "Capcom", "CPS Changer",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPSCHANGER, GBF_VSFIGHT, FBF_SF,
- NULL, SfzechRomInfo, SfzechRomName, NULL, NULL, SfzchInputInfo, NULL,
- SfzchInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-// Street Fighter Zero (CPS Changer, 950727 Hispanic)
-static struct BurnRomInfo SfzhchRomDesc[] = {
- { "sfzhch23", 0x080000, 0x3683cce7, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "sfza22", 0x080000, 0x8d9b2480, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "sfzch21", 0x080000, 0x5435225d, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "sfza20", 0x080000, 0x806e8f38, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "sfz_01.3a", 0x080000, 0x0dd53e62, BRF_GRA | CPS1_TILES },
- { "sfz_02.4a", 0x080000, 0x94c31e3f, BRF_GRA | CPS1_TILES },
- { "sfz_03.5a", 0x080000, 0x9584ac85, BRF_GRA | CPS1_TILES },
- { "sfz_04.6a", 0x080000, 0xb983624c, BRF_GRA | CPS1_TILES },
- { "sfz_05.7a", 0x080000, 0x2b47b645, BRF_GRA | CPS1_TILES },
- { "sfz_06.8a", 0x080000, 0x74fd9fb1, BRF_GRA | CPS1_TILES },
- { "sfz_07.9a", 0x080000, 0xbb2c734d, BRF_GRA | CPS1_TILES },
- { "sfz_08.10a", 0x080000, 0x454f7868, BRF_GRA | CPS1_TILES },
- { "sfz_10.3c", 0x080000, 0x2a7d675e, BRF_GRA | CPS1_TILES },
- { "sfz_11.4c", 0x080000, 0xe35546c8, BRF_GRA | CPS1_TILES },
- { "sfz_12.5c", 0x080000, 0xf122693a, BRF_GRA | CPS1_TILES },
- { "sfz_13.6c", 0x080000, 0x7cf942c8, BRF_GRA | CPS1_TILES },
- { "sfz_14.7c", 0x080000, 0x09038c81, BRF_GRA | CPS1_TILES },
- { "sfz_15.8c", 0x080000, 0x1aa17391, BRF_GRA | CPS1_TILES },
- { "sfz_16.9c", 0x080000, 0x19a5abd6, BRF_GRA | CPS1_TILES },
- { "sfz_17.10c", 0x080000, 0x248b3b73, BRF_GRA | CPS1_TILES },
-
- { "sfz_09.12a", 0x010000, 0xc772628b, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "sfz_18.11c", 0x020000, 0x61022b2d, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "sfz_19.12c", 0x020000, 0x3b5886d5, BRF_SND | CPS1_OKIM6295_SAMPLES },
-};
-
-STD_ROM_PICK(Sfzhch)
-STD_ROM_FN(Sfzhch)
-
-struct BurnDriverX BurnDrvCpsSfzhch = {
- "sfzhch", "sfzch", NULL, NULL, "1995",
- "Street Fighter Zero (CPS Changer, 950727 Hispanic)\0", NULL, "Capcom", "CPS Changer",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPSCHANGER, GBF_VSFIGHT, FBF_SF,
- NULL, SfzhchRomInfo, SfzhchRomName, NULL, NULL, SfzchInputInfo, NULL,
- SfzchInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-#include "d_kenseim.h"
-
-#undef CPS1_68K_PROGRAM_BYTESWAP
-#undef CPS1_68K_PROGRAM_NO_BYTESWAP
-#undef CPS1_Z80_PROGRAM
-#undef CPS1_TILES
-#undef CPS1_OKIM6295_SAMPLES
-#undef CPS1_QSOUND_SAMPLES
-#undef CPS1_PIC
diff --git a/jan/src/burn/drv/capcom/d_cps2.cpp b/jan/src/burn/drv/capcom/d_cps2.cpp
deleted file mode 100644
index f1693694a..000000000
--- a/jan/src/burn/drv/capcom/d_cps2.cpp
+++ /dev/null
@@ -1,13194 +0,0 @@
-#include "cps.h"
-
-INT32 Cps2Volume = 39;
-INT32 Cps2DisableDigitalVolume = 0;
-UINT8 Cps2VolUp;
-UINT8 Cps2VolDwn;
-
-UINT16 Cps2VolumeStates[40] = {
- 0xf010, 0xf008, 0xf004, 0xf002, 0xf001, 0xe810, 0xe808, 0xe804, 0xe802, 0xe801,
- 0xe410, 0xe408, 0xe404, 0xe402, 0xe401, 0xe210, 0xe208, 0xe204, 0xe202, 0xe201,
- 0xe110, 0xe108, 0xe104, 0xe102, 0xe101, 0xe090, 0xe088, 0xe084, 0xe082, 0xe081,
- 0xe050, 0xe048, 0xe044, 0xe042, 0xe041, 0xe030, 0xe028, 0xe024, 0xe022, 0xe021
-};
-
-// Input Definitions
-
-static struct BurnInputInfo Cps2FightingInputList[] = {
- {"P1 Coin" , BIT_DIGITAL , CpsInp020+4, "p1 coin" },
- {"P1 Start" , BIT_DIGITAL , CpsInp020+0, "p1 start" },
- {"P1 Up" , BIT_DIGITAL , CpsInp001+3, "p1 up" },
- {"P1 Down" , BIT_DIGITAL , CpsInp001+2, "p1 down" },
- {"P1 Left" , BIT_DIGITAL , CpsInp001+1, "p1 left" },
- {"P1 Right" , BIT_DIGITAL , CpsInp001+0, "p1 right" },
- {"P1 Weak Punch" , BIT_DIGITAL , CpsInp001+4, "p1 fire 1" },
- {"P1 Medium Punch" , BIT_DIGITAL , CpsInp001+5, "p1 fire 2" },
- {"P1 Strong Punch" , BIT_DIGITAL , CpsInp001+6, "p1 fire 3" },
- {"P1 Weak Kick" , BIT_DIGITAL , CpsInp011+0, "p1 fire 4" },
- {"P1 Medium Kick" , BIT_DIGITAL , CpsInp011+1, "p1 fire 5" },
- {"P1 Strong Kick" , BIT_DIGITAL , CpsInp011+2, "p1 fire 6" },
-
- {"P2 Coin" , BIT_DIGITAL , CpsInp020+5, "p2 coin" },
- {"P2 Start" , BIT_DIGITAL , CpsInp020+1, "p2 start" },
- {"P2 Up" , BIT_DIGITAL , CpsInp000+3, "p2 up" },
- {"P2 Down" , BIT_DIGITAL , CpsInp000+2, "p2 down" },
- {"P2 Left" , BIT_DIGITAL , CpsInp000+1, "p2 left" },
- {"P2 Right" , BIT_DIGITAL , CpsInp000+0, "p2 right" },
- {"P2 Weak Punch" , BIT_DIGITAL , CpsInp000+4, "p2 fire 1" },
- {"P2 Medium Punch" , BIT_DIGITAL , CpsInp000+5, "p2 fire 2" },
- {"P2 Strong Punch" , BIT_DIGITAL , CpsInp000+6, "p2 fire 3" },
- {"P2 Weak Kick" , BIT_DIGITAL , CpsInp011+4, "p2 fire 4" },
- {"P2 Medium Kick" , BIT_DIGITAL , CpsInp011+5, "p2 fire 5" },
- {"P2 Strong Kick" , BIT_DIGITAL , CpsInp020+6, "p2 fire 6" },
-
- {"Reset" , BIT_DIGITAL , &CpsReset , "reset" },
- {"Diagnostic" , BIT_DIGITAL , CpsInp021+1, "diag" },
- {"Service" , BIT_DIGITAL , CpsInp021+2, "service" },
- {"Volume Up" , BIT_DIGITAL , &Cps2VolUp , "p1 fire 7" },
- {"Volume Down" , BIT_DIGITAL , &Cps2VolDwn, "p1 fire 8" },
-};
-
-STDINPUTINFO(Cps2Fighting)
-
-static struct BurnInputInfo NineXXInputList[] = {
- {"P1 Coin" , BIT_DIGITAL , CpsInp020+4, "p1 coin" },
- {"P1 Start" , BIT_DIGITAL , CpsInp020+0, "p1 start" },
- {"P1 Up" , BIT_DIGITAL , CpsInp001+3, "p1 up" },
- {"P1 Down" , BIT_DIGITAL , CpsInp001+2, "p1 down" },
- {"P1 Left" , BIT_DIGITAL , CpsInp001+1, "p1 left" },
- {"P1 Right" , BIT_DIGITAL , CpsInp001+0, "p1 right" },
- {"P1 Shot" , BIT_DIGITAL , CpsInp001+4, "p1 fire 1" },
- {"P1 Bomb" , BIT_DIGITAL , CpsInp001+5, "p1 fire 2" },
-
- {"P2 Coin" , BIT_DIGITAL , CpsInp020+5, "p2 coin" },
- {"P2 Start" , BIT_DIGITAL , CpsInp020+1, "p2 start" },
- {"P2 Up" , BIT_DIGITAL , CpsInp000+3, "p2 up" },
- {"P2 Down" , BIT_DIGITAL , CpsInp000+2, "p2 down" },
- {"P2 Left" , BIT_DIGITAL , CpsInp000+1, "p2 left" },
- {"P2 Right" , BIT_DIGITAL , CpsInp000+0, "p2 right" },
- {"P2 Shot" , BIT_DIGITAL , CpsInp000+4, "p2 fire 1" },
- {"P2 Bomb" , BIT_DIGITAL , CpsInp000+5, "p2 fire 2" },
-
- {"Reset" , BIT_DIGITAL , &CpsReset , "reset" },
- {"Diagnostic" , BIT_DIGITAL , CpsInp021+1, "diag" },
- {"Service" , BIT_DIGITAL , CpsInp021+2, "service" },
- {"Volume Up" , BIT_DIGITAL , &Cps2VolUp , "p1 fire 3" },
- {"Volume Down" , BIT_DIGITAL , &Cps2VolDwn, "p1 fire 4" },
-};
-
-STDINPUTINFO(NineXX)
-
-static struct BurnInputInfo Nine44InputList[] = {
- {"P1 Coin" , BIT_DIGITAL , CpsInp020+4, "p1 coin" },
- {"P1 Start" , BIT_DIGITAL , CpsInp020+0, "p1 start" },
- {"P1 Up" , BIT_DIGITAL , CpsInp001+3, "p1 up" },
- {"P1 Down" , BIT_DIGITAL , CpsInp001+2, "p1 down" },
- {"P1 Left" , BIT_DIGITAL , CpsInp001+1, "p1 left" },
- {"P1 Right" , BIT_DIGITAL , CpsInp001+0, "p1 right" },
- {"P1 Shot" , BIT_DIGITAL , CpsInp001+4, "p1 fire 1" },
- {"P1 Bomb" , BIT_DIGITAL , CpsInp001+5, "p1 fire 2" },
-
- {"P2 Coin" , BIT_DIGITAL , CpsInp020+5, "p2 coin" },
- {"P2 Start" , BIT_DIGITAL , CpsInp020+1, "p2 start" },
- {"P2 Up" , BIT_DIGITAL , CpsInp000+3, "p2 up" },
- {"P2 Down" , BIT_DIGITAL , CpsInp000+2, "p2 down" },
- {"P2 Left" , BIT_DIGITAL , CpsInp000+1, "p2 left" },
- {"P2 Right" , BIT_DIGITAL , CpsInp000+0, "p2 right" },
- {"P2 Shot" , BIT_DIGITAL , CpsInp000+4, "p2 fire 1" },
- {"P2 Bomb" , BIT_DIGITAL , CpsInp000+5, "p2 fire 2" },
-
- {"Reset" , BIT_DIGITAL , &CpsReset , "reset" },
- {"Diagnostic" , BIT_DIGITAL , CpsInp021+1, "diag" },
- {"Service" , BIT_DIGITAL , CpsInp021+2, "service" },
- {"Volume Up" , BIT_DIGITAL , &Cps2VolUp , "p1 fire 3" },
- {"Volume Down" , BIT_DIGITAL , &Cps2VolDwn, "p1 fire 4" },
-};
-
-STDINPUTINFO(Nine44)
-
-static struct BurnInputInfo ArmwarInputList[] = {
- {"P1 Coin" , BIT_DIGITAL , CpsInp020+4, "p1 coin" },
- {"P1 Start" , BIT_DIGITAL , CpsInp020+0, "p1 start" },
- {"P1 Up" , BIT_DIGITAL , CpsInp001+3, "p1 up" },
- {"P1 Down" , BIT_DIGITAL , CpsInp001+2, "p1 down" },
- {"P1 Left" , BIT_DIGITAL , CpsInp001+1, "p1 left" },
- {"P1 Right" , BIT_DIGITAL , CpsInp001+0, "p1 right" },
- {"P1 Attack" , BIT_DIGITAL , CpsInp001+4, "p1 fire 1" },
- {"P1 Jump" , BIT_DIGITAL , CpsInp001+5, "p1 fire 2" },
- {"P1 Shot" , BIT_DIGITAL , CpsInp001+6, "p1 fire 3" },
-
- {"P2 Coin" , BIT_DIGITAL , CpsInp020+5, "p2 coin" },
- {"P2 Start" , BIT_DIGITAL , CpsInp020+1, "p2 start" },
- {"P2 Up" , BIT_DIGITAL , CpsInp000+3, "p2 up" },
- {"P2 Down" , BIT_DIGITAL , CpsInp000+2, "p2 down" },
- {"P2 Left" , BIT_DIGITAL , CpsInp000+1, "p2 left" },
- {"P2 Right" , BIT_DIGITAL , CpsInp000+0, "p2 right" },
- {"P2 Attack" , BIT_DIGITAL , CpsInp000+4, "p2 fire 1" },
- {"P2 Jump" , BIT_DIGITAL , CpsInp000+5, "p2 fire 2" },
- {"P2 Shot" , BIT_DIGITAL , CpsInp000+6, "p2 fire 3" },
-
- {"P3 Coin" , BIT_DIGITAL , CpsInp020+6, "p3 coin" },
- {"P3 Start" , BIT_DIGITAL , CpsInp020+2, "p3 start" },
- {"P3 Up" , BIT_DIGITAL , CpsInp011+3, "p3 up" },
- {"P3 Down" , BIT_DIGITAL , CpsInp011+2, "p3 down" },
- {"P3 Left" , BIT_DIGITAL , CpsInp011+1, "p3 left" },
- {"P3 Right" , BIT_DIGITAL , CpsInp011+0, "p3 right" },
- {"P3 Attack" , BIT_DIGITAL , CpsInp011+4, "p3 fire 1" },
- {"P3 Jump" , BIT_DIGITAL , CpsInp011+5, "p3 fire 2" },
- {"P3 Shot" , BIT_DIGITAL , CpsInp011+6, "p3 fire 3" },
-
- {"Reset" , BIT_DIGITAL , &CpsReset , "reset" },
- {"Diagnostic" , BIT_DIGITAL , CpsInp021+1, "diag" },
- {"Service" , BIT_DIGITAL , CpsInp021+2, "service" },
- {"Volume Up" , BIT_DIGITAL , &Cps2VolUp , "p1 fire 4" },
- {"Volume Down" , BIT_DIGITAL , &Cps2VolDwn, "p1 fire 5" },
-};
-
-STDINPUTINFO(Armwar)
-
-static struct BurnInputInfo AvspInputList[] = {
- {"P1 Coin" , BIT_DIGITAL , CpsInp020+4, "p1 coin" },
- {"P1 Start" , BIT_DIGITAL , CpsInp020+0, "p1 start" },
- {"P1 Up" , BIT_DIGITAL , CpsInp001+3, "p1 up" },
- {"P1 Down" , BIT_DIGITAL , CpsInp001+2, "p1 down" },
- {"P1 Left" , BIT_DIGITAL , CpsInp001+1, "p1 left" },
- {"P1 Right" , BIT_DIGITAL , CpsInp001+0, "p1 right" },
- {"P1 Shot" , BIT_DIGITAL , CpsInp001+4, "p1 fire 1" },
- {"P1 Attack" , BIT_DIGITAL , CpsInp001+5, "p1 fire 2" },
- {"P1 Jump" , BIT_DIGITAL , CpsInp001+6, "p1 fire 3" },
-
- {"P2 Coin" , BIT_DIGITAL , CpsInp020+5, "p2 coin" },
- {"P2 Start" , BIT_DIGITAL , CpsInp020+1, "p2 start" },
- {"P2 Up" , BIT_DIGITAL , CpsInp000+3, "p2 up" },
- {"P2 Down" , BIT_DIGITAL , CpsInp000+2, "p2 down" },
- {"P2 Left" , BIT_DIGITAL , CpsInp000+1, "p2 left" },
- {"P2 Right" , BIT_DIGITAL , CpsInp000+0, "p2 right" },
- {"P2 Shot" , BIT_DIGITAL , CpsInp000+4, "p2 fire 1" },
- {"P2 Attack" , BIT_DIGITAL , CpsInp000+5, "p2 fire 2" },
- {"P2 Jump" , BIT_DIGITAL , CpsInp000+6, "p2 fire 3" },
-
- {"P3 Coin" , BIT_DIGITAL , CpsInp020+6, "p3 coin" },
- {"P3 Start" , BIT_DIGITAL , CpsInp020+2, "p3 start" },
- {"P3 Up" , BIT_DIGITAL , CpsInp011+3, "p3 up" },
- {"P3 Down" , BIT_DIGITAL , CpsInp011+2, "p3 down" },
- {"P3 Left" , BIT_DIGITAL , CpsInp011+1, "p3 left" },
- {"P3 Right" , BIT_DIGITAL , CpsInp011+0, "p3 right" },
- {"P3 Shot" , BIT_DIGITAL , CpsInp011+4, "p3 fire 1" },
- {"P3 Attack" , BIT_DIGITAL , CpsInp011+5, "p3 fire 2" },
- {"P3 Jump" , BIT_DIGITAL , CpsInp011+6, "p3 fire 3" },
-
- {"Reset" , BIT_DIGITAL , &CpsReset , "reset" },
- {"Diagnostic" , BIT_DIGITAL , CpsInp021+1, "diag" },
- {"Service" , BIT_DIGITAL , CpsInp021+2, "service" },
- {"Volume Up" , BIT_DIGITAL , &Cps2VolUp , "p1 fire 4" },
- {"Volume Down" , BIT_DIGITAL , &Cps2VolDwn, "p1 fire 5" },
-};
-
-STDINPUTINFO(Avsp)
-
-static struct BurnInputInfo BatcirInputList[] = {
- {"P1 Coin" , BIT_DIGITAL , CpsInp020+4, "p1 coin" },
- {"P1 Start" , BIT_DIGITAL , CpsInp020+0, "p1 start" },
- {"P1 Up" , BIT_DIGITAL , CpsInp001+3, "p1 up" },
- {"P1 Down" , BIT_DIGITAL , CpsInp001+2, "p1 down" },
- {"P1 Left" , BIT_DIGITAL , CpsInp001+1, "p1 left" },
- {"P1 Right" , BIT_DIGITAL , CpsInp001+0, "p1 right" },
- {"P1 Attack" , BIT_DIGITAL , CpsInp001+4, "p1 fire 1" },
- {"P1 Jump" , BIT_DIGITAL , CpsInp001+5, "p1 fire 2" },
-
- {"P2 Coin" , BIT_DIGITAL , CpsInp020+5, "p2 coin" },
- {"P2 Start" , BIT_DIGITAL , CpsInp020+1, "p2 start" },
- {"P2 Up" , BIT_DIGITAL , CpsInp000+3, "p2 up" },
- {"P2 Down" , BIT_DIGITAL , CpsInp000+2, "p2 down" },
- {"P2 Left" , BIT_DIGITAL , CpsInp000+1, "p2 left" },
- {"P2 Right" , BIT_DIGITAL , CpsInp000+0, "p2 right" },
- {"P2 Attack" , BIT_DIGITAL , CpsInp000+4, "p2 fire 1" },
- {"P2 Jump" , BIT_DIGITAL , CpsInp000+5, "p2 fire 2" },
-
- {"P3 Coin" , BIT_DIGITAL , CpsInp020+6, "p3 coin" },
- {"P3 Start" , BIT_DIGITAL , CpsInp020+2, "p3 start" },
- {"P3 Up" , BIT_DIGITAL , CpsInp011+3, "p3 up" },
- {"P3 Down" , BIT_DIGITAL , CpsInp011+2, "p3 down" },
- {"P3 Left" , BIT_DIGITAL , CpsInp011+1, "p3 left" },
- {"P3 Right" , BIT_DIGITAL , CpsInp011+0, "p3 right" },
- {"P3 Attack" , BIT_DIGITAL , CpsInp011+4, "p3 fire 1" },
- {"P3 Jump" , BIT_DIGITAL , CpsInp011+5, "p3 fire 2" },
-
- {"P4 Coin" , BIT_DIGITAL , CpsInp020+7, "p4 coin" },
- {"P4 Start" , BIT_DIGITAL , CpsInp020+3, "p4 start" },
- {"P4 Up" , BIT_DIGITAL , CpsInp010+3, "p4 up" },
- {"P4 Down" , BIT_DIGITAL , CpsInp010+2, "p4 down" },
- {"P4 Left" , BIT_DIGITAL , CpsInp010+1, "p4 left" },
- {"P4 Right" , BIT_DIGITAL , CpsInp010+0, "p4 right" },
- {"P4 Attack" , BIT_DIGITAL , CpsInp010+4, "p4 fire 1" },
- {"P4 Jump" , BIT_DIGITAL , CpsInp010+5, "p4 fire 2" },
-
- {"Reset" , BIT_DIGITAL , &CpsReset , "reset" },
- {"Diagnostic" , BIT_DIGITAL , CpsInp021+1, "diag" },
- {"Service" , BIT_DIGITAL , CpsInp021+2, "service" },
- {"Volume Up" , BIT_DIGITAL , &Cps2VolUp , "p1 fire 3" },
- {"Volume Down" , BIT_DIGITAL , &Cps2VolDwn, "p1 fire 4" },
-};
-
-STDINPUTINFO(Batcir)
-
-static struct BurnInputInfo ChokoInputList[] = {
- {"P1 Coin" , BIT_DIGITAL , CpsInp020+4, "p1 coin" },
- {"P1 Start" , BIT_DIGITAL , CpsInp020+0, "p1 start" },
- {"P1 Up" , BIT_DIGITAL , CpsInp001+3, "p1 up" },
- {"P1 Down" , BIT_DIGITAL , CpsInp001+2, "p1 down" },
- {"P1 Left" , BIT_DIGITAL , CpsInp001+1, "p1 left" },
- {"P1 Right" , BIT_DIGITAL , CpsInp001+0, "p1 right" },
- {"P1 Shot1" , BIT_DIGITAL , CpsInp001+4, "p1 fire 1" },
- {"P1 Shot2" , BIT_DIGITAL , CpsInp001+5, "p1 fire 2" },
- {"P1 Shot3" , BIT_DIGITAL , CpsInp001+6, "p1 fire 3" },
-
- {"P2 Coin" , BIT_DIGITAL , CpsInp020+5, "p2 coin" },
-
- {"Reset" , BIT_DIGITAL , &CpsReset , "reset" },
- {"Diagnostic" , BIT_DIGITAL , CpsInp021+1, "diag" },
- {"Service" , BIT_DIGITAL , CpsInp021+2, "service" },
- {"Volume Up" , BIT_DIGITAL , &Cps2VolUp , "p1 fire 4" },
- {"Volume Down" , BIT_DIGITAL , &Cps2VolDwn, "p1 fire 5" },
-};
-
-STDINPUTINFO(Choko)
-
-static struct BurnInputInfo CsclubInputList[] = {
- {"P1 Coin" , BIT_DIGITAL , CpsInp020+4, "p1 coin" },
- {"P1 Start" , BIT_DIGITAL , CpsInp020+0, "p1 start" },
- {"P1 Up" , BIT_DIGITAL , CpsInp001+3, "p1 up" },
- {"P1 Down" , BIT_DIGITAL , CpsInp001+2, "p1 down" },
- {"P1 Left" , BIT_DIGITAL , CpsInp001+1, "p1 left" },
- {"P1 Right" , BIT_DIGITAL , CpsInp001+0, "p1 right" },
- {"P1 Button 1" , BIT_DIGITAL , CpsInp001+4, "p1 fire 1" },
- {"P1 Button 2" , BIT_DIGITAL , CpsInp001+5, "p1 fire 2" },
- {"P1 Button 3" , BIT_DIGITAL , CpsInp001+6, "p1 fire 3" },
-
- {"P2 Coin" , BIT_DIGITAL , CpsInp020+5, "p2 coin" },
- {"P2 Start" , BIT_DIGITAL , CpsInp020+1, "p2 start" },
- {"P2 Up" , BIT_DIGITAL , CpsInp000+3, "p2 up" },
- {"P2 Down" , BIT_DIGITAL , CpsInp000+2, "p2 down" },
- {"P2 Left" , BIT_DIGITAL , CpsInp000+1, "p2 left" },
- {"P2 Right" , BIT_DIGITAL , CpsInp000+0, "p2 right" },
- {"P2 Button 1" , BIT_DIGITAL , CpsInp000+4, "p2 fire 1" },
- {"P2 Button 2" , BIT_DIGITAL , CpsInp000+5, "p2 fire 2" },
- {"P2 Button 3" , BIT_DIGITAL , CpsInp000+6, "p2 fire 3" },
-
- {"Reset" , BIT_DIGITAL , &CpsReset , "reset" },
- {"Diagnostic" , BIT_DIGITAL , CpsInp021+1, "diag" },
- {"Service" , BIT_DIGITAL , CpsInp021+2, "service" },
- {"Volume Up" , BIT_DIGITAL , &Cps2VolUp , "p1 fire 4" },
- {"Volume Down" , BIT_DIGITAL , &Cps2VolDwn, "p1 fire 5" },
-};
-
-STDINPUTINFO(Csclub)
-
-static struct BurnInputInfo CybotsInputList[] = {
- {"P1 Coin" , BIT_DIGITAL , CpsInp020+4, "p1 coin" },
- {"P1 Start" , BIT_DIGITAL , CpsInp020+0, "p1 start" },
- {"P1 Up" , BIT_DIGITAL , CpsInp001+3, "p1 up" },
- {"P1 Down" , BIT_DIGITAL , CpsInp001+2, "p1 down" },
- {"P1 Left" , BIT_DIGITAL , CpsInp001+1, "p1 left" },
- {"P1 Right" , BIT_DIGITAL , CpsInp001+0, "p1 right" },
- {"P1 Low Attack" , BIT_DIGITAL , CpsInp001+4, "p1 fire 1" },
- {"P1 High Attack" , BIT_DIGITAL , CpsInp001+5, "p1 fire 2" },
- {"P1 Boost" , BIT_DIGITAL , CpsInp001+6, "p1 fire 3" },
- {"P1 Weapon" , BIT_DIGITAL , CpsInp001+7, "p1 fire 4" },
-
- {"P2 Coin" , BIT_DIGITAL , CpsInp020+5, "p2 coin" },
- {"P2 Start" , BIT_DIGITAL , CpsInp020+1, "p2 start" },
- {"P2 Up" , BIT_DIGITAL , CpsInp000+3, "p2 up" },
- {"P2 Down" , BIT_DIGITAL , CpsInp000+2, "p2 down" },
- {"P2 Left" , BIT_DIGITAL , CpsInp000+1, "p2 left" },
- {"P2 Right" , BIT_DIGITAL , CpsInp000+0, "p2 right" },
- {"P2 Low Attack" , BIT_DIGITAL , CpsInp000+4, "p2 fire 1" },
- {"P2 High Attack" , BIT_DIGITAL , CpsInp000+5, "p2 fire 2" },
- {"P2 Boost" , BIT_DIGITAL , CpsInp000+6, "p2 fire 3" },
- {"P2 Weapon" , BIT_DIGITAL , CpsInp000+7, "p2 fire 4" },
-
- {"Reset" , BIT_DIGITAL , &CpsReset , "reset" },
- {"Diagnostic" , BIT_DIGITAL , CpsInp021+1, "diag" },
- {"Service" , BIT_DIGITAL , CpsInp021+2, "service" },
- {"Volume Up" , BIT_DIGITAL , &Cps2VolUp , "p1 fire 5" },
- {"Volume Down" , BIT_DIGITAL , &Cps2VolDwn, "p1 fire 6" },
-};
-
-STDINPUTINFO(Cybots)
-
-static struct BurnInputInfo DdsomInputList[] = {
- {"P1 Coin" , BIT_DIGITAL , CpsInp020+4, "p1 coin" },
- {"P1 Start" , BIT_DIGITAL , CpsInp020+0, "p1 start" },
- {"P1 Up" , BIT_DIGITAL , CpsInp001+3, "p1 up" },
- {"P1 Down" , BIT_DIGITAL , CpsInp001+2, "p1 down" },
- {"P1 Left" , BIT_DIGITAL , CpsInp001+1, "p1 left" },
- {"P1 Right" , BIT_DIGITAL , CpsInp001+0, "p1 right" },
- {"P1 Attack" , BIT_DIGITAL , CpsInp001+4, "p1 fire 1" },
- {"P1 Jump" , BIT_DIGITAL , CpsInp001+5, "p1 fire 2" },
- {"P1 Select" , BIT_DIGITAL , CpsInp001+6, "p1 fire 3" },
- {"P1 Use" , BIT_DIGITAL , CpsInp001+7, "p1 fire 4" },
-
- {"P2 Coin" , BIT_DIGITAL , CpsInp020+5, "p2 coin" },
- {"P2 Start" , BIT_DIGITAL , CpsInp020+1, "p2 start" },
- {"P2 Up" , BIT_DIGITAL , CpsInp000+3, "p2 up" },
- {"P2 Down" , BIT_DIGITAL , CpsInp000+2, "p2 down" },
- {"P2 Left" , BIT_DIGITAL , CpsInp000+1, "p2 left" },
- {"P2 Right" , BIT_DIGITAL , CpsInp000+0, "p2 right" },
- {"P2 Attack" , BIT_DIGITAL , CpsInp000+4, "p2 fire 1" },
- {"P2 Jump" , BIT_DIGITAL , CpsInp000+5, "p2 fire 2" },
- {"P2 Select" , BIT_DIGITAL , CpsInp000+6, "p2 fire 3" },
- {"P2 Use" , BIT_DIGITAL , CpsInp000+7, "p2 fire 4" },
-
- {"P3 Coin" , BIT_DIGITAL , CpsInp020+6, "p3 coin" },
- {"P3 Start" , BIT_DIGITAL , CpsInp020+2, "p3 start" },
- {"P3 Up" , BIT_DIGITAL , CpsInp011+3, "p3 up" },
- {"P3 Down" , BIT_DIGITAL , CpsInp011+2, "p3 down" },
- {"P3 Left" , BIT_DIGITAL , CpsInp011+1, "p3 left" },
- {"P3 Right" , BIT_DIGITAL , CpsInp011+0, "p3 right" },
- {"P3 Attack" , BIT_DIGITAL , CpsInp011+4, "p3 fire 1" },
- {"P3 Jump" , BIT_DIGITAL , CpsInp011+5, "p3 fire 2" },
- {"P3 Select" , BIT_DIGITAL , CpsInp011+6, "p3 fire 3" },
- {"P3 Use" , BIT_DIGITAL , CpsInp011+7, "p3 fire 4" },
-
- {"P4 Coin" , BIT_DIGITAL , CpsInp020+7, "p4 coin" },
- {"P4 Start" , BIT_DIGITAL , CpsInp020+3, "p4 start" },
- {"P4 Up" , BIT_DIGITAL , CpsInp010+3, "p4 up" },
- {"P4 Down" , BIT_DIGITAL , CpsInp010+2, "p4 down" },
- {"P4 Left" , BIT_DIGITAL , CpsInp010+1, "p4 left" },
- {"P4 Right" , BIT_DIGITAL , CpsInp010+0, "p4 right" },
- {"P4 Attack" , BIT_DIGITAL , CpsInp010+4, "p4 fire 1" },
- {"P4 Jump" , BIT_DIGITAL , CpsInp010+5, "p4 fire 2" },
- {"P4 Select" , BIT_DIGITAL , CpsInp010+6, "p4 fire 3" },
- {"P4 Use" , BIT_DIGITAL , CpsInp010+7, "p4 fire 4" },
-
- {"Reset" , BIT_DIGITAL , &CpsReset , "reset" },
- {"Diagnostic" , BIT_DIGITAL , CpsInp021+1, "diag" },
- {"Service" , BIT_DIGITAL , CpsInp021+2, "service" },
- {"Volume Up" , BIT_DIGITAL , &Cps2VolUp , "p1 fire 5" },
- {"Volume Down" , BIT_DIGITAL , &Cps2VolDwn, "p1 fire 6" },
-};
-
-STDINPUTINFO(Ddsom)
-
-static struct BurnInputInfo DdtodInputList[] =
-{
- {"P1 Coin" , BIT_DIGITAL , CpsInp020+4, "p1 coin" },
- {"P1 Start" , BIT_DIGITAL , CpsInp020+0, "p1 start" },
- {"P1 Up" , BIT_DIGITAL , CpsInp001+3, "p1 up" },
- {"P1 Down" , BIT_DIGITAL , CpsInp001+2, "p1 down" },
- {"P1 Left" , BIT_DIGITAL , CpsInp001+1, "p1 left" },
- {"P1 Right" , BIT_DIGITAL , CpsInp001+0, "p1 right" },
- {"P1 Attack" , BIT_DIGITAL , CpsInp001+4, "p1 fire 1" },
- {"P1 Jump" , BIT_DIGITAL , CpsInp001+5, "p1 fire 2" },
- {"P1 Use" , BIT_DIGITAL , CpsInp001+6, "p1 fire 3" },
- {"P1 Select" , BIT_DIGITAL , CpsInp001+7, "p1 fire 4" },
-
- {"P2 Coin" , BIT_DIGITAL , CpsInp020+5, "p2 coin" },
- {"P2 Start" , BIT_DIGITAL , CpsInp020+1, "p2 start" },
- {"P2 Up" , BIT_DIGITAL , CpsInp000+3, "p2 up" },
- {"P2 Down" , BIT_DIGITAL , CpsInp000+2, "p2 down" },
- {"P2 Left" , BIT_DIGITAL , CpsInp000+1, "p2 left" },
- {"P2 Right" , BIT_DIGITAL , CpsInp000+0, "p2 right" },
- {"P2 Attack" , BIT_DIGITAL , CpsInp000+4, "p2 fire 1" },
- {"P2 Jump" , BIT_DIGITAL , CpsInp000+5, "p2 fire 2" },
- {"P2 Use" , BIT_DIGITAL , CpsInp000+6, "p2 fire 3" },
- {"P2 Select" , BIT_DIGITAL , CpsInp000+7, "p2 fire 4" },
-
- {"P3 Coin" , BIT_DIGITAL , CpsInp020+6, "p3 coin" },
- {"P3 Start" , BIT_DIGITAL , CpsInp020+2, "p3 start" },
- {"P3 Up" , BIT_DIGITAL , CpsInp011+3, "p3 up" },
- {"P3 Down" , BIT_DIGITAL , CpsInp011+2, "p3 down" },
- {"P3 Left" , BIT_DIGITAL , CpsInp011+1, "p3 left" },
- {"P3 Right" , BIT_DIGITAL , CpsInp011+0, "p3 right" },
- {"P3 Attack" , BIT_DIGITAL , CpsInp011+4, "p3 fire 1" },
- {"P3 Jump" , BIT_DIGITAL , CpsInp011+5, "p3 fire 2" },
- {"P3 Use" , BIT_DIGITAL , CpsInp011+6, "p3 fire 3" },
- {"P3 Select" , BIT_DIGITAL , CpsInp011+7, "p3 fire 4" },
-
- {"P4 Coin" , BIT_DIGITAL , CpsInp020+7, "p4 coin" },
- {"P4 Start" , BIT_DIGITAL , CpsInp020+3, "p4 start" },
- {"P4 Up" , BIT_DIGITAL , CpsInp010+3, "p4 up" },
- {"P4 Down" , BIT_DIGITAL , CpsInp010+2, "p4 down" },
- {"P4 Left" , BIT_DIGITAL , CpsInp010+1, "p4 left" },
- {"P4 Right" , BIT_DIGITAL , CpsInp010+0, "p4 right" },
- {"P4 Attack" , BIT_DIGITAL , CpsInp010+4, "p4 fire 1" },
- {"P4 Jump" , BIT_DIGITAL , CpsInp010+5, "p4 fire 2" },
- {"P4 Use" , BIT_DIGITAL , CpsInp010+6, "p4 fire 3" },
- {"P4 Select" , BIT_DIGITAL , CpsInp010+7, "p4 fire 4" },
-
- {"Reset" , BIT_DIGITAL , &CpsReset, "reset" },
- {"Diagnostic" , BIT_DIGITAL , CpsInp021+1, "diag" },
- {"Service" , BIT_DIGITAL , CpsInp021+2, "service" },
- {"Volume Up" , BIT_DIGITAL , &Cps2VolUp , "p1 fire 5" },
- {"Volume Down" , BIT_DIGITAL , &Cps2VolDwn, "p1 fire 6" },
-};
-
-STDINPUTINFO(Ddtod)
-
-static struct BurnInputInfo DimahooInputList[] = {
- {"P1 Coin" , BIT_DIGITAL , CpsInp020+4, "p1 coin" },
- {"P1 Start" , BIT_DIGITAL , CpsInp020+0, "p1 start" },
- {"P1 Up" , BIT_DIGITAL , CpsInp001+3, "p1 up" },
- {"P1 Down" , BIT_DIGITAL , CpsInp001+2, "p1 down" },
- {"P1 Left" , BIT_DIGITAL , CpsInp001+1, "p1 left" },
- {"P1 Right" , BIT_DIGITAL , CpsInp001+0, "p1 right" },
- {"P1 Shot" , BIT_DIGITAL , CpsInp001+4, "p1 fire 1" },
- {"P1 Bomb" , BIT_DIGITAL , CpsInp001+5, "p1 fire 2" },
- {"P1 Shot (auto)" , BIT_DIGITAL , CpsInp001+6, "p1 fire 3" },
-
- {"P2 Coin" , BIT_DIGITAL , CpsInp020+5, "p2 coin" },
- {"P2 Start" , BIT_DIGITAL , CpsInp020+1, "p2 start" },
- {"P2 Up" , BIT_DIGITAL , CpsInp000+3, "p2 up" },
- {"P2 Down" , BIT_DIGITAL , CpsInp000+2, "p2 down" },
- {"P2 Left" , BIT_DIGITAL , CpsInp000+1, "p2 left" },
- {"P2 Right" , BIT_DIGITAL , CpsInp000+0, "p2 right" },
- {"P2 Shot" , BIT_DIGITAL , CpsInp000+4, "p2 fire 1" },
- {"P2 Bomb" , BIT_DIGITAL , CpsInp000+5, "p2 fire 2" },
- {"P2 Shot (auto)" , BIT_DIGITAL , CpsInp000+6, "p2 fire 3" },
-
- {"Reset" , BIT_DIGITAL , &CpsReset , "reset" },
- {"Diagnostic" , BIT_DIGITAL , CpsInp021+1, "diag" },
- {"Service" , BIT_DIGITAL , CpsInp021+2, "service" },
- {"Volume Up" , BIT_DIGITAL , &Cps2VolUp , "p1 fire 4" },
- {"Volume Down" , BIT_DIGITAL , &Cps2VolDwn, "p1 fire 5" },
-};
-
-STDINPUTINFO(Dimahoo)
-
-static struct BurnInputInfo EcofghtrInputList[] = {
- {"P1 Coin" , BIT_DIGITAL , CpsInp020+4, "p1 coin" },
- {"P1 Start" , BIT_DIGITAL , CpsInp020+0, "p1 start" },
- {"P1 Up" , BIT_DIGITAL , CpsInp001+3, "p1 up" },
- {"P1 Down" , BIT_DIGITAL , CpsInp001+2, "p1 down" },
- {"P1 Left" , BIT_DIGITAL , CpsInp001+1, "p1 left" },
- {"P1 Right" , BIT_DIGITAL , CpsInp001+0, "p1 right" },
- {"P1 Turn 1" , BIT_DIGITAL , CpsInp001+4, "p1 fire 1" },
- {"P1 Attack" , BIT_DIGITAL , CpsInp001+5, "p1 fire 2" },
- {"P1 Turn 2" , BIT_DIGITAL , CpsInp001+6, "p1 fire 3" },
-
- {"P2 Coin" , BIT_DIGITAL , CpsInp020+5, "p2 coin" },
- {"P2 Start" , BIT_DIGITAL , CpsInp020+1, "p2 start" },
- {"P2 Up" , BIT_DIGITAL , CpsInp000+3, "p2 up" },
- {"P2 Down" , BIT_DIGITAL , CpsInp000+2, "p2 down" },
- {"P2 Left" , BIT_DIGITAL , CpsInp000+1, "p2 left" },
- {"P2 Right" , BIT_DIGITAL , CpsInp000+0, "p2 right" },
- {"P2 Turn 1" , BIT_DIGITAL , CpsInp000+4, "p2 fire 1" },
- {"P2 Attack" , BIT_DIGITAL , CpsInp000+5, "p2 fire 2" },
- {"P2 Turn 2" , BIT_DIGITAL , CpsInp000+6, "p2 fire 3" },
-
- {"Reset" , BIT_DIGITAL , &CpsReset , "reset" },
- {"Diagnostic" , BIT_DIGITAL , CpsInp021+1, "diag" },
- {"Service" , BIT_DIGITAL , CpsInp021+2, "service" },
- {"Volume Up" , BIT_DIGITAL , &Cps2VolUp , "p1 fire 4" },
- {"Volume Down" , BIT_DIGITAL , &Cps2VolDwn, "p1 fire 5" },
-};
-
-STDINPUTINFO(Ecofghtr)
-
-static struct BurnInputInfo GigawingInputList[] = {
- {"P1 Coin" , BIT_DIGITAL , CpsInp020+4, "p1 coin" },
- {"P1 Start" , BIT_DIGITAL , CpsInp020+0, "p1 start" },
- {"P1 Up" , BIT_DIGITAL , CpsInp001+3, "p1 up" },
- {"P1 Down" , BIT_DIGITAL , CpsInp001+2, "p1 down" },
- {"P1 Left" , BIT_DIGITAL , CpsInp001+1, "p1 left" },
- {"P1 Right" , BIT_DIGITAL , CpsInp001+0, "p1 right" },
- {"P1 Shot" , BIT_DIGITAL , CpsInp001+4, "p1 fire 1" },
- {"P1 Bomb" , BIT_DIGITAL , CpsInp001+5, "p1 fire 2" },
-
- {"P2 Coin" , BIT_DIGITAL , CpsInp020+5, "p2 coin" },
- {"P2 Start" , BIT_DIGITAL , CpsInp020+1, "p2 start" },
- {"P2 Up" , BIT_DIGITAL , CpsInp000+3, "p2 up" },
- {"P2 Down" , BIT_DIGITAL , CpsInp000+2, "p2 down" },
- {"P2 Left" , BIT_DIGITAL , CpsInp000+1, "p2 left" },
- {"P2 Right" , BIT_DIGITAL , CpsInp000+0, "p2 right" },
- {"P2 Shot" , BIT_DIGITAL , CpsInp000+4, "p2 fire 1" },
- {"P2 Bomb" , BIT_DIGITAL , CpsInp000+5, "p2 fire 2" },
-
- {"Reset" , BIT_DIGITAL , &CpsReset , "reset" },
- {"Diagnostic" , BIT_DIGITAL , CpsInp021+1, "diag" },
- {"Service" , BIT_DIGITAL , CpsInp021+2, "service" },
- {"Volume Up" , BIT_DIGITAL , &Cps2VolUp , "p1 fire 3" },
- {"Volume Down" , BIT_DIGITAL , &Cps2VolDwn, "p1 fire 4" },
-};
-
-STDINPUTINFO(Gigawing)
-
-static struct BurnInputInfo JyangokuInputList[] = {
- {"P1 Coin" , BIT_DIGITAL , CpsInp020+4, "p1 coin" },
- {"P1 Start" , BIT_DIGITAL , CpsInp020+0, "p1 start" },
- {"P1 Up" , BIT_DIGITAL , CpsInp001+3, "p1 up" },
- {"P1 Down" , BIT_DIGITAL , CpsInp001+2, "p1 down" },
- {"P1 Left" , BIT_DIGITAL , CpsInp001+1, "p1 left" },
- {"P1 Right" , BIT_DIGITAL , CpsInp001+0, "p1 right" },
- {"P1 Shot1" , BIT_DIGITAL , CpsInp001+4, "p1 fire 1" },
- {"P1 Shot2" , BIT_DIGITAL , CpsInp001+5, "p1 fire 2" },
-
- {"Reset" , BIT_DIGITAL , &CpsReset , "reset" },
- {"Diagnostic" , BIT_DIGITAL , CpsInp021+1, "diag" },
- {"Service" , BIT_DIGITAL , CpsInp021+2, "service" },
- {"Volume Up" , BIT_DIGITAL , &Cps2VolUp , "p1 fire 3" },
- {"Volume Down" , BIT_DIGITAL , &Cps2VolDwn, "p1 fire 4" },
-};
-
-STDINPUTINFO(Jyangoku)
-
-static struct BurnInputInfo Megaman2InputList[] = {
- {"P1 Coin" , BIT_DIGITAL , CpsInp020+4, "p1 coin" },
- {"P1 Start" , BIT_DIGITAL , CpsInp020+0, "p1 start" },
- {"P1 Up" , BIT_DIGITAL , CpsInp001+3, "p1 up" },
- {"P1 Down" , BIT_DIGITAL , CpsInp001+2, "p1 down" },
- {"P1 Left" , BIT_DIGITAL , CpsInp001+1, "p1 left" },
- {"P1 Right" , BIT_DIGITAL , CpsInp001+0, "p1 right" },
- {"P1 Attack" , BIT_DIGITAL , CpsInp001+4, "p1 fire 1" },
- {"P1 Jump" , BIT_DIGITAL , CpsInp001+5, "p1 fire 2" },
- {"P1 Select" , BIT_DIGITAL , CpsInp001+6, "p1 fire 3" },
-
- {"P2 Coin" , BIT_DIGITAL , CpsInp020+5, "p2 coin" },
- {"P2 Start" , BIT_DIGITAL , CpsInp020+1, "p2 start" },
- {"P2 Up" , BIT_DIGITAL , CpsInp000+3, "p2 up" },
- {"P2 Down" , BIT_DIGITAL , CpsInp000+2, "p2 down" },
- {"P2 Left" , BIT_DIGITAL , CpsInp000+1, "p2 left" },
- {"P2 Right" , BIT_DIGITAL , CpsInp000+0, "p2 right" },
- {"P2 Attack" , BIT_DIGITAL , CpsInp000+4, "p2 fire 1" },
- {"P2 Jump" , BIT_DIGITAL , CpsInp000+5, "p2 fire 2" },
- {"P2 Select" , BIT_DIGITAL , CpsInp000+6, "p2 fire 3" },
-
- {"Reset" , BIT_DIGITAL , &CpsReset , "reset" },
- {"Diagnostic" , BIT_DIGITAL , CpsInp021+1, "diag" },
- {"Service" , BIT_DIGITAL , CpsInp021+2, "service" },
- {"Volume Up" , BIT_DIGITAL , &Cps2VolUp , "p1 fire 4" },
- {"Volume Down" , BIT_DIGITAL , &Cps2VolDwn, "p1 fire 5" },
-};
-
-STDINPUTINFO(Megaman2)
-
-static struct BurnInputInfo Mmancp2uInputList[] = {
- {"P1 Coin" , BIT_DIGITAL , CpsInp020+4, "p1 coin" },
- {"P1 Start" , BIT_DIGITAL , CpsInp020+0, "p1 start" },
- {"P1 Up" , BIT_DIGITAL , CpsInp001+3, "p1 up" },
- {"P1 Down" , BIT_DIGITAL , CpsInp001+2, "p1 down" },
- {"P1 Left" , BIT_DIGITAL , CpsInp001+1, "p1 left" },
- {"P1 Right" , BIT_DIGITAL , CpsInp001+0, "p1 right" },
- {"P1 Punch" , BIT_DIGITAL , CpsInp001+4, "p1 fire 1" },
- {"P1 Kick" , BIT_DIGITAL , CpsInp001+5, "p1 fire 2" },
- {"P1 Special" , BIT_DIGITAL , CpsInp001+6, "p1 fire 3" },
-
- {"P2 Coin" , BIT_DIGITAL , CpsInp020+5, "p2 coin" },
- {"P2 Start" , BIT_DIGITAL , CpsInp020+1, "p2 start" },
- {"P2 Up" , BIT_DIGITAL , CpsInp000+3, "p2 up" },
- {"P2 Down" , BIT_DIGITAL , CpsInp000+2, "p2 down" },
- {"P2 Left" , BIT_DIGITAL , CpsInp000+1, "p2 left" },
- {"P2 Right" , BIT_DIGITAL , CpsInp000+0, "p2 right" },
- {"P2 Punch" , BIT_DIGITAL , CpsInp000+4, "p2 fire 1" },
- {"P2 Kick" , BIT_DIGITAL , CpsInp000+5, "p2 fire 2" },
- {"P2 Special" , BIT_DIGITAL , CpsInp000+6, "p2 fire 3" },
-
- {"Reset" , BIT_DIGITAL , &CpsReset , "reset" },
- {"Diagnostic" , BIT_DIGITAL , CpsInp021+1, "diag" },
- {"Service" , BIT_DIGITAL , CpsInp021+2, "service" },
- {"Volume Up" , BIT_DIGITAL , &Cps2VolUp , "p1 fire 4" },
- {"Volume Down" , BIT_DIGITAL , &Cps2VolDwn, "p1 fire 5" },
-};
-
-STDINPUTINFO(Mmancp2u)
-
-static struct BurnInputInfo MmatrixInputList[] = {
- {"P1 Coin" , BIT_DIGITAL , CpsInp020+4, "p1 coin" },
- {"P1 Start" , BIT_DIGITAL , CpsInp020+0, "p1 start" },
- {"P1 Up" , BIT_DIGITAL , CpsInp001+3, "p1 up" },
- {"P1 Down" , BIT_DIGITAL , CpsInp001+2, "p1 down" },
- {"P1 Left" , BIT_DIGITAL , CpsInp001+1, "p1 left" },
- {"P1 Right" , BIT_DIGITAL , CpsInp001+0, "p1 right" },
- {"P1 Shot" , BIT_DIGITAL , CpsInp001+4, "p1 fire 1" },
-
- {"P2 Coin" , BIT_DIGITAL , CpsInp020+5, "p2 coin" },
- {"P2 Start" , BIT_DIGITAL , CpsInp020+1, "p2 start" },
- {"P2 Up" , BIT_DIGITAL , CpsInp000+3, "p2 up" },
- {"P2 Down" , BIT_DIGITAL , CpsInp000+2, "p2 down" },
- {"P2 Left" , BIT_DIGITAL , CpsInp000+1, "p2 left" },
- {"P2 Right" , BIT_DIGITAL , CpsInp000+0, "p2 right" },
- {"P2 Shot" , BIT_DIGITAL , CpsInp000+4, "p2 fire 1" },
-
- {"Reset" , BIT_DIGITAL , &CpsReset , "reset" },
- {"Diagnostic" , BIT_DIGITAL , CpsInp021+1, "diag" },
- {"Service" , BIT_DIGITAL , CpsInp021+2, "service" },
- {"Volume Up" , BIT_DIGITAL , &Cps2VolUp , "p1 fire 2" },
- {"Volume Down" , BIT_DIGITAL , &Cps2VolDwn, "p1 fire 3" },
-};
-
-STDINPUTINFO(Mmatrix)
-
-static struct BurnInputInfo MpangInputList[] = {
- {"P1 Coin" , BIT_DIGITAL , CpsInp020+4, "p1 coin" },
- {"P1 Start" , BIT_DIGITAL , CpsInp020+0, "p1 start" },
- {"P1 Up" , BIT_DIGITAL , CpsInp001+3, "p1 up" },
- {"P1 Down" , BIT_DIGITAL , CpsInp001+2, "p1 down" },
- {"P1 Left" , BIT_DIGITAL , CpsInp001+1, "p1 left" },
- {"P1 Right" , BIT_DIGITAL , CpsInp001+0, "p1 right" },
- {"P1 Shot1" , BIT_DIGITAL , CpsInp001+4, "p1 fire 1" },
- {"P1 Shot2" , BIT_DIGITAL , CpsInp001+5, "p1 fire 2" },
-
- {"P2 Coin" , BIT_DIGITAL , CpsInp020+5, "p2 coin" },
- {"P2 Start" , BIT_DIGITAL , CpsInp020+1, "p2 start" },
- {"P2 Up" , BIT_DIGITAL , CpsInp000+3, "p2 up" },
- {"P2 Down" , BIT_DIGITAL , CpsInp000+2, "p2 down" },
- {"P2 Left" , BIT_DIGITAL , CpsInp000+1, "p2 left" },
- {"P2 Right" , BIT_DIGITAL , CpsInp000+0, "p2 right" },
- {"P2 Shot1" , BIT_DIGITAL , CpsInp000+4, "p2 fire 1" },
- {"P2 Shot2" , BIT_DIGITAL , CpsInp000+5, "p2 fire 2" },
-
- {"Reset" , BIT_DIGITAL , &CpsReset , "reset" },
- {"Diagnostic" , BIT_DIGITAL , CpsInp021+1, "diag" },
- {"Service" , BIT_DIGITAL , CpsInp021+2, "service" },
- {"Volume Up" , BIT_DIGITAL , &Cps2VolUp , "p1 fire 3" },
- {"Volume Down" , BIT_DIGITAL , &Cps2VolDwn, "p1 fire 4" },
-};
-
-STDINPUTINFO(Mpang)
-
-static struct BurnInputInfo ProgearInputList[] = {
- {"P1 Coin" , BIT_DIGITAL , CpsInp020+4, "p1 coin" },
- {"P1 Start" , BIT_DIGITAL , CpsInp020+0, "p1 start" },
- {"P1 Up" , BIT_DIGITAL , CpsInp001+3, "p1 up" },
- {"P1 Down" , BIT_DIGITAL , CpsInp001+2, "p1 down" },
- {"P1 Left" , BIT_DIGITAL , CpsInp001+1, "p1 left" },
- {"P1 Right" , BIT_DIGITAL , CpsInp001+0, "p1 right" },
- {"P1 Shot" , BIT_DIGITAL , CpsInp001+4, "p1 fire 1" },
- {"P1 Bomb" , BIT_DIGITAL , CpsInp001+5, "p1 fire 2" },
- {"P1 Auto" , BIT_DIGITAL , CpsInp001+6, "p1 fire 3" },
-
- {"P2 Coin" , BIT_DIGITAL , CpsInp020+5, "p2 coin" },
- {"P2 Start" , BIT_DIGITAL , CpsInp020+1, "p2 start" },
- {"P2 Up" , BIT_DIGITAL , CpsInp000+3, "p2 up" },
- {"P2 Down" , BIT_DIGITAL , CpsInp000+2, "p2 down" },
- {"P2 Left" , BIT_DIGITAL , CpsInp000+1, "p2 left" },
- {"P2 Right" , BIT_DIGITAL , CpsInp000+0, "p2 right" },
- {"P2 Shot" , BIT_DIGITAL , CpsInp000+4, "p2 fire 1" },
- {"P2 Bomb" , BIT_DIGITAL , CpsInp000+5, "p2 fire 2" },
- {"P2 Auto" , BIT_DIGITAL , CpsInp000+6, "p2 fire 3" },
-
- {"Reset" , BIT_DIGITAL , &CpsReset , "reset" },
- {"Diagnostic" , BIT_DIGITAL , CpsInp021+1, "diag" },
- {"Service" , BIT_DIGITAL , CpsInp021+2, "service" },
- {"Volume Up" , BIT_DIGITAL , &Cps2VolUp , "p1 fire 4" },
- {"Volume Down" , BIT_DIGITAL , &Cps2VolDwn, "p1 fire 5" },
-};
-
-STDINPUTINFO(Progear)
-
-#define A(a, b, c, d) {a, b, (UINT8*)(c), d}
-
-static struct BurnInputInfo Pzloop2InputList[] = {
- {"P1 Coin" , BIT_DIGITAL , CpsInp020+4 , "p1 coin" },
- {"P1 Start" , BIT_DIGITAL , CpsInp020+0 , "p1 start" },
- {"P1 Up" , BIT_DIGITAL , CpsInp001+3 , "p1 up" },
- {"P1 Down" , BIT_DIGITAL , CpsInp001+2 , "p1 down" },
- {"P1 Left" , BIT_DIGITAL , CpsInp001+1 , "p1 left" },
- {"P1 Right" , BIT_DIGITAL , CpsInp001+0 , "p1 right" },
- {"P1 Shot" , BIT_DIGITAL , CpsInp001+4 , "p1 fire 1" },
- A("P1 Paddle" , BIT_ANALOG_REL, &CpsInpPaddle1, "mouse x-axis"),
-
- {"P2 Coin" , BIT_DIGITAL , CpsInp020+5 , "p2 coin" },
- {"P2 Start" , BIT_DIGITAL , CpsInp020+1 , "p2 start" },
- {"P2 Up" , BIT_DIGITAL , CpsInp000+3 , "p2 up" },
- {"P2 Down" , BIT_DIGITAL , CpsInp000+2 , "p2 down" },
- {"P2 Left" , BIT_DIGITAL , CpsInp000+1 , "p2 left" },
- {"P2 Right" , BIT_DIGITAL , CpsInp000+0 , "p2 right" },
- {"P2 Shot" , BIT_DIGITAL , CpsInp000+4 , "p2 fire 1" },
- A("P2 Paddle" , BIT_ANALOG_REL, &CpsInpPaddle2, "p2 z-axis" ),
-
- {"Reset" , BIT_DIGITAL , &CpsReset , "reset" },
- {"Diagnostic" , BIT_DIGITAL , CpsInp021+1 , "diag" },
- {"Service" , BIT_DIGITAL , CpsInp021+2 , "service" },
- {"Volume Up" , BIT_DIGITAL , &Cps2VolUp , "p1 fire 2" },
- {"Volume Down" , BIT_DIGITAL , &Cps2VolDwn , "p1 fire 3" },
-};
-
-#undef A
-
-STDINPUTINFO(Pzloop2)
-
-static struct BurnInputInfo QndreamInputList[] = {
- {"P1 Coin" , BIT_DIGITAL , CpsInp020+4, "p1 coin" },
- {"P1 Start" , BIT_DIGITAL , CpsInp020+0, "p1 start" },
- {"P1 Answer 1" , BIT_DIGITAL , CpsInp001+4, "p1 fire 1" },
- {"P1 Answer 2" , BIT_DIGITAL , CpsInp001+5, "p1 fire 2" },
- {"P1 Answer 3" , BIT_DIGITAL , CpsInp001+6, "p1 fire 3" },
- {"P1 Answer 4" , BIT_DIGITAL , CpsInp001+7, "p1 fire 4" },
-
- {"P2 Coin" , BIT_DIGITAL , CpsInp020+5, "p2 coin" },
- {"P2 Start" , BIT_DIGITAL , CpsInp020+1, "p2 start" },
- {"P2 Answer 1" , BIT_DIGITAL , CpsInp000+4, "p2 fire 1" },
- {"P2 Answer 2" , BIT_DIGITAL , CpsInp000+5, "p2 fire 2" },
- {"P2 Answer 3" , BIT_DIGITAL , CpsInp000+6, "p2 fire 3" },
- {"P2 Answer 4" , BIT_DIGITAL , CpsInp000+7, "p2 fire 4" },
-
- {"Reset" , BIT_DIGITAL , &CpsReset, "reset" },
- {"Diagnostic" , BIT_DIGITAL , CpsInp021+1, "diag" },
- {"Service" , BIT_DIGITAL , CpsInp021+2, "service" },
- {"Volume Up" , BIT_DIGITAL , &Cps2VolUp , "p1 fire 5" },
- {"Volume Down" , BIT_DIGITAL , &Cps2VolDwn, "p1 fire 6" },
-};
-
-STDINPUTINFO(Qndream)
-
-static struct BurnInputInfo RingdestInputList[] = {
- {"P1 Coin" , BIT_DIGITAL , CpsInp020+4, "p1 coin" },
- {"P1 Start" , BIT_DIGITAL , CpsInp020+0, "p1 start" },
- {"P1 Up" , BIT_DIGITAL , CpsInp001+3, "p1 up" },
- {"P1 Down" , BIT_DIGITAL , CpsInp001+2, "p1 down" },
- {"P1 Left" , BIT_DIGITAL , CpsInp001+1, "p1 left" },
- {"P1 Right" , BIT_DIGITAL , CpsInp001+0, "p1 right" },
- {"P1 Hold" , BIT_DIGITAL , CpsInp001+4, "p1 fire 1" },
- {"P1 Weak punch" , BIT_DIGITAL , CpsInp001+5, "p1 fire 2" },
- {"P1 Strong punch" , BIT_DIGITAL , CpsInp001+6, "p1 fire 3" },
- {"P1 Button 4" , BIT_DIGITAL , CpsInp011+0, "p1 fire 4" },
- {"P1 Weak kick" , BIT_DIGITAL , CpsInp011+1, "p1 fire 5" },
- {"P1 Strong kick" , BIT_DIGITAL , CpsInp011+2, "p1 fire 6" },
-
- {"P2 Coin" , BIT_DIGITAL , CpsInp020+5, "p2 coin" },
- {"P2 Start" , BIT_DIGITAL , CpsInp020+1, "p2 start" },
- {"P2 Up" , BIT_DIGITAL , CpsInp000+3, "p2 up" },
- {"P2 Down" , BIT_DIGITAL , CpsInp000+2, "p2 down" },
- {"P2 Left" , BIT_DIGITAL , CpsInp000+1, "p2 left" },
- {"P2 Right" , BIT_DIGITAL , CpsInp000+0, "p2 right" },
- {"P2 Hold" , BIT_DIGITAL , CpsInp000+4, "p2 fire 1" },
- {"P2 Weak punch" , BIT_DIGITAL , CpsInp000+5, "p2 fire 2" },
- {"P2 Strong punch" , BIT_DIGITAL , CpsInp000+6, "p2 fire 3" },
- {"P2 Button 4" , BIT_DIGITAL , CpsInp011+4, "p2 fire 4" },
- {"P2 Weak kick" , BIT_DIGITAL , CpsInp011+5, "p2 fire 5" },
- {"P2 Strong kick" , BIT_DIGITAL , CpsInp020+6, "p2 fire 6" },
-
- {"Reset" , BIT_DIGITAL , &CpsReset , "reset" },
- {"Diagnostic" , BIT_DIGITAL , CpsInp021+1, "diag" },
- {"Service" , BIT_DIGITAL , CpsInp021+2, "service" },
- {"Volume Up" , BIT_DIGITAL , &Cps2VolUp , "p1 fire 7" },
- {"Volume Down" , BIT_DIGITAL , &Cps2VolDwn, "p1 fire 8" },
-};
-
-STDINPUTINFO(Ringdest)
-
-static struct BurnInputInfo SgemfInputList[] = {
- {"P1 Coin" , BIT_DIGITAL , CpsInp020+4, "p1 coin" },
- {"P1 Start" , BIT_DIGITAL , CpsInp020+0, "p1 start" },
- {"P1 Up" , BIT_DIGITAL , CpsInp001+3, "p1 up" },
- {"P1 Down" , BIT_DIGITAL , CpsInp001+2, "p1 down" },
- {"P1 Left" , BIT_DIGITAL , CpsInp001+1, "p1 left" },
- {"P1 Right" , BIT_DIGITAL , CpsInp001+0, "p1 right" },
- {"P1 Punch" , BIT_DIGITAL , CpsInp001+4, "p1 fire 1" },
- {"P1 Kick" , BIT_DIGITAL , CpsInp001+5, "p1 fire 2" },
- {"P1 Special" , BIT_DIGITAL , CpsInp001+6, "p1 fire 3" },
-
- {"P2 Coin" , BIT_DIGITAL , CpsInp020+5, "p2 coin" },
- {"P2 Start" , BIT_DIGITAL , CpsInp020+1, "p2 start" },
- {"P2 Up" , BIT_DIGITAL , CpsInp000+3, "p2 up" },
- {"P2 Down" , BIT_DIGITAL , CpsInp000+2, "p2 down" },
- {"P2 Left" , BIT_DIGITAL , CpsInp000+1, "p2 left" },
- {"P2 Right" , BIT_DIGITAL , CpsInp000+0, "p2 right" },
- {"P2 Punch" , BIT_DIGITAL , CpsInp000+4, "p2 fire 1" },
- {"P2 Kick" , BIT_DIGITAL , CpsInp000+5, "p2 fire 2" },
- {"P2 Special" , BIT_DIGITAL , CpsInp000+6, "p2 fire 3" },
-
- {"Reset" , BIT_DIGITAL , &CpsReset , "reset" },
- {"Diagnostic" , BIT_DIGITAL , CpsInp021+1, "diag" },
- {"Service" , BIT_DIGITAL , CpsInp021+2, "service" },
- {"Volume Up" , BIT_DIGITAL , &Cps2VolUp , "p1 fire 4" },
- {"Volume Down" , BIT_DIGITAL , &Cps2VolDwn, "p1 fire 5" },
-};
-
-STDINPUTINFO(Sgemf)
-
-static struct BurnInputInfo Spf2tInputList[] = {
- {"P1 Coin" , BIT_DIGITAL , CpsInp020+4, "p1 coin" },
- {"P1 Start" , BIT_DIGITAL , CpsInp020+0, "p1 start" },
- {"P1 Up" , BIT_DIGITAL , CpsInp001+3, "p1 up" },
- {"P1 Down" , BIT_DIGITAL , CpsInp001+2, "p1 down" },
- {"P1 Left" , BIT_DIGITAL , CpsInp001+1, "p1 left" },
- {"P1 Right" , BIT_DIGITAL , CpsInp001+0, "p1 right" },
- {"P1 Rotate Left" , BIT_DIGITAL , CpsInp001+4, "p1 fire 1" },
- {"P1 Rotate Right" , BIT_DIGITAL , CpsInp001+5, "p1 fire 2" },
-
- {"P2 Coin" , BIT_DIGITAL , CpsInp020+5, "p2 coin" },
- {"P2 Start" , BIT_DIGITAL , CpsInp020+1, "p2 start" },
- {"P2 Up" , BIT_DIGITAL , CpsInp000+3, "p2 up" },
- {"P2 Down" , BIT_DIGITAL , CpsInp000+2, "p2 down" },
- {"P2 Left" , BIT_DIGITAL , CpsInp000+1, "p2 left" },
- {"P2 Right" , BIT_DIGITAL , CpsInp000+0, "p2 right" },
- {"P2 Rotate Left" , BIT_DIGITAL , CpsInp000+4, "p2 fire 1" },
- {"P2 Rotate Right" , BIT_DIGITAL , CpsInp000+5, "p2 fire 2" },
-
- {"Reset" , BIT_DIGITAL , &CpsReset , "reset" },
- {"Diagnostic" , BIT_DIGITAL , CpsInp021+1, "diag" },
- {"Service" , BIT_DIGITAL , CpsInp021+2, "service" },
- {"Volume Up" , BIT_DIGITAL , &Cps2VolUp , "p1 fire 3" },
- {"Volume Down" , BIT_DIGITAL , &Cps2VolDwn, "p1 fire 4" },
-};
-
-STDINPUTINFO(Spf2t)
-
-// Rom Definitions
-
-static struct BurnRomInfo NinexxRomDesc[] = {
- { "19xu.03", 0x080000, 0x05955268, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "19xu.04", 0x080000, 0x3111ab7f, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "19xu.05", 0x080000, 0x38df4a63, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "19xu.06", 0x080000, 0x5c7e60d3, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "19x.07", 0x080000, 0x61c0296c, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "19x.13m", 0x080000, 0x427aeb18, CPS2_GFX | BRF_GRA },
- { "19x.15m", 0x080000, 0x63bdbf54, CPS2_GFX | BRF_GRA },
- { "19x.17m", 0x080000, 0x2dfe18b5, CPS2_GFX | BRF_GRA },
- { "19x.19m", 0x080000, 0xcbef9579, CPS2_GFX | BRF_GRA },
- { "19x.14m", 0x200000, 0xe916967c, CPS2_GFX | BRF_GRA },
- { "19x.16m", 0x200000, 0x6e75f3db, CPS2_GFX | BRF_GRA },
- { "19x.18m", 0x200000, 0x2213e798, CPS2_GFX | BRF_GRA },
- { "19x.20m", 0x200000, 0xab9d5b96, CPS2_GFX | BRF_GRA },
-
- { "19x.01", 0x020000, 0xef55195e, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "19x.11m", 0x200000, 0xd38beef3, CPS2_QSND | BRF_SND },
- { "19x.12m", 0x200000, 0xd47c96e2, CPS2_QSND | BRF_SND },
-
- { "19xx.key", 0x000014, 0x77e67ba1, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Ninexx)
-STD_ROM_FN(Ninexx)
-
-static struct BurnRomInfo NinexxaRomDesc[] = {
- { "09xa.03b", 0x080000, 0x2e994897, CPS2_PRG_68K | BRF_ESS | BRF_PRG }, /* Yes it's actually 09xa, that's not a typo */
- { "09xa.04b", 0x080000, 0x6364d001, CPS2_PRG_68K | BRF_ESS | BRF_PRG }, /* Yes it's actually 09xa, that's not a typo */
- { "09xa.05b", 0x080000, 0x00c1949b, CPS2_PRG_68K | BRF_ESS | BRF_PRG }, /* Yes it's actually 09xa, that's not a typo */
- { "09xa.06b", 0x080000, 0x363c1f6e, CPS2_PRG_68K | BRF_ESS | BRF_PRG }, /* Yes it's actually 09xa, that's not a typo */
- { "19xa.07", 0x080000, 0x61c0296c, CPS2_PRG_68K | BRF_ESS | BRF_PRG }, /* This one was different, it actually was 19xa */
-
- { "19x.13m", 0x080000, 0x427aeb18, CPS2_GFX | BRF_GRA },
- { "19x.15m", 0x080000, 0x63bdbf54, CPS2_GFX | BRF_GRA },
- { "19x.17m", 0x080000, 0x2dfe18b5, CPS2_GFX | BRF_GRA },
- { "19x.19m", 0x080000, 0xcbef9579, CPS2_GFX | BRF_GRA },
- { "19x.14m", 0x200000, 0xe916967c, CPS2_GFX | BRF_GRA },
- { "19x.16m", 0x200000, 0x6e75f3db, CPS2_GFX | BRF_GRA },
- { "19x.18m", 0x200000, 0x2213e798, CPS2_GFX | BRF_GRA },
- { "19x.20m", 0x200000, 0xab9d5b96, CPS2_GFX | BRF_GRA },
-
- { "19x.01", 0x020000, 0xef55195e, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "19x.11m", 0x200000, 0xd38beef3, CPS2_QSND | BRF_SND },
- { "19x.12m", 0x200000, 0xd47c96e2, CPS2_QSND | BRF_SND },
-
- { "19xxa.key", 0x000014, 0x2cd32eb9, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Ninexxa)
-STD_ROM_FN(Ninexxa)
-
-static struct BurnRomInfo Ninexxar1RomDesc[] = {
- { "19xa.03", 0x080000, 0x0c20fd50, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "19xa.04", 0x080000, 0x1fc37508, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "19xa.05", 0x080000, 0x6c9cc4ed, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "19xa.06", 0x080000, 0xca5b9f76, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "19x.07", 0x080000, 0x61c0296c, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "19x.13m", 0x080000, 0x427aeb18, CPS2_GFX | BRF_GRA },
- { "19x.15m", 0x080000, 0x63bdbf54, CPS2_GFX | BRF_GRA },
- { "19x.17m", 0x080000, 0x2dfe18b5, CPS2_GFX | BRF_GRA },
- { "19x.19m", 0x080000, 0xcbef9579, CPS2_GFX | BRF_GRA },
- { "19x.14m", 0x200000, 0xe916967c, CPS2_GFX | BRF_GRA },
- { "19x.16m", 0x200000, 0x6e75f3db, CPS2_GFX | BRF_GRA },
- { "19x.18m", 0x200000, 0x2213e798, CPS2_GFX | BRF_GRA },
- { "19x.20m", 0x200000, 0xab9d5b96, CPS2_GFX | BRF_GRA },
-
- { "19x.01", 0x020000, 0xef55195e, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "19x.11m", 0x200000, 0xd38beef3, CPS2_QSND | BRF_SND },
- { "19x.12m", 0x200000, 0xd47c96e2, CPS2_QSND | BRF_SND },
-
- { "19xxa.key", 0x000014, 0x2cd32eb9, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Ninexxar1)
-STD_ROM_FN(Ninexxar1)
-
-static struct BurnRomInfo NinexxbRomDesc[] = {
- { "19xb.03a", 0x080000, 0x341bdf4a, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "19xb.04a", 0x080000, 0xdff8069e, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "19xb.05a", 0x080000, 0xa47a92a8, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "19xb.06a", 0x080000, 0xc52df10d, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "19x.07", 0x080000, 0x61c0296c, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "19x.13m", 0x080000, 0x427aeb18, CPS2_GFX | BRF_GRA },
- { "19x.15m", 0x080000, 0x63bdbf54, CPS2_GFX | BRF_GRA },
- { "19x.17m", 0x080000, 0x2dfe18b5, CPS2_GFX | BRF_GRA },
- { "19x.19m", 0x080000, 0xcbef9579, CPS2_GFX | BRF_GRA },
- { "19x.14m", 0x200000, 0xe916967c, CPS2_GFX | BRF_GRA },
- { "19x.16m", 0x200000, 0x6e75f3db, CPS2_GFX | BRF_GRA },
- { "19x.18m", 0x200000, 0x2213e798, CPS2_GFX | BRF_GRA },
- { "19x.20m", 0x200000, 0xab9d5b96, CPS2_GFX | BRF_GRA },
-
- { "19x.01", 0x020000, 0xef55195e, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "19x.11m", 0x200000, 0xd38beef3, CPS2_QSND | BRF_SND },
- { "19x.12m", 0x200000, 0xd47c96e2, CPS2_QSND | BRF_SND },
-
- { "19xxb.key", 0x000014, 0x4200e334, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Ninexxb)
-STD_ROM_FN(Ninexxb)
-
-static struct BurnRomInfo NinexxhRomDesc[] = {
- { "19xh.03a", 0x080000, 0x357be2ac, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "19xh.04a", 0x080000, 0xbb13ea3b, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "19xh.05a", 0x080000, 0xcbd76601, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "19xh.06a", 0x080000, 0xb362de8b, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "19x.07", 0x080000, 0x61c0296c, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "19x.13m", 0x080000, 0x427aeb18, CPS2_GFX | BRF_GRA },
- { "19x.15m", 0x080000, 0x63bdbf54, CPS2_GFX | BRF_GRA },
- { "19x.17m", 0x080000, 0x2dfe18b5, CPS2_GFX | BRF_GRA },
- { "19x.19m", 0x080000, 0xcbef9579, CPS2_GFX | BRF_GRA },
- { "19x.14m", 0x200000, 0xe916967c, CPS2_GFX | BRF_GRA },
- { "19x.16m", 0x200000, 0x6e75f3db, CPS2_GFX | BRF_GRA },
- { "19x.18m", 0x200000, 0x2213e798, CPS2_GFX | BRF_GRA },
- { "19x.20m", 0x200000, 0xab9d5b96, CPS2_GFX | BRF_GRA },
-
- { "19x.01", 0x020000, 0xef55195e, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "19x.11m", 0x200000, 0xd38beef3, CPS2_QSND | BRF_SND },
- { "19x.12m", 0x200000, 0xd47c96e2, CPS2_QSND | BRF_SND },
-
- { "19xxh.key", 0x000014, 0x215cf208, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Ninexxh)
-STD_ROM_FN(Ninexxh)
-
-static struct BurnRomInfo NinexxjRomDesc[] = {
- { "19xj-03b.6a", 0x080000, 0xbcad93dd, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "19xj-04b.7a", 0x080000, 0x931882a1, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "19xj-05b.8a", 0x080000, 0xe7eeddc4, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "19xj-06b.9a", 0x080000, 0xf27cd6b8, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "19xj-07.6d", 0x080000, 0x61c0296c, CPS2_PRG_68K | BRF_ESS | BRF_PRG }, // 19x.07
-
- { "19x-69.4j", 0x080000, 0x427aeb18, CPS2_GFX_19XXJ | BRF_GRA }, // 19x.13m
- { "19x-59.4d", 0x080000, 0x63bdbf54, CPS2_GFX_19XXJ | BRF_GRA }, // 19x.15m
- { "19x-79.4m", 0x080000, 0x2dfe18b5, CPS2_GFX_19XXJ | BRF_GRA }, // 19x.17m
- { "19x-89.4p", 0x080000, 0xcbef9579, CPS2_GFX_19XXJ | BRF_GRA }, // 19x.19m
- { "19x-73.8j", 0x080000, 0x8e81f595, CPS2_GFX_19XXJ | BRF_GRA }, // 19x.14m
- { "19x-74.9j", 0x080000, 0x6d7ad22e, CPS2_GFX_19XXJ | BRF_GRA }, // 19x.14m
- { "19x-75.10j", 0x080000, 0xcb1a1b6a, CPS2_GFX_19XXJ | BRF_GRA }, // 19x.14m
- { "19x-76.11j", 0x080000, 0x26fc2b08, CPS2_GFX_19XXJ | BRF_GRA }, // 19x.14m
- { "19x-63.8d", 0x080000, 0x6f8b045e, CPS2_GFX_19XXJ | BRF_GRA }, // 19x.16m
- { "19x-64.9d", 0x080000, 0xccd5725a, CPS2_GFX_19XXJ | BRF_GRA }, // 19x.16m
- { "19x-65.10d", 0x080000, 0x6cf6db35, CPS2_GFX_19XXJ | BRF_GRA }, // 19x.16m
- { "19x-66.11d", 0x080000, 0x16115dd3, CPS2_GFX_19XXJ | BRF_GRA }, // 19x.16m
- { "19x-83.8m", 0x080000, 0xc11f88c1, CPS2_GFX_19XXJ | BRF_GRA }, // 19x.18m
- { "19x-84.9m", 0x080000, 0x68cc9cd8, CPS2_GFX_19XXJ | BRF_GRA }, // 19x.18m
- { "19x-85.10m", 0x080000, 0xf213666b, CPS2_GFX_19XXJ | BRF_GRA }, // 19x.18m
- { "19x-86.11m", 0x080000, 0x574e0473, CPS2_GFX_19XXJ | BRF_GRA }, // 19x.18m
- { "19x-93.8p", 0x080000, 0x9fad3c55, CPS2_GFX_19XXJ | BRF_GRA }, // 19x.20m
- { "19x-94.9p", 0x080000, 0xe10e252c, CPS2_GFX_19XXJ | BRF_GRA }, // 19x.20m
- { "19x-95.10p", 0x080000, 0x2b86fa67, CPS2_GFX_19XXJ | BRF_GRA }, // 19x.20m
- { "19x-96.11p", 0x080000, 0xae6eb692, CPS2_GFX_19XXJ | BRF_GRA }, // 19x.20m
-
- { "19x-01.1a", 0x020000, 0xef55195e, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG }, // 19x.01
-
- { "19x-51.6a", 0x080000, 0xe9cd7780, CPS2_QSND | BRF_SND }, // 19x.11m
- { "19x-52.7a", 0x080000, 0xb27b91a8, CPS2_QSND | BRF_SND }, // 19x.11m
- { "19x-53.8a", 0x080000, 0x2e563ee2, CPS2_QSND | BRF_SND }, // 19x.11m
- { "19x-54.9a", 0x080000, 0xf47c1f24, CPS2_QSND | BRF_SND }, // 19x.11m
- { "19x-55.10a", 0x080000, 0x0b1af6e0, CPS2_QSND | BRF_SND }, // 19x.12m
- { "19x-56.11a", 0x080000, 0xdfa8819f, CPS2_QSND | BRF_SND }, // 19x.12m
- { "19x-57.12a", 0x080000, 0x229ba777, CPS2_QSND | BRF_SND }, // 19x.12m
- { "19x-58.13a", 0x080000, 0xc7dceba4, CPS2_QSND | BRF_SND }, // 19x.12m
-
- { "19xxj.key", 0x000014, 0x9aafa71a, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Ninexxj)
-STD_ROM_FN(Ninexxj)
-
-static struct BurnRomInfo Ninexxjr1RomDesc[] = {
- { "19xj.03a", 0x080000, 0xed08bdd1, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "19xj.04a", 0x080000, 0xfb8e3f29, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "19xj.05a", 0x080000, 0xaa508ac4, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "19xj.06a", 0x080000, 0xff2d785b, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "19x.07", 0x080000, 0x61c0296c, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "19x.13m", 0x080000, 0x427aeb18, CPS2_GFX | BRF_GRA },
- { "19x.15m", 0x080000, 0x63bdbf54, CPS2_GFX | BRF_GRA },
- { "19x.17m", 0x080000, 0x2dfe18b5, CPS2_GFX | BRF_GRA },
- { "19x.19m", 0x080000, 0xcbef9579, CPS2_GFX | BRF_GRA },
- { "19x.14m", 0x200000, 0xe916967c, CPS2_GFX | BRF_GRA },
- { "19x.16m", 0x200000, 0x6e75f3db, CPS2_GFX | BRF_GRA },
- { "19x.18m", 0x200000, 0x2213e798, CPS2_GFX | BRF_GRA },
- { "19x.20m", 0x200000, 0xab9d5b96, CPS2_GFX | BRF_GRA },
-
- { "19x.01", 0x020000, 0xef55195e, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "19x.11m", 0x200000, 0xd38beef3, CPS2_QSND | BRF_SND },
- { "19x.12m", 0x200000, 0xd47c96e2, CPS2_QSND | BRF_SND },
-
- { "19xxj.key", 0x000014, 0x9aafa71a, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Ninexxjr1)
-STD_ROM_FN(Ninexxjr1)
-
-static struct BurnRomInfo Ninexxjr2RomDesc[] = {
- { "19xj.03", 0x080000, 0x26a381ed, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "19xj.04", 0x080000, 0x30100cca, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "19xj.05", 0x080000, 0xde67e938, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "19xj.06", 0x080000, 0x39f9a409, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "19x.07", 0x080000, 0x61c0296c, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "19x.13m", 0x080000, 0x427aeb18, CPS2_GFX | BRF_GRA },
- { "19x.15m", 0x080000, 0x63bdbf54, CPS2_GFX | BRF_GRA },
- { "19x.17m", 0x080000, 0x2dfe18b5, CPS2_GFX | BRF_GRA },
- { "19x.19m", 0x080000, 0xcbef9579, CPS2_GFX | BRF_GRA },
- { "19x.14m", 0x200000, 0xe916967c, CPS2_GFX | BRF_GRA },
- { "19x.16m", 0x200000, 0x6e75f3db, CPS2_GFX | BRF_GRA },
- { "19x.18m", 0x200000, 0x2213e798, CPS2_GFX | BRF_GRA },
- { "19x.20m", 0x200000, 0xab9d5b96, CPS2_GFX | BRF_GRA },
-
- { "19x.01", 0x020000, 0xef55195e, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "19x.11m", 0x200000, 0xd38beef3, CPS2_QSND | BRF_SND },
- { "19x.12m", 0x200000, 0xd47c96e2, CPS2_QSND | BRF_SND },
-
- { "19xxj.key", 0x000014, 0x9aafa71a, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Ninexxjr2)
-STD_ROM_FN(Ninexxjr2)
-
-static struct BurnRomInfo Nine44RomDesc[] = {
- { "nffu.03", 0x080000, 0x9693cf8f, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "nff.04", 0x080000, 0xdba1c66e, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "nffu.05", 0x080000, 0xea813eb7, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "nff.13m", 0x400000, 0xc9fca741, CPS2_GFX | BRF_GRA },
- { "nff.15m", 0x400000, 0xf809d898, CPS2_GFX | BRF_GRA },
- { "nff.17m", 0x400000, 0x15ba4507, CPS2_GFX | BRF_GRA },
- { "nff.19m", 0x400000, 0x3dd41b8c, CPS2_GFX | BRF_GRA },
- { "nff.14m", 0x100000, 0x3fe3a54b, CPS2_GFX | BRF_GRA },
- { "nff.16m", 0x100000, 0x565cd231, CPS2_GFX | BRF_GRA },
- { "nff.18m", 0x100000, 0x63ca5988, CPS2_GFX | BRF_GRA },
- { "nff.20m", 0x100000, 0x21eb8f3b, CPS2_GFX | BRF_GRA },
-
- { "nff.01", 0x020000, 0xd2e44318, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "nff.11m", 0x400000, 0x243e4e05, CPS2_QSND | BRF_SND },
- { "nff.12m", 0x400000, 0x4fcf1600, CPS2_QSND | BRF_SND },
-
- { "1944.key", 0x000014, 0x61734f5b, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Nine44)
-STD_ROM_FN(Nine44)
-
-static struct BurnRomInfo Nine44jRomDesc[] = {
- { "nffj.03", 0x080000, 0x247521ef, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "nff.04", 0x080000, 0xdba1c66e, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "nffj.05", 0x080000, 0x7f20c2ef, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "nff.13m", 0x400000, 0xc9fca741, CPS2_GFX | BRF_GRA },
- { "nff.15m", 0x400000, 0xf809d898, CPS2_GFX | BRF_GRA },
- { "nff.17m", 0x400000, 0x15ba4507, CPS2_GFX | BRF_GRA },
- { "nff.19m", 0x400000, 0x3dd41b8c, CPS2_GFX | BRF_GRA },
- { "nff.14m", 0x100000, 0x3fe3a54b, CPS2_GFX | BRF_GRA },
- { "nff.16m", 0x100000, 0x565cd231, CPS2_GFX | BRF_GRA },
- { "nff.18m", 0x100000, 0x63ca5988, CPS2_GFX | BRF_GRA },
- { "nff.20m", 0x100000, 0x21eb8f3b, CPS2_GFX | BRF_GRA },
-
- { "nff.01", 0x020000, 0xd2e44318, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "nff.11m", 0x400000, 0x243e4e05, CPS2_QSND | BRF_SND },
- { "nff.12m", 0x400000, 0x4fcf1600, CPS2_QSND | BRF_SND },
-
- { "1944j.key", 0x000014, 0x210202aa, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Nine44j)
-STD_ROM_FN(Nine44j)
-
-static struct BurnRomInfo ArmwarRomDesc[] = {
- { "pwge.03c", 0x080000, 0x31f74931, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pwge.04c", 0x080000, 0x16f34f5f, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pwge.05b", 0x080000, 0x4403ed08, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pwg.06", 0x080000, 0x87a60ce8, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pwg.07", 0x080000, 0xf7b148df, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pwg.08", 0x080000, 0xcc62823e, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pwg.09a", 0x080000, 0x4c26baee, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pwg.10", 0x080000, 0x07c4fb28, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "pwg.13m", 0x400000, 0xae8fe08e, CPS2_GFX | BRF_GRA },
- { "pwg.15m", 0x400000, 0xdb560f58, CPS2_GFX | BRF_GRA },
- { "pwg.17m", 0x400000, 0xbc475b94, CPS2_GFX | BRF_GRA },
- { "pwg.19m", 0x400000, 0x07439ff7, CPS2_GFX | BRF_GRA },
- { "pwg.14m", 0x100000, 0xc3f9ba63, CPS2_GFX | BRF_GRA },
- { "pwg.16m", 0x100000, 0x815b0e7b, CPS2_GFX | BRF_GRA },
- { "pwg.18m", 0x100000, 0x0109c71b, CPS2_GFX | BRF_GRA },
- { "pwg.20m", 0x100000, 0xeb75ffbe, CPS2_GFX | BRF_GRA },
-
- { "pwg.01", 0x020000, 0x18a5c0e4, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "pwg.02", 0x020000, 0xc9dfffa6, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "pwg.11m", 0x200000, 0xa78f7433, CPS2_QSND | BRF_SND },
- { "pwg.12m", 0x200000, 0x77438ed0, CPS2_QSND | BRF_SND },
-
- { "armwar.key", 0x000014, 0xfe979382, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Armwar)
-STD_ROM_FN(Armwar)
-
-static struct BurnRomInfo Armwarr1RomDesc[] = {
- { "pwge.03b", 0x080000, 0xe822e3e9, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pwge.04b", 0x080000, 0x4f89de39, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pwge.05a", 0x080000, 0x83df24e5, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pwg.06", 0x080000, 0x87a60ce8, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pwg.07", 0x080000, 0xf7b148df, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pwg.08", 0x080000, 0xcc62823e, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pwg.09", 0x080000, 0xddc85ca6, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pwg.10", 0x080000, 0x07c4fb28, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "pwg.13m", 0x400000, 0xae8fe08e, CPS2_GFX | BRF_GRA },
- { "pwg.15m", 0x400000, 0xdb560f58, CPS2_GFX | BRF_GRA },
- { "pwg.17m", 0x400000, 0xbc475b94, CPS2_GFX | BRF_GRA },
- { "pwg.19m", 0x400000, 0x07439ff7, CPS2_GFX | BRF_GRA },
- { "pwg.14m", 0x100000, 0xc3f9ba63, CPS2_GFX | BRF_GRA },
- { "pwg.16m", 0x100000, 0x815b0e7b, CPS2_GFX | BRF_GRA },
- { "pwg.18m", 0x100000, 0x0109c71b, CPS2_GFX | BRF_GRA },
- { "pwg.20m", 0x100000, 0xeb75ffbe, CPS2_GFX | BRF_GRA },
-
- { "pwg.01", 0x020000, 0x18a5c0e4, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "pwg.02", 0x020000, 0xc9dfffa6, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "pwg.11m", 0x200000, 0xa78f7433, CPS2_QSND | BRF_SND },
- { "pwg.12m", 0x200000, 0x77438ed0, CPS2_QSND | BRF_SND },
-
- { "armwar.key", 0x000014, 0xfe979382, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Armwarr1)
-STD_ROM_FN(Armwarr1)
-
-static struct BurnRomInfo ArmwaruRomDesc[] = {
- { "pwgu.03b", 0x080000, 0x8b95497a, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pwgu.04b", 0x080000, 0x29eb5661, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pwgu.05b", 0x080000, 0xa54e9e44, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pwg.06", 0x080000, 0x87a60ce8, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pwg.07", 0x080000, 0xf7b148df, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pwg.08", 0x080000, 0xcc62823e, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pwg.09a", 0x080000, 0x4c26baee, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pwg.10", 0x080000, 0x07c4fb28, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "pwg.13m", 0x400000, 0xae8fe08e, CPS2_GFX | BRF_GRA },
- { "pwg.15m", 0x400000, 0xdb560f58, CPS2_GFX | BRF_GRA },
- { "pwg.17m", 0x400000, 0xbc475b94, CPS2_GFX | BRF_GRA },
- { "pwg.19m", 0x400000, 0x07439ff7, CPS2_GFX | BRF_GRA },
- { "pwg.14m", 0x100000, 0xc3f9ba63, CPS2_GFX | BRF_GRA },
- { "pwg.16m", 0x100000, 0x815b0e7b, CPS2_GFX | BRF_GRA },
- { "pwg.18m", 0x100000, 0x0109c71b, CPS2_GFX | BRF_GRA },
- { "pwg.20m", 0x100000, 0xeb75ffbe, CPS2_GFX | BRF_GRA },
-
- { "pwg.01", 0x020000, 0x18a5c0e4, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "pwg.02", 0x020000, 0xc9dfffa6, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "pwg.11m", 0x200000, 0xa78f7433, CPS2_QSND | BRF_SND },
- { "pwg.12m", 0x200000, 0x77438ed0, CPS2_QSND | BRF_SND },
-
- { "armwaru.key", 0x000014, 0xfb9aada5, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Armwaru)
-STD_ROM_FN(Armwaru)
-
-static struct BurnRomInfo Armwaru1RomDesc[] = {
- { "pwgu.03a", 0x080000, 0x73d397b1, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pwgu.04a", 0x080000, 0x1f1de215, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pwgu.05a", 0x080000, 0x835fbe73, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pwg.06", 0x080000, 0x87a60ce8, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pwg.07", 0x080000, 0xf7b148df, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pwg.08", 0x080000, 0xcc62823e, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pwg.09", 0x080000, 0xddc85ca6, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pwg.10", 0x080000, 0x07c4fb28, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "pwg.13m", 0x400000, 0xae8fe08e, CPS2_GFX | BRF_GRA },
- { "pwg.15m", 0x400000, 0xdb560f58, CPS2_GFX | BRF_GRA },
- { "pwg.17m", 0x400000, 0xbc475b94, CPS2_GFX | BRF_GRA },
- { "pwg.19m", 0x400000, 0x07439ff7, CPS2_GFX | BRF_GRA },
- { "pwg.14m", 0x100000, 0xc3f9ba63, CPS2_GFX | BRF_GRA },
- { "pwg.16m", 0x100000, 0x815b0e7b, CPS2_GFX | BRF_GRA },
- { "pwg.18m", 0x100000, 0x0109c71b, CPS2_GFX | BRF_GRA },
- { "pwg.20m", 0x100000, 0xeb75ffbe, CPS2_GFX | BRF_GRA },
-
- { "pwg.01", 0x020000, 0x18a5c0e4, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "pwg.02", 0x020000, 0xc9dfffa6, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "pwg.11m", 0x200000, 0xa78f7433, CPS2_QSND | BRF_SND },
- { "pwg.12m", 0x200000, 0x77438ed0, CPS2_QSND | BRF_SND },
-
- { "armwaru.key", 0x000014, 0xfb9aada5, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Armwaru1)
-STD_ROM_FN(Armwaru1)
-
-static struct BurnRomInfo PgearRomDesc[] = {
- { "pwgj.03a", 0x080000, 0xc79c0c02, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pwgj.04a", 0x080000, 0x167c6ed8, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pwgj.05a", 0x080000, 0xa63fb400, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pwg.06", 0x080000, 0x87a60ce8, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pwg.07", 0x080000, 0xf7b148df, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pwg.08", 0x080000, 0xcc62823e, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pwg.09a", 0x080000, 0x4c26baee, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pwg.10", 0x080000, 0x07c4fb28, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "pwg.13m", 0x400000, 0xae8fe08e, CPS2_GFX | BRF_GRA },
- { "pwg.15m", 0x400000, 0xdb560f58, CPS2_GFX | BRF_GRA },
- { "pwg.17m", 0x400000, 0xbc475b94, CPS2_GFX | BRF_GRA },
- { "pwg.19m", 0x400000, 0x07439ff7, CPS2_GFX | BRF_GRA },
- { "pwg.14m", 0x100000, 0xc3f9ba63, CPS2_GFX | BRF_GRA },
- { "pwg.16m", 0x100000, 0x815b0e7b, CPS2_GFX | BRF_GRA },
- { "pwg.18m", 0x100000, 0x0109c71b, CPS2_GFX | BRF_GRA },
- { "pwg.20m", 0x100000, 0xeb75ffbe, CPS2_GFX | BRF_GRA },
-
- { "pwg.01", 0x020000, 0x18a5c0e4, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "pwg.02", 0x020000, 0xc9dfffa6, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "pwg.11m", 0x200000, 0xa78f7433, CPS2_QSND | BRF_SND },
- { "pwg.12m", 0x200000, 0x77438ed0, CPS2_QSND | BRF_SND },
-
- { "pgear.key", 0x000014, 0xc576d6fd, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Pgear)
-STD_ROM_FN(Pgear)
-
-static struct BurnRomInfo Pgearr1RomDesc[] = {
- { "pwgj.03", 0x080000, 0xf264e74b, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pwgj.04", 0x080000, 0x23a84983, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pwgj.05", 0x080000, 0xbef58c62, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pwg.06", 0x080000, 0x87a60ce8, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pwg.07", 0x080000, 0xf7b148df, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pwg.08", 0x080000, 0xcc62823e, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pwg.09", 0x080000, 0xddc85ca6, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pwg.10", 0x080000, 0x07c4fb28, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "pwg.13m", 0x400000, 0xae8fe08e, CPS2_GFX | BRF_GRA },
- { "pwg.15m", 0x400000, 0xdb560f58, CPS2_GFX | BRF_GRA },
- { "pwg.17m", 0x400000, 0xbc475b94, CPS2_GFX | BRF_GRA },
- { "pwg.19m", 0x400000, 0x07439ff7, CPS2_GFX | BRF_GRA },
- { "pwg.14m", 0x100000, 0xc3f9ba63, CPS2_GFX | BRF_GRA },
- { "pwg.16m", 0x100000, 0x815b0e7b, CPS2_GFX | BRF_GRA },
- { "pwg.18m", 0x100000, 0x0109c71b, CPS2_GFX | BRF_GRA },
- { "pwg.20m", 0x100000, 0xeb75ffbe, CPS2_GFX | BRF_GRA },
-
- { "pwg.01", 0x020000, 0x18a5c0e4, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "pwg.02", 0x020000, 0xc9dfffa6, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "pwg.11m", 0x200000, 0xa78f7433, CPS2_QSND | BRF_SND },
- { "pwg.12m", 0x200000, 0x77438ed0, CPS2_QSND | BRF_SND },
-
- { "pgear.key", 0x000014, 0xc576d6fd, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Pgearr1)
-STD_ROM_FN(Pgearr1)
-
-static struct BurnRomInfo ArmwaraRomDesc[] = {
- { "pwga.03b", 0x080000, 0x347743e1, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pwga.04b", 0x080000, 0x42dbfb2e, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pwga.05b", 0x080000, 0x835fbe73, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pwg.06", 0x080000, 0x87a60ce8, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pwg.07", 0x080000, 0xf7b148df, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pwg.08", 0x080000, 0xcc62823e, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pwg.09a", 0x080000, 0x4c26baee, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pwg.10", 0x080000, 0x07c4fb28, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "pwg.13m", 0x400000, 0xae8fe08e, CPS2_GFX | BRF_GRA },
- { "pwg.15m", 0x400000, 0xdb560f58, CPS2_GFX | BRF_GRA },
- { "pwg.17m", 0x400000, 0xbc475b94, CPS2_GFX | BRF_GRA },
- { "pwg.19m", 0x400000, 0x07439ff7, CPS2_GFX | BRF_GRA },
- { "pwg.14m", 0x100000, 0xc3f9ba63, CPS2_GFX | BRF_GRA },
- { "pwg.16m", 0x100000, 0x815b0e7b, CPS2_GFX | BRF_GRA },
- { "pwg.18m", 0x100000, 0x0109c71b, CPS2_GFX | BRF_GRA },
- { "pwg.20m", 0x100000, 0xeb75ffbe, CPS2_GFX | BRF_GRA },
-
- { "pwg.01", 0x020000, 0x18a5c0e4, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "pwg.02", 0x020000, 0xc9dfffa6, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "pwg.11m", 0x200000, 0xa78f7433, CPS2_QSND | BRF_SND },
- { "pwg.12m", 0x200000, 0x77438ed0, CPS2_QSND | BRF_SND },
-
- { "armwara.key", 0x000014, 0x525439c0, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Armwara)
-STD_ROM_FN(Armwara)
-
-static struct BurnRomInfo Armwarar1RomDesc[] = {
- { "pwga.03a", 0x080000, 0x8d474ab1, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pwga.04a", 0x080000, 0x81b5aec7, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pwga.05a", 0x080000, 0x2618e819, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pwg.06", 0x080000, 0x87a60ce8, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pwg.07", 0x080000, 0xf7b148df, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pwg.08", 0x080000, 0xcc62823e, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pwg.09", 0x080000, 0xddc85ca6, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pwg.10", 0x080000, 0x07c4fb28, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "pwg.13m", 0x400000, 0xae8fe08e, CPS2_GFX | BRF_GRA },
- { "pwg.15m", 0x400000, 0xdb560f58, CPS2_GFX | BRF_GRA },
- { "pwg.17m", 0x400000, 0xbc475b94, CPS2_GFX | BRF_GRA },
- { "pwg.19m", 0x400000, 0x07439ff7, CPS2_GFX | BRF_GRA },
- { "pwg.14m", 0x100000, 0xc3f9ba63, CPS2_GFX | BRF_GRA },
- { "pwg.16m", 0x100000, 0x815b0e7b, CPS2_GFX | BRF_GRA },
- { "pwg.18m", 0x100000, 0x0109c71b, CPS2_GFX | BRF_GRA },
- { "pwg.20m", 0x100000, 0xeb75ffbe, CPS2_GFX | BRF_GRA },
-
- { "pwg.01", 0x020000, 0x18a5c0e4, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "pwg.02", 0x020000, 0xc9dfffa6, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "pwg.11m", 0x200000, 0xa78f7433, CPS2_QSND | BRF_SND },
- { "pwg.12m", 0x200000, 0x77438ed0, CPS2_QSND | BRF_SND },
-
- { "armwara.key", 0x000014, 0x525439c0, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Armwarar1)
-STD_ROM_FN(Armwarar1)
-
-static struct BurnRomInfo AvspRomDesc[] = {
- { "avpe.03d", 0x080000, 0x774334a9, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "avpe.04d", 0x080000, 0x7fa83769, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "avp.05d", 0x080000, 0xfbfb5d7a, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "avp.06", 0x080000, 0x190b817f, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "avp.13m", 0x200000, 0x8f8b5ae4, CPS2_GFX | BRF_GRA },
- { "avp.15m", 0x200000, 0xb00280df, CPS2_GFX | BRF_GRA },
- { "avp.17m", 0x200000, 0x94403195, CPS2_GFX | BRF_GRA },
- { "avp.19m", 0x200000, 0xe1981245, CPS2_GFX | BRF_GRA },
- { "avp.14m", 0x200000, 0xebba093e, CPS2_GFX | BRF_GRA },
- { "avp.16m", 0x200000, 0xfb228297, CPS2_GFX | BRF_GRA },
- { "avp.18m", 0x200000, 0x34fb7232, CPS2_GFX | BRF_GRA },
- { "avp.20m", 0x200000, 0xf90baa21, CPS2_GFX | BRF_GRA },
-
- { "avp.01", 0x020000, 0x2d3b4220, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "avp.11m", 0x200000, 0x83499817, CPS2_QSND | BRF_SND },
- { "avp.12m", 0x200000, 0xf4110d49, CPS2_QSND | BRF_SND },
-
- { "avsp.key", 0x000014, 0xe69fa35b, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Avsp)
-STD_ROM_FN(Avsp)
-
-static struct BurnRomInfo AvspaRomDesc[] = {
- { "avpa.03d", 0x080000, 0x6c1c1858, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "avpa.04d", 0x080000, 0x94f50b0c, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "avp.05d", 0x080000, 0xfbfb5d7a, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "avp.06", 0x080000, 0x190b817f, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "avp.13m", 0x200000, 0x8f8b5ae4, CPS2_GFX | BRF_GRA },
- { "avp.15m", 0x200000, 0xb00280df, CPS2_GFX | BRF_GRA },
- { "avp.17m", 0x200000, 0x94403195, CPS2_GFX | BRF_GRA },
- { "avp.19m", 0x200000, 0xe1981245, CPS2_GFX | BRF_GRA },
- { "avp.14m", 0x200000, 0xebba093e, CPS2_GFX | BRF_GRA },
- { "avp.16m", 0x200000, 0xfb228297, CPS2_GFX | BRF_GRA },
- { "avp.18m", 0x200000, 0x34fb7232, CPS2_GFX | BRF_GRA },
- { "avp.20m", 0x200000, 0xf90baa21, CPS2_GFX | BRF_GRA },
-
- { "avp.01", 0x020000, 0x2d3b4220, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "avp.11m", 0x200000, 0x83499817, CPS2_QSND | BRF_SND },
- { "avp.12m", 0x200000, 0xf4110d49, CPS2_QSND | BRF_SND },
-
- { "avspa.key", 0x000014, 0x728efc00, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Avspa)
-STD_ROM_FN(Avspa)
-
-static struct BurnRomInfo AvsphRomDesc[] = {
- { "avph.03d", 0x080000, 0x3e440447, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "avph.04d", 0x080000, 0xaf6fc82f, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "avp.05d", 0x080000, 0xfbfb5d7a, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "avp.06", 0x080000, 0x190b817f, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "avp.13m", 0x200000, 0x8f8b5ae4, CPS2_GFX | BRF_GRA },
- { "avp.15m", 0x200000, 0xb00280df, CPS2_GFX | BRF_GRA },
- { "avp.17m", 0x200000, 0x94403195, CPS2_GFX | BRF_GRA },
- { "avp.19m", 0x200000, 0xe1981245, CPS2_GFX | BRF_GRA },
- { "avp.14m", 0x200000, 0xebba093e, CPS2_GFX | BRF_GRA },
- { "avp.16m", 0x200000, 0xfb228297, CPS2_GFX | BRF_GRA },
- { "avp.18m", 0x200000, 0x34fb7232, CPS2_GFX | BRF_GRA },
- { "avp.20m", 0x200000, 0xf90baa21, CPS2_GFX | BRF_GRA },
-
- { "avp.01", 0x020000, 0x2d3b4220, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "avp.11m", 0x200000, 0x83499817, CPS2_QSND | BRF_SND },
- { "avp.12m", 0x200000, 0xf4110d49, CPS2_QSND | BRF_SND },
-
- { "avsph.key", 0x000014, 0xcae7b680, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Avsph)
-STD_ROM_FN(Avsph)
-
-static struct BurnRomInfo AvspjRomDesc[] = {
- { "avpj.03d", 0x080000, 0x49799119, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "avpj.04d", 0x080000, 0x8cd2bba8, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "avp.05d", 0x080000, 0xfbfb5d7a, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "avp.06", 0x080000, 0x190b817f, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "avp.13m", 0x200000, 0x8f8b5ae4, CPS2_GFX | BRF_GRA },
- { "avp.15m", 0x200000, 0xb00280df, CPS2_GFX | BRF_GRA },
- { "avp.17m", 0x200000, 0x94403195, CPS2_GFX | BRF_GRA },
- { "avp.19m", 0x200000, 0xe1981245, CPS2_GFX | BRF_GRA },
- { "avp.14m", 0x200000, 0xebba093e, CPS2_GFX | BRF_GRA },
- { "avp.16m", 0x200000, 0xfb228297, CPS2_GFX | BRF_GRA },
- { "avp.18m", 0x200000, 0x34fb7232, CPS2_GFX | BRF_GRA },
- { "avp.20m", 0x200000, 0xf90baa21, CPS2_GFX | BRF_GRA },
-
- { "avp.01", 0x020000, 0x2d3b4220, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "avp.11m", 0x200000, 0x83499817, CPS2_QSND | BRF_SND },
- { "avp.12m", 0x200000, 0xf4110d49, CPS2_QSND | BRF_SND },
-
- { "avspj.key", 0x000014, 0x3d5ccc08, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Avspj)
-STD_ROM_FN(Avspj)
-
-static struct BurnRomInfo AvspuRomDesc[] = {
- { "avpu.03d", 0x080000, 0x42757950, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "avpu.04d", 0x080000, 0x5abcdee6, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "avp.05d", 0x080000, 0xfbfb5d7a, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "avp.06", 0x080000, 0x190b817f, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "avp.13m", 0x200000, 0x8f8b5ae4, CPS2_GFX | BRF_GRA },
- { "avp.15m", 0x200000, 0xb00280df, CPS2_GFX | BRF_GRA },
- { "avp.17m", 0x200000, 0x94403195, CPS2_GFX | BRF_GRA },
- { "avp.19m", 0x200000, 0xe1981245, CPS2_GFX | BRF_GRA },
- { "avp.14m", 0x200000, 0xebba093e, CPS2_GFX | BRF_GRA },
- { "avp.16m", 0x200000, 0xfb228297, CPS2_GFX | BRF_GRA },
- { "avp.18m", 0x200000, 0x34fb7232, CPS2_GFX | BRF_GRA },
- { "avp.20m", 0x200000, 0xf90baa21, CPS2_GFX | BRF_GRA },
-
- { "avp.01", 0x020000, 0x2d3b4220, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "avp.11m", 0x200000, 0x83499817, CPS2_QSND | BRF_SND },
- { "avp.12m", 0x200000, 0xf4110d49, CPS2_QSND | BRF_SND },
-
- { "avspu.key", 0x000014, 0x4e68e346, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Avspu)
-STD_ROM_FN(Avspu)
-
-static struct BurnRomInfo BatcirRomDesc[] = {
- { "btce.03", 0x080000, 0xbc60484b, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "btce.04", 0x080000, 0x457d55f6, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "btce.05", 0x080000, 0xe86560d7, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "btce.06", 0x080000, 0xf778e61b, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "btc.07", 0x080000, 0x7322d5db, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "btc.08", 0x080000, 0x6aac85ab, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "btc.09", 0x080000, 0x1203db08, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "btc.13m", 0x400000, 0xdc705bad, CPS2_GFX | BRF_GRA },
- { "btc.15m", 0x400000, 0xe5779a3c, CPS2_GFX | BRF_GRA },
- { "btc.17m", 0x400000, 0xb33f4112, CPS2_GFX | BRF_GRA },
- { "btc.19m", 0x400000, 0xa6fcdb7e, CPS2_GFX | BRF_GRA },
-
- { "btc.01", 0x020000, 0x1e194310, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "btc.02", 0x020000, 0x01aeb8e6, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "btc.11m", 0x200000, 0xc27f2229, CPS2_QSND | BRF_SND },
- { "btc.12m", 0x200000, 0x418a2e33, CPS2_QSND | BRF_SND },
-
- { "batcir.key", 0x000014, 0xe316ae67, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Batcir)
-STD_ROM_FN(Batcir)
-
-static struct BurnRomInfo BatciraRomDesc[] = {
- { "btca.03", 0x080000, 0x1ad20d87, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "btca.04", 0x080000, 0x2b3f4dbe, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "btca.05", 0x080000, 0x8238a3d9, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "btca.06", 0x080000, 0x446c7c02, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "btc.07", 0x080000, 0x7322d5db, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "btc.08", 0x080000, 0x6aac85ab, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "btc.09", 0x080000, 0x1203db08, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "btc.13m", 0x400000, 0xdc705bad, CPS2_GFX | BRF_GRA },
- { "btc.15m", 0x400000, 0xe5779a3c, CPS2_GFX | BRF_GRA },
- { "btc.17m", 0x400000, 0xb33f4112, CPS2_GFX | BRF_GRA },
- { "btc.19m", 0x400000, 0xa6fcdb7e, CPS2_GFX | BRF_GRA },
-
- { "btc.01", 0x020000, 0x1e194310, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "btc.02", 0x020000, 0x01aeb8e6, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "btc.11m", 0x200000, 0xc27f2229, CPS2_QSND | BRF_SND },
- { "btc.12m", 0x200000, 0x418a2e33, CPS2_QSND | BRF_SND },
-
- { "batcira.key", 0x000014, 0x384500f3, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Batcira)
-STD_ROM_FN(Batcira)
-
-static struct BurnRomInfo BatcirjRomDesc[] = {
- { "btcj.03", 0x080000, 0x6b7e168d, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "btcj.04", 0x080000, 0x46ba3467, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "btcj.05", 0x080000, 0x0e23a859, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "btcj.06", 0x080000, 0xa853b59c, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "btc.07", 0x080000, 0x7322d5db, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "btc.08", 0x080000, 0x6aac85ab, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "btc.09", 0x080000, 0x1203db08, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "btc.13m", 0x400000, 0xdc705bad, CPS2_GFX | BRF_GRA },
- { "btc.15m", 0x400000, 0xe5779a3c, CPS2_GFX | BRF_GRA },
- { "btc.17m", 0x400000, 0xb33f4112, CPS2_GFX | BRF_GRA },
- { "btc.19m", 0x400000, 0xa6fcdb7e, CPS2_GFX | BRF_GRA },
-
- { "btc.01", 0x020000, 0x1e194310, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "btc.02", 0x020000, 0x01aeb8e6, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "btc.11m", 0x200000, 0xc27f2229, CPS2_QSND | BRF_SND },
- { "btc.12m", 0x200000, 0x418a2e33, CPS2_QSND | BRF_SND },
-
- { "batcirj.key", 0x000014, 0x9f9fb965, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Batcirj)
-STD_ROM_FN(Batcirj)
-
-static struct BurnRomInfo ChokoRomDesc[] = {
- { "tkoj.03", 0x080000, 0x11f5452f, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "tkoj.04", 0x080000, 0x68655378, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "tkoj1_d.simm1", 0x200000, 0x6933377d, CPS2_GFX_SIMM | BRF_GRA },
- { "tkoj1_c.simm1", 0x200000, 0x7f668950, CPS2_GFX_SIMM | BRF_GRA },
- { "tkoj1_b.simm1", 0x200000, 0xcfb68ca9, CPS2_GFX_SIMM | BRF_GRA },
- { "tkoj1_a.simm1", 0x200000, 0x437e21c5, CPS2_GFX_SIMM | BRF_GRA },
- { "tkoj3_d.simm3", 0x200000, 0xa9e32b57, CPS2_GFX_SIMM | BRF_GRA },
- { "tkoj3_c.simm3", 0x200000, 0xb7ab9338, CPS2_GFX_SIMM | BRF_GRA },
- { "tkoj3_b.simm3", 0x200000, 0x4d3f919a, CPS2_GFX_SIMM | BRF_GRA },
- { "tkoj3_a.simm3", 0x200000, 0xcfef17ab, CPS2_GFX_SIMM | BRF_GRA },
-
- { "tko.01", 0x020000, 0x6eda50c2, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "tkoj5_a.simm5", 0x200000, 0xab45d509, CPS2_QSND_SIMM_BYTESWAP | BRF_SND },
- { "tkoj5_b.simm5", 0x200000, 0xfa905c3d, CPS2_QSND_SIMM_BYTESWAP | BRF_SND },
-
- { "choko.key", 0x000014, 0x08505e8b, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Choko)
-STD_ROM_FN(Choko)
-
-static struct BurnRomInfo CsclubRomDesc[] = {
- { "csce.03a", 0x080000, 0x824082be, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "csce.04a", 0x080000, 0x74e6a4fe, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "csce.05a", 0x080000, 0x8ae0df19, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "csce.06a", 0x080000, 0x51f2f0d3, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "csce.07a", 0x080000, 0x003968fd, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "csc.73", 0x080000, 0x335f07c3, CPS2_GFX_SPLIT4 | BRF_GRA },
- { "csc.74", 0x080000, 0xab215357, CPS2_GFX_SPLIT4 | BRF_GRA },
- { "csc.75", 0x080000, 0xa2367381, CPS2_GFX_SPLIT4 | BRF_GRA },
- { "csc.76", 0x080000, 0x728aac1f, CPS2_GFX_SPLIT4 | BRF_GRA },
- { "csc.63", 0x080000, 0x3711b8ca, CPS2_GFX_SPLIT4 | BRF_GRA },
- { "csc.64", 0x080000, 0x828a06d8, CPS2_GFX_SPLIT4 | BRF_GRA },
- { "csc.65", 0x080000, 0x86ee4569, CPS2_GFX_SPLIT4 | BRF_GRA },
- { "csc.66", 0x080000, 0xc24f577f, CPS2_GFX_SPLIT4 | BRF_GRA },
- { "csc.83", 0x080000, 0x0750d12a, CPS2_GFX_SPLIT4 | BRF_GRA },
- { "csc.84", 0x080000, 0x90a92f39, CPS2_GFX_SPLIT4 | BRF_GRA },
- { "csc.85", 0x080000, 0xd08ab012, CPS2_GFX_SPLIT4 | BRF_GRA },
- { "csc.86", 0x080000, 0x41652583, CPS2_GFX_SPLIT4 | BRF_GRA },
- { "csc.93", 0x080000, 0xa756c7f7, CPS2_GFX_SPLIT4 | BRF_GRA },
- { "csc.94", 0x080000, 0xfb7ccc73, CPS2_GFX_SPLIT4 | BRF_GRA },
- { "csc.95", 0x080000, 0x4d014297, CPS2_GFX_SPLIT4 | BRF_GRA },
- { "csc.96", 0x080000, 0x6754b1ef, CPS2_GFX_SPLIT4 | BRF_GRA },
-
- { "csc.01", 0x020000, 0xee162111, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "csc.51", 0x080000, 0x5a52afd5, CPS2_QSND | BRF_SND },
- { "csc.52", 0x080000, 0x1408a811, CPS2_QSND | BRF_SND },
- { "csc.53", 0x080000, 0x4fb9f57c, CPS2_QSND | BRF_SND },
- { "csc.54", 0x080000, 0x9a8f40ec, CPS2_QSND | BRF_SND },
- { "csc.55", 0x080000, 0x91529a91, CPS2_QSND | BRF_SND },
- { "csc.56", 0x080000, 0x9a345334, CPS2_QSND | BRF_SND },
- { "csc.57", 0x080000, 0xaedc27f2, CPS2_QSND | BRF_SND },
- { "csc.58", 0x080000, 0x2300b7b3, CPS2_QSND | BRF_SND },
-
- { "csclub.key", 0x000014, 0x903907d7, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Csclub)
-STD_ROM_FN(Csclub)
-
-static struct BurnRomInfo Csclub1RomDesc[] = {
- { "csce.03", 0x080000, 0xf2c852ef, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "csce.04", 0x080000, 0x1184530f, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "csce.05", 0x080000, 0x804e2b6b, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "csce.06", 0x080000, 0x09277cb9, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "csc.07", 0x080000, 0x01b05caa, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "csc.14m", 0x200000, 0xe8904afa, CPS2_GFX | BRF_GRA },
- { "csc.16m", 0x200000, 0xc98c8079, CPS2_GFX | BRF_GRA },
- { "csc.18m", 0x200000, 0xc030df5a, CPS2_GFX | BRF_GRA },
- { "csc.20m", 0x200000, 0xb4e55863, CPS2_GFX | BRF_GRA },
-
- { "csc.01", 0x020000, 0xee162111, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "csc.11m", 0x200000, 0xa027b827, CPS2_QSND | BRF_SND },
- { "csc.12m", 0x200000, 0xcb7f6e55, CPS2_QSND | BRF_SND },
-
- { "csclub.key", 0x000014, 0x903907d7, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Csclub1)
-STD_ROM_FN(Csclub1)
-
-static struct BurnRomInfo CsclubaRomDesc[] = {
- { "csca.03", 0x080000, 0xb6acd708, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "csca.04", 0x080000, 0xd44ae35f, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "csca.05", 0x080000, 0x8da76aec, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "csca.06", 0x080000, 0xa1b7b1ee, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "csc.07", 0x080000, 0x01b05caa, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "csc.14m", 0x200000, 0xe8904afa, CPS2_GFX | BRF_GRA },
- { "csc.16m", 0x200000, 0xc98c8079, CPS2_GFX | BRF_GRA },
- { "csc.18m", 0x200000, 0xc030df5a, CPS2_GFX | BRF_GRA },
- { "csc.20m", 0x200000, 0xb4e55863, CPS2_GFX | BRF_GRA },
-
- { "csc.01", 0x020000, 0xee162111, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "csc.11m", 0x200000, 0xa027b827, CPS2_QSND | BRF_SND },
- { "csc.12m", 0x200000, 0xcb7f6e55, CPS2_QSND | BRF_SND },
-
- { "cscluba.key", 0x000014, 0x591908dc, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Cscluba)
-STD_ROM_FN(Cscluba)
-
-static struct BurnRomInfo CsclubhRomDesc[] = {
- { "csch.03", 0x080000, 0x0dd7e46d, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "csch.04", 0x080000, 0x486e8143, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "csch.05", 0x080000, 0x9e509dfb, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "csch.06", 0x080000, 0x817ba313, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "csc.07", 0x080000, 0x01b05caa, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "csc.14m", 0x200000, 0xe8904afa, CPS2_GFX | BRF_GRA },
- { "csc.16m", 0x200000, 0xc98c8079, CPS2_GFX | BRF_GRA },
- { "csc.18m", 0x200000, 0xc030df5a, CPS2_GFX | BRF_GRA },
- { "csc.20m", 0x200000, 0xb4e55863, CPS2_GFX | BRF_GRA },
-
- { "csc.01", 0x020000, 0xee162111, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "csc.11m", 0x200000, 0xa027b827, CPS2_QSND | BRF_SND },
- { "csc.12m", 0x200000, 0xcb7f6e55, CPS2_QSND | BRF_SND },
-
- { "csclubh.key", 0x000014, 0xb0adc39e, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Csclubh)
-STD_ROM_FN(Csclubh)
-
-static struct BurnRomInfo CsclubjRomDesc[] = {
- { "cscj.03", 0x080000, 0xec4ddaa2, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "cscj.04", 0x080000, 0x60c632bb, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "cscj.05", 0x080000, 0xad042003, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "cscj.06", 0x080000, 0x169e4d40, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "csc.07", 0x080000, 0x01b05caa, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "csc.14m", 0x200000, 0xe8904afa, CPS2_GFX | BRF_GRA },
- { "csc.16m", 0x200000, 0xc98c8079, CPS2_GFX | BRF_GRA },
- { "csc.18m", 0x200000, 0xc030df5a, CPS2_GFX | BRF_GRA },
- { "csc.20m", 0x200000, 0xb4e55863, CPS2_GFX | BRF_GRA },
-
- { "csc.01", 0x020000, 0xee162111, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "csc.11m", 0x200000, 0xa027b827, CPS2_QSND | BRF_SND },
- { "csc.12m", 0x200000, 0xcb7f6e55, CPS2_QSND | BRF_SND },
-
- { "csclubj.key", 0x000014, 0x519a04db, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Csclubj)
-STD_ROM_FN(Csclubj)
-
-static struct BurnRomInfo CsclubjyRomDesc[] = {
-// this is fairly redundant, same code as csclubj, same gfx as csclub (yellow case - all eprom), but it's a valid shipped combination
- { "cscj.03", 0x080000, 0xec4ddaa2, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "cscj.04", 0x080000, 0x60c632bb, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "cscj.05", 0x080000, 0xad042003, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "cscj.06", 0x080000, 0x169e4d40, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "csc.07", 0x080000, 0x01b05caa, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "csc.73", 0x080000, 0x335f07c3, CPS2_GFX_SPLIT4 | BRF_GRA },
- { "csc.74", 0x080000, 0xab215357, CPS2_GFX_SPLIT4 | BRF_GRA },
- { "csc.75", 0x080000, 0xa2367381, CPS2_GFX_SPLIT4 | BRF_GRA },
- { "csc.76", 0x080000, 0x728aac1f, CPS2_GFX_SPLIT4 | BRF_GRA },
- { "csc.63", 0x080000, 0x3711b8ca, CPS2_GFX_SPLIT4 | BRF_GRA },
- { "csc.64", 0x080000, 0x828a06d8, CPS2_GFX_SPLIT4 | BRF_GRA },
- { "csc.65", 0x080000, 0x86ee4569, CPS2_GFX_SPLIT4 | BRF_GRA },
- { "csc.66", 0x080000, 0xc24f577f, CPS2_GFX_SPLIT4 | BRF_GRA },
- { "csc.83", 0x080000, 0x0750d12a, CPS2_GFX_SPLIT4 | BRF_GRA },
- { "csc.84", 0x080000, 0x90a92f39, CPS2_GFX_SPLIT4 | BRF_GRA },
- { "csc.85", 0x080000, 0xd08ab012, CPS2_GFX_SPLIT4 | BRF_GRA },
- { "csc.86", 0x080000, 0x41652583, CPS2_GFX_SPLIT4 | BRF_GRA },
- { "csc.93", 0x080000, 0xa756c7f7, CPS2_GFX_SPLIT4 | BRF_GRA },
- { "csc.94", 0x080000, 0xfb7ccc73, CPS2_GFX_SPLIT4 | BRF_GRA },
- { "csc.95", 0x080000, 0x4d014297, CPS2_GFX_SPLIT4 | BRF_GRA },
- { "csc.96", 0x080000, 0x6754b1ef, CPS2_GFX_SPLIT4 | BRF_GRA },
-
- { "csc.01", 0x020000, 0xee162111, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "csc.51", 0x080000, 0x5a52afd5, CPS2_QSND | BRF_SND },
- { "csc.52", 0x080000, 0x1408a811, CPS2_QSND | BRF_SND },
- { "csc.53", 0x080000, 0x4fb9f57c, CPS2_QSND | BRF_SND },
- { "csc.54", 0x080000, 0x9a8f40ec, CPS2_QSND | BRF_SND },
- { "csc.55", 0x080000, 0x91529a91, CPS2_QSND | BRF_SND },
- { "csc.56", 0x080000, 0x9a345334, CPS2_QSND | BRF_SND },
- { "csc.57", 0x080000, 0xaedc27f2, CPS2_QSND | BRF_SND },
- { "csc.58", 0x080000, 0x2300b7b3, CPS2_QSND | BRF_SND },
-
- { "csclubj.key", 0x000014, 0x519a04db, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Csclubjy)
-STD_ROM_FN(Csclubjy)
-
-static struct BurnRomInfo CybotsRomDesc[] = {
- { "cybe.03", 0x080000, 0x234381cd, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "cybe.04", 0x080000, 0x80691061, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "cyb.05", 0x080000, 0xec40408e, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "cyb.06", 0x080000, 0x1ad0bed2, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "cyb.07", 0x080000, 0x6245a39a, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "cyb.08", 0x080000, 0x4b48e223, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "cyb.09", 0x080000, 0xe15238f6, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "cyb.10", 0x080000, 0x75f4003b, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "cyb.13m", 0x400000, 0xf0dce192, CPS2_GFX | BRF_GRA },
- { "cyb.15m", 0x400000, 0x187aa39c, CPS2_GFX | BRF_GRA },
- { "cyb.17m", 0x400000, 0x8a0e4b12, CPS2_GFX | BRF_GRA },
- { "cyb.19m", 0x400000, 0x34b62612, CPS2_GFX | BRF_GRA },
- { "cyb.14m", 0x400000, 0xc1537957, CPS2_GFX | BRF_GRA },
- { "cyb.16m", 0x400000, 0x15349e86, CPS2_GFX | BRF_GRA },
- { "cyb.18m", 0x400000, 0xd83e977d, CPS2_GFX | BRF_GRA },
- { "cyb.20m", 0x400000, 0x77cdad5c, CPS2_GFX | BRF_GRA },
-
- { "cyb.01", 0x020000, 0x9c0fb079, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "cyb.02", 0x020000, 0x51cb0c4e, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "cyb.11m", 0x200000, 0x362ccab2, CPS2_QSND | BRF_SND },
- { "cyb.12m", 0x200000, 0x7066e9cc, CPS2_QSND | BRF_SND },
-
- { "cybots.key", 0x000014, 0x9bbcbef3, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Cybots)
-STD_ROM_FN(Cybots)
-
-static struct BurnRomInfo CybotsjRomDesc[] = {
- { "cybj.03", 0x080000, 0x6096eada, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "cybj.04", 0x080000, 0x7b0ffaa9, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "cyb.05", 0x080000, 0xec40408e, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "cyb.06", 0x080000, 0x1ad0bed2, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "cyb.07", 0x080000, 0x6245a39a, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "cyb.08", 0x080000, 0x4b48e223, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "cyb.09", 0x080000, 0xe15238f6, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "cyb.10", 0x080000, 0x75f4003b, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "cyb.13m", 0x400000, 0xf0dce192, CPS2_GFX | BRF_GRA },
- { "cyb.15m", 0x400000, 0x187aa39c, CPS2_GFX | BRF_GRA },
- { "cyb.17m", 0x400000, 0x8a0e4b12, CPS2_GFX | BRF_GRA },
- { "cyb.19m", 0x400000, 0x34b62612, CPS2_GFX | BRF_GRA },
- { "cyb.14m", 0x400000, 0xc1537957, CPS2_GFX | BRF_GRA },
- { "cyb.16m", 0x400000, 0x15349e86, CPS2_GFX | BRF_GRA },
- { "cyb.18m", 0x400000, 0xd83e977d, CPS2_GFX | BRF_GRA },
- { "cyb.20m", 0x400000, 0x77cdad5c, CPS2_GFX | BRF_GRA },
-
- { "cyb.01", 0x020000, 0x9c0fb079, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "cyb.02", 0x020000, 0x51cb0c4e, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "cyb.11m", 0x200000, 0x362ccab2, CPS2_QSND | BRF_SND },
- { "cyb.12m", 0x200000, 0x7066e9cc, CPS2_QSND | BRF_SND },
-
- { "cybotsj.key", 0x000014, 0xd4d560b7, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Cybotsj)
-STD_ROM_FN(Cybotsj)
-
-static struct BurnRomInfo CybotsuRomDesc[] = {
- { "cybu.03", 0x080000, 0xdb4da8f4, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "cybu.04", 0x080000, 0x1eec68ac, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "cyb.05", 0x080000, 0xec40408e, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "cyb.06", 0x080000, 0x1ad0bed2, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "cyb.07", 0x080000, 0x6245a39a, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "cyb.08", 0x080000, 0x4b48e223, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "cyb.09", 0x080000, 0xe15238f6, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "cyb.10", 0x080000, 0x75f4003b, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "cyb.13m", 0x400000, 0xf0dce192, CPS2_GFX | BRF_GRA },
- { "cyb.15m", 0x400000, 0x187aa39c, CPS2_GFX | BRF_GRA },
- { "cyb.17m", 0x400000, 0x8a0e4b12, CPS2_GFX | BRF_GRA },
- { "cyb.19m", 0x400000, 0x34b62612, CPS2_GFX | BRF_GRA },
- { "cyb.14m", 0x400000, 0xc1537957, CPS2_GFX | BRF_GRA },
- { "cyb.16m", 0x400000, 0x15349e86, CPS2_GFX | BRF_GRA },
- { "cyb.18m", 0x400000, 0xd83e977d, CPS2_GFX | BRF_GRA },
- { "cyb.20m", 0x400000, 0x77cdad5c, CPS2_GFX | BRF_GRA },
-
- { "cyb.01", 0x020000, 0x9c0fb079, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "cyb.02", 0x020000, 0x51cb0c4e, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "cyb.11m", 0x200000, 0x362ccab2, CPS2_QSND | BRF_SND },
- { "cyb.12m", 0x200000, 0x7066e9cc, CPS2_QSND | BRF_SND },
-
- { "cybotsu.key", 0x000014, 0x7a09403c, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Cybotsu)
-STD_ROM_FN(Cybotsu)
-
-static struct BurnRomInfo DdsomRomDesc[] = {
- { "dd2e.03e", 0x080000, 0x449361AF, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dd2e.04e", 0x080000, 0x5B7052B6, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dd2e.05e", 0x080000, 0x788D5F60, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dd2e.06e", 0x080000, 0xE0807E1E, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dd2e.07", 0x080000, 0xbb777a02, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dd2e.08", 0x080000, 0x30970890, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dd2e.09", 0x080000, 0x99e2194d, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dd2e.10", 0x080000, 0xe198805e, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "dd2.13m", 0x400000, 0xa46b4e6e, CPS2_GFX | BRF_GRA },
- { "dd2.15m", 0x400000, 0xd5fc50fc, CPS2_GFX | BRF_GRA },
- { "dd2.17m", 0x400000, 0x837c0867, CPS2_GFX | BRF_GRA },
- { "dd2.19m", 0x400000, 0xbb0ec21c, CPS2_GFX | BRF_GRA },
- { "dd2.14m", 0x200000, 0x6d824ce2, CPS2_GFX | BRF_GRA },
- { "dd2.16m", 0x200000, 0x79682ae5, CPS2_GFX | BRF_GRA },
- { "dd2.18m", 0x200000, 0xacddd149, CPS2_GFX | BRF_GRA },
- { "dd2.20m", 0x200000, 0x117fb0c0, CPS2_GFX | BRF_GRA },
-
- { "dd2.01", 0x020000, 0x99d657e5, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "dd2.02", 0x020000, 0x117a3824, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "dd2.11m", 0x200000, 0x98d0c325, CPS2_QSND | BRF_SND },
- { "dd2.12m", 0x200000, 0x5ea2e7fa, CPS2_QSND | BRF_SND },
-
- { "ddsom.key", 0x000014, 0x541e425d, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Ddsom)
-STD_ROM_FN(Ddsom)
-
-static struct BurnRomInfo Ddsomr1RomDesc[] = {
- { "dd2e.03d", 0x080000, 0x6c084ab5, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dd2e.04d", 0x080000, 0x9b94a947, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dd2e.05d", 0x080000, 0x5d6a63c6, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dd2e.06d", 0x080000, 0x31bde8ee, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dd2e.07", 0x080000, 0xbb777a02, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dd2e.08", 0x080000, 0x30970890, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dd2e.09", 0x080000, 0x99e2194d, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dd2e.10", 0x080000, 0xe198805e, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "dd2.13m", 0x400000, 0xa46b4e6e, CPS2_GFX | BRF_GRA },
- { "dd2.15m", 0x400000, 0xd5fc50fc, CPS2_GFX | BRF_GRA },
- { "dd2.17m", 0x400000, 0x837c0867, CPS2_GFX | BRF_GRA },
- { "dd2.19m", 0x400000, 0xbb0ec21c, CPS2_GFX | BRF_GRA },
- { "dd2.14m", 0x200000, 0x6d824ce2, CPS2_GFX | BRF_GRA },
- { "dd2.16m", 0x200000, 0x79682ae5, CPS2_GFX | BRF_GRA },
- { "dd2.18m", 0x200000, 0xacddd149, CPS2_GFX | BRF_GRA },
- { "dd2.20m", 0x200000, 0x117fb0c0, CPS2_GFX | BRF_GRA },
-
- { "dd2.01", 0x020000, 0x99d657e5, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "dd2.02", 0x020000, 0x117a3824, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "dd2.11m", 0x200000, 0x98d0c325, CPS2_QSND | BRF_SND },
- { "dd2.12m", 0x200000, 0x5ea2e7fa, CPS2_QSND | BRF_SND },
-
- { "ddsom.key", 0x000014, 0x541e425d, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Ddsomr1)
-STD_ROM_FN(Ddsomr1)
-
-static struct BurnRomInfo Ddsomr2RomDesc[] = {
- { "dd2e.03b", 0x080000, 0xcd2deb66, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dd2e.04b", 0x080000, 0xbfee43cc, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dd2e.05b", 0x080000, 0x049ab19d, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dd2e.06b", 0x080000, 0x3994fb8b, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dd2e.07", 0x080000, 0xbb777a02, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dd2e.08", 0x080000, 0x30970890, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dd2e.09", 0x080000, 0x99e2194d, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dd2e.10", 0x080000, 0xe198805e, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "dd2.13m", 0x400000, 0xa46b4e6e, CPS2_GFX | BRF_GRA },
- { "dd2.15m", 0x400000, 0xd5fc50fc, CPS2_GFX | BRF_GRA },
- { "dd2.17m", 0x400000, 0x837c0867, CPS2_GFX | BRF_GRA },
- { "dd2.19m", 0x400000, 0xbb0ec21c, CPS2_GFX | BRF_GRA },
- { "dd2.14m", 0x200000, 0x6d824ce2, CPS2_GFX | BRF_GRA },
- { "dd2.16m", 0x200000, 0x79682ae5, CPS2_GFX | BRF_GRA },
- { "dd2.18m", 0x200000, 0xacddd149, CPS2_GFX | BRF_GRA },
- { "dd2.20m", 0x200000, 0x117fb0c0, CPS2_GFX | BRF_GRA },
-
- { "dd2.01", 0x020000, 0x99d657e5, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "dd2.02", 0x020000, 0x117a3824, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "dd2.11m", 0x200000, 0x98d0c325, CPS2_QSND | BRF_SND },
- { "dd2.12m", 0x200000, 0x5ea2e7fa, CPS2_QSND | BRF_SND },
-
- { "ddsom.key", 0x000014, 0x541e425d, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Ddsomr2)
-STD_ROM_FN(Ddsomr2)
-
-static struct BurnRomInfo Ddsomr3RomDesc[] = {
- { "dd2e.03a", 0x080000, 0x6de67678, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dd2e.04a", 0x080000, 0x0e45739a, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dd2e.05a", 0x080000, 0x3dce8025, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dd2e.06a", 0x080000, 0x51bafbef, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dd2e.07", 0x080000, 0xbb777a02, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dd2e.08", 0x080000, 0x30970890, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dd2e.09", 0x080000, 0x99e2194d, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dd2e.10", 0x080000, 0xe198805e, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "dd2.13m", 0x400000, 0xa46b4e6e, CPS2_GFX | BRF_GRA },
- { "dd2.15m", 0x400000, 0xd5fc50fc, CPS2_GFX | BRF_GRA },
- { "dd2.17m", 0x400000, 0x837c0867, CPS2_GFX | BRF_GRA },
- { "dd2.19m", 0x400000, 0xbb0ec21c, CPS2_GFX | BRF_GRA },
- { "dd2.14m", 0x200000, 0x6d824ce2, CPS2_GFX | BRF_GRA },
- { "dd2.16m", 0x200000, 0x79682ae5, CPS2_GFX | BRF_GRA },
- { "dd2.18m", 0x200000, 0xacddd149, CPS2_GFX | BRF_GRA },
- { "dd2.20m", 0x200000, 0x117fb0c0, CPS2_GFX | BRF_GRA },
-
- { "dd2.01", 0x020000, 0x99d657e5, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "dd2.02", 0x020000, 0x117a3824, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "dd2.11m", 0x200000, 0x98d0c325, CPS2_QSND | BRF_SND },
- { "dd2.12m", 0x200000, 0x5ea2e7fa, CPS2_QSND | BRF_SND },
-
- { "ddsom.key", 0x000014, 0x541e425d, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Ddsomr3)
-STD_ROM_FN(Ddsomr3)
-
-static struct BurnRomInfo DdsomaRomDesc[] = {
- { "dd2a.03g", 0x080000, 0x0b4fec22, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dd2a.04g", 0x080000, 0x055b7019, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dd2.05g", 0x080000, 0x5eb1991c, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dd2.06g", 0x080000, 0xc26b5e55, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dd2.07", 0x080000, 0x909a0b8b, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dd2.08", 0x080000, 0xe53c4d01, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dd2.09", 0x080000, 0x5f86279f, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dd2.10", 0x080000, 0xad954c26, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "dd2.13m", 0x400000, 0xa46b4e6e, CPS2_GFX | BRF_GRA },
- { "dd2.15m", 0x400000, 0xd5fc50fc, CPS2_GFX | BRF_GRA },
- { "dd2.17m", 0x400000, 0x837c0867, CPS2_GFX | BRF_GRA },
- { "dd2.19m", 0x400000, 0xbb0ec21c, CPS2_GFX | BRF_GRA },
- { "dd2.14m", 0x200000, 0x6d824ce2, CPS2_GFX | BRF_GRA },
- { "dd2.16m", 0x200000, 0x79682ae5, CPS2_GFX | BRF_GRA },
- { "dd2.18m", 0x200000, 0xacddd149, CPS2_GFX | BRF_GRA },
- { "dd2.20m", 0x200000, 0x117fb0c0, CPS2_GFX | BRF_GRA },
-
- { "dd2.01", 0x020000, 0x99d657e5, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "dd2.02", 0x020000, 0x117a3824, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "dd2.11m", 0x200000, 0x98d0c325, CPS2_QSND | BRF_SND },
- { "dd2.12m", 0x200000, 0x5ea2e7fa, CPS2_QSND | BRF_SND },
-
- { "ddsoma.key", 0x000014, 0x8c3cc560, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Ddsoma)
-STD_ROM_FN(Ddsoma)
-
-static struct BurnRomInfo Ddsomar1RomDesc[] = {
- { "dd2a.03c", 0x080000, 0x17162039, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dd2a.04c", 0x080000, 0x950bec38, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dd2a.05c", 0x080000, 0xfa298eba, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dd2a.06c", 0x080000, 0x28f75b35, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dd2.07", 0x080000, 0x909a0b8b, CPS2_PRG_68K | BRF_ESS | BRF_PRG }, // dd2a.07 on sticker
- { "dd2.08", 0x080000, 0xe53c4d01, CPS2_PRG_68K | BRF_ESS | BRF_PRG }, // dd2a.08 on sticker
- { "dd2.09", 0x080000, 0x5f86279f, CPS2_PRG_68K | BRF_ESS | BRF_PRG }, // dd2a.09 on sticker
- { "dd2.10", 0x080000, 0xad954c26, CPS2_PRG_68K | BRF_ESS | BRF_PRG }, // dd2a.10 on sticker
-
- { "dd2.13m", 0x400000, 0xa46b4e6e, CPS2_GFX | BRF_GRA },
- { "dd2.15m", 0x400000, 0xd5fc50fc, CPS2_GFX | BRF_GRA },
- { "dd2.17m", 0x400000, 0x837c0867, CPS2_GFX | BRF_GRA },
- { "dd2.19m", 0x400000, 0xbb0ec21c, CPS2_GFX | BRF_GRA },
- { "dd2.14m", 0x200000, 0x6d824ce2, CPS2_GFX | BRF_GRA },
- { "dd2.16m", 0x200000, 0x79682ae5, CPS2_GFX | BRF_GRA },
- { "dd2.18m", 0x200000, 0xacddd149, CPS2_GFX | BRF_GRA },
- { "dd2.20m", 0x200000, 0x117fb0c0, CPS2_GFX | BRF_GRA },
-
- { "dd2.01", 0x020000, 0x99d657e5, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG }, // dd2a.01 on sticker
- { "dd2.02", 0x020000, 0x117a3824, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG }, // dd2a.02 on sticker
-
- { "dd2.11m", 0x200000, 0x98d0c325, CPS2_QSND | BRF_SND },
- { "dd2.12m", 0x200000, 0x5ea2e7fa, CPS2_QSND | BRF_SND },
-
- { "ddsoma.key", 0x000014, 0x8c3cc560, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Ddsomar1)
-STD_ROM_FN(Ddsomar1)
-
-static struct BurnRomInfo DdsombRomDesc[] = {
- { "dd2b.03a", 0x080000, 0xe8ce7fbb, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dd2b.04a", 0x080000, 0x6b679664, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dd2b.05a", 0x080000, 0x9b2534eb, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dd2b.06a", 0x080000, 0x3b21ba59, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dd2b.07", 0x080000, 0xfce2558d, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dd2e.08", 0x080000, 0x30970890, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dd2e.09", 0x080000, 0x99e2194d, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dd2e.10", 0x080000, 0xe198805e, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "dd2.13m", 0x400000, 0xa46b4e6e, CPS2_GFX | BRF_GRA },
- { "dd2.15m", 0x400000, 0xd5fc50fc, CPS2_GFX | BRF_GRA },
- { "dd2.17m", 0x400000, 0x837c0867, CPS2_GFX | BRF_GRA },
- { "dd2.19m", 0x400000, 0xbb0ec21c, CPS2_GFX | BRF_GRA },
- { "dd2.14m", 0x200000, 0x6d824ce2, CPS2_GFX | BRF_GRA },
- { "dd2.16m", 0x200000, 0x79682ae5, CPS2_GFX | BRF_GRA },
- { "dd2.18m", 0x200000, 0xacddd149, CPS2_GFX | BRF_GRA },
- { "dd2.20m", 0x200000, 0x117fb0c0, CPS2_GFX | BRF_GRA },
-
- { "dd2.01", 0x020000, 0x99d657e5, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "dd2.02", 0x020000, 0x117a3824, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "dd2.11m", 0x200000, 0x98d0c325, CPS2_QSND | BRF_SND },
- { "dd2.12m", 0x200000, 0x5ea2e7fa, CPS2_QSND | BRF_SND },
-
- { "ddsomb.key", 0x000014, 0x00b4cc49, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Ddsomb)
-STD_ROM_FN(Ddsomb)
-
-static struct BurnRomInfo DdsomhRomDesc[] = {
- { "dd2h.03a", 0x080000, 0xe472c9f3, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dd2h.04a", 0x080000, 0x315a7706, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dd2h.05a", 0x080000, 0x9b2534eb, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dd2h.06a", 0x080000, 0x3b21ba59, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dd2h.07a", 0x080000, 0xfce2558d, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dd2e.08", 0x080000, 0x30970890, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dd2e.09", 0x080000, 0x99e2194d, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dd2e.10", 0x080000, 0xe198805e, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "dd2.13m", 0x400000, 0xa46b4e6e, CPS2_GFX | BRF_GRA },
- { "dd2.15m", 0x400000, 0xd5fc50fc, CPS2_GFX | BRF_GRA },
- { "dd2.17m", 0x400000, 0x837c0867, CPS2_GFX | BRF_GRA },
- { "dd2.19m", 0x400000, 0xbb0ec21c, CPS2_GFX | BRF_GRA },
- { "dd2.14m", 0x200000, 0x6d824ce2, CPS2_GFX | BRF_GRA },
- { "dd2.16m", 0x200000, 0x79682ae5, CPS2_GFX | BRF_GRA },
- { "dd2.18m", 0x200000, 0xacddd149, CPS2_GFX | BRF_GRA },
- { "dd2.20m", 0x200000, 0x117fb0c0, CPS2_GFX | BRF_GRA },
-
- { "dd2.01", 0x020000, 0x99d657e5, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "dd2.02", 0x020000, 0x117a3824, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "dd2.11m", 0x200000, 0x98d0c325, CPS2_QSND | BRF_SND },
- { "dd2.12m", 0x200000, 0x5ea2e7fa, CPS2_QSND | BRF_SND },
-
- { "ddsomh.key", 0x000014, 0xcaf6b540, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Ddsomh)
-STD_ROM_FN(Ddsomh)
-
-static struct BurnRomInfo DdsomjRomDesc[] = {
- { "dd2j.03g", 0x080000, 0xe6c8c985, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dd2j.04g", 0x080000, 0x8386c0bd, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dd2.05g", 0x080000, 0x5eb1991c, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dd2.06g", 0x080000, 0xc26b5e55, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dd2.07", 0x080000, 0x909a0b8b, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dd2.08", 0x080000, 0xe53c4d01, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dd2.09", 0x080000, 0x5f86279f, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dd2.10", 0x080000, 0xad954c26, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "dd2.13m", 0x400000, 0xa46b4e6e, CPS2_GFX | BRF_GRA },
- { "dd2.15m", 0x400000, 0xd5fc50fc, CPS2_GFX | BRF_GRA },
- { "dd2.17m", 0x400000, 0x837c0867, CPS2_GFX | BRF_GRA },
- { "dd2.19m", 0x400000, 0xbb0ec21c, CPS2_GFX | BRF_GRA },
- { "dd2.14m", 0x200000, 0x6d824ce2, CPS2_GFX | BRF_GRA },
- { "dd2.16m", 0x200000, 0x79682ae5, CPS2_GFX | BRF_GRA },
- { "dd2.18m", 0x200000, 0xacddd149, CPS2_GFX | BRF_GRA },
- { "dd2.20m", 0x200000, 0x117fb0c0, CPS2_GFX | BRF_GRA },
-
- { "dd2.01", 0x020000, 0x99d657e5, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "dd2.02", 0x020000, 0x117a3824, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "dd2.11m", 0x200000, 0x98d0c325, CPS2_QSND | BRF_SND },
- { "dd2.12m", 0x200000, 0x5ea2e7fa, CPS2_QSND | BRF_SND },
-
- { "ddsomj.key", 0x000014, 0xd8dadb22, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Ddsomj)
-STD_ROM_FN(Ddsomj)
-
-static struct BurnRomInfo Ddsomjr1RomDesc[] = {
- { "dd2j.03b", 0x080000, 0x965d74e5, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dd2j.04b", 0x080000, 0x958eb8f3, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dd2.05b", 0x080000, 0xd38571ca, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dd2.06b", 0x080000, 0x6d5a3bbb, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dd2.07", 0x080000, 0x909a0b8b, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dd2.08", 0x080000, 0xe53c4d01, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dd2.09", 0x080000, 0x5f86279f, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dd2.10", 0x080000, 0xad954c26, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "dd2.13m", 0x400000, 0xa46b4e6e, CPS2_GFX | BRF_GRA },
- { "dd2.15m", 0x400000, 0xd5fc50fc, CPS2_GFX | BRF_GRA },
- { "dd2.17m", 0x400000, 0x837c0867, CPS2_GFX | BRF_GRA },
- { "dd2.19m", 0x400000, 0xbb0ec21c, CPS2_GFX | BRF_GRA },
- { "dd2.14m", 0x200000, 0x6d824ce2, CPS2_GFX | BRF_GRA },
- { "dd2.16m", 0x200000, 0x79682ae5, CPS2_GFX | BRF_GRA },
- { "dd2.18m", 0x200000, 0xacddd149, CPS2_GFX | BRF_GRA },
- { "dd2.20m", 0x200000, 0x117fb0c0, CPS2_GFX | BRF_GRA },
-
- { "dd2.01", 0x020000, 0x99d657e5, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "dd2.02", 0x020000, 0x117a3824, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "dd2.11m", 0x200000, 0x98d0c325, CPS2_QSND | BRF_SND },
- { "dd2.12m", 0x200000, 0x5ea2e7fa, CPS2_QSND | BRF_SND },
-
- { "ddsomj.key", 0x000014, 0xd8dadb22, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Ddsomjr1)
-STD_ROM_FN(Ddsomjr1)
-
-static struct BurnRomInfo Ddsomjr2RomDesc[] = {
- { "dd2j.03b", 0x080000, 0xb2fd4a24, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dd2j.04b", 0x080000, 0x3a68c310, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dd2.05b", 0x080000, 0xaa56f42f, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dd2.06b", 0x080000, 0x2f8cd040, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dd2.07", 0x080000, 0x909a0b8b, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dd2.08", 0x080000, 0xe53c4d01, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dd2.09", 0x080000, 0x5f86279f, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dd2.10", 0x080000, 0xad954c26, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "dd2.13m", 0x400000, 0xa46b4e6e, CPS2_GFX | BRF_GRA },
- { "dd2.15m", 0x400000, 0xd5fc50fc, CPS2_GFX | BRF_GRA },
- { "dd2.17m", 0x400000, 0x837c0867, CPS2_GFX | BRF_GRA },
- { "dd2.19m", 0x400000, 0xbb0ec21c, CPS2_GFX | BRF_GRA },
- { "dd2.14m", 0x200000, 0x6d824ce2, CPS2_GFX | BRF_GRA },
- { "dd2.16m", 0x200000, 0x79682ae5, CPS2_GFX | BRF_GRA },
- { "dd2.18m", 0x200000, 0xacddd149, CPS2_GFX | BRF_GRA },
- { "dd2.20m", 0x200000, 0x117fb0c0, CPS2_GFX | BRF_GRA },
-
- { "dd2.01", 0x020000, 0x99d657e5, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "dd2.02", 0x020000, 0x117a3824, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "dd2.11m", 0x200000, 0x98d0c325, CPS2_QSND | BRF_SND },
- { "dd2.12m", 0x200000, 0x5ea2e7fa, CPS2_QSND | BRF_SND },
-
- { "ddsomj.key", 0x000014, 0xd8dadb22, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Ddsomjr2)
-STD_ROM_FN(Ddsomjr2)
-
-static struct BurnRomInfo DdsomuRomDesc[] = {
- { "dd2u.03g", 0x080000, 0xfb089b39, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dd2u.04g", 0x080000, 0xcd432b73, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dd2.05g", 0x080000, 0x5eb1991c, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dd2.06g", 0x080000, 0xc26b5e55, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dd2.07", 0x080000, 0x909a0b8b, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dd2.08", 0x080000, 0xe53c4d01, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dd2.09", 0x080000, 0x5f86279f, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dd2.10", 0x080000, 0xad954c26, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "dd2.13m", 0x400000, 0xa46b4e6e, CPS2_GFX | BRF_GRA },
- { "dd2.15m", 0x400000, 0xd5fc50fc, CPS2_GFX | BRF_GRA },
- { "dd2.17m", 0x400000, 0x837c0867, CPS2_GFX | BRF_GRA },
- { "dd2.19m", 0x400000, 0xbb0ec21c, CPS2_GFX | BRF_GRA },
- { "dd2.14m", 0x200000, 0x6d824ce2, CPS2_GFX | BRF_GRA },
- { "dd2.16m", 0x200000, 0x79682ae5, CPS2_GFX | BRF_GRA },
- { "dd2.18m", 0x200000, 0xacddd149, CPS2_GFX | BRF_GRA },
- { "dd2.20m", 0x200000, 0x117fb0c0, CPS2_GFX | BRF_GRA },
-
- { "dd2.01", 0x020000, 0x99d657e5, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "dd2.02", 0x020000, 0x117a3824, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "dd2.11m", 0x200000, 0x98d0c325, CPS2_QSND | BRF_SND },
- { "dd2.12m", 0x200000, 0x5ea2e7fa, CPS2_QSND | BRF_SND },
-
- { "ddsomu.key", 0x000014, 0x09ae0f7c, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Ddsomu)
-STD_ROM_FN(Ddsomu)
-
-static struct BurnRomInfo Ddsomur1RomDesc[] = {
- { "dd2u.03d", 0x080000, 0x0f700d84, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dd2u.04d", 0x080000, 0xb99eb254, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dd2.05d", 0x080000, 0xb23061f3, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dd2.06d", 0x080000, 0x8bf1d8ce, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dd2.07", 0x080000, 0x909a0b8b, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dd2.08", 0x080000, 0xe53c4d01, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dd2.09", 0x080000, 0x5f86279f, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dd2.10", 0x080000, 0xad954c26, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "dd2.13m", 0x400000, 0xa46b4e6e, CPS2_GFX | BRF_GRA },
- { "dd2.15m", 0x400000, 0xd5fc50fc, CPS2_GFX | BRF_GRA },
- { "dd2.17m", 0x400000, 0x837c0867, CPS2_GFX | BRF_GRA },
- { "dd2.19m", 0x400000, 0xbb0ec21c, CPS2_GFX | BRF_GRA },
- { "dd2.14m", 0x200000, 0x6d824ce2, CPS2_GFX | BRF_GRA },
- { "dd2.16m", 0x200000, 0x79682ae5, CPS2_GFX | BRF_GRA },
- { "dd2.18m", 0x200000, 0xacddd149, CPS2_GFX | BRF_GRA },
- { "dd2.20m", 0x200000, 0x117fb0c0, CPS2_GFX | BRF_GRA },
-
- { "dd2.01", 0x020000, 0x99d657e5, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "dd2.02", 0x020000, 0x117a3824, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "dd2.11m", 0x200000, 0x98d0c325, CPS2_QSND | BRF_SND },
- { "dd2.12m", 0x200000, 0x5ea2e7fa, CPS2_QSND | BRF_SND },
-
- { "ddsomu.key", 0x000014, 0x09ae0f7c, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Ddsomur1)
-STD_ROM_FN(Ddsomur1)
-
-static struct BurnRomInfo DdtodRomDesc[] = {
- { "dade.03c", 0x080000, 0x8e73533d, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dade.04c", 0x080000, 0x00c2e82e, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dade.05c", 0x080000, 0xea996008, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dad.06a", 0x080000, 0x6225495a, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dad.07a", 0x080000, 0xb3480ec3, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "dad.13m", 0x200000, 0xda3cb7d6, CPS2_GFX | BRF_GRA },
- { "dad.15m", 0x200000, 0x92b63172, CPS2_GFX | BRF_GRA },
- { "dad.17m", 0x200000, 0xb98757f5, CPS2_GFX | BRF_GRA },
- { "dad.19m", 0x200000, 0x8121ce46, CPS2_GFX | BRF_GRA },
- { "dad.14m", 0x100000, 0x837e6f3f, CPS2_GFX | BRF_GRA },
- { "dad.16m", 0x100000, 0xf0916bdb, CPS2_GFX | BRF_GRA },
- { "dad.18m", 0x100000, 0xcef393ef, CPS2_GFX | BRF_GRA },
- { "dad.20m", 0x100000, 0x8953fe9e, CPS2_GFX | BRF_GRA },
-
- { "dad.01", 0x020000, 0x3f5e2424, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "dad.11m", 0x200000, 0x0c499b67, CPS2_QSND | BRF_SND },
- { "dad.12m", 0x200000, 0x2f0b5a4e, CPS2_QSND | BRF_SND },
-
- { "ddtod.key", 0x000014, 0x41dfca41, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Ddtod)
-STD_ROM_FN(Ddtod)
-
-static struct BurnRomInfo Ddtodr1RomDesc[] = {
- { "dade.03a", 0x080000, 0x665a035e, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dade.04a", 0x080000, 0x02613207, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dade.05a", 0x080000, 0x36845996, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dad.06", 0x080000, 0x13aa3e56, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dad.07", 0x080000, 0x431cb6dd, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "dad.13m", 0x200000, 0xda3cb7d6, CPS2_GFX | BRF_GRA },
- { "dad.15m", 0x200000, 0x92b63172, CPS2_GFX | BRF_GRA },
- { "dad.17m", 0x200000, 0xb98757f5, CPS2_GFX | BRF_GRA },
- { "dad.19m", 0x200000, 0x8121ce46, CPS2_GFX | BRF_GRA },
- { "dad.14m", 0x100000, 0x837e6f3f, CPS2_GFX | BRF_GRA },
- { "dad.16m", 0x100000, 0xf0916bdb, CPS2_GFX | BRF_GRA },
- { "dad.18m", 0x100000, 0xcef393ef, CPS2_GFX | BRF_GRA },
- { "dad.20m", 0x100000, 0x8953fe9e, CPS2_GFX | BRF_GRA },
-
- { "dad.01", 0x020000, 0x3f5e2424, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "dad.11m", 0x200000, 0x0c499b67, CPS2_QSND | BRF_SND },
- { "dad.12m", 0x200000, 0x2f0b5a4e, CPS2_QSND | BRF_SND },
-
- { "ddtod.key", 0x000014, 0x41dfca41, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Ddtodr1)
-STD_ROM_FN(Ddtodr1)
-
-static struct BurnRomInfo DdtodaRomDesc[] = {
- { "dada.03c", 0x080000, 0xbf243e15, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dada.04c", 0x080000, 0x76551eec, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dada.05c", 0x080000, 0x0a0ad827, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dad.06a", 0x080000, 0x6225495a, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dad.07a", 0x080000, 0xb3480ec3, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "dad.13m", 0x200000, 0xda3cb7d6, CPS2_GFX | BRF_GRA },
- { "dad.15m", 0x200000, 0x92b63172, CPS2_GFX | BRF_GRA },
- { "dad.17m", 0x200000, 0xb98757f5, CPS2_GFX | BRF_GRA },
- { "dad.19m", 0x200000, 0x8121ce46, CPS2_GFX | BRF_GRA },
- { "dad.14m", 0x100000, 0x837e6f3f, CPS2_GFX | BRF_GRA },
- { "dad.16m", 0x100000, 0xf0916bdb, CPS2_GFX | BRF_GRA },
- { "dad.18m", 0x100000, 0xcef393ef, CPS2_GFX | BRF_GRA },
- { "dad.20m", 0x100000, 0x8953fe9e, CPS2_GFX | BRF_GRA },
-
- { "dad.01", 0x020000, 0x3f5e2424, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "dad.11m", 0x200000, 0x0c499b67, CPS2_QSND | BRF_SND },
- { "dad.12m", 0x200000, 0x2f0b5a4e, CPS2_QSND | BRF_SND },
-
- { "ddtoda.key", 0x000014, 0xe5e8d1b8, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Ddtoda)
-STD_ROM_FN(Ddtoda)
-
-static struct BurnRomInfo Ddtodar1RomDesc[] = {
- { "dada.03a", 0x080000, 0xfc6f2dd7, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dada.04a", 0x080000, 0xd4be4009, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dada.05a", 0x080000, 0x6712d1cf, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dad.06", 0x080000, 0x13aa3e56, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dad.07", 0x080000, 0x431cb6dd, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "dad.13m", 0x200000, 0xda3cb7d6, CPS2_GFX | BRF_GRA },
- { "dad.15m", 0x200000, 0x92b63172, CPS2_GFX | BRF_GRA },
- { "dad.17m", 0x200000, 0xb98757f5, CPS2_GFX | BRF_GRA },
- { "dad.19m", 0x200000, 0x8121ce46, CPS2_GFX | BRF_GRA },
- { "dad.14m", 0x100000, 0x837e6f3f, CPS2_GFX | BRF_GRA },
- { "dad.16m", 0x100000, 0xf0916bdb, CPS2_GFX | BRF_GRA },
- { "dad.18m", 0x100000, 0xcef393ef, CPS2_GFX | BRF_GRA },
- { "dad.20m", 0x100000, 0x8953fe9e, CPS2_GFX | BRF_GRA },
-
- { "dad.01", 0x020000, 0x3f5e2424, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "dad.11m", 0x200000, 0x0c499b67, CPS2_QSND | BRF_SND },
- { "dad.12m", 0x200000, 0x2f0b5a4e, CPS2_QSND | BRF_SND },
-
- { "ddtoda.key", 0x000014, 0xe5e8d1b8, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Ddtodar1)
-STD_ROM_FN(Ddtodar1)
-
-static struct BurnRomInfo DdtodhRomDesc[] = {
- { "dadh.03c", 0x080000, 0x5750a861, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dadh.04c", 0x080000, 0xcfbf1b56, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dadh.05c", 0x080000, 0xa6e562ba, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dad.06a", 0x080000, 0x6225495a, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dad.07a", 0x080000, 0xb3480ec3, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "dad.13m", 0x200000, 0xda3cb7d6, CPS2_GFX | BRF_GRA },
- { "dad.15m", 0x200000, 0x92b63172, CPS2_GFX | BRF_GRA },
- { "dad.17m", 0x200000, 0xb98757f5, CPS2_GFX | BRF_GRA },
- { "dad.19m", 0x200000, 0x8121ce46, CPS2_GFX | BRF_GRA },
- { "dad.14m", 0x100000, 0x837e6f3f, CPS2_GFX | BRF_GRA },
- { "dad.16m", 0x100000, 0xf0916bdb, CPS2_GFX | BRF_GRA },
- { "dad.18m", 0x100000, 0xcef393ef, CPS2_GFX | BRF_GRA },
- { "dad.20m", 0x100000, 0x8953fe9e, CPS2_GFX | BRF_GRA },
-
- { "dad.01", 0x020000, 0x3f5e2424, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "dad.11m", 0x200000, 0x0c499b67, CPS2_QSND | BRF_SND },
- { "dad.12m", 0x200000, 0x2f0b5a4e, CPS2_QSND | BRF_SND },
-
- { "ddtodh.key", 0x000014, 0x65f33a1c, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Ddtodh)
-STD_ROM_FN(Ddtodh)
-
-static struct BurnRomInfo Ddtodhr1RomDesc[] = {
- { "dadh.03b", 0x080000, 0xae0cb98e, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dadh.04b", 0x080000, 0xb5774363, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dadh.05b", 0x080000, 0x6ce2a485, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dad.06", 0x080000, 0x13aa3e56, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dad.07", 0x080000, 0x431cb6dd, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "dad.13m", 0x200000, 0xda3cb7d6, CPS2_GFX | BRF_GRA },
- { "dad.15m", 0x200000, 0x92b63172, CPS2_GFX | BRF_GRA },
- { "dad.17m", 0x200000, 0xb98757f5, CPS2_GFX | BRF_GRA },
- { "dad.19m", 0x200000, 0x8121ce46, CPS2_GFX | BRF_GRA },
- { "dad.14m", 0x100000, 0x837e6f3f, CPS2_GFX | BRF_GRA },
- { "dad.16m", 0x100000, 0xf0916bdb, CPS2_GFX | BRF_GRA },
- { "dad.18m", 0x100000, 0xcef393ef, CPS2_GFX | BRF_GRA },
- { "dad.20m", 0x100000, 0x8953fe9e, CPS2_GFX | BRF_GRA },
-
- { "dad.01", 0x020000, 0x3f5e2424, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "dad.11m", 0x200000, 0x0c499b67, CPS2_QSND | BRF_SND },
- { "dad.12m", 0x200000, 0x2f0b5a4e, CPS2_QSND | BRF_SND },
-
- { "ddtodh.key", 0x000014, 0x65f33a1c, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Ddtodhr1)
-STD_ROM_FN(Ddtodhr1)
-
-static struct BurnRomInfo Ddtodhr2RomDesc[] = {
- { "dadh.03a", 0x080000, 0x43d04aa3, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dadh.04a", 0x080000, 0x8b8d296c, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dadh.05a", 0x080000, 0xdaae6b14, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dad.06", 0x080000, 0x13aa3e56, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dad.07", 0x080000, 0x431cb6dd, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "dad.13m", 0x200000, 0xda3cb7d6, CPS2_GFX | BRF_GRA },
- { "dad.15m", 0x200000, 0x92b63172, CPS2_GFX | BRF_GRA },
- { "dad.17m", 0x200000, 0xb98757f5, CPS2_GFX | BRF_GRA },
- { "dad.19m", 0x200000, 0x8121ce46, CPS2_GFX | BRF_GRA },
- { "dad.14m", 0x100000, 0x837e6f3f, CPS2_GFX | BRF_GRA },
- { "dad.16m", 0x100000, 0xf0916bdb, CPS2_GFX | BRF_GRA },
- { "dad.18m", 0x100000, 0xcef393ef, CPS2_GFX | BRF_GRA },
- { "dad.20m", 0x100000, 0x8953fe9e, CPS2_GFX | BRF_GRA },
-
- { "dad.01", 0x020000, 0x3f5e2424, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "dad.11m", 0x200000, 0x0c499b67, CPS2_QSND | BRF_SND },
- { "dad.12m", 0x200000, 0x2f0b5a4e, CPS2_QSND | BRF_SND },
-
- { "ddtodh.key", 0x000014, 0x65f33a1c, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Ddtodhr2)
-STD_ROM_FN(Ddtodhr2)
-
-static struct BurnRomInfo DdtodjRomDesc[] = {
- { "dadj.03c", 0x080000, 0x0b1b5798, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dadj.04c", 0x080000, 0xc6a2fbc8, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dadj.05c", 0x080000, 0x189b15fe, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dad.06a", 0x080000, 0x6225495a, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dad.07a", 0x080000, 0xb3480ec3, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "dad.13m", 0x200000, 0xda3cb7d6, CPS2_GFX | BRF_GRA },
- { "dad.15m", 0x200000, 0x92b63172, CPS2_GFX | BRF_GRA },
- { "dad.17m", 0x200000, 0xb98757f5, CPS2_GFX | BRF_GRA },
- { "dad.19m", 0x200000, 0x8121ce46, CPS2_GFX | BRF_GRA },
- { "dad.14m", 0x100000, 0x837e6f3f, CPS2_GFX | BRF_GRA },
- { "dad.16m", 0x100000, 0xf0916bdb, CPS2_GFX | BRF_GRA },
- { "dad.18m", 0x100000, 0xcef393ef, CPS2_GFX | BRF_GRA },
- { "dad.20m", 0x100000, 0x8953fe9e, CPS2_GFX | BRF_GRA },
-
- { "dad.01", 0x020000, 0x3f5e2424, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "dad.11m", 0x200000, 0x0c499b67, CPS2_QSND | BRF_SND },
- { "dad.12m", 0x200000, 0x2f0b5a4e, CPS2_QSND | BRF_SND },
-
- { "ddtodj.key", 0x000014, 0x5414dfca, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Ddtodj)
-STD_ROM_FN(Ddtodj)
-
-static struct BurnRomInfo Ddtodjr1RomDesc[] = {
- { "dadj.03b", 0x080000, 0x87606b85, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dadj.04b", 0x080000, 0x24d49575, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dadj.05b", 0x080000, 0x56ce51f7, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dad.06", 0x080000, 0x13aa3e56, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dad.07", 0x080000, 0x431cb6dd, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "dad.13m", 0x200000, 0xda3cb7d6, CPS2_GFX | BRF_GRA },
- { "dad.15m", 0x200000, 0x92b63172, CPS2_GFX | BRF_GRA },
- { "dad.17m", 0x200000, 0xb98757f5, CPS2_GFX | BRF_GRA },
- { "dad.19m", 0x200000, 0x8121ce46, CPS2_GFX | BRF_GRA },
- { "dad.14m", 0x100000, 0x837e6f3f, CPS2_GFX | BRF_GRA },
- { "dad.16m", 0x100000, 0xf0916bdb, CPS2_GFX | BRF_GRA },
- { "dad.18m", 0x100000, 0xcef393ef, CPS2_GFX | BRF_GRA },
- { "dad.20m", 0x100000, 0x8953fe9e, CPS2_GFX | BRF_GRA },
-
- { "dad.01", 0x020000, 0x3f5e2424, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "dad.11m", 0x200000, 0x0c499b67, CPS2_QSND | BRF_SND },
- { "dad.12m", 0x200000, 0x2f0b5a4e, CPS2_QSND | BRF_SND },
-
- { "ddtodj.key", 0x000014, 0x5414dfca, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Ddtodjr1)
-STD_ROM_FN(Ddtodjr1)
-
-static struct BurnRomInfo Ddtodjr2RomDesc[] = {
- { "dadj.03a", 0x080000, 0x711638dc, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dadj.04a", 0x080000, 0x4869639c, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dadj.05a", 0x080000, 0x484c0efa, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dad.06", 0x080000, 0x13aa3e56, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dad.07", 0x080000, 0x431cb6dd, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "dad.13m", 0x200000, 0xda3cb7d6, CPS2_GFX | BRF_GRA },
- { "dad.15m", 0x200000, 0x92b63172, CPS2_GFX | BRF_GRA },
- { "dad.17m", 0x200000, 0xb98757f5, CPS2_GFX | BRF_GRA },
- { "dad.19m", 0x200000, 0x8121ce46, CPS2_GFX | BRF_GRA },
- { "dad.14m", 0x100000, 0x837e6f3f, CPS2_GFX | BRF_GRA },
- { "dad.16m", 0x100000, 0xf0916bdb, CPS2_GFX | BRF_GRA },
- { "dad.18m", 0x100000, 0xcef393ef, CPS2_GFX | BRF_GRA },
- { "dad.20m", 0x100000, 0x8953fe9e, CPS2_GFX | BRF_GRA },
-
- { "dad.01", 0x020000, 0x3f5e2424, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "dad.11m", 0x200000, 0x0c499b67, CPS2_QSND | BRF_SND },
- { "dad.12m", 0x200000, 0x2f0b5a4e, CPS2_QSND | BRF_SND },
-
- { "ddtodj.key", 0x000014, 0x5414dfca, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Ddtodjr2)
-STD_ROM_FN(Ddtodjr2)
-
-static struct BurnRomInfo DdtoduRomDesc[] = {
- { "dadu.03b", 0x080000, 0xa519905f, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dadu.04b", 0x080000, 0x52562d38, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dadu.05b", 0x080000, 0xee1cfbfe, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dad.06", 0x080000, 0x13aa3e56, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dad.07", 0x080000, 0x431cb6dd, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "dad.13m", 0x200000, 0xda3cb7d6, CPS2_GFX | BRF_GRA },
- { "dad.15m", 0x200000, 0x92b63172, CPS2_GFX | BRF_GRA },
- { "dad.17m", 0x200000, 0xb98757f5, CPS2_GFX | BRF_GRA },
- { "dad.19m", 0x200000, 0x8121ce46, CPS2_GFX | BRF_GRA },
- { "dad.14m", 0x100000, 0x837e6f3f, CPS2_GFX | BRF_GRA },
- { "dad.16m", 0x100000, 0xf0916bdb, CPS2_GFX | BRF_GRA },
- { "dad.18m", 0x100000, 0xcef393ef, CPS2_GFX | BRF_GRA },
- { "dad.20m", 0x100000, 0x8953fe9e, CPS2_GFX | BRF_GRA },
-
- { "dad.01", 0x020000, 0x3f5e2424, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "dad.11m", 0x200000, 0x0c499b67, CPS2_QSND | BRF_SND },
- { "dad.12m", 0x200000, 0x2f0b5a4e, CPS2_QSND | BRF_SND },
-
- { "ddtodu.key", 0x000014, 0x7c03ec9e, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Ddtodu)
-STD_ROM_FN(Ddtodu)
-
-static struct BurnRomInfo Ddtodur1RomDesc[] = {
- { "dadu.03a", 0x080000, 0x4413f177, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dadu.04a", 0x080000, 0x168de230, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dadu.05a", 0x080000, 0x03d39e91, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dad.06", 0x080000, 0x13aa3e56, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dad.07", 0x080000, 0x431cb6dd, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "dad.13m", 0x200000, 0xda3cb7d6, CPS2_GFX | BRF_GRA },
- { "dad.15m", 0x200000, 0x92b63172, CPS2_GFX | BRF_GRA },
- { "dad.17m", 0x200000, 0xb98757f5, CPS2_GFX | BRF_GRA },
- { "dad.19m", 0x200000, 0x8121ce46, CPS2_GFX | BRF_GRA },
- { "dad.14m", 0x100000, 0x837e6f3f, CPS2_GFX | BRF_GRA },
- { "dad.16m", 0x100000, 0xf0916bdb, CPS2_GFX | BRF_GRA },
- { "dad.18m", 0x100000, 0xcef393ef, CPS2_GFX | BRF_GRA },
- { "dad.20m", 0x100000, 0x8953fe9e, CPS2_GFX | BRF_GRA },
-
- { "dad.01", 0x020000, 0x3f5e2424, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "dad.11m", 0x200000, 0x0c499b67, CPS2_QSND | BRF_SND },
- { "dad.12m", 0x200000, 0x2f0b5a4e, CPS2_QSND | BRF_SND },
-
- { "ddtodu.key", 0x000014, 0x7c03ec9e, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Ddtodur1)
-STD_ROM_FN(Ddtodur1)
-
-static struct BurnRomInfo DimahooRomDesc[] = {
- { "gmde.03", 0x080000, 0x968fcecd, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "gmd.04", 0x080000, 0x37485567, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "gmd.05", 0x080000, 0xda269ffb, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "gmd.06", 0x080000, 0x55b483c9, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "gmd.13m", 0x400000, 0x80dd19f0, CPS2_GFX | BRF_GRA },
- { "gmd.15m", 0x400000, 0xdfd93a78, CPS2_GFX | BRF_GRA },
- { "gmd.17m", 0x400000, 0x16356520, CPS2_GFX | BRF_GRA },
- { "gmd.19m", 0x400000, 0xdfc33031, CPS2_GFX | BRF_GRA },
-
- { "gmd.01", 0x020000, 0x3f9bc985, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "gmd.02", 0x020000, 0x3fd39dde, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "gmd.11m", 0x400000, 0x06a65542, CPS2_QSND | BRF_SND },
- { "gmd.12m", 0x400000, 0x50bc7a31, CPS2_QSND | BRF_SND },
-
- { "dimahoo.key", 0x000014, 0x7d6d2db9, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Dimahoo)
-STD_ROM_FN(Dimahoo)
-
-static struct BurnRomInfo GmdjRomDesc[] = {
- { "gmdj.03", 0x080000, 0xcd6979e3, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "gmd.04", 0x080000, 0x37485567, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "gmd.05", 0x080000, 0xda269ffb, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "gmd.06", 0x080000, 0x55b483c9, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "gmd.13m", 0x400000, 0x80dd19f0, CPS2_GFX | BRF_GRA },
- { "gmd.15m", 0x400000, 0xdfd93a78, CPS2_GFX | BRF_GRA },
- { "gmd.17m", 0x400000, 0x16356520, CPS2_GFX | BRF_GRA },
- { "gmd.19m", 0x400000, 0xdfc33031, CPS2_GFX | BRF_GRA },
-
- { "gmd.01", 0x020000, 0x3f9bc985, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "gmd.02", 0x020000, 0x3fd39dde, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "gmd.11m", 0x400000, 0x06a65542, CPS2_QSND | BRF_SND },
- { "gmd.12m", 0x400000, 0x50bc7a31, CPS2_QSND | BRF_SND },
-
- { "gmahou.key", 0x000014, 0x76a5e659, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Gmdj)
-STD_ROM_FN(Gmdj)
-
-static struct BurnRomInfo DimahoouRomDesc[] = {
- { "gmdu.03", 0x080000, 0x43bcb15f, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "gmd.04", 0x080000, 0x37485567, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "gmd.05", 0x080000, 0xda269ffb, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "gmd.06", 0x080000, 0x55b483c9, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "gmd.13m", 0x400000, 0x80dd19f0, CPS2_GFX | BRF_GRA },
- { "gmd.15m", 0x400000, 0xdfd93a78, CPS2_GFX | BRF_GRA },
- { "gmd.17m", 0x400000, 0x16356520, CPS2_GFX | BRF_GRA },
- { "gmd.19m", 0x400000, 0xdfc33031, CPS2_GFX | BRF_GRA },
-
- { "gmd.01", 0x020000, 0x3f9bc985, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "gmd.02", 0x020000, 0x3fd39dde, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "gmd.11m", 0x400000, 0x06a65542, CPS2_QSND | BRF_SND },
- { "gmd.12m", 0x400000, 0x50bc7a31, CPS2_QSND | BRF_SND },
-
- { "dimahoou.key", 0x000014, 0x8254d7ab, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Dimahoou)
-STD_ROM_FN(Dimahoou)
-
-static struct BurnRomInfo DstlkRomDesc[] = {
- { "vame.03a", 0x080000, 0x004c9cff, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vame.04a", 0x080000, 0xae413ff2, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vame.05a", 0x080000, 0x60678756, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vame.06a", 0x080000, 0x912870b3, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vame.07a", 0x080000, 0xdabae3e8, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vame.08a", 0x080000, 0x2c6e3077, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vame.09a", 0x080000, 0xf16db74b, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vame.10a", 0x080000, 0x701e2147, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "vam.13m", 0x400000, 0xc51baf99, CPS2_GFX | BRF_GRA },
- { "vam.15m", 0x400000, 0x3ce83c77, CPS2_GFX | BRF_GRA },
- { "vam.17m", 0x400000, 0x4f2408e0, CPS2_GFX | BRF_GRA },
- { "vam.19m", 0x400000, 0x9ff60250, CPS2_GFX | BRF_GRA },
- { "vam.14m", 0x100000, 0xbd87243c, CPS2_GFX | BRF_GRA },
- { "vam.16m", 0x100000, 0xafec855f, CPS2_GFX | BRF_GRA },
- { "vam.18m", 0x100000, 0x3a033625, CPS2_GFX | BRF_GRA },
- { "vam.20m", 0x100000, 0x2bff6a89, CPS2_GFX | BRF_GRA },
-
- { "vam.01", 0x020000, 0x64b685d5, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "vam.02", 0x020000, 0xcf7c97c7, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "vam.11m", 0x200000, 0x4a39deb2, CPS2_QSND | BRF_SND },
- { "vam.12m", 0x200000, 0x1a3e5c03, CPS2_QSND | BRF_SND },
-
- { "dstlk.key", 0x000014, 0xcfa46dec, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Dstlk)
-STD_ROM_FN(Dstlk)
-
-static struct BurnRomInfo DstlkaRomDesc[] = {
- { "vama.03a", 0x080000, 0x294e0bec, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vama.04a", 0x080000, 0xbc18e128, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vama.05a", 0x080000, 0xe709fa59, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vama.06a", 0x080000, 0x55e4d387, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vama.07a", 0x080000, 0x24e8f981, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vama.08a", 0x080000, 0x743f3a8e, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vama.09a", 0x080000, 0x67fa5573, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vama.10a", 0x080000, 0x5e03d747, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "vam.13m", 0x400000, 0xc51baf99, CPS2_GFX | BRF_GRA },
- { "vam.15m", 0x400000, 0x3ce83c77, CPS2_GFX | BRF_GRA },
- { "vam.17m", 0x400000, 0x4f2408e0, CPS2_GFX | BRF_GRA },
- { "vam.19m", 0x400000, 0x9ff60250, CPS2_GFX | BRF_GRA },
- { "vam.14m", 0x100000, 0xbd87243c, CPS2_GFX | BRF_GRA },
- { "vam.16m", 0x100000, 0xafec855f, CPS2_GFX | BRF_GRA },
- { "vam.18m", 0x100000, 0x3a033625, CPS2_GFX | BRF_GRA },
- { "vam.20m", 0x100000, 0x2bff6a89, CPS2_GFX | BRF_GRA },
-
- { "vam.01", 0x020000, 0x64b685d5, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "vam.02", 0x020000, 0xcf7c97c7, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "vam.11m", 0x200000, 0x4a39deb2, CPS2_QSND | BRF_SND },
- { "vam.12m", 0x200000, 0x1a3e5c03, CPS2_QSND | BRF_SND },
-
- { "dstlka.key", 0x000014, 0xd31d61bc, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Dstlka)
-STD_ROM_FN(Dstlka)
-
-static struct BurnRomInfo DstlkhRomDesc[] = {
- { "vamh.03c", 0x080000, 0x4d7b9e8f, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vamh.04c", 0x080000, 0x2217e9a0, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vamh.05c", 0x080000, 0x3a05b13c, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vamh.06c", 0x080000, 0x11d70a1c, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vamh.07c", 0x080000, 0xdb5a8767, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vamh.08c", 0x080000, 0x2a4fd79b, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vamh.09c", 0x080000, 0x15187632, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vamh.10c", 0x080000, 0x192d2d81, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "vam.13m", 0x400000, 0xc51baf99, CPS2_GFX | BRF_GRA },
- { "vam.15m", 0x400000, 0x3ce83c77, CPS2_GFX | BRF_GRA },
- { "vam.17m", 0x400000, 0x4f2408e0, CPS2_GFX | BRF_GRA },
- { "vam.19m", 0x400000, 0x9ff60250, CPS2_GFX | BRF_GRA },
- { "vam.14m", 0x100000, 0xbd87243c, CPS2_GFX | BRF_GRA },
- { "vam.16m", 0x100000, 0xafec855f, CPS2_GFX | BRF_GRA },
- { "vam.18m", 0x100000, 0x3a033625, CPS2_GFX | BRF_GRA },
- { "vam.20m", 0x100000, 0x2bff6a89, CPS2_GFX | BRF_GRA },
-
- { "vam.01", 0x020000, 0x64b685d5, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "vam.02", 0x020000, 0xcf7c97c7, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "vam.11m", 0x200000, 0x4a39deb2, CPS2_QSND | BRF_SND },
- { "vam.12m", 0x200000, 0x1a3e5c03, CPS2_QSND | BRF_SND },
-
- { "dstlkh.key", 0x000014, 0xd748cb77, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Dstlkh)
-STD_ROM_FN(Dstlkh)
-
-static struct BurnRomInfo DstlkuRomDesc[] = {
- { "vamu.03b", 0x080000, 0x68a6343f, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vamu.04b", 0x080000, 0x58161453, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vamu.05b", 0x080000, 0xdfc038b8, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vamu.06b", 0x080000, 0xc3842c89, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vamu.07b", 0x080000, 0x25b60b6e, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vamu.08b", 0x080000, 0x2113c596, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vamu.09b", 0x080000, 0x2d1e9ae5, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vamu.10b", 0x080000, 0x81145622, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "vam.13m", 0x400000, 0xc51baf99, CPS2_GFX | BRF_GRA },
- { "vam.15m", 0x400000, 0x3ce83c77, CPS2_GFX | BRF_GRA },
- { "vam.17m", 0x400000, 0x4f2408e0, CPS2_GFX | BRF_GRA },
- { "vam.19m", 0x400000, 0x9ff60250, CPS2_GFX | BRF_GRA },
- { "vam.14m", 0x100000, 0xbd87243c, CPS2_GFX | BRF_GRA },
- { "vam.16m", 0x100000, 0xafec855f, CPS2_GFX | BRF_GRA },
- { "vam.18m", 0x100000, 0x3a033625, CPS2_GFX | BRF_GRA },
- { "vam.20m", 0x100000, 0x2bff6a89, CPS2_GFX | BRF_GRA },
-
- { "vam.01", 0x020000, 0x64b685d5, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "vam.02", 0x020000, 0xcf7c97c7, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "vam.11m", 0x200000, 0x4a39deb2, CPS2_QSND | BRF_SND },
- { "vam.12m", 0x200000, 0x1a3e5c03, CPS2_QSND | BRF_SND },
-
- { "dstlku.key", 0x000014, 0xc76091ba, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Dstlku)
-STD_ROM_FN(Dstlku)
-
-static struct BurnRomInfo Dstlkur1RomDesc[] = {
- { "vamu.03a", 0x080000, 0x628899f9, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vamu.04a", 0x080000, 0x696d9b25, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vamu.05a", 0x080000, 0x673ed50a, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vamu.06a", 0x080000, 0xf2377be7, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vamu.07a", 0x080000, 0xd8f498c4, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vamu.08a", 0x080000, 0xe6a8a1a0, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vamu.09a", 0x080000, 0x8dd55b24, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vamu.10a", 0x080000, 0xc1a3d9be, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "vam.13m", 0x400000, 0xc51baf99, CPS2_GFX | BRF_GRA },
- { "vam.15m", 0x400000, 0x3ce83c77, CPS2_GFX | BRF_GRA },
- { "vam.17m", 0x400000, 0x4f2408e0, CPS2_GFX | BRF_GRA },
- { "vam.19m", 0x400000, 0x9ff60250, CPS2_GFX | BRF_GRA },
- { "vam.14m", 0x100000, 0xbd87243c, CPS2_GFX | BRF_GRA },
- { "vam.16m", 0x100000, 0xafec855f, CPS2_GFX | BRF_GRA },
- { "vam.18m", 0x100000, 0x3a033625, CPS2_GFX | BRF_GRA },
- { "vam.20m", 0x100000, 0x2bff6a89, CPS2_GFX | BRF_GRA },
-
- { "vam.01", 0x020000, 0x64b685d5, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "vam.02", 0x020000, 0xcf7c97c7, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "vam.11m", 0x200000, 0x4a39deb2, CPS2_QSND | BRF_SND },
- { "vam.12m", 0x200000, 0x1a3e5c03, CPS2_QSND | BRF_SND },
-
- { "dstlku.key", 0x000014, 0xc76091ba, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Dstlkur1)
-STD_ROM_FN(Dstlkur1)
-
-static struct BurnRomInfo VampjRomDesc[] = {
- { "vamj.03a", 0x080000, 0xf55d3722, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vamj.04b", 0x080000, 0x4d9c43c4, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vamj.05a", 0x080000, 0x6c497e92, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vamj.06a", 0x080000, 0xf1bbecb6, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vamj.07a", 0x080000, 0x1067ad84, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vamj.08a", 0x080000, 0x4b89f41f, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vamj.09a", 0x080000, 0xfc0a4aac, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vamj.10a", 0x080000, 0x9270c26b, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "vam.13m", 0x400000, 0xc51baf99, CPS2_GFX | BRF_GRA },
- { "vam.15m", 0x400000, 0x3ce83c77, CPS2_GFX | BRF_GRA },
- { "vam.17m", 0x400000, 0x4f2408e0, CPS2_GFX | BRF_GRA },
- { "vam.19m", 0x400000, 0x9ff60250, CPS2_GFX | BRF_GRA },
- { "vam.14m", 0x100000, 0xbd87243c, CPS2_GFX | BRF_GRA },
- { "vam.16m", 0x100000, 0xafec855f, CPS2_GFX | BRF_GRA },
- { "vam.18m", 0x100000, 0x3a033625, CPS2_GFX | BRF_GRA },
- { "vam.20m", 0x100000, 0x2bff6a89, CPS2_GFX | BRF_GRA },
-
- { "vam.01", 0x020000, 0x64b685d5, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "vam.02", 0x020000, 0xcf7c97c7, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "vam.11m", 0x200000, 0x4a39deb2, CPS2_QSND | BRF_SND },
- { "vam.12m", 0x200000, 0x1a3e5c03, CPS2_QSND | BRF_SND },
-
- { "vampj.key", 0x000014, 0x8418cc6f, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Vampj)
-STD_ROM_FN(Vampj)
-
-static struct BurnRomInfo VampjaRomDesc[] = {
- { "vamj.03a", 0x080000, 0xf55d3722, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vamj.04a", 0x080000, 0xfdcbdae3, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vamj.05a", 0x080000, 0x6c497e92, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vamj.06a", 0x080000, 0xf1bbecb6, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vamj.07a", 0x080000, 0x1067ad84, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vamj.08a", 0x080000, 0x4b89f41f, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vamj.09a", 0x080000, 0xfc0a4aac, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vamj.10a", 0x080000, 0x9270c26b, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "vam.13m", 0x400000, 0xc51baf99, CPS2_GFX | BRF_GRA },
- { "vam.15m", 0x400000, 0x3ce83c77, CPS2_GFX | BRF_GRA },
- { "vam.17m", 0x400000, 0x4f2408e0, CPS2_GFX | BRF_GRA },
- { "vam.19m", 0x400000, 0x9ff60250, CPS2_GFX | BRF_GRA },
- { "vam.14m", 0x100000, 0xbd87243c, CPS2_GFX | BRF_GRA },
- { "vam.16m", 0x100000, 0xafec855f, CPS2_GFX | BRF_GRA },
- { "vam.18m", 0x100000, 0x3a033625, CPS2_GFX | BRF_GRA },
- { "vam.20m", 0x100000, 0x2bff6a89, CPS2_GFX | BRF_GRA },
-
- { "vam.01", 0x020000, 0x64b685d5, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "vam.02", 0x020000, 0xcf7c97c7, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "vam.11m", 0x200000, 0x4a39deb2, CPS2_QSND | BRF_SND },
- { "vam.12m", 0x200000, 0x1a3e5c03, CPS2_QSND | BRF_SND },
-
- { "vampj.key", 0x000014, 0x8418cc6f, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Vampja)
-STD_ROM_FN(Vampja)
-
-static struct BurnRomInfo Vampjr1RomDesc[] = {
- { "vamj.03", 0x080000, 0x8895bf77, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vamj.04", 0x080000, 0x5027db3d, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vamj.05", 0x080000, 0x97c66fdb, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vamj.06", 0x080000, 0x9b4c3426, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vamj.07", 0x080000, 0x303bc4fd, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vamj.08", 0x080000, 0x3dea3646, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vamj.09", 0x080000, 0xc119a827, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vamj.10", 0x080000, 0x46593b79, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "vam.13m", 0x400000, 0xc51baf99, CPS2_GFX | BRF_GRA },
- { "vam.15m", 0x400000, 0x3ce83c77, CPS2_GFX | BRF_GRA },
- { "vam.17m", 0x400000, 0x4f2408e0, CPS2_GFX | BRF_GRA },
- { "vam.19m", 0x400000, 0x9ff60250, CPS2_GFX | BRF_GRA },
- { "vam.14m", 0x100000, 0xbd87243c, CPS2_GFX | BRF_GRA },
- { "vam.16m", 0x100000, 0xafec855f, CPS2_GFX | BRF_GRA },
- { "vam.18m", 0x100000, 0x3a033625, CPS2_GFX | BRF_GRA },
- { "vam.20m", 0x100000, 0x2bff6a89, CPS2_GFX | BRF_GRA },
-
- { "vam.01", 0x020000, 0x64b685d5, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "vam.02", 0x020000, 0xcf7c97c7, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "vam.11m", 0x200000, 0x4a39deb2, CPS2_QSND | BRF_SND },
- { "vam.12m", 0x200000, 0x1a3e5c03, CPS2_QSND | BRF_SND },
-
- { "vampj.key", 0x000014, 0x8418cc6f, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Vampjr1)
-STD_ROM_FN(Vampjr1)
-
-static struct BurnRomInfo EcofghtrRomDesc[] = {
- { "uece.03", 0x080000, 0xec2c1137, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "uece.04", 0x080000, 0xb35f99db, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "uece.05", 0x080000, 0xd9d42d31, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "uece.06", 0x080000, 0x9d9771cf, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "uec.13m", 0x200000, 0xdcaf1436, CPS2_GFX | BRF_GRA },
- { "uec.15m", 0x200000, 0x2807df41, CPS2_GFX | BRF_GRA },
- { "uec.17m", 0x200000, 0x8a708d02, CPS2_GFX | BRF_GRA },
- { "uec.19m", 0x200000, 0xde7be0ef, CPS2_GFX | BRF_GRA },
- { "uec.14m", 0x100000, 0x1a003558, CPS2_GFX | BRF_GRA },
- { "uec.16m", 0x100000, 0x4ff8a6f9, CPS2_GFX | BRF_GRA },
- { "uec.18m", 0x100000, 0xb167ae12, CPS2_GFX | BRF_GRA },
- { "uec.20m", 0x100000, 0x1064bdc2, CPS2_GFX | BRF_GRA },
-
- { "uec.01", 0x020000, 0xc235bd15, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "uec.11m", 0x200000, 0x81b25d39, CPS2_QSND | BRF_SND },
- { "uec.12m", 0x200000, 0x27729e52, CPS2_QSND | BRF_SND },
-
- { "ecofghtr.key", 0x000014, 0x2250fd9e, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Ecofghtr)
-STD_ROM_FN(Ecofghtr)
-
-static struct BurnRomInfo EcofghtraRomDesc[] = {
- { "ueca.03", 0x080000, 0xbd4589b1, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "ueca.04", 0x080000, 0x1d134b7d, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "ueca.05", 0x080000, 0x9c581fc7, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "ueca.06", 0x080000, 0xc92a7c50, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "uec.13m", 0x200000, 0xdcaf1436, CPS2_GFX | BRF_GRA },
- { "uec.15m", 0x200000, 0x2807df41, CPS2_GFX | BRF_GRA },
- { "uec.17m", 0x200000, 0x8a708d02, CPS2_GFX | BRF_GRA },
- { "uec.19m", 0x200000, 0xde7be0ef, CPS2_GFX | BRF_GRA },
- { "uec.14m", 0x100000, 0x1a003558, CPS2_GFX | BRF_GRA },
- { "uec.16m", 0x100000, 0x4ff8a6f9, CPS2_GFX | BRF_GRA },
- { "uec.18m", 0x100000, 0xb167ae12, CPS2_GFX | BRF_GRA },
- { "uec.20m", 0x100000, 0x1064bdc2, CPS2_GFX | BRF_GRA },
-
- { "uec.01", 0x020000, 0xc235bd15, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "uec.11m", 0x200000, 0x81b25d39, CPS2_QSND | BRF_SND },
- { "uec.12m", 0x200000, 0x27729e52, CPS2_QSND | BRF_SND },
-
- { "ecofghtra.key", 0x000014, 0x4f99a9f5, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Ecofghtra)
-STD_ROM_FN(Ecofghtra)
-
-static struct BurnRomInfo EcofghtrhRomDesc[] = {
- { "uech.03", 0x080000, 0x14c9365e, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "uech.04", 0x080000, 0x579495dc, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "uech.05", 0x080000, 0x96807a8e, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "uech.06", 0x080000, 0x682b9dbc, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "uec.13m", 0x200000, 0xdcaf1436, CPS2_GFX | BRF_GRA },
- { "uec.15m", 0x200000, 0x2807df41, CPS2_GFX | BRF_GRA },
- { "uec.17m", 0x200000, 0x8a708d02, CPS2_GFX | BRF_GRA },
- { "uec.19m", 0x200000, 0xde7be0ef, CPS2_GFX | BRF_GRA },
- { "uec.14m", 0x100000, 0x1a003558, CPS2_GFX | BRF_GRA },
- { "uec.16m", 0x100000, 0x4ff8a6f9, CPS2_GFX | BRF_GRA },
- { "uec.18m", 0x100000, 0xb167ae12, CPS2_GFX | BRF_GRA },
- { "uec.20m", 0x100000, 0x1064bdc2, CPS2_GFX | BRF_GRA },
-
- { "uec.01", 0x020000, 0xc235bd15, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "uec.11m", 0x200000, 0x81b25d39, CPS2_QSND | BRF_SND },
- { "uec.12m", 0x200000, 0x27729e52, CPS2_QSND | BRF_SND },
-
- { "ecofghtrh.key", 0x000014, 0x9a9027c8, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Ecofghtrh)
-STD_ROM_FN(Ecofghtrh)
-
-static struct BurnRomInfo EcofghtruRomDesc[] = {
- { "uecu.03a", 0x080000, 0x22d88a4d, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "uecu.04a", 0x080000, 0x6436cfcd, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "uecu.05a", 0x080000, 0x336f121b, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "uecu.06a", 0x080000, 0x6f99d984, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "uec.13m", 0x200000, 0xdcaf1436, CPS2_GFX | BRF_GRA },
- { "uec.15m", 0x200000, 0x2807df41, CPS2_GFX | BRF_GRA },
- { "uec.17m", 0x200000, 0x8a708d02, CPS2_GFX | BRF_GRA },
- { "uec.19m", 0x200000, 0xde7be0ef, CPS2_GFX | BRF_GRA },
- { "uec.14m", 0x100000, 0x1a003558, CPS2_GFX | BRF_GRA },
- { "uec.16m", 0x100000, 0x4ff8a6f9, CPS2_GFX | BRF_GRA },
- { "uec.18m", 0x100000, 0xb167ae12, CPS2_GFX | BRF_GRA },
- { "uec.20m", 0x100000, 0x1064bdc2, CPS2_GFX | BRF_GRA },
-
- { "uec.01", 0x020000, 0xc235bd15, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "uec.11m", 0x200000, 0x81b25d39, CPS2_QSND | BRF_SND },
- { "uec.12m", 0x200000, 0x27729e52, CPS2_QSND | BRF_SND },
-
- { "ecofghtru.key", 0x000014, 0x611aa137, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Ecofghtru)
-STD_ROM_FN(Ecofghtru)
-
-static struct BurnRomInfo Ecofghtru1RomDesc[] = {
- { "uecu.03", 0x080000, 0x6792480c, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "uecu.04", 0x080000, 0x95ce69d5, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "uecu.05", 0x080000, 0x3a1e78ad, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "uecu.06", 0x080000, 0xa3e2f3cc, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "uec.13m", 0x200000, 0xdcaf1436, CPS2_GFX | BRF_GRA },
- { "uec.15m", 0x200000, 0x2807df41, CPS2_GFX | BRF_GRA },
- { "uec.17m", 0x200000, 0x8a708d02, CPS2_GFX | BRF_GRA },
- { "uec.19m", 0x200000, 0xde7be0ef, CPS2_GFX | BRF_GRA },
- { "uec.14m", 0x100000, 0x1a003558, CPS2_GFX | BRF_GRA },
- { "uec.16m", 0x100000, 0x4ff8a6f9, CPS2_GFX | BRF_GRA },
- { "uec.18m", 0x100000, 0xb167ae12, CPS2_GFX | BRF_GRA },
- { "uec.20m", 0x100000, 0x1064bdc2, CPS2_GFX | BRF_GRA },
-
- { "uec.01", 0x020000, 0xc235bd15, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "uec.11m", 0x200000, 0x81b25d39, CPS2_QSND | BRF_SND },
- { "uec.12m", 0x200000, 0x27729e52, CPS2_QSND | BRF_SND },
-
- { "ecofghtru.key", 0x000014, 0x611aa137, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Ecofghtru1)
-STD_ROM_FN(Ecofghtru1)
-
-static struct BurnRomInfo UecologyRomDesc[] = {
- { "uecj.03", 0x080000, 0x94c40a4c, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "uecj.04", 0x080000, 0x8d6e3a09, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "uecj.05", 0x080000, 0x8604ecd7, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "uecj.06", 0x080000, 0xb7e1d31f, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "uec.13m", 0x200000, 0xdcaf1436, CPS2_GFX | BRF_GRA },
- { "uec.15m", 0x200000, 0x2807df41, CPS2_GFX | BRF_GRA },
- { "uec.17m", 0x200000, 0x8a708d02, CPS2_GFX | BRF_GRA },
- { "uec.19m", 0x200000, 0xde7be0ef, CPS2_GFX | BRF_GRA },
- { "uec.14m", 0x100000, 0x1a003558, CPS2_GFX | BRF_GRA },
- { "uec.16m", 0x100000, 0x4ff8a6f9, CPS2_GFX | BRF_GRA },
- { "uec.18m", 0x100000, 0xb167ae12, CPS2_GFX | BRF_GRA },
- { "uec.20m", 0x100000, 0x1064bdc2, CPS2_GFX | BRF_GRA },
-
- { "uec.01", 0x020000, 0xc235bd15, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "uec.11m", 0x200000, 0x81b25d39, CPS2_QSND | BRF_SND },
- { "uec.12m", 0x200000, 0x27729e52, CPS2_QSND | BRF_SND },
-
- { "uecology.key", 0x000014, 0x0bab792d, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Uecology)
-STD_ROM_FN(Uecology)
-
-static struct BurnRomInfo GigawingRomDesc[] = {
- { "ggwu.03", 0x080000, 0xac725eb2, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "ggwu.04", 0x080000, 0x392f4118, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "ggw.05", 0x080000, 0x3239d642, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "ggw.13m", 0x400000, 0x105530a4, CPS2_GFX | BRF_GRA },
- { "ggw.15m", 0x400000, 0x9e774ab9, CPS2_GFX | BRF_GRA },
- { "ggw.17m", 0x400000, 0x466e0ba4, CPS2_GFX | BRF_GRA },
- { "ggw.19m", 0x400000, 0x840c8dea, CPS2_GFX | BRF_GRA },
-
- { "ggw.01", 0x020000, 0x4c6351d5, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "ggw.11m", 0x400000, 0xe172acf5, CPS2_QSND | BRF_SND },
- { "ggw.12m", 0x400000, 0x4bee4e8f, CPS2_QSND | BRF_SND },
-
- { "gigawing.key", 0x000014, 0x5076c26b, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Gigawing)
-STD_ROM_FN(Gigawing)
-
-static struct BurnRomInfo GigawingaRomDesc[] = {
- { "ggwa.03a", 0x080000, 0x116f8837, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "ggwa.04a", 0x080000, 0xe6e3f0c4, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "ggwa.05a", 0x080000, 0x465e8ac9, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "ggw.13m", 0x400000, 0x105530a4, CPS2_GFX | BRF_GRA },
- { "ggw.15m", 0x400000, 0x9e774ab9, CPS2_GFX | BRF_GRA },
- { "ggw.17m", 0x400000, 0x466e0ba4, CPS2_GFX | BRF_GRA },
- { "ggw.19m", 0x400000, 0x840c8dea, CPS2_GFX | BRF_GRA },
-
- { "ggw.01", 0x020000, 0x4c6351d5, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "ggw.11m", 0x400000, 0xe172acf5, CPS2_QSND | BRF_SND },
- { "ggw.12m", 0x400000, 0x4bee4e8f, CPS2_QSND | BRF_SND },
-
- { "gigawinga.key", 0x000014, 0x7401627e, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Gigawinga)
-STD_ROM_FN(Gigawinga)
-
-static struct BurnRomInfo GigawingbRomDesc[] = {
- { "ggwb.03", 0x080000, 0xa1f8a448, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "ggwb.04", 0x080000, 0x6a423e76, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "ggw.05", 0x080000, 0x3239d642, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "ggw.13m", 0x400000, 0x105530a4, CPS2_GFX | BRF_GRA },
- { "ggw.15m", 0x400000, 0x9e774ab9, CPS2_GFX | BRF_GRA },
- { "ggw.17m", 0x400000, 0x466e0ba4, CPS2_GFX | BRF_GRA },
- { "ggw.19m", 0x400000, 0x840c8dea, CPS2_GFX | BRF_GRA },
-
- { "ggw.01", 0x020000, 0x4c6351d5, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "ggw.11m", 0x400000, 0xe172acf5, CPS2_QSND | BRF_SND },
- { "ggw.12m", 0x400000, 0x4bee4e8f, CPS2_QSND | BRF_SND },
-
- { "gigawingb.key", 0x000014, 0x5e7805fa, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Gigawingb)
-STD_ROM_FN(Gigawingb)
-
-static struct BurnRomInfo GigawinghRomDesc[] = {
- { "ggwh.03a", 0x080000, 0xb9ee36eb, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "ggwh.04a", 0x080000, 0x72e548fe, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "ggw.05", 0x080000, 0x3239d642, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "ggw.13m", 0x400000, 0x105530a4, CPS2_GFX | BRF_GRA },
- { "ggw.15m", 0x400000, 0x9e774ab9, CPS2_GFX | BRF_GRA },
- { "ggw.17m", 0x400000, 0x466e0ba4, CPS2_GFX | BRF_GRA },
- { "ggw.19m", 0x400000, 0x840c8dea, CPS2_GFX | BRF_GRA },
-
- { "ggw.01", 0x020000, 0x4c6351d5, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "ggw.11m", 0x400000, 0xe172acf5, CPS2_QSND | BRF_SND },
- { "ggw.12m", 0x400000, 0x4bee4e8f, CPS2_QSND | BRF_SND },
-
- { "gigawingh.key", 0x000014, 0x43198223, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Gigawingh)
-STD_ROM_FN(Gigawingh)
-
-static struct BurnRomInfo GigawingjRomDesc[] = {
- { "ggwj.03a", 0x080000, 0xfdd23b91, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "ggwj.04a", 0x080000, 0x8c6e093c, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "ggwj.05a", 0x080000, 0x43811454, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "ggw.13m", 0x400000, 0x105530a4, CPS2_GFX | BRF_GRA },
- { "ggw.15m", 0x400000, 0x9e774ab9, CPS2_GFX | BRF_GRA },
- { "ggw.17m", 0x400000, 0x466e0ba4, CPS2_GFX | BRF_GRA },
- { "ggw.19m", 0x400000, 0x840c8dea, CPS2_GFX | BRF_GRA },
-
- { "ggw.01", 0x020000, 0x4c6351d5, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "ggw.11m", 0x400000, 0xe172acf5, CPS2_QSND | BRF_SND },
- { "ggw.12m", 0x400000, 0x4bee4e8f, CPS2_QSND | BRF_SND },
-
- { "gigawingj.key", 0x000014, 0x8121a25e, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Gigawingj)
-STD_ROM_FN(Gigawingj)
-
-static struct BurnRomInfo Hsf2RomDesc[] = {
- { "hs2u.03", 0x080000, 0xb308151e, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "hs2u.04", 0x080000, 0x327aa49c, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "hs2.05", 0x080000, 0xdde34a35, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "hs2.06", 0x080000, 0xf4e56dda, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "hs2.07", 0x080000, 0xee4420fc, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "hs2.08", 0x080000, 0xc9441533, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "hs2.09", 0x080000, 0x3fc638a8, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "hs2.10", 0x080000, 0x20d0f9e4, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "hs2.13m", 0x800000, 0xa6ecab17, CPS2_GFX | BRF_GRA },
- { "hs2.15m", 0x800000, 0x10a0ae4d, CPS2_GFX | BRF_GRA },
- { "hs2.17m", 0x800000, 0xadfa7726, CPS2_GFX | BRF_GRA },
- { "hs2.19m", 0x800000, 0xbb3ae322, CPS2_GFX | BRF_GRA },
-
- { "hs2.01", 0x020000, 0xc1a13786, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "hs2.02", 0x020000, 0x2d8794aa, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "hs2.11m", 0x800000, 0x0e15c359, CPS2_QSND | BRF_SND },
-
- { "hsf2.key", 0x000014, 0xfc9b18c9, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Hsf2)
-STD_ROM_FN(Hsf2)
-
-static struct BurnRomInfo Hsf2aRomDesc[] = {
- { "hs2a.03", 0x080000, 0xd50a17e0, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "hs2a.04", 0x080000, 0xa27f42de, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "hs2.05", 0x080000, 0xdde34a35, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "hs2.06", 0x080000, 0xf4e56dda, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "hs2.07", 0x080000, 0xee4420fc, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "hs2.08", 0x080000, 0xc9441533, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "hs2.09", 0x080000, 0x3fc638a8, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "hs2.10", 0x080000, 0x20d0f9e4, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "hs2.13m", 0x800000, 0xa6ecab17, CPS2_GFX | BRF_GRA },
- { "hs2.15m", 0x800000, 0x10a0ae4d, CPS2_GFX | BRF_GRA },
- { "hs2.17m", 0x800000, 0xadfa7726, CPS2_GFX | BRF_GRA },
- { "hs2.19m", 0x800000, 0xbb3ae322, CPS2_GFX | BRF_GRA },
-
- { "hs2.01", 0x020000, 0xc1a13786, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "hs2.02", 0x020000, 0x2d8794aa, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "hs2.11m", 0x800000, 0x0e15c359, CPS2_QSND | BRF_SND },
-
- { "hsf2a.key", 0x000014, 0x2cd9eb99, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Hsf2a)
-STD_ROM_FN(Hsf2a)
-
-static struct BurnRomInfo Hsf2jRomDesc[] = {
- { "hs2j.03c", 0x080000, 0x6efe661f, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "hs2j.04b", 0x080000, 0x93f2500a, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "hs2j.05", 0x080000, 0xdde34a35, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "hs2j.06", 0x080000, 0xf4e56dda, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "hs2j.07", 0x080000, 0xee4420fc, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "hs2j.08", 0x080000, 0xc9441533, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "hs2j.09", 0x080000, 0x3fc638a8, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "hs2j.10", 0x080000, 0x20d0f9e4, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "hs2.13m" , 0x800000, 0xa6ecab17, CPS2_GFX | BRF_GRA },
- { "hs2.15m", 0x800000, 0x10a0ae4d, CPS2_GFX | BRF_GRA },
- { "hs2.17m", 0x800000, 0xadfa7726, CPS2_GFX | BRF_GRA },
- { "hs2.19m", 0x800000, 0xbb3ae322, CPS2_GFX | BRF_GRA },
-
- { "hs2.01", 0x020000, 0xc1a13786, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "hs2.02", 0x020000, 0x2d8794aa, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "hs2.11m", 0x800000, 0x0e15c359, CPS2_QSND | BRF_SND },
-
- { "hsf2j.key", 0x000014, 0x19455a93, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Hsf2j)
-STD_ROM_FN(Hsf2j)
-
-static struct BurnRomInfo Hsf2j1RomDesc[] = {
- { "hs2j.03", 0x080000, 0x00738f73, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "hs2j.04", 0x080000, 0x40072c4a, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "hs2.05", 0x080000, 0xdde34a35, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "hs2.06", 0x080000, 0xf4e56dda, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "hs2.07", 0x080000, 0xee4420fc, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "hs2.08", 0x080000, 0xc9441533, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "hs2.09", 0x080000, 0x3fc638a8, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "hs2.10", 0x080000, 0x20d0f9e4, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "hs2.13m" , 0x800000, 0xa6ecab17, CPS2_GFX | BRF_GRA },
- { "hs2.15m", 0x800000, 0x10a0ae4d, CPS2_GFX | BRF_GRA },
- { "hs2.17m", 0x800000, 0xadfa7726, CPS2_GFX | BRF_GRA },
- { "hs2.19m", 0x800000, 0xbb3ae322, CPS2_GFX | BRF_GRA },
-
- { "hs2.01", 0x020000, 0xc1a13786, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "hs2.02", 0x020000, 0x2d8794aa, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "hs2.11m", 0x800000, 0x0e15c359, CPS2_QSND | BRF_SND },
-
- { "hsf2j.key", 0x000014, 0x19455a93, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Hsf2j1)
-STD_ROM_FN(Hsf2j1)
-
-static struct BurnRomInfo JyangokuRomDesc[] = {
- { "majj.03", 0x080000, 0x4614a3b2, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "maj1_d.simm1", 0x200000, 0xba0fe27b, CPS2_GFX_SIMM | BRF_GRA },
- { "maj1_c.simm1", 0x200000, 0x2cd141bf, CPS2_GFX_SIMM | BRF_GRA },
- { "maj1_b.simm1", 0x200000, 0xe29e4c26, CPS2_GFX_SIMM | BRF_GRA },
- { "maj1_a.simm1", 0x200000, 0x7f68b88a, CPS2_GFX_SIMM | BRF_GRA },
- { "maj3_d.simm3", 0x200000, 0x3aaeb90b, CPS2_GFX_SIMM | BRF_GRA },
- { "maj3_c.simm3", 0x200000, 0x97894cea, CPS2_GFX_SIMM | BRF_GRA },
- { "maj3_b.simm3", 0x200000, 0xec737d9d, CPS2_GFX_SIMM | BRF_GRA },
- { "maj3_a.simm3", 0x200000, 0xc23b6f22, CPS2_GFX_SIMM | BRF_GRA },
-
- { "maj.01", 0x020000, 0x1fe8c213, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "maj5_a.simm5", 0x200000, 0x5ad9ee53, CPS2_QSND_SIMM_BYTESWAP | BRF_SND },
- { "maj5_b.simm5", 0x200000, 0xefb3dbfb, CPS2_QSND_SIMM_BYTESWAP | BRF_SND },
-
- { "jyangoku.key", 0x000014, 0x95b0a560, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Jyangoku)
-STD_ROM_FN(Jyangoku)
-
-static struct BurnRomInfo Megaman2RomDesc[] = {
- { "rm2u.03", 0x080000, 0x8ffc2cd1, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "rm2u.04", 0x080000, 0xbb30083a, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "rm2.05", 0x080000, 0x02ee9efc, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "rm2.14m", 0x200000, 0x9b1f00b4, CPS2_GFX | BRF_GRA },
- { "rm2.16m", 0x200000, 0xc2bb0c24, CPS2_GFX | BRF_GRA },
- { "rm2.18m", 0x200000, 0x12257251, CPS2_GFX | BRF_GRA },
- { "rm2.20m", 0x200000, 0xf9b6e786, CPS2_GFX | BRF_GRA },
-
- { "rm2.01a", 0x020000, 0xd18e7859, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "rm2.02", 0x020000, 0xc463ece0, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "rm2.11m", 0x200000, 0x2106174d, CPS2_QSND | BRF_SND },
- { "rm2.12m", 0x200000, 0x546c1636, CPS2_QSND | BRF_SND },
-
- { "megaman2.key", 0x000014, 0x6828ed6d, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Megaman2)
-STD_ROM_FN(Megaman2)
-
-static struct BurnRomInfo Megaman2aRomDesc[] = {
- { "rm2a.03", 0x080000, 0x2b330ca7, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "rm2a.04", 0x080000, 0x8b47942b, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "rm2.05", 0x080000, 0x02ee9efc, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "rm2.14m", 0x200000, 0x9b1f00b4, CPS2_GFX | BRF_GRA },
- { "rm2.16m", 0x200000, 0xc2bb0c24, CPS2_GFX | BRF_GRA },
- { "rm2.18m", 0x200000, 0x12257251, CPS2_GFX | BRF_GRA },
- { "rm2.20m", 0x200000, 0xf9b6e786, CPS2_GFX | BRF_GRA },
-
- { "rm2.01a", 0x020000, 0xd18e7859, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "rm2.02", 0x020000, 0xc463ece0, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "rm2.11m", 0x200000, 0x2106174d, CPS2_QSND | BRF_SND },
- { "rm2.12m", 0x200000, 0x546c1636, CPS2_QSND | BRF_SND },
-
- { "megaman2a.key", 0x000014, 0xd6e8dcd7, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Megaman2a)
-STD_ROM_FN(Megaman2a)
-
-static struct BurnRomInfo Megaman2hRomDesc[] = {
- { "rm2h.03", 0x080000, 0xbb180378, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "rm2h.04", 0x080000, 0x205ffcd6, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "rm2.05", 0x080000, 0x02ee9efc, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "rm2.14m", 0x200000, 0x9b1f00b4, CPS2_GFX | BRF_GRA },
- { "rm2.16m", 0x200000, 0xc2bb0c24, CPS2_GFX | BRF_GRA },
- { "rm2.18m", 0x200000, 0x12257251, CPS2_GFX | BRF_GRA },
- { "rm2.20m", 0x200000, 0xf9b6e786, CPS2_GFX | BRF_GRA },
-
- { "rm2.01a", 0x020000, 0xd18e7859, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "rm2.02", 0x020000, 0xc463ece0, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "rm2.11m", 0x200000, 0x2106174d, CPS2_QSND | BRF_SND },
- { "rm2.12m", 0x200000, 0x546c1636, CPS2_QSND | BRF_SND },
-
- { "megaman2h.key", 0x000014, 0x99cb8d19, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Megaman2h)
-STD_ROM_FN(Megaman2h)
-
-static struct BurnRomInfo Rockman2jRomDesc[] = {
- { "rm2j.03", 0x080000, 0xdbaa1437, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "rm2j.04", 0x080000, 0xcf5ba612, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "rm2.05", 0x080000, 0x02ee9efc, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "rm2.14m", 0x200000, 0x9b1f00b4, CPS2_GFX | BRF_GRA },
- { "rm2.16m", 0x200000, 0xc2bb0c24, CPS2_GFX | BRF_GRA },
- { "rm2.18m", 0x200000, 0x12257251, CPS2_GFX | BRF_GRA },
- { "rm2.20m", 0x200000, 0xf9b6e786, CPS2_GFX | BRF_GRA },
-
- { "rm2.01a", 0x020000, 0xd18e7859, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "rm2.02", 0x020000, 0xc463ece0, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "rm2.11m", 0x200000, 0x2106174d, CPS2_QSND | BRF_SND },
- { "rm2.12m", 0x200000, 0x546c1636, CPS2_QSND | BRF_SND },
-
- { "rockman2j.key", 0x000014, 0xc590187a, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Rockman2j)
-STD_ROM_FN(Rockman2j)
-
-static struct BurnRomInfo Mmancp2uRomDesc[] = {
- { "rcmu.03b", 0x080000, 0xc39f037f, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "rcmu.04b", 0x080000, 0xcd6f5e99, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "rcm.05b", 0x080000, 0x4376ea95, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "rcm.73", 0x080000, 0x774c6e04, CPS2_GFX | BRF_GRA },
- { "rcm.63", 0x080000, 0xacad7c62, CPS2_GFX | BRF_GRA },
- { "rcm.83", 0x080000, 0x6af30499, CPS2_GFX | BRF_GRA },
- { "rcm.93", 0x080000, 0x7a5a5166, CPS2_GFX | BRF_GRA },
- { "rcm.74", 0x080000, 0x004ec725, CPS2_GFX | BRF_GRA },
- { "rcm.64", 0x080000, 0x65c0464e, CPS2_GFX | BRF_GRA },
- { "rcm.84", 0x080000, 0xfb3097cc, CPS2_GFX | BRF_GRA },
- { "rcm.94", 0x080000, 0x2e16557a, CPS2_GFX | BRF_GRA },
- { "rcm.75", 0x080000, 0x70a73f99, CPS2_GFX | BRF_GRA },
- { "rcm.65", 0x080000, 0xecedad3d, CPS2_GFX | BRF_GRA },
- { "rcm.85", 0x080000, 0x3d6186d8, CPS2_GFX | BRF_GRA },
- { "rcm.95", 0x080000, 0x8c7700f1, CPS2_GFX | BRF_GRA },
- { "rcm.76", 0x080000, 0x89a889ad, CPS2_GFX | BRF_GRA },
- { "rcm.66", 0x080000, 0x1300eb7b, CPS2_GFX | BRF_GRA },
- { "rcm.86", 0x080000, 0x6d974ebd, CPS2_GFX | BRF_GRA },
- { "rcm.96", 0x080000, 0x7da4cd24, CPS2_GFX | BRF_GRA },
-
- { "rcm.01", 0x020000, 0xd60cf8a3, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "rcm.51", 0x080000, 0xb6d07080, CPS2_QSND | BRF_SND },
- { "rcm.52", 0x080000, 0xdfddc493, CPS2_QSND | BRF_SND },
- { "rcm.53", 0x080000, 0x6062ae3a, CPS2_QSND | BRF_SND },
- { "rcm.54", 0x080000, 0x08c6f3bf, CPS2_QSND | BRF_SND },
- { "rcm.55", 0x080000, 0xf97dfccc, CPS2_QSND | BRF_SND },
- { "rcm.56", 0x080000, 0xade475bc, CPS2_QSND | BRF_SND },
- { "rcm.57", 0x080000, 0x075effb3, CPS2_QSND | BRF_SND },
- { "rcm.58", 0x080000, 0xf6c1f87b, CPS2_QSND | BRF_SND },
-
- { "mmancp2u.key", 0x000014, 0x17ca6659, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Mmancp2u)
-STD_ROM_FN(Mmancp2u)
-
-static struct BurnRomInfo Mmancp2ur1RomDesc[] = {
- { "rcmu.03a", 0x080000, 0xc6b75320, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "rcmu.04a", 0x080000, 0x47880111, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "rcmu.05a", 0x080000, 0x4376ea95, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "rcm.73", 0x080000, 0x774c6e04, CPS2_GFX | BRF_GRA },
- { "rcm.63", 0x080000, 0xacad7c62, CPS2_GFX | BRF_GRA },
- { "rcm.83", 0x080000, 0x6af30499, CPS2_GFX | BRF_GRA },
- { "rcm.93", 0x080000, 0x7a5a5166, CPS2_GFX | BRF_GRA },
- { "rcm.74", 0x080000, 0x004ec725, CPS2_GFX | BRF_GRA },
- { "rcm.64", 0x080000, 0x65c0464e, CPS2_GFX | BRF_GRA },
- { "rcm.84", 0x080000, 0xfb3097cc, CPS2_GFX | BRF_GRA },
- { "rcm.94", 0x080000, 0x2e16557a, CPS2_GFX | BRF_GRA },
- { "rcm.75", 0x080000, 0x70a73f99, CPS2_GFX | BRF_GRA },
- { "rcm.65", 0x080000, 0xecedad3d, CPS2_GFX | BRF_GRA },
- { "rcm.85", 0x080000, 0x3d6186d8, CPS2_GFX | BRF_GRA },
- { "rcm.95", 0x080000, 0x8c7700f1, CPS2_GFX | BRF_GRA },
- { "rcm.76", 0x080000, 0x89a889ad, CPS2_GFX | BRF_GRA },
- { "rcm.66", 0x080000, 0x1300eb7b, CPS2_GFX | BRF_GRA },
- { "rcm.86", 0x080000, 0x6d974ebd, CPS2_GFX | BRF_GRA },
- { "rcm.96", 0x080000, 0x7da4cd24, CPS2_GFX | BRF_GRA },
-
- { "rcm.01", 0x020000, 0xd60cf8a3, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "rcm.51", 0x080000, 0xb6d07080, CPS2_QSND | BRF_SND },
- { "rcm.52", 0x080000, 0xdfddc493, CPS2_QSND | BRF_SND },
- { "rcm.53", 0x080000, 0x6062ae3a, CPS2_QSND | BRF_SND },
- { "rcm.54", 0x080000, 0x08c6f3bf, CPS2_QSND | BRF_SND },
- { "rcm.55", 0x080000, 0xf97dfccc, CPS2_QSND | BRF_SND },
- { "rcm.56", 0x080000, 0xade475bc, CPS2_QSND | BRF_SND },
- { "rcm.57", 0x080000, 0x075effb3, CPS2_QSND | BRF_SND },
- { "rcm.58", 0x080000, 0xf6c1f87b, CPS2_QSND | BRF_SND },
-
- { "mmancp2u.key", 0x000014, 0x17ca6659, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Mmancp2ur1)
-STD_ROM_FN(Mmancp2ur1)
-
-static struct BurnRomInfo Rmancp2jRomDesc[] = {
- { "rcmj.03a", 0x080000, 0x30559f60, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "rcmj.04a", 0x080000, 0x5efc9366, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "rcm.05a", 0x080000, 0x517ccde2, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "rcm.73", 0x080000, 0x774c6e04, CPS2_GFX | BRF_GRA },
- { "rcm.63", 0x080000, 0xacad7c62, CPS2_GFX | BRF_GRA },
- { "rcm.83", 0x080000, 0x6af30499, CPS2_GFX | BRF_GRA },
- { "rcm.93", 0x080000, 0x7a5a5166, CPS2_GFX | BRF_GRA },
- { "rcm.74", 0x080000, 0x004ec725, CPS2_GFX | BRF_GRA },
- { "rcm.64", 0x080000, 0x65c0464e, CPS2_GFX | BRF_GRA },
- { "rcm.84", 0x080000, 0xfb3097cc, CPS2_GFX | BRF_GRA },
- { "rcm.94", 0x080000, 0x2e16557a, CPS2_GFX | BRF_GRA },
- { "rcm.75", 0x080000, 0x70a73f99, CPS2_GFX | BRF_GRA },
- { "rcm.65", 0x080000, 0xecedad3d, CPS2_GFX | BRF_GRA },
- { "rcm.85", 0x080000, 0x3d6186d8, CPS2_GFX | BRF_GRA },
- { "rcm.95", 0x080000, 0x8c7700f1, CPS2_GFX | BRF_GRA },
- { "rcm.76", 0x080000, 0x89a889ad, CPS2_GFX | BRF_GRA },
- { "rcm.66", 0x080000, 0x1300eb7b, CPS2_GFX | BRF_GRA },
- { "rcm.86", 0x080000, 0x6d974ebd, CPS2_GFX | BRF_GRA },
- { "rcm.96", 0x080000, 0x7da4cd24, CPS2_GFX | BRF_GRA },
-
- { "rcm.01", 0x020000, 0xd60cf8a3, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "rcm.51", 0x080000, 0xb6d07080, CPS2_QSND | BRF_SND },
- { "rcm.52", 0x080000, 0xdfddc493, CPS2_QSND | BRF_SND },
- { "rcm.53", 0x080000, 0x6062ae3a, CPS2_QSND | BRF_SND },
- { "rcm.54", 0x080000, 0x08c6f3bf, CPS2_QSND | BRF_SND },
- { "rcm.55", 0x080000, 0xf97dfccc, CPS2_QSND | BRF_SND },
- { "rcm.56", 0x080000, 0xade475bc, CPS2_QSND | BRF_SND },
- { "rcm.57", 0x080000, 0x075effb3, CPS2_QSND | BRF_SND },
- { "rcm.58", 0x080000, 0xf6c1f87b, CPS2_QSND | BRF_SND },
-
- { "rmancp2j.key", 0x000014, 0x17309a70, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Rmancp2j)
-STD_ROM_FN(Rmancp2j)
-
-static struct BurnRomInfo MmatrixRomDesc[] = {
- { "mmxu.03", 0x080000, 0xAB65b599, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mmxu.04", 0x080000, 0x0135FC6C, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mmxu.05", 0x080000, 0xF1FD2B84, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "mmx.13m", 0x400000, 0x04748718, CPS2_GFX | BRF_GRA },
- { "mmx.15m", 0x400000, 0x38074F44, CPS2_GFX | BRF_GRA },
- { "mmx.17m", 0x400000, 0xE4635E35, CPS2_GFX | BRF_GRA },
- { "mmx.19m", 0x400000, 0x4400A3F2, CPS2_GFX | BRF_GRA },
- { "mmx.14m", 0x400000, 0xD52BF491, CPS2_GFX | BRF_GRA },
- { "mmx.16m", 0x400000, 0x23F70780, CPS2_GFX | BRF_GRA },
- { "mmx.18m", 0x400000, 0x2562C9D5, CPS2_GFX | BRF_GRA },
- { "mmx.20m", 0x400000, 0x583A9687, CPS2_GFX | BRF_GRA },
-
- { "mmx.01", 0x020000, 0xC57E8171, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "mmx.11m", 0x400000, 0x4180B39F, CPS2_QSND | BRF_SND },
- { "mmx.12m", 0x400000, 0x95E22A59, CPS2_QSND | BRF_SND },
-
- { "mmatrix.key", 0x000014, 0x8ed66bc4, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Mmatrix)
-STD_ROM_FN(Mmatrix)
-
-static struct BurnRomInfo MmatrixjRomDesc[] = {
- { "mmxj.03", 0x080000, 0x1D5DE213, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mmxj.04", 0x080000, 0xD943A339, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mmxj.05", 0x080000, 0x0C8B4ABB, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "mmx.13m", 0x400000, 0x04748718, CPS2_GFX | BRF_GRA },
- { "mmx.15m", 0x400000, 0x38074F44, CPS2_GFX | BRF_GRA },
- { "mmx.17m", 0x400000, 0xE4635E35, CPS2_GFX | BRF_GRA },
- { "mmx.19m", 0x400000, 0x4400A3F2, CPS2_GFX | BRF_GRA },
- { "mmx.14m", 0x400000, 0xD52BF491, CPS2_GFX | BRF_GRA },
- { "mmx.16m", 0x400000, 0x23F70780, CPS2_GFX | BRF_GRA },
- { "mmx.18m", 0x400000, 0x2562C9D5, CPS2_GFX | BRF_GRA },
- { "mmx.20m", 0x400000, 0x583A9687, CPS2_GFX | BRF_GRA },
-
- { "mmx.01", 0x020000, 0xC57E8171, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "mmx.11m", 0x400000, 0x4180B39F, CPS2_QSND | BRF_SND },
- { "mmx.12m", 0x400000, 0x95E22A59, CPS2_QSND | BRF_SND },
-
- { "mmatrixj.key", 0x000014, 0x3b50d889, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Mmatrixj)
-STD_ROM_FN(Mmatrixj)
-
-static struct BurnRomInfo MpangRomDesc[] = {
- { "mpne.03c", 0x080000, 0xfe16fc9f, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mpne.04c", 0x080000, 0x2cc5ec22, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "mpn-simm.01c", 0x200000, 0x388DB66B, CPS2_GFX_SIMM | BRF_GRA },
- { "mpn-simm.01d", 0x200000, 0xAFF1B494, CPS2_GFX_SIMM | BRF_GRA },
- { "mpn-simm.01a", 0x200000, 0xA9C4857B, CPS2_GFX_SIMM | BRF_GRA },
- { "mpn-simm.01b", 0x200000, 0xF759DF22, CPS2_GFX_SIMM | BRF_GRA },
- { "mpn-simm.03c", 0x200000, 0xDEC6B720, CPS2_GFX_SIMM | BRF_GRA },
- { "mpn-simm.03d", 0x200000, 0xF8774C18, CPS2_GFX_SIMM | BRF_GRA },
- { "mpn-simm.03a", 0x200000, 0xC2AEA4EC, CPS2_GFX_SIMM | BRF_GRA },
- { "mpn-simm.03b", 0x200000, 0x84D6DC33, CPS2_GFX_SIMM | BRF_GRA },
-
- { "mpn.01", 0x020000, 0x90C7ADB6, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "mpn-simm.05a", 0x200000, 0x318A2E21, CPS2_QSND_SIMM | BRF_SND },
- { "mpn-simm.05b", 0x200000, 0x5462F4E8, CPS2_QSND_SIMM | BRF_SND },
-
- { "mpang.key", 0x000014, 0x95354b0f, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Mpang)
-STD_ROM_FN(Mpang)
-
-static struct BurnRomInfo Mpangr1RomDesc[] = {
- { "mpne.03b", 0x080000, 0x6ef0f9b2, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mpne.04b", 0x080000, 0x30a468bb, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "mpn-simm.01c", 0x200000, 0x388DB66B, CPS2_GFX_SIMM | BRF_GRA },
- { "mpn-simm.01d", 0x200000, 0xAFF1B494, CPS2_GFX_SIMM | BRF_GRA },
- { "mpn-simm.01a", 0x200000, 0xA9C4857B, CPS2_GFX_SIMM | BRF_GRA },
- { "mpn-simm.01b", 0x200000, 0xF759DF22, CPS2_GFX_SIMM | BRF_GRA },
- { "mpn-simm.03c", 0x200000, 0xDEC6B720, CPS2_GFX_SIMM | BRF_GRA },
- { "mpn-simm.03d", 0x200000, 0xF8774C18, CPS2_GFX_SIMM | BRF_GRA },
- { "mpn-simm.03a", 0x200000, 0xC2AEA4EC, CPS2_GFX_SIMM | BRF_GRA },
- { "mpn-simm.03b", 0x200000, 0x84D6DC33, CPS2_GFX_SIMM | BRF_GRA },
-
- { "mpn.01", 0x020000, 0x90C7ADB6, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "mpn-simm.05a", 0x200000, 0x318A2E21, CPS2_QSND_SIMM | BRF_SND },
- { "mpn-simm.05b", 0x200000, 0x5462F4E8, CPS2_QSND_SIMM | BRF_SND },
-
- { "mpang.key", 0x000014, 0x95354b0f, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Mpangr1)
-STD_ROM_FN(Mpangr1)
-
-static struct BurnRomInfo MpanguRomDesc[] = {
- { "mpnu.03", 0x080000, 0x6e7ed03c, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mpnu.04", 0x080000, 0xde079131, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "mpn.13m", 0x200000, 0xc5f123dc, CPS2_GFX | BRF_GRA },
- { "mpn.15m", 0x200000, 0x8e033265, CPS2_GFX | BRF_GRA },
- { "mpn.17m", 0x200000, 0xcfcd73d2, CPS2_GFX | BRF_GRA },
- { "mpn.19m", 0x200000, 0x2db1ffbc, CPS2_GFX | BRF_GRA },
-
- { "mpn.01", 0x020000, 0x90C7ADB6, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "mpn.q1", 0x100000, 0xd21c1f5a, CPS2_QSND | BRF_SND },
- { "mpn.q2", 0x100000, 0xd22090b1, CPS2_QSND | BRF_SND },
- { "mpn.q3", 0x100000, 0x60aa5ef2, CPS2_QSND | BRF_SND },
- { "mpn.q4", 0x100000, 0x3a67d203, CPS2_QSND | BRF_SND },
-
- { "mpang.key", 0x000014, 0x95354b0f, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Mpangu)
-STD_ROM_FN(Mpangu)
-
-static struct BurnRomInfo MpangjRomDesc[] = {
- { "mpnj.03a", 0x080000, 0xBF597b1C, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mpnj.04a", 0x080000, 0xF4A3AB0F, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "mpn-simm.01c", 0x200000, 0x388DB66B, CPS2_GFX_SIMM | BRF_GRA },
- { "mpn-simm.01d", 0x200000, 0xAFF1B494, CPS2_GFX_SIMM | BRF_GRA },
- { "mpn-simm.01a", 0x200000, 0xA9C4857B, CPS2_GFX_SIMM | BRF_GRA },
- { "mpn-simm.01b", 0x200000, 0xF759DF22, CPS2_GFX_SIMM | BRF_GRA },
- { "mpn-simm.03c", 0x200000, 0xDEC6B720, CPS2_GFX_SIMM | BRF_GRA },
- { "mpn-simm.03d", 0x200000, 0xF8774C18, CPS2_GFX_SIMM | BRF_GRA },
- { "mpn-simm.03a", 0x200000, 0xC2AEA4EC, CPS2_GFX_SIMM | BRF_GRA },
- { "mpn-simm.03b", 0x200000, 0x84D6DC33, CPS2_GFX_SIMM | BRF_GRA },
-
- { "mpn.01", 0x020000, 0x90C7ADB6, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "mpn-simm.05a", 0x200000, 0x318A2E21, CPS2_QSND_SIMM | BRF_SND },
- { "mpn-simm.05b", 0x200000, 0x5462F4E8, CPS2_QSND_SIMM | BRF_SND },
-
- { "mpang.key", 0x000014, 0x95354b0f, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Mpangj)
-STD_ROM_FN(Mpangj)
-
-static struct BurnRomInfo MshRomDesc[] = {
- { "mshe.03e", 0x080000, 0xbd951414, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mshe.04e", 0x080000, 0x19dd42f2, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "msh.05", 0x080000, 0x6a091b9e, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "msh.06b", 0x080000, 0x803e3fa4, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "msh.07a", 0x080000, 0xc45f8e27, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "msh.08a", 0x080000, 0x9ca6f12c, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "msh.09a", 0x080000, 0x82ec27af, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "msh.10b", 0x080000, 0x8d931196, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "msh.13m", 0x400000, 0x09d14566, CPS2_GFX | BRF_GRA },
- { "msh.15m", 0x400000, 0xee962057, CPS2_GFX | BRF_GRA },
- { "msh.17m", 0x400000, 0x604ece14, CPS2_GFX | BRF_GRA },
- { "msh.19m", 0x400000, 0x94a731e8, CPS2_GFX | BRF_GRA },
- { "msh.14m", 0x400000, 0x4197973e, CPS2_GFX | BRF_GRA },
- { "msh.16m", 0x400000, 0x438da4a0, CPS2_GFX | BRF_GRA },
- { "msh.18m", 0x400000, 0x4db92d94, CPS2_GFX | BRF_GRA },
- { "msh.20m", 0x400000, 0xa2b0c6c0, CPS2_GFX | BRF_GRA },
-
- { "msh.01", 0x020000, 0xc976e6f9, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "msh.02", 0x020000, 0xce67d0d9, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "msh.11m", 0x200000, 0x37ac6d30, CPS2_QSND | BRF_SND },
- { "msh.12m", 0x200000, 0xde092570, CPS2_QSND | BRF_SND },
-
- { "msh.key", 0x000014, 0xb494368e, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Msh)
-STD_ROM_FN(Msh)
-
-static struct BurnRomInfo MshaRomDesc[] = {
- { "msha.03e", 0x080000, 0xec84ec44, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "msha.04e", 0x080000, 0x098b8503, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "msh.05", 0x080000, 0x6a091b9e, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "msh.06b", 0x080000, 0x803e3fa4, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "msh.07a", 0x080000, 0xc45f8e27, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "msh.08a", 0x080000, 0x9ca6f12c, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "msh.09a", 0x080000, 0x82ec27af, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "msh.10b", 0x080000, 0x8d931196, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "msh.13m", 0x400000, 0x09d14566, CPS2_GFX | BRF_GRA },
- { "msh.15m", 0x400000, 0xee962057, CPS2_GFX | BRF_GRA },
- { "msh.17m", 0x400000, 0x604ece14, CPS2_GFX | BRF_GRA },
- { "msh.19m", 0x400000, 0x94a731e8, CPS2_GFX | BRF_GRA },
- { "msh.14m", 0x400000, 0x4197973e, CPS2_GFX | BRF_GRA },
- { "msh.16m", 0x400000, 0x438da4a0, CPS2_GFX | BRF_GRA },
- { "msh.18m", 0x400000, 0x4db92d94, CPS2_GFX | BRF_GRA },
- { "msh.20m", 0x400000, 0xa2b0c6c0, CPS2_GFX | BRF_GRA },
-
- { "msh.01", 0x020000, 0xc976e6f9, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "msh.02", 0x020000, 0xce67d0d9, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "msh.11m", 0x200000, 0x37ac6d30, CPS2_QSND | BRF_SND },
- { "msh.12m", 0x200000, 0xde092570, CPS2_QSND | BRF_SND },
-
- { "msha.key", 0x000014, 0x00f3f2ca, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Msha)
-STD_ROM_FN(Msha)
-
-static struct BurnRomInfo MshbRomDesc[] = {
- { "mshb.03c", 0x080000, 0x19697f74, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mshb.04c", 0x080000, 0x95317a6f, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "msh.05a", 0x080000, 0xf37539e6, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "msh.06b", 0x080000, 0x803e3fa4, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "msh.07a", 0x080000, 0xc45f8e27, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "msh.08a", 0x080000, 0x9ca6f12c, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "msh.09a", 0x080000, 0x82ec27af, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "msh.10b", 0x080000, 0x8d931196, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "msh.13m", 0x400000, 0x09d14566, CPS2_GFX | BRF_GRA },
- { "msh.15m", 0x400000, 0xee962057, CPS2_GFX | BRF_GRA },
- { "msh.17m", 0x400000, 0x604ece14, CPS2_GFX | BRF_GRA },
- { "msh.19m", 0x400000, 0x94a731e8, CPS2_GFX | BRF_GRA },
- { "msh.14m", 0x400000, 0x4197973e, CPS2_GFX | BRF_GRA },
- { "msh.16m", 0x400000, 0x438da4a0, CPS2_GFX | BRF_GRA },
- { "msh.18m", 0x400000, 0x4db92d94, CPS2_GFX | BRF_GRA },
- { "msh.20m", 0x400000, 0xa2b0c6c0, CPS2_GFX | BRF_GRA },
-
-
- { "msh.01", 0x020000, 0xc976e6f9, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "msh.02", 0x020000, 0xce67d0d9, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "msh.11m", 0x200000, 0x37ac6d30, CPS2_QSND | BRF_SND },
- { "msh.12m", 0x200000, 0xde092570, CPS2_QSND | BRF_SND },
-
- { "mshb.key", 0x000014, 0x92196837, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Mshb)
-STD_ROM_FN(Mshb)
-
-static struct BurnRomInfo MshhRomDesc[] = {
- { "mshh.03c", 0x080000, 0x8d84b0fa, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mshh.04c", 0x080000, 0xd638f601, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "msh.05a", 0x080000, 0xf37539e6, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "msh.06b", 0x080000, 0x803e3fa4, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "msh.07a", 0x080000, 0xc45f8e27, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "msh.08a", 0x080000, 0x9ca6f12c, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "msh.09a", 0x080000, 0x82ec27af, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "msh.10b", 0x080000, 0x8d931196, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "msh.13m", 0x400000, 0x09d14566, CPS2_GFX | BRF_GRA },
- { "msh.15m", 0x400000, 0xee962057, CPS2_GFX | BRF_GRA },
- { "msh.17m", 0x400000, 0x604ece14, CPS2_GFX | BRF_GRA },
- { "msh.19m", 0x400000, 0x94a731e8, CPS2_GFX | BRF_GRA },
- { "msh.14m", 0x400000, 0x4197973e, CPS2_GFX | BRF_GRA },
- { "msh.16m", 0x400000, 0x438da4a0, CPS2_GFX | BRF_GRA },
- { "msh.18m", 0x400000, 0x4db92d94, CPS2_GFX | BRF_GRA },
- { "msh.20m", 0x400000, 0xa2b0c6c0, CPS2_GFX | BRF_GRA },
-
- { "msh.01", 0x020000, 0xc976e6f9, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "msh.02", 0x020000, 0xce67d0d9, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "msh.11m", 0x200000, 0x37ac6d30, CPS2_QSND | BRF_SND },
- { "msh.12m", 0x200000, 0xde092570, CPS2_QSND | BRF_SND },
-
- { "mshh.key", 0x000014, 0x5dddf5e7, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Mshh)
-STD_ROM_FN(Mshh)
-
-static struct BurnRomInfo MshjRomDesc[] = {
- { "mshj.03g", 0x080000, 0x261f4091, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mshj.04g", 0x080000, 0x61d791c6, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "msh.05a", 0x080000, 0xf37539e6, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "msh.06b", 0x080000, 0x803e3fa4, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "msh.07a", 0x080000, 0xc45f8e27, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "msh.08a", 0x080000, 0x9ca6f12c, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "msh.09a", 0x080000, 0x82ec27af, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "msh.10b", 0x080000, 0x8d931196, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "msh.13m", 0x400000, 0x09d14566, CPS2_GFX | BRF_GRA },
- { "msh.15m", 0x400000, 0xee962057, CPS2_GFX | BRF_GRA },
- { "msh.17m", 0x400000, 0x604ece14, CPS2_GFX | BRF_GRA },
- { "msh.19m", 0x400000, 0x94a731e8, CPS2_GFX | BRF_GRA },
- { "msh.14m", 0x400000, 0x4197973e, CPS2_GFX | BRF_GRA },
- { "msh.16m", 0x400000, 0x438da4a0, CPS2_GFX | BRF_GRA },
- { "msh.18m", 0x400000, 0x4db92d94, CPS2_GFX | BRF_GRA },
- { "msh.20m", 0x400000, 0xa2b0c6c0, CPS2_GFX | BRF_GRA },
-
- { "msh.01", 0x020000, 0xc976e6f9, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "msh.02", 0x020000, 0xce67d0d9, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "msh.11m", 0x200000, 0x37ac6d30, CPS2_QSND | BRF_SND },
- { "msh.12m", 0x200000, 0xde092570, CPS2_QSND | BRF_SND },
-
- { "mshj.key", 0x000014, 0x888761ac, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Mshj)
-STD_ROM_FN(Mshj)
-
-static struct BurnRomInfo Mshjr1RomDesc[] = {
- { "mshj.03f", 0x080000, 0xff172fd2, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mshj.04f", 0x080000, 0xebbb205a, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "msh.05", 0x080000, 0x6a091b9e, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "msh.06b", 0x080000, 0x803e3fa4, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "msh.07a", 0x080000, 0xc45f8e27, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "msh.08a", 0x080000, 0x9ca6f12c, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "msh.09a", 0x080000, 0x82ec27af, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "msh.10b", 0x080000, 0x8d931196, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "msh.13m", 0x400000, 0x09d14566, CPS2_GFX | BRF_GRA },
- { "msh.15m", 0x400000, 0xee962057, CPS2_GFX | BRF_GRA },
- { "msh.17m", 0x400000, 0x604ece14, CPS2_GFX | BRF_GRA },
- { "msh.19m", 0x400000, 0x94a731e8, CPS2_GFX | BRF_GRA },
- { "msh.14m", 0x400000, 0x4197973e, CPS2_GFX | BRF_GRA },
- { "msh.16m", 0x400000, 0x438da4a0, CPS2_GFX | BRF_GRA },
- { "msh.18m", 0x400000, 0x4db92d94, CPS2_GFX | BRF_GRA },
- { "msh.20m", 0x400000, 0xa2b0c6c0, CPS2_GFX | BRF_GRA },
-
- { "msh.01", 0x020000, 0xc976e6f9, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "msh.02", 0x020000, 0xce67d0d9, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "msh.11m", 0x200000, 0x37ac6d30, CPS2_QSND | BRF_SND },
- { "msh.12m", 0x200000, 0xde092570, CPS2_QSND | BRF_SND },
-
- { "mshj.key", 0x000014, 0x888761ac, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Mshjr1)
-STD_ROM_FN(Mshjr1)
-
-static struct BurnRomInfo MshuRomDesc[] = {
- { "mshu.03", 0x080000, 0xd2805bdd, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mshu.04", 0x080000, 0x743f96ff, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "msh.05", 0x080000, 0x6a091b9e, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "msh.06b", 0x080000, 0x803e3fa4, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "msh.07a", 0x080000, 0xc45f8e27, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "msh.08a", 0x080000, 0x9ca6f12c, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "msh.09a", 0x080000, 0x82ec27af, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "msh.10b", 0x080000, 0x8d931196, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "msh.13m", 0x400000, 0x09d14566, CPS2_GFX | BRF_GRA },
- { "msh.15m", 0x400000, 0xee962057, CPS2_GFX | BRF_GRA },
- { "msh.17m", 0x400000, 0x604ece14, CPS2_GFX | BRF_GRA },
- { "msh.19m", 0x400000, 0x94a731e8, CPS2_GFX | BRF_GRA },
- { "msh.14m", 0x400000, 0x4197973e, CPS2_GFX | BRF_GRA },
- { "msh.16m", 0x400000, 0x438da4a0, CPS2_GFX | BRF_GRA },
- { "msh.18m", 0x400000, 0x4db92d94, CPS2_GFX | BRF_GRA },
- { "msh.20m", 0x400000, 0xa2b0c6c0, CPS2_GFX | BRF_GRA },
-
- { "msh.01", 0x020000, 0xc976e6f9, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "msh.02", 0x020000, 0xce67d0d9, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "msh.11m", 0x200000, 0x37ac6d30, CPS2_QSND | BRF_SND },
- { "msh.12m", 0x200000, 0xde092570, CPS2_QSND | BRF_SND },
-
- { "mshu.key", 0x000014, 0x745c1bee, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Mshu)
-STD_ROM_FN(Mshu)
-
-static struct BurnRomInfo MshvsfRomDesc[] = {
- { "mvse.03f", 0x080000, 0xb72dc199, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvse.04f", 0x080000, 0x6ef799f9, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvs.05a", 0x080000, 0x1a5de0cb, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvs.06a", 0x080000, 0x959f3030, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvs.07b", 0x080000, 0x7f915bdb, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvs.08a", 0x080000, 0xc2813884, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvs.09b", 0x080000, 0x3ba08818, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvs.10b", 0x080000, 0xcf0dba98, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "mvs.13m", 0x400000, 0x29b05fd9, CPS2_GFX | BRF_GRA },
- { "mvs.15m", 0x400000, 0xfaddccf1, CPS2_GFX | BRF_GRA },
- { "mvs.17m", 0x400000, 0x97aaf4c7, CPS2_GFX | BRF_GRA },
- { "mvs.19m", 0x400000, 0xcb70e915, CPS2_GFX | BRF_GRA },
- { "mvs.14m", 0x400000, 0xb3b1972d, CPS2_GFX | BRF_GRA },
- { "mvs.16m", 0x400000, 0x08aadb5d, CPS2_GFX | BRF_GRA },
- { "mvs.18m", 0x400000, 0xc1228b35, CPS2_GFX | BRF_GRA },
- { "mvs.20m", 0x400000, 0x366cc6c2, CPS2_GFX | BRF_GRA },
-
- { "mvs.01", 0x020000, 0x68252324, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "mvs.02", 0x020000, 0xb34e773d, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "mvs.11m", 0x400000, 0x86219770, CPS2_QSND | BRF_SND },
- { "mvs.12m", 0x400000, 0xf2fd7f68, CPS2_QSND | BRF_SND },
-
- { "mshvsf.key", 0x000014, 0x64660867, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Mshvsf)
-STD_ROM_FN(Mshvsf)
-
-static struct BurnRomInfo MshvsfhRomDesc[] = {
- { "mvsh.03f", 0x080000, 0x4f60f41e, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvsh.04f", 0x080000, 0xdc08ec12, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvs.05a", 0x080000, 0x1a5de0cb, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvs.06a", 0x080000, 0x959f3030, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvs.07b", 0x080000, 0x7f915bdb, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvs.08a", 0x080000, 0xc2813884, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvs.09b", 0x080000, 0x3ba08818, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvs.10b", 0x080000, 0xcf0dba98, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "mvs.13m", 0x400000, 0x29b05fd9, CPS2_GFX | BRF_GRA },
- { "mvs.15m", 0x400000, 0xfaddccf1, CPS2_GFX | BRF_GRA },
- { "mvs.17m", 0x400000, 0x97aaf4c7, CPS2_GFX | BRF_GRA },
- { "mvs.19m", 0x400000, 0xcb70e915, CPS2_GFX | BRF_GRA },
- { "mvs.14m", 0x400000, 0xb3b1972d, CPS2_GFX | BRF_GRA },
- { "mvs.16m", 0x400000, 0x08aadb5d, CPS2_GFX | BRF_GRA },
- { "mvs.18m", 0x400000, 0xc1228b35, CPS2_GFX | BRF_GRA },
- { "mvs.20m", 0x400000, 0x366cc6c2, CPS2_GFX | BRF_GRA },
-
- { "mvs.01", 0x020000, 0x68252324, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "mvs.02", 0x020000, 0xb34e773d, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "mvs.11m", 0x400000, 0x86219770, CPS2_QSND | BRF_SND },
- { "mvs.12m", 0x400000, 0xf2fd7f68, CPS2_QSND | BRF_SND },
-
- { "mshvsfh.key", 0x000014, 0xb93d576f, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Mshvsfh)
-STD_ROM_FN(Mshvsfh)
-
-static struct BurnRomInfo MshvsfaRomDesc[] = {
- { "mvsa.03f", 0x080000, 0x5b863716, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvsa.04f", 0x080000, 0x4886e65f, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvs.05a", 0x080000, 0x1a5de0cb, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvs.06a", 0x080000, 0x959f3030, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvs.07b", 0x080000, 0x7f915bdb, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvs.08a", 0x080000, 0xc2813884, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvs.09b", 0x080000, 0x3ba08818, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvs.10b", 0x080000, 0xcf0dba98, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "mvs.13m", 0x400000, 0x29b05fd9, CPS2_GFX | BRF_GRA },
- { "mvs.15m", 0x400000, 0xfaddccf1, CPS2_GFX | BRF_GRA },
- { "mvs.17m", 0x400000, 0x97aaf4c7, CPS2_GFX | BRF_GRA },
- { "mvs.19m", 0x400000, 0xcb70e915, CPS2_GFX | BRF_GRA },
- { "mvs.14m", 0x400000, 0xb3b1972d, CPS2_GFX | BRF_GRA },
- { "mvs.16m", 0x400000, 0x08aadb5d, CPS2_GFX | BRF_GRA },
- { "mvs.18m", 0x400000, 0xc1228b35, CPS2_GFX | BRF_GRA },
- { "mvs.20m", 0x400000, 0x366cc6c2, CPS2_GFX | BRF_GRA },
-
- { "mvs.01", 0x020000, 0x68252324, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "mvs.02", 0x020000, 0xb34e773d, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "mvs.11m", 0x400000, 0x86219770, CPS2_QSND | BRF_SND },
- { "mvs.12m", 0x400000, 0xf2fd7f68, CPS2_QSND | BRF_SND },
-
- { "mshvsfa.key", 0x000014, 0x6810a3af, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Mshvsfa)
-STD_ROM_FN(Mshvsfa)
-
-static struct BurnRomInfo Mshvsfa1RomDesc[] = {
- { "mvsa.03", 0x080000, 0x92ef1933, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvsa.04", 0x080000, 0x4b24373c, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvs.05", 0x080000, 0xac180c1c, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvs.06a", 0x080000, 0x959f3030, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvs.07b", 0x080000, 0x7f915bdb, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvs.08a", 0x080000, 0xc2813884, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvs.09b", 0x080000, 0x3ba08818, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvs.10b", 0x080000, 0xcf0dba98, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "mvs.13m", 0x400000, 0x29b05fd9, CPS2_GFX | BRF_GRA },
- { "mvs.15m", 0x400000, 0xfaddccf1, CPS2_GFX | BRF_GRA },
- { "mvs.17m", 0x400000, 0x97aaf4c7, CPS2_GFX | BRF_GRA },
- { "mvs.19m", 0x400000, 0xcb70e915, CPS2_GFX | BRF_GRA },
- { "mvs.14m", 0x400000, 0xb3b1972d, CPS2_GFX | BRF_GRA },
- { "mvs.16m", 0x400000, 0x08aadb5d, CPS2_GFX | BRF_GRA },
- { "mvs.18m", 0x400000, 0xc1228b35, CPS2_GFX | BRF_GRA },
- { "mvs.20m", 0x400000, 0x366cc6c2, CPS2_GFX | BRF_GRA },
-
- { "mvs.01", 0x020000, 0x68252324, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "mvs.02", 0x020000, 0xb34e773d, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "mvs.11m", 0x400000, 0x86219770, CPS2_QSND | BRF_SND },
- { "mvs.12m", 0x400000, 0xf2fd7f68, CPS2_QSND | BRF_SND },
-
- { "mshvsfa.key", 0x000014, 0x6810a3af, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Mshvsfa1)
-STD_ROM_FN(Mshvsfa1)
-
-static struct BurnRomInfo MshvsfbRomDesc[] = {
- { "mvsb.03g", 0x080000, 0x143895ef, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvsb.04g", 0x080000, 0xdd8a886c, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvs.05d", 0x080000, 0x921fc542, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvs.06a", 0x080000, 0x959f3030, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvs.07b", 0x080000, 0x7f915bdb, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvs.08a", 0x080000, 0xc2813884, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvs.09b", 0x080000, 0x3ba08818, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvs.10b", 0x080000, 0xcf0dba98, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "mvs.13m", 0x400000, 0x29b05fd9, CPS2_GFX | BRF_GRA },
- { "mvs.15m", 0x400000, 0xfaddccf1, CPS2_GFX | BRF_GRA },
- { "mvs.17m", 0x400000, 0x97aaf4c7, CPS2_GFX | BRF_GRA },
- { "mvs.19m", 0x400000, 0xcb70e915, CPS2_GFX | BRF_GRA },
- { "mvs.14m", 0x400000, 0xb3b1972d, CPS2_GFX | BRF_GRA },
- { "mvs.16m", 0x400000, 0x08aadb5d, CPS2_GFX | BRF_GRA },
- { "mvs.18m", 0x400000, 0xc1228b35, CPS2_GFX | BRF_GRA },
- { "mvs.20m", 0x400000, 0x366cc6c2, CPS2_GFX | BRF_GRA },
-
- { "mvs.01", 0x020000, 0x68252324, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "mvs.02", 0x020000, 0xb34e773d, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "mvs.11m", 0x400000, 0x86219770, CPS2_QSND | BRF_SND },
- { "mvs.12m", 0x400000, 0xf2fd7f68, CPS2_QSND | BRF_SND },
-
- { "mshvsfb.key", 0x000014, 0x3f5bb6e4, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Mshvsfb)
-STD_ROM_FN(Mshvsfb)
-
-static struct BurnRomInfo Mshvsfb1RomDesc[] = {
- { "mvsb.03f", 0x080000, 0x9c4bb950, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvsb.04f", 0x080000, 0xd3320d13, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvs.05a", 0x080000, 0x1a5de0cb, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvs.06a", 0x080000, 0x959f3030, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvs.07b", 0x080000, 0x7f915bdb, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvs.08a", 0x080000, 0xc2813884, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvs.09b", 0x080000, 0x3ba08818, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvs.10b", 0x080000, 0xcf0dba98, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "mvs.13m", 0x400000, 0x29b05fd9, CPS2_GFX | BRF_GRA },
- { "mvs.15m", 0x400000, 0xfaddccf1, CPS2_GFX | BRF_GRA },
- { "mvs.17m", 0x400000, 0x97aaf4c7, CPS2_GFX | BRF_GRA },
- { "mvs.19m", 0x400000, 0xcb70e915, CPS2_GFX | BRF_GRA },
- { "mvs.14m", 0x400000, 0xb3b1972d, CPS2_GFX | BRF_GRA },
- { "mvs.16m", 0x400000, 0x08aadb5d, CPS2_GFX | BRF_GRA },
- { "mvs.18m", 0x400000, 0xc1228b35, CPS2_GFX | BRF_GRA },
- { "mvs.20m", 0x400000, 0x366cc6c2, CPS2_GFX | BRF_GRA },
-
- { "mvs.01", 0x020000, 0x68252324, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "mvs.02", 0x020000, 0xb34e773d, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "mvs.11m", 0x400000, 0x86219770, CPS2_QSND | BRF_SND },
- { "mvs.12m", 0x400000, 0xf2fd7f68, CPS2_QSND | BRF_SND },
-
- { "mshvsfb.key", 0x000014, 0x3f5bb6e4, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Mshvsfb1)
-STD_ROM_FN(Mshvsfb1)
-
-static struct BurnRomInfo MshvsfjRomDesc[] = {
- { "mvsj.03i", 0x080000, 0xd8cbb691, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvsj.04i", 0x080000, 0x32741ace, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvs.05h", 0x080000, 0x77870dc3, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvs.06a", 0x080000, 0x959f3030, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvs.07b", 0x080000, 0x7f915bdb, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvs.08a", 0x080000, 0xc2813884, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvs.09b", 0x080000, 0x3ba08818, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvs.10b", 0x080000, 0xcf0dba98, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "mvs.13m", 0x400000, 0x29b05fd9, CPS2_GFX | BRF_GRA },
- { "mvs.15m", 0x400000, 0xfaddccf1, CPS2_GFX | BRF_GRA },
- { "mvs.17m", 0x400000, 0x97aaf4c7, CPS2_GFX | BRF_GRA },
- { "mvs.19m", 0x400000, 0xcb70e915, CPS2_GFX | BRF_GRA },
- { "mvs.14m", 0x400000, 0xb3b1972d, CPS2_GFX | BRF_GRA },
- { "mvs.16m", 0x400000, 0x08aadb5d, CPS2_GFX | BRF_GRA },
- { "mvs.18m", 0x400000, 0xc1228b35, CPS2_GFX | BRF_GRA },
- { "mvs.20m", 0x400000, 0x366cc6c2, CPS2_GFX | BRF_GRA },
-
- { "mvs.01", 0x020000, 0x68252324, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "mvs.02", 0x020000, 0xb34e773d, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "mvs.11m", 0x400000, 0x86219770, CPS2_QSND | BRF_SND },
- { "mvs.12m", 0x400000, 0xf2fd7f68, CPS2_QSND | BRF_SND },
-
- { "mshvsfj.key", 0x000014, 0x565eeebb, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Mshvsfj)
-STD_ROM_FN(Mshvsfj)
-
-static struct BurnRomInfo Mshvsfj1RomDesc[] = {
- { "mvsj.03h", 0x080000, 0xfbe2115f, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvsj.04h", 0x080000, 0xb528a367, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvs.05g", 0x080000, 0x9515a245, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvs.06a", 0x080000, 0x959f3030, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvs.07b", 0x080000, 0x7f915bdb, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvs.08a", 0x080000, 0xc2813884, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvs.09b", 0x080000, 0x3ba08818, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvs.10b", 0x080000, 0xcf0dba98, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "mvs.13m", 0x400000, 0x29b05fd9, CPS2_GFX | BRF_GRA },
- { "mvs.15m", 0x400000, 0xfaddccf1, CPS2_GFX | BRF_GRA },
- { "mvs.17m", 0x400000, 0x97aaf4c7, CPS2_GFX | BRF_GRA },
- { "mvs.19m", 0x400000, 0xcb70e915, CPS2_GFX | BRF_GRA },
- { "mvs.14m", 0x400000, 0xb3b1972d, CPS2_GFX | BRF_GRA },
- { "mvs.16m", 0x400000, 0x08aadb5d, CPS2_GFX | BRF_GRA },
- { "mvs.18m", 0x400000, 0xc1228b35, CPS2_GFX | BRF_GRA },
- { "mvs.20m", 0x400000, 0x366cc6c2, CPS2_GFX | BRF_GRA },
-
- { "mvs.01", 0x020000, 0x68252324, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "mvs.02", 0x020000, 0xb34e773d, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "mvs.11m", 0x400000, 0x86219770, CPS2_QSND | BRF_SND },
- { "mvs.12m", 0x400000, 0xf2fd7f68, CPS2_QSND | BRF_SND },
-
- { "mshvsfj.key", 0x000014, 0x565eeebb, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Mshvsfj1)
-STD_ROM_FN(Mshvsfj1)
-
-static struct BurnRomInfo Mshvsfj2RomDesc[] = {
- { "mvsj.03g", 0x080000, 0xfdfa7e26, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvsj.04g", 0x080000, 0xc921825f, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvs.05a", 0x080000, 0x1a5de0cb, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvs.06a", 0x080000, 0x959f3030, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvs.07b", 0x080000, 0x7f915bdb, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvs.08a", 0x080000, 0xc2813884, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvs.09b", 0x080000, 0x3ba08818, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvs.10b", 0x080000, 0xcf0dba98, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "mvs.13m", 0x400000, 0x29b05fd9, CPS2_GFX | BRF_GRA },
- { "mvs.15m", 0x400000, 0xfaddccf1, CPS2_GFX | BRF_GRA },
- { "mvs.17m", 0x400000, 0x97aaf4c7, CPS2_GFX | BRF_GRA },
- { "mvs.19m", 0x400000, 0xcb70e915, CPS2_GFX | BRF_GRA },
- { "mvs.14m", 0x400000, 0xb3b1972d, CPS2_GFX | BRF_GRA },
- { "mvs.16m", 0x400000, 0x08aadb5d, CPS2_GFX | BRF_GRA },
- { "mvs.18m", 0x400000, 0xc1228b35, CPS2_GFX | BRF_GRA },
- { "mvs.20m", 0x400000, 0x366cc6c2, CPS2_GFX | BRF_GRA },
-
- { "mvs.01", 0x020000, 0x68252324, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "mvs.02", 0x020000, 0xb34e773d, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "mvs.11m", 0x400000, 0x86219770, CPS2_QSND | BRF_SND },
- { "mvs.12m", 0x400000, 0xf2fd7f68, CPS2_QSND | BRF_SND },
-
- { "mshvsfj.key", 0x000014, 0x565eeebb, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Mshvsfj2)
-STD_ROM_FN(Mshvsfj2)
-
-static struct BurnRomInfo MshvsfuRomDesc[] = {
- { "mvsu.03g", 0x080000, 0x0664ab15, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvsu.04g", 0x080000, 0x97e060ee, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvs.05d", 0x080000, 0x921fc542, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvs.06a", 0x080000, 0x959f3030, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvs.07b", 0x080000, 0x7f915bdb, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvs.08a", 0x080000, 0xc2813884, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvs.09b", 0x080000, 0x3ba08818, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvs.10b", 0x080000, 0xcf0dba98, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "mvs.13m", 0x400000, 0x29b05fd9, CPS2_GFX | BRF_GRA },
- { "mvs.15m", 0x400000, 0xfaddccf1, CPS2_GFX | BRF_GRA },
- { "mvs.17m", 0x400000, 0x97aaf4c7, CPS2_GFX | BRF_GRA },
- { "mvs.19m", 0x400000, 0xcb70e915, CPS2_GFX | BRF_GRA },
- { "mvs.14m", 0x400000, 0xb3b1972d, CPS2_GFX | BRF_GRA },
- { "mvs.16m", 0x400000, 0x08aadb5d, CPS2_GFX | BRF_GRA },
- { "mvs.18m", 0x400000, 0xc1228b35, CPS2_GFX | BRF_GRA },
- { "mvs.20m", 0x400000, 0x366cc6c2, CPS2_GFX | BRF_GRA },
-
- { "mvs.01", 0x020000, 0x68252324, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "mvs.02", 0x020000, 0xb34e773d, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "mvs.11m", 0x400000, 0x86219770, CPS2_QSND | BRF_SND },
- { "mvs.12m", 0x400000, 0xf2fd7f68, CPS2_QSND | BRF_SND },
-
- { "mshvsfu.key", 0x000014, 0x4c04797b, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Mshvsfu)
-STD_ROM_FN(Mshvsfu)
-
-static struct BurnRomInfo Mshvsfu1RomDesc[] = {
- { "mvsu.03d", 0x080000, 0xae60a66a, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvsu.04d", 0x080000, 0x91f67d8a, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvs.05a", 0x080000, 0x1a5de0cb, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvs.06a", 0x080000, 0x959f3030, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvs.07b", 0x080000, 0x7f915bdb, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvs.08a", 0x080000, 0xc2813884, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvs.09b", 0x080000, 0x3ba08818, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvs.10b", 0x080000, 0xcf0dba98, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "mvs.13m", 0x400000, 0x29b05fd9, CPS2_GFX | BRF_GRA },
- { "mvs.15m", 0x400000, 0xfaddccf1, CPS2_GFX | BRF_GRA },
- { "mvs.17m", 0x400000, 0x97aaf4c7, CPS2_GFX | BRF_GRA },
- { "mvs.19m", 0x400000, 0xcb70e915, CPS2_GFX | BRF_GRA },
- { "mvs.14m", 0x400000, 0xb3b1972d, CPS2_GFX | BRF_GRA },
- { "mvs.16m", 0x400000, 0x08aadb5d, CPS2_GFX | BRF_GRA },
- { "mvs.18m", 0x400000, 0xc1228b35, CPS2_GFX | BRF_GRA },
- { "mvs.20m", 0x400000, 0x366cc6c2, CPS2_GFX | BRF_GRA },
-
- { "mvs.01", 0x020000, 0x68252324, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "mvs.02", 0x020000, 0xb34e773d, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "mvs.11m", 0x400000, 0x86219770, CPS2_QSND | BRF_SND },
- { "mvs.12m", 0x400000, 0xf2fd7f68, CPS2_QSND | BRF_SND },
-
- { "mshvsfu.key", 0x000014, 0x4c04797b, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Mshvsfu1)
-STD_ROM_FN(Mshvsfu1)
-
-static struct BurnRomInfo MvscRomDesc[] = {
- { "mvce.03a", 0x080000, 0x824e4a90, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvce.04a", 0x080000, 0x436c5a4e, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvc.05a", 0x080000, 0x2d8c8e86, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvc.06a", 0x080000, 0x8528e1f5, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvc.07", 0x080000, 0xc3baa32b, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvc.08", 0x080000, 0xbc002fcd, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvc.09", 0x080000, 0xc67b26df, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvc.10", 0x080000, 0x0fdd1e26, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "mvc.13m", 0x400000, 0xfa5f74bc, CPS2_GFX | BRF_GRA },
- { "mvc.15m", 0x400000, 0x71938a8f, CPS2_GFX | BRF_GRA },
- { "mvc.17m", 0x400000, 0x92741d07, CPS2_GFX | BRF_GRA },
- { "mvc.19m", 0x400000, 0xbcb72fc6, CPS2_GFX | BRF_GRA },
- { "mvc.14m", 0x400000, 0x7f1df4e4, CPS2_GFX | BRF_GRA },
- { "mvc.16m", 0x400000, 0x90bd3203, CPS2_GFX | BRF_GRA },
- { "mvc.18m", 0x400000, 0x67aaf727, CPS2_GFX | BRF_GRA },
- { "mvc.20m", 0x400000, 0x8b0bade8, CPS2_GFX | BRF_GRA },
-
- { "mvc.01", 0x020000, 0x41629e95, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "mvc.02", 0x020000, 0x963abf6b, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "mvc.11m", 0x400000, 0x850fe663, CPS2_QSND | BRF_SND },
- { "mvc.12m", 0x400000, 0x7ccb1896, CPS2_QSND | BRF_SND },
-
- { "mvsc.key", 0x000014, 0x7e101e09, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Mvsc)
-STD_ROM_FN(Mvsc)
-
-static struct BurnRomInfo Mvscr1RomDesc[] = {
- { "mvce.03", 0x080000, 0xe0633fc0, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvce.04", 0x080000, 0xa450a251, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvc.05", 0x080000, 0x7db71ce9, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvc.06", 0x080000, 0x4b0b6d3e, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvc.07", 0x080000, 0xc3baa32b, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvc.08", 0x080000, 0xbc002fcd, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvc.09", 0x080000, 0xc67b26df, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvc.10", 0x080000, 0x0fdd1e26, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "mvc.13m", 0x400000, 0xfa5f74bc, CPS2_GFX | BRF_GRA },
- { "mvc.15m", 0x400000, 0x71938a8f, CPS2_GFX | BRF_GRA },
- { "mvc.17m", 0x400000, 0x92741d07, CPS2_GFX | BRF_GRA },
- { "mvc.19m", 0x400000, 0xbcb72fc6, CPS2_GFX | BRF_GRA },
- { "mvc.14m", 0x400000, 0x7f1df4e4, CPS2_GFX | BRF_GRA },
- { "mvc.16m", 0x400000, 0x90bd3203, CPS2_GFX | BRF_GRA },
- { "mvc.18m", 0x400000, 0x67aaf727, CPS2_GFX | BRF_GRA },
- { "mvc.20m", 0x400000, 0x8b0bade8, CPS2_GFX | BRF_GRA },
-
- { "mvc.01", 0x020000, 0x41629e95, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "mvc.02", 0x020000, 0x963abf6b, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "mvc.11m", 0x400000, 0x850fe663, CPS2_QSND | BRF_SND },
- { "mvc.12m", 0x400000, 0x7ccb1896, CPS2_QSND | BRF_SND },
-
- { "mvsc.key", 0x000014, 0x7e101e09, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Mvscr1)
-STD_ROM_FN(Mvscr1)
-
-static struct BurnRomInfo MvscaRomDesc[] = {
- { "mvca.03a", 0x080000, 0x2ff4ae25, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvca.04a", 0x080000, 0xf28427ef, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvc.05a", 0x080000, 0x2d8c8e86, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvc.06a", 0x080000, 0x8528e1f5, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvc.07", 0x080000, 0xc3baa32b, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvc.08", 0x080000, 0xbc002fcd, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvc.09", 0x080000, 0xc67b26df, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvc.10", 0x080000, 0x0fdd1e26, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "mvc.13m", 0x400000, 0xfa5f74bc, CPS2_GFX | BRF_GRA },
- { "mvc.15m", 0x400000, 0x71938a8f, CPS2_GFX | BRF_GRA },
- { "mvc.17m", 0x400000, 0x92741d07, CPS2_GFX | BRF_GRA },
- { "mvc.19m", 0x400000, 0xbcb72fc6, CPS2_GFX | BRF_GRA },
- { "mvc.14m", 0x400000, 0x7f1df4e4, CPS2_GFX | BRF_GRA },
- { "mvc.16m", 0x400000, 0x90bd3203, CPS2_GFX | BRF_GRA },
- { "mvc.18m", 0x400000, 0x67aaf727, CPS2_GFX | BRF_GRA },
- { "mvc.20m", 0x400000, 0x8b0bade8, CPS2_GFX | BRF_GRA },
-
- { "mvc.01", 0x020000, 0x41629e95, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "mvc.02", 0x020000, 0x963abf6b, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "mvc.11m", 0x400000, 0x850fe663, CPS2_QSND | BRF_SND },
- { "mvc.12m", 0x400000, 0x7ccb1896, CPS2_QSND | BRF_SND },
-
- { "mvsca.key", 0x000014, 0x31edaee8, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Mvsca)
-STD_ROM_FN(Mvsca)
-
-static struct BurnRomInfo Mvscar1RomDesc[] = {
- { "mvca.03", 0x080000, 0xfe5fa7b9, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvca.04", 0x080000, 0x082b701c, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvc.05", 0x080000, 0x7db71ce9, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvc.06", 0x080000, 0x4b0b6d3e, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvc.07", 0x080000, 0xc3baa32b, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvc.08", 0x080000, 0xbc002fcd, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvc.09", 0x080000, 0xc67b26df, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvc.10", 0x080000, 0x0fdd1e26, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "mvc.13m", 0x400000, 0xfa5f74bc, CPS2_GFX | BRF_GRA },
- { "mvc.15m", 0x400000, 0x71938a8f, CPS2_GFX | BRF_GRA },
- { "mvc.17m", 0x400000, 0x92741d07, CPS2_GFX | BRF_GRA },
- { "mvc.19m", 0x400000, 0xbcb72fc6, CPS2_GFX | BRF_GRA },
- { "mvc.14m", 0x400000, 0x7f1df4e4, CPS2_GFX | BRF_GRA },
- { "mvc.16m", 0x400000, 0x90bd3203, CPS2_GFX | BRF_GRA },
- { "mvc.18m", 0x400000, 0x67aaf727, CPS2_GFX | BRF_GRA },
- { "mvc.20m", 0x400000, 0x8b0bade8, CPS2_GFX | BRF_GRA },
-
- { "mvc.01", 0x020000, 0x41629e95, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "mvc.02", 0x020000, 0x963abf6b, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "mvc.11m", 0x400000, 0x850fe663, CPS2_QSND | BRF_SND },
- { "mvc.12m", 0x400000, 0x7ccb1896, CPS2_QSND | BRF_SND },
-
- { "mvsca.key", 0x000014, 0x31edaee8, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Mvscar1)
-STD_ROM_FN(Mvscar1)
-
-static struct BurnRomInfo MvscbRomDesc[] = {
- { "mvcb.03a", 0x080000, 0x7155953b, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvcb.04a", 0x080000, 0xfb117d0e, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvc.05a", 0x080000, 0x2d8c8e86, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvc.06a", 0x080000, 0x8528e1f5, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvc.07", 0x080000, 0xc3baa32b, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvc.08", 0x080000, 0xbc002fcd, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvc.09", 0x080000, 0xc67b26df, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvc.10", 0x080000, 0x0fdd1e26, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "mvc.13m", 0x400000, 0xfa5f74bc, CPS2_GFX | BRF_GRA },
- { "mvc.15m", 0x400000, 0x71938a8f, CPS2_GFX | BRF_GRA },
- { "mvc.17m", 0x400000, 0x92741d07, CPS2_GFX | BRF_GRA },
- { "mvc.19m", 0x400000, 0xbcb72fc6, CPS2_GFX | BRF_GRA },
- { "mvc.14m", 0x400000, 0x7f1df4e4, CPS2_GFX | BRF_GRA },
- { "mvc.16m", 0x400000, 0x90bd3203, CPS2_GFX | BRF_GRA },
- { "mvc.18m", 0x400000, 0x67aaf727, CPS2_GFX | BRF_GRA },
- { "mvc.20m", 0x400000, 0x8b0bade8, CPS2_GFX | BRF_GRA },
-
- { "mvc.01", 0x020000, 0x41629e95, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "mvc.02", 0x020000, 0x963abf6b, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "mvc.11m", 0x400000, 0x850fe663, CPS2_QSND | BRF_SND },
- { "mvc.12m", 0x400000, 0x7ccb1896, CPS2_QSND | BRF_SND },
-
- { "mvscb.key", 0x000014, 0xd74a7a3d, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Mvscb)
-STD_ROM_FN(Mvscb)
-
-static struct BurnRomInfo MvschRomDesc[] = {
- { "mvch.03", 0x080000, 0x6a0ec9f7, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvch.04", 0x080000, 0x00f03fa4, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvc.05a", 0x080000, 0x2d8c8e86, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvc.06a", 0x080000, 0x8528e1f5, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvc.07", 0x080000, 0xc3baa32b, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvc.08", 0x080000, 0xbc002fcd, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvc.09", 0x080000, 0xc67b26df, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvc.10", 0x080000, 0x0fdd1e26, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "mvc.13m", 0x400000, 0xfa5f74bc, CPS2_GFX | BRF_GRA },
- { "mvc.15m", 0x400000, 0x71938a8f, CPS2_GFX | BRF_GRA },
- { "mvc.17m", 0x400000, 0x92741d07, CPS2_GFX | BRF_GRA },
- { "mvc.19m", 0x400000, 0xbcb72fc6, CPS2_GFX | BRF_GRA },
- { "mvc.14m", 0x400000, 0x7f1df4e4, CPS2_GFX | BRF_GRA },
- { "mvc.16m", 0x400000, 0x90bd3203, CPS2_GFX | BRF_GRA },
- { "mvc.18m", 0x400000, 0x67aaf727, CPS2_GFX | BRF_GRA },
- { "mvc.20m", 0x400000, 0x8b0bade8, CPS2_GFX | BRF_GRA },
-
- { "mvc.01", 0x020000, 0x41629e95, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "mvc.02", 0x020000, 0x963abf6b, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "mvc.11m", 0x400000, 0x850fe663, CPS2_QSND | BRF_SND },
- { "mvc.12m", 0x400000, 0x7ccb1896, CPS2_QSND | BRF_SND },
-
- { "mvsch.key", 0x000014, 0xdd647c0d, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Mvsch)
-STD_ROM_FN(Mvsch)
-
-static struct BurnRomInfo MvscjRomDesc[] = {
- { "mvcj.03a", 0x080000, 0x3df18879, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvcj.04a", 0x080000, 0x07d212e8, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvc.05a", 0x080000, 0x2d8c8e86, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvc.06a", 0x080000, 0x8528e1f5, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvc.07", 0x080000, 0xc3baa32b, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvc.08", 0x080000, 0xbc002fcd, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvc.09", 0x080000, 0xc67b26df, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvc.10", 0x080000, 0x0fdd1e26, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "mvc.13m", 0x400000, 0xfa5f74bc, CPS2_GFX | BRF_GRA },
- { "mvc.15m", 0x400000, 0x71938a8f, CPS2_GFX | BRF_GRA },
- { "mvc.17m", 0x400000, 0x92741d07, CPS2_GFX | BRF_GRA },
- { "mvc.19m", 0x400000, 0xbcb72fc6, CPS2_GFX | BRF_GRA },
- { "mvc.14m", 0x400000, 0x7f1df4e4, CPS2_GFX | BRF_GRA },
- { "mvc.16m", 0x400000, 0x90bd3203, CPS2_GFX | BRF_GRA },
- { "mvc.18m", 0x400000, 0x67aaf727, CPS2_GFX | BRF_GRA },
- { "mvc.20m", 0x400000, 0x8b0bade8, CPS2_GFX | BRF_GRA },
-
- { "mvc.01", 0x020000, 0x41629e95, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "mvc.02", 0x020000, 0x963abf6b, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "mvc.11m", 0x400000, 0x850fe663, CPS2_QSND | BRF_SND },
- { "mvc.12m", 0x400000, 0x7ccb1896, CPS2_QSND | BRF_SND },
-
- { "mvscj.key", 0x000014, 0x9dedbcaf, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Mvscj)
-STD_ROM_FN(Mvscj)
-
-static struct BurnRomInfo Mvscjr1RomDesc[] = {
- { "mvcj.03", 0x080000, 0x2164213f, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvcj.04", 0x080000, 0xc905c86f, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvc.05", 0x080000, 0x7db71ce9, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvc.06", 0x080000, 0x4b0b6d3e, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvc.07", 0x080000, 0xc3baa32b, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvc.08", 0x080000, 0xbc002fcd, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvc.09", 0x080000, 0xc67b26df, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvc.10", 0x080000, 0x0fdd1e26, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "mvc.13m", 0x400000, 0xfa5f74bc, CPS2_GFX | BRF_GRA },
- { "mvc.15m", 0x400000, 0x71938a8f, CPS2_GFX | BRF_GRA },
- { "mvc.17m", 0x400000, 0x92741d07, CPS2_GFX | BRF_GRA },
- { "mvc.19m", 0x400000, 0xbcb72fc6, CPS2_GFX | BRF_GRA },
- { "mvc.14m", 0x400000, 0x7f1df4e4, CPS2_GFX | BRF_GRA },
- { "mvc.16m", 0x400000, 0x90bd3203, CPS2_GFX | BRF_GRA },
- { "mvc.18m", 0x400000, 0x67aaf727, CPS2_GFX | BRF_GRA },
- { "mvc.20m", 0x400000, 0x8b0bade8, CPS2_GFX | BRF_GRA },
-
- { "mvc.01", 0x020000, 0x41629e95, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "mvc.02", 0x020000, 0x963abf6b, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "mvc.11m", 0x400000, 0x850fe663, CPS2_QSND | BRF_SND },
- { "mvc.12m", 0x400000, 0x7ccb1896, CPS2_QSND | BRF_SND },
-
- { "mvscj.key", 0x000014, 0x9dedbcaf, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Mvscjr1)
-STD_ROM_FN(Mvscjr1)
-
-static struct BurnRomInfo MvscuRomDesc[] = {
- { "mvcu.03d", 0x080000, 0xc6007557, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvcu.04d", 0x080000, 0x724b2b20, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvc.05a", 0x080000, 0x2d8c8e86, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvc.06a", 0x080000, 0x8528e1f5, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvc.07", 0x080000, 0xc3baa32b, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvc.08", 0x080000, 0xbc002fcd, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvc.09", 0x080000, 0xc67b26df, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvc.10", 0x080000, 0x0fdd1e26, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "mvc.13m", 0x400000, 0xfa5f74bc, CPS2_GFX | BRF_GRA },
- { "mvc.15m", 0x400000, 0x71938a8f, CPS2_GFX | BRF_GRA },
- { "mvc.17m", 0x400000, 0x92741d07, CPS2_GFX | BRF_GRA },
- { "mvc.19m", 0x400000, 0xbcb72fc6, CPS2_GFX | BRF_GRA },
- { "mvc.14m", 0x400000, 0x7f1df4e4, CPS2_GFX | BRF_GRA },
- { "mvc.16m", 0x400000, 0x90bd3203, CPS2_GFX | BRF_GRA },
- { "mvc.18m", 0x400000, 0x67aaf727, CPS2_GFX | BRF_GRA },
- { "mvc.20m", 0x400000, 0x8b0bade8, CPS2_GFX | BRF_GRA },
-
- { "mvc.01", 0x020000, 0x41629e95, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "mvc.02", 0x020000, 0x963abf6b, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "mvc.11m", 0x400000, 0x850fe663, CPS2_QSND | BRF_SND },
- { "mvc.12m", 0x400000, 0x7ccb1896, CPS2_QSND | BRF_SND },
-
- { "mvscu.key", 0x000014, 0xa83db333, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Mvscu)
-STD_ROM_FN(Mvscu)
-
-static struct BurnRomInfo Mvscur1RomDesc[] = {
- { "mvcu.03", 0x080000, 0x13f2be57, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvcu.04", 0x080000, 0x5e9b380d, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvcu.05", 0x080000, 0x12f321be, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvcu.06", 0x080000, 0x2f1524bc, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvcu.07", 0x080000, 0x5fdecadb, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvc.08", 0x080000, 0xbc002fcd, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvc.09", 0x080000, 0xc67b26df, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvcu.10", 0x080000, 0x4f36cd63, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "mvc.13m", 0x400000, 0xfa5f74bc, CPS2_GFX | BRF_GRA },
- { "mvc.15m", 0x400000, 0x71938a8f, CPS2_GFX | BRF_GRA },
- { "mvc.17m", 0x400000, 0x92741d07, CPS2_GFX | BRF_GRA },
- { "mvc.19m", 0x400000, 0xbcb72fc6, CPS2_GFX | BRF_GRA },
- { "mvc.14m", 0x400000, 0x7f1df4e4, CPS2_GFX | BRF_GRA },
- { "mvc.16m", 0x400000, 0x90bd3203, CPS2_GFX | BRF_GRA },
- { "mvc.18m", 0x400000, 0x67aaf727, CPS2_GFX | BRF_GRA },
- { "mvc.20m", 0x400000, 0x8b0bade8, CPS2_GFX | BRF_GRA },
-
- { "mvc.01", 0x020000, 0x41629e95, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "mvc.02", 0x020000, 0x963abf6b, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "mvc.11m", 0x400000, 0x850fe663, CPS2_QSND | BRF_SND },
- { "mvc.12m", 0x400000, 0x7ccb1896, CPS2_QSND | BRF_SND },
-
- { "mvscu.key", 0x000014, 0xa83db333, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Mvscur1)
-STD_ROM_FN(Mvscur1)
-
-static struct BurnRomInfo MvscjsingRomDesc[] = {
- { "mvc_ja.simm1", 0x200000, 0x6a2ef7c2, CPS2_PRG_68K_SIMM | BRF_ESS | BRF_PRG },
- { "mvc_ja.simm3", 0x200000, 0x699d09ad, CPS2_PRG_68K_SIMM | BRF_ESS | BRF_PRG },
-
- { "mvc64-13m.13", 0x800000, 0x8428ce69, CPS2_GFX | BRF_GRA },
- { "mvc64-15m.15", 0x800000, 0x2e0028f4, CPS2_GFX | BRF_GRA },
- { "mvc64-17m.17", 0x800000, 0x308ca826, CPS2_GFX | BRF_GRA },
- { "mvc64-19m.19", 0x800000, 0x10699fe1, CPS2_GFX | BRF_GRA },
-
- { "mvc.01", 0x020000, 0x41629e95, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "mvc.02", 0x020000, 0x963abf6b, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "mvc64-11m.11", 0x800000, 0x5d8819e0, CPS2_QSND | BRF_SND },
-
- { "mvscj.key", 0x000014, 0x9dedbcaf, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Mvscjsing)
-STD_ROM_FN(Mvscjsing)
-
-static struct BurnRomInfo NwarrRomDesc[] = {
- { "vphe.03f", 0x080000, 0xa922c44f, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vphe.04c", 0x080000, 0x7312d890, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vphe.05d", 0x080000, 0xcde8b506, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vphe.06c", 0x080000, 0xbe99e7d0, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vphe.07b", 0x080000, 0x69e0e60c, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vphe.08b", 0x080000, 0xd95a3849, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vphe.09b", 0x080000, 0x9882561c, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vphe.10b", 0x080000, 0x976fa62f, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "vph.13m", 0x400000, 0xc51baf99, CPS2_GFX | BRF_GRA },
- { "vph.15m", 0x400000, 0x3ce83c77, CPS2_GFX | BRF_GRA },
- { "vph.17m", 0x400000, 0x4f2408e0, CPS2_GFX | BRF_GRA },
- { "vph.19m", 0x400000, 0x9ff60250, CPS2_GFX | BRF_GRA },
- { "vph.14m", 0x400000, 0x7a0e1add, CPS2_GFX | BRF_GRA },
- { "vph.16m", 0x400000, 0x2f41ca75, CPS2_GFX | BRF_GRA },
- { "vph.18m", 0x400000, 0x64498eed, CPS2_GFX | BRF_GRA },
- { "vph.20m", 0x400000, 0x17f2433f, CPS2_GFX | BRF_GRA },
-
- { "vph.01", 0x020000, 0x5045dcac, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "vph.02", 0x020000, 0x86b60e59, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "vph.11m", 0x200000, 0xe1837d33, CPS2_QSND | BRF_SND },
- { "vph.12m", 0x200000, 0xfbd3cd90, CPS2_QSND | BRF_SND },
-
- { "nwarr.key", 0x000014, 0x618a13ca, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Nwarr)
-STD_ROM_FN(Nwarr)
-
-static struct BurnRomInfo NwarraRomDesc[] = {
- { "vpha.03b", 0x080000, 0x0a70cdd6, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vpha.04b", 0x080000, 0x70ce62e4, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vpha.05b", 0x080000, 0x5692a03f, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vpha.06b", 0x080000, 0xb810fe66, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vpha.07b", 0x080000, 0x1be264f3, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vpha.08b", 0x080000, 0x86f1ed52, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vpha.09b", 0x080000, 0x7e96bd0a, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vpha.10b", 0x080000, 0x58bce2fd, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "vph.13m", 0x400000, 0xc51baf99, CPS2_GFX | BRF_GRA },
- { "vph.15m", 0x400000, 0x3ce83c77, CPS2_GFX | BRF_GRA },
- { "vph.17m", 0x400000, 0x4f2408e0, CPS2_GFX | BRF_GRA },
- { "vph.19m", 0x400000, 0x9ff60250, CPS2_GFX | BRF_GRA },
- { "vph.14m", 0x400000, 0x7a0e1add, CPS2_GFX | BRF_GRA },
- { "vph.16m", 0x400000, 0x2f41ca75, CPS2_GFX | BRF_GRA },
- { "vph.18m", 0x400000, 0x64498eed, CPS2_GFX | BRF_GRA },
- { "vph.20m", 0x400000, 0x17f2433f, CPS2_GFX | BRF_GRA },
-
- { "vph.01", 0x020000, 0x5045dcac, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "vph.02", 0x020000, 0x86b60e59, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "vph.11m", 0x200000, 0xe1837d33, CPS2_QSND | BRF_SND },
- { "vph.12m", 0x200000, 0xfbd3cd90, CPS2_QSND | BRF_SND },
-
- { "nwarra.key", 0x000014, 0x9bafff67, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Nwarra)
-STD_ROM_FN(Nwarra)
-
-static struct BurnRomInfo NwarrbRomDesc[] = {
- { "vphb.03d", 0x080000, 0x3a426d3f, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vphb.04a", 0x080000, 0x51c4bb2f, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vphb.05c", 0x080000, 0xac44d997, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vphb.06a", 0x080000, 0x5072a5fe, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vphb.07", 0x080000, 0x9b355192, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vphb.08", 0x080000, 0x42220f84, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vphb.09", 0x080000, 0x029e015d, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vphb.10", 0x080000, 0x37b3ce37, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "vph.13m", 0x400000, 0xc51baf99, CPS2_GFX | BRF_GRA },
- { "vph.15m", 0x400000, 0x3ce83c77, CPS2_GFX | BRF_GRA },
- { "vph.17m", 0x400000, 0x4f2408e0, CPS2_GFX | BRF_GRA },
- { "vph.19m", 0x400000, 0x9ff60250, CPS2_GFX | BRF_GRA },
- { "vph.14m", 0x400000, 0x7a0e1add, CPS2_GFX | BRF_GRA },
- { "vph.16m", 0x400000, 0x2f41ca75, CPS2_GFX | BRF_GRA },
- { "vph.18m", 0x400000, 0x64498eed, CPS2_GFX | BRF_GRA },
- { "vph.20m", 0x400000, 0x17f2433f, CPS2_GFX | BRF_GRA },
-
- { "vph.01", 0x020000, 0x5045dcac, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "vph.02", 0x020000, 0x86b60e59, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "vph.11m", 0x200000, 0xe1837d33, CPS2_QSND | BRF_SND },
- { "vph.12m", 0x200000, 0xfbd3cd90, CPS2_QSND | BRF_SND },
-
- { "nwarrb.key", 0x000014, 0x4ffc0a54, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Nwarrb)
-STD_ROM_FN(Nwarrb)
-
-static struct BurnRomInfo NwarrhRomDesc[] = {
- { "vphh.03d", 0x080000, 0x6029c7be, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vphh.04a", 0x080000, 0xd26625ee, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vphh.05c", 0x080000, 0x73ee0b8a, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vphh.06a", 0x080000, 0xa5b3a50a, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vphh.07", 0x080000, 0x5fc2bdc1, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vphh.08", 0x080000, 0xe65588d9, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vphh.09", 0x080000, 0xa2ce6d63, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vphh.10", 0x080000, 0xe2f4f4b9, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "vph.13m", 0x400000, 0xc51baf99, CPS2_GFX | BRF_GRA },
- { "vph.15m", 0x400000, 0x3ce83c77, CPS2_GFX | BRF_GRA },
- { "vph.17m", 0x400000, 0x4f2408e0, CPS2_GFX | BRF_GRA },
- { "vph.19m", 0x400000, 0x9ff60250, CPS2_GFX | BRF_GRA },
- { "vph.14m", 0x400000, 0x7a0e1add, CPS2_GFX | BRF_GRA },
- { "vph.16m", 0x400000, 0x2f41ca75, CPS2_GFX | BRF_GRA },
- { "vph.18m", 0x400000, 0x64498eed, CPS2_GFX | BRF_GRA },
- { "vph.20m", 0x400000, 0x17f2433f, CPS2_GFX | BRF_GRA },
-
- { "vph.01", 0x020000, 0x5045dcac, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "vph.02", 0x020000, 0x86b60e59, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "vph.11m", 0x200000, 0xe1837d33, CPS2_QSND | BRF_SND },
- { "vph.12m", 0x200000, 0xfbd3cd90, CPS2_QSND | BRF_SND },
-
- { "nwarrh.key", 0x000014, 0x5fb16b23, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Nwarrh)
-STD_ROM_FN(Nwarrh)
-
-static struct BurnRomInfo NwarruRomDesc[] = {
- { "vphu.03f", 0x080000, 0x85d6a359, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vphu.04c", 0x080000, 0xcb7fce77, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vphu.05e", 0x080000, 0xe08f2bba, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vphu.06c", 0x080000, 0x08c04cdb, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vphu.07b", 0x080000, 0xb5a5ab19, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vphu.08b", 0x080000, 0x51bb20fb, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vphu.09b", 0x080000, 0x41a64205, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vphu.10b", 0x080000, 0x2b1d43ae, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "vph.13m", 0x400000, 0xc51baf99, CPS2_GFX | BRF_GRA },
- { "vph.15m", 0x400000, 0x3ce83c77, CPS2_GFX | BRF_GRA },
- { "vph.17m", 0x400000, 0x4f2408e0, CPS2_GFX | BRF_GRA },
- { "vph.19m", 0x400000, 0x9ff60250, CPS2_GFX | BRF_GRA },
- { "vph.14m", 0x400000, 0x7a0e1add, CPS2_GFX | BRF_GRA },
- { "vph.16m", 0x400000, 0x2f41ca75, CPS2_GFX | BRF_GRA },
- { "vph.18m", 0x400000, 0x64498eed, CPS2_GFX | BRF_GRA },
- { "vph.20m", 0x400000, 0x17f2433f, CPS2_GFX | BRF_GRA },
-
- { "vph.01", 0x020000, 0x5045dcac, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "vph.02", 0x020000, 0x86b60e59, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "vph.11m", 0x200000, 0xe1837d33, CPS2_QSND | BRF_SND },
- { "vph.12m", 0x200000, 0xfbd3cd90, CPS2_QSND | BRF_SND },
-
- { "nwarru.key", 0x000014, 0x1c593f9b, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Nwarru)
-STD_ROM_FN(Nwarru)
-
-static struct BurnRomInfo VhuntjRomDesc[] = {
- { "vphj.03f", 0x080000, 0x3de2e333, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vphj.04c", 0x080000, 0xc95cf304, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vphj.05d", 0x080000, 0x50de5ddd, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vphj.06c", 0x080000, 0xac3bd3d5, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vphj.07b", 0x080000, 0x0761309f, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vphj.08b", 0x080000, 0x5a5c2bf5, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vphj.09b", 0x080000, 0x823d6d99, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vphj.10b", 0x080000, 0x32c7d8f0, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "vph.13m", 0x400000, 0xc51baf99, CPS2_GFX | BRF_GRA },
- { "vph.15m", 0x400000, 0x3ce83c77, CPS2_GFX | BRF_GRA },
- { "vph.17m", 0x400000, 0x4f2408e0, CPS2_GFX | BRF_GRA },
- { "vph.19m", 0x400000, 0x9ff60250, CPS2_GFX | BRF_GRA },
- { "vph.14m", 0x400000, 0x7a0e1add, CPS2_GFX | BRF_GRA },
- { "vph.16m", 0x400000, 0x2f41ca75, CPS2_GFX | BRF_GRA },
- { "vph.18m", 0x400000, 0x64498eed, CPS2_GFX | BRF_GRA },
- { "vph.20m", 0x400000, 0x17f2433f, CPS2_GFX | BRF_GRA },
-
- { "vph.01", 0x020000, 0x5045dcac, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "vph.02", 0x020000, 0x86b60e59, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "vph.11m", 0x200000, 0xe1837d33, CPS2_QSND | BRF_SND },
- { "vph.12m", 0x200000, 0xfbd3cd90, CPS2_QSND | BRF_SND },
-
- { "vhuntj.key", 0x000014, 0x72854f68, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Vhuntj)
-STD_ROM_FN(Vhuntj)
-
-static struct BurnRomInfo Vhuntjr1sRomDesc[] = {
- { "vphjstop.03b", 0x080000, 0x9c4e6191, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vphj.04c", 0x080000, 0xc95cf304, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vphj.05d", 0x080000, 0x50de5ddd, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vphj.06c", 0x080000, 0xac3bd3d5, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vphj.07b", 0x080000, 0x0761309f, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vphj.08b", 0x080000, 0x5a5c2bf5, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vphj.09b", 0x080000, 0x823d6d99, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vphj.10b", 0x080000, 0x32c7d8f0, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "vph.13m", 0x400000, 0xc51baf99, CPS2_GFX | BRF_GRA },
- { "vph.15m", 0x400000, 0x3ce83c77, CPS2_GFX | BRF_GRA },
- { "vph.17m", 0x400000, 0x4f2408e0, CPS2_GFX | BRF_GRA },
- { "vph.19m", 0x400000, 0x9ff60250, CPS2_GFX | BRF_GRA },
- { "vph.14m", 0x400000, 0x7a0e1add, CPS2_GFX | BRF_GRA },
- { "vph.16m", 0x400000, 0x2f41ca75, CPS2_GFX | BRF_GRA },
- { "vph.18m", 0x400000, 0x64498eed, CPS2_GFX | BRF_GRA },
- { "vph.20m", 0x400000, 0x17f2433f, CPS2_GFX | BRF_GRA },
-
- { "vph.01", 0x020000, 0x5045dcac, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "vph.02", 0x020000, 0x86b60e59, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "vph.11m", 0x200000, 0xe1837d33, CPS2_QSND | BRF_SND },
- { "vph.12m", 0x200000, 0xfbd3cd90, CPS2_QSND | BRF_SND },
-
- { "vhuntj.key", 0x000014, 0x72854f68, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Vhuntjr1s)
-STD_ROM_FN(Vhuntjr1s)
-
-static struct BurnRomInfo Vhuntjr1RomDesc[] = {
- { "vphj.03c", 0x080000, 0x606b682a, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vphj.04b", 0x080000, 0xa3b40393, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vphj.05b", 0x080000, 0xfccd5558, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vphj.06b", 0x080000, 0x07e10a73, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vphj.07b", 0x080000, 0x0761309f, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vphj.08b", 0x080000, 0x5a5c2bf5, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vphj.09b", 0x080000, 0x823d6d99, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vphj.10b", 0x080000, 0x32c7d8f0, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "vph.13m", 0x400000, 0xc51baf99, CPS2_GFX | BRF_GRA },
- { "vph.15m", 0x400000, 0x3ce83c77, CPS2_GFX | BRF_GRA },
- { "vph.17m", 0x400000, 0x4f2408e0, CPS2_GFX | BRF_GRA },
- { "vph.19m", 0x400000, 0x9ff60250, CPS2_GFX | BRF_GRA },
- { "vph.14m", 0x400000, 0x7a0e1add, CPS2_GFX | BRF_GRA },
- { "vph.16m", 0x400000, 0x2f41ca75, CPS2_GFX | BRF_GRA },
- { "vph.18m", 0x400000, 0x64498eed, CPS2_GFX | BRF_GRA },
- { "vph.20m", 0x400000, 0x17f2433f, CPS2_GFX | BRF_GRA },
-
- { "vph.01", 0x020000, 0x5045dcac, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "vph.02", 0x020000, 0x86b60e59, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "vph.11m", 0x200000, 0xe1837d33, CPS2_QSND | BRF_SND },
- { "vph.12m", 0x200000, 0xfbd3cd90, CPS2_QSND | BRF_SND },
-
- { "vhuntj.key", 0x000014, 0x72854f68, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Vhuntjr1)
-STD_ROM_FN(Vhuntjr1)
-
-static struct BurnRomInfo Vhuntjr2RomDesc[] = {
- { "vphj.03b", 0x080000, 0x679c3fa9, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vphj.04a", 0x080000, 0xeb6e71e4, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vphj.05a", 0x080000, 0xeaf634ea, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vphj.06a", 0x080000, 0xb70cc6be, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vphj.07a", 0x080000, 0x46ab907d, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vphj.08a", 0x080000, 0x1c00355e, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vphj.09a", 0x080000, 0x026e6f82, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vphj.10a", 0x080000, 0xaadfb3ea, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "vph.13m", 0x400000, 0xc51baf99, CPS2_GFX | BRF_GRA },
- { "vph.15m", 0x400000, 0x3ce83c77, CPS2_GFX | BRF_GRA },
- { "vph.17m", 0x400000, 0x4f2408e0, CPS2_GFX | BRF_GRA },
- { "vph.19m", 0x400000, 0x9ff60250, CPS2_GFX | BRF_GRA },
- { "vph.14m", 0x400000, 0x7a0e1add, CPS2_GFX | BRF_GRA },
- { "vph.16m", 0x400000, 0x2f41ca75, CPS2_GFX | BRF_GRA },
- { "vph.18m", 0x400000, 0x64498eed, CPS2_GFX | BRF_GRA },
- { "vph.20m", 0x400000, 0x17f2433f, CPS2_GFX | BRF_GRA },
-
- { "vph.01", 0x020000, 0x5045dcac, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "vph.02", 0x020000, 0x86b60e59, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "vph.11m", 0x200000, 0xe1837d33, CPS2_QSND | BRF_SND },
- { "vph.12m", 0x200000, 0xfbd3cd90, CPS2_QSND | BRF_SND },
-
- { "vhuntj.key", 0x000014, 0x72854f68, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Vhuntjr2)
-STD_ROM_FN(Vhuntjr2)
-
-static struct BurnRomInfo ProgearRomDesc[] = {
- { "pgau.03", 0x080000, 0x343a783e, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pgau.04", 0x080000, 0x16208d79, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "pga-simm.01c", 0x200000, 0x452f98b0, CPS2_GFX_SIMM | BRF_GRA },
- { "pga-simm.01d", 0x200000, 0x9e672092, CPS2_GFX_SIMM | BRF_GRA },
- { "pga-simm.01a", 0x200000, 0xae9ddafe, CPS2_GFX_SIMM | BRF_GRA },
- { "pga-simm.01b", 0x200000, 0x94d72D94, CPS2_GFX_SIMM | BRF_GRA },
- { "pga-simm.03c", 0x200000, 0x48a1886d, CPS2_GFX_SIMM | BRF_GRA },
- { "pga-simm.03d", 0x200000, 0x172d7e37, CPS2_GFX_SIMM | BRF_GRA },
- { "pga-simm.03a", 0x200000, 0x9ee33d98, CPS2_GFX_SIMM | BRF_GRA },
- { "pga-simm.03b", 0x200000, 0x848dee32, CPS2_GFX_SIMM | BRF_GRA },
-
- { "pga.01", 0x020000, 0xbdbfa992, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "pga-simm.05a", 0x200000, 0xc0aac80c, CPS2_QSND_SIMM | BRF_SND },
- { "pga-simm.05b", 0x200000, 0x37a65d86, CPS2_QSND_SIMM | BRF_SND },
- { "pga-simm.06a", 0x200000, 0xd3f1e934, CPS2_QSND_SIMM | BRF_SND },
- { "pga-simm.06b", 0x200000, 0x8b39489a, CPS2_QSND_SIMM | BRF_SND },
-
- { "progear.key", 0x000014, 0x46736b17, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Progear)
-STD_ROM_FN(Progear)
-
-static struct BurnRomInfo ProgearaRomDesc[] = {
- { "pgaa.03", 0x080000, 0x25e6e2ce, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pgaa.04", 0x080000, 0x8104307e, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "pga-simm.01c", 0x200000, 0x452f98b0, CPS2_GFX_SIMM | BRF_GRA },
- { "pga-simm.01d", 0x200000, 0x9e672092, CPS2_GFX_SIMM | BRF_GRA },
- { "pga-simm.01a", 0x200000, 0xae9ddafe, CPS2_GFX_SIMM | BRF_GRA },
- { "pga-simm.01b", 0x200000, 0x94d72D94, CPS2_GFX_SIMM | BRF_GRA },
- { "pga-simm.03c", 0x200000, 0x48a1886d, CPS2_GFX_SIMM | BRF_GRA },
- { "pga-simm.03d", 0x200000, 0x172d7e37, CPS2_GFX_SIMM | BRF_GRA },
- { "pga-simm.03a", 0x200000, 0x9ee33d98, CPS2_GFX_SIMM | BRF_GRA },
- { "pga-simm.03b", 0x200000, 0x848dee32, CPS2_GFX_SIMM | BRF_GRA },
-
- { "pga.01", 0x020000, 0xbdbfa992, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "pga-simm.05a", 0x200000, 0xc0aac80c, CPS2_QSND_SIMM | BRF_SND },
- { "pga-simm.05b", 0x200000, 0x37a65d86, CPS2_QSND_SIMM | BRF_SND },
- { "pga-simm.06a", 0x200000, 0xd3f1e934, CPS2_QSND_SIMM | BRF_SND },
- { "pga-simm.06b", 0x200000, 0x8b39489a, CPS2_QSND_SIMM | BRF_SND },
-
- { "progeara.key", 0x000014, 0x30a0fab6, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Progeara)
-STD_ROM_FN(Progeara)
-
-static struct BurnRomInfo ProgearjRomDesc[] = {
- { "pgaj.03", 0x080000, 0x06dbba54, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pgaj.04", 0x080000, 0xa1f1f1bc, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "pga-simm.01c", 0x200000, 0x452f98b0, CPS2_GFX_SIMM | BRF_GRA },
- { "pga-simm.01d", 0x200000, 0x9e672092, CPS2_GFX_SIMM | BRF_GRA },
- { "pga-simm.01a", 0x200000, 0xae9ddafe, CPS2_GFX_SIMM | BRF_GRA },
- { "pga-simm.01b", 0x200000, 0x94d72D94, CPS2_GFX_SIMM | BRF_GRA },
- { "pga-simm.03c", 0x200000, 0x48a1886d, CPS2_GFX_SIMM | BRF_GRA },
- { "pga-simm.03d", 0x200000, 0x172d7e37, CPS2_GFX_SIMM | BRF_GRA },
- { "pga-simm.03a", 0x200000, 0x9ee33d98, CPS2_GFX_SIMM | BRF_GRA },
- { "pga-simm.03b", 0x200000, 0x848dee32, CPS2_GFX_SIMM | BRF_GRA },
-
- { "pga.01", 0x020000, 0xbdbfa992, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "pga-simm.05a", 0x200000, 0xc0aac80c, CPS2_QSND_SIMM | BRF_SND },
- { "pga-simm.05b", 0x200000, 0x37a65d86, CPS2_QSND_SIMM | BRF_SND },
- { "pga-simm.06a", 0x200000, 0xd3f1e934, CPS2_QSND_SIMM | BRF_SND },
- { "pga-simm.06b", 0x200000, 0x8b39489a, CPS2_QSND_SIMM | BRF_SND },
-
- { "progearj.key", 0x000014, 0xd8d515e5, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Progearj)
-STD_ROM_FN(Progearj)
-
-static struct BurnRomInfo Pzloop2RomDesc[] = {
- { "pl2e.03", 0x080000, 0x3b1285b2, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pl2e.04", 0x080000, 0x40a2d647, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pl2e.05", 0x080000, 0x0f11d818, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pl2e.06", 0x080000, 0x86fbbdf4, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "pl2-simm.01c", 0x200000, 0x137b13a7, CPS2_GFX_SIMM | BRF_GRA },
- { "pl2-simm.01d", 0x200000, 0xa2db1507, CPS2_GFX_SIMM | BRF_GRA },
- { "pl2-simm.01a", 0x200000, 0x7e80ff8e, CPS2_GFX_SIMM | BRF_GRA },
- { "pl2-simm.01b", 0x200000, 0xcd93e6ed, CPS2_GFX_SIMM | BRF_GRA },
- { "pl2-simm.03c", 0x200000, 0x0f52bbca, CPS2_GFX_SIMM | BRF_GRA },
- { "pl2-simm.03d", 0x200000, 0xa62712c3, CPS2_GFX_SIMM | BRF_GRA },
- { "pl2-simm.03a", 0x200000, 0xb60c9f8e, CPS2_GFX_SIMM | BRF_GRA },
- { "pl2-simm.03b", 0x200000, 0x83fef284, CPS2_GFX_SIMM | BRF_GRA },
-
- { "pl2.01", 0x020000, 0x35697569, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "pl2-simm.05a", 0x200000, 0x85d8fbe8, CPS2_QSND_SIMM | BRF_SND },
- { "pl2-simm.05b", 0x200000, 0x1ed62584, CPS2_QSND_SIMM | BRF_SND },
-
- { "pzloop2.key", 0x000014, 0xae13be78, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Pzloop2)
-STD_ROM_FN(Pzloop2)
-
-static struct BurnRomInfo Pzloop2jRomDesc[] = {
- { "pl2j.03c", 0x080000, 0x3b76b806, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pl2j.04c", 0x080000, 0x8878a42a, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pl2j.05c", 0x080000, 0x51081ea4, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pl2j.06c", 0x080000, 0x51c68494, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "pl2-simm.01c", 0x200000, 0x137b13a7, CPS2_GFX_SIMM | BRF_GRA },
- { "pl2-simm.01d", 0x200000, 0xa2db1507, CPS2_GFX_SIMM | BRF_GRA },
- { "pl2-simm.01a", 0x200000, 0x7e80ff8e, CPS2_GFX_SIMM | BRF_GRA },
- { "pl2-simm.01b", 0x200000, 0xcd93e6ed, CPS2_GFX_SIMM | BRF_GRA },
- { "pl2-simm.03c", 0x200000, 0x0f52bbca, CPS2_GFX_SIMM | BRF_GRA },
- { "pl2-simm.03d", 0x200000, 0xa62712c3, CPS2_GFX_SIMM | BRF_GRA },
- { "pl2-simm.03a", 0x200000, 0xb60c9f8e, CPS2_GFX_SIMM | BRF_GRA },
- { "pl2-simm.03b", 0x200000, 0x83fef284, CPS2_GFX_SIMM | BRF_GRA },
-
- { "pl2.01", 0x020000, 0x35697569, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "pl2-simm.05a", 0x200000, 0x85d8fbe8, CPS2_QSND_SIMM | BRF_SND },
- { "pl2-simm.05b", 0x200000, 0x1ed62584, CPS2_QSND_SIMM | BRF_SND },
-
- { "pzloop2.key", 0x000014, 0xae13be78, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Pzloop2j)
-STD_ROM_FN(Pzloop2j)
-
-static struct BurnRomInfo Pzloop2jr1RomDesc[] = {
- { "pl2j.03a", 0x080000, 0x0a751bd0, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pl2j.04a", 0x080000, 0xc3f72afe, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pl2j.05a", 0x080000, 0x6ea9dbfc, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pl2j.06a", 0x080000, 0x0f14848d, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "pl2-simm.01c", 0x200000, 0x137b13a7, CPS2_GFX_SIMM | BRF_GRA },
- { "pl2-simm.01d", 0x200000, 0xa2db1507, CPS2_GFX_SIMM | BRF_GRA },
- { "pl2-simm.01a", 0x200000, 0x7e80ff8e, CPS2_GFX_SIMM | BRF_GRA },
- { "pl2-simm.01b", 0x200000, 0xcd93e6ed, CPS2_GFX_SIMM | BRF_GRA },
- { "pl2-simm.03c", 0x200000, 0x0f52bbca, CPS2_GFX_SIMM | BRF_GRA },
- { "pl2-simm.03d", 0x200000, 0xa62712c3, CPS2_GFX_SIMM | BRF_GRA },
- { "pl2-simm.03a", 0x200000, 0xb60c9f8e, CPS2_GFX_SIMM | BRF_GRA },
- { "pl2-simm.03b", 0x200000, 0x83fef284, CPS2_GFX_SIMM | BRF_GRA },
-
- { "pl2.01", 0x020000, 0x35697569, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "pl2-simm.05a", 0x200000, 0x85d8fbe8, CPS2_QSND_SIMM | BRF_SND },
- { "pl2-simm.05b", 0x200000, 0x1ed62584, CPS2_QSND_SIMM | BRF_SND },
-
- { "pzloop2.key", 0x000014, 0xae13be78, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Pzloop2jr1)
-STD_ROM_FN(Pzloop2jr1)
-
-static struct BurnRomInfo QndreamRomDesc[] = {
- { "tqzj.03a", 0x080000, 0x7acf3e30, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "tqzj.04", 0x080000, 0xf1044a87, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "tqzj.05", 0x080000, 0x4105ba0e, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "tqzj.06", 0x080000, 0xc371e8a5, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "tqz.14m", 0x200000, 0x98af88a2, CPS2_GFX | BRF_GRA },
- { "tqz.16m", 0x200000, 0xdf82d491, CPS2_GFX | BRF_GRA },
- { "tqz.18m", 0x200000, 0x42f132ff, CPS2_GFX | BRF_GRA },
- { "tqz.20m", 0x200000, 0xb2e128a3, CPS2_GFX | BRF_GRA },
-
- { "tqz.01", 0x020000, 0xe9ce9d0a, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "tqz.11m", 0x200000, 0x78e7884f, CPS2_QSND | BRF_SND },
- { "tqz.12m", 0x200000, 0x2e049b13, CPS2_QSND | BRF_SND },
-
- { "qndream.key", 0x000014, 0x97eee4ff, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Qndream)
-STD_ROM_FN(Qndream)
-
-static struct BurnRomInfo RingdestRomDesc[] = {
- { "smbe.03b", 0x080000, 0xb8016278, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "smbe.04b", 0x080000, 0x18c4c447, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "smbe.05b", 0x080000, 0x18ebda7f, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "smbe.06b", 0x080000, 0x89c80007, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "smb.07", 0x080000, 0xb9a11577, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "smb.08", 0x080000, 0xf931b76b, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "smb.13m", 0x200000, 0xd9b2d1de, CPS2_GFX | BRF_GRA },
- { "smb.15m", 0x200000, 0x9a766d92, CPS2_GFX | BRF_GRA },
- { "smb.17m", 0x200000, 0x51800f0f, CPS2_GFX | BRF_GRA },
- { "smb.19m", 0x200000, 0x35757e96, CPS2_GFX | BRF_GRA },
- { "smb.14m", 0x200000, 0xe5bfd0e7, CPS2_GFX | BRF_GRA },
- { "smb.16m", 0x200000, 0xc56c0866, CPS2_GFX | BRF_GRA },
- { "smb.18m", 0x200000, 0x4ded3910, CPS2_GFX | BRF_GRA },
- { "smb.20m", 0x200000, 0x26ea1ec5, CPS2_GFX | BRF_GRA },
- { "smb.21m", 0x080000, 0x0a08c5fc, CPS2_GFX | BRF_GRA },
- { "smb.23m", 0x080000, 0x0911b6c4, CPS2_GFX | BRF_GRA },
- { "smb.25m", 0x080000, 0x82d6c4ec, CPS2_GFX | BRF_GRA },
- { "smb.27m", 0x080000, 0x9b48678b, CPS2_GFX | BRF_GRA },
-
- { "smb.01", 0x020000, 0x0abc229a, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "smb.02", 0x020000, 0xd051679a, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "smb.11m", 0x200000, 0xc56935f9, CPS2_QSND | BRF_SND },
- { "smb.12m", 0x200000, 0x955b0782, CPS2_QSND | BRF_SND },
-
- { "ringdest.key", 0x000014, 0x17f9269c, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Ringdest)
-STD_ROM_FN(Ringdest)
-
-static struct BurnRomInfo RingdestaRomDesc[] = {
- { "smba.03a", 0x080000, 0xd3744dfd, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "smba.04a", 0x080000, 0xf32d5b4f, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "smba.05a", 0x080000, 0x1016454f, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "smba.06a", 0x080000, 0x94b420cd, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "smb.07", 0x080000, 0xb9a11577, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "smb.08", 0x080000, 0xf931b76b, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "smb.13m", 0x200000, 0xd9b2d1de, CPS2_GFX | BRF_GRA },
- { "smb.15m", 0x200000, 0x9a766d92, CPS2_GFX | BRF_GRA },
- { "smb.17m", 0x200000, 0x51800f0f, CPS2_GFX | BRF_GRA },
- { "smb.19m", 0x200000, 0x35757e96, CPS2_GFX | BRF_GRA },
- { "smb.14m", 0x200000, 0xe5bfd0e7, CPS2_GFX | BRF_GRA },
- { "smb.16m", 0x200000, 0xc56c0866, CPS2_GFX | BRF_GRA },
- { "smb.18m", 0x200000, 0x4ded3910, CPS2_GFX | BRF_GRA },
- { "smb.20m", 0x200000, 0x26ea1ec5, CPS2_GFX | BRF_GRA },
- { "smb.21m", 0x080000, 0x0a08c5fc, CPS2_GFX | BRF_GRA },
- { "smb.23m", 0x080000, 0x0911b6c4, CPS2_GFX | BRF_GRA },
- { "smb.25m", 0x080000, 0x82d6c4ec, CPS2_GFX | BRF_GRA },
- { "smb.27m", 0x080000, 0x9b48678b, CPS2_GFX | BRF_GRA },
-
- { "smb.01", 0x020000, 0x0abc229a, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "smb.02", 0x020000, 0xd051679a, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "smb.11m", 0x200000, 0xc56935f9, CPS2_QSND | BRF_SND },
- { "smb.12m", 0x200000, 0x955b0782, CPS2_QSND | BRF_SND },
-
- { "ringdesta.key", 0x000014, 0x905c9065, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Ringdesta)
-STD_ROM_FN(Ringdesta)
-
-static struct BurnRomInfo RingdesthRomDesc[] = {
- { "smbh.03b", 0x080000, 0x2e316584, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "smbh.04b", 0x080000, 0x9950a23a, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "smbh.05b", 0x080000, 0x41e0b3fc, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "smbh.06b", 0x080000, 0x89c80007, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "smbh.07b", 0x080000, 0xb9a11577, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "smbh.08b", 0x080000, 0xf931b76b, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "smb.13m", 0x200000, 0xd9b2d1de, CPS2_GFX | BRF_GRA },
- { "smb.15m", 0x200000, 0x9a766d92, CPS2_GFX | BRF_GRA },
- { "smb.17m", 0x200000, 0x51800f0f, CPS2_GFX | BRF_GRA },
- { "smb.19m", 0x200000, 0x35757e96, CPS2_GFX | BRF_GRA },
- { "smb.14m", 0x200000, 0xe5bfd0e7, CPS2_GFX | BRF_GRA },
- { "smb.16m", 0x200000, 0xc56c0866, CPS2_GFX | BRF_GRA },
- { "smb.18m", 0x200000, 0x4ded3910, CPS2_GFX | BRF_GRA },
- { "smb.20m", 0x200000, 0x26ea1ec5, CPS2_GFX | BRF_GRA },
- { "smb.21m", 0x080000, 0x0a08c5fc, CPS2_GFX | BRF_GRA },
- { "smb.23m", 0x080000, 0x0911b6c4, CPS2_GFX | BRF_GRA },
- { "smb.25m", 0x080000, 0x82d6c4ec, CPS2_GFX | BRF_GRA },
- { "smb.27m", 0x080000, 0x9b48678b, CPS2_GFX | BRF_GRA },
-
- { "smb.01", 0x020000, 0x0abc229a, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "smb.02", 0x020000, 0xd051679a, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "smb.11m", 0x200000, 0xc56935f9, CPS2_QSND | BRF_SND },
- { "smb.12m", 0x200000, 0x955b0782, CPS2_QSND | BRF_SND },
-
- { "ringdesth.key", 0x000014, 0xffb8d049, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Ringdesth)
-STD_ROM_FN(Ringdesth)
-
-static struct BurnRomInfo SmbombRomDesc[] = {
- { "smbj.03a", 0x080000, 0x1c5613de, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "smbj.04a", 0x080000, 0x29071ed7, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "smbj.05a", 0x080000, 0xeb20bce4, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "smbj.06a", 0x080000, 0x94b420cd, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "smb.07", 0x080000, 0xb9a11577, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "smb.08", 0x080000, 0xf931b76b, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "smb.13m", 0x200000, 0xd9b2d1de, CPS2_GFX | BRF_GRA },
- { "smb.15m", 0x200000, 0x9a766d92, CPS2_GFX | BRF_GRA },
- { "smb.17m", 0x200000, 0x51800f0f, CPS2_GFX | BRF_GRA },
- { "smb.19m", 0x200000, 0x35757e96, CPS2_GFX | BRF_GRA },
- { "smb.14m", 0x200000, 0xe5bfd0e7, CPS2_GFX | BRF_GRA },
- { "smb.16m", 0x200000, 0xc56c0866, CPS2_GFX | BRF_GRA },
- { "smb.18m", 0x200000, 0x4ded3910, CPS2_GFX | BRF_GRA },
- { "smb.20m", 0x200000, 0x26ea1ec5, CPS2_GFX | BRF_GRA },
- { "smb.21m", 0x080000, 0x0a08c5fc, CPS2_GFX | BRF_GRA },
- { "smb.23m", 0x080000, 0x0911b6c4, CPS2_GFX | BRF_GRA },
- { "smb.25m", 0x080000, 0x82d6c4ec, CPS2_GFX | BRF_GRA },
- { "smb.27m", 0x080000, 0x9b48678b, CPS2_GFX | BRF_GRA },
-
- { "smb.01", 0x020000, 0x0abc229a, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "smb.02", 0x020000, 0xd051679a, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "smb.11m", 0x200000, 0xc56935f9, CPS2_QSND | BRF_SND },
- { "smb.12m", 0x200000, 0x955b0782, CPS2_QSND | BRF_SND },
-
- { "smbomb.key", 0x000014, 0xf690069b, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Smbomb)
-STD_ROM_FN(Smbomb)
-
-static struct BurnRomInfo Smbombr1RomDesc[] = {
- { "smbj.03", 0x080000, 0x52eafb10, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "smbj.04", 0x080000, 0xaa6e8078, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "smbj.05", 0x080000, 0xb69e7d5f, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "smbj.06", 0x080000, 0x8d857b56, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "smb.07", 0x080000, 0xb9a11577, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "smb.08", 0x080000, 0xf931b76b, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "smb.13m", 0x200000, 0xd9b2d1de, CPS2_GFX | BRF_GRA },
- { "smb.15m", 0x200000, 0x9a766d92, CPS2_GFX | BRF_GRA },
- { "smb.17m", 0x200000, 0x51800f0f, CPS2_GFX | BRF_GRA },
- { "smb.19m", 0x200000, 0x35757e96, CPS2_GFX | BRF_GRA },
- { "smb.14m", 0x200000, 0xe5bfd0e7, CPS2_GFX | BRF_GRA },
- { "smb.16m", 0x200000, 0xc56c0866, CPS2_GFX | BRF_GRA },
- { "smb.18m", 0x200000, 0x4ded3910, CPS2_GFX | BRF_GRA },
- { "smb.20m", 0x200000, 0x26ea1ec5, CPS2_GFX | BRF_GRA },
- { "smb.21m", 0x080000, 0x0a08c5fc, CPS2_GFX | BRF_GRA },
- { "smb.23m", 0x080000, 0x0911b6c4, CPS2_GFX | BRF_GRA },
- { "smb.25m", 0x080000, 0x82d6c4ec, CPS2_GFX | BRF_GRA },
- { "smb.27m", 0x080000, 0x9b48678b, CPS2_GFX | BRF_GRA },
-
- { "smb.01", 0x020000, 0x0abc229a, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "smb.02", 0x020000, 0xd051679a, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "smb.11m", 0x200000, 0xc56935f9, CPS2_QSND | BRF_SND },
- { "smb.12m", 0x200000, 0x955b0782, CPS2_QSND | BRF_SND },
-
- { "smbomb.key", 0x000014, 0xf690069b, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Smbombr1)
-STD_ROM_FN(Smbombr1)
-
-static struct BurnRomInfo SfaRomDesc[] = {
- { "sfze.03d", 0x080000, 0xebf2054d, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfz.04b", 0x080000, 0x8b73b0e5, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfz.05a", 0x080000, 0x0810544d, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfz.06", 0x080000, 0x806e8f38, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "sfz.14m", 0x200000, 0x90fefdb3, CPS2_GFX | BRF_GRA },
- { "sfz.16m", 0x200000, 0x5354c948, CPS2_GFX | BRF_GRA },
- { "sfz.18m", 0x200000, 0x41a1e790, CPS2_GFX | BRF_GRA },
- { "sfz.20m", 0x200000, 0xa549df98, CPS2_GFX | BRF_GRA },
-
- { "sfz.01", 0x020000, 0xffffec7d, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "sfz.02", 0x020000, 0x45f46a08, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "sfz.11m", 0x200000, 0xc4b093cd, CPS2_QSND | BRF_SND },
- { "sfz.12m", 0x200000, 0x8bdbc4b4, CPS2_QSND | BRF_SND },
-
- { "sfa.key", 0x000014, 0x7c095631, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Sfa)
-STD_ROM_FN(Sfa)
-
-static struct BurnRomInfo Sfar1RomDesc[] = {
- { "sfze.03c", 0x080000, 0xa1b69dd7, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfze.04b", 0x080000, 0xbb90acd5, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfz.05a", 0x080000, 0x0810544d, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfz.06", 0x080000, 0x806e8f38, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "sfz.14m", 0x200000, 0x90fefdb3, CPS2_GFX | BRF_GRA },
- { "sfz.16m", 0x200000, 0x5354c948, CPS2_GFX | BRF_GRA },
- { "sfz.18m", 0x200000, 0x41a1e790, CPS2_GFX | BRF_GRA },
- { "sfz.20m", 0x200000, 0xa549df98, CPS2_GFX | BRF_GRA },
-
- { "sfz.01", 0x020000, 0xffffec7d, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "sfz.02", 0x020000, 0x45f46a08, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "sfz.11m", 0x200000, 0xc4b093cd, CPS2_QSND | BRF_SND },
- { "sfz.12m", 0x200000, 0x8bdbc4b4, CPS2_QSND | BRF_SND },
-
- { "sfa.key", 0x000014, 0x7c095631, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Sfar1)
-STD_ROM_FN(Sfar1)
-
-static struct BurnRomInfo Sfar2RomDesc[] = {
- { "sfze.03b", 0x080000, 0x2bf5708e, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfz.04a", 0x080000, 0x5f99e9a5, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfz.05a", 0x080000, 0x0810544d, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfz.06", 0x080000, 0x806e8f38, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "sfz.14m", 0x200000, 0x90fefdb3, CPS2_GFX | BRF_GRA },
- { "sfz.16m", 0x200000, 0x5354c948, CPS2_GFX | BRF_GRA },
- { "sfz.18m", 0x200000, 0x41a1e790, CPS2_GFX | BRF_GRA },
- { "sfz.20m", 0x200000, 0xa549df98, CPS2_GFX | BRF_GRA },
-
- { "sfz.01", 0x020000, 0xffffec7d, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "sfz.02", 0x020000, 0x45f46a08, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "sfz.11m", 0x200000, 0xc4b093cd, CPS2_QSND | BRF_SND },
- { "sfz.12m", 0x200000, 0x8bdbc4b4, CPS2_QSND | BRF_SND },
-
- { "sfa.key", 0x000014, 0x7c095631, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Sfar2)
-STD_ROM_FN(Sfar2)
-
-static struct BurnRomInfo Sfar3RomDesc[] = {
- { "sfze.03a", 0x080000, 0xfdbcd434, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfz.04", 0x080000, 0x0c436d30, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfz.05", 0x080000, 0x1f363612, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfz.06", 0x080000, 0x806e8f38, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "sfz.14m", 0x200000, 0x90fefdb3, CPS2_GFX | BRF_GRA },
- { "sfz.16m", 0x200000, 0x5354c948, CPS2_GFX | BRF_GRA },
- { "sfz.18m", 0x200000, 0x41a1e790, CPS2_GFX | BRF_GRA },
- { "sfz.20m", 0x200000, 0xa549df98, CPS2_GFX | BRF_GRA },
-
- { "sfz.01", 0x020000, 0xffffec7d, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "sfz.02", 0x020000, 0x45f46a08, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "sfz.11m", 0x200000, 0xc4b093cd, CPS2_QSND | BRF_SND },
- { "sfz.12m", 0x200000, 0x8bdbc4b4, CPS2_QSND | BRF_SND },
-
- { "sfa.key", 0x000014, 0x7c095631, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Sfar3)
-STD_ROM_FN(Sfar3)
-
-static struct BurnRomInfo SfauRomDesc[] = {
- { "sfzu.03a", 0x080000, 0x49fc7db9, CPS2_PRG_68K | BRF_ESS | BRF_PRG }, // If there's a US 950605 then this should be sfzu.03b
- { "sfz.04a", 0x080000, 0x5f99e9a5, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfz.05a", 0x080000, 0x0810544d, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfz.06", 0x080000, 0x806e8f38, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "sfz.14m", 0x200000, 0x90fefdb3, CPS2_GFX | BRF_GRA },
- { "sfz.16m", 0x200000, 0x5354c948, CPS2_GFX | BRF_GRA },
- { "sfz.18m", 0x200000, 0x41a1e790, CPS2_GFX | BRF_GRA },
- { "sfz.20m", 0x200000, 0xa549df98, CPS2_GFX | BRF_GRA },
-
- { "sfz.01", 0x020000, 0xffffec7d, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "sfz.02", 0x020000, 0x45f46a08, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "sfz.11m", 0x200000, 0xc4b093cd, CPS2_QSND | BRF_SND },
- { "sfz.12m", 0x200000, 0x8bdbc4b4, CPS2_QSND | BRF_SND },
-
- { "sfau.key", 0x000014, 0x1dd0998d, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Sfau)
-STD_ROM_FN(Sfau)
-
-static struct BurnRomInfo SfzaRomDesc[] = {
- { "sfza.03b", 0x080000, 0xca91bed9, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfz.04a", 0x080000, 0x5f99e9a5, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfz.05a", 0x080000, 0x0810544d, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfz.06", 0x080000, 0x806e8f38, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "sfz.14m", 0x200000, 0x90fefdb3, CPS2_GFX | BRF_GRA },
- { "sfz.16m", 0x200000, 0x5354c948, CPS2_GFX | BRF_GRA },
- { "sfz.18m", 0x200000, 0x41a1e790, CPS2_GFX | BRF_GRA },
- { "sfz.20m", 0x200000, 0xa549df98, CPS2_GFX | BRF_GRA },
-
- { "sfz.01", 0x020000, 0xffffec7d, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "sfz.02", 0x020000, 0x45f46a08, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "sfz.11m", 0x200000, 0xc4b093cd, CPS2_QSND | BRF_SND },
- { "sfz.12m", 0x200000, 0x8bdbc4b4, CPS2_QSND | BRF_SND },
-
- { "sfza.key", 0x000014, 0x2aa6ac63, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Sfza)
-STD_ROM_FN(Sfza)
-
-static struct BurnRomInfo Sfzar1RomDesc[] = {
- { "sfza.03a", 0x080000, 0xf38d8c8d, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfz.04", 0x080000, 0x0c436d30, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfz.05", 0x080000, 0x1f363612, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfz.06", 0x080000, 0x806e8f38, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "sfz.14m", 0x200000, 0x90fefdb3, CPS2_GFX | BRF_GRA },
- { "sfz.16m", 0x200000, 0x5354c948, CPS2_GFX | BRF_GRA },
- { "sfz.18m", 0x200000, 0x41a1e790, CPS2_GFX | BRF_GRA },
- { "sfz.20m", 0x200000, 0xa549df98, CPS2_GFX | BRF_GRA },
-
- { "sfz.01", 0x020000, 0xffffec7d, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "sfz.02", 0x020000, 0x45f46a08, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "sfz.11m", 0x200000, 0xc4b093cd, CPS2_QSND | BRF_SND },
- { "sfz.12m", 0x200000, 0x8bdbc4b4, CPS2_QSND | BRF_SND },
-
- { "sfza.key", 0x000014, 0x2aa6ac63, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Sfzar1)
-STD_ROM_FN(Sfzar1)
-
-static struct BurnRomInfo SfzbRomDesc[] = {
- { "sfzb.03g", 0x080000, 0x348862d4, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfzb.04e", 0x080000, 0x8d9b2480, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfz.05a", 0x080000, 0x0810544d, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfz.06", 0x080000, 0x806e8f38, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "sfz.14m", 0x200000, 0x90fefdb3, CPS2_GFX | BRF_GRA },
- { "sfz.16m", 0x200000, 0x5354c948, CPS2_GFX | BRF_GRA },
- { "sfz.18m", 0x200000, 0x41a1e790, CPS2_GFX | BRF_GRA },
- { "sfz.20m", 0x200000, 0xa549df98, CPS2_GFX | BRF_GRA },
-
- { "sfz.01", 0x020000, 0xffffec7d, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "sfz.02", 0x020000, 0x45f46a08, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "sfz.11m", 0x200000, 0xc4b093cd, CPS2_QSND | BRF_SND },
- { "sfz.12m", 0x200000, 0x8bdbc4b4, CPS2_QSND | BRF_SND },
-
- { "sfzb.key", 0x000014, 0xb0570359, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Sfzb)
-STD_ROM_FN(Sfzb)
-
-static struct BurnRomInfo Sfzbr1RomDesc[] = {
- { "sfzb.03e", 0x080000, 0xecba89a3, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfz.04b", 0x080000, 0x8b73b0e5, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfz.05a", 0x080000, 0x0810544d, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfz.06", 0x080000, 0x806e8f38, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "sfz.14m", 0x200000, 0x90fefdb3, CPS2_GFX | BRF_GRA },
- { "sfz.16m", 0x200000, 0x5354c948, CPS2_GFX | BRF_GRA },
- { "sfz.18m", 0x200000, 0x41a1e790, CPS2_GFX | BRF_GRA },
- { "sfz.20m", 0x200000, 0xa549df98, CPS2_GFX | BRF_GRA },
-
- { "sfz.01", 0x020000, 0xffffec7d, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "sfz.02", 0x020000, 0x45f46a08, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "sfz.11m", 0x200000, 0xc4b093cd, CPS2_QSND | BRF_SND },
- { "sfz.12m", 0x200000, 0x8bdbc4b4, CPS2_QSND | BRF_SND },
-
- { "sfzb.key", 0x000014, 0xb0570359, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Sfzbr1)
-STD_ROM_FN(Sfzbr1)
-
-static struct BurnRomInfo SfzhRomDesc[] = {
- { "sfzh.03d", 0x080000, 0x6e08cbe0, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfz.04c", 0x080000, 0xbb90acd5, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfz.05c", 0x080000, 0x0810544d, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfz.06", 0x080000, 0x806e8f38, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "sfz.14m", 0x200000, 0x90fefdb3, CPS2_GFX | BRF_GRA },
- { "sfz.16m", 0x200000, 0x5354c948, CPS2_GFX | BRF_GRA },
- { "sfz.18m", 0x200000, 0x41a1e790, CPS2_GFX | BRF_GRA },
- { "sfz.20m", 0x200000, 0xa549df98, CPS2_GFX | BRF_GRA },
-
- { "sfz.01", 0x020000, 0xffffec7d, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "sfz.02", 0x020000, 0x45f46a08, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "sfz.11m", 0x200000, 0xc4b093cd, CPS2_QSND | BRF_SND },
- { "sfz.12m", 0x200000, 0x8bdbc4b4, CPS2_QSND | BRF_SND },
-
- { "sfzh.key", 0x000014, 0x4763446f, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Sfzh)
-STD_ROM_FN(Sfzh)
-
-static struct BurnRomInfo Sfzhr1RomDesc[] = {
- { "sfzh.03c", 0x080000, 0xbce635aa, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfz.04a", 0x080000, 0x5f99e9a5, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfz.05a", 0x080000, 0x0810544d, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfz.06", 0x080000, 0x806e8f38, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "sfz.14m", 0x200000, 0x90fefdb3, CPS2_GFX | BRF_GRA },
- { "sfz.16m", 0x200000, 0x5354c948, CPS2_GFX | BRF_GRA },
- { "sfz.18m", 0x200000, 0x41a1e790, CPS2_GFX | BRF_GRA },
- { "sfz.20m", 0x200000, 0xa549df98, CPS2_GFX | BRF_GRA },
-
- { "sfz.01", 0x020000, 0xffffec7d, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "sfz.02", 0x020000, 0x45f46a08, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "sfz.11m", 0x200000, 0xc4b093cd, CPS2_QSND | BRF_SND },
- { "sfz.12m", 0x200000, 0x8bdbc4b4, CPS2_QSND | BRF_SND },
-
- { "sfzh.key", 0x000014, 0x4763446f, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Sfzhr1)
-STD_ROM_FN(Sfzhr1)
-
-static struct BurnRomInfo SfzjRomDesc[] = {
- { "sfzj.03c", 0x080000, 0xf5444120, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfz.04b", 0x080000, 0x8b73b0e5, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfz.05a", 0x080000, 0x0810544d, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfz.06", 0x080000, 0x806e8f38, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "sfz.14m", 0x200000, 0x90fefdb3, CPS2_GFX | BRF_GRA },
- { "sfz.16m", 0x200000, 0x5354c948, CPS2_GFX | BRF_GRA },
- { "sfz.18m", 0x200000, 0x41a1e790, CPS2_GFX | BRF_GRA },
- { "sfz.20m", 0x200000, 0xa549df98, CPS2_GFX | BRF_GRA },
-
- { "sfz.01", 0x020000, 0xffffec7d, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "sfz.02", 0x020000, 0x45f46a08, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "sfz.11m", 0x200000, 0xc4b093cd, CPS2_QSND | BRF_SND },
- { "sfz.12m", 0x200000, 0x8bdbc4b4, CPS2_QSND | BRF_SND },
-
- { "sfzj.key", 0x000014, 0x355d85b8, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Sfzj)
-STD_ROM_FN(Sfzj)
-
-static struct BurnRomInfo Sfzjr1RomDesc[] = {
- { "sfzj.03b", 0x080000, 0x844220c2, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfz.04a", 0x080000, 0x5f99e9a5, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfz.05a", 0x080000, 0x0810544d, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfz.06", 0x080000, 0x806e8f38, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "sfz.14m", 0x200000, 0x90fefdb3, CPS2_GFX | BRF_GRA },
- { "sfz.16m", 0x200000, 0x5354c948, CPS2_GFX | BRF_GRA },
- { "sfz.18m", 0x200000, 0x41a1e790, CPS2_GFX | BRF_GRA },
- { "sfz.20m", 0x200000, 0xa549df98, CPS2_GFX | BRF_GRA },
-
- { "sfz.01", 0x020000, 0xffffec7d, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "sfz.02", 0x020000, 0x45f46a08, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "sfz.11m", 0x200000, 0xc4b093cd, CPS2_QSND | BRF_SND },
- { "sfz.12m", 0x200000, 0x8bdbc4b4, CPS2_QSND | BRF_SND },
-
- { "sfzj.key", 0x000014, 0x355d85b8, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Sfzjr1)
-STD_ROM_FN(Sfzjr1)
-
-static struct BurnRomInfo Sfzjr2RomDesc[] = {
- { "sfzj.03a", 0x080000, 0x3cfce93c, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfz.04", 0x080000, 0x0c436d30, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfz.05", 0x080000, 0x1f363612, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfz.06", 0x080000, 0x806e8f38, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "sfz.14m", 0x200000, 0x90fefdb3, CPS2_GFX | BRF_GRA },
- { "sfz.16m", 0x200000, 0x5354c948, CPS2_GFX | BRF_GRA },
- { "sfz.18m", 0x200000, 0x41a1e790, CPS2_GFX | BRF_GRA },
- { "sfz.20m", 0x200000, 0xa549df98, CPS2_GFX | BRF_GRA },
-
- { "sfz.01", 0x020000, 0xffffec7d, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "sfz.02", 0x020000, 0x45f46a08, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "sfz.11m", 0x200000, 0xc4b093cd, CPS2_QSND | BRF_SND },
- { "sfz.12m", 0x200000, 0x8bdbc4b4, CPS2_QSND | BRF_SND },
-
- { "sfzj.key", 0x000014, 0x355d85b8, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Sfzjr2)
-STD_ROM_FN(Sfzjr2)
-
-static struct BurnRomInfo Sfa2RomDesc[] = {
- { "sz2e.03", 0x080000, 0x1061e6bb, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz2e.04", 0x080000, 0x22d17b26, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz2.05", 0x080000, 0x4b442a7c, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz2.06", 0x080000, 0x5b1d49c0, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz2.07", 0x080000, 0x8e184246, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz2.08", 0x080000, 0x0fe8585d, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "sz2.13m", 0x400000, 0x4d1f1f22, CPS2_GFX | BRF_GRA },
- { "sz2.15m", 0x400000, 0x19cea680, CPS2_GFX | BRF_GRA },
- { "sz2.17m", 0x400000, 0xe01b4588, CPS2_GFX | BRF_GRA },
- { "sz2.19m", 0x400000, 0x0feeda64, CPS2_GFX | BRF_GRA },
- { "sz2.14m", 0x100000, 0x0560c6aa, CPS2_GFX | BRF_GRA },
- { "sz2.16m", 0x100000, 0xae940f87, CPS2_GFX | BRF_GRA },
- { "sz2.18m", 0x100000, 0x4bc3c8bc, CPS2_GFX | BRF_GRA },
- { "sz2.20m", 0x100000, 0x39e674c0, CPS2_GFX | BRF_GRA },
-
- { "sz2.01a", 0x020000, 0x1bc323cf, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "sz2.02a", 0x020000, 0xba6a5013, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "sz2.11m", 0x200000, 0xaa47a601, CPS2_QSND | BRF_SND },
- { "sz2.12m", 0x200000, 0x2237bc53, CPS2_QSND | BRF_SND },
-
- { "sfa2.key", 0x000014, 0x1578dcb0, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Sfa2)
-STD_ROM_FN(Sfa2)
-
-static struct BurnRomInfo Sfa2uRomDesc[] = {
- { "sz2u.03a", 0x080000, 0xd03e504f, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz2u.04a", 0x080000, 0xfae0e9c3, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz2u.05a", 0x080000, 0xd02dd758, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz2u.06", 0x080000, 0xc5c8eb63, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz2u.07", 0x080000, 0x5de01cc5, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz2u.08", 0x080000, 0xbea11d56, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "sz2.13m", 0x400000, 0x4d1f1f22, CPS2_GFX | BRF_GRA },
- { "sz2.15m", 0x400000, 0x19cea680, CPS2_GFX | BRF_GRA },
- { "sz2.17m", 0x400000, 0xe01b4588, CPS2_GFX | BRF_GRA },
- { "sz2.19m", 0x400000, 0x0feeda64, CPS2_GFX | BRF_GRA },
- { "sz2.14m", 0x100000, 0x0560c6aa, CPS2_GFX | BRF_GRA },
- { "sz2.16m", 0x100000, 0xae940f87, CPS2_GFX | BRF_GRA },
- { "sz2.18m", 0x100000, 0x4bc3c8bc, CPS2_GFX | BRF_GRA },
- { "sz2.20m", 0x100000, 0x39e674c0, CPS2_GFX | BRF_GRA },
-
- { "sz2.01a", 0x020000, 0x1bc323cf, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "sz2.02a", 0x020000, 0xba6a5013, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "sz2.11m", 0x200000, 0xaa47a601, CPS2_QSND | BRF_SND },
- { "sz2.12m", 0x200000, 0x2237bc53, CPS2_QSND | BRF_SND },
-
- { "sfa2u.key", 0x000014, 0x4a8d91ef, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Sfa2u)
-STD_ROM_FN(Sfa2u)
-
-static struct BurnRomInfo Sfa2ur1RomDesc[] = {
- { "sz2u.03", 0x080000, 0x84a09006, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz2u.04", 0x080000, 0xac46e5ed, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz2u.05", 0x080000, 0x6c0c79d3, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz2u.06", 0x080000, 0xc5c8eb63, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz2u.07", 0x080000, 0x5de01cc5, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz2u.08", 0x080000, 0xbea11d56, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "sz2.13m", 0x400000, 0x4d1f1f22, CPS2_GFX | BRF_GRA },
- { "sz2.15m", 0x400000, 0x19cea680, CPS2_GFX | BRF_GRA },
- { "sz2.17m", 0x400000, 0xe01b4588, CPS2_GFX | BRF_GRA },
- { "sz2.19m", 0x400000, 0x0feeda64, CPS2_GFX | BRF_GRA },
- { "sz2.14m", 0x100000, 0x0560c6aa, CPS2_GFX | BRF_GRA },
- { "sz2.16m", 0x100000, 0xae940f87, CPS2_GFX | BRF_GRA },
- { "sz2.18m", 0x100000, 0x4bc3c8bc, CPS2_GFX | BRF_GRA },
- { "sz2.20m", 0x100000, 0x39e674c0, CPS2_GFX | BRF_GRA },
-
- { "sz2.01a", 0x020000, 0x1bc323cf, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "sz2.02a", 0x020000, 0xba6a5013, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "sz2.11m", 0x200000, 0xaa47a601, CPS2_QSND | BRF_SND },
- { "sz2.12m", 0x200000, 0x2237bc53, CPS2_QSND | BRF_SND },
-
- { "sfa2u.key", 0x000014, 0x4a8d91ef, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Sfa2ur1)
-STD_ROM_FN(Sfa2ur1)
-
-static struct BurnRomInfo Sfz2aRomDesc[] = {
- { "sz2a.03a", 0x080000, 0x30d2099f, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz2a.04a", 0x080000, 0x1cc94db1, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz2.05a", 0x080000, 0x98e8e992, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz2.06", 0x080000, 0x5b1d49c0, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz2a.07a", 0x080000, 0x0aed2494, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz2.08", 0x080000, 0x0fe8585d, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "sz2.13m", 0x400000, 0x4d1f1f22, CPS2_GFX | BRF_GRA },
- { "sz2.15m", 0x400000, 0x19cea680, CPS2_GFX | BRF_GRA },
- { "sz2.17m", 0x400000, 0xe01b4588, CPS2_GFX | BRF_GRA },
- { "sz2.19m", 0x400000, 0x0feeda64, CPS2_GFX | BRF_GRA },
- { "sz2.14m", 0x100000, 0x0560c6aa, CPS2_GFX | BRF_GRA },
- { "sz2.16m", 0x100000, 0xae940f87, CPS2_GFX | BRF_GRA },
- { "sz2.18m", 0x100000, 0x4bc3c8bc, CPS2_GFX | BRF_GRA },
- { "sz2.20m", 0x100000, 0x39e674c0, CPS2_GFX | BRF_GRA },
-
- { "sz2.01a", 0x020000, 0x1bc323cf, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "sz2.02a", 0x020000, 0xba6a5013, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "sz2.11m", 0x200000, 0xaa47a601, CPS2_QSND | BRF_SND },
- { "sz2.12m", 0x200000, 0x2237bc53, CPS2_QSND | BRF_SND },
-
- { "sfz2a.key", 0x000014, 0x777b7358, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Sfz2a)
-STD_ROM_FN(Sfz2a)
-
-static struct BurnRomInfo Sfz2bRomDesc[] = {
- { "sz2b.03b", 0x080000, 0x1ac12812, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz2b.04b", 0x080000, 0xe4ffaf68, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz2b.05a", 0x080000, 0xdd224156, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz2b.06a", 0x080000, 0xa45a75a6, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz2b.07a", 0x080000, 0x7d19d5ec, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz2b.08", 0x080000, 0x92b66e01, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "sz2.13m", 0x400000, 0x4d1f1f22, CPS2_GFX | BRF_GRA },
- { "sz2.15m", 0x400000, 0x19cea680, CPS2_GFX | BRF_GRA },
- { "sz2.17m", 0x400000, 0xe01b4588, CPS2_GFX | BRF_GRA },
- { "sz2.19m", 0x400000, 0x0feeda64, CPS2_GFX | BRF_GRA },
- { "sz2.14m", 0x100000, 0x0560c6aa, CPS2_GFX | BRF_GRA },
- { "sz2.16m", 0x100000, 0xae940f87, CPS2_GFX | BRF_GRA },
- { "sz2.18m", 0x100000, 0x4bc3c8bc, CPS2_GFX | BRF_GRA },
- { "sz2.20m", 0x100000, 0x39e674c0, CPS2_GFX | BRF_GRA },
-
- { "sz2.01a", 0x020000, 0x1bc323cf, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "sz2.02a", 0x020000, 0xba6a5013, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "sz2.11m", 0x200000, 0xaa47a601, CPS2_QSND | BRF_SND },
- { "sz2.12m", 0x200000, 0x2237bc53, CPS2_QSND | BRF_SND },
-
- { "sfz2b.key", 0x000014, 0x35b1df07, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Sfz2b)
-STD_ROM_FN(Sfz2b)
-
-static struct BurnRomInfo Sfz2br1RomDesc[] = {
- { "sz2b.03", 0x080000, 0xe6ce530b, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz2b.04", 0x080000, 0x1605a0cb, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz2.05", 0x080000, 0x4b442a7c, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz2.06", 0x080000, 0x5b1d49c0, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz2b.07", 0x080000, 0x947e8ac6, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz2b.08", 0x080000, 0x92b66e01, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "sz2.13m", 0x400000, 0x4d1f1f22, CPS2_GFX | BRF_GRA },
- { "sz2.15m", 0x400000, 0x19cea680, CPS2_GFX | BRF_GRA },
- { "sz2.17m", 0x400000, 0xe01b4588, CPS2_GFX | BRF_GRA },
- { "sz2.19m", 0x400000, 0x0feeda64, CPS2_GFX | BRF_GRA },
- { "sz2.14m", 0x100000, 0x0560c6aa, CPS2_GFX | BRF_GRA },
- { "sz2.16m", 0x100000, 0xae940f87, CPS2_GFX | BRF_GRA },
- { "sz2.18m", 0x100000, 0x4bc3c8bc, CPS2_GFX | BRF_GRA },
- { "sz2.20m", 0x100000, 0x39e674c0, CPS2_GFX | BRF_GRA },
-
- { "sz2.01a", 0x020000, 0x1bc323cf, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "sz2.02a", 0x020000, 0xba6a5013, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "sz2.11m", 0x200000, 0xaa47a601, CPS2_QSND | BRF_SND },
- { "sz2.12m", 0x200000, 0x2237bc53, CPS2_QSND | BRF_SND },
-
- { "sfz2b.key", 0x000014, 0x35b1df07, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Sfz2br1)
-STD_ROM_FN(Sfz2br1)
-
-static struct BurnRomInfo Sfz2hRomDesc[] = {
- { "sz2h.03" , 0x080000, 0xbfeddf5b, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz2h.04", 0x080000, 0xea5009fb, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz2.05", 0x080000, 0x4b442a7c, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz2.06", 0x080000, 0x5b1d49c0, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz2h.07", 0x080000, 0x947e8ac6, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz2h.08", 0x080000, 0x92b66e01, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "sz2.13m", 0x400000, 0x4d1f1f22, CPS2_GFX | BRF_GRA },
- { "sz2.15m", 0x400000, 0x19cea680, CPS2_GFX | BRF_GRA },
- { "sz2.17m", 0x400000, 0xe01b4588, CPS2_GFX | BRF_GRA },
- { "sz2.19m", 0x400000, 0x0feeda64, CPS2_GFX | BRF_GRA },
- { "sz2.14m", 0x100000, 0x0560c6aa, CPS2_GFX | BRF_GRA },
- { "sz2.16m", 0x100000, 0xae940f87, CPS2_GFX | BRF_GRA },
- { "sz2.18m", 0x100000, 0x4bc3c8bc, CPS2_GFX | BRF_GRA },
- { "sz2.20m", 0x100000, 0x39e674c0, CPS2_GFX | BRF_GRA },
-
- { "sz2.01a", 0x020000, 0x1bc323cf, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "sz2.02a", 0x020000, 0xba6a5013, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "sz2.11m", 0x200000, 0xaa47a601, CPS2_QSND | BRF_SND },
- { "sz2.12m", 0x200000, 0x2237bc53, CPS2_QSND | BRF_SND },
-
- { "sfz2h.key", 0x000014, 0x2719ea16, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Sfz2h)
-STD_ROM_FN(Sfz2h)
-
-static struct BurnRomInfo Sfz2jRomDesc[] = {
- { "sz2j.03b", 0x080000, 0x3e1e2e85, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz2j.04b", 0x080000, 0xf53d6c45, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz2j.05b", 0x080000, 0xdd224156, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz2j.06b", 0x080000, 0xa45a75a6, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz2j.07b", 0x080000, 0x6352f038, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz2j.08b", 0x080000, 0x92b66e01, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "sz2.13m", 0x400000, 0x4d1f1f22, CPS2_GFX | BRF_GRA },
- { "sz2.15m", 0x400000, 0x19cea680, CPS2_GFX | BRF_GRA },
- { "sz2.17m", 0x400000, 0xe01b4588, CPS2_GFX | BRF_GRA },
- { "sz2.19m", 0x400000, 0x0feeda64, CPS2_GFX | BRF_GRA },
- { "sz2.14m", 0x100000, 0x0560c6aa, CPS2_GFX | BRF_GRA },
- { "sz2.16m", 0x100000, 0xae940f87, CPS2_GFX | BRF_GRA },
- { "sz2.18m", 0x100000, 0x4bc3c8bc, CPS2_GFX | BRF_GRA },
- { "sz2.20m", 0x100000, 0x39e674c0, CPS2_GFX | BRF_GRA },
-
- { "sz2.01a", 0x020000, 0x1bc323cf, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "sz2.02a", 0x020000, 0xba6a5013, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "sz2.11m", 0x200000, 0xaa47a601, CPS2_QSND | BRF_SND },
- { "sz2.12m", 0x200000, 0x2237bc53, CPS2_QSND | BRF_SND },
-
- { "sfz2j.key", 0x000014, 0x455bd098, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Sfz2j)
-STD_ROM_FN(Sfz2j)
-
-static struct BurnRomInfo Sfz2jr1RomDesc[] = {
- { "sz2j.03a", 0x080000, 0x97461e28, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz2j.04a", 0x080000, 0xae4851a9, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz2.05a", 0x080000, 0x98e8e992, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz2.06", 0x080000, 0x5b1d49c0, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz2j.07a", 0x080000, 0xd910b2a2, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz2.08", 0x080000, 0x0fe8585d, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "sz2.13m", 0x400000, 0x4d1f1f22, CPS2_GFX | BRF_GRA },
- { "sz2.15m", 0x400000, 0x19cea680, CPS2_GFX | BRF_GRA },
- { "sz2.17m", 0x400000, 0xe01b4588, CPS2_GFX | BRF_GRA },
- { "sz2.19m", 0x400000, 0x0feeda64, CPS2_GFX | BRF_GRA },
- { "sz2.14m", 0x100000, 0x0560c6aa, CPS2_GFX | BRF_GRA },
- { "sz2.16m", 0x100000, 0xae940f87, CPS2_GFX | BRF_GRA },
- { "sz2.18m", 0x100000, 0x4bc3c8bc, CPS2_GFX | BRF_GRA },
- { "sz2.20m", 0x100000, 0x39e674c0, CPS2_GFX | BRF_GRA },
-
- { "sz2.01a", 0x020000, 0x1bc323cf, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "sz2.02a", 0x020000, 0xba6a5013, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "sz2.11m", 0x200000, 0xaa47a601, CPS2_QSND | BRF_SND },
- { "sz2.12m", 0x200000, 0x2237bc53, CPS2_QSND | BRF_SND },
-
- { "sfz2j.key", 0x000014, 0x455bd098, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Sfz2jr1)
-STD_ROM_FN(Sfz2jr1)
-
-static struct BurnRomInfo Sfz2nRomDesc[] = {
- { "sz2n.03" , 0x080000, 0x58924741, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz2n.04", 0x080000, 0x592a17c5, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz2.05", 0x080000, 0x4b442a7c, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz2.06", 0x080000, 0x5b1d49c0, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz2.07", 0x080000, 0x8e184246, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz2.08", 0x080000, 0x0fe8585d, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "sz2.13m", 0x400000, 0x4d1f1f22, CPS2_GFX | BRF_GRA },
- { "sz2.15m", 0x400000, 0x19cea680, CPS2_GFX | BRF_GRA },
- { "sz2.17m", 0x400000, 0xe01b4588, CPS2_GFX | BRF_GRA },
- { "sz2.19m", 0x400000, 0x0feeda64, CPS2_GFX | BRF_GRA },
- { "sz2.14m", 0x100000, 0x0560c6aa, CPS2_GFX | BRF_GRA },
- { "sz2.16m", 0x100000, 0xae940f87, CPS2_GFX | BRF_GRA },
- { "sz2.18m", 0x100000, 0x4bc3c8bc, CPS2_GFX | BRF_GRA },
- { "sz2.20m", 0x100000, 0x39e674c0, CPS2_GFX | BRF_GRA },
-
- { "sz2.01a", 0x020000, 0x1bc323cf, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "sz2.02a", 0x020000, 0xba6a5013, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "sz2.11m", 0x200000, 0xaa47a601, CPS2_QSND | BRF_SND },
- { "sz2.12m", 0x200000, 0x2237bc53, CPS2_QSND | BRF_SND },
-
- { "sfz2n.key", 0x000014, 0xd1cc49d5, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Sfz2n)
-STD_ROM_FN(Sfz2n)
-
-static struct BurnRomInfo Sfz2alRomDesc[] = {
- { "szaa.03", 0x080000, 0x88e7023e, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "szaa.04", 0x080000, 0xae8ec36e, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "szaa.05", 0x080000, 0xf053a55e, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "szaa.06", 0x080000, 0xcfc0e7a8, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "szaa.07", 0x080000, 0x5feb8b20, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "szaa.08", 0x080000, 0x6eb6d412, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "sza.13m", 0x400000, 0x4d1f1f22, CPS2_GFX | BRF_GRA },
- { "sza.15m", 0x400000, 0x19cea680, CPS2_GFX | BRF_GRA },
- { "sza.17m", 0x400000, 0xe01b4588, CPS2_GFX | BRF_GRA },
- { "sza.19m", 0x400000, 0x0feeda64, CPS2_GFX | BRF_GRA },
- { "sza.14m", 0x100000, 0x0560c6aa, CPS2_GFX | BRF_GRA },
- { "sza.16m", 0x100000, 0xae940f87, CPS2_GFX | BRF_GRA },
- { "sza.18m", 0x100000, 0x4bc3c8bc, CPS2_GFX | BRF_GRA },
- { "sza.20m", 0x100000, 0x39e674c0, CPS2_GFX | BRF_GRA },
-
- { "sza.01", 0x020000, 0x1bc323cf, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "sza.02", 0x020000, 0xba6a5013, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "sza.11m", 0x200000, 0xaa47a601, CPS2_QSND | BRF_SND },
- { "sza.12m", 0x200000, 0x2237bc53, CPS2_QSND | BRF_SND },
-
- { "sfz2al.key", 0x000014, 0x2904963e, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Sfz2al)
-STD_ROM_FN(Sfz2al)
-
-static struct BurnRomInfo Sfz2albRomDesc[] = {
- { "szab.03", 0x080000, 0xcb436eca, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "szab.04", 0x080000, 0x14534bea, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "szab.05", 0x080000, 0x7fb10658, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sza.06", 0x080000, 0x0abda2fc, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sza.07", 0x080000, 0xe9430762, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sza.08", 0x080000, 0xb65711a9, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "sza.13m", 0x400000, 0x4d1f1f22, CPS2_GFX | BRF_GRA },
- { "sza.15m", 0x400000, 0x19cea680, CPS2_GFX | BRF_GRA },
- { "sza.17m", 0x400000, 0xe01b4588, CPS2_GFX | BRF_GRA },
- { "sza.19m", 0x400000, 0x0feeda64, CPS2_GFX | BRF_GRA },
- { "sza.14m", 0x100000, 0x0560c6aa, CPS2_GFX | BRF_GRA },
- { "sza.16m", 0x100000, 0xae940f87, CPS2_GFX | BRF_GRA },
- { "sza.18m", 0x100000, 0x4bc3c8bc, CPS2_GFX | BRF_GRA },
- { "sza.20m", 0x100000, 0x39e674c0, CPS2_GFX | BRF_GRA },
-
- { "sza.01", 0x020000, 0x1bc323cf, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "sza.02", 0x020000, 0xba6a5013, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "sza.11m", 0x200000, 0xaa47a601, CPS2_QSND | BRF_SND },
- { "sza.12m", 0x200000, 0x2237bc53, CPS2_QSND | BRF_SND },
-
- { "sfz2alb.key", 0x000014, 0xc8b3ac73, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Sfz2alb)
-STD_ROM_FN(Sfz2alb)
-
-static struct BurnRomInfo Sfz2alhRomDesc[] = {
- { "szah.03", 0x080000, 0x06f93d1d, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "szah.04", 0x080000, 0xe62ee914, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "szah.05", 0x080000, 0x2b7f4b20, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sza.06", 0x080000, 0x0abda2fc, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sza.07", 0x080000, 0xe9430762, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sza.08", 0x080000, 0xb65711a9, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "sza.13m", 0x400000, 0x4d1f1f22, CPS2_GFX | BRF_GRA },
- { "sza.15m", 0x400000, 0x19cea680, CPS2_GFX | BRF_GRA },
- { "sza.17m", 0x400000, 0xe01b4588, CPS2_GFX | BRF_GRA },
- { "sza.19m", 0x400000, 0x0feeda64, CPS2_GFX | BRF_GRA },
- { "sza.14m", 0x100000, 0x0560c6aa, CPS2_GFX | BRF_GRA },
- { "sza.16m", 0x100000, 0xae940f87, CPS2_GFX | BRF_GRA },
- { "sza.18m", 0x100000, 0x4bc3c8bc, CPS2_GFX | BRF_GRA },
- { "sza.20m", 0x100000, 0x39e674c0, CPS2_GFX | BRF_GRA },
-
- { "sza.01", 0x020000, 0x1bc323cf, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "sza.02", 0x020000, 0xba6a5013, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "sza.11m", 0x200000, 0xaa47a601, CPS2_QSND | BRF_SND },
- { "sza.12m", 0x200000, 0x2237bc53, CPS2_QSND | BRF_SND },
-
- { "sfz2alh.key", 0x000014, 0xf320f655, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Sfz2alh)
-STD_ROM_FN(Sfz2alh)
-
-static struct BurnRomInfo Sfz2aljRomDesc[] = {
- { "szaj.03a", 0x080000, 0xa3802fe3, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "szaj.04a", 0x080000, 0xe7ca87c7, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "szaj.05a", 0x080000, 0xc88ebf88, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "szaj.06a", 0x080000, 0x35ed5b7a, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "szaj.07a", 0x080000, 0x975dcb3e, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "szaj.08a", 0x080000, 0xdc73f2d7, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "sza.13m", 0x400000, 0x4d1f1f22, CPS2_GFX | BRF_GRA },
- { "sza.15m", 0x400000, 0x19cea680, CPS2_GFX | BRF_GRA },
- { "sza.17m", 0x400000, 0xe01b4588, CPS2_GFX | BRF_GRA },
- { "sza.19m", 0x400000, 0x0feeda64, CPS2_GFX | BRF_GRA },
- { "sza.14m", 0x100000, 0x0560c6aa, CPS2_GFX | BRF_GRA },
- { "sza.16m", 0x100000, 0xae940f87, CPS2_GFX | BRF_GRA },
- { "sza.18m", 0x100000, 0x4bc3c8bc, CPS2_GFX | BRF_GRA },
- { "sza.20m", 0x100000, 0x39e674c0, CPS2_GFX | BRF_GRA },
-
- { "sza.01", 0x020000, 0x1bc323cf, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "sza.02", 0x020000, 0xba6a5013, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "sza.11m", 0x200000, 0xaa47a601, CPS2_QSND | BRF_SND },
- { "sza.12m", 0x200000, 0x2237bc53, CPS2_QSND | BRF_SND },
-
- { "sfz2alj.key", 0x000014, 0x4c42320f, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Sfz2alj)
-STD_ROM_FN(Sfz2alj)
-
-static struct BurnRomInfo Sfa3RomDesc[] = {
- { "sz3e.03c", 0x080000, 0x9762b206, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3e.04c", 0x080000, 0x5ad3f721, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3.05c", 0x080000, 0x57fd0a40, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3.06c", 0x080000, 0xf6305f8b, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3.07c", 0x080000, 0x6eab0f6f, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3.08c", 0x080000, 0x910c4a3b, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3.09c", 0x080000, 0xb29e5199, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3.10b", 0x080000, 0xdeb2ff52, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "sz3.13m", 0x400000, 0x0f7a60d9, CPS2_GFX | BRF_GRA },
- { "sz3.15m", 0x400000, 0x8e933741, CPS2_GFX | BRF_GRA },
- { "sz3.17m", 0x400000, 0xd6e98147, CPS2_GFX | BRF_GRA },
- { "sz3.19m", 0x400000, 0xf31a728a, CPS2_GFX | BRF_GRA },
- { "sz3.14m", 0x400000, 0x5ff98297, CPS2_GFX | BRF_GRA },
- { "sz3.16m", 0x400000, 0x52b5bdee, CPS2_GFX | BRF_GRA },
- { "sz3.18m", 0x400000, 0x40631ed5, CPS2_GFX | BRF_GRA },
- { "sz3.20m", 0x400000, 0x763409b4, CPS2_GFX | BRF_GRA },
-
- { "sz3.01", 0x020000, 0xde810084, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "sz3.02", 0x020000, 0x72445dc4, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "sz3.11m", 0x400000, 0x1c89eed1, CPS2_QSND | BRF_SND },
- { "sz3.12m", 0x400000, 0xf392b13a, CPS2_QSND | BRF_SND },
-
- { "sfa3.key", 0x000014, 0x54fa39c6, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Sfa3)
-STD_ROM_FN(Sfa3)
-
-static struct BurnRomInfo Sfa3bRomDesc[] = {
- { "sz3b.03", 0x080000, 0x046c9b4d, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3b.04", 0x080000, 0xda211919, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3.05", 0x080000, 0x9b21518a, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3.06", 0x080000, 0xe7a6c3a7, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3.07", 0x080000, 0xec4c0cfd, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3.08", 0x080000, 0x5c7e7240, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3.09", 0x080000, 0xc5589553, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3.10", 0x080000, 0xa9717252, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "sz3.13m", 0x400000, 0x0f7a60d9, CPS2_GFX | BRF_GRA },
- { "sz3.15m", 0x400000, 0x8e933741, CPS2_GFX | BRF_GRA },
- { "sz3.17m", 0x400000, 0xd6e98147, CPS2_GFX | BRF_GRA },
- { "sz3.19m", 0x400000, 0xf31a728a, CPS2_GFX | BRF_GRA },
- { "sz3.14m", 0x400000, 0x5ff98297, CPS2_GFX | BRF_GRA },
- { "sz3.16m", 0x400000, 0x52b5bdee, CPS2_GFX | BRF_GRA },
- { "sz3.18m", 0x400000, 0x40631ed5, CPS2_GFX | BRF_GRA },
- { "sz3.20m", 0x400000, 0x763409b4, CPS2_GFX | BRF_GRA },
-
- { "sz3.01", 0x020000, 0xde810084, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "sz3.02", 0x020000, 0x72445dc4, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "sz3.11m", 0x400000, 0x1c89eed1, CPS2_QSND | BRF_SND },
- { "sz3.12m", 0x400000, 0xf392b13a, CPS2_QSND | BRF_SND },
-
- { "sfa3b.key", 0x000014, 0x2d0a1351, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Sfa3b)
-STD_ROM_FN(Sfa3b)
-
-static struct BurnRomInfo Sfa3hRomDesc[] = {
- { "sz3h.03c", 0x080000, 0xb3b563a3, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3h.04c", 0x080000, 0x47891fec, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3.05c", 0x080000, 0x57fd0a40, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3.06c", 0x080000, 0xf6305f8b, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3.07c", 0x080000, 0x6eab0f6f, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3.08c", 0x080000, 0x910c4a3b, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3.09c", 0x080000, 0xb29e5199, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3.10b", 0x080000, 0xdeb2ff52, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "sz3.13m", 0x400000, 0x0f7a60d9, CPS2_GFX | BRF_GRA },
- { "sz3.15m", 0x400000, 0x8e933741, CPS2_GFX | BRF_GRA },
- { "sz3.17m", 0x400000, 0xd6e98147, CPS2_GFX | BRF_GRA },
- { "sz3.19m", 0x400000, 0xf31a728a, CPS2_GFX | BRF_GRA },
- { "sz3.14m", 0x400000, 0x5ff98297, CPS2_GFX | BRF_GRA },
- { "sz3.16m", 0x400000, 0x52b5bdee, CPS2_GFX | BRF_GRA },
- { "sz3.18m", 0x400000, 0x40631ed5, CPS2_GFX | BRF_GRA },
- { "sz3.20m", 0x400000, 0x763409b4, CPS2_GFX | BRF_GRA },
-
- { "sz3.01", 0x020000, 0xde810084, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "sz3.02", 0x020000, 0x72445dc4, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "sz3.11m", 0x400000, 0x1c89eed1, CPS2_QSND | BRF_SND },
- { "sz3.12m", 0x400000, 0xf392b13a, CPS2_QSND | BRF_SND },
-
- { "sfa3h.key", 0x000014, 0x1b34998c, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Sfa3h)
-STD_ROM_FN(Sfa3h)
-
-static struct BurnRomInfo Sfa3hr1RomDesc[] = {
- { "sz3h.03", 0x080000, 0x4b16cb3e, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3h.04", 0x080000, 0x88ad2e6a, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3.05", 0x080000, 0x9b21518a, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3.06", 0x080000, 0xe7a6c3a7, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3.07", 0x080000, 0xec4c0cfd, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3.08", 0x080000, 0x5c7e7240, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3.09", 0x080000, 0xc5589553, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3.10", 0x080000, 0xa9717252, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "sz3.13m", 0x400000, 0x0f7a60d9, CPS2_GFX | BRF_GRA },
- { "sz3.15m", 0x400000, 0x8e933741, CPS2_GFX | BRF_GRA },
- { "sz3.17m", 0x400000, 0xd6e98147, CPS2_GFX | BRF_GRA },
- { "sz3.19m", 0x400000, 0xf31a728a, CPS2_GFX | BRF_GRA },
- { "sz3.14m", 0x400000, 0x5ff98297, CPS2_GFX | BRF_GRA },
- { "sz3.16m", 0x400000, 0x52b5bdee, CPS2_GFX | BRF_GRA },
- { "sz3.18m", 0x400000, 0x40631ed5, CPS2_GFX | BRF_GRA },
- { "sz3.20m", 0x400000, 0x763409b4, CPS2_GFX | BRF_GRA },
-
- { "sz3.01", 0x020000, 0xde810084, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "sz3.02", 0x020000, 0x72445dc4, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "sz3.11m", 0x400000, 0x1c89eed1, CPS2_QSND | BRF_SND },
- { "sz3.12m", 0x400000, 0xf392b13a, CPS2_QSND | BRF_SND },
-
- { "sfa3h.key", 0x000014, 0x1b34998c, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Sfa3hr1)
-STD_ROM_FN(Sfa3hr1)
-
-static struct BurnRomInfo Sfa3uRomDesc[] = {
- { "sz3u.03c", 0x080000, 0xe007da2e, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3u.04c", 0x080000, 0x5f78f0e7, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3.05c", 0x080000, 0x57fd0a40, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3.06c", 0x080000, 0xf6305f8b, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3.07c", 0x080000, 0x6eab0f6f, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3.08c", 0x080000, 0x910c4a3b, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3.09c", 0x080000, 0xb29e5199, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3.10b", 0x080000, 0xdeb2ff52, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "sz3.13m", 0x400000, 0x0f7a60d9, CPS2_GFX | BRF_GRA },
- { "sz3.15m", 0x400000, 0x8e933741, CPS2_GFX | BRF_GRA },
- { "sz3.17m", 0x400000, 0xd6e98147, CPS2_GFX | BRF_GRA },
- { "sz3.19m", 0x400000, 0xf31a728a, CPS2_GFX | BRF_GRA },
- { "sz3.14m", 0x400000, 0x5ff98297, CPS2_GFX | BRF_GRA },
- { "sz3.16m", 0x400000, 0x52b5bdee, CPS2_GFX | BRF_GRA },
- { "sz3.18m", 0x400000, 0x40631ed5, CPS2_GFX | BRF_GRA },
- { "sz3.20m", 0x400000, 0x763409b4, CPS2_GFX | BRF_GRA },
-
- { "sz3.01", 0x020000, 0xde810084, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "sz3.02", 0x020000, 0x72445dc4, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "sz3.11m", 0x400000, 0x1c89eed1, CPS2_QSND | BRF_SND },
- { "sz3.12m", 0x400000, 0xf392b13a, CPS2_QSND | BRF_SND },
-
- { "sfa3u.key", 0x000014, 0x4a8f98c1, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Sfa3u)
-STD_ROM_FN(Sfa3u)
-
-static struct BurnRomInfo Sfa3ur1RomDesc[] = {
- { "sz3u.03", 0x080000, 0xb5984a19, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3u.04", 0x080000, 0x7e8158ba, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3.05", 0x080000, 0x9b21518a, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3.06", 0x080000, 0xe7a6c3a7, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3.07", 0x080000, 0xec4c0cfd, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3.08", 0x080000, 0x5c7e7240, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3.09", 0x080000, 0xc5589553, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3.10", 0x080000, 0xa9717252, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "sz3.13m", 0x400000, 0x0f7a60d9, CPS2_GFX | BRF_GRA },
- { "sz3.15m", 0x400000, 0x8e933741, CPS2_GFX | BRF_GRA },
- { "sz3.17m", 0x400000, 0xd6e98147, CPS2_GFX | BRF_GRA },
- { "sz3.19m", 0x400000, 0xf31a728a, CPS2_GFX | BRF_GRA },
- { "sz3.14m", 0x400000, 0x5ff98297, CPS2_GFX | BRF_GRA },
- { "sz3.16m", 0x400000, 0x52b5bdee, CPS2_GFX | BRF_GRA },
- { "sz3.18m", 0x400000, 0x40631ed5, CPS2_GFX | BRF_GRA },
- { "sz3.20m", 0x400000, 0x763409b4, CPS2_GFX | BRF_GRA },
-
- { "sz3.01", 0x020000, 0xde810084, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "sz3.02", 0x020000, 0x72445dc4, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "sz3.11m", 0x400000, 0x1c89eed1, CPS2_QSND | BRF_SND },
- { "sz3.12m", 0x400000, 0xf392b13a, CPS2_QSND | BRF_SND },
-
- { "sfa3u.key", 0x000014, 0x4a8f98c1, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Sfa3ur1)
-STD_ROM_FN(Sfa3ur1)
-
-static struct BurnRomInfo Sfa3usRomDesc[] = {
- { "sz3-usam_03.6a", 0x080000, 0x14319e29, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3-usam_04.7a", 0x080000, 0x65fbc272, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3-usam_05.8a", 0x080000, 0xe93c47d1, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3-usam_06.9a", 0x080000, 0x1bf09de3, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3-usam_07.6d", 0x080000, 0xf6296d96, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3-usam_08.7d", 0x080000, 0x1f4008ff, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3-usam_09.8d", 0x080000, 0x822fc451, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3-usam_10.9d", 0x080000, 0x92713468, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "sz3.13m", 0x400000, 0x0f7a60d9, CPS2_GFX | BRF_GRA },
- { "sz3.15m", 0x400000, 0x8e933741, CPS2_GFX | BRF_GRA },
- { "sz3.17m", 0x400000, 0xd6e98147, CPS2_GFX | BRF_GRA },
- { "sz3.19m", 0x400000, 0xf31a728a, CPS2_GFX | BRF_GRA },
- { "sz3.14m", 0x400000, 0x5ff98297, CPS2_GFX | BRF_GRA },
- { "sz3.16m", 0x400000, 0x52b5bdee, CPS2_GFX | BRF_GRA },
- { "sz3.18m", 0x400000, 0x40631ed5, CPS2_GFX | BRF_GRA },
- { "sz3.20m", 0x400000, 0x763409b4, CPS2_GFX | BRF_GRA },
-
- { "sz3-usam_01.1a", 0x020000, 0xc180947d, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "sz3-usam_02.2a", 0x020000, 0x9ebc280f, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "sz3.11m", 0x400000, 0x1c89eed1, CPS2_QSND | BRF_SND },
- { "sz3.12m", 0x400000, 0xf392b13a, CPS2_QSND | BRF_SND },
-
- { "sfa3u.key", 0x000014, 0x4a8f98c1, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Sfa3us)
-STD_ROM_FN(Sfa3us)
-
-static struct BurnRomInfo Sfz3aRomDesc[] = {
- { "sz3a.03d", 0x080000, 0xd7e140d6, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3a.04d", 0x080000, 0xe06869a2, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3.05c", 0x080000, 0x57fd0a40, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3.06c", 0x080000, 0xf6305f8b, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3.07c", 0x080000, 0x6eab0f6f, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3.08c", 0x080000, 0x910c4a3b, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3.09c", 0x080000, 0xb29e5199, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3.10b", 0x080000, 0xdeb2ff52, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "sz3.13m", 0x400000, 0x0f7a60d9, CPS2_GFX | BRF_GRA },
- { "sz3.15m", 0x400000, 0x8e933741, CPS2_GFX | BRF_GRA },
- { "sz3.17m", 0x400000, 0xd6e98147, CPS2_GFX | BRF_GRA },
- { "sz3.19m", 0x400000, 0xf31a728a, CPS2_GFX | BRF_GRA },
- { "sz3.14m", 0x400000, 0x5ff98297, CPS2_GFX | BRF_GRA },
- { "sz3.16m", 0x400000, 0x52b5bdee, CPS2_GFX | BRF_GRA },
- { "sz3.18m", 0x400000, 0x40631ed5, CPS2_GFX | BRF_GRA },
- { "sz3.20m", 0x400000, 0x763409b4, CPS2_GFX | BRF_GRA },
-
- { "sz3.01", 0x020000, 0xde810084, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "sz3.02", 0x020000, 0x72445dc4, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "sz3.11m", 0x400000, 0x1c89eed1, CPS2_QSND | BRF_SND },
- { "sz3.12m", 0x400000, 0xf392b13a, CPS2_QSND | BRF_SND },
-
- { "sfz3a.key", 0x000014, 0x09045d61, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Sfz3a)
-STD_ROM_FN(Sfz3a)
-
-static struct BurnRomInfo Sfz3ar1RomDesc[] = {
- { "sz3a.03a", 0x080000, 0x29c681fd, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3a.04", 0x080000, 0x9ddd1484, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3.05", 0x080000, 0x9b21518a, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3.06", 0x080000, 0xe7a6c3a7, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3.07", 0x080000, 0xec4c0cfd, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3.08", 0x080000, 0x5c7e7240, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3.09", 0x080000, 0xc5589553, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3.10", 0x080000, 0xa9717252, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "sz3.13m", 0x400000, 0x0f7a60d9, CPS2_GFX | BRF_GRA },
- { "sz3.15m", 0x400000, 0x8e933741, CPS2_GFX | BRF_GRA },
- { "sz3.17m", 0x400000, 0xd6e98147, CPS2_GFX | BRF_GRA },
- { "sz3.19m", 0x400000, 0xf31a728a, CPS2_GFX | BRF_GRA },
- { "sz3.14m", 0x400000, 0x5ff98297, CPS2_GFX | BRF_GRA },
- { "sz3.16m", 0x400000, 0x52b5bdee, CPS2_GFX | BRF_GRA },
- { "sz3.18m", 0x400000, 0x40631ed5, CPS2_GFX | BRF_GRA },
- { "sz3.20m", 0x400000, 0x763409b4, CPS2_GFX | BRF_GRA },
-
- { "sz3.01", 0x020000, 0xde810084, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "sz3.02", 0x020000, 0x72445dc4, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "sz3.11m", 0x400000, 0x1c89eed1, CPS2_QSND | BRF_SND },
- { "sz3.12m", 0x400000, 0xf392b13a, CPS2_QSND | BRF_SND },
-
- { "sfz3a.key", 0x000014, 0x09045d61, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Sfz3ar1)
-STD_ROM_FN(Sfz3ar1)
-
-static struct BurnRomInfo Sfz3jRomDesc[] = {
- { "sz3j.03c", 0x080000, 0xcadf4a51, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3j.04c", 0x080000, 0xfcb31228, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3.05c", 0x080000, 0x57fd0a40, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3.06c", 0x080000, 0xf6305f8b, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3.07c", 0x080000, 0x6eab0f6f, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3.08c", 0x080000, 0x910c4a3b, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3.09c", 0x080000, 0xb29e5199, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3.10b", 0x080000, 0xdeb2ff52, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "sz3.13m", 0x400000, 0x0f7a60d9, CPS2_GFX | BRF_GRA },
- { "sz3.15m", 0x400000, 0x8e933741, CPS2_GFX | BRF_GRA },
- { "sz3.17m", 0x400000, 0xd6e98147, CPS2_GFX | BRF_GRA },
- { "sz3.19m", 0x400000, 0xf31a728a, CPS2_GFX | BRF_GRA },
- { "sz3.14m", 0x400000, 0x5ff98297, CPS2_GFX | BRF_GRA },
- { "sz3.16m", 0x400000, 0x52b5bdee, CPS2_GFX | BRF_GRA },
- { "sz3.18m", 0x400000, 0x40631ed5, CPS2_GFX | BRF_GRA },
- { "sz3.20m", 0x400000, 0x763409b4, CPS2_GFX | BRF_GRA },
-
- { "sz3.01", 0x020000, 0xde810084, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "sz3.02", 0x020000, 0x72445dc4, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "sz3.11m", 0x400000, 0x1c89eed1, CPS2_QSND | BRF_SND },
- { "sz3.12m", 0x400000, 0xf392b13a, CPS2_QSND | BRF_SND },
-
- { "sfz3j.key", 0x000014, 0xd30cca8d, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Sfz3j)
-STD_ROM_FN(Sfz3j)
-
-static struct BurnRomInfo Sfz3jr1RomDesc[] = {
- { "sz3j.03a", 0x080000, 0x6ee0beae, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3j.04a", 0x080000, 0xa6e2978d, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3.05a", 0x080000, 0x05964b7d, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3.06a", 0x080000, 0x78ce2179, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3.07a", 0x080000, 0x398bf52f, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3.08a", 0x080000, 0x866d0588, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3.09a", 0x080000, 0x2180892c, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3.10", 0x080000, 0xa9717252, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "sz3.13m", 0x400000, 0x0f7a60d9, CPS2_GFX | BRF_GRA },
- { "sz3.15m", 0x400000, 0x8e933741, CPS2_GFX | BRF_GRA },
- { "sz3.17m", 0x400000, 0xd6e98147, CPS2_GFX | BRF_GRA },
- { "sz3.19m", 0x400000, 0xf31a728a, CPS2_GFX | BRF_GRA },
- { "sz3.14m", 0x400000, 0x5ff98297, CPS2_GFX | BRF_GRA },
- { "sz3.16m", 0x400000, 0x52b5bdee, CPS2_GFX | BRF_GRA },
- { "sz3.18m", 0x400000, 0x40631ed5, CPS2_GFX | BRF_GRA },
- { "sz3.20m", 0x400000, 0x763409b4, CPS2_GFX | BRF_GRA },
-
- { "sz3.01", 0x020000, 0xde810084, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "sz3.02", 0x020000, 0x72445dc4, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "sz3.11m", 0x400000, 0x1c89eed1, CPS2_QSND | BRF_SND },
- { "sz3.12m", 0x400000, 0xf392b13a, CPS2_QSND | BRF_SND },
-
- { "sfz3j.key", 0x000014, 0xd30cca8d, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Sfz3jr1)
-STD_ROM_FN(Sfz3jr1)
-
-static struct BurnRomInfo Sfz3jr2RomDesc[] = {
- { "sz3j.03", 0x080000, 0xf7cb4b13, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3j.04", 0x080000, 0x0846c29d, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3.05", 0x080000, 0x9b21518a, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3.06", 0x080000, 0xe7a6c3a7, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3.07", 0x080000, 0xec4c0cfd, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3.08", 0x080000, 0x5c7e7240, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3.09", 0x080000, 0xc5589553, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3.10", 0x080000, 0xa9717252, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "sz3.13m", 0x400000, 0x0f7a60d9, CPS2_GFX | BRF_GRA },
- { "sz3.15m", 0x400000, 0x8e933741, CPS2_GFX | BRF_GRA },
- { "sz3.17m", 0x400000, 0xd6e98147, CPS2_GFX | BRF_GRA },
- { "sz3.19m", 0x400000, 0xf31a728a, CPS2_GFX | BRF_GRA },
- { "sz3.14m", 0x400000, 0x5ff98297, CPS2_GFX | BRF_GRA },
- { "sz3.16m", 0x400000, 0x52b5bdee, CPS2_GFX | BRF_GRA },
- { "sz3.18m", 0x400000, 0x40631ed5, CPS2_GFX | BRF_GRA },
- { "sz3.20m", 0x400000, 0x763409b4, CPS2_GFX | BRF_GRA },
-
- { "sz3.01", 0x020000, 0xde810084, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "sz3.02", 0x020000, 0x72445dc4, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "sz3.11m", 0x400000, 0x1c89eed1, CPS2_QSND | BRF_SND },
- { "sz3.12m", 0x400000, 0xf392b13a, CPS2_QSND | BRF_SND },
-
- { "sfz3j.key", 0x000014, 0xd30cca8d, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Sfz3jr2)
-STD_ROM_FN(Sfz3jr2)
-
-static struct BurnRomInfo SgemfRomDesc[] = {
- { "pcfu.03", 0x080000, 0xac2e8566, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pcf.04", 0x080000, 0xf4314c96, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pcf.05", 0x080000, 0x215655f6, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pcf.06", 0x080000, 0xea6f13ea, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pcf.07", 0x080000, 0x5ac6d5ea, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "pcf.13m", 0x400000, 0x22d72ab9, CPS2_GFX | BRF_GRA },
- { "pcf.15m", 0x400000, 0x16a4813c, CPS2_GFX | BRF_GRA },
- { "pcf.17m", 0x400000, 0x1097e035, CPS2_GFX | BRF_GRA },
- { "pcf.19m", 0x400000, 0xd362d874, CPS2_GFX | BRF_GRA },
- { "pcf.14m", 0x100000, 0x0383897c, CPS2_GFX | BRF_GRA },
- { "pcf.16m", 0x100000, 0x76f91084, CPS2_GFX | BRF_GRA },
- { "pcf.18m", 0x100000, 0x756c3754, CPS2_GFX | BRF_GRA },
- { "pcf.20m", 0x100000, 0x9ec9277d, CPS2_GFX | BRF_GRA },
-
- { "pcf.01", 0x020000, 0x254e5f33, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "pcf.02", 0x020000, 0x6902f4f9, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "pcf.11m", 0x400000, 0xa5dea005, CPS2_QSND | BRF_SND },
- { "pcf.12m", 0x400000, 0x4ce235fe, CPS2_QSND | BRF_SND },
-
- { "sgemf.key", 0x000014, 0x3d604021, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Sgemf)
-STD_ROM_FN(Sgemf)
-
-static struct BurnRomInfo PfghtjRomDesc[] = {
- { "pcfj.03", 0x080000, 0x681da43e, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pcf.04", 0x080000, 0xf4314c96, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pcf.05", 0x080000, 0x215655f6, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pcf.06", 0x080000, 0xea6f13ea, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pcf.07", 0x080000, 0x5ac6d5ea, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "pcf.13m", 0x400000, 0x22d72ab9, CPS2_GFX | BRF_GRA },
- { "pcf.15m", 0x400000, 0x16a4813c, CPS2_GFX | BRF_GRA },
- { "pcf.17m", 0x400000, 0x1097e035, CPS2_GFX | BRF_GRA },
- { "pcf.19m", 0x400000, 0xd362d874, CPS2_GFX | BRF_GRA },
- { "pcf.14m", 0x100000, 0x0383897c, CPS2_GFX | BRF_GRA },
- { "pcf.16m", 0x100000, 0x76f91084, CPS2_GFX | BRF_GRA },
- { "pcf.18m", 0x100000, 0x756c3754, CPS2_GFX | BRF_GRA },
- { "pcf.20m", 0x100000, 0x9ec9277d, CPS2_GFX | BRF_GRA },
-
- { "pcf.01", 0x020000, 0x254e5f33, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "pcf.02", 0x020000, 0x6902f4f9, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "pcf.11m", 0x400000, 0xa5dea005, CPS2_QSND | BRF_SND },
- { "pcf.12m", 0x400000, 0x4ce235fe, CPS2_QSND | BRF_SND },
-
- { "pfghtj.key", 0x000014, 0x62297638, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Pfghtj)
-STD_ROM_FN(Pfghtj)
-
-static struct BurnRomInfo SgemfaRomDesc[] = {
- { "pcfa.03", 0x080000, 0xe17c089a, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pcf.04", 0x080000, 0xf4314c96, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pcf.05", 0x080000, 0x215655f6, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pcf.06", 0x080000, 0xea6f13ea, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pcf.07", 0x080000, 0x5ac6d5ea, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "pcf.13m", 0x400000, 0x22d72ab9, CPS2_GFX | BRF_GRA },
- { "pcf.15m", 0x400000, 0x16a4813c, CPS2_GFX | BRF_GRA },
- { "pcf.17m", 0x400000, 0x1097e035, CPS2_GFX | BRF_GRA },
- { "pcf.19m", 0x400000, 0xd362d874, CPS2_GFX | BRF_GRA },
- { "pcf.14m", 0x100000, 0x0383897c, CPS2_GFX | BRF_GRA },
- { "pcf.16m", 0x100000, 0x76f91084, CPS2_GFX | BRF_GRA },
- { "pcf.18m", 0x100000, 0x756c3754, CPS2_GFX | BRF_GRA },
- { "pcf.20m", 0x100000, 0x9ec9277d, CPS2_GFX | BRF_GRA },
-
- { "pcf.01", 0x020000, 0x254e5f33, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "pcf.02", 0x020000, 0x6902f4f9, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "pcf.11m", 0x400000, 0xa5dea005, CPS2_QSND | BRF_SND },
- { "pcf.12m", 0x400000, 0x4ce235fe, CPS2_QSND | BRF_SND },
-
- { "sgemfa.key", 0x000014, 0xdd513738, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Sgemfa)
-STD_ROM_FN(Sgemfa)
-
-static struct BurnRomInfo SgemfhRomDesc[] = {
- { "pcfh.03", 0x080000, 0xe9103347, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pcf.04", 0x080000, 0xf4314c96, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pcf.05", 0x080000, 0x215655f6, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pcf.06", 0x080000, 0xea6f13ea, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pcf.07", 0x080000, 0x5ac6d5ea, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "pcf.13m", 0x400000, 0x22d72ab9, CPS2_GFX | BRF_GRA },
- { "pcf.15m", 0x400000, 0x16a4813c, CPS2_GFX | BRF_GRA },
- { "pcf.17m", 0x400000, 0x1097e035, CPS2_GFX | BRF_GRA },
- { "pcf.19m", 0x400000, 0xd362d874, CPS2_GFX | BRF_GRA },
- { "pcf.14m", 0x100000, 0x0383897c, CPS2_GFX | BRF_GRA },
- { "pcf.16m", 0x100000, 0x76f91084, CPS2_GFX | BRF_GRA },
- { "pcf.18m", 0x100000, 0x756c3754, CPS2_GFX | BRF_GRA },
- { "pcf.20m", 0x100000, 0x9ec9277d, CPS2_GFX | BRF_GRA },
-
- { "pcf.01", 0x020000, 0x254e5f33, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "pcf.02", 0x020000, 0x6902f4f9, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "pcf.11m", 0x400000, 0xa5dea005, CPS2_QSND | BRF_SND },
- { "pcf.12m", 0x400000, 0x4ce235fe, CPS2_QSND | BRF_SND },
-
- { "sgemfh.key", 0x000014, 0xf97f4b7d, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Sgemfh)
-STD_ROM_FN(Sgemfh)
-
-static struct BurnRomInfo Spf2tRomDesc[] = {
- { "pzfe.03", 0x080000, 0x2af51954, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pzf.04", 0x080000, 0xb80649e2, CPS2_PRG_68K | BRF_ESS | BRF_PRG }, // marked pzfe.04 but same as pzf.04
-
- { "pzf.14m", 0x100000, 0x2d4881cb, CPS2_GFX | BRF_GRA },
- { "pzf.16m", 0x100000, 0x4b0fd1be, CPS2_GFX | BRF_GRA },
- { "pzf.18m", 0x100000, 0xe43aac33, CPS2_GFX | BRF_GRA },
- { "pzf.20m", 0x100000, 0x7f536ff1, CPS2_GFX | BRF_GRA },
-
- { "pzf.01", 0x020000, 0x600fb2a3, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "pzf.02", 0x020000, 0x496076e0, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "pzf.11m", 0x200000, 0x78442743, CPS2_QSND | BRF_SND },
- { "pzf.12m", 0x200000, 0x399d2c7b, CPS2_QSND | BRF_SND },
-
- { "spf2t.key", 0x000014, 0x4c4dc7e3, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Spf2t)
-STD_ROM_FN(Spf2t)
-
-static struct BurnRomInfo Spf2tuRomDesc[] = {
- { "pzfu.03a", 0x080000, 0x346e62ef, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pzf.04", 0x080000, 0xb80649e2, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "pzf.14m", 0x100000, 0x2d4881cb, CPS2_GFX | BRF_GRA },
- { "pzf.16m", 0x100000, 0x4b0fd1be, CPS2_GFX | BRF_GRA },
- { "pzf.18m", 0x100000, 0xe43aac33, CPS2_GFX | BRF_GRA },
- { "pzf.20m", 0x100000, 0x7f536ff1, CPS2_GFX | BRF_GRA },
-
- { "pzf.01", 0x020000, 0x600fb2a3, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "pzf.02", 0x020000, 0x496076e0, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "pzf.11m", 0x200000, 0x78442743, CPS2_QSND | BRF_SND },
- { "pzf.12m", 0x200000, 0x399d2c7b, CPS2_QSND | BRF_SND },
-
- { "spf2tu.key", 0x000014, 0x5d7b15e8, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Spf2tu)
-STD_ROM_FN(Spf2tu)
-
-static struct BurnRomInfo Spf2taRomDesc[] = {
- { "pzfa.03", 0x080000, 0x3cecfa78, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pzf.04", 0x080000, 0xb80649e2, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "pzf.14m", 0x100000, 0x2d4881cb, CPS2_GFX | BRF_GRA },
- { "pzf.16m", 0x100000, 0x4b0fd1be, CPS2_GFX | BRF_GRA },
- { "pzf.18m", 0x100000, 0xe43aac33, CPS2_GFX | BRF_GRA },
- { "pzf.20m", 0x100000, 0x7f536ff1, CPS2_GFX | BRF_GRA },
-
- { "pzf.01", 0x020000, 0x600fb2a3, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "pzf.02", 0x020000, 0x496076e0, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "pzf.11m", 0x200000, 0x78442743, CPS2_QSND | BRF_SND },
- { "pzf.12m", 0x200000, 0x399d2c7b, CPS2_QSND | BRF_SND },
-
- { "spf2ta.key", 0x000014, 0x61e93a18, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Spf2ta)
-STD_ROM_FN(Spf2ta)
-
-static struct BurnRomInfo Spf2thRomDesc[] = {
- { "pzfh.03", 0x080000, 0x20510f2d, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pzf.04", 0x080000, 0xb80649e2, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "pzf.14m", 0x100000, 0x2d4881cb, CPS2_GFX | BRF_GRA },
- { "pzf.16m", 0x100000, 0x4b0fd1be, CPS2_GFX | BRF_GRA },
- { "pzf.18m", 0x100000, 0xe43aac33, CPS2_GFX | BRF_GRA },
- { "pzf.20m", 0x100000, 0x7f536ff1, CPS2_GFX | BRF_GRA },
-
- { "pzf.01", 0x020000, 0x600fb2a3, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "pzf.02", 0x020000, 0x496076e0, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "pzf.11m", 0x200000, 0x78442743, CPS2_QSND | BRF_SND },
- { "pzf.12m", 0x200000, 0x399d2c7b, CPS2_QSND | BRF_SND },
-
- { "spf2th.key", 0x000014, 0x292db449, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Spf2th)
-STD_ROM_FN(Spf2th)
-
-static struct BurnRomInfo Spf2xjRomDesc[] = {
- { "pzfj.03a", 0x080000, 0x2070554a, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pzf.04", 0x080000, 0xb80649e2, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "pzf.14m", 0x100000, 0x2d4881cb, CPS2_GFX | BRF_GRA },
- { "pzf.16m", 0x100000, 0x4b0fd1be, CPS2_GFX | BRF_GRA },
- { "pzf.18m", 0x100000, 0xe43aac33, CPS2_GFX | BRF_GRA },
- { "pzf.20m", 0x100000, 0x7f536ff1, CPS2_GFX | BRF_GRA },
-
- { "pzf.01", 0x020000, 0x600fb2a3, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "pzf.02", 0x020000, 0x496076e0, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "pzf.11m", 0x200000, 0x78442743, CPS2_QSND | BRF_SND },
- { "pzf.12m", 0x200000, 0x399d2c7b, CPS2_QSND | BRF_SND },
-
- { "spf2xj.key", 0x000014, 0xdc39fd34, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Spf2xj)
-STD_ROM_FN(Spf2xj)
-
-static struct BurnRomInfo Ssf2RomDesc[] = {
- { "ssfe-03b", 0x080000, 0xaf654792, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "ssfe.04", 0x080000, 0xb082aa67, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "ssfe.05", 0x080000, 0x02b9c137, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "ssfe-06b", 0x080000, 0x1c8e44a8, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "ssfe.07", 0x080000, 0x2409001d, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "ssf.13m", 0x200000, 0xcf94d275, CPS2_GFX | BRF_GRA },
- { "ssf.15m", 0x200000, 0x5eb703af, CPS2_GFX | BRF_GRA },
- { "ssf.17m", 0x200000, 0xffa60e0f, CPS2_GFX | BRF_GRA },
- { "ssf.19m", 0x200000, 0x34e825c5, CPS2_GFX | BRF_GRA },
- { "ssf.14m", 0x100000, 0xb7cc32e7, CPS2_GFX | BRF_GRA },
- { "ssf.16m", 0x100000, 0x8376ad18, CPS2_GFX | BRF_GRA },
- { "ssf.18m", 0x100000, 0xf5b1b336, CPS2_GFX | BRF_GRA },
- { "ssf.20m", 0x100000, 0x459d5c6b, CPS2_GFX | BRF_GRA },
-
- { "ssf-01a", 0x020000, 0x71fcdfc9, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "ssf.q01", 0x080000, 0xa6f9da5c, CPS2_QSND | BRF_SND },
- { "ssf.q02", 0x080000, 0x8c66ae26, CPS2_QSND | BRF_SND },
- { "ssf.q03", 0x080000, 0x695cc2ca, CPS2_QSND | BRF_SND },
- { "ssf.q04", 0x080000, 0x9d9ebe32, CPS2_QSND | BRF_SND },
- { "ssf.q05", 0x080000, 0x4770e7b7, CPS2_QSND | BRF_SND },
- { "ssf.q06", 0x080000, 0x4e79c951, CPS2_QSND | BRF_SND },
- { "ssf.q07", 0x080000, 0xcdd14313, CPS2_QSND | BRF_SND },
- { "ssf.q08", 0x080000, 0x6f5a088c, CPS2_QSND | BRF_SND },
-
- { "ssf2.key", 0x000014, 0xe469ccbb, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Ssf2)
-STD_ROM_FN(Ssf2)
-
-static struct BurnRomInfo Ssf2r1RomDesc[] = {
- { "ssfe.03", 0x080000, 0xa597745d, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "ssfe.04", 0x080000, 0xb082aa67, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "ssfe.05", 0x080000, 0x02b9c137, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "ssfe.06", 0x080000, 0x70d470c5, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "ssfe.07", 0x080000, 0x2409001d, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "ssf.13m", 0x200000, 0xcf94d275, CPS2_GFX | BRF_GRA },
- { "ssf.15m", 0x200000, 0x5eb703af, CPS2_GFX | BRF_GRA },
- { "ssf.17m", 0x200000, 0xffa60e0f, CPS2_GFX | BRF_GRA },
- { "ssf.19m", 0x200000, 0x34e825c5, CPS2_GFX | BRF_GRA },
- { "ssf.14m", 0x100000, 0xb7cc32e7, CPS2_GFX | BRF_GRA },
- { "ssf.16m", 0x100000, 0x8376ad18, CPS2_GFX | BRF_GRA },
- { "ssf.18m", 0x100000, 0xf5b1b336, CPS2_GFX | BRF_GRA },
- { "ssf.20m", 0x100000, 0x459d5c6b, CPS2_GFX | BRF_GRA },
-
- { "ssf.01", 0x020000, 0xeb247e8c, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "ssf.q01", 0x080000, 0xa6f9da5c, CPS2_QSND | BRF_SND },
- { "ssf.q02", 0x080000, 0x8c66ae26, CPS2_QSND | BRF_SND },
- { "ssf.q03", 0x080000, 0x695cc2ca, CPS2_QSND | BRF_SND },
- { "ssf.q04", 0x080000, 0x9d9ebe32, CPS2_QSND | BRF_SND },
- { "ssf.q05", 0x080000, 0x4770e7b7, CPS2_QSND | BRF_SND },
- { "ssf.q06", 0x080000, 0x4e79c951, CPS2_QSND | BRF_SND },
- { "ssf.q07", 0x080000, 0xcdd14313, CPS2_QSND | BRF_SND },
- { "ssf.q08", 0x080000, 0x6f5a088c, CPS2_QSND | BRF_SND },
-
- { "ssf2.key", 0x000014, 0xe469ccbb, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Ssf2r1)
-STD_ROM_FN(Ssf2r1)
-
-static struct BurnRomInfo Ssf2aRomDesc[] = {
- { "ssfa.03b", 0x080000, 0x83a059bf, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "ssfa.04a", 0x080000, 0x5d873642, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "ssfa.05", 0x080000, 0xf8fb4de2, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "ssfa.06b", 0x080000, 0x3185d19d, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "ssfa.07", 0x080000, 0x36e29217, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "ssf.13m", 0x200000, 0xcf94d275, CPS2_GFX | BRF_GRA },
- { "ssf.15m", 0x200000, 0x5eb703af, CPS2_GFX | BRF_GRA },
- { "ssf.17m", 0x200000, 0xffa60e0f, CPS2_GFX | BRF_GRA },
- { "ssf.19m", 0x200000, 0x34e825c5, CPS2_GFX | BRF_GRA },
- { "ssf.14m", 0x100000, 0xb7cc32e7, CPS2_GFX | BRF_GRA },
- { "ssf.16m", 0x100000, 0x8376ad18, CPS2_GFX | BRF_GRA },
- { "ssf.18m", 0x100000, 0xf5b1b336, CPS2_GFX | BRF_GRA },
- { "ssf.20m", 0x100000, 0x459d5c6b, CPS2_GFX | BRF_GRA },
-
- { "ssf.01", 0x020000, 0xeb247e8c, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "ssf.q01", 0x080000, 0xa6f9da5c, CPS2_QSND | BRF_SND },
- { "ssf.q02", 0x080000, 0x8c66ae26, CPS2_QSND | BRF_SND },
- { "ssf.q03", 0x080000, 0x695cc2ca, CPS2_QSND | BRF_SND },
- { "ssf.q04", 0x080000, 0x9d9ebe32, CPS2_QSND | BRF_SND },
- { "ssf.q05", 0x080000, 0x4770e7b7, CPS2_QSND | BRF_SND },
- { "ssf.q06", 0x080000, 0x4e79c951, CPS2_QSND | BRF_SND },
- { "ssf.q07", 0x080000, 0xcdd14313, CPS2_QSND | BRF_SND },
- { "ssf.q08", 0x080000, 0x6f5a088c, CPS2_QSND | BRF_SND },
-
- { "ssf2a.key", 0x000014, 0x5fb6013f, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Ssf2a)
-STD_ROM_FN(Ssf2a)
-
-static struct BurnRomInfo Ssf2ar1RomDesc[] = {
- { "ssfa.03a", 0x080000, 0xd2a3c520, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "ssfa.04a", 0x080000, 0x5d873642, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "ssfa.05", 0x080000, 0xf8fb4de2, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "ssfa.06", 0x080000, 0xaa8acee7, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "ssfa.07", 0x080000, 0x36e29217, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "ssf.13m", 0x200000, 0xcf94d275, CPS2_GFX | BRF_GRA },
- { "ssf.15m", 0x200000, 0x5eb703af, CPS2_GFX | BRF_GRA },
- { "ssf.17m", 0x200000, 0xffa60e0f, CPS2_GFX | BRF_GRA },
- { "ssf.19m", 0x200000, 0x34e825c5, CPS2_GFX | BRF_GRA },
- { "ssf.14m", 0x100000, 0xb7cc32e7, CPS2_GFX | BRF_GRA },
- { "ssf.16m", 0x100000, 0x8376ad18, CPS2_GFX | BRF_GRA },
- { "ssf.18m", 0x100000, 0xf5b1b336, CPS2_GFX | BRF_GRA },
- { "ssf.20m", 0x100000, 0x459d5c6b, CPS2_GFX | BRF_GRA },
-
- { "ssf.01", 0x020000, 0xeb247e8c, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "ssf.q01", 0x080000, 0xa6f9da5c, CPS2_QSND | BRF_SND },
- { "ssf.q02", 0x080000, 0x8c66ae26, CPS2_QSND | BRF_SND },
- { "ssf.q03", 0x080000, 0x695cc2ca, CPS2_QSND | BRF_SND },
- { "ssf.q04", 0x080000, 0x9d9ebe32, CPS2_QSND | BRF_SND },
- { "ssf.q05", 0x080000, 0x4770e7b7, CPS2_QSND | BRF_SND },
- { "ssf.q06", 0x080000, 0x4e79c951, CPS2_QSND | BRF_SND },
- { "ssf.q07", 0x080000, 0xcdd14313, CPS2_QSND | BRF_SND },
- { "ssf.q08", 0x080000, 0x6f5a088c, CPS2_QSND | BRF_SND },
-
- { "ssf2a.key", 0x000014, 0x5fb6013f, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Ssf2ar1)
-STD_ROM_FN(Ssf2ar1)
-
-static struct BurnRomInfo Ssf2hRomDesc[] = {
- { "ssfh.03", 0x080000, 0xb086b355, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "ssfh.04", 0x080000, 0x1e629b29, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "ssfh.05", 0x080000, 0xb5997e10, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "ssfh.06", 0x080000, 0x793b8fad, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "ssfh.07", 0x080000, 0xcbb92ac3, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "ssf.13m", 0x200000, 0xcf94d275, CPS2_GFX | BRF_GRA },
- { "ssf.15m", 0x200000, 0x5eb703af, CPS2_GFX | BRF_GRA },
- { "ssf.17m", 0x200000, 0xffa60e0f, CPS2_GFX | BRF_GRA },
- { "ssf.19m", 0x200000, 0x34e825c5, CPS2_GFX | BRF_GRA },
- { "ssf.14m", 0x100000, 0xb7cc32e7, CPS2_GFX | BRF_GRA },
- { "ssf.16m", 0x100000, 0x8376ad18, CPS2_GFX | BRF_GRA },
- { "ssf.18m", 0x100000, 0xf5b1b336, CPS2_GFX | BRF_GRA },
- { "ssf.20m", 0x100000, 0x459d5c6b, CPS2_GFX | BRF_GRA },
-
- { "ssf.01", 0x020000, 0xeb247e8c, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "ssf.q01", 0x080000, 0xa6f9da5c, CPS2_QSND | BRF_SND },
- { "ssf.q02", 0x080000, 0x8c66ae26, CPS2_QSND | BRF_SND },
- { "ssf.q03", 0x080000, 0x695cc2ca, CPS2_QSND | BRF_SND },
- { "ssf.q04", 0x080000, 0x9d9ebe32, CPS2_QSND | BRF_SND },
- { "ssf.q05", 0x080000, 0x4770e7b7, CPS2_QSND | BRF_SND },
- { "ssf.q06", 0x080000, 0x4e79c951, CPS2_QSND | BRF_SND },
- { "ssf.q07", 0x080000, 0xcdd14313, CPS2_QSND | BRF_SND },
- { "ssf.q08", 0x080000, 0x6f5a088c, CPS2_QSND | BRF_SND },
-
- { "ssf2h.key", 0x000014, 0x8331bc8e, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Ssf2h)
-STD_ROM_FN(Ssf2h)
-
-static struct BurnRomInfo Ssf2jRomDesc[] = {
- { "ssfj.03b", 0x080000, 0x5c2e356d, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "ssfj.04a", 0x080000, 0x013bd55c, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "ssfj.05", 0x080000, 0x0918d19a, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "ssfj.06b", 0x080000, 0x014e0c6d, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "ssfj.07", 0x080000, 0xeb6a9b1b, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "ssf.13m", 0x200000, 0xcf94d275, CPS2_GFX | BRF_GRA },
- { "ssf.15m", 0x200000, 0x5eb703af, CPS2_GFX | BRF_GRA },
- { "ssf.17m", 0x200000, 0xffa60e0f, CPS2_GFX | BRF_GRA },
- { "ssf.19m", 0x200000, 0x34e825c5, CPS2_GFX | BRF_GRA },
- { "ssf.14m", 0x100000, 0xb7cc32e7, CPS2_GFX | BRF_GRA },
- { "ssf.16m", 0x100000, 0x8376ad18, CPS2_GFX | BRF_GRA },
- { "ssf.18m", 0x100000, 0xf5b1b336, CPS2_GFX | BRF_GRA },
- { "ssf.20m", 0x100000, 0x459d5c6b, CPS2_GFX | BRF_GRA },
-
- { "ssf.01", 0x020000, 0xeb247e8c, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "ssf.q01", 0x080000, 0xa6f9da5c, CPS2_QSND | BRF_SND },
- { "ssf.q02", 0x080000, 0x8c66ae26, CPS2_QSND | BRF_SND },
- { "ssf.q03", 0x080000, 0x695cc2ca, CPS2_QSND | BRF_SND },
- { "ssf.q04", 0x080000, 0x9d9ebe32, CPS2_QSND | BRF_SND },
- { "ssf.q05", 0x080000, 0x4770e7b7, CPS2_QSND | BRF_SND },
- { "ssf.q06", 0x080000, 0x4e79c951, CPS2_QSND | BRF_SND },
- { "ssf.q07", 0x080000, 0xcdd14313, CPS2_QSND | BRF_SND },
- { "ssf.q08", 0x080000, 0x6f5a088c, CPS2_QSND | BRF_SND },
-
- { "ssf2j.key", 0x000014, 0xbca45cc2, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Ssf2j)
-STD_ROM_FN(Ssf2j)
-
-static struct BurnRomInfo Ssf2jr1RomDesc[] = {
- { "ssfj.03a", 0x080000, 0x0bbf1304, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "ssfj.04a", 0x080000, 0x013bd55c, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "ssfj.05", 0x080000, 0x0918d19a, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "ssfj.06", 0x080000, 0xd808a6cd, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "ssfj.07", 0x080000, 0xeb6a9b1b, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "ssf.13m", 0x200000, 0xcf94d275, CPS2_GFX | BRF_GRA },
- { "ssf.15m", 0x200000, 0x5eb703af, CPS2_GFX | BRF_GRA },
- { "ssf.17m", 0x200000, 0xffa60e0f, CPS2_GFX | BRF_GRA },
- { "ssf.19m", 0x200000, 0x34e825c5, CPS2_GFX | BRF_GRA },
- { "ssf.14m", 0x100000, 0xb7cc32e7, CPS2_GFX | BRF_GRA },
- { "ssf.16m", 0x100000, 0x8376ad18, CPS2_GFX | BRF_GRA },
- { "ssf.18m", 0x100000, 0xf5b1b336, CPS2_GFX | BRF_GRA },
- { "ssf.20m", 0x100000, 0x459d5c6b, CPS2_GFX | BRF_GRA },
-
- { "ssf.01", 0x020000, 0xeb247e8c, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "ssf.q01", 0x080000, 0xa6f9da5c, CPS2_QSND | BRF_SND },
- { "ssf.q02", 0x080000, 0x8c66ae26, CPS2_QSND | BRF_SND },
- { "ssf.q03", 0x080000, 0x695cc2ca, CPS2_QSND | BRF_SND },
- { "ssf.q04", 0x080000, 0x9d9ebe32, CPS2_QSND | BRF_SND },
- { "ssf.q05", 0x080000, 0x4770e7b7, CPS2_QSND | BRF_SND },
- { "ssf.q06", 0x080000, 0x4e79c951, CPS2_QSND | BRF_SND },
- { "ssf.q07", 0x080000, 0xcdd14313, CPS2_QSND | BRF_SND },
- { "ssf.q08", 0x080000, 0x6f5a088c, CPS2_QSND | BRF_SND },
-
- { "ssf2j.key", 0x000014, 0xbca45cc2, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Ssf2jr1)
-STD_ROM_FN(Ssf2jr1)
-
-static struct BurnRomInfo Ssf2jr2RomDesc[] = {
- { "ssfj.03", 0x080000, 0x7eb0efed, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "ssfj.04", 0x080000, 0xd7322164, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "ssfj.05", 0x080000, 0x0918d19a, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "ssfj.06", 0x080000, 0xd808a6cd, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "ssfj.07", 0x080000, 0xeb6a9b1b, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "ssf.13m", 0x200000, 0xcf94d275, CPS2_GFX | BRF_GRA },
- { "ssf.15m", 0x200000, 0x5eb703af, CPS2_GFX | BRF_GRA },
- { "ssf.17m", 0x200000, 0xffa60e0f, CPS2_GFX | BRF_GRA },
- { "ssf.19m", 0x200000, 0x34e825c5, CPS2_GFX | BRF_GRA },
- { "ssf.14m", 0x100000, 0xb7cc32e7, CPS2_GFX | BRF_GRA },
- { "ssf.16m", 0x100000, 0x8376ad18, CPS2_GFX | BRF_GRA },
- { "ssf.18m", 0x100000, 0xf5b1b336, CPS2_GFX | BRF_GRA },
- { "ssf.20m", 0x100000, 0x459d5c6b, CPS2_GFX | BRF_GRA },
-
- { "ssf.01", 0x020000, 0xeb247e8c, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "ssf.q01", 0x080000, 0xa6f9da5c, CPS2_QSND | BRF_SND },
- { "ssf.q02", 0x080000, 0x8c66ae26, CPS2_QSND | BRF_SND },
- { "ssf.q03", 0x080000, 0x695cc2ca, CPS2_QSND | BRF_SND },
- { "ssf.q04", 0x080000, 0x9d9ebe32, CPS2_QSND | BRF_SND },
- { "ssf.q05", 0x080000, 0x4770e7b7, CPS2_QSND | BRF_SND },
- { "ssf.q06", 0x080000, 0x4e79c951, CPS2_QSND | BRF_SND },
- { "ssf.q07", 0x080000, 0xcdd14313, CPS2_QSND | BRF_SND },
- { "ssf.q08", 0x080000, 0x6f5a088c, CPS2_QSND | BRF_SND },
-
- { "ssf2j.key", 0x000014, 0xbca45cc2, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Ssf2jr2)
-STD_ROM_FN(Ssf2jr2)
-
-static struct BurnRomInfo Ssf2uRomDesc[] = {
- { "ssfu.03a", 0x080000, 0x72f29c33, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "ssfu.04a", 0x080000, 0x935cea44, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "ssfu.05", 0x080000, 0xa0acb28a, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "ssfu.06", 0x080000, 0x47413dcf, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "ssfu.07", 0x080000, 0xe6066077, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "ssf.13m", 0x200000, 0xcf94d275, CPS2_GFX | BRF_GRA },
- { "ssf.15m", 0x200000, 0x5eb703af, CPS2_GFX | BRF_GRA },
- { "ssf.17m", 0x200000, 0xffa60e0f, CPS2_GFX | BRF_GRA },
- { "ssf.19m", 0x200000, 0x34e825c5, CPS2_GFX | BRF_GRA },
- { "ssf.14m", 0x100000, 0xb7cc32e7, CPS2_GFX | BRF_GRA },
- { "ssf.16m", 0x100000, 0x8376ad18, CPS2_GFX | BRF_GRA },
- { "ssf.18m", 0x100000, 0xf5b1b336, CPS2_GFX | BRF_GRA },
- { "ssf.20m", 0x100000, 0x459d5c6b, CPS2_GFX | BRF_GRA },
-
- { "ssf.01", 0x020000, 0xeb247e8c, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "ssf.q01", 0x080000, 0xa6f9da5c, CPS2_QSND | BRF_SND },
- { "ssf.q02", 0x080000, 0x8c66ae26, CPS2_QSND | BRF_SND },
- { "ssf.q03", 0x080000, 0x695cc2ca, CPS2_QSND | BRF_SND },
- { "ssf.q04", 0x080000, 0x9d9ebe32, CPS2_QSND | BRF_SND },
- { "ssf.q05", 0x080000, 0x4770e7b7, CPS2_QSND | BRF_SND },
- { "ssf.q06", 0x080000, 0x4e79c951, CPS2_QSND | BRF_SND },
- { "ssf.q07", 0x080000, 0xcdd14313, CPS2_QSND | BRF_SND },
- { "ssf.q08", 0x080000, 0x6f5a088c, CPS2_QSND | BRF_SND },
-
- { "ssf2u.key", 0x000014, 0x2f4f8e9d, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Ssf2u)
-STD_ROM_FN(Ssf2u)
-
-static struct BurnRomInfo Ssf2tbRomDesc[] = {
- { "ssfe.03tc", 0x080000, 0x496a8409, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "ssfe.04tc", 0x080000, 0x4b45c18b, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "ssfe.05t", 0x080000, 0x6a9c6444, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "ssfe.06tb", 0x080000, 0xe4944fc3, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "ssfe.07t", 0x080000, 0x2c9f4782, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "ssf.13m", 0x200000, 0xcf94d275, CPS2_GFX | BRF_GRA },
- { "ssf.15m", 0x200000, 0x5eb703af, CPS2_GFX | BRF_GRA },
- { "ssf.17m", 0x200000, 0xffa60e0f, CPS2_GFX | BRF_GRA },
- { "ssf.19m", 0x200000, 0x34e825c5, CPS2_GFX | BRF_GRA },
- { "ssf.14m", 0x100000, 0xb7cc32e7, CPS2_GFX | BRF_GRA },
- { "ssf.16m", 0x100000, 0x8376ad18, CPS2_GFX | BRF_GRA },
- { "ssf.18m", 0x100000, 0xf5b1b336, CPS2_GFX | BRF_GRA },
- { "ssf.20m", 0x100000, 0x459d5c6b, CPS2_GFX | BRF_GRA },
-
- { "ssf.01", 0x020000, 0xeb247e8c, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "ssf.q01", 0x080000, 0xa6f9da5c, CPS2_QSND | BRF_SND },
- { "ssf.q02", 0x080000, 0x8c66ae26, CPS2_QSND | BRF_SND },
- { "ssf.q03", 0x080000, 0x695cc2ca, CPS2_QSND | BRF_SND },
- { "ssf.q04", 0x080000, 0x9d9ebe32, CPS2_QSND | BRF_SND },
- { "ssf.q05", 0x080000, 0x4770e7b7, CPS2_QSND | BRF_SND },
- { "ssf.q06", 0x080000, 0x4e79c951, CPS2_QSND | BRF_SND },
- { "ssf.q07", 0x080000, 0xcdd14313, CPS2_QSND | BRF_SND },
- { "ssf.q08", 0x080000, 0x6f5a088c, CPS2_QSND | BRF_SND },
-
- { "ssf2tb.key", 0x000014, 0x1ecc92b2, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Ssf2tb)
-STD_ROM_FN(Ssf2tb)
-
-static struct BurnRomInfo Ssf2tbaRomDesc[] = {
- { "ssfa.03tb", 0x080000, 0x8de631d2, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "ssfa.04ta", 0x080000, 0xabef3042, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "ssfa.05t", 0x080000, 0xedfa018f, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "ssfa.06tb", 0x080000, 0x2b9d1dbc, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "ssfa.07t", 0x080000, 0xf4a25159, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "ssf.13m", 0x200000, 0xcf94d275, CPS2_GFX | BRF_GRA },
- { "ssf.15m", 0x200000, 0x5eb703af, CPS2_GFX | BRF_GRA },
- { "ssf.17m", 0x200000, 0xffa60e0f, CPS2_GFX | BRF_GRA },
- { "ssf.19m", 0x200000, 0x34e825c5, CPS2_GFX | BRF_GRA },
- { "ssf.14m", 0x100000, 0xb7cc32e7, CPS2_GFX | BRF_GRA },
- { "ssf.16m", 0x100000, 0x8376ad18, CPS2_GFX | BRF_GRA },
- { "ssf.18m", 0x100000, 0xf5b1b336, CPS2_GFX | BRF_GRA },
- { "ssf.20m", 0x100000, 0x459d5c6b, CPS2_GFX | BRF_GRA },
-
- { "ssf-01a", 0x020000, 0x71fcdfc9, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "ssf.q01", 0x080000, 0xa6f9da5c, CPS2_QSND | BRF_SND },
- { "ssf.q02", 0x080000, 0x8c66ae26, CPS2_QSND | BRF_SND },
- { "ssf.q03", 0x080000, 0x695cc2ca, CPS2_QSND | BRF_SND },
- { "ssf.q04", 0x080000, 0x9d9ebe32, CPS2_QSND | BRF_SND },
- { "ssf.q05", 0x080000, 0x4770e7b7, CPS2_QSND | BRF_SND },
- { "ssf.q06", 0x080000, 0x4e79c951, CPS2_QSND | BRF_SND },
- { "ssf.q07", 0x080000, 0xcdd14313, CPS2_QSND | BRF_SND },
- { "ssf.q08", 0x080000, 0x6f5a088c, CPS2_QSND | BRF_SND },
-
- { "ssf2tba.key", 0x000014, 0x8d2740ed, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Ssf2tba)
-STD_ROM_FN(Ssf2tba)
-
-static struct BurnRomInfo Ssf2tbr1RomDesc[] = {
- { "ssfe.03t", 0x080000, 0x1e018e34, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "ssfe.04t", 0x080000, 0xac92efaf, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "ssfe.05t", 0x080000, 0x6a9c6444, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "ssfe.06t", 0x080000, 0xf442562b, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "ssfe.07t", 0x080000, 0x2c9f4782, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "ssf.13m", 0x200000, 0xcf94d275, CPS2_GFX | BRF_GRA },
- { "ssf.15m", 0x200000, 0x5eb703af, CPS2_GFX | BRF_GRA },
- { "ssf.17m", 0x200000, 0xffa60e0f, CPS2_GFX | BRF_GRA },
- { "ssf.19m", 0x200000, 0x34e825c5, CPS2_GFX | BRF_GRA },
- { "ssf.14m", 0x100000, 0xb7cc32e7, CPS2_GFX | BRF_GRA },
- { "ssf.16m", 0x100000, 0x8376ad18, CPS2_GFX | BRF_GRA },
- { "ssf.18m", 0x100000, 0xf5b1b336, CPS2_GFX | BRF_GRA },
- { "ssf.20m", 0x100000, 0x459d5c6b, CPS2_GFX | BRF_GRA },
-
- { "ssf.01", 0x020000, 0xeb247e8c, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "ssf.q01", 0x080000, 0xa6f9da5c, CPS2_QSND | BRF_SND },
- { "ssf.q02", 0x080000, 0x8c66ae26, CPS2_QSND | BRF_SND },
- { "ssf.q03", 0x080000, 0x695cc2ca, CPS2_QSND | BRF_SND },
- { "ssf.q04", 0x080000, 0x9d9ebe32, CPS2_QSND | BRF_SND },
- { "ssf.q05", 0x080000, 0x4770e7b7, CPS2_QSND | BRF_SND },
- { "ssf.q06", 0x080000, 0x4e79c951, CPS2_QSND | BRF_SND },
- { "ssf.q07", 0x080000, 0xcdd14313, CPS2_QSND | BRF_SND },
- { "ssf.q08", 0x080000, 0x6f5a088c, CPS2_QSND | BRF_SND },
-
- { "ssf2tb.key", 0x000014, 0x1ecc92b2, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Ssf2tbr1)
-STD_ROM_FN(Ssf2tbr1)
-
-static struct BurnRomInfo Ssf2tbjRomDesc[] = {
- { "ssftj.03b", 0x080000, 0xe78a3433, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "ssftj.04t", 0x080000, 0xb4dc1906, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "ssftj.05", 0x080000, 0xa7e35fbc, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "ssfj.06tb", 0x080000, 0x0737c30d, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "ssfj.07t", 0x080000, 0x1f239515, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "ssf.13m", 0x200000, 0xcf94d275, CPS2_GFX | BRF_GRA },
- { "ssf.15m", 0x200000, 0x5eb703af, CPS2_GFX | BRF_GRA },
- { "ssf.17m", 0x200000, 0xffa60e0f, CPS2_GFX | BRF_GRA },
- { "ssf.19m", 0x200000, 0x34e825c5, CPS2_GFX | BRF_GRA },
- { "ssf.14m", 0x100000, 0xb7cc32e7, CPS2_GFX | BRF_GRA },
- { "ssf.16m", 0x100000, 0x8376ad18, CPS2_GFX | BRF_GRA },
- { "ssf.18m", 0x100000, 0xf5b1b336, CPS2_GFX | BRF_GRA },
- { "ssf.20m", 0x100000, 0x459d5c6b, CPS2_GFX | BRF_GRA },
-
- { "ssf.01", 0x020000, 0xeb247e8c, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "ssf.q01", 0x080000, 0xa6f9da5c, CPS2_QSND | BRF_SND },
- { "ssf.q02", 0x080000, 0x8c66ae26, CPS2_QSND | BRF_SND },
- { "ssf.q03", 0x080000, 0x695cc2ca, CPS2_QSND | BRF_SND },
- { "ssf.q04", 0x080000, 0x9d9ebe32, CPS2_QSND | BRF_SND },
- { "ssf.q05", 0x080000, 0x4770e7b7, CPS2_QSND | BRF_SND },
- { "ssf.q06", 0x080000, 0x4e79c951, CPS2_QSND | BRF_SND },
- { "ssf.q07", 0x080000, 0xcdd14313, CPS2_QSND | BRF_SND },
- { "ssf.q08", 0x080000, 0x6f5a088c, CPS2_QSND | BRF_SND },
-
- { "ssf2tbj.key", 0x000014, 0xbcc2e017, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Ssf2tbj)
-STD_ROM_FN(Ssf2tbj)
-
-static struct BurnRomInfo Ssf2tbj1RomDesc[] = {
- { "ssfj.03t", 0x080000, 0x980d4450, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "ssfj.04t", 0x080000, 0xb4dc1906, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "ssfj.05t", 0x080000, 0xa7e35fbc, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "ssfj.06t", 0x080000, 0xcb592b30, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "ssfj.07t", 0x080000, 0x1f239515, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "ssf.13m", 0x200000, 0xcf94d275, CPS2_GFX | BRF_GRA },
- { "ssf.15m", 0x200000, 0x5eb703af, CPS2_GFX | BRF_GRA },
- { "ssf.17m", 0x200000, 0xffa60e0f, CPS2_GFX | BRF_GRA },
- { "ssf.19m", 0x200000, 0x34e825c5, CPS2_GFX | BRF_GRA },
- { "ssf.14m", 0x100000, 0xb7cc32e7, CPS2_GFX | BRF_GRA },
- { "ssf.16m", 0x100000, 0x8376ad18, CPS2_GFX | BRF_GRA },
- { "ssf.18m", 0x100000, 0xf5b1b336, CPS2_GFX | BRF_GRA },
- { "ssf.20m", 0x100000, 0x459d5c6b, CPS2_GFX | BRF_GRA },
-
- { "ssf.01", 0x020000, 0xeb247e8c, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "ssf.q01", 0x080000, 0xa6f9da5c, CPS2_QSND | BRF_SND },
- { "ssf.q02", 0x080000, 0x8c66ae26, CPS2_QSND | BRF_SND },
- { "ssf.q03", 0x080000, 0x695cc2ca, CPS2_QSND | BRF_SND },
- { "ssf.q04", 0x080000, 0x9d9ebe32, CPS2_QSND | BRF_SND },
- { "ssf.q05", 0x080000, 0x4770e7b7, CPS2_QSND | BRF_SND },
- { "ssf.q06", 0x080000, 0x4e79c951, CPS2_QSND | BRF_SND },
- { "ssf.q07", 0x080000, 0xcdd14313, CPS2_QSND | BRF_SND },
- { "ssf.q08", 0x080000, 0x6f5a088c, CPS2_QSND | BRF_SND },
-
- { "ssf2tbj.key", 0x000014, 0xbcc2e017, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Ssf2tbj1)
-STD_ROM_FN(Ssf2tbj1)
-
-static struct BurnRomInfo Ssf2tbhRomDesc[] = {
- { "ssfh.03tb", 0x080000, 0x6db7d28b, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "ssfh.04t", 0x080000, 0x0fe7d895, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "ssfh.05t", 0x080000, 0x41be4f2d, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "ssfh.06tb", 0x080000, 0xd2522eb1, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "ssfh.07t", 0x080000, 0xb1c3a3c6, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "ssf.13m", 0x200000, 0xcf94d275, CPS2_GFX | BRF_GRA },
- { "ssf.15m", 0x200000, 0x5eb703af, CPS2_GFX | BRF_GRA },
- { "ssf.17m", 0x200000, 0xffa60e0f, CPS2_GFX | BRF_GRA },
- { "ssf.19m", 0x200000, 0x34e825c5, CPS2_GFX | BRF_GRA },
- { "ssf.14m", 0x100000, 0xb7cc32e7, CPS2_GFX | BRF_GRA },
- { "ssf.16m", 0x100000, 0x8376ad18, CPS2_GFX | BRF_GRA },
- { "ssf.18m", 0x100000, 0xf5b1b336, CPS2_GFX | BRF_GRA },
- { "ssf.20m", 0x100000, 0x459d5c6b, CPS2_GFX | BRF_GRA },
-
- { "ssf.01", 0x020000, 0xeb247e8c, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "ssf.q01", 0x080000, 0xa6f9da5c, CPS2_QSND | BRF_SND },
- { "ssf.q02", 0x080000, 0x8c66ae26, CPS2_QSND | BRF_SND },
- { "ssf.q03", 0x080000, 0x695cc2ca, CPS2_QSND | BRF_SND },
- { "ssf.q04", 0x080000, 0x9d9ebe32, CPS2_QSND | BRF_SND },
- { "ssf.q05", 0x080000, 0x4770e7b7, CPS2_QSND | BRF_SND },
- { "ssf.q06", 0x080000, 0x4e79c951, CPS2_QSND | BRF_SND },
- { "ssf.q07", 0x080000, 0xcdd14313, CPS2_QSND | BRF_SND },
- { "ssf.q08", 0x080000, 0x6f5a088c, CPS2_QSND | BRF_SND },
-
- { "ssf2tbh.key", 0x000014, 0xfddecf4f, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Ssf2tbh)
-STD_ROM_FN(Ssf2tbh)
-
-static struct BurnRomInfo Ssf2tRomDesc[] = {
- { "sfxe.03c", 0x080000, 0x2fa1f396, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfxe.04a", 0x080000, 0xd0bc29c6, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfxe.05", 0x080000, 0x65222964, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfxe.06a", 0x080000, 0x8fe9f531, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfxe.07", 0x080000, 0x8a7d0cb6, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfxe.08", 0x080000, 0x74c24062, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfx.09", 0x080000, 0x642fae3f, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "sfx.13m", 0x200000, 0xcf94d275, CPS2_GFX | BRF_GRA },
- { "sfx.15m", 0x200000, 0x5eb703af, CPS2_GFX | BRF_GRA },
- { "sfx.17m", 0x200000, 0xffa60e0f, CPS2_GFX | BRF_GRA },
- { "sfx.19m", 0x200000, 0x34e825c5, CPS2_GFX | BRF_GRA },
- { "sfx.14m", 0x100000, 0xb7cc32e7, CPS2_GFX | BRF_GRA },
- { "sfx.16m", 0x100000, 0x8376ad18, CPS2_GFX | BRF_GRA },
- { "sfx.18m", 0x100000, 0xf5b1b336, CPS2_GFX | BRF_GRA },
- { "sfx.20m", 0x100000, 0x459d5c6b, CPS2_GFX | BRF_GRA },
- { "sfx.21m", 0x100000, 0xe32854af, CPS2_GFX | BRF_GRA },
- { "sfx.23m", 0x100000, 0x760f2927, CPS2_GFX | BRF_GRA },
- { "sfx.25m", 0x100000, 0x1ee90208, CPS2_GFX | BRF_GRA },
- { "sfx.27m", 0x100000, 0xf814400f, CPS2_GFX | BRF_GRA },
-
- { "sfx.01", 0x020000, 0xb47b8835, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "sfx.02", 0x020000, 0x0022633f, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "sfx.11m", 0x200000, 0x9bdbd476, CPS2_QSND | BRF_SND },
- { "sfx.12m", 0x200000, 0xa05e3aab, CPS2_QSND | BRF_SND },
-
- { "ssf2t.key", 0x000014, 0x524d608e, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Ssf2t)
-STD_ROM_FN(Ssf2t)
-
-static struct BurnRomInfo Ssf2taRomDesc[] = {
- { "sfxa.03c", 0x080000, 0x04b9ff34, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfxa.04a", 0x080000, 0x16ea5f7a, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfxa.05", 0x080000, 0x53d61f0c, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfxa.06a", 0x080000, 0x066d09b5, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfxa.07", 0x080000, 0xa428257b, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfxa.08", 0x080000, 0x39be596c, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfx.09", 0x080000, 0x642fae3f, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "sfx.13m", 0x200000, 0xcf94d275, CPS2_GFX | BRF_GRA },
- { "sfx.15m", 0x200000, 0x5eb703af, CPS2_GFX | BRF_GRA },
- { "sfx.17m", 0x200000, 0xffa60e0f, CPS2_GFX | BRF_GRA },
- { "sfx.19m", 0x200000, 0x34e825c5, CPS2_GFX | BRF_GRA },
- { "sfx.14m", 0x100000, 0xb7cc32e7, CPS2_GFX | BRF_GRA },
- { "sfx.16m", 0x100000, 0x8376ad18, CPS2_GFX | BRF_GRA },
- { "sfx.18m", 0x100000, 0xf5b1b336, CPS2_GFX | BRF_GRA },
- { "sfx.20m", 0x100000, 0x459d5c6b, CPS2_GFX | BRF_GRA },
- { "sfx.21m", 0x100000, 0xe32854af, CPS2_GFX | BRF_GRA },
- { "sfx.23m", 0x100000, 0x760f2927, CPS2_GFX | BRF_GRA },
- { "sfx.25m", 0x100000, 0x1ee90208, CPS2_GFX | BRF_GRA },
- { "sfx.27m", 0x100000, 0xf814400f, CPS2_GFX | BRF_GRA },
-
- { "sfx.01", 0x020000, 0xb47b8835, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "sfx.02", 0x020000, 0x0022633f, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "sfx.11m", 0x200000, 0x9bdbd476, CPS2_QSND | BRF_SND },
- { "sfx.12m", 0x200000, 0xa05e3aab, CPS2_QSND | BRF_SND },
-
- { "ssf2ta.key", 0x000014, 0xc11fa8e9, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Ssf2ta)
-STD_ROM_FN(Ssf2ta)
-
-static struct BurnRomInfo Ssf2thRomDesc[] = {
- { "sfxh.03c", 0x080000, 0xfbe80dfe, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfxh.04a", 0x080000, 0xef9dd4b1, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfxh.05", 0x080000, 0x09e56ecc, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfxh.06a", 0x080000, 0xe6f210be, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfxh.07", 0x080000, 0x900ba1a4, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfxh.08", 0x080000, 0xc15f0424, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfxh.09", 0x080000, 0x5b92b3f9, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "sfx.13m", 0x200000, 0xcf94d275, CPS2_GFX | BRF_GRA },
- { "sfx.15m", 0x200000, 0x5eb703af, CPS2_GFX | BRF_GRA },
- { "sfx.17m", 0x200000, 0xffa60e0f, CPS2_GFX | BRF_GRA },
- { "sfx.19m", 0x200000, 0x34e825c5, CPS2_GFX | BRF_GRA },
- { "sfx.14m", 0x100000, 0xb7cc32e7, CPS2_GFX | BRF_GRA },
- { "sfx.16m", 0x100000, 0x8376ad18, CPS2_GFX | BRF_GRA },
- { "sfx.18m", 0x100000, 0xf5b1b336, CPS2_GFX | BRF_GRA },
- { "sfx.20m", 0x100000, 0x459d5c6b, CPS2_GFX | BRF_GRA },
- { "sfx.21m", 0x100000, 0xe32854af, CPS2_GFX | BRF_GRA },
- { "sfx.23m", 0x100000, 0x760f2927, CPS2_GFX | BRF_GRA },
- { "sfx.25m", 0x100000, 0x1ee90208, CPS2_GFX | BRF_GRA },
- { "sfx.27m", 0x100000, 0xf814400f, CPS2_GFX | BRF_GRA },
-
- { "sfx.01", 0x020000, 0xb47b8835, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "sfx.02", 0x020000, 0x0022633f, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "sfx.11m", 0x200000, 0x9bdbd476, CPS2_QSND | BRF_SND },
- { "sfx.12m", 0x200000, 0xa05e3aab, CPS2_QSND | BRF_SND },
-
- { "ssf2th.key", 0x000014, 0xf6ce6a35, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Ssf2th)
-STD_ROM_FN(Ssf2th)
-
-static struct BurnRomInfo Ssf2tuRomDesc[] = {
- { "sfxu.03e", 0x080000, 0xd6ff689e, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfxu.04a", 0x080000, 0x532b5ffd, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfxu.05", 0x080000, 0xffa3c6de, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfxu.06b", 0x080000, 0x83f9382b, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfxu.07a", 0x080000, 0x6ab673e8, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfxu.08", 0x080000, 0xb3c71810, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfx.09", 0x080000, 0x642fae3f, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "sfx.13m", 0x200000, 0xcf94d275, CPS2_GFX | BRF_GRA },
- { "sfx.15m", 0x200000, 0x5eb703af, CPS2_GFX | BRF_GRA },
- { "sfx.17m", 0x200000, 0xffa60e0f, CPS2_GFX | BRF_GRA },
- { "sfx.19m", 0x200000, 0x34e825c5, CPS2_GFX | BRF_GRA },
- { "sfx.14m", 0x100000, 0xb7cc32e7, CPS2_GFX | BRF_GRA },
- { "sfx.16m", 0x100000, 0x8376ad18, CPS2_GFX | BRF_GRA },
- { "sfx.18m", 0x100000, 0xf5b1b336, CPS2_GFX | BRF_GRA },
- { "sfx.20m", 0x100000, 0x459d5c6b, CPS2_GFX | BRF_GRA },
- { "sfx.21m", 0x100000, 0xe32854af, CPS2_GFX | BRF_GRA },
- { "sfx.23m", 0x100000, 0x760f2927, CPS2_GFX | BRF_GRA },
- { "sfx.25m", 0x100000, 0x1ee90208, CPS2_GFX | BRF_GRA },
- { "sfx.27m", 0x100000, 0xf814400f, CPS2_GFX | BRF_GRA },
-
- { "sfx.01", 0x020000, 0xb47b8835, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "sfx.02", 0x020000, 0x0022633f, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "sfx.11m", 0x200000, 0x9bdbd476, CPS2_QSND | BRF_SND },
- { "sfx.12m", 0x200000, 0xa05e3aab, CPS2_QSND | BRF_SND },
-
- { "ssf2tu.key", 0x000014, 0xf7d62def, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Ssf2tu)
-STD_ROM_FN(Ssf2tu)
-
-static struct BurnRomInfo Ssf2tur1RomDesc[] = {
- { "sfxu.03c", 0x080000, 0x86e4a335, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfxu.04a", 0x080000, 0x532b5ffd, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfxu.05", 0x080000, 0xffa3c6de, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfxu.06a", 0x080000, 0xe4c04c99, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfxu.07", 0x080000, 0xd8199e41, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfxu.08", 0x080000, 0xb3c71810, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfx.09", 0x080000, 0x642fae3f, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "sfx.13m", 0x200000, 0xcf94d275, CPS2_GFX | BRF_GRA },
- { "sfx.15m", 0x200000, 0x5eb703af, CPS2_GFX | BRF_GRA },
- { "sfx.17m", 0x200000, 0xffa60e0f, CPS2_GFX | BRF_GRA },
- { "sfx.19m", 0x200000, 0x34e825c5, CPS2_GFX | BRF_GRA },
- { "sfx.14m", 0x100000, 0xb7cc32e7, CPS2_GFX | BRF_GRA },
- { "sfx.16m", 0x100000, 0x8376ad18, CPS2_GFX | BRF_GRA },
- { "sfx.18m", 0x100000, 0xf5b1b336, CPS2_GFX | BRF_GRA },
- { "sfx.20m", 0x100000, 0x459d5c6b, CPS2_GFX | BRF_GRA },
- { "sfx.21m", 0x100000, 0xe32854af, CPS2_GFX | BRF_GRA },
- { "sfx.23m", 0x100000, 0x760f2927, CPS2_GFX | BRF_GRA },
- { "sfx.25m", 0x100000, 0x1ee90208, CPS2_GFX | BRF_GRA },
- { "sfx.27m", 0x100000, 0xf814400f, CPS2_GFX | BRF_GRA },
-
- { "sfx.01", 0x020000, 0xb47b8835, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "sfx.02", 0x020000, 0x0022633f, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "sfx.11m", 0x200000, 0x9bdbd476, CPS2_QSND | BRF_SND },
- { "sfx.12m", 0x200000, 0xa05e3aab, CPS2_QSND | BRF_SND },
-
- { "ssf2tu.key", 0x000014, 0xf7d62def, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Ssf2tur1)
-STD_ROM_FN(Ssf2tur1)
-
-static struct BurnRomInfo Ssf2xjRomDesc[] = {
- { "sfxj.03d", 0x080000, 0x50b52b37, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfxj.04a", 0x080000, 0xaf7767b4, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfxj.05", 0x080000, 0xf4ff18f5, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfxj.06b", 0x080000, 0x413477c2, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfxj.07a", 0x080000, 0xa18b3d83, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfxj.08", 0x080000, 0x2de76f10, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfx.09", 0x080000, 0x642fae3f, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "sfx.13m", 0x200000, 0xcf94d275, CPS2_GFX | BRF_GRA },
- { "sfx.15m", 0x200000, 0x5eb703af, CPS2_GFX | BRF_GRA },
- { "sfx.17m", 0x200000, 0xffa60e0f, CPS2_GFX | BRF_GRA },
- { "sfx.19m", 0x200000, 0x34e825c5, CPS2_GFX | BRF_GRA },
- { "sfx.14m", 0x100000, 0xb7cc32e7, CPS2_GFX | BRF_GRA },
- { "sfx.16m", 0x100000, 0x8376ad18, CPS2_GFX | BRF_GRA },
- { "sfx.18m", 0x100000, 0xf5b1b336, CPS2_GFX | BRF_GRA },
- { "sfx.20m", 0x100000, 0x459d5c6b, CPS2_GFX | BRF_GRA },
- { "sfx.21m", 0x100000, 0xe32854af, CPS2_GFX | BRF_GRA },
- { "sfx.23m", 0x100000, 0x760f2927, CPS2_GFX | BRF_GRA },
- { "sfx.25m", 0x100000, 0x1ee90208, CPS2_GFX | BRF_GRA },
- { "sfx.27m", 0x100000, 0xf814400f, CPS2_GFX | BRF_GRA },
-
- { "sfx.01", 0x020000, 0xb47b8835, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "sfx.02", 0x020000, 0x0022633f, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "sfx.11m", 0x200000, 0x9bdbd476, CPS2_QSND | BRF_SND },
- { "sfx.12m", 0x200000, 0xa05e3aab, CPS2_QSND | BRF_SND },
-
- { "ssf2xj.key", 0x000014, 0x160d1424, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Ssf2xj)
-STD_ROM_FN(Ssf2xj)
-
-static struct BurnRomInfo Ssf2xjr1RomDesc[] = {
- { "sfxj.03c", 0x080000, 0xa7417b79, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfxj.04a", 0x080000, 0xaf7767b4, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfxj.05", 0x080000, 0xf4ff18f5, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfxj.06a", 0x080000, 0x260d0370, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfxj.07", 0x080000, 0x1324d02a, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfxj.08", 0x080000, 0x2de76f10, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfx.09", 0x080000, 0x642fae3f, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "sfx.13m", 0x200000, 0xcf94d275, CPS2_GFX | BRF_GRA },
- { "sfx.15m", 0x200000, 0x5eb703af, CPS2_GFX | BRF_GRA },
- { "sfx.17m", 0x200000, 0xffa60e0f, CPS2_GFX | BRF_GRA },
- { "sfx.19m", 0x200000, 0x34e825c5, CPS2_GFX | BRF_GRA },
- { "sfx.14m", 0x100000, 0xb7cc32e7, CPS2_GFX | BRF_GRA },
- { "sfx.16m", 0x100000, 0x8376ad18, CPS2_GFX | BRF_GRA },
- { "sfx.18m", 0x100000, 0xf5b1b336, CPS2_GFX | BRF_GRA },
- { "sfx.20m", 0x100000, 0x459d5c6b, CPS2_GFX | BRF_GRA },
- { "sfx.21m", 0x100000, 0xe32854af, CPS2_GFX | BRF_GRA },
- { "sfx.23m", 0x100000, 0x760f2927, CPS2_GFX | BRF_GRA },
- { "sfx.25m", 0x100000, 0x1ee90208, CPS2_GFX | BRF_GRA },
- { "sfx.27m", 0x100000, 0xf814400f, CPS2_GFX | BRF_GRA },
-
- { "sfx.01", 0x020000, 0xb47b8835, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "sfx.02", 0x020000, 0x0022633f, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "sfx.11m", 0x200000, 0x9bdbd476, CPS2_QSND | BRF_SND },
- { "sfx.12m", 0x200000, 0xa05e3aab, CPS2_QSND | BRF_SND },
-
- { "ssf2xj.key", 0x000014, 0x160d1424, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Ssf2xjr1)
-STD_ROM_FN(Ssf2xjr1)
-
-static struct BurnRomInfo Ssf2xjr1rRomDesc[] = {
- { "sfxo.03c", 0x080000, 0x2ba33dc6, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfxo.04a", 0x080000, 0xba663dd7, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfxo.05", 0x080000, 0x1321625c, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfxo.06a", 0x080000, 0x0cc490ed, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfxo.07", 0x080000, 0x64b9015e, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfxo.08", 0x080000, 0xb60f4b58, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfxo.09", 0x080000, 0x642fae3f, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "ssf.69", 0x080000, 0xe9123f9f, CPS2_GFX_SPLIT8 | BRF_GRA },
- { "ssf.70", 0x080000, 0x2f8201f3, CPS2_GFX_SPLIT8 | BRF_GRA },
- { "ssf.71", 0x080000, 0x0fa334b4, CPS2_GFX_SPLIT8 | BRF_GRA },
- { "ssf.72", 0x080000, 0xb76740d3, CPS2_GFX_SPLIT8 | BRF_GRA },
- { "ssf.73", 0x080000, 0x14f058ec, CPS2_GFX_SPLIT8 | BRF_GRA },
- { "ssf.74", 0x080000, 0x800c3ae9, CPS2_GFX_SPLIT8 | BRF_GRA },
- { "sfx.75", 0x080000, 0x06cf540b, CPS2_GFX_SPLIT8 | BRF_GRA },
- { "sfx.76", 0x080000, 0x71084e42, CPS2_GFX_SPLIT8 | BRF_GRA },
- { "ssf.59", 0x080000, 0x6eb3ee4d, CPS2_GFX_SPLIT8 | BRF_GRA },
- { "ssf.60", 0x080000, 0x2bcf1eda, CPS2_GFX_SPLIT8 | BRF_GRA },
- { "ssf.61", 0x080000, 0x3330cc11, CPS2_GFX_SPLIT8 | BRF_GRA },
- { "ssf.62", 0x080000, 0x96e2ead3, CPS2_GFX_SPLIT8 | BRF_GRA },
- { "ssf.63", 0x080000, 0xe356a275, CPS2_GFX_SPLIT8 | BRF_GRA },
- { "ssf.64", 0x080000, 0xfec5698b, CPS2_GFX_SPLIT8 | BRF_GRA },
- { "sfx.65", 0x080000, 0x69da0751, CPS2_GFX_SPLIT8 | BRF_GRA },
- { "sfx.66", 0x080000, 0xcc53ec15, CPS2_GFX_SPLIT8 | BRF_GRA },
- { "ssf.79", 0x080000, 0xcf0d44a8, CPS2_GFX_SPLIT8 | BRF_GRA },
- { "ssf.80", 0x080000, 0x56a153a4, CPS2_GFX_SPLIT8 | BRF_GRA },
- { "ssf.81", 0x080000, 0x5484e5f6, CPS2_GFX_SPLIT8 | BRF_GRA },
- { "ssf.82", 0x080000, 0xfce6b7f5, CPS2_GFX_SPLIT8 | BRF_GRA },
- { "ssf.83", 0x080000, 0x042d7970, CPS2_GFX_SPLIT8 | BRF_GRA },
- { "ssf.84", 0x080000, 0x88c472e6, CPS2_GFX_SPLIT8 | BRF_GRA },
- { "sfx.85", 0x080000, 0xa7d66348, CPS2_GFX_SPLIT8 | BRF_GRA },
- { "sfx.86", 0x080000, 0xcf9119c8, CPS2_GFX_SPLIT8 | BRF_GRA },
- { "ssf.89", 0x080000, 0x6d374ad9, CPS2_GFX_SPLIT8 | BRF_GRA },
- { "ssf.90", 0x080000, 0x34cf8bcf, CPS2_GFX_SPLIT8 | BRF_GRA },
- { "ssf.91", 0x080000, 0xd796ea3f, CPS2_GFX_SPLIT8 | BRF_GRA },
- { "ssf.92", 0x080000, 0xc85fb7e3, CPS2_GFX_SPLIT8 | BRF_GRA },
- { "ssf.93", 0x080000, 0x6c50c2b5, CPS2_GFX_SPLIT8 | BRF_GRA },
- { "ssf.94", 0x080000, 0x59549f63, CPS2_GFX_SPLIT8 | BRF_GRA },
- { "sfx.95", 0x080000, 0x86c97869, CPS2_GFX_SPLIT8 | BRF_GRA },
- { "sfx.96", 0x080000, 0x1c0e1989, CPS2_GFX_SPLIT8 | BRF_GRA },
-
- { "sfx.01", 0x020000, 0xb47b8835, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "sfx.02", 0x020000, 0x0022633f, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "ssf.51a", 0x080000, 0x9eda6954, CPS2_QSND | BRF_SND },
- { "ssf.52a", 0x080000, 0x355f6589, CPS2_QSND | BRF_SND },
- { "ssf.53a", 0x080000, 0xd5d08a05, CPS2_QSND | BRF_SND },
- { "ssf.54a", 0x080000, 0x930725eb, CPS2_QSND | BRF_SND },
- { "ssf.55a", 0x080000, 0x827abf3c, CPS2_QSND | BRF_SND },
- { "ssf.56a", 0x080000, 0x3919c0e5, CPS2_QSND | BRF_SND },
- { "ssf.57a", 0x080000, 0x1ba9bfa6, CPS2_QSND | BRF_SND },
- { "ssf.58a", 0x080000, 0x0c89a272, CPS2_QSND | BRF_SND },
-
- { "ssf2xjr1r.key", 0x000014, 0x82c86e63, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Ssf2xjr1r)
-STD_ROM_FN(Ssf2xjr1r)
-
-static struct BurnRomInfo Vhunt2RomDesc[] = {
- { "vh2j.03a", 0x080000, 0x9ae8f186, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vh2j.04a", 0x080000, 0xe2fabf53, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vh2j.05", 0x080000, 0xde34f624, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vh2j.06", 0x080000, 0x6a3b9897, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vh2j.07", 0x080000, 0xb021c029, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vh2j.08", 0x080000, 0xac873dff, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vh2j.09", 0x080000, 0xeaefce9c, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vh2j.10", 0x080000, 0x11730952, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "vh2.13m", 0x400000, 0x3b02ddaa, CPS2_GFX | BRF_GRA },
- { "vh2.15m", 0x400000, 0x4e40de66, CPS2_GFX | BRF_GRA },
- { "vh2.17m", 0x400000, 0xb31d00c9, CPS2_GFX | BRF_GRA },
- { "vh2.19m", 0x400000, 0x149be3ab, CPS2_GFX | BRF_GRA },
- { "vh2.14m", 0x400000, 0xcd09bd63, CPS2_GFX | BRF_GRA },
- { "vh2.16m", 0x400000, 0xe0182c15, CPS2_GFX | BRF_GRA },
- { "vh2.18m", 0x400000, 0x778dc4f6, CPS2_GFX | BRF_GRA },
- { "vh2.20m", 0x400000, 0x605d9d1d, CPS2_GFX | BRF_GRA },
-
- { "vh2.01", 0x020000, 0x67b9f779, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "vh2.02", 0x020000, 0xaaf15fcb, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "vh2.11m", 0x400000, 0x38922efd, CPS2_QSND | BRF_SND },
- { "vh2.12m", 0x400000, 0x6e2430af, CPS2_QSND | BRF_SND },
-
- { "vhunt2.key", 0x000014, 0x61306b20, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Vhunt2)
-STD_ROM_FN(Vhunt2)
-
-static struct BurnRomInfo Vhunt2r1RomDesc[] = {
- { "vh2j.03", 0x080000, 0x1a5feb13, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vh2j.04", 0x080000, 0x434611a5, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vh2j.05", 0x080000, 0xde34f624, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vh2j.06", 0x080000, 0x6a3b9897, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vh2j.07", 0x080000, 0xb021c029, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vh2j.08", 0x080000, 0xac873dff, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vh2j.09", 0x080000, 0xeaefce9c, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vh2j.10", 0x080000, 0x11730952, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "vh2.13m", 0x400000, 0x3b02ddaa, CPS2_GFX | BRF_GRA },
- { "vh2.15m", 0x400000, 0x4e40de66, CPS2_GFX | BRF_GRA },
- { "vh2.17m", 0x400000, 0xb31d00c9, CPS2_GFX | BRF_GRA },
- { "vh2.19m", 0x400000, 0x149be3ab, CPS2_GFX | BRF_GRA },
- { "vh2.14m", 0x400000, 0xcd09bd63, CPS2_GFX | BRF_GRA },
- { "vh2.16m", 0x400000, 0xe0182c15, CPS2_GFX | BRF_GRA },
- { "vh2.18m", 0x400000, 0x778dc4f6, CPS2_GFX | BRF_GRA },
- { "vh2.20m", 0x400000, 0x605d9d1d, CPS2_GFX | BRF_GRA },
-
- { "vh2.01", 0x020000, 0x67b9f779, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "vh2.02", 0x020000, 0xaaf15fcb, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "vh2.11m", 0x400000, 0x38922efd, CPS2_QSND | BRF_SND },
- { "vh2.12m", 0x400000, 0x6e2430af, CPS2_QSND | BRF_SND },
-
- { "vhunt2.key", 0x000014, 0x61306b20, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Vhunt2r1)
-STD_ROM_FN(Vhunt2r1)
-
-static struct BurnRomInfo VsavRomDesc[] = {
- { "vm3e.03d", 0x080000, 0xf5962a8c, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vm3e.04d", 0x080000, 0x21b40ea2, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vm3.05a", 0x080000, 0x4118e00f, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vm3.06a", 0x080000, 0x2f4fd3a9, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vm3.07b", 0x080000, 0xcbda91b8, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vm3.08a", 0x080000, 0x6ca47259, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vm3.09b", 0x080000, 0xf4a339e3, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vm3.10b", 0x080000, 0xfffbb5b8, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "vm3.13m", 0x400000, 0xfd8a11eb, CPS2_GFX | BRF_GRA },
- { "vm3.15m", 0x400000, 0xdd1e7d4e, CPS2_GFX | BRF_GRA },
- { "vm3.17m", 0x400000, 0x6b89445e, CPS2_GFX | BRF_GRA },
- { "vm3.19m", 0x400000, 0x3830fdc7, CPS2_GFX | BRF_GRA },
- { "vm3.14m", 0x400000, 0xc1a28e6c, CPS2_GFX | BRF_GRA },
- { "vm3.16m", 0x400000, 0x194a7304, CPS2_GFX | BRF_GRA },
- { "vm3.18m", 0x400000, 0xdf9a9f47, CPS2_GFX | BRF_GRA },
- { "vm3.20m", 0x400000, 0xc22fc3d9, CPS2_GFX | BRF_GRA },
-
- { "vm3.01", 0x020000, 0xf778769b, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "vm3.02", 0x020000, 0xcc09faa1, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "vm3.11m", 0x400000, 0xe80e956e, CPS2_QSND | BRF_SND },
- { "vm3.12m", 0x400000, 0x9cd71557, CPS2_QSND | BRF_SND },
-
- { "vsav.key", 0x000014, 0xa6e3b164, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Vsav)
-STD_ROM_FN(Vsav)
-
-static struct BurnRomInfo VsavaRomDesc[] = {
- { "vm3a.03d", 0x080000, 0x44c1198f, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vm3a.04d", 0x080000, 0x2218b781, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vm3.05a", 0x080000, 0x4118e00f, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vm3.06a", 0x080000, 0x2f4fd3a9, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vm3.07b", 0x080000, 0xcbda91b8, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vm3.08a", 0x080000, 0x6ca47259, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vm3.09b", 0x080000, 0xf4a339e3, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vm3.10b", 0x080000, 0xfffbb5b8, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "vm3.13m", 0x400000, 0xfd8a11eb, CPS2_GFX | BRF_GRA },
- { "vm3.15m", 0x400000, 0xdd1e7d4e, CPS2_GFX | BRF_GRA },
- { "vm3.17m", 0x400000, 0x6b89445e, CPS2_GFX | BRF_GRA },
- { "vm3.19m", 0x400000, 0x3830fdc7, CPS2_GFX | BRF_GRA },
- { "vm3.14m", 0x400000, 0xc1a28e6c, CPS2_GFX | BRF_GRA },
- { "vm3.16m", 0x400000, 0x194a7304, CPS2_GFX | BRF_GRA },
- { "vm3.18m", 0x400000, 0xdf9a9f47, CPS2_GFX | BRF_GRA },
- { "vm3.20m", 0x400000, 0xc22fc3d9, CPS2_GFX | BRF_GRA },
-
- { "vm3.01", 0x020000, 0xf778769b, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "vm3.02", 0x020000, 0xcc09faa1, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "vm3.11m", 0x400000, 0xe80e956e, CPS2_QSND | BRF_SND },
- { "vm3.12m", 0x400000, 0x9cd71557, CPS2_QSND | BRF_SND },
-
- { "vsava.key", 0x000014, 0x8a3520f4, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Vsava)
-STD_ROM_FN(Vsava)
-
-static struct BurnRomInfo VsavhRomDesc[] = {
- { "vm3h.03a", 0x080000, 0x7cc62df8, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vm3h.04d", 0x080000, 0xd716f3b5, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vm3.05a", 0x080000, 0x4118e00f, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vm3.06a", 0x080000, 0x2f4fd3a9, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vm3.07b", 0x080000, 0xcbda91b8, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vm3.08a", 0x080000, 0x6ca47259, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vm3.09b", 0x080000, 0xf4a339e3, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vm3.10b", 0x080000, 0xfffbb5b8, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "vm3.13m", 0x400000, 0xfd8a11eb, CPS2_GFX | BRF_GRA },
- { "vm3.15m", 0x400000, 0xdd1e7d4e, CPS2_GFX | BRF_GRA },
- { "vm3.17m", 0x400000, 0x6b89445e, CPS2_GFX | BRF_GRA },
- { "vm3.19m", 0x400000, 0x3830fdc7, CPS2_GFX | BRF_GRA },
- { "vm3.14m", 0x400000, 0xc1a28e6c, CPS2_GFX | BRF_GRA },
- { "vm3.16m", 0x400000, 0x194a7304, CPS2_GFX | BRF_GRA },
- { "vm3.18m", 0x400000, 0xdf9a9f47, CPS2_GFX | BRF_GRA },
- { "vm3.20m", 0x400000, 0xc22fc3d9, CPS2_GFX | BRF_GRA },
-
- { "vm3.01", 0x020000, 0xf778769b, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "vm3.02", 0x020000, 0xcc09faa1, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "vm3.11m", 0x400000, 0xe80e956e, CPS2_QSND | BRF_SND },
- { "vm3.12m", 0x400000, 0x9cd71557, CPS2_QSND | BRF_SND },
-
- { "vsavh.key", 0x000014, 0xa7dd6409, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Vsavh)
-STD_ROM_FN(Vsavh)
-
-static struct BurnRomInfo VsavjRomDesc[] = {
- { "vm3j.03d", 0x080000, 0x2a2e74a4, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vm3j.04d", 0x080000, 0x1c2427bc, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vm3j.05a", 0x080000, 0x95ce88d5, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vm3j.06b", 0x080000, 0x2c4297e0, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vm3j.07b", 0x080000, 0xa38aaae7, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vm3j.08a", 0x080000, 0x5773e5c9, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vm3j.09b", 0x080000, 0xd064f8b9, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vm3j.10b", 0x080000, 0x434518e9, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "vm3.13m", 0x400000, 0xfd8a11eb, CPS2_GFX | BRF_GRA },
- { "vm3.15m", 0x400000, 0xdd1e7d4e, CPS2_GFX | BRF_GRA },
- { "vm3.17m", 0x400000, 0x6b89445e, CPS2_GFX | BRF_GRA },
- { "vm3.19m", 0x400000, 0x3830fdc7, CPS2_GFX | BRF_GRA },
- { "vm3.14m", 0x400000, 0xc1a28e6c, CPS2_GFX | BRF_GRA },
- { "vm3.16m", 0x400000, 0x194a7304, CPS2_GFX | BRF_GRA },
- { "vm3.18m", 0x400000, 0xdf9a9f47, CPS2_GFX | BRF_GRA },
- { "vm3.20m", 0x400000, 0xc22fc3d9, CPS2_GFX | BRF_GRA },
-
- { "vm3.01", 0x020000, 0xf778769b, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "vm3.02", 0x020000, 0xcc09faa1, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "vm3.11m", 0x400000, 0xe80e956e, CPS2_QSND | BRF_SND },
- { "vm3.12m", 0x400000, 0x9cd71557, CPS2_QSND | BRF_SND },
-
- { "vsavj.key", 0x000014, 0x36d28ab8, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Vsavj)
-STD_ROM_FN(Vsavj)
-
-static struct BurnRomInfo VsavuRomDesc[] = {
- { "vm3u.03d", 0x080000, 0x1f295274, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vm3u.04d", 0x080000, 0xc46adf81, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vm3.05a", 0x080000, 0x4118e00f, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vm3.06a", 0x080000, 0x2f4fd3a9, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vm3.07b", 0x080000, 0xcbda91b8, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vm3.08a", 0x080000, 0x6ca47259, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vm3.09b", 0x080000, 0xf4a339e3, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vm3.10b", 0x080000, 0xfffbb5b8, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "vm3.13m", 0x400000, 0xfd8a11eb, CPS2_GFX | BRF_GRA },
- { "vm3.15m", 0x400000, 0xdd1e7d4e, CPS2_GFX | BRF_GRA },
- { "vm3.17m", 0x400000, 0x6b89445e, CPS2_GFX | BRF_GRA },
- { "vm3.19m", 0x400000, 0x3830fdc7, CPS2_GFX | BRF_GRA },
- { "vm3.14m", 0x400000, 0xc1a28e6c, CPS2_GFX | BRF_GRA },
- { "vm3.16m", 0x400000, 0x194a7304, CPS2_GFX | BRF_GRA },
- { "vm3.18m", 0x400000, 0xdf9a9f47, CPS2_GFX | BRF_GRA },
- { "vm3.20m", 0x400000, 0xc22fc3d9, CPS2_GFX | BRF_GRA },
-
- { "vm3.01", 0x020000, 0xf778769b, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "vm3.02", 0x020000, 0xcc09faa1, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "vm3.11m", 0x400000, 0xe80e956e, CPS2_QSND | BRF_SND },
- { "vm3.12m", 0x400000, 0x9cd71557, CPS2_QSND | BRF_SND },
-
- { "vsavu.key", 0x000014, 0xff21b9d7, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Vsavu)
-STD_ROM_FN(Vsavu)
-
-static struct BurnRomInfo Vsav2RomDesc[] = {
- { "vs2j.03", 0x080000, 0x89fd86b4, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vs2j.04", 0x080000, 0x107c091b, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vs2j.05", 0x080000, 0x61979638, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vs2j.06", 0x080000, 0xf37c5bc2, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vs2j.07", 0x080000, 0x8f885809, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vs2j.08", 0x080000, 0x2018c120, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vs2j.09", 0x080000, 0xfac3c217, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vs2j.10", 0x080000, 0xeb490213, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "vs2.13m", 0x400000, 0x5c852f52, CPS2_GFX | BRF_GRA },
- { "vs2.15m", 0x400000, 0xa20f58af, CPS2_GFX | BRF_GRA },
- { "vs2.17m", 0x400000, 0x39db59ad, CPS2_GFX | BRF_GRA },
- { "vs2.19m", 0x400000, 0x00c763a7, CPS2_GFX | BRF_GRA },
- { "vs2.14m", 0x400000, 0xcd09bd63, CPS2_GFX | BRF_GRA },
- { "vs2.16m", 0x400000, 0xe0182c15, CPS2_GFX | BRF_GRA },
- { "vs2.18m", 0x400000, 0x778dc4f6, CPS2_GFX | BRF_GRA },
- { "vs2.20m", 0x400000, 0x605d9d1d, CPS2_GFX | BRF_GRA },
-
- { "vs2.01", 0x020000, 0x35190139, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "vs2.02", 0x020000, 0xc32dba09, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "vs2.11m", 0x400000, 0xd67e47b7, CPS2_QSND | BRF_SND },
- { "vs2.12m", 0x400000, 0x6d020a14, CPS2_QSND | BRF_SND },
-
- { "vsav2.key", 0x000014, 0x289028ce, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Vsav2)
-STD_ROM_FN(Vsav2)
-
-static struct BurnRomInfo XmcotaRomDesc[] = {
- { "xmne.03f", 0x080000, 0x5a726d13, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xmne.04f", 0x080000, 0x06a83f3a, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xmne.05b", 0x080000, 0x87b0ed0f, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xmn.06a", 0x080000, 0x1b86a328, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xmn.07a", 0x080000, 0x2c142a44, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xmn.08a", 0x080000, 0xf712d44f, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xmn.09a", 0x080000, 0x9241cae8, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xmne.10b", 0x080000, 0xcb36b0a4, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "xmn.13m", 0x400000, 0xbf4df073, CPS2_GFX | BRF_GRA },
- { "xmn.15m", 0x400000, 0x4d7e4cef, CPS2_GFX | BRF_GRA },
- { "xmn.17m", 0x400000, 0x513eea17, CPS2_GFX | BRF_GRA },
- { "xmn.19m", 0x400000, 0xd23897fc, CPS2_GFX | BRF_GRA },
- { "xmn.14m", 0x400000, 0x778237b7, CPS2_GFX | BRF_GRA },
- { "xmn.16m", 0x400000, 0x67b36948, CPS2_GFX | BRF_GRA },
- { "xmn.18m", 0x400000, 0x015a7c4c, CPS2_GFX | BRF_GRA },
- { "xmn.20m", 0x400000, 0x9dde2758, CPS2_GFX | BRF_GRA },
-
- { "xmn.01a", 0x020000, 0x40f479ea, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "xmn.02a", 0x020000, 0x39d9b5ad, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "xmn.11m", 0x200000, 0xc848a6bc, CPS2_QSND | BRF_SND },
- { "xmn.12m", 0x200000, 0x729c188f, CPS2_QSND | BRF_SND },
-
- { "xmcota.key", 0x000014, 0x6665bbfb, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Xmcota)
-STD_ROM_FN(Xmcota)
-
-static struct BurnRomInfo Xmcotar1RomDesc[] = {
- { "xmne.03e", 0x080000, 0xa9a09b09, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xmne.04e", 0x080000, 0x52fa2106, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xmn.05a", 0x080000, 0xac0d7759, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xmn.06a", 0x080000, 0x1b86a328, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xmn.07a", 0x080000, 0x2c142a44, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xmn.08a", 0x080000, 0xf712d44f, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xmn.09a", 0x080000, 0x9241cae8, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xmn.10a", 0x080000, 0x53c0eab9, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "xmn.13m", 0x400000, 0xbf4df073, CPS2_GFX | BRF_GRA },
- { "xmn.15m", 0x400000, 0x4d7e4cef, CPS2_GFX | BRF_GRA },
- { "xmn.17m", 0x400000, 0x513eea17, CPS2_GFX | BRF_GRA },
- { "xmn.19m", 0x400000, 0xd23897fc, CPS2_GFX | BRF_GRA },
- { "xmn.14m", 0x400000, 0x778237b7, CPS2_GFX | BRF_GRA },
- { "xmn.16m", 0x400000, 0x67b36948, CPS2_GFX | BRF_GRA },
- { "xmn.18m", 0x400000, 0x015a7c4c, CPS2_GFX | BRF_GRA },
- { "xmn.20m", 0x400000, 0x9dde2758, CPS2_GFX | BRF_GRA },
-
- { "xmn.01a", 0x020000, 0x40f479ea, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "xmn.02a", 0x020000, 0x39d9b5ad, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "xmn.11m", 0x200000, 0xc848a6bc, CPS2_QSND | BRF_SND },
- { "xmn.12m", 0x200000, 0x729c188f, CPS2_QSND | BRF_SND },
-
- { "xmcota.key", 0x000014, 0x6665bbfb, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Xmcotar1)
-STD_ROM_FN(Xmcotar1)
-
-static struct BurnRomInfo XmcotaaRomDesc[] = {
- { "xmna.03e", 0x080000, 0xf1ade6e7, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xmna.04e", 0x080000, 0xb5a8843d, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xmn.05a", 0x080000, 0xac0d7759, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xmn.06a", 0x080000, 0x1b86a328, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xmn.07a", 0x080000, 0x2c142a44, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xmn.08a", 0x080000, 0xf712d44f, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xmn.09a", 0x080000, 0x9241cae8, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xmn.10a", 0x080000, 0x53c0eab9, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "xmn.13m", 0x400000, 0xbf4df073, CPS2_GFX | BRF_GRA },
- { "xmn.15m", 0x400000, 0x4d7e4cef, CPS2_GFX | BRF_GRA },
- { "xmn.17m", 0x400000, 0x513eea17, CPS2_GFX | BRF_GRA },
- { "xmn.19m", 0x400000, 0xd23897fc, CPS2_GFX | BRF_GRA },
- { "xmn.14m", 0x400000, 0x778237b7, CPS2_GFX | BRF_GRA },
- { "xmn.16m", 0x400000, 0x67b36948, CPS2_GFX | BRF_GRA },
- { "xmn.18m", 0x400000, 0x015a7c4c, CPS2_GFX | BRF_GRA },
- { "xmn.20m", 0x400000, 0x9dde2758, CPS2_GFX | BRF_GRA },
-
- { "xmn.01a", 0x020000, 0x40f479ea, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "xmn.02a", 0x020000, 0x39d9b5ad, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "xmn.11m", 0x200000, 0xc848a6bc, CPS2_QSND | BRF_SND },
- { "xmn.12m", 0x200000, 0x729c188f, CPS2_QSND | BRF_SND },
-
- { "xmcotaa.key", 0x000014, 0x3fdd2d42, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Xmcotaa)
-STD_ROM_FN(Xmcotaa)
-
-static struct BurnRomInfo Xmcotaar1RomDesc[] = {
- { "xmna.03a", 0x080000, 0x7df8b27e, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xmna.04a", 0x080000, 0xb44e30a7, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xmn.05", 0x080000, 0xc3ed62a2, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xmn.06", 0x080000, 0xf03c52e1, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xmn.07", 0x080000, 0x325626b1, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xmn.08", 0x080000, 0x7194ea10, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xmn.09", 0x080000, 0xae946df3, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xmn.10", 0x080000, 0x32a6be1d, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "xmn.13m", 0x400000, 0xbf4df073, CPS2_GFX | BRF_GRA },
- { "xmn.15m", 0x400000, 0x4d7e4cef, CPS2_GFX | BRF_GRA },
- { "xmn.17m", 0x400000, 0x513eea17, CPS2_GFX | BRF_GRA },
- { "xmn.19m", 0x400000, 0xd23897fc, CPS2_GFX | BRF_GRA },
- { "xmn.14m", 0x400000, 0x778237b7, CPS2_GFX | BRF_GRA },
- { "xmn.16m", 0x400000, 0x67b36948, CPS2_GFX | BRF_GRA },
- { "xmn.18m", 0x400000, 0x015a7c4c, CPS2_GFX | BRF_GRA },
- { "xmn.20m", 0x400000, 0x9dde2758, CPS2_GFX | BRF_GRA },
-
- { "xmn.01a", 0x020000, 0x40f479ea, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "xmn.02a", 0x020000, 0x39d9b5ad, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "xmn.11m", 0x200000, 0xc848a6bc, CPS2_QSND | BRF_SND },
- { "xmn.12m", 0x200000, 0x729c188f, CPS2_QSND | BRF_SND },
-
- { "xmcotaa.key", 0x000014, 0x3fdd2d42, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Xmcotaar1)
-STD_ROM_FN(Xmcotaar1)
-
-static struct BurnRomInfo XmcotahRomDesc[] = {
- { "xmnh.03f", 0x080000, 0xe4b85a90, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xmnh.04f", 0x080000, 0x7dfe1406, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xmnh.05b", 0x080000, 0x87b0ed0f, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xmn.06a", 0x080000, 0x1b86a328, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xmn.07a", 0x080000, 0x2c142a44, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xmn.08a", 0x080000, 0xf712d44f, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xmn.09a", 0x080000, 0x9241cae8, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xmnh.10b", 0x080000, 0xcb36b0a4, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "xmn.13m", 0x400000, 0xbf4df073, CPS2_GFX | BRF_GRA },
- { "xmn.15m", 0x400000, 0x4d7e4cef, CPS2_GFX | BRF_GRA },
- { "xmn.17m", 0x400000, 0x513eea17, CPS2_GFX | BRF_GRA },
- { "xmn.19m", 0x400000, 0xd23897fc, CPS2_GFX | BRF_GRA },
- { "xmn.14m", 0x400000, 0x778237b7, CPS2_GFX | BRF_GRA },
- { "xmn.16m", 0x400000, 0x67b36948, CPS2_GFX | BRF_GRA },
- { "xmn.18m", 0x400000, 0x015a7c4c, CPS2_GFX | BRF_GRA },
- { "xmn.20m", 0x400000, 0x9dde2758, CPS2_GFX | BRF_GRA },
-
- { "xmn.01a", 0x020000, 0x40f479ea, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "xmn.02a", 0x020000, 0x39d9b5ad, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "xmn.11m", 0x200000, 0xc848a6bc, CPS2_QSND | BRF_SND },
- { "xmn.12m", 0x200000, 0x729c188f, CPS2_QSND | BRF_SND },
-
- { "xmcotah.key", 0x000014, 0xc9a45a5a, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Xmcotah)
-STD_ROM_FN(Xmcotah)
-
-static struct BurnRomInfo Xmcotahr1RomDesc[] = {
- { "xmnh.03d", 0x080000, 0x63b0a84f, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xmnh.04d", 0x080000, 0xb1b9b727, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xmn.05a", 0x080000, 0xac0d7759, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xmn.06a", 0x080000, 0x1b86a328, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xmn.07a", 0x080000, 0x2c142a44, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xmn.08a", 0x080000, 0xf712d44f, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xmn.09a", 0x080000, 0x9241cae8, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xmn.10a", 0x080000, 0x53c0eab9, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "xmn.13m", 0x400000, 0xbf4df073, CPS2_GFX | BRF_GRA },
- { "xmn.15m", 0x400000, 0x4d7e4cef, CPS2_GFX | BRF_GRA },
- { "xmn.17m", 0x400000, 0x513eea17, CPS2_GFX | BRF_GRA },
- { "xmn.19m", 0x400000, 0xd23897fc, CPS2_GFX | BRF_GRA },
- { "xmn.14m", 0x400000, 0x778237b7, CPS2_GFX | BRF_GRA },
- { "xmn.16m", 0x400000, 0x67b36948, CPS2_GFX | BRF_GRA },
- { "xmn.18m", 0x400000, 0x015a7c4c, CPS2_GFX | BRF_GRA },
- { "xmn.20m", 0x400000, 0x9dde2758, CPS2_GFX | BRF_GRA },
-
- { "xmn.01a", 0x020000, 0x40f479ea, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "xmn.02a", 0x020000, 0x39d9b5ad, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "xmn.11m", 0x200000, 0xc848a6bc, CPS2_QSND | BRF_SND },
- { "xmn.12m", 0x200000, 0x729c188f, CPS2_QSND | BRF_SND },
-
- { "xmcotah.key", 0x000014, 0xc9a45a5a, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Xmcotahr1)
-STD_ROM_FN(Xmcotahr1)
-
-static struct BurnRomInfo XmcotajRomDesc[] = {
- { "xmnj.03e", 0x080000, 0x0df29f5f, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xmnj.04e", 0x080000, 0x4a65833b, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xmn.05a", 0x080000, 0xac0d7759, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xmn.06a", 0x080000, 0x1b86a328, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xmn.07a", 0x080000, 0x2c142a44, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xmn.08a", 0x080000, 0xf712d44f, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xmn.09a", 0x080000, 0x9241cae8, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xmn.10a", 0x080000, 0x53c0eab9, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "xmn.13m", 0x400000, 0xbf4df073, CPS2_GFX | BRF_GRA },
- { "xmn.15m", 0x400000, 0x4d7e4cef, CPS2_GFX | BRF_GRA },
- { "xmn.17m", 0x400000, 0x513eea17, CPS2_GFX | BRF_GRA },
- { "xmn.19m", 0x400000, 0xd23897fc, CPS2_GFX | BRF_GRA },
- { "xmn.14m", 0x400000, 0x778237b7, CPS2_GFX | BRF_GRA },
- { "xmn.16m", 0x400000, 0x67b36948, CPS2_GFX | BRF_GRA },
- { "xmn.18m", 0x400000, 0x015a7c4c, CPS2_GFX | BRF_GRA },
- { "xmn.20m", 0x400000, 0x9dde2758, CPS2_GFX | BRF_GRA },
-
- { "xmn.01a", 0x020000, 0x40f479ea, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "xmn.02a", 0x020000, 0x39d9b5ad, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "xmn.11m", 0x200000, 0xc848a6bc, CPS2_QSND | BRF_SND },
- { "xmn.12m", 0x200000, 0x729c188f, CPS2_QSND | BRF_SND },
-
- { "xmcotaj.key", 0x000014, 0xd278b4ac, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Xmcotaj)
-STD_ROM_FN(Xmcotaj)
-
-static struct BurnRomInfo Xmcotaj1RomDesc[] = {
- { "xmnj.03d", 0x080000, 0x79086d62, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xmnj.04d", 0x080000, 0x38eed613, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xmn.05", 0x080000, 0xc3ed62a2, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xmn.06", 0x080000, 0xf03c52e1, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xmn.07", 0x080000, 0x325626b1, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xmn.08", 0x080000, 0x7194ea10, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xmn.09", 0x080000, 0xae946df3, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xmn.10", 0x080000, 0x32a6be1d, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "xmn.13m", 0x400000, 0xbf4df073, CPS2_GFX | BRF_GRA },
- { "xmn.15m", 0x400000, 0x4d7e4cef, CPS2_GFX | BRF_GRA },
- { "xmn.17m", 0x400000, 0x513eea17, CPS2_GFX | BRF_GRA },
- { "xmn.19m", 0x400000, 0xd23897fc, CPS2_GFX | BRF_GRA },
- { "xmn.14m", 0x400000, 0x778237b7, CPS2_GFX | BRF_GRA },
- { "xmn.16m", 0x400000, 0x67b36948, CPS2_GFX | BRF_GRA },
- { "xmn.18m", 0x400000, 0x015a7c4c, CPS2_GFX | BRF_GRA },
- { "xmn.20m", 0x400000, 0x9dde2758, CPS2_GFX | BRF_GRA },
-
- { "xmn.01a", 0x020000, 0x40f479ea, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "xmn.02a", 0x020000, 0x39d9b5ad, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "xmn.11m", 0x200000, 0xc848a6bc, CPS2_QSND | BRF_SND },
- { "xmn.12m", 0x200000, 0x729c188f, CPS2_QSND | BRF_SND },
-
- { "xmcotaj.key", 0x000014, 0xd278b4ac, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Xmcotaj1)
-STD_ROM_FN(Xmcotaj1)
-
-static struct BurnRomInfo Xmcotaj2RomDesc[] = {
- { "xmnj.03b", 0x080000, 0xc8175fb3, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xmnj.04b", 0x080000, 0x54b3fba3, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xmn.05", 0x080000, 0xc3ed62a2, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xmn.06", 0x080000, 0xf03c52e1, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xmn.07", 0x080000, 0x325626b1, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xmn.08", 0x080000, 0x7194ea10, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xmn.09", 0x080000, 0xae946df3, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xmn.10", 0x080000, 0x32a6be1d, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "xmn.13m", 0x400000, 0xbf4df073, CPS2_GFX | BRF_GRA },
- { "xmn.15m", 0x400000, 0x4d7e4cef, CPS2_GFX | BRF_GRA },
- { "xmn.17m", 0x400000, 0x513eea17, CPS2_GFX | BRF_GRA },
- { "xmn.19m", 0x400000, 0xd23897fc, CPS2_GFX | BRF_GRA },
- { "xmn.14m", 0x400000, 0x778237b7, CPS2_GFX | BRF_GRA },
- { "xmn.16m", 0x400000, 0x67b36948, CPS2_GFX | BRF_GRA },
- { "xmn.18m", 0x400000, 0x015a7c4c, CPS2_GFX | BRF_GRA },
- { "xmn.20m", 0x400000, 0x9dde2758, CPS2_GFX | BRF_GRA },
-
- { "xmn.01a", 0x020000, 0x40f479ea, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "xmn.02a", 0x020000, 0x39d9b5ad, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "xmn.11m", 0x200000, 0xc848a6bc, CPS2_QSND | BRF_SND },
- { "xmn.12m", 0x200000, 0x729c188f, CPS2_QSND | BRF_SND },
-
- { "xmcotaj.key", 0x000014, 0xd278b4ac, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Xmcotaj2)
-STD_ROM_FN(Xmcotaj2)
-
-static struct BurnRomInfo Xmcotaj3RomDesc[] = {
- { "xmnj.03a", 0x080000, 0x00761611, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xmnj.04a", 0x080000, 0x614d3f60, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xmn.05", 0x080000, 0xc3ed62a2, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xmn.06", 0x080000, 0xf03c52e1, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xmn.07", 0x080000, 0x325626b1, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xmn.08", 0x080000, 0x7194ea10, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xmn.09", 0x080000, 0xae946df3, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xmn.10", 0x080000, 0x32a6be1d, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "xmn.13m", 0x400000, 0xbf4df073, CPS2_GFX | BRF_GRA },
- { "xmn.15m", 0x400000, 0x4d7e4cef, CPS2_GFX | BRF_GRA },
- { "xmn.17m", 0x400000, 0x513eea17, CPS2_GFX | BRF_GRA },
- { "xmn.19m", 0x400000, 0xd23897fc, CPS2_GFX | BRF_GRA },
- { "xmn.14m", 0x400000, 0x778237b7, CPS2_GFX | BRF_GRA },
- { "xmn.16m", 0x400000, 0x67b36948, CPS2_GFX | BRF_GRA },
- { "xmn.18m", 0x400000, 0x015a7c4c, CPS2_GFX | BRF_GRA },
- { "xmn.20m", 0x400000, 0x9dde2758, CPS2_GFX | BRF_GRA },
-
- { "xmn.01a", 0x020000, 0x40f479ea, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "xmn.02a", 0x020000, 0x39d9b5ad, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "xmn.11m", 0x200000, 0xc848a6bc, CPS2_QSND | BRF_SND },
- { "xmn.12m", 0x200000, 0x729c188f, CPS2_QSND | BRF_SND },
-
- { "xmcotaj.key", 0x000014, 0xd278b4ac, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Xmcotaj3)
-STD_ROM_FN(Xmcotaj3)
-
-static struct BurnRomInfo XmcotajrRomDesc[] = {
- { "xmno.03a", 0x080000, 0x7ab19acf, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xmno.04a", 0x080000, 0x7615dd21, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xmno.05a", 0x080000, 0x0303d672, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xmno.06a", 0x080000, 0x332839a5, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xmno.07", 0x080000, 0x6255e8d5, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xmno.08", 0x080000, 0xb8ebe77c, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xmno.09", 0x080000, 0x5440d950, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xmno.10a", 0x080000, 0xb8296966, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "xmn.13m", 0x400000, 0xbf4df073, CPS2_GFX | BRF_GRA },
- { "xmn.15m", 0x400000, 0x4d7e4cef, CPS2_GFX | BRF_GRA },
- { "xmn.17m", 0x400000, 0x513eea17, CPS2_GFX | BRF_GRA },
- { "xmn.19m", 0x400000, 0xd23897fc, CPS2_GFX | BRF_GRA },
- { "xmn.14m", 0x400000, 0x778237b7, CPS2_GFX | BRF_GRA },
- { "xmn.16m", 0x400000, 0x67b36948, CPS2_GFX | BRF_GRA },
- { "xmn.18m", 0x400000, 0x015a7c4c, CPS2_GFX | BRF_GRA },
- { "xmn.20m", 0x400000, 0x9dde2758, CPS2_GFX | BRF_GRA },
-
- { "xmn.01", 0x020000, 0x7178336e, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "xmn.02", 0x020000, 0x0ec58501, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "xmn.11m", 0x200000, 0xc848a6bc, CPS2_QSND | BRF_SND },
- { "xmn.12m", 0x200000, 0x729c188f, CPS2_QSND | BRF_SND },
-
- { "xmcotaj.key", 0x000014, 0xd278b4ac, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Xmcotajr)
-STD_ROM_FN(Xmcotajr)
-
-static struct BurnRomInfo XmcotauRomDesc[] = {
- { "xmnu.03e", 0x080000, 0x0bafeb0e, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xmnu.04e", 0x080000, 0xc29bdae3, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xmn.05a", 0x080000, 0xac0d7759, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xmn.06a", 0x080000, 0x1b86a328, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xmn.07a", 0x080000, 0x2c142a44, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xmn.08a", 0x080000, 0xf712d44f, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xmn.09a", 0x080000, 0x9241cae8, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xmn.10a", 0x080000, 0x53c0eab9, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "xmn.13m", 0x400000, 0xbf4df073, CPS2_GFX | BRF_GRA },
- { "xmn.15m", 0x400000, 0x4d7e4cef, CPS2_GFX | BRF_GRA },
- { "xmn.17m", 0x400000, 0x513eea17, CPS2_GFX | BRF_GRA },
- { "xmn.19m", 0x400000, 0xd23897fc, CPS2_GFX | BRF_GRA },
- { "xmn.14m", 0x400000, 0x778237b7, CPS2_GFX | BRF_GRA },
- { "xmn.16m", 0x400000, 0x67b36948, CPS2_GFX | BRF_GRA },
- { "xmn.18m", 0x400000, 0x015a7c4c, CPS2_GFX | BRF_GRA },
- { "xmn.20m", 0x400000, 0x9dde2758, CPS2_GFX | BRF_GRA },
-
- { "xmn.01a", 0x020000, 0x40f479ea, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "xmn.02a", 0x020000, 0x39d9b5ad, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "xmn.11m", 0x200000, 0xc848a6bc, CPS2_QSND | BRF_SND },
- { "xmn.12m", 0x200000, 0x729c188f, CPS2_QSND | BRF_SND },
-
- { "xmcotau.key", 0x000014, 0x623d3357, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Xmcotau)
-STD_ROM_FN(Xmcotau)
-
-static struct BurnRomInfo XmvsfRomDesc[] = {
- { "xvse.03f", 0x080000, 0xdb06413f, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xvse.04f", 0x080000, 0xef015aef, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xvs.05a", 0x080000, 0x7db6025d, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xvs.06a", 0x080000, 0xe8e2c75c, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xvs.07", 0x080000, 0x08f0abed, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xvs.08", 0x080000, 0x81929675, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xvs.09", 0x080000, 0x9641f36b, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "xvs.13m", 0x400000, 0xf6684efd, CPS2_GFX | BRF_GRA },
- { "xvs.15m", 0x400000, 0x29109221, CPS2_GFX | BRF_GRA },
- { "xvs.17m", 0x400000, 0x92db3474, CPS2_GFX | BRF_GRA },
- { "xvs.19m", 0x400000, 0x3733473c, CPS2_GFX | BRF_GRA },
- { "xvs.14m", 0x400000, 0xbcac2e41, CPS2_GFX | BRF_GRA },
- { "xvs.16m", 0x400000, 0xea04a272, CPS2_GFX | BRF_GRA },
- { "xvs.18m", 0x400000, 0xb0def86a, CPS2_GFX | BRF_GRA },
- { "xvs.20m", 0x400000, 0x4b40ff9f, CPS2_GFX | BRF_GRA },
-
- { "xvs.01", 0x020000, 0x3999e93a, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "xvs.02", 0x020000, 0x101bdee9, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "xvs.11m", 0x200000, 0x9cadcdbc, CPS2_QSND | BRF_SND },
- { "xvs.12m", 0x200000, 0x7b11e460, CPS2_QSND | BRF_SND },
-
- { "xmvsf.key", 0x000014, 0xd5c07311, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Xmvsf)
-STD_ROM_FN(Xmvsf)
-
-static struct BurnRomInfo Xmvsfr1RomDesc[] = {
- { "xvse.03d", 0x080000, 0x5ae5bd3b, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xvse.04d", 0x080000, 0x5eb9c02e, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xvs.05a", 0x080000, 0x7db6025d, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xvs.06a", 0x080000, 0xe8e2c75c, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xvs.07", 0x080000, 0x08f0abed, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xvs.08", 0x080000, 0x81929675, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xvs.09", 0x080000, 0x9641f36b, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "xvs.13m", 0x400000, 0xf6684efd, CPS2_GFX | BRF_GRA },
- { "xvs.15m", 0x400000, 0x29109221, CPS2_GFX | BRF_GRA },
- { "xvs.17m", 0x400000, 0x92db3474, CPS2_GFX | BRF_GRA },
- { "xvs.19m", 0x400000, 0x3733473c, CPS2_GFX | BRF_GRA },
- { "xvs.14m", 0x400000, 0xbcac2e41, CPS2_GFX | BRF_GRA },
- { "xvs.16m", 0x400000, 0xea04a272, CPS2_GFX | BRF_GRA },
- { "xvs.18m", 0x400000, 0xb0def86a, CPS2_GFX | BRF_GRA },
- { "xvs.20m", 0x400000, 0x4b40ff9f, CPS2_GFX | BRF_GRA },
-
- { "xvs.01", 0x020000, 0x3999e93a, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "xvs.02", 0x020000, 0x101bdee9, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "xvs.11m", 0x200000, 0x9cadcdbc, CPS2_QSND | BRF_SND },
- { "xvs.12m", 0x200000, 0x7b11e460, CPS2_QSND | BRF_SND },
-
- { "xmvsf.key", 0x000014, 0xd5c07311, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Xmvsfr1)
-STD_ROM_FN(Xmvsfr1)
-
-static struct BurnRomInfo XmvsfaRomDesc[] = {
- { "xvsa.03k", 0x080000, 0xd0cca7a8, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xvsa.04k", 0x080000, 0x8c8e76fd, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xvs.05a", 0x080000, 0x7db6025d, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xvs.06a", 0x080000, 0xe8e2c75c, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xvs.07", 0x080000, 0x08f0abed, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xvs.08", 0x080000, 0x81929675, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xvs.09", 0x080000, 0x9641f36b, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "xvs.13m", 0x400000, 0xf6684efd, CPS2_GFX | BRF_GRA },
- { "xvs.15m", 0x400000, 0x29109221, CPS2_GFX | BRF_GRA },
- { "xvs.17m", 0x400000, 0x92db3474, CPS2_GFX | BRF_GRA },
- { "xvs.19m", 0x400000, 0x3733473c, CPS2_GFX | BRF_GRA },
- { "xvs.14m", 0x400000, 0xbcac2e41, CPS2_GFX | BRF_GRA },
- { "xvs.16m", 0x400000, 0xea04a272, CPS2_GFX | BRF_GRA },
- { "xvs.18m", 0x400000, 0xb0def86a, CPS2_GFX | BRF_GRA },
- { "xvs.20m", 0x400000, 0x4b40ff9f, CPS2_GFX | BRF_GRA },
-
- { "xvs.01", 0x020000, 0x3999e93a, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "xvs.02", 0x020000, 0x101bdee9, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "xvs.11m", 0x200000, 0x9cadcdbc, CPS2_QSND | BRF_SND },
- { "xvs.12m", 0x200000, 0x7b11e460, CPS2_QSND | BRF_SND },
-
- { "xmvsfa.key", 0x000014, 0x44941468, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Xmvsfa)
-STD_ROM_FN(Xmvsfa)
-
-static struct BurnRomInfo Xmvsfar1RomDesc[] = {
- { "xvsa.03", 0x080000, 0x520054df, CPS2_PRG_68K | BRF_ESS | BRF_PRG }, // Missing revision letter
- { "xvsa.04", 0x080000, 0x13086e55, CPS2_PRG_68K | BRF_ESS | BRF_PRG }, // Missing revision letter
- { "xvs.05a", 0x080000, 0x7db6025d, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xvs.06a", 0x080000, 0xe8e2c75c, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xvs.07", 0x080000, 0x08f0abed, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xvs.08", 0x080000, 0x81929675, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xvs.09", 0x080000, 0x9641f36b, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "xvs.13m", 0x400000, 0xf6684efd, CPS2_GFX | BRF_GRA },
- { "xvs.15m", 0x400000, 0x29109221, CPS2_GFX | BRF_GRA },
- { "xvs.17m", 0x400000, 0x92db3474, CPS2_GFX | BRF_GRA },
- { "xvs.19m", 0x400000, 0x3733473c, CPS2_GFX | BRF_GRA },
- { "xvs.14m", 0x400000, 0xbcac2e41, CPS2_GFX | BRF_GRA },
- { "xvs.16m", 0x400000, 0xea04a272, CPS2_GFX | BRF_GRA },
- { "xvs.18m", 0x400000, 0xb0def86a, CPS2_GFX | BRF_GRA },
- { "xvs.20m", 0x400000, 0x4b40ff9f, CPS2_GFX | BRF_GRA },
-
- { "xvs.01", 0x020000, 0x3999e93a, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "xvs.02", 0x020000, 0x101bdee9, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "xvs.11m", 0x200000, 0x9cadcdbc, CPS2_QSND | BRF_SND },
- { "xvs.12m", 0x200000, 0x7b11e460, CPS2_QSND | BRF_SND },
-
- { "xmvsfa.key", 0x000014, 0x44941468, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Xmvsfar1)
-STD_ROM_FN(Xmvsfar1)
-
-static struct BurnRomInfo Xmvsfar2RomDesc[] = {
- { "xvsa.03e", 0x080000, 0x9bdde21c, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xvsa.04e", 0x080000, 0x33300edf, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xvs.05a", 0x080000, 0x7db6025d, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xvs.06a", 0x080000, 0xe8e2c75c, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xvs.07", 0x080000, 0x08f0abed, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xvs.08", 0x080000, 0x81929675, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xvs.09", 0x080000, 0x9641f36b, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "xvs.13m", 0x400000, 0xf6684efd, CPS2_GFX | BRF_GRA },
- { "xvs.15m", 0x400000, 0x29109221, CPS2_GFX | BRF_GRA },
- { "xvs.17m", 0x400000, 0x92db3474, CPS2_GFX | BRF_GRA },
- { "xvs.19m", 0x400000, 0x3733473c, CPS2_GFX | BRF_GRA },
- { "xvs.14m", 0x400000, 0xbcac2e41, CPS2_GFX | BRF_GRA },
- { "xvs.16m", 0x400000, 0xea04a272, CPS2_GFX | BRF_GRA },
- { "xvs.18m", 0x400000, 0xb0def86a, CPS2_GFX | BRF_GRA },
- { "xvs.20m", 0x400000, 0x4b40ff9f, CPS2_GFX | BRF_GRA },
-
- { "xvs.01", 0x020000, 0x3999e93a, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "xvs.02", 0x020000, 0x101bdee9, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "xvs.11m", 0x200000, 0x9cadcdbc, CPS2_QSND | BRF_SND },
- { "xvs.12m", 0x200000, 0x7b11e460, CPS2_QSND | BRF_SND },
-
- { "xmvsfa.key", 0x000014, 0x44941468, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Xmvsfar2)
-STD_ROM_FN(Xmvsfar2)
-
-static struct BurnRomInfo Xmvsfar3RomDesc[] = {
- { "xvsa.03d", 0x080000, 0x2b164fd7, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xvsa.04d", 0x080000, 0x2d32f039, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xvs.05a", 0x080000, 0x7db6025d, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xvs.06a", 0x080000, 0xe8e2c75c, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xvs.07", 0x080000, 0x08f0abed, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xvs.08", 0x080000, 0x81929675, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xvs.09", 0x080000, 0x9641f36b, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "xvs.13m", 0x400000, 0xf6684efd, CPS2_GFX | BRF_GRA },
- { "xvs.15m", 0x400000, 0x29109221, CPS2_GFX | BRF_GRA },
- { "xvs.17m", 0x400000, 0x92db3474, CPS2_GFX | BRF_GRA },
- { "xvs.19m", 0x400000, 0x3733473c, CPS2_GFX | BRF_GRA },
- { "xvs.14m", 0x400000, 0xbcac2e41, CPS2_GFX | BRF_GRA },
- { "xvs.16m", 0x400000, 0xea04a272, CPS2_GFX | BRF_GRA },
- { "xvs.18m", 0x400000, 0xb0def86a, CPS2_GFX | BRF_GRA },
- { "xvs.20m", 0x400000, 0x4b40ff9f, CPS2_GFX | BRF_GRA },
-
- { "xvs.01", 0x020000, 0x3999e93a, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "xvsa.02", 0x020000, 0x19272e4c, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "xvs.11m", 0x200000, 0x9cadcdbc, CPS2_QSND | BRF_SND },
- { "xvs.12m", 0x200000, 0x7b11e460, CPS2_QSND | BRF_SND },
-
- { "xmvsfa.key", 0x000014, 0x44941468, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Xmvsfar3)
-STD_ROM_FN(Xmvsfar3)
-
-static struct BurnRomInfo XmvsfbRomDesc[] = {
- { "xvsb.03h", 0x080000, 0x05baccca, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xvsb.04h", 0x080000, 0xe350c755, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xvs.05a", 0x080000, 0x7db6025d, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xvs.06a", 0x080000, 0xe8e2c75c, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xvs.07", 0x080000, 0x08f0abed, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xvs.08", 0x080000, 0x81929675, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xvs.09", 0x080000, 0x9641f36b, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "xvs.13m", 0x400000, 0xf6684efd, CPS2_GFX | BRF_GRA },
- { "xvs.15m", 0x400000, 0x29109221, CPS2_GFX | BRF_GRA },
- { "xvs.17m", 0x400000, 0x92db3474, CPS2_GFX | BRF_GRA },
- { "xvs.19m", 0x400000, 0x3733473c, CPS2_GFX | BRF_GRA },
- { "xvs.14m", 0x400000, 0xbcac2e41, CPS2_GFX | BRF_GRA },
- { "xvs.16m", 0x400000, 0xea04a272, CPS2_GFX | BRF_GRA },
- { "xvs.18m", 0x400000, 0xb0def86a, CPS2_GFX | BRF_GRA },
- { "xvs.20m", 0x400000, 0x4b40ff9f, CPS2_GFX | BRF_GRA },
-
- { "xvs.01", 0x020000, 0x3999e93a, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "xvs.02", 0x020000, 0x101bdee9, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "xvs.11m", 0x200000, 0x9cadcdbc, CPS2_QSND | BRF_SND },
- { "xvs.12m", 0x200000, 0x7b11e460, CPS2_QSND | BRF_SND },
-
- { "xmvsfb.key", 0x000014, 0xf0384798, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Xmvsfb)
-STD_ROM_FN(Xmvsfb)
-
-static struct BurnRomInfo XmvsfhRomDesc[] = {
- { "xvsh.03a", 0x080000, 0xd4fffb04, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xvsh.04a", 0x080000, 0x1b4ea638, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xvs.05a", 0x080000, 0x7db6025d, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xvs.06a", 0x080000, 0xe8e2c75c, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xvs.07", 0x080000, 0x08f0abed, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xvs.08", 0x080000, 0x81929675, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xvs.09", 0x080000, 0x9641f36b, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "xvs.13m", 0x400000, 0xf6684efd, CPS2_GFX | BRF_GRA },
- { "xvs.15m", 0x400000, 0x29109221, CPS2_GFX | BRF_GRA },
- { "xvs.17m", 0x400000, 0x92db3474, CPS2_GFX | BRF_GRA },
- { "xvs.19m", 0x400000, 0x3733473c, CPS2_GFX | BRF_GRA },
- { "xvs.14m", 0x400000, 0xbcac2e41, CPS2_GFX | BRF_GRA },
- { "xvs.16m", 0x400000, 0xea04a272, CPS2_GFX | BRF_GRA },
- { "xvs.18m", 0x400000, 0xb0def86a, CPS2_GFX | BRF_GRA },
- { "xvs.20m", 0x400000, 0x4b40ff9f, CPS2_GFX | BRF_GRA },
-
- { "xvs.01", 0x020000, 0x3999e93a, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "xvs.02", 0x020000, 0x101bdee9, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "xvs.11m", 0x200000, 0x9cadcdbc, CPS2_QSND | BRF_SND },
- { "xvs.12m", 0x200000, 0x7b11e460, CPS2_QSND | BRF_SND },
-
- { "xmvsfh.key", 0x000014, 0xf632a36b, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Xmvsfh)
-STD_ROM_FN(Xmvsfh)
-
-static struct BurnRomInfo XmvsfjRomDesc[] = {
- { "xvsj.03k", 0x080000, 0x2a167526, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xvsj.04k", 0x080000, 0xd993436b, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xvs.05a", 0x080000, 0x7db6025d, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xvs.06a", 0x080000, 0xe8e2c75c, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xvs.07", 0x080000, 0x08f0abed, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xvs.08", 0x080000, 0x81929675, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xvs.09", 0x080000, 0x9641f36b, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "xvs.13m", 0x400000, 0xf6684efd, CPS2_GFX | BRF_GRA },
- { "xvs.15m", 0x400000, 0x29109221, CPS2_GFX | BRF_GRA },
- { "xvs.17m", 0x400000, 0x92db3474, CPS2_GFX | BRF_GRA },
- { "xvs.19m", 0x400000, 0x3733473c, CPS2_GFX | BRF_GRA },
- { "xvs.14m", 0x400000, 0xbcac2e41, CPS2_GFX | BRF_GRA },
- { "xvs.16m", 0x400000, 0xea04a272, CPS2_GFX | BRF_GRA },
- { "xvs.18m", 0x400000, 0xb0def86a, CPS2_GFX | BRF_GRA },
- { "xvs.20m", 0x400000, 0x4b40ff9f, CPS2_GFX | BRF_GRA },
-
- { "xvs.01", 0x020000, 0x3999e93a, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "xvs.02", 0x020000, 0x101bdee9, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "xvs.11m", 0x200000, 0x9cadcdbc, CPS2_QSND | BRF_SND },
- { "xvs.12m", 0x200000, 0x7b11e460, CPS2_QSND | BRF_SND },
-
- { "xmvsfj.key", 0x000014, 0x87576cda, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Xmvsfj)
-STD_ROM_FN(Xmvsfj)
-
-static struct BurnRomInfo Xmvsfjr1RomDesc[] = {
- { "xvsj.03i", 0x080000, 0xef24da96, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xvsj.04i", 0x080000, 0x70a59b35, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xvs.05a", 0x080000, 0x7db6025d, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xvs.06a", 0x080000, 0xe8e2c75c, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xvs.07", 0x080000, 0x08f0abed, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xvs.08", 0x080000, 0x81929675, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xvs.09", 0x080000, 0x9641f36b, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "xvs.13m", 0x400000, 0xf6684efd, CPS2_GFX | BRF_GRA },
- { "xvs.15m", 0x400000, 0x29109221, CPS2_GFX | BRF_GRA },
- { "xvs.17m", 0x400000, 0x92db3474, CPS2_GFX | BRF_GRA },
- { "xvs.19m", 0x400000, 0x3733473c, CPS2_GFX | BRF_GRA },
- { "xvs.14m", 0x400000, 0xbcac2e41, CPS2_GFX | BRF_GRA },
- { "xvs.16m", 0x400000, 0xea04a272, CPS2_GFX | BRF_GRA },
- { "xvs.18m", 0x400000, 0xb0def86a, CPS2_GFX | BRF_GRA },
- { "xvs.20m", 0x400000, 0x4b40ff9f, CPS2_GFX | BRF_GRA },
-
- { "xvs.01", 0x020000, 0x3999e93a, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "xvs.02", 0x020000, 0x101bdee9, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "xvs.11m", 0x200000, 0x9cadcdbc, CPS2_QSND | BRF_SND },
- { "xvs.12m", 0x200000, 0x7b11e460, CPS2_QSND | BRF_SND },
-
- { "xmvsfj.key", 0x000014, 0x87576cda, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Xmvsfjr1)
-STD_ROM_FN(Xmvsfjr1)
-
-static struct BurnRomInfo Xmvsfjr2RomDesc[] = {
- { "xvsj.03d", 0x080000, 0xbeb81de9, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xvsj.04d", 0x080000, 0x23d11271, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xvs.05a", 0x080000, 0x7db6025d, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xvs.06a", 0x080000, 0xe8e2c75c, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xvs.07", 0x080000, 0x08f0abed, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xvs.08", 0x080000, 0x81929675, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xvs.09", 0x080000, 0x9641f36b, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "xvs.13m", 0x400000, 0xf6684efd, CPS2_GFX | BRF_GRA },
- { "xvs.15m", 0x400000, 0x29109221, CPS2_GFX | BRF_GRA },
- { "xvs.17m", 0x400000, 0x92db3474, CPS2_GFX | BRF_GRA },
- { "xvs.19m", 0x400000, 0x3733473c, CPS2_GFX | BRF_GRA },
- { "xvs.14m", 0x400000, 0xbcac2e41, CPS2_GFX | BRF_GRA },
- { "xvs.16m", 0x400000, 0xea04a272, CPS2_GFX | BRF_GRA },
- { "xvs.18m", 0x400000, 0xb0def86a, CPS2_GFX | BRF_GRA },
- { "xvs.20m", 0x400000, 0x4b40ff9f, CPS2_GFX | BRF_GRA },
-
- { "xvs.01", 0x020000, 0x3999e93a, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "xvs.02", 0x020000, 0x101bdee9, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "xvs.11m", 0x200000, 0x9cadcdbc, CPS2_QSND | BRF_SND },
- { "xvs.12m", 0x200000, 0x7b11e460, CPS2_QSND | BRF_SND },
-
- { "xmvsfj.key", 0x000014, 0x87576cda, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Xmvsfjr2)
-STD_ROM_FN(Xmvsfjr2)
-
-static struct BurnRomInfo Xmvsfjr3RomDesc[] = {
- { "xvsj.03c", 0x080000, 0x180656a1, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xvsj.04c", 0x080000, 0x5832811c, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xvs.05", 0x080000, 0x030e0e1e, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xvs.06", 0x080000, 0x5d04a8ff, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xvs.07", 0x080000, 0x08f0abed, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xvs.08", 0x080000, 0x81929675, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xvs.09", 0x080000, 0x9641f36b, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "xvs.13m", 0x400000, 0xf6684efd, CPS2_GFX | BRF_GRA },
- { "xvs.15m", 0x400000, 0x29109221, CPS2_GFX | BRF_GRA },
- { "xvs.17m", 0x400000, 0x92db3474, CPS2_GFX | BRF_GRA },
- { "xvs.19m", 0x400000, 0x3733473c, CPS2_GFX | BRF_GRA },
- { "xvs.14m", 0x400000, 0xbcac2e41, CPS2_GFX | BRF_GRA },
- { "xvs.16m", 0x400000, 0xea04a272, CPS2_GFX | BRF_GRA },
- { "xvs.18m", 0x400000, 0xb0def86a, CPS2_GFX | BRF_GRA },
- { "xvs.20m", 0x400000, 0x4b40ff9f, CPS2_GFX | BRF_GRA },
-
- { "xvs.01", 0x020000, 0x3999e93a, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "xvs.02", 0x020000, 0x101bdee9, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "xvs.11m", 0x200000, 0x9cadcdbc, CPS2_QSND | BRF_SND },
- { "xvs.12m", 0x200000, 0x7b11e460, CPS2_QSND | BRF_SND },
-
- { "xmvsfj.key", 0x000014, 0x87576cda, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Xmvsfjr3)
-STD_ROM_FN(Xmvsfjr3)
-
-static struct BurnRomInfo XmvsfuRomDesc[] = {
- { "xvsu.03k", 0x080000, 0x8739ef61, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xvsu.04k", 0x080000, 0xe11d35c1, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xvs.05a", 0x080000, 0x7db6025d, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xvs.06a", 0x080000, 0xe8e2c75c, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xvs.07", 0x080000, 0x08f0abed, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xvs.08", 0x080000, 0x81929675, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xvs.09", 0x080000, 0x9641f36b, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "xvs.13m", 0x400000, 0xf6684efd, CPS2_GFX | BRF_GRA },
- { "xvs.15m", 0x400000, 0x29109221, CPS2_GFX | BRF_GRA },
- { "xvs.17m", 0x400000, 0x92db3474, CPS2_GFX | BRF_GRA },
- { "xvs.19m", 0x400000, 0x3733473c, CPS2_GFX | BRF_GRA },
- { "xvs.14m", 0x400000, 0xbcac2e41, CPS2_GFX | BRF_GRA },
- { "xvs.16m", 0x400000, 0xea04a272, CPS2_GFX | BRF_GRA },
- { "xvs.18m", 0x400000, 0xb0def86a, CPS2_GFX | BRF_GRA },
- { "xvs.20m", 0x400000, 0x4b40ff9f, CPS2_GFX | BRF_GRA },
-
- { "xvs.01", 0x020000, 0x3999e93a, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "xvs.02", 0x020000, 0x101bdee9, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "xvs.11m", 0x200000, 0x9cadcdbc, CPS2_QSND | BRF_SND },
- { "xvs.12m", 0x200000, 0x7b11e460, CPS2_QSND | BRF_SND },
-
- { "xmvsfu.key", 0x000014, 0xeca13458, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Xmvsfu)
-STD_ROM_FN(Xmvsfu)
-
-static struct BurnRomInfo Xmvsfur1RomDesc[] = {
- // US version "I" of Xmen vs Street Fighters has been dumped.
- // It is identical to US version "H" but with different labels.
-// { "xvsu.03i", 0x080000, 0x5481155a, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-// { "xvsu.04i", 0x080000, 0x1e236388, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-// { "xvs.05a", 0x080000, 0x7db6025d, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-// { "xvs.06a", 0x080000, 0xe8e2c75c, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-// { "xvs.07", 0x080000, 0x08f0abed, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-// { "xvs.08", 0x080000, 0x81929675, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-// { "xvs.09", 0x080000, 0x9641f36b, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "xvsu.03h", 0x080000, 0x5481155a, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xvsu.04h", 0x080000, 0x1e236388, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xvs.05a", 0x080000, 0x7db6025d, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xvs.06a", 0x080000, 0xe8e2c75c, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xvs.07", 0x080000, 0x08f0abed, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xvs.08", 0x080000, 0x81929675, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xvs.09", 0x080000, 0x9641f36b, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "xvs.13m", 0x400000, 0xf6684efd, CPS2_GFX | BRF_GRA },
- { "xvs.15m", 0x400000, 0x29109221, CPS2_GFX | BRF_GRA },
- { "xvs.17m", 0x400000, 0x92db3474, CPS2_GFX | BRF_GRA },
- { "xvs.19m", 0x400000, 0x3733473c, CPS2_GFX | BRF_GRA },
- { "xvs.14m", 0x400000, 0xbcac2e41, CPS2_GFX | BRF_GRA },
- { "xvs.16m", 0x400000, 0xea04a272, CPS2_GFX | BRF_GRA },
- { "xvs.18m", 0x400000, 0xb0def86a, CPS2_GFX | BRF_GRA },
- { "xvs.20m", 0x400000, 0x4b40ff9f, CPS2_GFX | BRF_GRA },
-
- { "xvs.01", 0x020000, 0x3999e93a, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "xvs.02", 0x020000, 0x101bdee9, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "xvs.11m", 0x200000, 0x9cadcdbc, CPS2_QSND | BRF_SND },
- { "xvs.12m", 0x200000, 0x7b11e460, CPS2_QSND | BRF_SND },
-
- { "xmvsfu.key", 0x000014, 0xeca13458, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Xmvsfur1)
-STD_ROM_FN(Xmvsfur1)
-
-static struct BurnRomInfo Xmvsfur2RomDesc[] = {
- { "xvsu.03d", 0x080000, 0xbd8b152f, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xvsu.04d", 0x080000, 0x7c7d1da3, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xvs.05a", 0x080000, 0x7db6025d, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xvs.06a", 0x080000, 0xe8e2c75c, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xvs.07", 0x080000, 0x08f0abed, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xvs.08", 0x080000, 0x81929675, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xvs.09", 0x080000, 0x9641f36b, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "xvs.13m", 0x400000, 0xf6684efd, CPS2_GFX | BRF_GRA },
- { "xvs.15m", 0x400000, 0x29109221, CPS2_GFX | BRF_GRA },
- { "xvs.17m", 0x400000, 0x92db3474, CPS2_GFX | BRF_GRA },
- { "xvs.19m", 0x400000, 0x3733473c, CPS2_GFX | BRF_GRA },
- { "xvs.14m", 0x400000, 0xbcac2e41, CPS2_GFX | BRF_GRA },
- { "xvs.16m", 0x400000, 0xea04a272, CPS2_GFX | BRF_GRA },
- { "xvs.18m", 0x400000, 0xb0def86a, CPS2_GFX | BRF_GRA },
- { "xvs.20m", 0x400000, 0x4b40ff9f, CPS2_GFX | BRF_GRA },
-
- { "xvs.01", 0x020000, 0x3999e93a, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "xvs.02", 0x020000, 0x101bdee9, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "xvs.11m", 0x200000, 0x9cadcdbc, CPS2_QSND | BRF_SND },
- { "xvs.12m", 0x200000, 0x7b11e460, CPS2_QSND | BRF_SND },
-
- { "xmvsfu.key", 0x000014, 0xeca13458, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Xmvsfur2)
-STD_ROM_FN(Xmvsfur2)
-
-// Driver functions
-
-static INT32 MmatrixInit()
-{
- Mmatrix = 1;
-
- return Cps2Init();
-}
-
-static INT32 MvscjsingInit()
-{
- // The case has a volume knob, and the digital switches are missing and the slider is missing from the test screen
- Cps2DisableDigitalVolume = 1;
-
- return Cps2Init();
-}
-
-static INT32 Pzloop2Init()
-{
- Pzloop2 = 1;
-
- return Cps2Init();
-}
-
-static INT32 Sfa2Init()
-{
- Sfa2ObjHack = 1;
-
- return Cps2Init();
-}
-
-static INT32 Ssf2Init()
-{
- INT32 nRet = Cps2Init();
-
- nCpsGfxScroll[3] = 0;
-
- return nRet;
-}
-
-static INT32 Ssf2tbInit()
-{
- Ssf2tb = 1;
-
- return Ssf2Init();
-}
-
-static INT32 Ssf2tInit()
-{
- INT32 nRet;
-
- Ssf2t = 1;
-
- nRet = Cps2Init();
-
- nCpsGfxScroll[3] = 0;
-
- return nRet;
-}
-
-static INT32 XmcotaInit()
-{
- Xmcota = 1;
-
- return Cps2Init();
-}
-
-static INT32 DrvExit()
-{
- Pzloop2 = 0;
- Sfa2ObjHack = 0;
- Ssf2t = 0;
- Ssf2tb = 0;
- Xmcota = 0;
- Mmatrix = 0;
-
- Cps2Volume = 39;
- Cps2DisableDigitalVolume = 0;
-
- CpsLayer1XOffs = 0;
- CpsLayer2XOffs = 0;
- CpsLayer3XOffs = 0;
- CpsLayer1YOffs = 0;
- CpsLayer2YOffs = 0;
- CpsLayer3YOffs = 0;
-
- return CpsExit();
-}
-
-// Driver Definitions
-
-struct BurnDriver BurnDrvCps19xx = {
- "19xx", NULL, NULL, NULL, "1995",
- "19XX - the war against destiny (951207 USA)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL, 2, HARDWARE_CAPCOM_CPS2, GBF_VERSHOOT, FBF_19XX,
- NULL, NinexxRomInfo, NinexxRomName, NULL, NULL, NineXXInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 224, 384, 3, 4
-};
-
-struct BurnDriver BurnDrvCps19xxa = {
- "19xxa", "19xx", NULL, NULL, "1995",
- "19XX - the war against destiny (960104 Asia)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL, 2, HARDWARE_CAPCOM_CPS2, GBF_VERSHOOT, FBF_19XX,
- NULL, NinexxaRomInfo, NinexxaRomName, NULL, NULL, NineXXInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 224, 384, 3, 4
-};
-
-struct BurnDriver BurnDrvCps19xxar1 = {
- "19xxar1", "19xx", NULL, NULL, "1995",
- "19XX - the war against destiny (951207 Asia)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL, 2, HARDWARE_CAPCOM_CPS2, GBF_VERSHOOT, FBF_19XX,
- NULL, Ninexxar1RomInfo, Ninexxar1RomName, NULL, NULL, NineXXInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 224, 384, 3, 4
-};
-
-struct BurnDriver BurnDrvCps19xxb = {
- "19xxb", "19xx", NULL, NULL, "1995",
- "19XX - the war against destiny (951218 Brazil)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL, 2, HARDWARE_CAPCOM_CPS2, GBF_VERSHOOT, FBF_19XX,
- NULL, NinexxbRomInfo, NinexxbRomName, NULL, NULL, NineXXInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 224, 384, 3, 4
-};
-
-struct BurnDriver BurnDrvCps19xxh = {
- "19xxh", "19xx", NULL, NULL, "1995",
- "19XX - the war against destiny (951218 Hispanic)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL, 2, HARDWARE_CAPCOM_CPS2, GBF_VERSHOOT, FBF_19XX,
- NULL, NinexxhRomInfo, NinexxhRomName, NULL, NULL, NineXXInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 224, 384, 3, 4
-};
-
-struct BurnDriver BurnDrvCps19xxj = {
- "19xxj", "19xx", NULL, NULL, "1996",
- "19XX - the war against destiny (960104 Japan, yellow case)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL, 2, HARDWARE_CAPCOM_CPS2, GBF_VERSHOOT, FBF_19XX,
- NULL, NinexxjRomInfo, NinexxjRomName, NULL, NULL, NineXXInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 224, 384, 3, 4
-};
-
-struct BurnDriver BurnDrvCps19xxjr1 = {
- "19xxjr1", "19xx", NULL, NULL, "1995",
- "19XX - the war against destiny (951225 Japan)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL, 2, HARDWARE_CAPCOM_CPS2, GBF_VERSHOOT, FBF_19XX,
- NULL, Ninexxjr1RomInfo, Ninexxjr1RomName, NULL, NULL, NineXXInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 224, 384, 3, 4
-};
-
-struct BurnDriver BurnDrvCps19xxjr2 = {
- "19xxjr2", "19xx", NULL, NULL, "1995",
- "19XX - the war against destiny (951207 Japan)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL, 2, HARDWARE_CAPCOM_CPS2, GBF_VERSHOOT, FBF_19XX,
- NULL, Ninexxjr2RomInfo, Ninexxjr2RomName, NULL, NULL, NineXXInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 224, 384, 3, 4
-};
-
-struct BurnDriver BurnDrvCps1944 = {
- "1944", NULL, NULL, NULL, "2000",
- "1944 - the loop master (000620 USA)\0", NULL, "Capcom / 8ing / Raizing", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_CAPCOM_CPS2, GBF_VERSHOOT, FBF_19XX,
- NULL, Nine44RomInfo, Nine44RomName, NULL, NULL, Nine44InputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCps1944j = {
- "1944j", "1944", NULL, NULL, "2000",
- "1944 - the loop master (000620 Japan)\0", NULL, "Capcom / 8ing / Raizing", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VERSHOOT, FBF_19XX,
- NULL, Nine44jRomInfo, Nine44jRomName, NULL, NULL, Nine44InputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsArmwar = {
- "armwar", NULL, NULL, NULL, "1994",
- "Armored Warriors (941024 Europe)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 3, HARDWARE_CAPCOM_CPS2, GBF_SCRFIGHT, 0,
- NULL, ArmwarRomInfo, ArmwarRomName, NULL, NULL, ArmwarInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsArmwarr1 = {
- "armwarr1", "armwar", NULL, NULL, "1994",
- "Armored Warriors (941011 Europe)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 3, HARDWARE_CAPCOM_CPS2, GBF_SCRFIGHT, 0,
- NULL, Armwarr1RomInfo, Armwarr1RomName, NULL, NULL, ArmwarInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsArmwaru = {
- "armwaru", "armwar", NULL, NULL, "1994",
- "Armored Warriors (941024 USA)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 3, HARDWARE_CAPCOM_CPS2, GBF_SCRFIGHT, 0,
- NULL, ArmwaruRomInfo, ArmwaruRomName, NULL, NULL, ArmwarInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsArmwaru1 = {
- "armwaru1", "armwar", NULL, NULL, "1994",
- "Armored Warriors (940920 USA)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 3, HARDWARE_CAPCOM_CPS2, GBF_SCRFIGHT, 0,
- NULL, Armwaru1RomInfo, Armwaru1RomName, NULL, NULL, ArmwarInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsPgear = {
- "pgear", "armwar", NULL, NULL, "1994",
- "Powered Gear - strategic variant armor equipment (941024 Japan)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 3, HARDWARE_CAPCOM_CPS2, GBF_SCRFIGHT, 0,
- NULL, PgearRomInfo, PgearRomName, NULL, NULL, ArmwarInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsPgearr1 = {
- "pgearr1", "armwar", NULL, NULL, "1994",
- "Powered Gear - strategic variant armor equipment (940916 Japan)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 3, HARDWARE_CAPCOM_CPS2, GBF_SCRFIGHT, 0,
- NULL, Pgearr1RomInfo, Pgearr1RomName, NULL, NULL, ArmwarInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsArmwara = {
- "armwara", "armwar", NULL, NULL, "1994",
- "Armored Warriors (941024 Asia)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 3, HARDWARE_CAPCOM_CPS2, GBF_SCRFIGHT, 0,
- NULL, ArmwaraRomInfo, ArmwaraRomName, NULL, NULL, ArmwarInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsArmwarar1 = {
- "armwarar1", "armwar", NULL, NULL, "1994",
- "Armored Warriors (940920 Asia)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 3, HARDWARE_CAPCOM_CPS2, GBF_SCRFIGHT, 0,
- NULL, Armwarar1RomInfo, Armwarar1RomName, NULL, NULL, ArmwarInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsAvsp = {
- "avsp", NULL, NULL, NULL, "1994",
- "Alien vs Predator (940520 Euro)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 3, HARDWARE_CAPCOM_CPS2, GBF_SCRFIGHT, 0,
- NULL, AvspRomInfo, AvspRomName, NULL, NULL, AvspInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsAvspa = {
- "avspa", "avsp", NULL, NULL, "1994",
- "Alien vs Predator (940520 Asia)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 3, HARDWARE_CAPCOM_CPS2, GBF_SCRFIGHT, 0,
- NULL, AvspaRomInfo, AvspaRomName, NULL, NULL, AvspInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsAvsph = {
- "avsph", "avsp", NULL, NULL, "1994",
- "Alien vs Predator (940520 Hispanic)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 3, HARDWARE_CAPCOM_CPS2, GBF_SCRFIGHT, 0,
- NULL, AvsphRomInfo, AvsphRomName, NULL, NULL, AvspInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsAvspj = {
- "avspj", "avsp", NULL, NULL, "1994",
- "Alien vs Predator (940520 Japan)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 3, HARDWARE_CAPCOM_CPS2, GBF_SCRFIGHT, 0,
- NULL, AvspjRomInfo, AvspjRomName, NULL, NULL, AvspInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsAvspu = {
- "avspu", "avsp", NULL, NULL, "1994",
- "Alien vs Predator (940520 USA)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 3, HARDWARE_CAPCOM_CPS2, GBF_SCRFIGHT, 0,
- NULL, AvspuRomInfo, AvspuRomName, NULL, NULL, AvspInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsBatcir = {
- "batcir", NULL, NULL, NULL, "1997",
- "Battle Circuit (970319 Euro)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 4, HARDWARE_CAPCOM_CPS2, GBF_SCRFIGHT, 0,
- NULL, BatcirRomInfo, BatcirRomName, NULL, NULL, BatcirInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsBatcira = {
- "batcira", "batcir", NULL, NULL, "1997",
- "Battle Circuit (970319 Asia)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 4, HARDWARE_CAPCOM_CPS2, GBF_SCRFIGHT, 0,
- NULL, BatciraRomInfo, BatciraRomName, NULL, NULL, BatcirInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsBatcirj = {
- "batcirj", "batcir", NULL, NULL, "1997",
- "Battle Circuit (970319 Japan)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 4, HARDWARE_CAPCOM_CPS2, GBF_SCRFIGHT, 0,
- NULL, BatcirjRomInfo, BatcirjRomName, NULL, NULL, BatcirInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsChoko = {
- "choko", NULL, NULL, NULL, "2001",
- "Choko (010820 Japan)\0", NULL, "Mitchell", "CPS2",
- L"\u9577\u6C5F (Choko 010820 Japan)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_CAPCOM_CPS2 | HARDWARE_CAPCOM_CPS2_SIMM, GBF_PUZZLE, 0,
- NULL, ChokoRomInfo, ChokoRomName, NULL, NULL, ChokoInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsCsclub = {
- "csclub", NULL, NULL, NULL, "1997",
- "Capcom Sports Club (971017 Euro)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_CAPCOM_CPS2, GBF_SPORTSMISC, 0,
- NULL, CsclubRomInfo, CsclubRomName, NULL, NULL, CsclubInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsCsclub1 = {
- "csclub1", "csclub", NULL, NULL, "1997",
- "Capcom Sports Club (970722 Euro)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_SPORTSMISC, 0,
- NULL, Csclub1RomInfo, Csclub1RomName, NULL, NULL, CsclubInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsCscluba = {
- "cscluba", "csclub", NULL, NULL, "1997",
- "Capcom Sports Club (970722 Asia)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_SPORTSMISC, 0,
- NULL, CsclubaRomInfo, CsclubaRomName, NULL, NULL, CsclubInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsCsclubh = {
- "csclubh", "csclub", NULL, NULL, "1997",
- "Capcom Sports Club (970722 Hispanic)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_SPORTSMISC, 0,
- NULL, CsclubhRomInfo, CsclubhRomName, NULL, NULL, CsclubInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsCsclubj = {
- "csclubj", "csclub", NULL, NULL, "1997",
- "Capcom Sports Club (970722 Japan)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_SPORTSMISC, 0,
- NULL, CsclubjRomInfo, CsclubjRomName, NULL, NULL, CsclubInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsCsclubjy = {
- "csclubjy", "csclub", NULL, NULL, "1997",
- "Capcom Sports Club (970722 Japan, yellow case)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_SPORTSMISC, 0,
- NULL, CsclubjyRomInfo, CsclubjyRomName, NULL, NULL, CsclubInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsCybots = {
- "cybots", NULL, NULL, NULL, "1995",
- "Cyberbots - fullmetal madness (950424 Euro)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, 0,
- NULL, CybotsRomInfo, CybotsRomName, NULL, NULL, CybotsInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsCybotsj = {
- "cybotsj", "cybots", NULL, NULL, "1995",
- "Cyberbots - fullmetal madness (950420 Japan)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, 0,
- NULL, CybotsjRomInfo, CybotsjRomName, NULL, NULL, CybotsInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsCybotsu = {
- "cybotsu", "cybots", NULL, NULL, "1995",
- "Cyberbots - fullmetal madness (950424 USA)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, 0,
- NULL, CybotsuRomInfo, CybotsuRomName, NULL, NULL, CybotsInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsDdsom = {
- "ddsom", NULL, NULL, NULL, "1996",
- "Dungeons & Dragons - shadow over mystara (960619 Euro)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 4, HARDWARE_CAPCOM_CPS2, GBF_SCRFIGHT, 0,
- NULL, DdsomRomInfo, DdsomRomName, NULL, NULL, DdsomInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsDdsomr1 = {
- "ddsomr1", "ddsom", NULL, NULL, "1996",
- "Dungeons & Dragons - shadow over mystara (960223 Euro)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 4, HARDWARE_CAPCOM_CPS2, GBF_SCRFIGHT, 0,
- NULL, Ddsomr1RomInfo, Ddsomr1RomName, NULL, NULL, DdsomInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsDdsomr2 = {
- "ddsomr2", "ddsom", NULL, NULL, "1996",
- "Dungeons & Dragons - shadow over mystara (960209 Euro)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 4, HARDWARE_CAPCOM_CPS2, GBF_SCRFIGHT, 0,
- NULL, Ddsomr2RomInfo, Ddsomr2RomName, NULL, NULL, DdsomInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsDdsomr3 = {
- "ddsomr3", "ddsom", NULL, NULL, "1996",
- "Dungeons & Dragons - shadow over mystara (960208 Euro)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 4, HARDWARE_CAPCOM_CPS2, GBF_SCRFIGHT, 0,
- NULL, Ddsomr3RomInfo, Ddsomr3RomName, NULL, NULL, DdsomInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsDdsoma = {
- "ddsoma", "ddsom", NULL, NULL, "1996",
- "Dungeons & Dragons - shadow over mystara (960619 Asia)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 4, HARDWARE_CAPCOM_CPS2, GBF_SCRFIGHT, 0,
- NULL, DdsomaRomInfo, DdsomaRomName, NULL, NULL, DdsomInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsDdsomar1 = {
- "ddsomar1", "ddsom", NULL, NULL, "1996",
- "Dungeons & Dragons - shadow over mystara (960208 Asia)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 4, HARDWARE_CAPCOM_CPS2, GBF_SCRFIGHT, 0,
- NULL, Ddsomar1RomInfo, Ddsomar1RomName, NULL, NULL, DdsomInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsDdsomb = {
- "ddsomb", "ddsom", NULL, NULL, "1996",
- "Dungeons & Dragons - shadow over mystara (960223 Brazil)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 4, HARDWARE_CAPCOM_CPS2, GBF_SCRFIGHT, 0,
- NULL, DdsombRomInfo, DdsombRomName, NULL, NULL, DdsomInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsDdsomh = {
- "ddsomh", "ddsom", NULL, NULL, "1996",
- "Dungeons & Dragons - shadow over mystara (960223 Hispanic)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 4, HARDWARE_CAPCOM_CPS2, GBF_SCRFIGHT, 0,
- NULL, DdsomhRomInfo, DdsomhRomName, NULL, NULL, DdsomInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsDdsomj = {
- "ddsomj", "ddsom", NULL, NULL, "1996",
- "Dungeons & Dragons - shadow over mystara (960619 Japan)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 4, HARDWARE_CAPCOM_CPS2, GBF_SCRFIGHT, 0,
- NULL, DdsomjRomInfo, DdsomjRomName, NULL, NULL, DdsomInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsDdsomjr1 = {
- "ddsomjr1", "ddsom", NULL, NULL, "1996",
- "Dungeons & Dragons - shadow over mystara (960206 Japan)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 4, HARDWARE_CAPCOM_CPS2, GBF_SCRFIGHT, 0,
- NULL, Ddsomjr1RomInfo, Ddsomjr1RomName, NULL, NULL, DdsomInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsDdsomjr2 = {
- "ddsomjr2", "ddsom", NULL, NULL, "1996",
- "Dungeons & Dragons - shadow over mystara (960223 Japan)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 4, HARDWARE_CAPCOM_CPS2, GBF_SCRFIGHT, 0,
- NULL, Ddsomjr2RomInfo, Ddsomjr2RomName, NULL, NULL, DdsomInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsDdsomu = {
- "ddsomu", "ddsom", NULL, NULL, "1996",
- "Dungeons & Dragons - shadow over mystara (960619 USA)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 4, HARDWARE_CAPCOM_CPS2, GBF_SCRFIGHT, 0,
- NULL, DdsomuRomInfo, DdsomuRomName, NULL, NULL, DdsomInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsDdsomur1 = {
- "ddsomur1", "ddsom", NULL, NULL, "1996",
- "Dungeons & Dragons - shadow over mystara (960209 USA)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 4, HARDWARE_CAPCOM_CPS2, GBF_SCRFIGHT, 0,
- NULL, Ddsomur1RomInfo, Ddsomur1RomName, NULL, NULL, DdsomInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsDdtod = {
- "ddtod", NULL, NULL, NULL, "1994",
- "Dungeons & Dragons - tower of doom (940412 Euro)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 4, HARDWARE_CAPCOM_CPS2, GBF_SCRFIGHT, 0,
- NULL, DdtodRomInfo, DdtodRomName, NULL, NULL, DdtodInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsDdtodr1 = {
- "ddtodr1", "ddtod", NULL, NULL, "1994",
- "Dungeons & Dragons - tower of doom (940113 Euro)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 4, HARDWARE_CAPCOM_CPS2, GBF_SCRFIGHT, 0,
- NULL, Ddtodr1RomInfo, Ddtodr1RomName, NULL, NULL, DdtodInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsDdtoda = {
- "ddtoda", "ddtod", NULL, NULL, "1994",
- "Dungeons & Dragons - tower of doom (940412 Asia)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 4, HARDWARE_CAPCOM_CPS2, GBF_SCRFIGHT, 0,
- NULL, DdtodaRomInfo, DdtodaRomName, NULL, NULL, DdtodInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsDdtodar1 = {
- "ddtodar1", "ddtod", NULL, NULL, "1994",
- "Dungeons & Dragons - tower of doom (940113 Asia)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 4, HARDWARE_CAPCOM_CPS2, GBF_SCRFIGHT, 0,
- NULL, Ddtodar1RomInfo, Ddtodar1RomName, NULL, NULL, DdtodInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsDdtodh = {
- "ddtodh", "ddtod", NULL, NULL, "1994",
- "Dungeons & Dragons - tower of doom (940412 Hispanic)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 4, HARDWARE_CAPCOM_CPS2, GBF_SCRFIGHT, 0,
- NULL, DdtodhRomInfo, DdtodhRomName, NULL, NULL, DdtodInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsDdtodhr1 = {
- "ddtodhr1", "ddtod", NULL, NULL, "1994",
- "Dungeons & Dragons - tower of doom (940125 Hispanic)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 4, HARDWARE_CAPCOM_CPS2, GBF_SCRFIGHT, 0,
- NULL, Ddtodhr1RomInfo, Ddtodhr1RomName, NULL, NULL, DdtodInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsDdtodhr2 = {
- "ddtodhr2", "ddtod", NULL, NULL, "1994",
- "Dungeons & Dragons - tower of doom (940113 Hispanic)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 4, HARDWARE_CAPCOM_CPS2, GBF_SCRFIGHT, 0,
- NULL, Ddtodhr2RomInfo, Ddtodhr2RomName, NULL, NULL, DdtodInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsDdtodj = {
- "ddtodj", "ddtod", NULL, NULL, "1994",
- "Dungeons & Dragons - tower of doom (940412 Japan)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 4, HARDWARE_CAPCOM_CPS2, GBF_SCRFIGHT, 0,
- NULL, DdtodjRomInfo, DdtodjRomName, NULL, NULL, DdtodInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsDdtodjr1 = {
- "ddtodjr1", "ddtod", NULL, NULL, "1994",
- "Dungeons & Dragons - tower of doom (940125 Japan)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 4, HARDWARE_CAPCOM_CPS2, GBF_SCRFIGHT, 0,
- NULL, Ddtodjr1RomInfo, Ddtodjr1RomName, NULL, NULL, DdtodInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsDdtodjr2 = {
- "ddtodjr2", "ddtod", NULL, NULL, "1994",
- "Dungeons & Dragons - tower of doom (940113 Japan)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 4, HARDWARE_CAPCOM_CPS2, GBF_SCRFIGHT, 0,
- NULL, Ddtodjr2RomInfo, Ddtodjr2RomName, NULL, NULL, DdtodInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsDdtodu = {
- "ddtodu", "ddtod", NULL, NULL, "1994",
- "Dungeons & Dragons - tower of doom (940125 USA)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 4, HARDWARE_CAPCOM_CPS2, GBF_SCRFIGHT, 0,
- NULL, DdtoduRomInfo, DdtoduRomName, NULL, NULL, DdtodInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsDdtodur1 = {
- "ddtodur1", "ddtod", NULL, NULL, "1994",
- "Dungeons & Dragons - tower of doom (940113 USA)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 4, HARDWARE_CAPCOM_CPS2, GBF_SCRFIGHT, 0,
- NULL, Ddtodur1RomInfo, Ddtodur1RomName, NULL, NULL, DdtodInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsDimahoo = {
- "dimahoo", NULL, NULL, NULL, "2000",
- "Dimahoo (000121 Euro)\0", NULL, "8ing / Raizing / Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL, 2, HARDWARE_CAPCOM_CPS2, GBF_VERSHOOT, 0,
- NULL, DimahooRomInfo, DimahooRomName, NULL, NULL, DimahooInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 224, 384, 3, 4
-};
-
-struct BurnDriver BurnDrvCpsGreatMahouDaiJ = {
- "gmahou", "dimahoo", NULL, NULL, "2000",
- "Great Mahou Daisakusen (000121 Japan)\0", NULL, "8ing / Raizing / Capcom", "CPS2",
- L"\u30B0\u30EC\u30FC\u30C8\u9B54\u6CD5\u5927\u4F5C\u6226 (Great Mahou Daisakusen 000121 Japan)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL, 2, HARDWARE_CAPCOM_CPS2, GBF_VERSHOOT, 0,
- NULL, GmdjRomInfo, GmdjRomName, NULL, NULL, DimahooInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 224, 384, 3, 4
-};
-
-struct BurnDriver BurnDrvCpsDimahoou = {
- "dimahoou", "dimahoo", NULL, NULL, "2000",
- "Dimahoo (000121 USA)\0", NULL, "8ing / Raizing / Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL, 2, HARDWARE_CAPCOM_CPS2, GBF_VERSHOOT, 0,
- NULL, DimahoouRomInfo, DimahoouRomName, NULL, NULL, DimahooInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 224, 384, 3, 4
-};
-
-struct BurnDriver BurnDrvCpsDstlk = {
- "dstlk", NULL, NULL, NULL, "1994",
- "Darkstalkers - the night warriors (940705 Euro)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_DSTLK,
- NULL, DstlkRomInfo, DstlkRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsDstlka = {
- "dstlka", "dstlk", NULL, NULL, "1994",
- "Darkstalkers - the night warriors (940705 Asia)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_DSTLK,
- NULL, DstlkaRomInfo, DstlkaRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsDstlkh = {
- "dstlkh", "dstlk", NULL, NULL, "1994",
- "Darkstalkers - the night warriors (940818 Hispanic)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_DSTLK,
- NULL, DstlkhRomInfo, DstlkhRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsDstlku = {
- "dstlku", "dstlk", NULL, NULL, "1994",
- "Darkstalkers - the night warriors (940818 USA)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_DSTLK,
- NULL, DstlkuRomInfo, DstlkuRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsDstlkur1 = {
- "dstlkur1", "dstlk", NULL, NULL, "1994",
- "Darkstalkers - the night warriors (940705 USA)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_DSTLK,
- NULL, Dstlkur1RomInfo, Dstlkur1RomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsVampj = {
- "vampj", "dstlk", NULL, NULL, "1994",
- "Vampire - the night warriors (940705 Japan)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_DSTLK,
- NULL, VampjRomInfo, VampjRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsVampja = {
- "vampja", "dstlk", NULL, NULL, "1994",
- "Vampire - the night warriors (940705 Japan, alt)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_DSTLK,
- NULL, VampjaRomInfo, VampjaRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsVampjr1 = {
- "vampjr1", "dstlk", NULL, NULL, "1994",
- "Vampire - the night warriors (940630 Japan)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_DSTLK,
- NULL, Vampjr1RomInfo, Vampjr1RomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsEcofghtr = {
- "ecofghtr", NULL, NULL, NULL, "1993",
- "Eco Fighters (931203 etc)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_CAPCOM_CPS2, GBF_HORSHOOT, 0,
- NULL, EcofghtrRomInfo, EcofghtrRomName, NULL, NULL, EcofghtrInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsEcofghtra = {
- "ecofghtra", "ecofghtr", NULL, NULL, "1993",
- "Eco Fighters (931203 Asia)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_HORSHOOT, 0,
- NULL, EcofghtraRomInfo, EcofghtraRomName, NULL, NULL, EcofghtrInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsEcofghtrh = {
- "ecofghtrh", "ecofghtr", NULL, NULL, "1993",
- "Eco Fighters (931203 Hispanic)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_HORSHOOT, 0,
- NULL, EcofghtrhRomInfo, EcofghtrhRomName, NULL, NULL, EcofghtrInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsEcofghtru = {
- "ecofghtru", "ecofghtr", NULL, NULL, "1993",
- "Eco Fighters (940215 USA)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_HORSHOOT, 0,
- NULL, EcofghtruRomInfo, EcofghtruRomName, NULL, NULL, EcofghtrInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsEcofghtru1 = {
- "ecofghtru1", "ecofghtr", NULL, NULL, "1993",
- "Eco Fighters (931203 USA)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_HORSHOOT, 0,
- NULL, Ecofghtru1RomInfo, Ecofghtru1RomName, NULL, NULL, EcofghtrInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsUecology = {
- "uecology", "ecofghtr", NULL, NULL, "1993",
- "Ultimate Ecology (931203 Japan)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_HORSHOOT, 0,
- NULL, UecologyRomInfo, UecologyRomName, NULL, NULL, EcofghtrInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsGigawing = {
- "gigawing", NULL, NULL, NULL, "1999",
- "Giga Wing (990222 USA)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_CAPCOM_CPS2, GBF_VERSHOOT, 0,
- NULL, GigawingRomInfo, GigawingRomName, NULL, NULL, GigawingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsGigawinga = {
- "gigawinga", "gigawing", NULL, NULL, "1999",
- "Giga Wing (990222 Asia)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VERSHOOT, 0,
- NULL, GigawingaRomInfo, GigawingaRomName, NULL, NULL, GigawingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsGigawingb = {
- "gigawingb", "gigawing", NULL, NULL, "1999",
- "Giga Wing (990222 Brazil)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VERSHOOT, 0,
- NULL, GigawingbRomInfo, GigawingbRomName, NULL, NULL, GigawingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsGigawingh = {
- "gigawingh", "gigawing", NULL, NULL, "1999",
- "Giga Wing (990222 Hispanic)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VERSHOOT, 0,
- NULL, GigawinghRomInfo, GigawinghRomName, NULL, NULL, GigawingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsGigawingj = {
- "gigawingj", "gigawing", NULL, NULL, "1999",
- "Giga Wing (990223 Japan)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VERSHOOT, 0,
- NULL, GigawingjRomInfo, GigawingjRomName, NULL, NULL, GigawingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsHsf2 = {
- "hsf2", NULL, NULL, NULL, "2004",
- "Hyper Street Fighter II: The Anniversary Edition (040202 USA)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, Hsf2RomInfo, Hsf2RomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Ssf2tInit, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsHsf2a = {
- "hsf2a", "hsf2", NULL, NULL, "2004",
- "Hyper Street Fighter II: The Anniversary Edition (040202 Asia)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, Hsf2aRomInfo, Hsf2aRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Ssf2tInit, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsHsf2j = {
- "hsf2j", "hsf2", NULL, NULL, "2004",
- "Hyper Street Fighter II: The Anniversary Edition (040202 Japan)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, Hsf2jRomInfo, Hsf2jRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Ssf2tInit, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsHsf2j1 = {
- "hsf2j1", "hsf2", NULL, NULL, "2004",
- "Hyper Street Fighter II: The Anniversary Edition (031222 Japan)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, Hsf2j1RomInfo, Hsf2j1RomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Ssf2tInit, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsJyangoku = {
- "jyangoku", NULL, NULL, NULL, "1999",
- "Jyangokushi -Haoh no Saihai- (990527 Japan)\0", NULL, "Mitchell", "CPS2",
- L"\u96C0\u570B\u5FD7 -\u8987\u738B\u306E\u91C7\u724C- (Jyangokushi 990527 Japan)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_CAPCOM_CPS2 | HARDWARE_CAPCOM_CPS2_SIMM, GBF_MAHJONG, 0,
- NULL, JyangokuRomInfo, JyangokuRomName, NULL, NULL, JyangokuInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsMegaman2 = {
- "megaman2", NULL, NULL, NULL, "1996",
- "Mega Man 2 - the power fighters (960708 USA)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, 0,
- NULL, Megaman2RomInfo, Megaman2RomName, NULL, NULL, Megaman2InputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000 ,384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsMegaman2a = {
- "megaman2a", "megaman2", NULL, NULL, "1996",
- "Mega Man 2 - the power fighters (960708 Asia)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, 0,
- NULL, Megaman2aRomInfo, Megaman2aRomName, NULL, NULL, Megaman2InputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000 ,384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsMegaman2h = {
- "megaman2h", "megaman2", NULL, NULL, "1996",
- "Mega Man 2 - the power fighters (960712 Hispanic)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, 0,
- NULL, Megaman2hRomInfo, Megaman2hRomName, NULL, NULL, Megaman2InputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000 ,384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsRockman2j = {
- "rockman2j", "megaman2", NULL, NULL, "1996",
- "Rockman 2 - the power fighters (960708 Japan)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, 0,
- NULL, Rockman2jRomInfo, Rockman2jRomName, NULL, NULL, Megaman2InputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsMmancp2u = {
- "mmancp2u", "megaman", NULL, NULL, "1995",
- "Mega Man - The Power Battle (951006 USA, SAMPLE Version)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, 0,
- NULL, Mmancp2uRomInfo, Mmancp2uRomName, NULL, NULL, Mmancp2uInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsMmancp2ur1 = {
- "mmancp2ur1", "megaman", NULL, NULL, "1995",
- "Mega Man - The Power Battle (950926 USA, SAMPLE Version)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, 0,
- NULL, Mmancp2ur1RomInfo, Mmancp2ur1RomName, NULL, NULL, Mmancp2uInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsRmancp2j = {
- "rmancp2j", "megaman", NULL, NULL, "1999",
- "Rockman: The Power Battle (950922 Japan)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, 0,
- NULL, Rmancp2jRomInfo, Rmancp2jRomName, NULL, NULL, Mmancp2uInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsMarsMatrix = {
- "mmatrix", NULL, NULL, NULL, "2000",
- "Mars Matrix (000412 USA)\0", NULL, "Capcom / Takumi", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_CAPCOM_CPS2, GBF_VERSHOOT, 0,
- NULL, MmatrixRomInfo, MmatrixRomName, NULL, NULL, MmatrixInputInfo, NULL,
- MmatrixInit, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsMarsMatrixJ = {
- "mmatrixj", "mmatrix", NULL, NULL, "2000",
- "Mars Matrix (000412 Japan)\0", NULL, "Capcom / Takumi", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VERSHOOT, 0,
- NULL, MmatrixjRomInfo, MmatrixjRomName, NULL, NULL, MmatrixInputInfo, NULL,
- MmatrixInit, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsMPang = {
- "mpang", NULL, NULL, NULL, "2000",
- "Mighty! Pang (001010 Euro)\0", NULL, "Mitchell", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_CAPCOM_CPS2 | HARDWARE_CAPCOM_CPS2_SIMM, GBF_PUZZLE, 0,
- NULL, MpangRomInfo, MpangRomName, NULL, NULL, MpangInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsMPangr1 = {
- "mpangr1", "mpang", NULL, NULL, "2000",
- "Mighty! Pang (000925 Euro)\0", NULL, "Mitchell", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2 | HARDWARE_CAPCOM_CPS2_SIMM, GBF_PUZZLE, 0,
- NULL, Mpangr1RomInfo, Mpangr1RomName, NULL, NULL, MpangInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsMPangu = {
- "mpangu", "mpang", NULL, NULL, "2000",
- "Mighty! Pang (001010 USA)\0", NULL, "Mitchell", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_PUZZLE, 0,
- NULL, MpanguRomInfo, MpanguRomName, NULL, NULL, MpangInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsMPangj = {
- "mpangj", "mpang", NULL, NULL, "2000",
- "Mighty! Pang (001011 Japan)\0", NULL, "Mitchell", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2 | HARDWARE_CAPCOM_CPS2_SIMM, GBF_PUZZLE, 0,
- NULL, MpangjRomInfo, MpangjRomName, NULL, NULL, MpangInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsMsh = {
- "msh", NULL, NULL, NULL, "1995",
- "Marvel Super Heroes (951024 Euro)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, 0,
- NULL, MshRomInfo, MshRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsMsha = {
- "msha", "msh", NULL, NULL, "1995",
- "Marvel Super Heroes (951024 Asia)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, 0,
- NULL, MshaRomInfo, MshaRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsMshb = {
- "mshb", "msh", NULL, NULL, "1995",
- "Marvel Super Heroes (951117 Brazil)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, 0,
- NULL, MshbRomInfo, MshbRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsMshh = {
- "mshh", "msh", NULL, NULL, "1995",
- "Marvel Super Heroes (951117 Hispanic)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, 0,
- NULL, MshhRomInfo, MshhRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsMshj = {
- "mshj", "msh", NULL, NULL, "1995",
- "Marvel Super Heroes (951117 Japan)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, 0,
- NULL, MshjRomInfo, MshjRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsMshjr1 = {
- "mshjr1", "msh", NULL, NULL, "1995",
- "Marvel Super Heroes (951024 Japan)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, 0,
- NULL, Mshjr1RomInfo, Mshjr1RomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsMshu = {
- "mshu", "msh", NULL, NULL, "1995",
- "Marvel Super Heroes (951024 USA)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, 0,
- NULL, MshuRomInfo, MshuRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsMshvsf = {
- "mshvsf", NULL, NULL, NULL, "1997",
- "Marvel Super Heroes vs Street Fighter (970625 Euro)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, MshvsfRomInfo, MshvsfRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsMshvsfa = {
- "mshvsfa", "mshvsf", NULL, NULL, "1997",
- "Marvel Super Heroes vs Street Fighter (970625 Asia)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, MshvsfaRomInfo, MshvsfaRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsMshvsfa1 = {
- "mshvsfa1", "mshvsf", NULL, NULL, "1997",
- "Marvel Super Heroes vs Street Fighter (970620 Asia)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, Mshvsfa1RomInfo, Mshvsfa1RomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsMshvsfb = {
- "mshvsfb", "mshvsf", NULL, NULL, "1997",
- "Marvel Super Heroes vs Street Fighter (970827 Brazil)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, MshvsfbRomInfo, MshvsfbRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsMshvsfb1 = {
- "mshvsfb1", "mshvsf", NULL, NULL, "1997",
- "Marvel Super Heroes vs Street Fighter (970625 Brazil)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, Mshvsfb1RomInfo, Mshvsfb1RomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsMshvsfh = {
- "mshvsfh", "mshvsf", NULL, NULL, "1997",
- "Marvel Super Heroes vs Street Fighter (970625 Hispanic)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, MshvsfhRomInfo, MshvsfhRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsMshvsfj = {
- "mshvsfj", "mshvsf", NULL, NULL, "1997",
- "Marvel Super Heroes vs Street Fighter (970707 Japan)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, MshvsfjRomInfo, MshvsfjRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsMshvsfj1 = {
- "mshvsfj1", "mshvsf", NULL, NULL, "1997",
- "Marvel Super Heroes vs Street Fighter (970702 Japan)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, Mshvsfj1RomInfo, Mshvsfj1RomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsMshvsfj2 = {
- "mshvsfj2", "mshvsf", NULL, NULL, "1997",
- "Marvel Super Heroes vs Street Fighter (970625 Japan)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, Mshvsfj2RomInfo, Mshvsfj2RomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsMshvsfu = {
- "mshvsfu", "mshvsf", NULL, NULL, "1997",
- "Marvel Super Heroes vs Street Fighter (970827 USA)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, MshvsfuRomInfo, MshvsfuRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsMshvsfu1 = {
- "mshvsfu1", "mshvsf", NULL, NULL, "1997",
- "Marvel Super Heroes vs Street Fighter (970625 USA)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, Mshvsfu1RomInfo, Mshvsfu1RomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsMvsc = {
- "mvsc", NULL, NULL, NULL, "1998",
- "Marvel vs Capcom - clash of super heroes (980123 Euro)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, MvscRomInfo, MvscRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsMvscr1 = {
- "mvscr1", "mvsc", NULL, NULL, "1998",
- "Marvel vs Capcom - clash of super heroes (980112 Euro)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, Mvscr1RomInfo, Mvscr1RomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsMvsca = {
- "mvsca", "mvsc", NULL, NULL, "1998",
- "Marvel vs Capcom - clash of super heroes (980123 Asia)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, MvscaRomInfo, MvscaRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsMvscar1 = {
- "mvscar1", "mvsc", NULL, NULL, "1998",
- "Marvel vs Capcom - clash of super heroes (980112 Asia)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, Mvscar1RomInfo, Mvscar1RomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsMvscb = {
- "mvscb", "mvsc", NULL, NULL, "1998",
- "Marvel vs Capcom - clash of super heroes (980123 Brazil)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, MvscbRomInfo, MvscbRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsMvsch = {
- "mvsch", "mvsc", NULL, NULL, "1998",
- "Marvel vs Capcom - clash of super heroes (980123 Hispanic)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, MvschRomInfo, MvschRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsMvscj = {
- "mvscj", "mvsc", NULL, NULL, "1998",
- "Marvel vs Capcom - clash of super heroes (980123 Japan)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, MvscjRomInfo, MvscjRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsMvscjr1 = {
- "mvscjr1", "mvsc", NULL, NULL, "1998",
- "Marvel vs Capcom - clash of super heroes (980112 Japan)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, Mvscjr1RomInfo, Mvscjr1RomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsMvscu = {
- "mvscu", "mvsc", NULL, NULL, "1998",
- "Marvel vs Capcom - clash of super heroes (980123 USA)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, MvscuRomInfo, MvscuRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsMvscur1 = {
- "mvscur1", "mvsc", NULL, NULL, "1998",
- "Marvel vs Capcom - clash of super heroes (971222 USA)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, Mvscur1RomInfo, Mvscur1RomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsMvscjsing = {
- "mvscjsing", "mvsc", NULL, NULL, "1998",
- "Marvel vs Capcom - clash of super heroes (980123 Japan, single PCB)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, MvscjsingRomInfo, MvscjsingRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- MvscjsingInit, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsNwarr = {
- "nwarr", NULL, NULL, NULL, "1995",
- "Night Warriors - darkstalkers' revenge (950316 Euro)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_DSTLK,
- NULL, NwarrRomInfo, NwarrRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsNwarra = {
- "nwarra", "nwarr", NULL, NULL, "1995",
- "Night Warriors - darkstalkers' revenge (950302 Asia)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_DSTLK,
- NULL, NwarraRomInfo, NwarraRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsNwarrb = {
- "nwarrb", "nwarr", NULL, NULL, "1995",
- "Night Warriors - darkstalkers' revenge (950403 Brazil)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_DSTLK,
- NULL, NwarrbRomInfo, NwarrbRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsNwarrh = {
- "nwarrh", "nwarr", NULL, NULL, "1995",
- "Night Warriors - darkstalkers' revenge (950403 Hispanic)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_DSTLK,
- NULL, NwarrhRomInfo, NwarrhRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsNwarru = {
- "nwarru", "nwarr", NULL, NULL, "1995",
- "Night Warriors - darkstalkers' revenge (950406 USA)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_DSTLK,
- NULL, NwarruRomInfo, NwarruRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsVhuntj = {
- "vhuntj", "nwarr", NULL, NULL, "1995",
- "Vampire Hunter - darkstalkers' revenge (950316 Japan)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_DSTLK,
- NULL, VhuntjRomInfo, VhuntjRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsVhuntjr1s = {
- "vhuntjr1s", "nwarr", NULL, NULL, "1995",
- "Vampire Hunter - darkstalkers' revenge (950307 Japan stop version)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_DSTLK,
- NULL, Vhuntjr1sRomInfo, Vhuntjr1sRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsVhuntjr1 = {
- "vhuntjr1", "nwarr", NULL, NULL, "1995",
- "Vampire Hunter - darkstalkers' revenge (950307 Japan)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_DSTLK,
- NULL, Vhuntjr1RomInfo, Vhuntjr1RomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsVhuntjr2 = {
- "vhuntjr2", "nwarr", NULL, NULL, "1995",
- "Vampire Hunter - darkstalkers' revenge (950302 Japan)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_DSTLK,
- NULL, Vhuntjr2RomInfo, Vhuntjr2RomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsProgear = {
- "progear", NULL, NULL, NULL, "2001",
- "Progear (010117 USA)\0", NULL, "Capcom / Cave", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_CAPCOM_CPS2 | HARDWARE_CAPCOM_CPS2_SIMM, GBF_HORSHOOT, 0,
- NULL, ProgearRomInfo, ProgearRomName, NULL, NULL, ProgearInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsProgeara = {
- "progeara", "progear", NULL, NULL, "2001",
- "Progear (010117 Asia)\0", NULL, "Capcom / Cave", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2 | HARDWARE_CAPCOM_CPS2_SIMM, GBF_HORSHOOT, 0,
- NULL, ProgearaRomInfo, ProgearaRomName, NULL, NULL, ProgearInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsProgearj = {
- "progearj", "progear", NULL, NULL, "2001",
- "Progear No Arashi (010117 Japan)\0", NULL, "Capcom / Cave", "CPS2",
- L"\u30D7\u30ED\u30AE\u30A2\u306E\u5D50 (Progear No Arashi 010117 Japan)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2 | HARDWARE_CAPCOM_CPS2_SIMM, GBF_HORSHOOT, 0,
- NULL, ProgearjRomInfo, ProgearjRomName, NULL, NULL, ProgearInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsPzloop2 = {
- "pzloop2", NULL, NULL, NULL, "2001",
- "Puzz Loop 2 (010302 Euro)\0", NULL, "Mitchell, distritued by Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_CAPCOM_CPS2 | HARDWARE_CAPCOM_CPS2_SIMM, GBF_PUZZLE, 0,
- NULL, Pzloop2RomInfo, Pzloop2RomName, NULL, NULL, Pzloop2InputInfo, NULL,
- Pzloop2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsPzloop2j = {
- "pzloop2j", "pzloop2", NULL, NULL, "2001",
- "Puzz Loop 2 (010226 Japan)\0", NULL, "Mitchell, distritued by Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2 | HARDWARE_CAPCOM_CPS2_SIMM, GBF_PUZZLE, 0,
- NULL, Pzloop2jRomInfo, Pzloop2jRomName, NULL, NULL, Pzloop2InputInfo, NULL,
- Pzloop2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsPzloop2jr1 = {
- "pzloop2jr1", "pzloop2", NULL, NULL, "2001",
- "Puzz Loop 2 (010205 Japan)\0", NULL, "Mitchell, distritued by Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2 | HARDWARE_CAPCOM_CPS2_SIMM, GBF_PUZZLE, 0,
- NULL, Pzloop2jr1RomInfo, Pzloop2jr1RomName, NULL, NULL, Pzloop2InputInfo, NULL,
- Pzloop2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsQndream = {
- "qndream", NULL, NULL, NULL, "1996",
- "Quiz Nanairo Dreams - nijiirochou no kiseki (nanairo dreams 960826 Japan)\0", NULL, "Capcom", "CPS2",
- L"Quiz \u306A\u306A\u3044\u308D Dreams - \u8679\u8272\u753A\u306E\u5947\u8DE1 (Nanairo Dreams 960826 Japan)\0Quiz Nanairo Dreams - nijiirochou no kiseki\0", NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_CAPCOM_CPS2, GBF_QUIZ, 0,
- NULL, QndreamRomInfo, QndreamRomName, NULL, NULL, QndreamInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsRingdest = {
- "ringdest", NULL, NULL, NULL, "1994",
- "Ring of Destruction - slammasters II (940902 Euro)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, 0,
- NULL, RingdestRomInfo, RingdestRomName, NULL, NULL, RingdestInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSmbomb = {
- "smbomb", "ringdest", NULL, NULL, "1994",
- "Super Muscle Bomber - the international blowout (940831 Japan)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, 0,
- NULL, SmbombRomInfo, SmbombRomName, NULL, NULL, RingdestInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSmbombr1 = {
- "smbombr1", "ringdest", NULL, NULL, "1994",
- "Super Muscle Bomber - the international blowout (940808 Japan)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, 0,
- NULL, Smbombr1RomInfo, Smbombr1RomName, NULL, NULL, RingdestInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsRingdesta = {
- "ringdesta", "ringdest", NULL, NULL, "1994",
- "Ring of Destruction - slammasters II (940831 Asia)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, 0,
- NULL, RingdestaRomInfo, RingdestaRomName, NULL, NULL, RingdestInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsRingdesth = {
- "ringdesth", "ringdest", NULL, NULL, "1994",
- "Ring of Destruction - slammasters II (940902 Hispanic)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, 0,
- NULL, RingdesthRomInfo, RingdesthRomName, NULL, NULL, RingdestInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSfa = {
- "sfa", NULL, NULL, NULL, "1995",
- "Street Fighter Alpha - warriors' dreams (950727 Euro)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, SfaRomInfo, SfaRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSfar1 = {
- "sfar1", "sfa", NULL, NULL, "1995",
- "Street Fighter Alpha - warriors' dreams (950718 Euro)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, Sfar1RomInfo, Sfar1RomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSfar2 = {
- "sfar2", "sfa", NULL, NULL, "1995",
- "Street Fighter Alpha - warriors' dreams (950627 Euro)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, Sfar2RomInfo, Sfar2RomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSfar3 = {
- "sfar3", "sfa", NULL, NULL, "1995",
- "Street Fighter Alpha - warriors' dreams (950605 Euro)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, Sfar3RomInfo, Sfar3RomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSfau = {
- "sfau", "sfa", NULL, NULL, "1995",
- "Street Fighter Alpha - warriors' dreams (950627 USA)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, SfauRomInfo, SfauRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSfza = {
- "sfza", "sfa", NULL, NULL, "1995",
- "Street Fighter Zero (950627 Asia)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, SfzaRomInfo, SfzaRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSfzar1 = {
- "sfzar1", "sfa", NULL, NULL, "1995",
- "Street Fighter Zero (950605 Asia)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, Sfzar1RomInfo, Sfzar1RomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSfzb = {
- "sfzb", "sfa", NULL, NULL, "1995",
- "Street Fighter Zero (951109 Brazil)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, SfzbRomInfo, SfzbRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSfzbr1 = {
- "sfzbr1", "sfa", NULL, NULL, "1995",
- "Street Fighter Zero (950727 Brazil)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, Sfzbr1RomInfo, Sfzbr1RomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSfzh = {
- "sfzh", "sfa", NULL, NULL, "1995",
- "Street Fighter Zero (950718 Hispanic)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, SfzhRomInfo, SfzhRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSfzhr1 = {
- "sfzhr1", "sfa", NULL, NULL, "1995",
- "Street Fighter Zero (950627 Hispanic)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, Sfzhr1RomInfo, Sfzhr1RomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSfzj = {
- "sfzj", "sfa", NULL, NULL, "1995",
- "Street Fighter Zero (950727 Japan)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, SfzjRomInfo, SfzjRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSfzjr1 = {
- "sfzjr1", "sfa", NULL, NULL, "1995",
- "Street Fighter Zero (950627 Japan)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, Sfzjr1RomInfo, Sfzjr1RomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSfzjr2 = {
- "sfzjr2", "sfa", NULL, NULL, "1995",
- "Street Fighter Zero (950605 Japan)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, Sfzjr2RomInfo, Sfzjr2RomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSfa2 = {
- "sfa2", NULL, NULL, NULL, "1996",
- "Street Fighter Alpha 2 (960229 Euro)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, Sfa2RomInfo, Sfa2RomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Sfa2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSfa2u = {
- "sfa2u", "sfa2", NULL, NULL, "1996",
- "Street Fighter Alpha 2 (960430 USA)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, Sfa2uRomInfo, Sfa2uRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Sfa2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSfa2ur1 = {
- "sfa2ur1", "sfa2", NULL, NULL, "1996",
- "Street Fighter Alpha 2 (960306 USA)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, Sfa2ur1RomInfo, Sfa2ur1RomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Sfa2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSfz2a = {
- "sfz2a", "sfa2", NULL, NULL, "1996",
- "Street Fighter Zero 2 (960227 Asia)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, Sfz2aRomInfo, Sfz2aRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Sfa2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSfz2b = {
- "sfz2b", "sfa2", NULL, NULL, "1996",
- "Street Fighter Zero 2 (960531 Brazil)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, Sfz2bRomInfo, Sfz2bRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Sfa2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSfz2br1 = {
- "sfz2br1", "sfa2", NULL, NULL, "1996",
- "Street Fighter Zero 2 (960304 Brazil)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, Sfz2br1RomInfo, Sfz2br1RomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Sfa2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSfz2h = {
- "sfz2h", "sfa2", NULL, NULL, "1996",
- "Street Fighter Zero 2 (960304 Hispanic)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, Sfz2hRomInfo, Sfz2hRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Sfa2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSfz2j = {
- "sfz2j", "sfa2", NULL, NULL, "1996",
- "Street Fighter Zero 2 (960430 Japan)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, Sfz2jRomInfo, Sfz2jRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Sfa2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSfz2jr1 = {
- "sfz2jr1", "sfa2", NULL, NULL, "1996",
- "Street Fighter Zero 2 (960227 Japan)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, Sfz2jr1RomInfo, Sfz2jr1RomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Sfa2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSfz2n = {
- "sfz2n", "sfa2", NULL, NULL, "1996",
- "Street Fighter Zero 2 (960229 Oceania)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, Sfz2nRomInfo, Sfz2nRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Sfa2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSfz2al = {
- "sfz2al", NULL, NULL, NULL, "1996",
- "Street Fighter Zero 2 Alpha (960826 Asia)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, Sfz2alRomInfo, Sfz2alRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Sfa2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSfz2alb = {
- "sfz2alb", "sfz2al", NULL, NULL, "1996",
- "Street Fighter Zero 2 Alpha (960813 Brazil)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, Sfz2albRomInfo, Sfz2albRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Sfa2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSfz2alh = {
- "sfz2alh", "sfz2al", NULL, NULL, "1996",
- "Street Fighter Zero 2 Alpha (960813 Hispanic)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, Sfz2alhRomInfo, Sfz2alhRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Sfa2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSfz2alj = {
- "sfz2alj", "sfz2al", NULL, NULL, "1996",
- "Street Fighter Zero 2 Alpha (960805 Japan)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, Sfz2aljRomInfo, Sfz2aljRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Sfa2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSfa3 = {
- "sfa3", NULL, NULL, NULL, "1998",
- "Street Fighter Alpha 3 (980904 Euro)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, Sfa3RomInfo, Sfa3RomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSfa3b = {
- "sfa3b", "sfa3", NULL, NULL, "1998",
- "Street Fighter Alpha 3 (980629 Brazil)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, Sfa3bRomInfo, Sfa3bRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSfa3h = {
- "sfa3h", "sfa3", NULL, NULL, "1998",
- "Street Fighter Alpha 3 (980904 Hispanic)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, Sfa3hRomInfo, Sfa3hRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSfa3hr1 = {
- "sfa3hr1", "sfa3", NULL, NULL, "1998",
- "Street Fighter Alpha 3 (980629 Hispanic)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, Sfa3hr1RomInfo, Sfa3hr1RomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSfa3u = {
- "sfa3u", "sfa3", NULL, NULL, "1998",
- "Street Fighter Alpha 3 (980904 USA)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, Sfa3uRomInfo, Sfa3uRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSfa3ur1 = {
- "sfa3ur1", "sfa3", NULL, NULL, "1998",
- "Street Fighter Alpha 3 (980629 USA)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, Sfa3ur1RomInfo, Sfa3ur1RomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSfa3us = {
- "sfa3us", "sfa3", NULL, NULL, "1998",
- "Street Fighter Alpha 3 (980616 USA, SAMPLE Version)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, Sfa3usRomInfo, Sfa3usRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSfz3a = {
- "sfz3a", "sfa3", NULL, NULL, "1998",
- "Street Fighter Zero 3 (980904 Asia)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, Sfz3aRomInfo, Sfz3aRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSfz3ar1 = {
- "sfz3ar1", "sfa3", NULL, NULL, "1998",
- "Street Fighter Zero 3 (980701 Asia)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, Sfz3ar1RomInfo, Sfz3ar1RomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSfz3j = {
- "sfz3j", "sfa3", NULL, NULL, "1998",
- "Street Fighter Zero 3 (980904 Japan)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, Sfz3jRomInfo, Sfz3jRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSfz3jr1 = {
- "sfz3jr1", "sfa3", NULL, NULL, "1998",
- "Street Fighter Zero 3 (980727 Japan)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, Sfz3jr1RomInfo, Sfz3jr1RomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSfz3jr2 = {
- "sfz3jr2", "sfa3", NULL, NULL, "1998",
- "Street Fighter Zero 3 (980629 Japan)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, Sfz3jr2RomInfo, Sfz3jr2RomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSgemf = {
- "sgemf", NULL, NULL, NULL, "1997",
- "Super Gem Fighter Mini Mix (970904 USA)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, SgemfRomInfo, SgemfRomName, NULL, NULL, SgemfInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsPfghtj = {
- "pfghtj", "sgemf", NULL, NULL, "1997",
- "Pocket Fighter (970904 Japan)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, PfghtjRomInfo, PfghtjRomName, NULL, NULL, SgemfInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSgemfa = {
- "sgemfa", "sgemf", NULL, NULL, "1997",
- "Super Gem Fighter Mini Mix (970904 Asia)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, SgemfaRomInfo, SgemfaRomName, NULL, NULL, SgemfInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSgemfh = {
- "sgemfh", "sgemf", NULL, NULL, "1997",
- "Super Gem Fighter Mini Mix (970904 Hispanic)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, SgemfhRomInfo, SgemfhRomName, NULL, NULL, SgemfInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSpf2t = {
- "spf2t", NULL, NULL, NULL, "1996",
- "Super Puzzle Fighter II Turbo (Super Puzzle Fighter 2 Turbo 960529 Euro)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_CAPCOM_CPS2, GBF_PUZZLE, FBF_SF,
- NULL, Spf2tRomInfo, Spf2tRomName, NULL, NULL, Spf2tInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSpf2tu = {
- "spf2tu", "spf2t", NULL, NULL, "1996",
- "Super Puzzle Fighter II Turbo (Super Puzzle Fighter 2 Turbo 960620 USA)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_PUZZLE, FBF_SF,
- NULL, Spf2tuRomInfo, Spf2tuRomName, NULL, NULL, Spf2tInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSpf2xj = {
- "spf2xj", "spf2t", NULL, NULL, "1996",
- "Super Puzzle Fighter II X (Super Puzzle Fighter 2 X 960531 Japan)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_PUZZLE, FBF_SF,
- NULL, Spf2xjRomInfo, Spf2xjRomName, NULL, NULL, Spf2tInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSpf2ta = {
- "spf2ta", "spf2t", NULL, NULL, "1996",
- "Super Puzzle Fighter II Turbo (Super Puzzle Fighter 2 Turbo 960529 Asia)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_PUZZLE, FBF_SF,
- NULL, Spf2taRomInfo, Spf2taRomName, NULL, NULL, Spf2tInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSpf2th = {
- "spf2th", "spf2t", NULL, NULL, "1996",
- "Super Puzzle Fighter II Turbo (Super Puzzle Fighter 2 Turbo 960531 Hispanic)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_PUZZLE, FBF_SF,
- NULL, Spf2thRomInfo, Spf2thRomName, NULL, NULL, Spf2tInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSsf2 = {
- "ssf2", NULL, NULL, NULL, "1993",
- "Super Street Fighter II - the new challengers (super street fighter 2 931005 etc)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, Ssf2RomInfo, Ssf2RomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Ssf2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSsf2r1 = {
- "ssf2r1", "ssf2", NULL, NULL, "1993",
- "Super Street Fighter II - the new challengers (super street fighter 2 930911 etc)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, Ssf2r1RomInfo, Ssf2r1RomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Ssf2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSsf2a = {
- "ssf2a", "ssf2", NULL, NULL, "1993",
- "Super Street Fighter II - the new challengers (super street fighter 2 931005 Asia)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE,2,HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, Ssf2aRomInfo, Ssf2aRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Ssf2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSsf2ar1 = {
- "ssf2ar1", "ssf2", NULL, NULL, "1993",
- "Super Street Fighter II - the new challengers (super street fighter 2 930914 Asia)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, Ssf2ar1RomInfo, Ssf2ar1RomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Ssf2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSsf2h = {
- "ssf2h", "ssf2", NULL, NULL, "1993",
- "Super Street Fighter II - the new challengers (super street fighter 2 930911 Hispanic)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE,2,HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, Ssf2hRomInfo, Ssf2hRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Ssf2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSsf2j = {
- "ssf2j", "ssf2", NULL, NULL, "1993",
- "Super Street Fighter II - the new challengers (super street fighter 2 931005 Japan)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, Ssf2jRomInfo, Ssf2jRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Ssf2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSsf2jr1 = {
- "ssf2jr1", "ssf2", NULL, NULL, "1993",
- "Super Street Fighter II - the new challengers (super street fighter 2 930911 Japan)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, Ssf2jr1RomInfo, Ssf2jr1RomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Ssf2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSsf2jr2 = {
- "ssf2jr2", "ssf2", NULL, NULL, "1993",
- "Super Street Fighter II - the new challengers (super street fighter 2 930910 Japan)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, Ssf2jr2RomInfo, Ssf2jr2RomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Ssf2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSsf2u = {
- "ssf2u", "ssf2", NULL, NULL, "1993",
- "Super Street Fighter II - the new challengers (super street fighter 2 930911 USA)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, Ssf2uRomInfo, Ssf2uRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Ssf2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSsf2tb = {
- "ssf2tb", "ssf2", NULL, NULL, "1993",
- "Super Street Fighter II - the tournament battle (931119 etc)\0", "Linkup feature not implemented", "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, Ssf2tbRomInfo, Ssf2tbRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Ssf2tbInit, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSsf2tba = {
- "ssf2tba", "ssf2", NULL, NULL, "1993",
- "Super Street Fighter II - the tournament battle (931005 Asia)\0", "Linkup feature not implemented", "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, Ssf2tbaRomInfo, Ssf2tbaRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Ssf2tbInit, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSsf2tbr1 = {
- "ssf2tbr1", "ssf2", NULL, NULL, "1993",
- "Super Street Fighter II - the tournament battle (930911 etc)\0", "Linkup feature not implemented", "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, Ssf2tbr1RomInfo, Ssf2tbr1RomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Ssf2tbInit, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSsf2tbj = {
- "ssf2tbj", "ssf2", NULL, NULL, "1993",
- "Super Street Fighter II - the tournament battle (931005 Japan)\0", "Linkup feature not implemented", "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, Ssf2tbjRomInfo, Ssf2tbjRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Ssf2tbInit, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSsf2tbj1 = {
- "ssf2tbj1", "ssf2", NULL, NULL, "1993",
- "Super Street Fighter II - the tournament battle (930911 Japan)\0", "Linkup feature not implemented", "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, Ssf2tbj1RomInfo, Ssf2tbj1RomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Ssf2tbInit, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSsf2tbh = {
- "ssf2tbh", "ssf2", NULL, NULL, "1993",
- "Super Street Fighter II - the tournament battle (931005 Hispanic)\0", "Linkup feature not implemented", "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, Ssf2tbhRomInfo, Ssf2tbhRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Ssf2tbInit, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSsf2t = {
- "ssf2t", NULL, NULL, NULL, "1994",
- "Super Street Fighter II Turbo (super street fighter 2 X 940223 etc)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, Ssf2tRomInfo, Ssf2tRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Ssf2tInit, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSsf2th = {
- "ssf2th", "ssf2t", NULL, NULL, "1994",
- "Super Street Fighter II Turbo (super street fighter 2 X 940223 Hispanic)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, Ssf2thRomInfo, Ssf2thRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Ssf2tInit, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSsf2ta = {
- "ssf2ta", "ssf2t", NULL, NULL, "1994",
- "Super Street Fighter II Turbo (super street fighter 2 X 940223 Asia)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, Ssf2taRomInfo, Ssf2taRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Ssf2tInit, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSsf2tu = {
- "ssf2tu", "ssf2t", NULL, NULL, "1994",
- "Super Street Fighter II Turbo (super street fighter 2 X 940323 USA)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, Ssf2tuRomInfo, Ssf2tuRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Ssf2tInit, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSsf2tur1 = {
- "ssf2tur1", "ssf2t", NULL, NULL, "1994",
- "Super Street Fighter II Turbo (super street fighter 2 X 940223 USA)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, Ssf2tur1RomInfo, Ssf2tur1RomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Ssf2tInit, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSsf2xj = {
- "ssf2xj", "ssf2t", NULL, NULL, "1994",
- "Super Street Fighter II X - grand master challenge (super street fighter 2 X 940311 Japan)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, Ssf2xjRomInfo, Ssf2xjRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Ssf2tInit, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSsf2xjr1 = {
- "ssf2xjr1", "ssf2t", NULL, NULL, "1994",
- "Super Street Fighter II X - grand master challenge (super street fighter 2 X 940223 Japan)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, Ssf2xjr1RomInfo, Ssf2xjr1RomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Ssf2tInit, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSsf2xjr1r = {
- "ssf2xjr1r", "ssf2t", NULL, NULL, "1994",
- "Super Street Fighter II X - grand master challenge (super street fighter 2 X 940223 Japan rent version)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, Ssf2xjr1rRomInfo, Ssf2xjr1rRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Ssf2tInit, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsVhunt2 = {
- "vhunt2", NULL, NULL, NULL, "1997",
- "Vampire Hunter 2 - darkstalkers revenge (970929 Japan)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_DSTLK,
- NULL, Vhunt2RomInfo, Vhunt2RomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsVhunt2r1 = {
- "vhunt2r1", "vhunt2", NULL, NULL, "1997",
- "Vampire Hunter 2 - darkstalkers revenge (970913 Japan)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_DSTLK,
- NULL, Vhunt2r1RomInfo, Vhunt2r1RomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsVsav = {
- "vsav", NULL, NULL, NULL, "1997",
- "Vampire Savior - the lord of vampire (970519 Euro)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_DSTLK,
- NULL, VsavRomInfo, VsavRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsVsava = {
- "vsava", "vsav", NULL, NULL, "1997",
- "Vampire Savior - the lord of vampire (970519 Asia)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_DSTLK,
- NULL, VsavaRomInfo, VsavaRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsVsavh = {
- "vsavh", "vsav", NULL, NULL, "1997",
- "Vampire Savior - the lord of vampire (970519 Hispanic)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_DSTLK,
- NULL, VsavhRomInfo, VsavhRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsVsavj = {
- "vsavj", "vsav", NULL, NULL, "1997",
- "Vampire Savior - the lord of vampire (970519 Japan)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_DSTLK,
- NULL, VsavjRomInfo, VsavjRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsVsavu = {
- "vsavu", "vsav", NULL, NULL, "1997",
- "Vampire Savior - the lord of vampire (970519 USA)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_DSTLK,
- NULL, VsavuRomInfo, VsavuRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsVsav2 = {
- "vsav2", NULL, NULL, NULL, "1997",
- "Vampire Savior 2 - the lord of vampire (970913 Japan)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_DSTLK,
- NULL, Vsav2RomInfo, Vsav2RomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsXmcota = {
- "xmcota", NULL, NULL, NULL, "1995",
- "X-Men - children of the atom (950331 Euro)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, 0,
- NULL, XmcotaRomInfo, XmcotaRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- XmcotaInit, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsXmcotar1 = {
- "xmcotar1", "xmcota", NULL, NULL, "1995",
- "X-Men - children of the atom (950105 Euro)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, 0,
- NULL, Xmcotar1RomInfo, Xmcotar1RomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- XmcotaInit, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsXmcotaa = {
- "xmcotaa", "xmcota", NULL, NULL, "1995",
- "X-Men - children of the atom (950105 Asia)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, 0,
- NULL, XmcotaaRomInfo, XmcotaaRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- XmcotaInit, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsXmcotaar1 = {
- "xmcotaar1", "xmcota", NULL, NULL, "1995",
- "X-Men - children of the atom (941217 Asia)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, 0,
- NULL, Xmcotaar1RomInfo, Xmcotaar1RomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- XmcotaInit, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsXmcotah = {
- "xmcotah", "xmcota", NULL, NULL, "1995",
- "X-Men - children of the atom (950331 Hispanic)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2,HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, 0,
- NULL, XmcotahRomInfo, XmcotahRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- XmcotaInit, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsXmcotahr1 = {
- "xmcotahr1", "xmcota", NULL, NULL, "1995",
- "X-Men - children of the atom (950105 Hispanic)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2,HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, 0,
- NULL, Xmcotahr1RomInfo, Xmcotahr1RomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- XmcotaInit, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsXmcotaj = {
- "xmcotaj", "xmcota", NULL, NULL, "1994",
- "X-Men - children of the atom (950105 Japan)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, 0,
- NULL, XmcotajRomInfo, XmcotajRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- XmcotaInit, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsXmcotaj1 = {
- "xmcotaj1", "xmcota", NULL, NULL, "1994",
- "X-Men - children of the atom (941222 Japan)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, 0,
- NULL, Xmcotaj1RomInfo, Xmcotaj1RomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- XmcotaInit, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsXmcotaj2 = {
- "xmcotaj2", "xmcota", NULL, NULL, "1994",
- "X-Men - children of the atom (941219 Japan)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, 0,
- NULL, Xmcotaj2RomInfo, Xmcotaj2RomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- XmcotaInit, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsXmcotaj3 = {
- "xmcotaj3", "xmcota", NULL, NULL, "1994",
- "X-Men - children of the atom (941217 Japan)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, 0,
- NULL, Xmcotaj3RomInfo, Xmcotaj3RomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- XmcotaInit, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsXmcotajr = {
- "xmcotajr", "xmcota", NULL, NULL, "1994",
- "X-Men - children of the atom (941208 Japan, rent version)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, 0,
- NULL, XmcotajrRomInfo, XmcotajrRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- XmcotaInit, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsXmcotau = {
- "xmcotau", "xmcota", NULL, NULL, "1995",
- "X-Men - children of the atom (950105 USA)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, 0,
- NULL, XmcotauRomInfo, XmcotauRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- XmcotaInit, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsXmvsf = {
- "xmvsf", NULL, NULL, NULL, "1996",
- "X-Men vs Street Fighter (961004 Euro)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, XmvsfRomInfo, XmvsfRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsXmvsfr1 = {
- "xmvsfr1", "xmvsf", NULL, NULL, "1996",
- "X-Men vs Street Fighter (960910 Euro)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, Xmvsfr1RomInfo, Xmvsfr1RomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsXmvsfa = {
- "xmvsfa", "xmvsf", NULL, NULL, "1996",
- "X-Men vs Street Fighter (961023 Asia)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, XmvsfaRomInfo, XmvsfaRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsXmvsfar1 = {
- "xmvsfar1", "xmvsf", NULL, NULL, "1996",
- "X-Men vs Street Fighter (961004 Asia)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, Xmvsfar1RomInfo, Xmvsfar1RomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsXmvsfar2 = {
- "xmvsfar2", "xmvsf", NULL, NULL, "1996",
- "X-Men vs Street Fighter (960919 Asia)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, Xmvsfar2RomInfo, Xmvsfar2RomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsXmvsfar3 = {
- "xmvsfar3", "xmvsf", NULL, NULL, "1996",
- "X-Men vs Street Fighter (960910 Asia)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, Xmvsfar3RomInfo, Xmvsfar3RomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsXmvsfb = {
- "xmvsfb", "xmvsf", NULL, NULL, "1996",
- "X-Men vs Street Fighter (961023 Brazil)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, XmvsfbRomInfo, XmvsfbRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsXmvsfh = {
- "xmvsfh", "xmvsf", NULL, NULL, "1996",
- "X-Men vs Street Fighter (961004 Hispanic)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, XmvsfhRomInfo, XmvsfhRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsXmvsfj = {
- "xmvsfj", "xmvsf", NULL, NULL, "1996",
- "X-Men vs Street Fighter (961023 Japan)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, XmvsfjRomInfo, XmvsfjRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsXmvsfjr1 = {
- "xmvsfjr1", "xmvsf", NULL, NULL, "1996",
- "X-Men vs Street Fighter (961004 Japan)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, Xmvsfjr1RomInfo, Xmvsfjr1RomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsXmvsfjr2 = {
- "xmvsfjr2", "xmvsf", NULL, NULL, "1996",
- "X-Men vs Street Fighter (960910 Japan)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, Xmvsfjr2RomInfo, Xmvsfjr2RomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsXmvsfjr3 = {
- "xmvsfjr3", "xmvsf", NULL, NULL, "1996",
- "X-Men vs Street Fighter (960909 Japan)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, Xmvsfjr3RomInfo, Xmvsfjr3RomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsXmvsfu = {
- "xmvsfu", "xmvsf", NULL, NULL, "1996",
- "X-Men vs Street Fighter (961023 USA)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, XmvsfuRomInfo, XmvsfuRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsXmvsfur1 = {
- "xmvsfur1", "xmvsf", NULL, NULL, "1996",
- "X-Men vs Street Fighter (961004 USA)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, Xmvsfur1RomInfo, Xmvsfur1RomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsXmvsfur2 = {
- "xmvsfur2", "xmvsf", NULL, NULL, "1996",
- "X-Men vs Street Fighter (960910 USA)\0", NULL, "Capcom", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, Xmvsfur2RomInfo, Xmvsfur2RomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-// Phoenix sets
-
-static struct BurnRomInfo NinexxdRomDesc[] = {
- { "19xud.03", 0x080000, 0xf81b60e5, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "19xud.04", 0x080000, 0xcc44638c, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "19xud.05", 0x080000, 0x33a168de, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "19xud.06", 0x080000, 0xe0111282, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "19x.07", 0x080000, 0x61c0296c, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "19x.13m", 0x080000, 0x427aeb18, CPS2_GFX | BRF_GRA },
- { "19x.15m", 0x080000, 0x63bdbf54, CPS2_GFX | BRF_GRA },
- { "19x.17m", 0x080000, 0x2dfe18b5, CPS2_GFX | BRF_GRA },
- { "19x.19m", 0x080000, 0xcbef9579, CPS2_GFX | BRF_GRA },
- { "19x.14m", 0x200000, 0xe916967c, CPS2_GFX | BRF_GRA },
- { "19x.16m", 0x200000, 0x6e75f3db, CPS2_GFX | BRF_GRA },
- { "19x.18m", 0x200000, 0x2213e798, CPS2_GFX | BRF_GRA },
- { "19x.20m", 0x200000, 0xab9d5b96, CPS2_GFX | BRF_GRA },
-
- { "19x.01", 0x020000, 0xef55195e, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "19x.11m", 0x200000, 0xd38beef3, CPS2_QSND | BRF_SND },
- { "19x.12m", 0x200000, 0xd47c96e2, CPS2_QSND | BRF_SND },
-
- { "phoenix.key", 0x000014, 0x2cf772b0, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Ninexxd)
-STD_ROM_FN(Ninexxd)
-
-static struct BurnRomInfo Nine44dRomDesc[] = {
- { "nffud.03", 0x080000, 0x28E8AAE4, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "nff.04", 0x080000, 0xdba1C66e, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "nffu.05", 0x080000, 0xea813eb7, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "nff.13m", 0x400000, 0xC9fca741, CPS2_GFX | BRF_GRA },
- { "nff.15m", 0x400000, 0xf809d898, CPS2_GFX | BRF_GRA },
- { "nff.17m", 0x400000, 0x15ba4507, CPS2_GFX | BRF_GRA },
- { "nff.19m", 0x400000, 0x3dd41b8c, CPS2_GFX | BRF_GRA },
- { "nff.14m", 0x100000, 0x3fe3a54b, CPS2_GFX | BRF_GRA },
- { "nff.16m", 0x100000, 0x565cd231, CPS2_GFX | BRF_GRA },
- { "nff.18m", 0x100000, 0x63ca5988, CPS2_GFX | BRF_GRA },
- { "nff.20m", 0x100000, 0x21eb8f3B, CPS2_GFX | BRF_GRA },
-
- { "nff.01", 0x020000, 0xd2e44318, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "nff.11m", 0x400000, 0x243e4e05, CPS2_QSND | BRF_SND },
- { "nff.12m", 0x400000, 0x4fcf1600, CPS2_QSND | BRF_SND },
-
- { "phoenix.key", 0x000014, 0x2cf772b0, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Nine44d)
-STD_ROM_FN(Nine44d)
-
-static struct BurnRomInfo Nine44adRomDesc[] = {
- { "nffuad.03", 0x080000, 0x78188e42, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "nff.04", 0x080000, 0xdba1C66e, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "nffu.05", 0x080000, 0xea813eb7, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "nff.13m", 0x400000, 0xC9fca741, CPS2_GFX | BRF_GRA },
- { "nff.15m", 0x400000, 0xf809d898, CPS2_GFX | BRF_GRA },
- { "nff.17m", 0x400000, 0x15ba4507, CPS2_GFX | BRF_GRA },
- { "nff.19m", 0x400000, 0x3dd41b8c, CPS2_GFX | BRF_GRA },
- { "nff.14m", 0x100000, 0x3fe3a54b, CPS2_GFX | BRF_GRA },
- { "nff.16m", 0x100000, 0x565cd231, CPS2_GFX | BRF_GRA },
- { "nff.18m", 0x100000, 0x63ca5988, CPS2_GFX | BRF_GRA },
- { "nff.20m", 0x100000, 0x21eb8f3B, CPS2_GFX | BRF_GRA },
-
- { "nff.01", 0x020000, 0xd2e44318, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "nff.11m", 0x400000, 0x243e4e05, CPS2_QSND | BRF_SND },
- { "nff.12m", 0x400000, 0x4fcf1600, CPS2_QSND | BRF_SND },
-
- { "phoenix.key", 0x000014, 0x2cf772b0, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Nine44ad)
-STD_ROM_FN(Nine44ad)
-
-static struct BurnRomInfo Armwar1dRomDesc[] = {
- { "pwged.03b", 0x080000, 0x496bd483, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pwged.04b", 0x080000, 0x9bd6a38f, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pwged.05a", 0x080000, 0x4c11d30f, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pwg.06", 0x080000, 0x87a60ce8, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pwg.07", 0x080000, 0xf7b148df, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pwg.08", 0x080000, 0xcc62823e, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pwg.09", 0x080000, 0xddc85ca6, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pwg.10", 0x080000, 0x07c4fb28, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "pwg.13m", 0x400000, 0xae8fe08e, CPS2_GFX | BRF_GRA },
- { "pwg.15m", 0x400000, 0xdb560f58, CPS2_GFX | BRF_GRA },
- { "pwg.17m", 0x400000, 0xbc475b94, CPS2_GFX | BRF_GRA },
- { "pwg.19m", 0x400000, 0x07439ff7, CPS2_GFX | BRF_GRA },
- { "pwg.14m", 0x100000, 0xc3f9ba63, CPS2_GFX | BRF_GRA },
- { "pwg.16m", 0x100000, 0x815b0e7b, CPS2_GFX | BRF_GRA },
- { "pwg.18m", 0x100000, 0x0109c71b, CPS2_GFX | BRF_GRA },
- { "pwg.20m", 0x100000, 0xeb75ffbe, CPS2_GFX | BRF_GRA },
-
- { "pwg.01", 0x020000, 0x18a5c0e4, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "pwg.02", 0x020000, 0xc9dfffa6, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "pwg.11m", 0x200000, 0xa78f7433, CPS2_QSND | BRF_SND },
- { "pwg.12m", 0x200000, 0x77438ed0, CPS2_QSND | BRF_SND },
-
- { "phoenix.key", 0x000014, 0x2cf772b0, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Armwar1d)
-STD_ROM_FN(Armwar1d)
-
-static struct BurnRomInfo AvspdRomDesc[] = {
- { "avped.03d", 0x080000, 0x66aa8aad, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "avped.04d", 0x080000, 0x579306c2, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "avp.05d", 0x080000, 0xfbfb5d7a, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "avpd.06", 0x080000, 0x63094539, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "avp.13m", 0x200000, 0x8f8b5ae4, CPS2_GFX | BRF_GRA },
- { "avp.15m", 0x200000, 0xb00280df, CPS2_GFX | BRF_GRA },
- { "avp.17m", 0x200000, 0x94403195, CPS2_GFX | BRF_GRA },
- { "avp.19m", 0x200000, 0xe1981245, CPS2_GFX | BRF_GRA },
- { "avp.14m", 0x200000, 0xebba093e, CPS2_GFX | BRF_GRA },
- { "avp.16m", 0x200000, 0xfb228297, CPS2_GFX | BRF_GRA },
- { "avp.18m", 0x200000, 0x34fb7232, CPS2_GFX | BRF_GRA },
- { "avp.20m", 0x200000, 0xf90baa21, CPS2_GFX | BRF_GRA },
-
- { "avp.01", 0x020000, 0x2d3b4220, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "avp.11m", 0x200000, 0x83499817, CPS2_QSND | BRF_SND },
- { "avp.12m", 0x200000, 0xf4110d49, CPS2_QSND | BRF_SND },
-
- { "phoenix.key", 0x000014, 0x2cf772b0, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Avspd)
-STD_ROM_FN(Avspd)
-
-static struct BurnRomInfo BatcirdRomDesc[] = {
- { "btced.03", 0x080000, 0x0737db6d, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "btced.04", 0x080000, 0xef1a8823, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "btced.05", 0x080000, 0x20bdbb14, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "btced.06", 0x080000, 0xb4d8f5bc, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "btc.07", 0x080000, 0x7322d5db, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "btc.08", 0x080000, 0x6aac85ab, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "btc.09", 0x080000, 0x1203db08, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "btc.13m", 0x400000, 0xdc705bad, CPS2_GFX | BRF_GRA },
- { "btc.15m", 0x400000, 0xe5779a3c, CPS2_GFX | BRF_GRA },
- { "btc.17m", 0x400000, 0xb33f4112, CPS2_GFX | BRF_GRA },
- { "btc.19m", 0x400000, 0xa6fcdb7e, CPS2_GFX | BRF_GRA },
-
- { "btc.01", 0x020000, 0x1e194310, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "btc.02", 0x020000, 0x01aeb8e6, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "btc.11m", 0x200000, 0xc27f2229, CPS2_QSND | BRF_SND },
- { "btc.12m", 0x200000, 0x418a2e33, CPS2_QSND | BRF_SND },
-
- { "phoenix.key", 0x000014, 0x2cf772b0, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Batcird)
-STD_ROM_FN(Batcird)
-
-static struct BurnRomInfo Csclub1dRomDesc[] = {
- { "csce_d.03", 0x080000, 0x5aedc6e6, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "csce_d.04", 0x080000, 0xa3d9aa25, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "csce_d.05", 0x080000, 0x0915c9d1, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "csce_d.06", 0x080000, 0x09c77d99, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "csc_d.07", 0x080000, 0x77478e25, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "csc.73", 0x080000, 0x335f07c3, CPS2_GFX_SPLIT4 | BRF_GRA },
- { "csc.74", 0x080000, 0xab215357, CPS2_GFX_SPLIT4 | BRF_GRA },
- { "csc.75", 0x080000, 0xa2367381, CPS2_GFX_SPLIT4 | BRF_GRA },
- { "csc.76", 0x080000, 0x728aac1f, CPS2_GFX_SPLIT4 | BRF_GRA },
- { "csc.63", 0x080000, 0x3711b8ca, CPS2_GFX_SPLIT4 | BRF_GRA },
- { "csc.64", 0x080000, 0x828a06d8, CPS2_GFX_SPLIT4 | BRF_GRA },
- { "csc.65", 0x080000, 0x86ee4569, CPS2_GFX_SPLIT4 | BRF_GRA },
- { "csc.66", 0x080000, 0xc24f577f, CPS2_GFX_SPLIT4 | BRF_GRA },
- { "csc.83", 0x080000, 0x0750d12a, CPS2_GFX_SPLIT4 | BRF_GRA },
- { "csc.84", 0x080000, 0x90a92f39, CPS2_GFX_SPLIT4 | BRF_GRA },
- { "csc.85", 0x080000, 0xd08ab012, CPS2_GFX_SPLIT4 | BRF_GRA },
- { "csc.86", 0x080000, 0x41652583, CPS2_GFX_SPLIT4 | BRF_GRA },
- { "csc.93", 0x080000, 0xa756c7f7, CPS2_GFX_SPLIT4 | BRF_GRA },
- { "csc.94", 0x080000, 0xfb7ccc73, CPS2_GFX_SPLIT4 | BRF_GRA },
- { "csc.95", 0x080000, 0x4d014297, CPS2_GFX_SPLIT4 | BRF_GRA },
- { "csc.96", 0x080000, 0x6754b1ef, CPS2_GFX_SPLIT4 | BRF_GRA },
-
- { "csc.01", 0x020000, 0xee162111, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "csc.51", 0x080000, 0x5a52afd5, CPS2_QSND | BRF_SND },
- { "csc.52", 0x080000, 0x1408a811, CPS2_QSND | BRF_SND },
- { "csc.53", 0x080000, 0x4fb9f57c, CPS2_QSND | BRF_SND },
- { "csc.54", 0x080000, 0x9a8f40ec, CPS2_QSND | BRF_SND },
- { "csc.55", 0x080000, 0x91529a91, CPS2_QSND | BRF_SND },
- { "csc.56", 0x080000, 0x9a345334, CPS2_QSND | BRF_SND },
- { "csc.57", 0x080000, 0xaedc27f2, CPS2_QSND | BRF_SND },
- { "csc.58", 0x080000, 0x2300b7b3, CPS2_QSND | BRF_SND },
-
- { "phoenix.key", 0x000014, 0x2cf772b0, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Csclub1d)
-STD_ROM_FN(Csclub1d)
-
-static struct BurnRomInfo CybotsudRomDesc[] = {
- { "cybu_d.03", 0x080000, 0xee7560fb, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "cybu_d.04", 0x080000, 0x7e7425a0, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "cyb.05", 0x080000, 0xec40408e, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "cyb.06", 0x080000, 0x1ad0bed2, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "cyb.07", 0x080000, 0x6245a39a, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "cyb.08", 0x080000, 0x4b48e223, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "cyb.09", 0x080000, 0xe15238f6, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "cyb.10", 0x080000, 0x75f4003b, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "cyb.13m", 0x400000, 0xf0dce192, CPS2_GFX | BRF_GRA },
- { "cyb.15m", 0x400000, 0x187aa39c, CPS2_GFX | BRF_GRA },
- { "cyb.17m", 0x400000, 0x8a0e4b12, CPS2_GFX | BRF_GRA },
- { "cyb.19m", 0x400000, 0x34b62612, CPS2_GFX | BRF_GRA },
- { "cyb.14m", 0x400000, 0xc1537957, CPS2_GFX | BRF_GRA },
- { "cyb.16m", 0x400000, 0x15349e86, CPS2_GFX | BRF_GRA },
- { "cyb.18m", 0x400000, 0xd83e977d, CPS2_GFX | BRF_GRA },
- { "cyb.20m", 0x400000, 0x77cdad5c, CPS2_GFX | BRF_GRA },
-
- { "cyb.01", 0x020000, 0x9c0fb079, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "cyb.02", 0x020000, 0x51cb0c4e, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "cyb.11m", 0x200000, 0x362ccab2, CPS2_QSND | BRF_SND },
- { "cyb.12m", 0x200000, 0x7066e9cc, CPS2_QSND | BRF_SND },
-
- { "phoenix.key", 0x000014, 0x2cf772b0, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Cybotsud)
-STD_ROM_FN(Cybotsud)
-
-static struct BurnRomInfo CybotsjdRomDesc[] = {
- { "cybj_d.03", 0x080000, 0x9eb34071, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "cybj_d.04", 0x080000, 0xcf223cd7, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "cyb.05", 0x080000, 0xec40408e, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "cyb.06", 0x080000, 0x1ad0bed2, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "cyb.07", 0x080000, 0x6245a39a, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "cyb.08", 0x080000, 0x4b48e223, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "cyb.09", 0x080000, 0xe15238f6, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "cyb.10", 0x080000, 0x75f4003b, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "cyb.13m", 0x400000, 0xf0dce192, CPS2_GFX | BRF_GRA },
- { "cyb.15m", 0x400000, 0x187aa39c, CPS2_GFX | BRF_GRA },
- { "cyb.17m", 0x400000, 0x8a0e4b12, CPS2_GFX | BRF_GRA },
- { "cyb.19m", 0x400000, 0x34b62612, CPS2_GFX | BRF_GRA },
- { "cyb.14m", 0x400000, 0xc1537957, CPS2_GFX | BRF_GRA },
- { "cyb.16m", 0x400000, 0x15349e86, CPS2_GFX | BRF_GRA },
- { "cyb.18m", 0x400000, 0xd83e977d, CPS2_GFX | BRF_GRA },
- { "cyb.20m", 0x400000, 0x77cdad5c, CPS2_GFX | BRF_GRA },
-
- { "cyb.01", 0x020000, 0x9c0fb079, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "cyb.02", 0x020000, 0x51cb0c4e, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "cyb.11m", 0x200000, 0x362ccab2, CPS2_QSND | BRF_SND },
- { "cyb.12m", 0x200000, 0x7066e9cc, CPS2_QSND | BRF_SND },
-
- { "phoenix.key", 0x000014, 0x2cf772b0, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Cybotsjd)
-STD_ROM_FN(Cybotsjd)
-
-static struct BurnRomInfo DdsomudRomDesc[] = {
- { "dd2ud.03g", 0x080000, 0x816f695a, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dd2ud.04g", 0x080000, 0x7cc81c6b, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dd2.05g", 0x080000, 0x5eb1991c, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dd2.06g", 0x080000, 0xc26b5e55, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dd2.07", 0x080000, 0x909a0b8b, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dd2.08", 0x080000, 0xe53c4d01, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dd2.09", 0x080000, 0x5f86279f, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dd2d.10", 0x080000, 0x0c172f8f, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "dd2.13m", 0x400000, 0xa46b4e6e, CPS2_GFX | BRF_GRA },
- { "dd2.15m", 0x400000, 0xd5fc50fc, CPS2_GFX | BRF_GRA },
- { "dd2.17m", 0x400000, 0x837c0867, CPS2_GFX | BRF_GRA },
- { "dd2.19m", 0x400000, 0xbb0ec21c, CPS2_GFX | BRF_GRA },
- { "dd2.14m", 0x200000, 0x6d824ce2, CPS2_GFX | BRF_GRA },
- { "dd2.16m", 0x200000, 0x79682ae5, CPS2_GFX | BRF_GRA },
- { "dd2.18m", 0x200000, 0xacddd149, CPS2_GFX | BRF_GRA },
- { "dd2.20m", 0x200000, 0x117fb0c0, CPS2_GFX | BRF_GRA },
-
- { "dd2.01", 0x020000, 0x99d657e5, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "dd2.02", 0x020000, 0x117a3824, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "dd2.11m", 0x200000, 0x98d0c325, CPS2_QSND | BRF_SND },
- { "dd2.12m", 0x200000, 0x5ea2e7fa, CPS2_QSND | BRF_SND },
-
- { "phoenix.key", 0x000014, 0x2cf772b0, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Ddsomud)
-STD_ROM_FN(Ddsomud)
-
-static struct BurnRomInfo DdtoddRomDesc[] = {
- { "daded.03c", 0x080000, 0x843330f4, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "daded.04c", 0x080000, 0x306f14fc, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "daded.05c", 0x080000, 0x8c6b8328, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dad.06a", 0x080000, 0x6225495a, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "dadd.07a", 0x080000, 0x0f0df6cc, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "dad.13m", 0x200000, 0xda3cb7d6, CPS2_GFX | BRF_GRA },
- { "dad.15m", 0x200000, 0x92b63172, CPS2_GFX | BRF_GRA },
- { "dad.17m", 0x200000, 0xb98757f5, CPS2_GFX | BRF_GRA },
- { "dad.19m", 0x200000, 0x8121ce46, CPS2_GFX | BRF_GRA },
- { "dad.14m", 0x100000, 0x837e6f3f, CPS2_GFX | BRF_GRA },
- { "dad.16m", 0x100000, 0xf0916bdb, CPS2_GFX | BRF_GRA },
- { "dad.18m", 0x100000, 0xcef393ef, CPS2_GFX | BRF_GRA },
- { "dad.20m", 0x100000, 0x8953fe9e, CPS2_GFX | BRF_GRA },
-
- { "dad.01", 0x020000, 0x3f5e2424, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "dad.11m", 0x200000, 0x0c499b67, CPS2_QSND | BRF_SND },
- { "dad.12m", 0x200000, 0x2f0b5a4e, CPS2_QSND | BRF_SND },
-
- { "phoenix.key", 0x000014, 0x2cf772b0, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Ddtodd)
-STD_ROM_FN(Ddtodd)
-
-static struct BurnRomInfo DimahoudRomDesc[] = {
- { "gmdud.03", 0x080000, 0x12888435, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "gmd.04", 0x080000, 0x37485567, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "gmd.05", 0x080000, 0xda269ffb, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "gmdud.06", 0x080000, 0xd825efda, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "gmd.13m", 0x400000, 0x80dd19f0, CPS2_GFX | BRF_GRA },
- { "gmd.15m", 0x400000, 0xdfd93A78, CPS2_GFX | BRF_GRA },
- { "gmd.17m", 0x400000, 0x16356520, CPS2_GFX | BRF_GRA },
- { "gmd.19m", 0x400000, 0xdfc33031, CPS2_GFX | BRF_GRA },
-
- { "gmd.01", 0x020000, 0x3f9bc985, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "gmd.02", 0x020000, 0x3fd39dde, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "gmd.11m", 0x400000, 0x06a65542, CPS2_QSND | BRF_SND },
- { "gmd.12m", 0x400000, 0x50bc7a31, CPS2_QSND | BRF_SND },
-
- { "phoenix.key", 0x000014, 0x2cf772b0, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Dimahoud)
-STD_ROM_FN(Dimahoud)
-
-static struct BurnRomInfo Dstlku1dRomDesc[] = {
- { "vamud.03a", 0x080000, 0x47b7a680, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vamud.04a", 0x080000, 0x3b7a4939, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vamu.05a", 0x080000, 0x673ed50a, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vamu.06a", 0x080000, 0xf2377be7, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vamu.07a", 0x080000, 0xd8f498c4, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vamu.08a", 0x080000, 0xe6a8a1a0, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vamud.09a", 0x080000, 0x8b333a19, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vamu.10a", 0x080000, 0xc1a3d9be, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "vam.13m", 0x400000, 0xc51baf99, CPS2_GFX | BRF_GRA },
- { "vam.15m", 0x400000, 0x3ce83c77, CPS2_GFX | BRF_GRA },
- { "vam.17m", 0x400000, 0x4f2408e0, CPS2_GFX | BRF_GRA },
- { "vam.19m", 0x400000, 0x9ff60250, CPS2_GFX | BRF_GRA },
- { "vam.14m", 0x100000, 0xbd87243c, CPS2_GFX | BRF_GRA },
- { "vam.16m", 0x100000, 0xafec855f, CPS2_GFX | BRF_GRA },
- { "vam.18m", 0x100000, 0x3a033625, CPS2_GFX | BRF_GRA },
- { "vam.20m", 0x100000, 0x2bff6a89, CPS2_GFX | BRF_GRA },
-
- { "vam.01", 0x020000, 0x64b685d5, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "vam.02", 0x020000, 0xcf7c97c7, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "vam.11m", 0x200000, 0x4a39deb2, CPS2_QSND | BRF_SND },
- { "vam.12m", 0x200000, 0x1a3e5c03, CPS2_QSND | BRF_SND },
-
- { "phoenix.key", 0x000014, 0x2cf772b0, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Dstlku1d)
-STD_ROM_FN(Dstlku1d)
-
-static struct BurnRomInfo EcofghtrdRomDesc[] = {
- { "ueced.03", 0x080000, 0xac725d2b, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "ueced.04", 0x080000, 0xf800138d, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "ueced.05", 0x080000, 0xeb6a12f2, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "ueced.06", 0x080000, 0x8380ec9a, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "uec.13m", 0x200000, 0xdcaf1436, CPS2_GFX | BRF_GRA },
- { "uec.15m", 0x200000, 0x2807df41, CPS2_GFX | BRF_GRA },
- { "uec.17m", 0x200000, 0x8a708d02, CPS2_GFX | BRF_GRA },
- { "uec.19m", 0x200000, 0xde7be0ef, CPS2_GFX | BRF_GRA },
- { "uec.14m", 0x100000, 0x1a003558, CPS2_GFX | BRF_GRA },
- { "uec.16m", 0x100000, 0x4ff8a6f9, CPS2_GFX | BRF_GRA },
- { "uec.18m", 0x100000, 0xb167ae12, CPS2_GFX | BRF_GRA },
- { "uec.20m", 0x100000, 0x1064bdc2, CPS2_GFX | BRF_GRA },
-
- { "uec.01", 0x020000, 0xc235bd15, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "uec.11m", 0x200000, 0x81b25d39, CPS2_QSND | BRF_SND },
- { "uec.12m", 0x200000, 0x27729e52, CPS2_QSND | BRF_SND },
-
- { "phoenix.key", 0x000014, 0x2cf772b0, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Ecofghtrd)
-STD_ROM_FN(Ecofghtrd)
-
-static struct BurnRomInfo GigawingdRomDesc[] = {
- { "ggwu_d.03", 0x080000, 0xdde92dfa, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "ggwu_d.04", 0x080000, 0xe0509ae2, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "ggw_d.05", 0x080000, 0x722d0042, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "ggw.13m", 0x400000, 0x105530a4, CPS2_GFX | BRF_GRA },
- { "ggw.15m", 0x400000, 0x9e774ab9, CPS2_GFX | BRF_GRA },
- { "ggw.17m", 0x400000, 0x466e0ba4, CPS2_GFX | BRF_GRA },
- { "ggw.19m", 0x400000, 0x840c8dea, CPS2_GFX | BRF_GRA },
-
- { "ggw.01", 0x020000, 0x4c6351d5, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "ggw.11m", 0x400000, 0xe172acf5, CPS2_QSND | BRF_SND },
- { "ggw.12m", 0x400000, 0x4bee4e8f, CPS2_QSND | BRF_SND },
-
- { "phoenix.key", 0x000014, 0x2cf772b0, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Gigawingd)
-STD_ROM_FN(Gigawingd)
-
-static struct BurnRomInfo GigawingjdRomDesc[] = {
- { "ggwjd.03a", 0x080000, 0xcb1c756e, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "ggwjd.04a", 0x080000, 0xfa158e04, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "ggwjd.05a", 0x080000, 0x1c5bc4e7, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "ggw.13m", 0x400000, 0x105530a4, CPS2_GFX | BRF_GRA },
- { "ggw.15m", 0x400000, 0x9e774ab9, CPS2_GFX | BRF_GRA },
- { "ggw.17m", 0x400000, 0x466e0ba4, CPS2_GFX | BRF_GRA },
- { "ggw.19m", 0x400000, 0x840c8dea, CPS2_GFX | BRF_GRA },
-
- { "ggw.01", 0x020000, 0x4c6351d5, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "ggw.11m", 0x400000, 0xe172acf5, CPS2_QSND | BRF_SND },
- { "ggw.12m", 0x400000, 0x4bee4e8f, CPS2_QSND | BRF_SND },
-
- { "phoenix.key", 0x000014, 0x2cf772b0, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Gigawingjd)
-STD_ROM_FN(Gigawingjd)
-
-static struct BurnRomInfo Hsf2dRomDesc[] = {
- { "hs2ad.03", 0x080000, 0x0153d371, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "hs2ad.04", 0x080000, 0x0276b78a, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "hs2.05", 0x080000, 0xdde34a35, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "hs2.06", 0x080000, 0xf4e56dda, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "hs2.07", 0x080000, 0xee4420fc, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "hs2.08", 0x080000, 0xc9441533, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "hs2.09", 0x080000, 0x3fc638a8, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "hs2.10", 0x080000, 0x20d0f9e4, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "hs2.13m", 0x800000, 0xa6ecab17, CPS2_GFX | BRF_GRA },
- { "hs2.15m", 0x800000, 0x10a0ae4d, CPS2_GFX | BRF_GRA },
- { "hs2.17m", 0x800000, 0xadfa7726, CPS2_GFX | BRF_GRA },
- { "hs2.19m", 0x800000, 0xbb3ae322, CPS2_GFX | BRF_GRA },
-
- { "hs2.01", 0x020000, 0xc1a13786, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "hs2.02", 0x020000, 0x2d8794aa, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "hs2.11m", 0x800000, 0x0e15c359, CPS2_QSND | BRF_SND },
-
- { "phoenix.key", 0x000014, 0x2cf772b0, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Hsf2d)
-STD_ROM_FN(Hsf2d)
-
-static struct BurnRomInfo Hsf2daRomDesc[] = {
- { "hs2ad.03", 0x080000, 0x0153d371, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "hs2ad.04", 0x080000, 0x0276b78a, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "hs2.05", 0x080000, 0xdde34a35, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "hs2.06", 0x080000, 0xf4e56dda, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "hs2.07", 0x080000, 0xee4420fc, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "hs2.08", 0x080000, 0xc9441533, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "hs2.09", 0x080000, 0x3fc638a8, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "hs2.10", 0x080000, 0x20d0f9e4, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "hs2.13", 0x400000, 0x6ff7f5f1, CPS2_GFX | BRF_GRA },
- { "hs2.15", 0x400000, 0x26da2f5d, CPS2_GFX | BRF_GRA },
- { "hs2.17", 0x400000, 0xe769ee8e, CPS2_GFX | BRF_GRA },
- { "hs2.19", 0x400000, 0x7f47fd07, CPS2_GFX | BRF_GRA },
- { "hs2.14", 0x400000, 0xc549e333, CPS2_GFX | BRF_GRA },
- { "hs2.16", 0x400000, 0x0a8541f9, CPS2_GFX | BRF_GRA },
- { "hs2.18", 0x400000, 0xf4c92b27, CPS2_GFX | BRF_GRA },
- { "hs2.20", 0x400000, 0xba355a75, CPS2_GFX | BRF_GRA },
-
- { "hs2.01", 0x020000, 0xc1a13786, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "hs2.02", 0x020000, 0x2d8794aa, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "hs2(__hsf2da).11m", 0x400000, 0x5cb00496, CPS2_QSND | BRF_SND },
- { "hs2.12m", 0x400000, 0x8f298007, CPS2_QSND | BRF_SND },
-
- { "phoenix.key", 0x000014, 0x2cf772b0, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Hsf2da)
-STD_ROM_FN(Hsf2da)
-
-static struct BurnRomInfo Megamn2dRomDesc[] = {
- { "rm2ud.03", 0x080000, 0xd3635f25, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "rm2ud.04", 0x080000, 0x768a1705, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "rm2.05", 0x080000, 0x02ee9efc, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "rm2.14m", 0x200000, 0x9b1f00b4, CPS2_GFX | BRF_GRA },
- { "rm2.16m", 0x200000, 0xc2bb0c24, CPS2_GFX | BRF_GRA },
- { "rm2.18m", 0x200000, 0x12257251, CPS2_GFX | BRF_GRA },
- { "rm2.20m", 0x200000, 0xf9b6e786, CPS2_GFX | BRF_GRA },
-
- { "rm2.01a", 0x020000, 0xd18e7859, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "rm2.02", 0x020000, 0xc463ece0, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "rm2.11m", 0x200000, 0x2106174d, CPS2_QSND | BRF_SND },
- { "rm2.12m", 0x200000, 0x546c1636, CPS2_QSND | BRF_SND },
-
- { "phoenix.key", 0x000014, 0x2cf772b0, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Megamn2d)
-STD_ROM_FN(Megamn2d)
-
-static struct BurnRomInfo MmatrixdRomDesc[] = {
- { "mmxud.03", 0x080000, 0x36711e60, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mmxud.04", 0x080000, 0x4687226f, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mmxud.05", 0x080000, 0x52124398, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "mmx.13m", 0x400000, 0x04748718, CPS2_GFX | BRF_GRA },
- { "mmx.15m", 0x400000, 0x38074f44, CPS2_GFX | BRF_GRA },
- { "mmx.17m", 0x400000, 0xe4635e35, CPS2_GFX | BRF_GRA },
- { "mmx.19m", 0x400000, 0x4400a3f2, CPS2_GFX | BRF_GRA },
- { "mmx.14m", 0x400000, 0xd52bf491, CPS2_GFX | BRF_GRA },
- { "mmx.16m", 0x400000, 0x23f70780, CPS2_GFX | BRF_GRA },
- { "mmx.18m", 0x400000, 0x2562c9d5, CPS2_GFX | BRF_GRA },
- { "mmx.20m", 0x400000, 0x583a9687, CPS2_GFX | BRF_GRA },
-
- { "mmx.01", 0x020000, 0xc57e8171, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "mmx.11m", 0x400000, 0x4180b39f, CPS2_QSND | BRF_SND },
- { "mmx.12m", 0x400000, 0x95e22a59, CPS2_QSND | BRF_SND },
-
- { "phoenix.key", 0x000014, 0x2cf772b0, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Mmatrixd)
-STD_ROM_FN(Mmatrixd)
-
-static struct BurnRomInfo MpangjdRomDesc[] = {
- { "mpnj-pnx.03", 0x080000, 0xdac63128, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mpnj-pnx.04", 0x080000, 0xd0b2592b, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "mpn-simm.01c", 0x200000, 0x388DB66B, CPS2_GFX_SIMM | BRF_GRA },
- { "mpn-simm.01d", 0x200000, 0xAFF1B494, CPS2_GFX_SIMM | BRF_GRA },
- { "mpn-simm.01a", 0x200000, 0xA9C4857B, CPS2_GFX_SIMM | BRF_GRA },
- { "mpn-simm.01b", 0x200000, 0xF759DF22, CPS2_GFX_SIMM | BRF_GRA },
- { "mpn-simm.03c", 0x200000, 0xDEC6B720, CPS2_GFX_SIMM | BRF_GRA },
- { "mpn-simm.03d", 0x200000, 0xF8774C18, CPS2_GFX_SIMM | BRF_GRA },
- { "mpn-simm.03a", 0x200000, 0xC2AEA4EC, CPS2_GFX_SIMM | BRF_GRA },
- { "mpn-simm.03b", 0x200000, 0x84D6DC33, CPS2_GFX_SIMM | BRF_GRA },
-
- { "mpn.01", 0x020000, 0x90C7ADB6, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "mpn-simm.05a", 0x200000, 0x318A2E21, CPS2_QSND_SIMM | BRF_SND },
- { "mpn-simm.05b", 0x200000, 0x5462F4E8, CPS2_QSND_SIMM | BRF_SND },
-
- { "phoenix.key", 0x000014, 0x2cf772b0, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Mpangjd)
-STD_ROM_FN(Mpangjd)
-
-static struct BurnRomInfo MshudRomDesc[] = {
- { "mshud.03", 0x080000, 0xc1d8c4c6, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mshud.04", 0x080000, 0xe73dda16, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mshud.05", 0x080000, 0x3b493e84, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "msh.06b", 0x080000, 0x803e3fa4, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "msh.07a", 0x080000, 0xc45f8e27, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "msh.08a", 0x080000, 0x9ca6f12c, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "msh.09a", 0x080000, 0x82ec27af, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "msh.10b", 0x080000, 0x8d931196, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "msh.13m", 0x400000, 0x09d14566, CPS2_GFX | BRF_GRA },
- { "msh.15m", 0x400000, 0xee962057, CPS2_GFX | BRF_GRA },
- { "msh.17m", 0x400000, 0x604ece14, CPS2_GFX | BRF_GRA },
- { "msh.19m", 0x400000, 0x94a731e8, CPS2_GFX | BRF_GRA },
- { "msh.14m", 0x400000, 0x4197973e, CPS2_GFX | BRF_GRA },
- { "msh.16m", 0x400000, 0x438da4a0, CPS2_GFX | BRF_GRA },
- { "msh.18m", 0x400000, 0x4db92d94, CPS2_GFX | BRF_GRA },
- { "msh.20m", 0x400000, 0xa2b0c6c0, CPS2_GFX | BRF_GRA },
-
- { "msh.01", 0x020000, 0xc976e6f9, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "msh.02", 0x020000, 0xce67d0d9, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "msh.11m", 0x200000, 0x37ac6d30, CPS2_QSND | BRF_SND },
- { "msh.12m", 0x200000, 0xde092570, CPS2_QSND | BRF_SND },
-
- { "phoenix.key", 0x000014, 0x2cf772b0, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Mshud)
-STD_ROM_FN(Mshud)
-
-static struct BurnRomInfo Mshvsfu1dRomDesc[] = {
- { "mvsu_d.03d", 0x080000, 0x1c88bee3, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvsu_d.04d", 0x080000, 0x1e8b2535, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvs_d.05a", 0x080000, 0x373856fb, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvs.06a", 0x080000, 0x959f3030, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvs.07b", 0x080000, 0x7f915bdb, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvs.08a", 0x080000, 0xc2813884, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvs.09b", 0x080000, 0x3ba08818, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvs.10b", 0x080000, 0xcf0dba98, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "mvs.13m", 0x400000, 0x29b05fd9, CPS2_GFX | BRF_GRA },
- { "mvs.15m", 0x400000, 0xfaddccf1, CPS2_GFX | BRF_GRA },
- { "mvs.17m", 0x400000, 0x97aaf4c7, CPS2_GFX | BRF_GRA },
- { "mvs.19m", 0x400000, 0xcb70e915, CPS2_GFX | BRF_GRA },
- { "mvs.14m", 0x400000, 0xb3b1972d, CPS2_GFX | BRF_GRA },
- { "mvs.16m", 0x400000, 0x08aadb5d, CPS2_GFX | BRF_GRA },
- { "mvs.18m", 0x400000, 0xc1228b35, CPS2_GFX | BRF_GRA },
- { "mvs.20m", 0x400000, 0x366cc6c2, CPS2_GFX | BRF_GRA },
-
- { "mvs.01", 0x020000, 0x68252324, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "mvs.02", 0x020000, 0xb34e773d, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "mvs.11m", 0x400000, 0x86219770, CPS2_QSND | BRF_SND },
- { "mvs.12m", 0x400000, 0xf2fd7f68, CPS2_QSND | BRF_SND },
-
- { "phoenix.key", 0x000014, 0x2cf772b0, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Mshvsfu1d)
-STD_ROM_FN(Mshvsfu1d)
-
-static struct BurnRomInfo MvscudRomDesc[] = {
- { "mvcud.03d", 0x080000, 0x75cde3e5, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvcud.04d", 0x080000, 0xb32ea484, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvc.05a", 0x080000, 0x2d8c8e86, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvc.06a", 0x080000, 0x8528e1f5, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvcd.07", 0x080000, 0x205293e9, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvc.08", 0x080000, 0xbc002fcd, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvc.09", 0x080000, 0xc67b26df, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "mvc.10", 0x080000, 0x0fdd1e26, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "mvc.13m", 0x400000, 0xfa5f74bc, CPS2_GFX | BRF_GRA },
- { "mvc.15m", 0x400000, 0x71938a8f, CPS2_GFX | BRF_GRA },
- { "mvc.17m", 0x400000, 0x92741d07, CPS2_GFX | BRF_GRA },
- { "mvc.19m", 0x400000, 0xbcb72fc6, CPS2_GFX | BRF_GRA },
- { "mvc.14m", 0x400000, 0x7f1df4e4, CPS2_GFX | BRF_GRA },
- { "mvc.16m", 0x400000, 0x90bd3203, CPS2_GFX | BRF_GRA },
- { "mvc.18m", 0x400000, 0x67aaf727, CPS2_GFX | BRF_GRA },
- { "mvc.20m", 0x400000, 0x8b0bade8, CPS2_GFX | BRF_GRA },
-
- { "mvc.01", 0x020000, 0x41629e95, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "mvc.02", 0x020000, 0x963abf6b, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "mvc.11m", 0x400000, 0x850fe663, CPS2_QSND | BRF_SND },
- { "mvc.12m", 0x400000, 0x7ccb1896, CPS2_QSND | BRF_SND },
-
- { "phoenix.key", 0x000014, 0x2cf772b0, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Mvscud)
-STD_ROM_FN(Mvscud)
-
-static struct BurnRomInfo NwarrudRomDesc[] = {
- { "vphud.03f", 0x080000, 0x20d4d5a8, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vphud.04c", 0x080000, 0x61be9b42, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vphud.05e", 0x080000, 0x1ba906d8, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vphu.06c", 0x080000, 0x08c04cdb, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vphu.07b", 0x080000, 0xb5a5ab19, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vphu.08b", 0x080000, 0x51bb20fb, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vphu.09b", 0x080000, 0x41a64205, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vphud.10b", 0x080000, 0x9619adad, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "vph.13m", 0x400000, 0xc51baf99, CPS2_GFX | BRF_GRA },
- { "vph.15m", 0x400000, 0x3ce83c77, CPS2_GFX | BRF_GRA },
- { "vph.17m", 0x400000, 0x4f2408e0, CPS2_GFX | BRF_GRA },
- { "vph.19m", 0x400000, 0x9ff60250, CPS2_GFX | BRF_GRA },
- { "vph.14m", 0x400000, 0x7a0e1add, CPS2_GFX | BRF_GRA },
- { "vph.16m", 0x400000, 0x2f41ca75, CPS2_GFX | BRF_GRA },
- { "vph.18m", 0x400000, 0x64498eed, CPS2_GFX | BRF_GRA },
- { "vph.20m", 0x400000, 0x17f2433f, CPS2_GFX | BRF_GRA },
-
- { "vph.01", 0x020000, 0x5045dcac, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "vph.02", 0x020000, 0x86b60e59, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "vph.11m", 0x200000, 0xe1837d33, CPS2_QSND | BRF_SND },
- { "vph.12m", 0x200000, 0xfbd3cd90, CPS2_QSND | BRF_SND },
-
- { "phoenix.key", 0x000014, 0x2cf772b0, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Nwarrud)
-STD_ROM_FN(Nwarrud)
-
-static struct BurnRomInfo ProgearudRomDesc[] = {
- { "pgau_d.03", 0x080000, 0xba22b9c5, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pgau_d.04", 0x080000, 0xdf3927ef, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "pga-simm.01c", 0x200000, 0x452f98b0, CPS2_GFX_SIMM | BRF_GRA },
- { "pga-simm.01d", 0x200000, 0x9e672092, CPS2_GFX_SIMM | BRF_GRA },
- { "pga-simm.01a", 0x200000, 0xae9ddafe, CPS2_GFX_SIMM | BRF_GRA },
- { "pga-simm.01b", 0x200000, 0x94d72d94, CPS2_GFX_SIMM | BRF_GRA },
- { "pga-simm.03c", 0x200000, 0x48a1886d, CPS2_GFX_SIMM | BRF_GRA },
- { "pga-simm.03d", 0x200000, 0x172d7e37, CPS2_GFX_SIMM | BRF_GRA },
- { "pga-simm.03a", 0x200000, 0x9ee33d98, CPS2_GFX_SIMM | BRF_GRA },
- { "pga-simm.03b", 0x200000, 0x848dee32, CPS2_GFX_SIMM | BRF_GRA },
-
- { "pga.01", 0x020000, 0xbdbfa992, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "pga-simm.05a", 0x200000, 0xc0aac80c, CPS2_QSND_SIMM | BRF_SND },
- { "pga-simm.05b", 0x200000, 0x37a65d86, CPS2_QSND_SIMM | BRF_SND },
- { "pga-simm.06a", 0x200000, 0xd3f1e934, CPS2_QSND_SIMM | BRF_SND },
- { "pga-simm.06b", 0x200000, 0x8b39489a, CPS2_QSND_SIMM | BRF_SND },
-
- { "phoenix.key", 0x000014, 0x2cf772b0, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Progearud)
-STD_ROM_FN(Progearud)
-
-static struct BurnRomInfo ProgearjdRomDesc[] = {
- { "pgaj_d.03", 0x080000, 0x0271f3a3, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pgaj_d.04", 0x080000, 0xbe4b7799, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "pga-simm.01c", 0x200000, 0x452f98b0, CPS2_GFX_SIMM | BRF_GRA },
- { "pga-simm.01d", 0x200000, 0x9e672092, CPS2_GFX_SIMM | BRF_GRA },
- { "pga-simm.01a", 0x200000, 0xae9ddafe, CPS2_GFX_SIMM | BRF_GRA },
- { "pga-simm.01b", 0x200000, 0x94d72d94, CPS2_GFX_SIMM | BRF_GRA },
- { "pga-simm.03c", 0x200000, 0x48a1886d, CPS2_GFX_SIMM | BRF_GRA },
- { "pga-simm.03d", 0x200000, 0x172d7e37, CPS2_GFX_SIMM | BRF_GRA },
- { "pga-simm.03a", 0x200000, 0x9ee33d98, CPS2_GFX_SIMM | BRF_GRA },
- { "pga-simm.03b", 0x200000, 0x848dee32, CPS2_GFX_SIMM | BRF_GRA },
-
- { "pga.01", 0x020000, 0xbdbfa992, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "pga-simm.05a", 0x200000, 0xc0aac80c, CPS2_QSND_SIMM | BRF_SND },
- { "pga-simm.05b", 0x200000, 0x37a65d86, CPS2_QSND_SIMM | BRF_SND },
- { "pga-simm.06a", 0x200000, 0xd3f1e934, CPS2_QSND_SIMM | BRF_SND },
- { "pga-simm.06b", 0x200000, 0x8b39489a, CPS2_QSND_SIMM | BRF_SND },
-
- { "phoenix.key", 0x000014, 0x2cf772b0, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Progearjd)
-STD_ROM_FN(Progearjd)
-
-static struct BurnRomInfo RingdstdRomDesc[] = {
- { "smbed.03b", 0x080000, 0xf6fba4cd, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "smbed.04b", 0x080000, 0x193bc493, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "smbed.05b", 0x080000, 0x168cccbb, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "smbed.06b", 0x080000, 0x04673262, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "smb.07", 0x080000, 0xb9a11577, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "smb.08", 0x080000, 0xf931b76b, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "smb.13m", 0x200000, 0xd9b2d1de, CPS2_GFX | BRF_GRA },
- { "smb.15m", 0x200000, 0x9a766d92, CPS2_GFX | BRF_GRA },
- { "smb.17m", 0x200000, 0x51800f0f, CPS2_GFX | BRF_GRA },
- { "smb.19m", 0x200000, 0x35757e96, CPS2_GFX | BRF_GRA },
- { "smb.14m", 0x200000, 0xe5bfd0e7, CPS2_GFX | BRF_GRA },
- { "smb.16m", 0x200000, 0xc56c0866, CPS2_GFX | BRF_GRA },
- { "smb.18m", 0x200000, 0x4ded3910, CPS2_GFX | BRF_GRA },
- { "smb.20m", 0x200000, 0x26ea1ec5, CPS2_GFX | BRF_GRA },
- { "smb.21m", 0x080000, 0x0a08c5fc, CPS2_GFX | BRF_GRA },
- { "smb.23m", 0x080000, 0x0911b6c4, CPS2_GFX | BRF_GRA },
- { "smb.25m", 0x080000, 0x82d6c4ec, CPS2_GFX | BRF_GRA },
- { "smb.27m", 0x080000, 0x9b48678b, CPS2_GFX | BRF_GRA },
-
- { "smb.01", 0x020000, 0x0abc229a, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "smb.02", 0x020000, 0xd051679a, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "smb.11m", 0x200000, 0xc56935f9, CPS2_QSND | BRF_SND },
- { "smb.12m", 0x200000, 0x955b0782, CPS2_QSND | BRF_SND },
-
- { "phoenix.key", 0x000014, 0x2cf772b0, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Ringdstd)
-STD_ROM_FN(Ringdstd)
-
-static struct BurnRomInfo SfadRomDesc[] = {
- { "sfzed.03d", 0x080000, 0xa1a54827, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfz.04b", 0x080000, 0x8b73b0e5, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfz.05a", 0x080000, 0x0810544d, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfz.06", 0x080000, 0x806e8f38, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "sfz.14m", 0x200000, 0x90fefdb3, CPS2_GFX | BRF_GRA },
- { "sfz.16m", 0x200000, 0x5354c948, CPS2_GFX | BRF_GRA },
- { "sfz.18m", 0x200000, 0x41a1e790, CPS2_GFX | BRF_GRA },
- { "sfz.20m", 0x200000, 0xa549df98, CPS2_GFX | BRF_GRA },
-
- { "sfz.01", 0x020000, 0xffffec7d, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "sfz.02", 0x020000, 0x45f46a08, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "sfz.11m", 0x200000, 0xc4b093cd, CPS2_QSND | BRF_SND },
- { "sfz.12m", 0x200000, 0x8bdbc4b4, CPS2_QSND | BRF_SND },
-
- { "phoenix.key", 0x000014, 0x2cf772b0, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Sfad)
-STD_ROM_FN(Sfad)
-
-static struct BurnRomInfo SfaudRomDesc[] = {
- // is this a region hack of sfad, no original dump of 950727 USA exists currently
- { "sfzud.03a", 0x080000, 0x9f2ff577, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfz.04b", 0x080000, 0x8b73b0e5, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfz.05a", 0x080000, 0x0810544d, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfz.06", 0x080000, 0x806e8f38, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "sfz.14m", 0x200000, 0x90fefdb3, CPS2_GFX | BRF_GRA },
- { "sfz.16m", 0x200000, 0x5354c948, CPS2_GFX | BRF_GRA },
- { "sfz.18m", 0x200000, 0x41a1e790, CPS2_GFX | BRF_GRA },
- { "sfz.20m", 0x200000, 0xa549df98, CPS2_GFX | BRF_GRA },
-
- { "sfz.01", 0x020000, 0xffffec7d, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "sfz.02", 0x020000, 0x45f46a08, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "sfz.11m", 0x200000, 0xc4b093cd, CPS2_QSND | BRF_SND },
- { "sfz.12m", 0x200000, 0x8bdbc4b4, CPS2_QSND | BRF_SND },
-
- { "phoenix.key", 0x000014, 0x2cf772b0, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Sfaud)
-STD_ROM_FN(Sfaud)
-
-static struct BurnRomInfo Sfz2adRomDesc[] = {
- { "sz2ad.03a", 0x080000, 0x017f8fab, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz2ad.04a", 0x080000, 0xf50e5ea2, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz2.05a", 0x080000, 0x98e8e992, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz2.06", 0x080000, 0x5b1d49c0, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz2a.07a", 0x080000, 0x0aed2494, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz2.08", 0x080000, 0x0fe8585d, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "sz2.13m", 0x400000, 0x4d1f1f22, CPS2_GFX | BRF_GRA },
- { "sz2.15m", 0x400000, 0x19cea680, CPS2_GFX | BRF_GRA },
- { "sz2.17m", 0x400000, 0xe01b4588, CPS2_GFX | BRF_GRA },
- { "sz2.19m", 0x400000, 0x0feeda64, CPS2_GFX | BRF_GRA },
- { "sz2.14m", 0x100000, 0x0560c6aa, CPS2_GFX | BRF_GRA },
- { "sz2.16m", 0x100000, 0xae940f87, CPS2_GFX | BRF_GRA },
- { "sz2.18m", 0x100000, 0x4bc3c8bc, CPS2_GFX | BRF_GRA },
- { "sz2.20m", 0x100000, 0x39e674c0, CPS2_GFX | BRF_GRA },
-
- { "sz2.01a", 0x020000, 0x1bc323cf, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "sz2.02a", 0x020000, 0xba6a5013, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "sz2.11m", 0x200000, 0xaa47a601, CPS2_QSND | BRF_SND },
- { "sz2.12m", 0x200000, 0x2237bc53, CPS2_QSND | BRF_SND },
-
- { "phoenix.key", 0x000014, 0x2cf772b0, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Sfz2ad)
-STD_ROM_FN(Sfz2ad)
-
-static struct BurnRomInfo Sfz2jdRomDesc[] = {
- { "sz2j_d.03a", 0x080000, 0xb7325df8, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz2j_d.04a", 0x080000, 0xa1022a3e, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz2.05a", 0x080000, 0x98e8e992, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz2.06", 0x080000, 0x5b1d49c0, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz2j.07a", 0x080000, 0xd910b2a2, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz2.08", 0x080000, 0x0fe8585d, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "sz2.13m", 0x400000, 0x4d1f1f22, CPS2_GFX | BRF_GRA },
- { "sz2.15m", 0x400000, 0x19cea680, CPS2_GFX | BRF_GRA },
- { "sz2.17m", 0x400000, 0xe01b4588, CPS2_GFX | BRF_GRA },
- { "sz2.19m", 0x400000, 0x0feeda64, CPS2_GFX | BRF_GRA },
- { "sz2.14m", 0x100000, 0x0560c6aa, CPS2_GFX | BRF_GRA },
- { "sz2.16m", 0x100000, 0xae940f87, CPS2_GFX | BRF_GRA },
- { "sz2.18m", 0x100000, 0x4bc3c8bc, CPS2_GFX | BRF_GRA },
- { "sz2.20m", 0x100000, 0x39e674c0, CPS2_GFX | BRF_GRA },
-
- { "sz2.01a", 0x020000, 0x1bc323cf, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "sz2.02a", 0x020000, 0xba6a5013, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "sz2.11m", 0x200000, 0xaa47a601, CPS2_QSND | BRF_SND },
- { "sz2.12m", 0x200000, 0x2237bc53, CPS2_QSND | BRF_SND },
-
- { "phoenix.key", 0x000014, 0x2cf772b0, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Sfz2jd)
-STD_ROM_FN(Sfz2jd)
-
-static struct BurnRomInfo Sfz2aldRomDesc[] = {
- { "szaad.03", 0x080000, 0x89f9483b, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "szaad.04", 0x080000, 0xaef27ae5, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "szaa.05", 0x080000, 0xf053a55e, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "szaa.06", 0x080000, 0xcfc0e7a8, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "szaa.07", 0x080000, 0x5feb8b20, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "szaa.08", 0x080000, 0x6eb6d412, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "sz2.13m", 0x400000, 0x4d1f1f22, CPS2_GFX | BRF_GRA },
- { "sz2.15m", 0x400000, 0x19cea680, CPS2_GFX | BRF_GRA },
- { "sz2.17m", 0x400000, 0xe01b4588, CPS2_GFX | BRF_GRA },
- { "sz2.19m", 0x400000, 0x0feeda64, CPS2_GFX | BRF_GRA },
- { "sz2.14m", 0x100000, 0x0560c6aa, CPS2_GFX | BRF_GRA },
- { "sz2.16m", 0x100000, 0xae940f87, CPS2_GFX | BRF_GRA },
- { "sz2.18m", 0x100000, 0x4bc3c8bc, CPS2_GFX | BRF_GRA },
- { "sz2.20m", 0x100000, 0x39e674c0, CPS2_GFX | BRF_GRA },
-
- { "sz2.01a", 0x020000, 0x1bc323cf, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "sz2.02a", 0x020000, 0xba6a5013, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "sz2.11m", 0x200000, 0xaa47a601, CPS2_QSND | BRF_SND },
- { "sz2.12m", 0x200000, 0x2237bc53, CPS2_QSND | BRF_SND },
-
- { "phoenix.key", 0x000014, 0x2cf772b0, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Sfz2ald)
-STD_ROM_FN(Sfz2ald)
-
-static struct BurnRomInfo Sfa3udRomDesc[] = {
- { "sz3ud.03c", 0x080000, 0x6db8add7, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3ud.04c", 0x080000, 0xd9c65a26, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3.05c", 0x080000, 0x57fd0a40, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3.06c", 0x080000, 0xf6305f8b, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3.07c", 0x080000, 0x6eab0f6f, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3.08c", 0x080000, 0x910c4a3b, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3.09c", 0x080000, 0xb29e5199, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3.10b", 0x080000, 0xdeb2ff52, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "sz3.13m", 0x400000, 0x0f7a60d9, CPS2_GFX | BRF_GRA },
- { "sz3.15m", 0x400000, 0x8e933741, CPS2_GFX | BRF_GRA },
- { "sz3.17m", 0x400000, 0xd6e98147, CPS2_GFX | BRF_GRA },
- { "sz3.19m", 0x400000, 0xf31a728a, CPS2_GFX | BRF_GRA },
- { "sz3.14m", 0x400000, 0x5ff98297, CPS2_GFX | BRF_GRA },
- { "sz3.16m", 0x400000, 0x52b5bdee, CPS2_GFX | BRF_GRA },
- { "sz3.18m", 0x400000, 0x40631ed5, CPS2_GFX | BRF_GRA },
- { "sz3.20m", 0x400000, 0x763409b4, CPS2_GFX | BRF_GRA },
-
- { "sz3.01", 0x020000, 0xde810084, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "sz3.02", 0x020000, 0x72445dc4, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "sz3.11m", 0x400000, 0x1c89eed1, CPS2_QSND | BRF_SND },
- { "sz3.12m", 0x400000, 0xf392b13a, CPS2_QSND | BRF_SND },
-
- { "phoenix.key", 0x000014, 0x2cf772b0, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Sfa3ud)
-STD_ROM_FN(Sfa3ud)
-
-static struct BurnRomInfo Sfz3jr2dRomDesc[] = {
- { "sz3j_d.03", 0x080000, 0xb0436151, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3j_d.04", 0x080000, 0x642d8170, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3.05", 0x080000, 0x9b21518a, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3.06", 0x080000, 0xe7a6c3a7, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3.07", 0x080000, 0xec4c0cfd, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3.08", 0x080000, 0x5c7e7240, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3.09", 0x080000, 0xc5589553, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sz3.10", 0x080000, 0xa9717252, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "sz3.13m", 0x400000, 0x0f7a60d9, CPS2_GFX | BRF_GRA },
- { "sz3.15m", 0x400000, 0x8e933741, CPS2_GFX | BRF_GRA },
- { "sz3.17m", 0x400000, 0xd6e98147, CPS2_GFX | BRF_GRA },
- { "sz3.19m", 0x400000, 0xf31a728a, CPS2_GFX | BRF_GRA },
- { "sz3.14m", 0x400000, 0x5ff98297, CPS2_GFX | BRF_GRA },
- { "sz3.16m", 0x400000, 0x52b5bdee, CPS2_GFX | BRF_GRA },
- { "sz3.18m", 0x400000, 0x40631ed5, CPS2_GFX | BRF_GRA },
- { "sz3.20m", 0x400000, 0x763409b4, CPS2_GFX | BRF_GRA },
-
- { "sz3.01", 0x020000, 0xde810084, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "sz3.02", 0x020000, 0x72445dc4, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "sz3.11m", 0x400000, 0x1c89eed1, CPS2_QSND | BRF_SND },
- { "sz3.12m", 0x400000, 0xf392b13a, CPS2_QSND | BRF_SND },
-
- { "phoenix.key", 0x000014, 0x2cf772b0, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Sfz3jr2d)
-STD_ROM_FN(Sfz3jr2d)
-
-static struct BurnRomInfo SgemfdRomDesc[] = {
- { "pcfud.03", 0x080000, 0x8b83674a, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pcfd.04", 0x080000, 0xb58f1d03, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pcf.05", 0x080000, 0x215655f6, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pcf.06", 0x080000, 0xea6f13ea, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pcf.07", 0x080000, 0x5ac6d5ea, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "pcf.13m", 0x400000, 0x22d72ab9, CPS2_GFX | BRF_GRA },
- { "pcf.15m", 0x400000, 0x16a4813c, CPS2_GFX | BRF_GRA },
- { "pcf.17m", 0x400000, 0x1097e035, CPS2_GFX | BRF_GRA },
- { "pcf.19m", 0x400000, 0xd362d874, CPS2_GFX | BRF_GRA },
- { "pcf.14m", 0x100000, 0x0383897c, CPS2_GFX | BRF_GRA },
- { "pcf.16m", 0x100000, 0x76f91084, CPS2_GFX | BRF_GRA },
- { "pcf.18m", 0x100000, 0x756c3754, CPS2_GFX | BRF_GRA },
- { "pcf.20m", 0x100000, 0x9ec9277d, CPS2_GFX | BRF_GRA },
-
- { "pcf.01", 0x020000, 0x254e5f33, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "pcf.02", 0x020000, 0x6902f4f9, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "pcf.11m", 0x400000, 0xa5dea005, CPS2_QSND | BRF_SND },
- { "pcf.12m", 0x400000, 0x4ce235fe, CPS2_QSND | BRF_SND },
-
- { "phoenix.key", 0x000014, 0x2cf772b0, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Sgemfd)
-STD_ROM_FN(Sgemfd)
-
-static struct BurnRomInfo Spf2tdRomDesc[] = {
- { "pzfu_d.03a", 0x080000, 0x7836b903, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pzf.04", 0x080000, 0xb80649e2, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "pzf.14m", 0x100000, 0x2d4881cb, CPS2_GFX | BRF_GRA },
- { "pzf.16m", 0x100000, 0x4b0fd1be, CPS2_GFX | BRF_GRA },
- { "pzf.18m", 0x100000, 0xe43aac33, CPS2_GFX | BRF_GRA },
- { "pzf.20m", 0x100000, 0x7f536ff1, CPS2_GFX | BRF_GRA },
-
- { "pzf.01", 0x020000, 0x600fb2a3, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "pzf.02", 0x020000, 0x496076e0, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "pzf.11m", 0x200000, 0x78442743, CPS2_QSND | BRF_SND },
- { "pzf.12m", 0x200000, 0x399d2c7b, CPS2_QSND | BRF_SND },
-
- { "phoenix.key", 0x000014, 0x2cf772b0, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Spf2td)
-STD_ROM_FN(Spf2td)
-
-static struct BurnRomInfo Spf2xjdRomDesc[] = {
- { "pzfjd.03a", 0x080000, 0x5e85ed08, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "pzf.04", 0x080000, 0xb80649e2, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "pzf.14m", 0x100000, 0x2d4881cb, CPS2_GFX | BRF_GRA },
- { "pzf.16m", 0x100000, 0x4b0fd1be, CPS2_GFX | BRF_GRA },
- { "pzf.18m", 0x100000, 0xe43aac33, CPS2_GFX | BRF_GRA },
- { "pzf.20m", 0x100000, 0x7f536ff1, CPS2_GFX | BRF_GRA },
-
- { "pzf.01", 0x020000, 0x600fb2a3, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "pzf.02", 0x020000, 0x496076e0, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "pzf.11m", 0x200000, 0x78442743, CPS2_QSND | BRF_SND },
- { "pzf.12m", 0x200000, 0x399d2c7b, CPS2_QSND | BRF_SND },
-
- { "phoenix.key", 0x000014, 0x2cf772b0, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Spf2xjd)
-STD_ROM_FN(Spf2xjd)
-
-static struct BurnRomInfo Ssf2dRomDesc[] = {
- // region hack of ssf2ud?
- { "ssfed.03", 0x080000, 0xfad5daf8, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "ssfed.04", 0x080000, 0x0d31af65, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "ssfed.05", 0x080000, 0x75c651ef, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "ssfed.06", 0x080000, 0x85c3ec00, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "ssfed.07", 0x080000, 0x9320e350, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "ssf.13m", 0x200000, 0xcf94d275, CPS2_GFX | BRF_GRA },
- { "ssf.15m", 0x200000, 0x5eb703af, CPS2_GFX | BRF_GRA },
- { "ssf.17m", 0x200000, 0xffa60e0f, CPS2_GFX | BRF_GRA },
- { "ssf.19m", 0x200000, 0x34e825c5, CPS2_GFX | BRF_GRA },
- { "ssf.14m", 0x100000, 0xb7cc32e7, CPS2_GFX | BRF_GRA },
- { "ssf.16m", 0x100000, 0x8376ad18, CPS2_GFX | BRF_GRA },
- { "ssf.18m", 0x100000, 0xf5b1b336, CPS2_GFX | BRF_GRA },
- { "ssf.20m", 0x100000, 0x459d5c6b, CPS2_GFX | BRF_GRA },
-
- { "ssf.01", 0x020000, 0xeb247e8c, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "ssf.q01", 0x080000, 0xa6f9da5c, CPS2_QSND | BRF_SND },
- { "ssf.q02", 0x080000, 0x8c66ae26, CPS2_QSND | BRF_SND },
- { "ssf.q03", 0x080000, 0x695cc2ca, CPS2_QSND | BRF_SND },
- { "ssf.q04", 0x080000, 0x9d9ebe32, CPS2_QSND | BRF_SND },
- { "ssf.q05", 0x080000, 0x4770e7b7, CPS2_QSND | BRF_SND },
- { "ssf.q06", 0x080000, 0x4e79c951, CPS2_QSND | BRF_SND },
- { "ssf.q07", 0x080000, 0xcdd14313, CPS2_QSND | BRF_SND },
- { "ssf.q08", 0x080000, 0x6f5a088c, CPS2_QSND | BRF_SND },
-
- { "phoenix.key", 0x000014, 0x2cf772b0, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Ssf2d)
-STD_ROM_FN(Ssf2d)
-
-static struct BurnRomInfo Ssf2udRomDesc[] = {
- { "ssfud.03a", 0x080000, 0xfad5daf8, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "ssfud.04a", 0x080000, 0x0d31af65, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "ssfud.05", 0x080000, 0x75c651ef, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "ssfud.06", 0x080000, 0x85c3ec00, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "ssfud.07", 0x080000, 0x247e2504, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "ssf.13m", 0x200000, 0xcf94d275, CPS2_GFX | BRF_GRA },
- { "ssf.15m", 0x200000, 0x5eb703af, CPS2_GFX | BRF_GRA },
- { "ssf.17m", 0x200000, 0xffa60e0f, CPS2_GFX | BRF_GRA },
- { "ssf.19m", 0x200000, 0x34e825c5, CPS2_GFX | BRF_GRA },
- { "ssf.14m", 0x100000, 0xb7cc32e7, CPS2_GFX | BRF_GRA },
- { "ssf.16m", 0x100000, 0x8376ad18, CPS2_GFX | BRF_GRA },
- { "ssf.18m", 0x100000, 0xf5b1b336, CPS2_GFX | BRF_GRA },
- { "ssf.20m", 0x100000, 0x459d5c6b, CPS2_GFX | BRF_GRA },
-
- { "ssf.01", 0x020000, 0xeb247e8c, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "ssf.q01", 0x080000, 0xa6f9da5c, CPS2_QSND | BRF_SND },
- { "ssf.q02", 0x080000, 0x8c66ae26, CPS2_QSND | BRF_SND },
- { "ssf.q03", 0x080000, 0x695cc2ca, CPS2_QSND | BRF_SND },
- { "ssf.q04", 0x080000, 0x9d9ebe32, CPS2_QSND | BRF_SND },
- { "ssf.q05", 0x080000, 0x4770e7b7, CPS2_QSND | BRF_SND },
- { "ssf.q06", 0x080000, 0x4e79c951, CPS2_QSND | BRF_SND },
- { "ssf.q07", 0x080000, 0xcdd14313, CPS2_QSND | BRF_SND },
- { "ssf.q08", 0x080000, 0x6f5a088c, CPS2_QSND | BRF_SND },
-
- { "phoenix.key", 0x000014, 0x2cf772b0, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Ssf2ud)
-STD_ROM_FN(Ssf2ud)
-
-static struct BurnRomInfo Ssf2tbdRomDesc[] = {
- { "ssfed.3tc", 0x080000, 0x5d86caf8, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "ssfed.4tc", 0x080000, 0xf6e1f98d, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "ssfed.5t", 0x080000, 0x75c651ef, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "ssfed.6tb", 0x080000, 0x9adac7d7, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "ssfed.7t", 0x080000, 0x84f54db3, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "ssf.13m", 0x200000, 0xcf94d275, CPS2_GFX | BRF_GRA },
- { "ssf.15m", 0x200000, 0x5eb703af, CPS2_GFX | BRF_GRA },
- { "ssf.17m", 0x200000, 0xffa60e0f, CPS2_GFX | BRF_GRA },
- { "ssf.19m", 0x200000, 0x34e825c5, CPS2_GFX | BRF_GRA },
- { "ssf.14m", 0x100000, 0xb7cc32e7, CPS2_GFX | BRF_GRA },
- { "ssf.16m", 0x100000, 0x8376ad18, CPS2_GFX | BRF_GRA },
- { "ssf.18m", 0x100000, 0xf5b1b336, CPS2_GFX | BRF_GRA },
- { "ssf.20m", 0x100000, 0x459d5c6b, CPS2_GFX | BRF_GRA },
-
- { "ssf.01", 0x020000, 0xeb247e8c, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "ssf.q01", 0x080000, 0xa6f9da5c, CPS2_QSND | BRF_SND },
- { "ssf.q02", 0x080000, 0x8c66ae26, CPS2_QSND | BRF_SND },
- { "ssf.q03", 0x080000, 0x695cc2ca, CPS2_QSND | BRF_SND },
- { "ssf.q04", 0x080000, 0x9d9ebe32, CPS2_QSND | BRF_SND },
- { "ssf.q05", 0x080000, 0x4770e7b7, CPS2_QSND | BRF_SND },
- { "ssf.q06", 0x080000, 0x4e79c951, CPS2_QSND | BRF_SND },
- { "ssf.q07", 0x080000, 0xcdd14313, CPS2_QSND | BRF_SND },
- { "ssf.q08", 0x080000, 0x6f5a088c, CPS2_QSND | BRF_SND },
-
- { "phoenix.key", 0x000014, 0x2cf772b0, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Ssf2tbd)
-STD_ROM_FN(Ssf2tbd)
-
-static struct BurnRomInfo Ssf2tdRomDesc[] = {
- { "sfxed.03c", 0x080000, 0xed99d850, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfxed.04a", 0x080000, 0x38d9b364, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfxed.05", 0x080000, 0xc63358d0, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfxed.06a", 0x080000, 0xccb29808, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfxed.07", 0x080000, 0x61f94982, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfxed.08", 0x080000, 0xd399c36c, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfxed.09", 0x080000, 0x317b5dbc, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "sfx.13m", 0x200000, 0xcf94d275, CPS2_GFX | BRF_GRA },
- { "sfx.15m", 0x200000, 0x5eb703af, CPS2_GFX | BRF_GRA },
- { "sfx.17m", 0x200000, 0xffa60e0f, CPS2_GFX | BRF_GRA },
- { "sfx.19m", 0x200000, 0x34e825c5, CPS2_GFX | BRF_GRA },
- { "sfx.14m", 0x100000, 0xb7cc32e7, CPS2_GFX | BRF_GRA },
- { "sfx.16m", 0x100000, 0x8376ad18, CPS2_GFX | BRF_GRA },
- { "sfx.18m", 0x100000, 0xf5b1b336, CPS2_GFX | BRF_GRA },
- { "sfx.20m", 0x100000, 0x459d5c6b, CPS2_GFX | BRF_GRA },
- { "sfx.21m", 0x100000, 0xe32854af, CPS2_GFX | BRF_GRA },
- { "sfx.23m", 0x100000, 0x760f2927, CPS2_GFX | BRF_GRA },
- { "sfx.25m", 0x100000, 0x1ee90208, CPS2_GFX | BRF_GRA },
- { "sfx.27m", 0x100000, 0xf814400f, CPS2_GFX | BRF_GRA },
-
- { "sfx.01", 0x020000, 0xb47b8835, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "sfx.02", 0x020000, 0x0022633f, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "sfx.11m", 0x200000, 0x9bdbd476, CPS2_QSND | BRF_SND },
- { "sfx.12m", 0x200000, 0xa05e3aab, CPS2_QSND | BRF_SND },
-
- { "phoenix.key", 0x000014, 0x2cf772b0, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Ssf2td)
-STD_ROM_FN(Ssf2td)
-
-static struct BurnRomInfo Ssf2tadRomDesc[] = {
- { "sfxad.03c", 0x080000, 0xe3c92ece, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfxad.04a", 0x080000, 0x9bf3bb2e, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfxad.05", 0x080000, 0xc63358d0, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfxad.06a", 0x080000, 0xccb29808, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfxad.07", 0x080000, 0x61f94982, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfxad.08", 0x080000, 0xd399c36c, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfxad.09", 0x080000, 0x436784ae, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "sfx.13m", 0x200000, 0xcf94d275, CPS2_GFX | BRF_GRA },
- { "sfx.15m", 0x200000, 0x5eb703af, CPS2_GFX | BRF_GRA },
- { "sfx.17m", 0x200000, 0xffa60e0f, CPS2_GFX | BRF_GRA },
- { "sfx.19m", 0x200000, 0x34e825c5, CPS2_GFX | BRF_GRA },
- { "sfx.14m", 0x100000, 0xb7cc32e7, CPS2_GFX | BRF_GRA },
- { "sfx.16m", 0x100000, 0x8376ad18, CPS2_GFX | BRF_GRA },
- { "sfx.18m", 0x100000, 0xf5b1b336, CPS2_GFX | BRF_GRA },
- { "sfx.20m", 0x100000, 0x459d5c6b, CPS2_GFX | BRF_GRA },
- { "sfx.21m", 0x100000, 0xe32854af, CPS2_GFX | BRF_GRA },
- { "sfx.23m", 0x100000, 0x760f2927, CPS2_GFX | BRF_GRA },
- { "sfx.25m", 0x100000, 0x1ee90208, CPS2_GFX | BRF_GRA },
- { "sfx.27m", 0x100000, 0xf814400f, CPS2_GFX | BRF_GRA },
-
- { "sfx.01", 0x020000, 0xb47b8835, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "sfx.02", 0x020000, 0x0022633f, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "sfx.11m", 0x200000, 0x9bdbd476, CPS2_QSND | BRF_SND },
- { "sfx.12m", 0x200000, 0xa05e3aab, CPS2_QSND | BRF_SND },
-
- { "phoenix.key", 0x000014, 0x2cf772b0, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Ssf2tad)
-STD_ROM_FN(Ssf2tad)
-
-static struct BurnRomInfo Ssf2xjr1dRomDesc[] = {
- { "sfxjd.03c", 0x080000, 0x316de996, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfxjd.04a", 0x080000, 0x9bf3bb2e, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfxjd.05", 0x080000, 0xc63358d0, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfxjd.06a", 0x080000, 0xccb29808, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfxjd.07", 0x080000, 0x61f94982, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfxjd.08", 0x080000, 0xd399c36c, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "sfxd.09", 0x080000, 0x0b3a6196, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "sfx.13m", 0x200000, 0xcf94d275, CPS2_GFX | BRF_GRA },
- { "sfx.15m", 0x200000, 0x5eb703af, CPS2_GFX | BRF_GRA },
- { "sfx.17m", 0x200000, 0xffa60e0f, CPS2_GFX | BRF_GRA },
- { "sfx.19m", 0x200000, 0x34e825c5, CPS2_GFX | BRF_GRA },
- { "sfx.14m", 0x100000, 0xb7cc32e7, CPS2_GFX | BRF_GRA },
- { "sfx.16m", 0x100000, 0x8376ad18, CPS2_GFX | BRF_GRA },
- { "sfx.18m", 0x100000, 0xf5b1b336, CPS2_GFX | BRF_GRA },
- { "sfx.20m", 0x100000, 0x459d5c6b, CPS2_GFX | BRF_GRA },
- { "sfx.21m", 0x100000, 0xe32854af, CPS2_GFX | BRF_GRA },
- { "sfx.23m", 0x100000, 0x760f2927, CPS2_GFX | BRF_GRA },
- { "sfx.25m", 0x100000, 0x1ee90208, CPS2_GFX | BRF_GRA },
- { "sfx.27m", 0x100000, 0xf814400f, CPS2_GFX | BRF_GRA },
-
- { "sfx.01", 0x020000, 0xb47b8835, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "sfx.02", 0x020000, 0x0022633f, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "sfx.11m", 0x200000, 0x9bdbd476, CPS2_QSND | BRF_SND },
- { "sfx.12m", 0x200000, 0xa05e3aab, CPS2_QSND | BRF_SND },
-
- { "phoenix.key", 0x000014, 0x2cf772b0, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Ssf2xjr1d)
-STD_ROM_FN(Ssf2xjr1d)
-
-static struct BurnRomInfo VsavdRomDesc[] = {
- { "vm3ed.03d", 0x080000, 0x97d805e3, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vm3ed.04d", 0x080000, 0x5e07fdce, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vm3.05a", 0x080000, 0x4118e00f, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vm3.06a", 0x080000, 0x2f4fd3a9, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vm3.07b", 0x080000, 0xcbda91b8, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vm3.08a", 0x080000, 0x6ca47259, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vm3.09b", 0x080000, 0xf4a339e3, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vm3.10b", 0x080000, 0xfffbb5b8, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "vm3.13m", 0x400000, 0xfd8a11eb, CPS2_GFX | BRF_GRA },
- { "vm3.15m", 0x400000, 0xdd1e7d4e, CPS2_GFX | BRF_GRA },
- { "vm3.17m", 0x400000, 0x6b89445e, CPS2_GFX | BRF_GRA },
- { "vm3.19m", 0x400000, 0x3830fdc7, CPS2_GFX | BRF_GRA },
- { "vm3.14m", 0x400000, 0xc1a28e6c, CPS2_GFX | BRF_GRA },
- { "vm3.16m", 0x400000, 0x194a7304, CPS2_GFX | BRF_GRA },
- { "vm3.18m", 0x400000, 0xdf9a9f47, CPS2_GFX | BRF_GRA },
- { "vm3.20m", 0x400000, 0xc22fc3d9, CPS2_GFX | BRF_GRA },
-
- { "vm3.01", 0x020000, 0xf778769b, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "vm3.02", 0x020000, 0xcc09faa1, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "vm3.11m", 0x400000, 0xe80e956e, CPS2_QSND | BRF_SND },
- { "vm3.12m", 0x400000, 0x9cd71557, CPS2_QSND | BRF_SND },
-
- { "phoenix.key", 0x000014, 0x2cf772b0, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Vsavd)
-STD_ROM_FN(Vsavd)
-
-static struct BurnRomInfo Vhunt2dRomDesc[] = {
-// { "vh2j_d.06", 0x080000, 0xf320ea30, CPS2_PRG_68K | BRF_ESS | BRF_PRG }, // apparently a bad dump of vh2j.06, originally loaded instead of vh2j.07 which wasn't encrypted, and clearly not correct
-
- { "vh2j_d.03a", 0x080000, 0x696e0157, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vh2j_d.04a", 0x080000, 0xced9bba3, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vh2j.05", 0x080000, 0xde34f624, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vh2j.06", 0x080000, 0x6a3b9897, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vh2j.07", 0x080000, 0xb021c029, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vh2j.08", 0x080000, 0xac873dff, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vh2j.09", 0x080000, 0xeaefce9c, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vh2j.10", 0x080000, 0x11730952, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "vh2.13m", 0x400000, 0x3b02ddaa, CPS2_GFX | BRF_GRA },
- { "vh2.15m", 0x400000, 0x4e40de66, CPS2_GFX | BRF_GRA },
- { "vh2.17m", 0x400000, 0xb31d00c9, CPS2_GFX | BRF_GRA },
- { "vh2.19m", 0x400000, 0x149be3ab, CPS2_GFX | BRF_GRA },
- { "vh2.14m", 0x400000, 0xcd09bd63, CPS2_GFX | BRF_GRA },
- { "vh2.16m", 0x400000, 0xe0182c15, CPS2_GFX | BRF_GRA },
- { "vh2.18m", 0x400000, 0x778dc4f6, CPS2_GFX | BRF_GRA },
- { "vh2.20m", 0x400000, 0x605d9d1d, CPS2_GFX | BRF_GRA },
-
- { "vh2.01", 0x020000, 0x67b9f779, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "vh2.02", 0x020000, 0xaaf15fcb, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "vh2.11m", 0x400000, 0x38922efd, CPS2_QSND | BRF_SND },
- { "vh2.12m", 0x400000, 0x6e2430af, CPS2_QSND | BRF_SND },
-
- { "phoenix.key", 0x000014, 0x2cf772b0, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Vhunt2d)
-STD_ROM_FN(Vhunt2d)
-
-static struct BurnRomInfo Vsav2dRomDesc[] = {
-// { "vs2j_d.03", 0x080000, 0x5ee19aee, CPS2_PRG_68K | BRF_ESS | BRF_PRG }, // bad dump?
-// { "vs2j_d.04", 0x080000, 0x80116c47, CPS2_PRG_68K | BRF_ESS | BRF_PRG }, // bad dump?
-// { "vs2j_d.05", 0x080000, 0xdc74a062, CPS2_PRG_68K | BRF_ESS | BRF_PRG }, // apparently a bad dump of vs2j.04, originally loaded instead of vs2j.05 which wasn't encrypted, and clearly not correct
-// { "vs2j_d.08", 0x080000, 0x97554918, CPS2_PRG_68K | BRF_ESS | BRF_PRG }, // apparently a bad dump of vs2j.08, originally loaded instead of vs2j.08 which wasn't encrypted, and clearly not correct
-
- { "vs2j_d.03", 0x080000, 0x50865f7b, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vs2j_d.04", 0x080000, 0xc3bff0e3, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vs2j.05", 0x080000, 0x61979638, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vs2j.06", 0x080000, 0xf37c5bc2, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vs2j.07", 0x080000, 0x8f885809, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vs2j.08", 0x080000, 0x2018c120, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vs2j.09", 0x080000, 0xfac3c217, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "vs2j.10", 0x080000, 0xeb490213, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "vs2.13m", 0x400000, 0x5c852f52, CPS2_GFX | BRF_GRA },
- { "vs2.15m", 0x400000, 0xa20f58af, CPS2_GFX | BRF_GRA },
- { "vs2.17m", 0x400000, 0x39db59ad, CPS2_GFX | BRF_GRA },
- { "vs2.19m", 0x400000, 0x00c763a7, CPS2_GFX | BRF_GRA },
- { "vs2.14m", 0x400000, 0xcd09bd63, CPS2_GFX | BRF_GRA },
- { "vs2.16m", 0x400000, 0xe0182c15, CPS2_GFX | BRF_GRA },
- { "vs2.18m", 0x400000, 0x778dc4f6, CPS2_GFX | BRF_GRA },
- { "vs2.20m", 0x400000, 0x605d9d1d, CPS2_GFX | BRF_GRA },
-
- { "vs2.01", 0x020000, 0x35190139, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "vs2.02", 0x020000, 0xc32dba09, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "vs2.11m", 0x400000, 0xd67e47b7, CPS2_QSND | BRF_SND },
- { "vs2.12m", 0x400000, 0x6d020a14, CPS2_QSND | BRF_SND },
-
- { "phoenix.key", 0x000014, 0x2cf772b0, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Vsav2d)
-STD_ROM_FN(Vsav2d)
-
-static struct BurnRomInfo Xmcotar1dRomDesc[] = {
- { "xmned.03e", 0x080000, 0xbef56003, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xmned.04e", 0x080000, 0xb1a21fa6, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xmn.05a", 0x080000, 0xac0d7759, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xmn.06a", 0x080000, 0x1b86a328, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xmn.07a", 0x080000, 0x2c142a44, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xmn.08a", 0x080000, 0xf712d44f, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xmn.09a", 0x080000, 0x9241cae8, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xmn.10a", 0x080000, 0x53c0eab9, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "xmn.13m", 0x400000, 0xbf4df073, CPS2_GFX | BRF_GRA },
- { "xmn.15m", 0x400000, 0x4d7e4cef, CPS2_GFX | BRF_GRA },
- { "xmn.17m", 0x400000, 0x513eea17, CPS2_GFX | BRF_GRA },
- { "xmn.19m", 0x400000, 0xd23897fc, CPS2_GFX | BRF_GRA },
- { "xmn.14m", 0x400000, 0x778237b7, CPS2_GFX | BRF_GRA },
- { "xmn.16m", 0x400000, 0x67b36948, CPS2_GFX | BRF_GRA },
- { "xmn.18m", 0x400000, 0x015a7c4c, CPS2_GFX | BRF_GRA },
- { "xmn.20m", 0x400000, 0x9dde2758, CPS2_GFX | BRF_GRA },
-
- { "xmn.01a", 0x020000, 0x40f479ea, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "xmn.02a", 0x020000, 0x39d9b5ad, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "xmn.11m", 0x200000, 0xc848a6bc, CPS2_QSND | BRF_SND },
- { "xmn.12m", 0x200000, 0x729c188f, CPS2_QSND | BRF_SND },
-
- { "phoenix.key", 0x000014, 0x2cf772b0, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Xmcotar1d)
-STD_ROM_FN(Xmcotar1d)
-
-static struct BurnRomInfo Xmvsfu1dRomDesc[] = {
-// { "xvsd.05a", 0x080000, 0xde347b11, CPS2_PRG_68K | BRF_ESS | BRF_PRG }, // bad dump?, originally loaded in place of xvs.05a
-// { "xvsd.07", 0x080000, 0xf761ded7, CPS2_PRG_68K | BRF_ESS | BRF_PRG }, // bad dump?, originally loaded in place of xvs.07a
-
- { "xvsud.03h", 0x080000, 0x4e2e76b7, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xvsud.04h", 0x080000, 0x290c61a7, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xvs.05a", 0x080000, 0x7db6025d, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xvs.06a", 0x080000, 0xe8e2c75c, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xvs.07", 0x080000, 0x08f0abed, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xvs.08", 0x080000, 0x81929675, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "xvs.09", 0x080000, 0x9641f36b, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "xvs.13m", 0x400000, 0xf6684efd, CPS2_GFX | BRF_GRA },
- { "xvs.15m", 0x400000, 0x29109221, CPS2_GFX | BRF_GRA },
- { "xvs.17m", 0x400000, 0x92db3474, CPS2_GFX | BRF_GRA },
- { "xvs.19m", 0x400000, 0x3733473c, CPS2_GFX | BRF_GRA },
- { "xvs.14m", 0x400000, 0xbcac2e41, CPS2_GFX | BRF_GRA },
- { "xvs.16m", 0x400000, 0xea04a272, CPS2_GFX | BRF_GRA },
- { "xvs.18m", 0x400000, 0xb0def86a, CPS2_GFX | BRF_GRA },
- { "xvs.20m", 0x400000, 0x4b40ff9f, CPS2_GFX | BRF_GRA },
-
- { "xvs.01", 0x020000, 0x3999e93a, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
- { "xvs.02", 0x020000, 0x101bdee9, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "xvs.11m", 0x200000, 0x9cadcdbc, CPS2_QSND | BRF_SND },
- { "xvs.12m", 0x200000, 0x7b11e460, CPS2_QSND | BRF_SND },
-
- { "phoenix.key", 0x000014, 0x2cf772b0, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Xmvsfu1d)
-STD_ROM_FN(Xmvsfu1d)
-
-void __fastcall PhoenixOutputWriteByte(UINT32 a, UINT8 d)
-{
- if (a >= 0xfffff0 && a <= 0xfffffb) {
- CpsFrg[a & 0x0f] = d;
- // should this value also feed through to RAM (CpsRamFF) or should I return here?
- }
-
- CpsRamFF[(a - 0xff0000) ^ 1] = d;
-}
-
-void __fastcall PhoenixOutputWriteWord(UINT32 a, UINT16 d)
-{
- SEK_DEF_WRITE_WORD(3, a, d);
-}
-
-void __fastcall PhoenixSpriteWriteByte(UINT32 a, UINT8 d)
-{
- // Not seen anything write here but just in case...
- INT32 Offset = a - 0x700000;
-
- CpsRam708[(Offset ^ 1) + 0x0000] = d;
- CpsRam708[(Offset ^ 1) + 0x8000] = d;
-
- bprintf(PRINT_NORMAL, _T("Phoenix Sprite Write Byte %x, %x\n"), a, d);
-}
-
-void __fastcall PhoenixSpriteWriteWord(UINT32 a, UINT16 d)
-{
- UINT16 *Ram = (UINT16*)CpsRam708;
- INT32 Offset = (a - 0x700000) >> 1;
-
- Ram[Offset + 0x0000] = d;
- Ram[Offset + 0x4000] = d;
-}
-
-static INT32 PhoenixInit()
-{
- INT32 nRet = Cps2Init();
-
- nCpsNumScanlines = 262; // phoenix sets seem to be sensitive to timing??
-
- SekOpen(0);
- SekMapHandler(3, 0xff0000, 0xffffff, MAP_WRITE);
- SekSetWriteByteHandler(3, PhoenixOutputWriteByte);
- SekSetWriteWordHandler(3, PhoenixOutputWriteWord);
- SekMapHandler(4, 0x700000, 0x701fff, MAP_WRITE);
- SekSetWriteByteHandler(4, PhoenixSpriteWriteByte);
- SekSetWriteWordHandler(4, PhoenixSpriteWriteWord);
- SekClose();
-
- return nRet;
-}
-
-static INT32 MmatrixPhoenixInit()
-{
- Mmatrix = 1;
-
- return PhoenixInit();
-}
-
-static INT32 Ssf2PhoenixInit()
-{
- INT32 nRet = PhoenixInit();
-
- nCpsGfxScroll[3] = 0;
-
- return nRet;
-}
-
-static int Ssf2tbPhoenixInit()
-{
- Ssf2tb = 1;
-
- return Ssf2PhoenixInit();
-}
-
-static INT32 Ssf2tPhoenixInit()
-{
- INT32 nRet;
-
- Ssf2t = 1;
-
- nRet = PhoenixInit();
-
- nCpsGfxScroll[3] = 0;
-
- return nRet;
-}
-
-struct BurnDriver BurnDrvCps19xxd = {
- "19xxd", "19xx", NULL, NULL, "1995",
- "19XX - the war against destiny (951207 USA Phoenix Edition)\0", NULL, "bootleg", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG | BDF_ORIENTATION_VERTICAL, 2, HARDWARE_CAPCOM_CPS2, GBF_VERSHOOT, FBF_19XX,
- NULL, NinexxdRomInfo, NinexxdRomName, NULL, NULL, NineXXInputInfo, NULL,
- PhoenixInit, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 224, 384, 3, 4
-};
-
-struct BurnDriver BurnDrvCps1944d = {
- "1944d", "1944", NULL, NULL, "2000",
- "1944 - the loop master (000620 USA Phoenix Edition)\0", NULL, "bootleg", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS2, GBF_VERSHOOT, FBF_19XX,
- NULL, Nine44dRomInfo, Nine44dRomName, NULL, NULL, Nine44InputInfo, NULL,
- PhoenixInit, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCps1944ad = {
- "1944ad", "1944", NULL, NULL, "2000",
- "1944 - the loop master (000620 USA Phoenix Edition, alt)\0", NULL, "bootleg", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS2, GBF_VERSHOOT, FBF_19XX,
- NULL, Nine44adRomInfo, Nine44adRomName, NULL, NULL, Nine44InputInfo, NULL,
- PhoenixInit, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsArmwar1d = {
- "armwar1d", "armwar", NULL, NULL, "1994",
- "Armored Warriors (941011 Europe Phoenix Edition)\0", NULL, "bootleg", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 3, HARDWARE_CAPCOM_CPS2, GBF_SCRFIGHT, 0,
- NULL, Armwar1dRomInfo, Armwar1dRomName, NULL, NULL, ArmwarInputInfo, NULL,
- PhoenixInit, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsAvspd = {
- "avspd", "avsp", NULL, NULL, "1994",
- "Alien vs Predator (940520 Euro Phoenix Edition)\0", NULL, "bootleg", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG ,3,HARDWARE_CAPCOM_CPS2, GBF_SCRFIGHT, 0,
- NULL, AvspdRomInfo, AvspdRomName, NULL, NULL, AvspInputInfo, NULL,
- PhoenixInit, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsBatcird = {
- "batcird", "batcir", NULL, NULL, "1997",
- "Battle Circuit (970319 Euro Phoenix Edition)\0", NULL, "bootleg", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 4, HARDWARE_CAPCOM_CPS2, GBF_SCRFIGHT, 0,
- NULL, BatcirdRomInfo, BatcirdRomName, NULL, NULL, BatcirInputInfo, NULL,
- PhoenixInit, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsCsclub1d = {
- "csclub1d", "csclub", NULL, NULL, "1997",
- "Capcom Sports Club (970722 Euro Phoenix Edition)\0", NULL, "bootleg", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS2, GBF_SPORTSMISC, 0,
- NULL, Csclub1dRomInfo, Csclub1dRomName, NULL, NULL, CsclubInputInfo, NULL,
- PhoenixInit, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsCybotsud = {
- "cybotsud", "cybots", NULL, NULL, "1995",
- "Cyberbots - fullmetal madness (950424 USA Phoenix Edition)\0", NULL, "bootleg", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, 0,
- NULL, CybotsudRomInfo, CybotsudRomName, NULL, NULL, CybotsInputInfo, NULL,
- PhoenixInit, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsCybotsjd = {
- "cybotsjd", "cybots", NULL, NULL, "1995",
- "Cyberbots - fullmetal madness (Japan 950424) (decrypted bootleg)\0", NULL, "bootleg", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, 0,
- NULL, CybotsjdRomInfo, CybotsjdRomName, NULL, NULL, CybotsInputInfo, NULL,
- PhoenixInit, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsDdsomud = {
- "ddsomud", "ddsom", NULL, NULL, "1996",
- "Dungeons & Dragons - shadow over mystara (960619 USA Phoenix Edition)\0", NULL, "bootleg", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 4, HARDWARE_CAPCOM_CPS2, GBF_SCRFIGHT, 0,
- NULL, DdsomudRomInfo, DdsomudRomName, NULL, NULL, DdsomInputInfo, NULL,
- PhoenixInit, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsDdtodd = {
- "ddtodd", "ddtod", NULL, NULL, "1994",
- "Dungeons & Dragons - tower of doom (940412 Euro Phoenix Edition)\0", NULL, "bootleg", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 4, HARDWARE_CAPCOM_CPS2, GBF_SCRFIGHT, 0,
- NULL, DdtoddRomInfo, DdtoddRomName, NULL, NULL, DdtodInputInfo, NULL,
- PhoenixInit, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsDimahoud = {
- "dimahoud", "dimahoo", NULL, NULL, "2000",
- "Dimahoo (000121 USA Phoenix Edition)\0", NULL, "bootleg", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS2, GBF_VERSHOOT, 0,
- NULL, DimahoudRomInfo, DimahoudRomName, NULL, NULL, DimahooInputInfo, NULL,
- PhoenixInit, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 224, 384, 3, 4
-};
-
-struct BurnDriver BurnDrvCpsDstlku1d = {
- "dstlku1d", "dstlk", NULL, NULL, "1994",
- "Darkstalkers - the night warriors (940705 USA Phoenix Edition)\0", NULL, "bootleg", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_DSTLK,
- NULL, Dstlku1dRomInfo, Dstlku1dRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- PhoenixInit, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsEcofghtrd = {
- "ecofghtrd", "ecofghtr", NULL, NULL, "1993",
- "Eco Fighters (931203 World Phoenix Edition)\0", NULL, "bootleg", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS2, GBF_HORSHOOT, 0,
- NULL, EcofghtrdRomInfo, EcofghtrdRomName, NULL, NULL, EcofghtrInputInfo, NULL,
- PhoenixInit, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsGigawingd = {
- "gigawingd", "gigawing", NULL, NULL, "1999",
- "Giga Wing (990222 USA Phoenix Edition)\0", NULL, "bootleg", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS2, GBF_VERSHOOT, 0,
- NULL, GigawingdRomInfo, GigawingdRomName, NULL, NULL, GigawingInputInfo, NULL,
- PhoenixInit, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsGigawingjd = {
- "gigawingjd", "gigawing", NULL, NULL, "1999",
- "Giga Wing (990223 Japan Phoenix Edition)\0", NULL, "bootleg", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS2, GBF_VERSHOOT, 0,
- NULL, GigawingjdRomInfo, GigawingjdRomName, NULL, NULL, GigawingInputInfo, NULL,
- PhoenixInit, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsHsf2d = {
- "hsf2d", "hsf2", NULL, NULL, "2004",
- "Hyper Street Fighter II: The Anniversary Edition (040202 Asia Phoenix Edition)\0", NULL, "bootleg", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, Hsf2dRomInfo, Hsf2dRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Ssf2tPhoenixInit, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsHsf2da = {
- "hsf2da", "hsf2", NULL, NULL, "2004",
- "Hyper Street Fighter II: The Anniversary Edition (040202 Asia Phoenix Edition, alt)\0", NULL, "bootleg", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, Hsf2daRomInfo, Hsf2daRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Ssf2tPhoenixInit, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsMegamn2d = {
- "megamn2d", "megaman2", NULL, NULL, "1996",
- "Mega Man 2 - the power fighters (960708 USA Phoenix Edition)\0", NULL, "bootleg", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, 0,
- NULL, Megamn2dRomInfo, Megamn2dRomName, NULL, NULL, Megaman2InputInfo, NULL,
- PhoenixInit, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000 ,384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsMarsMatrixd = {
- "mmatrixd", "mmatrix", NULL, NULL, "2000",
- "Mars Matrix (000412 USA Phoenix Edition)\0", NULL, "bootleg", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS2, GBF_VERSHOOT, 0,
- NULL, MmatrixdRomInfo, MmatrixdRomName, NULL, NULL, MmatrixInputInfo, NULL,
- MmatrixPhoenixInit, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsMPangjd = {
- "mpangjd", "mpang", NULL, NULL, "2000",
- "Mighty! Pang (001011 Japan Phoenix Edition)\0", NULL, "bootleg", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS2 | HARDWARE_CAPCOM_CPS2_SIMM, GBF_PUZZLE, 0,
- NULL, MpangjdRomInfo, MpangjdRomName, NULL, NULL, MpangInputInfo, NULL,
- PhoenixInit, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsMshud = {
- "mshud", "msh", NULL, NULL, "1995",
- "Marvel Super Heroes (951024 USA Phoenix Edition)\0", NULL, "bootleg", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, 0,
- NULL, MshudRomInfo, MshudRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- PhoenixInit, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsMshvsfu1d = {
- "mshvsfu1d", "mshvsf", NULL, NULL, "1997",
- "Marvel Super Heroes vs Street Fighter (970625 USA Phoenix Edition)\0", NULL, "bootleg", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, Mshvsfu1dRomInfo, Mshvsfu1dRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- PhoenixInit, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsMvscud = {
- "mvscud", "mvsc", NULL, NULL, "1998",
- "Marvel vs Capcom - clash of super heroes (980123 USA Phoenix Edition)\0", NULL, "bootleg", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, MvscudRomInfo, MvscudRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- PhoenixInit, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsNwarrud = {
- "nwarrud", "nwarr", NULL, NULL, "1995",
- "Night Warriors - darkstalkers' revenge (950406 USA Phoenix Edition)\0", NULL, "bootleg", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_DSTLK,
- NULL, NwarrudRomInfo, NwarrudRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- PhoenixInit, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsProgearud = {
- "progearud", "progear", NULL, NULL, "2001",
- "Progear(010117 USA Phoenix Edition)\0", NULL, "bootleg", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS2 | HARDWARE_CAPCOM_CPS2_SIMM, GBF_HORSHOOT, 0,
- NULL, ProgearudRomInfo, ProgearudRomName, NULL, NULL, ProgearInputInfo, NULL,
- PhoenixInit, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsProgearjd = {
- "progearjd", "progear", NULL, NULL, "2001",
- "Progear No Arashi (010117 Japan Phoenix Edition)\0", NULL, "bootleg", "CPS2",
- L"\u30D7\u30ED\u30AE\u30A2\u306E\u5D50 (Progear No Arashi 010117 Japan Phoenix Edition)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS2 | HARDWARE_CAPCOM_CPS2_SIMM, GBF_HORSHOOT, 0,
- NULL, ProgearjdRomInfo, ProgearjdRomName, NULL, NULL, ProgearInputInfo, NULL,
- PhoenixInit, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsRingdstd = {
- "ringdstd", "ringdest", NULL, NULL, "1994",
- "Ring of Destruction - slammasters II (940902 Euro Phoenix Edition)\0", NULL, "bootleg", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, 0,
- NULL, RingdstdRomInfo, RingdstdRomName, NULL, NULL, RingdestInputInfo, NULL,
- PhoenixInit, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSfad = {
- "sfad", "sfa", NULL, NULL, "1995",
- "Street Fighter Alpha - warriors' dreams (950727 Euro Phoenix Edition)\0", NULL, "bootleg", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, SfadRomInfo, SfadRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- PhoenixInit, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSfaud = {
- "sfaud", "sfa", NULL, NULL, "1995",
- "Street Fighter Alpha - warriors' dreams (950727 USA Phoenix Edition)\0", NULL, "bootleg", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, SfaudRomInfo, SfaudRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- PhoenixInit, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSfz2ad = {
- "sfz2ad", "sfa2", NULL, NULL, "1996",
- "Street Fighter Zero 2 (960227 Asia Phoenix Edition)\0", NULL, "bootleg", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, Sfz2adRomInfo, Sfz2adRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- PhoenixInit, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSfz2jd = {
- "sfz2jd", "sfa2", NULL, NULL, "1996",
- "Street Fighter Zero 2 (960227 Japan Phoenix Edition)\0", NULL, "bootleg", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, Sfz2jdRomInfo, Sfz2jdRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- PhoenixInit, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSfz2ald = {
- "sfz2ald", "sfz2al", NULL, NULL, "1996",
- "Street Fighter Zero 2 Alpha (960826 Asia Phoenix Edition)\0", NULL, "bootleg", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG,2,HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, Sfz2aldRomInfo, Sfz2aldRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- PhoenixInit, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSfa3ud = {
- "sfa3ud", "sfa3", NULL, NULL, "1998",
- "Street Fighter Alpha 3 (980904 USA Phoenix Edition)\0", NULL, "bootleg", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, Sfa3udRomInfo, Sfa3udRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- PhoenixInit, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSfz3jr2d = {
- "sfz3jr2d", "sfa3", NULL, NULL, "1998",
- "Street Fighter Zero 3 (980629 Japan Phoenix Edition)\0", NULL, "bootleg", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, Sfz3jr2dRomInfo, Sfz3jr2dRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- PhoenixInit, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSgemfd = {
- "sgemfd", "sgemf", NULL, NULL, "1997",
- "Super Gem Fighter Mini Mix (970904 USA Phoenix Edition)\0", NULL, "bootleg", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, SgemfdRomInfo, SgemfdRomName, NULL, NULL, SgemfInputInfo, NULL,
- PhoenixInit, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSpf2td = {
- "spf2td", "spf2t", NULL, NULL, "1996",
- "Super Puzzle Fighter II Turbo (Super Puzzle Fighter 2 Turbo 960620 USA Phoenix Edition)\0", NULL, "bootleg", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS2, GBF_PUZZLE, FBF_SF,
- NULL, Spf2tdRomInfo, Spf2tdRomName, NULL, NULL, Spf2tInputInfo, NULL,
- PhoenixInit, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSpf2xjd = {
- "spf2xjd", "spf2t", NULL, NULL, "1996",
- "Super Puzzle Fighter II X (Super Puzzle Fighter 2 X 960531 Japan Phoenix Edition)\0", NULL, "bootleg", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS2, GBF_PUZZLE, FBF_SF,
- NULL, Spf2xjdRomInfo, Spf2xjdRomName, NULL, NULL, Spf2tInputInfo, NULL,
- PhoenixInit, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSsf2d = {
- "ssf2d", "ssf2", NULL, NULL, "1993",
- "Super Street Fighter II - the new challengers (super street fighter 2 930911 etc Phoenix Edition)\0", NULL, "bootleg", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, Ssf2dRomInfo, Ssf2dRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Ssf2PhoenixInit, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSsf2ud = {
- "ssf2ud", "ssf2", NULL, NULL, "1993",
- "Super Street Fighter II - the new challengers (super street fighter 2 930911 USA Phoenix Edition)\0", NULL, "bootleg", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, Ssf2udRomInfo, Ssf2udRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Ssf2PhoenixInit, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSsf2tbd = {
- "ssf2tbd", "ssf2", NULL, NULL, "1993",
- "Super Street Fighter II - the tournament battle (931119 etc Phoenix Edition)\0", "Linkup feature not implemented", "bootleg", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, Ssf2tbdRomInfo, Ssf2tbdRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Ssf2tbPhoenixInit, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSsf2td = {
- "ssf2td", "ssf2t", NULL, NULL, "1994",
- "Super Street Fighter II Turbo (super street fighter 2 X 940223 etc Phoenix Edition)\0", NULL, "bootleg", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, Ssf2tdRomInfo, Ssf2tdRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Ssf2tPhoenixInit, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSsf2tad = {
- "ssf2tad", "ssf2t", NULL, NULL, "1994",
- "Super Street Fighter II Turbo (super street fighter 2 X 940223 Asia Phoenix Edition)\0", NULL, "bootleg", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, Ssf2tadRomInfo, Ssf2tadRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Ssf2tPhoenixInit, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsSsf2xjr1d = {
- "ssf2xjr1d", "ssf2t", NULL, NULL, "1994",
- "Super Street Fighter II X - grand master challenge (super street fighter 2 X 940223 Japan Phoenix Edition)\0", NULL, "bootleg", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, Ssf2xjr1dRomInfo, Ssf2xjr1dRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- Ssf2tPhoenixInit, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsVsavd = {
- "vsavd", "vsav", NULL, NULL, "1997",
- "Vampire Savior - the lord of vampire (970519 Euro Phoenix Edition)\0", NULL, "bootleg", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_DSTLK,
- NULL, VsavdRomInfo, VsavdRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- PhoenixInit, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsVhunt2d = {
- "vhunt2d", "vhunt2", NULL, NULL, "1997",
- "Vampire Hunter 2 - darkstalkers revenge (970913 Japan Phoenix Edition)\0", NULL, "bootleg", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_DSTLK,
- NULL, Vhunt2dRomInfo, Vhunt2dRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- PhoenixInit, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsVsav2d = {
- "vsav2d", "vsav2", NULL, NULL, "1997",
- "Vampire Savior 2 - the lord of vampire (970913 Japan Phoenix Edition)\0", NULL, "bootleg", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_DSTLK,
- NULL, Vsav2dRomInfo, Vsav2dRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- PhoenixInit, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsXmcotar1d = {
- "xmcotar1d", "xmcota", NULL, NULL, "1995",
- "X-Men - children of the atom (950105 Euro Phoenix Edition)\0", NULL, "bootleg", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, 0,
- NULL, Xmcotar1dRomInfo, Xmcotar1dRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- PhoenixInit, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCpsXmvsfu1d = {
- "xmvsfu1d", "xmvsf", NULL, NULL, "1996",
- "X-Men vs Street Fighter (961004 USA Phoenix Edition)\0", NULL, "bootleg", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
- NULL, Xmvsfu1dRomInfo, Xmvsfu1dRomName, NULL, NULL, Cps2FightingInputInfo, NULL,
- PhoenixInit, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-// other bootlegs
-
-// Progear No Arashi (010117 Japan, decrypted set)
-static struct BurnRomInfo ProgearjblRomDesc[] = {
- { "pgaj_bl.03", 0x080000, 0x4fef676c, CPS2_PRG_68K | BRF_ESS | BRF_PRG }, // this fails the rom test - bootleggers probably didn't update checksum
- { "pgaj_bl.04", 0x080000, 0xa069bd3b, CPS2_PRG_68K | BRF_ESS | BRF_PRG }, // this fails the rom test - bootleggers probably didn't update checksum
-
- { "pga.13m", 0x400000, 0x5194c198, CPS2_GFX | BRF_GRA },
- { "pga.15m", 0x400000, 0xb794e83f, CPS2_GFX | BRF_GRA },
- { "pga.17m", 0x400000, 0x87f22918, CPS2_GFX | BRF_GRA },
- { "pga.19m", 0x400000, 0x65ffb45b, CPS2_GFX | BRF_GRA },
-
- { "pga.01", 0x020000, 0xbdbfa992, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "pga.11m", 0x400000, 0xabdd224e, CPS2_QSND | BRF_SND },
- { "pga.12m", 0x400000, 0xdac53406, CPS2_QSND | BRF_SND },
-
- { "phoenix.key", 0x000014, 0x2cf772b0, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Progearjbl)
-STD_ROM_FN(Progearjbl)
-
-struct BurnDriver BurnDrvCpsProgearjbl = {
- "progearjbl", "progear", NULL, NULL, "2001",
- "Progear No Arashi (010117 Japan, decrypted set)\0", NULL, "bootleg", "CPS2",
- L"\u30D7\u30ED\u30AE\u30A2\u306E\u5D50 (Progear No Arashi 010117 Japan, decrypted set)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS2 | HARDWARE_CAPCOM_CPS2_SIMM, GBF_HORSHOOT, 0,
- NULL, ProgearjblRomInfo, ProgearjblRomName, NULL, NULL, ProgearInputInfo, NULL,
- PhoenixInit, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-// Halfway To Hell: Progear Red Label (2016-1-17 Red label ver)
-static struct BurnRomInfo HalfwayRomDesc[] = {
- { "halfway.03", 0x080000, 0x55ce8d4a, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
- { "tohell.04", 0x080000, 0x71060b9e, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
-
- { "redlabel.13m", 0x400000, 0x5194c198, CPS2_GFX | BRF_GRA },
- { "redlabel.15m", 0x400000, 0xb794e83f, CPS2_GFX | BRF_GRA },
- { "redlabel.17m", 0x400000, 0x87f22918, CPS2_GFX | BRF_GRA },
- { "redlabel.19m", 0x400000, 0x65ffb45b, CPS2_GFX | BRF_GRA },
-
- { "pga.01", 0x020000, 0xbdbfa992, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
-
- { "redlabel.11m", 0x400000, 0x33ebf625, CPS2_QSND | BRF_SND },
- { "redlabel.12m", 0x400000, 0x47f25cf4, CPS2_QSND | BRF_SND },
-
- { "phoenix.key", 0x000014, 0x2cf772b0, CPS2_ENCRYPTION_KEY },
-};
-
-STD_ROM_PICK(Halfway)
-STD_ROM_FN(Halfway)
-
-struct BurnDriver BurnDrvCpsHalfway = {
- "halfway", "progear", NULL, NULL, "2016",
- "Halfway To Hell: Progear Red Label (2016-1-17 Red label ver)\0", NULL, "The Halfway House", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS2 | HARDWARE_CAPCOM_CPS2_SIMM, GBF_HORSHOOT, 0,
- NULL, HalfwayRomInfo, HalfwayRomName, NULL, NULL, ProgearInputInfo, NULL,
- PhoenixInit, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
-
-// Gigaman 2: The Power Fighters (bootleg of Megaman 2)
-static struct BurnRomInfo Gigaman2RomDesc[] = {
- { "sys_rom1.bin", 0x400000, 0x2eaa5e10, BRF_ESS | BRF_PRG },
-
- { "cg_rom1.bin", 0x800000, 0xed55a641, BRF_GRA },
- { "cg_rom2.bin", 0x800000, 0x63918c05, BRF_GRA },
-
- { "pcm_rom1.bin", 0x800000, 0x41a854ab, BRF_SND },
-
- { "89c4051.bin", 0x010000, 0x00000000, BRF_PRG | BRF_NODUMP }, // sound MCU
-};
-
-STD_ROM_PICK(Gigaman2)
-STD_ROM_FN(Gigaman2)
-
-static UINT8 *Gigaman2DummyQsndRam = NULL;
-
-static INT32 Gigaman2Init()
-{
- Cps = 2;
- Cps2DisableQSnd = 1;
-
- CpsLayer1XOffs = -0x09;
- CpsLayer2XOffs = -0x09;
- CpsLayer3XOffs = -0x09;
-
- nCpsGfxLen = 0x800000;
- nCpsRomLen = 0x180000;
- nCpsCodeLen = 0x180000;
- nCpsZRomLen = 0;
- nCpsQSamLen = 0;
- nCpsAdLen = 0x800000;
-
- Gigaman2DummyQsndRam = (UINT8*)BurnMalloc(0x20000);
-
- CpsInit();
-
- INT32 nRet = 0;
-
- // Load program rom (seperate data and code)
- UINT8 *pTemp = (UINT8*)BurnMalloc(0x400000);
- if (!pTemp) return 1;
- nRet = BurnLoadRom(pTemp, 0, 1); if (nRet) return 1;
- memcpy(CpsRom , pTemp + 0x000000, 0x180000);
- memcpy(CpsCode, pTemp + 0x200000, 0x180000);
- BurnFree(pTemp);
-
- // Load graphic roms, descramble and decode
- pTemp = (UINT8*)BurnMalloc(0xc00000);
- if (!pTemp) return 1;
- // we are only interested in the first 0x400000 of each rom
- nRet = BurnLoadRom(pTemp + 0x000000, 1, 1); if (nRet) return 1;
- nRet = BurnLoadRom(pTemp + 0x400000, 2, 1); if (nRet) return 1;
-
- // copy to CpsGfx as a temp buffer and descramble
- memcpy(CpsGfx, pTemp, nCpsGfxLen);
- memset(pTemp, 0, 0xc00000);
- UINT16 *pTemp16 = (UINT16*)pTemp;
- UINT16 *CpsGfx16 = (UINT16*)CpsGfx;
- for (INT32 i = 0; i < 0x800000 >> 1; i++) {
- pTemp16[i] = CpsGfx16[((i & ~7) >> 2) | ((i & 4) << 18) | ((i & 2) >> 1) | ((i & 1) << 21)];
- }
-
- // copy back to CpsGfx as a temp buffer and put into a format easier to decode
- memcpy(CpsGfx, pTemp, nCpsGfxLen);
- memset(pTemp, 0, 0xc00000);
- for (INT32 i = 0; i < 0x100000; i++) {
- pTemp16[i + 0x000000] = CpsGfx16[(i * 4) + 0];
- pTemp16[i + 0x100000] = CpsGfx16[(i * 4) + 1];
- pTemp16[i + 0x200000] = CpsGfx16[(i * 4) + 2];
- pTemp16[i + 0x300000] = CpsGfx16[(i * 4) + 3];
- }
-
- // clear CpsGfx and finally decode
- memset(CpsGfx, 0, nCpsGfxLen);
- Cps2LoadTilesGigaman2(CpsGfx, pTemp);
- BurnFree(pTemp);
-
- // Load the MSM6295 Data
- nRet = BurnLoadRom(CpsAd, 3, 1); if (nRet) return 1;
-
- nRet = CpsRunInit();
-
- SekOpen(0);
- SekMapMemory(Gigaman2DummyQsndRam, 0x618000, 0x619fff, MAP_RAM);
- SekClose();
-
-// nCpsNumScanlines = 262; // phoenix sets seem to be sensitive to timing??
-
- return nRet;
-}
-
-static INT32 Gigaman2Exit()
-{
- BurnFree(Gigaman2DummyQsndRam);
-
- return DrvExit();
-}
-
-static INT32 Gigaman2Scan(INT32 nAction, INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (nAction & ACB_MEMORY_RAM) {
- memset(&ba, 0, sizeof(ba));
- ba.Data = Gigaman2DummyQsndRam;
- ba.nLen = 0x020000;
- ba.szName = "Gigaman2DummyQsndRam";
- BurnAcb(&ba);
- }
-
- return CpsAreaScan(nAction, pnMin);
-}
-
-struct BurnDriver BurnDrvCpsGigaman2 = {
- "gigaman2", "megaman2", NULL, NULL, "1996",
- "Gigaman 2: The Power Fighters (bootleg)\0", "No Sound (MCU not dumped)", "bootleg", "CPS2",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, 0,
- NULL, Gigaman2RomInfo, Gigaman2RomName, NULL, NULL, Megaman2InputInfo, NULL,
- Gigaman2Init, Gigaman2Exit, Cps2Frame, CpsRedraw, Gigaman2Scan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
diff --git a/jan/src/burn/drv/capcom/d_kenseim.h b/jan/src/burn/drv/capcom/d_kenseim.h
deleted file mode 100644
index 13d45a6dc..000000000
--- a/jan/src/burn/drv/capcom/d_kenseim.h
+++ /dev/null
@@ -1,269 +0,0 @@
-static UINT8 KenseimInputPort0[8] = {0, 0, 0, 0, 0, 0, 0, 0};
-static UINT8 KenseimInputPort1[8] = {0, 0, 0, 0, 0, 0, 0, 0};
-static UINT8 KenseimInputPort2[8] = {0, 0, 0, 0, 0, 0, 0, 0};
-static UINT8 KenseimDip[2] = {0, 0};
-static UINT8 KenseimInput[3] = {0x00, 0x00, 0x00};
-static UINT8 KenseimReset = 0;
-static UINT8 *KenseimRom = NULL;
-static UINT8 *KenseimRam = NULL;
-
-static struct BurnInputInfo KenseimInputList[] =
-{
- {"Coin" , BIT_DIGITAL , KenseimInputPort0 + 0, "p1 coin" },
- {"Ryu Start" , BIT_DIGITAL , KenseimInputPort0 + 1, "p1 start" },
- {"Chun-Li Start" , BIT_DIGITAL , KenseimInputPort0 + 2, "p2 start" },
-
- {"Mole A1" , BIT_DIGITAL , KenseimInputPort1 + 0, "p1 fire 1" },
- {"Mole A2" , BIT_DIGITAL , KenseimInputPort1 + 1, "p1 fire 2" },
- {"Mole A3" , BIT_DIGITAL , KenseimInputPort1 + 2, "p1 fire 3" },
- {"Mole A4" , BIT_DIGITAL , KenseimInputPort1 + 3, "p1 fire 4" },
- {"Mole A5" , BIT_DIGITAL , KenseimInputPort1 + 4, "p1 fire 5" },
- {"Mole A6" , BIT_DIGITAL , KenseimInputPort1 + 5, "p1 fire 6" },
-
- {"Mole B1" , BIT_DIGITAL , KenseimInputPort2 + 0, "p2 fire 1" },
- {"Mole B2" , BIT_DIGITAL , KenseimInputPort2 + 1, "p2 fire 2" },
- {"Mole B3" , BIT_DIGITAL , KenseimInputPort2 + 2, "p2 fire 3" },
- {"Mole B4" , BIT_DIGITAL , KenseimInputPort2 + 3, "p2 fire 4" },
- {"Mole B5" , BIT_DIGITAL , KenseimInputPort2 + 4, "p2 fire 5" },
- {"Mole B6" , BIT_DIGITAL , KenseimInputPort2 + 5, "p2 fire 6" },
-
- {"Reset" , BIT_DIGITAL , &KenseimReset , "reset" },
- {"Service" , BIT_DIGITAL , KenseimInputPort0 + 3, "service" },
- {"Dip A" , BIT_DIPSWITCH, &Cpi01A , "dip" },
- {"Dip B" , BIT_DIPSWITCH, &Cpi01C , "dip" },
- {"Dip C" , BIT_DIPSWITCH, &Cpi01E , "dip" },
- {"Dip 1" , BIT_DIPSWITCH, KenseimDip + 0 , "dip" },
- {"Dip 2" , BIT_DIPSWITCH, KenseimDip + 1 , "dip" },
-};
-
-STDINPUTINFO(Kenseim)
-
-static struct BurnDIPInfo KenseimDIPList[]=
-{
- // Default Values
- {0x11, 0xff, 0xff, 0x00, NULL },
- {0x12, 0xff, 0xff, 0x00, NULL },
- {0x13, 0xff, 0xff, 0x20, NULL },
- {0x14, 0xff, 0xff, 0xff, NULL },
- {0x15, 0xff, 0xff, 0xff, NULL },
-
- // CPS Dip C
- {0 , 0xfe, 0 , 2 , "Freeze" },
- {0x13, 0x01, 0x10, 0x08, "Off" },
- {0x13, 0x01, 0x10, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2 , "Flip Screen" },
- {0x13, 0x01, 0x10, 0x00, "Off" },
- {0x13, 0x01, 0x10, 0x10, "On" },
-
- {0 , 0xfe, 0 , 2 , "Demo Sounds" },
- {0x13, 0x01, 0x20, 0x00, "Off" },
- {0x13, 0x01, 0x20, 0x20, "On" },
-
- // Dip 1
- {0 , 0xfe, 0 , 4 , "Coinage" },
- {0x14, 0x01, 0x03, 0x00, "4 Coins 1 Credit" },
- {0x14, 0x01, 0x03, 0x01, "3 Coins 1 Credit" },
- {0x14, 0x01, 0x03, 0x03, "2 Coins 1 Credit" },
- {0x14, 0x01, 0x03, 0x02, "1 Coin 1 Credit" },
-
- {0 , 0xfe, 0 , 4 , "Head Appear Once Ratio" },
- {0x14, 0x01, 0x0c, 0x00, "0" },
- {0x14, 0x01, 0x0c, 0x04, "1" },
- {0x14, 0x01, 0x0c, 0x08, "2" },
- {0x14, 0x01, 0x0c, 0x0c, "3" },
-
- {0 , 0xfe, 0 , 4 , "Strength of Computer" },
- {0x14, 0x01, 0x30, 0x00, "0" },
- {0x14, 0x01, 0x30, 0x10, "1" },
- {0x14, 0x01, 0x30, 0x20, "2" },
- {0x14, 0x01, 0x30, 0x30, "3" },
-
- {0 , 0xfe, 0 , 2 , "Game Time" },
- {0x14, 0x01, 0x40, 0x00, "Long (59 seconds)" },
- {0x14, 0x01, 0x40, 0x40, "Short (49 seconds)" },
-
- {0 , 0xfe, 0 , 2 , "Winner of 2 Player faces Vega" },
- {0x14, 0x01, 0x80, 0x00, "No" },
- {0x14, 0x01, 0x80, 0x80, "Yes" },
-
- // Dip 2
- {0 , 0xfe, 0 , 2 , "Unknown 1 (1-bit)" },
- {0x15, 0x01, 0x01, 0x00, "0" },
- {0x15, 0x01, 0x01, 0x01, "1" },
-
- {0 , 0xfe, 0 , 4 , "Unknown 2 (2-bit)" },
- {0x15, 0x01, 0x06, 0x00, "0" },
- {0x15, 0x01, 0x06, 0x02, "1" },
- {0x15, 0x01, 0x06, 0x04, "2" },
- {0x15, 0x01, 0x06, 0x06, "3" },
-
- {0 , 0xfe, 0 , 4 , "Unknown 3 (2-bit)" },
- {0x15, 0x01, 0x18, 0x00, "0" },
- {0x15, 0x01, 0x18, 0x08, "1" },
- {0x15, 0x01, 0x18, 0x10, "2" },
- {0x15, 0x01, 0x18, 0x18, "3" },
-
- {0 , 0xfe, 0 , 2 , "Test Mode" },
- {0x15, 0x01, 0x80, 0x80, "Off" },
- {0x15, 0x01, 0x80, 0x00, "On" },
-};
-
-STDDIPINFO(Kenseim)
-
-static struct BurnRomInfo KenseimRomDesc[] = {
- { "knm_23.8f", 0x080000, 0xf8368900, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- { "knm_21.6f", 0x080000, 0xa8025e91, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
- // repeat to allocate enough memory and load in right place
- { "knm_21.6f", 0x080000, 0xa8025e91, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
-
- { "knm_01.3a", 0x080000, 0x923f0c0c, BRF_GRA | CPS1_TILES },
- { "knm_02.4a", 0x080000, 0xfa694f67, BRF_GRA | CPS1_TILES },
- { "knm_03.5a", 0x080000, 0xaf7af02c, BRF_GRA | CPS1_TILES },
- { "knm_04.6a", 0x080000, 0x607a9af4, BRF_GRA | CPS1_TILES },
- { "knm_05.7a", 0x080000, 0xd877eee9, BRF_GRA | CPS1_TILES },
- { "knm_06.8a", 0x080000, 0x8821a281, BRF_GRA | CPS1_TILES },
- { "knm_07.9a", 0x080000, 0x00306d09, BRF_GRA | CPS1_TILES },
- { "knm_08.10a", 0x080000, 0x4a329d16, BRF_GRA | CPS1_TILES },
- { "knm_10.3c", 0x080000, 0xca93a942, BRF_GRA | CPS1_TILES },
- { "knm_11.4c", 0x080000, 0xa91f3091, BRF_GRA | CPS1_TILES },
- { "knm_12.5c", 0x080000, 0x5da8303a, BRF_GRA | CPS1_TILES },
- { "knm_13.6c", 0x080000, 0x889bb671, BRF_GRA | CPS1_TILES },
-
- { "knm_09.12a", 0x020000, 0x15394dd7, BRF_PRG | CPS1_Z80_PROGRAM },
-
- { "knm_18.11c", 0x020000, 0x9e3e4773, BRF_SND | CPS1_OKIM6295_SAMPLES },
- { "knm_19.12c", 0x020000, 0xd6c4047f, BRF_SND | CPS1_OKIM6295_SAMPLES },
-
- A_BOARD_PLDS
-
- { "knm10b.1a", 0x000117, 0xe40131d4, BRF_OPT }, // b-board PLDs
- { "iob1.12d", 0x000117, 0x3abc0700, BRF_OPT },
- { "bprg1.11d", 0x000117, 0x31793da7, BRF_OPT },
- { "ioc1.ic7", 0x000117, 0x0d182081, BRF_OPT }, // c-board PLDs
- { "c632.ic1", 0x000117, 0x0fbd9270, BRF_OPT },
-
- { "kensei_mogura_ver1.0.u2", 0x008000, 0x725cfcfc, BRF_PRG | BRF_ESS },
-};
-
-STD_ROM_PICK(Kenseim)
-STD_ROM_FN(Kenseim)
-
-static inline void KenseimMakeInputs()
-{
- // Reset Inputs
- KenseimInput[0] = 0x00;
- KenseimInput[1] = 0x20;
- KenseimInput[2] = 0x20;
-
- // Compile Digital Inputs
- for (INT32 i = 0; i < 8; i++) {
- KenseimInput[0] |= (KenseimInputPort0[i] & 1) << i;
- }
-
- for (INT32 i = 0; i < 6; i++) {
- KenseimInput[1] -= (KenseimInputPort1[i] & 1) << i;
- KenseimInput[2] -= (KenseimInputPort2[i] & 1) << i;
- }
-}
-
-static INT32 KenseimDoReset()
-{
- CpsReset = 1;
-
- ZetOpen(1);
- ZetReset();
- ZetClose();
-
- return 0;
-}
-
-static UINT8 __fastcall KenseimPortRead(UINT16 a)
-{
- a &= 0xff;
-
- switch (a) {
- default: {
- bprintf(PRINT_NORMAL, _T("Port Read => %02X\n"), a);
- }
- }
-
- return 0;
-}
-
-static void __fastcall KenseimPortWrite(UINT16 a, UINT8 d)
-{
- a &= 0xff;
-
- switch (a) {
- default: {
- bprintf(PRINT_NORMAL, _T("Port Write => %02X, %02X\n"), a, d);
- }
- }
-}
-
-static INT32 KenseimInit()
-{
- KenseimRom = BurnMalloc(0x8000 * sizeof(UINT8));
- KenseimRam = BurnMalloc(0x8000 * sizeof(UINT8));
-
- ZetInit(1);
- ZetOpen(1);
- ZetSetInHandler(KenseimPortRead);
- ZetSetOutHandler(KenseimPortWrite);
- ZetMapArea(0x0000, 0x7fff, 0, KenseimRom);
- ZetMapArea(0x0000, 0x7fff, 2, KenseimRom);
- ZetMapArea(0x8000, 0xffff, 0, KenseimRam);
- ZetMapArea(0x8000, 0xffff, 1, KenseimRam);
- ZetMapArea(0x8000, 0xffff, 2, KenseimRam);
- ZetClose();
-
- return DrvInit();
-}
-
-static INT32 KenseimExit()
-{
- ZetExit();
-
- BurnFree(KenseimRom);
- BurnFree(KenseimRam);
-
- return DrvExit();
-}
-
-static INT32 KenseimFrame()
-{
- INT32 nCyclesTotal = (8000000 / 2) / 60;
-
- if (KenseimReset) {
- KenseimDoReset();
- }
-
- KenseimMakeInputs();
-
- ZetOpen(1);
- ZetRun(nCyclesTotal);
- ZetClose();
-
- return Cps1Frame();
-}
-
-static INT32 KenseimRedraw()
-{
- return CpsRedraw();
-}
-
-static INT32 KenseimScan(INT32 nAction, INT32 *pnMin)
-{
- return CpsAreaScan(nAction, pnMin);
-}
-
-struct BurnDriverD BurnDrvCpsKenseim = {
- "kenseim", NULL, NULL, NULL, "1994",
- "Ken Sei Mogura: Street Fighter II (Japan 940418, Ver 1.00)\0", NULL, "Capcom / Togo / Sigma", "CPS1",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_CAPCOM_CPS1, GBF_MINIGAMES, 0,
- NULL, KenseimRomInfo, KenseimRomName, NULL, NULL, KenseimInputInfo, KenseimDIPInfo,
- KenseimInit, KenseimExit, KenseimFrame, KenseimRedraw, KenseimScan,
- &CpsRecalcPal, 0x1000, 384, 224, 4, 3
-};
\ No newline at end of file
diff --git a/jan/src/burn/drv/capcom/fcrash_snd.cpp b/jan/src/burn/drv/capcom/fcrash_snd.cpp
deleted file mode 100644
index 3c23b0b8f..000000000
--- a/jan/src/burn/drv/capcom/fcrash_snd.cpp
+++ /dev/null
@@ -1,279 +0,0 @@
-#include "cps.h"
-#include "burn_ym2203.h"
-#include "msm5205.h"
-
-// fcrash_snd.cpp
-// Sound support for games using similar sound to Final Crash
-// 2 x YM2203 and 2 x MSM5205
-
-static UINT8 *FcrashZ80Ram = NULL;
-static INT32 FcrashZ80BankAddress = 0;
-static INT32 FcrashSoundLatch = 0;
-static INT32 FcrashMSM5205Interleave = 0;
-static INT32 FcrashSampleBuffer1 = 0;
-static INT32 FcrashSampleBuffer2 = 0;
-static INT32 FcrashSampleSelect1 = 0;
-static INT32 FcrashSampleSelect2 = 0;
-static INT32 FcrashSoundPos = 0;
-static INT32 FcrashCyclesPerSegment = 0;
-
-void FcrashSoundCommand(UINT16 d)
-{
- INT32 nCyclesToDo = ((INT64)SekTotalCycles() * nCpsZ80Cycles / nCpsCycles) - ZetTotalCycles();
- INT32 nEnd = FcrashSoundPos + (INT64)FcrashMSM5205Interleave * nCyclesToDo / nCpsZ80Cycles;
-
- if (nEnd == FcrashSoundPos) nEnd += 1;
-
- for (INT32 i = FcrashSoundPos; i < nEnd; i++) {
- BurnTimerUpdate((i + 1) * FcrashCyclesPerSegment);
- MSM5205Update();
- FcrashSoundPos = i;
- }
-
- FcrashSoundLatch = d & 0xff;
- ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
-}
-
-UINT8 __fastcall FcrashZ80Read(UINT16 a)
-{
- switch (a) {
- case 0xd800: {
- return BurnYM2203Read(0, 0);
- }
-
- case 0xdc00: {
- return BurnYM2203Read(1, 0);
- }
-
- case 0xe400: {
- ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
- return FcrashSoundLatch;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Read => %04X\n"), a);
- }
- }
-
- return 0;
-}
-
-void __fastcall FcrashZ80Write(UINT16 a, UINT8 d)
-{
- switch (a) {
- case 0xd800: {
- BurnYM2203Write(0, 0, d);
- return;
- }
-
- case 0xd801: {
- BurnYM2203Write(0, 1, d);
- return;
- }
-
- case 0xdc00: {
- BurnYM2203Write(1, 0, d);
- return;
- }
-
- case 0xdc01: {
- BurnYM2203Write(1, 1, d);
- return;
- }
-
- case 0xe000: {
- MSM5205SetRoute(0, (d & 0x08) ? 0 : 0.25, BURN_SND_ROUTE_BOTH);
- MSM5205SetRoute(1, (d & 0x10) ? 0 : 0.25, BURN_SND_ROUTE_BOTH);
-
- FcrashZ80BankAddress = (d & 0x07) * 0x4000;
- ZetMapArea(0x8000, 0xbfff, 0, CpsZRom + FcrashZ80BankAddress);
- ZetMapArea(0x8000, 0xbfff, 2, CpsZRom + FcrashZ80BankAddress);
- return;
- }
-
- case 0xe800: {
- FcrashSampleBuffer1 = d;
- return;
- }
-
- case 0xec00: {
- FcrashSampleBuffer2 = d;
- return;
- }
-
- case 0xf002:
- case 0xf004:
- case 0xf006: {
- // ???
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Write => %04X, %02X\n"), a, d);
- }
- }
-}
-
-inline static INT32 FcrashSynchroniseStream(INT32 nSoundRate)
-{
- return (INT64)((double)ZetTotalCycles() * nSoundRate / (24000000 / 6));
-}
-
-inline static double FcrashGetTime()
-{
- return (double)ZetTotalCycles() / (24000000 / 6);
-}
-
-static void FcrashMSM5205Vck0()
-{
- MSM5205DataWrite(0, FcrashSampleBuffer1 & 0x0f);
- FcrashSampleBuffer1 >>= 4;
- FcrashSampleSelect1 ^= 1;
- if (FcrashSampleSelect1 == 0) {
- ZetNmi();
- }
-}
-
-static void FcrashMSM5205Vck1()
-{
- MSM5205DataWrite(1, FcrashSampleBuffer2 & 0x0f);
- FcrashSampleBuffer2 >>= 4;
- FcrashSampleSelect2 ^= 1;
-}
-
-INT32 FcrashSoundInit()
-{
- FcrashZ80Ram = (UINT8*)BurnMalloc(0x800);
-
- ZetInit(0);
- ZetOpen(0);
- ZetSetReadHandler(FcrashZ80Read);
- ZetSetWriteHandler(FcrashZ80Write);
- ZetMapArea(0x0000, 0x7fff, 0, CpsZRom + 0x00000);
- ZetMapArea(0x0000, 0x7fff, 2, CpsZRom + 0x00000);
- ZetMapArea(0x8000, 0xbfff, 0, CpsZRom + 0x08000);
- ZetMapArea(0x8000, 0xbfff, 2, CpsZRom + 0x08000);
- ZetMapArea(0xd000, 0xd7ff, 0, FcrashZ80Ram );
- ZetMapArea(0xd000, 0xd7ff, 1, FcrashZ80Ram );
- ZetMapArea(0xd000, 0xd7ff, 2, FcrashZ80Ram );
- ZetClose();
-
- BurnYM2203Init(2, 24000000 / 6, NULL, FcrashSynchroniseStream, FcrashGetTime, 0);
- BurnTimerAttachZet(24000000 / 6);
- BurnYM2203SetRoute(0, BURN_SND_YM2203_YM2203_ROUTE, 0.70, BURN_SND_ROUTE_BOTH);
- BurnYM2203SetRoute(0, BURN_SND_YM2203_AY8910_ROUTE_1, 0.07, BURN_SND_ROUTE_BOTH);
- BurnYM2203SetRoute(0, BURN_SND_YM2203_AY8910_ROUTE_2, 0.07, BURN_SND_ROUTE_BOTH);
- BurnYM2203SetRoute(0, BURN_SND_YM2203_AY8910_ROUTE_3, 0.07, BURN_SND_ROUTE_BOTH);
- BurnYM2203SetRoute(1, BURN_SND_YM2203_YM2203_ROUTE, 0.70, BURN_SND_ROUTE_BOTH);
- BurnYM2203SetRoute(1, BURN_SND_YM2203_AY8910_ROUTE_1, 0.07, BURN_SND_ROUTE_BOTH);
- BurnYM2203SetRoute(1, BURN_SND_YM2203_AY8910_ROUTE_2, 0.07, BURN_SND_ROUTE_BOTH);
- BurnYM2203SetRoute(1, BURN_SND_YM2203_AY8910_ROUTE_3, 0.07, BURN_SND_ROUTE_BOTH);
-
- MSM5205Init(0, FcrashSynchroniseStream, 24000000 / 64, FcrashMSM5205Vck0, MSM5205_S96_4B, 1);
- MSM5205Init(1, FcrashSynchroniseStream, 24000000 / 64, FcrashMSM5205Vck1, MSM5205_S96_4B, 1);
- MSM5205SetRoute(0, 0.25, BURN_SND_ROUTE_BOTH);
- MSM5205SetRoute(1, 0.25, BURN_SND_ROUTE_BOTH);
-
- nCpsZ80Cycles = (24000000 / 6) * 100 / nBurnFPS;
-
- return 0;
-}
-
-INT32 FcrashSoundReset()
-{
- ZetOpen(0);
- ZetReset();
- BurnYM2203Reset();
- MSM5205Reset();
- FcrashZ80BankAddress = 0x8000;
- ZetMapArea(0x8000, 0xbfff, 0, CpsZRom + FcrashZ80BankAddress);
- ZetMapArea(0x8000, 0xbfff, 2, CpsZRom + FcrashZ80BankAddress);
- ZetClose();
-
- FcrashSoundLatch = 0;
- FcrashSampleBuffer1 = 0;
- FcrashSampleBuffer2 = 0;
- FcrashSampleSelect1 = 0;
- FcrashSampleSelect2 = 0;
-
- return 0;
-}
-
-INT32 FcrashSoundExit()
-{
- ZetExit();
- BurnYM2203Exit();
- MSM5205Exit();
-
- BurnFree(FcrashZ80Ram);
-
- FcrashZ80BankAddress = 0;
- FcrashSoundLatch = 0;
- FcrashMSM5205Interleave = 0;
- FcrashSampleBuffer1 = 0;
- FcrashSampleBuffer2 = 0;
- FcrashSampleSelect1 = 0;
- FcrashSampleSelect2 = 0;
- FcrashCyclesPerSegment = 0;
-
- nCpsZ80Cycles = 0;
-
- return 0;
-}
-
-void FcrashSoundFrameStart()
-{
- FcrashMSM5205Interleave = MSM5205CalcInterleave(0, 24000000 / 6);
- FcrashSoundPos = 0;
- FcrashCyclesPerSegment = (INT64)nCpsZ80Cycles / FcrashMSM5205Interleave;
-
- ZetNewFrame();
- ZetOpen(0);
-}
-
-void FcrashSoundFrameEnd()
-{
- for (INT32 i = FcrashSoundPos; i < FcrashMSM5205Interleave; i++) {
- BurnTimerUpdate((i + 1) * FcrashCyclesPerSegment);
- MSM5205Update();
- FcrashSoundPos = i;
- }
- BurnTimerEndFrame(nCpsZ80Cycles);
-
- if (pBurnSoundOut) {
- BurnYM2203Update(pBurnSoundOut, nBurnSoundLen);
- MSM5205Render(0, pBurnSoundOut, nBurnSoundLen);
- MSM5205Render(1, pBurnSoundOut, nBurnSoundLen);
- }
- ZetClose();
-}
-
-INT32 FcrashScanSound(INT32 nAction, INT32 *pnMin)
-{
- if (nAction & ACB_MEMORY_RAM) {
- struct BurnArea ba;
- memset(&ba, 0, sizeof(ba));
-
- ba.Data = FcrashZ80Ram;
- ba.nLen = 0x00800;
- ba.szName = "FcrashZ80Ram";
- BurnAcb(&ba);
- }
-
- if (nAction & ACB_DRIVER_DATA) {
- ZetScan(nAction);
-
- BurnYM2203Scan(nAction, pnMin);
- MSM5205Scan(nAction, pnMin);
-
- SCAN_VAR(FcrashZ80BankAddress);
- SCAN_VAR(FcrashSoundLatch);
- SCAN_VAR(FcrashSampleBuffer1);
- SCAN_VAR(FcrashSampleBuffer2);
- SCAN_VAR(FcrashSampleSelect1);
- SCAN_VAR(FcrashSampleSelect2);
- SCAN_VAR(FcrashSoundPos);
- }
-
- return 0;
-}
diff --git a/jan/src/burn/drv/capcom/kabuki.cpp b/jan/src/burn/drv/capcom/kabuki.cpp
deleted file mode 100644
index 43850cf49..000000000
--- a/jan/src/burn/drv/capcom/kabuki.cpp
+++ /dev/null
@@ -1,167 +0,0 @@
-// This file is based on the MAME source code (see http://www.mame.net/)
-
-/***************************************************************************
-
-"Kabuki" Z80 encryption
-
-
-The "Kabuki" is a custom Z80 module which runs encrypted code. The encryption
-key is stored in some battery-backed RAM, therefore the chip has the annoying
-habit of stopping working every few years, when the battery dies.
-Check at the bottom of this text to see a list of all the known games which
-use this chip.
-
-
-How it works:
-The base operation is a bit swap which affects couples of adjacent bits.
-Each of the 4 couples may or may not be swapped, depending on the address of
-the byte and on whether it is an opcode or data.
-The decryption consists of these steps:
-- bitswap
-- ROL
-- bitswap
-- XOR with a key
-- ROL
-- bitswap
-- ROL
-- bitswap
-
-To know how to apply the bit swap, take the address of the byte to decode and:
-- if the byte is an opcode, add addr_key to the address
-- if the byte is data, XOR the address with 1FC0, add 1, and then add addr_key
-You'll get a 16-bit word. The first two bitswaps depend on bits 0-7 of that
-word, while the second two on bits 8-15. When a bit in the word is 1, swap the
-two bits, oherwise don't. The exact couple of bits affected depends on the
-game and is identified in this file with two keys: swap_key1 and swap_key2
-(which are just permutations of the numbers 0-7, not full 32-bit integers).
-
-
-Key space size:
-- swap_key1 8! = 40320
-- swap_key2 8! = 40320
-- addr_key 2^16 = 65536
-- xor_key 2^8 = 256
-- total 2.7274 * 10^16
-
-
-Weaknesses:
-- 0x00 and 0xff, having all the bits set to the same value, are not affected
- by bit permutations after the XOR. Therefore, their encryption is the same
- regardless of the high 8 bits of the address, and of the value of
- swap_key2. If there is a long stream of 0x00 or 0xff in the original data,
- this can be used to find by brute force all the candidates for swap_key1,
- xor_key, and for the low 8 bits of addr_key. This is a serious weakness
- which dramatically reduces the security of the encryption.
-- A 0x00 is always encrypted as a byte with as many 1s as xor_key; a 0xff is
- always encrypted as a byte with as many 0s as xor_key has 1s. So you just
- need to know one 0x00 or 0xff in the unencrypted data to know how many 1s
- there are in xor_key.
-- Once you have restricted the range for swap_key1 and you know the number of
- 1s in the xor_key, you can easily use known plaintext attacks and brute
- force to find the remaining keys. Long strings like THIS GAME IS FOR USE IN
- and ABCDEFGHIJKLMNOPQRSTUVWXYZ can be found by comparing the number of 1s
- in the clear and encrypted data, taking xor_key into account. When you have
- found where the string is, use brute force to reduce the key space.
-
-
-Known games:
- swap_key1 swap_key2 addr_key xor_key
-Mahjong Gakuen 2 Gakuen-chou no Fukushuu 76543210 01234567 aa55 a5
-Poker Ladies " " " " "" ""
-Dokaben " " " " "" ""
-Dokaben 2 unknown
-Pang / Buster Bros / Pomping World 01234567 76543210 6548 24
-Capcom Baseball " " " " "" ""
-Capcom World 04152637 40516273 5751 43
-Adventure Quiz 2 Hatena ? no Dai-Bouken 45670123 45670123 5751 43
-Super Pang 45670123 45670123 5852 43
-Super Buster Bros 45670123 45670123 2130 12
-Super Marukin-Ban 54321076 54321076 4854 4f
-Quiz Tonosama no Yabou 12345670 12345670 1111 11
-Ashita Tenki ni Naare unknown
-Quiz Sangokushi 23456701 23456701 1828 18
-Block Block 02461357 64207531 0002 01
-
-Warriors of Fate 01234567 54163072 5151 51
-Cadillacs and Dinosaurs 76543210 24601357 4343 43
-Punisher 67452103 75316024 2222 22
-Slam Masters 54321076 65432107 3131 19
-
-***************************************************************************/
-
-// #include "driver.h"
-#include "cps.h"
-
-
-static INT32 bitswap1(INT32 src,INT32 key,INT32 select)
-{
- if (select & (1 << ((key >> 0) & 7)))
- src = (src & 0xfc) | ((src & 0x01) << 1) | ((src & 0x02) >> 1);
- if (select & (1 << ((key >> 4) & 7)))
- src = (src & 0xf3) | ((src & 0x04) << 1) | ((src & 0x08) >> 1);
- if (select & (1 << ((key >> 8) & 7)))
- src = (src & 0xcf) | ((src & 0x10) << 1) | ((src & 0x20) >> 1);
- if (select & (1 << ((key >>12) & 7)))
- src = (src & 0x3f) | ((src & 0x40) << 1) | ((src & 0x80) >> 1);
-
- return src;
-}
-
-static INT32 bitswap2(INT32 src,INT32 key,INT32 select)
-{
- if (select & (1 << ((key >>12) & 7)))
- src = (src & 0xfc) | ((src & 0x01) << 1) | ((src & 0x02) >> 1);
- if (select & (1 << ((key >> 8) & 7)))
- src = (src & 0xf3) | ((src & 0x04) << 1) | ((src & 0x08) >> 1);
- if (select & (1 << ((key >> 4) & 7)))
- src = (src & 0xcf) | ((src & 0x10) << 1) | ((src & 0x20) >> 1);
- if (select & (1 << ((key >> 0) & 7)))
- src = (src & 0x3f) | ((src & 0x40) << 1) | ((src & 0x80) >> 1);
-
- return src;
-}
-
-static INT32 bytedecode(INT32 src,INT32 swap_key1,INT32 swap_key2,INT32 xor_key,INT32 select)
-{
- src = bitswap1(src,swap_key1 & 0xffff,select & 0xff);
- src = ((src & 0x7f) << 1) | ((src & 0x80) >> 7);
- src = bitswap2(src,swap_key1 >> 16,select & 0xff);
- src ^= xor_key;
- src = ((src & 0x7f) << 1) | ((src & 0x80) >> 7);
- src = bitswap2(src,swap_key2 & 0xffff,select >> 8);
- src = ((src & 0x7f) << 1) | ((src & 0x80) >> 7);
- src = bitswap1(src,swap_key2 >> 16,select >> 8);
- return src;
-}
-
-void kabuki_decode(UINT8 *src,UINT8 *dest_op,UINT8 *dest_data,
- INT32 base_addr,INT32 length,INT32 swap_key1,INT32 swap_key2,INT32 addr_key,INT32 xor_key)
-{
- INT32 A;
- INT32 select;
-
- for (A = 0;A < length;A++)
- {
- /* decode opcodes */
- select = (A + base_addr) + addr_key;
- dest_op[A] = (UINT8)bytedecode(src[A],swap_key1,swap_key2,xor_key,select);
-
- /* decode data */
- select = ((A + base_addr) ^ 0x1fc0) + addr_key + 1;
- dest_data[A] = (UINT8)bytedecode(src[A],swap_key1,swap_key2,xor_key,select);
- }
-}
-
-static void cps1_decode(INT32 swap_key1,INT32 swap_key2,INT32 addr_key,INT32 xor_key)
-{
- UINT8 *rom = CpsZRom;
- INT32 diff = nCpsZRomLen / 2;
-
- CpsZRom=rom+diff;
- kabuki_decode(rom,rom+diff,rom,0x0000,0x8000, swap_key1,swap_key2,addr_key,xor_key);
-}
-
-void wof_decode(void) { cps1_decode(0x01234567,0x54163072,0x5151,0x51); }
-void dino_decode(void) { cps1_decode(0x76543210,0x24601357,0x4343,0x43); }
-void punisher_decode(void) { cps1_decode(0x67452103,0x75316024,0x2222,0x22); }
-void slammast_decode(void) { cps1_decode(0x54321076,0x65432107,0x3131,0x19); }
diff --git a/jan/src/burn/drv/capcom/ps.cpp b/jan/src/burn/drv/capcom/ps.cpp
deleted file mode 100644
index c48eceb10..000000000
--- a/jan/src/burn/drv/capcom/ps.cpp
+++ /dev/null
@@ -1,86 +0,0 @@
-// PSound (CPS1 sound)
-#include "cps.h"
-#include "driver.h"
-extern "C" {
- #include "ym2151.h"
-}
-
-UINT8 PsndCode, PsndFade; // Sound code/fade sent to the z80 program
-
-static INT32 nSyncPeriod;
-static INT32 nSyncNext;
-
-static INT32 nCyclesDone;
-
-static void drvYM2151IRQHandler(INT32 nStatus)
-{
- if (nStatus) {
- ZetSetIRQLine(0xFF, CPU_IRQSTATUS_ACK);
- ZetRun(0x0800);
- } else {
- ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
- }
-}
-
-INT32 PsndInit()
-{
- nCpsZ80Cycles = 4000000 * 100 / nBurnFPS;
- nSyncPeriod = nCpsZ80Cycles / 32;
-
- // Init PSound z80
- if (PsndZInit()!= 0) {
- return 1;
- }
-
- // Init PSound mixing (not critical if it fails)
- PsmInit();
-
- YM2151SetIrqHandler(0, &drvYM2151IRQHandler);
-
- PsndCode = 0; PsndFade = 0;
-
- nCyclesDone = 0;
-
- return 0;
-}
-
-INT32 PsndExit()
-{
- PsmExit();
- PsndZExit();
-
- return 0;
-}
-
-INT32 PsndScan(INT32 nAction)
-{
- if (nAction & ACB_DRIVER_DATA) {
- SCAN_VAR(nCyclesDone); SCAN_VAR(nSyncNext);
- PsndZScan(nAction); // Scan Z80
- SCAN_VAR(PsndCode); SCAN_VAR(PsndFade); // Scan sound info
- }
- return 0;
-}
-
-void PsndNewFrame()
-{
- ZetNewFrame();
- PsmNewFrame();
- nSyncNext = nSyncPeriod;
-
- ZetIdle(nCyclesDone % nCpsZ80Cycles);
- nCyclesDone = 0;
-}
-
-INT32 PsndSyncZ80(INT32 nCycles)
-{
- while (nSyncNext < nCycles) {
- PsmUpdate(nSyncNext * nBurnSoundLen / nCpsZ80Cycles);
- ZetRun(nSyncNext - ZetTotalCycles());
- nSyncNext += nSyncPeriod;
- }
-
- nCyclesDone = ZetRun(nCycles - ZetTotalCycles());
-
- return 0;
-}
diff --git a/jan/src/burn/drv/capcom/ps_m.cpp b/jan/src/burn/drv/capcom/ps_m.cpp
deleted file mode 100644
index d7601d576..000000000
--- a/jan/src/burn/drv/capcom/ps_m.cpp
+++ /dev/null
@@ -1,93 +0,0 @@
-#include "cps.h"
-#include "burn_ym2151.h"
-
-// CPS1 sound Mixing
-
-INT32 bPsmOkay = 0; // 1 if the module is okay
-static INT16* WaveBuf = NULL;
-
-static INT32 nPos;
-
-INT32 PsmInit()
-{
- INT32 nMemLen, nRate, nRet;
- bPsmOkay = 0; // not OK yet
-
- if (nBurnSoundRate > 0) {
- nRate = nBurnSoundRate;
- } else {
- nRate = 11025;
- }
-
- if (BurnYM2151Init(3579540)) { // Init FM sound chip
- return 1;
- }
- BurnYM2151SetAllRoutes(0.35, BURN_SND_ROUTE_BOTH);
-
- // Allocate a buffer for the intermediate sound (between YM2151 and pBurnSoundOut)
- nMemLen = nBurnSoundLen * 2 * sizeof(INT16);
- WaveBuf = (INT16*)BurnMalloc(nMemLen);
- if (WaveBuf == NULL) {
- PsmExit();
- return 1;
- }
- memset(WaveBuf, 0, nMemLen); // Init to silence
-
- // Init ADPCM
- MSM6295ROM = CpsAd;
- if (Forgottn) {
- nRet = MSM6295Init(0, 6061, 1);
- } else {
- nRet = MSM6295Init(0, 7576, 1);
- }
- MSM6295SetRoute(0, 0.30, BURN_SND_ROUTE_BOTH);
-
- if (nRet!=0) {
- PsmExit(); return 1;
- }
-
- bPsmOkay = 1; // OK
-
- return 0;
-}
-
-INT32 PsmExit()
-{
- bPsmOkay = 0;
-
- MSM6295Exit(0);
-
- BurnFree(WaveBuf);
-
- BurnYM2151Exit(); // Exit FM sound chip
- return 0;
-}
-
-void PsmNewFrame()
-{
- nPos = 0;
-}
-
-INT32 PsmUpdate(INT32 nEnd)
-{
- if (bPsmOkay == 0 || pBurnSoundOut == NULL) {
- return 1;
- }
-
- if (nEnd <= nPos) {
- return 0;
- }
- if (nEnd > nBurnSoundLen) {
- nEnd = nBurnSoundLen;
- }
-
- // Render FM
- BurnYM2151Render(pBurnSoundOut + (nPos << 1), nEnd - nPos);
-
- // Render ADPCM
- MSM6295Render(0, pBurnSoundOut + (nPos << 1), nEnd - nPos);
-
- nPos = nEnd;
-
- return 0;
-}
diff --git a/jan/src/burn/drv/capcom/ps_z.cpp b/jan/src/burn/drv/capcom/ps_z.cpp
deleted file mode 100644
index 7d0a27466..000000000
--- a/jan/src/burn/drv/capcom/ps_z.cpp
+++ /dev/null
@@ -1,205 +0,0 @@
-#include "cps.h"
-#include "burn_ym2151.h"
-
-// PSound - Z80
-static INT32 nPsndZBank = 0;
-static UINT8 *PsndZRam = NULL;
-
-INT32 Kodb = 0;
-
-// Map in the memory for the current 0zx8000-0xc000 bank
-static INT32 PsndZBankMap()
-{
- UINT8 *Bank;
- UINT32 nOff = (nPsndZBank << 14) + 0x8000;
-
- if (nOff + 0x4000 > nCpsZRomLen) { // End of bank in out of range
- nOff = 0;
- }
-
- Bank = CpsZRom + nOff;
-
- // Read and fetch the bank
- ZetMapArea(0x8000, 0xBFFF, 0, Bank);
- ZetMapArea(0x8000, 0xBFFF, 2, Bank);
-
- return 0;
-}
-
-// PSound Z80 memory write
-void __fastcall PsndZWrite(UINT16 a, UINT8 d)
-{
- switch (a) {
- case 0xF000:
- BurnYM2151SelectRegister(d);
-// bprintf(PRINT_NORMAL, "YM2151 select -> %02X\n", d);
- break;
- case 0xF001:
- BurnYM2151WriteRegister(d);
-// bprintf(PRINT_NORMAL, "YM2151 write -> %02X\n", d);
- break;
- case 0xF002:
- MSM6295Command(0, d);
- break;
- case 0xF004: {
- INT32 nNewBank = d & 0x0f;
- if (nPsndZBank != nNewBank) {
- nPsndZBank = nNewBank;
- PsndZBankMap();
- }
- break;
- }
- case 0xF006: // ??? Enable interrupt ???
- break;
-
-#ifdef FBA_DEBUG
-// default:
-// bprintf(PRINT_NORMAL, _T("Z80 address %04X -> %02X.\n"), a, d);
-#endif
-
- }
- return;
-}
-
-void __fastcall kodbZWrite(UINT16 a, UINT8 d)
-{
- switch (a) {
- case 0xE000:
- BurnYM2151SelectRegister(d);
- break;
- case 0xE001:
- BurnYM2151WriteRegister(d);
- break;
- case 0xE400:
- MSM6295Command(0, d);
- break;
-
-#ifdef FBA_DEBUG
-// default:
-// bprintf(PRINT_NORMAL, _T("Z80 address %04X -> %02X.\n"), a, d);
-#endif
-
- }
- return;
-}
-
-// PSound Z80 memory read
-UINT8 __fastcall PsndZRead(UINT16 a)
-{
- switch (a) {
- case 0xF001:
- return BurnYM2151ReadStatus();
- case 0xF002:
- return MSM6295ReadStatus(0);
- case 0xF008:
-// bprintf(PRINT_NORMAL, " -- Sound latch read (%i).\n", PsndCode);
- return PsndCode;
- case 0xF00A:
- return PsndFade;
-
-#ifdef FBA_DEBUG
-// default:
-// bprintf(PRINT_NORMAL, _T("Z80 address %04X read.\n"), a);
-#endif
-
- }
- return 0;
-}
-
-UINT8 __fastcall kodbZRead(UINT16 a)
-{
- switch (a) {
- case 0xE001:
- return BurnYM2151ReadStatus();
- case 0xE400:
- return MSM6295ReadStatus(0);
- case 0xE800:
- return PsndCode;
-
-#ifdef FBA_DEBUG
-// default:
-// bprintf(PRINT_NORMAL, _T("Z80 address %04X read.\n"), a);
-#endif
-
- }
- return 0;
-}
-
-INT32 PsndZInit()
-{
- if (nCpsZRomLen < 0x8000) { // Not enough Z80 Data
- return 1;
- }
- if (CpsZRom == NULL) {
- return 1;
- }
-
- PsndZRam = (UINT8 *)BurnMalloc(0x800);
- if (PsndZRam == NULL) {
- return 1;
- }
-
- ZetInit(0);
- ZetOpen(0);
-
- if (Kodb) {
- ZetSetReadHandler(kodbZRead);
- ZetSetWriteHandler(kodbZWrite);
- } else {
- ZetSetReadHandler(PsndZRead);
- ZetSetWriteHandler(PsndZWrite);
- }
-
- // Read and fetch first 0x8000 of Rom
- ZetMapArea(0x0000,0x7fff,0,CpsZRom);
- ZetMapArea(0x0000,0x7fff,2,CpsZRom);
-
- // Map first Bank of Rom to 0x8000-0xc000
- nPsndZBank=0;
- PsndZBankMap();
-
- // Ram
- ZetMapArea(0xd000,0xd7ff,0,PsndZRam);
- ZetMapArea(0xd000,0xd7ff,1,PsndZRam);
- ZetMapArea(0xd000,0xd7ff,2,PsndZRam);
-
- // Sound chip interfaces
- ZetMemCallback(0xf000,0xffff,0);
- ZetMemCallback(0xf000,0xffff,1);
-
- // In case it tries to fetch other areas
- ZetMapArea(0xc000,0xcfff,2,CpsZRom);
- ZetMapArea(0xd800,0xffff,2,CpsZRom);
- ZetClose();
-
- return 0;
-}
-
-INT32 PsndZExit()
-{
- BurnFree(PsndZRam);
-
- ZetExit();
- return 0;
-}
-
-// Scan the current PSound z80 state
-INT32 PsndZScan(INT32 nAction)
-{
- struct BurnArea ba;
- ZetScan(nAction);
-
- MSM6295Scan(0, nAction);
- BurnYM2151Scan(nAction);
-
- SCAN_VAR(nPsndZBank);
-
- // Scan Ram
- memset(&ba, 0, sizeof(ba));
- ba.szName = "Z80 RAM";
- ba.Data = PsndZRam;
- ba.nLen = 0x800;
- BurnAcb(&ba);
-
- return 0;
-}
diff --git a/jan/src/burn/drv/capcom/qs.cpp b/jan/src/burn/drv/capcom/qs.cpp
deleted file mode 100644
index 907de46ff..000000000
--- a/jan/src/burn/drv/capcom/qs.cpp
+++ /dev/null
@@ -1,102 +0,0 @@
-#include "cps.h"
-// QSound
-
-static INT32 nQsndCyclesExtra;
-
-static INT32 qsndTimerOver(INT32, INT32)
-{
-// bprintf(PRINT_NORMAL, _T(" - IRQ -> 1.\n"));
- ZetSetIRQLine(0xFF, CPU_IRQSTATUS_HOLD);
-
- return 0;
-}
-
-INT32 QsndInit()
-{
- INT32 nRate;
-
- // Init QSound z80
- if (QsndZInit()) {
- return 1;
- }
- BurnTimerInit(qsndTimerOver, NULL);
-
- if (Cps1Qs == 1) {
- nCpsZ80Cycles = 8000000 * 100 / nBurnFPS;
- BurnTimerAttachZet(8000000);
- } else {
- nCpsZ80Cycles = 8000000 * 100 / nBurnFPS;
- BurnTimerAttachZet(8000000);
- }
-
- if (nBurnSoundRate >= 0) {
- nRate = nBurnSoundRate;
- } else {
- nRate = 11025;
- }
-
- QscInit(nRate); // Init QSound chip
-
- return 0;
-}
-
-void QsndSetRoute(INT32 nIndex, double nVolume, INT32 nRouteDir)
-{
- QscSetRoute(nIndex, nVolume, nRouteDir);
-}
-
-void QsndReset()
-{
- ZetOpen(0);
- BurnTimerReset();
- BurnTimerSetRetrig(0, 1.0 / 252.0);
- ZetClose();
-
- nQsndCyclesExtra = 0;
-}
-
-void QsndExit()
-{
- QscExit(); // Exit QSound chip
- QsndZExit();
-}
-
-INT32 QsndScan(INT32 nAction)
-{
- if (nAction & ACB_DRIVER_DATA) {
- QsndZScan(nAction); // Scan Z80
- QscScan(nAction); // Scan QSound Chip
- }
-
- return 0;
-}
-
-void QsndNewFrame()
-{
- ZetNewFrame();
-
- ZetOpen(0);
- ZetIdle(nQsndCyclesExtra);
-
- QscNewFrame();
-}
-
-void QsndEndFrame()
-{
- BurnTimerEndFrame(nCpsZ80Cycles);
- if (pBurnSoundOut) QscUpdate(nBurnSoundLen);
-
- nQsndCyclesExtra = ZetTotalCycles() - nCpsZ80Cycles;
- ZetClose();
-}
-
-void QsndSyncZ80()
-{
- int nCycles = (INT64)SekTotalCycles() * nCpsZ80Cycles / nCpsCycles;
-
- if (nCycles <= ZetTotalCycles()) {
- return;
- }
-
- BurnTimerUpdate(nCycles);
-}
diff --git a/jan/src/burn/drv/capcom/qs_c.cpp b/jan/src/burn/drv/capcom/qs_c.cpp
deleted file mode 100644
index f3e28cdf3..000000000
--- a/jan/src/burn/drv/capcom/qs_c.cpp
+++ /dev/null
@@ -1,480 +0,0 @@
-// QSound - emulator for the QSound Chip
-
-#include
-#include "cps.h"
-#include "burn_sound.h"
-
-static const INT32 nQscClock = 4000000;
-static const INT32 nQscClockDivider = 166;
-
-static INT32 nQscRate = 0;
-INT32 Mmatrix; // global
-
-static INT32 Tams = -1;
-static INT32* Qs_s = NULL;
-
-static INT32 nPos;
-
-struct QChan {
- UINT8 bKey; // 1 if channel is playing
- INT8 nBank; // Bank we are currently playing a sample from
-
- ALIGN_VAR(8) INT8* PlayBank; // Pointer to current bank
-
- INT32 nPlayStart; // Start of being played
- INT32 nStart; // Start of sample 16.12
- INT32 nEnd; // End of sample 16.12
- INT32 nLoop; // Loop offset from end
- INT32 nPos; // Current position within the bank 16.12
- INT32 nAdvance; // Sample size
-
- INT32 nMasterVolume; // Master volume for the channel
- INT32 nVolume[2]; // Left & right side volumes (panning)
-
- INT32 nPitch; // Playback frequency
-
- INT8 nEndBuffer[8]; // Buffer to enable correct cubic interpolation
-};
-
-static struct QChan QChan[16];
-
-static INT32 PanningVolumes[33];
-
-static double QsndGain[2];
-static INT32 QsndOutputDir[2];
-
-static void MapBank(struct QChan* pc)
-{
- UINT32 nBank;
-
- nBank = (pc->nBank & 0x7F) << 16; // Banks are 0x10000 samples long
-
- // Confirm whole bank is in range:
- // If bank is out of range use bank 0 instead
- if ((nBank + 0x10000) > nCpsQSamLen) {
- nBank = 0;
- }
- pc->PlayBank = (INT8*)CpsQSam + nBank;
-}
-
-static void UpdateEndBuffer(struct QChan* pc)
-{
- if (pc->bKey) {
- // prepare a buffer to correctly interpolate the last 4 samples
- if (nInterpolation >= 3) {
- for (INT32 i = 0; i < 4; i++) {
- pc->nEndBuffer[i] = pc->PlayBank[(pc->nEnd >> 12) - 4 + i];
- }
-
- if (pc->nLoop) {
- for (INT32 i = 0, j = 0; i < 4; i++, j++) {
- if (j >= (pc->nLoop >> 12)) {
- j = 0;
- }
- pc->nEndBuffer[i + 4] = pc->PlayBank[((pc->nEnd - pc->nLoop) >> 12) + j];
- }
- } else {
- for (INT32 i = 0; i < 4; i++) {
- pc->nEndBuffer[i + 4] = pc->nEndBuffer[3];
- }
- }
- }
- }
-}
-
-static void CalcAdvance(struct QChan* pc)
-{
- if (nQscRate) {
- pc->nAdvance = (INT64)pc->nPitch * nQscClock / nQscClockDivider / nQscRate;
- }
-}
-
-void QscReset()
-{
- memset(QChan, 0, sizeof(QChan));
-
- // Point all to bank 0
- for (INT32 i = 0; i < 16; i++) {
- QChan[i].PlayBank = (INT8*)CpsQSam;
- }
-}
-
-void QscExit()
-{
- nQscRate = 0;
-
- BurnFree(Qs_s);
- Tams = -1;
-}
-
-INT32 QscInit(INT32 nRate)
-{
- nQscRate = nRate;
-
- for (INT32 i = 0; i < 33; i++) {
- PanningVolumes[i] = (INT32)((256.0 / sqrt(32.0)) * sqrt((double)i));
- }
-
- QsndGain[BURN_SND_QSND_OUTPUT_1] = 1.00;
- QsndGain[BURN_SND_QSND_OUTPUT_2] = 1.00;
- QsndOutputDir[BURN_SND_QSND_OUTPUT_1] = BURN_SND_ROUTE_LEFT;
- QsndOutputDir[BURN_SND_QSND_OUTPUT_2] = BURN_SND_ROUTE_RIGHT;
-
- QscReset();
-
- return 0;
-}
-
-void QscSetRoute(INT32 nIndex, double nVolume, INT32 nRouteDir)
-{
- QsndGain[nIndex] = nVolume;
- QsndOutputDir[nIndex] = nRouteDir;
-}
-
-INT32 QscScan(INT32 nAction)
-{
- SCAN_VAR(QChan);
-
- if (nAction & ACB_WRITE) {
- // Update bank pointers with new banks, and recalc nAdvance
- for (INT32 i = 0; i < 16; i++) {
- MapBank(QChan + i);
- CalcAdvance(QChan + i);
- }
- }
-
- return 0;
-}
-
-void QscNewFrame()
-{
- nPos = 0;
-}
-
-static inline void QscSyncQsnd()
-{
- if (pBurnSoundOut) QscUpdate(ZetTotalCycles() * nBurnSoundLen / nCpsZ80Cycles);
-}
-
-void QscWrite(INT32 a, INT32 d)
-{
- struct QChan* pc;
- INT32 nChanNum, r;
-
- // unknown
- if (a >= 0x90) {
-// bprintf(PRINT_NORMAL, "QSound: reg 0x%02X -> 0x%02X.\n", a, d);
- return;
- }
-
- QscSyncQsnd();
-
- if (a >= 0x80) { // Set panning for channel
- INT32 nPan;
-
- nChanNum = a & 15;
-
- pc = QChan + nChanNum; // Find channel
- nPan = (d - 0x10) & 0x3F; // nPan = 0x00 to 0x20 now
- if (nPan > 0x20) {
- nPan = 0x20;
- }
-
- //bprintf(PRINT_NORMAL, _T("QSound: ch#%i pan -> 0x%X\n"), nChanNum, nPan);
-
- if (Mmatrix && nPan == 0x00) {
- nPan = 0x10; // Fixes all sfx that are hard-panned to the right. (Mars Matrix only)
- }
-
- pc->nVolume[0] = PanningVolumes[0x20 - nPan];
- pc->nVolume[1] = PanningVolumes[0x00 + nPan];
-
- return;
- }
-
- // Get channel and register number
- nChanNum = (a >> 3) & 15;
- r = a & 7;
-
- // Pointer to channel info
- pc = QChan + nChanNum;
-
- switch (r) {
- case 0: { // Set bank
- // Strange but true
- pc = QChan + ((nChanNum + 1) & 15);
- pc->nBank = d;
- MapBank(pc);
- UpdateEndBuffer(pc);
- break;
- }
- case 1: { // Set sample start offset
- pc->nStart = d << 12;
- break;
- }
- case 2: {
- pc->nPitch = d;
- CalcAdvance(pc);
-
- if (d == 0) { // Key off; stop playing
- pc->bKey = 0;
- }
-
- break;
- }
-#if 0
- case 3: {
- break;
- }
-#endif
- case 4: { // Set sample loop offset
- pc->nLoop = d << 12;
- UpdateEndBuffer(pc);
- break;
- }
- case 5: { // Set sample end offset
- pc->nEnd = d << 12;
- UpdateEndBuffer(pc);
- break;
- }
- case 6: { // Set volume
- pc->nMasterVolume = d;
-
- if (d == 0) {
- pc->bKey = 0;
- } else {
- if (pc->bKey == 0) { // Key on; play sample
- pc->nPlayStart = pc->nStart;
-
- pc->nPos = 0;
- pc->bKey = 3;
- UpdateEndBuffer(pc);
- }
- }
- break;
- }
-#if 0
- case 7: {
- break;
- }
-#endif
-
- }
-}
-
-INT32 QscUpdate(INT32 nEnd)
-{
- INT32 nLen;
-
- if (nEnd > nBurnSoundLen) {
- nEnd = nBurnSoundLen;
- }
-
- nLen = nEnd - nPos;
-
- if (nLen <= 0) {
- return 0;
- }
-
- if (Tams < nLen) {
- BurnFree(Qs_s);
- Tams = nLen;
- Qs_s = (INT32*)BurnMalloc(sizeof(INT32) * 2 * Tams);
- }
-
- memset(Qs_s, 0, nLen * 2 * sizeof(INT32));
-
- if (nInterpolation < 3) {
-
- // Go through all channels
- for (INT32 c = 0; c < 16; c++) {
-
- // If the channel is playing, add the samples to the buffer
- if (QChan[c].bKey) {
- INT32 VolL = (QChan[c].nMasterVolume * QChan[c].nVolume[0]) >> 8;
- INT32 VolR = (QChan[c].nMasterVolume * QChan[c].nVolume[1]) >> 8;
- INT32* pTemp = Qs_s;
- INT32 i = nLen;
- INT32 s, p;
-
- if (QChan[c].bKey & 2) {
- QChan[c].bKey &= ~2;
- QChan[c].nPos = QChan[c].nPlayStart;
- }
-
- while (i--) {
-
- p = (QChan[c].nPos >> 12) & 0xFFFF;
-
- // Check for end of sample
- if (QChan[c].nPos >= (QChan[c].nEnd - 0x01000)) {
- if (QChan[c].nLoop) { // Loop sample
- if (QChan[c].nPos < QChan[c].nEnd) {
- QChan[c].nEndBuffer[0] = QChan[c].PlayBank[(QChan[c].nEnd - QChan[c].nLoop) >> 12];
- } else {
- QChan[c].nPos = QChan[c].nEnd - QChan[c].nLoop + (QChan[c].nPos & 0x0FFF);
- p = (QChan[c].nPos >> 12) & 0xFFFF;
- }
- } else {
- if (QChan[c].nPos < QChan[c].nEnd) {
- QChan[c].nEndBuffer[0] = QChan[c].PlayBank[p];
- } else {
- QChan[c].bKey = 0; // Quit playing
- break;
- }
- }
- } else {
- QChan[c].nEndBuffer[0] = QChan[c].PlayBank[p + 1];
- }
-
- // Interpolate sample
- s = QChan[c].PlayBank[p] * (1 << 6) + ((QChan[c].nPos) & ((1 << 12) - 1)) * (QChan[c].nEndBuffer[0] - QChan[c].PlayBank[p]) / (1 << 6);
-
- // Add to the sound currently in the buffer
- pTemp[0] += (s * VolL) >> 3;
- pTemp[1] += (s * VolR) >> 3;
-
- pTemp += 2;
-
- QChan[c].nPos += QChan[c].nAdvance; // increment sample position based on pitch
- }
- }
- }
-
- INT16 *pDest = pBurnSoundOut + (nPos << 1);
- INT32 *pSrc = Qs_s;
- for (INT32 i = 0; i < nLen; i++) {
- INT32 nLeftSample = 0, nRightSample = 0;
-
- if ((QsndOutputDir[BURN_SND_QSND_OUTPUT_1] & BURN_SND_ROUTE_LEFT) == BURN_SND_ROUTE_LEFT) {
- nLeftSample += (INT32)((pSrc[(i << 1) + 0] >> 8) * QsndGain[BURN_SND_QSND_OUTPUT_1]);
- }
- if ((QsndOutputDir[BURN_SND_QSND_OUTPUT_1] & BURN_SND_ROUTE_RIGHT) == BURN_SND_ROUTE_RIGHT) {
- nRightSample += (INT32)((pSrc[(i << 1) + 0] >> 8) * QsndGain[BURN_SND_QSND_OUTPUT_1]);
- }
-
- if ((QsndOutputDir[BURN_SND_QSND_OUTPUT_2] & BURN_SND_ROUTE_LEFT) == BURN_SND_ROUTE_LEFT) {
- nLeftSample += (INT32)((pSrc[(i << 1) + 1] >> 8) * QsndGain[BURN_SND_QSND_OUTPUT_2]);
- }
- if ((QsndOutputDir[BURN_SND_QSND_OUTPUT_2] & BURN_SND_ROUTE_RIGHT) == BURN_SND_ROUTE_RIGHT) {
- nRightSample += (INT32)((pSrc[(i << 1) + 1] >> 8) * QsndGain[BURN_SND_QSND_OUTPUT_2]);
- }
-
- pDest[(i << 1) + 0] = BURN_SND_CLIP(nLeftSample);
- pDest[(i << 1) + 1] = BURN_SND_CLIP(nRightSample);
- }
- nPos = nEnd;
-
- return 0;
- }
-
- // Go through all channels
- for (INT32 c = 0; c < 16; c++) {
-
- // If the channel is playing, add the samples to the buffer
- if (QChan[c].bKey) {
- INT32 VolL = (QChan[c].nMasterVolume * QChan[c].nVolume[0]) >> 11;
- INT32 VolR = (QChan[c].nMasterVolume * QChan[c].nVolume[1]) >> 11;
- INT32* pTemp = Qs_s;
- INT32 i = nLen;
-
- // handle 1st sample
- if (QChan[c].bKey & 2) {
- while (QChan[c].nPos < 0x1000 && i) {
- INT32 p = QChan[c].nPlayStart >> 12;
- INT32 s = INTERPOLATE4PS_CUSTOM(QChan[c].nPos,
- 0,
- QChan[c].PlayBank[p + 0],
- QChan[c].PlayBank[p + 1],
- QChan[c].PlayBank[p + 2],
- 256);
-
- pTemp[0] += s * VolL;
- pTemp[1] += s * VolR;
-
- QChan[c].nPos += QChan[c].nAdvance; // increment sample position based on pitch
-
- pTemp += 2;
- i--;
- }
- if (i > 0) {
- QChan[c].bKey &= ~2;
- QChan[c].nPos = (QChan[c].nPos & 0x0FFF) + QChan[c].nPlayStart;
- }
- }
-
- while (i > 0) {
- INT32 s, p;
-
- // Check for end of sample
- if (QChan[c].nPos >= (QChan[c].nEnd - 0x3000)) {
- if (QChan[c].nPos < QChan[c].nEnd) {
- INT32 nIndex = 4 - ((QChan[c].nEnd - QChan[c].nPos) >> 12);
- s = INTERPOLATE4PS_CUSTOM((QChan[c].nPos) & ((1 << 12) - 1),
- QChan[c].nEndBuffer[nIndex + 0],
- QChan[c].nEndBuffer[nIndex + 1],
- QChan[c].nEndBuffer[nIndex + 2],
- QChan[c].nEndBuffer[nIndex + 3],
- 256);
- } else {
- if (QChan[c].nLoop) { // Loop sample
- if (QChan[c].nLoop <= 0x1000) { // Don't play, but leave bKey on
- QChan[c].nPos = QChan[c].nEnd - 0x1000;
- break;
- }
- QChan[c].nPos -= QChan[c].nLoop;
- continue;
- } else {
- QChan[c].bKey = 0; // Stop playing
- break;
- }
- }
- } else {
- p = (QChan[c].nPos >> 12) & 0xFFFF;
- s = INTERPOLATE4PS_CUSTOM((QChan[c].nPos) & ((1 << 12) - 1),
- QChan[c].PlayBank[p + 0],
- QChan[c].PlayBank[p + 1],
- QChan[c].PlayBank[p + 2],
- QChan[c].PlayBank[p + 3],
- 256);
- }
-
- // Add to the sound currently in the buffer
- pTemp[0] += s * VolL;
- pTemp[1] += s * VolR;
-
- pTemp += 2;
-
- QChan[c].nPos += QChan[c].nAdvance; // increment sample position based on pitch
-
- i--;
- }
- }
- }
-
- INT16 *pDest = pBurnSoundOut + (nPos << 1);
- INT32 *pSrc = Qs_s;
- for (INT32 i = 0; i < nLen; i++) {
- INT32 nLeftSample = 0, nRightSample = 0;
-
- if ((QsndOutputDir[BURN_SND_QSND_OUTPUT_1] & BURN_SND_ROUTE_LEFT) == BURN_SND_ROUTE_LEFT) {
- nLeftSample += (INT32)((pSrc[(i << 1) + 0] >> 8) * QsndGain[BURN_SND_QSND_OUTPUT_1]);
- }
- if ((QsndOutputDir[BURN_SND_QSND_OUTPUT_1] & BURN_SND_ROUTE_RIGHT) == BURN_SND_ROUTE_RIGHT) {
- nRightSample += (INT32)((pSrc[(i << 1) + 0] >> 8) * QsndGain[BURN_SND_QSND_OUTPUT_1]);
- }
-
- if ((QsndOutputDir[BURN_SND_QSND_OUTPUT_2] & BURN_SND_ROUTE_LEFT) == BURN_SND_ROUTE_LEFT) {
- nLeftSample += (INT32)((pSrc[(i << 1) + 1] >> 8) * QsndGain[BURN_SND_QSND_OUTPUT_2]);
- }
- if ((QsndOutputDir[BURN_SND_QSND_OUTPUT_2] & BURN_SND_ROUTE_RIGHT) == BURN_SND_ROUTE_RIGHT) {
- nRightSample += (INT32)((pSrc[(i << 1) + 1] >> 8) * QsndGain[BURN_SND_QSND_OUTPUT_2]);
- }
-
- pDest[(i << 1) + 0] = BURN_SND_CLIP(nLeftSample);
- pDest[(i << 1) + 1] = BURN_SND_CLIP(nRightSample);
- }
- nPos = nEnd;
-
- return 0;
-}
diff --git a/jan/src/burn/drv/capcom/qs_z.cpp b/jan/src/burn/drv/capcom/qs_z.cpp
deleted file mode 100644
index 8429e8965..000000000
--- a/jan/src/burn/drv/capcom/qs_z.cpp
+++ /dev/null
@@ -1,140 +0,0 @@
-#include "cps.h"
-// QSound - Z80
-
-static INT32 nQsndZBank = 0;
-
-// Map in the memory for the current 0x8000-0xc000 music bank
-static INT32 QsndZBankMap()
-{
- UINT32 nOff;
- UINT8* Bank;
- nOff = nQsndZBank << 14;
- nOff += 0x8000;
-
- if (Cps1Qs == 0) {
- if (nOff + 0x4000 > nCpsZRomLen) { // End of bank is out of range
- nOff = 0;
- }
- Bank = CpsZRom + nOff;
- } else {
- if (nOff + 0x4000 > (nCpsZRomLen / 2)) {
- nOff = 0;
- }
- Bank = CpsZRom - (nCpsZRomLen / 2) + nOff;
- }
-
- // Read and fetch the bank
- ZetMapArea(0x8000, 0xbfff, 0, Bank);
- if (Cps1Qs == 0) {
- ZetMapArea(0x8000, 0xbfff, 2, Bank, CpsZRom + nOff);
- } else {
- ZetMapArea(0x8000, 0xbfff, 2, Bank);
- }
-
- return 0;
-}
-
-static UINT8 QscCmd[2] = {0, 0};
-
-void __fastcall QsndZWrite(UINT16 a, UINT8 d)
-{
- if (a == 0xd000) {
- QscCmd[0] = d;
- return;
- }
- if (a == 0xd001) {
- QscCmd[1] = d;
- return;
- }
- if (a == 0xd002) {
- QscWrite(d, (QscCmd[0] << 8) | QscCmd[1]);
-// bprintf(PRINT_NORMAL, _T("QSound command %02X %04X sent.\n"), d, (QscCmd[0] << 8) | QscCmd[1]);
- return;
- }
- if (a == 0xd003) {
- INT32 nNewBank = d & 0x0f;
- if (nQsndZBank != nNewBank) {
- nQsndZBank = nNewBank;
- QsndZBankMap();
- }
- }
-}
-
-UINT8 __fastcall QsndZRead(UINT16 a)
-{
- if (a == 0xd007) { // return ready all the time
- return 0x80;
- }
- return 0;
-}
-
-INT32 QsndZInit()
-{
- if (nCpsZRomLen < 0x8000) { // Not enough Z80 Data
- return 1;
- }
- if (CpsZRom == NULL) {
- return 1;
- }
-
- ZetInit(0);
- ZetOpen(0);
-
- ZetSetReadHandler(QsndZRead);
- ZetSetWriteHandler(QsndZWrite);
-
- // Read and fetch first 0x8000 of Rom
- if (Cps1Qs) {
- ZetMapArea(0x0000, 0x7FFF, 0, CpsZRom - (nCpsZRomLen / 2));
- ZetMapArea(0x0000, 0x7FFF, 2, CpsZRom, CpsZRom - (nCpsZRomLen / 2)); // If it tries to fetch this area
- } else {
- ZetMapArea(0x0000, 0x7FFF, 0 ,CpsZRom);
- ZetMapArea(0x0000, 0x7FFF, 2, CpsZRom);
- }
-
- // Map first Bank of Rom
- nQsndZBank = 0;
- QsndZBankMap();
-
- ZetMapArea(0xC000, 0xCFFF, 0, CpsZRamC0);
- ZetMapArea(0xC000, 0xCFFF, 1, CpsZRamC0);
- ZetMapArea(0xC000, 0xCFFF, 2, CpsZRamC0);
-
- ZetMemCallback(0xD000, 0xEFFF, 0);
- ZetMemCallback(0xD000, 0xEFFF, 1);
-
- if (Cps1Qs) {
- ZetMapArea(0xD000, 0xEFFF, 2, CpsZRom, CpsZRom - (nCpsZRomLen / 2)); // If it tries to fetch this area
- } else {
- ZetMapArea(0xD000, 0xEFFF, 2, CpsZRom);
- }
-
- ZetMapArea(0xF000, 0xFFFF, 0, CpsZRamF0);
- ZetMapArea(0xF000, 0xFFFF, 1, CpsZRamF0);
- ZetMapArea(0xF000, 0xFFFF, 2, CpsZRamF0);
-
- ZetClose();
-
- return 0;
-}
-
-INT32 QsndZExit()
-{
- ZetExit();
- return 0;
-}
-
-// Scan the current QSound z80 state
-INT32 QsndZScan(INT32 nAction)
-{
- ZetScan(nAction); // Scan Z80
- SCAN_VAR(nQsndZBank);
-
- if (nAction & ACB_WRITE) { // If write, bank could have changed
- ZetOpen(0);
- QsndZBankMap();
- ZetClose();
- }
-
- return 0;
-}
diff --git a/jan/src/burn/drv/capcom/sf2mdt_snd.cpp b/jan/src/burn/drv/capcom/sf2mdt_snd.cpp
deleted file mode 100644
index 4d6a1f847..000000000
--- a/jan/src/burn/drv/capcom/sf2mdt_snd.cpp
+++ /dev/null
@@ -1,249 +0,0 @@
-#include "cps.h"
-#include "burn_ym2151.h"
-#include "msm5205.h"
-
-// sf2mdt_snd.cpp
-// Sound support for games using similar sound to Street Fighter 2: Magic Delta Turbo
-// 1 x YM2151 and 2 x MSM5205
-
-static UINT8 *Sf2mdtZ80Ram = NULL;
-static INT32 Sf2mdtZ80BankAddress = 0;
-static INT32 Sf2mdtSoundLatch = 0;
-static INT32 Sf2mdtMSM5205Interleave = 0;
-static INT32 Sf2mdtSampleBuffer1 = 0;
-static INT32 Sf2mdtSampleBuffer2 = 0;
-static INT32 Sf2mdtSampleSelect1 = 0;
-static INT32 Sf2mdtSampleSelect2 = 0;
-static INT32 Sf2mdtSoundPos = 0;
-static INT32 Sf2mdtCyclesPerSegment = 0;
-static INT32 Sf2mdtNumZ80Banks = 0;
-
-void Sf2mdtSoundCommand(UINT16 d)
-{
- INT32 nCyclesToDo = ((INT64)SekTotalCycles() * nCpsZ80Cycles / nCpsCycles) - ZetTotalCycles();
- INT32 nEnd = Sf2mdtSoundPos + (INT64)Sf2mdtMSM5205Interleave * nCyclesToDo / nCpsZ80Cycles;
-
- if (nEnd == Sf2mdtSoundPos) nEnd += 1;
-
- for (INT32 i = Sf2mdtSoundPos; i < nEnd; i++) {
- ZetRun(Sf2mdtCyclesPerSegment);
- MSM5205Update();
- Sf2mdtSoundPos = i;
- }
-
- Sf2mdtSoundLatch = d & 0xff;
- ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
-}
-
-UINT8 __fastcall Sf2mdtZ80Read(UINT16 a)
-{
- switch (a) {
- case 0xd801: {
- return BurnYM2151ReadStatus();
- }
-
- case 0xdc00: {
- ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
- return Sf2mdtSoundLatch;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Read => %04X\n"), a);
- }
- }
-
- return 0;
-}
-
-void __fastcall Sf2mdtZ80Write(UINT16 a, UINT8 d)
-{
- switch (a) {
- case 0xd800: {
- BurnYM2151SelectRegister(d);
- return;
- }
-
- case 0xd801: {
- BurnYM2151WriteRegister(d);
- return;
- }
-
- case 0xe000: {
- MSM5205SetRoute(0, (d & 0x20) ? 0 : 0.25, BURN_SND_ROUTE_BOTH);
- MSM5205SetRoute(1, (d & 0x10) ? 0 : 0.25, BURN_SND_ROUTE_BOTH);
-
- Sf2mdtZ80BankAddress = (d & Sf2mdtNumZ80Banks) * 0x4000;
- ZetMapArea(0x8000, 0xbfff, 0, CpsZRom + Sf2mdtZ80BankAddress);
- ZetMapArea(0x8000, 0xbfff, 2, CpsZRom + Sf2mdtZ80BankAddress);
- return;
- }
-
- case 0xe400: {
- Sf2mdtSampleBuffer1 = d;
- return;
- }
-
- case 0xe800: {
- Sf2mdtSampleBuffer2 = d;
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Write => %04X, %02X\n"), a, d);
- }
- }
-}
-
-inline static INT32 Sf2mdtSynchroniseStream(INT32 nSoundRate)
-{
- return (INT64)((double)ZetTotalCycles() * nSoundRate / 3579540);
-}
-
-static void Sf2mdtMSM5205Vck0()
-{
- MSM5205DataWrite(0, Sf2mdtSampleBuffer1 & 0x0f);
- Sf2mdtSampleBuffer1 >>= 4;
- Sf2mdtSampleSelect1 ^= 1;
- if (Sf2mdtSampleSelect1 == 0) {
- ZetNmi();
- }
-}
-
-static void Sf2mdtMSM5205Vck1()
-{
- MSM5205DataWrite(1, Sf2mdtSampleBuffer2 & 0x0f);
- Sf2mdtSampleBuffer2 >>= 4;
- Sf2mdtSampleSelect2 ^= 1;
-}
-
-INT32 Sf2mdtSoundInit()
-{
- Sf2mdtZ80Ram = (UINT8*)BurnMalloc(0x800);
-
- ZetInit(0);
- ZetOpen(0);
- ZetSetReadHandler(Sf2mdtZ80Read);
- ZetSetWriteHandler(Sf2mdtZ80Write);
- ZetMapArea(0x0000, 0x7fff, 0, CpsZRom + 0x00000);
- ZetMapArea(0x0000, 0x7fff, 2, CpsZRom + 0x00000);
- ZetMapArea(0x8000, 0xbfff, 0, CpsZRom + 0x08000);
- ZetMapArea(0x8000, 0xbfff, 2, CpsZRom + 0x08000);
- ZetMapArea(0xd000, 0xd7ff, 0, Sf2mdtZ80Ram );
- ZetMapArea(0xd000, 0xd7ff, 1, Sf2mdtZ80Ram );
- ZetMapArea(0xd000, 0xd7ff, 2, Sf2mdtZ80Ram );
- ZetClose();
-
- BurnYM2151Init(3579540);
- BurnYM2151SetAllRoutes(0.35, BURN_SND_ROUTE_BOTH);
-
- MSM5205Init(0, Sf2mdtSynchroniseStream, 24000000 / 64, Sf2mdtMSM5205Vck0, MSM5205_S96_4B, 1);
- MSM5205Init(1, Sf2mdtSynchroniseStream, 24000000 / 64, Sf2mdtMSM5205Vck1, MSM5205_S96_4B, 1);
- MSM5205SetRoute(0, 0.25, BURN_SND_ROUTE_BOTH);
- MSM5205SetRoute(1, 0.25, BURN_SND_ROUTE_BOTH);
-
- nCpsZ80Cycles = 3579540 * 100 / nBurnFPS;
-
- Sf2mdtNumZ80Banks = (nCpsZRomLen / 0x4000) - 1;
-
- return 0;
-}
-
-INT32 Sf2mdtSoundReset()
-{
- ZetOpen(0);
- ZetReset();
- BurnYM2151Reset();
- MSM5205Reset();
- Sf2mdtZ80BankAddress = 0x8000;
- ZetMapArea(0x8000, 0xbfff, 0, CpsZRom + Sf2mdtZ80BankAddress);
- ZetMapArea(0x8000, 0xbfff, 2, CpsZRom + Sf2mdtZ80BankAddress);
- ZetClose();
-
- Sf2mdtSoundLatch = 0;
- Sf2mdtSampleBuffer1 = 0;
- Sf2mdtSampleBuffer2 = 0;
- Sf2mdtSampleSelect1 = 0;
- Sf2mdtSampleSelect2 = 0;
-
- return 0;
-}
-
-INT32 Sf2mdtSoundExit()
-{
- ZetExit();
- BurnYM2151Exit();
- MSM5205Exit();
-
- BurnFree(Sf2mdtZ80Ram);
-
- Sf2mdtZ80BankAddress = 0;
- Sf2mdtSoundLatch = 0;
- Sf2mdtMSM5205Interleave = 0;
- Sf2mdtSampleBuffer1 = 0;
- Sf2mdtSampleBuffer2 = 0;
- Sf2mdtSampleSelect1 = 0;
- Sf2mdtSampleSelect2 = 0;
- Sf2mdtCyclesPerSegment = 0;
- Sf2mdtNumZ80Banks = 0;
-
- nCpsZ80Cycles = 0;
-
- return 0;
-}
-
-void Sf2mdtSoundFrameStart()
-{
- Sf2mdtMSM5205Interleave = MSM5205CalcInterleave(0, 3579540);
- Sf2mdtSoundPos = 0;
- Sf2mdtCyclesPerSegment = (INT64)nCpsZ80Cycles / Sf2mdtMSM5205Interleave;
-
- ZetNewFrame();
- ZetOpen(0);
-}
-
-void Sf2mdtSoundFrameEnd()
-{
- for (INT32 i = Sf2mdtSoundPos; i < Sf2mdtMSM5205Interleave; i++) {
- ZetRun(Sf2mdtCyclesPerSegment);
- MSM5205Update();
- Sf2mdtSoundPos = i;
- }
- ZetRun(nCpsZ80Cycles - ZetTotalCycles());
-
- if (pBurnSoundOut) {
- BurnYM2151Render(pBurnSoundOut, nBurnSoundLen);
- MSM5205Render(0, pBurnSoundOut, nBurnSoundLen);
- MSM5205Render(1, pBurnSoundOut, nBurnSoundLen);
- }
- ZetClose();
-}
-
-INT32 Sf2mdtScanSound(INT32 nAction, INT32 *pnMin)
-{
- if (nAction & ACB_MEMORY_RAM) {
- struct BurnArea ba;
- memset(&ba, 0, sizeof(ba));
-
- ba.Data = Sf2mdtZ80Ram;
- ba.nLen = 0x00800;
- ba.szName = "Sf2mdtZ80Ram";
- BurnAcb(&ba);
- }
-
- if (nAction & ACB_DRIVER_DATA) {
- ZetScan(nAction);
-
- BurnYM2151Scan(nAction);
- MSM5205Scan(nAction, pnMin);
-
- SCAN_VAR(Sf2mdtZ80BankAddress);
- SCAN_VAR(Sf2mdtSoundLatch);
- SCAN_VAR(Sf2mdtSampleBuffer1);
- SCAN_VAR(Sf2mdtSampleBuffer2);
- SCAN_VAR(Sf2mdtSampleSelect1);
- SCAN_VAR(Sf2mdtSampleSelect2);
- SCAN_VAR(Sf2mdtSoundPos);
- }
-
- return 0;
-}
diff --git a/jan/src/burn/drv/cave/cave.cpp b/jan/src/burn/drv/cave/cave.cpp
deleted file mode 100644
index 5419c2611..000000000
--- a/jan/src/burn/drv/cave/cave.cpp
+++ /dev/null
@@ -1,47 +0,0 @@
-#include "cave.h"
-
-INT32 nCaveXSize = 0, nCaveYSize = 0;
-INT32 nCaveXOffset = 0, nCaveYOffset = 0;
-INT32 nCaveExtraXOffset = 0, nCaveExtraYOffset = 0;
-INT32 nCaveRowModeOffset = 0;
-
-INT32 CaveScanGraphics()
-{
- SCAN_VAR(nCaveXOffset);
- SCAN_VAR(nCaveYOffset);
-
- SCAN_VAR(nCaveTileBank);
-
- SCAN_VAR(nCaveSpriteBank);
- SCAN_VAR(nCaveSpriteBankDelay);
-
- for (INT32 i = 0; i < 4; i++) {
- SCAN_VAR(CaveTileReg[i][0]);
- SCAN_VAR(CaveTileReg[i][1]);
- SCAN_VAR(CaveTileReg[i][2]);
- }
-
- return 0;
-}
-
-// This function fills the screen with the background colour
-void CaveClearScreen(UINT32 nColour)
-{
- if (nColour) {
- UINT32* pClear = (UINT32*)pBurnDraw;
- nColour = nColour | (nColour << 16);
- for (INT32 i = nCaveXSize * nCaveYSize / 16; i > 0 ; i--) {
- *pClear++ = nColour;
- *pClear++ = nColour;
- *pClear++ = nColour;
- *pClear++ = nColour;
- *pClear++ = nColour;
- *pClear++ = nColour;
- *pClear++ = nColour;
- *pClear++ = nColour;
- }
- } else {
- memset(pBurnDraw, 0, nCaveXSize * nCaveYSize * sizeof(INT16));
- }
-}
-
diff --git a/jan/src/burn/drv/cave/cave.h b/jan/src/burn/drv/cave/cave.h
deleted file mode 100644
index 74bd33d1b..000000000
--- a/jan/src/burn/drv/cave/cave.h
+++ /dev/null
@@ -1,65 +0,0 @@
-#include "burnint.h"
-#include "m68000_intf.h"
-#include "z80_intf.h"
-#include "eeprom.h"
-
-#define CAVE_REFRESHRATE (15625.0 / 271.5)
-
-inline static void CaveClearOpposites(UINT16* nJoystickInputs)
-{
- if ((*nJoystickInputs & 0x0003) == 0x0003) {
- *nJoystickInputs &= ~0x0003;
- }
- if ((*nJoystickInputs & 0x000C) == 0x000C) {
- *nJoystickInputs &= ~0x000C;
- }
-}
-
-// cave.cpp
-extern INT32 nCaveXSize, nCaveYSize;
-extern INT32 nCaveXOffset, nCaveYOffset;
-extern INT32 nCaveExtraXOffset, nCaveExtraYOffset;
-extern INT32 nCaveRowModeOffset;
-
-INT32 CaveScanGraphics();
-void CaveClearScreen(UINT32 nColour);
-
-// cave_palette.cpp
-extern UINT32* CavePalette;
-
-extern UINT8* CavePalSrc;
-extern UINT8 CaveRecalcPalette;
-
-INT32 CavePalInit(INT32 nPalSize);
-INT32 CavePalExit();
-INT32 CavePalUpdate4Bit(INT32 nOffset, INT32 nNumPalettes);
-INT32 CavePalUpdate8Bit(INT32 nOffset, INT32 nNumPalettes);
-
-void CavePalWriteByte(UINT32 nAddress, UINT8 byteValue);
-void CavePalWriteWord(UINT32 nAddress, UINT16 wordValue);
-
-// cave_tiles.cpp
-extern UINT8* CaveTileROM[4];
-extern UINT8* CaveTileRAM[4];
-
-extern UINT32 CaveTileReg[4][3];
-extern INT32 nCaveTileBank;
-
-INT32 CaveTileRender(INT32 nMode);
-void CaveTileExit();
-INT32 CaveTileInit();
-INT32 CaveTileInitLayer(INT32 nLayer, INT32 nROMSize, INT32 nBitdepth, INT32 nOffset);
-
-// cave_sprite.cpp
-extern INT32 CaveSpriteVisibleXOffset;
-
-extern UINT8* CaveSpriteROM;
-extern UINT8* CaveSpriteRAM;
-
-extern INT32 nCaveSpriteBank;
-extern INT32 nCaveSpriteBankDelay;
-
-extern INT32 (*CaveSpriteBuffer)();
-extern INT32 CaveSpriteRender(INT32 nLowPriority, INT32 nHighPriority);
-void CaveSpriteExit();
-INT32 CaveSpriteInit(INT32 nType, INT32 nROMSize);
diff --git a/jan/src/burn/drv/cave/cave_palette.cpp b/jan/src/burn/drv/cave/cave_palette.cpp
deleted file mode 100644
index 1da6993be..000000000
--- a/jan/src/burn/drv/cave/cave_palette.cpp
+++ /dev/null
@@ -1,148 +0,0 @@
-#include "cave.h"
-
-UINT8* CavePalSrc;
-UINT8 CaveRecalcPalette; // Set to 1 to force recalculation of the entire palette
-
-UINT32* CavePalette = NULL;
-static UINT16* CavePalCopy = NULL;
-
-INT32 CavePalInit(INT32 nPalSize)
-{
- CavePalette = (UINT32*)BurnMalloc(nPalSize * sizeof(UINT32));
- memset(CavePalette, 0, nPalSize * sizeof(UINT32));
-
- CavePalCopy = (UINT16*)BurnMalloc(nPalSize * sizeof(UINT16));
- memset(CavePalCopy, 0, nPalSize * sizeof(UINT16));
-
- pBurnDrvPalette = CavePalette;
-
- return 0;
-}
-
-INT32 CavePalExit()
-{
- BurnFree(CavePalette);
- BurnFree(CavePalCopy);
-
- return 0;
-}
-
-inline static UINT32 CalcCol(UINT16 nColour)
-{
- INT32 r, g, b;
-
- r = (nColour & 0x03E0) >> 2; // Red
- r |= r >> 5;
- g = (nColour & 0x7C00) >> 7; // Green
- g |= g >> 5;
- b = (nColour & 0x001F) << 3; // Blue
- b |= b >> 5;
-
- return BurnHighCol(r, g, b, 0);
-}
-
-INT32 CavePalUpdate4Bit(INT32 nOffset, INT32 nNumPalettes)
-{
- INT32 i, j;
-
- UINT16* ps = (UINT16*)CavePalSrc + nOffset;
- UINT16* pc;
- UINT32* pd;
-
- UINT16 c;
-
- if (CaveRecalcPalette) {
-
- for (i = 0; i < 0 + nNumPalettes; i++) {
-
- pc = CavePalCopy + (i << 8);
- pd = CavePalette + (i << 8);
-
- for (j = 0; j < 16; j++, ps++, pc++, pd++) {
-
- c = *ps;
- *pc = c;
- *pd = CalcCol(BURN_ENDIAN_SWAP_INT16(c));
-
- }
- }
-
- CaveRecalcPalette = 0;
- return 0;
- }
-
-
- for (i = 0; i < 0 + nNumPalettes; i++) {
-
- pc = CavePalCopy + (i << 8);
- pd = CavePalette + (i << 8);
-
- for (j = 0; j < 16; j++, ps++, pc++, pd++) {
-
- c = *ps;
- if (*pc != c) {
- *pc = c;
- *pd = CalcCol(BURN_ENDIAN_SWAP_INT16(c));
- }
-
- }
- }
-
- return 0;
-}
-
-INT32 CavePalUpdate8Bit(INT32 nOffset, INT32 nNumPalettes)
-{
- if (CaveRecalcPalette) {
- INT32 i, j;
-
- UINT16* ps = (UINT16*)CavePalSrc + nOffset;
- UINT16* pc;
- UINT32* pd;
-
- UINT16 c;
-
- for (i = 0; i < nNumPalettes; i++) {
-
- pc = CavePalCopy + nOffset + (i << 8);
- pd = CavePalette + nOffset + (i << 8);
-
- for (j = 0; j < 256; j++, ps++, pc++, pd++) {
-
- c = *ps;
- *pc = c;
- *pd = CalcCol(BURN_ENDIAN_SWAP_INT16(c));
-
- }
- }
-
- CaveRecalcPalette = 0;
- }
-
- return 0;
-}
-
-// Update the PC copy of the palette on writes to the palette memory
-void CavePalWriteByte(UINT32 nAddress, UINT8 byteValue)
-{
- nAddress ^= 1;
- CavePalSrc[nAddress] = byteValue; // write byte
-
- if (*((UINT8*)(CavePalCopy + nAddress)) != byteValue) {
- *((UINT8*)(CavePalCopy + nAddress)) = byteValue;
- CavePalette[nAddress >> 1] = CalcCol(*(UINT16*)(CavePalSrc + (nAddress & ~0x01)));
- }
-}
-
-void CavePalWriteWord(UINT32 nAddress, UINT16 wordValue)
-{
- nAddress >>= 1;
-
- ((UINT16*)CavePalSrc)[nAddress] = BURN_ENDIAN_SWAP_INT16(wordValue); // write word
-
- if (CavePalCopy[nAddress] != wordValue) {
- CavePalCopy[nAddress] = wordValue;
- CavePalette[nAddress] = CalcCol(wordValue);
- }
-}
-
diff --git a/jan/src/burn/drv/cave/cave_sprite.cpp b/jan/src/burn/drv/cave/cave_sprite.cpp
deleted file mode 100644
index 843bdb85e..000000000
--- a/jan/src/burn/drv/cave/cave_sprite.cpp
+++ /dev/null
@@ -1,735 +0,0 @@
-// Cave hardware sprites
-#include "cave.h"
-
-INT32 CaveSpriteVisibleXOffset;
-
-UINT8* CaveSpriteROM = NULL;
-UINT8* CaveSpriteRAM = NULL;
-
-INT32 nCaveSpriteBank;
-INT32 nCaveSpriteBankDelay;
-
-static INT32 nSpriteAddressMask;
-
-struct CaveSprite {
- INT8 flip;
- INT8 priority;
- INT16 palette;
- INT32 x; INT32 y;
- INT32 xsize; INT32 ysize;
- INT32 xzoom; INT32 yzoom;
- INT32 address;
-};
-
-static CaveSprite* pSpriteList = NULL;
-
-INT32 (*CaveSpriteBuffer)();
-
-static UINT8* pRow;
-static UINT8* pPixel;
-static UINT32* pSpriteData;
-static UINT32* pSpritePalette;
-
-static UINT16* pZBuffer = NULL;
-static UINT16* pZRow;
-static UINT16* pZPixel;
-
-static INT32 nSpriteRow, nSpriteRowSize;
-static INT32 nXPos, nYPos, nZPos;
-static INT32 nXSize, nYSize;
-static INT32 nSpriteXZoomSize, nSpriteYZoomSize;
-static INT32 nSpriteXOffset, nSpriteYOffset;
-
-static INT32 nFirstSprite[4], nLastSprite[4];
-
-static INT32 nTopSprite;
-static INT32 nZOffset;
-
-typedef void (*RenderSpriteFunction)();
-static RenderSpriteFunction* RenderSprite;
-
-// Include the sprite rendering functions
-#include "cave_sprite_func.h"
-
-INT32 CaveSpriteRender(INT32 nLowPriority, INT32 nHighPriority)
-{
- static INT32 nMaskLeft, nMaskRight, nMaskTop, nMaskBottom;
- CaveSprite* pBuffer;
-
- INT32 nPriorityMask = 0;
- INT32 nMaxZPos = -1;
- INT32 nCurrentZPos = 0x00010000;
- INT32 nUseBuffer = 0x00010000;
- INT32 nFunction;
-
- if (nLowPriority == 0) {
- nZPos = -1;
- nTopSprite = -1;
-
- nMaskLeft = nMaskTop = 9999;
- nMaskRight = nMaskBottom = -1;
- }
-
- if ((nBurnLayer & 1) == 0) {
- return 0;
- }
-
- if (nHighPriority < 3) {
- for (INT32 i = nHighPriority + 1; i < 4; i++) {
- if (nUseBuffer > nFirstSprite[i]) {
- nUseBuffer = nFirstSprite[i];
- }
- }
- }
-
- for (INT32 i = nLowPriority; i <= nHighPriority; i++) {
- if (nCurrentZPos > nFirstSprite[i]) {
- nCurrentZPos = nFirstSprite[i];
- }
- if (nMaxZPos < nLastSprite[i]) {
- nMaxZPos = nLastSprite[i];
- }
- nPriorityMask |= 8 >> i;
- }
-
- nPriorityMask &= nSpriteEnable;
- if (nPriorityMask == 0) {
- return 0;
- }
-
- for (pBuffer = pSpriteList + nCurrentZPos; nCurrentZPos <= nMaxZPos; pBuffer++, nCurrentZPos++) {
-
- if ((pBuffer->priority & nPriorityMask) == 0) {
- continue;
- }
-
- nXPos = pBuffer->x;
- nYPos = pBuffer->y;
-
- pSpriteData = (UINT32*)(CaveSpriteROM + ((pBuffer->address << 8) & nSpriteAddressMask));
- pSpritePalette = CavePalette + pBuffer->palette;
-
- nXSize = pBuffer->xsize;
- nYSize = pBuffer->ysize;
-
- if (pBuffer->xzoom == 0x0100 && pBuffer->yzoom == 0x0100) { // This sprite doesn't use zooming
-
- nSpriteRowSize = pBuffer->xsize >> 2;
-
- if (pBuffer->flip & 1) { // Y Flip
- pSpriteData += nSpriteRowSize * (nYSize - 1);
- nSpriteRowSize = -nSpriteRowSize;
- }
-
- if (nYPos >= 0x0200) {
- nYPos -= 0x0400;
- }
-
- if (nYPos < 0) {
- pSpriteData += nSpriteRowSize * -nYPos;
- nYSize += nYPos;
- nYPos = 0;
- }
-
- if ((nYPos + nYSize) > nCaveYSize) {
- nYSize -= (nYPos + nYSize) - nCaveYSize;
- }
-
- if (nXPos >= 0x0200) {
- nXPos -= 0x0400;
- }
-
- if (nXPos < 0) {
- if ((pBuffer->flip & 2) == 0) {
- pSpriteData += (-nXPos >> 4) << 2;
- }
- nXSize -= -nXPos & 0xFFF0;
- nXPos += -nXPos & 0xFFF0;
- }
-
- if (nXPos + nXSize >= nCaveXSize) {
- if (pBuffer->flip & 2) {
- pSpriteData += ((nXPos + nXSize - nCaveXSize) >> 4) << 2;
- }
- nXSize -= (nXPos + nXSize - nCaveXSize) & 0xFFF0;
- }
-
- pRow = pBurnDraw + (nYPos * nBurnPitch) + (nXPos * nBurnBpp);
-
- nFunction = (pBuffer->flip & 2) << 1; // X Flip
-
- if (nTopSprite > nCurrentZPos) { // Test ZBuffer
- if (nXPos < nMaskRight && (nXPos + nXSize) >= nMaskLeft && nYPos < nMaskBottom && (nYPos + nYSize) >= nMaskTop) {
- nFunction |= 1;
- }
- }
-
- if (nUseBuffer < nCurrentZPos) { // Write ZBuffer
- nFunction |= 2;
-
- if (nXPos < nMaskLeft) {
- nMaskLeft = nXPos;
- }
- if ((nXPos + nXSize) > nMaskRight) {
- nMaskRight = nXPos + nXSize;
- }
- if (nYPos < nMaskTop) {
- nMaskTop = nYPos;
- }
- if ((nYPos + nYSize) > nMaskBottom) {
- nMaskBottom = nYPos + nYSize;
- }
- }
-
- if (nFunction & 3) {
- pZRow = pZBuffer + (nYPos * 320) + nXPos;
- nZPos = nCurrentZPos + nZOffset;
- }
-
- nXSize = nXSize >> 2;
-
- RenderSprite[nFunction]();
- } else { // This sprite uses zooming
- nSpriteXZoomSize = 0x01000000; // * zoom factor = size of each screen pixel
-
- nXSize *= pBuffer->xzoom;
- nXSize >>= 8; // Round to multiple of whole pixel
- if (nXSize < 1) { // Make sure the sprite is at least one pixel wide
- nXSize = 1;
- } else {
- nSpriteXZoomSize /= pBuffer->xzoom;
- }
- if (nSpriteXZoomSize > (pBuffer->xsize << 16)) {
- nSpriteXZoomSize = pBuffer->xsize << 16;
- }
- nSpriteXOffset = nSpriteXZoomSize >> 1; // Make certain the pixels displayed are centered
-
- if (pBuffer->flip & 2) { // X Flip
- nXPos += pBuffer->xsize - nXSize;
-
- nSpriteXOffset = (pBuffer->xsize << 16) - nSpriteXOffset;
- nSpriteXZoomSize = -nSpriteXZoomSize;
- }
-
- if (nXPos >= 0x0200) {
- nXPos -= 0x0400;
- }
-
- if (nXPos < 0) {
- if (nXPos + nXSize <= 0) {
- continue;
- }
- nXPos = -nXPos;
- nSpriteXOffset += nXPos * nSpriteXZoomSize;
- nXSize -= nXPos;
- nXPos = 0;
- }
-
- if (nXPos + nXSize >= nCaveXSize) {
- if (nXPos >= nCaveXSize) {
- continue;
- }
- nXSize = nCaveXSize - nXPos;
- }
-
- nSpriteRowSize = pBuffer->xsize; // Size of each sprite row in memory
- nSpriteYZoomSize = 0x01000000; // * zoom factor = size of each screen pixel
-
- nYSize *= pBuffer->yzoom;
- nYSize >>= 8; // Round to multiple of whole pixel
- if (nYSize < 1) { // Make certain the sprite is at least one pixel high
- nYSize = 1;
- } else {
- nSpriteYZoomSize /= pBuffer->yzoom;
- }
- if (nSpriteYZoomSize > (pBuffer->ysize << 16)) {
- nSpriteYZoomSize = pBuffer->ysize << 16;
- }
- nSpriteYOffset = nSpriteYZoomSize >> 1; // Make certain the pixels displayed are centered
-
- if (pBuffer->flip & 1) { // Y Flip
- nYPos += pBuffer->ysize - nYSize;
-
- nSpriteYOffset = (pBuffer->ysize << 16) - nSpriteYOffset;
- nSpriteYZoomSize = -nSpriteYZoomSize;
- }
-
- if (nYPos >= 0x0200) {
- nYPos -= 0x0400;
- }
-
- if (nYPos < 0) {
- if (nYPos + nYSize <= 0) {
- continue;
- }
- nYPos = -nYPos;
- nSpriteYOffset += nYPos * nSpriteYZoomSize;
- nYSize -= nYPos;
- nYPos = 0;
- }
-
- if (nYPos + nYSize >= nCaveYSize) {
- if (nYPos >= nCaveYSize) {
- continue;
- }
- nYSize = nCaveYSize - nYPos;
- }
-
- pRow = pBurnDraw + (nYPos * nBurnPitch) + (nXPos * nBurnBpp);
-
- nFunction = 8;
-
- if (pBuffer->xzoom > 0x0100 || pBuffer->yzoom > 0x0100) {
- nFunction |= 4;
- }
-
- if (nTopSprite > nCurrentZPos) { // Test ZBuffer
- if (nXPos < nMaskRight && nXPos + nXSize >= nMaskLeft && nYPos < nMaskBottom && nYPos + nYSize >= nMaskTop) {
- nFunction |= 1;
- }
- }
-
- if (nUseBuffer < nCurrentZPos) { // Write ZBuffer
- nFunction |= 2;
-
- if (nXPos < nMaskLeft) {
- nMaskLeft = nXPos;
- }
- if (nXPos + nXSize > nMaskRight) {
- nMaskRight = nXPos + nXSize;
- }
- if (nYPos < nMaskTop) {
- nMaskTop = nYPos;
- }
- if (nYPos + nYSize > nMaskBottom) {
- nMaskBottom = nYPos + nYSize;
- }
- }
-
- if (nFunction & 3) {
- pZRow = pZBuffer + (nYPos * nCaveXSize) + nXPos;
- nZPos = nCurrentZPos + nZOffset;
- }
-
- nXSize <<= 16;
- nYSize <<= 16;
-
- RenderSprite[nFunction]();
- }
- }
-
- if (nMaxZPos > nTopSprite) {
- nTopSprite = nMaxZPos;
- }
-
- if (nHighPriority == 3) {
- if (nZPos >= 0) {
- nZOffset += nTopSprite;
- if (nZOffset > 0xFC00) {
- memset(pZBuffer, 0, nCaveXSize * nCaveYSize * sizeof(UINT16));
- nZOffset = 0;
- }
- }
- }
-
- return 0;
-}
-
-// Donpachi/DoDonpachi sprite format (no zooming)
-static INT32 CaveSpriteBuffer_NoZoom()
-{
- UINT16* pSprite = (UINT16*)(CaveSpriteRAM + (nCaveSpriteBank << 14));
- CaveSprite* pBuffer = pSpriteList;
- INT32 nPriority;
-
- nFirstSprite[0] = 0x00010000;
- nFirstSprite[1] = 0x00010000;
- nFirstSprite[2] = 0x00010000;
- nFirstSprite[3] = 0x00010000;
-
- nLastSprite[0] = -1;
- nLastSprite[1] = -1;
- nLastSprite[2] = -1;
- nLastSprite[3] = -1;
-
- INT16 word;
- INT32 x, y, xs, ys;
-
- for (INT32 i = 0, z = 0; i < 0x0400; i++, pSprite += 8) {
-
- word = BURN_ENDIAN_SWAP_INT16(pSprite[4]);
-
- xs = (word >> 4) & 0x01F0;
- ys = (word << 4) & 0x01F0;
- if (ys == 0 || xs == 0) {
- continue;
- }
-
-#if 0
- x = (BURN_ENDIAN_SWAP_INT16(pSprite[2]) + nCaveExtraXOffset) & 0x03FF;
-#else
- x = (BURN_ENDIAN_SWAP_INT16(pSprite[2]) + CaveSpriteVisibleXOffset) & 0x03FF;
-#endif
- if (x >= 320) {
- if (x + xs <= 0x0400) {
- continue;
- }
- }
-
-#if 0
- y = (BURN_ENDIAN_SWAP_INT16(pSprite[3]) + nCaveExtraYOffset) & 0x03FF;
-#else
- y = BURN_ENDIAN_SWAP_INT16(pSprite[3]) & 0x03FF;
-#endif
- if (y >= 240) {
- if (y + ys <= 0x0400) {
- continue;
- }
- }
-
- // Sprite is both active and onscreen, so add it to the buffer
-
- word = BURN_ENDIAN_SWAP_INT16(pSprite[0]);
-
- nPriority = (word >> 4) & 0x03;
- if (nLastSprite[nPriority] == -1) {
- nFirstSprite[nPriority] = z;
- }
- nLastSprite[nPriority] = z;
-
- pBuffer->priority = 8 >> nPriority;
-
- pBuffer->flip = (word >> 2) & 0x03;
- pBuffer->palette = word & 0x3F00;
-
- pBuffer->address = BURN_ENDIAN_SWAP_INT16(pSprite[1]) | ((word & 3) << 16);
-
- pBuffer->x = x;
- pBuffer->y = y;
-
- pBuffer->xsize = xs;
- pBuffer->ysize = ys;
-
- pBuffer++;
- z++;
- }
-
- return 0;
-}
-
-// Normal sprite format (zooming)
-static INT32 CaveSpriteBuffer_ZoomA()
-{
- UINT16* pSprite = (UINT16*)(CaveSpriteRAM + (nCaveSpriteBank << 14));
- CaveSprite* pBuffer = pSpriteList;
- INT32 nPriority;
-
- nFirstSprite[0] = 0x00010000;
- nFirstSprite[1] = 0x00010000;
- nFirstSprite[2] = 0x00010000;
- nFirstSprite[3] = 0x00010000;
-
- nLastSprite[0] = -1;
- nLastSprite[1] = -1;
- nLastSprite[2] = -1;
- nLastSprite[3] = -1;
-
- INT16 word;
- INT32 x, y, xs, ys;
-
- for (INT32 i = 0, z = 0; i < 0x0400; i++, pSprite += 8) {
-
- word = BURN_ENDIAN_SWAP_INT16(pSprite[6]);
-
- xs = (word >> 4) & 0x01F0;
- ys = (word << 4) & 0x01F0;
- if (ys == 0 || xs == 0) {
- continue;
- }
-
- word = BURN_ENDIAN_SWAP_INT16(pSprite[2]);
-
- nPriority = (word >> 4) & 0x03;
-
- x = ((BURN_ENDIAN_SWAP_INT16(pSprite[0]) >> 6) + CaveSpriteVisibleXOffset) & 0x03FF;
-#if 0
- y = ((BURN_ENDIAN_SWAP_INT16(pSprite[1]) >> 6) + nCaveExtraYOffset) & 0x03FF;
-#else
- y = (BURN_ENDIAN_SWAP_INT16(pSprite[1]) >> 6) & 0x03FF;
-#endif
-
- if (BURN_ENDIAN_SWAP_INT16(pSprite[4]) <= 0x0100 && BURN_ENDIAN_SWAP_INT16(pSprite[5]) <= 0x0100) {
- if (x >= 320) {
- if (x + xs <= 0x0400) {
- continue;
- }
- }
- if (y >= 240) {
- if (y + ys <= 0x0400) {
- continue;
- }
- }
- }
-
- // Sprite is active and most likely on screen, so add it to the buffer
-
- if (nLastSprite[nPriority] == -1) {
- nFirstSprite[nPriority] = z;
- }
- nLastSprite[nPriority] = z;
-
- pBuffer->priority = 8 >> nPriority;
-
- pBuffer->xzoom = BURN_ENDIAN_SWAP_INT16(pSprite[4]);
- pBuffer->yzoom = BURN_ENDIAN_SWAP_INT16(pSprite[5]);
-
- pBuffer->xsize = xs;
- pBuffer->ysize = ys;
-
- pBuffer->x = x;
- pBuffer->y = y;
-
- pBuffer->flip = (word >> 2) & 0x03;
- pBuffer->palette = word & 0x3F00;
-
- pBuffer->address = BURN_ENDIAN_SWAP_INT16(pSprite[3]) | ((word & 3) << 16);
-
- pBuffer++;
- z++;
- }
-
- return 0;
-}
-
-// Normal sprite format (zooming, alternate position handling)
-static INT32 CaveSpriteBuffer_ZoomB()
-{
- UINT16* pSprite = (UINT16*)(CaveSpriteRAM + (nCaveSpriteBank << 14));
- CaveSprite* pBuffer = pSpriteList;
- INT32 nPriority;
-
- nFirstSprite[0] = 0x00010000;
- nFirstSprite[1] = 0x00010000;
- nFirstSprite[2] = 0x00010000;
- nFirstSprite[3] = 0x00010000;
-
- nLastSprite[0] = -1;
- nLastSprite[1] = -1;
- nLastSprite[2] = -1;
- nLastSprite[3] = -1;
-
- INT16 word;
- INT32 x, y, xs, ys;
-
- for (INT32 i = 0, z = 0; i < 0x0400; i++, pSprite += 8) {
-
- word = BURN_ENDIAN_SWAP_INT16(pSprite[6]);
-
- xs = (word >> 4) & 0x01F0;
- ys = (word << 4) & 0x01F0;
- if (ys == 0 || xs == 0) {
- continue;
- }
-
- word = BURN_ENDIAN_SWAP_INT16(pSprite[2]);
-
- nPriority = (word >> 4) & 0x03;
-
-#if 0
- x = (BURN_ENDIAN_SWAP_INT16(pSprite[0]) + nCaveExtraXOffset) & 0x03FF;
-# else
- x = (BURN_ENDIAN_SWAP_INT16(pSprite[0]) + CaveSpriteVisibleXOffset) & 0x03FF;
-#endif
-#if 0
- y = (BURN_ENDIAN_SWAP_INT16(pSprite[1]) + nCaveExtraYOffset) & 0x03FF;
-#else
- y = BURN_ENDIAN_SWAP_INT16(pSprite[1]) & 0x03FF;
-#endif
-
- if (BURN_ENDIAN_SWAP_INT16(pSprite[4]) <= 0x0100 && BURN_ENDIAN_SWAP_INT16(pSprite[5]) <= 0x0100) {
- if (x >= nCaveXSize) {
- if (x + xs <= 0x0400) {
- continue;
- }
- }
- if (y >= nCaveYSize) {
- if (y + ys <= 0x0400) {
- continue;
- }
- }
- }
-
- // Sprite is active and most likely on screen, so add it to the buffer
-
- if (nLastSprite[nPriority] == -1) {
- nFirstSprite[nPriority] = z;
- }
- nLastSprite[nPriority] = z;
-
- pBuffer->priority = 8 >> nPriority;
-
- pBuffer->xzoom = BURN_ENDIAN_SWAP_INT16(pSprite[4]);
- pBuffer->yzoom = BURN_ENDIAN_SWAP_INT16(pSprite[5]);
-
- pBuffer->xsize = xs;
- pBuffer->ysize = ys;
-
- pBuffer->x = x;
- pBuffer->y = y;
-
- pBuffer->flip = (word >> 2) & 0x03;
- pBuffer->palette = word & 0x3F00;
-
- pBuffer->address = BURN_ENDIAN_SWAP_INT16(pSprite[3]) | ((word & 3) << 16);
-
- pBuffer++;
- z++;
- }
-
- return 0;
-}
-
-// Power Instinct 2 sprite format (no zooming)
-static INT32 CaveSpriteBuffer_PowerInstinct()
-{
- UINT16* pSprite = (UINT16*)(CaveSpriteRAM + (nCaveSpriteBank << 14));
- CaveSprite* pBuffer = pSpriteList;
- INT32 nPriority;
-
- nFirstSprite[0] = 0x00010000;
- nFirstSprite[1] = 0x00010000;
- nFirstSprite[2] = 0x00010000;
- nFirstSprite[3] = 0x00010000;
-
- nLastSprite[0] = -1;
- nLastSprite[1] = -1;
- nLastSprite[2] = -1;
- nLastSprite[3] = -1;
-
- INT16 word;
- INT32 x, y, xs, ys;
-
- for (INT32 i = 0, z = 0; i < 0x0400; i++, pSprite += 8) {
-
- word = BURN_ENDIAN_SWAP_INT16(pSprite[4]);
-
- xs = (word >> 4) & 0x01F0;
- ys = (word << 4) & 0x01F0;
- if (ys == 0 || xs == 0) {
- continue;
- }
-
- x = (BURN_ENDIAN_SWAP_INT16(pSprite[2]) + nCaveExtraXOffset) & 0x03FF;
- if (x >= 320) {
- if (x + xs <= 0x0400) {
- continue;
- }
- }
-
- y = (BURN_ENDIAN_SWAP_INT16(pSprite[3]) + nCaveExtraYOffset) & 0x03FF;
- if (y >= 240) {
- if (y + ys <= 0x0400) {
- continue;
- }
- }
-
- // Sprite is both active and onscreen, so add it to the buffer
-
- word = BURN_ENDIAN_SWAP_INT16(pSprite[0]);
-
- nPriority = ((word >> 4) & 0x01) | 2;
- if (nLastSprite[nPriority] == -1) {
- nFirstSprite[nPriority] = z;
- }
- nLastSprite[nPriority] = z;
-
- pBuffer->priority = 8 >> nPriority;
-
- pBuffer->flip = (word >> 2) & 0x03;
- pBuffer->palette = ((word >> 4) & 0x03F0) + ((word << 5) & 0xC00);
-
- pBuffer->address = BURN_ENDIAN_SWAP_INT16(pSprite[1]) | ((word & 3) << 16);
-
- pBuffer->x = x;
- pBuffer->y = y;
-
- pBuffer->xsize = xs;
- pBuffer->ysize = ys;
-
- pBuffer++;
- z++;
- }
-
- return 0;
-}
-
-void CaveSpriteExit()
-{
- BurnFree(pSpriteList);
- BurnFree(pZBuffer);
-
- CaveSpriteVisibleXOffset = 0;
-
- return;
-}
-
-INT32 CaveSpriteInit(INT32 nType, INT32 nROMSize)
-{
- if (pSpriteList) {
- BurnFree(pSpriteList);
- }
- pSpriteList = (CaveSprite*)BurnMalloc(0x0401 * sizeof(CaveSprite));
- if (pSpriteList == NULL) {
- CaveSpriteExit();
- return 1;
- }
-
- for (INT32 i = 0; i < 0x0400; i++) {
- pSpriteList[i].xzoom = 0x0100;
- pSpriteList[i].yzoom = 0x0100;
- }
- for (INT32 i = 0; i < 4; i++) {
- nFirstSprite[i] = 0x00010000;
- nLastSprite[i] = -1;
- }
-
- if (pZBuffer) {
- BurnFree(pZBuffer);
- }
- pZBuffer = (UINT16*)BurnMalloc(nCaveXSize * nCaveYSize * sizeof(UINT16));
- if (pZBuffer == NULL) {
- CaveSpriteExit();
- return 1;
- }
-
- memset(pZBuffer, 0, nCaveXSize * nCaveYSize * sizeof(UINT16));
- nZOffset = 0;
-
- for (nSpriteAddressMask = 1; nSpriteAddressMask < nROMSize; nSpriteAddressMask <<= 1) {}
- nSpriteAddressMask--;
-
- switch (nType) {
- case 0:
- CaveSpriteBuffer = &CaveSpriteBuffer_NoZoom;
- break;
- case 1:
- CaveSpriteBuffer = &CaveSpriteBuffer_ZoomA;
- break;
- case 2:
- CaveSpriteBuffer = &CaveSpriteBuffer_ZoomB;
- break;
- case 3:
- CaveSpriteBuffer = &CaveSpriteBuffer_PowerInstinct;
- break;
- default:
- CaveSpriteExit();
- return 1;
- }
-
- nCaveSpriteBank = 0;
- nCaveSpriteBankDelay = 0;
-
- RenderSprite = RenderSprite_ROT0[(nCaveXSize == 320) ? 0 : 1];
-
- return 0;
-}
diff --git a/jan/src/burn/drv/cave/cave_sprite_render.h b/jan/src/burn/drv/cave/cave_sprite_render.h
deleted file mode 100644
index 69af8f206..000000000
--- a/jan/src/burn/drv/cave/cave_sprite_render.h
+++ /dev/null
@@ -1,281 +0,0 @@
-// Create a unique name for each of the functions
-#define FN(a,b,c,d,e,f,g) RenderSprite ## a ## _ ## b ## _ROT ## c ## d ## e ## _CLIPX ## f ## g
-#define FUNCTIONNAME(a,b,c,d,e,f,g) FN(a,b,c,d,e,f,g)
-
-#if ROT == 0
- #define ADVANCEWORD pPixel += ((BPP >> 3) * 16)
- #define ADVANCEROW pRow += ((BPP >> 3) * XSIZE)
-#else
- #error unsupported rotation angle specified
-#endif
-
-#if EIGHTBIT == 0
- #define DEPTH _16
-#elif EIGHTBIT == 1
- #define DEPTH _256
-#else
- #error illegal eightbit value
-#endif
-
-#define TESTCOLOUR(x) x
-
-#if ZBUFFER == 0
- #define ZBUF _NOZBUFFER
- #define ADVANCEZWORD
- #define ADVANCEZROW
- #define TESTZBUF(a) 1
- #define WRITEZBUF(a)
-#elif ZBUFFER == 1
- #define ZBUF _RZBUFFER
- #define ADVANCEZWORD pZPixel += 16
- #define ADVANCEZROW pZRow += XSIZE
- #define TESTZBUF(a) (pZPixel[a] <= nZPos)
- #define WRITEZBUF(a)
-#elif ZBUFFER == 2
- #define ZBUF _WZBUFFER
- #define ADVANCEZWORD pZPixel += 16
- #define ADVANCEZROW pZRow += XSIZE
- #define TESTZBUF(a) 1
- #define WRITEZBUF(a) pZPixel[a] = nZPos
-#elif ZBUFFER == 3
- #define ZBUF _RWZBUFFER
- #define ADVANCEZWORD pZPixel += 16
- #define ADVANCEZROW pZRow += XSIZE
- #define TESTZBUF(a) (pZPixel[a] <= nZPos)
- #define WRITEZBUF(a) pZPixel[a] = nZPos
-#else
- #error unsupported zbuffer mode specified.
-#endif
-
-#if BPP == 16
- #define PLOTPIXEL(a,b) if (TESTCOLOUR(b) && TESTZBUF(a)) { \
- WRITEZBUF(a); \
- *((UINT16*)(pPixel + a * 2)) = (UINT16)pSpritePalette[b]; \
- }
-#elif BPP == 24
- #define PLOTPIXEL(a,b) if (TESTCOLOUR(b) && TESTZBUF(a)) { \
- WRITEZBUF(a); \
- UINT32 nRGB = pSpritePalette[b]; \
- pPixel[a * 3 + 0] = (UINT8)nRGB; \
- pPixel[a * 3 + 1] = (UINT8)(nRGB >> 8); \
- pPixel[a * 3 + 2] = (UINT8)(nRGB >> 16); \
- }
-#elif BPP == 32
- #define PLOTPIXEL(a,b) if (TESTCOLOUR(b) && TESTZBUF(a)) { \
- WRITEZBUF(a); \
- *((UINT32*)(pPixel + a * 4)) = (UINT32)pSpritePalette[b]; \
- }
-#else
- #error unsupported bitdepth specified.
-#endif
-
-#if XFLIP == 0
- #define FLIP _NOFLIP
-#elif XFLIP == 1
- #define FLIP _FLIPX
-#else
- #error illegal XFLIP value
-#endif
-
-#if ZOOM == 0
- #define ZOOMMODE _NOZOOM
-#elif ZOOM == 1
- #define ZOOMMODE _ZOOMXY
-#else
- #error unsupported rowscroll mode specified.
-#endif
-
-#if XFLIP == 0
- #define OFFSET(a) a
- #define CLIP(a,b) if (nColumn >= (XSIZE - a)) { continue; } \
- if (nXPos >= (0 - a)) { b }
-#else
- #define OFFSET(a) (15 - a)
- #define CLIP(a,b) if (nColumn >= (0 - a) && nColumn < (XSIZE - a)) { b }
-#endif
-
-#if EIGHTBIT == 0
- #define PLOT8_CLIP(x) \
- CLIP(OFFSET((x + 0)), PLOTPIXEL(OFFSET((x + 0)), nColour & 0x0F)); \
- nColour >>= 4; \
- CLIP(OFFSET((x + 1)), PLOTPIXEL(OFFSET((x + 1)), nColour & 0x0F)); \
- \
- nColour >>= 4; \
- CLIP(OFFSET((x + 2)), PLOTPIXEL(OFFSET((x + 2)), nColour & 0x0F)); \
- nColour >>= 4; \
- CLIP(OFFSET((x + 3)), PLOTPIXEL(OFFSET((x + 3)), nColour & 0x0F)); \
- \
- nColour >>= 4; \
- CLIP(OFFSET((x + 4)), PLOTPIXEL(OFFSET((x + 4)), nColour & 0x0F)); \
- nColour >>= 4; \
- CLIP(OFFSET((x + 5)), PLOTPIXEL(OFFSET((x + 5)), nColour & 0x0F)); \
- \
- nColour >>= 4; \
- CLIP(OFFSET((x + 6)), PLOTPIXEL(OFFSET((x + 6)), nColour & 0x0F)); \
- nColour >>= 4; \
- CLIP(OFFSET((x + 7)), PLOTPIXEL(OFFSET((x + 7)), nColour & 0x0F));
-
- #define PLOT8_NOCLIP(x) \
- PLOTPIXEL(OFFSET((x + 0)), nColour & 0x0F); \
- nColour >>= 4; \
- PLOTPIXEL(OFFSET((x + 1)), nColour & 0x0F); \
- \
- nColour >>= 4; \
- PLOTPIXEL(OFFSET((x + 2)), nColour & 0x0F); \
- nColour >>= 4; \
- PLOTPIXEL(OFFSET((x + 3)), nColour & 0x0F); \
- \
- nColour >>= 4; \
- PLOTPIXEL(OFFSET((x + 4)), nColour & 0x0F); \
- nColour >>= 4; \
- PLOTPIXEL(OFFSET((x + 5)), nColour & 0x0F); \
- \
- nColour >>= 4; \
- PLOTPIXEL(OFFSET((x + 6)), nColour & 0x0F); \
- nColour >>= 4; \
- PLOTPIXEL(OFFSET((x + 7)), nColour & 0x0F);
-#else
- #define PLOT4_CLIP(x) \
- CLIP(OFFSET((x + 0)), PLOTPIXEL(OFFSET((x + 0)), nColour & 0xFF)); \
- nColour >>= 8; \
- CLIP(OFFSET((x + 1)), PLOTPIXEL(OFFSET((x + 1)), nColour & 0xFF)); \
- nColour >>= 8; \
- \
- CLIP(OFFSET((x + 2)), PLOTPIXEL(OFFSET((x + 2)), nColour & 0xFF)); \
- nColour >>= 8; \
- CLIP(OFFSET((x + 3)), PLOTPIXEL(OFFSET((x + 3)), nColour & 0xFF));
-
- #define PLOT4_NOCLIP(x) \
- PLOTPIXEL(OFFSET((x + 0)), nColour & 0xFF); \
- nColour >>= 8; \
- PLOTPIXEL(OFFSET((x + 1)), nColour & 0xFF); \
- nColour >>= 8; \
- \
- PLOTPIXEL(OFFSET((x + 2)), nColour & 0xFF); \
- nColour >>= 8; \
- PLOTPIXEL(OFFSET((x + 3)), nColour & 0xFF);
-#endif
-
-static void FUNCTIONNAME(BPP,XSIZE,ROT,FLIP,ZOOMMODE,ZBUF,DEPTH)()
-{
-// Create an empty function if unsupported features are requested
-#if ROT == 0
-
- INT32 x, nColumn;
- INT32 nColour;
-
- #if ZBUFFER == 0
- for (nSpriteRow = 0; nSpriteRow < nYSize; ADVANCEROW, nSpriteRow++, pSpriteData += nSpriteRowSize) {
- #else
- for (nSpriteRow = 0; nSpriteRow < nYSize; ADVANCEROW, ADVANCEZROW, nSpriteRow++, pSpriteData += nSpriteRowSize) {
- #endif
- nColumn = nXPos;
-
- #if ZBUFFER == 0
- #if XFLIP == 0
- for (x = (0 << EIGHTBIT), pPixel = pRow; x < nXSize; x += (2 << EIGHTBIT), nColumn += 16, ADVANCEWORD) {
- #else
- for (x = nXSize - (2 << EIGHTBIT), pPixel = pRow; x >= 0; x -= (2 << EIGHTBIT), nColumn += 16, ADVANCEWORD) {
- #endif
- #else
- #if XFLIP == 0
- for (x = 0, pPixel = pRow, pZPixel = pZRow; x < nXSize; x += (2 << EIGHTBIT), nColumn += 16, ADVANCEWORD, ADVANCEZWORD) {
- #else
- for (x = nXSize - (2 << EIGHTBIT), pPixel = pRow, pZPixel = pZRow; x >= 0; x -= (2 << EIGHTBIT), nColumn += 16, ADVANCEWORD, ADVANCEZWORD) {
- #endif
- #endif
-
- #if EIGHTBIT == 0
- if (nColumn >= 0 && nColumn < (XSIZE - 16)) {
- #if XFLIP == 0
- nColour = BURN_ENDIAN_SWAP_INT32(pSpriteData[x]);
- PLOT8_NOCLIP(0);
- nColour = BURN_ENDIAN_SWAP_INT32(pSpriteData[x + 1]);
- PLOT8_NOCLIP(8);
- #else
- nColour = BURN_ENDIAN_SWAP_INT32(pSpriteData[x + 1]);
- PLOT8_NOCLIP(8);
- nColour = BURN_ENDIAN_SWAP_INT32(pSpriteData[x]);
- PLOT8_NOCLIP(0);
- #endif
- } else {
- #if XFLIP == 0
- nColour = BURN_ENDIAN_SWAP_INT32(pSpriteData[x]);
- PLOT8_CLIP(0);
- nColour = BURN_ENDIAN_SWAP_INT32(pSpriteData[x + 1]);
- PLOT8_CLIP(8);
- #else
- nColour = BURN_ENDIAN_SWAP_INT32(pSpriteData[x + 1]);
- PLOT8_CLIP(8);
- nColour = BURN_ENDIAN_SWAP_INT32(pSpriteData[x]);
- PLOT8_CLIP(0);
- #endif
- #else
- if (nColumn >= 0 && nColumn < (XSIZE - 16)) {
- #if XFLIP == 0
- nColour = BURN_ENDIAN_SWAP_INT32(pSpriteData[x]);
- PLOT4_NOCLIP(0);
- nColour = BURN_ENDIAN_SWAP_INT32(pSpriteData[x + 1]);
- PLOT4_NOCLIP(4);
- nColour = BURN_ENDIAN_SWAP_INT32(pSpriteData[x + 2]);
- PLOT4_NOCLIP(8);
- nColour = BURN_ENDIAN_SWAP_INT32(pSpriteData[x + 3]);
- PLOT4_NOCLIP(12);
- #else
- nColour = BURN_ENDIAN_SWAP_INT32(pSpriteData[x + 3]);
- PLOT4_NOCLIP(12);
- nColour = BURN_ENDIAN_SWAP_INT32(pSpriteData[x + 2]);
- PLOT4_NOCLIP(8);
- nColour = BURN_ENDIAN_SWAP_INT32(pSpriteData[x + 1]);
- PLOT4_NOCLIP(4);
- nColour = BURN_ENDIAN_SWAP_INT32(pSpriteData[x]);
- PLOT4_NOCLIP(0);
- #endif
- } else {
- #if XFLIP == 0
- nColour = BURN_ENDIAN_SWAP_INT32(pSpriteData[x]);
- PLOT4_CLIP(0);
- nColour = BURN_ENDIAN_SWAP_INT32(pSpriteData[x + 1]);
- PLOT4_CLIP(4);
- nColour = BURN_ENDIAN_SWAP_INT32(pSpriteData[x + 2]);
- PLOT4_CLIP(8);
- nColour = BURN_ENDIAN_SWAP_INT32(pSpriteData[x + 3]);
- PLOT4_CLIP(12);
- #else
- nColour = BURN_ENDIAN_SWAP_INT32(pSpriteData[x + 3]);
- PLOT4_CLIP(12);
- nColour = BURN_ENDIAN_SWAP_INT32(pSpriteData[x + 2]);
- PLOT4_CLIP(8);
- nColour = BURN_ENDIAN_SWAP_INT32(pSpriteData[x + 1]);
- PLOT4_CLIP(4);
- nColour = BURN_ENDIAN_SWAP_INT32(pSpriteData[x]);
- PLOT4_CLIP(0);
- #endif
- #endif
- }
- }
- }
-#endif
-}
-
-#undef PLOT4_CLIP
-#undef PLOT4_NOCLIP
-#undef PLOT8_CLIP
-#undef PLOT8_NOCLIP
-#undef OFFSET
-#undef FLIP
-#undef PLOTPIXEL
-#undef CLIP
-#undef TESTCOLOUR
-#undef ADVANCEZROW
-#undef ADVANCEZWORD
-#undef ADVANCEROW
-#undef ADVANCEWORD
-#undef TESTZBUF
-#undef WRITEZBUF
-#undef ZBUF
-#undef ZOOMMODE
-#undef DEPTH
-#undef FUNCTIONNAME
-#undef FN
-
diff --git a/jan/src/burn/drv/cave/cave_sprite_render_zoom.h b/jan/src/burn/drv/cave/cave_sprite_render_zoom.h
deleted file mode 100644
index 52c3e949a..000000000
--- a/jan/src/burn/drv/cave/cave_sprite_render_zoom.h
+++ /dev/null
@@ -1,182 +0,0 @@
-// Create a unique name for each of the functions
-#define FN(a,b,c,d,e,f,g) RenderSprite ## a ## _ ## b ## _ROT ## c ## d ## e ## _NOCLIP ## f ## g
-#define FUNCTIONNAME(a,b,c,d,e,f,g) FN(a,b,c,d,e,f,g)
-
-#if ROT == 0
- #define ADVANCECOLUMN pPixel += (BPP >> 3)
- #define ADVANCEROW pRow += ((BPP >> 3) * XSIZE)
-#else
- #error unsupported rotation angle specified
-#endif
-
-#if EIGHTBIT == 0
- #define DEPTH _16
-#elif EIGHTBIT == 1
- #define DEPTH _256
-#else
- #error illegal eightbit value
-#endif
-
-#define TESTCOLOUR(x) x
-
-#if ZBUFFER == 0
- #define ZBUF _NOZBUFFER
- #define ADVANCEZCOLUMN
- #define ADVANCEZROW
- #define TESTZBUF(a) 1
- #define WRITEZBUF(a)
-#elif ZBUFFER == 1
- #define ZBUF _RZBUFFER
- #define ADVANCEZCOLUMN pZPixel += 1
- #define ADVANCEZROW pZRow += XSIZE
- #define TESTZBUF(a) (pZPixel[a] <= nZPos)
- #define WRITEZBUF(a)
-#elif ZBUFFER == 2
- #define ZBUF _WZBUFFER
- #define ADVANCEZCOLUMN pZPixel += 1
- #define ADVANCEZROW pZRow += XSIZE
- #define TESTZBUF(a) 1
- #define WRITEZBUF(a) pZPixel[a] = nZPos
-#elif ZBUFFER == 3
- #define ZBUF _RWZBUFFER
- #define ADVANCEZCOLUMN pZPixel += 1
- #define ADVANCEZROW pZRow += XSIZE
- #define TESTZBUF(a) (pZPixel[a] <= nZPos)
- #define WRITEZBUF(a) pZPixel[a] = nZPos
-#else
- #error unsupported zbuffer mode specified.
-#endif
-
-#if BPP == 16
- #define PLOTPIXEL(a,b) if (TESTCOLOUR(b) && TESTZBUF(a)) { \
- WRITEZBUF(a); \
- *((UINT16*)(pPixel + a * 2)) = (UINT16)pSpritePalette[b]; \
- }
-#elif BPP == 24
- #define PLOTPIXEL(a,b) if (TESTCOLOUR(b) && TESTZBUF(a)) { \
- WRITEZBUF(a); \
- UINT32 nRGB = pSpritePalette[b]; \
- pPixel[a * 3 + 0] = (UINT8)nRGB; \
- pPixel[a * 3 + 1] = (UINT8)(nRGB >> 8); \
- pPixel[a * 3 + 2] = (UINT8)(nRGB >> 16); \
- }
-#elif BPP == 32
- #define PLOTPIXEL(a,b) if (TESTCOLOUR(b) && TESTZBUF(a)) { \
- WRITEZBUF(a); \
- *((UINT32*)(pPixel + a * 4)) = (UINT32)pSpritePalette[b]; \
- }
-#else
- #error unsupported bitdepth specified.
-#endif
-
-#if XFLIP == 0
- #define FLIP _NOFLIP
-#elif XFLIP == 1
- #define FLIP _FLIPX
-#else
- #error illegal XFLIP value
-#endif
-
-#if ZOOM == 0
- #define ZOOMMODE _NOZOOM
-#elif ZOOM == 1
- #define ZOOMMODE _ZOOMOUT
-#elif ZOOM == 2
- #define ZOOMMODE _ZOOMIN
-#else
- #error unsupported zoom mode specified.
-#endif
-
-static void FUNCTIONNAME(BPP,XSIZE,ROT,FLIP,ZOOMMODE,ZBUF,DEPTH)()
-{
-// Create an empty function if unsupported features are requested
-#if ROT == 0 && XFLIP == 0 && EIGHTBIT == 1
-
- INT32 nSpriteColumn;
-
- INT32 nSpriteXOffset2;
-
- #if ZOOM == 2
- INT32 nPrevSpriteXOffset;
- INT32 nPrevSpriteXOffsetStart = nSpriteXOffset & 0xFFFF0000;
- INT32 nPrevSpriteYOffset = nSpriteYOffset & 0xFFFF0000;
-
- if (nPrevSpriteXOffsetStart == 0) {
- nPrevSpriteXOffsetStart = 0xFEDC1234;
- }
-
- if (nPrevSpriteYOffset == 0) {
- nPrevSpriteYOffset = 0xFEDC1234;
- }
- #endif
-
- UINT8* pSpriteRowData = (UINT8*)pSpriteData;
-
- for (nSpriteRow = nYSize; nSpriteRow > 0; nSpriteRow -= 0x00010000, nSpriteYOffset += nSpriteYZoomSize) {
-
- #if ZOOM == 2
- if ((nSpriteYOffset & 0xFFFF0000) == (nPrevSpriteYOffset & 0xFFFF0000)) {
-
- ADVANCEROW;
- #if ZBUFFER != 0
- ADVANCEZROW;
- #endif
-
- continue;
- }
- nPrevSpriteYOffset = nSpriteYOffset;
- nPrevSpriteXOffset = nPrevSpriteXOffsetStart;
- #endif
- pSpriteRowData = ((UINT8*)pSpriteData) + (nSpriteYOffset >> 16) * nSpriteRowSize;
-
- nSpriteXOffset2 = nSpriteXOffset;
-
- #if ZBUFFER != 0
- pZPixel = pZRow;
- #endif
-
- for (nSpriteColumn = nXSize, pPixel = pRow; nSpriteColumn > 0; nSpriteColumn -= 0x00010000, nSpriteXOffset2 += nSpriteXZoomSize) {
-
- #if ZOOM == 2
- if ((nSpriteXOffset2 & 0xFFFF0000) != (nPrevSpriteXOffset & 0xFFFF0000)) {
-
- nPrevSpriteXOffset = nSpriteXOffset2;
- #endif
- PLOTPIXEL(0, pSpriteRowData[nSpriteXOffset2 >> 16]);
-
- #if ZOOM == 2
- }
- #endif
-
- ADVANCECOLUMN;
- #if ZBUFFER != 0
- ADVANCEZCOLUMN;
- #endif
-
- }
-
- ADVANCEROW;
- #if ZBUFFER != 0
- ADVANCEZROW;
- #endif
- }
-
-#endif
-}
-
-#undef OFFSET
-#undef FLIP
-#undef PLOTPIXEL
-#undef TESTCOLOUR
-#undef ADVANCEZROW
-#undef ADVANCEZCOLUMN
-#undef ADVANCEROW
-#undef ADVANCECOLUMN
-#undef TESTZBUF
-#undef WRITEZBUF
-#undef ZBUF
-#undef ZOOMMODE
-#undef DEPTH
-#undef FUNCTIONNAME
-#undef FN
-
diff --git a/jan/src/burn/drv/cave/cave_tile.cpp b/jan/src/burn/drv/cave/cave_tile.cpp
deleted file mode 100644
index 29db48925..000000000
--- a/jan/src/burn/drv/cave/cave_tile.cpp
+++ /dev/null
@@ -1,966 +0,0 @@
-// Cave hardware tilemaps
-
-#include "cave.h"
-
-struct CaveTile { INT16 x; INT16 y; UINT32 tile; };
-
-static CaveTile* CaveTileQueueMemory[4] = { NULL, };
-static CaveTile* CaveTileQueue[4][4];
-
-UINT32 CaveTileReg[4][3];
-
-UINT8* CaveTileROM[4] = { NULL, };
-UINT8* CaveTileRAM[4] = { NULL, };
-
-static INT8* CaveTileAttrib[4] = { NULL, };
-
-INT32 nCaveTileBank = 0;
-
-// Used when row-select mode is enabled
-static INT32* pRowScroll[4] = { NULL, };
-static INT32* pRowSelect[4] = { NULL, };
-
-static INT32 nLayerXOffset[4];
-static INT32 nLayerYOffset;
-static INT32 nPaletteOffset[4];
-static INT32 nPaletteSize[4];
-
-static INT32 CaveTileCount[4];
-static INT32 CaveTileMax[4];
-static INT32 nTileMask[4];
-
-static UINT8* pTile;
-static UINT32* pTileData;
-static UINT32* pTilePalette;
-static INT32* pTileRowInfo;
-
-typedef void (*RenderTileFunction)();
-static RenderTileFunction* RenderTile;
-
-static INT32 nTileXPos, nTileYPos, nRowOffset;
-
-static INT32 nClipX8, nClipX16;
-static INT32 nClipY8, nClipY16;
-
-// Include the tile rendering functions
-#include "cave_tile_func.h"
-
-static void CaveQueue8x8Layer_Normal(INT32 nLayer)
-{
- INT32 x, y;
- INT32 bx, by, cx, cy, mx;
- INT32 nTileColumn, nTileRow;
- UINT32 nTileNumber;
-
- UINT8* pTileRAM = CaveTileRAM[nLayer];
-
- UINT32 nTileOffset = 0;
- if (nCaveTileBank) {
- nTileOffset = 0x040000;
- }
-
- mx = (nCaveXSize >> 3) << 2;
-
- bx = CaveTileReg[nLayer][0] - 0x0A + nLayerXOffset[nLayer];
- bx &= 0x01FF;
- cx = (bx >> 3) << 2;
- bx &= 0x0007;
-
- by = CaveTileReg[nLayer][1] + nLayerYOffset;
- by &= 0x01FF;
- cy = (by >> 3) << 8;
- by &= 0x0007;
-
- for (y = 0; y < (31 << 8); y += (1 << 8)) {
- nTileRow = (cy + y) & (0x3F << 8);
- nTileYPos = (y >> 5) - by;
-
- if (nTileYPos <= -8 || nTileYPos >= nCaveYSize) {
- continue;
- }
-
- for (x = mx; x >= 0; x -= (1 << 2)) {
- nTileColumn = (cx + x) & (0x3F << 2);
- nTileNumber = BURN_ENDIAN_SWAP_INT16(*((UINT16*)(pTileRAM + 0x4000 + nTileRow + nTileColumn))) << 16;
- nTileNumber |= BURN_ENDIAN_SWAP_INT16(*((UINT16*)(pTileRAM + 0x4002 + nTileRow + nTileColumn)));
-
- nTileNumber |= nTileOffset;
-
- if (CaveTileAttrib[nLayer][nTileNumber & nTileMask[nLayer]]) {
- continue;
- }
-
- nTileXPos = (x << 1) - bx;
-
- if (nTileXPos <= -8 || nTileXPos >= nCaveXSize) {
- continue;
- }
-
- CaveTileQueue[nLayer][nTileNumber >> 30]->x = nTileXPos;
- CaveTileQueue[nLayer][nTileNumber >> 30]->y = nTileYPos;
- CaveTileQueue[nLayer][nTileNumber >> 30]->tile = nTileNumber;
- CaveTileQueue[nLayer][nTileNumber >> 30]++;
- }
- }
-
- return;
-}
-
-static void Cave8x8Layer_Normal(INT32 nLayer, UINT32 nPriority)
-{
- UINT32 nTileNumber;
-
- UINT32* pPalette = CavePalette + nPaletteOffset[nLayer];
- UINT32 nPaletteMask = 0x3F000000;
- if (nPaletteSize[nLayer] == 6) {
- nPaletteMask = 0x0F000000;
- }
- INT32 nPaletteShift = 24 - nPaletteSize[nLayer];
-
- CaveTile* TileQueue = CaveTileQueue[nLayer][nPriority];
-
- while ((nTileXPos = TileQueue->x) < 9999) {
- nTileYPos = TileQueue->y;
- nTileNumber = TileQueue->tile;
- pTilePalette = pPalette + ((nTileNumber & nPaletteMask) >> nPaletteShift);
- nTileNumber &= nTileMask[nLayer];
-
- pTile = pBurnDraw + (nTileYPos * nBurnPitch) + (nTileXPos * nBurnBpp);
-
- pTileData = (UINT32*)(CaveTileROM[nLayer] + (nTileNumber << 6));
-
- if (nTileYPos < 0 || nTileYPos > nClipY8 || nTileXPos < 0 || nTileXPos > nClipX8) {
- RenderTile[1]();
- } else {
- RenderTile[0]();
- }
-
- TileQueue++;
- }
-
- return;
-}
-
-static void Cave8x8Layer_RowScroll(INT32 nLayer, UINT32 nPriority)
-{
- INT32 x, y;
- INT32 bx, by, cy;
- INT32 nTileColumn, nTileRow;
- UINT32 nTileNumber;
-
- UINT8* pTileRAM = CaveTileRAM[nLayer];
- UINT32* pPalette = CavePalette + nPaletteOffset[nLayer];
- INT32 nPaletteShift = 24 - nPaletteSize[nLayer];
-
- INT32* rowscroll = pRowScroll[nLayer];
-
- INT32 count = CaveTileCount[nLayer];
-
- if (count >= (64 * 31)) {
- return;
- }
-
- UINT32 nTileOffset = 0;
- if (nCaveTileBank) {
- nTileOffset = 0x040000;
- }
-
- bx = CaveTileReg[nLayer][0] - 0x0A + nLayerXOffset[nLayer];
- bx &= 0x01FF;
-
- by = CaveTileReg[nLayer][1] + nLayerYOffset;
- by &= 0x01FF;
- cy = (by >> 3) << 8;
- by &= 0x0007;
-
- if (nPriority == 0) {
- INT32 dy = CaveTileReg[nLayer][1] + 0x12 - nCaveRowModeOffset;
-
- for (y = 0; y < nCaveYSize; y++) {
- rowscroll[y] = BURN_ENDIAN_SWAP_INT16(*((UINT16*)(pTileRAM + 0x1000 + (((dy + y) & 0x01FF) << 2)))) + bx;
- }
- }
-
- for (y = 0; y < (31 << 8); y += (1 << 8)) {
- nTileYPos = (y >> 5) - by;
-
- nTileRow = (cy + y) & (0x3F << 8);
- pTileRowInfo = rowscroll + nTileYPos;
-
- for (x = 0; x < (64 << 2); x += (1 << 2)) {
- nTileColumn = x & (0x3F << 2);
- nTileNumber = BURN_ENDIAN_SWAP_INT16(*((UINT16*)(pTileRAM + 0x4000 + nTileRow + nTileColumn))) << 16;
- if ((nTileNumber >> 30) != nPriority) {
- continue;
- }
- nTileNumber |= BURN_ENDIAN_SWAP_INT16(*((UINT16*)(pTileRAM + 0x4002 + nTileRow + nTileColumn)));
- pTilePalette = pPalette + ((nTileNumber & 0x3F000000) >> nPaletteShift);
-
- nTileNumber |= nTileOffset;
- nTileNumber &= nTileMask[nLayer];
-
- count++;
-
- if (nTileYPos <= -8 || nTileYPos >= nCaveYSize) {
- continue;
- }
-
- if (*((UINT32*)(CaveTileAttrib[nLayer] + nTileNumber))) {
- continue;
- }
-
- nTileXPos = (x << 1);
-
- pTile = pBurnDraw + (nTileYPos * nBurnPitch);
-
- pTileData = (UINT32*)(CaveTileROM[nLayer] + (nTileNumber << 6));
-
- if (nTileYPos < 0 || nTileYPos > nClipY8 || nTileXPos < 0 || nTileXPos > nClipX8) {
- RenderTile[3]();
- } else {
- RenderTile[2]();
- }
- }
- }
-
- if (count >= (64 * 31)) {
- CaveTileMax[0] -= 0x0123;
- CaveTileMax[1] -= 0x0123;
- CaveTileMax[2] -= 0x0123;
- CaveTileMax[3] -= 0x0123;
- }
- CaveTileCount[nLayer] = count;
-
- return;
-}
-
-static void CaveQueue16x16Layer_Normal(INT32 nLayer)
-{
- INT32 x, y;
- INT32 bx, by, cx, cy, mx;
- INT32 nTileColumn, nTileRow;
- UINT32 nTileNumber;
-
- UINT8* pTileRAM = CaveTileRAM[nLayer];
-
- mx = (nCaveXSize >> 4) << 2;
-
- bx = CaveTileReg[nLayer][0] - 0x12 + nLayerXOffset[nLayer];
- bx &= 0x01FF;
- cx = (bx >> 4) << 2;
- bx &= 0x000F;
-
- by = CaveTileReg[nLayer][1] + nLayerYOffset;
- by &= 0x01FF;
- cy = (by >> 4) << 7;
- by &= 0x000F;
-
- for (y = 0; y < (16 << 7); y += (1 << 7)) {
- nTileRow = (cy + y) & (0x1F << 7);
- nTileYPos = (y >> 3) - by;
-
- if (nTileYPos <= -16 || nTileYPos >= nCaveYSize) {
- continue;
- }
-
- for (x = mx; x >= 0; x -= (1 << 2)) {
- nTileColumn = (cx + x) & (0x1F << 2);
- nTileNumber = BURN_ENDIAN_SWAP_INT16(*((UINT16*)(pTileRAM + 0x0000 + nTileRow + nTileColumn))) << 16;
- nTileNumber |= BURN_ENDIAN_SWAP_INT16(*((UINT16*)(pTileRAM + 0x0002 + nTileRow + nTileColumn)));
-
- if (*((UINT32*)(CaveTileAttrib[nLayer] + ((nTileNumber << 2) & nTileMask[nLayer]))) == 0x01010101) {
- continue;
- }
-
- nTileXPos = (x << 2) - bx;
-
- if (nTileXPos <= -16 || nTileXPos >= nCaveXSize) {
- continue;
- }
-
- CaveTileQueue[nLayer][nTileNumber >> 30]->x = nTileXPos;
- CaveTileQueue[nLayer][nTileNumber >> 30]->y = nTileYPos;
- CaveTileQueue[nLayer][nTileNumber >> 30]->tile = nTileNumber;
- CaveTileQueue[nLayer][nTileNumber >> 30]++;
- }
- }
-
- return;
-}
-
-static void Cave16x16Layer_Normal(INT32 nLayer, UINT32 nPriority)
-{
- UINT32 nTileNumber, nAttrib;
- UINT32* pTileStart;
-
- UINT32* pPalette = CavePalette + nPaletteOffset[nLayer];
- INT32 nPaletteShift = 24 - nPaletteSize[nLayer];
- UINT32 nPaletteMask = 0x3F000000;
- if (nPaletteSize[nLayer] == 6) {
- nPaletteMask = 0x0F000000;
- }
-
- CaveTile* TileQueue = CaveTileQueue[nLayer][nPriority];
-
- while ((nTileXPos = TileQueue->x) < 9999) {
- nTileYPos = TileQueue->y;
- nTileNumber = TileQueue->tile;
- pTilePalette = pPalette + ((nTileNumber & nPaletteMask) >> nPaletteShift);
- nTileNumber <<= 2;
- nTileNumber &= nTileMask[nLayer];
-
- nAttrib = BURN_ENDIAN_SWAP_INT32(*((UINT32*)(CaveTileAttrib[nLayer] + nTileNumber)));
-
- pTile = pBurnDraw + (nTileYPos * nBurnPitch) + (nTileXPos * nBurnBpp);
-
- pTileStart = (UINT32*)(CaveTileROM[nLayer] + (nTileNumber << 6));
-
- if (nTileXPos < 0 || nTileXPos > nClipX16 || nTileYPos < 0 || nTileYPos > nClipY16) {
-
- if ((nAttrib & 0x000000FF) == 0) {
- pTileData = pTileStart;
- if (nTileXPos > -8 && nTileXPos < nCaveXSize && nTileYPos > -8 && nTileYPos < nCaveYSize) {
- if (nTileXPos >= 0 && nTileXPos <= nClipX8 && nTileYPos >= 0 && nTileYPos <= nClipY8) {
- RenderTile[0]();
- } else {
- RenderTile[1]();
- }
- }
- }
-
- nTileXPos += 8;
- pTile += 8 * nBurnBpp;
- if ((nAttrib & 0x0000FF00) == 0) {
- if (nTileXPos > -8 && nTileXPos < nCaveXSize && nTileYPos > -8 && nTileYPos < nCaveYSize) {
- pTileData = pTileStart + 16;
- if (nTileXPos >= 0 && nTileXPos <= nClipX8 && nTileYPos >= 0 && nTileYPos <= nClipY8) {
- RenderTile[0]();
- } else{
- RenderTile[1]();
- }
- }
- }
-
- nTileXPos -= 8;
- nTileYPos += 8;
- pTile = pBurnDraw + (nTileYPos * nBurnPitch) + (nTileXPos * nBurnBpp);
- if ((nAttrib & 0x00FF0000) == 0) {
- if (nTileXPos > -8 && nTileXPos < nCaveXSize && nTileYPos > -8 && nTileYPos < nCaveYSize) {
- pTileData = pTileStart + 32;
- if (nTileXPos >= 0 && nTileXPos <= nClipX8 && nTileYPos >= 0 && nTileYPos <= nClipY8) {
- RenderTile[0]();
- } else {
- RenderTile[1]();
- }
- }
- }
-
- nTileXPos += 8;
- pTile += 8 * nBurnBpp;
- if ((nAttrib & 0xFF000000) == 0) {
- if (nTileXPos > -8 && nTileXPos < nCaveXSize && nTileYPos > -8 && nTileYPos < nCaveYSize) {
- pTileData = pTileStart + 48;
- if (nTileXPos >= 0 && nTileXPos <= nClipX8 && nTileYPos >= 0 && nTileYPos <= nClipY8) {
- RenderTile[0]();
- } else {
- RenderTile[1]();
- }
- }
- }
-
- } else {
- if ((nAttrib & 0x000000FF) == 0) {
- pTileData = pTileStart;
- RenderTile[0]();
- }
- nTileXPos += 8;
- pTile += 8 * nBurnBpp;
- if ((nAttrib & 0x0000FF00) == 0) {
- pTileData = pTileStart + 16;
- RenderTile[0]();
- }
- nTileXPos -= 8;
- nTileYPos += 8;
- pTile = pBurnDraw + (nTileYPos * nBurnPitch) + (nTileXPos * nBurnBpp);
- if ((nAttrib & 0x00FF0000) == 0) {
- pTileData = pTileStart + 32;
- RenderTile[0]();
- }
- nTileXPos += 8;
- pTile += 8 * nBurnBpp;
- if ((nAttrib & 0xFF000000) == 0) {
- pTileData = pTileStart + 48;
- RenderTile[0]();
- }
- }
-
- TileQueue++;
- }
-
- return;
-}
-
-static void Cave16x16Layer_RowScroll(INT32 nLayer, UINT32 nPriority)
-{
- INT32 x, y;
- INT32 bx, by, cy;
- INT32 nTileColumn, nTileRow;
- UINT32 nTileNumber, nAttrib;
- UINT32* pTileStart;
-
- UINT8* pTileRAM = CaveTileRAM[nLayer];
- UINT32* pPalette = CavePalette + nPaletteOffset[nLayer];
- INT32 nPaletteShift = 24 - nPaletteSize[nLayer];
- UINT32 nPaletteMask = 0x3F000000;
- if (nPaletteSize[nLayer] == 6) {
- nPaletteMask = 0x0F000000;
- }
-
- INT32* rowscroll = pRowScroll[nLayer];
-
- INT32 count = CaveTileCount[nLayer];
-
- if (count >= (32 * 16)) {
- return;
- }
-
- bx = CaveTileReg[nLayer][0] - 0x12 + nLayerXOffset[nLayer];
- bx &= 0x01FF;
-
- by = CaveTileReg[nLayer][1] + nLayerYOffset;
- by &= 0x01FF;
- cy = (by >> 4) << 7;
- by &= 0x000F;
-
- if (nPriority == 0) {
- INT32 dy = CaveTileReg[nLayer][1] + 0x12 - nCaveRowModeOffset;
-
- for (y = 0; y < nCaveYSize; y++) {
- rowscroll[y] = BURN_ENDIAN_SWAP_INT16(*((UINT16*)(pTileRAM + 0x1000 + (((dy + y) & 0x01FF) << 2)))) + bx;
- }
- }
-
- for (y = 0; y < (16 << 7); y += (1 << 7)) {
- nTileRow = (cy + y) & (0x1F << 7);
- nTileYPos = (y >> 3) - by;
-
- pTileRowInfo = rowscroll + nTileYPos;
-
- for (x = 0; x < (32 << 2); x += (1 << 2)) {
- nTileColumn = x & (0x1F << 2);
- nTileNumber = BURN_ENDIAN_SWAP_INT16(*((UINT16*)(pTileRAM + 0x0000 + nTileRow + nTileColumn))) << 16;
- if ((nTileNumber >> 30) != nPriority) {
- continue;
- }
- nTileNumber |= BURN_ENDIAN_SWAP_INT16(*((UINT16*)(pTileRAM + 0x0002 + nTileRow + nTileColumn)));
- pTilePalette = pPalette + ((nTileNumber & nPaletteMask) >> nPaletteShift);
- nTileNumber <<= 2;
- nTileNumber &= nTileMask[nLayer];
-
- count++;
-
- nAttrib = BURN_ENDIAN_SWAP_INT32(*((UINT32*)(CaveTileAttrib[nLayer] + nTileNumber)));
- if (nAttrib == 0x01010101) {
- continue;
- }
-
- nTileXPos = (x << 2);
-
- pTile = pBurnDraw + (nTileYPos * nBurnPitch);
-
- pTileStart = (UINT32*)(CaveTileROM[nLayer] + (nTileNumber << 6));
-
- if (nTileYPos < 0 || nTileYPos > nClipY16) {
- if ((nAttrib & 0x000000FF) == 0) {
- pTileData = pTileStart;
- if (nTileYPos > -8 && nTileYPos < nCaveYSize) {
- if (nTileYPos >= 0 && nTileYPos <= nClipY8) {
- RenderTile[2]();
- } else {
- RenderTile[3]();
- }
- }
- }
- nTileXPos += 8;
- if ((nAttrib & 0x0000FF00) == 0) {
- if (nTileYPos > -8 && nTileYPos < nCaveYSize) {
- pTileData = pTileStart + 16;
- if (nTileYPos >= 0 && nTileYPos <= nClipY8) {
- RenderTile[2]();
- } else {
- RenderTile[3]();
- }
- }
- }
- nTileXPos -= 8;
- nTileYPos += 8;
-
- pTileRowInfo += 8;
-
- pTile = pBurnDraw + (nTileYPos * nBurnPitch);
- if ((nAttrib & 0x00FF0000) == 0) {
- if (nTileYPos > -8 && nTileYPos < nCaveYSize) {
- pTileData = pTileStart + 32;
- if (nTileYPos >= 0 && nTileYPos <= nClipY8) {
- RenderTile[2]();
- } else {
- RenderTile[3]();
- }
- }
- }
- nTileXPos += 8;
- if ((nAttrib & 0xFF000000) == 0) {
- if (nTileYPos > -8 && nTileYPos < nCaveYSize) {
- pTileData = pTileStart + 48;
- if (nTileYPos >= 0 && nTileYPos <= nClipY8) {
- RenderTile[2]();
- } else {
- RenderTile[3]();
- }
- }
- }
- } else {
- if ((nAttrib & 0x000000FF) == 0) {
- pTileData = pTileStart;
- RenderTile[2]();
- }
- nTileXPos += 8;
- if ((nAttrib & 0x0000FF00) == 0) {
- pTileData = pTileStart + 16;
- RenderTile[2]();
- }
- nTileXPos -= 8;
- nTileYPos += 8;
-
- pTileRowInfo += 8;
-
- pTile = pBurnDraw + (nTileYPos * nBurnPitch);
- if ((nAttrib & 0x00FF0000) == 0) {
- pTileData = pTileStart + 32;
- RenderTile[2]();
- }
- nTileXPos += 8;
- if ((nAttrib & 0xFF000000) == 0) {
- pTileData = pTileStart + 48;
- RenderTile[2]();
- }
- }
- nTileYPos -= 8;
-
- pTileRowInfo -= 8;
- }
- }
-
- if (count >= (32 * 16)) {
- CaveTileMax[0] -= 0x0123;
- CaveTileMax[1] -= 0x0123;
- CaveTileMax[2] -= 0x0123;
- CaveTileMax[3] -= 0x0123;
- }
- CaveTileCount[nLayer] = count;
-
- return;
-}
-
-static void Cave16x16Layer_RowSelect(INT32 nLayer, UINT32 nPriority)
-{
- INT32 x, y, ry, rx;
- INT32 bx, by, mx;
- INT32 nTileColumn, nTileRow;
- UINT32 nTileNumber;
- UINT32* pTileStart;
-
- UINT8* pTileRAM = CaveTileRAM[nLayer];
- UINT32* pPalette = CavePalette + nPaletteOffset[nLayer];
- INT32 nPaletteShift = 24 - nPaletteSize[nLayer];
- UINT32 nPaletteMask = 0x3F000000;
- if (nPaletteSize[nLayer] == 6) {
- nPaletteMask = 0x0F000000;
- }
-
- INT32* rowselect = pRowSelect[nLayer];
- INT32* rowscroll = pRowScroll[nLayer];
-
- INT32 count = CaveTileCount[nLayer];
-
- mx = nCaveXSize >> 4;
-
- if (count >= nCaveYSize * (mx + 1)) {
- return;
- }
-
- bx = CaveTileReg[nLayer][0] - 0x12 + nLayerXOffset[nLayer];
- bx &= 0x01FF;
-
- by = CaveTileReg[nLayer][1] + nLayerYOffset;
- by &= 0x01FF;
-
- if (nPriority == 0) {
- INT32 cy = CaveTileReg[nLayer][1] + 0x12 - nCaveRowModeOffset;
-
- if (CaveTileReg[nLayer][0] & 0x4000) { // Row-scroll mode
- for (y = 0; y < nCaveYSize; y++) {
- rowselect[y] = BURN_ENDIAN_SWAP_INT16(*((UINT16*)(pTileRAM + 0x1002 + (((cy + y) & 0x01FF) << 2))));
- rowscroll[y] = BURN_ENDIAN_SWAP_INT16(*((UINT16*)(pTileRAM + 0x1000 + (((cy + y) & 0x01FF) << 2)))) + bx;
- }
- } else {
- for (y = 0; y < nCaveYSize; y++) {
- rowselect[y] = BURN_ENDIAN_SWAP_INT16(*((UINT16*)(pTileRAM + 0x1002 + (((cy + y) & 0x01FF) << 2))));
- }
- }
- }
-
- for (y = 0; y < nCaveYSize; y++) {
- ry = rowselect[y];
- nTileRow = ((ry >> 4) & 0x1F) << 7;
- nTileYPos = y;
-
- if (CaveTileReg[nLayer][0] & 0x4000) { // Row-scroll mode
- rx = rowscroll[y];
- ry = (((ry & 8) << 1) + (ry & 7)) << 1;
-
- for (x = 0; x <= mx; x++) {
-
- nTileColumn = (((rx >> 4) + x) & 0x1F) << 2;
- nTileNumber = BURN_ENDIAN_SWAP_INT16(*((UINT16*)(pTileRAM + 0x0000 + nTileRow + nTileColumn))) << 16;
- if ((nTileNumber >> 30) != nPriority) {
- continue;
- }
- nTileNumber |= BURN_ENDIAN_SWAP_INT16(*((UINT16*)(pTileRAM + 0x0002 + nTileRow + nTileColumn)));
- pTilePalette = pPalette + ((nTileNumber & nPaletteMask) >> nPaletteShift);
- nTileNumber &= nTileMask[nLayer];
-
- count++;
-
- if (((UINT32*)CaveTileAttrib[nLayer])[nTileNumber] == 0x01010101) {
- continue;
- }
-
- nTileXPos = (x << 4) - (rx & 15);
-
- if (nTileXPos <= -16 || nTileXPos >= nCaveXSize) {
- continue;
- }
-
- pTile = pBurnDraw + (nTileYPos * nBurnPitch) + (nTileXPos * nBurnBpp);
-
- pTileStart = (UINT32*)(CaveTileROM[nLayer] + (nTileNumber << 8));
- pTileStart += ry;
-
- pTileData = pTileStart;
- if (nTileXPos >= 0 && nTileXPos <= nClipX8) {
- RenderTile[4]();
- } else {
- RenderTile[5]();
- }
- nTileXPos += 8;
- pTile += (nBurnBpp << 3);
- pTileData = pTileStart + 16;
- if (nTileXPos >= 0 && nTileXPos <= nClipX16) {
- RenderTile[4]();
- } else {
- RenderTile[5]();
- }
- }
- } else {
- nTileXPos = - (bx & 15);
- pTile = pBurnDraw + (nTileYPos * nBurnPitch) - ((bx & 15) * nBurnBpp);
-
- ry = (((ry & 8) << 1) + (ry & 7)) << 1;
-
- for (x = 0; x <= mx; x++) {
- nTileColumn = (((bx >> 4) + x) & 0x1F) << 2;
- nTileNumber = BURN_ENDIAN_SWAP_INT16(*((UINT16*)(pTileRAM + 0x0000 + nTileRow + nTileColumn))) << 16;
- if ((nTileNumber >> 30) != nPriority) {
- nTileXPos += 16;
- pTile += (nBurnBpp << 4);
- continue;
- }
- nTileNumber |= BURN_ENDIAN_SWAP_INT16(*((UINT16*)(pTileRAM + 0x0002 + nTileRow + nTileColumn)));
- pTilePalette = pPalette + ((nTileNumber & nPaletteMask) >> nPaletteShift);
- nTileNumber &= nTileMask[nLayer];
-
- count++;
-
- if (((UINT32*)CaveTileAttrib[nLayer])[nTileNumber] == 0x01010101) {
- nTileXPos += 16;
- pTile += (nBurnBpp << 4);
- continue;
- }
-
- pTileStart = (UINT32*)(CaveTileROM[nLayer] + (nTileNumber << 8));
- pTileStart += ry;
-
- pTileData = pTileStart;
-
- if (nTileXPos >= 0 && nTileXPos <= nClipX8) {
- RenderTile[4]();
- } else {
- RenderTile[5]();
- }
- nTileXPos += 8;
- pTile += (nBurnBpp << 3);
-
- pTileData = pTileStart + 16;
- if (nTileXPos >= 0 && nTileXPos <= nClipX8) {
- RenderTile[4]();
- } else {
- RenderTile[5]();
- }
- nTileXPos += 8;
- pTile += (nBurnBpp << 3);
- }
- }
- }
-
- if (count >= nCaveYSize * (mx + 1)) {
- CaveTileMax[0] -= 0x0123;
- CaveTileMax[1] -= 0x0123;
- CaveTileMax[2] -= 0x0123;
- CaveTileMax[3] -= 0x0123;
- }
- CaveTileCount[nLayer] = count;
-
- return;
-}
-
-static void Cave16x16Layer(INT32 nLayer, UINT32 nPriority)
-{
- if (CaveTileReg[nLayer][1] & 0x4000) { // Row-select mode
- Cave16x16Layer_RowSelect(nLayer, nPriority);
-// bprintf(PRINT_NORMAL, " Layer %d row-select mode enabled (16x16)\n", nLayer);
- return;
- }
-
- if (CaveTileReg[nLayer][0] & 0x4000) { // Row-scroll mode
- Cave16x16Layer_RowScroll(nLayer, nPriority);
-// bprintf(PRINT_NORMAL, " Layer %d row-scroll mode enabled (16x16)\n", nLayer);
- return;
- }
-
- Cave16x16Layer_Normal(nLayer, nPriority);
-
- return;
-}
-
-static void Cave8x8Layer(INT32 nLayer, UINT32 nPriority)
-{
-#if 0
- if (CaveTileReg[nLayer][1] & 0x4000) { // Row-select mode
- Cave8x8Layer_RowSelect(nLayer, nPriority);
-// bprintf(PRINT_NORMAL, " Layer %d row-select mode enabled ( 8x 8)\n", nLayer);
- return;
- }
-#else
- if (CaveTileReg[nLayer][1] & 0x4000) {
-// bprintf(PRINT_ERROR, " Layer %d row-select mode enabled ( 8x 8, UNSUPPORTED!)\n", nLayer);
- }
-#endif
-
- if (CaveTileReg[nLayer][0] & 0x4000) { // Row-scroll mode
- Cave8x8Layer_RowScroll(nLayer, nPriority);
-// bprintf(PRINT_NORMAL, " Layer %d row-scroll mode enabled ( 8x 8)\n", nLayer);
- return;
- }
-
- Cave8x8Layer_Normal(nLayer, nPriority);
-
- return;
-}
-
-INT32 CaveTileRender(INT32 nMode)
-{
- UINT32 nPriority;
- INT32 nLowPriority;
- INT32 nLayer;
- INT32 nOffset = 0;
-
- CaveTileCount[0] = CaveTileCount[1] = CaveTileCount[2] = CaveTileCount[3] = 0;
- CaveTileMax[0] = CaveTileMax[1] = CaveTileMax[2] = CaveTileMax[3] = 0;
-
- nLayerYOffset = 0x12 - nCaveYOffset - nCaveExtraYOffset;
-
- for (nLayer = 0; nLayer < 4; nLayer++) {
-
- nLayerXOffset[nLayer] = nLayer + nOffset - nCaveXOffset - nCaveExtraXOffset;
-
- if ((CaveTileReg[nLayer][2] & 0x0010) == 0) {
-
- for (nPriority = 0; nPriority < 4; nPriority++) {
- CaveTileQueue[nLayer][nPriority] = &CaveTileQueueMemory[nLayer][nPriority * 1536];
- }
- if (nBurnLayer & (8 >> nLayer)) {
- if (CaveTileReg[nLayer][1] & 0x2000) {
- if (nMode && ((CaveTileReg[nLayer][0] | CaveTileReg[nLayer][1]) & 0x4000)) {
- CaveTileMax[0] += 0x0123;
- CaveTileMax[1] += 0x0123;
- CaveTileMax[2] += 0x0123;
- CaveTileMax[3] += 0x0123;
- } else {
- CaveQueue16x16Layer_Normal(nLayer);
- }
- } else {
- if (nMode && (CaveTileReg[nLayer][0] & 0x4000)) {
- CaveTileMax[0] += 0x0123;
- CaveTileMax[1] += 0x0123;
- CaveTileMax[2] += 0x0123;
- CaveTileMax[3] += 0x0123;
- } else {
- CaveQueue8x8Layer_Normal(nLayer);
- }
-
-// nOffset += 8;
- }
- }
-
- for (nPriority = 0; nPriority < 4; nPriority++) {
- CaveTileQueue[nLayer][nPriority]->x = 9999;
- CaveTileQueue[nLayer][nPriority] = &CaveTileQueueMemory[nLayer][nPriority * 1536];
- if (CaveTileQueue[nLayer][nPriority]->x < 9999) {
- CaveTileMax[nPriority] += 0x123;
- }
- }
- }
- }
-
- nLowPriority = 0;
-
- for (nPriority = 0; nPriority < 4; nPriority++) {
-
- if (CaveTileMax[nPriority] || nPriority == 3) {
- CaveSpriteRender(nLowPriority, nPriority);
- nLowPriority = nPriority + 1;
- }
-
- for (UINT32 i = 0; i < 4; i++) {
- for (nLayer = 0; nLayer < 4; nLayer++) {
- if ((CaveTileReg[nLayer][2] & 0x0003) == i) {
- if ((CaveTileReg[nLayer][2] & 0x0010) || (nBurnLayer & (8 >> nLayer)) == 0) {
- continue;
- }
-
- if (CaveTileReg[nLayer][1] & 0x2000) {
- if (nMode) {
- Cave16x16Layer(nLayer, nPriority);
- } else {
- Cave16x16Layer_Normal(nLayer, nPriority);
- }
- } else {
- if (nMode) {
- Cave8x8Layer(nLayer, nPriority);
- } else {
- Cave8x8Layer_Normal(nLayer, nPriority);
- }
- }
- }
- }
- }
- }
-
- return 0;
-}
-
-void CaveTileExit()
-{
- for (INT32 nLayer = 0; nLayer < 4; nLayer++) {
- BurnFree(CaveTileAttrib[nLayer]);
- BurnFree(CaveTileQueueMemory[nLayer]);
- BurnFree(pRowScroll[nLayer]);
- BurnFree(pRowSelect[nLayer]);
- }
-
- nCaveXOffset = nCaveYOffset = 0;
- nCaveRowModeOffset = 0;
- nCaveExtraXOffset = nCaveExtraYOffset = 0;
-
- return;
-}
-
-INT32 CaveTileInit()
-{
- for (INT32 nLayer = 0; nLayer < 4; nLayer++) {
- CaveTileReg[nLayer][0] = 0x0000;
- CaveTileReg[nLayer][1] = 0x0000;
- CaveTileReg[nLayer][2] = 0x0010; // Disable layer
- }
-
- nCaveTileBank = 0;
-
- BurnDrvGetFullSize(&nCaveXSize, &nCaveYSize);
-
- nClipX8 = nCaveXSize - 8;
- nClipX16 = nCaveXSize - 16;
- nClipY8 = nCaveYSize - 8;
- nClipY16 = nCaveYSize - 16;
-
- RenderTile = RenderTile_ROT0[(nCaveXSize == 320) ? 0 : 1];
-
- return 0;
-}
-
-INT32 CaveTileInitLayer(INT32 nLayer, INT32 nROMSize, INT32 nBitdepth, INT32 nOffset)
-{
- INT32 nTileSize = (8 << 3);
- INT32 nNumTiles = nROMSize / nTileSize;
-
- for (nTileMask[nLayer] = 1; nTileMask[nLayer] < nNumTiles; nTileMask[nLayer] <<= 1) { }
- nTileMask[nLayer]--;
-
- if (CaveTileAttrib[nLayer]) {
- BurnFree(CaveTileAttrib[nLayer]);
- }
- CaveTileAttrib[nLayer] = (INT8*)BurnMalloc(nTileMask[nLayer] + 1);
- if (CaveTileAttrib[nLayer] == NULL) {
- return 1;
- }
-
- for (INT32 i = 0; i < nNumTiles; i++) {
- bool bTransparent = true;
- for (INT32 j = i * nTileSize; j < (i + 1) * nTileSize; j++) {
- if (CaveTileROM[nLayer][j]) {
- bTransparent = false;
- break;
- }
- }
- if (bTransparent) {
- CaveTileAttrib[nLayer][i] = 1;
- } else {
- CaveTileAttrib[nLayer][i] = 0;
- }
- }
-
- for (INT32 i = nNumTiles; i <= nTileMask[nLayer]; i++) {
- CaveTileAttrib[nLayer][i] = 1;
- }
-
- if (CaveTileQueueMemory[nLayer]) {
- BurnFree(CaveTileQueueMemory[nLayer]);
- }
- CaveTileQueueMemory[nLayer] = (CaveTile*)BurnMalloc(4 * 1536 * sizeof(CaveTile));
- if (CaveTileQueueMemory[nLayer] == NULL) {
- return 1;
- }
-
- if (pRowScroll[nLayer]) {
- BurnFree(pRowScroll[nLayer]);
- }
- pRowScroll[nLayer] = (INT32*)BurnMalloc(nCaveYSize * sizeof(INT32));
- if (pRowScroll[nLayer] == NULL) {
- return 1;
- }
-
- if (pRowSelect[nLayer]) {
- BurnFree(pRowSelect[nLayer]);
- }
- pRowSelect[nLayer] = (INT32*)BurnMalloc(nCaveYSize * sizeof(INT32));
- if (pRowSelect[nLayer] == NULL) {
- return 1;
- }
-
- nPaletteSize[nLayer] = nBitdepth;
- nPaletteOffset[nLayer] = nOffset;
-
- CaveTileReg[nLayer][2] = 0x0000; // Enable layer
-
- return 0;
-}
diff --git a/jan/src/burn/drv/cave/cave_tile_render.h b/jan/src/burn/drv/cave/cave_tile_render.h
deleted file mode 100644
index 92d16f99c..000000000
--- a/jan/src/burn/drv/cave/cave_tile_render.h
+++ /dev/null
@@ -1,370 +0,0 @@
-// Graphics format: 8 8 pixel tiles, 4/8 bits/pixel.
-
-// Create a unique name for each of the functions
-#define FN(a,b,c,d,e,f,g,h) RenderTile ## a ## _ ## b ## _ROT ## c ## d ## e ## f ## g ## h
-#define FUNCTIONNAME(a,b,c,d,e,f,g,h) FN(a,b,c,d,e,f,g,h)
-
-#if ROT == 0
-
- #if XFLIP == 0
- #define ADVANCECOLUMN pPixel += (BPP >> 3)
- #else
- #error illegal XFLIP value
- #endif
-
- #if YFLIP == 0
- #define ADVANCEROW pTileRow += ((BPP >> 3) * XSIZE)
- #else
- #error illegal YFLIP value
- #endif
-
-#else
- #error unsupported rotation angle specified
-#endif
-
-#if DOCLIP == 0
- #define CLIP _NOCLIP
-#elif DOCLIP == 1
- #define CLIP _CLIP
-#else
- #error illegal doclip value.
-#endif
-
-#if EIGHTBIT == 0
- #define DEPTH _16
-#elif EIGHTBIT == 1
- #define DEPTH _256
-#else
- #error illegal eightbit value
-#endif
-
-#define TESTCOLOUR(x) x
-
-#if BPP == 16
- #define PLOTPIXEL(a) if (TESTCOLOUR(a)) { \
- *((UINT16*)pPixel) = (UINT16)pTilePalette[a]; \
- }
-#elif BPP == 24
- #define PLOTPIXEL(a) if (TESTCOLOUR(a)) { \
- UINT32 nRGB = pTilePalette[a]; \
- pPixel[0] = (UINT8)nRGB; \
- pPixel[1] = (UINT8)(nRGB >> 8); \
- pPixel[2] = (UINT8)(nRGB >> 16); \
- }
-#elif BPP == 32
- #define PLOTPIXEL(a) if (TESTCOLOUR(a)) { \
- *((UINT32*)pPixel) = (UINT32)pTilePalette[a]; \
- }
-#else
- #error unsupported bitdepth specified.
-#endif
-
-// For decorating the function name
-#if XFLIP == 1
- #if YFLIP == 1
- #define FLIP _FLIPXY
- #else
- #define FLIP _FLIPX
- #endif
-#elif YFLIP == 1
- #define FLIP _FLIPY
-#else
- #define FLIP _NOFLIP
-#endif
-
-#if ROWSELECT == 0
- #define SELECT _NOROWSELECT
-#elif ROWSELECT == 1
- #define SELECT _ROWSELECT
-#else
- #error unsupported rowselect mode specified.
-#endif
-
-#if ROWSCROLL == 0
- #define SCROLL _NOROWSCROLL
-#elif ROWSCROLL == 1
- #define SCROLL _ROWSCROLL
-#else
- #error unsupported rowscroll mode specified.
-#endif
-
-static void FUNCTIONNAME(BPP,XSIZE,ROT,FLIP,SCROLL,SELECT,CLIP,DEPTH)()
-{
-// Create an empty function if unsupported features are requested
-#if ROT == 0 && XFLIP == 0 && YFLIP == 0 && !(ROWSCROLL == 1 && ROWSELECT == 1) && EIGHTBIT == 1
-
- UINT8 *pTileRow, *pPixel;
- INT32 nColour;
-
- #if ROWSELECT == 0
- INT32 y;
- #endif
-
- #if ROWSELECT == 0
- for (y = 0, pTileRow = pTile; y < 8; y++, ADVANCEROW) {
-
- #if DOCLIP == 1
- if (nTileYPos + y < 0) {
-
- #if EIGHTBIT == 0
- pTileData++;
- #else
- pTileData += 2;
- #endif
-
- continue;
- }
-
- if (nTileYPos + y >= nCaveYSize) {
- return;
- }
- #endif
-
- #else
- pTileRow = pTile;
- #endif
-
- pPixel = pTileRow;
-
- #if ROWSCROLL == 1
- nRowOffset = (nTileXPos - pTileRowInfo[y]) & 0x01FF;
- if (nRowOffset >= 0x01F8) {
- nRowOffset -= 0x0200;
- }
- if (nRowOffset >= XSIZE) {
- #if EIGHTBIT == 0
- pTileData++;
- #else
- pTileData += 2;
- #endif
- continue;
- }
- pPixel += (BPP >> 3) * nRowOffset;
- #endif
-
- #if ROWSCROLL == 1
- #define XPOS nRowOffset
- #else
- #define XPOS nTileXPos
- #endif
-
- #if EIGHTBIT == 0
- #if DOCLIP == 1 || ROWSCROLL == 1
- nColour = BURN_ENDIAN_SWAP_INT32(*pTileData++);
-
- if (XPOS <= (XSIZE - 8)) {
- if (XPOS < 0) {
- nColour >>= -XPOS * 4;
- pPixel += -XPOS * (BPP >> 3);
- }
-
- switch (XPOS < 0 ? -XPOS : 0) {
- case 0:
- PLOTPIXEL(nColour & 0x0F);
- ADVANCECOLUMN;
- nColour >>= 4;
- case 1:
- PLOTPIXEL(nColour & 0x0F);
- ADVANCECOLUMN;
- nColour >>= 4;
- case 2:
- PLOTPIXEL(nColour & 0x0F);
- ADVANCECOLUMN;
- nColour >>= 4;
- case 3:
- PLOTPIXEL(nColour & 0x0F);
- ADVANCECOLUMN;
- nColour >>= 4;
- case 4:
- PLOTPIXEL(nColour & 0x0F);
- ADVANCECOLUMN;
- nColour >>= 4;
- case 5:
- PLOTPIXEL(nColour & 0x0F);
- ADVANCECOLUMN;
- nColour >>= 4;
- case 6:
- PLOTPIXEL(nColour & 0x0F);
- ADVANCECOLUMN;
- nColour >>= 4;
- case 7:
- PLOTPIXEL(nColour & 0x0F);
- }
- } else {
-
- #define CLIPPIXEL(a,b) if (XPOS < XSIZE - (a)) { b; }
- CLIPPIXEL(0, PLOTPIXEL(nColour & 0xFF));
- ADVANCECOLUMN;
- nColour >>= 8;
- CLIPPIXEL(1, PLOTPIXEL(nColour & 0xFF));
- ADVANCECOLUMN;
- nColour >>= 8;
- CLIPPIXEL(2, PLOTPIXEL(nColour & 0xFF));
- ADVANCECOLUMN;
- nColour >>= 8;
- CLIPPIXEL(3, PLOTPIXEL(nColour & 0xFF));
- ADVANCECOLUMN;
- nColour >>= 8;
- CLIPPIXEL(4, PLOTPIXEL(nColour & 0xFF));
- ADVANCECOLUMN;
- nColour >>= 8;
- CLIPPIXEL(5, PLOTPIXEL(nColour & 0xFF));
- ADVANCECOLUMN;
- nColour >>= 8;
- CLIPPIXEL(6, PLOTPIXEL(nColour & 0xFF));
- #undef CLIPPIXEL
-
- }
- #else
- nColour = BURN_ENDIAN_SWAP_INT32(*pTileData++);
- PLOTPIXEL(nColour & 0x0F);
- ADVANCECOLUMN;
- nColour >>= 4;
- PLOTPIXEL(nColour & 0x0F);
- ADVANCECOLUMN;
-
- nColour >>= 4;
- PLOTPIXEL(nColour & 0x0F);
- ADVANCECOLUMN;
- nColour >>= 4;
- PLOTPIXEL(nColour & 0x0F);
- ADVANCECOLUMN;
-
- nColour >>= 4;
- PLOTPIXEL(nColour & 0x0F);
- ADVANCECOLUMN;
- nColour >>= 4;
- PLOTPIXEL(nColour & 0x0F);
- ADVANCECOLUMN;
-
- nColour >>= 4;
- PLOTPIXEL(nColour & 0x0F);
- ADVANCECOLUMN;
- nColour >>= 4;
- PLOTPIXEL(nColour & 0x0F);
- #endif
- #else
- #if DOCLIP == 1 || ROWSCROLL == 1
- nColour = BURN_ENDIAN_SWAP_INT32(pTileData[0]);
-
- if (XPOS <= (XSIZE - 8)) {
- if (XPOS < 0) {
- if (XPOS < -3) {
- nColour = BURN_ENDIAN_SWAP_INT32(pTileData[1]);
- }
- nColour >>= (-XPOS & 3) * 8;
- pPixel += -XPOS * (BPP >> 3);
- }
-
- switch (XPOS < 0 ? -XPOS : 0) {
- case 0:
- PLOTPIXEL(nColour & 0xFF);
- ADVANCECOLUMN;
- nColour >>= 8;
- case 1:
- PLOTPIXEL(nColour & 0xFF);
- ADVANCECOLUMN;
- nColour >>= 8;
- case 2:
- PLOTPIXEL(nColour & 0xFF);
- ADVANCECOLUMN;
- nColour >>= 8;
- case 3:
- PLOTPIXEL(nColour & 0xFF);
- ADVANCECOLUMN;
- nColour = BURN_ENDIAN_SWAP_INT32(pTileData[1]);
- case 4:
- PLOTPIXEL(nColour & 0xFF);
- ADVANCECOLUMN;
- nColour >>= 8;
- case 5:
- PLOTPIXEL(nColour & 0xFF);
- ADVANCECOLUMN;
- nColour >>= 8;
- case 6:
- PLOTPIXEL(nColour & 0xFF);
- ADVANCECOLUMN;
- nColour >>= 8;
- case 7:
- PLOTPIXEL(nColour & 0xFF);
- }
- } else {
-
- #define CLIPPIXEL(a,b) if (XPOS < XSIZE - (a)) { b; }
- CLIPPIXEL(0, PLOTPIXEL(nColour & 0xFF));
- ADVANCECOLUMN;
- nColour >>= 8;
- CLIPPIXEL(1, PLOTPIXEL(nColour & 0xFF));
- ADVANCECOLUMN;
- nColour >>= 8;
- CLIPPIXEL(2, PLOTPIXEL(nColour & 0xFF));
- ADVANCECOLUMN;
- nColour >>= 8;
- CLIPPIXEL(3, PLOTPIXEL(nColour & 0xFF));
- ADVANCECOLUMN;
- nColour = BURN_ENDIAN_SWAP_INT32(pTileData[1]);
- CLIPPIXEL(4, PLOTPIXEL(nColour & 0xFF));
- ADVANCECOLUMN;
- nColour >>= 8;
- CLIPPIXEL(5, PLOTPIXEL(nColour & 0xFF));
- ADVANCECOLUMN;
- nColour >>= 8;
- CLIPPIXEL(6, PLOTPIXEL(nColour & 0xFF));
- #undef CLIPPIXEL
-
- }
-
- pTileData += 2;
-
- #else
- nColour = BURN_ENDIAN_SWAP_INT32(*pTileData++);
- PLOTPIXEL(nColour & 0xFF);
- ADVANCECOLUMN;
- nColour >>= 8;
- PLOTPIXEL(nColour & 0xFF);
- ADVANCECOLUMN;
-
- nColour >>= 8;
- PLOTPIXEL(nColour & 0xFF);
- ADVANCECOLUMN;
- nColour >>= 8;
- PLOTPIXEL(nColour & 0xFF);
- ADVANCECOLUMN;
-
- nColour = BURN_ENDIAN_SWAP_INT32(*pTileData++);
- PLOTPIXEL(nColour & 0xFF);
- ADVANCECOLUMN;
- nColour >>= 8;
- PLOTPIXEL(nColour & 0xFF);
- ADVANCECOLUMN;
-
- nColour >>= 8;
- PLOTPIXEL(nColour & 0xFF);
- ADVANCECOLUMN;
- nColour >>= 8;
- PLOTPIXEL(nColour & 0xFF);
- #endif
- #endif
-
- #undef XPOS
-
- #if ROWSELECT == 0
- }
- #endif
-
-#endif
-}
-
-#undef FLIP
-#undef CLIP
-#undef PLOTPIXEL
-#undef TESTCLIP
-#undef TESTCOLOUR
-#undef ADVANCEROW
-#undef ADVANCECOLUMN
-#undef SCROLL
-#undef SELECT
-#undef DEPTH
-#undef FUNCTIONNAME
-#undef FN
-
diff --git a/jan/src/burn/drv/cave/d_dodonpachi.cpp b/jan/src/burn/drv/cave/d_dodonpachi.cpp
deleted file mode 100644
index 30522db10..000000000
--- a/jan/src/burn/drv/cave/d_dodonpachi.cpp
+++ /dev/null
@@ -1,688 +0,0 @@
-// DoDonpachi
-#include "cave.h"
-#include "ymz280b.h"
-
-#define CAVE_VBLANK_LINES 12
-
-static UINT8 DrvJoy1[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
-static UINT8 DrvJoy2[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
-static UINT16 DrvInput[2] = {0x0000, 0x0000};
-
-static UINT8 *Mem = NULL, *MemEnd = NULL;
-static UINT8 *RamStart, *RamEnd;
-static UINT8 *Rom01;
-static UINT8 *Ram01;
-static UINT8 *DefaultEEPROM = NULL;
-
-static UINT8 DrvReset = 0;
-static UINT8 bDrawScreen;
-static bool bVBlank;
-
-static INT8 nVideoIRQ;
-static INT8 nSoundIRQ;
-static INT8 nUnknownIRQ;
-
-static INT8 nIRQPending;
-
-static INT32 nCurrentCPU;
-static INT32 nCyclesDone[2];
-static INT32 nCyclesTotal[2];
-static INT32 nCyclesSegment;
-static INT32 nCyclesExtra;
-
-static struct BurnInputInfo ddonpachInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy1 + 8, "p1 coin"},
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 7, "p1 start"},
-
- {"P1 Up", BIT_DIGITAL, DrvJoy1 + 0, "p1 up"},
- {"P1 Down", BIT_DIGITAL, DrvJoy1 + 1, "p1 down"},
- {"P1 Left", BIT_DIGITAL, DrvJoy1 + 2, "p1 left"},
- {"P1 Right", BIT_DIGITAL, DrvJoy1 + 3, "p1 right"},
- {"P1 Button 1", BIT_DIGITAL, DrvJoy1 + 4, "p1 fire 1"},
- {"P1 Button 2", BIT_DIGITAL, DrvJoy1 + 5, "p1 fire 2"},
- {"P1 Button 3", BIT_DIGITAL, DrvJoy1 + 6, "p1 fire 3"},
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy2 + 8, "p2 coin"},
- {"P2 Start", BIT_DIGITAL, DrvJoy2 + 7, "p2 start"},
-
- {"P2 Up", BIT_DIGITAL, DrvJoy2 + 0, "p2 up"},
- {"P2 Down", BIT_DIGITAL, DrvJoy2 + 1, "p2 down"},
- {"P2 Left", BIT_DIGITAL, DrvJoy2 + 2, "p2 left"},
- {"P2 Right", BIT_DIGITAL, DrvJoy2 + 3, "p2 right"},
- {"P2 Button 1", BIT_DIGITAL, DrvJoy2 + 4, "p2 fire 1"},
- {"P2 Button 2", BIT_DIGITAL, DrvJoy2 + 5, "p2 fire 2"},
- {"P2 Button 3", BIT_DIGITAL, DrvJoy2 + 6, "p2 fire 3"},
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset"},
- {"Diagnostics", BIT_DIGITAL, DrvJoy1 + 9, "diag"},
- {"Service", BIT_DIGITAL, DrvJoy2 + 9, "service"},
-};
-
-STDINPUTINFO(ddonpach)
-
-static void UpdateIRQStatus()
-{
- nIRQPending = (nVideoIRQ == 0 || nSoundIRQ == 0 || nUnknownIRQ == 0);
- SekSetIRQLine(1, nIRQPending ? CPU_IRQSTATUS_ACK : CPU_IRQSTATUS_NONE);
-}
-
-UINT8 __fastcall ddonpachReadByte(UINT32 sekAddress)
-{
- switch (sekAddress) {
- case 0x300002:
- case 0x300003: {
- return YMZ280BReadStatus();
- }
-
- case 0x800000:
- case 0x800001: {
- UINT8 nRet = 6 | nVideoIRQ;
- nVideoIRQ = 1;
- UpdateIRQStatus();
- return nRet;
- }
- case 0x800002:
- case 0x800003:
- case 0x800004:
- case 0x800005:
- case 0x800006:
- case 0x800007: {
- UINT8 nRet = 6 | nVideoIRQ;
- return nRet;
- }
-
- case 0xD00000:
- return (DrvInput[0] >> 8) ^ 0xFF;
- case 0xD00001:
- return (DrvInput[0] & 0xFF) ^ 0xFF;
- case 0xD00002:
- return ((DrvInput[1] >> 8) ^ 0xF7) | (EEPROMRead() << 3);
- case 0xD00003:
- return (DrvInput[1] & 0xFF) ^ 0xFF;
-
- default: {
-// bprintf(PRINT_NORMAL, "Attempt to read byte value of location %x\n", sekAddress);
- }
- }
- return 0;
-}
-
-UINT16 __fastcall ddonpachReadWord(UINT32 sekAddress)
-{
- switch (sekAddress) {
- case 0x300002: {
- return YMZ280BReadStatus();
- }
-
- case 0x800000: {
- UINT16 nRet = 6 | nVideoIRQ;
- nVideoIRQ = 1;
- UpdateIRQStatus();
- return nRet;
- }
-
- case 0x800002:
- case 0x800004:
- case 0x800006: {
- UINT16 nRet = 6 | nVideoIRQ;
- return nRet;
- }
-
- case 0xD00000:
- return DrvInput[0] ^ 0xFFFF;
- case 0xD00002:
- return (DrvInput[1] ^ 0xF7FF) | (EEPROMRead() << 11);
-
- default: {
-// bprintf(PRINT_NORMAL, "Attempt to read word value of location %x\n", sekAddress);
- }
- }
- return 0;
-}
-
-void __fastcall ddonpachWriteByte(UINT32 sekAddress, UINT8 byteValue)
-{
- switch (sekAddress) {
- case 0x300001:
- YMZ280BSelectRegister(byteValue);
- return;
- case 0x300003:
- YMZ280BWriteRegister(byteValue);
- return;
-
- case 0xE00000:
- EEPROMWrite(byteValue & 0x04, byteValue & 0x02, byteValue & 0x08);
- return;
-
- default: {
-// bprintf(PRINT_NORMAL, "Attempt to write byte value %x to location %x\n", byteValue, sekAddress);
- }
- }
-}
-
-void __fastcall ddonpachWriteWord(UINT32 sekAddress, UINT16 wordValue)
-{
- switch (sekAddress) {
- case 0x300000:
- YMZ280BSelectRegister(wordValue);
- return;
- case 0x300002:
- YMZ280BWriteRegister(wordValue);
- return;
-
- case 0x800000:
- nCaveXOffset = wordValue;
- return;
- case 0x800002:
- nCaveYOffset = wordValue;
- return;
- case 0x800008:
- CaveSpriteBuffer();
- nCaveSpriteBank = wordValue;
- return;
-
- case 0x900000:
- CaveTileReg[0][0] = wordValue;
- return;
- case 0x900002:
- CaveTileReg[0][1] = wordValue;
- return;
- case 0x900004:
- CaveTileReg[0][2] = wordValue;
- return;
-
- case 0xA00000:
- CaveTileReg[1][0] = wordValue;
- return;
- case 0xA00002:
- CaveTileReg[1][1] = wordValue;
- return;
- case 0xA00004:
- CaveTileReg[1][2] = wordValue;
- return;
-
- case 0xB00000:
- CaveTileReg[2][0] = wordValue;
- return;
- case 0xB00002:
- CaveTileReg[2][1] = wordValue;
- return;
- case 0xB00004:
- CaveTileReg[2][2] = wordValue;
- return;
-
- case 0xE00000:
- wordValue >>= 8;
- EEPROMWrite(wordValue & 0x04, wordValue & 0x02, wordValue & 0x08);
- return;
-
- default: {
-// bprintf(PRINT_NORMAL, "Attempt to write word value %x to location %x\n", wordValue, sekAddress);
- }
- }
-}
-
-void __fastcall ddonpachWriteBytePalette(UINT32 sekAddress, UINT8 byteValue)
-{
- CavePalWriteByte(sekAddress & 0xFFFF, byteValue);
-}
-
-void __fastcall ddonpachWriteWordPalette(UINT32 sekAddress, UINT16 wordValue)
-{
- CavePalWriteWord(sekAddress & 0xFFFF, wordValue);
-}
-
-static void TriggerSoundIRQ(INT32 nStatus)
-{
- nSoundIRQ = nStatus ^ 1;
- UpdateIRQStatus();
-
- if (nIRQPending && nCurrentCPU != 0) {
- nCyclesDone[0] += SekRun(0x0400);
- }
-}
-
-static INT32 DrvExit()
-{
- YMZ280BExit();
-
- EEPROMExit();
-
- CaveTileExit();
- CaveSpriteExit();
- CavePalExit();
-
- SekExit(); // Deallocate 68000s
-
- // Deallocate all used memory
- BurnFree(Mem);
-
- return 0;
-}
-
-static INT32 DrvDoReset()
-{
- SekOpen(0);
- SekReset();
- SekClose();
-
- EEPROMReset();
-
- YMZ280BReset();
-
- nVideoIRQ = 1;
- nSoundIRQ = 1;
- nUnknownIRQ = 1;
-
- nIRQPending = 0;
- nCyclesExtra = 0;
-
- HiscoreReset();
-
- return 0;
-}
-
-static INT32 DrvDraw()
-{
- CavePalUpdate8Bit(0, 128); // Update the palette
- CaveClearScreen(CavePalette[0x7F00]);
-
- if (bDrawScreen) {
-// CaveGetBitmap();
-
- CaveTileRender(1); // Render tiles
- }
-
- return 0;
-}
-
-inline static INT32 CheckSleep(INT32)
-{
- return 0;
-}
-
-static INT32 DrvFrame()
-{
- INT32 nCyclesVBlank;
- INT32 nInterleave = 8;
-
- if (DrvReset) { // Reset machine
- DrvDoReset();
- }
-
- // Compile digital inputs
- DrvInput[0] = 0x0000; // Player 1
- DrvInput[1] = 0x0000; // Player 2
- for (INT32 i = 0; i < 10; i++) {
- DrvInput[0] |= (DrvJoy1[i] & 1) << i;
- DrvInput[1] |= (DrvJoy2[i] & 1) << i;
- }
- CaveClearOpposites(&DrvInput[0]);
- CaveClearOpposites(&DrvInput[1]);
-
- SekNewFrame();
-
- nCyclesTotal[0] = (INT32)((INT64)16000000 * nBurnCPUSpeedAdjust / (0x0100 * CAVE_REFRESHRATE));
- nCyclesDone[0] = 0;
-
- nCyclesVBlank = nCyclesTotal[0] - (INT32)((nCyclesTotal[0] * CAVE_VBLANK_LINES) / 271.5);
- bVBlank = false;
-
- INT32 nSoundBufferPos = 0;
-
- SekOpen(0);
-
- for (INT32 i = 1; i <= nInterleave; i++) {
- INT32 nNext;
-
- // Render sound segment
- if ((i & 1) == 0) {
- if (pBurnSoundOut) {
- INT32 nSegmentEnd = nBurnSoundLen * i / nInterleave;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- YMZ280BRender(pSoundBuf, nSegmentEnd - nSoundBufferPos);
- nSoundBufferPos = nSegmentEnd;
- }
- }
-
- // Run 68000
- nCurrentCPU = 0;
- nNext = i * nCyclesTotal[nCurrentCPU] / nInterleave;
-
- // See if we need to trigger the VBlank interrupt
- if (!bVBlank && nNext > nCyclesVBlank) {
- if (nCyclesDone[nCurrentCPU] < nCyclesVBlank) {
- nCyclesSegment = nCyclesVBlank - nCyclesDone[nCurrentCPU];
- if (!CheckSleep(nCurrentCPU)) { // See if this CPU is busywaiting
- nCyclesDone[nCurrentCPU] += SekRun(nCyclesSegment);
- } else {
- nCyclesDone[nCurrentCPU] += SekIdle(nCyclesSegment);
- }
- }
-
- if (pBurnDraw != NULL) {
- DrvDraw(); // Draw screen if needed
- }
-
- bVBlank = true;
- nVideoIRQ = 0;
- UpdateIRQStatus();
- }
-
- nCyclesSegment = nNext - nCyclesDone[nCurrentCPU];
- if (!CheckSleep(nCurrentCPU)) { // See if this CPU is busywaiting
- nCyclesDone[nCurrentCPU] += SekRun(nCyclesSegment+nCyclesExtra);
- nCyclesExtra = 0;
- } else {
- nCyclesDone[nCurrentCPU] += SekIdle(nCyclesSegment);
- }
-
- nCurrentCPU = -1;
- }
-
- // Make sure the buffer is entirely filled.
- {
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- if (nSegmentLength) {
- YMZ280BRender(pSoundBuf, nSegmentLength);
- }
- }
- }
-
- nCyclesExtra = SekTotalCycles() - nCyclesTotal[0];
- SekClose();
-
- return 0;
-}
-
-// This routine is called first to determine how much memory is needed (MemEnd-(UINT8 *)0),
-// and then afterwards to set up all the pointers
-static INT32 MemIndex()
-{
- UINT8* Next; Next = Mem;
- Rom01 = Next; Next += 0x100000; // 68K program
- CaveSpriteROM = Next; Next += 0x1000000;
- CaveTileROM[0] = Next; Next += 0x400000; // Tile layer 0
- CaveTileROM[1] = Next; Next += 0x400000; // Tile layer 1
- CaveTileROM[2] = Next; Next += 0x200000; // Tile layer 2
- YMZ280BROM = Next; Next += 0x400000;
- DefaultEEPROM = Next; Next += 0x000080;
- RamStart = Next;
- Ram01 = Next; Next += 0x010000; // CPU #0 work RAM
- CaveTileRAM[0] = Next; Next += 0x008000;
- CaveTileRAM[1] = Next; Next += 0x008000;
- CaveTileRAM[2] = Next; Next += 0x008000;
- CaveSpriteRAM = Next; Next += 0x010000;
- CavePalSrc = Next; Next += 0x010000; // palette
- RamEnd = Next;
- MemEnd = Next;
-
- return 0;
-}
-
-static void NibbleSwap2(UINT8* pData, INT32 nLen)
-{
- UINT8* pOrg = pData + nLen - 1;
- UINT8* pDest = pData + ((nLen - 1) << 1);
-
- for (INT32 i = 0; i < nLen; i++, pOrg--, pDest -= 2) {
- pDest[1] = *pOrg & 15;
- pDest[0] = *pOrg >> 4;
- }
-
- return;
-}
-
-static INT32 LoadRoms()
-{
- // Load 68000 ROM
- BurnLoadRom(Rom01 + 0, 1, 2);
- BurnLoadRom(Rom01 + 1, 0, 2);
-
- BurnLoadRom(CaveSpriteROM + 0x000000, 2, 1);
- BurnLoadRom(CaveSpriteROM + 0x200000, 3, 1);
- BurnLoadRom(CaveSpriteROM + 0x400000, 4, 1);
- BurnLoadRom(CaveSpriteROM + 0x600000, 5, 1);
- BurnByteswap(CaveSpriteROM, 0x800000);
- NibbleSwap2(CaveSpriteROM, 0x800000);
-
- BurnLoadRom(CaveTileROM[0], 6, 1);
- NibbleSwap2(CaveTileROM[0], 0x200000);
- BurnLoadRom(CaveTileROM[1], 7, 1);
- NibbleSwap2(CaveTileROM[1], 0x200000);
-
- UINT8* pTemp = (UINT8*)BurnMalloc(0x200000);
- BurnLoadRom(pTemp, 8, 1);
- for (INT32 i = 0; i < 0x0100000; i++) {
- CaveTileROM[2][(i << 1) + 1] = (pTemp[(i << 1) + 0] & 15) | ((pTemp[(i << 1) + 1] & 15) << 4);
- CaveTileROM[2][(i << 1) + 0] = (pTemp[(i << 1) + 0] >> 4) | (pTemp[(i << 1) + 1] & 240);
- }
- BurnFree(pTemp);
-
- // Load YMZ280B data
- BurnLoadRom(YMZ280BROM + 0x000000, 9, 1);
- BurnLoadRom(YMZ280BROM + 0x200000, 10, 1);
-
- BurnLoadRom(DefaultEEPROM, 11, 1);
-
- return 0;
-}
-
-// Scan ram
-static INT32 DrvScan(INT32 nAction, INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin) { // Return minimum compatible version
- *pnMin = 0x020902;
- }
-
- EEPROMScan(nAction, pnMin); // Scan EEPROM
-
- if (nAction & ACB_VOLATILE) { // Scan volatile ram
-
- memset(&ba, 0, sizeof(ba));
- ba.Data = RamStart;
- ba.nLen = RamEnd - RamStart;
- ba.szName = "RAM";
- BurnAcb(&ba);
-
- SekScan(nAction); // scan 68000 states
-
- YMZ280BScan();
-
- SCAN_VAR(nVideoIRQ);
- SCAN_VAR(nSoundIRQ);
- SCAN_VAR(nUnknownIRQ);
- SCAN_VAR(bVBlank);
-
- CaveScanGraphics();
-
- SCAN_VAR(DrvInput);
- }
-
- if (nAction & ACB_WRITE) {
- CaveRecalcPalette = 1;
- }
-
- return 0;
-}
-
-static INT32 DrvInit()
-{
- INT32 nLen;
-
- BurnSetRefreshRate(CAVE_REFRESHRATE);
-
- // Find out how much memory is needed
- Mem = NULL;
- MemIndex();
- nLen = MemEnd - (UINT8 *)0;
- if ((Mem = (UINT8 *)BurnMalloc(nLen)) == NULL) {
- return 1;
- }
- memset(Mem, 0, nLen); // blank all memory
- MemIndex(); // Index the allocated memory
-
- // Load the roms into memory
- if (LoadRoms()) {
- return 1;
- }
-
- EEPROMInit(&eeprom_interface_93C46);
- if (!EEPROMAvailable()) EEPROMFill(DefaultEEPROM,0, 0x80);
-
- {
- SekInit(0, 0x68000); // Allocate 68000
- SekOpen(0);
-
- // Map 68000 memory:
- SekMapMemory(Rom01, 0x000000, 0x0FFFFF, MAP_ROM); // CPU 0 ROM
- SekMapMemory(Ram01, 0x100000, 0x10FFFF, MAP_RAM);
- SekMapMemory(CaveSpriteRAM, 0x400000, 0x40FFFF, MAP_RAM);
- SekMapMemory(CaveTileRAM[0], 0x500000, 0x507FFF, MAP_RAM);
- SekMapMemory(CaveTileRAM[1], 0x600000, 0x607FFF, MAP_RAM);
- SekMapMemory(CaveTileRAM[2] + 0x4000, 0x700000, 0x703FFF, MAP_RAM);
- SekMapMemory(CaveTileRAM[2] + 0x4000, 0x704000, 0x707FFF, MAP_RAM);
- SekMapMemory(CaveTileRAM[2] + 0x4000, 0x708000, 0x70BFFF, MAP_RAM);
- SekMapMemory(CaveTileRAM[2] + 0x4000, 0x70C000, 0x70FFFF, MAP_RAM);
-
- SekMapMemory(CavePalSrc, 0xC00000, 0xC0FFFF, MAP_ROM); // Palette RAM (write goes through handler)
- SekMapHandler(1, 0xC00000, 0xC0FFFF, MAP_WRITE); //
-
- SekSetReadWordHandler(0, ddonpachReadWord);
- SekSetReadByteHandler(0, ddonpachReadByte);
- SekSetWriteWordHandler(0, ddonpachWriteWord);
- SekSetWriteByteHandler(0, ddonpachWriteByte);
-
- SekSetWriteWordHandler(1, ddonpachWriteWordPalette);
- SekSetWriteByteHandler(1, ddonpachWriteBytePalette);
-
- SekClose();
- }
-
- nCaveRowModeOffset = 1;
-
- CavePalInit(0x8000);
- CaveTileInit();
- CaveSpriteInit(0, 0x1000000);
- CaveTileInitLayer(0, 0x400000, 8, 0x4000);
- CaveTileInitLayer(1, 0x400000, 8, 0x4000);
- CaveTileInitLayer(2, 0x200000, 8, 0x4000);
-
- YMZ280BInit(16934400, &TriggerSoundIRQ, 0x400000);
- YMZ280BSetRoute(BURN_SND_YMZ280B_YMZ280B_ROUTE_1, 1.00, BURN_SND_ROUTE_LEFT);
- YMZ280BSetRoute(BURN_SND_YMZ280B_YMZ280B_ROUTE_2, 1.00, BURN_SND_ROUTE_RIGHT);
-
- bDrawScreen = true;
-
- DrvDoReset(); // Reset machine
-
- return 0;
-}
-
-// Rom information
-static struct BurnRomInfo ddonpachRomDesc[] = {
- { "b1.u27", 0x080000, 0xb5cdc8d3, BRF_ESS | BRF_PRG }, // 0 CPU #0 code
- { "b2.u26", 0x080000, 0x6bbb063a, BRF_ESS | BRF_PRG }, // 1
-
- { "u50.bin", 0x200000, 0x14b260ec, BRF_GRA }, // 2 Sprite data
- { "u51.bin", 0x200000, 0xe7ba8cce, BRF_GRA }, // 3
- { "u52.bin", 0x200000, 0x02492ee0, BRF_GRA }, // 4
- { "u53.bin", 0x200000, 0xcb4c10f0, BRF_GRA }, // 5
-
- { "u60.bin", 0x200000, 0x903096a7, BRF_GRA }, // 6 Layer 0 Tile data
- { "u61.bin", 0x200000, 0xd89b7631, BRF_GRA }, // 7 Layer 1 Tile data
- { "u62.bin", 0x200000, 0x292bfb6b, BRF_GRA }, // 8 Layer 2 Tile data
-
- { "u6.bin", 0x200000, 0x9dfdafaf, BRF_SND }, // 9 YMZ280B (AD)PCM data
- { "u7.bin", 0x200000, 0x795b17d5, BRF_SND }, // 10
-
- { "eeprom-ddonpach.bin", 0x0080, 0x315fb546, BRF_ESS | BRF_PRG },
-};
-
-
-STD_ROM_PICK(ddonpach)
-STD_ROM_FN(ddonpach)
-
-
-// Rom information
-static struct BurnRomInfo ddonpachjRomDesc[] = {
- { "u27.bin", 0x080000, 0x2432ff9b, BRF_ESS | BRF_PRG }, // 0 CPU #0 code
- { "u26.bin", 0x080000, 0x4f3a914a, BRF_ESS | BRF_PRG }, // 1
-
- { "u50.bin", 0x200000, 0x14b260ec, BRF_GRA }, // 2 Sprite data
- { "u51.bin", 0x200000, 0xe7ba8cce, BRF_GRA }, // 3
- { "u52.bin", 0x200000, 0x02492ee0, BRF_GRA }, // 4
- { "u53.bin", 0x200000, 0xcb4c10f0, BRF_GRA }, // 5
-
- { "u60.bin", 0x200000, 0x903096a7, BRF_GRA }, // 6 Layer 0 Tile data
- { "u61.bin", 0x200000, 0xd89b7631, BRF_GRA }, // 7 Layer 1 Tile data
- { "u62.bin", 0x200000, 0x292bfb6b, BRF_GRA }, // 8 Layer 2 Tile data
-
- { "u6.bin", 0x200000, 0x9dfdafaf, BRF_SND }, // 9 YMZ280B (AD)PCM data
- { "u7.bin", 0x200000, 0x795b17d5, BRF_SND }, // 10
-
- { "eeprom-ddonpach.bin", 0x0080, 0x315fb546, BRF_ESS | BRF_PRG },
-};
-
-
-STD_ROM_PICK(ddonpachj)
-STD_ROM_FN(ddonpachj)
-
-
-static struct BurnRomInfo ddonpachaRomDesc[] = {
- { "arrange_u27.bin", 0x080000, 0x44b899ae, BRF_ESS | BRF_PRG }, // 0 CPU #0 code
- { "arrange_u26.bin", 0x080000, 0x727a09a8, BRF_ESS | BRF_PRG }, // 1
-
- { "u50.bin", 0x200000, 0x14b260ec, BRF_GRA }, // 2 Sprite data
- { "arrange_u51.bin", 0x200000, 0x0f3e5148, BRF_GRA }, // 3
- { "u52.bin", 0x200000, 0x02492ee0, BRF_GRA }, // 4
- { "u53.bin", 0x200000, 0xcb4c10f0, BRF_GRA }, // 5
-
- { "u60.bin", 0x200000, 0x903096a7, BRF_GRA }, // 6 Layer 0 Tile data
- { "u61.bin", 0x200000, 0xd89b7631, BRF_GRA }, // 7 Layer 1 Tile data
- { "arrange_u62.bin", 0x200000, 0x42e4c6c5, BRF_GRA }, // 8 Layer 2 Tile data
-
- { "u6.bin", 0x200000, 0x9dfdafaf, BRF_SND }, // 9 YMZ280B (AD)PCM data
- { "u7.bin", 0x200000, 0x795b17d5, BRF_SND }, // 10
-
- { "eeprom-ddonpach.bin", 0x0080, 0x2df16438, BRF_ESS | BRF_PRG },
-};
-
-
-STD_ROM_PICK(ddonpacha)
-STD_ROM_FN(ddonpacha)
-
-
-struct BurnDriver BurnDrvDoDonpachi = {
- "ddonpach", NULL, NULL, NULL, "1997",
- "DoDonPachi (International, master ver. 97/02/05)\0", NULL, "Atlus / Cave", "Cave",
- L"\u6012\u9996\u9818\u8702 DoDonPachi (International, master ver. 97/02/05)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_16BIT_ONLY | BDF_HISCORE_SUPPORTED, 2, HARDWARE_CAVE_68K_ONLY, GBF_VERSHOOT, 0,
- NULL, ddonpachRomInfo, ddonpachRomName, NULL, NULL, ddonpachInputInfo, NULL,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan,
- &CaveRecalcPalette, 0x8000, 240, 320, 3, 4
-};
-
-struct BurnDriver BurnDrvDoDonpachiJ = {
- "ddonpachj", "ddonpach", NULL, NULL, "1997",
- "DoDonPachi (Japan, master ver. 97/02/05)\0", NULL, "Atlus / Cave", "Cave",
- L"\u6012\u9996\u9818\u8702 DoDonPachi (Japan, master ver. 97/02/05)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_16BIT_ONLY | BDF_HISCORE_SUPPORTED, 2, HARDWARE_CAVE_68K_ONLY, GBF_VERSHOOT, 0,
- NULL, ddonpachjRomInfo, ddonpachjRomName, NULL, NULL, ddonpachInputInfo, NULL,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan,
- &CaveRecalcPalette, 0x8000, 240, 320, 3, 4
-};
-
-struct BurnDriver BurnDrvDoDonpachia = {
- "ddonpacha", "ddonpach", NULL, NULL, "2012",
- "DoDonPachi (Arrange Mode version 1.1, hack by Trap15)\0", NULL, "hack / Trap15", "Cave",
- L"\u6012\u9996\u9818\u8702 DoDonPachi (Arrange Mode version 1.1, hack by Trap15)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_HACK | BDF_ORIENTATION_VERTICAL | BDF_16BIT_ONLY | BDF_HISCORE_SUPPORTED, 2, HARDWARE_CAVE_68K_ONLY, GBF_VERSHOOT, 0,
- NULL, ddonpachaRomInfo, ddonpachaRomName, NULL, NULL, ddonpachInputInfo, NULL,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan,
- &CaveRecalcPalette, 0x8000, 240, 320, 3, 4
-};
diff --git a/jan/src/burn/drv/cave/d_donpachi.cpp b/jan/src/burn/drv/cave/d_donpachi.cpp
deleted file mode 100644
index cfb99f910..000000000
--- a/jan/src/burn/drv/cave/d_donpachi.cpp
+++ /dev/null
@@ -1,875 +0,0 @@
-// Donpachi
-#include "cave.h"
-#include "msm6295.h"
-#include "nmk112.h"
-
-#define USE_SAMPLE_HACK // allow use of high quality music samples.
-
-#define CAVE_VBLANK_LINES 12
-
-#ifdef USE_SAMPLE_HACK
-#include "samples.h"
-#endif
-
-static UINT8 DrvJoy1[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
-static UINT8 DrvJoy2[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
-static UINT16 DrvInput[2] = {0x0000, 0x0000};
-static UINT8 DrvDips[1];
-
-static UINT8 *Mem = NULL, *MemEnd = NULL;
-static UINT8 *RamStart, *RamEnd;
-static UINT8 *Rom01;
-static UINT8 *Ram01;
-static UINT8 *DefaultEEPROM = NULL;
-
-static UINT8 DrvReset = 0;
-static UINT8 bDrawScreen;
-static bool bVBlank;
-
-static INT8 nVideoIRQ;
-static INT8 nSoundIRQ;
-static INT8 nUnknownIRQ;
-
-static INT8 nIRQPending;
-
-static UINT8 bHasSamples = 0;
-static UINT8 bLastSampleDIPMode = 0;
-
-#ifdef USE_SAMPLE_HACK
-static UINT8 previous_sound_write[3] = { 0, 0, 0 };
-#endif
-
-static struct BurnInputInfo donpachiInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy1 + 8, "p1 coin"},
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 7, "p1 start"},
-
- {"P1 Up", BIT_DIGITAL, DrvJoy1 + 0, "p1 up"},
- {"P1 Down", BIT_DIGITAL, DrvJoy1 + 1, "p1 down"},
- {"P1 Left", BIT_DIGITAL, DrvJoy1 + 2, "p1 left"},
- {"P1 Right", BIT_DIGITAL, DrvJoy1 + 3, "p1 right"},
- {"P1 Button 1", BIT_DIGITAL, DrvJoy1 + 4, "p1 fire 1"},
- {"P1 Button 2", BIT_DIGITAL, DrvJoy1 + 5, "p1 fire 2"},
- {"P1 Button 3", BIT_DIGITAL, DrvJoy1 + 6, "p1 fire 3"},
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy2 + 8, "p2 coin"},
- {"P2 Start", BIT_DIGITAL, DrvJoy2 + 7, "p2 start"},
-
- {"P2 Up", BIT_DIGITAL, DrvJoy2 + 0, "p2 up"},
- {"P2 Down", BIT_DIGITAL, DrvJoy2 + 1, "p2 down"},
- {"P2 Left", BIT_DIGITAL, DrvJoy2 + 2, "p2 left"},
- {"P2 Right", BIT_DIGITAL, DrvJoy2 + 3, "p2 right"},
- {"P2 Button 1", BIT_DIGITAL, DrvJoy2 + 4, "p2 fire 1"},
- {"P2 Button 2", BIT_DIGITAL, DrvJoy2 + 5, "p2 fire 2"},
- {"P2 Button 3", BIT_DIGITAL, DrvJoy2 + 6, "p2 fire 3"},
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset"},
- {"Diagnostics", BIT_DIGITAL, DrvJoy1 + 9, "diag"},
- {"Service", BIT_DIGITAL, DrvJoy2 + 9, "service"},
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip"},
-};
-
-STDINPUTINFO(donpachi)
-
-static struct BurnDIPInfo donpachiDIPList[]=
-{
- {0x15, 0xff, 0xff, 0x00, NULL },
-
- {0 , 0xfe, 0 , 2, "Enable high-quality music w/samples"},
- {0x15, 0x01, 0x08, 0x08, "On" },
- {0x15, 0x01, 0x08, 0x00, "Off" },
-};
-
-STDDIPINFO(donpachi)
-
-static void DrvSampleReset()
-{
- BurnSampleReset();
- // don't autoplay everything @ reset w/ SAMPLE_AUTOLOOP
- for (INT32 i = 0;i < 20; i++){
- BurnSampleStop(i);
- }
-}
-
-static void UpdateIRQStatus()
-{
- nIRQPending = (nVideoIRQ == 0 || nSoundIRQ == 0 || nUnknownIRQ == 0);
- SekSetIRQLine(1, nIRQPending ? CPU_IRQSTATUS_ACK : CPU_IRQSTATUS_NONE);
-}
-
-UINT8 __fastcall donpachiReadByte(UINT32 sekAddress)
-{
- switch (sekAddress) {
-
- case 0x900000:
- case 0x900001:
- case 0x900002:
- case 0x900003: {
- UINT8 nRet = (nUnknownIRQ << 1) | nVideoIRQ;
- return nRet;
- }
- case 0x900004:
- case 0x900005: {
- UINT8 nRet = (nUnknownIRQ << 1) | nVideoIRQ;
- nVideoIRQ = 1;
- UpdateIRQStatus();
- return nRet;
- }
- case 0x900006:
- case 0x900007: {
- UINT8 nRet = (nUnknownIRQ << 1) | nVideoIRQ;
- nUnknownIRQ = 1;
- UpdateIRQStatus();
- return nRet;
- }
-
- case 0xB00001:
- return MSM6295ReadStatus(0);
- case 0xB00011:
- return MSM6295ReadStatus(1);
-
- case 0xC00000:
- return (DrvInput[0] >> 8) ^ 0xFF;
- case 0xC00001:
- return (DrvInput[0] & 0xFF) ^ 0xFF;
- case 0xC00002:
- return ((DrvInput[1] >> 8) ^ 0xF7) | (EEPROMRead() << 3);
- case 0xC00003:
- return (DrvInput[1] & 0xFF) ^ 0xFF;
-
- default: {
-// bprintf(PRINT_NORMAL, "Attempt to read byte value of location %x\n", sekAddress);
- }
- }
- return 0;
-}
-
-UINT16 __fastcall donpachiReadWord(UINT32 sekAddress)
-{
- switch (sekAddress) {
- case 0x900000:
- case 0x900002: {
- UINT16 nRet = (nUnknownIRQ << 1) | nVideoIRQ;
- return nRet;
- }
-
- case 0x900004: {
- UINT16 nRet = (nUnknownIRQ << 1) | nVideoIRQ;
- nVideoIRQ = 1;
- UpdateIRQStatus();
- return nRet;
- }
- case 0x900006: {
- UINT16 nRet = (nUnknownIRQ << 1) | nVideoIRQ;
- nUnknownIRQ = 1;
- UpdateIRQStatus();
- return nRet;
- }
-
- case 0xB00000:
- return MSM6295ReadStatus(0);
- case 0xB00010:
- return MSM6295ReadStatus(1);
-
- case 0xC00000:
- return DrvInput[0] ^ 0xFFFF;
- case 0xC00002:
- return (DrvInput[1] ^ 0xF7FF) | (EEPROMRead() << 11);
-
- default: {
-// bprintf(PRINT_NORMAL, "Attempt to read word value of location %x\n", sekAddress);
- }
- }
- return 0;
-}
-
-void __fastcall donpachiWriteByte(UINT32 sekAddress, UINT8 byteValue)
-{
- switch (sekAddress) {
-
- case 0xB00000:
- case 0xB00001:
- case 0xB00002:
- case 0xB00003:
- MSM6295Command(0, byteValue);
- break;
- case 0xB00010:
- case 0xB00011:
- case 0xB00012:
- case 0xB00013:
- MSM6295Command(1, byteValue);
- break;
-
- case 0xB00020:
- case 0xB00021:
- case 0xB00022:
- case 0xB00023:
- case 0xB00024:
- case 0xB00025:
- case 0xB00026:
- case 0xB00027:
- case 0xB00028:
- case 0xB00029:
- case 0xB0002A:
- case 0xB0002B:
- case 0xB0002C:
- case 0xB0002D:
- case 0xB0002E:
- case 0xB0002F: {
- NMK112_okibank_write((sekAddress / 2) & 0x07, byteValue);
- break;
- }
-
- case 0xD00000:
- EEPROMWrite(byteValue & 0x04, byteValue & 0x02, byteValue & 0x08);
- break;
-
- default: {
-// bprintf(PRINT_NORMAL, "Attempt to write byte value %x to location %x\n", byteValue, sekAddress);
- }
- }
-}
-
-void __fastcall donpachiWriteWord(UINT32 sekAddress, UINT16 wordValue)
-{
- switch (sekAddress) {
- case 0x600000:
- CaveTileReg[1][0] = wordValue;
- break;
- case 0x600002:
- CaveTileReg[1][1] = wordValue;
- break;
- case 0x600004:
- CaveTileReg[1][2] = wordValue;
- break;
-
- case 0x700000:
- CaveTileReg[0][0] = wordValue;
- break;
- case 0x700002:
- CaveTileReg[0][1] = wordValue;
- break;
- case 0x700004:
- CaveTileReg[0][2] = wordValue;
- break;
-
- case 0x800000:
- CaveTileReg[2][0] = wordValue;
- break;
- case 0x800002:
- CaveTileReg[2][1] = wordValue;
- break;
- case 0x800004:
- CaveTileReg[2][2] = wordValue;
- break;
-
- case 0x900000:
- nCaveXOffset = wordValue;
- return;
- case 0x900002:
- nCaveYOffset = wordValue;
- return;
- case 0x900008:
- CaveSpriteBuffer();
- nCaveSpriteBank = wordValue;
- return;
-
- case 0xB00000:
- case 0xB00002:
-#ifdef USE_SAMPLE_HACK
- if (wordValue == 0x78) {
- memset (previous_sound_write, 0, 3);
- DrvSampleReset(); // STOP
- } else {
- previous_sound_write[0] = previous_sound_write[1];
- previous_sound_write[1] = previous_sound_write[2];
- previous_sound_write[2] = wordValue;
-
- if (previous_sound_write[0] == 0x08) {
- UINT16 select = (previous_sound_write[1]*256) + previous_sound_write[2];
- INT32 sample = 0xff;
- switch (select)
- {
-
- // I'm silencing all sounds from the music chip atm, it may be necessary to let some of
- // these actually play. Just set use BurnSampleReset, and restore the volume of the music chip.
-
- case 0xcc12: sample = 0x00; break;
- case 0x8112: sample = 0x01; break;
- case 0x9814: sample = 0x02; break;
- case 0xb113: sample = 0x03; break;
- case 0xa112: sample = 0x04; break;
- case 0xd812: sample = 0x05; break;
- case 0x9313: sample = 0x06; break;
- case 0xe813: sample = 0x07; break;
- case 0xf013: sample = 0x08; break;
- case 0xf111: sample = 0x09; break;
- case 0x9a13: sample = 0x0a; break;
- case 0xf813: sample = 0x0b; break;
- case 0xd013: sample = 0x0c; break;
- case 0xc813: sample = 0x0d; break;
- }
-
- if (sample != 0xff && BurnSampleGetStatus(sample) == 0) {
- DrvSampleReset();
- BurnSamplePlay(sample);
-// bprintf (0, _T("Sample playing: %d\n"), sample);
- }
- }
- }
-#endif
- MSM6295Command(0, wordValue);
- break;
- case 0xB00010:
- case 0xB00012:
- MSM6295Command(1, wordValue);
- break;
-
- case 0xB00020:
- case 0xB00021:
- case 0xB00022:
- case 0xB00023:
- case 0xB00024:
- case 0xB00025:
- case 0xB00026:
- case 0xB00027:
- case 0xB00028:
- case 0xB00029:
- case 0xB0002A:
- case 0xB0002B:
- case 0xB0002C:
- case 0xB0002D:
- case 0xB0002E:
- case 0xB0002F: {
- NMK112_okibank_write((sekAddress / 2) & 0x07, wordValue & 0xff);
- break;
- }
-
- case 0xD00000:
- wordValue >>= 8;
- EEPROMWrite(wordValue & 0x04, wordValue & 0x02, wordValue & 0x08);
- break;
-
- default: {
-// bprintf(PRINT_NORMAL, "Attempt to write word value %x to location %x\n", wordValue, sekAddress);
-
- }
- }
-}
-
-static INT32 DrvExit()
-{
- EEPROMExit();
-
- MSM6295Exit(0);
- MSM6295Exit(1);
-#ifdef USE_SAMPLE_HACK
- BurnSampleExit();
-#endif
-
- CaveTileExit();
- CaveSpriteExit();
- CavePalExit();
-
- SekExit(); // Deallocate 68000s
-
- BurnFree(Mem);
-
- return 0;
-}
-
-static INT32 DrvDoReset()
-{
- SekOpen(0);
- SekReset();
- SekClose();
-
- EEPROMReset();
-
- nVideoIRQ = 1;
- nSoundIRQ = 1;
- nUnknownIRQ = 1;
-
- nIRQPending = 0;
-
- MSM6295Reset(0);
- MSM6295Reset(1);
- NMK112Reset();
-#ifdef USE_SAMPLE_HACK
- DrvSampleReset();
- memset (previous_sound_write, 0, 3);
-#endif
- HiscoreReset();
- return 0;
-}
-
-static INT32 DrvDraw()
-{
- CavePalUpdate4Bit(0, 128); // Update the palette
- CaveClearScreen(CavePalette[0x7F00]);
-
- if (bDrawScreen) {
-// CaveGetBitmap();
-
- CaveTileRender(1); // Render tiles
- }
-
- return 0;
-}
-
-static void CheckDIP()
-{
- if (bHasSamples && bLastSampleDIPMode != DrvDips[0]) {
- //bprintf(0, _T("DIP Changed! %X\n"), DrvDips[0]);
- bLastSampleDIPMode = DrvDips[0];
-
- MSM6295SetRoute(0, (bLastSampleDIPMode == 8) ? 0.00 : 1.60, BURN_SND_ROUTE_BOTH);
- BurnSampleSetAllRoutesAllSamples((bLastSampleDIPMode == 8) ? 0.40 : 0.00, BURN_SND_ROUTE_BOTH);
- }
-
-}
-
-inline static INT32 CheckSleep(INT32)
-{
- return 0;
-}
-
-static INT32 DrvFrame()
-{
- INT32 nCyclesVBlank;
- INT32 nInterleave = 8;
-
- INT32 nCyclesTotal[2];
- INT32 nCyclesDone[2];
-
- INT32 nCyclesSegment;
-
- if (DrvReset) { // Reset machine
- DrvDoReset();
- }
-
- CheckDIP();
-
- // Compile digital inputs
- DrvInput[0] = 0x0000; // Player 1
- DrvInput[1] = 0x0000; // Player 2
- for (INT32 i = 0; i < 10; i++) {
- DrvInput[0] |= (DrvJoy1[i] & 1) << i;
- DrvInput[1] |= (DrvJoy2[i] & 1) << i;
- }
- CaveClearOpposites(&DrvInput[0]);
- CaveClearOpposites(&DrvInput[1]);
-
- SekNewFrame();
-
- nCyclesTotal[0] = (INT32)((INT64)16000000 * nBurnCPUSpeedAdjust / (0x0100 * CAVE_REFRESHRATE));
- nCyclesDone[0] = 0;
-
- nCyclesVBlank = nCyclesTotal[0] - (INT32)((nCyclesTotal[0] * CAVE_VBLANK_LINES) / 271.5);
- bVBlank = false;
-
- INT32 nSoundBufferPos = 0;
-
- SekOpen(0);
-
- for (INT32 i = 1; i <= nInterleave; i++) {
- INT32 nCurrentCPU = 0;
- INT32 nNext = i * nCyclesTotal[nCurrentCPU] / nInterleave;
-
- // Run 68000
-
- // See if we need to trigger the VBlank interrupt
- if (!bVBlank && nNext > nCyclesVBlank) {
- if (nCyclesDone[nCurrentCPU] < nCyclesVBlank) {
- nCyclesSegment = nCyclesVBlank - nCyclesDone[nCurrentCPU];
- if (!CheckSleep(nCurrentCPU)) { // See if this CPU is busywaiting
- nCyclesDone[nCurrentCPU] += SekRun(nCyclesSegment);
- } else {
- nCyclesDone[nCurrentCPU] += SekIdle(nCyclesSegment);
- }
- }
-
- if (pBurnDraw != NULL) {
- DrvDraw(); // Draw screen if needed
- }
-
- bVBlank = true;
- nVideoIRQ = 0;
- UpdateIRQStatus();
- }
-
- nCyclesSegment = nNext - nCyclesDone[nCurrentCPU];
- if (!CheckSleep(nCurrentCPU)) { // See if this CPU is busywaiting
- nCyclesDone[nCurrentCPU] += SekRun(nCyclesSegment);
- } else {
- nCyclesDone[nCurrentCPU] += SekIdle(nCyclesSegment);
- }
- }
-
- // Make sure the buffer is entirely filled.
- {
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- if (nSegmentLength) {
- MSM6295Render(0, pSoundBuf, nSegmentLength);
- MSM6295Render(1, pSoundBuf, nSegmentLength);
-#ifdef USE_SAMPLE_HACK
- BurnSampleRender(pSoundBuf, nSegmentLength);
-#endif
- }
- }
- }
-
- SekClose();
-
- return 0;
-}
-
-// This routine is called first to determine how much memory is needed (MemEnd-(UINT8 *)0),
-// and then afterwards to set up all the pointers
-static INT32 MemIndex()
-{
- UINT8* Next; Next = Mem;
- Rom01 = Next; Next += 0x080000; // 68K program
- CaveSpriteROM = Next; Next += 0x800000;
- CaveTileROM[0] = Next; Next += 0x200000; // Tile layer 0
- CaveTileROM[1] = Next; Next += 0x200000; // Tile layer 1
- CaveTileROM[2] = Next; Next += 0x080000; // Tile layer 2
- MSM6295ROM = Next; Next += 0x300000;
- DefaultEEPROM = Next; Next += 0x000080;
- RamStart = Next;
- Ram01 = Next; Next += 0x010000; // CPU #0 work RAM
- CaveTileRAM[0] = Next; Next += 0x008000;
- CaveTileRAM[1] = Next; Next += 0x008000;
- CaveTileRAM[2] = Next; Next += 0x008000;
- CaveSpriteRAM = Next; Next += 0x010000;
- CavePalSrc = Next; Next += 0x001000; // palette
- RamEnd = Next;
- MemEnd = Next;
-
- return 0;
-}
-
-static void NibbleSwap2(UINT8* pData, INT32 nLen)
-{
- UINT8* pOrg = pData + nLen - 1;
- UINT8* pDest = pData + ((nLen - 1) << 1);
-
- for (INT32 i = 0; i < nLen; i++, pOrg--, pDest -= 2) {
- pDest[1] = *pOrg & 15;
- pDest[0] = *pOrg >> 4;
- }
-
- return;
-}
-
-static INT32 LoadRoms()
-{
- // Load 68000 ROM
- BurnLoadRom(Rom01, 0, 1);
-
- BurnLoadRom(CaveSpriteROM + 0x000000, 1, 1);
- BurnLoadRom(CaveSpriteROM + 0x200000, 2, 1);
- BurnByteswap(CaveSpriteROM, 0x400000);
- NibbleSwap2(CaveSpriteROM, 0x400000);
-
- BurnLoadRom(CaveTileROM[0], 3, 1);
- NibbleSwap2(CaveTileROM[0], 0x100000);
- BurnLoadRom(CaveTileROM[1], 4, 1);
- NibbleSwap2(CaveTileROM[1], 0x100000);
- BurnLoadRom(CaveTileROM[2], 5, 1);
- NibbleSwap2(CaveTileROM[2], 0x040000);
-
- // Load MSM6295 ADPCM data
- BurnLoadRom(MSM6295ROM + 0x000000, 6, 1); // OKI #1 ONLY
- BurnLoadRom(MSM6295ROM + 0x100000, 7, 1); // OKI #0 & #1
-
- BurnLoadRom(DefaultEEPROM, 8, 1);
-
- return 0;
-}
-
-// Scan ram
-static INT32 DrvScan(INT32 nAction, INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin) { // Return minimum compatible version
- *pnMin = 0x020902;
- }
-
- EEPROMScan(nAction, pnMin); // Scan EEPROM
-
- if (nAction & ACB_VOLATILE) { // Scan volatile ram
-
- memset(&ba, 0, sizeof(ba));
- ba.Data = RamStart;
- ba.nLen = RamEnd - RamStart;
- ba.szName = "RAM";
- BurnAcb(&ba);
-
- SekScan(nAction); // scan 68000 states
-
- MSM6295Scan(0, nAction);
- MSM6295Scan(1, nAction);
- NMK112_Scan(nAction);
-
- SCAN_VAR(nVideoIRQ);
- SCAN_VAR(nSoundIRQ);
- SCAN_VAR(nUnknownIRQ);
- SCAN_VAR(bVBlank);
-
- CaveScanGraphics();
-
- SCAN_VAR(DrvInput);
-#ifdef USE_SAMPLE_HACK
- BurnSampleScan(nAction, pnMin); // Must be at the end to maintain compatibility between sample and non-sample mode.
-#endif
- }
-
- if (nAction & ACB_WRITE) {
- CaveRecalcPalette = 1;
- bLastSampleDIPMode = 0xf7;
- }
-
- return 0;
-}
-
-static INT32 DrvInit()
-{
- INT32 nLen;
-
- BurnSetRefreshRate(CAVE_REFRESHRATE);
-
- // Find out how much memory is needed
- Mem = NULL;
- MemIndex();
- nLen = MemEnd - (UINT8 *)0;
- if ((Mem = (UINT8 *)BurnMalloc(nLen)) == NULL) {
- return 1;
- }
- memset(Mem, 0, nLen); // blank all memory
- MemIndex(); // Index the allocated memory
-
- // Load the roms into memory
- if (LoadRoms()) {
- return 1;
- }
-
- EEPROMInit(&eeprom_interface_93C46);
- if (!EEPROMAvailable()) EEPROMFill(DefaultEEPROM,0, 0x80);
-
- {
- SekInit(0, 0x68000); // Allocate 68000
- SekOpen(0);
-
- // Map 68000 memory:
- SekMapMemory(Rom01, 0x000000, 0x07FFFF, MAP_ROM); // CPU 0 ROM
- SekMapMemory(Ram01, 0x100000, 0x10FFFF, MAP_RAM);
- SekMapMemory(CaveTileRAM[1], 0x200000, 0x207FFF, MAP_RAM);
- SekMapMemory(CaveTileRAM[0], 0x300000, 0x307FFF, MAP_RAM);
- SekMapMemory(CaveTileRAM[2] + 0x4000, 0x400000, 0x403FFF, MAP_RAM);
- SekMapMemory(CaveTileRAM[2] + 0x4000, 0x404000, 0x407FFF, MAP_RAM);
- SekMapMemory(CaveSpriteRAM, 0x500000, 0x50FFFF, MAP_RAM);
- SekMapMemory(CavePalSrc, 0xA08000, 0xA08FFF, MAP_RAM); // Palette RAM
-
- SekSetReadWordHandler(0, donpachiReadWord);
- SekSetReadByteHandler(0, donpachiReadByte);
- SekSetWriteWordHandler(0, donpachiWriteWord);
- SekSetWriteByteHandler(0, donpachiWriteByte);
-
- SekClose();
- }
-
- CavePalInit(0x8000);
- CaveTileInit();
- CaveSpriteInit(0, 0x0800000);
- CaveTileInitLayer(0, 0x200000, 8, 0x4000);
- CaveTileInitLayer(1, 0x200000, 8, 0x4000);
- CaveTileInitLayer(2, 0x080000, 8, 0x4000);
-
- MSM6295Init(0, 8000, 0);
- MSM6295Init(1, 16000, 0);
-#ifdef USE_SAMPLE_HACK
- MSM6295SetRoute(0, 0.00, BURN_SND_ROUTE_BOTH);
-#else
- MSM6295SetRoute(0, 1.60, BURN_SND_ROUTE_BOTH);
-#endif
- MSM6295SetRoute(1, 1.00, BURN_SND_ROUTE_BOTH);
-
- NMK112_init(1 << 0, MSM6295ROM + 0x100000, MSM6295ROM, 0x200000, 0x300000);
-
-
-#ifdef USE_SAMPLE_HACK
- BurnUpdateProgress(0.0, _T("Loading samples..."), 0);
- bBurnSampleTrimSampleEnd = 1;
- BurnSampleInit(1);
- BurnSampleSetAllRoutesAllSamples(0.40, BURN_SND_ROUTE_BOTH);
- bHasSamples = BurnSampleGetStatus(0) != -1;
- bLastSampleDIPMode = DrvDips[0];
-
- if (!(bLastSampleDIPMode == 8) || !bHasSamples) { // Samples not found, fallback to internal samples.
- MSM6295SetRoute(0, 1.60, BURN_SND_ROUTE_BOTH);
- BurnSampleSetAllRoutesAllSamples(0.00, BURN_SND_ROUTE_BOTH);
- }
-#endif
-
- bDrawScreen = true;
-
- DrvDoReset(); // Reset machine
-
- return 0;
-}
-
-// Rom information
-static struct BurnRomInfo donpachiRomDesc[] = {
- { "prgu.u29", 0x080000, 0x89C36802, BRF_ESS | BRF_PRG }, // 0 CPU #0 code
-
- { "atdp.u44", 0x200000, 0x7189E953, BRF_GRA }, // 1 Sprite data
- { "atdp.u45", 0x200000, 0x6984173F, BRF_GRA }, // 2
-
- { "atdp.u54", 0x100000, 0x6BDA6B66, BRF_GRA }, // 3 Layer 0 Tile data
- { "atdp.u57", 0x100000, 0x0A0E72B9, BRF_GRA }, // 4 Layer 1 Tile data
- { "text.u58", 0x040000, 0x5DBA06E7, BRF_GRA }, // 5 Layer 2 Tile data
-
- { "atdp.u32", 0x100000, 0x0D89FCCA, BRF_SND }, // 6 MSM6295 #1 ADPCM data
- { "atdp.u33", 0x200000, 0xD749DE00, BRF_SND }, // 7 MSM6295 #0/1 ADPCM data
-
- { "eeprom-donpachi.u10", 0x0080, 0x315fb546, BRF_ESS | BRF_PRG },
-
- { "peel18cv8p-15.u18", 0x0155, 0x3f4787e9, BRF_OPT },
-};
-
-
-STD_ROM_PICK(donpachi)
-STD_ROM_FN(donpachi)
-
-static struct BurnRomInfo donpachijRomDesc[] = {
- { "prg.u29", 0x080000, 0x6BE14AF6, BRF_ESS | BRF_PRG }, // 0 CPU #0 code
-
- { "atdp.u44", 0x200000, 0x7189E953, BRF_GRA }, // 1 Sprite data
- { "atdp.u45", 0x200000, 0x6984173F, BRF_GRA }, // 2
-
- { "atdp.u54", 0x100000, 0x6BDA6B66, BRF_GRA }, // 3 Layer 0 Tile data
- { "atdp.u57", 0x100000, 0x0A0E72B9, BRF_GRA }, // 4 Layer 1 Tile data
- { "u58.bin", 0x040000, 0x285379FF, BRF_GRA }, // 5 Layer 2 Tile data
-
- { "atdp.u32", 0x100000, 0x0D89FCCA, BRF_SND }, // 6 MSM6295 #1 ADPCM data
- { "atdp.u33", 0x200000, 0xD749DE00, BRF_SND }, // 7 MSM6295 #0/1 ADPCM data
-
- { "eeprom-donpachi.bin", 0x0080, 0x315fb546, BRF_ESS | BRF_PRG },
-
- { "peel18cv8p-15.u18", 0x0155, 0x3f4787e9, BRF_OPT },
-};
-
-
-STD_ROM_PICK(donpachij)
-STD_ROM_FN(donpachij)
-
-static struct BurnRomInfo donpachikrRomDesc[] = {
- { "prgk.u26", 0x080000, 0xBBAF4C8B, BRF_ESS | BRF_PRG }, // 0 CPU #0 code
-
- { "atdp.u44", 0x200000, 0x7189E953, BRF_GRA }, // 1 Sprite data
- { "atdp.u45", 0x200000, 0x6984173F, BRF_GRA }, // 2
-
- { "atdp.u54", 0x100000, 0x6BDA6B66, BRF_GRA }, // 3 Layer 0 Tile data
- { "atdp.u57", 0x100000, 0x0A0E72B9, BRF_GRA }, // 4 Layer 1 Tile data
- { "u58.bin", 0x040000, 0x285379FF, BRF_GRA }, // 5 Layer 2 Tile data
-
- { "atdp.u32", 0x100000, 0x0D89FCCA, BRF_SND }, // 6 MSM6295 #1 ADPCM data
- { "atdp.u33", 0x200000, 0xD749DE00, BRF_SND }, // 7 MSM6295 #0/1 ADPCM data
-
- { "eeprom-donpachi.bin", 0x0080, 0x315fb546, BRF_ESS | BRF_PRG },
-
- { "peel18cv8p-15.u18", 0x0155, 0x3f4787e9, BRF_OPT },
-};
-
-
-STD_ROM_PICK(donpachikr)
-STD_ROM_FN(donpachikr)
-
-static struct BurnRomInfo donpachihkRomDesc[] = {
- { "37.u29", 0x080000, 0x71f39f30, BRF_ESS | BRF_PRG }, // 0 CPU #0 code
-
- { "atdp.u44", 0x200000, 0x7189E953, BRF_GRA }, // 1 Sprite data
- { "atdp.u45", 0x200000, 0x6984173F, BRF_GRA }, // 2
-
- { "atdp.u54", 0x100000, 0x6BDA6B66, BRF_GRA }, // 3 Layer 0 Tile data
- { "atdp.u57", 0x100000, 0x0A0E72B9, BRF_GRA }, // 4 Layer 1 Tile data
- { "u58.bin", 0x040000, 0x285379ff, BRF_GRA }, // 5 Layer 2 Tile data
-
- { "atdp.u32", 0x100000, 0x0D89FCCA, BRF_SND }, // 6 MSM6295 #1 ADPCM data
- { "atdp.u33", 0x200000, 0xD749DE00, BRF_SND }, // 7 MSM6295 #0/1 ADPCM data
-
- { "eeprom-donpachi.bin", 0x0080, 0x315fb546, BRF_ESS | BRF_PRG },
-
- { "peel18cv8p-15.u18", 0x0155, 0x3f4787e9, BRF_OPT },
-};
-
-STD_ROM_PICK(donpachihk)
-STD_ROM_FN(donpachihk)
-
-static struct BurnSampleInfo DonpachiSampleDesc[] = {
-#ifdef USE_SAMPLE_HACK
-#if !defined ROM_VERIFY
- { "02 - Sortie Instruction", SAMPLE_AUTOLOOP | SAMPLE_NOSTORE },
- { "03 - Silent Outpost Base", SAMPLE_AUTOLOOP | SAMPLE_NOSTORE },
- { "04 - Gale Force", SAMPLE_AUTOLOOP | SAMPLE_NOSTORE },
- { "05 - God of Destruction", SAMPLE_AUTOLOOP | SAMPLE_NOSTORE },
- { "06 - Advance Through the Sky", SAMPLE_AUTOLOOP | SAMPLE_NOSTORE },
- { "07 - The Battle Intensifies", SAMPLE_AUTOLOOP | SAMPLE_NOSTORE },
- { "08 - An Equal Match", SAMPLE_AUTOLOOP | SAMPLE_NOSTORE },
- { "09 - It's All Up To Me!!", SAMPLE_NOLOOP | SAMPLE_NOSTORE },
- { "10 - Chief's Congratulations", SAMPLE_NOLOOP | SAMPLE_NOSTORE },
- { "11 - Breakthrough", SAMPLE_NOLOOP | SAMPLE_NOSTORE },
- { "12 - Pressure", SAMPLE_AUTOLOOP | SAMPLE_NOSTORE },
- { "13 - My Duty is Done", SAMPLE_AUTOLOOP | SAMPLE_NOSTORE },
- { "14 - Eternal Soldier", SAMPLE_AUTOLOOP | SAMPLE_NOSTORE },
- { "15 - Chase in the Dark", SAMPLE_AUTOLOOP | SAMPLE_NOSTORE },
-#endif
-#endif
- { "", 0 }
-};
-
-STD_SAMPLE_PICK(Donpachi)
-STD_SAMPLE_FN(Donpachi)
-
-struct BurnDriver BurnDrvDonpachi = {
- "donpachi", NULL, NULL, "donpachi", "1995",
- "DonPachi (USA, ver. 1.12, 95/05/2x)\0", NULL, "Atlus / Cave", "Cave",
- L"\u9996\u9818\u8702 DonPachi (USA, ver. 1.12, 95/05/2x)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_16BIT_ONLY | BDF_HISCORE_SUPPORTED, 2, HARDWARE_CAVE_68K_ONLY | HARDWARE_CAVE_M6295, GBF_VERSHOOT, 0,
- NULL, donpachiRomInfo, donpachiRomName, DonpachiSampleInfo, DonpachiSampleName, donpachiInputInfo, donpachiDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan,
- &CaveRecalcPalette, 0x8000, 240, 320, 3, 4
-};
-
-struct BurnDriver BurnDrvDonpachij = {
- "donpachij", "donpachi", NULL, "donpachi", "1995",
- "DonPachi (Japan, ver. 1.01, 95/05/11)\0", NULL, "Atlus / Cave", "Cave",
- L"\u9996\u9818\u8702 DonPachi (Japan, ver. 1.01, 95/05/11)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_16BIT_ONLY | BDF_HISCORE_SUPPORTED, 2, HARDWARE_CAVE_68K_ONLY | HARDWARE_CAVE_M6295, GBF_VERSHOOT, 0,
- NULL, donpachijRomInfo, donpachijRomName, DonpachiSampleInfo, DonpachiSampleName, donpachiInputInfo, donpachiDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan,
- &CaveRecalcPalette, 0x8000, 240, 320, 3, 4
-};
-
-struct BurnDriver BurnDrvDonpachikr = {
- "donpachikr", "donpachi", NULL, "donpachi", "1995",
- "DonPachi (Korea, ver. 1.12, 95/05/2x)\0", NULL, "Atlus / Cave", "Cave",
- L"\u9996\u9818\u8702 DonPachi (Korea, ver. 1.12, 95/05/2x)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_16BIT_ONLY | BDF_HISCORE_SUPPORTED, 2, HARDWARE_CAVE_68K_ONLY | HARDWARE_CAVE_M6295, GBF_VERSHOOT, 0,
- NULL, donpachikrRomInfo, donpachikrRomName, DonpachiSampleInfo, DonpachiSampleName, donpachiInputInfo, donpachiDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan,
- &CaveRecalcPalette, 0x8000, 240, 320, 3, 4
-};
-
-struct BurnDriver BurnDrvDonpachihk = {
- "donpachihk", "donpachi", NULL, "donpachi", "1995",
- "DonPachi (Hong Kong, ver. 1.10, 95/05/17)\0", NULL, "Atlus / Cave", "Cave",
- L"\u9996\u9818\u8702 DonPachi (Hong Kong, ver. 1.10, 95/05/17)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_16BIT_ONLY | BDF_HISCORE_SUPPORTED, 2, HARDWARE_CAVE_68K_ONLY | HARDWARE_CAVE_M6295, GBF_VERSHOOT, 0,
- NULL, donpachihkRomInfo, donpachihkRomName, DonpachiSampleInfo, DonpachiSampleName, donpachiInputInfo, donpachiDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan,
- &CaveRecalcPalette, 0x8000, 240, 320, 3, 4
-};
diff --git a/jan/src/burn/drv/cave/d_esprade.cpp b/jan/src/burn/drv/cave/d_esprade.cpp
deleted file mode 100644
index baa8f4464..000000000
--- a/jan/src/burn/drv/cave/d_esprade.cpp
+++ /dev/null
@@ -1,719 +0,0 @@
-// E.S.P. Ra De
-#include "cave.h"
-#include "ymz280b.h"
-
-#define CAVE_VBLANK_LINES 12
-
-static UINT8 DrvJoy1[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
-static UINT8 DrvJoy2[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
-static UINT16 DrvInput[2] = {0x0000, 0x0000};
-static UINT8 DrvDips[1];
-
-static UINT8 *Mem = NULL, *MemEnd = NULL;
-static UINT8 *RamStart, *RamEnd;
-static UINT8 *Rom01;
-static UINT8 *Ram01;
-static UINT8 *DefaultEEPROM = NULL;
-
-static UINT8 DrvReset = 0;
-static UINT8 bDrawScreen;
-static bool bVBlank;
-
-static INT8 nVideoIRQ;
-static INT8 nSoundIRQ;
-static INT8 nUnknownIRQ;
-
-static INT8 nIRQPending;
-
-static INT32 nCurrentCPU;
-static INT32 nCyclesDone[2];
-static INT32 nCyclesTotal[2];
-static INT32 nCyclesSegment;
-static INT32 nCyclesExtra;
-
-static struct BurnInputInfo espradeInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy1 + 8, "p1 coin"},
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 7, "p1 start"},
-
- {"P1 Up", BIT_DIGITAL, DrvJoy1 + 0, "p1 up"},
- {"P1 Down", BIT_DIGITAL, DrvJoy1 + 1, "p1 down"},
- {"P1 Left", BIT_DIGITAL, DrvJoy1 + 2, "p1 left"},
- {"P1 Right", BIT_DIGITAL, DrvJoy1 + 3, "p1 right"},
- {"P1 Button 1", BIT_DIGITAL, DrvJoy1 + 4, "p1 fire 1"},
- {"P1 Button 2", BIT_DIGITAL, DrvJoy1 + 5, "p1 fire 2"},
- {"P1 Button 3", BIT_DIGITAL, DrvJoy1 + 6, "p1 fire 3"},
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy2 + 8, "p2 coin"},
- {"P2 Start", BIT_DIGITAL, DrvJoy2 + 7, "p2 start"},
-
- {"P2 Up", BIT_DIGITAL, DrvJoy2 + 0, "p2 up"},
- {"P2 Down", BIT_DIGITAL, DrvJoy2 + 1, "p2 down"},
- {"P2 Left", BIT_DIGITAL, DrvJoy2 + 2, "p2 left"},
- {"P2 Right", BIT_DIGITAL, DrvJoy2 + 3, "p2 right"},
- {"P2 Button 1", BIT_DIGITAL, DrvJoy2 + 4, "p2 fire 1"},
- {"P2 Button 2", BIT_DIGITAL, DrvJoy2 + 5, "p2 fire 2"},
- {"P2 Button 3", BIT_DIGITAL, DrvJoy2 + 6, "p2 fire 3"},
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset"},
- {"Diagnostics", BIT_DIGITAL, DrvJoy1 + 9, "diag"},
- {"Service", BIT_DIGITAL, DrvJoy2 + 9, "service"},
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip"},
-};
-
-STDINPUTINFO(esprade)
-
-static struct BurnDIPInfo espradeDIPList[]=
-{
- {0x15, 0xff, 0xff, 0x08, NULL },
-
- {0 , 0xfe, 0 , 2, "Virtual Mixer (ymz280b)"},
- {0x15, 0x01, 0x08, 0x08, "On" },
- {0x15, 0x01, 0x08, 0x00, "Off" },
-};
-
-STDDIPINFO(esprade)
-
-
-static void UpdateIRQStatus()
-{
- nIRQPending = (nVideoIRQ == 0 || nSoundIRQ == 0 || nUnknownIRQ == 0);
- SekSetIRQLine(1, nIRQPending ? CPU_IRQSTATUS_ACK : CPU_IRQSTATUS_NONE);
-}
-
-UINT8 __fastcall espradeReadByte(UINT32 sekAddress)
-{
- switch (sekAddress) {
- case 0x300003: {
- return YMZ280BReadStatus();
- }
-
- case 0x800000:
- case 0x800001:
- case 0x800002:
- case 0x800003: {
- UINT16 nRet = (nUnknownIRQ << 1) | nVideoIRQ;
- return nRet;
- }
- case 0x800004:
- case 0x800005: {
- UINT16 nRet = (nUnknownIRQ << 1) | nVideoIRQ;
- nVideoIRQ = 1;
- UpdateIRQStatus();
- return nRet;
- }
- case 0x800006:
- case 0x800007: {
- UINT16 nRet = (nUnknownIRQ << 1) | nVideoIRQ;
- nUnknownIRQ = 1;
- UpdateIRQStatus();
- return nRet;
- }
-
- case 0xD00000:
- return (DrvInput[0] >> 8) ^ 0xFF;
- case 0xD00001:
- return (DrvInput[0] & 0xFF) ^ 0xFF;
- case 0xD00002:
- return ((DrvInput[1] >> 8) ^ 0xF7) | (EEPROMRead() << 3);
- case 0xD00003:
- return (DrvInput[1] & 0xFF) ^ 0xFF;
-
- default: {
-// bprintf(PRINT_NORMAL, "Attempt to read byte value of location %x\n", sekAddress);
- }
- }
- return 0;
-}
-
-UINT16 __fastcall espradeReadWord(UINT32 sekAddress)
-{
- switch (sekAddress) {
- case 0x300002: {
- return YMZ280BReadStatus();
- }
-
- case 0x800000:
- case 0x800002: {
- UINT16 nRet = (nUnknownIRQ << 1) | nVideoIRQ;
- return nRet;
- }
-
- case 0x800004: {
- UINT16 nRet = (nUnknownIRQ << 1) | nVideoIRQ;
- nVideoIRQ = 1;
- UpdateIRQStatus();
- return nRet;
- }
- case 0x800006: {
- UINT16 nRet = (nUnknownIRQ << 1) | nVideoIRQ;
- nUnknownIRQ = 1;
- UpdateIRQStatus();
- return nRet;
- }
-
- case 0xD00000:
- return DrvInput[0] ^ 0xFFFF;
- case 0xD00002:
- return (DrvInput[1] ^ 0xF7FF) | (EEPROMRead() << 11);
-
- default: {
-// bprintf(PRINT_NORMAL, "Attempt to read word value of location %x\n", sekAddress);
- }
- }
- return 0;
-}
-
-void __fastcall espradeWriteByte(UINT32 sekAddress, UINT8 byteValue)
-{
- switch (sekAddress) {
- case 0x300001:
- YMZ280BSelectRegister(byteValue);
- break;
- case 0x300003:
- YMZ280BWriteRegister(byteValue);
- break;
-
- case 0xE00000:
- EEPROMWrite(byteValue & 0x04, byteValue & 0x02, byteValue & 0x08);
- break;
-
- default: {
-// bprintf(PRINT_NORMAL, "Attempt to write byte value %x to location %x\n", byteValue, sekAddress);
- }
- }
-}
-
-void __fastcall espradeWriteWord(UINT32 sekAddress, UINT16 wordValue)
-{
- switch (sekAddress) {
- case 0x300000:
- YMZ280BSelectRegister(wordValue);
- break;
- case 0x300002:
- YMZ280BWriteRegister(wordValue);
- break;
-
- case 0x800000:
- nCaveXOffset = wordValue;
- return;
- case 0x800002:
- nCaveYOffset = wordValue;
- return;
- case 0x800008:
- CaveSpriteBuffer();
- nCaveSpriteBank = wordValue;
- return;
-
- case 0x900000:
- CaveTileReg[0][0] = wordValue;
- break;
- case 0x900002:
- CaveTileReg[0][1] = wordValue;
- break;
- case 0x900004:
- CaveTileReg[0][2] = wordValue;
- break;
-
- case 0xA00000:
- CaveTileReg[1][0] = wordValue;
- break;
- case 0xA00002:
- CaveTileReg[1][1] = wordValue;
- break;
- case 0xA00004:
- CaveTileReg[1][2] = wordValue;
- break;
-
- case 0xB00000:
- CaveTileReg[2][0] = wordValue;
- break;
- case 0xB00002:
- CaveTileReg[2][1] = wordValue;
- break;
- case 0xB00004:
- CaveTileReg[2][2] = wordValue;
- break;
-
- case 0xE00000:
- wordValue >>= 8;
- EEPROMWrite(wordValue & 0x04, wordValue & 0x02, wordValue & 0x08);
- break;
-
- default: {
-// bprintf(PRINT_NORMAL, "Attempt to write word value %x to location %x\n", wordValue, sekAddress);
-
- }
- }
-}
-
-void __fastcall espradeWriteBytePalette(UINT32 sekAddress, UINT8 byteValue)
-{
- CavePalWriteByte(sekAddress & 0xFFFF, byteValue);
-}
-
-void __fastcall espradeWriteWordPalette(UINT32 sekAddress, UINT16 wordValue)
-{
- CavePalWriteWord(sekAddress & 0xFFFF, wordValue);
-}
-
-static void TriggerSoundIRQ(INT32 nStatus)
-{
- nSoundIRQ = nStatus ^ 1;
- UpdateIRQStatus();
-
- if (nIRQPending && nCurrentCPU != 0) {
- nCyclesDone[0] += SekRun(0x0400);
- }
-}
-
-static INT32 DrvExit()
-{
- YMZ280BExit();
- bESPRaDeMixerKludge = false;
-
- EEPROMExit();
-
- CaveTileExit();
- CaveSpriteExit();
- CavePalExit();
-
- SekExit(); // Deallocate 68000s
-
- BurnFree(Mem);
-
- return 0;
-}
-
-static INT32 DrvDoReset()
-{
- SekOpen(0);
- SekReset();
- SekClose();
-
- EEPROMReset();
-
- nVideoIRQ = 1;
- nSoundIRQ = 1;
- nUnknownIRQ = 1;
-
- nIRQPending = 0;
-
- YMZ280BReset();
-
- nCyclesExtra = 0;
-
- HiscoreReset();
-
- return 0;
-}
-
-static INT32 DrvDraw()
-{
- CavePalUpdate8Bit(0, 128); // Update the palette
- CaveClearScreen(CavePalette[0x0000]);
-
- if (bDrawScreen) {
-// CaveGetBitmap();
-
- CaveTileRender(1); // Render tiles
- }
-
- return 0;
-}
-
-inline static INT32 CheckSleep(INT32)
-{
- return 0;
-}
-
-static INT32 DrvFrame()
-{
- INT32 nCyclesVBlank;
- INT32 nInterleave = 8;
-
- if (DrvReset) { // Reset machine
- DrvDoReset();
- }
-
- // Compile digital inputs
- DrvInput[0] = 0x0000; // Player 1
- DrvInput[1] = 0x0000; // Player 2
- for (INT32 i = 0; i < 10; i++) {
- DrvInput[0] |= (DrvJoy1[i] & 1) << i;
- DrvInput[1] |= (DrvJoy2[i] & 1) << i;
- }
- CaveClearOpposites(&DrvInput[0]);
- CaveClearOpposites(&DrvInput[1]);
-
- bESPRaDeMixerKludge = (DrvDips[0] == 8);
-
- SekNewFrame();
-
- nCyclesTotal[0] = (INT32)((INT64)16000000 * nBurnCPUSpeedAdjust / (0x0100 * CAVE_REFRESHRATE));
- nCyclesDone[0] = 0;
-
- nCyclesVBlank = nCyclesTotal[0] - (INT32)((nCyclesTotal[0] * CAVE_VBLANK_LINES) / 271.5);
- bVBlank = false;
-
- INT32 nSoundBufferPos = 0;
-
- SekOpen(0);
-
- for (INT32 i = 1; i <= nInterleave; i++) {
- INT32 nNext;
-
- // Render sound segment
- if ((i & 1) == 0) {
- if (pBurnSoundOut) {
- INT32 nSegmentEnd = nBurnSoundLen * i / nInterleave;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- YMZ280BRender(pSoundBuf, nSegmentEnd - nSoundBufferPos);
- nSoundBufferPos = nSegmentEnd;
- }
- }
-
- // Run 68000
- nCurrentCPU = 0;
- nNext = i * nCyclesTotal[nCurrentCPU] / nInterleave;
-
- // See if we need to trigger the VBlank interrupt
- if (!bVBlank && nNext > nCyclesVBlank) {
- if (nCyclesDone[nCurrentCPU] < nCyclesVBlank) {
- nCyclesSegment = nCyclesVBlank - nCyclesDone[nCurrentCPU];
- if (!CheckSleep(nCurrentCPU)) { // See if this CPU is busywaiting
- nCyclesDone[nCurrentCPU] += SekRun(nCyclesSegment);
- } else {
- nCyclesDone[nCurrentCPU] += SekIdle(nCyclesSegment);
- }
- }
-
- if (pBurnDraw != NULL) {
- DrvDraw(); // Draw screen if needed
- }
-
- bVBlank = true;
- nVideoIRQ = 0;
- UpdateIRQStatus();
- }
-
- nCyclesSegment = nNext - nCyclesDone[nCurrentCPU];
- if (!CheckSleep(nCurrentCPU)) { // See if this CPU is busywaiting
- nCyclesDone[nCurrentCPU] += SekRun(nCyclesSegment+nCyclesExtra);
- nCyclesExtra = 0;
- } else {
- nCyclesDone[nCurrentCPU] += SekIdle(nCyclesSegment);
- }
-
- nCurrentCPU = -1;
- }
-
- {
- // Make sure the buffer is entirely filled.
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- if (nSegmentLength) {
- YMZ280BRender(pSoundBuf, nSegmentLength);
- }
- }
- }
-
- nCyclesExtra = SekTotalCycles() - nCyclesTotal[0];
- SekClose();
-
- return 0;
-}
-
-// This routine is called first to determine how much memory is needed (MemEnd-(UINT8 *)0),
-// and then afterwards to set up all the pointers
-static INT32 MemIndex()
-{
- UINT8* Next; Next = Mem;
- Rom01 = Next; Next += 0x100000; // 68K program
- CaveSpriteROM = Next; Next += 0x1000000;
- CaveTileROM[0] = Next; Next += 0x800000; // Tile layer 0
- CaveTileROM[1] = Next; Next += 0x800000; // Tile layer 1
- CaveTileROM[2] = Next; Next += 0x400000; // Tile layer 2
- YMZ280BROM = Next; Next += 0x400000;
- DefaultEEPROM = Next; Next += 0x000080;
- RamStart = Next;
- Ram01 = Next; Next += 0x010000; // CPU #0 work RAM
- CaveTileRAM[0] = Next; Next += 0x008000;
- CaveTileRAM[1] = Next; Next += 0x008000;
- CaveTileRAM[2] = Next; Next += 0x008000;
- CaveSpriteRAM = Next; Next += 0x010000;
- CavePalSrc = Next; Next += 0x010000; // palette
- RamEnd = Next;
- MemEnd = Next;
-
- return 0;
-}
-
-static void NibbleSwap3(UINT8* pData, INT32 nLen)
-{
- for (INT32 i = 0; i < nLen; i++, pData += 2) {
- UINT8 n1 = pData[0];
- UINT8 n2 = pData[1];
-
- pData[0] = (n1 << 4) | (n2 & 0x0F);
- pData[1] = (n1 & 0xF0) | (n2 >> 4);
- }
-
- return;
-}
-
-static void NibbleSwap4(UINT8* pData, INT32 nLen)
-{
- for (INT32 i = 0; i < nLen; i++, pData += 2) {
- UINT8 n1 = pData[0];
- UINT8 n2 = pData[1];
-
- pData[1] = (n2 << 4) | (n1 & 0x0F);
- pData[0] = (n2 & 0xF0) | (n1 >> 4);
- }
-
- return;
-}
-
-
-static INT32 LoadRoms()
-{
- // Load 68000 ROM
- BurnLoadRom(Rom01 + 0, 1, 2);
- BurnLoadRom(Rom01 + 1, 0, 2);
-
- BurnLoadRom(CaveSpriteROM + 0x000000, 2, 2);
- BurnLoadRom(CaveSpriteROM + 0x000001, 3, 2);
- BurnLoadRom(CaveSpriteROM + 0x800000, 4, 2);
- BurnLoadRom(CaveSpriteROM + 0x800001, 5, 2);
- NibbleSwap3(CaveSpriteROM, 0x800000);
-
- BurnLoadRom(CaveTileROM[0] + 0x000000, 6, 1);
- BurnLoadRom(CaveTileROM[0] + 0x400000, 7, 1);
- NibbleSwap4(CaveTileROM[0], 0x400000);
- BurnLoadRom(CaveTileROM[1] + 0x000000, 8, 1);
- BurnLoadRom(CaveTileROM[1] + 0x400000, 9, 1);
- NibbleSwap4(CaveTileROM[1], 0x400000);
- BurnLoadRom(CaveTileROM[2] + 0x000000, 10, 1);
- NibbleSwap4(CaveTileROM[2], 0x200000);
-
- // Load YMZ280B data
- BurnLoadRom(YMZ280BROM, 11, 1);
-
- BurnLoadRom(DefaultEEPROM, 12, 1);
-
- return 0;
-}
-
-// Scan ram
-static INT32 DrvScan(INT32 nAction, INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin) { // Return minimum compatible version
- *pnMin = 0x020902;
- }
-
- EEPROMScan(nAction, pnMin); // Scan EEPROM
-
- if (nAction & ACB_VOLATILE) { // Scan volatile ram
-
- memset(&ba, 0, sizeof(ba));
- ba.Data = RamStart;
- ba.nLen = RamEnd - RamStart;
- ba.szName = "RAM";
- BurnAcb(&ba);
-
- SekScan(nAction); // scan 68000 states
-
- YMZ280BScan();
-
- SCAN_VAR(nVideoIRQ);
- SCAN_VAR(nSoundIRQ);
- SCAN_VAR(nUnknownIRQ);
- SCAN_VAR(bVBlank);
-
- CaveScanGraphics();
-
- SCAN_VAR(DrvInput);
- }
-
- if (nAction & ACB_WRITE) {
- CaveRecalcPalette = 1;
- }
-
- return 0;
-}
-
-static INT32 DrvInit()
-{
- INT32 nLen;
-
- BurnSetRefreshRate(CAVE_REFRESHRATE);
-
- // Find out how much memory is needed
- Mem = NULL;
- MemIndex();
- nLen = MemEnd - (UINT8 *)0;
- if ((Mem = (UINT8 *)BurnMalloc(nLen)) == NULL) {
- return 1;
- }
- memset(Mem, 0, nLen); // blank all memory
- MemIndex(); // Index the allocated memory
-
- // Load the roms into memory
- if (LoadRoms()) {
- return 1;
- }
-
- EEPROMInit(&eeprom_interface_93C46);
- if (!EEPROMAvailable()) EEPROMFill(DefaultEEPROM,0, 0x80);
-
- {
- SekInit(0, 0x68000); // Allocate 68000
- SekOpen(0);
-
- // Map 68000 memory:
- SekMapMemory(Rom01, 0x000000, 0x0FFFFF, MAP_ROM); // CPU 0 ROM
- SekMapMemory(Ram01, 0x100000, 0x10FFFF, MAP_RAM);
- SekMapMemory(CaveSpriteRAM, 0x400000, 0x40FFFF, MAP_RAM);
- SekMapMemory(CaveTileRAM[0], 0x500000, 0x507FFF, MAP_RAM);
- SekMapMemory(CaveTileRAM[1], 0x600000, 0x607FFF, MAP_RAM);
- SekMapMemory(CaveTileRAM[2], 0x700000, 0x707FFF, MAP_RAM);
-
- SekMapMemory(CavePalSrc, 0xC00000, 0xC0FFFF, MAP_ROM); // Palette RAM (write goes through handler)
- SekMapHandler(1, 0xC00000, 0xC0FFFF, MAP_WRITE); //
-
- SekSetReadWordHandler(0, espradeReadWord);
- SekSetReadByteHandler(0, espradeReadByte);
- SekSetWriteWordHandler(0, espradeWriteWord);
- SekSetWriteByteHandler(0, espradeWriteByte);
-
- SekSetWriteWordHandler(1, espradeWriteWordPalette);
- SekSetWriteByteHandler(1, espradeWriteBytePalette);
-
- SekClose();
- }
-
- CavePalInit(0x8000);
- CaveTileInit();
- CaveSpriteInit(1, 0x1000000);
- CaveTileInitLayer(0, 0x800000, 8, 0x4000);
- CaveTileInitLayer(1, 0x800000, 8, 0x4000);
- CaveTileInitLayer(2, 0x400000, 8, 0x4000);
-
- YMZ280BInit(16934400, &TriggerSoundIRQ, 0x400000);
- YMZ280BSetRoute(BURN_SND_YMZ280B_YMZ280B_ROUTE_1, 1.00, BURN_SND_ROUTE_LEFT);
- YMZ280BSetRoute(BURN_SND_YMZ280B_YMZ280B_ROUTE_2, 1.00, BURN_SND_ROUTE_RIGHT);
- bESPRaDeMixerKludge = true;
-
- bDrawScreen = true;
-
- DrvDoReset(); // Reset machine
-
- return 0;
-}
-
-// Rom information
-static struct BurnRomInfo espradeRomDesc[] = {
- { "u42.int", 0x080000, 0x3B510A73, BRF_ESS | BRF_PRG }, // 0 CPU #0 code
- { "u41.int", 0x080000, 0x97C1B649, BRF_ESS | BRF_PRG }, // 1
-
- { "esp_u63.u63", 0x400000, 0x2F2FE92C, BRF_GRA }, // 2 Sprite data
- { "esp_u64.u64", 0x400000, 0x491A3DA4, BRF_GRA }, // 3
- { "esp_u65.u65", 0x400000, 0x06563EFE, BRF_GRA }, // 4
- { "esp_u66.u66", 0x400000, 0x7BBE4CFC, BRF_GRA }, // 5
-
- { "esp_u54.u54", 0x400000, 0xE7CA6936, BRF_GRA }, // 6 Layer 0 Tile data
- { "esp_u55.u55", 0x400000, 0xF53BD94F, BRF_GRA }, // 7
- { "esp_u52.u52", 0x400000, 0xE7ABE7B4, BRF_GRA }, // 8 Layer 1 Tile data
- { "esp_u53.u53", 0x400000, 0x51A0F391, BRF_GRA }, // 9
- { "esp_u51.u51", 0x400000, 0x0B9B875C, BRF_GRA }, // 10 Layer 2 Tile data
-
- { "esp_u19.u19", 0x400000, 0xF54B1CAB, BRF_SND }, // 11 YMZ280B (AD)PCM data
-
- { "eeprom-esprade.bin", 0x0080, 0x315fb546, BRF_ESS | BRF_PRG },
-};
-
-
-STD_ROM_PICK(esprade)
-STD_ROM_FN(esprade)
-
-static struct BurnRomInfo espradejRomDesc[] = {
- { "u42_ver.2", 0x080000, 0x75D03C42, BRF_ESS | BRF_PRG }, // 0 CPU #0 code
- { "u41_ver.2", 0x080000, 0x734B3EF0, BRF_ESS | BRF_PRG }, // 1
-
- { "esp_u63.u63", 0x400000, 0x2F2FE92C, BRF_GRA }, // 2 Sprite data
- { "esp_u64.u64", 0x400000, 0x491A3DA4, BRF_GRA }, // 3
- { "esp_u65.u65", 0x400000, 0x06563EFE, BRF_GRA }, // 4
- { "esp_u66.u66", 0x400000, 0x7BBE4CFC, BRF_GRA }, // 5
-
- { "esp_u54.u54", 0x400000, 0xE7CA6936, BRF_GRA }, // 6 Layer 0 Tile data
- { "esp_u55.u55", 0x400000, 0xF53BD94F, BRF_GRA }, // 7
- { "esp_u52.u52", 0x400000, 0xE7ABE7B4, BRF_GRA }, // 8 Layer 1 Tile data
- { "esp_u53.u53", 0x400000, 0x51A0F391, BRF_GRA }, // 9
- { "esp_u51.u51", 0x400000, 0x0B9B875C, BRF_GRA }, // 10 Layer 2 Tile data
-
- { "esp_u19.u19", 0x400000, 0xF54B1CAB, BRF_SND }, // 11 YMZ280B (AD)PCM data
-
- { "eeprom-esprade.bin", 0x0080, 0x315fb546, BRF_ESS | BRF_PRG },
-};
-
-
-STD_ROM_PICK(espradej)
-STD_ROM_FN(espradej)
-
-static struct BurnRomInfo espradejoRomDesc[] = {
- { "u42.bin", 0x080000, 0x0718C7E5, BRF_ESS | BRF_PRG }, // 0 CPU #0 code
- { "u41.bin", 0x080000, 0xDEF30539, BRF_ESS | BRF_PRG }, // 1
-
- { "esp_u63.u63", 0x400000, 0x2F2FE92C, BRF_GRA }, // 2 Sprite data
- { "esp_u64.u64", 0x400000, 0x491A3DA4, BRF_GRA }, // 3
- { "esp_u65.u65", 0x400000, 0x06563EFE, BRF_GRA }, // 4
- { "esp_u66.u66", 0x400000, 0x7BBE4CFC, BRF_GRA }, // 5
-
- { "esp_u54.u54", 0x400000, 0xE7CA6936, BRF_GRA }, // 6 Layer 0 Tile data
- { "esp_u55.u55", 0x400000, 0xF53BD94F, BRF_GRA }, // 7
- { "esp_u52.u52", 0x400000, 0xE7ABE7B4, BRF_GRA }, // 8 Layer 1 Tile data
- { "esp_u53.u53", 0x400000, 0x51A0F391, BRF_GRA }, // 9
- { "esp_u51.u51", 0x400000, 0x0B9B875C, BRF_GRA }, // 10 Layer 2 Tile data
-
- { "esp_u19.u19", 0x400000, 0xF54B1CAB, BRF_SND }, // 11 YMZ280B (AD)PCM data
-
- { "eeprom-esprade.bin", 0x0080, 0x315fb546, BRF_ESS | BRF_PRG },
-};
-
-
-STD_ROM_PICK(espradejo)
-STD_ROM_FN(espradejo)
-
-struct BurnDriver BurnDrvEsprade = {
- "esprade", NULL, NULL, NULL, "1998",
- "ESP Ra.De. - A.D.2018 Tokyo (International, ver. 98/04/22)\0", NULL, "Atlus / Cave", "Cave",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_16BIT_ONLY | BDF_HISCORE_SUPPORTED, 2, HARDWARE_CAVE_68K_ONLY, GBF_VERSHOOT, 0,
- NULL, espradeRomInfo, espradeRomName, NULL, NULL, espradeInputInfo, espradeDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan,
- &CaveRecalcPalette, 0x8000, 240, 320, 3, 4
-};
-
-struct BurnDriver BurnDrvEspradej = {
- "espradej", "esprade", NULL, NULL, "1998",
- "ESP Ra.De. (Japan, ver. 98/04/21)\0", NULL, "Atlus / Cave", "Cave",
- L"ESP Ra.De. \u30A8\u30B9\u30D7\u30EC\u30A4\u30C9 (Japan, ver. 98/04/21)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_16BIT_ONLY | BDF_HISCORE_SUPPORTED, 2, HARDWARE_CAVE_68K_ONLY, GBF_VERSHOOT, 0,
- NULL, espradejRomInfo, espradejRomName, NULL, NULL, espradeInputInfo, espradeDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan,
- &CaveRecalcPalette, 0x8000, 240, 320, 3, 4
-};
-
-struct BurnDriver BurnDrvEspradejo = {
- "espradejo", "esprade", NULL, NULL, "1998",
- "ESP Ra.De. (Japan, ver. 98/04/14)\0", NULL, "Atlus / Cave", "Cave",
- L"ESP Ra.De. \u30A8\u30B9\u30D7\u30EC\u30A4\u30C9 (Japan, ver. 98/04/14)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_16BIT_ONLY | BDF_HISCORE_SUPPORTED, 2, HARDWARE_CAVE_68K_ONLY, GBF_VERSHOOT, 0,
- NULL, espradejoRomInfo, espradejoRomName, NULL, NULL, espradeInputInfo, espradeDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan,
- &CaveRecalcPalette, 0x8000, 240, 320, 3, 4
-};
-
diff --git a/jan/src/burn/drv/cave/d_feversos.cpp b/jan/src/burn/drv/cave/d_feversos.cpp
deleted file mode 100644
index 248b6268b..000000000
--- a/jan/src/burn/drv/cave/d_feversos.cpp
+++ /dev/null
@@ -1,619 +0,0 @@
-// Fever SOS / Dangun Feveron
-#include "cave.h"
-#include "ymz280b.h"
-
-#define CAVE_VBLANK_LINES 12
-
-static UINT8 DrvJoy1[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
-static UINT8 DrvJoy2[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
-static UINT16 DrvInput[2] = {0x0000, 0x0000};
-
-static UINT8 *Mem = NULL, *MemEnd = NULL;
-static UINT8 *RamStart, *RamEnd;
-static UINT8 *Rom01;
-static UINT8 *Ram01, *Ram02;
-static UINT8 *DefaultEEPROM = NULL;
-
-static UINT8 DrvReset = 0;
-static UINT8 bDrawScreen;
-static bool bVBlank;
-
-static INT8 nVideoIRQ;
-static INT8 nSoundIRQ;
-static INT8 nUnknownIRQ;
-
-static INT8 nIRQPending;
-
-static INT32 nCurrentCPU;
-static INT32 nCyclesDone[2];
-static INT32 nCyclesTotal[2];
-static INT32 nCyclesSegment;
-
-static struct BurnInputInfo feversosInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy1 + 8, "p1 coin"},
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 7, "p1 start"},
-
- {"P1 Up", BIT_DIGITAL, DrvJoy1 + 0, "p1 up"},
- {"P1 Down", BIT_DIGITAL, DrvJoy1 + 1, "p1 down"},
- {"P1 Left", BIT_DIGITAL, DrvJoy1 + 2, "p1 left"},
- {"P1 Right", BIT_DIGITAL, DrvJoy1 + 3, "p1 right"},
- {"P1 Button 1", BIT_DIGITAL, DrvJoy1 + 4, "p1 fire 1"},
- {"P1 Button 2", BIT_DIGITAL, DrvJoy1 + 5, "p1 fire 2"},
- {"P1 Button 3", BIT_DIGITAL, DrvJoy1 + 6, "p1 fire 3"},
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy2 + 8, "p2 coin"},
- {"P2 Start", BIT_DIGITAL, DrvJoy2 + 7, "p2 start"},
-
- {"P2 Up", BIT_DIGITAL, DrvJoy2 + 0, "p2 up"},
- {"P2 Down", BIT_DIGITAL, DrvJoy2 + 1, "p2 down"},
- {"P2 Left", BIT_DIGITAL, DrvJoy2 + 2, "p2 left"},
- {"P2 Right", BIT_DIGITAL, DrvJoy2 + 3, "p2 right"},
- {"P2 Button 1", BIT_DIGITAL, DrvJoy2 + 4, "p2 fire 1"},
- {"P2 Button 2", BIT_DIGITAL, DrvJoy2 + 5, "p2 fire 2"},
- {"P2 Button 3", BIT_DIGITAL, DrvJoy2 + 6, "p2 fire 3"},
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset"},
- {"Diagnostics", BIT_DIGITAL, DrvJoy1 + 9, "diag"},
- {"Service", BIT_DIGITAL, DrvJoy2 + 9, "service"},
-};
-
-STDINPUTINFO(feversos)
-
-static void UpdateIRQStatus()
-{
- nIRQPending = (nVideoIRQ == 0 || nSoundIRQ == 0 || nUnknownIRQ == 0);
- SekSetIRQLine(1, nIRQPending ? CPU_IRQSTATUS_ACK : CPU_IRQSTATUS_NONE);
-}
-
-UINT8 __fastcall feversosReadByte(UINT32 sekAddress)
-{
- switch (sekAddress) {
- case 0x300003: {
- return YMZ280BReadStatus();
- }
-
- case 0x800000:
- case 0x800001:
- case 0x800002:
- case 0x800003: {
- UINT8 nRet = (nUnknownIRQ << 1) | nVideoIRQ;
- return nRet;
- }
- case 0x800004:
- case 0x800005: {
- UINT8 nRet = (nUnknownIRQ << 1) | nVideoIRQ;
- nVideoIRQ = 1;
- UpdateIRQStatus();
- return nRet;
- }
- case 0x800006:
- case 0x800007: {
- UINT8 nRet = (nUnknownIRQ << 1) | nVideoIRQ;
- nUnknownIRQ = 1;
- UpdateIRQStatus();
- return nRet;
- }
-
- case 0xB00000:
- return (DrvInput[0] >> 8) ^ 0xFF;
- case 0xB00001:
- return (DrvInput[0] & 0xFF) ^ 0xFF;
- case 0xB00002:
- return ((DrvInput[1] >> 8) ^ 0xF7) | (EEPROMRead() << 3);
- case 0xB00003:
- return (DrvInput[1] & 0xFF) ^ 0xFF;
-
- default: {
-// bprintf(PRINT_NORMAL, "Attempt to read byte value of location %x\n", sekAddress);
- }
- }
- return 0;
-}
-
-UINT16 __fastcall feversosReadWord(UINT32 sekAddress)
-{
- switch (sekAddress) {
- case 0x300002: {
- return YMZ280BReadStatus();
- }
-
- case 0x800000:
- case 0x800002: {
- UINT8 nRet = (nUnknownIRQ << 1) | nVideoIRQ;
- return nRet;
- }
- case 0x800004: {
- UINT8 nRet = (nUnknownIRQ << 1) | nVideoIRQ;
- nVideoIRQ = 1;
- UpdateIRQStatus();
- return nRet;
- }
- case 0x800006: {
- UINT8 nRet = (nUnknownIRQ << 1) | nVideoIRQ;
- nUnknownIRQ = 1;
- UpdateIRQStatus();
- return nRet;
- }
-
- case 0xB00000:
- return DrvInput[0] ^ 0xFFFF;
- case 0xB00002:
- return (DrvInput[1] ^ 0xF7FF) | (EEPROMRead() << 11);
-
- default: {
-// bprintf(PRINT_NORMAL, "Attempt to read word value of location %x\n", sekAddress);
- }
- }
- return 0;
-}
-
-void __fastcall feversosWriteByte(UINT32 sekAddress, UINT8 byteValue)
-{
- switch (sekAddress) {
- case 0x300001:
- YMZ280BSelectRegister(byteValue);
- break;
- case 0x300003:
- YMZ280BWriteRegister(byteValue);
- break;
-
- case 0xC00000:
- EEPROMWrite(byteValue & 0x04, byteValue & 0x02, byteValue & 0x08);
- break;
-
- default: {
-// bprintf(PRINT_NORMAL, "Attempt to write byte value %x to location %x\n", byteValue, sekAddress);
- }
- }
-}
-
-void __fastcall feversosWriteWord(UINT32 sekAddress, UINT16 wordValue)
-{
- switch (sekAddress) {
- case 0x300000:
- YMZ280BSelectRegister(wordValue);
- break;
- case 0x300002:
- YMZ280BWriteRegister(wordValue);
- break;
-
- case 0x800000:
- nCaveXOffset = wordValue;
- return;
- case 0x800002:
- nCaveYOffset = wordValue;
- return;
- case 0x800008:
- CaveSpriteBuffer();
- nCaveSpriteBank = wordValue;
- return;
-
- case 0x900000:
- CaveTileReg[0][0] = wordValue;
- break;
- case 0x900002:
- CaveTileReg[0][1] = wordValue;
- break;
- case 0x900004:
- CaveTileReg[0][2] = wordValue;
- break;
-
- case 0xA00000:
- CaveTileReg[1][0] = wordValue;
- break;
- case 0xA00002:
- CaveTileReg[1][1] = wordValue;
- break;
- case 0xA00004:
- CaveTileReg[1][2] = wordValue;
- break;
-
- case 0xC00000:
- wordValue >>= 8;
- EEPROMWrite(wordValue & 0x04, wordValue & 0x02, wordValue & 0x08);
- break;
-
- default: {
-// bprintf(PRINT_NORMAL, "Attempt to write word value %x to location %x\n", wordValue, sekAddress);
-
- }
- }
-}
-
-static void TriggerSoundIRQ(INT32 nStatus)
-{
- nSoundIRQ = nStatus ^ 1;
- UpdateIRQStatus();
-
- if (nIRQPending && nCurrentCPU != 0) {
- nCyclesDone[0] += SekRun(0x0400);
- }
-}
-
-static INT32 DrvExit()
-{
- EEPROMExit();
-
- YMZ280BExit();
-
- CaveTileExit();
- CaveSpriteExit();
- CavePalExit();
-
- SekExit(); // Deallocate 68000s
-
- BurnFree(Mem);
-
- return 0;
-}
-
-static INT32 DrvDoReset()
-{
- SekOpen(0);
- SekReset();
- SekClose();
-
- EEPROMReset();
-
- YMZ280BReset();
-
- nVideoIRQ = 1;
- nSoundIRQ = 1;
- nUnknownIRQ = 1;
-
- nIRQPending = 0;
-
- HiscoreReset();
-
- return 0;
-}
-
-static INT32 DrvDraw()
-{
- CavePalUpdate4Bit(0, 128); // Update the palette
- CaveClearScreen(CavePalette[0x3F00]);
-
- if (bDrawScreen) {
-// CaveGetBitmap();
-
- CaveTileRender(1); // Render tiles
- }
-
- return 0;
-}
-
-inline static INT32 CheckSleep(INT32)
-{
- return 0;
-}
-
-static INT32 DrvFrame()
-{
- INT32 nCyclesVBlank;
- INT32 nInterleave = 8;
-
- if (DrvReset) { // Reset machine
- DrvDoReset();
- }
-
- // Compile digital inputs
- DrvInput[0] = 0x0000; // Player 1
- DrvInput[1] = 0x0000; // Player 2
- for (INT32 i = 0; i < 10; i++) {
- DrvInput[0] |= (DrvJoy1[i] & 1) << i;
- DrvInput[1] |= (DrvJoy2[i] & 1) << i;
- }
- CaveClearOpposites(&DrvInput[0]);
- CaveClearOpposites(&DrvInput[1]);
-
- SekNewFrame();
-
- nCyclesTotal[0] = (INT32)((INT64)16000000 * nBurnCPUSpeedAdjust / (0x0100 * CAVE_REFRESHRATE));
- nCyclesDone[0] = 0;
-
- nCyclesVBlank = nCyclesTotal[0] - (INT32)((nCyclesTotal[0] * CAVE_VBLANK_LINES) / 271.5);
- bVBlank = false;
-
- INT32 nSoundBufferPos = 0;
-
- SekOpen(0);
-
- for (INT32 i = 1; i <= nInterleave; i++) {
- INT32 nNext;
-
- // Render sound segment
- if ((i & 1) == 0) {
- if (pBurnSoundOut) {
- INT32 nSegmentEnd = nBurnSoundLen * i / nInterleave;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- YMZ280BRender(pSoundBuf, nSegmentEnd - nSoundBufferPos);
- nSoundBufferPos = nSegmentEnd;
- }
- }
-
- // Run 68000
- nCurrentCPU = 0;
- nNext = i * nCyclesTotal[nCurrentCPU] / nInterleave;
-
- // See if we need to trigger the VBlank interrupt
- if (!bVBlank && nNext > nCyclesVBlank) {
- if (nCyclesDone[nCurrentCPU] < nCyclesVBlank) {
- nCyclesSegment = nCyclesVBlank - nCyclesDone[nCurrentCPU];
- if (!CheckSleep(nCurrentCPU)) { // See if this CPU is busywaiting
- nCyclesDone[nCurrentCPU] += SekRun(nCyclesSegment);
- } else {
- nCyclesDone[nCurrentCPU] += SekIdle(nCyclesSegment);
- }
- }
-
- if (pBurnDraw != NULL) {
- DrvDraw(); // Draw screen if needed
- }
-
- bVBlank = true;
- nVideoIRQ = 0;
- UpdateIRQStatus();
- }
-
- nCyclesSegment = nNext - nCyclesDone[nCurrentCPU];
- if (!CheckSleep(nCurrentCPU)) { // See if this CPU is busywaiting
- nCyclesDone[nCurrentCPU] += SekRun(nCyclesSegment);
- } else {
- nCyclesDone[nCurrentCPU] += SekIdle(nCyclesSegment);
- }
-
- nCurrentCPU = -1;
- }
-
- {
- // Make sure the buffer is entirely filled.
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- if (nSegmentLength) {
- YMZ280BRender(pSoundBuf, nSegmentLength);
- }
- }
- }
-
- SekClose();
-
- return 0;
-}
-
-// This routine is called first to determine how much memory is needed (MemEnd-(UINT8 *)0),
-// and then afterwards to set up all the pointers
-static INT32 MemIndex()
-{
- UINT8* Next; Next = Mem;
- Rom01 = Next; Next += 0x100000; // 68K program
- CaveSpriteROM = Next; Next += 0x1000000;
- CaveTileROM[0] = Next; Next += 0x400000; // Tile layer 0
- CaveTileROM[1] = Next; Next += 0x400000; // Tile layer 1
- YMZ280BROM = Next; Next += 0x400000;
- DefaultEEPROM = Next; Next += 0x000080;
- RamStart = Next;
- Ram01 = Next; Next += 0x010000; // CPU #0 work RAM
- Ram02 = Next; Next += 0x001000;
- CaveTileRAM[0] = Next; Next += 0x008000;
- CaveTileRAM[1] = Next; Next += 0x008000;
- CaveSpriteRAM = Next; Next += 0x010000;
- CavePalSrc = Next; Next += 0x001000; // palette
-// CaveVideoRegisters= Next; Next += 0x000080;
- RamEnd = Next;
- MemEnd = Next;
-
- return 0;
-}
-
-static void NibbleSwap1(UINT8* pData, INT32 nLen)
-{
- UINT8* pOrg = pData + nLen - 1;
- UINT8* pDest = pData + ((nLen - 1) << 1);
-
- for (INT32 i = 0; i < nLen; i++, pOrg--, pDest -= 2) {
- pDest[0] = *pOrg & 15;
- pDest[1] = *pOrg >> 4;
- }
-
- return;
-}
-
-static void NibbleSwap2(UINT8* pData, INT32 nLen)
-{
- UINT8* pOrg = pData + nLen - 1;
- UINT8* pDest = pData + ((nLen - 1) << 1);
-
- for (INT32 i = 0; i < nLen; i++, pOrg--, pDest -= 2) {
- pDest[1] = *pOrg & 15;
- pDest[0] = *pOrg >> 4;
- }
-
- return;
-}
-
-static INT32 LoadRoms()
-{
- // Load 68000 ROM
- BurnLoadRom(Rom01 + 0, 1, 2);
- BurnLoadRom(Rom01 + 1, 0, 2);
-
- BurnLoadRom(CaveSpriteROM + 0x000000, 2, 1);
- BurnLoadRom(CaveSpriteROM + 0x400000, 3, 1);
- NibbleSwap1(CaveSpriteROM, 0x800000);
-
- BurnLoadRom(CaveTileROM[0], 4, 1);
- NibbleSwap2(CaveTileROM[0], 0x200000);
- BurnLoadRom(CaveTileROM[1], 5, 1);
- NibbleSwap2(CaveTileROM[1], 0x200000);
-
- BurnLoadRom(YMZ280BROM, 6, 1);
-
- BurnLoadRom(DefaultEEPROM, 7, 1);
-
- return 0;
-}
-
-// Scan ram
-static INT32 DrvScan(INT32 nAction, INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin) { // Return minimum compatible version
- *pnMin = 0x020902;
- }
-
- EEPROMScan(nAction, pnMin); // Scan EEPROM
-
- if (nAction & ACB_VOLATILE) { // Scan volatile ram
-
- memset(&ba, 0, sizeof(ba));
- ba.Data = RamStart;
- ba.nLen = RamEnd - RamStart;
- ba.szName = "RAM";
- BurnAcb(&ba);
-
- SekScan(nAction); // scan 68000 states
-
- YMZ280BScan();
-
- SCAN_VAR(nVideoIRQ);
- SCAN_VAR(nSoundIRQ);
- SCAN_VAR(nUnknownIRQ);
- SCAN_VAR(bVBlank);
-
- CaveScanGraphics();
-
- SCAN_VAR(DrvInput);
- }
-
- if (nAction & ACB_WRITE) {
- CaveRecalcPalette = 1;
- }
-
- return 0;
-}
-
-static INT32 DrvInit()
-{
- INT32 nLen;
-
- BurnSetRefreshRate(CAVE_REFRESHRATE);
-
- // Find out how much memory is needed
- Mem = NULL;
- MemIndex();
- nLen = MemEnd - (UINT8 *)0;
- if ((Mem = (UINT8 *)BurnMalloc(nLen)) == NULL) {
- return 1;
- }
- memset(Mem, 0, nLen); // blank all memory
- MemIndex(); // Index the allocated memory
-
- // Load the roms into memory
- if (LoadRoms()) {
- return 1;
- }
-
- EEPROMInit(&eeprom_interface_93C46);
- if (!EEPROMAvailable()) EEPROMFill(DefaultEEPROM,0, 0x80);
-
- {
- SekInit(0, 0x68000); // Allocate 68000
- SekOpen(0);
-
- // Map 68000 memory:
- SekMapMemory(Rom01, 0x000000, 0x0FFFFF, MAP_ROM); // CPU 0 ROM
- SekMapMemory(Ram01, 0x100000, 0x10FFFF, MAP_RAM);
- SekMapMemory(CaveSpriteRAM, 0x400000, 0x40FFFF, MAP_RAM);
- SekMapMemory(CaveTileRAM[0], 0x500000, 0x507FFF, MAP_RAM);
- SekMapMemory(CaveTileRAM[1], 0x600000, 0x607FFF, MAP_RAM);
- SekMapMemory(CavePalSrc, 0x708000, 0x708FFF, MAP_RAM); // Palette RAM
- SekMapMemory(Ram02, 0x710000, 0x710BFF, MAP_ROM);
- SekMapMemory(Ram02, 0x710C00, 0x710FFF, MAP_RAM);
-
- SekSetReadWordHandler(0, feversosReadWord);
- SekSetReadByteHandler(0, feversosReadByte);
- SekSetWriteWordHandler(0, feversosWriteWord);
- SekSetWriteByteHandler(0, feversosWriteByte);
-
- SekClose();
- }
-
- nCaveRowModeOffset = 1;
-
- CavePalInit(0x8000);
- CaveTileInit();
- CaveSpriteInit(1, 0x1000000);
- CaveTileInitLayer(0, 0x400000, 8, 0x4000);
- CaveTileInitLayer(1, 0x400000, 8, 0x4000);
-
- YMZ280BInit(16934400, &TriggerSoundIRQ, 0x400000);
- YMZ280BSetRoute(BURN_SND_YMZ280B_YMZ280B_ROUTE_1, 1.00, BURN_SND_ROUTE_LEFT);
- YMZ280BSetRoute(BURN_SND_YMZ280B_YMZ280B_ROUTE_2, 1.00, BURN_SND_ROUTE_RIGHT);
-
- bDrawScreen = true;
-
- DrvDoReset(); // Reset machine
-
- return 0;
-}
-
-// Rom information
-static struct BurnRomInfo feversosRomDesc[] = {
- { "cv01-u34.sos", 0x080000, 0x24EF3CE6, BRF_ESS | BRF_PRG }, // 0 CPU #0 code
- { "cv01-u33.sos", 0x080000, 0x64FF73FD, BRF_ESS | BRF_PRG }, // 1
-
- { "cv01-u25.bin", 0x400000, 0xA6F6A95D, BRF_GRA }, // 2 Sprite data
- { "cv01-u26.bin", 0x400000, 0x32EDB62A, BRF_GRA }, // 3
-
- { "cv01-u50.bin", 0x200000, 0x7A344417, BRF_GRA }, // 4 Layer 0 Tile data
- { "cv01-u49.bin", 0x200000, 0xD21CDDA7, BRF_GRA }, // 5 Layer 1 Tile data
-
- { "cv01-u19.bin", 0x400000, 0x5F5514DA, BRF_SND }, // 6 YMZ280B (AD)PCM data
-
- { "eeprom-feversos.bin", 0x0080, 0xd80303aa, BRF_ESS | BRF_PRG },
-};
-
-
-STD_ROM_PICK(feversos)
-STD_ROM_FN(feversos)
-
-static struct BurnRomInfo dfeveronRomDesc[] = {
- { "cv01-u34.bin", 0x080000, 0xBE87F19D, BRF_ESS | BRF_PRG }, // 0 CPU #0 code
- { "cv01-u33.bin", 0x080000, 0xE53A7DB3, BRF_ESS | BRF_PRG }, // 1
-
- { "cv01-u25.bin", 0x400000, 0xA6F6A95D, BRF_GRA }, // 2 Sprite data
- { "cv01-u26.bin", 0x400000, 0x32EDB62A, BRF_GRA }, // 3
-
- { "cv01-u50.bin", 0x200000, 0x7A344417, BRF_GRA }, // 4 Layer 0 Tile data
- { "cv01-u49.bin", 0x200000, 0xD21CDDA7, BRF_GRA }, // 5 Layer 1 Tile data
-
- { "cv01-u19.bin", 0x400000, 0x5F5514DA, BRF_SND }, // 6 YMZ280B (AD)PCM data
-
- { "eeprom-dfeveron.bin", 0x0080, 0xc3174959, BRF_ESS | BRF_PRG },
-};
-
-
-STD_ROM_PICK(dfeveron)
-STD_ROM_FN(dfeveron)
-
-struct BurnDriver BurnDrvFeverSOS = {
- "feversos", NULL, NULL, NULL, "1998",
- "Fever SOS (International, ver. 98/09/25)\0", NULL, "Cave / Nihon System inc.", "Cave",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_16BIT_ONLY | BDF_HISCORE_SUPPORTED, 2, HARDWARE_CAVE_68K_ONLY, GBF_VERSHOOT, 0,
- NULL, feversosRomInfo, feversosRomName, NULL, NULL, feversosInputInfo, NULL,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan,
- &CaveRecalcPalette, 0x8000, 240, 320, 3, 4
-};
-
-struct BurnDriver BurnDrvDFeveron = {
- "dfeveron", "feversos", NULL, NULL, "1998",
- "Dangun Feveron (Japan, ver. 98/09/17)\0", NULL, "Cave / Nihon System inc.", "Cave",
- L"\u5F3E\u9283 Feveron \u3060\u3093\u304C\u3093\u30D5\u30A3\u30FC\u30D0\u30ED\u30F3 (Japan, ver. 98/09/17)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_16BIT_ONLY | BDF_HISCORE_SUPPORTED, 2, HARDWARE_CAVE_68K_ONLY, GBF_VERSHOOT, 0,
- NULL, dfeveronRomInfo, dfeveronRomName, NULL, NULL, feversosInputInfo, NULL,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan,
- &CaveRecalcPalette, 0x8000, 240, 320, 3, 4
-};
diff --git a/jan/src/burn/drv/cave/d_gaia.cpp b/jan/src/burn/drv/cave/d_gaia.cpp
deleted file mode 100644
index d41be19a0..000000000
--- a/jan/src/burn/drv/cave/d_gaia.cpp
+++ /dev/null
@@ -1,885 +0,0 @@
-// Gaia Crusaders
-#include "cave.h"
-#include "ymz280b.h"
-
-#define CAVE_VBLANK_LINES 12
-
-static UINT8 DrvJoy1[16] = {0, };
-static UINT8 DrvJoy2[16] = {0, };
-static UINT16 DrvInput[3] = {0, };
-
-static UINT8 *Mem = NULL, *MemEnd = NULL;
-static UINT8 *RamStart, *RamEnd;
-static UINT8 *Rom01;
-static UINT8 *Ram01;
-
-static UINT8 DrvReset = 0;
-static UINT8 bDrawScreen;
-static INT8 nVBlank;
-
-static INT8 nVideoIRQ;
-static INT8 nSoundIRQ;
-static INT8 nUnknownIRQ;
-
-static INT8 nIRQPending;
-
-static INT32 nCurrentCPU;
-static INT32 nCyclesDone[2];
-static INT32 nCyclesTotal[2];
-static INT32 nCyclesSegment;
-
-static struct BurnInputInfo gaiaInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy2 + 0, "p1 coin"},
- {"P1 Start", BIT_DIGITAL, DrvJoy2 + 4, "p1 start"},
-
- {"P1 Up", BIT_DIGITAL, DrvJoy1 + 0, "p1 up"},
- {"P1 Down", BIT_DIGITAL, DrvJoy1 + 1, "p1 down"},
- {"P1 Left", BIT_DIGITAL, DrvJoy1 + 2, "p1 left"},
- {"P1 Right", BIT_DIGITAL, DrvJoy1 + 3, "p1 right"},
- {"P1 Button 1", BIT_DIGITAL, DrvJoy1 + 4, "p1 fire 1"},
- {"P1 Button 2", BIT_DIGITAL, DrvJoy1 + 5, "p1 fire 2"},
- {"P1 Button 3", BIT_DIGITAL, DrvJoy1 + 6, "p1 fire 3"},
- {"P1 Button 4", BIT_DIGITAL, DrvJoy1 + 7, "p1 fire 4"},
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy2 + 1, "p2 coin"},
- {"P2 Start", BIT_DIGITAL, DrvJoy2 + 5, "p2 start"},
-
- {"P2 Up", BIT_DIGITAL, DrvJoy1 + 8, "p2 up"},
- {"P2 Down", BIT_DIGITAL, DrvJoy1 + 9, "p2 down"},
- {"P2 Left", BIT_DIGITAL, DrvJoy1 + 10, "p2 left"},
- {"P2 Right", BIT_DIGITAL, DrvJoy1 + 11, "p2 right"},
- {"P2 Button 1", BIT_DIGITAL, DrvJoy1 + 12, "p2 fire 1"},
- {"P2 Button 2", BIT_DIGITAL, DrvJoy1 + 13, "p2 fire 2"},
- {"P2 Button 3", BIT_DIGITAL, DrvJoy1 + 14, "p2 fire 3"},
- {"P2 Button 4", BIT_DIGITAL, DrvJoy1 + 15, "p2 fire 4"},
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset"},
- {"Diagnostics", BIT_DIGITAL, DrvJoy2 + 2, "diag"},
- {"Service", BIT_DIGITAL, DrvJoy2 + 3, "service"},
-
- {"DIP A", BIT_DIPSWITCH, (UINT8*)(DrvInput + 2) + 0, "dip"},
- {"DIP B", BIT_DIPSWITCH, (UINT8*)(DrvInput + 2) + 1, "dip"},
-};
-
-STDINPUTINFO(gaia)
-
-static struct BurnDIPInfo gaiaDIPList[] = {
- // Defaults
- {0x17, 0xFF, 0xFF, 0x04, NULL},
- {0x18, 0xFF, 0xFF, 0x00, NULL},
-
- // DIP 1
- {0, 0xFE, 0, 2, "V reverse"},
- {0x17, 0x01, 0x01, 0x00, "Off"},
- {0x17, 0x01, 0x01, 0x01, "On"},
- {0, 0xFE, 0, 2, "Demo sound"},
- {0x17, 0x01, 0x02, 0x02, "Off"},
- {0x17, 0x01, 0x02, 0x00, "On"},
- {0, 0xFE, 0, 2, "Language"},
- {0x17, 0x01, 0x04, 0x00, "Japanese"},
- {0x17, 0x01, 0x04, 0x04, "English"},
- {0, 0xFE, 0, 9, "Coin"},
- {0x17, 0x01, 0x78, 0x00, "1 coin 1 credit"},
- {0x17, 0x01, 0x78, 0x08, "1 coin 2 credits"},
- {0x17, 0x01, 0x78, 0x10, "1 coin 3 credits"},
- {0x17, 0x01, 0x78, 0x18, "2 coins 1 credit"},
- {0x17, 0x01, 0x78, 0x20, "2 coins 3 credits"},
- {0x17, 0x01, 0x78, 0x28, "3 coins 1 credit"},
- {0x17, 0x01, 0x78, 0x30, "4 coins 1 credit"},
- {0x17, 0x01, 0x78, 0x38, "2 coins 1 credit 1 continue"},
- {0x17, 0x01, 0x78, 0x40, "Free play"},
- {0x17, 0x01, 0x78, 0x48, "Free play"},
- {0x17, 0x01, 0x78, 0x50, "Free play"},
- {0x17, 0x01, 0x78, 0x58, "Free play"},
- {0x17, 0x01, 0x78, 0x60, "Free play"},
- {0x17, 0x01, 0x78, 0x68, "Free play"},
- {0x17, 0x01, 0x78, 0x70, "Free play"},
- {0x17, 0x01, 0x78, 0x78, "Free play"},
- {0, 0xFE, 0, 2, "Continue"},
- {0x17, 0x01, 0x80, 0x80, "Off"},
- {0x17, 0x01, 0x80, 0x00, "On"},
-
- // DIP 2
- {0, 0xFE, 0, 8, "Level"},
- {0x18, 0x01, 0xE0, 0x20, "Very easy"},
- {0x18, 0x01, 0xE0, 0x40, "Easy"},
- {0x18, 0x01, 0xE0, 0x00, "Medium"},
- {0x18, 0x01, 0xE0, 0x80, "Medium hard"},
- {0x18, 0x01, 0xE0, 0x60, "Hard 1"},
- {0x18, 0x01, 0xE0, 0xC0, "Hard 2"},
- {0x18, 0x01, 0xE0, 0xA0, "Very hard"},
- {0x18, 0x01, 0xE0, 0xE0, "Hardest"},
-
- // Extend condition
- {0, 0xFE, 0, 2, "Extend"},
- {0x18, 0x02, 0x04, 0x04, "Nothing"},
- {0x18, 0x00, 0xE0, 0x00, NULL},
- {0x18, 0x02, 0x04, 0x00, "150,000/350,000"},
- {0x18, 0x00, 0xE0, 0x00, NULL},
- {0, 0xFE, 0, 2, "Extend"},
- {0x18, 0x02, 0x04, 0x04, "Nothing"},
- {0x18, 0x00, 0xE0, 0x20, NULL},
- {0x18, 0x02, 0x04, 0x00, "150,000/300,000"},
- {0x18, 0x00, 0xE0, 0x20, NULL},
- {0, 0xFE, 0, 2, "Extend"},
- {0x18, 0x02, 0x04, 0x04, "Nothing"},
- {0x18, 0x00, 0xE0, 0x40, NULL},
- {0x18, 0x02, 0x04, 0x00, "150,000/350,000"},
- {0x18, 0x00, 0xE0, 0x40, NULL},
- {0, 0xFE, 0, 2, "Extend"},
- {0x18, 0x02, 0x04, 0x04, "Nothing"},
- {0x18, 0x00, 0xE0, 0x60, NULL},
- {0x18, 0x02, 0x04, 0x00, "150,000/400,000"},
- {0x18, 0x00, 0xE0, 0x60, NULL},
- {0, 0xFE, 0, 2, "Extend"},
- {0x18, 0x02, 0x04, 0x04, "Nothing"},
- {0x18, 0x00, 0xE0, 0x80, NULL},
- {0x18, 0x02, 0x04, 0x00, "150,000/400,000"},
- {0x18, 0x00, 0xE0, 0x80, NULL},
- {0, 0xFE, 0, 2, "Extend"},
- {0x18, 0x02, 0x04, 0x04, "Nothing"},
- {0x18, 0x00, 0xE0, 0xA0, NULL},
- {0x18, 0x02, 0x04, 0x00, "200,000/500,000"},
- {0x18, 0x00, 0xE0, 0xA0, NULL},
- {0, 0xFE, 0, 2, "Extend"},
- {0x18, 0x02, 0x04, 0x04, "Nothing"},
- {0x18, 0x00, 0xE0, 0xC0, NULL},
- {0x18, 0x02, 0x04, 0x00, "150,000/400,000"},
- {0x18, 0x00, 0xE0, 0xC0, NULL},
- {0, 0xFE, 0, 2, "Extend"},
- {0x18, 0x02, 0x04, 0x04, "Nothing"},
- {0x18, 0x00, 0xE0, 0xE0, NULL},
- {0x18, 0x02, 0x04, 0x00, "200,000/500,000"},
- {0x18, 0x00, 0xE0, 0xE0, NULL},
-
- {0, 0xFE, 0, 4, "Life"},
- {0x18, 0x01, 0x03, 0x02, "1 player"},
- {0x18, 0x01, 0x03, 0x03, "2 players"},
- {0x18, 0x01, 0x03, 0x00, "3 players"},
- {0x18, 0x01, 0x03, 0x01, "4 players"},
- {0, 0xFE, 0, 4, "Damage"},
- {0x18, 0x01, 0x18, 0x00, "+0"},
- {0x18, 0x01, 0x18, 0x08, "+1"},
- {0x18, 0x01, 0x18, 0x10, "+2"},
- {0x18, 0x01, 0x18, 0x18, "+3"},
-};
-
-STDDIPINFO(gaia)
-
-static struct BurnDIPInfo theroesDIPList[] = {
- // Defaults
- {0x17, 0xFF, 0xFF, 0x04, NULL},
- {0x18, 0xFF, 0xFF, 0x00, NULL},
-
- // DIP 1
- {0, 0xFE, 0, 2, "V reverse"},
- {0x17, 0x01, 0x01, 0x00, "Off"},
- {0x17, 0x01, 0x01, 0x01, "On"},
- {0, 0xFE, 0, 2, "Demo sound"},
- {0x17, 0x01, 0x02, 0x02, "Off"},
- {0x17, 0x01, 0x02, 0x00, "On"},
- {0, 0xFE, 0, 2, "Language"},
- {0x17, 0x01, 0x04, 0x00, "Chinese"},
- {0x17, 0x01, 0x04, 0x04, "English"},
- {0, 0xFE, 0, 9, "Coin"},
- {0x17, 0x01, 0x78, 0x00, "1 coin 1 credit"},
- {0x17, 0x01, 0x78, 0x08, "1 coin 2 credits"},
- {0x17, 0x01, 0x78, 0x10, "1 coin 3 credits"},
- {0x17, 0x01, 0x78, 0x18, "2 coins 1 credit"},
- {0x17, 0x01, 0x78, 0x20, "2 coins 3 credits"},
- {0x17, 0x01, 0x78, 0x28, "3 coins 1 credit"},
- {0x17, 0x01, 0x78, 0x30, "4 coins 1 credit"},
- {0x17, 0x01, 0x78, 0x38, "2 coins 1 credit 1 continue"},
- {0x17, 0x01, 0x78, 0x40, "Free play"},
- {0x17, 0x01, 0x78, 0x48, "Free play"},
- {0x17, 0x01, 0x78, 0x50, "Free play"},
- {0x17, 0x01, 0x78, 0x58, "Free play"},
- {0x17, 0x01, 0x78, 0x60, "Free play"},
- {0x17, 0x01, 0x78, 0x68, "Free play"},
- {0x17, 0x01, 0x78, 0x70, "Free play"},
- {0x17, 0x01, 0x78, 0x78, "Free play"},
- {0, 0xFE, 0, 2, "Continue"},
- {0x17, 0x01, 0x80, 0x80, "Off"},
- {0x17, 0x01, 0x80, 0x00, "On"},
-
- // DIP 2
- {0, 0xFE, 0, 4, "Level"},
- {0x18, 0x01, 0xC0, 0x40, "Very easy"},
- {0x18, 0x01, 0xC0, 0x00, "Medium"},
- {0x18, 0x01, 0xC0, 0x80, "Medium hard"},
- {0x18, 0x01, 0xC0, 0xC0, "Hardest"},
-
- // Extend condition
- {0, 0xFE, 0, 2, "Extend"},
- {0x18, 0x02, 0x04, 0x04, "Nothing"},
- {0x18, 0x00, 0xC0, 0x00, NULL},
- {0x18, 0x02, 0x04, 0x00, "150,000/350,000"},
- {0x18, 0x00, 0xC0, 0x00, NULL},
- {0, 0xFE, 0, 2, "Extend"},
- {0x18, 0x02, 0x04, 0x04, "Nothing"},
- {0x18, 0x00, 0xC0, 0x40, NULL},
- {0x18, 0x02, 0x04, 0x00, "150,000/300,000"},
- {0x18, 0x00, 0xC0, 0x40, NULL},
- {0, 0xFE, 0, 2, "Extend"},
- {0x18, 0x02, 0x04, 0x04, "Nothing"},
- {0x18, 0x00, 0xC0, 0x80, NULL},
- {0x18, 0x02, 0x04, 0x00, "150,000/400,000"},
- {0x18, 0x00, 0xC0, 0x80, NULL},
- {0, 0xFE, 0, 2, "Extend"},
- {0x18, 0x02, 0x04, 0x04, "Nothing"},
- {0x18, 0x00, 0xC0, 0xC0, NULL},
- {0x18, 0x02, 0x04, 0x00, "200,000/500,000"},
- {0x18, 0x00, 0xC0, 0xC0, NULL},
-
- {0, 0xFE, 0, 4, "Life"},
- {0x18, 0x01, 0x03, 0x02, "1 player"},
- {0x18, 0x01, 0x03, 0x03, "2 players"},
- {0x18, 0x01, 0x03, 0x00, "3 players"},
- {0x18, 0x01, 0x03, 0x01, "4 players"},
- {0, 0xFE, 0, 4, "Damage"},
- {0x18, 0x01, 0x18, 0x00, "+0"},
- {0x18, 0x01, 0x18, 0x08, "+1"},
- {0x18, 0x01, 0x18, 0x10, "+2"},
- {0x18, 0x01, 0x18, 0x18, "+3"},
-};
-
-STDDIPINFO(theroes)
-
-static void UpdateIRQStatus()
-{
- nIRQPending = (nVideoIRQ == 0 || nSoundIRQ == 0 || nUnknownIRQ == 0);
- SekSetIRQLine(1, nIRQPending ? CPU_IRQSTATUS_ACK : CPU_IRQSTATUS_NONE);
-}
-
-UINT8 __fastcall gaiaReadByte(UINT32 sekAddress)
-{
- switch (sekAddress) {
- case 0x300003: {
- return YMZ280BReadStatus();
- }
-
-#if 0
- case 0x800000:
- case 0x800001: {
- UINT16 nRet = ((nVBlank ^ 1) << 2) | (nUnknownIRQ << 1) | nVideoIRQ;
- return nRet;
- }
-#else
- case 0x800000:
- case 0x800001:
-#endif
- case 0x800002:
- case 0x800003: {
- UINT16 nRet = (nUnknownIRQ << 1) | nVideoIRQ;
- return nRet;
- }
- case 0x800004:
- case 0x800005: {
- UINT16 nRet = (nUnknownIRQ << 1) | nVideoIRQ;
- nVideoIRQ = 1;
- UpdateIRQStatus();
- return nRet;
- }
- case 0x800006:
- case 0x800007: {
- UINT16 nRet = (nUnknownIRQ << 1) | nVideoIRQ;
- nUnknownIRQ = 1;
- UpdateIRQStatus();
- return nRet;
- }
-
- case 0xD00010:
- return (DrvInput[0] >> 8) ^ 0xFF;
- case 0xD00011:
- return (DrvInput[0] & 0xFF) ^ 0xFF;
- case 0xD00012:
- return (DrvInput[1] >> 8) ^ 0xFF;
- case 0xD00013:
- return (DrvInput[1] & 0xFF) ^ 0xFF;
- case 0xD00014:
- return (DrvInput[2] >> 8) ^ 0xFF;
- case 0xD00015:
- return (DrvInput[2] & 0xFF) ^ 0xFF;
-
- default: {
-// bprintf(PRINT_NORMAL, "Attempt to read byte value of location %x\n", sekAddress);
- }
- }
- return 0;
-}
-
-UINT16 __fastcall gaiaReadWord(UINT32 sekAddress)
-{
- switch (sekAddress) {
- case 0x300002: {
- return YMZ280BReadStatus();
- }
-
-#if 0
- case 0x800000: {
- UINT16 nRet = ((nVBlank ^ 1) << 2) | (nUnknownIRQ << 1) | nVideoIRQ;
- return nRet;
- }
-#else
- case 0x800000:
-#endif
- case 0x800002: {
- UINT16 nRet = (nUnknownIRQ << 1) | nVideoIRQ;
- return nRet;
- }
- case 0x800004: {
- UINT16 nRet = (nUnknownIRQ << 1) | nVideoIRQ;
- nVideoIRQ = 1;
- UpdateIRQStatus();
- return nRet;
- }
- case 0x800006: {
- UINT16 nRet = (nUnknownIRQ << 1) | nVideoIRQ;
- nUnknownIRQ = 1;
- UpdateIRQStatus();
- return nRet;
- }
-
- case 0xD00010:
- return DrvInput[0] ^ 0xFFFF;
- case 0xD00012:
- return DrvInput[1] ^ 0xFFFF;
- case 0xD00014:
- return DrvInput[2] ^ 0xFFFF;
-
- default: {
-// bprintf(PRINT_NORMAL, "Attempt to read word value of location %x\n", sekAddress);
- }
- }
- return 0;
-}
-
-void __fastcall gaiaWriteByte(UINT32 sekAddress, UINT8 byteValue)
-{
- switch (sekAddress) {
- case 0x300001:
- YMZ280BSelectRegister(byteValue);
- break;
- case 0x300003:
- YMZ280BWriteRegister(byteValue);
- break;
-
- default: {
-// bprintf(PRINT_NORMAL, "Attempt to write byte value %x to location %x\n", byteValue, sekAddress);
- }
- }
-}
-
-void __fastcall gaiaWriteWord(UINT32 sekAddress, UINT16 wordValue)
-{
- switch (sekAddress) {
- case 0x300000:
- YMZ280BSelectRegister(wordValue);
- break;
- case 0x300002:
- YMZ280BWriteRegister(wordValue);
- break;
-
- case 0x800000:
- nCaveXOffset = wordValue;
- return;
- case 0x800002:
- nCaveYOffset = wordValue;
- return;
- case 0x800008:
- CaveSpriteBuffer();
- nCaveSpriteBank = wordValue;
- return;
-
- case 0x900000:
- CaveTileReg[0][0] = wordValue;
- break;
- case 0x900002:
- CaveTileReg[0][1] = wordValue;
- break;
- case 0x900004:
- CaveTileReg[0][2] = wordValue;
- break;
-
- case 0xA00000:
- CaveTileReg[1][0] = wordValue;
- break;
- case 0xA00002:
- CaveTileReg[1][1] = wordValue;
- break;
- case 0xA00004:
- CaveTileReg[1][2] = wordValue;
- break;
-
- case 0xB00000:
- CaveTileReg[2][0] = wordValue;
- break;
- case 0xB00002:
- CaveTileReg[2][1] = wordValue;
- break;
- case 0xB00004:
- CaveTileReg[2][2] = wordValue;
- break;
-
- default: {
-// bprintf(PRINT_NORMAL, "Attempt to write word value %x to location %x\n", wordValue, sekAddress);
-
- }
- }
-}
-
-void __fastcall gaiaWriteBytePalette(UINT32 sekAddress, UINT8 byteValue)
-{
- CavePalWriteByte(sekAddress & 0xFFFF, byteValue);
-}
-
-void __fastcall gaiaWriteWordPalette(UINT32 sekAddress, UINT16 wordValue)
-{
- CavePalWriteWord(sekAddress & 0xFFFF, wordValue);
-}
-
-static void TriggerSoundIRQ(INT32 nStatus)
-{
- nSoundIRQ = nStatus ^ 1;
- UpdateIRQStatus();
-
- if (nIRQPending && nCurrentCPU != 0) {
- nCyclesDone[0] += SekRun(0x0400);
- }
-}
-
-static INT32 DrvExit()
-{
- YMZ280BExit();
-
- CaveTileExit();
- CaveSpriteExit();
- CavePalExit();
-
- SekExit(); // Deallocate 68000s
-
- BurnFree(Mem);
-
- return 0;
-}
-
-static INT32 DrvDoReset()
-{
- SekOpen(0);
- SekReset();
- SekClose();
-
- nVideoIRQ = 1;
- nSoundIRQ = 1;
- nUnknownIRQ = 1;
-
- nIRQPending = 0;
-
- YMZ280BReset();
-
- HiscoreReset();
-
- return 0;
-}
-
-static INT32 DrvDraw()
-{
- CavePalUpdate8Bit(0, 128); // Update the palette
- CaveClearScreen(CavePalette[0x0000]);
-
- if (bDrawScreen) {
-// CaveGetBitmap();
-
- CaveTileRender(1); // Render tiles
- }
-
- return 0;
-}
-
-inline static void gaiaClearOpposites(UINT8* nJoystickInputs)
-{
- if ((*nJoystickInputs & 0x03) == 0x03) {
- *nJoystickInputs &= ~0x03;
- }
- if ((*nJoystickInputs & 0x0C) == 0x0C) {
- *nJoystickInputs &= ~0xC;
- }
-}
-
-inline static INT32 CheckSleep(INT32)
-{
- return 0;
-}
-
-static INT32 DrvFrame()
-{
- INT32 nCyclesVBlank;
- INT32 nInterleave = 8;
-
- if (DrvReset) { // Reset machine
- DrvDoReset();
- }
-
- // Compile digital inputs
- DrvInput[0] = 0x0000; // Player 1
- DrvInput[1] = 0x0000; // Player 2
- for (INT32 i = 0; i < 16; i++) {
- DrvInput[0] |= (DrvJoy1[i] & 1) << i;
- DrvInput[1] |= (DrvJoy2[i] & 1) << i;
- }
- gaiaClearOpposites(((UINT8*)DrvInput) + 0);
- gaiaClearOpposites(((UINT8*)DrvInput) + 1);
-
- SekNewFrame();
-
- nCyclesTotal[0] = (INT32)((INT64)16000000 * nBurnCPUSpeedAdjust / (0x0100 * 58));
- nCyclesDone[0] = 0;
-
- nCyclesVBlank = nCyclesTotal[0] - (INT32)((nCyclesTotal[0] * CAVE_VBLANK_LINES) / 265.5);
- nVBlank = 0;
-
- INT32 nSoundBufferPos = 0;
-
- SekOpen(0);
-
- for (INT32 i = 1; i <= nInterleave; i++) {
- INT32 nNext;
-
- // Render sound segment
- if ((i & 1) == 0) {
- if (pBurnSoundOut) {
- INT32 nSegmentEnd = nBurnSoundLen * i / nInterleave;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- YMZ280BRender(pSoundBuf, nSegmentEnd - nSoundBufferPos);
- nSoundBufferPos = nSegmentEnd;
- }
- }
-
- // Run 68000
- nCurrentCPU = 0;
- nNext = i * nCyclesTotal[nCurrentCPU] / nInterleave;
-
- // See if we need to trigger the VBlank interrupt
- if (!nVBlank && nNext > nCyclesVBlank) {
- if (nCyclesDone[nCurrentCPU] < nCyclesVBlank) {
- nCyclesSegment = nCyclesVBlank - nCyclesDone[nCurrentCPU];
- if (!CheckSleep(nCurrentCPU)) { // See if this CPU is busywaiting
- nCyclesDone[nCurrentCPU] += SekRun(nCyclesSegment);
- } else {
- nCyclesDone[nCurrentCPU] += SekIdle(nCyclesSegment);
- }
- }
-
- if (pBurnDraw != NULL) {
- DrvDraw(); // Draw screen if needed
- }
-
- nVBlank = 1;
- nVideoIRQ = 0;
- UpdateIRQStatus();
- }
-
- nCyclesSegment = nNext - nCyclesDone[nCurrentCPU];
- if (!CheckSleep(nCurrentCPU)) { // See if this CPU is busywaiting
- nCyclesDone[nCurrentCPU] += SekRun(nCyclesSegment);
- } else {
- nCyclesDone[nCurrentCPU] += SekIdle(nCyclesSegment);
- }
-
- nCurrentCPU = -1;
- }
-
- {
- // Make sure the buffer is entirely filled.
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- if (nSegmentLength) {
- YMZ280BRender(pSoundBuf, nSegmentLength);
- }
- }
- }
-
- SekClose();
-
- return 0;
-}
-
-// This routine is called first to determine how much memory is needed (MemEnd-(UINT8 *)0),
-// and then afterwards to set up all the pointers
-static INT32 MemIndex()
-{
- UINT8* Next; Next = Mem;
- Rom01 = Next; Next += 0x100000; // 68K program
- CaveSpriteROM = Next; Next += 0x1000000;
- CaveTileROM[0] = Next; Next += 0x400000; // Tile layer 0
- CaveTileROM[1] = Next; Next += 0x400000; // Tile layer 1
- CaveTileROM[2] = Next; Next += 0x400000; // Tile layer 2
- YMZ280BROM = Next; Next += 0xC00000;
- RamStart = Next;
- Ram01 = Next; Next += 0x010000; // CPU #0 work RAM
- CaveTileRAM[0] = Next; Next += 0x010000;
- CaveTileRAM[1] = Next; Next += 0x010000;
- CaveTileRAM[2] = Next; Next += 0x010000;
- CaveSpriteRAM = Next; Next += 0x010000;
- CavePalSrc = Next; Next += 0x010000; // palette
- RamEnd = Next;
- MemEnd = Next;
-
- return 0;
-}
-
-static void NibbleSwap1(UINT8* pData, INT32 nLen)
-{
- UINT8* pOrg = pData + nLen - 1;
- UINT8* pDest = pData + ((nLen - 1) << 1);
-
- for (INT32 i = 0; i < nLen; i++, pOrg--, pDest -= 2) {
- pDest[0] = *pOrg & 15;
- pDest[1] = *pOrg >> 4;
- }
-
- return;
-}
-
-static void NibbleSwap4(UINT8* pData, INT32 nLen)
-{
- for (INT32 i = 0; i < nLen; i++, pData += 2) {
- UINT8 n1 = pData[0];
- UINT8 n2 = pData[1];
-
- pData[1] = (n2 << 4) | (n1 & 0x0F);
- pData[0] = (n2 & 0xF0) | (n1 >> 4);
- }
-
- return;
-}
-
-static INT32 LoadRoms()
-{
- // Load 68000 ROM
- BurnLoadRom(Rom01 + 0, 1, 2);
- BurnLoadRom(Rom01 + 1, 0, 2);
-
- BurnLoadRom(CaveSpriteROM + 0x000000, 2, 1);
- BurnLoadRom(CaveSpriteROM + 0x400000, 3, 1);
- NibbleSwap1(CaveSpriteROM, 0x800000);
-
- BurnLoadRom(CaveTileROM[0] + 0x000000, 4, 1);
- NibbleSwap4(CaveTileROM[0], 0x400000);
- BurnLoadRom(CaveTileROM[1] + 0x000000, 5, 1);
- NibbleSwap4(CaveTileROM[1], 0x400000);
- BurnLoadRom(CaveTileROM[2] + 0x000000, 6, 1);
- NibbleSwap4(CaveTileROM[2], 0x400000);
-
- // Load YMZ280B data
- BurnLoadRom(YMZ280BROM + 0x000000, 7, 1);
- BurnLoadRom(YMZ280BROM + 0x400000, 8, 1);
- BurnLoadRom(YMZ280BROM + 0x800000, 9, 1);
- return 0;
-}
-
-// Scan ram
-static INT32 DrvScan(INT32 nAction, INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin) { // Return minimum compatible version
- *pnMin = 0x020902;
- }
-
- if (nAction & ACB_MEMORY_ROM) { // Scan all memory, devices & variables
- ba.Data = Rom01;
- ba.nLen = 0x00100000;
- ba.nAddress = 0;
- ba.szName = "68K ROM";
- BurnAcb(&ba);
- }
-
- if (nAction & ACB_MEMORY_RAM) { // Scan all memory, devices & variables
- ba.Data = Ram01;
- ba.nLen = 0x00010000;
- ba.nAddress = 0;
- ba.szName = "68K RAM";
- BurnAcb(&ba);
-
- ba.Data = CaveTileRAM[0];
- ba.nLen = 0x00010000;
- ba.nAddress = 0;
- ba.szName = "Tilemap 0";
- BurnAcb(&ba);
-
- ba.Data = CaveTileRAM[1];
- ba.nLen = 0x00010000;
- ba.nAddress = 0;
- ba.szName = "Tilemap 1";
- BurnAcb(&ba);
-
- ba.Data = CaveTileRAM[2];
- ba.nLen = 0x00010000;
- ba.nAddress = 0;
- ba.szName = "Tile layer 2";
- BurnAcb(&ba);
-
- ba.Data = CaveSpriteRAM;
- ba.nLen = 0x00010000;
- ba.nAddress = 0;
- ba.szName = "Sprite tables";
- BurnAcb(&ba);
-
- ba.Data = CavePalSrc;
- ba.nLen = 0x00010000;
- ba.nAddress = 0;
- ba.szName = "Palette";
- BurnAcb(&ba);
- }
-
- if (nAction & ACB_DRIVER_DATA) {
-
- SekScan(nAction); // scan 68000 states
-
- YMZ280BScan();
-
- SCAN_VAR(nVideoIRQ);
- SCAN_VAR(nSoundIRQ);
- SCAN_VAR(nUnknownIRQ);
- SCAN_VAR(nVBlank);
-
- CaveScanGraphics();
-
- SCAN_VAR(DrvInput);
-
- if (nAction & ACB_WRITE) {
- CaveRecalcPalette = 1;
- }
- }
-
- return 0;
-}
-
-static INT32 DrvInit()
-{
- INT32 nLen;
-
- BurnSetRefreshRate(58.0);
-
- // Find out how much memory is needed
- Mem = NULL;
- MemIndex();
- nLen = MemEnd - (UINT8 *)0;
- if ((Mem = (UINT8 *)BurnMalloc(nLen)) == NULL) {
- return 1;
- }
- memset(Mem, 0, nLen); // blank all memory
- MemIndex(); // Index the allocated memory
-
- // Load the roms into memory
- if (LoadRoms()) {
- return 1;
- }
-
- {
- SekInit(0, 0x68000); // Allocate 68000
- SekOpen(0);
-
- // Map 68000 memory:
- SekMapMemory(Rom01, 0x000000, 0x0FFFFF, MAP_ROM); // CPU 0 ROM
- SekMapMemory(Ram01, 0x100000, 0x10FFFF, MAP_RAM);
- SekMapMemory(CaveSpriteRAM, 0x400000, 0x40FFFF, MAP_RAM);
- SekMapMemory(CaveTileRAM[0], 0x500000, 0x50FFFF, MAP_RAM);
- SekMapMemory(CaveTileRAM[1], 0x600000, 0x60FFFF, MAP_RAM);
- SekMapMemory(CaveTileRAM[2], 0x700000, 0x70FFFF, MAP_RAM);
-
- SekMapMemory(CavePalSrc, 0xC00000, 0xC0FFFF, MAP_ROM); // Palette RAM (write goes through handler)
- SekMapHandler(1, 0xC00000, 0xC0FFFF, MAP_WRITE); //
-
- SekSetReadWordHandler(0, gaiaReadWord);
- SekSetReadByteHandler(0, gaiaReadByte);
- SekSetWriteWordHandler(0, gaiaWriteWord);
- SekSetWriteByteHandler(0, gaiaWriteByte);
-
- SekSetWriteWordHandler(1, gaiaWriteWordPalette);
- SekSetWriteByteHandler(1, gaiaWriteBytePalette);
-
- SekClose();
- }
-
- nCaveRowModeOffset = 0;
-
- CavePalInit(0x8000);
- CaveTileInit();
- CaveSpriteInit(2, 0x1000000);
- CaveTileInitLayer(0, 0x400000, 8, 0x4000);
- CaveTileInitLayer(1, 0x400000, 8, 0x4000);
- CaveTileInitLayer(2, 0x400000, 8, 0x4000);
-
- YMZ280BInit(16000000, &TriggerSoundIRQ, 0xC00000);
- YMZ280BSetRoute(BURN_SND_YMZ280B_YMZ280B_ROUTE_1, 1.00, BURN_SND_ROUTE_LEFT);
- YMZ280BSetRoute(BURN_SND_YMZ280B_YMZ280B_ROUTE_2, 1.00, BURN_SND_ROUTE_RIGHT);
-
- bDrawScreen = true;
-
- DrvDoReset(); // Reset machine
-
- return 0;
-}
-
-// Rom information
-static struct BurnRomInfo gaiaRomDesc[] = {
- { "prg1.127", 0x080000, 0x47B904B2, BRF_ESS | BRF_PRG }, // 0 CPU #0 code
- { "prg2.128", 0x080000, 0x469B7794, BRF_ESS | BRF_PRG }, // 1
-
- { "obj1.736", 0x400000, 0xF4F84E5D, BRF_GRA }, // 2 Sprite data
- { "obj2.738", 0x400000, 0x15C2A9CE, BRF_GRA }, // 3
-
- { "bg1.989", 0x400000, 0x013A693D, BRF_GRA }, // 4 Layer 0 Tile data
- { "bg2.995", 0x400000, 0x783CC62F, BRF_GRA }, // 5 Layer 1 Tile data
- { "bg3.998", 0x400000, 0xbcd61d1c, BRF_GRA }, // 6 Layer 2 Tile data
-
- { "snd1.447", 0x400000, 0x92770A52, BRF_SND }, // 7 YMZ280B (AD)PCM data
- { "snd2.454", 0x400000, 0x329AE1CF, BRF_SND }, // 8
- { "snd3.455", 0x400000, 0x4048D64E, BRF_SND }, // 9
-};
-
-
-STD_ROM_PICK(gaia)
-STD_ROM_FN(gaia)
-
-struct BurnDriver BurnDrvGaia = {
- "gaia", NULL, NULL, NULL, "1999",
- "Gaia Crusaders\0", NULL, "Noise Factory", "Cave",
- L"Gaia Crusaders \u5F81\u6226\u8005\0Gaia Crusaders \u30AC\u30A4\u30A2\u30AF\u30EB\u30BB\u30A4\u30C0\u30FC\u30BA\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HISCORE_SUPPORTED, 2, HARDWARE_CAVE_68K_ONLY, GBF_SCRFIGHT, 0,
- NULL, gaiaRomInfo, gaiaRomName, NULL, NULL, gaiaInputInfo, gaiaDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan,
- &CaveRecalcPalette, 0x8000, 320, 224, 4, 3
-};
-
-static struct BurnRomInfo theroesRomDesc[] = {
- { "t-hero-epm1.u0127", 0x080000, 0x09db7195, BRF_ESS | BRF_PRG }, // 0 CPU #0 code
- { "t-hero-epm0.u0129", 0x080000, 0x2d4e3310, BRF_ESS | BRF_PRG }, // 1
-
- { "t-hero-obj1.u0736", 0x400000, 0x35090f7c, BRF_GRA }, // 2 Sprite data
- { "t-hero-obj2.u0738", 0x400000, 0x71605108, BRF_GRA }, // 3
-
- { "t-hero-bg1.u0999", 0x400000, 0x47b0fb40, BRF_GRA }, // 4 Layer 0 Tile data
- { "t-hero-bg2.u0995", 0x400000, 0xb16237a1, BRF_GRA }, // 5 Layer 1 Tile data
- { "t-hero-bg3.u0998", 0x400000, 0x08eb5604, BRF_GRA }, // 6 Layer 2 Tile data
-
- { "crvsaders-snd1.u0447", 0x400000, 0x92770A52, BRF_SND }, // 7 YMZ280B (AD)PCM data
- { "crvsaders-snd2.u0454", 0x400000, 0x329AE1CF, BRF_SND }, // 8
- { "t-hero-snd3.u0455", 0x400000, 0x52b0b2c0, BRF_SND }, // 9
-};
-
-STD_ROM_PICK(theroes)
-STD_ROM_FN(theroes)
-
-struct BurnDriver BurnDrvTheroes = {
- "theroes", NULL, NULL, NULL, "2001",
- "Thunder Heroes\0", NULL, "Primetec Investments", "Cave",
- L"\u9739\u96F3\u82F1\u96C4 Thunder Heroes\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HISCORE_SUPPORTED, 2, HARDWARE_CAVE_68K_ONLY, GBF_SCRFIGHT, 0,
- NULL, theroesRomInfo, theroesRomName, NULL, NULL, gaiaInputInfo, theroesDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan,
- &CaveRecalcPalette, 0x8000, 320, 224, 4, 3
-};
diff --git a/jan/src/burn/drv/cave/d_guwange.cpp b/jan/src/burn/drv/cave/d_guwange.cpp
deleted file mode 100644
index ab2cb4a79..000000000
--- a/jan/src/burn/drv/cave/d_guwange.cpp
+++ /dev/null
@@ -1,708 +0,0 @@
-// Guwange
-#include "cave.h"
-#include "ymz280b.h"
-
-#define CAVE_VBLANK_LINES 12
-
-static UINT8 DrvJoy1[16] = {0, };
-static UINT8 DrvJoy2[16] = {0, };
-static UINT16 DrvInput[2] = {0, };
-
-static UINT8 *Mem = NULL, *MemEnd = NULL;
-static UINT8 *RamStart, *RamEnd;
-static UINT8 *Rom01;
-static UINT8 *Ram01;
-static UINT8 *DefaultEEPROM = NULL;
-
-static UINT8 DrvReset = 0;
-static UINT8 bDrawScreen;
-static bool bVBlank;
-
-static INT8 nVideoIRQ;
-static INT8 nSoundIRQ;
-static INT8 nUnknownIRQ;
-
-static INT8 nIRQPending;
-
-static INT32 nCurrentCPU;
-static INT32 nCyclesDone[2];
-static INT32 nCyclesTotal[2];
-static INT32 nCyclesSegment;
-static INT32 nCyclesExtra;
-
-static struct BurnInputInfo guwangeInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy2 + 0, "p1 coin"},
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 0, "p1 start"},
-
- {"P1 Up", BIT_DIGITAL, DrvJoy1 + 1, "p1 up"},
- {"P1 Down", BIT_DIGITAL, DrvJoy1 + 2, "p1 down"},
- {"P1 Left", BIT_DIGITAL, DrvJoy1 + 3, "p1 left"},
- {"P1 Right", BIT_DIGITAL, DrvJoy1 + 4, "p1 right"},
- {"P1 Button 1", BIT_DIGITAL, DrvJoy1 + 5, "p1 fire 1"},
- {"P1 Button 2", BIT_DIGITAL, DrvJoy1 + 6, "p1 fire 2"},
- {"P1 Button 3", BIT_DIGITAL, DrvJoy1 + 7, "p1 fire 3"},
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy2 + 1, "p2 coin"},
- {"P2 Start", BIT_DIGITAL, DrvJoy1 + 8, "p2 start"},
-
- {"P2 Up", BIT_DIGITAL, DrvJoy1 + 9, "p2 up"},
- {"P2 Down", BIT_DIGITAL, DrvJoy1 + 10, "p2 down"},
- {"P2 Left", BIT_DIGITAL, DrvJoy1 + 11, "p2 left"},
- {"P2 Right", BIT_DIGITAL, DrvJoy1 + 12, "p2 right"},
- {"P2 Button 1", BIT_DIGITAL, DrvJoy1 + 13, "p2 fire 1"},
- {"P2 Button 2", BIT_DIGITAL, DrvJoy1 + 14, "p2 fire 2"},
- {"P2 Button 3", BIT_DIGITAL, DrvJoy1 + 15, "p2 fire 3"},
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset"},
- {"Diagnostics", BIT_DIGITAL, DrvJoy2 + 2, "diag"},
- {"Service", BIT_DIGITAL, DrvJoy2 + 3, "service"},
-};
-
-STDINPUTINFO(guwange)
-
-static void UpdateIRQStatus()
-{
- nIRQPending = (nVideoIRQ == 0 || nSoundIRQ == 0 || nUnknownIRQ == 0);
- SekSetIRQLine(1, nIRQPending ? CPU_IRQSTATUS_ACK : CPU_IRQSTATUS_NONE);
-}
-
-UINT8 __fastcall guwangeReadByte(UINT32 sekAddress)
-{
- switch (sekAddress) {
- case 0x800002:
- case 0x800003: {
- return YMZ280BReadStatus();
- }
-
- case 0x300000:
- case 0x300001:
- case 0x300002:
- case 0x300003: {
- UINT8 nRet = (nUnknownIRQ << 1) | nVideoIRQ;
- return nRet;
- }
- case 0x300004:
- case 0x300005: {
- UINT8 nRet = (nUnknownIRQ << 1) | nVideoIRQ;
- nVideoIRQ = 1;
- UpdateIRQStatus();
- return nRet;
- }
- case 0x300006:
- case 0x300007: {
- UINT8 nRet = (nUnknownIRQ << 1) | nVideoIRQ;
- nUnknownIRQ = 1;
- UpdateIRQStatus();
- return nRet;
- }
-
- case 0xD00010:
- return (DrvInput[0] >> 8) ^ 0xFF;
- case 0xD00011:
- return (DrvInput[0] & 0xFF) ^ 0xFF;
- case 0xD00012:
- return (DrvInput[1] >> 8) ^ 0xFF;
- case 0xD00013:
- return ((DrvInput[1] & 0x7F) ^ 0x7F) | (EEPROMRead() << 7);
-
- default: {
-// bprintf(PRINT_NORMAL, "Attempt to read byte value of location %x\n", sekAddress);
- }
- }
- return 0;
-}
-
-UINT16 __fastcall guwangeReadWord(UINT32 sekAddress)
-{
- switch (sekAddress) {
- case 0x800002: {
- return YMZ280BReadStatus();
- }
-
- case 0x300000:
- case 0x300002: {
- UINT16 nRet = (nUnknownIRQ << 1) | nVideoIRQ;
- return nRet;
- }
-
- case 0x300004: {
- UINT16 nRet = (nUnknownIRQ << 1) | nVideoIRQ;
- nVideoIRQ = 1;
- UpdateIRQStatus();
- return nRet;
- }
- case 0x300006: {
- UINT16 nRet = (nUnknownIRQ << 1) | nVideoIRQ;
- nUnknownIRQ = 1;
- UpdateIRQStatus();
- return nRet;
- }
-
- case 0xD00010:
- return DrvInput[0] ^ 0xFFFF;
- case 0xD00012:
- return (DrvInput[1] ^ 0xFF7F) | (EEPROMRead() << 7);
-
- default: {
-// bprintf(PRINT_NORMAL, "Attempt to read word value of location %x\n", sekAddress);
- }
- }
- return 0;
-}
-
-void __fastcall guwangeWriteByte(UINT32 sekAddress, UINT8 byteValue)
-{
- switch (sekAddress) {
- case 0x800000:
- case 0x800001:
- YMZ280BSelectRegister(byteValue);
- break;
- case 0x800002:
- case 0x800003:
- YMZ280BWriteRegister(byteValue);
- break;
-
- case 0xD00011:
- EEPROMWrite(byteValue & 0x40, byteValue & 0x20, byteValue & 0x80);
- break;
-
- default: {
-// bprintf(PRINT_NORMAL, "Attempt to write byte value %x to location %x\n", byteValue, sekAddress);
- }
- }
-}
-
-void __fastcall guwangeWriteWord(UINT32 sekAddress, UINT16 wordValue)
-{
- switch (sekAddress) {
-
- case 0x300000:
- nCaveXOffset = wordValue;
- return;
- case 0x300002:
- nCaveYOffset = wordValue;
- return;
- case 0x300008:
- CaveSpriteBuffer();
- nCaveSpriteBank = wordValue;
- return;
-
- case 0x800000:
- YMZ280BSelectRegister(wordValue & 0xFF);
- break;
- case 0x800002:
- YMZ280BWriteRegister(wordValue & 0xFF);
- break;
-
- case 0x900000:
- CaveTileReg[0][0] = wordValue;
- break;
- case 0x900002:
- CaveTileReg[0][1] = wordValue;
- break;
- case 0x900004:
- CaveTileReg[0][2] = wordValue;
- break;
-
- case 0xA00000:
- CaveTileReg[1][0] = wordValue;
- break;
- case 0xA00002:
- CaveTileReg[1][1] = wordValue;
- break;
- case 0xA00004:
- CaveTileReg[1][2] = wordValue;
- break;
-
- case 0xB00000:
- CaveTileReg[2][0] = wordValue;
- break;
- case 0xB00002:
- CaveTileReg[2][1] = wordValue;
- break;
- case 0xB00004:
- CaveTileReg[2][2] = wordValue;
- break;
-
- case 0xD00010:
- EEPROMWrite(wordValue & 0x40, wordValue & 0x20, wordValue & 0x80);
- break;
-
- default: {
-// bprintf(PRINT_NORMAL, "Attempt to write word value %x to location %x\n", wordValue, sekAddress);
-
- }
- }
-}
-
-void __fastcall guwangeWriteBytePalette(UINT32 sekAddress, UINT8 byteValue)
-{
- CavePalWriteByte(sekAddress & 0xFFFF, byteValue);
-}
-
-void __fastcall guwangeWriteWordPalette(UINT32 sekAddress, UINT16 wordValue)
-{
- CavePalWriteWord(sekAddress & 0xFFFF, wordValue);
-}
-
-static void TriggerSoundIRQ(INT32 nStatus)
-{
- nSoundIRQ = nStatus ^ 1;
- UpdateIRQStatus();
-
- if (nIRQPending && nCurrentCPU != 0) {
- nCyclesDone[0] += SekRun(0x0400);
- }
-}
-
-static INT32 DrvExit()
-{
- YMZ280BExit();
-
- EEPROMExit();
-
- CaveTileExit();
- CaveSpriteExit();
- CavePalExit();
-
- SekExit(); // Deallocate 68000s
-
- BurnFree(Mem);
-
- return 0;
-}
-
-static INT32 DrvDoReset()
-{
- SekOpen(0);
- SekReset();
- SekClose();
-
- EEPROMReset();
-
- YMZ280BReset();
-
- nVideoIRQ = 1;
- nSoundIRQ = 1;
- nUnknownIRQ = 1;
-
- nIRQPending = 0;
- nCyclesExtra = 0;
-
- HiscoreReset();
-
- return 0;
-}
-
-static INT32 DrvDraw()
-{
- CavePalUpdate8Bit(0, 128); // Update the palette
- CaveClearScreen(CavePalette[0x7F00]);
-
- if (bDrawScreen) {
-// CaveGetBitmap();
-
- CaveTileRender(1); // Render tiles
- }
-
- return 0;
-}
-
-inline static void guwangeClearOpposites(UINT8* nJoystickInputs)
-{
- if ((*nJoystickInputs & 0x06) == 0x06) {
- *nJoystickInputs &= ~0x06;
- }
- if ((*nJoystickInputs & 0x18) == 0x18) {
- *nJoystickInputs &= ~0x18;
- }
-}
-
-inline static INT32 CheckSleep(INT32)
-{
- return 0;
-}
-
-static INT32 DrvFrame()
-{
- INT32 nCyclesVBlank;
- INT32 nInterleave = 8;
-
- if (DrvReset) { // Reset machine
- DrvDoReset();
- }
-
- // Compile digital inputs
- DrvInput[0] = 0x0000; // Joysticks
- DrvInput[1] = 0x0000; // Other controls
- for (INT32 i = 0; i < 16; i++) {
- DrvInput[0] |= (DrvJoy1[i] & 1) << i;
- DrvInput[1] |= (DrvJoy2[i] & 1) << i;
- }
- guwangeClearOpposites(((UINT8*)DrvInput) + 0);
- guwangeClearOpposites(((UINT8*)DrvInput) + 1);
-
- SekNewFrame();
-
- nCyclesTotal[0] = (INT32)((INT64)16000000 * nBurnCPUSpeedAdjust / (0x0100 * CAVE_REFRESHRATE));
- nCyclesDone[0] = 0;
-
- nCyclesVBlank = nCyclesTotal[0] - (INT32)((nCyclesTotal[0] * CAVE_VBLANK_LINES) / 271.5);
- bVBlank = false;
-
- INT32 nSoundBufferPos = 0;
-
- SekOpen(0);
-
- for (INT32 i = 1; i <= nInterleave; i++) {
- INT32 nNext;
-
- // Render sound segment
- if ((i & 1) == 0) {
- if (pBurnSoundOut) {
- INT32 nSegmentEnd = nBurnSoundLen * i / nInterleave;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- YMZ280BRender(pSoundBuf, nSegmentEnd - nSoundBufferPos);
- nSoundBufferPos = nSegmentEnd;
- }
- }
-
- // Run 68000
- nCurrentCPU = 0;
- nNext = i * nCyclesTotal[nCurrentCPU] / nInterleave;
-
- // See if we need to trigger the VBlank interrupt
- if (!bVBlank && nNext > nCyclesVBlank) {
- if (nCyclesDone[nCurrentCPU] < nCyclesVBlank) {
- nCyclesSegment = nCyclesVBlank - nCyclesDone[nCurrentCPU];
- if (!CheckSleep(nCurrentCPU)) { // See if this CPU is busywaiting
- nCyclesDone[nCurrentCPU] += SekRun(nCyclesSegment);
- } else {
- nCyclesDone[nCurrentCPU] += SekIdle(nCyclesSegment);
- }
- }
-
- if (pBurnDraw != NULL) {
- DrvDraw(); // Draw screen if needed
- }
-
- bVBlank = true;
- nVideoIRQ = 0;
- UpdateIRQStatus();
- }
-
- nCyclesSegment = nNext - nCyclesDone[nCurrentCPU];
- if (!CheckSleep(nCurrentCPU)) { // See if this CPU is busywaiting
- nCyclesDone[nCurrentCPU] += SekRun(nCyclesSegment+nCyclesExtra);
- nCyclesExtra = 0;
- } else {
- nCyclesDone[nCurrentCPU] += SekIdle(nCyclesSegment);
- }
-
- nCurrentCPU = -1;
- }
-
- // Make sure the buffer is entirely filled.
- {
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- if (nSegmentLength) {
- YMZ280BRender(pSoundBuf, nSegmentLength);
- }
- }
- }
- nCyclesExtra = SekTotalCycles() - nCyclesTotal[0];
-
- SekClose();
-
- return 0;
-}
-
-// This routine is called first to determine how much memory is needed (MemEnd-(UINT8 *)0),
-// and then afterwards to set up all the pointers
-static INT32 MemIndex()
-{
- UINT8* Next; Next = Mem;
- Rom01 = Next; Next += 0x100000; // 68K program
- CaveSpriteROM = Next; Next += 0x2000000;
- CaveTileROM[0] = Next; Next += 0x800000; // Tile layer 0
- CaveTileROM[1] = Next; Next += 0x400000; // Tile layer 1
- CaveTileROM[2] = Next; Next += 0x400000; // Tile layer 2
- YMZ280BROM = Next; Next += 0x400000;
- DefaultEEPROM = Next; Next += 0x000080;
- RamStart = Next;
- Ram01 = Next; Next += 0x010000; // CPU #0 work RAM
- CaveTileRAM[0] = Next; Next += 0x008000;
- CaveTileRAM[1] = Next; Next += 0x008000;
- CaveTileRAM[2] = Next; Next += 0x008000;
- CaveSpriteRAM = Next; Next += 0x010000;
- CavePalSrc = Next; Next += 0x010000; // palette
- RamEnd = Next;
- MemEnd = Next;
-
- return 0;
-}
-
-static void NibbleSwap3(UINT8* pData, INT32 nLen)
-{
- for (INT32 i = 0; i < nLen; i++, pData += 2) {
- UINT8 n1 = pData[0];
- UINT8 n2 = pData[1];
-
- pData[0] = (n1 << 4) | (n2 & 0x0F);
- pData[1] = (n1 & 0xF0) | (n2 >> 4);
- }
-
- return;
-}
-
-static void NibbleSwap4(UINT8* pData, INT32 nLen)
-{
- for (INT32 i = 0; i < nLen; i++, pData += 2) {
- UINT8 n1 = pData[0];
- UINT8 n2 = pData[1];
-
- pData[1] = (n2 << 4) | (n1 & 0x0F);
- pData[0] = (n2 & 0xF0) | (n1 >> 4);
- }
-
- return;
-}
-
-
-static INT32 LoadRoms()
-{
- // Load 68000 ROM
- BurnLoadRom(Rom01 + 0, 1, 2);
- BurnLoadRom(Rom01 + 1, 0, 2);
-
- BurnLoadRom(CaveSpriteROM + 0x0000000, 2, 2);
- BurnLoadRom(CaveSpriteROM + 0x0000001, 3, 2);
- BurnLoadRom(CaveSpriteROM + 0x1000000, 4, 2);
- BurnLoadRom(CaveSpriteROM + 0x1000001, 5, 2);
- NibbleSwap3(CaveSpriteROM, 0xC00000);
-
-#if 0
- // I don't think this is needed anymore, dink aug 14 2016.
- // note: if enabled-this causes the screen fade-in effect after starting
- // a game @ the character selection screen to display garbage sprite data.
- for (INT32 i = 0; i < 0x100000; i++) {
- UINT16 nValue = rand() & 0x0101;
- if (nValue & 0x0001) {
- nValue |= 0x00FF;
- }
- if (nValue & 0x0100) {
- nValue |= 0xFF00;
- }
- ((UINT16*)(CaveSpriteROM + 0x1800000))[i] = nValue;
- ((UINT16*)(CaveSpriteROM + 0x1A00000))[i] = nValue;
- ((UINT16*)(CaveSpriteROM + 0x1C00000))[i] = nValue;
- ((UINT16*)(CaveSpriteROM + 0x1E00000))[i] = nValue;
- }
-#else
- memcpy(CaveSpriteROM + 0x1800000, CaveSpriteROM + 0x1000000, 0x800000);
-#endif
-
- BurnLoadRom(CaveTileROM[0] + 0x000000, 6, 1);
- NibbleSwap4(CaveTileROM[0], 0x400000);
- BurnLoadRom(CaveTileROM[1] + 0x000000, 7, 1);
- NibbleSwap4(CaveTileROM[1], 0x200000);
- BurnLoadRom(CaveTileROM[2] + 0x000000, 8, 1);
- NibbleSwap4(CaveTileROM[2], 0x200000);
-
- // Load YMZ280B data
- BurnLoadRom(YMZ280BROM, 9, 1);
-
- BurnLoadRom(DefaultEEPROM, 14, 1);
-
- return 0;
-}
-
-// Scan ram
-static INT32 DrvScan(INT32 nAction, INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin) { // Return minimum compatible version
- *pnMin = 0x020902;
- }
-
- EEPROMScan(nAction, pnMin); // Scan EEPROM
-
- if (nAction & ACB_VOLATILE) { // Scan volatile ram
-
- memset(&ba, 0, sizeof(ba));
- ba.Data = RamStart;
- ba.nLen = RamEnd - RamStart;
- ba.szName = "RAM";
- BurnAcb(&ba);
-
- SekScan(nAction); // scan 68000 states
-
- YMZ280BScan();
-
- SCAN_VAR(nVideoIRQ);
- SCAN_VAR(nSoundIRQ);
- SCAN_VAR(nUnknownIRQ);
- SCAN_VAR(bVBlank);
-
- CaveScanGraphics();
-
- SCAN_VAR(DrvInput);
- }
-
- if (nAction & ACB_WRITE) {
- CaveRecalcPalette = 1;
- }
-
- return 0;
-}
-
-static INT32 DrvInit()
-{
- INT32 nLen;
-
- BurnSetRefreshRate(CAVE_REFRESHRATE);
-
- // Find out how much memory is needed
- Mem = NULL;
- MemIndex();
- nLen = MemEnd - (UINT8 *)0;
- if ((Mem = (UINT8 *)BurnMalloc(nLen)) == NULL) {
- return 1;
- }
- memset(Mem, 0, nLen); // blank all memory
- MemIndex(); // Index the allocated memory
-
- // Load the roms into memory
- if (LoadRoms()) {
- return 1;
- }
-
- EEPROMInit(&eeprom_interface_93C46);
- if (!EEPROMAvailable()) EEPROMFill(DefaultEEPROM,0, 0x80);
-
- {
- SekInit(0, 0x68000); // Allocate 68000
- SekOpen(0);
-
- // Map 68000 memory:
- SekMapMemory(Rom01, 0x000000, 0x0FFFFF, MAP_ROM); // CPU 0 ROM
- SekMapMemory(Ram01, 0x200000, 0x20FFFF, MAP_RAM);
- SekMapMemory(CaveSpriteRAM, 0x400000, 0x40FFFF, MAP_RAM);
- SekMapMemory(CaveTileRAM[0], 0x500000, 0x507FFF, MAP_RAM);
- SekMapMemory(CaveTileRAM[1], 0x600000, 0x607FFF, MAP_RAM);
- SekMapMemory(CaveTileRAM[2], 0x700000, 0x707FFF, MAP_RAM);
-
- SekMapMemory(CavePalSrc, 0xC00000, 0xC0FFFF, MAP_ROM); // Palette RAM (write goes through handler)
- SekMapHandler(1, 0xC00000, 0xC0FFFF, MAP_WRITE); //
-
- SekSetReadWordHandler(0, guwangeReadWord);
- SekSetReadByteHandler(0, guwangeReadByte);
- SekSetWriteWordHandler(0, guwangeWriteWord);
- SekSetWriteByteHandler(0, guwangeWriteByte);
-
- SekSetWriteWordHandler(1, guwangeWriteWordPalette);
- SekSetWriteByteHandler(1, guwangeWriteBytePalette);
-
- SekClose();
- }
-
- nCaveRowModeOffset = 2;
-
- CavePalInit(0x8000);
- CaveTileInit();
- CaveSpriteInit(1, 0x2000000);
- CaveTileInitLayer(0, 0x800000, 8, 0x4000);
- CaveTileInitLayer(1, 0x400000, 8, 0x4000);
- CaveTileInitLayer(2, 0x400000, 8, 0x4000);
-
- YMZ280BInit(16934400, &TriggerSoundIRQ, 0x400000);
- YMZ280BSetRoute(BURN_SND_YMZ280B_YMZ280B_ROUTE_1, 1.00, BURN_SND_ROUTE_LEFT);
- YMZ280BSetRoute(BURN_SND_YMZ280B_YMZ280B_ROUTE_2, 1.00, BURN_SND_ROUTE_RIGHT);
-
- bDrawScreen = true;
-
- DrvDoReset(); // Reset machine
-
- return 0;
-}
-
-// Rom information
-static struct BurnRomInfo guwangeRomDesc[] = {
- { "gu-u0127.bin", 0x080000, 0xF86B5293, BRF_ESS | BRF_PRG }, // 0 CPU #0 code
- { "gu-u0129.bin", 0x080000, 0x6C0E3B93, BRF_ESS | BRF_PRG }, // 1
-
- { "u083.bin", 0x800000, 0xADC4B9C4, BRF_GRA }, // 2 Sprite data
- { "u082.bin", 0x800000, 0x3D75876C, BRF_GRA }, // 3
- { "u086.bin", 0x400000, 0x188E4F81, BRF_GRA }, // 4
- { "u085.bin", 0x400000, 0xA7D5659E, BRF_GRA }, // 5
-
- { "u101.bin", 0x800000, 0x0369491F, BRF_GRA }, // 6 Layer 0 Tile data
- { "u10102.bin", 0x400000, 0xE28D6855, BRF_GRA }, // 7 Layer 1 Tile data
- { "u10103.bin", 0x400000, 0x0FE91B8E, BRF_GRA }, // 8 Layer 2 Tile data
-
- { "u0462.bin", 0x400000, 0xB3D75691, BRF_SND }, // 9 YMZ280B (AD)PCM data
-
- { "atc05-1.bin", 0x000001, 0x00000000, BRF_NODUMP },
- { "u0259.bin", 0x000001, 0x00000000, BRF_NODUMP },
- { "u084.bin", 0x000001, 0x00000000, BRF_NODUMP },
- { "u108.bin", 0x000001, 0x00000000, BRF_NODUMP },
-
- { "eeprom-guwange.bin", 0x0080, 0xc3174959, BRF_ESS | BRF_PRG },
-};
-
-
-STD_ROM_PICK(guwange)
-STD_ROM_FN(guwange)
-
-
-struct BurnDriver BurnDrvGuwange = {
- "guwange", NULL, NULL, NULL, "1999",
- "Guwange (Japan, Master Ver. 99/06/24)\0", NULL, "Atlus / Cave", "Cave",
- L"\u3050\u308F\u3093\u3052 (Japan, Master Ver. 99/06/24)\0Guwange\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_16BIT_ONLY | BDF_HISCORE_SUPPORTED, 2, HARDWARE_CAVE_68K_ONLY, GBF_VERSHOOT, 0,
- NULL, guwangeRomInfo, guwangeRomName, NULL, NULL, guwangeInputInfo, NULL,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan,
- &CaveRecalcPalette, 0x8000, 240, 320, 3, 4
-};
-
-
-static struct BurnRomInfo guwangesRomDesc[] = {
- { "gu-u0127b.bin",0x080000, 0x64667d2e, BRF_ESS | BRF_PRG }, // 0 CPU #0 code
- { "gu-u0129b.bin",0x080000, 0xa99C6b6c, BRF_ESS | BRF_PRG }, // 1
-
- { "u083.bin", 0x800000, 0xADC4B9C4, BRF_GRA }, // 2 Sprite data
- { "u082.bin", 0x800000, 0x3D75876C, BRF_GRA }, // 3
- { "u086.bin", 0x400000, 0x188E4F81, BRF_GRA }, // 4
- { "u085.bin", 0x400000, 0xA7D5659E, BRF_GRA }, // 5
-
- { "u101.bin", 0x800000, 0x0369491F, BRF_GRA }, // 6 Layer 0 Tile data
- { "u10102.bin", 0x400000, 0xE28D6855, BRF_GRA }, // 7 Layer 1 Tile data
- { "u10103.bin", 0x400000, 0x0FE91B8E, BRF_GRA }, // 8 Layer 2 Tile data
-
- { "u0462.bin", 0x400000, 0xB3D75691, BRF_SND }, // 9 YMZ280B (AD)PCM data
-
- { "atc05-1.bin", 0x000001, 0x00000000, BRF_NODUMP },
- { "u0259.bin", 0x000001, 0x00000000, BRF_NODUMP },
- { "u084.bin", 0x000001, 0x00000000, BRF_NODUMP },
- { "u108.bin", 0x000001, 0x00000000, BRF_NODUMP },
-
- { "eeprom-guwange.bin", 0x0080, 0xc3174959, BRF_ESS | BRF_PRG },
-};
-
-
-STD_ROM_PICK(guwanges)
-STD_ROM_FN(guwanges)
-
-
-struct BurnDriver BurnDrvGuwanges = {
- "guwanges", "guwange", NULL, NULL, "1999",
- "Guwange (Japan, Special Ver. 00/01/01)\0", NULL, "Atlus / Cave", "Cave",
- L"\u3050\u308F\u3093\u3052 (Japan, Special Ver. 00/07/07)\0Guwange\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_16BIT_ONLY | BDF_HISCORE_SUPPORTED, 2, HARDWARE_CAVE_68K_ONLY, GBF_VERSHOOT, 0,
- NULL, guwangesRomInfo, guwangesRomName, NULL, NULL, guwangeInputInfo, NULL,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan,
- &CaveRecalcPalette, 0x8000, 240, 320, 3, 4
-};
diff --git a/jan/src/burn/drv/cave/d_hotdogst.cpp b/jan/src/burn/drv/cave/d_hotdogst.cpp
deleted file mode 100644
index 5c21ddd23..000000000
--- a/jan/src/burn/drv/cave/d_hotdogst.cpp
+++ /dev/null
@@ -1,742 +0,0 @@
-// hotdogst
-#include "cave.h"
-#include "msm6295.h"
-#include "burn_ym2203.h"
-
-#define CAVE_VBLANK_LINES 12
-
-static UINT8 DrvJoy1[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
-static UINT8 DrvJoy2[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
-static UINT16 DrvInput[2] = {0x0000, 0x0000};
-
-static UINT8 *Mem = NULL, *MemEnd = NULL;
-static UINT8 *RamStart, *RamEnd;
-static UINT8 *Rom01, *RomZ80;
-static UINT8 *Ram01, *RamZ80;
-static UINT8 *MSM6295ROMSrc;
-static UINT8 *DefaultEEPROM = NULL;
-
-static UINT8 DrvReset = 0;
-static UINT8 bDrawScreen;
-static bool bVBlank;
-
-static INT8 nVideoIRQ;
-static INT8 nSoundIRQ;
-static INT8 nUnknownIRQ;
-
-static INT8 nIRQPending;
-
-static INT32 nCyclesTotal[2];
-static INT32 nCyclesDone[2];
-
-static UINT16 DrvSoundLatch;
-static UINT8 DrvZ80Bank;
-static UINT8 DrvOkiBank1;
-static UINT8 DrvOkiBank2;
-
-static struct BurnInputInfo hotdogstInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy1 + 8, "p1 coin"},
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 7, "p1 start"},
-
- {"P1 Up", BIT_DIGITAL, DrvJoy1 + 0, "p1 up"},
- {"P1 Down", BIT_DIGITAL, DrvJoy1 + 1, "p1 down"},
- {"P1 Left", BIT_DIGITAL, DrvJoy1 + 2, "p1 left"},
- {"P1 Right", BIT_DIGITAL, DrvJoy1 + 3, "p1 right"},
- {"P1 Button 1", BIT_DIGITAL, DrvJoy1 + 4, "p1 fire 1"},
- {"P1 Button 2", BIT_DIGITAL, DrvJoy1 + 5, "p1 fire 2"},
- {"P1 Button 3", BIT_DIGITAL, DrvJoy1 + 6, "p1 fire 3"},
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy2 + 8, "p2 coin"},
- {"P2 Start", BIT_DIGITAL, DrvJoy2 + 7, "p2 start"},
-
- {"P2 Up", BIT_DIGITAL, DrvJoy2 + 0, "p2 up"},
- {"P2 Down", BIT_DIGITAL, DrvJoy2 + 1, "p2 down"},
- {"P2 Left", BIT_DIGITAL, DrvJoy2 + 2, "p2 left"},
- {"P2 Right", BIT_DIGITAL, DrvJoy2 + 3, "p2 right"},
- {"P2 Button 1", BIT_DIGITAL, DrvJoy2 + 4, "p2 fire 1"},
- {"P2 Button 2", BIT_DIGITAL, DrvJoy2 + 5, "p2 fire 2"},
- {"P2 Button 3", BIT_DIGITAL, DrvJoy2 + 6, "p2 fire 3"},
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset"},
- {"Diagnostics", BIT_DIGITAL, DrvJoy1 + 9, "diag"},
- {"Service", BIT_DIGITAL, DrvJoy2 + 9, "service"},
-};
-
-STDINPUTINFO(hotdogst)
-
-static void UpdateIRQStatus()
-{
- nIRQPending = (nVideoIRQ == 0 || nSoundIRQ == 0 || nUnknownIRQ == 0);
- SekSetIRQLine(1, nIRQPending ? CPU_IRQSTATUS_ACK : CPU_IRQSTATUS_NONE);
-}
-
-UINT8 __fastcall hotdogstReadByte(UINT32 sekAddress)
-{
- switch (sekAddress) {
- case 0xc80002:
- return ((DrvInput[1] >> 8) ^ 0xF7) | (EEPROMRead() << 3);
- default: {
- bprintf(PRINT_NORMAL, _T("Attempt to read byte value of location %x\n"), sekAddress);
- }
- }
- return 0;
-}
-
-void __fastcall hotdogstWriteByte(UINT32 sekAddress, UINT8 byteValue)
-{
- switch (sekAddress) {
- if (~byteValue & 0x0100) {
- case 0xd00000:
- EEPROMWrite(byteValue & 0x04, byteValue & 0x02, byteValue & 0x08);
- break;
- }
- default: {
- bprintf(PRINT_NORMAL, _T("Attempt to write byte value %x to location %x\n"), byteValue, sekAddress);
-
- }
- }
-}
-
-UINT16 __fastcall hotdogstReadWord(UINT32 sekAddress)
-{
- switch (sekAddress) {
- case 0xa80000:
- case 0xa80002: {
- UINT8 nRet = (nUnknownIRQ << 1) | nVideoIRQ;
- return nRet;
- }
- case 0xa80004: {
- UINT8 nRet = (nUnknownIRQ << 1) | nVideoIRQ;
- nVideoIRQ = 1;
- UpdateIRQStatus();
- return nRet;
- }
- case 0xa80006: {
- UINT8 nRet = (nUnknownIRQ << 1) | nVideoIRQ;
- nUnknownIRQ = 1;
- UpdateIRQStatus();
- return nRet;
- }
-
-// case 0xa8006e: {
-// return 0xff;
-// }
-
- case 0xc80000:
- return DrvInput[0] ^ 0xFFFF;
- case 0xC80002:
- return (DrvInput[1] ^ 0xF7FF) | (EEPROMRead() << 11);
-
- default: {
- bprintf(PRINT_NORMAL, _T("Attempt to read word value of location %x\n"), sekAddress);
- }
- }
- return 0;
-}
-
-void __fastcall hotdogstWriteWord(UINT32 sekAddress, UINT16 wordValue)
-{
- switch (sekAddress) {
- case 0xa80000:
- nCaveXOffset = wordValue;
- return;
- case 0xa80002:
- nCaveYOffset = wordValue;
- return;
-
- case 0xa80008:
- CaveSpriteBuffer();
- nCaveSpriteBank = wordValue;
- return;
-
- case 0xa8006e: {
- DrvSoundLatch = wordValue;
- ZetNmi();
- return;
- }
-
- case 0xb00000:
- CaveTileReg[0][0] = wordValue;
- break;
- case 0xb00002:
- CaveTileReg[0][1] = wordValue;
- break;
- case 0xb00004:
- CaveTileReg[0][2] = wordValue;
- break;
-
- case 0xb80000:
- CaveTileReg[1][0] = wordValue;
- break;
- case 0xb80002:
- CaveTileReg[1][1] = wordValue;
- break;
- case 0xb80004:
- CaveTileReg[1][2] = wordValue;
- break;
-
- case 0xc00000:
- CaveTileReg[2][0] = wordValue;
- break;
- case 0xc00002:
- CaveTileReg[2][1] = wordValue;
- break;
- case 0xc00004:
- CaveTileReg[2][2] = wordValue;
- break;
-
- case 0xd00000:
- if (~wordValue & 0x0100) {
- wordValue >>= 8;
- EEPROMWrite(wordValue & 0x04, wordValue & 0x02, wordValue & 0x08);
- break;
- }
- case 0xd00002: {
- //nop
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Attempt to write word value %x to location %x\n"), wordValue, sekAddress);
-
- }
- }
-}
-
-UINT8 __fastcall hotdogstZIn(UINT16 nAddress)
-{
- nAddress &= 0xFF;
-
- switch (nAddress) {
- case 0x30: {
- return DrvSoundLatch & 0xff;
- }
-
- case 0x40: {
- return (DrvSoundLatch & 0xff00) >> 8;
- }
-
- case 0x50: {
- return BurnYM2203Read(0, 0);
- }
-
- case 0x60: {
- return MSM6295ReadStatus(0);
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 Port Read %x\n"), nAddress);
- }
- }
-
- return 0;
-}
-
-void __fastcall hotdogstZOut(UINT16 nAddress, UINT8 nValue)
-{
- nAddress &= 0xFF;
-
- switch (nAddress) {
- case 0x00: {
- DrvZ80Bank = nValue & 0x0f;
-
- ZetMapArea(0x4000, 0x7FFF, 0, RomZ80 + (DrvZ80Bank * 0x4000));
- ZetMapArea(0x4000, 0x7FFF, 2, RomZ80 + (DrvZ80Bank * 0x4000));
- return;
- }
-
- case 0x50: {
- BurnYM2203Write(0, 0, nValue);
- return;
- }
-
- case 0x51: {
- BurnYM2203Write(0, 1, nValue);
- return;
- }
-
- case 0x60: {
- MSM6295Command(0, nValue);
- return;
- }
-
- case 0x70: {
- DrvOkiBank1 = (nValue >> 0) & 0x03;
- DrvOkiBank2 = (nValue >> 4) & 0x03;
-
- memcpy(MSM6295ROM + 0x00000, MSM6295ROMSrc + 0x20000 * DrvOkiBank1, 0x20000);
- memcpy(MSM6295ROM + 0x20000, MSM6295ROMSrc + 0x20000 * DrvOkiBank2, 0x20000);
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 Port Write %x, %x\n"), nAddress, nValue);
- }
- }
-}
-
-UINT8 __fastcall hotdogstZRead(UINT16 a)
-{
- switch (a) {
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 Read => %04X\n"), a);
- }
- }
-
- return 0;
-}
-
-void __fastcall hotdogstZWrite(UINT16 a, UINT8 d)
-{
- switch (a) {
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 Write => %04X, %02X\n"), a, d);
- }
- }
-}
-
-static INT32 DrvExit()
-{
- EEPROMExit();
-
- MSM6295Exit(0);
-
- CaveTileExit();
- CaveSpriteExit();
- CavePalExit();
-
- SekExit(); // Deallocate 68000s
- ZetExit();
-
- BurnYM2203Exit();
-
- DrvSoundLatch = 0;
- DrvZ80Bank = 0;
- DrvOkiBank1 = 0;
- DrvOkiBank2 = 0;
-
- BurnFree(Mem);
-
- return 0;
-}
-
-static INT32 DrvDoReset()
-{
- SekOpen(0);
- SekReset();
- SekClose();
-
- ZetOpen(0);
- ZetReset();
- ZetClose();
-
- BurnYM2203Reset();
- MSM6295Reset(0);
-
- EEPROMReset();
-
- nVideoIRQ = 1;
- nSoundIRQ = 1;
- nUnknownIRQ = 1;
-
- nIRQPending = 0;
-
- DrvSoundLatch = 0;
- DrvZ80Bank = 0;
- DrvOkiBank1 = 0;
- DrvOkiBank2 = 0;
-
- HiscoreReset();
-
- return 0;
-}
-
-static INT32 DrvDraw()
-{
- CavePalUpdate4Bit(0, 128); // Update the palette
- CaveClearScreen(CavePalette[0x3F00]);
-
- if (bDrawScreen) {
-// CaveGetBitmap();
-
- CaveTileRender(1); // Render tiles
- }
-
- return 0;
-}
-
-inline static INT32 CheckSleep(INT32)
-{
- return 0;
-}
-
-static INT32 DrvFrame()
-{
- INT32 nCyclesVBlank;
- INT32 nInterleave = 80;
-
- INT32 nCyclesSegment;
-
- if (DrvReset) { // Reset machine
- DrvDoReset();
- }
-
- // Compile digital inputs
- DrvInput[0] = 0x0000; // Player 1
- DrvInput[1] = 0x0000; // Player 2
- for (INT32 i = 0; i < 10; i++) {
- DrvInput[0] |= (DrvJoy1[i] & 1) << i;
- DrvInput[1] |= (DrvJoy2[i] & 1) << i;
- }
- CaveClearOpposites(&DrvInput[0]);
- CaveClearOpposites(&DrvInput[1]);
-
- SekNewFrame();
- ZetNewFrame();
-
- SekOpen(0);
- ZetOpen(0);
-
- nCyclesTotal[0] = (INT32)((INT64)16000000 * nBurnCPUSpeedAdjust / (0x0100 * CAVE_REFRESHRATE));
- nCyclesTotal[1] = (INT32)(4000000 / CAVE_REFRESHRATE);
- nCyclesDone[0] = nCyclesDone[1] = 0;
-
- nCyclesVBlank = nCyclesTotal[0] - (INT32)((nCyclesTotal[0] * CAVE_VBLANK_LINES) / 271.5);
- bVBlank = false;
-
- for (INT32 i = 1; i <= nInterleave; i++) {
- INT32 nCurrentCPU = 0;
- INT32 nNext = i * nCyclesTotal[nCurrentCPU] / nInterleave;
-
- // Run 68000
-
- // See if we need to trigger the VBlank interrupt
- if (!bVBlank && nNext > nCyclesVBlank) {
- if (nCyclesDone[nCurrentCPU] < nCyclesVBlank) {
- nCyclesSegment = nCyclesVBlank - nCyclesDone[nCurrentCPU];
- if (!CheckSleep(nCurrentCPU)) { // See if this CPU is busywaiting
- nCyclesDone[nCurrentCPU] += SekRun(nCyclesSegment);
- } else {
- nCyclesDone[nCurrentCPU] += SekIdle(nCyclesSegment);
- }
- }
-
- if (pBurnDraw != NULL) {
- DrvDraw(); // Draw screen if needed
- }
-
- CaveSpriteBuffer();
-
- bVBlank = true;
- nVideoIRQ = 0;
- UpdateIRQStatus();
- }
-
- nCyclesSegment = nNext - nCyclesDone[nCurrentCPU];
- if (!CheckSleep(nCurrentCPU)) { // See if this CPU is busywaiting
- nCyclesDone[nCurrentCPU] += SekRun(nCyclesSegment);
- } else {
- nCyclesDone[nCurrentCPU] += SekIdle(nCyclesSegment);
- }
-
- BurnTimerUpdate(i * (nCyclesTotal[1] / nInterleave));
- }
-
- SekClose();
-
- BurnTimerEndFrame(nCyclesTotal[1]);
-
- if (pBurnSoundOut) {
- BurnYM2203Update(pBurnSoundOut, nBurnSoundLen);
- MSM6295Render(0, pBurnSoundOut, nBurnSoundLen);
- }
-
- ZetClose();
-
- return 0;
-}
-
-// This routine is called first to determine how much memory is needed (MemEnd-(UINT8 *)0),
-// and then afterwards to set up all the pointers
-static INT32 MemIndex()
-{
- UINT8* Next; Next = Mem;
- Rom01 = Next; Next += 0x100000; // 68K program
- RomZ80 = Next; Next += 0x040000;
- CaveSpriteROM = Next; Next += 0x800000;
- CaveTileROM[0] = Next; Next += 0x100000; // Tile layer 0
- CaveTileROM[1] = Next; Next += 0x100000; // Tile layer 1
- CaveTileROM[2] = Next; Next += 0x100000; // Tile layer 2
- MSM6295ROM = Next; Next += 0x040000;
- MSM6295ROMSrc = Next; Next += 0x080000;
- DefaultEEPROM = Next; Next += 0x000080;
- RamStart = Next;
- Ram01 = Next; Next += 0x010000; // CPU #0 work RAM
- RamZ80 = Next; Next += 0x002000;
- CaveTileRAM[0] = Next; Next += 0x008000;
- CaveTileRAM[1] = Next; Next += 0x008000;
- CaveTileRAM[2] = Next; Next += 0x008000;
- CaveSpriteRAM = Next; Next += 0x010000;
- CavePalSrc = Next; Next += 0x001000; // palette
- RamEnd = Next;
- MemEnd = Next;
-
- return 0;
-}
-
-static void NibbleSwap1(UINT8* pData, INT32 nLen)
-{
- UINT8* pOrg = pData + nLen - 1;
- UINT8* pDest = pData + ((nLen - 1) << 1);
-
- for (INT32 i = 0; i < nLen; i++, pOrg--, pDest -= 2) {
- pDest[0] = *pOrg & 15;
- pDest[1] = *pOrg >> 4;
- }
-
- return;
-}
-
-static void NibbleSwap2(UINT8* pData, INT32 nLen)
-{
- UINT8* pOrg = pData + nLen - 1;
- UINT8* pDest = pData + ((nLen - 1) << 1);
-
- for (INT32 i = 0; i < nLen; i++, pOrg--, pDest -= 2) {
- pDest[1] = *pOrg & 15;
- pDest[0] = *pOrg >> 4;
- }
-
- return;
-}
-
-static INT32 LoadRoms()
-{
- BurnLoadRom(Rom01 + 1, 0, 2);
- BurnLoadRom(Rom01 + 0, 1, 2);
-
- BurnLoadRom(RomZ80, 2, 1);
-
- BurnLoadRom(CaveSpriteROM + 0x000000, 3, 1);
- BurnLoadRom(CaveSpriteROM + 0x200000, 4, 1);
- NibbleSwap1(CaveSpriteROM, 0x400000);
-
- BurnLoadRom(CaveTileROM[0], 5, 1);
- NibbleSwap2(CaveTileROM[0], 0x080000);
- BurnLoadRom(CaveTileROM[1], 6, 1);
- NibbleSwap2(CaveTileROM[1], 0x080000);
- BurnLoadRom(CaveTileROM[2], 7, 1);
- NibbleSwap2(CaveTileROM[2], 0x080000);
-
- // Load MSM6295 ADPCM data
- BurnLoadRom(MSM6295ROMSrc, 8, 1);
-
- BurnLoadRom(DefaultEEPROM, 9, 1);
-
- return 0;
-}
-
-// Scan ram
-static INT32 DrvScan(INT32 nAction, INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin) { // Return minimum compatible version
- *pnMin = 0x029719;
- }
-
- EEPROMScan(nAction, pnMin); // Scan EEPROM
-
- if (nAction & ACB_VOLATILE) { // Scan volatile ram
-
- memset(&ba, 0, sizeof(ba));
- ba.Data = RamStart;
- ba.nLen = RamEnd - RamStart;
- ba.szName = "RAM";
- BurnAcb(&ba);
-
- SekScan(nAction);
- ZetScan(nAction);
-
- BurnYM2203Scan(nAction, pnMin);
- MSM6295Scan(0, nAction);
-
- SCAN_VAR(nVideoIRQ);
- SCAN_VAR(nSoundIRQ);
- SCAN_VAR(nUnknownIRQ);
- SCAN_VAR(bVBlank);
-
- CaveScanGraphics();
-
- SCAN_VAR(DrvInput);
- SCAN_VAR(DrvSoundLatch);
- SCAN_VAR(DrvZ80Bank);
- SCAN_VAR(DrvOkiBank1);
- SCAN_VAR(DrvOkiBank2);
-
- if (nAction & ACB_WRITE) {
- ZetOpen(0);
- ZetMapArea(0x4000, 0x7FFF, 0, RomZ80 + (DrvZ80Bank * 0x4000));
- ZetMapArea(0x4000, 0x7FFF, 2, RomZ80 + (DrvZ80Bank * 0x4000));
- ZetClose();
-
- memcpy(MSM6295ROM + 0x00000, MSM6295ROMSrc + 0x20000 * DrvOkiBank1, 0x20000);
- memcpy(MSM6295ROM + 0x20000, MSM6295ROMSrc + 0x20000 * DrvOkiBank2, 0x20000);
-
- CaveRecalcPalette = 1;
- }
- }
-
- return 0;
-}
-
-static void DrvFMIRQHandler(INT32, INT32 nStatus)
-{
- if (nStatus & 1) {
- ZetSetIRQLine(0xff, CPU_IRQSTATUS_ACK);
- } else {
- ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
- }
-}
-
-static INT32 DrvSynchroniseStream(INT32 nSoundRate)
-{
- return (INT64)ZetTotalCycles() * nSoundRate / 4000000;
-}
-
-static double DrvGetTime()
-{
- return (double)ZetTotalCycles() / 4000000;
-}
-
-static INT32 drvZInit()
-{
- ZetInit(0);
- ZetOpen(0);
-
- ZetSetInHandler(hotdogstZIn);
- ZetSetOutHandler(hotdogstZOut);
- ZetSetReadHandler(hotdogstZRead);
- ZetSetWriteHandler(hotdogstZWrite);
-
- // ROM bank 1
- ZetMapArea (0x0000, 0x3FFF, 0, RomZ80 + 0x0000); // Direct Read from ROM
- ZetMapArea (0x0000, 0x3FFF, 2, RomZ80 + 0x0000); // Direct Fetch from ROM
- // ROM bank 2
- ZetMapArea (0x4000, 0x7FFF, 0, RomZ80 + 0x4000); // Direct Read from ROM
- ZetMapArea (0x4000, 0x7FFF, 2, RomZ80 + 0x4000); //
- // RAM
- ZetMapArea (0xE000, 0xFFFF, 0, RamZ80); // Direct Read from RAM
- ZetMapArea (0xE000, 0xFFFF, 1, RamZ80); // Direct Write to RAM
- ZetMapArea (0xE000, 0xFFFF, 2, RamZ80); //
- ZetClose();
-
- return 0;
-}
-
-static INT32 DrvInit()
-{
- INT32 nLen;
-
- BurnSetRefreshRate(CAVE_REFRESHRATE);
-
- // Find out how much memory is needed
- Mem = NULL;
- MemIndex();
- nLen = MemEnd - (UINT8 *)0;
- if ((Mem = (UINT8 *)BurnMalloc(nLen)) == NULL) {
- return 1;
- }
- memset(Mem, 0, nLen); // blank all memory
- MemIndex(); // Index the allocated memory
-
- // Load the roms into memory
- if (LoadRoms()) {
- return 1;
- }
-
- EEPROMInit(&eeprom_interface_93C46);
- if (!EEPROMAvailable()) EEPROMFill(DefaultEEPROM,0, 0x80);
-
- {
- SekInit(0, 0x68000); // Allocate 68000
- SekOpen(0);
-
- // Map 68000 memory:
- SekMapMemory(Rom01, 0x000000, 0x0FFFFF, MAP_ROM); // CPU 0 ROM
- SekMapMemory(Ram01, 0x300000, 0x30FFFF, MAP_RAM);
- SekMapMemory(CavePalSrc, 0x408000, 0x408FFF, MAP_RAM); // Palette RAM
- SekMapMemory(CaveTileRAM[0], 0x880000, 0x887FFF, MAP_RAM);
- SekMapMemory(CaveTileRAM[1], 0x900000, 0x907FFF, MAP_RAM);
- SekMapMemory(CaveTileRAM[2], 0x980000, 0x987FFF, MAP_RAM);
- SekMapMemory(CaveSpriteRAM, 0xf00000, 0xf0fFFF, MAP_RAM);
-
- SekSetReadByteHandler(0, hotdogstReadByte);
- SekSetWriteByteHandler(0, hotdogstWriteByte);
- SekSetReadWordHandler(0, hotdogstReadWord);
- SekSetWriteWordHandler(0, hotdogstWriteWord);
- SekClose();
- }
-
- drvZInit();
-
- CavePalInit(0x8000);
- CaveTileInit();
- CaveSpriteInit(2, 0x0800000);
- CaveTileInitLayer(0, 0x100000, 8, 0);
- CaveTileInitLayer(1, 0x100000, 8, 0);
- CaveTileInitLayer(2, 0x100000, 8, 0);
-
- nCaveExtraXOffset = -32;
- nCaveExtraYOffset = 32;
-
- BurnYM2203Init(1, 4000000, &DrvFMIRQHandler, DrvSynchroniseStream, DrvGetTime, 0);
- BurnTimerAttachZet(4000000);
- BurnYM2203SetRoute(0, BURN_SND_YM2203_YM2203_ROUTE, 0.80, BURN_SND_ROUTE_BOTH);
- BurnYM2203SetRoute(0, BURN_SND_YM2203_AY8910_ROUTE_1, 0.20, BURN_SND_ROUTE_BOTH);
- BurnYM2203SetRoute(0, BURN_SND_YM2203_AY8910_ROUTE_2, 0.20, BURN_SND_ROUTE_BOTH);
- BurnYM2203SetRoute(0, BURN_SND_YM2203_AY8910_ROUTE_3, 0.20, BURN_SND_ROUTE_BOTH);
-
- memcpy(MSM6295ROM, MSM6295ROMSrc, 0x40000);
- MSM6295Init(0, 1056000 / 132, 1);
- MSM6295SetRoute(0, 1.00, BURN_SND_ROUTE_BOTH);
-
- bDrawScreen = true;
-
- DrvDoReset(); // Reset machine
-
- return 0;
-}
-
-// Rom information
-static struct BurnRomInfo hotdogstRomDesc[] = {
- { "mp3.u29", 0x080000, 0x1f4e5479, BRF_ESS | BRF_PRG }, // 0 CPU #0 code
- { "mp4.u28", 0x080000, 0x6f1c3c4b, BRF_ESS | BRF_PRG }, // 1
-
- { "mp2.u19", 0x040000, 0xff979ebe, BRF_ESS | BRF_PRG }, // 2 Z80 Code
-
- { "mp9.u55", 0x200000, 0x258d49ec, BRF_GRA }, // 3 Sprite data
- { "mp8.u54", 0x200000, 0xbdb4d7b8, BRF_GRA }, // 4
-
- { "mp7.u56", 0x080000, 0x87c21c50, BRF_GRA }, // 5 Layer 0 Tile data
- { "mp6.u61", 0x080000, 0x4dafb288, BRF_GRA }, // 6 Layer 1 Tile data
- { "mp5.u64", 0x080000, 0x9b26458c, BRF_GRA }, // 7 Layer 2 Tile data
-
- { "mp1.u65", 0x080000, 0x4868be1b, BRF_SND }, // 8 MSM6295 #1 ADPCM data
-
- { "eeprom-hotdogst.bin", 0x0080, 0x12b4f934, BRF_ESS | BRF_PRG },
-};
-
-
-STD_ROM_PICK(hotdogst)
-STD_ROM_FN(hotdogst)
-
-struct BurnDriver BurnDrvhotdogst = {
- "hotdogst", NULL, NULL, NULL, "1996",
- "Hotdog Storm - The First Supersonics (International)\0", NULL, "Marble / ACE International", "Cave",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_16BIT_ONLY | BDF_HISCORE_SUPPORTED, 2, HARDWARE_CAVE_68K_Z80, GBF_VERSHOOT, 0,
- NULL, hotdogstRomInfo, hotdogstRomName, NULL, NULL, hotdogstInputInfo, NULL,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan,
- &CaveRecalcPalette, 0x8000, 240, 384, 3, 4
-};
diff --git a/jan/src/burn/drv/cave/d_korokoro.cpp b/jan/src/burn/drv/cave/d_korokoro.cpp
deleted file mode 100644
index e20839b35..000000000
--- a/jan/src/burn/drv/cave/d_korokoro.cpp
+++ /dev/null
@@ -1,734 +0,0 @@
-// Koro Koro Quest & Crusher Makochan
-#include "cave.h"
-#include "ymz280b.h"
-
-#define CAVE_VBLANK_LINES 12
-
-static UINT8 DrvJoy1[16] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
-static UINT8 DrvJoy2[16] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
-static UINT8 DrvDip[1];
-static UINT16 DrvInput[2] = {0x0000, 0x0000};
-
-static UINT8 *Mem = NULL, *MemEnd = NULL;
-static UINT8 *RamStart, *RamEnd;
-static UINT8 *Rom01;
-static UINT8 *Ram01;
-
-static UINT8 DrvReset = 0;
-static UINT8 bDrawScreen;
-static bool bVBlank;
-
-static INT32 korokoro_hopper = 0;
-
-static INT8 nVideoIRQ;
-static INT8 nSoundIRQ;
-static INT8 nUnknownIRQ;
-
-static INT8 nIRQPending;
-
-static INT32 nCurrentCPU;
-static INT32 nCyclesDone[2];
-static INT32 nCyclesTotal[2];
-static INT32 nCyclesSegment;
-
-static const eeprom_interface eeprom_interface_93C46_8bit =
-{
- 7, // address bits 7
- 8, // data bits 8
- "*110", // read 1 10 aaaaaa
- "*101", // write 1 01 aaaaaa dddddddddddddddd
- "*111", // erase 1 11 aaaaaa
- "*10000xxxx", // lock 1 00 00xxxx
- "*10011xxxx", // unlock 1 00 11xxxx
- 1,
- 0
-};
-
-static struct BurnInputInfo KorokoroInputList[] = {
- {"Coin 1", BIT_DIGITAL, DrvJoy1 + 0, "p1 coin" },
- {"Coin 2", BIT_DIGITAL, DrvJoy1 + 1, "p2 coin" },
- {"Coin 3", BIT_DIGITAL, DrvJoy1 + 2, "p3 coin" },
- {"Button 1", BIT_DIGITAL, DrvJoy1 + 3, "p1 fire 1" },
- {"Button 2", BIT_DIGITAL, DrvJoy1 + 4, "p1 fire 2" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service", BIT_DIGITAL, DrvJoy1 + 14, "service" },
- {"Service", BIT_DIGITAL, DrvJoy1 + 12, "service" },
- {"Dip A", BIT_DIPSWITCH, DrvDip + 0, "dip" },
-};
-
-STDINPUTINFO(Korokoro)
-
-static struct BurnDIPInfo KorokoroDIPList[]=
-{
- {0x08, 0xff, 0xff, 0x20, NULL },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x08, 0x01, 0x20, 0x00, "On" },
- {0x08, 0x01, 0x20, 0x20, "Off" },
-};
-
-STDDIPINFO(Korokoro)
-
-static void UpdateIRQStatus()
-{
- nIRQPending = (nVideoIRQ == 0 || nSoundIRQ == 0 || nUnknownIRQ == 0);
-
- SekSetIRQLine(2, nIRQPending ? CPU_IRQSTATUS_ACK : CPU_IRQSTATUS_NONE);
-}
-
-UINT8 __fastcall korokoroReadByte(UINT32 sekAddress)
-{
- switch (sekAddress)
- {
- case 0x1c0000:
- case 0x1c0001:
- case 0x300000:
- case 0x300001:
- return (nUnknownIRQ << 1) | nVideoIRQ | (bVBlank ? 0 : 4);
-
- case 0x1c0002:
- case 0x1c0003:
- case 0x300002:
- case 0x300003:
- return (nUnknownIRQ << 1) | nVideoIRQ;
-
- case 0x1c0004:
- case 0x1c0005:
- case 0x300004:
- case 0x300005:
- nVideoIRQ = 1;
- UpdateIRQStatus();
- return (nUnknownIRQ << 1) | nVideoIRQ;
-
- case 0x1c0006:
- case 0x1c0007:
- case 0x300006:
- case 0x300007:
- nUnknownIRQ = 1;
- UpdateIRQStatus();
- return (nUnknownIRQ << 1) | nVideoIRQ;
-
- case 0x280000:
- return ((DrvInput[0] >> 8) & 0x5F) | (korokoro_hopper ? 0x00 : 0x80) | (DrvDip[0] & 0x20);
-
- case 0x280001:
- return DrvInput[0] & 0xFF;
-
- case 0x280002:
- return ((DrvInput[1] >> 8) & 0xEF) | (EEPROMRead() ? 0x10 : 0x00);
-
- case 0x280003:
- return DrvInput[1] & 0xFF;
-
-// default:
-// bprintf(PRINT_NORMAL, "Attempt to read byte value of location %x\n", sekAddress);
- }
-
- return 0;
-}
-
-UINT16 __fastcall korokoroReadWord(UINT32 sekAddress)
-{
- switch (sekAddress) {
- case 0x1c0000:
- case 0x300000:
- return (nUnknownIRQ << 1) | nVideoIRQ | (bVBlank ? 4 : 0);
-
- case 0x1c0002:
- case 0x300002:
- return (nUnknownIRQ << 1) | nVideoIRQ;
-
- case 0x1c0004:
- case 0x300004:
- nVideoIRQ = 1;
- UpdateIRQStatus();
- return (nUnknownIRQ << 1) | nVideoIRQ;
-
- case 0x1c0006:
- case 0x300006:
- nUnknownIRQ = 1;
- UpdateIRQStatus();
- return (nUnknownIRQ << 1) | nVideoIRQ;
-
- case 0x280000:
- return (DrvInput[0] & 0x5FFF) | (korokoro_hopper ? 0x0000 : 0x8000) | ((DrvDip[0] & 0x20) << 8);
-
- case 0x280002:
- return (DrvInput[1] & 0xEFFF) | ((EEPROMRead() & 1) ? 0x1000 : 0x0000);
-
-// default:
-// bprintf(PRINT_NORMAL, "Attempt to read word value of location %x\n", sekAddress);
- }
- return 0;
-}
-
-void __fastcall korokoroWriteByte(UINT32 sekAddress, UINT8 byteValue)
-{
- switch (sekAddress) {
- case 0x240001:
- YMZ280BSelectRegister(byteValue);
- break;
-
- case 0x240003:
- YMZ280BWriteRegister(byteValue);
- break;
-
- case 0x280008:
- case 0x280009:
- // leds
- break;
-
- case 0x28000a:
- korokoro_hopper = byteValue & 0x01;
- EEPROMWrite(byteValue & 0x20, byteValue & 0x10, byteValue & 0x40);
- break;
-
-// default:
-// bprintf(PRINT_NORMAL, "Attempt to write byte value %x to location %x\n", byteValue, sekAddress);
- }
-}
-
-void __fastcall korokoroWriteWord(UINT32 sekAddress, UINT16 wordValue)
-{
- switch (sekAddress) {
- case 0x140000:
- CaveTileReg[0][0] = wordValue;
- break;
- case 0x140002:
- CaveTileReg[0][1] = wordValue;
- break;
- case 0x140004:
- CaveTileReg[0][2] = wordValue;
- break;
-
- case 0x1c0000:
- case 0x300000:
- nCaveXOffset = wordValue;
- return;
-
- case 0x1c0002:
- case 0x300002:
- nCaveYOffset = wordValue;
- return;
-
- case 0x1c0008:
- case 0x300008:
- CaveSpriteBuffer();
- nCaveSpriteBank = wordValue;
- return;
-
- case 0x240000:
- YMZ280BSelectRegister(wordValue & 0xff);
- break;
-
- case 0x240002:
- YMZ280BWriteRegister(wordValue & 0xff);
- break;
-
- case 0x280008:
- return;
-
- case 0x28000a: {
- wordValue >>= 8;
- korokoro_hopper = wordValue & 0x01;
- EEPROMWrite(wordValue & 0x20, wordValue & 0x10, wordValue & 0x40);
- break;
- }
-
-// default:
-// bprintf(PRINT_NORMAL, "Attempt to write word value %x to location %x\n", wordValue, sekAddress);
- }
-}
-
-static void TriggerSoundIRQ(INT32 nStatus)
-{
- nSoundIRQ = nStatus ^ 1;
- UpdateIRQStatus();
-
- if (nIRQPending && nCurrentCPU != 0) {
- nCyclesDone[0] += SekRun(0x0400);
- }
-}
-
-static INT32 DrvExit()
-{
- YMZ280BExit();
-
- EEPROMExit();
-
- CaveTileExit();
- CaveSpriteExit();
- CavePalExit();
-
- SekExit(); // Deallocate 68000s
-
- BurnFree(Mem);
-
- return 0;
-}
-
-static INT32 DrvDoReset()
-{
- SekOpen(0);
- SekReset();
- SekClose();
-
- EEPROMReset();
-
- YMZ280BReset();
-
- nVideoIRQ = 1;
- nSoundIRQ = 1;
- nUnknownIRQ = 1;
-
- nIRQPending = 0;
-
- return 0;
-}
-
-inline static UINT32 CalcCol(UINT16 nColour)
-{
- INT32 r, g, b;
-
- r = (nColour & 0x03E0) >> 2; // Red
- r |= r >> 5;
- g = (nColour & 0x7C00) >> 7; // Green
- g |= g >> 5;
- b = (nColour & 0x001F) << 3; // Blue
- b |= b >> 5;
-
- return BurnHighCol(r, g, b, 0);
-}
-
-static void KorokoroPaletteUpdate()
-{
- for (INT32 color = 0; color < 0x40; color++) {
- for (INT32 pen = 0; pen < 0x10; pen++) {
- CavePalette[(color << 8) | pen] = CalcCol(*(UINT16*)(CavePalSrc + ((0x3c00 | (color << 4) | pen)*2)));
- }
-
- for (INT32 pen = 0x10; pen < 0x100; pen++) {
- CavePalette[(color << 8) | pen] = CalcCol(*(UINT16*)(CavePalSrc + ((0x0000 | (color << 8) | pen)*2)));
- }
- }
-
- for (INT32 color = 0; color < 0x4000; color++) {
- CavePalette[color+0x4000] = CalcCol(*(UINT16*)(CavePalSrc + color*2));
- }
-
- pBurnDrvPalette = CavePalette;
-}
-
-static INT32 DrvDraw()
-{
- KorokoroPaletteUpdate(); // Update the palette
- CaveClearScreen(CavePalette[0x3F00]);
-
- CaveSpriteBuffer();
-
- if (bDrawScreen) {
- CaveTileRender(1); // Render tiles
- }
-
- return 0;
-}
-
-inline static INT32 CheckSleep(INT32)
-{
- return 0;
-}
-
-static INT32 DrvFrame()
-{
- INT32 nCyclesVBlank;
- INT32 nInterleave = 8;
-
- if (DrvReset) { // Reset machine
- DrvDoReset();
- }
-
- // Compile digital inputs
- DrvInput[0] = 0; // Player 1
- DrvInput[1] = 0; // Player 2
- for (INT32 i = 0; i < 16; i++) {
- DrvInput[0] |= (DrvJoy1[i] & 1) << i;
- DrvInput[1] |= (DrvJoy2[i] & 1) << i;
- }
- CaveClearOpposites(&DrvInput[0]);
- CaveClearOpposites(&DrvInput[1]);
- DrvInput[0] ^= 0xffff;
- DrvInput[1] ^= 0xffff;
-
- SekNewFrame();
-
- nCyclesTotal[0] = (INT32)((INT64)16000000 * nBurnCPUSpeedAdjust / (0x0100 * CAVE_REFRESHRATE));
- nCyclesDone[0] = 0;
-
- nCyclesVBlank = nCyclesTotal[0] - (INT32)((nCyclesTotal[0] * CAVE_VBLANK_LINES) / 271.5);
- bVBlank = false;
-
- INT32 nSoundBufferPos = 0;
-
- SekOpen(0);
-
- for (INT32 i = 1; i <= nInterleave; i++) {
- INT32 nNext;
-
- // Render sound segment
- if ((i & 1) == 0) {
- if (pBurnSoundOut) {
- INT32 nSegmentEnd = nBurnSoundLen * i / nInterleave;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- YMZ280BRender(pSoundBuf, nSegmentEnd - nSoundBufferPos);
- nSoundBufferPos = nSegmentEnd;
- }
- }
-
- // Run 68000
- nCurrentCPU = 0;
- nNext = i * nCyclesTotal[nCurrentCPU] / nInterleave;
-
- // See if we need to trigger the VBlank interrupt
- if (!bVBlank && nNext > nCyclesVBlank) {
- if (nCyclesDone[nCurrentCPU] < nCyclesVBlank) {
- nCyclesSegment = nCyclesVBlank - nCyclesDone[nCurrentCPU];
- if (!CheckSleep(nCurrentCPU)) { // See if this CPU is busywaiting
- nCyclesDone[nCurrentCPU] += SekRun(nCyclesSegment);
- } else {
- nCyclesDone[nCurrentCPU] += SekIdle(nCyclesSegment);
- }
- }
-
- if (pBurnDraw != NULL) {
- DrvDraw(); // Draw screen if needed
- }
-
- bVBlank = true;
- nVideoIRQ = 0;
- UpdateIRQStatus();
- }
-
- nCyclesSegment = nNext - nCyclesDone[nCurrentCPU];
- if (!CheckSleep(nCurrentCPU)) { // See if this CPU is busywaiting
- nCyclesDone[nCurrentCPU] += SekRun(nCyclesSegment);
- } else {
- nCyclesDone[nCurrentCPU] += SekIdle(nCyclesSegment);
- }
-
- nCurrentCPU = -1;
- }
-
- {
- // Make sure the buffer is entirely filled.
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- if (nSegmentLength) {
- YMZ280BRender(pSoundBuf, nSegmentLength);
- }
- }
- }
-
- SekClose();
-
- return 0;
-}
-
-static INT32 DrvScan(INT32 nAction, INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin) { // Return minimum compatible version
- *pnMin = 0x020902;
- }
-
- EEPROMScan(nAction, pnMin); // Scan EEPROM
-
- if (nAction & ACB_VOLATILE) { // Scan volatile ram
-
- memset(&ba, 0, sizeof(ba));
- ba.Data = RamStart;
- ba.nLen = RamEnd - RamStart;
- ba.szName = "RAM";
- BurnAcb(&ba);
-
- SekScan(nAction); // scan 68000 states
-
- YMZ280BScan();
-
- SCAN_VAR(nVideoIRQ);
- SCAN_VAR(nSoundIRQ);
- SCAN_VAR(nUnknownIRQ);
- SCAN_VAR(bVBlank);
-
- SCAN_VAR(korokoro_hopper);
-
- CaveScanGraphics();
- }
-
- return 0;
-}
-
-static INT32 MemIndex()
-{
- UINT8* Next; Next = Mem;
-
- Rom01 = Next; Next += 0x080000; // 68K program
- CaveSpriteROM = Next; Next += 0x400000;
- CaveTileROM[0] = Next; Next += 0x200000; // Tile layer 0
- YMZ280BROM = Next; Next += 0x200000;
-
- RamStart = Next;
-
- Ram01 = Next; Next += 0x010000; // CPU #0 work RAM
- CaveTileRAM[0] = Next; Next += 0x008000;
- CaveSpriteRAM = Next; Next += 0x010000;
- CavePalSrc = Next; Next += 0x010000; // palette
-
- RamEnd = Next;
-
- MemEnd = Next;
-
- return 0;
-}
-
-static void NibbleSwap1(UINT8* pData, INT32 nLen)
-{
- UINT8* pOrg = pData + nLen - 1;
- UINT8* pDest = pData + ((nLen - 1) << 1);
-
- for (INT32 i = 0; i < nLen; i++, pOrg--, pDest -= 2) {
- pDest[0] = *pOrg & 15;
- pDest[1] = *pOrg >> 4;
- }
-
- return;
-}
-
-static void NibbleSwap2(UINT8* pData, INT32 nLen)
-{
- UINT8* pOrg = pData + nLen - 1;
- UINT8* pDest = pData + ((nLen - 1) << 1);
-
- for (INT32 i = 0; i < nLen; i++, pOrg--, pDest -= 2) {
- pDest[1] = *pOrg & 15;
- pDest[0] = *pOrg >> 4;
- }
-
- return;
-}
-
-static INT32 LoadRoms()
-{
- // Load 68000 ROM
- BurnLoadRom(Rom01 + 0, 0, 1);
-
- BurnLoadRom(CaveSpriteROM + 0x0000000, 1, 1);
- BurnLoadRom(CaveSpriteROM + 0x0100000, 2, 1);
- NibbleSwap1(CaveSpriteROM + 0x0000000, 0x180000);
-
- BurnLoadRom(CaveTileROM[0] + 0x000000, 3, 1);
- NibbleSwap2(CaveTileROM[0], 0x100000);
-
- // Load YMZ280B data
- BurnLoadRom(YMZ280BROM, 4, 1);
-
- return 0;
-}
-
-static INT32 DrvInit()
-{
- INT32 nLen;
-
- BurnSetRefreshRate(CAVE_REFRESHRATE);
-
- // Find out how much memory is needed
- Mem = NULL;
- MemIndex();
- nLen = MemEnd - (UINT8 *)0;
- if ((Mem = (UINT8 *)BurnMalloc(nLen)) == NULL) {
- return 1;
- }
- memset(Mem, 0, nLen); // blank all memory
- MemIndex(); // Index the allocated memory
-
- // Load the roms into memory
- if (LoadRoms()) {
- return 1;
- }
-
- EEPROMInit(&eeprom_interface_93C46_8bit);
-
- {
-
- SekInit(0, 0x68000); // Allocate 68000
- SekOpen(0);
-
- // Map 68000 memory:
- SekMapMemory(Rom01, 0x000000, 0x07FFFF, MAP_ROM); // CPU 0 ROM
- SekMapMemory(CaveTileRAM[0], 0x100000, 0x107FFF, MAP_RAM);
- SekMapMemory(CaveSpriteRAM, 0x180000, 0x187FFF, MAP_RAM);
- SekMapMemory(CavePalSrc, 0x200000, 0x207FFF, MAP_RAM);
- SekMapMemory(Ram01, 0x300000, 0x30FFFF, MAP_RAM);
-
- SekSetReadWordHandler(0, korokoroReadWord);
- SekSetReadByteHandler(0, korokoroReadByte);
- SekSetWriteWordHandler(0, korokoroWriteWord);
- SekSetWriteByteHandler(0, korokoroWriteByte);
-
- SekClose();
- }
-
- nCaveRowModeOffset = 1;
-
- CavePalInit(0x8000);
- CaveTileInit();
- CaveSpriteInit(1, 0x300000);
- CaveTileInitLayer(0, 0x200000, 4, 0x4400);
-
- YMZ280BInit(16934400, &TriggerSoundIRQ, 0x100000);
- YMZ280BSetRoute(BURN_SND_YMZ280B_YMZ280B_ROUTE_1, 1.00, BURN_SND_ROUTE_LEFT);
- YMZ280BSetRoute(BURN_SND_YMZ280B_YMZ280B_ROUTE_2, 1.00, BURN_SND_ROUTE_RIGHT);
-
- bDrawScreen = true;
-
- DrvDoReset(); // Reset machine
-
- return 0;
-}
-
-static INT32 crushermLoadRoms()
-{
- // Load 68000 ROM
- BurnLoadRom(Rom01 + 0, 0, 1);
-
- BurnLoadRom(CaveSpriteROM + 0x0000000, 1, 1);
- BurnLoadRom(CaveSpriteROM + 0x0100000, 2, 1);
- NibbleSwap1(CaveSpriteROM + 0x0000000, 0x200000);
-
- BurnLoadRom(CaveTileROM[0] + 0x000000, 3, 1);
- NibbleSwap2(CaveTileROM[0], 0x100000);
-
- // Load YMZ280B data
- BurnLoadRom(YMZ280BROM + 0x000000, 4, 1);
- BurnLoadRom(YMZ280BROM + 0x100000, 5, 1);
-
- return 0;
-}
-
-static INT32 crushermInit()
-{
- INT32 nLen;
-
- BurnSetRefreshRate(CAVE_REFRESHRATE);
-
- // Find out how much memory is needed
- Mem = NULL;
- MemIndex();
- nLen = MemEnd - (UINT8 *)0;
- if ((Mem = (UINT8 *)BurnMalloc(nLen)) == NULL) {
- return 1;
- }
- memset(Mem, 0, nLen); // blank all memory
- MemIndex(); // Index the allocated memory
-
- // Load the roms into memory
- if (crushermLoadRoms()) {
- return 1;
- }
-
- EEPROMInit(&eeprom_interface_93C46_8bit);
-
- {
-
- SekInit(0, 0x68000); // Allocate 68000
- SekOpen(0);
-
- // Map 68000 memory:
- SekMapMemory(Rom01, 0x000000, 0x07FFFF, MAP_ROM); // CPU 0 ROM
- SekMapMemory(CaveTileRAM[0], 0x100000, 0x107FFF, MAP_RAM);
- SekMapMemory(CaveSpriteRAM, 0x180000, 0x187FFF, MAP_RAM);
- SekMapMemory(CavePalSrc, 0x200000, 0x207FFF, MAP_RAM);
- SekMapMemory(Ram01, 0x340000, 0x34FFFF, MAP_RAM);
-
- SekSetReadWordHandler(0, korokoroReadWord);
- SekSetReadByteHandler(0, korokoroReadByte);
- SekSetWriteWordHandler(0, korokoroWriteWord);
- SekSetWriteByteHandler(0, korokoroWriteByte);
-
- SekClose();
- }
-
- nCaveRowModeOffset = 1;
-
- CavePalInit(0x8000);
- CaveTileInit();
- CaveSpriteInit(1, 0x400000);
- CaveTileInitLayer(0, 0x200000, 4, 0x4400);
-
- YMZ280BInit(16934400, &TriggerSoundIRQ, 0x200000);
- YMZ280BSetRoute(BURN_SND_YMZ280B_YMZ280B_ROUTE_1, 1.00, BURN_SND_ROUTE_LEFT);
- YMZ280BSetRoute(BURN_SND_YMZ280B_YMZ280B_ROUTE_2, 1.00, BURN_SND_ROUTE_RIGHT);
-
- bDrawScreen = true;
-
- DrvDoReset(); // Reset machine
-
- return 0;
-}
-
-
-// Koro Koro Quest (Japan)
-
-static struct BurnRomInfo korokoroRomDesc[] = {
- { "mp-001_ver07.u0130", 0x080000, 0x86c7241f, BRF_ESS | BRF_PRG }, // 0 CPU #0 code
-
- { "mp-001_ver01.u1066", 0x100000, 0xc5c6af7e, BRF_GRA }, // 1 Sprite data
- { "mp-001_ver01.u1051", 0x080000, 0xfe5e28e8, BRF_GRA }, // 2
-
- { "mp-001_ver01.u1060", 0x100000, 0xec9cf9d8, BRF_GRA }, // 3 layer 0 Tile data
-
- { "mp-001_ver01.u1186", 0x100000, 0xd16e7c5d, BRF_SND }, // 4 YMZ280B (AD)PCM data
-};
-
-STD_ROM_PICK(korokoro)
-STD_ROM_FN(korokoro)
-
-struct BurnDriver BurnDrvKorokoro = {
- "korokoro", NULL, NULL, NULL, "1999",
- "Koro Koro Quest (Japan)\0", NULL, "Takumi", "Cave",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_CAVE_68K_ONLY, GBF_MISC, 0,
- NULL, korokoroRomInfo, korokoroRomName, NULL, NULL, KorokoroInputInfo, KorokoroDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan,
- &CaveRecalcPalette, 0x8000, 320, 240, 4, 3
-};
-
-
-// Crusher Makochan (Japan)
-
-static struct BurnRomInfo crushermRomDesc[] = {
- { "mp-003ver01.u0130", 0x080000, 0xa4f56e6b, BRF_ESS | BRF_PRG }, // 0 CPU #0 code
-
- { "mp-003ver01.u1067", 0x100000, 0x268a4921, BRF_GRA }, // 1 Sprite data
- { "mp-003ver01.u1066", 0x100000, 0x79e77a6e, BRF_GRA }, // 2
-
- { "mp-003ver01.u1060", 0x100000, 0x7661893e, BRF_GRA }, // 3 layer 0 Tile data
-
- { "mp-003ver01.u1186", 0x100000, 0xc3aeb745, BRF_SND }, // 4 YMZ280B (AD)PCM data
- { "mp-003ver01.u1187", 0x100000, 0xd9312497, BRF_SND }, // 5
-};
-
-STD_ROM_PICK(crusherm)
-STD_ROM_FN(crusherm)
-
-struct BurnDriver BurnDrvCrusherm = {
- "crusherm", NULL, NULL, NULL, "1999",
- "Crusher Makochan (Japan)\0", NULL, "Takumi", "Miscellaneous",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_CAVE_68K_ONLY, GBF_MISC, 0,
- NULL, crushermRomInfo, crushermRomName, NULL, NULL, KorokoroInputInfo, KorokoroDIPInfo,
- crushermInit, DrvExit, DrvFrame, DrvDraw, DrvScan,
- &CaveRecalcPalette, 0x8000, 320, 240, 4, 3
-};
diff --git a/jan/src/burn/drv/cave/d_mazinger.cpp b/jan/src/burn/drv/cave/d_mazinger.cpp
deleted file mode 100644
index e7d16770c..000000000
--- a/jan/src/burn/drv/cave/d_mazinger.cpp
+++ /dev/null
@@ -1,820 +0,0 @@
-// mazinger
-#include "cave.h"
-#include "msm6295.h"
-#include "burn_ym2203.h"
-#include "bitswap.h"
-
-#define CAVE_VBLANK_LINES 12
-
-static UINT8 DrvJoy1[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
-static UINT8 DrvJoy2[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
-static UINT16 DrvInput[2] = {0x0000, 0x0000};
-
-static UINT8 *Mem = NULL, *MemEnd = NULL;
-static UINT8 *RamStart, *RamEnd;
-static UINT8 *Rom01, *RomZ80;
-static UINT8 *Ram01, *RamZ80;
-static UINT8 *MSM6295ROMSrc;
-static UINT8 *DefEEPROM = NULL;
-
-static UINT8 DrvReset = 0;
-static UINT8 bDrawScreen;
-static bool bVBlank;
-
-static INT8 nVideoIRQ;
-static INT8 nSoundIRQ;
-static INT8 nUnknownIRQ;
-
-static INT8 nIRQPending;
-
-static INT32 nCyclesTotal[2];
-static INT32 nCyclesDone[2];
-
-static INT32 SoundLatch;
-static INT32 SoundLatchReply[48];
-static INT32 SoundLatchStatus;
-
-static INT32 SoundLatchReplyIndex;
-static INT32 SoundLatchReplyMax;
-
-static UINT8 DrvZ80Bank;
-static UINT8 DrvOkiBank1;
-static UINT8 DrvOkiBank2;
-
-static struct BurnInputInfo mazingerInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy1 + 8, "p1 coin"},
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 7, "p1 start"},
-
- {"P1 Up", BIT_DIGITAL, DrvJoy1 + 0, "p1 up"},
- {"P1 Down", BIT_DIGITAL, DrvJoy1 + 1, "p1 down"},
- {"P1 Left", BIT_DIGITAL, DrvJoy1 + 2, "p1 left"},
- {"P1 Right", BIT_DIGITAL, DrvJoy1 + 3, "p1 right"},
- {"P1 Button 1", BIT_DIGITAL, DrvJoy1 + 4, "p1 fire 1"},
- {"P1 Button 2", BIT_DIGITAL, DrvJoy1 + 5, "p1 fire 2"},
- {"P1 Button 3", BIT_DIGITAL, DrvJoy1 + 6, "p1 fire 3"},
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy2 + 8, "p2 coin"},
- {"P2 Start", BIT_DIGITAL, DrvJoy2 + 7, "p2 start"},
-
- {"P2 Up", BIT_DIGITAL, DrvJoy2 + 0, "p2 up"},
- {"P2 Down", BIT_DIGITAL, DrvJoy2 + 1, "p2 down"},
- {"P2 Left", BIT_DIGITAL, DrvJoy2 + 2, "p2 left"},
- {"P2 Right", BIT_DIGITAL, DrvJoy2 + 3, "p2 right"},
- {"P2 Button 1", BIT_DIGITAL, DrvJoy2 + 4, "p2 fire 1"},
- {"P2 Button 2", BIT_DIGITAL, DrvJoy2 + 5, "p2 fire 2"},
- {"P2 Button 3", BIT_DIGITAL, DrvJoy2 + 6, "p2 fire 3"},
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset"},
- {"Diagnostics", BIT_DIGITAL, DrvJoy1 + 9, "diag"},
- {"Service", BIT_DIGITAL, DrvJoy2 + 9, "service"},
-};
-
-STDINPUTINFO(mazinger)
-
-static void UpdateIRQStatus()
-{
- nIRQPending = (nVideoIRQ == 0 || nSoundIRQ == 0 || nUnknownIRQ == 0);
- SekSetIRQLine(1, nIRQPending ? CPU_IRQSTATUS_ACK : CPU_IRQSTATUS_NONE);
-}
-
-UINT8 __fastcall mazingerReadByte(UINT32 sekAddress)
-{
- switch (sekAddress) {
- case 0x800002:
- return (DrvInput[1] ^ 0xF7) | (EEPROMRead() << 3);
- case 0x800003:
- return (DrvInput[1] & 0xFF) ^ 0xFF;
-
- default: {
- bprintf(PRINT_NORMAL, _T("Attempt to read byte value of location %x\n"), sekAddress);
- }
- }
- return 0;
-}
-
-void __fastcall mazingerWriteByte(UINT32 sekAddress, UINT8 byteValue)
-{
- switch (sekAddress) {
-
- case 0x900000:
- EEPROMWrite(byteValue & 0x04, byteValue & 0x02, byteValue & 0x08);
- break;
-
- default: {
- bprintf(PRINT_NORMAL, _T("Attempt to write byte value %x to location %x\n"), byteValue, sekAddress);
-
- }
- }
-}
-
-UINT16 __fastcall mazingerReadWord(UINT32 sekAddress)
-{
- switch (sekAddress) {
- case 0x300000:
- case 0x300002: {
- UINT8 nRet = (nUnknownIRQ << 1) | nVideoIRQ;
- return nRet;
- }
- case 0x300004: {
- UINT8 nRet = (nUnknownIRQ << 1) | nVideoIRQ;
- nVideoIRQ = 1;
- UpdateIRQStatus();
- return nRet;
- }
- case 0x300006: {
- UINT8 nRet = (nUnknownIRQ << 1) | nVideoIRQ;
- nUnknownIRQ = 1;
- UpdateIRQStatus();
- return nRet;
- }
-
- case 0x30006E:
- if (SoundLatchReplyIndex > SoundLatchReplyMax) {
- SoundLatchReplyIndex = 0;
- SoundLatchReplyMax = -1;
- return 0;
- }
- return SoundLatchReply[SoundLatchReplyIndex++];
-
- case 0x800000:
- return DrvInput[0] ^ 0xFFFF;
- case 0x800002:
- return (DrvInput[1] ^ 0xF7FF) | (EEPROMRead() << 11);
-
- default: {
- bprintf(PRINT_NORMAL, _T("Attempt to read word value of location %x\n"), sekAddress);
- }
- }
- return 0;
-}
-
-void __fastcall mazingerWriteWord(UINT32 sekAddress, UINT16 wordValue)
-{
- if (sekAddress >= 0x30000a && sekAddress <= 0x300066) return;
- if (sekAddress >= 0x30006a && sekAddress <= 0x30006c) return;
- if (sekAddress >= 0x300004 && sekAddress <= 0x300006) return;
-
- switch (sekAddress) {
- case 0x300000:
- nCaveXOffset = wordValue;
- return;
- case 0x300002:
- nCaveYOffset = wordValue;
- return;
-
- case 0x300008:
-// CaveSpriteBuffer();
- nCaveSpriteBank = wordValue;
- return;
- case 0x300068:
- // Watchdog reset(?)
- return;
- case 0x30006e:
- SoundLatch = wordValue;
- SoundLatchStatus |= 0x0C;
-
- ZetNmi();
- nCyclesDone[1] += ZetRun(0x0400);
- return;
-
- case 0x600000:
- CaveTileReg[1][0] = wordValue;
- break;
- case 0x600002:
- CaveTileReg[1][1] = wordValue;
- break;
- case 0x600004:
- CaveTileReg[1][2] = wordValue;
- break;
-
- case 0x700000:
- CaveTileReg[0][0] = wordValue;
- break;
- case 0x700002:
- CaveTileReg[0][1] = wordValue;
- break;
- case 0x700004:
- CaveTileReg[0][2] = wordValue;
- break;
-
- case 0x900000:
- wordValue >>= 8;
- EEPROMWrite(wordValue & 0x04, wordValue & 0x02, wordValue & 0x08);
- break;
-
- default: {
- bprintf(PRINT_NORMAL, _T("Attempt to write word value %x to location %x\n"), wordValue, sekAddress);
-
- }
- }
-}
-
-void __fastcall mazingerWriteBytePalette(UINT32 sekAddress, UINT8 byteValue)
-{
- CavePalWriteByte(sekAddress & 0xffff, byteValue);
-}
-
-void __fastcall mazingerWriteWordPalette(UINT32 sekAddress, UINT16 wordValue)
-{
- CavePalWriteWord(sekAddress & 0xffff, wordValue);
-}
-
-UINT8 __fastcall mazingerZIn(UINT16 nAddress)
-{
- nAddress &= 0xFF;
-
- switch (nAddress) {
- case 0x30: {
- SoundLatchStatus |= 0x04;
- return SoundLatch & 0xFF;
- }
-
- case 0x52: {
- return BurnYM2203Read(0, 0);
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 Port Read %x\n"), nAddress);
- }
- }
-
- return 0;
-}
-
-void __fastcall mazingerZOut(UINT16 nAddress, UINT8 nValue)
-{
- nAddress &= 0xFF;
-
- switch (nAddress) {
- case 0x00: {
- DrvZ80Bank = nValue & 0x07;
-
- ZetMapArea(0x4000, 0x7FFF, 0, RomZ80 + (DrvZ80Bank * 0x4000));
- ZetMapArea(0x4000, 0x7FFF, 2, RomZ80 + (DrvZ80Bank * 0x4000));
- return;
- }
-
- case 0x10:
- if (SoundLatchReplyIndex > SoundLatchReplyMax) {
- SoundLatchReplyMax = -1;
- SoundLatchReplyIndex = 0;
- }
- SoundLatchReplyMax++;
- SoundLatchReply[SoundLatchReplyMax] = nValue;
- break;
-
- case 0x50: {
- BurnYM2203Write(0, 0, nValue);
- return;
- }
-
- case 0x51: {
- BurnYM2203Write(0, 1, nValue);
- return;
- }
-
- case 0x70: {
- MSM6295Command(0, nValue);
- return;
- }
-
- case 0x74: {
- DrvOkiBank1 = (nValue >> 0) & 0x03;
- DrvOkiBank2 = (nValue >> 4) & 0x03;
-
- memcpy(MSM6295ROM + 0x00000, MSM6295ROMSrc + 0x20000 * DrvOkiBank1, 0x20000);
- memcpy(MSM6295ROM + 0x20000, MSM6295ROMSrc + 0x20000 * DrvOkiBank2, 0x20000);
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 Port Write %x, %x\n"), nAddress, nValue);
- }
- }
-}
-
-UINT8 __fastcall mazingerZRead(UINT16 a)
-{
- switch (a) {
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 Read => %04X\n"), a);
- }
- }
-
- return 0;
-}
-
-void __fastcall mazingerZWrite(UINT16 a, UINT8 d)
-{
- switch (a) {
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 Write => %04X, %02X\n"), a, d);
- }
- }
-}
-
-static INT32 DrvExit()
-{
- EEPROMExit();
-
- MSM6295Exit(0);
-
- CaveTileExit();
- CaveSpriteExit();
- CavePalExit();
-
- SekExit(); // Deallocate 68000s
- ZetExit();
-
- BurnYM2203Exit();
-
- SoundLatch = 0;
- DrvZ80Bank = 0;
- DrvOkiBank1 = 0;
- DrvOkiBank2 = 0;
-
- BurnFree(Mem);
-
- return 0;
-}
-
-static INT32 DrvDoReset()
-{
- SekOpen(0);
- SekReset();
- SekRun(10000); // Need to run for a bit and reset to make it start - Watchdog would force reset?
- SekReset();
- SekClose();
-
- ZetOpen(0);
- ZetReset();
- ZetClose();
-
- BurnYM2203Reset();
- MSM6295Reset(0);
-
- EEPROMReset();
-
- nVideoIRQ = 1;
- nSoundIRQ = 1;
- nUnknownIRQ = 1;
-
- nIRQPending = 0;
-
- SoundLatch = 0;
- DrvZ80Bank = 0;
- DrvOkiBank1 = 0;
- DrvOkiBank2 = 0;
-
- SoundLatch = 0;
- SoundLatchStatus = 0x0C;
-
- memset(SoundLatchReply, 0, sizeof(SoundLatchReply));
- SoundLatchReplyIndex = 0;
- SoundLatchReplyMax = -1;
-
- return 0;
-}
-
-static INT32 DrvDraw()
-{
- if (CaveRecalcPalette) {
- CavePalUpdate8Bit(0x4400, 12);
- CaveRecalcPalette = 1;
- }
- CavePalUpdate4Bit(0, 64);
-
- CaveClearScreen(CavePalette[0x3F00]);
-
- if (bDrawScreen) {
-// CaveGetBitmap();
-
- CaveTileRender(1); // Render tiles
- }
-
- return 0;
-}
-
-inline static INT32 CheckSleep(INT32)
-{
- return 0;
-}
-
-static INT32 DrvFrame()
-{
- INT32 nCyclesVBlank;
-
- INT32 nInterleave = 80;
-
- INT32 nCyclesSegment;
-
- if (DrvReset) { // Reset machine
- DrvDoReset();
- }
-
- // Compile digital inputs
- DrvInput[0] = 0x0000; // Player 1
- DrvInput[1] = 0x0000; // Player 2
- for (INT32 i = 0; i < 10; i++) {
- DrvInput[0] |= (DrvJoy1[i] & 1) << i;
- DrvInput[1] |= (DrvJoy2[i] & 1) << i;
- }
- CaveClearOpposites(&DrvInput[0]);
- CaveClearOpposites(&DrvInput[1]);
-
- SekNewFrame();
- ZetNewFrame();
-
- SekOpen(0);
- ZetOpen(0);
-
- nCyclesTotal[0] = (INT32)((INT64)16000000 * nBurnCPUSpeedAdjust / (0x0100 * CAVE_REFRESHRATE));
- nCyclesTotal[1] = (INT32)(4000000 / CAVE_REFRESHRATE);
- nCyclesDone[0] = nCyclesDone[1] = 0;
-
- nCyclesVBlank = nCyclesTotal[0] - (INT32)((nCyclesTotal[0] * CAVE_VBLANK_LINES) / 271.5);
- bVBlank = false;
-
- for (INT32 i = 1; i <= nInterleave; i++) {
- INT32 nCurrentCPU = 0;
- INT32 nNext = i * nCyclesTotal[nCurrentCPU] / nInterleave;
-
- // Run 68000
-
- // See if we need to trigger the VBlank interrupt
- if (!bVBlank && nNext > nCyclesVBlank) {
- if (nCyclesDone[nCurrentCPU] < nCyclesVBlank) {
- nCyclesSegment = nCyclesVBlank - nCyclesDone[nCurrentCPU];
- if (!CheckSleep(nCurrentCPU)) { // See if this CPU is busywaiting
- nCyclesDone[nCurrentCPU] += SekRun(nCyclesSegment);
- } else {
- nCyclesDone[nCurrentCPU] += SekIdle(nCyclesSegment);
- }
- }
-
- if (pBurnDraw != NULL) {
- DrvDraw(); // Draw screen if needed
- }
-
- CaveSpriteBuffer();
- UINT8 Temp = nCaveSpriteBank;
- nCaveSpriteBank = nCaveSpriteBankDelay;
- nCaveSpriteBankDelay = Temp;
-
- bVBlank = true;
- nVideoIRQ = 0;
- nUnknownIRQ = 0;
- UpdateIRQStatus();
- }
-
- nCyclesSegment = nNext - nCyclesDone[nCurrentCPU];
- if (!CheckSleep(nCurrentCPU)) { // See if this CPU is busywaiting
- nCyclesDone[nCurrentCPU] += SekRun(nCyclesSegment);
- } else {
- nCyclesDone[nCurrentCPU] += SekIdle(nCyclesSegment);
- }
-
- BurnTimerUpdate(i * (nCyclesTotal[1] / nInterleave));
- }
-
- SekClose();
-
- BurnTimerEndFrame(nCyclesTotal[1]);
-
- if (pBurnSoundOut) {
- BurnYM2203Update(pBurnSoundOut, nBurnSoundLen);
- MSM6295Render(0, pBurnSoundOut, nBurnSoundLen);
- }
-
- ZetClose();
-
- return 0;
-}
-
-// This routine is called first to determine how much memory is needed (MemEnd-(UINT8 *)0),
-// and then afterwards to set up all the pointers
-static INT32 MemIndex()
-{
- UINT8* Next; Next = Mem;
- Rom01 = Next; Next += 0x100000; // 68K program
- RomZ80 = Next; Next += 0x020000;
- CaveSpriteROM = Next; Next += 0x800000;
- CaveTileROM[0] = Next; Next += 0x400000; // Tile layer 0
- CaveTileROM[1] = Next; Next += 0x400000; // Tile layer 1
- MSM6295ROM = Next; Next += 0x040000;
- MSM6295ROMSrc = Next; Next += 0x080000;
- DefEEPROM = Next; Next += 0x000080;
- RamStart = Next;
- Ram01 = Next; Next += 0x010000; // CPU #0 work RAM
- RamZ80 = Next; Next += 0x001000;
- CaveTileRAM[0] = Next; Next += 0x008000;
- CaveTileRAM[1] = Next; Next += 0x008000;
- CaveSpriteRAM = Next; Next += 0x010000;
- CavePalSrc = Next; Next += 0x010000; // palette
- RamEnd = Next;
- MemEnd = Next;
-
- return 0;
-}
-
-static void NibbleSwap1(UINT8* pData, INT32 nLen)
-{
- UINT8* pOrg = pData + nLen - 1;
- UINT8* pDest = pData + ((nLen - 1) << 1);
-
- for (INT32 i = 0; i < nLen; i++, pOrg--, pDest -= 2) {
- pDest[0] = *pOrg & 15;
- pDest[1] = *pOrg >> 4;
- }
-
- return;
-}
-
-static void NibbleSwap2(UINT8* pData, INT32 nLen)
-{
- UINT8* pOrg = pData + nLen - 1;
- UINT8* pDest = pData + ((nLen - 1) << 1);
-
- for (INT32 i = 0; i < nLen; i++, pOrg--, pDest -= 2) {
- pDest[1] = *pOrg & 15;
- pDest[0] = *pOrg >> 4;
- }
-
- return;
-}
-
-static INT32 LoadRoms()
-{
- BurnLoadRom(Rom01 + 0x00000, 0, 1);
- BurnLoadRom(Rom01 + 0x80000, 1, 1);
-
- BurnLoadRom(RomZ80, 2, 1);
-
- UINT8 *pTemp = (UINT8*)BurnMalloc(0x400000);
- BurnLoadRom(pTemp + 0x000000, 3, 1);
- BurnLoadRom(pTemp + 0x200000, 4, 1);
- for (INT32 i = 0; i < 0x400000; i++) {
- CaveSpriteROM[i ^ 0xdf88] = pTemp[BITSWAP24(i,23,22,21,20,19,9,7,3,15,4,17,14,18,2,16,5,11,8,6,13,1,10,12,0)];
- }
- BurnFree(pTemp);
- NibbleSwap1(CaveSpriteROM, 0x400000);
-
- BurnLoadRom(CaveTileROM[0], 5, 1);
- NibbleSwap2(CaveTileROM[0], 0x200000);
-
- pTemp = (UINT8*)BurnMalloc(0x200000);
- BurnLoadRom(pTemp, 6, 1);
- for (INT32 i = 0; i < 0x0100000; i++) {
- CaveTileROM[1][(i << 1) + 1] = (pTemp[(i << 1) + 0] & 15) | ((pTemp[(i << 1) + 1] & 15) << 4);
- CaveTileROM[1][(i << 1) + 0] = (pTemp[(i << 1) + 0] >> 4) | (pTemp[(i << 1) + 1] & 240);
- }
- BurnFree(pTemp);
-
- // Load MSM6295 ADPCM data
- BurnLoadRom(MSM6295ROMSrc, 7, 1);
-
- BurnLoadRom(DefEEPROM, 8, 1);
-
- return 0;
-}
-
-// Scan ram
-static INT32 DrvScan(INT32 nAction, INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin) { // Return minimum compatible version
- *pnMin = 0x020902;
- }
-
- EEPROMScan(nAction, pnMin); // Scan EEPROM
-
- if (nAction & ACB_VOLATILE) { // Scan volatile ram
- memset(&ba, 0, sizeof(ba));
- ba.Data = RamStart;
- ba.nLen = RamEnd - RamStart;
- ba.szName = "RAM";
- BurnAcb(&ba);
-
- SekScan(nAction);
- ZetScan(nAction);
-
- BurnYM2203Scan(nAction, pnMin);
- MSM6295Scan(0, nAction);
-
- SCAN_VAR(nVideoIRQ);
- SCAN_VAR(nSoundIRQ);
- SCAN_VAR(nUnknownIRQ);
- SCAN_VAR(bVBlank);
-
- CaveScanGraphics();
-
- SCAN_VAR(DrvInput);
- SCAN_VAR(SoundLatch);
- SCAN_VAR(DrvZ80Bank);
- SCAN_VAR(DrvOkiBank1);
- SCAN_VAR(DrvOkiBank2);
-
- if (nAction & ACB_WRITE) {
- ZetOpen(0);
- ZetMapArea(0x4000, 0x7FFF, 0, RomZ80 + (DrvZ80Bank * 0x4000));
- ZetMapArea(0x4000, 0x7FFF, 2, RomZ80 + (DrvZ80Bank * 0x4000));
- ZetClose();
-
- memcpy(MSM6295ROM + 0x00000, MSM6295ROMSrc + 0x20000 * DrvOkiBank1, 0x20000);
- memcpy(MSM6295ROM + 0x20000, MSM6295ROMSrc + 0x20000 * DrvOkiBank2, 0x20000);
-
- CaveRecalcPalette = 1;
- }
- }
-
- return 0;
-}
-
-static void DrvFMIRQHandler(INT32, INT32 nStatus)
-{
- if (nStatus & 1) {
- ZetSetIRQLine(0xff, CPU_IRQSTATUS_ACK);
- } else {
- ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
- }
-}
-
-static INT32 DrvSynchroniseStream(INT32 nSoundRate)
-{
- return (INT64)ZetTotalCycles() * nSoundRate / 4000000;
-}
-
-static double DrvGetTime()
-{
- return (double)ZetTotalCycles() / 4000000;
-}
-
-static INT32 drvZInit()
-{
- ZetInit(0);
- ZetOpen(0);
- ZetSetInHandler(mazingerZIn);
- ZetSetOutHandler(mazingerZOut);
- ZetSetReadHandler(mazingerZRead);
- ZetSetWriteHandler(mazingerZWrite);
-
- // ROM bank 1
- ZetMapArea (0x0000, 0x3FFF, 0, RomZ80 + 0x0000); // Direct Read from ROM
- ZetMapArea (0x0000, 0x3FFF, 2, RomZ80 + 0x0000); // Direct Fetch from ROM
- // ROM bank 2
- ZetMapArea (0x4000, 0x7FFF, 0, RomZ80 + 0x4000); // Direct Read from ROM
- ZetMapArea (0x4000, 0x7FFF, 2, RomZ80 + 0x4000); //
- // RAM
- ZetMapArea (0xc000, 0xc7FF, 0, RamZ80 + 0x0000); // Direct Read from RAM
- ZetMapArea (0xc000, 0xc7FF, 1, RamZ80 + 0x0000); // Direct Write to RAM
- ZetMapArea (0xc000, 0xc7FF, 2, RamZ80 + 0x0000); //
-
- ZetMapArea (0xf800, 0xffFF, 0, RamZ80 + 0x0800); // Direct Read from RAM
- ZetMapArea (0xf800, 0xffFF, 1, RamZ80 + 0x0800); // Direct Write to RAM
- ZetMapArea (0xf800, 0xffFF, 2, RamZ80 + 0x0800); //
- ZetClose();
-
- return 0;
-}
-
-static INT32 DrvInit()
-{
- INT32 nLen;
-
- BurnSetRefreshRate(CAVE_REFRESHRATE);
-
- // Find out how much memory is needed
- Mem = NULL;
- MemIndex();
- nLen = MemEnd - (UINT8 *)0;
- if ((Mem = (UINT8 *)BurnMalloc(nLen)) == NULL) {
- return 1;
- }
- memset(Mem, 0, nLen); // blank all memory
- MemIndex(); // Index the allocated memory
-
- // Load the roms into memory
- if (LoadRoms()) {
- return 1;
- }
-
- {
- SekInit(0, 0x68000); // Allocate 68000
- SekOpen(0);
-
- // Map 68000 memory:
- SekMapMemory(Rom01, 0x000000, 0x07FFFF, MAP_ROM); // CPU 0 ROM
- SekMapMemory(Ram01, 0x100000, 0x10FFFF, MAP_RAM);
- SekMapMemory(CaveSpriteRAM, 0x200000, 0x20FFFF, MAP_RAM);
- SekMapMemory(CaveTileRAM[1] + 0x4000, 0x400000, 0x403FFF, MAP_RAM);
- SekMapMemory(CaveTileRAM[1] + 0x4000, 0x404000, 0x407FFF, MAP_RAM);
- SekMapMemory(CaveTileRAM[0] + 0x4000, 0x500000, 0x503FFF, MAP_RAM);
- SekMapMemory(CaveTileRAM[0] + 0x4000, 0x504000, 0x507FFF, MAP_RAM);
- SekMapMemory(CavePalSrc, 0xC08000, 0xc087FF, MAP_RAM); // Palette RAM
- SekMapMemory(CavePalSrc + 0x8800, 0xC08800, 0xC0FFFF, MAP_ROM); // Palette RAM (write goes through handler)
- SekMapHandler(1, 0xC08800, 0xC0FFFF, MAP_WRITE); //
-
- SekMapMemory(Rom01 + 0x80000, 0xD00000, 0xD7FFFF, MAP_ROM); // CPU 0 ROM
-
- SekSetReadByteHandler(0, mazingerReadByte);
- SekSetWriteByteHandler(0, mazingerWriteByte);
- SekSetReadWordHandler(0, mazingerReadWord);
- SekSetWriteWordHandler(0, mazingerWriteWord);
-
- SekSetWriteWordHandler(1, mazingerWriteWordPalette);
- SekSetWriteByteHandler(1, mazingerWriteBytePalette);
- SekClose();
- }
-
- drvZInit();
-
- CavePalInit(0x8000);
- CaveTileInit();
- CaveSpriteInit(2, 0x0800000);
- CaveTileInitLayer(0, 0x400000, 8, 0x0000);
- CaveTileInitLayer(1, 0x400000, 6, 0x4400);
-
- BurnYM2203Init(1, 4000000, &DrvFMIRQHandler, DrvSynchroniseStream, DrvGetTime, 0);
- BurnTimerAttachZet(4000000);
- BurnYM2203SetRoute(0, BURN_SND_YM2203_YM2203_ROUTE, 0.60, BURN_SND_ROUTE_BOTH);
- BurnYM2203SetRoute(0, BURN_SND_YM2203_AY8910_ROUTE_1, 0.20, BURN_SND_ROUTE_BOTH);
- BurnYM2203SetRoute(0, BURN_SND_YM2203_AY8910_ROUTE_2, 0.20, BURN_SND_ROUTE_BOTH);
- BurnYM2203SetRoute(0, BURN_SND_YM2203_AY8910_ROUTE_3, 0.20, BURN_SND_ROUTE_BOTH);
-
- memcpy(MSM6295ROM, MSM6295ROMSrc, 0x40000);
- MSM6295Init(0, 1056000 / 132, 1);
- MSM6295SetRoute(0, 2.00, BURN_SND_ROUTE_BOTH);
-
- EEPROMInit(&eeprom_interface_93C46);
- if (!EEPROMAvailable()) EEPROMFill(DefEEPROM,0, 0x80);
-
- bDrawScreen = true;
-
- DrvDoReset(); // Reset machine
-
- return 0;
-}
-
-// Rom information
-static struct BurnRomInfo mazingerRomDesc[] = {
- { "mzp-0.u24", 0x080000, 0x43a4279f, BRF_ESS | BRF_PRG }, // 0 CPU #0 code
- { "mzp-1.924", 0x080000, 0xdb40acba, BRF_ESS | BRF_PRG }, // 1
-
- { "mzs.u21", 0x020000, 0xc5b4f7ed, BRF_ESS | BRF_PRG }, // 2 Z80 Code
-
- { "bp943a-2.u56", 0x200000, 0x97e13959, BRF_GRA }, // 3 Sprite data
- { "bp943a-3.u55", 0x080000, 0x9c4957dd, BRF_GRA }, // 4
-
- { "bp943a-1.u60", 0x200000, 0x46327415, BRF_GRA }, // 5 Layer 0 Tile data
- { "bp943a-0.u63", 0x200000, 0xc1fed98a, BRF_GRA }, // 6 Layer 1 Tile data
-
- { "bp943a-4.u64", 0x080000, 0x3fc7f29a, BRF_SND }, // 7 MSM6295 #1 ADPCM data
-
- { "mazinger_world.nv", 0x0080, 0x4f6225c6, BRF_ESS | BRF_PRG },
-};
-
-
-STD_ROM_PICK(mazinger)
-STD_ROM_FN(mazinger)
-
-static struct BurnRomInfo mazingerjRomDesc[] = {
- { "mzp-0.u24", 0x080000, 0x43a4279f, BRF_ESS | BRF_PRG }, // 0 CPU #0 code
- { "mzp-1.924", 0x080000, 0xdb40acba, BRF_ESS | BRF_PRG }, // 1
-
- { "mzs.u21", 0x020000, 0xc5b4f7ed, BRF_ESS | BRF_PRG }, // 2 Z80 Code
-
- { "bp943a-2.u56", 0x200000, 0x97e13959, BRF_GRA }, // 3 Sprite data
- { "bp943a-3.u55", 0x080000, 0x9c4957dd, BRF_GRA }, // 4
-
- { "bp943a-1.u60", 0x200000, 0x46327415, BRF_GRA }, // 5 Layer 0 Tile data
- { "bp943a-0.u63", 0x200000, 0xc1fed98a, BRF_GRA }, // 6 Layer 1 Tile data
-
- { "bp943a-4.u64", 0x080000, 0x3fc7f29a, BRF_SND }, // 7 MSM6295 #1 ADPCM data
-
- { "mazinger_japan.nv", 0x0080, 0xf84a2a45, BRF_ESS | BRF_PRG },
-};
-
-
-STD_ROM_PICK(mazingerj)
-STD_ROM_FN(mazingerj)
-
-struct BurnDriver BurnDrvmazinger = {
- "mazinger", NULL, NULL, NULL, "1994",
- "Mazinger Z (World, ver. 94/06/27)\0", NULL, "Banpresto / Dynamic Pl. Toei Animation", "Cave",
- L"Mazinger Z\0\u30DE\u30B8\u30F3\u30AC\u30FC \uFF3A (World, ver. 94/06/27)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL |BDF_ORIENTATION_FLIPPED | BDF_16BIT_ONLY, 2, HARDWARE_CAVE_68K_Z80, GBF_VERSHOOT, 0,
- NULL, mazingerRomInfo, mazingerRomName, NULL, NULL, mazingerInputInfo, NULL,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan,
- &CaveRecalcPalette, 0x8000, 240, 384, 3, 4
-};
-
-struct BurnDriver BurnDrvmazingerj = {
- "mazingerj", "mazinger", NULL, NULL, "1994",
- "Mazinger Z (Japan, ver. 94/06/27)\0", NULL, "Banpresto / Dynamic Pl. Toei Animation", "Cave",
- L"Mazinger Z\0\u30DE\u30B8\u30F3\u30AC\u30FC \uFF3A (Japan, ver. 94/06/27)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL |BDF_ORIENTATION_FLIPPED | BDF_16BIT_ONLY, 2, HARDWARE_CAVE_68K_Z80, GBF_VERSHOOT, 0,
- NULL, mazingerjRomInfo, mazingerjRomName, NULL, NULL, mazingerInputInfo, NULL,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan,
- &CaveRecalcPalette, 0x8000, 240, 384, 3, 4
-};
diff --git a/jan/src/burn/drv/cave/d_metmqstr.cpp b/jan/src/burn/drv/cave/d_metmqstr.cpp
deleted file mode 100644
index 9410da5e2..000000000
--- a/jan/src/burn/drv/cave/d_metmqstr.cpp
+++ /dev/null
@@ -1,843 +0,0 @@
-// metmqstr
-#include "cave.h"
-#include "burn_ym2151.h"
-#include "msm6295.h"
-
-#define CAVE_VBLANK_LINES 12
-
-static UINT8 DrvJoy1[11] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
-static UINT8 DrvJoy2[11] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
-static UINT16 DrvInput[2] = {0x0000, 0x0000};
-
-static UINT8 *Mem = NULL, *MemEnd = NULL;
-static UINT8 *RamStart, *RamEnd;
-static UINT8 *Rom01, *RomZ80;
-static UINT8 *Ram01, *RamZ80;
-static UINT8 *MSM6295ROMSrc1, *MSM6295ROMSrc2;
-
-static UINT8 DrvReset = 0;
-static UINT8 bDrawScreen;
-static bool bVBlank;
-
-static INT8 nVideoIRQ;
-static INT8 nSoundIRQ;
-static INT8 nUnknownIRQ;
-
-static INT8 nIRQPending;
-
-static INT32 nCyclesTotal[2];
-static INT32 nCyclesDone[2];
-
-static INT32 SoundLatch;
-static INT32 SoundLatchReply[48];
-static INT32 SoundLatchStatus;
-
-static INT32 SoundLatchReplyIndex;
-static INT32 SoundLatchReplyMax;
-
-static UINT8 DrvZ80Bank;
-static UINT8 DrvOkiBank1_1;
-static UINT8 DrvOkiBank1_2;
-static UINT8 DrvOkiBank2_1;
-static UINT8 DrvOkiBank2_2;
-
-static struct BurnInputInfo metmqstrInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy1 + 8, "p1 coin"},
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 7, "p1 start"},
-
- {"P1 Up", BIT_DIGITAL, DrvJoy1 + 0, "p1 up"},
- {"P1 Down", BIT_DIGITAL, DrvJoy1 + 1, "p1 down"},
- {"P1 Left", BIT_DIGITAL, DrvJoy1 + 2, "p1 left"},
- {"P1 Right", BIT_DIGITAL, DrvJoy1 + 3, "p1 right"},
- {"P1 Button 1", BIT_DIGITAL, DrvJoy1 + 4, "p1 fire 1"},
- {"P1 Button 2", BIT_DIGITAL, DrvJoy1 + 5, "p1 fire 2"},
- {"P1 Button 3", BIT_DIGITAL, DrvJoy1 + 6, "p1 fire 3"},
- {"P1 Button 4", BIT_DIGITAL, DrvJoy1 + 10, "p1 fire 4"},
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy2 + 8, "p2 coin"},
- {"P2 Start", BIT_DIGITAL, DrvJoy2 + 7, "p2 start"},
-
- {"P2 Up", BIT_DIGITAL, DrvJoy2 + 0, "p2 up"},
- {"P2 Down", BIT_DIGITAL, DrvJoy2 + 1, "p2 down"},
- {"P2 Left", BIT_DIGITAL, DrvJoy2 + 2, "p2 left"},
- {"P2 Right", BIT_DIGITAL, DrvJoy2 + 3, "p2 right"},
- {"P2 Button 1", BIT_DIGITAL, DrvJoy2 + 4, "p2 fire 1"},
- {"P2 Button 2", BIT_DIGITAL, DrvJoy2 + 5, "p2 fire 2"},
- {"P2 Button 3", BIT_DIGITAL, DrvJoy2 + 6, "p2 fire 3"},
- {"P2 Button 4", BIT_DIGITAL, DrvJoy2 + 10, "p2 fire 4"},
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset"},
- {"Diagnostics", BIT_DIGITAL, DrvJoy1 + 9, "diag"},
- {"Service", BIT_DIGITAL, DrvJoy2 + 9, "service"},
-};
-
-STDINPUTINFO(metmqstr)
-
-static void UpdateIRQStatus()
-{
- nIRQPending = (nVideoIRQ == 0 || nSoundIRQ == 0 || nUnknownIRQ == 0);
- SekSetIRQLine(1, nIRQPending ? CPU_IRQSTATUS_ACK : CPU_IRQSTATUS_NONE);
-}
-
-UINT8 __fastcall metmqstrReadByte(UINT32 sekAddress)
-{
- switch (sekAddress) {
- default: {
- bprintf(PRINT_NORMAL, _T("Attempt to read byte value of location %x\n"), sekAddress);
- }
- }
- return 0;
-}
-
-void __fastcall metmqstrWriteByte(UINT32 sekAddress, UINT8 byteValue)
-{
- switch (sekAddress) {
- if (~byteValue & 0x0100) {
- case 0xd00000:
- EEPROMWrite(byteValue & 0x04, byteValue & 0x02, byteValue & 0x08);
- break;
- }
- default: {
- bprintf(PRINT_NORMAL, _T("Attempt to write byte value %x to location %x\n"), byteValue, sekAddress);
-
- }
- }
-}
-
-UINT16 __fastcall metmqstrReadWord(UINT32 sekAddress)
-{
- switch (sekAddress) {
- case 0xa80000:
- case 0xa80002: {
- UINT8 nRet = (nUnknownIRQ << 1) | nVideoIRQ;
- return nRet;
- }
- case 0xa80004: {
- UINT8 nRet = (nUnknownIRQ << 1) | nVideoIRQ;
- nVideoIRQ = 1;
- UpdateIRQStatus();
- return nRet;
- }
- case 0xa80006: {
- UINT8 nRet = (nUnknownIRQ << 1) | nVideoIRQ;
- nUnknownIRQ = 1;
- UpdateIRQStatus();
- return nRet;
- }
-
- case 0xa8006C:
- if (SoundLatchReplyIndex > SoundLatchReplyMax) {
- return 2;
- }
- return 0;
-
- case 0xa8006E:
- if (SoundLatchReplyIndex > SoundLatchReplyMax) {
- SoundLatchReplyIndex = 0;
- SoundLatchReplyMax = -1;
- return 0;
- }
- return SoundLatchReply[SoundLatchReplyIndex++];
-
- case 0xc80000:
- return DrvInput[0] ^ 0xFFFF;
- case 0xc80002:
- return (DrvInput[1] ^ 0xF7FF) | (EEPROMRead() << 11);
-
- default: {
- bprintf(PRINT_NORMAL, _T("Attempt to read word value of location %x\n"), sekAddress);
- }
- }
- return 0;
-}
-
-void __fastcall metmqstrWriteWord(UINT32 sekAddress, UINT16 wordValue)
-{
- if (sekAddress >= 0xa8000a && sekAddress <= 0xa80068) return;
- if (sekAddress >= 0xa8006a && sekAddress <= 0xa8006c) return;
- if (sekAddress >= 0xa80004 && sekAddress <= 0xa80006) return;
-
- switch (sekAddress) {
- case 0xa80000:
- nCaveXOffset = wordValue;
- return;
- case 0xa80002:
- nCaveYOffset = wordValue;
- return;
-
- case 0xa80008:
- CaveSpriteBuffer();
- nCaveSpriteBank = wordValue;
- return;
-
- case 0xa8006E:
- SoundLatch = wordValue;
- SoundLatchStatus |= 0x0C;
-
- ZetNmi();
- nCyclesDone[1] += ZetRun(0x0400);
- return;
-
- case 0xb00000:
- CaveTileReg[2][0] = wordValue;
- break;
- case 0xb00002:
- CaveTileReg[2][1] = wordValue;
- break;
- case 0xb00004:
- CaveTileReg[2][2] = wordValue;
- break;
-
- case 0xb80000:
- CaveTileReg[1][0] = wordValue;
- break;
- case 0xb80002:
- CaveTileReg[1][1] = wordValue;
- break;
- case 0xb80004:
- CaveTileReg[1][2] = wordValue;
- break;
-
- case 0xc00000:
- CaveTileReg[0][0] = wordValue;
- break;
- case 0xc00002:
- CaveTileReg[0][1] = wordValue;
- break;
- case 0xc00004:
- CaveTileReg[0][2] = wordValue;
- break;
-
- case 0xd00000:
- if (~wordValue & 0x0100) {
- wordValue >>= 8;
- EEPROMWrite(wordValue & 0x04, wordValue & 0x02, wordValue & 0x08);
- break;
- }
- default: {
- bprintf(PRINT_NORMAL, _T("Attempt to write word value %x to location %x\n"), wordValue, sekAddress);
-
- }
- }
-}
-
-UINT8 __fastcall metmqstrZIn(UINT16 nAddress)
-{
- nAddress &= 0xFF;
-
- switch (nAddress) {
- case 0x20: {
- return 0;
- }
-
- case 0x30:
- SoundLatchStatus |= 0x04;
- return SoundLatch & 0xFF;
-
- case 0x40:
- SoundLatchStatus |= 0x08;
- return SoundLatch >> 8;
-
- case 0x51:
- return BurnYM2151ReadStatus();
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 Port Read %x\n"), nAddress);
- }
- }
-
- return 0;
-}
-
-void __fastcall metmqstrZOut(UINT16 nAddress, UINT8 nValue)
-{
- nAddress &= 0xFF;
-
- switch (nAddress) {
- case 0x00: {
- DrvZ80Bank = nValue & 0x0f;
-
- ZetMapArea(0x4000, 0x7FFF, 0, RomZ80 + (DrvZ80Bank * 0x4000));
- ZetMapArea(0x4000, 0x7FFF, 2, RomZ80 + (DrvZ80Bank * 0x4000));
- return;
- }
-
- case 0x50:
- BurnYM2151SelectRegister(nValue);
- break;
- case 0x51:
- BurnYM2151WriteRegister(nValue);
- break;
-
- case 0x60: {
- MSM6295Command(0, nValue);
- return;
- }
-
- case 0x70: {
- DrvOkiBank1_1 = (nValue >> 0) & 0x07;
- DrvOkiBank1_2 = (nValue >> 4) & 0x07;
-
- memcpy(MSM6295ROM + 0x000000, MSM6295ROMSrc1 + 0x20000 * DrvOkiBank1_1, 0x20000);
- memcpy(MSM6295ROM + 0x020000, MSM6295ROMSrc1 + 0x20000 * DrvOkiBank1_2, 0x20000);
- return;
- }
-
- case 0x80: {
- MSM6295Command(1, nValue);
- return;
- }
-
- case 0x90: {
- DrvOkiBank2_1 = (nValue >> 0) & 0x07;
- DrvOkiBank2_2 = (nValue >> 4) & 0x07;
-
- memcpy(MSM6295ROM + 0x100000, MSM6295ROMSrc2 + 0x20000 * DrvOkiBank2_1, 0x20000);
- memcpy(MSM6295ROM + 0x120000, MSM6295ROMSrc2 + 0x20000 * DrvOkiBank2_2, 0x20000);
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 Port Write %x, %x\n"), nAddress, nValue);
- }
- }
-}
-
-UINT8 __fastcall metmqstrZRead(UINT16 a)
-{
- switch (a) {
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 Read => %04X\n"), a);
- }
- }
-
- return 0;
-}
-
-void __fastcall metmqstrZWrite(UINT16 a, UINT8 d)
-{
- switch (a) {
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 Write => %04X, %02X\n"), a, d);
- }
- }
-}
-
-static INT32 DrvExit()
-{
- EEPROMExit();
-
- BurnYM2151Exit();
- MSM6295Exit(0);
- MSM6295Exit(1);
-
- CaveTileExit();
- CaveSpriteExit();
- CavePalExit();
-
- SekExit(); // Deallocate 68000s
- ZetExit();
-
- SoundLatch = 0;
- DrvZ80Bank = 0;
- DrvOkiBank1_1 = 0;
- DrvOkiBank1_2 = 0;
- DrvOkiBank2_1 = 0;
- DrvOkiBank2_2 = 0;
-
- BurnFree(Mem);
-
- return 0;
-}
-
-static INT32 DrvDoReset()
-{
- SekOpen(0);
- SekReset();
- SekRun(10000); // Need to run for a bit and reset to make it start - Watchdog would force reset?
- SekReset();
- SekClose();
-
- ZetOpen(0);
- ZetReset();
- ZetClose();
-
- BurnYM2151Reset();
- MSM6295Reset(0);
- MSM6295Reset(1);
-
- EEPROMReset();
-
- nVideoIRQ = 1;
- nSoundIRQ = 1;
- nUnknownIRQ = 1;
-
- nIRQPending = 0;
-
- SoundLatch = 0;
- DrvZ80Bank = 0;
- DrvOkiBank1_1 = 0;
- DrvOkiBank1_2 = 0;
- DrvOkiBank2_1 = 0;
- DrvOkiBank2_2 = 0;
-
- SoundLatch = 0;
- SoundLatchStatus = 0x0C;
-
- memset(SoundLatchReply, 0, sizeof(SoundLatchReply));
- SoundLatchReplyIndex = 0;
- SoundLatchReplyMax = -1;
-
- return 0;
-}
-
-static INT32 DrvDraw()
-{
- CavePalUpdate4Bit(0, 128);
-
- CaveClearScreen(CavePalette[0x7F00]);
-
- if (bDrawScreen) {
-// CaveGetBitmap();
-
- CaveTileRender(1); // Render tiles
- }
-
- return 0;
-}
-
-inline static INT32 CheckSleep(INT32)
-{
- return 0;
-}
-
-static INT32 DrvFrame()
-{
- INT32 nCyclesVBlank;
- INT32 nInterleave = 8;
- INT32 nSoundBufferPos = 0;
-
- INT32 nCyclesSegment;
-
- if (DrvReset) { // Reset machine
- DrvDoReset();
- }
-
- // Compile digital inputs
- DrvInput[0] = 0x0000; // Player 1
- DrvInput[1] = 0x0000; // Player 2
- for (INT32 i = 0; i < 11; i++) {
- DrvInput[0] |= (DrvJoy1[i] & 1) << i;
- DrvInput[1] |= (DrvJoy2[i] & 1) << i;
- }
- CaveClearOpposites(&DrvInput[0]);
- CaveClearOpposites(&DrvInput[1]);
-
- SekNewFrame();
- ZetNewFrame();
-
- SekOpen(0);
- ZetOpen(0);
-
- nCyclesTotal[0] = (INT32)((INT64)16000000 * nBurnCPUSpeedAdjust / (0x0100 * CAVE_REFRESHRATE));
- nCyclesTotal[1] = (INT32)(8000000 / CAVE_REFRESHRATE);
- nCyclesDone[0] = nCyclesDone[1] = 0;
-
- nCyclesVBlank = nCyclesTotal[0] - (INT32)((nCyclesTotal[0] * CAVE_VBLANK_LINES) / 271.5);
- bVBlank = false;
-
- for (INT32 i = 1; i <= nInterleave; i++) {
- INT32 nCurrentCPU = 0;
- INT32 nNext = i * nCyclesTotal[nCurrentCPU] / nInterleave;
-
- // Run 68000
-
- // See if we need to trigger the VBlank interrupt
- if (!bVBlank && nNext > nCyclesVBlank) {
- if (nCyclesDone[nCurrentCPU] < nCyclesVBlank) {
- nCyclesSegment = nCyclesVBlank - nCyclesDone[nCurrentCPU];
- if (!CheckSleep(nCurrentCPU)) { // See if this CPU is busywaiting
- nCyclesDone[nCurrentCPU] += SekRun(nCyclesSegment);
- } else {
- nCyclesDone[nCurrentCPU] += SekIdle(nCyclesSegment);
- }
- }
-
- if (pBurnDraw != NULL) {
- DrvDraw(); // Draw screen if needed
- }
-
- UINT8 Temp = nCaveSpriteBank;
- nCaveSpriteBank = nCaveSpriteBankDelay;
- nCaveSpriteBankDelay = Temp;
-
- bVBlank = true;
- nVideoIRQ = 0;
- nUnknownIRQ = 0;
- UpdateIRQStatus();
- }
-
- SekSetIRQLine(1, CPU_IRQSTATUS_AUTO);
-
- nCyclesSegment = nNext - nCyclesDone[nCurrentCPU];
- if (!CheckSleep(nCurrentCPU)) { // See if this CPU is busywaiting
- nCyclesDone[nCurrentCPU] += SekRun(nCyclesSegment);
- } else {
- nCyclesDone[nCurrentCPU] += SekIdle(nCyclesSegment);
- }
-
- nCurrentCPU = 1;
- nNext = (i + 1) * nCyclesTotal[nCurrentCPU] / nInterleave;
- nCyclesSegment = nNext - nCyclesDone[nCurrentCPU];
- nCyclesSegment = ZetRun(nCyclesSegment);
- nCyclesDone[nCurrentCPU] += nCyclesSegment;
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen / nInterleave;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- BurnYM2151Render(pSoundBuf, nSegmentLength);
- MSM6295Render(0, pSoundBuf, nSegmentLength);
- MSM6295Render(1, pSoundBuf, nSegmentLength);
- nSoundBufferPos += nSegmentLength;
- }
- }
-
- // Make sure the buffer is entirely filled.
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
-
- if (nSegmentLength) {
- BurnYM2151Render(pSoundBuf, nSegmentLength);
- MSM6295Render(0, pSoundBuf, nSegmentLength);
- MSM6295Render(1, pSoundBuf, nSegmentLength);
- }
- }
-
- SekClose();
- ZetClose();
-
- return 0;
-}
-
-// This routine is called first to determine how much memory is needed (MemEnd-(UINT8 *)0),
-// and then afterwards to set up all the pointers
-static INT32 MemIndex()
-{
- UINT8* Next; Next = Mem;
- Rom01 = Next; Next += 0x180000; // 68K program
- RomZ80 = Next; Next += 0x040000;
- CaveSpriteROM = Next; Next += 0x1000000;
- CaveTileROM[0] = Next; Next += 0x400000; // Tile layer 0
- CaveTileROM[1] = Next; Next += 0x400000; // Tile layer 1
- CaveTileROM[2] = Next; Next += 0x400000; // Tile layer 2
- MSM6295ROM = Next; Next += 0x140000;
- MSM6295ROMSrc1 = Next; Next += 0x200000;
- MSM6295ROMSrc2 = Next; Next += 0x200000;
- RamStart = Next;
- Ram01 = Next; Next += 0x018000; // CPU #0 work RAM
- RamZ80 = Next; Next += 0x002000;
- CaveTileRAM[0] = Next; Next += 0x008000;
- CaveTileRAM[1] = Next; Next += 0x008000;
- CaveTileRAM[2] = Next; Next += 0x008000;
- CaveSpriteRAM = Next; Next += 0x010000;
- CavePalSrc = Next; Next += 0x010000; // palette
- RamEnd = Next;
- MemEnd = Next;
-
- return 0;
-}
-
-static void NibbleSwap1(UINT8* pData, INT32 nLen)
-{
- UINT8* pOrg = pData + nLen - 1;
- UINT8* pDest = pData + ((nLen - 1) << 1);
-
- for (INT32 i = 0; i < nLen; i++, pOrg--, pDest -= 2) {
- pDest[0] = *pOrg & 15;
- pDest[1] = *pOrg >> 4;
- }
-
- return;
-}
-
-static void NibbleSwap2(UINT8* pData, INT32 nLen)
-{
- UINT8* pOrg = pData + nLen - 1;
- UINT8* pDest = pData + ((nLen - 1) << 1);
-
- for (INT32 i = 0; i < nLen; i++, pOrg--, pDest -= 2) {
- pDest[1] = *pOrg & 15;
- pDest[0] = *pOrg >> 4;
- }
-
- return;
-}
-
-static INT32 LoadRoms()
-{
- BurnLoadRom(Rom01 + 0x000000, 0, 1);
- BurnLoadRom(Rom01 + 0x080000, 1, 1);
- BurnLoadRom(Rom01 + 0x100000, 2, 1);
-
- BurnLoadRom(RomZ80, 3, 1);
-
- BurnLoadRom(CaveSpriteROM + 0x000000, 4, 1);
- BurnLoadRom(CaveSpriteROM + 0x200000, 5, 1);
- BurnLoadRom(CaveSpriteROM + 0x400000, 6, 1);
- BurnLoadRom(CaveSpriteROM + 0x600000, 7, 1);
- NibbleSwap1(CaveSpriteROM, 0x800000);
-
- BurnLoadRom(CaveTileROM[0], 8, 1);
- NibbleSwap2(CaveTileROM[0], 0x200000);
-
- BurnLoadRom(CaveTileROM[1], 9, 1);
- NibbleSwap2(CaveTileROM[1], 0x200000);
-
- BurnLoadRom(CaveTileROM[2], 10, 1);
- NibbleSwap2(CaveTileROM[2], 0x200000);
-
- // Load MSM6295 ADPCM data
- BurnLoadRom(MSM6295ROMSrc1, 11, 1);
- BurnLoadRom(MSM6295ROMSrc2, 12, 1);
-
- return 0;
-}
-
-// Scan ram
-static INT32 DrvScan(INT32 nAction, INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin) { // Return minimum compatible version
- *pnMin = 0x020902;
- }
-
- EEPROMScan(nAction, pnMin); // Scan EEPROM
-
- if (nAction & ACB_VOLATILE) { // Scan volatile ram
- memset(&ba, 0, sizeof(ba));
- ba.Data = RamStart;
- ba.nLen = RamEnd - RamStart;
- ba.szName = "RAM";
- BurnAcb(&ba);
-
- SekScan(nAction);
- ZetScan(nAction);
-
- BurnYM2151Scan(nAction);
- MSM6295Scan(0, nAction);
- MSM6295Scan(1, nAction);
-
- SCAN_VAR(nVideoIRQ);
- SCAN_VAR(nSoundIRQ);
- SCAN_VAR(nUnknownIRQ);
- SCAN_VAR(bVBlank);
-
- CaveScanGraphics();
-
- SCAN_VAR(DrvInput);
- SCAN_VAR(SoundLatch);
- SCAN_VAR(DrvZ80Bank);
- SCAN_VAR(DrvOkiBank1_1);
- SCAN_VAR(DrvOkiBank1_2);
- SCAN_VAR(DrvOkiBank2_1);
- SCAN_VAR(DrvOkiBank2_2);
-
- if (nAction & ACB_WRITE) {
- ZetOpen(0);
- ZetMapArea(0x4000, 0x7FFF, 0, RomZ80 + (DrvZ80Bank * 0x4000));
- ZetMapArea(0x4000, 0x7FFF, 2, RomZ80 + (DrvZ80Bank * 0x4000));
- ZetClose();
-
- memcpy(MSM6295ROM + 0x000000, MSM6295ROMSrc1 + 0x20000 * DrvOkiBank1_1, 0x20000);
- memcpy(MSM6295ROM + 0x020000, MSM6295ROMSrc1 + 0x20000 * DrvOkiBank1_2, 0x20000);
-
- memcpy(MSM6295ROM + 0x100000, MSM6295ROMSrc2 + 0x20000 * DrvOkiBank2_1, 0x20000);
- memcpy(MSM6295ROM + 0x120000, MSM6295ROMSrc2 + 0x20000 * DrvOkiBank2_2, 0x20000);
-
- CaveRecalcPalette = 1;
- }
- }
-
- return 0;
-}
-
-static INT32 drvZInit()
-{
- ZetInit(0);
- ZetOpen(0);
- ZetSetInHandler(metmqstrZIn);
- ZetSetOutHandler(metmqstrZOut);
- ZetSetReadHandler(metmqstrZRead);
- ZetSetWriteHandler(metmqstrZWrite);
-
- // ROM bank 1
- ZetMapArea (0x0000, 0x3FFF, 0, RomZ80 + 0x0000); // Direct Read from ROM
- ZetMapArea (0x0000, 0x3FFF, 2, RomZ80 + 0x0000); // Direct Fetch from ROM
- // ROM bank 2
- ZetMapArea (0x4000, 0x7FFF, 0, RomZ80 + 0x4000); // Direct Read from ROM
- ZetMapArea (0x4000, 0x7FFF, 2, RomZ80 + 0x4000); //
- // RAM
- ZetMapArea (0xe000, 0xFFFF, 0, RamZ80 + 0x0000); // Direct Read from RAM
- ZetMapArea (0xe000, 0xFFFF, 1, RamZ80 + 0x0000); // Direct Write to RAM
- ZetMapArea (0xe000, 0xFFFF, 2, RamZ80 + 0x0000); //
- ZetClose();
-
- return 0;
-}
-
-static void DrvYM2151IrqHandler(INT32 Irq)
-{
- if (Irq) {
- ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
- } else {
- ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
- }
-}
-
-static INT32 DrvInit()
-{
- INT32 nLen;
-
- BurnSetRefreshRate(CAVE_REFRESHRATE);
-
- // Find out how much memory is needed
- Mem = NULL;
- MemIndex();
- nLen = MemEnd - (UINT8 *)0;
- if ((Mem = (UINT8 *)BurnMalloc(nLen)) == NULL) {
- return 1;
- }
- memset(Mem, 0, nLen); // blank all memory
- MemIndex(); // Index the allocated memory
-
- // Load the roms into memory
- if (LoadRoms()) {
- return 1;
- }
-
- EEPROMInit(&eeprom_interface_93C46);
-
- {
- SekInit(0, 0x68000); // Allocate 68000
- SekOpen(0);
-
- // Map 68000 memory:
- SekMapMemory(Rom01, 0x000000, 0x07FFFF, MAP_ROM); // CPU 0 ROM
- SekMapMemory(Rom01 + 0x080000, 0x100000, 0x17FFFF, MAP_ROM);
- SekMapMemory(Rom01 + 0x100000, 0x200000, 0x27FFFF, MAP_ROM);
- SekMapMemory(CaveTileRAM[2], 0x880000, 0x887FFF, MAP_RAM);
- SekMapMemory(Ram01 + 0x00000, 0x888000, 0x88FFFF, MAP_RAM);
- SekMapMemory(CaveTileRAM[1], 0x900000, 0x907FFF, MAP_RAM);
- SekMapMemory(Ram01 + 0x08000, 0x908000, 0x90FFFF, MAP_RAM);
- SekMapMemory(CaveTileRAM[0], 0x980000, 0x987FFF, MAP_RAM);
- SekMapMemory(Ram01 + 0x10000, 0x988000, 0x98FFFF, MAP_RAM);
- SekMapMemory(CavePalSrc, 0x408000, 0x408FFF, MAP_RAM); // Palette RAM
- SekMapMemory(CaveSpriteRAM, 0xF00000, 0xF0FFFF, MAP_RAM);
- SekSetReadByteHandler(0, metmqstrReadByte);
- SekSetWriteByteHandler(0, metmqstrWriteByte);
- SekSetReadWordHandler(0, metmqstrReadWord);
- SekSetWriteWordHandler(0, metmqstrWriteWord);
- SekClose();
- }
-
- drvZInit();
-
- CavePalInit(0x8000);
- CaveTileInit();
- CaveSpriteInit(2, 0x1000000);
- CaveTileInitLayer(0, 0x400000, 8, 0x4000);
- CaveTileInitLayer(1, 0x400000, 8, 0x4000);
- CaveTileInitLayer(2, 0x400000, 8, 0x4000);
-
- nCaveExtraXOffset = -126;
- CaveSpriteVisibleXOffset = -126;
-
- BurnYM2151Init(4000000);
- BurnYM2151SetIrqHandler(&DrvYM2151IrqHandler);
- BurnYM2151SetRoute(BURN_SND_YM2151_YM2151_ROUTE_1, 1.20, BURN_SND_ROUTE_LEFT);
- BurnYM2151SetRoute(BURN_SND_YM2151_YM2151_ROUTE_2, 1.20, BURN_SND_ROUTE_RIGHT);
-
- memcpy(MSM6295ROM, MSM6295ROMSrc1, 0x40000);
- memcpy(MSM6295ROM + 0x100000, MSM6295ROMSrc2, 0x40000);
- MSM6295Init(0, 2000000 / 132, 1);
- MSM6295Init(1, 2000000 / 132, 1);
- MSM6295SetRoute(0, 1.00, BURN_SND_ROUTE_BOTH);
- MSM6295SetRoute(1, 1.00, BURN_SND_ROUTE_BOTH);
-
- bDrawScreen = true;
-
- DrvDoReset(); // Reset machine
-
- return 0;
-}
-
-// Rom information
-static struct BurnRomInfo metmqstrRomDesc[] = {
- { "bp947a.u25", 0x080000, 0x0a5c3442, BRF_ESS | BRF_PRG }, // 0 CPU #0 code
- { "bp947a.u28", 0x080000, 0x8c55decf, BRF_ESS | BRF_PRG }, // 1
- { "bp947a.u29", 0x080000, 0xcf0f3f3b, BRF_ESS | BRF_PRG }, // 2
-
- { "bp947a.u20", 0x040000, 0xa4a36170, BRF_ESS | BRF_PRG }, // 3 Z80 Code
-
- { "bp947a.u49", 0x200000, 0x09749531, BRF_GRA }, // 4 Sprite data
- { "bp947a.u50", 0x200000, 0x19cea8b2, BRF_GRA }, // 5
- { "bp947a.u51", 0x200000, 0xc19bed67, BRF_GRA }, // 6
- { "bp947a.u52", 0x200000, 0x70c64875, BRF_GRA }, // 7
-
- { "bp947a.u48", 0x200000, 0x04ff6a3d, BRF_GRA }, // 8 Layer 0 Tile data
- { "bp947a.u47", 0x200000, 0x0de42827, BRF_GRA }, // 9 Layer 2 Tile data
- { "bp947a.u46", 0x200000, 0x0f9c906e, BRF_GRA }, // 10 Layer 2 Tile data
-
- { "bp947a.u42", 0x200000, 0x2ce8ff2a, BRF_SND }, // 11 MSM6295 #1 ADPCM data
- { "bp947a.u37", 0x200000, 0xc3077c8f, BRF_SND }, // 12 MSM6295 #2 ADPCM data
-};
-
-
-STD_ROM_PICK(metmqstr)
-STD_ROM_FN(metmqstr)
-
-static struct BurnRomInfo nmasterRomDesc[] = {
- { "bp947a_n.u25", 0x080000, 0x748cc514, BRF_ESS | BRF_PRG }, // 0 CPU #0 code
- { "bp947a.u28", 0x080000, 0x8c55decf, BRF_ESS | BRF_PRG }, // 1
- { "bp947a.u29", 0x080000, 0xcf0f3f3b, BRF_ESS | BRF_PRG }, // 2
-
- { "bp947a.u20", 0x040000, 0xa4a36170, BRF_ESS | BRF_PRG }, // 3 Z80 Code
-
- { "bp947a.u49", 0x200000, 0x09749531, BRF_GRA }, // 4 Sprite data
- { "bp947a.u50", 0x200000, 0x19cea8b2, BRF_GRA }, // 5
- { "bp947a.u51", 0x200000, 0xc19bed67, BRF_GRA }, // 6
- { "bp947a.u52", 0x200000, 0x70c64875, BRF_GRA }, // 7
-
- { "bp947a.u48", 0x200000, 0x04ff6a3d, BRF_GRA }, // 8 Layer 0 Tile data
- { "bp947a.u47", 0x200000, 0x0de42827, BRF_GRA }, // 9 Layer 2 Tile data
- { "bp947a.u46", 0x200000, 0x0f9c906e, BRF_GRA }, // 10 Layer 2 Tile data
-
- { "bp947a.u42", 0x200000, 0x2ce8ff2a, BRF_SND }, // 11 MSM6295 #1 ADPCM data
- { "bp947a.u37", 0x200000, 0xc3077c8f, BRF_SND }, // 12 MSM6295 #2 ADPCM data
-};
-
-
-STD_ROM_PICK(nmaster)
-STD_ROM_FN(nmaster)
-
-struct BurnDriver BurnDrvmetmqstr = {
- "metmqstr", NULL, NULL, NULL, "1995",
- "Metamoqester (International)\0", NULL, "Banpresto / Pandorabox", "Cave",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_CAVE_68K_Z80, GBF_VSFIGHT, 0,
- NULL, metmqstrRomInfo, metmqstrRomName, NULL, NULL, metmqstrInputInfo, NULL,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan,
- &CaveRecalcPalette, 0x8000, 384, 240, 4, 3
-};
-
-struct BurnDriver BurnDrvnmaster = {
- "nmaster", "metmqstr", NULL, NULL, "1995",
- "Oni - The Ninja Master (Japan)\0", NULL, "Banpresto / Pandorabox", "Cave",
- L"\u7A4F\u5FCD - The Ninja Master (Japan)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_CAVE_68K_Z80, GBF_VSFIGHT, 0,
- NULL, nmasterRomInfo, nmasterRomName, NULL, NULL, metmqstrInputInfo, NULL,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan,
- &CaveRecalcPalette, 0x8000, 384, 240, 4, 3
-};
diff --git a/jan/src/burn/drv/cave/d_pwrinst2.cpp b/jan/src/burn/drv/cave/d_pwrinst2.cpp
deleted file mode 100644
index b15cc1256..000000000
--- a/jan/src/burn/drv/cave/d_pwrinst2.cpp
+++ /dev/null
@@ -1,1145 +0,0 @@
-// pwrinst2
-#include "cave.h"
-#include "msm6295.h"
-#include "burn_ym2203.h"
-#include "nmk112.h"
-#include "bitswap.h"
-
-#define CAVE_VBLANK_LINES 12
-
-static UINT8 DrvJoy1[11] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
-static UINT8 DrvJoy2[11] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
-static UINT16 DrvInput[2] = {0x0000, 0x0000};
-
-static UINT8 *Mem = NULL, *MemEnd = NULL;
-static UINT8 *RamStart, *RamEnd;
-static UINT8 *Rom01, *RomZ80;
-static UINT8 *Ram01, *RamZ80;
-
-static UINT8 DrvReset = 0;
-static UINT8 bDrawScreen;
-static bool bVBlank;
-
-static INT8 nVideoIRQ;
-static INT8 nSoundIRQ;
-static INT8 nUnknownIRQ;
-
-static INT8 nIRQPending;
-
-static INT32 nCyclesTotal[2];
-static INT32 nCyclesDone[2];
-
-static INT32 SoundLatch;
-static INT32 SoundLatchReply[48];
-static INT32 SoundLatchStatus;
-
-static INT32 SoundLatchReplyIndex;
-static INT32 SoundLatchReplyMax;
-
-static UINT8 DrvZ80Bank;
-
-static struct BurnInputInfo pwrinst2InputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy1 + 8, "p1 coin"},
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 7, "p1 start"},
-
- {"P1 Up", BIT_DIGITAL, DrvJoy1 + 0, "p1 up"},
- {"P1 Down", BIT_DIGITAL, DrvJoy1 + 1, "p1 down"},
- {"P1 Left", BIT_DIGITAL, DrvJoy1 + 2, "p1 left"},
- {"P1 Right", BIT_DIGITAL, DrvJoy1 + 3, "p1 right"},
- {"P1 Button 1", BIT_DIGITAL, DrvJoy1 + 4, "p1 fire 1"},
- {"P1 Button 2", BIT_DIGITAL, DrvJoy1 + 5, "p1 fire 2"},
- {"P1 Button 3", BIT_DIGITAL, DrvJoy1 + 6, "p1 fire 3"},
- {"P1 Button 4", BIT_DIGITAL, DrvJoy1 + 10, "p1 fire 4"},
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy2 + 8, "p2 coin"},
- {"P2 Start", BIT_DIGITAL, DrvJoy2 + 7, "p2 start"},
-
- {"P2 Up", BIT_DIGITAL, DrvJoy2 + 0, "p2 up"},
- {"P2 Down", BIT_DIGITAL, DrvJoy2 + 1, "p2 down"},
- {"P2 Left", BIT_DIGITAL, DrvJoy2 + 2, "p2 left"},
- {"P2 Right", BIT_DIGITAL, DrvJoy2 + 3, "p2 right"},
- {"P2 Button 1", BIT_DIGITAL, DrvJoy2 + 4, "p2 fire 1"},
- {"P2 Button 2", BIT_DIGITAL, DrvJoy2 + 5, "p2 fire 2"},
- {"P2 Button 3", BIT_DIGITAL, DrvJoy2 + 6, "p2 fire 3"},
- {"P2 Button 4", BIT_DIGITAL, DrvJoy2 + 10, "p2 fire 4"},
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset"},
- {"Diagnostics", BIT_DIGITAL, DrvJoy1 + 9, "diag"},
- {"Service", BIT_DIGITAL, DrvJoy2 + 9, "service"},
-};
-
-STDINPUTINFO(pwrinst2)
-
-static void UpdateIRQStatus()
-{
- nIRQPending = (nVideoIRQ == 0 || nSoundIRQ == 0 || nUnknownIRQ == 0);
- SekSetIRQLine(1, nIRQPending ? CPU_IRQSTATUS_ACK : CPU_IRQSTATUS_NONE);
-}
-
-UINT8 __fastcall pwrinst2ReadByte(UINT32 sekAddress)
-{
- if (sekAddress >= 0x600000 && sekAddress <= 0x6fffff) return 0;
-
- switch (sekAddress) {
- default: {
- bprintf(PRINT_NORMAL, _T("Attempt to read byte value of location %x\n"), sekAddress);
- }
- }
- return 0;
-}
-
-void __fastcall pwrinst2WriteByte(UINT32 sekAddress, UINT8 byteValue)
-{
- switch (sekAddress) {
- default: {
- bprintf(PRINT_NORMAL, _T("Attempt to write byte value %x to location %x\n"), byteValue, sekAddress);
-
- }
- }
-}
-
-UINT16 __fastcall pwrinst2ReadWord(UINT32 sekAddress)
-{
- if (sekAddress >= 0x600000 && sekAddress <= 0x6fffff) return 0;
-
- switch (sekAddress) {
- case 0x500000:
- return DrvInput[0] ^ 0xFFFF;
- case 0x500002:
- return (DrvInput[1] ^ 0xF7FF) | (EEPROMRead() << 11);
-
- case 0xa80000:
- case 0xa80002: {
- UINT16 nRet = (nUnknownIRQ << 1) | nVideoIRQ;
- return nRet;
- }
-
- case 0xa80004: {
- UINT16 nRet = (nUnknownIRQ << 1) | nVideoIRQ;
- nVideoIRQ = 1;
- UpdateIRQStatus();
- return nRet;
- }
- case 0xa80006: {
- UINT16 nRet = (nUnknownIRQ << 1) | nVideoIRQ;
- nUnknownIRQ = 1;
- UpdateIRQStatus();
- return nRet;
- }
-
- case 0xd80000: {
- if (SoundLatchReplyIndex > SoundLatchReplyMax) {
- SoundLatchReplyIndex = 0;
- SoundLatchReplyMax = -1;
- return 0;
- }
- return SoundLatchReply[SoundLatchReplyIndex++];
- }
-
- case 0xe80000: {
- return ~8 + ((EEPROMRead() & 1) ? 8 : 0);
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Attempt to read word value of location %x\n"), sekAddress);
- }
- }
- return 0;
-}
-
-void __fastcall pwrinst2WriteWord(UINT32 sekAddress, UINT16 wordValue)
-{
- if (sekAddress >= 0xa8000a && sekAddress <= 0xa8007c) return;
- if (sekAddress >= 0xa80004 && sekAddress <= 0xa80006) return;
-
- switch (sekAddress) {
- case 0x700000:
- wordValue >>= 8;
- EEPROMWrite(wordValue & 0x04, wordValue & 0x02, wordValue & 0x08);
- break;
-
- case 0xa80000:
- nCaveXOffset = wordValue;
- return;
- case 0xa80002:
- nCaveYOffset = wordValue;
- return;
-
- case 0xa80008:
- CaveSpriteBuffer();
- nCaveSpriteBank = wordValue;
- return;
-
- case 0xb00000:
- CaveTileReg[2][0] = wordValue;
- break;
- case 0xb00002:
- CaveTileReg[2][1] = wordValue;
- break;
- case 0xb00004: {
- switch (wordValue & 0x0f) {
- case 1: wordValue = (wordValue & ~0x000f) | 0; break;
- case 2: wordValue = (wordValue & ~0x000f) | 1; break;
- case 4: wordValue = (wordValue & ~0x000f) | 2; break;
- default:
- case 8: wordValue = (wordValue & ~0x000f) | 3; break;
- }
- CaveTileReg[2][2] = wordValue;
- break;
- }
-
- case 0xb80000:
- CaveTileReg[0][0] = wordValue;
- break;
- case 0xb80002:
- CaveTileReg[0][1] = wordValue;
- break;
- case 0xb80004: {
- switch (wordValue & 0x0f) {
- case 1: wordValue = (wordValue & ~0x000f) | 0; break;
- case 2: wordValue = (wordValue & ~0x000f) | 1; break;
- case 4: wordValue = (wordValue & ~0x000f) | 2; break;
- default:
- case 8: wordValue = (wordValue & ~0x000f) | 3; break;
- }
- CaveTileReg[0][2] = wordValue;
- break;
- }
-
- case 0xc00000:
- CaveTileReg[1][0] = wordValue;
- break;
- case 0xc00002:
- CaveTileReg[1][1] = wordValue;
- break;
- case 0xc00004: {
- switch (wordValue & 0x0f) {
- case 1: wordValue = (wordValue & ~0x000f) | 0; break;
- case 2: wordValue = (wordValue & ~0x000f) | 1; break;
- case 4: wordValue = (wordValue & ~0x000f) | 2; break;
- default:
- case 8: wordValue = (wordValue & ~0x000f) | 3; break;
- }
- CaveTileReg[1][2] = wordValue;
- break;
- }
-
- case 0xc80000:
- CaveTileReg[3][0] = wordValue;
- break;
- case 0xc80002:
- CaveTileReg[3][1] = wordValue;
- break;
- case 0xc80004: {
- switch (wordValue & 0x0f) {
- case 1: wordValue = (wordValue & ~0x000f) | 0; break;
- case 2: wordValue = (wordValue & ~0x000f) | 1; break;
- case 4: wordValue = (wordValue & ~0x000f) | 2; break;
- default:
- case 8: wordValue = (wordValue & ~0x000f) | 3; break;
- }
- CaveTileReg[3][2] = wordValue;
- break;
- }
-
- case 0xe00000: {
- SoundLatch = wordValue;
- SoundLatchStatus |= 0x0C;
-
- ZetNmi();
-// nCyclesDone[1] += ZetRun(0x0400);
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Attempt to write word value %x to location %x\n"), wordValue, sekAddress);
-
- }
- }
-}
-
-UINT8 __fastcall pwrinst2ZIn(UINT16 nAddress)
-{
- nAddress &= 0xFF;
-
- switch (nAddress) {
- case 0x00: {
- return MSM6295ReadStatus(0);
- }
-
- case 0x08: {
- return MSM6295ReadStatus(1);
- }
-
- case 0x40: {
- return BurnYM2203Read(0, 0);
- }
-
- case 0x41: {
- return BurnYM2203Read(0, 1);
- }
-
- case 0x60: {
- SoundLatchStatus |= 0x08;
- return SoundLatch >> 8;
- }
-
- case 0x70: {
- SoundLatchStatus |= 0x04;
- return SoundLatch & 0xFF;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 Port Read %x\n"), nAddress);
- }
- }
-
- return 0;
-}
-
-void __fastcall pwrinst2ZOut(UINT16 nAddress, UINT8 nValue)
-{
- nAddress &= 0xFF;
-
- switch (nAddress) {
- case 0x00: {
- MSM6295Command(0, nValue);
- return;
- }
-
- case 0x08: {
- MSM6295Command(1, nValue);
- return;
- }
-
- case 0x10:
- case 0x11:
- case 0x12:
- case 0x13:
- case 0x14:
- case 0x15:
- case 0x16:
- case 0x17: {
- NMK112_okibank_write(nAddress & 0x07, nValue);
- return;
- }
-
- case 0x40: {
- BurnYM2203Write(0, 0, nValue);
- return;
- }
-
- case 0x41: {
- BurnYM2203Write(0, 1, nValue);
- return;
- }
-
- case 0x50: {
- if (SoundLatchReplyIndex > SoundLatchReplyMax) {
- SoundLatchReplyMax = -1;
- SoundLatchReplyIndex = 0;
- }
- SoundLatchReplyMax++;
- SoundLatchReply[SoundLatchReplyMax] = nValue;
- return;
- }
-
- case 0x51: {
- //???
- return;
- }
-
- case 0x80: {
- DrvZ80Bank = nValue & 0x07;
-
- ZetMapArea(0x8000, 0xbFFF, 0, RomZ80 + (DrvZ80Bank * 0x4000));
- ZetMapArea(0x8000, 0xbFFF, 2, RomZ80 + (DrvZ80Bank * 0x4000));
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 Port Write %x, %x\n"), nAddress, nValue);
- }
- }
-}
-
-UINT8 __fastcall pwrinst2ZRead(UINT16 a)
-{
- switch (a) {
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 Read => %04X\n"), a);
- }
- }
-
- return 0;
-}
-
-void __fastcall pwrinst2ZWrite(UINT16 a, UINT8 d)
-{
- switch (a) {
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 Write => %04X, %02X\n"), a, d);
- }
- }
-}
-
-static INT32 DrvExit()
-{
- EEPROMExit();
-
- MSM6295Exit(0);
- MSM6295Exit(1);
-
- CaveTileExit();
- CaveSpriteExit();
- CavePalExit();
-
- SekExit(); // Deallocate 68000s
- ZetExit();
-
- BurnYM2203Exit();
-
- SoundLatch = 0;
- DrvZ80Bank = 0;
-
- BurnFree(Mem);
-
- return 0;
-}
-
-static INT32 DrvDoReset()
-{
- SekOpen(0);
- SekReset();
- SekClose();
-
- ZetOpen(0);
- ZetReset();
- ZetClose();
-
- BurnYM2203Reset();
- MSM6295Reset(0);
- MSM6295Reset(1);
-
- EEPROMReset();
-
- nVideoIRQ = 1;
- nSoundIRQ = 1;
- nUnknownIRQ = 1;
-
- nIRQPending = 0;
-
- SoundLatch = 0;
- SoundLatchStatus = 0x0C;
-
- memset(SoundLatchReply, 0, sizeof(SoundLatchReply));
- SoundLatchReplyIndex = 0;
- SoundLatchReplyMax = -1;
-
- DrvZ80Bank = 0;
- NMK112Reset();
-
- return 0;
-}
-
-inline static UINT32 CalcCol(UINT16 nColour)
-{
- INT32 r, g, b;
-
- r = (nColour & 0x03E0) >> 2; // Red
- r |= r >> 5;
- g = (nColour & 0x7C00) >> 7; // Green
- g |= g >> 5;
- b = (nColour & 0x001F) << 3; // Blue
- b |= b >> 5;
-
- return BurnHighCol(r, g, b, 0);
-}
-
-static void DrvCalcPalette()
-{
- INT32 i;
- UINT16* ps;
- UINT32* pd;
-
- for (i = 0, ps = (UINT16*)CavePalSrc, pd = CavePalette; i < 0x2800; i++, ps++, pd++) {
- *pd = CalcCol(BURN_ENDIAN_SWAP_INT16(*ps));
- }
-}
-
-static INT32 DrvDraw()
-{
- CavePalUpdate4Bit(0, 128);
- DrvCalcPalette();
-
- CaveClearScreen(CavePalette[0x7f00]);
-
- if (bDrawScreen) {
-// CaveGetBitmap();
-
- CaveTileRender(1); // Render tiles
- }
-
- return 0;
-}
-
-inline static INT32 CheckSleep(INT32)
-{
- return 0;
-}
-
-static INT32 DrvFrame()
-{
- INT32 nCyclesVBlank;
- INT32 nInterleave = 100;
-
- INT32 nCyclesSegment;
-
- if (DrvReset) { // Reset machine
- DrvDoReset();
- }
-
- // Compile digital inputs
- DrvInput[0] = 0x0000; // Player 1
- DrvInput[1] = 0x0000; // Player 2
- for (INT32 i = 0; i < 11; i++) {
- DrvInput[0] |= (DrvJoy1[i] & 1) << i;
- DrvInput[1] |= (DrvJoy2[i] & 1) << i;
- }
- CaveClearOpposites(&DrvInput[0]);
- CaveClearOpposites(&DrvInput[1]);
-
- SekNewFrame();
- ZetNewFrame();
-
- SekOpen(0);
- ZetOpen(0);
-
- nCyclesTotal[0] = (INT32)((INT64)16000000 * nBurnCPUSpeedAdjust / (0x0100 * CAVE_REFRESHRATE));
- nCyclesTotal[1] = (INT32)(8000000 / CAVE_REFRESHRATE);
- nCyclesDone[0] = nCyclesDone[1] = 0;
-
- nCyclesVBlank = nCyclesTotal[0] - (INT32)((nCyclesTotal[0] * CAVE_VBLANK_LINES) / 271.5);
- bVBlank = false;
-
- for (INT32 i = 1; i <= nInterleave; i++) {
- INT32 nCurrentCPU = 0;
- INT32 nNext = i * nCyclesTotal[nCurrentCPU] / nInterleave;
-
- // Run 68000
-
- // See if we need to trigger the VBlank interrupt
- if (!bVBlank && nNext > nCyclesVBlank) {
- if (nCyclesDone[nCurrentCPU] < nCyclesVBlank) {
- nCyclesSegment = nCyclesVBlank - nCyclesDone[nCurrentCPU];
- if (!CheckSleep(nCurrentCPU)) { // See if this CPU is busywaiting
- nCyclesDone[nCurrentCPU] += SekRun(nCyclesSegment);
- } else {
- nCyclesDone[nCurrentCPU] += SekIdle(nCyclesSegment);
- }
- }
-
- if (pBurnDraw != NULL) {
- DrvDraw(); // Draw screen if needed
- }
-
-// CaveSpriteBuffer();
-
- bVBlank = true;
- nVideoIRQ = 0;
- UpdateIRQStatus();
- }
-
- nCyclesSegment = nNext - nCyclesDone[nCurrentCPU];
- if (!CheckSleep(nCurrentCPU)) { // See if this CPU is busywaiting
- nCyclesDone[nCurrentCPU] += SekRun(nCyclesSegment);
- } else {
- nCyclesDone[nCurrentCPU] += SekIdle(nCyclesSegment);
- }
-
- BurnTimerUpdate(i * (nCyclesTotal[1] / nInterleave));
- }
-
- SekClose();
-
- BurnTimerEndFrame(nCyclesTotal[1]);
-
- if (pBurnSoundOut) {
- BurnYM2203Update(pBurnSoundOut, nBurnSoundLen);
- MSM6295Render(0, pBurnSoundOut, nBurnSoundLen);
- MSM6295Render(1, pBurnSoundOut, nBurnSoundLen);
- }
-
- ZetClose();
-
- return 0;
-}
-
-// This routine is called first to determine how much memory is needed (MemEnd-(UINT8 *)0),
-// and then afterwards to set up all the pointers
-static INT32 MemIndex()
-{
- UINT8* Next; Next = Mem;
- Rom01 = Next; Next += 0x300000; // 68K program
- RomZ80 = Next; Next += 0x040000;
- CaveSpriteROM = Next; Next += 0x1000000 * 2;
- CaveTileROM[0] = Next; Next += 0x400000; // Tile layer 0
- CaveTileROM[1] = Next; Next += 0x400000; // Tile layer 1
- CaveTileROM[2] = Next; Next += 0x400000; // Tile layer 2
- CaveTileROM[3] = Next; Next += 0x200000; // Tile layer 3
- MSM6295ROM = Next; Next += 0x800000;
- RamStart = Next;
- Ram01 = Next; Next += 0x028000; // CPU #0 work RAM
- RamZ80 = Next; Next += 0x002000;
- CaveTileRAM[0] = Next; Next += 0x008000;
- CaveTileRAM[1] = Next; Next += 0x008000;
- CaveTileRAM[2] = Next; Next += 0x008000;
- CaveTileRAM[3] = Next; Next += 0x008000;
- CaveSpriteRAM = Next; Next += 0x008000;
- CavePalSrc = Next; Next += 0x005000; // palette
- RamEnd = Next;
- MemEnd = Next;
-
- return 0;
-}
-
-static void NibbleSwap1(UINT8* pData, INT32 nLen)
-{
- UINT8* pOrg = pData + nLen - 1;
- UINT8* pDest = pData + ((nLen - 1) << 1);
-
- for (INT32 i = 0; i < nLen; i++, pOrg--, pDest -= 2) {
- pDest[0] = *pOrg & 15;
- pDest[1] = *pOrg >> 4;
- }
-
- return;
-}
-
-static void NibbleSwap2(UINT8* pData, INT32 nLen)
-{
- UINT8* pOrg = pData + nLen - 1;
- UINT8* pDest = pData + ((nLen - 1) << 1);
-
- for (INT32 i = 0; i < nLen; i++, pOrg--, pDest -= 2) {
- pDest[1] = *pOrg & 15;
- pDest[0] = *pOrg >> 4;
- }
-
- return;
-}
-
-static INT32 LoadRoms()
-{
- BurnLoadRom(Rom01 + 0x000001, 0, 2);
- BurnLoadRom(Rom01 + 0x000000, 1, 2);
- BurnLoadRom(Rom01 + 0x100001, 2, 2);
- BurnLoadRom(Rom01 + 0x100000, 3, 2);
-
- BurnLoadRom(RomZ80, 4, 1);
-
- UINT8 *pTemp = (UINT8*)BurnMalloc(0xe00000);
- BurnLoadRom(pTemp + 0x000000, 5, 1);
- BurnLoadRom(pTemp + 0x200000, 6, 1);
- BurnLoadRom(pTemp + 0x400000, 7, 1);
- BurnLoadRom(pTemp + 0x600000, 8, 1);
- BurnLoadRom(pTemp + 0x800000, 9, 1);
- BurnLoadRom(pTemp + 0xa00000, 10, 1);
- BurnLoadRom(pTemp + 0xc00000, 11, 1);
- for (INT32 i = 0; i < 0xe00000; i++) {
- INT32 j = BITSWAP24(i,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7, 2,4,6,1,5,3, 0);
- if (((j & 6) == 0) || ((j & 6) == 6)) j ^= 6;
- CaveSpriteROM[j ^ 7] = (pTemp[i] >> 4) | (pTemp[i] << 4);
- }
- BurnFree(pTemp);
- NibbleSwap1(CaveSpriteROM, 0xe00000);
-
- BurnLoadRom(CaveTileROM[0], 12, 1);
- NibbleSwap2(CaveTileROM[0], 0x200000);
- BurnLoadRom(CaveTileROM[1], 13, 1);
- NibbleSwap2(CaveTileROM[1], 0x100000);
- BurnLoadRom(CaveTileROM[2], 14, 1);
- NibbleSwap2(CaveTileROM[2], 0x100000);
- BurnLoadRom(CaveTileROM[3], 15, 1);
- NibbleSwap2(CaveTileROM[3], 0x080000);
-
- // Load MSM6295 ADPCM data
- BurnLoadRom(MSM6295ROM + 0x000000, 16, 1);
- BurnLoadRom(MSM6295ROM + 0x200000, 17, 1);
- BurnLoadRom(MSM6295ROM + 0x400000, 18, 1);
- BurnLoadRom(MSM6295ROM + 0x600000, 19, 1);
-
- return 0;
-}
-
-static INT32 PlegendsLoadRoms()
-{
- BurnLoadRom(Rom01 + 0x000001, 0, 2);
- BurnLoadRom(Rom01 + 0x000000, 1, 2);
- BurnLoadRom(Rom01 + 0x100001, 2, 2);
- BurnLoadRom(Rom01 + 0x100000, 3, 2);
- BurnLoadRom(Rom01 + 0x200001, 4, 2);
- BurnLoadRom(Rom01 + 0x200000, 5, 2);
-
- BurnLoadRom(RomZ80, 6, 1);
-
- UINT8 *pTemp = (UINT8*)BurnMalloc(0x1000000);
- BurnLoadRom(pTemp + 0x000000, 7, 1);
- BurnLoadRom(pTemp + 0x200000, 8, 1);
- BurnLoadRom(pTemp + 0x400000, 9, 1);
- BurnLoadRom(pTemp + 0x600000, 10, 1);
- BurnLoadRom(pTemp + 0x800000, 11, 1);
- BurnLoadRom(pTemp + 0xa00000, 12, 1);
- BurnLoadRom(pTemp + 0xc00000, 13, 1);
- BurnLoadRom(pTemp + 0xe00000, 14, 1);
- for (INT32 i = 0; i < 0x1000000; i++) {
- INT32 j = BITSWAP24(i,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7, 2,4,6,1,5,3, 0);
- if (((j & 6) == 0) || ((j & 6) == 6)) j ^= 6;
- CaveSpriteROM[j ^ 7] = (pTemp[i] >> 4) | (pTemp[i] << 4);
- }
- BurnFree(pTemp);
- NibbleSwap1(CaveSpriteROM, 0x1000000);
-
- BurnLoadRom(CaveTileROM[0], 15, 1);
- NibbleSwap2(CaveTileROM[0], 0x200000);
- BurnLoadRom(CaveTileROM[1], 16, 1);
- NibbleSwap2(CaveTileROM[1], 0x200000);
- BurnLoadRom(CaveTileROM[2], 17, 1);
- NibbleSwap2(CaveTileROM[2], 0x200000);
- BurnLoadRom(CaveTileROM[3], 18, 1);
- NibbleSwap2(CaveTileROM[3], 0x080000);
-
- // Load MSM6295 ADPCM data
- BurnLoadRom(MSM6295ROM + 0x000000, 19, 1);
- BurnLoadRom(MSM6295ROM + 0x200000, 20, 1);
- BurnLoadRom(MSM6295ROM + 0x400000, 21, 1);
- BurnLoadRom(MSM6295ROM + 0x600000, 22, 1);
-
- return 0;
-}
-
-// Scan ram
-static INT32 DrvScan(INT32 nAction, INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin) { // Return minimum compatible version
- *pnMin = 0x029719;
- }
-
- EEPROMScan(nAction, pnMin); // Scan EEPROM
-
- if (nAction & ACB_VOLATILE) { // Scan volatile ram
- memset(&ba, 0, sizeof(ba));
- ba.Data = RamStart;
- ba.nLen = RamEnd - RamStart;
- ba.szName = "RAM";
- BurnAcb(&ba);
-
- SekScan(nAction);
- ZetScan(nAction);
-
- BurnYM2203Scan(nAction, pnMin);
- MSM6295Scan(0, nAction);
- MSM6295Scan(1, nAction);
- NMK112_Scan(nAction);
-
- SCAN_VAR(nVideoIRQ);
- SCAN_VAR(nSoundIRQ);
- SCAN_VAR(nUnknownIRQ);
- SCAN_VAR(bVBlank);
-
- CaveScanGraphics();
-
- SCAN_VAR(DrvInput);
- SCAN_VAR(SoundLatch);
- SCAN_VAR(DrvZ80Bank);
-
- if (nAction & ACB_WRITE) {
- ZetOpen(0);
- ZetMapArea(0x8000, 0xbFFF, 0, RomZ80 + (DrvZ80Bank * 0x4000));
- ZetMapArea(0x8000, 0xbFFF, 2, RomZ80 + (DrvZ80Bank * 0x4000));
- ZetClose();
-
- CaveRecalcPalette = 1;
- }
- }
-
- return 0;
-}
-
-static void DrvFMIRQHandler(INT32, INT32 nStatus)
-{
- if (nStatus & 1) {
- ZetSetIRQLine(0xff, CPU_IRQSTATUS_ACK);
- } else {
- ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
- }
-}
-
-static INT32 DrvSynchroniseStream(INT32 nSoundRate)
-{
- return (INT64)ZetTotalCycles() * nSoundRate / 8000000;
-}
-
-static double DrvGetTime()
-{
- return (double)ZetTotalCycles() / 8000000;
-}
-
-static INT32 drvZInit()
-{
- ZetInit(0);
- ZetOpen(0);
- ZetSetInHandler(pwrinst2ZIn);
- ZetSetOutHandler(pwrinst2ZOut);
- ZetSetReadHandler(pwrinst2ZRead);
- ZetSetWriteHandler(pwrinst2ZWrite);
-
- // ROM bank 1
- ZetMapArea (0x0000, 0x7FFF, 0, RomZ80 + 0x0000); // Direct Read from ROM
- ZetMapArea (0x0000, 0x7FFF, 2, RomZ80 + 0x0000); // Direct Fetch from ROM
- // ROM bank 2
- ZetMapArea (0x8000, 0xbFFF, 0, RomZ80 + 0x8000); // Direct Read from ROM
- ZetMapArea (0x8000, 0xbFFF, 2, RomZ80 + 0x8000); //
- // RAM
- ZetMapArea (0xE000, 0xFFFF, 0, RamZ80); // Direct Read from RAM
- ZetMapArea (0xE000, 0xFFFF, 1, RamZ80); // Direct Write to RAM
- ZetMapArea (0xE000, 0xFFFF, 2, RamZ80); //
- ZetClose();
-
- return 0;
-}
-
-static INT32 DrvInit()
-{
- INT32 nLen;
-
- BurnSetRefreshRate(CAVE_REFRESHRATE);
-
- // Find out how much memory is needed
- Mem = NULL;
- MemIndex();
- nLen = MemEnd - (UINT8 *)0;
- if ((Mem = (UINT8 *)BurnMalloc(nLen)) == NULL) {
- return 1;
- }
- memset(Mem, 0, nLen); // blank all memory
- MemIndex(); // Index the allocated memory
-
- // Load the roms into memory
- if (LoadRoms()) {
- return 1;
- }
-
- EEPROMInit(&eeprom_interface_93C46);
-
- {
- SekInit(0, 0x68000); // Allocate 68000
- SekOpen(0);
-
- // Map 68000 memory:
- SekMapMemory(Rom01, 0x000000, 0x1FFFFF, MAP_ROM); // CPU 0 ROM
- SekMapMemory(Ram01, 0x400000, 0x40FFFF, MAP_RAM);
- SekMapMemory(CaveTileRAM[2], 0x800000, 0x807FFF, MAP_RAM);
- SekMapMemory(CaveTileRAM[0], 0x880000, 0x887FFF, MAP_RAM);
- SekMapMemory(CaveTileRAM[1], 0x900000, 0x907FFF, MAP_RAM);
- SekMapMemory(CaveTileRAM[3] + 0x4000, 0x980000, 0x983FFF, MAP_RAM);
- SekMapMemory(CaveTileRAM[3] + 0x4000, 0x984000, 0x987FFF, MAP_RAM);
- SekMapMemory(CaveSpriteRAM, 0xa00000, 0xa07FFF, MAP_RAM);
- SekMapMemory(Ram01 + 0x10000, 0xa08000, 0xa1FFFF, MAP_RAM);
- SekMapMemory(CavePalSrc, 0xf00000, 0xf04FFF, MAP_RAM); // Palette RAM
- SekSetReadWordHandler(0, pwrinst2ReadWord);
- SekSetWriteWordHandler(0, pwrinst2WriteWord);
- SekSetReadByteHandler(0, pwrinst2ReadByte);
- SekSetWriteByteHandler(0, pwrinst2WriteByte);
- SekClose();
- }
-
- drvZInit();
-
- CavePalInit(0x8000);
- CaveTileInit();
- CaveSpriteInit(3, 0x0e00000 * 2);
- CaveTileInitLayer(0, 0x400000, 4, 0x0800);
- CaveTileInitLayer(1, 0x200000, 4, 0x1000);
- CaveTileInitLayer(2, 0x200000, 4, 0x1800);
- CaveTileInitLayer(3, 0x100000, 4, 0x2000);
-
- nCaveExtraXOffset = -112;
- nCaveExtraYOffset = 1;
-
- BurnYM2203Init(1, 4000000, &DrvFMIRQHandler, DrvSynchroniseStream, DrvGetTime, 0);
- BurnTimerAttachZet(8000000);
- BurnYM2203SetRoute(0, BURN_SND_YM2203_YM2203_ROUTE, 0.80, BURN_SND_ROUTE_BOTH);
- BurnYM2203SetRoute(0, BURN_SND_YM2203_AY8910_ROUTE_1, 0.40, BURN_SND_ROUTE_BOTH);
- BurnYM2203SetRoute(0, BURN_SND_YM2203_AY8910_ROUTE_2, 0.40, BURN_SND_ROUTE_BOTH);
- BurnYM2203SetRoute(0, BURN_SND_YM2203_AY8910_ROUTE_3, 0.40, BURN_SND_ROUTE_BOTH);
-
- MSM6295Init(0, 3000000 / 165, 1);
- MSM6295Init(1, 3000000 / 165, 1);
- MSM6295SetRoute(0, 0.80, BURN_SND_ROUTE_BOTH);
- MSM6295SetRoute(1, 1.00, BURN_SND_ROUTE_BOTH);
-
- NMK112_init(0, MSM6295ROM, MSM6295ROM + 0x400000, 0x400000, 0x400000);
-
- if (!strcmp(BurnDrvGetTextA(DRV_NAME), "pwrinst2")) {
- UINT16 *rom = (UINT16 *)Rom01;
- rom[0xD46C/2] = 0xD482; // kurara dash fix 0xd400 -> 0xd482
- }
-
- bDrawScreen = true;
-
- DrvDoReset(); // Reset machine
-
- return 0;
-}
-
-static INT32 PlegendsInit()
-{
- INT32 nLen;
-
- BurnSetRefreshRate(CAVE_REFRESHRATE);
-
- // Find out how much memory is needed
- Mem = NULL;
- MemIndex();
- nLen = MemEnd - (UINT8 *)0;
- if ((Mem = (UINT8 *)BurnMalloc(nLen)) == NULL) {
- return 1;
- }
- memset(Mem, 0, nLen); // blank all memory
- MemIndex(); // Index the allocated memory
-
- // Load the roms into memory
- if (PlegendsLoadRoms()) {
- return 1;
- }
-
- EEPROMInit(&eeprom_interface_93C46);
-
- {
- SekInit(0, 0x68000); // Allocate 68000
- SekOpen(0);
-
- // Map 68000 memory:
- SekMapMemory(Rom01, 0x000000, 0x1FFFFF, MAP_ROM); // CPU 0 ROM
- SekMapMemory(Ram01, 0x400000, 0x40FFFF, MAP_RAM);
- SekMapMemory(Rom01 + 0x200000, 0x600000, 0x6FFFFF, MAP_ROM);
- SekMapMemory(CaveTileRAM[2], 0x800000, 0x807FFF, MAP_RAM);
- SekMapMemory(CaveTileRAM[0], 0x880000, 0x887FFF, MAP_RAM);
- SekMapMemory(CaveTileRAM[1], 0x900000, 0x907FFF, MAP_RAM);
- SekMapMemory(CaveTileRAM[3] + 0x4000, 0x980000, 0x983FFF, MAP_RAM);
- SekMapMemory(CaveTileRAM[3] + 0x4000, 0x984000, 0x987FFF, MAP_RAM);
- SekMapMemory(CaveSpriteRAM, 0xa00000, 0xa07FFF, MAP_RAM);
- SekMapMemory(Ram01 + 0x10000, 0xa08000, 0xa1FFFF, MAP_RAM);
- SekMapMemory(CavePalSrc, 0xf00000, 0xf04FFF, MAP_RAM); // Palette RAM
- SekSetReadWordHandler(0, pwrinst2ReadWord);
- SekSetWriteWordHandler(0, pwrinst2WriteWord);
- SekSetReadByteHandler(0, pwrinst2ReadByte);
- SekSetWriteByteHandler(0, pwrinst2WriteByte);
- SekClose();
- }
-
- drvZInit();
-
- CavePalInit(0x8000);
- CaveTileInit();
- CaveSpriteInit(3, 0x01000000 * 2);
- CaveTileInitLayer(0, 0x400000, 4, 0x0800);
- CaveTileInitLayer(1, 0x400000, 4, 0x1000);
- CaveTileInitLayer(2, 0x400000, 4, 0x1800);
- CaveTileInitLayer(3, 0x100000, 4, 0x2000);
-
- nCaveExtraXOffset = -112;
- nCaveExtraYOffset = 1;
-
- BurnYM2203Init(1, 4000000, &DrvFMIRQHandler, DrvSynchroniseStream, DrvGetTime, 0);
- BurnTimerAttachZet(8000000);
- BurnYM2203SetRoute(0, BURN_SND_YM2203_YM2203_ROUTE, 0.80, BURN_SND_ROUTE_BOTH);
- BurnYM2203SetRoute(0, BURN_SND_YM2203_AY8910_ROUTE_1, 0.40, BURN_SND_ROUTE_BOTH);
- BurnYM2203SetRoute(0, BURN_SND_YM2203_AY8910_ROUTE_2, 0.40, BURN_SND_ROUTE_BOTH);
- BurnYM2203SetRoute(0, BURN_SND_YM2203_AY8910_ROUTE_3, 0.40, BURN_SND_ROUTE_BOTH);
-
- MSM6295Init(0, 3000000 / 165, 1);
- MSM6295Init(1, 3000000 / 165, 1);
- MSM6295SetRoute(0, 0.80, BURN_SND_ROUTE_BOTH);
- MSM6295SetRoute(1, 1.00, BURN_SND_ROUTE_BOTH);
-
- bDrawScreen = true;
-
- DrvDoReset(); // Reset machine
-
- return 0;
-}
-
-// Rom information
-static struct BurnRomInfo pwrinst2RomDesc[] = {
- { "g02.u45", 0x080000, 0x7b33bc43, BRF_ESS | BRF_PRG }, // 0 CPU #0 code
- { "g02.u44", 0x080000, 0x8f6f6637, BRF_ESS | BRF_PRG }, // 1
- { "g02.u43", 0x080000, 0x178e3d24, BRF_ESS | BRF_PRG }, // 2
- { "g02.u42", 0x080000, 0xa0b4ee99, BRF_ESS | BRF_PRG }, // 3
-
- { "g02.u3a", 0x020000, 0xebea5e1e, BRF_ESS | BRF_PRG }, // 4 Z80 Code
-
- { "g02.u61", 0x200000, 0x91e30398, BRF_GRA }, // 5 Sprite data
- { "g02.u62", 0x200000, 0xd9455dd7, BRF_GRA }, // 6
- { "g02.u63", 0x200000, 0x4d20560b, BRF_GRA }, // 7
- { "g02.u64", 0x200000, 0xb17b9b6e, BRF_GRA }, // 8
- { "g02.u65", 0x200000, 0x08541878, BRF_GRA }, // 9
- { "g02.u66", 0x200000, 0xbecf2a36, BRF_GRA }, // 10
- { "g02.u67", 0x200000, 0x52fe2b8b, BRF_GRA }, // 11
-
- { "g02.u78", 0x200000, 0x1eca63d2, BRF_GRA }, // 12 Layer 0 Tile data
- { "g02.u81", 0x100000, 0x8a3ff685, BRF_GRA }, // 13 Layer 1 Tile data
- { "g02.u89", 0x100000, 0x373e1f73, BRF_GRA }, // 14 Layer 2 Tile data
- { "g02.82a", 0x080000, 0x4b3567d6, BRF_GRA }, // 15 Layer 3 Tile data
-
- { "g02.u53", 0x200000, 0xc4bdd9e0, BRF_SND }, // 16 MSM6295 #1 ADPCM data
- { "g02.u54", 0x200000, 0x1357d50e, BRF_SND }, // 17
- { "g02.u55", 0x200000, 0x2d102898, BRF_SND }, // 18 MSM6295 #2 ADPCM data
- { "g02.u56", 0x200000, 0x9ff50dda, BRF_SND }, // 19
-};
-
-
-STD_ROM_PICK(pwrinst2)
-STD_ROM_FN(pwrinst2)
-
-static struct BurnRomInfo pwrinst2jRomDesc[] = {
- { "g02j.u45", 0x080000, 0x42d0abd7, BRF_ESS | BRF_PRG }, // 0 CPU #0 code
- { "g02j.u44", 0x080000, 0x362b7af3, BRF_ESS | BRF_PRG }, // 1
- { "g02j.u43", 0x080000, 0xc94c596b, BRF_ESS | BRF_PRG }, // 2
- { "g02j.u42", 0x080000, 0x4f4c8270, BRF_ESS | BRF_PRG }, // 3
-
- { "g02j.u3a", 0x020000, 0xeead01f1, BRF_ESS | BRF_PRG }, // 4 Z80 Code
-
- { "g02.u61", 0x200000, 0x91e30398, BRF_GRA }, // 5 Sprite data
- { "g02.u62", 0x200000, 0xd9455dd7, BRF_GRA }, // 6
- { "g02.u63", 0x200000, 0x4d20560b, BRF_GRA }, // 7
- { "g02.u64", 0x200000, 0xb17b9b6e, BRF_GRA }, // 8
- { "g02.u65", 0x200000, 0x08541878, BRF_GRA }, // 9
- { "g02.u66", 0x200000, 0xbecf2a36, BRF_GRA }, // 10
- { "g02.u67", 0x200000, 0x52fe2b8b, BRF_GRA }, // 11
-
- { "g02.u78", 0x200000, 0x1eca63d2, BRF_GRA }, // 12 Layer 0 Tile data
- { "g02.u81", 0x100000, 0x8a3ff685, BRF_GRA }, // 13 Layer 1 Tile data
- { "g02.u89", 0x100000, 0x373e1f73, BRF_GRA }, // 14 Layer 2 Tile data
- { "g02j.82a", 0x080000, 0x3be86fe1, BRF_GRA }, // 15 Layer 3 Tile data
-
- { "g02.u53", 0x200000, 0xc4bdd9e0, BRF_SND }, // 16 MSM6295 #1 ADPCM data
- { "g02.u54", 0x200000, 0x1357d50e, BRF_SND }, // 17
- { "g02.u55", 0x200000, 0x2d102898, BRF_SND }, // 18 MSM6295 #2 ADPCM data
- { "g02.u56", 0x200000, 0x9ff50dda, BRF_SND }, // 19
-};
-
-
-STD_ROM_PICK(pwrinst2j)
-STD_ROM_FN(pwrinst2j)
-
-static struct BurnRomInfo plegendsRomDesc[] = {
- { "d12.u45", 0x080000, 0xed8a2e3d, BRF_ESS | BRF_PRG }, // 0 CPU #0 code
- { "d13.u44", 0x080000, 0x25821731, BRF_ESS | BRF_PRG }, // 1
- { "d14.u2", 0x080000, 0xc2cb1402, BRF_ESS | BRF_PRG }, // 2
- { "d16.u3", 0x080000, 0x50a1c63e, BRF_ESS | BRF_PRG }, // 3
- { "d15.u4", 0x080000, 0x6352cec0, BRF_ESS | BRF_PRG }, // 4
- { "d17.u5", 0x080000, 0x7af810d8, BRF_ESS | BRF_PRG }, // 5
-
- { "d19.u3", 0x040000, 0x47598459, BRF_ESS | BRF_PRG }, // 6 Z80 Code
-
- { "g02.u61", 0x200000, 0x91e30398, BRF_GRA }, // 7 Sprite data
- { "g02.u62", 0x200000, 0xd9455dd7, BRF_GRA }, // 8
- { "g02.u63", 0x200000, 0x4d20560b, BRF_GRA }, // 9
- { "g02.u64", 0x200000, 0xb17b9b6e, BRF_GRA }, // 10
- { "g02.u65", 0x200000, 0x08541878, BRF_GRA }, // 11
- { "g02.u66", 0x200000, 0xbecf2a36, BRF_GRA }, // 12
- { "atgs.u1", 0x200000, 0xaa6f34a9, BRF_GRA }, // 13
- { "atgs.u2", 0x200000, 0x553eda27, BRF_GRA }, // 14
-
- { "atgs.u78", 0x200000, 0x16710ecb, BRF_GRA }, // 15 Layer 0 Tile data
- { "atgs.u81", 0x200000, 0xcb2aca91, BRF_GRA }, // 16 Layer 1 Tile data
- { "atgs.u89", 0x200000, 0x65f45a0f, BRF_GRA }, // 17 Layer 2 Tile data
- { "text.u82", 0x080000, 0xf57333ea, BRF_GRA }, // 18 Layer 3 Tile data
-
- { "g02.u53", 0x200000, 0xc4bdd9e0, BRF_SND }, // 19 MSM6295 #1 ADPCM data
- { "g02.u54", 0x200000, 0x1357d50e, BRF_SND }, // 20
- { "g02.u55", 0x200000, 0x2d102898, BRF_SND }, // 21 MSM6295 #2 ADPCM data
- { "g02.u56", 0x200000, 0x9ff50dda, BRF_SND }, // 22
-};
-
-
-STD_ROM_PICK(plegends)
-STD_ROM_FN(plegends)
-
-static struct BurnRomInfo plegendsjRomDesc[] = {
- { "prog.u45", 0x080000, 0x94f53db2, BRF_ESS | BRF_PRG }, // 0 CPU #0 code
- { "prog.u44", 0x080000, 0xdb0ad756, BRF_ESS | BRF_PRG }, // 1
- { "pr12.u2", 0x080000, 0x0e202559, BRF_ESS | BRF_PRG }, // 2
- { "pr12.u3", 0x080000, 0x54742f21, BRF_ESS | BRF_PRG }, // 3
- { "d15.u4", 0x080000, 0x6352cec0, BRF_ESS | BRF_PRG }, // 4
- { "d17.u5", 0x080000, 0x7af810d8, BRF_ESS | BRF_PRG }, // 5
-
- { "sound.u3", 0x020000, 0x36f71520, BRF_ESS | BRF_PRG }, // 6 Z80 Code
-
- { "g02.u61", 0x200000, 0x91e30398, BRF_GRA }, // 7 Sprite data
- { "g02.u62", 0x200000, 0xd9455dd7, BRF_GRA }, // 8
- { "g02.u63", 0x200000, 0x4d20560b, BRF_GRA }, // 9
- { "g02.u64", 0x200000, 0xb17b9b6e, BRF_GRA }, // 10
- { "g02.u65", 0x200000, 0x08541878, BRF_GRA }, // 11
- { "g02.u66", 0x200000, 0xbecf2a36, BRF_GRA }, // 12
- { "atgs.u1", 0x200000, 0xaa6f34a9, BRF_GRA }, // 13
- { "atgs.u2", 0x200000, 0x553eda27, BRF_GRA }, // 14
-
- { "atgs.u78", 0x200000, 0x16710ecb, BRF_GRA }, // 15 Layer 0 Tile data
- { "atgs.u81", 0x200000, 0xcb2aca91, BRF_GRA }, // 16 Layer 1 Tile data
- { "atgs.u89", 0x200000, 0x65f45a0f, BRF_GRA }, // 17 Layer 2 Tile data
- { "text.u82", 0x080000, 0xf57333ea, BRF_GRA }, // 18 Layer 3 Tile data
-
- { "g02.u53", 0x200000, 0xc4bdd9e0, BRF_SND }, // 19 MSM6295 #1 ADPCM data
- { "g02.u54", 0x200000, 0x1357d50e, BRF_SND }, // 20
- { "g02.u55", 0x200000, 0x2d102898, BRF_SND }, // 21 MSM6295 #2 ADPCM data
- { "g02.u56", 0x200000, 0x9ff50dda, BRF_SND }, // 22
-};
-
-
-STD_ROM_PICK(plegendsj)
-STD_ROM_FN(plegendsj)
-
-struct BurnDriver BurnDrvPwrinst2 = {
- "pwrinst2", NULL, NULL, NULL, "1994",
- "Power Instinct 2 (USA, ver. 94/04/08)\0", NULL, "Atlus", "Cave",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_CAVE_68K_Z80, GBF_VSFIGHT, FBF_PWRINST,
- NULL, pwrinst2RomInfo, pwrinst2RomName, NULL, NULL, pwrinst2InputInfo, NULL,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan,
- &CaveRecalcPalette, 0x8000, 320, 240, 4, 3
-};
-
-struct BurnDriver BurnDrvPwrinst2j = {
- "pwrinst2j", "pwrinst2", NULL, NULL, "1994",
- "Gouketsuji Ichizoku 2 (Japan, ver. 94/04/08)\0", NULL, "Atlus", "Cave",
- L"\u8C6A\u8840\u5BFA\u4E00\u65CF \uFF12 (Japan, ver. 94/04/08)\0Gouketsuji Ichizoku 2\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_16BIT_ONLY, 2, HARDWARE_CAVE_68K_Z80, GBF_VSFIGHT, FBF_PWRINST,
- NULL, pwrinst2jRomInfo, pwrinst2jRomName, NULL, NULL, pwrinst2InputInfo, NULL,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan,
- &CaveRecalcPalette, 0x8000, 320, 240, 4, 3
-};
-
-struct BurnDriver BurnDrvPlegends = {
- "plegends", NULL, NULL, NULL, "1995",
- "Gouketsuji Gaiden Legends (USA, ver. 95/06/20)\0", NULL, "Atlus / KM International", "Cave",
- L"\u8C6A\u8840\u5BFA\u5916\u4F1D Gogetsuji Legends (USA, ver. 95/06/20)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_CAVE_68K_Z80, GBF_VSFIGHT, FBF_PWRINST,
- NULL, plegendsRomInfo, plegendsRomName, NULL, NULL, pwrinst2InputInfo, NULL,
- PlegendsInit, DrvExit, DrvFrame, DrvDraw, DrvScan,
- &CaveRecalcPalette, 0x8000, 320, 240, 4, 3
-};
-
-struct BurnDriver BurnDrvPlegendsj = {
- "plegendsj", "plegends", NULL, NULL, "1995",
- "Gouketsuji Gaiden Saikyou Densetsu (Japan, ver. 95/06/20)\0", NULL, "Atlus", "Cave",
- L"\u8C6A\u8840\u5BFA\u5916\u4F1D Gogetsuji \u6700\u5F37\u4F1D\u8AAC (Japan, ver. 95/06/20)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_16BIT_ONLY, 2, HARDWARE_CAVE_68K_Z80, GBF_VSFIGHT, FBF_PWRINST,
- NULL, plegendsjRomInfo, plegendsjRomName, NULL, NULL, pwrinst2InputInfo, NULL,
- PlegendsInit, DrvExit, DrvFrame, DrvDraw, DrvScan,
- &CaveRecalcPalette, 0x8000, 320, 240, 4, 3
-};
diff --git a/jan/src/burn/drv/cave/d_sailormn.cpp b/jan/src/burn/drv/cave/d_sailormn.cpp
deleted file mode 100644
index 2e57aa878..000000000
--- a/jan/src/burn/drv/cave/d_sailormn.cpp
+++ /dev/null
@@ -1,1883 +0,0 @@
-// Pretty Soldier Sailor Moon & Air Gallet
-#include "cave.h"
-#include "msm6295.h"
-#include "burn_ym2151.h"
-
-#include "bitswap.h"
-
-#define CAVE_VBLANK_LINES (271.5 - 240)
-// #define CAVE_VBLANK_LINES (12)
-
-static UINT8 DrvJoy1[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
-static UINT8 DrvJoy2[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
-static UINT16 DrvInput[2] = {0x0000, 0x0000};
-
-static UINT8 *Mem = NULL, *MemEnd = NULL;
-static UINT8 *RamStart, *RamEnd;
-static UINT8 *Rom01, *Rom02, *RomZ80;
-static UINT8 *Ram01, *Ram02, *Ram03, *RamZ80;
-static UINT8 *DefEEPROM;
-
-static UINT8 DrvReset = 0;
-static UINT8 bDrawScreen;
-static INT8 nVBlank;
-
-static INT32 nCurrentBank;
-
-static INT32 SoundLatch;
-static INT32 SoundLatchReply[48];
-static INT32 SoundLatchStatus;
-
-static INT32 SoundLatchReplyIndex;
-static INT32 SoundLatchReplyMax;
-
-static INT8 nVideoIRQ;
-static INT8 nSoundIRQ;
-static INT8 nUnknownIRQ;
-
-static INT32 nCaveCyclesDone[2];
-
-static INT32 agalletamode = 0;
-static INT32 nWhichGame; // 0 - sailormn/sailormno
- // 1 - agallet
-
-
-static struct BurnInputInfo sailormnInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy1 + 8, "p1 coin"},
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 7, "p1 start"},
-
- {"P1 Up", BIT_DIGITAL, DrvJoy1 + 0, "p1 up"},
- {"P1 Down", BIT_DIGITAL, DrvJoy1 + 1, "p1 down"},
- {"P1 Left", BIT_DIGITAL, DrvJoy1 + 2, "p1 left"},
- {"P1 Right", BIT_DIGITAL, DrvJoy1 + 3, "p1 right"},
- {"P1 Button 1", BIT_DIGITAL, DrvJoy1 + 4, "p1 fire 1"},
- {"P1 Button 2", BIT_DIGITAL, DrvJoy1 + 5, "p1 fire 2"},
- {"P1 Button 3", BIT_DIGITAL, DrvJoy1 + 6, "p1 fire 3"},
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy2 + 8, "p2 coin"},
- {"P2 Start", BIT_DIGITAL, DrvJoy2 + 7, "p2 start"},
-
- {"P2 Up", BIT_DIGITAL, DrvJoy2 + 0, "p2 up"},
- {"P2 Down", BIT_DIGITAL, DrvJoy2 + 1, "p2 down"},
- {"P2 Left", BIT_DIGITAL, DrvJoy2 + 2, "p2 left"},
- {"P2 Right", BIT_DIGITAL, DrvJoy2 + 3, "p2 right"},
- {"P2 Button 1", BIT_DIGITAL, DrvJoy2 + 4, "p2 fire 1"},
- {"P2 Button 2", BIT_DIGITAL, DrvJoy2 + 5, "p2 fire 2"},
- {"P2 Button 3", BIT_DIGITAL, DrvJoy2 + 6, "p2 fire 3"},
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset"},
- {"Diagnostics", BIT_DIGITAL, DrvJoy1 + 9, "diag"},
- {"Service", BIT_DIGITAL, DrvJoy2 + 9, "service"},
-};
-
-STDINPUTINFO(sailormn)
-
-static void UpdateIRQStatus()
-{
- INT32 nIRQPending = (nVideoIRQ == 0 || nSoundIRQ == 0 || nUnknownIRQ == 0);
- SekSetIRQLine(1, nIRQPending ? CPU_IRQSTATUS_ACK : CPU_IRQSTATUS_NONE);
-}
-
-static void drvZ80Bankswitch(INT32 nBank)
-{
- nBank &= 0x1F;
- if (nBank != nCurrentBank) {
- UINT8* nStartAddress = RomZ80 + (nBank << 14);
- ZetMapArea(0x4000, 0x7FFF, 0, nStartAddress);
- ZetMapArea(0x4000, 0x7FFF, 2, nStartAddress);
- nCurrentBank = nBank;
- }
-}
-
-static void drvYM2151IRQHandler(INT32 nStatus)
-{
- if (nStatus) {
- ZetSetIRQLine(0xff, CPU_IRQSTATUS_ACK);
- } else {
- ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
- }
-}
-
-static UINT8 __fastcall sailormnZIn(UINT16 nAddress)
-{
- nAddress &= 0xFF;
-
- switch (nAddress) {
- case 0x20: {
-// bprintf(PRINT_NORMAL, "Z80 read thingie.\n");
-// int nStatus = SoundLatchStatus;
-// SoundLatchStatus &= ~2;
-// return nStatus;
-
- return 0;
- }
-
- case 0x30:
-// bprintf(PRINT_NORMAL, "Z80 read soundlatch(lo)\n");
- SoundLatchStatus |= 0x04;
- return SoundLatch & 0xFF;
-
- case 0x40:
-// bprintf(PRINT_NORMAL, "Z80 read soundlatch(hi)\n");
- SoundLatchStatus |= 0x08;
- return SoundLatch >> 8;
-
- case 0x51:
-// bprintf(PRINT_NORMAL, "YM2151 status read.\n");
- return BurnYM2151ReadStatus();
- case 0x60:
-// bprintf(PRINT_NORMAL, "MSM6295 #0 status read.\n");
- return MSM6295ReadStatus(0);
- case 0x80:
-// bprintf(PRINT_NORMAL, "MSM6295 #1 status read.\n");
- return MSM6295ReadStatus(1);
- }
-
- return 0;
-}
-
-static void __fastcall sailormnZOut(UINT16 nAddress, UINT8 nValue)
-{
- nAddress &= 0xFF;
-
- switch (nAddress) {
-
- case 0x00:
- drvZ80Bankswitch(nValue);
- break;
-
- case 0x10:
-// SoundLatchStatus |= 0x02;
-// SoundLatchReply = nValue;
- if (SoundLatchReplyIndex > SoundLatchReplyMax) {
- SoundLatchReplyMax = -1;
- SoundLatchReplyIndex = 0;
- }
- SoundLatchReplyMax++;
- SoundLatchReply[SoundLatchReplyMax] = nValue;
- break;
-
- case 0x50:
- BurnYM2151SelectRegister(nValue);
- break;
- case 0x51:
-// bprintf(PRINT_NORMAL, "YM2151 reg %02X -> %02X\n", CaveCurrentYM2151Register, nValue);
- BurnYM2151WriteRegister(nValue);
- break;
-
- case 0x60:
-// bprintf(PRINT_NORMAL, "MSM6295 #0 command sent.\n");
- MSM6295Command(0, nValue);
- break;
- case 0x70:
- MSM6295SetBank(0, MSM6295ROM + 0x000000 + (nValue & 0x0f) * 0x20000, 0x00000, 0x1ffff);
- MSM6295SetBank(0, MSM6295ROM + 0x000000 + (nValue & 0xf0) * 0x02000, 0x20000, 0x3ffff);
- break;
- case 0x80:
-// bprintf(PRINT_NORMAL, "MSM6295 #1 command sent.\n");
- MSM6295Command(1, nValue);
- break;
- case 0xC0:
- MSM6295SetBank(1, MSM6295ROM + 0x200000 + (nValue & 0x0f) * 0x20000, 0x00000, 0x1ffff);
- MSM6295SetBank(1, MSM6295ROM + 0x200000 + (nValue & 0xf0) * 0x02000, 0x20000, 0x3ffff);
- break;
- }
-}
-
-static INT32 drvZInit()
-{
- ZetInit(0);
- ZetOpen(0);
-
- ZetSetInHandler(sailormnZIn);
- ZetSetOutHandler(sailormnZOut);
-
- // ROM bank 1
- ZetMapArea (0x0000, 0x3FFF, 0, RomZ80 + 0x0000); // Direct Read from ROM
- ZetMapArea (0x0000, 0x3FFF, 2, RomZ80 + 0x0000); // Direct Fetch from ROM
- // ROM bank 2
- ZetMapArea (0x4000, 0x7FFF, 0, RomZ80 + 0x0000); // Direct Read from ROM
- ZetMapArea (0x4000, 0x7FFF, 2, RomZ80 + 0x0000); //
- // RAM
- ZetMapArea (0xC000, 0xDFFF, 0, RamZ80); // Direct Read from RAM
- ZetMapArea (0xC000, 0xDFFF, 1, RamZ80); // Direct Write to RAM
- ZetMapArea (0xC000, 0xDFFF, 2, RamZ80); //
- // RAM mirror
- ZetMapArea (0xE000, 0xFFFF, 0, RamZ80); // Direct Read from RAM
- ZetMapArea (0xE000, 0xFFFF, 1, RamZ80); // Direct Write to RAM
- ZetMapArea (0xE000, 0xFFFF, 2, RamZ80); //
-
- ZetClose();
-
- return 0;
-}
-
-static UINT8 __fastcall sailormnReadByte(UINT32 sekAddress)
-{
-// bprintf(PRINT_NORMAL, "Attempt to read byte value of location %x\n", sekAddress);
-
- switch (sekAddress) {
- case 0xB80000:
- case 0xB80001: {
- UINT8 nRet = ((nVBlank ^ 1) << 2) | (nUnknownIRQ << 1) | nVideoIRQ;
- return nRet;
- }
- case 0xB80002:
- case 0xB80003: {
- UINT8 nRet = (nUnknownIRQ << 1) | nVideoIRQ;
- return nRet;
- }
- case 0xB80004:
- case 0xB80005: {
- UINT8 nRet = (nUnknownIRQ << 1) | nVideoIRQ;
- nVideoIRQ = 1;
- UpdateIRQStatus();
- return nRet;
- }
- case 0xB80006:
- case 0xB80007: {
- UINT8 nRet = (nUnknownIRQ << 1) | nVideoIRQ;
- nUnknownIRQ = 1;
- UpdateIRQStatus();
- return nRet;
- }
-
- case 0x600000:
- return (DrvInput[0] >> 8) ^ 0xFF;
- case 0x600001:
- return (DrvInput[0] & 0xFF) ^ 0xFF;
- case 0x600002:
- return ((DrvInput[1] >> 8) ^ 0xF7) | (EEPROMRead() << 3);
- case 0x600003:
- return (DrvInput[1] & 0xFF) ^ 0xFF;
-
-#if 0
- case 0xB8006C:
- case 0xB8006D:
- bprintf(PRINT_NORMAL, "Soundlatch status read (byte).\n");
-// return SoundLatchStatus & 3;
- return 0;
- case 0xB8006E:
- case 0xB8006F:
- bprintf(PRINT_NORMAL, "Sound latch read (byte).\n");
-// SoundLatchStatus = 2;
-// return SoundLatchReply;
- return 0;
-#endif
-
- default: {
-// bprintf(PRINT_NORMAL, "Attempt to read byte value of location %x\n", sekAddress);
- }
- }
- return 0;
-}
-
-static UINT16 __fastcall sailormnReadWord(UINT32 sekAddress)
-{
-// bprintf(PRINT_NORMAL, "Attempt to read word value of location %x\n", sekAddress);
-
- switch (sekAddress) {
- case 0xB80000: {
- UINT16 nRet = ((nVBlank ^ 1) << 2) | (nUnknownIRQ << 1) | nVideoIRQ;
- return nRet;
- }
- case 0xB80002: {
- UINT16 nRet = (nUnknownIRQ << 1) | nVideoIRQ;
- return nRet;
- }
- case 0xB80004: {
- UINT16 nRet = (nUnknownIRQ << 1) | nVideoIRQ;
- nVideoIRQ = 1;
- UpdateIRQStatus();
- return nRet;
- }
- case 0xB80006: {
- UINT16 nRet = (nUnknownIRQ << 1) | nVideoIRQ;
- nUnknownIRQ = 1;
- UpdateIRQStatus();
- return nRet;
- }
-
- case 0xB8006C:
-// SoundLatchStatus &= ~4;
-// return SoundLatchStatus & 3;
-
- if (SoundLatchReplyIndex > SoundLatchReplyMax) {
- return 2;
- }
- return 0;
-
- case 0xB8006E:
-// bprintf(PRINT_NORMAL, "Sound latch read.\n");
-// SoundLatchStatus = 2;
-// return SoundLatchReply;
-
- if (SoundLatchReplyIndex > SoundLatchReplyMax) {
- SoundLatchReplyIndex = 0;
- SoundLatchReplyMax = -1;
- return 0;
- }
-// bprintf(PRINT_NORMAL, "Sound latch reply read (%02X).\n", SoundLatchReply[SoundLatchReplyIndex]);
- return SoundLatchReply[SoundLatchReplyIndex++];
-
- case 0x600000:
- return DrvInput[0] ^ 0xFFFF;
- case 0x600002:
- return (DrvInput[1] ^ 0xF7FF) | (EEPROMRead() << 11);
-
- default: {
-// bprintf(PRINT_NORMAL, "Attempt to read word value of location %x\n", sekAddress);
- }
- }
- return 0;
-}
-
-static void __fastcall sailormnWriteByte(UINT32 sekAddress, UINT8 byteValue)
-{
-// bprintf(PRINT_NORMAL, "Attempt to write byte value %x to location %x\n", byteValue, sekAddress);
-
- switch (sekAddress) {
-// case 0xB8006E:
-// SoundLatch &= 0xFF00;
-// SoundLatch |= byteValue << 8;
-// break;
-// case 0xB8006F:
-// SoundLatch &= 0x00FF;
-// SoundLatch |= byteValue;
-// break;
-
- case 0x700000:
- nCaveTileBank = byteValue & 1;
- EEPROMWrite(byteValue & 0x04, byteValue & 0x02, byteValue & 0x08);
- return;
-
- default: {
-// bprintf(PRINT_NORMAL, "Attempt to write byte value %x to location %x\n", byteValue, sekAddress);
- }
- }
-}
-
-static void __fastcall sailormnWriteWord(UINT32 sekAddress, UINT16 wordValue)
-{
-// bprintf(PRINT_NORMAL, "Attempt to write word value %x to location %x\n", wordValue, sekAddress);
-
- switch (sekAddress) {
- case 0xA00000:
- CaveTileReg[0][0] = wordValue;
- return;
- case 0xA00002:
- CaveTileReg[0][1] = wordValue;
- return;
- case 0xA00004:
- CaveTileReg[0][2] = wordValue;
- return;
-
- case 0xA80000:
- CaveTileReg[1][0] = wordValue;
- return;
- case 0xA80002:
- CaveTileReg[1][1] = wordValue;
- return;
- case 0xA80004:
- CaveTileReg[1][2] = wordValue;
- return;
-
- case 0xB00000:
- CaveTileReg[2][0] = wordValue;
- return;
- case 0xB00002:
- CaveTileReg[2][1] = wordValue;
- return;
- case 0xB00004:
- CaveTileReg[2][2] = wordValue;
- return;
-
- case 0xB80000:
- nCaveXOffset = wordValue;
- return;
- case 0xB80002:
- nCaveYOffset = wordValue;
- return;
- case 0xB80008:
- CaveSpriteBuffer();
- nCaveSpriteBank = wordValue;
- return;
-
- case 0xB8006E:
-// bprintf(PRINT_NORMAL, "Sound command sent: %04X\n", wordValue);
-
- SoundLatch = wordValue;
- SoundLatchStatus |= 0x0C;
-
- ZetNmi();
- nCaveCyclesDone[1] += ZetRun(0x0400);
- return;
-
- case 0x700000:
- wordValue >>= 8;
- nCaveTileBank = wordValue & 1;
- EEPROMWrite(wordValue & 0x04, wordValue & 0x02, wordValue & 0x08);
- return;
-
- default: {
-// bprintf(PRINT_NORMAL, "Attempt to write word value %x to location %x\n", wordValue, sekAddress);
-
- }
- }
-}
-
-static void __fastcall sailormnWriteBytePalette(UINT32 sekAddress, UINT8 byteValue)
-{
- CavePalWriteByte(sekAddress & 0xFFFF, byteValue);
-}
-
-static void __fastcall sailormnWriteWordPalette(UINT32 sekAddress, UINT16 wordValue)
-{
- CavePalWriteWord(sekAddress & 0xFFFF, wordValue);
-}
-
-static INT32 DrvExit()
-{
- EEPROMExit();
-
- MSM6295Exit(0);
- MSM6295Exit(1);
- BurnYM2151Exit();
-
- CaveTileExit();
- CaveSpriteExit();
- CavePalExit();
-
- ZetExit();
-
- SekExit(); // Deallocate 68000s
-
- BurnFree(Mem);
- agalletamode = 0;
-
- return 0;
-}
-
-static INT32 DrvDoReset()
-{
- SekOpen(0);
- SekReset();
- SekClose();
-
- memset (RamStart, 0, RamEnd - RamStart);
-
- if (agalletamode)
- agalletamode = 0x2002;
-
- nCurrentBank = -1;
-
- ZetOpen(0);
- drvZ80Bankswitch(0);
- ZetReset();
- ZetClose();
-
- EEPROMReset();
-
- nVideoIRQ = 1;
- nSoundIRQ = 1;
- nUnknownIRQ = 1;
-
- SoundLatch = 0;
- SoundLatchStatus = 0x0C;
-
- memset(SoundLatchReply, 0, sizeof(SoundLatchReply));
- SoundLatchReplyIndex = 0;
- SoundLatchReplyMax = -1;
-
- nCaveCyclesDone[0] = nCaveCyclesDone[1] = 0;
-
- MSM6295Reset(0);
- MSM6295Reset(1);
- BurnYM2151Reset();
-
- return 0;
-}
-
-static INT32 DrvDraw()
-{
- if (CaveRecalcPalette) {
- CavePalUpdate8Bit(0x4400, 12);
- CaveRecalcPalette = 1;
- }
- CavePalUpdate4Bit(0, 64);
-
- CaveClearScreen(CavePalette[nWhichGame ? 0x3F00 : 0x5FF0]);
-
- if (bDrawScreen) {
-// CaveGetBitmap();
-
-#if 0
- CaveTileRender(1);
-#else
- if (nWhichGame) {
- // Air Gallet always enables row-scroll and row-select for 16x16 layers, but always without effect
- // So, force tile drawing routines to ignore row-scroll and row-select
- CaveTileRender(0);
- } else {
- CaveTileRender(1);
- }
-#endif
- }
-
- return 0;
-}
-
-inline static INT32 CheckSleep(INT32)
-{
- return 0;
-}
-
-static INT32 DrvFrame()
-{
- INT32 nCyclesVBlank;
- INT32 nInterleave = 4;
-
- INT32 nCyclesTotal[2];
-
- INT32 nCyclesSegment;
-
- if (DrvReset) { // Reset machine
- DrvDoReset();
- }
-
- // Compile digital inputs
- DrvInput[0] = 0x0000; // Player 1
- DrvInput[1] = 0x0000; // Player 2
- for (INT32 i = 0; i < 10; i++) {
- DrvInput[0] |= (DrvJoy1[i] & 1) << i;
- DrvInput[1] |= (DrvJoy2[i] & 1) << i;
- }
- CaveClearOpposites(&DrvInput[0]);
- CaveClearOpposites(&DrvInput[1]);
-
- SekNewFrame();
-
- nCyclesTotal[0] = (INT32)((INT64)16000000 * nBurnCPUSpeedAdjust / (0x0100 * CAVE_REFRESHRATE));
- nCaveCyclesDone[0] = 0;
-#if 0
- nCyclesTotal[1] = (INT32)((INT64)8000000 * nBurnCPUSpeedAdjust / (0x0100 * CAVE_REFRESHRATE));
-#else
- nCyclesTotal[1] = (INT32)(8000000 / CAVE_REFRESHRATE);
-#endif
- nCaveCyclesDone[1] -= nCyclesTotal[1];
- if (nCaveCyclesDone[1] < 0) {
- nCaveCyclesDone[1] = 0;
- }
-
- nCyclesVBlank = nCyclesTotal[0] - (INT32)((nCyclesTotal[0] * CAVE_VBLANK_LINES) / 271.5);
- nVBlank = 0;
-
- INT32 nSoundBufferPos = 0;
-
- SekOpen(0);
- ZetOpen(0);
-
- for (INT32 i = 0; i < nInterleave; i++) {
- INT32 nCurrentCPU;
- INT32 nNext;
-
- // Run 68000
-
- nCurrentCPU = 0;
- nNext = (i + 1) * nCyclesTotal[nCurrentCPU] / nInterleave;
-
- // Trigger VBlank interrupt
- if (!nVBlank && nNext > nCyclesVBlank) {
- if (nCaveCyclesDone[nCurrentCPU] < nCyclesVBlank) {
- nCyclesSegment = nCyclesVBlank - nCaveCyclesDone[nCurrentCPU];
- nCaveCyclesDone[nCurrentCPU] += SekRun(nCyclesSegment);
- }
-
- if (pBurnDraw != NULL) {
- DrvDraw(); // Draw screen if needed
- }
-
-// CaveSpriteBuffer();
-
- nVBlank = 1;
- nVideoIRQ = 0;
- UpdateIRQStatus();
- }
-
- nCyclesSegment = nNext - nCaveCyclesDone[nCurrentCPU];
- if (nVBlank || (!CheckSleep(nCurrentCPU))) { // See if this CPU is busywaiting
- nCaveCyclesDone[nCurrentCPU] += SekRun(nCyclesSegment);
- } else {
- nCaveCyclesDone[nCurrentCPU] += SekIdle(nCyclesSegment);
- }
-
- // Run Z80
- nCurrentCPU = 1;
- nNext = (i + 1) * nCyclesTotal[nCurrentCPU] / nInterleave;
- nCyclesSegment = nNext - nCaveCyclesDone[nCurrentCPU];
- nCaveCyclesDone[nCurrentCPU] += ZetRun(nCyclesSegment);
-
- {
- // Render sound segment
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen / nInterleave;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- BurnYM2151Render(pSoundBuf, nSegmentLength);
- MSM6295Render(0, pSoundBuf, nSegmentLength);
- MSM6295Render(1, pSoundBuf, nSegmentLength);
- nSoundBufferPos += nSegmentLength;
- }
- }
-
- }
-
- if (agalletamode&0xff) { // "agalleta" watchdog boot kludge
- agalletamode = 0x2000 | ((agalletamode&0xff) - 1);
- if ((agalletamode&0xff) == 0) {
- SekReset();
- }
- }
-
- SekClose();
-
- {
- // Make sure the buffer is entirely filled.
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- if (nSegmentLength) {
- BurnYM2151Render(pSoundBuf, nSegmentLength);
- MSM6295Render(0, pSoundBuf, nSegmentLength);
- MSM6295Render(1, pSoundBuf, nSegmentLength);
- }
- }
- }
-
- ZetClose();
-
- return 0;
-}
-
-// This routine is called first to determine how much memory is needed (MemEnd-(UINT8 *)0),
-// and then afterwards to set up all the pointers
-static INT32 MemIndex()
-{
- UINT8* Next; Next = Mem;
- Rom01 = Next; Next += 0x080000; // 68K program
- Rom02 = Next; Next += 0x200000;
- RomZ80 = Next; Next += 0x080000;
- CaveSpriteROM = Next; Next += 0x800000;
- CaveTileROM[0] = Next; Next += 0x400000; // Tile layer 0
- CaveTileROM[1] = Next; Next += 0x400000; // Tile layer 1
- if (nWhichGame) {
- CaveTileROM[2] = Next; Next += 0x400000; // Tile layer 2 (agallet)
- } else {
- CaveTileROM[2] = Next; Next += 0x01400000; // Tile layer 2 (Sailor Moon)
- }
- MSM6295ROM = Next; Next += 0x400000; // MSM6295 ADPCM data
- DefEEPROM = Next; Next += 0x000080;
- RamStart = Next;
- Ram01 = Next; Next += 0x010002; // CPU #0 work RAM
- Ram02 = Next; Next += 0x008000; //
- Ram03 = Next; Next += 0x004002; //
- RamZ80 = Next; Next += 0x002000;
- CaveTileRAM[0] = Next; Next += 0x008000;
- CaveTileRAM[1] = Next; Next += 0x008000;
- CaveTileRAM[2] = Next; Next += 0x008002;
- CaveSpriteRAM = Next; Next += 0x010002;
- CavePalSrc = Next; Next += 0x010000; // palette
- RamEnd = Next;
- MemEnd = Next;
-
- return 0;
-}
-
-static void sailormnDecodeSprites(UINT8* pData, INT32 nLen)
-{
- UINT8* pOrg = pData + nLen - 1;
- UINT8* pDest = pData + ((nLen - 1) << 1);
-
- for (INT32 i = 0; i < nLen; i++, pOrg--, pDest -= 2) {
- pDest[0] = *pOrg & 15;
- pDest[1] = *pOrg >> 4;
- }
-
- return;
-}
-
-static void sailormnDecodeTiles(UINT8* pData, INT32 nLen)
-{
- UINT8* pOrg = pData + nLen - 1;
- UINT8* pDest = pData + ((nLen - 1) << 1);
-
- for (INT32 i = 0; i < nLen; i++, pOrg--, pDest -= 2) {
- pDest[1] = *pOrg & 15;
- pDest[0] = *pOrg >> 4;
- }
-
- return;
-}
-
-static INT32 sailormnLoadRoms()
-{
- UINT8* pTemp;
-
- // Load 68000 ROM
- BurnLoadRom(Rom01, 0, 1);
- BurnLoadRom(Rom02, 1, 1);
-
- // Load Z80 ROM
- BurnLoadRom(RomZ80, 2, 1);
-
- pTemp = (UINT8*)BurnMalloc(0x400000);
- BurnLoadRom(pTemp + 0x000000, 3, 1);
- BurnLoadRom(pTemp + 0x200000, 4, 1);
- for (INT32 i = 0; i < 0x400000; i++) {
- CaveSpriteROM[i ^ 0x950C4] = pTemp[BITSWAP24(i, 23, 22, 21, 20, 15, 10, 12, 6, 11, 1, 13, 3, 16, 17, 2, 5, 14, 7, 18, 8, 4, 19, 9, 0)];
- }
- BurnFree(pTemp);
- sailormnDecodeSprites(CaveSpriteROM, 0x400000);
-
- BurnLoadRom(CaveTileROM[0], 5, 1);
- sailormnDecodeTiles(CaveTileROM[0], 0x200000);
- BurnLoadRom(CaveTileROM[1], 6, 1);
- sailormnDecodeTiles(CaveTileROM[1], 0x200000);
- BurnLoadRom(CaveTileROM[2] + 0x000000, 7, 1);
- BurnLoadRom(CaveTileROM[2] + 0x200000, 8, 1);
- BurnLoadRom(CaveTileROM[2] + 0x400000, 9, 1);
- BurnLoadRom(CaveTileROM[2] + 0x600000, 10, 1);
- BurnLoadRom(CaveTileROM[2] + 0x800000, 11, 1);
- sailormnDecodeTiles(CaveTileROM[2], 0xA00000);
-
- pTemp = (UINT8*)BurnMalloc(0x600000);
- BurnLoadRom(pTemp + 0x000000, 12, 1);
- BurnLoadRom(pTemp + 0x200000, 13, 1);
- BurnLoadRom(pTemp + 0x400000, 14, 1);
- for (INT32 i = 0; i < 0x500000; i++) {
- CaveTileROM[2][(i << 2) + 0] |= (pTemp[i] & 0x03) << 4;
- CaveTileROM[2][(i << 2) + 1] |= (pTemp[i] & 0x0C) << 2;
- CaveTileROM[2][(i << 2) + 2] |= (pTemp[i] & 0x30);
- CaveTileROM[2][(i << 2) + 3] |= (pTemp[i] & 0xC0) >> 2;
- }
- BurnFree(pTemp);
-
- // Load OKIM6295 data
- BurnLoadRom(MSM6295ROM + 0x0000000, 15, 1);
- BurnLoadRom(MSM6295ROM + 0x0200000, 16, 1);
- BurnLoadRom(MSM6295ROM + 0x0280000, 16, 1);
- BurnLoadRom(MSM6295ROM + 0x0300000, 16, 1);
- BurnLoadRom(MSM6295ROM + 0x0380000, 16, 1);
-
- BurnLoadRom(DefEEPROM, 17, 1);
-
- return 0;
-}
-
-static INT32 agalletLoadRoms()
-{
- // Load 68000 ROM
- BurnLoadRom(Rom01, 0, 1);
-
- // Load Z80 ROM
- BurnLoadRom(RomZ80, 1, 1);
-
- BurnLoadRom(CaveSpriteROM + 0x000000, 2, 1);
- BurnLoadRom(CaveSpriteROM + 0x200000, 3, 1);
- sailormnDecodeSprites(CaveSpriteROM, 0x400000);
-
- BurnLoadRom(CaveTileROM[0], 4, 1);
- sailormnDecodeTiles(CaveTileROM[0], 0x200000);
- BurnLoadRom(CaveTileROM[1], 5, 1);
- sailormnDecodeTiles(CaveTileROM[1], 0x200000);
- BurnLoadRom(CaveTileROM[2], 6, 1);
- sailormnDecodeTiles(CaveTileROM[2], 0x200000);
-
- UINT8* pTemp = (UINT8*)BurnMalloc(0x200000);
- BurnLoadRom(pTemp, 7, 1);
- for (INT32 i = 0; i < 0x0100000; i++) {
- CaveTileROM[2][(i << 2) + 0] |= (pTemp[i] & 0x03) << 4;
- CaveTileROM[2][(i << 2) + 1] |= (pTemp[i] & 0x0C) << 2;
- CaveTileROM[2][(i << 2) + 2] |= (pTemp[i] & 0x30);
- CaveTileROM[2][(i << 2) + 3] |= (pTemp[i] & 0xC0) >> 2;
- }
- BurnFree(pTemp);
-
- // Load OKIM6295 data
- BurnLoadRom(MSM6295ROM + 0x0000000, 8, 1);
- BurnLoadRom(MSM6295ROM + 0x0200000, 9, 1);
-
- BurnLoadRom(DefEEPROM, 10, 1);
-
- return 0;
-}
-
-// Scan ram
-static INT32 DrvScan(INT32 nAction, INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin) { // Return minimum compatible version
- *pnMin = 0x029719;
- }
-
- EEPROMScan(nAction, pnMin); // Scan EEPROM
-
- if (nAction & ACB_VOLATILE) { // Scan volatile ram
-
- memset(&ba, 0, sizeof(ba));
- ba.Data = RamStart;
- ba.nLen = RamEnd - RamStart;
- ba.szName = "RAM";
- BurnAcb(&ba);
-
- SekScan(nAction); // scan 68000
- ZetScan(nAction); // scan Z80
-
- SCAN_VAR(SoundLatch);
- SCAN_VAR(SoundLatchStatus);
- SCAN_VAR(SoundLatchReply);
- SCAN_VAR(SoundLatchReplyIndex);
- SCAN_VAR(SoundLatchReplyMax);
-
- SCAN_VAR(nCurrentBank);
-
- MSM6295Scan(0, nAction);
- MSM6295Scan(1, nAction);
- BurnYM2151Scan(nAction);
-
- SCAN_VAR(nVideoIRQ);
- SCAN_VAR(nSoundIRQ);
- SCAN_VAR(nUnknownIRQ);
- SCAN_VAR(nVBlank);
-
- CaveScanGraphics();
-
- SCAN_VAR(DrvInput);
-
- if (nAction & ACB_WRITE) {
- INT32 nBank = nCurrentBank;
- nCurrentBank = -1;
- ZetOpen(0);
- drvZ80Bankswitch(nBank);
- ZetClose();
-
- CaveRecalcPalette = 1;
- }
- }
-
- return 0;
-}
-
-static INT32 gameInit()
-{
- INT32 nLen;
-
- BurnSetRefreshRate(CAVE_REFRESHRATE);
-
- // Find out how much memory is needed
- Mem = NULL;
- MemIndex();
- nLen = MemEnd - (UINT8 *)0;
- if ((Mem = (UINT8 *)BurnMalloc(nLen)) == NULL) {
- return 1;
- }
- memset(Mem, 0, nLen); // blank all memory
- MemIndex(); // Index the allocated memory
-
- if (nWhichGame) {
- // Load the roms into memory
- if (agalletLoadRoms()) {
- return 1;
- }
- } else {
- // Load the roms into memory
- if (sailormnLoadRoms()) {
- return 1;
- }
- }
-
- {
- SekInit(0, 0x68000); // Allocate 68000
- SekOpen(0);
-
- // Map 68000 memory:
- SekMapMemory(Rom01, 0x000000, 0x07FFFF, MAP_ROM); // CPU 0 ROM
- SekMapMemory(Ram01, 0x100000, 0x110001, MAP_RAM); // ram (Air Gallet tests too far)
- SekMapMemory(Rom02, 0x200000, 0x3FFFFF, MAP_ROM);
- SekMapMemory(Ram02, 0x400000, 0x407FFF, MAP_RAM);
- SekMapMemory(Ram03, 0x40C000, 0x410001, MAP_RAM); // RAM (Air Gallet tests too far)
- SekMapMemory(CaveSpriteRAM, 0x500000, 0x510001, MAP_RAM); // Sprite RAM (Air Gallet tests too far)
- SekMapMemory(CaveTileRAM[0], 0x800000, 0x807FFF, MAP_RAM);
- SekMapMemory(CaveTileRAM[1], 0x880000, 0x887FFF, MAP_RAM);
- SekMapMemory(CaveTileRAM[2], 0x900000, 0x908001, MAP_RAM); // Air Gallet tests too far
-
- SekMapMemory(CavePalSrc, 0x408000, 0x4087FF, MAP_RAM); // Palette RAM
- SekMapMemory(CavePalSrc + 0x8800, 0x408800, 0x40BFFF, MAP_ROM); // Palette RAM (write goes through handler)
- SekMapHandler(1, 0x408800, 0x40BFFF, MAP_WRITE); //
-
- SekSetReadWordHandler(0, sailormnReadWord);
- SekSetReadByteHandler(0, sailormnReadByte);
- SekSetWriteWordHandler(0, sailormnWriteWord);
- SekSetWriteByteHandler(0, sailormnWriteByte);
-
- SekSetWriteWordHandler(1, sailormnWriteWordPalette);
- SekSetWriteByteHandler(1, sailormnWriteBytePalette);
-
- SekClose();
- }
-
- drvZInit();
-
- nCaveExtraXOffset = -1;
- CaveSpriteVisibleXOffset = -1;
- nCaveRowModeOffset = 2;
-
- CavePalInit(0x8000);
- CaveTileInit();
- if (nWhichGame) {
- CaveSpriteInit(1, 0x0800000);
- } else {
- CaveSpriteInit(2, 0x0800000);
- }
- CaveTileInitLayer(0, 0x400000, 4, 0x4400);
- CaveTileInitLayer(1, 0x400000, 4, 0x4800);
- if (nWhichGame) {
- CaveTileInitLayer(2, 0x400000, 6, 0x4C00);
- } else {
- CaveTileInitLayer(2, 0x01400000, 6, 0x4C00);
- }
-
- BurnYM2151Init(32000000 / 8);
- BurnYM2151SetIrqHandler(&drvYM2151IRQHandler);
- BurnYM2151SetRoute(BURN_SND_YM2151_YM2151_ROUTE_1, 0.30, BURN_SND_ROUTE_LEFT);
- BurnYM2151SetRoute(BURN_SND_YM2151_YM2151_ROUTE_2, 0.30, BURN_SND_ROUTE_RIGHT);
-
- MSM6295Init(0, 16000, 1);
- MSM6295Init(1, 16000, 1);
- MSM6295SetBank(0, MSM6295ROM + 0x000000, 0, 0x3ffff);
- MSM6295SetBank(1, MSM6295ROM + 0x200000, 0, 0x3ffff);
- MSM6295SetRoute(0, 1.00, BURN_SND_ROUTE_BOTH);
- MSM6295SetRoute(1, 1.00, BURN_SND_ROUTE_BOTH);
-
- EEPROMInit(&eeprom_interface_93C46);
- if (!EEPROMAvailable()) EEPROMFill(DefEEPROM,0, 0x80);
-
- bDrawScreen = true;
-
- DrvDoReset();
-
- return 0;
-}
-
-static INT32 sailormnInit()
-{
- nWhichGame = 0;
- return gameInit();
-}
-
-static INT32 agalletInit()
-{
- nWhichGame = 1;
- return gameInit();
-}
-
-static INT32 agalletaInit()
-{
- nWhichGame = 1;
- agalletamode = 0x2002;
-
- return gameInit();
-}
-
-// Rom information
-
-static struct BurnRomInfo sailormnRomDesc[] = {
- { "bpsm945a.u45", 0x080000, 0x898c9515, BRF_ESS | BRF_PRG }, // 0 CPU #0 code
- { "bpsm.u46", 0x200000, 0x32084e80, BRF_ESS | BRF_PRG }, // 1
-
- { "bpsm945a.u9", 0x080000, 0x438de548, BRF_ESS | BRF_PRG }, // 2 Z80 code
-
- { "bpsm.u76", 0x200000, 0xa243a5ba, BRF_GRA }, // 3 Sprite data
- { "bpsm.u77", 0x200000, 0x5179a4ac, BRF_GRA }, // 4
-
- { "bpsm.u53", 0x200000, 0xb9b15f83, BRF_GRA }, // 5 Layer 0 Tile data
- { "bpsm.u54", 0x200000, 0x8f00679d, BRF_GRA }, // 6 Layer 1 Tile data
-
- { "bpsm.u57", 0x200000, 0x86be7b63, BRF_GRA }, // 7 Layer 2 Tile data
- { "bpsm.u58", 0x200000, 0xe0bba83b, BRF_GRA }, // 8
- { "bpsm.u62", 0x200000, 0xa1e3bfac, BRF_GRA }, // 9
- { "bpsm.u61", 0x200000, 0x6a014b52, BRF_GRA }, // 10
- { "bpsm.u60", 0x200000, 0x992468c0, BRF_GRA }, // 11
-
- { "bpsm.u65", 0x200000, 0xf60fb7b5, BRF_GRA }, // 12
- { "bpsm.u64", 0x200000, 0x6559d31c, BRF_GRA }, // 13
- { "bpsm.u63", 0x200000, 0xd57a56b4, BRF_GRA }, // 14
-
- { "bpsm.u48", 0x200000, 0x498e4ed1, BRF_SND }, // 15 MSM6295 #0 ADPCM data
- { "bpsm.u47", 0x080000, 0x0f2901b9, BRF_SND }, // 16 MSM6295 #1 ADPCM data
-
- { "sailormn_europe.nv", 0x0080, 0x59a7dc50, BRF_ESS | BRF_PRG },
-};
-
-
-STD_ROM_PICK(sailormn)
-STD_ROM_FN(sailormn)
-
-static struct BurnRomInfo sailormnuRomDesc[] = {
- { "bpsm945a.u45", 0x080000, 0x898c9515, BRF_ESS | BRF_PRG }, // 0 CPU #0 code
- { "bpsm.u46", 0x200000, 0x32084e80, BRF_ESS | BRF_PRG }, // 1
-
- { "bpsm945a.u9", 0x080000, 0x438de548, BRF_ESS | BRF_PRG }, // 2 Z80 code
-
- { "bpsm.u76", 0x200000, 0xa243a5ba, BRF_GRA }, // 3 Sprite data
- { "bpsm.u77", 0x200000, 0x5179a4ac, BRF_GRA }, // 4
-
- { "bpsm.u53", 0x200000, 0xb9b15f83, BRF_GRA }, // 5 Layer 0 Tile data
- { "bpsm.u54", 0x200000, 0x8f00679d, BRF_GRA }, // 6 Layer 1 Tile data
-
- { "bpsm.u57", 0x200000, 0x86be7b63, BRF_GRA }, // 7 Layer 2 Tile data
- { "bpsm.u58", 0x200000, 0xe0bba83b, BRF_GRA }, // 8
- { "bpsm.u62", 0x200000, 0xa1e3bfac, BRF_GRA }, // 9
- { "bpsm.u61", 0x200000, 0x6a014b52, BRF_GRA }, // 10
- { "bpsm.u60", 0x200000, 0x992468c0, BRF_GRA }, // 11
-
- { "bpsm.u65", 0x200000, 0xf60fb7b5, BRF_GRA }, // 12
- { "bpsm.u64", 0x200000, 0x6559d31c, BRF_GRA }, // 13
- { "bpsm.u63", 0x200000, 0xd57a56b4, BRF_GRA }, // 14
-
- { "bpsm.u48", 0x200000, 0x498e4ed1, BRF_SND }, // 15 MSM6295 #0 ADPCM data
- { "bpsm.u47", 0x080000, 0x0f2901b9, BRF_SND }, // 16 MSM6295 #1 ADPCM data
-
- { "sailormn_usa.nv", 0x0080, 0x3915abe3, BRF_ESS | BRF_PRG },
-};
-
-
-STD_ROM_PICK(sailormnu)
-STD_ROM_FN(sailormnu)
-
-static struct BurnRomInfo sailormnjRomDesc[] = {
- { "bpsm945a.u45", 0x080000, 0x898c9515, BRF_ESS | BRF_PRG }, // 0 CPU #0 code
- { "bpsm.u46", 0x200000, 0x32084e80, BRF_ESS | BRF_PRG }, // 1
-
- { "bpsm945a.u9", 0x080000, 0x438de548, BRF_ESS | BRF_PRG }, // 2 Z80 code
-
- { "bpsm.u76", 0x200000, 0xa243a5ba, BRF_GRA }, // 3 Sprite data
- { "bpsm.u77", 0x200000, 0x5179a4ac, BRF_GRA }, // 4
-
- { "bpsm.u53", 0x200000, 0xb9b15f83, BRF_GRA }, // 5 Layer 0 Tile data
- { "bpsm.u54", 0x200000, 0x8f00679d, BRF_GRA }, // 6 Layer 1 Tile data
-
- { "bpsm.u57", 0x200000, 0x86be7b63, BRF_GRA }, // 7 Layer 2 Tile data
- { "bpsm.u58", 0x200000, 0xe0bba83b, BRF_GRA }, // 8
- { "bpsm.u62", 0x200000, 0xa1e3bfac, BRF_GRA }, // 9
- { "bpsm.u61", 0x200000, 0x6a014b52, BRF_GRA }, // 10
- { "bpsm.u60", 0x200000, 0x992468c0, BRF_GRA }, // 11
-
- { "bpsm.u65", 0x200000, 0xf60fb7b5, BRF_GRA }, // 12
- { "bpsm.u64", 0x200000, 0x6559d31c, BRF_GRA }, // 13
- { "bpsm.u63", 0x200000, 0xd57a56b4, BRF_GRA }, // 14
-
- { "bpsm.u48", 0x200000, 0x498e4ed1, BRF_SND }, // 15 MSM6295 #0 ADPCM data
- { "bpsm.u47", 0x080000, 0x0f2901b9, BRF_SND }, // 16 MSM6295 #1 ADPCM data
-
- { "sailormn_japan.nv", 0x0080, 0xea03c30a, BRF_ESS | BRF_PRG },
-};
-
-
-STD_ROM_PICK(sailormnj)
-STD_ROM_FN(sailormnj)
-
-static struct BurnRomInfo sailormnkRomDesc[] = {
- { "bpsm945a.u45", 0x080000, 0x898c9515, BRF_ESS | BRF_PRG }, // 0 CPU #0 code
- { "bpsm.u46", 0x200000, 0x32084e80, BRF_ESS | BRF_PRG }, // 1
-
- { "bpsm945a.u9", 0x080000, 0x438de548, BRF_ESS | BRF_PRG }, // 2 Z80 code
-
- { "bpsm.u76", 0x200000, 0xa243a5ba, BRF_GRA }, // 3 Sprite data
- { "bpsm.u77", 0x200000, 0x5179a4ac, BRF_GRA }, // 4
-
- { "bpsm.u53", 0x200000, 0xb9b15f83, BRF_GRA }, // 5 Layer 0 Tile data
- { "bpsm.u54", 0x200000, 0x8f00679d, BRF_GRA }, // 6 Layer 1 Tile data
-
- { "bpsm.u57", 0x200000, 0x86be7b63, BRF_GRA }, // 7 Layer 2 Tile data
- { "bpsm.u58", 0x200000, 0xe0bba83b, BRF_GRA }, // 8
- { "bpsm.u62", 0x200000, 0xa1e3bfac, BRF_GRA }, // 9
- { "bpsm.u61", 0x200000, 0x6a014b52, BRF_GRA }, // 10
- { "bpsm.u60", 0x200000, 0x992468c0, BRF_GRA }, // 11
-
- { "bpsm.u65", 0x200000, 0xf60fb7b5, BRF_GRA }, // 12
- { "bpsm.u64", 0x200000, 0x6559d31c, BRF_GRA }, // 13
- { "bpsm.u63", 0x200000, 0xd57a56b4, BRF_GRA }, // 14
-
- { "bpsm.u48", 0x200000, 0x498e4ed1, BRF_SND }, // 15 MSM6295 #0 ADPCM data
- { "bpsm.u47", 0x080000, 0x0f2901b9, BRF_SND }, // 16 MSM6295 #1 ADPCM data
-
- { "sailormn_korea.nv", 0x0080, 0x0e7de398, BRF_ESS | BRF_PRG },
-};
-
-
-STD_ROM_PICK(sailormnk)
-STD_ROM_FN(sailormnk)
-
-static struct BurnRomInfo sailormntRomDesc[] = {
- { "bpsm945a.u45", 0x080000, 0x898c9515, BRF_ESS | BRF_PRG }, // 0 CPU #0 code
- { "bpsm.u46", 0x200000, 0x32084e80, BRF_ESS | BRF_PRG }, // 1
-
- { "bpsm945a.u9", 0x080000, 0x438de548, BRF_ESS | BRF_PRG }, // 2 Z80 code
-
- { "bpsm.u76", 0x200000, 0xa243a5ba, BRF_GRA }, // 3 Sprite data
- { "bpsm.u77", 0x200000, 0x5179a4ac, BRF_GRA }, // 4
-
- { "bpsm.u53", 0x200000, 0xb9b15f83, BRF_GRA }, // 5 Layer 0 Tile data
- { "bpsm.u54", 0x200000, 0x8f00679d, BRF_GRA }, // 6 Layer 1 Tile data
-
- { "bpsm.u57", 0x200000, 0x86be7b63, BRF_GRA }, // 7 Layer 2 Tile data
- { "bpsm.u58", 0x200000, 0xe0bba83b, BRF_GRA }, // 8
- { "bpsm.u62", 0x200000, 0xa1e3bfac, BRF_GRA }, // 9
- { "bpsm.u61", 0x200000, 0x6a014b52, BRF_GRA }, // 10
- { "bpsm.u60", 0x200000, 0x992468c0, BRF_GRA }, // 11
-
- { "bpsm.u65", 0x200000, 0xf60fb7b5, BRF_GRA }, // 12
- { "bpsm.u64", 0x200000, 0x6559d31c, BRF_GRA }, // 13
- { "bpsm.u63", 0x200000, 0xd57a56b4, BRF_GRA }, // 14
-
- { "bpsm.u48", 0x200000, 0x498e4ed1, BRF_SND }, // 15 MSM6295 #0 ADPCM data
- { "bpsm.u47", 0x080000, 0x0f2901b9, BRF_SND }, // 16 MSM6295 #1 ADPCM data
-
- { "sailormn_taiwan.nv", 0x0080, 0x6c7e8c2a, BRF_ESS | BRF_PRG },
-};
-
-
-STD_ROM_PICK(sailormnt)
-STD_ROM_FN(sailormnt)
-
-static struct BurnRomInfo sailormnhRomDesc[] = {
- { "bpsm945a.u45", 0x080000, 0x898c9515, BRF_ESS | BRF_PRG }, // 0 CPU #0 code
- { "bpsm.u46", 0x200000, 0x32084e80, BRF_ESS | BRF_PRG }, // 1
-
- { "bpsm945a.u9", 0x080000, 0x438de548, BRF_ESS | BRF_PRG }, // 2 Z80 code
-
- { "bpsm.u76", 0x200000, 0xa243a5ba, BRF_GRA }, // 3 Sprite data
- { "bpsm.u77", 0x200000, 0x5179a4ac, BRF_GRA }, // 4
-
- { "bpsm.u53", 0x200000, 0xb9b15f83, BRF_GRA }, // 5 Layer 0 Tile data
- { "bpsm.u54", 0x200000, 0x8f00679d, BRF_GRA }, // 6 Layer 1 Tile data
-
- { "bpsm.u57", 0x200000, 0x86be7b63, BRF_GRA }, // 7 Layer 2 Tile data
- { "bpsm.u58", 0x200000, 0xe0bba83b, BRF_GRA }, // 8
- { "bpsm.u62", 0x200000, 0xa1e3bfac, BRF_GRA }, // 9
- { "bpsm.u61", 0x200000, 0x6a014b52, BRF_GRA }, // 10
- { "bpsm.u60", 0x200000, 0x992468c0, BRF_GRA }, // 11
-
- { "bpsm.u65", 0x200000, 0xf60fb7b5, BRF_GRA }, // 12
- { "bpsm.u64", 0x200000, 0x6559d31c, BRF_GRA }, // 13
- { "bpsm.u63", 0x200000, 0xd57a56b4, BRF_GRA }, // 14
-
- { "bpsm.u48", 0x200000, 0x498e4ed1, BRF_SND }, // 15 MSM6295 #0 ADPCM data
- { "bpsm.u47", 0x080000, 0x0f2901b9, BRF_SND }, // 16 MSM6295 #1 ADPCM data
-
- { "sailormn_hongkong.nv", 0x0080, 0x4d24c874, BRF_ESS | BRF_PRG },
-};
-
-
-STD_ROM_PICK(sailormnh)
-STD_ROM_FN(sailormnh)
-
-static struct BurnRomInfo sailormnoRomDesc[] = {
- { "smprg.u45", 0x080000, 0x234f1152, BRF_ESS | BRF_PRG }, // 0 CPU #0 code
- { "bpsm.u46", 0x200000, 0x32084e80, BRF_ESS | BRF_PRG }, // 1
-
- { "bpsm945a.u9", 0x080000, 0x438de548, BRF_ESS | BRF_PRG }, // 2 Z80 code
-
- { "bpsm.u76", 0x200000, 0xa243a5ba, BRF_GRA }, // 3 Sprite data
- { "bpsm.u77", 0x200000, 0x5179a4ac, BRF_GRA }, // 4
-
- { "bpsm.u53", 0x200000, 0xb9b15f83, BRF_GRA }, // 5 Layer 0 Tile data
- { "bpsm.u54", 0x200000, 0x8f00679d, BRF_GRA }, // 6 Layer 1 Tile data
-
- { "bpsm.u57", 0x200000, 0x86be7b63, BRF_GRA }, // 7 Layer 2 Tile data
- { "bpsm.u58", 0x200000, 0xe0bba83b, BRF_GRA }, // 8
- { "bpsm.u62", 0x200000, 0xa1e3bfac, BRF_GRA }, // 9
- { "bpsm.u61", 0x200000, 0x6a014b52, BRF_GRA }, // 10
- { "bpsm.u60", 0x200000, 0x992468c0, BRF_GRA }, // 11
-
- { "bpsm.u65", 0x200000, 0xf60fb7b5, BRF_GRA }, // 12
- { "bpsm.u64", 0x200000, 0x6559d31c, BRF_GRA }, // 13
- { "bpsm.u63", 0x200000, 0xd57a56b4, BRF_GRA }, // 14
-
- { "bpsm.u48", 0x200000, 0x498e4ed1, BRF_SND }, // 15 MSM6295 #0 ADPCM data
- { "bpsm.u47", 0x080000, 0x0f2901b9, BRF_SND }, // 16 MSM6295 #1 ADPCM data
-
- { "sailormn_europe.nv", 0x0080, 0x59a7dc50, BRF_ESS | BRF_PRG },
-};
-
-
-STD_ROM_PICK(sailormno)
-STD_ROM_FN(sailormno)
-
-static struct BurnRomInfo sailormnouRomDesc[] = {
- { "smprg.u45", 0x080000, 0x234f1152, BRF_ESS | BRF_PRG }, // 0 CPU #0 code
- { "bpsm.u46", 0x200000, 0x32084e80, BRF_ESS | BRF_PRG }, // 1
-
- { "bpsm945a.u9", 0x080000, 0x438de548, BRF_ESS | BRF_PRG }, // 2 Z80 code
-
- { "bpsm.u76", 0x200000, 0xa243a5ba, BRF_GRA }, // 3 Sprite data
- { "bpsm.u77", 0x200000, 0x5179a4ac, BRF_GRA }, // 4
-
- { "bpsm.u53", 0x200000, 0xb9b15f83, BRF_GRA }, // 5 Layer 0 Tile data
- { "bpsm.u54", 0x200000, 0x8f00679d, BRF_GRA }, // 6 Layer 1 Tile data
-
- { "bpsm.u57", 0x200000, 0x86be7b63, BRF_GRA }, // 7 Layer 2 Tile data
- { "bpsm.u58", 0x200000, 0xe0bba83b, BRF_GRA }, // 8
- { "bpsm.u62", 0x200000, 0xa1e3bfac, BRF_GRA }, // 9
- { "bpsm.u61", 0x200000, 0x6a014b52, BRF_GRA }, // 10
- { "bpsm.u60", 0x200000, 0x992468c0, BRF_GRA }, // 11
-
- { "bpsm.u65", 0x200000, 0xf60fb7b5, BRF_GRA }, // 12
- { "bpsm.u64", 0x200000, 0x6559d31c, BRF_GRA }, // 13
- { "bpsm.u63", 0x200000, 0xd57a56b4, BRF_GRA }, // 14
-
- { "bpsm.u48", 0x200000, 0x498e4ed1, BRF_SND }, // 15 MSM6295 #0 ADPCM data
- { "bpsm.u47", 0x080000, 0x0f2901b9, BRF_SND }, // 16 MSM6295 #1 ADPCM data
-
- { "sailormn_usa.nv", 0x0080, 0x3915abe3, BRF_ESS | BRF_PRG },
-};
-
-
-STD_ROM_PICK(sailormnou)
-STD_ROM_FN(sailormnou)
-
-static struct BurnRomInfo sailormnojRomDesc[] = {
- { "smprg.u45", 0x080000, 0x234f1152, BRF_ESS | BRF_PRG }, // 0 CPU #0 code
- { "bpsm.u46", 0x200000, 0x32084e80, BRF_ESS | BRF_PRG }, // 1
-
- { "bpsm945a.u9", 0x080000, 0x438de548, BRF_ESS | BRF_PRG }, // 2 Z80 code
-
- { "bpsm.u76", 0x200000, 0xa243a5ba, BRF_GRA }, // 3 Sprite data
- { "bpsm.u77", 0x200000, 0x5179a4ac, BRF_GRA }, // 4
-
- { "bpsm.u53", 0x200000, 0xb9b15f83, BRF_GRA }, // 5 Layer 0 Tile data
- { "bpsm.u54", 0x200000, 0x8f00679d, BRF_GRA }, // 6 Layer 1 Tile data
-
- { "bpsm.u57", 0x200000, 0x86be7b63, BRF_GRA }, // 7 Layer 2 Tile data
- { "bpsm.u58", 0x200000, 0xe0bba83b, BRF_GRA }, // 8
- { "bpsm.u62", 0x200000, 0xa1e3bfac, BRF_GRA }, // 9
- { "bpsm.u61", 0x200000, 0x6a014b52, BRF_GRA }, // 10
- { "bpsm.u60", 0x200000, 0x992468c0, BRF_GRA }, // 11
-
- { "bpsm.u65", 0x200000, 0xf60fb7b5, BRF_GRA }, // 12
- { "bpsm.u64", 0x200000, 0x6559d31c, BRF_GRA }, // 13
- { "bpsm.u63", 0x200000, 0xd57a56b4, BRF_GRA }, // 14
-
- { "bpsm.u48", 0x200000, 0x498e4ed1, BRF_SND }, // 15 MSM6295 #0 ADPCM data
- { "bpsm.u47", 0x080000, 0x0f2901b9, BRF_SND }, // 16 MSM6295 #1 ADPCM data
-
- { "sailormn_japan.nv", 0x0080, 0xea03c30a, BRF_ESS | BRF_PRG },
-};
-
-
-STD_ROM_PICK(sailormnoj)
-STD_ROM_FN(sailormnoj)
-
-static struct BurnRomInfo sailormnokRomDesc[] = {
- { "smprg.u45", 0x080000, 0x234f1152, BRF_ESS | BRF_PRG }, // 0 CPU #0 code
- { "bpsm.u46", 0x200000, 0x32084e80, BRF_ESS | BRF_PRG }, // 1
-
- { "bpsm945a.u9", 0x080000, 0x438de548, BRF_ESS | BRF_PRG }, // 2 Z80 code
-
- { "bpsm.u76", 0x200000, 0xa243a5ba, BRF_GRA }, // 3 Sprite data
- { "bpsm.u77", 0x200000, 0x5179a4ac, BRF_GRA }, // 4
-
- { "bpsm.u53", 0x200000, 0xb9b15f83, BRF_GRA }, // 5 Layer 0 Tile data
- { "bpsm.u54", 0x200000, 0x8f00679d, BRF_GRA }, // 6 Layer 1 Tile data
-
- { "bpsm.u57", 0x200000, 0x86be7b63, BRF_GRA }, // 7 Layer 2 Tile data
- { "bpsm.u58", 0x200000, 0xe0bba83b, BRF_GRA }, // 8
- { "bpsm.u62", 0x200000, 0xa1e3bfac, BRF_GRA }, // 9
- { "bpsm.u61", 0x200000, 0x6a014b52, BRF_GRA }, // 10
- { "bpsm.u60", 0x200000, 0x992468c0, BRF_GRA }, // 11
-
- { "bpsm.u65", 0x200000, 0xf60fb7b5, BRF_GRA }, // 12
- { "bpsm.u64", 0x200000, 0x6559d31c, BRF_GRA }, // 13
- { "bpsm.u63", 0x200000, 0xd57a56b4, BRF_GRA }, // 14
-
- { "bpsm.u48", 0x200000, 0x498e4ed1, BRF_SND }, // 15 MSM6295 #0 ADPCM data
- { "bpsm.u47", 0x080000, 0x0f2901b9, BRF_SND }, // 16 MSM6295 #1 ADPCM data
-
- { "sailormn_korea.nv", 0x0080, 0x0e7de398, BRF_ESS | BRF_PRG },
-};
-
-
-STD_ROM_PICK(sailormnok)
-STD_ROM_FN(sailormnok)
-
-static struct BurnRomInfo sailormnotRomDesc[] = {
- { "smprg.u45", 0x080000, 0x234f1152, BRF_ESS | BRF_PRG }, // 0 CPU #0 code
- { "bpsm.u46", 0x200000, 0x32084e80, BRF_ESS | BRF_PRG }, // 1
-
- { "bpsm945a.u9", 0x080000, 0x438de548, BRF_ESS | BRF_PRG }, // 2 Z80 code
-
- { "bpsm.u76", 0x200000, 0xa243a5ba, BRF_GRA }, // 3 Sprite data
- { "bpsm.u77", 0x200000, 0x5179a4ac, BRF_GRA }, // 4
-
- { "bpsm.u53", 0x200000, 0xb9b15f83, BRF_GRA }, // 5 Layer 0 Tile data
- { "bpsm.u54", 0x200000, 0x8f00679d, BRF_GRA }, // 6 Layer 1 Tile data
-
- { "bpsm.u57", 0x200000, 0x86be7b63, BRF_GRA }, // 7 Layer 2 Tile data
- { "bpsm.u58", 0x200000, 0xe0bba83b, BRF_GRA }, // 8
- { "bpsm.u62", 0x200000, 0xa1e3bfac, BRF_GRA }, // 9
- { "bpsm.u61", 0x200000, 0x6a014b52, BRF_GRA }, // 10
- { "bpsm.u60", 0x200000, 0x992468c0, BRF_GRA }, // 11
-
- { "bpsm.u65", 0x200000, 0xf60fb7b5, BRF_GRA }, // 12
- { "bpsm.u64", 0x200000, 0x6559d31c, BRF_GRA }, // 13
- { "bpsm.u63", 0x200000, 0xd57a56b4, BRF_GRA }, // 14
-
- { "bpsm.u48", 0x200000, 0x498e4ed1, BRF_SND }, // 15 MSM6295 #0 ADPCM data
- { "bpsm.u47", 0x080000, 0x0f2901b9, BRF_SND }, // 16 MSM6295 #1 ADPCM data
-
- { "sailormn_taiwan.nv", 0x0080, 0x6c7e8c2a, BRF_ESS | BRF_PRG },
-};
-
-
-STD_ROM_PICK(sailormnot)
-STD_ROM_FN(sailormnot)
-
-static struct BurnRomInfo sailormnohRomDesc[] = {
- { "smprg.u45", 0x080000, 0x234f1152, BRF_ESS | BRF_PRG }, // 0 CPU #0 code
- { "bpsm.u46", 0x200000, 0x32084e80, BRF_ESS | BRF_PRG }, // 1
-
- { "bpsm945a.u9", 0x080000, 0x438de548, BRF_ESS | BRF_PRG }, // 2 Z80 code
-
- { "bpsm.u76", 0x200000, 0xa243a5ba, BRF_GRA }, // 3 Sprite data
- { "bpsm.u77", 0x200000, 0x5179a4ac, BRF_GRA }, // 4
-
- { "bpsm.u53", 0x200000, 0xb9b15f83, BRF_GRA }, // 5 Layer 0 Tile data
- { "bpsm.u54", 0x200000, 0x8f00679d, BRF_GRA }, // 6 Layer 1 Tile data
-
- { "bpsm.u57", 0x200000, 0x86be7b63, BRF_GRA }, // 7 Layer 2 Tile data
- { "bpsm.u58", 0x200000, 0xe0bba83b, BRF_GRA }, // 8
- { "bpsm.u62", 0x200000, 0xa1e3bfac, BRF_GRA }, // 9
- { "bpsm.u61", 0x200000, 0x6a014b52, BRF_GRA }, // 10
- { "bpsm.u60", 0x200000, 0x992468c0, BRF_GRA }, // 11
-
- { "bpsm.u65", 0x200000, 0xf60fb7b5, BRF_GRA }, // 12
- { "bpsm.u64", 0x200000, 0x6559d31c, BRF_GRA }, // 13
- { "bpsm.u63", 0x200000, 0xd57a56b4, BRF_GRA }, // 14
-
- { "bpsm.u48", 0x200000, 0x498e4ed1, BRF_SND }, // 15 MSM6295 #0 ADPCM data
- { "bpsm.u47", 0x080000, 0x0f2901b9, BRF_SND }, // 16 MSM6295 #1 ADPCM data
-
- { "sailormn_hongkong.nv", 0x0080, 0x4d24c874, BRF_ESS | BRF_PRG },
-};
-
-
-STD_ROM_PICK(sailormnoh)
-STD_ROM_FN(sailormnoh)
-
-static struct BurnRomInfo agalletRomDesc[] = {
- // these roms were dumped from a board set to Taiwanese region.
- { "bp962a.u45", 0x080000, 0x24815046, BRF_ESS | BRF_PRG }, // 0 CPU #0 code
- { "bp962a.u9", 0x080000, 0x06caddbe, BRF_ESS | BRF_PRG }, // 1 Z80 code
-
- { "bp962a.u76", 0x200000, 0x858da439, BRF_GRA }, // 2 Sprite data
- { "bp962a.u77", 0x200000, 0xea2ba35e, BRF_GRA }, // 3
-
- { "bp962a.u53", 0x200000, 0xfcd9a107, BRF_GRA }, // 4 Layer 0 Tile data
- { "bp962a.u54", 0x200000, 0x0cfa3409, BRF_GRA }, // 5 Layer 1 Tile data
- { "bp962a.u57", 0x200000, 0x6d608957, BRF_GRA }, // 6 Layer 2 Tile data
- { "bp962a.u65", 0x200000, 0x135fcf9a, BRF_GRA }, // 7
-
- { "bp962a.u48", 0x200000, 0xae00a1ce, BRF_SND }, // 8 MSM6295 #0 ADPCM data
- { "bp962a.u47", 0x200000, 0x6d4e9737, BRF_SND }, // 9 MSM6295 #1 ADPCM data
-
- { "agallet_europe.nv", 0x0080, 0xec38bf65, BRF_ESS | BRF_PRG },
-};
-
-
-STD_ROM_PICK(agallet)
-STD_ROM_FN(agallet)
-
-static struct BurnRomInfo agalletaRomDesc[] = {
- { "u45", 0x080000, 0x2cab18b0, BRF_ESS | BRF_PRG }, // 0 CPU #0 code
- { "bp962a.u9", 0x080000, 0x06caddbe, BRF_ESS | BRF_PRG }, // 1 Z80 code
-
- { "bp962a.u76", 0x200000, 0x858da439, BRF_GRA }, // 2 Sprite data
- { "bp962a.u77", 0x200000, 0xea2ba35e, BRF_GRA }, // 3
-
- { "bp962a.u53", 0x200000, 0xfcd9a107, BRF_GRA }, // 4 Layer 0 Tile data
- { "bp962a.u54", 0x200000, 0x0cfa3409, BRF_GRA }, // 5 Layer 1 Tile data
- { "bp962a.u57", 0x200000, 0x6d608957, BRF_GRA }, // 6 Layer 2 Tile data
- { "bp962a.u65", 0x200000, 0x135fcf9a, BRF_GRA }, // 7
-
- { "bp962a.u48", 0x200000, 0xae00a1ce, BRF_SND }, // 8 MSM6295 #0 ADPCM data
- { "bp962a.u47", 0x200000, 0x6d4e9737, BRF_SND }, // 9 MSM6295 #1 ADPCM data
-
- { "agallet_europe.nv", 0x0080, 0xec38bf65, BRF_ESS | BRF_PRG },
-};
-
-
-STD_ROM_PICK(agalleta)
-STD_ROM_FN(agalleta)
-
-static struct BurnRomInfo agalletuRomDesc[] = {
- { "bp962a.u45", 0x080000, 0x24815046, BRF_ESS | BRF_PRG }, // 0 CPU #0 code
- { "bp962a.u9", 0x080000, 0x06caddbe, BRF_ESS | BRF_PRG }, // 1 Z80 code
-
- { "bp962a.u76", 0x200000, 0x858da439, BRF_GRA }, // 2 Sprite data
- { "bp962a.u77", 0x200000, 0xea2ba35e, BRF_GRA }, // 3
-
- { "bp962a.u53", 0x200000, 0xfcd9a107, BRF_GRA }, // 4 Layer 0 Tile data
- { "bp962a.u54", 0x200000, 0x0cfa3409, BRF_GRA }, // 5 Layer 1 Tile data
- { "bp962a.u57", 0x200000, 0x6d608957, BRF_GRA }, // 6 Layer 2 Tile data
- { "bp962a.u65", 0x200000, 0x135fcf9a, BRF_GRA }, // 7
-
- { "bp962a.u48", 0x200000, 0xae00a1ce, BRF_SND }, // 8 MSM6295 #0 ADPCM data
- { "bp962a.u47", 0x200000, 0x6d4e9737, BRF_SND }, // 9 MSM6295 #1 ADPCM data
-
- { "agallet_usa.nv", 0x0080, 0x72e65056, BRF_ESS | BRF_PRG },
-};
-
-
-STD_ROM_PICK(agalletu)
-STD_ROM_FN(agalletu)
-
-static struct BurnRomInfo agalletauRomDesc[] = {
- { "u45", 0x080000, 0x2cab18b0, BRF_ESS | BRF_PRG }, // 0 CPU #0 code
- { "bp962a.u9", 0x080000, 0x06caddbe, BRF_ESS | BRF_PRG }, // 1 Z80 code
-
- { "bp962a.u76", 0x200000, 0x858da439, BRF_GRA }, // 2 Sprite data
- { "bp962a.u77", 0x200000, 0xea2ba35e, BRF_GRA }, // 3
-
- { "bp962a.u53", 0x200000, 0xfcd9a107, BRF_GRA }, // 4 Layer 0 Tile data
- { "bp962a.u54", 0x200000, 0x0cfa3409, BRF_GRA }, // 5 Layer 1 Tile data
- { "bp962a.u57", 0x200000, 0x6d608957, BRF_GRA }, // 6 Layer 2 Tile data
- { "bp962a.u65", 0x200000, 0x135fcf9a, BRF_GRA }, // 7
-
- { "bp962a.u48", 0x200000, 0xae00a1ce, BRF_SND }, // 8 MSM6295 #0 ADPCM data
- { "bp962a.u47", 0x200000, 0x6d4e9737, BRF_SND }, // 9 MSM6295 #1 ADPCM data
-
- { "agallet_usa.nv", 0x0080, 0x72e65056, BRF_ESS | BRF_PRG },
-};
-
-
-STD_ROM_PICK(agalletau)
-STD_ROM_FN(agalletau)
-
-static struct BurnRomInfo agalletjRomDesc[] = {
- { "bp962a.u45", 0x080000, 0x24815046, BRF_ESS | BRF_PRG }, // 0 CPU #0 code
- { "bp962a.u9", 0x080000, 0x06caddbe, BRF_ESS | BRF_PRG }, // 1 Z80 code
-
- { "bp962a.u76", 0x200000, 0x858da439, BRF_GRA }, // 2 Sprite data
- { "bp962a.u77", 0x200000, 0xea2ba35e, BRF_GRA }, // 3
-
- { "bp962a.u53", 0x200000, 0xfcd9a107, BRF_GRA }, // 4 Layer 0 Tile data
- { "bp962a.u54", 0x200000, 0x0cfa3409, BRF_GRA }, // 5 Layer 1 Tile data
- { "bp962a.u57", 0x200000, 0x6d608957, BRF_GRA }, // 6 Layer 2 Tile data
- { "bp962a.u65", 0x200000, 0x135fcf9a, BRF_GRA }, // 7
-
- { "bp962a.u48", 0x200000, 0xae00a1ce, BRF_SND }, // 8 MSM6295 #0 ADPCM data
- { "bp962a.u47", 0x200000, 0x6d4e9737, BRF_SND }, // 9 MSM6295 #1 ADPCM data
-
- { "agallet_japan.nv", 0x0080, 0x0753f547, BRF_ESS | BRF_PRG },
-};
-
-
-STD_ROM_PICK(agalletj)
-STD_ROM_FN(agalletj)
-
-static struct BurnRomInfo agalletajRomDesc[] = {
- // the dumped board was this region
- { "u45", 0x080000, 0x2cab18b0, BRF_ESS | BRF_PRG }, // 0 CPU #0 code
- { "bp962a.u9", 0x080000, 0x06caddbe, BRF_ESS | BRF_PRG }, // 1 Z80 code
-
- { "bp962a.u76", 0x200000, 0x858da439, BRF_GRA }, // 2 Sprite data
- { "bp962a.u77", 0x200000, 0xea2ba35e, BRF_GRA }, // 3
-
- { "bp962a.u53", 0x200000, 0xfcd9a107, BRF_GRA }, // 4 Layer 0 Tile data
- { "bp962a.u54", 0x200000, 0x0cfa3409, BRF_GRA }, // 5 Layer 1 Tile data
- { "bp962a.u57", 0x200000, 0x6d608957, BRF_GRA }, // 6 Layer 2 Tile data
- { "bp962a.u65", 0x200000, 0x135fcf9a, BRF_GRA }, // 7
-
- { "bp962a.u48", 0x200000, 0xae00a1ce, BRF_SND }, // 8 MSM6295 #0 ADPCM data
- { "bp962a.u47", 0x200000, 0x6d4e9737, BRF_SND }, // 9 MSM6295 #1 ADPCM data
-
- { "agallet_japan.nv", 0x0080, 0x0753f547, BRF_ESS | BRF_PRG },
-};
-
-
-STD_ROM_PICK(agalletaj)
-STD_ROM_FN(agalletaj)
-
-static struct BurnRomInfo agalletkRomDesc[] = {
- { "bp962a.u45", 0x080000, 0x24815046, BRF_ESS | BRF_PRG }, // 0 CPU #0 code
- { "bp962a.u9", 0x080000, 0x06caddbe, BRF_ESS | BRF_PRG }, // 1 Z80 code
-
- { "bp962a.u76", 0x200000, 0x858da439, BRF_GRA }, // 2 Sprite data
- { "bp962a.u77", 0x200000, 0xea2ba35e, BRF_GRA }, // 3
-
- { "bp962a.u53", 0x200000, 0xfcd9a107, BRF_GRA }, // 4 Layer 0 Tile data
- { "bp962a.u54", 0x200000, 0x0cfa3409, BRF_GRA }, // 5 Layer 1 Tile data
- { "bp962a.u57", 0x200000, 0x6d608957, BRF_GRA }, // 6 Layer 2 Tile data
- { "bp962a.u65", 0x200000, 0x135fcf9a, BRF_GRA }, // 7
-
- { "bp962a.u48", 0x200000, 0xae00a1ce, BRF_SND }, // 8 MSM6295 #0 ADPCM data
- { "bp962a.u47", 0x200000, 0x6d4e9737, BRF_SND }, // 9 MSM6295 #1 ADPCM data
-
- { "agallet_korea.nv", 0x0080, 0x7f41c253, BRF_ESS | BRF_PRG },
-};
-
-
-STD_ROM_PICK(agalletk)
-STD_ROM_FN(agalletk)
-
-static struct BurnRomInfo agalletakRomDesc[] = {
- { "u45", 0x080000, 0x2cab18b0, BRF_ESS | BRF_PRG }, // 0 CPU #0 code
- { "bp962a.u9", 0x080000, 0x06caddbe, BRF_ESS | BRF_PRG }, // 1 Z80 code
-
- { "bp962a.u76", 0x200000, 0x858da439, BRF_GRA }, // 2 Sprite data
- { "bp962a.u77", 0x200000, 0xea2ba35e, BRF_GRA }, // 3
-
- { "bp962a.u53", 0x200000, 0xfcd9a107, BRF_GRA }, // 4 Layer 0 Tile data
- { "bp962a.u54", 0x200000, 0x0cfa3409, BRF_GRA }, // 5 Layer 1 Tile data
- { "bp962a.u57", 0x200000, 0x6d608957, BRF_GRA }, // 6 Layer 2 Tile data
- { "bp962a.u65", 0x200000, 0x135fcf9a, BRF_GRA }, // 7
-
- { "bp962a.u48", 0x200000, 0xae00a1ce, BRF_SND }, // 8 MSM6295 #0 ADPCM data
- { "bp962a.u47", 0x200000, 0x6d4e9737, BRF_SND }, // 9 MSM6295 #1 ADPCM data
-
- { "agallet_korea.nv", 0x0080, 0x7f41c253, BRF_ESS | BRF_PRG },
-};
-
-
-STD_ROM_PICK(agalletak)
-STD_ROM_FN(agalletak)
-
-static struct BurnRomInfo agallettRomDesc[] = {
- { "bp962a.u45", 0x080000, 0x24815046, BRF_ESS | BRF_PRG }, // 0 CPU #0 code
- { "bp962a.u9", 0x080000, 0x06caddbe, BRF_ESS | BRF_PRG }, // 1 Z80 code
-
- { "bp962a.u76", 0x200000, 0x858da439, BRF_GRA }, // 2 Sprite data
- { "bp962a.u77", 0x200000, 0xea2ba35e, BRF_GRA }, // 3
-
- { "bp962a.u53", 0x200000, 0xfcd9a107, BRF_GRA }, // 4 Layer 0 Tile data
- { "bp962a.u54", 0x200000, 0x0cfa3409, BRF_GRA }, // 5 Layer 1 Tile data
- { "bp962a.u57", 0x200000, 0x6d608957, BRF_GRA }, // 6 Layer 2 Tile data
- { "bp962a.u65", 0x200000, 0x135fcf9a, BRF_GRA }, // 7
-
- { "bp962a.u48", 0x200000, 0xae00a1ce, BRF_SND }, // 8 MSM6295 #0 ADPCM data
- { "bp962a.u47", 0x200000, 0x6d4e9737, BRF_SND }, // 9 MSM6295 #1 ADPCM data
-
- { "agallet_taiwan.nv", 0x0080, 0x0af46742, BRF_ESS | BRF_PRG },
-};
-
-
-STD_ROM_PICK(agallett)
-STD_ROM_FN(agallett)
-
-static struct BurnRomInfo agalletatRomDesc[] = {
- { "u45", 0x080000, 0x2cab18b0, BRF_ESS | BRF_PRG }, // 0 CPU #0 code
- { "bp962a.u9", 0x080000, 0x06caddbe, BRF_ESS | BRF_PRG }, // 1 Z80 code
-
- { "bp962a.u76", 0x200000, 0x858da439, BRF_GRA }, // 2 Sprite data
- { "bp962a.u77", 0x200000, 0xea2ba35e, BRF_GRA }, // 3
-
- { "bp962a.u53", 0x200000, 0xfcd9a107, BRF_GRA }, // 4 Layer 0 Tile data
- { "bp962a.u54", 0x200000, 0x0cfa3409, BRF_GRA }, // 5 Layer 1 Tile data
- { "bp962a.u57", 0x200000, 0x6d608957, BRF_GRA }, // 6 Layer 2 Tile data
- { "bp962a.u65", 0x200000, 0x135fcf9a, BRF_GRA }, // 7
-
- { "bp962a.u48", 0x200000, 0xae00a1ce, BRF_SND }, // 8 MSM6295 #0 ADPCM data
- { "bp962a.u47", 0x200000, 0x6d4e9737, BRF_SND }, // 9 MSM6295 #1 ADPCM data
-
- { "agallet_taiwan.nv", 0x0080, 0x0af46742, BRF_ESS | BRF_PRG },
-};
-
-
-STD_ROM_PICK(agalletat)
-STD_ROM_FN(agalletat)
-
-static struct BurnRomInfo agallethRomDesc[] = {
- { "bp962a.u45", 0x080000, 0x24815046, BRF_ESS | BRF_PRG }, // 0 CPU #0 code
- { "bp962a.u9", 0x080000, 0x06caddbe, BRF_ESS | BRF_PRG }, // 1 Z80 code
-
- { "bp962a.u76", 0x200000, 0x858da439, BRF_GRA }, // 2 Sprite data
- { "bp962a.u77", 0x200000, 0xea2ba35e, BRF_GRA }, // 3
-
- { "bp962a.u53", 0x200000, 0xfcd9a107, BRF_GRA }, // 4 Layer 0 Tile data
- { "bp962a.u54", 0x200000, 0x0cfa3409, BRF_GRA }, // 5 Layer 1 Tile data
- { "bp962a.u57", 0x200000, 0x6d608957, BRF_GRA }, // 6 Layer 2 Tile data
- { "bp962a.u65", 0x200000, 0x135fcf9a, BRF_GRA }, // 7
-
- { "bp962a.u48", 0x200000, 0xae00a1ce, BRF_SND }, // 8 MSM6295 #0 ADPCM data
- { "bp962a.u47", 0x200000, 0x6d4e9737, BRF_SND }, // 9 MSM6295 #1 ADPCM data
-
- { "agallet_hongkong.nv", 0x0080, 0x998d1a74, BRF_ESS | BRF_PRG },
-};
-
-
-STD_ROM_PICK(agalleth)
-STD_ROM_FN(agalleth)
-
-static struct BurnRomInfo agalletahRomDesc[] = {
- { "u45", 0x080000, 0x2cab18b0, BRF_ESS | BRF_PRG }, // 0 CPU #0 code
- { "bp962a.u9", 0x080000, 0x06caddbe, BRF_ESS | BRF_PRG }, // 1 Z80 code
-
- { "bp962a.u76", 0x200000, 0x858da439, BRF_GRA }, // 2 Sprite data
- { "bp962a.u77", 0x200000, 0xea2ba35e, BRF_GRA }, // 3
-
- { "bp962a.u53", 0x200000, 0xfcd9a107, BRF_GRA }, // 4 Layer 0 Tile data
- { "bp962a.u54", 0x200000, 0x0cfa3409, BRF_GRA }, // 5 Layer 1 Tile data
- { "bp962a.u57", 0x200000, 0x6d608957, BRF_GRA }, // 6 Layer 2 Tile data
- { "bp962a.u65", 0x200000, 0x135fcf9a, BRF_GRA }, // 7
-
- { "bp962a.u48", 0x200000, 0xae00a1ce, BRF_SND }, // 8 MSM6295 #0 ADPCM data
- { "bp962a.u47", 0x200000, 0x6d4e9737, BRF_SND }, // 9 MSM6295 #1 ADPCM data
-
- { "agallet_hongkong.nv", 0x0080, 0x998d1a74, BRF_ESS | BRF_PRG },
-};
-
-
-STD_ROM_PICK(agalletah)
-STD_ROM_FN(agalletah)
-
-struct BurnDriver BurnDrvSailorMoon = {
- "sailormn", NULL, NULL, NULL,"1995",
- "Pretty Soldier Sailor Moon (ver. 95/03/22B, Europe)\0", NULL, "BanPresto / Gazelle", "Cave",
- L"Pretty Soldier Sailor Moon\0\u7F8E\u5C11\u5973\u6226\u58EB \u30BB\u30FC\u30E9\u30FC\u30E0\u30FC\u30F3 (ver. 95/03/22B, Europe)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_CAVE_68K_Z80, GBF_SCRFIGHT, 0,
- NULL, sailormnRomInfo, sailormnRomName, NULL, NULL, sailormnInputInfo, NULL,
- sailormnInit, DrvExit, DrvFrame, DrvDraw, DrvScan,
- &CaveRecalcPalette, 0x8000, 320, 240, 4, 3
-};
-
-struct BurnDriver BurnDrvSailorMoonu = {
- "sailormnu", "sailormn", NULL, NULL,"1995",
- "Pretty Soldier Sailor Moon (ver. 95/03/22B, USA)\0", NULL, "BanPresto / Gazelle", "Cave",
- L"Pretty Soldier Sailor Moon\0\u7F8E\u5C11\u5973\u6226\u58EB \u30BB\u30FC\u30E9\u30FC\u30E0\u30FC\u30F3 (ver. 95/03/22B, USA)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_16BIT_ONLY, 2, HARDWARE_CAVE_68K_Z80, GBF_SCRFIGHT, 0,
- NULL, sailormnuRomInfo, sailormnuRomName, NULL, NULL, sailormnInputInfo, NULL,
- sailormnInit, DrvExit, DrvFrame, DrvDraw, DrvScan,
- &CaveRecalcPalette, 0x8000, 320, 240, 4, 3
-};
-
-struct BurnDriver BurnDrvSailorMoonj = {
- "sailormnj", "sailormn", NULL, NULL,"1995",
- "Pretty Soldier Sailor Moon (ver. 95/03/22B, Japan)\0", NULL, "BanPresto / Gazelle", "Cave",
- L"Pretty Soldier Sailor Moon\0\u7F8E\u5C11\u5973\u6226\u58EB \u30BB\u30FC\u30E9\u30FC\u30E0\u30FC\u30F3 (ver. 95/03/22B, Japan)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_16BIT_ONLY, 2, HARDWARE_CAVE_68K_Z80, GBF_SCRFIGHT, 0,
- NULL, sailormnjRomInfo, sailormnjRomName, NULL, NULL, sailormnInputInfo, NULL,
- sailormnInit, DrvExit, DrvFrame, DrvDraw, DrvScan,
- &CaveRecalcPalette, 0x8000, 320, 240, 4, 3
-};
-
-struct BurnDriver BurnDrvSailorMoonk = {
- "sailormnk", "sailormn", NULL, NULL,"1995",
- "Pretty Soldier Sailor Moon (ver. 95/03/22B, Korea)\0", NULL, "BanPresto / Gazelle", "Cave",
- L"Pretty Soldier Sailor Moon\0\u7F8E\u5C11\u5973\u6226\u58EB \u30BB\u30FC\u30E9\u30FC\u30E0\u30FC\u30F3 (ver. 95/03/22B, Korea)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_16BIT_ONLY, 2, HARDWARE_CAVE_68K_Z80, GBF_SCRFIGHT, 0,
- NULL, sailormnkRomInfo, sailormnkRomName, NULL, NULL, sailormnInputInfo, NULL,
- sailormnInit, DrvExit, DrvFrame, DrvDraw, DrvScan,
- &CaveRecalcPalette, 0x8000, 320, 240, 4, 3
-};
-
-struct BurnDriver BurnDrvSailorMoont = {
- "sailormnt", "sailormn", NULL, NULL,"1995",
- "Pretty Soldier Sailor Moon (ver. 95/03/22B, Taiwan)\0", NULL, "BanPresto / Gazelle", "Cave",
- L"Pretty Soldier Sailor Moon\0\u7F8E\u5C11\u5973\u6226\u58EB \u30BB\u30FC\u30E9\u30FC\u30E0\u30FC\u30F3 (ver. 95/03/22B, Taiwan)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_16BIT_ONLY, 2, HARDWARE_CAVE_68K_Z80, GBF_SCRFIGHT, 0,
- NULL, sailormntRomInfo, sailormntRomName, NULL, NULL, sailormnInputInfo, NULL,
- sailormnInit, DrvExit, DrvFrame, DrvDraw, DrvScan,
- &CaveRecalcPalette, 0x8000, 320, 240, 4, 3
-};
-
-struct BurnDriver BurnDrvSailorMoonh = {
- "sailormnh", "sailormn", NULL, NULL,"1995",
- "Pretty Soldier Sailor Moon (ver. 95/03/22B, Hong Kong)\0", NULL, "BanPresto / Gazelle", "Cave",
- L"Pretty Soldier Sailor Moon\0\u7F8E\u5C11\u5973\u6226\u58EB \u30BB\u30FC\u30E9\u30FC\u30E0\u30FC\u30F3 (ver. 95/03/22B, Hong Kong)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_16BIT_ONLY, 2, HARDWARE_CAVE_68K_Z80, GBF_SCRFIGHT, 0,
- NULL, sailormnhRomInfo, sailormnhRomName, NULL, NULL, sailormnInputInfo, NULL,
- sailormnInit, DrvExit, DrvFrame, DrvDraw, DrvScan,
- &CaveRecalcPalette, 0x8000, 320, 240, 4, 3
-};
-
-struct BurnDriver BurnDrvSailorMoonO = {
- "sailormno", "sailormn", NULL, NULL,"1995",
- "Pretty Soldier Sailor Moon (ver. 95/03/22, Europe)\0", NULL, "BanPresto / Gazelle", "Cave",
- L"Pretty Soldier Sailor Moon\0\u7F8E\u5C11\u5973\u6226\u58EB \u30BB\u30FC\u30E9\u30FC\u30E0\u30FC\u30F3 (ver. 95/03/22, Europe)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_16BIT_ONLY, 2, HARDWARE_CAVE_68K_Z80, GBF_SCRFIGHT, 0,
- NULL, sailormnoRomInfo, sailormnoRomName, NULL, NULL, sailormnInputInfo, NULL,
- sailormnInit, DrvExit, DrvFrame, DrvDraw, DrvScan,
- &CaveRecalcPalette, 0x8000, 320, 240, 4, 3
-};
-
-struct BurnDriver BurnDrvSailorMoonOu = {
- "sailormnou", "sailormn", NULL, NULL,"1995",
- "Pretty Soldier Sailor Moon (ver. 95/03/22, USA)\0", NULL, "BanPresto / Gazelle", "Cave",
- L"Pretty Soldier Sailor Moon\0\u7F8E\u5C11\u5973\u6226\u58EB \u30BB\u30FC\u30E9\u30FC\u30E0\u30FC\u30F3 (ver. 95/03/22, USA)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_16BIT_ONLY, 2, HARDWARE_CAVE_68K_Z80, GBF_SCRFIGHT, 0,
- NULL, sailormnouRomInfo, sailormnouRomName, NULL, NULL, sailormnInputInfo, NULL,
- sailormnInit, DrvExit, DrvFrame, DrvDraw, DrvScan,
- &CaveRecalcPalette, 0x8000, 320, 240, 4, 3
-};
-
-struct BurnDriver BurnDrvSailorMoonOj = {
- "sailormnoj", "sailormn", NULL, NULL,"1995",
- "Pretty Soldier Sailor Moon (ver. 95/03/22, Japan)\0", NULL, "BanPresto / Gazelle", "Cave",
- L"Pretty Soldier Sailor Moon\0\u7F8E\u5C11\u5973\u6226\u58EB \u30BB\u30FC\u30E9\u30FC\u30E0\u30FC\u30F3 (ver. 95/03/22, Japan)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_16BIT_ONLY, 2, HARDWARE_CAVE_68K_Z80, GBF_SCRFIGHT, 0,
- NULL, sailormnojRomInfo, sailormnojRomName, NULL, NULL, sailormnInputInfo, NULL,
- sailormnInit, DrvExit, DrvFrame, DrvDraw, DrvScan,
- &CaveRecalcPalette, 0x8000, 320, 240, 4, 3
-};
-
-struct BurnDriver BurnDrvSailorMoonOk = {
- "sailormnok", "sailormn", NULL, NULL,"1995",
- "Pretty Soldier Sailor Moon (ver. 95/03/22, Korea)\0", NULL, "BanPresto / Gazelle", "Cave",
- L"Pretty Soldier Sailor Moon\0\u7F8E\u5C11\u5973\u6226\u58EB \u30BB\u30FC\u30E9\u30FC\u30E0\u30FC\u30F3 (ver. 95/03/22, Korea)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_16BIT_ONLY, 2, HARDWARE_CAVE_68K_Z80, GBF_SCRFIGHT, 0,
- NULL, sailormnokRomInfo, sailormnokRomName, NULL, NULL, sailormnInputInfo, NULL,
- sailormnInit, DrvExit, DrvFrame, DrvDraw, DrvScan,
- &CaveRecalcPalette, 0x8000, 320, 240, 4, 3
-};
-
-struct BurnDriver BurnDrvSailorMoonOt = {
- "sailormnot", "sailormn", NULL, NULL,"1995",
- "Pretty Soldier Sailor Moon (ver. 95/03/22, Taiwan)\0", NULL, "BanPresto / Gazelle", "Cave",
- L"Pretty Soldier Sailor Moon\0\u7F8E\u5C11\u5973\u6226\u58EB \u30BB\u30FC\u30E9\u30FC\u30E0\u30FC\u30F3 (ver. 95/03/22, Taiwan)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_16BIT_ONLY, 2, HARDWARE_CAVE_68K_Z80, GBF_SCRFIGHT, 0,
- NULL, sailormnotRomInfo, sailormnotRomName, NULL, NULL, sailormnInputInfo, NULL,
- sailormnInit, DrvExit, DrvFrame, DrvDraw, DrvScan,
- &CaveRecalcPalette, 0x8000, 320, 240, 4, 3
-};
-
-struct BurnDriver BurnDrvSailorMoonOh = {
- "sailormnoh", "sailormn", NULL, NULL,"1995",
- "Pretty Soldier Sailor Moon (ver. 95/03/22, Hong Kong)\0", NULL, "BanPresto / Gazelle", "Cave",
- L"Pretty Soldier Sailor Moon\0\u7F8E\u5C11\u5973\u6226\u58EB \u30BB\u30FC\u30E9\u30FC\u30E0\u30FC\u30F3 (ver. 95/03/22, Hong Kong)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_16BIT_ONLY, 2, HARDWARE_CAVE_68K_Z80, GBF_SCRFIGHT, 0,
- NULL, sailormnohRomInfo, sailormnohRomName, NULL, NULL, sailormnInputInfo, NULL,
- sailormnInit, DrvExit, DrvFrame, DrvDraw, DrvScan,
- &CaveRecalcPalette, 0x8000, 320, 240, 4, 3
-};
-
-struct BurnDriver BurnDrvAirGallet = {
- "agallet", NULL, NULL, NULL,"1996",
- "Air Gallet (Europe)\0", NULL, "BanPresto / Gazelle", "Cave",
- L"Air Gallet\0\u30A2\u30EF\u30A6\u30AE\u30E3\u30EC\u30C3\u30C8 (Europe)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_16BIT_ONLY, 2, HARDWARE_CAVE_68K_Z80, GBF_VERSHOOT, 0,
- NULL, agalletRomInfo, agalletRomName, NULL, NULL, sailormnInputInfo, NULL,
- agalletInit, DrvExit, DrvFrame, DrvDraw, DrvScan,
- &CaveRecalcPalette, 0x8000, 240, 320, 3, 4
-};
-
-struct BurnDriver BurnDrvAirGalleta = {
- "agalleta", "agallet", NULL, NULL,"1996",
- "Air Gallet (older, Europe)\0", NULL, "BanPresto / Gazelle", "Cave",
- L"Air Gallet\0\u30A2\u30EF\u30A6\u30AE\u30E3\u30EC\u30C3\u30C8 (older, Europe)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_16BIT_ONLY, 2, HARDWARE_CAVE_68K_Z80, GBF_VERSHOOT, 0,
- NULL, agalletaRomInfo, agalletaRomName, NULL, NULL, sailormnInputInfo, NULL,
- agalletaInit, DrvExit, DrvFrame, DrvDraw, DrvScan,
- &CaveRecalcPalette, 0x8000, 240, 320, 3, 4
-};
-
-struct BurnDriver BurnDrvAirGalletu = {
- "agalletu", "agallet", NULL, NULL,"1996",
- "Air Gallet (USA)\0", NULL, "BanPresto / Gazelle", "Cave",
- L"Air Gallet\0\u30A2\u30EF\u30A6\u30AE\u30E3\u30EC\u30C3\u30C8 (USA)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_16BIT_ONLY, 2, HARDWARE_CAVE_68K_Z80, GBF_VERSHOOT, 0,
- NULL, agalletuRomInfo, agalletuRomName, NULL, NULL, sailormnInputInfo, NULL,
- agalletInit, DrvExit, DrvFrame, DrvDraw, DrvScan,
- &CaveRecalcPalette, 0x8000, 240, 320, 3, 4
-};
-
-struct BurnDriver BurnDrvAirGalletau = {
- "agalletau", "agallet", NULL, NULL,"1996",
- "Air Gallet (older, USA)\0", NULL, "BanPresto / Gazelle", "Cave",
- L"Air Gallet\0\u30A2\u30EF\u30A6\u30AE\u30E3\u30EC\u30C3\u30C8 (older, USA)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_16BIT_ONLY, 2, HARDWARE_CAVE_68K_Z80, GBF_VERSHOOT, 0,
- NULL, agalletauRomInfo, agalletauRomName, NULL, NULL, sailormnInputInfo, NULL,
- agalletaInit, DrvExit, DrvFrame, DrvDraw, DrvScan,
- &CaveRecalcPalette, 0x8000, 240, 320, 3, 4
-};
-
-struct BurnDriver BurnDrvAirGalletj = {
- "agalletj", "agallet", NULL, NULL,"1996",
- "Akuu Gallet (Japan)\0", NULL, "BanPresto / Gazelle", "Cave",
- L"Akuu Gallet\0\u30A2\u30EF\u30A6\u30AE\u30E3\u30EC\u30C3\u30C8 (Japan)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_16BIT_ONLY, 2, HARDWARE_CAVE_68K_Z80, GBF_VERSHOOT, 0,
- NULL, agalletjRomInfo, agalletjRomName, NULL, NULL, sailormnInputInfo, NULL,
- agalletInit, DrvExit, DrvFrame, DrvDraw, DrvScan,
- &CaveRecalcPalette, 0x8000, 240, 320, 3, 4
-};
-
-struct BurnDriver BurnDrvAirGalletaj = {
- "agalletaj", "agallet", NULL, NULL,"1996",
- "Akuu Gallet (older, Japan)\0", NULL, "BanPresto / Gazelle", "Cave",
- L"Akuu Gallet\0\u30A2\u30EF\u30A6\u30AE\u30E3\u30EC\u30C3\u30C8 (older, Japan)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_16BIT_ONLY, 2, HARDWARE_CAVE_68K_Z80, GBF_VERSHOOT, 0,
- NULL, agalletajRomInfo, agalletajRomName, NULL, NULL, sailormnInputInfo, NULL,
- agalletaInit, DrvExit, DrvFrame, DrvDraw, DrvScan,
- &CaveRecalcPalette, 0x8000, 240, 320, 3, 4
-};
-
-struct BurnDriver BurnDrvAirGalletk = {
- "agalletk", "agallet", NULL, NULL,"1996",
- "Air Gallet (Korea)\0", NULL, "BanPresto / Gazelle", "Cave",
- L"Air Gallet\0\u30A2\u30EF\u30A6\u30AE\u30E3\u30EC\u30C3\u30C8 (Korea)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_16BIT_ONLY, 2, HARDWARE_CAVE_68K_Z80, GBF_VERSHOOT, 0,
- NULL, agalletkRomInfo, agalletkRomName, NULL, NULL, sailormnInputInfo, NULL,
- agalletInit, DrvExit, DrvFrame, DrvDraw, DrvScan,
- &CaveRecalcPalette, 0x8000, 240, 320, 3, 4
-};
-
-struct BurnDriver BurnDrvAirGalletak = {
- "agalletak", "agallet", NULL, NULL,"1996",
- "Air Gallet (older, Korea)\0", NULL, "BanPresto / Gazelle", "Cave",
- L"Air Gallet\0\u30A2\u30EF\u30A6\u30AE\u30E3\u30EC\u30C3\u30C8 (older, Korea)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_16BIT_ONLY, 2, HARDWARE_CAVE_68K_Z80, GBF_VERSHOOT, 0,
- NULL, agalletakRomInfo, agalletakRomName, NULL, NULL, sailormnInputInfo, NULL,
- agalletaInit, DrvExit, DrvFrame, DrvDraw, DrvScan,
- &CaveRecalcPalette, 0x8000, 240, 320, 3, 4
-};
-
-struct BurnDriver BurnDrvAirGallett = {
- "agallett", "agallet", NULL, NULL,"1996",
- "Air Gallet (Taiwan)\0", NULL, "BanPresto / Gazelle", "Cave",
- L"Air Gallet\0\u30A2\u30EF\u30A6\u30AE\u30E3\u30EC\u30C3\u30C8 (Taiwan)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_16BIT_ONLY, 2, HARDWARE_CAVE_68K_Z80, GBF_VERSHOOT, 0,
- NULL, agallettRomInfo, agallettRomName, NULL, NULL, sailormnInputInfo, NULL,
- agalletInit, DrvExit, DrvFrame, DrvDraw, DrvScan,
- &CaveRecalcPalette, 0x8000, 240, 320, 3, 4
-};
-
-struct BurnDriver BurnDrvAirGalletat = {
- "agalletat", "agallet", NULL, NULL,"1996",
- "Air Gallet (older, Taiwan)\0", NULL, "BanPresto / Gazelle", "Cave",
- L"Air Gallet\0\u30A2\u30EF\u30A6\u30AE\u30E3\u30EC\u30C3\u30C8 (older, Taiwan)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_16BIT_ONLY, 2, HARDWARE_CAVE_68K_Z80, GBF_VERSHOOT, 0,
- NULL, agalletatRomInfo, agalletatRomName, NULL, NULL, sailormnInputInfo, NULL,
- agalletaInit, DrvExit, DrvFrame, DrvDraw, DrvScan,
- &CaveRecalcPalette, 0x8000, 240, 320, 3, 4
-};
-
-struct BurnDriver BurnDrvAirGalleth = {
- "agalleth", "agallet", NULL, NULL,"1996",
- "Air Gallet (Hong Kong)\0", NULL, "BanPresto / Gazelle", "Cave",
- L"Air Gallet\0\u30A2\u30EF\u30A6\u30AE\u30E3\u30EC\u30C3\u30C8 (Hong Kong)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_16BIT_ONLY, 2, HARDWARE_CAVE_68K_Z80, GBF_VERSHOOT, 0,
- NULL, agallethRomInfo, agallethRomName, NULL, NULL, sailormnInputInfo, NULL,
- agalletInit, DrvExit, DrvFrame, DrvDraw, DrvScan,
- &CaveRecalcPalette, 0x8000, 240, 320, 3, 4
-};
-
-struct BurnDriver BurnDrvAirGalletah = {
- "agalletah", "agallet", NULL, NULL,"1996",
- "Air Gallet (older, Hong Kong)\0", NULL, "BanPresto / Gazelle", "Cave",
- L"Air Gallet\0\u30A2\u30EF\u30A6\u30AE\u30E3\u30EC\u30C3\u30C8 (older, Hong Kong)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_16BIT_ONLY, 2, HARDWARE_CAVE_68K_Z80, GBF_VERSHOOT, 0,
- NULL, agalletahRomInfo, agalletahRomName, NULL, NULL, sailormnInputInfo, NULL,
- agalletaInit, DrvExit, DrvFrame, DrvDraw, DrvScan,
- &CaveRecalcPalette, 0x8000, 240, 320, 3, 4
-};
-
diff --git a/jan/src/burn/drv/cave/d_tjumpman.cpp b/jan/src/burn/drv/cave/d_tjumpman.cpp
deleted file mode 100644
index 340dbce9b..000000000
--- a/jan/src/burn/drv/cave/d_tjumpman.cpp
+++ /dev/null
@@ -1,584 +0,0 @@
-// Tobikose! Jumpman
-#include "cave.h"
-#include "msm6295.h"
-
-#define CAVE_VBLANK_LINES 12
-
-static UINT8 DrvJoy1[8] = {0, 0, 0, 0, 0, 0, 0, 0};
-static UINT8 DrvJoy2[8] = {0, 0, 0, 0, 0, 0, 0, 0};
-static UINT16 DrvInput[2] = {0, 0};
-static UINT8 DrvDip[2] = { 0, 0 };
-
-static UINT8 *Mem = NULL, *MemEnd = NULL;
-static UINT8 *RamStart, *RamEnd;
-static UINT8 *Rom01;
-static UINT8 *Ram01;
-
-static UINT8 DrvReset;
-static bool bVBlank;
-
-static INT8 nVideoIRQ;
-static INT8 nSoundIRQ;
-static INT8 nUnknownIRQ;
-static INT8 nIRQPending;
-
-static INT32 nPrevCoinHack = 0;
-static INT32 watchdog;
-static INT32 tjumpman_hopper;
-
-static struct BurnInputInfo TjumpmanInputList[] = {
- {"Coin", BIT_DIGITAL, DrvJoy2 + 6, "p1 coin" },
- {"1 Bet", BIT_DIGITAL, DrvJoy1 + 6, "p1 fire 1" },
- {"3 Bet", BIT_DIGITAL, DrvJoy2 + 7, "p1 fire 2" },
- {"No (not)", BIT_DIGITAL, DrvJoy2 + 4, "p1 start" },
- {"Yes (do)", BIT_DIGITAL, DrvJoy1 + 4, "p1 fire 4" },
- {"Pay Out", BIT_DIGITAL, DrvJoy1 + 5, "p1 fire 5" },
- {"Go", BIT_DIGITAL, DrvJoy2 + 5, "p1 fire 3" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Dip A", BIT_DIPSWITCH, DrvDip + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDip + 1, "dip" },
-};
-
-STDINPUTINFO(Tjumpman)
-
-static struct BurnDIPInfo TjumpmanDIPList[]=
-{
- {0x08, 0xff, 0xff, 0x01, NULL },
- {0x09, 0xff, 0xff, 0x08, NULL },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x08, 0x01, 0x01, 0x01, "Off" },
- {0x08, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Self Test" },
- {0x09, 0x01, 0x08, 0x08, "Off" },
- {0x09, 0x01, 0x08, 0x00, "On" },
-};
-
-STDDIPINFO(Tjumpman)
-
-static void UpdateIRQStatus()
-{
- nIRQPending = (nVideoIRQ == 0 || nSoundIRQ == 0 || nUnknownIRQ == 0);
- SekSetIRQLine(1, nIRQPending ? CPU_IRQSTATUS_ACK : CPU_IRQSTATUS_NONE);
-}
-
-static INT32 tjumpman_hopper_read()
-{
- return (tjumpman_hopper && !(nCurrentFrame % 10)) ? 0 : 1;
-}
-
-UINT8 __fastcall tjumpmanReadByte(UINT32 sekAddress)
-{
- switch (sekAddress)
- {
- case 0x600000:
- return 0xff;
-
- case 0x600001:
- return ((DrvInput[0] & 0x76) ^ 0x76) | (DrvDip[0] & 1) | ((EEPROMRead() & 1) << 3) | (tjumpman_hopper_read() << 7);
-
- case 0x600002:
- return 0xff;
-
- case 0x600003:
- return ((DrvInput[1] & 0xF7) ^ 0xF7) | (DrvDip[1] & 8);
-
- case 0x700000:
- case 0x700001: {
- UINT8 nRet = (nUnknownIRQ << 1) | nVideoIRQ | (bVBlank ? 4 : 0);
- return nRet;
- }
-
- case 0x700002:
- case 0x700003: {
- UINT8 nRet = (nUnknownIRQ << 1) | nVideoIRQ;
- return nRet;
- }
-
- case 0x700004:
- case 0x700005: {
- UINT8 nRet = (nUnknownIRQ << 1) | nVideoIRQ;
- nVideoIRQ = 1;
- UpdateIRQStatus();
- return nRet;
- }
-
- case 0x700006:
- case 0x700007: {
- UINT8 nRet = (nUnknownIRQ << 1) | nVideoIRQ;
- nUnknownIRQ = 1;
- UpdateIRQStatus();
- return nRet;
- }
-
- case 0x800001:
- return MSM6295ReadStatus(0);
-
- default: {
-// bprintf(PRINT_NORMAL, _T("Attempt to read byte value of location %x\n"), sekAddress);
- }
- }
- return 0;
-}
-
-UINT16 __fastcall tjumpmanReadWord(UINT32 sekAddress)
-{
- switch (sekAddress)
- {
- case 0x600000:
- return (DrvInput[0] ^ 0xFF76) | (DrvDip[0] & 1) | ((EEPROMRead() & 1) << 3) | (tjumpman_hopper_read() << 7);
-
- case 0x600002:
- return (DrvInput[1] ^ 0xFFF7) | (DrvDip[1] & 8);
-
- case 0x700000: {
- UINT16 nRet = (nUnknownIRQ << 1) | nVideoIRQ | (bVBlank ? 4 : 0);
- return nRet;
- }
-
- case 0x700002: {
- UINT16 nRet = (nUnknownIRQ << 1) | nVideoIRQ;
- return nRet;
- }
-
- case 0x700004: {
- UINT16 nRet = (nUnknownIRQ << 1) | nVideoIRQ;
- nVideoIRQ = 1;
- UpdateIRQStatus();
- return nRet;
- }
-
- case 0x700006: {
- UINT16 nRet = (nUnknownIRQ << 1) | nVideoIRQ;
- nUnknownIRQ = 1;
- UpdateIRQStatus();
- return nRet;
- }
-
- case 0x800000:
- return MSM6295ReadStatus(0);
-
- default: {
-// bprintf(PRINT_NORMAL, _T("Attempt to read word value of location %x\n"), sekAddress);
- }
- }
- return 0;
-}
-
-void __fastcall tjumpmanWriteByte(UINT32 sekAddress, UINT8 byteValue)
-{
- switch (sekAddress)
- {
- case 0x800001:
- MSM6295Command(0, byteValue);
- break;
-
- case 0xc00000:
- break;
-
- case 0xc00001:
- tjumpman_hopper = byteValue & 0x40;
- break;
-
- case 0xe00001:
- EEPROMWrite(byteValue & 0x10, byteValue & 0x08, byteValue & 0x20);
- break;
-
- default: {
- bprintf(PRINT_NORMAL, _T("Attempt to write byte value %x to location %x\n"), byteValue, sekAddress);
- }
- }
-}
-
-void __fastcall tjumpmanWriteWord(UINT32 sekAddress, UINT16 wordValue)
-{
- switch (sekAddress)
- {
- case 0x400000:
- CaveTileReg[0][0] = wordValue;
- break;
- case 0x400002:
- CaveTileReg[0][1] = wordValue;
- break;
- case 0x400004:
- CaveTileReg[0][2] = wordValue;
- break;
-
- case 0x700000:
- nCaveXOffset = wordValue;
- return;
- case 0x700002:
- nCaveYOffset = wordValue;
- return;
- case 0x700008:
- CaveSpriteBuffer();
- nCaveSpriteBank = wordValue;
- return;
-
- case 0x700068:
- watchdog = 0;
- break;
-
- case 0x800000:
- MSM6295Command(0, wordValue);
- break;
-
- case 0xc00000:
- tjumpman_hopper = wordValue & 0x40;
- break;
-
- case 0xe00000:
- EEPROMWrite(wordValue & 0x10, wordValue & 0x08, wordValue & 0x20);
- break;
-
- default: {
- bprintf(PRINT_NORMAL, _T("Attempt to write word value %x to location %x\n"), wordValue, sekAddress);
-
- }
- }
-}
-
-void __fastcall tjumpmanWriteBytePalette(UINT32 sekAddress, UINT8 byteValue)
-{
- CavePalWriteByte(sekAddress & 0xFFFF, byteValue);
-}
-
-void __fastcall tjumpmanWriteWordPalette(UINT32 sekAddress, UINT16 wordValue)
-{
- CavePalWriteWord(sekAddress & 0xFFFF, wordValue);
-}
-
-static INT32 DrvExit()
-{
- EEPROMExit();
-
- MSM6295Exit(0);
-
- CaveTileExit();
- CaveSpriteExit();
- CavePalExit();
-
- SekExit();
-
- BurnFree(Mem);
- Mem = NULL;
-
- return 0;
-}
-
-static INT32 DrvDoReset()
-{
- SekOpen(0);
- SekReset();
- SekClose();
-
- EEPROMReset();
-
- nVideoIRQ = 1;
- nSoundIRQ = 1;
- nUnknownIRQ = 1;
-
- nIRQPending = 0;
-
- MSM6295Reset(0);
-
- tjumpman_hopper = 0;
- watchdog = 0;
-// nPrevCoinHack = 0;
-
- return 0;
-}
-
-static INT32 DrvDraw()
-{
- CaveSpriteBuffer();
- CavePalUpdate8Bit(0, 128);
- CaveClearScreen(CavePalette[0x7F00]);
-
- CaveTileRender(1);
-
- return 0;
-}
-
-inline static INT32 CheckSleep(INT32)
-{
- return 0;
-}
-
-static INT32 DrvFrame()
-{
- INT32 nCyclesVBlank;
- INT32 nInterleave = 8;
-
- INT32 nCyclesTotal[1];
- INT32 nCyclesDone[1];
-
- INT32 nCyclesSegment;
-
- watchdog++;
- if (DrvReset || (watchdog > 180)) {
- DrvDoReset();
- }
-
- DrvInput[0] = 0;
- DrvInput[1] = 0;
- for (INT32 i = 0; i < 8; i++) {
- DrvInput[0] |= (DrvJoy1[i] & 1) << i;
- DrvInput[1] |= (DrvJoy2[i] & 1) << i;
- }
-
- //if ((nPrevCoinHack != (DrvInput[1] & 0x0040)) && (DrvInput[1] & 0x0040)) {
- // Ram01[0x24]++;
- // if (Ram01[0x24] > 9) Ram01[0x24] = 9; // ?
- //}
-
- nPrevCoinHack = DrvInput[1] & 0x0040;
-
- nCyclesTotal[0] = (INT32)((INT64)14000000 * nBurnCPUSpeedAdjust / (0x0100 * CAVE_REFRESHRATE));
- nCyclesDone[0] = 0;
-
- nCyclesVBlank = nCyclesTotal[0] - (INT32)((nCyclesTotal[0] * CAVE_VBLANK_LINES) / 271.5);
- bVBlank = false;
-
- SekOpen(0);
-
- for (INT32 i = 1; i <= nInterleave; i++) {
- INT32 nCurrentCPU = 0;
- INT32 nNext = i * nCyclesTotal[nCurrentCPU] / nInterleave;
-
- // See if we need to trigger the VBlank interrupt
- if (!bVBlank && nNext > nCyclesVBlank) {
- if (nCyclesDone[nCurrentCPU] < nCyclesVBlank) {
- nCyclesSegment = nCyclesVBlank - nCyclesDone[nCurrentCPU];
- nCyclesDone[nCurrentCPU] += SekRun(nCyclesSegment);
- }
-
- if (pBurnDraw) {
- DrvDraw();
- }
-
- bVBlank = true;
- nVideoIRQ = 0;
- UpdateIRQStatus();
- }
-
- nCyclesSegment = nNext - nCyclesDone[nCurrentCPU];
- nCyclesDone[nCurrentCPU] += SekRun(nCyclesSegment);
-
- // end of vblank
- if (i == nInterleave) {
- bVBlank = false;
- nUnknownIRQ = 1;
- UpdateIRQStatus();
- }
- }
-
- if (pBurnSoundOut) {
- MSM6295Render(0, pBurnSoundOut, nBurnSoundLen);
- }
-
- SekClose();
-
- return 0;
-}
-
-static INT32 MemIndex()
-{
- UINT8* Next;
-
- Next = Mem;
-
- Rom01 = Next; Next += 0x080000;
- CaveSpriteROM = Next; Next += 0x200000;
- CaveTileROM[0] = Next; Next += 0x100000;
-
- MSM6295ROM = Next; Next += 0x040000;
-
- Ram01 = Next; Next += 0x010000; // work RAM (NV!)
-
- RamStart = Next;
-
- CaveTileRAM[0] = Next; Next += 0x008000;
- CaveSpriteRAM = Next; Next += 0x010000;
- CavePalSrc = Next; Next += 0x010000;
-
- RamEnd = Next;
- MemEnd = Next;
-
- return 0;
-}
-
-static void NibbleSwap1(UINT8* pData, INT32 nLen)
-{
- UINT8* pOrg = pData + nLen - 1;
- UINT8* pDest = pData + ((nLen - 1) << 1);
-
- for (INT32 i = 0; i < nLen; i++, pOrg--, pDest -= 2) {
- pDest[0] = *pOrg & 15;
- pDest[1] = *pOrg >> 4;
- }
-
- return;
-}
-
-static void NibbleSwap4(UINT8* pData, INT32 nLen)
-{
- for (INT32 i = 0; i < nLen; i++, pData += 2) {
- UINT8 n1 = pData[0];
- UINT8 n2 = pData[1];
-
- pData[1] = (n2 << 4) | (n1 & 0x0F);
- pData[0] = (n2 & 0xF0) | (n1 >> 4);
- }
-
- return;
-}
-
-static INT32 LoadRoms()
-{
- BurnLoadRom(Rom01, 0, 1);
-
- BurnLoadRom(CaveSpriteROM + 0x000000, 1, 2);
- BurnLoadRom(CaveSpriteROM + 0x000001, 2, 2);
- NibbleSwap1(CaveSpriteROM, 0x100000);
-
- BurnLoadRom(CaveTileROM[0] + 0x00000, 3, 2);
- BurnLoadRom(CaveTileROM[0] + 0x00001, 4, 2);
- NibbleSwap4(CaveTileROM[0], 0x80000);
-
- BurnLoadRom(MSM6295ROM, 5, 1);
-
- return 0;
-}
-
-static INT32 DrvScan(INT32 nAction, INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin) {
- *pnMin = 0x020902;
- }
-
- EEPROMScan(nAction, pnMin);
-
- if (nAction & ACB_VOLATILE) {
-
- memset(&ba, 0, sizeof(ba));
- ba.Data = RamStart;
- ba.nLen = RamEnd - RamStart;
- ba.szName = "RAM";
- BurnAcb(&ba);
-
- SekScan(nAction);
-
- MSM6295Scan(0, nAction);
-
- SCAN_VAR(nVideoIRQ);
- SCAN_VAR(nSoundIRQ);
- SCAN_VAR(nUnknownIRQ);
-
- SCAN_VAR(tjumpman_hopper);
-
- CaveScanGraphics();
- }
-
- if (nAction & ACB_NVRAM) {
- ba.Data = Ram01;
- ba.nLen = 0x010000;
- ba.nAddress = 0x100000;
- ba.szName = "NV RAM";
- BurnAcb(&ba);
- }
-
- return 0;
-}
-
-static INT32 DrvInit()
-{
- INT32 nLen;
-
- BurnSetRefreshRate(CAVE_REFRESHRATE);
-
- Mem = NULL;
- MemIndex();
- nLen = MemEnd - (UINT8 *)0;
- if ((Mem = (UINT8 *)BurnMalloc(nLen)) == NULL) {
- return 1;
- }
- memset(Mem, 0, nLen);
- MemIndex();
-
- if (LoadRoms()) {
- return 1;
- }
-
- EEPROMInit(&eeprom_interface_93C46);
-
- {
- SekInit(0, 0x68000);
- SekOpen(0);
- SekMapMemory(Rom01, 0x000000, 0x07FFFF, MAP_ROM);
- SekMapMemory(Ram01, 0x100000, 0x10FFFF, MAP_RAM);
- SekMapMemory(CaveTileRAM[0], 0x300000, 0x303FFF, MAP_RAM);
- SekMapMemory(CaveTileRAM[0], 0x304000, 0x307FFF, MAP_RAM); // mirror
- SekMapMemory(CaveSpriteRAM, 0x200000, 0x20FFFF, MAP_RAM);
- SekMapMemory(CavePalSrc, 0x500000, 0x50FFFF, MAP_ROM);
- SekSetReadWordHandler(0, tjumpmanReadWord);
- SekSetReadByteHandler(0, tjumpmanReadByte);
- SekSetWriteWordHandler(0, tjumpmanWriteWord);
- SekSetWriteByteHandler(0, tjumpmanWriteByte);
-
- SekMapHandler(1, 0x500000, 0x50FFFF, MAP_WRITE);
- SekSetWriteWordHandler(1, tjumpmanWriteWordPalette);
- SekSetWriteByteHandler(1, tjumpmanWriteBytePalette);
- SekClose();
- }
-
- nCaveExtraXOffset = -128; // bg
- CaveSpriteVisibleXOffset = -128; // sprite
-
- CavePalInit(0x8000);
- CaveTileInit();
- CaveSpriteInit(2, 0x0200000);
- CaveTileInitLayer(0, 0x100000, 8, 0x4000);
-
- MSM6295Init(0, 7575, 0);
- MSM6295SetRoute(0, 1.00, BURN_SND_ROUTE_BOTH);
-
- DrvDoReset();
-
- return 0;
-}
-
-
-// Tobikose! Jumpman
-
-static struct BurnRomInfo tjumpmanRomDesc[] = {
- { "tj1_mpr-0c.u41", 0x80000, 0xde3030b8, BRF_PRG | BRF_PRG }, // 0 CPU #0 code
-
- { "tj1_obj-0a.u52", 0x80000, 0xb42cf8e8, BRF_GRA }, // 1 Sprite data
- { "tj1_obj-1a.u53", 0x80000, 0x5f0124d7, BRF_GRA }, // 2
-
- { "tj1_cha-0a.u60", 0x40000, 0x8aa08a38, BRF_GRA }, // 3 Layer 0 Tile data
- { "tj1_cha-1a.u61", 0x40000, 0x50072c82, BRF_GRA }, // 4
-
- { "tj1_voi-0a.u27", 0x40000, 0xb5693aae, BRF_SND }, // 5 MSM6295 #0 ADPCM data
-
- { "n44u3b.u3", 0x00117, 0x4cd79750, BRF_OPT }, // 6 PLDs
- { "n44u1g.u1", 0x00117, 0xe226ec18, BRF_OPT }, // 7
-};
-
-STD_ROM_PICK(tjumpman)
-STD_ROM_FN(tjumpman)
-
-struct BurnDriverD BurnDrvTjumpman = {
- "tjumpman", NULL, NULL, NULL, "1999",
- "Tobikose! Jumpman\0", "Coin input not working?", "Namco", "Cave",
- L"\u30E1\u30B0\u30EB\u3092\u3044\u308C\u3066\u306D!\0Tobikose! Jumpman\0", NULL, NULL, NULL,
- BDF_16BIT_ONLY, 1, HARDWARE_CAVE_68K_ONLY | HARDWARE_CAVE_M6295, GBF_MISC, 0,
- NULL, tjumpmanRomInfo, tjumpmanRomName, NULL, NULL, TjumpmanInputInfo, TjumpmanDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan,
- &CaveRecalcPalette, 0x8000, 320, 240, 4, 3
-};
diff --git a/jan/src/burn/drv/cave/d_uopoko.cpp b/jan/src/burn/drv/cave/d_uopoko.cpp
deleted file mode 100644
index 361010fd2..000000000
--- a/jan/src/burn/drv/cave/d_uopoko.cpp
+++ /dev/null
@@ -1,608 +0,0 @@
-// Uo Poko
-#include "cave.h"
-#include "ymz280b.h"
-
-#define CAVE_VBLANK_LINES 12
-
-static UINT8 DrvJoy1[16] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
-static UINT8 DrvJoy2[16] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
-static UINT16 DrvInput[2] = {0x0000, 0x0000};
-
-static UINT8 *Mem = NULL, *MemEnd = NULL;
-static UINT8 *RamStart, *RamEnd;
-static UINT8 *Rom01;
-static UINT8 *Ram01;
-static UINT8 *DefaultEEPROM = NULL;
-
-static UINT8 DrvReset = 0;
-static UINT8 bDrawScreen;
-static bool bVBlank;
-
-static INT8 nVideoIRQ;
-static INT8 nSoundIRQ;
-static INT8 nUnknownIRQ;
-
-static INT8 nIRQPending;
-
-static INT32 nCurrentCPU;
-static INT32 nCyclesDone[2];
-static INT32 nCyclesTotal[2];
-static INT32 nCyclesSegment;
-
-static struct BurnInputInfo uopokoInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy1 + 8, "p1 coin"},
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 7, "p1 start"},
-
- {"P1 Up", BIT_DIGITAL, DrvJoy1 + 0, "p1 up"},
- {"P1 Down", BIT_DIGITAL, DrvJoy1 + 1, "p1 down"},
- {"P1 Left", BIT_DIGITAL, DrvJoy1 + 2, "p1 left"},
- {"P1 Right", BIT_DIGITAL, DrvJoy1 + 3, "p1 right"},
- {"P1 Button 1", BIT_DIGITAL, DrvJoy1 + 4, "p1 fire 1"},
- {"P1 Button 2", BIT_DIGITAL, DrvJoy1 + 5, "p1 fire 2"},
- {"P1 Button 3", BIT_DIGITAL, DrvJoy1 + 6, "p1 fire 3"},
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy2 + 8, "p2 coin"},
- {"P2 Start", BIT_DIGITAL, DrvJoy2 + 7, "p2 start"},
-
- {"P2 Up", BIT_DIGITAL, DrvJoy2 + 0, "p2 up"},
- {"P2 Down", BIT_DIGITAL, DrvJoy2 + 1, "p2 down"},
- {"P2 Left", BIT_DIGITAL, DrvJoy2 + 2, "p2 left"},
- {"P2 Right", BIT_DIGITAL, DrvJoy2 + 3, "p2 right"},
- {"P2 Button 1", BIT_DIGITAL, DrvJoy2 + 4, "p2 fire 1"},
- {"P2 Button 2", BIT_DIGITAL, DrvJoy2 + 5, "p2 fire 2"},
- {"P2 Button 3", BIT_DIGITAL, DrvJoy2 + 6, "p2 fire 3"},
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset"},
- {"Diagnostics", BIT_DIGITAL, DrvJoy1 + 9, "diag"},
- {"Service", BIT_DIGITAL, DrvJoy2 + 9, "service"},
-};
-
-STDINPUTINFO(uopoko)
-
-static void UpdateIRQStatus()
-{
- nIRQPending = (nVideoIRQ == 0 || nSoundIRQ == 0 || nUnknownIRQ == 0);
- SekSetIRQLine(1, nIRQPending ? CPU_IRQSTATUS_ACK : CPU_IRQSTATUS_NONE);
-}
-
-UINT8 __fastcall uopokoReadByte(UINT32 sekAddress)
-{
- switch (sekAddress) {
- case 0x300003: {
- return YMZ280BReadStatus();
- }
-
- case 0x600000:
- case 0x600001:
- case 0x600002:
- case 0x600003: {
- UINT16 nRet = (nUnknownIRQ << 1) | nVideoIRQ;
- return nRet;
- }
- case 0x600004:
- case 0x600005: {
- UINT16 nRet = (nUnknownIRQ << 1) | nVideoIRQ;
- nVideoIRQ = 1;
- UpdateIRQStatus();
- return nRet;
- }
- case 0x600006:
- case 0x600007: {
- UINT16 nRet = (nUnknownIRQ << 1) | nVideoIRQ;
- nUnknownIRQ = 1;
- UpdateIRQStatus();
- return nRet;
- }
-
- case 0x900000:
- return (DrvInput[0] >> 8) ^ 0xFF;
- case 0x900001:
- return (DrvInput[0] & 0xFF) ^ 0xFF;
- case 0x900002:
- return ((DrvInput[1] >> 8) ^ 0xF7) | (EEPROMRead() << 3);
- case 0x900003:
- return (DrvInput[1] & 0xFF) ^ 0xFF;
-
- default: {
-// bprintf(PRINT_NORMAL, "Attempt to read byte value of location %x\n", sekAddress);
- }
- }
- return 0;
-}
-
-UINT16 __fastcall uopokoReadWord(UINT32 sekAddress)
-{
- switch (sekAddress) {
- case 0x300002: {
- return YMZ280BReadStatus();
- }
-
- case 0x600000:
- case 0x600002: {
- UINT16 nRet = (nUnknownIRQ << 1) | nVideoIRQ;
- return nRet;
- }
- case 0x600004: {
- UINT16 nRet = (nUnknownIRQ << 1) | nVideoIRQ;
- nVideoIRQ = 1;
- UpdateIRQStatus();
- return nRet;
- }
- case 0x600006: {
- UINT16 nRet = (nUnknownIRQ << 1) | nVideoIRQ;
- nUnknownIRQ = 1;
- UpdateIRQStatus();
- return nRet;
- }
-
- case 0x900000:
- return DrvInput[0] ^ 0xFFFF;
- case 0x900002:
- return (DrvInput[1] ^ 0xF7FF) | (EEPROMRead() << 11);
-
- default: {
-// bprintf(PRINT_NORMAL, "Attempt to read word value of location %x\n", sekAddress);
- }
- }
- return 0;
-}
-
-void __fastcall uopokoWriteByte(UINT32 sekAddress, UINT8 byteValue)
-{
- switch (sekAddress) {
- case 0x300001:
- YMZ280BSelectRegister(byteValue);
- break;
- case 0x300003:
- YMZ280BWriteRegister(byteValue);
- break;
-
- case 0xA00000:
- EEPROMWrite(byteValue & 0x04, byteValue & 0x02, byteValue & 0x08);
- break;
-
- default: {
-// bprintf(PRINT_NORMAL, "Attempt to write byte value %x to location %x\n", byteValue, sekAddress);
- }
- }
-}
-
-void __fastcall uopokoWriteWord(UINT32 sekAddress, UINT16 wordValue)
-{
- switch (sekAddress) {
- case 0x300000:
- YMZ280BSelectRegister(wordValue);
- break;
- case 0x300002:
- YMZ280BWriteRegister(wordValue);
- break;
-
- case 0x600000:
- nCaveXOffset = wordValue;
- return;
- case 0x600002:
- nCaveYOffset = wordValue;
- return;
- case 0x600008:
- CaveSpriteBuffer();
- nCaveSpriteBank = wordValue;
- return;
-
- case 0x700000:
- CaveTileReg[0][0] = wordValue;
- break;
- case 0x700002:
- CaveTileReg[0][1] = wordValue;
- break;
- case 0x700004:
- CaveTileReg[0][2] = wordValue;
- break;
-
- case 0xA00000: {
- wordValue >>= 8;
- EEPROMWrite(wordValue & 0x04, wordValue & 0x02, wordValue & 0x08);
- break;
- }
-
- default: {
-// bprintf(PRINT_NORMAL, "Attempt to write word value %x to location %x\n", wordValue, sekAddress);
-
- }
- }
-}
-
-void __fastcall uopokoWriteBytePalette(UINT32 sekAddress, UINT8 byteValue)
-{
- CavePalWriteByte(sekAddress & 0xFFFF, byteValue);
-}
-
-void __fastcall uopokoWriteWordPalette(UINT32 sekAddress, UINT16 wordValue)
-{
- CavePalWriteWord(sekAddress & 0xFFFF, wordValue);
-}
-
-static void TriggerSoundIRQ(INT32 nStatus)
-{
- nSoundIRQ = nStatus ^ 1;
- UpdateIRQStatus();
-
- if (nIRQPending && nCurrentCPU != 0) {
- nCyclesDone[0] += SekRun(0x0400);
- }
-}
-
-static INT32 DrvExit()
-{
- YMZ280BExit();
-
- EEPROMExit();
-
- CaveTileExit();
- CaveSpriteExit();
- CavePalExit();
-
- SekExit(); // Deallocate 68000s
-
- BurnFree(Mem);
-
- return 0;
-}
-
-static INT32 DrvDoReset()
-{
- SekOpen(0);
- SekReset();
- SekClose();
-
- EEPROMReset();
-
- YMZ280BReset();
-
- nVideoIRQ = 1;
- nSoundIRQ = 1;
- nUnknownIRQ = 1;
-
- nIRQPending = 0;
-
- return 0;
-}
-
-static INT32 DrvDraw()
-{
- CavePalUpdate8Bit(0, 128); // Update the palette
- CaveClearScreen(CavePalette[0x7F00]);
-
- if (bDrawScreen) {
-// CaveGetBitmap();
-
- CaveTileRender(1); // Render tiles
- }
-
- return 0;
-}
-
-inline static INT32 CheckSleep(INT32)
-{
- return 0;
-}
-
-static INT32 DrvFrame()
-{
- INT32 nCyclesVBlank;
- INT32 nInterleave = 8;
-
- if (DrvReset) { // Reset machine
- DrvDoReset();
- }
-
- // Compile digital inputs
- DrvInput[0] = 0x0000; // Player 1
- DrvInput[1] = 0x0000; // Player 2
- for (INT32 i = 0; i < 16; i++) {
- DrvInput[0] |= (DrvJoy1[i] & 1) << i;
- DrvInput[1] |= (DrvJoy2[i] & 1) << i;
- }
- CaveClearOpposites(&DrvInput[0]);
- CaveClearOpposites(&DrvInput[1]);
-
- SekNewFrame();
-
- nCyclesTotal[0] = (INT32)((INT64)16000000 * nBurnCPUSpeedAdjust / (0x0100 * CAVE_REFRESHRATE));
- nCyclesDone[0] = 0;
-
- nCyclesVBlank = nCyclesTotal[0] - (INT32)((nCyclesTotal[0] * CAVE_VBLANK_LINES) / 271.5);
- bVBlank = false;
-
- INT32 nSoundBufferPos = 0;
-
- SekOpen(0);
-
- for (INT32 i = 1; i <= nInterleave; i++) {
- INT32 nNext;
-
- // Render sound segment
- if ((i & 1) == 0) {
- if (pBurnSoundOut) {
- INT32 nSegmentEnd = nBurnSoundLen * i / nInterleave;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- YMZ280BRender(pSoundBuf, nSegmentEnd - nSoundBufferPos);
- nSoundBufferPos = nSegmentEnd;
- }
- }
-
- // Run 68000
- nCurrentCPU = 0;
- nNext = i * nCyclesTotal[nCurrentCPU] / nInterleave;
-
- // See if we need to trigger the VBlank interrupt
- if (!bVBlank && nNext > nCyclesVBlank) {
- if (nCyclesDone[nCurrentCPU] < nCyclesVBlank) {
- nCyclesSegment = nCyclesVBlank - nCyclesDone[nCurrentCPU];
- if (!CheckSleep(nCurrentCPU)) { // See if this CPU is busywaiting
- nCyclesDone[nCurrentCPU] += SekRun(nCyclesSegment);
- } else {
- nCyclesDone[nCurrentCPU] += SekIdle(nCyclesSegment);
- }
- }
-
- if (pBurnDraw != NULL) {
- DrvDraw(); // Draw screen if needed
- }
-
- bVBlank = true;
- nVideoIRQ = 0;
- UpdateIRQStatus();
- }
-
- nCyclesSegment = nNext - nCyclesDone[nCurrentCPU];
- if (!CheckSleep(nCurrentCPU)) { // See if this CPU is busywaiting
- nCyclesDone[nCurrentCPU] += SekRun(nCyclesSegment);
- } else {
- nCyclesDone[nCurrentCPU] += SekIdle(nCyclesSegment);
- }
-
- nCurrentCPU = -1;
- }
-
- {
- // Make sure the buffer is entirely filled.
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- if (nSegmentLength) {
- YMZ280BRender(pSoundBuf, nSegmentLength);
- }
- }
- }
-
- SekClose();
-
- return 0;
-}
-
-// This routine is called first to determine how much memory is needed (MemEnd-(UINT8 *)0),
-// and then afterwards to set up all the pointers
-static INT32 MemIndex()
-{
- UINT8* Next; Next = Mem;
- Rom01 = Next; Next += 0x100000; // 68K program
- CaveSpriteROM = Next; Next += 0x800000;
- CaveTileROM[0] = Next; Next += 0x400000; // Tile layer 0
- YMZ280BROM = Next; Next += 0x200000;
- DefaultEEPROM = Next; Next += 0x000080;
- RamStart = Next;
- Ram01 = Next; Next += 0x010000; // CPU #0 work RAM
- CaveTileRAM[0] = Next; Next += 0x008000;
- CaveSpriteRAM = Next; Next += 0x010000;
- CavePalSrc = Next; Next += 0x010000; // palette
- RamEnd = Next;
- MemEnd = Next;
-
- return 0;
-}
-
-static void NibbleSwap1(UINT8* pData, INT32 nLen)
-{
- UINT8* pOrg = pData + nLen - 1;
- UINT8* pDest = pData + ((nLen - 1) << 1);
-
- for (INT32 i = 0; i < nLen; i++, pOrg--, pDest -= 2) {
- pDest[0] = *pOrg & 15;
- pDest[1] = *pOrg >> 4;
- }
-
- return;
-}
-
-static void NibbleSwap4(UINT8* pData, INT32 nLen)
-{
- for (INT32 i = 0; i < nLen; i++, pData += 2) {
- UINT8 n1 = pData[0];
- UINT8 n2 = pData[1];
-
- pData[1] = (n2 << 4) | (n1 & 0x0F);
- pData[0] = (n2 & 0xF0) | (n1 >> 4);
- }
-
- return;
-}
-
-static INT32 LoadRoms()
-{
- // Load 68000 ROM
- BurnLoadRom(Rom01 + 0, 1, 2);
- BurnLoadRom(Rom01 + 1, 0, 2);
-
- BurnLoadRom(CaveSpriteROM + 0x0000000, 2, 1);
- NibbleSwap1(CaveSpriteROM, 0x400000);
-
- BurnLoadRom(CaveTileROM[0] + 0x000000, 3, 1);
- NibbleSwap4(CaveTileROM[0], 0x200000);
-
- // Load YMZ280B data
- BurnLoadRom(YMZ280BROM, 4, 1);
-
- BurnLoadRom(DefaultEEPROM, 5, 1);
-
- return 0;
-}
-
-// Scan ram
-static INT32 DrvScan(INT32 nAction, INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin) { // Return minimum compatible version
- *pnMin = 0x020902;
- }
-
- EEPROMScan(nAction, pnMin); // Scan EEPROM
-
- if (nAction & ACB_VOLATILE) { // Scan volatile ram
-
- memset(&ba, 0, sizeof(ba));
- ba.Data = RamStart;
- ba.nLen = RamEnd - RamStart;
- ba.szName = "RAM";
- BurnAcb(&ba);
-
- SekScan(nAction); // scan 68000 states
-
- YMZ280BScan();
-
- SCAN_VAR(nVideoIRQ);
- SCAN_VAR(nSoundIRQ);
- SCAN_VAR(nUnknownIRQ);
- SCAN_VAR(bVBlank);
-
- CaveScanGraphics();
-
- SCAN_VAR(DrvInput);
- }
-
- return 0;
-}
-
-static INT32 DrvInit()
-{
- INT32 nLen;
-
- BurnSetRefreshRate(CAVE_REFRESHRATE);
-
- // Find out how much memory is needed
- Mem = NULL;
- MemIndex();
- nLen = MemEnd - (UINT8 *)0;
- if ((Mem = (UINT8 *)BurnMalloc(nLen)) == NULL) {
- return 1;
- }
- memset(Mem, 0, nLen); // blank all memory
- MemIndex(); // Index the allocated memory
-
- // Load the roms into memory
- if (LoadRoms()) {
- return 1;
- }
-
- EEPROMInit(&eeprom_interface_93C46);
- if (!EEPROMAvailable()) EEPROMFill(DefaultEEPROM,0, 0x80);
-
- {
- SekInit(0, 0x68000); // Allocate 68000
- SekOpen(0);
-
- // Map 68000 memory:
- SekMapMemory(Rom01, 0x000000, 0x0FFFFF, MAP_ROM); // CPU 0 ROM
- SekMapMemory(Ram01, 0x100000, 0x10FFFF, MAP_RAM);
- SekMapMemory(CaveSpriteRAM, 0x400000, 0x40FFFF, MAP_RAM);
- SekMapMemory(CaveTileRAM[0], 0x500000, 0x507FFF, MAP_RAM);
-
- SekMapMemory(CavePalSrc, 0x800000, 0x80FFFF, MAP_ROM); // Palette RAM (write goes through handler)
- SekMapHandler(1, 0x800000, 0x80FFFF, MAP_WRITE); //
-
- SekSetReadWordHandler(0, uopokoReadWord);
- SekSetReadByteHandler(0, uopokoReadByte);
- SekSetWriteWordHandler(0, uopokoWriteWord);
- SekSetWriteByteHandler(0, uopokoWriteByte);
-
- SekSetWriteWordHandler(1,uopokoWriteWordPalette);
- SekSetWriteByteHandler(1, uopokoWriteBytePalette);
-
- SekClose();
- }
-
- nCaveRowModeOffset = 1;
-
- CavePalInit(0x8000);
- CaveTileInit();
- CaveSpriteInit(1, 0x800000);
- CaveTileInitLayer(0, 0x400000, 8, 0x4000);
-
- YMZ280BInit(16934400, &TriggerSoundIRQ, 0x200000);
- YMZ280BSetRoute(BURN_SND_YMZ280B_YMZ280B_ROUTE_1, 1.00, BURN_SND_ROUTE_LEFT);
- YMZ280BSetRoute(BURN_SND_YMZ280B_YMZ280B_ROUTE_2, 1.00, BURN_SND_ROUTE_RIGHT);
-
- bDrawScreen = true;
-
- DrvDoReset(); // Reset machine
-
- return 0;
-}
-
-// Rom information
-static struct BurnRomInfo uopokoRomDesc[] = {
- { "u26.int", 0x080000, 0xb445c9ac, BRF_ESS | BRF_PRG }, // 0 CPU #0 code
- { "u25.int", 0x080000, 0xa1258482, BRF_ESS | BRF_PRG }, // 1
-
- { "cave_cv-02_u33.u33", 0x400000, 0x5d142ad2, BRF_GRA }, // 2 Sprite data
-
- { "cave_cv-02_u49.u49", 0x400000, 0x12fb11bb, BRF_GRA }, // 3 Layer 0 Tile data
-
- { "cave_cv-02_u4.u4", 0x200000, 0xa2d0d755, BRF_SND }, // 4 YMZ280B (AD)PCM data
-
- { "eeprom-uopoko.bin", 0x0080, 0xf4a24b95, BRF_ESS | BRF_PRG },
-};
-
-
-STD_ROM_PICK(uopoko)
-STD_ROM_FN(uopoko)
-
-static struct BurnRomInfo uopokojRomDesc[] = {
- { "u26.bin", 0x080000, 0xE7EEC050, BRF_ESS | BRF_PRG }, // 0 CPU #0 code
- { "u25.bin", 0x080000, 0x68CB6211, BRF_ESS | BRF_PRG }, // 1
-
- { "cave_cv-02_u33.u33", 0x400000, 0x5d142ad2, BRF_GRA }, // 2 Sprite data
-
- { "cave_cv-02_u49.u49", 0x400000, 0x12fb11bb, BRF_GRA }, // 3 Layer 0 Tile data
-
- { "cave_cv-02_u4.u4", 0x200000, 0xa2d0d755, BRF_SND }, // 4 YMZ280B (AD)PCM data
-
- { "eeprom-uopoko.bin", 0x0080, 0xf4a24b95, BRF_ESS | BRF_PRG },
-};
-
-
-STD_ROM_PICK(uopokoj)
-STD_ROM_FN(uopokoj)
-
-struct BurnDriver BurnDrvUoPoko = {
- "uopoko", NULL, NULL, NULL, "1999",
- "Puzzle Uo Poko (International, ver. 98/02/06)\0", NULL, "Cave / Jaleco", "Cave",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_CAVE_68K_ONLY, GBF_PUZZLE, 0,
- NULL, uopokoRomInfo, uopokoRomName, NULL, NULL, uopokoInputInfo, NULL,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan,
- &CaveRecalcPalette, 0x8000, 320, 240, 4, 3
-};
-
-struct BurnDriver BurnDrvUoPokoj = {
- "uopokoj", "uopoko", NULL, NULL, "1999",
- "Puzzle Uo Poko (Japan, ver. 98/02/06)\0", NULL, "Cave / Jaleco", "Cave",
- L"\u30D1\u30BA\u30EB \u9B5A\u30DD\u30B3 \u3046\u304A\u307D\u3053 (Japan, ver. 98/02/06)\0Puzzle Uo Poko\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_16BIT_ONLY, 2, HARDWARE_CAVE_68K_ONLY, GBF_PUZZLE, 0,
- NULL, uopokojRomInfo, uopokojRomName, NULL, NULL, uopokoInputInfo, NULL,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan,
- &CaveRecalcPalette, 0x8000, 320, 240, 4, 3
-};
-
-
-
diff --git a/jan/src/burn/drv/coleco/d_coleco.cpp b/jan/src/burn/drv/coleco/d_coleco.cpp
deleted file mode 100644
index 1d41b7617..000000000
--- a/jan/src/burn/drv/coleco/d_coleco.cpp
+++ /dev/null
@@ -1,4981 +0,0 @@
-// FB Alpha ColecoVision console driver module
-// Code by iq_132, fixups & bring up-to-date by dink Aug 19, 2014
-
-#include "tiles_generic.h"
-#include "z80_intf.h"
-#include "driver.h"
-#include "sn76496.h"
-#include "tms9928a.h"
-
-static UINT8 *AllMem;
-static UINT8 *MemEnd;
-static UINT8 *AllRam;
-static UINT8 *RamEnd;
-static UINT8 *DrvZ80BIOS;
-static UINT8 *DrvCartROM;
-static UINT8 *DrvZ80RAM;
-
-static INT32 joy_mode;
-static INT32 joy_status[2];
-static INT32 last_state;
-
-static UINT8 DrvJoy1[16];
-static UINT8 DrvJoy2[16];
-static UINT8 DrvJoy3[16];
-static UINT8 DrvJoy4[16];
-static UINT8 DrvDips[2] = { 0, 0 };
-static UINT16 DrvInputs[4];
-static UINT8 DrvReset;
-static UINT32 MegaCart;
-static UINT32 MegaCartBank;
-
-static struct BurnRomInfo emptyRomDesc[] = {
- { "", 0, 0, 0 },
-};
-
-static struct BurnInputInfo ColecoInputList[] = {
- {"P1 Up", BIT_DIGITAL, DrvJoy2 + 0, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy2 + 2, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy2 + 3, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy2 + 1, "p1 right" },
- {"P1 Fire 1", BIT_DIGITAL, DrvJoy2 + 6, "p1 fire 1" },
- {"P1 Fire 2", BIT_DIGITAL, DrvJoy1 + 14, "p1 fire 2" },
- {"P1 0", BIT_DIGITAL, DrvJoy1 + 0, "p1 0" },
- {"P1 1", BIT_DIGITAL, DrvJoy1 + 1, "p1 1" },
- {"P1 2", BIT_DIGITAL, DrvJoy1 + 2, "p1 2" },
- {"P1 3", BIT_DIGITAL, DrvJoy1 + 3, "p1 3" },
- {"P1 4", BIT_DIGITAL, DrvJoy1 + 4, "p1 4" },
- {"P1 5", BIT_DIGITAL, DrvJoy1 + 5, "p1 5" },
- {"P1 6", BIT_DIGITAL, DrvJoy1 + 6, "p1 6" },
- {"P1 7", BIT_DIGITAL, DrvJoy1 + 7, "p1 7" },
- {"P1 8", BIT_DIGITAL, DrvJoy1 + 8, "p1 8" },
- {"P1 9", BIT_DIGITAL, DrvJoy1 + 9, "p1 9" },
- {"P1 #", BIT_DIGITAL, DrvJoy1 + 10, "p1 #" },
- {"P1 *", BIT_DIGITAL, DrvJoy1 + 11, "p1 *" },
-
- {"P2 Up", BIT_DIGITAL, DrvJoy4 + 0, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy4 + 2, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy4 + 3, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy4 + 1, "p2 right" },
- {"P2 Fire 1", BIT_DIGITAL, DrvJoy4 + 6, "p2 fire 1" },
- {"P2 Fire 2", BIT_DIGITAL, DrvJoy3 + 14, "p2 fire 2" },
- {"P2 0", BIT_DIGITAL, DrvJoy3 + 0, "p2 0" },
- {"P2 1", BIT_DIGITAL, DrvJoy3 + 1, "p2 1" },
- {"P2 2", BIT_DIGITAL, DrvJoy3 + 2, "p2 2" },
- {"P2 3", BIT_DIGITAL, DrvJoy3 + 3, "p2 3" },
- {"P2 4", BIT_DIGITAL, DrvJoy3 + 4, "p2 4" },
- {"P2 5", BIT_DIGITAL, DrvJoy3 + 5, "p2 5" },
- {"P2 6", BIT_DIGITAL, DrvJoy3 + 6, "p2 6" },
- {"P2 7", BIT_DIGITAL, DrvJoy3 + 7, "p2 7" },
- {"P2 8", BIT_DIGITAL, DrvJoy3 + 8, "p2 8" },
- {"P2 9", BIT_DIGITAL, DrvJoy3 + 9, "p2 9" },
- {"P2 #", BIT_DIGITAL, DrvJoy3 + 10, "p2 #" },
- {"P2 *", BIT_DIGITAL, DrvJoy3 + 11, "p2 *" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Controller Select", BIT_DIPSWITCH, DrvDips + 0, "dip" },
- {"Bios Select", BIT_DIPSWITCH, DrvDips + 1, "dip" },
-};
-
-STDINPUTINFO(Coleco)
-
-static struct BurnDIPInfo ColecoDIPList[]=
-{
- {0x25, 0xff, 0xff, 0x00, NULL },
- {0x26, 0xff, 0xff, 0x00, NULL },
-
- {0 , 0xfe, 0 , 3, "Port 1 Controller" },
- {0x25, 0x01, 0x07, 0x00, "ColecoVision Controller" },
- {0x25, 0x01, 0x07, 0x01, "Super Action Controller" },
- {0x25, 0x01, 0x07, 0x02, "Driving Controller" },
-
- {0 , 0xfe, 0 , 2, "Port 2 Controller" },
- {0x25, 0x01, 0x70, 0x00, "ColecoVision Controller" },
- {0x25, 0x01, 0x70, 0x10, "Super Action Controller" },
-
- {0 , 0xfe, 0 , 2, "Extra Controller" },
- {0x25, 0x01, 0x80, 0x00, "None" },
- {0x25, 0x01, 0x80, 0x80, "Roller Controller" },
-
- {0 , 0xfe, 0 , 4, "Bios Select" },
- {0x26, 0x01, 0x03, 0x00, "Standard" },
- {0x26, 0x01, 0x03, 0x01, "Thick Characters" },
- {0x26, 0x01, 0x03, 0x02, "SVI-603 Coleco Game Adapter" },
- {0x26, 0x01, 0x03, 0x03, "Chuang Zao Zhe 50" },
-
- {0 , 0xfe, 0, 2, "Bypass bios intro (hack)" },
- {0x26, 0x01, 0x10, 0x00, "Off" },
- {0x26, 0x01, 0x10, 0x10, "On" },
-};
-
-STDDIPINFO(Coleco)
-
-static UINT8 paddle_r(INT32 paddle)
-{
- INT32 ctrl_select = (DrvDips[0] >> (paddle ? 4 : 0)) & 0x07;
-
- UINT8 data = 0x0f;
-
- if (ctrl_select != 0x01)
- {
- if (joy_mode == 0)
- {
- UINT16 input = 0x0000;
-
- if (ctrl_select == 0x00) // colecovision controller
- {
- input = DrvInputs[(2 * paddle) + 0]; // keypad
- }
- else if (ctrl_select == 0x02) // super action controller controller
- {
- input = 0xffff; //input_port_read(space->machine, "SAC_KPD2");
- }
-
- if (ctrl_select != 0x03)
- {
- if (!(input & 0x0001)) data &= 0x0a; /* 0 */
- if (!(input & 0x0002)) data &= 0x0d; /* 1 */
- if (!(input & 0x0004)) data &= 0x07; /* 2 */
- if (!(input & 0x0008)) data &= 0x0c; /* 3 */
- if (!(input & 0x0010)) data &= 0x02; /* 4 */
- if (!(input & 0x0020)) data &= 0x03; /* 5 */
- if (!(input & 0x0040)) data &= 0x0e; /* 6 */
- if (!(input & 0x0080)) data &= 0x05; /* 7 */
- if (!(input & 0x0100)) data &= 0x01; /* 8 */
- if (!(input & 0x0200)) data &= 0x0b; /* 9 */
- if (!(input & 0x0400)) data &= 0x06; /* # */
- if (!(input & 0x0800)) data &= 0x09; /* . */
- if (!(input & 0x1000)) data &= 0x04; /* Blue Action Button */
- if (!(input & 0x2000)) data &= 0x08; /* Purple Action Button */
- }
-
- return ((input & 0x4000) >> 8) | 0x30 | (data);
- }
- else
- {
- if (ctrl_select == 0x00) // colecovision controller
- {
- data = DrvInputs[(2 * paddle) + 1] & 0xcf; // Joy
- }
- else if (ctrl_select == 0x02) // super action controller controller
- {
- data = 0xff & 0xcf; //input_port_read(space->machine, "SAC_JOY2") & 0xcf;
- }
-
- if ((DrvDips[0] & 0x80) || (ctrl_select == 0x02) || (ctrl_select == 0x03))
- {
- if (joy_status[paddle] == 0) data |= 0x30;
- else if (joy_status[paddle] == 1) data |= 0x20;
- }
-
- return data | 0x80;
- }
- }
-
- return data;
-}
-
-static void paddle_callback()
-{
- UINT8 analog1 = 0x00;
- UINT8 analog2 = 0x00;
- UINT8 ctrl_sel = DrvDips[0];
-
- if ((ctrl_sel & 0x07) == 0x03) // Driving controller
- analog1 = 0xff; //input_port_read_safe(machine, "DRIV", 0);
- else
- {
- if ((ctrl_sel & 0x07) == 0x02) // Super Action Controller P1
- analog1 = 0xff; //input_port_read_safe(machine, "SAC_SLIDE1", 0);
-
- if ((ctrl_sel & 0x70) == 0x20) // Super Action Controller P2
- analog2 = 0xff; //input_port_read_safe(machine, "SAC_SLIDE2", 0);
-
- if (ctrl_sel & 0x80) // Roller controller
- {
- analog1 = 0xff; //input_port_read_safe(machine, "ROLLER_X", 0);
- analog2 = 0xff; // input_port_read_safe(machine, "ROLLER_Y", 0);
- }
- }
-
- if (analog1 == 0)
- joy_status[0] = 0;
- else if (analog1 & 0x08)
- joy_status[0] = -1;
- else
- joy_status[0] = 1;
-
- if (analog2 == 0)
- joy_status[1] = 0;
- else if (analog2 & 0x08)
- joy_status[1] = -1;
- else
- joy_status[1] = 1;
-
- if (joy_status[0] || joy_status[1]) {
- ZetSetIRQLine(0, CPU_IRQSTATUS_AUTO); // ACK? -- lower when input read?
- }
-}
-
-void __fastcall coleco_write_port(UINT16 port, UINT8 data)
-{
- switch (port & ~0xff1e)
- {
- case 0x80:
- case 0x81:
- joy_mode = 0;
- return;
-
- case 0xa0:
- TMS9928AWriteVRAM(data);
- return;
-
- case 0xa1:
- TMS9928AWriteRegs(data);
- return;
-
- case 0xc0:
- case 0xc1:
- joy_mode = 1;
- return;
-
- case 0xe0:
- case 0xe1:
- SN76496Write(0, data);
- return;
- }
-}
-
-UINT8 __fastcall coleco_read_port(UINT16 port)
-{
- switch (port & ~0xff1e)
- {
- case 0xa0:
- return TMS9928AReadVRAM();
-
- case 0xa1:
- return TMS9928AReadRegs();
-
- case 0xe0:
- case 0xe1:
- return paddle_r(0);
-
- case 0xe2:
- case 0xe3:
- return paddle_r(1);
- }
-
- return 0;
-}
-
-static void coleco_vdp_interrupt(INT32 state)
-{
- if (state && !last_state)
- ZetNmi();
-
- last_state = state;
-}
-
-static void CVFastLoadHack() {
- if (DrvDips[1] & 0x10) {
- DrvZ80BIOS[0x13f1] = 0x00;
- DrvZ80BIOS[0x13f2] = 0x00;
- DrvZ80BIOS[0x13f3] = 0x00;
- }
-}
-
-static INT32 DrvDoReset()
-{
- memset (AllRam, 0, RamEnd - AllRam);
-
- BurnLoadRom(DrvZ80BIOS, 0x80 + (DrvDips[1] & 3), 1);
- CVFastLoadHack();
-
- ZetOpen(0);
- ZetReset();
- ZetSetVector(0xff);
- ZetClose();
-
- TMS9928AReset();
-
- memset (DrvZ80RAM, 0xff, 0x400); // ram initialized to 0xff
-
- last_state = 0; // irq state...
- MegaCartBank = 0;
-
- return 0;
-}
-
-#if 0
-static void __fastcall main_write(UINT16 address, UINT8 data)
-{
- // maybe we should support bankswitching on writes too?
- //bprintf(0, _T("mw %X,"), address);
-}
-#endif
-
-static UINT8 __fastcall main_read(UINT16 address)
-{
- if (address >= 0xffc0/* && address <= 0xffff*/) {
- UINT32 MegaCartBanks = MegaCart / 0x4000;
-
- MegaCartBank = (0xffff - address) & (MegaCartBanks - 1);
-
- MegaCartBank = (MegaCartBanks - MegaCartBank) - 1;
-
- return 0;
- }
-
- if (address >= 0xc000 && address <= 0xffbf)
- return DrvCartROM[(MegaCartBank * 0x4000) + (address - 0xc000)];
-
- //bprintf(0, _T("mr %X,"), address);
-
- return 0;
-}
-
-static INT32 MemIndex()
-{
- UINT8 *Next; Next = AllMem;
-
- DrvZ80BIOS = Next; Next += 0x004000;
- DrvCartROM = Next; Next += 0x100000;
-
- AllRam = Next;
-
- DrvZ80RAM = Next; Next += 0x000400;
-
- RamEnd = Next;
- MemEnd = Next;
-
- return 0;
-}
-
-static INT32 DrvInit()
-{
- // refresh rate 59.92hz
-
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- MegaCart = 0;
-
- {
- char* pRomName;
- struct BurnRomInfo ri;
-
- if (BurnLoadRom(DrvZ80BIOS, 0x80, 1)) return 1;
-
- for (INT32 i = 0; !BurnDrvGetRomName(&pRomName, i, 0); i++) {
- BurnDrvGetRomInfo(&ri, i);
-
- if ((ri.nType & BRF_PRG) && (ri.nLen == 0x2000 || ri.nLen == 0x1000) && (i<10)) {
- BurnLoadRom(DrvCartROM+(i * 0x2000), i, 1);
- bprintf(0, _T("ColecoVision romload #%d\n"), i);
- } else if ((ri.nType & BRF_PRG) && (i<10)) { // Load rom thats not in 0x2000 (8k) chunks
- bprintf(0, _T("ColecoVision romload (unsegmented) #%d size: %X\n"), i, ri.nLen);
- BurnLoadRom(DrvCartROM, i, 1);
- if (ri.nLen >= 0x20000) MegaCart = ri.nLen;
- }
- }
- }
-
- ZetInit(0);
- ZetOpen(0);
- ZetMapArea(0x0000, 0x1fff, 0, DrvZ80BIOS);
- ZetMapArea(0x0000, 0x1fff, 2, DrvZ80BIOS);
-
- for (INT32 i = 0x6000; i < 0x8000; i+=0x0400) {
- ZetMapArea(i + 0x0000, i + 0x03ff, 0, DrvZ80RAM);
- ZetMapArea(i + 0x0000, i + 0x03ff, 1, DrvZ80RAM);
- ZetMapArea(i + 0x0000, i + 0x03ff, 2, DrvZ80RAM);
- }
-
- if (MegaCart) {
- // MegaCart
- UINT32 MegaCartBanks = MegaCart / 0x4000;
- UINT32 lastbank = (MegaCartBanks - 1) * 0x4000;
- bprintf(0, _T("ColecoVision MegaCart: mapping cartrom[%X] to 0x8000 - 0xbfff.\n"), lastbank);
- ZetMapArea(0x8000, 0xbfff, 0, DrvCartROM + lastbank);
- ZetMapArea(0x8000, 0xbfff, 2, DrvCartROM + lastbank);
- ZetSetReadHandler(main_read);
- //ZetSetWriteHandler(main_write);
- } else {
- // Regular CV Cart
- ZetMapArea(0x8000, 0xffff, 0, DrvCartROM);
- ZetMapArea(0x8000, 0xffff, 2, DrvCartROM);
- }
-
-
- ZetSetOutHandler(coleco_write_port);
- ZetSetInHandler(coleco_read_port);
- ZetClose();
-
- TMS9928AInit(TMS99x8A, 0x4000, 0, 0, coleco_vdp_interrupt);
-
- SN76489AInit(0, 3579545, 0);
-
- DrvDoReset();
-
- return 0;
-}
-
-static INT32 DrvExit()
-{
- TMS9928AExit();
- ZetExit();
- SN76496Exit();
-
- BurnFree (AllMem);
-
- return 0;
-}
-
-static INT32 DrvFrame()
-{
- if (DrvReset) {
- DrvDoReset();
- }
-
- {
- memset (DrvInputs, 0xff, 4 * sizeof(UINT16));
- for (INT32 i = 0; i < 16; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- DrvInputs[2] ^= (DrvJoy3[i] & 1) << i;
- DrvInputs[3] ^= (DrvJoy4[i] & 1) << i;
- }
- }
-
- INT32 nInterleave = 256;
- INT32 nCyclesTotal = 3579545 / 60;
- INT32 nCyclesDone = 0;
-
- ZetOpen(0);
-
- for (INT32 i = 0; i < nInterleave; i++)
- {
- INT32 nSegment = nCyclesTotal / nInterleave;
-
- nCyclesDone += ZetRun(nSegment);
-
- TMS9928AScanline(i);
-
- if ((i%5)==4) paddle_callback(); // 50x / frame (3000x / sec)
- }
-
- ZetClose();
-
- if (pBurnSoundOut) {
- SN76496Update(0, pBurnSoundOut, nBurnSoundLen);
- }
-
- if (pBurnDraw) {
- TMS9928ADraw();
- }
-
- return 0;
-}
-
-static INT32 DrvScan(INT32 nAction, INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin) {
- *pnMin = 0x029708;
- }
-
- if (nAction & ACB_VOLATILE) {
- memset(&ba, 0, sizeof(ba));
-
- ba.Data = AllRam;
- ba.nLen = RamEnd - AllRam;
- ba.szName = "All Ram";
- BurnAcb(&ba);
-
- ZetScan(nAction);
- SN76496Scan(nAction, pnMin);
-
- TMS9928AScan(nAction, pnMin);
-
- SCAN_VAR(joy_mode);
- SCAN_VAR(joy_status);
- SCAN_VAR(last_state);
- }
-
- return 0;
-}
-
-INT32 CVGetZipName(char** pszName, UINT32 i)
-{
- static char szFilename[MAX_PATH];
- char* pszGameName = NULL;
-
- if (pszName == NULL) {
- return 1;
- }
-
- if (i == 0) {
- pszGameName = BurnDrvGetTextA(DRV_NAME);
- } else {
- if (i == 1 && BurnDrvGetTextA(DRV_BOARDROM)) {
- pszGameName = BurnDrvGetTextA(DRV_BOARDROM);
- } else {
- pszGameName = BurnDrvGetTextA(DRV_PARENT);
- }
- }
-
- if (pszGameName == NULL) {
- *pszName = NULL;
- return 1;
- }
-
- // remove the "CV_"
- for (UINT32 j = 0; j < strlen(pszGameName); j++) {
- szFilename[j] = pszGameName[j + 3];
- }
-
- *pszName = szFilename;
-
- return 0;
-}
-
-// ColecoVision
-
-static struct BurnRomInfo cv_colecoRomDesc[] = {
- { "coleco.rom", 0x2000, 0x3aa93ef3, BRF_PRG | BRF_BIOS }, // 0x80 - Normal (Coleco, 1982)
- { "colecoa.rom", 0x2000, 0x39bb16fc, BRF_PRG | BRF_BIOS | BRF_OPT }, // 0x81 - Thick Characters (Coleco, 1982)
- { "svi603.rom", 0x2000, 0x19e91b82, BRF_PRG | BRF_BIOS | BRF_OPT }, // 0x82 - SVI-603 Coleco Game Adapter (Spectravideo, 1983)
- { "czz50.rom", 0x4000, 0x4999abc6, BRF_PRG | BRF_BIOS | BRF_OPT }, // 0x83 - Chuang Zao Zhe 50 (Bit Corporation, 1986)
-};
-
-STD_ROM_PICK(cv_coleco)
-STD_ROM_FN(cv_coleco)
-
-struct BurnDriver BurnDrvcv_Coleco = {
- "cv_coleco", NULL, NULL, NULL, "1982",
- "ColecoVision System BIOS\0", "BIOS only", "Coleco", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_BOARDROM, 0, HARDWARE_COLECO, GBF_BIOS, 0,
- CVGetZipName, cv_colecoRomInfo, cv_colecoRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-// Homebrew games
-
-static struct BurnRomInfo cv_diggerRomDesc[] = {
- { "digger_cv.rom", 0x06000, 0x77088cab, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_digger, cv_digger, cv_coleco)
-STD_ROM_FN(cv_digger)
-
-struct BurnDriver BurnDrvcv_digger = {
- "cv_digger", NULL, "cv_coleco", NULL, "2012",
- "Digger\0", NULL, "Coleco*Windmill Software", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_diggerRomInfo, cv_diggerRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-static struct BurnRomInfo cv_questgcRomDesc[] = {
- { "quest_golden_chalice_colecovision.rom", 0x08000, 0x6da37da8, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_questgc, cv_questgc, cv_coleco)
-STD_ROM_FN(cv_questgc)
-
-struct BurnDriver BurnDrvcv_questgc = {
- "cv_questgc", NULL, "cv_coleco", NULL, "2012",
- "Quest for the Golden Chalice\0", NULL, "Coleco*Team Pixelboy", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_questgcRomInfo, cv_questgcRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-static struct BurnRomInfo cv_princessquestRomDesc[] = {
- { "princess_quest_colecovision.rom", 0x40000, 0xa59eaa2b, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_princessquest, cv_princessquest, cv_coleco)
-STD_ROM_FN(cv_princessquest)
-
-struct BurnDriver BurnDrvcv_princessquest = {
- "cv_pquest", NULL, "cv_coleco", NULL, "2012",
- "Princess Quest\0", NULL, "Coleco*Nanochess", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_princessquestRomInfo, cv_princessquestRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-static struct BurnRomInfo cv_danslitherRomDesc[] = {
- { "danslither.rom", 0x0402a, 0x92624cff, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_danslither, cv_danslither, cv_coleco)
-STD_ROM_FN(cv_danslither)
-
-struct BurnDriver BurnDrvcv_danslither = {
- "cv_danslither", "cv_slither", "cv_coleco", NULL, "1983",
- "Slither (Joystick Version)\0", NULL, "Coleco*Daniel Bienvenu", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_danslitherRomInfo, cv_danslitherRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-// End of driver, the following driver info. has been synthesized from hash/coleco.xml of MESS
-// Note: when re-converting coleco.xml, make sure to change "&" to "and"!
-// Note2: don't forget to add notice to choplifter: "Corrupted sprites. Use (Alt) version!"
-// Castelo
-
-static struct BurnRomInfo cv_casteloRomDesc[] = {
- { "castelo.bin", 0x02000, 0x07a3d3db, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_castelo, cv_castelo, cv_coleco)
-STD_ROM_FN(cv_castelo)
-
-struct BurnDriver BurnDrvcv_castelo = {
- "cv_castelo", NULL, "cv_coleco", NULL, "1985",
- "Castelo\0", NULL, "Splice Vision", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_casteloRomInfo, cv_casteloRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Q*bert
-
-static struct BurnRomInfo cv_qbertRomDesc[] = {
- { "qbert.bin", 0x02000, 0x532f61ba, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_qbert, cv_qbert, cv_coleco)
-STD_ROM_FN(cv_qbert)
-
-struct BurnDriver BurnDrvcv_qbert = {
- "cv_qbert", NULL, "cv_coleco", NULL, "1983",
- "Q*bert\0", NULL, "Parker Brothers", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_qbertRomInfo, cv_qbertRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Q*bert (Alt)
-
-static struct BurnRomInfo cv_qbertaRomDesc[] = {
- { "qberta.bin", 0x02000, 0x13f06adc, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_qberta, cv_qberta, cv_coleco)
-STD_ROM_FN(cv_qberta)
-
-struct BurnDriver BurnDrvcv_qberta = {
- "cv_qberta", "cv_qbert", "cv_coleco", NULL, "1983",
- "Q*bert (Alt)\0", NULL, "Parker Brothers", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_qbertaRomInfo, cv_qbertaRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Super Cobra
-
-static struct BurnRomInfo cv_scobraRomDesc[] = {
- { "scobra.bin", 0x02000, 0x6cb5cb8f, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_scobra, cv_scobra, cv_coleco)
-STD_ROM_FN(cv_scobra)
-
-struct BurnDriver BurnDrvcv_scobra = {
- "cv_scobra", NULL, "cv_coleco", NULL, "1983",
- "Super Cobra\0", NULL, "Parker Brothers", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_scobraRomInfo, cv_scobraRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Super Cobra (Alt)
-
-static struct BurnRomInfo cv_scobraaRomDesc[] = {
- { "scobraa.bin", 0x02000, 0xf84622d2, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_scobraa, cv_scobraa, cv_coleco)
-STD_ROM_FN(cv_scobraa)
-
-struct BurnDriver BurnDrvcv_scobraa = {
- "cv_scobraa", "cv_scobra", "cv_coleco", NULL, "1983",
- "Super Cobra (Alt)\0", NULL, "Parker Brothers", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_scobraaRomInfo, cv_scobraaRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Super Sketch
-
-static struct BurnRomInfo cv_ssketchRomDesc[] = {
- { "ssketch.bin", 0x02000, 0x8627300a, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_ssketch, cv_ssketch, cv_coleco)
-STD_ROM_FN(cv_ssketch)
-
-struct BurnDriver BurnDrvcv_ssketch = {
- "cv_ssketch", NULL, "cv_coleco", NULL, "1984",
- "Super Sketch\0", NULL, "Personal Peripherals", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_ssketchRomInfo, cv_ssketchRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Antarctic Adventure
-
-static struct BurnRomInfo cv_antarctRomDesc[] = {
- { "antaradv.1", 0x02000, 0xfbeb5fad, BRF_PRG | BRF_ESS },
- { "antaradv.2", 0x02000, 0x0f4d40dc, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_antarct, cv_antarct, cv_coleco)
-STD_ROM_FN(cv_antarct)
-
-struct BurnDriver BurnDrvcv_antarct = {
- "cv_antarct", NULL, "cv_coleco", NULL, "1984",
- "Antarctic Adventure\0", NULL, "Coleco", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_antarctRomInfo, cv_antarctRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Alphabet Zoo
-
-static struct BurnRomInfo cv_alphazooRomDesc[] = {
- { "alphazoo.1", 0x02000, 0xae42a206, BRF_PRG | BRF_ESS },
- { "alphazoo.2", 0x02000, 0x953ad47c, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_alphazoo, cv_alphazoo, cv_coleco)
-STD_ROM_FN(cv_alphazoo)
-
-struct BurnDriver BurnDrvcv_alphazoo = {
- "cv_alphazoo", NULL, "cv_coleco", NULL, "1984",
- "Alphabet Zoo\0", NULL, "Spinnaker Software", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_alphazooRomInfo, cv_alphazooRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Amazing Bumpman
-
-static struct BurnRomInfo cv_amazingRomDesc[] = {
- { "amazing.1", 0x02000, 0xd3cae98d, BRF_PRG | BRF_ESS },
- { "amazing.2", 0x02000, 0x36d0e09e, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_amazing, cv_amazing, cv_coleco)
-STD_ROM_FN(cv_amazing)
-
-struct BurnDriver BurnDrvcv_amazing = {
- "cv_amazing", NULL, "cv_coleco", NULL, "1986",
- "Amazing Bumpman\0", NULL, "Telegames", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_amazingRomInfo, cv_amazingRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Number Bumper
-
-static struct BurnRomInfo cv_numbumpRomDesc[] = {
- { "numbump.1", 0x02000, 0x4a2cb66a, BRF_PRG | BRF_ESS },
- { "numbump.2", 0x02000, 0xaf68a52d, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_numbump, cv_numbump, cv_coleco)
-STD_ROM_FN(cv_numbump)
-
-struct BurnDriver BurnDrvcv_numbump = {
- "cv_numbump", "cv_amazing", "cv_coleco", NULL, "1984",
- "Number Bumper\0", NULL, "Sunrise Software", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_numbumpRomInfo, cv_numbumpRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Aquattack
-
-static struct BurnRomInfo cv_aquatackRomDesc[] = {
- { "aquatack.1", 0x02000, 0x96c60fa2, BRF_PRG | BRF_ESS },
- { "aquatack.2", 0x02000, 0x628dd0cb, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_aquatack, cv_aquatack, cv_coleco)
-STD_ROM_FN(cv_aquatack)
-
-struct BurnDriver BurnDrvcv_aquatack = {
- "cv_aquatack", NULL, "cv_coleco", NULL, "1984",
- "Aquattack\0", NULL, "Interphase", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_aquatackRomInfo, cv_aquatackRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Aquattack (Alt)
-
-static struct BurnRomInfo cv_aquatackaRomDesc[] = {
- { "aquatacka.1", 0x02000, 0x7f33f73a, BRF_PRG | BRF_ESS },
- { "aquatacka.2", 0x02000, 0x8f3553eb, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_aquatacka, cv_aquatacka, cv_coleco)
-STD_ROM_FN(cv_aquatacka)
-
-struct BurnDriver BurnDrvcv_aquatacka = {
- "cv_aquatacka", "cv_aquatack", "cv_coleco", NULL, "1984",
- "Aquattack (Alt)\0", NULL, "Interphase", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_aquatackaRomInfo, cv_aquatackaRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Artillery Duel
-
-static struct BurnRomInfo cv_artduelRomDesc[] = {
- { "artduel.1", 0x02000, 0x4e18f196, BRF_PRG | BRF_ESS },
- { "artduel.2", 0x02000, 0x778c5a52, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_artduel, cv_artduel, cv_coleco)
-STD_ROM_FN(cv_artduel)
-
-struct BurnDriver BurnDrvcv_artduel = {
- "cv_artduel", NULL, "cv_coleco", NULL, "1983",
- "Artillery Duel\0", NULL, "Xonox", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_artduelRomInfo, cv_artduelRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// BC's Quest for Tires
-
-static struct BurnRomInfo cv_bcquestRomDesc[] = {
- { "bcquest.1", 0x02000, 0x1b866fb5, BRF_PRG | BRF_ESS },
- { "bcquest.2", 0x02000, 0xcf56f6fc, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_bcquest, cv_bcquest, cv_coleco)
-STD_ROM_FN(cv_bcquest)
-
-struct BurnDriver BurnDrvcv_bcquest = {
- "cv_bcquest", NULL, "cv_coleco", NULL, "1983",
- "BC's Quest for Tires\0", NULL, "Sierra On-Line", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_bcquestRomInfo, cv_bcquestRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Beamrider
-
-static struct BurnRomInfo cv_beamridrRomDesc[] = {
- { "beamridr.1", 0x02000, 0x7f08b2f4, BRF_PRG | BRF_ESS },
- { "beamridr.2", 0x02000, 0x5cef708a, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_beamridr, cv_beamridr, cv_coleco)
-STD_ROM_FN(cv_beamridr)
-
-struct BurnDriver BurnDrvcv_beamridr = {
- "cv_beamridr", NULL, "cv_coleco", NULL, "1983",
- "Beamrider\0", NULL, "Activision", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_beamridrRomInfo, cv_beamridrRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Blockade Runner
-
-static struct BurnRomInfo cv_blockrunRomDesc[] = {
- { "blockrun.1", 0x02000, 0x2f153090, BRF_PRG | BRF_ESS },
- { "blockrun.2", 0x02000, 0x74ebff13, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_blockrun, cv_blockrun, cv_coleco)
-STD_ROM_FN(cv_blockrun)
-
-struct BurnDriver BurnDrvcv_blockrun = {
- "cv_blockrun", NULL, "cv_coleco", NULL, "1984",
- "Blockade Runner\0", NULL, "Interphase", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_blockrunRomInfo, cv_blockrunRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Boulder Dash
-
-static struct BurnRomInfo cv_bdashRomDesc[] = {
- { "bdash.1", 0x02000, 0xaee6e532, BRF_PRG | BRF_ESS },
- { "bdash.2", 0x02000, 0x1092afb5, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_bdash, cv_bdash, cv_coleco)
-STD_ROM_FN(cv_bdash)
-
-struct BurnDriver BurnDrvcv_bdash = {
- "cv_bdash", NULL, "cv_coleco", NULL, "1984",
- "Boulder Dash\0", NULL, "Telegames", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_bdashRomInfo, cv_bdashRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Brain Strainers
-
-static struct BurnRomInfo cv_brainstrRomDesc[] = {
- { "brainstr.1", 0x02000, 0x5de3b863, BRF_PRG | BRF_ESS },
- { "brainstr.2", 0x02000, 0x690d25eb, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_brainstr, cv_brainstr, cv_coleco)
-STD_ROM_FN(cv_brainstr)
-
-struct BurnDriver BurnDrvcv_brainstr = {
- "cv_brainstr", NULL, "cv_coleco", NULL, "1984",
- "Brain Strainers\0", NULL, "Coleco", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_brainstrRomInfo, cv_brainstrRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Burgertime
-
-static struct BurnRomInfo cv_btimeRomDesc[] = {
- { "btime.1", 0x02000, 0x0440c21e, BRF_PRG | BRF_ESS },
- { "btime.2", 0x02000, 0x55522e34, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_btime, cv_btime, cv_coleco)
-STD_ROM_FN(cv_btime)
-
-struct BurnDriver BurnDrvcv_btime = {
- "cv_btime", NULL, "cv_coleco", NULL, "1984",
- "Burgertime\0", NULL, "Coleco", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_btimeRomInfo, cv_btimeRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Cabbage Patch Kids: Adventure in the Park
-
-static struct BurnRomInfo cv_cabbageRomDesc[] = {
- { "cabbage.1", 0x02000, 0x6a8fa43b, BRF_PRG | BRF_ESS },
- { "cabbage.2", 0x02000, 0x49b92492, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_cabbage, cv_cabbage, cv_coleco)
-STD_ROM_FN(cv_cabbage)
-
-struct BurnDriver BurnDrvcv_cabbage = {
- "cv_cabbage", NULL, "cv_coleco", NULL, "1984",
- "Cabbage Patch Kids: Adventure in the Park\0", NULL, "Coleco", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_cabbageRomInfo, cv_cabbageRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Campaign '84
-
-static struct BurnRomInfo cv_campaignRomDesc[] = {
- { "campaign.1", 0x02000, 0xd657ab6b, BRF_PRG | BRF_ESS },
- { "campaign.2", 0x02000, 0x844aefcf, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_campaign, cv_campaign, cv_coleco)
-STD_ROM_FN(cv_campaign)
-
-struct BurnDriver BurnDrvcv_campaign = {
- "cv_campaign", NULL, "cv_coleco", NULL, "1983",
- "Campaign '84\0", NULL, "Sunrise Software", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_campaignRomInfo, cv_campaignRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Carnival
-
-static struct BurnRomInfo cv_carnivalRomDesc[] = {
- { "carnival.1", 0x02000, 0x3cab8c1f, BRF_PRG | BRF_ESS },
- { "carnival.2", 0x02000, 0x4cf856a9, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_carnival, cv_carnival, cv_coleco)
-STD_ROM_FN(cv_carnival)
-
-struct BurnDriver BurnDrvcv_carnival = {
- "cv_carnival", NULL, "cv_coleco", NULL, "1982",
- "Carnival\0", NULL, "Coleco", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_carnivalRomInfo, cv_carnivalRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Cosmic Avenger
-
-static struct BurnRomInfo cv_cavengerRomDesc[] = {
- { "cavenger.1", 0x02000, 0xc852bee7, BRF_PRG | BRF_ESS },
- { "cavenger.2", 0x02000, 0x75da80eb, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_cavenger, cv_cavenger, cv_coleco)
-STD_ROM_FN(cv_cavenger)
-
-struct BurnDriver BurnDrvcv_cavenger = {
- "cv_cavenger", NULL, "cv_coleco", NULL, "1982",
- "Cosmic Avenger\0", NULL, "Coleco", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_cavengerRomInfo, cv_cavengerRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Cosmic Avenger (Alt)
-
-static struct BurnRomInfo cv_cavengeraRomDesc[] = {
- { "cavenger.1", 0x02000, 0xc852bee7, BRF_PRG | BRF_ESS },
- { "cavengera.2", 0x02000, 0x58d86f66, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_cavengera, cv_cavengera, cv_coleco)
-STD_ROM_FN(cv_cavengera)
-
-struct BurnDriver BurnDrvcv_cavengera = {
- "cv_cavengera", "cv_cavenger", "cv_coleco", NULL, "1982",
- "Cosmic Avenger (Alt)\0", NULL, "Coleco", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_cavengeraRomInfo, cv_cavengeraRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Cosmic Crisis
-
-static struct BurnRomInfo cv_ccrisisRomDesc[] = {
- { "ccrisis.1", 0x02000, 0xf8084e5a, BRF_PRG | BRF_ESS },
- { "ccrisis.2", 0x02000, 0x8c841d6a, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_ccrisis, cv_ccrisis, cv_coleco)
-STD_ROM_FN(cv_ccrisis)
-
-struct BurnDriver BurnDrvcv_ccrisis = {
- "cv_ccrisis", NULL, "cv_coleco", NULL, "1983",
- "Cosmic Crisis\0", NULL, "Telegames", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_ccrisisRomInfo, cv_ccrisisRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Centipede
-
-static struct BurnRomInfo cv_centipedRomDesc[] = {
- { "centiped.1", 0x02000, 0x4afc1fea, BRF_PRG | BRF_ESS },
- { "centiped.2", 0x02000, 0x9ca2a63d, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_centiped, cv_centiped, cv_coleco)
-STD_ROM_FN(cv_centiped)
-
-struct BurnDriver BurnDrvcv_centiped = {
- "cv_centiped", NULL, "cv_coleco", NULL, "1983",
- "Centipede\0", NULL, "Atarisoft", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_centipedRomInfo, cv_centipedRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Choplifter!
-
-static struct BurnRomInfo cv_chopliftRomDesc[] = {
- { "choplift.1", 0x02000, 0x78564c16, BRF_PRG | BRF_ESS },
- { "choplift.2", 0x02000, 0xb1abf125, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_choplift, cv_choplift, cv_coleco)
-STD_ROM_FN(cv_choplift)
-
-struct BurnDriver BurnDrvcv_choplift = {
- "cv_choplift", NULL, "cv_coleco", NULL, "1984",
- "Choplifter!\0", NULL, "Coleco", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_chopliftRomInfo, cv_chopliftRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Chuck Norris Superkicks
-
-static struct BurnRomInfo cv_chucknorRomDesc[] = {
- { "chucknor.1", 0x02000, 0x3c04540f, BRF_PRG | BRF_ESS },
- { "chucknor.2", 0x02000, 0xa5c58202, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_chucknor, cv_chucknor, cv_coleco)
-STD_ROM_FN(cv_chucknor)
-
-struct BurnDriver BurnDrvcv_chucknor = {
- "cv_chucknor", NULL, "cv_coleco", NULL, "1983",
- "Chuck Norris Superkicks\0", NULL, "Xonox", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_chucknorRomInfo, cv_chucknorRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Decathlon
-
-static struct BurnRomInfo cv_decathlnRomDesc[] = {
- { "decathln.1", 0x02000, 0xaa99fda4, BRF_PRG | BRF_ESS },
- { "decathln.2", 0x02000, 0x42b76bc2, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_decathln, cv_decathln, cv_coleco)
-STD_ROM_FN(cv_decathln)
-
-struct BurnDriver BurnDrvcv_decathln = {
- "cv_decathln", NULL, "cv_coleco", NULL, "1984",
- "Decathlon\0", NULL, "Activision", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_decathlnRomInfo, cv_decathlnRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Donkey Kong
-
-static struct BurnRomInfo cv_dkongRomDesc[] = {
- { "dkong.1", 0x02000, 0x1a63176e, BRF_PRG | BRF_ESS },
- { "dkong.2", 0x02000, 0xad6162cd, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_dkong, cv_dkong, cv_coleco)
-STD_ROM_FN(cv_dkong)
-
-struct BurnDriver BurnDrvcv_dkong = {
- "cv_dkong", NULL, "cv_coleco", NULL, "1982",
- "Donkey Kong\0", NULL, "Coleco", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_dkongRomInfo, cv_dkongRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Donkey Kong Junior
-
-static struct BurnRomInfo cv_dkongjrRomDesc[] = {
- { "dkongjr.1", 0x02000, 0x2c3d41bc, BRF_PRG | BRF_ESS },
- { "dkongjr.2", 0x02000, 0xc9be6a65, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_dkongjr, cv_dkongjr, cv_coleco)
-STD_ROM_FN(cv_dkongjr)
-
-struct BurnDriver BurnDrvcv_dkongjr = {
- "cv_dkongjr", NULL, "cv_coleco", NULL, "1983",
- "Donkey Kong Junior\0", NULL, "Coleco", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_dkongjrRomInfo, cv_dkongjrRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Mr. Do!'s Castle
-
-static struct BurnRomInfo cv_docastleRomDesc[] = {
- { "docastle.1", 0x02000, 0x525a7d10, BRF_PRG | BRF_ESS },
- { "docastle.2", 0x02000, 0xe46ce496, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_docastle, cv_docastle, cv_coleco)
-STD_ROM_FN(cv_docastle)
-
-struct BurnDriver BurnDrvcv_docastle = {
- "cv_docastle", NULL, "cv_coleco", NULL, "1983",
- "Mr. Do!'s Castle\0", NULL, "Parker Brothers", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_docastleRomInfo, cv_docastleRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// DragonFire
-
-static struct BurnRomInfo cv_drgnfireRomDesc[] = {
- { "drgnfire.1", 0x02000, 0x4272d250, BRF_PRG | BRF_ESS },
- { "drgnfire.2", 0x02000, 0xe68e9e70, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_drgnfire, cv_drgnfire, cv_coleco)
-STD_ROM_FN(cv_drgnfire)
-
-struct BurnDriver BurnDrvcv_drgnfire = {
- "cv_drgnfire", NULL, "cv_coleco", NULL, "1984",
- "DragonFire\0", NULL, "Imagic", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_drgnfireRomInfo, cv_drgnfireRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Dr. Seuss's Fix-Up the Mix-Up Puzzler
-
-static struct BurnRomInfo cv_drseussRomDesc[] = {
- { "drseuss.1", 0x02000, 0x47cf6908, BRF_PRG | BRF_ESS },
- { "drseuss.2", 0x02000, 0xb524f389, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_drseuss, cv_drseuss, cv_coleco)
-STD_ROM_FN(cv_drseuss)
-
-struct BurnDriver BurnDrvcv_drseuss = {
- "cv_drseuss", NULL, "cv_coleco", NULL, "1984",
- "Dr. Seuss's Fix-Up the Mix-Up Puzzler\0", NULL, "Coleco", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_drseussRomInfo, cv_drseussRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Evolution
-
-static struct BurnRomInfo cv_evolutioRomDesc[] = {
- { "evolutio.1", 0x02000, 0x75a9c817, BRF_PRG | BRF_ESS },
- { "evolutio.2", 0x02000, 0x6e32b9de, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_evolutio, cv_evolutio, cv_coleco)
-STD_ROM_FN(cv_evolutio)
-
-struct BurnDriver BurnDrvcv_evolutio = {
- "cv_evolutio", NULL, "cv_coleco", NULL, "1983",
- "Evolution\0", NULL, "Coleco", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_evolutioRomInfo, cv_evolutioRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Fathom
-
-static struct BurnRomInfo cv_fathomRomDesc[] = {
- { "fathom.1", 0x02000, 0xbf04e505, BRF_PRG | BRF_ESS },
- { "fathom.2", 0x02000, 0x606061c7, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_fathom, cv_fathom, cv_coleco)
-STD_ROM_FN(cv_fathom)
-
-struct BurnDriver BurnDrvcv_fathom = {
- "cv_fathom", NULL, "cv_coleco", NULL, "1983",
- "Fathom\0", NULL, "Imagic", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_fathomRomInfo, cv_fathomRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Flipper Slipper
-
-static struct BurnRomInfo cv_flipslipRomDesc[] = {
- { "flipslip.1", 0x02000, 0xe26569f3, BRF_PRG | BRF_ESS },
- { "flipslip.2", 0x02000, 0xd4ab0e71, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_flipslip, cv_flipslip, cv_coleco)
-STD_ROM_FN(cv_flipslip)
-
-struct BurnDriver BurnDrvcv_flipslip = {
- "cv_flipslip", NULL, "cv_coleco", NULL, "1983",
- "Flipper Slipper\0", NULL, "Spectravideo", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_flipslipRomInfo, cv_flipslipRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Frantic Freddy
-
-static struct BurnRomInfo cv_ffreddyRomDesc[] = {
- { "ffreddy.1", 0x02000, 0xe33ccf02, BRF_PRG | BRF_ESS },
- { "ffreddy.2", 0x02000, 0xd3ece1bc, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_ffreddy, cv_ffreddy, cv_coleco)
-STD_ROM_FN(cv_ffreddy)
-
-struct BurnDriver BurnDrvcv_ffreddy = {
- "cv_ffreddy", NULL, "cv_coleco", NULL, "1983",
- "Frantic Freddy\0", NULL, "Spectravideo", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_ffreddyRomInfo, cv_ffreddyRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Frogger
-
-static struct BurnRomInfo cv_froggerRomDesc[] = {
- { "frogger.1", 0x02000, 0xa213cda1, BRF_PRG | BRF_ESS },
- { "frogger.2", 0x02000, 0x1556c226, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_frogger, cv_frogger, cv_coleco)
-STD_ROM_FN(cv_frogger)
-
-struct BurnDriver BurnDrvcv_frogger = {
- "cv_frogger", NULL, "cv_coleco", NULL, "1983",
- "Frogger\0", NULL, "Parker Brothers", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_froggerRomInfo, cv_froggerRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Frogger II: Threedeep!
-
-static struct BurnRomInfo cv_frogger2RomDesc[] = {
- { "frogger2.1", 0x02000, 0xdd616176, BRF_PRG | BRF_ESS },
- { "frogger2.2", 0x02000, 0x3275dc33, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_frogger2, cv_frogger2, cv_coleco)
-STD_ROM_FN(cv_frogger2)
-
-struct BurnDriver BurnDrvcv_frogger2 = {
- "cv_frogger2", NULL, "cv_coleco", NULL, "1984",
- "Frogger II: Threedeep!\0", NULL, "Parker Brothers", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_frogger2RomInfo, cv_frogger2RomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Gateway to Apshai
-
-static struct BurnRomInfo cv_apshaiRomDesc[] = {
- { "apshai.1", 0x02000, 0xaa3ec181, BRF_PRG | BRF_ESS },
- { "apshai.2", 0x02000, 0x0e440f8f, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_apshai, cv_apshai, cv_coleco)
-STD_ROM_FN(cv_apshai)
-
-struct BurnDriver BurnDrvcv_apshai = {
- "cv_apshai", NULL, "cv_coleco", NULL, "1984",
- "Gateway to Apshai\0", NULL, "Epyx", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_apshaiRomInfo, cv_apshaiRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Gorf
-
-static struct BurnRomInfo cv_gorfRomDesc[] = {
- { "gorf.1", 0x02000, 0xbe7b03b6, BRF_PRG | BRF_ESS },
- { "gorf.2", 0x02000, 0xa75a408a, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_gorf, cv_gorf, cv_coleco)
-STD_ROM_FN(cv_gorf)
-
-struct BurnDriver BurnDrvcv_gorf = {
- "cv_gorf", NULL, "cv_coleco", NULL, "1983",
- "Gorf\0", NULL, "Coleco", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_gorfRomInfo, cv_gorfRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Gust Buster
-
-static struct BurnRomInfo cv_gustbustRomDesc[] = {
- { "gustbust.1", 0x02000, 0x3fb1866e, BRF_PRG | BRF_ESS },
- { "gustbust.2", 0x02000, 0x2dcf1da7, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_gustbust, cv_gustbust, cv_coleco)
-STD_ROM_FN(cv_gustbust)
-
-struct BurnDriver BurnDrvcv_gustbust = {
- "cv_gustbust", NULL, "cv_coleco", NULL, "1983",
- "Gust Buster\0", NULL, "Sunrise Software", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_gustbustRomInfo, cv_gustbustRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Gyruss
-
-static struct BurnRomInfo cv_gyrussRomDesc[] = {
- { "gyruss.1", 0x02000, 0x05543060, BRF_PRG | BRF_ESS },
- { "gyruss.2", 0x02000, 0x8efb3614, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_gyruss, cv_gyruss, cv_coleco)
-STD_ROM_FN(cv_gyruss)
-
-struct BurnDriver BurnDrvcv_gyruss = {
- "cv_gyruss", NULL, "cv_coleco", NULL, "1984",
- "Gyruss\0", NULL, "Parker Brothers", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_gyrussRomInfo, cv_gyrussRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// H.E.R.O.
-
-static struct BurnRomInfo cv_heroRomDesc[] = {
- { "hero.1", 0x02000, 0xdcc94c49, BRF_PRG | BRF_ESS },
- { "hero.2", 0x02000, 0xc0012665, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_hero, cv_hero, cv_coleco)
-STD_ROM_FN(cv_hero)
-
-struct BurnDriver BurnDrvcv_hero = {
- "cv_hero", NULL, "cv_coleco", NULL, "1984",
- "H.E.R.O.\0", NULL, "Activision", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_heroRomInfo, cv_heroRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Illusions
-
-static struct BurnRomInfo cv_illusionRomDesc[] = {
- { "illusion.1", 0x02000, 0x2b694536, BRF_PRG | BRF_ESS },
- { "illusion.2", 0x02000, 0x95a5dfa6, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_illusion, cv_illusion, cv_coleco)
-STD_ROM_FN(cv_illusion)
-
-struct BurnDriver BurnDrvcv_illusion = {
- "cv_illusion", NULL, "cv_coleco", NULL, "1984",
- "Illusions\0", NULL, "Coleco", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_illusionRomInfo, cv_illusionRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// James Bond 007
-
-static struct BurnRomInfo cv_jbondRomDesc[] = {
- { "jbond.1", 0x02000, 0x3e8adbd1, BRF_PRG | BRF_ESS },
- { "jbond.2", 0x02000, 0xd76746a3, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_jbond, cv_jbond, cv_coleco)
-STD_ROM_FN(cv_jbond)
-
-struct BurnDriver BurnDrvcv_jbond = {
- "cv_jbond", NULL, "cv_coleco", NULL, "1984",
- "James Bond 007\0", NULL, "Parker Brothers", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_jbondRomInfo, cv_jbondRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Jumpman Junior
-
-static struct BurnRomInfo cv_jmpmanjrRomDesc[] = {
- { "jmpmanjr.1", 0x02000, 0x18936315, BRF_PRG | BRF_ESS },
- { "jmpmanjr.2", 0x02000, 0x2af8cc37, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_jmpmanjr, cv_jmpmanjr, cv_coleco)
-STD_ROM_FN(cv_jmpmanjr)
-
-struct BurnDriver BurnDrvcv_jmpmanjr = {
- "cv_jmpmanjr", NULL, "cv_coleco", NULL, "1984",
- "Jumpman Junior\0", NULL, "Epyx", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_jmpmanjrRomInfo, cv_jmpmanjrRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Jumpman Junior (Alt)
-
-static struct BurnRomInfo cv_jmpmanjraRomDesc[] = {
- { "jmpmanjr.1", 0x02000, 0x18936315, BRF_PRG | BRF_ESS },
- { "jmpmanjra.2", 0x02000, 0xb9dc3145, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_jmpmanjra, cv_jmpmanjra, cv_coleco)
-STD_ROM_FN(cv_jmpmanjra)
-
-struct BurnDriver BurnDrvcv_jmpmanjra = {
- "cv_jmpmanjra", "cv_jmpmanjr", "cv_coleco", NULL, "1984",
- "Jumpman Junior (Alt)\0", NULL, "Epyx", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_jmpmanjraRomInfo, cv_jmpmanjraRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Ken Uston Blackjack-Poker
-
-static struct BurnRomInfo cv_kubjpokRomDesc[] = {
- { "kubjpok.1", 0x02000, 0x5b44f5da, BRF_PRG | BRF_ESS },
- { "kubjpok.2", 0x02000, 0x3bbede0e, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_kubjpok, cv_kubjpok, cv_coleco)
-STD_ROM_FN(cv_kubjpok)
-
-struct BurnDriver BurnDrvcv_kubjpok = {
- "cv_kubjpok", NULL, "cv_coleco", NULL, "1983",
- "Ken Uston Blackjack-Poker\0", NULL, "Coleco", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_kubjpokRomInfo, cv_kubjpokRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Keystone Kapers
-
-static struct BurnRomInfo cv_keykaperRomDesc[] = {
- { "keystone.1", 0x02000, 0x35776743, BRF_PRG | BRF_ESS },
- { "keystone.2", 0x02000, 0x4b624fb2, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_keykaper, cv_keykaper, cv_coleco)
-STD_ROM_FN(cv_keykaper)
-
-struct BurnDriver BurnDrvcv_keykaper = {
- "cv_keykaper", NULL, "cv_coleco", NULL, "1984",
- "Keystone Kapers\0", NULL, "Activision", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_keykaperRomInfo, cv_keykaperRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Lady Bug
-
-static struct BurnRomInfo cv_ladybugRomDesc[] = {
- { "ladybug.1", 0x02000, 0x6e63f2ed, BRF_PRG | BRF_ESS },
- { "ladybug.2", 0x02000, 0x147b94fe, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_ladybug, cv_ladybug, cv_coleco)
-STD_ROM_FN(cv_ladybug)
-
-struct BurnDriver BurnDrvcv_ladybug = {
- "cv_ladybug", NULL, "cv_coleco", NULL, "1982",
- "Lady Bug\0", NULL, "Coleco", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_ladybugRomInfo, cv_ladybugRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Sir Lancelot
-
-static struct BurnRomInfo cv_lancelotRomDesc[] = {
- { "lancelot.1", 0x02000, 0xe28346ed, BRF_PRG | BRF_ESS },
- { "lancelot.2", 0x02000, 0x1156741b, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_lancelot, cv_lancelot, cv_coleco)
-STD_ROM_FN(cv_lancelot)
-
-struct BurnDriver BurnDrvcv_lancelot = {
- "cv_lancelot", NULL, "cv_coleco", NULL, "1983",
- "Sir Lancelot\0", NULL, "Xonox", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_lancelotRomInfo, cv_lancelotRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Learning with Leeper
-
-static struct BurnRomInfo cv_leeperRomDesc[] = {
- { "leeper.1", 0x02000, 0x55dd8811, BRF_PRG | BRF_ESS },
- { "leeper.2", 0x02000, 0xae0c0c1f, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_leeper, cv_leeper, cv_coleco)
-STD_ROM_FN(cv_leeper)
-
-struct BurnDriver BurnDrvcv_leeper = {
- "cv_leeper", NULL, "cv_coleco", NULL, "1983",
- "Learning with Leeper\0", NULL, "Sierra On-Line", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_leeperRomInfo, cv_leeperRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Logic Levels
-
-static struct BurnRomInfo cv_logiclvlRomDesc[] = {
- { "logiclvl.1", 0x02000, 0xd54c581b, BRF_PRG | BRF_ESS },
- { "logiclvl.2", 0x02000, 0x257aa944, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_logiclvl, cv_logiclvl, cv_coleco)
-STD_ROM_FN(cv_logiclvl)
-
-struct BurnDriver BurnDrvcv_logiclvl = {
- "cv_logiclvl", NULL, "cv_coleco", NULL, "1984",
- "Logic Levels\0", NULL, "Fisher-Price", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_logiclvlRomInfo, cv_logiclvlRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Linking Logic
-
-static struct BurnRomInfo cv_linklogcRomDesc[] = {
- { "lnklogic.1", 0x02000, 0x918f12c0, BRF_PRG | BRF_ESS },
- { "lnklogic.2", 0x02000, 0xd8f49994, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_linklogc, cv_linklogc, cv_coleco)
-STD_ROM_FN(cv_linklogc)
-
-struct BurnDriver BurnDrvcv_linklogc = {
- "cv_linklogc", NULL, "cv_coleco", NULL, "1984",
- "Linking Logic\0", NULL, "Fisher-Price", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_linklogcRomInfo, cv_linklogcRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Looping
-
-static struct BurnRomInfo cv_loopingRomDesc[] = {
- { "looping.1", 0x02000, 0x205a9c61, BRF_PRG | BRF_ESS },
- { "looping.2", 0x02000, 0x1b5ef49e, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_looping, cv_looping, cv_coleco)
-STD_ROM_FN(cv_looping)
-
-struct BurnDriver BurnDrvcv_looping = {
- "cv_looping", NULL, "cv_coleco", NULL, "1983",
- "Looping\0", NULL, "Coleco", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_loopingRomInfo, cv_loopingRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Meteoric Shower
-
-static struct BurnRomInfo cv_meteoshoRomDesc[] = {
- { "meteosho.1", 0x02000, 0x6a162c7d, BRF_PRG | BRF_ESS },
- { "meteosho.2", 0x02000, 0x4fd8264f, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_meteosho, cv_meteosho, cv_coleco)
-STD_ROM_FN(cv_meteosho)
-
-struct BurnDriver BurnDrvcv_meteosho = {
- "cv_meteosho", NULL, "cv_coleco", NULL, "1983",
- "Meteoric Shower\0", NULL, "Coleco", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_meteoshoRomInfo, cv_meteoshoRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Montezuma's Revenge
-
-static struct BurnRomInfo cv_montezumRomDesc[] = {
- { "montezum.1", 0x02000, 0xc94a29af, BRF_PRG | BRF_ESS },
- { "montezum.2", 0x02000, 0xc27dcc42, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_montezum, cv_montezum, cv_coleco)
-STD_ROM_FN(cv_montezum)
-
-struct BurnDriver BurnDrvcv_montezum = {
- "cv_montezum", NULL, "cv_coleco", NULL, "1984",
- "Montezuma's Revenge\0", NULL, "Parker Brothers", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_montezumRomInfo, cv_montezumRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Moonsweeper
-
-static struct BurnRomInfo cv_moonswprRomDesc[] = {
- { "moonswpr.1", 0x02000, 0xcbb291b1, BRF_PRG | BRF_ESS },
- { "moonswpr.2", 0x02000, 0xff1c95e8, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_moonswpr, cv_moonswpr, cv_coleco)
-STD_ROM_FN(cv_moonswpr)
-
-struct BurnDriver BurnDrvcv_moonswpr = {
- "cv_moonswpr", NULL, "cv_coleco", NULL, "1983",
- "Moonsweeper\0", NULL, "Imagic", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_moonswprRomInfo, cv_moonswprRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Moonsweeper (Alt)
-
-static struct BurnRomInfo cv_moonswpraRomDesc[] = {
- { "moonswpr.1", 0x02000, 0xcbb291b1, BRF_PRG | BRF_ESS },
- { "moonswpra.2", 0x02000, 0xb00d161f, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_moonswpra, cv_moonswpra, cv_coleco)
-STD_ROM_FN(cv_moonswpra)
-
-struct BurnDriver BurnDrvcv_moonswpra = {
- "cv_moonswpra", "cv_moonswpr", "cv_coleco", NULL, "1983",
- "Moonsweeper (Alt)\0", NULL, "Imagic", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_moonswpraRomInfo, cv_moonswpraRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Mountain King
-
-static struct BurnRomInfo cv_mkingRomDesc[] = {
- { "mking.1", 0x02000, 0xc184c59f, BRF_PRG | BRF_ESS },
- { "mking.2", 0x02000, 0x4004519c, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_mking, cv_mking, cv_coleco)
-STD_ROM_FN(cv_mking)
-
-struct BurnDriver BurnDrvcv_mking = {
- "cv_mking", NULL, "cv_coleco", NULL, "1984",
- "Mountain King\0", NULL, "Sunrise Software", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_mkingRomInfo, cv_mkingRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Mountain King (Alt)
-
-static struct BurnRomInfo cv_mkingaRomDesc[] = {
- { "mking.1", 0x02000, 0xc184c59f, BRF_PRG | BRF_ESS },
- { "mkinga.2", 0x02000, 0x59a0d836, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_mkinga, cv_mkinga, cv_coleco)
-STD_ROM_FN(cv_mkinga)
-
-struct BurnDriver BurnDrvcv_mkinga = {
- "cv_mkinga", "cv_mking", "cv_coleco", NULL, "1984",
- "Mountain King (Alt)\0", NULL, "Sunrise Software", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_mkingaRomInfo, cv_mkingaRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Motocross Racer
-
-static struct BurnRomInfo cv_mtcracerRomDesc[] = {
- { "mtcracer.1", 0x02000, 0x66472edc, BRF_PRG | BRF_ESS },
- { "mtcracer.2", 0x02000, 0x94a06c6f, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_mtcracer, cv_mtcracer, cv_coleco)
-STD_ROM_FN(cv_mtcracer)
-
-struct BurnDriver BurnDrvcv_mtcracer = {
- "cv_mtcracer", NULL, "cv_coleco", NULL, "1984",
- "Motocross Racer\0", NULL, "Xonox", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_mtcracerRomInfo, cv_mtcracerRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Motocross Racer (Alt)
-
-static struct BurnRomInfo cv_mtcraceraRomDesc[] = {
- { "mtcracera.1", 0x02000, 0x868d6c01, BRF_PRG | BRF_ESS },
- { "mtcracer.2", 0x02000, 0x94a06c6f, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_mtcracera, cv_mtcracera, cv_coleco)
-STD_ROM_FN(cv_mtcracera)
-
-struct BurnDriver BurnDrvcv_mtcracera = {
- "cv_mtcracera", "cv_mtcracer", "cv_coleco", NULL, "1984",
- "Motocross Racer (Alt)\0", NULL, "Xonox", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_mtcraceraRomInfo, cv_mtcraceraRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Mousetrap
-
-static struct BurnRomInfo cv_mtrapRomDesc[] = {
- { "mtrap.1", 0x02000, 0xc99d687f, BRF_PRG | BRF_ESS },
- { "mtrap.2", 0x02000, 0x0dde86c7, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_mtrap, cv_mtrap, cv_coleco)
-STD_ROM_FN(cv_mtrap)
-
-struct BurnDriver BurnDrvcv_mtrap = {
- "cv_mtrap", NULL, "cv_coleco", NULL, "1982",
- "Mousetrap\0", NULL, "Coleco", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_mtrapRomInfo, cv_mtrapRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Mousetrap (Alt)
-
-static struct BurnRomInfo cv_mtrapaRomDesc[] = {
- { "mtrap.1", 0x02000, 0xc99d687f, BRF_PRG | BRF_ESS },
- { "mtrapa.2", 0x02000, 0xf7b51bd5, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_mtrapa, cv_mtrapa, cv_coleco)
-STD_ROM_FN(cv_mtrapa)
-
-struct BurnDriver BurnDrvcv_mtrapa = {
- "cv_mtrapa", "cv_mtrap", "cv_coleco", NULL, "1982",
- "Mousetrap (Alt)\0", NULL, "Coleco", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_mtrapaRomInfo, cv_mtrapaRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Nova Blast
-
-static struct BurnRomInfo cv_novablstRomDesc[] = {
- { "novablst.1", 0x02000, 0x790433cf, BRF_PRG | BRF_ESS },
- { "novablst.2", 0x02000, 0x4f4dd2dc, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_novablst, cv_novablst, cv_coleco)
-STD_ROM_FN(cv_novablst)
-
-struct BurnDriver BurnDrvcv_novablst = {
- "cv_novablst", NULL, "cv_coleco", NULL, "1983",
- "Nova Blast\0", NULL, "Coleco", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_novablstRomInfo, cv_novablstRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Oil's Well
-
-static struct BurnRomInfo cv_oilswellRomDesc[] = {
- { "oilswell.1", 0x02000, 0xb8cccf31, BRF_PRG | BRF_ESS },
- { "oilswell.2", 0x02000, 0xcd2da143, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_oilswell, cv_oilswell, cv_coleco)
-STD_ROM_FN(cv_oilswell)
-
-struct BurnDriver BurnDrvcv_oilswell = {
- "cv_oilswell", NULL, "cv_coleco", NULL, "1984",
- "Oil's Well\0", NULL, "Sierra On-Line", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_oilswellRomInfo, cv_oilswellRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Oil's Well (Alt)
-
-static struct BurnRomInfo cv_oilswellaRomDesc[] = {
- { "oilswell.1", 0x02000, 0xb8cccf31, BRF_PRG | BRF_ESS },
- { "oilswella.2", 0x02000, 0xb2d9c86d, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_oilswella, cv_oilswella, cv_coleco)
-STD_ROM_FN(cv_oilswella)
-
-struct BurnDriver BurnDrvcv_oilswella = {
- "cv_oilswella", "cv_oilswell", "cv_coleco", NULL, "1984",
- "Oil's Well (Alt)\0", NULL, "Sierra On-Line", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_oilswellaRomInfo, cv_oilswellaRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Omega Race
-
-static struct BurnRomInfo cv_omegraceRomDesc[] = {
- { "omegrace.1", 0x02000, 0x0abd47e7, BRF_PRG | BRF_ESS },
- { "omegrace.2", 0x02000, 0x8aba596b, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_omegrace, cv_omegrace, cv_coleco)
-STD_ROM_FN(cv_omegrace)
-
-struct BurnDriver BurnDrvcv_omegrace = {
- "cv_omegrace", NULL, "cv_coleco", NULL, "1983",
- "Omega Race\0", NULL, "Coleco", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_omegraceRomInfo, cv_omegraceRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// It's Only Rock 'n' Roll
-
-static struct BurnRomInfo cv_onlyrockRomDesc[] = {
- { "onlyrock.1", 0x02000, 0x93d46b70, BRF_PRG | BRF_ESS },
- { "onlyrock.2", 0x02000, 0x2bfc5325, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_onlyrock, cv_onlyrock, cv_coleco)
-STD_ROM_FN(cv_onlyrock)
-
-struct BurnDriver BurnDrvcv_onlyrock = {
- "cv_onlyrock", NULL, "cv_coleco", NULL, "1984",
- "It's Only Rock 'n' Roll\0", NULL, "K-Tel", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_onlyrockRomInfo, cv_onlyrockRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Space Panic
-
-static struct BurnRomInfo cv_panicRomDesc[] = {
- { "panic.1", 0x02000, 0xe06fa55b, BRF_PRG | BRF_ESS },
- { "panic.2", 0x02000, 0x66fcda90, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_panic, cv_panic, cv_coleco)
-STD_ROM_FN(cv_panic)
-
-struct BurnDriver BurnDrvcv_panic = {
- "cv_panic", NULL, "cv_coleco", NULL, "1983",
- "Space Panic\0", NULL, "Coleco", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_panicRomInfo, cv_panicRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Pepper II
-
-static struct BurnRomInfo cv_pepper2RomDesc[] = {
- { "pepper2.1", 0x02000, 0x2ea3deb5, BRF_PRG | BRF_ESS },
- { "pepper2.2", 0x02000, 0xcd31ba03, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_pepper2, cv_pepper2, cv_coleco)
-STD_ROM_FN(cv_pepper2)
-
-struct BurnDriver BurnDrvcv_pepper2 = {
- "cv_pepper2", NULL, "cv_coleco", NULL, "1983",
- "Pepper II\0", NULL, "Coleco", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_pepper2RomInfo, cv_pepper2RomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Pitfall!
-
-static struct BurnRomInfo cv_pitfallRomDesc[] = {
- { "pitfall.1", 0x02000, 0x27bc4115, BRF_PRG | BRF_ESS },
- { "pitfall.2", 0x02000, 0x24c3fc26, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_pitfall, cv_pitfall, cv_coleco)
-STD_ROM_FN(cv_pitfall)
-
-struct BurnDriver BurnDrvcv_pitfall = {
- "cv_pitfall", NULL, "cv_coleco", NULL, "1983",
- "Pitfall!\0", NULL, "Activision", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_pitfallRomInfo, cv_pitfallRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Pitfall II: Lost Caverns
-
-static struct BurnRomInfo cv_pitfall2RomDesc[] = {
- { "pitfall2.1", 0x02000, 0x08ad596e, BRF_PRG | BRF_ESS },
- { "pitfall2.2", 0x02000, 0xe750c172, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_pitfall2, cv_pitfall2, cv_coleco)
-STD_ROM_FN(cv_pitfall2)
-
-struct BurnDriver BurnDrvcv_pitfall2 = {
- "cv_pitfall2", NULL, "cv_coleco", NULL, "1984",
- "Pitfall II: Lost Caverns\0", NULL, "Activision", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_pitfall2RomInfo, cv_pitfall2RomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Pitstop
-
-static struct BurnRomInfo cv_pitstopRomDesc[] = {
- { "pitstop.1", 0x02000, 0x9480724e, BRF_PRG | BRF_ESS },
- { "pitstop.2", 0x02000, 0xce8e9e7e, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_pitstop, cv_pitstop, cv_coleco)
-STD_ROM_FN(cv_pitstop)
-
-struct BurnDriver BurnDrvcv_pitstop = {
- "cv_pitstop", NULL, "cv_coleco", NULL, "1983",
- "Pitstop\0", NULL, "Epyx", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_pitstopRomInfo, cv_pitstopRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Pitstop (Alt)
-
-static struct BurnRomInfo cv_pitstopaRomDesc[] = {
- { "pitstop.1", 0x02000, 0x9480724e, BRF_PRG | BRF_ESS },
- { "pitstopa.2", 0x02000, 0xa9172ddb, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_pitstopa, cv_pitstopa, cv_coleco)
-STD_ROM_FN(cv_pitstopa)
-
-struct BurnDriver BurnDrvcv_pitstopa = {
- "cv_pitstopa", "cv_pitstop", "cv_coleco", NULL, "1983",
- "Pitstop (Alt)\0", NULL, "Epyx", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_pitstopaRomInfo, cv_pitstopaRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Popeye
-
-static struct BurnRomInfo cv_popeyeRomDesc[] = {
- { "popeye.1", 0x02000, 0x0cbf4b76, BRF_PRG | BRF_ESS },
- { "popeye.2", 0x02000, 0xf1cf5153, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_popeye, cv_popeye, cv_coleco)
-STD_ROM_FN(cv_popeye)
-
-struct BurnDriver BurnDrvcv_popeye = {
- "cv_popeye", NULL, "cv_coleco", NULL, "1983",
- "Popeye\0", NULL, "Parker Brothers", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_popeyeRomInfo, cv_popeyeRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Popeye (Alt)
-
-static struct BurnRomInfo cv_popeyeaRomDesc[] = {
- { "popeye.1", 0x02000, 0x0cbf4b76, BRF_PRG | BRF_ESS },
- { "popeyea.2", 0x02000, 0x6fabc4f0, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_popeyea, cv_popeyea, cv_coleco)
-STD_ROM_FN(cv_popeyea)
-
-struct BurnDriver BurnDrvcv_popeyea = {
- "cv_popeyea", "cv_popeye", "cv_coleco", NULL, "1983",
- "Popeye (Alt)\0", NULL, "Parker Brothers", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_popeyeaRomInfo, cv_popeyeaRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Q*bert Qubes
-
-static struct BurnRomInfo cv_qbertqubRomDesc[] = {
- { "qbertqub.1", 0x02000, 0xf98f9356, BRF_PRG | BRF_ESS },
- { "qbertqub.2", 0x02000, 0x6c620927, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_qbertqub, cv_qbertqub, cv_coleco)
-STD_ROM_FN(cv_qbertqub)
-
-struct BurnDriver BurnDrvcv_qbertqub = {
- "cv_qbertqub", NULL, "cv_coleco", NULL, "1984",
- "Q*bert Qubes\0", NULL, "Parker Brothers", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_qbertqubRomInfo, cv_qbertqubRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Quest for Quintana Roo
-
-static struct BurnRomInfo cv_quintanaRomDesc[] = {
- { "quintana.1", 0x02000, 0x4e0c1380, BRF_PRG | BRF_ESS },
- { "quintana.2", 0x02000, 0xb9a51e9d, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_quintana, cv_quintana, cv_coleco)
-STD_ROM_FN(cv_quintana)
-
-struct BurnDriver BurnDrvcv_quintana = {
- "cv_quintana", NULL, "cv_coleco", NULL, "1983",
- "Quest for Quintana Roo\0", NULL, "Sunrise Software", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_quintanaRomInfo, cv_quintanaRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Quest for Quintana Roo (Alt)
-
-static struct BurnRomInfo cv_quintanaaRomDesc[] = {
- { "quintana.1", 0x02000, 0x4e0c1380, BRF_PRG | BRF_ESS },
- { "quintanaa.2", 0x02000, 0x7a5fb32f, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_quintanaa, cv_quintanaa, cv_coleco)
-STD_ROM_FN(cv_quintanaa)
-
-struct BurnDriver BurnDrvcv_quintanaa = {
- "cv_quintanaa", "cv_quintana", "cv_coleco", NULL, "1983",
- "Quest for Quintana Roo (Alt)\0", NULL, "Sunrise Software", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_quintanaaRomInfo, cv_quintanaaRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// River Raid
-
-static struct BurnRomInfo cv_riveraidRomDesc[] = {
- { "riveraid.1", 0x02000, 0x75640b2a, BRF_PRG | BRF_ESS },
- { "riveraid.2", 0x02000, 0x5a3305e6, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_riveraid, cv_riveraid, cv_coleco)
-STD_ROM_FN(cv_riveraid)
-
-struct BurnDriver BurnDrvcv_riveraid = {
- "cv_riveraid", NULL, "cv_coleco", NULL, "1984",
- "River Raid\0", NULL, "Activision", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_riveraidRomInfo, cv_riveraidRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Robin Hood
-
-static struct BurnRomInfo cv_robinhRomDesc[] = {
- { "robinh.1", 0x02000, 0x47030356, BRF_PRG | BRF_ESS },
- { "robinh.2", 0x02000, 0x100b753c, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_robinh, cv_robinh, cv_coleco)
-STD_ROM_FN(cv_robinh)
-
-struct BurnDriver BurnDrvcv_robinh = {
- "cv_robinh", NULL, "cv_coleco", NULL, "1984",
- "Robin Hood\0", NULL, "Xonox", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_robinhRomInfo, cv_robinhRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Robin Hood (Alt)
-
-static struct BurnRomInfo cv_robinhaRomDesc[] = {
- { "robinh.1", 0x02000, 0x47030356, BRF_PRG | BRF_ESS },
- { "robinha.2", 0x02000, 0xd307fb9d, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_robinha, cv_robinha, cv_coleco)
-STD_ROM_FN(cv_robinha)
-
-struct BurnDriver BurnDrvcv_robinha = {
- "cv_robinha", "cv_robinh", "cv_coleco", NULL, "1984",
- "Robin Hood (Alt)\0", NULL, "Xonox", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_robinhaRomInfo, cv_robinhaRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Rock 'n Bolt
-
-static struct BurnRomInfo cv_rockboltRomDesc[] = {
- { "rockbolt.1", 0x02000, 0xd47a9aa5, BRF_PRG | BRF_ESS },
- { "rockbolt.2", 0x02000, 0x2e1da551, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_rockbolt, cv_rockbolt, cv_coleco)
-STD_ROM_FN(cv_rockbolt)
-
-struct BurnDriver BurnDrvcv_rockbolt = {
- "cv_rockbolt", NULL, "cv_coleco", NULL, "1984",
- "Rock 'n Bolt\0", NULL, "Telegames", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_rockboltRomInfo, cv_rockboltRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Rock 'n Bolt (Alt)
-
-static struct BurnRomInfo cv_rockboltaRomDesc[] = {
- { "rockbolt.1", 0x02000, 0xd47a9aa5, BRF_PRG | BRF_ESS },
- { "rockbolta.2", 0x02000, 0xd37f5c2b, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_rockbolta, cv_rockbolta, cv_coleco)
-STD_ROM_FN(cv_rockbolta)
-
-struct BurnDriver BurnDrvcv_rockbolta = {
- "cv_rockbolta", "cv_rockbolt", "cv_coleco", NULL, "1984",
- "Rock 'n Bolt (Alt)\0", NULL, "Telegames", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_rockboltaRomInfo, cv_rockboltaRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Rolloverture
-
-static struct BurnRomInfo cv_rolloverRomDesc[] = {
- { "rollover.1", 0x02000, 0x668b6bcb, BRF_PRG | BRF_ESS },
- { "rollover.2", 0x02000, 0xb3dc2195, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_rollover, cv_rollover, cv_coleco)
-STD_ROM_FN(cv_rollover)
-
-struct BurnDriver BurnDrvcv_rollover = {
- "cv_rollover", NULL, "cv_coleco", NULL, "1983",
- "Rolloverture\0", NULL, "Sunrise Software", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_rolloverRomInfo, cv_rolloverRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Sammy Lightfoot
-
-static struct BurnRomInfo cv_sammylfRomDesc[] = {
- { "sammylf.1", 0x02000, 0x2492bac2, BRF_PRG | BRF_ESS },
- { "sammylf.2", 0x02000, 0x7fee3b34, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_sammylf, cv_sammylf, cv_coleco)
-STD_ROM_FN(cv_sammylf)
-
-struct BurnDriver BurnDrvcv_sammylf = {
- "cv_sammylf", NULL, "cv_coleco", NULL, "1983",
- "Sammy Lightfoot\0", NULL, "Sierra On-Line", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_sammylfRomInfo, cv_sammylfRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Sammy Lightfoot (Alt)
-
-static struct BurnRomInfo cv_sammylfaRomDesc[] = {
- { "sammylf.1", 0x02000, 0x2492bac2, BRF_PRG | BRF_ESS },
- { "sammylfa.2", 0x02000, 0x8f7b8944, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_sammylfa, cv_sammylfa, cv_coleco)
-STD_ROM_FN(cv_sammylfa)
-
-struct BurnDriver BurnDrvcv_sammylfa = {
- "cv_sammylfa", "cv_sammylf", "cv_coleco", NULL, "1983",
- "Sammy Lightfoot (Alt)\0", NULL, "Sierra On-Line", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_sammylfaRomInfo, cv_sammylfaRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Slither
-
-static struct BurnRomInfo cv_slitherRomDesc[] = {
- { "slither.1", 0x02000, 0xadc3207c, BRF_PRG | BRF_ESS },
- { "slither.2", 0x02000, 0xe9d2763c, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_slither, cv_slither, cv_coleco)
-STD_ROM_FN(cv_slither)
-
-struct BurnDriver BurnDrvcv_slither = {
- "cv_slither", NULL, "cv_coleco", NULL, "1983",
- "Slither\0", NULL, "Coleco", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_slitherRomInfo, cv_slitherRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Slurpy
-
-static struct BurnRomInfo cv_slurpyRomDesc[] = {
- { "slurpy.1", 0x02000, 0xcb23c846, BRF_PRG | BRF_ESS },
- { "slurpy.2", 0x02000, 0xadcda8e3, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_slurpy, cv_slurpy, cv_coleco)
-STD_ROM_FN(cv_slurpy)
-
-struct BurnDriver BurnDrvcv_slurpy = {
- "cv_slurpy", NULL, "cv_coleco", NULL, "1984",
- "Slurpy\0", NULL, "Xonox", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_slurpyRomInfo, cv_slurpyRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Smurf Rescue in Gargamel's Castle
-
-static struct BurnRomInfo cv_smurfRomDesc[] = {
- { "smurfrgc.1", 0x02000, 0x675bf14d, BRF_PRG | BRF_ESS },
- { "smurfrgc.2", 0x02000, 0x0a1a2b0e, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_smurf, cv_smurf, cv_coleco)
-STD_ROM_FN(cv_smurf)
-
-struct BurnDriver BurnDrvcv_smurf = {
- "cv_smurf", NULL, "cv_coleco", NULL, "1982",
- "Smurf Rescue in Gargamel's Castle\0", NULL, "Coleco", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_smurfRomInfo, cv_smurfRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Smurf Rescue in Gargamel's Castle (Alt)
-
-static struct BurnRomInfo cv_smurfaRomDesc[] = {
- { "smurfrgc.1", 0x02000, 0x675bf14d, BRF_PRG | BRF_ESS },
- { "smurfrgca.2", 0x02000, 0x993ed67c, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_smurfa, cv_smurfa, cv_coleco)
-STD_ROM_FN(cv_smurfa)
-
-struct BurnDriver BurnDrvcv_smurfa = {
- "cv_smurfa", "cv_smurf", "cv_coleco", NULL, "1982",
- "Smurf Rescue in Gargamel's Castle (Alt)\0", NULL, "Coleco", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_smurfaRomInfo, cv_smurfaRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Space Fury
-
-static struct BurnRomInfo cv_spacfuryRomDesc[] = {
- { "spacfury.1", 0x02000, 0x1850548f, BRF_PRG | BRF_ESS },
- { "spacfury.2", 0x02000, 0x4d6866e1, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_spacfury, cv_spacfury, cv_coleco)
-STD_ROM_FN(cv_spacfury)
-
-struct BurnDriver BurnDrvcv_spacfury = {
- "cv_spacfury", NULL, "cv_coleco", NULL, "1983",
- "Space Fury\0", NULL, "Coleco", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_spacfuryRomInfo, cv_spacfuryRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Spectron
-
-static struct BurnRomInfo cv_spectronRomDesc[] = {
- { "spectron.1", 0x02000, 0x23e2afa0, BRF_PRG | BRF_ESS },
- { "spectron.2", 0x02000, 0x01897fc1, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_spectron, cv_spectron, cv_coleco)
-STD_ROM_FN(cv_spectron)
-
-struct BurnDriver BurnDrvcv_spectron = {
- "cv_spectron", NULL, "cv_coleco", NULL, "1983",
- "Spectron\0", NULL, "Spectravideo", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_spectronRomInfo, cv_spectronRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Super Cross Force
-
-static struct BurnRomInfo cv_sprcrossRomDesc[] = {
- { "sprcross.1", 0x02000, 0xe5a53b79, BRF_PRG | BRF_ESS },
- { "sprcross.2", 0x02000, 0x5185bd94, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_sprcross, cv_sprcross, cv_coleco)
-STD_ROM_FN(cv_sprcross)
-
-struct BurnDriver BurnDrvcv_sprcross = {
- "cv_sprcross", NULL, "cv_coleco", NULL, "1983",
- "Super Cross Force\0", NULL, "Spectravideo", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_sprcrossRomInfo, cv_sprcrossRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Super Cross Force (Alt)
-
-static struct BurnRomInfo cv_sprcrossaRomDesc[] = {
- { "sprcross.1", 0x02000, 0xe5a53b79, BRF_PRG | BRF_ESS },
- { "sprcrossa.2", 0x02000, 0xbd58d3e1, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_sprcrossa, cv_sprcrossa, cv_coleco)
-STD_ROM_FN(cv_sprcrossa)
-
-struct BurnDriver BurnDrvcv_sprcrossa = {
- "cv_sprcrossa", "cv_sprcross", "cv_coleco", NULL, "1983",
- "Super Cross Force (Alt)\0", NULL, "Spectravideo", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_sprcrossaRomInfo, cv_sprcrossaRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Squish 'em Sam!
-
-static struct BurnRomInfo cv_squishemRomDesc[] = {
- { "squishem.1", 0x02000, 0x2614d406, BRF_PRG | BRF_ESS },
- { "squishem.2", 0x02000, 0xb1ce0286, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_squishem, cv_squishem, cv_coleco)
-STD_ROM_FN(cv_squishem)
-
-struct BurnDriver BurnDrvcv_squishem = {
- "cv_squishem", NULL, "cv_coleco", NULL, "1984",
- "Squish 'em Sam!\0", NULL, "Interphase", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_squishemRomInfo, cv_squishemRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Star Wars: The Arcade Game
-
-static struct BurnRomInfo cv_starwarsRomDesc[] = {
- { "starwars.1", 0x02000, 0xa0ea5c68, BRF_PRG | BRF_ESS },
- { "starwars.2", 0x02000, 0xe7d55444, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_starwars, cv_starwars, cv_coleco)
-STD_ROM_FN(cv_starwars)
-
-struct BurnDriver BurnDrvcv_starwars = {
- "cv_starwars", NULL, "cv_coleco", NULL, "1984",
- "Star Wars: The Arcade Game\0", NULL, "Parker Brothers", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_starwarsRomInfo, cv_starwarsRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Strike It!
-
-static struct BurnRomInfo cv_strikeitRomDesc[] = {
- { "strikeit.1", 0x02000, 0x7b26040d, BRF_PRG | BRF_ESS },
- { "strikeit.2", 0x02000, 0x3a2d6226, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_strikeit, cv_strikeit, cv_coleco)
-STD_ROM_FN(cv_strikeit)
-
-struct BurnDriver BurnDrvcv_strikeit = {
- "cv_strikeit", NULL, "cv_coleco", NULL, "1983",
- "Strike It!\0", NULL, "Telegames", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_strikeitRomInfo, cv_strikeitRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Tank Wars
-
-static struct BurnRomInfo cv_tankwarsRomDesc[] = {
- { "tankwars.1", 0x02000, 0x9ab82448, BRF_PRG | BRF_ESS },
- { "tankwars.2", 0x02000, 0x829cce2b, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_tankwars, cv_tankwars, cv_coleco)
-STD_ROM_FN(cv_tankwars)
-
-struct BurnDriver BurnDrvcv_tankwars = {
- "cv_tankwars", NULL, "cv_coleco", NULL, "1983",
- "Tank Wars\0", NULL, "Telegames", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_tankwarsRomInfo, cv_tankwarsRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Telly Turtle
-
-static struct BurnRomInfo cv_tellyRomDesc[] = {
- { "telly.1", 0x02000, 0x2d18a9f3, BRF_PRG | BRF_ESS },
- { "telly.2", 0x02000, 0xc031f478, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_telly, cv_telly, cv_coleco)
-STD_ROM_FN(cv_telly)
-
-struct BurnDriver BurnDrvcv_telly = {
- "cv_telly", NULL, "cv_coleco", NULL, "1984",
- "Telly Turtle\0", NULL, "Coleco", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_tellyRomInfo, cv_tellyRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Threshold
-
-static struct BurnRomInfo cv_threshldRomDesc[] = {
- { "threshld.1", 0x02000, 0x5575f9a7, BRF_PRG | BRF_ESS },
- { "threshld.2", 0x02000, 0x502e5505, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_threshld, cv_threshld, cv_coleco)
-STD_ROM_FN(cv_threshld)
-
-struct BurnDriver BurnDrvcv_threshld = {
- "cv_threshld", NULL, "cv_coleco", NULL, "1983",
- "Threshold\0", NULL, "Sierra On-Line", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_threshldRomInfo, cv_threshldRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Time Pilot
-
-static struct BurnRomInfo cv_timepltRomDesc[] = {
- { "timeplt.1", 0x02000, 0xc7dbf3f4, BRF_PRG | BRF_ESS },
- { "timeplt.2", 0x02000, 0x0103b17c, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_timeplt, cv_timeplt, cv_coleco)
-STD_ROM_FN(cv_timeplt)
-
-struct BurnDriver BurnDrvcv_timeplt = {
- "cv_timeplt", NULL, "cv_coleco", NULL, "1983",
- "Time Pilot\0", NULL, "Coleco", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_timepltRomInfo, cv_timepltRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Tomarc the Barbarian
-
-static struct BurnRomInfo cv_tomarcRomDesc[] = {
- { "tomarc.1", 0x02000, 0x938681c2, BRF_PRG | BRF_ESS },
- { "tomarc.2", 0x02000, 0x58fc365b, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_tomarc, cv_tomarc, cv_coleco)
-STD_ROM_FN(cv_tomarc)
-
-struct BurnDriver BurnDrvcv_tomarc = {
- "cv_tomarc", NULL, "cv_coleco", NULL, "1984",
- "Tomarc the Barbarian\0", NULL, "Xonox", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_tomarcRomInfo, cv_tomarcRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Turbo
-
-static struct BurnRomInfo cv_turboRomDesc[] = {
- { "turbo.1", 0x02000, 0x379db77c, BRF_PRG | BRF_ESS },
- { "turbo.2", 0x02000, 0x8d49046a, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_turbo, cv_turbo, cv_coleco)
-STD_ROM_FN(cv_turbo)
-
-struct BurnDriver BurnDrvcv_turbo = {
- "cv_turbo", NULL, "cv_coleco", NULL, "1982",
- "Turbo\0", NULL, "Coleco", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_turboRomInfo, cv_turboRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Tutankham
-
-static struct BurnRomInfo cv_tutankhmRomDesc[] = {
- { "tutankhm.1", 0x02000, 0x8186ee58, BRF_PRG | BRF_ESS },
- { "tutankhm.2", 0x02000, 0xc84f9171, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_tutankhm, cv_tutankhm, cv_coleco)
-STD_ROM_FN(cv_tutankhm)
-
-struct BurnDriver BurnDrvcv_tutankhm = {
- "cv_tutankhm", NULL, "cv_coleco", NULL, "1983",
- "Tutankham\0", NULL, "Parker Brothers", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_tutankhmRomInfo, cv_tutankhmRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Tutankham (Alt)
-
-static struct BurnRomInfo cv_tutankhmaRomDesc[] = {
- { "tutankhm.1", 0x02000, 0x8186ee58, BRF_PRG | BRF_ESS },
- { "tutankhma.2", 0x02000, 0x208eb5a2, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_tutankhma, cv_tutankhma, cv_coleco)
-STD_ROM_FN(cv_tutankhma)
-
-struct BurnDriver BurnDrvcv_tutankhma = {
- "cv_tutankhma", "cv_tutankhm", "cv_coleco", NULL, "1983",
- "Tutankham (Alt)\0", NULL, "Parker Brothers", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_tutankhmaRomInfo, cv_tutankhmaRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Up'n Down
-
-static struct BurnRomInfo cv_upndownRomDesc[] = {
- { "upndown.1", 0x02000, 0x20020b8c, BRF_PRG | BRF_ESS },
- { "upndown.2", 0x02000, 0xecc346e6, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_upndown, cv_upndown, cv_coleco)
-STD_ROM_FN(cv_upndown)
-
-struct BurnDriver BurnDrvcv_upndown = {
- "cv_upndown", NULL, "cv_coleco", NULL, "1984",
- "Up'n Down\0", NULL, "Sega", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_upndownRomInfo, cv_upndownRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Venture
-
-static struct BurnRomInfo cv_ventureRomDesc[] = {
- { "venture.1", 0x02000, 0xd1975c29, BRF_PRG | BRF_ESS },
- { "venture.2", 0x02000, 0x2fff758e, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_venture, cv_venture, cv_coleco)
-STD_ROM_FN(cv_venture)
-
-struct BurnDriver BurnDrvcv_venture = {
- "cv_venture", NULL, "cv_coleco", NULL, "1982",
- "Venture\0", NULL, "Coleco", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_ventureRomInfo, cv_ventureRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Wing War
-
-static struct BurnRomInfo cv_wingwarRomDesc[] = {
- { "wingwar.1", 0x02000, 0x9aaba834, BRF_PRG | BRF_ESS },
- { "wingwar.2", 0x02000, 0x442000d0, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_wingwar, cv_wingwar, cv_coleco)
-STD_ROM_FN(cv_wingwar)
-
-struct BurnDriver BurnDrvcv_wingwar = {
- "cv_wingwar", NULL, "cv_coleco", NULL, "1983",
- "Wing War\0", NULL, "Imagic", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_wingwarRomInfo, cv_wingwarRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Wizard of Id's Wizmath
-
-static struct BurnRomInfo cv_wizmathRomDesc[] = {
- { "wizmath.1", 0x02000, 0xc0c6bda0, BRF_PRG | BRF_ESS },
- { "wizmath.2", 0x02000, 0x4080c0a4, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_wizmath, cv_wizmath, cv_coleco)
-STD_ROM_FN(cv_wizmath)
-
-struct BurnDriver BurnDrvcv_wizmath = {
- "cv_wizmath", NULL, "cv_coleco", NULL, "1984",
- "Wizard of Id's Wizmath\0", NULL, "Sierra On-Line", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_wizmathRomInfo, cv_wizmathRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Zenji
-
-static struct BurnRomInfo cv_zenjiRomDesc[] = {
- { "zenji.1", 0x02000, 0xc3bde56a, BRF_PRG | BRF_ESS },
- { "zenji.2", 0x02000, 0xd2a19d28, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_zenji, cv_zenji, cv_coleco)
-STD_ROM_FN(cv_zenji)
-
-struct BurnDriver BurnDrvcv_zenji = {
- "cv_zenji", NULL, "cv_coleco", NULL, "1984",
- "Zenji\0", NULL, "Activision", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_zenjiRomInfo, cv_zenjiRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// One on One
-
-static struct BurnRomInfo cv_1on1RomDesc[] = {
- { "1on1.1", 0x02000, 0xbabea7d6, BRF_PRG | BRF_ESS },
- { "1on1.2", 0x02000, 0x568ffb61, BRF_PRG | BRF_ESS },
- { "1on1.3", 0x02000, 0x575c9eae, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_1on1, cv_1on1, cv_coleco)
-STD_ROM_FN(cv_1on1)
-
-struct BurnDriver BurnDrvcv_1on1 = {
- "cv_1on1", NULL, "cv_coleco", NULL, "1984",
- "One on One\0", NULL, "Micro Lab", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_1on1RomInfo, cv_1on1RomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// BC's Quest for Tires II: Grog's Revenge
-
-static struct BurnRomInfo cv_bcquest2RomDesc[] = {
- { "bcquest2.1", 0x02000, 0x6bd84eb0, BRF_PRG | BRF_ESS },
- { "bcquest2.2", 0x02000, 0x2ffa50a8, BRF_PRG | BRF_ESS },
- { "bcquest2.3", 0x02000, 0x4b909485, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_bcquest2, cv_bcquest2, cv_coleco)
-STD_ROM_FN(cv_bcquest2)
-
-struct BurnDriver BurnDrvcv_bcquest2 = {
- "cv_bcquest2", NULL, "cv_coleco", NULL, "1984",
- "BC's Quest for Tires II: Grog's Revenge\0", NULL, "Coleco", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_bcquest2RomInfo, cv_bcquest2RomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// BC's Quest for Tires II: Grog's Revenge (Can)
-
-static struct BurnRomInfo cv_bcquest2caRomDesc[] = {
- { "bcquest2ca.1", 0x02000, 0x8898dfc3, BRF_PRG | BRF_ESS },
- { "bcquest2ca.2", 0x02000, 0xc42f20bd, BRF_PRG | BRF_ESS },
- { "bcquest2ca.3", 0x02000, 0x117dedbe, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_bcquest2ca, cv_bcquest2ca, cv_coleco)
-STD_ROM_FN(cv_bcquest2ca)
-
-struct BurnDriver BurnDrvcv_bcquest2ca = {
- "cv_bcquest2ca", "cv_bcquest2", "cv_coleco", NULL, "1984",
- "BC's Quest for Tires II: Grog's Revenge (Can)\0", NULL, "Coleco Canada", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_bcquest2caRomInfo, cv_bcquest2caRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Bump 'n' Jump
-
-static struct BurnRomInfo cv_bnjRomDesc[] = {
- { "bnj.1", 0x02000, 0x92b052f8, BRF_PRG | BRF_ESS },
- { "bnj.2", 0x02000, 0x05297263, BRF_PRG | BRF_ESS },
- { "bnj.3", 0x02000, 0xc8f6efc1, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_bnj, cv_bnj, cv_coleco)
-STD_ROM_FN(cv_bnj)
-
-struct BurnDriver BurnDrvcv_bnj = {
- "cv_bnj", NULL, "cv_coleco", NULL, "1984",
- "Bump 'n' Jump\0", NULL, "Coleco", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_bnjRomInfo, cv_bnjRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Buck Rogers: Planet of Zoom
-
-static struct BurnRomInfo cv_buckrogRomDesc[] = {
- { "buckrog.1", 0x02000, 0xceb94075, BRF_PRG | BRF_ESS },
- { "buckrog.2", 0x02000, 0x6fe3a6a0, BRF_PRG | BRF_ESS },
- { "buckrog.3", 0x02000, 0x7f93542b, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_buckrog, cv_buckrog, cv_coleco)
-STD_ROM_FN(cv_buckrog)
-
-struct BurnDriver BurnDrvcv_buckrog = {
- "cv_buckrog", NULL, "cv_coleco", NULL, "1983",
- "Buck Rogers: Planet of Zoom\0", NULL, "Coleco", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_buckrogRomInfo, cv_buckrogRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Congo Bongo
-
-static struct BurnRomInfo cv_congoRomDesc[] = {
- { "congo.1", 0x02000, 0xa92dfd24, BRF_PRG | BRF_ESS },
- { "congo.2", 0x02000, 0x77e922d0, BRF_PRG | BRF_ESS },
- { "congo.3", 0x02000, 0x824a0746, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_congo, cv_congo, cv_coleco)
-STD_ROM_FN(cv_congo)
-
-struct BurnDriver BurnDrvcv_congo = {
- "cv_congo", NULL, "cv_coleco", NULL, "1984",
- "Congo Bongo\0", NULL, "Coleco", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_congoRomInfo, cv_congoRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Defender
-
-static struct BurnRomInfo cv_defenderRomDesc[] = {
- { "defender.1", 0x02000, 0xbd96e222, BRF_PRG | BRF_ESS },
- { "defender.2", 0x02000, 0x72541551, BRF_PRG | BRF_ESS },
- { "defender.3", 0x02000, 0x400beaa2, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_defender, cv_defender, cv_coleco)
-STD_ROM_FN(cv_defender)
-
-struct BurnDriver BurnDrvcv_defender = {
- "cv_defender", NULL, "cv_coleco", NULL, "1983",
- "Defender\0", NULL, "Atarisoft", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_defenderRomInfo, cv_defenderRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Donkey Kong (Earlier Version)
-
-static struct BurnRomInfo cv_dkongaRomDesc[] = {
- { "dkonga.1", 0x02000, 0xdcaf20d8, BRF_PRG | BRF_ESS },
- { "dkonga.2", 0x02000, 0x6045f75d, BRF_PRG | BRF_ESS },
- { "dkonga.3", 0x02000, 0x00739499, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_dkonga, cv_dkonga, cv_coleco)
-STD_ROM_FN(cv_dkonga)
-
-struct BurnDriver BurnDrvcv_dkonga = {
- "cv_dkonga", "cv_dkong", "cv_coleco", NULL, "1982",
- "Donkey Kong (Earlier Version)\0", NULL, "Coleco", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_dkongaRomInfo, cv_dkongaRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Frenzy
-
-static struct BurnRomInfo cv_frenzyRomDesc[] = {
- { "frenzy.1", 0x02000, 0x5111bca0, BRF_PRG | BRF_ESS },
- { "frenzy.2", 0x02000, 0x5453c668, BRF_PRG | BRF_ESS },
- { "frenzy.3", 0x02000, 0x0c7bedf0, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_frenzy, cv_frenzy, cv_coleco)
-STD_ROM_FN(cv_frenzy)
-
-struct BurnDriver BurnDrvcv_frenzy = {
- "cv_frenzy", NULL, "cv_coleco", NULL, "1983",
- "Frenzy\0", NULL, "Coleco", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_frenzyRomInfo, cv_frenzyRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Frenzy (Alt 1)
-
-static struct BurnRomInfo cv_frenzyaRomDesc[] = {
- { "frenzy.1", 0x02000, 0x5111bca0, BRF_PRG | BRF_ESS },
- { "frenzy.2", 0x02000, 0x5453c668, BRF_PRG | BRF_ESS },
- { "frenzya.3", 0x02000, 0x2561345b, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_frenzya, cv_frenzya, cv_coleco)
-STD_ROM_FN(cv_frenzya)
-
-struct BurnDriver BurnDrvcv_frenzya = {
- "cv_frenzya", "cv_frenzy", "cv_coleco", NULL, "1983",
- "Frenzy (Alt 1)\0", NULL, "Coleco", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_frenzyaRomInfo, cv_frenzyaRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Frenzy (Alt 2)
-
-static struct BurnRomInfo cv_frenzya2RomDesc[] = {
- { "frenzy.1", 0x02000, 0x5111bca0, BRF_PRG | BRF_ESS },
- { "frenzy.2", 0x02000, 0x5453c668, BRF_PRG | BRF_ESS },
- { "frenzya2.3", 0x02000, 0x9f5f1082, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_frenzya2, cv_frenzya2, cv_coleco)
-STD_ROM_FN(cv_frenzya2)
-
-struct BurnDriver BurnDrvcv_frenzya2 = {
- "cv_frenzya2", "cv_frenzy", "cv_coleco", NULL, "1983",
- "Frenzy (Alt 2)\0", NULL, "Coleco", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_frenzya2RomInfo, cv_frenzya2RomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Front Line
-
-static struct BurnRomInfo cv_frontlinRomDesc[] = {
- { "frontlin.1", 0x02000, 0x7b46a5b7, BRF_PRG | BRF_ESS },
- { "frontlin.2", 0x02000, 0x3ea9a9bd, BRF_PRG | BRF_ESS },
- { "frontlin.3", 0x02000, 0x91530316, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_frontlin, cv_frontlin, cv_coleco)
-STD_ROM_FN(cv_frontlin)
-
-struct BurnDriver BurnDrvcv_frontlin = {
- "cv_frontlin", NULL, "cv_coleco", NULL, "1983",
- "Front Line\0", NULL, "Coleco", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_frontlinRomInfo, cv_frontlinRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Front Line (Alt)
-
-static struct BurnRomInfo cv_frontlinaRomDesc[] = {
- { "frontlina.1", 0x02000, 0x715c764b, BRF_PRG | BRF_ESS },
- { "frontlina.2", 0x02000, 0xeee3a3d3, BRF_PRG | BRF_ESS },
- { "frontlina.3", 0x02000, 0x77885ebd, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_frontlina, cv_frontlina, cv_coleco)
-STD_ROM_FN(cv_frontlina)
-
-struct BurnDriver BurnDrvcv_frontlina = {
- "cv_frontlina", "cv_frontlin", "cv_coleco", NULL, "1983",
- "Front Line (Alt)\0", NULL, "Coleco", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_frontlinaRomInfo, cv_frontlinaRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// The Heist
-
-static struct BurnRomInfo cv_heistRomDesc[] = {
- { "heist.1", 0x02000, 0x34080665, BRF_PRG | BRF_ESS },
- { "heist.2", 0x02000, 0xd5c02ce0, BRF_PRG | BRF_ESS },
- { "heist.3", 0x02000, 0x177a899f, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_heist, cv_heist, cv_coleco)
-STD_ROM_FN(cv_heist)
-
-struct BurnDriver BurnDrvcv_heist = {
- "cv_heist", NULL, "cv_coleco", NULL, "1983",
- "The Heist\0", NULL, "Micro Fun", "ColecoVision",
- NULL, NULL, NULL, NULL,
- 0, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_heistRomInfo, cv_heistRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// The Heist (Alt)
-
-static struct BurnRomInfo cv_heistaRomDesc[] = {
- { "heist.1", 0x02000, 0x34080665, BRF_PRG | BRF_ESS },
- { "heist.2", 0x02000, 0xd5c02ce0, BRF_PRG | BRF_ESS },
- { "heista.3", 0x02000, 0xb196db89, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_heista, cv_heista, cv_coleco)
-STD_ROM_FN(cv_heista)
-
-struct BurnDriver BurnDrvcv_heista = {
- "cv_heista", "cv_heist", "cv_coleco", NULL, "1983",
- "The Heist (Alt)\0", NULL, "Micro Fun", "ColecoVision",
- NULL, NULL, NULL, NULL,
- 0 | BDF_CLONE, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_heistaRomInfo, cv_heistaRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Jungle Hunt
-
-static struct BurnRomInfo cv_junglehRomDesc[] = {
- { "jungleh.1", 0x02000, 0x75179eb9, BRF_PRG | BRF_ESS },
- { "jungleh.2", 0x02000, 0xc6f5bbb2, BRF_PRG | BRF_ESS },
- { "jungleh.3", 0x02000, 0x07911cc8, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_jungleh, cv_jungleh, cv_coleco)
-STD_ROM_FN(cv_jungleh)
-
-struct BurnDriver BurnDrvcv_jungleh = {
- "cv_jungleh", NULL, "cv_coleco", NULL, "1983",
- "Jungle Hunt\0", NULL, "Atarisoft", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_junglehRomInfo, cv_junglehRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Miner 2049er
-
-static struct BurnRomInfo cv_mine2049RomDesc[] = {
- { "mine2049.1", 0x02000, 0xe2814592, BRF_PRG | BRF_ESS },
- { "mine2049.2", 0x02000, 0x3bc36ef5, BRF_PRG | BRF_ESS },
- { "mine2049.3", 0x02000, 0x83722d88, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_mine2049, cv_mine2049, cv_coleco)
-STD_ROM_FN(cv_mine2049)
-
-struct BurnDriver BurnDrvcv_mine2049 = {
- "cv_mine2049", NULL, "cv_coleco", NULL, "1983",
- "Miner 2049er\0", NULL, "Micro Fun", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_mine2049RomInfo, cv_mine2049RomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Miner 2049er (Alt)
-
-static struct BurnRomInfo cv_mine2049aRomDesc[] = {
- { "mine2049a.1", 0x02000, 0x90bd8c1b, BRF_PRG | BRF_ESS },
- { "mine2049a.2", 0x02000, 0xcb0335af, BRF_PRG | BRF_ESS },
- { "mine2049a.3", 0x02000, 0x41ed9918, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_mine2049a, cv_mine2049a, cv_coleco)
-STD_ROM_FN(cv_mine2049a)
-
-struct BurnDriver BurnDrvcv_mine2049a = {
- "cv_mine2049a", "cv_mine2049", "cv_coleco", NULL, "1983",
- "Miner 2049er (Alt)\0", NULL, "Micro Fun", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_mine2049aRomInfo, cv_mine2049aRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Mr. Do!
-
-static struct BurnRomInfo cv_mrdoRomDesc[] = {
- { "mrdo.1", 0x02000, 0xa32a3f5f, BRF_PRG | BRF_ESS },
- { "mrdo.2", 0x02000, 0xd5196bfc, BRF_PRG | BRF_ESS },
- { "mrdo.3", 0x02000, 0x4be41c67, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_mrdo, cv_mrdo, cv_coleco)
-STD_ROM_FN(cv_mrdo)
-
-struct BurnDriver BurnDrvcv_mrdo = {
- "cv_mrdo", NULL, "cv_coleco", NULL, "1983",
- "Mr. Do!\0", NULL, "Coleco", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_mrdoRomInfo, cv_mrdoRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Mr. Do! (Alt)
-
-static struct BurnRomInfo cv_mrdoaRomDesc[] = {
- { "mrdo.1", 0x02000, 0xa32a3f5f, BRF_PRG | BRF_ESS },
- { "mrdo.2", 0x02000, 0xd5196bfc, BRF_PRG | BRF_ESS },
- { "mrdoa.3", 0x02000, 0xd8c0e115, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_mrdoa, cv_mrdoa, cv_coleco)
-STD_ROM_FN(cv_mrdoa)
-
-struct BurnDriver BurnDrvcv_mrdoa = {
- "cv_mrdoa", "cv_mrdo", "cv_coleco", NULL, "1983",
- "Mr. Do! (Alt)\0", NULL, "Coleco", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_mrdoaRomInfo, cv_mrdoaRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Roc 'n Rope
-
-static struct BurnRomInfo cv_rocnropeRomDesc[] = {
- { "rocnrope.1", 0x02000, 0x24d5a53c, BRF_PRG | BRF_ESS },
- { "rocnrope.2", 0x02000, 0x3db8ad55, BRF_PRG | BRF_ESS },
- { "rocnrope.3", 0x02000, 0xc6146a6d, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_rocnrope, cv_rocnrope, cv_coleco)
-STD_ROM_FN(cv_rocnrope)
-
-struct BurnDriver BurnDrvcv_rocnrope = {
- "cv_rocnrope", NULL, "cv_coleco", NULL, "1984",
- "Roc 'n Rope\0", NULL, "Coleco", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_rocnropeRomInfo, cv_rocnropeRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Rocky: Super Action Boxing
-
-static struct BurnRomInfo cv_rockyRomDesc[] = {
- { "rocky.1", 0x02000, 0xa51498f5, BRF_PRG | BRF_ESS },
- { "rocky.2", 0x02000, 0x5a8f2336, BRF_PRG | BRF_ESS },
- { "rocky.3", 0x02000, 0x56fc8d0a, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_rocky, cv_rocky, cv_coleco)
-STD_ROM_FN(cv_rocky)
-
-struct BurnDriver BurnDrvcv_rocky = {
- "cv_rocky", NULL, "cv_coleco", NULL, "1983",
- "Rocky: Super Action Boxing\0", NULL, "Coleco", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_rockyRomInfo, cv_rockyRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Sector Alpha
-
-static struct BurnRomInfo cv_secalphaRomDesc[] = {
- { "secalpha.1", 0x02000, 0x9299539b, BRF_PRG | BRF_ESS },
- { "secalpha.2", 0x02000, 0xc8d6e83d, BRF_PRG | BRF_ESS },
- { "secalpha.3", 0x01000, 0x354a3b2f, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_secalpha, cv_secalpha, cv_coleco)
-STD_ROM_FN(cv_secalpha)
-
-struct BurnDriver BurnDrvcv_secalpha = {
- "cv_secalpha", NULL, "cv_coleco", NULL, "1983",
- "Sector Alpha\0", NULL, "Spectravideo", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_secalphaRomInfo, cv_secalphaRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Sewer Sam
-
-static struct BurnRomInfo cv_sewersamRomDesc[] = {
- { "sewersam.1", 0x02000, 0x7906db21, BRF_PRG | BRF_ESS },
- { "sewersam.2", 0x02000, 0x9ae6324e, BRF_PRG | BRF_ESS },
- { "sewersam.3", 0x02000, 0xa17fc15a, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_sewersam, cv_sewersam, cv_coleco)
-STD_ROM_FN(cv_sewersam)
-
-struct BurnDriver BurnDrvcv_sewersam = {
- "cv_sewersam", NULL, "cv_coleco", NULL, "1984",
- "Sewer Sam\0", NULL, "Interphase", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_sewersamRomInfo, cv_sewersamRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Star Trek: Strategic Operations Simulator
-
-static struct BurnRomInfo cv_startrekRomDesc[] = {
- { "startrek.1", 0x02000, 0x600e431e, BRF_PRG | BRF_ESS },
- { "startrek.2", 0x02000, 0x1d1741aa, BRF_PRG | BRF_ESS },
- { "startrek.3", 0x02000, 0x3fa88549, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_startrek, cv_startrek, cv_coleco)
-STD_ROM_FN(cv_startrek)
-
-struct BurnDriver BurnDrvcv_startrek = {
- "cv_startrek", NULL, "cv_coleco", NULL, "1984",
- "Star Trek: Strategic Operations Simulator \0", NULL, "Coleco", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_startrekRomInfo, cv_startrekRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Subroc
-
-static struct BurnRomInfo cv_subrocRomDesc[] = {
- { "subroc.1", 0x02000, 0x85a94623, BRF_PRG | BRF_ESS },
- { "subroc.2", 0x02000, 0xb558def8, BRF_PRG | BRF_ESS },
- { "subroc.3", 0x02000, 0x9dbbb193, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_subroc, cv_subroc, cv_coleco)
-STD_ROM_FN(cv_subroc)
-
-struct BurnDriver BurnDrvcv_subroc = {
- "cv_subroc", NULL, "cv_coleco", NULL, "1983",
- "Subroc\0", NULL, "Coleco", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_subrocRomInfo, cv_subrocRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Tarzan: From out of the Jungle
-
-static struct BurnRomInfo cv_tarzanRomDesc[] = {
- { "tarzan.1", 0x02000, 0xb7054e41, BRF_PRG | BRF_ESS },
- { "tarzan.2", 0x02000, 0xe3d2a4bb, BRF_PRG | BRF_ESS },
- { "tarzan.3", 0x02000, 0xc0238775, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_tarzan, cv_tarzan, cv_coleco)
-STD_ROM_FN(cv_tarzan)
-
-struct BurnDriver BurnDrvcv_tarzan = {
- "cv_tarzan", NULL, "cv_coleco", NULL, "1983",
- "Tarzan: From out of the Jungle\0", NULL, "Coleco", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_tarzanRomInfo, cv_tarzanRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Victory
-
-static struct BurnRomInfo cv_victoryRomDesc[] = {
- { "victory.1", 0x02000, 0x811389ba, BRF_PRG | BRF_ESS },
- { "victory.2", 0x02000, 0x9a0ffe5c, BRF_PRG | BRF_ESS },
- { "victory.3", 0x02000, 0x0c873fde, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_victory, cv_victory, cv_coleco)
-STD_ROM_FN(cv_victory)
-
-struct BurnDriver BurnDrvcv_victory = {
- "cv_victory", NULL, "cv_coleco", NULL, "1983",
- "Victory\0", NULL, "Coleco", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_victoryRomInfo, cv_victoryRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// War Games
-
-static struct BurnRomInfo cv_wargamesRomDesc[] = {
- { "wargames.1", 0x02000, 0xda4bb2f5, BRF_PRG | BRF_ESS },
- { "wargames.2", 0x02000, 0x4ef201ef, BRF_PRG | BRF_ESS },
- { "wargames.3", 0x02000, 0xb9b1cae9, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_wargames, cv_wargames, cv_coleco)
-STD_ROM_FN(cv_wargames)
-
-struct BurnDriver BurnDrvcv_wargames = {
- "cv_wargames", NULL, "cv_coleco", NULL, "1984",
- "War Games\0", NULL, "Coleco", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_wargamesRomInfo, cv_wargamesRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Zaxxon
-
-static struct BurnRomInfo cv_zaxxonRomDesc[] = {
- { "zaxxon.1", 0x02000, 0x91ff7961, BRF_PRG | BRF_ESS },
- { "zaxxon.2", 0x02000, 0x36dab466, BRF_PRG | BRF_ESS },
- { "zaxxon.3", 0x02000, 0x9498a0c9, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_zaxxon, cv_zaxxon, cv_coleco)
-STD_ROM_FN(cv_zaxxon)
-
-struct BurnDriver BurnDrvcv_zaxxon = {
- "cv_zaxxon", NULL, "cv_coleco", NULL, "1982",
- "Zaxxon\0", NULL, "Coleco", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_zaxxonRomInfo, cv_zaxxonRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// 2010: The Graphic Action Game
-
-static struct BurnRomInfo cv_2010RomDesc[] = {
- { "2010.1", 0x02000, 0xa8820f34, BRF_PRG | BRF_ESS },
- { "2010.2", 0x02000, 0x66f96289, BRF_PRG | BRF_ESS },
- { "2010.3", 0x02000, 0x3c60f243, BRF_PRG | BRF_ESS },
- { "2010.4", 0x02000, 0xa879523b, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_2010, cv_2010, cv_coleco)
-STD_ROM_FN(cv_2010)
-
-struct BurnDriver BurnDrvcv_2010 = {
- "cv_2010", NULL, "cv_coleco", NULL, "1984",
- "2010: The Graphic Action Game\0", NULL, "Coleco", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_2010RomInfo, cv_2010RomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// The Dam Busters
-
-static struct BurnRomInfo cv_dambustRomDesc[] = {
- { "dambust.1", 0x02000, 0x9e82b4ab, BRF_PRG | BRF_ESS },
- { "dambust.2", 0x02000, 0x56a1b71e, BRF_PRG | BRF_ESS },
- { "dambust.3", 0x02000, 0x1b5af735, BRF_PRG | BRF_ESS },
- { "dambust.4", 0x02000, 0x72119879, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_dambust, cv_dambust, cv_coleco)
-STD_ROM_FN(cv_dambust)
-
-struct BurnDriver BurnDrvcv_dambust = {
- "cv_dambust", NULL, "cv_coleco", NULL, "1984",
- "The Dam Busters\0", NULL, "Coleco", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_dambustRomInfo, cv_dambustRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Destructor
-
-static struct BurnRomInfo cv_destructRomDesc[] = {
- { "destruct.1", 0x02000, 0x7026e237, BRF_PRG | BRF_ESS },
- { "destruct.2", 0x02000, 0xc1c0b46c, BRF_PRG | BRF_ESS },
- { "destruct.3", 0x02000, 0xf7737e17, BRF_PRG | BRF_ESS },
- { "destruct.4", 0x02000, 0x87c11b21, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_destruct, cv_destruct, cv_coleco)
-STD_ROM_FN(cv_destruct)
-
-struct BurnDriver BurnDrvcv_destruct = {
- "cv_destruct", NULL, "cv_coleco", NULL, "1984",
- "Destructor\0", NULL, "Coleco", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_destructRomInfo, cv_destructRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// The Dukes of Hazzard
-
-static struct BurnRomInfo cv_hazzardRomDesc[] = {
- { "hazzard.1", 0x02000, 0x1971d9a2, BRF_PRG | BRF_ESS },
- { "hazzard.2", 0x02000, 0x9821ea4a, BRF_PRG | BRF_ESS },
- { "hazzard.3", 0x02000, 0xc3970e2e, BRF_PRG | BRF_ESS },
- { "hazzard.4", 0x02000, 0x3433251a, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_hazzard, cv_hazzard, cv_coleco)
-STD_ROM_FN(cv_hazzard)
-
-struct BurnDriver BurnDrvcv_hazzard = {
- "cv_hazzard", NULL, "cv_coleco", NULL, "1984",
- "The Dukes of Hazzard\0", NULL, "Coleco", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_hazzardRomInfo, cv_hazzardRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Fortune Builder
-
-static struct BurnRomInfo cv_fortuneRomDesc[] = {
- { "fortune.1", 0x02000, 0xb55c5448, BRF_PRG | BRF_ESS },
- { "fortune.2", 0x02000, 0x8d7deaff, BRF_PRG | BRF_ESS },
- { "fortune.3", 0x02000, 0x039604ee, BRF_PRG | BRF_ESS },
- { "fortune.4", 0x02000, 0xdfb4469e, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_fortune, cv_fortune, cv_coleco)
-STD_ROM_FN(cv_fortune)
-
-struct BurnDriver BurnDrvcv_fortune = {
- "cv_fortune", NULL, "cv_coleco", NULL, "1984",
- "Fortune Builder\0", NULL, "Coleco", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_fortuneRomInfo, cv_fortuneRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Spy Hunter
-
-static struct BurnRomInfo cv_spyhuntRomDesc[] = {
- { "spyhunt.1", 0x02000, 0x0a830682, BRF_PRG | BRF_ESS },
- { "spyhunt.2", 0x02000, 0x46b6d735, BRF_PRG | BRF_ESS },
- { "spyhunt.3", 0x02000, 0x09474158, BRF_PRG | BRF_ESS },
- { "spyhunt.4", 0x02000, 0xa5b57758, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_spyhunt, cv_spyhunt, cv_coleco)
-STD_ROM_FN(cv_spyhunt)
-
-struct BurnDriver BurnDrvcv_spyhunt = {
- "cv_spyhunt", NULL, "cv_coleco", NULL, "1984",
- "Spy Hunter\0", NULL, "Coleco", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_spyhuntRomInfo, cv_spyhuntRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Super Action Football
-
-static struct BurnRomInfo cv_safootbRomDesc[] = {
- { "safootb.1", 0x02000, 0xf1fdec05, BRF_PRG | BRF_ESS },
- { "safootb.2", 0x02000, 0x84104709, BRF_PRG | BRF_ESS },
- { "safootb.3", 0x02000, 0x496d3acb, BRF_PRG | BRF_ESS },
- { "safootb.4", 0x02000, 0xdcc8042d, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_safootb, cv_safootb, cv_coleco)
-STD_ROM_FN(cv_safootb)
-
-struct BurnDriver BurnDrvcv_safootb = {
- "cv_safootb", NULL, "cv_coleco", NULL, "1984",
- "Super Action Football\0", NULL, "Coleco", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_safootbRomInfo, cv_safootbRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Super Action Football (Super Action Soccer clone)
-
-static struct BurnRomInfo cv_saftsoccRomDesc[] = {
- { "saftsocc.1", 0x02000, 0xfb9f52cb, BRF_PRG | BRF_ESS },
- { "sasoccer.2", 0x02000, 0x014ecf5f, BRF_PRG | BRF_ESS },
- { "sasoccer.3", 0x02000, 0x780e3e49, BRF_PRG | BRF_ESS },
- { "saftsocc.4", 0x02000, 0xb23e1847, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_saftsocc, cv_saftsocc, cv_coleco)
-STD_ROM_FN(cv_saftsocc)
-
-struct BurnDriver BurnDrvcv_saftsocc = {
- "cv_saftsocc", "cv_sasoccer", "cv_coleco", NULL, "1984",
- "Super Action Football (Super Action Soccer clone)\0", NULL, "Coleco", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_saftsoccRomInfo, cv_saftsoccRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Super Action Soccer
-
-static struct BurnRomInfo cv_sasoccerRomDesc[] = {
- { "sasoccer.1", 0x02000, 0x17447e87, BRF_PRG | BRF_ESS },
- { "sasoccer.2", 0x02000, 0x014ecf5f, BRF_PRG | BRF_ESS },
- { "sasoccer.3", 0x02000, 0x780e3e49, BRF_PRG | BRF_ESS },
- { "sasoccer.4", 0x02000, 0x4f5ce13d, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_sasoccer, cv_sasoccer, cv_coleco)
-STD_ROM_FN(cv_sasoccer)
-
-struct BurnDriver BurnDrvcv_sasoccer = {
- "cv_sasoccer", NULL, "cv_coleco", NULL, "1984",
- "Super Action Soccer\0", NULL, "Coleco", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_sasoccerRomInfo, cv_sasoccerRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Tapper
-
-static struct BurnRomInfo cv_tapperRomDesc[] = {
- { "tapper.1", 0x02000, 0x7f8b5222, BRF_PRG | BRF_ESS },
- { "tapper.2", 0x02000, 0xe2ef863f, BRF_PRG | BRF_ESS },
- { "tapper.3", 0x02000, 0xc14b28fa, BRF_PRG | BRF_ESS },
- { "tapper.4", 0x02000, 0xd6a41476, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_tapper, cv_tapper, cv_coleco)
-STD_ROM_FN(cv_tapper)
-
-struct BurnDriver BurnDrvcv_tapper = {
- "cv_tapper", NULL, "cv_coleco", NULL, "1984",
- "Tapper\0", NULL, "Coleco", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_tapperRomInfo, cv_tapperRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// 2010: The Graphic Action Game (Prototype v54)
-
-static struct BurnRomInfo cv_2010pRomDesc[] = {
- { "act2010-54-chip1-11-9-cd7e.bin", 0x02000, 0xd8a55441, BRF_PRG | BRF_ESS },
- { "act2010-54-chip2-11-9-e822.bin", 0x02000, 0xcbba190e, BRF_PRG | BRF_ESS },
- { "act2010-54-chip3-11-9-06ca.bin", 0x02000, 0x9e13e0a1, BRF_PRG | BRF_ESS },
- { "act2010-54-chip4-11-9-e758.bin", 0x02000, 0xa3edc192, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_2010p, cv_2010p, cv_coleco)
-STD_ROM_FN(cv_2010p)
-
-struct BurnDriver BurnDrvcv_2010p = {
- "cv_2010p", "cv_2010", "cv_coleco", NULL, "1984",
- "2010: The Graphic Action Game (Prototype v54)\0", NULL, "Coleco", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_2010pRomInfo, cv_2010pRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// 2010: The Graphic Action Game (Prototype v44)
-
-static struct BurnRomInfo cv_2010p1RomDesc[] = {
- { "act2010-rv44-chip1.bin", 0x02000, 0xd9dc972f, BRF_PRG | BRF_ESS },
- { "act2010-rv44-chip2.bin", 0x02000, 0x84288fcb, BRF_PRG | BRF_ESS },
- { "act2010-rv44-chip3.bin", 0x02000, 0x57807547, BRF_PRG | BRF_ESS },
- { "act2010-rv44-chip4.bin", 0x02000, 0x44e900fc, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_2010p1, cv_2010p1, cv_coleco)
-STD_ROM_FN(cv_2010p1)
-
-struct BurnDriver BurnDrvcv_2010p1 = {
- "cv_2010p1", "cv_2010", "cv_coleco", NULL, "1984",
- "2010: The Graphic Action Game (Prototype v44)\0", NULL, "Coleco", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_2010p1RomInfo, cv_2010p1RomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// The Berenstain Bears (Prototype)
-
-static struct BurnRomInfo cv_bbearsRomDesc[] = {
- { "bbears.bin", 0x02000, 0x18864abc, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_bbears, cv_bbears, cv_coleco)
-STD_ROM_FN(cv_bbears)
-
-struct BurnDriver BurnDrvcv_bbears = {
- "cv_bbears", NULL, "cv_coleco", NULL, "1984",
- "The Berenstain Bears (Prototype)\0", NULL, "Coleco", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_bbearsRomInfo, cv_bbearsRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Burgertime (Prototype)
-
-static struct BurnRomInfo cv_btimemRomDesc[] = {
- { "btimem.1", 0x02000, 0x4e943aeb, BRF_PRG | BRF_ESS },
- { "btimem.2", 0x02000, 0xd7e011f2, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_btimem, cv_btimem, cv_coleco)
-STD_ROM_FN(cv_btimem)
-
-struct BurnDriver BurnDrvcv_btimem = {
- "cv_btimem", "cv_btime", "cv_coleco", NULL, "1983",
- "Burgertime (Prototype)\0", NULL, "Mattel", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_btimemRomInfo, cv_btimemRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Cabbage Patch Kids: Adventure in the Park (Prototype)
-
-static struct BurnRomInfo cv_cabbagep1RomDesc[] = {
- { "cabbagep1.1", 0x02000, 0xe7214974, BRF_PRG | BRF_ESS },
- { "cabbagep1.2", 0x02000, 0xbf35f649, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_cabbagep1, cv_cabbagep1, cv_coleco)
-STD_ROM_FN(cv_cabbagep1)
-
-struct BurnDriver BurnDrvcv_cabbagep1 = {
- "cv_cabbagep1", "cv_cabbage", "cv_coleco", NULL, "1984",
- "Cabbage Patch Kids: Adventure in the Park (Prototype)\0", NULL, "Coleco", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_cabbagep1RomInfo, cv_cabbagep1RomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Cabbage Patch Kids: Adventure in the Park (Prototype, Alt)
-
-static struct BurnRomInfo cv_cabbagep2RomDesc[] = {
- { "cabbage-patch-chip1-6-30.bin", 0x02000, 0x2b793712, BRF_PRG | BRF_ESS },
- { "cabbage-patch-chip2-6-30.bin", 0x02000, 0xd4ff94a5, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_cabbagep2, cv_cabbagep2, cv_coleco)
-STD_ROM_FN(cv_cabbagep2)
-
-struct BurnDriver BurnDrvcv_cabbagep2 = {
- "cv_cabbagep2", "cv_cabbage", "cv_coleco", NULL, "1984",
- "Cabbage Patch Kids: Adventure in the Park (Prototype, Alt)\0", NULL, "Coleco", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_cabbagep2RomInfo, cv_cabbagep2RomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Dig Dug (Prototype)
-
-static struct BurnRomInfo cv_digdugRomDesc[] = {
- { "digdug.1", 0x02000, 0xe13a6484, BRF_PRG | BRF_ESS },
- { "digdug.2", 0x02000, 0x82bfa6a0, BRF_PRG | BRF_ESS },
- { "digdug.3", 0x02000, 0x57f347e0, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_digdug, cv_digdug, cv_coleco)
-STD_ROM_FN(cv_digdug)
-
-struct BurnDriver BurnDrvcv_digdug = {
- "cv_digdug", NULL, "cv_coleco", NULL, "1984",
- "Dig Dug (Prototype)\0", NULL, "Atarisoft", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_digdugRomInfo, cv_digdugRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Dragon's Lair (Prototype, 0416)
-
-static struct BurnRomInfo cv_dlairRomDesc[] = {
- { "dragon80-chip1-4-16-ec4a.bin", 0x02000, 0x950950d0, BRF_PRG | BRF_ESS },
- { "dragon80-chip2-4-16-ec4a.bin", 0x02000, 0x8a778f5a, BRF_PRG | BRF_ESS },
- { "dragon80-chip3-4-16-ec4a.bin", 0x02000, 0x8eec1020, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_dlair, cv_dlair, cv_coleco)
-STD_ROM_FN(cv_dlair)
-
-struct BurnDriver BurnDrvcv_dlair = {
- "cv_dlair", NULL, "cv_coleco", NULL, "1984",
- "Dragon's Lair (Prototype, 0416)\0", NULL, "Coleco", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_dlairRomInfo, cv_dlairRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Escape from the Mindmaster (Prototype)
-
-static struct BurnRomInfo cv_mindmstrRomDesc[] = {
- { "mindmstr .1", 0x02000, 0xb8280950, BRF_PRG | BRF_ESS },
- { "mindmstr.2", 0x02000, 0x6cade290, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_mindmstr, cv_mindmstr, cv_coleco)
-STD_ROM_FN(cv_mindmstr)
-
-struct BurnDriver BurnDrvcv_mindmstr = {
- "cv_mindmstr", NULL, "cv_coleco", NULL, "1983",
- "Escape from the Mindmaster (Prototype)\0", NULL, "Epyx", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_mindmstrRomInfo, cv_mindmstrRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Fall Guy (Prototype)
-
-static struct BurnRomInfo cv_fallguyRomDesc[] = {
- { "fallguy.1", 0x02000, 0xf77d3ffd, BRF_PRG | BRF_ESS },
- { "fallguy.2", 0x02000, 0xc85c0f58, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_fallguy, cv_fallguy, cv_coleco)
-STD_ROM_FN(cv_fallguy)
-
-struct BurnDriver BurnDrvcv_fallguy = {
- "cv_fallguy", NULL, "cv_coleco", NULL, "1983",
- "Fall Guy (Prototype)\0", NULL, "Fox Video Games", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_fallguyRomInfo, cv_fallguyRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Joust (Prototype)
-
-static struct BurnRomInfo cv_joustRomDesc[] = {
- { "joust.1", 0x02000, 0x99402515, BRF_PRG | BRF_ESS },
- { "joust.2", 0x02000, 0x11ef44b8, BRF_PRG | BRF_ESS },
- { "joust.3", 0x02000, 0x0754fb6b, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_joust, cv_joust, cv_coleco)
-STD_ROM_FN(cv_joust)
-
-struct BurnDriver BurnDrvcv_joust = {
- "cv_joust", NULL, "cv_coleco", NULL, "1983",
- "Joust (Prototype)\0", NULL, "Atarisoft", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_joustRomInfo, cv_joustRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// M*A*S*H (Prototype)
-
-static struct BurnRomInfo cv_mashRomDesc[] = {
- { "mash.1", 0x02000, 0x1bdfdaa5, BRF_PRG | BRF_ESS },
- { "mash.2", 0x02000, 0x55af024c, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_mash, cv_mash, cv_coleco)
-STD_ROM_FN(cv_mash)
-
-struct BurnDriver BurnDrvcv_mash = {
- "cv_mash", NULL, "cv_coleco", NULL, "1983",
- "M*A*S*H (Prototype)\0", NULL, "Fox Video Games", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_mashRomInfo, cv_mashRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Orbit (Prototype)
-
-static struct BurnRomInfo cv_orbitRomDesc[] = {
- { "orbit.bin", 0x02000, 0x2cc6f4aa, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_orbit, cv_orbit, cv_coleco)
-STD_ROM_FN(cv_orbit)
-
-struct BurnDriver BurnDrvcv_orbit = {
- "cv_orbit", NULL, "cv_coleco", NULL, "1983",
- "Orbit (Prototype)\0", NULL, "Parker Brothers", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_orbitRomInfo, cv_orbitRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Pac-Man (Prototype)
-
-static struct BurnRomInfo cv_pacmanRomDesc[] = {
- { "pacman.1", 0x02000, 0xc0b0689d, BRF_PRG | BRF_ESS },
- { "pacman.2", 0x02000, 0xcb94e964, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_pacman, cv_pacman, cv_coleco)
-STD_ROM_FN(cv_pacman)
-
-struct BurnDriver BurnDrvcv_pacman = {
- "cv_pacman", NULL, "cv_coleco", NULL, "1983",
- "Pac-Man (Prototype)\0", NULL, "Atarisoft", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_pacmanRomInfo, cv_pacmanRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Porky's (Prototype)
-
-static struct BurnRomInfo cv_porkysRomDesc[] = {
- { "porkys.1", 0x02000, 0xf5aa5a81, BRF_PRG | BRF_ESS },
- { "porkys.2", 0x02000, 0x6b1f73a3, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_porkys, cv_porkys, cv_coleco)
-STD_ROM_FN(cv_porkys)
-
-struct BurnDriver BurnDrvcv_porkys = {
- "cv_porkys", NULL, "cv_coleco", NULL, "1983",
- "Porky's (Prototype)\0", NULL, "Fox Video Games", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_porkysRomInfo, cv_porkysRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Power Lords: Quest for Volcan (Prototype)
-
-static struct BurnRomInfo cv_powerRomDesc[] = {
- { "power.1", 0x02000, 0x1137001f, BRF_PRG | BRF_ESS },
- { "power.2", 0x02000, 0x4c872266, BRF_PRG | BRF_ESS },
- { "power.3", 0x02000, 0x5f20b4e1, BRF_PRG | BRF_ESS },
- { "power.4", 0x02000, 0x560207f3, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_power, cv_power, cv_coleco)
-STD_ROM_FN(cv_power)
-
-struct BurnDriver BurnDrvcv_power = {
- "cv_power", NULL, "cv_coleco", NULL, "1984",
- "Power Lords: Quest for Volcan (Prototype)\0", NULL, "Probe 2000", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_powerRomInfo, cv_powerRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Smurf Play and Learn (Prototype)
-
-static struct BurnRomInfo cv_smurfplyRomDesc[] = {
- { "smurfply.1", 0x02000, 0x1397a474, BRF_PRG | BRF_ESS },
- { "smurfply.2", 0x02000, 0xa51e1410, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_smurfply, cv_smurfply, cv_coleco)
-STD_ROM_FN(cv_smurfply)
-
-struct BurnDriver BurnDrvcv_smurfply = {
- "cv_smurfply", NULL, "cv_coleco", NULL, "1982",
- "Smurf Play and Learn (Prototype)\0", NULL, "Coleco", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_smurfplyRomInfo, cv_smurfplyRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Spy Hunter (Prototype, v22)
-
-static struct BurnRomInfo cv_spyhuntpRomDesc[] = {
- { "spyr22-aaad-11-12-chip1.bin", 0x02000, 0xf8fd0e1c, BRF_PRG | BRF_ESS },
- { "spyrv22-7f14-11-12-chip2.bin", 0x02000, 0xff749b25, BRF_PRG | BRF_ESS },
- { "spyrv22-f73b-11-12-chip3.bin", 0x02000, 0xa45ff169, BRF_PRG | BRF_ESS },
- { "spyrv22-b3b4-11-12-chip4.bin", 0x02000, 0xda895d9c, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_spyhuntp, cv_spyhuntp, cv_coleco)
-STD_ROM_FN(cv_spyhuntp)
-
-struct BurnDriver BurnDrvcv_spyhuntp = {
- "cv_spyhuntp", "cv_spyhunt", "cv_coleco", NULL, "1984",
- "Spy Hunter (Prototype, v22)\0", NULL, "Coleco", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_spyhuntpRomInfo, cv_spyhuntpRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Spy Hunter (Prototype, v13)
-
-static struct BurnRomInfo cv_spyhuntp1RomDesc[] = {
- { "spy13-chip1.bin", 0x02000, 0x01d34c94, BRF_PRG | BRF_ESS },
- { "spy13-chip2.bin", 0x02000, 0x1aabc54a, BRF_PRG | BRF_ESS },
- { "spy13-chip3.bin", 0x02000, 0xbd730c9f, BRF_PRG | BRF_ESS },
- { "spy13-chip4.bin", 0x02000, 0xc85c6303, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_spyhuntp1, cv_spyhuntp1, cv_coleco)
-STD_ROM_FN(cv_spyhuntp1)
-
-struct BurnDriver BurnDrvcv_spyhuntp1 = {
- "cv_spyhuntp1", "cv_spyhunt", "cv_coleco", NULL, "1984",
- "Spy Hunter (Prototype, v13)\0", NULL, "Coleco", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_spyhuntp1RomInfo, cv_spyhuntp1RomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Steamroller (Prototype)
-
-static struct BurnRomInfo cv_steamRomDesc[] = {
- { "steam.1", 0x02000, 0xdd4f0a05, BRF_PRG | BRF_ESS },
- { "steam.2", 0x02000, 0x0bf43529, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_steam, cv_steam, cv_coleco)
-STD_ROM_FN(cv_steam)
-
-struct BurnDriver BurnDrvcv_steam = {
- "cv_steam", NULL, "cv_coleco", NULL, "1984",
- "Steamroller (Prototype)\0", NULL, "Activision", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_steamRomInfo, cv_steamRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Super DK! (Prototype)
-
-static struct BurnRomInfo cv_superdkRomDesc[] = {
- { "superdk.1", 0x02000, 0x36253de5, BRF_PRG | BRF_ESS },
- { "superdk.2", 0x02000, 0x88819fa6, BRF_PRG | BRF_ESS },
- { "superdk.3", 0x02000, 0x7e3889f6, BRF_PRG | BRF_ESS },
- { "superdk.4", 0x02000, 0xcd99ed49, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_superdk, cv_superdk, cv_coleco)
-STD_ROM_FN(cv_superdk)
-
-struct BurnDriver BurnDrvcv_superdk = {
- "cv_superdk", NULL, "cv_coleco", NULL, "1982",
- "Super DK! (Prototype)\0", NULL, "Nintendo", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_superdkRomInfo, cv_superdkRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Sword and Sorcerer (Prototype)
-
-static struct BurnRomInfo cv_swordRomDesc[] = {
- { "sword-chip1-a176.bin", 0x02000, 0xa1548994, BRF_PRG | BRF_ESS },
- { "sword-chip2-d5ba.bin", 0x02000, 0x1d03dfae, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_sword, cv_sword, cv_coleco)
-STD_ROM_FN(cv_sword)
-
-struct BurnDriver BurnDrvcv_sword = {
- "cv_sword", NULL, "cv_coleco", NULL, "1983",
- "Sword and Sorcerer (Prototype)\0", NULL, "Coleco", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_swordRomInfo, cv_swordRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Video Hustler (Prototype)
-
-static struct BurnRomInfo cv_hustlerRomDesc[] = {
- { "video.bin", 0x02000, 0xa9177b20, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_hustler, cv_hustler, cv_coleco)
-STD_ROM_FN(cv_hustler)
-
-struct BurnDriver BurnDrvcv_hustler = {
- "cv_hustler", NULL, "cv_coleco", NULL, "1984",
- "Video Hustler (Prototype)\0", NULL, "Coleco", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_hustlerRomInfo, cv_hustlerRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Video Hustler (Prototype, 19840727)
-
-static struct BurnRomInfo cv_hustler1RomDesc[] = {
- { "hustler-7-27-84-8c61.bin", 0x02000, 0x841d168f, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_hustler1, cv_hustler1, cv_coleco)
-STD_ROM_FN(cv_hustler1)
-
-struct BurnDriver BurnDrvcv_hustler1 = {
- "cv_hustler1", "cv_hustler", "cv_coleco", NULL, "1984",
- "Video Hustler (Prototype, 19840727)\0", NULL, "Konami", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_hustler1RomInfo, cv_hustler1RomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// War Games (Prototype, 0417)
-
-static struct BurnRomInfo cv_wargamespRomDesc[] = {
- { "wargams17-chip1-4-17-c44a.bin", 0x02000, 0xda4bb2f5, BRF_PRG | BRF_ESS },
- { "wargams17-chip2-4-17-c44a.bin", 0x02000, 0x4ef201ef, BRF_PRG | BRF_ESS },
- { "wargams17-chip3-4-17-c44a.bin", 0x02000, 0x2a95379b, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_wargamesp, cv_wargamesp, cv_coleco)
-STD_ROM_FN(cv_wargamesp)
-
-struct BurnDriver BurnDrvcv_wargamesp = {
- "cv_wargamesp", "cv_wargames", "cv_coleco", NULL, "1984",
- "War Games (Prototype, 0417)\0", NULL, "Coleco", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_wargamespRomInfo, cv_wargamespRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// The Yolks on You (Prototype)
-
-static struct BurnRomInfo cv_yolkRomDesc[] = {
- { "yolk.1", 0x02000, 0xf7220275, BRF_PRG | BRF_ESS },
- { "yolk.2", 0x02000, 0x06bce2fc, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_yolk, cv_yolk, cv_coleco)
-STD_ROM_FN(cv_yolk)
-
-struct BurnDriver BurnDrvcv_yolk = {
- "cv_yolk", NULL, "cv_coleco", NULL, "1983",
- "The Yolks on You (Prototype)\0", NULL, "Fox Video Games", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_yolkRomInfo, cv_yolkRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// CBS Colecovision Monitor Test
-
-static struct BurnRomInfo cv_cbsmonRomDesc[] = {
- { "cbsmon.1", 0x02000, 0x1cc13594, BRF_PRG | BRF_ESS },
- { "cbsmon.2", 0x02000, 0x3aa93ef3, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_cbsmon, cv_cbsmon, cv_coleco)
-STD_ROM_FN(cv_cbsmon)
-
-struct BurnDriver BurnDrvcv_cbsmon = {
- "cv_cbsmon", NULL, "cv_coleco", NULL, "1982",
- "CBS Colecovision Monitor Test\0", NULL, "CBS", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_cbsmonRomInfo, cv_cbsmonRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Final Test Cartridge (Prototype)
-
-static struct BurnRomInfo cv_finaltstRomDesc[] = {
- { "colecovision final test (1982) (coleco).rom", 0x02000, 0x3ae4b58c, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_finaltst, cv_finaltst, cv_coleco)
-STD_ROM_FN(cv_finaltst)
-
-struct BurnDriver BurnDrvcv_finaltst = {
- "cv_finaltst", NULL, "cv_coleco", NULL, "1982",
- "Final Test Cartridge (Prototype)\0", NULL, "Coleco", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_finaltstRomInfo, cv_finaltstRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Super Controller Test Cartridge
-
-static struct BurnRomInfo cv_suprtestRomDesc[] = {
- { "super action controller tester (1982) (nuvatec).rom", 0x02000, 0xd206fe58, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_suprtest, cv_suprtest, cv_coleco)
-STD_ROM_FN(cv_suprtest)
-
-struct BurnDriver BurnDrvcv_suprtest = {
- "cv_suprtest", NULL, "cv_coleco", NULL, "1983",
- "Super Controller Test Cartridge\0", NULL, "Coleco", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_suprtestRomInfo, cv_suprtestRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Music Box (Demo)
-
-static struct BurnRomInfo cv_musicboxRomDesc[] = {
- { "musicbox.1", 0x02000, 0x4557ed22, BRF_PRG | BRF_ESS },
- { "musicbox.2", 0x02000, 0x5f40d58b, BRF_PRG | BRF_ESS },
- { "musicbox.3", 0x02000, 0x0ab26aaa, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_musicbox, cv_musicbox, cv_coleco)
-STD_ROM_FN(cv_musicbox)
-
-struct BurnDriver BurnDrvcv_musicbox = {
- "cv_musicbox", NULL, "cv_coleco", NULL, "1987",
- "Music Box (Demo)\0", NULL, "Coleco", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_musicboxRomInfo, cv_musicboxRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Dance Fantasy
-
-static struct BurnRomInfo cv_dncfntsyRomDesc[] = {
- { "dncfntsy.1", 0x02000, 0xbff86a98, BRF_PRG | BRF_ESS },
- { "dncfntsy.2", 0x02000, 0xb4293435, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_dncfntsy, cv_dncfntsy, cv_coleco)
-STD_ROM_FN(cv_dncfntsy)
-
-struct BurnDriver BurnDrvcv_dncfntsy = {
- "cv_dncfntsy", NULL, "cv_coleco", NULL, "1984",
- "Dance Fantasy\0", NULL, "Fisher-Price", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_dncfntsyRomInfo, cv_dncfntsyRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Facemaker
-
-static struct BurnRomInfo cv_facemakrRomDesc[] = {
- { "facemakr.1", 0x02000, 0xec9dfb07, BRF_PRG | BRF_ESS },
- { "facemakr.2", 0x02000, 0xb4293435, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_facemakr, cv_facemakr, cv_coleco)
-STD_ROM_FN(cv_facemakr)
-
-struct BurnDriver BurnDrvcv_facemakr = {
- "cv_facemakr", NULL, "cv_coleco", NULL, "1983",
- "Facemaker\0", NULL, "Spinnaker Software", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_facemakrRomInfo, cv_facemakrRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Fraction Fever
-
-static struct BurnRomInfo cv_fracfevrRomDesc[] = {
- { "fracfevr.1", 0x02000, 0x964db3bc, BRF_PRG | BRF_ESS },
- { "fracfevr.2", 0x02000, 0xb4293435, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_fracfevr, cv_fracfevr, cv_coleco)
-STD_ROM_FN(cv_fracfevr)
-
-struct BurnDriver BurnDrvcv_fracfevr = {
- "cv_fracfevr", NULL, "cv_coleco", NULL, "1983",
- "Fraction Fever\0", NULL, "Spinnaker Software", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_fracfevrRomInfo, cv_fracfevrRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Juke Box
-
-static struct BurnRomInfo cv_jukeboxRomDesc[] = {
- { "jukebox.1", 0x02000, 0xa5511418, BRF_PRG | BRF_ESS },
- { "jukebox.2", 0x02000, 0xb4293435, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_jukebox, cv_jukebox, cv_coleco)
-STD_ROM_FN(cv_jukebox)
-
-struct BurnDriver BurnDrvcv_jukebox = {
- "cv_jukebox", NULL, "cv_coleco", NULL, "1984",
- "Juke Box\0", NULL, "Spinnaker Software Corp", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_jukeboxRomInfo, cv_jukeboxRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Memory Manor
-
-static struct BurnRomInfo cv_memmanorRomDesc[] = {
- { "memmanor.1", 0x02000, 0xbab520ea, BRF_PRG | BRF_ESS },
- { "memmanor.2", 0x02000, 0xb4293435, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_memmanor, cv_memmanor, cv_coleco)
-STD_ROM_FN(cv_memmanor)
-
-struct BurnDriver BurnDrvcv_memmanor = {
- "cv_memmanor", NULL, "cv_coleco", NULL, "1984",
- "Memory Manor\0", NULL, "Fisher-Price", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_memmanorRomInfo, cv_memmanorRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Skiing
-
-static struct BurnRomInfo cv_skiingRomDesc[] = {
- { "skiing.1", 0x02000, 0x4e1fb1c7, BRF_PRG | BRF_ESS },
- { "skiing.2", 0x02000, 0xb4293435, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_skiing, cv_skiing, cv_coleco)
-STD_ROM_FN(cv_skiing)
-
-struct BurnDriver BurnDrvcv_skiing = {
- "cv_skiing", NULL, "cv_coleco", NULL, "1986",
- "Skiing\0", NULL, "Telegames", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_skiingRomInfo, cv_skiingRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Alcazar: The Forgotten Fortress
-
-static struct BurnRomInfo cv_alcazarRomDesc[] = {
- { "alcazar.1", 0x02000, 0xe49113c8, BRF_PRG | BRF_ESS },
- { "alcazar.2", 0x02000, 0x4d89160d, BRF_PRG | BRF_ESS },
- { "alcazar.3", 0x02000, 0xb4293435, BRF_PRG | BRF_ESS },
- { "alcazar.4", 0x02000, 0xb4293435, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_alcazar, cv_alcazar, cv_coleco)
-STD_ROM_FN(cv_alcazar)
-
-struct BurnDriver BurnDrvcv_alcazar = {
- "cv_alcazar", NULL, "cv_coleco", NULL, "1985",
- "Alcazar: The Forgotten Fortress\0", NULL, "Telegames", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_alcazarRomInfo, cv_alcazarRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Cabbage Patch Kids Picture Show
-
-static struct BurnRomInfo cv_cabbshowRomDesc[] = {
- { "cabbshow.1", 0x02000, 0x5d3c41a7, BRF_PRG | BRF_ESS },
- { "cabbshow.2", 0x02000, 0xfbd2e110, BRF_PRG | BRF_ESS },
- { "cabbshow.3", 0x02000, 0x17295ffa, BRF_PRG | BRF_ESS },
- { "cabbshow.4", 0x02000, 0xb4293435, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_cabbshow, cv_cabbshow, cv_coleco)
-STD_ROM_FN(cv_cabbshow)
-
-struct BurnDriver BurnDrvcv_cabbshow = {
- "cv_cabbshow", NULL, "cv_coleco", NULL, "1984",
- "Cabbage Patch Kids Picture Show\0", NULL, "Coleco", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_cabbshowRomInfo, cv_cabbshowRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Galaxian
-
-static struct BurnRomInfo cv_galaxianRomDesc[] = {
- { "galaxian.1", 0x02000, 0x7d84e0e3, BRF_PRG | BRF_ESS },
- { "galaxian.2", 0x02000, 0x9390df8b, BRF_PRG | BRF_ESS },
- { "galaxian.3", 0x02000, 0xdd5465ce, BRF_PRG | BRF_ESS },
- { "galaxian.4", 0x02000, 0xb4293435, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_galaxian, cv_galaxian, cv_coleco)
-STD_ROM_FN(cv_galaxian)
-
-struct BurnDriver BurnDrvcv_galaxian = {
- "cv_galaxian", NULL, "cv_coleco", NULL, "1983",
- "Galaxian\0", NULL, "Atarisoft", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_galaxianRomInfo, cv_galaxianRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Galaxian (Alt)
-
-static struct BurnRomInfo cv_galaxianaRomDesc[] = {
- { "galaxian.1", 0x02000, 0x7d84e0e3, BRF_PRG | BRF_ESS },
- { "galaxiana.2", 0x02000, 0x4e701bc1, BRF_PRG | BRF_ESS },
- { "galaxiana.3", 0x02000, 0x96acb931, BRF_PRG | BRF_ESS },
- { "galaxian.4", 0x02000, 0xb4293435, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_galaxiana, cv_galaxiana, cv_coleco)
-STD_ROM_FN(cv_galaxiana)
-
-struct BurnDriver BurnDrvcv_galaxiana = {
- "cv_galaxiana", "cv_galaxian", "cv_coleco", NULL, "1983",
- "Galaxian (Alt)\0", NULL, "Atarisoft", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_galaxianaRomInfo, cv_galaxianaRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Monkey Academy
-
-static struct BurnRomInfo cv_monkeyRomDesc[] = {
- { "monkey.1", 0x02000, 0xfcd8e18b, BRF_PRG | BRF_ESS },
- { "monkey.2", 0x02000, 0xc1effcb3, BRF_PRG | BRF_ESS },
- { "monkey.3", 0x02000, 0x5594b4c4, BRF_PRG | BRF_ESS },
- { "monkey.4", 0x02000, 0xb4293435, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_monkey, cv_monkey, cv_coleco)
-STD_ROM_FN(cv_monkey)
-
-struct BurnDriver BurnDrvcv_monkey = {
- "cv_monkey", NULL, "cv_coleco", NULL, "1984",
- "Monkey Academy\0", NULL, "Coleco", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_monkeyRomInfo, cv_monkeyRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Smurf Paint 'n' Play Workshop
-
-static struct BurnRomInfo cv_smurfpntRomDesc[] = {
- { "smurfpnt.1", 0x02000, 0xb5cd2fb4, BRF_PRG | BRF_ESS },
- { "smurfpnt.2", 0x02000, 0xe4197181, BRF_PRG | BRF_ESS },
- { "smurfpnt.3", 0x02000, 0xa0e1ab06, BRF_PRG | BRF_ESS },
- { "smurfpnt.4", 0x02000, 0xb4293435, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_smurfpnt, cv_smurfpnt, cv_coleco)
-STD_ROM_FN(cv_smurfpnt)
-
-struct BurnDriver BurnDrvcv_smurfpnt = {
- "cv_smurfpnt", NULL, "cv_coleco", NULL, "1983",
- "Smurf Paint 'n' Play Workshop\0", NULL, "Coleco", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_smurfpntRomInfo, cv_smurfpntRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Super Action Baseball
-
-static struct BurnRomInfo cv_sabasebRomDesc[] = {
- { "sabaseb.1", 0x02000, 0x2061515d, BRF_PRG | BRF_ESS },
- { "sabaseb.2", 0x02000, 0xf29c94e3, BRF_PRG | BRF_ESS },
- { "sabaseb.3", 0x02000, 0xa4713651, BRF_PRG | BRF_ESS },
- { "sabaseb.4", 0x02000, 0xb4293435, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_sabaseb, cv_sabaseb, cv_coleco)
-STD_ROM_FN(cv_sabaseb)
-
-struct BurnDriver BurnDrvcv_sabaseb = {
- "cv_sabaseb", NULL, "cv_coleco", NULL, "1983",
- "Super Action Baseball\0", NULL, "Coleco", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_sabasebRomInfo, cv_sabasebRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Super DK! Junior (Prototype)
-
-static struct BurnRomInfo cv_suprdkjrRomDesc[] = {
- { "suprdkjr.1", 0x02000, 0x85ecf7e3, BRF_PRG | BRF_ESS },
- { "suprdkjr.2", 0x02000, 0x5f63bc3c, BRF_PRG | BRF_ESS },
- { "suprdkjr.3", 0x02000, 0x6d5676fa, BRF_PRG | BRF_ESS },
- { "suprdkjr.4", 0x02000, 0xb4293435, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_suprdkjr, cv_suprdkjr, cv_coleco)
-STD_ROM_FN(cv_suprdkjr)
-
-struct BurnDriver BurnDrvcv_suprdkjr = {
- "cv_suprdkjr", NULL, "cv_coleco", NULL, "1983",
- "Super DK! Junior (Prototype)\0", NULL, "Nintendo", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_suprdkjrRomInfo, cv_suprdkjrRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Tunnels and Trolls (Demo)
-
-static struct BurnRomInfo cv_tunnelsRomDesc[] = {
- { "tunnels.1", 0x02000, 0x36a12145, BRF_PRG | BRF_ESS },
- { "tunnels.2", 0x02000, 0xb0abdb32, BRF_PRG | BRF_ESS },
- { "tunnels.3", 0x02000, 0x53cc4957, BRF_PRG | BRF_ESS },
- { "tunnels.4", 0x02000, 0xb4293435, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_tunnels, cv_tunnels, cv_coleco)
-STD_ROM_FN(cv_tunnels)
-
-struct BurnDriver BurnDrvcv_tunnels = {
- "cv_tunnels", NULL, "cv_coleco", NULL, "1983",
- "Tunnels and Trolls (Demo)\0", NULL, "Coleco", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_tunnelsRomInfo, cv_tunnelsRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// War Room
-
-static struct BurnRomInfo cv_warroomRomDesc[] = {
- { "warroom.1", 0x02000, 0xfc6def44, BRF_PRG | BRF_ESS },
- { "warroom.2", 0x02000, 0xa166efc7, BRF_PRG | BRF_ESS },
- { "warroom.3", 0x02000, 0x97fa3660, BRF_PRG | BRF_ESS },
- { "warroom.4", 0x02000, 0xb4293435, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_warroom, cv_warroom, cv_coleco)
-STD_ROM_FN(cv_warroom)
-
-struct BurnDriver BurnDrvcv_warroom = {
- "cv_warroom", NULL, "cv_coleco", NULL, "1983",
- "War Room\0", NULL, "Probe 2000", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_warroomRomInfo, cv_warroomRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Word Feud
-
-static struct BurnRomInfo cv_wordfeudRomDesc[] = {
- { "wordfeud.1", 0x02000, 0xf7a29c01, BRF_PRG | BRF_ESS },
- { "wordfeud.2", 0x02000, 0xf7a29c01, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_wordfeud, cv_wordfeud, cv_coleco)
-STD_ROM_FN(cv_wordfeud)
-
-struct BurnDriver BurnDrvcv_wordfeud = {
- "cv_wordfeud", NULL, "cv_coleco", NULL, "1984",
- "Word Feud\0", NULL, "K-Tel", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_wordfeudRomInfo, cv_wordfeudRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
-// Tournament Tennis
-
-static struct BurnRomInfo cv_ttennisRomDesc[] = {
- { "ttennis.1", 0x02000, 0xdbcde1a9, BRF_PRG | BRF_ESS },
- { "ttennis.2", 0x02000, 0xb72f9ff8, BRF_PRG | BRF_ESS },
- { "ttennis.3", 0x02000, 0xb4293435, BRF_PRG | BRF_ESS },
- { "ttennis.4", 0x02000, 0xb4293435, BRF_PRG | BRF_ESS },
-};
-
-STDROMPICKEXT(cv_ttennis, cv_ttennis, cv_coleco)
-STD_ROM_FN(cv_ttennis)
-
-struct BurnDriver BurnDrvcv_ttennis = {
- "cv_ttennis", NULL, "cv_coleco", NULL, "1984",
- "Tournament Tennis\0", NULL, "Coleco", "ColecoVision",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_COLECO, GBF_MISC, 0,
- CVGetZipName, cv_ttennisRomInfo, cv_ttennisRomName, NULL, NULL, ColecoInputInfo, ColecoDIPInfo,
- DrvInit, DrvExit, DrvFrame, TMS9928ADraw, DrvScan, NULL, TMS9928A_PALETTE_SIZE,
- 272, 228, 4, 3
-};
-
-
diff --git a/jan/src/burn/drv/cps3/cps3.h b/jan/src/burn/drv/cps3/cps3.h
deleted file mode 100644
index 7d7b26b7e..000000000
--- a/jan/src/burn/drv/cps3/cps3.h
+++ /dev/null
@@ -1,54 +0,0 @@
-#include "burnint.h"
-
-#ifndef HARDWARE_CAPCOM_CPS3
- #define HARDWARE_CAPCOM_CPS3 HARDWARE_MISC_MISC
-#endif
-
-#ifndef HARDWARE_CAPCOM_CPS3_NO_CD
- #define HARDWARE_CAPCOM_CPS3_NO_CD HARDWARE_CAPCOM_CPS3
-#endif
-
-extern UINT8 cps3_reset;
-extern UINT8 cps3_palette_change;
-
-extern UINT16 *Cps3CurPal;
-
-extern UINT32 cps3_key1, cps3_key2, cps3_isSpecial;
-extern UINT32 cps3_bios_test_hack, cps3_game_test_hack;
-extern UINT32 cps3_speedup_ram_address, cps3_speedup_code_address;
-extern UINT8 cps3_dip;
-extern UINT32 cps3_region_address, cps3_ncd_address;
-
-extern UINT8 Cps3But1[16];
-extern UINT8 Cps3But2[16];
-extern UINT8 Cps3But3[16];
-
-INT32 cps3Init();
-INT32 cps3Exit();
-INT32 cps3Frame();
-INT32 cps3Scan(INT32 nAction,INT32 *pnMin);
-
-// sound
-
-UINT8 __fastcall cps3SndReadByte(UINT32 addr);
-UINT16 __fastcall cps3SndReadWord(UINT32 addr);
-UINT32 __fastcall cps3SndReadLong(UINT32 addr);
-
-void __fastcall cps3SndWriteByte(UINT32 addr, UINT8 data);
-void __fastcall cps3SndWriteWord(UINT32 addr, UINT16 data);
-void __fastcall cps3SndWriteLong(UINT32 addr, UINT32 data);
-
-INT32 cps3SndInit(UINT8 *);
-void cps3SndSetRoute(INT32 nIndex, double nVolume, INT32 nRouteDir);
-void cps3SndReset();
-void cps3SndExit();
-void cps3SndUpdate();
-
-INT32 cps3SndScan(INT32);
-
-#define BURN_SND_CPS3SND_ROUTE_1 0
-#define BURN_SND_CPS3SND_ROUTE_2 1
-
-#define cps3SndSetAllRoutes(v, d) \
- cps3SndSetRoute(BURN_SND_CPS3SND_ROUTE_1, v, d); \
- cps3SndSetRoute(BURN_SND_CPS3SND_ROUTE_2, v, d);
diff --git a/jan/src/burn/drv/cps3/cps3run.cpp b/jan/src/burn/drv/cps3/cps3run.cpp
deleted file mode 100644
index 330d0cdc7..000000000
--- a/jan/src/burn/drv/cps3/cps3run.cpp
+++ /dev/null
@@ -1,2148 +0,0 @@
-/**********************************************************************
-
-CPS3 Driver (preliminary)
-
-Decryption by Andreas Naive
-
-Driver by David Haywood
- with help from Tomasz Slanina and ElSemi
-
-Sound emulation by Philip Bennett
-
-SCSI code by ElSemi
-
-**********************************************************************
-
-Port to FBA by OopsWare
-
-**********************************************************************/
-
-#include "cps3.h"
-#include "sh2_intf.h"
-
-#define BE_GFX 1
-//#define FAST_BOOT 1
-#define SPEED_HACK 1 // Default should be 1, if not FPS would drop.
-
-static UINT8 *Mem = NULL, *MemEnd = NULL;
-static UINT8 *RamStart, *RamEnd;
-
-static UINT8 *RomBios;
-static UINT8 *RomGame;
-static UINT8 *RomGame_D;
-static UINT8 *RomUser;
-
-static UINT8 *RamMain;
-static UINT32 *RamSpr;
-static UINT16 *RamPal;
-
-static UINT32 *RamCRam;
-
-static UINT32 *RamSS;
-
-static UINT32 *RamVReg;
-
-static UINT8 *RamC000;
-static UINT8 *RamC000_D;
-
-static UINT16 *EEPROM;
-
-UINT16 *Cps3CurPal;
-static UINT32 *RamScreen;
-
-UINT8 cps3_reset = 0;
-UINT8 cps3_palette_change = 0;
-
-UINT32 cps3_key1, cps3_key2, cps3_isSpecial;
-UINT32 cps3_bios_test_hack, cps3_game_test_hack;
-UINT32 cps3_speedup_ram_address, cps3_speedup_code_address;
-UINT8 cps3_dip;
-UINT32 cps3_region_address, cps3_ncd_address;
-
-static UINT32 cps3_data_rom_size;
-
-UINT8 Cps3But1[16];
-UINT8 Cps3But2[16];
-UINT8 Cps3But3[16];
-
-static UINT16 Cps3Input[4] = {0, 0, 0, 0};
-
-static UINT32 ss_bank_base = 0;
-static UINT32 ss_pal_base = 0;
-
-static UINT32 cram_bank = 0;
-static UINT16 cps3_current_eeprom_read = 0;
-static UINT32 gfxflash_bank = 0;
-
-static UINT32 paldma_source = 0;
-static UINT32 paldma_dest = 0;
-static UINT32 paldma_fade = 0;
-static UINT32 paldma_length = 0;
-
-static UINT32 chardma_source = 0;
-static UINT32 chardma_table_address = 0;
-
-static INT32 cps3_gfx_width, cps3_gfx_height;
-static INT32 cps3_gfx_max_x, cps3_gfx_max_y;
-
-
-// -- AMD/Fujitsu 29F016 --------------------------------------------------
-
-enum {
- FM_NORMAL, // normal read/write
- FM_READID, // read ID
- FM_READSTATUS, // read status
- FM_WRITEPART1, // first half of programming, awaiting second
- FM_CLEARPART1, // first half of clear, awaiting second
- FM_SETMASTER, // first half of set master lock, awaiting on/off
- FM_READAMDID1, // part 1 of alt ID sequence
- FM_READAMDID2, // part 2 of alt ID sequence
- FM_READAMDID3, // part 3 of alt ID sequence
- FM_ERASEAMD1, // part 1 of AMD erase sequence
- FM_ERASEAMD2, // part 2 of AMD erase sequence
- FM_ERASEAMD3, // part 3 of AMD erase sequence
- FM_ERASEAMD4, // part 4 of AMD erase sequence
- FM_BYTEPROGRAM
-};
-
-typedef struct
-{
- INT32 status;
- INT32 flash_mode;
- INT32 flash_master_lock;
-} flash_chip;
-
-static flash_chip main_flash;
-
-void cps3_flash_init(flash_chip * chip/*, void *data*/)
-{
- memset(chip, 0, sizeof(flash_chip));
- chip->status = 0x80;
- chip->flash_mode = FM_NORMAL;
- chip->flash_master_lock = 0;
-}
-
-UINT32 cps3_flash_read(flash_chip * chip, UINT32 addr)
-{
- switch( chip->flash_mode ) {
- case FM_READAMDID3:
- case FM_READID:
-
- switch (addr & 0x7fffff) {
- case 0: return 0x04040404; //(c->maker_id << 0) | (c->maker_id << 8) | (c->maker_id << 16) | (c->maker_id << 24);
- case 4: return 0xadadadad; //(c->device_id << 0) | (c->device_id << 8) | (c->device_id << 16) | (c->device_id << 24);
- case 8: return 0x00000000;
- //case 12: return (c->flash_master_lock) ? 0x01010101 : 0x00000000
- }
- return 0;
-
- case FM_ERASEAMD4:
- chip->status ^= ( 1 << 6 ) | ( 1 << 2 );
- case FM_READSTATUS:
- return (chip->status << 0) | (chip->status << 8) | (chip->status << 16) | (chip->status << 24);
-
- case FM_NORMAL:
- default:
- //
- return 0;
- }
-}
-
-void cps3_flash_write(flash_chip * chip, UINT32 addr, UINT32 data)
-{
- bprintf(1, _T("FLASH to write long value %8x to location %8x\n"), data, addr);
-
- switch( chip->flash_mode ) {
- case FM_NORMAL:
- case FM_READSTATUS:
- case FM_READID:
- case FM_READAMDID3:
- switch( data & 0xff ) {
- case 0xf0:
- case 0xff: chip->flash_mode = FM_NORMAL; break;
- case 0x90: chip->flash_mode = FM_READID; break;
- case 0x40:
- case 0x10: chip->flash_mode = FM_WRITEPART1;break;
- case 0x50: // clear status reg
- chip->status = 0x80;
- chip->flash_mode = FM_READSTATUS;
- break;
- case 0x20: chip->flash_mode = FM_CLEARPART1;break;
- case 0x60: chip->flash_mode = FM_SETMASTER; break;
- case 0x70: chip->flash_mode = FM_READSTATUS;break;
- case 0xaa: // AMD ID select part 1
- if ((addr & 0xffff) == (0x555 << 2))
- chip->flash_mode = FM_READAMDID1;
- break;
- default:
- //logerror( "Unknown flash mode byte %x\n", data & 0xff );
- //bprintf(1, _T("FLASH to write long value %8x to location %8x\n"), data, addr);
- break;
- }
- break;
- case FM_READAMDID1:
- if ((addr & 0xffff) == (0x2aa <<2) && (data & 0xff) == 0x55 ) {
- chip->flash_mode = FM_READAMDID2;
- } else {
- //logerror( "unexpected %08x=%02x in FM_READAMDID1\n", address, data & 0xff );
- chip->flash_mode = FM_NORMAL;
- }
- break;
- case FM_READAMDID2:
- if ((addr & 0xffff) == (0x555<<2) && (data & 0xff) == 0x90) {
- chip->flash_mode = FM_READAMDID3;
- } else if((addr & 0xffff) == (0x555<<2) && (data & 0xff) == 0x80) {
- chip->flash_mode = FM_ERASEAMD1;
- } else if((addr & 0xffff) == (0x555<<2) && (data & 0xff) == 0xa0) {
- chip->flash_mode = FM_BYTEPROGRAM;
- } else if((addr & 0xffff) == (0x555<<2) && (data & 0xff) == 0xf0) {
- chip->flash_mode = FM_NORMAL;
- } else {
- // logerror( "unexpected %08x=%02x in FM_READAMDID2\n", address, data & 0xff );
- chip->flash_mode = FM_NORMAL;
- }
- break;
- }
-}
-
-// ------------------------------------------------------------------------
-
-inline static void Cps3ClearOpposites(UINT16* nJoystickInputs)
-{
- if ((*nJoystickInputs & 0x03) == 0x03) {
- *nJoystickInputs &= ~0x03;
- }
- if ((*nJoystickInputs & 0x0c) == 0x0c) {
- *nJoystickInputs &= ~0x0c;
- }
-}
-
-// ------------------------------------------------------------------------
-
-static UINT16 rotate_left(UINT16 value, INT32 n)
-{
- INT32 aux = value>>(16-n);
- return ((value<> 16) ^ 0xffff;
- val = rotxor(val, key2 >> 16);
- val ^= (address & 0xffff) ^ (key2 & 0xffff);
- return val | (val << 16);
-}
-
-static void cps3_decrypt_bios(void)
-{
- UINT32 * coderegion = (UINT32 *)RomBios;
- for (INT32 i=0; i<0x20000; i+=4) {
- UINT32 xormask = cps3_mask(i, cps3_key1, cps3_key2);
- /* a bit of a hack, don't decrypt the FLASH commands which are transfered by SH2 DMA */
- if ( (i<0x1ff00) || (i>0x1ff6b) )
- coderegion[i/4] ^= xormask;
- }
-}
-
-static void cps3_decrypt_game(void)
-{
- UINT32 * coderegion = (UINT32 *)RomGame;
- UINT32 * decrypt_coderegion = (UINT32 *)RomGame_D;
-
- for (INT32 i=0; i<0x1000000; i+=4) {
- UINT32 xormask = cps3_mask(i + 0x06000000, cps3_key1, cps3_key2);
- decrypt_coderegion[i/4] = coderegion[i/4] ^ xormask;
- }
-}
-
-
-static INT32 last_normal_byte = 0;
-
-static UINT32 process_byte( UINT8 real_byte, UINT32 destination, INT32 max_length )
-{
- UINT8 * dest = (UINT8 *) RamCRam;
- //printf("process byte for destination %08x\n", destination);
- destination &= 0x7fffff;
-
- if (real_byte&0x40) {
- INT32 tranfercount = 0;
- //printf("Set RLE Mode\n");
- INT32 cps3_rle_length = (real_byte&0x3f)+1;
- //printf("RLE Operation (length %08x\n", cps3_rle_length );
- while (cps3_rle_length) {
-#if BE_GFX
- dest[((destination+tranfercount)&0x7fffff)] = (last_normal_byte&0x3f);
-#else
- dest[((destination+tranfercount)&0x7fffff)^3] = (last_normal_byte&0x3f);
-#endif
- //cps3_char_ram_dirty[((destination+tranfercount)&0x7fffff)/0x100] = 1;
- //cps3_char_ram_is_dirty = 1;
- //printf("RLE WRite Byte %08x, %02x\n", destination+tranfercount, real_byte);
-
- tranfercount++;
- cps3_rle_length--;
- max_length--;
- if ((destination+tranfercount) > 0x7fffff) return max_length;
- // if (max_length==0) return max_length; // this is meant to abort the transfer if we exceed dest length,, not working
- }
- return tranfercount;
- } else {
- //printf("Write Normal Data\n");
-#if BE_GFX
- dest[(destination&0x7fffff)] = real_byte;
-#else
- dest[(destination&0x7fffff)^3] = real_byte;
-#endif
- last_normal_byte = real_byte;
- //cps3_char_ram_dirty[(destination&0x7fffff)/0x100] = 1;
- //cps3_char_ram_is_dirty = 1;
- return 1;
- }
-}
-
-static void cps3_do_char_dma( UINT32 real_source, UINT32 real_destination, UINT32 real_length )
-{
- UINT8 * sourcedata = RomUser;
- INT32 length_remaining = real_length;
- last_normal_byte = 0;
- while (length_remaining) {
- UINT8 current_byte = sourcedata[ real_source ^ 0 ];
- real_source++;
-
- if (current_byte & 0x80) {
- UINT8 real_byte;
- UINT32 length_processed;
- current_byte &= 0x7f;
-
- real_byte = sourcedata[ (chardma_table_address+current_byte*2+0) ^ 0 ];
- //if (real_byte&0x80) return;
- length_processed = process_byte( real_byte, real_destination, length_remaining );
- length_remaining -= length_processed; // subtract the number of bytes the operation has taken
- real_destination += length_processed; // add it onto the destination
- if (real_destination>0x7fffff) return;
- if (length_remaining<=0) return; // if we've expired, exit
-
- real_byte = sourcedata[ (chardma_table_address+current_byte*2+1) ^ 0 ];
- //if (real_byte&0x80) return;
- length_processed = process_byte( real_byte, real_destination, length_remaining );
- length_remaining -= length_processed; // subtract the number of bytes the operation has taken
- real_destination += length_processed; // add it onto the destination
- if (real_destination>0x7fffff) return;
- if (length_remaining<=0) return; // if we've expired, exit
- } else {
- UINT32 length_processed;
- length_processed = process_byte( current_byte, real_destination, length_remaining );
- length_remaining -= length_processed; // subtract the number of bytes the operation has taken
- real_destination += length_processed; // add it onto the destination
- if (real_destination>0x7fffff) return;
- if (length_remaining<=0) return; // if we've expired, exit
- }
- }
-}
-
-static UINT16 lastb;
-static UINT16 lastb2;
-
-static UINT32 ProcessByte8(UINT8 b, UINT32 dst_offset)
-{
- UINT8 * destRAM = (UINT8 *) RamCRam;
- INT32 l=0;
-
- if(lastb==lastb2) { //rle
- INT32 rle=(b+1)&0xff;
-
- for(INT32 i=0;i=real_length)
- return;
- }
- }
-}
-
-static void cps3_process_character_dma(UINT32 address)
-{
- for (INT32 i=0; i<0x1000; i+=3) {
- UINT32 dat1 = RamCRam[i+0+(address)];
- UINT32 dat2 = RamCRam[i+1+(address)];
- UINT32 dat3 = RamCRam[i+2+(address)];
- UINT32 real_source = (dat3<<1)-0x400000;
- UINT32 real_destination = dat2<<3;
- UINT32 real_length = (((dat1&0x001fffff)+1)<<3);
-
- if (dat1==0x01000000) break; // end of list marker
- if (dat1==0x13131313) break; // our default fill
-
- switch ( dat1 & 0x00e00000 ) {
- case 0x00800000:
- chardma_table_address = real_source;
- Sh2SetIRQLine(10, CPU_IRQSTATUS_ACK);
- break;
- case 0x00400000:
- cps3_do_char_dma( real_source, real_destination, real_length );
- Sh2SetIRQLine(10, CPU_IRQSTATUS_ACK);
- break;
- case 0x00600000:
- //bprintf(PRINT_NORMAL, _T("Character DMA (alt) start %08x to %08x with %d\n"), real_source, real_destination, real_length);
- /* 8bpp DMA decompression
- - this is used on SFIII NG Sean's Stage ONLY */
- cps3_do_alt_char_dma( real_source, real_destination, real_length );
- Sh2SetIRQLine(10, CPU_IRQSTATUS_ACK);
- break;
- case 0x00000000:
- // Red Earth need this. 8192 byte trans to 0x00003000 (from 0x007ec000???)
- // seems some stars(6bit alpha) without compress
- //bprintf(PRINT_NORMAL, _T("Character DMA (redearth) start %08x to %08x with %d\n"), real_source, real_destination, real_length);
- memcpy( (UINT8 *)RamCRam + real_destination, RomUser + real_source, real_length );
- Sh2SetIRQLine(10, CPU_IRQSTATUS_ACK);
- break;
- default:
- bprintf(PRINT_NORMAL, _T("Character DMA Unknown DMA List Command Type %08x\n"), dat1);
- }
- }
-}
-
-static INT32 MemIndex()
-{
- UINT8 *Next; Next = Mem;
- RomBios = Next; Next += 0x0080000;
-
- RomUser = Next; Next += cps3_data_rom_size; // 0x5000000;
-
- RamStart = Next;
-
- RomGame = Next; Next += 0x1000000;
- RomGame_D = Next; Next += 0x1000000;
-
- RamC000 = Next; Next += 0x0000400;
- RamC000_D = Next; Next += 0x0000400;
-
- RamMain = Next; Next += 0x0080000;
-
- RamPal = (UINT16 *) Next; Next += 0x0020000 * sizeof(UINT16);
- RamSpr = (UINT32 *) Next; Next += 0x0020000 * sizeof(UINT32);
-
- RamCRam = (UINT32 *) Next; Next += 0x0200000 * sizeof(UINT32);
- RamSS = (UINT32 *) Next; Next += 0x0004000 * sizeof(UINT32);
-
- RamVReg = (UINT32 *) Next; Next += 0x0000040 * sizeof(UINT32);
-
- EEPROM = (UINT16 *) Next; Next += 0x0000100 * sizeof(UINT16);
-
- RamEnd = Next;
-
- Cps3CurPal = (UINT16 *) Next; Next += 0x020002 * sizeof(UINT16); // iq_132 - layer disable, +1 to keep things aligned
- RamScreen = (UINT32 *) Next; Next += (512 * 2) * (224 * 2 + 32) * sizeof(UINT32);
-
- MemEnd = Next;
- return 0;
-}
-
-UINT8 __fastcall cps3ReadByte(UINT32 addr)
-{
- addr &= 0xc7ffffff;
-
-// switch (addr) {
-//
-// default:
-// bprintf(PRINT_NORMAL, _T("Attempt to read byte value of location %8x\n"), addr);
-// }
- return 0;
-}
-
-UINT16 __fastcall cps3ReadWord(UINT32 addr)
-{
- addr &= 0xc7ffffff;
-
- switch (addr) {
-
- // redearth will read this !!!
-#if 0
- case 0x040c0000:
- return RamVReg[0] >> 16;
- case 0x040c0002:
- return RamVReg[0] & 0xffff;
- case 0x040c0004:
- return RamVReg[1] >> 16;
- case 0x040c0006:
- return RamVReg[1] & 0xffff;
-#else
- case 0x040c0000:
- case 0x040c0002:
- case 0x040c0004:
- case 0x040c0006:
- return 0;
-#endif
- // cps3_vbl_r
- case 0x040c000c:
- case 0x040c000e:
- return 0;
-
- case 0x05000000: return ~Cps3Input[1];
- case 0x05000002: return ~Cps3Input[0];
- case 0x05000004: return ~Cps3Input[3];
- case 0x05000006: return ~Cps3Input[2];
-
- case 0x05140000:
- case 0x05140002:
- // cd-rom read
-
- break;
-
- default:
- if ((addr >= 0x05000a00) && (addr < 0x05000a20)) {
- // cps3_unk_io_r
- return 0xffff;
- } else
- if ((addr >= 0x05001000) && (addr < 0x05001204)) {
- // EEPROM
- addr -= 0x05001000;
- if (addr >= 0x100 && addr < 0x180) {
-#ifdef LSB_FIRST
- cps3_current_eeprom_read = EEPROM[((addr-0x100) >> 1) ^ 1];
-#else
- cps3_current_eeprom_read = EEPROM[((addr-0x100) >> 1)];
-#endif
- } else
- if (addr == 0x202)
- return cps3_current_eeprom_read;
- } else
- bprintf(PRINT_NORMAL, _T("Attempt to read word value of location %8x\n"), addr);
- }
- return 0;
-}
-
-UINT32 __fastcall cps3ReadLong(UINT32 addr)
-{
- addr &= 0xc7ffffff;
-
- switch (addr) {
- case 0x04200000:
- bprintf(PRINT_NORMAL, _T("GFX Read Flash ID, cram bank %04x gfx flash bank: %04x\n"), cram_bank, gfxflash_bank);
- return 0x0404adad;
-
- default:
- bprintf(PRINT_NORMAL, _T("Attempt to read long value of location %8x\n"), addr);
- }
- return 0;
-}
-
-void __fastcall cps3WriteByte(UINT32 addr, UINT8 data)
-{
- addr &= 0xc7ffffff;
-
- switch (addr) {
-
- // cps3_ss_bank_base_w
- case 0x05050020: ss_bank_base = ( ss_bank_base & 0x00ffffff ) | (data << 24); break;
- case 0x05050021: ss_bank_base = ( ss_bank_base & 0xff00ffff ) | (data << 16); break;
- case 0x05050022: ss_bank_base = ( ss_bank_base & 0xffff00ff ) | (data << 8); break;
- case 0x05050023: ss_bank_base = ( ss_bank_base & 0xffffff00 ) | (data << 0); break;
-
- // cps3_ss_pal_base_w
- case 0x05050024: ss_pal_base = ( ss_pal_base & 0x00ff ) | (data << 8); break;
- case 0x05050025: ss_pal_base = ( ss_pal_base & 0xff00 ) | (data << 0); break;
- case 0x05050026: break;
- case 0x05050027: break;
-
- default:
- if ((addr >= 0x05050000) && (addr < 0x05060000)) {
- // VideoReg
-
- } else
- bprintf(PRINT_NORMAL, _T("Attempt to write byte value %02x to location %8x\n"), data, addr);
- }
-}
-
-void __fastcall cps3WriteWord(UINT32 addr, UINT16 data)
-{
- addr &= 0xc7ffffff;
-
- switch (addr) {
-
- case 0x040c0084: break;
- case 0x040c0086:
- if (cram_bank != data) {
- cram_bank = data & 7;
- //bprintf(PRINT_NORMAL, _T("CRAM bank set to %d\n"), data);
- Sh2MapMemory(((UINT8 *)RamCRam) + (cram_bank << 20), 0x04100000, 0x041fffff, MAP_RAM);
- }
- break;
-
- case 0x040c0088:
- //case 0x040c008a:
- gfxflash_bank = data - 2;
- //bprintf(PRINT_NORMAL, _T("gfxflash bank set to %04x\n"), data);
- break;
-
- // cps3_characterdma_w
- //case 0x040c0094:
- case 0x040c0096:
- chardma_source = data;
- break;
- case 0x040c0098:
- //case 0x040c009a:
- if (data & 0x0040)
- cps3_process_character_dma( chardma_source | ((data & 0x003f) << 16) );
- break;
-
- // cps3_palettedma_w
- case 0x040c00a0: paldma_source = (paldma_source & 0x0000ffff) | (data << 16); break;
- case 0x040c00a2: paldma_source = (paldma_source & 0xffff0000) | (data << 0); break;
- case 0x040c00a4: paldma_dest = (paldma_dest & 0x0000ffff) | (data << 16); break;
- case 0x040c00a6: paldma_dest = (paldma_dest & 0xffff0000) | (data << 0); break;
- case 0x040c00a8: paldma_fade = (paldma_fade & 0x0000ffff) | (data << 16); break;
- case 0x040c00aa: paldma_fade = (paldma_fade & 0xffff0000) | (data << 0); break;
- case 0x040c00ac: paldma_length = data; break;
- case 0x040c00ae:
- //bprintf(PRINT_NORMAL, _T("palettedma [%04x] from %08x to %08x fade %08x size %d\n"), data, (paldma_source << 1), paldma_dest, paldma_fade, paldma_length);
- if (data & 0x0002) {
- for (UINT32 i=0; i> 8);
-#endif
-
- UINT32 r = (coldata & 0x001F) >> 0;
- UINT32 g = (coldata & 0x03E0) >> 5;
- UINT32 b = (coldata & 0x7C00) >> 10;
- if (paldma_fade!=0) {
- INT32 fade;
- fade = (paldma_fade & 0x3f000000)>>24; r = (r*fade)>>5; if (r>0x1f) r = 0x1f;
- fade = (paldma_fade & 0x003f0000)>>16; g = (g*fade)>>5; if (g>0x1f) g = 0x1f;
- fade = (paldma_fade & 0x0000003f)>> 0; b = (b*fade)>>5; if (b>0x1f) b = 0x1f;
- coldata = (r << 0) | (g << 5) | (b << 10);
- }
-
- r = r << 3;
- g = g << 3;
- b = b << 3;
-
-#ifdef LSB_FIRST
- RamPal[(paldma_dest + i) ^ 1] = coldata;
-#else
- RamPal[(paldma_dest + i)] = coldata;
-#endif
- Cps3CurPal[(paldma_dest + i) ] = BurnHighCol(r, g, b, 0);
- }
- Sh2SetIRQLine(10, CPU_IRQSTATUS_ACK);
- }
- break;
-
- case 0x04200554:
- case 0x04200aaa:
- // gfx flash command
- // "0xaa 0x55 0x90" set flash to get id
- // "0xaa 0x55 0xf0" set flash to normal read
- break;
-
- // cps3_ss_bank_base_w
- case 0x05050020: ss_bank_base = ( ss_bank_base & 0x0000ffff ) | (data << 16); break;
- case 0x05050022: ss_bank_base = ( ss_bank_base & 0xffff0000 ) | (data << 0); break;
-
- // cps3_ss_pal_base_w
- case 0x05050024: ss_pal_base = data; break;
- case 0x05050026: break;
-
- case 0x05100000:
- Sh2SetIRQLine(12, CPU_IRQSTATUS_NONE);
- break;
- case 0x05110000:
- Sh2SetIRQLine(10, CPU_IRQSTATUS_NONE);
- break;
-
- case 0x05140000:
- case 0x05140002:
- // cd-rom read
-
- break;
-
- default:
- if ((addr >= 0x040c0000) && (addr < 0x040c0100)) {
- // 0x040C0000 ~ 0x040C001f : cps3_unk_vidregs
- // 0x040C0020 ~ 0x040C002b : tilemap20_regs_base
- // 0x040C0030 ~ 0x040C003b : tilemap30_regs_base
- // 0x040C0040 ~ 0x040C004b : tilemap40_regs_base
- // 0x040C0050 ~ 0x040C005b : tilemap50_regs_base
- // 0x040C0060 ~ 0x040C007f : cps3_fullscreenzoom
-
- addr &= 0xff;
-#ifdef LSB_FIRST
- ((UINT16 *)RamVReg)[ (addr >> 1) ^ 1 ] = data;
-#else
- ((UINT16 *)RamVReg)[ (addr >> 1) ] = data;
-#endif
-
- } else
- if ((addr >= 0x05000000) && (addr < 0x05001000)) {
-
-
- } else
- if ((addr >= 0x05001000) && (addr < 0x05001204)) {
- // EEPROM
- addr -= 0x05001000;
- if ((addr>=0x080) && (addr<0x100))
-#ifdef LSB_FIRST
- EEPROM[((addr-0x080) >> 1) ^ 1] = data;
-#else
- EEPROM[((addr-0x080) >> 1)] = data;
-#endif
- } else
- if ((addr >= 0x05050000) && (addr < 0x05060000)) {
- // unknow i/o
-
- } else
-
- bprintf(PRINT_NORMAL, _T("Attempt to write word value %04x to location %8x\n"), data, addr);
- }
-}
-
-void __fastcall cps3WriteLong(UINT32 addr, UINT32 data)
-{
- addr &= 0xc7ffffff;
-
- switch (addr) {
- case 0x07ff000c:
- case 0x07ff0048:
- // some unknown data write by DMA 0 while bootup
- break;
-
- default:
- bprintf(PRINT_NORMAL, _T("Attempt to write long value %8x to location %8x\n"), data, addr);
- }
-}
-
-void __fastcall cps3C0WriteByte(UINT32 addr, UINT8 data)
-{
- bprintf(PRINT_NORMAL, _T("C0 Attempt to write byte value %2x to location %8x\n"), data, addr);
-}
-
-void __fastcall cps3C0WriteWord(UINT32 addr, UINT16 data)
-{
- bprintf(PRINT_NORMAL, _T("C0 Attempt to write word value %4x to location %8x\n"), data, addr);
-}
-
-void __fastcall cps3C0WriteLong(UINT32 addr, UINT32 data)
-{
- if (addr < 0xc0000400) {
- *(UINT32 *)(RamC000 + (addr & 0x3ff)) = data;
- *(UINT32 *)(RamC000_D + (addr & 0x3ff)) = data ^ cps3_mask(addr, cps3_key1, cps3_key2);
- return ;
- }
- bprintf(PRINT_NORMAL, _T("C0 Attempt to write long value %8x to location %8x\n"), data, addr);
-}
-
-// If fastboot != 1
-
-UINT8 __fastcall cps3RomReadByte(UINT32 addr)
-{
-// bprintf(PRINT_NORMAL, _T("Rom Attempt to read byte value of location %8x\n"), addr);
- addr &= 0xc7ffffff;
-#ifdef LSB_FIRST
- addr ^= 0x03;
-#endif
- return *(RomGame_D + (addr & 0x00ffffff));
-}
-
-UINT16 __fastcall cps3RomReadWord(UINT32 addr)
-{
-// bprintf(PRINT_NORMAL, _T("Rom Attempt to read word value of location %8x\n"), addr);
- addr &= 0xc7ffffff;
-#ifdef LSB_FIRST
- addr ^= 0x02;
-#endif
- return *(UINT16 *)(RomGame_D + (addr & 0x00ffffff));
-}
-
-UINT32 __fastcall cps3RomReadLong(UINT32 addr)
-{
-// bprintf(PRINT_NORMAL, _T("Rom Attempt to read long value of location %8x\n"), addr);
- addr &= 0xc7ffffff;
-
- UINT32 retvalue = cps3_flash_read(&main_flash, addr);
- if ( main_flash.flash_mode == FM_NORMAL )
- retvalue = *(UINT32 *)(RomGame_D + (addr & 0x00ffffff));
-
- UINT32 pc = Sh2GetPC(0);
- if (pc == cps3_bios_test_hack || pc == cps3_game_test_hack){
- if ( main_flash.flash_mode == FM_NORMAL )
- retvalue = *(UINT32 *)(RomGame + (addr & 0x00ffffff));
- bprintf(2, _T("CPS3 Hack : read long from %08x [%08x]\n"), addr, retvalue );
- }
- return retvalue;
-}
-
-void __fastcall cps3RomWriteByte(UINT32 addr, UINT8 data)
-{
- bprintf(PRINT_NORMAL, _T("Rom Attempt to write byte value %2x to location %8x\n"), data, addr);
-}
-
-void __fastcall cps3RomWriteWord(UINT32 addr, UINT16 data)
-{
- bprintf(PRINT_NORMAL, _T("Rom Attempt to write word value %4x to location %8x\n"), data, addr);
-}
-
-void __fastcall cps3RomWriteLong(UINT32 addr, UINT32 data)
-{
-// bprintf(1, _T("Rom Attempt to write long value %8x to location %8x\n"), data, addr);
- addr &= 0x00ffffff;
- cps3_flash_write(&main_flash, addr, data);
-
- if ( main_flash.flash_mode == FM_NORMAL ) {
- bprintf(1, _T("Rom Attempt to write long value %8x to location %8x\n"), data, addr);
- *(UINT32 *)(RomGame + addr) = data;
- *(UINT32 *)(RomGame_D + addr) = data ^ cps3_mask(addr + 0x06000000, cps3_key1, cps3_key2);
- }
-}
-
-UINT8 __fastcall cps3RomReadByteSpe(UINT32 addr)
-{
-// bprintf(PRINT_NORMAL, _T("Rom Attempt to read byte value of location %8x\n"), addr);
- addr &= 0xc7ffffff;
-#ifdef LSB_FIRST
- addr ^= 0x03;
-#endif
- return *(RomGame + (addr & 0x00ffffff));
-}
-
-UINT16 __fastcall cps3RomReadWordSpe(UINT32 addr)
-{
-// bprintf(PRINT_NORMAL, _T("Rom Attempt to read word value of location %8x\n"), addr);
- addr &= 0xc7ffffff;
-#ifdef LSB_FIRST
- addr ^= 0x02;
-#endif
- return *(UINT16 *)(RomGame + (addr & 0x00ffffff));
-}
-
-UINT32 __fastcall cps3RomReadLongSpe(UINT32 addr)
-{
-// bprintf(PRINT_NORMAL, _T("Rom Attempt to read long value of location %8x\n"), addr);
- addr &= 0xc7ffffff;
-
- UINT32 retvalue = cps3_flash_read(&main_flash, addr);
- if ( main_flash.flash_mode == FM_NORMAL )
- retvalue = *(UINT32 *)(RomGame + (addr & 0x00ffffff));
-
- return retvalue;
-}
-
-//------------------
-
-UINT8 __fastcall cps3VidReadByte(UINT32 addr)
-{
- bprintf(PRINT_NORMAL, _T("Video Attempt to read byte value of location %8x\n"), addr);
-// addr &= 0xc7ffffff;
- return 0;
-}
-
-UINT16 __fastcall cps3VidReadWord(UINT32 addr)
-{
- bprintf(PRINT_NORMAL, _T("Video Attempt to read word value of location %8x\n"), addr);
-// addr &= 0xc7ffffff;
- return 0;
-}
-
-UINT32 __fastcall cps3VidReadLong(UINT32 addr)
-{
- bprintf(PRINT_NORMAL, _T("Video Attempt to read long value of location %8x\n"), addr);
-// addr &= 0xc7ffffff;
- return 0;
-}
-
-void __fastcall cps3VidWriteByte(UINT32 addr, UINT8 data)
-{
- bprintf(PRINT_NORMAL, _T("Video Attempt to write byte value %2x to location %8x\n"), data, addr);
-}
-
-void __fastcall cps3VidWriteWord(UINT32 addr, UINT16 data)
-{
- addr &= 0xc7ffffff;
- if ((addr >= 0x04080000) && (addr < 0x040c0000)) {
- // Palette
- UINT32 palindex = (addr - 0x04080000) >> 1;
-#ifdef LSB_FIRST
- RamPal[palindex ^ 1] = data;
-#else
- RamPal[palindex] = data;
-#endif
-
- INT32 r = (data & 0x001F) << 3; // Red
- INT32 g = (data & 0x03E0) >> 2; // Green
- INT32 b = (data & 0x7C00) >> 7; // Blue
-
- r |= r >> 5;
- g |= g >> 5;
- b |= b >> 5;
-
- Cps3CurPal[palindex] = BurnHighCol(r, g, b, 0);
-
- } else
- bprintf(PRINT_NORMAL, _T("Video Attempt to write word value %4x to location %8x\n"), data, addr);
-}
-
-void __fastcall cps3VidWriteLong(UINT32 addr, UINT32 data)
-{
- addr &= 0xc7ffffff;
- if ((addr >= 0x04080000) && (addr < 0x040c0000)) {
-
- if ( data != 0 )
- bprintf(PRINT_NORMAL, _T("Video Attempt to write long value %8x to location %8x\n"), data, addr);
-
-
- } else
- bprintf(PRINT_NORMAL, _T("Video Attempt to write long value %8x to location %8x\n"), data, addr);
-}
-
-
-UINT8 __fastcall cps3RamReadByte(UINT32 addr)
-{
- if (addr == cps3_speedup_ram_address )
- if (Sh2GetPC(0) == cps3_speedup_code_address)
- Sh2BurnUntilInt(0);
-
- addr &= 0x7ffff;
-#ifdef LSB_FIRST
- return *(RamMain + (addr ^ 0x03));
-#else
- return *(RamMain + addr);
-#endif
-}
-
-UINT16 __fastcall cps3RamReadWord(UINT32 addr)
-{
- //bprintf(PRINT_NORMAL, _T("Ram Attempt to read long value of location %8x\n"), addr);
- addr &= 0x7ffff;
-
- if (addr == cps3_speedup_ram_address )
- if (Sh2GetPC(0) == cps3_speedup_code_address) {
- bprintf(PRINT_NORMAL, _T("Ram Attempt to read long value of location %8x\n"), addr);
- Sh2BurnUntilInt(0);
- }
-
-#ifdef LSB_FIRST
- return *(UINT16 *)(RamMain + (addr ^ 0x02));
-#else
- return *(UINT16 *)(RamMain + addr);
-#endif
-}
-
-
-UINT32 __fastcall cps3RamReadLong(UINT32 addr)
-{
- if (addr == cps3_speedup_ram_address )
- if (Sh2GetPC(0) == cps3_speedup_code_address)
- Sh2BurnUntilInt(0);
-
- addr &= 0x7ffff;
- return *(UINT32 *)(RamMain + addr);
-}
-
-// CPS3 Region Patch
-static void Cps3PatchRegion()
-{
- if ( cps3_region_address ) {
-
- bprintf(0, _T("Region: %02x -> %02x\n"), RomBios[cps3_region_address], (RomBios[cps3_region_address] & 0xf0) | (cps3_dip & 0x0f));
-
-#ifdef LSB_FIRST
- RomBios[cps3_region_address] = (RomBios[cps3_region_address] & 0xf0) | (cps3_dip & 0x7f);
-#else
- RomBios[cps3_region_address ^ 0x03] = (RomBios[cps3_region_address ^ 0x03] & 0xf0) | (cps3_dip & 0x7f);
-#endif
- if ( cps3_ncd_address ) {
- if (cps3_dip & 0x10)
- RomBios[cps3_ncd_address] |= 0x01;
- else
- RomBios[cps3_ncd_address] &= 0xfe;
- }
- }
-}
-
-static INT32 Cps3Reset()
-{
- // re-map cram_bank
- cram_bank = 0;
- Sh2MapMemory((UINT8 *)RamCRam, 0x04100000, 0x041fffff, MAP_RAM);
-
- Cps3PatchRegion();
-
- // [CD-ROM not emulated] All CHD drivers cause a Guru Meditation with the normal bios boot.
- if(!BurnDrvGetHardwareCode() & HARDWARE_CAPCOM_CPS3_NO_CD){
- // normal boot
- Sh2Reset();
- } else {
- // fast boot
- if (cps3_isSpecial) {
- Sh2Reset( *(UINT32 *)(RomGame + 0), *(UINT32 *)(RomGame + 4) );
- Sh2SetVBR(0x06000000);
- } else {
- Sh2Reset( *(UINT32 *)(RomGame_D + 0), *(UINT32 *)(RomGame_D + 4) );
- Sh2SetVBR(0x06000000);
- }
- }
-
- if (cps3_dip & 0x80) {
- EEPROM[0x11] = 0x100 + (EEPROM[0x11] & 0xff);
- EEPROM[0x29] = 0x100 + (EEPROM[0x29] & 0xff);
- } else {
- EEPROM[0x11] = 0x000 + (EEPROM[0x11] & 0xff);
- EEPROM[0x29] = 0x000 + (EEPROM[0x29] & 0xff);
- }
-
- cps3_current_eeprom_read = 0;
- cps3SndReset();
- cps3_reset = 0;
- return 0;
-}
-
-static void be_to_le(UINT8 * p, INT32 size)
-{
- UINT8 c;
- for(INT32 i=0; i (cps3_gfx_width - 8)) || (y > (cps3_gfx_height - 8))) return;
- UINT16 * dst = (UINT16 *) pBurnDraw;
- UINT8 * src = (UINT8 *)RamSS;
- UINT16 * color = Cps3CurPal + (pal << 4);
- dst += (y * cps3_gfx_width + x);
- src += code * 64;
-
- if ( flipy ) {
- dst += cps3_gfx_width * 7;
-#ifdef LSB_FIRST
- if ( flipx )
- for(INT32 i=0; i<8; i++, dst-= cps3_gfx_width, src += 8) {
- if ( src[ 2] & 0xf ) dst[7] = color [ src[ 2] & 0xf ];
- if ( src[ 2] >> 4 ) dst[6] = color [ src[ 2] >> 4 ];
- if ( src[ 0] & 0xf ) dst[5] = color [ src[ 0] & 0xf ];
- if ( src[ 0] >> 4 ) dst[4] = color [ src[ 0] >> 4 ];
- if ( src[ 6] & 0xf ) dst[3] = color [ src[ 6] & 0xf ];
- if ( src[ 6] >> 4 ) dst[2] = color [ src[ 6] >> 4 ];
- if ( src[ 4] & 0xf ) dst[1] = color [ src[ 4] & 0xf ];
- if ( src[ 4] >> 4 ) dst[0] = color [ src[ 4] >> 4 ];
- }
- else
- for(INT32 i=0; i<8; i++, dst-= cps3_gfx_width, src += 8) {
- if ( src[ 2] & 0xf ) dst[0] = color [ src[ 2] & 0xf ];
- if ( src[ 2] >> 4 ) dst[1] = color [ src[ 2] >> 4 ];
- if ( src[ 0] & 0xf ) dst[2] = color [ src[ 0] & 0xf ];
- if ( src[ 0] >> 4 ) dst[3] = color [ src[ 0] >> 4 ];
- if ( src[ 6] & 0xf ) dst[4] = color [ src[ 6] & 0xf ];
- if ( src[ 6] >> 4 ) dst[5] = color [ src[ 6] >> 4 ];
- if ( src[ 4] & 0xf ) dst[6] = color [ src[ 4] & 0xf ];
- if ( src[ 4] >> 4 ) dst[7] = color [ src[ 4] >> 4 ];
- }
-
- } else {
- if ( flipx )
- for(INT32 i=0; i<8; i++, dst+= cps3_gfx_width, src += 8) {
- if ( src[ 2] & 0xf ) dst[7] = color [ src[ 2] & 0xf ];
- if ( src[ 2] >> 4 ) dst[6] = color [ src[ 2] >> 4 ];
- if ( src[ 0] & 0xf ) dst[5] = color [ src[ 0] & 0xf ];
- if ( src[ 0] >> 4 ) dst[4] = color [ src[ 0] >> 4 ];
- if ( src[ 6] & 0xf ) dst[3] = color [ src[ 6] & 0xf ];
- if ( src[ 6] >> 4 ) dst[2] = color [ src[ 6] >> 4 ];
- if ( src[ 4] & 0xf ) dst[1] = color [ src[ 4] & 0xf ];
- if ( src[ 4] >> 4 ) dst[0] = color [ src[ 4] >> 4 ];
- }
- else
- for(INT32 i=0; i<8; i++, dst+= cps3_gfx_width, src += 8) {
- if ( src[ 2] & 0xf ) dst[0] = color [ src[ 2] & 0xf ];
- if ( src[ 2] >> 4 ) dst[1] = color [ src[ 2] >> 4 ];
- if ( src[ 0] & 0xf ) dst[2] = color [ src[ 0] & 0xf ];
- if ( src[ 0] >> 4 ) dst[3] = color [ src[ 0] >> 4 ];
- if ( src[ 6] & 0xf ) dst[4] = color [ src[ 6] & 0xf ];
- if ( src[ 6] >> 4 ) dst[5] = color [ src[ 6] >> 4 ];
- if ( src[ 4] & 0xf ) dst[6] = color [ src[ 4] & 0xf ];
- if ( src[ 4] >> 4 ) dst[7] = color [ src[ 4] >> 4 ];
- }
- }
-#else
- if ( flipx )
- for(int i=0; i<8; i++, dst-= cps3_gfx_width, src += 8) {
- if ( src[ 1] & 0xf ) dst[7] = color [ src[ 1] & 0xf ];
- if ( src[ 1] >> 4 ) dst[6] = color [ src[ 1] >> 4 ];
- if ( src[ 3] & 0xf ) dst[5] = color [ src[ 3] & 0xf ];
- if ( src[ 3] >> 4 ) dst[4] = color [ src[ 3] >> 4 ];
- if ( src[ 5] & 0xf ) dst[3] = color [ src[ 5] & 0xf ];
- if ( src[ 5] >> 4 ) dst[2] = color [ src[ 5] >> 4 ];
- if ( src[ 7] & 0xf ) dst[1] = color [ src[ 7] & 0xf ];
- if ( src[ 7] >> 4 ) dst[0] = color [ src[ 7] >> 4 ];
- }
- else
- for(int i=0; i<8; i++, dst-= cps3_gfx_width, src += 8) {
- if ( src[ 1] & 0xf ) dst[0] = color [ src[ 1] & 0xf ];
- if ( src[ 1] >> 4 ) dst[1] = color [ src[ 1] >> 4 ];
- if ( src[ 3] & 0xf ) dst[2] = color [ src[ 3] & 0xf ];
- if ( src[ 3] >> 4 ) dst[3] = color [ src[ 3] >> 4 ];
- if ( src[ 5] & 0xf ) dst[4] = color [ src[ 5] & 0xf ];
- if ( src[ 5] >> 4 ) dst[5] = color [ src[ 5] >> 4 ];
- if ( src[ 7] & 0xf ) dst[6] = color [ src[ 7] & 0xf ];
- if ( src[ 7] >> 4 ) dst[7] = color [ src[ 7] >> 4 ];
- }
-
- } else {
- if ( flipx )
- for(int i=0; i<8; i++, dst+= cps3_gfx_width, src += 8) {
- if ( src[ 1] & 0xf ) dst[7] = color [ src[ 1] & 0xf ];
- if ( src[ 1] >> 4 ) dst[6] = color [ src[ 1] >> 4 ];
- if ( src[ 3] & 0xf ) dst[5] = color [ src[ 3] & 0xf ];
- if ( src[ 3] >> 4 ) dst[4] = color [ src[ 3] >> 4 ];
- if ( src[ 5] & 0xf ) dst[3] = color [ src[ 5] & 0xf ];
- if ( src[ 5] >> 4 ) dst[2] = color [ src[ 5] >> 4 ];
- if ( src[ 7] & 0xf ) dst[1] = color [ src[ 7] & 0xf ];
- if ( src[ 7] >> 4 ) dst[0] = color [ src[ 7] >> 4 ];
- }
- else
- for(int i=0; i<8; i++, dst+= cps3_gfx_width, src += 8) {
- if ( src[ 1 ] & 0xf ) dst[0] = color [ src[ 1 ] & 0xf ];
- if ( src[ 1 ] >> 4 ) dst[1] = color [ src[ 1 ] >> 4 ];
- if ( src[ 3 ] & 0xf ) dst[2] = color [ src[ 3 ] & 0xf ];
- if ( src[ 3 ] >> 4 ) dst[3] = color [ src[ 3 ] >> 4 ];
- if ( src[ 5 ] & 0xf ) dst[4] = color [ src[ 5 ] & 0xf ];
- if ( src[ 5 ] >> 4 ) dst[5] = color [ src[ 5 ] >> 4 ];
- if ( src[ 7 ] & 0xf ) dst[6] = color [ src[ 7 ] & 0xf ];
- if ( src[ 7 ] >> 4 ) dst[7] = color [ src[ 7 ] >> 4 ];
- }
- }
-
-#endif
-
-}
-
-static void cps3_drawgfxzoom_1(UINT32 code, UINT32 pal, INT32 flipx, INT32 flipy, INT32 x, INT32 y, INT32 drawline)
-{
- UINT32 * dst = RamScreen;
- UINT8 * src = (UINT8 *) RamCRam;
- dst += (drawline * 1024 + x);
-
-#if BE_GFX
-
- if ( flipy ) {
- src += code * 256 + 16 * (15 - (drawline - y));
- if ( flipx ) {
- if ( src[ 0] ) dst[15] = src[ 0] | pal;
- if ( src[ 1] ) dst[14] = src[ 1] | pal;
- if ( src[ 2] ) dst[13] = src[ 2] | pal;
- if ( src[ 3] ) dst[12] = src[ 3] | pal;
- if ( src[ 4] ) dst[11] = src[ 4] | pal;
- if ( src[ 5] ) dst[10] = src[ 5] | pal;
- if ( src[ 6] ) dst[ 9] = src[ 6] | pal;
- if ( src[ 7] ) dst[ 8] = src[ 7] | pal;
- if ( src[ 8] ) dst[ 7] = src[ 8] | pal;
- if ( src[ 9] ) dst[ 6] = src[ 9] | pal;
- if ( src[10] ) dst[ 5] = src[10] | pal;
- if ( src[11] ) dst[ 4] = src[11] | pal;
- if ( src[12] ) dst[ 3] = src[12] | pal;
- if ( src[13] ) dst[ 2] = src[13] | pal;
- if ( src[14] ) dst[ 1] = src[14] | pal;
- if ( src[15] ) dst[ 0] = src[15] | pal;
- } else {
- if ( src[ 0] ) dst[ 0] = src[ 0] | pal;
- if ( src[ 1] ) dst[ 1] = src[ 1] | pal;
- if ( src[ 2] ) dst[ 2] = src[ 2] | pal;
- if ( src[ 3] ) dst[ 3] = src[ 3] | pal;
- if ( src[ 4] ) dst[ 4] = src[ 4] | pal;
- if ( src[ 5] ) dst[ 5] = src[ 5] | pal;
- if ( src[ 6] ) dst[ 6] = src[ 6] | pal;
- if ( src[ 7] ) dst[ 7] = src[ 7] | pal;
- if ( src[ 8] ) dst[ 8] = src[ 8] | pal;
- if ( src[ 9] ) dst[ 9] = src[ 9] | pal;
- if ( src[10] ) dst[10] = src[10] | pal;
- if ( src[11] ) dst[11] = src[11] | pal;
- if ( src[12] ) dst[12] = src[12] | pal;
- if ( src[13] ) dst[13] = src[13] | pal;
- if ( src[14] ) dst[14] = src[14] | pal;
- if ( src[15] ) dst[15] = src[15] | pal;
- }
- } else {
- src += code * 256 + 16 * (drawline - y);
- if ( flipx ) {
- if ( src[ 0] ) dst[15] = src[ 0] | pal;
- if ( src[ 1] ) dst[14] = src[ 1] | pal;
- if ( src[ 2] ) dst[13] = src[ 2] | pal;
- if ( src[ 3] ) dst[12] = src[ 3] | pal;
- if ( src[ 4] ) dst[11] = src[ 4] | pal;
- if ( src[ 5] ) dst[10] = src[ 5] | pal;
- if ( src[ 6] ) dst[ 9] = src[ 6] | pal;
- if ( src[ 7] ) dst[ 8] = src[ 7] | pal;
- if ( src[ 8] ) dst[ 7] = src[ 8] | pal;
- if ( src[ 9] ) dst[ 6] = src[ 9] | pal;
- if ( src[10] ) dst[ 5] = src[10] | pal;
- if ( src[11] ) dst[ 4] = src[11] | pal;
- if ( src[12] ) dst[ 3] = src[12] | pal;
- if ( src[13] ) dst[ 2] = src[13] | pal;
- if ( src[14] ) dst[ 1] = src[14] | pal;
- if ( src[15] ) dst[ 0] = src[15] | pal;
- } else {
- if ( src[ 0] ) dst[ 0] = src[ 0] | pal;
- if ( src[ 1] ) dst[ 1] = src[ 1] | pal;
- if ( src[ 2] ) dst[ 2] = src[ 2] | pal;
- if ( src[ 3] ) dst[ 3] = src[ 3] | pal;
- if ( src[ 4] ) dst[ 4] = src[ 4] | pal;
- if ( src[ 5] ) dst[ 5] = src[ 5] | pal;
- if ( src[ 6] ) dst[ 6] = src[ 6] | pal;
- if ( src[ 7] ) dst[ 7] = src[ 7] | pal;
- if ( src[ 8] ) dst[ 8] = src[ 8] | pal;
- if ( src[ 9] ) dst[ 9] = src[ 9] | pal;
- if ( src[10] ) dst[10] = src[10] | pal;
- if ( src[11] ) dst[11] = src[11] | pal;
- if ( src[12] ) dst[12] = src[12] | pal;
- if ( src[13] ) dst[13] = src[13] | pal;
- if ( src[14] ) dst[14] = src[14] | pal;
- if ( src[15] ) dst[15] = src[15] | pal;
- }
- }
-
-#else
-
- if ( flipy ) {
- src += code * 256 + 16 * (15 - (drawline - y));
- if ( flipx ) {
- if ( src[ 3] ) dst[15] = src[ 3] | pal;
- if ( src[ 2] ) dst[14] = src[ 2] | pal;
- if ( src[ 1] ) dst[13] = src[ 1] | pal;
- if ( src[ 0] ) dst[12] = src[ 0] | pal;
- if ( src[ 7] ) dst[11] = src[ 7] | pal;
- if ( src[ 6] ) dst[10] = src[ 6] | pal;
- if ( src[ 5] ) dst[ 9] = src[ 5] | pal;
- if ( src[ 4] ) dst[ 8] = src[ 4] | pal;
- if ( src[11] ) dst[ 7] = src[11] | pal;
- if ( src[10] ) dst[ 6] = src[10] | pal;
- if ( src[ 9] ) dst[ 5] = src[ 9] | pal;
- if ( src[ 8] ) dst[ 4] = src[ 8] | pal;
- if ( src[15] ) dst[ 3] = src[15] | pal;
- if ( src[14] ) dst[ 2] = src[14] | pal;
- if ( src[13] ) dst[ 1] = src[13] | pal;
- if ( src[12] ) dst[ 0] = src[12] | pal;
- } else {
- if ( src[ 3] ) dst[ 0] = src[ 3] | pal;
- if ( src[ 2] ) dst[ 1] = src[ 2] | pal;
- if ( src[ 1] ) dst[ 2] = src[ 1] | pal;
- if ( src[ 0] ) dst[ 3] = src[ 0] | pal;
- if ( src[ 7] ) dst[ 4] = src[ 7] | pal;
- if ( src[ 6] ) dst[ 5] = src[ 6] | pal;
- if ( src[ 5] ) dst[ 6] = src[ 5] | pal;
- if ( src[ 4] ) dst[ 7] = src[ 4] | pal;
- if ( src[11] ) dst[ 8] = src[11] | pal;
- if ( src[10] ) dst[ 9] = src[10] | pal;
- if ( src[ 9] ) dst[10] = src[ 9] | pal;
- if ( src[ 8] ) dst[11] = src[ 8] | pal;
- if ( src[15] ) dst[12] = src[15] | pal;
- if ( src[14] ) dst[13] = src[14] | pal;
- if ( src[13] ) dst[14] = src[13] | pal;
- if ( src[12] ) dst[15] = src[12] | pal;
- }
- } else {
- src += code * 256 + 16 * (drawline - y);
- if ( flipx ) {
- if ( src[ 3] ) dst[15] = src[ 3] | pal;
- if ( src[ 2] ) dst[14] = src[ 2] | pal;
- if ( src[ 1] ) dst[13] = src[ 1] | pal;
- if ( src[ 0] ) dst[12] = src[ 0] | pal;
- if ( src[ 7] ) dst[11] = src[ 7] | pal;
- if ( src[ 6] ) dst[10] = src[ 6] | pal;
- if ( src[ 5] ) dst[ 9] = src[ 5] | pal;
- if ( src[ 4] ) dst[ 8] = src[ 4] | pal;
- if ( src[11] ) dst[ 7] = src[11] | pal;
- if ( src[10] ) dst[ 6] = src[10] | pal;
- if ( src[ 9] ) dst[ 5] = src[ 9] | pal;
- if ( src[ 8] ) dst[ 4] = src[ 8] | pal;
- if ( src[15] ) dst[ 3] = src[15] | pal;
- if ( src[14] ) dst[ 2] = src[14] | pal;
- if ( src[13] ) dst[ 1] = src[13] | pal;
- if ( src[12] ) dst[ 0] = src[12] | pal;
- } else {
- if ( src[ 3] ) dst[ 0] = src[ 3] | pal;
- if ( src[ 2] ) dst[ 1] = src[ 2] | pal;
- if ( src[ 1] ) dst[ 2] = src[ 1] | pal;
- if ( src[ 0] ) dst[ 3] = src[ 0] | pal;
- if ( src[ 7] ) dst[ 4] = src[ 7] | pal;
- if ( src[ 6] ) dst[ 5] = src[ 6] | pal;
- if ( src[ 5] ) dst[ 6] = src[ 5] | pal;
- if ( src[ 4] ) dst[ 7] = src[ 4] | pal;
- if ( src[11] ) dst[ 8] = src[11] | pal;
- if ( src[10] ) dst[ 9] = src[10] | pal;
- if ( src[ 9] ) dst[10] = src[ 9] | pal;
- if ( src[ 8] ) dst[11] = src[ 8] | pal;
- if ( src[15] ) dst[12] = src[15] | pal;
- if ( src[14] ) dst[13] = src[14] | pal;
- if ( src[13] ) dst[14] = src[13] | pal;
- if ( src[12] ) dst[15] = src[12] | pal;
- }
- }
-
-#endif
-}
-
-static void cps3_drawgfxzoom_2(UINT32 code, UINT32 pal, INT32 flipx, INT32 flipy, INT32 sx, INT32 sy, INT32 scalex, INT32 scaley, INT32 alpha)
-{
- //if (!scalex || !scaley) return;
-
- UINT8 * source_base = (UINT8 *) RamCRam + code * 256;
-
- INT32 sprite_screen_height = (scaley * 16 + 0x8000) >> 16;
- INT32 sprite_screen_width = (scalex * 16 + 0x8000) >> 16;
- if (sprite_screen_width && sprite_screen_height) {
- // compute sprite increment per screen pixel
- INT32 dx = (16 << 16) / sprite_screen_width;
- INT32 dy = (16 << 16) / sprite_screen_height;
-
- INT32 ex = sx + sprite_screen_width;
- INT32 ey = sy + sprite_screen_height;
-
- INT32 x_index_base;
- INT32 y_index;
-
- if( flipx ) {
- x_index_base = (sprite_screen_width - 1) * dx;
- dx = -dx;
- } else
- x_index_base = 0;
-
- if( flipy ) {
- y_index = (sprite_screen_height - 1) * dy;
- dy = -dy;
- } else
- y_index = 0;
-
- {
- if( sx < 0)
- { /* clip left */
- INT32 pixels = 0-sx;
- sx += pixels;
- x_index_base += pixels*dx;
- }
- if( sy < 0 )
- { /* clip top */
- INT32 pixels = 0-sy;
- sy += pixels;
- y_index += pixels*dy;
- }
- if( ex > cps3_gfx_max_x+1 )
- { /* clip right */
- INT32 pixels = ex-cps3_gfx_max_x-1;
- ex -= pixels;
- }
- if( ey > cps3_gfx_max_y+1 )
- { /* clip bottom */
- INT32 pixels = ey-cps3_gfx_max_y-1;
- ey -= pixels;
- }
- }
-
- if( ex > sx ) {
- switch( alpha ) {
- case 0:
- for( INT32 y=sy; y>16) * 16;
- UINT32 * dest = RamScreen + y * 512 * 2;
- INT32 x_index = x_index_base;
- for(INT32 x=sx; x>16) ];
-#else
- UINT8 c = source[ (x_index>>16) ^ 3 ];
-#endif
- if( c ) dest[x] = pal | c;
- x_index += dx;
- }
- y_index += dy;
- }
- break;
- case 6:
- for( INT32 y=sy; y>16) * 16;
- UINT32 * dest = RamScreen + y * 512 * 2;
- INT32 x_index = x_index_base;
- for(INT32 x=sx; x>16)];
-#else
- UINT8 c = source[ (x_index>>16) ^ 3 ];
-#endif
- dest[x] |= ((c&0x0000f) << 13);
- x_index += dx;
- }
- y_index += dy;
- }
- break;
- case 8:
- for( INT32 y=sy; y>16) * 16;
- UINT32 * dest = RamScreen + y * 512 * 2;
- INT32 x_index = x_index_base;
- for(INT32 x=sx; x>16) ];
-#else
- UINT8 c = source[ (x_index>>16) ^ 3 ];
-#endif
-
- if (c) {
- dest[x] |= 0x8000;
- if (pal&0x10000) dest[x] |= 0x10000;
- }
- x_index += dx;
- }
- y_index += dy;
- }
- break;
- }
- }
- }
-}
-
-static void cps3_draw_tilemapsprite_line(INT32 drawline, UINT32 * regs )
-{
- INT32 scrolly = ((regs[0]&0x0000ffff)>>0)+4;
- INT32 line = drawline + scrolly;
- line &= 0x3ff;
-
- if (!(regs[1]&0x00008000)) return;
-
- {
- UINT32 mapbase = (regs[2]&0x007f0000)>>16;
- UINT32 linebase= (regs[2]&0x7f000000)>>24;
- INT32 linescroll_enable = (regs[1]&0x00004000);
-
- INT32 scrollx;
- INT32 tileline = (line/16)+1;
- INT32 tilesubline = line % 16;
-
- mapbase = mapbase << 10;
- linebase = linebase << 10;
-
- if (!linescroll_enable) {
- scrollx = (regs[0]&0xffff0000)>>16;
- } else {
- scrollx = (regs[0]&0xffff0000)>>16;
- scrollx+= (RamSpr[linebase+((line+16-4)&0x3ff)]>>16)&0x3ff;
- }
-
- if (drawline>cps3_gfx_max_y+4) return;
-
- for (INT32 x=0;x<(cps3_gfx_max_x/16)+2;x++) {
-
- UINT32 dat;
- INT32 tileno;
- INT32 colour;
- INT32 bpp;
- INT32 xflip,yflip;
-
- dat = RamSpr[mapbase+((tileline&63)*64)+((x+scrollx/16)&63)];
- tileno = (dat & 0xffff0000)>>17;
- colour = (dat & 0x000001ff)>>0;
- bpp = (dat & 0x0000200)>>9;
- yflip = (dat & 0x00000800)>>11;
- xflip = (dat & 0x00001000)>>12;
-
- if (!bpp) colour <<= 8;
- else colour <<= 6;
-
- cps3_drawgfxzoom_1(tileno,colour,xflip,yflip,(x*16)-scrollx%16,drawline-tilesubline, drawline);
- }
- }
-}
-
-static INT32 WideScreenFrameDelay = 0;
-
-static void DrvDraw()
-{
- INT32 bg_drawn[4] = { 0, 0, 0, 0 };
-
- UINT32 fullscreenzoom = RamVReg[ 6 * 4 + 3 ] & 0xff;
- UINT32 fullscreenzoomwidecheck = RamVReg[6 * 4 + 1];
-
- if (((fullscreenzoomwidecheck & 0xffff0000) >> 16) == 0x0265) {
- INT32 Width, Height;
- BurnDrvGetVisibleSize(&Width, &Height);
-
- if (Width != 496) {
- BurnDrvSetVisibleSize(496, 224);
- BurnDrvSetAspect(16, 9);
- Reinitialise();
- WideScreenFrameDelay = GetCurrentFrame() + 1;
- }
- } else {
- INT32 Width, Height;
- BurnDrvGetVisibleSize(&Width, &Height);
-
- if (Width != 384) {
- BurnDrvSetVisibleSize(384, 224);
- BurnDrvSetAspect(4, 3);
- Reinitialise();
- WideScreenFrameDelay = GetCurrentFrame() + 1;
- }
- }
-
- if (fullscreenzoom > 0x80) fullscreenzoom = 0x80;
- UINT32 fsz = (fullscreenzoom << (16 - 6));
-
- cps3_gfx_max_x = ((cps3_gfx_width * fsz) >> 16) - 1; // 384 ( 496 for SFIII2 Only)
- cps3_gfx_max_y = ((cps3_gfx_height * fsz) >> 16) - 1; // 224
-
- if (nBurnLayer & 1)
- {
- UINT32 * pscr = RamScreen;
- INT32 clrsz = (cps3_gfx_max_x + 1) * sizeof(INT32);
- for(INT32 yy = 0; yy<=cps3_gfx_max_y; yy++, pscr += 512*2)
- memset(pscr, 0, clrsz);
- }
- else
- {
- Cps3CurPal[0x20000] = BurnHighCol(0xff, 0x00, 0xff, 0);
-
- INT32 i;
- for (i = 0; i < 1024 * 448; i++) {
- RamScreen[i] = 0x20000;
- }
- }
-
- // Draw Sprites
- {
- for (INT32 i=0x00000/4;i<0x2000/4;i+=4) {
- INT32 xpos = (RamSpr[i+1]&0x03ff0000)>>16;
- INT32 ypos = (RamSpr[i+1]&0x000003ff)>>0;
-
- INT32 gscroll = (RamSpr[i+0]&0x70000000)>>28;
- INT32 length = (RamSpr[i+0]&0x01ff0000)>>14; // how many entries in the sprite table
- UINT32 start = (RamSpr[i+0]&0x00007ff0)>>4;
-
- INT32 whichbpp = (RamSpr[i+2]&0x40000000)>>30; // not 100% sure if this is right, jojo title / characters
- INT32 whichpal = (RamSpr[i+2]&0x20000000)>>29;
- INT32 global_xflip = (RamSpr[i+2]&0x10000000)>>28;
- INT32 global_yflip = (RamSpr[i+2]&0x08000000)>>27;
- INT32 global_alpha = (RamSpr[i+2]&0x04000000)>>26; // alpha / shadow? set on sfiii2 shadows, and big black image in jojo intro
- INT32 global_bpp = (RamSpr[i+2]&0x02000000)>>25;
- INT32 global_pal = (RamSpr[i+2]&0x01ff0000)>>16;
-
- INT32 gscrollx = (RamVReg[gscroll]&0x03ff0000)>>16;
- INT32 gscrolly = (RamVReg[gscroll]&0x000003ff)>>0;
-
- start = (start * 0x100) >> 2;
-
- if ((RamSpr[i+0]&0xf0000000) == 0x80000000) break;
-
- for (INT32 j=0; j>17;
- INT32 count;
- INT32 xpos2 = (value2 & 0x03ff0000)>>16;
- INT32 ypos2 = (value2 & 0x000003ff)>>0;
- INT32 flipx = (value1 & 0x00001000)>>12;
- INT32 flipy = (value1 & 0x00000800)>>11;
- INT32 alpha = (value1 & 0x00000400)>>10; //? this one is used for alpha effects on warzard
- INT32 bpp = (value1 & 0x00000200)>>9;
- INT32 pal = (value1 & 0x000001ff);
-
- INT32 ysizedraw2 = ((value3 & 0x7f000000)>>24);
- INT32 xsizedraw2 = ((value3 & 0x007f0000)>>16);
- INT32 xx,yy;
-
- INT32 tilestable[4] = { 8,1,2,4 };
- INT32 ysize2 = ((value3 & 0x0000000c)>>2);
- INT32 xsize2 = ((value3 & 0x00000003)>>0);
- UINT32 xinc,yinc;
-
- if (ysize2==0) continue;
-
- if (xsize2==0)
- {
- if (nBurnLayer & 1)
- {
- INT32 tilemapnum = ((value3 & 0x00000030)>>4);
- INT32 startline;
- INT32 endline;
- INT32 height = (value3 & 0x7f000000)>>24;
- UINT32 * regs;
-
- regs = RamVReg + 8 + tilemapnum * 4;
- endline = value2;
- startline = endline - height;
-
- startline &=0x3ff;
- endline &=0x3ff;
-
- if (bg_drawn[tilemapnum]==0)
- {
- UINT32 srcy = 0;
- for (INT32 ry = 0; ry < 224; ry++, srcy += fsz) {
- cps3_draw_tilemapsprite_line( srcy >> 16, regs );
- }
- }
-
- bg_drawn[tilemapnum] = 1;
- }
- } else {
- if (~nSpriteEnable & 1) continue;
-
- ysize2 = tilestable[ysize2];
- xsize2 = tilestable[xsize2];
-
- xinc = ((xsizedraw2+1)<<16) / ((xsize2*0x10));
- yinc = ((ysizedraw2+1)<<16) / ((ysize2*0x10));
-
- xsize2-=1;
- ysize2-=1;
-
- flipx ^= global_xflip;
- flipy ^= global_yflip;
-
- if (!flipx) xpos2+=((xsizedraw2+1)/2);
- else xpos2-=((xsizedraw2+1)/2);
-
- ypos2+=((ysizedraw2+1)/2);
-
- if (!flipx) xpos2-= (((xsize2+1)*16*xinc)>>16);
- else xpos2+= (((xsize2)*16*xinc)>>16);
-
- if (flipy) ypos2-= ((ysize2*16*yinc)>>16);
-
- {
- count = 0;
- for (xx=0;xx>16) );
- else current_xpos = (xpos+xpos2-((xx*16*xinc)>>16));
-
- current_xpos += gscrollx;
- current_xpos += 1;
- current_xpos &=0x3ff;
- if (current_xpos&0x200) current_xpos-=0x400;
-
- for (yy=0;yy>16));
- else current_ypos = (ypos+ypos2-((yy*16*yinc)>>16));
-
- current_ypos += gscrolly;
- current_ypos = 0x3ff-current_ypos;
- current_ypos -= 17;
- current_ypos &=0x3ff;
-
- if (current_ypos&0x200) current_ypos-=0x400;
-
- /* use the palette value from the main list or the sublists? */
- if (whichpal) actualpal = global_pal;
- else actualpal = pal;
-
- /* use the bpp value from the main list or the sublists? */
- INT32 color_granularity;
- if (whichbpp) {
- if (!global_bpp) color_granularity = 8;
- else color_granularity = 6;
- } else {
- if (!bpp) color_granularity = 8;
- else color_granularity = 6;
- }
- actualpal <<= color_granularity;
-
- {
- INT32 realtileno = tileno+count;
-
- if ( realtileno ) {
- if (global_alpha || alpha) {
- // fix jojo's title in it's intro ???
- if ( global_alpha && (global_pal & 0x100))
- actualpal &= 0x0ffff;
-
- cps3_drawgfxzoom_2(realtileno,actualpal,flipx,flipy,current_xpos,current_ypos,xinc,yinc, color_granularity);
-
- } else {
- cps3_drawgfxzoom_2(realtileno,actualpal,flipx,flipy,current_xpos,current_ypos,xinc,yinc, 0);
- }
- }
- count++;
- }
- }
- }
- }
- }
- }
- }
- }
-
- {
- UINT32 srcx, srcy = 0;
- UINT32 * srcbitmap;
- UINT16 * dstbitmap = (UINT16 * )pBurnDraw;
-
- for (INT32 rendery=0; rendery<224; rendery++) {
- srcbitmap = RamScreen + (srcy >> 16) * 1024;
- srcx=0;
- for (INT32 renderx=0; renderx>16] ];
- srcx += fsz;
- }
- srcy += fsz;
- }
- }
-
- if (nBurnLayer & 2)
- {
- // bank select? (sfiii2 intro)
- INT32 count = (ss_bank_base & 0x01000000) ? 0x0000 : 0x0800;
- for (INT32 y=0; y<32-4; y++) {
- for (INT32 x=0; x<64; x++, count++) {
- UINT32 data = RamSS[count]; // +0x800 = 2nd bank, used on sfiii2 intro..
- UINT32 tile = (data >> 16) & 0x1ff;
- INT32 pal = (data & 0x003f) >> 1;
- INT32 flipx = data & 0x0080;
- INT32 flipy = data & 0x0040;
- pal += ss_pal_base << 5;
-
- if (tile == 0) continue; // ok?
-
- tile+=0x200;
- cps3_drawgfxzoom_0(tile,pal,flipx,flipy,x*8,y*8);
- }
- }
- }
-}
-
-static INT32 cps_int10_cnt = 0;
-
-INT32 cps3Frame()
-{
- if (cps3_reset)
- Cps3Reset();
-
- if (cps3_palette_change) {
- for(INT32 i=0;i<0x0020000;i++) {
-#ifdef LSB_FIRST
- INT32 data = RamPal[i ^ 1];
-#else
- INT32 data = RamPal[i];
-#endif
- INT32 r = (data & 0x001F) << 3; // Red
- INT32 g = (data & 0x03E0) >> 2; // Green
- INT32 b = (data & 0x7C00) >> 7; // Blue
- r |= r >> 5;
- g |= g >> 5;
- b |= b >> 5;
- Cps3CurPal[i] = BurnHighCol(r, g, b, 0);
- }
- cps3_palette_change = 0;
- }
-
- if (WideScreenFrameDelay == GetCurrentFrame()) {
- BurnDrvGetVisibleSize(&cps3_gfx_width, &cps3_gfx_height);
- WideScreenFrameDelay = 0;
- }
-
-// EEPROM[0x11] = 0x100 + (EEPROM[0x11] & 0xff);
-// EEPROM[0x29] = 0x100 + (EEPROM[0x29] & 0xff);
-
- Cps3Input[0] = 0;
- Cps3Input[1] = 0;
- //Cps3Input[2] = 0;
- Cps3Input[3] = 0;
- for (INT32 i=0; i<16; i++) {
- Cps3Input[0] |= (Cps3But1[i] & 1) << i;
- Cps3Input[1] |= (Cps3But2[i] & 1) << i;
- Cps3Input[3] |= (Cps3But3[i] & 1) << i;
- }
-
- // Clear Opposites
- Cps3ClearOpposites(&Cps3Input[0]);
- Cps3ClearOpposites(&Cps3Input[1]);
-
- for (INT32 i=0; i<4; i++) {
-
- Sh2Run(6250000 * 4 / 60 / 4);
-
- if (cps_int10_cnt >= 2) {
- cps_int10_cnt = 0;
- Sh2SetIRQLine(10, CPU_IRQSTATUS_ACK);
- } else cps_int10_cnt++;
-
- }
- Sh2SetIRQLine(12, CPU_IRQSTATUS_ACK);
-
- cps3SndUpdate();
-
-// bprintf(0, _T("PC: %08x\n"), Sh2GetPC(0));
-
- if (pBurnDraw) DrvDraw();
-
- return 0;
-}
-
-INT32 cps3Scan(INT32 nAction, INT32 *pnMin)
-{
- if (pnMin) *pnMin = 0x029672;
-
- struct BurnArea ba;
-
- if (nAction & ACB_NVRAM) {
- // Save EEPROM configuration
- ba.Data = EEPROM;
- ba.nLen = 0x0000400;
- ba.nAddress = 0;
- ba.szName = "EEPROM RAM";
- BurnAcb(&ba);
- }
-
- if (nAction & ACB_MEMORY_RAM) {
-
- ba.Data = RamMain;
- ba.nLen = 0x0080000;
- ba.nAddress = 0;
- ba.szName = "Main RAM";
- BurnAcb(&ba);
-
- ba.Data = RamSpr;
- ba.nLen = 0x0080000;
- ba.nAddress = 0;
- ba.szName = "Sprite RAM";
- BurnAcb(&ba);
-
- ba.Data = RamSS;
- ba.nLen = 0x0010000;
- ba.nAddress = 0;
- ba.szName = "Char ROM";
- BurnAcb(&ba);
-
- ba.Data = RamVReg;
- ba.nLen = 0x0000100;
- ba.nAddress = 0;
- ba.szName = "Video REG";
- BurnAcb(&ba);
-
- ba.Data = RamC000;
- ba.nLen = 0x0000400 * 2;
- ba.nAddress = 0;
- ba.szName = "RAM C000";
- BurnAcb(&ba);
-
- ba.Data = RamPal;
- ba.nLen = 0x0040000;
- ba.nAddress = 0;
- ba.szName = "Palette";
- BurnAcb(&ba);
-
- ba.Data = RamCRam;
- ba.nLen = 0x0800000;
- ba.nAddress = 0;
- ba.szName = "Sprite ROM";
- BurnAcb(&ba);
-
-/* // so huge. need not backup it while NOCD
- // otherwize, need backup gfx also
- ba.Data = RomGame;
- ba.nLen = 0x1000000;
- ba.nAddress = 0;
- ba.szName = "Game ROM";
- BurnAcb(&ba);
-*/
- }
-
- if (nAction & ACB_DRIVER_DATA) {
-
- Sh2Scan(nAction);
- cps3SndScan(nAction);
-
- SCAN_VAR(Cps3Input);
-
- SCAN_VAR(ss_bank_base);
- SCAN_VAR(ss_pal_base);
- SCAN_VAR(cram_bank);
- SCAN_VAR(cps3_current_eeprom_read);
- SCAN_VAR(gfxflash_bank);
-
- SCAN_VAR(paldma_source);
- SCAN_VAR(paldma_dest);
- SCAN_VAR(paldma_fade);
- SCAN_VAR(paldma_length);
-
- SCAN_VAR(chardma_source);
- SCAN_VAR(chardma_table_address);
-
- //SCAN_VAR(main_flash);
-
- //SCAN_VAR(last_normal_byte);
- //SCAN_VAR(lastb);
- //SCAN_VAR(lastb2);
-
- SCAN_VAR(cps_int10_cnt);
-
- if (nAction & ACB_WRITE) {
-
- // rebuild current palette
- cps3_palette_change = 1;
-
- // remap RamCRam
- Sh2MapMemory(((UINT8 *)RamCRam) + (cram_bank << 20), 0x04100000, 0x041fffff, MAP_RAM);
-
- }
-
- }
-
- return 0;
-}
diff --git a/jan/src/burn/drv/cps3/cps3snd.cpp b/jan/src/burn/drv/cps3/cps3snd.cpp
deleted file mode 100644
index b23e1bf1e..000000000
--- a/jan/src/burn/drv/cps3/cps3snd.cpp
+++ /dev/null
@@ -1,234 +0,0 @@
-#include "cps3.h"
-
-// CPS-3 sound emulation by Philip Bennett
-
-#define CPS3_VOICES 16
-
-#define CPS3_SND_INT_RATE (nBurnFPS / 100)
-#define CPS3_SND_RATE (42954500 / 3 / 384)
-#define CPS3_SND_BUFFER_SIZE (CPS3_SND_RATE / CPS3_SND_INT_RATE)
-#define CPS3_SND_LINEAR_SHIFT 12
-
-typedef struct {
- UINT16 regs[16];
- UINT32 pos;
- UINT16 frac;
-} cps3_voice;
-
-typedef struct {
- cps3_voice voice[CPS3_VOICES];
- UINT16 key;
-
- UINT8 * rombase;
- UINT32 delta;
-
- double gain[2];
- INT32 output_dir[2];
-
-} cps3snd_chip;
-
-static cps3snd_chip * chip;
-
-UINT8 __fastcall cps3SndReadByte(UINT32 addr)
-{
- addr &= 0x000003ff;
- bprintf(PRINT_NORMAL, _T("SND Attempt to read byte value of location %8x\n"), addr);
- return 0;
-}
-
-UINT16 __fastcall cps3SndReadWord(UINT32 addr)
-{
- addr &= 0x000003ff;
-
- if (addr < 0x200) {
- return chip->voice[addr >> 5].regs[(addr>>1) & 0xf];
- } else
- if (addr == 0x200) {
- return chip->key;
- } else
-
- bprintf(PRINT_NORMAL, _T("SND Attempt to read word value of location %8x\n"), addr);
- return 0;
-}
-
-UINT32 __fastcall cps3SndReadLong(UINT32 addr)
-{
- addr &= 0x000003ff;
-
- bprintf(PRINT_NORMAL, _T("SND Attempt to read long value of location %8x\n"), addr);
- return 0;
-}
-
-void __fastcall cps3SndWriteByte(UINT32 addr, UINT8 data)
-{
- addr &= 0x000003ff;
- bprintf(PRINT_NORMAL, _T("SND Attempt to write byte value %2x to location %8x\n"), data, addr);
-}
-
-void __fastcall cps3SndWriteWord(UINT32 addr, UINT16 data)
-{
- addr &= 0x000003ff;
-
- if (addr < 0x200) {
- chip->voice[addr >> 5].regs[(addr>>1) & 0xf] = data;
- //bprintf(PRINT_NORMAL, _T("SND Attempt to write word value %4x to Chip[%02d][%02d] %s\n"), data, addr >> 5, (addr>>2) & 7, (addr & 0x02) ? "lo" : "hi" );
- } else
- if (addr == 0x200) {
- UINT16 key = data;
- for (INT32 i = 0; i < CPS3_VOICES; i++) {
- // Key off -> Key on
- if ((key & (1 << i)) && !(chip->key & (1 << i))) {
- chip->voice[i].frac = 0;
- chip->voice[i].pos = 0;
- }
- }
- chip->key = key;
- } else
- bprintf(PRINT_NORMAL, _T("SND Attempt to write word value %4x to location %8x\n"), data, addr);
-
-}
-
-void __fastcall cps3SndWriteLong(UINT32 addr, UINT32 data)
-{
- //addr &= 0x000003ff;
- bprintf(PRINT_NORMAL, _T("SND Attempt to write long value %8x to location %8x\n"), data, addr);
-}
-
-INT32 cps3SndInit(UINT8 * sndrom)
-{
- chip = (cps3snd_chip *)BurnMalloc( sizeof(cps3snd_chip) );
- if ( chip ) {
- memset( chip, 0, sizeof(cps3snd_chip) );
- chip->rombase = sndrom;
-
- /*
- * CPS-3 Sound chip clock: 42954500 / 3 / 384 = 37286.89
- * Sound interupt 80Hz
- */
-
- if (nBurnSoundRate) {
- //chip->delta = 37286.9 / nBurnSoundRate;
- chip->delta = (CPS3_SND_BUFFER_SIZE << CPS3_SND_LINEAR_SHIFT) / nBurnSoundLen;
- //bprintf(0, _T("BurnSnd %08x, %d, %d\n"), chip->delta, chip->burnlen, nBurnSoundLen);
- }
-
- chip->gain[BURN_SND_CPS3SND_ROUTE_1] = 1.00;
- chip->gain[BURN_SND_CPS3SND_ROUTE_2] = 1.00;
- chip->output_dir[BURN_SND_CPS3SND_ROUTE_1] = BURN_SND_ROUTE_LEFT;
- chip->output_dir[BURN_SND_CPS3SND_ROUTE_2] = BURN_SND_ROUTE_RIGHT;
-
- return 0;
- }
- return 1;
-}
-
-void cps3SndSetRoute(INT32 nIndex, double nVolume, INT32 nRouteDir)
-{
- chip->gain[nIndex] = nVolume;
- chip->output_dir[nIndex] = nRouteDir;
-}
-
-void cps3SndReset()
-{
-}
-
-void cps3SndExit()
-{
- BurnFree( chip );
-}
-
-void cps3SndUpdate()
-{
- if (!pBurnSoundOut) {
- // TODO: ???
- // chip->key = 0;
- return;
- }
-
- memset(pBurnSoundOut, 0, nBurnSoundLen * 2 * sizeof(INT16));
- INT8 * base = (INT8 *)chip->rombase;
- cps3_voice *vptr = &chip->voice[0];
-
- for(INT32 i=0; ikey & (1 << i)) {
-
- UINT32 start = ((vptr->regs[ 3] << 16) | vptr->regs[ 2]) - 0x400000;
- UINT32 end = ((vptr->regs[11] << 16) | vptr->regs[10]) - 0x400000;
- UINT32 loop = ((vptr->regs[ 9] << 16) | vptr->regs[ 7]) - 0x400000;
- UINT32 step = ( vptr->regs[ 6] * chip->delta ) >> CPS3_SND_LINEAR_SHIFT;
-
- //INT32 vol_l = ((signed short)vptr->regs[15] * 12) >> 4;
- //INT32 vol_r = ((signed short)vptr->regs[14] * 12) >> 4;
- INT32 vol_l = (INT16)vptr->regs[15];
- INT32 vol_r = (INT16)vptr->regs[14];
-
- UINT32 pos = vptr->pos;
- UINT32 frac = vptr->frac;
-
- /* Go through the buffer and add voice contributions */
- INT16 * buffer = (INT16 *)pBurnSoundOut;
-
- for (INT32 j=0; j> 12);
- frac &= 0xfff;
-
- if (start + pos >= end) {
- if (vptr->regs[5]) {
- pos = loop - start;
- } else {
- // chip->key &= ~(1 << i);
- // don't force key off [hap 5/31/14]
- break;
- }
- }
-
- // 8bit sample store with 16bit bigend ???
- sample = base[(start + pos) ^ 1];
- frac += step;
-
- INT32 nLeftSample = 0, nRightSample = 0;
-
- if ((chip->output_dir[BURN_SND_CPS3SND_ROUTE_1] & BURN_SND_ROUTE_LEFT) == BURN_SND_ROUTE_LEFT) {
- nLeftSample += (INT32)(((sample * vol_l) >> 8) * chip->gain[BURN_SND_CPS3SND_ROUTE_1]);
- }
- if ((chip->output_dir[BURN_SND_CPS3SND_ROUTE_1] & BURN_SND_ROUTE_RIGHT) == BURN_SND_ROUTE_RIGHT) {
- nRightSample += (INT32)(((sample * vol_l) >> 8) * chip->gain[BURN_SND_CPS3SND_ROUTE_1]);
- }
-
- if ((chip->output_dir[BURN_SND_CPS3SND_ROUTE_2] & BURN_SND_ROUTE_LEFT) == BURN_SND_ROUTE_LEFT) {
- nLeftSample += (INT32)(((sample * vol_r) >> 8) * chip->gain[BURN_SND_CPS3SND_ROUTE_2]);
- }
- if ((chip->output_dir[BURN_SND_CPS3SND_ROUTE_2] & BURN_SND_ROUTE_RIGHT) == BURN_SND_ROUTE_RIGHT) {
- nRightSample += (INT32)(((sample * vol_r) >> 8) * chip->gain[BURN_SND_CPS3SND_ROUTE_2]);
- }
-
- nLeftSample = BURN_SND_CLIP(nLeftSample + buffer[1]);
- nRightSample = BURN_SND_CLIP(nRightSample + buffer[0]);
-
- buffer[0] = nRightSample;
- buffer[1] = nLeftSample;
-
- buffer += 2;
- }
-
-
- vptr->pos = pos;
- vptr->frac = frac;
- }
- }
-
-}
-
-INT32 cps3SndScan(INT32 nAction)
-{
- if (nAction & ACB_DRIVER_DATA) {
-
- SCAN_VAR( chip->voice );
- SCAN_VAR( chip->key );
-
- }
- return 0;
-}
-
diff --git a/jan/src/burn/drv/cps3/d_cps3.cpp b/jan/src/burn/drv/cps3/d_cps3.cpp
deleted file mode 100644
index ba25c95fe..000000000
--- a/jan/src/burn/drv/cps3/d_cps3.cpp
+++ /dev/null
@@ -1,1563 +0,0 @@
-// ------------------------------------------------------------------------------------
-// Capcom Play System III Drivers for FB Alpha (2007 - 2008).
-// ------------------------------------------------------------------------------------
-// Based on MAME driver by David Haywood, Andreas Naive, El Semi, Philip Bennett,
-// and Tomasz Slanina
-//
-// v1 [ OopsWare ]
-// - Original drivers release.
-//
-// v2 [ CaptainCPS-X ]
-// - Verified drivers.
-// - Updated DIPs.
-// - Updated some Inits.
-// - Added some Comments.
-//
-// v3 [ BisonSAS ]
-// - Added default game regions DIPs.
-// - Added unicode titles for "jojo" and "jojoba".
-// - Changed the redeartn BIOS to "warzard_euro.29f400.u2".
-// - Added "HARDWARE_CAPCOM_CPS3_NO_CD" flag for NOCD sets.
-//
-// v4 [ CaptainCPS-X ]
-// - Updated comments & organized structures of code.
-// - Revised code for compatibility with FB Alpha Enhanced.
-//
-// More info: http://neosource.1emu.net/forums/index.php
-//
-// ------------------------------------------------------------------------------------
-
-#include "cps3.h"
-
-static struct BurnInputInfo cps3InputList[] = {
- {"P1 Coin", BIT_DIGITAL, Cps3But2 + 8, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, Cps3But2 + 12, "p1 start" },
-
- {"P1 Up", BIT_DIGITAL, Cps3But1 + 0, "p1 up" },
- {"P1 Down", BIT_DIGITAL, Cps3But1 + 1, "p1 down" },
- {"P1 Left", BIT_DIGITAL, Cps3But1 + 2, "p1 left" },
- {"P1 Right", BIT_DIGITAL, Cps3But1 + 3, "p1 right" },
- {"P1 Weak Punch", BIT_DIGITAL, Cps3But1 + 4, "p1 fire 1" },
- {"P1 Medium Punch", BIT_DIGITAL, Cps3But1 + 5, "p1 fire 2" },
- {"P1 Strong Punch", BIT_DIGITAL, Cps3But1 + 6, "p1 fire 3" },
- {"P1 Weak Kick", BIT_DIGITAL, Cps3But3 + 3, "p1 fire 4" },
- {"P1 Medium Kick", BIT_DIGITAL, Cps3But3 + 2, "p1 fire 5" },
- {"P1 Strong Kick", BIT_DIGITAL, Cps3But3 + 1, "p1 fire 6" },
-
- {"P2 Coin", BIT_DIGITAL, Cps3But2 + 9, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, Cps3But2 + 13, "p2 start" },
-
- {"P2 Up", BIT_DIGITAL, Cps3But1 + 8, "p2 up" },
- {"P2 Down", BIT_DIGITAL, Cps3But1 + 9, "p2 down" },
- {"P2 Left", BIT_DIGITAL, Cps3But1 + 10, "p2 left" },
- {"P2 Right", BIT_DIGITAL, Cps3But1 + 11, "p2 right" },
- {"P2 Weak Punch", BIT_DIGITAL, Cps3But1 + 12, "p2 fire 1" },
- {"P2 Medium Punch", BIT_DIGITAL, Cps3But1 + 13, "p2 fire 2" },
- {"P2 Strong Punch", BIT_DIGITAL, Cps3But1 + 14, "p2 fire 3" },
- {"P2 Weak Kick", BIT_DIGITAL, Cps3But3 + 4, "p2 fire 4" },
- {"P2 Medium Kick", BIT_DIGITAL, Cps3But3 + 5, "p2 fire 5" },
- {"P2 Strong Kick", BIT_DIGITAL, Cps3But2 + 10, "p2 fire 6" },
-
- {"Reset", BIT_DIGITAL, &cps3_reset, "reset" },
- {"Diagnostic", BIT_DIGITAL, Cps3But2 + 1, "diag" },
- {"Service", BIT_DIGITAL, Cps3But2 + 0, "service" },
- {"Region", BIT_DIPSWITCH, &cps3_dip, "dip" },
-};
-
-STDINPUTINFO(cps3)
-
-// ------------------------------------------------------------------------------------
-
-static struct BurnDIPInfo regionDIPList[] = {
-
- // Region
- {0, 0xFD, 0, 7, "Region"},
- {0x1B, 0x01, 0xFF, 0x01, "Japan"},
- {0x1B, 0x01, 0xFF, 0x02, "Asia"},
- {0x1B, 0x01, 0xFF, 0x03, "Euro"},
- {0x1B, 0x01, 0xFF, 0x04, "USA"},
- {0x1B, 0x01, 0xFF, 0x05, "Hispanic"},
- {0x1B, 0x01, 0xFF, 0x06, "Brazil"},
- {0x1B, 0x01, 0xFF, 0x07, "Oceania"},
- {0x1B, 0x01, 0xFF, 0x08, "Asia"},
- {0x1B, 0x01, 0xFF, 0x00, "XXXXXX"},
-
-// {0, 0xFE, 0, 2, "NO CD"},
-// {0x1B, 0x01, 0x10, 0x00, "No"},
-// {0x1B, 0x01, 0x10, 0x10, "Yes"},
-};
-
-static struct BurnDIPInfo jojobaRegionDIPList[] = {
-
- // Region
- {0, 0xFD, 0, 8, "Region"},
- {0x1B, 0x01, 0xFF, 0x01, "Japan"},
- {0x1B, 0x01, 0xFF, 0x02, "Asia"},
- {0x1B, 0x01, 0xFF, 0x03, "Euro"},
- {0x1B, 0x01, 0xFF, 0x04, "USA"},
- {0x1B, 0x01, 0xFF, 0x05, "Hispanic"},
- {0x1B, 0x01, 0xFF, 0x06, "Brazil"},
- {0x1B, 0x01, 0xFF, 0x07, "Oceania"},
- {0x1B, 0x01, 0xFF, 0x08, "Korea"}, // fake region?
- {0x1B, 0x01, 0xFF, 0x00, "XXXXXX"},
-};
-
-static struct BurnDIPInfo redeartnRegionDIPList[] = {
-
- // Region
- {0, 0xFD, 0, 7, "Region"},
- {0x1B, 0x01, 0xFF, 0x51, "Japan"},
- {0x1B, 0x01, 0xFF, 0x52, "Asia"},
- {0x1B, 0x01, 0xFF, 0x53, "Euro"},
- {0x1B, 0x01, 0xFF, 0x54, "USA"},
- {0x1B, 0x01, 0xFF, 0x55, "Hispanic"},
- {0x1B, 0x01, 0xFF, 0x56, "Brazil"},
- {0x1B, 0x01, 0xFF, 0x57, "Oceania"},
- {0x1B, 0x01, 0xFF, 0x58, "Asia"},
- {0x1B, 0x01, 0xFF, 0x50, "Japan"},
-};
-
-static struct BurnDIPInfo sfiiiDIPList[] = {
-
- // Region
- {0, 0xFD, 0, 7, "Region"},
- {0x1B, 0x01, 0x0F, 0x01, "Japan"},
- {0x1B, 0x01, 0x0F, 0x02, "Asia"},
- {0x1B, 0x01, 0x0F, 0x03, "Euro"},
- {0x1B, 0x01, 0x0F, 0x04, "USA"},
- {0x1B, 0x01, 0x0F, 0x05, "Hispanic"},
- {0x1B, 0x01, 0x0F, 0x06, "Brazil"},
- {0x1B, 0x01, 0x0F, 0x07, "Oceania"},
- {0x1B, 0x01, 0x0F, 0x08, "Asia"},
- {0x1B, 0x01, 0x0F, 0x00, "XXXXXX"},
-
- {0, 0xFD, 0, 2, "Fake Widescreen DIP"},
- {0x1B, 0x01, 0x80, 0x80, "Widescreen"},
- {0x1B, 0x01, 0x80, 0x00, "Normal"},
-
-// {0, 0xFE, 0, 2, "NO CD"},
-// {0x1B, 0x01, 0x10, 0x00, "No"},
-// {0x1B, 0x01, 0x10, 0x10, "Yes"},
-};
-
-static struct BurnDIPInfo japanRegionDIPList[] = {
-
- // Defaults
- {0x1B, 0xFF, 0xFF, 0x01, NULL},
-};
-
-static struct BurnDIPInfo asiaRegionDIPList[] = {
-
- // Defaults
- {0x1B, 0xFF, 0xFF, 0x02, NULL},
-};
-
-static struct BurnDIPInfo euroRegionDIPList[] = {
-
- // Defaults
- {0x1B, 0xFF, 0xFF, 0x03, NULL},
-};
-
-static struct BurnDIPInfo usaRegionDIPList[] = {
-
- // Defaults
- {0x1B, 0xFF, 0xFF, 0x04, NULL},
-};
-
-static struct BurnDIPInfo hispanicRegionDIPList[] = {
-
- // Defaults
- {0x1B, 0xFF, 0xFF, 0x05, NULL},
-};
-
-static struct BurnDIPInfo euroRedeartnDIPList[] = {
-
- // Defaults
- {0x1B, 0xFF, 0xFF, 0x53, NULL},
-};
-
-static struct BurnDIPInfo japanwarzardDIPList[] = {
-
- // Defaults
- {0x1B, 0xFF, 0xFF, 0x51, NULL},
-};
-
-STDDIPINFOEXT(japan, region, japanRegion)
-STDDIPINFOEXT(asia, region, asiaRegion)
-STDDIPINFOEXT(euro, region, euroRegion)
-STDDIPINFOEXT(usa, region, usaRegion)
-STDDIPINFOEXT(jojoba, jojobaRegion, japanRegion)
-STDDIPINFOEXT(jojobane, jojobaRegion, euroRegion)
-STDDIPINFOEXT(redearth, redeartnRegion, euroRedeartn)
-STDDIPINFOEXT(warzard, redeartnRegion, japanwarzard)
-STDDIPINFOEXT(sfiiihispanic, sfiii, hispanicRegion)
-STDDIPINFOEXT(sfiiijapan, sfiii, japanRegion)
-STDDIPINFOEXT(sfiiiasia, sfiii, asiaRegion)
-STDDIPINFOEXT(sfiiiusa, sfiii, usaRegion)
-STDDIPINFOEXT(sfiiieuro, sfiii, euroRegion)
-
-// -------------------------------------------
-// Street Fighter III: New Generation (970204)
-// -------------------------------------------
-
-#define SFIII_970204_FLASH \
- { "sfiii-simm1.0", 0x200000, 0xcfc9e45a, BRF_ESS | BRF_PRG }, \
- { "sfiii-simm1.1", 0x200000, 0x57920546, BRF_ESS | BRF_PRG }, \
- { "sfiii-simm1.2", 0x200000, 0x0d8f2680, BRF_ESS | BRF_PRG }, \
- { "sfiii-simm1.3", 0x200000, 0xea4ca054, BRF_ESS | BRF_PRG }, \
- { "sfiii-simm3.0", 0x200000, 0x080b3bd3, BRF_GRA }, \
- { "sfiii-simm3.1", 0x200000, 0x5c356f2f, BRF_GRA }, \
- { "sfiii-simm3.2", 0x200000, 0xf9c97a45, BRF_GRA }, \
- { "sfiii-simm3.3", 0x200000, 0x09de3ead, BRF_GRA }, \
- { "sfiii-simm3.4", 0x200000, 0x7dd7e1f3, BRF_GRA }, \
- { "sfiii-simm3.5", 0x200000, 0x47a03a3a, BRF_GRA }, \
- { "sfiii-simm3.6", 0x200000, 0xe9eb7a26, BRF_GRA }, \
- { "sfiii-simm3.7", 0x200000, 0x7f44395c, BRF_GRA }, \
- { "sfiii-simm4.0", 0x200000, 0x9ac080fc, BRF_GRA }, \
- { "sfiii-simm4.1", 0x200000, 0x6e2c4c94, BRF_GRA }, \
- { "sfiii-simm4.2", 0x200000, 0x8afc22d4, BRF_GRA }, \
- { "sfiii-simm4.3", 0x200000, 0x9f3873b8, BRF_GRA }, \
- { "sfiii-simm4.4", 0x200000, 0x166b3c97, BRF_GRA }, \
- { "sfiii-simm4.5", 0x200000, 0xe5ea2547, BRF_GRA }, \
- { "sfiii-simm4.6", 0x200000, 0xe85b9fdd, BRF_GRA }, \
- { "sfiii-simm4.7", 0x200000, 0x362c01b7, BRF_GRA }, \
- { "sfiii-simm5.0", 0x200000, 0x9bc108b2, BRF_GRA }, \
- { "sfiii-simm5.1", 0x200000, 0xc6f1c066, BRF_GRA },
-
-// -----------------------------------------------
-// Street Fighter III: New Generation (Euro 970204)
-// -----------------------------------------------
-static struct BurnRomInfo sfiiiRomDesc[] = {
-
- { "sfiii_euro.29f400.u2", 0x080000, 0x27699ddc, BRF_ESS | BRF_BIOS }, // SH-2 Bios
-
-#if !defined ROM_VERIFY
- SFIII_970204_FLASH
-#endif
-};
-
-STD_ROM_PICK(sfiii)
-STD_ROM_FN(sfiii)
-
-// -----------------------------------------------
-// Street Fighter III: New Generation (USA 970204)
-// -----------------------------------------------
-static struct BurnRomInfo sfiiiuRomDesc[] = {
-
- { "sfiii_usa_region_b1.29f400.u2", 0x080000, 0xfb172a8e, BRF_ESS | BRF_BIOS }, // SH-2 Bios
-
-#if !defined ROM_VERIFY
- SFIII_970204_FLASH
-#endif
-};
-
-STD_ROM_PICK(sfiiiu)
-STD_ROM_FN(sfiiiu)
-
-// -----------------------------------------------
-// Street Fighter III: New Generation (Asia 970204)
-// -----------------------------------------------
-static struct BurnRomInfo sfiiiaRomDesc[] = {
-
- { "sfiii_asia_region_bd.29f400.u2", 0x080000, 0xcbd28de7, BRF_ESS | BRF_BIOS }, // SH-2 Bios
-
-#if !defined ROM_VERIFY
- SFIII_970204_FLASH
-#endif
-};
-
-STD_ROM_PICK(sfiiia)
-STD_ROM_FN(sfiiia)
-
-// -------------------------------------------------
-// Street Fighter III: New Generation (Japan 970204)
-// -------------------------------------------------
-static struct BurnRomInfo sfiiijRomDesc[] = {
-
- { "sfiii_japan.29f400.u2", 0x080000, 0x74205250, BRF_ESS | BRF_BIOS }, // SH-2 Bios
-
-#if !defined ROM_VERIFY
- SFIII_970204_FLASH
-#endif
-};
-
-STD_ROM_PICK(sfiiij)
-STD_ROM_FN(sfiiij)
-
-// ----------------------------------------------------
-// Street Fighter III: New Generation (Hispanic 970204)
-// ----------------------------------------------------
-static struct BurnRomInfo sfiiihRomDesc[] = {
-
- { "sfiii_hispanic.29f400.u2", 0x080000, 0xd2b3cd48, BRF_ESS | BRF_BIOS }, // SH-2 Bios
-
-#if !defined ROM_VERIFY
- SFIII_970204_FLASH
-#endif
-};
-
-STD_ROM_PICK(sfiiih)
-STD_ROM_FN(sfiiih)
-
-// -------------------------------------------------------------------
-// Street Fighter III: New Generation (Asia 970204, NO CD, bios set 1)
-// -------------------------------------------------------------------
-static struct BurnRomInfo sfiiinRomDesc[] = {
-
- { "sfiii_asia_nocd.29f400.u2", 0x080000, 0xca2b715f, BRF_ESS | BRF_BIOS }, // SH-2 Bios
-
- SFIII_970204_FLASH
-};
-
-STD_ROM_PICK(sfiiin)
-STD_ROM_FN(sfiiin)
-
-// -------------------------------------------------------------------
-// Street Fighter III: New Generation (Asia 970204, NO CD, bios set 2)
-// -------------------------------------------------------------------
-static struct BurnRomInfo sfiiinaRomDesc[] = {
-
- { "sfiii_asia_nocd.29f400.u2", 0x080000, 0x73e32463, BRF_ESS | BRF_BIOS }, // SH-2 Bios
-
- SFIII_970204_FLASH
-};
-
-STD_ROM_PICK(sfiiina)
-STD_ROM_FN(sfiiina)
-
-// ----------------------------------------------------
-// Street Fighter III 2nd Impact: Giant Attack (970930)
-// ----------------------------------------------------
-
-#define SFIII2_970930_FLASH \
- { "sfiii2-simm1.0", 0x200000, 0x2d666f0b, BRF_ESS | BRF_PRG }, \
- { "sfiii2-simm1.1", 0x200000, 0x2a3a8ef6, BRF_ESS | BRF_PRG }, \
- { "sfiii2-simm1.2", 0x200000, 0x161d2206, BRF_ESS | BRF_PRG }, \
- { "sfiii2-simm1.3", 0x200000, 0x87ded8a3, BRF_ESS | BRF_PRG }, \
- { "sfiii2-simm2.0", 0x200000, 0x94a4ce0f, BRF_ESS | BRF_PRG }, \
- { "sfiii2-simm2.1", 0x200000, 0x67585033, BRF_ESS | BRF_PRG }, \
- { "sfiii2-simm2.2", 0x200000, 0xfabffcd5, BRF_ESS | BRF_PRG }, \
- { "sfiii2-simm2.3", 0x200000, 0x623c09ca, BRF_ESS | BRF_PRG }, \
- { "sfiii2-simm3.0", 0x200000, 0xdab2d766, BRF_GRA }, \
- { "sfiii2-simm3.1", 0x200000, 0x1f2aa34b, BRF_GRA }, \
- { "sfiii2-simm3.2", 0x200000, 0x6f1a04eb, BRF_GRA }, \
- { "sfiii2-simm3.3", 0x200000, 0xe05ef205, BRF_GRA }, \
- { "sfiii2-simm3.4", 0x200000, 0xaffb074f, BRF_GRA }, \
- { "sfiii2-simm3.5", 0x200000, 0x6962872e, BRF_GRA }, \
- { "sfiii2-simm3.6", 0x200000, 0x6eed87de, BRF_GRA }, \
- { "sfiii2-simm3.7", 0x200000, 0xe18f479e, BRF_GRA }, \
- { "sfiii2-simm4.0", 0x200000, 0x764c2503, BRF_GRA }, \
- { "sfiii2-simm4.1", 0x200000, 0x3e16af6e, BRF_GRA }, \
- { "sfiii2-simm4.2", 0x200000, 0x215705e6, BRF_GRA }, \
- { "sfiii2-simm4.3", 0x200000, 0xe30cbd9c, BRF_GRA }, \
- { "sfiii2-simm4.4", 0x200000, 0x4185ded9, BRF_GRA }, \
- { "sfiii2-simm4.5", 0x200000, 0x4e8db013, BRF_GRA }, \
- { "sfiii2-simm4.6", 0x200000, 0x08df48ce, BRF_GRA }, \
- { "sfiii2-simm4.7", 0x200000, 0xbb8f80a5, BRF_GRA }, \
- { "sfiii2-simm5.0", 0x200000, 0xebdc4787, BRF_GRA }, \
- { "sfiii2-simm5.1", 0x200000, 0x6b7c550e, BRF_GRA }, \
- { "sfiii2-simm5.2", 0x200000, 0x56ff8c50, BRF_GRA }, \
- { "sfiii2-simm5.3", 0x200000, 0x3f2ac3e9, BRF_GRA }, \
- { "sfiii2-simm5.4", 0x200000, 0x48cda50e, BRF_GRA }, \
- { "sfiii2-simm5.5", 0x200000, 0x520c0af6, BRF_GRA }, \
- { "sfiii2-simm5.6", 0x200000, 0x2edc5986, BRF_GRA }, \
- { "sfiii2-simm5.7", 0x200000, 0x93ffa199, BRF_GRA },
-
-// --------------------------------------------------------
-// Street Fighter III 2nd Impact: Giant Attack (USA 970930)
-// --------------------------------------------------------
-static struct BurnRomInfo sfiii2RomDesc[] = {
-
- { "sfiii2_usa.29f400.u2", 0x080000, 0x75dd72e0, BRF_ESS | BRF_BIOS }, // SH-2 Bios
-
-#if !defined ROM_VERIFY
- SFIII2_970930_FLASH
-#endif
-};
-
-STD_ROM_PICK(sfiii2)
-STD_ROM_FN(sfiii2)
-
-// ----------------------------------------------------------
-// Street Fighter III 2nd Impact: Giant Attack (Japan 970930)
-// ----------------------------------------------------------
-static struct BurnRomInfo sfiii2jRomDesc[] = {
-
- { "sfiii2_japan.29f400.u2", 0x080000, 0xfaea0a3e, BRF_ESS | BRF_BIOS }, // SH-2 Bios
-
-#if !defined ROM_VERIFY
- SFIII2_970930_FLASH
-#endif
-};
-
-STD_ROM_PICK(sfiii2j)
-STD_ROM_FN(sfiii2j)
-
-// ----------------------------------------------------------------
-// Street Fighter III 2nd Impact: Giant Attack (Asia 970930, NO CD)
-// ----------------------------------------------------------------
-static struct BurnRomInfo sfiii2nRomDesc[] = {
-
- { "sfiii2_asia_nocd.29f400.u2", 0x080000, 0xfd297c0d, BRF_ESS | BRF_BIOS }, // SH-2 Bios
-
- SFIII2_970930_FLASH
-};
-
-STD_ROM_PICK(sfiii2n)
-STD_ROM_FN(sfiii2n)
-
-// ------------------------------------------------------------
-// Street Fighter III 3rd Strike: Fight for the Future (990608)
-// ------------------------------------------------------------
-
-#define SFIII3_990608_FLASH \
- { "sfiii3-simm1.0", 0x200000, 0x11dfd3cd, BRF_ESS | BRF_PRG }, \
- { "sfiii3-simm1.1", 0x200000, 0xc50585e6, BRF_ESS | BRF_PRG }, \
- { "sfiii3-simm1.2", 0x200000, 0x8e011d9b, BRF_ESS | BRF_PRG }, \
- { "sfiii3-simm1.3", 0x200000, 0xdca8d92f, BRF_ESS | BRF_PRG }, \
- { "sfiii3-simm2.0", 0x200000, 0x06eb969e, BRF_ESS | BRF_PRG }, \
- { "sfiii3-simm2.1", 0x200000, 0xe7039f82, BRF_ESS | BRF_PRG }, \
- { "sfiii3-simm2.2", 0x200000, 0x645c96f7, BRF_ESS | BRF_PRG }, \
- { "sfiii3-simm2.3", 0x200000, 0x610efab1, BRF_ESS | BRF_PRG }, \
- { "sfiii3-simm3.0", 0x200000, 0x7baa1f79, BRF_GRA }, \
- { "sfiii3-simm3.1", 0x200000, 0x234bf8fe, BRF_GRA }, \
- { "sfiii3-simm3.2", 0x200000, 0xd9ebc308, BRF_GRA }, \
- { "sfiii3-simm3.3", 0x200000, 0x293cba77, BRF_GRA }, \
- { "sfiii3-simm3.4", 0x200000, 0x6055e747, BRF_GRA }, \
- { "sfiii3-simm3.5", 0x200000, 0x499aa6fc, BRF_GRA }, \
- { "sfiii3-simm3.6", 0x200000, 0x6c13879e, BRF_GRA }, \
- { "sfiii3-simm3.7", 0x200000, 0xcf4f8ede, BRF_GRA }, \
- { "sfiii3-simm4.0", 0x200000, 0x091fd5ba, BRF_GRA }, \
- { "sfiii3-simm4.1", 0x200000, 0x0bca8917, BRF_GRA }, \
- { "sfiii3-simm4.2", 0x200000, 0xa0fd578b, BRF_GRA }, \
- { "sfiii3-simm4.3", 0x200000, 0x4bf8c699, BRF_GRA }, \
- { "sfiii3-simm4.4", 0x200000, 0x137b8785, BRF_GRA }, \
- { "sfiii3-simm4.5", 0x200000, 0x4fb70671, BRF_GRA }, \
- { "sfiii3-simm4.6", 0x200000, 0x832374a4, BRF_GRA }, \
- { "sfiii3-simm4.7", 0x200000, 0x1c88576d, BRF_GRA }, \
- { "sfiii3-simm5.0", 0x200000, 0xc67d9190, BRF_GRA }, \
- { "sfiii3-simm5.1", 0x200000, 0x6cb79868, BRF_GRA }, \
- { "sfiii3-simm5.2", 0x200000, 0xdf69930e, BRF_GRA }, \
- { "sfiii3-simm5.3", 0x200000, 0x333754e0, BRF_GRA }, \
- { "sfiii3-simm5.4", 0x200000, 0x78f6d417, BRF_GRA }, \
- { "sfiii3-simm5.5", 0x200000, 0x8ccad9b1, BRF_GRA }, \
- { "sfiii3-simm5.6", 0x200000, 0x85de59e5, BRF_GRA }, \
- { "sfiii3-simm5.7", 0x200000, 0xee7e29b3, BRF_GRA }, \
- { "sfiii3-simm6.0", 0x200000, 0x8da69042, BRF_GRA }, \
- { "sfiii3-simm6.1", 0x200000, 0x1c8c7ac4, BRF_GRA }, \
- { "sfiii3-simm6.2", 0x200000, 0xa671341d, BRF_GRA }, \
- { "sfiii3-simm6.3", 0x200000, 0x1a990249, BRF_GRA }, \
- { "sfiii3-simm6.4", 0x200000, 0x20cb39ac, BRF_GRA }, \
- { "sfiii3-simm6.5", 0x200000, 0x5f844b2f, BRF_GRA }, \
- { "sfiii3-simm6.6", 0x200000, 0x450e8d28, BRF_GRA }, \
- { "sfiii3-simm6.7", 0x200000, 0xcc5f4187, BRF_GRA },
-
-// -----------------------------------------------------------------
-// Street Fighter III 3rd Strike: Fight for the Future (Euro 990608)
-// -----------------------------------------------------------------
-static struct BurnRomInfo sfiii3RomDesc[] = {
-
- { "sfiii3_euro.29f400.u2", 0x080000, 0x30bbf293, BRF_ESS | BRF_BIOS }, // SH-2 Bios
-
-#if !defined ROM_VERIFY
- SFIII3_990608_FLASH
-#endif
-};
-
-STD_ROM_PICK(sfiii3)
-STD_ROM_FN(sfiii3)
-
-// ----------------------------------------------------------------
-// Street Fighter III 3rd Strike: Fight for the Future (USA 990608)
-// ----------------------------------------------------------------
-static struct BurnRomInfo sfiii3uRomDesc[] = {
-
- { "sfiii3_usa.29f400.u2", 0x080000, 0xecc545c1, BRF_ESS | BRF_BIOS }, // SH-2 Bios
-
-#if !defined ROM_VERIFY
- SFIII3_990608_FLASH
-#endif
-};
-
-STD_ROM_PICK(sfiii3u)
-STD_ROM_FN(sfiii3u)
-
-// -------------------------------------------------------------------------
-// Street Fighter III 3rd Strike: Fight for the Future (Japan 990608, NO CD)
-// -------------------------------------------------------------------------
-static struct BurnRomInfo sfiii3nRomDesc[] = {
-
- { "sfiii3_japan_nocd.29f400.u2", 0x080000, 0x1edc6366, BRF_ESS | BRF_BIOS }, // SH-2 Bios
-
- SFIII3_990608_FLASH
-};
-
-STD_ROM_PICK(sfiii3n)
-STD_ROM_FN(sfiii3n)
-
-// ------------------------------------------------------------
-// Street Fighter III 3rd Strike: Fight for the Future (990512)
-// ------------------------------------------------------------
-
-#define SFIII3_990512_FLASH \
- { "sfiii3-simm1.0", 0x200000, 0x66e66235, BRF_ESS | BRF_PRG }, \
- { "sfiii3-simm1.1", 0x200000, 0x186e8c5f, BRF_ESS | BRF_PRG }, \
- { "sfiii3-simm1.2", 0x200000, 0xbce18cab, BRF_ESS | BRF_PRG }, \
- { "sfiii3-simm1.3", 0x200000, 0x129dc2c9, BRF_ESS | BRF_PRG }, \
- { "sfiii3-simm2.0", 0x200000, 0x06eb969e, BRF_ESS | BRF_PRG }, \
- { "sfiii3-simm2.1", 0x200000, 0xe7039f82, BRF_ESS | BRF_PRG }, \
- { "sfiii3-simm2.2", 0x200000, 0x645c96f7, BRF_ESS | BRF_PRG }, \
- { "sfiii3-simm2.3", 0x200000, 0x610efab1, BRF_ESS | BRF_PRG }, \
- { "sfiii3-simm3.0", 0x200000, 0x7baa1f79, BRF_GRA }, \
- { "sfiii3-simm3.1", 0x200000, 0x234bf8fe, BRF_GRA }, \
- { "sfiii3-simm3.2", 0x200000, 0xd9ebc308, BRF_GRA }, \
- { "sfiii3-simm3.3", 0x200000, 0x293cba77, BRF_GRA }, \
- { "sfiii3-simm3.4", 0x200000, 0x6055e747, BRF_GRA }, \
- { "sfiii3-simm3.5", 0x200000, 0x499aa6fc, BRF_GRA }, \
- { "sfiii3-simm3.6", 0x200000, 0x6c13879e, BRF_GRA }, \
- { "sfiii3-simm3.7", 0x200000, 0xcf4f8ede, BRF_GRA }, \
- { "sfiii3-simm4.0", 0x200000, 0x091fd5ba, BRF_GRA }, \
- { "sfiii3-simm4.1", 0x200000, 0x0bca8917, BRF_GRA }, \
- { "sfiii3-simm4.2", 0x200000, 0xa0fd578b, BRF_GRA }, \
- { "sfiii3-simm4.3", 0x200000, 0x4bf8c699, BRF_GRA }, \
- { "sfiii3-simm4.4", 0x200000, 0x137b8785, BRF_GRA }, \
- { "sfiii3-simm4.5", 0x200000, 0x4fb70671, BRF_GRA }, \
- { "sfiii3-simm4.6", 0x200000, 0x832374a4, BRF_GRA }, \
- { "sfiii3-simm4.7", 0x200000, 0x1c88576d, BRF_GRA }, \
- { "sfiii3-simm5.0", 0x200000, 0xc67d9190, BRF_GRA }, \
- { "sfiii3-simm5.1", 0x200000, 0x6cb79868, BRF_GRA }, \
- { "sfiii3-simm5.2", 0x200000, 0xdf69930e, BRF_GRA }, \
- { "sfiii3-simm5.3", 0x200000, 0x333754e0, BRF_GRA }, \
- { "sfiii3-simm5.4", 0x200000, 0x78f6d417, BRF_GRA }, \
- { "sfiii3-simm5.5", 0x200000, 0x8ccad9b1, BRF_GRA }, \
- { "sfiii3-simm5.6", 0x200000, 0x85de59e5, BRF_GRA }, \
- { "sfiii3-simm5.7", 0x200000, 0xee7e29b3, BRF_GRA }, \
- { "sfiii3-simm6.0", 0x200000, 0x8da69042, BRF_GRA }, \
- { "sfiii3-simm6.1", 0x200000, 0x1c8c7ac4, BRF_GRA }, \
- { "sfiii3-simm6.2", 0x200000, 0xa671341d, BRF_GRA }, \
- { "sfiii3-simm6.3", 0x200000, 0x1a990249, BRF_GRA }, \
- { "sfiii3-simm6.4", 0x200000, 0x20cb39ac, BRF_GRA }, \
- { "sfiii3-simm6.5", 0x200000, 0x5f844b2f, BRF_GRA }, \
- { "sfiii3-simm6.6", 0x200000, 0x450e8d28, BRF_GRA }, \
- { "sfiii3-simm6.7", 0x200000, 0xcc5f4187, BRF_GRA },
-
-// -----------------------------------------------------------------
-// Street Fighter III 3rd Strike: Fight for the Future (Euro 990512)
-// -----------------------------------------------------------------
-static struct BurnRomInfo sfiii3r1RomDesc[] = {
-
- { "sfiii3_euro.29f400.u2", 0x080000, 0x30bbf293, BRF_ESS | BRF_BIOS }, // SH-2 Bios
-
-#if !defined ROM_VERIFY
- SFIII3_990512_FLASH
-#endif
-};
-
-STD_ROM_PICK(sfiii3r1)
-STD_ROM_FN(sfiii3r1)
-
-// ----------------------------------------------------------------
-// Street Fighter III 3rd Strike: Fight for the Future (USA 990512)
-// ----------------------------------------------------------------
-static struct BurnRomInfo sfiii3ur1RomDesc[] = {
-
- { "sfiii3_usa.29f400.u2", 0x080000, 0xecc545c1, BRF_ESS | BRF_BIOS }, // SH-2 Bios
-
-#if !defined ROM_VERIFY
- SFIII3_990512_FLASH
-#endif
-};
-
-STD_ROM_PICK(sfiii3ur1)
-STD_ROM_FN(sfiii3ur1)
-
-// -------------------------------------------------------------------------
-// Street Fighter III 3rd Strike: Fight for the Future (Japan 990512, NO CD)
-// -------------------------------------------------------------------------
-static struct BurnRomInfo sfiii3nr1RomDesc[] = {
-
- { "sfiii3_japan_nocd.29f400.u2", 0x080000, 0x1edc6366, BRF_ESS | BRF_BIOS }, // SH-2 Bios
-
- SFIII3_990512_FLASH
-};
-
-STD_ROM_PICK(sfiii3nr1)
-STD_ROM_FN(sfiii3nr1)
-
-// -------------------------------------------------
-// JoJo no Kimyou na Bouken / JoJo's Venture (990128)
-// -------------------------------------------------
-
-#define JOJO_990128_FLASH \
- { "jojo-simm1.0", 0x200000, 0x9516948b, BRF_ESS | BRF_PRG }, \
- { "jojo-simm1.1", 0x200000, 0xa847848d, BRF_ESS | BRF_PRG }, \
- { "jojo-simm1.2", 0x200000, 0x853e8846, BRF_ESS | BRF_PRG }, \
- { "jojo-simm1.3", 0x200000, 0xc04fe00e, BRF_ESS | BRF_PRG }, \
- { "jojo-simm2.0", 0x200000, 0xe1a4b3c8, BRF_ESS | BRF_PRG }, \
- { "jojo-simm2.1", 0x200000, 0x189cef95, BRF_ESS | BRF_PRG }, \
- { "jojo-simm2.2", 0x200000, 0x47db5ec6, BRF_ESS | BRF_PRG }, \
- { "jojo-simm2.3", 0x200000, 0xe3d3a155, BRF_ESS | BRF_PRG }, \
- { "jojo-simm3.0", 0x200000, 0xde7fc9c1, BRF_GRA }, \
- { "jojo-simm3.1", 0x200000, 0x43d053d3, BRF_GRA }, \
- { "jojo-simm3.2", 0x200000, 0x2ffd7fa5, BRF_GRA }, \
- { "jojo-simm3.3", 0x200000, 0x4da4985b, BRF_GRA }, \
- { "jojo-simm3.4", 0x200000, 0xfde98d72, BRF_GRA }, \
- { "jojo-simm3.5", 0x200000, 0xedb2a266, BRF_GRA }, \
- { "jojo-simm3.6", 0x200000, 0xbe7cf319, BRF_GRA }, \
- { "jojo-simm3.7", 0x200000, 0x56fe1a9f, BRF_GRA }, \
- { "jojo-simm4.0", 0x200000, 0xc4e7bf68, BRF_GRA }, \
- { "jojo-simm4.1", 0x200000, 0xb62b2719, BRF_GRA }, \
- { "jojo-simm4.2", 0x200000, 0x18d15809, BRF_GRA }, \
- { "jojo-simm4.3", 0x200000, 0x9af0ad79, BRF_GRA }, \
- { "jojo-simm4.4", 0x200000, 0x4124c1f0, BRF_GRA }, \
- { "jojo-simm4.5", 0x200000, 0x5e001fd1, BRF_GRA }, \
- { "jojo-simm4.6", 0x200000, 0x9affa23b, BRF_GRA }, \
- { "jojo-simm4.7", 0x200000, 0x2511572a, BRF_GRA }, \
- { "jojo-simm5.0", 0x200000, 0x797615fc, BRF_GRA }, \
- { "jojo-simm5.1", 0x200000, 0x734fd162, BRF_GRA },
-
-// -----------------------------------------------------
-// JoJo no Kimyou na Bouken / JoJo's Venture (USA 990128)
-// -----------------------------------------------------
-static struct BurnRomInfo jojoRomDesc[] = {
-
- { "jojo_usa.29f400.u2", 0x080000, 0x8d40f7be, BRF_ESS | BRF_BIOS }, // SH-2 Bios
-
-#if !defined ROM_VERIFY
- JOJO_990128_FLASH
-#endif
-};
-
-STD_ROM_PICK(jojo)
-STD_ROM_FN(jojo)
-
-// -------------------------------------------------------
-// JoJo no Kimyou na Bouken / JoJo's Venture (Japan 990128)
-// -------------------------------------------------------
-static struct BurnRomInfo jojojRomDesc[] = {
-
- { "jojo_japan.29f400.u2", 0x080000, 0x02778f60, BRF_ESS | BRF_BIOS }, // SH-2 Bios
-
-#if !defined ROM_VERIFY
- JOJO_990128_FLASH
-#endif
-};
-
-STD_ROM_PICK(jojoj)
-STD_ROM_FN(jojoj)
-
-// -------------------------------------------------------------
-// JoJo's Venture / JoJo no Kimyou na Bouken (Asia 990128, NO CD)
-// -------------------------------------------------------------
-static struct BurnRomInfo jojonRomDesc[] = {
-
- { "jojo_asia_nocd.29f400.u2", 0x080000, 0x05b4f953, BRF_ESS | BRF_BIOS }, // SH-2 Bios
-
- JOJO_990128_FLASH
-};
-
-STD_ROM_PICK(jojon)
-STD_ROM_FN(jojon)
-
-// -------------------------------------------------
-// JoJo no Kimyou na Bouken / JoJo's Venture (990108)
-// -------------------------------------------------
-
-#define JOJO_990108_FLASH \
- { "jojo-simm1.0", 0x200000, 0xcfbc38d6, BRF_ESS | BRF_PRG }, \
- { "jojo-simm1.1", 0x200000, 0x42578d94, BRF_ESS | BRF_PRG }, \
- { "jojo-simm1.2", 0x200000, 0x1b40c566, BRF_ESS | BRF_PRG }, \
- { "jojo-simm1.3", 0x200000, 0xbba709b4, BRF_ESS | BRF_PRG }, \
- { "jojo-simm2.0", 0x200000, 0x417e5dc1, BRF_ESS | BRF_PRG }, \
- { "jojo-simm2.1", 0x200000, 0xd3b3267d, BRF_ESS | BRF_PRG }, \
- { "jojo-simm2.2", 0x200000, 0xc66d96b1, BRF_ESS | BRF_PRG }, \
- { "jojo-simm2.3", 0x200000, 0xaa34cc85, BRF_ESS | BRF_PRG }, \
- { "jojo-simm3.0", 0x200000, 0xde7fc9c1, BRF_GRA }, \
- { "jojo-simm3.1", 0x200000, 0x43d053d3, BRF_GRA }, \
- { "jojo-simm3.2", 0x200000, 0x2ffd7fa5, BRF_GRA }, \
- { "jojo-simm3.3", 0x200000, 0x4da4985b, BRF_GRA }, \
- { "jojo-simm3.4", 0x200000, 0xfde98d72, BRF_GRA }, \
- { "jojo-simm3.5", 0x200000, 0xedb2a266, BRF_GRA }, \
- { "jojo-simm3.6", 0x200000, 0xbe7cf319, BRF_GRA }, \
- { "jojo-simm3.7", 0x200000, 0x56fe1a9f, BRF_GRA }, \
- { "jojo-simm4.0", 0x200000, 0xc4e7bf68, BRF_GRA }, \
- { "jojo-simm4.1", 0x200000, 0xb62b2719, BRF_GRA }, \
- { "jojo-simm4.2", 0x200000, 0x18d15809, BRF_GRA }, \
- { "jojo-simm4.3", 0x200000, 0x9af0ad79, BRF_GRA }, \
- { "jojo-simm4.4", 0x200000, 0x4124c1f0, BRF_GRA }, \
- { "jojo-simm4.5", 0x200000, 0x5e001fd1, BRF_GRA }, \
- { "jojo-simm4.6", 0x200000, 0x9affa23b, BRF_GRA }, \
- { "jojo-simm4.7", 0x200000, 0x2511572a, BRF_GRA }, \
- { "jojo-simm5.0", 0x200000, 0x797615fc, BRF_GRA }, \
- { "jojo-simm5.1", 0x200000, 0x734fd162, BRF_GRA },
-
-// -----------------------------------------------------
-// JoJo no Kimyou na Bouken / JoJo's Venture (USA 990108)
-// -----------------------------------------------------
-static struct BurnRomInfo jojor1RomDesc[] = {
-
- { "jojo_usa.29f400.u2", 0x080000, 0x8d40f7be, BRF_ESS | BRF_BIOS }, // SH-2 Bios
-
-#if !defined ROM_VERIFY
- JOJO_990108_FLASH
-#endif
-};
-
-STD_ROM_PICK(jojor1)
-STD_ROM_FN(jojor1)
-
-// -------------------------------------------------------
-// JoJo no Kimyou na Bouken / JoJo's Venture (Japan 990108)
-// -------------------------------------------------------
-static struct BurnRomInfo jojojr1RomDesc[] = {
-
- { "jojo_japan.29f400.u2", 0x080000, 0x02778f60, BRF_ESS | BRF_BIOS }, // SH-2 Bios
-
-#if !defined ROM_VERIFY
- JOJO_990108_FLASH
-#endif
-};
-
-STD_ROM_PICK(jojojr1)
-STD_ROM_FN(jojojr1)
-
-// -------------------------------------------------------------
-// JoJo's Venture / JoJo no Kimyou na Bouken (Asia 990108, NO CD)
-// -------------------------------------------------------------
-static struct BurnRomInfo jojonr1RomDesc[] = {
-
- { "jojo_asia_nocd.29f400.u2", 0x080000, 0x05b4f953, BRF_ESS | BRF_BIOS }, // SH-2 Bios
-
- JOJO_990108_FLASH
-};
-
-STD_ROM_PICK(jojonr1)
-STD_ROM_FN(jojonr1)
-
-// -------------------------------------------------
-// JoJo no Kimyou na Bouken / JoJo's Venture (981202)
-// -------------------------------------------------
-
-#define JOJO_981202_FLASH \
- { "jojo-simm1.0", 0x200000, 0xe06ba886, BRF_ESS | BRF_PRG }, \
- { "jojo-simm1.1", 0x200000, 0x6dd177c8, BRF_ESS | BRF_PRG }, \
- { "jojo-simm1.2", 0x200000, 0xd35a15e0, BRF_ESS | BRF_PRG }, \
- { "jojo-simm1.3", 0x200000, 0x66d865ac, BRF_ESS | BRF_PRG }, \
- { "jojo-simm2.0", 0x200000, 0x417e5dc1, BRF_ESS | BRF_PRG }, \
- { "jojo-simm2.1", 0x200000, 0xc891c887, BRF_ESS | BRF_PRG }, \
- { "jojo-simm2.2", 0x200000, 0x1e101f30, BRF_ESS | BRF_PRG }, \
- { "jojo-simm2.3", 0x200000, 0x1fd1d3e4, BRF_ESS | BRF_PRG }, \
- { "jojo-simm3.0", 0x200000, 0xde7fc9c1, BRF_GRA }, \
- { "jojo-simm3.1", 0x200000, 0x43d053d3, BRF_GRA }, \
- { "jojo-simm3.2", 0x200000, 0x2ffd7fa5, BRF_GRA }, \
- { "jojo-simm3.3", 0x200000, 0x4da4985b, BRF_GRA }, \
- { "jojo-simm3.4", 0x200000, 0xfde98d72, BRF_GRA }, \
- { "jojo-simm3.5", 0x200000, 0xedb2a266, BRF_GRA }, \
- { "jojo-simm3.6", 0x200000, 0xbe7cf319, BRF_GRA }, \
- { "jojo-simm3.7", 0x200000, 0x56fe1a9f, BRF_GRA }, \
- { "jojo-simm4.0", 0x200000, 0xc4e7bf68, BRF_GRA }, \
- { "jojo-simm4.1", 0x200000, 0xb62b2719, BRF_GRA }, \
- { "jojo-simm4.2", 0x200000, 0x18d15809, BRF_GRA }, \
- { "jojo-simm4.3", 0x200000, 0x9af0ad79, BRF_GRA }, \
- { "jojo-simm4.4", 0x200000, 0x4124c1f0, BRF_GRA }, \
- { "jojo-simm4.5", 0x200000, 0x5e001fd1, BRF_GRA }, \
- { "jojo-simm4.6", 0x200000, 0x9affa23b, BRF_GRA }, \
- { "jojo-simm4.7", 0x200000, 0x2511572a, BRF_GRA }, \
- { "jojo-simm5.0", 0x200000, 0x797615fc, BRF_GRA }, \
- { "jojo-simm5.1", 0x200000, 0x734fd162, BRF_GRA },
-
-// -----------------------------------------------------
-// JoJo no Kimyou na Bouken / JoJo's Venture (USA 981202)
-// -----------------------------------------------------
-static struct BurnRomInfo jojor2RomDesc[] = {
-
- { "jojo_usa.29f400.u2", 0x080000, 0x8d40f7be, BRF_ESS | BRF_BIOS }, // SH-2 Bios
-
-#if !defined ROM_VERIFY
- JOJO_981202_FLASH
-#endif
-};
-
-STD_ROM_PICK(jojor2)
-STD_ROM_FN(jojor2)
-
-// -------------------------------------------------------
-// JoJo no Kimyou na Bouken / JoJo's Venture (Japan 981202)
-// -------------------------------------------------------
-static struct BurnRomInfo jojojr2RomDesc[] = {
-
- { "jojo_japan.29f400.u2", 0x080000, 0x02778f60, BRF_ESS | BRF_BIOS }, // SH-2 Bios
-
-#if !defined ROM_VERIFY
- JOJO_981202_FLASH
-#endif
-};
-
-STD_ROM_PICK(jojojr2)
-STD_ROM_FN(jojojr2)
-
-// -------------------------------------------------------------
-// JoJo's Venture / JoJo no Kimyou na Bouken (Asia 981202, NO CD)
-// -------------------------------------------------------------
-static struct BurnRomInfo jojonr2RomDesc[] = {
-
- { "jojo_asia_nocd.29f400.u2", 0x080000, 0x05b4f953, BRF_ESS | BRF_BIOS }, // SH-2 Bios
-
- JOJO_981202_FLASH
-};
-
-STD_ROM_PICK(jojonr2)
-STD_ROM_FN(jojonr2)
-
-// ---------------------------------------------------------------------------
-// JoJo no Kimyou na Bouken: Mirai e no Isan / JoJo's Bizarre Adventure (990927)
-// ---------------------------------------------------------------------------
-
-#define JOJOBA_990927_FLASH \
- { "jojoba-simm1.0", 0x200000, 0xadcd8377, BRF_ESS | BRF_PRG }, \
- { "jojoba-simm1.1", 0x200000, 0xd7590b59, BRF_ESS | BRF_PRG }, \
- { "jojoba-simm1.2", 0x200000, 0xe62e240b, BRF_ESS | BRF_PRG }, \
- { "jojoba-simm1.3", 0x200000, 0xc95450c3, BRF_ESS | BRF_PRG }, \
- { "jojoba-simm2.0", 0x200000, 0x535f2eba, BRF_ESS | BRF_PRG }, \
- { "jojoba-simm2.1", 0x200000, 0x01dd3a01, BRF_ESS | BRF_PRG }, \
- { "jojoba-simm2.2", 0x200000, 0x61432672, BRF_ESS | BRF_PRG }, \
- { "jojoba-simm2.3", 0x200000, 0xacdc9aca, BRF_ESS | BRF_PRG }, \
- { "jojoba-simm3.0", 0x200000, 0x4d16e111, BRF_GRA }, \
- { "jojoba-simm3.1", 0x200000, 0x9b3406d3, BRF_GRA }, \
- { "jojoba-simm3.2", 0x200000, 0xf2414997, BRF_GRA }, \
- { "jojoba-simm3.3", 0x200000, 0x954b9c7d, BRF_GRA }, \
- { "jojoba-simm3.4", 0x200000, 0x625adc1d, BRF_GRA }, \
- { "jojoba-simm3.5", 0x200000, 0x20a70bb4, BRF_GRA }, \
- { "jojoba-simm3.6", 0x200000, 0xa10ec5af, BRF_GRA }, \
- { "jojoba-simm3.7", 0x200000, 0x0bd0de7a, BRF_GRA }, \
- { "jojoba-simm4.0", 0x200000, 0x6ea14adc, BRF_GRA }, \
- { "jojoba-simm4.1", 0x200000, 0x8f4c42fb, BRF_GRA }, \
- { "jojoba-simm4.2", 0x200000, 0xef0586d1, BRF_GRA }, \
- { "jojoba-simm4.3", 0x200000, 0x93ccc470, BRF_GRA }, \
- { "jojoba-simm4.4", 0x200000, 0x3d9ec7d2, BRF_GRA }, \
- { "jojoba-simm4.5", 0x200000, 0x03e66850, BRF_GRA }, \
- { "jojoba-simm4.6", 0x200000, 0x01606ac3, BRF_GRA }, \
- { "jojoba-simm4.7", 0x200000, 0x36392b87, BRF_GRA }, \
- { "jojoba-simm5.0", 0x200000, 0x2ef8c60c, BRF_GRA }, \
- { "jojoba-simm5.1", 0x200000, 0xcf7d7ca6, BRF_GRA }, \
- { "jojoba-simm5.2", 0x200000, 0xb7815bfa, BRF_GRA }, \
- { "jojoba-simm5.3", 0x200000, 0x9bfec049, BRF_GRA }, \
- { "jojoba-simm5.4", 0x200000, 0xd167536b, BRF_GRA }, \
- { "jojoba-simm5.5", 0x200000, 0x55e7a042, BRF_GRA }, \
- { "jojoba-simm5.6", 0x200000, 0x4fb32906, BRF_GRA }, \
- { "jojoba-simm5.7", 0x200000, 0x8c8be520, BRF_GRA },
-
-// ---------------------------------------------------------------------------------
-// JoJo no Kimyou na Bouken: Mirai e no Isan / JoJo's Bizarre Adventure (Japan 990927)
-// ---------------------------------------------------------------------------------
-static struct BurnRomInfo jojobaRomDesc[] = {
-
- { "jojoba_japan.29f400.u2", 0x080000, 0x3085478c, BRF_ESS | BRF_BIOS }, // SH-2 Bios
-
-#if !defined ROM_VERIFY
- JOJOBA_990927_FLASH
-#endif
-};
-
-STD_ROM_PICK(jojoba)
-STD_ROM_FN(jojoba)
-
-// ----------------------------------------------------------------------------------------
-// JoJo no Kimyou na Bouken: Mirai e no Isan / JoJo's Bizarre Adventure (Japan 990927, NO CD)
-// ----------------------------------------------------------------------------------------
-static struct BurnRomInfo jojobanRomDesc[] = {
-
- { "jojoba_japan_nocd.29f400.u2", 0x080000, 0x4dab19f5, BRF_ESS | BRF_BIOS }, // SH-2 Bios
-
- JOJOBA_990927_FLASH
-};
-
-STD_ROM_PICK(jojoban)
-STD_ROM_FN(jojoban)
-
-// ---------------------------------------------------------------------------------------
-// JoJo's Bizarre Adventure / JoJo no Kimyou na Bouken: Mirai e no Isan (Euro 990927, NO CD)
-// ---------------------------------------------------------------------------------------
-static struct BurnRomInfo jojobaneRomDesc[] = {
-
- { "jojoba_euro_nocd.29f400.u2", 0x080000, 0x1ee2d679, BRF_ESS | BRF_BIOS }, // SH-2 Bios
-
- JOJOBA_990927_FLASH
-};
-
-STD_ROM_PICK(jojobane)
-STD_ROM_FN(jojobane)
-
-// ---------------------------------------------------------------------------
-// JoJo no Kimyou na Bouken: Mirai e no Isan / JoJo's Bizarre Adventure (990913)
-// ---------------------------------------------------------------------------
-
-#define JOJOBA_990913_FLASH \
- { "jojoba-simm1.0", 0x200000, 0x76976231, BRF_ESS | BRF_PRG }, \
- { "jojoba-simm1.1", 0x200000, 0xcedd78e7, BRF_ESS | BRF_PRG }, \
- { "jojoba-simm1.2", 0x200000, 0x2955b77f, BRF_ESS | BRF_PRG }, \
- { "jojoba-simm1.3", 0x200000, 0x280139d7, BRF_ESS | BRF_PRG }, \
- { "jojoba-simm2.0", 0x200000, 0x305c4914, BRF_ESS | BRF_PRG }, \
- { "jojoba-simm2.1", 0x200000, 0x18af4f3b, BRF_ESS | BRF_PRG }, \
- { "jojoba-simm2.2", 0x200000, 0x397e5c9e, BRF_ESS | BRF_PRG }, \
- { "jojoba-simm2.3", 0x200000, 0xa9d0a7d7, BRF_ESS | BRF_PRG }, \
- { "jojoba-simm3.0", 0x200000, 0x4d16e111, BRF_GRA }, \
- { "jojoba-simm3.1", 0x200000, 0x9b3406d3, BRF_GRA }, \
- { "jojoba-simm3.2", 0x200000, 0xf2414997, BRF_GRA }, \
- { "jojoba-simm3.3", 0x200000, 0x954b9c7d, BRF_GRA }, \
- { "jojoba-simm3.4", 0x200000, 0x625adc1d, BRF_GRA }, \
- { "jojoba-simm3.5", 0x200000, 0x20a70bb4, BRF_GRA }, \
- { "jojoba-simm3.6", 0x200000, 0xa10ec5af, BRF_GRA }, \
- { "jojoba-simm3.7", 0x200000, 0x0bd0de7a, BRF_GRA }, \
- { "jojoba-simm4.0", 0x200000, 0x6ea14adc, BRF_GRA }, \
- { "jojoba-simm4.1", 0x200000, 0x8f4c42fb, BRF_GRA }, \
- { "jojoba-simm4.2", 0x200000, 0xef0586d1, BRF_GRA }, \
- { "jojoba-simm4.3", 0x200000, 0x93ccc470, BRF_GRA }, \
- { "jojoba-simm4.4", 0x200000, 0x3d9ec7d2, BRF_GRA }, \
- { "jojoba-simm4.5", 0x200000, 0x03e66850, BRF_GRA }, \
- { "jojoba-simm4.6", 0x200000, 0x01606ac3, BRF_GRA }, \
- { "jojoba-simm4.7", 0x200000, 0x36392b87, BRF_GRA }, \
- { "jojoba-simm5.0", 0x200000, 0x2ef8c60c, BRF_GRA }, \
- { "jojoba-simm5.1", 0x200000, 0xcf7d7ca6, BRF_GRA }, \
- { "jojoba-simm5.2", 0x200000, 0xb7815bfa, BRF_GRA }, \
- { "jojoba-simm5.3", 0x200000, 0x9bfec049, BRF_GRA }, \
- { "jojoba-simm5.4", 0x200000, 0xd167536b, BRF_GRA }, \
- { "jojoba-simm5.5", 0x200000, 0x55e7a042, BRF_GRA }, \
- { "jojoba-simm5.6", 0x200000, 0x4fb32906, BRF_GRA }, \
- { "jojoba-simm5.7", 0x200000, 0x8c8be520, BRF_GRA },
-
-// ---------------------------------------------------------------------------------
-// JoJo no Kimyou na Bouken: Mirai e no Isan / JoJo's Bizarre Adventure (Japan 990913)
-// ---------------------------------------------------------------------------------
-static struct BurnRomInfo jojobar1RomDesc[] = {
-
- { "jojoba_japan.29f400.u2", 0x080000, 0x3085478c, BRF_ESS | BRF_BIOS }, // SH-2 Bios
-
-#if !defined ROM_VERIFY
- JOJOBA_990913_FLASH
-#endif
-};
-
-STD_ROM_PICK(jojobar1)
-STD_ROM_FN(jojobar1)
-
-// ----------------------------------------------------------------------------------------
-// JoJo no Kimyou na Bouken: Mirai e no Isan / JoJo's Bizarre Adventure (Japan 990913, NO CD)
-// ----------------------------------------------------------------------------------------
-static struct BurnRomInfo jojobanr1RomDesc[] = {
-
- { "jojoba_japan_nocd.29f400.u2", 0x080000, 0x4dab19f5, BRF_ESS | BRF_BIOS }, // SH-2 Bios
-
- JOJOBA_990913_FLASH
-};
-
-STD_ROM_PICK(jojobanr1)
-STD_ROM_FN(jojobanr1)
-
-// ---------------------------------------------------------------------------------------
-// JoJo's Bizarre Adventure / JoJo no Kimyou na Bouken: Mirai e no Isan (Euro 990913, NO CD)
-// ---------------------------------------------------------------------------------------
-static struct BurnRomInfo jojobaner1RomDesc[] = {
-
- { "jojoba_euro_nocd.29f400.u2", 0x080000, 0x1ee2d679, BRF_ESS | BRF_BIOS }, // SH-2 Bios
-
- JOJOBA_990913_FLASH
-};
-
-STD_ROM_PICK(jojobaner1)
-STD_ROM_FN(jojobaner1)
-
-// -----------------------------
-// Red Earth / War-Zard (961121)
-// -----------------------------
-
-#define REDEARTH_961121_FLASH \
- { "redearth-simm1.0", 0x200000, 0xcad468f8, BRF_ESS | BRF_PRG }, \
- { "redearth-simm1.1", 0x200000, 0xe9721d89, BRF_ESS | BRF_PRG }, \
- { "redearth-simm1.2", 0x200000, 0x2889ec98, BRF_ESS | BRF_PRG }, \
- { "redearth-simm1.3", 0x200000, 0x5a6cd148, BRF_ESS | BRF_PRG }, \
- { "redearth-simm3.0", 0x200000, 0x83350cc5, BRF_GRA }, \
- { "redearth-simm3.1", 0x200000, 0x56734de6, BRF_GRA }, \
- { "redearth-simm3.2", 0x200000, 0x800ea0f1, BRF_GRA }, \
- { "redearth-simm3.3", 0x200000, 0x97e9146c, BRF_GRA }, \
- { "redearth-simm3.4", 0x200000, 0x0cb1d648, BRF_GRA }, \
- { "redearth-simm3.5", 0x200000, 0x7a1099f0, BRF_GRA }, \
- { "redearth-simm3.6", 0x200000, 0xaeff8f54, BRF_GRA }, \
- { "redearth-simm3.7", 0x200000, 0xf770acd0, BRF_GRA }, \
- { "redearth-simm4.0", 0x200000, 0x301e56f2, BRF_GRA }, \
- { "redearth-simm4.1", 0x200000, 0x2048e103, BRF_GRA }, \
- { "redearth-simm4.2", 0x200000, 0xc9433455, BRF_GRA }, \
- { "redearth-simm4.3", 0x200000, 0xc02171a8, BRF_GRA }, \
- { "redearth-simm4.4", 0x200000, 0x2ddbf276, BRF_GRA }, \
- { "redearth-simm4.5", 0x200000, 0xfea820a6, BRF_GRA }, \
- { "redearth-simm4.6", 0x200000, 0xc7528df1, BRF_GRA }, \
- { "redearth-simm4.7", 0x200000, 0x2449cf3b, BRF_GRA }, \
- { "redearth-simm5.0", 0x200000, 0x424451b9, BRF_GRA }, \
- { "redearth-simm5.1", 0x200000, 0x9b8cb56b, BRF_GRA },
-
-// ----------------------------------
-// Red Earth / War-Zard (Euro 961121)
-// ----------------------------------
-static struct BurnRomInfo redearthRomDesc[] = {
-
- { "redearth_euro.29f400.u2", 0x080000, 0x02e0f336, BRF_ESS | BRF_BIOS }, // SH-2 Bios
-
-#if !defined ROM_VERIFY
- REDEARTH_961121_FLASH
-#endif
-};
-
-STD_ROM_PICK(redearth)
-STD_ROM_FN(redearth)
-
-// -----------------------------------
-// War-Zard / Red Earth (Japan 961121)
-// -----------------------------------
-static struct BurnRomInfo warzardRomDesc[] = {
-
- { "warzard_japan.29f400.u2", 0x080000, 0xf8e2f0c6, BRF_ESS | BRF_BIOS }, // SH-2 Bios
-
-#if !defined ROM_VERIFY
- REDEARTH_961121_FLASH
-#endif
-};
-
-STD_ROM_PICK(warzard)
-STD_ROM_FN(warzard)
-
-// -----------------------------
-// Red Earth / War-Zard (961023)
-// -----------------------------
-
-#define REDEARTH_961023_FLASH \
- { "redearth-simm1.0", 0x200000, 0x65bac346, BRF_ESS | BRF_PRG }, \
- { "redearth-simm1.1", 0x200000, 0xa8ec4aae, BRF_ESS | BRF_PRG }, \
- { "redearth-simm1.2", 0x200000, 0x2caf8995, BRF_ESS | BRF_PRG }, \
- { "redearth-simm1.3", 0x200000, 0x13ebc21d, BRF_ESS | BRF_PRG }, \
- { "redearth-simm3.0", 0x200000, 0x83350cc5, BRF_GRA }, \
- { "redearth-simm3.1", 0x200000, 0x56734de6, BRF_GRA }, \
- { "redearth-simm3.2", 0x200000, 0x800ea0f1, BRF_GRA }, \
- { "redearth-simm3.3", 0x200000, 0x97e9146c, BRF_GRA }, \
- { "redearth-simm3.4", 0x200000, 0x0cb1d648, BRF_GRA }, \
- { "redearth-simm3.5", 0x200000, 0x7a1099f0, BRF_GRA }, \
- { "redearth-simm3.6", 0x200000, 0xaeff8f54, BRF_GRA }, \
- { "redearth-simm3.7", 0x200000, 0xf770acd0, BRF_GRA }, \
- { "redearth-simm4.0", 0x200000, 0x301e56f2, BRF_GRA }, \
- { "redearth-simm4.1", 0x200000, 0x2048e103, BRF_GRA }, \
- { "redearth-simm4.2", 0x200000, 0xc9433455, BRF_GRA }, \
- { "redearth-simm4.3", 0x200000, 0xc02171a8, BRF_GRA }, \
- { "redearth-simm4.4", 0x200000, 0x2ddbf276, BRF_GRA }, \
- { "redearth-simm4.5", 0x200000, 0xfea820a6, BRF_GRA }, \
- { "redearth-simm4.6", 0x200000, 0xc7528df1, BRF_GRA }, \
- { "redearth-simm4.7", 0x200000, 0x2449cf3b, BRF_GRA }, \
- { "redearth-simm5.0", 0x200000, 0x424451b9, BRF_GRA }, \
- { "redearth-simm5.1", 0x200000, 0x9b8cb56b, BRF_GRA },
-
-// ----------------------------------
-// Red Earth / War-Zard (Euro 961023)
-// ----------------------------------
-static struct BurnRomInfo redearthr1RomDesc[] = {
-
- { "redearth_euro.29f400.u2", 0x080000, 0x02e0f336, BRF_ESS | BRF_BIOS }, // SH-2 Bios
-
-#if !defined ROM_VERIFY
- REDEARTH_961023_FLASH
-#endif
-};
-
-STD_ROM_PICK(redearthr1)
-STD_ROM_FN(redearthr1)
-
-// -----------------------------------
-// War-Zard / Red Earth (Japan 961023)
-// -----------------------------------
-static struct BurnRomInfo warzardr1RomDesc[] = {
-
- { "warzard_japan.29f400.u2", 0x080000, 0xf8e2f0c6, BRF_ESS | BRF_BIOS }, // SH-2 Bios
-
-#if !defined ROM_VERIFY
- REDEARTH_961023_FLASH
-#endif
-};
-
-STD_ROM_PICK(warzardr1)
-STD_ROM_FN(warzardr1)
-
-// ------------------------------------------------------------------------------------
-
-static INT32 sfiiiInit()
-{
- cps3_key1 = 0xb5fe053e;
- cps3_key2 = 0xfc03925a;
- cps3_isSpecial = 0;
-
- cps3_bios_test_hack = 0x000166b4;
- cps3_game_test_hack = 0x063cdff4;
-
- cps3_speedup_ram_address = 0x0200cc6c;
- cps3_speedup_code_address = 0x06000884;
-
- cps3_region_address = 0x0001fec8;
- cps3_ncd_address = 0x0001fecf;
-
- return cps3Init();
-}
-
-static INT32 sfiii2Init()
-{
- cps3_key1 = 0x00000000;
- cps3_key2 = 0x00000000;
- cps3_isSpecial = 1;
-
- cps3_bios_test_hack = 0x00000000;
- cps3_game_test_hack = 0x00000000;
-
- cps3_speedup_ram_address = 0x0200dfe4;
- cps3_speedup_code_address = 0x06000884;
-
- cps3_region_address = 0x0001fec8;
- cps3_ncd_address = 0x0001fecf;
-
- return cps3Init();
-}
-
-static INT32 sfiii3Init()
-{
- cps3_key1 = 0xa55432b4;
- cps3_key2 = 0x0c129981;
- cps3_isSpecial = 0;
-
- cps3_bios_test_hack = 0x00011c44;
- cps3_game_test_hack = 0x0613ab48;
-
- cps3_speedup_ram_address = 0x0200d794;
- cps3_speedup_code_address = 0x06000884;
-
- cps3_region_address = 0x0001fec8;
- cps3_ncd_address = 0x0001fecf;
-
- return cps3Init();
-}
-
-static INT32 jojor1Init()
-{
- cps3_key1 = 0x02203ee3;
- cps3_key2 = 0x01301972;
- cps3_isSpecial = 0;
-
- cps3_bios_test_hack = 0x00011c2c;
- cps3_game_test_hack = 0x06172568;
-
- cps3_speedup_ram_address = 0x020223d8;
- cps3_speedup_code_address = 0x0600065c;
-
- cps3_region_address = 0x0001fec8;
- cps3_ncd_address = 0x0001fecf;
-
- return cps3Init();
-}
-
-static INT32 jojor2Init()
-{
- cps3_key1 = 0x02203ee3;
- cps3_key2 = 0x01301972;
- cps3_isSpecial = 0;
-
- cps3_bios_test_hack = 0x00011c2c;
- cps3_game_test_hack = 0x06172568;
-
- cps3_speedup_ram_address = 0x020223c0;
- cps3_speedup_code_address = 0x0600065c;
-
- cps3_region_address = 0x0001fec8;
- cps3_ncd_address = 0x0001fecf;
-
- return cps3Init();
-}
-
-static INT32 jojobaInit()
-{
- cps3_key1 = 0x23323ee3;
- cps3_key2 = 0x03021972;
- cps3_isSpecial = 0;
-
- cps3_bios_test_hack = 0x00011c90;
- cps3_game_test_hack = 0x061c45bc;
-
- cps3_speedup_ram_address = 0x020267dc;
- cps3_speedup_code_address = 0x0600065c;
-
- cps3_region_address = 0x0001fec8;
- cps3_ncd_address = 0x0001fecf;
-
- return cps3Init();
-}
-
-static INT32 redearthInit()
-{
- cps3_key1 = 0x9e300ab1;
- cps3_key2 = 0xa175b82c;
- cps3_isSpecial = 0;
-
- cps3_bios_test_hack = 0x00016530;
- cps3_game_test_hack = 0x060105f0;
-
- cps3_speedup_ram_address = 0x0202136c;
- cps3_speedup_code_address = 0x0600194e;
-
- cps3_region_address = 0x0001fed8;
- cps3_ncd_address = 0x00000000;
-
- return cps3Init();
-}
-
-
-struct BurnDriver BurnDrvSfiii = {
- "sfiii", NULL, NULL, NULL, "1997",
- "Street Fighter III: New Generation (Euro 970204)\0", NULL, "Capcom", "CPS-3",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_CAPCOM_CPS3, GBF_VSFIGHT, FBF_SF,
- NULL, sfiiiRomInfo, sfiiiRomName, NULL, NULL, cps3InputInfo, sfiiieuroDIPInfo,
- sfiiiInit, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change, 0x40000,
- 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvSfiiiu = {
- "sfiiiu", "sfiii", NULL, NULL, "1997",
- "Street Fighter III: New Generation (USA 970204)\0", NULL, "Capcom", "CPS-3",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS3, GBF_VSFIGHT, FBF_SF,
- NULL, sfiiiuRomInfo, sfiiiuRomName, NULL, NULL, cps3InputInfo, sfiiiusaDIPInfo,
- sfiiiInit, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change, 0x40000,
- 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvSfiiia = {
- "sfiiia", "sfiii", NULL, NULL, "1997",
- "Street Fighter III: New Generation (Asia 970204)\0", NULL, "Capcom", "CPS-3",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS3, GBF_VSFIGHT, FBF_SF,
- NULL, sfiiiaRomInfo, sfiiiaRomName, NULL, NULL, cps3InputInfo, sfiiiasiaDIPInfo,
- sfiiiInit, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change, 0x40000,
- 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvSfiiij = {
- "sfiiij", "sfiii", NULL, NULL, "1997",
- "Street Fighter III: New Generation (Japan 970204)\0", NULL, "Capcom", "CPS-3",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS3, GBF_VSFIGHT, FBF_SF,
- NULL, sfiiijRomInfo, sfiiijRomName, NULL, NULL, cps3InputInfo, sfiiijapanDIPInfo,
- sfiiiInit, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change, 0x40000,
- 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvSfiiih = {
- "sfiiih", "sfiii", NULL, NULL, "1997",
- "Street Fighter III: New Generation (Hispanic 970204)\0", NULL, "Capcom", "CPS-3",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS3, GBF_VSFIGHT, FBF_SF,
- NULL, sfiiihRomInfo, sfiiihRomName, NULL, NULL, cps3InputInfo, sfiiihispanicDIPInfo,
- sfiiiInit, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change, 0x40000,
- 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvSfiiin = {
- "sfiiin", "sfiii", NULL, NULL, "1997",
- "Street Fighter III: New Generation (Asia 970204, NO CD, bios set 1)\0", NULL, "Capcom", "CPS-3",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS3 | HARDWARE_CAPCOM_CPS3_NO_CD, GBF_VSFIGHT, FBF_SF,
- NULL, sfiiinRomInfo, sfiiinRomName, NULL, NULL, cps3InputInfo, sfiiiasiaDIPInfo,
- sfiiiInit, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change, 0x40000,
- 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvSfiiina = {
- "sfiiina", "sfiii", NULL, NULL, "1997",
- "Street Fighter III: New Generation (Asia 970204, NO CD, bios set 2)\0", NULL, "Capcom", "CPS-3",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS3 | HARDWARE_CAPCOM_CPS3_NO_CD, GBF_VSFIGHT, FBF_SF,
- NULL, sfiiinaRomInfo, sfiiinaRomName, NULL, NULL, cps3InputInfo, sfiiiasiaDIPInfo,
- sfiiiInit, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change, 0x40000,
- 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvSfiii2 = {
- "sfiii2", NULL, NULL, NULL, "1997",
- "Street Fighter III 2nd Impact: Giant Attack (USA 970930)\0", NULL, "Capcom", "CPS-3",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_CAPCOM_CPS3, GBF_VSFIGHT, FBF_SF,
- NULL, sfiii2RomInfo, sfiii2RomName, NULL, NULL, cps3InputInfo, usaDIPInfo,
- sfiii2Init, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change, 0x40000,
- 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvSfiii2j = {
- "sfiii2j", "sfiii2", NULL, NULL, "1997",
- "Street Fighter III 2nd Impact: Giant Attack (Japan 970930)\0", NULL, "Capcom", "CPS-3",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS3, GBF_VSFIGHT, FBF_SF,
- NULL, sfiii2jRomInfo, sfiii2jRomName, NULL, NULL, cps3InputInfo, japanDIPInfo,
- sfiii2Init, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change, 0x40000,
- 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvSfiii2n = {
- "sfiii2n", "sfiii2", NULL, NULL, "1997",
- "Street Fighter III 2nd Impact: Giant Attack (Asia 970930, NO CD)\0", NULL, "Capcom", "CPS-3",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS3 | HARDWARE_CAPCOM_CPS3_NO_CD, GBF_VSFIGHT, FBF_SF,
- NULL, sfiii2nRomInfo, sfiii2nRomName, NULL, NULL, cps3InputInfo, asiaDIPInfo,
- sfiii2Init, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change, 0x40000,
- 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvSfiii3 = {
- "sfiii3", NULL, NULL, NULL, "1999",
- "Street Fighter III 3rd Strike: Fight for the Future (Euro 990608)\0", NULL, "Capcom", "CPS-3",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_CAPCOM_CPS3, GBF_VSFIGHT, FBF_SF,
- NULL, sfiii3RomInfo, sfiii3RomName, NULL, NULL, cps3InputInfo, euroDIPInfo,
- sfiii3Init, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change, 0x40000,
- 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvSfiii3u = {
- "sfiii3u", "sfiii3", NULL, NULL, "1999",
- "Street Fighter III 3rd Strike: Fight for the Future (USA 990608)\0", NULL, "Capcom", "CPS-3",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS3, GBF_VSFIGHT, FBF_SF,
- NULL, sfiii3uRomInfo, sfiii3uRomName, NULL, NULL, cps3InputInfo, usaDIPInfo,
- sfiii3Init, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change, 0x40000,
- 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvSfiii3n = {
- "sfiii3n", "sfiii3", NULL, NULL, "1999",
- "Street Fighter III 3rd Strike: Fight for the Future (Japan 990608, NO CD)\0", NULL, "Capcom", "CPS-3",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS3 | HARDWARE_CAPCOM_CPS3_NO_CD, GBF_VSFIGHT, FBF_SF,
- NULL, sfiii3nRomInfo, sfiii3nRomName, NULL, NULL, cps3InputInfo, japanDIPInfo,
- sfiii3Init, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change, 0x40000,
- 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvSfiii3r1 = {
- "sfiii3r1", "sfiii3", NULL, NULL, "1999",
- "Street Fighter III 3rd Strike: Fight for the Future (Euro 990512)\0", NULL, "Capcom", "CPS-3",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS3, GBF_VSFIGHT, FBF_SF,
- NULL, sfiii3r1RomInfo, sfiii3r1RomName, NULL, NULL, cps3InputInfo, euroDIPInfo,
- sfiii3Init, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change, 0x40000,
- 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvSfiii3ur1 = {
- "sfiii3ur1", "sfiii3", NULL, NULL, "1999",
- "Street Fighter III 3rd Strike: Fight for the Future (USA 990512)\0", NULL, "Capcom", "CPS-3",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS3, GBF_VSFIGHT, FBF_SF,
- NULL, sfiii3ur1RomInfo, sfiii3ur1RomName, NULL, NULL, cps3InputInfo, usaDIPInfo,
- sfiii3Init, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change, 0x40000,
- 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvSfiii3nr1 = {
- "sfiii3nr1", "sfiii3", NULL, NULL, "1999",
- "Street Fighter III 3rd Strike: Fight for the Future (Japan 990512, NO CD)\0", NULL, "Capcom", "CPS-3",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS3 | HARDWARE_CAPCOM_CPS3_NO_CD, GBF_VSFIGHT, FBF_SF,
- NULL, sfiii3nr1RomInfo, sfiii3nr1RomName, NULL, NULL, cps3InputInfo, japanDIPInfo,
- sfiii3Init, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change, 0x40000,
- 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvJojo = {
- "jojo", NULL, NULL, NULL, "1998",
- "JoJo's Venture / JoJo no Kimyou na Bouken (USA 990128)\0", NULL, "Capcom", "CPS-3",
- L"\u30B8\u30E7\u30B8\u30E7\u306E \u5947\u5999\u306A\u5192\u967A\0JoJo's Venture (USA 990128)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_CAPCOM_CPS3, GBF_VSFIGHT, 0,
- NULL, jojoRomInfo, jojoRomName, NULL, NULL, cps3InputInfo, usaDIPInfo,
- jojor1Init, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change, 0x40000,
- 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvJojoj = {
- "jojoj", "jojo", NULL, NULL, "1998",
- "JoJo's Venture / JoJo no Kimyou na Bouken (Japan 990128)\0", NULL, "Capcom", "CPS-3",
- L"\u30B8\u30E7\u30B8\u30E7\u306E \u5947\u5999\u306A\u5192\u967A\0JoJo's Venture (Japan 990128)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS3, GBF_VSFIGHT, 0,
- NULL, jojojRomInfo, jojojRomName, NULL, NULL, cps3InputInfo, japanDIPInfo,
- jojor1Init, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change, 0x40000,
- 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvJojon = {
- "jojon", "jojo", NULL, NULL, "1998",
- "JoJo's Venture / JoJo no Kimyou na Bouken (Asia 990128, NO CD)\0", NULL, "Capcom", "CPS-3",
- L"JoJo's Venture\0\u30B8\u30E7\u30B8\u30E7\u306E \u5947\u5999\u306A\u5192\u967A (Asia 990128, NO CD)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS3 | HARDWARE_CAPCOM_CPS3_NO_CD, GBF_VSFIGHT, 0,
- NULL, jojonRomInfo, jojonRomName, NULL, NULL, cps3InputInfo, asiaDIPInfo,
- jojor1Init, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change, 0x40000,
- 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvJojor1 = {
- "jojor1", "jojo", NULL, NULL, "1998",
- "JoJo's Venture / JoJo no Kimyou na Bouken (USA 990108)\0", NULL, "Capcom", "CPS-3",
- L"\u30B8\u30E7\u30B8\u30E7\u306E \u5947\u5999\u306A\u5192\u967A\0JoJo's Venture (USA 990108)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS3, GBF_VSFIGHT, 0,
- NULL, jojor1RomInfo, jojor1RomName, NULL, NULL, cps3InputInfo, usaDIPInfo,
- jojor1Init, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change, 0x40000,
- 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvJojojr1 = {
- "jojojr1", "jojo", NULL, NULL, "1998",
- "JoJo's Venture / JoJo no Kimyou na Bouken (Japan 990108)\0", NULL, "Capcom", "CPS-3",
- L"\u30B8\u30E7\u30B8\u30E7\u306E \u5947\u5999\u306A\u5192\u967A\0JoJo's Venture (Japan 990108)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS3, GBF_VSFIGHT, 0,
- NULL, jojojr1RomInfo, jojojr1RomName, NULL, NULL, cps3InputInfo, japanDIPInfo,
- jojor1Init, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change, 0x40000,
- 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvJojonr1 = {
- "jojonr1", "jojo", NULL, NULL, "1998",
- "JoJo's Venture / JoJo no Kimyou na Bouken (Asia 990108, NO CD)\0", NULL, "Capcom", "CPS-3",
- L"JoJo's Venture\0\u30B8\u30E7\u30B8\u30E7\u306E \u5947\u5999\u306A\u5192\u967A (Asia 990108, NO CD)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS3 | HARDWARE_CAPCOM_CPS3_NO_CD, GBF_VSFIGHT, 0,
- NULL, jojonr1RomInfo, jojonr1RomName, NULL, NULL, cps3InputInfo, asiaDIPInfo,
- jojor1Init, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change, 0x40000,
- 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvJojor2 = {
- "jojor2", "jojo", NULL, NULL, "1998",
- "JoJo's Venture / JoJo no Kimyou na Bouken (USA 981202)\0", NULL, "Capcom", "CPS-3",
- L"\u30B8\u30E7\u30B8\u30E7\u306E \u5947\u5999\u306A\u5192\u967A\0JoJo's Venture (USA 981202)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS3, GBF_VSFIGHT, 0,
- NULL, jojor2RomInfo, jojor2RomName, NULL, NULL, cps3InputInfo, usaDIPInfo,
- jojor2Init, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change, 0x40000,
- 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvJojojr2 = {
- "jojojr2", "jojo", NULL, NULL, "1998",
- "JoJo's Venture / JoJo no Kimyou na Bouken (Japan 981202)\0", NULL, "Capcom", "CPS-3",
- L"\u30B8\u30E7\u30B8\u30E7\u306E \u5947\u5999\u306A\u5192\u967A\0JoJo's Venture (Japan 981202)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS3, GBF_VSFIGHT, 0,
- NULL, jojojr2RomInfo, jojojr2RomName, NULL, NULL, cps3InputInfo, japanDIPInfo,
- jojor2Init, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change, 0x40000,
- 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvJojonr2 = {
- "jojonr2", "jojo", NULL, NULL, "1998",
- "JoJo's Venture / JoJo no Kimyou na Bouken (Asia 981202, NO CD)\0", NULL, "Capcom", "CPS-3",
- L"JoJo's Venture\0\u30B8\u30E7\u30B8\u30E7\u306E \u5947\u5999\u306A\u5192\u967A (Asia 981202, NO CD)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS3 | HARDWARE_CAPCOM_CPS3_NO_CD, GBF_VSFIGHT, 0,
- NULL, jojonr2RomInfo, jojonr2RomName, NULL, NULL, cps3InputInfo, asiaDIPInfo,
- jojor2Init, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change, 0x40000,
- 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvJojoba = {
- "jojoba", NULL, NULL, NULL, "1999",
- "JoJo's Bizarre Adventure: Heritage for the Future / JoJo no Kimyou na Bouken: Mirai e no Isan (Japan 990927)\0", NULL, "Capcom", "CPS-3",
- L"\u30B8\u30E7\u30B8\u30E7\u306E \u5947\u5999\u306A\u5192\u967A: \u672A\u6765\u3078\u306E\u907A\u7523\0JoJo's Bizarre Adventure (Japan 990927)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_CAPCOM_CPS3, GBF_VSFIGHT, 0,
- NULL, jojobaRomInfo, jojobaRomName, NULL, NULL, cps3InputInfo, jojobaDIPInfo,
- jojobaInit, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change, 0x40000,
- 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvJojoban = {
- "jojoban", "jojoba", NULL, NULL, "1999",
- "JoJo's Bizarre Adventure: Heritage for the Future / JoJo no Kimyou na Bouken: Mirai e no Isan (Japan 990927, NO CD)\0", NULL, "Capcom", "CPS-3",
- L"\u30B8\u30E7\u30B8\u30E7\u306E \u5947\u5999\u306A\u5192\u967A: \u672A\u6765\u3078\u306E\u907A\u7523\0JoJo's Bizarre Adventure (Japan 990927, NO CD)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS3 | HARDWARE_CAPCOM_CPS3_NO_CD, GBF_VSFIGHT, 0,
- NULL, jojobanRomInfo, jojobanRomName, NULL, NULL, cps3InputInfo, jojobaDIPInfo,
- jojobaInit, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change, 0x40000,
- 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvJojobane = {
- "jojobane", "jojoba", NULL, NULL, "1999",
- "JoJo's Bizarre Adventure: Heritage for the Future / JoJo no Kimyou na Bouken: Mirai e no Isan (Euro 990927, NO CD)\0", NULL, "Capcom", "CPS-3",
- L"JoJo's Bizarre Adventure\0\u30B8\u30E7\u30B8\u30E7\u306E \u5947\u5999\u306A\u5192\u967A: \u672A\u6765\u3078\u306E\u907A\u7523 (Euro 990927, NO CD)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS3 | HARDWARE_CAPCOM_CPS3_NO_CD, GBF_VSFIGHT, 0,
- NULL, jojobaneRomInfo, jojobaneRomName, NULL, NULL, cps3InputInfo, jojobaneDIPInfo,
- jojobaInit, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change, 0x40000,
- 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvJojobar1 = {
- "jojobar1", "jojoba", NULL, NULL, "1999",
- "JoJo's Bizarre Adventure: Heritage for the Future / JoJo no Kimyou na Bouken: Mirai e no Isan (Japan 990913)\0", NULL, "Capcom", "CPS-3",
- L"\u30B8\u30E7\u30B8\u30E7\u306E \u5947\u5999\u306A\u5192\u967A: \u672A\u6765\u3078\u306E\u907A\u7523\0JoJo's Bizarre Adventure (Japan 990913)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS3, GBF_VSFIGHT, 0,
- NULL, jojobar1RomInfo, jojobar1RomName, NULL, NULL, cps3InputInfo, jojobaDIPInfo,
- jojobaInit, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change, 0x40000,
- 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvJojobanr1 = {
- "jojobanr1", "jojoba", NULL, NULL, "1999",
- "JoJo's Bizarre Adventure: Heritage for the Future / JoJo no Kimyou na Bouken: Mirai e no Isan (Japan 990913, NO CD)\0", NULL, "Capcom", "CPS-3",
- L"\u30B8\u30E7\u30B8\u30E7\u306E \u5947\u5999\u306A\u5192\u967A: \u672A\u6765\u3078\u306E\u907A\u7523\0JoJo's Bizarre Adventure (Japan 990913, NO CD)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS3 | HARDWARE_CAPCOM_CPS3_NO_CD, GBF_VSFIGHT, 0,
- NULL, jojobanr1RomInfo, jojobanr1RomName, NULL, NULL, cps3InputInfo, jojobaDIPInfo,
- jojobaInit, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change, 0x40000,
- 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvJojobaner1 = {
- "jojobaner1", "jojoba", NULL, NULL, "1999",
- "JoJo's Bizarre Adventure: Heritage for the Future / JoJo no Kimyou na Bouken: Mirai e no Isan (Euro 990913, NO CD)\0", NULL, "Capcom", "CPS-3",
- L"JoJo's Bizarre Adventure\0\u30B8\u30E7\u30B8\u30E7\u306E \u5947\u5999\u306A\u5192\u967A: \u672A\u6765\u3078\u306E\u907A\u7523 (Euro 990913, NO CD)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS3 | HARDWARE_CAPCOM_CPS3_NO_CD, GBF_VSFIGHT, 0,
- NULL, jojobaner1RomInfo, jojobaner1RomName, NULL, NULL, cps3InputInfo, jojobaneDIPInfo,
- jojobaInit, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change, 0x40000,
- 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvRedearth = {
- "redearth", NULL, NULL, NULL, "1996",
- "Red Earth / War-Zard (Euro 961121)\0", NULL, "Capcom", "CPS-3",
- L"Red Earth\0War-Zard (Euro 961121)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_CAPCOM_CPS3, GBF_VSFIGHT, 0,
- NULL, redearthRomInfo, redearthRomName, NULL, NULL, cps3InputInfo, redearthDIPInfo,
- redearthInit, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change, 0x40000,
- 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvWarzard = {
- "warzard", "redearth", NULL, NULL, "1996",
- "War-Zard / Red Earth (Japan 961121)\0", NULL, "Capcom", "CPS-3",
- L"War-Zard\0Red Earth (Japan 961121)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS3, GBF_VSFIGHT, 0,
- NULL, warzardRomInfo, warzardRomName, NULL, NULL, cps3InputInfo, warzardDIPInfo,
- redearthInit, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change, 0x40000,
- 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvRedearthr1 = {
- "redearthr1", "redearth", NULL, NULL, "1996",
- "Red Earth / War-Zard (Euro 961023)\0", NULL, "Capcom", "CPS-3",
- L"Red Earth\0War-Zard (Euro 961023)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS3, GBF_VSFIGHT, 0,
- NULL, redearthr1RomInfo, redearthr1RomName, NULL, NULL, cps3InputInfo, redearthDIPInfo,
- redearthInit, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change, 0x40000,
- 384, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvWarzardr1 = {
- "warzardr1", "redearth", NULL, NULL, "1996",
- "War-Zard / Red Earth (Japan 961023)\0", NULL, "Capcom", "CPS-3",
- L"War-Zard\0Red Earth (Japan 961023)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_CAPCOM_CPS3, GBF_VSFIGHT, 0,
- NULL, warzardr1RomInfo, warzardr1RomName, NULL, NULL, cps3InputInfo, warzardDIPInfo,
- redearthInit, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change, 0x40000,
- 384, 224, 4, 3
-};
diff --git a/jan/src/burn/drv/d_parent.cpp b/jan/src/burn/drv/d_parent.cpp
deleted file mode 100644
index 2d4f20b6d..000000000
--- a/jan/src/burn/drv/d_parent.cpp
+++ /dev/null
@@ -1,253 +0,0 @@
-// A module for keeping parents who have no driver in FBA
-
-#include "burnint.h"
-
-static UINT8 ParentReset = 0;
-
-static struct BurnInputInfo ParentInputList[] = {
- {"Reset" , BIT_DIGITAL , &ParentReset , "reset" },
-};
-
-STDINPUTINFO(Parent)
-
-static INT32 ParentInit()
-{
- return 1;
-}
-
-static INT32 ParentExit()
-{
- return 0;
-}
-
-static struct BurnRomInfo BagmanRomDesc[] = {
- { "e9_b05.bin", 0x01000, 0xe0156191, BRF_ESS | BRF_PRG },
- { "f9_b06.bin", 0x01000, 0x7b758982, BRF_ESS | BRF_PRG },
- { "f9_b07.bin", 0x01000, 0x302a077b, BRF_ESS | BRF_PRG },
- { "k9_b08.bin", 0x01000, 0xf04293cb, BRF_ESS | BRF_PRG },
- { "m9_b09s.bin", 0x01000, 0x68e83e4f, BRF_ESS | BRF_PRG },
- { "n9_b10.bin", 0x01000, 0x1d6579f7, BRF_ESS | BRF_PRG },
-
- { "e1_b02.bin", 0x01000, 0x4a0a6b55, BRF_ESS | BRF_PRG },
- { "j1_b04.bin", 0x01000, 0xc680ef04, BRF_ESS | BRF_PRG },
-
- { "c1_b01.bin", 0x01000, 0x705193b2, BRF_ESS | BRF_PRG },
- { "f1_b03s.bin", 0x01000, 0xdba1eda7, BRF_ESS | BRF_PRG },
-
- { "p3.bin", 0x00020, 0x2a855523, BRF_GRA },
- { "r3.bin", 0x00020, 0xae6f1019, BRF_GRA },
- { "r6.bin", 0x00020, 0xc58a4f6a, BRF_GRA },
-
- { "r9_b11.bin", 0x01000, 0x2e0057ff, BRF_SND },
- { "t9_b12.bin", 0x01000, 0xb2120edd, BRF_SND },
-};
-
-STD_ROM_PICK(Bagman)
-STD_ROM_FN(Bagman)
-
-struct BurnDriver BurnDrvBagman = {
- "bagman", NULL, NULL, NULL, "1982",
- "Bagman\0", "Parent set for working drivers", "Valadon Automation", "Miscellaneous",
- NULL, NULL, NULL, NULL,
- 0, 2, HARDWARE_MISC_PRE90S, GBF_MAZE, 0,
- NULL, BagmanRomInfo, BagmanRomName, NULL, NULL, ParentInputInfo, NULL,
- ParentInit, ParentExit, NULL, NULL, NULL,
- NULL, 0, 224, 256, 3, 4
-};
-
-static struct BurnRomInfo DockmanRomDesc[] = {
- { "pe1.19", 0x01000, 0xeef2ec54, BRF_ESS | BRF_PRG },
- { "pe2.18", 0x01000, 0xbc48d16b, BRF_ESS | BRF_PRG },
- { "pe3.17", 0x01000, 0x1c923057, BRF_ESS | BRF_PRG },
- { "pe4.16", 0x01000, 0x23af1cba, BRF_ESS | BRF_PRG },
- { "pe5.15", 0x01000, 0x39dbe429, BRF_ESS | BRF_PRG },
-
- { "pe7.22", 0x00800, 0xd2094e4a, BRF_ESS | BRF_PRG },
- { "pe6.23", 0x00800, 0x1cf447f4, BRF_ESS | BRF_PRG },
-
- { "pe8.9", 0x01000, 0x4d8c2974, BRF_GRA },
- { "pe9.8", 0x01000, 0x4e4ea162, BRF_GRA },
-
- { "mb7051.3", 0x00020, 0x6440dc61, BRF_GRA },
-};
-
-STD_ROM_PICK(Dockman)
-STD_ROM_FN(Dockman)
-
-struct BurnDriver BurnDrvDockman = {
- "dockman", NULL, NULL, NULL, "1982",
- "Dock Man\0", "Parent set for working drivers", "Taito Corporation", "Miscellaneous",
- NULL, NULL, NULL, NULL,
- 0, 2, HARDWARE_MISC_PRE90S, GBF_PLATFORM, 0,
- NULL, DockmanRomInfo, DockmanRomName, NULL, NULL, ParentInputInfo, NULL,
- ParentInit, ParentExit, NULL, NULL, NULL,
- NULL, 0, 224, 256, 3, 4
-};
-
-static struct BurnRomInfo EightballactRomDesc[] = {
- { "8b-dk.5e", 0x01000, 0x166c1c9b, BRF_ESS | BRF_PRG },
- { "8b-dk.5c", 0x01000, 0x9ec87baa, BRF_ESS | BRF_PRG },
- { "8b-dk.5b", 0x01000, 0xf836a962, BRF_ESS | BRF_PRG },
- { "8b-dk.5a", 0x01000, 0xd45866d4, BRF_ESS | BRF_PRG },
-
- { "8b-dk.3h", 0x00800, 0xa8752c60, BRF_ESS | BRF_PRG },
-
- { "8b-dk.3n", 0x00800, 0x44830867, BRF_GRA },
- { "8b-dk.3p", 0x00800, 0x6148c6f2, BRF_GRA },
-
- { "8b-dk.7c", 0x00800, 0xe34409f5, BRF_GRA },
- { "8b-dk.7d", 0x00800, 0xb4dc37ca, BRF_GRA },
- { "8b-dk.7e", 0x00800, 0x655af8a8, BRF_GRA },
- { "8b-dk.7f", 0x00800, 0xa29b2763, BRF_GRA },
-
- { "8b.2e", 0x00100, 0xc7379a12, BRF_GRA },
- { "8b.2f", 0x00100, 0x116612b4, BRF_GRA },
- { "8b.2n", 0x00100, 0x30586988, BRF_GRA },
-
- { "82s147.prm", 0x00200, 0x46e5bc92, BRF_GRA },
-
- { "pls153h.bin", 0x000eb, 0x00000000, BRF_NODUMP },
-};
-
-STD_ROM_PICK(Eightballact)
-STD_ROM_FN(Eightballact)
-
-struct BurnDriver BurnDrvEightballact = {
- "8ballact", NULL, NULL, NULL, "1984",
- "Eight Ball Action (DK conversion)\0", "Parent set for working drivers", "Seatongrove Ltd (Magic Eletronics USA licence)", "Miscellaneous",
- NULL, NULL, NULL, NULL,
- 0, 2, HARDWARE_MISC_PRE90S, GBF_SPORTSMISC, 0,
- NULL, EightballactRomInfo, EightballactRomName, NULL, NULL, ParentInputInfo, NULL,
- ParentInit, ParentExit, NULL, NULL, NULL,
- NULL, 0, 256, 224, 4, 3
-};
-
-static struct BurnRomInfo HeroRomDesc[] = {
- { "hr-gp1.bin", 0x01000, 0x82f39788, BRF_ESS | BRF_PRG },
- { "hr-gp2.bin", 0x01000, 0x79607812, BRF_ESS | BRF_PRG },
- { "hr-gp3.bin", 0x01000, 0x2902715c, BRF_ESS | BRF_PRG },
- { "hr-gp4.bin", 0x01000, 0x696d2f8e, BRF_ESS | BRF_PRG },
- { "hr-gp5.bin", 0x01000, 0x936a4ba6, BRF_ESS | BRF_PRG },
-
- { "hr-sdp1.bin", 0x00800, 0xc34ecf79, BRF_ESS | BRF_PRG },
-
- { "hr-sp1.bin", 0x00800, 0xa5c33cb1, BRF_SND },
-
- { "hr-cp1.bin", 0x00800, 0x2d201496, BRF_GRA },
- { "hr-cp2.bin", 0x00800, 0x21b61fe3, BRF_GRA },
- { "hr-cp3.bin", 0x00800, 0x9c8e3f9e, BRF_GRA },
-
- { "5b.bin", 0x00800, 0xf055a624, BRF_SND },
-
- { "82s185.10h", 0x00800, 0xc205bca6, BRF_GRA },
- { "82s123.10k", 0x00020, 0xb5221cec, BRF_GRA },
-};
-
-STD_ROM_PICK(Hero)
-STD_ROM_FN(Hero)
-
-struct BurnDriver BurnDrvHero = {
- "hero", NULL, NULL, NULL, "1984",
- "Hero\0", "Parent set for working drivers", "Century Electronics / Seatongrove Ltd", "Miscellaneous",
- NULL, NULL, NULL, NULL,
- 0, 2, HARDWARE_MISC_PRE90S, GBF_PLATFORM, 0,
- NULL, HeroRomInfo, HeroRomName, NULL, NULL, ParentInputInfo, NULL,
- ParentInit, ParentExit, NULL, NULL, NULL,
- NULL, 0, 224, 256, 3, 4
-};
-
-static struct BurnRomInfo HunchbakRomDesc[] = {
- { "hb-gp1.bin", 0x01000, 0xaf801d54, BRF_ESS | BRF_PRG },
- { "hb-gp2.bin", 0x01000, 0xb448cc8e, BRF_ESS | BRF_PRG },
- { "hb-gp3.bin", 0x01000, 0x57c6ea7b, BRF_ESS | BRF_PRG },
- { "hb-gp4.bin", 0x01000, 0x7f91287b, BRF_ESS | BRF_PRG },
- { "hb-gp5.bin", 0x01000, 0x1dd5755c, BRF_ESS | BRF_PRG },
-
- { "6c.sdp1", 0x01000, 0xf9ba2854, BRF_ESS | BRF_PRG },
-
- { "8a.sp1", 0x00800, 0xed1cd201, BRF_SND },
-
- { "11a.cp1", 0x00800, 0xf256b047, BRF_GRA },
- { "10a.cp2", 0x00800, 0xb870c64f, BRF_GRA },
- { "9a.cp3", 0x00800, 0x9a7dab88, BRF_GRA },
-
- { "5b.bin", 0x00800, 0xf055a624, BRF_SND },
-
- { "82s185.10h", 0x00800, 0xc205bca6, BRF_GRA },
- { "82s123.10k", 0x00020, 0xb5221cec, BRF_GRA },
-};
-
-STD_ROM_PICK(Hunchbak)
-STD_ROM_FN(Hunchbak)
-
-struct BurnDriver BurnDrvHunchbak = {
- "hunchbak", NULL, NULL, NULL, "1983",
- "Hunchback (set 1)\0", "Parent set for working drivers", "Century Electronics", "Miscellaneous",
- NULL, NULL, NULL, NULL,
- 0, 2, HARDWARE_MISC_PRE90S, GBF_PLATFORM, 0,
- NULL, HunchbakRomInfo, HunchbakRomName, NULL, NULL, ParentInputInfo, NULL,
- ParentInit, ParentExit, NULL, NULL, NULL,
- NULL, 0, 224, 256, 3, 4
-};
-
-static struct BurnRomInfo HuncholyRomDesc[] = {
- { "ho-gp1.bin", 0x01000, 0x4f17cda7, BRF_ESS | BRF_PRG },
- { "ho-gp2.bin", 0x01000, 0x70fa52c7, BRF_ESS | BRF_PRG },
- { "ho-gp3.bin", 0x01000, 0x931934b1, BRF_ESS | BRF_PRG },
- { "ho-gp4.bin", 0x01000, 0xaf5cd501, BRF_ESS | BRF_PRG },
- { "ho-gp5.bin", 0x01000, 0x658e8974, BRF_ESS | BRF_PRG },
-
- { "ho-sdp1.bin", 0x01000, 0x3efb3ffd, BRF_ESS | BRF_PRG },
-
- { "ho-sp1.bin", 0x01000, 0x3fd39b1e, BRF_SND },
-
- { "ho-cp1.bin", 0x00800, 0xc6c73d46, BRF_GRA },
- { "ho-cp2.bin", 0x00800, 0xe596371c, BRF_GRA },
- { "ho-cp3.bin", 0x00800, 0x11fae1cf, BRF_GRA },
-
- { "5b.bin", 0x00800, 0xf055a624, BRF_SND },
-
- { "82s185.10h", 0x00800, 0xc205bca6, BRF_GRA },
- { "82s123.10k", 0x00020, 0xb5221cec, BRF_GRA },
-};
-
-STD_ROM_PICK(Huncholy)
-STD_ROM_FN(Huncholy)
-
-struct BurnDriver BurnDrvHuncholy = {
- "huncholy", NULL, NULL, NULL, "1984",
- "Hunchback Olympic\0", "Parent set for working drivers", "Seatongrove Ltd", "Miscellaneous",
- NULL, NULL, NULL, NULL,
- 0, 2, HARDWARE_MISC_PRE90S, GBF_SPORTSMISC, 0,
- NULL, HuncholyRomInfo, HuncholyRomName, NULL, NULL, ParentInputInfo, NULL,
- ParentInit, ParentExit, NULL, NULL, NULL,
- NULL, 0, 224, 256, 3, 4
-};
-
-static struct BurnRomInfo ThepitRomDesc[] = {
- { "pit1.bin", 0x01000, 0x71affecc, BRF_ESS | BRF_PRG },
- { "pit2.bin", 0x01000, 0x894063cd, BRF_ESS | BRF_PRG },
- { "pit3.bin", 0x01000, 0x1b488543, BRF_ESS | BRF_PRG },
- { "pit4.bin", 0x01000, 0xe941e848, BRF_ESS | BRF_PRG },
- { "pit5.bin", 0x01000, 0xe0643c95, BRF_ESS | BRF_PRG },
-
- { "pit6.bin", 0x00800, 0x1b79dfb6, BRF_ESS | BRF_PRG },
-
- { "pit8.bin", 0x00800, 0x69502afc, BRF_GRA },
- { "pit7.bin", 0x00800, 0xd901b353, BRF_GRA },
-
- { "82s123.ic4", 0x00020, 0xa758b567, BRF_GRA },
-};
-
-STD_ROM_PICK(Thepit)
-STD_ROM_FN(Thepit)
-
-struct BurnDriver BurnDrvThepit = {
- "thepit", NULL, NULL, NULL, "1992",
- "The Pit\0", "Parent set for working drivers", "Taito", "Miscellaneous",
- NULL, NULL, NULL, NULL,
- 0, 2, HARDWARE_MISC_PRE90S, GBF_PLATFORM, 0,
- NULL, ThepitRomInfo, ThepitRomName, NULL, NULL, ParentInputInfo, NULL,
- ParentInit, ParentExit, NULL, NULL, NULL,
- NULL, 0, 256, 224, 4, 3
-};
diff --git a/jan/src/burn/drv/dataeast/d_actfancr.cpp b/jan/src/burn/drv/dataeast/d_actfancr.cpp
deleted file mode 100644
index 71b2c0b7d..000000000
--- a/jan/src/burn/drv/dataeast/d_actfancr.cpp
+++ /dev/null
@@ -1,1182 +0,0 @@
-// FB Alpha Act-Fancer & Trio The Punch driver module
-// Based on MAME driver by Bryan McPhail
-
-#include "tiles_generic.h"
-#include "m6502_intf.h"
-#include "h6280_intf.h"
-#include "burn_ym2203.h"
-#include "burn_ym3812.h"
-#include "msm6295.h"
-
-static UINT8 *AllMem = NULL;
-static UINT8 *AllRam = NULL;
-static UINT8 *MemEnd = NULL;
-static UINT8 *RamEnd = NULL;
-static UINT8 *Drv6280ROM = NULL;
-static UINT8 *Drv6502ROM = NULL;
-static UINT8 *DrvGfxROM0 = NULL;
-static UINT8 *DrvGfxROM1 = NULL;
-static UINT8 *DrvGfxROM2 = NULL;
-static UINT8 *DrvPf1RAM = NULL;
-static UINT8 *DrvPf2RAM = NULL;
-static UINT8 *DrvPf1Scr = NULL;
-static UINT8 *DrvPf2Scr = NULL;
-static UINT8 *DrvSprRAM = NULL;
-static UINT8 *DrvPalRAM = NULL;
-static UINT8 *Drv6280RAM = NULL;
-static UINT8 *Drv6502RAM = NULL;
-static UINT8 *DrvSprBuf = NULL;
-static UINT8 *DrvPfCtrl[2] = { NULL, NULL };
-
-static UINT8 *soundlatch = NULL;
-static UINT8 *flipscreen = NULL;
-
-static UINT32 *DrvPalette = NULL;
-static UINT8 DrvRecalc;
-
-static UINT8 control_select;
-
-static INT32 vblank;
-static UINT16 gfx_config[4];
-
-static UINT8 DrvJoy1[8];
-static UINT8 DrvJoy2[8];
-static UINT8 DrvJoy3[8];
-static UINT8 DrvDips[2];
-static UINT8 DrvInputs[3];
-static UINT8 DrvReset;
-
-static struct BurnInputInfo ActfancrInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy3 + 0, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 7, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy1 + 0, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy1 + 1, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy1 + 2, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy1 + 3, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy1 + 4, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy1 + 5, "p1 fire 2" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy3 + 1, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy2 + 7, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvJoy2 + 0, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy2 + 1, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy2 + 2, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy2 + 3, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy2 + 4, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy2 + 5, "p2 fire 2" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service", BIT_DIGITAL, DrvJoy3 + 2, "service" },
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip" },
-};
-
-STDINPUTINFO(Actfancr)
-
-static struct BurnInputInfo TriothepInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy3 + 0, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 7, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy1 + 0, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy1 + 1, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy1 + 2, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy1 + 3, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy1 + 4, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy1 + 5, "p1 fire 2" },
- {"P1 Button 3", BIT_DIGITAL, DrvJoy1 + 6, "p1 fire 3" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy3 + 1, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy2 + 7, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvJoy2 + 0, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy2 + 1, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy2 + 2, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy2 + 3, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy2 + 4, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy2 + 5, "p2 fire 2" },
- {"P2 Button 3", BIT_DIGITAL, DrvJoy2 + 6, "p2 fire 3" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service", BIT_DIGITAL, DrvJoy3 + 2, "service" },
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip" },
-};
-
-STDINPUTINFO(Triothep)
-
-static struct BurnDIPInfo ActfancrDIPList[]=
-{
- {0x12, 0xff, 0xff, 0x7f, NULL },
- {0x13, 0xff, 0xff, 0xff, NULL },
-
- {0 , 0xfe, 0 , 4, "Coin A" },
- {0x12, 0x01, 0x03, 0x00, "3 Coins 1 Credits" },
- {0x12, 0x01, 0x03, 0x01, "2 Coins 1 Credits" },
- {0x12, 0x01, 0x03, 0x03, "1 Coin 1 Credits" },
- {0x12, 0x01, 0x03, 0x02, "1 Coin 2 Credits" },
-
- {0 , 0xfe, 0 , 4, "Coin B" },
- {0x12, 0x01, 0x0c, 0x00, "3 Coins 1 Credits" },
- {0x12, 0x01, 0x0c, 0x04, "2 Coins 1 Credits" },
- {0x12, 0x01, 0x0c, 0x0c, "1 Coin 1 Credits" },
- {0x12, 0x01, 0x0c, 0x08, "1 Coin 2 Credits" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x12, 0x01, 0x20, 0x00, "Off" },
- {0x12, 0x01, 0x20, 0x20, "On" },
-
-#if 0
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x12, 0x01, 0x40, 0x40, "Off" },
- {0x12, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Cabinet" },
- {0x12, 0x01, 0x80, 0x00, "Upright" },
- {0x12, 0x01, 0x80, 0x80, "Cocktail" },
-#endif
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x13, 0x01, 0x03, 0x03, "3" },
- {0x13, 0x01, 0x03, 0x02, "4" },
- {0x13, 0x01, 0x03, 0x01, "5" },
- {0x13, 0x01, 0x03, 0x00, "100 (Cheat)" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x13, 0x01, 0x0c, 0x04, "Easy" },
- {0x13, 0x01, 0x0c, 0x0c, "Normal" },
- {0x13, 0x01, 0x0c, 0x08, "Hard" },
- {0x13, 0x01, 0x0c, 0x00, "Hardest" },
-
- {0 , 0xfe, 0 , 2, "Bonus Life" },
- {0x13, 0x01, 0x20, 0x20, "800000" },
- {0x13, 0x01, 0x20, 0x00, "None" },
-};
-
-STDDIPINFO(Actfancr)
-
-static struct BurnDIPInfo TriothepDIPList[]=
-{
- {0x14, 0xff, 0xff, 0x7f, NULL },
- {0x15, 0xff, 0xff, 0xff, NULL },
-
- {0 , 0xfe, 0 , 4, "Coin A" },
- {0x14, 0x01, 0x03, 0x00, "3 Coins 1 Credits" },
- {0x14, 0x01, 0x03, 0x01, "2 Coins 1 Credits" },
- {0x14, 0x01, 0x03, 0x03, "1 Coin 1 Credits" },
- {0x14, 0x01, 0x03, 0x02, "1 Coin 2 Credits" },
-
- {0 , 0xfe, 0 , 4, "Coin B" },
- {0x14, 0x01, 0x0c, 0x00, "3 Coins 1 Credits" },
- {0x14, 0x01, 0x0c, 0x04, "2 Coins 1 Credits" },
- {0x14, 0x01, 0x0c, 0x0c, "1 Coin 1 Credits" },
- {0x14, 0x01, 0x0c, 0x08, "1 Coin 2 Credits" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x14, 0x01, 0x20, 0x00, "Off" },
- {0x14, 0x01, 0x20, 0x20, "On" },
-
-#if 0
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x14, 0x01, 0x40, 0x40, "Off" },
- {0x14, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Cabinet" },
- {0x14, 0x01, 0x80, 0x00, "Upright" },
- {0x14, 0x01, 0x80, 0x80, "Cocktail" },
-#endif
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x15, 0x01, 0x03, 0x00, "8" },
- {0x15, 0x01, 0x03, 0x01, "10" },
- {0x15, 0x01, 0x03, 0x03, "12" },
- {0x15, 0x01, 0x03, 0x02, "14" },
-
- {0 , 0xfe, 0 , 4, "Difficulty (Time)" },
- {0x15, 0x01, 0x0c, 0x08, "Easy (130)" },
- {0x15, 0x01, 0x0c, 0x0c, "Normal (100)" },
- {0x15, 0x01, 0x0c, 0x04, "Hard (70)" },
- {0x15, 0x01, 0x0c, 0x00, "Hardest (60)" },
-
- {0 , 0xfe, 0 , 2, "Bonus Lives" },
- {0x15, 0x01, 0x10, 0x00, "2" },
- {0x15, 0x01, 0x10, 0x10, "3" },
-};
-
-STDDIPINFO(Triothep)
-
-static inline void palette_update(INT32 offset)
-{
- offset &= 0x7fe;
-
- INT32 p = (DrvPalRAM[offset+0] << 0) | (DrvPalRAM[offset+1] << 8);
-
- INT32 r = (p >> 0) & 0x0f;
- INT32 g = (p >> 4) & 0x0f;
- INT32 b = (p >> 8) & 0x0f;
-
- DrvPalette[offset/2] = BurnHighCol((r << 4) | r, (g << 4) | g, (b << 4) | b, 0);
-}
-
-void actfan_main_write(UINT32 address, UINT8 data)
-{
- if ((address & 0xffffe0) == 0x060000) {
- DrvPfCtrl[0][address & 0x1f] = data;
- return;
- }
-
- if ((address & 0xffffe0) == 0x070000) {
- DrvPfCtrl[1][address & 0x1f] = data;
- return;
- }
-
- if ((address & 0xfff800) == 0x120000) {
- DrvPalRAM[address & 0x7ff] = data;
- palette_update(address & 0x7fe);
- return;
- }
-
- switch (address)
- {
- case 0x110000:
- memcpy (DrvSprBuf, DrvSprRAM, 0x800);
- return;
-
- case 0x150000:
- *soundlatch = data;
- M6502SetIRQLine(M6502_INPUT_LINE_NMI, CPU_IRQSTATUS_AUTO);
- return;
-
- case 0x160000:
- return; // ?
- }
-}
-
-UINT8 actfan_main_read(UINT32 address)
-{
- switch (address)
- {
- case 0x130000:
- case 0x130001:
- return DrvInputs[(address & 1)];
-
- case 0x130002:
- case 0x130003:
- return DrvDips[(address & 1)];
-
- case 0x140000:
- case 0x140001:
- return (DrvInputs[2] & 0x7f) | vblank;
- }
-
- return 0;
-}
-
-void triothep_main_write(UINT32 address, UINT8 data)
-{
- if ((address & 0xffffe0) == 0x060000) {
- DrvPfCtrl[0][address & 0x1f] = data;
- return;
- }
-
- if ((address & 0xffffe0) == 0x040000) {
- DrvPfCtrl[1][address & 0x1f] = data;
- return;
- }
-
- if ((address & 0xfff800) == 0x130000) {
- DrvPalRAM[address & 0x7ff] = data;
- palette_update(address & 0x7fe);
- return;
- }
-
- switch (address)
- {
- case 0x100000:
- *soundlatch = data;
- M6502SetIRQLine(M6502_INPUT_LINE_NMI, CPU_IRQSTATUS_AUTO);
- return;
-
- case 0x110000:
- memcpy (DrvSprBuf, DrvSprRAM, 0x800);
- return;
-
- case 0x1ff000:
- case 0x1ff001:
- control_select = data;
- return;
-
- case 0x1ff400:
- case 0x1ff401:
- case 0x1ff402:
- case 0x1ff403:
- h6280_irq_status_w(address & 3, data);
- return;
-
- case 0x064800: // overflow from rowscroll write?
- return;
-
- case 0x120800: // overflow from spriteram write?
- return;
- }
-}
-
-UINT8 triothep_main_read(UINT32 address)
-{
- switch (address)
- {
- case 0x140000:
- return 0; // nop
-
- case 0x1ff000:
- case 0x1ff001:
- {
- switch (control_select)
- {
- case 0: return DrvInputs[0];
- case 1: return DrvInputs[1];
- case 2: return DrvDips[0];
- case 3: return DrvDips[1];
- case 4: return (DrvInputs[2] & 0x7f) | vblank;
- default: return 0xff;
- }
- }
- return 0xff;
- }
-
- return 0;
-}
-
-static void Dec0_sound_write(UINT16 address, UINT8 data)
-{
- switch (address)
- {
- case 0x0800:
- case 0x0801:
- BurnYM2203Write(0, address & 1, data);
- return;
-
- case 0x1000:
- case 0x1001:
- BurnYM3812Write(0, address & 1, data);
- return;
-
- case 0x3800:
- MSM6295Command(0, data);
- return;
- }
-}
-
-static UINT8 Dec0_sound_read(UINT16 address)
-{
- switch (address)
- {
- case 0x3000:
- M6502SetIRQLine(M6502_INPUT_LINE_NMI, CPU_IRQSTATUS_NONE);
- return *soundlatch;
-
- case 0x3800:
- return MSM6295ReadStatus(0);
- }
-
- return 0;
-}
-
-inline static INT32 Dec0YM2203SynchroniseStream(INT32 nSoundRate)
-{
- return (INT64)h6280TotalCycles() * nSoundRate / 7159066;
-}
-
-inline static double Dec0YM2203GetTime()
-{
- return (double)h6280TotalCycles() / 7159066.0;
-}
-
-static void Dec0YM3812IRQHandler(INT32, INT32 nStatus)
-{
- if (nStatus) {
- M6502SetIRQLine(M6502_IRQ_LINE, CPU_IRQSTATUS_ACK);
- } else {
- M6502SetIRQLine(M6502_IRQ_LINE, CPU_IRQSTATUS_NONE);
- }
-}
-
-static INT32 Dec0YM3812SynchroniseStream(INT32 nSoundRate)
-{
- return (INT64)M6502TotalCycles() * nSoundRate / 1500000;
-}
-
-static INT32 DrvDoReset()
-{
- memset (AllRam, 0, RamEnd - AllRam);
-
- h6280Open(0);
- h6280Reset();
- h6280Close();
-
- M6502Open(0);
- M6502Reset();
- M6502Close();
-
- MSM6295Reset(0);
- BurnYM2203Reset();
- BurnYM3812Reset();
-
- control_select = 0;
-
- return 0;
-}
-
-static INT32 MemIndex()
-{
- UINT8 *Next; Next = AllMem;
-
- Drv6280ROM = Next; Next += 0x040000;
- Drv6502ROM = Next; Next += 0x010000;
-
- DrvGfxROM0 = Next; Next += 0x040000;
- DrvGfxROM1 = Next; Next += 0x0c0000;
- DrvGfxROM2 = Next; Next += 0x080000;
-
- MSM6295ROM = Next; Next += 0x040000;
-
- DrvPalette = (UINT32*)Next; Next += 0x0400 * sizeof(INT32);
-
- AllRam = Next;
-
- Drv6280RAM = Next; Next += 0x004000;
- Drv6502RAM = Next; Next += 0x000800;
-
- DrvSprRAM = Next; Next += 0x000800;
- DrvPalRAM = Next; Next += 0x000800;
-
- DrvSprBuf = Next; Next += 0x000800;
-
- soundlatch = Next; Next += 0x000001;
- flipscreen = Next; Next += 0x000001;
-
- DrvPf1RAM = Next; Next += 0x002000;
- DrvPf2RAM = Next; Next += 0x002000;
-
- DrvPf1Scr = Next; Next += 0x000800;
- DrvPf2Scr = Next; Next += 0x000800;
-
- DrvPfCtrl[0] = Next; Next += 0x000020;
- DrvPfCtrl[1] = Next; Next += 0x000020;
-
- RamEnd = Next;
-
- MemEnd = Next;
-
- return 0;
-}
-
-static INT32 DrvGfxDecode()
-{
- INT32 Plane0[4] = { 0x08000*8, 0x18000*8, 0x00000*8, 0x10000*8 };
- INT32 Plane1[4] = { 0x00000*8, 0x18000*8, 0x30000*8, 0x48000*8 };
- INT32 Plane2[4] = { 0x00000*8, 0x10000*8, 0x20000*8, 0x30000*8 };
- INT32 XOffs[16] = { STEP8(16*8, 1), STEP8(0, 1) };
- INT32 YOffs[16] = { STEP16(0, 8) };
-
- UINT8 *tmp = (UINT8*)BurnMalloc(0x60000);
- if (tmp == NULL) {
- return 1;
- }
-
- memcpy (tmp, DrvGfxROM0, 0x20000);
-
- GfxDecode(0x1000, 4, 8, 8, Plane0, XOffs + 8, YOffs, 0x040, tmp, DrvGfxROM0);
-
- memcpy (tmp, DrvGfxROM1, 0x60000);
-
- GfxDecode(0x0c00, 4, 16, 16, Plane1, XOffs + 0, YOffs, 0x100, tmp, DrvGfxROM1);
-
- memcpy (tmp, DrvGfxROM2, 0x40000);
-
- GfxDecode(0x0800, 4, 16, 16, Plane2, XOffs + 0, YOffs, 0x100, tmp, DrvGfxROM2);
-
- BurnFree (tmp);
-
- return 0;
-}
-
-static void Dec0SoundInit()
-{
- M6502Init(0, TYPE_M6502);
- M6502Open(0);
- M6502MapMemory(Drv6502RAM, 0x0000, 0x07ff, MAP_RAM);
- M6502MapMemory(Drv6502ROM + 0x4000, 0x4000, 0xffff, MAP_ROM);
- M6502SetWriteHandler(Dec0_sound_write);
- M6502SetReadHandler(Dec0_sound_read);
- M6502Close();
-
- BurnYM2203Init(1, 1500000, NULL, Dec0YM2203SynchroniseStream, Dec0YM2203GetTime, 0);
- BurnTimerAttachH6280(7159066);
- BurnYM2203SetRoute(0, BURN_SND_YM2203_YM2203_ROUTE, 0.50, BURN_SND_ROUTE_BOTH);
- BurnYM2203SetRoute(0, BURN_SND_YM2203_AY8910_ROUTE_1, 0.90, BURN_SND_ROUTE_BOTH);
- BurnYM2203SetRoute(0, BURN_SND_YM2203_AY8910_ROUTE_2, 0.90, BURN_SND_ROUTE_BOTH);
- BurnYM2203SetRoute(0, BURN_SND_YM2203_AY8910_ROUTE_3, 0.90, BURN_SND_ROUTE_BOTH);
-
- BurnYM3812Init(1, 3000000, &Dec0YM3812IRQHandler, &Dec0YM3812SynchroniseStream, 1);
- BurnTimerAttachM6502YM3812(1500000);
- BurnYM3812SetRoute(0, BURN_SND_YM3812_ROUTE, 0.90, BURN_SND_ROUTE_BOTH);
-
- MSM6295Init(0, 1024188 / 132, 1);
- MSM6295SetRoute(0, 0.85, BURN_SND_ROUTE_BOTH);
-}
-
-static INT32 ActfanInit()
-{
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(Drv6280ROM + 0x00000, 0, 1)) return 1;
- if (BurnLoadRom(Drv6280ROM + 0x10000, 1, 1)) return 1;
- if (BurnLoadRom(Drv6280ROM + 0x20000, 2, 1)) return 1;
-
- if (BurnLoadRom(Drv6502ROM + 0x08000, 3, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x00000, 4, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x10000, 5, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM1 + 0x00000, 6, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x10000, 7, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x18000, 8, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x28000, 9, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x30000, 10, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x40000, 11, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x48000, 12, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x58000, 13, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM2 + 0x00000, 14, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x10000, 15, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x20000, 16, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x30000, 17, 1)) return 1;
-
- if (BurnLoadRom(MSM6295ROM + 0x00000, 18, 1)) return 1;
-
- if (DrvGfxDecode()) return 1;
- }
-
- h6280Init(0);
- h6280Open(0);
- h6280MapMemory(Drv6280ROM, 0x000000, 0x03ffff, MAP_ROM);
- h6280MapMemory(DrvPf1RAM, 0x062000, 0x063fff, MAP_RAM);
- h6280MapMemory(DrvPf2RAM, 0x072000, 0x073fff, MAP_RAM);
- h6280MapMemory(DrvSprRAM, 0x100000, 0x1007ff, MAP_RAM);
- h6280MapMemory(DrvPalRAM, 0x120000, 0x1205ff, MAP_ROM);
- h6280MapMemory(Drv6280RAM, 0x1f0000, 0x1f3fff, MAP_RAM);
- h6280SetWriteHandler(actfan_main_write);
- h6280SetReadHandler(actfan_main_read);
- h6280Close();
-
- Dec0SoundInit();
-
- gfx_config[0] = 0; // character color offset
- gfx_config[1] = 0x200; // sprite color offset
- gfx_config[2] = 0x100; // bg color offset
- gfx_config[3] = 2; // wide 2
-
- GenericTilesInit();
-
- DrvDoReset();
-
- return 0;
-}
-
-static INT32 TriothepInit()
-{
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(Drv6280ROM + 0x00000, 0, 1)) return 1;
- if (BurnLoadRom(Drv6280ROM + 0x20000, 1, 1)) return 1;
- if (BurnLoadRom(Drv6280ROM + 0x30000, 2, 1)) return 1;
-
- if (BurnLoadRom(Drv6502ROM + 0x00000, 3, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x00000, 4, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x10000, 5, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM1 + 0x00000, 6, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x10000, 7, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x18000, 8, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x28000, 9, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x30000, 10, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x40000, 11, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x48000, 12, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x58000, 13, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM2 + 0x00000, 14, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x10000, 15, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x20000, 16, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x30000, 17, 1)) return 1;
-
- if (BurnLoadRom(MSM6295ROM + 0x00000, 18, 1)) return 1;
-
- if (DrvGfxDecode()) return 1;
- }
-
- h6280Init(0);
- h6280Open(0);
- h6280MapMemory(Drv6280ROM, 0x000000, 0x03ffff, MAP_ROM);
- h6280MapMemory(DrvPf2RAM, 0x044000, 0x045fff, MAP_RAM);
- h6280MapMemory(DrvPf2Scr, 0x046000, 0x0467ff, MAP_RAM);
- h6280MapMemory(DrvPf1RAM, 0x064000, 0x0647ff, MAP_RAM);
- h6280MapMemory(DrvPf1Scr, 0x066000, 0x0667ff, MAP_RAM);
- h6280MapMemory(DrvSprRAM, 0x120000, 0x1207ff, MAP_RAM);
- h6280MapMemory(DrvPalRAM, 0x130000, 0x1305ff, MAP_ROM);
- h6280MapMemory(Drv6280RAM, 0x1f0000, 0x1f3fff, MAP_RAM);
- h6280SetWriteHandler(triothep_main_write);
- h6280SetReadHandler(triothep_main_read);
- h6280Close();
-
- Dec0SoundInit();
-
- gfx_config[0] = 0; // character color offset
- gfx_config[1] = 0x100; // sprite color offset
- gfx_config[2] = 0x200; // bg color offset
- gfx_config[3] = 0; // wide 0
-
- GenericTilesInit();
-
- DrvDoReset();
-
- return 0;
-}
-
-static INT32 DrvExit()
-{
- GenericTilesExit();
-
- BurnYM2203Exit();
- BurnYM3812Exit();
- MSM6295Exit(0);
-
- h6280Exit();
- M6502Exit();
-
- BurnFree (AllMem);
-
- return 0;
-}
-
-static void draw_pf1_layer()
-{
- const INT32 config[4][4][2] = {
- { { 64, 16 }, { 32, 32 }, { 16, 64 }, { 32, 32 } }, // type 0
- { { 128, 16 }, { 64, 32 }, { 32, 64 }, { 64, 32 } }, // type 1
- { { 256, 16 }, { 128, 32 }, { 64, 64 }, { 128, 32 } }, // type 2
- };
-
- INT32 type = gfx_config[3];
-
- INT32 wide = DrvPfCtrl[0][6] & 3;
-
- INT32 width = config[type][wide][0];
- INT32 height = config[type][wide][1];
-
- INT32 scrollx = (DrvPfCtrl[0][0x10] + (DrvPfCtrl[0][0x11] << 8)) & ((width * 16) - 1);
- INT32 scrolly = (DrvPfCtrl[0][0x12] + (DrvPfCtrl[0][0x13] << 8)) & ((height * 16) - 1);
-
- INT32 enable_rowscroll = DrvPfCtrl[0][0] & 0x04;
-
- if (enable_rowscroll == 0)
- {
- for (INT32 offs = 0; offs < width * height; offs++)
- {
- INT32 sx = (offs % width);
- INT32 sy = (offs / width) % height;
-
- INT32 ofst = (sx & 0x0f) + (sy * 16) + ((sx & 0x1f0) << (4+wide));
-
- sx = (sx * 16) - scrollx;
- if (sx < -15) sx += width*16;
-
- sy = (sy * 16) - (scrolly + 8);
- if (sy < -15) sy += height*16;
-
- if (sy >= nScreenHeight || sx >= nScreenWidth) continue;
-
- INT32 code = DrvPf1RAM[ofst * 2 + 0] | (DrvPf1RAM[ofst * 2 + 1] << 8);
-
- if (sx >= 0 && sx <= (nScreenWidth - 16) && sy >= 0 && sy <= (nScreenHeight - 16)) {
- Render16x16Tile(pTransDraw, code & 0xfff, sx, sy, code >> 12, 4, gfx_config[2], DrvGfxROM2);
- } else {
- Render16x16Tile_Clip(pTransDraw, code & 0xfff, sx, sy, code >> 12, 4, gfx_config[2], DrvGfxROM2);
- }
- }
- } else {
- for (INT32 y = 0; y < nScreenHeight; y++)
- {
- UINT16 *dst = pTransDraw + y * nScreenWidth;
-
- INT32 sy = (y + scrolly + 8) & ((height * 16) - 1);
-
- INT32 scrx = ((sy & 0x1ff) >> (DrvPfCtrl[0][0x17] & 0x0f)) + (0x400/2);
-
- scrx = (scrollx + (DrvPf1Scr[(scrx * 2)+0] << 0) + (DrvPf1Scr[(scrx * 2)+1] << 8)) & ((width * 16) - 1);
-
- for (INT32 x = 0; x < nScreenWidth + 16; x+=16)
- {
- INT32 sx = (scrx + x) & ((width * 16) - 1);
-
- INT32 ofst = ((sx / 16) & 0x0f) + (sy & 0x3f0) + (((sx / 16) & 0x1f0) << (4 + wide));
-
- UINT16 code = DrvPf1RAM[ofst * 2 + 0] | (DrvPf1RAM[ofst * 2 + 1] << 8);
-
- {
- UINT8 *gfx = DrvGfxROM2 + ((code & 0x0fff) * 0x100) + ((sy & 0x0f) * 16);
-
- INT32 color = ((code >> 12) * 16) + gfx_config[2];
-
- INT32 xxx = x - (scrx & 0x0f);
-
- if (xxx >= 0 && xxx <= (nScreenWidth - 16)) {
- for (INT32 xx = 0; xx < 16; xx++, xxx++) {
- dst[xxx] = gfx[xx] + color;
- }
- } else {
- for (INT32 xx = 0; xx < 16; xx++, xxx++) {
- if (xxx >= 0 && xxx < nScreenWidth) {
- dst[xxx] = gfx[xx] + color;
- }
- }
- }
- }
- }
- }
- }
-}
-
-static void draw_pf2_layer()
-{
- for (INT32 offs = 32; offs < 32 * 31; offs++)
- {
- INT32 sx = (offs & 0x1f) << 3;
- INT32 sy = (offs >> 5) << 3;
-
- INT32 code = DrvPf2RAM[offs * 2 + 0] | (DrvPf2RAM[offs * 2 + 1] << 8);
-
- if (code == 0) continue; // skip transparent tile
-
- Render8x8Tile_Mask(pTransDraw, code & 0xfff, sx, sy - 8, code >> 12, 4, 0, 0, DrvGfxROM0);
- }
-}
-
-static void draw_sprites()
-{
- INT32 offs = 0;
- while (offs < 0x800)
- {
- INT32 incy, mult;
-
- INT32 sy = DrvSprBuf[offs + 0] + (DrvSprBuf[offs + 1] << 8);
- INT32 sx = DrvSprBuf[offs + 4] + (DrvSprBuf[offs + 5] << 8);
- INT32 enable = sy & 0x8000;
- INT32 color = sx >> 12;
- INT32 flash = sx & 0x0800;
-
- INT32 flipx = sy & 0x2000;
- INT32 flipy = sy & 0x4000;
- INT32 h = (1 << ((sy & 0x1800) >> 11));
- INT32 w = (1 << ((sy & 0x0600) >> 9));
-
- sx = sx & 0x01ff;
- sy = sy & 0x01ff;
- if (sx >= 256) sx -= 512;
- if (sy >= 256) sy -= 512;
- sx = 240 - sx;
- sy = 240 - sy;
-
- if (0) //flipscreen
- {
- sy = 240 - sy;
- sx = 240 - sx;
- if (flipx) flipx = 0; else flipx = 1;
- if (flipy) flipy = 0; else flipy = 1;
- mult = 16;
- }
- else
- mult = -16;
-
- for (INT32 x = 0; x < w; x++)
- {
- if (enable && (!flash || (nCurrentFrame & 1)))
- {
- INT32 code = DrvSprBuf[offs + 2] + (DrvSprBuf[offs + 3] << 8);
-
- code &= ~(h-1);
-
- code %= 0xc00; //&= 0xfff; // right?
-
- if (flipy)
- incy = -1;
- else
- {
- code += h-1;
- incy = 1;
- }
-
- for (INT32 y = 0; y < h; y++)
- {
- if (flipy) {
- if (flipx) {
- Render16x16Tile_Mask_FlipXY_Clip(pTransDraw, code - y * incy, sx + (mult * x), sy + (mult * y) - 8, color, 4, 0, gfx_config[1], DrvGfxROM1);
- } else {
- Render16x16Tile_Mask_FlipY_Clip(pTransDraw, code - y * incy, sx + (mult * x), sy + (mult * y) - 8, color, 4, 0, gfx_config[1], DrvGfxROM1);
- }
- } else {
- if (flipx) {
- Render16x16Tile_Mask_FlipX_Clip(pTransDraw, code - y * incy, sx + (mult * x), sy + (mult * y) - 8, color, 4, 0, gfx_config[1], DrvGfxROM1);
- } else {
- Render16x16Tile_Mask_Clip(pTransDraw, code - y * incy, sx + (mult * x), sy + (mult * y) - 8, color, 4, 0, gfx_config[1], DrvGfxROM1);
- }
- }
- }
- }
-
- offs += 8;
- if (offs >= 0x800) return;
- }
- }
-}
-
-static INT32 DrvDraw()
-{
- if (DrvRecalc) {
- for (INT32 i = 0; i < 0x600; i+=2) {
- palette_update(i);
- }
- DrvRecalc = 0;
- }
-
- if ((nBurnLayer & 1) == 0) {
- BurnTransferClear();
- } else {
- draw_pf1_layer();
- }
- if (nBurnLayer & 2) draw_sprites();
- if (nBurnLayer & 4) draw_pf2_layer();
-
- BurnTransferCopy(DrvPalette);
-
- return 0;
-}
-
-static INT32 DrvFrame()
-{
- if (DrvReset) {
- DrvDoReset();
- }
-
- h6280NewFrame();
- M6502NewFrame();
-
- {
- memset (DrvInputs, 0xff, 3);
- for (INT32 i = 0; i < 8; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- DrvInputs[2] ^= (DrvJoy3[i] & 1) << i;
- }
-
- // clear opposites
- if ((DrvInputs[0] & 0x03) == 0) DrvInputs[0] |= 0x03;
- if ((DrvInputs[0] & 0x0c) == 0) DrvInputs[0] |= 0x0c;
- if ((DrvInputs[1] & 0x03) == 0) DrvInputs[1] |= 0x03;
- if ((DrvInputs[1] & 0x0c) == 0) DrvInputs[1] |= 0x0c;
- }
-
- INT32 nInterleave = 32;
- INT32 nCyclesTotal[2] = { 7159066 / 60, 1500000 / 60 };
-
- h6280Open(0);
- M6502Open(0);
-
- vblank = 0x80;
-
- for (INT32 i = 0; i < nInterleave; i++)
- {
- BurnTimerUpdate(i * (nCyclesTotal[0] / nInterleave)); // h6280
- if (i == 1) vblank = 0;
- if (i == 30) {
- vblank = 0x80;
- h6280SetIRQLine(0, CPU_IRQSTATUS_AUTO);
- }
-
- BurnTimerUpdateYM3812(i * (nCyclesTotal[1] / nInterleave)); // m6502
- }
-
- BurnTimerEndFrame(nCyclesTotal[0]); // h6280
- BurnTimerEndFrameYM3812(nCyclesTotal[1]); // m6502
-
- if (pBurnSoundOut) {
- BurnYM2203Update(pBurnSoundOut, nBurnSoundLen);
- BurnYM3812Update(pBurnSoundOut, nBurnSoundLen);
- MSM6295Render(0, pBurnSoundOut, nBurnSoundLen);
- }
-
- M6502Close();
- h6280Close();
-
- if (pBurnDraw) {
- DrvDraw();
- }
-
- return 0;
-}
-
-static INT32 DrvScan(INT32 nAction, INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin != NULL) {
- *pnMin = 0x029721;
- }
-
- if (nAction & ACB_MEMORY_RAM) {
- memset(&ba, 0, sizeof(ba));
- ba.Data = AllRam;
- ba.nLen = RamEnd-AllRam;
- ba.szName = "All Ram";
- BurnAcb(&ba);
- }
-
- if (nAction & ACB_DRIVER_DATA) {
- h6280CpuScan(nAction);
- M6502Scan(nAction);
-
- BurnYM2203Scan(nAction, pnMin);
- BurnYM3812Scan(nAction, pnMin);
- MSM6295Scan(0, nAction);
-
- SCAN_VAR(control_select);
- DrvRecalc = 1; // April 3, 2014 - Fix palette problem on state load - dink & iq_132
- }
-
- return 0;
-}
-
-
-// Act-Fancer Cybernetick Hyper Weapon (World revision 2)
-
-static struct BurnRomInfo actfancrRomDesc[] = {
- { "fe08-2.bin", 0x10000, 0x0d36fbfa, 1 | BRF_PRG | BRF_ESS }, // 0 h6280 Code
- { "fe09-2.bin", 0x10000, 0x27ce2bb1, 1 | BRF_PRG | BRF_ESS }, // 1
- { "10", 0x10000, 0xcabad137, 1 | BRF_PRG | BRF_ESS }, // 2
-
- { "17-1", 0x08000, 0x289ad106, 2 | BRF_PRG | BRF_ESS }, // 3 m6502 Code
-
- { "15", 0x10000, 0xa1baf21e, 3 | BRF_GRA }, // 4 Characters
- { "16", 0x10000, 0x22e64730, 3 | BRF_GRA }, // 5
-
- { "02", 0x10000, 0xb1db0efc, 4 | BRF_GRA }, // 6 Sprites
- { "03", 0x08000, 0xf313e04f, 4 | BRF_GRA }, // 7
- { "06", 0x10000, 0x8cb6dd87, 4 | BRF_GRA }, // 8
- { "07", 0x08000, 0xdd345def, 4 | BRF_GRA }, // 9
- { "00", 0x10000, 0xd50a9550, 4 | BRF_GRA }, // 10
- { "01", 0x08000, 0x34935e93, 4 | BRF_GRA }, // 11
- { "04", 0x10000, 0xbcf41795, 4 | BRF_GRA }, // 12
- { "05", 0x08000, 0xd38b94aa, 4 | BRF_GRA }, // 13
-
- { "14", 0x10000, 0xd6457420, 5 | BRF_GRA }, // 14 Background Layer
- { "12", 0x10000, 0x08787b7a, 5 | BRF_GRA }, // 15
- { "13", 0x10000, 0xc30c37dc, 5 | BRF_GRA }, // 16
- { "11", 0x10000, 0x1f006d9f, 5 | BRF_GRA }, // 17
-
- { "18", 0x10000, 0x5c55b242, 6 | BRF_SND }, // 18 Samples
-};
-
-STD_ROM_PICK(actfancr)
-STD_ROM_FN(actfancr)
-
-struct BurnDriver BurnDrvActfancr = {
- "actfancr", NULL, NULL, NULL, "1989",
- "Act-Fancer Cybernetick Hyper Weapon (World revision 2)\0", NULL, "Data East Corporation", "Miscellaneous",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_PREFIX_DATAEAST, GBF_HORSHOOT, 0,
- NULL, actfancrRomInfo, actfancrRomName, NULL, NULL, ActfancrInputInfo, ActfancrDIPInfo,
- ActfanInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x300,
- 256, 240, 4, 3
-};
-
-
-// Act-Fancer Cybernetick Hyper Weapon (World revision 1)
-
-static struct BurnRomInfo actfancr1RomDesc[] = {
- { "08-1", 0x10000, 0x3bf214a4, 1 | BRF_PRG | BRF_ESS }, // 0 h6280 Code
- { "09-1", 0x10000, 0x13ae78d5, 1 | BRF_PRG | BRF_ESS }, // 1
- { "10", 0x10000, 0xcabad137, 1 | BRF_PRG | BRF_ESS }, // 2
-
- { "17-1", 0x08000, 0x289ad106, 2 | BRF_PRG | BRF_ESS }, // 3 m6502 Code
-
- { "15", 0x10000, 0xa1baf21e, 3 | BRF_GRA }, // 4 Characters
- { "16", 0x10000, 0x22e64730, 3 | BRF_GRA }, // 5
-
- { "02", 0x10000, 0xb1db0efc, 4 | BRF_GRA }, // 6 Sprites
- { "03", 0x08000, 0xf313e04f, 4 | BRF_GRA }, // 7
- { "06", 0x10000, 0x8cb6dd87, 4 | BRF_GRA }, // 8
- { "07", 0x08000, 0xdd345def, 4 | BRF_GRA }, // 9
- { "00", 0x10000, 0xd50a9550, 4 | BRF_GRA }, // 10
- { "01", 0x08000, 0x34935e93, 4 | BRF_GRA }, // 11
- { "04", 0x10000, 0xbcf41795, 4 | BRF_GRA }, // 12
- { "05", 0x08000, 0xd38b94aa, 4 | BRF_GRA }, // 13
-
- { "14", 0x10000, 0xd6457420, 5 | BRF_GRA }, // 14 Background Layer
- { "12", 0x10000, 0x08787b7a, 5 | BRF_GRA }, // 15
- { "13", 0x10000, 0xc30c37dc, 5 | BRF_GRA }, // 16
- { "11", 0x10000, 0x1f006d9f, 5 | BRF_GRA }, // 17
-
- { "18", 0x10000, 0x5c55b242, 6 | BRF_SND }, // 18 Samples
-};
-
-STD_ROM_PICK(actfancr1)
-STD_ROM_FN(actfancr1)
-
-struct BurnDriver BurnDrvActfancr1 = {
- "actfancr1", "actfancr", NULL, NULL, "1989",
- "Act-Fancer Cybernetick Hyper Weapon (World revision 1)\0", NULL, "Data East Corporation", "Miscellaneous",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_DATAEAST, GBF_HORSHOOT, 0,
- NULL, actfancr1RomInfo, actfancr1RomName, NULL, NULL, ActfancrInputInfo, ActfancrDIPInfo,
- ActfanInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x300,
- 256, 240, 4, 3
-};
-
-
-// Act-Fancer Cybernetick Hyper Weapon (Japan revision 1)
-
-static struct BurnRomInfo actfancrjRomDesc[] = {
- { "fd08-1.bin", 0x10000, 0x69004b60, 1 | BRF_PRG | BRF_ESS }, // 0 h6280 Code
- { "fd09-1.bin", 0x10000, 0xa455ae3e, 1 | BRF_PRG | BRF_ESS }, // 1
- { "10", 0x10000, 0xcabad137, 1 | BRF_PRG | BRF_ESS }, // 2
-
- { "17-1", 0x08000, 0x289ad106, 2 | BRF_PRG | BRF_ESS }, // 3 m6502 Code
-
- { "15", 0x10000, 0xa1baf21e, 3 | BRF_GRA }, // 4 Characters
- { "16", 0x10000, 0x22e64730, 3 | BRF_GRA }, // 5
-
- { "02", 0x10000, 0xb1db0efc, 4 | BRF_GRA }, // 6 Sprites
- { "03", 0x08000, 0xf313e04f, 4 | BRF_GRA }, // 7
- { "06", 0x10000, 0x8cb6dd87, 4 | BRF_GRA }, // 8
- { "07", 0x08000, 0xdd345def, 4 | BRF_GRA }, // 9
- { "00", 0x10000, 0xd50a9550, 4 | BRF_GRA }, // 10
- { "01", 0x08000, 0x34935e93, 4 | BRF_GRA }, // 11
- { "04", 0x10000, 0xbcf41795, 4 | BRF_GRA }, // 12
- { "05", 0x08000, 0xd38b94aa, 4 | BRF_GRA }, // 13
-
- { "14", 0x10000, 0xd6457420, 5 | BRF_GRA }, // 14 Background Layer
- { "12", 0x10000, 0x08787b7a, 5 | BRF_GRA }, // 15
- { "13", 0x10000, 0xc30c37dc, 5 | BRF_GRA }, // 16
- { "11", 0x10000, 0x1f006d9f, 5 | BRF_GRA }, // 17
-
- { "18", 0x10000, 0x5c55b242, 6 | BRF_SND }, // 18 Samples
-};
-
-STD_ROM_PICK(actfancrj)
-STD_ROM_FN(actfancrj)
-
-struct BurnDriver BurnDrvActfancrj = {
- "actfancrj", "actfancr", NULL, NULL, "1989",
- "Act-Fancer Cybernetick Hyper Weapon (Japan revision 1)\0", NULL, "Data East Corporation", "Miscellaneous",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_DATAEAST, GBF_HORSHOOT, 0,
- NULL, actfancrjRomInfo, actfancrjRomName, NULL, NULL, ActfancrInputInfo, ActfancrDIPInfo,
- ActfanInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x300,
- 256, 240, 4, 3
-};
-
-
-// Trio The Punch - Never Forget Me... (World)
-
-static struct BurnRomInfo triothepRomDesc[] = {
- { "fg-16.bin", 0x20000, 0x7238355a, 1 | BRF_PRG | BRF_ESS }, // 0 h6280 Code
- { "fg-15.bin", 0x10000, 0x1c0551ab, 1 | BRF_PRG | BRF_ESS }, // 1
- { "fg-14.bin", 0x10000, 0x4ba7de4a, 1 | BRF_PRG | BRF_ESS }, // 2
-
- { "fg-18.bin", 0x10000, 0x9de9ee63, 2 | BRF_PRG | BRF_ESS }, // 3 m6502 Code
-
- { "fg-12.bin", 0x10000, 0x15fb49f2, 3 | BRF_GRA }, // 4 Characters
- { "fg-13.bin", 0x10000, 0xe20c9623, 3 | BRF_GRA }, // 5
-
- { "fg-11.bin", 0x10000, 0x1143ebd7, 4 | BRF_GRA }, // 6 Sprites
- { "fg-10.bin", 0x08000, 0x4b6b477a, 4 | BRF_GRA }, // 7
- { "fg-09.bin", 0x10000, 0x6bf6c803, 4 | BRF_GRA }, // 8
- { "fg-08.bin", 0x08000, 0x1391e445, 4 | BRF_GRA }, // 9
- { "fg-03.bin", 0x10000, 0x3d3ca9ad, 4 | BRF_GRA }, // 10
- { "fg-02.bin", 0x08000, 0x6b9d24ce, 4 | BRF_GRA }, // 11
- { "fg-01.bin", 0x10000, 0x4987f7ac, 4 | BRF_GRA }, // 12
- { "fg-00.bin", 0x08000, 0x41232442, 4 | BRF_GRA }, // 13
-
- { "fg-04.bin", 0x10000, 0x7cea3c87, 5 | BRF_GRA }, // 14 Background Layer
- { "fg-06.bin", 0x10000, 0x5e7f3e8f, 5 | BRF_GRA }, // 15
- { "fg-05.bin", 0x10000, 0x8bb13f05, 5 | BRF_GRA }, // 16
- { "fg-07.bin", 0x10000, 0x0d7affc3, 5 | BRF_GRA }, // 17
-
- { "fg-17.bin", 0x10000, 0xf0ab0d05, 6 | BRF_SND }, // 18 Samples
-};
-
-STD_ROM_PICK(triothep)
-STD_ROM_FN(triothep)
-
-struct BurnDriver BurnDrvTriothep = {
- "triothep", NULL, NULL, NULL, "1989",
- "Trio The Punch - Never Forget Me... (World)\0", NULL, "Data East Corporation", "Miscellaneous",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_PREFIX_DATAEAST, GBF_SCRFIGHT, 0,
- NULL, triothepRomInfo, triothepRomName, NULL, NULL, TriothepInputInfo, TriothepDIPInfo,
- TriothepInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x300,
- 256, 240, 4, 3
-};
-
-
-// Trio The Punch - Never Forget Me... (Japan)
-
-static struct BurnRomInfo triothepjRomDesc[] = {
- { "ff-16.bin", 0x20000, 0x84d7e1b6, 1 | BRF_PRG | BRF_ESS }, // 0 h6280 Code
- { "ff-15.bin", 0x10000, 0x6eada47c, 1 | BRF_PRG | BRF_ESS }, // 1
- { "ff-14.bin", 0x10000, 0x4ba7de4a, 1 | BRF_PRG | BRF_ESS }, // 2
-
- { "ff-18.bin", 0x10000, 0x9de9ee63, 2 | BRF_PRG | BRF_ESS }, // 3 m6502 Code
-
- { "ff-12.bin", 0x10000, 0x15fb49f2, 3 | BRF_GRA }, // 4 Characters
- { "ff-13.bin", 0x10000, 0xe20c9623, 3 | BRF_GRA }, // 5
-
- { "ff-11.bin", 0x10000, 0x19e885c7, 4 | BRF_GRA }, // 6 Sprites
- { "ff-10.bin", 0x08000, 0x4b6b477a, 4 | BRF_GRA }, // 7
- { "ff-09.bin", 0x10000, 0x79c6bc0e, 4 | BRF_GRA }, // 8
- { "ff-08.bin", 0x08000, 0x1391e445, 4 | BRF_GRA }, // 9
- { "ff-03.bin", 0x10000, 0xb36ad42d, 4 | BRF_GRA }, // 10
- { "ff-02.bin", 0x08000, 0x6b9d24ce, 4 | BRF_GRA }, // 11
- { "ff-01.bin", 0x10000, 0x68d80a66, 4 | BRF_GRA }, // 12
- { "ff-00.bin", 0x08000, 0x41232442, 4 | BRF_GRA }, // 13
-
- { "ff-04.bin", 0x10000, 0x7cea3c87, 5 | BRF_GRA }, // 14 Background Layer
- { "ff-06.bin", 0x10000, 0x5e7f3e8f, 5 | BRF_GRA }, // 15
- { "ff-05.bin", 0x10000, 0x8bb13f05, 5 | BRF_GRA }, // 16
- { "ff-07.bin", 0x10000, 0x0d7affc3, 5 | BRF_GRA }, // 17
-
- { "ff-17.bin", 0x10000, 0xf0ab0d05, 6 | BRF_SND }, // 18 Samples
-};
-
-STD_ROM_PICK(triothepj)
-STD_ROM_FN(triothepj)
-
-struct BurnDriver BurnDrvTriothepj = {
- "triothepj", "triothep", NULL, NULL, "1989",
- "Trio The Punch - Never Forget Me... (Japan)\0", NULL, "Data East Corporation", "Miscellaneous",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_DATAEAST, GBF_SCRFIGHT, 0,
- NULL, triothepjRomInfo, triothepjRomName, NULL, NULL, TriothepInputInfo, TriothepDIPInfo,
- TriothepInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x300,
- 256, 240, 4, 3
-};
diff --git a/jan/src/burn/drv/dataeast/d_backfire.cpp b/jan/src/burn/drv/dataeast/d_backfire.cpp
deleted file mode 100644
index 4cd049532..000000000
--- a/jan/src/burn/drv/dataeast/d_backfire.cpp
+++ /dev/null
@@ -1,748 +0,0 @@
-// FB Alpha Backfire! driver module
-// Based on MAME driver by David Haywood
-
-// Notes:
-// 1 / 2 screen autodetect disabled until it can be made to not crash.
-
-#include "tiles_generic.h"
-#include "arm_intf.h"
-#include "ymz280b.h"
-#include "eeprom.h"
-#include "deco16ic.h"
-
-static UINT8 *AllMem;
-static UINT8 *MemEnd;
-static UINT8 *AllRam;
-static UINT8 *RamEnd;
-static UINT8 *DrvArmROM;
-static UINT8 *DrvGfxROM0;
-static UINT8 *DrvGfxROM1;
-static UINT8 *DrvGfxROM2;
-static UINT8 *DrvGfxROM3;
-//static UINT8 *DrvGfxROM4;
-static UINT8 *DrvSndROM;
-static UINT8 *DrvArmRAM;
-static UINT8 *DrvPalRAM;
-static UINT8 *DrvSprRAM0;
-static UINT8 *DrvSprRAM1;
-
-static UINT16 *DrvTmpBitmap0;
-static UINT16 *DrvTmpBitmap_p;
-static UINT16 *DrvTmpBitmap1;
-
-static UINT32 *DrvPalette;
-static UINT8 DrvRecalc;
-
-static UINT8 DrvJoy1[16];
-static UINT8 DrvJoy2[16];
-static UINT8 DrvJoy3[16];
-static UINT8 DrvDips[1];
-static UINT16 DrvInputs[3];
-static UINT8 DrvReset;
-
-static UINT32 *priority;
-static INT32 nPreviousDip;
-
-static struct BurnInputInfo BackfireInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy3 + 0, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 7, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy1 + 0, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy1 + 1, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy1 + 2, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy1 + 3, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy1 + 4, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy1 + 5, "p1 fire 2" },
- {"P1 Button 3", BIT_DIGITAL, DrvJoy1 + 6, "p1 fire 3" },
- {"P1 Button 4", BIT_DIGITAL, DrvJoy3 + 8, "p1 fire 4" },
- {"P1 Button 5", BIT_DIGITAL, DrvJoy3 + 9, "p1 fire 5" },
- {"P1 Button 6", BIT_DIGITAL, DrvJoy3 + 10, "p1 fire 6" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy3 + 1, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy2 + 7, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvJoy2 + 0, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy2 + 1, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy2 + 2, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy2 + 3, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy2 + 4, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy2 + 5, "p2 fire 2" },
- {"P2 Button 3", BIT_DIGITAL, DrvJoy2 + 6, "p2 fire 3" },
- {"P2 Button 4", BIT_DIGITAL, DrvJoy3 + 12, "p2 fire 4" },
- {"P2 Button 5", BIT_DIGITAL, DrvJoy3 + 13, "p2 fire 5" },
- {"P2 Button 6", BIT_DIGITAL, DrvJoy3 + 14, "p2 fire 6" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service", BIT_DIGITAL, DrvJoy3 + 2, "service" },
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
-};
-
-STDINPUTINFO(Backfire)
-
-static struct BurnDIPInfo BackfireDIPList[]=
-{
- {0x1a, 0xff, 0xff, 0x08, NULL },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x1a, 0x01, 0x08, 0x08, "Off" },
- {0x1a, 0x01, 0x08, 0x00, "On" },
-};
-
-STDDIPINFO(Backfire)
-
-void backfire_write_byte(UINT32 address, UINT8 data)
-{
- Write16Byte(((UINT8*)deco16_pf_control[0]), 0x100000, 0x10001f) // 16-bit
- Write16Byte(deco16_pf_ram[0], 0x110000, 0x111fff) // 16-bit
- Write16Byte(deco16_pf_ram[1], 0x114000, 0x115fff) // 16-bit
- Write16Byte(deco16_pf_rowscroll[0], 0x120000, 0x120fff) // 16-bit
- Write16Byte(deco16_pf_rowscroll[1], 0x124000, 0x124fff) // 16-bit
- Write16Byte(((UINT8*)deco16_pf_control[1]), 0x130000, 0x13001f) // 16-bit
- Write16Byte(deco16_pf_ram[2], 0x140000, 0x141fff) // 16-bit
- Write16Byte(deco16_pf_ram[3], 0x144000, 0x145fff) // 16-bit
- Write16Byte(deco16_pf_rowscroll[2], 0x150000, 0x150fff) // 16-bit
- Write16Byte(deco16_pf_rowscroll[3], 0x154000, 0x154fff) // 16-bit
-
- switch (address)
- {
- case 0x1c0000:
- YMZ280BWrite(0, data);
- return;
-
- case 0x1c0004:
- YMZ280BWrite(1, data);
- return;
- }
-}
-
-void backfire_write_long(UINT32 address, UINT32 data)
-{
- Write16Long(((UINT8*)deco16_pf_control[0]), 0x100000, 0x10001f) // 16-bit
- Write16Long(deco16_pf_ram[0], 0x110000, 0x111fff) // 16-bit
- Write16Long(deco16_pf_ram[1], 0x114000, 0x115fff) // 16-bit
- Write16Long(deco16_pf_rowscroll[0], 0x120000, 0x120fff) // 16-bit
- Write16Long(deco16_pf_rowscroll[1], 0x124000, 0x124fff) // 16-bit
- Write16Long(((UINT8*)deco16_pf_control[1]), 0x130000, 0x13001f) // 16-bit
- Write16Long(deco16_pf_ram[2], 0x140000, 0x141fff) // 16-bit
- Write16Long(deco16_pf_ram[3], 0x144000, 0x145fff) // 16-bit
- Write16Long(deco16_pf_rowscroll[2], 0x150000, 0x150fff) // 16-bit
- Write16Long(deco16_pf_rowscroll[3], 0x154000, 0x154fff) // 16-bit
-
- switch (address)
- {
- case 0x1a4000:
- EEPROMWrite(data & 0x02, data & 0x04, data & 0x01);
- return;
-
- case 0x1a8000:
- priority[0] = data; // left
- return;
-
- case 0x1ac000:
- priority[1] = data; // right
- return;
-
- case 0x1c0000:
- YMZ280BWrite(0, data);
- return;
-
- case 0x1c0004:
- YMZ280BWrite(1, data);
- return;
- }
-}
-
-UINT8 backfire_read_byte(UINT32 address)
-{
- Read16Byte(((UINT8*)deco16_pf_control[0]), 0x100000, 0x10001f) // 16-bit
- Read16Byte(deco16_pf_ram[0], 0x110000, 0x111fff) // 16-bit
- Read16Byte(deco16_pf_ram[1], 0x114000, 0x115fff) // 16-bit
- Read16Byte(deco16_pf_rowscroll[0], 0x120000, 0x120fff) // 16-bit
- Read16Byte(deco16_pf_rowscroll[1], 0x124000, 0x124fff) // 16-bit
- Read16Byte(((UINT8*)deco16_pf_control[1]), 0x130000, 0x13001f) // 16-bit
- Read16Byte(deco16_pf_ram[2], 0x140000, 0x141fff) // 16-bit
- Read16Byte(deco16_pf_ram[3], 0x144000, 0x145fff) // 16-bit
- Read16Byte(deco16_pf_rowscroll[2], 0x150000, 0x150fff) // 16-bit
- Read16Byte(deco16_pf_rowscroll[3], 0x154000, 0x154fff) // 16-bit
-
- switch (address)
- {
- case 0x190000: return DrvInputs[0];
- case 0x190002: return DrvInputs[2];
- case 0x194002: return DrvInputs[1];
-
- case 0x1c0000: return YMZ280BRead(0);
- case 0x1c0004: return YMZ280BRead(1);
- }
-
- return 0;
-}
-
-UINT32 backfire_read_long(UINT32 address)
-{
- Read16Long(((UINT8*)deco16_pf_control[0]), 0x100000, 0x10001f) // 16-bit
- Read16Long(deco16_pf_ram[0], 0x110000, 0x111fff) // 16-bit
- Read16Long(deco16_pf_ram[1], 0x114000, 0x115fff) // 16-bit
- Read16Long(deco16_pf_rowscroll[0], 0x120000, 0x120fff) // 16-bit
- Read16Long(deco16_pf_rowscroll[1], 0x124000, 0x124fff) // 16-bit
- Read16Long(((UINT8*)deco16_pf_control[1]), 0x130000, 0x13001f) // 16-bit
- Read16Long(deco16_pf_ram[2], 0x140000, 0x141fff) // 16-bit
- Read16Long(deco16_pf_ram[3], 0x144000, 0x145fff) // 16-bit
- Read16Long(deco16_pf_rowscroll[2], 0x150000, 0x150fff) // 16-bit
- Read16Long(deco16_pf_rowscroll[3], 0x154000, 0x154fff) // 16-bit
-
- switch (address)
- {
- case 0x190000: {
- UINT32 vblnk=0;
- vblnk ^= 1 << 16;
-
- UINT32 ret = 0;
- ret |= EEPROMRead() << 24;
- ret |= (DrvInputs[2] & 0xbf) << 16;
- ret |= deco16_vblank;
- ret |= DrvInputs[0];
- ret |= vblnk;
- return ret;
- }
-
- case 0x194000: {
- UINT32 ret = 0;
- ret |= EEPROMRead() << 24;
- ret |= DrvInputs[1] << 16;
- ret |= DrvInputs[1] << 0;
- return ret;
- }
-
- case 0x1c0000:
- return YMZ280BRead(0);
-
- case 0x1c0004:
- return YMZ280BRead(1);
- }
-
- return 0;
-}
-
-static INT32 MemIndex()
-{
- UINT8 *Next; Next = AllMem;
-
- DrvArmROM = Next; Next += 0x0100000;
-
- DrvGfxROM0 = Next; Next += 0x0800000;
- DrvGfxROM1 = Next; Next += 0x0800000;
- DrvGfxROM2 = Next; Next += 0x0200000;
- DrvGfxROM3 = Next; Next += 0x0800000;
-// DrvGfxROM4 = Next; Next += 0x0800000;
-
- YMZ280BROM = Next;
- DrvSndROM = Next; Next += 0x0400000;
-
- DrvPalette = (UINT32*)Next; Next += 0x800 * sizeof(UINT32);
-
- DrvTmpBitmap_p = (UINT16*)Next;
- DrvTmpBitmap0 = (UINT16*)Next; Next += 320 * 240 * sizeof(UINT16);
- DrvTmpBitmap1 = (UINT16*)Next; Next += 320 * 240 * sizeof(UINT16);
-
- AllRam = Next;
-
- DrvArmRAM = Next; Next += 0x0008000;
- DrvPalRAM = Next; Next += 0x0002000;
- DrvSprRAM0 = Next; Next += 0x0002000;
- DrvSprRAM1 = Next; Next += 0x0002000;
-
- priority = (UINT32*)Next; Next += 2 * sizeof(UINT32);
-
- RamEnd = Next;
-
- MemEnd = Next;
-
- return 0;
-}
-
-static INT32 DrvDoReset()
-{
- memset (AllRam, 0, RamEnd - AllRam);
-
- ArmOpen(0);
- ArmReset();
- ArmClose();
-
- YMZ280BReset();
-
- EEPROMReset();
-
- deco16Reset();
-
- return 0;
-}
-
-static INT32 backfire_bank_callback( INT32 bank )
-{
- bank = bank >> 4;
- bank = (bank & 1) | ((bank & 4) >> 1) | ((bank & 2) << 1);
-
- return bank * 0x1000;
-}
-
-static void decode_samples()
-{
- UINT8 *tmp = (UINT8*)BurnMalloc(0x200000);
-
- for (INT32 i = 0; i < 0x200000; i++) {
- tmp[((i & 1) << 20) | (i >> 1) ] = DrvSndROM[i];
- }
-
- memcpy (DrvSndROM, tmp, 0x200000);
-
- BurnFree (tmp);
-}
-
-static void pCommonSpeedhackCallback()
-{
- ArmIdleCycles(1120);
-}
-
-static INT32 DrvInit(UINT32 speedhack)
-{
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(DrvArmROM + 0x000001, 0, 2)) return 1;
- if (BurnLoadRom(DrvArmROM + 0x000000, 1, 2)) return 1;
-
- for (INT32 i = 0; i < 0x100000; i+=4) {
- BurnByteswap(DrvArmROM + i + 1, 2);
- }
-
- if (BurnLoadRom(DrvGfxROM1 + 0x000000, 2, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x200000, 3, 1)) return 1;
-
- for (INT32 i = 0; i < 0x400000; i++) {
- INT32 j = (i & 0x17ffff) | ((i & 0x80000) << 2) | ((i & 0x200000) >> 2);
- DrvGfxROM0[j] = DrvGfxROM1[i];
- }
- memset (DrvGfxROM1, 0, 0x400000);
-
- if (BurnLoadRom(DrvGfxROM2 + 0x000000, 4, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM3 + 0x000000, 5, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM3 + 0x000001, 6, 2)) return 1;
-
- // if (BurnLoadRom(DrvGfxROM4 + 0x000000, 7, 2)) return 1;
- // if (BurnLoadRom(DrvGfxROM4 + 0x000001, 8, 2)) return 1;
-
- memset (DrvSndROM, 0xff, 0x400000);
- if (BurnLoadRom(DrvSndROM + 0x000000, 9, 1)) return 1;
- if (BurnLoadRom(DrvSndROM + 0x200000, 10, 1)) return 1;
-
- deco156_decrypt(DrvArmROM, 0x100000);
-
- deco56_decrypt_gfx(DrvGfxROM0, 0x400000);
- deco56_decrypt_gfx(DrvGfxROM2, 0x100000);
-
- deco16_tile_decode(DrvGfxROM0, DrvGfxROM1, 0x400000, 0);
- deco16_tile_decode(DrvGfxROM0, DrvGfxROM0, 0x400000, 1);
- deco16_tile_decode(DrvGfxROM2, DrvGfxROM2, 0x100000, 0);
-
- deco16_sprite_decode(DrvGfxROM3, 0x400000);
- // deco16_sprite_decode(DrvGfxROM4, 0x400000);
-
- decode_samples();
- }
-
- ArmInit(0);
- ArmOpen(0);
- ArmMapMemory(DrvArmROM, 0x000000, 0x0fffff, MAP_ROM);
- ArmMapMemory(DrvPalRAM, 0x160000, 0x161fff, MAP_RAM);
- ArmMapMemory(DrvArmRAM, 0x170000, 0x177fff, MAP_RAM);
- ArmMapMemory(DrvSprRAM0, 0x184000, 0x185fff, MAP_RAM);
- ArmMapMemory(DrvSprRAM1, 0x18c000, 0x18dfff, MAP_RAM);
- ArmSetWriteByteHandler(backfire_write_byte);
- ArmSetWriteLongHandler(backfire_write_long);
- ArmSetReadByteHandler(backfire_read_byte);
- ArmSetReadLongHandler(backfire_read_long);
- ArmClose();
-
- ArmSetSpeedHack(speedhack ? speedhack : ~0, pCommonSpeedhackCallback);
-
- EEPROMInit(&eeprom_interface_93C46);
-
- YMZ280BInit(14000000, NULL);
- YMZ280BSetRoute(BURN_SND_YMZ280B_YMZ280B_ROUTE_1, 1.00, BURN_SND_ROUTE_LEFT);
- YMZ280BSetRoute(BURN_SND_YMZ280B_YMZ280B_ROUTE_2, 1.00, BURN_SND_ROUTE_RIGHT);
-
- deco16Init(0, 0, 1);
- deco16_set_bank_callback(0, backfire_bank_callback);
- deco16_set_bank_callback(1, backfire_bank_callback);
- deco16_set_bank_callback(2, backfire_bank_callback);
- deco16_set_bank_callback(3, backfire_bank_callback);
- deco16_set_color_base(1, 0x400);
- deco16_set_color_base(2, 0x100);
- deco16_set_color_base(3, 0x500);
- deco16_set_graphics(DrvGfxROM0, 0x800000, DrvGfxROM1, 0x800000, DrvGfxROM2, 0x200000);
- deco16_set_global_offsets(0, 8);
-
- GenericTilesInit();
-
- nPreviousDip = DrvDips[0] & 0x80;
-
- DrvDoReset();
-
- return 0;
-}
-
-static INT32 DrvExit()
-{
- EEPROMExit();
-
- ArmExit();
-
- YMZ280BExit();
- YMZ280BROM = NULL;
-
- GenericTilesExit();
-
- deco16Exit();
-
- BurnFree (AllMem);
-
- return 0;
-}
-
-static void simpl156_palette_recalc()
-{
- UINT32 *p = (UINT32*)DrvPalRAM;
-
- for (INT32 i = 0; i < 0x2000 / 4; i++)
- {
- INT32 r = (BURN_ENDIAN_SWAP_INT16(p[i]) >> 0) & 0x1f;
- INT32 g = (BURN_ENDIAN_SWAP_INT16(p[i]) >> 5) & 0x1f;
- INT32 b = (BURN_ENDIAN_SWAP_INT16(p[i]) >> 10) & 0x1f;
-
- r = (r << 3) | (r >> 2);
- g = (g << 3) | (g >> 2);
- b = (b << 3) | (b >> 2);
-
- DrvPalette[i] = BurnHighCol(r, g, b, 0);
- }
-}
-
-static void draw_sprites(UINT16 *dest, UINT8 *ram, UINT8 *gfx, INT32 coloff)
-{
- UINT32 *spriteram = (UINT32*)ram;
-
- for (INT32 offs = (0x1400 / 4) - 4; offs >= 0; offs -= 4)
- {
- INT32 x, y, sprite, colour, multi, fx, fy, inc, flash, mult, pri;
-
- sprite = BURN_ENDIAN_SWAP_INT32(spriteram[offs + 1]) & 0xffff;
-
- y = BURN_ENDIAN_SWAP_INT32(spriteram[offs]) & 0xffff;
- flash = y & 0x1000;
- if (flash && (nCurrentFrame & 1))
- continue;
-
- x = BURN_ENDIAN_SWAP_INT32(spriteram[offs + 2]) & 0xffff;
- colour = (x >> 9) & 0x1f;
-
- pri = x & 0xc000;
-
- switch (pri & 0xc000)
- {
- case 0x0000: pri = 0; break;
- case 0x4000: pri = 0xf0;break;
- case 0x8000: pri = 0; break;
- case 0xc000: pri = 0xf0;break;
- }
-
- fx = y & 0x2000;
- fy = y & 0x4000;
- multi = (1 << ((y & 0x0600) >> 9)) - 1;
-
- x = x & 0x01ff;
- y = y & 0x01ff;
- if (x >= 320) x -= 512;
- if (y >= 256) y -= 512;
- y = 240 - y;
- x = 304 - x;
-
- if (x > 320) continue;
-
- sprite &= ~multi;
- if (fy)
- inc = -1;
- else
- {
- sprite += multi;
- inc = 1;
- }
-
- if (1)
- {
- y = 240 - y;
- x = 304 - x;
- if (fx) fx = 0; else fx = 1;
- if (fy) fy = 0; else fy = 1;
- mult = 16;
- }
- else mult = -16;
-
- while (multi >= 0)
- {
- deco16_draw_prio_sprite(dest, gfx, sprite - multi * inc, (colour<<4)+coloff, x, y + mult * multi, fx, fy, pri);
-
- multi--;
- }
- }
-}
-
-static INT32 DrvDraw()
-{
- /*
- if ((ArmReadByte(0x170784) & 0x20) && !nPreviousDip) { // single screen
- bprintf(0, _T("single.\n"));
- DrvTmpBitmap0 = pTransDraw;
- BurnDrvSetVisibleSize(320, 240);
- BurnDrvSetAspect(4, 3);
- Reinitialise();
-
- YMZ280BSetRoute(BURN_SND_YMZ280B_YMZ280B_ROUTE_1, 1.00, BURN_SND_ROUTE_BOTH);
- YMZ280BSetRoute(BURN_SND_YMZ280B_YMZ280B_ROUTE_2, 1.00, BURN_SND_ROUTE_BOTH);
- } else if (!(ArmReadByte(0x170784) & 0x20) && nPreviousDip) { // two screens
- bprintf(0, _T("double.\n"));
- DrvTmpBitmap0 = DrvTmpBitmap_p;
- BurnDrvSetVisibleSize(640, 240);
- BurnDrvSetAspect(8, 3);
- Reinitialise();
-
- YMZ280BSetRoute(BURN_SND_YMZ280B_YMZ280B_ROUTE_1, 1.00, BURN_SND_ROUTE_LEFT);
- YMZ280BSetRoute(BURN_SND_YMZ280B_YMZ280B_ROUTE_2, 1.00, BURN_SND_ROUTE_RIGHT);
- }*/
- nPreviousDip = (ArmReadByte(0x170784) & 0x20);
-
- simpl156_palette_recalc();
-
- deco16_pf12_update();
- deco16_pf34_update();
-
- if (nPreviousDip == 0) nScreenWidth = 320;
-
- // left
- {
- for (INT32 i = 0; i < nScreenWidth * nScreenHeight; i++) {
- DrvTmpBitmap0[i] = 0x100;
- }
-
- deco16_clear_prio_map();
-
- if (priority[0] == 0) {
- deco16_draw_layer(2, DrvTmpBitmap0, 1);
- deco16_draw_layer(0, DrvTmpBitmap0, 2);
- } else if (priority[0] == 2) {
- deco16_draw_layer(0, DrvTmpBitmap0, 2);
- deco16_draw_layer(2, DrvTmpBitmap0, 4);
- }
-
- draw_sprites(DrvTmpBitmap0, DrvSprRAM0, DrvGfxROM3, 0x200);
- }
-
- // right
- if (nPreviousDip == 0) {
- for (INT32 i = 0; i < nScreenWidth * nScreenHeight; i++) {
- DrvTmpBitmap1[i] = 0x500;
- }
-
- deco16_clear_prio_map();
-
- if (priority[1] == 0) {
- deco16_draw_layer(3, DrvTmpBitmap1, 1);
- deco16_draw_layer(1, DrvTmpBitmap1, 2);
- } else if (priority[1] == 2) {
- deco16_draw_layer(1, DrvTmpBitmap1, 2);
- deco16_draw_layer(3, DrvTmpBitmap1, 4);
- }
-
- draw_sprites(DrvTmpBitmap1, DrvSprRAM1, DrvGfxROM3 /*DrvGfxROM4*/, 0x600);
-
- // combine
-
- UINT16 *dst0 = pTransDraw;
- UINT16 *dst1 = pTransDraw + 320;
- UINT16 *src0 = DrvTmpBitmap0;
- UINT16 *src1 = DrvTmpBitmap1;
-
- for (INT32 y = 0; y < nScreenHeight; y++) {
- memcpy (dst0, src0, 320 * sizeof(UINT16));
- memcpy (dst1, src1, 320 * sizeof(UINT16));
-
- dst0 += 640;
- dst1 += 640;
- src0 += 320;
- src1 += 320;
- }
-
- nScreenWidth = 320 * 2;
- }
-
- BurnTransferCopy(DrvPalette);
-
- return 0;
-}
-
-static INT32 DrvFrame()
-{
- if (DrvReset) {
- DrvDoReset();
- }
-
- {
- DrvInputs[0] = 0x00ff;
- DrvInputs[1] = 0x00ff;
- DrvInputs[2] = 0xffe7;
-
- for (INT32 i = 0; i < 16; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- DrvInputs[2] ^= (DrvJoy3[i] & 1) << i;
- }
-
- DrvInputs[2] |= DrvDips[0] & 0x0008;
-
- if (DrvDips[0] & 0x80) DrvInputs[1] |= 0x80;
- }
-
- INT32 nTotalCycles = 28000000 / 60;
-
- ArmOpen(0);
- deco16_vblank = 0x10;
- ArmRun(nTotalCycles - 2240);
- ArmSetIRQLine(ARM_IRQ_LINE, CPU_IRQSTATUS_AUTO);
- deco16_vblank = 0x00;
- ArmRun(2240);
- ArmClose();
-
- if (pBurnSoundOut) {
- YMZ280BRender(pBurnSoundOut, nBurnSoundLen);
- }
-
- if (pBurnDraw) {
- DrvDraw();
- }
-
- return 0;
-}
-
-static INT32 DrvScan(INT32 nAction, INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin != NULL) {
- *pnMin = 0x029707;
- }
-
- if (nAction & ACB_MEMORY_RAM) {
- memset(&ba, 0, sizeof(ba));
- ba.Data = AllRam;
- ba.nLen = RamEnd-AllRam;
- ba.szName = "All Ram";
- BurnAcb(&ba);
- }
-
- if (nAction & ACB_DRIVER_DATA) {
- ArmScan(nAction);
-
- YMZ280BScan();
-
- deco16Scan();
- }
-
- return 0;
-}
-
-
-// Backfire! (set 1)
-
-static struct BurnRomInfo backfireRomDesc[] = {
- { "ra00-0.2j", 0x080000, 0x790da069, 1 | BRF_PRG | BRF_ESS }, // 0 Arm code (Encrypted)
- { "ra01-0.3j", 0x080000, 0x447cb57b, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "mbz-00.9a", 0x200000, 0x1098d504, 2 | BRF_GRA }, // 2 Characters & tiles
- { "mbz-01.10a", 0x200000, 0x19b81e5c, 2 | BRF_GRA }, // 3
-
- { "mbz-02.12a", 0x100000, 0x2bd2b0a1, 3 | BRF_GRA }, // 4 Tiles
-
- { "mbz-03.15a", 0x200000, 0x2e818569, 4 | BRF_GRA }, // 5 Left screen sprites
- { "mbz-04.16a", 0x200000, 0x67bdafb1, 4 | BRF_GRA }, // 6
-
- { "mbz-03.18a", 0x200000, 0x2e818569, 5 | BRF_GRA }, // 7 Right screen sprites
- { "mbz-04.19a", 0x200000, 0x67bdafb1, 5 | BRF_GRA }, // 8
-
- { "mbz-05.17l", 0x200000, 0x947c1da6, 6 | BRF_SND }, // 9 YMZ280b Samples
- { "mbz-06.19l", 0x080000, 0x4a38c635, 6 | BRF_SND }, // 10
-
- { "gal16v8b.6b", 0x000117, 0x00000000, 7 | BRF_NODUMP }, // 11 PLDs
- { "gal16v8b.6d", 0x000117, 0x00000000, 7 | BRF_NODUMP }, // 12
- { "gal16v8b.12n", 0x000117, 0x00000000, 7 | BRF_NODUMP }, // 13
-};
-
-STD_ROM_PICK(backfire)
-STD_ROM_FN(backfire)
-
-static INT32 backfireInit()
-{
- return DrvInit(0xce44);
-}
-
-struct BurnDriver BurnDrvBackfire = {
- "backfire", NULL, NULL, NULL, "1995",
- "Backfire! (set 1)\0", NULL, "Data East Corporation", "DECO IC16",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_PREFIX_DATAEAST, GBF_RACING, 0,
- NULL, backfireRomInfo, backfireRomName, NULL, NULL, BackfireInputInfo, BackfireDIPInfo,
- backfireInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 640, 240, 8, 3
-};
-
-
-// Backfire! (set 2)
-
-static struct BurnRomInfo backfireaRomDesc[] = {
- { "rb-00h.h2", 0x080000, 0x60973046, 1 | BRF_PRG | BRF_ESS }, // 0 Arm code (Encrypted)
- { "rb-01l.h3", 0x080000, 0x27472f60, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "mbz-00.9a", 0x200000, 0x1098d504, 2 | BRF_GRA }, // 2 Characters & tiles
- { "mbz-01.10a", 0x200000, 0x19b81e5c, 2 | BRF_GRA }, // 3
-
- { "mbz-02.12a", 0x100000, 0x2bd2b0a1, 3 | BRF_GRA }, // 4 Tiles
-
- { "mbz-03.15a", 0x200000, 0x2e818569, 4 | BRF_GRA }, // 5 Left screen sprites
- { "mbz-04.16a", 0x200000, 0x67bdafb1, 4 | BRF_GRA }, // 6
-
- { "mbz-03.18a", 0x200000, 0x2e818569, 5 | BRF_GRA }, // 7 Right screen sprites
- { "mbz-04.19a", 0x200000, 0x67bdafb1, 5 | BRF_GRA }, // 8
-
- { "mbz-05.17l", 0x200000, 0x947c1da6, 6 | BRF_SND }, // 9 YMZ280b Samples
- { "mbz-06.19l", 0x080000, 0x4a38c635, 6 | BRF_SND }, // 10
-};
-
-STD_ROM_PICK(backfirea)
-STD_ROM_FN(backfirea)
-
-static INT32 backfireaInit()
-{
- return DrvInit(0xcee4);
-}
-
-struct BurnDriverD BurnDrvBackfirea = {
- "backfirea", "backfire", NULL, NULL, "1995",
- "Backfire! (set 2)\0", "Set inputs to \"Joystick\" in test mode", "Data East Corporation", "DECO IC16",
- NULL, NULL, NULL, NULL,
- BDF_CLONE, 2, HARDWARE_PREFIX_DATAEAST, GBF_RACING, 0,
- NULL, backfireaRomInfo, backfireaRomName, NULL, NULL, BackfireInputInfo, BackfireDIPInfo,
- backfireaInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 640, 240, 8, 3
-};
diff --git a/jan/src/burn/drv/dataeast/d_boogwing.cpp b/jan/src/burn/drv/dataeast/d_boogwing.cpp
deleted file mode 100644
index 99c3456d8..000000000
--- a/jan/src/burn/drv/dataeast/d_boogwing.cpp
+++ /dev/null
@@ -1,1003 +0,0 @@
-// FB Alpha Boogie Wing / Great Ragtime Show driver module
-// Based on MAME driver by Bryan McPhail and David Haywood
-
-#include "tiles_generic.h"
-#include "m68000_intf.h"
-#include "h6280_intf.h"
-#include "deco16ic.h"
-#include "deco146.h"
-#include "msm6295.h"
-#include "burn_ym2151.h"
-
-static UINT8 *AllMem;
-static UINT8 *MemEnd;
-static UINT8 *AllRam;
-static UINT8 *RamEnd;
-static UINT8 *Drv68KROM;
-static UINT8 *Drv68KCode;
-static UINT8 *DrvHucROM;
-static UINT8 *DrvGfxROM0;
-static UINT8 *DrvGfxROM1;
-static UINT8 *DrvGfxROM2;
-static UINT8 *DrvGfxROM3;
-static UINT8 *DrvGfxROM4;
-static UINT8 *DrvGfxROM5;
-static UINT8 *DrvSndROM0;
-static UINT8 *DrvSndROM1;
-static UINT8 *Drv68KRAM;
-static UINT8 *DrvHucRAM;
-static UINT8 *DrvPalRAM;
-static UINT8 *DrvSprRAM;
-static UINT8 *DrvSprRAM1;
-static UINT8 *DrvPalBuf;
-static UINT8 *DrvSprBuf;
-static UINT8 *DrvSprBuf1;
-
-static UINT32 *DrvPalette;
-static UINT8 DrvRecalc;
-
-static UINT8 *flipscreen;
-
-static UINT8 DrvJoy1[16];
-static UINT8 DrvJoy2[16];
-static UINT8 DrvDips[2];
-static UINT8 DrvReset;
-static UINT16 DrvInputs[2];
-
-static UINT16 *tempdraw[2];
-
-static INT32 DrvOkiBank;
-
-static struct BurnInputInfo BoogwingInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy2 + 0, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 7, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy1 + 0, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy1 + 1, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy1 + 2, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy1 + 3, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy1 + 4, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy1 + 5, "p1 fire 2" },
- {"P1 Button 3", BIT_DIGITAL, DrvJoy1 + 6, "p1 fire 3" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy2 + 1, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy1 + 15, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvJoy1 + 8, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy1 + 9, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy1 + 10, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy1 + 11, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy1 + 12, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy1 + 13, "p2 fire 2" },
- {"P2 Button 3", BIT_DIGITAL, DrvJoy1 + 14, "p2 fire 3" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service", BIT_DIGITAL, DrvJoy2 + 2, "service" },
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip" },
-};
-
-STDINPUTINFO(Boogwing)
-
-static struct BurnDIPInfo BoogwingDIPList[]=
-{
- {0x14, 0xff, 0xff, 0xff, NULL },
- {0x15, 0xff, 0xff, 0x7f, NULL },
-
- {0 , 0xfe, 0 , 8, "Coin A" },
- {0x14, 0x01, 0x07, 0x00, "3 Coins 1 Credits" },
- {0x14, 0x01, 0x07, 0x01, "2 Coins 1 Credits" },
- {0x14, 0x01, 0x07, 0x07, "1 Coin 1 Credits" },
- {0x14, 0x01, 0x07, 0x06, "1 Coin 2 Credits" },
- {0x14, 0x01, 0x07, 0x05, "1 Coin 3 Credits" },
- {0x14, 0x01, 0x07, 0x04, "1 Coin 4 Credits" },
- {0x14, 0x01, 0x07, 0x03, "1 Coin 5 Credits" },
- {0x14, 0x01, 0x07, 0x02, "1 Coin 6 Credits" },
-
- {0 , 0xfe, 0 , 8, "Coin B" },
- {0x14, 0x01, 0x38, 0x00, "3 Coins 1 Credits" },
- {0x14, 0x01, 0x38, 0x08, "2 Coins 1 Credits" },
- {0x14, 0x01, 0x38, 0x38, "1 Coin 1 Credits" },
- {0x14, 0x01, 0x38, 0x30, "1 Coin 2 Credits" },
- {0x14, 0x01, 0x38, 0x28, "1 Coin 3 Credits" },
- {0x14, 0x01, 0x38, 0x20, "1 Coin 4 Credits" },
- {0x14, 0x01, 0x38, 0x18, "1 Coin 5 Credits" },
- {0x14, 0x01, 0x38, 0x10, "1 Coin 6 Credits" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x14, 0x01, 0x40, 0x40, "Off" },
- {0x14, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Continue Coin" },
- {0x14, 0x01, 0x80, 0x80, "Normal Coin Credit" },
- {0x14, 0x01, 0x80, 0x00, "2 Start/1 Continue" },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x15, 0x01, 0x03, 0x01, "1" },
- {0x15, 0x01, 0x03, 0x03, "2" },
- {0x15, 0x01, 0x03, 0x02, "3" },
- {0x15, 0x01, 0x03, 0x00, "4" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x15, 0x01, 0x0c, 0x08, "Easy" },
- {0x15, 0x01, 0x0c, 0x0c, "Normal" },
- {0x15, 0x01, 0x0c, 0x04, "Hard" },
- {0x15, 0x01, 0x0c, 0x00, "Hardest" },
-
- {0 , 0xfe, 0 , 2, "Coin Slots" },
- {0x15, 0x01, 0x10, 0x10, "Common" },
- {0x15, 0x01, 0x10, 0x00, "Individual" },
-
- {0 , 0xfe, 0 , 2, "Stage Reset" },
- {0x15, 0x01, 0x20, 0x20, "Point of Termination" },
- {0x15, 0x01, 0x20, 0x00, "Beginning of Stage" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x15, 0x01, 0x80, 0x80, "Off" },
- {0x15, 0x01, 0x80, 0x00, "On" },
-};
-
-STDDIPINFO(Boogwing)
-
-void __fastcall boogwing_main_write_byte(UINT32 address, UINT8 data)
-{
- switch (address)
- {
- case 0x220000:
- case 0x220001:
- deco16_priority = data;
- return;
-
- case 0x240000:
- case 0x240001:
- memcpy (DrvSprBuf , DrvSprRAM , 0x800);
- return;
-
- case 0x244000:
- case 0x244001:
- memcpy (DrvSprBuf1, DrvSprRAM1, 0x800);
- return;
-
- case 0x282008:
- case 0x282009:
- memcpy (DrvPalBuf, DrvPalRAM, 0x2000);
- return;
- }
-
- if (address >= 0x24e000 && address <= 0x24efff) {
- deco146_104_prot_wb(0, address & 0xfff, data);
- }
-}
-
-void __fastcall boogwing_main_write_word(UINT32 address, UINT16 data)
-{
- deco16_write_control_word(0, address, 0x260000, data)
- deco16_write_control_word(1, address, 0x270000, data)
-
- switch (address)
- {
- case 0x220000:
- deco16_priority = data;
- return;
-
- case 0x240000:
- memcpy (DrvSprBuf , DrvSprRAM , 0x800);
- return;
-
- case 0x244000:
- memcpy (DrvSprBuf1, DrvSprRAM1, 0x800);
- return;
-
- case 0x282008:
- memcpy (DrvPalBuf, DrvPalRAM, 0x2000);
- return;
- }
-
- if (address >= 0x24e000 && address <= 0x24efff) {
- deco146_104_prot_ww(0, address & 0xfff, data);
- }
-}
-
-UINT8 __fastcall boogwing_main_read_byte(UINT32 address)
-{
- if (address >= 0x24e000 && address <= 0x24efff) {
- return deco146_104_prot_rb(0, address & 0xfff);
- }
-
- return 0;
-}
-
-UINT16 __fastcall boogwing_main_read_word(UINT32 address)
-{
- if (address >= 0x24e000 && address <= 0x24efff) {
- return deco146_104_prot_rw(0, address & 0xfff);
- }
-
- return 0;
-}
-
-static INT32 boogwing_bank_callback( const INT32 bank )
-{
- return ((bank >> 4) & 0x7) * 0x1000;
-}
-
-static INT32 boogwing_bank_callback2( const INT32 bank )
-{
- INT32 offset = ((bank >> 4) & 0x7) * 0x1000;
- if ((bank & 0xf) == 0xa) offset += 0x800;
-
- return offset;
-}
-
-static void DrvYM2151WritePort(UINT32, UINT32 data)
-{
- MSM6295SetBank(1, DrvSndROM1 + ((data & 0x02) >> 1) * 0x40000, 0, 0x3ffff);
- MSM6295SetBank(0, DrvSndROM0 + (data & 1) * 0x40000, 0, 0x3ffff);
- DrvOkiBank = data;
-}
-
-static UINT16 inputs_read()
-{
- return DrvInputs[0];
-}
-
-static UINT16 system_read()
-{
- return (DrvInputs[1] & 7) | deco16_vblank;
-}
-
-static UINT16 dips_read()
-{
- return (DrvDips[1] << 8) | (DrvDips[0] << 0);
-}
-
-static void soundlatch_write(UINT16 data)
-{
- deco16_soundlatch = data & 0xff;
- h6280SetIRQLine(0, CPU_IRQSTATUS_ACK);
-}
-
-static INT32 DrvDoReset()
-{
- memset (AllRam, 0, RamEnd - AllRam);
-
- SekOpen(0);
- SekReset();
- SekClose();
-
- deco16SoundReset();
- DrvYM2151WritePort(0, 0);
-
- deco16Reset();
-
- return 0;
-}
-
-static INT32 MemIndex()
-{
- UINT8 *Next; Next = AllMem;
-
- Drv68KROM = Next; Next += 0x100000;
- Drv68KCode = Next; Next += 0x100000;
- DrvHucROM = Next; Next += 0x010000;
-
- DrvGfxROM0 = Next; Next += 0x040000;
- DrvGfxROM1 = Next; Next += 0x400000;
- DrvGfxROM5 = Next; Next += 0x100000;
- DrvGfxROM2 = Next; Next += 0x400000;
- DrvGfxROM3 = Next; Next += 0x800000;
- DrvGfxROM4 = Next; Next += 0x800000;
-
- DrvSndROM0 = Next; Next += 0x080000;
- DrvSndROM1 = Next; Next += 0x080000;
-
- DrvPalette = (UINT32*)Next; Next += 0x0800 * sizeof(UINT32);
-
- tempdraw[0] = (UINT16*)Next; Next += 320 * 240 * sizeof(UINT16);
- tempdraw[1] = (UINT16*)Next; Next += 320 * 240 * sizeof(UINT16);
-
- AllRam = Next;
-
- Drv68KRAM = Next; Next += 0x010000;
- DrvHucRAM = Next; Next += 0x002000;
- DrvSprRAM = Next; Next += 0x000800;
- DrvSprRAM1 = Next; Next += 0x000800;
- DrvSprBuf = Next; Next += 0x000800;
- DrvSprBuf1 = Next; Next += 0x000800;
- DrvPalRAM = Next; Next += 0x002000;
- DrvPalBuf = Next; Next += 0x002000;
-
- flipscreen = Next; Next += 0x000001;
-
- RamEnd = Next;
-
- MemEnd = Next;
-
- return 0;
-}
-
-
-static INT32 DrvGfxDecode5bpp()
-{
- // actually 5 bits / pixel, but fba doesn't seem to like that...
- INT32 Plane[6] = { 0x1800000, 0x1000000, 0x800008, 0x800000, 0x000008, 0x000000 };
- INT32 XOffs[16] = { 32*8+0, 32*8+1, 32*8+2, 32*8+3, 32*8+4, 32*8+5, 32*8+6, 32*8+7, 0, 1, 2, 3, 4, 5, 6, 7 };
- INT32 YOffs[16] = { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16, 8*16, 9*16, 10*16, 11*16, 12*16, 13*16, 14*16, 15*16 };
-
- UINT8 *tmp = (UINT8*)BurnMalloc(0x400000);
- if (tmp == NULL) {
- return 1;
- }
-
- memcpy (tmp + 0x000000, DrvGfxROM1, 0x200000);
- memset (tmp + 0x200000, 0, 0x200000);
- memcpy (tmp + 0x200000, DrvGfxROM5, 0x100000);
-
- GfxDecode(0x4000, 6, 16, 16, Plane, XOffs, YOffs, 0x200, tmp, DrvGfxROM1);
-
- for (INT32 i = 0; i < 0x400000; i++) DrvGfxROM1[i] &= 0x1f;
-
- BurnFree (tmp);
-
- return 0;
-}
-
-static INT32 DrvInit()
-{
- BurnSetRefreshRate(58.00);
-
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(Drv68KROM + 0x000001, 0, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x000000, 1, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x080001, 2, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x080000, 3, 2)) return 1;
-
- if (BurnLoadRom(DrvHucROM + 0x000000, 4, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x000000, 5, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x000001, 6, 2)) return 1;
-
- if (BurnLoadRom(DrvGfxROM1 + 0x000000, 7, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x100000, 8, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM5 + 0x000000, 9, 2)) return 1; // skip a byte!
-
- if (BurnLoadRom(DrvGfxROM2 + 0x000000, 10, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x100000, 11, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM3 + 0x000001, 12, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM3 + 0x000000, 13, 2)) return 1;
-
- if (BurnLoadRom(DrvGfxROM4 + 0x000001, 14, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM4 + 0x000000, 15, 2)) return 1;
-
- if (BurnLoadRom(DrvSndROM0 + 0x000000, 16, 1)) return 1;
-
- if (BurnLoadRom(DrvSndROM1 + 0x000000, 17, 1)) return 1;
-
- deco56_decrypt_gfx(DrvGfxROM0, 0x020000);
- deco56_decrypt_gfx(DrvGfxROM1, 0x300000);
- deco56_decrypt_gfx(DrvGfxROM2, 0x200000);
- deco56_remap_gfx(DrvGfxROM5, 0x100000);
- deco102_decrypt_cpu(Drv68KROM, Drv68KCode, 0x100000, 0x42ba, 0x00, 0x18);
-
- deco16_tile_decode(DrvGfxROM0, DrvGfxROM0, 0x020000, 1);
- deco16_tile_decode(DrvGfxROM2, DrvGfxROM2, 0x200000, 0);
- deco16_sprite_decode(DrvGfxROM3, 0x400000);
- deco16_sprite_decode(DrvGfxROM4, 0x400000);
-
- DrvGfxDecode5bpp();
- }
-
- deco16Init(0, 0, 1);
- deco16_set_graphics(DrvGfxROM0, 0x20000 * 2, DrvGfxROM1, 0x200000 * 2, DrvGfxROM2, 0x200000 * 2);
- deco16_set_color_base(1, 0x100);
- deco16_set_color_base(2, 0x300);
- deco16_set_color_base(3, 0x400);
- deco16_set_global_offsets(0, 8);
- deco16_set_transparency_mask(1, 0x1f);
- deco16_set_color_mask(2, 0x1f);
- deco16_set_color_mask(3, 0x1f);
- deco16_set_bank_callback(1, boogwing_bank_callback);
- deco16_set_bank_callback(2, boogwing_bank_callback2);
- deco16_set_bank_callback(3, boogwing_bank_callback2);
-
- // 146_104 prot
- deco_104_init();
- deco_146_104_set_port_a_cb(inputs_read); // inputs
- deco_146_104_set_port_b_cb(system_read); // system
- deco_146_104_set_port_c_cb(dips_read); // dips
- deco_146_104_set_soundlatch_cb(soundlatch_write);
- deco_146_104_set_interface_scramble_reverse();
- deco_146_104_set_use_magic_read_address_xor(1);
-
- SekInit(0, 0x68000);
- SekOpen(0);
- SekMapMemory(Drv68KROM, 0x000000, 0x0fffff, MAP_READ);
- SekMapMemory(Drv68KCode, 0x000000, 0x0fffff, MAP_FETCH);
- SekMapMemory(Drv68KRAM, 0x200000, 0x20ffff, MAP_RAM);
- SekMapMemory(DrvSprRAM, 0x242000, 0x2427ff, MAP_RAM);
- SekMapMemory(DrvSprRAM1, 0x246000, 0x2467ff, MAP_RAM);
- SekMapMemory(deco16_pf_ram[0], 0x264000, 0x265fff, MAP_RAM);
- SekMapMemory(deco16_pf_ram[1], 0x266000, 0x267fff, MAP_RAM);
- SekMapMemory(deco16_pf_rowscroll[0], 0x268000, 0x268fff, MAP_RAM);
- SekMapMemory(deco16_pf_rowscroll[1], 0x26a000, 0x26afff, MAP_RAM);
- SekMapMemory(deco16_pf_ram[2], 0x274000, 0x275fff, MAP_RAM);
- SekMapMemory(deco16_pf_ram[3], 0x276000, 0x277fff, MAP_RAM);
- SekMapMemory(deco16_pf_rowscroll[2], 0x278000, 0x278fff, MAP_RAM);
- SekMapMemory(deco16_pf_rowscroll[3], 0x27a000, 0x27afff, MAP_RAM);
- SekMapMemory(DrvPalRAM, 0x284000, 0x285fff, MAP_RAM);
- SekSetWriteWordHandler(0, boogwing_main_write_word);
- SekSetWriteByteHandler(0, boogwing_main_write_byte);
- SekSetReadWordHandler(0, boogwing_main_read_word);
- SekSetReadByteHandler(0, boogwing_main_read_byte);
- SekClose();
-
- deco16SoundInit(DrvHucROM, DrvHucRAM, 8055000, 0, DrvYM2151WritePort, 0.80, 1006875, 1.40, 2013750, 0.30);
- BurnYM2151SetRoute(BURN_SND_YM2151_YM2151_ROUTE_1, 0.80, BURN_SND_ROUTE_LEFT);
- BurnYM2151SetRoute(BURN_SND_YM2151_YM2151_ROUTE_2, 0.80, BURN_SND_ROUTE_RIGHT);
-
- GenericTilesInit();
-
- DrvDoReset();
-
- return 0;
-}
-
-static INT32 DrvExit()
-{
- GenericTilesExit();
- deco16Exit();
-
- deco16SoundExit();
-
- SekExit();
-
- BurnFree (AllMem);
-
- return 0;
-}
-
-static void draw_sprites(UINT8 *ram, UINT8 *gfx, INT32 coloff, INT32 gfx_region, INT32 bpp)
-{
- if (bpp != (nBurnBpp & 4)) return;
-
- UINT16 *spriteram_base = (UINT16*)ram;
-
- INT32 colmask = (gfx_region == 4) ? 0x0f : 0x1f;
-
- INT32 sflipscreen = !*flipscreen;
- INT32 priority = deco16_priority;
-
- for (INT32 offs = 0x400 - 4; offs >= 0; offs -= 4)
- {
- INT32 inc, mult, pri = 0, spri = 0, alpha = 0xff;
-
- INT32 sprite = BURN_ENDIAN_SWAP_INT16(spriteram_base[offs + 1]);
-
- if (!sprite) continue;
-
- INT32 y = BURN_ENDIAN_SWAP_INT16(spriteram_base[offs]);
-
- if ((y & 0x1000) && (nCurrentFrame & 1))
- continue;
-
- INT32 x = BURN_ENDIAN_SWAP_INT16(spriteram_base[offs + 2]);
- INT32 colour = (x >> 9) & colmask;
-
- INT32 fx = y & 0x2000;
- INT32 fy = y & 0x4000;
- INT32 multi = (1 << ((y & 0x0600) >> 9)) - 1;
-
- if (gfx_region == 4)
- {
- if ((BURN_ENDIAN_SWAP_INT16(spriteram_base[offs + 2]) & 0xc000) == 0xc000)
- spri = 4;
- else if ((BURN_ENDIAN_SWAP_INT16(spriteram_base[offs + 2]) & 0xc000))
- spri = 16;
- else
- spri = 64;
-
- if (BURN_ENDIAN_SWAP_INT16(spriteram_base[offs + 2]) & 0x2000) alpha = 0x80;
-
- if (priority == 0x2)
- {
- if (BURN_ENDIAN_SWAP_INT16(spriteram_base[offs + 2]) & 0x8000) alpha = 0x80;
-
- if ((BURN_ENDIAN_SWAP_INT16(spriteram_base[offs + 2]) & 0xc000) == 0xc000)
- pri = 4;
- else if ((BURN_ENDIAN_SWAP_INT16(spriteram_base[offs + 2]) & 0xc000) == 0x8000)
- pri = 16;
- else
- pri = 64;
- }
- else
- {
- if ((BURN_ENDIAN_SWAP_INT16(spriteram_base[offs + 2]) & 0x8000) == 0x8000)
- pri = 16;
- else
- pri = 64;
- }
- }
- else
- {
- if (BURN_ENDIAN_SWAP_INT16(spriteram_base[offs + 2]) & 0x8000)
- spri = 8;
- else
- spri = 32;
-
- if (priority == 0x1)
- {
- if ((BURN_ENDIAN_SWAP_INT16(spriteram_base[offs + 2]) & 0xc000))
- pri = 16;
- else
- pri = 64;
- }
- else
- {
- if ((BURN_ENDIAN_SWAP_INT16(spriteram_base[offs + 2]) & 0xc000) == 0xc000)
- pri = 4;
- else if ((BURN_ENDIAN_SWAP_INT16(spriteram_base[offs + 2]) & 0xc000) == 0x8000)
- pri = 16;
- else
- pri = 64;
- }
- }
-
- x = x & 0x01ff;
- y = y & 0x01ff;
- if (x >= 320) x -= 512;
- if (y >= 256) y -= 512;
- y = 240 - y;
- x = 304 - x;
-
- sprite &= ~multi;
- if (fy)
- inc = -1;
- else
- {
- sprite += multi;
- inc = 1;
- }
-
- if (sflipscreen)
- {
- y = 240 - y;
- x = 304 - x;
- if (fx) fx = 0; else fx = 1;
- if (fy) fy = 0; else fy = 1;
- mult = 16;
- }
- else
- mult = -16;
-
- while (multi >= 0)
- {
- if (!bpp) {
- deco16_draw_prio_sprite(pTransDraw, gfx, sprite - multi * inc, (colour << 4) + coloff, x, y + mult * multi, fx, fy, pri, spri);
- } else {
- deco16_draw_alphaprio_sprite(DrvPalette, gfx, sprite - multi * inc, (colour << 4) + coloff, x, y + mult * multi, fx, fy, pri, spri, alpha);
- }
-
- multi--;
- }
- }
-}
-
-static void draw_combined_playfield(INT32 color, INT32 priority) // opaque
-{
- UINT16 *src0 = tempdraw[0];
- UINT16 *src1 = tempdraw[1];
- UINT16 *dest = pTransDraw;
- UINT8 *prio = deco16_prio_map;
-
- for (INT32 y = 0; y < nScreenHeight; y++) {
- for (INT32 x = 0; x < nScreenWidth; x++) {
- dest[x] = color | (src0[x] & 0x0f) | ((src1[x] & 0x0f) << 4);
- prio[x] = priority;
- }
- src0 += nScreenWidth;
- src1 += nScreenWidth;
- dest += nScreenWidth;
- prio += 512;
- }
-}
-
-static INT32 DrvDraw()
-{
-// if (DrvRecalc) {
- deco16_palette_recalculate(DrvPalette, DrvPalBuf);
- DrvRecalc = 0;
-// }
-
- deco16_pf12_update();
- deco16_pf34_update();
-
- for (INT32 i = 0; i < nScreenWidth * nScreenHeight; i++) {
- pTransDraw[i] = 0x400;
- }
-
- if ((deco16_priority & 0x07) == 0x05) {
- UINT8 *tptr = deco16_pf_rowscroll[3];
- deco16_pf_rowscroll[3] = deco16_pf_rowscroll[2];
-
- deco16_draw_layer(2, tempdraw[0], 0x10000);
- deco16_draw_layer(3, tempdraw[1], 0x10000);
-
- deco16_pf_rowscroll[3] = tptr;
- }
-
- deco16_clear_prio_map();
-
- INT32 bpp0 = (deco16_get_tilemap_size(0) == 1) ? DECO16_LAYER_5BITSPERPIXEL : DECO16_LAYER_4BITSPERPIXEL;
- INT32 bpp1 = (deco16_get_tilemap_size(1) == 1) ? DECO16_LAYER_5BITSPERPIXEL : DECO16_LAYER_4BITSPERPIXEL;
-
- switch (deco16_priority & 0x07)
- {
- case 0x01:
- case 0x02:
- if (nSpriteEnable & 4) deco16_draw_layer(3, pTransDraw, DECO16_LAYER_PRIORITY(0x00) | DECO16_LAYER_OPAQUE);
- if (nSpriteEnable & 1) deco16_draw_layer(1, pTransDraw, DECO16_LAYER_PRIORITY(0x08) | bpp1);
- if (nSpriteEnable & 2) deco16_draw_layer(2, pTransDraw, DECO16_LAYER_PRIORITY(0x20));
- break;
-
- case 0x03:
- if (nSpriteEnable & 4) deco16_draw_layer(3, pTransDraw, DECO16_LAYER_PRIORITY(0x00) | DECO16_LAYER_OPAQUE);
- if (nSpriteEnable & 1) deco16_draw_layer(1, pTransDraw, DECO16_LAYER_PRIORITY(0x08) | bpp1);
- // should use pf2 to add shadows...
- break;
-
- case 0x05:
- if (nSpriteEnable & 1) deco16_draw_layer(1, pTransDraw, DECO16_LAYER_PRIORITY(0x00) | DECO16_LAYER_OPAQUE);
- if (nSpriteEnable &16) draw_combined_playfield(0x300, DECO16_LAYER_PRIORITY(0x20));
- break;
-
- case 0x00:
- case 0x04:
- case 0x06:
- case 0x07:
- if (nSpriteEnable & 4) deco16_draw_layer(3, pTransDraw, DECO16_LAYER_PRIORITY(0x00) | DECO16_LAYER_OPAQUE);
- if (nSpriteEnable & 2) deco16_draw_layer(2, pTransDraw, DECO16_LAYER_PRIORITY(0x08));
- if (nSpriteEnable & 1) deco16_draw_layer(1, pTransDraw, DECO16_LAYER_PRIORITY(0x20) | bpp1);
- break;
- }
-
- draw_sprites(DrvSprBuf , DrvGfxROM3, 0x500, 3, 0);
- draw_sprites(DrvSprBuf1, DrvGfxROM4, 0x700, 4, 0);
-
- if (nSpriteEnable & 8) deco16_draw_layer(0, pTransDraw, DECO16_LAYER_PRIORITY(0xff) | bpp0);
-
- BurnTransferCopy(DrvPalette);
-
- draw_sprites(DrvSprBuf , DrvGfxROM3, 0x500, 3, 4);
- draw_sprites(DrvSprBuf1, DrvGfxROM4, 0x700, 4, 4);
-
- return 0;
-}
-
-static INT32 DrvFrame()
-{
- if (DrvReset) {
- DrvDoReset();
- }
-
- {
- memset (DrvInputs, 0xff, 2 * sizeof(INT16));
- for (INT32 i = 0; i < 16; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- }
- }
-
- INT32 nInterleave = 256;
- INT32 nSoundBufferPos = 0;
- INT32 nCyclesTotal[2] = { 14000000 / 58, 8055000 / 58 };
- INT32 nCyclesDone[2] = { 0, 0 };
-
- SekOpen(0);
- h6280Open(0);
-
- deco16_vblank = 0;
-
- for (INT32 i = 0; i < nInterleave; i++)
- {
- nCyclesDone[0] += SekRun(nCyclesTotal[0] / nInterleave);
- nCyclesDone[1] += h6280Run(nCyclesTotal[1] / nInterleave);
-
- if (i == 248) {
- SekSetIRQLine(6, CPU_IRQSTATUS_AUTO);
- deco16_vblank = 0x08;
- }
-
- if (pBurnSoundOut && i%8 == 7) {
- INT32 nSegmentLength = nBurnSoundLen / (nInterleave / 8);
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- deco16SoundUpdate(pSoundBuf, nSegmentLength);
- nSoundBufferPos += nSegmentLength;
- }
- }
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
-
- if (nSegmentLength) {
- deco16SoundUpdate(pSoundBuf, nSegmentLength);
- }
- }
-
- h6280Close();
- SekClose();
-
- if (pBurnDraw) {
- DrvDraw();
- }
-
- return 0;
-}
-
-static INT32 DrvScan(INT32 nAction, INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin != NULL) {
- *pnMin = 0x029722;
- }
-
- if (nAction & ACB_MEMORY_RAM) {
- memset(&ba, 0, sizeof(ba));
- ba.Data = AllRam;
- ba.nLen = RamEnd-AllRam;
- ba.szName = "All Ram";
- BurnAcb(&ba);
- }
-
- if (nAction & ACB_DRIVER_DATA) {
- SekScan(nAction);
-
- deco16SoundScan(nAction, pnMin);
-
- deco16Scan();
-
- SCAN_VAR(DrvOkiBank);
-
- DrvYM2151WritePort(0, DrvOkiBank);
- }
-
- return 0;
-}
-
-
-// Boogie Wings (Euro v1.5, 92.12.07)
-
-static struct BurnRomInfo boogwingRomDesc[] = {
- { "kn_00-2.2b", 0x040000, 0xe38892b9, 1 | BRF_PRG | BRF_ESS }, // 0 68k Code
- { "kn_02-2.2e", 0x040000, 0x8426efef, 1 | BRF_PRG | BRF_ESS }, // 1
- { "kn_01-2.4b", 0x040000, 0x3ad4b54c, 1 | BRF_PRG | BRF_ESS }, // 2
- { "kn_03-2.4e", 0x040000, 0x10b61f4a, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "km06.18p", 0x010000, 0x3e8bc4e1, 2 | BRF_PRG | BRF_ESS }, // 4 Huc6280 Code
-
- { "km05.9e", 0x010000, 0xd10aef95, 3 | BRF_GRA }, // 5 Characters
- { "km04.8e", 0x010000, 0x329323a8, 3 | BRF_GRA }, // 6
-
- { "mbd-01.9b", 0x100000, 0xd7de4f4b, 4 | BRF_GRA }, // 7 Foreground Tiles
- { "mbd-00.8b", 0x100000, 0xadb20ba9, 4 | BRF_GRA }, // 8
- { "mbd-02.10e", 0x080000, 0xb25aa721, 8 | BRF_GRA }, // 9
-
- { "mbd-03.13b", 0x100000, 0xcf798f2c, 5 | BRF_GRA }, // 10 Background Tiles
- { "mbd-04.14b", 0x100000, 0xd9764d0b, 5 | BRF_GRA }, // 11
-
- { "mbd-05.16b", 0x200000, 0x1768c66a, 6 | BRF_GRA }, // 12 Sprite Bank A
- { "mbd-06.17b", 0x200000, 0x7750847a, 6 | BRF_GRA }, // 13
-
- { "mbd-07.18b", 0x200000, 0x241faac1, 7 | BRF_GRA }, // 14 Sprite Bank B
- { "mbd-08.19b", 0x200000, 0xf13b1e56, 7 | BRF_GRA }, // 15
-
- { "mbd-10.17p", 0x080000, 0xf159f76a, 9 | BRF_SND }, // 16 OKI M6295 Samples 0
- { "mbd-09.16p", 0x080000, 0xf44f2f87, 10 | BRF_SND }, // 17 OKI M6295 Samples 1
-
- { "kj-00.15n", 0x000400, 0xadd4d50b, 11 | BRF_OPT }, // 18 Unknown PROMs
-};
-
-STD_ROM_PICK(boogwing)
-STD_ROM_FN(boogwing)
-
-struct BurnDriver BurnDrvBoogwing = {
- "boogwing", NULL, NULL, NULL, "1992",
- "Boogie Wings (Euro v1.5, 92.12.07)\0", NULL, "Data East Corporation", "DECO IC16",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_PREFIX_DATAEAST, GBF_HORSHOOT, 0,
- NULL, boogwingRomInfo, boogwingRomName, NULL, NULL, BoogwingInputInfo, BoogwingDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 320, 240, 4, 3
-};
-
-
-// Boogie Wings (USA v1.7, 92.12.14)
-
-static struct BurnRomInfo boogwinguRomDesc[] = {
- { "kl_00.2b", 0x040000, 0x4dc14798, 1 | BRF_PRG | BRF_ESS }, // 0 68k Code
- { "kl_02.2e", 0x040000, 0x3bb3b0a0, 1 | BRF_PRG | BRF_ESS }, // 1
- { "kl_01.4b", 0x040000, 0xd109ba13, 1 | BRF_PRG | BRF_ESS }, // 2
- { "kl_03.4e", 0x040000, 0xfef2a176, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "kl06.18p", 0x010000, 0x3e8bc4e1, 2 | BRF_PRG | BRF_ESS }, // 4 Huc6280 Code
-
- { "kl05.9e", 0x010000, 0xd10aef95, 3 | BRF_GRA }, // 5 Characters
- { "kl04.8e", 0x010000, 0x329323a8, 3 | BRF_GRA }, // 6
-
- { "mbd-01.9b", 0x100000, 0xd7de4f4b, 4 | BRF_GRA }, // 7 Foreground Tiles
- { "mbd-00.8b", 0x100000, 0xadb20ba9, 4 | BRF_GRA }, // 8
- { "mbd-02.10e", 0x080000, 0xb25aa721, 4 | BRF_GRA }, // 9
-
- { "mbd-03.13b", 0x100000, 0xcf798f2c, 5 | BRF_GRA }, // 10 Background Tiles
- { "mbd-04.14b", 0x100000, 0xd9764d0b, 5 | BRF_GRA }, // 11
-
- { "mbd-05.16b", 0x200000, 0x1768c66a, 6 | BRF_GRA }, // 12 Sprite Bank A
- { "mbd-06.17b", 0x200000, 0x7750847a, 6 | BRF_GRA }, // 13
-
- { "mbd-07.18b", 0x200000, 0x241faac1, 7 | BRF_GRA }, // 14 Sprite Bank B
- { "mbd-08.19b", 0x200000, 0xf13b1e56, 7 | BRF_GRA }, // 15
-
- { "mbd-10.17p", 0x080000, 0xf159f76a, 8 | BRF_SND }, // 16 OKI M6295 Samples 0
- { "mbd-09.16p", 0x080000, 0xf44f2f87, 9 | BRF_SND }, // 17 OKI M6295 Samples 1
-
- { "kj-00.15n", 0x000400, 0xadd4d50b, 10 | BRF_OPT }, // 18 Unknown PROMs
-};
-
-STD_ROM_PICK(boogwingu)
-STD_ROM_FN(boogwingu)
-
-struct BurnDriver BurnDrvBoogwingu = {
- "boogwingu", "boogwing", NULL, NULL, "1992",
- "Boogie Wings (USA v1.7, 92.12.14)\0", NULL, "Data East Corporation", "DECO IC16",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_DATAEAST, GBF_HORSHOOT, 0,
- NULL, boogwinguRomInfo, boogwinguRomName, NULL, NULL, BoogwingInputInfo, BoogwingDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 320, 240, 4, 3
-};
-
-
-// Boogie Wings (Asia v1.5, 92.12.07)
-
-static struct BurnRomInfo boogwingaRomDesc[] = {
- { "km_00-2.2b", 0x040000, 0x71ab71c6, 1 | BRF_PRG | BRF_ESS }, // 0 68k Code
- { "km_02-2.2e", 0x040000, 0xe90f07f9, 1 | BRF_PRG | BRF_ESS }, // 1
- { "km_01-2.4b", 0x040000, 0x7fdce2d3, 1 | BRF_PRG | BRF_ESS }, // 2
- { "km_03-2.4e", 0x040000, 0x0b582de3, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "km06.18p", 0x010000, 0x3e8bc4e1, 2 | BRF_PRG | BRF_ESS }, // 4 Huc6280 Code
-
- { "km05.9e", 0x010000, 0xd10aef95, 3 | BRF_GRA }, // 5 Characters
- { "km04.8e", 0x010000, 0x329323a8, 3 | BRF_GRA }, // 6
-
- { "mbd-01.9b", 0x100000, 0xd7de4f4b, 4 | BRF_GRA }, // 7 Foreground Tiles
- { "mbd-00.8b", 0x100000, 0xadb20ba9, 4 | BRF_GRA }, // 8
- { "mbd-02.10e", 0x080000, 0xb25aa721, 4 | BRF_GRA }, // 9
-
- { "mbd-03.13b", 0x100000, 0xcf798f2c, 5 | BRF_GRA }, // 10 Background Tiles
- { "mbd-04.14b", 0x100000, 0xd9764d0b, 5 | BRF_GRA }, // 11
-
- { "mbd-05.16b", 0x200000, 0x1768c66a, 6 | BRF_GRA }, // 12 Sprite Bank A
- { "mbd-06.17b", 0x200000, 0x7750847a, 6 | BRF_GRA }, // 13
-
- { "mbd-07.18b", 0x200000, 0x241faac1, 7 | BRF_GRA }, // 14 Sprite Bank B
- { "mbd-08.19b", 0x200000, 0xf13b1e56, 7 | BRF_GRA }, // 15
-
- { "mbd-10.17p", 0x080000, 0xf159f76a, 8 | BRF_SND }, // 16 OKI M6295 Samples 0
- { "mbd-09.16p", 0x080000, 0xf44f2f87, 9 | BRF_SND }, // 17 OKI M6295 Samples 1
-
- { "kj-00.15n", 0x000400, 0xadd4d50b, 10 | BRF_OPT }, // 18 Unknown PROMs
-};
-
-STD_ROM_PICK(boogwinga)
-STD_ROM_FN(boogwinga)
-
-struct BurnDriver BurnDrvBoogwinga = {
- "boogwinga", "boogwing", NULL, NULL, "1992",
- "Boogie Wings (Asia v1.5, 92.12.07)\0", NULL, "Data East Corporation", "DECO IC16",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_DATAEAST, GBF_HORSHOOT, 0,
- NULL, boogwingaRomInfo, boogwingaRomName, NULL, NULL, BoogwingInputInfo, BoogwingDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 320, 240, 4, 3
-};
-
-
-// The Great Ragtime Show (Japan v1.5, 92.12.07)
-
-static struct BurnRomInfo ragtimeRomDesc[] = {
- { "kh_00-2.2b", 0x040000, 0x553e179f, 1 | BRF_PRG | BRF_ESS }, // 0 68k Code
- { "kh_02-2.2e", 0x040000, 0x6c759ec0, 1 | BRF_PRG | BRF_ESS }, // 1
- { "kh_01-2.4b", 0x040000, 0x12dfee70, 1 | BRF_PRG | BRF_ESS }, // 2
- { "kh_03-2.4e", 0x040000, 0x076fea18, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "km06.18p", 0x010000, 0x3e8bc4e1, 2 | BRF_PRG | BRF_ESS }, // 4 Huc6280 Code
-
- { "km05.9e", 0x010000, 0xd10aef95, 3 | BRF_GRA }, // 5 Characters
- { "km04.8e", 0x010000, 0x329323a8, 3 | BRF_GRA }, // 6
-
- { "mbd-01.9b", 0x100000, 0xd7de4f4b, 4 | BRF_GRA }, // 7 Foreground Tiles
- { "mbd-00.8b", 0x100000, 0xadb20ba9, 4 | BRF_GRA }, // 8
- { "mbd-02.10e", 0x080000, 0xb25aa721, 8 | BRF_GRA }, // 9
-
- { "mbd-03.13b", 0x100000, 0xcf798f2c, 5 | BRF_GRA }, // 10 Background Tiles
- { "mbd-04.14b", 0x100000, 0xd9764d0b, 5 | BRF_GRA }, // 11
-
- { "mbd-05.16b", 0x200000, 0x1768c66a, 6 | BRF_GRA }, // 12 Sprite Bank A
- { "mbd-06.17b", 0x200000, 0x7750847a, 6 | BRF_GRA }, // 13
-
- { "mbd-07.18b", 0x200000, 0x241faac1, 7 | BRF_GRA }, // 14 Sprite Bank B
- { "mbd-08.19b", 0x200000, 0xf13b1e56, 7 | BRF_GRA }, // 15
-
- { "mbd-10.17p", 0x080000, 0xf159f76a, 9 | BRF_SND }, // 16 OKI M6295 Samples 0
- { "mbd-09.16p", 0x080000, 0xf44f2f87, 10 | BRF_SND }, // 17 OKI M6295 Samples 1
-
- { "kj-00.15n", 0x000400, 0xadd4d50b, 11 | BRF_OPT }, // 18 Unknown PROMs
-};
-
-STD_ROM_PICK(ragtime)
-STD_ROM_FN(ragtime)
-
-struct BurnDriver BurnDrvRagtime = {
- "ragtime", "boogwing", NULL, NULL, "1992",
- "The Great Ragtime Show (Japan v1.5, 92.12.07)\0", NULL, "Data East Corporation", "DECO IC16",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_DATAEAST, GBF_HORSHOOT, 0,
- NULL, ragtimeRomInfo, ragtimeRomName, NULL, NULL, BoogwingInputInfo, BoogwingDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 320, 240, 4, 3
-};
-
-
-// The Great Ragtime Show (Japan v1.3, 92.11.26)
-
-static struct BurnRomInfo ragtimeaRomDesc[] = {
- { "kh_00-1.2b", 0x040000, 0x88f0155a, 1 | BRF_PRG | BRF_ESS }, // 0 68k Code
- { "kh_02-1.2e", 0x040000, 0x8811b41b, 1 | BRF_PRG | BRF_ESS }, // 1
- { "kh_01-1.4b", 0x040000, 0x4dab63ad, 1 | BRF_PRG | BRF_ESS }, // 2
- { "kh_03-1.4e", 0x040000, 0x8a4cbb18, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "km06.18p", 0x010000, 0x3e8bc4e1, 2 | BRF_PRG | BRF_ESS }, // 4 Huc6280 Code
-
- { "km05.9e", 0x010000, 0xd10aef95, 3 | BRF_GRA }, // 5 Characters
- { "km04.8e", 0x010000, 0x329323a8, 3 | BRF_GRA }, // 6
-
- { "mbd-01.9b", 0x100000, 0xd7de4f4b, 4 | BRF_GRA }, // 7 Foreground Tiles
- { "mbd-00.8b", 0x100000, 0xadb20ba9, 4 | BRF_GRA }, // 8
- { "mbd-02.10e", 0x080000, 0xb25aa721, 8 | BRF_GRA }, // 9
-
- { "mbd-03.13b", 0x100000, 0xcf798f2c, 5 | BRF_GRA }, // 10 Background Tiles
- { "mbd-04.14b", 0x100000, 0xd9764d0b, 5 | BRF_GRA }, // 11
-
- { "mbd-05.16b", 0x200000, 0x1768c66a, 6 | BRF_GRA }, // 12 Sprite Bank A
- { "mbd-06.17b", 0x200000, 0x7750847a, 6 | BRF_GRA }, // 13
-
- { "mbd-07.18b", 0x200000, 0x241faac1, 7 | BRF_GRA }, // 14 Sprite Bank B
- { "mbd-08.19b", 0x200000, 0xf13b1e56, 7 | BRF_GRA }, // 15
-
- { "mbd-10.17p", 0x080000, 0xf159f76a, 9 | BRF_SND }, // 16 OKI M6295 Samples 0
- { "mbd-09.16p", 0x080000, 0xf44f2f87, 10 | BRF_SND }, // 17 OKI M6295 Samples 1
-
- { "kj-00.15n", 0x000400, 0xadd4d50b, 11 | BRF_OPT }, // 18 Unknown PROMs
-};
-
-STD_ROM_PICK(ragtimea)
-STD_ROM_FN(ragtimea)
-
-struct BurnDriver BurnDrvRagtimea = {
- "ragtimea", "boogwing", NULL, NULL, "1992",
- "The Great Ragtime Show (Japan v1.3, 92.11.26)\0", NULL, "Data East Corporation", "DECO IC16",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_DATAEAST, GBF_HORSHOOT, 0,
- NULL, ragtimeaRomInfo, ragtimeaRomName, NULL, NULL, BoogwingInputInfo, BoogwingDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 320, 240, 4, 3
-};
diff --git a/jan/src/burn/drv/dataeast/d_brkthru.cpp b/jan/src/burn/drv/dataeast/d_brkthru.cpp
deleted file mode 100644
index 8b77a8957..000000000
--- a/jan/src/burn/drv/dataeast/d_brkthru.cpp
+++ /dev/null
@@ -1,931 +0,0 @@
-// FB Alpha Break Thru driver module
-// Based on MAME driver by Phil Stroffolino
-
-// Tofix:
-// background layer in Breakthru has the wrong colors.
-
-// Notes:
-// Due to our 6809 core being very cycle-inaccurate, our cpu's need an extra
-// 1.5mhz tacked on to match the same performance as MAME running the same
-// game. Todo: remove o/c when core is updated.
-
-#include "tiles_generic.h"
-#include "m6809_intf.h"
-#include "burn_ym2203.h"
-#include "burn_ym3526.h"
-
-static UINT8 *AllMem;
-static UINT8 *MemEnd;
-static UINT8 *AllRam;
-static UINT8 *RamEnd;
-static UINT8 *DrvM6809ROM0;
-static UINT8 *DrvM6809ROM1;
-static UINT8 *DrvGfxROM0;
-static UINT8 *DrvGfxROM1;
-static UINT8 *DrvGfxROM2;
-static UINT8 *DrvColPROM;
-static UINT8 *DrvSprRAM;
-static UINT8 *DrvBgRAM;
-static UINT8 *DrvFgRAM;
-static UINT8 *DrvM6809RAM1;
-
-static UINT32 *DrvPalette;
-static UINT8 DrvRecalc;
-
-static UINT8 flipscreen;
-static UINT16 bgscroll;
-static UINT8 bgbasecolor;
-static UINT8 soundlatch;
-static INT32 rombank;
-static UINT8 nmi_mask;
-static UINT8 vblank;
-static UINT8 prevcoin;
-
-static INT32 darwin = 0;
-
-static UINT8 DrvJoy1[8];
-static UINT8 DrvJoy2[8];
-static UINT8 DrvJoy3[8];
-static UINT8 DrvDips[2];
-static UINT8 DrvInputs[3];
-static UINT8 DrvReset;
-
-static struct BurnInputInfo BrkthruInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy3 + 5, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 6, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy1 + 3, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy1 + 2, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy1 + 4, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy1 + 5, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy1 + 0, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy1 + 1, "p1 fire 2" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy3 + 6, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy1 + 7, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvJoy2 + 3, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy2 + 2, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy2 + 4, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy2 + 5, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy2 + 0, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy2 + 1, "p2 fire 2" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service", BIT_DIGITAL, DrvJoy3 + 7, "service" },
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip" },
-};
-
-STDINPUTINFO(Brkthru)
-
-
-static struct BurnDIPInfo BrkthruDIPList[]=
-{
- {0x12, 0xff, 0xff, 0x3f, NULL },
- {0x13, 0xff, 0xff, 0x1f, NULL },
-
- {0 , 0xfe, 0 , 4, "Coin A" },
- {0x12, 0x01, 0x03, 0x00, "2 Coins 1 Credits" },
- {0x12, 0x01, 0x03, 0x03, "1 Coin 1 Credits" },
- {0x12, 0x01, 0x03, 0x02, "1 Coin 2 Credits" },
- {0x12, 0x01, 0x03, 0x01, "1 Coin 3 Credits" },
-
- {0 , 0xfe, 0 , 4, "Coin B" },
- {0x12, 0x01, 0x0c, 0x00, "2 Coins 1 Credits" },
- {0x12, 0x01, 0x0c, 0x0c, "1 Coin 1 Credits" },
- {0x12, 0x01, 0x0c, 0x08, "1 Coin 2 Credits" },
- {0x12, 0x01, 0x0c, 0x04, "1 Coin 3 Credits" },
-
- {0 , 0xfe, 0 , 2, "Enemy Vehicles" },
- {0x12, 0x01, 0x10, 0x10, "Slow" },
- {0x12, 0x01, 0x10, 0x00, "Fast" },
-
- {0 , 0xfe, 0 , 2, "Enemy Bullets" },
- {0x12, 0x01, 0x20, 0x20, "Slow" },
- {0x12, 0x01, 0x20, 0x00, "Fast" },
-
- {0 , 0xfe, 0 , 2, "Control Panel" },
- {0x12, 0x01, 0x40, 0x40, "1 Player" },
- {0x12, 0x01, 0x40, 0x00, "2 Players" },
-
- {0 , 0xfe, 0 , 2, "Cabinet" },
- {0x12, 0x01, 0x80, 0x00, "Upright" },
- {0x12, 0x01, 0x80, 0x80, "Cocktail" },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x13, 0x01, 0x03, 0x02, "2" },
- {0x13, 0x01, 0x03, 0x03, "3" },
- {0x13, 0x01, 0x03, 0x01, "5" },
- {0x13, 0x01, 0x03, 0x00, "99 (Cheat)" },
-
- {0 , 0xfe, 0 , 4, "Bonus Life" },
- {0x13, 0x01, 0x0c, 0x00, "20000 Points Only" },
- {0x13, 0x01, 0x0c, 0x04, "10000/20000 Points" },
- {0x13, 0x01, 0x0c, 0x0c, "20000/30000 Points" },
- {0x13, 0x01, 0x0c, 0x08, "20000/40000 Points" },
-
- {0 , 0xfe, 0 , 2, "Allow Continue" },
- {0x13, 0x01, 0x10, 0x00, "No" },
- {0x13, 0x01, 0x10, 0x10, "Yes" },
-};
-
-STDDIPINFO(Brkthru)
-
-
-static struct BurnDIPInfo BrkthrujDIPList[]=
-{
- {0x12, 0xff, 0xff, 0x3f, NULL },
- {0x13, 0xff, 0xff, 0x1f, NULL },
-
- {0 , 0xfe, 0 , 4, "Coin A" },
- {0x12, 0x01, 0x03, 0x00, "2 Coins 1 Credits" },
- {0x12, 0x01, 0x03, 0x03, "1 Coin 1 Credits" },
- {0x12, 0x01, 0x03, 0x02, "1 Coin 2 Credits" },
- {0x12, 0x01, 0x03, 0x01, "1 Coin 3 Credits" },
-
- {0 , 0xfe, 0 , 4, "Coin B" },
- {0x12, 0x01, 0x0c, 0x00, "2 Coins 1 Credits" },
- {0x12, 0x01, 0x0c, 0x0c, "1 Coin 1 Credits" },
- {0x12, 0x01, 0x0c, 0x08, "1 Coin 2 Credits" },
- {0x12, 0x01, 0x0c, 0x04, "1 Coin 3 Credits" },
-
- {0 , 0xfe, 0 , 2, "Enemy Vehicles" },
- {0x12, 0x01, 0x10, 0x10, "Slow" },
- {0x12, 0x01, 0x10, 0x00, "Fast" },
-
- {0 , 0xfe, 0 , 2, "Enemy Bullets" },
- {0x12, 0x01, 0x20, 0x20, "Slow" },
- {0x12, 0x01, 0x20, 0x00, "Fast" },
-
- {0 , 0xfe, 0 , 2, "Control Panel" },
- {0x12, 0x01, 0x40, 0x40, "1 Player" },
- {0x12, 0x01, 0x40, 0x00, "2 Players" },
-
- {0 , 0xfe, 0 , 2, "Cabinet" },
- {0x12, 0x01, 0x80, 0x00, "Upright" },
- {0x12, 0x01, 0x80, 0x80, "Cocktail" },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x13, 0x01, 0x03, 0x02, "2" },
- {0x13, 0x01, 0x03, 0x03, "3" },
- {0x13, 0x01, 0x03, 0x01, "5" },
- {0x13, 0x01, 0x03, 0x00, "99 (Cheat)" },
-
- {0 , 0xfe, 0 , 4, "Bonus Life" },
- {0x13, 0x01, 0x0c, 0x00, "20000 Points Only" },
- {0x13, 0x01, 0x0c, 0x04, "10000/20000 Points" },
- {0x13, 0x01, 0x0c, 0x0c, "20000/30000 Points" },
- {0x13, 0x01, 0x0c, 0x08, "20000/40000 Points" },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x13, 0x01, 0x10, 0x10, "Off" },
- {0x13, 0x01, 0x10, 0x00, "On" },
-};
-
-STDDIPINFO(Brkthruj)
-
-static struct BurnDIPInfo DarwinDIPList[]=
-{
- {0x12, 0xff, 0xff, 0x4f, NULL },
- {0x13, 0xff, 0xff, 0x1f, NULL },
-
- {0 , 0xfe, 0 , 4, "Coin A" },
- {0x12, 0x01, 0x03, 0x00, "2 Coins 1 Credits" },
- {0x12, 0x01, 0x03, 0x03, "1 Coin 1 Credits" },
- {0x12, 0x01, 0x03, 0x02, "1 Coin 2 Credits" },
- {0x12, 0x01, 0x03, 0x01, "1 Coin 3 Credits" },
-
- {0 , 0xfe, 0 , 4, "Coin B" },
- {0x12, 0x01, 0x0c, 0x00, "2 Coins 1 Credits" },
- {0x12, 0x01, 0x0c, 0x0c, "1 Coin 1 Credits" },
- {0x12, 0x01, 0x0c, 0x08, "1 Coin 2 Credits" },
- {0x12, 0x01, 0x0c, 0x04, "1 Coin 3 Credits" },
-
- {0 , 0xfe, 0 , 2, "Cabinet" },
- {0x12, 0x01, 0x20, 0x00, "Upright" },
- {0x12, 0x01, 0x20, 0x20, "Cocktail" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x12, 0x01, 0x40, 0x00, "Off" },
- {0x12, 0x01, 0x40, 0x40, "On" },
-
- {0 , 0xfe, 0 , 2, "Lives" },
- {0x13, 0x01, 0x01, 0x01, "3" },
- {0x13, 0x01, 0x01, 0x00, "5" },
-
- {0 , 0xfe, 0 , 2, "Bonus Life" },
- {0x13, 0x01, 0x02, 0x02, "20k, 50k and every 50k"},
- {0x13, 0x01, 0x02, 0x00, "30k, 80k and every 80k"},
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x13, 0x01, 0x0c, 0x0c, "Easy" },
- {0x13, 0x01, 0x0c, 0x08, "Medium" },
- {0x13, 0x01, 0x0c, 0x04, "Hard" },
- {0x13, 0x01, 0x0c, 0x00, "Hardest" },
-
- {0 , 0xfe, 0 , 2, "Allow Continue" },
- {0x13, 0x01, 0x10, 0x00, "No" },
- {0x13, 0x01, 0x10, 0x10, "Yes" },
-};
-
-STDDIPINFO(Darwin)
-
-static void bankswitch(INT32 data)
-{
- rombank = data & 7;
- INT32 bank = 0x10000 + rombank * 0x2000;
-
- M6809MapMemory(DrvM6809ROM0 + bank, 0x2000, 0x3fff, MAP_ROM);
-}
-
-static void brkthru_main_write(UINT16 address, UINT8 data)
-{
- switch (address & ~0x1000)
- {
- case 0x0800:
- bgscroll = data | (bgscroll & 0x100);
- return;
-
- case 0x0801:
- {
- bankswitch(data & 7);
- bgbasecolor = (data >> 2) & 0x0e;
- flipscreen = data & 0x40;
- bgscroll = ((data & 0x80) << 1) | (bgscroll & 0xff);
- }
- return;
-
- case 0x0802:
- soundlatch = data;
- M6809Close();
- M6809Open(1);
- M6809SetIRQLine(0x20, CPU_IRQSTATUS_ACK);
- M6809Close();
- M6809Open(0);
- return;
-
- case 0x0803:
- if (data & 0x02) M6809SetIRQLine(0, CPU_IRQSTATUS_NONE);
- //nmi_mask = (~data & 1) ^ ((address & 0x800) >> 11); grr.
- if (address == 0x803) nmi_mask = data & 1; else nmi_mask = ~data & 1;
- //bprintf(0, _T("nmi mask %X. address %X\n"), nmi_mask, address);
- return;
- }
-}
-
-static UINT8 brkthru_main_read(UINT16 address)
-{
- switch (address & ~0x1000)
- {
- case 0x0800:
- return DrvInputs[0];
-
- case 0x0801:
- return (DrvInputs[1] & 0x7f) | (vblank ? 0 : 0x80);
-
- case 0x0802:
- return DrvDips[0];
-
- case 0x0803:
- return (DrvDips[1] & 0x1f) | (DrvInputs[2] & 0xe0);
- }
-
- return 0;
-}
-
-static void brkthru_sound_write(UINT16 address, UINT8 data)
-{
- switch (address)
- {
- case 0x2000:
- case 0x2001:
- BurnYM3526Write(address & 1, data);
- return;
-
- case 0x6000:
- case 0x6001:
- BurnYM2203Write(0, address & 1, data);
- return;
- }
-}
-
-static UINT8 brkthru_sound_read(UINT16 address)
-{
- switch (address)
- {
- case 0x4000:
- M6809SetIRQLine(0x20, CPU_IRQSTATUS_NONE);
-
- return soundlatch;
-
- case 0x6000:
- case 0x6001:
- return BurnYM2203Read(0, address & 1);
- }
-
- return 0;
-}
-
-static void DrvFMIRQHandler(INT32, INT32 nStatus)
-{
- M6809SetIRQLine(M6809_IRQ_LINE, (nStatus) ? CPU_IRQSTATUS_ACK : CPU_IRQSTATUS_NONE);
-}
-
-inline static double DrvGetTime()
-{
- return (double)M6809TotalCycles() / (1500000*2);
-}
-
-static INT32 DrvSynchroniseStream(INT32 nSoundRate)
-{
- return (INT64)M6809TotalCycles() * nSoundRate / (1500000*2);
-}
-
-static INT32 DrvDoReset()
-{
- memset (AllRam, 0, RamEnd - AllRam);
-
- M6809Open(0);
- bankswitch(0);
- M6809Reset();
- BurnYM3526Reset();
- M6809Close();
-
- M6809Open(1);
- M6809Reset();
- BurnYM2203Reset();
- M6809Close();
-
- DrvInputs[2] = 0xff;
- bgscroll = 0;
- soundlatch = 0;
- flipscreen = 0;
- nmi_mask = 0;
- bgbasecolor = 0;
-
- return 0;
-}
-
-static INT32 MemIndex()
-{
- UINT8 *Next; Next = AllMem;
-
- DrvM6809ROM0 = Next; Next += 0x020000;
- DrvM6809ROM1 = Next; Next += 0x010000;
-
- DrvGfxROM0 = Next; Next += 0x004000;
- DrvGfxROM1 = Next; Next += 0x040000;
- DrvGfxROM2 = Next; Next += 0x040000;
-
- DrvColPROM = Next; Next += 0x000200;
-
- DrvPalette = (UINT32*)Next; Next += 0x0100 * sizeof(UINT32);
-
- AllRam = Next;
-
- DrvSprRAM = Next; Next += 0x000800;
- DrvBgRAM = Next; Next += 0x000400;
- DrvFgRAM = Next; Next += 0x000c00;
- DrvM6809RAM1 = Next; Next += 0x002000;
-
- RamEnd = Next;
-
- MemEnd = Next;
-
- return 0;
-}
-
-static INT32 DrvGfxDecode()
-{
- INT32 Plane0[3] = { 0x8004, 0, 4 };
- INT32 XOffs0[8] = { 256*8*8+0, 256*8*8+1, 256*8*8+2, 256*8*8+3, 0, 1, 2, 3 };//STEP4(0x4000, 1), STEP4(0,1) };
- INT32 YOffs[16] = { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8, 8*8, 9*8, 10*8, 11*8, 12*8, 13*8, 14*8, 15*8 };//STEP16(0,8) };
-
- INT32 Plane1[3] = { 0x20004, 0, 4 };
- INT32 Plane2[3] = { 0x18000, 0, 4 };
- INT32 XOffs1[16] = { 0, 1, 2, 3, 1024*8*8+0, 1024*8*8+1, 1024*8*8+2, 1024*8*8+3, 16*8+0, 16*8+1, 16*8+2, 16*8+3, 16*8+1024*8*8+0, 16*8+1024*8*8+1, 16*8+1024*8*8+2, 16*8+1024*8*8+3 };//STEP4(0,1), STEP4(0x10000,1), STEP4(0x80,1), STEP4(0x10080, 1) };
-
- INT32 Plane3[3] = { 0x80000, 0x40000, 0 };
- INT32 XOffs3[16] = { 16*8+0, 16*8+1, 16*8+2, 16*8+3, 16*8+4, 16*8+5, 16*8+6, 16*8+7, 0, 1, 2, 3, 4, 5, 6, 7 };//STEP8(128,1), STEP8(0,1) };
-
-
- UINT8 *tmp = (UINT8*)BurnMalloc(0x60000);
- if (tmp == NULL) {
- return 1;
- }
-
- memcpy (tmp, DrvGfxROM0, 0x2000);
-
- GfxDecode(0x0100, 3, 8, 8, Plane0, XOffs0, YOffs, 0x040, tmp, DrvGfxROM0);
-
- memcpy (tmp, DrvGfxROM1, 0x20000);
-
- GfxDecode(0x0080, 3, 16, 16, Plane1, XOffs1, YOffs, 0x100, tmp + 0x00000, DrvGfxROM1 + 0x00000);
- GfxDecode(0x0080, 3, 16, 16, Plane2, XOffs1, YOffs, 0x100, tmp + 0x01000, DrvGfxROM1 + 0x08000);
- GfxDecode(0x0080, 3, 16, 16, Plane1, XOffs1, YOffs, 0x100, tmp + 0x08000, DrvGfxROM1 + 0x10000);
- GfxDecode(0x0080, 3, 16, 16, Plane2, XOffs1, YOffs, 0x100, tmp + 0x09000, DrvGfxROM1 + 0x18000);
- GfxDecode(0x0080, 3, 16, 16, Plane1, XOffs1, YOffs, 0x100, tmp + 0x10000, DrvGfxROM1 + 0x20000);
- GfxDecode(0x0080, 3, 16, 16, Plane2, XOffs1, YOffs, 0x100, tmp + 0x11000, DrvGfxROM1 + 0x28000);
- GfxDecode(0x0080, 3, 16, 16, Plane1, XOffs1, YOffs, 0x100, tmp + 0x18000, DrvGfxROM1 + 0x30000);
- GfxDecode(0x0080, 3, 16, 16, Plane2, XOffs1, YOffs, 0x100, tmp + 0x19000, DrvGfxROM1 + 0x38000);
-
- memcpy (tmp, DrvGfxROM2, 0x18000);
-
- GfxDecode(0x0400, 3, 16, 16, Plane3, XOffs3, YOffs, 0x100, tmp, DrvGfxROM2);
-
- BurnFree(tmp);
-
- return 0;
-}
-
-static INT32 DrvInit()
-{
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(DrvM6809ROM0 + 0x04000, 0, 1)) return 1;
- if (BurnLoadRom(DrvM6809ROM0 + 0x08000, 1, 1)) return 1;
- if (BurnLoadRom(DrvM6809ROM0 + 0x10000, 2, 1)) return 1;
- if (BurnLoadRom(DrvM6809ROM0 + 0x18000, 3, 1)) return 1;
-
- if (BurnLoadRom(DrvM6809ROM1 + 0x08000, 4, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x00000, 5, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM2 + 0x00000, 6, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x08000, 7, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x10000, 8, 1)) return 1;
-
- memcpy (DrvGfxROM1 + 0x00000, DrvGfxROM2 + 0x00000, 0x4000);
- memcpy (DrvGfxROM1 + 0x08000, DrvGfxROM2 + 0x04000, 0x4000);
- memcpy (DrvGfxROM1 + 0x10000, DrvGfxROM2 + 0x08000, 0x4000);
- memcpy (DrvGfxROM1 + 0x18000, DrvGfxROM2 + 0x0c000, 0x4000);
- memcpy (DrvGfxROM1 + 0x04000, DrvGfxROM2 + 0x10000, 0x1000);
- memcpy (DrvGfxROM1 + 0x06000, DrvGfxROM2 + 0x11000, 0x1000);
- memcpy (DrvGfxROM1 + 0x0c000, DrvGfxROM2 + 0x12000, 0x1000);
- memcpy (DrvGfxROM1 + 0x0e000, DrvGfxROM2 + 0x13000, 0x1000);
- memcpy (DrvGfxROM1 + 0x14000, DrvGfxROM2 + 0x14000, 0x1000);
- memcpy (DrvGfxROM1 + 0x16000, DrvGfxROM2 + 0x15000, 0x1000);
- memcpy (DrvGfxROM1 + 0x1c000, DrvGfxROM2 + 0x16000, 0x1000);
- memcpy (DrvGfxROM1 + 0x1e000, DrvGfxROM2 + 0x17000, 0x1000);
-
- if (BurnLoadRom(DrvGfxROM2 + 0x00000, 9, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x08000, 10, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x10000, 11, 1)) return 1;
-
- if (BurnLoadRom(DrvColPROM + 0x00000, 12, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x00100, 13, 1)) return 1;
-
- DrvGfxDecode();
- }
-
- M6809Init(2); // this init is only called once with the maximum cpus to init.
- M6809Open(0);
- if (darwin) {
- M6809MapMemory(DrvSprRAM, 0x0000, 0x00ff, MAP_RAM); // 0-ff
- M6809MapMemory(DrvFgRAM, 0x1000, 0x1bff, MAP_RAM); // 0-3ff
- M6809MapMemory(DrvBgRAM, 0x1c00, 0x1fff, MAP_RAM);
- } else {
- M6809MapMemory(DrvFgRAM, 0x0000, 0x0bff, MAP_RAM); // 0-3ff
- M6809MapMemory(DrvBgRAM, 0x0c00, 0x0fff, MAP_RAM);
- M6809MapMemory(DrvSprRAM, 0x1000, 0x17ff, MAP_RAM); // 0-ff
- }
- M6809MapMemory(DrvM6809ROM0 + 0x4000, 0x4000, 0xffff, MAP_ROM);
- M6809SetWriteHandler(brkthru_main_write);
- M6809SetReadHandler(brkthru_main_read);
- M6809Close();
-
- //M6809Init(1);
- M6809Open(1);
- M6809MapMemory(DrvM6809RAM1, 0x0000, 0x1fff, MAP_RAM);
- M6809MapMemory(DrvM6809ROM1 + 0x8000, 0x8000, 0xffff, MAP_ROM);
- M6809SetWriteHandler(brkthru_sound_write);
- M6809SetReadHandler(brkthru_sound_read);
- M6809Close();
-
- BurnYM2203Init(1, 1500000, NULL, DrvSynchroniseStream, DrvGetTime, 0);
- BurnTimerAttachM6809(1500000*2);
- BurnYM2203SetAllRoutes(0, 0.50, BURN_SND_ROUTE_BOTH);
- BurnYM2203SetPSGVolume(0, 0.10);
-
- BurnYM3526Init(3000000, &DrvFMIRQHandler, &DrvSynchroniseStream, 1);
- BurnTimerAttachM6809YM3526(1500000*2);
- BurnYM3526SetRoute(BURN_SND_YM3526_ROUTE, 1.00, BURN_SND_ROUTE_BOTH);
-
- GenericTilesInit();
-
- DrvDoReset();
-
- return 0;
-}
-
-static INT32 DrvExit()
-{
- darwin = 0;
- GenericTilesExit();
-
- M6809Exit();
- BurnYM2203Exit();
- BurnYM3526Exit();
-
- BurnFree(AllMem);
-
- return 0;
-}
-
-static void DrvPaletteInit()
-{
- const UINT8 tab[16] = {
- 0x00, 0x0e, 0x1f, 0x2d, 0x43, 0x51, 0x62, 0x70,
- 0x8f, 0x9d, 0xae, 0xbc, 0xd2, 0xe0, 0xf1, 0xff
- };
-
- for (INT32 i = 0; i < 0x100; i++)
- {
- UINT8 r = tab[DrvColPROM[i] & 0xf];
- UINT8 g = tab[DrvColPROM[i] >> 4];
- UINT8 b = tab[DrvColPROM[i+0x100] & 0xf];
-
- DrvPalette[i] = BurnHighCol(r,g,b,0);
- }
-}
-
-static void draw_fg_layer()
-{
- for (INT32 offs = 0; offs < 32 * 32; offs++)
- {
- INT32 sx = (offs & 0x1f) * 8;
- INT32 sy = (offs / 0x20) * 8;
-
- sy -= 8;
- sx -= 8;
-
- INT32 code = DrvFgRAM[offs];
-
- Render8x8Tile_Mask_Clip(pTransDraw, code, sx, sy, 0, 3, 0, 0, DrvGfxROM0);
- }
-}
-
-static void draw_bg_layer(INT32 opaque)
-{
- for (INT32 offs = 0; offs < 32 * 16; offs++)
- {
- INT32 sy = (offs & 0xf) * 16;
- INT32 sx = (offs / 0x10) * 16;
-
- sx -= bgscroll;
- sy -= 8;
- sx -= 8;
- if (sx < -15) sx += 512;
- if (sx >= nScreenWidth || sy >= nScreenHeight) continue;
-
- INT32 attr = DrvBgRAM[offs*2+1];
- INT32 code = DrvBgRAM[offs*2] + ((attr & 3) * 256);
- INT32 color = ((attr >> 2) & 1)+bgbasecolor;
-
- if (opaque) {
- Render16x16Tile_Clip(pTransDraw, code, sx, sy, color, 3, 0x80, DrvGfxROM1);
- } else {
- Render16x16Tile_Mask_Clip(pTransDraw, code, sx, sy, color, 3, 0, 0x80, DrvGfxROM1);
- }
- }
-}
-
-static inline void draw_single_sprite(INT32 code, INT32 sx, INT32 sy, INT32 color)
-{
- if (flipscreen) {
- Render16x16Tile_Mask_FlipXY_Clip(pTransDraw, code, sx, sy, color, 3, 0, 0x40, DrvGfxROM2);
- } else {
- Render16x16Tile_Mask_Clip(pTransDraw, code, sx, sy, color, 3, 0, 0x40, DrvGfxROM2);
- }
-}
-
-static void draw_sprites(INT32 prio)
-{
- for (INT32 offs = 0;offs < 0x100; offs += 4)
- {
- if ((DrvSprRAM[offs] & 0x01) == 0) continue;
-
- if (((DrvSprRAM[offs] & 0x08) >> 3) == prio)
- {
- INT32 sx = 240 - DrvSprRAM[offs + 3];
- sx -= 8;
- if (sx < -15) sx += 256;
-
- INT32 sy = 240 - DrvSprRAM[offs + 2];
- sy -= 8;
- INT32 code = DrvSprRAM[offs + 1] + (128 * (DrvSprRAM[offs] & 0x06));
- INT32 color = (DrvSprRAM[offs] & 0xe0) >> 5;
-
- if (flipscreen)
- {
- sx = 240 - sx;
- sy = 240 - sy;
- }
-
- if (DrvSprRAM[offs] & 0x10)
- {
- draw_single_sprite(code & ~1, sx, (flipscreen ? sy + 16 : sy - 16), color);
- draw_single_sprite(code | 1, sx, sy, color);
-
- draw_single_sprite(code & ~1, sx, (flipscreen ? sy + 16 : sy - 16) + 256, color);
- draw_single_sprite(code | 1, sx, sy + 256, color);
- }
- else
- {
- draw_single_sprite(code, sx, sy, color);
- draw_single_sprite(code, sx, sy + 256, color);
- }
- }
- }
-}
-
-static INT32 DrvDraw()
-{
- if (DrvRecalc) {
- DrvPaletteInit();
- DrvRecalc = 0;
- }
-
- BurnTransferClear();
- if (nBurnLayer & 1) draw_bg_layer(1);
- if (nBurnLayer & 2) draw_sprites(0);
- if (nBurnLayer & 1) draw_bg_layer(0);
- if (nBurnLayer & 2) draw_sprites(1);
- if (nBurnLayer & 4) draw_fg_layer();
-
- BurnTransferCopy(DrvPalette);
-
- return 0;
-}
-
-static INT32 DrvFrame()
-{
- if (DrvReset) {
- DrvDoReset();
- }
-
- M6809NewFrame();
-
- {
- memset (DrvInputs, 0xff, 3);
- for (INT32 i = 0; i < 8; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- DrvInputs[2] ^= (DrvJoy3[i] & 1) << i;
- }
-
- if ((prevcoin == 0xff) && (((DrvInputs[2] & 0x20) == 0) || ((DrvInputs[2] & 0x40) == 0))) { // coin!
- M6809Open(0);
- M6809SetIRQLine(0, CPU_IRQSTATUS_ACK);
- M6809Close();
- }
- prevcoin = DrvInputs[2];
- }
-
- INT32 nInterleave = 272;
- INT32 nCyclesTotal[2] = { 1500000*2 / 60, 1500000*2 / 60 };
-
- vblank = 0;
-
- for (INT32 i = 0; i < nInterleave; i++)
- {
- M6809Open(0);
- BurnTimerUpdate((i+1) * (nCyclesTotal[0] / nInterleave));
- if (i == 248) vblank = 1;
- if (i == 248 && nmi_mask) M6809SetIRQLine(0x20, CPU_IRQSTATUS_AUTO);
- M6809Close();
-
- M6809Open(1);
- BurnTimerUpdateYM3526((i+1) * (nCyclesTotal[1] / nInterleave));
- M6809Close();
- }
-
- M6809Open(0);
- BurnTimerEndFrame(nCyclesTotal[0]);
- M6809Close();
-
- M6809Open(1);
- BurnTimerEndFrameYM3526(nCyclesTotal[1]);
- M6809Close();
-
- if (pBurnSoundOut) {
- M6809Open(0);
- BurnYM2203Update(pBurnSoundOut, nBurnSoundLen);
- M6809Close();
- M6809Open(1);
- BurnYM3526Update(pBurnSoundOut, nBurnSoundLen);
- M6809Close();
- }
-
- if (pBurnDraw) {
- DrvDraw();
- }
-
- return 0;
-}
-
-static INT32 DrvScan(INT32 nAction, INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin != NULL) {
- *pnMin = 0x029706;
- }
-
- if (nAction & ACB_MEMORY_RAM) {
- memset(&ba, 0, sizeof(ba));
- ba.Data = AllRam;
- ba.nLen = RamEnd-AllRam;
- ba.szName = "All Ram";
- BurnAcb(&ba);
- }
-
- if (nAction & ACB_DRIVER_DATA) {
- M6809Scan(nAction);
-
- M6809Open(0);
- BurnYM2203Scan(nAction, pnMin);
- M6809Close();
- M6809Open(1);
- BurnYM3526Scan(nAction, pnMin);
- M6809Close();
-
- SCAN_VAR(flipscreen);
- SCAN_VAR(bgscroll);
- SCAN_VAR(bgbasecolor);
- SCAN_VAR(soundlatch);
- SCAN_VAR(rombank);
- SCAN_VAR(nmi_mask);
- }
-
- if (nAction & ACB_WRITE) {
- M6809Open(0);
- bankswitch(rombank);
- M6809Close();
- }
-
- return 0;
-}
-
-
-// Break Thru (US)
-
-static struct BurnRomInfo brkthruRomDesc[] = {
- { "brkthru.1", 0x4000, 0xcfb4265f, 1 | BRF_PRG | BRF_ESS }, // 0 M6809 #0 Code
- { "brkthru.2", 0x8000, 0xfa8246d9, 1 | BRF_PRG | BRF_ESS }, // 1
- { "brkthru.4", 0x8000, 0x8cabf252, 1 | BRF_PRG | BRF_ESS }, // 2
- { "brkthru.3", 0x8000, 0x2f2c40c2, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "brkthru.5", 0x8000, 0xc309435f, 2 | BRF_PRG | BRF_ESS }, // 4 M6809 #1 Code
-
- { "brkthru.12", 0x2000, 0x58c0b29b, 3 | BRF_GRA }, // 5 Characters
-
- { "brkthru.7", 0x8000, 0x920cc56a, 4 | BRF_GRA }, // 6 Background Layer
- { "brkthru.6", 0x8000, 0xfd3cee40, 4 | BRF_GRA }, // 7
- { "brkthru.8", 0x8000, 0xf67ee64e, 4 | BRF_GRA }, // 8
-
- { "brkthru.9", 0x8000, 0xf54e50a7, 5 | BRF_GRA }, // 9 Sprites
- { "brkthru.10", 0x8000, 0xfd156945, 5 | BRF_GRA }, // 10
- { "brkthru.11", 0x8000, 0xc152a99b, 5 | BRF_GRA }, // 11
-
- { "brkthru.13", 0x0100, 0xaae44269, 6 | BRF_GRA }, // 12 Color data
- { "brkthru.14", 0x0100, 0xf2d4822a, 6 | BRF_GRA }, // 13
-};
-
-STD_ROM_PICK(brkthru)
-STD_ROM_FN(brkthru)
-
-struct BurnDriver BurnDrvBrkthru = {
- "brkthru", NULL, NULL, NULL, "1986",
- "Break Thru (US)\0", NULL, "Data East USA", "Miscellaneous",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_PREFIX_DATAEAST, GBF_HORSHOOT, 0,
- NULL, brkthruRomInfo, brkthruRomName, NULL, NULL, BrkthruInputInfo, BrkthruDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x100,
- 240, 240, 4, 3
-};
-
-
-// Kyohkoh-Toppa (Japan)
-
-static struct BurnRomInfo brkthrujRomDesc[] = {
- { "1", 0x4000, 0x09bd60ee, 1 | BRF_PRG | BRF_ESS }, // 0 M6809 #0 Code
- { "2", 0x8000, 0xf2b2cd1c, 1 | BRF_PRG | BRF_ESS }, // 1
- { "4", 0x8000, 0xb42b3359, 1 | BRF_PRG | BRF_ESS }, // 2
- { "brkthru.3", 0x8000, 0x2f2c40c2, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "brkthru.5", 0x8000, 0xc309435f, 2 | BRF_PRG | BRF_ESS }, // 4 M6809 #1 Code
-
- { "12", 0x2000, 0x3d9a7003, 3 | BRF_GRA }, // 5 Characters
-
- { "brkthru.7", 0x8000, 0x920cc56a, 4 | BRF_GRA }, // 6 Background Layer
- { "6", 0x8000, 0xcb47b395, 4 | BRF_GRA }, // 7
- { "8", 0x8000, 0x5e5a2cd7, 4 | BRF_GRA }, // 8
-
- { "brkthru.9", 0x8000, 0xf54e50a7, 5 | BRF_GRA }, // 9 Sprites
- { "brkthru.10", 0x8000, 0xfd156945, 5 | BRF_GRA }, // 10
- { "brkthru.11", 0x8000, 0xc152a99b, 5 | BRF_GRA }, // 11
-
- { "brkthru.13", 0x0100, 0xaae44269, 6 | BRF_GRA }, // 12 Color data
- { "brkthru.14", 0x0100, 0xf2d4822a, 6 | BRF_GRA }, // 13
-};
-
-STD_ROM_PICK(brkthruj)
-STD_ROM_FN(brkthruj)
-
-struct BurnDriver BurnDrvBrkthruj = {
- "brkthruj", "brkthru", NULL, NULL, "1986",
- "Kyohkoh-Toppa (Japan)\0", NULL, "Data East Corporation", "Miscellaneous",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_DATAEAST, GBF_HORSHOOT, 0,
- NULL, brkthrujRomInfo, brkthrujRomName, NULL, NULL, BrkthruInputInfo, BrkthrujDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x100,
- 240, 240, 4, 3
-};
-
-
-// Force Break (bootleg)
-
-static struct BurnRomInfo forcebrkRomDesc[] = {
- { "1", 0x4000, 0x09bd60ee, 1 | BRF_PRG | BRF_ESS }, // 0 M6809 #0 Code
- { "2", 0x8000, 0xf2b2cd1c, 1 | BRF_PRG | BRF_ESS }, // 1
- { "forcebrk4", 0x8000, 0xb4838c19, 1 | BRF_PRG | BRF_ESS }, // 2
- { "brkthru.3", 0x8000, 0x2f2c40c2, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "brkthru.5", 0x8000, 0xc309435f, 2 | BRF_PRG | BRF_ESS }, // 4 M6809 #1 Code
-
- { "12", 0x2000, 0x3d9a7003, 3 | BRF_GRA }, // 5 Characters
-
- { "brkthru.7", 0x8000, 0x920cc56a, 4 | BRF_GRA }, // 6 Background Layer
- { "forcebrk6", 0x8000, 0x08bca16a, 4 | BRF_GRA }, // 7
- { "forcebrk8", 0x8000, 0xa3a1131e, 4 | BRF_GRA }, // 8
-
- { "brkthru.9", 0x8000, 0xf54e50a7, 5 | BRF_GRA }, // 9 Sprites
- { "brkthru.10", 0x8000, 0xfd156945, 5 | BRF_GRA }, // 10
- { "brkthru.11", 0x8000, 0xc152a99b, 5 | BRF_GRA }, // 11
-
- { "brkthru.13", 0x0100, 0xaae44269, 6 | BRF_GRA }, // 12 Color data
- { "brkthru.14", 0x0100, 0xf2d4822a, 6 | BRF_GRA }, // 13
-};
-
-STD_ROM_PICK(forcebrk)
-STD_ROM_FN(forcebrk)
-
-struct BurnDriver BurnDrvForcebrk = {
- "forcebrk", "brkthru", NULL, NULL, "1986",
- "Force Break (bootleg)\0", NULL, "bootleg", "Miscellaneous",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_PREFIX_DATAEAST, GBF_HORSHOOT, 0,
- NULL, forcebrkRomInfo, forcebrkRomName, NULL, NULL, BrkthruInputInfo, BrkthruDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x100,
- 240, 240, 4, 3
-};
-
-
-// Darwin 4078 (Japan)
-
-static struct BurnRomInfo darwinRomDesc[] = {
- { "darw_04.rom", 0x4000, 0x0eabf21c, 1 | BRF_PRG | BRF_ESS }, // 0 M6809 #0 Code
- { "darw_05.rom", 0x8000, 0xe771f864, 1 | BRF_PRG | BRF_ESS }, // 1
- { "darw_07.rom", 0x8000, 0x97ac052c, 1 | BRF_PRG | BRF_ESS }, // 2
- { "darw_06.rom", 0x8000, 0x2a9fb208, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "darw_08.rom", 0x8000, 0x6b580d58, 2 | BRF_PRG | BRF_ESS }, // 4 M6809 #1 Code
-
- { "darw_09.rom", 0x2000, 0x067b4cf5, 3 | BRF_GRA }, // 5 Characters
-
- { "darw_03.rom", 0x8000, 0x57d0350d, 4 | BRF_GRA }, // 6 Background Layer
- { "darw_02.rom", 0x8000, 0x559a71ab, 4 | BRF_GRA }, // 7
- { "darw_01.rom", 0x8000, 0x15a16973, 4 | BRF_GRA }, // 8
-
- { "darw_10.rom", 0x8000, 0x487a014c, 5 | BRF_GRA }, // 9 Sprites
- { "darw_11.rom", 0x8000, 0x548ce2d1, 5 | BRF_GRA }, // 10
- { "darw_12.rom", 0x8000, 0xfaba5fef, 5 | BRF_GRA }, // 11
-
- { "df.12", 0x0100, 0x89b952ef, 6 | BRF_GRA }, // 12 Color data
- { "df.13", 0x0100, 0xd595e91d, 6 | BRF_GRA }, // 13
-};
-
-STD_ROM_PICK(darwin)
-STD_ROM_FN(darwin)
-
-static INT32 darwinInit()
-{
- darwin = 1;
- return DrvInit();
-}
-
-struct BurnDriver BurnDrvDarwin = {
- "darwin", NULL, NULL, NULL, "1986",
- "Darwin 4078 (Japan)\0", NULL, "Data East Corporation", "Miscellaneous",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL, 2, HARDWARE_PREFIX_DATAEAST, GBF_VERSHOOT, 0,
- NULL, darwinRomInfo, darwinRomName, NULL, NULL, BrkthruInputInfo, DarwinDIPInfo,
- darwinInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x100,
- 240, 240, 3, 4
-};
diff --git a/jan/src/burn/drv/dataeast/d_bwing.cpp b/jan/src/burn/drv/dataeast/d_bwing.cpp
deleted file mode 100644
index c522071cb..000000000
--- a/jan/src/burn/drv/dataeast/d_bwing.cpp
+++ /dev/null
@@ -1,994 +0,0 @@
-// FB Alpha B-Wing / Zaviga driver module
-// Based on MAME driver by Acho A. Tang and Alex W. Jackson
-
-// Note dac missing output filtering...
-
-#include "tiles_generic.h"
-#include "m6809_intf.h"
-#include "m6502_intf.h"
-#include "driver.h"
-extern "C" {
-#include "ay8910.h"
-}
-#include "dac.h"
-
-static UINT8 *AllMem;
-static UINT8 *MemEnd;
-static UINT8 *AllRam;
-static UINT8 *RamEnd;
-static UINT8 *DrvM6809ROM0;
-static UINT8 *DrvM6809ROM1;
-static UINT8 *DrvM6502ROM;
-static UINT8 *DrvGfxROM0;
-static UINT8 *DrvGfxROM1;
-static UINT8 *DrvGfxROM2;
-static UINT8 *DrvGfxRAM;
-static UINT8 *DrvVidRAM;
-static UINT8 *DrvSprRAM;
-static UINT8 *DrvPalRAM;
-static UINT8 *DrvFgRAM;
-static UINT8 *DrvBgRAM;
-static UINT8 *DrvShareRAM;
-static UINT8 *DrvM6809RAM0;
-static UINT8 *DrvM6809RAM1;
-static UINT8 *DrvM6502RAM;
-
-static UINT32 *DrvPalette;
-static UINT8 DrvRecalc;
-
-static INT16 *pAY8910Buffer[6];
-
-static UINT8 *scroll;
-
-static UINT8 soundlatch;
-static UINT8 nmimask;
-
-static UINT8 DrvJoy1[8];
-static UINT8 DrvJoy2[8];
-static UINT8 DrvJoy3[8];
-static UINT8 DrvJoy4[8];
-static UINT8 DrvDips[2];
-static UINT8 DrvInputs[4];
-static UINT8 DrvReset;
-
-static INT32 vblank;
-static INT32 screen_flipx;
-
-static struct BurnInputInfo BwingInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy3 + 0, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy3 + 2, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy1 + 2, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy1 + 3, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy1 + 1, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy1 + 0, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy1 + 4, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy1 + 5, "p1 fire 2" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy3 + 1, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy3 + 3, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvJoy2 + 2, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy2 + 3, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy2 + 1, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy2 + 0, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy2 + 4, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy2 + 5, "p2 fire 2" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service", BIT_DIGITAL, DrvJoy3 + 6, "service" },
- {"Tilt", BIT_DIGITAL, DrvJoy4 + 0, "tilt" },
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip" },
-};
-
-STDINPUTINFO(Bwing)
-
-static struct BurnDIPInfo BwingDIPList[]=
-{
- {0x13, 0xff, 0xff, 0xdf, NULL },
- {0x14, 0xff, 0xff, 0xbf, NULL },
-
- {0 , 0xfe, 0 , 4, "Coin A" },
- {0x13, 0x01, 0x03, 0x00, "2 Coins 1 Credits" },
- {0x13, 0x01, 0x03, 0x03, "1 Coin 1 Credits" },
- {0x13, 0x01, 0x03, 0x02, "1 Coin 2 Credits" },
- {0x13, 0x01, 0x03, 0x01, "1 Coin 3 Credits" },
-
- {0 , 0xfe, 0 , 4, "Coin B" },
- {0x13, 0x01, 0x0c, 0x00, "2 Coins 1 Credits" },
- {0x13, 0x01, 0x0c, 0x0c, "1 Coin 1 Credits" },
- {0x13, 0x01, 0x0c, 0x08, "1 Coin 2 Credits" },
- {0x13, 0x01, 0x0c, 0x04, "1 Coin 3 Credits" },
-
- {0 , 0xfe, 0 , 2, "Diagnostics" },
- {0x13, 0x01, 0x10, 0x10, "Off" },
- {0x13, 0x01, 0x10, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Cabinet" },
- {0x13, 0x01, 0x20, 0x00, "Upright" },
- {0x13, 0x01, 0x20, 0x20, "Cocktail" },
-
- {0 , 0xfe, 0 , 2, "Invincibility" },
- {0x13, 0x01, 0x40, 0x40, "Off" },
- {0x13, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Infinite" },
- {0x13, 0x01, 0x80, 0x80, "Off" },
- {0x13, 0x01, 0x80, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Lives" },
- {0x14, 0x01, 0x01, 0x00, "5" },
- {0x14, 0x01, 0x01, 0x01, "3" },
-
- {0 , 0xfe, 0 , 4, "Bonus Life" },
- {0x14, 0x01, 0x06, 0x00, "40000" },
- {0x14, 0x01, 0x06, 0x02, "20000 80000" },
- {0x14, 0x01, 0x06, 0x04, "20000 60000" },
- {0x14, 0x01, 0x06, 0x06, "20000 40000" },
-
- {0 , 0xfe, 0 , 2, "Enemy Crafts" },
- {0x14, 0x01, 0x08, 0x00, "Hard" },
- {0x14, 0x01, 0x08, 0x08, "Normal" },
-
- {0 , 0xfe, 0 , 2, "Enemy Missiles" },
- {0x14, 0x01, 0x10, 0x00, "Hard" },
- {0x14, 0x01, 0x10, 0x10, "Normal" },
-
- {0 , 0xfe, 0 , 2, "Freeze" },
- {0x14, 0x01, 0x20, 0x20, "Off" },
- {0x14, 0x01, 0x20, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Country" },
- {0x14, 0x01, 0x40, 0x00, "Japan/US" },
- {0x14, 0x01, 0x40, 0x40, "Japan Only" },
-
- {0 , 0xfe, 0 , 2, "Unknown" },
- {0x14, 0x01, 0x80, 0x80, "Off" },
- {0x14, 0x01, 0x80, 0x00, "On" },
-};
-
-STDDIPINFO(Bwing)
-
-static void bankswitch(INT32 data)
-{
- INT32 bank = (data >> 6) & 3;
-
- if (bank == 0)
- {
- M6809MapMemory(DrvFgRAM, 0x2000, 0x2fff, MAP_RAM);
- M6809MapMemory(DrvBgRAM, 0x3000, 0x3fff, MAP_RAM);
- }
- else
- {
- bank = (bank - 1) * 0x2000;
-
- M6809MapMemory(DrvGfxRAM + bank, 0x2000, 0x3fff, MAP_RAM);
- }
-}
-
-static void control_write(INT32 cpu, INT32 offset)
-{
- const INT32 lines[2][3] ={
- { CPU_IRQLINE_IRQ, CPU_IRQLINE_FIRQ, CPU_IRQLINE_NMI },
- { CPU_IRQLINE_FIRQ, CPU_IRQLINE_IRQ, CPU_IRQLINE_NMI }
- };
-
- switch (offset & 3)
- {
- case 0:
- M6809Close();
- M6809Open(cpu^1);
- M6809SetIRQLine(CPU_IRQLINE_IRQ, CPU_IRQSTATUS_ACK);
- M6809Close();
- M6809Open(cpu);
- return;
-
- case 1:
- case 2:
- case 3:
- M6809SetIRQLine(lines[cpu][(offset & 3)-1], CPU_IRQSTATUS_NONE);
- return;
- }
-}
-
-static void bwing_main_write(UINT16 address, UINT8 data)
-{
- if ((address & 0xff00) == 0x1a00) {
- DrvPalRAM[(address & 0xff) * 2 + 0] = data;
- DrvPalRAM[(address & 0xff) * 2 + 1] = scroll[6];
- return;
- }
-
- switch (address)
- {
- case 0x1b00:
- case 0x1b01:
- case 0x1b02:
- case 0x1b03:
- case 0x1b04:
- case 0x1b05:
- case 0x1b06:
- scroll[address & 7] = data;
- return;
-
- case 0x1b07:
- scroll[7] = data;
- bankswitch(data);
- return;
-
- case 0x1c00:
- case 0x1c01:
- case 0x1c02:
- case 0x1c03:
- control_write(0, address);
- return;
-
- case 0x1c05:
- {
- if (data == 0x80) {
- M6809Close();
- M6809Open(1);
- M6809SetIRQLine(CPU_IRQLINE_NMI, CPU_IRQSTATUS_ACK);
- M6809Close();
- M6809Open(0);
- } else {
- soundlatch = data;
- M6502SetIRQLine(DECO16_IRQ_LINE, CPU_IRQSTATUS_AUTO);
- }
- }
- return;
-
- case 0x1c06: // banksel (not used)
- case 0x1c07: // swap?
- return;
- }
-}
-
-static UINT8 bwing_main_read(UINT16 address)
-{
- if ((address & 0xff00) == 0x1a00) {
- return DrvPalRAM[(address & 0xff) * 2];
- }
-
- switch (address)
- {
- case 0x1b00:
- return DrvDips[0];
-
- case 0x1b01:
- return DrvDips[1];
-
- case 0x1b02:
- return DrvInputs[0];
-
- case 0x1b03:
- return DrvInputs[1];
-
- case 0x1b04:
- return (DrvInputs[2] & 0x7f) | (vblank ? 0x80 : 0);
- }
-
- return 0;
-}
-
-static void bwing_sub_write(UINT16 address, UINT8 )
-{
- switch (address)
- {
- case 0x1800:
- case 0x1801:
- case 0x1802:
- case 0x1803:
- control_write(1, address);
- return;
- }
-}
-
-static UINT8 bwing_sound_read_port(UINT16 port)
-{
- switch (port)
- {
- case 0x0000:
- return (vblank ? 0xff : 0);
- }
-
- return 0;
-}
-
-static void bwing_sound_write(UINT16 address, UINT8 data)
-{
- switch (address)
- {
- case 0x0200:
- DACWrite(0, data);
- return;
-
- case 0x1000:
- M6502SetIRQLine(CPU_IRQLINE_NMI, CPU_IRQSTATUS_NONE);
- return;
-
- case 0x2000:
- AY8910Write(0, 1, data);
- return;
-
- case 0x4000:
- AY8910Write(0, 0, data);
- return;
-
- case 0x6000:
- AY8910Write(1, 1, data);
- return;
-
- case 0x8000:
- AY8910Write(1, 0, data);
- return;
-
- case 0xd000:
- nmimask = data & 0x80;
- return;
- }
-}
-
-static UINT8 bwing_sound_read(UINT16 address)
-{
- switch (address)
- {
- case 0xa000:
- return soundlatch;
- }
-
- return 0;
-}
-
-static tilemap_scan( bwing_scan_cols )
-{
- return (row & 0xf) | ((col & 0xf) << 4) | ((row & 0x30) << 4) | ((col & 0x30) << 6);
-}
-
-static tilemap_callback( bglayer )
-{
- TILE_SET_INFO(2, DrvBgRAM[offs] & 0x7f, DrvBgRAM[offs] >> 7, 0);
-}
-
-static tilemap_callback( fglayer )
-{
- TILE_SET_INFO(1, DrvFgRAM[offs] & 0x7f, DrvFgRAM[offs] >> 7, 0);
-}
-
-static tilemap_callback( txlayer )
-{
- TILE_SET_INFO(0, DrvVidRAM[offs], 0, 0);
-}
-
-static INT32 DrvDACSync()
-{
- return (INT32)(float)(nBurnSoundLen * (M6502TotalCycles() / (2000000.0000 / (nBurnFPS / 100.0000))));
-}
-
-static INT32 DrvDoReset()
-{
- memset (AllRam, 0, RamEnd - AllRam);
- memset (DrvInputs, 0xff, 4);
-
- M6809Open(0);
- M6809Reset();
- M6809Close();
-
- M6809Open(1);
- M6809Reset();
- M6809Close();
-
- M6502Open(0);
- M6502Reset();
- DACReset();
- M6502Close();
-
- AY8910Reset(0);
- AY8910Reset(1);
-
- soundlatch = 0;
- nmimask = 0;
-
- return 0;
-}
-
-static INT32 MemIndex()
-{
- UINT8 *Next; Next = AllMem;
-
- DrvM6809ROM0 = Next; Next += 0x00c000;
- DrvM6809ROM1 = Next; Next += 0x006000;
- DrvM6502ROM = Next; Next += 0x002000;
-
- DrvGfxROM0 = Next; Next += 0x004000;
- DrvGfxROM1 = Next; Next += 0x020000;
- DrvGfxROM2 = Next; Next += 0x010000;
-
- DrvPalette = (UINT32*)Next; Next += 0x0041 * sizeof(UINT32);
-
- AllRam = Next;
-
- DrvFgRAM = Next; Next += 0x001000;
- DrvBgRAM = Next; Next += 0x001000;
- DrvGfxRAM = Next; Next += 0x006000;
- DrvVidRAM = Next; Next += 0x000800;
- DrvSprRAM = Next; Next += 0x000200;
- DrvPalRAM = Next; Next += 0x000200;
- DrvShareRAM = Next; Next += 0x000800;
- DrvM6809RAM0 = Next; Next += 0x000800;
- DrvM6809RAM1 = Next; Next += 0x000800;
- DrvM6502RAM = Next; Next += 0x000200;
-
- scroll = Next; Next += 0x000008;
-
- RamEnd = Next;
-
- pAY8910Buffer[0] = (INT16*)Next; Next += nBurnSoundLen * sizeof(INT16);
- pAY8910Buffer[1] = (INT16*)Next; Next += nBurnSoundLen * sizeof(INT16);
- pAY8910Buffer[2] = (INT16*)Next; Next += nBurnSoundLen * sizeof(INT16);
- pAY8910Buffer[3] = (INT16*)Next; Next += nBurnSoundLen * sizeof(INT16);
- pAY8910Buffer[4] = (INT16*)Next; Next += nBurnSoundLen * sizeof(INT16);
- pAY8910Buffer[5] = (INT16*)Next; Next += nBurnSoundLen * sizeof(INT16);
-
- MemEnd = Next;
-
- return 0;
-}
-
-static INT32 DrvGfxDecode()
-{
- INT32 Plane0[2] = { 0, 0x800*8 };
- INT32 Plane1[3] = { (0x4000*8*2), (0x4000*8*1), 0 };
- INT32 XOffs[16] = { STEP8(7,-1), STEP8(128+7, -1) };
- INT32 YOffs[16] = { STEP16(0,8) };
-
- UINT8 *tmp = (UINT8*)BurnMalloc(0xc000);
- if (tmp == NULL) {
- return 1;
- }
-
- memcpy (tmp, DrvGfxROM0, 0x1000);
-
- GfxDecode(0x0100, 2, 8, 8, Plane0, XOffs, YOffs, 0x040, tmp, DrvGfxROM0);
-
- memcpy (tmp, DrvGfxROM1, 0xc000);
-
- GfxDecode(0x0200, 3, 16, 16, Plane1, XOffs, YOffs, 0x100, tmp, DrvGfxROM1);
-
- BurnFree(tmp);
-
- return 0;
-}
-
-static void DrvSoundRomDecode()
-{
- for (INT32 i = 0; i < 0x2000; i++) { // Swap nibbles
- DrvM6502ROM[i] = (DrvM6502ROM[i] << 4) | (DrvM6502ROM[i] >> 4);
- }
-
- // Move vectors to correct position. Weird!
- DrvM6502ROM[0x1ff4] = DrvM6502ROM[0x1ffb] = DrvM6502ROM[0x1ff6];
- DrvM6502ROM[0x1ff5] = DrvM6502ROM[0x1ffa] = DrvM6502ROM[0x1ff7];
-}
-
-static INT32 DrvInit()
-{
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(DrvM6809ROM0 + 0x0000, 0, 1)) return 1;
- if (BurnLoadRom(DrvM6809ROM0 + 0x4000, 1, 1)) return 1;
- if (BurnLoadRom(DrvM6809ROM0 + 0x8000, 2, 1)) return 1;
-
- if (BurnLoadRom(DrvM6809ROM1 + 0x0000, 3, 1)) return 1;
- if (BurnLoadRom(DrvM6809ROM1 + 0x2000, 4, 1)) return 1;
- if (BurnLoadRom(DrvM6809ROM1 + 0x4000, 5, 1)) return 1;
-
- if (BurnLoadRom(DrvM6502ROM + 0x0000, 6, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x0000, 7, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM1 + 0x0000, 8, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x4000, 9, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x8000, 10, 1)) return 1;
-
- DrvSoundRomDecode();
- DrvGfxDecode();
- }
-
- M6809Init(2);
- M6809Open(0);
- M6809MapMemory(DrvShareRAM, 0x0000, 0x07ff, MAP_RAM);
- M6809MapMemory(DrvM6809RAM0, 0x0800, 0x0fff, MAP_RAM);
- M6809MapMemory(DrvVidRAM, 0x1000, 0x17ff, MAP_RAM);
- M6809MapMemory(DrvSprRAM, 0x1800, 0x19ff, MAP_RAM);
-// M6809MapMemory(DrvPalRAM, 0x1a00, 0x1aff, MAP_RAM);
- M6809MapMemory(DrvM6809ROM0, 0x4000, 0xffff, MAP_ROM);
- M6809SetWriteHandler(bwing_main_write);
- M6809SetReadHandler(bwing_main_read);
- M6809Close();
-
- M6809Open(1);
- M6809MapMemory(DrvShareRAM, 0x0000, 0x07ff, MAP_RAM);
- M6809MapMemory(DrvM6809RAM1, 0x0800, 0x0fff, MAP_RAM);
- M6809MapMemory(DrvM6809ROM1, 0xa000, 0xffff, MAP_ROM);
- M6809SetWriteHandler(bwing_sub_write);
- M6809Close();
-
- M6502Init(0, TYPE_DECO16);
- M6502Open(0);
- M6502MapMemory(DrvM6502RAM, 0x0000, 0x01ff, MAP_RAM);
- M6502MapMemory(DrvM6502ROM, 0xe000, 0xffff, MAP_ROM);
- M6502SetWriteHandler(bwing_sound_write);
- M6502SetReadHandler(bwing_sound_read);
- M6502SetReadPortHandler(bwing_sound_read_port);
- M6502Close();
-
- AY8910Init(0, 1500000, nBurnSoundRate, NULL, NULL, NULL, NULL);
- AY8910Init(1, 1500000, nBurnSoundRate, NULL, NULL, NULL, NULL);
- AY8910SetAllRoutes(0, 0.20, BURN_SND_ROUTE_BOTH);
- AY8910SetAllRoutes(1, 0.20, BURN_SND_ROUTE_BOTH);
-
- DACInit(0, 0, 1, DrvDACSync);
- DACSetRoute(0, 0.10, BURN_SND_ROUTE_BOTH);
-
- GenericTilesInit();
-
- GenericTilemapInit(0, bwing_scan_cols_map_scan, bglayer_map_callback, 16, 16, 64, 64);
- GenericTilemapInit(1, bwing_scan_cols_map_scan, fglayer_map_callback, 16, 16, 64, 64);
- GenericTilemapInit(2, scan_cols_map_scan, txlayer_map_callback, 8, 8, 32, 32);
- GenericTilemapSetGfx(0, DrvGfxROM0, 2, 8, 8, 0x04000, 0x00, 0);
- GenericTilemapSetGfx(1, DrvGfxROM2 + 0x00000, 3, 16, 16, 0x8000, 0x10, 1);
- GenericTilemapSetGfx(2, DrvGfxROM2 + 0x08000, 3, 16, 16, 0x8000, 0x30, 1);
- GenericTilemapSetOffsets(0, 0, -8);
- GenericTilemapSetOffsets(1, 0, -8);
- GenericTilemapSetOffsets(2, 0, -8);
- GenericTilemapSetTransparent(1, 0);
- GenericTilemapSetTransparent(2, 0);
-
- DrvDoReset();
-
- return 0;
-}
-
-static INT32 DrvExit()
-{
- GenericTilesExit();
-
- M6809Exit();
- M6502Exit();
-
- AY8910Exit(0);
- AY8910Exit(1);
- DACExit();
-
- BurnFree(AllMem);
-
- return 0;
-}
-
-static void DrvPaletteUpdate()
-{
- for (INT32 i = 1; i < 0x40; i++)
- {
- UINT8 r = ~DrvPalRAM[i*2] & 7;
- UINT8 g =(~DrvPalRAM[i*2] >> 4) & 7;
- UINT8 b = ~DrvPalRAM[i*2+1] & 7;
-
- r = (r << 5) + (r << 2) + (r >> 1);
- g = (g << 5) + (g << 2) + (g >> 1);
- b = (b << 5) + (b << 2) + (b >> 1);
-
- DrvPalette[i] = BurnHighCol(r, g, b, 0);
- }
-
- DrvPalette[0x40] = 0; // black (unused entry)
-}
-
-static INT32 DrvGfxRamDecode()
-{
- INT32 Plane[3] = { (0x2000*8*2), (0x2000*8*1), 0 };
- INT32 XOffs[16] = { STEP8(7,-1), STEP8(128+7, -1) };
- INT32 YOffs[16] = { STEP16(0,8) };
-
- GfxDecode(0x0100, 3, 16, 16, Plane, XOffs, YOffs, 0x100, DrvGfxRAM, DrvGfxROM2);
-
- return 0;
-}
-
-static void draw_sprites(INT32 pri)
-{
- for (INT32 i = 0; i < 0x200; i += 4)
- {
- INT32 attr = DrvSprRAM[i];
- INT32 code = DrvSprRAM[i + 1];
- INT32 sy = DrvSprRAM[i + 2];
- INT32 sx = DrvSprRAM[i + 3];
- INT32 color = (attr >> 3) & 1;
-
- if (!(attr & 1) || color != pri)
- continue;
-
- code += (attr << 3) & 0x100;
-
- sy -= (attr << 1) & 0x100;
- sx -= (attr << 2) & 0x100;
-
- INT32 flipx = attr & 0x04;
- INT32 flipy = ~attr & 0x02;
-
- if (screen_flipx)
- {
- flipx = !flipx;
- flipy = !flipy;
- sx = 240 - sx;
- sy = 240 - sy;
- }
-
- if (attr & 0x10) {
- RenderZoomedTile(pTransDraw, DrvGfxROM1, code, (color<<3)+0x20, 0, sx, sy - 8, flipx, flipy, 16, 16, 1<<16, 2<<16);
- } else {
- if (flipy) {
- if (flipx) {
- Render16x16Tile_Mask_FlipXY_Clip(pTransDraw, code, sx, sy - 8, color, 3, 0, 0x20, DrvGfxROM1);
- } else {
- Render16x16Tile_Mask_FlipY_Clip(pTransDraw, code, sx, sy - 8, color, 3, 0, 0x20, DrvGfxROM1);
- }
- } else {
- if (flipx) {
- Render16x16Tile_Mask_FlipX_Clip(pTransDraw, code, sx, sy - 8, color, 3, 0, 0x20, DrvGfxROM1);
- } else {
- Render16x16Tile_Mask_Clip(pTransDraw, code, sx, sy - 8, color, 3, 0, 0x20, DrvGfxROM1);
- }
- }
- }
- }
-}
-
-static INT32 DrvDraw()
-{
- //if (DrvRecalc) {
- DrvPaletteUpdate();
- DrvRecalc = 0;
- //}
-
- screen_flipx = scroll[7] & 0x20; // flipx = 0x20, flipy = 0
-
- INT32 xoffset = (screen_flipx) ? -8 : 8;
-
- GenericTilemapSetFlip(0, (screen_flipx ? TMAP_FLIPX : TMAP_FLIPY));
- GenericTilemapSetFlip(1, (screen_flipx ? TMAP_FLIPX : TMAP_FLIPY));
- GenericTilemapSetFlip(2, (screen_flipx ? TMAP_FLIPX : TMAP_FLIPY));
-
- if ((scroll[7] & 3) == 0) {
- DrvGfxRamDecode();
- }
-
- if ((scroll[7] & 0x01) == 0 && (nSpriteEnable & 1)) {
- GenericTilemapSetScrollX(0, (((scroll[1] << 2) & 0x300) + scroll[2] + xoffset) & 0x3ff);
- GenericTilemapSetScrollY(0, (((scroll[1] << 4) & 0x300) + scroll[3]) & 0x3ff);
- GenericTilemapDraw(0, pTransDraw, 0);
- } else {
- BurnTransferClear(); // black
- }
-
- if (nSpriteEnable & 2) {
- draw_sprites(0);
- }
-
- if ((scroll[7] & 0x02) == 0 && (nSpriteEnable & 4)) {
- GenericTilemapSetScrollX(1, (((scroll[1] << 6) & 0x300) + scroll[4] + xoffset) & 0x3ff);
- GenericTilemapSetScrollY(1, (((scroll[1] << 8) & 0x300) + scroll[5]) & 0x3ff);
- GenericTilemapDraw(1, pTransDraw, 0);
- }
-
- if (nSpriteEnable & 8) {
- draw_sprites(1);
- }
-
- if (nSpriteEnable & 0x10) {
- GenericTilemapDraw(2, pTransDraw, 0);
- }
-
- BurnTransferCopy(DrvPalette);
-
- return 0;
-}
-
-static INT32 DrvFrame()
-{
- if (DrvReset) {
- DrvDoReset();
- }
-
- M6809NewFrame();
- M6502NewFrame();
-
- {
- UINT8 previous_coin = DrvInputs[2];
- UINT8 previous_tilt = DrvInputs[3];
-
- memset (DrvInputs, 0xff, 4);
-
- for (INT32 i = 0; i < 8; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- DrvInputs[2] ^= (DrvJoy3[i] & 1) << i;
- DrvInputs[3] ^= (DrvJoy4[i] & 1) << i;
- }
-
- if ((previous_coin & 3) != (DrvInputs[2] & 0x03)) {
- M6809Open(0);
- M6809SetIRQLine(CPU_IRQLINE_NMI, ((DrvInputs[2] & 3) == 3) ? CPU_IRQSTATUS_NONE : CPU_IRQSTATUS_ACK);
- M6809Close();
- }
-
- if ((previous_tilt & 1) != (DrvInputs[3] & 0x01)) {
- M6809Open(0);
- M6809SetIRQLine(CPU_IRQLINE_FIRQ, ((DrvInputs[3] & 1) == 1) ? CPU_IRQSTATUS_NONE : CPU_IRQSTATUS_ACK);
- M6809Close();
- }
- }
-
- INT32 nInterleave = 256;
- INT32 nCyclesTotal[3] = { 2000000 / 60, 2000000 / 60, 2000000 / 60 };
- INT32 nCyclesDone[3] = { 0, 0, 0 };
- INT32 nSoundBufferPos = 0;
-
- M6502Open(0);
-
- vblank = 0;
-
- for (INT32 i = 0; i < nInterleave; i++)
- {
- M6809Open(0);
- nCyclesDone[0] += M6809Run(nCyclesTotal[0] / nInterleave);
- M6809Close();
-
- M6809Open(1);
- nCyclesDone[1] += M6809Run(nCyclesTotal[1] / nInterleave);
- M6809Close();
-
- nCyclesDone[2] += M6502Run(nCyclesTotal[2] / nInterleave);
- if ((i & 0xf)==0xf && nmimask == 0) M6502SetIRQLine(CPU_IRQLINE_NMI, CPU_IRQSTATUS_ACK);
-
- if (i == 240) vblank = 1;
-
- // Render Sound Segment
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen / nInterleave;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- AY8910Render(&pAY8910Buffer[0], pSoundBuf, nSegmentLength, 0);
- nSoundBufferPos += nSegmentLength;
- }
- }
-
- // Make sure the buffer is entirely filled.
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- if (nSegmentLength) {
- AY8910Render(&pAY8910Buffer[0], pSoundBuf, nSegmentLength, 0);
- }
- DACUpdate(pBurnSoundOut, nBurnSoundLen);
- }
-
- M6502Close();
-
- if (pBurnDraw) {
- DrvDraw();
- }
-
- return 0;
-}
-
-static INT32 DrvScan(INT32 nAction, INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin != NULL) {
- *pnMin = 0x029698;
- }
-
- if (nAction & ACB_MEMORY_RAM) {
- memset(&ba, 0, sizeof(ba));
- ba.Data = AllRam;
- ba.nLen = RamEnd-AllRam;
- ba.szName = "All Ram";
- BurnAcb(&ba);
- }
-
- if (nAction & ACB_DRIVER_DATA) {
- M6809Scan(nAction);
- M6502Scan(nAction);
-
- AY8910Scan(nAction, pnMin);
- DACScan(nAction, pnMin);
-
- SCAN_VAR(soundlatch);
- SCAN_VAR(nmimask);
- }
-
- if (nAction & ACB_WRITE) {
- M6809Open(0);
- bankswitch(scroll[7]);
- M6809Close();
- }
-
- return 0;
-}
-
-
-// B-Wings (Japan new Ver.)
-
-static struct BurnRomInfo bwingsRomDesc[] = {
- { "bw_bv-02-.10a", 0x4000, 0x6074a86b, 1 | BRF_PRG | BRF_ESS }, // 0 M6809 #0 Code
- { "bw_bv-01.7a", 0x4000, 0xb960c707, 1 | BRF_PRG | BRF_ESS }, // 1
- { "bw_bv-00-.4a", 0x4000, 0x1f83804c, 1 | BRF_PRG | BRF_ESS }, // 2
-
- { "bw_bv-06-.10d", 0x2000, 0xeca00fcb, 2 | BRF_PRG | BRF_ESS }, // 3 M6809 #1 Code
- { "bw_bv-05-.9d", 0x2000, 0x1e393300, 2 | BRF_PRG | BRF_ESS }, // 4
- { "bw_bv-04-.7d", 0x2000, 0x6548c5bb, 2 | BRF_PRG | BRF_ESS }, // 5
-
- { "bw_bv-03.13a", 0x2000, 0xe8ac9379, 3 | BRF_PRG | BRF_ESS }, // 6 M6502 Code
-
- { "bw_bv-10.5c", 0x1000, 0xedca6901, 4 | BRF_GRA }, // 7 Characters
-
- { "bw_bv-07.1l", 0x4000, 0x3d5ab2be, 5 | BRF_GRA }, // 8 Sprites
- { "bw_bv-08.1k", 0x4000, 0x7a585f1e, 5 | BRF_GRA }, // 9
- { "bw_bv-09.1h", 0x4000, 0xa14c0b57, 5 | BRF_GRA }, // 10
-};
-
-STD_ROM_PICK(bwings)
-STD_ROM_FN(bwings)
-
-struct BurnDriver BurnDrvBwings = {
- "bwings", NULL, NULL, NULL, "1984",
- "B-Wings (Japan new Ver.)\0", NULL, "Data East Corporation", "Miscellaneous",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED, 2, HARDWARE_PREFIX_DATAEAST, GBF_VERSHOOT, 0,
- NULL, bwingsRomInfo, bwingsRomName, NULL, NULL, BwingInputInfo, BwingDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x40,
- 240, 256, 3, 4
-};
-
-
-// B-Wings (Japan old Ver.)
-
-static struct BurnRomInfo bwingsoRomDesc[] = {
- { "bw_bv-02.10a", 0x4000, 0x5ce74ab5, 1 | BRF_PRG | BRF_ESS }, // 0 M6809 #0 Code
- { "bw_bv-01.7a", 0x4000, 0xb960c707, 1 | BRF_PRG | BRF_ESS }, // 1
- { "bw_bv-00.4a", 0x4000, 0x926bef63, 1 | BRF_PRG | BRF_ESS }, // 2
-
- { "bw_bv-06.10d", 0x2000, 0x91a21a4c, 2 | BRF_PRG | BRF_ESS }, // 3 M6809 #1 Code
- { "bw_bv-05.9d", 0x2000, 0xf283f39a, 2 | BRF_PRG | BRF_ESS }, // 4
- { "bw_bv-04.7d", 0x2000, 0x29ae75b6, 2 | BRF_PRG | BRF_ESS }, // 5
-
- { "bw_bv-03.13a", 0x2000, 0xe8ac9379, 3 | BRF_PRG | BRF_ESS }, // 6 M6502 Code
-
- { "bw_bv-10.5c", 0x1000, 0xedca6901, 4 | BRF_GRA }, // 7 Characters
-
- { "bw_bv-07.1l", 0x4000, 0x3d5ab2be, 5 | BRF_GRA }, // 8 Sprites
- { "bw_bv-08.1k", 0x4000, 0x7a585f1e, 5 | BRF_GRA }, // 9
- { "bw_bv-09.1h", 0x4000, 0xa14c0b57, 5 | BRF_GRA }, // 10
-};
-
-STD_ROM_PICK(bwingso)
-STD_ROM_FN(bwingso)
-
-struct BurnDriver BurnDrvBwingso = {
- "bwingso", "bwings", NULL, NULL, "1984",
- "B-Wings (Japan old Ver.)\0", NULL, "Data East Corporation", "Miscellaneous",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED, 2, HARDWARE_PREFIX_DATAEAST, GBF_VERSHOOT, 0,
- NULL, bwingsoRomInfo, bwingsoRomName, NULL, NULL, BwingInputInfo, BwingDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x40,
- 240, 256, 3, 4
-};
-
-
-// B-Wings (Alt Ver.?)
-
-static struct BurnRomInfo bwingsaRomDesc[] = {
- { "bw_bv-02.10a", 0x4000, 0x5ce74ab5, 1 | BRF_PRG | BRF_ESS }, // 0 M6809 #0 Code
- { "bv02.bin", 0x2000, 0x2f84654e, 1 | BRF_PRG | BRF_ESS }, // 1
- { "bw_bv-01.7a", 0x4000, 0xb960c707, 1 | BRF_PRG | BRF_ESS }, // 2
- { "bv00.bin", 0x4000, 0x0bbc1222, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "bw_bv-06.10d", 0x2000, 0x91a21a4c, 2 | BRF_PRG | BRF_ESS }, // 4 M6809 #1 Code
- { "bw_bv-05.9d", 0x2000, 0xf283f39a, 2 | BRF_PRG | BRF_ESS }, // 5
- { "bw_bv-04.7d", 0x2000, 0x29ae75b6, 2 | BRF_PRG | BRF_ESS }, // 6
-
- { "bw_bv-03.13a", 0x2000, 0xe8ac9379, 3 | BRF_PRG | BRF_ESS }, // 7 M6502 Code
-
- { "bw_bv-10.5c", 0x1000, 0xedca6901, 4 | BRF_GRA }, // 8 Characters
-
- { "bw_bv-07.1l", 0x4000, 0x3d5ab2be, 5 | BRF_GRA }, // 9 Sprites
- { "bw_bv-08.1k", 0x4000, 0x7a585f1e, 5 | BRF_GRA }, // 10
- { "bw_bv-09.1h", 0x4000, 0xa14c0b57, 5 | BRF_GRA }, // 11
-};
-
-STD_ROM_PICK(bwingsa)
-STD_ROM_FN(bwingsa)
-
-struct BurnDriver BurnDrvBwingsa = {
- "bwingsa", "bwings", NULL, NULL, "1984",
- "B-Wings (Alt Ver.?)\0", NULL, "Data East Corporation", "Miscellaneous",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED, 2, HARDWARE_PREFIX_DATAEAST, GBF_VERSHOOT, 0,
- NULL, bwingsaRomInfo, bwingsaRomName, NULL, NULL, BwingInputInfo, BwingDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x40,
- 240, 256, 3, 4
-};
-
-
-// Zaviga
-
-static struct BurnRomInfo zavigaRomDesc[] = {
- { "as04.10a", 0x4000, 0xb79f5da2, 1 | BRF_PRG | BRF_ESS }, // 0 M6809 #0 Code
- { "as02.7a", 0x4000, 0x6addd16a, 1 | BRF_PRG | BRF_ESS }, // 1
- { "as00.4a", 0x4000, 0xc6ae4af0, 1 | BRF_PRG | BRF_ESS }, // 2
-
- { "as08.10d", 0x2000, 0xb6187b3a, 2 | BRF_PRG | BRF_ESS }, // 3 M6809 #1 Code
- { "as07.9d", 0x2000, 0xdc1170e3, 2 | BRF_PRG | BRF_ESS }, // 4
- { "as06.7d", 0x2000, 0xba888f84, 2 | BRF_PRG | BRF_ESS }, // 5
-
- { "as05.13a", 0x2000, 0xafe9b0ac, 3 | BRF_PRG | BRF_ESS }, // 6 M6502 Code
-
- { "as14.5c", 0x1000, 0x62132c1d, 4 | BRF_GRA }, // 7 Characters
-
- { "as11.1l", 0x4000, 0xaa84af24, 5 | BRF_GRA }, // 8 Sprites
- { "as12.1k", 0x4000, 0x84af9041, 5 | BRF_GRA }, // 9
- { "as13.1h", 0x4000, 0x15d0922b, 5 | BRF_GRA }, // 10
-};
-
-STD_ROM_PICK(zaviga)
-STD_ROM_FN(zaviga)
-
-struct BurnDriver BurnDrvZaviga = {
- "zaviga", NULL, NULL, NULL, "1984",
- "Zaviga\0", NULL, "Data East Corporation", "Miscellaneous",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED, 2, HARDWARE_PREFIX_DATAEAST, GBF_VERSHOOT, 0,
- NULL, zavigaRomInfo, zavigaRomName, NULL, NULL, BwingInputInfo, BwingDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x40,
- 240, 256, 3, 4
-};
-
-
-// Zaviga (Japan)
-
-static struct BurnRomInfo zavigajRomDesc[] = {
- { "as04.10a", 0x4000, 0xb79f5da2, 1 | BRF_PRG | BRF_ESS }, // 0 M6809 #0 Code
- { "as02.7a", 0x4000, 0x6addd16a, 1 | BRF_PRG | BRF_ESS }, // 1
- { "as00.4a", 0x4000, 0xc6ae4af0, 1 | BRF_PRG | BRF_ESS }, // 2
-
- { "as08.10d", 0x2000, 0xb6187b3a, 2 | BRF_PRG | BRF_ESS }, // 3 M6809 #1 Code
- { "as07.9d", 0x2000, 0xdc1170e3, 2 | BRF_PRG | BRF_ESS }, // 4
- { "as06-.7d", 0x2000, 0xb02d270c, 2 | BRF_PRG | BRF_ESS }, // 5
-
- { "as05.13a", 0x2000, 0xafe9b0ac, 3 | BRF_PRG | BRF_ESS }, // 6 M6502 Code
-
- { "as14.5c", 0x1000, 0x62132c1d, 4 | BRF_GRA }, // 7 Characters
-
- { "as11.1l", 0x4000, 0xaa84af24, 5 | BRF_GRA }, // 8 Sprites
- { "as12.1k", 0x4000, 0x84af9041, 5 | BRF_GRA }, // 9
- { "as13.1h", 0x4000, 0x15d0922b, 5 | BRF_GRA }, // 10
-};
-
-STD_ROM_PICK(zavigaj)
-STD_ROM_FN(zavigaj)
-
-struct BurnDriver BurnDrvZavigaj = {
- "zavigaj", "zaviga", NULL, NULL, "1984",
- "Zaviga (Japan)\0", NULL, "Data East Corporation", "Miscellaneous",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED, 2, HARDWARE_PREFIX_DATAEAST, GBF_VERSHOOT, 0,
- NULL, zavigajRomInfo, zavigajRomName, NULL, NULL, BwingInputInfo, BwingDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x40,
- 240, 256, 3, 4
-};
diff --git a/jan/src/burn/drv/dataeast/d_cbuster.cpp b/jan/src/burn/drv/dataeast/d_cbuster.cpp
deleted file mode 100644
index cbabcf816..000000000
--- a/jan/src/burn/drv/dataeast/d_cbuster.cpp
+++ /dev/null
@@ -1,907 +0,0 @@
-// FB Alpha Crude Buster / Two Crude drive module
-// Based on MAME driver by by Bryan McPhail
-
-#include "tiles_generic.h"
-#include "m68000_intf.h"
-#include "h6280_intf.h"
-#include "bitswap.h"
-#include "deco16ic.h"
-#include "msm6295.h"
-#include "timer.h"
-#include "burn_ym2203.h"
-
-static UINT8 *AllMem;
-static UINT8 *MemEnd;
-static UINT8 *AllRam;
-static UINT8 *RamEnd;
-static UINT8 *Drv68KROM;
-static UINT8 *DrvHucROM;
-static UINT8 *DrvGfxROM0;
-static UINT8 *DrvGfxROM1;
-static UINT8 *DrvGfxROM2;
-static UINT8 *DrvGfxROM3;
-static UINT8 *Drv68KRAM;
-static UINT8 *DrvHucRAM;
-static UINT8 *DrvPalRAM0;
-static UINT8 *DrvPalRAM1;
-static UINT8 *DrvSprRAM;
-static UINT8 *DrvSprBuf;
-
-static UINT32 *DrvPalette;
-static UINT8 DrvRecalc;
-
-static INT16 *SoundBuffer;
-
-static UINT8 *flipscreen;
-
-static UINT8 DrvJoy1[16];
-static UINT8 DrvJoy2[16];
-static UINT8 DrvDips[2];
-static UINT8 DrvReset;
-static UINT16 DrvInputs[2];
-
-static INT32 prot_data = 0;
-
-static struct BurnInputInfo CbusterInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy2 + 0, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 7, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy1 + 0, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy1 + 1, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy1 + 2, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy1 + 3, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy1 + 4, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy1 + 5, "p1 fire 2" },
- {"P1 Button 3", BIT_DIGITAL, DrvJoy1 + 6, "p1 fire 3" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy2 + 1, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy1 + 15, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvJoy1 + 8, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy1 + 9, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy1 + 10, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy1 + 11, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy1 + 12, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy1 + 13, "p2 fire 2" },
- {"P2 Button 3", BIT_DIGITAL, DrvJoy1 + 14, "p2 fire 3" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip" },
-};
-
-STDINPUTINFO(Cbuster)
-
-static struct BurnDIPInfo CbusterDIPList[]=
-{
- {0x13, 0xff, 0xff, 0xff, NULL },
- {0x14, 0xff, 0xff, 0x7f, NULL },
-
- {0 , 0xfe, 0 , 8, "Coin A" },
- {0x13, 0x01, 0x07, 0x00, "3 Coins 1 Credits" },
- {0x13, 0x01, 0x07, 0x01, "2 Coins 1 Credits" },
- {0x13, 0x01, 0x07, 0x07, "1 Coin 1 Credits" },
- {0x13, 0x01, 0x07, 0x06, "1 Coin 2 Credits" },
- {0x13, 0x01, 0x07, 0x05, "1 Coin 3 Credits" },
- {0x13, 0x01, 0x07, 0x04, "1 Coin 4 Credits" },
- {0x13, 0x01, 0x07, 0x03, "1 Coin 5 Credits" },
- {0x13, 0x01, 0x07, 0x02, "1 Coin 6 Credits" },
-
- {0 , 0xfe, 0 , 8, "Coin B" },
- {0x13, 0x01, 0x38, 0x00, "3 Coins 1 Credits" },
- {0x13, 0x01, 0x38, 0x08, "2 Coins 1 Credits" },
- {0x13, 0x01, 0x38, 0x38, "1 Coin 1 Credits" },
- {0x13, 0x01, 0x38, 0x30, "1 Coin 2 Credits" },
- {0x13, 0x01, 0x38, 0x28, "1 Coin 3 Credits" },
- {0x13, 0x01, 0x38, 0x20, "1 Coin 4 Credits" },
- {0x13, 0x01, 0x38, 0x18, "1 Coin 5 Credits" },
- {0x13, 0x01, 0x38, 0x10, "1 Coin 6 Credits" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x13, 0x01, 0x40, 0x40, "Off" },
- {0x13, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x14, 0x01, 0x03, 0x01, "1" },
- {0x14, 0x01, 0x03, 0x00, "2" },
- {0x14, 0x01, 0x03, 0x03, "3" },
- {0x14, 0x01, 0x03, 0x02, "4" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x14, 0x01, 0x0c, 0x0c, "Normal" },
- {0x14, 0x01, 0x0c, 0x08, "Easy" },
- {0x14, 0x01, 0x0c, 0x04, "Hard" },
- {0x14, 0x01, 0x0c, 0x00, "Hardest" },
-
- {0 , 0xfe, 0 , 2, "Allow Continue" },
- {0x14, 0x01, 0x40, 0x00, "No" },
- {0x14, 0x01, 0x40, 0x40, "Yes" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x14, 0x01, 0x80, 0x80, "Off" },
- {0x14, 0x01, 0x80, 0x00, "On" },
-};
-
-STDDIPINFO(Cbuster)
-
-void __fastcall cbuster_main_write_word(UINT32 address, UINT16 data)
-{
- deco16_write_control_word(0, address, 0xb5000, data)
- deco16_write_control_word(1, address, 0xb6000, data)
-
- switch (address)
- {
- case 0xbc000:
- case 0xbc001:
- memcpy (DrvSprBuf, DrvSprRAM, 0x800);
- return;
-
- case 0xbc002:
- deco16_soundlatch = data & 0xff;
- h6280SetIRQLine(0, CPU_IRQSTATUS_ACK);
- return;
- }
-}
-
-void __fastcall cbuster_main_write_byte(UINT32 address, UINT8 data)
-{
- switch (address)
- {
- case 0xbc000:
- case 0xbc001:
- memcpy (DrvSprBuf, DrvSprRAM, 0x800);
- return;
-
- case 0xbc003:
- deco16_soundlatch = data;
- h6280SetIRQLine(0, CPU_IRQSTATUS_ACK);
- return;
-
- case 0xbc004:
- if (data == 0x9a) prot_data = 0;
- if (data == 0x02) prot_data = 0x63 << 8;
- if (data == 0x00) { prot_data = 0x0e; deco16_priority = 0; }
- return;
-
- case 0xbc005:
- if (data == 0xaa) prot_data = 0x74;
- if (data == 0x9a) prot_data = 0x0e;
- if (data == 0x55) prot_data = 0x1e;
- if (data == 0x0e) { prot_data = 0x0e; deco16_priority = 0; }
- if (data == 0x00) { prot_data = 0x0e; deco16_priority = 0; }
- if (data == 0xf1) { prot_data = 0x36; deco16_priority = 1; }
- if (data == 0x80) { prot_data = 0x2e; deco16_priority = 1; }
- if (data == 0x40) { prot_data = 0x1e; deco16_priority = 1; }
- if (data == 0xc0) { prot_data = 0x3e; deco16_priority = 0; }
- if (data == 0xff) { prot_data = 0x76; deco16_priority = 1; }
- return;
- }
-}
-
-UINT16 __fastcall cbuster_main_read_word(UINT32 address)
-{
- switch (address)
- {
- case 0xbc000:
- case 0xbc001:
- return DrvInputs[0];
-
- case 0xbc002:
- case 0xbc003:
- return (DrvDips[1] << 8) | (DrvDips[0] << 0);
-
- case 0xbc004:
- bprintf (0, _T("%5.5x, rw\n"), address);
- return prot_data;
-
- case 0xbc006:
- case 0xbc007:
- return (DrvInputs[1] & 0xf7) | (deco16_vblank & 0x08);
- }
-
- return 0;
-}
-
-UINT8 __fastcall cbuster_main_read_byte(UINT32 address)
-{
- switch (address)
- {
- case 0xbc000:
- return DrvInputs[0] >> 8;
-
- case 0xbc001:
- return DrvInputs[0];
-
- case 0xbc002:
- return DrvDips[1];
-
- case 0xbc003:
- return DrvDips[0];
-
- case 0xbc004:
- bprintf (0, _T("%5.5x, rb\n"), address);
- return prot_data >> 8;
- case 0xbc005:
- bprintf (0, _T("%5.5x, rb\n"), address);
- return prot_data;
-
- case 0xbc006:
- case 0xbc007:
- return (DrvInputs[1] & 0xf7) | (deco16_vblank & 0x08);
- }
-
- return 0;
-}
-
-static INT32 cbuster_bank_callback(const INT32 bank)
-{
- return ((bank >> 4) & 0x7) * 0x1000;
-}
-
-static INT32 DrvDoReset()
-{
- memset (AllRam, 0, RamEnd - AllRam);
-
- SekOpen(0);
- SekReset();
- SekClose();
-
- deco16SoundReset();
-
- deco16Reset();
-
- return 0;
-}
-
-static INT32 DrvGfxDecode(UINT8 *gfx, INT32 len, INT32 type)
-{
- INT32 Plane[4] = { 24,16,8,0 };
- INT32 XOffs[16] = { 512,513,514,515,516,517,518,519, 0, 1, 2, 3, 4, 5, 6, 7 };
- INT32 YOffs[16] = { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32, 8*32, 9*32,10*32,11*32,12*32,13*32,14*32,15*32};
-
- UINT8 *tmp = (UINT8*)BurnMalloc(len);
- if (tmp == NULL) {
- return 1;
- }
-
- memcpy (tmp, gfx, len);
-
- if (type == 1) {
- GfxDecode((len * 2) / 0x040, 4, 8, 8, Plane, XOffs + 8, YOffs, 0x100, tmp, gfx);
- } else {
- GfxDecode((len * 2) / 0x100, 4, 16, 16, Plane, XOffs + 0, YOffs, 0x400, tmp, gfx);
- }
-
- BurnFree (tmp);
-
- return 0;
-}
-
-static INT32 MemIndex()
-{
- UINT8 *Next; Next = AllMem;
-
- Drv68KROM = Next; Next += 0x080000;
- DrvHucROM = Next; Next += 0x010000;
-
- DrvGfxROM0 = Next; Next += 0x200000;
- DrvGfxROM1 = Next; Next += 0x200000;
- DrvGfxROM2 = Next; Next += 0x100000;
- DrvGfxROM3 = Next; Next += 0x400000;
-
- MSM6295ROM = Next; Next += 0x140000;
-
- DrvPalette = (UINT32*)Next; Next += 0x0800 * sizeof(UINT32);
-
- AllRam = Next;
-
- Drv68KRAM = Next; Next += 0x004000;
- DrvHucRAM = Next; Next += 0x002000;
- DrvSprRAM = Next; Next += 0x000800;
- DrvSprBuf = Next; Next += 0x000800;
- DrvPalRAM0 = Next; Next += 0x001000;
- DrvPalRAM1 = Next; Next += 0x001000;
-
- flipscreen = Next; Next += 0x000001;
-
- RamEnd = Next;
-
- SoundBuffer = (INT16*)Next; Next += nBurnSoundLen * 2 * sizeof(INT16);
-
- MemEnd = Next;
-
- return 0;
-}
-
-static void DrvROMRearrange()
-{
- UINT8 *RAM = Drv68KROM;
- UINT8 *PTR;
-
- for (INT32 i = 0; i < 0x80000; i += 2)
- {
- INT32 h = i + 1, l = i + 0;
- RAM[h] = BITSWAP08(RAM[h], 4, 6, 7, 5, 3, 2, 1, 0);
- RAM[l] = BITSWAP08(RAM[l], 7, 1, 5, 4, 6, 2, 3, 0);
-
-#if 0
- RAM[h] = (RAM[h] & 0xcf) | ((RAM[h] & 0x10) << 1) | ((RAM[h] & 0x20) >> 1);
- RAM[h] = (RAM[h] & 0x5f) | ((RAM[h] & 0x20) << 2) | ((RAM[h] & 0x80) >> 2);
-
- RAM[l] = (RAM[l] & 0xbd) | ((RAM[l] & 0x2) << 5) | ((RAM[l] & 0x40) >> 5);
- RAM[l] = (RAM[l] & 0xf5) | ((RAM[l] & 0x2) << 2) | ((RAM[l] & 0x8) >> 2);
-#endif
- }
-
- RAM = DrvGfxROM3 + 0x080000;
- PTR = DrvGfxROM3 + 0x140000;
- for (INT32 i = 0; i < 0x20000; i += 64)
- {
- for (INT32 j = 0; j < 16; j++)
- {
- RAM[i + 0x00000 + j * 2] = PTR[i / 2 + 0x00000 + j];
- RAM[i + 0x00020 + j * 2] = PTR[i / 2 + 0x00010 + j];
- RAM[i + 0x00001 + j * 2] = PTR[i / 2 + 0x10000 + j];
- RAM[i + 0x00021 + j * 2] = PTR[i / 2 + 0x10010 + j];
- RAM[i + 0xa0000 + j * 2] = PTR[i / 2 + 0x20000 + j];
- RAM[i + 0xa0020 + j * 2] = PTR[i / 2 + 0x20010 + j];
- RAM[i + 0xa0001 + j * 2] = PTR[i / 2 + 0x30000 + j];
- RAM[i + 0xa0021 + j * 2] = PTR[i / 2 + 0x30010 + j];
- }
- }
-}
-
-static INT32 DrvInit()
-{
- BurnSetRefreshRate(58.00);
-
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(Drv68KROM + 0x000001, 0, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x000000, 1, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x040001, 2, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x040000, 3, 2)) return 1;
-
- if (BurnLoadRom(DrvHucROM + 0x000000, 4, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM1 + 0x000000, 5, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x080000, 6, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x080001, 7, 2)) return 1;
-
- if (BurnLoadRom(DrvGfxROM2 + 0x000000, 8, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM3 + 0x000000, 9, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM3 + 0x0a0000, 10, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM3 + 0x140000, 11, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM3 + 0x150000, 12, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM3 + 0x160000, 13, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM3 + 0x170000, 14, 1)) return 1;
-
- if (BurnLoadRom(MSM6295ROM + 0x000000, 15, 1)) return 1;
-
- if (BurnLoadRom(MSM6295ROM + 0x100000, 16, 1)) return 1;
-
- DrvROMRearrange();
-
- memcpy (DrvGfxROM0, DrvGfxROM1, 0x100000);
-
- DrvGfxDecode(DrvGfxROM0, 0x100000, 1);
- DrvGfxDecode(DrvGfxROM1, 0x100000, 0);
- DrvGfxDecode(DrvGfxROM2, 0x080000, 0);
-
- deco16_tile_decode(DrvGfxROM3, DrvGfxROM3, 0x0a0000 * 2, 0);
- }
-
- deco16Init(0, 0, 1);
- deco16_set_global_offsets(0, 8);
- deco16_set_graphics(DrvGfxROM0, 0x200000, DrvGfxROM1, 0x200000, DrvGfxROM2, 0x100000);
- deco16_set_bank_callback(0, cbuster_bank_callback);
- deco16_set_bank_callback(1, cbuster_bank_callback);
- deco16_set_bank_callback(2, cbuster_bank_callback);
- deco16_set_bank_callback(3, cbuster_bank_callback);
- deco16_set_color_base(0, 0x000);
- deco16_set_color_base(1, 0x200);
- deco16_set_color_base(2, 0x300);
- deco16_set_color_base(3, 0x400);
-
- SekInit(0, 0x68000);
- SekOpen(0);
- SekMapMemory(Drv68KROM, 0x000000, 0x07ffff, MAP_ROM);
- SekMapMemory(Drv68KRAM, 0x080000, 0x083fff, MAP_RAM);
- SekMapMemory(deco16_pf_ram[0], 0x0a0000, 0x0a1fff, MAP_RAM);
- SekMapMemory(deco16_pf_ram[1], 0x0a2000, 0x0a2fff, MAP_RAM);
- SekMapMemory(deco16_pf_rowscroll[0], 0x0a4000, 0x0a47ff, MAP_RAM);
- SekMapMemory(deco16_pf_rowscroll[1], 0x0a6000, 0x0a67ff, MAP_RAM);
- SekMapMemory(deco16_pf_ram[2], 0x0a8000, 0x0a8fff, MAP_RAM);
- SekMapMemory(deco16_pf_ram[3], 0x0aa000, 0x0abfff, MAP_RAM);
- SekMapMemory(deco16_pf_rowscroll[2], 0x0ac000, 0x0ac7ff, MAP_RAM);
- SekMapMemory(deco16_pf_rowscroll[3], 0x0ae000, 0x0ae7ff, MAP_RAM);
- SekMapMemory(DrvSprRAM, 0x0b0000, 0x0b07ff, MAP_RAM);
- SekMapMemory(DrvPalRAM0, 0x0b8000, 0x0b8fff, MAP_RAM);
- SekMapMemory(DrvPalRAM1, 0x0b9000, 0x0b9fff, MAP_RAM);
- SekSetWriteWordHandler(0, cbuster_main_write_word);
- SekSetWriteByteHandler(0, cbuster_main_write_byte);
- SekSetReadWordHandler(0, cbuster_main_read_word);
- SekSetReadByteHandler(0, cbuster_main_read_byte);
- SekClose();
-
- deco16SoundInit(DrvHucROM, DrvHucRAM, 8055000, 1, NULL, 0.45, 1006875, 0.75, 2013750, 0.60);
- BurnYM2203SetAllRoutes(0, 0.60, BURN_SND_ROUTE_BOTH);
-
- deco16_music_tempofix = 1;
-
- GenericTilesInit();
-
- DrvDoReset();
-
- return 0;
-}
-
-static INT32 DrvExit()
-{
- GenericTilesExit();
- deco16Exit();
-
- SekExit();
- deco16SoundExit();
-
- BurnFree (AllMem);
-
- return 0;
-}
-
-static void DrvPaletteRecalc()
-{
- UINT16 *p0 = (UINT16*)DrvPalRAM0;
- UINT16 *p1 = (UINT16*)DrvPalRAM1;
-
- for (INT32 i = 0; i < BurnDrvGetPaletteEntries(); i++) {
- INT32 r = ((BURN_ENDIAN_SWAP_INT16(p0[i]) & 0xff) * 175) / 100; //Seb
- INT32 g = ((BURN_ENDIAN_SWAP_INT16(p0[i]) >> 8 ) * 175) / 100; //Seb
- INT32 b = ((BURN_ENDIAN_SWAP_INT16(p1[i]) & 0xff) * 175) / 100; //Seb
-
- DrvPalette[i] = BurnHighCol(r, g, b, 0);
- }
-}
-
-static void draw_sprites(INT32 pri)
-{
- UINT16 *buffered_spriteram = (UINT16*)DrvSprBuf;
-
- for (INT32 offs = 0; offs < 0x400; offs += 4)
- {
- INT32 x, y, sprite, colour, multi, fx, fy, inc, flash, mult;
-
- sprite = BURN_ENDIAN_SWAP_INT16 (buffered_spriteram[offs + 1]) & 0x7fff; //Seb
- if (!sprite)
- continue;
-
- y = BURN_ENDIAN_SWAP_INT16 (buffered_spriteram[offs]); //Seb
- x = BURN_ENDIAN_SWAP_INT16 (buffered_spriteram[offs + 2]); //Seb
-
- if ((y & 0x8000) && pri == 1)
- continue;
- if (!(y & 0x8000) && pri == 0)
- continue;
-
- colour = (x >> 9) & 0xf;
- if (x & 0x2000)
- colour += 64;
- colour += 0x10;
-
- flash = y & 0x1000;
- if (flash && (nCurrentFrame & 1))
- continue;
-
- fx = y & 0x2000;
- fy = y & 0x4000;
- multi = (1 << ((y & 0x0600) >> 9)) - 1;
-
- x = x & 0x01ff;
- y = y & 0x01ff;
- if (x >= 256) x -= 512;
- if (y >= 256) y -= 512;
- x = 240 - x;
- y = 240 - y;
-
- if (x > 256) continue;
-
- sprite &= ~multi;
- if (fy)
- inc = -1;
- else
- {
- sprite += multi;
- inc = 1;
- }
-
- if (*flipscreen)
- {
- y = 240 - y;
- x = 240 - x;
- if (fx) fx = 0; else fx = 1;
- if (fy) fy = 0; else fy = 1;
- mult = 16;
- }
- else mult = -16;
-
- while (multi >= 0)
- {
- INT32 sy = (y + mult * multi) - 8;
- INT32 c = sprite - multi * inc;
-
- if (fy) {
- if (fx) {
- Render16x16Tile_Mask_FlipXY_Clip(pTransDraw, c, x, sy, colour, 4, 0, 0, DrvGfxROM3);
- } else {
- Render16x16Tile_Mask_FlipY_Clip(pTransDraw, c, x, sy, colour, 4, 0, 0, DrvGfxROM3);
- }
- } else {
- if (fx) {
- Render16x16Tile_Mask_FlipX_Clip(pTransDraw, c, x, sy, colour, 4, 0, 0, DrvGfxROM3);
- } else {
- Render16x16Tile_Mask_Clip(pTransDraw, c, x, sy, colour, 4, 0, 0, DrvGfxROM3);
- }
- }
-
- multi--;
- }
- }
-}
-
-static INT32 DrvDraw()
-{
-// if (DrvRecalc) {
- DrvPaletteRecalc();
- DrvRecalc = 0;
-// }
-
- deco16_pf12_update();
- deco16_pf34_update();
-
- for (INT32 i = 0; i < nScreenWidth * nScreenHeight; i++) {
- pTransDraw[i] = 0x100;
- }
-
- if (nBurnLayer & 1) deco16_draw_layer(3, pTransDraw, DECO16_LAYER_OPAQUE);
-
- draw_sprites(0);
-
- if (deco16_priority) {
- if (nBurnLayer & 2) deco16_draw_layer(1, pTransDraw, 0);
- if (nBurnLayer & 4) deco16_draw_layer(2, pTransDraw, 0);
- } else {
- if (nBurnLayer & 2) deco16_draw_layer(2, pTransDraw, 0);
- if (nBurnLayer & 4) deco16_draw_layer(1, pTransDraw, 0);
- }
-
- draw_sprites(1);
-
- if (nBurnLayer & 8) deco16_draw_layer(0, pTransDraw, 0);
-
- BurnTransferCopy(DrvPalette);
-
- return 0;
-}
-
-static INT32 DrvFrame()
-{
- if (DrvReset) {
- DrvDoReset();
- }
-
- {
- memset (DrvInputs, 0xff, 2 * sizeof(INT16));
- for (INT32 i = 0; i < 16; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- }
- }
-
- INT32 nInterleave = 232;
- INT32 nSoundBufferPos = 0;
- INT32 nCyclesTotal[2] = { 12000000 / 58, 8055000 / 58 };
- INT32 nCyclesDone[2] = { 0, 0 };
-
- h6280NewFrame();
-
- SekOpen(0);
- h6280Open(0);
-
- deco16_vblank = 0;
-
- for (INT32 i = 0; i < nInterleave; i++)
- {
- nCyclesDone[0] += SekRun(nCyclesTotal[0] / nInterleave);
- BurnTimerUpdate((i + 1) * nCyclesTotal[1] / nInterleave);
-
-
- if (i == 206) deco16_vblank = 0x08;
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen / nInterleave;
- INT16* pSoundBuf = SoundBuffer + (nSoundBufferPos << 1);
- deco16SoundUpdate(pSoundBuf, nSegmentLength);
- nSoundBufferPos += nSegmentLength;
- }
- }
-
- SekSetIRQLine(4, CPU_IRQSTATUS_AUTO);
- BurnTimerEndFrame(nCyclesTotal[1]);
-
- if (pBurnSoundOut) {
- BurnYM2203Update(pBurnSoundOut, nBurnSoundLen);
-
- INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
- INT16* pSoundBuf = SoundBuffer + (nSoundBufferPos << 1);
-
- if (nSegmentLength) {
- deco16SoundUpdate(pSoundBuf, nSegmentLength);
- }
-
- for (INT32 i = 0; i < nBurnSoundLen; i++) {
- pBurnSoundOut[(i << 1) + 0] = BURN_SND_CLIP(pBurnSoundOut[(i << 1) + 0] + SoundBuffer[(i << 1) + 0]);
- pBurnSoundOut[(i << 1) + 1] = BURN_SND_CLIP(pBurnSoundOut[(i << 1) + 1] + SoundBuffer[(i << 1) + 1]);
- }
- }
-
- h6280Close();
- SekClose();
-
- if (pBurnDraw) {
- DrvDraw();
- }
-
- return 0;
-}
-
-static INT32 DrvScan(INT32 nAction, INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin != NULL) {
- *pnMin = 0x029722;
- }
-
- if (nAction & ACB_MEMORY_RAM) {
- memset(&ba, 0, sizeof(ba));
- ba.Data = AllRam;
- ba.nLen = RamEnd-AllRam;
- ba.szName = "All Ram";
- BurnAcb(&ba);
- }
-
- if (nAction & ACB_DRIVER_DATA) {
- SekScan(nAction);
-
- deco16SoundScan(nAction, pnMin);
-
- deco16Scan();
- }
-
- return 0;
-}
-
-
-// Crude Buster (World FX version)
-
-static struct BurnRomInfo cbusterRomDesc[] = {
- { "fx01.7l", 0x20000, 0xddae6d83, 1 | BRF_PRG | BRF_ESS }, // 0 68k Code
- { "fx00.4l", 0x20000, 0x5bc2c0de, 1 | BRF_PRG | BRF_ESS }, // 1
- { "fx03.9l", 0x20000, 0xc3d65bf9, 1 | BRF_PRG | BRF_ESS }, // 2
- { "fx02.6l", 0x20000, 0xb875266b, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "fu11-.19h", 0x10000, 0x65f20f10, 2 | BRF_PRG | BRF_ESS }, // 4 Huc6280 Code
-
- { "mab-00.4c", 0x80000, 0x660eaabd, 3 | BRF_GRA }, // 5 Characters and Foreground Tiles
- { "fu05-.6c", 0x10000, 0x8134d412, 3 | BRF_GRA }, // 6
- { "fu06-.7c", 0x10000, 0x2f914a45, 3 | BRF_GRA }, // 7
-
- { "mab-01.19a", 0x80000, 0x1080d619, 4 | BRF_GRA }, // 8 Background Tiles
-
- { "mab-02.10a", 0x80000, 0x58b7231d, 5 | BRF_GRA }, // 9 Sprites
- { "mab-03.11a", 0x80000, 0x76053b9d, 5 | BRF_GRA }, // 10
- { "fu07-.4a", 0x10000, 0xca8d0bb3, 5 | BRF_GRA }, // 11
- { "fu08-.5a", 0x10000, 0xc6afc5c8, 5 | BRF_GRA }, // 12
- { "fu09-.7a", 0x10000, 0x526809ca, 5 | BRF_GRA }, // 13
- { "fu10-.8a", 0x10000, 0x6be6d50e, 5 | BRF_GRA }, // 14
-
- { "fu12-.16k", 0x20000, 0x2d1d65f2, 6 | BRF_SND }, // 15 OKI M6295 Samples 0
-
- { "fu13-.21e", 0x20000, 0xb8525622, 7 | BRF_SND }, // 16 OKI M6295 Samples 1
-
- { "mb7114h.18e", 0x00100, 0x3645b70f, 8 | BRF_OPT }, // 17 Unused PROMs
-};
-
-STD_ROM_PICK(cbuster)
-STD_ROM_FN(cbuster)
-
-struct BurnDriver BurnDrvCbuster = {
- "cbuster", NULL, NULL, NULL, "1990",
- "Crude Buster (World FX version)\0",NULL, "Data East Corporation", "DECO IC16",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_PREFIX_DATAEAST, GBF_PLATFORM | GBF_SCRFIGHT, 0,
- NULL, cbusterRomInfo, cbusterRomName, NULL, NULL, CbusterInputInfo, CbusterDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 256, 240, 4, 3
-};
-
-
-// Crude Buster (World FU version)
-
-static struct BurnRomInfo cbusterwRomDesc[] = {
- { "fu01-.7l", 0x20000, 0x0203e0f8, 1 | BRF_PRG | BRF_ESS }, // 0 68k Code
- { "fu00-.4l", 0x20000, 0x9c58626d, 1 | BRF_PRG | BRF_ESS }, // 1
- { "fu03-.9l", 0x20000, 0xdef46956, 1 | BRF_PRG | BRF_ESS }, // 2
- { "fu02-.6l", 0x20000, 0x649c3338, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "fu11-.19h", 0x10000, 0x65f20f10, 2 | BRF_PRG | BRF_ESS }, // 4 Huc6280 Code
-
- { "mab-00.4c", 0x80000, 0x660eaabd, 3 | BRF_GRA }, // 5 Characters and Foreground Tiles
- { "fu05-.6c", 0x10000, 0x8134d412, 3 | BRF_GRA }, // 6
- { "fu06-.7c", 0x10000, 0x2f914a45, 3 | BRF_GRA }, // 7
-
- { "mab-01.19a", 0x80000, 0x1080d619, 4 | BRF_GRA }, // 8 Background Tiles
-
- { "mab-02.10a", 0x80000, 0x58b7231d, 5 | BRF_GRA }, // 9 Sprites
- { "mab-03.11a", 0x80000, 0x76053b9d, 5 | BRF_GRA }, // 10
- { "fu07-.4a", 0x10000, 0xca8d0bb3, 5 | BRF_GRA }, // 11
- { "fu08-.5a", 0x10000, 0xc6afc5c8, 5 | BRF_GRA }, // 12
- { "fu09-.7a", 0x10000, 0x526809ca, 5 | BRF_GRA }, // 13
- { "fu10-.8a", 0x10000, 0x6be6d50e, 5 | BRF_GRA }, // 14
-
- { "fu12-.16k", 0x20000, 0x2d1d65f2, 6 | BRF_SND }, // 15 OKI M6295 Samples 0
-
- { "fu13-.21e", 0x20000, 0xb8525622, 7 | BRF_SND }, // 16 OKI M6295 Samples 1
-
- { "mb7114h.18e", 0x00100, 0x3645b70f, 8 | BRF_OPT }, // 17 Unused PROMs
-};
-
-STD_ROM_PICK(cbusterw)
-STD_ROM_FN(cbusterw)
-
-struct BurnDriver BurnDrvCbusterw = {
- "cbusterw", "cbuster", NULL, NULL, "1990",
- "Crude Buster (World FU version)\0", NULL, "Data East Corporation", "DECO IC16",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_DATAEAST, GBF_PLATFORM | GBF_SCRFIGHT, 0,
- NULL, cbusterwRomInfo, cbusterwRomName, NULL, NULL, CbusterInputInfo, CbusterDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 256, 240, 4, 3
-};
-
-
-// Crude Buster (Japan FR revision 1)
-
-static struct BurnRomInfo cbusterjRomDesc[] = {
- { "fr01-1.7l", 0x20000, 0xaf3c014f, 1 | BRF_PRG | BRF_ESS }, // 0 68k Code
- { "fr00-1.4l", 0x20000, 0xf666ad52, 1 | BRF_PRG | BRF_ESS }, // 1
- { "fr03.9l", 0x20000, 0x02c06118, 1 | BRF_PRG | BRF_ESS }, // 2
- { "fr02.6l", 0x20000, 0xb6c34332, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "fu11-.19h", 0x10000, 0x65f20f10, 2 | BRF_PRG | BRF_ESS }, // 4 Huc6280 Code
-
- { "mab-00.4c", 0x80000, 0x660eaabd, 3 | BRF_GRA }, // 5 Characters and Foreground Tiles
- { "fr05-1.6c", 0x10000, 0xb1f0d910, 3 | BRF_GRA }, // 6
- { "fr06-1.7c", 0x10000, 0x2f914a45, 3 | BRF_GRA }, // 7
-
- { "mab-01.19a", 0x80000, 0x1080d619, 4 | BRF_GRA }, // 8 Background Tiles
-
- { "mab-02.10a", 0x80000, 0x58b7231d, 5 | BRF_GRA }, // 9 Sprites
- { "mab-03.11a", 0x80000, 0x76053b9d, 5 | BRF_GRA }, // 10
- { "fr07.4a", 0x10000, 0x52c85318, 5 | BRF_GRA }, // 11
- { "fr08.5a", 0x10000, 0xea25fbac, 5 | BRF_GRA }, // 12
- { "fr09.7a", 0x10000, 0xf8363424, 5 | BRF_GRA }, // 13
- { "fr10.8a", 0x10000, 0x241d5760, 5 | BRF_GRA }, // 14
-
- { "fu12-.16k", 0x20000, 0x2d1d65f2, 6 | BRF_SND }, // 15 OKI M6295 Samples 0
-
- { "fu13-.21e", 0x20000, 0xb8525622, 7 | BRF_SND }, // 16 OKI M6295 Samples 1
-
- { "mb7114h.18e", 0x00100, 0x3645b70f, 8 | BRF_OPT }, // 17 Unused PROMs
-};
-
-STD_ROM_PICK(cbusterj)
-STD_ROM_FN(cbusterj)
-
-struct BurnDriver BurnDrvCbusterj = {
- "cbusterj", "cbuster", NULL, NULL, "1990",
- "Crude Buster (Japan FR revision 1)\0", NULL, "Data East Corporation", "DECO IC16",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_DATAEAST, GBF_PLATFORM | GBF_SCRFIGHT, 0,
- NULL, cbusterjRomInfo, cbusterjRomName, NULL, NULL, CbusterInputInfo, CbusterDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 256, 240, 4, 3
-};
-
-
-// Two Crude (US FT revision 1)
-
-static struct BurnRomInfo twocrudeRomDesc[] = {
- { "ft01-1.7l", 0x20000, 0x7342ffc4, 1 | BRF_PRG | BRF_ESS }, // 0 68k Code
- { "ft00-1.4l", 0x20000, 0x3f5f535f, 1 | BRF_PRG | BRF_ESS }, // 1
- { "ft03.9l", 0x20000, 0x28002c99, 1 | BRF_PRG | BRF_ESS }, // 2
- { "ft02.6l", 0x20000, 0x37ea0626, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "ft11-.19h", 0x10000, 0x65f20f10, 2 | BRF_PRG | BRF_ESS }, // 4 Huc6280 Code
-
- { "mab-00.4c", 0x80000, 0x660eaabd, 3 | BRF_GRA }, // 5 Characters and Foreground Tiles
- { "ft05-1.6c", 0x10000, 0xb1f0d910, 3 | BRF_GRA }, // 6
- { "ft06-1.7c", 0x10000, 0x2f914a45, 3 | BRF_GRA }, // 7
-
- { "mab-01.19a", 0x80000, 0x1080d619, 4 | BRF_GRA }, // 8 Background Tiles
-
- { "mab-02.10a", 0x80000, 0x58b7231d, 5 | BRF_GRA }, // 9 Sprites
- { "mab-03.11a", 0x80000, 0x76053b9d, 5 | BRF_GRA }, // 10
- { "ft07-.4a", 0x10000, 0xe3465c25, 5 | BRF_GRA }, // 11
- { "ft08-.5a", 0x10000, 0xc7f1d565, 5 | BRF_GRA }, // 12
- { "ft09-.7a", 0x10000, 0x6e3657b9, 5 | BRF_GRA }, // 13
- { "ft10-.8a", 0x10000, 0xcdb83560, 5 | BRF_GRA }, // 14
-
- { "ft12-.16k", 0x20000, 0x2d1d65f2, 6 | BRF_SND }, // 15 OKI M6295 Samples 0
-
- { "ft13-.21e", 0x20000, 0xb8525622, 7 | BRF_SND }, // 16 OKI M6295 Samples 1
-
- { "mb7114h.18e", 0x00100, 0x3645b70f, 8 | BRF_OPT }, // 17 Unused PROMs
-};
-
-STD_ROM_PICK(twocrude)
-STD_ROM_FN(twocrude)
-
-struct BurnDriver BurnDrvTwocrude = {
- "twocrude", "cbuster", NULL, NULL, "1990",
- "Two Crude (US FT revision 1)\0", NULL, "Data East USA", "DECO IC16",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_DATAEAST, GBF_PLATFORM | GBF_SCRFIGHT, 0,
- NULL, twocrudeRomInfo, twocrudeRomName, NULL, NULL, CbusterInputInfo, CbusterDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 256, 240, 4, 3
-};
-
-
-// Two Crude (US FT version)
-
-static struct BurnRomInfo twocrudeaRomDesc[] = {
- { "ft01.7l", 0x20000, 0x08e96489, 1 | BRF_PRG | BRF_ESS }, // 0 68k Code
- { "ft00.4l", 0x20000, 0x6765c445, 1 | BRF_PRG | BRF_ESS }, // 1
- { "ft03.9l", 0x20000, 0x28002c99, 1 | BRF_PRG | BRF_ESS }, // 2
- { "ft02.6l", 0x20000, 0x37ea0626, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "ft11-.19h", 0x10000, 0x65f20f10, 2 | BRF_PRG | BRF_ESS }, // 4 Huc6280 Code
-
- { "mab-00.4c", 0x80000, 0x660eaabd, 3 | BRF_GRA }, // 5 Characters and Foreground Tiles
- { "ft05-.6c", 0x10000, 0x8134d412, 3 | BRF_GRA }, // 6
- { "ft06-.7c", 0x10000, 0x2f914a45, 3 | BRF_GRA }, // 7
-
- { "mab-01.19a", 0x80000, 0x1080d619, 4 | BRF_GRA }, // 8 Background Tiles
-
- { "mab-02.10a", 0x80000, 0x58b7231d, 5 | BRF_GRA }, // 9 Sprites
- { "mab-03.11a", 0x80000, 0x76053b9d, 5 | BRF_GRA }, // 10
- { "ft07-.4a", 0x10000, 0xe3465c25, 5 | BRF_GRA }, // 11
- { "ft08-.5a", 0x10000, 0xc7f1d565, 5 | BRF_GRA }, // 12
- { "ft09-.7a", 0x10000, 0x6e3657b9, 5 | BRF_GRA }, // 13
- { "ft10-.8a", 0x10000, 0xcdb83560, 5 | BRF_GRA }, // 14
-
- { "ft12-.16k", 0x20000, 0x2d1d65f2, 6 | BRF_SND }, // 15 OKI M6295 Samples 0
-
- { "ft13-.21e", 0x20000, 0xb8525622, 7 | BRF_SND }, // 16 OKI M6295 Samples 1
-
- { "mb7114h.18e", 0x00100, 0x3645b70f, 8 | BRF_OPT }, // 17 Unused PROMs
-};
-
-STD_ROM_PICK(twocrudea)
-STD_ROM_FN(twocrudea)
-
-struct BurnDriver BurnDrvTwocrudea = {
- "twocrudea", "cbuster", NULL, NULL, "1990",
- "Two Crude (US FT version)\0", NULL, "Data East USA", "DECO IC16",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_DATAEAST, GBF_PLATFORM | GBF_SCRFIGHT, 0,
- NULL, twocrudeaRomInfo, twocrudeaRomName, NULL, NULL, CbusterInputInfo, CbusterDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 256, 240, 4, 3
-};
diff --git a/jan/src/burn/drv/dataeast/d_chanbara.cpp b/jan/src/burn/drv/dataeast/d_chanbara.cpp
deleted file mode 100644
index 0fbdfd1c7..000000000
--- a/jan/src/burn/drv/dataeast/d_chanbara.cpp
+++ /dev/null
@@ -1,576 +0,0 @@
-// FB Alpha Chanbara driver module
-// Based on MAME driver by Tomasz Slanina and David Haywood
-// Todo:
-// 1) Figure out the sprite banking issue (strange blob of broken
-// sprites appears sporatically - usually when the floor pattern changes.
-
-#include "tiles_generic.h"
-#include "m6809_intf.h"
-#include "burn_ym2203.h"
-
-static UINT8 *AllMem;
-static UINT8 *MemEnd;
-static UINT8 *AllRam;
-static UINT8 *RamEnd;
-static UINT8 *DrvM6809ROM;
-static UINT8 *DrvGfxROM0;
-static UINT8 *DrvGfxROM1;
-static UINT8 *DrvGfxROM2;
-static UINT8 *DrvGfxROM3;
-static UINT8 *DrvColPROM;
-static UINT8 *DrvM6809RAM;
-static UINT8 *DrvVidRAM0;
-static UINT8 *DrvVidRAM1;
-static UINT8 *DrvColRAM0;
-static UINT8 *DrvColRAM1;
-static UINT8 *DrvSprRAM;
-
-static UINT32 *DrvPalette;
-static UINT8 DrvRecalc;
-
-static INT32 scrolly;
-static UINT8 flipscreen;
-static UINT8 bankdata;
-
-static INT32 vblank;
-
-static UINT8 DrvJoy[3][8];
-static UINT8 DrvDips[1];
-static UINT8 DrvInputs[3];
-static UINT8 DrvReset;
-
-static struct BurnInputInfo DrvInputList[] = {
- {"P1 Coin" , BIT_DIGITAL , DrvJoy[0] + 4, "p1 coin" },
- {"P1 Start" , BIT_DIGITAL , DrvJoy[0] + 0, "p1 start" },
- {"P1 Up (left)" , BIT_DIGITAL , DrvJoy[1] + 1, "p1 up" },
- {"P1 Down (left)" , BIT_DIGITAL , DrvJoy[1] + 0, "p1 down" },
- {"P1 Left (left)" , BIT_DIGITAL , DrvJoy[1] + 2, "p1 left" },
- {"P1 Right (left)" , BIT_DIGITAL , DrvJoy[1] + 3, "p1 right" },
- {"P1 Up (right)" , BIT_DIGITAL , DrvJoy[1] + 5, "p3 up" },
- {"P1 Down (right)" , BIT_DIGITAL , DrvJoy[1] + 4, "p3 down" },
- {"P1 Left (right)" , BIT_DIGITAL , DrvJoy[1] + 6, "p3 left" },
- {"P1 Right (right)" , BIT_DIGITAL , DrvJoy[1] + 7, "p3 right" },
-
- {"P2 Coin" , BIT_DIGITAL , DrvJoy[0] + 5, "p2 coin" },
- {"P2 Start" , BIT_DIGITAL , DrvJoy[0] + 1, "p2 start" },
- {"P2 Up (left)" , BIT_DIGITAL , DrvJoy[2] + 1, "p2 up" },
- {"P2 Down (left)" , BIT_DIGITAL , DrvJoy[2] + 0, "p2 down" },
- {"P2 Left (left)" , BIT_DIGITAL , DrvJoy[2] + 2, "p2 left" },
- {"P2 Right (left)" , BIT_DIGITAL , DrvJoy[2] + 3, "p2 right" },
- {"P2 Up (right)" , BIT_DIGITAL , DrvJoy[2] + 5, "p4 up" },
- {"P2 Down (right)" , BIT_DIGITAL , DrvJoy[2] + 4, "p4 down" },
- {"P2 Left (right)" , BIT_DIGITAL , DrvJoy[2] + 6, "p4 left" },
- {"P2 Right (right)" , BIT_DIGITAL , DrvJoy[2] + 7, "p4 right" },
-
- {"Reset" , BIT_DIGITAL , &DrvReset , "reset" },
- {"Service" , BIT_DIGITAL , DrvJoy[0] + 6, "Service" },
- {"Dip" , BIT_DIPSWITCH, DrvDips + 0 , "dip" },
-};
-
-STDINPUTINFO(Drv)
-
-static struct BurnDIPInfo DrvDIPList[]=
-{
- {0x16, 0xff, 0xff, 0x7f, NULL },
-
- {0 , 0xfe, 0 , 4 , "Coin B" },
- {0x16, 0x01, 0x03, 0x00, "2 Coins 1 Play" },
- {0x16, 0x01, 0x03, 0x03, "1 Coin 1 Play" },
- {0x16, 0x01, 0x03, 0x02, "1 Coin 2 Plays" },
- {0x16, 0x01, 0x03, 0x01, "1 Coin 3 Plays" },
-
- {0 , 0xfe, 0 , 4 , "Coin A" },
- {0x16, 0x01, 0x0c, 0x00, "2 Coins 1 Play" },
- {0x16, 0x01, 0x0c, 0x0c, "1 Coin 1 Play" },
- {0x16, 0x01, 0x0c, 0x08, "1 Coin 2 Plays" },
- {0x16, 0x01, 0x0c, 0x04, "1 Coin 3 Plays" },
-
- {0 , 0xfe, 0 , 2 , "Difficulty" },
- {0x16, 0x01, 0x10, 0x10, "Easy" },
- {0x16, 0x01, 0x10, 0x00, "Hard" },
-
- {0 , 0xfe, 0 , 2 , "Lives" },
- {0x16, 0x01, 0x20, 0x20, "3" },
- {0x16, 0x01, 0x20, 0x00, "1" },
-
- {0 , 0xfe, 0 , 2 , "Bonus Life" },
- {0x16, 0x01, 0x40, 0x40, "50k and 70k" },
- {0x16, 0x01, 0x40, 0x00, "None" },
-
- {0 , 0xfe, 0 , 1 , "Cabinet" },
- {0x16, 0x01, 0x80, 0x80, "Upright" },
-// {0x16, 0x01, 0x80, 0x00, "Cocktail" }, // not supported atm
-};
-
-STDDIPINFO(Drv)
-
-static void chanbara_write(UINT16 address, UINT8 data)
-{
- switch (address)
- {
- case 0x3800:
- case 0x3801:
- BurnYM2203Write(0, address & 1, data);
- return;
- }
-}
-
-static UINT8 chanbara_read(UINT16 address)
-{
- switch (address)
- {
- case 0x2000:
- return DrvDips[0];
-
- case 0x2001:
- return (DrvInputs[0] & 0x7f) | (vblank ? 0x80 : 0);
-
- case 0x2002:
- return DrvInputs[2];
-
- case 0x2003:
- return DrvInputs[1];
-
- case 0x3800:
- case 0x3801:
- return BurnYM2203Read(0, address & 1);
- }
-
- return 0;
-}
-
-static void bankswitch(INT32 data)
-{
- bankdata = data;
-
- M6809MapMemory(DrvM6809ROM + (data * 0x1000), 0x4000, 0x7fff, MAP_ROM);
-}
-
-static void chanbara_ay_writeA(UINT32, UINT32 data)
-{
- scrolly = (scrolly & 0x100) + data;
-}
-
-static void chanbara_ay_writeB(UINT32, UINT32 data)
-{
- scrolly = ((data & 0x01) * 0x100) + (scrolly & 0xff);
-
- flipscreen = data & 0x02;
-
- bankswitch(data & 0x04);
-}
-
-static void DrvYM2203IRQHandler(INT32, INT32 nStatus)
-{
- M6809SetIRQLine(0, nStatus ? CPU_IRQSTATUS_ACK : CPU_IRQSTATUS_NONE);
-}
-
-static INT32 DrvSynchroniseStream(INT32 nSoundRate)
-{
- return (INT64)M6809TotalCycles() * nSoundRate / 1500000;
-}
-
-static double DrvGetTime()
-{
- return (double)M6809TotalCycles() / 1500000;
-}
-
-static INT32 DrvDoReset()
-{
- memset (AllRam, 0, RamEnd - AllRam);
-
- M6809Open(0);
- BurnYM2203Reset(); // this calls bankswitch() through the ay ports(!)
- bankswitch(0);
- M6809Reset();
- M6809Close();
-
- scrolly = 0;
- flipscreen = 0;
-
- return 0;
-}
-
-static INT32 MemIndex()
-{
- UINT8 *Next; Next = AllMem;
-
- DrvM6809ROM = Next; Next += 0x10000;
-
- DrvGfxROM0 = Next; Next += 0x08000;
- DrvGfxROM1 = Next; Next += 0x80000;
- DrvGfxROM2 = Next; Next += 0x10000;
- DrvGfxROM3 = Next; Next += 0x02000;
-
- DrvColPROM = Next; Next += 0x00300;
-
- DrvPalette = (UINT32*)Next; Next += 0x0100 * sizeof(UINT32);
-
- AllRam = Next;
-
- DrvM6809RAM = Next; Next += 0x00800;
- DrvVidRAM0 = Next; Next += 0x00400;
- DrvVidRAM1 = Next; Next += 0x00200;
- DrvColRAM0 = Next; Next += 0x00400;
- DrvColRAM1 = Next; Next += 0x00200;
- DrvSprRAM = Next; Next += 0x00100;
-
- RamEnd = Next;
-
- MemEnd = Next;
-
- return 0;
-}
-
-static void DrvGfxDecode()
-{
- INT32 Plane0[2] = { 0, 4 };
- INT32 Plane1[3] = { (0x24000/3) * 8 * 2, (0x24000/3) * 8 * 1, (0x24000/3) * 8 * 0 };
- INT32 Plane2[3] = { (0x8000 / 2) * 8, 0, 4 };
-
- INT32 XOffs0[8] = { STEP4(((0x2000/2) * 8),1), STEP4(0,1) };
- INT32 XOffs1[16]= { STEP8(128,1), STEP8(0,1) };
- INT32 XOffs2[16]= { STEP4((((0x8000/4)*8) + 128), 1), STEP4(0,1), STEP4(((0x8000/4)*8),1), STEP4(128,1) };
-
- INT32 YOffs0[8] = { STEP8(0,8) };
- INT32 YOffs1[16]= { STEP8(0,8), STEP8(64,8) };
- INT32 YOffs2[16]= { STEP16(0,8) };
-
- UINT8 *tmp = (UINT8*)BurnMalloc(0x24000);
-
- memcpy (tmp, DrvGfxROM0, 0x02000);
-
- GfxDecode(0x0200, 2, 8, 8, Plane0, XOffs0, YOffs0, 0x040, tmp, DrvGfxROM0);
-
- memcpy (tmp, DrvGfxROM1, 0x24000);
-
- GfxDecode(0x0600, 3, 16, 16, Plane1, XOffs1, YOffs1, 0x100, tmp, DrvGfxROM1);
-
- memcpy (tmp, DrvGfxROM2, 0x8000);
-
- GfxDecode(0x0100, 3, 16, 16, Plane2, XOffs2, YOffs2, 0x100, tmp, DrvGfxROM2);
-
- BurnFree(tmp);
-}
-
-UINT8 *temp4;
-
-static void DrvGfxExpand()
-{
- /*UINT8 *tmp = (UINT8*)BurnMalloc(0x2000);
-
- memcpy (tmp, DrvGfxROM2 + 0x4000, 0x2000);
-
- for (INT32 i = 0; i < 0x4000; i++) {
- DrvGfxROM2[i + 0x4000] = (tmp[i/2] << ((~i&1)<<2)) & 0xf0;
- }
-
- BurnFree(tmp);
- */
- // replacing the above with this fixes the "blue lines through everything" issue
- // Leaving this here incase iq_132 wants to fix it.
-
- UINT8 *dst = DrvGfxROM2 + 0x4000;
- UINT8 *src = DrvGfxROM3;
-
- for (INT32 i = 0; i < 0x1000; i++)
- {
- dst[i + 0x1000] = src[i] & 0xf0;
- dst[i + 0x0000] = (src[i] & 0x0f) << 4;
- dst[i + 0x3000] = src[i + 0x1000] & 0xf0;
- dst[i + 0x2000] = (src[i + 0x1000] & 0x0f) << 4;
- }
-}
-
-static INT32 DrvInit()
-{
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(DrvM6809ROM + 0x08000, 0, 1)) return 1;
- if (BurnLoadRom(DrvM6809ROM + 0x0c000, 1, 1)) return 1;
- if (BurnLoadRom(DrvM6809ROM + 0x00000, 2, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x00000, 3, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM2 + 0x00000, 4, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM3 + 0x00000, 5, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM1 + 0x08000, 6, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x04000, 7, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x00000, 8, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x14000, 9, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x10000, 10, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x0c000, 11, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x20000, 12, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x1c000, 13, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x18000, 14, 1)) return 1;
-
- if (BurnLoadRom(DrvColPROM + 0x00000, 15, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x00100, 16, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x00200, 17, 1)) return 1;
-
- DrvGfxExpand();
- DrvGfxDecode();
- }
-
- M6809Init(1);
- M6809Open(0);
- M6809MapMemory(DrvM6809RAM, 0x0000, 0x07ff, MAP_RAM);
- M6809MapMemory(DrvVidRAM0, 0x0800, 0x0bff, MAP_RAM);
- M6809MapMemory(DrvColRAM0, 0x0c00, 0x0fff, MAP_RAM);
- M6809MapMemory(DrvSprRAM, 0x1000, 0x10ff, MAP_RAM);
- M6809MapMemory(DrvVidRAM1, 0x1800, 0x19ff, MAP_RAM);
- M6809MapMemory(DrvColRAM1, 0x1a00, 0x1bff, MAP_RAM);
- M6809MapMemory(DrvM6809ROM, 0x4000, 0x7fff, MAP_ROM);
- M6809MapMemory(DrvM6809ROM + 0x08000, 0x8000, 0xffff, MAP_ROM);
- M6809SetWriteHandler(chanbara_write);
- M6809SetReadHandler(chanbara_read);
- M6809Close();
-
- BurnYM2203Init(1, 1500000, &DrvYM2203IRQHandler, DrvSynchroniseStream, DrvGetTime, 0);
- BurnYM2203SetPorts(0, NULL, NULL, &chanbara_ay_writeA, &chanbara_ay_writeB);
- BurnTimerAttachM6809(1500000);
- BurnYM2203SetAllRoutes(0, 1.00, BURN_SND_ROUTE_BOTH);
-
- GenericTilesInit();
-
- DrvDoReset();
-
- return 0;
-}
-
-static INT32 DrvExit()
-{
- M6809Exit();
-
- BurnYM2203Exit();
-
- GenericTilesExit();
-
- BurnFree(AllMem);
-
- return 0;
-}
-
-static void DrvPaletteInit()
-{
- for (INT32 i = 0; i < 0x100; i++)
- {
- INT32 r = (DrvColPROM[i + 0x000] << 1) & 0x0e;
- INT32 g = (DrvColPROM[i + 0x100] << 1) & 0x0e;
- INT32 b = (DrvColPROM[i + 0x200] << 1) & 0x0e;
-
- DrvPalette[i] = BurnHighCol(r+r*16, g+g*16, b+b*16, 0);
- }
-}
-
-static void draw_bg_layer()
-{
- INT32 yscroll = (scrolly + 16) & 0x1ff;
-
- for (INT32 offs = 0; offs < 16 * 32; offs++)
- {
- INT32 sx = (offs & 0x0f) * 16;
- INT32 sy = (offs / 0x10) * 16;
-
- sy -= yscroll;
- if (sy < -15) sy += 512;
-
- INT32 code = DrvVidRAM1[offs];
- INT32 color =(DrvColRAM1[offs] & 0x3e) >> 1;
-
- Render16x16Tile_Clip(pTransDraw, code, sx, sy, color, 3, 0, DrvGfxROM2);
- }
-}
-
-static void draw_fg_layer()
-{
- for (INT32 offs = 2 * 32; offs < 32 * 30; offs++)
- {
- INT32 sx = (offs & 0x1f) * 8;
- INT32 sy = (offs / 0x20) * 8;
-
- INT32 attr = DrvColRAM0[offs];
- INT32 code = DrvVidRAM0[offs] + ((attr & 0x01) * 0x100);
- INT32 color = ((attr & 0x3e) >> 1) + (0x40 >> 2);
-
- Render8x8Tile_Mask_Clip(pTransDraw, code, sx, sy - 16, color, 2, 0, 0, DrvGfxROM0);
- }
-}
-
-static void draw_sprites()
-{
- for (INT32 offs = 0; offs < 0x80; offs += 4)
- {
- if (DrvSprRAM[offs + 0x80] & 0x80)
- {
- INT32 attr0 = DrvSprRAM[offs + 0x00];
- INT32 attr1 = DrvSprRAM[offs + 0x80];
- INT32 code = DrvSprRAM[offs + 0x01] | ((attr1 & 0x10) << 5) | ((attr1 & 0x20) << 5) | ((attr1 & 0x40) << 2);
- INT32 color = (attr1 & 0x0f) + (0x80>>3);
- INT32 flipy = attr0 & 0x2;
- INT32 sx = 240 - DrvSprRAM[offs + 0x03];
- INT32 sy = (232 - DrvSprRAM[offs + 0x02]);
-
- if (attr0 & 0x10)
- {
- if (flipy)
- {
- Render16x16Tile_Mask_FlipY_Clip(pTransDraw, code+0, sx, sy , color, 3, 0, 0, DrvGfxROM1);
- Render16x16Tile_Mask_FlipY_Clip(pTransDraw, code+1, sx, sy - 16, color, 3, 0, 0, DrvGfxROM1);
- }
- else
- {
- Render16x16Tile_Mask_Clip(pTransDraw, code+0, sx, sy - 16, color, 3, 0, 0, DrvGfxROM1);
- Render16x16Tile_Mask_Clip(pTransDraw, code+1, sx, sy , color, 3, 0, 0, DrvGfxROM1);
- }
- }
- else
- {
- if (flipy) {
- Render16x16Tile_Mask_FlipY_Clip(pTransDraw, code, sx, sy, color, 3, 0, 0, DrvGfxROM1);
- } else {
- Render16x16Tile_Mask_Clip(pTransDraw, code, sx, sy, color, 3, 0, 0, DrvGfxROM1);
- }
- }
- }
- }
-}
-
-static INT32 DrvDraw()
-{
- if (DrvRecalc) {
- DrvPaletteInit();
- DrvRecalc = 0;
- }
-
- BurnTransferClear();
-
- if (nBurnLayer & 2) draw_bg_layer();
- if (nBurnLayer & 4) draw_sprites();
- if (nBurnLayer & 8) draw_fg_layer();
-
- BurnTransferCopy(DrvPalette);
-
- return 0;
-}
-
-static INT32 DrvFrame()
-{
- if (DrvReset) {
- DrvDoReset();
- }
-
- {
- UINT32 JoyInit[3] = { 0x7f, 0xff, 0xff };
- UINT8 *DrvJoys[3] = { DrvJoy[0], DrvJoy[1], DrvJoy[2] };
-
- CompileInput(DrvJoys, (void*)DrvInputs, 3, 8, JoyInit);
- }
-
- INT32 nInterleave = 256;
- INT32 nCyclesTotal = 1500000 / 60;
-
- M6809Open(0);
- M6809NewFrame();
-
- vblank = 0;
-
- for (INT32 i = 0; i < nInterleave; i++)
- {
- BurnTimerUpdate((i + 1) * (nCyclesTotal / nInterleave));
-
- if (i == 240) vblank = 1;
- }
-
- BurnTimerEndFrame(nCyclesTotal);
-
- if (pBurnSoundOut) {
- BurnYM2203Update(pBurnSoundOut, nBurnSoundLen);
- }
-
- M6809Close();
-
- if (pBurnDraw) {
- DrvDraw();
- }
-
- return 0;
-}
-
-static INT32 DrvScan(INT32 nAction, INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin) {
- *pnMin = 0x029702;
- }
-
- if (nAction & ACB_VOLATILE) {
- memset(&ba, 0, sizeof(ba));
-
- ba.Data = AllRam;
- ba.nLen = RamEnd - AllRam;
- ba.szName = "All Ram";
- BurnAcb(&ba);
-
- M6809Scan(nAction);
-
- M6809Open(0);
- BurnYM2203Scan(nAction, pnMin);
- M6809Close();
-
- SCAN_VAR(scrolly);
- SCAN_VAR(flipscreen);
- SCAN_VAR(bankdata);
- }
-
- return 0;
-}
-
-
-// Chanbara
-
-static struct BurnRomInfo ChanbaraRomDesc[] = {
- { "cp01.16c", 0x4000, 0xa0c3c24c, 0 | BRF_ESS | BRF_PRG }, // 0 M6809 Code
- { "cp00-2.17c", 0x4000, 0xa045e463, 0 | BRF_ESS | BRF_PRG }, // 1
- { "cp02.14c", 0x8000, 0xc2b66cea, 0 | BRF_ESS | BRF_PRG }, // 2
-
- { "cp12.17h", 0x2000, 0xb87b96de, 1 | BRF_GRA }, // 3 Characters
-
- { "cp13.15h", 0x4000, 0x2dc38c3d, 1 | BRF_GRA }, // 4 Background Tiles
- { "cp14.13h", 0x2000, 0xd31db368, 1 | BRF_GRA }, // 5
-
- { "cp03.12c", 0x4000, 0xdea247fb, 1 | BRF_GRA }, // 6 Sprites
- { "cp04.10c", 0x4000, 0xf7dce87b, 1 | BRF_GRA }, // 7
- { "cp05.9c", 0x4000, 0xdf2dc3cb, 1 | BRF_GRA }, // 8
- { "cp06.7c", 0x4000, 0x2f337c08, 1 | BRF_GRA }, // 9
- { "cp07.6c", 0x4000, 0x0e3727f2, 1 | BRF_GRA }, // 10
- { "cp08.5c", 0x4000, 0x4cf35192, 1 | BRF_GRA }, // 11
- { "cp09.4c", 0x4000, 0x3f58b647, 1 | BRF_GRA }, // 12
- { "cp10.2c", 0x4000, 0xbfa324c0, 1 | BRF_GRA }, // 13
- { "cp11.1c", 0x4000, 0x33e6160a, 1 | BRF_GRA }, // 14
-
- { "cp17.4k", 0x0100, 0xcf03706e, 1 | BRF_GRA }, // 15 Color Proms
- { "cp16.5k", 0x0100, 0x5fedc8ba, 1 | BRF_GRA }, // 16
- { "cp15.6k", 0x0100, 0x655936eb, 1 | BRF_GRA }, // 17
-};
-
-STD_ROM_PICK(Chanbara)
-STD_ROM_FN(Chanbara)
-
-struct BurnDriver BurnDrvChanbara = {
- "chanbara", NULL, NULL, NULL, "1985",
- "Chanbara\0", NULL, "Data East", "Miscellaneous",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL, 4, HARDWARE_PREFIX_DATAEAST, GBF_SCRFIGHT, 0,
- NULL, ChanbaraRomInfo, ChanbaraRomName, NULL, NULL, DrvInputInfo, DrvDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x100,
- 224, 256, 3, 4
-};
diff --git a/jan/src/burn/drv/dataeast/d_cninja.cpp b/jan/src/burn/drv/dataeast/d_cninja.cpp
deleted file mode 100644
index e4111b3f5..000000000
--- a/jan/src/burn/drv/dataeast/d_cninja.cpp
+++ /dev/null
@@ -1,3640 +0,0 @@
-// FB Alpha Caveman Ninja driver module
-// Based on MAME driver by Bryan McPhail
-
-#include "tiles_generic.h"
-#include "m68000_intf.h"
-#include "z80_intf.h"
-#include "h6280_intf.h"
-#include "deco16ic.h"
-#include "deco146.h"
-#include "burn_ym2203.h"
-#include "burn_ym2151.h"
-#include "msm6295.h"
-#include "timer.h"
-
-static UINT8 *AllMem;
-static UINT8 *MemEnd;
-static UINT8 *AllRam;
-static UINT8 *RamEnd;
-static UINT8 *Drv68KROM;
-static UINT8 *DrvZ80ROM;
-static UINT8 *DrvHucROM;
-static UINT8 *DrvGfxROM0;
-static UINT8 *DrvGfxROM1;
-static UINT8 *DrvGfxROM2;
-static UINT8 *DrvGfxROM3;
-static UINT8 *DrvGfxROM4;
-static UINT8 *DrvSndROM0;
-static UINT8 *DrvSndROM1;
-static UINT8 *Drv68KRAM;
-static UINT8 *DrvHucRAM;
-static UINT8 *DrvPalRAM;
-static UINT8 *DrvSprRAM;
-static UINT8 *DrvSprRAM1;
-static UINT8 *DrvSprBuf;
-static UINT8 *DrvSprBuf1;
-static UINT8 *DrvZ80RAM;
-
-static UINT32 *DrvPalette;
-static UINT8 DrvRecalc;
-
-static INT16 *SoundBuffer;
-
-static UINT8 *soundlatch;
-static UINT8 *flipscreen;
-
-static UINT8 DrvJoy1[16];
-static UINT8 DrvJoy2[16];
-static UINT8 DrvDips[3];
-static UINT8 DrvReset;
-static UINT16 DrvInputs[3];
-
-static INT32 scanline;
-static INT32 irq_mask;
-static INT32 irq_timer;
-
-static INT32 DrvOkiBank;
-
-static INT32 has_z80 = 0;
-
-static struct BurnInputInfo DrvInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy2 + 0, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 7, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy1 + 0, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy1 + 1, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy1 + 2, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy1 + 3, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy1 + 4, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy1 + 5, "p1 fire 2" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy2 + 1, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy1 + 15, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvJoy1 + 8, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy1 + 9, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy1 + 10, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy1 + 11, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy1 + 12, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy1 + 13, "p2 fire 2" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service", BIT_DIGITAL, DrvJoy2 + 2, "service" },
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip" },
-};
-
-STDINPUTINFO(Drv)
-
-static struct BurnInputInfo Robocop2InputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy2 + 0, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 7, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy1 + 0, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy1 + 1, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy1 + 2, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy1 + 3, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy1 + 4, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy1 + 5, "p1 fire 2" },
- {"P1 Button 3", BIT_DIGITAL, DrvJoy1 + 6, "p1 fire 3" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy2 + 1, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy1 + 15, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvJoy1 + 8, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy1 + 9, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy1 + 10, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy1 + 11, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy1 + 12, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy1 + 13, "p2 fire 2" },
- {"P2 Button 3", BIT_DIGITAL, DrvJoy1 + 14, "p2 fire 3" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service", BIT_DIGITAL, DrvJoy2 + 2, "service" },
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip" },
- {"Dip C", BIT_DIPSWITCH, DrvDips + 2, "dip" },
-};
-
-STDINPUTINFO(Robocop2)
-
-static struct BurnDIPInfo CninjaDIPList[]=
-{
- {0x12, 0xff, 0xff, 0xff, NULL },
- {0x13, 0xff, 0xff, 0x7f, NULL },
-
- {0 , 0xfe, 0 , 8, "Coin A" },
- {0x12, 0x01, 0x07, 0x00, "3 Coins 1 Credits" },
- {0x12, 0x01, 0x07, 0x01, "2 Coins 1 Credits" },
- {0x12, 0x01, 0x07, 0x07, "1 Coin 1 Credits" },
- {0x12, 0x01, 0x07, 0x06, "1 Coin 2 Credits" },
- {0x12, 0x01, 0x07, 0x05, "1 Coin 3 Credits" },
- {0x12, 0x01, 0x07, 0x04, "1 Coin 4 Credits" },
- {0x12, 0x01, 0x07, 0x03, "1 Coin 5 Credits" },
- {0x12, 0x01, 0x07, 0x02, "1 Coin 6 Credits" },
-
- {0 , 0xfe, 0 , 8, "Coin B" },
- {0x12, 0x01, 0x38, 0x00, "3 Coins 1 Credits" },
- {0x12, 0x01, 0x38, 0x08, "2 Coins 1 Credits" },
- {0x12, 0x01, 0x38, 0x38, "1 Coin 1 Credits" },
- {0x12, 0x01, 0x38, 0x30, "1 Coin 2 Credits" },
- {0x12, 0x01, 0x38, 0x28, "1 Coin 3 Credits" },
- {0x12, 0x01, 0x38, 0x20, "1 Coin 4 Credits" },
- {0x12, 0x01, 0x38, 0x18, "1 Coin 5 Credits" },
- {0x12, 0x01, 0x38, 0x10, "1 Coin 6 Credits" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x12, 0x01, 0x40, 0x40, "Off" },
- {0x12, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x13, 0x01, 0x03, 0x01, "1" },
- {0x13, 0x01, 0x03, 0x00, "2" },
- {0x13, 0x01, 0x03, 0x03, "3" },
- {0x13, 0x01, 0x03, 0x02, "4" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x13, 0x01, 0x0c, 0x08, "Easy" },
- {0x13, 0x01, 0x0c, 0x0c, "Normal" },
- {0x13, 0x01, 0x0c, 0x04, "Hard" },
- {0x13, 0x01, 0x0c, 0x00, "Hardest" },
-
- {0 , 0xfe, 0 , 2, "Restore Life Meter" },
- {0x13, 0x01, 0x10, 0x10, "Off" },
- {0x13, 0x01, 0x10, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x13, 0x01, 0x80, 0x80, "Off" },
- {0x13, 0x01, 0x80, 0x00, "On" },
-};
-
-STDDIPINFO(Cninja)
-
-static struct BurnDIPInfo CninjauDIPList[]=
-{
- {0x12, 0xff, 0xff, 0xff, NULL },
- {0x13, 0xff, 0xff, 0x7f, NULL },
-
- {0 , 0xfe, 0 , 8, "Coin A" },
- {0x12, 0x01, 0x07, 0x00, "3 Coins 1 Credits" },
- {0x12, 0x01, 0x07, 0x01, "2 Coins 1 Credits" },
- {0x12, 0x01, 0x07, 0x07, "1 Coin 1 Credits" },
- {0x12, 0x01, 0x07, 0x06, "1 Coin 2 Credits" },
- {0x12, 0x01, 0x07, 0x05, "1 Coin 3 Credits" },
- {0x12, 0x01, 0x07, 0x04, "1 Coin 4 Credits" },
- {0x12, 0x01, 0x07, 0x03, "1 Coin 5 Credits" },
- {0x12, 0x01, 0x07, 0x02, "1 Coin 6 Credits" },
-
- {0 , 0xfe, 0 , 8, "Coin B" },
- {0x12, 0x01, 0x38, 0x00, "3 Coins 1 Credits" },
- {0x12, 0x01, 0x38, 0x08, "2 Coins 1 Credits" },
- {0x12, 0x01, 0x38, 0x38, "1 Coin 1 Credits" },
- {0x12, 0x01, 0x38, 0x30, "1 Coin 2 Credits" },
- {0x12, 0x01, 0x38, 0x28, "1 Coin 3 Credits" },
- {0x12, 0x01, 0x38, 0x20, "1 Coin 4 Credits" },
- {0x12, 0x01, 0x38, 0x18, "1 Coin 5 Credits" },
- {0x12, 0x01, 0x38, 0x10, "1 Coin 6 Credits" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x12, 0x01, 0x40, 0x40, "Off" },
- {0x12, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Credit(s) to Start" },
- {0x12, 0x01, 0x80, 0x80, "1" },
- {0x12, 0x01, 0x80, 0x00, "2" },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x13, 0x01, 0x03, 0x01, "1" },
- {0x13, 0x01, 0x03, 0x00, "2" },
- {0x13, 0x01, 0x03, 0x03, "3" },
- {0x13, 0x01, 0x03, 0x02, "4" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x13, 0x01, 0x0c, 0x08, "Easy" },
- {0x13, 0x01, 0x0c, 0x0c, "Normal" },
- {0x13, 0x01, 0x0c, 0x04, "Hard" },
- {0x13, 0x01, 0x0c, 0x00, "Hardest" },
-
- {0 , 0xfe, 0 , 2, "Restore Life Meter" },
- {0x13, 0x01, 0x10, 0x10, "Off" },
- {0x13, 0x01, 0x10, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x13, 0x01, 0x80, 0x80, "Off" },
- {0x13, 0x01, 0x80, 0x00, "On" },
-};
-
-STDDIPINFO(Cninjau)
-
-static struct BurnDIPInfo MutantfDIPList[]=
-{
- {0x12, 0xff, 0xff, 0xff, NULL },
- {0x13, 0xff, 0xff, 0x7f, NULL },
-
- {0 , 0xfe, 0 , 8, "Coin A" },
- {0x12, 0x01, 0x07, 0x00, "3 Coins 1 Credits" },
- {0x12, 0x01, 0x07, 0x01, "2 Coins 1 Credits" },
- {0x12, 0x01, 0x07, 0x07, "1 Coin 1 Credits" },
- {0x12, 0x01, 0x07, 0x06, "1 Coin 2 Credits" },
- {0x12, 0x01, 0x07, 0x05, "1 Coin 3 Credits" },
- {0x12, 0x01, 0x07, 0x04, "1 Coin 4 Credits" },
- {0x12, 0x01, 0x07, 0x03, "1 Coin 5 Credits" },
- {0x12, 0x01, 0x07, 0x02, "1 Coin 6 Credits" },
-
- {0 , 0xfe, 0 , 8, "Coin B" },
- {0x12, 0x01, 0x38, 0x00, "3 Coins 1 Credits" },
- {0x12, 0x01, 0x38, 0x08, "2 Coins 1 Credits" },
- {0x12, 0x01, 0x38, 0x38, "1 Coin 1 Credits" },
- {0x12, 0x01, 0x38, 0x30, "1 Coin 2 Credits" },
- {0x12, 0x01, 0x38, 0x28, "1 Coin 3 Credits" },
- {0x12, 0x01, 0x38, 0x20, "1 Coin 4 Credits" },
- {0x12, 0x01, 0x38, 0x18, "1 Coin 5 Credits" },
- {0x12, 0x01, 0x38, 0x10, "1 Coin 6 Credits" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x12, 0x01, 0x40, 0x40, "Off" },
- {0x12, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Credit(s) to Start" },
- {0x12, 0x01, 0x80, 0x80, "1" },
- {0x12, 0x01, 0x80, 0x00, "2" },
-
- {0 , 0xfe, 0 , 4, "Timer Decrement" },
- {0x13, 0x01, 0x03, 0x01, "Slow" },
- {0x13, 0x01, 0x03, 0x03, "Normal" },
- {0x13, 0x01, 0x03, 0x02, "Fast" },
- {0x13, 0x01, 0x03, 0x00, "Very Fast" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x13, 0x01, 0x0c, 0x08, "Easy" },
- {0x13, 0x01, 0x0c, 0x0c, "Normal" },
- {0x13, 0x01, 0x0c, 0x04, "Hard" },
- {0x13, 0x01, 0x0c, 0x00, "Hardest" },
-
- {0 , 0xfe, 0 , 4, "Life Per Stage" },
- {0x13, 0x01, 0x30, 0x00, "Least" },
- {0x13, 0x01, 0x30, 0x10, "Little" },
- {0x13, 0x01, 0x30, 0x20, "Less" },
- {0x13, 0x01, 0x30, 0x30, "Normal" },
-
- {0 , 0xfe, 0 , 2, "Continues" },
- {0x13, 0x01, 0x40, 0x00, "Off" },
- {0x13, 0x01, 0x40, 0x40, "On" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x13, 0x01, 0x80, 0x80, "Off" },
- {0x13, 0x01, 0x80, 0x00, "On" },
-};
-
-STDDIPINFO(Mutantf)
-
-static struct BurnDIPInfo EdrandyDIPList[]=
-{
- {0x12, 0xff, 0xff, 0xbf, NULL },
- {0x13, 0xff, 0xff, 0x7f, NULL },
-
- {0 , 0xfe, 0 , 8, "Coin A" },
- {0x12, 0x01, 0x07, 0x00, "3 Coins 1 Credits" },
- {0x12, 0x01, 0x07, 0x01, "2 Coins 1 Credits" },
- {0x12, 0x01, 0x07, 0x07, "1 Coin 1 Credits" },
- {0x12, 0x01, 0x07, 0x06, "1 Coin 2 Credits" },
- {0x12, 0x01, 0x07, 0x05, "1 Coin 3 Credits" },
- {0x12, 0x01, 0x07, 0x04, "1 Coin 4 Credits" },
- {0x12, 0x01, 0x07, 0x03, "1 Coin 5 Credits" },
- {0x12, 0x01, 0x07, 0x02, "1 Coin 6 Credits" },
-
- {0 , 0xfe, 0 , 8, "Coin B" },
- {0x12, 0x01, 0x38, 0x00, "3 Coins 1 Credits" },
- {0x12, 0x01, 0x38, 0x08, "2 Coins 1 Credits" },
- {0x12, 0x01, 0x38, 0x38, "1 Coin 1 Credits" },
- {0x12, 0x01, 0x38, 0x30, "1 Coin 2 Credits" },
- {0x12, 0x01, 0x38, 0x28, "1 Coin 3 Credits" },
- {0x12, 0x01, 0x38, 0x20, "1 Coin 4 Credits" },
- {0x12, 0x01, 0x38, 0x18, "1 Coin 5 Credits" },
- {0x12, 0x01, 0x38, 0x10, "1 Coin 6 Credits" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x12, 0x01, 0x40, 0x00, "Off" },
- {0x12, 0x01, 0x40, 0x40, "On" },
-
- {0 , 0xfe, 0 , 2, "Credit(s) to Start" },
- {0x12, 0x01, 0x80, 0x80, "1" },
- {0x12, 0x01, 0x80, 0x00, "2" },
-
- {0 , 0xfe, 0 , 4, "Player's Power" },
- {0x13, 0x01, 0x03, 0x01, "Very Low" },
- {0x13, 0x01, 0x03, 0x00, "Low" },
- {0x13, 0x01, 0x03, 0x03, "Medium" },
- {0x13, 0x01, 0x03, 0x02, "High" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x13, 0x01, 0x0c, 0x08, "Easy" },
- {0x13, 0x01, 0x0c, 0x0c, "Normal" },
- {0x13, 0x01, 0x0c, 0x04, "Hard" },
- {0x13, 0x01, 0x0c, 0x00, "Hardest" },
-
- {0 , 0xfe, 0 , 2, "Continues" },
- {0x13, 0x01, 0x40, 0x00, "Off" },
- {0x13, 0x01, 0x40, 0x40, "On" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x13, 0x01, 0x80, 0x80, "Off" },
- {0x13, 0x01, 0x80, 0x00, "On" },
-};
-
-STDDIPINFO(Edrandy)
-
-static struct BurnDIPInfo EdrandcDIPList[]=
-{
- {0x12, 0xff, 0xff, 0xbf, NULL },
- {0x13, 0xff, 0xff, 0x7f, NULL },
-
- {0 , 0xfe, 0 , 8, "Coin A" },
- {0x12, 0x01, 0x07, 0x00, "3 Coins 1 Credits" },
- {0x12, 0x01, 0x07, 0x01, "2 Coins 1 Credits" },
- {0x12, 0x01, 0x07, 0x07, "1 Coin 1 Credits" },
- {0x12, 0x01, 0x07, 0x06, "1 Coin 2 Credits" },
- {0x12, 0x01, 0x07, 0x05, "1 Coin 3 Credits" },
- {0x12, 0x01, 0x07, 0x04, "1 Coin 4 Credits" },
- {0x12, 0x01, 0x07, 0x03, "1 Coin 5 Credits" },
- {0x12, 0x01, 0x07, 0x02, "1 Coin 6 Credits" },
-
- {0 , 0xfe, 0 , 8, "Coin B" },
- {0x12, 0x01, 0x38, 0x00, "3 Coins 1 Credits" },
- {0x12, 0x01, 0x38, 0x08, "2 Coins 1 Credits" },
- {0x12, 0x01, 0x38, 0x38, "1 Coin 1 Credits" },
- {0x12, 0x01, 0x38, 0x30, "1 Coin 2 Credits" },
- {0x12, 0x01, 0x38, 0x28, "1 Coin 3 Credits" },
- {0x12, 0x01, 0x38, 0x20, "1 Coin 4 Credits" },
- {0x12, 0x01, 0x38, 0x18, "1 Coin 5 Credits" },
- {0x12, 0x01, 0x38, 0x10, "1 Coin 6 Credits" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x12, 0x01, 0x40, 0x00, "Off" },
- {0x12, 0x01, 0x40, 0x40, "On" },
-
- {0 , 0xfe, 0 , 2, "Unknown" },
- {0x12, 0x01, 0x80, 0x80, "Off" },
- {0x12, 0x01, 0x80, 0x00, "On" },
-
- {0 , 0xfe, 0 , 4, "Player's Power" },
- {0x13, 0x01, 0x03, 0x01, "Very Low" },
- {0x13, 0x01, 0x03, 0x00, "Low" },
- {0x13, 0x01, 0x03, 0x03, "Medium" },
- {0x13, 0x01, 0x03, 0x02, "High" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x13, 0x01, 0x0c, 0x08, "Easy" },
- {0x13, 0x01, 0x0c, 0x0c, "Normal" },
- {0x13, 0x01, 0x0c, 0x04, "Hard" },
- {0x13, 0x01, 0x0c, 0x00, "Hardest" },
-
- {0 , 0xfe, 0 , 2, "Continues" },
- {0x13, 0x01, 0x40, 0x00, "Off" },
- {0x13, 0x01, 0x40, 0x40, "On" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x13, 0x01, 0x80, 0x80, "Off" },
- {0x13, 0x01, 0x80, 0x00, "On" },
-};
-
-STDDIPINFO(Edrandc)
-
-static struct BurnDIPInfo Robocop2DIPList[]=
-{
- {0x14, 0xff, 0xff, 0xbf, NULL },
- {0x15, 0xff, 0xff, 0x7f, NULL },
- {0x16, 0xff, 0xff, 0xff, NULL },
-
- {0 , 0xfe, 0 , 8, "Coin A" },
- {0x14, 0x01, 0x07, 0x00, "3 Coins 1 Credits" },
- {0x14, 0x01, 0x07, 0x01, "2 Coins 1 Credits" },
- {0x14, 0x01, 0x07, 0x07, "1 Coin 1 Credits" },
- {0x14, 0x01, 0x07, 0x06, "1 Coin 2 Credits" },
- {0x14, 0x01, 0x07, 0x05, "1 Coin 3 Credits" },
- {0x14, 0x01, 0x07, 0x04, "1 Coin 4 Credits" },
- {0x14, 0x01, 0x07, 0x03, "1 Coin 5 Credits" },
- {0x14, 0x01, 0x07, 0x02, "1 Coin 6 Credits" },
-
- {0 , 0xfe, 0 , 8, "Coin B" },
- {0x14, 0x01, 0x38, 0x00, "3 Coins 1 Credits" },
- {0x14, 0x01, 0x38, 0x08, "2 Coins 1 Credits" },
- {0x14, 0x01, 0x38, 0x38, "1 Coin 1 Credits" },
- {0x14, 0x01, 0x38, 0x30, "1 Coin 2 Credits" },
- {0x14, 0x01, 0x38, 0x28, "1 Coin 3 Credits" },
- {0x14, 0x01, 0x38, 0x20, "1 Coin 4 Credits" },
- {0x14, 0x01, 0x38, 0x18, "1 Coin 5 Credits" },
- {0x14, 0x01, 0x38, 0x10, "1 Coin 6 Credits" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x14, 0x01, 0x40, 0x00, "Off" },
- {0x14, 0x01, 0x40, 0x40, "On" },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x15, 0x01, 0x03, 0x01, "1" },
- {0x15, 0x01, 0x03, 0x00, "2" },
- {0x15, 0x01, 0x03, 0x03, "3" },
- {0x15, 0x01, 0x03, 0x02, "4" },
-
- {0 , 0xfe, 0 , 4, "Time" },
- {0x15, 0x01, 0x0c, 0x08, "400 Seconds" },
- {0x15, 0x01, 0x0c, 0x0c, "300 Seconds" },
- {0x15, 0x01, 0x0c, 0x04, "200 Seconds" },
- {0x15, 0x01, 0x0c, 0x00, "100 Seconds" },
-
- {0 , 0xfe, 0 , 4, "Health" },
- {0x15, 0x01, 0x30, 0x00, "17" },
- {0x15, 0x01, 0x30, 0x10, "24" },
- {0x15, 0x01, 0x30, 0x30, "33" },
- {0x15, 0x01, 0x30, 0x20, "40" },
-
- {0 , 0xfe, 0 , 2, "Continues" },
- {0x15, 0x01, 0x40, 0x00, "Off" },
- {0x15, 0x01, 0x40, 0x40, "On" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x15, 0x01, 0x80, 0x80, "Off" },
- {0x15, 0x01, 0x80, 0x00, "On" },
-
- {0 , 0xfe, 0 , 4, "Bullets" },
- {0x16, 0x01, 0x03, 0x00, "Least" },
- {0x16, 0x01, 0x03, 0x01, "Less" },
- {0x16, 0x01, 0x03, 0x03, "Normal" },
- {0x16, 0x01, 0x03, 0x02, "More" },
-
- {0 , 0xfe, 0 , 4, "Enemy Movement" },
- {0x16, 0x01, 0x0c, 0x08, "Slow" },
- {0x16, 0x01, 0x0c, 0x0c, "Normal" },
- {0x16, 0x01, 0x0c, 0x04, "Fast" },
- {0x16, 0x01, 0x0c, 0x00, "Fastest" },
-
- {0 , 0xfe, 0 , 4, "Enemy Strength" },
- {0x16, 0x01, 0x30, 0x20, "Less" },
- {0x16, 0x01, 0x30, 0x30, "Normal" },
- {0x16, 0x01, 0x30, 0x10, "More" },
- {0x16, 0x01, 0x30, 0x00, "Most" },
-
- {0 , 0xfe, 0 , 2, "Enemy Weapon Speed" },
- {0x16, 0x01, 0x40, 0x40, "Normal" },
- {0x16, 0x01, 0x40, 0x00, "Fast" },
-
- {0 , 0xfe, 0 , 2, "Game Over Message" },
- {0x16, 0x01, 0x80, 0x80, "Off" },
- {0x16, 0x01, 0x80, 0x00, "On" },
-};
-
-STDDIPINFO(Robocop2)
-
-void __fastcall cninja_main_write_word(UINT32 address, UINT16 data)
-{
- deco16_write_control_word(0, address, 0x140000, data)
- deco16_write_control_word(1, address, 0x150000, data)
-
- switch (address)
- {
- case 0x190000:
- case 0x1a4000:
- irq_mask = data & 0xff;
- return;
-
- case 0x190002:
- case 0x1a4002:
- {
- scanline = data & 0xff;
-
- if ((~irq_mask & 0x02) && (scanline > 0) && (scanline < 240)) {
- irq_timer = scanline;
- } else {
- irq_timer = -1;
- }
- }
- return;
-
- case 0x1ac000:
- case 0x1b4000:
- memcpy (DrvSprBuf, DrvSprRAM, 0x800);
- return;
-
- case 0x17ff2a:
- case 0x198064:
- case 0x1bc0a8:
- if (has_z80) {
- *soundlatch = data & 0xff;
- ZetNmi();
- } else {
- deco16_soundlatch = data & 0xff;
- h6280SetIRQLine(0, CPU_IRQSTATUS_ACK);
- }
- break;
- }
-
- if (address >= 0x198000 && address <= 0x19bfff) { // edrandy
- deco146_104_prot_ww(0x198000, address, data);
- return;
- }
-
- if (address >= 0x1a0000 && address <= 0x1a3fff) { // edrandy
- deco146_104_prot_ww(0x1a0000, address, data);
- return;
- }
-
- if (address >= 0x1bc000 && address <= 0x1bffff) { // cninja
- deco146_104_prot_ww(0, address, data);
- return;
- }
-}
-
-void __fastcall cninja_main_write_byte(UINT32 address, UINT8 data)
-{
- // need for cliffhanger
- deco16_write_control_byte(0, address, 0x140000, data)
- deco16_write_control_byte(1, address, 0x150000, data)
-
- switch (address)
- {
- // case 0x190000:
- case 0x190001:
- // case 0x1a4000:
- case 0x1a4001:
- irq_mask = data & 0xff;
- return;
-
- case 0x190002:
- case 0x190003:
- case 0x1a4002:
- case 0x1a4003:
- {
- scanline = data & 0xff;
-
- if ((~irq_mask & 0x02) && (scanline > 0) && (scanline < 240)) {
- irq_timer = scanline;
- } else {
- irq_timer = -1;
- }
- }
- return;
-
- // case 0x1ac000:
- case 0x1ac001:
- // case 0x1b4000:
- case 0x1b4001:
- memcpy (DrvSprBuf, DrvSprRAM, 0x800);
- return;
-
- case 0x198065:
- case 0x1bc0a9:
- if (has_z80) {
- *soundlatch = data;
- ZetNmi();
- } else {
- deco16_soundlatch = data;
- h6280SetIRQLine(0, CPU_IRQSTATUS_ACK);
- }
- break;
- }
-
- if (address >= 0x198000 && address <= 0x19bfff) { // edrandy
- deco146_104_prot_wb(0x198000, address, data);
- return;
- }
-
- if (address >= 0x1a0000 && address <= 0x1a3fff) { // edrandy
- deco146_104_prot_wb(0x1a0000, address, data);
- return;
- }
-
- if (address >= 0x1bc000 && address <= 0x1bffff) { // cninja
- deco146_104_prot_wb(0, address, data);
- return;
- }
-
- //bprintf(PRINT_NORMAL, _T("Write Byte %x, %x\n"), address, data);
-}
-
-UINT16 __fastcall cninja_main_read_word(UINT32 address)
-{
- switch (address)
- {
- case 0x17ff22:
- return (DrvDips[1] << 8) | (DrvDips[0] << 0);
-
- case 0x17ff28:
- return (DrvInputs[1] & 0x07) | (deco16_vblank & 0x08);
-
- case 0x17ff2c:
- return DrvInputs[0];
-
- case 0x1a4002:
- case 0x190002:
- return scanline;
-
- case 0x1a4004:
- case 0x190004:
- SekSetIRQLine(3, CPU_IRQSTATUS_NONE);
- SekSetIRQLine(4, CPU_IRQSTATUS_NONE);
- return 0;
- }
-
- if (address >= 0x198000 && address <= 0x19bfff) { // edrandy
- return deco146_104_prot_rw(0x198000, address);
- }
-
- if (address >= 0x1a0000 && address <= 0x1a3fff) { // edrandy
- return deco146_104_prot_rw(0x1a0000, address);
- }
-
- if (address >= 0x1bc000 && address <= 0x1bffff) { // cninja
- return deco146_104_prot_rw(0, address);
- }
-
- //bprintf(PRINT_NORMAL, _T("Read Word %x, %x\n"), address);
-
- return 0;
-}
-
-UINT8 __fastcall cninja_main_read_byte(UINT32 address)
-{
- switch (address)
- {
- case 0x17ff22:
- return DrvDips[1];
-
- case 0x17ff23:
- return DrvDips[0];
-
- // case 0x17ff28:
- case 0x17ff29:
- return (DrvInputs[1] & 0x07) | (deco16_vblank & 0x08);
-
- case 0x17ff2c:
- return DrvInputs[0] >> 8;
-
- case 0x17ff2d:
- return DrvInputs[0];
-
- // case 0x1a4002:
- case 0x1a4003:
- // case 0x190002:
- case 0x190003:
- return scanline;
-
- // case 0x1a4004:
- case 0x1a4005:
- // case 0x190004:
- case 0x190005:
- SekSetIRQLine(3, CPU_IRQSTATUS_NONE);
- SekSetIRQLine(4, CPU_IRQSTATUS_NONE);
- return 0;
- }
-
- if (address >= 0x198000 && address <= 0x19bfff) { // edrandy
- return deco146_104_prot_rb(0x198000, address);
- }
-
- if (address >= 0x1a0000 && address <= 0x1a3fff) { // edrandy
- return deco146_104_prot_rb(0x1a0000, address);
- }
-
- if (address >= 0x1bc000 && address <= 0x1bffff) { // cninja
- return deco146_104_prot_rb(0, address);
- }
-
- //bprintf(PRINT_NORMAL, _T("Read Byte %x, %x\n"), address);
-
- return 0;
-}
-
-void __fastcall mutantf_main_write_word(UINT32 address, UINT16 data)
-{
- deco16_write_control_word(0, address, 0x300000, data)
- deco16_write_control_word(1, address, 0x310000, data)
-
- switch (address)
- {
- case 0x180000:
- deco16_priority = data;
- return;
-
- case 0x1a0064:
- deco16_soundlatch = data & 0xff;
- h6280SetIRQLine(0, CPU_IRQSTATUS_ACK);
- break;
-
- case 0x1c0000:
- memcpy (DrvSprBuf, DrvSprRAM, 0x800);
- return;
-
- case 0x1e0000:
- memcpy (DrvSprBuf1, DrvSprRAM1, 0x800);
- return;
- }
-
- if (address >= 0x1a0000 && address <= 0x1a3fff) {
- deco146_104_prot_ww(0, address, data);
- }
-}
-
-void __fastcall mutantf_main_write_byte(UINT32 address, UINT8 data)
-{
- switch (address)
- {
- case 0x180000:
- case 0x180001:
- deco16_priority = data;
- return;
-
- case 0x1c0000:
- case 0x1c0001:
- memcpy (DrvSprBuf, DrvSprRAM, 0x800);
- return;
-
- case 0x1e0000:
- case 0x1e0001:
- memcpy (DrvSprBuf1, DrvSprRAM1, 0x800);
- return;
-
- case 0x1a0065:
- deco16_soundlatch = data;
- h6280SetIRQLine(0, CPU_IRQSTATUS_ACK);
- break;
- }
-
- if (address >= 0x1a0000 && address <= 0x1a3fff) {
- deco146_104_prot_wb(0, address, data);
- }
-}
-
-UINT16 __fastcall mutantf_main_read_word(UINT32 address)
-{
- if (address >= 0x1a0000 && address <= 0x1a3fff) {
- return deco146_104_prot_rw(0, address);
- }
-
- return 0;
-}
-
-UINT8 __fastcall mutantf_main_read_byte(UINT32 address)
-{
- if (address == 0x1c0001) return deco16ic_71_read() & 0xff;
-
- if (address >= 0x1a0000 && address <= 0x1a3fff) {
- return deco146_104_prot_rb(0, address);
- }
-
- return 0;
-}
-
-void __fastcall robocop2_main_write_word(UINT32 address, UINT16 data)
-{
- deco16_write_control_word(0, address, 0x140000, data)
- deco16_write_control_word(1, address, 0x150000, data)
-
- switch (address)
- {
- case 0x1b0000:
- irq_mask = data & 0xff;
- return;
-
- case 0x1b0002: {
- scanline = data & 0xff;
-
- if ((~irq_mask & 0x02) && (scanline > 0) && (scanline < 240)) {
- irq_timer = scanline;
- } else {
- irq_timer = -1;
- }
- }
- return;
-
- case 0x198000:
- memcpy (DrvSprBuf, DrvSprRAM, 0x800);
- return;
-
- case 0x18c064:
- deco16_soundlatch = data & 0xff;
- h6280SetIRQLine(0, CPU_IRQSTATUS_ACK);
- return;;
-
- case 0x1f0000:
- deco16_priority = data;
- return;
- }
-
- if (address >= 0x18c000 && address <= 0x18ffff) {
- deco146_104_prot_ww(0, address, data);
- }
-
-}
-
-void __fastcall robocop2_main_write_byte(UINT32 address, UINT8 data)
-{
- switch (address)
- {
- case 0x1b0000:
- case 0x1b0001:
-
- irq_mask = data & 0xff;
- return;
-
- case 0x1b0002:
- case 0x1b0003: {
- scanline = data & 0xff;
- if ((~irq_mask & 0x02) && (scanline > 0) && (scanline < 240)) {
- irq_timer = scanline;
- } else {
- irq_timer = -1;
- }
- }
- return;
-
- case 0x198000:
- case 0x198001:
- memcpy (DrvSprBuf, DrvSprRAM, 0x800);
- return;
-
- case 0x18c065:
- deco16_soundlatch = data;
- h6280SetIRQLine(0, CPU_IRQSTATUS_ACK);
- break;
-
- case 0x1f0000:
- case 0x1f0001:
- deco16_priority = data;
- return;
- }
-
- if (address >= 0x18c000 && address <= 0x18ffff) {
- deco146_104_prot_wb(0, address, data);
- }
-}
-
-UINT16 __fastcall robocop2_main_read_word(UINT32 address)
-{
- switch (address)
- {
- case 0x1b0002:
- return scanline;
-
- case 0x1b0004:
- SekSetIRQLine(3, CPU_IRQSTATUS_NONE);
- SekSetIRQLine(4, CPU_IRQSTATUS_NONE);
- return 0;
-
- case 0x1f8000:
- return DrvDips[2];
- }
-
- if (address >= 0x18c000 && address <= 0x18ffff) {
- return deco146_104_prot_rw(0, address);
- }
-
- return 0;
-}
-
-UINT8 __fastcall robocop2_main_read_byte(UINT32 address)
-{
- switch (address)
- {
- case 0x1b0002:
- case 0x1b0003:
- return scanline;
-
- case 0x1b0004:
- case 0x1b0005:
- SekSetIRQLine(3, CPU_IRQSTATUS_NONE);
- SekSetIRQLine(4, CPU_IRQSTATUS_NONE);
- return 0;
-
- case 0x1f8000:
- case 0x1f8001:
- return DrvDips[2];
- }
-
- if (address >= 0x18c000 && address <= 0x18ffff) {
- return deco146_104_prot_rb(0, address);
- }
-
- return 0;
-}
-
-void __fastcall stoneage_sound_write(UINT16 address, UINT8 data)
-{
- switch (address)
- {
- case 0x8800:
- BurnYM2151SelectRegister(data);
- return;
-
- case 0x8801:
- BurnYM2151WriteRegister(data);
- return;
-
- case 0x9800:
- MSM6295Command(0, data);
- return;
- }
-}
-
-UINT8 __fastcall stoneage_sound_read(UINT16 address)
-{
- switch (address)
- {
- case 0x8800:
- case 0x8801:
- return BurnYM2151ReadStatus();
-
- case 0x9800:
- return MSM6295ReadStatus(0);
-
- case 0xa000:
- ZetSetIRQLine(0x20, CPU_IRQSTATUS_NONE);
- return *soundlatch;
- }
-
- return 0;
-}
-
-static void DrvYM2151IrqHandler(INT32 state)
-{
- ZetSetIRQLine(0, state ? CPU_IRQSTATUS_ACK : CPU_IRQSTATUS_NONE);
-}
-
-static void DrvYM2151WritePort(UINT32, UINT32 data)
-{
- DrvOkiBank = data & 1;
-
- memcpy (DrvSndROM1, DrvSndROM1 + 0x40000 + (data & 1) * 0x40000, 0x40000);
-}
-
-static INT32 cninja_bank_callback(const INT32 bank)
-{
- if ((bank >> 4) & 0xf) return 0x0000;
- return 0x1000;
-}
-
-static INT32 mutantf_1_bank_callback(const INT32 bank)
-{
- return ((bank >> 4) & 0x3) << 12;
-}
-
-static INT32 mutantf_2_bank_callback(const INT32 bank)
-{
- return ((bank >> 5) & 0x1) << 14;
-}
-
-static INT32 robocop2_bank_callback(const INT32 bank)
-{
- return (bank & 0x30) << 8;
-}
-
-static INT32 DrvDoReset()
-{
- memset (AllRam, 0, RamEnd - AllRam);
-
- SekOpen(0);
- SekReset();
- SekClose();
-
- if (has_z80) {
- ZetOpen(0);
- ZetReset();
- ZetClose();
-
- MSM6295Reset(0);
- MSM6295Reset(1);
- BurnYM2151Reset();
- } else {
- deco16SoundReset();
- }
-
- DrvYM2151WritePort(0, 0); // set initial oki bank
-
- deco16Reset();
-
- scanline = 0;
- irq_mask = 0;
- irq_timer = -1;
-
- return 0;
-}
-
-static void DrvBootlegCharDecode(UINT8 *gfx, INT32 len)
-{
- UINT8 *dst = (UINT8*)BurnMalloc(len);
-
- memcpy (dst, gfx, len);
-
- for (INT32 r = 0; r < len; r+=4) {
- for (INT32 i = 0; i < 8; i++) {
- INT32 t0 = (dst[r + 3] >> (7 - (i & 7))) & 1;
- INT32 t1 = (dst[r + 1] >> (7 - (i & 7))) & 1;
- INT32 t2 = (dst[r + 2] >> (7 - (i & 7))) & 1;
- INT32 t3 = (dst[r + 0] >> (7 - (i & 7))) & 1;
-
- gfx[(r * 2) + i] = (t0 << 3) | (t1 << 2) | (t2 << 1) | (t3 << 0);
- }
- }
-
- BurnFree (dst);
-}
-
-static INT32 MemIndex()
-{
- UINT8 *Next; Next = AllMem;
-
- Drv68KROM = Next; Next += 0x100000;
- DrvZ80ROM = Next;
- DrvHucROM = Next; Next += 0x010000;
-
- DrvGfxROM0 = Next; Next += 0x200000;
- DrvGfxROM1 = Next; Next += 0x200000;
- DrvGfxROM2 = Next; Next += 0x300000;
- DrvGfxROM3 = Next; Next += 0xa00000;
- DrvGfxROM4 = Next; Next += 0x100000;
-
- MSM6295ROM = Next;
- DrvSndROM0 = Next; Next += 0x100000;
- DrvSndROM1 = Next; Next += 0x0c0000;
-
- DrvPalette = (UINT32*)Next; Next += 0x0800 * sizeof(UINT32);
-
- AllRam = Next;
-
- Drv68KRAM = Next; Next += 0x008000;
- DrvHucRAM = Next; Next += 0x002000;
- DrvSprRAM = Next; Next += 0x000800;
- DrvSprBuf = Next; Next += 0x000800;
- DrvSprRAM1 = Next; Next += 0x000800;
- DrvSprBuf1 = Next; Next += 0x000800;
- DrvPalRAM = Next; Next += 0x002000;
-
- DrvZ80RAM = Next; Next += 0x000800;
-
- soundlatch = Next; Next += 0x000001;
- flipscreen = Next; Next += 0x000001;
-
- RamEnd = Next;
-
- SoundBuffer = (INT16*)Next; Next += nBurnSoundLen * 2 * sizeof(INT16);
-
- MemEnd = Next;
-
- return 0;
-}
-
-static UINT16 deco_104_port_a_cb()
-{
- return DrvInputs[0];
-}
-
-static UINT16 deco_104_port_b_cb()
-{
- return (DrvInputs[1] & ~8) | deco16_vblank;
-}
-
-static UINT16 deco_104_port_c_cb()
-{
- return DrvInputs[2];
-}
-
-static void cninja_patch()
-{
- UINT16 *rom = (UINT16 *)Drv68KROM;
-
- for (INT32 i = 0; i < 0x80000 / 2; i++)
- {
- if (rom[i] == BURN_ENDIAN_SWAP_INT16(0x66ff) || rom[i] == BURN_ENDIAN_SWAP_INT16(0x67ff))
- {
- if (rom[i - 4] == BURN_ENDIAN_SWAP_INT16(0x0c39) || rom[i - 4] == BURN_ENDIAN_SWAP_INT16(0x0839))
- {
- rom[i - 0] = BURN_ENDIAN_SWAP_INT16(0x4e71);
- rom[i - 1] = BURN_ENDIAN_SWAP_INT16(0x4e71);
- rom[i - 2] = BURN_ENDIAN_SWAP_INT16(0x4e71);
- rom[i - 3] = BURN_ENDIAN_SWAP_INT16(0x4e71);
- rom[i - 4] = BURN_ENDIAN_SWAP_INT16(0x4e71);
- }
- }
- }
-}
-
-static INT32 CninjaInit()
-{
- BurnSetRefreshRate(58.00);
-
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(Drv68KROM + 0x00001, 0, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x00000, 1, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x40001, 2, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x40000, 3, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x80001, 4, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x80000, 5, 2)) return 1;
-
- if (BurnLoadRom(DrvHucROM + 0x00000, 6, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x00001, 7, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x00000, 8, 2)) return 1;
-
- if (BurnLoadRom(DrvGfxROM1 + 0x00000, 9, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM2 + 0x00000, 10, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x80000, 11, 1)) return 1;
-
- for (INT32 i = 0; i < 0x40000; i++) {
- INT32 n = DrvGfxROM2[i + 0x40000];
- DrvGfxROM2[i + 0x40000] = DrvGfxROM2[i + 0x80000];
- DrvGfxROM2[i + 0x80000] = n;
- }
-
- if (BurnLoadRom(DrvGfxROM3 + 0x000000, 12, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM3 + 0x000001, 13, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM3 + 0x100000, 14, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM3 + 0x100001, 15, 2)) return 1;
-
- BurnByteswap(DrvGfxROM3, 0x200000);
-
- if (BurnLoadRom(DrvSndROM0 + 0x00000, 16, 1)) return 1;
-
- if (BurnLoadRom(DrvSndROM1 + 0x40000, 17, 1)) return 1;
-
- deco16_tile_decode(DrvGfxROM0, DrvGfxROM0, 0x020000, 1);
- deco16_tile_decode(DrvGfxROM1, DrvGfxROM1, 0x080000, 0);
- deco16_tile_decode(DrvGfxROM2, DrvGfxROM2, 0x100000, 0);
-
- deco16_sprite_decode(DrvGfxROM3, 0x200000); // 16x16
-
- cninja_patch();
- }
-
- deco16Init(0, 1, 1);
- deco16_set_graphics(DrvGfxROM0, 0x20000 * 2, DrvGfxROM1, 0x080000 * 2, DrvGfxROM2, 0x100000 * 2);
- deco16_set_global_offsets(0, 8);
-
- deco16_set_color_base(2, 0x200 + 0x000);
- deco16_set_color_base(3, 0x200 + 0x300);
- deco16_set_bank_callback(2, cninja_bank_callback);
- deco16_set_bank_callback(3, cninja_bank_callback);
-
- // 146_104 prot
- deco_104_init();
- deco_146_104_set_use_magic_read_address_xor(1);
- deco_146_104_set_port_a_cb(deco_104_port_a_cb);
- deco_146_104_set_port_b_cb(deco_104_port_b_cb);
- deco_146_104_set_port_c_cb(deco_104_port_c_cb);
- //deco_146_104_set_soundlatch_cb(deco_146_soundlatch_dummy);
-
- SekInit(0, 0x68000);
- SekOpen(0);
- SekMapMemory(Drv68KROM, 0x000000, 0x0bffff, MAP_ROM);
- SekMapMemory(deco16_pf_ram[0], 0x144000, 0x144fff, MAP_RAM);
- SekMapMemory(deco16_pf_ram[1], 0x146000, 0x146fff, MAP_RAM);
- SekMapMemory(deco16_pf_rowscroll[0], 0x14c000, 0x14c7ff, MAP_RAM);
- SekMapMemory(deco16_pf_rowscroll[1], 0x14e000, 0x14e7ff, MAP_RAM);
- SekMapMemory(deco16_pf_ram[2], 0x154000, 0x154fff, MAP_RAM);
- SekMapMemory(deco16_pf_ram[3], 0x156000, 0x156fff, MAP_RAM);
- SekMapMemory(deco16_pf_rowscroll[2], 0x15c000, 0x15c7ff, MAP_RAM);
- SekMapMemory(deco16_pf_rowscroll[3], 0x15e000, 0x15e7ff, MAP_RAM);
- SekMapMemory(Drv68KRAM, 0x184000, 0x187fff, MAP_RAM);
- SekMapMemory(DrvPalRAM, 0x19c000, 0x19dfff, MAP_RAM);
- SekMapMemory(DrvSprRAM, 0x1a4000, 0x1a47ff, MAP_RAM);
- SekSetWriteWordHandler(0, cninja_main_write_word);
- SekSetWriteByteHandler(0, cninja_main_write_byte);
- SekSetReadWordHandler(0, cninja_main_read_word);
- SekSetReadByteHandler(0, cninja_main_read_byte);
- SekClose();
-
- deco16SoundInit(DrvHucROM, DrvHucRAM, 8055000, 1, DrvYM2151WritePort, 0.45, 1006875, 0.75, 2013750, 0.60);
- BurnYM2203SetAllRoutes(0, 0.60, BURN_SND_ROUTE_BOTH);
-
- GenericTilesInit();
-
- DrvDoReset();
-
- return 0;
-}
-
-static INT32 EdrandyInit()
-{
- BurnSetRefreshRate(58.00);
-
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(Drv68KROM + 0x00001, 0, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x00000, 1, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x40001, 2, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x40000, 3, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x80001, 4, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x80000, 5, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0xc0001, 6, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0xc0000, 7, 2)) return 1;
-
- if (BurnLoadRom(DrvHucROM + 0x00000, 8, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x00001, 9, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x00000, 10, 2)) return 1;
-
- if (BurnLoadRom(DrvGfxROM1 + 0x00000, 11, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM2 + 0x00000, 12, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x80000, 13, 1)) return 1;
-
- for (INT32 i = 0; i < 0x40000; i++) {
- INT32 n = DrvGfxROM2[i + 0x40000];
- DrvGfxROM2[i + 0x40000] = DrvGfxROM2[i + 0x80000];
- DrvGfxROM2[i + 0x80000] = n;
- }
-
- if (BurnLoadRom(DrvGfxROM3 + 0x000000, 14, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM3 + 0x000001, 15, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM3 + 0x100000, 16, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM3 + 0x100001, 17, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM3 + 0x200000, 18, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM3 + 0x200001, 19, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM3 + 0x300000, 20, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM3 + 0x300001, 21, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM3 + 0x400000, 22, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM3 + 0x400001, 23, 2)) return 1;
-
- BurnByteswap(DrvGfxROM3, 0x500000);
-
- if (BurnLoadRom(DrvSndROM0 + 0x00000, 24, 1)) return 1;
-
- if (BurnLoadRom(DrvSndROM1 + 0x40000, 25, 1)) return 1;
-
- deco16_tile_decode(DrvGfxROM0, DrvGfxROM0, 0x020000, 1);
- deco16_tile_decode(DrvGfxROM1, DrvGfxROM1, 0x080000, 0);
- deco16_tile_decode(DrvGfxROM2, DrvGfxROM2, 0x100000, 0);
-
- deco16_sprite_decode(DrvGfxROM3, 0x500000); // 16x16
- }
-
- deco16Init(0, 0, 1);
- deco16_set_graphics(DrvGfxROM0, 0x20000 * 2, DrvGfxROM1, 0x080000 * 2, DrvGfxROM2, 0x100000 * 2);
- deco16_set_global_offsets(0, 8);
-
- deco16_set_color_base(2, 0x200 + 0x000);
- deco16_set_color_base(3, 0x200 + 0x300);
- deco16_set_bank_callback(2, cninja_bank_callback);
- deco16_set_bank_callback(3, cninja_bank_callback);
-
- // 146_104 prot
- deco_146_init();
- deco_146_104_set_port_a_cb(deco_104_port_a_cb);
- deco_146_104_set_port_b_cb(deco_104_port_b_cb);
- deco_146_104_set_port_c_cb(deco_104_port_c_cb);
- //deco_146_104_set_soundlatch_cb(deco_146_soundlatch_dummy);
-
- SekInit(0, 0x68000);
- SekOpen(0);
- SekMapMemory(Drv68KROM, 0x000000, 0x0fffff, MAP_ROM);
- SekMapMemory(deco16_pf_ram[0], 0x144000, 0x144fff, MAP_RAM);
- SekMapMemory(deco16_pf_ram[1], 0x146000, 0x146fff, MAP_RAM);
- SekMapMemory(deco16_pf_rowscroll[0], 0x14c000, 0x14c7ff, MAP_RAM);
- SekMapMemory(deco16_pf_rowscroll[1], 0x14e000, 0x14e7ff, MAP_RAM);
- SekMapMemory(deco16_pf_ram[2], 0x154000, 0x154fff, MAP_RAM);
- SekMapMemory(deco16_pf_ram[3], 0x156000, 0x156fff, MAP_RAM);
- SekMapMemory(deco16_pf_rowscroll[2], 0x15c000, 0x15c7ff, MAP_RAM);
- SekMapMemory(deco16_pf_rowscroll[3], 0x15e000, 0x15e7ff, MAP_RAM);
- SekMapMemory(DrvPalRAM, 0x188000, 0x189fff, MAP_RAM);
- SekMapMemory(Drv68KRAM, 0x194000, 0x197fff, MAP_RAM);
- SekMapMemory(DrvSprRAM, 0x1bc000, 0x1bc7ff, MAP_RAM);
- SekSetWriteWordHandler(0, cninja_main_write_word);
- SekSetWriteByteHandler(0, cninja_main_write_byte);
- SekSetReadWordHandler(0, cninja_main_read_word);
- SekSetReadByteHandler(0, cninja_main_read_byte);
- SekClose();
-
- deco16SoundInit(DrvHucROM, DrvHucRAM, 8055000, 1, DrvYM2151WritePort, 0.45, 1006875, 0.75, 2013750, 0.60);
- BurnYM2203SetAllRoutes(0, 0.60, BURN_SND_ROUTE_BOTH);
-
- GenericTilesInit();
-
- DrvDoReset();
-
- return 0;
-}
-
-static INT32 MutantfInit()
-{
- BurnSetRefreshRate(58.00);
-
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(Drv68KROM + 0x00001, 0, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x00000, 1, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x40001, 2, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x40000, 3, 2)) return 1;
-
- if (BurnLoadRom(DrvHucROM + 0x00000, 4, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x00000, 5, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x00001, 6, 2)) return 1;
-
- if (BurnLoadRom(DrvGfxROM1 + 0x00000, 7, 1)) return 1;
-
- memcpy (DrvGfxROM0 + 0x50000, DrvGfxROM0 + 0x10000, 0x10000);
- memcpy (DrvGfxROM0 + 0x10000, DrvGfxROM1 + 0x00000, 0x40000);
- memcpy (DrvGfxROM0 + 0x60000, DrvGfxROM1 + 0x40000, 0x40000);
-
- if (BurnLoadRom(DrvGfxROM2 + 0x00000, 8, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x80000, 9, 1)) return 1;
-
- for (INT32 i = 0; i < 0x40000; i++) {
- INT32 n = DrvGfxROM2[i + 0x40000];
- DrvGfxROM2[i + 0x40000] = DrvGfxROM2[i + 0x80000];
- DrvGfxROM2[i + 0x80000] = n;
- }
-
- if (BurnLoadRom(DrvGfxROM3 + 0x000000, 10, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM3 + 0x000001, 13, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM3 + 0x200000, 11, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM3 + 0x200001, 14, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM3 + 0x400000, 12, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM3 + 0x400001, 15, 2)) return 1;
-
- if (BurnLoadRom(DrvGfxROM4 + 0x000001, 16, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM4 + 0x000003, 17, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM4 + 0x000000, 18, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM4 + 0x000002, 19, 4)) return 1;
-
- BurnByteswap(DrvGfxROM3, 0x500000);
- BurnByteswap(DrvGfxROM4, 0x040000);
-
- if (BurnLoadRom(DrvSndROM0 + 0x00000, 20, 1)) return 1;
-
- if (BurnLoadRom(DrvSndROM1 + 0x40000, 21, 1)) return 1;
-
- deco56_decrypt_gfx(DrvGfxROM0, 0xa0000);
- deco56_decrypt_gfx(DrvGfxROM1, 0x80000);
-
- deco16_tile_decode(DrvGfxROM0, DrvGfxROM0, 0x0a0000, 1);
- deco16_tile_decode(DrvGfxROM1, DrvGfxROM1, 0x080000, 0);
- deco16_tile_decode(DrvGfxROM2, DrvGfxROM2, 0x100000, 0);
-
- deco16_sprite_decode(DrvGfxROM3, 0x500000); // 16x16
- deco16_sprite_decode(DrvGfxROM4, 0x040000);
- }
-
- deco16Init(0, 0, 1);
- deco16_set_graphics(DrvGfxROM0, 0xa0000 * 2, DrvGfxROM1, 0x080000 * 2, DrvGfxROM2, 0x100000 * 2);
- deco16_set_global_offsets(0, 8);
-
- deco16_set_color_base(0, 0x000);
- deco16_set_color_base(1, 0x300);
- deco16_set_color_base(2, 0x200);
- deco16_set_color_base(3, 0x400);
- deco16_set_bank_callback(0, mutantf_1_bank_callback);
- deco16_set_bank_callback(1, mutantf_2_bank_callback);
- deco16_set_bank_callback(2, mutantf_1_bank_callback);
- deco16_set_bank_callback(3, mutantf_1_bank_callback);
-
- // 146_104 prot
- deco_146_init();
- deco_146_104_set_port_a_cb(deco_104_port_a_cb);
- deco_146_104_set_port_b_cb(deco_104_port_b_cb);
- deco_146_104_set_port_c_cb(deco_104_port_c_cb);
- //deco_146_104_set_soundlatch_cb(deco_146_soundlatch_dummy);
-
- SekInit(0, 0x68000);
- SekOpen(0);
- SekMapMemory(Drv68KROM, 0x000000, 0x07ffff, MAP_ROM);
- SekMapMemory(Drv68KRAM, 0x100000, 0x103fff, MAP_RAM);
- SekMapMemory(DrvSprRAM, 0x120000, 0x1207ff, MAP_RAM);
- SekMapMemory(DrvSprRAM1, 0x140000, 0x1407ff, MAP_RAM);
- SekMapMemory(DrvPalRAM, 0x160000, 0x161fff, MAP_RAM);
- SekMapMemory(deco16_pf_ram[0], 0x304000, 0x305fff, MAP_RAM);
- SekMapMemory(deco16_pf_ram[1], 0x306000, 0x307fff, MAP_RAM);
- SekMapMemory(deco16_pf_rowscroll[0], 0x308000, 0x3087ff, MAP_RAM);
- SekMapMemory(deco16_pf_rowscroll[1], 0x30a000, 0x30a7ff, MAP_RAM);
- SekMapMemory(deco16_pf_ram[2], 0x314000, 0x315fff, MAP_RAM);
- SekMapMemory(deco16_pf_ram[3], 0x316000, 0x317fff, MAP_RAM);
- SekMapMemory(deco16_pf_rowscroll[2], 0x318000, 0x3187ff, MAP_RAM);
- SekMapMemory(deco16_pf_rowscroll[3], 0x31a000, 0x31a7ff, MAP_RAM);
- SekSetWriteWordHandler(0, mutantf_main_write_word);
- SekSetWriteByteHandler(0, mutantf_main_write_byte);
- SekSetReadWordHandler(0, mutantf_main_read_word);
- SekSetReadByteHandler(0, mutantf_main_read_byte);
- SekClose();
-
- deco16SoundInit(DrvHucROM, DrvHucRAM, 8055000, 0, DrvYM2151WritePort, 0.45, 1006875, 0.75, 2013750, 0.60);
- BurnYM2151SetRoute(BURN_SND_YM2151_YM2151_ROUTE_1, 0.45, BURN_SND_ROUTE_LEFT);
- BurnYM2151SetRoute(BURN_SND_YM2151_YM2151_ROUTE_2, 0.45, BURN_SND_ROUTE_RIGHT);
-
- GenericTilesInit();
-
- DrvDoReset();
-
- return 0;
-}
-
-static INT32 CninjablInit()
-{
- BurnSetRefreshRate(58.00);
-
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(Drv68KROM + 0x00000, 0, 1)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x80000, 1, 1)) return 1;
-
- if (BurnLoadRom(DrvZ80ROM + 0x00000, 2, 1)) return 1;
-
- UINT8 *tmp = (UINT8*)BurnMalloc(0x400000);
-
- if (BurnLoadRom(tmp + 0x00000, 3, 2)) return 1;
- if (BurnLoadRom(tmp + 0x00001, 4, 2)) return 1;
- BurnByteswap(tmp, 0x400000);
-
- for (INT32 i = 0; i < 0x200000; i++) tmp[i] ^= 0xff;
-
- memcpy (DrvGfxROM0 + 0x000000, tmp + 0x000000, 0x020000);
- memcpy (DrvGfxROM1 + 0x000000, tmp + 0x080000, 0x080000);
- memcpy (DrvGfxROM2 + 0x000000, tmp + 0x180000, 0x080000);
- memcpy (DrvGfxROM2 + 0x080000, tmp + 0x100000, 0x080000);
- memcpy (DrvGfxROM3 + 0x000000, tmp + 0x200000, 0x200000);
-
- BurnFree(tmp);
-
- if (BurnLoadRom(DrvSndROM0 + 0x00000, 5, 1)) return 1;
-
- DrvBootlegCharDecode(DrvGfxROM0, 0x020000);
- deco16_sprite_decode(DrvGfxROM1, 0x080000);
- deco16_sprite_decode(DrvGfxROM2, 0x100000);
- deco16_sprite_decode(DrvGfxROM3, 0x200000);
- }
-
- deco16Init(0, 1, 1);
- deco16_set_graphics(DrvGfxROM0, 0x20000 * 2, DrvGfxROM1, 0x080000 * 2, DrvGfxROM2, 0x100000 * 2);
- deco16_set_global_offsets(0, 8);
- deco16_set_scroll_offs(3, 1, 2, 0);
- deco16_set_scroll_offs(2, 1, 2, 0);
- deco16_set_color_base(2, 0x200 + 0x000);
- deco16_set_color_base(3, 0x200 + 0x300);
- deco16_set_bank_callback(2, cninja_bank_callback);
- deco16_set_bank_callback(3, cninja_bank_callback);
-
- SekInit(0, 0x68000);
- SekOpen(0);
- SekMapMemory(Drv68KROM, 0x000000, 0x0bffff, MAP_ROM);
- SekMapMemory(DrvSprRAM, 0x138000, 0x1387ff, MAP_RAM);
- SekMapMemory(deco16_pf_ram[0], 0x144000, 0x144fff, MAP_RAM);
- SekMapMemory(deco16_pf_ram[1], 0x146000, 0x146fff, MAP_RAM);
- SekMapMemory(deco16_pf_rowscroll[0], 0x14c000, 0x14c7ff, MAP_RAM);
- SekMapMemory(deco16_pf_rowscroll[1], 0x14e000, 0x14e7ff, MAP_RAM);
- SekMapMemory(deco16_pf_ram[2], 0x154000, 0x154fff, MAP_RAM);
- SekMapMemory(deco16_pf_ram[3], 0x156000, 0x156fff, MAP_RAM);
- SekMapMemory(deco16_pf_rowscroll[2], 0x15c000, 0x15c7ff, MAP_RAM);
- SekMapMemory(deco16_pf_rowscroll[3], 0x15e000, 0x15e7ff, MAP_RAM);
- SekMapMemory(Drv68KRAM, 0x180000, 0x187fff, MAP_RAM);
- SekMapMemory(DrvPalRAM, 0x19c000, 0x19dfff, MAP_RAM);
- SekSetWriteWordHandler(0, cninja_main_write_word);
- SekSetWriteByteHandler(0, cninja_main_write_byte);
- SekSetReadWordHandler(0, cninja_main_read_word);
- SekSetReadByteHandler(0, cninja_main_read_byte);
- SekClose();
-
- has_z80 = 1;
-
- ZetInit(0);
- ZetOpen(0);
- ZetMapArea(0x0000, 0x7fff, 0, DrvZ80ROM);
- ZetMapArea(0x0000, 0x7fff, 2, DrvZ80ROM);
- ZetMapArea(0x8000, 0x87ff, 0, DrvZ80RAM);
- ZetMapArea(0x8000, 0x87ff, 1, DrvZ80RAM);
- ZetMapArea(0x8000, 0x87ff, 2, DrvZ80RAM);
- ZetSetWriteHandler(stoneage_sound_write);
- ZetSetReadHandler(stoneage_sound_read);
- ZetClose();
-
- BurnYM2151Init(3580000);
- BurnYM2151SetIrqHandler(&DrvYM2151IrqHandler);
- BurnYM2151SetAllRoutes(0.45, BURN_SND_ROUTE_BOTH);
-
- MSM6295Init(0, 1006875 / 132, 1);
- MSM6295Init(1, 2013750 / 132, 1);
- MSM6295SetRoute(0, 0.75, BURN_SND_ROUTE_BOTH);
- MSM6295SetRoute(1, 0.60, BURN_SND_ROUTE_BOTH);
-
- GenericTilesInit();
-
- DrvDoReset();
-
- return 0;
-}
-
-static INT32 StoneageInit()
-{
- BurnSetRefreshRate(58.00);
-
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(Drv68KROM + 0x00001, 0, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x00000, 1, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x40001, 2, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x40000, 3, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x80001, 4, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x80000, 5, 2)) return 1;
-
- if (BurnLoadRom(DrvZ80ROM + 0x00000, 6, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x00001, 7, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x00000, 8, 2)) return 1;
-
- if (BurnLoadRom(DrvGfxROM1 + 0x00000, 9, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM2 + 0x00000, 10, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x80000, 11, 1)) return 1;
-
- for (INT32 i = 0; i < 0x40000; i++) {
- INT32 n = DrvGfxROM2[i + 0x40000];
- DrvGfxROM2[i + 0x40000] = DrvGfxROM2[i + 0x80000];
- DrvGfxROM2[i + 0x80000] = n;
- }
-
-
- if (BurnLoadRom(DrvGfxROM3 + 0x000000, 12, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM3 + 0x000001, 13, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM3 + 0x100000, 14, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM3 + 0x100001, 15, 2)) return 1;
-
- BurnByteswap(DrvGfxROM3, 0x200000);
-
- if (BurnLoadRom(DrvSndROM0 + 0x00000, 16, 1)) return 1;
-
- memset (DrvSndROM1, 0xff, 0x80000);
-
- deco16_tile_decode(DrvGfxROM0, DrvGfxROM0, 0x020000, 1);
- deco16_tile_decode(DrvGfxROM1, DrvGfxROM1, 0x080000, 0);
- deco16_tile_decode(DrvGfxROM2, DrvGfxROM2, 0x100000, 0);
-
- deco16_sprite_decode(DrvGfxROM3, 0x200000); // 16x16
- }
-
- deco16Init(0, 1, 1);
- deco16_set_graphics(DrvGfxROM0, 0x20000 * 2, DrvGfxROM1, 0x080000 * 2, DrvGfxROM2, 0x100000 * 2);
- deco16_set_global_offsets(0, 8);
- deco16_set_scroll_offs(3, 1, 10, 0);
- deco16_set_scroll_offs(1, 1, 10, 0);
- deco16_set_scroll_offs(0, 1, -2, 0);
- deco16_set_color_base(2, 0x200 + 0x000);
- deco16_set_color_base(3, 0x200 + 0x300);
- deco16_set_bank_callback(2, cninja_bank_callback);
- deco16_set_bank_callback(3, cninja_bank_callback);
-
- SekInit(0, 0x68000);
- SekOpen(0);
- SekMapMemory(Drv68KROM, 0x000000, 0x0bffff, MAP_ROM);
- SekMapMemory(deco16_pf_ram[0], 0x144000, 0x144fff, MAP_RAM);
- SekMapMemory(deco16_pf_ram[1], 0x146000, 0x146fff, MAP_RAM);
- SekMapMemory(deco16_pf_rowscroll[0], 0x14c000, 0x14c7ff, MAP_RAM);
- SekMapMemory(deco16_pf_rowscroll[1], 0x14e000, 0x14e7ff, MAP_RAM);
- SekMapMemory(deco16_pf_ram[2], 0x154000, 0x154fff, MAP_RAM);
- SekMapMemory(deco16_pf_ram[3], 0x156000, 0x156fff, MAP_RAM);
- SekMapMemory(deco16_pf_rowscroll[2], 0x15c000, 0x15c7ff, MAP_RAM);
- SekMapMemory(deco16_pf_rowscroll[3], 0x15e000, 0x15e7ff, MAP_RAM);
- SekMapMemory(Drv68KRAM, 0x184000, 0x187fff, MAP_RAM);
- SekMapMemory(DrvPalRAM, 0x19c000, 0x19dfff, MAP_RAM);
- SekMapMemory(DrvSprRAM, 0x1a4000, 0x1a47ff, MAP_RAM);
- SekSetWriteWordHandler(0, cninja_main_write_word);
- SekSetWriteByteHandler(0, cninja_main_write_byte);
- SekSetReadWordHandler(0, cninja_main_read_word);
- SekSetReadByteHandler(0, cninja_main_read_byte);
- SekClose();
-
- has_z80 = 1;
-
- ZetInit(0);
- ZetOpen(0);
- ZetMapArea(0x0000, 0x7fff, 0, DrvZ80ROM);
- ZetMapArea(0x0000, 0x7fff, 2, DrvZ80ROM);
- ZetMapArea(0x8000, 0x87ff, 0, DrvZ80RAM);
- ZetMapArea(0x8000, 0x87ff, 1, DrvZ80RAM);
- ZetMapArea(0x8000, 0x87ff, 2, DrvZ80RAM);
- ZetSetWriteHandler(stoneage_sound_write);
- ZetSetReadHandler(stoneage_sound_read);
- ZetClose();
-
- MSM6295Init(0, 1006875 / 132, 1);
- MSM6295Init(1, 2013750 / 132, 1);
- MSM6295SetRoute(0, 0.75, BURN_SND_ROUTE_BOTH);
- MSM6295SetRoute(1, 0.60, BURN_SND_ROUTE_BOTH);
-
- BurnYM2151Init(3580000);
- BurnYM2151SetAllRoutes(0.45, BURN_SND_ROUTE_BOTH);
- BurnYM2151SetIrqHandler(&DrvYM2151IrqHandler);
-
- GenericTilesInit();
-
- DrvDoReset();
-
- return 0;
-}
-
-static INT32 Robocop2Init()
-{
- BurnSetRefreshRate(58.00);
-
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(Drv68KROM + 0x00001, 0, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x00000, 1, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x40001, 2, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x40000, 3, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x80001, 4, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x80000, 5, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0xc0001, 6, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0xc0000, 7, 2)) return 1;
-
- if (BurnLoadRom(DrvHucROM + 0x00000, 8, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x00001, 9, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x00000, 10, 2)) return 1;
-
- if (BurnLoadRom(DrvGfxROM1 + 0x00000, 11, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x80000, 12, 1)) return 1;
-
- for (INT32 i = 0; i < 0x40000; i++) {
- INT32 n = DrvGfxROM1[i + 0x40000];
- DrvGfxROM1[i + 0x40000] = DrvGfxROM1[i + 0x80000];
- DrvGfxROM1[i + 0x80000] = n;
- }
-
- if (BurnLoadRom(DrvGfxROM3 + 0x000000, 13, 1)) return 1;
- memcpy (DrvGfxROM2 + 0x000000, DrvGfxROM3 + 0x000000, 0x040000);
- memcpy (DrvGfxROM2 + 0x0c0000, DrvGfxROM3 + 0x040000, 0x040000);
-
- if (BurnLoadRom(DrvGfxROM3 + 0x000000, 14, 1)) return 1;
- memcpy (DrvGfxROM2 + 0x040000, DrvGfxROM3 + 0x000000, 0x040000);
- memcpy (DrvGfxROM2 + 0x100000, DrvGfxROM3 + 0x040000, 0x040000);
-
- if (BurnLoadRom(DrvGfxROM3 + 0x000000, 15, 1)) return 1;
- memcpy (DrvGfxROM2 + 0x080000, DrvGfxROM3 + 0x000000, 0x040000);
- memcpy (DrvGfxROM2 + 0x140000, DrvGfxROM3 + 0x040000, 0x040000);
-
- if (BurnLoadRom(DrvGfxROM3 + 0x000000, 16, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM3 + 0x000001, 17, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM3 + 0x100000, 18, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM3 + 0x100001, 19, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM3 + 0x200000, 20, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM3 + 0x200001, 21, 2)) return 1;
-
- BurnByteswap(DrvGfxROM3, 0x300000);
-
- if (BurnLoadRom(DrvSndROM0 + 0x00000, 22, 1)) return 1;
-
- if (BurnLoadRom(DrvSndROM1 + 0x40000, 23, 1)) return 1;
-
- deco16_tile_decode(DrvGfxROM0, DrvGfxROM0, 0x020000, 1);
- deco16_tile_decode(DrvGfxROM1, DrvGfxROM1, 0x100000, 0);
- deco16_tile_decode(DrvGfxROM2, DrvGfxROM4, 0x180000, 2);
- deco16_tile_decode(DrvGfxROM2, DrvGfxROM2, 0x180000, 0);
-
- deco16_sprite_decode(DrvGfxROM3, 0x300000); // 16x16
- }
-
- deco16Init(0, 0, 1);
- deco16_set_graphics(DrvGfxROM0, 0x20000 * 2, DrvGfxROM1, 0x100000 * 2, DrvGfxROM2, 0x180000 * 2);
- deco16_set_global_offsets(0, 8);
-
- deco16_set_color_base(2, 0x200 + 0x000);
- deco16_set_color_base(3, 0x200 + 0x300);
- deco16_set_bank_callback(1, robocop2_bank_callback);
- deco16_set_bank_callback(2, robocop2_bank_callback);
- deco16_set_bank_callback(3, robocop2_bank_callback);
-
- // 146_104 prot
- deco_146_init();
- deco_146_104_set_use_magic_read_address_xor(1);
- deco_146_104_set_port_a_cb(deco_104_port_a_cb);
- deco_146_104_set_port_b_cb(deco_104_port_b_cb);
- deco_146_104_set_port_c_cb(deco_104_port_c_cb);
- //deco_146_104_set_soundlatch_cb(deco_146_soundlatch_dummy);
-
- SekInit(0, 0x68000);
- SekOpen(0);
- SekMapMemory(Drv68KROM, 0x000000, 0x0fffff, MAP_ROM);
- SekMapMemory(deco16_pf_ram[0], 0x144000, 0x144fff, MAP_RAM);
- SekMapMemory(deco16_pf_ram[1], 0x146000, 0x146fff, MAP_RAM);
- SekMapMemory(deco16_pf_rowscroll[0], 0x14c000, 0x14c7ff, MAP_RAM);
- SekMapMemory(deco16_pf_rowscroll[1], 0x14e000, 0x14e7ff, MAP_RAM);
- SekMapMemory(deco16_pf_ram[2], 0x154000, 0x154fff, MAP_RAM);
- SekMapMemory(deco16_pf_ram[3], 0x156000, 0x156fff, MAP_RAM);
- SekMapMemory(deco16_pf_rowscroll[2], 0x15c000, 0x15c7ff, MAP_RAM);
- SekMapMemory(deco16_pf_rowscroll[3], 0x15e000, 0x15e7ff, MAP_RAM);
- SekMapMemory(DrvSprRAM, 0x180000, 0x1807ff, MAP_RAM);
- SekMapMemory(DrvPalRAM, 0x1a8000, 0x1a9fff, MAP_RAM);
- SekMapMemory(Drv68KRAM, 0x1b8000, 0x1bbfff, MAP_RAM);
- SekSetWriteWordHandler(0, robocop2_main_write_word);
- SekSetWriteByteHandler(0, robocop2_main_write_byte);
- SekSetReadWordHandler(0, robocop2_main_read_word);
- SekSetReadByteHandler(0, robocop2_main_read_byte);
- SekClose();
-
- deco16SoundInit(DrvHucROM, DrvHucRAM, 8055000, 1, DrvYM2151WritePort, 0.45, 1006875, 0.75, 2013750, 0.60);
- BurnYM2203SetAllRoutes(0, 0.60, BURN_SND_ROUTE_BOTH);
- BurnYM2151SetRoute(BURN_SND_YM2151_YM2151_ROUTE_1, 0.45, BURN_SND_ROUTE_LEFT);
- BurnYM2151SetRoute(BURN_SND_YM2151_YM2151_ROUTE_2, 0.45, BURN_SND_ROUTE_RIGHT);
-
- GenericTilesInit();
-
- DrvDoReset();
-
- return 0;
-}
-
-static INT32 DrvExit()
-{
- GenericTilesExit();
- deco16Exit();
-
- SekExit();
-
- if (has_z80) {
- ZetExit();
- has_z80 = 0;
- MSM6295Exit(0);
- MSM6295Exit(1);
- BurnYM2151Exit();
- } else {
- deco16SoundExit();
- }
-
- BurnFree (AllMem);
-
- MSM6295ROM = NULL;
-
- return 0;
-}
-
-static void cninja_draw_sprites(int xoffset)
-{
- UINT16 *buffered_spriteram = (UINT16*)DrvSprBuf;
-
- for (INT32 offs = 0x400 - 4; offs >=0 ; offs -= 4)
- {
- INT32 x, y, sprite, color, multi, flipx, flipy, inc, flash, mult, pri = 0;
- sprite = BURN_ENDIAN_SWAP_INT16(buffered_spriteram[offs + 1]);
- if (!sprite)
- continue;
-
- x = BURN_ENDIAN_SWAP_INT16(buffered_spriteram[offs + 2]);
-
- switch (x & 0xc000)
- {
- case 0x0000: pri = 0; break;
- case 0x4000: pri = 0xf0; break;
- case 0x8000: pri = 0xf0 | 0xcc; break;
- case 0xc000: pri = 0xf0 | 0xcc; break;
- }
-
- y = BURN_ENDIAN_SWAP_INT16(buffered_spriteram[offs]);
- flash = y & 0x1000;
- if (flash && (nCurrentFrame & 1))
- continue;
-
- color = (x >> 9) & 0x1f;
-
- flipx = y & 0x2000;
- flipy = y & 0x4000;
- multi = (1 << ((y & 0x0600) >> 9)) - 1;
-
- x = x & 0x01ff;
- y = y & 0x01ff;
- if (x >= nScreenWidth) x -= 512;
- if (y >= 256) y -= 512;
- x = 240 - x;
- y = 240 - y;
-
- sprite &= ~multi;
- if (flipy)
- inc = -1;
- else
- {
- sprite += multi;
- inc = 1;
- }
-
- if (*flipscreen)
- {
- y = 240 - y;
- x = (nScreenWidth - 16) - x;
- if (flipx) flipx = 0; else flipx = 1;
- if (flipy) flipy = 0; else flipy = 1;
- mult = 16;
- }
- else
- mult = -16;
-
- while (multi >= 0)
- {
- deco16_draw_prio_sprite(pTransDraw, DrvGfxROM3, sprite - multi * inc, (color << 4) + 0x300, x+xoffset, y + mult * multi, flipx, flipy, pri);
-
- multi--;
- }
- }
-}
-
-static void cninjabl_draw_sprites()
-{
- UINT16 *buffered_spriteram = (UINT16*)DrvSprBuf;
- INT32 offs;
- INT32 endoffs;
-
- endoffs = 0x400 - 4;
- for (offs = 0; offs < 0x400 - 4 ; offs += 4)
- {
- INT32 y = BURN_ENDIAN_SWAP_INT16(buffered_spriteram[offs + 1]);
-
- if (y == 0x180)
- {
- endoffs = offs;
- offs = 0x400 - 4;
- }
- }
-
- for (offs = endoffs; offs >=0 ; offs -= 4)
- {
- INT32 x, y, sprite, colour, multi, fx, fy, inc, flash, mult, pri = 0;
-
- sprite = BURN_ENDIAN_SWAP_INT16(buffered_spriteram[offs + 0]);
- y = BURN_ENDIAN_SWAP_INT16(buffered_spriteram[offs + 1]);
-
- if (!sprite)
- continue;
-
- x = BURN_ENDIAN_SWAP_INT16(buffered_spriteram[offs + 2]);
-
- switch (x & 0xc000)
- {
- case 0x0000: pri = 0; break;
- case 0x4000: pri = 0xf0; break;
- case 0x8000: pri = 0xf0 | 0xcc; break;
- case 0xc000: pri = 0xf0 | 0xcc; break;
- }
-
- flash = y & 0x1000;
- if (flash && (nCurrentFrame & 1))
- continue;
-
- colour = (x >> 9) & 0x1f;
-
- fx = y & 0x2000;
- fy = y & 0x4000;
-
- multi = (1 << ((y & 0x0600) >> 9)) - 1;
-
- y -= multi * 16;
- y += 4;
-
- x = x & 0x01ff;
- y = y & 0x01ff;
- if (x >= 256) x -= 512;
- if (y >= 256) y -= 512;
- x = 240 - x;
- y = 240 - y;
-
- if (fy)
- inc = -1;
- else
- {
- sprite += multi;
- inc = 1;
- }
-
- if (*flipscreen)
- {
- y = 240 - y;
- x = 240 - x;
- if (fx) fx = 0; else fx = 1;
- if (fy) fy = 0; else fy = 1;
- mult = 16;
- }
- else
- mult = -16;
-
- while (multi >= 0)
- {
- deco16_draw_prio_sprite(pTransDraw, DrvGfxROM3, sprite - multi * inc, (colour << 4) + 0x300, x, y + mult * multi, fx, fy, pri);
-
- multi--;
- }
- }
-}
-
-static void mutantf_draw_sprites(UINT8 *ram, UINT8 *gfx, INT32 colbank, INT32 gfxbank)
-{
- UINT16 *spriteptr = (UINT16*)ram;
-
- INT32 offs, end, inc;
-
- if (gfxbank == 4)
- {
- offs = 0;
- end = 0x400;
- inc = 4;
- }
- else
- {
- offs = 0x3fc;
- end = -4;
- inc = -4;
- }
-
- while (offs != end)
- {
- INT32 x, y, sprite, colour, fx, fy, w, h, sx, sy, x_mult, y_mult;
- INT32 alpha = 0xff;
-
- sprite = BURN_ENDIAN_SWAP_INT16(spriteptr[offs + 3]);
- if (!sprite)
- {
- offs += inc;
- continue;
- }
-
- sx = BURN_ENDIAN_SWAP_INT16(spriteptr[offs + 1]);
-
- h = (BURN_ENDIAN_SWAP_INT16(spriteptr[offs + 2]) & 0xf000) >> 12;
- w = (BURN_ENDIAN_SWAP_INT16(spriteptr[offs + 2]) & 0x0f00) >> 8;
-
- sy = BURN_ENDIAN_SWAP_INT16(spriteptr[offs]);
- if ((sy & 0x2000) && (nCurrentFrame & 1))
- {
- offs += inc;
- continue;
- }
-
- colour = (BURN_ENDIAN_SWAP_INT16(spriteptr[offs + 2]) >> 0) & 0x1f;
-
- if (gfxbank == 4)
- {
- alpha = 0x80;
- colour &= 0xf;
- }
-
- fx = (BURN_ENDIAN_SWAP_INT16(spriteptr[offs + 0]) & 0x4000);
- fy = (BURN_ENDIAN_SWAP_INT16(spriteptr[offs + 0]) & 0x8000);
-
- if (*flipscreen)
- {
- if (fx) fx = 0; else fx = 1;
- if (fy) fy = 0; else fy = 1;
-
- sx = sx & 0x01ff;
- sy = sy & 0x01ff;
- if (sx > 0x180) sx = -(0x200 - sx);
- if (sy > 0x180) sy = -(0x200 - sy);
-
- if (fx) { x_mult = -16; sx += 16 * w; } else { x_mult = 16; sx -= 16; }
- if (fy) { y_mult = -16; sy += 16 * h; } else { y_mult = 16; sy -= 16; }
- }
- else
- {
- sx = sx & 0x01ff;
- sy = sy & 0x01ff;
- if (sx & 0x100) sx = -(0x100 - (sx & 0xff));
- if (sy & 0x100) sy = -(0x100 - (sy & 0xff));
- sx = 304 - sx;
- sy = 240 - sy;
- if (sx >= 432) sx -= 512;
- if (sy >= 384) sy -= 512;
- if (fx) { x_mult = -16; sx += 16; } else { x_mult = 16; sx -= 16*w; }
- if (fy) { y_mult = -16; sy += 16; } else { y_mult = 16; sy -= 16*h; }
- }
-
- for (x = 0; x < w; x++)
- {
- for (y = 0; y < h; y++)
- {
- // needs alpha blending...
- deco16_draw_prio_sprite(pTransDraw, gfx, sprite + y + h * x, (colour << 4) + colbank, sx + x_mult * (w-x), sy + y_mult * (h-y), fx, fy, 0);
- }
- }
- offs += inc;
- }
-}
-
-static INT32 CninjaDraw()
-{
-// if (DrvRecalc) {
- deco16_palette_recalculate(DrvPalette, DrvPalRAM);
- DrvRecalc = 0;
-// }
-
- deco16_pf12_update();
- deco16_pf34_update();
-
- for (INT32 i = 0; i < nScreenWidth * nScreenHeight; i++) {
- pTransDraw[i] = 0x200;
- }
-
- deco16_clear_prio_map();
-
- if (nSpriteEnable & 1) deco16_draw_layer(3, pTransDraw, DECO16_LAYER_PRIORITY(0x01) | DECO16_LAYER_OPAQUE);
- if (nSpriteEnable & 2) deco16_draw_layer(2, pTransDraw, DECO16_LAYER_PRIORITY(0x02));
- if (nSpriteEnable & 4) deco16_draw_layer(1, pTransDraw, DECO16_LAYER_PRIORITY(0x02) | DECO16_LAYER_TRANSMASK1);
- if (nSpriteEnable & 8) deco16_draw_layer(1, pTransDraw, DECO16_LAYER_PRIORITY(0x04) | DECO16_LAYER_TRANSMASK0);
-
- cninja_draw_sprites(0);
-
- if (nSpriteEnable & 16) deco16_draw_layer(0, pTransDraw, 0);
-
- BurnTransferCopy(DrvPalette);
-
- return 0;
-}
-
-static INT32 CninjablDraw()
-{
-// if (DrvRecalc) {
- deco16_palette_recalculate(DrvPalette, DrvPalRAM);
- DrvRecalc = 0;
-// }
-
- deco16_pf12_update();
- deco16_pf34_update();
-
- for (INT32 i = 0; i < nScreenWidth * nScreenHeight; i++) {
- pTransDraw[i] = 0x200;
- }
-
- deco16_clear_prio_map();
-
- if (nSpriteEnable & 1) deco16_draw_layer(3, pTransDraw, DECO16_LAYER_PRIORITY(0x01) | DECO16_LAYER_OPAQUE);
- if (nSpriteEnable & 2) deco16_draw_layer(2, pTransDraw, DECO16_LAYER_PRIORITY(0x02));
- if (nSpriteEnable & 4) deco16_draw_layer(1, pTransDraw, DECO16_LAYER_PRIORITY(0x02) | DECO16_LAYER_TRANSMASK1);
- if (nSpriteEnable & 8) deco16_draw_layer(1, pTransDraw, DECO16_LAYER_PRIORITY(0x04) | DECO16_LAYER_TRANSMASK0);
-
- cninjabl_draw_sprites();
-
- if (nSpriteEnable & 16) deco16_draw_layer(0, pTransDraw, 0);
-
- BurnTransferCopy(DrvPalette);
-
- return 0;
-}
-
-static INT32 EdrandyStartDraw()
-{
- deco16_clear_prio_map();
-
- for (INT32 i = 0; i < nScreenWidth * nScreenHeight; i++) {
- pTransDraw[i] = 0;
- }
-
- return 0;
-}
-
-static INT32 EdrandyDrawScanline(INT32 line)
-{
- deco16_pf12_update();
- deco16_pf34_update();
-
- if (nSpriteEnable & 1) deco16_draw_layer_by_line(line, line+1, 3, pTransDraw, DECO16_LAYER_PRIORITY(0x01) | DECO16_LAYER_OPAQUE);
- if (nSpriteEnable & 2) deco16_draw_layer_by_line(line, line+1, 2, pTransDraw, DECO16_LAYER_PRIORITY(0x02));
- if (nSpriteEnable & 4) deco16_draw_layer_by_line(line, line+1, 1, pTransDraw, DECO16_LAYER_PRIORITY(0x04));
-
- return 0;
-}
-
-static INT32 EdrandyDraw()
-{
-// if (DrvRecalc) {
- deco16_palette_recalculate(DrvPalette, DrvPalRAM);
- DrvRecalc = 0;
-// }
-
- if (nBurnLayer & 1) cninja_draw_sprites(0);
-
- if (nSpriteEnable & 8) deco16_draw_layer(0, pTransDraw, 0);
-
- BurnTransferCopy(DrvPalette);
-
- return 0;
-}
-
-static INT32 Robocop2StartDraw()
-{
- deco16_clear_prio_map();
-
- for (INT32 i = 0; i < nScreenWidth * nScreenHeight; i++) {
- pTransDraw[i] = 0x200;
- }
-
- return 0;
-}
-
-static INT32 Robocop2DrawScanline(INT32 line)
-{
- deco16_pf12_update();
- deco16_pf34_update();
-
- INT32 layer_8bpp = 0;
-
- if (deco16_priority & 4)
- {
- deco16_set_color_mask(2, 0);
- deco16_set_color_mask(3, 0);
- deco16_set_graphics(2, DrvGfxROM4, 0x100000, 16);
- layer_8bpp = DECO16_LAYER_8BITSPERPIXEL;
- }
- else
- {
- deco16_set_color_mask(2, 0xf);
- deco16_set_color_mask(3, 0xf);
- deco16_set_graphics(2, DrvGfxROM2, 0x300000, 16);
-
- if (nSpriteEnable & 1) deco16_draw_layer_by_line(line, line+1, 3, pTransDraw, DECO16_LAYER_OPAQUE | DECO16_LAYER_PRIORITY(0x01));
- }
-
- if (deco16_priority & 8) {
- if (nSpriteEnable & 2) deco16_draw_layer_by_line(line, line+1, 1, pTransDraw, DECO16_LAYER_PRIORITY(0x02));
- if (nSpriteEnable & 4) deco16_draw_layer_by_line(line, line+1, 2, pTransDraw, DECO16_LAYER_PRIORITY(0x04) | layer_8bpp);
- } else {
- if (nSpriteEnable & 2) deco16_draw_layer_by_line(line, line+1, 2, pTransDraw, DECO16_LAYER_PRIORITY(0x02) | layer_8bpp);
- if (nSpriteEnable & 4) deco16_draw_layer_by_line(line, line+1, 1, pTransDraw, DECO16_LAYER_PRIORITY(0x04));
- }
-
- return 0;
-}
-
-static INT32 Robocop2Draw()
-{
-// if (DrvRecalc) {
- deco16_palette_recalculate(DrvPalette, DrvPalRAM);
- DrvRecalc = 0;
-// }
-
- cninja_draw_sprites(64);
-
- if (nSpriteEnable & 8) deco16_draw_layer(0, pTransDraw, 0);
-
- BurnTransferCopy(DrvPalette);
-
- return 0;
-}
-
-
-static INT32 MutantfDraw()
-{
-// if (DrvRecalc) {
- deco16_palette_recalculate(DrvPalette, DrvPalRAM);
- DrvRecalc = 0;
-// }
-
- deco16_pf12_update();
- deco16_pf34_update();
-
- for (INT32 i = 0; i < nScreenWidth * nScreenHeight; i++) {
- pTransDraw[i] = 0x400;
- }
-
- if (nSpriteEnable & 1) deco16_draw_layer(3, pTransDraw, DECO16_LAYER_OPAQUE);
- if (nSpriteEnable & 2) deco16_draw_layer(1, pTransDraw, 0);
- if (nSpriteEnable & 4) deco16_draw_layer(2, pTransDraw, 0);
-
- if (deco16_priority & 1)
- {
- deco16_clear_prio_map();
- mutantf_draw_sprites(DrvSprBuf, DrvGfxROM3, 0x100, 3);
- deco16_clear_prio_map();
- mutantf_draw_sprites(DrvSprBuf1, DrvGfxROM4, 0x700, 4);
- }
- else
- {
- deco16_clear_prio_map();
- mutantf_draw_sprites(DrvSprBuf1, DrvGfxROM4, 0x700, 4);
- deco16_clear_prio_map();
- mutantf_draw_sprites(DrvSprBuf, DrvGfxROM3, 0x100, 3);
- }
-
- if (nSpriteEnable & 8) deco16_draw_layer(0, pTransDraw, 0);
-
- BurnTransferCopy(DrvPalette);
-
- return 0;
-}
-
-static INT32 CninjaFrame()
-{
- if (DrvReset) {
- DrvDoReset();
- }
-
- {
- memset (DrvInputs, 0xff, 2 * sizeof(INT16));
- for (INT32 i = 0; i < 16; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- }
- DrvInputs[2] = (DrvDips[1] << 8) | (DrvDips[0] << 0);
- }
-
- INT32 nInterleave = 232; //58 * 4
- INT32 nSoundBufferPos = 0;
- INT32 nCyclesTotal[2] = { 12000000 / 58, 8055000 / 58 };
- INT32 nCyclesDone[2] = { 0, 0 };
-
- h6280NewFrame();
-
- SekOpen(0);
- h6280Open(0);
-
- deco16_vblank = 0x00;
-
- for (INT32 i = 0; i < nInterleave; i++)
- {
- nCyclesDone[0] += SekRun(nCyclesTotal[0] / nInterleave);
- BurnTimerUpdate((i + 1) * nCyclesTotal[1] / nInterleave);
-
- if (irq_timer == i) {
- SekSetIRQLine((irq_mask & 0x10) ? 3 : 4, CPU_IRQSTATUS_ACK);
- irq_timer = -1;
- }
- if (i == 206) deco16_vblank = 0x08;
-
- if (pBurnSoundOut && i%4 == 3) { // this fixes small tempo fluxuations in cninja
- INT32 nSegmentLength = nBurnSoundLen / (nInterleave / 4);
- INT16* pSoundBuf = SoundBuffer + (nSoundBufferPos << 1);
- deco16SoundUpdate(pSoundBuf, nSegmentLength);
- nSoundBufferPos += nSegmentLength;
- }
- }
-
- SekSetIRQLine(5, CPU_IRQSTATUS_AUTO);
- BurnTimerEndFrame(nCyclesTotal[1]);
-
- if (pBurnSoundOut) {
- BurnYM2203Update(pBurnSoundOut, nBurnSoundLen);
-
- INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
- INT16* pSoundBuf = SoundBuffer + (nSoundBufferPos << 1);
-
- if (nSegmentLength) {
- deco16SoundUpdate(pSoundBuf, nSegmentLength);
- }
-
- for (INT32 i = 0; i < nBurnSoundLen; i++) {
- pBurnSoundOut[(i << 1) + 0] = BURN_SND_CLIP(pBurnSoundOut[(i << 1) + 0] + SoundBuffer[(i << 1) + 0]);
- pBurnSoundOut[(i << 1) + 1] = BURN_SND_CLIP(pBurnSoundOut[(i << 1) + 1] + SoundBuffer[(i << 1) + 1]);
- }
- }
-
- h6280Close();
- SekClose();
-
- if (pBurnDraw) {
- BurnDrvRedraw();
- }
-
- return 0;
-}
-
-static INT32 EdrandyFrame()
-{
- if (DrvReset) {
- DrvDoReset();
- }
-
- {
- memset (DrvInputs, 0xff, 2 * sizeof(INT16));
- for (INT32 i = 0; i < 16; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- }
- DrvInputs[2] = (DrvDips[1] << 8) | (DrvDips[0] << 0);
- }
-
- INT32 nInterleave = 256; // scanlines
- INT32 nSoundBufferPos = 0;
- INT32 nCyclesTotal[2] = { 12000000 / 58, 8055000 / 58 };
- INT32 nCyclesDone[2] = { 0, 0 };
-
- h6280NewFrame();
-
- SekOpen(0);
- h6280Open(0);
-
- deco16_vblank = 0x00;
- EdrandyStartDraw();
-
- for (INT32 i = 0; i < nInterleave; i++)
- {
- if (irq_timer == i) {
- SekSetIRQLine((irq_mask & 0x10) ? 3 : 4, CPU_IRQSTATUS_ACK);
- irq_timer = -1;
- }
- nCyclesDone[0] += SekRun(nCyclesTotal[0] / nInterleave);
- nCyclesDone[1] += h6280Run(nCyclesTotal[1] / nInterleave);
-
- if (i >= 8) {
- EdrandyDrawScanline(i-8);
- }
-
- if (i == 248) {
- SekSetIRQLine(5, CPU_IRQSTATUS_AUTO);
- deco16_vblank = 0x08;
- }
-
- if (pBurnSoundOut && i%4 == 3) {
- INT32 nSegmentLength = nBurnSoundLen / (nInterleave / 4);
- INT16* pSoundBuf = SoundBuffer + (nSoundBufferPos << 1);
- deco16SoundUpdate(pSoundBuf, nSegmentLength);
- nSoundBufferPos += nSegmentLength;
- }
- }
-
- BurnTimerEndFrame(nCyclesTotal[1]);
-
- if (pBurnSoundOut) {
- BurnYM2203Update(pBurnSoundOut, nBurnSoundLen);
-
- INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
- INT16* pSoundBuf = SoundBuffer + (nSoundBufferPos << 1);
-
- if (nSegmentLength) {
- deco16SoundUpdate(pSoundBuf, nSegmentLength);
- }
-
- for (INT32 i = 0; i < nBurnSoundLen; i++) {
- pBurnSoundOut[(i << 1) + 0] = BURN_SND_CLIP(pBurnSoundOut[(i << 1) + 0] + SoundBuffer[(i << 1) + 0]);
- pBurnSoundOut[(i << 1) + 1] = BURN_SND_CLIP(pBurnSoundOut[(i << 1) + 1] + SoundBuffer[(i << 1) + 1]);
- }
- }
-
- h6280Close();
- SekClose();
-
- if (pBurnDraw) {
- BurnDrvRedraw();
- }
-
- return 0;
-}
-
-static INT32 Robocop2Frame()
-{
- if (DrvReset) {
- DrvDoReset();
- }
-
- {
- memset (DrvInputs, 0xff, 2 * sizeof(INT16));
- for (INT32 i = 0; i < 16; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- }
- DrvInputs[2] = (DrvDips[1] << 8) | (DrvDips[0] << 0);
- }
-
- INT32 nInterleave = 256; // scanlines
- INT32 nSoundBufferPos = 0;
- INT32 nCyclesTotal[2] = { 14000000 / 58, 8055000 / 58 };
- INT32 nCyclesDone[2] = { 0, 0 };
-
- h6280NewFrame();
-
- SekOpen(0);
- h6280Open(0);
-
- deco16_vblank = 0x08;
-
- Robocop2StartDraw();
-
- for (INT32 i = 0; i < nInterleave; i++)
- {
- nCyclesDone[0] += SekRun(nCyclesTotal[0] / nInterleave);
- nCyclesDone[1] += h6280Run(nCyclesTotal[1] / nInterleave);
-
- if (irq_timer == i) {
- SekSetIRQLine((irq_mask & 0x10) ? 3 : 4, CPU_IRQSTATUS_ACK);
- irq_timer = -1;
- }
-
- if (i >= 8 && i < 248) {
- deco16_vblank = 0;
- Robocop2DrawScanline(i-8);
- }
-
- if (i == 248) {
- deco16_vblank = 0x08;
- }
-
- if (pBurnSoundOut && i%8 == 7) {
- INT32 nSegmentLength = nBurnSoundLen / (nInterleave / 8);
- INT16* pSoundBuf = SoundBuffer + (nSoundBufferPos << 1);
- deco16SoundUpdate(pSoundBuf, nSegmentLength);
- nSoundBufferPos += nSegmentLength;
- }
- }
- SekSetIRQLine(5, CPU_IRQSTATUS_AUTO);
-
- BurnTimerEndFrame(nCyclesTotal[1]);
-
- if (pBurnSoundOut) {
- BurnYM2203Update(pBurnSoundOut, nBurnSoundLen);
-
- INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
- INT16* pSoundBuf = SoundBuffer + (nSoundBufferPos << 1);
-
- if (nSegmentLength) {
- deco16SoundUpdate(pSoundBuf, nSegmentLength);
- }
-
- for (INT32 i = 0; i < nBurnSoundLen; i++) {
- pBurnSoundOut[(i << 1) + 0] = BURN_SND_CLIP(pBurnSoundOut[(i << 1) + 0] + SoundBuffer[(i << 1) + 0]);
- pBurnSoundOut[(i << 1) + 1] = BURN_SND_CLIP(pBurnSoundOut[(i << 1) + 1] + SoundBuffer[(i << 1) + 1]);
- }
- }
-
- h6280Close();
- SekClose();
-
- if (pBurnDraw) {
- BurnDrvRedraw();
- }
-
- return 0;
-}
-
-static INT32 MutantfFrame()
-{
- if (DrvReset) {
- DrvDoReset();
- }
-
- {
- memset (DrvInputs, 0xff, 2 * sizeof(INT16));
- for (INT32 i = 0; i < 16; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- }
- DrvInputs[2] = (DrvDips[1] << 8) | (DrvDips[0] << 0);
- }
-
- INT32 nInterleave = 256;
- INT32 nSoundBufferPos = 0;
- INT32 nCyclesTotal[2] = { 14000000 / 58, 8055000 / 58 };
- INT32 nCyclesDone[2] = { 0, 0 };
-
- h6280NewFrame();
-
- SekOpen(0);
- h6280Open(0);
-
- deco16_vblank = 0;
-
- for (INT32 i = 0; i < nInterleave; i++)
- {
- nCyclesDone[0] += SekRun(nCyclesTotal[0] / nInterleave);
- nCyclesDone[1] += h6280Run(nCyclesTotal[1] / nInterleave);
-
- if (i == 240) deco16_vblank = 0x08;
-
- if (pBurnSoundOut && i%4 == 3) {
- INT32 nSegmentLength = nBurnSoundLen / (nInterleave / 4);
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- deco16SoundUpdate(pSoundBuf, nSegmentLength);
- nSoundBufferPos += nSegmentLength;
- }
- }
-
- SekSetIRQLine(6, CPU_IRQSTATUS_AUTO);
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
-
- if (nSegmentLength) {
- deco16SoundUpdate(pSoundBuf, nSegmentLength);
- }
- }
-
- h6280Close();
- SekClose();
-
- if (pBurnDraw) {
- MutantfDraw();
- }
-
- return 0;
-}
-
-static INT32 StoneageFrame()
-{
- if (DrvReset) {
- DrvDoReset();
- }
-
- {
- memset (DrvInputs, 0xff, 2 * sizeof(INT16));
- for (INT32 i = 0; i < 16; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- }
- DrvInputs[2] = (DrvDips[1] << 8) | (DrvDips[0] << 0);
- }
-
- INT32 nInterleave = 256;
- INT32 nSoundBufferPos = 0;
- INT32 nCyclesTotal[2] = { 12000000 / 58, 3579545 / 58 };
- INT32 nCyclesDone[2] = { 0, 0 };
-
- SekOpen(0);
- ZetOpen(0);
-
- deco16_vblank = 0;
-
- for (INT32 i = 0; i < nInterleave; i++)
- {
- nCyclesDone[0] += SekRun(nCyclesTotal[0] / nInterleave);
- nCyclesDone[1] += ZetRun(nCyclesTotal[1] / nInterleave);
-
- if (irq_timer == i) {
- SekSetIRQLine((irq_mask & 0x10) ? 3 : 4, CPU_IRQSTATUS_ACK);
- irq_timer = -1;
- }
- if (i == 248) deco16_vblank = 0x08;
-
- if (pBurnSoundOut && i%4 == 3) {
- INT32 nSegmentLength = nBurnSoundLen / (nInterleave / 4);
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- BurnYM2151Render(pSoundBuf, nSegmentLength);
- MSM6295Render(0, pSoundBuf, nSegmentLength);
- MSM6295Render(1, pSoundBuf, nSegmentLength);
- nSoundBufferPos += nSegmentLength;
- }
- }
-
- SekSetIRQLine(5, CPU_IRQSTATUS_AUTO);
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- if (nSegmentLength) {
- BurnYM2151Render(pSoundBuf, nSegmentLength);
- MSM6295Render(0, pSoundBuf, nSegmentLength);
- MSM6295Render(1, pSoundBuf, nSegmentLength);
- }
- }
-
- ZetClose();
- SekClose();
-
- if (pBurnDraw) {
- BurnDrvRedraw();
- }
-
- return 0;
-}
-
-static INT32 DrvScan(INT32 nAction, INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin != NULL) {
- *pnMin = 0x029722;
- }
-
- if (nAction & ACB_MEMORY_RAM) {
- memset(&ba, 0, sizeof(ba));
- ba.Data = AllRam;
- ba.nLen = RamEnd-AllRam;
- ba.szName = "All Ram";
- BurnAcb(&ba);
- }
-
- if (nAction & ACB_DRIVER_DATA) {
- SekScan(nAction);
-
- deco16SoundScan(nAction, pnMin);
-
- deco16Scan();
-
- SCAN_VAR(scanline);
- SCAN_VAR(irq_mask);
- SCAN_VAR(irq_timer);
-
- SCAN_VAR(DrvOkiBank);
- DrvYM2151WritePort(0, DrvOkiBank);
- }
-
- return 0;
-}
-
-static INT32 StoneageScan(INT32 nAction, INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin != NULL) {
- *pnMin = 0x029722;
- }
-
- if (nAction & ACB_MEMORY_RAM) {
- memset(&ba, 0, sizeof(ba));
- ba.Data = AllRam;
- ba.nLen = RamEnd-AllRam;
- ba.szName = "All Ram";
- BurnAcb(&ba);
- }
-
- if (nAction & ACB_DRIVER_DATA) {
- SekScan(nAction);
- ZetScan(nAction);
- BurnYM2151Scan(nAction);
- MSM6295Scan(0, nAction);
- MSM6295Scan(1, nAction);
-
- deco16Scan();
-
- SCAN_VAR(scanline);
- SCAN_VAR(irq_mask);
- SCAN_VAR(irq_timer);
-
- SCAN_VAR(DrvOkiBank);
- }
-
- return 0;
-}
-
-
-// Caveman Ninja (World ver 4)
-
-static struct BurnRomInfo cninjaRomDesc[] = {
- { "gn-02-3.1k", 0x020000, 0x39aea12a, 1 | BRF_PRG | BRF_ESS }, // 0 68k Code
- { "gn-05-2.3k", 0x020000, 0x0f4360ef, 1 | BRF_PRG | BRF_ESS }, // 1
- { "gn-01-2.1j", 0x020000, 0xf740ef7e, 1 | BRF_PRG | BRF_ESS }, // 2
- { "gn-04-2.3j", 0x020000, 0xc98fcb62, 1 | BRF_PRG | BRF_ESS }, // 3
- { "gn-00.1h", 0x020000, 0x0b110b16, 1 | BRF_PRG | BRF_ESS }, // 4
- { "gn-03.1k", 0x020000, 0x1e28e697, 1 | BRF_PRG | BRF_ESS }, // 5
-
- { "gl-07.13k", 0x010000, 0xca8bef96, 2 | BRF_PRG | BRF_ESS }, // 6 Huc6280 Code
-
- { "gl-08.6y", 0x010000, 0x33a2b400, 3 | BRF_GRA }, // 7 Characters
- { "gl-09.6z", 0x010000, 0x5a2d4752, 3 | BRF_GRA }, // 8
-
- { "mag-02.4z", 0x080000, 0xde89c69a, 4 | BRF_GRA }, // 9 Foreground Tiles
-
- { "mag-00.1y", 0x080000, 0xa8f05d33, 5 | BRF_GRA }, // 10 Background Tiles
- { "mag-01.1z", 0x080000, 0x5b399eed, 5 | BRF_GRA }, // 11
-
- { "mag-03.9y", 0x080000, 0x2220eb9f, 6 | BRF_GRA }, // 12 Sprites
- { "mag-05.12y", 0x080000, 0x56a53254, 6 | BRF_GRA }, // 13
- { "mag-04.9z", 0x080000, 0x144b94cc, 6 | BRF_GRA }, // 14
- { "mag-06.12z", 0x080000, 0x82d44749, 6 | BRF_GRA }, // 15
-
- { "gl-06.13j", 0x020000, 0xd92e519d, 7 | BRF_SND }, // 16 OKI M6295 Samples 0
-
- { "mag-07.13f", 0x080000, 0x08eb5264, 8 | BRF_SND }, // 17 OKI M6295 Samples 1
-
- { "mb7122h.7v", 0x000400, 0xa1267336, 0 | BRF_OPT }, // 18 Unused PROMs
-
- { "tj-00.9j", 0x000117, 0x46defe8f, 0 | BRF_OPT }, // 19 PLDs
- { "tj-01.9h", 0x000117, 0x7a86902d, 0 | BRF_OPT }, // 20
- { "tj-02.9h", 0x000117, 0xb476d59c, 0 | BRF_OPT }, // 21
- { "tj-03.9e", 0x000117, 0xcfb6e4aa, 0 | BRF_OPT }, // 22
- { "tj-04.5n", 0x000117, 0xbca07086, 0 | BRF_OPT }, // 23
- { "tj-05.1r", 0x000117, 0x0dfc091b, 0 | BRF_OPT }, // 24
-};
-
-STD_ROM_PICK(cninja)
-STD_ROM_FN(cninja)
-
-struct BurnDriver BurnDrvCninja = {
- "cninja", NULL, NULL, NULL, "1991",
- "Caveman Ninja (World ver 4)\0", NULL, "Data East Corporation", "DECO IC16",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_PREFIX_DATAEAST, GBF_PLATFORM, 0,
- NULL, cninjaRomInfo, cninjaRomName, NULL, NULL, DrvInputInfo, CninjaDIPInfo,
- CninjaInit, DrvExit, CninjaFrame, CninjaDraw, DrvScan, &DrvRecalc, 0x800,
- 256, 240, 4, 3
-};
-
-
-// Caveman Ninja (World ver 1)
-
-static struct BurnRomInfo cninja1RomDesc[] = {
- { "gn-02.1k", 0x020000, 0xa6c40959, 1 | BRF_PRG | BRF_ESS }, // 0 68k Code
- { "gn-05.3k", 0x020000, 0xa002cbe4, 1 | BRF_PRG | BRF_ESS }, // 1
- { "gn-01.1j", 0x020000, 0x18f0527c, 1 | BRF_PRG | BRF_ESS }, // 2
- { "gn-04.3j", 0x020000, 0xea4b6d53, 1 | BRF_PRG | BRF_ESS }, // 3
- { "gn-00.1h", 0x020000, 0x0b110b16, 1 | BRF_PRG | BRF_ESS }, // 4
- { "gn-03.1k", 0x020000, 0x1e28e697, 1 | BRF_PRG | BRF_ESS }, // 5
-
- { "gl-07.13k", 0x010000, 0xca8bef96, 2 | BRF_PRG | BRF_ESS }, // 6 Huc6280 Code
-
- { "gl-08.6y", 0x010000, 0x33a2b400, 3 | BRF_GRA }, // 7 Characters
- { "gl-09.6z", 0x010000, 0x5a2d4752, 3 | BRF_GRA }, // 8
-
- { "mag-02.4z", 0x080000, 0xde89c69a, 4 | BRF_GRA }, // 9 Foreground Tiles
-
- { "mag-00.1y", 0x080000, 0xa8f05d33, 5 | BRF_GRA }, // 10 Background Tiles
- { "mag-01.1z", 0x080000, 0x5b399eed, 5 | BRF_GRA }, // 11
-
- { "mag-03.9y", 0x080000, 0x2220eb9f, 6 | BRF_GRA }, // 12 Sprites
- { "mag-05.12y", 0x080000, 0x56a53254, 6 | BRF_GRA }, // 13
- { "mag-04.9z", 0x080000, 0x144b94cc, 6 | BRF_GRA }, // 14
- { "mag-06.12z", 0x080000, 0x82d44749, 6 | BRF_GRA }, // 15
-
- { "gl-06.13j", 0x020000, 0xd92e519d, 7 | BRF_SND }, // 16 OKI M6295 Samples 0
-
- { "mag-07.13f", 0x080000, 0x08eb5264, 8 | BRF_SND }, // 17 OKI M6295 Samples 1
-
- { "mb7122h.7v", 0x000400, 0xa1267336, 0 | BRF_OPT }, // 18 Unused PROMs
-
- { "tj-00.9j", 0x000117, 0x46defe8f, 0 | BRF_OPT }, // 19 PLDs
- { "tj-01.9h", 0x000117, 0x7a86902d, 0 | BRF_OPT }, // 20
- { "tj-02.9h", 0x000117, 0xb476d59c, 0 | BRF_OPT }, // 21
- { "tj-03.9e", 0x000117, 0xcfb6e4aa, 0 | BRF_OPT }, // 22
- { "tj-04.5n", 0x000117, 0xbca07086, 0 | BRF_OPT }, // 23
- { "tj-05.1r", 0x000117, 0x0dfc091b, 0 | BRF_OPT }, // 24
-};
-
-STD_ROM_PICK(cninja1)
-STD_ROM_FN(cninja1)
-
-struct BurnDriver BurnDrvCninja1 = {
- "cninja1", "cninja", NULL, NULL, "1991",
- "Caveman Ninja (World ver 1)\0", NULL, "Data East Corporation", "DECO IC16",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_DATAEAST, GBF_PLATFORM, 0,
- NULL, cninja1RomInfo, cninja1RomName, NULL, NULL, DrvInputInfo, CninjaDIPInfo,
- CninjaInit, DrvExit, CninjaFrame, CninjaDraw, DrvScan, &DrvRecalc, 0x800,
- 256, 240, 4, 3
-};
-
-
-// Caveman Ninja (US ver 4)
-
-static struct BurnRomInfo cninjauRomDesc[] = {
- { "gm-02-3.1k", 0x020000, 0xd931c3b1, 1 | BRF_PRG | BRF_ESS }, // 0 68k Code
- { "gm-05-2.3k", 0x020000, 0x7417d3fb, 1 | BRF_PRG | BRF_ESS }, // 1
- { "gm-01-2.1j", 0x020000, 0x72041f7e, 1 | BRF_PRG | BRF_ESS }, // 2
- { "gm-04-2.3j", 0x020000, 0x2104d005, 1 | BRF_PRG | BRF_ESS }, // 3
- { "gn-00.1h", 0x020000, 0x0b110b16, 1 | BRF_PRG | BRF_ESS }, // 4
- { "gn-03.1k", 0x020000, 0x1e28e697, 1 | BRF_PRG | BRF_ESS }, // 5
-
- { "gl-07.13k", 0x010000, 0xca8bef96, 2 | BRF_PRG | BRF_ESS }, // 6 Huc6280 Code
-
- { "gl-08.6y", 0x010000, 0x33a2b400, 3 | BRF_GRA }, // 7 Characters
- { "gl-09.6z", 0x010000, 0x5a2d4752, 3 | BRF_GRA }, // 8
-
- { "mag-02.4z", 0x080000, 0xde89c69a, 4 | BRF_GRA }, // 9 Foreground Tiles
-
- { "mag-00.1y", 0x080000, 0xa8f05d33, 5 | BRF_GRA }, // 10 Background Tiles
- { "mag-01.1z", 0x080000, 0x5b399eed, 5 | BRF_GRA }, // 11
-
- { "mag-03.9y", 0x080000, 0x2220eb9f, 6 | BRF_GRA }, // 12 Sprites
- { "mag-05.12y", 0x080000, 0x56a53254, 6 | BRF_GRA }, // 13
- { "mag-04.9z", 0x080000, 0x144b94cc, 6 | BRF_GRA }, // 14
- { "mag-06.12z", 0x080000, 0x82d44749, 6 | BRF_GRA }, // 15
-
- { "gl-06.13j", 0x020000, 0xd92e519d, 7 | BRF_SND }, // 16 OKI M6295 Samples 0
-
- { "mag-07.13f", 0x080000, 0x08eb5264, 8 | BRF_SND }, // 17 OKI M6295 Samples 1
-
- { "mb7122h.7v", 0x000400, 0xa1267336, 0 | BRF_OPT }, // 18 Unused PROMs
-
- { "tj-00.9j", 0x000117, 0x46defe8f, 0 | BRF_OPT }, // 19 PLDs
- { "tj-01.9h", 0x000117, 0x7a86902d, 0 | BRF_OPT }, // 20
- { "tj-02.9h", 0x000117, 0xb476d59c, 0 | BRF_OPT }, // 21
- { "tj-03.9e", 0x000117, 0xcfb6e4aa, 0 | BRF_OPT }, // 22
- { "tj-04.5n", 0x000117, 0xbca07086, 0 | BRF_OPT }, // 23
- { "tj-05.1r", 0x000117, 0x0dfc091b, 0 | BRF_OPT }, // 24
-};
-
-STD_ROM_PICK(cninjau)
-STD_ROM_FN(cninjau)
-
-struct BurnDriver BurnDrvCninjau = {
- "cninjau", "cninja", NULL, NULL, "1991",
- "Caveman Ninja (US ver 4)\0", NULL, "Data East Corporation", "DECO IC16",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_DATAEAST, GBF_PLATFORM, 0,
- NULL, cninjauRomInfo, cninjauRomName, NULL, NULL, DrvInputInfo, CninjauDIPInfo,
- CninjaInit, DrvExit, CninjaFrame, CninjaDraw, DrvScan, &DrvRecalc, 0x800,
- 256, 240, 4, 3
-};
-
-
-// Tatakae Genshizin Joe & Mac (Japan ver 1)
-
-static struct BurnRomInfo joemacRomDesc[] = {
- { "gl-02-2.1k", 0x020000, 0x80da12e2, 1 | BRF_PRG | BRF_ESS }, // 0 68k Code
- { "gl-05-2.3k", 0x020000, 0xfe4dbbbb, 1 | BRF_PRG | BRF_ESS }, // 1
- { "gl-01-2.1j", 0x020000, 0x0b245307, 1 | BRF_PRG | BRF_ESS }, // 2
- { "gl-04-2.3j", 0x020000, 0x1b331f61, 1 | BRF_PRG | BRF_ESS }, // 3
- { "gn-00.1h", 0x020000, 0x0b110b16, 1 | BRF_PRG | BRF_ESS }, // 4
- { "gn-03.1k", 0x020000, 0x1e28e697, 1 | BRF_PRG | BRF_ESS }, // 5
-
- { "gl-07.13k", 0x010000, 0xca8bef96, 2 | BRF_PRG | BRF_ESS }, // 6 Huc6280 Code
-
- { "gl-08.6y", 0x010000, 0x33a2b400, 3 | BRF_GRA }, // 7 Characters
- { "gl-09.6z", 0x010000, 0x5a2d4752, 3 | BRF_GRA }, // 8
-
- { "mag-02.4z", 0x080000, 0xde89c69a, 4 | BRF_GRA }, // 9 Foreground Tiles
-
- { "mag-00.1y", 0x080000, 0xa8f05d33, 5 | BRF_GRA }, // 10 Background Tiles
- { "mag-01.1z", 0x080000, 0x5b399eed, 5 | BRF_GRA }, // 11
-
- { "mag-03.9y", 0x080000, 0x2220eb9f, 6 | BRF_GRA }, // 12 Sprites
- { "mag-05.12y", 0x080000, 0x56a53254, 6 | BRF_GRA }, // 13
- { "mag-04.9z", 0x080000, 0x144b94cc, 6 | BRF_GRA }, // 14
- { "mag-06.12z", 0x080000, 0x82d44749, 6 | BRF_GRA }, // 15
-
- { "gl-06.13j", 0x020000, 0xd92e519d, 7 | BRF_SND }, // 16 OKI M6295 Samples 0
-
- { "mag-07.13f", 0x080000, 0x08eb5264, 8 | BRF_SND }, // 17 OKI M6295 Samples 1
-
- { "mb7122h.7v", 0x000400, 0xa1267336, 0 | BRF_OPT }, // 18 Unused PROMs
-
- { "tj-00.9j", 0x000117, 0x46defe8f, 0 | BRF_OPT }, // 19 PLDs
- { "tj-01.9h", 0x000117, 0x7a86902d, 0 | BRF_OPT }, // 20
- { "tj-02.9h", 0x000117, 0xb476d59c, 0 | BRF_OPT }, // 21
- { "tj-03.9e", 0x000117, 0xcfb6e4aa, 0 | BRF_OPT }, // 22
- { "tj-04.5n", 0x000117, 0xbca07086, 0 | BRF_OPT }, // 23
- { "tj-05.1r", 0x000117, 0x0dfc091b, 0 | BRF_OPT }, // 24
-};
-
-STD_ROM_PICK(joemac)
-STD_ROM_FN(joemac)
-
-struct BurnDriver BurnDrvJoemac = {
- "joemac", "cninja", NULL, NULL, "1991",
- "Tatakae Genshizin Joe & Mac (Japan ver 1)\0", NULL, "Data East Corporation", "DECO IC16",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_DATAEAST, GBF_PLATFORM, 0,
- NULL, joemacRomInfo, joemacRomName, NULL, NULL, DrvInputInfo, CninjaDIPInfo,
- CninjaInit, DrvExit, CninjaFrame, CninjaDraw, DrvScan, &DrvRecalc, 0x800,
- 256, 240, 4, 3
-};
-
-
-// Stoneage (bootleg of Caveman Ninja)
-
-static struct BurnRomInfo stoneageRomDesc[] = {
- { "sa_1_019.bin", 0x020000, 0x7fb8c44f, 1 | BRF_PRG | BRF_ESS }, // 0 68k Code
- { "sa_1_033.bin", 0x020000, 0x961c752b, 1 | BRF_PRG | BRF_ESS }, // 1
- { "sa_1_018.bin", 0x020000, 0xa4043022, 1 | BRF_PRG | BRF_ESS }, // 2
- { "sa_1_032.bin", 0x020000, 0xf52a3286, 1 | BRF_PRG | BRF_ESS }, // 3
- { "sa_1_017.bin", 0x020000, 0x08d6397a, 1 | BRF_PRG | BRF_ESS }, // 4
- { "sa_1_031.bin", 0x020000, 0x103079f5, 1 | BRF_PRG | BRF_ESS }, // 5
-
- { "sa_1_012.bin", 0x010000, 0x56058934, 2 | BRF_PRG | BRF_ESS }, // 6 Huc6280 Code
-
- { "gl-08.rom", 0x010000, 0x33a2b400, 3 | BRF_GRA }, // 7 Characters
- { "gl-09.rom", 0x010000, 0x5a2d4752, 3 | BRF_GRA }, // 8
-
- { "mag-02.rom", 0x080000, 0xde89c69a, 4 | BRF_GRA }, // 9 Foreground Tiles
-
- { "mag-00.rom", 0x080000, 0xa8f05d33, 5 | BRF_GRA }, // 10 Background Tiles
- { "mag-01.rom", 0x080000, 0x5b399eed, 5 | BRF_GRA }, // 11
-
- { "mag-03.rom", 0x080000, 0x2220eb9f, 6 | BRF_GRA }, // 12 Sprites
- { "mag-05.rom", 0x080000, 0x56a53254, 6 | BRF_GRA }, // 13
- { "mag-04.rom", 0x080000, 0x144b94cc, 6 | BRF_GRA }, // 14
- { "mag-06.rom", 0x080000, 0x82d44749, 6 | BRF_GRA }, // 15
-
- { "sa_1_069.bin", 0x040000, 0x2188f3ca, 7 | BRF_SND }, // 16 OKI M6295 Samples
-};
-
-STD_ROM_PICK(stoneage)
-STD_ROM_FN(stoneage)
-
-struct BurnDriver BurnDrvStoneage = {
- "stoneage", "cninja", NULL, NULL, "1991",
- "Stoneage (bootleg of Caveman Ninja)\0", NULL, "bootleg", "DECO IC16",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_PREFIX_DATAEAST, GBF_PLATFORM, 0,
- NULL, stoneageRomInfo, stoneageRomName, NULL, NULL, DrvInputInfo, CninjaDIPInfo,
- StoneageInit, DrvExit, StoneageFrame, CninjaDraw, StoneageScan, &DrvRecalc, 0x800,
- 256, 240, 4, 3
-};
-
-
-// Caveman Ninja (bootleg)
-
-static struct BurnRomInfo cninjablRomDesc[] = {
- { "joe mac 3.68k", 0x080000, 0xdc931d80, 1 | BRF_PRG | BRF_ESS }, // 0 68k Code
- { "joe mac 4.68k", 0x080000, 0xe8dfe0b5, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "joe mac 5.z80", 0x010000, 0xd791b9d7, 2 | BRF_PRG | BRF_ESS }, // 2 Huc6280 Code
-
- { "joe mac 1.gfx", 0x200000, 0x17ea5931, 3 | BRF_GRA }, // 3 Graphics (Expanded on init)
- { "joe mac 2.gfx", 0x200000, 0xcc95317b, 3 | BRF_GRA }, // 4
-
- { "joe mac 6.samples", 0x080000, 0xdbecad83, 4 | BRF_SND }, // 5 OKI M6295 Samples
-};
-
-STD_ROM_PICK(cninjabl)
-STD_ROM_FN(cninjabl)
-
-struct BurnDriver BurnDrvCninjabl = {
- "cninjabl", "cninja", NULL, NULL, "1991",
- "Caveman Ninja (bootleg)\0", NULL, "bootleg", "DECO IC16",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_PREFIX_DATAEAST, GBF_PLATFORM, 0,
- NULL, cninjablRomInfo, cninjablRomName, NULL, NULL, DrvInputInfo, CninjaDIPInfo,
- CninjablInit, DrvExit, StoneageFrame, CninjablDraw, StoneageScan, &DrvRecalc, 0x800,
- 256, 240, 4, 3
-};
-
-
-// Mutant Fighter (World ver EM-5)
-
-static struct BurnRomInfo mutantfRomDesc[] = {
- { "hd-03-4.2c", 0x020000, 0x94859545, 1 | BRF_PRG | BRF_ESS }, // 0 68k Code
- { "hd-00-4.2a", 0x020000, 0x3cdb648f, 1 | BRF_PRG | BRF_ESS }, // 1
- { "hd-04-1.4c", 0x020000, 0xfd2ea8d7, 1 | BRF_PRG | BRF_ESS }, // 2
- { "hd-01-1.4a", 0x020000, 0x48a247ac, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "hd-12.21j", 0x010000, 0x13d55f11, 2 | BRF_PRG | BRF_ESS }, // 4 Huc6280 Code
-
- { "hd-06-1.8d", 0x010000, 0x8b7a558b, 3 | BRF_GRA }, // 5 Characters
- { "hd-07-1.9d", 0x010000, 0xd2a3d449, 3 | BRF_GRA }, // 6
-
- { "maf-00.8a", 0x080000, 0xe56f528d, 4 | BRF_GRA }, // 7 Foreground Tiles
-
- { "maf-01.9a", 0x080000, 0xc3d5173d, 5 | BRF_GRA }, // 8 Background Tiles
- { "maf-02.11a", 0x080000, 0x0b37d849, 5 | BRF_GRA }, // 9
-
- { "maf-03.18a", 0x100000, 0xf4366d2c, 6 | BRF_GRA }, // 10 Sprite Bank A
- { "maf-04.20a", 0x100000, 0x0c8f654e, 6 | BRF_GRA }, // 11
- { "maf-05.21a", 0x080000, 0xb0cfeb80, 6 | BRF_GRA }, // 12
- { "maf-06.18d", 0x100000, 0xf5c7a9b5, 6 | BRF_GRA }, // 13
- { "maf-07.20d", 0x100000, 0xfd6008a3, 6 | BRF_GRA }, // 14
- { "maf-08.21d", 0x080000, 0xe41cf1e7, 6 | BRF_GRA }, // 15
-
- { "hf-08.15a", 0x010000, 0x93b7279f, 7 | BRF_GRA }, // 16 Sprite Bank B
- { "hf-09.17a", 0x010000, 0x05e2c074, 7 | BRF_GRA }, // 17
- { "hf-10.15c", 0x010000, 0x9b06f418, 7 | BRF_GRA }, // 18
- { "hf-11.17c", 0x010000, 0x3859a531, 7 | BRF_GRA }, // 19
-
- { "maf-10.20l", 0x040000, 0x7c57f48b, 8 | BRF_SND }, // 20 OKI M6295 Samples 0
-
- { "maf-09.18l", 0x080000, 0x28e7ed81, 9 | BRF_SND }, // 21 OKI M6295 Samples 1
-};
-
-STD_ROM_PICK(mutantf)
-STD_ROM_FN(mutantf)
-
-struct BurnDriver BurnDrvMutantf = {
- "mutantf", NULL, NULL, NULL, "1992",
- "Mutant Fighter (World ver EM-5)\0", NULL, "Data East Corporation", "DECO IC16",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_PREFIX_DATAEAST, GBF_VSFIGHT, 0,
- NULL, mutantfRomInfo, mutantfRomName, NULL, NULL, DrvInputInfo, MutantfDIPInfo,
- MutantfInit, DrvExit, MutantfFrame, MutantfDraw, DrvScan, &DrvRecalc, 0x800,
- 320, 240, 4, 3
-};
-
-
-// Mutant Fighter (World ver EM-4)
-
-static struct BurnRomInfo mutantf4RomDesc[] = {
- { "hd-03-3.2c", 0x020000, 0xe6f53574, 1 | BRF_PRG | BRF_ESS }, // 0 68k Code
- { "hd-00-3.2a", 0x020000, 0xd3055454, 1 | BRF_PRG | BRF_ESS }, // 1
- { "hd-04-1.4c", 0x020000, 0xfd2ea8d7, 1 | BRF_PRG | BRF_ESS }, // 2
- { "hd-01-1.4a", 0x020000, 0x48a247ac, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "hd-12.21j", 0x010000, 0x13d55f11, 2 | BRF_PRG | BRF_ESS }, // 4 Huc6280 Code
-
- { "hd-06-1.8d", 0x010000, 0x8b7a558b, 3 | BRF_GRA }, // 5 Characters
- { "hd-07-1.9d", 0x010000, 0xd2a3d449, 3 | BRF_GRA }, // 6
-
- { "maf-00.8a", 0x080000, 0xe56f528d, 4 | BRF_GRA }, // 7 Foreground Tiles
-
- { "maf-01.9a", 0x080000, 0xc3d5173d, 5 | BRF_GRA }, // 8 Background Tiles
- { "maf-02.11a", 0x080000, 0x0b37d849, 5 | BRF_GRA }, // 9
-
- { "maf-03.18a", 0x100000, 0xf4366d2c, 6 | BRF_GRA }, // 10 Sprite Bank A
- { "maf-04.20a", 0x100000, 0x0c8f654e, 6 | BRF_GRA }, // 11
- { "maf-05.21a", 0x080000, 0xb0cfeb80, 6 | BRF_GRA }, // 12
- { "maf-06.18d", 0x100000, 0xf5c7a9b5, 6 | BRF_GRA }, // 13
- { "maf-07.20d", 0x100000, 0xfd6008a3, 6 | BRF_GRA }, // 14
- { "maf-08.21d", 0x080000, 0xe41cf1e7, 6 | BRF_GRA }, // 15
-
- { "hf-08.15a", 0x010000, 0x93b7279f, 7 | BRF_GRA }, // 16 Sprite Bank B
- { "hf-09.17a", 0x010000, 0x05e2c074, 7 | BRF_GRA }, // 17
- { "hf-10.15c", 0x010000, 0x9b06f418, 7 | BRF_GRA }, // 18
- { "hf-11.17c", 0x010000, 0x3859a531, 7 | BRF_GRA }, // 19
-
- { "maf-10.20l", 0x040000, 0x7c57f48b, 8 | BRF_SND }, // 20 OKI M6295 Samples 0
-
- { "maf-09.18l", 0x080000, 0x28e7ed81, 9 | BRF_SND }, // 21 OKI M6295 Samples 1
-};
-
-STD_ROM_PICK(mutantf4)
-STD_ROM_FN(mutantf4)
-
-struct BurnDriver BurnDrvMutantf4 = {
- "mutantf4", "mutantf", NULL, NULL, "1992",
- "Mutant Fighter (World ver EM-4)\0", NULL, "Data East Corporation", "DECO IC16",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_DATAEAST, GBF_VSFIGHT, 0,
- NULL, mutantf4RomInfo, mutantf4RomName, NULL, NULL, DrvInputInfo, MutantfDIPInfo,
- MutantfInit, DrvExit, MutantfFrame, MutantfDraw, DrvScan, &DrvRecalc, 0x800,
- 320, 240, 4, 3
-};
-
-
-// Mutant Fighter (World ver EM-3)
-
-static struct BurnRomInfo mutantf3RomDesc[] = {
- { "hd-03-2.2c", 0x020000, 0x0586c4fa, 1 | BRF_PRG | BRF_ESS }, // 0 68k Code
- { "hd-00-2.2a", 0x020000, 0x6f8ec48e, 1 | BRF_PRG | BRF_ESS }, // 1
- { "hd-04-1.4c", 0x020000, 0xfd2ea8d7, 1 | BRF_PRG | BRF_ESS }, // 2
- { "hd-01-1.4a", 0x020000, 0x48a247ac, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "hd-12.21j", 0x010000, 0x13d55f11, 2 | BRF_PRG | BRF_ESS }, // 4 Huc6280 Code
-
- { "hd-06-1.8d", 0x010000, 0x8b7a558b, 3 | BRF_GRA }, // 5 Characters
- { "hd-07-1.9d", 0x010000, 0xd2a3d449, 3 | BRF_GRA }, // 6
-
- { "maf-00.8a", 0x080000, 0xe56f528d, 4 | BRF_GRA }, // 7 Foreground Tiles
-
- { "maf-01.9a", 0x080000, 0xc3d5173d, 5 | BRF_GRA }, // 8 Background Tiles
- { "maf-02.11a", 0x080000, 0x0b37d849, 5 | BRF_GRA }, // 9
-
- { "maf-03.18a", 0x100000, 0xf4366d2c, 6 | BRF_GRA }, // 10 Sprite Bank A
- { "maf-04.20a", 0x100000, 0x0c8f654e, 6 | BRF_GRA }, // 11
- { "maf-05.21a", 0x080000, 0xb0cfeb80, 6 | BRF_GRA }, // 12
- { "maf-06.18d", 0x100000, 0xf5c7a9b5, 6 | BRF_GRA }, // 13
- { "maf-07.20d", 0x100000, 0xfd6008a3, 6 | BRF_GRA }, // 14
- { "maf-08.21d", 0x080000, 0xe41cf1e7, 6 | BRF_GRA }, // 15
-
- { "hf-08.15a", 0x010000, 0x93b7279f, 7 | BRF_GRA }, // 16 Sprite Bank B
- { "hf-09.17a", 0x010000, 0x05e2c074, 7 | BRF_GRA }, // 17
- { "hf-10.15c", 0x010000, 0x9b06f418, 7 | BRF_GRA }, // 18
- { "hf-11.17c", 0x010000, 0x3859a531, 7 | BRF_GRA }, // 19
-
- { "maf-10.20l", 0x040000, 0x7c57f48b, 8 | BRF_SND }, // 20 OKI M6295 Samples 0
-
- { "maf-09.18l", 0x080000, 0x28e7ed81, 9 | BRF_SND }, // 21 OKI M6295 Samples 1
-};
-
-STD_ROM_PICK(mutantf3)
-STD_ROM_FN(mutantf3)
-
-struct BurnDriver BurnDrvMutantf3 = {
- "mutantf3", "mutantf", NULL, NULL, "1992",
- "Mutant Fighter (World ver EM-3)\0", NULL, "Data East Corporation", "DECO IC16",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_DATAEAST, GBF_VSFIGHT, 0,
- NULL, mutantf3RomInfo, mutantf3RomName, NULL, NULL, DrvInputInfo, MutantfDIPInfo,
- MutantfInit, DrvExit, MutantfFrame, MutantfDraw, DrvScan, &DrvRecalc, 0x800,
- 320, 240, 4, 3
-};
-
-
-// Mutant Fighter (World ver EM-2)
-
-static struct BurnRomInfo mutantf2RomDesc[] = {
- { "hd-03-1.2c", 0x020000, 0x7110cefc, 1 | BRF_PRG | BRF_ESS }, // 0 68k Code
- { "hd-00-1.2a", 0x020000, 0xb279875b, 1 | BRF_PRG | BRF_ESS }, // 1
- { "hd-04-1.4c", 0x020000, 0xfd2ea8d7, 1 | BRF_PRG | BRF_ESS }, // 2
- { "hd-01-1.4a", 0x020000, 0x48a247ac, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "hd-12.21j", 0x010000, 0x13d55f11, 2 | BRF_PRG | BRF_ESS }, // 4 Huc6280 Code
-
- { "hd-06-1.8d", 0x010000, 0x8b7a558b, 3 | BRF_GRA }, // 5 Characters
- { "hd-07-1.9d", 0x010000, 0xd2a3d449, 3 | BRF_GRA }, // 6
-
- { "maf-00.8a", 0x080000, 0xe56f528d, 4 | BRF_GRA }, // 7 Foreground Tiles
-
- { "maf-01.9a", 0x080000, 0xc3d5173d, 5 | BRF_GRA }, // 8 Background Tiles
- { "maf-02.11a", 0x080000, 0x0b37d849, 5 | BRF_GRA }, // 9
-
- { "maf-03.18a", 0x100000, 0xf4366d2c, 6 | BRF_GRA }, // 10 Sprite Bank A
- { "maf-04.20a", 0x100000, 0x0c8f654e, 6 | BRF_GRA }, // 11
- { "maf-05.21a", 0x080000, 0xb0cfeb80, 6 | BRF_GRA }, // 12
- { "maf-06.18d", 0x100000, 0xf5c7a9b5, 6 | BRF_GRA }, // 13
- { "maf-07.20d", 0x100000, 0xfd6008a3, 6 | BRF_GRA }, // 14
- { "maf-08.21d", 0x080000, 0xe41cf1e7, 6 | BRF_GRA }, // 15
-
- { "hf-08.15a", 0x010000, 0x93b7279f, 7 | BRF_GRA }, // 16 Sprite Bank B
- { "hf-09.17a", 0x010000, 0x05e2c074, 7 | BRF_GRA }, // 17
- { "hf-10.15c", 0x010000, 0x9b06f418, 7 | BRF_GRA }, // 18
- { "hf-11.17c", 0x010000, 0x3859a531, 7 | BRF_GRA }, // 19
-
- { "maf-10.20l", 0x040000, 0x7c57f48b, 8 | BRF_SND }, // 20 OKI M6295 Samples 0
-
- { "maf-09.18l", 0x080000, 0x28e7ed81, 9 | BRF_SND }, // 21 OKI M6295 Samples 1
-};
-
-STD_ROM_PICK(mutantf2)
-STD_ROM_FN(mutantf2)
-
-struct BurnDriver BurnDrvMutantf2 = {
- "mutantf2", "mutantf", NULL, NULL, "1992",
- "Mutant Fighter (World ver EM-2)\0", NULL, "Data East Corporation", "DECO IC16",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_DATAEAST, GBF_VSFIGHT, 0,
- NULL, mutantf2RomInfo, mutantf2RomName, NULL, NULL, DrvInputInfo, MutantfDIPInfo,
- MutantfInit, DrvExit, MutantfFrame, MutantfDraw, DrvScan, &DrvRecalc, 0x800,
- 320, 240, 4, 3
-};
-
-
-// Death Brade (Japan ver JM-3)
-
-static struct BurnRomInfo deathbrdRomDesc[] = {
- { "hf-03-2.2c", 0x020000, 0xfb86fff3, 1 | BRF_PRG | BRF_ESS }, // 0 68k Code
- { "hf-00-2.2a", 0x020000, 0x099aa422, 1 | BRF_PRG | BRF_ESS }, // 1
- { "hd-04-1.4c", 0x020000, 0xfd2ea8d7, 1 | BRF_PRG | BRF_ESS }, // 2
- { "hd-01-1.4a", 0x020000, 0x48a247ac, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "hd-12.21j", 0x010000, 0x13d55f11, 2 | BRF_PRG | BRF_ESS }, // 4 Huc6280 Code
-
- { "hd-06-1.8d", 0x010000, 0x8b7a558b, 3 | BRF_GRA }, // 5 Characters
- { "hd-07-1.9d", 0x010000, 0xd2a3d449, 3 | BRF_GRA }, // 6
-
- { "maf-00.8a", 0x080000, 0xe56f528d, 4 | BRF_GRA }, // 7 Foreground Tiles
-
- { "maf-01.9a", 0x080000, 0xc3d5173d, 5 | BRF_GRA }, // 8 Background Tiles
- { "maf-02.11a", 0x080000, 0x0b37d849, 5 | BRF_GRA }, // 9
-
- { "maf-03.18a", 0x100000, 0xf4366d2c, 6 | BRF_GRA }, // 10 Sprite Bank A
- { "maf-04.20a", 0x100000, 0x0c8f654e, 6 | BRF_GRA }, // 11
- { "maf-05.21a", 0x080000, 0xb0cfeb80, 6 | BRF_GRA }, // 12
- { "maf-06.18d", 0x100000, 0xf5c7a9b5, 6 | BRF_GRA }, // 13
- { "maf-07.20d", 0x100000, 0xfd6008a3, 6 | BRF_GRA }, // 14
- { "maf-08.21d", 0x080000, 0xe41cf1e7, 6 | BRF_GRA }, // 15
-
- { "hf-08.15a", 0x010000, 0x93b7279f, 7 | BRF_GRA }, // 16 Sprite Bank B
- { "hf-09.17a", 0x010000, 0x05e2c074, 7 | BRF_GRA }, // 17
- { "hf-10.15c", 0x010000, 0x9b06f418, 7 | BRF_GRA }, // 18
- { "hf-11.17c", 0x010000, 0x3859a531, 7 | BRF_GRA }, // 19
-
- { "maf-10.20l", 0x040000, 0x7c57f48b, 8 | BRF_SND }, // 20 OKI M6295 Samples 0
-
- { "maf-09.18l", 0x080000, 0x28e7ed81, 9 | BRF_SND }, // 21 OKI M6295 Samples 1
-};
-
-STD_ROM_PICK(deathbrd)
-STD_ROM_FN(deathbrd)
-
-struct BurnDriver BurnDrvDeathbrd = {
- "deathbrd", "mutantf", NULL, NULL, "1992",
- "Death Brade (Japan ver JM-3)\0", NULL, "Data East Corporation", "DECO IC16",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_DATAEAST, GBF_VSFIGHT, 0,
- NULL, deathbrdRomInfo, deathbrdRomName, NULL, NULL, DrvInputInfo, MutantfDIPInfo,
- MutantfInit, DrvExit, MutantfFrame, MutantfDraw, DrvScan, &DrvRecalc, 0x800,
- 320, 240, 4, 3
-};
-
-
-// The Cliffhanger - Edward Randy (World ver 3)
-
-static struct BurnRomInfo edrandyRomDesc[] = {
- { "gg-00-2.k1", 0x020000, 0xce1ba964, 1 | BRF_PRG | BRF_ESS }, // 0 68k Code
- { "gg-04-2.k3", 0x020000, 0x24caed19, 1 | BRF_PRG | BRF_ESS }, // 1
- { "gg-01-2.j1", 0x020000, 0x33677b80, 1 | BRF_PRG | BRF_ESS }, // 2
- { "gg-05-2.j3", 0x020000, 0x79a68ca6, 1 | BRF_PRG | BRF_ESS }, // 3
- { "ge-02.h1", 0x020000, 0xc2969fbb, 1 | BRF_PRG | BRF_ESS }, // 4
- { "ge-06.h3", 0x020000, 0x5c2e6418, 1 | BRF_PRG | BRF_ESS }, // 5
- { "ge-03.f1", 0x020000, 0x5e7b19a8, 1 | BRF_PRG | BRF_ESS }, // 6
- { "ge-07.f3", 0x020000, 0x5eb819a1, 1 | BRF_PRG | BRF_ESS }, // 7
-
- { "ge-09.k13", 0x010000, 0x9f94c60b, 2 | BRF_PRG | BRF_ESS }, // 8 Huc6280 Code
-
- { "gg-10.y6", 0x010000, 0xb96c6cbe, 3 | BRF_GRA }, // 9 Characters
- { "gg-11.z6", 0x010000, 0xee567448, 3 | BRF_GRA }, // 10
-
- { "mad-02", 0x080000, 0x6c76face, 4 | BRF_GRA }, // 11 Foreground Tiles
-
- { "mad-00", 0x080000, 0x3735b22d, 5 | BRF_GRA }, // 12 Background Tiles
- { "mad-01", 0x080000, 0x7bb13e1c, 5 | BRF_GRA }, // 13
-
- { "mad-03", 0x080000, 0xc0bff892, 6 | BRF_GRA }, // 14 Sprites
- { "mad-05", 0x080000, 0x3f2ccf95, 6 | BRF_GRA }, // 15
- { "mad-04", 0x080000, 0x464f3eb9, 6 | BRF_GRA }, // 16
- { "mad-06", 0x080000, 0x60871f77, 6 | BRF_GRA }, // 17
- { "mad-07", 0x080000, 0xac03466e, 6 | BRF_GRA }, // 18
- { "mad-08", 0x080000, 0x1b420ec8, 6 | BRF_GRA }, // 19
- { "mad-10", 0x080000, 0x42da8ef0, 6 | BRF_GRA }, // 20
- { "mad-11", 0x080000, 0x03c1f982, 6 | BRF_GRA }, // 21
- { "mad-09", 0x080000, 0x930f4900, 6 | BRF_GRA }, // 22
- { "mad-12", 0x080000, 0xa0bd62b6, 6 | BRF_GRA }, // 23
-
- { "ge-08.j13", 0x020000, 0xdfe28c7b, 7 | BRF_SND }, // 24 OKI M6295 Samples 0
-
- { "mad-13", 0x080000, 0x6ab28eba, 8 | BRF_SND }, // 25 OKI M6295 Samples 1
-
- { "ge-12.v7", 0x000400, 0x278f674f, 0 | BRF_OPT }, // 26 Unused PROMs
-};
-
-STD_ROM_PICK(edrandy)
-STD_ROM_FN(edrandy)
-
-struct BurnDriver BurnDrvEdrandy = {
- "edrandy", NULL, NULL, NULL, "1990",
- "The Cliffhanger - Edward Randy (World ver 3)\0", NULL, "Data East Corporation", "DECO IC16",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_PREFIX_DATAEAST, GBF_SCRFIGHT, 0,
- NULL, edrandyRomInfo, edrandyRomName, NULL, NULL, DrvInputInfo, EdrandyDIPInfo,
- EdrandyInit, DrvExit, EdrandyFrame, EdrandyDraw, DrvScan, &DrvRecalc, 0x800,
- 256, 240, 4, 3
-};
-
-
-// The Cliffhanger - Edward Randy (World ver 2)
-
-static struct BurnRomInfo edrandy2RomDesc[] = {
- { "gg00-1.k1", 0x020000, 0xa029cc4a, 1 | BRF_PRG | BRF_ESS }, // 0 68k Code
- { "gg04-1.k3", 0x020000, 0x8b7928a4, 1 | BRF_PRG | BRF_ESS }, // 1
- { "gg01-1.j1", 0x020000, 0x84360123, 1 | BRF_PRG | BRF_ESS }, // 2
- { "gg05-1.j3", 0x020000, 0x0bf85d9d, 1 | BRF_PRG | BRF_ESS }, // 3
- { "ge-02.h1", 0x020000, 0xc2969fbb, 1 | BRF_PRG | BRF_ESS }, // 4
- { "ge-06.h3", 0x020000, 0x5c2e6418, 1 | BRF_PRG | BRF_ESS }, // 5
- { "ge-03.f1", 0x020000, 0x5e7b19a8, 1 | BRF_PRG | BRF_ESS }, // 6
- { "ge-07.f3", 0x020000, 0x5eb819a1, 1 | BRF_PRG | BRF_ESS }, // 7
-
- { "ge-09.k13", 0x010000, 0x9f94c60b, 2 | BRF_PRG | BRF_ESS }, // 8 Huc6280 Code
-
- { "gg-10.y6", 0x010000, 0xb96c6cbe, 3 | BRF_GRA }, // 9 Characters
- { "gg-11.z6", 0x010000, 0xee567448, 3 | BRF_GRA }, // 10
-
- { "mad-02", 0x080000, 0x6c76face, 4 | BRF_GRA }, // 11 Foreground Tiles
-
- { "mad-00", 0x080000, 0x3735b22d, 5 | BRF_GRA }, // 12 Background Tiles
- { "mad-01", 0x080000, 0x7bb13e1c, 5 | BRF_GRA }, // 13
-
- { "mad-03", 0x080000, 0xc0bff892, 6 | BRF_GRA }, // 14 Sprites
- { "mad-05", 0x080000, 0x3f2ccf95, 6 | BRF_GRA }, // 15
- { "mad-04", 0x080000, 0x464f3eb9, 6 | BRF_GRA }, // 16
- { "mad-06", 0x080000, 0x60871f77, 6 | BRF_GRA }, // 17
- { "mad-07", 0x080000, 0xac03466e, 6 | BRF_GRA }, // 18
- { "mad-08", 0x080000, 0x1b420ec8, 6 | BRF_GRA }, // 19
- { "mad-10", 0x080000, 0x42da8ef0, 6 | BRF_GRA }, // 20
- { "mad-11", 0x080000, 0x03c1f982, 6 | BRF_GRA }, // 21
- { "mad-09", 0x080000, 0x930f4900, 6 | BRF_GRA }, // 22
- { "mad-12", 0x080000, 0xa0bd62b6, 6 | BRF_GRA }, // 23
-
- { "ge-08.j13", 0x020000, 0xdfe28c7b, 7 | BRF_SND }, // 24 OKI M6295 Samples 0
-
- { "mad-13", 0x080000, 0x6ab28eba, 8 | BRF_SND }, // 25 OKI M6295 Samples 1
-
- { "ge-12.v7", 0x000400, 0x278f674f, 0 | BRF_OPT }, // 26 Unused PROMs
-};
-
-STD_ROM_PICK(edrandy2)
-STD_ROM_FN(edrandy2)
-
-struct BurnDriver BurnDrvEdrandy2 = {
- "edrandy2", "edrandy", NULL, NULL, "1990",
- "The Cliffhanger - Edward Randy (World ver 2)\0", NULL, "Data East Corporation", "DECO IC16",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_DATAEAST, GBF_SCRFIGHT, 0,
- NULL, edrandy2RomInfo, edrandy2RomName, NULL, NULL, DrvInputInfo, EdrandcDIPInfo,
- EdrandyInit, DrvExit, EdrandyFrame, EdrandyDraw, DrvScan, &DrvRecalc, 0x800,
- 256, 240, 4, 3
-};
-
-
-// The Cliffhanger - Edward Randy (World ver 1)
-
-static struct BurnRomInfo edrandy1RomDesc[] = {
- { "1.k1", 0x020000, 0xf184cdaa, 1 | BRF_PRG | BRF_ESS }, // 0 68k Code
- { "5.k3", 0x020000, 0x7e3a4b81, 1 | BRF_PRG | BRF_ESS }, // 1
- { "2.j1", 0x020000, 0x212cd593, 1 | BRF_PRG | BRF_ESS }, // 2
- { "6.j3", 0x020000, 0x4a96fb07, 1 | BRF_PRG | BRF_ESS }, // 3
- { "ge-02.h1", 0x020000, 0xc2969fbb, 1 | BRF_PRG | BRF_ESS }, // 4
- { "ge-06.h3", 0x020000, 0x5c2e6418, 1 | BRF_PRG | BRF_ESS }, // 5
- { "ge-03.f1", 0x020000, 0x5e7b19a8, 1 | BRF_PRG | BRF_ESS }, // 6
- { "ge-07.f3", 0x020000, 0x5eb819a1, 1 | BRF_PRG | BRF_ESS }, // 7
-
- { "ge-09.k13", 0x010000, 0x9f94c60b, 2 | BRF_PRG | BRF_ESS }, // 8 Huc6280 Code
-
- { "ge-10.y6", 0x010000, 0x2528d795, 3 | BRF_GRA }, // 9 Characters
- { "ge-11.z6", 0x010000, 0xe34a931e, 3 | BRF_GRA }, // 10
-
- { "mad-02", 0x080000, 0x6c76face, 4 | BRF_GRA }, // 11 Foreground Tiles
-
- { "mad-00", 0x080000, 0x3735b22d, 5 | BRF_GRA }, // 12 Background Tiles
- { "mad-01", 0x080000, 0x7bb13e1c, 5 | BRF_GRA }, // 13
-
- { "mad-03", 0x080000, 0xc0bff892, 6 | BRF_GRA }, // 14 Sprites
- { "mad-05", 0x080000, 0x3f2ccf95, 6 | BRF_GRA }, // 15
- { "mad-04", 0x080000, 0x464f3eb9, 6 | BRF_GRA }, // 16
- { "mad-06", 0x080000, 0x60871f77, 6 | BRF_GRA }, // 17
- { "mad-07", 0x080000, 0xac03466e, 6 | BRF_GRA }, // 18
- { "mad-08", 0x080000, 0x1b420ec8, 6 | BRF_GRA }, // 19
- { "mad-10", 0x080000, 0x42da8ef0, 6 | BRF_GRA }, // 20
- { "mad-11", 0x080000, 0x03c1f982, 6 | BRF_GRA }, // 21
- { "mad-09", 0x080000, 0x930f4900, 6 | BRF_GRA }, // 22
- { "mad-12", 0x080000, 0xa0bd62b6, 6 | BRF_GRA }, // 23
-
- { "ge-08.j13", 0x020000, 0xdfe28c7b, 7 | BRF_SND }, // 24 OKI M6295 Samples 0
-
- { "mad-13", 0x080000, 0x6ab28eba, 8 | BRF_SND }, // 25 OKI M6295 Samples 1
-
- { "ge-12.v7", 0x000400, 0x278f674f, 0 | BRF_OPT }, // 26 Unused PROMs
-};
-
-STD_ROM_PICK(edrandy1)
-STD_ROM_FN(edrandy1)
-
-struct BurnDriver BurnDrvEdrandy1 = {
- "edrandy1", "edrandy", NULL, NULL, "1990",
- "The Cliffhanger - Edward Randy (World ver 1)\0", NULL, "Data East Corporation", "DECO IC16",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_DATAEAST, GBF_SCRFIGHT, 0,
- NULL, edrandy1RomInfo, edrandy1RomName, NULL, NULL, DrvInputInfo, EdrandcDIPInfo,
- EdrandyInit, DrvExit, EdrandyFrame, EdrandyDraw, DrvScan, &DrvRecalc, 0x800,
- 256, 240, 4, 3
-};
-
-
-// The Cliffhanger - Edward Randy (Japan ver 3)
-
-static struct BurnRomInfo edrandyjRomDesc[] = {
- { "ge-00-2.k1", 0x020000, 0xb3d2403c, 1 | BRF_PRG | BRF_ESS }, // 0 68k Code
- { "ge-04-2.k3", 0x020000, 0x8a9624d6, 1 | BRF_PRG | BRF_ESS }, // 1
- { "ge-01-2.j1", 0x020000, 0x84360123, 1 | BRF_PRG | BRF_ESS }, // 2
- { "ge-05-2.j3", 0x020000, 0x0bf85d9d, 1 | BRF_PRG | BRF_ESS }, // 3
- { "ge-02.h1", 0x020000, 0xc2969fbb, 1 | BRF_PRG | BRF_ESS }, // 4
- { "ge-06.h3", 0x020000, 0x5c2e6418, 1 | BRF_PRG | BRF_ESS }, // 5
- { "ge-03.f1", 0x020000, 0x5e7b19a8, 1 | BRF_PRG | BRF_ESS }, // 6
- { "ge-07.f3", 0x020000, 0x5eb819a1, 1 | BRF_PRG | BRF_ESS }, // 7
-
- { "ge-09.k13", 0x010000, 0x9f94c60b, 2 | BRF_PRG | BRF_ESS }, // 8 Huc6280 Code
-
- { "ge-10.y6", 0x010000, 0x2528d795, 3 | BRF_GRA }, // 9 Characters
- { "ge-11.z6", 0x010000, 0xe34a931e, 3 | BRF_GRA }, // 10
-
- { "mad-02", 0x080000, 0x6c76face, 4 | BRF_GRA }, // 11 Foreground Tiles
-
- { "mad-00", 0x080000, 0x3735b22d, 5 | BRF_GRA }, // 12 Background Tiles
- { "mad-01", 0x080000, 0x7bb13e1c, 5 | BRF_GRA }, // 13
-
- { "mad-03", 0x080000, 0xc0bff892, 6 | BRF_GRA }, // 14 Sprites
- { "mad-05", 0x080000, 0x3f2ccf95, 6 | BRF_GRA }, // 15
- { "mad-04", 0x080000, 0x464f3eb9, 6 | BRF_GRA }, // 16
- { "mad-06", 0x080000, 0x60871f77, 6 | BRF_GRA }, // 17
- { "mad-07", 0x080000, 0xac03466e, 6 | BRF_GRA }, // 18
- { "mad-08", 0x080000, 0x1b420ec8, 6 | BRF_GRA }, // 19
- { "mad-10", 0x080000, 0x42da8ef0, 6 | BRF_GRA }, // 20
- { "mad-11", 0x080000, 0x03c1f982, 6 | BRF_GRA }, // 21
- { "mad-09", 0x080000, 0x930f4900, 6 | BRF_GRA }, // 22
- { "mad-12", 0x080000, 0xa0bd62b6, 6 | BRF_GRA }, // 23
-
- { "ge-08.j13", 0x020000, 0xdfe28c7b, 7 | BRF_SND }, // 24 OKI M6295 Samples 0
-
- { "mad-13", 0x080000, 0x6ab28eba, 8 | BRF_SND }, // 25 OKI M6295 Samples 1
-
- { "ge-12.v7", 0x000400, 0x278f674f, 0 | BRF_OPT }, // 26 Unused PROMs
-};
-
-STD_ROM_PICK(edrandyj)
-STD_ROM_FN(edrandyj)
-
-struct BurnDriver BurnDrvEdrandyj = {
- "edrandyj", "edrandy", NULL, NULL, "1990",
- "The Cliffhanger - Edward Randy (Japan ver 3)\0", NULL, "Data East Corporation", "DECO IC16",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_DATAEAST, GBF_SCRFIGHT, 0,
- NULL, edrandyjRomInfo, edrandyjRomName, NULL, NULL, DrvInputInfo, EdrandcDIPInfo,
- EdrandyInit, DrvExit, EdrandyFrame, EdrandyDraw, DrvScan, &DrvRecalc, 0x800,
- 256, 240, 4, 3
-};
-
-
-// Robocop 2 (Euro/Asia v0.10)
-
-static struct BurnRomInfo robocop2RomDesc[] = {
- { "gq-03.k1", 0x020000, 0xa7e90c28, 1 | BRF_PRG | BRF_ESS }, // 0 68k Code
- { "gq-07.k3", 0x020000, 0xd2287ec1, 1 | BRF_PRG | BRF_ESS }, // 1
- { "gq-02.j1", 0x020000, 0x6777b8a0, 1 | BRF_PRG | BRF_ESS }, // 2
- { "gq-06.j3", 0x020000, 0xe11e27b5, 1 | BRF_PRG | BRF_ESS }, // 3
- { "go-01-1.h1", 0x020000, 0xab5356c0, 1 | BRF_PRG | BRF_ESS }, // 4
- { "go-05-1.h3", 0x020000, 0xce21bda5, 1 | BRF_PRG | BRF_ESS }, // 5
- { "go-00.f1", 0x020000, 0xa93369ea, 1 | BRF_PRG | BRF_ESS }, // 6
- { "go-04.f3", 0x020000, 0xee2f6ad9, 1 | BRF_PRG | BRF_ESS }, // 7
-
- { "gp-09.k13", 0x010000, 0x4a4e0f8d, 2 | BRF_PRG | BRF_ESS }, // 8 Huc6280 Code
-
- { "gp10-1.y6", 0x010000, 0xd25d719c, 3 | BRF_GRA }, // 9 Characters
- { "gp11-1.z6", 0x010000, 0x030ded47, 3 | BRF_GRA }, // 10
-
- { "mah-04.z4", 0x080000, 0x9b6ca18c, 4 | BRF_GRA }, // 11 Foreground Tiles
- { "mah-03.y4", 0x080000, 0x37894ddc, 4 | BRF_GRA }, // 12
-
- { "mah-01.z1", 0x080000, 0x26e0dfff, 5 | BRF_GRA }, // 13 Background Tiles
- { "mah-00.y1", 0x080000, 0x7bd69e41, 5 | BRF_GRA }, // 14
- { "mah-02.a1", 0x080000, 0x328a247d, 5 | BRF_GRA }, // 15
-
- { "mah-05.y9", 0x080000, 0x6773e613, 6 | BRF_GRA }, // 16 Sprites
- { "mah-08.y12", 0x080000, 0x88d310a5, 6 | BRF_GRA }, // 17
- { "mah-06.z9", 0x080000, 0x27a8808a, 6 | BRF_GRA }, // 18
- { "mah-09.z12", 0x080000, 0xa58c43a7, 6 | BRF_GRA }, // 19
- { "mah-07.a9", 0x080000, 0x526f4190, 6 | BRF_GRA }, // 20
- { "mah-10.a12", 0x080000, 0x14b770da, 6 | BRF_GRA }, // 21
-
- { "gp-08.j13", 0x020000, 0x365183b1, 7 | BRF_SND }, // 22 OKI M6295 Samples 0
-
- { "mah-11.f13", 0x080000, 0x642bc692, 8 | BRF_SND }, // 23 OKI M6295 Samples 1
-
- { "go-12.v7", 0x000400, 0x278f674f, 0 | BRF_OPT }, // 24 Unused PROMs
-};
-
-STD_ROM_PICK(robocop2)
-STD_ROM_FN(robocop2)
-
-struct BurnDriver BurnDrvRobocop2 = {
- "robocop2", NULL, NULL, NULL, "1991",
- "Robocop 2 (Euro/Asia v0.10)\0", NULL, "Data East Corporation", "DECO IC16",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_PREFIX_DATAEAST, GBF_SCRFIGHT, 0,
- NULL, robocop2RomInfo, robocop2RomName, NULL, NULL, Robocop2InputInfo, Robocop2DIPInfo,
- Robocop2Init, DrvExit, Robocop2Frame, Robocop2Draw, DrvScan, &DrvRecalc, 0x800,
- 320, 240, 4, 3
-};
-
-
-// Robocop 2 (US v0.10)
-
-static struct BurnRomInfo robocop2uRomDesc[] = {
- { "gp03-3.k1", 0x020000, 0xc016a84b, 1 | BRF_PRG | BRF_ESS }, // 0 68k Code
- { "gp07-3.k3", 0x020000, 0x54c541ae, 1 | BRF_PRG | BRF_ESS }, // 1
- { "gp02-3.j1", 0x020000, 0x6777b8a0, 1 | BRF_PRG | BRF_ESS }, // 2 // == gq-02.j1 in 'robocop2'
- { "gp06-3.j3", 0x020000, 0x73b8cf96, 1 | BRF_PRG | BRF_ESS }, // 3
- { "gp01-.h1", 0x020000, 0xab5356c0, 1 | BRF_PRG | BRF_ESS }, // 4 // no '-1' but matches other '-1' roms we have
- { "gp05-.h3", 0x020000, 0xce21bda5, 1 | BRF_PRG | BRF_ESS }, // 5
- { "gp00-.f1", 0x020000, 0xa93369ea, 1 | BRF_PRG | BRF_ESS }, // 6
- { "gp04-.f3", 0x020000, 0xee2f6ad9, 1 | BRF_PRG | BRF_ESS }, // 7
-
- { "gp-09.k13", 0x010000, 0x4a4e0f8d, 2 | BRF_PRG | BRF_ESS }, // 8 Huc6280 Code
-
- { "gp10-1.y6", 0x010000, 0xd25d719c, 3 | BRF_GRA }, // 9 Characters
- { "gp11-1.z6", 0x010000, 0x030ded47, 3 | BRF_GRA }, // 10
-
- { "mah-04.z4", 0x080000, 0x9b6ca18c, 4 | BRF_GRA }, // 11 Foreground Tiles
- { "mah-03.y4", 0x080000, 0x37894ddc, 4 | BRF_GRA }, // 12
-
- { "mah-01.z1", 0x080000, 0x26e0dfff, 5 | BRF_GRA }, // 13 Background Tiles
- { "mah-00.y1", 0x080000, 0x7bd69e41, 5 | BRF_GRA }, // 14
- { "mah-02.a1", 0x080000, 0x328a247d, 5 | BRF_GRA }, // 15
-
- { "mah-05.y9", 0x080000, 0x6773e613, 6 | BRF_GRA }, // 16 Sprites
- { "mah-08.y12", 0x080000, 0x88d310a5, 6 | BRF_GRA }, // 17
- { "mah-06.z9", 0x080000, 0x27a8808a, 6 | BRF_GRA }, // 18
- { "mah-09.z12", 0x080000, 0xa58c43a7, 6 | BRF_GRA }, // 19
- { "mah-07.a9", 0x080000, 0x526f4190, 6 | BRF_GRA }, // 20
- { "mah-10.a12", 0x080000, 0x14b770da, 6 | BRF_GRA }, // 21
-
- { "gp-08.j13", 0x020000, 0x365183b1, 7 | BRF_SND }, // 22 OKI M6295 Samples 0
-
- { "mah-11.f13", 0x080000, 0x642bc692, 8 | BRF_SND }, // 23 OKI M6295 Samples 1
-
- { "go-12.v7", 0x000400, 0x278f674f, 0 | BRF_OPT }, // 24 Unused PROMs
-};
-
-STD_ROM_PICK(robocop2u)
-STD_ROM_FN(robocop2u)
-
-struct BurnDriver BurnDrvRobocop2u = {
- "robocop2u", "robocop2", NULL, NULL, "1991",
- "Robocop 2 (US v0.10)\0", NULL, "Data East Corporation", "DECO IC16",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_DATAEAST, GBF_SCRFIGHT, 0,
- NULL, robocop2uRomInfo, robocop2uRomName, NULL, NULL, Robocop2InputInfo, Robocop2DIPInfo,
- Robocop2Init, DrvExit, Robocop2Frame, Robocop2Draw, DrvScan, &DrvRecalc, 0x800,
- 320, 240, 4, 3
-};
-
-
-// Robocop 2 (US v0.05)
-
-static struct BurnRomInfo robocop2uaRomDesc[] = {
- { "robo03.k1", 0x020000, 0xf4c96cc9, 1 | BRF_PRG | BRF_ESS }, // 0 68k Code
- { "robo07.k3", 0x020000, 0x11e53a7c, 1 | BRF_PRG | BRF_ESS }, // 1
- { "robo02.j1", 0x020000, 0xfa086a0d, 1 | BRF_PRG | BRF_ESS }, // 2
- { "robo06.j3", 0x020000, 0x703b49d0, 1 | BRF_PRG | BRF_ESS }, // 3
- { "go-01-1.h1", 0x020000, 0xab5356c0, 1 | BRF_PRG | BRF_ESS }, // 4
- { "go-05-1.h3", 0x020000, 0xce21bda5, 1 | BRF_PRG | BRF_ESS }, // 5
- { "go-00.f1", 0x020000, 0xa93369ea, 1 | BRF_PRG | BRF_ESS }, // 6
- { "go-04.f3", 0x020000, 0xee2f6ad9, 1 | BRF_PRG | BRF_ESS }, // 7
-
- { "gp-09.k13", 0x010000, 0x4a4e0f8d, 2 | BRF_PRG | BRF_ESS }, // 8 Huc6280 Code
-
- { "gp10-1.y6", 0x010000, 0xd25d719c, 3 | BRF_GRA }, // 9 Characters
- { "gp11-1.z6", 0x010000, 0x030ded47, 3 | BRF_GRA }, // 10
-
- { "mah-04.z4", 0x080000, 0x9b6ca18c, 4 | BRF_GRA }, // 11 Foreground Tiles
- { "mah-03.y4", 0x080000, 0x37894ddc, 4 | BRF_GRA }, // 12
-
- { "mah-01.z1", 0x080000, 0x26e0dfff, 5 | BRF_GRA }, // 13 Background Tiles
- { "mah-00.y1", 0x080000, 0x7bd69e41, 5 | BRF_GRA }, // 14
- { "mah-02.a1", 0x080000, 0x328a247d, 5 | BRF_GRA }, // 15
-
- { "mah-05.y9", 0x080000, 0x6773e613, 6 | BRF_GRA }, // 16 Sprites
- { "mah-08.y12", 0x080000, 0x88d310a5, 6 | BRF_GRA }, // 17
- { "mah-06.z9", 0x080000, 0x27a8808a, 6 | BRF_GRA }, // 18
- { "mah-09.z12", 0x080000, 0xa58c43a7, 6 | BRF_GRA }, // 19
- { "mah-07.a9", 0x080000, 0x526f4190, 6 | BRF_GRA }, // 20
- { "mah-10.a12", 0x080000, 0x14b770da, 6 | BRF_GRA }, // 21
-
- { "gp-08.j13", 0x020000, 0x365183b1, 7 | BRF_SND }, // 22 OKI M6295 Samples 0
-
- { "mah-11.f13", 0x080000, 0x642bc692, 8 | BRF_SND }, // 23 OKI M6295 Samples 1
-
- { "go-12.v7", 0x000400, 0x278f674f, 0 | BRF_OPT }, // 24 Unused PROMs
-};
-
-STD_ROM_PICK(robocop2ua)
-STD_ROM_FN(robocop2ua)
-
-struct BurnDriver BurnDrvRobocop2ua = {
- "robocop2ua", "robocop2", NULL, NULL, "1991",
- "Robocop 2 (US v0.05)\0", NULL, "Data East Corporation", "DECO IC16",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_DATAEAST, GBF_SCRFIGHT, 0,
- NULL, robocop2uaRomInfo, robocop2uaRomName, NULL, NULL, Robocop2InputInfo, Robocop2DIPInfo,
- Robocop2Init, DrvExit, Robocop2Frame, Robocop2Draw, DrvScan, &DrvRecalc, 0x800,
- 320, 240, 4, 3
-};
-
-
-// Robocop 2 (Japan v0.11)
-
-static struct BurnRomInfo robocop2jRomDesc[] = {
- { "go-03-1.k1", 0x020000, 0x52506608, 1 | BRF_PRG | BRF_ESS }, // 0 68k Code
- { "go-07-1.k3", 0x020000, 0x739cda17, 1 | BRF_PRG | BRF_ESS }, // 1
- { "go-02-1.j1", 0x020000, 0x48c0ace9, 1 | BRF_PRG | BRF_ESS }, // 2
- { "go-06-1.j3", 0x020000, 0x41abec87, 1 | BRF_PRG | BRF_ESS }, // 3
- { "go-01-1.h1", 0x020000, 0xab5356c0, 1 | BRF_PRG | BRF_ESS }, // 4
- { "go-05-1.h3", 0x020000, 0xce21bda5, 1 | BRF_PRG | BRF_ESS }, // 5
- { "go-00.f1", 0x020000, 0xa93369ea, 1 | BRF_PRG | BRF_ESS }, // 6
- { "go-04.f3", 0x020000, 0xee2f6ad9, 1 | BRF_PRG | BRF_ESS }, // 7
-
- { "gp-09.k13", 0x010000, 0x4a4e0f8d, 2 | BRF_PRG | BRF_ESS }, // 8 Huc6280 Code
-
- { "gp10-1.y6", 0x010000, 0xd25d719c, 3 | BRF_GRA }, // 9 Characters
- { "gp11-1.z6", 0x010000, 0x030ded47, 3 | BRF_GRA }, // 10
-
- { "mah-04.z4", 0x080000, 0x9b6ca18c, 4 | BRF_GRA }, // 11 Foreground Tiles
- { "mah-03.y4", 0x080000, 0x37894ddc, 4 | BRF_GRA }, // 12
-
- { "mah-01.z1", 0x080000, 0x26e0dfff, 5 | BRF_GRA }, // 13 Background Tiles
- { "mah-00.y1", 0x080000, 0x7bd69e41, 5 | BRF_GRA }, // 14
- { "mah-02.a1", 0x080000, 0x328a247d, 5 | BRF_GRA }, // 15
-
- { "mah-05.y9", 0x080000, 0x6773e613, 6 | BRF_GRA }, // 16 Sprites
- { "mah-08.y12", 0x080000, 0x88d310a5, 6 | BRF_GRA }, // 17
- { "mah-06.z9", 0x080000, 0x27a8808a, 6 | BRF_GRA }, // 18
- { "mah-09.z12", 0x080000, 0xa58c43a7, 6 | BRF_GRA }, // 19
- { "mah-07.a9", 0x080000, 0x526f4190, 6 | BRF_GRA }, // 20
- { "mah-10.a12", 0x080000, 0x14b770da, 6 | BRF_GRA }, // 21
-
- { "gp-08.j13", 0x020000, 0x365183b1, 7 | BRF_SND }, // 22 OKI M6295 Samples 0
-
- { "mah-11.f13", 0x080000, 0x642bc692, 8 | BRF_SND }, // 23 OKI M6295 Samples 1
-
- { "go-12.v7", 0x000400, 0x278f674f, 0 | BRF_OPT }, // 24 Unused PROMs
-};
-
-STD_ROM_PICK(robocop2j)
-STD_ROM_FN(robocop2j)
-
-struct BurnDriver BurnDrvRobocop2j = {
- "robocop2j", "robocop2", NULL, NULL, "1991",
- "Robocop 2 (Japan v0.11)\0", NULL, "Data East Corporation", "DECO IC16",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_DATAEAST, GBF_SCRFIGHT, 0,
- NULL, robocop2jRomInfo, robocop2jRomName, NULL, NULL, Robocop2InputInfo, Robocop2DIPInfo,
- Robocop2Init, DrvExit, Robocop2Frame, Robocop2Draw, DrvScan, &DrvRecalc, 0x800,
- 320, 240, 4, 3
-};
diff --git a/jan/src/burn/drv/dataeast/d_darkseal.cpp b/jan/src/burn/drv/dataeast/d_darkseal.cpp
deleted file mode 100644
index ff0ecf977..000000000
--- a/jan/src/burn/drv/dataeast/d_darkseal.cpp
+++ /dev/null
@@ -1,920 +0,0 @@
-// FB Alpha Dark Seal driver module
-// Based on MAME driver by Bryan McPhail
-
-#include "tiles_generic.h"
-#include "m68000_intf.h"
-#include "h6280_intf.h"
-#include "bitswap.h"
-#include "deco16ic.h"
-#include "burn_ym2203.h"
-#include "burn_ym2151.h"
-#include "msm6295.h"
-#include "timer.h"
-
-static UINT8 *AllMem;
-static UINT8 *MemEnd;
-static UINT8 *AllRam;
-static UINT8 *RamEnd;
-static UINT8 *Drv68KROM;
-static UINT8 *DrvHucROM;
-static UINT8 *DrvGfxROM0;
-static UINT8 *DrvGfxROM1;
-static UINT8 *DrvGfxROM2;
-static UINT8 *DrvGfxROM3;
-static UINT8 *Drv68KRAM;
-static UINT8 *DrvHucRAM;
-static UINT8 *DrvSprRAM;
-static UINT8 *DrvSprBuf;
-static UINT8 *DrvPalRAM;
-static UINT8 *DrvPf3RAM;
-static UINT8 *DrvPf2RAM;
-static UINT8 *DrvPf1RAM;
-static UINT8 *DrvPf12RowRAM;
-static UINT8 *DrvPf34RowRAM;
-static UINT8 *DrvPfCtrlRAM0;
-static UINT8 *DrvPfCtrlRAM1;
-static UINT32 *DrvPalette;
-
-static INT16 *SoundBuffer;
-
-static UINT8 DrvJoy1[16];
-static UINT8 DrvJoy2[16];
-static UINT8 DrvDip[2];
-static UINT8 DrvReset;
-static UINT16 DrvInputs[2];
-
-static UINT8 DrvRecalc = 0;
-static INT32 vblank = 0;
-
-static struct BurnInputInfo DarksealInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy2 + 0, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 7, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy1 + 0, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy1 + 1, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy1 + 2, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy1 + 3, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy1 + 4, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy1 + 5, "p1 fire 2" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy2 + 1, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy1 + 15, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvJoy1 + 8, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy1 + 9, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy1 + 10, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy1 + 11, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy1 + 12, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy1 + 13, "p2 fire 2" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Dip A", BIT_DIPSWITCH, DrvDip + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDip + 1, "dip" },
-};
-
-STDINPUTINFO(Darkseal)
-
-static struct BurnDIPInfo DarksealDIPList[]=
-{
- // Default Values
- {0x11, 0xff, 0xff, 0xff, NULL },
- {0x12, 0xff, 0xff, 0x7f, NULL },
-
- {0 , 0xfe, 0 , 8, "Coin A" },
- {0x11, 0x01, 0x07, 0x00, "3 Coins 1 Credit" },
- {0x11, 0x01, 0x07, 0x01, "2 Coins 1 Credit" },
- {0x11, 0x01, 0x07, 0x07, "1 Coin 1 Credit" },
- {0x11, 0x01, 0x07, 0x06, "1 Coin 2 Credits" },
- {0x11, 0x01, 0x07, 0x05, "1 Coin 3 Credits" },
- {0x11, 0x01, 0x07, 0x04, "1 Coin 4 Credits" },
- {0x11, 0x01, 0x07, 0x03, "1 Coin 5 Credits" },
- {0x11, 0x01, 0x07, 0x02, "1 Coin 6 Credits" },
-
- {0 , 0xfe, 0 , 8, "Coin B" },
- {0x11, 0x01, 0x38, 0x00, "3 Coins 1 Credit" },
- {0x11, 0x01, 0x38, 0x08, "2 Coins 1 Credit" },
- {0x11, 0x01, 0x38, 0x38, "1 Coin 1 Credit" },
- {0x11, 0x01, 0x38, 0x30, "1 Coin 2 Credits" },
- {0x11, 0x01, 0x38, 0x28, "1 Coin 3 Credits" },
- {0x11, 0x01, 0x38, 0x20, "1 Coin 4 Credits" },
- {0x11, 0x01, 0x38, 0x18, "1 Coin 5 Credits" },
- {0x11, 0x01, 0x38, 0x10, "1 Coin 6 Credits" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x11, 0x01, 0x40, 0x40, "Off" },
- {0x11, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x12, 0x01, 0x03, 0x00, "1" },
- {0x12, 0x01, 0x03, 0x01, "2" },
- {0x12, 0x01, 0x03, 0x03, "3" },
- {0x12, 0x01, 0x03, 0x02, "4" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x12, 0x01, 0x0c, 0x08, "Easy" },
- {0x12, 0x01, 0x0c, 0x0c, "Normal" },
- {0x12, 0x01, 0x0c, 0x04, "Hard" },
- {0x12, 0x01, 0x0c, 0x00, "Hardest" },
-
- {0 , 0xfe, 0 , 4, "Energy" },
- {0x12, 0x01, 0x30, 0x00, "2" },
- {0x12, 0x01, 0x30, 0x10, "2.5" },
- {0x12, 0x01, 0x30, 0x30, "3" },
- {0x12, 0x01, 0x30, 0x20, "4" },
-
- {0 , 0xfe, 0 , 2, "Allow Continue" },
- {0x12, 0x01, 0x40, 0x00, "No" },
- {0x12, 0x01, 0x40, 0x40, "Yes" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x12, 0x01, 0x80, 0x80, "Off" },
- {0x12, 0x01, 0x80, 0x00, "On" },
-};
-
-STDDIPINFO(Darkseal)
-
-static inline void palette_write(INT32 offset)
-{
- UINT16 *data = (UINT16*)(DrvPalRAM + offset);
- UINT8 r,g,b;
-
- r = (BURN_ENDIAN_SWAP_INT16(data[0x0000/2]) >> 0) & 0xff;
- g = (BURN_ENDIAN_SWAP_INT16(data[0x0000/2]) >> 8) & 0xff;
- b = (BURN_ENDIAN_SWAP_INT16(data[0x1000/2]) >> 0) & 0xff;
-
- DrvPalette[offset/2] = BurnHighCol(r, g, b, 0);
-}
-
-void __fastcall darkseal_write_byte(UINT32 address, UINT8 data)
-{
- if ((address & 0xfffff0) == 0x180000) {
- switch (address & 0x0e)
- {
- case 0x06:
- memcpy (DrvSprBuf, DrvSprRAM, 0x800);
- return;
-
- case 0x08:
- deco16_soundlatch = data;
- h6280SetIRQLine(0, CPU_IRQSTATUS_ACK);
- return;
- }
-
- return;
- }
-}
-
-void __fastcall darkseal_write_word(UINT32 address, UINT16 data)
-{
- if ((address & 0xfffff0) == 0x180000) {
- switch (address & 0x0f)
- {
- case 0x06:
- memcpy (DrvSprBuf, DrvSprRAM, 0x800);
- return;
-
- case 0x08:
- deco16_soundlatch = data & 0xff;
- h6280SetIRQLine(0, CPU_IRQSTATUS_ACK);
- return;
- }
-
- return;
- }
-
- if ((address & 0xfffff0) == 0x240000) {
- *((UINT16*)(DrvPfCtrlRAM0 + (address & 0x0e))) = BURN_ENDIAN_SWAP_INT16(data);
- return;
- }
-
- if ((address & 0xfffff0) == 0x2a0000) {
- *((UINT16*)(DrvPfCtrlRAM1 + (address & 0x0e))) = BURN_ENDIAN_SWAP_INT16(data);
- return;
- }
-}
-
-UINT8 __fastcall darkseal_read_byte(UINT32 address)
-{
- if ((address & 0xfffff0) == 0x180000) {
- switch (address & 0xf)
- {
- case 0:
- return DrvDip[1];
-
- case 1:
- return DrvDip[0];
-
- case 2:
- return DrvInputs[0] >> 8;
-
- case 3:
- return DrvInputs[0] & 0xff;
-
- case 4:
- return 0xff;
-
- case 5:
- return (DrvInputs[1] ^ vblank) & 0xff;
- }
-
- return 0xff;
- }
-
- return 0;
-}
-
-UINT16 __fastcall darkseal_read_word(UINT32 address)
-{
- if ((address & 0xfffff0) == 0x180000) {
- switch (address & 0xe)
- {
- case 0:
- return (DrvDip[0] | (DrvDip[1]<<8));
-
- case 2:
- return DrvInputs[0];
-
- case 4:
- return DrvInputs[1] ^ vblank;
- }
-
- return 0xffff;
- }
-
- return 0;
-}
-
-static INT32 DrvDoReset()
-{
- DrvReset = 0;
-
- memset (AllRam, 0, RamEnd - AllRam);
-
- SekOpen(0);
- SekReset();
- SekClose();
-
- deco16SoundReset();
-
- return 0;
-}
-
-static INT32 MemIndex()
-{
- UINT8 *Next; Next = AllMem;
-
- Drv68KROM = Next; Next += 0x080000;
-
- DrvHucROM = Next; Next += 0x010000;
-
- DrvGfxROM0 = Next; Next += 0x040000;
- DrvGfxROM1 = Next; Next += 0x100000;
- DrvGfxROM2 = Next; Next += 0x100000;
- DrvGfxROM3 = Next; Next += 0x200000;
-
- MSM6295ROM = Next; Next += 0x140000;
-
- DrvPalette = (UINT32*)Next; Next += 0x00800 * sizeof(UINT32);
-
- AllRam = Next;
-
- Drv68KRAM = Next; Next += 0x004000;
- DrvHucRAM = Next; Next += 0x002000;
- DrvSprRAM = Next; Next += 0x000800;
- DrvSprBuf = Next; Next += 0x000800;
- DrvPalRAM = Next; Next += 0x002000;
- DrvPf3RAM = Next; Next += 0x002000;
- DrvPf12RowRAM = Next; Next += 0x001000;
- DrvPf34RowRAM = Next; Next += 0x001000;
- DrvPf2RAM = Next; Next += 0x002000;
- DrvPf1RAM = Next; Next += 0x002000;
- DrvPfCtrlRAM0 = Next; Next += 0x000010;
- DrvPfCtrlRAM1 = Next; Next += 0x000010;
-
- RamEnd = Next;
-
- SoundBuffer = (INT16*)Next; Next += nBurnSoundLen * 2 * sizeof(INT16);
-
- MemEnd = Next;
-
- return 0;
-}
-
-static INT32 DrvGfxDecode()
-{
- INT32 Plane0[4] = { 0x00000*8, 0x10000*8, 0x8000*8, 0x18000*8 };
- INT32 Plane1[4] = { 8, 0, 0x40000*8+8, 0x40000*8 };
- INT32 Plane2[4] = { 8, 0, 0x80000*8+8, 0x80000*8 };
- INT32 XOffs0[8] = { 0, 1, 2, 3, 4, 5, 6, 7 };
- INT32 YOffs0[8] = { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 };
- INT32 XOffs1[16] = { 32*8+0, 32*8+1, 32*8+2, 32*8+3, 32*8+4, 32*8+5, 32*8+6, 32*8+7, 0, 1, 2, 3, 4, 5, 6, 7 };
- INT32 YOffs1[16] = { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16, 8*16, 9*16, 10*16, 11*16, 12*16, 13*16, 14*16, 15*16 };
-
- UINT8 *tmp = (UINT8*)BurnMalloc(0x100000);
- if (tmp == NULL) {
- return 1;
- }
-
- memcpy (tmp, DrvGfxROM0, 0x020000);
-
- GfxDecode(0x1000, 4, 8, 8, Plane0, XOffs0, YOffs0, 0x040, tmp, DrvGfxROM0);
-
- memcpy (tmp, DrvGfxROM1, 0x080000);
-
- GfxDecode(0x1000, 4, 16, 16, Plane1, XOffs1, YOffs1, 0x200, tmp, DrvGfxROM1);
-
- memcpy (tmp, DrvGfxROM2, 0x080000);
-
- GfxDecode(0x1000, 4, 16, 16, Plane1, XOffs1, YOffs1, 0x200, tmp, DrvGfxROM2);
-
- memcpy (tmp, DrvGfxROM3, 0x100000);
-
- GfxDecode(0x2000, 4, 16, 16, Plane2, XOffs1, YOffs1, 0x200, tmp, DrvGfxROM3);
-
- BurnFree (tmp);
-
- return 0;
-}
-
-static void DrvPrgDecode()
-{
- for (INT32 i = 0; i < 0x80000; i++)
- Drv68KROM[i] = BITSWAP08(Drv68KROM[i], 7, 1, 5, 4, 3, 2, 6, 0);
-}
-
-static INT32 DrvInit()
-{
- BurnSetRefreshRate(58.00);
-
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(Drv68KROM + 0x00001, 0, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x00000, 1, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x40001, 2, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x40000, 3, 2)) return 1;
-
- if (BurnLoadRom(DrvHucROM, 4, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x00000, 5, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x10000, 6, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM1 + 0x00000, 7, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM2 + 0x00000, 8, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM3 + 0x00000, 9, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM3 + 0x80000, 10, 1)) return 1;
-
- if (BurnLoadRom(MSM6295ROM + 0x000000, 11, 1)) return 1;
- if (BurnLoadRom(MSM6295ROM + 0x100000, 12, 1)) return 1;
-
- DrvPrgDecode();
- DrvGfxDecode();
- }
-
- SekInit(0, 0x68000);
- SekOpen(0);
- SekMapMemory(Drv68KROM, 0x000000, 0x07ffff, MAP_ROM);
- SekMapMemory(Drv68KRAM, 0x100000, 0x103fff, MAP_RAM);
- SekMapMemory(DrvSprRAM, 0x120000, 0x1207ff, MAP_RAM);
- SekMapMemory(DrvPalRAM, 0x140000, 0x141fff, MAP_RAM); // split ram
- SekMapMemory(DrvPf3RAM + 0x001000, 0x200000, 0x200fff, MAP_RAM); // mirror
- SekMapMemory(DrvPf3RAM, 0x202000, 0x203fff, MAP_RAM);
- SekMapMemory(DrvPf12RowRAM, 0x220000, 0x220fff, MAP_RAM);
- SekMapMemory(DrvPf34RowRAM, 0x222000, 0x222fff, MAP_RAM);
- SekMapMemory(DrvPf2RAM, 0x260000, 0x261fff, MAP_RAM);
- SekMapMemory(DrvPf1RAM, 0x262000, 0x263fff, MAP_RAM);
- SekSetWriteWordHandler(0, darkseal_write_word);
- SekSetWriteByteHandler(0, darkseal_write_byte);
- SekSetReadWordHandler(0, darkseal_read_word);
- SekSetReadByteHandler(0, darkseal_read_byte);
- SekClose();
-
- deco16SoundInit(DrvHucROM, DrvHucRAM, 8055000, 1, NULL, 0.55, 1006875, 1.00, 2013750, 0.60);
- BurnYM2203SetAllRoutes(0, 0.45, BURN_SND_ROUTE_BOTH);
-
- deco16_music_tempofix = 1;
-
- GenericTilesInit();
-
- DrvDoReset();
-
- return 0;
-}
-
-static INT32 DrvExit()
-{
- GenericTilesExit();
-
- SekExit();
-
- deco16SoundExit();
-
- BurnFree (AllMem);
-
- return 0;
-}
-
-static void draw_sprites()
-{
- UINT16 *SprRAM = (UINT16*)DrvSprBuf;
-
- for (INT32 offs = 0; offs < 0x400; offs += 4)
- {
- INT32 sprite = BURN_ENDIAN_SWAP_INT16(SprRAM[offs+1]) & 0x1fff;
- if (!sprite) continue;
-
- INT32 y = BURN_ENDIAN_SWAP_INT16(SprRAM[offs]);
- INT32 x = BURN_ENDIAN_SWAP_INT16(SprRAM[offs+2]);
-
- INT32 flash = ((y >> 12) & 1) & GetCurrentFrame();
- if (flash) continue;
-
- INT32 color = ((x >> 9) & 0x1f) + 0x10;
-
- INT32 fx = y & 0x2000;
- INT32 fy = y & 0x4000;
- INT32 multi = (1 << ((y & 0x0600) >> 9)) - 1;
-
- x &= 0x01ff;
- y &= 0x01ff;
- if (x > 255) x -= 512;
- if (y > 255) y -= 512;
- x = 240 - x;
- y = (240 - y) - 8;
-
- if (x > 256) continue;
-
- sprite &= ~multi;
-
- INT32 inc = -1;
-
- if (!fy) {
- sprite += multi;
- inc = 1;
- }
-
- while (multi >= 0)
- {
- if (fy) {
- if (fx) {
- Render16x16Tile_Mask_FlipXY_Clip(pTransDraw, sprite - multi * inc, x, y+-16*multi, color, 4, 0, 0, DrvGfxROM3);
- } else {
- Render16x16Tile_Mask_FlipY_Clip(pTransDraw, sprite - multi * inc, x, y+-16*multi, color, 4, 0, 0, DrvGfxROM3);
- }
- } else {
- if (fx) {
- Render16x16Tile_Mask_FlipX_Clip(pTransDraw, sprite - multi * inc, x, y+-16*multi, color, 4, 0, 0, DrvGfxROM3);
- } else {
- Render16x16Tile_Mask_Clip(pTransDraw, sprite - multi * inc, x, y+-16*multi, color, 4, 0, 0, DrvGfxROM3);
- }
- }
-
- multi--;
- }
- }
-}
-
-static void draw_pf1_layer(INT32 scroll_x, INT32 scroll_y)
-{
- UINT16 *vram = (UINT16*)DrvPf1RAM;
-
- for (INT32 offs = 0; offs < 64 * 64; offs++)
- {
- INT32 sx = (offs & 0x3f) << 3;
- INT32 sy = (offs >> 6) << 3;
-
- sx -= scroll_x;
- if (sx < -7) sx += 0x200;
- sy -= scroll_y + 8;
- if (sy < -7) sy += 0x200;
-
- if (sx >= nScreenWidth || sy >= nScreenHeight) continue;
-
- INT32 code = BURN_ENDIAN_SWAP_INT16(vram[offs]);
- INT32 color = code >> 12;
-
- code &= 0xfff;
- if (!code) continue;
-
- if (sy >= 0 && sx >= 0 && sy <= nScreenHeight-8 && sx <= nScreenWidth-8) {
- Render8x8Tile_Mask(pTransDraw, code, sx, sy, color, 4, 0, 0, DrvGfxROM0);
- } else {
- Render8x8Tile_Mask_Clip(pTransDraw, code, sx, sy, color, 4, 0, 0, DrvGfxROM0);
- }
- }
-}
-
-static void draw_pf23_layer_no_rowscroll(UINT8 *ram, UINT8 *gfx_base, INT32 coloffs, INT32 transp, INT32 scroll_x, INT32 scroll_y)
-{
- UINT16 *vram = (UINT16*)ram;
-
- for (INT32 offs = 0; offs < 64 * 64; offs++)
- {
- INT32 sx = (offs & 0x3f);
- INT32 sy = (offs >> 6);
-
- INT32 ofst = (sx & 0x1f) + ((sy & 0x1f) << 5) + ((sx & 0x20) << 5) + ((sy & 0x20) << 6);
-
- sx <<= 4, sy <<= 4;
-
- sx -= scroll_x;
- if (sx < -15) sx += 0x400;
- sy -= scroll_y + 8;
- if (sy < -15) sy += 0x400;
-
- if (sx >= nScreenWidth || sy >= nScreenHeight) continue;
-
- INT32 code = BURN_ENDIAN_SWAP_INT16(vram[ofst]);
- INT32 color = code >> 12;
-
- code &= 0xfff;
- if (!code && transp) continue;
-
- if (transp) {
- if (sy >= 0 && sx >= 0 && sy <= nScreenHeight-16 && sx <= nScreenWidth-16) {
- Render16x16Tile_Mask(pTransDraw, code, sx, sy, color, 4, 0, coloffs, gfx_base);
- } else {
- Render16x16Tile_Mask_Clip(pTransDraw, code, sx, sy, color, 4, 0, coloffs, gfx_base);
- }
- } else {
- if (sy >= 0 && sx >= 0 && sy <= nScreenHeight-16 && sx <= nScreenWidth-16) {
- Render16x16Tile(pTransDraw, code, sx, sy, color, 4, coloffs, gfx_base);
- } else {
- Render16x16Tile_Clip(pTransDraw, code, sx, sy, color, 4, coloffs, gfx_base);
- }
- }
- }
-}
-
-static void draw_pf23_layer_rowscroll(INT32 scroll_x, INT32 scroll_y)
-{
- UINT16 *vram = (UINT16*)DrvPf3RAM;
- UINT16 *rows = (UINT16*)DrvPf34RowRAM;
- UINT16 *dest;
-
- for (INT32 y = 8; y < 248; y++)
- {
- INT32 row = (scroll_y + y) >> 4;
- INT32 xscr = scroll_x + (BURN_ENDIAN_SWAP_INT16(rows[0x40+y]) & 0x3ff);
- dest = pTransDraw + ((y-8) * nScreenWidth);
-
- for (INT32 x = 0; x < 256+16; x+=16)
- {
- INT32 col = ((xscr + x) & 0x3ff) >> 4;
- INT32 sx = x - (xscr & 0x0f);
- if (sx < -15) sx += 0x400;
- if (sx < 0) sx += 16;
-
- INT32 ofst = (col & 0x1f) + ((row & 0x1f) << 5) + ((col & 0x20) << 5) + ((row & 0x20) << 6);
-
- INT32 code = BURN_ENDIAN_SWAP_INT16(vram[ofst]) & 0xfff;
- INT32 color = ((BURN_ENDIAN_SWAP_INT16(vram[ofst]) >> 12) << 4) | 0x400;
-
- UINT8 *src = DrvGfxROM2 + (code << 8) + (((scroll_y + y) & 0x0f) << 4);
- for (INT32 xx = sx; xx < (((sx+16) < nScreenWidth) ? (sx+16) : nScreenWidth); xx++) {
- if (xx >= nScreenWidth) break;
- dest[xx] = src[xx-sx] | color;
- }
- }
- }
-}
-
-static INT32 DrvDraw()
-{
- if (DrvRecalc) {
- for (INT32 i = 0; i < 0x1000; i+=2) {
- palette_write(i);
- }
- }
-
- UINT16 *ctrl0 = (UINT16*)DrvPfCtrlRAM0;
- UINT16 *ctrl1 = (UINT16*)DrvPfCtrlRAM1;
-
- INT32 flipscreen = ~BURN_ENDIAN_SWAP_INT16(ctrl0[0]) & 0x80;
-
- if (ctrl0[6] & 0x4000) {
- draw_pf23_layer_rowscroll(BURN_ENDIAN_SWAP_INT16(ctrl0[3]) & 0x3ff, BURN_ENDIAN_SWAP_INT16(ctrl0[4]) & 0x3ff);
- } else {
- draw_pf23_layer_no_rowscroll(DrvPf3RAM, DrvGfxROM2, 0x400, 0, BURN_ENDIAN_SWAP_INT16(ctrl0[3]) & 0x3ff, BURN_ENDIAN_SWAP_INT16(ctrl0[4]) & 0x3ff);
- }
-
- draw_pf23_layer_no_rowscroll(DrvPf2RAM, DrvGfxROM1, 0x300, 1, BURN_ENDIAN_SWAP_INT16(ctrl1[1]) & 0x3ff, BURN_ENDIAN_SWAP_INT16(ctrl1[2]) & 0x3ff);
-
- draw_sprites();
-
- draw_pf1_layer(BURN_ENDIAN_SWAP_INT16(ctrl1[3]) & 0x1ff, BURN_ENDIAN_SWAP_INT16(ctrl1[4]) & 0x1ff);
-
- if (flipscreen) {
- INT32 full = nScreenWidth * nScreenHeight;
- for (INT32 i = 0; i < full / 2; i++) {
- INT32 t = pTransDraw[i + 0];
- pTransDraw[i + 0] = pTransDraw[(full-1)-i];
- pTransDraw[(full-1)-i] = t;
- }
- }
-
- BurnTransferCopy(DrvPalette);
-
- return 0;
-}
-
-static INT32 DrvFrame()
-{
- if (DrvReset) {
- DrvDoReset();
- }
-
- {
- memset (DrvInputs, 0xff, 2 * sizeof(UINT16));
-
- for (INT32 i = 0; i < 16; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- }
- }
-
- INT32 nInterleave = 232;
- INT32 nSoundBufferPos = 0;
- INT32 nCyclesTotal[2] = { 12000000 / 58, 8055000 / 58 };
- INT32 nCyclesDone[2] = { 0, 0 };
-
- h6280NewFrame();
-
- SekOpen(0);
- h6280Open(0);
-
- vblank = 8;
-
- for (INT32 i = 0; i < nInterleave; i++)
- {
- nCyclesDone[0] += SekRun(nCyclesTotal[0] / nInterleave);
- BurnTimerUpdate((i + 1) * nCyclesTotal[1] / nInterleave);
-
- if (i == 7) vblank = 0;
- if (i == 206) vblank = 8;
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen / nInterleave;
- INT16* pSoundBuf = SoundBuffer + (nSoundBufferPos << 1);
- deco16SoundUpdate(pSoundBuf, nSegmentLength);
- nSoundBufferPos += nSegmentLength;
- }
- }
-
- SekSetIRQLine(6, CPU_IRQSTATUS_AUTO);
- BurnTimerEndFrame(nCyclesTotal[1]);
-
- if (pBurnSoundOut) {
- BurnYM2203Update(pBurnSoundOut, nBurnSoundLen);
-
- INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
- INT16* pSoundBuf = SoundBuffer + (nSoundBufferPos << 1);
-
- if (nSegmentLength) {
- deco16SoundUpdate(pSoundBuf, nSegmentLength);
- }
-
- for (INT32 i = 0; i < nBurnSoundLen; i++) {
- pBurnSoundOut[(i << 1) + 0] = BURN_SND_CLIP(pBurnSoundOut[(i << 1) + 0] + SoundBuffer[(i << 1) + 0]);
- pBurnSoundOut[(i << 1) + 1] = BURN_SND_CLIP(pBurnSoundOut[(i << 1) + 1] + SoundBuffer[(i << 1) + 1]);
- }
- }
-
- h6280Close();
- SekClose();
-
- if (pBurnDraw) {
- DrvDraw();
- }
-
- return 0;
-}
-
-static INT32 DrvScan(INT32 nAction, INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin != NULL) {
- *pnMin = 0x029722;
- }
-
- if (nAction & ACB_MEMORY_RAM) {
- memset(&ba, 0, sizeof(ba));
- ba.Data = AllRam;
- ba.nLen = RamEnd-AllRam;
- ba.szName = "All Ram";
- BurnAcb(&ba);
- }
-
- if (nAction & ACB_DRIVER_DATA) {
- SekScan(nAction);
-
- deco16SoundScan(nAction, pnMin);
-
- deco16Scan();
-
- SCAN_VAR(vblank);
- }
-
- return 0;
-}
-
-
-// Dark Seal (World revision 3)
-
-static struct BurnRomInfo darksealRomDesc[] = {
- { "ga_04-3.j12", 0x20000, 0xbafad556, 1 | BRF_PRG | BRF_ESS }, // 0 68k Code
- { "ga_01-3.h14", 0x20000, 0xf409050e, 1 | BRF_PRG | BRF_ESS }, // 1
- { "ga_00.h12", 0x20000, 0xfbf3ac63, 1 | BRF_PRG | BRF_ESS }, // 2
- { "ga_05.j14", 0x20000, 0xd5e3ae3f, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "fz_06-1.j15", 0x10000, 0xc4828a6d, 2 | BRF_PRG | BRF_ESS }, // 4 H6280 Code
-
- { "fz_02.j1", 0x10000, 0x3c9c3012, 3 | BRF_GRA }, // 5 Text Tiles
- { "fz_03.j2", 0x10000, 0x264b90ed, 3 | BRF_GRA }, // 6
-
- { "mac-03.h3", 0x80000, 0x9996f3dc, 4 | BRF_GRA }, // 7 Foreground Tiles
-
- { "mac-02.e20", 0x80000, 0x49504e89, 5 | BRF_GRA }, // 8 Background Tiles
-
- { "mac-00.b1", 0x80000, 0x52acf1d6, 6 | BRF_GRA }, // 9 Sprite Tiles
- { "mac-01.b3", 0x80000, 0xb28f7584, 6 | BRF_GRA }, // 10
-
- { "fz_08.l17", 0x20000, 0xc9bf68e1, 7 | BRF_SND }, // 11 Oki6295 #0 Samples
-
- { "fz_07.k14", 0x20000, 0x588dd3cb, 8 | BRF_SND }, // 12 Oki6295 #1 Samples
-};
-
-STD_ROM_PICK(darkseal)
-STD_ROM_FN(darkseal)
-
-struct BurnDriver BurnDrvDarkseal = {
- "darkseal", NULL, NULL, NULL, "1990",
- "Dark Seal (World revision 3)\0", NULL, "Data East Corporation", "DECO IC16",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_PREFIX_DATAEAST, GBF_MAZE | GBF_SCRFIGHT, 0,
- NULL, darksealRomInfo, darksealRomName, NULL, NULL, DarksealInputInfo, DarksealDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 256, 240, 4, 3
-};
-
-
-// Dark Seal (World revision 1)
-
-static struct BurnRomInfo darksea1RomDesc[] = {
- { "FZ_04-4.J12", 0x20000, 0xa1a985a9, 1 | BRF_PRG | BRF_ESS }, // 0 68k Code
- { "FZ_01-1.H14", 0x20000, 0x98bd2940, 1 | BRF_PRG | BRF_ESS }, // 1
- { "FZ_00-2.H12", 0x20000, 0xfbf3ac63, 1 | BRF_PRG | BRF_ESS }, // 2
- { "FZ_05-2.J14", 0x20000, 0xd5e3ae3f, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "FZ_06-1.J15", 0x10000, 0xc4828a6d, 2 | BRF_PRG | BRF_ESS }, // 4 H6280 Code
-
- { "FZ_02-1.J1", 0x10000, 0x3c9c3012, 3 | BRF_GRA }, // 5 Text Tiles
- { "FZ_03-1.J2", 0x10000, 0x264b90ed, 3 | BRF_GRA }, // 6
-
- { "mac-03.h3", 0x80000, 0x9996f3dc, 4 | BRF_GRA }, // 7 Foreground Tiles
-
- { "mac-02.e20", 0x80000, 0x49504e89, 5 | BRF_GRA }, // 8 Background Tiles
-
- { "mac-00.b1", 0x80000, 0x52acf1d6, 6 | BRF_GRA }, // 9 Sprite Tiles
- { "mac-01.b3", 0x80000, 0xb28f7584, 6 | BRF_GRA }, // 10
-
- { "FZ_08-1.K17", 0x20000, 0xc9bf68e1, 7 | BRF_SND }, // 11 Oki6295 #0 Samples
-
- { "FZ_07-.K14", 0x20000, 0x588dd3cb, 8 | BRF_SND }, // 12 Oki6295 #1 Samples
-};
-
-STD_ROM_PICK(darksea1)
-STD_ROM_FN(darksea1)
-
-struct BurnDriver BurnDrvDarksea1 = {
- "darkseal1", "darkseal", NULL, NULL, "1990",
- "Dark Seal (World revision 1)\0", NULL, "Data East Corporation", "DECO IC16",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_DATAEAST, GBF_MAZE | GBF_SCRFIGHT, 0,
- NULL, darksea1RomInfo, darksea1RomName, NULL, NULL, DarksealInputInfo, DarksealDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 256, 240, 4, 3
-};
-
-
-// Dark Seal (Japan)
-
-static struct BurnRomInfo darkseajRomDesc[] = {
- { "fz_04-4.j12", 0x20000, 0x817faa2c, 1 | BRF_PRG | BRF_ESS }, // 0 68k Code
- { "fz_01-4.h14", 0x20000, 0x373caeee, 1 | BRF_PRG | BRF_ESS }, // 1
- { "fz_00-2.h12", 0x20000, 0x1ab99aa7, 1 | BRF_PRG | BRF_ESS }, // 2
- { "fz_05-2.j14", 0x20000, 0x3374ef8c, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "fz_06-1.j15", 0x10000, 0xc4828a6d, 2 | BRF_PRG | BRF_ESS }, // 4 H6280 Code
-
- { "fz_02.j1", 0x10000, 0x3c9c3012, 3 | BRF_GRA }, // 5 Text Tiles
- { "fz_03.j2", 0x10000, 0x264b90ed, 3 | BRF_GRA }, // 6
-
- { "mac-03.h3", 0x80000, 0x9996f3dc, 4 | BRF_GRA }, // 7 Foreground Tiles
-
- { "mac-02.e20", 0x80000, 0x49504e89, 5 | BRF_GRA }, // 8 Background Tiles
-
- { "mac-00.b1", 0x80000, 0x52acf1d6, 6 | BRF_GRA }, // 9 Sprite Tiles
- { "mac-01.b3", 0x80000, 0xb28f7584, 6 | BRF_GRA }, // 10
-
- { "fz_08.l17", 0x20000, 0xc9bf68e1, 7 | BRF_SND }, // 11 Oki6295 #0 Samples
-
- { "fz_07.k14", 0x20000, 0x588dd3cb, 8 | BRF_SND }, // 12 Oki6295 #1 Samples
-};
-
-STD_ROM_PICK(darkseaj)
-STD_ROM_FN(darkseaj)
-
-struct BurnDriver BurnDrvDarkseaj = {
- "darksealj", "darkseal", NULL, NULL, "1990",
- "Dark Seal (Japan)\0", NULL, "Data East Corporation", "DECO IC16",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_DATAEAST, GBF_MAZE | GBF_SCRFIGHT, 0,
- NULL, darkseajRomInfo, darkseajRomName, NULL, NULL, DarksealInputInfo, DarksealDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 256, 240, 4, 3
-};
-
-
-// Gate of Doom (US revision 4)
-
-static struct BurnRomInfo gatedoomRomDesc[] = {
- { "gb_04-4.j12", 0x20000, 0x8e3a0bfd, 1 | BRF_PRG | BRF_ESS }, // 0 68k Code
- { "gb_01-4.h14", 0x20000, 0x8d0fd383, 1 | BRF_PRG | BRF_ESS }, // 1
- { "gb_00.h12", 0x20000, 0xa88c16a1, 1 | BRF_PRG | BRF_ESS }, // 2
- { "gb_05.j14", 0x20000, 0x252d7e14, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "fz_06-1.j15", 0x10000, 0xc4828a6d, 2 | BRF_PRG | BRF_ESS }, // 4 H6280 Code
-
- { "fz_02.j1", 0x10000, 0x3c9c3012, 3 | BRF_GRA }, // 5 Text Tiles
- { "fz_03.j2", 0x10000, 0x264b90ed, 3 | BRF_GRA }, // 6
-
- { "mac-03.h3", 0x80000, 0x9996f3dc, 4 | BRF_GRA }, // 7 Foreground Tiles
-
- { "mac-02.e20", 0x80000, 0x49504e89, 5 | BRF_GRA }, // 8 Background Tiles
-
- { "mac-00.b1", 0x80000, 0x52acf1d6, 6 | BRF_GRA }, // 9 Sprite Tiles
- { "mac-01.b3", 0x80000, 0xb28f7584, 6 | BRF_GRA }, // 10
-
- { "fz_08.l17", 0x20000, 0xc9bf68e1, 7 | BRF_SND }, // 11 Oki6295 #0 Samples
-
- { "fz_07.k14", 0x20000, 0x588dd3cb, 8 | BRF_SND }, // 12 Oki6295 #1 Samples
-};
-
-STD_ROM_PICK(gatedoom)
-STD_ROM_FN(gatedoom)
-
-struct BurnDriver BurnDrvGatedoom = {
- "gatedoom", "darkseal", NULL, NULL, "1990",
- "Gate of Doom (US revision 4)\0", NULL, "Data East Corporation", "DECO IC16",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_DATAEAST, GBF_MAZE | GBF_SCRFIGHT, 0,
- NULL, gatedoomRomInfo, gatedoomRomName, NULL, NULL, DarksealInputInfo, DarksealDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 256, 240, 4, 3
-};
-
-
-// Gate of Doom (US revision 1)
-
-static struct BurnRomInfo gatedom1RomDesc[] = {
- { "gb_04.j12", 0x20000, 0x4c3bbd2b, 1 | BRF_PRG | BRF_ESS }, // 0 68k Code
- { "gb_01.h14", 0x20000, 0x59e367f4, 1 | BRF_PRG | BRF_ESS }, // 1
- { "gb_00.h12", 0x20000, 0xa88c16a1, 1 | BRF_PRG | BRF_ESS }, // 2
- { "gb_05.j14", 0x20000, 0x252d7e14, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "fz_06-1.j15", 0x10000, 0xc4828a6d, 2 | BRF_PRG | BRF_ESS }, // 4 H6280 Code
-
- { "fz_02.j1", 0x10000, 0x3c9c3012, 3 | BRF_GRA }, // 5 Text Tiles
- { "fz_03.j2", 0x10000, 0x264b90ed, 3 | BRF_GRA }, // 6
-
- { "mac-03.h3", 0x80000, 0x9996f3dc, 4 | BRF_GRA }, // 7 Foreground Tiles
-
- { "mac-02.e20", 0x80000, 0x49504e89, 5 | BRF_GRA }, // 8 Background Tiles
-
- { "mac-00.b1", 0x80000, 0x52acf1d6, 6 | BRF_GRA }, // 9 Sprite Tiles
- { "mac-01.b3", 0x80000, 0xb28f7584, 6 | BRF_GRA }, // 10
-
- { "fz_08.l17", 0x20000, 0xc9bf68e1, 7 | BRF_SND }, // 11 Oki6295 #0 Samples
-
- { "fz_07.k14", 0x20000, 0x588dd3cb, 8 | BRF_SND }, // 12 Oki6295 #1 Samples
-};
-
-STD_ROM_PICK(gatedom1)
-STD_ROM_FN(gatedom1)
-
-struct BurnDriver BurnDrvGatedom1 = {
- "gatedoom1", "darkseal", NULL, NULL, "1990",
- "Gate of Doom (US revision 1)\0", NULL, "Data East Corporation", "DECO IC16",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_DATAEAST, GBF_MAZE | GBF_SCRFIGHT, 0,
- NULL, gatedom1RomInfo, gatedom1RomName, NULL, NULL, DarksealInputInfo, DarksealDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 256, 240, 4, 3
-};
diff --git a/jan/src/burn/drv/dataeast/d_dassault.cpp b/jan/src/burn/drv/dataeast/d_dassault.cpp
deleted file mode 100644
index 77baddd36..000000000
--- a/jan/src/burn/drv/dataeast/d_dassault.cpp
+++ /dev/null
@@ -1,1387 +0,0 @@
-// FB Alpha Thunder Zone / Desert Assault driver module
-// Based on MAME driver by Bryan McPhail
-
-#include "tiles_generic.h"
-#include "m68000_intf.h"
-#include "h6280_intf.h"
-#include "bitswap.h"
-#include "deco16ic.h"
-#include "burn_ym2203.h"
-#include "burn_ym2151.h"
-#include "msm6295.h"
-#include "timer.h"
-
-static UINT8 *AllMem;
-static UINT8 *MemEnd;
-static UINT8 *AllRam;
-static UINT8 *RamEnd;
-static UINT8 *Drv68KROM0;
-static UINT8 *Drv68KROM1;
-static UINT8 *DrvHucROM;
-static UINT8 *DrvGfxROM0;
-static UINT8 *DrvGfxROM1;
-static UINT8 *DrvGfxROM2;
-static UINT8 *DrvGfxROM3;
-static UINT8 *DrvGfxROM4;
-static UINT8 *DrvSndROM0;
-static UINT8 *DrvSndROM1;
-static UINT8 *Drv68KRAM0;
-static UINT8 *Drv68KRAM1;
-static UINT8 *DrvHucRAM;
-static UINT8 *DrvPalRAM;
-static UINT8 *DrvSprRAM0;
-static UINT8 *DrvSprRAM1;
-static UINT8 *DrvSprBuf0;
-static UINT8 *DrvSprBuf1;
-static UINT8 *DrvShareRAM;
-
-static UINT32 *DrvPalette;
-static UINT8 DrvRecalc;
-
-static INT16 *SoundBuffer;
-
-static UINT8 *flipscreen;
-
-static UINT8 DrvJoy1[16];
-static UINT8 DrvJoy2[16];
-static UINT8 DrvJoy3[16];
-static UINT8 DrvDips[2];
-static UINT8 DrvReset;
-static UINT16 DrvInputs[3];
-
-static INT32 DrvOkiBank;
-
-static struct BurnInputInfo ThndzoneInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy3 + 0, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 7, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy1 + 0, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy1 + 1, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy1 + 2, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy1 + 3, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy1 + 4, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy1 + 5, "p1 fire 2" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy3 + 1, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy1 + 15, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvJoy1 + 8, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy1 + 9, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy1 + 10, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy1 + 11, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy1 + 12, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy1 + 13, "p2 fire 2" },
-
- {"P3 Coin", BIT_DIGITAL, DrvJoy2 + 7, "p3 coin" },
- {"P3 Up", BIT_DIGITAL, DrvJoy2 + 0, "p3 up" },
- {"P3 Down", BIT_DIGITAL, DrvJoy2 + 1, "p3 down" },
- {"P3 Left", BIT_DIGITAL, DrvJoy2 + 2, "p3 left" },
- {"P3 Right", BIT_DIGITAL, DrvJoy2 + 3, "p3 right" },
- {"P3 Button 1", BIT_DIGITAL, DrvJoy2 + 4, "p3 fire 1" },
- {"P3 Button 2", BIT_DIGITAL, DrvJoy2 + 5, "p3 fire 2" },
-
- {"P4 Coin", BIT_DIGITAL, DrvJoy2 + 15, "p4 coin" },
- {"P4 Up", BIT_DIGITAL, DrvJoy2 + 8, "p4 up" },
- {"P4 Down", BIT_DIGITAL, DrvJoy2 + 9, "p4 down" },
- {"P4 Left", BIT_DIGITAL, DrvJoy2 + 10, "p4 left" },
- {"P4 Right", BIT_DIGITAL, DrvJoy2 + 11, "p4 right" },
- {"P4 Button 1", BIT_DIGITAL, DrvJoy2 + 12, "p4 fire 1" },
- {"P4 Button 2", BIT_DIGITAL, DrvJoy2 + 13, "p4 fire 2" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service", BIT_DIGITAL, DrvJoy3 + 2, "service" },
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip" },
-};
-
-STDINPUTINFO(Thndzone)
-
-static struct BurnDIPInfo ThndzoneDIPList[]=
-{
- {0x20, 0xff, 0xff, 0xff, NULL },
- {0x21, 0xff, 0xff, 0x7f, NULL },
-
- {0 , 0xfe, 0 , 8, "Coin A" },
- {0x20, 0x01, 0x07, 0x00, "3 Coins 1 Credits" },
- {0x20, 0x01, 0x07, 0x01, "2 Coins 1 Credits" },
- {0x20, 0x01, 0x07, 0x07, "1 Coin 1 Credits" },
- {0x20, 0x01, 0x07, 0x06, "1 Coin 2 Credits" },
- {0x20, 0x01, 0x07, 0x05, "1 Coin 3 Credits" },
- {0x20, 0x01, 0x07, 0x04, "1 Coin 4 Credits" },
- {0x20, 0x01, 0x07, 0x03, "1 Coin 5 Credits" },
- {0x20, 0x01, 0x07, 0x02, "1 Coin 6 Credits" },
-
- {0 , 0xfe, 0 , 8, "Coin B" },
- {0x20, 0x01, 0x38, 0x00, "3 Coins 1 Credits" },
- {0x20, 0x01, 0x38, 0x08, "2 Coins 1 Credits" },
- {0x20, 0x01, 0x38, 0x38, "1 Coin 1 Credits" },
- {0x20, 0x01, 0x38, 0x30, "1 Coin 2 Credits" },
- {0x20, 0x01, 0x38, 0x28, "1 Coin 3 Credits" },
- {0x20, 0x01, 0x38, 0x20, "1 Coin 4 Credits" },
- {0x20, 0x01, 0x38, 0x18, "1 Coin 5 Credits" },
- {0x20, 0x01, 0x38, 0x10, "1 Coin 6 Credits" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x20, 0x01, 0x40, 0x40, "Off" },
- {0x20, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "2 Coins to Start, 1 to Continue" },
- {0x20, 0x01, 0x80, 0x80, "Off" },
- {0x20, 0x01, 0x80, 0x00, "On" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x21, 0x01, 0x0c, 0x08, "Easy" },
- {0x21, 0x01, 0x0c, 0x0c, "Normal" },
- {0x21, 0x01, 0x0c, 0x04, "Hard" },
- {0x21, 0x01, 0x0c, 0x00, "Hardest" },
-
- {0 , 0xfe, 0 , 2, "Max Players" },
- {0x21, 0x01, 0x20, 0x20, "2" },
- {0x21, 0x01, 0x20, 0x00, "4" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x21, 0x01, 0x80, 0x80, "Off" },
- {0x21, 0x01, 0x80, 0x00, "On" },
-};
-
-STDDIPINFO(Thndzone)
-
-static struct BurnDIPInfo DassaultDIPList[]=
-{
- {0x20, 0xff, 0xff, 0xff, NULL },
- {0x21, 0xff, 0xff, 0x7f, NULL },
-
- {0 , 0xfe, 0 , 8, "Coin A" },
- {0x20, 0x01, 0x07, 0x00, "3 Coins 1 Credits" },
- {0x20, 0x01, 0x07, 0x01, "2 Coins 1 Credits" },
- {0x20, 0x01, 0x07, 0x07, "1 Coin 1 Credits" },
- {0x20, 0x01, 0x07, 0x06, "1 Coin 2 Credits" },
- {0x20, 0x01, 0x07, 0x05, "1 Coin 3 Credits" },
- {0x20, 0x01, 0x07, 0x04, "1 Coin 4 Credits" },
- {0x20, 0x01, 0x07, 0x03, "1 Coin 5 Credits" },
- {0x20, 0x01, 0x07, 0x02, "1 Coin 6 Credits" },
-
- {0 , 0xfe, 0 , 8, "Coin B" },
- {0x20, 0x01, 0x38, 0x00, "3 Coins 1 Credits" },
- {0x20, 0x01, 0x38, 0x08, "2 Coins 1 Credits" },
- {0x20, 0x01, 0x38, 0x38, "1 Coin 1 Credits" },
- {0x20, 0x01, 0x38, 0x30, "1 Coin 2 Credits" },
- {0x20, 0x01, 0x38, 0x28, "1 Coin 3 Credits" },
- {0x20, 0x01, 0x38, 0x20, "1 Coin 4 Credits" },
- {0x20, 0x01, 0x38, 0x18, "1 Coin 5 Credits" },
- {0x20, 0x01, 0x38, 0x10, "1 Coin 6 Credits" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x20, 0x01, 0x40, 0x40, "Off" },
- {0x20, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "2 Coins to Start, 1 to Continue" },
- {0x20, 0x01, 0x80, 0x80, "Off" },
- {0x20, 0x01, 0x80, 0x00, "On" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x21, 0x01, 0x0c, 0x08, "Easy" },
- {0x21, 0x01, 0x0c, 0x0c, "Normal" },
- {0x21, 0x01, 0x0c, 0x04, "Hard" },
- {0x21, 0x01, 0x0c, 0x00, "Hardest" },
-
- {0 , 0xfe, 0 , 3, "Max Players" },
- {0x21, 0x01, 0x30, 0x30, "2" },
- {0x21, 0x01, 0x30, 0x20, "3" },
- {0x21, 0x01, 0x30, 0x10, "4" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x21, 0x01, 0x80, 0x80, "Off" },
- {0x21, 0x01, 0x80, 0x00, "On" },
-};
-
-STDDIPINFO(Dassault)
-
-static struct BurnDIPInfo Dassault4DIPList[]=
-{
- {0x1e, 0xff, 0xff, 0xff, NULL },
- {0x1f, 0xff, 0xff, 0x7f, NULL },
-
- {0 , 0xfe, 0 , 8, "Coinage" },
- {0x1e, 0x01, 0x07, 0x00, "3 Coins 1 Credits" },
- {0x1e, 0x01, 0x07, 0x01, "2 Coins 1 Credits" },
- {0x1e, 0x01, 0x07, 0x07, "1 Coin 1 Credits" },
- {0x1e, 0x01, 0x07, 0x06, "1 Coin 2 Credits" },
- {0x1e, 0x01, 0x07, 0x05, "1 Coin 3 Credits" },
- {0x1e, 0x01, 0x07, 0x04, "1 Coin 4 Credits" },
- {0x1e, 0x01, 0x07, 0x03, "1 Coin 5 Credits" },
- {0x1e, 0x01, 0x07, 0x02, "1 Coin 6 Credits" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x1e, 0x01, 0x40, 0x40, "Off" },
- {0x1e, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "2 Coins to Start, 1 to Continue" },
- {0x1e, 0x01, 0x80, 0x80, "Off" },
- {0x1e, 0x01, 0x80, 0x00, "On" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x1f, 0x01, 0x0c, 0x08, "Easy" },
- {0x1f, 0x01, 0x0c, 0x0c, "Normal" },
- {0x1f, 0x01, 0x0c, 0x04, "Hard" },
- {0x1f, 0x01, 0x0c, 0x00, "Hardest" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x1f, 0x01, 0x80, 0x80, "Off" },
- {0x1f, 0x01, 0x80, 0x00, "On" },
-};
-
-STDDIPINFO(Dassault4)
-
-void __fastcall dassault_main_write_word(UINT32 address, UINT16 data)
-{
- deco16_write_control_word(0, address, 0x220000, data)
- deco16_write_control_word(1, address, 0x260000, data)
-
- switch (address)
- {
- case 0x180000:
- deco16_soundlatch = data & 0xff;
- h6280SetIRQLine(0, CPU_IRQSTATUS_ACK);
- return;
-
- case 0x1c000c:
- case 0x1c000d:
- memcpy (DrvSprBuf1, DrvSprRAM1, 0x1000);
- return;
-
- case 0x1c000e:
- case 0x1c000f:
- // coin counter
- return;
- }
-}
-
-void __fastcall dassault_main_write_byte(UINT32 address, UINT8 data)
-{
- switch (address)
- {
- case 0x180001:
- deco16_soundlatch = data;
- h6280SetIRQLine(0, CPU_IRQSTATUS_ACK);
- return;
-
- case 0x1c000b:
- deco16_priority = data;
- return;
-
- case 0x1c000c:
- case 0x1c000d:
- memcpy (DrvSprBuf1, DrvSprRAM1, 0x1000);
- return;
-
- case 0x1c000e:
- case 0x1c000f:
- // coin counter
- return;
- }
-}
-
-UINT16 __fastcall dassault_main_read_word(UINT32 address)
-{
- switch (address)
- {
- case 0x1c0000:
- return DrvInputs[0]; // p1,p2
-
- case 0x1c0002:
- return DrvInputs[1]; // p3,p4
-
- case 0x1c0004:
- return DrvDips[0];
-
- case 0x1c0006:
- return DrvDips[1];
-
- case 0x1c0008:
- return (DrvInputs[2] & 0xf7) | (deco16_vblank & 0x08);
-
- case 0x1c000a:
- case 0x1c000c:
- case 0x1c000e:
- return 0xffff;
- }
-
- return 0;
-}
-
-UINT8 __fastcall dassault_main_read_byte(UINT32 address)
-{
- switch (address)
- {
- case 0x1c0000:
- return DrvInputs[0] >> 8;
-
- case 0x1c0001:
- return DrvInputs[0]; // p1,p2
-
- case 0x1c0002:
- return DrvInputs[1] >> 8;
-
- case 0x1c0003:
- return DrvInputs[1]; // p3,p4
-
- case 0x1c0004:
- case 0x1c0005:
- return DrvDips[0];
-
- case 0x1c0006:
- case 0x1c0007:
- return DrvDips[1];
-
- case 0x1c0008:
- case 0x1c0009:
- return (DrvInputs[2] & 0xf7) | (deco16_vblank & 0x08);
-
- case 0x1c000a:
- case 0x1c000b:
- case 0x1c000c:
- case 0x1c000d:
- case 0x1c000e:
- case 0x1c000f:
- return 0xff;
- }
-
- return 0;
-}
-
-UINT16 __fastcall dassault_sub_read_word(UINT32 address)
-{
- switch (address)
- {
- case 0x100004:
- case 0x100005:
- return (deco16_vblank ? 0xffff : 0);
- }
-
- return 0;
-}
-
-UINT8 __fastcall dassault_sub_read_byte(UINT32 address)
-{
- switch (address)
- {
- case 0x100004:
- case 0x100005:
- return (deco16_vblank ? 0xff : 0);
- }
-
- return 0;
-}
-
-void __fastcall dassault_sub_write_word(UINT32 address, UINT16 )
-{
- switch (address)
- {
- case 0x100000:
- case 0x100001:
- memcpy (DrvSprBuf0, DrvSprRAM0, 0x1000);
- return;
- }
-}
-
-void __fastcall dassault_sub_write_byte(UINT32 address, UINT8 )
-{
- switch (address)
- {
- case 0x100000:
- case 0x100001:
- memcpy (DrvSprBuf0, DrvSprRAM0, 0x1000);
- return;
- }
-}
-
-static void set_cpuA_irq(INT32 state)
-{
- if (SekGetActive() == 0) { // main
- SekSetIRQLine(5, state ? CPU_IRQSTATUS_ACK : CPU_IRQSTATUS_NONE);
- } else {
- SekClose();
- SekOpen(0);
- SekSetIRQLine(5, state ? CPU_IRQSTATUS_ACK : CPU_IRQSTATUS_NONE);
- SekClose();
- SekOpen(1);
- }
-}
-
-static void set_cpuB_irq(INT32 state)
-{
- if (SekGetActive() == 1) { // sub
- SekSetIRQLine(6, state ? CPU_IRQSTATUS_ACK : CPU_IRQSTATUS_NONE);
- } else {
- SekClose();
- SekOpen(1);
- SekSetIRQLine(6, state ? CPU_IRQSTATUS_ACK : CPU_IRQSTATUS_NONE);
- SekClose();
- SekOpen(0);
- }
-}
-
-void __fastcall dassault_irq_write_word(UINT32 address, UINT16 data)
-{
- if ((address & 0xffffffc) == 0x3feffc) {
- if (address & 2) {
- set_cpuB_irq(1);
- } else {
- set_cpuA_irq(1);
- }
- }
-
- *((UINT16*)(DrvShareRAM + (address & 0xffe))) = BURN_ENDIAN_SWAP_INT16(data);
-}
-
-void __fastcall dassault_irq_write_byte(UINT32 address, UINT8 data)
-{
- if ((address & 0xffffffc) == 0x3feffc) {
- if (address & 2) {
- set_cpuB_irq(1);
- } else {
- set_cpuA_irq(1);
- }
- }
-
- DrvShareRAM[(address & 0xfff)^1] = data;
-}
-
-UINT16 __fastcall dassault_irq_read_word(UINT32 address)
-{
- if ((address & 0xffffffc) == 0x3feffc) {
- if (address & 2) {
- set_cpuB_irq(0);
- } else {
- set_cpuA_irq(0);
- }
- }
-
- return BURN_ENDIAN_SWAP_INT16(*((UINT16*)(DrvShareRAM + (address & 0xffe))));
-}
-
-UINT8 __fastcall dassault_irq_read_byte(UINT32 address)
-{
- if (SekGetPC(0) == 0x114c && (DrvShareRAM[0] & 0x80) && (address & ~1) == 0x3fe000) SekRunEnd();
-
- if ((address & 0xffffffc) == 0x3feffc) {
- if (address & 2) {
- set_cpuB_irq(0);
- } else {
- set_cpuA_irq(0);
- }
- }
-
- return DrvShareRAM[(address & 0xfff)^1];
-}
-
-static void DrvYM2151WritePort(UINT32, UINT32 data)
-{
- DrvOkiBank = data & 1;
-
- memcpy (DrvSndROM1, DrvSndROM1 + 0x40000 + (data & 1) * 0x40000, 0x40000);
-}
-
-static INT32 dassault_bank_callback( const INT32 bank )
-{
- return ((bank >> 4) & 0xf) << 12;
-}
-
-static INT32 DrvDoReset()
-{
- memset (AllRam, 0, RamEnd - AllRam);
-
- SekOpen(0);
- SekReset();
- SekClose();
-
- SekOpen(1);
- SekReset();
- SekClose();
-
- deco16SoundReset();
-
- DrvYM2151WritePort(0, 0); // Set OKI1 Bank
-
- deco16Reset();
-
- return 0;
-}
-
-static INT32 MemIndex()
-{
- UINT8 *Next; Next = AllMem;
-
- Drv68KROM0 = Next; Next += 0x080000;
- Drv68KROM1 = Next; Next += 0x080000;
-
- DrvHucROM = Next; Next += 0x010000;
-
- DrvGfxROM0 = Next; Next += 0x300000;
- DrvGfxROM1 = Next; Next += 0x300000;
- DrvGfxROM2 = Next; Next += 0x400000;
- DrvGfxROM3 = Next; Next += 0x800000;
- DrvGfxROM4 = Next; Next += 0x100000;
-
- MSM6295ROM = Next;
- DrvSndROM0 = Next; Next += 0x100000;
- DrvSndROM1 = Next; Next += 0x0c0000;
-
- DrvPalette = (UINT32*)Next; Next += 0x1000 * sizeof(UINT32);
-
- AllRam = Next;
-
- Drv68KRAM0 = Next; Next += 0x004000;
- Drv68KRAM1 = Next; Next += 0x004000;
- DrvHucRAM = Next; Next += 0x002000;
-
- DrvSprRAM0 = Next; Next += 0x001000;
- DrvSprRAM1 = Next; Next += 0x001000;
-
- DrvSprBuf0 = Next; Next += 0x001000;
- DrvSprBuf1 = Next; Next += 0x001000;
-
- DrvShareRAM = Next; Next += 0x001000;
-
- DrvPalRAM = Next; Next += 0x004000;
-
- flipscreen = Next; Next += 0x000001;
-
- RamEnd = Next;
-
- SoundBuffer = (INT16*)Next; Next += nBurnSoundLen * 2 * sizeof(INT16);
-
- MemEnd = Next;
-
- return 0;
-}
-
-static INT32 DrvInit()
-{
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(Drv68KROM0 + 0x000001, 0, 2)) return 1;
- if (BurnLoadRom(Drv68KROM0 + 0x000000, 1, 2)) return 1;
- if (BurnLoadRom(Drv68KROM0 + 0x040001, 2, 2)) return 1;
- if (BurnLoadRom(Drv68KROM0 + 0x040000, 3, 2)) return 1;
-
- if (BurnLoadRom(Drv68KROM1 + 0x000001, 4, 2)) return 1;
- if (BurnLoadRom(Drv68KROM1 + 0x000000, 5, 2)) return 1;
- if (BurnLoadRom(Drv68KROM1 + 0x040001, 6, 2)) return 1;
- if (BurnLoadRom(Drv68KROM1 + 0x040000, 7, 2)) return 1;
-
- if (BurnLoadRom(DrvHucROM + 0x000000, 8, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x000000, 9, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x000001, 10, 2)) return 1;
-
- if (BurnLoadRom(DrvGfxROM1 + 0x000000, 11, 1)) return 1;
-
- memcpy (DrvGfxROM3 + 0x000000, DrvGfxROM1 + 0x080000, 0x080000);
- memcpy (DrvGfxROM1 + 0x090000, DrvGfxROM3 + 0x000000, 0x080000);
- memcpy (DrvGfxROM1 + 0x080000, DrvGfxROM0 + 0x000000, 0x010000);
- memcpy (DrvGfxROM1 + 0x110000, DrvGfxROM0 + 0x010000, 0x010000);
- memset (DrvGfxROM3, 0, 0x200000);
-
- if (BurnLoadRom(DrvGfxROM2 + 0x000000, 12, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x100000, 13, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM3 + 0x000000, 14, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM3 + 0x080000, 15, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM3 + 0x100000, 16, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM3 + 0x180000, 17, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM3 + 0x200000, 18, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM3 + 0x280000, 19, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM3 + 0x300000, 20, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM3 + 0x380000, 21, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM4 + 0x000000, 22, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM4 + 0x000001, 23, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM4 + 0x040000, 24, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM4 + 0x040001, 25, 2)) return 1;
-
- if (BurnLoadRom(DrvSndROM0 + 0x000000, 26, 1)) return 1;
-
- if (BurnLoadRom(DrvSndROM1 + 0x040000, 27, 1)) return 1;
-
- deco16_tile_decode(DrvGfxROM1, DrvGfxROM0, 0x120000, 1);
- deco16_tile_decode(DrvGfxROM1, DrvGfxROM1, 0x120000, 0);
- deco16_tile_decode(DrvGfxROM2, DrvGfxROM2, 0x200000, 0);
- deco16_tile_decode(DrvGfxROM3, DrvGfxROM3, 0x400000, 0);
- deco16_tile_decode(DrvGfxROM4, DrvGfxROM4, 0x080000, 0);
- }
-
- deco16Init(0, 0, 1);
- deco16_set_graphics(DrvGfxROM0, 0x120000 * 2, DrvGfxROM1, 0x120000 * 2, DrvGfxROM2, 0x200000 * 2);
- deco16_set_global_offsets(0, 8);
- deco16_set_color_base(2, 0x200);
- deco16_set_color_base(3, 0x300);
- deco16_set_bank_callback(0, dassault_bank_callback);
- deco16_set_bank_callback(1, dassault_bank_callback);
- deco16_set_bank_callback(2, dassault_bank_callback);
- deco16_set_bank_callback(3, dassault_bank_callback);
-
- SekInit(0, 0x68000);
- SekOpen(0);
- SekMapMemory(Drv68KROM0, 0x000000, 0x07ffff, MAP_ROM);
- SekMapMemory(DrvPalRAM, 0x100000, 0x103fff, MAP_RAM);
- SekMapMemory(deco16_pf_ram[0], 0x200000, 0x201fff, MAP_RAM);
- SekMapMemory(deco16_pf_ram[1], 0x202000, 0x203fff, MAP_RAM);
- SekMapMemory(deco16_pf_rowscroll[1], 0x212000, 0x212fff, MAP_WRITE);
- SekMapMemory(deco16_pf_ram[2], 0x240000, 0x240fff, MAP_RAM);
- SekMapMemory(deco16_pf_ram[3], 0x242000, 0x242fff, MAP_RAM);
- SekMapMemory(deco16_pf_rowscroll[3], 0x252000, 0x252fff, MAP_WRITE);
- SekMapMemory(Drv68KRAM0, 0x3f8000, 0x3fbfff, MAP_RAM);
- SekMapMemory(DrvSprRAM1, 0x3fc000, 0x3fcfff, MAP_RAM);
- SekMapMemory(DrvShareRAM, 0x3fe000, 0x3fefff, MAP_FETCH);
-
- SekSetWriteWordHandler(0, dassault_main_write_word);
- SekSetWriteByteHandler(0, dassault_main_write_byte);
- SekSetReadWordHandler(0, dassault_main_read_word);
- SekSetReadByteHandler(0, dassault_main_read_byte);
-
- SekMapHandler(1, 0x3fe000, 0x3fefff, MAP_WRITE | MAP_READ);
- SekSetWriteWordHandler(1, dassault_irq_write_word);
- SekSetWriteByteHandler(1, dassault_irq_write_byte);
- SekSetReadWordHandler(1, dassault_irq_read_word);
- SekSetReadByteHandler(1, dassault_irq_read_byte);
- SekClose();
-
- SekInit(1, 0x68000);
- SekOpen(1);
- SekMapMemory(Drv68KROM1, 0x000000, 0x07ffff, MAP_ROM);
- SekMapMemory(Drv68KRAM1, 0x3f8000, 0x3fbfff, MAP_RAM);
- SekMapMemory(DrvSprRAM0, 0x3fc000, 0x3fcfff, MAP_RAM);
- SekMapMemory(DrvShareRAM, 0x3fe000, 0x3fefff, MAP_FETCH);
-
- SekSetWriteWordHandler(0, dassault_sub_write_word);
- SekSetWriteByteHandler(0, dassault_sub_write_byte);
- SekSetReadWordHandler(0, dassault_sub_read_word);
- SekSetReadByteHandler(0, dassault_sub_read_byte);
-
- SekMapHandler(1, 0x3fe000, 0x3fefff, MAP_WRITE | MAP_READ);
-
- SekSetWriteWordHandler(1, dassault_irq_write_word);
- SekSetWriteByteHandler(1, dassault_irq_write_byte);
- SekSetReadWordHandler(1, dassault_irq_read_word);
- SekSetReadByteHandler(1, dassault_irq_read_byte);
- SekClose();
-
- deco16SoundInit(DrvHucROM, DrvHucRAM, 8055000, 1, DrvYM2151WritePort, 0.45, 1006875, 0.50, 2013750, 0.25);
- BurnYM2203SetAllRoutes(0, 0.40, BURN_SND_ROUTE_BOTH);
- BurnYM2151SetRoute(BURN_SND_YM2151_YM2151_ROUTE_1, 0.45, BURN_SND_ROUTE_LEFT);
- BurnYM2151SetRoute(BURN_SND_YM2151_YM2151_ROUTE_2, 0.45, BURN_SND_ROUTE_RIGHT);
-
- GenericTilesInit();
-
- DrvDoReset();
-
- return 0;
-}
-
-static INT32 DrvExit()
-{
- GenericTilesExit();
- deco16Exit();
-
- SekExit();
- deco16SoundExit();
-
- BurnFree (AllMem);
-
- return 0;
-}
-
-static void draw_sprites(INT32 bpp)
-{
- if ((nBurnBpp & 4) != bpp) return;
-
- UINT16 *spritebase;
- UINT8 *gfx;
-
- for (INT32 bank = 0; bank < 2; bank++)
- {
- for (INT32 offs = 0x800 - 4; offs >= 0; offs -= 4)
- {
- INT32 alpha = 0xff, pmask = 0, coloff = 0;
-
- if (bank == 0)
- {
- spritebase = (UINT16*)DrvSprBuf0;
- gfx = DrvGfxROM3;
- coloff = 0x400;
- }
- else
- {
- spritebase = (UINT16*)DrvSprBuf1;
- gfx = DrvGfxROM4;
- coloff = 0x800;
- }
-
- INT32 sprite = BURN_ENDIAN_SWAP_INT16(spritebase[offs + 1]) & 0x7fff;
- if (!sprite) continue;
-
- INT32 x = BURN_ENDIAN_SWAP_INT16(spritebase[offs + 2]);
- INT32 y = BURN_ENDIAN_SWAP_INT16(spritebase[offs + 0]);
-
- if ((y & 0x1000) && (nCurrentFrame & 1)) continue; // flash
-
- INT32 color = ((x >> 9) & 0x1f) | ((y >> 10) & 0x20);
-
- INT32 flipx = y & 0x2000;
- INT32 flipy = y & 0x4000;
- INT32 multi = (1 << ((y & 0x0600) >> 9)) - 1;
-
- if (bank == 0) {
- switch (BURN_ENDIAN_SWAP_INT16(spritebase[offs+2]) & 0xc000)
- {
- case 0xc000: pmask = 0x01; break;
- case 0x8000: pmask = 0x08; break;
- case 0x4000: pmask = 0x20; break;
- case 0x0000: pmask = 0x80; break;
- }
- } else {
- switch (deco16_priority & 0x03)
- {
- case 0x0001: pmask = 0x10; break;
- case 0x0002:
- case 0x0003:
- case 0x0000: pmask = 0x40; break;
- }
-
- if (x & 0xc000) alpha = 0x80;
- }
-
- x &= 0x01ff;
- y &= 0x01ff;
- if (x >= 320) x -= 512;
- if (y >= 256) y -= 512;
- x = 304 - x;
- y = 240 - y;
- if (x > 320) continue;
-
- INT32 inc, mult;
- sprite &= ~multi;
- if (flipy)
- inc = -1;
- else
- {
- sprite += multi;
- inc = 1;
- }
-
- if (*flipscreen)
- {
- y = 240 - y;
- x = 304 - x;
- flipx = !flipx;
- flipy = !flipy;
- mult = 16;
- }
- else mult = -16;
-
- while (multi >= 0)
- {
- if (!bpp)
- {
- // hack around lack of alpha blending support for < 32bit color depths
- // let's make these flicker rather than disabling them or drawing them solid
- if (alpha != 0xff && (nCurrentFrame % 3) == 2) { // only draw every third frame
- multi--;
- continue;
- }
-
- deco16_draw_prio_sprite(pTransDraw, gfx, sprite - multi * inc, (color << 4) + coloff, x, y + mult * multi, flipx, flipy, pmask, 1 << bank);
- } else {
- deco16_draw_alphaprio_sprite(DrvPalette, gfx, sprite - multi * inc, (color << 4) + coloff, x, y + mult * multi, flipx, flipy, pmask, 1 << bank, alpha);
- }
-
- multi--;
- }
- }
- }
-}
-
-static INT32 DrvDraw()
-{
-// if (DrvRecalc) {
- deco16_palette_recalculate(DrvPalette, DrvPalRAM);
- DrvRecalc = 0;
-// }
-
- deco16_pf12_update();
- deco16_pf34_update();
-
- for (INT32 i = 0; i < nScreenWidth * nScreenHeight; i++) {
- pTransDraw[i] = 0xc00;
- }
-
- deco16_clear_prio_map();
-
- if (nBurnLayer & 1) deco16_draw_layer(3, pTransDraw, DECO16_LAYER_OPAQUE | DECO16_LAYER_PRIORITY(0));
-
- switch (deco16_priority & 3)
- {
- case 0:
- if (nBurnLayer & 4) deco16_draw_layer(1, pTransDraw, DECO16_LAYER_PRIORITY(0x02));
- if (nBurnLayer & 2) deco16_draw_layer(2, pTransDraw, DECO16_LAYER_PRIORITY(0x10));
- break;
-
- case 1:
- if (nBurnLayer & 2) deco16_draw_layer(2, pTransDraw, DECO16_LAYER_PRIORITY(0x02));
- if (nBurnLayer & 4) deco16_draw_layer(1, pTransDraw, DECO16_LAYER_PRIORITY(0x40));
- break;
-
- case 2: break;
-
- case 3:
- if (nBurnLayer & 2) deco16_draw_layer(2, pTransDraw, DECO16_LAYER_PRIORITY(0x02));
- if (nBurnLayer & 4) deco16_draw_layer(1, pTransDraw, DECO16_LAYER_PRIORITY(0x10));
- break;
- }
-
- if (nBurnLayer & 8) deco16_draw_layer(0, pTransDraw, DECO16_LAYER_PRIORITY(0xff));
-
- if (nSpriteEnable & 1) draw_sprites(0);
-
- BurnTransferCopy(DrvPalette);
-
- if (nSpriteEnable & 2) draw_sprites(4);
-
- return 0;
-}
-
-static INT32 DrvFrame()
-{
- if (DrvReset) {
- DrvDoReset();
- }
-
- {
- memset (DrvInputs, 0xff, 3 * sizeof(INT16));
- for (INT32 i = 0; i < 16; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- DrvInputs[2] ^= (DrvJoy3[i] & 1) << i;
- }
- }
-
- INT32 nInterleave = 256;
- INT32 nSoundBufferPos = 0;
- INT32 nCyclesTotal[3] = { 14000000 / 60, 14000000 / 60, 4027500 / 60 };
- INT32 nCyclesDone[3] = { 0, 0, 0 };
-
- h6280NewFrame();
- h6280Open(0);
-
- deco16_vblank = 0;
-
- for (INT32 i = 0; i < nInterleave; i++)
- {
- SekOpen(0);
- nCyclesDone[0] += SekRun(nCyclesTotal[0] / nInterleave);
- if (i == (nInterleave - 1)) SekSetIRQLine(4, CPU_IRQSTATUS_AUTO);
- SekClose();
-
- SekOpen(1);
- nCyclesDone[1] += SekRun(nCyclesDone[0] - nCyclesDone[1]);
- if (i == (nInterleave - 1)) SekSetIRQLine(5, CPU_IRQSTATUS_AUTO);
- SekClose();
-
- BurnTimerUpdate((i + 1) * nCyclesTotal[2] / nInterleave);
-
- if (i == 248) deco16_vblank = 0x08;
-
- if (pBurnSoundOut && i%7 == 6) {
- INT32 nSegmentLength = nBurnSoundLen / (nInterleave / 7);
- INT16* pSoundBuf = SoundBuffer + (nSoundBufferPos << 1);
- deco16SoundUpdate(pSoundBuf, nSegmentLength);
- nSoundBufferPos += nSegmentLength;
- }
- }
-
- BurnTimerEndFrame(nCyclesTotal[2]);
-
- if (pBurnSoundOut) {
- BurnYM2203Update(pBurnSoundOut, nBurnSoundLen);
-
- INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
- INT16* pSoundBuf = SoundBuffer + (nSoundBufferPos << 1);
-
- if (nSegmentLength) {
- deco16SoundUpdate(pSoundBuf, nSegmentLength);
- }
-
- for (INT32 i = 0; i < nBurnSoundLen; i++) {
- pBurnSoundOut[(i << 1) + 0] += SoundBuffer[(i << 1) + 0];
- pBurnSoundOut[(i << 1) + 1] += SoundBuffer[(i << 1) + 1];
- }
- }
-
- h6280Close();
-
- if (pBurnDraw) {
- DrvDraw();
- }
-
- return 0;
-}
-
-static INT32 DrvScan(INT32 nAction, INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin != NULL) {
- *pnMin = 0x029722;
- }
-
- if (nAction & ACB_MEMORY_RAM) {
- memset(&ba, 0, sizeof(ba));
- ba.Data = AllRam;
- ba.nLen = RamEnd-AllRam;
- ba.szName = "All Ram";
- BurnAcb(&ba);
- }
-
- if (nAction & ACB_DRIVER_DATA) {
- SekScan(nAction);
-
- deco16SoundScan(nAction, pnMin);
-
- deco16Scan();
-
- SCAN_VAR(DrvOkiBank);
- DrvYM2151WritePort(0, DrvOkiBank);
- }
-
- return 0;
-}
-
-
-// Thunder Zone (World, Rev1)
-
-static struct BurnRomInfo thndzoneRomDesc[] = {
- { "gz01-1.a15", 0x020000, 0x20250da6, 1 | BRF_PRG | BRF_ESS }, // 0 68k 'A' Code
- { "gz03-1.a17", 0x020000, 0x3595fad0, 1 | BRF_PRG | BRF_ESS }, // 1
- { "gt00.a14", 0x020000, 0xb7277175, 1 | BRF_PRG | BRF_ESS }, // 2
- { "gt02.a16", 0x020000, 0xcde31e35, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "gz10-1.a12", 0x020000, 0x811d86d7, 2 | BRF_PRG | BRF_ESS }, // 4 68k 'B' Code
- { "gz08-1.a9", 0x020000, 0x8f61ab1e, 2 | BRF_PRG | BRF_ESS }, // 5
- { "gt11-1.a14", 0x020000, 0x80cb23de, 2 | BRF_PRG | BRF_ESS }, // 6
- { "gt09-1.a11", 0x020000, 0x0a8fa7e1, 2 | BRF_PRG | BRF_ESS }, // 7
-
- { "gt04.f18", 0x010000, 0x81c29ebf, 3 | BRF_PRG | BRF_ESS }, // 8 Huc6280 Code
-
- { "gt05.h11", 0x010000, 0x0aae996a, 4 | BRF_GRA }, // 9 Characters
- { "gt06.h12", 0x010000, 0x4efdf03d, 4 | BRF_GRA }, // 10
-
- { "maj-02.h14", 0x100000, 0x383bbc37, 5 | BRF_GRA }, // 11 Foreground Tiles
-
- { "maj-01.c18", 0x100000, 0x9840a204, 6 | BRF_GRA }, // 12 Background Tiles
- { "maj-00.c17", 0x100000, 0x87ea8d16, 6 | BRF_GRA }, // 13
-
- { "maj-04.r1", 0x080000, 0x36e49b19, 7 | BRF_GRA }, // 14 Sprite Bank A
- { "maj-05.r2", 0x080000, 0x80fc71cc, 7 | BRF_GRA }, // 15
- { "maj-06.r3", 0x080000, 0x2e7a684b, 7 | BRF_GRA }, // 16
- { "maj-07.r5", 0x080000, 0x3acc1f78, 7 | BRF_GRA }, // 17
- { "maj-08.s6", 0x080000, 0x1958a36d, 7 | BRF_GRA }, // 18
- { "maj-09.s8", 0x080000, 0xc21087a1, 7 | BRF_GRA }, // 19
- { "maj-10.s9", 0x080000, 0xa02fa641, 7 | BRF_GRA }, // 20
- { "maj-11.s11", 0x080000, 0xdabe9305, 7 | BRF_GRA }, // 21
-
- { "gt12.n1", 0x020000, 0x9a86a015, 8 | BRF_GRA }, // 22 Sprite Bank B
- { "gt13.n2", 0x020000, 0xf4709905, 8 | BRF_GRA }, // 23
- { "gt14.n3", 0x020000, 0x750fc523, 8 | BRF_GRA }, // 24
- { "gt15.n5", 0x020000, 0xf14edd3d, 8 | BRF_GRA }, // 25
-
- { "gt07.h15", 0x020000, 0x750b7e5d, 9 | BRF_SND }, // 26 MSM6295 Samples 0
-
- { "maj-03.h16", 0x080000, 0x31dcfac3, 10 | BRF_SND }, // 27 MSM6295 Samples 1
-
- { "mb7128y.10m", 0x000800, 0xbde780a2, 11 | BRF_OPT }, // 28 Unknown Proms
- { "mb7128y.16p", 0x000800, 0xc44d2751, 11 | BRF_OPT }, // 29
-
- { "pal16r8a 1h", 0x000104, 0x00000000, 12 | BRF_NODUMP }, // 32 PLDs
- { "pal16l8b.7c", 0x000104, 0x00000000, 12 | BRF_NODUMP }, // 33
- { "pal16l8b.7d", 0x000104, 0x199e83fd, 12 | BRF_OPT }, // 34
- { "pal16l8b.7e", 0x000104, 0x00000000, 12 | BRF_NODUMP }, // 35
- { "pal16l8b.7l", 0x000104, 0x00000000, 12 | BRF_NODUMP }, // 36
- { "pal16l8b.8e", 0x000104, 0x00000000, 12 | BRF_NODUMP }, // 37
- { "pal16l8b.9d", 0x000104, 0x00000000, 12 | BRF_NODUMP }, // 38
- { "pal16l8b.10c", 0x000104, 0x00000000, 12 | BRF_NODUMP }, // 39
-};
-
-STD_ROM_PICK(thndzone)
-STD_ROM_FN(thndzone)
-
-struct BurnDriver BurnDrvThndzone = {
- "thndzone", NULL, NULL, NULL, "1991",
- "Thunder Zone (World, Rev 1)\0", NULL, "Data East Corporation", "DECO IC16",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 4, HARDWARE_PREFIX_DATAEAST, GBF_SCRFIGHT, 0,
- NULL, thndzoneRomInfo, thndzoneRomName, NULL, NULL, ThndzoneInputInfo, ThndzoneDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x1000,
- 320, 240, 4, 3
-};
-
-
-// Thunder Zone (World)
-
-static struct BurnRomInfo thndzoneaRomDesc[] = {
- { "gz01.a15", 0x020000, 0x15e8c328, 1 | BRF_PRG | BRF_ESS }, // 0 68k 'A' Code
- { "gz03.a17", 0x020000, 0xaab5c86e, 1 | BRF_PRG | BRF_ESS }, // 1
- { "gt00.a14", 0x020000, 0xb7277175, 1 | BRF_PRG | BRF_ESS }, // 2
- { "gt02.a16", 0x020000, 0xcde31e35, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "gz10.a12", 0x020000, 0x79f919e9, 2 | BRF_PRG | BRF_ESS }, // 4 68k 'B' Code
- { "gz08.a9", 0x020000, 0xd47d7836, 2 | BRF_PRG | BRF_ESS }, // 5
- { "gt11-1.a14", 0x020000, 0x80cb23de, 2 | BRF_PRG | BRF_ESS }, // 6
- { "gt09-1.a11", 0x020000, 0x0a8fa7e1, 2 | BRF_PRG | BRF_ESS }, // 7
-
- { "gt04.f18", 0x010000, 0x81c29ebf, 3 | BRF_PRG | BRF_ESS }, // 8 Huc6280 Code
-
- { "gt05.h11", 0x010000, 0x0aae996a, 4 | BRF_GRA }, // 9 Characters
- { "gt06.h12", 0x010000, 0x4efdf03d, 4 | BRF_GRA }, // 10
-
- { "maj-02.h14", 0x100000, 0x383bbc37, 5 | BRF_GRA }, // 11 Foreground Tiles
-
- { "maj-01.c18", 0x100000, 0x9840a204, 6 | BRF_GRA }, // 12 Background Tiles
- { "maj-00.c17", 0x100000, 0x87ea8d16, 6 | BRF_GRA }, // 13
-
- { "maj-04.r1", 0x080000, 0x36e49b19, 7 | BRF_GRA }, // 14 Sprite Bank A
- { "maj-05.r2", 0x080000, 0x80fc71cc, 7 | BRF_GRA }, // 15
- { "maj-06.r3", 0x080000, 0x2e7a684b, 7 | BRF_GRA }, // 16
- { "maj-07.r5", 0x080000, 0x3acc1f78, 7 | BRF_GRA }, // 17
- { "maj-08.s6", 0x080000, 0x1958a36d, 7 | BRF_GRA }, // 18
- { "maj-09.s8", 0x080000, 0xc21087a1, 7 | BRF_GRA }, // 19
- { "maj-10.s9", 0x080000, 0xa02fa641, 7 | BRF_GRA }, // 20
- { "maj-11.s11", 0x080000, 0xdabe9305, 7 | BRF_GRA }, // 21
-
- { "gt12.n1", 0x020000, 0x9a86a015, 8 | BRF_GRA }, // 22 Sprite Bank B
- { "gt13.n2", 0x020000, 0xf4709905, 8 | BRF_GRA }, // 23
- { "gt14.n3", 0x020000, 0x750fc523, 8 | BRF_GRA }, // 24
- { "gt15.n5", 0x020000, 0xf14edd3d, 8 | BRF_GRA }, // 25
-
- { "gt07.h15", 0x020000, 0x750b7e5d, 9 | BRF_SND }, // 26 MSM6295 Samples 0
-
- { "maj-03.h16", 0x080000, 0x31dcfac3, 10 | BRF_SND }, // 27 MSM6295 Samples 1
-
- { "mb7128y.10m", 0x000800, 0xbde780a2, 11 | BRF_OPT }, // 28 Unknown Proms
- { "mb7128y.16p", 0x000800, 0xc44d2751, 11 | BRF_OPT }, // 29
- { "mb7128y.16s", 0x000800, 0xc44d2751, 11 | BRF_OPT }, // 30
- { "mb7128y.17s", 0x000800, 0xc44d2751, 11 | BRF_OPT }, // 31
-
- { "pal16r8a 1h", 0x000104, 0x00000000, 12 | BRF_NODUMP }, // 32 PLDs
- { "pal16l8b.7c", 0x000104, 0x00000000, 12 | BRF_NODUMP }, // 33
- { "pal16l8b.7d", 0x000104, 0x199e83fd, 12 | BRF_OPT }, // 34
- { "pal16l8b.7e", 0x000104, 0x00000000, 12 | BRF_NODUMP }, // 35
- { "pal16l8b.7l", 0x000104, 0x00000000, 12 | BRF_NODUMP }, // 36
- { "pal16l8b.8e", 0x000104, 0x00000000, 12 | BRF_NODUMP }, // 37
- { "pal16l8b.9d", 0x000104, 0x00000000, 12 | BRF_NODUMP }, // 38
- { "pal16l8b.10c", 0x000104, 0x00000000, 12 | BRF_NODUMP }, // 39
-};
-
-STD_ROM_PICK(thndzonea)
-STD_ROM_FN(thndzonea)
-
-struct BurnDriver BurnDrvThndzonea = {
- "thndzonea", "thndzone", NULL, NULL, "1991",
- "Thunder Zone (World)\0", NULL, "Data East Corporation", "DECO IC16",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 4, HARDWARE_PREFIX_DATAEAST, GBF_SCRFIGHT, 0,
- NULL, thndzoneaRomInfo, thndzoneaRomName, NULL, NULL, ThndzoneInputInfo, ThndzoneDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x1000,
- 320, 240, 4, 3
-};
-
-
-// Thunder Zone (World 4 Players)
-
-static struct BurnRomInfo thndzone4RomDesc[] = {
- { "27c010.a15", 0x020000, 0x30f21608, 1 | BRF_PRG | BRF_ESS }, // 0 68k 'A' Code
- { "27c010.a17", 0x020000, 0x60886a33, 1 | BRF_PRG | BRF_ESS }, // 1
- { "gt00.a14", 0x020000, 0xb7277175, 1 | BRF_PRG | BRF_ESS }, // 2
- { "gt02.a16", 0x020000, 0xcde31e35, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "d27c010.a12", 0x020000, 0x99356cba, 2 | BRF_PRG | BRF_ESS }, // 4 68k 'B' Code
- { "d27c010.a9", 0x020000, 0x8bf114e7, 2 | BRF_PRG | BRF_ESS }, // 5
- { "d27c010.a14", 0x020000, 0x3d96d47e, 2 | BRF_PRG | BRF_ESS }, // 6
- { "d27c010.a11", 0x020000, 0x2ab9b63f, 2 | BRF_PRG | BRF_ESS }, // 7
-
- { "gu04.f18", 0x010000, 0x81c29ebf, 3 | BRF_PRG | BRF_ESS }, // 8 Huc6280 Code
-
- { "27512.j10", 0x010000, 0xab22a078, 4 | BRF_GRA }, // 9 Characters
- { "27512.j12", 0x010000, 0x34fc4428, 4 | BRF_GRA }, // 10
-
- { "maj-02.h14", 0x100000, 0x383bbc37, 5 | BRF_GRA }, // 11 Foreground Tiles
-
- { "maj-01.c18", 0x100000, 0x9840a204, 6 | BRF_GRA }, // 12 Background Tiles
- { "maj-00.c17", 0x100000, 0x87ea8d16, 6 | BRF_GRA }, // 13
-
- { "maj-04.r1", 0x080000, 0x36e49b19, 7 | BRF_GRA }, // 14 Sprite Bank A
- { "maj-05.r2", 0x080000, 0x80fc71cc, 7 | BRF_GRA }, // 15
- { "maj-06.r3", 0x080000, 0x2e7a684b, 7 | BRF_GRA }, // 16
- { "maj-07.r5", 0x080000, 0x3acc1f78, 7 | BRF_GRA }, // 17
- { "maj-08.s6", 0x080000, 0x1958a36d, 7 | BRF_GRA }, // 18
- { "maj-09.s8", 0x080000, 0xc21087a1, 7 | BRF_GRA }, // 19
- { "maj-10.s9", 0x080000, 0xa02fa641, 7 | BRF_GRA }, // 20
- { "maj-11.s11", 0x080000, 0xdabe9305, 7 | BRF_GRA }, // 21
-
- { "gt12.n1", 0x020000, 0x9a86a015, 8 | BRF_GRA }, // 22 Sprite Bank B
- { "gt13.n2", 0x020000, 0xf4709905, 8 | BRF_GRA }, // 23
- { "gt14.n3", 0x020000, 0x750fc523, 8 | BRF_GRA }, // 24
- { "gt15.n5", 0x020000, 0xf14edd3d, 8 | BRF_GRA }, // 25
-
- { "gs07.h15", 0x020000, 0x750b7e5d, 9 | BRF_SND }, // 26 MSM6295 Samples 0
-
- { "maj-03.h16", 0x080000, 0x31dcfac3, 10 | BRF_SND }, // 27 MSM6295 Samples 1
-
- { "mb7128y.10m", 0x000800, 0xbde780a2, 11 | BRF_OPT }, // 28 Unknown Proms
- { "mb7128y.16p", 0x000800, 0xc44d2751, 11 | BRF_OPT }, // 29
- { "mb7128y.16s", 0x000800, 0xc44d2751, 11 | BRF_OPT }, // 30
- { "mb7128y.17s", 0x000800, 0xc44d2751, 11 | BRF_OPT }, // 31
-
- { "pal16r8a 1h", 0x000104, 0x00000000, 12 | BRF_NODUMP }, // 32 PLDs
- { "pal16l8b.7c", 0x000104, 0x00000000, 12 | BRF_NODUMP }, // 33
- { "pal16l8b.7d", 0x000104, 0x199e83fd, 12 | BRF_OPT }, // 34
- { "pal16l8b.7e", 0x000104, 0x00000000, 12 | BRF_NODUMP }, // 35
- { "pal16l8b.7l", 0x000104, 0x00000000, 12 | BRF_NODUMP }, // 36
- { "pal16l8b.8e", 0x000104, 0x00000000, 12 | BRF_NODUMP }, // 37
- { "pal16l8b.9d", 0x000104, 0x00000000, 12 | BRF_NODUMP }, // 38
- { "pal16l8b.10c", 0x000104, 0x00000000, 12 | BRF_NODUMP }, // 39
-};
-
-STD_ROM_PICK(thndzone4)
-STD_ROM_FN(thndzone4)
-
-struct BurnDriver BurnDrvThndzone4 = {
- "thndzone4", "thndzone", NULL, NULL, "1991",
- "Thunder Zone (World 4 Players)\0", NULL, "Data East Corporation", "DECO IC16",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 4, HARDWARE_PREFIX_DATAEAST, GBF_SCRFIGHT, 0,
- NULL, thndzone4RomInfo, thndzone4RomName, NULL, NULL, ThndzoneInputInfo, ThndzoneDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x1000,
- 320, 240, 4, 3
-};
-
-
-// Thunder Zone (Japan)
-
-static struct BurnRomInfo thndzonejRomDesc[] = {
- { "gu01.a15", 0x020000, 0xeb28f8e8, 1 | BRF_PRG | BRF_ESS }, // 0 68k 'A' Code
- { "gu03.a17", 0x020000, 0x9ad2b431, 1 | BRF_PRG | BRF_ESS }, // 1
- { "gu00.a14", 0x020000, 0xfca9e84f, 1 | BRF_PRG | BRF_ESS }, // 2
- { "gu02.a16", 0x020000, 0xb6026bae, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "gu10.a12", 0x020000, 0x8042e87d, 2 | BRF_PRG | BRF_ESS }, // 4 68k 'B' Code
- { "gu08.a9", 0x020000, 0xc8895bfa, 2 | BRF_PRG | BRF_ESS }, // 5
- { "gu11.a14", 0x020000, 0xc0d6eb82, 2 | BRF_PRG | BRF_ESS }, // 6
- { "gu09.a11", 0x020000, 0x42de13a7, 2 | BRF_PRG | BRF_ESS }, // 7
-
- { "gu04.f18", 0x010000, 0x81c29ebf, 3 | BRF_PRG | BRF_ESS }, // 8 Huc6280 Code
-
- { "gu05.h11", 0x010000, 0x0aae996a, 4 | BRF_GRA }, // 9 Characters
- { "gu06.h12", 0x010000, 0x4efdf03d, 4 | BRF_GRA }, // 10
-
- { "maj-02.h14", 0x100000, 0x383bbc37, 5 | BRF_GRA }, // 11 Foreground Tiles
-
- { "maj-01.c18", 0x100000, 0x9840a204, 6 | BRF_GRA }, // 12 Background Tiles
- { "maj-00.c17", 0x100000, 0x87ea8d16, 6 | BRF_GRA }, // 13
-
- { "maj-04.r1", 0x080000, 0x36e49b19, 7 | BRF_GRA }, // 14 Sprite Bank A
- { "maj-05.r2", 0x080000, 0x80fc71cc, 7 | BRF_GRA }, // 15
- { "maj-06.r3", 0x080000, 0x2e7a684b, 7 | BRF_GRA }, // 16
- { "maj-07.r5", 0x080000, 0x3acc1f78, 7 | BRF_GRA }, // 17
- { "maj-08.s6", 0x080000, 0x1958a36d, 7 | BRF_GRA }, // 18
- { "maj-09.s8", 0x080000, 0xc21087a1, 7 | BRF_GRA }, // 19
- { "maj-10.s9", 0x080000, 0xa02fa641, 7 | BRF_GRA }, // 20
- { "maj-11.s11", 0x080000, 0xdabe9305, 7 | BRF_GRA }, // 21
-
- { "gt12.n1", 0x020000, 0x9a86a015, 8 | BRF_GRA }, // 22 Sprite Bank B
- { "gt13.n2", 0x020000, 0xf4709905, 8 | BRF_GRA }, // 23
- { "gt14.n3", 0x020000, 0x750fc523, 8 | BRF_GRA }, // 24
- { "gt15.n5", 0x020000, 0xf14edd3d, 8 | BRF_GRA }, // 25
-
- { "gs07.h15", 0x020000, 0x750b7e5d, 9 | BRF_SND }, // 26 MSM6295 Samples 0
-
- { "maj-03.h16", 0x080000, 0x31dcfac3, 10 | BRF_SND }, // 27 MSM6295 Samples 1
-
- { "mb7128y.10m", 0x000800, 0xbde780a2, 11 | BRF_OPT }, // 28 Unknown Proms
- { "mb7128y.16p", 0x000800, 0xc44d2751, 11 | BRF_OPT }, // 29
- { "mb7128y.16s", 0x000800, 0xc44d2751, 11 | BRF_OPT }, // 30
- { "mb7128y.17s", 0x000800, 0xc44d2751, 11 | BRF_OPT }, // 31
-
- { "pal16r8a 1h", 0x000104, 0x00000000, 12 | BRF_NODUMP }, // 32 PLDs
- { "pal16l8b.7c", 0x000104, 0x00000000, 12 | BRF_NODUMP }, // 33
- { "pal16l8b.7d", 0x000104, 0x199e83fd, 12 | BRF_OPT }, // 34
- { "pal16l8b.7e", 0x000104, 0x00000000, 12 | BRF_NODUMP }, // 35
- { "pal16l8b.7l", 0x000104, 0x00000000, 12 | BRF_NODUMP }, // 36
- { "pal16l8b.8e", 0x000104, 0x00000000, 12 | BRF_NODUMP }, // 37
- { "pal16l8b.9d", 0x000104, 0x00000000, 12 | BRF_NODUMP }, // 38
- { "pal16l8b.10c", 0x000104, 0x00000000, 12 | BRF_NODUMP }, // 39
-
- { "mal-12.n1", 0x020000, 0x00000000, 0 | BRF_NODUMP }, // 40
- { "mal-13.n2", 0x020000, 0x00000000, 0 | BRF_NODUMP }, // 41
- { "mal-14.n3", 0x020000, 0x00000000, 0 | BRF_NODUMP }, // 42
- { "mal-15.n5", 0x020000, 0x00000000, 0 | BRF_NODUMP }, // 43
- { "mal-07.h15", 0x020000, 0x00000000, 0 | BRF_NODUMP }, // 44
-};
-
-STD_ROM_PICK(thndzonej)
-STD_ROM_FN(thndzonej)
-
-struct BurnDriver BurnDrvThndzonej = {
- "thndzonej", "thndzone", NULL, NULL, "1991",
- "Thunder Zone (Japan)\0", NULL, "Data East Corporation", "DECO IC16",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 4, HARDWARE_PREFIX_DATAEAST, GBF_SCRFIGHT, 0,
- NULL, thndzonejRomInfo, thndzonejRomName, NULL, NULL, ThndzoneInputInfo, ThndzoneDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x1000,
- 320, 240, 4, 3
-};
-
-
-// Desert Assault (US)
-
-static struct BurnRomInfo dassaultRomDesc[] = {
- { "01.a15", 0x020000, 0x14f17ea7, 1 | BRF_PRG | BRF_ESS }, // 0 68k 'A' Code
- { "03.a17", 0x020000, 0xbed1b90c, 1 | BRF_PRG | BRF_ESS }, // 1
- { "gs00.a14", 0x020000, 0xb7277175, 1 | BRF_PRG | BRF_ESS }, // 2
- { "gs02.a16", 0x020000, 0xcde31e35, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "hc10-1.a12", 0x020000, 0xac5ac770, 2 | BRF_PRG | BRF_ESS }, // 4 68k 'B' Code
- { "hc08-1.a9", 0x020000, 0x864dca56, 2 | BRF_PRG | BRF_ESS }, // 5
- { "gs11.a14", 0x020000, 0x80cb23de, 2 | BRF_PRG | BRF_ESS }, // 6
- { "gs09.a11", 0x020000, 0x0a8fa7e1, 2 | BRF_PRG | BRF_ESS }, // 7
-
- { "gs04.f18", 0x010000, 0x81c29ebf, 3 | BRF_PRG | BRF_ESS }, // 8 Huc6280 Code
-
- { "gs05.h11", 0x010000, 0x0aae996a, 4 | BRF_GRA }, // 9 Characters
- { "gs06.h12", 0x010000, 0x4efdf03d, 4 | BRF_GRA }, // 10
-
- { "maj-02.h14", 0x100000, 0x383bbc37, 5 | BRF_GRA }, // 11 Foreground Tiles
-
- { "maj-01.c18", 0x100000, 0x9840a204, 6 | BRF_GRA }, // 12 Background Tiles
- { "maj-00.c17", 0x100000, 0x87ea8d16, 6 | BRF_GRA }, // 13
-
- { "maj-04.r1", 0x080000, 0x36e49b19, 7 | BRF_GRA }, // 14 Sprite Bank A
- { "maj-05.r2", 0x080000, 0x80fc71cc, 7 | BRF_GRA }, // 15
- { "maj-06.r3", 0x080000, 0x2e7a684b, 7 | BRF_GRA }, // 16
- { "maj-07.r5", 0x080000, 0x3acc1f78, 7 | BRF_GRA }, // 17
- { "maj-08.s6", 0x080000, 0x1958a36d, 7 | BRF_GRA }, // 18
- { "maj-09.s8", 0x080000, 0xc21087a1, 7 | BRF_GRA }, // 19
- { "maj-10.s9", 0x080000, 0xa02fa641, 7 | BRF_GRA }, // 20
- { "maj-11.s11", 0x080000, 0xdabe9305, 7 | BRF_GRA }, // 21
-
- { "gs12.n1", 0x020000, 0x9a86a015, 8 | BRF_GRA }, // 22 Sprite Bank B
- { "gs13.n2", 0x020000, 0xf4709905, 8 | BRF_GRA }, // 23
- { "gs14.n3", 0x020000, 0x750fc523, 8 | BRF_GRA }, // 24
- { "gs15.n5", 0x020000, 0xf14edd3d, 8 | BRF_GRA }, // 25
-
- { "gs07.h15", 0x020000, 0x750b7e5d, 9 | BRF_SND }, // 26 MSM6295 Samples 0
-
- { "maj-03.h16", 0x080000, 0x31dcfac3, 10 | BRF_SND }, // 27 MSM6295 Samples 1
-
- { "mb7128y.10m", 0x000800, 0xbde780a2, 11 | BRF_OPT }, // 28 Unknown Proms
- { "mb7128y.16p", 0x000800, 0xc44d2751, 11 | BRF_OPT }, // 29
- { "mb7128y.16s", 0x000800, 0xc44d2751, 11 | BRF_OPT }, // 30
- { "mb7128y.17s", 0x000800, 0xc44d2751, 11 | BRF_OPT }, // 31
-
- { "pal16r8a 1h", 0x000104, 0x00000000, 12 | BRF_NODUMP }, // 32 PLDs
- { "pal16l8b.7c", 0x000104, 0x00000000, 12 | BRF_NODUMP }, // 33
- { "pal16l8b.7d", 0x000104, 0x199e83fd, 12 | BRF_OPT }, // 34
- { "pal16l8b.7e", 0x000104, 0x00000000, 12 | BRF_NODUMP }, // 35
- { "pal16l8b.7l", 0x000104, 0x00000000, 12 | BRF_NODUMP }, // 36
- { "pal16l8b.8e", 0x000104, 0x00000000, 12 | BRF_NODUMP }, // 37
- { "pal16l8b.9d", 0x000104, 0x00000000, 12 | BRF_NODUMP }, // 38
- { "pal16l8b.10c", 0x000104, 0x00000000, 12 | BRF_NODUMP }, // 39
-};
-
-STD_ROM_PICK(dassault)
-STD_ROM_FN(dassault)
-
-struct BurnDriver BurnDrvDassault = {
- "dassault", "thndzone", NULL, NULL, "1991",
- "Desert Assault (US)\0", NULL, "Data East Corporation", "DECO IC16",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_DATAEAST, GBF_SCRFIGHT, 0,
- NULL, dassaultRomInfo, dassaultRomName, NULL, NULL, ThndzoneInputInfo, DassaultDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x1000,
- 320, 240, 4, 3
-};
-
-
-// Desert Assault (US 4 Players)
-
-static struct BurnRomInfo dassault4RomDesc[] = {
- { "gs01.a15", 0x020000, 0x8613634d, 1 | BRF_PRG | BRF_ESS }, // 0 68k 'A' Code
- { "gs03.a17", 0x020000, 0xea860bd4, 1 | BRF_PRG | BRF_ESS }, // 1
- { "gs00.a14", 0x020000, 0xb7277175, 1 | BRF_PRG | BRF_ESS }, // 2
- { "gs02.a16", 0x020000, 0xcde31e35, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "gs10.a12", 0x020000, 0x285f72a3, 2 | BRF_PRG | BRF_ESS }, // 4 68k 'B' Code
- { "gs08.a9", 0x020000, 0x16691ede, 2 | BRF_PRG | BRF_ESS }, // 5
- { "gs11.a14", 0x020000, 0x80cb23de, 2 | BRF_PRG | BRF_ESS }, // 6
- { "gs09.a11", 0x020000, 0x0a8fa7e1, 2 | BRF_PRG | BRF_ESS }, // 7
-
- { "gs04.f18", 0x010000, 0x81c29ebf, 3 | BRF_PRG | BRF_ESS }, // 8 Huc6280 Code
-
- { "gs05.h11", 0x010000, 0x0aae996a, 4 | BRF_GRA }, // 9 Characters
- { "gs06.h12", 0x010000, 0x4efdf03d, 4 | BRF_GRA }, // 10
-
- { "maj-02.h14", 0x100000, 0x383bbc37, 5 | BRF_GRA }, // 11 Foreground Tiles
-
- { "maj-01.c18", 0x100000, 0x9840a204, 6 | BRF_GRA }, // 12 Background Tiles
- { "maj-00.c17", 0x100000, 0x87ea8d16, 6 | BRF_GRA }, // 13
-
- { "maj-04.r1", 0x080000, 0x36e49b19, 7 | BRF_GRA }, // 14 Sprite Bank A
- { "maj-05.r2", 0x080000, 0x80fc71cc, 7 | BRF_GRA }, // 15
- { "maj-06.r3", 0x080000, 0x2e7a684b, 7 | BRF_GRA }, // 16
- { "maj-07.r5", 0x080000, 0x3acc1f78, 7 | BRF_GRA }, // 17
- { "maj-08.s6", 0x080000, 0x1958a36d, 7 | BRF_GRA }, // 18
- { "maj-09.s8", 0x080000, 0xc21087a1, 7 | BRF_GRA }, // 19
- { "maj-10.s9", 0x080000, 0xa02fa641, 7 | BRF_GRA }, // 20
- { "maj-11.s11", 0x080000, 0xdabe9305, 7 | BRF_GRA }, // 21
-
- { "gs12.n1", 0x020000, 0x9a86a015, 8 | BRF_GRA }, // 22 Sprite Bank B
- { "gs13.n2", 0x020000, 0xf4709905, 8 | BRF_GRA }, // 23
- { "gs14.n3", 0x020000, 0x750fc523, 8 | BRF_GRA }, // 24
- { "gs15.n5", 0x020000, 0xf14edd3d, 8 | BRF_GRA }, // 25
-
- { "gs07.h15", 0x020000, 0x750b7e5d, 9 | BRF_SND }, // 26 MSM6295 Samples 0
-
- { "maj-03.h16", 0x080000, 0x31dcfac3, 10 | BRF_SND }, // 27 MSM6295 Samples 1
-
- { "mb7128y.10m", 0x000800, 0xbde780a2, 11 | BRF_OPT }, // 28 Unknown Proms
- { "mb7128y.16p", 0x000800, 0xc44d2751, 11 | BRF_OPT }, // 29
- { "mb7128y.16s", 0x000800, 0xc44d2751, 11 | BRF_OPT }, // 30
- { "mb7128y.17s", 0x000800, 0xc44d2751, 11 | BRF_OPT }, // 31
-
- { "pal16r8a 1h", 0x000104, 0x00000000, 12 | BRF_NODUMP }, // 32 PLDs
- { "pal16l8b.7c", 0x000104, 0x00000000, 12 | BRF_NODUMP }, // 33
- { "pal16l8b.7d", 0x000104, 0x199e83fd, 12 | BRF_OPT }, // 34
- { "pal16l8b.7e", 0x000104, 0x00000000, 12 | BRF_NODUMP }, // 35
- { "pal16l8b.7l", 0x000104, 0x00000000, 12 | BRF_NODUMP }, // 36
- { "pal16l8b.8e", 0x000104, 0x00000000, 12 | BRF_NODUMP }, // 37
- { "pal16l8b.9d", 0x000104, 0x00000000, 12 | BRF_NODUMP }, // 38
- { "pal16l8b.10c", 0x000104, 0x00000000, 12 | BRF_NODUMP }, // 39
-};
-
-STD_ROM_PICK(dassault4)
-STD_ROM_FN(dassault4)
-
-struct BurnDriver BurnDrvDassault4 = {
- "dassault4", "thndzone", NULL, NULL, "1991",
- "Desert Assault (US 4 Players)\0", NULL, "Data East Corporation", "DECO IC16",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 4, HARDWARE_PREFIX_DATAEAST, GBF_SCRFIGHT, 0,
- NULL, dassault4RomInfo, dassault4RomName, NULL, NULL, ThndzoneInputInfo, Dassault4DIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x1000,
- 320, 240, 4, 3
-};
diff --git a/jan/src/burn/drv/dataeast/d_dblewing.cpp b/jan/src/burn/drv/dataeast/d_dblewing.cpp
deleted file mode 100644
index 03a049793..000000000
--- a/jan/src/burn/drv/dataeast/d_dblewing.cpp
+++ /dev/null
@@ -1,696 +0,0 @@
-// FB Alpha Double Wings driver module
-// Based on MAME driver by David Haywood
-
-#include "tiles_generic.h"
-#include "m68000_intf.h"
-#include "z80_intf.h"
-#include "deco16ic.h"
-#include "burn_ym2151.h"
-#include "msm6295.h"
-#include "deco146.h"
-
-static UINT8 *AllMem;
-static UINT8 *MemEnd;
-static UINT8 *AllRam;
-static UINT8 *RamEnd;
-static UINT8 *Drv68KROM;
-static UINT8 *Drv68KCode;
-static UINT8 *DrvZ80ROM;
-static UINT8 *DrvGfxROM0;
-static UINT8 *DrvGfxROM1;
-static UINT8 *DrvGfxROM2;
-static UINT8 *DrvSndROM0;
-static UINT8 *Drv68KRAM;
-static UINT8 *DrvUnkRAM0;
-static UINT8 *DrvUnkRAM1;
-static UINT8 *DrvSprRAM;
-static UINT8 *DrvZ80RAM;
-static UINT8 *DrvPalRAM;
-
-static UINT32 *DrvPalette;
-static UINT8 DrvRecalc;
-
-static UINT8 flipscreen;
-static UINT8 soundlatch;
-static UINT8 sound_irq;
-
-static UINT8 DrvJoy1[16];
-static UINT8 DrvJoy2[16];
-static UINT8 DrvDips[2];
-static UINT8 DrvReset;
-static UINT16 DrvInputs[2];
-
-static struct BurnInputInfo DblewingInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy2 + 0, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 7, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy1 + 0, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy1 + 1, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy1 + 2, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy1 + 3, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy1 + 4, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy1 + 5, "p1 fire 2" },
- {"P1 Button 3", BIT_DIGITAL, DrvJoy1 + 6, "p1 fire 3" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy2 + 1, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy1 + 15, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvJoy1 + 8, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy1 + 9, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy1 + 10, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy1 + 11, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy1 + 12, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy1 + 13, "p2 fire 2" },
- {"P2 Button 3", BIT_DIGITAL, DrvJoy1 + 14, "p2 fire 3" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service", BIT_DIGITAL, DrvJoy2 + 2, "service" },
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip" },
-};
-
-STDINPUTINFO(Dblewing)
-
-static struct BurnDIPInfo DblewingDIPList[]=
-{
- {0x14, 0xff, 0xff, 0xff, NULL },
- {0x15, 0xff, 0xff, 0x7f, NULL },
-
- {0 , 0xfe, 0 , 8, "Coin A" },
- {0x14, 0x01, 0x07, 0x00, "3 Coins 1 Credits" },
- {0x14, 0x01, 0x07, 0x01, "2 Coins 1 Credits" },
- {0x14, 0x01, 0x07, 0x07, "1 Coin 1 Credits" },
- {0x14, 0x01, 0x07, 0x06, "1 Coin 2 Credits" },
- {0x14, 0x01, 0x07, 0x05, "1 Coin 3 Credits" },
- {0x14, 0x01, 0x07, 0x04, "1 Coin 4 Credits" },
- {0x14, 0x01, 0x07, 0x03, "1 Coin 5 Credits" },
- {0x14, 0x01, 0x07, 0x02, "1 Coin 6 Credits" },
-
- {0 , 0xfe, 0 , 8, "Coin B" },
- {0x14, 0x01, 0x38, 0x00, "3 Coins 1 Credits" },
- {0x14, 0x01, 0x38, 0x08, "2 Coins 1 Credits" },
- {0x14, 0x01, 0x38, 0x38, "1 Coin 1 Credits" },
- {0x14, 0x01, 0x38, 0x30, "1 Coin 2 Credits" },
- {0x14, 0x01, 0x38, 0x28, "1 Coin 3 Credits" },
- {0x14, 0x01, 0x38, 0x20, "1 Coin 4 Credits" },
- {0x14, 0x01, 0x38, 0x18, "1 Coin 5 Credits" },
- {0x14, 0x01, 0x38, 0x10, "1 Coin 6 Credits" },
-
-// not supported
-// {0 , 0xfe, 0 , 2, "Flip Screen" },
-// {0x14, 0x01, 0x40, 0x40, "Off" },
-// {0x14, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Region" },
- {0x14, 0x01, 0x80, 0x80, "Japan" },
- {0x14, 0x01, 0x80, 0x00, "Korea" },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x15, 0x01, 0x03, 0x02, "1" },
- {0x15, 0x01, 0x03, 0x01, "2" },
- {0x15, 0x01, 0x03, 0x03, "3" },
- {0x15, 0x01, 0x03, 0x00, "5" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x15, 0x01, 0x0c, 0x08, "Easy" },
- {0x15, 0x01, 0x0c, 0x0c, "Normal" },
- {0x15, 0x01, 0x0c, 0x04, "Hard" },
- {0x15, 0x01, 0x0c, 0x00, "Hardest" },
-
- {0 , 0xfe, 0 , 4, "Bonus Life" },
- {0x15, 0x01, 0x30, 0x20, "Every 100,000" },
- {0x15, 0x01, 0x30, 0x30, "Every 150,000" },
- {0x15, 0x01, 0x30, 0x10, "Every 300,000" },
- {0x15, 0x01, 0x30, 0x00, "250,000 Only" },
-
- {0 , 0xfe, 0 , 2, "Allow Continue" },
- {0x15, 0x01, 0x40, 0x00, "Off" },
- {0x15, 0x01, 0x40, 0x40, "On" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x15, 0x01, 0x80, 0x80, "Off" },
- {0x15, 0x01, 0x80, 0x00, "On" },
-};
-
-STDDIPINFO(Dblewing)
-
-static void __fastcall dblewing_write_word(UINT32 address, UINT16 data)
-{
- if ((address & 0xffc000) == 0x280000) {
- deco146_104_prot_ww(0, address, data);
- return;
- }
-
- deco16_write_control_word(0, address, 0x28c000, data);
-}
-
-static void __fastcall dblewing_write_byte(UINT32 address, UINT8 data)
-{
- if ((address & 0xffc000) == 0x280000) {
- deco146_104_prot_wb(0, address, data);
- return;
- }
-}
-
-static UINT16 __fastcall dblewing_read_word(UINT32 address)
-{
- if ((address & 0xffc000) == 0x280000) {
- return deco146_104_prot_rw(0, address);
- }
-
- return 0;
-}
-
-static UINT8 __fastcall dblewing_read_byte(UINT32 address)
-{
- if ((address & 0xffc000) == 0x280000) {
- return deco146_104_prot_rb(0, address);
- }
-
- return 0;
-}
-
-static void __fastcall dblewing_sound_write(UINT16 address, UINT8 data)
-{
- switch (address)
- {
- case 0xa000:
- BurnYM2151SelectRegister(data);
- return;
-
- case 0xa001:
- BurnYM2151WriteRegister(data);
- return;
-
- case 0xb000:
- case 0xf000:
- MSM6295Command(0, data);
- return;
- }
-}
-
-static UINT8 __fastcall dblewing_sound_read(UINT16 address)
-{
- switch (address)
- {
- case 0xa000:
- case 0xa001:
- return BurnYM2151ReadStatus();
-
- case 0xb000:
- case 0xf000:
- return MSM6295ReadStatus(0);
-
- case 0xc000:
- return soundlatch;
-
- case 0xd000:
- sound_irq &= ~0x02;
- ZetSetIRQLine(0, (sound_irq) ? CPU_IRQSTATUS_ACK : CPU_IRQSTATUS_NONE);
- return sound_irq;
- }
-
- return 0;
-}
-
-static void sound_callback(UINT16 data)
-{
- soundlatch = data & 0xff;
- sound_irq |= 0x02;
-
- ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
-}
-
-static UINT16 input_read()
-{
- return DrvInputs[0];
-}
-
-static UINT16 system_read()
-{
- return (DrvInputs[1] & 0x7) | deco16_vblank;
-}
-
-static UINT16 dips_read()
-{
- return (DrvDips[1] * 256) + DrvDips[0];
-}
-
-static UINT8 __fastcall dblewing_sound_read_port(UINT16 port)
-{
- return DrvZ80ROM[port];
-}
-
-static void DrvYM2151IrqHandler(INT32 state)
-{
- if (state)
- sound_irq |= 0x01;
- else
- sound_irq &= ~0x01;
-
- ZetSetIRQLine(0, (sound_irq) ? CPU_IRQSTATUS_ACK : CPU_IRQSTATUS_NONE);
-}
-
-static INT32 dblewing_bank_callback( const INT32 bank )
-{
- return ((bank >> 4) & 0x7) * 0x1000;
-}
-
-static INT32 DrvDoReset()
-{
- memset (AllRam, 0, RamEnd - AllRam);
-
- SekOpen(0);
- SekReset();
- SekClose();
-
- ZetOpen(0);
- ZetReset();
- BurnYM2151Reset();
- ZetClose();
-
- MSM6295Reset(0);
-
- deco16Reset();
-
- flipscreen = 0;
- soundlatch = 0;
- sound_irq = 0;
-
- return 0;
-}
-
-static INT32 MemIndex()
-{
- UINT8 *Next; Next = AllMem;
-
- Drv68KROM = Next; Next += 0x080000;
- Drv68KCode = Next; Next += 0x080000;
-
- DrvZ80ROM = Next; Next += 0x010000;
-
- DrvGfxROM0 = Next; Next += 0x200000;
- DrvGfxROM1 = Next; Next += 0x200000;
- DrvGfxROM2 = Next; Next += 0x400000;
-
- MSM6295ROM = Next;
- DrvSndROM0 = Next; Next += 0x080000;
-
- DrvPalette = (UINT32*)Next; Next += 0x0400 * sizeof(UINT32);
-
- AllRam = Next;
-
- Drv68KRAM = Next; Next += 0x004000;
- DrvUnkRAM0 = Next; Next += 0x000400;
- DrvUnkRAM1 = Next; Next += 0x000400;
- DrvSprRAM = Next; Next += 0x000800;
- DrvPalRAM = Next; Next += 0x000800;
- DrvZ80RAM = Next; Next += 0x000800;
-
- RamEnd = Next;
-
- MemEnd = Next;
-
- return 0;
-}
-
-static INT32 DrvInit()
-{
- BurnSetRefreshRate(58.00);
-
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(Drv68KROM + 0x000000, 0, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x000001, 1, 2)) return 1;
-
- if (BurnLoadRom(DrvZ80ROM + 0x000000, 2, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM1 + 0x000000, 3, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM2 + 0x000000, 4, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x000001, 5, 2)) return 1;
-
- if (BurnLoadRom(DrvSndROM0 + 0x000000, 6, 1)) return 1;
- memcpy (DrvSndROM0 + 0x20000, DrvSndROM0, 0x20000);
-
- deco102_decrypt_cpu(Drv68KROM, Drv68KCode, 0x80000, 0x399d, 0x25, 0x3d);
- deco56_decrypt_gfx(DrvGfxROM1, 0x100000);
- deco16_tile_decode(DrvGfxROM1, DrvGfxROM0, 0x100000, 1);
- deco16_tile_decode(DrvGfxROM1, DrvGfxROM1, 0x100000, 0);
- deco16_sprite_decode(DrvGfxROM2, 0x200000);
- }
-
- deco16Init(1, 0, 1);
- deco16_set_graphics(DrvGfxROM0, 0x100000 * 2, DrvGfxROM1, 0x100000 * 2, NULL, 0);
- deco16_set_global_offsets(0, 8);
- deco16_set_color_base(0, 0);
- deco16_set_color_base(1, 0x100);
- deco16_set_color_mask(0, 0xf);
- deco16_set_color_mask(1, 0xf);
- deco16_set_transparency_mask(0, 0xf);
- deco16_set_transparency_mask(1, 0xf);
- deco16_set_bank_callback(0, dblewing_bank_callback);
- deco16_set_bank_callback(1, dblewing_bank_callback);
-
- SekInit(0, 0x68000);
- SekOpen(0);
- SekMapMemory(Drv68KROM, 0x000000, 0x07ffff, MAP_READ);
- SekMapMemory(Drv68KCode, 0x000000, 0x07ffff, MAP_FETCH);
- SekMapMemory(deco16_pf_ram[0], 0x100000, 0x100fff, MAP_RAM);
- SekMapMemory(deco16_pf_ram[1], 0x102000, 0x102fff, MAP_RAM);
- SekMapMemory(deco16_pf_rowscroll[0], 0x104000, 0x104fff, MAP_RAM);
- SekMapMemory(deco16_pf_rowscroll[1], 0x106000, 0x106fff, MAP_RAM);
- SekMapMemory(DrvUnkRAM0, 0x284000, 0x284400, MAP_RAM);
- SekMapMemory(DrvUnkRAM1, 0x288000, 0x288400, MAP_RAM);
- SekMapMemory(DrvSprRAM, 0x300000, 0x3007ff, MAP_RAM);
- SekMapMemory(DrvPalRAM, 0x320000, 0x3207ff, MAP_RAM);
- SekMapMemory(Drv68KRAM, 0xff0000, 0xff3fff, MAP_RAM);
- SekMapMemory(Drv68KRAM, 0xff4000, 0xff7fff, MAP_RAM);
- SekMapMemory(Drv68KRAM, 0xff8000, 0xffbfff, MAP_RAM);
- SekMapMemory(Drv68KRAM, 0xffc000, 0xffffff, MAP_RAM);
- SekSetWriteWordHandler(0, dblewing_write_word);
- SekSetWriteByteHandler(0, dblewing_write_byte);
- SekSetReadWordHandler(0, dblewing_read_word);
- SekSetReadByteHandler(0, dblewing_read_byte);
- SekClose();
-
- ZetInit(0);
- ZetOpen(0);
- ZetMapMemory(DrvZ80ROM, 0x0000, 0x7fff, MAP_ROM);
- ZetMapMemory(DrvZ80RAM, 0x8000, 0x87ff, MAP_RAM);
- ZetSetWriteHandler(dblewing_sound_write);
- ZetSetReadHandler(dblewing_sound_read);
- ZetSetInHandler(dblewing_sound_read_port);
- ZetClose();
-
- deco_104_init();
- deco_146_104_set_interface_scramble_interleave();
- deco_146_104_set_use_magic_read_address_xor(1);
- deco_146_104_set_port_a_cb(input_read); // inputs
- deco_146_104_set_port_b_cb(system_read); // system
- deco_146_104_set_port_c_cb(dips_read); // dips
- deco_146_104_set_soundlatch_cb(sound_callback);
-
- BurnYM2151Init(3580000);
- BurnYM2151SetIrqHandler(&DrvYM2151IrqHandler);
- BurnYM2151SetAllRoutes(1.00, BURN_SND_ROUTE_BOTH);
-
- MSM6295Init(0, 1000000 / 132, 1);
- MSM6295SetRoute(0, 1.00, BURN_SND_ROUTE_BOTH);
-
- GenericTilesInit();
-
- DrvDoReset();
-
- return 0;
-}
-
-static INT32 DrvExit()
-{
- GenericTilesExit();
- deco16Exit();
-
- MSM6295Exit(0);
- BurnYM2151Exit();
-
- SekExit();
- ZetExit();
-
- BurnFree (AllMem);
-
- MSM6295ROM = NULL;
-
- return 0;
-}
-
-static void draw_sprites()
-{
- UINT16 *spriteram = (UINT16 *)DrvSprRAM;
-
- for (INT32 offs = 0; offs < 0x400; offs += 4)
- {
- INT32 inc, mult;
-
- INT32 sprite = BURN_ENDIAN_SWAP_INT16(spriteram[offs+1]);
-
- INT32 y = BURN_ENDIAN_SWAP_INT16(spriteram[offs]);
-
- if ((y & 0x1000) && (nCurrentFrame & 1)) continue;
-
- INT32 w = y & 0x0800;
- INT32 x = BURN_ENDIAN_SWAP_INT16(spriteram[offs + 2]);
- INT32 colour = (x >> 9) & 0x1f;
-
- INT32 fx = y & 0x2000;
- INT32 fy = y & 0x4000;
- INT32 multi = (1 << ((y & 0x0600) >> 9)) - 1;
-
- x = x & 0x01ff;
- y = y & 0x01ff;
- if (x >= 320) x -= 512;
- if (y >= 256) y -= 512;
- y = 240 - y;
- x = 304 - x;
-
- if (x > 320) continue;
-
- sprite &= ~multi;
-
- if (fy)
- inc = -1;
- else
- {
- sprite += multi;
- inc = 1;
- }
-
- if (!flipscreen)
- {
- y = 240 - y;
- x = 304 - x;
- if (fy) fy = 0; else fy = 1;
- if (fx) fx = 0; else fx = 1;
- mult = 16;
-
- }
- else mult = -16;
-
- INT32 mult2 = multi + 1;
-
- while (multi >= 0)
- {
- INT32 code = (sprite - multi * inc) & 0x3fff;
-
- if (fy) {
- if (fx) {
- Render16x16Tile_Mask_FlipXY_Clip(pTransDraw, code, x, (y + mult * multi) - 8, colour, 4, 0, 0x200, DrvGfxROM2);
- } else {
- Render16x16Tile_Mask_FlipY_Clip(pTransDraw, code, x, (y + mult * multi) - 8, colour, 4, 0, 0x200, DrvGfxROM2);
- }
- } else {
- if (fx) {
- Render16x16Tile_Mask_FlipX_Clip(pTransDraw, code, x, (y + mult * multi) - 8, colour, 4, 0, 0x200, DrvGfxROM2);
- } else {
- Render16x16Tile_Mask_Clip(pTransDraw, code, x, (y + mult * multi) - 8, colour, 4, 0, 0x200, DrvGfxROM2);
- }
- }
-
- if (w)
- {
- code = ((sprite - multi * inc)-mult2) & 0x3fff;
-
- if (fy) {
- if (fx) {
- Render16x16Tile_Mask_FlipXY_Clip(pTransDraw, code, x-16, (y + mult * multi) - 8, colour, 4, 0, 0x200, DrvGfxROM2);
- } else {
- Render16x16Tile_Mask_FlipY_Clip(pTransDraw, code, x-16, (y + mult * multi) - 8, colour, 4, 0, 0x200, DrvGfxROM2);
- }
- } else {
- if (fx) {
- Render16x16Tile_Mask_FlipX_Clip(pTransDraw, code, x-16, (y + mult * multi) - 8, colour, 4, 0, 0x200, DrvGfxROM2);
- } else {
- Render16x16Tile_Mask_Clip(pTransDraw, code, x-16, (y + mult * multi) - 8, colour, 4, 0, 0x200, DrvGfxROM2);
- }
- }
- }
-
- multi--;
- }
- }
-}
-
-static void DrvPaletteUpdate()
-{
- UINT16 *p = (UINT16*)DrvPalRAM;
-
- for (INT32 i = 0; i < 0x800 / 2; i++)
- {
- UINT8 b = (p[i] >> 8) & 0xf;
- UINT8 g = (p[i] >> 4) & 0xf;
- UINT8 r = (p[i] >> 0) & 0xf;
-
- DrvPalette[i] = BurnHighCol(r+r*16, g+g*16, b+b*16, 0);
- }
-}
-
-static INT32 DrvDraw()
-{
-// if (DrvRecalc) {
- DrvPaletteUpdate();
- DrvRecalc = 0;
-// }
-
- deco16_pf12_update();
-
- flipscreen = 1; //~deco16_pf_control[0][0] & 0x80;
-
- //bprintf (0, _T("%4.4x\n"), deco16_pf_control[0][0]);
-
- for (INT32 i = 0; i < nScreenWidth * nScreenHeight; i++) {
- pTransDraw[i] = 0;
- }
-
- if (nBurnLayer & 1) deco16_draw_layer(1, pTransDraw, 0);
-
- if (nBurnLayer & 2) deco16_draw_layer(0, pTransDraw, 0);
-
- if (nBurnLayer & 4) draw_sprites();
-
- BurnTransferCopy(DrvPalette);
-
- return 0;
-}
-
-static INT32 DrvFrame()
-{
- if (DrvReset) {
- DrvDoReset();
- }
-
- ZetNewFrame();
-
- {
- memset (DrvInputs, 0xff, 2 * sizeof(UINT16));
-
- for (INT32 i = 0; i < 16; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- }
- }
-
- INT32 nInterleave = 256;
- INT32 nCyclesTotal[2] = { 14000000 / 58, 3580000 / 58 };
- INT32 nCyclesDone[2] = { 0, 0 };
- INT32 nSoundBufferPos = 0;
-
- SekOpen(0);
- ZetOpen(0);
-
- deco16_vblank = 8;
-
- for (INT32 i = 0; i < nInterleave; i++)
- {
- if (i == 29) deco16_vblank = 0;
- if (i == 248) {
- deco16_vblank = 0x08;
- SekSetIRQLine(6, CPU_IRQSTATUS_AUTO);
- }
-
- nCyclesDone[0] += SekRun(nCyclesTotal[0] / nInterleave);
- nCyclesDone[1] += ZetRun(nCyclesTotal[1] / nInterleave);
-
- if (pBurnSoundOut && i%4==3) {
- INT32 nSegmentLength = nBurnSoundLen / (nInterleave/4);
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- BurnYM2151Render(pSoundBuf, nSegmentLength);
- MSM6295Render(0, pSoundBuf, nSegmentLength);
- nSoundBufferPos += nSegmentLength;
- }
- }
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
-
- if (nSegmentLength) {
- BurnYM2151Render(pSoundBuf, nSegmentLength);
- MSM6295Render(0, pSoundBuf, nSegmentLength);
- }
- }
-
- ZetClose();
- SekClose();
-
- if (pBurnDraw) {
- DrvDraw();
- }
-
- return 0;
-}
-
-static INT32 DrvScan(INT32 nAction, INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin != NULL) {
- *pnMin = 0x029682;
- }
-
- if (nAction & ACB_MEMORY_RAM) {
- memset(&ba, 0, sizeof(ba));
- ba.Data = AllRam;
- ba.nLen = RamEnd-AllRam;
- ba.szName = "All Ram";
- BurnAcb(&ba);
- }
-
- if (nAction & ACB_DRIVER_DATA) {
- SekScan(nAction);
-
- deco16Scan();
-
- BurnYM2151Scan(nAction);
- MSM6295Scan(0, nAction);
-
- SCAN_VAR(flipscreen);
- SCAN_VAR(soundlatch);
- SCAN_VAR(sound_irq);
-
- }
-
- return 0;
-}
-
-
-// Double Wings
-
-static struct BurnRomInfo dblewingRomDesc[] = {
- { "kp_00-.3d", 0x040000, 0x547dc83e, 1 | BRF_PRG | BRF_ESS }, // 0 68k Code
- { "kp_01-.5d", 0x040000, 0x7a210c33, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "kp_02-.10h", 0x010000, 0xdef035fa, 2 | BRF_PRG | BRF_ESS }, // 2 Z80 Code
-
- { "mbe-02.8h", 0x100000, 0x5a6d3ac5, 3 | BRF_GRA }, // 3 Character and Background Tiles
-
- { "mbe-00.14a", 0x100000, 0xe33f5c93, 4 | BRF_GRA }, // 4 Sprites
- { "mbe-01.16a", 0x100000, 0xef452ad7, 4 | BRF_GRA }, // 5
-
- { "kp_03-.16h", 0x020000, 0x5d7f930d, 5 | BRF_SND }, // 6 OKI M6295 Samples
-};
-
-STD_ROM_PICK(dblewing)
-STD_ROM_FN(dblewing)
-
-struct BurnDriver BurnDrvDblewing = {
- "dblewing", NULL, NULL, NULL, "1993",
- "Double Wings\0", NULL, "Mitchell", "DECO IC16",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED, 2, HARDWARE_PREFIX_DATAEAST, GBF_VERSHOOT, 0,
- NULL, dblewingRomInfo, dblewingRomName, NULL, NULL, DblewingInputInfo, DblewingDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x400,
- 240, 320, 3, 4
-};
diff --git a/jan/src/burn/drv/dataeast/d_dec0.cpp b/jan/src/burn/drv/dataeast/d_dec0.cpp
deleted file mode 100644
index 16acf8932..000000000
--- a/jan/src/burn/drv/dataeast/d_dec0.cpp
+++ /dev/null
@@ -1,5858 +0,0 @@
-// Based on MAME driver by Bryan McPhail
-
-#include "tiles_generic.h"
-#include "m68000_intf.h"
-#include "m6502_intf.h"
-#include "msm6295.h"
-#include "burn_ym2203.h"
-#include "burn_ym3812.h"
-#include "h6280_intf.h"
-#include "mcs51.h"
-
-static UINT8 DrvInputPort0[8] = {0, 0, 0, 0, 0, 0, 0, 0};
-static UINT8 DrvInputPort1[8] = {0, 0, 0, 0, 0, 0, 0, 0};
-static UINT8 DrvInputPort2[8] = {0, 0, 0, 0, 0, 0, 0, 0};
-static UINT8 DrvDip[2] = {0, 0};
-static UINT8 DrvInput[3] = {0x00, 0x00, 0x00};
-static UINT8 DrvReset = 0;
-
-static UINT8 *Mem = NULL;
-static UINT8 *MemEnd = NULL;
-static UINT8 *RamStart = NULL;
-static UINT8 *RamEnd = NULL;
-static UINT8 *Drv68KRom = NULL;
-static UINT8 *Drv68KRam = NULL;
-static UINT8 *DrvMCURom = NULL;
-static UINT8 *DrvM6502Rom = NULL;
-static UINT8 *DrvM6502Ram = NULL;
-static UINT8 *DrvH6280Rom = NULL;
-static UINT8 *DrvH6280Ram = NULL;
-static UINT8 *DrvCharRam = NULL;
-static UINT8 *DrvCharCtrl0Ram = NULL;
-static UINT8 *DrvCharCtrl1Ram = NULL;
-static UINT8 *DrvCharColScrollRam = NULL;
-static UINT8 *DrvCharRowScrollRam = NULL;
-static UINT8 *DrvVideo1Ram = NULL;
-static UINT8 *DrvVideo1Ctrl0Ram = NULL;
-static UINT8 *DrvVideo1Ctrl1Ram = NULL;
-static UINT8 *DrvVideo1ColScrollRam = NULL;
-static UINT8 *DrvVideo1RowScrollRam = NULL;
-static UINT8 *DrvVideo2Ram = NULL;
-static UINT8 *DrvVideo2Ctrl0Ram = NULL;
-static UINT8 *DrvVideo2Ctrl1Ram = NULL;
-static UINT8 *DrvVideo2ColScrollRam = NULL;
-static UINT8 *DrvVideo2RowScrollRam = NULL;
-static UINT8 *DrvPaletteRam = NULL;
-static UINT8 *DrvPalette2Ram = NULL;
-static UINT8 *DrvSpriteRam = NULL;
-static UINT8 *DrvSpriteDMABufferRam = NULL;
-static UINT8 *DrvSharedRam = NULL;
-static UINT8 *DrvChars = NULL;
-static UINT8 *DrvTiles1 = NULL;
-static UINT8 *DrvTiles2 = NULL;
-static UINT8 *DrvSprites = NULL;
-static UINT8 *DrvTempRom = NULL;
-static UINT32 *DrvPalette = NULL;
-static UINT16 *pCharLayerDraw = NULL;
-static UINT16 *pTile1LayerDraw = NULL;
-static UINT16 *pTile2LayerDraw = NULL;
-
-// i8751 MCU (hbarrel) & MCU Simulation
-static INT32 realMCU = 0;
-static INT32 i8751RetVal;
-static INT32 i8751Command;
-static UINT8 i8751PortData[4] = { 0, 0, 0, 0 };
-
-static INT32 bTimerNullCPU = 0;
-
-static UINT8 DrvVBlank;
-static UINT8 DrvSoundLatch;
-static UINT8 DrvFlipScreen;
-static INT32 DrvPriority;
-static INT32 DrvCharTilemapWidth;
-static INT32 DrvCharTilemapHeight;
-static INT32 DrvTile1TilemapWidth;
-static INT32 DrvTile1TilemapHeight;
-static INT32 DrvTile2TilemapWidth;
-static INT32 DrvTile2TilemapHeight;
-static UINT8 DrvTileRamBank[3];
-static UINT8 DrvSlyspyProtValue;
-
-typedef void (*Dec0Render)();
-static Dec0Render Dec0DrawFunction;
-static void BaddudesDraw();
-static void BirdtryDraw();
-static void HbarrelDraw();
-static void HippodrmDraw();
-static void MidresDraw();
-static void RobocopDraw();
-static void SlyspyDraw();
-
-typedef INT32 (*Dec0LoadRoms)();
-static Dec0LoadRoms LoadRomsFunction;
-
-static void SlyspySetProtectionMap(UINT8 Type);
-
-static INT32 DrvCharPalOffset = 0;
-static INT32 DrvSpritePalOffset = 256;
-
-// Rotation stuff! -dink
-static UINT8 DrvFakeInput[6] = {0, 0, 0, 0, 0, 0};
-static UINT8 nRotateHoldInput[2] = {0, 0};
-static INT32 nRotate[2] = {0, 0};
-static INT32 nRotateTarget[2] = {0, 0};
-static INT32 nRotateTry[2] = {0, 0};
-static UINT32 nRotateTime[2] = {0, 0};
-static UINT8 game_rotates = 0;
-
-static INT32 nCyclesDone[3], nCyclesTotal[3];
-
-static INT32 Dec0Game = 0;
-
-#define DEC0_GAME_BADDUDES 1
-#define DEC0_GAME_HBARREL 2
-#define DEC0_GAME_BIRDTRY 3
-#define DEC1_GAME_MIDRES 4
-
-static struct BurnInputInfo Dec0InputList[] =
-{
- {"P1 Coin" , BIT_DIGITAL , DrvInputPort2 + 4, "p1 coin" },
- {"P1 Start" , BIT_DIGITAL , DrvInputPort2 + 2, "p1 start" },
- {"P1 Up" , BIT_DIGITAL , DrvInputPort0 + 0, "p1 up" },
- {"P1 Down" , BIT_DIGITAL , DrvInputPort0 + 1, "p1 down" },
- {"P1 Left" , BIT_DIGITAL , DrvInputPort0 + 2, "p1 left" },
- {"P1 Right" , BIT_DIGITAL , DrvInputPort0 + 3, "p1 right" },
- {"P1 Fire 1" , BIT_DIGITAL , DrvInputPort0 + 4, "p1 fire 1" },
- {"P1 Fire 2" , BIT_DIGITAL , DrvInputPort0 + 5, "p1 fire 2" },
- {"P1 Fire 3" , BIT_DIGITAL , DrvInputPort0 + 6, "p1 fire 3" },
- {"P1 Fire 4" , BIT_DIGITAL , DrvInputPort0 + 7, "p1 fire 4" },
- {"P1 Fire 5" , BIT_DIGITAL , DrvInputPort2 + 0, "p1 fire 5" },
-
- {"P2 Coin" , BIT_DIGITAL , DrvInputPort2 + 5, "p2 coin" },
- {"P2 Start" , BIT_DIGITAL , DrvInputPort2 + 3, "p2 start" },
- {"P2 Up (Cocktail)" , BIT_DIGITAL , DrvInputPort1 + 0, "p2 up" },
- {"P2 Down (Cocktail)" , BIT_DIGITAL , DrvInputPort1 + 1, "p2 down" },
- {"P2 Left (Cocktail)" , BIT_DIGITAL , DrvInputPort1 + 2, "p2 left" },
- {"P2 Right (Cocktail)" , BIT_DIGITAL , DrvInputPort1 + 3, "p2 right" },
- {"P2 Fire 1 (Cocktail)" , BIT_DIGITAL , DrvInputPort1 + 4, "p2 fire 1" },
- {"P2 Fire 2 (Cocktail)" , BIT_DIGITAL , DrvInputPort1 + 5, "p2 fire 2" },
- {"P2 Fire 3 (Cocktail)" , BIT_DIGITAL , DrvInputPort1 + 6, "p2 fire 3" },
- {"P2 Fire 4 (Cocktail)" , BIT_DIGITAL , DrvInputPort1 + 7, "p2 fire 4" },
- {"P2 Fire 5 (Cocktail)" , BIT_DIGITAL , DrvInputPort2 + 1, "p2 fire 5" },
-
- {"Reset" , BIT_DIGITAL , &DrvReset , "reset" },
- {"Service" , BIT_DIGITAL , DrvInputPort2 + 6, "service" },
- {"Dip 1" , BIT_DIPSWITCH, DrvDip + 0 , "dip" },
- {"Dip 2" , BIT_DIPSWITCH, DrvDip + 1 , "dip" },
-};
-
-STDINPUTINFO(Dec0)
-
-static struct BurnInputInfo Dec1InputList[] =
-{
- {"P1 Coin" , BIT_DIGITAL , DrvInputPort2 + 0, "p1 coin" },
- {"P1 Start" , BIT_DIGITAL , DrvInputPort0 + 7, "p1 start" },
- {"P1 Up" , BIT_DIGITAL , DrvInputPort0 + 0, "p1 up" },
- {"P1 Down" , BIT_DIGITAL , DrvInputPort0 + 1, "p1 down" },
- {"P1 Left" , BIT_DIGITAL , DrvInputPort0 + 2, "p1 left" },
- {"P1 Right" , BIT_DIGITAL , DrvInputPort0 + 3, "p1 right" },
- {"P1 Fire 1" , BIT_DIGITAL , DrvInputPort0 + 4, "p1 fire 1" },
- {"P1 Fire 2" , BIT_DIGITAL , DrvInputPort0 + 5, "p1 fire 2" },
- {"P1 Fire 3" , BIT_DIGITAL , DrvInputPort0 + 6, "p1 fire 3" },
-
- {"P2 Coin" , BIT_DIGITAL , DrvInputPort2 + 1, "p2 coin" },
- {"P2 Start" , BIT_DIGITAL , DrvInputPort1 + 7, "p2 start" },
- {"P2 Up (Cocktail)" , BIT_DIGITAL , DrvInputPort1 + 0, "p2 up" },
- {"P2 Down (Cocktail)" , BIT_DIGITAL , DrvInputPort1 + 1, "p2 down" },
- {"P2 Left (Cocktail)" , BIT_DIGITAL , DrvInputPort1 + 2, "p2 left" },
- {"P2 Right (Cocktail)" , BIT_DIGITAL , DrvInputPort1 + 3, "p2 right" },
- {"P2 Fire 1 (Cocktail)" , BIT_DIGITAL , DrvInputPort1 + 4, "p2 fire 1" },
- {"P2 Fire 2 (Cocktail)" , BIT_DIGITAL , DrvInputPort1 + 5, "p2 fire 2" },
- {"P2 Fire 3 (Cocktail)" , BIT_DIGITAL , DrvInputPort1 + 6, "p2 fire 3" },
-
- {"Reset" , BIT_DIGITAL , &DrvReset , "reset" },
- {"Service" , BIT_DIGITAL , DrvInputPort2 + 2, "service" },
- {"Dip 1" , BIT_DIPSWITCH, DrvDip + 0 , "dip" },
- {"Dip 2" , BIT_DIPSWITCH, DrvDip + 1 , "dip" },
-};
-
-STDINPUTINFO(Dec1)
-
-static struct BurnInputInfo HbarrelInputList[] =
-{
- {"P1 Coin" , BIT_DIGITAL , DrvInputPort2 + 4, "p1 coin" },
- {"P1 Start" , BIT_DIGITAL , DrvInputPort2 + 2, "p1 start" },
- {"P1 Up" , BIT_DIGITAL , DrvInputPort0 + 0, "p1 up" },
- {"P1 Down" , BIT_DIGITAL , DrvInputPort0 + 1, "p1 down" },
- {"P1 Left" , BIT_DIGITAL , DrvInputPort0 + 2, "p1 left" },
- {"P1 Right" , BIT_DIGITAL , DrvInputPort0 + 3, "p1 right" },
- {"P1 Fire 1" , BIT_DIGITAL , DrvInputPort0 + 4, "p1 fire 1" },
- {"P1 Fire 2" , BIT_DIGITAL , DrvInputPort0 + 5, "p1 fire 2" },
- {"P1 Rotate Left" , BIT_DIGITAL , DrvFakeInput + 0, "p1 rotate left" },
- {"P1 Rotate Right" , BIT_DIGITAL , DrvFakeInput + 1, "p1 rotate right" },
- {"P1 Button 3 (rotate)" , BIT_DIGITAL , DrvFakeInput + 4, "p1 fire 3" },
-
- {"P2 Coin" , BIT_DIGITAL , DrvInputPort2 + 5, "p2 coin" },
- {"P2 Start" , BIT_DIGITAL , DrvInputPort2 + 3, "p2 start" },
- {"P2 Up (Cocktail)" , BIT_DIGITAL , DrvInputPort1 + 0, "p2 up" },
- {"P2 Down (Cocktail)" , BIT_DIGITAL , DrvInputPort1 + 1, "p2 down" },
- {"P2 Left (Cocktail)" , BIT_DIGITAL , DrvInputPort1 + 2, "p2 left" },
- {"P2 Right (Cocktail)" , BIT_DIGITAL , DrvInputPort1 + 3, "p2 right" },
- {"P2 Fire 1 (Cocktail)" , BIT_DIGITAL , DrvInputPort1 + 4, "p2 fire 1" },
- {"P2 Fire 2 (Cocktail)" , BIT_DIGITAL , DrvInputPort1 + 5, "p2 fire 2" },
- {"P2 Rotate Left" , BIT_DIGITAL , DrvFakeInput + 2, "p2 rotate left" },
- {"P2 Rotate Right" , BIT_DIGITAL , DrvFakeInput + 3, "p2 rotate right" },
- {"P2 Button 3 (rotate)" , BIT_DIGITAL , DrvFakeInput + 5, "p2 fire 3" },
-
- {"Reset" , BIT_DIGITAL , &DrvReset , "reset" },
- {"Service" , BIT_DIGITAL , DrvInputPort2 + 6, "service" },
- {"Dip 1" , BIT_DIPSWITCH, DrvDip + 0 , "dip" },
- {"Dip 2" , BIT_DIPSWITCH, DrvDip + 1 , "dip" },
-};
-
-STDINPUTINFO(Hbarrel)
-
-static struct BurnInputInfo MidresInputList[] =
-{
- {"P1 Coin" , BIT_DIGITAL , DrvInputPort2 + 0, "p1 coin" },
- {"P1 Start" , BIT_DIGITAL , DrvInputPort0 + 7, "p1 start" },
- {"P1 Up" , BIT_DIGITAL , DrvInputPort0 + 0, "p1 up" },
- {"P1 Down" , BIT_DIGITAL , DrvInputPort0 + 1, "p1 down" },
- {"P1 Left" , BIT_DIGITAL , DrvInputPort0 + 2, "p1 left" },
- {"P1 Right" , BIT_DIGITAL , DrvInputPort0 + 3, "p1 right" },
- {"P1 Fire 1" , BIT_DIGITAL , DrvInputPort0 + 4, "p1 fire 1" },
- {"P1 Fire 2" , BIT_DIGITAL , DrvInputPort0 + 5, "p1 fire 2" },
- {"P1 Fire 3" , BIT_DIGITAL , DrvInputPort0 + 6, "p1 fire 3" },
- {"P1 Rotate Left" , BIT_DIGITAL , DrvFakeInput + 0, "p1 rotate left" },
- {"P1 Rotate Right" , BIT_DIGITAL , DrvFakeInput + 1, "p1 rotate right" },
- {"P1 Button 3 (rotate)" , BIT_DIGITAL , DrvFakeInput + 4, "p1 fire 3" },
-
- {"P2 Coin" , BIT_DIGITAL , DrvInputPort2 + 1, "p2 coin" },
- {"P2 Start" , BIT_DIGITAL , DrvInputPort1 + 7, "p2 start" },
- {"P2 Up (Cocktail)" , BIT_DIGITAL , DrvInputPort1 + 0, "p2 up" },
- {"P2 Down (Cocktail)" , BIT_DIGITAL , DrvInputPort1 + 1, "p2 down" },
- {"P2 Left (Cocktail)" , BIT_DIGITAL , DrvInputPort1 + 2, "p2 left" },
- {"P2 Right (Cocktail)" , BIT_DIGITAL , DrvInputPort1 + 3, "p2 right" },
- {"P2 Fire 1 (Cocktail)" , BIT_DIGITAL , DrvInputPort1 + 4, "p2 fire 1" },
- {"P2 Fire 2 (Cocktail)" , BIT_DIGITAL , DrvInputPort1 + 5, "p2 fire 2" },
- {"P2 Fire 3 (Cocktail)" , BIT_DIGITAL , DrvInputPort1 + 6, "p2 fire 3" },
- {"P2 Rotate Left" , BIT_DIGITAL , DrvFakeInput + 2, "p2 rotate left" },
- {"P2 Rotate Right" , BIT_DIGITAL , DrvFakeInput + 3, "p2 rotate right" },
- {"P2 Button 3 (rotate)" , BIT_DIGITAL , DrvFakeInput + 5, "p2 fire 3" },
-
- {"Reset" , BIT_DIGITAL , &DrvReset , "reset" },
- {"Service" , BIT_DIGITAL , DrvInputPort2 + 2, "service" },
- {"Dip 1" , BIT_DIPSWITCH, DrvDip + 0 , "dip" },
- {"Dip 2" , BIT_DIPSWITCH, DrvDip + 1 , "dip" },
-};
-
-STDINPUTINFO(Midres)
-
-static inline void DrvClearOpposites(UINT8* nJoystickInputs)
-{
- if ((*nJoystickInputs & 0x03) == 0x03) {
- *nJoystickInputs &= ~0x03;
- }
- if ((*nJoystickInputs & 0x0c) == 0x0c) {
- *nJoystickInputs &= ~0x0c;
- }
-}
-
-static inline void DrvMakeInputs()
-{
- DrvInput[0] = DrvInput[1] = DrvInput[2] = 0x00;
-
- for (INT32 i = 0; i < 8; i++) {
- DrvInput[0] |= (DrvInputPort0[i] & 1) << i;
- DrvInput[1] |= (DrvInputPort1[i] & 1) << i;
- DrvInput[2] |= (DrvInputPort2[i] & 1) << i;
- }
-
- DrvClearOpposites(&DrvInput[0]);
- DrvClearOpposites(&DrvInput[1]);
-}
-
-static struct BurnDIPInfo BaddudesDIPList[]=
-{
- // Default Values
- {0x18, 0xff, 0xff, 0xff, NULL },
- {0x19, 0xff, 0xff, 0xff, NULL },
-
- // Dip 1
- {0 , 0xfe, 0 , 4 , "Coin A" },
- {0x18, 0x01, 0x03, 0x00, "3 Coins 1 Play" },
- {0x18, 0x01, 0x03, 0x01, "2 Coins 1 Play" },
- {0x18, 0x01, 0x03, 0x03, "1 Coin 1 Play" },
- {0x18, 0x01, 0x03, 0x02, "1 Coin 2 Plays" },
-
- {0 , 0xfe, 0 , 4 , "Coin B" },
- {0x18, 0x01, 0x0c, 0x00, "3 Coins 1 Play" },
- {0x18, 0x01, 0x0c, 0x04, "2 Coins 1 Play" },
- {0x18, 0x01, 0x0c, 0x0c, "1 Coin 1 Play" },
- {0x18, 0x01, 0x0c, 0x08, "1 Coin 2 Plays" },
-
- {0 , 0xfe, 0 , 2 , "Service Mode" },
- {0x18, 0x01, 0x10, 0x10, "Off" },
- {0x18, 0x01, 0x10, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2 , "Demo Sounds" },
- {0x18, 0x01, 0x20, 0x00, "Off" },
- {0x18, 0x01, 0x20, 0x20, "On" },
-
- {0 , 0xfe, 0 , 2 , "Flip Screen" },
- {0x18, 0x01, 0x40, 0x40, "Off" },
- {0x18, 0x01, 0x40, 0x00, "On" },
-
- // Dip 2
- {0 , 0xfe, 0 , 4 , "Lives" },
- {0x19, 0x01, 0x03, 0x01, "1" },
- {0x19, 0x01, 0x03, 0x03, "3" },
- {0x19, 0x01, 0x03, 0x02, "5" },
- {0x19, 0x01, 0x03, 0x00, "Infinite" },
-
- {0 , 0xfe, 0 , 4 , "Difficulty" },
- {0x19, 0x01, 0x0c, 0x08, "Easy" },
- {0x19, 0x01, 0x0c, 0x0c, "Normal" },
- {0x19, 0x01, 0x0c, 0x04, "Hard" },
- {0x19, 0x01, 0x0c, 0x00, "Hardest" },
-
- {0 , 0xfe, 0 , 2 , "Allow continue" },
- {0x19, 0x01, 0x10, 0x10, "Yes" },
- {0x19, 0x01, 0x10, 0x00, "No" },
-};
-
-STDDIPINFO(Baddudes)
-
-static struct BurnDIPInfo BirdtryDIPList[]=
-{
- {0x18, 0xff, 0xff, 0xff, NULL },
- {0x19, 0xff, 0xff, 0x3f, NULL },
-
- // Dip 1
- {0 , 0xfe, 0 , 4 , "Coin A" },
- {0x18, 0x01, 0x03, 0x00, "2 Coins 1 Play" },
- {0x18, 0x01, 0x03, 0x03, "1 Coin 1 Play" },
- {0x18, 0x01, 0x03, 0x02, "1 Coin 2 Plays" },
- {0x18, 0x01, 0x03, 0x01, "1 Coin 3 Plays" },
-
- {0 , 0xfe, 0 , 4 , "Coin B" },
- {0x18, 0x01, 0x0c, 0x00, "2 Coins 1 Play" },
- {0x18, 0x01, 0x0c, 0x0c, "1 Coin 1 Play" },
- {0x18, 0x01, 0x0c, 0x08, "1 Coin 2 Plays" },
- {0x18, 0x01, 0x0c, 0x04, "1 Coin 3 Plays" },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x18, 0x01, 0x10, 0x10, "Off" },
- {0x18, 0x01, 0x10, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x18, 0x01, 0x20, 0x00, "Off" },
- {0x18, 0x01, 0x20, 0x20, "On" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x18, 0x01, 0x40, 0x40, "Off" },
- {0x18, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 4, "Difficulty (Extend)" },
- {0x19, 0x01, 0x03, 0x02, "Easy" },
- {0x19, 0x01, 0x03, 0x03, "Normal" },
- {0x19, 0x01, 0x03, 0x01, "Hard" },
- {0x19, 0x01, 0x03, 0x00, "Hardest" },
-
- {0 , 0xfe, 0 , 4, "Difficulty (Course)" },
- {0x19, 0x01, 0x0c, 0x08, "Easy" },
- {0x19, 0x01, 0x0c, 0x0c, "Normal" },
- {0x19, 0x01, 0x0c, 0x04, "Hard" },
- {0x19, 0x01, 0x0c, 0x00, "Hardest" },
-
- {0 , 0xfe, 0 , 2, "Allow Continue" },
- {0x19, 0x01, 0x10, 0x00, "Off" },
- {0x19, 0x01, 0x10, 0x10, "On" },
-
- {0 , 0xfe, 0 , 2, "Timer" },
- {0x19, 0x01, 0x20, 0x20, "Normal" },
- {0x19, 0x01, 0x20, 0x00, "Fast" },
-
- {0 , 0xfe, 0 , 4, "Control Panel Type" },
- {0x19, 0x01, 0xc0, 0xc0, "Type A - Cocktail" },
- {0x19, 0x01, 0xc0, 0x80, "Type B - Cocktail 2" },
- {0x19, 0x01, 0xc0, 0x40, "Unused" },
- {0x19, 0x01, 0xc0, 0x00, "Type C - Upright" },
-};
-
-STDDIPINFO(Birdtry)
-
-static struct BurnDIPInfo BouldashDIPList[]=
-{
- // Default Values
- {0x14, 0xff, 0xff, 0x7f, NULL },
- {0x15, 0xff, 0xff, 0x7f, NULL },
-
- // Dip 1
- {0 , 0xfe, 0 , 8 , "Coin A" },
- {0x14, 0x01, 0x07, 0x00, "3 Coins 1 Play" },
- {0x14, 0x01, 0x07, 0x01, "2 Coins 1 Play" },
- {0x14, 0x01, 0x07, 0x07, "1 Coin 1 Play" },
- {0x14, 0x01, 0x07, 0x06, "1 Coin 2 Plays" },
- {0x14, 0x01, 0x07, 0x05, "1 Coin 3 Plays" },
- {0x14, 0x01, 0x07, 0x04, "1 Coin 4 Plays" },
- {0x14, 0x01, 0x07, 0x03, "1 Coin 5 Plays" },
- {0x14, 0x01, 0x07, 0x02, "1 Coin 6 Plays" },
-
- {0 , 0xfe, 0 , 8 , "Coin B" },
- {0x14, 0x01, 0x38, 0x00, "3 Coins 1 Play" },
- {0x14, 0x01, 0x38, 0x08, "2 Coins 1 Play" },
- {0x14, 0x01, 0x38, 0x38, "1 Coin 1 Play" },
- {0x14, 0x01, 0x38, 0x30, "1 Coin 2 Plays" },
- {0x14, 0x01, 0x38, 0x28, "1 Coin 3 Plays" },
- {0x14, 0x01, 0x38, 0x20, "1 Coin 4 Plays" },
- {0x14, 0x01, 0x38, 0x18, "1 Coin 5 Plays" },
- {0x14, 0x01, 0x38, 0x10, "1 Coin 6 Plays" },
-
- {0 , 0xfe, 0 , 2 , "Flip Screen" },
- {0x14, 0x01, 0x40, 0x40, "Off" },
- {0x14, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x14, 0x01, 0x80, 0x00, "Upright" },
- {0x14, 0x01, 0x80, 0x80, "Cocktail" },
-
- // Dip 2
- {0 , 0xfe, 0 , 4 , "Lives" },
- {0x15, 0x01, 0x03, 0x00, "2" },
- {0x15, 0x01, 0x03, 0x03, "3" },
- {0x15, 0x01, 0x03, 0x02, "4" },
- {0x15, 0x01, 0x03, 0x01, "5" },
-
- {0 , 0xfe, 0 , 4 , "Difficulty" },
- {0x15, 0x01, 0x0c, 0x08, "Easy" },
- {0x15, 0x01, 0x0c, 0x0c, "Normal" },
- {0x15, 0x01, 0x0c, 0x04, "Hard" },
- {0x15, 0x01, 0x0c, 0x00, "Hardest" },
-
- {0 , 0xfe, 0 , 2 , "Game Change Mode" },
- {0x15, 0x01, 0x20, 0x20, "Part 1" },
- {0x15, 0x01, 0x20, 0x00, "Part 2" },
-
- {0 , 0xfe, 0 , 2 , "Allow continue" },
- {0x15, 0x01, 0x40, 0x00, "No" },
- {0x15, 0x01, 0x40, 0x40, "Yes" },
-
- {0 , 0xfe, 0 , 2 , "Demo Sounds" },
- {0x15, 0x01, 0x20, 0x80, "Off" },
- {0x15, 0x01, 0x20, 0x00, "On" },
-};
-
-STDDIPINFO(Bouldash)
-
-static struct BurnDIPInfo HbarrelDIPList[]=
-{
- // Default Values
- {0x18, 0xff, 0xff, 0xff, NULL },
- {0x19, 0xff, 0xff, 0xbf, NULL },
-
- // Dip 1
- {0 , 0xfe, 0 , 4 , "Coin A" },
- {0x18, 0x01, 0x03, 0x00, "2 Coins 1 Play" },
- {0x18, 0x01, 0x03, 0x03, "1 Coin 1 Play" },
- {0x18, 0x01, 0x03, 0x02, "1 Coin 2 Plays" },
- {0x18, 0x01, 0x03, 0x01, "1 Coin 3 Plays" },
-
- {0 , 0xfe, 0 , 4 , "Coin B" },
- {0x18, 0x01, 0x0c, 0x00, "2 Coins 1 Play" },
- {0x18, 0x01, 0x0c, 0x0c, "1 Coin 1 Play" },
- {0x18, 0x01, 0x0c, 0x08, "1 Coin 2 Plays" },
- {0x18, 0x01, 0x0c, 0x04, "1 Coin 3 Plays" },
-
- {0 , 0xfe, 0 , 2 , "Service Mode" },
- {0x18, 0x01, 0x10, 0x10, "Off" },
- {0x18, 0x01, 0x10, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2 , "Demo Sounds" },
- {0x18, 0x01, 0x20, 0x00, "Off" },
- {0x18, 0x01, 0x20, 0x20, "On" },
-
- {0 , 0xfe, 0 , 2 , "Flip Screen" },
- {0x18, 0x01, 0x40, 0x40, "Off" },
- {0x18, 0x01, 0x40, 0x00, "On" },
-
- // Dip 2
- {0 , 0xfe, 0 , 4 , "Lives" },
- {0x19, 0x01, 0x03, 0x01, "1" },
- {0x19, 0x01, 0x03, 0x03, "3" },
- {0x19, 0x01, 0x03, 0x02, "5" },
- {0x19, 0x01, 0x03, 0x00, "Infinite" },
-
- {0 , 0xfe, 0 , 4 , "Difficulty" },
- {0x19, 0x01, 0x0c, 0x08, "Easy" },
- {0x19, 0x01, 0x0c, 0x0c, "Normal" },
- {0x19, 0x01, 0x0c, 0x04, "Hard" },
- {0x19, 0x01, 0x0c, 0x00, "Hardest" },
-
- {0 , 0xfe, 0 , 4 , "Bonus Life" },
- {0x19, 0x01, 0x30, 0x30, "30k 80k 160k" },
- {0x19, 0x01, 0x30, 0x20, "50k 120k 190k" },
- {0x19, 0x01, 0x30, 0x10, "100k 200k 300k" },
- {0x19, 0x01, 0x30, 0x00, "150k 300k 450k" },
-
- {0 , 0xfe, 0 , 2 , "Allow continue" },
- {0x19, 0x01, 0x40, 0x40, "No" },
- {0x19, 0x01, 0x40, 0x00, "Yes" },
-};
-
-STDDIPINFO(Hbarrel)
-
-static struct BurnDIPInfo HippodrmDIPList[]=
-{
- // Default Values
- {0x18, 0xff, 0xff, 0xff, NULL },
- {0x19, 0xff, 0xff, 0xff, NULL },
-
- // Dip 1
- {0 , 0xfe, 0 , 4 , "Coin A" },
- {0x18, 0x01, 0x03, 0x00, "3 Coins 1 Play" },
- {0x18, 0x01, 0x03, 0x01, "2 Coins 1 Play" },
- {0x18, 0x01, 0x03, 0x03, "1 Coin 1 Play" },
- {0x18, 0x01, 0x03, 0x02, "1 Coin 2 Plays" },
-
- {0 , 0xfe, 0 , 4 , "Coin B" },
- {0x18, 0x01, 0x0c, 0x00, "3 Coins 1 Play" },
- {0x18, 0x01, 0x0c, 0x04, "2 Coins 1 Play" },
- {0x18, 0x01, 0x0c, 0x0c, "1 Coin 1 Play" },
- {0x18, 0x01, 0x0c, 0x08, "1 Coin 2 Plays" },
-
- {0 , 0xfe, 0 , 2 , "Demo Sounds" },
- {0x18, 0x01, 0x20, 0x00, "Off" },
- {0x18, 0x01, 0x20, 0x20, "On" },
-
- {0 , 0xfe, 0 , 2 , "Flip Screen" },
- {0x18, 0x01, 0x40, 0x40, "Off" },
- {0x18, 0x01, 0x40, 0x00, "On" },
-
- // Dip 2
- {0 , 0xfe, 0 , 4 , "Lives" },
- {0x19, 0x01, 0x03, 0x01, "1" },
- {0x19, 0x01, 0x03, 0x03, "2" },
- {0x19, 0x01, 0x03, 0x02, "3" },
- {0x19, 0x01, 0x03, 0x00, "5" },
-
- {0 , 0xfe, 0 , 4 , "Difficulty" },
- {0x19, 0x01, 0x0c, 0x08, "Easy" },
- {0x19, 0x01, 0x0c, 0x0c, "Normal" },
- {0x19, 0x01, 0x0c, 0x04, "Hard" },
- {0x19, 0x01, 0x0c, 0x00, "Hardest" },
-
- {0 , 0xfe, 0 , 4 , "Player & Enemy Energy" },
- {0x19, 0x01, 0x30, 0x10, "Very Low" },
- {0x19, 0x01, 0x30, 0x20, "Low" },
- {0x19, 0x01, 0x30, 0x30, "Medium" },
- {0x19, 0x01, 0x30, 0x00, "High" },
-
- {0 , 0xfe, 0 , 2 , "Energy Power Decrease on Continue"},
- {0x19, 0x01, 0x40, 0x40, "2 Dots" },
- {0x19, 0x01, 0x40, 0x00, "3 Dots" },
-};
-
-STDDIPINFO(Hippodrm)
-
-static struct BurnDIPInfo FfantasyDIPList[]=
-{
- // Default Values
- {0x18, 0xff, 0xff, 0xff, NULL },
- {0x19, 0xff, 0xff, 0xff, NULL },
-
- // Dip 1
- {0 , 0xfe, 0 , 4 , "Coin A" },
- {0x18, 0x01, 0x03, 0x00, "3 Coins 1 Play" },
- {0x18, 0x01, 0x03, 0x01, "2 Coins 1 Play" },
- {0x18, 0x01, 0x03, 0x03, "1 Coin 1 Play" },
- {0x18, 0x01, 0x03, 0x02, "1 Coin 2 Plays" },
-
- {0 , 0xfe, 0 , 4 , "Coin B" },
- {0x18, 0x01, 0x0c, 0x00, "3 Coins 1 Play" },
- {0x18, 0x01, 0x0c, 0x04, "2 Coins 1 Play" },
- {0x18, 0x01, 0x0c, 0x0c, "1 Coin 1 Play" },
- {0x18, 0x01, 0x0c, 0x08, "1 Coin 2 Plays" },
-
- {0 , 0xfe, 0 , 2 , "Demo Sounds" },
- {0x18, 0x01, 0x20, 0x00, "Off" },
- {0x18, 0x01, 0x20, 0x20, "On" },
-
- {0 , 0xfe, 0 , 2 , "Flip Screen" },
- {0x18, 0x01, 0x40, 0x40, "Off" },
- {0x18, 0x01, 0x40, 0x00, "On" },
-
- // Dip 2
- {0 , 0xfe, 0 , 4 , "Lives" },
- {0x19, 0x01, 0x03, 0x01, "1" },
- {0x19, 0x01, 0x03, 0x03, "2" },
- {0x19, 0x01, 0x03, 0x02, "3" },
- {0x19, 0x01, 0x03, 0x00, "5" },
-
- {0 , 0xfe, 0 , 4 , "Difficulty" },
- {0x19, 0x01, 0x0c, 0x08, "Easy" },
- {0x19, 0x01, 0x0c, 0x0c, "Normal" },
- {0x19, 0x01, 0x0c, 0x04, "Hard" },
- {0x19, 0x01, 0x0c, 0x00, "Hardest" },
-
- {0 , 0xfe, 0 , 4 , "Player & Enemy Energy" },
- {0x19, 0x01, 0x30, 0x10, "Very Low" },
- {0x19, 0x01, 0x30, 0x20, "Low" },
- {0x19, 0x01, 0x30, 0x30, "Medium" },
- {0x19, 0x01, 0x30, 0x00, "High" },
-
- {0 , 0xfe, 0 , 2 , "Energy Power Decrease on Continue"},
- {0x19, 0x01, 0x40, 0x40, "2 Dots" },
- {0x19, 0x01, 0x40, 0x00, "None" },
-};
-
-STDDIPINFO(Ffantasy)
-
-static struct BurnDIPInfo MidresDIPList[]=
-{
- // Default Values
- {0x1a, 0xff, 0xff, 0xff, NULL },
- {0x1b, 0xff, 0xff, 0xbf, NULL },
-
- // Dip 1
- {0 , 0xfe, 0 , 4 , "Coin A" },
- {0x1a, 0x01, 0x03, 0x00, "3 Coins 1 Play" },
- {0x1a, 0x01, 0x03, 0x01, "2 Coins 1 Play" },
- {0x1a, 0x01, 0x03, 0x03, "1 Coin 1 Play" },
- {0x1a, 0x01, 0x03, 0x02, "1 Coin 2 Plays" },
-
- {0 , 0xfe, 0 , 4 , "Coin B" },
- {0x1a, 0x01, 0x0c, 0x00, "3 Coins 1 Play" },
- {0x1a, 0x01, 0x0c, 0x04, "2 Coins 1 Play" },
- {0x1a, 0x01, 0x0c, 0x0c, "1 Coin 1 Play" },
- {0x1a, 0x01, 0x0c, 0x08, "1 Coin 2 Plays" },
-
- {0 , 0xfe, 0 , 2 , "Service Mode" },
- {0x1a, 0x01, 0x10, 0x10, "Off" },
- {0x1a, 0x01, 0x10, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2 , "Demo Sounds" },
- {0x1a, 0x01, 0x20, 0x00, "Off" },
- {0x1a, 0x01, 0x20, 0x20, "On" },
-
- {0 , 0xfe, 0 , 2 , "Flip Screen" },
- {0x1a, 0x01, 0x40, 0x40, "Off" },
- {0x1a, 0x01, 0x40, 0x00, "On" },
-
- // Dip 2
- {0 , 0xfe, 0 , 4 , "Lives" },
- {0x1b, 0x01, 0x03, 0x03, "3" },
- {0x1b, 0x01, 0x03, 0x02, "4" },
- {0x1b, 0x01, 0x03, 0x01, "5" },
- {0x1b, 0x01, 0x03, 0x00, "Infinite" },
-
- {0 , 0xfe, 0 , 4 , "Difficulty" },
- {0x1b, 0x01, 0x0c, 0x08, "Easy" },
- {0x1b, 0x01, 0x0c, 0x0c, "Normal" },
- {0x1b, 0x01, 0x0c, 0x04, "Hard" },
- {0x1b, 0x01, 0x0c, 0x00, "Hardest" },
-
- {0 , 0xfe, 0 , 2 , "Allow continue" },
- {0x1b, 0x01, 0x40, 0x40, "No" },
- {0x1b, 0x01, 0x40, 0x00, "Yes" },
-};
-
-STDDIPINFO(Midres)
-
-static struct BurnDIPInfo MidresuDIPList[]=
-{
- // Default Values
- {0x1a, 0xff, 0xff, 0xff, NULL },
- {0x1b, 0xff, 0xff, 0xbf, NULL },
-
- // Dip 1
- {0 , 0xfe, 0 , 4 , "Coin A" },
- {0x1a, 0x01, 0x03, 0x00, "3 Coins 1 Play" },
- {0x1a, 0x01, 0x03, 0x01, "2 Coins 1 Play" },
- {0x1a, 0x01, 0x03, 0x03, "1 Coin 1 Play" },
- {0x1a, 0x01, 0x03, 0x02, "1 Coin 2 Plays" },
-
- {0 , 0xfe, 0 , 4 , "Coin B" },
- {0x1a, 0x01, 0x0c, 0x00, "3 Coins 1 Play" },
- {0x1a, 0x01, 0x0c, 0x04, "2 Coins 1 Play" },
- {0x1a, 0x01, 0x0c, 0x0c, "1 Coin 1 Play" },
- {0x1a, 0x01, 0x0c, 0x08, "1 Coin 2 Plays" },
-
- {0 , 0xfe, 0 , 2 , "Service Mode" },
- {0x1a, 0x01, 0x10, 0x10, "Off" },
- {0x1a, 0x01, 0x10, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2 , "Demo Sounds" },
- {0x1a, 0x01, 0x20, 0x00, "Off" },
- {0x1a, 0x01, 0x20, 0x20, "On" },
-
- {0 , 0xfe, 0 , 2 , "Flip Screen" },
- {0x1a, 0x01, 0x40, 0x40, "Off" },
- {0x1a, 0x01, 0x40, 0x00, "On" },
-
- // Dip 2
- {0 , 0xfe, 0 , 4 , "Lives" },
- {0x1b, 0x01, 0x03, 0x01, "1" },
- {0x1b, 0x01, 0x03, 0x03, "3" },
- {0x1b, 0x01, 0x03, 0x02, "5" },
- {0x1b, 0x01, 0x03, 0x00, "Infinite" },
-
- {0 , 0xfe, 0 , 4 , "Difficulty" },
- {0x1b, 0x01, 0x0c, 0x08, "Easy" },
- {0x1b, 0x01, 0x0c, 0x0c, "Normal" },
- {0x1b, 0x01, 0x0c, 0x04, "Hard" },
- {0x1b, 0x01, 0x0c, 0x00, "Hardest" },
-
- {0 , 0xfe, 0 , 2 , "Allow continue" },
- {0x1b, 0x01, 0x40, 0x40, "No" },
- {0x1b, 0x01, 0x40, 0x00, "Yes" },
-};
-
-STDDIPINFO(Midresu)
-
-static struct BurnDIPInfo RobocopDIPList[]=
-{
- // Default Values
- {0x18, 0xff, 0xff, 0x7f, NULL },
- {0x19, 0xff, 0xff, 0xff, NULL },
-
- // Dip 1
- {0 , 0xfe, 0 , 4 , "Coin A" },
- {0x18, 0x01, 0x03, 0x00, "3 Coins 1 Play" },
- {0x18, 0x01, 0x03, 0x01, "2 Coins 1 Play" },
- {0x18, 0x01, 0x03, 0x03, "1 Coin 1 Play" },
- {0x18, 0x01, 0x03, 0x02, "1 Coin 2 Plays" },
-
- {0 , 0xfe, 0 , 4 , "Coin B" },
- {0x18, 0x01, 0x0c, 0x00, "3 Coins 1 Play" },
- {0x18, 0x01, 0x0c, 0x04, "2 Coins 1 Play" },
- {0x18, 0x01, 0x0c, 0x0c, "1 Coin 1 Play" },
- {0x18, 0x01, 0x0c, 0x08, "1 Coin 2 Plays" },
-
- {0 , 0xfe, 0 , 2 , "Demo Sounds" },
- {0x18, 0x01, 0x20, 0x00, "Off" },
- {0x18, 0x01, 0x20, 0x20, "On" },
-
- {0 , 0xfe, 0 , 2 , "Flip Screen" },
- {0x18, 0x01, 0x40, 0x40, "Off" },
- {0x18, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x18, 0x01, 0x80, 0x80, "Upright" },
- {0x18, 0x01, 0x80, 0x00, "Cocktail" },
-
- // Dip 2
- {0 , 0xfe, 0 , 4 , "Player Energy" },
- {0x19, 0x01, 0x03, 0x01, "Low" },
- {0x19, 0x01, 0x03, 0x03, "Medium" },
- {0x19, 0x01, 0x03, 0x02, "High" },
- {0x19, 0x01, 0x03, 0x00, "Very High" },
-
- {0 , 0xfe, 0 , 4 , "Difficulty" },
- {0x19, 0x01, 0x0c, 0x08, "Easy" },
- {0x19, 0x01, 0x0c, 0x0c, "Normal" },
- {0x19, 0x01, 0x0c, 0x04, "Hard" },
- {0x19, 0x01, 0x0c, 0x00, "Hardest" },
-
- {0 , 0xfe, 0 , 2 , "Allow continue" },
- {0x19, 0x01, 0x10, 0x10, "No" },
- {0x19, 0x01, 0x10, 0x00, "Yes" },
-
- {0 , 0xfe, 0 , 2 , "Bonus Stage Energy" },
- {0x19, 0x01, 0x20, 0x00, "Low" },
- {0x19, 0x01, 0x20, 0x20, "High" },
-
- {0 , 0xfe, 0 , 2 , "Brink Time" },
- {0x19, 0x01, 0x40, 0x40, "Normal" },
- {0x19, 0x01, 0x40, 0x00, "Less" },
-};
-
-STDDIPINFO(Robocop)
-
-static struct BurnDIPInfo SlyspyDIPList[]=
-{
- // Default Values
- {0x14, 0xff, 0xff, 0x7f, NULL },
- {0x15, 0xff, 0xff, 0xff, NULL },
-
- // Dip 1
- {0 , 0xfe, 0 , 4 , "Coin A" },
- {0x14, 0x01, 0x03, 0x00, "3 Coins 1 Play" },
- {0x14, 0x01, 0x03, 0x01, "2 Coins 1 Play" },
- {0x14, 0x01, 0x03, 0x03, "1 Coin 1 Play" },
- {0x14, 0x01, 0x03, 0x02, "1 Coin 2 Plays" },
-
- {0 , 0xfe, 0 , 4 , "Coin B" },
- {0x14, 0x01, 0x0c, 0x00, "3 Coins 1 Play" },
- {0x14, 0x01, 0x0c, 0x04, "2 Coins 1 Play" },
- {0x14, 0x01, 0x0c, 0x0c, "1 Coin 1 Play" },
- {0x14, 0x01, 0x0c, 0x08, "1 Coin 2 Plays" },
-
- {0 , 0xfe, 0 , 2 , "Service Mode" },
- {0x14, 0x01, 0x10, 0x10, "Off" },
- {0x14, 0x01, 0x10, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2 , "Demo Sounds" },
- {0x14, 0x01, 0x20, 0x00, "Off" },
- {0x14, 0x01, 0x20, 0x20, "On" },
-
- {0 , 0xfe, 0 , 2 , "Flip Screen" },
- {0x14, 0x01, 0x40, 0x40, "Off" },
- {0x14, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x14, 0x01, 0x80, 0x00, "Upright" },
- {0x14, 0x01, 0x80, 0x80, "Cocktail" },
-
- // Dip 2
- {0 , 0xfe, 0 , 4 , "Energy" },
- {0x15, 0x01, 0x03, 0x02, "8 bars" },
- {0x15, 0x01, 0x03, 0x03, "10 bars" },
- {0x15, 0x01, 0x03, 0x01, "12 bars" },
- {0x15, 0x01, 0x03, 0x00, "14 bars" },
-
- {0 , 0xfe, 0 , 4 , "Difficulty" },
- {0x15, 0x01, 0x0c, 0x08, "Easy" },
- {0x15, 0x01, 0x0c, 0x0c, "Normal" },
- {0x15, 0x01, 0x0c, 0x04, "Hard" },
- {0x15, 0x01, 0x0c, 0x00, "Hardest" },
-
- {0 , 0xfe, 0 , 2 , "Allow continue" },
- {0x15, 0x01, 0x10, 0x00, "No" },
- {0x15, 0x01, 0x10, 0x10, "Yes" },
-};
-
-STDDIPINFO(Slyspy)
-
-static struct BurnRomInfo BaddudesRomDesc[] = {
- { "ei04-1.3c", 0x10000, 0x4bf158a7, BRF_ESS | BRF_PRG }, // 0 68000 Program Code
- { "ei01-1.3a", 0x10000, 0x74f5110c, BRF_ESS | BRF_PRG }, // 1
- { "ei06.6c", 0x10000, 0x3ff8da57, BRF_ESS | BRF_PRG }, // 2
- { "ei03.6a", 0x10000, 0xf8f2bd94, BRF_ESS | BRF_PRG }, // 3
-
- { "ei07.8a", 0x08000, 0x9fb1ef4b, BRF_ESS | BRF_PRG }, // 4 6502 Program
-
- { "ei25.15j", 0x08000, 0xbcf59a69, BRF_GRA }, // 5 Characters
- { "ei26.16j", 0x08000, 0x9aff67b8, BRF_GRA }, // 6
-
- { "ei18.14d", 0x10000, 0x05cfc3e5, BRF_GRA }, // 7 Tiles 1
- { "ei20.17d", 0x10000, 0xe11e988f, BRF_GRA }, // 8
- { "ei22.14f", 0x10000, 0xb893d880, BRF_GRA }, // 9
- { "ei24.17f", 0x10000, 0x6f226dda, BRF_GRA }, // 10
-
- { "ei30.9j", 0x10000, 0x982da0d1, BRF_GRA }, // 11 Tiles 2
- { "ei28.9f", 0x10000, 0xf01ebb3b, BRF_GRA }, // 12
-
- { "ei15.16c", 0x10000, 0xa38a7d30, BRF_GRA }, // 13 Sprites
- { "ei16.17c", 0x08000, 0x17e42633, BRF_GRA }, // 14
- { "ei11.16a", 0x10000, 0x3a77326c, BRF_GRA }, // 15
- { "ei12.17a", 0x08000, 0xfea2a134, BRF_GRA }, // 16
- { "ei13.13c", 0x10000, 0xe5ae2751, BRF_GRA }, // 17
- { "ei14.14c", 0x08000, 0xe83c760a, BRF_GRA }, // 18
- { "ei09.13a", 0x10000, 0x6901e628, BRF_GRA }, // 19
- { "ei10.14a", 0x08000, 0xeeee8a1a, BRF_GRA }, // 20
-
- { "ei08.2c", 0x10000, 0x3c87463e, BRF_SND }, // 21 Samples
-
- { "ei31.9a", 0x01000, 0x2a8745d2, BRF_OPT }, // 22 I8751
-};
-
-STD_ROM_PICK(Baddudes)
-STD_ROM_FN(Baddudes)
-
-// Birdie Try (Japan)
-
-static struct BurnRomInfo birdtryRomDesc[] = {
- { "ek-04.bin", 0x10000, 0x5f0f4686, 1 }, // 0 maincpu
- { "ek-01.bin", 0x10000, 0x47f470db, 1 }, // 1
- { "ek-05.bin", 0x10000, 0xb508cffd, 1 }, // 2
- { "ek-02.bin", 0x10000, 0x0195d989, 1 }, // 3
- { "ek-06.bin", 0x10000, 0x301d57d8, 1 }, // 4
- { "ek-03.bin", 0x10000, 0x73b0acc5, 1 }, // 5
-
- { "ek-07.bin", 0x08000, 0x236549bc, 2 }, // 6 audiocpu
-
- { "i8751", 0x01000, 0x00000000, 3 | BRF_NODUMP }, // 7 mcu
-
- { "ek-25.bin", 0x08000, 0x4df134ad, 4 }, // 8 gfx1
- { "ek-26.bin", 0x08000, 0xa00d3e8e, 4 }, // 9
-
- { "ek-18.bin", 0x10000, 0x9886fb70, 5 }, // 10 gfx2
- { "ek-17.bin", 0x10000, 0xbed91bf7, 5 }, // 11
- { "ek-20.bin", 0x10000, 0x45d53965, 5 }, // 12
- { "ek-19.bin", 0x10000, 0xc2949dd2, 5 }, // 13
- { "ek-22.bin", 0x10000, 0x7f2cc80a, 5 }, // 14
- { "ek-21.bin", 0x10000, 0x281bc793, 5 }, // 15
- { "ek-24.bin", 0x10000, 0x2244cc75, 5 }, // 16
- { "ek-23.bin", 0x10000, 0xd0ed0116, 5 }, // 17
-
- { "ek-15.bin", 0x10000, 0xa6a041a3, 6 }, // 18 gfx4
- { "ek-16.bin", 0x08000, 0x784f62b0, 6 }, // 19
- { "ek-11.bin", 0x10000, 0x9224a6b9, 6 }, // 20
- { "ek-12.bin", 0x08000, 0x12deecfa, 6 }, // 21
- { "ek-13.bin", 0x10000, 0x1f023459, 6 }, // 22
- { "ek-14.bin", 0x08000, 0x57d54943, 6 }, // 23
- { "ek-09.bin", 0x10000, 0x6d2d488a, 6 }, // 24
- { "ek-10.bin", 0x08000, 0x580ba206, 6 }, // 25
-
- { "ek-08.bin", 0x10000, 0xbe3db6cb, 7 }, // 26 oki
-};
-
-STD_ROM_PICK(birdtry)
-STD_ROM_FN(birdtry)
-
-static struct BurnRomInfo BouldashRomDesc[] = {
- { "fw-15-2.17l", 0x10000, 0xca19a967, BRF_ESS | BRF_PRG }, // 0 68000 Program Code
- { "fw-12-2.9l", 0x10000, 0x242bdc2a, BRF_ESS | BRF_PRG }, // 1
- { "fw-16-2.19l", 0x10000, 0xb7217265, BRF_ESS | BRF_PRG }, // 2
- { "fw-13-2.11l", 0x10000, 0x19209ef4, BRF_ESS | BRF_PRG }, // 3
- { "fw-17-2.20l", 0x10000, 0x78a632a1, BRF_ESS | BRF_PRG }, // 4
- { "fw-14-2.13l", 0x10000, 0x69b6112d, BRF_ESS | BRF_PRG }, // 5
-
- { "fn-10", 0x10000, 0xc74106e7, BRF_ESS | BRF_PRG }, // 6 HuC6280 Program
-
- { "fn-04", 0x10000, 0x40f5a760, BRF_GRA }, // 7 Characters
- { "fn-05", 0x10000, 0x824f2168, BRF_GRA }, // 8
-
- { "fn-07", 0x10000, 0xeac6a3b3, BRF_GRA }, // 9 Tiles 1
- { "fn-06", 0x10000, 0x3feee292, BRF_GRA }, // 10
-
- { "fn-09", 0x20000, 0xc2b27bd2, BRF_GRA }, // 11 Tiles 2
- { "fn-08", 0x20000, 0x5ac97178, BRF_GRA }, // 12
-
- { "fn-01", 0x10000, 0x9333121b, BRF_GRA }, // 13 Sprites
- { "fn-03", 0x10000, 0x254ba60f, BRF_GRA }, // 14
- { "fn-00", 0x10000, 0xec18d098, BRF_GRA }, // 15
- { "fn-02", 0x10000, 0x4f060cba, BRF_GRA }, // 16
-
- { "fn-11", 0x10000, 0x990fd8d9, BRF_SND }, // 17 Samples
-
- { "ta-16.21k", 0x00100, 0xad26e8d4, BRF_OPT}, // 18 PROMs
-};
-
-STD_ROM_PICK(Bouldash)
-STD_ROM_FN(Bouldash)
-
-static struct BurnRomInfo BouldashjRomDesc[] = {
- { "fn-15-1.17l", 0x10000, 0xd3ef20f8, BRF_ESS | BRF_PRG }, // 0 68000 Program Code
- { "fn-12-1.9l", 0x10000, 0xf4a10b45, BRF_ESS | BRF_PRG }, // 1
- { "fn-16-.19l", 0x10000, 0xfd1806a5, BRF_ESS | BRF_PRG }, // 2
- { "fn-13-.11l", 0x10000, 0xd24d3681, BRF_ESS | BRF_PRG }, // 3
- { "fn-17-.20l", 0x10000, 0x28d48a37, BRF_ESS | BRF_PRG }, // 4
- { "fn-14-.13l", 0x10000, 0x8c61c682, BRF_ESS | BRF_PRG }, // 5
-
- { "fn-10", 0x10000, 0xc74106e7, BRF_ESS | BRF_PRG }, // 6 HuC6280 Program
-
- { "fn-04", 0x10000, 0x40f5a760, BRF_GRA }, // 7 Characters
- { "fn-05", 0x10000, 0x824f2168, BRF_GRA }, // 8
-
- { "fn-07", 0x10000, 0xeac6a3b3, BRF_GRA }, // 9 Tiles 1
- { "fn-06", 0x10000, 0x3feee292, BRF_GRA }, // 10
-
- { "fn-09", 0x20000, 0xc2b27bd2, BRF_GRA }, // 11 Tiles 2
- { "fn-08", 0x20000, 0x5ac97178, BRF_GRA }, // 12
-
- { "fn-01", 0x10000, 0x9333121b, BRF_GRA }, // 13 Sprites
- { "fn-03", 0x10000, 0x254ba60f, BRF_GRA }, // 14
- { "fn-00", 0x10000, 0xec18d098, BRF_GRA }, // 15
- { "fn-02", 0x10000, 0x4f060cba, BRF_GRA }, // 16
-
- { "fn-11", 0x10000, 0x990fd8d9, BRF_SND }, // 17 Samples
-
- { "ta-16.21k", 0x00100, 0xad26e8d4, BRF_OPT}, // 18 PROMs
-};
-
-STD_ROM_PICK(Bouldashj)
-STD_ROM_FN(Bouldashj)
-
-static struct BurnRomInfo DrgninjaRomDesc[] = {
- { "eg04.3c", 0x10000, 0x41b8b3f8, BRF_ESS | BRF_PRG }, // 0 68000 Program Code
- { "eg01.3a", 0x10000, 0xe08e6885, BRF_ESS | BRF_PRG }, // 1
- { "eg06.6c", 0x10000, 0x2b81faf7, BRF_ESS | BRF_PRG }, // 2
- { "eg03.6a", 0x10000, 0xc52c2e9d, BRF_ESS | BRF_PRG }, // 3
-
- { "eg07.8a", 0x08000, 0x001d2f51, BRF_ESS | BRF_PRG }, // 4 6502 Program
-
- { "eg25.15j", 0x08000, 0xdd557b19, BRF_GRA }, // 5 Characters
- { "eg26.16j", 0x08000, 0x5d75fc8f, BRF_GRA }, // 6
-
- { "eg18.14d", 0x10000, 0x05cfc3e5, BRF_GRA }, // 7 Tiles 1
- { "eg20.17d", 0x10000, 0xe11e988f, BRF_GRA }, // 8
- { "eg22.14f", 0x10000, 0xb893d880, BRF_GRA }, // 9
- { "eg24.17f", 0x10000, 0x6f226dda, BRF_GRA }, // 10
-
- { "eg30.9j", 0x10000, 0x2438e67e, BRF_GRA }, // 11 Tiles 2
- { "eg28.9f", 0x10000, 0x5c692ab3, BRF_GRA }, // 12
-
- { "eg15.16c", 0x10000, 0x5617d67f, BRF_GRA }, // 13 Sprites
- { "eg16.17c", 0x08000, 0x17e42633, BRF_GRA }, // 14
- { "eg11.16a", 0x10000, 0xba83e8d8, BRF_GRA }, // 15
- { "eg12.17a", 0x08000, 0xfea2a134, BRF_GRA }, // 16
- { "eg13.13c", 0x10000, 0xfd91e08e, BRF_GRA }, // 17
- { "eg14.14c", 0x08000, 0xe83c760a, BRF_GRA }, // 18
- { "eg09.13a", 0x10000, 0x601b7b23, BRF_GRA }, // 19
- { "eg10.14a", 0x08000, 0xeeee8a1a, BRF_GRA }, // 20
-
- { "eg08.2c", 0x10000, 0x92f2c916, BRF_SND }, // 21 Samples
-
- { "i8751", 0x01000, 0xc3f6bc70, BRF_OPT }, // 22 I8751
-};
-
-STD_ROM_PICK(Drgninja)
-STD_ROM_FN(Drgninja)
-
-static struct BurnRomInfo DrgninjabRomDesc[] = {
- { "n-12.d2", 0x10000, 0x5a70eb52, BRF_ESS | BRF_PRG }, // 0 68000 Program Code
- { "n-11.a2", 0x10000, 0x3887eb92, BRF_ESS | BRF_PRG }, // 1
- { "eg06.6c", 0x10000, 0x2b81faf7, BRF_ESS | BRF_PRG }, // 2
- { "eg03.6a", 0x10000, 0xc52c2e9d, BRF_ESS | BRF_PRG }, // 3
-
- { "eg07.8a", 0x08000, 0x001d2f51, BRF_ESS | BRF_PRG }, // 4 6502 Program
-
- { "eg25.15j", 0x08000, 0xdd557b19, BRF_GRA }, // 5 Characters
- { "eg26.16j", 0x08000, 0x5d75fc8f, BRF_GRA }, // 6
-
- { "eg18.14d", 0x10000, 0x05cfc3e5, BRF_GRA }, // 7 Tiles 1
- { "eg20.17d", 0x10000, 0xe11e988f, BRF_GRA }, // 8
- { "eg22.14f", 0x10000, 0xb893d880, BRF_GRA }, // 9
- { "eg24.17f", 0x10000, 0x6f226dda, BRF_GRA }, // 10
-
- { "eg30.9j", 0x10000, 0x2438e67e, BRF_GRA }, // 11 Tiles 2
- { "eg28.9f", 0x10000, 0x5c692ab3, BRF_GRA }, // 12
-
- { "eg15.16c", 0x10000, 0x5617d67f, BRF_GRA }, // 13 Sprites
- { "eg16.17c", 0x08000, 0x17e42633, BRF_GRA }, // 14
- { "eg11.16a", 0x10000, 0xba83e8d8, BRF_GRA }, // 15
- { "eg12.17a", 0x08000, 0xfea2a134, BRF_GRA }, // 16
- { "eg13.13c", 0x10000, 0xfd91e08e, BRF_GRA }, // 17
- { "eg14.14c", 0x08000, 0xe83c760a, BRF_GRA }, // 18
- { "eg09.13a", 0x10000, 0x601b7b23, BRF_GRA }, // 19
- { "eg10.14a", 0x08000, 0xeeee8a1a, BRF_GRA }, // 20
-
- { "eg08.2c", 0x10000, 0x92f2c916, BRF_SND }, // 21 Samples
-
- { "i8751", 0x01000, 0xc3f6bc70, BRF_OPT }, // 22 I8751
-};
-
-STD_ROM_PICK(Drgninjab)
-STD_ROM_FN(Drgninjab)
-
-// f205v id 932
-// f205v's page shows that this uses an MSM5205 instead of the MSM6295, the MSM5205 data ROM isn't dumped yet, but the MSM6295 ROM is still
-// present on the board? For now I'm using the original M6502 program and MSM6295, pending getting a dump of the MSM5205 data
-// this set should also use a M68705 apparently, no dump available though
-static struct BurnRomInfo Drgninjab2RomDesc[] = {
- { "a14.3e", 0x10000, 0xc4b9f4e7, BRF_ESS | BRF_PRG }, // 0 68000 Program Code
- { "a11.3b", 0x10000, 0xe4cc7c60, BRF_ESS | BRF_PRG }, // 1
- { "a12.2e", 0x10000, 0x2b81faf7, BRF_ESS | BRF_PRG }, // 2
- { "a9.2b", 0x10000, 0xc52c2e9d, BRF_ESS | BRF_PRG }, // 3
-
- { "a15.7b", 0x08000, 0x82007af2, BRF_ESS | BRF_PRG }, // 4 6502 Program (ADPCM sounds are wrong with this, see above, 1st half identical to orginal, 2nd half 99.225%)
-
- { "a22.9m", 0x08000, 0x6791bc20, BRF_GRA }, // 5 Characters
- { "a23.9n", 0x08000, 0x5d75fc8f, BRF_GRA }, // 6
-
- { "a25.10f", 0x10000, 0x05cfc3e5, BRF_GRA }, // 7 Tiles 1
- { "a27.10h", 0x10000, 0xe11e988f, BRF_GRA }, // 8
- { "a24.10e", 0x10000, 0xb893d880, BRF_GRA }, // 9
- { "a26.10g", 0x10000, 0x6f226dda, BRF_GRA }, // 10
-
- { "a21.9k", 0x08000, 0xb2e989fc, BRF_GRA }, // 11 Tiles 2
- { "a29.10k", 0x08000, 0x4bf80966, BRF_GRA }, // 12
- { "a20.9j", 0x08000, 0xe71c0793, BRF_GRA }, // 13
- { "a28.10j", 0x08000, 0x2d38032d, BRF_GRA }, // 14
-
- { "a6.4g", 0x10000, 0x5617d67f, BRF_GRA }, // 15 Sprites
- { "a2.4c", 0x08000, 0x17e42633, BRF_GRA }, // 16
- { "a8.5g", 0x10000, 0xba83e8d8, BRF_GRA }, // 17
- { "a4.5c", 0x08000, 0xfea2a134, BRF_GRA }, // 18
- { "a5.3g", 0x10000, 0xfd91e08e, BRF_GRA }, // 19
- { "a1.3c", 0x08000, 0xe83c760a, BRF_GRA }, // 20
- { "a7.4-5g", 0x10000, 0x601b7b23, BRF_GRA }, // 21
- { "a3.4-5c", 0x08000, 0xeeee8a1a, BRF_GRA }, // 22
-
- { "a30.10b", 0x10000, 0xf6806826, BRF_SND }, // 23 Samples
-
- { "mc68705r3p", 0x01000, 0x00000000, BRF_PRG | BRF_NODUMP }, // 24 I8751
-
- { "n82s129an.12c", 0x00100, 0x78994fdb, BRF_OPT },
- { "n82s131n.5q", 0x00200, 0x86e775f8, BRF_OPT },
- { "n82s129an.3p", 0x00100, 0x9f6aa3e5, BRF_OPT },
- { "n82s137n.8u", 0x00400, 0xa5cda23e, BRF_OPT },
- { "n82s129an.2q", 0x00100, 0xaf46d1ee, BRF_OPT },
-};
-
-STD_ROM_PICK(Drgninjab2)
-STD_ROM_FN(Drgninjab2)
-
-static struct BurnRomInfo HbarrelRomDesc[] = {
- { "hb04.bin", 0x10000, 0x4877b09e, BRF_ESS | BRF_PRG }, // 0 68000 Program Code
- { "hb01.bin", 0x10000, 0x8b41c219, BRF_ESS | BRF_PRG }, // 1
- { "hb05.bin", 0x10000, 0x2087d570, BRF_ESS | BRF_PRG }, // 2
- { "hb02.bin", 0x10000, 0x815536ae, BRF_ESS | BRF_PRG }, // 3
- { "hb06.bin", 0x10000, 0xda4e3fbc, BRF_ESS | BRF_PRG }, // 4
- { "hb03.bin", 0x10000, 0x7fed7c46, BRF_ESS | BRF_PRG }, // 5
-
- { "hb07.bin", 0x08000, 0xa127f0f7, BRF_ESS | BRF_PRG }, // 6 6502 Program
-
- { "hb25.bin", 0x10000, 0x8649762c, BRF_GRA }, // 7 Characters
- { "hb26.bin", 0x10000, 0xf8189bbd, BRF_GRA }, // 8
-
- { "hb18.bin", 0x10000, 0xef664373, BRF_GRA }, // 9 Tiles 1
- { "hb17.bin", 0x10000, 0xa4f186ac, BRF_GRA }, // 10
- { "hb20.bin", 0x10000, 0x2fc13be0, BRF_GRA }, // 11
- { "hb19.bin", 0x10000, 0xd6b47869, BRF_GRA }, // 12
- { "hb22.bin", 0x10000, 0x50d6a1ad, BRF_GRA }, // 13
- { "hb21.bin", 0x10000, 0xf01d75c5, BRF_GRA }, // 14
- { "hb24.bin", 0x10000, 0xae377361, BRF_GRA }, // 15
- { "hb23.bin", 0x10000, 0xbbdaf771, BRF_GRA }, // 16
-
- { "hb29.bin", 0x10000, 0x5514b296, BRF_GRA }, // 17 Tiles 2
- { "hb30.bin", 0x10000, 0x5855e8ef, BRF_GRA }, // 18
- { "hb27.bin", 0x10000, 0x99db7b9c, BRF_GRA }, // 19
- { "hb28.bin", 0x10000, 0x33ce2b1a, BRF_GRA }, // 20
-
- { "hb15.bin", 0x10000, 0x21816707, BRF_GRA }, // 21 Sprites
- { "hb16.bin", 0x10000, 0xa5684574, BRF_GRA }, // 22
- { "hb11.bin", 0x10000, 0x5c768315, BRF_GRA }, // 23
- { "hb12.bin", 0x10000, 0x8b64d7a4, BRF_GRA }, // 24
- { "hb13.bin", 0x10000, 0x56e3ed65, BRF_GRA }, // 25
- { "hb14.bin", 0x10000, 0xbedfe7f3, BRF_GRA }, // 26
- { "hb09.bin", 0x10000, 0x26240ea0, BRF_GRA }, // 27
- { "hb10.bin", 0x10000, 0x47d95447, BRF_GRA }, // 28
-
- { "hb08.bin", 0x10000, 0x645c5b68, BRF_SND }, // 29 Samples
-
- { "hb31.9a", 0x01000, 0x239d726f, BRF_PRG }, // 30 I8751
-};
-
-STD_ROM_PICK(Hbarrel)
-STD_ROM_FN(Hbarrel)
-
-static struct BurnRomInfo HbarrelwRomDesc[] = {
- { "hb_ec04.rom", 0x10000, 0xd01bc3db, BRF_ESS | BRF_PRG }, // 0 68000 Program Code
- { "hb_ec01.rom", 0x10000, 0x6756f8ae, BRF_ESS | BRF_PRG }, // 1
- { "hb05.bin", 0x10000, 0x2087d570, BRF_ESS | BRF_PRG }, // 2
- { "hb02.bin", 0x10000, 0x815536ae, BRF_ESS | BRF_PRG }, // 3
- { "hb_ec06.rom", 0x10000, 0x61ec20d8, BRF_ESS | BRF_PRG }, // 4
- { "hb_ec03.rom", 0x10000, 0x720c6b13, BRF_ESS | BRF_PRG }, // 5
-
- { "hb_ec07.rom", 0x08000, 0x16a5a1aa, BRF_ESS | BRF_PRG }, // 6 6502 Program
-
- { "hb_ec25.rom", 0x10000, 0x2e5732a2, BRF_GRA }, // 7 Characters
- { "hb_ec26.rom", 0x10000, 0x161a2c4d, BRF_GRA }, // 8
-
- { "hb18.bin", 0x10000, 0xef664373, BRF_GRA }, // 9 Tiles 1
- { "hb17.bin", 0x10000, 0xa4f186ac, BRF_GRA }, // 10
- { "hb20.bin", 0x10000, 0x2fc13be0, BRF_GRA }, // 11
- { "hb19.bin", 0x10000, 0xd6b47869, BRF_GRA }, // 12
- { "hb22.bin", 0x10000, 0x50d6a1ad, BRF_GRA }, // 13
- { "hb21.bin", 0x10000, 0xf01d75c5, BRF_GRA }, // 14
- { "hb24.bin", 0x10000, 0xae377361, BRF_GRA }, // 15
- { "hb23.bin", 0x10000, 0xbbdaf771, BRF_GRA }, // 16
-
- { "hb29.bin", 0x10000, 0x5514b296, BRF_GRA }, // 17 Tiles 2
- { "hb30.bin", 0x10000, 0x5855e8ef, BRF_GRA }, // 18
- { "hb27.bin", 0x10000, 0x99db7b9c, BRF_GRA }, // 19
- { "hb28.bin", 0x10000, 0x33ce2b1a, BRF_GRA }, // 20
-
- { "hb15.bin", 0x10000, 0x21816707, BRF_GRA }, // 21 Sprites
- { "hb16.bin", 0x10000, 0xa5684574, BRF_GRA }, // 22
- { "hb11.bin", 0x10000, 0x5c768315, BRF_GRA }, // 23
- { "hb12.bin", 0x10000, 0x8b64d7a4, BRF_GRA }, // 24
- { "hb13.bin", 0x10000, 0x56e3ed65, BRF_GRA }, // 25
- { "hb14.bin", 0x10000, 0xbedfe7f3, BRF_GRA }, // 26
- { "hb09.bin", 0x10000, 0x26240ea0, BRF_GRA }, // 27
- { "hb10.bin", 0x10000, 0x47d95447, BRF_GRA }, // 28
-
- { "hb_ec08.rom", 0x10000, 0x2159a609, BRF_SND }, // 29 Samples
-
- { "ec31.9a", 0x01000, 0xaa14a2ae, BRF_PRG }, // 30 I8751
-};
-
-STD_ROM_PICK(Hbarrelw)
-STD_ROM_FN(Hbarrelw)
-
-static struct BurnRomInfo HippodrmRomDesc[] = {
- { "ew02", 0x10000, 0xdf0d7dc6, BRF_ESS | BRF_PRG }, // 0 68000 Program Code
- { "ew01", 0x10000, 0xd5670aa7, BRF_ESS | BRF_PRG }, // 1
- { "ew05", 0x10000, 0xc76d65ec, BRF_ESS | BRF_PRG }, // 2
- { "ew00", 0x10000, 0xe9b427a6, BRF_ESS | BRF_PRG }, // 3
-
- { "ew04", 0x08000, 0x9871b98d, BRF_ESS | BRF_PRG }, // 4 6502 Program
-
- { "ew08", 0x10000, 0x53010534, BRF_ESS | BRF_PRG }, // 5 HuC6280 Program
-
- { "ew14", 0x10000, 0x71ca593d, BRF_GRA }, // 6 Characters
- { "ew13", 0x10000, 0x86be5fa7, BRF_GRA }, // 7
-
- { "ew19", 0x08000, 0x6b80d7a3, BRF_GRA }, // 8 Tiles 1
- { "ew18", 0x08000, 0x78d3d764, BRF_GRA }, // 9
- { "ew20", 0x08000, 0xce9f5de3, BRF_GRA }, // 10
- { "ew21", 0x08000, 0x487a7ba2, BRF_GRA }, // 11
-
- { "ew24", 0x08000, 0x4e1bc2a4, BRF_GRA }, // 12 Tiles 2
- { "ew25", 0x08000, 0x9eb47dfb, BRF_GRA }, // 13
- { "ew23", 0x08000, 0x9ecf479e, BRF_GRA }, // 14
- { "ew22", 0x08000, 0xe55669aa, BRF_GRA }, // 15
-
- { "ew15", 0x10000, 0x95423914, BRF_GRA }, // 16 Sprites
- { "ew16", 0x10000, 0x96233177, BRF_GRA }, // 17
- { "ew10", 0x10000, 0x4c25dfe8, BRF_GRA }, // 18
- { "ew11", 0x10000, 0xf2e007fc, BRF_GRA }, // 19
- { "ew06", 0x10000, 0xe4bb8199, BRF_GRA }, // 20
- { "ew07", 0x10000, 0x470b6989, BRF_GRA }, // 21
- { "ew17", 0x10000, 0x8c97c757, BRF_GRA }, // 22
- { "ew12", 0x10000, 0xa2d244bc, BRF_GRA }, // 23
-
- { "ew03", 0x10000, 0xb606924d, BRF_SND }, // 24 Samples
-};
-
-STD_ROM_PICK(Hippodrm)
-STD_ROM_FN(Hippodrm)
-
-static struct BurnRomInfo FfantasyRomDesc[] = {
- { "ex02-3.4b", 0x10000, 0xdf0d7dc6, BRF_ESS | BRF_PRG }, // 0 68000 Program Code
- { "ex01-3.3b", 0x10000, 0xc0fb4fe5, BRF_ESS | BRF_PRG }, // 1
- { "ex05-.4c", 0x10000, 0xc76d65ec, BRF_ESS | BRF_PRG }, // 2
- { "ex00-.1b", 0x10000, 0xe9b427a6, BRF_ESS | BRF_PRG }, // 3
-
- { "ex04-.1c", 0x08000, 0x9871b98d, BRF_ESS | BRF_PRG }, // 4 6502 Program
-
- { "ew08", 0x10000, 0x53010534, BRF_ESS | BRF_PRG }, // 5 HuC6280 Program
-
- { "ev14", 0x10000, 0x686f72c1, BRF_GRA }, // 6 Characters
- { "ev13", 0x10000, 0xb787dcc9, BRF_GRA }, // 7
-
- { "ew19", 0x08000, 0x6b80d7a3, BRF_GRA }, // 8 Tiles 1
- { "ew18", 0x08000, 0x78d3d764, BRF_GRA }, // 9
- { "ew20", 0x08000, 0xce9f5de3, BRF_GRA }, // 10
- { "ew21", 0x08000, 0x487a7ba2, BRF_GRA }, // 11
-
- { "ew24", 0x08000, 0x4e1bc2a4, BRF_GRA }, // 12 Tiles 2
- { "ew25", 0x08000, 0x9eb47dfb, BRF_GRA }, // 13
- { "ew23", 0x08000, 0x9ecf479e, BRF_GRA }, // 14
- { "ew22", 0x08000, 0xe55669aa, BRF_GRA }, // 15
-
- { "ev15", 0x10000, 0x1d80f797, BRF_GRA }, // 16 Sprites
- { "ew16", 0x10000, 0x96233177, BRF_GRA }, // 17
- { "ev10", 0x10000, 0xc4e7116b, BRF_GRA }, // 18
- { "ew11", 0x10000, 0xf2e007fc, BRF_GRA }, // 19
- { "ev06", 0x10000, 0x6c794f1a, BRF_GRA }, // 20
- { "ew07", 0x10000, 0x470b6989, BRF_GRA }, // 21
- { "ev17", 0x10000, 0x045509d4, BRF_GRA }, // 22
- { "ew12", 0x10000, 0xa2d244bc, BRF_GRA }, // 23
-
- { "ew03", 0x10000, 0xb606924d, BRF_SND }, // 24 Samples
-};
-
-STD_ROM_PICK(Ffantasy)
-STD_ROM_FN(Ffantasy)
-
-static struct BurnRomInfo FfantasyjRomDesc[] = {
- { "ff-02-2.bin", 0x10000, 0x29fc22a7, BRF_ESS | BRF_PRG }, // 0 68000 Program Code
- { "ff-01-2.bin", 0x10000, 0x9f617cb4, BRF_ESS | BRF_PRG }, // 1
- { "ew05", 0x10000, 0xc76d65ec, BRF_ESS | BRF_PRG }, // 2
- { "ew00", 0x10000, 0xe9b427a6, BRF_ESS | BRF_PRG }, // 3
-
- { "ew04", 0x08000, 0x9871b98d, BRF_ESS | BRF_PRG }, // 4 6502 Program
-
- { "ew08", 0x10000, 0x53010534, BRF_ESS | BRF_PRG }, // 5 HuC6280 Program
-
- { "ev14", 0x10000, 0x686f72c1, BRF_GRA }, // 6 Characters
- { "ev13", 0x10000, 0xb787dcc9, BRF_GRA }, // 7
-
- { "ew19", 0x08000, 0x6b80d7a3, BRF_GRA }, // 8 Tiles 1
- { "ew18", 0x08000, 0x78d3d764, BRF_GRA }, // 9
- { "ew20", 0x08000, 0xce9f5de3, BRF_GRA }, // 10
- { "ew21", 0x08000, 0x487a7ba2, BRF_GRA }, // 11
-
- { "ew24", 0x08000, 0x4e1bc2a4, BRF_GRA }, // 12 Tiles 2
- { "ew25", 0x08000, 0x9eb47dfb, BRF_GRA }, // 13
- { "ew23", 0x08000, 0x9ecf479e, BRF_GRA }, // 14
- { "ew22", 0x08000, 0xe55669aa, BRF_GRA }, // 15
-
- { "ev15", 0x10000, 0x1d80f797, BRF_GRA }, // 16 Sprites
- { "ew16", 0x10000, 0x96233177, BRF_GRA }, // 17
- { "ev10", 0x10000, 0xc4e7116b, BRF_GRA }, // 18
- { "ew11", 0x10000, 0xf2e007fc, BRF_GRA }, // 19
- { "ev06", 0x10000, 0x6c794f1a, BRF_GRA }, // 20
- { "ew07", 0x10000, 0x470b6989, BRF_GRA }, // 21
- { "ev17", 0x10000, 0x045509d4, BRF_GRA }, // 22
- { "ew12", 0x10000, 0xa2d244bc, BRF_GRA }, // 23
-
- { "ew03", 0x10000, 0xb606924d, BRF_SND }, // 24 Samples
-};
-
-STD_ROM_PICK(Ffantasyj)
-STD_ROM_FN(Ffantasyj)
-
-static struct BurnRomInfo FfantasyaRomDesc[] = {
- { "ev02", 0x10000, 0x797a7860, BRF_ESS | BRF_PRG }, // 0 68000 Program Code
- { "ev01", 0x10000, 0x0f17184d, BRF_ESS | BRF_PRG }, // 1
- { "ew05", 0x10000, 0xc76d65ec, BRF_ESS | BRF_PRG }, // 2
- { "ew00", 0x10000, 0xe9b427a6, BRF_ESS | BRF_PRG }, // 3
-
- { "ew04", 0x08000, 0x9871b98d, BRF_ESS | BRF_PRG }, // 4 6502 Program
-
- { "ew08", 0x10000, 0x53010534, BRF_ESS | BRF_PRG }, // 5 HuC6280 Program
-
- { "ev14", 0x10000, 0x686f72c1, BRF_GRA }, // 6 Characters
- { "ev13", 0x10000, 0xb787dcc9, BRF_GRA }, // 7
-
- { "ew19", 0x08000, 0x6b80d7a3, BRF_GRA }, // 8 Tiles 1
- { "ew18", 0x08000, 0x78d3d764, BRF_GRA }, // 9
- { "ew20", 0x08000, 0xce9f5de3, BRF_GRA }, // 10
- { "ew21", 0x08000, 0x487a7ba2, BRF_GRA }, // 11
-
- { "ew24", 0x08000, 0x4e1bc2a4, BRF_GRA }, // 12 Tiles 2
- { "ew25", 0x08000, 0x9eb47dfb, BRF_GRA }, // 13
- { "ew23", 0x08000, 0x9ecf479e, BRF_GRA }, // 14
- { "ew22", 0x08000, 0xe55669aa, BRF_GRA }, // 15
-
- { "ev15", 0x10000, 0x1d80f797, BRF_GRA }, // 16 Sprites
- { "ew16", 0x10000, 0x96233177, BRF_GRA }, // 17
- { "ev10", 0x10000, 0xc4e7116b, BRF_GRA }, // 18
- { "ew11", 0x10000, 0xf2e007fc, BRF_GRA }, // 19
- { "ev06", 0x10000, 0x6c794f1a, BRF_GRA }, // 20
- { "ew07", 0x10000, 0x470b6989, BRF_GRA }, // 21
- { "ev17", 0x10000, 0x045509d4, BRF_GRA }, // 22
- { "ew12", 0x10000, 0xa2d244bc, BRF_GRA }, // 23
-
- { "ew03", 0x10000, 0xb606924d, BRF_SND }, // 24 Samples
-};
-
-STD_ROM_PICK(Ffantasya)
-STD_ROM_FN(Ffantasya)
-
-static struct BurnRomInfo FfantasybRomDesc[] = {
- // DE-0297-3 PCB. All EX labels.
- { "ex02-2", 0x10000, 0x4c26cda6, BRF_ESS | BRF_PRG }, // 0 68000 Program Code
- { "ex01", 0x10000, 0xd2c4ab91, BRF_ESS | BRF_PRG }, // 1
- { "ex05", 0x10000, 0xc76d65ec, BRF_ESS | BRF_PRG }, // 2
- { "ex00", 0x10000, 0xe9b427a6, BRF_ESS | BRF_PRG }, // 3
-
- { "ex04", 0x08000, 0x9871b98d, BRF_ESS | BRF_PRG }, // 4 6502 Program
-
- { "ex08", 0x10000, 0x53010534, BRF_ESS | BRF_PRG }, // 5 HuC6280 Program
-
- { "ex14", 0x10000, 0x686f72c1, BRF_GRA }, // 6 Characters
- { "ex13", 0x10000, 0xb787dcc9, BRF_GRA }, // 7
-
- { "ex19", 0x08000, 0x6b80d7a3, BRF_GRA }, // 8 Tiles 1
- { "ex18", 0x08000, 0x78d3d764, BRF_GRA }, // 9
- { "ex20", 0x08000, 0xce9f5de3, BRF_GRA }, // 10
- { "ex21", 0x08000, 0x487a7ba2, BRF_GRA }, // 11
-
- { "ex24", 0x08000, 0x4e1bc2a4, BRF_GRA }, // 12 Tiles 2
- { "ex25", 0x08000, 0x9eb47dfb, BRF_GRA }, // 13
- { "ex23", 0x08000, 0x9ecf479e, BRF_GRA }, // 14
- { "ex22", 0x08000, 0xe55669aa, BRF_GRA }, // 15
-
- { "ex15", 0x10000, 0x95423914, BRF_GRA }, // 16 Sprites
- { "ex16", 0x10000, 0x96233177, BRF_GRA }, // 17
- { "ex10", 0x10000, 0x4c25dfe8, BRF_GRA }, // 18
- { "ex11", 0x10000, 0xf2e007fc, BRF_GRA }, // 19
- { "ex06", 0x10000, 0xe4bb8199, BRF_GRA }, // 20
- { "ex07", 0x10000, 0x470b6989, BRF_GRA }, // 21
- { "ex17", 0x10000, 0x8c97c757, BRF_GRA }, // 22
- { "ex12", 0x10000, 0xa2d244bc, BRF_GRA }, // 23
-
- { "ex03", 0x10000, 0xb606924d, BRF_SND }, // 24 Samples
-};
-
-STD_ROM_PICK(Ffantasyb)
-STD_ROM_FN(Ffantasyb)
-
-static struct BurnRomInfo MidresRomDesc[] = {
- { "fk_14.rom", 0x20000, 0xde7522df, BRF_ESS | BRF_PRG }, // 0 68000 Program Code
- { "fk_12.rom", 0x20000, 0x3494b8c9, BRF_ESS | BRF_PRG }, // 1
- { "fl15", 0x20000, 0x1328354e, BRF_ESS | BRF_PRG }, // 2
- { "fl13", 0x20000, 0xe3b3955e, BRF_ESS | BRF_PRG }, // 3
-
- { "fl16", 0x10000, 0x66360bdf, BRF_ESS | BRF_PRG }, // 4 HuC6280 Program
-
- { "fk_05.rom", 0x10000, 0x3cdb7453, BRF_GRA }, // 5 Characters
- { "fk_04.rom", 0x10000, 0x325ba20c, BRF_GRA }, // 6
-
- { "fl09", 0x20000, 0x907d5910, BRF_GRA }, // 7 Tiles 1
- { "fl08", 0x20000, 0xa936c03c, BRF_GRA }, // 8
- { "fl07", 0x20000, 0x2068c45c, BRF_GRA }, // 9
- { "fl06", 0x20000, 0xb7241ab9, BRF_GRA }, // 10
-
- { "fl11", 0x20000, 0xb86b73b4, BRF_GRA }, // 11 Tiles 2
- { "fl10", 0x20000, 0x92245b29, BRF_GRA }, // 12
-
- { "fl01", 0x20000, 0x2c8b35a7, BRF_GRA }, // 13 Sprites
- { "fl03", 0x20000, 0x1eefed3c, BRF_GRA }, // 14
- { "fl00", 0x20000, 0x756fb801, BRF_GRA }, // 15
- { "fl02", 0x20000, 0x54d2c120, BRF_GRA }, // 16
-
- { "fl17", 0x20000, 0x9029965d, BRF_SND }, // 17 Samples
-
- { "7114.prm", 0x00100, 0xeb539ffb, BRF_OPT}, // 18 PROMs
-
- { "pal16r4a-1.bin", 0x00104, 0xd28fb8e0, BRF_OPT}, // 19 PLDs
- { "pal16l8b-2.bin", 0x00104, 0xbcb591e3, BRF_OPT}, // 20
- { "pal16l8a-3.bin", 0x00104, 0xe12972ac, BRF_OPT}, // 21
- { "pal16l8a-4.bin", 0x00104, 0xc6437e49, BRF_OPT}, // 22
- { "pal16l8b-5.bin", 0x00104, 0xe9ee3a67, BRF_OPT}, // 23
- { "pal16l8a-6.bin", 0x00104, 0x23b17abe, BRF_OPT}, // 24
-};
-
-STD_ROM_PICK(Midres)
-STD_ROM_FN(Midres)
-
-static struct BurnRomInfo MidresuRomDesc[] = {
- { "fl14", 0x20000, 0x2f9507a2, BRF_ESS | BRF_PRG }, // 0 68000 Program Code
- { "fl12", 0x20000, 0x3815ad9f, BRF_ESS | BRF_PRG }, // 1
- { "fl15", 0x20000, 0x1328354e, BRF_ESS | BRF_PRG }, // 2
- { "fl13", 0x20000, 0xe3b3955e, BRF_ESS | BRF_PRG }, // 3
-
- { "fl16", 0x10000, 0x66360bdf, BRF_ESS | BRF_PRG }, // 4 HuC6280 Program
-
- { "fl05", 0x10000, 0xd75aba06, BRF_GRA }, // 5 Characters
- { "fl04", 0x10000, 0x8f5bbb79, BRF_GRA }, // 6
-
- { "fl09", 0x20000, 0x907d5910, BRF_GRA }, // 7 Tiles 1
- { "fl08", 0x20000, 0xa936c03c, BRF_GRA }, // 8
- { "fl07", 0x20000, 0x2068c45c, BRF_GRA }, // 9
- { "fl06", 0x20000, 0xb7241ab9, BRF_GRA }, // 10
-
- { "fl11", 0x20000, 0xb86b73b4, BRF_GRA }, // 11 Tiles 2
- { "fl10", 0x20000, 0x92245b29, BRF_GRA }, // 12
-
- { "fl01", 0x20000, 0x2c8b35a7, BRF_GRA }, // 13 Sprites
- { "fl03", 0x20000, 0x1eefed3c, BRF_GRA }, // 14
- { "fl00", 0x20000, 0x756fb801, BRF_GRA }, // 15
- { "fl02", 0x20000, 0x54d2c120, BRF_GRA }, // 16
-
- { "fl17", 0x20000, 0x9029965d, BRF_SND }, // 17 Samples
-
- { "7114.prm", 0x00100, 0xeb539ffb, BRF_OPT}, // 18 PROMs
-
- { "pal16r4a-1.bin", 0x00104, 0xd28fb8e0, BRF_OPT}, // 19 PLDs
- { "pal16l8b-2.bin", 0x00104, 0xbcb591e3, BRF_OPT}, // 20
- { "pal16l8a-3.bin", 0x00104, 0xe12972ac, BRF_OPT}, // 21
- { "pal16l8a-4.bin", 0x00104, 0xc6437e49, BRF_OPT}, // 22
- { "pal16l8b-5.bin", 0x00104, 0xe9ee3a67, BRF_OPT}, // 23
- { "pal16l8a-6.bin", 0x00104, 0x23b17abe, BRF_OPT}, // 24
-};
-
-STD_ROM_PICK(Midresu)
-STD_ROM_FN(Midresu)
-
-static struct BurnRomInfo MidresjRomDesc[] = {
- { "fh14", 0x20000, 0x6d632a51, BRF_ESS | BRF_PRG }, // 0 68000 Program Code
- { "fh12", 0x20000, 0x45143384, BRF_ESS | BRF_PRG }, // 1
- { "fl15", 0x20000, 0x1328354e, BRF_ESS | BRF_PRG }, // 2
- { "fl13", 0x20000, 0xe3b3955e, BRF_ESS | BRF_PRG }, // 3
-
- { "fh16", 0x10000, 0x00736f32, BRF_ESS | BRF_PRG }, // 4 HuC6280 Program
-
- { "fk_05.rom", 0x10000, 0x3cdb7453, BRF_GRA }, // 5 Characters
- { "fk_04.rom", 0x10000, 0x325ba20c, BRF_GRA }, // 6
-
- { "fl09", 0x20000, 0x907d5910, BRF_GRA }, // 7 Tiles 1
- { "fl08", 0x20000, 0xa936c03c, BRF_GRA }, // 8
- { "fl07", 0x20000, 0x2068c45c, BRF_GRA }, // 9
- { "fl06", 0x20000, 0xb7241ab9, BRF_GRA }, // 10
-
- { "fl11", 0x20000, 0xb86b73b4, BRF_GRA }, // 11 Tiles 2
- { "fl10", 0x20000, 0x92245b29, BRF_GRA }, // 12
-
- { "fl01", 0x20000, 0x2c8b35a7, BRF_GRA }, // 13 Sprites
- { "fl03", 0x20000, 0x1eefed3c, BRF_GRA }, // 14
- { "fl00", 0x20000, 0x756fb801, BRF_GRA }, // 15
- { "fl02", 0x20000, 0x54d2c120, BRF_GRA }, // 16
-
- { "fh17", 0x20000, 0xc7b0a24e, BRF_SND }, // 17 Samples
-
- { "7114.prm", 0x00100, 0xeb539ffb, BRF_OPT}, // 18 PROMs
-
- { "pal16r4a-1.bin", 0x00104, 0xd28fb8e0, BRF_OPT}, // 19 PLDs
- { "pal16l8b-2.bin", 0x00104, 0xbcb591e3, BRF_OPT}, // 20
- { "pal16l8a-3.bin", 0x00104, 0xe12972ac, BRF_OPT}, // 21
- { "pal16l8a-4.bin", 0x00104, 0xc6437e49, BRF_OPT}, // 22
- { "pal16l8b-5.bin", 0x00104, 0xe9ee3a67, BRF_OPT}, // 23
- { "pal16l8a-6.bin", 0x00104, 0x23b17abe, BRF_OPT}, // 24
-};
-
-STD_ROM_PICK(Midresj)
-STD_ROM_FN(Midresj)
-
-static struct BurnRomInfo RobocopRomDesc[] = {
- { "ep05-4.11c", 0x10000, 0x29c35379, BRF_ESS | BRF_PRG }, // 0 68000 Program Code
- { "ep01-4.11b", 0x10000, 0x77507c69, BRF_ESS | BRF_PRG }, // 1
- { "ep04-3", 0x10000, 0x39181778, BRF_ESS | BRF_PRG }, // 2
- { "ep00-3", 0x10000, 0xe128541f, BRF_ESS | BRF_PRG }, // 3
-
- { "ep03-3", 0x08000, 0x5b164b24, BRF_ESS | BRF_PRG }, // 4 6502 Program
-
- { "en_24_mb7124e.a2", 0x00200, 0xb8e2ca98, BRF_ESS | BRF_PRG }, // 5 HuC6280 Program
-
- { "ep23", 0x10000, 0xa77e4ab1, BRF_GRA }, // 6 Characters
- { "ep22", 0x10000, 0x9fbd6903, BRF_GRA }, // 7
-
- { "ep20", 0x10000, 0x1d8d38b8, BRF_GRA }, // 8 Tiles 1
- { "ep21", 0x10000, 0x187929b2, BRF_GRA }, // 9
- { "ep18", 0x10000, 0xb6580b5e, BRF_GRA }, // 10
- { "ep19", 0x10000, 0x9bad01c7, BRF_GRA }, // 11
-
- { "ep14", 0x08000, 0xca56ceda, BRF_GRA }, // 12 Tiles 2
- { "ep15", 0x08000, 0xa945269c, BRF_GRA }, // 13
- { "ep16", 0x08000, 0xe7fa4d58, BRF_GRA }, // 14
- { "ep17", 0x08000, 0x84aae89d, BRF_GRA }, // 15
-
- { "ep07", 0x10000, 0x495d75cf, BRF_GRA }, // 16 Sprites
- { "ep06", 0x08000, 0xa2ae32e2, BRF_GRA }, // 17
- { "ep11", 0x10000, 0x62fa425a, BRF_GRA }, // 18
- { "ep10", 0x08000, 0xcce3bd95, BRF_GRA }, // 19
- { "ep09", 0x10000, 0x11bed656, BRF_GRA }, // 20
- { "ep08", 0x08000, 0xc45c7b4c, BRF_GRA }, // 21
- { "ep13", 0x10000, 0x8fca9f28, BRF_GRA }, // 22
- { "ep12", 0x08000, 0x3cd1d0c3, BRF_GRA }, // 23
-
- { "ep02", 0x10000, 0x711ce46f, BRF_SND }, // 24 Samples
-
- { "mb7116e.12c", 0x00400, 0xc288a256, BRF_OPT}, // 25 PROMs
- { "mb7122e.17e", 0x00800, 0x64764ecf, BRF_OPT}, // 26
-};
-
-STD_ROM_PICK(Robocop)
-STD_ROM_FN(Robocop)
-
-static struct BurnRomInfo RobocopwRomDesc[] = {
- { "ep05-3", 0x10000, 0xba69bf84, BRF_ESS | BRF_PRG }, // 0 68000 Program Code
- { "ep01-3", 0x10000, 0x2a9f6e2c, BRF_ESS | BRF_PRG }, // 1
- { "ep04-3", 0x10000, 0x39181778, BRF_ESS | BRF_PRG }, // 2
- { "ep00-3", 0x10000, 0xe128541f, BRF_ESS | BRF_PRG }, // 3
-
- { "ep03-3", 0x08000, 0x5b164b24, BRF_ESS | BRF_PRG }, // 4 6502 Program
-
- { "en_24.a2", 0x00200, 0xb8e2ca98, BRF_ESS | BRF_PRG }, // 5 HuC6280 Program
-
- { "ep23", 0x10000, 0xa77e4ab1, BRF_GRA }, // 6 Characters
- { "ep22", 0x10000, 0x9fbd6903, BRF_GRA }, // 7
-
- { "ep20", 0x10000, 0x1d8d38b8, BRF_GRA }, // 8 Tiles 1
- { "ep21", 0x10000, 0x187929b2, BRF_GRA }, // 9
- { "ep18", 0x10000, 0xb6580b5e, BRF_GRA }, // 10
- { "ep19", 0x10000, 0x9bad01c7, BRF_GRA }, // 11
-
- { "ep14", 0x08000, 0xca56ceda, BRF_GRA }, // 12 Tiles 2
- { "ep15", 0x08000, 0xa945269c, BRF_GRA }, // 13
- { "ep16", 0x08000, 0xe7fa4d58, BRF_GRA }, // 14
- { "ep17", 0x08000, 0x84aae89d, BRF_GRA }, // 15
-
- { "ep07", 0x10000, 0x495d75cf, BRF_GRA }, // 16 Sprites
- { "ep06", 0x08000, 0xa2ae32e2, BRF_GRA }, // 17
- { "ep11", 0x10000, 0x62fa425a, BRF_GRA }, // 18
- { "ep10", 0x08000, 0xcce3bd95, BRF_GRA }, // 19
- { "ep09", 0x10000, 0x11bed656, BRF_GRA }, // 20
- { "ep08", 0x08000, 0xc45c7b4c, BRF_GRA }, // 21
- { "ep13", 0x10000, 0x8fca9f28, BRF_GRA }, // 22
- { "ep12", 0x08000, 0x3cd1d0c3, BRF_GRA }, // 23
-
- { "ep02", 0x10000, 0x711ce46f, BRF_SND }, // 24 Samples
-};
-
-STD_ROM_PICK(Robocopw)
-STD_ROM_FN(Robocopw)
-
-static struct BurnRomInfo RobocopjRomDesc[] = {
- { "em05-1.c11", 0x10000, 0x954ea8f4, BRF_ESS | BRF_PRG }, // 0 68000 Program Code
- { "em01-1.b12", 0x10000, 0x1b87b622, BRF_ESS | BRF_PRG }, // 1
- { "ep04-3", 0x10000, 0x39181778, BRF_ESS | BRF_PRG }, // 2
- { "ep00-3", 0x10000, 0xe128541f, BRF_ESS | BRF_PRG }, // 3
-
- { "ep03-3", 0x08000, 0x5b164b24, BRF_ESS | BRF_PRG }, // 4 6502 Program
-
- { "en_24.a2", 0x00200, 0xb8e2ca98, BRF_ESS | BRF_PRG }, // 5 HuC6280 Program
-
- { "ep23", 0x10000, 0xa77e4ab1, BRF_GRA }, // 6 Characters
- { "ep22", 0x10000, 0x9fbd6903, BRF_GRA }, // 7
-
- { "ep20", 0x10000, 0x1d8d38b8, BRF_GRA }, // 8 Tiles 1
- { "ep21", 0x10000, 0x187929b2, BRF_GRA }, // 9
- { "ep18", 0x10000, 0xb6580b5e, BRF_GRA }, // 10
- { "ep19", 0x10000, 0x9bad01c7, BRF_GRA }, // 11
-
- { "ep14", 0x08000, 0xca56ceda, BRF_GRA }, // 12 Tiles 2
- { "ep15", 0x08000, 0xa945269c, BRF_GRA }, // 13
- { "ep16", 0x08000, 0xe7fa4d58, BRF_GRA }, // 14
- { "ep17", 0x08000, 0x84aae89d, BRF_GRA }, // 15
-
- { "ep07", 0x10000, 0x495d75cf, BRF_GRA }, // 16 Sprites
- { "ep06", 0x08000, 0xa2ae32e2, BRF_GRA }, // 17
- { "ep11", 0x10000, 0x62fa425a, BRF_GRA }, // 18
- { "ep10", 0x08000, 0xcce3bd95, BRF_GRA }, // 19
- { "ep09", 0x10000, 0x11bed656, BRF_GRA }, // 20
- { "ep08", 0x08000, 0xc45c7b4c, BRF_GRA }, // 21
- { "ep13", 0x10000, 0x8fca9f28, BRF_GRA }, // 22
- { "ep12", 0x08000, 0x3cd1d0c3, BRF_GRA }, // 23
-
- { "ep02", 0x10000, 0x711ce46f, BRF_SND }, // 24 Samples
-};
-
-STD_ROM_PICK(Robocopj)
-STD_ROM_FN(Robocopj)
-
-static struct BurnRomInfo RobocopuRomDesc[] = {
- { "ep05-1", 0x10000, 0x8de5cb3d, BRF_ESS | BRF_PRG }, // 0 68000 Program Code
- { "ep01-1", 0x10000, 0xb3c6bc02, BRF_ESS | BRF_PRG }, // 1
- { "ep04", 0x10000, 0xc38b9d18, BRF_ESS | BRF_PRG }, // 2
- { "ep00", 0x10000, 0x374c91aa, BRF_ESS | BRF_PRG }, // 3
-
- { "ep03", 0x08000, 0x1089eab8, BRF_ESS | BRF_PRG }, // 4 6502 Program
-
- { "en_24.a2", 0x00200, 0xb8e2ca98, BRF_ESS | BRF_PRG }, // 5 HuC6280 Program
-
- { "ep23", 0x10000, 0xa77e4ab1, BRF_GRA }, // 6 Characters
- { "ep22", 0x10000, 0x9fbd6903, BRF_GRA }, // 7
-
- { "ep20", 0x10000, 0x1d8d38b8, BRF_GRA }, // 8 Tiles 1
- { "ep21", 0x10000, 0x187929b2, BRF_GRA }, // 9
- { "ep18", 0x10000, 0xb6580b5e, BRF_GRA }, // 10
- { "ep19", 0x10000, 0x9bad01c7, BRF_GRA }, // 11
-
- { "ep14", 0x08000, 0xca56ceda, BRF_GRA }, // 12 Tiles 2
- { "ep15", 0x08000, 0xa945269c, BRF_GRA }, // 13
- { "ep16", 0x08000, 0xe7fa4d58, BRF_GRA }, // 14
- { "ep17", 0x08000, 0x84aae89d, BRF_GRA }, // 15
-
- { "ep07", 0x10000, 0x495d75cf, BRF_GRA }, // 16 Sprites
- { "ep06", 0x08000, 0xa2ae32e2, BRF_GRA }, // 17
- { "ep11", 0x10000, 0x62fa425a, BRF_GRA }, // 18
- { "ep10", 0x08000, 0xcce3bd95, BRF_GRA }, // 19
- { "ep09", 0x10000, 0x11bed656, BRF_GRA }, // 20
- { "ep08", 0x08000, 0xc45c7b4c, BRF_GRA }, // 21
- { "ep13", 0x10000, 0x8fca9f28, BRF_GRA }, // 22
- { "ep12", 0x08000, 0x3cd1d0c3, BRF_GRA }, // 23
-
- { "ep02", 0x10000, 0x711ce46f, BRF_SND }, // 24 Samples
-};
-
-STD_ROM_PICK(Robocopu)
-STD_ROM_FN(Robocopu)
-
-static struct BurnRomInfo Robocopu0RomDesc[] = {
- { "ep05", 0x10000, 0xc465bdd8, BRF_ESS | BRF_PRG }, // 0 68000 Program Code
- { "ep01", 0x10000, 0x1352d36e, BRF_ESS | BRF_PRG }, // 1
- { "ep04", 0x10000, 0xc38b9d18, BRF_ESS | BRF_PRG }, // 2
- { "ep00", 0x10000, 0x374c91aa, BRF_ESS | BRF_PRG }, // 3
-
- { "ep03", 0x08000, 0x1089eab8, BRF_ESS | BRF_PRG }, // 4 6502 Program
-
- { "en_24.a2", 0x00200, 0xb8e2ca98, BRF_ESS | BRF_PRG }, // 5 HuC6280 Program
-
- { "ep23", 0x10000, 0xa77e4ab1, BRF_GRA }, // 6 Characters
- { "ep22", 0x10000, 0x9fbd6903, BRF_GRA }, // 7
-
- { "ep20", 0x10000, 0x1d8d38b8, BRF_GRA }, // 8 Tiles 1
- { "ep21", 0x10000, 0x187929b2, BRF_GRA }, // 9
- { "ep18", 0x10000, 0xb6580b5e, BRF_GRA }, // 10
- { "ep19", 0x10000, 0x9bad01c7, BRF_GRA }, // 11
-
- { "ep14", 0x08000, 0xca56ceda, BRF_GRA }, // 12 Tiles 2
- { "ep15", 0x08000, 0xa945269c, BRF_GRA }, // 13
- { "ep16", 0x08000, 0xe7fa4d58, BRF_GRA }, // 14
- { "ep17", 0x08000, 0x84aae89d, BRF_GRA }, // 15
-
- { "ep07", 0x10000, 0x495d75cf, BRF_GRA }, // 16 Sprites
- { "ep06", 0x08000, 0xa2ae32e2, BRF_GRA }, // 17
- { "ep11", 0x10000, 0x62fa425a, BRF_GRA }, // 18
- { "ep10", 0x08000, 0xcce3bd95, BRF_GRA }, // 19
- { "ep09", 0x10000, 0x11bed656, BRF_GRA }, // 20
- { "ep08", 0x08000, 0xc45c7b4c, BRF_GRA }, // 21
- { "ep13", 0x10000, 0x8fca9f28, BRF_GRA }, // 22
- { "ep12", 0x08000, 0x3cd1d0c3, BRF_GRA }, // 23
-
- { "ep02", 0x10000, 0x711ce46f, BRF_SND }, // 24 Samples
-};
-
-STD_ROM_PICK(Robocopu0)
-STD_ROM_FN(Robocopu0)
-
-static struct BurnRomInfo RobocopbRomDesc[] = {
- { "robop_05.rom", 0x10000, 0xbcef3e9b, BRF_ESS | BRF_PRG }, // 0 68000 Program Code
- { "robop_01.rom", 0x10000, 0xc9803685, BRF_ESS | BRF_PRG }, // 1
- { "robop_04.rom", 0x10000, 0x9d7b79e0, BRF_ESS | BRF_PRG }, // 2
- { "robop_00.rom", 0x10000, 0x80ba64ab, BRF_ESS | BRF_PRG }, // 3
-
- { "ep03-3", 0x08000, 0x5b164b24, BRF_ESS | BRF_PRG }, // 4 6502 Program
-
- { "ep23", 0x10000, 0xa77e4ab1, BRF_GRA }, // 5 Characters
- { "ep22", 0x10000, 0x9fbd6903, BRF_GRA }, // 6
-
- { "ep20", 0x10000, 0x1d8d38b8, BRF_GRA }, // 7 Tiles 1
- { "ep21", 0x10000, 0x187929b2, BRF_GRA }, // 8
- { "ep18", 0x10000, 0xb6580b5e, BRF_GRA }, // 9
- { "ep19", 0x10000, 0x9bad01c7, BRF_GRA }, // 10
-
- { "ep14", 0x08000, 0xca56ceda, BRF_GRA }, // 11 Tiles 2
- { "ep15", 0x08000, 0xa945269c, BRF_GRA }, // 12
- { "ep16", 0x08000, 0xe7fa4d58, BRF_GRA }, // 13
- { "ep17", 0x08000, 0x84aae89d, BRF_GRA }, // 14
-
- { "ep07", 0x10000, 0x495d75cf, BRF_GRA }, // 15 Sprites
- { "ep06", 0x08000, 0xa2ae32e2, BRF_GRA }, // 16
- { "ep11", 0x10000, 0x62fa425a, BRF_GRA }, // 17
- { "ep10", 0x08000, 0xcce3bd95, BRF_GRA }, // 18
- { "ep09", 0x10000, 0x11bed656, BRF_GRA }, // 19
- { "ep08", 0x08000, 0xc45c7b4c, BRF_GRA }, // 20
- { "ep13", 0x10000, 0x8fca9f28, BRF_GRA }, // 21
- { "ep12", 0x08000, 0x3cd1d0c3, BRF_GRA }, // 22
-
- { "ep02", 0x10000, 0x711ce46f, BRF_SND }, // 23 Samples
-};
-
-STD_ROM_PICK(Robocopb)
-STD_ROM_FN(Robocopb)
-
-static struct BurnRomInfo Robocopb2RomDesc[] = {
- { "s-9.e3", 0x10000, 0xbcef3e9b, BRF_ESS | BRF_PRG }, // 0 68000 Program Code
- { "s-11.c3", 0x10000, 0xc9803685, BRF_ESS | BRF_PRG }, // 1
- { "s-10.e2", 0x10000, 0x9d7b79e0, BRF_ESS | BRF_PRG }, // 2
- { "s-12.c2", 0x10000, 0x631301c1, BRF_ESS | BRF_PRG }, // 3
-
- { "ep03-3", 0x08000, 0x5b164b24, BRF_ESS | BRF_PRG }, // 4 6502 Program
-
- { "ep23", 0x10000, 0xa77e4ab1, BRF_GRA }, // 5 Characters
- { "ep22", 0x10000, 0x9fbd6903, BRF_GRA }, // 6
-
- { "ep20", 0x10000, 0x1d8d38b8, BRF_GRA }, // 7 Tiles 1
- { "ep21", 0x10000, 0x187929b2, BRF_GRA }, // 8
- { "ep18", 0x10000, 0xb6580b5e, BRF_GRA }, // 9
- { "ep19", 0x10000, 0x9bad01c7, BRF_GRA }, // 10
-
- { "ep14", 0x08000, 0xca56ceda, BRF_GRA }, // 11 Tiles 2
- { "ep15", 0x08000, 0xa945269c, BRF_GRA }, // 12
- { "ep16", 0x08000, 0xe7fa4d58, BRF_GRA }, // 13
- { "ep17", 0x08000, 0x84aae89d, BRF_GRA }, // 14
-
- { "ep07", 0x10000, 0x495d75cf, BRF_GRA }, // 15 Sprites
- { "ep06", 0x08000, 0xa2ae32e2, BRF_GRA }, // 16
- { "ep11", 0x10000, 0x62fa425a, BRF_GRA }, // 17
- { "ep10", 0x08000, 0xcce3bd95, BRF_GRA }, // 18
- { "ep09", 0x10000, 0x11bed656, BRF_GRA }, // 19
- { "ep08", 0x08000, 0xc45c7b4c, BRF_GRA }, // 20
- { "ep13", 0x10000, 0x8fca9f28, BRF_GRA }, // 21
- { "ep12", 0x08000, 0x3cd1d0c3, BRF_GRA }, // 22
-
- { "ep02", 0x10000, 0x711ce46f, BRF_SND }, // 23 Samples
-};
-
-STD_ROM_PICK(Robocopb2)
-STD_ROM_FN(Robocopb2)
-
-static struct BurnRomInfo SecretagRomDesc[] = {
- { "fb14-3.17l", 0x10000, 0x9be6ac90, BRF_ESS | BRF_PRG }, // 0 68000 Program Code
- { "fb12-3.9l", 0x10000, 0x28904b6b, BRF_ESS | BRF_PRG }, // 1
- { "fb15.19l", 0x10000, 0x106bb26c, BRF_ESS | BRF_PRG }, // 2
- { "fb13.11l", 0x10000, 0x90523413, BRF_ESS | BRF_PRG }, // 3
-
- { "fb10.5h", 0x10000, 0xdfd2ff25, BRF_ESS | BRF_PRG }, // 4 HuC6280 Program
-
- { "fb05.11a", 0x08000, 0x09802924, BRF_GRA }, // 5 Characters
- { "fb04.9a", 0x08000, 0xec25b895, BRF_GRA }, // 6
-
- { "fb07.17a", 0x10000, 0xe932268b, BRF_GRA }, // 7 Tiles 1
- { "fb06.15a", 0x10000, 0xc4dd38c0, BRF_GRA }, // 8
-
- { "fb09.22a", 0x20000, 0x1395e9be, BRF_GRA }, // 9 Tiles 2
- { "fb08.21a", 0x20000, 0x4d7464db, BRF_GRA }, // 10
-
- { "fb01.4a", 0x20000, 0x99b0cd92, BRF_GRA }, // 11 Sprites
- { "fb03.7a", 0x20000, 0x0e7ea74d, BRF_GRA }, // 12
- { "fb00.2a", 0x20000, 0xf7df3fd7, BRF_GRA }, // 13
- { "fb02.5a", 0x20000, 0x84e8da9d, BRF_GRA }, // 14
-
- { "fa11.11k", 0x20000, 0x4e547bad, BRF_SND }, // 15 Samples
-
- { "mb7114h.21k", 0x00100, 0xad26e8d4, BRF_OPT}, // 16 PROMs
-
- { "pal16l8b-ta-1.15k", 0x00104, 0x79a87527, BRF_OPT}, // 17 PLDs
- { "pal16r4a-ta-2.16k", 0x00104, 0xeca31311, BRF_OPT}, // 18
- { "pal16l8a-ta-3.17k", 0x00104, 0x6c324919, BRF_OPT}, // 19
- { "pal16l8a-ta-4.11m", 0x00104, 0x116177fa, BRF_OPT}, // 20
-};
-
-STD_ROM_PICK(Secretag)
-STD_ROM_FN(Secretag)
-
-static struct BurnRomInfo SecretagjRomDesc[] = {
- { "fc14-2.17l", 0x10000, 0xe4cc767d, BRF_ESS | BRF_PRG }, // 0 68000 Program Code
- { "fc12-2.9l", 0x10000, 0x8a589c90, BRF_ESS | BRF_PRG }, // 1
- { "fc15.19l", 0x10000, 0x106bb26c, BRF_ESS | BRF_PRG }, // 2
- { "fc13.11l", 0x10000, 0x90523413, BRF_ESS | BRF_PRG }, // 3
-
- { "fc10.5h", 0x10000, 0xdfd2ff25, BRF_ESS | BRF_PRG }, // 4 HuC6280 Program
-
- { "fc05.11a", 0x08000, 0x09802924, BRF_GRA }, // 5 Characters
- { "fc04.9a", 0x08000, 0xec25b895, BRF_GRA }, // 6
-
- { "fc07.17a", 0x10000, 0xe932268b, BRF_GRA }, // 7 Tiles 1
- { "fc06.15a", 0x10000, 0xc4dd38c0, BRF_GRA }, // 8
-
- { "fc09.22a", 0x20000, 0x1395e9be, BRF_GRA }, // 9 Tiles 2
- { "fc08.21a", 0x20000, 0x4d7464db, BRF_GRA }, // 10
-
- { "fc01.4a", 0x20000, 0x99b0cd92, BRF_GRA }, // 11 Sprites
- { "fc03.7a", 0x20000, 0x0e7ea74d, BRF_GRA }, // 12
- { "fc00.2a", 0x20000, 0xf7df3fd7, BRF_GRA }, // 13
- { "fc02.5a", 0x20000, 0x84e8da9d, BRF_GRA }, // 14
-
- { "fc11.11k", 0x20000, 0x4e547bad, BRF_SND }, // 15 Samples
-
- { "mb7114h.21k", 0x00100, 0xad26e8d4, BRF_OPT}, // 16 PROMs
-
- { "pal16l8b-ta-1.15k", 0x00104, 0x79a87527, BRF_OPT}, // 17 PLDs
- { "pal16r4a-ta-2.16k", 0x00104, 0xeca31311, BRF_OPT}, // 18
- { "pal16l8a-ta-3.17k", 0x00104, 0x6c324919, BRF_OPT}, // 19
- { "pal16l8a-ta-4.11m", 0x00104, 0x116177fa, BRF_OPT}, // 20
-};
-
-STD_ROM_PICK(Secretagj)
-STD_ROM_FN(Secretagj)
-
-static struct BurnRomInfo SlyspyRomDesc[] = {
- { "fa14-4.17l", 0x10000, 0x60f16e31, BRF_ESS | BRF_PRG }, // 0 68000 Program Code
- { "fa12-4.9l", 0x10000, 0xb9b9fdcf, BRF_ESS | BRF_PRG }, // 1
- { "fa15.19l", 0x10000, 0x04a79266, BRF_ESS | BRF_PRG }, // 2
- { "fa13.11l", 0x10000, 0x641cc4b3, BRF_ESS | BRF_PRG }, // 3
-
- { "fa10.5h", 0x10000, 0xdfd2ff25, BRF_ESS | BRF_PRG }, // 4 HuC6280 Program
-
- { "fa05.11a", 0x08000, 0x09802924, BRF_GRA }, // 5 Characters
- { "fa04.9a", 0x08000, 0xec25b895, BRF_GRA }, // 6
-
- { "fa07.17a", 0x10000, 0xe932268b, BRF_GRA }, // 7 Tiles 1
- { "fa06.15a", 0x10000, 0xc4dd38c0, BRF_GRA }, // 8
-
- { "fa09.22a", 0x20000, 0x1395e9be, BRF_GRA }, // 9 Tiles 2
- { "fa08.21a", 0x20000, 0x4d7464db, BRF_GRA }, // 10
-
- { "fa01.4a", 0x20000, 0x99b0cd92, BRF_GRA }, // 11 Sprites
- { "fa03.7a", 0x20000, 0x0e7ea74d, BRF_GRA }, // 12
- { "fa00.2a", 0x20000, 0xf7df3fd7, BRF_GRA }, // 13
- { "fa02.5a", 0x20000, 0x84e8da9d, BRF_GRA }, // 14
-
- { "fa11.11k", 0x20000, 0x4e547bad, BRF_SND }, // 15 Samples
-
- { "mb7114h.21k", 0x00100, 0xad26e8d4, BRF_OPT}, // 16 PROMs
-
- { "pal16l8b-ta-1.15k", 0x00104, 0x79a87527, BRF_OPT}, // 17 PLDs
- { "pal16r4a-ta-2.16k", 0x00104, 0xeca31311, BRF_OPT}, // 18
- { "pal16l8a-ta-3.17k", 0x00104, 0x6c324919, BRF_OPT}, // 19
- { "pal16l8a-ta-4.11m", 0x00104, 0x116177fa, BRF_OPT}, // 20
-};
-
-STD_ROM_PICK(Slyspy)
-STD_ROM_FN(Slyspy)
-
-static struct BurnRomInfo Slyspy2RomDesc[] = {
- { "fa14-2.17l", 0x10000, 0x0e431e39, BRF_ESS | BRF_PRG }, // 0 68000 Program Code
- { "fa12-2.9l", 0x10000, 0x1b534294, BRF_ESS | BRF_PRG }, // 1
- { "fa15.19l", 0x10000, 0x04a79266, BRF_ESS | BRF_PRG }, // 2
- { "fa13.11l", 0x10000, 0x641cc4b3, BRF_ESS | BRF_PRG }, // 3
-
- { "fa10.5h", 0x10000, 0xdfd2ff25, BRF_ESS | BRF_PRG }, // 4 HuC6280 Program
-
- { "fa05.11a", 0x08000, 0x09802924, BRF_GRA }, // 5 Characters
- { "fa04.9a", 0x08000, 0xec25b895, BRF_GRA }, // 6
-
- { "fa07.17a", 0x10000, 0xe932268b, BRF_GRA }, // 7 Tiles 1
- { "fa06.15a", 0x10000, 0xc4dd38c0, BRF_GRA }, // 8
-
- { "fa09.22a", 0x20000, 0x1395e9be, BRF_GRA }, // 9 Tiles 2
- { "fa08.21a", 0x20000, 0x4d7464db, BRF_GRA }, // 10
-
- { "fa01.4a", 0x20000, 0x99b0cd92, BRF_GRA }, // 11 Sprites
- { "fa03.7a", 0x20000, 0x0e7ea74d, BRF_GRA }, // 12
- { "fa00.2a", 0x20000, 0xf7df3fd7, BRF_GRA }, // 13
- { "fa02.5a", 0x20000, 0x84e8da9d, BRF_GRA }, // 14
-
- { "fa11.11k", 0x20000, 0x4e547bad, BRF_SND }, // 15 Samples
-
- { "mb7114h.21k", 0x00100, 0xad26e8d4, BRF_OPT}, // 16 PROMs
-
- { "pal16l8b-ta-1.15k", 0x00104, 0x79a87527, BRF_OPT}, // 17 PLDs
- { "pal16r4a-ta-2.16k", 0x00104, 0xeca31311, BRF_OPT}, // 18
- { "pal16l8a-ta-3.17k", 0x00104, 0x6c324919, BRF_OPT}, // 19
- { "pal16l8a-ta-4.11m", 0x00104, 0x116177fa, BRF_OPT}, // 20
-};
-
-STD_ROM_PICK(Slyspy2)
-STD_ROM_FN(Slyspy2)
-
-static struct BurnRomInfo Slyspy3RomDesc[] = {
- { "fa14-3.17l", 0x10000, 0x54353a84, BRF_ESS | BRF_PRG }, // 0 68000 Program Code
- { "fa12-2.9l", 0x10000, 0x1b534294, BRF_ESS | BRF_PRG }, // 1
- { "fa15.19l", 0x10000, 0x04a79266, BRF_ESS | BRF_PRG }, // 2
- { "fa13.11l", 0x10000, 0x641cc4b3, BRF_ESS | BRF_PRG }, // 3
-
- { "fa10.5h", 0x10000, 0xdfd2ff25, BRF_ESS | BRF_PRG }, // 4 HuC6280 Program
-
- { "fa05.11a", 0x08000, 0x09802924, BRF_GRA }, // 5 Characters
- { "fa04.9a", 0x08000, 0xec25b895, BRF_GRA }, // 6
-
- { "fa07.17a", 0x10000, 0xe932268b, BRF_GRA }, // 7 Tiles 1
- { "fa06.15a", 0x10000, 0xc4dd38c0, BRF_GRA }, // 8
-
- { "fa09.22a", 0x20000, 0x1395e9be, BRF_GRA }, // 9 Tiles 2
- { "fa08.21a", 0x20000, 0x4d7464db, BRF_GRA }, // 10
-
- { "fa01.4a", 0x20000, 0x99b0cd92, BRF_GRA }, // 11 Sprites
- { "fa03.7a", 0x20000, 0x0e7ea74d, BRF_GRA }, // 12
- { "fa00.2a", 0x20000, 0xf7df3fd7, BRF_GRA }, // 13
- { "fa02.5a", 0x20000, 0x84e8da9d, BRF_GRA }, // 14
-
- { "fa11.11k", 0x20000, 0x4e547bad, BRF_SND }, // 15 Samples
-
- { "mb7114h.21k", 0x00100, 0xad26e8d4, BRF_OPT}, // 16 PROMs
-
- { "pal16l8b-ta-1.15k", 0x00104, 0x79a87527, BRF_OPT}, // 17 PLDs
- { "pal16r4a-ta-2.16k", 0x00104, 0xeca31311, BRF_OPT}, // 18
- { "pal16l8a-ta-3.17k", 0x00104, 0x6c324919, BRF_OPT}, // 19
- { "pal16l8a-ta-4.11m", 0x00104, 0x116177fa, BRF_OPT}, // 20
-};
-
-STD_ROM_PICK(Slyspy3)
-STD_ROM_FN(Slyspy3)
-
-static INT32 MemIndex()
-{
- UINT8 *Next; Next = Mem;
-
- Drv68KRom = Next; Next += 0x80000;
- DrvM6502Rom = Next; Next += 0x08000;
- DrvH6280Rom = Next; Next += 0x10000;
- DrvMCURom = Next; Next += 0x01000;
- MSM6295ROM = Next; Next += 0x40000;
-
- RamStart = Next;
-
- Drv68KRam = Next; Next += 0x05800;
- DrvM6502Ram = Next; Next += 0x00600;
- DrvH6280Ram = Next; Next += 0x02000;
- DrvCharRam = Next; Next += 0x04000;
- DrvCharCtrl0Ram = Next; Next += 0x00008;
- DrvCharCtrl1Ram = Next; Next += 0x00008;
- DrvCharColScrollRam = Next; Next += 0x00100;
- DrvCharRowScrollRam = Next; Next += 0x00400;
- DrvVideo1Ram = Next; Next += 0x04000;
- DrvVideo1Ctrl0Ram = Next; Next += 0x00008;
- DrvVideo1Ctrl1Ram = Next; Next += 0x00008;
- DrvVideo1ColScrollRam = Next; Next += 0x00100;
- DrvVideo1RowScrollRam = Next; Next += 0x00400;
- DrvVideo2Ram = Next; Next += 0x04000;
- DrvVideo2Ctrl0Ram = Next; Next += 0x00008;
- DrvVideo2Ctrl1Ram = Next; Next += 0x00008;
- DrvVideo2ColScrollRam = Next; Next += 0x00100;
- DrvVideo2RowScrollRam = Next; Next += 0x00400;
- DrvPaletteRam = Next; Next += 0x00800;
- DrvPalette2Ram = Next; Next += 0x00800;
- DrvSpriteRam = Next; Next += 0x00800;
- DrvSpriteDMABufferRam = Next; Next += 0x00800;
- DrvSharedRam = Next; Next += 0x02000;
-
- RamEnd = Next;
-
- DrvChars = Next; Next += 0x1000 * 8 * 8;
- DrvTiles1 = Next; Next += 0x1000 * 16 * 16;
- DrvTiles2 = Next; Next += 0x0800 * 16 * 16;
- DrvSprites = Next; Next += 0x1000 * 16 * 16;
- DrvPalette = (UINT32*)Next; Next += 0x00400 * sizeof(UINT32);
-
- pCharLayerDraw = (UINT16*)Next; Next += (1024 * 256 * sizeof(UINT16));
- pTile1LayerDraw = (UINT16*)Next; Next += (1024 * 256 * sizeof(UINT16));
- pTile2LayerDraw = (UINT16*)Next; Next += (1024 * 256 * sizeof(UINT16));
-
- MemEnd = Next;
-
- return 0;
-}
-
-static void RotateReset(); // forward -dink
-static void DrvMCUReset(); // forward
-static void DrvMCUSync(); // ""
-
-static INT32 DrvDoReset()
-{
- SekOpen(0);
- SekReset();
- SekClose();
-
- BurnYM3812Reset();
- BurnYM2203Reset();
- MSM6295Reset(0);
-
- i8751RetVal = 0;
- DrvVBlank = 0;
- DrvSoundLatch = 0;
- DrvFlipScreen = 0;
- DrvPriority = 0;
- memset(DrvTileRamBank, 0, 3);
-
- RotateReset();
-
- HiscoreReset();
-
- return 0;
-}
-
-static INT32 BaddudesDoReset()
-{
- M6502Open(0); // prevent crash while resetting the sound cores in DrvDoReset(); w/Bird Try
- INT32 nRet = DrvDoReset();
- M6502Reset();
- M6502Close();
-
- if (realMCU)
- DrvMCUReset();
-
- return nRet;
-}
-
-static INT32 RobocopDoReset()
-{
- INT32 nRet = BaddudesDoReset();
-
- h6280Open(0);
- h6280Reset();
- h6280Close();
-
- return nRet;
-}
-
-static INT32 SlyspyDoReset()
-{
- INT32 nRet = DrvDoReset();
-
- h6280Open(0);
- h6280Reset();
- h6280Close();
-
- return nRet;
-}
-
-// I8751 Simulations
-
-static void BaddudesI8751Write(UINT16 Data)
-{
- i8751RetVal = 0;
-
- switch (Data & 0xffff) {
- case 0x714: i8751RetVal = 0x700; break;
- case 0x73b: i8751RetVal = 0x701; break;
- case 0x72c: i8751RetVal = 0x702; break;
- case 0x73f: i8751RetVal = 0x703; break;
- case 0x755: i8751RetVal = 0x704; break;
- case 0x722: i8751RetVal = 0x705; break;
- case 0x72b: i8751RetVal = 0x706; break;
- case 0x724: i8751RetVal = 0x707; break;
- case 0x728: i8751RetVal = 0x708; break;
- case 0x735: i8751RetVal = 0x709; break;
- case 0x71d: i8751RetVal = 0x70a; break;
- case 0x721: i8751RetVal = 0x70b; break;
- case 0x73e: i8751RetVal = 0x70c; break;
- case 0x761: i8751RetVal = 0x70d; break;
- case 0x753: i8751RetVal = 0x70e; break;
- case 0x75b: i8751RetVal = 0x70f; break;
- }
-}
-
-static void BirdtryI8751Write(UINT16 Data)
-{
- static INT32 pwr, hgt;
-
- i8751RetVal = 0;
-
- switch(Data&0xffff) {
- /*"Sprite control"*/
- case 0x22a: i8751RetVal = 0x200; break;
-
- /* Gives an O.B. otherwise (it must be > 0xb0 )*/
- case 0x3c7: i8751RetVal = 0x7ff; break;
-
- /*Enables shot checks*/
- case 0x33c: i8751RetVal = 0x200; break;
-
- /*Used on the title screen only(???)*/
- case 0x31e: i8751RetVal = 0x200; break;
-
-/* 0x100-0x10d values are for club power meters(1W=0x100<<-->>PT=0x10d). *
- * Returned value to i8751 doesn't matter,but send the result to 0x481. *
- * Lower the value,stronger is the power. */
- case 0x100: pwr = 0x30; break; /*1W*/
- case 0x101: pwr = 0x34; break; /*3W*/
- case 0x102: pwr = 0x38; break; /*4W*/
- case 0x103: pwr = 0x3c; break; /*1I*/
- case 0x104: pwr = 0x40; break; /*3I*/
- case 0x105: pwr = 0x44; break; /*4I*/
- case 0x106: pwr = 0x48; break; /*5I*/
- case 0x107: pwr = 0x4c; break; /*6I*/
- case 0x108: pwr = 0x50; break; /*7I*/
- case 0x109: pwr = 0x54; break; /*8I*/
- case 0x10a: pwr = 0x58; break; /*9I*/
- case 0x10b: pwr = 0x5c; break; /*PW*/
- case 0x10c: pwr = 0x60; break; /*SW*/
- case 0x10d: pwr = 0x80; break; /*PT*/
- case 0x481: i8751RetVal = pwr; break; /*Power meter*/
-
-/* 0x200-0x20f values are for shot height(STRONG=0x200<<-->>WEAK=0x20f). *
- * Returned value to i8751 doesn't matter,but send the result to 0x534. *
- * Higher the value,stronger is the height. */
- case 0x200: hgt = 0x5c0; break; /*H*/
- case 0x201: hgt = 0x580; break; /*|*/
- case 0x202: hgt = 0x540; break; /*|*/
- case 0x203: hgt = 0x500; break; /*|*/
- case 0x204: hgt = 0x4c0; break; /*|*/
- case 0x205: hgt = 0x480; break; /*|*/
- case 0x206: hgt = 0x440; break; /*|*/
- case 0x207: hgt = 0x400; break; /*M*/
- case 0x208: hgt = 0x3c0; break; /*|*/
- case 0x209: hgt = 0x380; break; /*|*/
- case 0x20a: hgt = 0x340; break; /*|*/
- case 0x20b: hgt = 0x300; break; /*|*/
- case 0x20c: hgt = 0x2c0; break; /*|*/
- case 0x20d: hgt = 0x280; break; /*|*/
- case 0x20e: hgt = 0x240; break; /*|*/
- case 0x20f: hgt = 0x200; break; /*L*/
- case 0x534: i8751RetVal = hgt; break; /*Shot height*/
-
- /*At the ending screen(???)*/
- //case 0x3b4: i8751_return = 0; break;
-
- /*These are activated after a shot (???)*/
- case 0x6ca: i8751RetVal = 0xff; break;
- case 0x7ff: i8751RetVal = 0x200; break;
- //default: logerror("%04x: warning - write unknown command %02x to 8571\n",activecpu_get_pc(),data);
- }
-}
-
-// Video write functions
-
-static void deco_bac06_pf_control_0_w(INT32 Layer, UINT16 *Control0, INT32 Offset, UINT16 Data, UINT16 Mask)
-{
- Offset &= 0x03;
-
- Control0[Offset] &= Mask;
- Control0[Offset] += Data;
-
- if (Offset == 2) {
- DrvTileRamBank[Layer] = Control0[Offset] & 0x01;
- }
-}
-
-static void deco_bac06_pf_control_1_w(UINT16 *Control1, INT32 Offset, UINT16 Data, UINT16 Mask)
-{
- Offset &= 0x07;
-
- Control1[Offset] &= Mask;
- Control1[Offset] += Data;
-}
-
-static UINT16 deco_bac06_pf_data_r(INT32 Layer, UINT16 *RAM, INT32 Offset, UINT16 Mask)
-{
- if (DrvTileRamBank[Layer] & 0x01) Offset += 0x1000;
-
- return RAM[Offset] & Mask;
-}
-
-static void deco_bac06_pf_data_w(INT32 Layer, UINT16 *RAM, INT32 Offset, UINT16 Data, UINT16 Mask)
-{
- if (DrvTileRamBank[Layer] & 0x01) Offset += 0x1000;
-
- RAM[Offset] &= Mask;
- RAM[Offset] += Data;
-}
-
-// Rotation-handler code
-
-static void RotateReset() {
- for (INT32 playernum = 0; playernum < 2; playernum++) {
- nRotate[playernum] = 0; // start out pointing straight up (0=up)
- if (strstr(BurnDrvGetTextA(DRV_NAME), "midres"))
- nRotate[0] = nRotate[1] = 2; // start out pointing straight in Midnight Resistance (2=right)
- nRotateTarget[playernum] = -1;
- nRotateTime[playernum] = 0;
- nRotateHoldInput[0] = nRotateHoldInput[1] = 0;
- }
-}
-
-static UINT32 RotationTimer(void) {
- return nCurrentFrame;
-}
-
-static void RotateRight(INT32 *v) {
- (*v)--;
- if (*v < 0) *v = 11;
-}
-
-static void RotateLeft(INT32 *v) {
- (*v)++;
- if (*v > 11) *v = 0;
-}
-
-static UINT8 Joy2Rotate(UINT8 *joy) { // ugly code, but the effect is awesome. -dink
- if (joy[0] && joy[2]) return 7; // up left
- if (joy[0] && joy[3]) return 1; // up right
-
- if (joy[1] && joy[2]) return 5; // down left
- if (joy[1] && joy[3]) return 3; // down right
-
- if (joy[0]) return 0; // up
- if (joy[1]) return 4; // down
- if (joy[2]) return 6; // left
- if (joy[3]) return 2; // right
-
- return 0xff;
-}
-
-static int dialRotation(INT32 playernum) {
- // p1 = 0, p2 = 1
- UINT8 player[2] = { 0, 0 };
- static UINT8 lastplayer[2][2] = { { 0, 0 }, { 0, 0 } };
-
- if ((playernum != 0) && (playernum != 1)) {
- bprintf(PRINT_NORMAL, _T("Strange Rotation address => %06X\n"), playernum);
- return 0;
- }
- if (playernum == 0) {
- player[0] = DrvFakeInput[0]; player[1] = DrvFakeInput[1];
- }
- if (playernum == 1) {
- player[0] = DrvFakeInput[2]; player[1] = DrvFakeInput[3];
- }
-
- if (player[0] && (player[0] != lastplayer[playernum][0] || (RotationTimer() > nRotateTime[playernum]+0xf))) {
- RotateLeft(&nRotate[playernum]);
- //bprintf(PRINT_NORMAL, _T("Player %d Rotate Left => %06X\n"), playernum+1, nRotate[playernum]);
- nRotateTime[playernum] = RotationTimer();
- nRotateTarget[playernum] = -1;
- }
-
- if (player[1] && (player[1] != lastplayer[playernum][1] || (RotationTimer() > nRotateTime[playernum]+0xf))) {
- RotateRight(&nRotate[playernum]);
- //bprintf(PRINT_NORMAL, _T("Player %d Rotate Right => %06X\n"), playernum+1, nRotate[playernum]);
- nRotateTime[playernum] = RotationTimer();
- nRotateTarget[playernum] = -1;
- }
-
- lastplayer[playernum][0] = player[0];
- lastplayer[playernum][1] = player[1];
-
- return ~(1 << nRotate[playernum]);
-}
-
-static UINT8 *rotate_gunpos[2] = {NULL, NULL};
-static UINT8 rotate_gunpos_multiplier = 1;
-
-// Gun-rotation memory locations - do not remove this tag. - dink :)
-// game p1 p2 clockwise value in memory multiplier
-// hbarrell 0xff8066 0xff80aa 00 04 08 0c 10 14 18 1c 4
-// midres 0x1021bc 0x102238 SAME
-
-static void RotateSetGunPosRAM(UINT8 *p1, UINT8 *p2, UINT8 multiplier) {
- rotate_gunpos[0] = p1;
- rotate_gunpos[1] = p2;
- rotate_gunpos_multiplier = multiplier;
-}
-
-static INT32 get_distance(INT32 from, INT32 to) {
-// this function finds the easiest way to get from "from" to "to", wrapping at 0 and 7
- INT32 countA = 0;
- INT32 countB = 0;
- INT32 fromtmp = from / rotate_gunpos_multiplier;
- INT32 totmp = to / rotate_gunpos_multiplier;
-
- while (1) {
- fromtmp++;
- countA++;
- if(fromtmp>7) fromtmp = 0;
- if(fromtmp == totmp || countA > 32) break;
- }
-
- fromtmp = from / rotate_gunpos_multiplier;
- totmp = to / rotate_gunpos_multiplier;
-
- while (1) {
- fromtmp--;
- countB++;
- if(fromtmp<0) fromtmp = 7;
- if(fromtmp == totmp || countB > 32) break;
- }
-
- if (countA > countB) {
- return 1; // go negative
- } else {
- return 0; // go positive
- }
-}
-
-static void RotateDoTick() {
- // since the game only allows for 1 rotation every other frame, we have to
- // do this.
- if (nCurrentFrame&1) return;
-
- for (INT32 i = 0; i < 2; i++) {
- if (rotate_gunpos[i] && (nRotateTarget[i] != -1) && (nRotateTarget[i] != (*rotate_gunpos[i] & 0xff))) {
- if (get_distance(nRotateTarget[i], *rotate_gunpos[i] & 0xff)) {
- RotateRight(&nRotate[i]); // --
- } else {
- RotateLeft(&nRotate[i]); // ++
- }
- bprintf(0, _T("p%X target %X mempos %X nRotate %X.\n"), i, nRotateTarget[0], *rotate_gunpos[0] & 0xff, nRotate[0]);
- nRotateTry[i]++;
- if (nRotateTry[i] > 10) nRotateTarget[i] = -1; // don't get stuck in a loop if something goes horribly wrong here.
- } else {
- nRotateTarget[i] = -1;
- }
- }
-}
-
-static void SuperJoy2Rotate() {
- for (INT32 i = 0; i < 2; i++) { // p1 = 0, p2 = 1
- if (DrvFakeInput[4 + i]) { // rotate-button had been pressed
- UINT8 rot = Joy2Rotate(((!i) ? &DrvInputPort0[0] : &DrvInputPort1[0]));
- if (rot != 0xff) {
- nRotateTarget[i] = rot * rotate_gunpos_multiplier;
- }
- //DrvInput[i] &= ~0xf; // cancel out directionals since they are used to rotate here.
- DrvInput[i] = (DrvInput[i] & ~0xf) | (nRotateHoldInput[i] & 0xf); // for midnight resistance! be able to duck + change direction of gun.
- nRotateTry[i] = 0;
- } else { // cache joystick UDLR if the rotate button isn't pressed.
- // This feature is for Midnight Resistance, if you are crawling on the
- // ground and need to rotate your gun WITHOUT getting up.
- nRotateHoldInput[i] = DrvInput[i];
- }
- }
-
- RotateDoTick();
-}
-
-// end Rotation-handler
-
-// i8751 MCU, currently only for hbarrel.
-
-static UINT8 mcu_read_port(INT32 port)
-{
- if (!(port >= MCS51_PORT_P0 && port <= MCS51_PORT_P3))
- return 0;
- port &= 0x3;
-
- INT32 latchEnable = i8751PortData[2] >> 4;
-
- if (port == 0)
- {
- if ((latchEnable & 1) == 0)
- return i8751Command >> 8;
- else if ((latchEnable & 2) == 0)
- return i8751Command & 0xff;
- else if ((latchEnable & 4) == 0)
- return i8751RetVal >> 8;
- else if ((latchEnable & 8) == 0)
- return i8751RetVal & 0xff;
- }
-
- return 0xff;
-}
-
-static void mcu_write_port(INT32 port, UINT8 data)
-{
- if (!(port >= MCS51_PORT_P0 && port <= MCS51_PORT_P3))
- return;
-
- port &= 0x3;
-
- i8751PortData[port] = data;
-
- if (port == 2)
- {
- if ((data & 0x4) == 0) {
- SekSetIRQLine(5, CPU_IRQSTATUS_AUTO);
- }
- if ((data & 0x8) == 0)
- mcs51_set_irq_line(MCS51_INT1_LINE, CPU_IRQSTATUS_NONE);
- if ((data & 0x40) == 0)
- i8751RetVal = (i8751RetVal & 0xff00) | (i8751PortData[0]);
- if ((data & 0x80) == 0)
- i8751RetVal = (i8751RetVal & 0xff) | (i8751PortData[0] << 8);
- }
-}
-
-static void DrvMCUInit()
-{
- mcs51_program_data = DrvMCURom;
- mcs51_init ();
- mcs51_set_write_handler(mcu_write_port);
- mcs51_set_read_handler(mcu_read_port);
-
- DrvMCUReset();
-}
-
-static void DrvMCUExit() {
- mcs51_exit();
-}
-
-INT32 DrvMCURun(INT32 cycles)
-{
- cycles = mcs51Run(cycles);
-
- return cycles;
-}
-
-static INT32 DrvMCUScan(INT32 nAction)
-{
- mcs51_scan(nAction);
-
- //SCAN_VAR(i8751RetVal); // in DrvScan (also used by MCU Simulations)
- SCAN_VAR(i8751Command);
- SCAN_VAR(i8751PortData);
-
- return 0;
-}
-
-static void DrvMCUSync()
-{
- INT32 todo = ((SekTotalCycles() * 8) / 10) - nCyclesDone[2];
- if (todo > 0) nCyclesDone[2] += DrvMCURun(todo);
-}
-
-static void DrvMCUReset()
-{
- i8751RetVal = i8751Command = 0;
- memset(&i8751PortData, 0, sizeof(i8751PortData));
- mcs51_reset();
-}
-
-// Normal hardware cpu memory handlers
-
-static UINT8 __fastcall Dec068KReadByte(UINT32 a)
-{
- if (a >= 0x244000 && a <= 0x245fff) {
- INT32 Offset = a - 0x244000;
- if (DrvTileRamBank[0] & 0x01) Offset += 0x2000;
- return DrvCharRam[Offset ^ 1];
- }
-
- if (a >= 0x24a000 && a <= 0x24a7ff) {
- INT32 Offset = a - 0x24a000;
- if (DrvTileRamBank[1] & 0x01) Offset += 0x2000;
- return DrvVideo1Ram[Offset];
- }
-
- if (a >= 0x24d000 && a <= 0x24d7ff) {
- INT32 Offset = a - 0x24d000;
- if (DrvTileRamBank[2] & 0x01) Offset += 0x2000;
- return DrvVideo2Ram[Offset];
- }
-
- if (a >= 0x300000 && a <= 0x30001f) {
- dialRotation((a - 0x300000) / 8);
- }
-
- switch (a) {
- case 0x30c000: {
- return 0xff - DrvInput[1];
- }
-
- case 0x30c001: {
- return 0xff - DrvInput[0];
- }
-
- case 0x30c003: {
- return (0x7f - DrvInput[2]) | ((DrvVBlank) ? 0x80 : 0x00);
- }
-
- case 0x30c004: {
- return DrvDip[1];
- }
-
- case 0x30c005: {
- return DrvDip[0];
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("68K Read byte => %06X\n"), a);
- }
- }
-
- return 0;
-}
-
-static void __fastcall Dec068KWriteByte(UINT32 a, UINT8 d)
-{
- if (a >= 0x244000 && a <= 0x245fff) {
- INT32 Offset = a - 0x244000;
- if (DrvTileRamBank[0] & 0x01) Offset += 0x2000;
- DrvCharRam[Offset ^ 1] = d;
- return;
- }
-
- if (a >= 0x24a000 && a <= 0x24a7ff) {
- INT32 Offset = a - 0x24a000;
- if (DrvTileRamBank[1] & 0x01) Offset += 0x2000;
- DrvVideo1Ram[Offset] = d;
- return;
- }
-
- if (a >= 0x24d000 && a <= 0x24d7ff) {
- INT32 Offset = a - 0x24d000;
- if (DrvTileRamBank[2] & 0x01) Offset += 0x2000;
- DrvVideo2Ram[Offset] = d;
- return;
- }
-
- switch (a) {
- case 0x30c011: {
- DrvPriority = d;
- return;
- }
-
- case 0x30c015: {
- DrvSoundLatch = d;
- M6502SetIRQLine(M6502_INPUT_LINE_NMI, CPU_IRQSTATUS_AUTO);
- return;
- }
-
- case 0x30c01f: {
- i8751RetVal = 0;
- if (realMCU)
- DrvMCUReset();
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("68K Write byte => %06X, %02X\n"), a, d);
- }
- }
-}
-
-static UINT16 __fastcall Dec068KReadWord(UINT32 a)
-{
- if (a >= 0x244000 && a <= 0x245fff) {
- UINT16 *RAM = (UINT16*)DrvCharRam;
- INT32 Offset = (a - 0x244000) >> 1;
- if (DrvTileRamBank[0] & 0x01) Offset += 0x1000;
- return BURN_ENDIAN_SWAP_INT16(RAM[Offset]);
- }
-
- if (a >= 0x24a000 && a <= 0x24a7ff) {
- UINT16 *RAM = (UINT16*)DrvVideo1Ram;
- INT32 Offset = (a - 0x24a000) >> 1;
- if (DrvTileRamBank[1] & 0x01) Offset += 0x1000;
- return BURN_ENDIAN_SWAP_INT16(RAM[Offset]);
- }
-
- if (a >= 0x24d000 && a <= 0x24d7ff) {
- UINT16 *RAM = (UINT16*)DrvVideo2Ram;
- INT32 Offset = (a - 0x24d000) >> 1;
- if (DrvTileRamBank[2] & 0x01) Offset += 0x1000;
- return BURN_ENDIAN_SWAP_INT16(RAM[Offset]);
- }
-
- if (a >= 0x300000 && a <= 0x30001f) {
- return dialRotation((a - 0x300000) / 8);
- }
-
- switch (a) {
- case 0x30c000: {
- return ((0xff - DrvInput[1]) << 8) | (0xff - DrvInput[0]);
- }
-
- case 0x30c002: {
- return (0xff7f - DrvInput[2]) | ((DrvVBlank) ? 0x80 : 0x00);
- }
-
- case 0x30c004: {
- return (DrvDip[1] << 8) | DrvDip[0];
- }
-
- case 0x30c008: {
- if (realMCU) DrvMCUSync();
- return i8751RetVal;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("68K Read word => %06X\n"), a);
- }
- }
-
- return 0;
-}
-
-static void __fastcall Dec068KWriteWord(UINT32 a, UINT16 d)
-{
- if (a >= 0x244000 && a <= 0x245fff) {
- UINT16 *RAM = (UINT16*)DrvCharRam;
- INT32 Offset = (a - 0x244000) >> 1;
- if (DrvTileRamBank[0] & 0x01) Offset += 0x1000;
- RAM[Offset] = BURN_ENDIAN_SWAP_INT16(d);
- return;
- }
-
- if (a >= 0x24a000 && a <= 0x24a7ff) {
- UINT16 *RAM = (UINT16*)DrvVideo1Ram;
- INT32 Offset = (a - 0x24a000) >> 1;
- if (DrvTileRamBank[1] & 0x01) Offset += 0x1000;
- RAM[Offset] = BURN_ENDIAN_SWAP_INT16(d);
- return;
- }
-
- if (a >= 0x24d000 && a <= 0x24d7ff) {
- UINT16 *RAM = (UINT16*)DrvVideo2Ram;
- INT32 Offset = (a - 0x24d000) >> 1;
- if (DrvTileRamBank[2] & 0x01) Offset += 0x1000;
- RAM[Offset] = BURN_ENDIAN_SWAP_INT16(d);
- return;
- }
-
- if (a >= 0x31c000 && a <= 0x31c7ff) {
- // ???
- return;
- }
-
- if (a >= 0xffc800 && a <= 0xffc8ff) {
- // ???
- return;
- }
-
- switch (a) {
- case 0x240000:
- case 0x240002:
- case 0x240004:
- case 0x240006: {
- UINT16 *Control0 = (UINT16*)DrvCharCtrl0Ram;
- Control0[(a - 0x240000) >> 1] = BURN_ENDIAN_SWAP_INT16(d);
- if (a == 0x240004) {
- DrvTileRamBank[0] = d & 0x01;
- if (DrvTileRamBank[0]) bprintf(PRINT_IMPORTANT, _T("68K Set Tile RAM Bank 0\n"));
- }
- return;
- }
-
- case 0x240010:
- case 0x240012:
- case 0x240014:
- case 0x240016: {
- UINT16 *Control1 = (UINT16*)DrvCharCtrl1Ram;
- Control1[(a - 0x240010) >> 1] = BURN_ENDIAN_SWAP_INT16(d);
- return;
- }
-
- case 0x246000:
- case 0x246002:
- case 0x246004:
- case 0x246006: {
- UINT16 *Control0 = (UINT16*)DrvVideo1Ctrl0Ram;
- Control0[(a - 0x246000) >> 1] = BURN_ENDIAN_SWAP_INT16(d);
- if (a == 0x246004) {
- DrvTileRamBank[1] = d & 0x01;
- if (DrvTileRamBank[1]) bprintf(PRINT_IMPORTANT, _T("68K Set Tile RAM Bank 1\n"));
- }
- return;
- }
-
- case 0x246010:
- case 0x246012:
- case 0x246014:
- case 0x246016: {
- UINT16 *Control1 = (UINT16*)DrvVideo1Ctrl1Ram;
- Control1[(a - 0x246010) >> 1] = BURN_ENDIAN_SWAP_INT16(d);
- return;
- }
-
- case 0x24c000:
- case 0x24c002:
- case 0x24c004:
- case 0x24c006: {
- UINT16 *Control0 = (UINT16*)DrvVideo2Ctrl0Ram;
- Control0[(a - 0x24c000) >> 1] = BURN_ENDIAN_SWAP_INT16(d);
- if (a == 0x24c004) {
- DrvTileRamBank[2] = d & 0x01;
- if (DrvTileRamBank[2]) bprintf(PRINT_IMPORTANT, _T("68K Set Tile RAM Bank 2\n"));
- }
- return;
- }
-
- case 0x24c010:
- case 0x24c012:
- case 0x24c014:
- case 0x24c016: {
- UINT16 *Control1 = (UINT16*)DrvVideo2Ctrl1Ram;
- Control1[(a - 0x24c010) >> 1] = BURN_ENDIAN_SWAP_INT16(d);
- return;
- }
-
- case 0x30c010: {
- DrvPriority = d;
- return;
- }
-
- case 0x30c012: {
- memcpy(DrvSpriteDMABufferRam, DrvSpriteRam, 0x800);
- return;
- }
-
- case 0x30c014: {
- DrvSoundLatch = d & 0xff;
- M6502SetIRQLine(M6502_INPUT_LINE_NMI, CPU_IRQSTATUS_AUTO);
- return;
- }
-
- case 0x30c016: {
- if (Dec0Game == DEC0_GAME_BADDUDES) BaddudesI8751Write(d);
- if (Dec0Game == DEC0_GAME_HBARREL) {
- DrvMCUSync();
- i8751Command = d;
- mcs51_set_irq_line(MCS51_INT1_LINE, CPU_IRQSTATUS_ACK);
- }
- if (Dec0Game == DEC0_GAME_BIRDTRY) BirdtryI8751Write(d);
-
- if (!realMCU) SekSetIRQLine(5, CPU_IRQSTATUS_AUTO);
-
- return;
- }
-
- case 0x30c018: {
- SekSetIRQLine(6, CPU_IRQSTATUS_NONE);
- return;
- }
-
- case 0x30c01a: {
- // NOP
- return;
- }
-
- case 0x30c01e: {
- if (realMCU)
- DrvMCUReset();
-
- i8751RetVal = 0;
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("68K Write word => %06X, %04X\n"), a, d);
- }
- }
-}
-
-static UINT8 Dec0SoundReadByte(UINT16 a)
-{
- switch (a) {
- case 0x3000: {
- return DrvSoundLatch;
- }
-
- case 0x3800: {
- return MSM6295ReadStatus(0);
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("M6502 Read Byte %04X\n"), a);
- }
- }
-
- return 0;
-}
-
-static void Dec0SoundWriteByte(UINT16 a, UINT8 d)
-{
- switch (a) {
- case 0x0800: {
- BurnYM2203Write(0, 0, d);
- return;
- }
-
- case 0x0801: {
- BurnYM2203Write(0, 1, d);
- return;
- }
-
- case 0x1000: {
- BurnYM3812Write(0, 0, d);
- return;
- }
-
- case 0x1001: {
- BurnYM3812Write(0, 1, d);
- return;
- }
-
- case 0x3800: {
- MSM6295Command(0, d);
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("M6502 Write Byte %04X, %02X\n"), a, d);
- }
- }
-}
-
-// Hippodrome hardware cpu memory handlers
-
-static UINT8 __fastcall HippodrmShared68KReadByte(UINT32 a)
-{
- INT32 Offset = (a - 0x180000) >> 1;
- return DrvSharedRam[Offset];
-}
-
-static void __fastcall HippodrmShared68KWriteByte(UINT32 a, UINT8 d)
-{
- INT32 Offset = (a - 0x180000) >> 1;
- DrvSharedRam[Offset] = d;
-}
-
-static UINT16 __fastcall HippodrmShared68KReadWord(UINT32 a)
-{
- INT32 Offset = (a - 0x180000) >> 1;
- return DrvSharedRam[Offset];
-}
-
-static void __fastcall HippodrmShared68KWriteWord(UINT32 a, UINT16 d)
-{
- INT32 Offset = (a - 0x180000) >> 1;
- DrvSharedRam[Offset] = d & 0xff;
-}
-
-static UINT8 HippodrmH6280ReadProg(UINT32 Address)
-{
- if (Address >= 0x1a1000 && Address <= 0x1a17ff) {
- INT32 Offset = (Address - 0x1a1000) ^ 1;
- if (Offset & 0x01) {
- return deco_bac06_pf_data_r(2, (UINT16*)DrvVideo2Ram, Offset >> 1, 0x00ff);
- } else {
- return deco_bac06_pf_data_r(2, (UINT16*)DrvVideo2Ram, Offset >> 1, 0xff00) >> 8;
- }
- }
-
- switch (Address) {
- case 0x1ff403: {
- return DrvVBlank;
- }
- }
-
- bprintf(PRINT_NORMAL, _T("H6280 Read Prog %x\n"), Address);
-
- return 0;
-}
-
-static void HippodrmH6280WriteProg(UINT32 Address, UINT8 Data)
-{
- if (Address >= 0x1a0000 && Address <= 0x1a0007) {
- INT32 Offset = Address - 0x1a0000;
- if (Offset & 0x01) {
- deco_bac06_pf_control_0_w(2, (UINT16*)DrvVideo2Ctrl0Ram, Offset >> 1, Data << 8, 0x00ff);
- } else {
- deco_bac06_pf_control_0_w(2, (UINT16*)DrvVideo2Ctrl0Ram, Offset >> 1, Data, 0xff00);
- }
- return;
- }
-
- if (Address >= 0x1a0010 && Address <= 0x1a001f) {
- INT32 Offset = (Address - 0x1a0010) ^ 1;
- if (Offset < 0x04) {
- if (Offset & 0x01) {
- deco_bac06_pf_control_1_w((UINT16*)DrvVideo2Ctrl1Ram, Offset >> 1, Data, 0xff00);
- } else {
- deco_bac06_pf_control_1_w((UINT16*)DrvVideo2Ctrl1Ram, Offset >> 1, Data << 8, 0x00ff);
- }
- } else {
- if (Offset & 0x01) {
- deco_bac06_pf_control_1_w((UINT16*)DrvVideo2Ctrl1Ram, Offset >> 1, Data, 0xff00);
- } else {
- deco_bac06_pf_control_1_w((UINT16*)DrvVideo2Ctrl1Ram, Offset >> 1, Data, 0xff00);
- }
- }
- return;
- }
-
- if (Address >= 0x1a1000 && Address <= 0x1a17ff) {
- INT32 Offset = (Address - 0x1a1000) ^ 1;
- if (Offset & 0x01) {
- deco_bac06_pf_data_w(2, (UINT16*)DrvVideo2Ram, Offset >> 1, Data, 0xff00);
- } else {
- deco_bac06_pf_data_w(2, (UINT16*)DrvVideo2Ram, Offset >> 1, Data << 8, 0x00ff);
- }
- return;
-
- }
-
- if (Address >= 0x1ff400 && Address <= 0x1ff403) {
- h6280_irq_status_w(Address - 0x1ff400, Data);
- return;
- }
-
- bprintf(PRINT_NORMAL, _T("H6280 Write Prog %x, %x\n"), Address, Data);
-}
-
-// Robocop hardware cpu memory handlers
-
-static UINT8 __fastcall RobocopShared68KReadByte(UINT32 a)
-{
- INT32 Offset = (a - 0x180000) >> 1;
- return DrvSharedRam[Offset];
-}
-
-static void __fastcall RobocopShared68KWriteByte(UINT32 a, UINT8 d)
-{
- INT32 Offset = (a - 0x180000) >> 1;
- DrvSharedRam[Offset] = d;
- if (Offset == 0x7ff) {
- h6280SetIRQLine(0, CPU_IRQSTATUS_AUTO);
- }
-}
-
-static UINT16 __fastcall RobocopShared68KReadWord(UINT32 a)
-{
- INT32 Offset = (a - 0x180000) >> 1;
- return DrvSharedRam[Offset];
-}
-
-static void __fastcall RobocopShared68KWriteWord(UINT32 a, UINT16 d)
-{
- INT32 Offset = (a - 0x180000) >> 1;
- DrvSharedRam[Offset] = d & 0xff;
- if (Offset == 0x7ff) {
- h6280SetIRQLine(0, CPU_IRQSTATUS_AUTO);
- }
-}
-
-static UINT8 RobocopH6280ReadProg(UINT32 Address)
-{
- bprintf(PRINT_NORMAL, _T("H6280 Read Prog %x\n"), Address);
-
- return 0;
-}
-
-static void RobocopH6280WriteProg(UINT32 Address, UINT8 Data)
-{
- if (Address >= 0x1ff400 && Address <= 0x1ff403) {
- h6280_irq_status_w(Address - 0x1ff400, Data);
- return;
- }
-
- bprintf(PRINT_NORMAL, _T("H6280 Write Prog %x, %x\n"), Address, Data);
-}
-
-// Sly Spy hardware cpu memory handlers
-
-static UINT8 __fastcall Slyspy68KReadByte(UINT32 a)
-{
- if (a >= 0x31c000 && a <= 0x31c00f) {
- INT32 Offset = (a - 0x31c000) >> 1;
-
- switch (Offset << 1) {
- case 0x00: return 0x00;
- case 0x02: return 0x13;
- case 0x04: return 0x00;
- case 0x06: return 0x02;
- }
-
- return 0;
- }
-
- switch (a) {
- case 0x314008: {
- return DrvDip[1];
- }
-
- case 0x314009: {
- return DrvDip[0];
- }
-
- case 0x31400a: {
- return 0xff - DrvInput[1];
- }
-
- case 0x31400b: {
- return 0xff - DrvInput[0];
- }
-
- case 0x31400d: {
- return (0xf7 - DrvInput[2]) | ((DrvVBlank) ? 0x08 : 0x00);
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("68K Read byte => %06X\n"), a);
- }
- }
-
- return 0;
-}
-
-static void __fastcall Slyspy68KWriteByte(UINT32 a, UINT8 d)
-{
- switch (a) {
- case 0x300000:
- case 0x300001:
- case 0x300002:
- case 0x300003:
- case 0x300004:
- case 0x300005:
- case 0x300006:
- case 0x300007: {
- DrvVideo2Ctrl0Ram[(a - 0x300000) ^ 1] = d;
- if (a == 0x300005) {
- DrvTileRamBank[2] = d & 0x01;
- if (DrvTileRamBank[2]) bprintf(PRINT_IMPORTANT, _T("68K Set Tile RAM Bank 2\n"));
- }
- return;
- }
-
- case 0x300010:
- case 0x300011:
- case 0x300012:
- case 0x300013:
- case 0x300014:
- case 0x300015:
- case 0x300016:
- case 0x300017: {
- DrvVideo2Ctrl1Ram[(a - 0x300010) ^ 1] = d;
- return;
- }
-
- case 0x314001: {
- DrvSoundLatch = d;
- h6280SetIRQLine(H6280_INPUT_LINE_NMI, CPU_IRQSTATUS_AUTO);
- return;
- }
-
- case 0x314003: {
- DrvPriority = d;
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("68K Write byte => %06X, %02X\n"), a, d);
- }
- }
-}
-
-static UINT16 __fastcall Slyspy68KReadWord(UINT32 a)
-{
- if (a >= 0x31c000 && a <= 0x31c00f) {
- INT32 Offset = (a - 0x31c000) >> 1;
-
- switch (Offset << 1) {
- case 0x00: return 0x00;
- case 0x02: return 0x13;
- case 0x04: return 0x00;
- case 0x06: return 0x02;
- }
-
- return 0;
- }
-
- switch (a) {
- case 0x244000: {
- DrvSlyspyProtValue++;
- DrvSlyspyProtValue = DrvSlyspyProtValue % 4;
- SlyspySetProtectionMap(DrvSlyspyProtValue);
- return 0;
- }
-
- case 0x314008: {
- return (DrvDip[1] << 8) | DrvDip[0];
- }
-
- case 0x31400a: {
- return ((0xff - DrvInput[1]) << 8) | (0xff - DrvInput[0]);
- }
-
- case 0x31400c: {
- return 0xff00 | ((0xf7 - DrvInput[2]) | ((DrvVBlank) ? 0x08 : 0x00));
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("68K Read word => %06X\n"), a);
- }
- }
-
- return 0;
-}
-
-static void __fastcall Slyspy68KWriteWord(UINT32 a, UINT16 d)
-{
- if (a >= 0x31c000 && a <= 0x31c00f) {
- // nop
- return;
- }
-
- switch (a) {
- case 0x24a000: {
- DrvSlyspyProtValue = 0;
- SlyspySetProtectionMap(DrvSlyspyProtValue);
- return;
- }
-
- case 0x300000:
- case 0x300002:
- case 0x300004:
- case 0x300006: {
- UINT16 *Control0 = (UINT16*)DrvVideo2Ctrl0Ram;
- Control0[(a - 0x300000) >> 1] = d;
- if (a == 0x300004) {
- DrvTileRamBank[2] = d & 0x01;
- if (DrvTileRamBank[2]) bprintf(PRINT_IMPORTANT, _T("68K Set Tile RAM Bank 2\n"));
- }
- return;
- }
-
- case 0x300010:
- case 0x300012:
- case 0x300014:
- case 0x300016: {
- UINT16 *Control1 = (UINT16*)DrvVideo2Ctrl1Ram;
- Control1[(a - 0x300010) >> 1] = d;
- return;
- }
-
- case 0x314000: {
- DrvSoundLatch = d & 0xff;
- h6280SetIRQLine(H6280_INPUT_LINE_NMI, CPU_IRQSTATUS_AUTO);
- return;
- }
-
- case 0x314002: {
- DrvPriority = d;
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("68K Write word => %06X, %04X\n"), a, d);
- }
- }
-}
-
-static void __fastcall SlyspyProt68KWriteByte(UINT32 a, UINT8 d)
-{
- switch (a) {
- case 0x240000:
- case 0x240001:
- case 0x240002:
- case 0x240003:
- case 0x240004:
- case 0x240005:
- case 0x240006:
- case 0x240007: {
- DrvVideo1Ctrl0Ram[(a - 0x240000) ^ 1] = d;
- if (a == 0x240005) {
- DrvTileRamBank[1] = d & 0x01;
- if (DrvTileRamBank[1]) bprintf(PRINT_IMPORTANT, _T("68K Set Tile RAM Bank 1\n"));
- }
- return;
- }
-
- case 0x240010:
- case 0x240011:
- case 0x240012:
- case 0x240013:
- case 0x240014:
- case 0x240015:
- case 0x240016:
- case 0x240017: {
- DrvVideo1Ctrl1Ram[(a - 0x240010) ^ 1] = d;
- return;
- }
-
- case 0x248000:
- case 0x248001:
- case 0x248002:
- case 0x248003:
- case 0x248004:
- case 0x248005:
- case 0x248006:
- case 0x248007: {
- DrvCharCtrl0Ram[(a - 0x248000) ^ 1] = d;
- if (a == 0x248005) {
- DrvTileRamBank[0] = d & 0x01;
- if (DrvTileRamBank[0]) bprintf(PRINT_IMPORTANT, _T("68K Set Tile RAM Bank 0\n"));
- }
- return;
- }
-
- case 0x248010:
- case 0x248011:
- case 0x248012:
- case 0x248013:
- case 0x248014:
- case 0x248015:
- case 0x248016:
- case 0x248017: {
- DrvCharCtrl1Ram[(a - 0x248010) ^ 1] = d;
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("68K Write byte => %06X, %02X\n"), a, d);
- }
- }
-}
-
-static void __fastcall SlyspyProt68KWriteWord(UINT32 a, UINT16 d)
-{
- switch (a) {
- case 0x240000:
- case 0x240002:
- case 0x240004:
- case 0x240006: {
- UINT16 *Control0 = (UINT16*)DrvVideo1Ctrl0Ram;
- Control0[(a - 0x240000) >> 1] = d;
- if (a == 0x240004) {
- DrvTileRamBank[1] = d & 0x01;
- if (DrvTileRamBank[1]) bprintf(PRINT_IMPORTANT, _T("68K Set Tile RAM Bank 1\n"));
- }
- return;
- }
-
- case 0x240010:
- case 0x240012:
- case 0x240014:
- case 0x240016: {
- UINT16 *Control1 = (UINT16*)DrvVideo1Ctrl1Ram;
- Control1[(a - 0x240010) >> 1] = d;
- return;
- }
-
- case 0x244000: {
- // ???
- return;
- }
-
- case 0x248000:
- case 0x248002:
- case 0x248004:
- case 0x248006: {
- UINT16 *Control0 = (UINT16*)DrvCharCtrl0Ram;
- Control0[(a - 0x248000) >> 1] = d;
- if (a == 0x248004) {
- DrvTileRamBank[0] = d & 0x01;
- if (DrvTileRamBank[0]) bprintf(PRINT_IMPORTANT, _T("68K Set Tile RAM Bank 0\n"));
- }
- return;
- }
-
- case 0x248010:
- case 0x248012:
- case 0x248014:
- case 0x248016: {
- UINT16 *Control1 = (UINT16*)DrvCharCtrl1Ram;
- Control1[(a - 0x248010) >> 1] = d;
- return;
- }
-
- case 0x248800: {
- // ???
- return;
- }
-
- case 0x24a000: {
- DrvSlyspyProtValue = 0;
- SlyspySetProtectionMap(DrvSlyspyProtValue);
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("68K Write word => %06X, %04X\n"), a, d);
- }
- }
-}
-
-static void SlyspySetProtectionMap(UINT8 Type)
-{
- // I should really set this up to go through handlers, in case a layer's alt RAM bank gets activated,
- // so far I've not seen evidence that the game activates the alt RAM banks and this implementation is much
- // cleaner and quicker
-
- SekMapHandler(8, 0x240000, 0x24ffff, MAP_WRITE);
- SekSetWriteByteHandler(8, SlyspyProt68KWriteByte);
- SekSetWriteWordHandler(8, SlyspyProt68KWriteWord);
-
- switch (Type) {
- case 0: {
- SekMapMemory(DrvVideo1ColScrollRam , 0x242000, 0x24207f, MAP_WRITE);
- SekMapMemory(DrvVideo1RowScrollRam , 0x242400, 0x2427ff, MAP_WRITE);
- SekMapMemory(DrvVideo1Ram , 0x246000, 0x247fff, MAP_WRITE);
- SekMapMemory(DrvCharColScrollRam , 0x24c000, 0x24c07f, MAP_WRITE);
- SekMapMemory(DrvCharRowScrollRam , 0x24c400, 0x24c7ff, MAP_WRITE);
- SekMapMemory(DrvCharRam , 0x24e000, 0x24ffff, MAP_WRITE);
- break;
- }
-
- case 1: {
- SekMapMemory(DrvCharRam , 0x248000, 0x249fff, MAP_WRITE);
- SekMapMemory(DrvVideo1Ram , 0x24c000, 0x24dfff, MAP_WRITE);
- break;
- }
-
- case 2: {
- SekMapMemory(DrvVideo1Ram , 0x240000, 0x241fff, MAP_WRITE);
- SekMapMemory(DrvCharRam , 0x242000, 0x243fff, MAP_WRITE);
- SekMapMemory(DrvCharRam , 0x24e000, 0x24ffff, MAP_WRITE);
- break;
- }
-
- case 3: {
- SekMapMemory(DrvCharRam , 0x240000, 0x241fff, MAP_WRITE);
- SekMapMemory(DrvVideo1Ram , 0x248000, 0x249fff, MAP_WRITE);
- break;
- }
- }
-
-}
-
-static UINT8 SlyspyH6280ReadProg(UINT32 Address)
-{
- switch (Address) {
- case 0x0a0000: {
- // nop
- return 0;
- }
-
- case 0x0e0000: {
- return MSM6295ReadStatus(0);
- }
-
- case 0x0f0000: {
- return DrvSoundLatch;
- }
- }
-
- bprintf(PRINT_NORMAL, _T("H6280 Read Prog %x\n"), Address);
-
- return 0;
-}
-
-static void SlyspyH6280WriteProg(UINT32 Address, UINT8 Data)
-{
- switch (Address) {
- case 0x090000: {
- BurnYM3812Write(0, 0, Data);
- return;
- }
-
- case 0x090001: {
- BurnYM3812Write(0, 1, Data);
- return;
- }
-
- case 0x0b0000: {
- BurnYM2203Write(0, 0, Data);
- return;
- }
-
- case 0x0b0001: {
- BurnYM2203Write(0, 1, Data);
- return;
- }
-
- case 0x0e0000: {
- MSM6295Command(0, Data);
- return;
- }
- }
-
- if (Address >= 0x1ff400 && Address <= 0x1ff403) {
- h6280_irq_status_w(Address - 0x1ff400, Data);
- return;
- }
-
- bprintf(PRINT_NORMAL, _T("H6280 Write Prog %x, %x\n"), Address, Data);
-}
-
-// Midnight Resistance hardware cpu memory handlers
-
-static UINT8 __fastcall Midres68KReadByte(UINT32 a)
-{
-#if 0
- if (a >= 0x220000 && a <= 0x2207ff) {
- INT32 Offset = a - 0x220000;
- if (DrvTileRamBank[1] & 0x01) Offset += 0x2000;
- return DrvVideo1Ram[Offset ^ 1];
- }
-
- if (a >= 0x220800 && a <= 0x220fff) {
- // mirror
- INT32 Offset = a - 0x220800;
- if (DrvTileRamBank[1] & 0x01) Offset += 0x2000;
- return DrvVideo1Ram[Offset ^ 1];
- }
-
- if (a >= 0x2a0000 && a <= 0x2a07ff) {
- INT32 Offset = a - 0x2a0000;
- if (DrvTileRamBank[2] & 0x01) Offset += 0x2000;
- return DrvVideo2Ram[Offset ^ 1];
- }
-
- if (a >= 0x320000 && a <= 0x321fff) {
- INT32 Offset = a - 0x320000;
- if (DrvTileRamBank[0] & 0x01) Offset += 0x2000;
- return DrvCharRam[Offset ^ 1];
- }
-#endif
- switch (a) {
- case 0x180009: {
- return (0xf7 - DrvInput[2]) | ((DrvVBlank) ? 0x08 : 0x00);
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("68K Read byte => %06X PC: %X\n"), a, SekGetPC(-1));
- }
- }
-
- return 0;
-}
-
-static void __fastcall Midres68KWriteByte(UINT32 a, UINT8 d)
-{
-#if 0
- if (a >= 0x220000 && a <= 0x2207ff) {
- INT32 Offset = a - 0x220000;
- if (DrvTileRamBank[1] & 0x01) Offset += 0x2000;
- DrvVideo1Ram[Offset ^ 1] = d;
- return;
- }
-
- if (a >= 0x220800 && a <= 0x220fff) {
- // mirror
- INT32 Offset = a - 0x220800;
- if (DrvTileRamBank[1] & 0x01) Offset += 0x2000;
- DrvVideo1Ram[Offset ^ 1] = d;
- return;
- }
-
- if (a >= 0x2a0000 && a <= 0x2a07ff) {
- INT32 Offset = a - 0x2a0000;
- if (DrvTileRamBank[2] & 0x01) Offset += 0x2000;
- DrvVideo2Ram[Offset ^ 1] = d;
- return;
- }
-
- if (a >= 0x320000 && a <= 0x321fff) {
- INT32 Offset = a - 0x320000;
- if (DrvTileRamBank[0] & 0x01) Offset += 0x2000;
- DrvCharRam[Offset ^ 1] = d;
- return;
- }
-#endif
- switch (a) {
- case 0x1a0001: {
- DrvSoundLatch = d;
- h6280SetIRQLine(H6280_INPUT_LINE_NMI, CPU_IRQSTATUS_AUTO);
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("68K Write byte => %06X, %02X PC: %X\n"), a, d, SekGetPC(-1));
- }
- }
-}
-
-static UINT16 __fastcall Midres68KReadWord(UINT32 a)
-{
-#if 0
- if (a >= 0x220000 && a <= 0x2207ff) {
- UINT16 *RAM = (UINT16*)DrvVideo1Ram;
- INT32 Offset = (a - 0x220000) >> 1;
- if (DrvTileRamBank[1] & 0x01) Offset += 0x1000;
- return BURN_ENDIAN_SWAP_INT16(RAM[Offset]);
- }
-
- if (a >= 0x220800 && a <= 0x220fff) {
- // mirror
- UINT16 *RAM = (UINT16*)DrvVideo1Ram;
- INT32 Offset = (a - 0x220800) >> 1;
- if (DrvTileRamBank[1] & 0x01) Offset += 0x1000;
- return BURN_ENDIAN_SWAP_INT16(RAM[Offset]);
- }
-
- if (a >= 0x2a0000 && a <= 0x2a07ff) {
- UINT16 *RAM = (UINT16*)DrvVideo2Ram;
- INT32 Offset = (a - 0x2a0000) >> 1;
- if (DrvTileRamBank[2] & 0x01) Offset += 0x1000;
- return BURN_ENDIAN_SWAP_INT16(RAM[Offset]);
- }
-
- if (a >= 0x320000 && a <= 0x321fff) {
- UINT16 *RAM = (UINT16*)DrvCharRam;
- INT32 Offset = (a - 0x320000) >> 1;
- if (DrvTileRamBank[0] & 0x01) Offset += 0x1000;
- return BURN_ENDIAN_SWAP_INT16(RAM[Offset]);
- }
-#endif
- switch (a) {
- case 0x180000: {
- return ((0xff - DrvInput[1]) << 8) | (0xff - DrvInput[0]);
- }
-
- case 0x180002: {
- return (DrvDip[1] << 8) | DrvDip[0];
- }
-
- case 0x180004: {
- return dialRotation(0);
- }
-
- case 0x180006: {
- return dialRotation(1);
- }
-
- case 0x180008: {
- return 0xff00 | ((0xf7 - DrvInput[2]) | ((DrvVBlank) ? 0x08 : 0x00));
- }
-
- case 0x18000c: {
- // watchdog?
- return 0;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("68K Read word => %06X PC: %X\n"), a, SekGetPC(-1));
- }
- }
-
- return 0;
-}
-
-static void __fastcall Midres68KWriteWord(UINT32 a, UINT16 d)
-{
-#if 0
- if (a >= 0x220000 && a <= 0x2207ff) {
- UINT16 *RAM = (UINT16*)DrvVideo1Ram;
- INT32 Offset = (a - 0x220000) >> 1;
- if (DrvTileRamBank[1] & 0x01) Offset += 0x1000;
- RAM[Offset] = BURN_ENDIAN_SWAP_INT16(d);
- return;
- }
-
- if (a >= 0x220800 && a <= 0x220fff) {
- // mirror
- UINT16 *RAM = (UINT16*)DrvVideo1Ram;
- INT32 Offset = (a - 0x220800) >> 1;
- if (DrvTileRamBank[1] & 0x01) Offset += 0x1000;
- RAM[Offset] = BURN_ENDIAN_SWAP_INT16(d);
- return;
- }
-
- if (a >= 0x2a0000 && a <= 0x2a07ff) {
- UINT16 *RAM = (UINT16*)DrvVideo2Ram;
- INT32 Offset = (a - 0x2a0000) >> 1;
- if (DrvTileRamBank[2] & 0x01) Offset += 0x1000;
- RAM[Offset] = BURN_ENDIAN_SWAP_INT16(d);
- return;
- }
-
- if (a >= 0x320000 && a <= 0x321fff) {
- UINT16 *RAM = (UINT16*)DrvCharRam;
- INT32 Offset = (a - 0x320000) >> 1;
- if (DrvTileRamBank[0] & 0x01) Offset += 0x1000;
- RAM[Offset] = BURN_ENDIAN_SWAP_INT16(d);
- return;
- }
-#endif
- switch (a) {
- case 0x160000: {
- DrvPriority = d;
- return;
- }
-
- case 0x18000a:
- case 0x18000c: {
- // nop?
- return;
- }
-
- case 0x1a0000: { // midres ending sequence writes here after the credits, it brings the music volume down quite a bit making the drums quite prominent during hiscore name entry.
- DrvSoundLatch = d & 0xff;
- h6280SetIRQLine(H6280_INPUT_LINE_NMI, CPU_IRQSTATUS_AUTO);
- return;
- }
-
- case 0x200000:
- case 0x200002:
- case 0x200004:
- case 0x200006: {
- UINT16 *Control0 = (UINT16*)DrvVideo1Ctrl0Ram;
- Control0[(a - 0x200000) >> 1] = BURN_ENDIAN_SWAP_INT16(d);
- if (a == 0x200004) {
- DrvTileRamBank[1] = d & 0x01;
- if (DrvTileRamBank[1]) bprintf(PRINT_IMPORTANT, _T("68K Set Tile RAM Bank 1\n"));
- }
- return;
- }
-
- case 0x200010:
- case 0x200012:
- case 0x200014:
- case 0x200016: {
- UINT16 *Control1 = (UINT16*)DrvVideo1Ctrl1Ram;
- Control1[(a - 0x200010) >> 1] = BURN_ENDIAN_SWAP_INT16(d);
- return;
- }
-
- case 0x280000:
- case 0x280002:
- case 0x280004:
- case 0x280006: {
- UINT16 *Control0 = (UINT16*)DrvVideo2Ctrl0Ram;
- Control0[(a - 0x280000) >> 1] = BURN_ENDIAN_SWAP_INT16(d);
- if (a == 0x280004) {
- DrvTileRamBank[2] = d & 0x01;
- if (DrvTileRamBank[2]) bprintf(PRINT_IMPORTANT, _T("68K Set Tile RAM Bank 2\n"));
- }
- return;
- }
-
- case 0x280010:
- case 0x280012:
- case 0x280014:
- case 0x280016: {
- UINT16 *Control1 = (UINT16*)DrvVideo2Ctrl1Ram;
- Control1[(a - 0x280010) >> 1] = BURN_ENDIAN_SWAP_INT16(d);
- return;
- }
-
- case 0x300000:
- case 0x300002:
- case 0x300004:
- case 0x300006: {
- UINT16 *Control0 = (UINT16*)DrvCharCtrl0Ram;
- Control0[(a - 0x300000) >> 1] = BURN_ENDIAN_SWAP_INT16(d);
- if (a == 0x300004) {
- DrvTileRamBank[0] = d & 0x01;
- if (DrvTileRamBank[0]) bprintf(PRINT_IMPORTANT, _T("68K Set Tile RAM Bank 0\n"));
- }
- return;
- }
-
- case 0x300010:
- case 0x300012:
- case 0x300014:
- case 0x300016: {
- UINT16 *Control1 = (UINT16*)DrvCharCtrl1Ram;
- Control1[(a - 0x300010) >> 1] = BURN_ENDIAN_SWAP_INT16(d);
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("68K Write word => %06X, %04X PC: %X\n"), a, d, SekGetPC(-1));
- }
- }
-}
-
-static UINT8 MidresH6280ReadProg(UINT32 Address)
-{
- switch (Address) {
- case 0x130000: {
- return MSM6295ReadStatus(0);
- }
-
- case 0x138000: {
- return DrvSoundLatch;
- }
- }
-
- bprintf(PRINT_NORMAL, _T("H6280 Read Prog %x\n"), Address);
-
- return 0;
-}
-
-static void MidresH6280WriteProg(UINT32 Address, UINT8 Data)
-{
- switch (Address) {
- case 0x0108000: {
- BurnYM3812Write(0, 0, Data);
- return;
- }
-
- case 0x108001: {
- BurnYM3812Write(0, 1, Data);
- return;
- }
-
- case 0x118000: {
- BurnYM2203Write(0, 0, Data);
- return;
- }
-
- case 0x118001: {
- BurnYM2203Write(0, 1, Data);
- return;
- }
-
- case 0x130000: {
- MSM6295Command(0, Data);
- return;
- }
- }
-
- if (Address >= 0x1ff400 && Address <= 0x1ff403) {
- h6280_irq_status_w(Address - 0x1ff400, Data);
- return;
- }
-
- bprintf(PRINT_NORMAL, _T("H6280 Write Prog %x, %x\n"), Address, Data);
-}
-
-static INT32 CharPlaneOffsets[4] = { 0x000000, 0x040000, 0x020000, 0x060000 };
-static INT32 RobocopCharPlaneOffsets[4] = { 0x000000, 0x080000, 0x040000, 0x0c0000 };
-static INT32 CharXOffsets[8] = { 0, 1, 2, 3, 4, 5, 6, 7 };
-static INT32 CharYOffsets[8] = { 0, 8, 16, 24, 32, 40, 48, 56 };
-static INT32 Tile1PlaneOffsets[4] = { 0x080000, 0x180000, 0x000000, 0x100000 };
-static INT32 Tile2PlaneOffsets[4] = { 0x040000, 0x0c0000, 0x000000, 0x080000 };
-static INT32 SpritePlaneOffsets[4] = { 0x100000, 0x300000, 0x000000, 0x200000 };
-static INT32 TileXOffsets[16] = { 128, 129, 130, 131, 132, 133, 134, 135, 0, 1, 2, 3, 4, 5, 6, 7 };
-static INT32 TileYOffsets[16] = { 0, 8, 16, 24, 32, 40, 48, 56, 64, 72, 80, 88, 96, 104, 112, 120 };
-
-inline static INT32 Dec0YM2203SynchroniseStream(INT32 nSoundRate)
-{
- return (INT64)SekTotalCycles() * nSoundRate / 10000000;
-}
-
-inline static double Dec0YM2203GetTime()
-{
- return (double)SekTotalCycles() / 10000000;
-}
-
-static void Dec0YM3812IRQHandler(INT32, INT32 nStatus)
-{
- if (nStatus) {
- M6502SetIRQLine(M6502_IRQ_LINE, CPU_IRQSTATUS_ACK);
- } else {
- M6502SetIRQLine(M6502_IRQ_LINE, CPU_IRQSTATUS_NONE);
- }
-}
-
-static INT32 Dec0YM3812SynchroniseStream(INT32 nSoundRate)
-{
- return (INT64)M6502TotalCycles() * nSoundRate / 1500000;
-}
-
-static void Dec1YM3812IRQHandler(INT32, INT32 nStatus)
-{
- if (nStatus) {
- h6280SetIRQLine(1, CPU_IRQSTATUS_ACK);
- } else {
- h6280SetIRQLine(1, CPU_IRQSTATUS_NONE);
- }
-}
-
-static INT32 Dec1YM3812SynchroniseStream(INT32 nSoundRate)
-{
- return (INT64)h6280TotalCycles() * nSoundRate / 2000000;
-}
-
-static INT32 Dec0MachineInit()
-{
- INT32 nLen;
-
- BurnSetRefreshRate(57.41);
-
- Mem = NULL;
- MemIndex();
- nLen = MemEnd - (UINT8 *)0;
- if ((Mem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(Mem, 0, nLen);
- MemIndex();
-
- DrvTempRom = (UINT8 *)BurnMalloc(0x80000);
-
- SekInit(0, 0x68000);
- SekOpen(0);
- SekMapMemory(Drv68KRom , 0x000000, 0x05ffff, MAP_ROM);
- SekMapMemory(DrvCharColScrollRam , 0x242000, 0x24207f, MAP_RAM);
- SekMapMemory(DrvCharRowScrollRam , 0x242400, 0x2427ff, MAP_RAM);
- SekMapMemory(Drv68KRam + 0x4000 , 0x242800, 0x243fff, MAP_RAM);
- SekMapMemory(DrvVideo1ColScrollRam , 0x248000, 0x24807f, MAP_RAM);
- SekMapMemory(DrvVideo1RowScrollRam , 0x248400, 0x2487ff, MAP_RAM);
- SekMapMemory(DrvVideo2ColScrollRam , 0x24c800, 0x24c87f, MAP_RAM);
- SekMapMemory(DrvVideo2RowScrollRam , 0x24cc00, 0x24cfff, MAP_RAM);
- SekMapMemory(DrvPaletteRam , 0x310000, 0x3107ff, MAP_RAM);
- SekMapMemory(DrvPalette2Ram , 0x314000, 0x3147ff, MAP_RAM);
- SekMapMemory(Drv68KRam , 0xff8000, 0xffbfff, MAP_RAM);
- SekMapMemory(DrvSpriteRam , 0xffc000, 0xffc7ff, MAP_RAM);
- SekSetReadByteHandler(0, Dec068KReadByte);
- SekSetWriteByteHandler(0, Dec068KWriteByte);
- SekSetReadWordHandler(0, Dec068KReadWord);
- SekSetWriteWordHandler(0, Dec068KWriteWord);
- SekClose();
-
- M6502Init(0, TYPE_M6502);
- M6502Open(0);
- M6502MapMemory(DrvM6502Ram , 0x0000, 0x05ff, MAP_RAM);
- M6502MapMemory(DrvM6502Rom , 0x8000, 0xffff, MAP_ROM);
- M6502SetReadHandler(Dec0SoundReadByte);
- M6502SetWriteHandler(Dec0SoundWriteByte);
- M6502Close();
-
- GenericTilesInit();
-
- BurnYM3812Init(1, 3000000, &Dec0YM3812IRQHandler, &Dec0YM3812SynchroniseStream, 1);
- BurnTimerAttachM6502YM3812(1500000);
- BurnYM3812SetRoute(0, BURN_SND_YM3812_ROUTE, 0.80, BURN_SND_ROUTE_BOTH);
-
- BurnYM2203Init(1, 1500000, NULL, Dec0YM2203SynchroniseStream, Dec0YM2203GetTime, 0);
- BurnTimerAttachSek(10000000);
- BurnYM2203SetRoute(0, BURN_SND_YM2203_YM2203_ROUTE, 0.35, BURN_SND_ROUTE_BOTH);
- BurnYM2203SetRoute(0, BURN_SND_YM2203_AY8910_ROUTE_1, 0.50, BURN_SND_ROUTE_BOTH);
- BurnYM2203SetRoute(0, BURN_SND_YM2203_AY8910_ROUTE_2, 0.50, BURN_SND_ROUTE_BOTH);
- BurnYM2203SetRoute(0, BURN_SND_YM2203_AY8910_ROUTE_3, 0.50, BURN_SND_ROUTE_BOTH);
-
- MSM6295Init(0, 1023924 / 132, 1);
- MSM6295SetRoute(0, 0.80, BURN_SND_ROUTE_BOTH);
-
- return 0;
-}
-
-static INT32 BaddudesInit()
-{
- INT32 nRet = 0;
-
- Dec0MachineInit();
-
- nRet = BurnLoadRom(Drv68KRom + 0x00001, 0, 2); if (nRet != 0) return 1;
- nRet = BurnLoadRom(Drv68KRom + 0x00000, 1, 2); if (nRet != 0) return 1;
- nRet = BurnLoadRom(Drv68KRom + 0x40001, 2, 2); if (nRet != 0) return 1;
- nRet = BurnLoadRom(Drv68KRom + 0x40000, 3, 2); if (nRet != 0) return 1;
-
- nRet = BurnLoadRom(DrvM6502Rom, 4, 1); if (nRet != 0) return 1;
-
- nRet = BurnLoadRom(DrvTempRom + 0x00000, 5, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x08000, 6, 1); if (nRet != 0) return 1;
- GfxDecode(0x800, 4, 8, 8, CharPlaneOffsets, CharXOffsets, CharYOffsets, 0x40, DrvTempRom, DrvChars);
-
- memset(DrvTempRom, 0, 0x80000);
- nRet = BurnLoadRom(DrvTempRom + 0x00000, 7, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x10000, 8, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x20000, 9, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x30000, 10, 1); if (nRet != 0) return 1;
- GfxDecode(0x800, 4, 16, 16, Tile1PlaneOffsets, TileXOffsets, TileYOffsets, 0x100, DrvTempRom, DrvTiles1);
-
- memset(DrvTempRom, 0, 0x80000);
- nRet = BurnLoadRom(DrvTempRom + 0x20000, 11, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x30000, 12, 1); if (nRet != 0) return 1;
- memcpy(DrvTempRom + 0x08000, DrvTempRom + 0x20000, 0x8000);
- memcpy(DrvTempRom + 0x00000, DrvTempRom + 0x28000, 0x8000);
- memcpy(DrvTempRom + 0x18000, DrvTempRom + 0x30000, 0x8000);
- memcpy(DrvTempRom + 0x10000, DrvTempRom + 0x38000, 0x8000);
- GfxDecode(0x400, 4, 16, 16, Tile2PlaneOffsets, TileXOffsets, TileYOffsets, 0x100, DrvTempRom, DrvTiles2);
-
- memset(DrvTempRom, 0, 0x80000);
- nRet = BurnLoadRom(DrvTempRom + 0x00000, 13, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x10000, 14, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x20000, 15, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x30000, 16, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x40000, 17, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x50000, 18, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x60000, 19, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x70000, 20, 1); if (nRet != 0) return 1;
- GfxDecode(0x1000, 4, 16, 16, SpritePlaneOffsets, TileXOffsets, TileYOffsets, 0x100, DrvTempRom, DrvSprites);
-
- nRet = BurnLoadRom(MSM6295ROM + 0x00000, 21, 1); if (nRet != 0) return 1;
-
- BurnFree(DrvTempRom);
-
- Dec0DrawFunction = BaddudesDraw;
- Dec0Game = DEC0_GAME_BADDUDES;
-
- BaddudesDoReset();
-
- return 0;
-}
-
-static INT32 BirdtryInit()
-{
- INT32 nRet = 0;
-
- Dec0MachineInit();
-
- nRet = BurnLoadRom(Drv68KRom + 0x00001, 0, 2); if (nRet != 0) return 1;
- nRet = BurnLoadRom(Drv68KRom + 0x00000, 1, 2); if (nRet != 0) return 1;
- nRet = BurnLoadRom(Drv68KRom + 0x20001, 2, 2); if (nRet != 0) return 1;
- nRet = BurnLoadRom(Drv68KRom + 0x20000, 3, 2); if (nRet != 0) return 1;
- nRet = BurnLoadRom(Drv68KRom + 0x40001, 4, 2); if (nRet != 0) return 1;
- nRet = BurnLoadRom(Drv68KRom + 0x40000, 5, 2); if (nRet != 0) return 1;
-
- nRet = BurnLoadRom(DrvM6502Rom, 6, 1); if (nRet != 0) return 1;
-
- nRet = BurnLoadRom(DrvTempRom + 0x00000, 8, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x08000, 9, 1); if (nRet != 0) return 1;
- GfxDecode(0x800, 4, 8, 8, CharPlaneOffsets, CharXOffsets, CharYOffsets, 0x40, DrvTempRom, DrvChars);
-
- memset(DrvTempRom, 0, 0x80000);
- nRet = BurnLoadRom(DrvTempRom + 0x00000, 10, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x10000, 11, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x20000, 12, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x30000, 13, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x40000, 14, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x50000, 15, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x60000, 16, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x70000, 17, 1); if (nRet != 0) return 1;
- GfxDecode(0x1000, 4, 16, 16, SpritePlaneOffsets, TileXOffsets, TileYOffsets, 0x100, DrvTempRom, DrvTiles1);
-
- memset(DrvTempRom, 0, 0x80000);
- nRet = BurnLoadRom(DrvTempRom + 0x00000, 18, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x10000, 19, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x20000, 20, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x30000, 21, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x40000, 22, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x50000, 23, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x60000, 24, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x70000, 25, 1); if (nRet != 0) return 1;
- GfxDecode(0x1000, 4, 16, 16, SpritePlaneOffsets, TileXOffsets, TileYOffsets, 0x100, DrvTempRom, DrvSprites);
-
- nRet = BurnLoadRom(MSM6295ROM + 0x00000, 26, 1); if (nRet != 0) return 1;
-
- BurnFree(DrvTempRom);
-
- Dec0DrawFunction = BirdtryDraw;
- Dec0Game = DEC0_GAME_BIRDTRY;
-
- BaddudesDoReset();
-
- return 0;
-
-}
-
-static INT32 Drgninjab2Init()
-{
- INT32 nRet = 0;
-
- Dec0MachineInit();
-
- nRet = BurnLoadRom(Drv68KRom + 0x00001, 0, 2); if (nRet != 0) return 1;
- nRet = BurnLoadRom(Drv68KRom + 0x00000, 1, 2); if (nRet != 0) return 1;
- nRet = BurnLoadRom(Drv68KRom + 0x40001, 2, 2); if (nRet != 0) return 1;
- nRet = BurnLoadRom(Drv68KRom + 0x40000, 3, 2); if (nRet != 0) return 1;
-
- nRet = BurnLoadRom(DrvM6502Rom, 4, 1); if (nRet != 0) return 1;
-
- nRet = BurnLoadRom(DrvTempRom + 0x00000, 5, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x08000, 6, 1); if (nRet != 0) return 1;
- GfxDecode(0x800, 4, 8, 8, CharPlaneOffsets, CharXOffsets, CharYOffsets, 0x40, DrvTempRom, DrvChars);
-
- memset(DrvTempRom, 0, 0x80000);
- nRet = BurnLoadRom(DrvTempRom + 0x00000, 7, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x10000, 8, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x20000, 9, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x30000, 10, 1); if (nRet != 0) return 1;
- GfxDecode(0x800, 4, 16, 16, Tile1PlaneOffsets, TileXOffsets, TileYOffsets, 0x100, DrvTempRom, DrvTiles1);
-
- memset(DrvTempRom, 0, 0x80000);
- nRet = BurnLoadRom(DrvTempRom + 0x08000, 11, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x00000, 12, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x18000, 13, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x10000, 14, 1); if (nRet != 0) return 1;
- GfxDecode(0x400, 4, 16, 16, Tile2PlaneOffsets, TileXOffsets, TileYOffsets, 0x100, DrvTempRom, DrvTiles2);
-
- memset(DrvTempRom, 0, 0x80000);
- nRet = BurnLoadRom(DrvTempRom + 0x00000, 15, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x10000, 16, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x20000, 17, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x30000, 18, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x40000, 19, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x50000, 20, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x60000, 21, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x70000, 22, 1); if (nRet != 0) return 1;
- GfxDecode(0x1000, 4, 16, 16, SpritePlaneOffsets, TileXOffsets, TileYOffsets, 0x100, DrvTempRom, DrvSprites);
-
- nRet = BurnLoadRom(MSM6295ROM + 0x00000, 23, 1); if (nRet != 0) return 1;
-
- BurnFree(DrvTempRom);
-
- Dec0DrawFunction = BaddudesDraw;
- Dec0Game = DEC0_GAME_BADDUDES;
-
- BaddudesDoReset();
-
- return 0;
-}
-
-static INT32 HbarrelInit()
-{
- INT32 nRet = 0;
-
- Dec0MachineInit();
-
- nRet = BurnLoadRom(Drv68KRom + 0x00001, 0, 2); if (nRet != 0) return 1;
- nRet = BurnLoadRom(Drv68KRom + 0x00000, 1, 2); if (nRet != 0) return 1;
- nRet = BurnLoadRom(Drv68KRom + 0x20001, 2, 2); if (nRet != 0) return 1;
- nRet = BurnLoadRom(Drv68KRom + 0x20000, 3, 2); if (nRet != 0) return 1;
- nRet = BurnLoadRom(Drv68KRom + 0x40001, 4, 2); if (nRet != 0) return 1;
- nRet = BurnLoadRom(Drv68KRom + 0x40000, 5, 2); if (nRet != 0) return 1;
-
- nRet = BurnLoadRom(DrvM6502Rom, 6, 1); if (nRet != 0) return 1;
-
- nRet = BurnLoadRom(DrvTempRom + 0x00000, 7, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x10000, 8, 1); if (nRet != 0) return 1;
- GfxDecode(0x1000, 4, 8, 8, RobocopCharPlaneOffsets, CharXOffsets, CharYOffsets, 0x40, DrvTempRom, DrvChars);
-
- memset(DrvTempRom, 0, 0x80000);
- nRet = BurnLoadRom(DrvTempRom + 0x00000, 9, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x10000, 10, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x20000, 11, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x30000, 12, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x40000, 13, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x50000, 14, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x60000, 15, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x70000, 16, 1); if (nRet != 0) return 1;
- GfxDecode(0x1000, 4, 16, 16, SpritePlaneOffsets, TileXOffsets, TileYOffsets, 0x100, DrvTempRom, DrvTiles1);
-
- memset(DrvTempRom, 0, 0x80000);
- nRet = BurnLoadRom(DrvTempRom + 0x00000, 17, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x10000, 18, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x20000, 19, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x30000, 20, 1); if (nRet != 0) return 1;
- GfxDecode(0x800, 4, 16, 16, Tile1PlaneOffsets, TileXOffsets, TileYOffsets, 0x100, DrvTempRom, DrvTiles2);
-
- memset(DrvTempRom, 0, 0x80000);
- nRet = BurnLoadRom(DrvTempRom + 0x00000, 21, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x10000, 22, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x20000, 23, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x30000, 24, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x40000, 25, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x50000, 26, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x60000, 27, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x70000, 28, 1); if (nRet != 0) return 1;
- GfxDecode(0x1000, 4, 16, 16, SpritePlaneOffsets, TileXOffsets, TileYOffsets, 0x100, DrvTempRom, DrvSprites);
-
- nRet = BurnLoadRom(MSM6295ROM + 0x00000, 29, 1); if (nRet != 0) return 1;
-
- realMCU = 1;
- nRet = BurnLoadRom(DrvMCURom + 0x00000, 30, 1); if (nRet != 0) return 1;
- DrvMCUInit();
-
- BurnTimerAttachNull(10000000); // YM2203 timer, not attached to Sek
- bTimerNullCPU = 1;
-
- BurnFree(DrvTempRom);
-
- Dec0DrawFunction = HbarrelDraw;
- Dec0Game = DEC0_GAME_HBARREL;
-
- RotateSetGunPosRAM(Drv68KRam + (0x66+1), Drv68KRam + (0xaa+1), 4);
- game_rotates = 1;
-
- BaddudesDoReset();
-
- return 0;
-}
-
-static INT32 HippodrmInit()
-{
- INT32 nRet = 0;
-
- Dec0MachineInit();
-
- nRet = BurnLoadRom(Drv68KRom + 0x00001, 0, 2); if (nRet != 0) return 1;
- nRet = BurnLoadRom(Drv68KRom + 0x00000, 1, 2); if (nRet != 0) return 1;
- nRet = BurnLoadRom(Drv68KRom + 0x20001, 2, 2); if (nRet != 0) return 1;
- nRet = BurnLoadRom(Drv68KRom + 0x20000, 3, 2); if (nRet != 0) return 1;
-
- nRet = BurnLoadRom(DrvM6502Rom, 4, 1); if (nRet != 0) return 1;
-
- nRet = BurnLoadRom(DrvH6280Rom, 5, 1); if (nRet != 0) return 1;
-
- nRet = BurnLoadRom(DrvTempRom + 0x00000, 6, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x10000, 7, 1); if (nRet != 0) return 1;
- GfxDecode(0x1000, 4, 8, 8, RobocopCharPlaneOffsets, CharXOffsets, CharYOffsets, 0x40, DrvTempRom, DrvChars);
-
- memset(DrvTempRom, 0, 0x80000);
- nRet = BurnLoadRom(DrvTempRom + 0x00000, 8, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x08000, 9, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x10000, 10, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x18000, 11, 1); if (nRet != 0) return 1;
- GfxDecode(0x400, 4, 16, 16, Tile2PlaneOffsets, TileXOffsets, TileYOffsets, 0x100, DrvTempRom, DrvTiles1);
-
- memset(DrvTempRom, 0, 0x80000);
- nRet = BurnLoadRom(DrvTempRom + 0x00000, 12, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x08000, 13, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x10000, 14, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x18000, 15, 1); if (nRet != 0) return 1;
- GfxDecode(0x400, 4, 16, 16, Tile2PlaneOffsets, TileXOffsets, TileYOffsets, 0x100, DrvTempRom, DrvTiles2);
-
- memset(DrvTempRom, 0, 0x80000);
- nRet = BurnLoadRom(DrvTempRom + 0x00000, 16, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x10000, 17, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x20000, 18, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x30000, 19, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x40000, 20, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x50000, 21, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x60000, 22, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x70000, 23, 1); if (nRet != 0) return 1;
- GfxDecode(0x1000, 4, 16, 16, SpritePlaneOffsets, TileXOffsets, TileYOffsets, 0x100, DrvTempRom, DrvSprites);
-
- nRet = BurnLoadRom(MSM6295ROM + 0x00000, 24, 1); if (nRet != 0) return 1;
-
- BurnFree(DrvTempRom);
-
- for (INT32 i = 0x00000; i < 0x10000; i++) {
- DrvH6280Rom[i] = (DrvH6280Rom[i] & 0x7e) | ((DrvH6280Rom[i] & 0x1) << 7) | ((DrvH6280Rom[i] & 0x80) >> 7);
- }
- DrvH6280Rom[0x189] = 0x60;
- DrvH6280Rom[0x1af] = 0x60;
- DrvH6280Rom[0x1db] = 0x60;
- DrvH6280Rom[0x21a] = 0x60;
-
- Dec0DrawFunction = HippodrmDraw;
-
- SekOpen(0);
- SekMapHandler(1, 0x180000, 0x180fff, MAP_RAM);
- SekSetReadByteHandler(1, HippodrmShared68KReadByte);
- SekSetWriteByteHandler(1, HippodrmShared68KWriteByte);
- SekSetReadWordHandler(1, HippodrmShared68KReadWord);
- SekSetWriteWordHandler(1, HippodrmShared68KWriteWord);
- SekClose();
-
- h6280Init(0);
- h6280Open(0);
- h6280MapMemory(DrvH6280Rom , 0x000000, 0x00ffff, MAP_ROM);
- h6280MapMemory(DrvSharedRam, 0x180000, 0x1800ff, MAP_RAM);
- h6280MapMemory(DrvH6280Ram , 0x1f0000, 0x1f1fff, MAP_RAM);
- h6280SetReadHandler(HippodrmH6280ReadProg);
- h6280SetWriteHandler(HippodrmH6280WriteProg);
- h6280Close();
-
- RobocopDoReset();
-
- return 0;
-}
-
-static INT32 RobocopInit()
-{
- INT32 nRet = 0;
-
- Dec0MachineInit();
-
- nRet = BurnLoadRom(Drv68KRom + 0x00001, 0, 2); if (nRet != 0) return 1;
- nRet = BurnLoadRom(Drv68KRom + 0x00000, 1, 2); if (nRet != 0) return 1;
- nRet = BurnLoadRom(Drv68KRom + 0x20001, 2, 2); if (nRet != 0) return 1;
- nRet = BurnLoadRom(Drv68KRom + 0x20000, 3, 2); if (nRet != 0) return 1;
-
- nRet = BurnLoadRom(DrvM6502Rom, 4, 1); if (nRet != 0) return 1;
-
- nRet = BurnLoadRom(DrvH6280Rom + 0x01e00, 5, 1); if (nRet != 0) return 1;
-
- nRet = BurnLoadRom(DrvTempRom + 0x00000, 6, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x10000, 7, 1); if (nRet != 0) return 1;
- GfxDecode(0x1000, 4, 8, 8, RobocopCharPlaneOffsets, CharXOffsets, CharYOffsets, 0x40, DrvTempRom, DrvChars);
-
- memset(DrvTempRom, 0, 0x80000);
- nRet = BurnLoadRom(DrvTempRom + 0x00000, 8, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x10000, 9, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x20000, 10, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x30000, 11, 1); if (nRet != 0) return 1;
- GfxDecode(0x800, 4, 16, 16, Tile1PlaneOffsets, TileXOffsets, TileYOffsets, 0x100, DrvTempRom, DrvTiles1);
-
- memset(DrvTempRom, 0, 0x80000);
- nRet = BurnLoadRom(DrvTempRom + 0x00000, 12, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x08000, 13, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x10000, 14, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x18000, 15, 1); if (nRet != 0) return 1;
- GfxDecode(0x400, 4, 16, 16, Tile2PlaneOffsets, TileXOffsets, TileYOffsets, 0x100, DrvTempRom, DrvTiles2);
-
- memset(DrvTempRom, 0, 0x80000);
- nRet = BurnLoadRom(DrvTempRom + 0x00000, 16, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x10000, 17, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x20000, 18, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x30000, 19, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x40000, 20, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x50000, 21, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x60000, 22, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x70000, 23, 1); if (nRet != 0) return 1;
- GfxDecode(0x1000, 4, 16, 16, SpritePlaneOffsets, TileXOffsets, TileYOffsets, 0x100, DrvTempRom, DrvSprites);
-
- nRet = BurnLoadRom(MSM6295ROM + 0x00000, 24, 1); if (nRet != 0) return 1;
-
- BurnFree(DrvTempRom);
-
- Dec0DrawFunction = RobocopDraw;
-
- SekOpen(0);
- SekMapHandler(1, 0x180000, 0x180fff, MAP_RAM);
- SekSetReadByteHandler(1, RobocopShared68KReadByte);
- SekSetWriteByteHandler(1, RobocopShared68KWriteByte);
- SekSetReadWordHandler(1, RobocopShared68KReadWord);
- SekSetWriteWordHandler(1, RobocopShared68KWriteWord);
- SekClose();
-
- h6280Init(0);
- h6280Open(0);
- h6280MapMemory(DrvH6280Rom , 0x000000, 0x00ffff, MAP_ROM);
- h6280MapMemory(DrvH6280Ram , 0x1f0000, 0x1f1fff, MAP_RAM);
- h6280MapMemory(DrvSharedRam, 0x1f2000, 0x1f3fff, MAP_RAM);
- h6280SetReadHandler(RobocopH6280ReadProg);
- h6280SetWriteHandler(RobocopH6280WriteProg);
- h6280Close();
-
- RobocopDoReset();
-
- return 0;
-}
-
-static INT32 RobocopbInit()
-{
- INT32 nRet = 0;
-
- Dec0MachineInit();
-
- nRet = BurnLoadRom(Drv68KRom + 0x00001, 0, 2); if (nRet != 0) return 1;
- nRet = BurnLoadRom(Drv68KRom + 0x00000, 1, 2); if (nRet != 0) return 1;
- nRet = BurnLoadRom(Drv68KRom + 0x20001, 2, 2); if (nRet != 0) return 1;
- nRet = BurnLoadRom(Drv68KRom + 0x20000, 3, 2); if (nRet != 0) return 1;
-
- nRet = BurnLoadRom(DrvM6502Rom, 4, 1); if (nRet != 0) return 1;
-
- nRet = BurnLoadRom(DrvTempRom + 0x00000, 5, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x10000, 6, 1); if (nRet != 0) return 1;
- GfxDecode(0x1000, 4, 8, 8, RobocopCharPlaneOffsets, CharXOffsets, CharYOffsets, 0x40, DrvTempRom, DrvChars);
-
- memset(DrvTempRom, 0, 0x80000);
- nRet = BurnLoadRom(DrvTempRom + 0x00000, 7, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x10000, 8, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x20000, 9, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x30000, 10, 1); if (nRet != 0) return 1;
- GfxDecode(0x800, 4, 16, 16, Tile1PlaneOffsets, TileXOffsets, TileYOffsets, 0x100, DrvTempRom, DrvTiles1);
-
- memset(DrvTempRom, 0, 0x80000);
- nRet = BurnLoadRom(DrvTempRom + 0x00000, 11, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x08000, 12, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x10000, 13, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x18000, 14, 1); if (nRet != 0) return 1;
- GfxDecode(0x400, 4, 16, 16, Tile2PlaneOffsets, TileXOffsets, TileYOffsets, 0x100, DrvTempRom, DrvTiles2);
-
- memset(DrvTempRom, 0, 0x80000);
- nRet = BurnLoadRom(DrvTempRom + 0x00000, 15, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x10000, 16, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x20000, 17, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x30000, 18, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x40000, 19, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x50000, 20, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x60000, 21, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x70000, 22, 1); if (nRet != 0) return 1;
- GfxDecode(0x1000, 4, 16, 16, SpritePlaneOffsets, TileXOffsets, TileYOffsets, 0x100, DrvTempRom, DrvSprites);
-
- nRet = BurnLoadRom(MSM6295ROM + 0x00000, 23, 1); if (nRet != 0) return 1;
-
- BurnFree(DrvTempRom);
-
- Dec0DrawFunction = RobocopDraw;
-
- BaddudesDoReset();
-
- return 0;
-}
-
-static INT32 SlyspyDrvInit()
-{
- INT32 nLen;
-
- BurnSetRefreshRate(57.41);
-
- Mem = NULL;
- MemIndex();
- nLen = MemEnd - (UINT8 *)0;
- if ((Mem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(Mem, 0, nLen);
- MemIndex();
-
- if (LoadRomsFunction()) return 1;
-
- for (INT32 i = 0x00000; i < 0x10000; i++) {
- DrvH6280Rom[i] = (DrvH6280Rom[i] & 0x7e) | ((DrvH6280Rom[i] & 0x1) << 7) | ((DrvH6280Rom[i] & 0x80) >> 7);
- }
- DrvH6280Rom[0xf2d] = 0xea;
- DrvH6280Rom[0xf2e] = 0xea;
-
- SekInit(0, 0x68000);
- SekOpen(0);
- SekMapMemory(Drv68KRom , 0x000000, 0x05ffff, MAP_ROM);
- SekMapMemory(DrvVideo2ColScrollRam , 0x300800, 0x30087f, MAP_RAM);
- SekMapMemory(DrvVideo2RowScrollRam , 0x300c00, 0x300fff, MAP_RAM);
- SekMapMemory(DrvVideo2Ram , 0x301000, 0x3017ff, MAP_RAM);
- SekMapMemory(Drv68KRam , 0x304000, 0x307fff, MAP_RAM);
- SekMapMemory(DrvSpriteRam , 0x308000, 0x3087ff, MAP_RAM);
- SekMapMemory(DrvPaletteRam , 0x310000, 0x3107ff, MAP_RAM);
- SekSetReadByteHandler(0, Slyspy68KReadByte);
- SekSetWriteByteHandler(0, Slyspy68KWriteByte);
- SekSetReadWordHandler(0, Slyspy68KReadWord);
- SekSetWriteWordHandler(0, Slyspy68KWriteWord);
- SekClose();
-
- h6280Init(0);
- h6280Open(0);
- h6280MapMemory(DrvH6280Rom , 0x000000, 0x00ffff, MAP_ROM);
- h6280MapMemory(DrvH6280Ram , 0x1f0000, 0x1f1fff, MAP_RAM);
- h6280SetReadHandler(SlyspyH6280ReadProg);
- h6280SetWriteHandler(SlyspyH6280WriteProg);
- h6280Close();
-
- GenericTilesInit();
-
- BurnYM3812Init(1, 3000000, &Dec1YM3812IRQHandler, &Dec1YM3812SynchroniseStream, 1);
- BurnTimerAttachH6280YM3812(2000000);
- BurnYM3812SetRoute(0, BURN_SND_YM3812_ROUTE, 0.80, BURN_SND_ROUTE_BOTH);
-
- BurnYM2203Init(1, 1500000, NULL, Dec0YM2203SynchroniseStream, Dec0YM2203GetTime, 0);
- BurnTimerAttachSek(10000000);
- BurnYM2203SetRoute(0, BURN_SND_YM2203_YM2203_ROUTE, 0.35, BURN_SND_ROUTE_BOTH);
- BurnYM2203SetRoute(0, BURN_SND_YM2203_AY8910_ROUTE_1, 0.90, BURN_SND_ROUTE_BOTH);
- BurnYM2203SetRoute(0, BURN_SND_YM2203_AY8910_ROUTE_2, 0.90, BURN_SND_ROUTE_BOTH);
- BurnYM2203SetRoute(0, BURN_SND_YM2203_AY8910_ROUTE_3, 0.90, BURN_SND_ROUTE_BOTH);
-
- MSM6295Init(0, 1000000 / 132, 1);
- MSM6295SetRoute(0, 0.80, BURN_SND_ROUTE_BOTH);
-
- Dec0DrawFunction = SlyspyDraw;
- DrvSpriteDMABufferRam = DrvSpriteRam;
-
- SlyspyDoReset();
-
- return 0;
-}
-
-static INT32 SlyspyLoadRoms()
-{
- INT32 nRet;
-
- DrvTempRom = (UINT8 *)BurnMalloc(0x80000);
-
- nRet = BurnLoadRom(Drv68KRom + 0x00001, 0, 2); if (nRet != 0) return 1;
- nRet = BurnLoadRom(Drv68KRom + 0x00000, 1, 2); if (nRet != 0) return 1;
- nRet = BurnLoadRom(Drv68KRom + 0x20001, 2, 2); if (nRet != 0) return 1;
- nRet = BurnLoadRom(Drv68KRom + 0x20000, 3, 2); if (nRet != 0) return 1;
-
- nRet = BurnLoadRom(DrvH6280Rom, 4, 1); if (nRet != 0) return 1;
-
- nRet = BurnLoadRom(DrvTempRom + 0x10000, 5, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x18000, 6, 1); if (nRet != 0) return 1;
- memcpy(DrvTempRom + 0x4000, DrvTempRom + 0x10000, 0x4000);
- memcpy(DrvTempRom + 0x0000, DrvTempRom + 0x14000, 0x4000);
- memcpy(DrvTempRom + 0xc000, DrvTempRom + 0x18000, 0x4000);
- memcpy(DrvTempRom + 0x8000, DrvTempRom + 0x1c000, 0x4000);
- GfxDecode(0x800, 4, 8, 8, CharPlaneOffsets, CharXOffsets, CharYOffsets, 0x40, DrvTempRom, DrvChars);
-
- memset(DrvTempRom, 0, 0x80000);
- nRet = BurnLoadRom(DrvTempRom + 0x00000, 7, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x10000, 8, 1); if (nRet != 0) return 1;
- GfxDecode(0x400, 4, 16, 16, Tile2PlaneOffsets, TileXOffsets, TileYOffsets, 0x100, DrvTempRom, DrvTiles1);
-
- memset(DrvTempRom, 0, 0x80000);
- nRet = BurnLoadRom(DrvTempRom + 0x00000, 9, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x20000, 10, 1); if (nRet != 0) return 1;
- GfxDecode(0x800, 4, 16, 16, Tile1PlaneOffsets, TileXOffsets, TileYOffsets, 0x100, DrvTempRom, DrvTiles2);
-
- memset(DrvTempRom, 0, 0x80000);
- nRet = BurnLoadRom(DrvTempRom + 0x00000, 11, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x20000, 12, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x40000, 13, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x60000, 14, 1); if (nRet != 0) return 1;
- GfxDecode(0x1000, 4, 16, 16, SpritePlaneOffsets, TileXOffsets, TileYOffsets, 0x100, DrvTempRom, DrvSprites);
-
- nRet = BurnLoadRom(MSM6295ROM + 0x00000, 15, 1); if (nRet != 0) return 1;
-
- BurnFree(DrvTempRom);
-
- return 0;
-}
-
-static INT32 SlyspyInit()
-{
- LoadRomsFunction = SlyspyLoadRoms;
-
- return SlyspyDrvInit();
-}
-
-static INT32 BouldashLoadRoms()
-{
- INT32 nRet;
-
- DrvTempRom = (UINT8 *)BurnMalloc(0x40000);
-
- nRet = BurnLoadRom(Drv68KRom + 0x00001, 0, 2); if (nRet != 0) return 1;
- nRet = BurnLoadRom(Drv68KRom + 0x00000, 1, 2); if (nRet != 0) return 1;
- nRet = BurnLoadRom(Drv68KRom + 0x20001, 2, 2); if (nRet != 0) return 1;
- nRet = BurnLoadRom(Drv68KRom + 0x20000, 3, 2); if (nRet != 0) return 1;
- nRet = BurnLoadRom(Drv68KRom + 0x40001, 4, 2); if (nRet != 0) return 1;
- nRet = BurnLoadRom(Drv68KRom + 0x40000, 5, 2); if (nRet != 0) return 1;
-
- nRet = BurnLoadRom(DrvH6280Rom, 6, 1); if (nRet != 0) return 1;
-
- nRet = BurnLoadRom(DrvTempRom + 0x20000, 7, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x30000, 8, 1); if (nRet != 0) return 1;
- memcpy(DrvTempRom + 0x08000, DrvTempRom + 0x20000, 0x8000);
- memcpy(DrvTempRom + 0x00000, DrvTempRom + 0x28000, 0x8000);
- memcpy(DrvTempRom + 0x18000, DrvTempRom + 0x30000, 0x8000);
- memcpy(DrvTempRom + 0x10000, DrvTempRom + 0x38000, 0x8000);
- GfxDecode(0x1000, 4, 8, 8, RobocopCharPlaneOffsets, CharXOffsets, CharYOffsets, 0x40, DrvTempRom, DrvChars);
-
- memset(DrvTempRom, 0, 0x40000);
- nRet = BurnLoadRom(DrvTempRom + 0x00000, 9, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x10000, 10, 1); if (nRet != 0) return 1;
- GfxDecode(0x400, 4, 16, 16, Tile2PlaneOffsets, TileXOffsets, TileYOffsets, 0x100, DrvTempRom, DrvTiles1);
-
- memset(DrvTempRom, 0, 0x40000);
- nRet = BurnLoadRom(DrvTempRom + 0x00000, 11, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x20000, 12, 1); if (nRet != 0) return 1;
- GfxDecode(0x800, 4, 16, 16, Tile1PlaneOffsets, TileXOffsets, TileYOffsets, 0x100, DrvTempRom, DrvTiles2);
-
- memset(DrvTempRom, 0, 0x40000);
- nRet = BurnLoadRom(DrvTempRom + 0x00000, 13, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x10000, 14, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x20000, 15, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x30000, 16, 1); if (nRet != 0) return 1;
- GfxDecode(0x0800, 4, 16, 16, Tile1PlaneOffsets, TileXOffsets, TileYOffsets, 0x100, DrvTempRom, DrvSprites);
-
- nRet = BurnLoadRom(MSM6295ROM + 0x00000, 17, 1); if (nRet != 0) return 1;
-
- BurnFree(DrvTempRom);
-
- return 0;
-}
-
-static INT32 BouldashInit()
-{
- LoadRomsFunction = BouldashLoadRoms;
-
- return SlyspyDrvInit();
-}
-
-static INT32 MidresInit()
-{
- INT32 nRet = 0, nLen;
-
- BurnSetRefreshRate(57.41);
-
- Mem = NULL;
- MemIndex();
- nLen = MemEnd - (UINT8 *)0;
- if ((Mem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(Mem, 0, nLen);
- MemIndex();
-
- DrvTempRom = (UINT8 *)BurnMalloc(0x80000);
-
- nRet = BurnLoadRom(Drv68KRom + 0x00001, 0, 2); if (nRet != 0) return 1;
- nRet = BurnLoadRom(Drv68KRom + 0x00000, 1, 2); if (nRet != 0) return 1;
- nRet = BurnLoadRom(Drv68KRom + 0x40001, 2, 2); if (nRet != 0) return 1;
- nRet = BurnLoadRom(Drv68KRom + 0x40000, 3, 2); if (nRet != 0) return 1;
-
- nRet = BurnLoadRom(DrvH6280Rom, 4, 1); if (nRet != 0) return 1;
-
- nRet = BurnLoadRom(DrvTempRom + 0x20000, 5, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x30000, 6, 1); if (nRet != 0) return 1;
- memcpy(DrvTempRom + 0x08000, DrvTempRom + 0x20000, 0x8000);
- memcpy(DrvTempRom + 0x00000, DrvTempRom + 0x28000, 0x8000);
- memcpy(DrvTempRom + 0x18000, DrvTempRom + 0x30000, 0x8000);
- memcpy(DrvTempRom + 0x10000, DrvTempRom + 0x38000, 0x8000);
- GfxDecode(0x1000, 4, 8, 8, RobocopCharPlaneOffsets, CharXOffsets, CharYOffsets, 0x40, DrvTempRom, DrvChars);
-
- memset(DrvTempRom, 0, 0x80000);
- nRet = BurnLoadRom(DrvTempRom + 0x00000, 7, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x20000, 8, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x40000, 9, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x60000, 10, 1); if (nRet != 0) return 1;
- GfxDecode(0x1000, 4, 16, 16, SpritePlaneOffsets, TileXOffsets, TileYOffsets, 0x100, DrvTempRom, DrvTiles1);
-
- memset(DrvTempRom, 0, 0x80000);
- nRet = BurnLoadRom(DrvTempRom + 0x00000, 11, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x20000, 12, 1); if (nRet != 0) return 1;
- GfxDecode(0x800, 4, 16, 16, Tile1PlaneOffsets, TileXOffsets, TileYOffsets, 0x100, DrvTempRom, DrvTiles2);
-
- memset(DrvTempRom, 0, 0x80000);
- nRet = BurnLoadRom(DrvTempRom + 0x00000, 13, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x20000, 14, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x40000, 15, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x60000, 16, 1); if (nRet != 0) return 1;
- GfxDecode(0x1000, 4, 16, 16, SpritePlaneOffsets, TileXOffsets, TileYOffsets, 0x100, DrvTempRom, DrvSprites);
-
- nRet = BurnLoadRom(MSM6295ROM + 0x00000, 17, 1); if (nRet != 0) return 1;
-
- BurnFree(DrvTempRom);
-
- SekInit(0, 0x68000);
- SekOpen(0);
- SekMapMemory(Drv68KRom , 0x000000, 0x07ffff, MAP_ROM);
- SekMapMemory(Drv68KRam , 0x100000, 0x103fff, MAP_RAM);
- SekMapMemory(DrvSpriteRam , 0x120000, 0x1207ff, MAP_RAM);
- SekMapMemory(DrvPaletteRam , 0x140000, 0x1407ff, MAP_RAM);
- SekMapMemory(DrvVideo1ColScrollRam , 0x240000, 0x2400ff, MAP_RAM);
- SekMapMemory(DrvVideo1RowScrollRam , 0x240400, 0x2407ff, MAP_RAM);
- SekMapMemory(DrvVideo2ColScrollRam , 0x2c0000, 0x2c00ff, MAP_RAM);
- SekMapMemory(DrvVideo2RowScrollRam , 0x2c0400, 0x2c07ff, MAP_RAM);
- SekMapMemory(DrvCharColScrollRam , 0x340000, 0x3400ff, MAP_RAM);
- SekMapMemory(DrvCharRowScrollRam , 0x340400, 0x3407ff, MAP_RAM);
- // moved from Midres68KRead/WriteByte/Word
- SekMapMemory(DrvVideo1Ram , 0x220000, 0x2207ff, MAP_RAM);
- SekMapMemory(DrvVideo1Ram , 0x220800, 0x220fff, MAP_RAM); // mirror
- SekMapMemory(DrvVideo2Ram , 0x2a0000, 0x2a07ff, MAP_RAM);
- SekMapMemory(DrvCharRam , 0x320000, 0x321fff, MAP_RAM);
- //
- SekSetReadByteHandler(0, Midres68KReadByte);
- SekSetWriteByteHandler(0, Midres68KWriteByte);
- SekSetReadWordHandler(0, Midres68KReadWord);
- SekSetWriteWordHandler(0, Midres68KWriteWord);
- SekClose();
-
- h6280Init(0);
- h6280Open(0);
- h6280MapMemory(DrvH6280Rom , 0x000000, 0x00ffff, MAP_ROM);
- h6280MapMemory(DrvH6280Ram , 0x1f0000, 0x1f1fff, MAP_RAM);
- h6280SetReadHandler(MidresH6280ReadProg);
- h6280SetWriteHandler(MidresH6280WriteProg);
- h6280Close();
-
- GenericTilesInit();
-
- BurnYM3812Init(1, 3000000, &Dec1YM3812IRQHandler, &Dec1YM3812SynchroniseStream, 1);
- BurnTimerAttachH6280YM3812(2000000);
- BurnYM3812SetRoute(0, BURN_SND_YM3812_ROUTE, 0.80, BURN_SND_ROUTE_BOTH);
-
- BurnYM2203Init(1, 1500000, NULL, Dec0YM2203SynchroniseStream, Dec0YM2203GetTime, 0);
- BurnTimerAttachSek(10000000);
- BurnYM2203SetRoute(0, BURN_SND_YM2203_YM2203_ROUTE, 0.35, BURN_SND_ROUTE_BOTH);
- BurnYM2203SetRoute(0, BURN_SND_YM2203_AY8910_ROUTE_1, 0.75, BURN_SND_ROUTE_BOTH);
- BurnYM2203SetRoute(0, BURN_SND_YM2203_AY8910_ROUTE_2, 0.75, BURN_SND_ROUTE_BOTH);
- BurnYM2203SetRoute(0, BURN_SND_YM2203_AY8910_ROUTE_3, 0.75, BURN_SND_ROUTE_BOTH);
-
- MSM6295Init(0, 1000000 / 132, 1);
- MSM6295SetRoute(0, 1.80, BURN_SND_ROUTE_BOTH);
-
- Dec0DrawFunction = MidresDraw;
- DrvSpriteDMABufferRam = DrvSpriteRam;
-
- DrvCharPalOffset = 256;
- DrvSpritePalOffset = 0;
-
- RotateSetGunPosRAM(Drv68KRam + (0x21bc+1), Drv68KRam + (0x2238+1), 4);
- game_rotates = 1;
-
- Dec0Game = DEC1_GAME_MIDRES;
-
- SlyspyDoReset();
-
- return 0;
-}
-
-static INT32 DrvExit()
-{
- SekExit();
-
- BurnYM2203Exit();
- BurnYM3812Exit();
- MSM6295Exit(0);
-
- if (realMCU)
- DrvMCUExit();
-
- GenericTilesExit();
-
- i8751RetVal = 0;
- DrvVBlank = 0;
- DrvSoundLatch = 0;
- DrvFlipScreen = 0;
- DrvPriority = 0;
-
- DrvCharTilemapWidth = 0;
- DrvCharTilemapHeight = 0;
- DrvTile1TilemapWidth = 0;
- DrvTile1TilemapHeight = 0;
- DrvTile2TilemapWidth = 0;
- DrvTile2TilemapHeight = 0;
- memset(DrvTileRamBank, 0, 3);
- DrvSlyspyProtValue = 0;
-
- Dec0DrawFunction = NULL;
- LoadRomsFunction = NULL;
-
- Dec0Game = 0;
-
- DrvCharPalOffset = 0;
- DrvSpritePalOffset = 256;
-
- game_rotates = 0;
- realMCU = 0;
-
- bTimerNullCPU = 0;
-
- BurnFree(Mem);
-
- return 0;
-}
-
-static INT32 BaddudesExit()
-{
- M6502Exit();
- return DrvExit();
-}
-
-static INT32 RobocopExit()
-{
- h6280Exit();
- return BaddudesExit();
-}
-
-static INT32 SlyspyExit()
-{
- h6280Exit();
- return DrvExit();
-}
-
-static inline UINT8 pal4bit(UINT8 bits)
-{
- bits &= 0x0f;
- return (bits << 4) | bits;
-}
-
-static void DrvCalcPalette()
-{
- UINT16 *PaletteRam = (UINT16*)DrvPaletteRam;
- UINT16 *Palette2Ram = (UINT16*)DrvPalette2Ram;
-
- INT32 r, g, b;
-
- for (INT32 i = 0; i < 0x400; i++) {
- r = (BURN_ENDIAN_SWAP_INT16(PaletteRam[i]) >> 0) & 0xff;
- g = (BURN_ENDIAN_SWAP_INT16(PaletteRam[i]) >> 8) & 0xff;
- b = (BURN_ENDIAN_SWAP_INT16(Palette2Ram[i]) >> 0) & 0xff;
-
- DrvPalette[i] = BurnHighCol(r, g, b, 0);
- }
-}
-
-static void Dec1CalcPalette()
-{
- UINT16 *PaletteRam = (UINT16*)DrvPaletteRam;
-
- INT32 r, g, b;
-
- for (INT32 i = 0; i < 0x400; i++) {
- r = pal4bit(BURN_ENDIAN_SWAP_INT16(PaletteRam[i]) >> 0);
- g = pal4bit(BURN_ENDIAN_SWAP_INT16(PaletteRam[i]) >> 4);
- b = pal4bit(BURN_ENDIAN_SWAP_INT16(PaletteRam[i]) >> 8);
-
- DrvPalette[i] = BurnHighCol(r, g, b, 0);
- }
-}
-
-#define PLOTPIXEL(x, po) pPixel[x] = nPalette | pTileData[x] | po;
-#define PLOTPIXEL_FLIPX(x, a, po) pPixel[x] = nPalette | pTileData[a] | po;
-#define PLOTPIXEL_MASK(x, mc, po) if (pTileData[x] != mc) {pPixel[x] = nPalette | pTileData[x] | po;}
-#define PLOTPIXEL_MASK_FLIPX(x, a, mc, po) if (pTileData[a] != mc) {pPixel[x] = nPalette | pTileData[a] | po;}
-#define CLIPPIXEL(x, sx, mx, a) if ((sx + x) >= 0 && (sx + x) < mx) { a; };
-
-static void Dec0Render8x8Tile_Mask(UINT16* pDestDraw, INT32 nTileNumber, INT32 StartX, INT32 StartY, INT32 nTilePalette, INT32 nColourDepth, INT32 nMaskColour, INT32 nPaletteOffset, UINT8 *pTile, INT32 TilemapWidth)
-{
- UINT32 nPalette = nTilePalette << nColourDepth;
- pTileData = pTile + (nTileNumber << 6);
-
- UINT16* pPixel = pDestDraw + (StartY * TilemapWidth) + StartX;
-
- for (INT32 y = 0; y < 8; y++, pPixel += TilemapWidth, pTileData += 8) {
- PLOTPIXEL_MASK( 0, nMaskColour, nPaletteOffset);
- PLOTPIXEL_MASK( 1, nMaskColour, nPaletteOffset);
- PLOTPIXEL_MASK( 2, nMaskColour, nPaletteOffset);
- PLOTPIXEL_MASK( 3, nMaskColour, nPaletteOffset);
- PLOTPIXEL_MASK( 4, nMaskColour, nPaletteOffset);
- PLOTPIXEL_MASK( 5, nMaskColour, nPaletteOffset);
- PLOTPIXEL_MASK( 6, nMaskColour, nPaletteOffset);
- PLOTPIXEL_MASK( 7, nMaskColour, nPaletteOffset);
- }
-}
-
-static void Dec0Render8x8Tile_Mask_FlipXY(UINT16* pDestDraw, INT32 nTileNumber, INT32 StartX, INT32 StartY, INT32 nTilePalette, INT32 nColourDepth, INT32 nMaskColour, INT32 nPaletteOffset, UINT8 *pTile, INT32 TilemapWidth)
-{
- UINT32 nPalette = nTilePalette << nColourDepth;
- pTileData = pTile + (nTileNumber << 6);
-
- UINT16* pPixel = pDestDraw + ((StartY + 7) * TilemapWidth) + StartX;
-
- for (INT32 y = 7; y >= 0; y--, pPixel -= TilemapWidth, pTileData += 8) {
- PLOTPIXEL_MASK_FLIPX(7, 0, nMaskColour, nPaletteOffset);
- PLOTPIXEL_MASK_FLIPX(6, 1, nMaskColour, nPaletteOffset);
- PLOTPIXEL_MASK_FLIPX(5, 2, nMaskColour, nPaletteOffset);
- PLOTPIXEL_MASK_FLIPX(4, 3, nMaskColour, nPaletteOffset);
- PLOTPIXEL_MASK_FLIPX(3, 4, nMaskColour, nPaletteOffset);
- PLOTPIXEL_MASK_FLIPX(2, 5, nMaskColour, nPaletteOffset);
- PLOTPIXEL_MASK_FLIPX(1, 6, nMaskColour, nPaletteOffset);
- PLOTPIXEL_MASK_FLIPX(0, 7, nMaskColour, nPaletteOffset);
- }
-}
-
-static void Dec0Render16x16Tile(UINT16* pDestDraw, INT32 nTileNumber, INT32 StartX, INT32 StartY, INT32 nTilePalette, INT32 nColourDepth, INT32 nPaletteOffset, UINT8 *pTile, INT32 TilemapWidth)
-{
- UINT32 nPalette = nTilePalette << nColourDepth;
- pTileData = pTile + (nTileNumber << 8);
-
- UINT16* pPixel = pDestDraw + (StartY * TilemapWidth) + StartX;
-
- for (INT32 y = 0; y < 16; y++, pPixel += TilemapWidth, pTileData += 16) {
- PLOTPIXEL( 0, nPaletteOffset);
- PLOTPIXEL( 1, nPaletteOffset);
- PLOTPIXEL( 2, nPaletteOffset);
- PLOTPIXEL( 3, nPaletteOffset);
- PLOTPIXEL( 4, nPaletteOffset);
- PLOTPIXEL( 5, nPaletteOffset);
- PLOTPIXEL( 6, nPaletteOffset);
- PLOTPIXEL( 7, nPaletteOffset);
- PLOTPIXEL( 8, nPaletteOffset);
- PLOTPIXEL( 9, nPaletteOffset);
- PLOTPIXEL(10, nPaletteOffset);
- PLOTPIXEL(11, nPaletteOffset);
- PLOTPIXEL(12, nPaletteOffset);
- PLOTPIXEL(13, nPaletteOffset);
- PLOTPIXEL(14, nPaletteOffset);
- PLOTPIXEL(15, nPaletteOffset);
- }
-}
-
-static void Dec0Render16x16Tile_FlipXY(UINT16* pDestDraw, INT32 nTileNumber, INT32 StartX, INT32 StartY, INT32 nTilePalette, INT32 nColourDepth, INT32 nPaletteOffset, UINT8 *pTile, INT32 TilemapWidth)
-{
- UINT32 nPalette = nTilePalette << nColourDepth;
- pTileData = pTile + (nTileNumber << 8);
-
- UINT16* pPixel = pDestDraw + ((StartY + 15) * TilemapWidth) + StartX;
-
- for (INT32 y = 15; y >= 0; y--, pPixel -= TilemapWidth, pTileData += 16) {
- PLOTPIXEL_FLIPX(15, 0, nPaletteOffset);
- PLOTPIXEL_FLIPX(14, 1, nPaletteOffset);
- PLOTPIXEL_FLIPX(13, 2, nPaletteOffset);
- PLOTPIXEL_FLIPX(12, 3, nPaletteOffset);
- PLOTPIXEL_FLIPX(11, 4, nPaletteOffset);
- PLOTPIXEL_FLIPX(10, 5, nPaletteOffset);
- PLOTPIXEL_FLIPX( 9, 6, nPaletteOffset);
- PLOTPIXEL_FLIPX( 8, 7, nPaletteOffset);
- PLOTPIXEL_FLIPX( 7, 8, nPaletteOffset);
- PLOTPIXEL_FLIPX( 6, 9, nPaletteOffset);
- PLOTPIXEL_FLIPX( 5, 10, nPaletteOffset);
- PLOTPIXEL_FLIPX( 4, 11, nPaletteOffset);
- PLOTPIXEL_FLIPX( 3, 12, nPaletteOffset);
- PLOTPIXEL_FLIPX( 2, 13, nPaletteOffset);
- PLOTPIXEL_FLIPX( 1, 14, nPaletteOffset);
- PLOTPIXEL_FLIPX( 0, 15, nPaletteOffset);
- }
-}
-
-static void Dec0Render16x16Tile_Mask(UINT16* pDestDraw, INT32 nTileNumber, INT32 StartX, INT32 StartY, INT32 nTilePalette, INT32 nColourDepth, INT32 nMaskColour, INT32 nPaletteOffset, UINT8 *pTile, INT32 TilemapWidth)
-{
- UINT32 nPalette = nTilePalette << nColourDepth;
- pTileData = pTile + (nTileNumber << 8);
-
- UINT16* pPixel = pDestDraw + (StartY * TilemapWidth) + StartX;
-
- for (INT32 y = 0; y < 16; y++, pPixel += TilemapWidth, pTileData += 16) {
- PLOTPIXEL_MASK( 0, nMaskColour, nPaletteOffset);
- PLOTPIXEL_MASK( 1, nMaskColour, nPaletteOffset);
- PLOTPIXEL_MASK( 2, nMaskColour, nPaletteOffset);
- PLOTPIXEL_MASK( 3, nMaskColour, nPaletteOffset);
- PLOTPIXEL_MASK( 4, nMaskColour, nPaletteOffset);
- PLOTPIXEL_MASK( 5, nMaskColour, nPaletteOffset);
- PLOTPIXEL_MASK( 6, nMaskColour, nPaletteOffset);
- PLOTPIXEL_MASK( 7, nMaskColour, nPaletteOffset);
- PLOTPIXEL_MASK( 8, nMaskColour, nPaletteOffset);
- PLOTPIXEL_MASK( 9, nMaskColour, nPaletteOffset);
- PLOTPIXEL_MASK(10, nMaskColour, nPaletteOffset);
- PLOTPIXEL_MASK(11, nMaskColour, nPaletteOffset);
- PLOTPIXEL_MASK(12, nMaskColour, nPaletteOffset);
- PLOTPIXEL_MASK(13, nMaskColour, nPaletteOffset);
- PLOTPIXEL_MASK(14, nMaskColour, nPaletteOffset);
- PLOTPIXEL_MASK(15, nMaskColour, nPaletteOffset);
- }
-}
-
-static void Dec0Render16x16Tile_Mask_FlipXY(UINT16* pDestDraw, INT32 nTileNumber, INT32 StartX, INT32 StartY, INT32 nTilePalette, INT32 nColourDepth, INT32 nMaskColour, INT32 nPaletteOffset, UINT8 *pTile, INT32 TilemapWidth)
-{
- UINT32 nPalette = nTilePalette << nColourDepth;
- pTileData = pTile + (nTileNumber << 8);
-
- UINT16* pPixel = pDestDraw + ((StartY + 15) * TilemapWidth) + StartX;
-
- for (INT32 y = 15; y >= 0; y--, pPixel -= TilemapWidth, pTileData += 16) {
- PLOTPIXEL_MASK_FLIPX(15, 0, nMaskColour, nPaletteOffset);
- PLOTPIXEL_MASK_FLIPX(14, 1, nMaskColour, nPaletteOffset);
- PLOTPIXEL_MASK_FLIPX(13, 2, nMaskColour, nPaletteOffset);
- PLOTPIXEL_MASK_FLIPX(12, 3, nMaskColour, nPaletteOffset);
- PLOTPIXEL_MASK_FLIPX(11, 4, nMaskColour, nPaletteOffset);
- PLOTPIXEL_MASK_FLIPX(10, 5, nMaskColour, nPaletteOffset);
- PLOTPIXEL_MASK_FLIPX( 9, 6, nMaskColour, nPaletteOffset);
- PLOTPIXEL_MASK_FLIPX( 8, 7, nMaskColour, nPaletteOffset);
- PLOTPIXEL_MASK_FLIPX( 7, 8, nMaskColour, nPaletteOffset);
- PLOTPIXEL_MASK_FLIPX( 6, 9, nMaskColour, nPaletteOffset);
- PLOTPIXEL_MASK_FLIPX( 5, 10, nMaskColour, nPaletteOffset);
- PLOTPIXEL_MASK_FLIPX( 4, 11, nMaskColour, nPaletteOffset);
- PLOTPIXEL_MASK_FLIPX( 3, 12, nMaskColour, nPaletteOffset);
- PLOTPIXEL_MASK_FLIPX( 2, 13, nMaskColour, nPaletteOffset);
- PLOTPIXEL_MASK_FLIPX( 1, 14, nMaskColour, nPaletteOffset);
- PLOTPIXEL_MASK_FLIPX( 0, 15, nMaskColour, nPaletteOffset);
- }
-}
-
-#undef PLOTPIXEL
-#undef PLOTPIXEL_FLIPX
-#undef PLOTPIXEL_MASK
-#undef CLIPPIXEL
-
-#define TILEMAP_BOTH_LAYERS 2
-#define TILEMAP_LAYER0 1
-#define TILEMAP_LAYER1 0
-
-static void DrvRenderCustomTilemap(UINT16 *pSrc, UINT16 *pControl0, UINT16 *pControl1, UINT16 *RowScrollRam, UINT16 *ColScrollRam, INT32 TilemapWidth, INT32 TilemapHeight, INT32 Opaque, INT32 DrawLayer)
-{
- INT32 x, y, xSrc, ySrc, ColOffset = 0, pPixel;
- UINT32 xScroll = BURN_ENDIAN_SWAP_INT16(pControl1[0]);
- UINT32 yScroll = BURN_ENDIAN_SWAP_INT16(pControl1[1]);
- INT32 WidthMask = TilemapWidth - 1;
- INT32 HeightMask = TilemapHeight - 1;
- INT32 RowScrollEnabled = BURN_ENDIAN_SWAP_INT16(pControl0[0]) & 0x04;
- INT32 ColScrollEnabled = BURN_ENDIAN_SWAP_INT16(pControl0[0]) & 0x08;
-
- ySrc = yScroll;
-
- ySrc += 8;
-
- for (y = 0; y < nScreenHeight; y++) {
- if (RowScrollEnabled) {
- xSrc = xScroll + BURN_ENDIAN_SWAP_INT16(RowScrollRam[(ySrc >> (BURN_ENDIAN_SWAP_INT16(pControl1[3]) & 0x0f)) & (0x1ff >> (BURN_ENDIAN_SWAP_INT16(pControl1[3]) & 0x0f))]);
- } else {
- xSrc = xScroll;
- }
-
- xSrc &= WidthMask;
-
- if (DrvFlipScreen) xSrc = -xSrc;
-
- for (x = 0; x < nScreenWidth; x++) {
- if (ColScrollEnabled) ColOffset = BURN_ENDIAN_SWAP_INT16(ColScrollRam[((xSrc >> 3) >> (BURN_ENDIAN_SWAP_INT16(pControl1[2]) & 0x0f)) & (0x3f >> (BURN_ENDIAN_SWAP_INT16(pControl1[2]) & 0x0f))]);
-
- pPixel = pSrc[(((ySrc + ColOffset) & HeightMask) * TilemapWidth) + (xSrc & WidthMask)];
-
- xSrc++;
-
- if (Opaque || (pPixel & 0x0f)) {
- if (DrawLayer == TILEMAP_LAYER0) {
- if ((pPixel & 0x88) == 0x88) pTransDraw[(y * nScreenWidth) + x] = pPixel;
- } else {
- pTransDraw[(y * nScreenWidth) + x] = pPixel;
- }
- }
- }
-
- ySrc++;
- }
-}
-
-static void DrvRenderTile1Layer(INT32 Opaque, INT32 DrawLayer)
-{
- INT32 mx, my, Code, Attr, Colour, x, y, TileIndex, Layer;
- UINT16 *Control0 = (UINT16*)DrvVideo1Ctrl0Ram;
- UINT16 *VideoRam = (UINT16*)DrvVideo1Ram;
-
- INT32 RenderType = BURN_ENDIAN_SWAP_INT16(Control0[3]) & 0x03;
-
- switch (RenderType) {
- case 0x00: {
- DrvTile1TilemapWidth = 1024;
- DrvTile1TilemapHeight = 256;
- break;
- }
-
- case 0x01: {
- DrvTile1TilemapWidth = 512;
- DrvTile1TilemapHeight = 512;
- break;
- }
-
- case 0x02: {
- DrvTile1TilemapWidth = 256;
- DrvTile1TilemapHeight = 1024;
- break;
- }
- }
-
- memset(pTile1LayerDraw, 0, DrvTile1TilemapWidth * DrvTile1TilemapHeight * sizeof(UINT16));
-
- for (my = 0; my < (DrvTile1TilemapHeight / 16); my++) {
- for (mx = 0; mx < (DrvTile1TilemapWidth / 16); mx++) {
- TileIndex = (mx & 0x0f) + ((my & 0x0f) << 4) + ((mx & 0x30) << 4);
- if (RenderType == 1) TileIndex = (mx & 0x0f) + ((my & 0x0f) << 4) + ((my & 0x10) << 4) + ((mx & 0x10) << 5);
- if (RenderType == 2) TileIndex = (mx & 0x0f) + ((my & 0x3f) << 4);
- if (DrvTileRamBank[1] & 0x01) TileIndex += 0x1000;
-
- Attr = BURN_ENDIAN_SWAP_INT16(VideoRam[TileIndex]);
- Code = Attr & 0xfff;
- Colour = Attr >> 12;
- Layer = (Attr >> 12) > 7;
-
- if (DrawLayer == TILEMAP_BOTH_LAYERS || DrawLayer == Layer) {
- x = 16 * mx;
- y = 16 * my;
-
- if (Opaque) {
- if (DrvFlipScreen) {
- x = 240 - x;
- y = 240 - y;
- x &= (DrvTile1TilemapWidth - 1);
- y &= (DrvTile1TilemapHeight - 1);
- Dec0Render16x16Tile_FlipXY(pTile1LayerDraw, Code, x, y, Colour, 4, 512, DrvTiles1, DrvTile1TilemapWidth);
- } else {
- Dec0Render16x16Tile(pTile1LayerDraw, Code, x, y, Colour, 4, 512, DrvTiles1, DrvTile1TilemapWidth);
- }
- } else {
- if (DrvFlipScreen) {
- x = 240 - x;
- y = 240 - y;
- x &= (DrvTile1TilemapWidth - 1);
- y &= (DrvTile1TilemapHeight - 1);
- Dec0Render16x16Tile_Mask_FlipXY(pTile1LayerDraw, Code, x, y, Colour, 4, 0, 512, DrvTiles1, DrvTile1TilemapWidth);
- } else {
- Dec0Render16x16Tile_Mask(pTile1LayerDraw, Code, x, y, Colour, 4, 0, 512, DrvTiles1, DrvTile1TilemapWidth);
- }
- }
- }
- }
- }
-
- DrvRenderCustomTilemap(pTile1LayerDraw, (UINT16*)DrvVideo1Ctrl0Ram, (UINT16*)DrvVideo1Ctrl1Ram, (UINT16*)DrvVideo1RowScrollRam, (UINT16*)DrvVideo1ColScrollRam, DrvTile1TilemapWidth, DrvTile1TilemapHeight, Opaque, DrawLayer);
-}
-
-static void DrvRenderTile2Layer(INT32 Opaque, INT32 DrawLayer)
-{
- INT32 mx, my, Code, Attr, Colour, x, y, TileIndex, Layer;
- UINT16 *Control0 = (UINT16*)DrvVideo2Ctrl0Ram;
- UINT16 *VideoRam = (UINT16*)DrvVideo2Ram;
-
- INT32 RenderType = BURN_ENDIAN_SWAP_INT16(Control0[3]) & 0x03;
-
- switch (RenderType) {
- case 0x00: {
- DrvTile2TilemapWidth = 1024;
- DrvTile2TilemapHeight = 256;
- break;
- }
-
- case 0x01: {
- DrvTile2TilemapWidth = 512;
- DrvTile2TilemapHeight = 512;
- break;
- }
-
- case 0x02: {
- DrvTile2TilemapWidth = 256;
- DrvTile2TilemapHeight = 1024;
- break;
- }
- }
-
- memset(pTile2LayerDraw, 0, DrvTile2TilemapWidth * DrvTile2TilemapHeight * sizeof(UINT16));
-
- for (my = 0; my < (DrvTile2TilemapHeight / 16); my++) {
- for (mx = 0; mx < (DrvTile2TilemapWidth / 16); mx++) {
- TileIndex = (mx & 0x0f) + ((my & 0x0f) << 4) + ((mx & 0x30) << 4);
- if (RenderType == 1) TileIndex = (mx & 0x0f) + ((my & 0x0f) << 4) + ((my & 0x10) << 4) + ((mx & 0x10) << 5);
- if (RenderType == 2) TileIndex = (mx & 0x0f) + ((my & 0x3f) << 4);
- if (DrvTileRamBank[2] & 0x01) TileIndex += 0x1000;
-
- Attr = BURN_ENDIAN_SWAP_INT16(VideoRam[TileIndex]);
- Code = Attr & 0xfff;
- Colour = Attr >> 12;
- Layer = (Attr >> 12) > 7;
-
- if (DrawLayer == TILEMAP_BOTH_LAYERS || DrawLayer == Layer) {
- x = 16 * mx;
- y = 16 * my;
-
- if (Opaque) {
- if (DrvFlipScreen) {
- x = 240 - x;
- y = 240 - y;
- x &= (DrvTile2TilemapWidth - 1);
- y &= (DrvTile2TilemapHeight - 1);
- Dec0Render16x16Tile_FlipXY(pTile2LayerDraw, Code, x, y, Colour, 4, 768, DrvTiles2, DrvTile2TilemapWidth);
- } else {
- Dec0Render16x16Tile(pTile2LayerDraw, Code, x, y, Colour, 4, 768, DrvTiles2, DrvTile2TilemapWidth);
- }
- } else {
- if (DrvFlipScreen) {
- x = 240 - x;
- y = 240 - y;
- x &= (DrvTile2TilemapWidth - 1);
- y &= (DrvTile2TilemapHeight - 1);
- Dec0Render16x16Tile_Mask_FlipXY(pTile2LayerDraw, Code, x, y, Colour, 4, 0, 768, DrvTiles2, DrvTile2TilemapWidth);
- } else {
- Dec0Render16x16Tile_Mask(pTile2LayerDraw, Code, x, y, Colour, 4, 0, 768, DrvTiles2, DrvTile2TilemapWidth);
- }
- }
- }
- }
- }
-
- DrvRenderCustomTilemap(pTile2LayerDraw, (UINT16*)DrvVideo2Ctrl0Ram, (UINT16*)DrvVideo2Ctrl1Ram, (UINT16*)DrvVideo2RowScrollRam, (UINT16*)DrvVideo2ColScrollRam, DrvTile2TilemapWidth, DrvTile2TilemapHeight, Opaque, DrawLayer);
-}
-
-static void DrvRenderCharLayer()
-{
- INT32 mx, my, Code, Attr, Colour, x, y, TileIndex;
- UINT16 *Control0 = (UINT16*)DrvCharCtrl0Ram;
- UINT16 *CharRam = (UINT16*)DrvCharRam;
-
- INT32 RenderType = BURN_ENDIAN_SWAP_INT16(Control0[3]) & 0x03;
-
- switch (RenderType) {
- case 0x00: {
- DrvCharTilemapWidth = 1024;
- DrvCharTilemapHeight = 256;
- break;
- }
-
- case 0x01: {
- DrvCharTilemapWidth = 512;
- DrvCharTilemapHeight = 512;
- break;
- }
-
- case 0x02: {
- DrvCharTilemapWidth = 256;
- DrvCharTilemapHeight = 1024;
- break;
- }
- }
-
- memset(pCharLayerDraw, 0, DrvCharTilemapWidth * DrvCharTilemapHeight * sizeof(UINT16));
-
- for (my = 0; my < (DrvCharTilemapHeight / 8); my++) {
- for (mx = 0; mx < (DrvCharTilemapWidth / 8); mx++) {
- TileIndex = (mx & 0x1f) + ((my & 0x1f) << 5) + ((mx & 0x60) << 5);
- if (RenderType == 1) TileIndex = (mx & 0x1f) + ((my & 0x1f) << 5) + ((my & 0x20) << 5) + ((mx & 0x20) << 6);
- if (RenderType == 2) TileIndex = (mx & 0x1f) + ((my & 0x7f) << 5);
- if (DrvTileRamBank[0] & 0x01) TileIndex += 0x1000;
-
- Attr = BURN_ENDIAN_SWAP_INT16(CharRam[TileIndex]);
- Code = Attr & 0xfff;
- Colour = Attr >> 12;
-
- x = 8 * mx;
- y = 8 * my;
-
- if (DrvFlipScreen) {
- x = 248 - x;
- y = 248 - y;
- x &= (DrvCharTilemapWidth - 1);
- y &= (DrvCharTilemapHeight - 1);
- Dec0Render8x8Tile_Mask_FlipXY(pCharLayerDraw, Code, x, y, Colour, 4, 0, DrvCharPalOffset, DrvChars, DrvCharTilemapWidth);
- } else {
- Dec0Render8x8Tile_Mask(pCharLayerDraw, Code, x, y, Colour, 4, 0, DrvCharPalOffset, DrvChars, DrvCharTilemapWidth);
- }
- }
- }
-
- DrvRenderCustomTilemap(pCharLayerDraw, (UINT16*)DrvCharCtrl0Ram, (UINT16*)DrvCharCtrl1Ram, (UINT16*)DrvCharRowScrollRam, (UINT16*)DrvCharColScrollRam, DrvCharTilemapWidth, DrvCharTilemapHeight, 0, TILEMAP_BOTH_LAYERS);
-}
-
-static void DrvRenderSprites(INT32 PriorityMask, INT32 PriorityVal)
-{
- UINT16 *SpriteRam = (UINT16*)DrvSpriteDMABufferRam;
-
- INT32 offs = 0;
-
- while (offs < 0x800 / 2)
- {
- INT32 sy = BURN_ENDIAN_SWAP_INT16(SpriteRam[offs]);
- INT32 sx = BURN_ENDIAN_SWAP_INT16(SpriteRam[offs + 2]);
- INT32 color = sx >> 12;
- INT32 incy;
- INT32 mult;
- INT32 flash = sx & 0x0800;
-
- INT32 flipx = sy & 0x2000;
- INT32 flipy = sy & 0x4000;
- INT32 h = (1 << ((sy & 0x1800) >> 11));
- INT32 w = (1 << ((sy & 0x0600) >> 9));
-
- sx = sx & 0x01ff;
- sy = sy & 0x01ff;
- if (sx >= 256) sx -= 512;
- if (sy >= 256) sy -= 512;
- sx = 240 - sx;
- sy = 240 - sy;
-
- if (DrvFlipScreen)
- {
- sy = 240 - sy;
- sx = 240 - sx;
- if (flipx) flipx = 0; else flipx = 1;
- if (flipy) flipy = 0; else flipy = 1;
- mult = 16;
- }
- else
- mult = -16;
-
- for (INT32 x = 0; x < w; x++)
- {
- INT32 code = BURN_ENDIAN_SWAP_INT16(SpriteRam[offs + 1]) & 0x1fff;
-
- code &= ~(h-1);
-
- if (flipy)
- incy = -1;
- else
- {
- code += h-1;
- incy = 1;
- }
-
- for (INT32 y = 0; y < h; y++)
- {
- if (BURN_ENDIAN_SWAP_INT16(SpriteRam[offs]) & 0x8000)
- {
- INT32 draw = 0;
- if (!flash || (GetCurrentFrame() & 1))
- {
- if ((color & PriorityMask) == PriorityVal)
- {
- draw = 1;
- }
- }
-
- if (draw)
- {
- if (flipx) {
- if (flipy) {
- Render16x16Tile_Mask_FlipXY_Clip(pTransDraw, code - y * incy, sx + (mult * x),sy + (mult * y) - 8, color & 0xf, 4, 0, DrvSpritePalOffset, DrvSprites);
- } else {
- Render16x16Tile_Mask_FlipX_Clip(pTransDraw, code - y * incy, sx + (mult * x),sy + (mult * y) - 8, color & 0xf, 4, 0, DrvSpritePalOffset, DrvSprites);
- }
- } else {
- if (flipy) {
- Render16x16Tile_Mask_FlipY_Clip(pTransDraw, code - y * incy, sx + (mult * x),sy + (mult * y) - 8, color & 0xf, 4, 0, DrvSpritePalOffset, DrvSprites);
- } else {
- Render16x16Tile_Mask_Clip(pTransDraw, code - y * incy, sx + (mult * x),sy + (mult * y) - 8, color & 0xf, 4, 0, DrvSpritePalOffset, DrvSprites);
- }
- }
- }
- }
- }
-
- offs += 4;
- if (offs >= 0x800 / 2)
- return;
- }
- }
-}
-
-static void BaddudesDraw()
-{
- UINT16 *Control0 = (UINT16*)DrvCharCtrl0Ram;
- DrvFlipScreen = Control0[0] & 0x80;
-
- BurnTransferClear();
- DrvCalcPalette();
-
- if ((DrvPriority & 0x01) == 0x00) {
- DrvRenderTile1Layer(1, TILEMAP_BOTH_LAYERS);
- DrvRenderTile2Layer(0, TILEMAP_BOTH_LAYERS);
- if (DrvPriority & 0x02) DrvRenderTile1Layer(0, TILEMAP_LAYER0);
- DrvRenderSprites(0, 0);
- if (DrvPriority & 0x04) DrvRenderTile2Layer(0, TILEMAP_LAYER0);
- } else {
- DrvRenderTile2Layer(1, TILEMAP_BOTH_LAYERS);
- DrvRenderTile1Layer(0, TILEMAP_BOTH_LAYERS);
- if (DrvPriority & 0x02) DrvRenderTile2Layer(0, TILEMAP_LAYER0);
- DrvRenderSprites(0, 0);
- if (DrvPriority & 0x04) DrvRenderTile1Layer(0, TILEMAP_LAYER0);
- }
-
- DrvRenderCharLayer();
- BurnTransferCopy(DrvPalette);
-}
-
-static void BirdtryDraw()
-{
- UINT16 *Control0 = (UINT16*)DrvCharCtrl0Ram;
- DrvFlipScreen = Control0[0] & 0x80;
-
- BurnTransferClear();
- DrvCalcPalette();
-
- DrvRenderTile2Layer(1, TILEMAP_BOTH_LAYERS);
- DrvRenderSprites(0x00, 0x00);
- DrvRenderTile1Layer(0, TILEMAP_BOTH_LAYERS);
- DrvRenderSprites(0x00, 0x00);
-
- DrvRenderCharLayer();
- BurnTransferCopy(DrvPalette);
-}
-
-static void HbarrelDraw()
-{
- UINT16 *Control0 = (UINT16*)DrvCharCtrl0Ram;
- DrvFlipScreen = Control0[0] & 0x80;
-
- BurnTransferClear();
- DrvCalcPalette();
-
- DrvRenderTile2Layer(1, TILEMAP_BOTH_LAYERS);
- DrvRenderSprites(0x08, 0x08);
- DrvRenderTile1Layer(0, TILEMAP_BOTH_LAYERS);
- DrvRenderSprites(0x08, 0x00);
-
- DrvRenderCharLayer();
- BurnTransferCopy(DrvPalette);
-}
-
-static void HippodrmDraw()
-{
- UINT16 *Control0 = (UINT16*)DrvCharCtrl0Ram;
- DrvFlipScreen = Control0[0] & 0x80;
-
- BurnTransferClear();
- DrvCalcPalette();
-
- if (DrvPriority & 0x01) {
- DrvRenderTile1Layer(1, TILEMAP_BOTH_LAYERS);
- DrvRenderTile2Layer(0, TILEMAP_BOTH_LAYERS);
- } else {
- DrvRenderTile2Layer(1, TILEMAP_BOTH_LAYERS);
- DrvRenderTile1Layer(0, TILEMAP_BOTH_LAYERS);
- }
-
- DrvRenderSprites(0x00, 0x00);
- DrvRenderCharLayer();
- BurnTransferCopy(DrvPalette);
-}
-
-static void MidresDraw()
-{
- INT32 Trans;
- UINT16 *Control0 = (UINT16*)DrvCharCtrl0Ram;
- DrvFlipScreen = Control0[0] & 0x80;
-
- if (DrvPriority & 0x04) {
- Trans = 0x00;
- } else {
- Trans = 0x08;
- }
-
- BurnTransferClear();
- Dec1CalcPalette();
-
- if (DrvPriority & 0x01) {
- DrvRenderTile1Layer(1, TILEMAP_BOTH_LAYERS);
- if (DrvPriority & 0x02) DrvRenderSprites(0x08, Trans);
- DrvRenderTile2Layer(0, TILEMAP_BOTH_LAYERS);
- } else {
- DrvRenderTile2Layer(1, TILEMAP_BOTH_LAYERS);
- if (DrvPriority & 0x02) DrvRenderSprites(0x08, Trans);
- DrvRenderTile1Layer(0, TILEMAP_BOTH_LAYERS);
- }
-
- if (DrvPriority & 0x02) {
- DrvRenderSprites(0x08, Trans ^ 0x08);
- } else {
- DrvRenderSprites(0x00, 0x00);
- }
-
- DrvRenderCharLayer();
- BurnTransferCopy(DrvPalette);
-}
-
-static void RobocopDraw()
-{
- INT32 Trans;
- UINT16 *Control0 = (UINT16*)DrvCharCtrl0Ram;
- DrvFlipScreen = Control0[0] & 0x80;
-
- if (DrvPriority & 0x04) {
- Trans = 0x08;
- } else {
- Trans = 0x00;
- }
-
- BurnTransferClear();
- DrvCalcPalette();
-
- if (DrvPriority & 0x01) {
- DrvRenderTile1Layer(1, TILEMAP_LAYER1);
- if (DrvPriority & 0x02) DrvRenderSprites(0x08, Trans);
- DrvRenderTile2Layer(0, TILEMAP_BOTH_LAYERS);
- } else {
- DrvRenderTile2Layer(1, TILEMAP_BOTH_LAYERS);
- if (DrvPriority & 0x02) DrvRenderSprites(0x08, Trans);
- DrvRenderTile1Layer(0, TILEMAP_BOTH_LAYERS);
- }
-
- if (DrvPriority & 0x02) {
- DrvRenderSprites(0x08, Trans ^ 0x08);
- } else {
- DrvRenderSprites(0x00, 0x00);
- }
-
- DrvRenderCharLayer();
- BurnTransferCopy(DrvPalette);
-}
-
-static void SlyspyDraw()
-{
- UINT16 *Control0 = (UINT16*)DrvCharCtrl0Ram;
- DrvFlipScreen = Control0[0] & 0x80;
-
- BurnTransferClear();
- Dec1CalcPalette();
-
- DrvRenderTile2Layer(1, TILEMAP_BOTH_LAYERS);
- DrvRenderTile1Layer(0, TILEMAP_BOTH_LAYERS);
- DrvRenderSprites(0x00, 0x00);
- if (DrvPriority & 0x80) DrvRenderTile1Layer(0, TILEMAP_LAYER0);
- DrvRenderCharLayer();
- BurnTransferCopy(DrvPalette);
-}
-
-#undef TILEMAP_BOTH_LAYERS
-#undef TILEMAP_LAYER0
-#undef TILEMAP_LAYER1
-
-static INT32 DrvFrame()
-{
- INT32 nInterleave = 272*4;
-
- if (DrvReset) BaddudesDoReset();
-
- DrvMakeInputs();
-
- if (game_rotates) {
- SuperJoy2Rotate();
- }
-
- nCyclesTotal[0] = (INT32)((double)10000000 / 57.41);
- nCyclesTotal[1] = (INT32)((double)1500000 / 57.41);
- nCyclesTotal[2] = (INT32)((double)8000000 / 57.41);
- nCyclesDone[0] = nCyclesDone[1] = nCyclesDone[2] = 0;
-
- if (realMCU) {
- nCyclesTotal[2] /= 12; // i8751 divider
- nCyclesTotal[0] = (INT32)((double)12000000 / 57.41); // tweak for hbarrel
- }
-
- SekNewFrame();
- M6502NewFrame();
- NullNewFrame();
-
- SekOpen(0);
- M6502Open(0);
-
- for (INT32 i = 0; i < nInterleave; i++) {
- if (i == 8*4) DrvVBlank = 0;
- if (i == 248*4) {
- DrvVBlank = 1;
- SekSetIRQLine(6, CPU_IRQSTATUS_ACK);
- }
-
- BurnTimerUpdate((i + 1) * (nCyclesTotal[0] / nInterleave));
-
- if (bTimerNullCPU)
- nCyclesDone[0] += SekRun(nCyclesTotal[0] / nInterleave);
-
- if (realMCU) {
- INT32 nNext = (i + 1) * nCyclesTotal[2] / nInterleave;
- INT32 nSegment = nNext - nCyclesDone[2];
- nCyclesDone[2] += DrvMCURun(nSegment);
- }
-
- BurnTimerUpdateYM3812((i + 1) * (nCyclesTotal[1] / nInterleave));
- }
-
- BurnTimerEndFrame(nCyclesTotal[0]);
- BurnTimerEndFrameYM3812(nCyclesTotal[1]);
-
- if (pBurnSoundOut) {
- BurnYM2203Update(pBurnSoundOut, nBurnSoundLen);
- BurnYM3812Update(pBurnSoundOut, nBurnSoundLen);
- MSM6295Render(0, pBurnSoundOut, nBurnSoundLen);
- }
-
- SekClose();
- M6502Close();
-
- if (pBurnDraw && Dec0DrawFunction) Dec0DrawFunction();
-
- return 0;
-}
-
-static INT32 RobocopFrame()
-{
- INT32 nInterleave = 264;
-
- if (DrvReset) RobocopDoReset();
-
- DrvMakeInputs();
-
- nCyclesTotal[0] = (INT32)((double)10000000 / 57.41);
- nCyclesTotal[1] = (INT32)((double)1500000 / 57.41);
- nCyclesTotal[2] = (INT32)((double)1342329 / 57.41);
- nCyclesDone[0] = nCyclesDone[1] = nCyclesDone[2] = 0;
-
- SekNewFrame();
- M6502NewFrame();
-
- SekOpen(0);
- M6502Open(0);
- h6280Open(0);
-
- for (INT32 i = 0; i < nInterleave; i++) {
- INT32 nCurrentCPU, nNext, nCyclesSegment;
-
- nCurrentCPU = 0;
- BurnTimerUpdate((i + 1) * (nCyclesTotal[nCurrentCPU] / nInterleave));
- if (i == 8) DrvVBlank = 0;
- if (i == 248) {
- DrvVBlank = 1;
- SekSetIRQLine(6, CPU_IRQSTATUS_ACK);
- }
-
- nCurrentCPU = 2;
- nNext = (i + 1) * nCyclesTotal[nCurrentCPU] / nInterleave;
- nCyclesSegment = nNext - nCyclesDone[nCurrentCPU];
- nCyclesSegment = h6280Run(nCyclesSegment);
- nCyclesDone[nCurrentCPU] += nCyclesSegment;
-
- nCurrentCPU = 1;
- BurnTimerUpdateYM3812((i + 1) * (nCyclesTotal[nCurrentCPU] / nInterleave));
- }
-
- BurnTimerEndFrame(nCyclesTotal[0]);
- BurnTimerEndFrameYM3812(nCyclesTotal[1]);
-
- if (pBurnSoundOut) {
- BurnYM2203Update(pBurnSoundOut, nBurnSoundLen);
- BurnYM3812Update(pBurnSoundOut, nBurnSoundLen);
- MSM6295Render(0, pBurnSoundOut, nBurnSoundLen);
- }
-
- SekClose();
- M6502Close();
- h6280Close();
-
- if (pBurnDraw && Dec0DrawFunction) Dec0DrawFunction();
-
- return 0;
-}
-
-static INT32 Dec1Frame()
-{
- INT32 nInterleave = 272;
-
- if (DrvReset) SlyspyDoReset();
-
- DrvMakeInputs();
-
- if (game_rotates) {
- SuperJoy2Rotate();
- }
-
- nCyclesTotal[0] = (INT32)((double)10000000 / 57.41);
- if (Dec0Game == DEC1_GAME_MIDRES)
- nCyclesTotal[0] = (INT32)((double)14000000 / 57.41);
- nCyclesTotal[1] = (INT32)((double)2000000 / 57.41);
- nCyclesDone[0] = nCyclesDone[1] = 0;
-
- SekNewFrame();
- h6280NewFrame();
-
- SekOpen(0);
- h6280Open(0);
-
- for (INT32 i = 0; i < nInterleave; i++) {
- INT32 nCurrentCPU;
-
- nCurrentCPU = 0;
- BurnTimerUpdate((i + 1) * (nCyclesTotal[nCurrentCPU] / nInterleave));
- if (i == 8) DrvVBlank = 0;
- if (i == 248) {
- DrvVBlank = 1;
- SekSetIRQLine(6, CPU_IRQSTATUS_AUTO);
- }
-
- nCurrentCPU = 1;
- BurnTimerUpdateYM3812((i + 1) * (nCyclesTotal[nCurrentCPU] / nInterleave));
- }
-
- BurnTimerEndFrame(nCyclesTotal[0]);
- BurnTimerEndFrameYM3812(nCyclesTotal[1]);
-
- if (pBurnSoundOut) {
- BurnYM2203Update(pBurnSoundOut, nBurnSoundLen);
- BurnYM3812Update(pBurnSoundOut, nBurnSoundLen);
- MSM6295Render(0, pBurnSoundOut, nBurnSoundLen);
- }
-
- SekClose();
- h6280Close();
-
- if (pBurnDraw && Dec0DrawFunction) Dec0DrawFunction();
-
- return 0;
-}
-
-static INT32 DrvScan(INT32 nAction, INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin != NULL) {
- *pnMin = 0x029722;
- }
-
- if (nAction & ACB_MEMORY_RAM) {
- memset(&ba, 0, sizeof(ba));
- ba.Data = RamStart;
- ba.nLen = RamEnd-RamStart;
- ba.szName = "All Ram";
- BurnAcb(&ba);
- }
-
- if (nAction & ACB_DRIVER_DATA) {
- SekScan(nAction);
- BurnYM2203Scan(nAction, pnMin);
- BurnYM3812Scan(nAction, pnMin);
- MSM6295Scan(0, nAction);
- if (realMCU) {
- DrvMCUScan(nAction);
- }
-
- SCAN_VAR(i8751RetVal);
- SCAN_VAR(DrvVBlank);
- SCAN_VAR(DrvSoundLatch);
- SCAN_VAR(DrvFlipScreen);
- SCAN_VAR(DrvPriority);
- SCAN_VAR(DrvTileRamBank);
- SCAN_VAR(DrvSlyspyProtValue);
-
- SCAN_VAR(nRotate);
- SCAN_VAR(nRotateTarget);
- SCAN_VAR(nRotateTry);
- SCAN_VAR(nRotateHoldInput);
- }
-
- return 0;
-}
-
-static INT32 BaddudesScan(INT32 nAction, INT32 *pnMin)
-{
- if (nAction & ACB_DRIVER_DATA) {
- M6502Scan(nAction);
- }
-
- return DrvScan(nAction, pnMin);
-}
-
-static INT32 RobocopScan(INT32 nAction, INT32 *pnMin)
-{
- if (nAction & ACB_DRIVER_DATA) {
- h6280CpuScan(nAction);
- }
-
- return BaddudesScan(nAction, pnMin);
-}
-
-static INT32 SlyspyScan(INT32 nAction, INT32 *pnMin)
-{
- if (nAction & ACB_DRIVER_DATA) {
- h6280CpuScan(nAction);
- }
-
- return DrvScan(nAction, pnMin);
-}
-
-struct BurnDriver BurnDrvBaddudes = {
- "baddudes", NULL, NULL, NULL, "1988",
- "Bad Dudes vs. Dragonninja (US)\0", NULL, "Data East USA", "DEC0",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_DATAEAST, GBF_SCRFIGHT, 0,
- NULL, BaddudesRomInfo, BaddudesRomName, NULL, NULL, Dec0InputInfo, BaddudesDIPInfo,
- BaddudesInit, BaddudesExit, DrvFrame, NULL, BaddudesScan,
- NULL, 0x400, 256, 240, 4, 3
-};
-
-struct BurnDriver BurnDrvBirdtry = {
- "birdtry", NULL, NULL, NULL, "1988",
- "Birdie Try (Japan)\0", NULL, "Data East Corporation", "DEC0",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_DATAEAST, GBF_MISC, 0,
- NULL, birdtryRomInfo, birdtryRomName, NULL, NULL, HbarrelInputInfo, BirdtryDIPInfo,
- BirdtryInit, BaddudesExit, DrvFrame, NULL, DrvScan,
- NULL, 0x400, 240, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvDrgninja = {
- "drgninja", "baddudes", NULL, NULL, "1988",
- "Dragonninja (Japan)\0", NULL, "Data East Corporation", "DEC0",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_DATAEAST, GBF_SCRFIGHT, 0,
- NULL, DrgninjaRomInfo, DrgninjaRomName, NULL, NULL, Dec0InputInfo, BaddudesDIPInfo,
- BaddudesInit, BaddudesExit, DrvFrame, NULL, BaddudesScan,
- NULL, 0x400, 256, 240, 4, 3
-};
-
-struct BurnDriver BurnDrvDrgninjab = {
- "drgninjab", "baddudes", NULL, NULL, "1988",
- "Dragonninja (bootleg set 1)\0", NULL, "bootleg", "DEC0",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_DATAEAST, GBF_SCRFIGHT, 0,
- NULL, DrgninjabRomInfo, DrgninjabRomName, NULL, NULL, Dec0InputInfo, BaddudesDIPInfo,
- BaddudesInit, BaddudesExit, DrvFrame, NULL, BaddudesScan,
- NULL, 0x400, 256, 240, 4, 3
-};
-
-struct BurnDriver BurnDrvDrgninjab2 = {
- "drgninjab2", "baddudes", NULL, NULL, "1988",
- "Dragonninja (bootleg set 2)\0", NULL, "bootleg", "DEC0",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_DATAEAST, GBF_SCRFIGHT, 0,
- NULL, Drgninjab2RomInfo, Drgninjab2RomName, NULL, NULL, Dec0InputInfo, BaddudesDIPInfo,
- Drgninjab2Init, BaddudesExit, DrvFrame, NULL, BaddudesScan,
- NULL, 0x400, 256, 240, 4, 3
-};
-
-struct BurnDriver BurnDrvBouldash = {
- "bouldash", NULL, NULL, NULL, "1990",
- "Boulder Dash / Boulder Dash Part 2 (World)\0", NULL, "Data East Corporation (licensed from First Star)", "DEC0",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_DATAEAST, GBF_MAZE, 0,
- NULL, BouldashRomInfo, BouldashRomName, NULL, NULL, Dec1InputInfo, BouldashDIPInfo,
- BouldashInit, SlyspyExit, Dec1Frame, NULL, SlyspyScan,
- NULL, 0x400, 256, 240, 4, 3
-};
-
-struct BurnDriver BurnDrvBouldashj = {
- "bouldashj", "bouldash", NULL, NULL, "1990",
- "Boulder Dash / Boulder Dash Part 2 (Japan)\0", NULL, "Data East Corporation (licensed from First Star)", "DEC0",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_DATAEAST, GBF_MAZE, 0,
- NULL, BouldashjRomInfo, BouldashjRomName, NULL, NULL, Dec1InputInfo, BouldashDIPInfo,
- BouldashInit, SlyspyExit, Dec1Frame, NULL, SlyspyScan,
- NULL, 0x400, 256, 240, 4, 3
-};
-
-struct BurnDriver BurnDrvHbarrel = {
- "hbarrel", NULL, NULL, NULL, "1987",
- "Heavy Barrel (US)\0", NULL, "Data East USA", "DEC0",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_DATAEAST, GBF_VERSHOOT, 0,
- NULL, HbarrelRomInfo, HbarrelRomName, NULL, NULL, HbarrelInputInfo, HbarrelDIPInfo,
- HbarrelInit, BaddudesExit, DrvFrame, NULL, BaddudesScan,
- NULL, 0x400, 240, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvHbarrelw = {
- "hbarrelw", "hbarrel", NULL, NULL, "1987",
- "Heavy Barrel (World)\0", NULL, "Data East USA", "DEC0",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_DATAEAST, GBF_VERSHOOT, 0,
- NULL, HbarrelwRomInfo, HbarrelwRomName, NULL, NULL, HbarrelInputInfo, HbarrelDIPInfo,
- HbarrelInit, BaddudesExit, DrvFrame, NULL, BaddudesScan,
- NULL, 0x400, 240, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvHippodrm = {
- "hippodrm", NULL, NULL, NULL, "1989",
- "Hippodrome (US)\0", NULL, "Data East USA", "DEC0",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_DATAEAST, GBF_VSFIGHT, 0,
- NULL, HippodrmRomInfo, HippodrmRomName, NULL, NULL, Dec0InputInfo, HippodrmDIPInfo,
- HippodrmInit, RobocopExit, RobocopFrame, NULL, RobocopScan,
- NULL, 0x400, 256, 240, 4, 3
-};
-
-struct BurnDriver BurnDrvFfantasy = {
- "ffantasy", "hippodrm", NULL, NULL, "1989",
- "Fighting Fantasy (Japan revision 3)\0", NULL, "Data East Corpotation", "DEC0",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_DATAEAST, GBF_VSFIGHT, 0,
- NULL, FfantasyRomInfo, FfantasyRomName, NULL, NULL, Dec0InputInfo, FfantasyDIPInfo,
- HippodrmInit, RobocopExit, RobocopFrame, NULL, RobocopScan,
- NULL, 0x400, 256, 240, 4, 3
-};
-
-struct BurnDriver BurnDrvFfantasyj = {
- "ffantasyj", "hippodrm", NULL, NULL, "1989",
- "Fighting Fantasy (Japan revision 2)\0", NULL, "Data East Corpotation", "DEC0",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_DATAEAST, GBF_VSFIGHT, 0,
- NULL, FfantasyjRomInfo, FfantasyjRomName, NULL, NULL, Dec0InputInfo, FfantasyDIPInfo,
- HippodrmInit, RobocopExit, RobocopFrame, NULL, RobocopScan,
- NULL, 0x400, 256, 240, 4, 3
-};
-
-struct BurnDriver BurnDrvFfantasya = {
- "ffantasya", "hippodrm", NULL, NULL, "1989",
- "Fighting Fantasy (Japan)\0", NULL, "Data East Corpotation", "DEC0",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_DATAEAST, GBF_VSFIGHT, 0,
- NULL, FfantasyaRomInfo, FfantasyaRomName, NULL, NULL, Dec0InputInfo, FfantasyDIPInfo,
- HippodrmInit, RobocopExit, RobocopFrame, NULL, RobocopScan,
- NULL, 0x400, 256, 240, 4, 3
-};
-
-struct BurnDriver BurnDrvFfantasyb = {
- "ffantasyb", "hippodrm", NULL, NULL, "1989",
- "Fighting Fantasy (Japan revision ?)\0", NULL, "Data East Corpotation", "DEC0",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_DATAEAST, GBF_VSFIGHT, 0,
- NULL, FfantasybRomInfo, FfantasybRomName, NULL, NULL, Dec0InputInfo, FfantasyDIPInfo,
- HippodrmInit, RobocopExit, RobocopFrame, NULL, RobocopScan,
- NULL, 0x400, 256, 240, 4, 3
-};
-
-struct BurnDriver BurnDrvMidres = {
- "midres", NULL, NULL, NULL, "1989",
- "Midnight Resistance (World)\0", NULL, "Data East Corporation", "DEC0",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_DATAEAST, GBF_SHOOT, 0,
- NULL, MidresRomInfo, MidresRomName, NULL, NULL, MidresInputInfo, MidresDIPInfo,
- MidresInit, SlyspyExit, Dec1Frame, NULL, SlyspyScan,
- NULL, 0x400, 256, 240, 4, 3
-};
-
-struct BurnDriver BurnDrvMidresu = {
- "midresu", "midres", NULL, NULL, "1989",
- "Midnight Resistance (US)\0", NULL, "Data East USA", "DEC0",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_DATAEAST, GBF_SHOOT, 0,
- NULL, MidresuRomInfo, MidresuRomName, NULL, NULL, MidresInputInfo, MidresuDIPInfo,
- MidresInit, SlyspyExit, Dec1Frame, NULL, SlyspyScan,
- NULL, 0x400, 256, 240, 4, 3
-};
-
-struct BurnDriver BurnDrvMidresj = {
- "midresj", "midres", NULL, NULL, "1989",
- "Midnight Resistance (Japan)\0", NULL, "Data East Corporation", "DEC0",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_DATAEAST, GBF_SHOOT, 0,
- NULL, MidresjRomInfo, MidresjRomName, NULL, NULL, MidresInputInfo, MidresuDIPInfo,
- MidresInit, SlyspyExit, Dec1Frame, NULL, SlyspyScan,
- NULL, 0x400, 256, 240, 4, 3
-};
-
-struct BurnDriver BurnDrvRobocop = {
- "robocop", NULL, NULL, NULL, "1988",
- "Robocop (World revision 4)\0", NULL, "Data East Corporation", "DEC0",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_DATAEAST, GBF_HORSHOOT, 0,
- NULL, RobocopRomInfo, RobocopRomName, NULL, NULL, Dec0InputInfo, RobocopDIPInfo,
- RobocopInit, RobocopExit, RobocopFrame, NULL, RobocopScan,
- NULL, 0x400, 256, 240, 4, 3
-};
-
-struct BurnDriver BurnDrvRobocopw = {
- "robocopw", "robocop", NULL, NULL, "1988",
- "Robocop (World revision 3)\0", NULL, "Data East Corporation", "DEC0",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_DATAEAST, GBF_HORSHOOT, 0,
- NULL, RobocopwRomInfo, RobocopwRomName, NULL, NULL, Dec0InputInfo, RobocopDIPInfo,
- RobocopInit, RobocopExit, RobocopFrame, NULL, RobocopScan,
- NULL, 0x400, 256, 240, 4, 3
-};
-
-struct BurnDriver BurnDrvRobocopj = {
- "robocopj", "robocop", NULL, NULL, "1988",
- "Robocop (Japan)\0", NULL, "Data East Corporation", "DEC0",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_DATAEAST, GBF_HORSHOOT, 0,
- NULL, RobocopjRomInfo, RobocopjRomName, NULL, NULL, Dec0InputInfo, RobocopDIPInfo,
- RobocopInit, RobocopExit, RobocopFrame, NULL, RobocopScan,
- NULL, 0x400, 256, 240, 4, 3
-};
-
-struct BurnDriver BurnDrvRobocopu = {
- "robocopu", "robocop", NULL, NULL, "1988",
- "Robocop (US revision 1)\0", NULL, "Data East USA", "DEC0",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_DATAEAST, GBF_HORSHOOT, 0,
- NULL, RobocopuRomInfo, RobocopuRomName, NULL, NULL, Dec0InputInfo, RobocopDIPInfo,
- RobocopInit, RobocopExit, RobocopFrame, NULL, RobocopScan,
- NULL, 0x400, 256, 240, 4, 3
-};
-
-struct BurnDriver BurnDrvRobocopu0 = {
- "robocopu0", "robocop", NULL, NULL, "1988",
- "Robocop (US revision 0)\0", NULL, "Data East USA", "DEC0",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_DATAEAST, GBF_HORSHOOT, 0,
- NULL, Robocopu0RomInfo, Robocopu0RomName, NULL, NULL, Dec0InputInfo, RobocopDIPInfo,
- RobocopInit, RobocopExit, RobocopFrame, NULL, RobocopScan,
- NULL, 0x400, 256, 240, 4, 3
-};
-
-struct BurnDriver BurnDrvRobocopb = {
- "robocopb", "robocop", NULL, NULL, "1988",
- "Robocop (World bootleg)\0", NULL, "bootleg", "DEC0",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_DATAEAST, GBF_HORSHOOT, 0,
- NULL, RobocopbRomInfo, RobocopbRomName, NULL, NULL, Dec0InputInfo, RobocopDIPInfo,
- RobocopbInit, BaddudesExit, DrvFrame, NULL, BaddudesScan,
- NULL, 0x400, 256, 240, 4, 3
-};
-
-struct BurnDriver BurnDrvRobocopb2 = {
- "robocopb2", "robocop", NULL, NULL, "1989",
- "Robocop (Red Corporation World bootleg)\0", NULL, "bootleg", "DEC0",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_DATAEAST, GBF_HORSHOOT, 0,
- NULL, Robocopb2RomInfo, Robocopb2RomName, NULL, NULL, Dec0InputInfo, RobocopDIPInfo,
- RobocopbInit, BaddudesExit, DrvFrame, NULL, BaddudesScan,
- NULL, 0x400, 256, 240, 4, 3
-};
-
-struct BurnDriver BurnDrvSecretag = {
- "secretag", NULL, NULL, NULL, "1989",
- "Secret Agent (World revision 3)\0", NULL, "Data East Corporation", "DEC0",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_DATAEAST, GBF_SCRFIGHT, 0,
- NULL, SecretagRomInfo, SecretagRomName, NULL, NULL, Dec1InputInfo, SlyspyDIPInfo,
- SlyspyInit, SlyspyExit, Dec1Frame, NULL, SlyspyScan,
- NULL, 0x400, 256, 240, 4, 3
-};
-
-struct BurnDriver BurnDrvSecretagj = {
- "secretagj", "secretag", NULL, NULL, "1989",
- "Secret Agent (Japan revision 2)\0", NULL, "Data East Corporation", "DEC0",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_DATAEAST, GBF_SCRFIGHT, 0,
- NULL, SecretagjRomInfo, SecretagjRomName, NULL, NULL, Dec1InputInfo, SlyspyDIPInfo,
- SlyspyInit, SlyspyExit, Dec1Frame, NULL, SlyspyScan,
- NULL, 0x400, 256, 240, 4, 3
-};
-
-struct BurnDriver BurnDrvSlyspy = {
- "slyspy", "secretag", NULL, NULL, "1989",
- "Sly Spy (US revision 4)\0", NULL, "Data East USA", "DEC0",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_DATAEAST, GBF_SCRFIGHT, 0,
- NULL, SlyspyRomInfo, SlyspyRomName, NULL, NULL, Dec1InputInfo, SlyspyDIPInfo,
- SlyspyInit, SlyspyExit, Dec1Frame, NULL, SlyspyScan,
- NULL, 0x400, 256, 240, 4, 3
-};
-
-struct BurnDriver BurnDrvSlyspy2 = {
- "slyspy2", "secretag", NULL, NULL, "1989",
- "Sly Spy (US revision 2)\0", NULL, "Data East USA", "DEC0",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_DATAEAST, GBF_SCRFIGHT, 0,
- NULL, Slyspy2RomInfo, Slyspy2RomName, NULL, NULL, Dec1InputInfo, SlyspyDIPInfo,
- SlyspyInit, SlyspyExit, Dec1Frame, NULL, SlyspyScan,
- NULL, 0x400, 256, 240, 4, 3
-};
-
-struct BurnDriver BurnDrvSlyspy3 = {
- "slyspy3", "secretag", NULL, NULL, "1989",
- "Sly Spy (US revision 3)\0", NULL, "Data East USA", "DEC0",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_DATAEAST, GBF_SCRFIGHT, 0,
- NULL, Slyspy3RomInfo, Slyspy3RomName, NULL, NULL, Dec1InputInfo, SlyspyDIPInfo,
- SlyspyInit, SlyspyExit, Dec1Frame, NULL, SlyspyScan,
- NULL, 0x400, 256, 240, 4, 3
-};
diff --git a/jan/src/burn/drv/dataeast/d_dec8.cpp b/jan/src/burn/drv/dataeast/d_dec8.cpp
deleted file mode 100644
index de8db1d64..000000000
--- a/jan/src/burn/drv/dataeast/d_dec8.cpp
+++ /dev/null
@@ -1,5941 +0,0 @@
-// FB Alpha Data East 8-bit driver module
-// Based on MAME driver by Bryan McPhail and Stephane Humbert
-
-// To do:
-// gondo needs rotary inputs hooked up and doesn't read the i8751 value at all - so coins don't work
-
-#include "tiles_generic.h"
-#include "m6502_intf.h"
-#include "burn_ym2203.h"
-#include "hd6309_intf.h"
-#include "m6809_intf.h"
-#include "mcs51.h"
-#include "burn_ym3812.h"
-#include "burn_ym3526.h"
-#include "msm5205.h"
-
-static UINT8 *AllMem;
-static UINT8 *MemEnd;
-static UINT8 *AllRam;
-static UINT8 *RamEnd;
-static UINT8 *DrvMainROM;
-static UINT8 *DrvSubROM;
-static UINT8 *DrvMCURom;
-static UINT8 *DrvM6502ROM;
-static UINT8 *DrvM6502OPS;
-static UINT8 *DrvGfxROM0;
-static UINT8 *DrvGfxROM1;
-static UINT8 *DrvGfxROM2;
-static UINT8 *DrvGfxROM3;
-static UINT8 *DrvColPROM;
-static UINT8 *DrvMainRAM;
-static UINT8 *DrvVidRAM;
-static UINT8 *DrvPf0RAM;
-static UINT8 *DrvPf1RAM;
-static UINT8 *DrvPf0Ctrl;
-static UINT8 *DrvPf1Ctrl;
-static UINT8 *DrvRowRAM;
-static UINT8 *DrvSprRAM;
-static UINT8 *DrvSprBuf;
-static UINT8 *DrvM6502RAM;
-static UINT8 *DrvPalRAM;
-
-static UINT32 *Palette;
-static UINT32 *DrvPalette;
-static UINT8 DrvRecalc;
-
-static UINT8 *soundlatch;
-static UINT8 *nmi_enable;
-static UINT8 *interrupt_enable;
-static UINT8 *flipscreen;
-
-static INT32 realMCU = 0;
-static INT32 i8751_return;
-static INT32 i8751_value;
-static INT32 vblank;
-static INT32 RomBank;
-
-static UINT8 DrvJoy1[8];
-static UINT8 DrvJoy2[8];
-static UINT8 DrvJoy3[8];
-static UINT8 DrvJoy4[8];
-static UINT8 DrvJoy5[8];
-static UINT8 DrvInputs[5];
-static UINT8 DrvDips[2];
-static UINT8 DrvReset;
-
-static INT32 nCyclesDone[3] = { 0, 0, 0 }; // up here, for mcu sync
-
-static struct BurnInputInfo GhostbInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy5 + 5, "p1 coin"},
- {"P1 Start", BIT_DIGITAL, DrvJoy4 + 0, "p1 start"},
- {"P1 Up", BIT_DIGITAL, DrvJoy1 + 0, "p1 up"},
- {"P1 Down", BIT_DIGITAL, DrvJoy1 + 1, "p1 down"},
- {"P1 Left", BIT_DIGITAL, DrvJoy1 + 2, "p1 left"},
- {"P1 Right", BIT_DIGITAL, DrvJoy1 + 3, "p1 right"},
- {"P1 Button 1", BIT_DIGITAL, DrvJoy1 + 4, "p1 fire 1"},
- {"P1 Button 2", BIT_DIGITAL, DrvJoy1 + 5, "p1 fire 2"},
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy5 + 6, "p2 coin"},
- {"P2 Start", BIT_DIGITAL, DrvJoy4 + 1, "p2 start"},
- {"P2 Up", BIT_DIGITAL, DrvJoy2 + 0, "p2 up"},
- {"P2 Down", BIT_DIGITAL, DrvJoy2 + 1, "p2 down"},
- {"P2 Left", BIT_DIGITAL, DrvJoy2 + 2, "p2 left"},
- {"P2 Right", BIT_DIGITAL, DrvJoy2 + 3, "p2 right"},
- {"P2 Button 1", BIT_DIGITAL, DrvJoy2 + 4, "p2 fire 1"},
- {"P2 Button 2", BIT_DIGITAL, DrvJoy2 + 5, "p2 fire 2"},
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset"},
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip"},
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip"},
-};
-
-STDINPUTINFO(Ghostb)
-
-static struct BurnDIPInfo GhostbDIPList[]=
-{
- // Default Values
- {0x11, 0xff, 0xff, 0xf0, NULL },
- {0x12, 0xff, 0xff, 0xbf, NULL },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x11, 0x01, 0x20, 0x00, "Off" },
- {0x11, 0x01, 0x20, 0x20, "On" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x11, 0x01, 0x40, 0x40, "Off" },
- {0x11, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x12, 0x01, 0x03, 0x01, "1" },
- {0x12, 0x01, 0x03, 0x03, "3" },
- {0x12, 0x01, 0x03, 0x02, "5" },
- {0x12, 0x01, 0x03, 0x00, "Infinite (Cheat)" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x12, 0x01, 0x0c, 0x04, "Easy" },
- {0x12, 0x01, 0x0c, 0x0c, "Normal" },
- {0x12, 0x01, 0x0c, 0x08, "Hard" },
- {0x12, 0x01, 0x0c, 0x00, "Hardest" },
-
- {0 , 0xfe, 0 , 4, "Scene Time" },
- {0x12, 0x01, 0x30, 0x00, "4.00" },
- {0x12, 0x01, 0x30, 0x10, "4.30" },
- {0x12, 0x01, 0x30, 0x30, "5.00" },
- {0x12, 0x01, 0x30, 0x20, "6.00" },
-
- {0 , 0xfe, 0 , 2, "Allow Continue" },
- {0x12, 0x01, 0x40, 0x40, "No" },
- {0x12, 0x01, 0x40, 0x00, "Yes" },
-
- {0 , 0xfe, 0 , 2, "Beam Energy Pickup" },
- {0x12, 0x01, 0x80, 0x00, "Up 1.5%" },
- {0x12, 0x01, 0x80, 0x80, "Normal" },
-};
-
-STDDIPINFO(Ghostb)
-
-static struct BurnInputInfo Ghostb3InputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy5 + 5, "p1 coin"},
- {"P1 Start", BIT_DIGITAL, DrvJoy4 + 0, "p1 start"},
- {"P1 Up", BIT_DIGITAL, DrvJoy1 + 0, "p1 up"},
- {"P1 Down", BIT_DIGITAL, DrvJoy1 + 1, "p1 down"},
- {"P1 Left", BIT_DIGITAL, DrvJoy1 + 2, "p1 left"},
- {"P1 Right", BIT_DIGITAL, DrvJoy1 + 3, "p1 right"},
- {"P1 Button 1", BIT_DIGITAL, DrvJoy1 + 4, "p1 fire 1"},
- {"P1 Button 2", BIT_DIGITAL, DrvJoy1 + 5, "p1 fire 2"},
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy5 + 6, "p2 coin"},
- {"P2 Start", BIT_DIGITAL, DrvJoy4 + 1, "p2 start"},
- {"P2 Up", BIT_DIGITAL, DrvJoy2 + 0, "p2 up"},
- {"P2 Down", BIT_DIGITAL, DrvJoy2 + 1, "p2 down"},
- {"P2 Left", BIT_DIGITAL, DrvJoy2 + 2, "p2 left"},
- {"P2 Right", BIT_DIGITAL, DrvJoy2 + 3, "p2 right"},
- {"P2 Button 1", BIT_DIGITAL, DrvJoy2 + 4, "p2 fire 1"},
- {"P2 Button 2", BIT_DIGITAL, DrvJoy2 + 5, "p2 fire 2"},
-
- {"P3 Coin", BIT_DIGITAL, DrvJoy5 + 7, "p3 coin"},
- {"P3 Start", BIT_DIGITAL, DrvJoy4 + 2, "p3 start"},
- {"P3 Up", BIT_DIGITAL, DrvJoy3 + 0, "p3 up"},
- {"P3 Down", BIT_DIGITAL, DrvJoy3 + 1, "p3 down"},
- {"P3 Left", BIT_DIGITAL, DrvJoy3 + 2, "p3 left"},
- {"P3 Right", BIT_DIGITAL, DrvJoy3 + 3, "p3 right"},
- {"P3 Button 1", BIT_DIGITAL, DrvJoy3 + 4, "p3 fire 1"},
- {"P3 Button 2", BIT_DIGITAL, DrvJoy3 + 5, "p3 fire 2"},
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset"},
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip"},
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip"},
-};
-
-STDINPUTINFO(Ghostb3)
-
-static struct BurnDIPInfo Ghostb3DIPList[]=
-{
- {0x19, 0xff, 0xff, 0xf0, NULL },
- {0x1a, 0xff, 0xff, 0xbf, NULL },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x19, 0x01, 0x20, 0x00, "Off" },
- {0x19, 0x01, 0x20, 0x20, "On" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x19, 0x01, 0x40, 0x40, "Off" },
- {0x19, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x1a, 0x01, 0x03, 0x01, "1" },
- {0x1a, 0x01, 0x03, 0x03, "3" },
- {0x1a, 0x01, 0x03, 0x02, "5" },
- {0x1a, 0x01, 0x03, 0x00, "Infinite (Cheat)" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x1a, 0x01, 0x0c, 0x04, "Easy" },
- {0x1a, 0x01, 0x0c, 0x0c, "Normal" },
- {0x1a, 0x01, 0x0c, 0x08, "Hard" },
- {0x1a, 0x01, 0x0c, 0x00, "Hardest" },
-
- {0 , 0xfe, 0 , 4, "Scene Time" },
- {0x1a, 0x01, 0x30, 0x00, "4.00" },
- {0x1a, 0x01, 0x30, 0x10, "4.30" },
- {0x1a, 0x01, 0x30, 0x30, "5.00" },
- {0x1a, 0x01, 0x30, 0x20, "6.00" },
-
- {0 , 0xfe, 0 , 2, "Allow Continue" },
- {0x1a, 0x01, 0x40, 0x40, "No" },
- {0x1a, 0x01, 0x40, 0x00, "Yes" },
-
- {0 , 0xfe, 0 , 2, "Beam Energy Pickup" },
- {0x1a, 0x01, 0x80, 0x00, "Up 1.5%" },
- {0x1a, 0x01, 0x80, 0x80, "Normal" },
-};
-
-STDDIPINFO(Ghostb3)
-
-static struct BurnInputInfo CobracomInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy3 + 0, "p1 coin"},
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 7, "p1 start"},
- {"P1 Up", BIT_DIGITAL, DrvJoy1 + 0, "p1 up"},
- {"P1 Down", BIT_DIGITAL, DrvJoy1 + 1, "p1 down"},
- {"P1 Left", BIT_DIGITAL, DrvJoy1 + 2, "p1 left"},
- {"P1 Right", BIT_DIGITAL, DrvJoy1 + 3, "p1 right"},
- {"P1 Button 1", BIT_DIGITAL, DrvJoy1 + 4, "p1 fire 1"},
- {"P1 Button 2", BIT_DIGITAL, DrvJoy1 + 5, "p1 fire 2"},
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy3 + 1, "p2 coin"},
- {"P2 Start", BIT_DIGITAL, DrvJoy2 + 7, "p2 start"},
- {"P2 Up", BIT_DIGITAL, DrvJoy2 + 0, "p2 up"},
- {"P2 Down", BIT_DIGITAL, DrvJoy2 + 1, "p2 down"},
- {"P2 Left", BIT_DIGITAL, DrvJoy2 + 2, "p2 left"},
- {"P2 Right", BIT_DIGITAL, DrvJoy2 + 3, "p2 right"},
- {"P2 Button 1", BIT_DIGITAL, DrvJoy2 + 4, "p2 fire 1"},
- {"P2 Button 2", BIT_DIGITAL, DrvJoy2 + 5, "p2 fire 2"},
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset"},
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip"},
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip"},
-};
-
-STDINPUTINFO(Cobracom)
-
-static struct BurnDIPInfo CobracomDIPList[]=
-{
- {0x11, 0xff, 0xff, 0x7f, NULL },
- {0x12, 0xff, 0xff, 0xff, NULL },
-
- {0 , 0xfe, 0 , 4, "Coin A" },
- {0x11, 0x01, 0x03, 0x00, "3 Coins 1 Credits " },
- {0x11, 0x01, 0x03, 0x01, "2 Coins 1 Credits " },
- {0x11, 0x01, 0x03, 0x03, "1 Coin 1 Credits " },
- {0x11, 0x01, 0x03, 0x02, "1 Coin 2 Credits " },
-
- {0 , 0xfe, 0 , 4, "Coin B" },
- {0x11, 0x01, 0x0c, 0x00, "3 Coins 1 Credits " },
- {0x11, 0x01, 0x0c, 0x04, "2 Coins 1 Credits " },
- {0x11, 0x01, 0x0c, 0x0c, "1 Coin 1 Credits " },
- {0x11, 0x01, 0x0c, 0x08, "1 Coin 2 Credits " },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x11, 0x01, 0x20, 0x00, "Off" },
- {0x11, 0x01, 0x20, 0x20, "On" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x11, 0x01, 0x40, 0x40, "Off" },
- {0x11, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Cabinet" },
- {0x11, 0x01, 0x80, 0x00, "Upright" },
- {0x11, 0x01, 0x80, 0x80, "Cocktail" },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x12, 0x01, 0x03, 0x03, "3" },
- {0x12, 0x01, 0x03, 0x02, "4" },
- {0x12, 0x01, 0x03, 0x01, "5" },
- {0x12, 0x01, 0x03, 0x00, "Infinite (Cheat)" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x12, 0x01, 0x0c, 0x04, "Easy" },
- {0x12, 0x01, 0x0c, 0x0c, "Normal" },
- {0x12, 0x01, 0x0c, 0x08, "Hard" },
- {0x12, 0x01, 0x0c, 0x00, "Hardest" },
-
- {0 , 0xfe, 0 , 2, "Allow Continue" },
- {0x12, 0x01, 0x10, 0x00, "No" },
- {0x12, 0x01, 0x10, 0x10, "Yes" },
-
- {0 , 0xfe, 0 , 2, "Bonus Life" },
- {0x12, 0x01, 0x20, 0x20, "50k, 150k" },
- {0x12, 0x01, 0x20, 0x00, "100k, 200k" },
-};
-
-STDDIPINFO(Cobracom)
-
-static struct BurnInputInfo SrdarwinInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy5 + 0, "p1 coin"},
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 6, "p1 start"},
- {"P1 Up", BIT_DIGITAL, DrvJoy1 + 2, "p1 up"},
- {"P1 Down", BIT_DIGITAL, DrvJoy1 + 3, "p1 down"},
- {"P1 Left", BIT_DIGITAL, DrvJoy1 + 1, "p1 left"},
- {"P1 Right", BIT_DIGITAL, DrvJoy1 + 0, "p1 right"},
- {"P1 Button 1", BIT_DIGITAL, DrvJoy1 + 4, "p1 fire 1"},
- {"P1 Button 2", BIT_DIGITAL, DrvJoy1 + 5, "p1 fire 2"},
-
- {"P2 Start", BIT_DIGITAL, DrvJoy1 + 7, "p2 start"},
- {"P2 Up", BIT_DIGITAL, DrvJoy2 + 2, "p2 up"},
- {"P2 Down", BIT_DIGITAL, DrvJoy2 + 3, "p2 down"},
- {"P2 Left", BIT_DIGITAL, DrvJoy2 + 1, "p2 left"},
- {"P2 Right", BIT_DIGITAL, DrvJoy2 + 0, "p2 right"},
- {"P2 Button 1", BIT_DIGITAL, DrvJoy2 + 4, "p2 fire 1"},
- {"P2 Button 2", BIT_DIGITAL, DrvJoy2 + 5, "p2 fire 2"},
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset"},
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip"},
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip"},
-};
-
-STDINPUTINFO(Srdarwin)
-
-static struct BurnDIPInfo SrdarwinDIPList[]=
-{
- {0x10, 0xff, 0xff, 0x7f, NULL },
- {0x11, 0xff, 0xff, 0xff, NULL },
-
- {0 , 0xfe, 0 , 4, "Coin A" },
- {0x10, 0x01, 0x03, 0x00, "3 Coins 1 Credits " },
- {0x10, 0x01, 0x03, 0x01, "2 Coins 1 Credits " },
- {0x10, 0x01, 0x03, 0x03, "1 Coin 1 Credits " },
- {0x10, 0x01, 0x03, 0x02, "1 Coin 2 Credits " },
-
- {0 , 0xfe, 0 , 4, "Coin B" },
- {0x10, 0x01, 0x0c, 0x00, "3 Coins 1 Credits " },
- {0x10, 0x01, 0x0c, 0x04, "2 Coins 1 Credits " },
- {0x10, 0x01, 0x0c, 0x0c, "1 Coin 1 Credits " },
- {0x10, 0x01, 0x0c, 0x08, "1 Coin 2 Credits " },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x10, 0x01, 0x20, 0x00, "Off" },
- {0x10, 0x01, 0x20, 0x20, "On" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x10, 0x01, 0x40, 0x40, "Off" },
- {0x10, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Cabinet" },
- {0x10, 0x01, 0x80, 0x00, "Upright" },
- {0x10, 0x01, 0x80, 0x80, "Cocktail" },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x11, 0x01, 0x03, 0x01, "1" },
- {0x11, 0x01, 0x03, 0x03, "3" },
- {0x11, 0x01, 0x03, 0x02, "5" },
- {0x11, 0x01, 0x03, 0x00, "28 (Cheat)" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x11, 0x01, 0x0c, 0x04, "Easy" },
- {0x11, 0x01, 0x0c, 0x0c, "Normal" },
- {0x11, 0x01, 0x0c, 0x08, "Hard" },
- {0x11, 0x01, 0x0c, 0x00, "Hardest" },
-
- {0 , 0xfe, 0 , 2, "Continues" },
- {0x11, 0x01, 0x80, 0x00, "Off" },
- {0x11, 0x01, 0x80, 0x80, "On" },
-};
-
-STDDIPINFO(Srdarwin)
-
-static struct BurnInputInfo GondoInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy5 + 0, "p1 coin"},
- {"P1 Start", BIT_DIGITAL, DrvJoy4 + 0, "p1 start"},
- {"P1 Up", BIT_DIGITAL, DrvJoy1 + 0, "p1 up"},
- {"P1 Down", BIT_DIGITAL, DrvJoy1 + 1, "p1 down"},
- {"P1 Left", BIT_DIGITAL, DrvJoy1 + 2, "p1 left"},
- {"P1 Right", BIT_DIGITAL, DrvJoy1 + 3, "p1 right"},
- {"P1 Button 1", BIT_DIGITAL, DrvJoy3 + 0, "p1 fire 1"},
- {"P1 Button 2", BIT_DIGITAL, DrvJoy3 + 1, "p1 fire 2"},
- {"P1 Button 4", BIT_DIGITAL, DrvJoy1 + 4, "p1 fire 4"}, // fake - hold space for rotory
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy5 + 1, "p2 coin"},
- {"P2 Start", BIT_DIGITAL, DrvJoy4 + 1, "p2 start"},
- {"P2 Up", BIT_DIGITAL, DrvJoy2 + 0, "p2 up"},
- {"P2 Down", BIT_DIGITAL, DrvJoy2 + 1, "p2 down"},
- {"P2 Left", BIT_DIGITAL, DrvJoy2 + 2, "p2 left"},
- {"P2 Right", BIT_DIGITAL, DrvJoy2 + 3, "p2 right"},
- {"P2 Button 1", BIT_DIGITAL, DrvJoy3 + 2, "p2 fire 1"},
- {"P2 Button 2", BIT_DIGITAL, DrvJoy3 + 3, "p2 fire 2"},
- {"P2 Button 4", BIT_DIGITAL, DrvJoy2 + 4, "p2 fire 4"}, // fake - hold space for rotory
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset"},
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip"},
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip"},
-};
-
-STDINPUTINFO(Gondo)
-
-static struct BurnDIPInfo GondoDIPList[]=
-{
- {0x13, 0xff, 0xff, 0xff, NULL },
- {0x14, 0xff, 0xff, 0xff, NULL },
-
- {0 , 0xfe, 0 , 4, "Coin A" },
- {0x13, 0x01, 0x03, 0x00, "3 Coins 1 Credits " },
- {0x13, 0x01, 0x03, 0x01, "2 Coins 1 Credits " },
- {0x13, 0x01, 0x03, 0x03, "1 Coin 1 Credits " },
- {0x13, 0x01, 0x03, 0x02, "1 Coin 2 Credits " },
-
- {0 , 0xfe, 0 , 4, "Coin B" },
- {0x13, 0x01, 0x0c, 0x00, "3 Coins 1 Credits " },
- {0x13, 0x01, 0x0c, 0x04, "2 Coins 1 Credits " },
- {0x13, 0x01, 0x0c, 0x0c, "1 Coin 1 Credits " },
- {0x13, 0x01, 0x0c, 0x08, "1 Coin 2 Credits " },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x13, 0x01, 0x20, 0x00, "Off" },
- {0x13, 0x01, 0x20, 0x20, "On" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x13, 0x01, 0x40, 0x40, "Off" },
- {0x13, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x14, 0x01, 0x03, 0x01, "1" },
- {0x14, 0x01, 0x03, 0x03, "3" },
- {0x14, 0x01, 0x03, 0x02, "5" },
- {0x14, 0x01, 0x03, 0x00, "Infinite (Cheat)" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x14, 0x01, 0x0c, 0x04, "Easy" },
- {0x14, 0x01, 0x0c, 0x0c, "Normal" },
- {0x14, 0x01, 0x0c, 0x08, "Hard" },
- {0x14, 0x01, 0x0c, 0x00, "Hardest" },
-
- {0 , 0xfe, 0 , 2, "Allow Continue" },
- {0x14, 0x01, 0x10, 0x10, "No" },
- {0x14, 0x01, 0x10, 0x00, "Yes" },
-};
-
-STDDIPINFO(Gondo)
-
-static struct BurnInputInfo GaryoretInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy5 + 0, "p1 coin"},
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 6, "p1 start"},
- {"P1 Up", BIT_DIGITAL, DrvJoy1 + 0, "p1 up"},
- {"P1 Down", BIT_DIGITAL, DrvJoy1 + 1, "p1 down"},
- {"P1 Left", BIT_DIGITAL, DrvJoy1 + 2, "p1 left"},
- {"P1 Right", BIT_DIGITAL, DrvJoy1 + 3, "p1 right"},
- {"P1 Button 1", BIT_DIGITAL, DrvJoy1 + 4, "p1 fire 1"},
- {"P1 Button 2", BIT_DIGITAL, DrvJoy1 + 5, "p1 fire 2"},
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy5 + 1, "p2 coin"},
- {"P2 Start", BIT_DIGITAL, DrvJoy1 + 7, "p2 start"},
- {"P2 Up", BIT_DIGITAL, DrvJoy2 + 0, "p2 up"},
- {"P2 Down", BIT_DIGITAL, DrvJoy2 + 1, "p2 down"},
- {"P2 Left", BIT_DIGITAL, DrvJoy2 + 2, "p2 left"},
- {"P2 Right", BIT_DIGITAL, DrvJoy2 + 3, "p2 right"},
- {"P2 Button 1", BIT_DIGITAL, DrvJoy2 + 4, "p2 fire 1"},
- {"P2 Button 2", BIT_DIGITAL, DrvJoy2 + 5, "p2 fire 2"},
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset"},
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip"},
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip"},
-};
-
-STDINPUTINFO(Garyoret)
-
-static struct BurnDIPInfo GaryoretDIPList[]=
-{
- {0x11, 0xff, 0xff, 0xff, NULL },
- {0x12, 0xff, 0xff, 0xff, NULL },
-
- {0 , 0xfe, 0 , 4, "Coin A" },
- {0x11, 0x01, 0x03, 0x00, "3 Coins 1 Credits " },
- {0x11, 0x01, 0x03, 0x01, "2 Coins 1 Credits " },
- {0x11, 0x01, 0x03, 0x03, "1 Coin 1 Credits " },
- {0x11, 0x01, 0x03, 0x02, "1 Coin 2 Credits " },
-
- {0 , 0xfe, 0 , 4, "Coin B" },
- {0x11, 0x01, 0x0c, 0x00, "3 Coins 1 Credits " },
- {0x11, 0x01, 0x0c, 0x04, "2 Coins 1 Credits " },
- {0x11, 0x01, 0x0c, 0x0c, "1 Coin 1 Credits " },
- {0x11, 0x01, 0x0c, 0x08, "1 Coin 2 Credits " },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x11, 0x01, 0x20, 0x00, "Off" },
- {0x11, 0x01, 0x20, 0x20, "On" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x11, 0x01, 0x40, 0x40, "Off" },
- {0x11, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Lives" },
- {0x12, 0x01, 0x01, 0x01, "3" },
- {0x12, 0x01, 0x01, 0x00, "5" },
-
- {0 , 0xfe, 0 , 2, "Unused" },
- {0x12, 0x01, 0x02, 0x02, "Off" },
- {0x12, 0x01, 0x02, 0x00, "On" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x12, 0x01, 0x0c, 0x04, "Easy" },
- {0x12, 0x01, 0x0c, 0x0c, "Normal" },
- {0x12, 0x01, 0x0c, 0x08, "Hard" },
- {0x12, 0x01, 0x0c, 0x00, "Hardest" },
-};
-
-STDDIPINFO(Garyoret)
-
-static struct BurnInputInfo OscarInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy3 + 0, "p1 coin"},
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 7, "p1 start"},
- {"P1 Up", BIT_DIGITAL, DrvJoy1 + 0, "p1 up"},
- {"P1 Down", BIT_DIGITAL, DrvJoy1 + 1, "p1 down"},
- {"P1 Left", BIT_DIGITAL, DrvJoy1 + 2, "p1 left"},
- {"P1 Right", BIT_DIGITAL, DrvJoy1 + 3, "p1 right"},
- {"P1 Button 1", BIT_DIGITAL, DrvJoy1 + 4, "p1 fire 1"},
- {"P1 Button 2", BIT_DIGITAL, DrvJoy1 + 5, "p1 fire 2"},
- {"P1 Button 3", BIT_DIGITAL, DrvJoy1 + 6, "p1 fire 3"},
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy3 + 1, "p2 coin"},
- {"P2 Start", BIT_DIGITAL, DrvJoy2 + 7, "p2 start"},
- {"P2 Up", BIT_DIGITAL, DrvJoy2 + 0, "p2 up"},
- {"P2 Down", BIT_DIGITAL, DrvJoy2 + 1, "p2 down"},
- {"P2 Left", BIT_DIGITAL, DrvJoy2 + 2, "p2 left"},
- {"P2 Right", BIT_DIGITAL, DrvJoy2 + 3, "p2 right"},
- {"P2 Button 1", BIT_DIGITAL, DrvJoy2 + 4, "p2 fire 1"},
- {"P2 Button 2", BIT_DIGITAL, DrvJoy2 + 5, "p2 fire 2"},
- {"P2 Button 3", BIT_DIGITAL, DrvJoy2 + 6, "p2 fire 3"},
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset"},
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip"},
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip"},
-};
-
-STDINPUTINFO(Oscar)
-
-static struct BurnDIPInfo OscarDIPList[]=
-{
- {0x13, 0xff, 0xff, 0x7f, NULL },
- {0x14, 0xff, 0xff, 0xff, NULL },
-
- {0 , 0xfe, 0 , 4, "Coin A" },
- {0x13, 0x01, 0x03, 0x00, "2 Coins 1 Credits " },
- {0x13, 0x01, 0x03, 0x03, "1 Coin 1 Credits " },
- {0x13, 0x01, 0x03, 0x02, "1 Coin 2 Credits " },
- {0x13, 0x01, 0x03, 0x01, "1 Coin 3 Credits " },
-
- {0 , 0xfe, 0 , 4, "Coin B" },
- {0x13, 0x01, 0x0c, 0x00, "2 Coins 1 Credits " },
- {0x13, 0x01, 0x0c, 0x0c, "1 Coin 1 Credits " },
- {0x13, 0x01, 0x0c, 0x08, "1 Coin 2 Credits " },
- {0x13, 0x01, 0x0c, 0x04, "1 Coin 3 Credits " },
-
- {0 , 0xfe, 0 , 2, "Freeze Mode" },
- {0x13, 0x01, 0x10, 0x10, "Off" },
- {0x13, 0x01, 0x10, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x13, 0x01, 0x20, 0x00, "Off" },
- {0x13, 0x01, 0x20, 0x20, "On" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x13, 0x01, 0x40, 0x40, "Off" },
- {0x13, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Cabinet" },
- {0x13, 0x01, 0x80, 0x00, "Upright" },
- {0x13, 0x01, 0x80, 0x80, "Cocktail" },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x14, 0x01, 0x03, 0x01, "1" },
- {0x14, 0x01, 0x03, 0x03, "3" },
- {0x14, 0x01, 0x03, 0x02, "5" },
- {0x14, 0x01, 0x03, 0x00, "Infinite (Cheat)" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x14, 0x01, 0x0c, 0x04, "Easy" },
- {0x14, 0x01, 0x0c, 0x0c, "Normal" },
- {0x14, 0x01, 0x0c, 0x08, "Hard" },
- {0x14, 0x01, 0x0c, 0x00, "Hardest" },
-
- {0 , 0xfe, 0 , 4, "Bonus Life" },
- {0x14, 0x01, 0x30, 0x30, "Every 40000" },
- {0x14, 0x01, 0x30, 0x20, "Every 60000" },
- {0x14, 0x01, 0x30, 0x10, "Every 90000" },
- {0x14, 0x01, 0x30, 0x00, "50000 only" },
-
- {0 , 0xfe, 0 , 2, "Invulnerability (Cheat)" },
- {0x14, 0x01, 0x40, 0x40, "Off" },
- {0x14, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Allow Continue" },
- {0x14, 0x01, 0x80, 0x00, "No" },
- {0x14, 0x01, 0x80, 0x80, "Yes" },
-};
-
-STDDIPINFO(Oscar)
-
-static struct BurnDIPInfo OscaruDIPList[]=
-{
- {0x13, 0xff, 0xff, 0x7f, NULL },
- {0x14, 0xff, 0xff, 0xff, NULL },
-
- {0 , 0xfe, 0 , 4, "Coin A" },
- {0x13, 0x01, 0x03, 0x03, "1 Coin 2 Credits " },
- {0x13, 0x01, 0x03, 0x02, "1 Coin 3 Credits " },
- {0x13, 0x01, 0x03, 0x01, "1 Coin 4 Credits " },
- {0x13, 0x01, 0x03, 0x00, "1 Coin 6 Credits " },
-
- {0 , 0xfe, 0 , 4, "Coin B" },
- {0x13, 0x01, 0x0c, 0x00, "4 Coins 1 Credits " },
- {0x13, 0x01, 0x0c, 0x04, "3 Coins 1 Credits " },
- {0x13, 0x01, 0x0c, 0x08, "2 Coins 1 Credits " },
- {0x13, 0x01, 0x0c, 0x0c, "1 Coin 1 Credits " },
-
- {0 , 0xfe, 0 , 2, "Freeze Mode" },
- {0x13, 0x01, 0x10, 0x10, "Off" },
- {0x13, 0x01, 0x10, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x13, 0x01, 0x20, 0x00, "Off" },
- {0x13, 0x01, 0x20, 0x20, "On" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x13, 0x01, 0x40, 0x40, "Off" },
- {0x13, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Cabinet" },
- {0x13, 0x01, 0x80, 0x00, "Upright" },
- {0x13, 0x01, 0x80, 0x80, "Cocktail" },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x14, 0x01, 0x03, 0x01, "1" },
- {0x14, 0x01, 0x03, 0x03, "3" },
- {0x14, 0x01, 0x03, 0x02, "5" },
- {0x14, 0x01, 0x03, 0x00, "Infinite (Cheat)" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x14, 0x01, 0x0c, 0x04, "Easy" },
- {0x14, 0x01, 0x0c, 0x0c, "Normal" },
- {0x14, 0x01, 0x0c, 0x08, "Hard" },
- {0x14, 0x01, 0x0c, 0x00, "Hardest" },
-
- {0 , 0xfe, 0 , 4, "Bonus Life" },
- {0x14, 0x01, 0x30, 0x30, "Every 40000" },
- {0x14, 0x01, 0x30, 0x20, "Every 60000" },
- {0x14, 0x01, 0x30, 0x10, "Every 90000" },
- {0x14, 0x01, 0x30, 0x00, "50000 only" },
-
- {0 , 0xfe, 0 , 2, "Invulnerability (Cheat" },
- {0x14, 0x01, 0x40, 0x40, "Off" },
- {0x14, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Allow Continue" },
- {0x14, 0x01, 0x80, 0x00, "No" },
- {0x14, 0x01, 0x80, 0x80, "Yes" },
-};
-
-STDDIPINFO(Oscaru)
-
-static struct BurnInputInfo LastmisnInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy3 + 0, "p1 coin"},
- {"P1 Start", BIT_DIGITAL, DrvJoy3 + 2, "p1 start"},
- {"P1 Up", BIT_DIGITAL, DrvJoy1 + 0, "p1 up"},
- {"P1 Down", BIT_DIGITAL, DrvJoy1 + 1, "p1 down"},
- {"P1 Left", BIT_DIGITAL, DrvJoy1 + 2, "p1 left"},
- {"P1 Right", BIT_DIGITAL, DrvJoy1 + 3, "p1 right"},
- {"P1 Button 1", BIT_DIGITAL, DrvJoy1 + 4, "p1 fire 1"},
- {"P1 Button 2", BIT_DIGITAL, DrvJoy1 + 5, "p1 fire 2"},
- {"P1 Button 3", BIT_DIGITAL, DrvJoy1 + 6, "p1 fire 3"},
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy3 + 1, "p2 coin"},
- {"P2 Start", BIT_DIGITAL, DrvJoy3 + 3, "p2 start"},
- {"P2 Up", BIT_DIGITAL, DrvJoy2 + 0, "p2 up"},
- {"P2 Down", BIT_DIGITAL, DrvJoy2 + 1, "p2 down"},
- {"P2 Left", BIT_DIGITAL, DrvJoy2 + 2, "p2 left"},
- {"P2 Right", BIT_DIGITAL, DrvJoy2 + 3, "p2 right"},
- {"P2 Button 1", BIT_DIGITAL, DrvJoy2 + 4, "p2 fire 1"},
- {"P2 Button 2", BIT_DIGITAL, DrvJoy2 + 5, "p2 fire 2"},
- {"P2 Button 3", BIT_DIGITAL, DrvJoy2 + 6, "p2 fire 3"},
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset"},
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip"},
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip"},
-};
-
-STDINPUTINFO(Lastmisn)
-
-static struct BurnDIPInfo LastmisnDIPList[]=
-{
- {0x13, 0xff, 0xff, 0xcf, NULL },
- {0x14, 0xff, 0xff, 0x7f, NULL },
-
- {0 , 0xfe, 0 , 4, "Coin A" },
- {0x13, 0x01, 0x03, 0x00, "3 Coins 1 Credits " },
- {0x13, 0x01, 0x03, 0x01, "2 Coins 1 Credits " },
- {0x13, 0x01, 0x03, 0x03, "1 Coin 1 Credits " },
- {0x13, 0x01, 0x03, 0x02, "1 Coin 2 Credits " },
-
- {0 , 0xfe, 0 , 4, "Coin B" },
- {0x13, 0x01, 0x0c, 0x00, "3 Coins 1 Credits " },
- {0x13, 0x01, 0x0c, 0x04, "2 Coins 1 Credits " },
- {0x13, 0x01, 0x0c, 0x0c, "1 Coin 1 Credits " },
- {0x13, 0x01, 0x0c, 0x08, "1 Coin 2 Credits " },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x13, 0x01, 0x10, 0x10, "Off" },
- {0x13, 0x01, 0x10, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Cabinet" },
- {0x13, 0x01, 0x20, 0x00, "Upright" },
- {0x13, 0x01, 0x20, 0x20, "Cocktail" },
-
- {0 , 0xfe, 0 , 2, "Invulnerability (Cheat" },
- {0x13, 0x01, 0x40, 0x40, "Off" },
- {0x13, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Infinite Lives (Cheat" },
- {0x13, 0x01, 0x80, 0x80, "Off" },
- {0x13, 0x01, 0x80, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Lives" },
- {0x14, 0x01, 0x01, 0x01, "3" },
- {0x14, 0x01, 0x01, 0x00, "5" },
-
- {0 , 0xfe, 0 , 4, "Bonus Life" },
- {0x14, 0x01, 0x06, 0x06, "30k, 70k then every 70k" },
- {0x14, 0x01, 0x06, 0x04, "40k, 90k then every 90k" },
- {0x14, 0x01, 0x06, 0x02, "40k and 80k" },
- {0x14, 0x01, 0x06, 0x00, "50k only" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x14, 0x01, 0x18, 0x08, "Easy" },
- {0x14, 0x01, 0x18, 0x18, "Normal" },
- {0x14, 0x01, 0x18, 0x10, "Hard" },
- {0x14, 0x01, 0x18, 0x00, "Hardest" },
-
- {0 , 0xfe, 0 , 2, "Allow Continue" },
- {0x14, 0x01, 0x80, 0x80, "No" },
- {0x14, 0x01, 0x80, 0x00, "Yes" },
-};
-
-STDDIPINFO(Lastmisn)
-
-static struct BurnDIPInfo LastmsnjDIPList[]=
-{
- {0x13, 0xff, 0xff, 0xcf, NULL },
- {0x14, 0xff, 0xff, 0xff, NULL },
-
- {0 , 0xfe, 0 , 4, "Coin A" },
- {0x13, 0x01, 0x03, 0x00, "3 Coins 1 Credits " },
- {0x13, 0x01, 0x03, 0x01, "2 Coins 1 Credits " },
- {0x13, 0x01, 0x03, 0x03, "1 Coin 1 Credits " },
- {0x13, 0x01, 0x03, 0x02, "1 Coin 2 Credits " },
-
- {0 , 0xfe, 0 , 4, "Coin B" },
- {0x13, 0x01, 0x0c, 0x00, "3 Coins 1 Credits " },
- {0x13, 0x01, 0x0c, 0x04, "2 Coins 1 Credits " },
- {0x13, 0x01, 0x0c, 0x0c, "1 Coin 1 Credits " },
- {0x13, 0x01, 0x0c, 0x08, "1 Coin 2 Credits " },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x13, 0x01, 0x10, 0x10, "Off" },
- {0x13, 0x01, 0x10, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Cabinet" },
- {0x13, 0x01, 0x20, 0x00, "Upright" },
- {0x13, 0x01, 0x20, 0x20, "Cocktail" },
-
- {0 , 0xfe, 0 , 2, "Invulnerability (Cheat" },
- {0x13, 0x01, 0x40, 0x40, "Off" },
- {0x13, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Infinite Lives (Cheat" },
- {0x13, 0x01, 0x80, 0x80, "Off" },
- {0x13, 0x01, 0x80, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Lives" },
- {0x14, 0x01, 0x01, 0x01, "3" },
- {0x14, 0x01, 0x01, 0x00, "5" },
-
- {0 , 0xfe, 0 , 4, "Bonus Life" },
- {0x14, 0x01, 0x06, 0x06, "30k, 50k then every 50k" },
- {0x14, 0x01, 0x06, 0x04, "30k, 70k then every 70k" },
- {0x14, 0x01, 0x06, 0x02, "50k, 100k then every 100k" },
- {0x14, 0x01, 0x06, 0x00, "50k only" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x14, 0x01, 0x18, 0x08, "Easy" },
- {0x14, 0x01, 0x18, 0x18, "Normal" },
- {0x14, 0x01, 0x18, 0x10, "Hard" },
- {0x14, 0x01, 0x18, 0x00, "Hardest" },
-};
-
-STDDIPINFO(Lastmsnj)
-
-static struct BurnInputInfo ShackledInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy3 + 0, "p1 coin"},
- {"P1 Start", BIT_DIGITAL, DrvJoy3 + 2, "p1 start"},
- {"P1 Up", BIT_DIGITAL, DrvJoy1 + 0, "p1 up"},
- {"P1 Down", BIT_DIGITAL, DrvJoy1 + 1, "p1 down"},
- {"P1 Left", BIT_DIGITAL, DrvJoy1 + 2, "p1 left"},
- {"P1 Right", BIT_DIGITAL, DrvJoy1 + 3, "p1 right"},
- {"P1 Button 1", BIT_DIGITAL, DrvJoy1 + 4, "p1 fire 1"},
- {"P1 Button 2", BIT_DIGITAL, DrvJoy1 + 5, "p1 fire 2"},
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy3 + 1, "p2 coin"},
- {"P2 Start", BIT_DIGITAL, DrvJoy3 + 3, "p2 start"},
- {"P2 Up", BIT_DIGITAL, DrvJoy2 + 0, "p2 up"},
- {"P2 Down", BIT_DIGITAL, DrvJoy2 + 1, "p2 down"},
- {"P2 Left", BIT_DIGITAL, DrvJoy2 + 2, "p2 left"},
- {"P2 Right", BIT_DIGITAL, DrvJoy2 + 3, "p2 right"},
- {"P2 Button 1", BIT_DIGITAL, DrvJoy2 + 4, "p2 fire 1"},
- {"P2 Button 2", BIT_DIGITAL, DrvJoy2 + 5, "p2 fire 2"},
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset"},
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip"},
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip"},
-};
-
-STDINPUTINFO(Shackled)
-
-static struct BurnDIPInfo ShackledDIPList[]=
-{
- {0x11, 0xff, 0xff, 0xf7, NULL },
- {0x12, 0xff, 0xff, 0x7f, NULL },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x11, 0x01, 0x01, 0x01, "Off" },
- {0x11, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Leave Off" },
- {0x11, 0x01, 0x10, 0x10, "Off" },
- {0x11, 0x01, 0x10, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Freeze" },
- {0x11, 0x01, 0x80, 0x80, "Off" },
- {0x11, 0x01, 0x80, 0x00, "On" },
-
- {0 , 0xfe, 0 , 16, "Power" },
- {0x12, 0x01, 0x0f, 0x07, "200" },
- {0x12, 0x01, 0x0f, 0x0b, "300" },
- {0x12, 0x01, 0x0f, 0x03, "400" },
- {0x12, 0x01, 0x0f, 0x0d, "500" },
- {0x12, 0x01, 0x0f, 0x05, "600" },
- {0x12, 0x01, 0x0f, 0x09, "700" },
- {0x12, 0x01, 0x0f, 0x01, "800" },
- {0x12, 0x01, 0x0f, 0x0e, "900" },
- {0x12, 0x01, 0x0f, 0x0f, "1000" },
- {0x12, 0x01, 0x0f, 0x06, "2000" },
- {0x12, 0x01, 0x0f, 0x0a, "3000" },
- {0x12, 0x01, 0x0f, 0x02, "4000" },
- {0x12, 0x01, 0x0f, 0x0c, "5000" },
- {0x12, 0x01, 0x0f, 0x04, "6000" },
- {0x12, 0x01, 0x0f, 0x08, "7000" },
- {0x12, 0x01, 0x0f, 0x00, "8000" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x12, 0x01, 0x30, 0x30, "Normal" },
- {0x12, 0x01, 0x30, 0x20, "Hard" },
- {0x12, 0x01, 0x30, 0x10, "Very Hard" },
- {0x12, 0x01, 0x30, 0x00, "Hardest" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x12, 0x01, 0x80, 0x80, "Off" },
- {0x12, 0x01, 0x80, 0x00, "On" },
-};
-
-STDDIPINFO(Shackled)
-
-static struct BurnInputInfo CsilverInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy3 + 0, "p1 coin"},
- {"P1 Start", BIT_DIGITAL, DrvJoy3 + 2, "p1 start"},
- {"P1 Up", BIT_DIGITAL, DrvJoy1 + 0, "p1 up"},
- {"P1 Down", BIT_DIGITAL, DrvJoy1 + 1, "p1 down"},
- {"P1 Left", BIT_DIGITAL, DrvJoy1 + 2, "p1 left"},
- {"P1 Right", BIT_DIGITAL, DrvJoy1 + 3, "p1 right"},
- {"P1 Button 1", BIT_DIGITAL, DrvJoy1 + 4, "p1 fire 1"},
- {"P1 Button 2", BIT_DIGITAL, DrvJoy1 + 5, "p1 fire 2"},
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy3 + 1, "p2 coin"},
- {"P2 Start", BIT_DIGITAL, DrvJoy3 + 3, "p2 start"},
- {"P2 Up", BIT_DIGITAL, DrvJoy2 + 0, "p2 up"},
- {"P2 Down", BIT_DIGITAL, DrvJoy2 + 1, "p2 down"},
- {"P2 Left", BIT_DIGITAL, DrvJoy2 + 2, "p2 left"},
- {"P2 Right", BIT_DIGITAL, DrvJoy2 + 3, "p2 right"},
- {"P2 Button 1", BIT_DIGITAL, DrvJoy2 + 4, "p2 fire 1"},
- {"P2 Button 2", BIT_DIGITAL, DrvJoy2 + 5, "p2 fire 2"},
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset"},
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip"},
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip"},
-};
-
-STDINPUTINFO(Csilver)
-
-static struct BurnDIPInfo CsilverDIPList[]=
-{
- {0x11, 0xff, 0xff, 0x7f, NULL },
- {0x12, 0xff, 0xff, 0xff, NULL },
-
- {0 , 0xfe, 0 , 1, "Coin A" },
- {0x11, 0x01, 0x03, 0x03, "1 Coin 1 Credits " },
-
- {0 , 0xfe, 0 , 1, "Coin B" },
- {0x11, 0x01, 0x0c, 0x0c, "1 Coin 1 Credits " },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x11, 0x01, 0x20, 0x00, "Off" },
- {0x11, 0x01, 0x20, 0x20, "On" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x11, 0x01, 0x40, 0x40, "Off" },
- {0x11, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Cabinet" },
- {0x11, 0x01, 0x80, 0x00, "Upright" },
- {0x11, 0x01, 0x80, 0x80, "Cocktail" },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x12, 0x01, 0x03, 0x01, "1" },
- {0x12, 0x01, 0x03, 0x03, "3" },
- {0x12, 0x01, 0x03, 0x02, "5" },
- {0x12, 0x01, 0x03, 0x00, "Infinite (Cheat)" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x12, 0x01, 0x0c, 0x04, "Easy" },
- {0x12, 0x01, 0x0c, 0x0c, "Normal" },
- {0x12, 0x01, 0x0c, 0x08, "Hard" },
- {0x12, 0x01, 0x0c, 0x00, "Hardest" },
-
- {0 , 0xfe, 0 , 2, "Allow Continue" },
- {0x12, 0x01, 0x10, 0x00, "No" },
- {0x12, 0x01, 0x10, 0x10, "Yes" },
-};
-
-STDDIPINFO(Csilver)
-
-static void ghostb_i8751_write(INT32 offset, INT32 data)
-{
- i8751_return = 0;
-
- switch (offset)
- {
- case 0:
- i8751_value = (i8751_value & 0x00ff) | (data << 8);
- mcs51_set_irq_line(MCS51_INT1_LINE, CPU_IRQSTATUS_ACK);
- nCyclesDone[2] += mcs51Run(64);
- mcs51_set_irq_line(MCS51_INT1_LINE, CPU_IRQSTATUS_NONE);
- break;
-
- case 1:
- i8751_value = (i8751_value & 0xff00) | (data << 0);
- break;
- }
-}
-
-// i8751 MCU, currently only for ghostb.
-static UINT8 i8751_port0 = 0;
-static UINT8 i8751_port1 = 0;
-
-static UINT8 mcu_read_port(INT32 port)
-{
- if (!(port >= MCS51_PORT_P0 && port <= MCS51_PORT_P3))
- return 0;
- port &= 0x3;
-
- switch (port) {
- case 0:
- return i8751_port0;
- case 1:
- return i8751_port1;
- case 2:
- return 0xff;
- case 3:
- return DrvInputs[4] & 0xf0; // coin inputs
- }
-
- return 0xff;
-}
-
-static void mcu_write_port(INT32 port, UINT8 data)
-{
- if (!(port >= MCS51_PORT_P0 && port <= MCS51_PORT_P3))
- return;
-
- port &= 0x3;
-
- if (port == 0) i8751_port0 = data;
- else if (port == 1) i8751_port1 = data;
-
- if (port == 2 && (data&0x10) == 0)
- i8751_port0 = i8751_value>>8;
- if (port == 2 && (data&0x20) == 0)
- i8751_port1 = i8751_value&0xff;
- if (port == 2 && (data&0x40) == 0)
- i8751_return = (i8751_return & 0xff) | (i8751_port0 << 8);
- if (port == 2 && (data&0x80) == 0)
- i8751_return = (i8751_return & 0xff00) | i8751_port1;
-
- if (port == 2 && (data&4) == 0) {
- HD6309SetIRQLine(0, CPU_IRQSTATUS_ACK);
- }
-}
-
-static void DrvMCUReset(); // forward
-
-static void DrvMCUInit()
-{
- mcs51_program_data = DrvMCURom;
- mcs51_init ();
- mcs51_set_write_handler(mcu_write_port);
- mcs51_set_read_handler(mcu_read_port);
-
- DrvMCUReset();
-}
-
-static void DrvMCUExit() {
- mcs51_exit();
-}
-
-static INT32 DrvMCURun(INT32 cycles)
-{
- cycles = mcs51Run(cycles);
-
- return cycles;
-}
-
-static INT32 DrvMCUScan(INT32 nAction)
-{
- mcs51_scan(nAction);
-
- SCAN_VAR(i8751_port0);
- SCAN_VAR(i8751_port1);
- SCAN_VAR(i8751_value);
- SCAN_VAR(i8751_return);
-
- return 0;
-}
-
-static void DrvMCUSync()
-{
- INT32 todo = (HD6309TotalCycles() / 12) - nCyclesDone[2];
- if (todo > 0) nCyclesDone[2] += DrvMCURun(todo);
-}
-
-static void DrvMCUReset()
-{
- i8751_port0 = i8751_port1 = i8751_value = i8751_return = 0;
- mcs51_reset();
-}
-
-
-static void bankswitch(INT32 data)
-{
- RomBank = (data & 0x0f) * 0x4000;
-
- HD6309MapMemory(DrvMainROM + 0x10000 + RomBank, 0x4000, 0x7fff, MAP_ROM); // bank
-}
-
-void ghostb_main_write(UINT16 address, UINT8 data)
-{
-// bprintf (0, _T("%4.4x, %2.2x\n"), address, data);
-
- switch (address)
- {
- case 0x3800:
- *soundlatch = data;
- M6502SetIRQLine(M6502_INPUT_LINE_NMI, CPU_IRQSTATUS_AUTO);
- return;
-
- case 0x3840:
- bankswitch(data >> 4);
-
- if (!(data&1)) HD6309SetIRQLine(0, CPU_IRQSTATUS_NONE);
- *interrupt_enable = data & 1;
- *nmi_enable = data & 2;
- *flipscreen = data & 8;
- return;
-
- case 0x3860:
- case 0x3861:
- ghostb_i8751_write(address & 1, data);
- return;
- }
-
- if ((address & 0xffe0) == 0x3820) {
- DrvPf0Ctrl[address & 0x1f] = data;
- return;
- }
-}
-
-UINT8 ghostb_main_read(UINT16 address)
-{
- switch (address)
- {
- case 0x3800:
- return DrvInputs[0];
-
- case 0x3801:
- return DrvInputs[1];
-
- case 0x3802:
- return DrvInputs[2];
-
- case 0x3803:
- return (DrvDips[0] & 0xf0) | (DrvInputs[3] & 0x07) | vblank;
-
- case 0x3820:
- return DrvDips[1];
-
- case 0x3840:
- DrvMCUSync();
- return i8751_return >> 8;
-
- case 0x3860:
- DrvMCUSync();
- return i8751_return & 0xff;
- }
-
- return 0;
-}
-
-void ghostb_sound_write(UINT16 address, UINT8 data)
-{
-// bprintf (0, _T("%4.4x, %2.2x\n"), address, data);
-
- switch (address)
- {
- case 0x2000:
- case 0x2001:
- BurnYM2203Write(0, address & 1, data);
- return;
-
- case 0x4000:
- case 0x4001:
- BurnYM3812Write(0, address & 1, data);
- return;
- }
-}
-
-UINT8 ghostb_sound_read(UINT16 address)
-{
-// bprintf (0, _T("%4.4x, \n"), address);
-
- switch (address)
- {
- case 0x3000:
- case 0x6000:
- return *soundlatch;
- }
-
- return 0;
-}
-
-static INT32 DrvYM3812SynchroniseStream(INT32 nSoundRate)
-{
- return (INT64)M6502TotalCycles() * nSoundRate / 1500000;
-}
-
-static INT32 DrvYM3812SynchroniseStreamCsilver(INT32 nSoundRate)
-{
- return (INT64)M6502TotalCycles() * nSoundRate / (1500000);
-}
-
-static INT32 DrvYM2203SynchroniseStream(INT32 nSoundRate)
-{
- return (INT64)HD6309TotalCycles() * nSoundRate / 12000000;
-}
-
-static double DrvYM2203GetTime()
-{
- return (double)HD6309TotalCycles() / 12000000;
-}
-
-static INT32 DrvYM2203SynchroniseStream6000000(INT32 nSoundRate)
-{
- return (INT64)HD6309TotalCycles() * nSoundRate / 6000000;
-}
-
-static double DrvYM2203GetTime6000000()
-{
- return (double)HD6309TotalCycles() / 6000000;
-}
-
-static INT32 DrvYM2203M6809SynchroniseStream(INT32 nSoundRate)
-{
- return (INT64)M6809TotalCycles() * nSoundRate / 2000000;
-}
-
-static double DrvYM2203M6809GetTime()
-{
- return (double)M6809TotalCycles() / 2000000;
-}
-
-static INT32 DrvYM2203M6809SynchroniseStream1500000(INT32 nSoundRate)
-{
- return (INT64)M6809TotalCycles() * nSoundRate / (1500000);
-}
-
-static double DrvYM2203M6809GetTime1500000()
-{
- return (double)M6809TotalCycles() / 1500000;
-}
-
-inline static INT32 CsilverMSM5205SynchroniseStream(INT32 nSoundRate)
-{
- return (INT64)((double)M6809TotalCycles() * nSoundRate / (1500000));
-}
-
-static void DrvYM3812FMIRQHandler(INT32, INT32 nStatus)
-{
- if (M6502GetActive() == -1) return;
- if (nStatus) {
- M6502SetIRQLine(M6502_IRQ_LINE, CPU_IRQSTATUS_ACK);
- } else {
- M6502SetIRQLine(M6502_IRQ_LINE, CPU_IRQSTATUS_NONE);
- }
-}
-
-static INT32 DrvDoReset()
-{
- DrvReset = 0;
-
- memset (AllRam, 0, RamEnd - AllRam);
-
- HD6309Open(0);
- HD6309Reset();
- HD6309Close();
-
- M6502Open(0);
- M6502Reset();
- M6502Close();
-
- if (realMCU)
- DrvMCUReset();
-
- BurnYM3812Reset();
- BurnYM2203Reset();
-
- i8751_return = 0;
- i8751_value = 0;
-
- return 0;
-}
-
-static INT32 MemIndex()
-{
- UINT8 *Next; Next = AllMem;
-
- DrvMainROM = Next; Next += 0x060000;
- DrvSubROM = Next; Next += 0x030000;
- DrvM6502ROM = Next; Next += 0x030000;
- DrvM6502OPS = Next; Next += 0x020000;
- DrvMCURom = Next; Next += 0x001000;
-
- DrvGfxROM0 = Next; Next += 0x020000;
- DrvGfxROM1 = Next; Next += 0x100000;
- DrvGfxROM2 = Next; Next += 0x100000;
- DrvGfxROM3 = Next; Next += 0x100000;
-
- DrvColPROM = Next; Next += 0x000800;
-
- Palette = (UINT32*)Next; Next += 0x0400 * sizeof(UINT32);
- DrvPalette = (UINT32*)Next; Next += 0x0400 * sizeof(UINT32);
-
- AllRam = Next;
-
- DrvMainRAM = Next; Next += 0x008000;
- DrvVidRAM = Next; Next += 0x001800;
- DrvPf0RAM = Next; Next += 0x002000;
- DrvPf1RAM = Next; Next += 0x002000;
- DrvPf0Ctrl = Next; Next += 0x000040;
- DrvPf1Ctrl = Next; Next += 0x000040;
- DrvRowRAM = Next; Next += 0x001400;
- DrvSprRAM = Next; Next += 0x000800;
- DrvSprBuf = Next; Next += 0x000800;
- DrvPalRAM = Next; Next += 0x000800;
-
- DrvM6502RAM = Next; Next += 0x002800;
-
- soundlatch = Next; Next += 0x000001;
- nmi_enable = Next; Next += 0x000001;
- interrupt_enable = Next; Next += 0x000001;
- flipscreen = Next; Next += 0x000001;
-
- RamEnd = Next;
- MemEnd = Next;
-
- return 0;
-}
-
-static void DrvPaletteInit()
-{
- for (INT32 i = 0; i < 0x400; i++)
- {
- INT32 bit0, bit1, bit2, bit3, r, g, b;
-
- bit0 = (DrvColPROM[i] >> 0) & 0x01;
- bit1 = (DrvColPROM[i] >> 1) & 0x01;
- bit2 = (DrvColPROM[i] >> 2) & 0x01;
- bit3 = (DrvColPROM[i] >> 3) & 0x01;
- r = 0x0e * bit0 + 0x1f * bit1 + 0x43 * bit2 + 0x8f * bit3;
- bit0 = (DrvColPROM[i] >> 4) & 0x01;
- bit1 = (DrvColPROM[i] >> 5) & 0x01;
- bit2 = (DrvColPROM[i] >> 6) & 0x01;
- bit3 = (DrvColPROM[i] >> 7) & 0x01;
- g = 0x0e * bit0 + 0x1f * bit1 + 0x43 * bit2 + 0x8f * bit3;
- bit0 = (DrvColPROM[i + 0x400] >> 0) & 0x01;
- bit1 = (DrvColPROM[i + 0x400] >> 1) & 0x01;
- bit2 = (DrvColPROM[i + 0x400] >> 2) & 0x01;
- bit3 = (DrvColPROM[i + 0x400] >> 3) & 0x01;
- b = 0x0e * bit0 + 0x1f * bit1 + 0x43 * bit2 + 0x8f * bit3;
-
- Palette[i] = (r << 16) | (g << 8) | b;
- }
-}
-
-static INT32 DrvGfxDecode()
-{
- INT32 Plane0[3] = { 0x6000*8,0x4000*8,0x2000*8 };
- INT32 Plane1[4] = { 0x60000*8,0x40000*8,0x20000*8,0x00000*8 };
- INT32 Plane2[4] = { 0x20000*8,0x00000*8,0x30000*8,0x10000*8 };
- INT32 XOffs0[8] = { 0, 1, 2, 3, 4, 5, 6, 7 };
- INT32 XOffs1[16]= {16*8, 1+(16*8), 2+(16*8), 3+(16*8), 4+(16*8), 5+(16*8), 6+(16*8), 7+(16*8),0,1,2,3,4,5,6,7 };
- INT32 XOffs2[16]= {7,6,5,4,3,2,1,0,7+(16*8), 6+(16*8), 5+(16*8), 4+(16*8), 3+(16*8), 2+(16*8), 1+(16*8), 0+(16*8) };
- INT32 YOffs0[16] = { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 ,8*8,9*8,10*8,11*8,12*8,13*8,14*8,15*8 };
-
- UINT8 *tmp = (UINT8*)BurnMalloc(0x80000);
- if (tmp == NULL) {
- return 1;
- }
-
- memcpy (tmp, DrvGfxROM0, 0x08000);
-
- GfxDecode(0x0400, 3, 8, 8, Plane0, XOffs0, YOffs0, 0x040, tmp, DrvGfxROM0);
-
- memcpy (tmp, DrvGfxROM1, 0x80000);
-
- GfxDecode(0x1000, 4, 16, 16, Plane1, XOffs1, YOffs0, 0x100, tmp, DrvGfxROM1);
-
- memcpy (tmp, DrvGfxROM2, 0x40000);
-
- GfxDecode(0x0800, 4, 16, 16, Plane2, XOffs2, YOffs0, 0x100, tmp, DrvGfxROM2);
-
- BurnFree (tmp);
-
- return 0;
-}
-
-static void Deco222Decode()
-{
- for (INT32 A = 0x8000;A < 0x10000;A++)
- DrvM6502OPS[A] = (DrvM6502ROM[A] & 0x9f) | ((DrvM6502ROM[A] & 0x20) << 1) | ((DrvM6502ROM[A] & 0x40) >> 1);
-}
-
-static INT32 DrvInit()
-{
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (!strncmp(BurnDrvGetTextA(DRV_NAME), "ghostb", 6)) {
- if (BurnLoadRom(DrvMainROM + 0x08000, 0, 1)) return 1;
- if (BurnLoadRom(DrvMainROM + 0x10000, 1, 1)) return 1;
- if (BurnLoadRom(DrvMainROM + 0x20000, 2, 1)) return 1;
- if (BurnLoadRom(DrvMainROM + 0x30000, 3, 1)) return 1;
- if (BurnLoadRom(DrvMainROM + 0x40000, 4, 1)) return 1;
-
- if (BurnLoadRom(DrvM6502ROM + 0x08000, 5, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x00000, 6, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM1 + 0x00000, 7, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x10000, 8, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x20000, 9, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x30000, 10, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x40000, 11, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x50000, 12, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x60000, 13, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x70000, 14, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM2 + 0x00000, 15, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x10000, 16, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x20000, 17, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x30000, 18, 1)) return 1;
-
- if (BurnLoadRom(DrvColPROM + 0x00000, 19, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x00400, 20, 1)) return 1;
-
- if (BurnLoadRom(DrvMCURom + 0x00000, 21, 1)) return 1;
-
- Deco222Decode();
-
- } else {
- if (BurnLoadRom(DrvMainROM + 0x08000, 0, 1)) return 1;
- if (BurnLoadRom(DrvMainROM + 0x10000, 1, 1)) return 1;
- if (BurnLoadRom(DrvMainROM + 0x20000, 2, 1)) return 1;
- if (BurnLoadRom(DrvMainROM + 0x30000, 3, 1)) return 1;
-
- if (BurnLoadRom(DrvM6502ROM + 0x08000, 4, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x00000, 5, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM1 + 0x00000, 6, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x10000, 7, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x20000, 8, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x30000, 9, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x40000, 10, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x50000, 11, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x60000, 12, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x70000, 13, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM2 + 0x00000, 14, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x10000, 15, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x20000, 16, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x30000, 17, 1)) return 1;
-
- if (BurnLoadRom(DrvColPROM + 0x00000, 18, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x00400, 19, 1)) return 1;
-
- if (BurnLoadRom(DrvMCURom + 0x00000, 20, 1)) return 1;
-
- memcpy (DrvM6502OPS + 0x8000, DrvM6502ROM + 0x8000, 0x8000);
- }
-
- memset (DrvColPROM + 0x20, 0, 0xe0); // ok?
- DrvPaletteInit();
- DrvGfxDecode();
- }
-
- HD6309Init(0);
- HD6309Open(0);
- HD6309MapMemory(DrvMainRAM, 0x0000, 0x17ff, MAP_RAM);
- HD6309MapMemory(DrvVidRAM, 0x1800, 0x1fff, MAP_RAM);
- HD6309MapMemory(DrvPf0RAM, 0x2000, 0x2bff, MAP_RAM);// 0 - 27ff
- HD6309MapMemory(DrvRowRAM, 0x2c00, 0x2fff, MAP_RAM);// c00-dff
- HD6309MapMemory(DrvSprRAM, 0x3000, 0x37ff, MAP_RAM);
- HD6309MapMemory(DrvMainROM + 0x10000, 0x4000, 0x7fff, MAP_ROM); // bank
- HD6309MapMemory(DrvMainROM + 0x08000, 0x8000, 0xffff, MAP_ROM);
- HD6309SetWriteHandler(ghostb_main_write);
- HD6309SetReadHandler(ghostb_main_read);
- HD6309Close();
-
- M6502Init(0, TYPE_M6502);
- M6502Open(0);
- M6502MapMemory(DrvM6502RAM, 0x0000, 0x05ff, MAP_RAM);
- M6502MapMemory(DrvM6502ROM + 0x8000, 0x8000, 0xffff, MAP_READ);
- M6502MapMemory(DrvM6502OPS + 0x8000, 0x8000, 0xffff, MAP_FETCH);
- M6502SetReadHandler(ghostb_sound_read);
- M6502SetWriteHandler(ghostb_sound_write);
- M6502Close();
-
- realMCU = 1;
- DrvMCUInit();
-
- BurnSetRefreshRate(58.00);
-
- BurnYM3812Init(1, 3000000, &DrvYM3812FMIRQHandler, &DrvYM3812SynchroniseStream, 0);
- BurnTimerAttachM6502YM3812(1500000);
- BurnYM3812SetRoute(0, BURN_SND_YM3812_ROUTE, 0.70, BURN_SND_ROUTE_BOTH);
-
- BurnYM2203Init(1, 1500000, NULL, DrvYM2203SynchroniseStream, DrvYM2203GetTime, 1);
- BurnTimerAttachHD6309(12000000);
- BurnYM2203SetRoute(0, BURN_SND_YM2203_YM2203_ROUTE, 0.20, BURN_SND_ROUTE_BOTH);
- BurnYM2203SetRoute(0, BURN_SND_YM2203_AY8910_ROUTE_1, 0.23, BURN_SND_ROUTE_BOTH);
- BurnYM2203SetRoute(0, BURN_SND_YM2203_AY8910_ROUTE_2, 0.23, BURN_SND_ROUTE_BOTH);
- BurnYM2203SetRoute(0, BURN_SND_YM2203_AY8910_ROUTE_3, 0.23, BURN_SND_ROUTE_BOTH);
-
- GenericTilesInit();
-
- DrvDoReset();
-
- return 0;
-}
-
-static INT32 DrvExit()
-{
- GenericTilesExit();
-
- M6502Exit();
- BurnYM2203Exit();
-
- BurnFree (AllMem);
-
- return 0;
-}
-
-static void draw_txt_layer()
-{
- for (INT32 offs = 0; offs < 32 * 32; offs++)
- {
- INT32 sx = (offs & 0x1f) << 3;
- INT32 sy = (offs >> 5) << 3;
-
- INT32 code = DrvVidRAM[offs * 2 + 1] | (DrvVidRAM[offs * 2 + 0] << 8);
- INT32 color = (code >> 10) & 3;
-
- code &= 0x3ff;
- if (code == 0) continue; // ok?
-
- sy -= 8;
- if (sy < 0 || sy >= nScreenHeight) continue;
-
- Render8x8Tile_Mask(pTransDraw, code, sx, sy, color, 3, 0, 0, DrvGfxROM0);
- }
-}
-
-static void draw_sprites1(INT32 priority)
-{
- for (INT32 offs = 0;offs < 0x800;offs += 8)
- {
- INT32 y = DrvSprBuf[offs + 1] | (DrvSprBuf[offs + 0] << 8);
- if (~y & 0x8000) continue;
-
- INT32 fx = DrvSprBuf[offs+3];
- if (~fx & 0x0001) continue;
-
- INT32 x = DrvSprBuf[offs + 5] | (DrvSprBuf[offs + 4] << 8);
-
- INT32 extra = fx & 0x0010;
- INT32 fy = fx & 0x0002;
- INT32 colour = DrvSprBuf[offs+6] >> 4;
-
- INT32 sprite = DrvSprBuf[offs+7]+(DrvSprBuf[offs+6]<<8);
- sprite &= 0x0fff;
-
- if (priority == 1 && colour & 8) continue;
- if (priority == 2 && ~colour & 8) continue;
-
- if (extra) {y=y+16;sprite&=0xffe;}
-
- x = x & 0x01ff;
- y = y & 0x01ff;
- x=(x+16)&0x1ff;
- y=(y+16)&0x1ff;
- x=256 - x;
- y=256 - y;
-
- fx &= 0x0004;
-
- if (*flipscreen)
- {
- y=240-y;
- x=240-x;
- if (fx) fx=0; else fx=1;
- if (fy) fy=0; else fy=1;
- if (extra) y=y-16;
- }
-
- INT32 sprite2;
- /* Y Flip determines order of multi-sprite */
- if (extra && fy)
- {
- sprite2=sprite;
- sprite++;
- }
- else
- sprite2=sprite+1;
-
- y -= 8;
-
- if (fy) {
- if (fx) {
- Render16x16Tile_Mask_FlipXY_Clip(pTransDraw, sprite & 0xfff, x, y, colour, 4, 0, 0x100, DrvGfxROM1);
- } else {
- Render16x16Tile_Mask_FlipY_Clip(pTransDraw, sprite & 0xfff, x, y, colour, 4, 0, 0x100, DrvGfxROM1);
- }
- } else {
- if (fx) {
- Render16x16Tile_Mask_FlipX_Clip(pTransDraw, sprite & 0xfff, x, y, colour, 4, 0, 0x100, DrvGfxROM1);
- } else {
- Render16x16Tile_Mask_Clip(pTransDraw, sprite & 0xfff, x, y, colour, 4, 0, 0x100, DrvGfxROM1);
- }
- }
-
- /* 1 more sprite drawn underneath */
- if (extra) {
- if (fy) {
- if (fx) {
- Render16x16Tile_Mask_FlipXY_Clip(pTransDraw, sprite2 & 0xfff, x, y+16, colour, 4, 0, 0x100, DrvGfxROM1);
- } else {
- Render16x16Tile_Mask_FlipY_Clip(pTransDraw, sprite2 & 0xfff, x, y+16, colour, 4, 0, 0x100, DrvGfxROM1);
- }
- } else {
- if (fx) {
- Render16x16Tile_Mask_FlipX_Clip(pTransDraw, sprite2 & 0xfff, x, y+16, colour, 4, 0, 0x100, DrvGfxROM1);
- } else {
- Render16x16Tile_Mask_Clip(pTransDraw, sprite2 & 0xfff, x, y+16, colour, 4, 0, 0x100, DrvGfxROM1);
- }
- }
- }
- }
-}
-
-static void draw_bg_layer(UINT8 *ram, UINT8 *ctrl, UINT8 *gfx, INT32 coff, INT32 cmask, INT32 mask, INT32 t, INT32 priority)
-{
- INT32 rowscroll = ctrl[0x00] & 0x04;
- INT32 scrolly = ((ctrl[0x12] << 8) + ctrl[0x13] + 8) & 0x1ff;
- INT32 scrollx = ((ctrl[0x10] << 8) | ctrl[0x11]) & 0x1ff;
-
- if (rowscroll || t > 1)
- {
- INT32 xscroll[256];
-
- for (INT32 i = 0; i < 256; i++) {
- xscroll[i] = ((DrvRowRAM[i*2]<<8)+DrvRowRAM[i*2+1])&0x1ff;
- }
-
- for (INT32 offs = 0; offs < 32 * 32; offs++)
- {
- INT32 sx = (offs & 0x1f) << 4;
- INT32 sy = (offs >> 5) << 4;
-
- sy -= scrolly;
- if (sy < -15) sy += 512;
- sx -= scrollx;
- if (sx < -15) sx += 512;
-
- if (sy >= nScreenHeight || sx >= nScreenWidth) continue;
-
- INT32 ofst = (offs & 0x0f) | ((offs >> 1) & 0x1f0) | ((offs & 0x10) << 5);
-
- INT32 code = (ram[ofst * 2 + 0] << 8) | ram[ofst * 2 + 1];
- INT32 color = (code >> 12) & cmask;
-
- if (priority && color < 8) continue;
-
- {
- code &= mask;
- color <<= 4;
- color += coff;
- UINT16 *dst = pTransDraw;
- UINT8 *src = gfx + (code << 8);
-
- for (INT32 y = 0; y < 16; y++, sy++, src+=16)
- {
- if (sy < 0 || sy >= nScreenHeight) continue;
-
- dst = pTransDraw + sy * nScreenWidth;
-
- INT32 xx = sx;
- if (rowscroll) {
- xx -= xscroll[sy];
- if (xx < -15) xx += 512;
- if (xx >= nScreenWidth) continue;
- }
-
- if (t) {
- for (INT32 x = 0; x < 16; x++, xx++)
- {
- INT32 pxl = src[x];
- if (t & (1 << pxl)) continue;
- if (xx < 0 || xx >= nScreenWidth) continue;
-
- dst[xx] = pxl | color;
- }
- } else {
- for (INT32 x = 0; x < 16; x++, xx++)
- {
- if (xx < 0 || xx >= nScreenWidth) continue;
-
- dst[xx] = src[x] | color;
- }
- }
- }
- }
- }
- } else {
- for (INT32 offs = 0; offs < 32 * 32; offs++)
- {
- INT32 sx = (offs & 0x1f) << 4;
- INT32 sy = (offs >> 5) << 4;
-
- sx -= scrollx;
- sy -= scrolly;
- if (sx < -15) sx += 512;
- if (sy < -15) sy += 512;
-
- if (sx >= nScreenWidth || sy >= nScreenHeight) continue;
-
- INT32 ofst = (offs & 0x0f) | ((offs >> 1) & 0x1f0) | ((offs & 0x10) << 5);
-
- INT32 code = (ram[ofst * 2 + 0] << 8) | ram[ofst * 2 + 1];
- INT32 color = (code >> 12) & cmask;
-
- if (priority && color < 8) continue;
-
- if (t) {
- Render16x16Tile_Mask_Clip(pTransDraw, code & mask, sx, sy, color, 4, 0, coff, gfx);
- } else {
- Render16x16Tile_Clip(pTransDraw, code & mask, sx, sy, color, 4, coff, gfx);
- }
- }
- }
-}
-
-
-static INT32 DrvDraw()
-{
- if (DrvRecalc) {
- for (INT32 i = 0; i < 0x400; i++) {
- INT32 d = Palette[i];
- DrvPalette[i] = BurnHighCol(d >> 16, (d >> 8) & 0xff, d & 0xff, 0);
- }
- }
-
- draw_bg_layer(DrvPf0RAM, DrvPf0Ctrl, DrvGfxROM2, 0x200, 0x0f, 0x7ff, 0, 0);
- draw_sprites1(0);
- draw_txt_layer();
-
- BurnTransferCopy(DrvPalette);
-
- return 0;
-}
-
-static INT32 DrvFrame()
-{
- if (DrvReset) {
- DrvDoReset();
- }
-
- HD6309NewFrame();
- M6502NewFrame();
-
- {
- memset (DrvInputs, 0xff, 5);
- for (INT32 i = 0; i < 8; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- DrvInputs[2] ^= (DrvJoy3[i] & 1) << i;
- DrvInputs[3] ^= (DrvJoy4[i] & 1) << i;
- DrvInputs[4] ^= (DrvJoy5[i] & 1) << i;
- }
- }
-
- INT32 nInterleave = 256;
- INT32 nCyclesTotal[3] = { 12000000 / 58, 1500000 / 58, 12000000 / 58 };
- memset(nCyclesDone, 0, sizeof(nCyclesDone));
-
- if (realMCU) {
- nCyclesTotal[2] /= 12; // i8751 divider
- }
-
- M6502Open(0);
- HD6309Open(0);
-
- vblank = 8;
-
- for (INT32 i = 0; i < nInterleave; i++)
- {
- if (i == 8) vblank = 0;
- if (i == 254) {
- vblank = 8;
- if (*nmi_enable) HD6309SetIRQLine(0x20, CPU_IRQSTATUS_AUTO);
- }
-
- BurnTimerUpdate((i + 1) * (nCyclesTotal[0] / nInterleave));
-
- if (realMCU) {
- INT32 nNext = (i + 1) * nCyclesTotal[2] / nInterleave;
- INT32 nSegment = nNext - nCyclesDone[2];
- nCyclesDone[2] += DrvMCURun(nSegment);
- }
-
- BurnTimerUpdateYM3812((i + 1) * (nCyclesTotal[1] / nInterleave));
- }
-
- BurnTimerEndFrame(nCyclesTotal[0]);
- BurnTimerEndFrameYM3812(nCyclesTotal[1]);
-
- if (pBurnSoundOut) {
- BurnYM3812Update(pBurnSoundOut, nBurnSoundLen);
- BurnYM2203Update(pBurnSoundOut, nBurnSoundLen);
- }
-
- HD6309Close();
- M6502Close();
-
- if (pBurnDraw) {
- DrvDraw();
- }
-
- memcpy (DrvSprBuf, DrvSprRAM, 0x800);
-
- return 0;
-}
-
-static INT32 DrvScan(INT32 nAction, INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin != NULL) {
- *pnMin = 0x029722;
- }
-
- if (nAction & ACB_MEMORY_RAM) {
- memset(&ba, 0, sizeof(ba));
- ba.Data = AllRam;
- ba.nLen = RamEnd-AllRam;
- ba.szName = "All Ram";
- BurnAcb(&ba);
- }
-
- if (nAction & ACB_DRIVER_DATA) {
- M6502Scan(nAction);
- BurnYM2203Scan(nAction, pnMin);
-
- SCAN_VAR(i8751_return);
- SCAN_VAR(i8751_value);
- SCAN_VAR(vblank);
- SCAN_VAR(RomBank);
- }
-
- return 0;
-}
-
-// The Real Ghostbusters (US 2 Players, revision 2)
-
-static struct BurnRomInfo ghostbRomDesc[] = {
- { "dz01-22.1d", 0x08000, 0xfc65fdf2, 1 }, // 0 maincpu
- { "dz02.3d", 0x10000, 0x8e117541, 1 }, // 1
- { "dz03.4d", 0x10000, 0x5606a8f4, 1 }, // 2
- { "dz04-21.6d", 0x10000, 0x7d46582f, 1 }, // 3
- { "dz05-21.7d", 0x10000, 0x23e1c758, 1 }, // 4
-
- { "dz06.5f", 0x08000, 0x798f56df, 2 }, // 5 audiocpu
-
- { "dz00.16b", 0x08000, 0x992b4f31, 3 }, // 6 gfx1
-
- { "dz15.14f", 0x10000, 0xa01a5fd9, 4 }, // 7 gfx2
- { "dz16.15f", 0x10000, 0x5a9a344a, 4 }, // 8
- { "dz12.9f", 0x10000, 0x817fae99, 4 }, // 9
- { "dz14.12f", 0x10000, 0x0abbf76d, 4 }, // 10
- { "dz11.8f", 0x10000, 0xa5e19c24, 4 }, // 11
- { "dz13.1f", 0x10000, 0x3e7c0405, 4 }, // 12
- { "dz17.17f", 0x10000, 0x40361b8b, 4 }, // 13
- { "dz18.18f", 0x10000, 0x8d219489, 4 }, // 14
-
- { "dz07.12f", 0x10000, 0xe7455167, 5 }, // 15 gfx3
- { "dz08.14f", 0x10000, 0x32f9ddfe, 5 }, // 16
- { "dz09.15f", 0x10000, 0xbb6efc02, 5 }, // 17
- { "dz10.17f", 0x10000, 0x6ef9963b, 5 }, // 18
-
- { "dz19a.10d", 0x00400, 0x47e1f83b, 6 }, // 19 proms
- { "dz20a.11d", 0x00400, 0xd8fe2d99, 6 }, // 20
-
- { "dz-1.1b", 0x01000, 0x18b7e1e6, 7 }, // 21 mcu
-};
-
-STD_ROM_PICK(ghostb)
-STD_ROM_FN(ghostb)
-
-static INT32 GhostbExit()
-{
- HD6309Exit();
- BurnYM3812Exit();
- DrvMCUExit();
-
- return DrvExit();
-}
-
-static INT32 GhostbScan(INT32 nAction, INT32 *pnMin)
-{
- if (nAction & ACB_DRIVER_DATA) {
- HD6309Scan(nAction);
- BurnYM3812Scan(nAction, pnMin);
-
- DrvMCUScan(nAction);
-
- SCAN_VAR(RomBank);
-
-
- if (nAction & ACB_WRITE) {
- HD6309Open(0);
- HD6309MapMemory(DrvMainROM + 0x10000 + RomBank, 0x4000, 0x7fff, MAP_ROM);
- HD6309Close();
- }
- }
-
- return DrvScan(nAction, pnMin);
-}
-
-struct BurnDriver BurnDrvGhostb = {
- "ghostb", NULL, NULL, NULL, "1987",
- "The Real Ghostbusters (US 2 Players, revision 2)\0", NULL, "Data East USA", "DEC8",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_PREFIX_DATAEAST, GBF_SHOOT, 0,
- NULL, ghostbRomInfo, ghostbRomName, NULL, NULL, GhostbInputInfo, GhostbDIPInfo,
- DrvInit, GhostbExit, DrvFrame, DrvDraw, GhostbScan, &DrvRecalc, 0x400,
- 256, 240, 4, 3
-};
-
-
-// The Real Ghostbusters (US 2 Players)
-
-static struct BurnRomInfo ghostb2aRomDesc[] = {
- { "dz01.1d", 0x08000, 0x7c5bb4b1, 1 }, // 0 maincpu
- { "dz02.3d", 0x10000, 0x8e117541, 1 }, // 1
- { "dz03.4d", 0x10000, 0x5606a8f4, 1 }, // 2
- { "dz04.6d", 0x10000, 0xd09bad99, 1 }, // 3
- { "dz05.7d", 0x10000, 0x0315f691, 1 }, // 4
-
- { "dz06.5f", 0x08000, 0x798f56df, 2 }, // 5 audiocpu
-
- { "dz00.16b", 0x08000, 0x992b4f31, 3 }, // 6 gfx1
-
- { "dz15.14f", 0x10000, 0xa01a5fd9, 4 }, // 7 gfx2
- { "dz16.15f", 0x10000, 0x5a9a344a, 4 }, // 8
- { "dz12.9f", 0x10000, 0x817fae99, 4 }, // 9
- { "dz14.12f", 0x10000, 0x0abbf76d, 4 }, // 10
- { "dz11.8f", 0x10000, 0xa5e19c24, 4 }, // 11
- { "dz13.1f", 0x10000, 0x3e7c0405, 4 }, // 12
- { "dz17.17f", 0x10000, 0x40361b8b, 4 }, // 13
- { "dz18.18f", 0x10000, 0x8d219489, 4 }, // 14
-
- { "dz07.12f", 0x10000, 0xe7455167, 5 }, // 15 gfx3
- { "dz08.14f", 0x10000, 0x32f9ddfe, 5 }, // 16
- { "dz09.15f", 0x10000, 0xbb6efc02, 5 }, // 17
- { "dz10.17f", 0x10000, 0x6ef9963b, 5 }, // 18
-
- { "dz19a.10d", 0x00400, 0x47e1f83b, 6 }, // 19 proms
- { "dz20a.11d", 0x00400, 0xd8fe2d99, 6 }, // 20
-
- { "dz.1b", 0x01000, 0x18b7e1e6, 7 }, // 21 mcu
-};
-
-STD_ROM_PICK(ghostb2a)
-STD_ROM_FN(ghostb2a)
-
-struct BurnDriver BurnDrvGhostb2a = {
- "ghostb2a", "ghostb", NULL, NULL, "1987",
- "The Real Ghostbusters (US 2 Players)\0", NULL, "Data East USA", "DEC8",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_DATAEAST, GBF_SHOOT, 0,
- NULL, ghostb2aRomInfo, ghostb2aRomName, NULL, NULL, GhostbInputInfo, GhostbDIPInfo,
- DrvInit, GhostbExit, DrvFrame, DrvDraw, GhostbScan, &DrvRecalc, 0x400,
- 256, 240, 4, 3
-};
-
-
-// The Real Ghostbusters (US 3 Players)
-
-static struct BurnRomInfo ghostb3RomDesc[] = {
- { "dz01-3b.1d", 0x08000, 0xc8cc862a, 1 }, // 0 maincpu
- { "dz02.3d", 0x10000, 0x8e117541, 1 }, // 1
- { "dz03.4d", 0x10000, 0x5606a8f4, 1 }, // 2
- { "dz04-1.6d", 0x10000, 0x3c3eb09f, 1 }, // 3
- { "dz05-1.7d", 0x10000, 0xb4971d33, 1 }, // 4
-
- { "dz06.5f", 0x08000, 0x798f56df, 2 }, // 5 audiocpu
-
- { "dz00.16b", 0x08000, 0x992b4f31, 3 }, // 6 gfx1
-
- { "dz15.14f", 0x10000, 0xa01a5fd9, 4 }, // 7 gfx2
- { "dz16.15f", 0x10000, 0x5a9a344a, 4 }, // 8
- { "dz12.9f", 0x10000, 0x817fae99, 4 }, // 9
- { "dz14.12f", 0x10000, 0x0abbf76d, 4 }, // 10
- { "dz11.8f", 0x10000, 0xa5e19c24, 4 }, // 11
- { "dz13.1f", 0x10000, 0x3e7c0405, 4 }, // 12
- { "dz17.17f", 0x10000, 0x40361b8b, 4 }, // 13
- { "dz18.18f", 0x10000, 0x8d219489, 4 }, // 14
-
- { "dz07.12f", 0x10000, 0xe7455167, 5 }, // 15 gfx3
- { "dz08.14f", 0x10000, 0x32f9ddfe, 5 }, // 16
- { "dz09.15f", 0x10000, 0xbb6efc02, 5 }, // 17
- { "dz10.17f", 0x10000, 0x6ef9963b, 5 }, // 18
-
- { "dz19a.10d", 0x00400, 0x47e1f83b, 6 }, // 19 proms
- { "dz20a.11d", 0x00400, 0xd8fe2d99, 6 }, // 20
-
- { "dz.1b", 0x01000, 0x18b7e1e6, 7 }, // 21 mcu
-};
-
-STD_ROM_PICK(ghostb3)
-STD_ROM_FN(ghostb3)
-
-struct BurnDriver BurnDrvGhostb3 = {
- "ghostb3", "ghostb", NULL, NULL, "1987",
- "The Real Ghostbusters (US 3 Players)\0", NULL, "Data East USA", "DEC8",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_DATAEAST, GBF_SHOOT, 0,
- NULL, ghostb3RomInfo, ghostb3RomName, NULL, NULL, Ghostb3InputInfo, Ghostb3DIPInfo,
- DrvInit, GhostbExit, DrvFrame, DrvDraw, GhostbScan, &DrvRecalc, 0x400,
- 256, 240, 4, 3
-};
-
-// The Real Ghostbusters (US 3 Players) from caius
-
-static struct BurnRomInfo ghostb3aRomDesc[] = {
- { "dz01-2.1d", 0x08000, 0x1b16890e, 1 }, // 0 maincpu
- { "dz02-.3d", 0x10000, 0x8e117541, 1 }, // 1
- { "dz03-.4d", 0x10000, 0x5606a8f4, 1 }, // 2
- { "dz04-.6d", 0x10000, 0x490b4525, 1 }, // 3
- { "dz05-.7d", 0x10000, 0xb4971d33, 1 }, // 4
-
- { "dz06.5f", 0x08000, 0x798f56df, 2 }, // 5 audiocpu
-
- { "dz00.16b", 0x08000, 0x992b4f31, 3 }, // 6 gfx1
-
- { "dz15.14f", 0x10000, 0xa01a5fd9, 4 }, // 7 gfx2
- { "dz16.15f", 0x10000, 0x5a9a344a, 4 }, // 8
- { "dz12.9f", 0x10000, 0x817fae99, 4 }, // 9
- { "dz14.12f", 0x10000, 0x0abbf76d, 4 }, // 10
- { "dz11.8f", 0x10000, 0xa5e19c24, 4 }, // 11
- { "dz13.1f", 0x10000, 0x3e7c0405, 4 }, // 12
- { "dz17.17f", 0x10000, 0x40361b8b, 4 }, // 13
- { "dz18.18f", 0x10000, 0x8d219489, 4 }, // 14
-
- { "dz07.12f", 0x10000, 0xe7455167, 5 }, // 15 gfx3
- { "dz08.14f", 0x10000, 0x32f9ddfe, 5 }, // 16
- { "dz09.15f", 0x10000, 0xbb6efc02, 5 }, // 17
- { "dz10.17f", 0x10000, 0x6ef9963b, 5 }, // 18
-
- { "dz19a.10d", 0x00400, 0x47e1f83b, 6 }, // 19 proms
- { "dz20a.11d", 0x00400, 0xd8fe2d99, 6 }, // 20
-
- { "dz.1b", 0x01000, 0x18b7e1e6, 7 }, // 21 mcu
-};
-
-STD_ROM_PICK(ghostb3a)
-STD_ROM_FN(ghostb3a)
-
-struct BurnDriverD BurnDrvGhostb3a = {
- "ghostb3a", "ghostb", NULL, NULL, "1987",
- "The Real Ghostbusters (US 3 Players, revision ?)\0", NULL, "Data East USA", "DEC8",
- NULL, NULL, NULL, NULL,
- BDF_GAME_NOT_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_DATAEAST, GBF_SHOOT, 0,
- NULL, ghostb3aRomInfo, ghostb3aRomName, NULL, NULL, GhostbInputInfo, GhostbDIPInfo,
- DrvInit, GhostbExit, DrvFrame, DrvDraw, GhostbScan, &DrvRecalc, 0x400,
- 256, 240, 4, 3
-};
-
-
-// Meikyuu Hunter G (Japan, set 1)
-
-static struct BurnRomInfo meikyuhRomDesc[] = {
- { "dw01-5.1d", 0x08000, 0x87610c39, 1 }, // 0 maincpu
- { "dw02.3d", 0x10000, 0x40c9b0b8, 1 }, // 1
- { "dw03.4d", 0x10000, 0x5606a8f4, 1 }, // 2
- { "dw04.6d", 0x10000, 0x235c0c36, 1 }, // 3
-
- { "dw05.5f", 0x08000, 0xc28c4d82, 2 }, // 4 audiocpu
-
- { "dw00.16b", 0x08000, 0x3d25f15c, 3 }, // 5 gfx1
-
- { "dw14.14f", 0x10000, 0x9b0dbfa9, 4 }, // 6 gfx2
- { "dw15.15f", 0x10000, 0x95683fda, 4 }, // 7
- { "dw11.9f", 0x10000, 0x1b1fcca7, 4 }, // 8
- { "dw13.12f", 0x10000, 0xe7413056, 4 }, // 9
- { "dw10.8f", 0x10000, 0x57667546, 4 }, // 10
- { "dw12.1f", 0x10000, 0x4c548db8, 4 }, // 11
- { "dw16.17f", 0x10000, 0xe5bcf927, 4 }, // 12
- { "dw17.18f", 0x10000, 0x9e10f723, 4 }, // 13
-
- { "dw06.12f", 0x10000, 0xb65e029d, 5 }, // 14 gfx3
- { "dw07.14f", 0x10000, 0x668d995d, 5 }, // 15
- { "dw08.15f", 0x10000, 0xbb2cf4a0, 5 }, // 16
- { "dw09.17f", 0x10000, 0x6a528d13, 5 }, // 17
-
- { "dw18.9d", 0x00400, 0x75f1945f, 6 }, // 18 proms
- { "dw19.10d", 0x00400, 0xcc16f3fa, 6 }, // 19
-
- { "dw.1b", 0x01000, 0x28e9ced9, 7 }, // 20 mcu
-};
-
-STD_ROM_PICK(meikyuh)
-STD_ROM_FN(meikyuh)
-
-struct BurnDriver BurnDrvMeikyuh = {
- "meikyuh", "ghostb", NULL, NULL, "1987",
- "Meikyuu Hunter G (Japan, set 1)\0", NULL, "Data East Corporation", "DEC8",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_DATAEAST, GBF_SHOOT, 0,
- NULL, meikyuhRomInfo, meikyuhRomName, NULL, NULL, GhostbInputInfo, GhostbDIPInfo,
- DrvInit, GhostbExit, DrvFrame, DrvDraw, GhostbScan, &DrvRecalc, 0x400,
- 256, 240, 4, 3
-};
-
-
-// Meikyuu Hunter G (Japan, set 2)
-
-static struct BurnRomInfo meikyuhaRomDesc[] = {
- { "27256.1d", 0x08000, 0xd5b5e8a2, 1 }, // 0 maincpu
- { "24512.3d", 0x10000, 0x40c9b0b8, 1 }, // 1
- { "24512.4d", 0x10000, 0x5606a8f4, 1 }, // 2
- { "27512.6d", 0x10000, 0x8ca6055d, 1 }, // 3
-
- { "27256.5f", 0x08000, 0xc28c4d82, 2 }, // 4 audiocpu
-
- { "27256.16b", 0x08000, 0x3d25f15c, 3 }, // 5 gfx1
-
- { "92.6m", 0x10000, 0x9b0dbfa9, 4 }, // 6 gfx2
- { "93.6o", 0x10000, 0x95683fda, 4 }, // 7
- { "89.6i", 0x10000, 0x1b1fcca7, 4 }, // 8
- { "91.6l", 0x10000, 0xe7413056, 4 }, // 9
- { "88.6h", 0x10000, 0x57667546, 4 }, // 10
- { "90.6k", 0x10000, 0x4c548db8, 4 }, // 11
- { "94.6p", 0x10000, 0xe5bcf927, 4 }, // 12
- { "95.6r", 0x10000, 0x9e10f723, 4 }, // 13
-
- { "27512.12f", 0x10000, 0xb65e029d, 5 }, // 14 gfx3
- { "27512.14f", 0x10000, 0x668d995d, 5 }, // 15
- { "27512.15f", 0x10000, 0x547fe4e2, 5 }, // 16
- { "27512.17f", 0x10000, 0x6a528d13, 5 }, // 17
-
- { "dw18.9d", 0x00400, 0x75f1945f, 6 }, // 18 proms
- { "dw19.10d", 0x00400, 0xcc16f3fa, 6 }, // 19
-
- { "dw.1b", 0x01000, 0x28e9ced9, 7 }, // 20 mcu
-};
-
-STD_ROM_PICK(meikyuha)
-STD_ROM_FN(meikyuha)
-
-struct BurnDriver BurnDrvMeikyuha = {
- "meikyuha", "ghostb", NULL, NULL, "1987",
- "Meikyuu Hunter G (Japan, set 2)\0", NULL, "Data East Corporation", "DEC8",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_DATAEAST, GBF_SHOOT, 0,
- NULL, meikyuhaRomInfo, meikyuhaRomName, NULL, NULL, GhostbInputInfo, GhostbDIPInfo,
- DrvInit, GhostbExit, DrvFrame, DrvDraw, GhostbScan, &DrvRecalc, 0x400,
- 256, 240, 4, 3
-};
-
-
-
-
-
-
-
-static void m6809_bankswitch(INT32 data)
-{
- RomBank = (data & 0x0f) * 0x4000;
-
- M6809MapMemory(DrvMainROM + 0x10000 + RomBank, 0x4000, 0x7fff, MAP_ROM); // bank
-}
-
-
-
-void cobra_main_write(UINT16 address, UINT8 data)
-{
- switch (address)
- {
- case 0x3e00:
- *soundlatch = data;
- M6502SetIRQLine(M6502_INPUT_LINE_NMI, CPU_IRQSTATUS_AUTO);
- M6502Run(500);
- return;
-
- case 0x3c00:
- m6809_bankswitch(data);
- return;
-
- case 0x3c02:
- memcpy (DrvSprBuf, DrvSprRAM, 0x800);
- return;
- }
-
- if ((address & 0xffe0) == 0x3800) {
- DrvPf0Ctrl[address & 0x1f] = data;
- return;
- }
-
- if ((address & 0xffe0) == 0x3a00) {
- DrvPf1Ctrl[address & 0x1f] = data;
- return;
- }
-}
-
-UINT8 cobra_main_read(UINT16 address)
-{
- switch (address)
- {
- case 0x3800:
- return DrvInputs[0];
-
- case 0x3801:
- return DrvInputs[1];
-
- case 0x3802:
- return DrvDips[0];
-
- case 0x3803:
- return DrvDips[1];
-
- case 0x3a00:
- return (DrvInputs[2] & 0x7f) | vblank;
- }
-
- return 0;
-}
-
-static INT32 CobraDoReset()
-{
- DrvReset = 0;
-
- memset (AllRam, 0, RamEnd - AllRam);
-
- M6809Open(0);
- M6809Reset();
- M6809Close();
-
- M6502Open(0);
- M6502Reset();
- M6502Close();
-
- BurnYM2203Reset();
- BurnYM3812Reset();
-
- i8751_return = 0;
- i8751_value = 0;
-
- return 0;
-}
-
-
-static INT32 CobraGfxDecode()
-{
- // 0, 0x40, 0x80, 0xc0 for offs
-
- INT32 Plane0[2] = { 0x4000*8,0x0000*8 };
- INT32 Plane1[4] = { 0x60000*8,0x40000*8,0x20000*8,0x00000*8 };
- INT32 XOffs0[8] = { 0, 1, 2, 3, 4, 5, 6, 7 };
- INT32 XOffs1[16]= { 16*8, 1+(16*8), 2+(16*8), 3+(16*8), 4+(16*8), 5+(16*8), 6+(16*8), 7+(16*8),0,1,2,3,4,5,6,7 };
- INT32 YOffs0[16] = { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 ,8*8,9*8,10*8,11*8,12*8,13*8,14*8,15*8 };
-
- UINT8 *tmp = (UINT8*)BurnMalloc(0x80000);
- if (tmp == NULL) {
- return 1;
- }
-
- memcpy (tmp, DrvGfxROM0, 0x08000);
-
- GfxDecode(0x0400, 2, 8, 8, Plane0, XOffs0, YOffs0, 0x040, tmp, DrvGfxROM0);
-
- memcpy (tmp, DrvGfxROM1, 0x80000);
-
- GfxDecode(0x1000, 4, 16, 16, Plane1, XOffs1, YOffs0, 0x100, tmp, DrvGfxROM1);
-
- memcpy (tmp, DrvGfxROM2, 0x80000);
-
- GfxDecode(0x1000, 4, 16, 16, Plane1, XOffs1, YOffs0, 0x100, tmp, DrvGfxROM2);
-
- memcpy (tmp, DrvGfxROM3, 0x80000);
-
- GfxDecode(0x1000, 4, 16, 16, Plane1, XOffs1, YOffs0, 0x100, tmp, DrvGfxROM3);
-
- BurnFree (tmp);
-
- return 0;
-}
-
-static INT32 CobraInit()
-{
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (!strcmp(BurnDrvGetTextA(DRV_NAME), "cobracomb")) {
- if (BurnLoadRom(DrvMainROM + 0x08000, 0, 1)) return 1;
- if (BurnLoadRom(DrvMainROM + 0x10000, 1, 1)) return 1;
- if (BurnLoadRom(DrvMainROM + 0x20000, 2, 1)) return 1;
-
- if (BurnLoadRom(DrvM6502ROM + 0x08000, 3, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x00000, 4, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM1 + 0x00000, 5, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x20000, 6, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x40000, 7, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x60000, 8, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM2 + 0x00000, 9, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x40000, 10, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x20000, 11, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x60000, 12, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM3 + 0x00000, 13, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM3 + 0x20000, 14, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM3 + 0x40000, 15, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM3 + 0x60000, 16, 1)) return 1;
-
- memcpy (DrvM6502OPS + 0x8000, DrvM6502ROM + 0x8000, 0x8000);
- } else if (!strcmp(BurnDrvGetTextA(DRV_NAME), "cobracomjb")) {
- if (BurnLoadRom(DrvMainROM + 0x08000, 0, 1)) return 1;
- if (BurnLoadRom(DrvMainROM + 0x10000, 1, 1)) return 1;
- if (BurnLoadRom(DrvMainROM + 0x20000, 2, 1)) return 1;
-
- if (BurnLoadRom(DrvM6502ROM + 0x08000, 3, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x00000, 4, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM1 + 0x00000, 5, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x20000, 6, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x40000, 7, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x60000, 8, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM2 + 0x00000, 9, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x40000, 10, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x20000, 11, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x60000, 12, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM3 + 0x00000, 13, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM3 + 0x20000, 14, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM3 + 0x40000, 15, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM3 + 0x60000, 16, 1)) return 1;
-
- memcpy (DrvM6502OPS + 0x8000, DrvM6502ROM + 0x8000, 0x8000);
- } else{
- if (BurnLoadRom(DrvMainROM + 0x08000, 0, 1)) return 1;
- if (BurnLoadRom(DrvMainROM + 0x10000, 1, 1)) return 1;
- if (BurnLoadRom(DrvMainROM + 0x20000, 2, 1)) return 1;
-
- if (BurnLoadRom(DrvM6502ROM + 0x08000, 3, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x00000, 4, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM1 + 0x00000, 5, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x20000, 6, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x40000, 7, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x60000, 8, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM2 + 0x00000, 9, 1)) return 1;
- memcpy (DrvGfxROM2 + 0x40000, DrvGfxROM2 + 0x08000, 0x08000);
- if (BurnLoadRom(DrvGfxROM2 + 0x20000, 10, 1)) return 1;
- memcpy (DrvGfxROM2 + 0x60000, DrvGfxROM2 + 0x28000, 0x08000);
-
- if (BurnLoadRom(DrvGfxROM3 + 0x00000, 11, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM3 + 0x20000, 12, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM3 + 0x40000, 13, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM3 + 0x60000, 14, 1)) return 1;
-
- memcpy (DrvM6502OPS + 0x8000, DrvM6502ROM + 0x8000, 0x8000);
- }
-
- CobraGfxDecode();
- }
-
- M6809Init(1);
- M6809Open(0);
- M6809MapMemory(DrvMainRAM, 0x0000, 0x07ff, MAP_RAM);
- M6809MapMemory(DrvPf0RAM, 0x0800, 0x0fff, MAP_RAM);
- M6809MapMemory(DrvPf1RAM, 0x1000, 0x1fff, MAP_RAM);
- M6809MapMemory(DrvVidRAM, 0x2000, 0x27ff, MAP_RAM);
- M6809MapMemory(DrvSprRAM, 0x2800, 0x2fff, MAP_RAM);
- M6809MapMemory(DrvPalRAM, 0x3000, 0x37ff, MAP_RAM);
- M6809MapMemory(DrvMainROM + 0x10000, 0x4000, 0x7fff, MAP_ROM);
- M6809MapMemory(DrvMainROM + 0x08000, 0x8000, 0xffff, MAP_ROM);
- M6809SetWriteHandler(cobra_main_write);
- M6809SetReadHandler(cobra_main_read);
- M6809Close();
-
- M6502Init(0, TYPE_M6502);
- M6502Open(0);
- M6502MapMemory(DrvM6502RAM, 0x0000, 0x05ff, MAP_RAM);
-// m6502MapMemory(DrvM6502ROM + 0x8000, 0x8000, 0xffff, MAP_READ);
-// m6502MapMemory(DrvM6502OPS + 0x8000, 0x8000, 0xffff, MAP_FETCH);
- M6502MapMemory(DrvM6502ROM + 0x8000, 0x8000, 0xffff, MAP_ROM);
- M6502SetReadHandler(ghostb_sound_read);
- M6502SetWriteHandler(ghostb_sound_write);
- M6502Close();
-
- BurnSetRefreshRate(58.00);
-
- BurnYM2203Init(1, 1500000, NULL, DrvYM2203M6809SynchroniseStream, DrvYM2203M6809GetTime, 0);
- BurnTimerAttachM6809(2000000);
- BurnYM2203SetRoute(0, BURN_SND_YM2203_YM2203_ROUTE, 0.50, BURN_SND_ROUTE_BOTH);
- BurnYM2203SetRoute(0, BURN_SND_YM2203_AY8910_ROUTE_1, 0.53, BURN_SND_ROUTE_BOTH);
- BurnYM2203SetRoute(0, BURN_SND_YM2203_AY8910_ROUTE_2, 0.53, BURN_SND_ROUTE_BOTH);
- BurnYM2203SetRoute(0, BURN_SND_YM2203_AY8910_ROUTE_3, 0.53, BURN_SND_ROUTE_BOTH);
-
- BurnYM3812Init(1, 3000000, &DrvYM3812FMIRQHandler, &DrvYM3812SynchroniseStream, 1);
- BurnTimerAttachM6502YM3812(1500000);
- BurnYM3812SetRoute(0, BURN_SND_YM3812_ROUTE, 0.70, BURN_SND_ROUTE_BOTH);
-
- GenericTilesInit();
-
- CobraDoReset();
-
- return 0;
-}
-
-static void draw_cobra_txt_layer()
-{
- for (INT32 offs = 0; offs < 32 * 32; offs++)
- {
- INT32 sx = (offs & 0x1f) << 3;
- INT32 sy = (offs >> 5) << 3;
-
- INT32 code = DrvVidRAM[offs * 2 + 1] | (DrvVidRAM[offs * 2 + 0] << 8);
- INT32 color = (code >> 13);
-
- code &= 0x3ff;
- if (code == 0) continue; // ok?
-
- sy -= 8;
- if (sy < 0 || sy >= nScreenHeight) continue;
-
- Render8x8Tile_Mask(pTransDraw, code, sx, sy, color, 2, 0, 0, DrvGfxROM0);
- }
-}
-
-static void draw_sprites2(INT32 colmask, INT32 priority, INT32 color_offset)
-{
- for (INT32 offs = 0;offs < 0x800;offs += 8)
- {
- INT32 y =DrvSprBuf[offs+1]+(DrvSprBuf[offs]<<8);
- if ((y&0x8000) == 0) continue;
- INT32 x = DrvSprBuf[offs+5]+(DrvSprBuf[offs+4]<<8);
- INT32 colour = (x >> 12);
- INT32 flash=x&0x800;
- if (flash && (GetCurrentFrame() & 1)) continue;
-
- if (priority==1 && (colour&4)) continue;
- if (priority==2 && !(colour&4)) continue;
-
- colour &= colmask;
- colour += color_offset;
-
- INT32 fx = y & 0x2000;
- INT32 fy = y & 0x4000;
- INT32 multi = (1 << ((y & 0x1800) >> 11)) - 1;
-
- INT32 sprite = DrvSprBuf[offs+3]+(DrvSprBuf[offs+2]<<8);
- sprite &= 0x0fff;
-
- x = x & 0x01ff;
- y = y & 0x01ff;
- if (x >= 256) x -= 512;
- if (y >= 256) y -= 512;
- x = 240 - x;
- y = 240 - y;
-
- INT32 mult, inc;
- sprite &= ~multi;
- if (fy)
- inc = -1;
- else
- {
- sprite += multi;
- inc = 1;
- }
-
- if (*flipscreen)
- {
- y=240-y;
- x=240-x;
- if (fx) fx=0; else fx=1;
- if (fy) fy=0; else fy=1;
- mult=16;
- }
- else mult=-16;
-
- y -= 8;
-
- while (multi >= 0)
- {
- if (fy) {
- if (fx) {
- Render16x16Tile_Mask_FlipXY_Clip(pTransDraw, (sprite - multi * inc) & 0xfff, x, y + mult * multi, colour, 4, 0, 0, DrvGfxROM1);
- } else {
- Render16x16Tile_Mask_FlipY_Clip(pTransDraw, (sprite - multi * inc) & 0xfff, x, y + mult * multi, colour, 4, 0, 0, DrvGfxROM1);
- }
- } else {
- if (fx) {
- Render16x16Tile_Mask_FlipX_Clip(pTransDraw, (sprite - multi * inc) & 0xfff, x, y + mult * multi, colour, 4, 0, 0, DrvGfxROM1);
- } else {
- Render16x16Tile_Mask_Clip(pTransDraw, (sprite - multi * inc) & 0xfff, x, y + mult * multi, colour, 4, 0, 0, DrvGfxROM1);
- }
- }
-
- multi--;
- }
- }
-}
-
-static INT32 CobraDraw()
-{
- if (DrvRecalc) {
- UINT8 r,g,b;
- for (INT32 i = 0; i < 0x200; i+=2) {
- INT32 d = (DrvPalRAM[i + 0] << 8) | DrvPalRAM[i + 1];
- r = (d >> 0) & 0x0f;
- g = (d >> 4) & 0x0f;
- b = (d >> 8) & 0x0f;
-
- r |= r << 4;
- g |= g << 4;
- b |= b << 4;
-
- DrvPalette[i/2] = BurnHighCol(r, g, b, 0);
- }
- }
-
- DrvPf0Ctrl[0] &= ~0x04; // disable line scrolling since this game
- DrvPf1Ctrl[1] &= ~0x04; // doesn't have ram for the offsets
-
- draw_bg_layer(DrvPf0RAM, DrvPf0Ctrl, DrvGfxROM2, 0x80, 0x03, 0xfff, 0, 0);
- draw_sprites2(0x03, 1, 0x04);
- draw_bg_layer(DrvPf1RAM, DrvPf1Ctrl, DrvGfxROM3, 0xc0, 0x03, 0xfff, 1, 0);
- draw_sprites2(0x03, 2, 0x04);
- draw_cobra_txt_layer();
-
- BurnTransferCopy(DrvPalette);
-
- return 0;
-}
-
-static INT32 CobraFrame()
-{
- if (DrvReset) {
- CobraDoReset();
- }
-
- M6809NewFrame();
- M6502NewFrame();
-
- {
- memset (DrvInputs, 0xff, 5);
- for (INT32 i = 0; i < 8; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- DrvInputs[2] ^= (DrvJoy3[i] & 1) << i;
- DrvInputs[3] ^= (DrvJoy4[i] & 1) << i;
- DrvInputs[4] ^= (DrvJoy5[i] & 1) << i;
- }
- }
-
- INT32 nInterleave = 32;
- INT32 nCyclesTotal[2] = { 2000000 / 58, 1500000 / 58 };
-// INT32 nCyclesDone[2] = { 0, 0 };
-
- M6502Open(0);
- M6809Open(0);
-
- vblank = 0x80;
-
- for (INT32 i = 0; i < nInterleave; i++)
- {
- if (i == 1) vblank = 0x80;
- if (i == 31) {
- vblank = 0;
- M6809SetIRQLine(0x20 /*NMI*/, CPU_IRQSTATUS_AUTO);
- }
-
- BurnTimerUpdate((i + 1) * (nCyclesTotal[0] / nInterleave));
- BurnTimerUpdateYM3812((i + 1) * (nCyclesTotal[1] / nInterleave));
- }
-
- BurnTimerEndFrame(nCyclesTotal[0]);
- BurnTimerEndFrameYM3812(nCyclesTotal[1]);
-
- if (pBurnSoundOut) {
- BurnYM2203Update(pBurnSoundOut, nBurnSoundLen);
- BurnYM3812Update(pBurnSoundOut, nBurnSoundLen);
- }
-
- M6809Close();
- M6502Close();
-
- if (pBurnDraw) {
- CobraDraw();
- }
-
- return 0;
-}
-
-// Cobra-Command (World revision 5)
-
-static struct BurnRomInfo cobracomRomDesc[] = {
- { "el11-5.bin", 0x08000, 0xaf0a8b05, 1 }, // 0 maincpu
- { "el12-4.bin", 0x10000, 0x7a44ef38, 1 }, // 1
- { "el13.bin", 0x10000, 0x04505acb, 1 }, // 2
-
- { "el10-4.bin", 0x08000, 0xedfad118, 2 }, // 3 audiocpu
-
- { "el14.bin", 0x08000, 0x47246177, 3 }, // 4 gfx1
-
- { "el00-4.bin", 0x10000, 0x122da2a8, 4 }, // 5 gfx2
- { "el01-4.bin", 0x10000, 0x27bf705b, 4 }, // 6
- { "el02-4.bin", 0x10000, 0xc86fede6, 4 }, // 7
- { "el03-4.bin", 0x10000, 0x1d8a855b, 4 }, // 8
-
- { "el08.bin", 0x10000, 0xcb0dcf4c, 5 }, // 9 gfx4
- { "el09.bin", 0x10000, 0x1fae5be7, 5 }, // 10
-
- { "el05.bin", 0x10000, 0x1c4f6033, 6 }, // 11 gfx3
- { "el06.bin", 0x10000, 0xd24ba794, 6 }, // 12
- { "el04.bin", 0x10000, 0xd80a49ce, 6 }, // 13
- { "el07.bin", 0x10000, 0x6d771fc3, 6 }, // 14
-};
-
-STD_ROM_PICK(cobracom)
-STD_ROM_FN(cobracom)
-
-static INT32 CobraExit()
-{
- M6809Exit();
- BurnYM3812Exit();
- return DrvExit();
-}
-
-static INT32 CobraScan(INT32 nAction, INT32 *pnMin)
-{
- if (nAction & ACB_DRIVER_DATA) {
- M6809Scan(nAction);
- BurnYM3812Scan(nAction, pnMin);
- SCAN_VAR(RomBank);
-
- if (nAction & ACB_WRITE) {
- M6809Open(0);
- M6809MapMemory(DrvMainROM + 0x10000 + RomBank, 0x4000, 0x7fff, MAP_ROM);
- M6809Close();
- }
- }
-
- return DrvScan(nAction, pnMin);
-}
-
-struct BurnDriver BurnDrvCobracom = {
- "cobracom", NULL, NULL, NULL, "1988",
- "Cobra-Command (World revision 5)\0", NULL, "Data East Corporation", "DEC8",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_PREFIX_DATAEAST, GBF_HORSHOOT, 0,
- NULL, cobracomRomInfo, cobracomRomName, NULL, NULL, CobracomInputInfo, CobracomDIPInfo,
- CobraInit, CobraExit, CobraFrame, CobraDraw, CobraScan, &DrvRecalc, 0x100,
- 256, 240, 4, 3
-};
-
-
-// Cobra-Command (Japan)
-
-static struct BurnRomInfo cobracmjRomDesc[] = {
- { "eh-11.rom", 0x08000, 0x868637e1, 1 }, // 0 maincpu
- { "eh-12.rom", 0x10000, 0x7c878a83, 1 }, // 1
- { "el13.bin", 0x10000, 0x04505acb, 1 }, // 2
-
- { "eh-10.rom", 0x08000, 0x62ca5e89, 2 }, // 3 audiocpu
-
- { "el14.bin", 0x08000, 0x47246177, 3 }, // 4 gfx1
-
- { "eh-00.rom", 0x10000, 0xd96b6797, 4 }, // 5 gfx2
- { "eh-01.rom", 0x10000, 0x3fef9c02, 4 }, // 6
- { "eh-02.rom", 0x10000, 0xbfae6c34, 4 }, // 7
- { "eh-03.rom", 0x10000, 0xd56790f8, 4 }, // 8
-
- { "el08.bin", 0x10000, 0xcb0dcf4c, 5 }, // 9 gfx4
- { "el09.bin", 0x10000, 0x1fae5be7, 5 }, // 10
-
- { "el05.bin", 0x10000, 0x1c4f6033, 6 }, // 11 gfx3
- { "el06.bin", 0x10000, 0xd24ba794, 6 }, // 12
- { "el04.bin", 0x10000, 0xd80a49ce, 6 }, // 13
- { "el07.bin", 0x10000, 0x6d771fc3, 6 }, // 14
-};
-
-STD_ROM_PICK(cobracmj)
-STD_ROM_FN(cobracmj)
-
-struct BurnDriver BurnDrvCobracmj = {
- "cobracomj", "cobracom", NULL, NULL, "1988",
- "Cobra-Command (Japan)\0", NULL, "Data East Corporation", "DEC8",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_DATAEAST, GBF_HORSHOOT, 0,
- NULL, cobracmjRomInfo, cobracmjRomName, NULL, NULL, CobracomInputInfo, CobracomDIPInfo,
- CobraInit, CobraExit, CobraFrame, CobraDraw, CobraScan, &DrvRecalc, 0x100,
- 256, 240, 4, 3
-};
-
-
-// Cobra-Command (Japan?, set 2)
-
-static struct BurnRomInfo cobracmjaRomDesc[] = {
- { "el-11.rom", 0x08000, 0xc6a102e3, 1 }, // 0 maincpu
- { "el-12.rom", 0x10000, 0x72b2dab4, 1 }, // 1
- { "el-13.rom", 0x10000, 0x04505acb, 1 }, // 2
-
- { "el-10.rom", 0x08000, 0x62ca5e89, 2 }, // 3 audiocpu
-
- { "el-14.rom", 0x08000, 0x47246177, 3 }, // 4 gfx1
-
- { "eh-00.rom", 0x10000, 0xd96b6797, 4 }, // 5 gfx2
- { "eh-01.rom", 0x10000, 0x3fef9c02, 4 }, // 6
- { "eh-02.rom", 0x10000, 0xbfae6c34, 4 }, // 7
- { "eh-03.rom", 0x10000, 0xd56790f8, 4 }, // 8
-
- { "el-08.rom", 0x10000, 0xcb0dcf4c, 5 }, // 9 gfx4
- { "el-09.rom", 0x10000, 0x1fae5be7, 5 }, // 10
-
- { "el-05.rom", 0x10000, 0x1c4f6033, 6 }, // 11 gfx3
- { "el-06.rom", 0x10000, 0xd24ba794, 6 }, // 12
- { "el-04.rom", 0x10000, 0xd80a49ce, 6 }, // 13
- { "el-07.rom", 0x10000, 0x6d771fc3, 6 }, // 14
-};
-
-STD_ROM_PICK(cobracmja)
-STD_ROM_FN(cobracmja)
-
-struct BurnDriver BurnDrvCobracmja = {
- "cobracomja", "cobracom", NULL, NULL, "1988",
- "Cobra-Command (Japan?, set 2)\0", NULL, "Data East Corporation", "DEC8",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_DATAEAST, GBF_HORSHOOT, 0,
- NULL, cobracmjaRomInfo, cobracmjaRomName, NULL, NULL, CobracomInputInfo, CobracomDIPInfo,
- CobraInit, CobraExit, CobraFrame, CobraDraw, CobraScan, &DrvRecalc, 0x100,
- 256, 240, 4, 3
-};
-
-
-// Cobra-Command (Italian bootleg)
-// f205v id 835
-
-static struct BurnRomInfo cobracombRomDesc[] = {
- { "a1.bin", 0x08000, 0xbb38b64c, 1 }, // 0 maincpu
- { "a2.bin", 0x10000, 0x7c878a83, 1 }, // 1
- { "a3.bin", 0x10000, 0x04505acb, 1 }, // 2
-
- { "a5.bin", 0x08000, 0x62ca5e89, 2 }, // 3 audiocpu
-
- { "a4.bin", 0x08000, 0x47246177, 3 }, // 4 gfx1
-
- { "5.bin", 0x10000, 0xd96b6797, 4 }, // 5 gfx2
- { "6.bin", 0x10000, 0x3fef9c02, 4 }, // 6
- { "7.bin", 0x10000, 0xbfae6c34, 4 }, // 7
- { "8.bin", 0x10000, 0xeaeb700e, 4 }, // 8
-
- { "a9.bin", 0x08000, 0xc991298f, 5 }, // 9 gfx4
- { "a8.bin", 0x08000, 0xf5e267e5, 5 }, // 10
- { "a7.bin", 0x08000, 0x6bcc5982, 5 }, // 11
- { "a6.bin", 0x08000, 0xc90443b5, 5 }, // 12
-
- { "1.bin", 0x10000, 0x1c4f6033, 6 }, // 13 gfx3
- { "2.bin", 0x10000, 0xd24ba794, 6 }, // 14
- { "3.bin", 0x10000, 0xd80a49ce, 6 }, // 15
- { "4.bin", 0x10000, 0x6d771fc3, 6 }, // 16
-};
-
-STD_ROM_PICK(cobracomb)
-STD_ROM_FN(cobracomb)
-
-struct BurnDriver BurnDrvCobracomb = {
- "cobracomb", "cobracom", NULL, NULL, "1988",
- "Cobra-Command (Italian bootleg)\0", NULL, "bootleg", "DEC8",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_DATAEAST, GBF_HORSHOOT, 0,
- NULL, cobracombRomInfo, cobracombRomName, NULL, NULL, CobracomInputInfo, CobracomDIPInfo,
- CobraInit, CobraExit, CobraFrame, CobraDraw, CobraScan, &DrvRecalc, 0x100,
- 256, 240, 4, 3
-};
-
-// Cobra-Command (Japan, bootleg)
-// f205v id 375
-// This PCB has been manufactured in Italy, roms are the same as "Cobra-Command (Japan)" already in MAME, but divided into different size eprom chips //
-
-static struct BurnRomInfo cobracomjbRomDesc[] = {
- { "4.bin", 0x08000, 0x868637e1, 1 }, // 0 maincpu
- { "3.bin", 0x10000, 0x7c878a83, 1 }, // 1
- { "2.bin", 0x10000, 0x04505acb, 1 }, // 2
-
- { "5.bin", 0x08000, 0x62ca5e89, 2 }, // 3 audiocpu
-
- { "1.bin", 0x08000, 0x47246177, 3 }, // 4 gfx1
-
- { "13.bin", 0x10000, 0xd96b6797, 4 }, // 5 gfx2
- { "12.bin", 0x10000, 0x3fef9c02, 4 }, // 6
- { "11.bin", 0x10000, 0xbfae6c34, 4 }, // 7
- { "10.bin", 0x10000, 0xd56790f8, 4 }, // 8
-
- { "6.bin", 0x08000, 0xc991298f, 5 }, // 9 gfx4
- { "7.bin", 0x08000, 0xf5e267e5, 5 }, // 10
- { "8.bin", 0x08000, 0x6bcc5982, 5 }, // 11
- { "9.bin", 0x08000, 0xc90443b5, 5 }, // 12
-
- { "17.bin", 0x10000, 0x1c4f6033, 6 }, // 13 gfx3
- { "16.bin", 0x10000, 0xd24ba794, 6 }, // 14
- { "15.bin", 0x10000, 0xd80a49ce, 6 }, // 15
- { "14.bin", 0x10000, 0x6d771fc3, 6 }, // 16
-};
-
-STD_ROM_PICK(cobracomjb)
-STD_ROM_FN(cobracomjb)
-
-struct BurnDriver BurnDrvCobracomjb = {
- "cobracomjb", "cobracom", NULL, NULL, "1988",
- "Cobra-Command (Japan, bootleg)\0", NULL, "bootleg", "DEC8",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_DATAEAST, GBF_HORSHOOT, 0,
- NULL, cobracomjbRomInfo, cobracomjbRomName, NULL, NULL, CobracomInputInfo, CobracomDIPInfo,
- CobraInit, CobraExit, CobraFrame, CobraDraw, CobraScan, &DrvRecalc, 0x100,
- 256, 240, 4, 3
-};
-
-static void srdarwin_i8751_w(INT32 offset, INT32 data)
-{
- static INT32 coins, latch;
- i8751_return = 0;
-
- switch (offset)
- {
- case 0: /* High byte */
- i8751_value = (i8751_value & 0xff) | (data << 8);
- break;
-
- case 1: /* Low byte */
- i8751_value = (i8751_value & 0xff00) | data;
- break;
- }
-
- if (i8751_value == 0x0000) {i8751_return = 0; coins = 0;}
- if (i8751_value == 0x3063) i8751_return = 0x9c; /* Protection - Japanese version */
- if (i8751_value == 0x306b) i8751_return = 0x94; /* Protection - World version */
- if ((i8751_value & 0xff00) == 0x4000) i8751_return = i8751_value; /* Coinage settings */
- if (i8751_value == 0x5000) i8751_return =((coins / 10) << 4) | (coins % 10); /* Coin request */
- if (i8751_value == 0x6000) {i8751_value = -1; coins--; } /* Coin clear */
-
- if ((DrvInputs[4] & 1) == 1) latch = 1;
- if ((DrvInputs[4] & 1) != 1 && latch) {coins++; latch = 0;}
-
- if (i8751_value == 0x8000) i8751_return = 0xf580 + 0; /* Boss #1: Snake + Bees */
- if (i8751_value == 0x8001) i8751_return = 0xf580 + 30; /* Boss #2: 4 Corners */
- if (i8751_value == 0x8002) i8751_return = 0xf580 + 26; /* Boss #3: Clock */
- if (i8751_value == 0x8003) i8751_return = 0xf580 + 2; /* Boss #4: Pyramid */
- if (i8751_value == 0x8004) i8751_return = 0xf580 + 6; /* Boss #5: Snake + Head Combo */
- if (i8751_value == 0x8005) i8751_return = 0xf580 + 24; /* Boss #6: LED Panels */
- if (i8751_value == 0x8006) i8751_return = 0xf580 + 28; /* Boss #7: Dragon */
- if (i8751_value == 0x8007) i8751_return = 0xf580 + 32; /* Boss #8: Teleport */
- if (i8751_value == 0x8008) i8751_return = 0xf580 + 38; /* Boss #9: Octopus (Pincer) */
- if (i8751_value == 0x8009) i8751_return = 0xf580 + 40; /* Boss #10: Bird */
- if (i8751_value == 0x800a) i8751_return = 0xf580 + 42; /* End Game(bad address?) */
-}
-
-void srdarwin_main_write(UINT16 address, UINT8 data)
-{
- switch (address)
- {
- case 0x1800:
- case 0x1801:
- srdarwin_i8751_w(address & 1, data);
- return;
-
- case 0x1802:
- i8751_value = 0;
- return;
-
- case 0x1804:
- memcpy (DrvSprBuf, DrvSprRAM, 0x200);
- return;
-
- case 0x1805:
- m6809_bankswitch(data >> 5);
- DrvPf0Ctrl[0x10] = data & 0x01;
- return;
-
- case 0x1806:
- DrvPf0Ctrl[0x11] = data;
- return;
-
- case 0x2000:
- *soundlatch = data;
-// m6502SetIRQ(M6502_NMI);
- M6502SetIRQLine(M6502_INPUT_LINE_NMI, CPU_IRQSTATUS_AUTO);
- return;
-
- case 0x2001:
- *flipscreen = data;
- return;
- }
-}
-
-UINT8 srdarwin_main_read(UINT16 address)
-{
- switch (address)
- {
- case 0x2000:
- return i8751_return >> 8;
-
- case 0x2001:
- return i8751_return & 0xff;
-
- case 0x3800:
- return DrvDips[0];
-
- case 0x3801:
- return DrvInputs[0];
-
- case 0x3802:
- return (DrvInputs[1] & ~0x40) | vblank;
-
- case 0x3803:
- return DrvDips[1];
- }
-
- return 0;
-}
-
-static INT32 SrdarwinGfxDecode()
-{
- INT32 Plane0[2] = { 0, 4 };
- INT32 Plane1[4] = { 0x10000*8,0x20000*8,0x00000*8 };
- INT32 Plane2[4] = { 0x4000*8, 0x4000*8+4, 0, 4 };
-
- INT32 XOffs0[8] = { 0x2000*8+0, 0x2000*8+1, 0x2000*8+2, 0x2000*8+3, 0, 1, 2, 3 };
- INT32 XOffs1[16] = { 16*8, 1+(16*8), 2+(16*8), 3+(16*8), 4+(16*8), 5+(16*8), 6+(16*8), 7+(16*8),0,1,2,3,4,5,6,7 };
- INT32 XOffs2[16] = { 0, 1, 2, 3, 1024*8*8+0, 1024*8*8+1, 1024*8*8+2, 1024*8*8+3,
- 16*8+0, 16*8+1, 16*8+2, 16*8+3, 16*8+1024*8*8+0, 16*8+1024*8*8+1, 16*8+1024*8*8+2, 16*8+1024*8*8+3 };
-
- INT32 YOffs[16] = { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 ,8*8,9*8,10*8,11*8,12*8,13*8,14*8,15*8 };
-
- UINT8 *tmp = (UINT8*)BurnMalloc(0x80000);
- if (tmp == NULL) {
- return 1;
- }
-
- memcpy (tmp, DrvGfxROM0, 0x08000);
-
- GfxDecode(0x0400, 2, 8, 8, Plane0, XOffs0, YOffs, 0x040, tmp, DrvGfxROM0);
-
- memcpy (tmp, DrvGfxROM1, 0x80000);
-
- GfxDecode(0x0800, 3, 16, 16, Plane1, XOffs1, YOffs, 0x100, tmp, DrvGfxROM1);
-
- for (INT32 i = 0; i < 4; i++) {
- memcpy (tmp, DrvGfxROM2 + i * 0x10000, 0x08000);
- GfxDecode(0x0100, 4, 16, 16, Plane2, XOffs2, YOffs, 0x100, tmp, DrvGfxROM2 + i * 0x10000);
- }
-
- BurnFree (tmp);
-
- return 0;
-}
-
-
-static INT32 SrdarwinInit()
-{
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(DrvMainROM + 0x20000, 0, 1)) return 1;
- if (BurnLoadRom(DrvMainROM + 0x10000, 1, 1)) return 1;
- memcpy (DrvMainROM + 0x8000, DrvMainROM + 0x28000, 0x08000);
-
- if (BurnLoadRom(DrvM6502ROM + 0x08000, 2, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x00000, 3, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM1 + 0x00000, 4, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x08000, 5, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x10000, 6, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x18000, 7, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x20000, 8, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x28000, 9, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM3 + 0x00000, 10, 1)) return 1;
- memcpy (DrvGfxROM2 + 0x00000, DrvGfxROM3 + 0x00000, 0x04000);
- memcpy (DrvGfxROM2 + 0x10000, DrvGfxROM3 + 0x04000, 0x04000);
- memcpy (DrvGfxROM2 + 0x20000, DrvGfxROM3 + 0x08000, 0x04000);
- memcpy (DrvGfxROM2 + 0x30000, DrvGfxROM3 + 0x0c000, 0x04000);
- if (BurnLoadRom(DrvGfxROM3 + 0x00000, 11, 1)) return 1;
- memcpy (DrvGfxROM2 + 0x04000, DrvGfxROM3 + 0x00000, 0x04000);
- memcpy (DrvGfxROM2 + 0x14000, DrvGfxROM3 + 0x04000, 0x04000);
- memcpy (DrvGfxROM2 + 0x24000, DrvGfxROM3 + 0x08000, 0x04000);
- memcpy (DrvGfxROM2 + 0x34000, DrvGfxROM3 + 0x0c000, 0x04000);
-
- memcpy (DrvM6502OPS + 0x8000, DrvM6502ROM + 0x8000, 0x8000);
-
- Deco222Decode();
- SrdarwinGfxDecode();
- }
-
- M6809Init(1);
- M6809Open(0);
- M6809MapMemory(DrvMainRAM, 0x0000, 0x05ff, MAP_RAM);
- M6809MapMemory(DrvSprRAM, 0x0600, 0x07ff, MAP_RAM);
- M6809MapMemory(DrvVidRAM, 0x0800, 0x0fff, MAP_RAM);
- M6809MapMemory(DrvMainRAM + 0x1000, 0x1000, 0x13ff, MAP_RAM);
- M6809MapMemory(DrvPf0RAM, 0x1400, 0x17ff, MAP_RAM);
- M6809MapMemory(DrvPalRAM, 0x2800, 0x28ff, MAP_RAM);
- M6809MapMemory(DrvPalRAM + 0x100, 0x3000, 0x30ff, MAP_RAM);
- M6809MapMemory(DrvMainROM + 0x10000, 0x4000, 0x7fff, MAP_ROM);
- M6809MapMemory(DrvMainROM + 0x08000, 0x8000, 0xffff, MAP_ROM);
- M6809SetWriteHandler(srdarwin_main_write);
- M6809SetReadHandler(srdarwin_main_read);
- M6809Close();
-
- M6502Init(0, TYPE_M6502);
- M6502Open(0);
- M6502MapMemory(DrvM6502RAM, 0x0000, 0x05ff, MAP_RAM);
- M6502MapMemory(DrvM6502ROM + 0x8000, 0x8000, 0xffff, MAP_READ);
- M6502MapMemory(DrvM6502OPS + 0x8000, 0x8000, 0xffff, MAP_FETCH);
- M6502SetReadHandler(ghostb_sound_read);
- M6502SetWriteHandler(ghostb_sound_write);
- M6502Close();
-
- BurnSetRefreshRate(58.00);
-
- BurnYM2203Init(1, 1500000, NULL, DrvYM2203M6809SynchroniseStream, DrvYM2203M6809GetTime, 0);
- BurnTimerAttachM6809(2000000);
- BurnYM2203SetRoute(0, BURN_SND_YM2203_YM2203_ROUTE, 0.20, BURN_SND_ROUTE_BOTH);
- BurnYM2203SetRoute(0, BURN_SND_YM2203_AY8910_ROUTE_1, 0.23, BURN_SND_ROUTE_BOTH);
- BurnYM2203SetRoute(0, BURN_SND_YM2203_AY8910_ROUTE_2, 0.23, BURN_SND_ROUTE_BOTH);
- BurnYM2203SetRoute(0, BURN_SND_YM2203_AY8910_ROUTE_3, 0.23, BURN_SND_ROUTE_BOTH);
-
- BurnYM3812Init(1, 3000000, &DrvYM3812FMIRQHandler, &DrvYM3812SynchroniseStream, 1);
- BurnTimerAttachM6502YM3812(1500000);
- BurnYM3812SetRoute(0, BURN_SND_YM3812_ROUTE, 0.70, BURN_SND_ROUTE_BOTH);
-
- GenericTilesInit();
-
- CobraDoReset();
-
- return 0;
-}
-
-static void Srdarwin_draw_layer(INT32 layer)
-{
- INT32 scrollx = (DrvPf0Ctrl[0x10] << 8) | DrvPf0Ctrl[0x11];
-
- UINT16 layer0t[4] = { 0x0000, 0xff00, 0xff00, 0xffff };
- UINT16 layer1t[4] = { 0xffff, 0x00ff, 0x00ff, 0x0000 };
- UINT16 *layert = layer ? layer1t : layer0t;
-
- for (INT32 offs = 0; offs < 32 * 32; offs++)
- {
- INT32 sx = (offs & 0x1f) << 4;
- INT32 sy = (offs >> 5) << 4;
-
- sy -= 8;
- if (sy >= nScreenHeight) continue;
- sx -= scrollx;
- if (sx < -15) sx += 512;
- if (sx >= nScreenWidth) continue;
-
- INT32 code = DrvPf0RAM[offs * 2 + 1] | (DrvPf0RAM[offs * 2 + 0] << 8);
- INT32 color = (code >> 12) & 3;
-
- {
- code &= 0x3ff;
- color <<= 4;
-
- INT32 t = layert[color>>4];
- UINT8 *src = DrvGfxROM2 + (code << 8);
- UINT16 *dst;
-
- for (INT32 y = 0; y < 16; y++, sy++, src+=16)
- {
- if (sy < 0 || sy >= nScreenHeight) continue;
-
- dst = pTransDraw + sy * nScreenWidth;
-
- INT32 xx = sx;
-
- for (INT32 x = 0; x < 16; x++, xx++)
- {
- INT32 pxl = src[x];
-
- if (t & (1 << pxl)) continue;
- if (xx < 0 || xx >= nScreenWidth) continue;
-
- dst[xx] = pxl | color;
- }
- }
- }
- }
-}
-
-static void srdarwin_txt_draw()
-{
- for (INT32 offs = 0; offs < 32 * 32; offs++)
- {
- INT32 sx = (offs & 0x1f) << 3;
- INT32 sy = (offs >> 5) << 3;
- sy -= 8;
- if (sy < 0 || sy >= nScreenHeight) continue;
-
- INT32 code = DrvVidRAM[offs];
-
- Render8x8Tile_Mask(pTransDraw, code, sx, sy, 0, 2, 0, 0x80, DrvGfxROM0);
- }
-}
-
-static void srdarwin_draw_sprites(INT32 pri)
-{
- for (INT32 offs = 0;offs < 0x200;offs += 4)
- {
- INT32 multi,fx,sx,sy,sy2,code,color;
-
- color = (DrvSprBuf[offs+1] & 0x03) + ((DrvSprBuf[offs+1] & 0x08) >> 1);
- if (pri==0 && color!=0) continue;
- if (pri==1 && color==0) continue;
-
- code = DrvSprBuf[offs+3] + ( ( DrvSprBuf[offs+1] & 0xe0 ) << 3 );
- if (!code) continue;
-
- sy = DrvSprBuf[offs];
- if (sy == 0xf8) continue;
-
- sx = (241 - DrvSprBuf[offs+2]);
-
- fx = DrvSprBuf[offs+1] & 0x04;
- multi = DrvSprBuf[offs+1] & 0x10;
-
- if (*flipscreen)
- {
- sy=240-sy;
- sx=240-sx;
- if (fx) fx=0; else fx=1;
- sy2=sy-16;
- }
- else sy2=sy+16;
-
- sy -= 8;
- sy2 -= 8;
-
- if (*flipscreen) {
- if (fx) {
- Render16x16Tile_Mask_FlipXY_Clip(pTransDraw, code, sx, sy, color, 3, 0, 0x40, DrvGfxROM1);
- } else {
- Render16x16Tile_Mask_FlipY_Clip(pTransDraw, code, sx, sy, color, 3, 0, 0x40, DrvGfxROM1);
- }
- } else {
- if (fx) {
- Render16x16Tile_Mask_FlipX_Clip(pTransDraw, code, sx, sy, color, 3, 0, 0x40, DrvGfxROM1);
- } else {
- Render16x16Tile_Mask_Clip(pTransDraw, code, sx, sy, color, 3, 0, 0x40, DrvGfxROM1);
- }
- }
-
- if (multi) {
- code++;
- if (*flipscreen) {
- if (fx) {
- Render16x16Tile_Mask_FlipXY_Clip(pTransDraw, code, sx, sy2, color, 3, 0, 0x40, DrvGfxROM1);
- } else {
- Render16x16Tile_Mask_FlipY_Clip(pTransDraw, code, sx, sy2, color, 3, 0, 0x40, DrvGfxROM1);
- }
- } else {
- if (fx) {
- Render16x16Tile_Mask_FlipX_Clip(pTransDraw, code, sx, sy2, color, 3, 0, 0x40, DrvGfxROM1);
- } else {
- Render16x16Tile_Mask_Clip(pTransDraw, code, sx, sy2, color, 3, 0, 0x40, DrvGfxROM1);
- }
- }
- }
- }
-}
-
-static INT32 SrdarwinDraw()
-{
- if (DrvRecalc) {
- UINT8 r,g,b;
- for (INT32 i = 0; i < 0x100; i++) {
- INT32 d = (DrvPalRAM[i + 0]) | (DrvPalRAM[i + 0x100] << 8);
- r = (d >> 0) & 0x0f;
- g = (d >> 4) & 0x0f;
- b = (d >> 8) & 0x0f;
-
- r |= r << 4;
- g |= g << 4;
- b |= b << 4;
-
- DrvPalette[i] = BurnHighCol(r, g, b, 0);
- }
- }
- BurnTransferClear();
- if (nBurnLayer & 1) Srdarwin_draw_layer(0);
- if (nSpriteEnable & 1) srdarwin_draw_sprites(0);
- if (nBurnLayer & 2) Srdarwin_draw_layer(1);
- if (nSpriteEnable & 2) srdarwin_draw_sprites(1);
-
- if (nBurnLayer & 4) srdarwin_txt_draw();
-
- BurnTransferCopy(DrvPalette);
-
- return 0;
-}
-
-
-static INT32 SrdarwinFrame()
-{
- if (DrvReset) {
- CobraDoReset();
- }
-
- M6809NewFrame();
- M6502NewFrame();
-
- {
- memset (DrvInputs, 0xff, 4);
- for (INT32 i = 0; i < 8; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- }
- DrvInputs[4] = DrvJoy5[0] & 1;
- }
-
- INT32 nInterleave = 32;
- INT32 nCyclesTotal[2] = { 2000000 / 58, 1500000 / 58 };
-// INT32 nCyclesDone[2] = { 0, 0 };
-
- M6502Open(0);
- M6809Open(0);
-
- vblank = 0x40;
-
- for (INT32 i = 0; i < nInterleave; i++)
- {
- if (i == 1) vblank = 0x40;
- if (i == 31) {
- vblank = 0;
- M6809SetIRQLine(0x20 /*NMI*/, CPU_IRQSTATUS_AUTO);
- }
-
- BurnTimerUpdate((i + 1) * (nCyclesTotal[0] / nInterleave));
- BurnTimerUpdateYM3812((i + 1) * (nCyclesTotal[1] / nInterleave));
- }
-
- BurnTimerEndFrame(nCyclesTotal[0]);
- BurnTimerEndFrameYM3812(nCyclesTotal[1]);
-
- if (pBurnSoundOut) {
- BurnYM2203Update(pBurnSoundOut, nBurnSoundLen);
- BurnYM3812Update(pBurnSoundOut, nBurnSoundLen);
- }
-
- M6809Close();
- M6502Close();
-
- if (pBurnDraw) {
- SrdarwinDraw();
- }
-
- return 0;
-}
-
-
-// Super Real Darwin (World)
-
-static struct BurnRomInfo srdarwinRomDesc[] = {
- { "dy01-e.b14", 0x10000, 0x176e9299, 1 }, // 0 maincpu
- { "dy00.b16", 0x10000, 0x2bf6b461, 1 }, // 1
-
- { "dy04.d7", 0x08000, 0x2ae3591c, 2 }, // 2 audiocpu
-
- { "dy05.b6", 0x04000, 0x8780e8a3, 3 }, // 3 gfx1
-
- { "dy07.h16", 0x08000, 0x97eaba60, 4 }, // 4 gfx2
- { "dy06.h14", 0x08000, 0xc279541b, 4 }, // 5
- { "dy09.k13", 0x08000, 0xd30d1745, 4 }, // 6
- { "dy08.k11", 0x08000, 0x71d645fd, 4 }, // 7
- { "dy11.k16", 0x08000, 0xfd9ccc5b, 4 }, // 8
- { "dy10.k14", 0x08000, 0x88770ab8, 4 }, // 9
-
- { "dy03.b4", 0x10000, 0x44f2a4f9, 5 }, // 10 gfx3
- { "dy02.b5", 0x10000, 0x522d9a9e, 5 }, // 11
-
- { "id8751h.mcu", 0x01000, 0x11cd6ca4, 6 }, // 12 mcu
-
- { "dy12.f4", 0x00100, 0xebfaaed9, 7 }, // 13 proms
-};
-
-STD_ROM_PICK(srdarwin)
-STD_ROM_FN(srdarwin)
-
-struct BurnDriver BurnDrvSrdarwin = {
- "srdarwin", NULL, NULL, NULL, "1987",
- "Super Real Darwin (World)\0", NULL, "Data East Corporation", "DEC8",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL, 2, HARDWARE_PREFIX_DATAEAST, GBF_VERSHOOT, 0,
- NULL, srdarwinRomInfo, srdarwinRomName, NULL, NULL, SrdarwinInputInfo, SrdarwinDIPInfo,
- SrdarwinInit, CobraExit, SrdarwinFrame, SrdarwinDraw, CobraScan, &DrvRecalc, 0x100,
- 240, 256, 3, 4
-};
-
-
-// Super Real Darwin (Japan)
-
-static struct BurnRomInfo srdarwnjRomDesc[] = {
- { "dy_01.rom", 0x10000, 0x1eeee4ff, 1 }, // 0 maincpu
- { "dy00.b16", 0x10000, 0x2bf6b461, 1 }, // 1
-
- { "dy04.d7", 0x08000, 0x2ae3591c, 2 }, // 2 audiocpu
-
- { "dy05.b6", 0x04000, 0x8780e8a3, 3 }, // 3 gfx1
-
- { "dy07.h16", 0x08000, 0x97eaba60, 4 }, // 4 gfx2
- { "dy06.h14", 0x08000, 0xc279541b, 4 }, // 5
- { "dy09.k13", 0x08000, 0xd30d1745, 4 }, // 6
- { "dy08.k11", 0x08000, 0x71d645fd, 4 }, // 7
- { "dy11.k16", 0x08000, 0xfd9ccc5b, 4 }, // 8
- { "dy10.k14", 0x08000, 0x88770ab8, 4 }, // 9
-
- { "dy03.b4", 0x10000, 0x44f2a4f9, 5 }, // 10 gfx3
- { "dy02.b5", 0x10000, 0x522d9a9e, 5 }, // 11
-
- { "id8751h.mcu", 0x01000, 0x11cd6ca4, 6 }, // 12 mcu
-
- { "dy12.f4", 0x00100, 0xebfaaed9, 7 }, // 13 proms
-};
-
-STD_ROM_PICK(srdarwnj)
-STD_ROM_FN(srdarwnj)
-
-struct BurnDriver BurnDrvSrdarwnj = {
- "srdarwinj", "srdarwin", NULL, NULL, "1987",
- "Super Real Darwin (Japan)\0", NULL, "Data East Corporation", "DEC8",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL, 2, HARDWARE_PREFIX_DATAEAST, GBF_VERSHOOT, 0,
- NULL, srdarwnjRomInfo, srdarwnjRomName, NULL, NULL, SrdarwinInputInfo, SrdarwinDIPInfo,
- SrdarwinInit, CobraExit, SrdarwinFrame, SrdarwinDraw, CobraScan, &DrvRecalc, 0x100,
- 240, 256, 3, 4
-};
-
-
-
-
-
-static void gondo_i8751_write(INT32 offset, UINT8 data)
-{
- static INT32 coin1, coin2, latch,snd;
- i8751_return = 0;
-
- UINT8 coin = ~DrvInputs[4] ^ 3;
-
- switch (offset)
- {
- case 0:
- i8751_value = (i8751_value & 0xff) | (data << 8);
- if (*interrupt_enable) HD6309SetIRQLine(0, CPU_IRQSTATUS_AUTO);
- break;
-
- case 1:
- i8751_value = (i8751_value & 0xff00) | data;
- break;
- }
-
- /* Coins are controlled by the i8751 */
- if ((coin & 3) == 3) latch = 1;
- if ((coin & 1) != 1 && latch) {coin1++; snd = 1; latch = 0; }
- if ((coin & 2) != 2 && latch) {coin2++; snd = 1; latch = 0; }
-
- if (i8751_value == 0x0000) {i8751_return = 0x000; coin1 = coin2 = snd = 0;}
- if (i8751_value == 0x038a) i8751_return = 0x375; /* Makyou Senshi ID */
- if (i8751_value == 0x038b) i8751_return = 0x374; /* Gondomania ID */
- if ((i8751_value >> 8) == 0x04) i8751_return = 0x40f; /* Coinage settings (Not supported) */
- if ((i8751_value >> 8) == 0x05) {i8751_return = 0x500 | ((coin1 / 10) << 4) | (coin1 % 10); } /* Coin 1 */
- if ((i8751_value >> 8) == 0x06 && coin1 && !offset) {i8751_return = 0x600; coin1--; } /* Coin 1 clear */
- if ((i8751_value >> 8) == 0x07) {i8751_return = 0x700 | ((coin2 / 10) << 4) | (coin2 % 10); } /* Coin 2 */
- if ((i8751_value >> 8) == 0x08 && coin2 && !offset) {i8751_return = 0x800; coin2--; } /* Coin 2 clear */
-
- if ((i8751_value >> 8) == 0x0a) {i8751_return = 0xa00 | snd; if (snd) snd = 0; }
-}
-
-static void garyoret_i8751_write(INT32 offset, UINT8 data)
-{
- static INT32 coin1, coin2, latch;
- i8751_return = 0;
-
- UINT8 coin = ~DrvInputs[4] ^ 3;
-
- switch (offset)
- {
- case 0: /* High byte */
- i8751_value = (i8751_value & 0xff) | (data << 8);
- break;
-
- case 1: /* Low byte */
- i8751_value = (i8751_value & 0xff00) | data;
- break;
- }
-
- /* Coins are controlled by the i8751 */
- if ((coin & 3) == 3) latch=1;
- if ((coin & 1) != 1 && latch) {coin1++; latch = 0;}
- if ((coin & 2) != 2 && latch) {coin2++; latch = 0;}
-
- /* Work out return values */
- if ((i8751_value >> 8) == 0x00) {i8751_return = 0; coin1 = coin2 = 0;}
- if ((i8751_value >> 8) == 0x01) i8751_return = 0x59a; /* ID */
- if ((i8751_value >> 8) == 0x04) i8751_return = i8751_value; /* Coinage settings (Not supported) */
- if ((i8751_value >> 8) == 0x05) {i8751_return = 0x00 | ((coin1 / 10) << 4) | (coin1 % 10); } /* Coin 1 */
- if ((i8751_value >> 8) == 0x06 && coin1 && !offset) {i8751_return = 0x600; coin1--; } /* Coin 1 clear */
-}
-
-void gondo_main_write(UINT16 address, UINT8 data)
-{
- switch (address)
- {
- case 0x3810:
- *soundlatch = data;
- M6502SetIRQLine(M6502_INPUT_LINE_NMI, CPU_IRQSTATUS_AUTO);
- return;
-
- case 0x3818:
- DrvPf0Ctrl[0x11] = data;
- return;
-
- case 0x3820:
- DrvPf0Ctrl[0x13] = data;
- return;
-
- case 0x3828:
- DrvPf0Ctrl[0x10] = (data >> 0) & 1;
- DrvPf0Ctrl[0x12] = (data >> 1) & 1;
- return;
-
- case 0x3830:
- bankswitch(data >> 4);
- *interrupt_enable = data & 1;
- *nmi_enable = data & 2;
- *flipscreen = data & 8;
- return;
-
- case 0x3838:
- case 0x3839:
- garyoret_i8751_write(address & 1, data);
- return;
-
- case 0x383a:
- case 0x383b:
- gondo_i8751_write(address & 1, data);
- return;
- }
-}
-
-UINT8 gondo_main_read(UINT16 address)
-{
- switch (address)
- {
- case 0x3800:
- return DrvDips[0];
-
- case 0x3801:
- return DrvDips[1];
-
- case 0x380a: return 0xff;
- case 0x380b: return 0x7f;
-// return 0xff; // gondo_player_1_r
-
- case 0x380c: return 0xff;
- case 0x380d: return 0x7f;
-// return 0xff; // gondo_player_2_r
-
- case 0x380e:
- return (DrvInputs[3] & 0x7f) | vblank;
-
- case 0x380f:
- return DrvInputs[2];
-
- case 0x3838:
- bprintf(PRINT_NORMAL, _T("3838\n")); // doesn't read these - so coins don't work
- return i8751_return >> 8;
-
- case 0x3839:
- bprintf(PRINT_NORMAL, _T("3839\n")); // doesn't read these - so coins don't work
- return i8751_return & 0xff;
- }
-
- return 0;
-}
-
-UINT8 garyoret_main_read(UINT16 address)
-{
- switch (address)
- {
- case 0x3800:
- return DrvDips[0];
-
- case 0x3801:
- return DrvDips[1];
-
- case 0x380a:
- return (DrvInputs[1] & 0x7f) | vblank;
-
- case 0x380b:
- return DrvInputs[0];
-
- case 0x383a:
- return i8751_return >> 8;
-
- case 0x383b:
- return i8751_return & 0xff;
- }
-
- return 0;
-}
-
-void gondo_sound_write(UINT16 address, UINT8 data)
-{
- switch (address)
- {
- case 0x0800:
- case 0x0801:
- case 0x2000:
- case 0x2001:
- BurnYM2203Write(0, address & 1, data);
- return;
-
- case 0x1000:
- case 0x1001:
- case 0x4000:
- case 0x4001:
- BurnYM3526Write(address & 1, data);
- return;
- }
-}
-
-static INT32 GondoDoReset()
-{
- DrvReset = 0;
-
- memset (AllRam, 0, RamEnd - AllRam);
-
- HD6309Open(0);
- HD6309Reset();
- HD6309Close();
-
- M6502Open(0);
- M6502Reset();
- M6502Close();
-
- BurnYM2203Reset();
- BurnYM3526Reset();
-
- i8751_return = 0;
- i8751_value = 0;
-
- return 0;
-}
-
-
-
-static INT32 GondoGfxDecode()
-{
- INT32 Plane0[3] = { 0x6000*8,0x4000*8,0x2000*8 };
- INT32 Plane1[4] = { 0x60000*8,0x40000*8,0x20000*8,0x00000*8 };
- INT32 XOffs0[8] = { 0, 1, 2, 3, 4, 5, 6, 7 };
- INT32 XOffs1[16]= {16*8, 1+(16*8), 2+(16*8), 3+(16*8), 4+(16*8), 5+(16*8), 6+(16*8), 7+(16*8),0,1,2,3,4,5,6,7 };
- INT32 YOffs0[16] = { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 ,8*8,9*8,10*8,11*8,12*8,13*8,14*8,15*8 };
-
- UINT8 *tmp = (UINT8*)BurnMalloc(0x80000);
- if (tmp == NULL) {
- return 1;
- }
-
- memcpy (tmp, DrvGfxROM0, 0x08000);
-
- GfxDecode(0x0400, 3, 8, 8, Plane0, XOffs0, YOffs0, 0x040, tmp, DrvGfxROM0);
-
- memcpy (tmp, DrvGfxROM1, 0x80000);
-
- GfxDecode(0x1000, 4, 16, 16, Plane1, XOffs1, YOffs0, 0x100, tmp, DrvGfxROM1);
-
- memcpy (tmp, DrvGfxROM2, 0x80000);
-
- GfxDecode(0x1000, 4, 16, 16, Plane1, XOffs1, YOffs0, 0x100, tmp, DrvGfxROM2);
-
- BurnFree (tmp);
-
- return 0;
-}
-
-static INT32 GondoInit()
-{
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (!strcmp(BurnDrvGetTextA(DRV_NAME), "garyoret")) {
- if (BurnLoadRom(DrvMainROM + 0x08000, 0, 1)) return 1;
- if (BurnLoadRom(DrvMainROM + 0x10000, 1, 1)) return 1;
- if (BurnLoadRom(DrvMainROM + 0x20000, 2, 1)) return 1;
- if (BurnLoadRom(DrvMainROM + 0x30000, 3, 1)) return 1;
- if (BurnLoadRom(DrvMainROM + 0x40000, 4, 1)) return 1;
-
- if (BurnLoadRom(DrvM6502ROM + 0x08000, 5, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x00000, 6, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM1 + 0x00000, 7, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x10000, 8, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x20000, 9, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x30000, 10, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x40000, 11, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x50000, 12, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x60000, 13, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x70000, 14, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM3 + 0x00000, 15, 1)) return 1;
- memcpy (DrvGfxROM2 + 0x00000, DrvGfxROM3 + 0x00000, 0x08000);
- memcpy (DrvGfxROM2 + 0x10000, DrvGfxROM3 + 0x08000, 0x08000);
- if (BurnLoadRom(DrvGfxROM3 + 0x00000, 16, 1)) return 1;
- memcpy (DrvGfxROM2 + 0x08000, DrvGfxROM3 + 0x00000, 0x08000);
- memcpy (DrvGfxROM2 + 0x18000, DrvGfxROM3 + 0x08000, 0x08000);
- if (BurnLoadRom(DrvGfxROM3 + 0x00000, 17, 1)) return 1;
- memcpy (DrvGfxROM2 + 0x20000, DrvGfxROM3 + 0x00000, 0x08000);
- memcpy (DrvGfxROM2 + 0x30000, DrvGfxROM3 + 0x08000, 0x08000);
- if (BurnLoadRom(DrvGfxROM3 + 0x00000, 18, 1)) return 1;
- memcpy (DrvGfxROM2 + 0x28000, DrvGfxROM3 + 0x00000, 0x08000);
- memcpy (DrvGfxROM2 + 0x38000, DrvGfxROM3 + 0x08000, 0x08000);
- if (BurnLoadRom(DrvGfxROM3 + 0x00000, 19, 1)) return 1;
- memcpy (DrvGfxROM2 + 0x40000, DrvGfxROM3 + 0x00000, 0x08000);
- memcpy (DrvGfxROM2 + 0x50000, DrvGfxROM3 + 0x08000, 0x08000);
- if (BurnLoadRom(DrvGfxROM3 + 0x00000, 20, 1)) return 1;
- memcpy (DrvGfxROM2 + 0x48000, DrvGfxROM3 + 0x00000, 0x08000);
- memcpy (DrvGfxROM2 + 0x58000, DrvGfxROM3 + 0x08000, 0x08000);
- if (BurnLoadRom(DrvGfxROM3 + 0x00000, 21, 1)) return 1;
- memcpy (DrvGfxROM2 + 0x60000, DrvGfxROM3 + 0x00000, 0x08000);
- memcpy (DrvGfxROM2 + 0x70000, DrvGfxROM3 + 0x08000, 0x08000);
- if (BurnLoadRom(DrvGfxROM3 + 0x00000, 22, 1)) return 1;
- memcpy (DrvGfxROM2 + 0x68000, DrvGfxROM3 + 0x00000, 0x08000);
- memcpy (DrvGfxROM2 + 0x78000, DrvGfxROM3 + 0x08000, 0x08000);
- } else {
- if (BurnLoadRom(DrvMainROM + 0x08000, 0, 1)) return 1;
- if (BurnLoadRom(DrvMainROM + 0x10000, 1, 1)) return 1;
- if (BurnLoadRom(DrvMainROM + 0x20000, 2, 1)) return 1;
- if (BurnLoadRom(DrvMainROM + 0x30000, 3, 1)) return 1;
-
- if (BurnLoadRom(DrvM6502ROM + 0x08000, 4, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x00000, 5, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM1 + 0x00000, 6, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x10000, 7, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x20000, 8, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x30000, 9, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x40000, 10, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x50000, 11, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x60000, 12, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x70000, 13, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM3 + 0x00000, 14, 1)) return 1;
- memcpy (DrvGfxROM2 + 0x00000, DrvGfxROM3 + 0x00000, 0x08000);
- memcpy (DrvGfxROM2 + 0x10000, DrvGfxROM3 + 0x08000, 0x08000);
- if (BurnLoadRom(DrvGfxROM2 + 0x08000, 15, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM3 + 0x00000, 16, 1)) return 1;
- memcpy (DrvGfxROM2 + 0x20000, DrvGfxROM3 + 0x00000, 0x08000);
- memcpy (DrvGfxROM2 + 0x30000, DrvGfxROM3 + 0x08000, 0x08000);
- if (BurnLoadRom(DrvGfxROM2 + 0x28000, 17, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM3 + 0x00000, 18, 1)) return 1;
- memcpy (DrvGfxROM2 + 0x40000, DrvGfxROM3 + 0x00000, 0x08000);
- memcpy (DrvGfxROM2 + 0x50000, DrvGfxROM3 + 0x08000, 0x08000);
- if (BurnLoadRom(DrvGfxROM2 + 0x48000, 19, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM3 + 0x00000, 20, 1)) return 1;
- memcpy (DrvGfxROM2 + 0x60000, DrvGfxROM3 + 0x00000, 0x08000);
- memcpy (DrvGfxROM2 + 0x70000, DrvGfxROM3 + 0x08000, 0x08000);
- if (BurnLoadRom(DrvGfxROM2 + 0x68000, 21, 1)) return 1;
- }
-
- GondoGfxDecode();
- }
-
- HD6309Init(0);
- HD6309Open(0);
- HD6309MapMemory(DrvMainRAM, 0x0000, 0x17ff, MAP_RAM);
- HD6309MapMemory(DrvVidRAM, 0x1800, 0x1fff, MAP_RAM);
- HD6309MapMemory(DrvPf0RAM, 0x2000, 0x27ff, MAP_RAM);
- HD6309MapMemory(DrvPalRAM, 0x2800, 0x2fff, MAP_RAM);//xxxxBBBBGGGGRRRR_split
- HD6309MapMemory(DrvSprRAM, 0x3000, 0x37ff, MAP_RAM);
- HD6309MapMemory(DrvMainROM + 0x10000, 0x4000, 0x7fff, MAP_ROM); // bank
- HD6309MapMemory(DrvMainROM + 0x08000, 0x8000, 0xffff, MAP_ROM);
- HD6309SetWriteHandler(gondo_main_write);
- if (!strcmp(BurnDrvGetTextA(DRV_NAME), "garyoret")) {
- HD6309SetReadHandler(garyoret_main_read);
- } else {
- HD6309SetReadHandler(gondo_main_read);
- }
- HD6309Close();
-
- M6502Init(0, TYPE_M6502);
- M6502Open(0);
- M6502MapMemory(DrvM6502RAM, 0x0000, 0x05ff, MAP_RAM);
- M6502MapMemory(DrvM6502ROM + 0x8000, 0x8000, 0xffff, MAP_ROM);
- M6502SetReadHandler(ghostb_sound_read);
- M6502SetWriteHandler(gondo_sound_write);
- M6502Close();
-
- BurnSetRefreshRate(58.00);
-
- BurnYM3526Init(3000000, &DrvYM3812FMIRQHandler, &DrvYM3812SynchroniseStream, 0);
- BurnTimerAttachM6502YM3526(1500000);
- BurnYM3526SetRoute(BURN_SND_YM3526_ROUTE, 0.70, BURN_SND_ROUTE_BOTH);
-
- BurnYM2203Init(1, 1500000, NULL, DrvYM2203SynchroniseStream, DrvYM2203GetTime, 1);
- BurnTimerAttachHD6309(12000000);
- BurnYM2203SetRoute(0, BURN_SND_YM2203_YM2203_ROUTE, 0.20, BURN_SND_ROUTE_BOTH);
- BurnYM2203SetRoute(0, BURN_SND_YM2203_AY8910_ROUTE_1, 0.23, BURN_SND_ROUTE_BOTH);
- BurnYM2203SetRoute(0, BURN_SND_YM2203_AY8910_ROUTE_2, 0.23, BURN_SND_ROUTE_BOTH);
- BurnYM2203SetRoute(0, BURN_SND_YM2203_AY8910_ROUTE_3, 0.23, BURN_SND_ROUTE_BOTH);
-
- GenericTilesInit();
-
- GondoDoReset();
-
- return 0;
-}
-
-static INT32 GondoExit()
-{
- HD6309Exit();
- BurnYM3526Exit();
- return DrvExit();
-}
-
-static void gondo_draw_txt_layer()
-{
- for (INT32 offs = 0; offs < 32 * 32; offs++)
- {
- INT32 sx = (offs & 0x1f) << 3;
- INT32 sy = (offs >> 5) << 3;
-
- sy -= 8;
- if (sy < 0 || sy >= nScreenWidth) continue;
-
- INT32 code = DrvVidRAM[offs * 2 + 1] | (DrvVidRAM[offs * 2 + 0] << 8);
- INT32 color = (code >> 12) & 7;
-
- Render8x8Tile_Mask_Clip(pTransDraw, code & 0xfff, sx, sy, color, 3, 0, 0, DrvGfxROM0);
- }
-}
-
-static void gondo_draw_layer(INT32 priority, INT32 layer)
-{
- INT32 scrolly = ((DrvPf0Ctrl[0x12] << 8) + DrvPf0Ctrl[0x13] + 8) & 0x1ff;
- INT32 scrollx = ((DrvPf0Ctrl[0x10] << 8) | DrvPf0Ctrl[0x11]);
-
- UINT16 trans = layer ? 0x00ff : 0xff00;
-
- for (INT32 offs = 0; offs < 32 * 32; offs++)
- {
- INT32 sx = (offs & 0x1f) << 4;
- INT32 sy = (offs >> 5) << 4;
-
- sx -= scrollx;
- if (sx < -15) sx+=512;
- sy -= scrolly;
- if (sy < -15) sy+=512;
-
- if (sx >= nScreenWidth || sy >= nScreenWidth) continue;
-
- INT32 code = DrvPf0RAM[offs * 2 + 1] | (DrvPf0RAM[offs * 2 + 0] << 8);
- INT32 color = code >> 12;
-
- if (priority && color < 8) continue;
-
- {
- code &= 0xfff;
- color <<= 4;
- color |= 0x300;
-
- UINT8 *src = DrvGfxROM2 + (code << 8);
- UINT16 *dst;
-
- for (INT32 y = 0; y < 16; y++, src+=16, sy++)
- {
- if (sy < 0 || sy >= nScreenHeight) continue;
-
- dst = pTransDraw + sy * nScreenWidth;
-
- INT32 xx = sx;
- for (INT32 x = 0; x < 16; x++, xx++)
- {
- if (xx < 0 || xx >= nScreenWidth) continue;
-
- INT32 pxl = src[x];
-
- if (trans & (1 << pxl)) continue;
-
- dst[xx] = pxl | color;
- }
- }
- }
- }
-}
-
-static void GondoPaletteRecalc()
-{
- UINT8 r,g,b;
- for (INT32 i = 0; i < 0x400; i++) {
- INT32 d = (DrvPalRAM[i + 0]) | (DrvPalRAM[i + 0x400] << 8);
- r = (d >> 0) & 0x0f;
- g = (d >> 4) & 0x0f;
- b = (d >> 8) & 0x0f;
-
- r |= r << 4;
- g |= g << 4;
- b |= b << 4;
-
- DrvPalette[i] = BurnHighCol(r, g, b, 0);
- }
-}
-
-static INT32 GondoDraw()
-{
- if (DrvRecalc) {
- GondoPaletteRecalc();
- }
-
- gondo_draw_layer(0, 1);
- draw_sprites1(2);
- gondo_draw_layer(0, 0);
- draw_sprites1(1);
- gondo_draw_txt_layer();
-
- BurnTransferCopy(DrvPalette);
-
- return 0;
-}
-
-static INT32 GaryoretDraw()
-{
- if (DrvRecalc) {
- GondoPaletteRecalc();
- }
-
- gondo_draw_layer(0, 1);
- gondo_draw_layer(0, 0);
- draw_sprites1(0);
- gondo_draw_layer(1, 1);
- gondo_draw_layer(1, 0);
-
- gondo_draw_txt_layer();
-
- BurnTransferCopy(DrvPalette);
-
- return 0;
-}
-
-static INT32 GondoFrame()
-{
- if (DrvReset) {
- GondoDoReset();
- }
-
- HD6309NewFrame();
- M6502NewFrame();
-
- {
- memset (DrvInputs, 0xff, 5);
- for (INT32 i = 0; i < 8; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- DrvInputs[2] ^= (DrvJoy3[i] & 1) << i;
- DrvInputs[3] ^= (DrvJoy4[i] & 1) << i;
- DrvInputs[4] ^= (DrvJoy5[i] & 1) << i;
- }
- }
-
- INT32 nInterleave = 272;
- INT32 nCyclesTotal[2] = { 12000000 / 58, 1500000 / 58 };
-
- M6502Open(0);
- HD6309Open(0);
-
- //vblank = 0x00;
-
- for (INT32 i = 0; i < nInterleave; i++)
- {
- if (i == 7) vblank = 0;
-
- if (i == 270) {
- vblank = 0x80;
- if (*nmi_enable) HD6309SetIRQLine(0x20, CPU_IRQSTATUS_AUTO);
- }
-
- BurnTimerUpdate((i + 1) * (nCyclesTotal[0] / nInterleave));
- BurnTimerUpdateYM3526((i + 1) * (nCyclesTotal[1] / nInterleave));
- }
-
- BurnTimerEndFrame(nCyclesTotal[0]);
- BurnTimerEndFrameYM3526(nCyclesTotal[1]);
-
- if (pBurnSoundOut) {
- BurnYM3526Update(pBurnSoundOut, nBurnSoundLen);
- BurnYM2203Update(pBurnSoundOut, nBurnSoundLen);
- }
-
- HD6309Close();
- M6502Close();
-
- if (pBurnDraw) {
- BurnDrvRedraw();
- }
-
- memcpy (DrvSprBuf, DrvSprRAM, 0x800);
-
- return 0;
-}
-
-static INT32 GondoScan(INT32 nAction, INT32 *pnMin)
-{
- if (nAction & ACB_DRIVER_DATA) {
- HD6309Scan(nAction);
- BurnYM3526Scan(nAction, pnMin);
- SCAN_VAR(RomBank);
-
- if (nAction & ACB_WRITE) {
- HD6309Open(0);
- HD6309MapMemory(DrvMainROM + 0x10000 + RomBank, 0x4000, 0x7fff, MAP_ROM);
- HD6309Close();
- }
- }
-
- return DrvScan(nAction, pnMin);
-}
-
-
-// Gondomania (US)
-
-static struct BurnRomInfo gondoRomDesc[] = {
- { "dt-00.256", 0x08000, 0xa8cf9118, 1 }, // 0 maincpu
- { "dt-01.512", 0x10000, 0xc39bb877, 1 }, // 1
- { "dt-02.512", 0x10000, 0xbb5e674b, 1 }, // 2
- { "dt-03.512", 0x10000, 0x99c32b13, 1 }, // 3
-
- { "dt-05.256", 0x08000, 0xec08aa29, 2 }, // 4 audiocpu
-
- { "dt-14.256", 0x08000, 0x4bef16e1, 3 }, // 5 gfx1
-
- { "dt-19.512", 0x10000, 0xda2abe4b, 4 }, // 6 gfx2
- { "dt-20.256", 0x08000, 0x42d01002, 4 }, // 7
- { "dt-16.512", 0x10000, 0xe9955d8f, 4 }, // 8
- { "dt-18.256", 0x08000, 0xc0c5df1c, 4 }, // 9
- { "dt-15.512", 0x10000, 0xa54b2eb6, 4 }, // 10
- { "dt-17.256", 0x08000, 0x3bbcff0d, 4 }, // 11
- { "dt-21.512", 0x10000, 0x1c5f682d, 4 }, // 12
- { "dt-22.256", 0x08000, 0xc1876a5f, 4 }, // 13
-
- { "dt-08.512", 0x10000, 0xaec483f5, 5 }, // 14 gfx3
- { "dt-09.256", 0x08000, 0x446f0ce0, 5 }, // 15
- { "dt-06.512", 0x10000, 0x3fe1527f, 5 }, // 16
- { "dt-07.256", 0x08000, 0x61f9bce5, 5 }, // 17
- { "dt-12.512", 0x10000, 0x1a72ca8d, 5 }, // 18
- { "dt-13.256", 0x08000, 0xccb81aec, 5 }, // 19
- { "dt-10.512", 0x10000, 0xcfcfc9ed, 5 }, // 20
- { "dt-11.256", 0x08000, 0x53e9cf17, 5 }, // 21
-
- { "dt-a.b1", 0x01000, 0x03abceeb, 6 }, // 22 mcu
-
- { "ds-23.b10", 0x00400, 0xdcbfec4e, 7 }, // 23 proms
-};
-
-STD_ROM_PICK(gondo)
-STD_ROM_FN(gondo)
-
-struct BurnDriverD BurnDrvGondo = {
- "gondo", NULL, NULL, NULL, "1987",
- "Gondomania (US)\0", "Broken inputs", "Data East USA", "DEC8",
- NULL, NULL, NULL, NULL,
- BDF_ORIENTATION_VERTICAL, 2, HARDWARE_PREFIX_DATAEAST, GBF_VERSHOOT, 0,
- NULL, gondoRomInfo, gondoRomName, NULL, NULL, GondoInputInfo, GondoDIPInfo,
- GondoInit, GondoExit, GondoFrame, GondoDraw, GondoScan, &DrvRecalc, 0x400,
- 240, 256, 3, 4
-};
-
-
-// Makyou Senshi (Japan)
-
-static struct BurnRomInfo makyosenRomDesc[] = {
- { "ds00.f3", 0x08000, 0x33bb16fe, 1 }, // 0 maincpu
- { "dt-01.512", 0x10000, 0xc39bb877, 1 }, // 1
- { "ds02.f6", 0x10000, 0x925307a4, 1 }, // 2
- { "ds03.f7", 0x10000, 0x9c0fcbf6, 1 }, // 3
-
- { "ds05.h5", 0x08000, 0xe6e28ca9, 2 }, // 4 audiocpu
-
- { "ds14.b18", 0x08000, 0x00cbe9c8, 3 }, // 5 gfx1
-
- { "dt-19.512", 0x10000, 0xda2abe4b, 4 }, // 6 gfx2
- { "ds20.f15", 0x08000, 0x0eef7f56, 4 }, // 7
- { "dt-16.512", 0x10000, 0xe9955d8f, 4 }, // 8
- { "ds18.f12", 0x08000, 0x2b2d1468, 4 }, // 9
- { "dt-15.512", 0x10000, 0xa54b2eb6, 4 }, // 10
- { "ds17.f11", 0x08000, 0x75ae349a, 4 }, // 11
- { "dt-21.512", 0x10000, 0x1c5f682d, 4 }, // 12
- { "ds22.f18", 0x08000, 0xc8ffb148, 4 }, // 13
-
- { "dt-08.512", 0x10000, 0xaec483f5, 5 }, // 14 gfx3
- { "dt-09.256", 0x08000, 0x446f0ce0, 5 }, // 15
- { "dt-06.512", 0x10000, 0x3fe1527f, 5 }, // 16
- { "dt-07.256", 0x08000, 0x61f9bce5, 5 }, // 17
- { "dt-12.512", 0x10000, 0x1a72ca8d, 5 }, // 18
- { "dt-13.256", 0x08000, 0xccb81aec, 5 }, // 19
- { "dt-10.512", 0x10000, 0xcfcfc9ed, 5 }, // 20
- { "dt-11.256", 0x08000, 0x53e9cf17, 5 }, // 21
-
- { "ds-a.b1", 0x01000, 0xf61b77cf, 6 }, // 22 mcu
-
- { "ds-23.b10", 0x00400, 0xdcbfec4e, 7 }, // 23 proms
-
- { "pal16r4nc.u10", 0x00104, 0x00000000, 8 | BRF_NODUMP }, // 24 plds
- { "pal16r4nc.g11", 0x00104, 0x00000000, 8 | BRF_NODUMP }, // 25
- { "pal16r4nc.s1", 0x00104, 0x00000000, 8 | BRF_NODUMP }, // 26
-};
-
-STD_ROM_PICK(makyosen)
-STD_ROM_FN(makyosen)
-
-struct BurnDriverD BurnDrvMakyosen = {
- "makyosen", "gondo", NULL, NULL, "1987",
- "Makyou Senshi (Japan)\0", "Broken inputs", "Data East Corporation", "DEC8",
- NULL, NULL, NULL, NULL,
- BDF_CLONE | BDF_ORIENTATION_VERTICAL, 2, HARDWARE_PREFIX_DATAEAST, GBF_VERSHOOT, 0,
- NULL, makyosenRomInfo, makyosenRomName, NULL, NULL, GondoInputInfo, GondoDIPInfo,
- GondoInit, GondoExit, GondoFrame, GondoDraw, GondoScan, &DrvRecalc, 0x400,
- 240, 256, 3, 4
-};
-
-
-
-// Garyo Retsuden (Japan)
-
-static struct BurnRomInfo garyoretRomDesc[] = {
- { "dv00", 0x08000, 0xcceaaf05, 1 }, // 0 maincpu
- { "dv01", 0x10000, 0xc33fc18a, 1 }, // 1
- { "dv02", 0x10000, 0xf9e26ce7, 1 }, // 2
- { "dv03", 0x10000, 0x55d8d699, 1 }, // 3
- { "dv04", 0x10000, 0xed3d00ee, 1 }, // 4
-
- { "dv05", 0x08000, 0xc97c347f, 2 }, // 5 audiocpu
-
- { "dv14", 0x08000, 0xfb2bc581, 3 }, // 6 gfx1
-
- { "dv22", 0x10000, 0xcef0367e, 4 }, // 7 gfx2
- { "dv21", 0x08000, 0x90042fb7, 4 }, // 8
- { "dv20", 0x10000, 0x451a2d8c, 4 }, // 9
- { "dv19", 0x08000, 0x14e1475b, 4 }, // 10
- { "dv18", 0x10000, 0x7043bead, 4 }, // 11
- { "dv17", 0x08000, 0x28f449d7, 4 }, // 12
- { "dv16", 0x10000, 0x37e4971e, 4 }, // 13
- { "dv15", 0x08000, 0xca41b6ac, 4 }, // 14
-
- { "dv08", 0x10000, 0x89c13e15, 5 }, // 15 gfx3
- { "dv09", 0x10000, 0x6a345a23, 5 }, // 16
- { "dv06", 0x10000, 0x1eb52a20, 5 }, // 17
- { "dv07", 0x10000, 0xe7346ef8, 5 }, // 18
- { "dv12", 0x10000, 0x46ba5af4, 5 }, // 19
- { "dv13", 0x10000, 0xa7af6dfd, 5 }, // 20
- { "dv10", 0x10000, 0x68b6d75c, 5 }, // 21
- { "dv11", 0x10000, 0xb5948aee, 5 }, // 22
-
- { "dv__.mcu", 0x01000, 0x37cacec6, 6 | BRF_OPT }, // 23 mcu
-};
-
-STD_ROM_PICK(garyoret)
-STD_ROM_FN(garyoret)
-
-struct BurnDriver BurnDrvGaryoret = {
- "garyoret", NULL, NULL, NULL, "1987",
- "Garyo Retsuden (Japan)\0", NULL, "Data East Corporation", "DEC8",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_PREFIX_DATAEAST, GBF_SHOOT, 0,
- NULL, garyoretRomInfo, garyoretRomName, NULL, NULL, GaryoretInputInfo, GaryoretDIPInfo,
- GondoInit, GondoExit, GondoFrame, GaryoretDraw, GondoScan, &DrvRecalc, 0x400,
- 256, 240, 4, 3
-};
-
-
-
-
-
-
-
-UINT8 oscar_main_read(UINT16 address)
-{
- switch (address)
- {
- case 0x3c00: // in0
- return DrvInputs[0];
-
- case 0x3c01:
- return DrvInputs[1];
-
- case 0x3c02:
- return (DrvInputs[2] & 0x7f) | vblank;
-
- case 0x3c03:
- return DrvDips[0];
-
- case 0x3c04:
- return DrvDips[1];
- }
-
- return 0;
-}
-
-void oscar_main_write(UINT16 address, UINT8 data)
-{
- switch (address)
- {
- case 0x3c80:
- memcpy (DrvSprBuf, DrvSprRAM, 0x800);
- return;
-
- case 0x3d00:
- bankswitch(data);
- return;
-
- case 0x3d80:
- *soundlatch = data;
- M6502SetIRQLine(M6502_INPUT_LINE_NMI, CPU_IRQSTATUS_AUTO);
- return;
-
- case 0x3e80:
- HD6309Close();
- HD6309Open(1);
- HD6309SetIRQLine(0, CPU_IRQSTATUS_ACK);
- HD6309Close();
- HD6309Open(0);
- return;
-
- case 0x3e81:
- HD6309SetIRQLine(0, CPU_IRQSTATUS_NONE);
- return;
-
- case 0x3e82:
- HD6309SetIRQLine(0, CPU_IRQSTATUS_ACK);
- return;
-
- case 0x3e83:
- HD6309Close();
- HD6309Open(1);
- HD6309SetIRQLine(0, CPU_IRQSTATUS_NONE);
- HD6309Close();
- HD6309Open(0);
- return;
- }
-
- if ((address & 0xffe0) == 0x3c00) {
- DrvPf0Ctrl[address & 0x1f] = data;
- return;
- }
-}
-
-
-void oscar_sub_write(UINT16 address, UINT8 )
-{
- switch (address)
- {
- case 0x3e80:
- HD6309SetIRQLine(0, CPU_IRQSTATUS_ACK);
- HD6309Close();
- HD6309Open(0);
- return;
-
- case 0x3e81:
- HD6309Close();
- HD6309Open(0);
- HD6309SetIRQLine(0, CPU_IRQSTATUS_NONE);
- HD6309Close();
- HD6309Open(1);
- return;
-
- case 0x3e82:
- HD6309Close();
- HD6309Open(0);
- HD6309SetIRQLine(0, CPU_IRQSTATUS_ACK);
- HD6309Close();
- HD6309Open(1);
- return;
-
- case 0x3e83:
- HD6309SetIRQLine(0, CPU_IRQSTATUS_NONE);
- return;
- }
-}
-
-static INT32 OscarDoReset()
-{
- DrvReset = 0;
-
- memset (AllRam, 0, RamEnd - AllRam);
-
- HD6309Open(0);
- HD6309Reset();
- HD6309Close();
-
- HD6309Open(1);
- HD6309Reset();
- HD6309Close();
-
- M6502Open(0);
- M6502Reset();
- M6502Close();
-
- BurnYM2203Reset();
- BurnYM3526Reset();
-
- i8751_return = 0;
- i8751_value = 0;
-
- return 0;
-}
-
-static INT32 OscarGfxDecode()
-{
- INT32 Plane0[3] = { 0x3000*8,0x2000*8,0x1000*8 };
- INT32 Plane1[4] = { 0x60000*8,0x40000*8,0x20000*8,0x00000*8 };
- INT32 XOffs0[8] = { 0, 1, 2, 3, 4, 5, 6, 7 };
- INT32 XOffs1[16]= {16*8, 1+(16*8), 2+(16*8), 3+(16*8), 4+(16*8), 5+(16*8), 6+(16*8), 7+(16*8),0,1,2,3,4,5,6,7 };
- INT32 YOffs0[16] = { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 ,8*8,9*8,10*8,11*8,12*8,13*8,14*8,15*8 };
-
- UINT8 *tmp = (UINT8*)BurnMalloc(0x80000);
- if (tmp == NULL) {
- return 1;
- }
-
- memcpy (tmp, DrvGfxROM0, 0x08000);
-
- GfxDecode(0x0400, 3, 8, 8, Plane0, XOffs0, YOffs0, 0x040, tmp, DrvGfxROM0);
-
- memcpy (tmp, DrvGfxROM1, 0x80000);
-
- GfxDecode(0x1000, 4, 16, 16, Plane1, XOffs1, YOffs0, 0x100, tmp, DrvGfxROM1);
-
- memcpy (tmp, DrvGfxROM2, 0x80000);
-
- GfxDecode(0x1000, 4, 16, 16, Plane1, XOffs1, YOffs0, 0x100, tmp, DrvGfxROM2);
-
- BurnFree (tmp);
-
- return 0;
-}
-
-static INT32 OscarInit()
-{
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(DrvMainROM + 0x08000, 0, 1)) return 1;
- if (BurnLoadRom(DrvMainROM + 0x10000, 1, 1)) return 1;
-
- if (BurnLoadRom(DrvSubROM + 0x00000, 2, 1)) return 1;
-
- if (BurnLoadRom(DrvM6502ROM + 0x08000, 3, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x00000, 4, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM1 + 0x00000, 5, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x20000, 6, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x40000, 7, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x60000, 8, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM2 + 0x00000, 9, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x20000, 10, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x40000, 11, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x60000, 12, 1)) return 1;
-
- Deco222Decode();
- OscarGfxDecode();
- }
-
- HD6309Init(0);
- HD6309Open(0);
- HD6309MapMemory(DrvMainRAM, 0x0000, 0x1fff, MAP_RAM); // all shared?
- HD6309MapMemory(DrvVidRAM, 0x2000, 0x28ff, MAP_RAM);
- HD6309MapMemory(DrvPf0RAM, 0x2800, 0x2fff, MAP_RAM);
- HD6309MapMemory(DrvSprRAM, 0x3000, 0x37ff, MAP_RAM);
- HD6309MapMemory(DrvPalRAM, 0x3800, 0x3bff, MAP_RAM); // xxxxBBBBGGGGRRRR_be_w
- HD6309MapMemory(DrvMainROM + 0x10000, 0x4000, 0x7fff, MAP_ROM); // bank
- HD6309MapMemory(DrvMainROM + 0x08000, 0x8000, 0xffff, MAP_ROM);
- HD6309SetWriteHandler(oscar_main_write);
- HD6309SetReadHandler(oscar_main_read);
- HD6309Close();
-
- HD6309Init(1);
- HD6309Open(1);
- HD6309MapMemory(DrvMainRAM, 0x0000, 0x0eff, MAP_RAM); // all shared? AM_RANGE(0x0f00, 0x0fff) AM_RAM not?
- HD6309MapMemory(DrvPalRAM + 0x400, 0x0f00, 0x0fff, MAP_RAM); // not really pal...
- HD6309MapMemory(DrvMainRAM + 0x1000, 0x1000, 0x1fff, MAP_RAM); // all shared? AM_RANGE(0x0f00, 0x0fff) AM_RAM not?
- HD6309MapMemory(DrvSubROM + 0x04000, 0x4000, 0xffff, MAP_ROM);
- HD6309SetWriteHandler(oscar_sub_write); // 0x3e80, 0x3e83 used...
- HD6309Close();
-
- M6502Init(0, TYPE_M6502);
- M6502Open(0);
- M6502MapMemory(DrvM6502RAM, 0x0000, 0x05ff, MAP_RAM);
- M6502MapMemory(DrvM6502ROM + 0x8000, 0x8000, 0xffff, MAP_READ);
- M6502MapMemory(DrvM6502OPS + 0x8000, 0x8000, 0xffff, MAP_FETCH);
- M6502SetReadHandler(ghostb_sound_read);
- M6502SetWriteHandler(gondo_sound_write);
- M6502Close();
-
- BurnSetRefreshRate(58.00);
-
- BurnYM3526Init(3000000, &DrvYM3812FMIRQHandler, &DrvYM3812SynchroniseStream, 0);
- BurnTimerAttachM6502YM3526(1500000);
- BurnYM3526SetRoute(BURN_SND_YM3526_ROUTE, 0.70, BURN_SND_ROUTE_BOTH);
-
- BurnYM2203Init(1, 1500000, NULL, DrvYM2203SynchroniseStream6000000, DrvYM2203GetTime6000000, 1);
- BurnTimerAttachHD6309(6000000);
- BurnYM2203SetRoute(0, BURN_SND_YM2203_YM2203_ROUTE, 0.20, BURN_SND_ROUTE_BOTH);
- BurnYM2203SetRoute(0, BURN_SND_YM2203_AY8910_ROUTE_1, 0.23, BURN_SND_ROUTE_BOTH);
- BurnYM2203SetRoute(0, BURN_SND_YM2203_AY8910_ROUTE_2, 0.23, BURN_SND_ROUTE_BOTH);
- BurnYM2203SetRoute(0, BURN_SND_YM2203_AY8910_ROUTE_3, 0.23, BURN_SND_ROUTE_BOTH);
-
- GenericTilesInit();
-
- OscarDoReset();
-
- return 0;
-}
-
-static void oscar_draw_txt_layer()
-{
- for (INT32 offs = 0; offs < 32 * 32; offs++)
- {
- INT32 sx = (offs & 0x1f) << 3;
- INT32 sy = (offs >> 5) << 3;
-
- sy -= 8;
- if (sy < 0 || sy >= nScreenHeight) continue;
-
- INT32 code = (DrvVidRAM[offs * 2 + 1]) | (DrvVidRAM[offs * 2 + 0] << 8);
- INT32 color = code >> 14;
-
- Render8x8Tile_Mask(pTransDraw, code & 0x3ff, sx, sy, color, 3, 0, 0x100, DrvGfxROM0);
- }
-}
-
-static INT32 OscarDraw()
-{
- if (DrvRecalc) {
- UINT8 r,g,b;
- for (INT32 i = 0; i < 0x400; i+=2) {
- INT32 d = (DrvPalRAM[i + 0] << 8) | DrvPalRAM[i + 1];
- r = (d >> 0) & 0x0f;
- g = (d >> 4) & 0x0f;
- b = (d >> 8) & 0x0f;
-
- r |= r << 4;
- g |= g << 4;
- b |= b << 4;
-
- DrvPalette[i/2] = BurnHighCol(r, g, b, 0);
- }
- }
-
- draw_bg_layer(DrvPf0RAM, DrvPf0Ctrl, DrvGfxROM2, 0x180, 0x07, 0x7ff, 0x0000, 0);
- draw_sprites2(0xf, 0, 0);
- draw_bg_layer(DrvPf0RAM, DrvPf0Ctrl, DrvGfxROM2, 0x180, 0x07, 0x7ff, 0x00ff, 0x08);
- oscar_draw_txt_layer();
-
- BurnTransferCopy(DrvPalette);
-
- return 0;
-}
-
-static INT32 OscarFrame()
-{
- if (DrvReset) {
- OscarDoReset();
- }
-
- HD6309NewFrame();
- M6502NewFrame();
-
- {
- memset (DrvInputs, 0xff, 5);
- for (INT32 i = 0; i < 8; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- DrvInputs[2] ^= (DrvJoy3[i] & 1) << i;
- DrvInputs[3] ^= (DrvJoy4[i] & 1) << i;
- DrvInputs[4] ^= (DrvJoy5[i] & 1) << i;
- }
- }
-
- INT32 nInterleave = 256;
- INT32 nCyclesTotal[3] = { 6000000 / 58, 6000000 / 58, 1500000 / 58 };
- //INT32 nCyclesDone[3] = { 0, 0, 0 };
- memset(nCyclesDone, 0, sizeof(nCyclesDone));
-
- M6502Open(0);
-
- vblank = 0x80;
-
- for (INT32 i = 0; i < nInterleave; i++)
- {
- if (i == 8) vblank = 0;
-
- HD6309Open(0);
- INT32 nSegment = (nCyclesTotal[0] / nInterleave) * (i + 1);
- nCyclesDone[0] += HD6309Run(nSegment - nCyclesDone[0]);
-
- if (i == 247) {
- static INT32 latch = 1;
- if ((DrvInputs[2] & 7) == 7) latch = 1;
- if ((DrvInputs[2] & 7) != 7 && latch) {
- latch = 0;
- HD6309SetIRQLine(0x20, CPU_IRQSTATUS_AUTO);
- }
- vblank = 0x80;
- }
-
- HD6309Close();
-
- HD6309Open(1);
- BurnTimerUpdate((i + 1) * (nCyclesTotal[1] / nInterleave));
- HD6309Close();
- BurnTimerUpdateYM3526((i + 1) * (nCyclesTotal[2] / nInterleave));
- }
-
- HD6309Open(1);
-
- BurnTimerEndFrame(nCyclesTotal[1]);
- BurnTimerEndFrameYM3526(nCyclesTotal[2]);
-
- if (pBurnSoundOut) {
- BurnYM3526Update(pBurnSoundOut, nBurnSoundLen);
- BurnYM2203Update(pBurnSoundOut, nBurnSoundLen);
- }
-
- M6502Close();
- HD6309Close();
-
- if (pBurnDraw) {
- OscarDraw();
- }
-
- return 0;
-}
-
-
-// Psycho-Nics Oscar (World revision 0)
-
-static struct BurnRomInfo oscarRomDesc[] = {
- { "du10", 0x08000, 0x120040d8, 1 }, // 0 maincpu
- { "ed09", 0x10000, 0xe2d4bba9, 1 }, // 1
-
- { "du11", 0x10000, 0xff45c440, 2 }, // 2 sub
-
- { "ed12", 0x08000, 0x432031c5, 3 }, // 3 audiocpu
-
- { "ed08", 0x04000, 0x308ac264, 4 }, // 4 gfx1
-
- { "ed04", 0x10000, 0x416a791b, 5 }, // 5 gfx2
- { "ed05", 0x10000, 0xfcdba431, 5 }, // 6
- { "ed06", 0x10000, 0x7d50bebc, 5 }, // 7
- { "ed07", 0x10000, 0x8fdf0fa5, 5 }, // 8
-
- { "ed01", 0x10000, 0xd3a58e9e, 6 }, // 9 gfx3
- { "ed03", 0x10000, 0x4fc4fb0f, 6 }, // 10
- { "ed00", 0x10000, 0xac201f2d, 6 }, // 11
- { "ed02", 0x10000, 0x7ddc5651, 6 }, // 12
-
- { "id8751h.mcu", 0x01000, 0x00000000, 7 | BRF_NODUMP }, // 13 mcu
-};
-
-STD_ROM_PICK(oscar)
-STD_ROM_FN(oscar)
-
-struct BurnDriver BurnDrvOscar = {
- "oscar", NULL, NULL, NULL, "1988",
- "Psycho-Nics Oscar (World revision 0)\0", NULL, "Data East Corporation", "DEC8",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_PREFIX_DATAEAST, GBF_SHOOT, 0,
- NULL, oscarRomInfo, oscarRomName, NULL, NULL, OscarInputInfo, OscarDIPInfo,
- OscarInit, GondoExit, OscarFrame, OscarDraw, GondoScan, &DrvRecalc, 0x200,
- 256, 240, 4, 3
-};
-
-
-// Psycho-Nics Oscar (US)
-
-static struct BurnRomInfo oscaruRomDesc[] = {
- { "ed10", 0x08000, 0xf9b0d4d4, 1 }, // 0 maincpu
- { "ed09", 0x10000, 0xe2d4bba9, 1 }, // 1
-
- { "ed11", 0x10000, 0x10e5d919, 2 }, // 2 sub
-
- { "ed12", 0x08000, 0x432031c5, 3 }, // 3 audiocpu
-
- { "ed08", 0x04000, 0x308ac264, 4 }, // 4 gfx1
-
- { "ed04", 0x10000, 0x416a791b, 5 }, // 5 gfx2
- { "ed05", 0x10000, 0xfcdba431, 5 }, // 6
- { "ed06", 0x10000, 0x7d50bebc, 5 }, // 7
- { "ed07", 0x10000, 0x8fdf0fa5, 5 }, // 8
-
- { "ed01", 0x10000, 0xd3a58e9e, 6 }, // 9 gfx3
- { "ed03", 0x10000, 0x4fc4fb0f, 6 }, // 10
- { "ed00", 0x10000, 0xac201f2d, 6 }, // 11
- { "ed02", 0x10000, 0x7ddc5651, 6 }, // 12
-
- { "id8751h.mcu", 0x01000, 0x00000000, 7 | BRF_NODUMP }, // 13 mcu
-
- { "du-13.bin", 0x00200, 0xbea1f87e, 8 }, // 14 proms
-};
-
-STD_ROM_PICK(oscaru)
-STD_ROM_FN(oscaru)
-
-struct BurnDriver BurnDrvOscaru = {
- "oscaru", "oscar", NULL, NULL, "1987",
- "Psycho-Nics Oscar (US)\0", NULL, "Data East USA", "DEC8",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_DATAEAST, GBF_SHOOT, 0,
- NULL, oscaruRomInfo, oscaruRomName, NULL, NULL, OscarInputInfo, OscaruDIPInfo,
- OscarInit, GondoExit, OscarFrame, OscarDraw, GondoScan, &DrvRecalc, 0x200,
- 256, 240, 4, 3
-};
-
-
-// Psycho-Nics Oscar (Japan revision 1)
-
-static struct BurnRomInfo oscarj1RomDesc[] = {
- { "du10-1", 0x08000, 0x4ebc9f7a, 1 }, // 0 maincpu
- { "ed09", 0x10000, 0xe2d4bba9, 1 }, // 1
-
- { "du11", 0x10000, 0xff45c440, 2 }, // 2 sub
-
- { "ed12", 0x08000, 0x432031c5, 3 }, // 3 audiocpu
-
- { "ed08", 0x04000, 0x308ac264, 4 }, // 4 gfx1
-
- { "ed04", 0x10000, 0x416a791b, 5 }, // 5 gfx2
- { "ed05", 0x10000, 0xfcdba431, 5 }, // 6
- { "ed06", 0x10000, 0x7d50bebc, 5 }, // 7
- { "ed07", 0x10000, 0x8fdf0fa5, 5 }, // 8
-
- { "ed01", 0x10000, 0xd3a58e9e, 6 }, // 9 gfx3
- { "ed03", 0x10000, 0x4fc4fb0f, 6 }, // 10
- { "ed00", 0x10000, 0xac201f2d, 6 }, // 11
- { "ed02", 0x10000, 0x7ddc5651, 6 }, // 12
-
- { "id8751h.mcu", 0x01000, 0x00000000, 7 | BRF_NODUMP }, // 13 mcu
-
- { "du-13.bin", 0x00200, 0xbea1f87e, 8 }, // 14 proms
-};
-
-STD_ROM_PICK(oscarj1)
-STD_ROM_FN(oscarj1)
-
-struct BurnDriver BurnDrvOscarj1 = {
- "oscarj1", "oscar", NULL, NULL, "1987",
- "Psycho-Nics Oscar (Japan revision 1)\0", NULL, "Data East Corporation", "DEC8",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_DATAEAST, GBF_SHOOT, 0,
- NULL, oscarj1RomInfo, oscarj1RomName, NULL, NULL, OscarInputInfo, OscaruDIPInfo,
- OscarInit, GondoExit, OscarFrame, OscarDraw, GondoScan, &DrvRecalc, 0x200,
- 256, 240, 4, 3
-};
-
-
-// Psycho-Nics Oscar (Japan revision 2)
-
-static struct BurnRomInfo oscarj2RomDesc[] = {
- { "du10-2", 0x08000, 0x114e898d, 1 }, // 0 maincpu
- { "ed09", 0x10000, 0xe2d4bba9, 1 }, // 1
-
- { "du11", 0x10000, 0xff45c440, 2 }, // 2 sub
-
- { "ed12", 0x08000, 0x432031c5, 3 }, // 3 audiocpu
-
- { "ed08", 0x04000, 0x308ac264, 4 }, // 4 gfx1
-
- { "ed04", 0x10000, 0x416a791b, 5 }, // 5 gfx2
- { "ed05", 0x10000, 0xfcdba431, 5 }, // 6
- { "ed06", 0x10000, 0x7d50bebc, 5 }, // 7
- { "ed07", 0x10000, 0x8fdf0fa5, 5 }, // 8
-
- { "ed01", 0x10000, 0xd3a58e9e, 6 }, // 9 gfx3
- { "ed03", 0x10000, 0x4fc4fb0f, 6 }, // 10
- { "ed00", 0x10000, 0xac201f2d, 6 }, // 11
- { "ed02", 0x10000, 0x7ddc5651, 6 }, // 12
-
- { "id8751h.mcu", 0x01000, 0x00000000, 7 | BRF_NODUMP }, // 13 mcu
-
- { "du-13.bin", 0x00200, 0xbea1f87e, 8 }, // 14 proms
-};
-
-STD_ROM_PICK(oscarj2)
-STD_ROM_FN(oscarj2)
-
-struct BurnDriver BurnDrvOscarj2 = {
- "oscarj2", "oscar", NULL, NULL, "1987",
- "Psycho-Nics Oscar (Japan revision 2)\0", NULL, "Data East Corporation", "DEC8",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_DATAEAST, GBF_SHOOT, 0,
- NULL, oscarj2RomInfo, oscarj2RomName, NULL, NULL, OscarInputInfo, OscaruDIPInfo,
- OscarInit, GondoExit, OscarFrame, OscarDraw, GondoScan, &DrvRecalc, 0x200,
- 256, 240, 4, 3
-};
-
-
-
-
-
-
-static void lastmiss_i8751_write(INT32 offset, INT32 data)
-{
- static INT32 coin, latch = 0, snd;
- i8751_return = 0;
-
- INT32 coininp = DrvInputs[2] & 3; //(~DrvInputs[2]) & 3;
-
- switch (offset)
- {
- case 0:
- i8751_value = (i8751_value & 0xff) | (data << 8);
- M6809SetIRQLine(1, CPU_IRQSTATUS_AUTO); /* Signal main cpu */
- break;
-
- case 1:
- i8751_value = (i8751_value & 0xff00) | data;
- break;
- }
-
- if (offset == 0)
- {
- if (coininp == 3 && !latch) latch = 1;
- if (coininp != 3 && latch) {coin++; latch = 0; snd = 0x400; i8751_return = 0x400; return;}
- if (i8751_value == 0x007a) i8751_return = 0x0185; /* Japan ID code */
- if (i8751_value == 0x007b) i8751_return = 0x0184; /* USA ID code */
- if (i8751_value == 0x0001) {coin = snd = 0;}//???
- if (i8751_value == 0x0000) {i8751_return = 0x0184;}//???
- if (i8751_value == 0x0401) i8751_return = 0x0184; //???
- if ((i8751_value >> 8) == 0x01) i8751_return = 0x0184; /* Coinage setup */
- if ((i8751_value >> 8) == 0x02) {i8751_return = snd | ((coin / 10) << 4) | (coin % 10); snd = 0;} /* Coin return */
- if ((i8751_value >> 8) == 0x03 && coin) {i8751_return = 0; coin--; } /* Coin clear */
- }
-}
-
-static void shackled_i8751_write(INT32 offset, INT32 data)
-{
- static INT32 coin1, coin2, latch = 0;
- i8751_return = 0;
-
- INT32 coininp = DrvInputs[2] & 3;
-
- switch (offset)
- {
- case 0: /* High byte */
- i8751_value = (i8751_value & 0xff) | (data << 8);
- M6809SetIRQLine(1, CPU_IRQSTATUS_AUTO); /* Signal main cpu */
- break;
- case 1: /* Low byte */
- i8751_value = (i8751_value & 0xff00) | data;
- break;
- }
-
- /* Coins are controlled by the i8751 */
- if (!latch) {latch = 1; coin1 = coin2 = 0;}
- if ((coininp & 1) != 1 && latch) {coin1 = 1; latch = 0;}
- if ((coininp & 2) != 2 && latch) {coin2 = 1; latch = 0;}
-
- if (i8751_value == 0x0050) i8751_return = 0; /* Breywood ID */
- if (i8751_value == 0x0051) i8751_return = 0; /* Shackled ID */
- if (i8751_value == 0x0102) i8751_return = 0; /* ?? */
- if (i8751_value == 0x0101) i8751_return = 0; /* ?? */
- if (i8751_value == 0x8101) i8751_return = ((coin2 / 10) << 4) | (coin2 % 10) |
- ((((coin1 / 10) << 4) | (coin1 % 10)) << 8); /* Coins */
-}
-
-
-static INT32 stopsubcpu = 0;
-static INT32 nLastMiss = 0;
-
-void lastmiss_main_write(UINT16 address, UINT8 data)
-{
- switch (address)
- {
- case 0x1803:
- if (M6809GetActive() == 0) { // main
- M6809SetIRQLine(0, CPU_IRQSTATUS_AUTO);
- } else {
- M6809Close();
- M6809Open(0);
- M6809SetIRQLine(0, CPU_IRQSTATUS_AUTO);
- M6809Close();
- M6809Open(1);
- }
- return;
-
- case 0x1804:
- if (M6809GetActive() == 0) { // main
- M6809Close();
- M6809Open(1);
- M6809SetIRQLine(0, CPU_IRQSTATUS_AUTO);
- M6809Close();
- M6809Open(0);
- } else {
- M6809SetIRQLine(0, CPU_IRQSTATUS_AUTO);
- }
- return;
-
- case 0x1805:
- memcpy (DrvSprBuf, DrvSprRAM, 0x800);
- return;
-
- case 0x1807:
- *flipscreen = data;
- return;
-
- case 0x180c:
- *soundlatch = data;
- M6502SetIRQLine(M6502_INPUT_LINE_NMI, CPU_IRQSTATUS_AUTO);
- return;
-
- // main cpu only!
-
- case 0x1809:
- DrvPf0Ctrl[0x11] = data;
- return;
-
- case 0x180b:
- DrvPf0Ctrl[0x13] = data;
- return;
-
- case 0x180d:
- if (M6809GetActive() == 0) {
- m6809_bankswitch(data & 0x0f);
-
- if (~data & 0x80 && nLastMiss) {
- M6809Close();
- M6809Open(1);
- M6809Reset();
- M6809Close();
- M6809Open(0);
- stopsubcpu = 1;
- } else {
- stopsubcpu = 0;
- }
- } else {
- if (nLastMiss == 0) {
- // M6809Close();
- // M6809Open(0);
- // m6809_bankswitch(data);
- // M6809Close();
- // M6809Open(1);
- }
- }
-
- DrvPf0Ctrl[0x10] = (data >> 5) & 1;
- DrvPf0Ctrl[0x12] = (data >> 6) & 1;
- return;
-
- case 0x180e:
- case 0x180f:
- if (M6809GetActive() == 0) {
- if ( nLastMiss) lastmiss_i8751_write(address & 1, data);
- } else {
- if (!nLastMiss) shackled_i8751_write(address & 1, data);
- }
- return;
- }
-}
-
-UINT8 lastmiss_main_read(UINT16 address)
-{
- switch (address)
- {
- case 0x1800:
- return DrvInputs[0];
-
- case 0x1801:
- return DrvInputs[1];
-
- case 0x1802:
- return (DrvInputs[2] & 0x7f) | vblank;
-
- case 0x1803:
- return DrvDips[0];
-
- case 0x1804:
- return DrvDips[1];
-
- case 0x1806:
- return i8751_return >> 8;
-
- case 0x1807:
- return i8751_return & 0xff;
- }
-
- return 0;
-}
-
-static INT32 LastmissDoReset()
-{
- DrvReset = 0;
-
- memset (AllRam, 0, RamEnd - AllRam);
-
- M6809Open(0);
- M6809Reset();
- M6809Close();
-
- M6809Open(1);
- M6809Reset();
- M6809Close();
-
- M6502Open(0);
- M6502Reset();
- M6502Close();
-
- BurnYM2203Reset();
- BurnYM3526Reset();
-
- i8751_return = 0;
- i8751_value = 0;
-
- stopsubcpu = 0;
-
- return 0;
-}
-
-static INT32 LastmissGfxDecode()
-{
- INT32 Plane0[3] = { 0x6000*8,0x4000*8,0x2000*8 };
- INT32 Plane1[4] = { 0x60000*8,0x40000*8,0x20000*8,0x00000*8 };
- INT32 XOffs0[8] = { 0, 1, 2, 3, 4, 5, 6, 7 };
- INT32 XOffs1[16]= {16*8, 1+(16*8), 2+(16*8), 3+(16*8), 4+(16*8), 5+(16*8), 6+(16*8), 7+(16*8),0,1,2,3,4,5,6,7 };
- INT32 YOffs0[16] = { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 ,8*8,9*8,10*8,11*8,12*8,13*8,14*8,15*8 };
-
- UINT8 *tmp = (UINT8*)BurnMalloc(0x80000);
- if (tmp == NULL) {
- return 1;
- }
-
- memcpy (tmp, DrvGfxROM0, 0x08000);
-
- GfxDecode(0x0400, 3, 8, 8, Plane0, XOffs0, YOffs0, 0x040, tmp, DrvGfxROM0);
-
- memcpy (tmp, DrvGfxROM1, 0x80000);
-
- GfxDecode(0x1000, 4, 16, 16, Plane1, XOffs1, YOffs0, 0x100, tmp, DrvGfxROM1);
-
- memcpy (tmp, DrvGfxROM2, 0x80000);
-
- GfxDecode(0x1000, 4, 16, 16, Plane1, XOffs1, YOffs0, 0x100, tmp, DrvGfxROM2);
-
- BurnFree (tmp);
-
- return 0;
-}
-
-static INT32 LastmissInit()
-{
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (!strncmp(BurnDrvGetTextA(DRV_NAME), "lastm", 5)) {
- if (BurnLoadRom(DrvMainROM + 0x08000, 0, 1)) return 1;
- if (BurnLoadRom(DrvMainROM + 0x10000, 1, 1)) return 1;
-
- if (BurnLoadRom(DrvSubROM + 0x00000, 2, 1)) return 1;
-
- if (BurnLoadRom(DrvM6502ROM + 0x08000, 3, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM3 + 0x00000, 4, 1)) return 1;
- memcpy (DrvGfxROM0 + 0x00000, DrvGfxROM3 + 0x00000, 0x02000);
- memcpy (DrvGfxROM0 + 0x06000, DrvGfxROM3 + 0x02000, 0x02000);
- memcpy (DrvGfxROM0 + 0x04000, DrvGfxROM3 + 0x04000, 0x02000);
- memcpy (DrvGfxROM0 + 0x02000, DrvGfxROM3 + 0x06000, 0x02000);
-
- if (BurnLoadRom(DrvGfxROM1 + 0x00000, 5, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x20000, 6, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x40000, 7, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x60000, 8, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM2 + 0x00000, 9, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x20000, 10, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x40000, 11, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x60000, 12, 1)) return 1;
-
- nLastMiss = 1;
- } else {
- if (BurnLoadRom(DrvMainROM + 0x08000, 0, 1)) return 1;
- if (BurnLoadRom(DrvMainROM + 0x10000, 1, 1)) return 1;
- if (BurnLoadRom(DrvMainROM + 0x20000, 2, 1)) return 1;
- if (BurnLoadRom(DrvMainROM + 0x30000, 3, 1)) return 1;
- if (BurnLoadRom(DrvMainROM + 0x40000, 4, 1)) return 1;
- if (BurnLoadRom(DrvMainROM + 0x48000, 4, 1)) return 1; // reload
-
- if (BurnLoadRom(DrvSubROM + 0x00000, 5, 1)) return 1;
-
- if (BurnLoadRom(DrvM6502ROM + 0x08000, 6, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x00000, 7, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM1 + 0x00000, 8, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x10000, 9, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x20000, 10, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x30000, 11, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x40000, 12, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x50000, 13, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x60000, 14, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x70000, 15, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM2 + 0x00000, 16, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x20000, 17, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x40000, 18, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x60000, 19, 1)) return 1;
- }
-
- LastmissGfxDecode();
- }
-
- M6809Init(2);
- M6809Open(0);
- M6809MapMemory(DrvMainRAM, 0x0000, 0x0fff, MAP_RAM);
- M6809MapMemory(DrvPalRAM, 0x1000, 0x17ff, MAP_RAM);
- M6809MapMemory(DrvVidRAM, 0x2000, 0x27ff, MAP_RAM);
- M6809MapMemory(DrvSprRAM, 0x2800, 0x2fff, MAP_RAM);
- M6809MapMemory(DrvMainRAM + 0x1000, 0x3000, 0x37ff, MAP_RAM);
- M6809MapMemory(DrvPf0RAM, 0x3800, 0x3fff, MAP_RAM);
- M6809MapMemory(DrvMainROM + 0x10000, 0x4000, 0x7fff, MAP_ROM);
- M6809MapMemory(DrvMainROM + 0x08000, 0x8000, 0xffff, MAP_ROM);
- M6809SetWriteHandler(lastmiss_main_write);
- M6809SetReadHandler(lastmiss_main_read);
- M6809Close();
-
- M6809Open(1);
- M6809MapMemory(DrvMainRAM, 0x0000, 0x0fff, MAP_RAM);
- M6809MapMemory(DrvPalRAM, 0x1000, 0x17ff, MAP_RAM);
- M6809MapMemory(DrvVidRAM, 0x2000, 0x27ff, MAP_RAM);
- M6809MapMemory(DrvSprRAM, 0x2800, 0x2fff, MAP_RAM);
- M6809MapMemory(DrvMainRAM + 0x1000, 0x3000, 0x37ff, MAP_RAM);
- M6809MapMemory(DrvPf0RAM, 0x3800, 0x3fff, MAP_RAM);
- M6809MapMemory(DrvSubROM + 0x04000, 0x4000, 0xffff, MAP_ROM);
- M6809SetWriteHandler(lastmiss_main_write);
- M6809SetReadHandler(lastmiss_main_read);
- M6809Close();
-
- M6502Init(0, TYPE_M6502);
- M6502Open(0);
- M6502MapMemory(DrvM6502RAM, 0x0000, 0x05ff, MAP_RAM);
- M6502MapMemory(DrvM6502ROM + 0x8000, 0x8000, 0xffff, MAP_ROM);
- M6502SetReadHandler(ghostb_sound_read);
- M6502SetWriteHandler(gondo_sound_write);
- M6502Close();
-
- BurnSetRefreshRate(58.00);
-
- BurnYM3526Init(3000000, &DrvYM3812FMIRQHandler, &DrvYM3812SynchroniseStream, 0);
- BurnTimerAttachM6502YM3526(1500000);
- BurnYM3526SetRoute(BURN_SND_YM3526_ROUTE, 0.70, BURN_SND_ROUTE_BOTH);
-
- BurnYM2203Init(1, 1500000, NULL, DrvYM2203M6809SynchroniseStream, DrvYM2203M6809GetTime, 1);
- BurnTimerAttachM6809(2000000);
- BurnYM2203SetRoute(0, BURN_SND_YM2203_YM2203_ROUTE, 0.20, BURN_SND_ROUTE_BOTH);
- BurnYM2203SetRoute(0, BURN_SND_YM2203_AY8910_ROUTE_1, 0.23, BURN_SND_ROUTE_BOTH);
- BurnYM2203SetRoute(0, BURN_SND_YM2203_AY8910_ROUTE_2, 0.23, BURN_SND_ROUTE_BOTH);
- BurnYM2203SetRoute(0, BURN_SND_YM2203_AY8910_ROUTE_3, 0.23, BURN_SND_ROUTE_BOTH);
-
- GenericTilesInit();
-
- LastmissDoReset();
-
- return 0;
-}
-
-static INT32 LastmissExit()
-{
- M6809Exit();
- BurnYM3526Exit();
- nLastMiss = 0;
- return DrvExit();
-}
-
-static void lastmiss_draw_bg_layer(INT32 priority, INT32 t)
-{
- INT32 scrolly = ((DrvPf0Ctrl[0x12] << 8) + DrvPf0Ctrl[0x13] + 8) & 0x1ff;
- INT32 scrollx = ((DrvPf0Ctrl[0x10] << 8) | DrvPf0Ctrl[0x11]) & 0x1ff;
-
- for (INT32 offs = 0; offs < 32 * 32; offs++)
- {
- INT32 sx = (offs & 0x1f) << 4;
- INT32 sy = (offs >> 5) << 4;
-
- sx -= scrollx;
- if (sx < -15) sx += 512;
- sy -= scrolly;
- if (sy < -15) sy += 512;
-
- if (sx >= nScreenWidth || sy >= nScreenHeight) continue;
-
- INT32 ofst = (offs & 0x0f) | ((offs >> 1) & 0xf0) | ((offs & 0x10) << 4) | (offs & 0x200);
-
- INT32 code = (DrvPf0RAM[ofst * 2 + 1]) | (DrvPf0RAM[ofst * 2 + 0] << 8);
- INT32 color = code >> 12;
-
- if (priority && color < 8) continue;
-
- {
- color = (color << 4) | 0x300;
- UINT8 *src = DrvGfxROM2 + ((code & 0xfff) << 8);
- UINT16 *dst;
-
- for (INT32 y = 0; y < 16; y++, sy++, src+=16)
- {
- if (sy < 0 || sy >= nScreenHeight) continue;
-
- dst = pTransDraw + sy * nScreenWidth;
-
- INT32 xx = sx;
- for (INT32 x = 0; x < 16; x++, xx++)
- {
- INT32 pxl = src[x];
- if (t & (1 << pxl)) continue;
-
- if (xx >= nScreenWidth || xx < 0) continue;
-
- dst[xx] = pxl | color;
- }
- }
- }
-
- // Render16x16Tile_Clip(pTransDraw, code & 0xfff, sx, sy, color, 4, 0x300, DrvGfxROM2);
- }
-}
-
-static void lastmiss_draw_txt_layer()
-{
- for (INT32 offs = 0; offs < 32 * 32; offs++)
- {
- INT32 sx = (offs & 0x1f) << 3;
- INT32 sy = (offs >> 5) << 3;
-
- sy -= 8;
- if (sy < 0 || sy >= nScreenHeight) continue;
-
- INT32 code = (DrvVidRAM[offs * 2 + 1]) | (DrvVidRAM[offs * 2 + 0] << 8);
- INT32 color = code >> 14;
-
- Render8x8Tile_Mask(pTransDraw, code & 0xfff, sx, sy, color, 3, 0, 0, DrvGfxROM0);
- }
-}
-
-static void DrvRecalcSplit(INT32 len)
-{
- UINT8 r,g,b;
- for (INT32 i = 0; i < len; i++) {
- INT32 d = (DrvPalRAM[i + 0]) | (DrvPalRAM[i + len] << 8);
- r = (d >> 0) & 0x0f;
- g = (d >> 4) & 0x0f;
- b = (d >> 8) & 0x0f;
-
- r |= r << 4;
- g |= g << 4;
- b |= b << 4;
-
- DrvPalette[i] = BurnHighCol(r, g, b, 0);
- }
-}
-
-static INT32 LastmissDraw()
-{
- if (DrvRecalc) {
- DrvRecalcSplit(0x400);
- }
-
- lastmiss_draw_bg_layer(0,0);
- draw_sprites1(0);
- lastmiss_draw_txt_layer();
-
- BurnTransferCopy(DrvPalette);
-
- return 0;
-}
-
-static INT32 ShackledDraw()
-{
- if (DrvRecalc) {
- DrvRecalcSplit(0x400);
- }
-
- if (nBurnLayer & 1) lastmiss_draw_bg_layer(0, 0xfff0);
- if (nBurnLayer & 2) lastmiss_draw_bg_layer(0, 0x000f);
- if (nBurnLayer & 4) lastmiss_draw_bg_layer(1, 0xfff0);
- if (nSpriteEnable & 1) draw_sprites1(0);
- if (nBurnLayer & 8) lastmiss_draw_bg_layer(1, 0x000f);
- if (nSpriteEnable & 2) lastmiss_draw_txt_layer();
-
- BurnTransferCopy(DrvPalette);
-
- return 0;
-}
-
-static INT32 LastmissFrame()
-{
- if (DrvReset) {
- LastmissDoReset();
- }
-
- M6809NewFrame();
- M6502NewFrame();
-
- {
- memset (DrvInputs, 0xff, 5);
- for (INT32 i = 0; i < 8; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- DrvInputs[2] ^= (DrvJoy3[i] & 1) << i;
- DrvInputs[3] ^= (DrvJoy4[i] & 1) << i;
- DrvInputs[4] ^= (DrvJoy5[i] & 1) << i;
- }
- }
-
- INT32 nInterleave = 256 * 10; // shackled needs very tight sync
- INT32 nCyclesTotal[3] = { 2000000 / 58, 2000000 / 58, 1500000 / 58 };
- memset(nCyclesDone, 0, sizeof(nCyclesDone));
- //INT32 nCyclesDone[3] = { 0, 0, 0 };
-
- M6502Open(0);
-
- vblank = 0x80;
-
- for (INT32 i = 0; i < nInterleave; i++)
- {
- if (i == 8 * 10) vblank = 0x00;
- if (i == 248 * 10) vblank = 0x80;
-
- M6809Open(0);
- BurnTimerUpdate((i + 1) * (nCyclesTotal[0] / nInterleave));
- M6809Close();
-
- M6809Open(1);
- INT32 nSegment = (nCyclesTotal[1] / nInterleave) * (i + 1);
- if (stopsubcpu) {
- nCyclesDone[1] += nSegment - nCyclesDone[1];
- } else {
- nCyclesDone[1] += M6809Run(nSegment - nCyclesDone[1]);
- }
- M6809Close();
-
- BurnTimerUpdateYM3526((i + 1) * (nCyclesTotal[2] / nInterleave));
- }
-
- M6809Open(0);
- BurnTimerEndFrame(nCyclesTotal[0]);
- BurnTimerEndFrameYM3526(nCyclesTotal[2]);
-
- if (pBurnSoundOut) {
- BurnYM3526Update(pBurnSoundOut, nBurnSoundLen);
- BurnYM2203Update(pBurnSoundOut, nBurnSoundLen);
- }
-
- M6502Close();
- M6809Close();
-
- if (pBurnDraw) {
- BurnDrvRedraw();
- }
-
- return 0;
-}
-
-static INT32 LastmissScan(INT32 nAction, INT32 *pnMin)
-{
- if (nAction & ACB_DRIVER_DATA) {
- M6809Scan(nAction);
- BurnYM3526Scan(nAction, pnMin);
-
- SCAN_VAR(stopsubcpu);
- SCAN_VAR(RomBank);
-
- if (nAction & ACB_WRITE) {
- M6809Open(0);
- M6809MapMemory(DrvMainROM + 0x10000 + RomBank, 0x4000, 0x7fff, MAP_ROM);
- M6809Close();
- }
- }
-
- return DrvScan(nAction, pnMin);
-}
-
-
-// Last Mission (US revision 6)
-
-static struct BurnRomInfo lastmisnRomDesc[] = {
- { "dl03-6.13h", 0x08000, 0x47751a5e, 1 }, // 0 maincpu
- { "lm_dl04.7h", 0x10000, 0x7dea1552, 1 }, // 1
-
- { "lm_dl02.18h", 0x10000, 0xec9b5daf, 2 }, // 2 sub
-
- { "dl05-.5h", 0x08000, 0x1a5df8c0, 3 }, // 3 audiocpu
-
- { "dl01-.2a", 0x08000, 0xf3787a5d, 4 }, // 4 gfx1
-
- { "dl11-.13f", 0x08000, 0x36579d3b, 5 }, // 5 gfx2
- { "dl12-.9f", 0x08000, 0x2ba6737e, 5 }, // 6
- { "dl13-.8f", 0x08000, 0x39a7dc93, 5 }, // 7
- { "dl10-.16f", 0x08000, 0xfe275ea8, 5 }, // 8
-
- { "dl09-.12k", 0x10000, 0x6a5a0c5d, 6 }, // 9 gfx3
- { "dl08-.14k", 0x10000, 0x3b38cfce, 6 }, // 10
- { "dl07-.15k", 0x10000, 0x1b60604d, 6 }, // 11
- { "dl06-.17k", 0x10000, 0xc43c26a7, 6 }, // 12
-
- { "id8751h.mcu", 0x01000, 0x00000000, 7 | BRF_NODUMP }, // 13 mcu
-
- { "dl-14.9c", 0x00100, 0x2e55aa12, 8 }, // 14 proms
-};
-
-STD_ROM_PICK(lastmisn)
-STD_ROM_FN(lastmisn)
-
-struct BurnDriver BurnDrvLastmisn = {
- "lastmisn", NULL, NULL, NULL, "1986",
- "Last Mission (US revision 6)\0", NULL, "Data East USA", "DEC8",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL, 2, HARDWARE_PREFIX_DATAEAST, GBF_SHOOT, 0,
- NULL, lastmisnRomInfo, lastmisnRomName, NULL, NULL, LastmisnInputInfo, LastmisnDIPInfo,
- LastmissInit, LastmissExit, LastmissFrame, LastmissDraw, LastmissScan, &DrvRecalc, 0x400,
- 240, 256, 3, 4
-};
-
-
-// Last Mission (US revision 5)
-
-static struct BurnRomInfo lastmsnoRomDesc[] = {
- { "lm_dl03.13h", 0x08000, 0x357f5f6b, 1 }, // 0 maincpu
- { "lm_dl04.7h", 0x10000, 0x7dea1552, 1 }, // 1
-
- { "lm_dl02.18h", 0x10000, 0xec9b5daf, 2 }, // 2 sub
-
- { "dl05-.5h", 0x08000, 0x1a5df8c0, 3 }, // 3 audiocpu
-
- { "dl01-.2a", 0x08000, 0xf3787a5d, 4 }, // 4 gfx1
-
- { "dl11-.13f", 0x08000, 0x36579d3b, 5 }, // 5 gfx2
- { "dl12-.9f", 0x08000, 0x2ba6737e, 5 }, // 6
- { "dl13-.8f", 0x08000, 0x39a7dc93, 5 }, // 7
- { "dl10-.16f", 0x08000, 0xfe275ea8, 5 }, // 8
-
- { "dl09-.12k", 0x10000, 0x6a5a0c5d, 6 }, // 9 gfx3
- { "dl08-.14k", 0x10000, 0x3b38cfce, 6 }, // 10
- { "dl07-.15k", 0x10000, 0x1b60604d, 6 }, // 11
- { "dl06-.17k", 0x10000, 0xc43c26a7, 6 }, // 12
-
- { "id8751h.mcu", 0x01000, 0x00000000, 7 | BRF_NODUMP }, // 13 mcu
-
- { "dl-14.9c", 0x00100, 0x2e55aa12, 8 }, // 14 proms
-};
-
-STD_ROM_PICK(lastmsno)
-STD_ROM_FN(lastmsno)
-
-struct BurnDriver BurnDrvLastmsno = {
- "lastmisno", "lastmisn", NULL, NULL, "1986",
- "Last Mission (US revision 5)\0", NULL, "Data East USA", "DEC8",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL, 2, HARDWARE_PREFIX_DATAEAST, GBF_SHOOT, 0,
- NULL, lastmsnoRomInfo, lastmsnoRomName, NULL, NULL, LastmisnInputInfo, LastmisnDIPInfo,
- LastmissInit, LastmissExit, LastmissFrame, LastmissDraw, LastmissScan, &DrvRecalc, 0x400,
- 240, 256, 3, 4
-};
-
-
-// Last Mission (Japan)
-
-static struct BurnRomInfo lastmsnjRomDesc[] = {
- { "dl03-.13h", 0x08000, 0x4be5e7e1, 1 }, // 0 maincpu
- { "dl04-.7h", 0x10000, 0xf026adf9, 1 }, // 1
-
- { "dl02-.18h", 0x10000, 0xd0de2b5d, 2 }, // 2 sub
-
- { "dl05-.5h", 0x08000, 0x1a5df8c0, 3 }, // 3 audiocpu
-
- { "dl01-.2a", 0x08000, 0xf3787a5d, 4 }, // 4 gfx1
-
- { "dl11-.13f", 0x08000, 0x36579d3b, 5 }, // 5 gfx2
- { "dl12-.9f", 0x08000, 0x2ba6737e, 5 }, // 6
- { "dl13-.8f", 0x08000, 0x39a7dc93, 5 }, // 7
- { "dl10-.16f", 0x08000, 0xfe275ea8, 5 }, // 8
-
- { "dl09-.12k", 0x10000, 0x6a5a0c5d, 6 }, // 9 gfx3
- { "dl08-.14k", 0x10000, 0x3b38cfce, 6 }, // 10
- { "dl07-.15k", 0x10000, 0x1b60604d, 6 }, // 11
- { "dl06-.17k", 0x10000, 0xc43c26a7, 6 }, // 12
-
- { "id8751h.mcu", 0x01000, 0x00000000, 7 | BRF_NODUMP }, // 13 mcu
-
- { "dl-14.9c", 0x00100, 0x2e55aa12, 8 }, // 14 proms
-};
-
-STD_ROM_PICK(lastmsnj)
-STD_ROM_FN(lastmsnj)
-
-struct BurnDriver BurnDrvLastmsnj = {
- "lastmisnj", "lastmisn", NULL, NULL, "1986",
- "Last Mission (Japan)\0", NULL, "Data East Corporation", "DEC8",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL, 2, HARDWARE_PREFIX_DATAEAST, GBF_SHOOT, 0,
- NULL, lastmsnjRomInfo, lastmsnjRomName, NULL, NULL, LastmisnInputInfo, LastmsnjDIPInfo,
- LastmissInit, LastmissExit, LastmissFrame, LastmissDraw, LastmissScan, &DrvRecalc, 0x400,
- 240, 256, 3, 4
-};
-
-
-// Shackled (US)
-
-static struct BurnRomInfo shackledRomDesc[] = {
- { "dk-02.13h", 0x08000, 0x87f8fa85, 1 }, // 0 maincpu
- { "dk-06.7h", 0x10000, 0x69ad62d1, 1 }, // 1
- { "dk-05.8h", 0x10000, 0x598dd128, 1 }, // 2
- { "dk-04.10h", 0x10000, 0x36d305d4, 1 }, // 3
- { "dk-03.11h", 0x08000, 0x6fd90fd1, 1 }, // 4
-
- { "dk-01.18h", 0x10000, 0x71fe3bda, 2 }, // 5 sub
-
- { "dk-07.5h", 0x08000, 0x887e4bcc, 3 }, // 6 audiocpu
-
- { "dk-00.2a", 0x08000, 0x69b975aa, 5 }, // 8 gfx1
-
- { "dk-12.15k", 0x10000, 0x615c2371, 6 }, // 9 gfx2
- { "dk-13.14k", 0x10000, 0x479aa503, 6 }, // 10
- { "dk-14.13k", 0x10000, 0xcdc24246, 6 }, // 11
- { "dk-15.11k", 0x10000, 0x88db811b, 6 }, // 12
- { "dk-16.10k", 0x10000, 0x061a76bd, 6 }, // 13
- { "dk-17.9k", 0x10000, 0xa6c5d8af, 6 }, // 14
- { "dk-18.8k", 0x10000, 0x4d466757, 6 }, // 15
- { "dk-19.6k", 0x10000, 0x1911e83e, 6 }, // 16
-
- { "dk-11.12k", 0x10000, 0x5cf5719f, 7 }, // 17 gfx3
- { "dk-10.14k", 0x10000, 0x408e6d08, 7 }, // 18
- { "dk-09.15k", 0x10000, 0xc1557fac, 7 }, // 19
- { "dk-08.17k", 0x10000, 0x5e54e9f5, 7 }, // 20
-
- { "dk.18a", 0x01000, 0x00000000, 4 | BRF_NODUMP }, // 7 mcu
-
- { "dk-20.9c", 0x00100, 0xff3cd588, 0 | BRF_OPT }, // priority PROM
-};
-
-STD_ROM_PICK(shackled)
-STD_ROM_FN(shackled)
-
-struct BurnDriver BurnDrvShackled = {
- "shackled", NULL, NULL, NULL, "1986",
- "Shackled (US)\0", NULL, "Data East USA", "DEC8",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_PREFIX_DATAEAST, GBF_SHOOT, 0,
- NULL, shackledRomInfo, shackledRomName, NULL, NULL, ShackledInputInfo, ShackledDIPInfo,
- LastmissInit, LastmissExit, LastmissFrame, ShackledDraw, LastmissScan, &DrvRecalc, 0x400,
- 256, 240, 4, 3
-};
-
-
-// Breywood (Japan revision 2)
-
-static struct BurnRomInfo breywoodRomDesc[] = {
- { "dj02-2.13h", 0x08000, 0xc19856b9, 1 }, // 0 maincpu
- { "dj06-2.7h", 0x10000, 0x2860ea02, 1 }, // 1
- { "dj05-2.8h", 0x10000, 0x0fdd915e, 1 }, // 2
- { "dj04-2.10h", 0x10000, 0x71036579, 1 }, // 3
- { "dj03-2.11h", 0x08000, 0x308f4893, 1 }, // 4
-
- { "dj1-2y.18h", 0x10000, 0x3d9fb623, 2 }, // 5 sub
-
- { "dj07-1.5h", 0x08000, 0x4a471c38, 3 }, // 6 audiocpu
-
- { "dj-00.2a", 0x08000, 0x815a891a, 5 }, // 8 gfx1
-
- { "dj12.15k", 0x10000, 0x2b7634f2, 6 }, // 9 gfx2
- { "dj13.14k", 0x10000, 0x4530a952, 6 }, // 10
- { "dj14.13k", 0x10000, 0x87c28833, 6 }, // 11
- { "dj15.11k", 0x10000, 0xbfb43a4d, 6 }, // 12
- { "dj16.10k", 0x10000, 0xf9848cc4, 6 }, // 13
- { "dj17.9k", 0x10000, 0xbaa3d218, 6 }, // 14
- { "dj18.8k", 0x10000, 0x12afe533, 6 }, // 15
- { "dj19.6k", 0x10000, 0x03373755, 6 }, // 16
-
- { "dj11.12k", 0x10000, 0x067e2a43, 7 }, // 17 gfx3
- { "dj10.14k", 0x10000, 0xc19733aa, 7 }, // 18
- { "dj09.15k", 0x10000, 0xe37d5dbe, 7 }, // 19
- { "dj08.17k", 0x10000, 0xbeee880f, 7 }, // 20
-
- { "dj.18a", 0x01000, 0x00000000, 4 | BRF_NODUMP }, // 7 mcu
-
- { "dk-20.9c", 0x00100, 0xff3cd588, 0 | BRF_OPT }, // priority PROM
-};
-
-STD_ROM_PICK(breywood)
-STD_ROM_FN(breywood)
-
-struct BurnDriver BurnDrvBreywood = {
- "breywood", "shackled", NULL, NULL, "1986",
- "Breywood (Japan revision 2)\0", NULL, "Data East Corporation", "DEC8",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_DATAEAST, GBF_SHOOT, 0,
- NULL, breywoodRomInfo, breywoodRomName, NULL, NULL, ShackledInputInfo, ShackledDIPInfo,
- LastmissInit, LastmissExit, LastmissFrame, ShackledDraw, LastmissScan, &DrvRecalc, 0x400,
- 256, 240, 4, 3
-};
-
-
-static INT32 MSM5205Next = 0;
-static UINT8 MSM5205Last = 0;
-static INT32 Toggle = 0;
-static INT32 SndRomBank = 0;
-static INT32 csilver_coin = 0;
-
-static void csilver_i8751_write(INT32 offset, UINT8 data)
-{
- static INT32 latch = 0, snd = 0;
- i8751_return = 0;
-
- UINT8 coininp = DrvInputs[2];
-
- //bprintf(0, _T("i8751_w()..\n"));
-
- switch (offset)
- {
- case 0: /* High byte */
- i8751_value = (i8751_value & 0xff) | (data << 8);
- //bprintf(0, _T("INT!\n"));
- M6809SetIRQLine(1, CPU_IRQSTATUS_AUTO); /* Signal main cpu */
- break;
- case 1: /* Low byte */
- i8751_value = (i8751_value & 0xff00) | data;
- break;
- }
-
- if ((coininp & 3) == 3 && !latch) latch = 1;
- if ((coininp & 3) != 3 && latch) {
- csilver_coin++;
- latch = 0;
- snd = 0x1200;
- i8751_return = 0x1200;
- }
-
- if (i8751_value == 0x054a) { i8751_return = 0xb5; } /* Captain Silver (Japan) ID */
- if (i8751_value == 0x054c) { i8751_return = 0xb3; } /* Captain Silver (World) ID */
-
- if (offset == 0)
- {
- /* Coins are controlled by the i8751 */
-
- if ((i8751_value >> 8) == 0x01) i8751_return = i8751_value; /* Coinage - Not Supported */
- if ((i8751_value >> 8) == 0x02) {i8751_return = snd | csilver_coin; snd = 0; } /* Coin Return */
- if ((i8751_value >> 8) == 0x03 && csilver_coin) {i8751_return = 0; csilver_coin--;} /* Coin Clear */
- }
-}
-
-void csilver_main_write(UINT16 address, UINT8 data)
-{
- switch (address)
- {
- case 0x1803:
- if (M6809GetActive() == 0) { // main
- M6809SetIRQLine(0, CPU_IRQSTATUS_AUTO);
- } else {
- M6809Close();
- M6809Open(0);
- M6809SetIRQLine(0, CPU_IRQSTATUS_AUTO);
- M6809Close();
- M6809Open(1);
- }
- return;
-
- case 0x1804:
- if (M6809GetActive() == 0) { // main
- M6809Close();
- M6809Open(1);
- M6809SetIRQLine(0, CPU_IRQSTATUS_AUTO);
- M6809Close();
- M6809Open(0);
- } else {
- M6809SetIRQLine(0, CPU_IRQSTATUS_AUTO);
- }
- return;
-
- case 0x1805:
- memcpy (DrvSprBuf, DrvSprRAM, 0x800);
- return;
-
- case 0x1807:
- *flipscreen = data;
- return;
-
- case 0x180c:
- *soundlatch = data;
- M6502SetIRQLine(M6502_INPUT_LINE_NMI, CPU_IRQSTATUS_AUTO);
- M6502Run(500);
- return;
-
- case 0x1808:
- case 0x1809: // maincpu
- case 0x180a:
- case 0x180b: // dec8_scroll2_w
- DrvPf0Ctrl[0x10 + (address & 3)] = data;
- return;
-
-
- case 0x180d: // main
- if (M6809GetActive() == 0) m6809_bankswitch(data);
- return;
-
- case 0x180e: // main
- case 0x180f:
- if (M6809GetActive() == 0) csilver_i8751_write(address & 1, data);
- return;
- }
-}
-
-UINT8 csilver_main_read(UINT16 address)
-{
- switch (address)
- {
- case 0x1800:
- return DrvInputs[1];
-
- case 0x1801:
- return DrvInputs[0];
-
- case 0x1803:
- return (DrvInputs[2] & 0x7f) | vblank;
-
- case 0x1804:
- return DrvDips[1];
-
- case 0x1805:
- return DrvDips[0];
-
- case 0x1c00:
- return (i8751_return >> 8) & 0xff;
-
- case 0x1e00:
- return i8751_return & 0xff;
- }
-
- return 0;
-}
-
-static void csilver_sound_bank(INT32 data)
-{
- SndRomBank = (data & 8) >> 3;
-
- M6502MapMemory(DrvM6502ROM + 0x10000 + SndRomBank * 0x4000, 0x4000, 0x7fff, MAP_ROM);
-}
-
-void csilver_sound_write(UINT16 address, UINT8 data)
-{
- switch (address)
- {
- case 0x0800:
- case 0x0801:
- BurnYM2203Write(0, address & 1, data);
- return;
-
- case 0x1000:
- case 0x1001:
- BurnYM3526Write(address & 1, data);
- return;
-
- case 0x1800:
- MSM5205Next = data;
- if (MSM5205Last == 0x8 && MSM5205Next == 0x8) { // clears up hissing & clicking noise
- MSM5205ResetWrite(0, 1);
- } else MSM5205ResetWrite(0, 0);
- MSM5205Last = data;
- return;
-
- case 0x2000:
- csilver_sound_bank(data);
- return;
- }
-}
-
-UINT8 csilver_sound_read(UINT16 address)
-{
- switch (address)
- {
- case 0x3000:
- return *soundlatch;
-
- case 0x3400:
- MSM5205ResetWrite(0, 0);
- return 0;
- }
-
- return 0;
-}
-
-static void CsilverADPCMInt()
-{
- Toggle ^= 1;
- if (Toggle) M6502SetIRQLine(M6502_IRQ_LINE, CPU_IRQSTATUS_AUTO);
-
- MSM5205DataWrite(0, MSM5205Next >> 4);
- MSM5205Next <<= 4;
-}
-
-static INT32 CsilverDoReset()
-{
- INT32 nRet = LastmissDoReset();
-
- MSM5205Reset();
- csilver_coin = 0;
-
- return nRet;
-}
-
-static INT32 CsilverInit()
-{
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(DrvMainROM + 0x08000, 0, 1)) return 1;
- if (BurnLoadRom(DrvMainROM + 0x10000, 1, 1)) return 1;
- if (BurnLoadRom(DrvMainROM + 0x20000, 2, 1)) return 1;
-
- if (BurnLoadRom(DrvSubROM + 0x00000, 3, 1)) return 1;
-
- if (BurnLoadRom(DrvM6502ROM + 0x00000, 4, 1)) return 1;
- memcpy (DrvM6502ROM + 0x10000, DrvM6502ROM + 0x00000, 0x8000);
-
- if (BurnLoadRom(DrvGfxROM0 + 0x00000, 5, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM1 + 0x00000, 6, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x20000, 7, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x40000, 8, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM2 + 0x00000, 9, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x10000, 10, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x20000, 11, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x30000, 12, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x40000, 13, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x50000, 14, 1)) return 1;
-
- LastmissGfxDecode();
- }
-
- M6809Init(2);
- M6809Open(0);
- M6809MapMemory(DrvMainRAM + 0x00000, 0x0000, 0x0fff, MAP_RAM);
- M6809MapMemory(DrvPalRAM, 0x1000, 0x17ff, MAP_RAM); // xxxxbbbbggggrrrr
- M6809MapMemory(DrvVidRAM, 0x2000, 0x27ff, MAP_RAM);
- M6809MapMemory(DrvSprRAM, 0x2800, 0x2fff, MAP_RAM);
- M6809MapMemory(DrvMainRAM + 0x01000, 0x3000, 0x37ff, MAP_RAM);
- M6809MapMemory(DrvPf0RAM, 0x3800, 0x3fff, MAP_RAM);
- M6809MapMemory(DrvMainROM + 0x10000, 0x4000, 0x7fff, MAP_RAM);
- M6809MapMemory(DrvMainROM + 0x08000, 0x8000, 0xffff, MAP_RAM);
- M6809SetWriteHandler(csilver_main_write);
- M6809SetReadHandler(csilver_main_read);
- M6809Close();
-
- M6809Open(1);
- M6809MapMemory(DrvMainRAM + 0x00000, 0x0000, 0x0fff, MAP_RAM);
- M6809MapMemory(DrvPalRAM, 0x1000, 0x17ff, MAP_RAM); // xxxxbbbbggggrrrr
- M6809MapMemory(DrvVidRAM, 0x2000, 0x27ff, MAP_RAM);
- M6809MapMemory(DrvSprRAM, 0x2800, 0x2fff, MAP_RAM);
- M6809MapMemory(DrvMainRAM + 0x01000, 0x3000, 0x37ff, MAP_RAM);
- M6809MapMemory(DrvPf0RAM, 0x3800, 0x3fff, MAP_RAM);
- M6809MapMemory(DrvSubROM + 0x04000, 0x4000, 0xffff, MAP_RAM);
- M6809SetWriteHandler(csilver_main_write);
- M6809SetReadHandler(csilver_main_read);
- M6809Close();
-
- M6502Init(0, TYPE_M6502);
- M6502Open(0);
- M6502MapMemory(DrvM6502RAM, 0x0000, 0x07ff, MAP_RAM);
- M6502MapMemory(DrvM6502ROM + 0x4000, 0x4000, 0x7fff, MAP_ROM);
- M6502MapMemory(DrvM6502ROM + 0x8000, 0x8000, 0xffff, MAP_ROM);
- M6502SetReadHandler(csilver_sound_read);
- M6502SetWriteHandler(csilver_sound_write);
- M6502Close();
-
- BurnSetRefreshRate(58.00);
-
- BurnYM3526Init(3000000, &DrvYM3812FMIRQHandler, &DrvYM3812SynchroniseStreamCsilver, 0);
- BurnTimerAttachM6502YM3526(1500000);
- BurnYM3526SetRoute(BURN_SND_YM3526_ROUTE, 0.70, BURN_SND_ROUTE_BOTH);
-
- BurnYM2203Init(1, 1500000, NULL, DrvYM2203M6809SynchroniseStream1500000, DrvYM2203M6809GetTime1500000, 1);
- BurnTimerAttachM6809(1500000);
- BurnYM2203SetRoute(0, BURN_SND_YM2203_YM2203_ROUTE, 0.20, BURN_SND_ROUTE_BOTH);
- BurnYM2203SetRoute(0, BURN_SND_YM2203_AY8910_ROUTE_1, 0.23, BURN_SND_ROUTE_BOTH);
- BurnYM2203SetRoute(0, BURN_SND_YM2203_AY8910_ROUTE_2, 0.23, BURN_SND_ROUTE_BOTH);
- BurnYM2203SetRoute(0, BURN_SND_YM2203_AY8910_ROUTE_3, 0.23, BURN_SND_ROUTE_BOTH);
-
- MSM5205Init(0, CsilverMSM5205SynchroniseStream, 384000, CsilverADPCMInt, MSM5205_S48_4B, 1);
- MSM5205SetRoute(0, 0.88, BURN_SND_ROUTE_BOTH);
-
- GenericTilesInit();
-
- CsilverDoReset();
-
- return 0;
-}
-
-static INT32 CsilverFrame()
-{
- if (DrvReset) {
- CsilverDoReset();
- }
-
- M6809NewFrame();
- M6502NewFrame();
-
- {
- memset (DrvInputs, 0xff, 5);
- for (INT32 i = 0; i < 8; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- DrvInputs[2] ^= (DrvJoy3[i] & 1) << i;
- DrvInputs[3] ^= (DrvJoy4[i] & 1) << i;
- DrvInputs[4] ^= (DrvJoy5[i] & 1) << i;
- }
- }
-
- INT32 nInterleave = 256;
- MSM5205NewFrame(0, 1500000, nInterleave);
- INT32 nCyclesTotal[3] = { 1500000 / 58, 1500000 / 58, 1500000 / 58 };
- memset(nCyclesDone, 0, sizeof(nCyclesDone));
- //INT32 nCyclesDone[3] = { 0, 0, 0 };
-
- M6502Open(0);
-
- vblank = 0x80;
-
- for (INT32 i = 0; i < nInterleave; i++)
- {
- if (i == 8) vblank = 0x00;
-
- M6809Open(0);
- BurnTimerUpdate((i + 1) * (nCyclesTotal[0] / nInterleave));
- M6809Close();
-
- M6809Open(1);
- INT32 nSegment = (nCyclesTotal[1] / nInterleave) * (i + 1);
- nCyclesDone[1] += M6809Run(nSegment - nCyclesDone[1]);
- if (i == 248) {
- vblank = 0x80;
- M6809SetIRQLine(0x20, CPU_IRQSTATUS_AUTO);
- }
- MSM5205UpdateScanline(i);
- M6809Close();
-
- BurnTimerUpdateYM3526((i + 1) * (nCyclesTotal[2] / nInterleave));
- }
-
- M6809Open(0);
- BurnTimerEndFrame(nCyclesTotal[0]);
- BurnTimerEndFrameYM3526(nCyclesTotal[2]);
-
- if (pBurnSoundOut) {
- BurnYM3526Update(pBurnSoundOut, nBurnSoundLen);
- BurnYM2203Update(pBurnSoundOut, nBurnSoundLen);
- MSM5205Render(0, pBurnSoundOut, nBurnSoundLen);
- }
-
- M6502Close();
- M6809Close();
-
- if (pBurnDraw) {
- BurnDrvRedraw();
- }
-
- return 0;
-}
-
-static INT32 CsilverScan(INT32 nAction, INT32 *pnMin)
-{
- if (nAction & ACB_DRIVER_DATA) {
- M6809Scan(nAction);
- BurnYM3526Scan(nAction, pnMin);
- MSM5205Scan(nAction, pnMin);
-
- SCAN_VAR(MSM5205Next);
- SCAN_VAR(Toggle);
- SCAN_VAR(SndRomBank);
- SCAN_VAR(RomBank);
- SCAN_VAR(csilver_coin);
-
- if (nAction & ACB_WRITE) {
- M6809Open(0);
- M6809MapMemory(DrvMainROM + 0x10000 + RomBank, 0x4000, 0x7fff, MAP_ROM);
- M6809Close();
-
- M6502Open(0);
- M6502MapMemory(DrvM6502ROM + 0x10000 + SndRomBank * 0x4000, 0x4000, 0x7fff, MAP_ROM);
- M6502Close();
- }
- }
-
- return DrvScan(nAction, pnMin);
-}
-
-// Captain Silver (World)
-
-static struct BurnRomInfo csilverRomDesc[] = {
- { "dx03-12.18d", 0x08000, 0x2d926e7c, 1 }, // 0 maincpu
- { "dx01.12d", 0x10000, 0x570fb50c, 1 }, // 1
- { "dx02.13d", 0x10000, 0x58625890, 1 }, // 2
-
- { "dx04-1.19d", 0x10000, 0x29432691, 2 }, // 3 sub
-
- { "dx05.3f", 0x10000, 0xeb32cf25, 3 }, // 4 audiocpu
-
- { "dx00.3d", 0x08000, 0xf01ef985, 4 }, // 5 gfx1
-
- { "dx14.15k", 0x10000, 0x80f07915, 5 }, // 6 gfx2
- { "dx13.13k", 0x10000, 0xd32c02e7, 5 }, // 7
- { "dx12.10k", 0x10000, 0xac78b76b, 5 }, // 8
-
- { "dx06.5f", 0x10000, 0xb6fb208c, 6 }, // 9 gfx3
- { "dx07.7f", 0x10000, 0xee3e1817, 6 }, // 10
- { "dx08.8f", 0x10000, 0x705900fe, 6 }, // 11
- { "dx09.10f", 0x10000, 0x3192571d, 6 }, // 12
- { "dx10.12f", 0x10000, 0x3ef77a32, 6 }, // 13
- { "dx11.13f", 0x10000, 0x9cf3d5b8, 6 }, // 14
-
- { "id8751h.mcu", 0x01000, 0xca663965, 7 }, // 15 mcu
-};
-
-STD_ROM_PICK(csilver)
-STD_ROM_FN(csilver)
-
-static INT32 CsilverExit()
-{
- MSM5205Exit();
-
- MSM5205Next = 0;
- Toggle = 0;
-
- return LastmissExit();
-}
-
-struct BurnDriver BurnDrvCsilver = {
- "csilver", NULL, NULL, NULL, "1987",
- "Captain Silver (World)\0", NULL, "Data East Corporation", "DEC8",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_PREFIX_DATAEAST, GBF_SCRFIGHT, 0,
- NULL, csilverRomInfo, csilverRomName, NULL, NULL, CsilverInputInfo, CsilverDIPInfo,
- CsilverInit, CsilverExit, CsilverFrame, LastmissDraw, CsilverScan, &DrvRecalc, 0x400,
- 256, 240, 4, 3
-};
-
-
-// Captain Silver (Japan revision 3)
-
-static struct BurnRomInfo csilverjRomDesc[] = {
- { "dx03-3.a4", 0x08000, 0x02dd8cfc, 1 }, // 0 maincpu
- { "dx01.a2", 0x10000, 0x570fb50c, 1 }, // 1
- { "dx02.a3", 0x10000, 0x58625890, 1 }, // 2
-
- { "dx04-1.a5", 0x10000, 0x29432691, 2 }, // 3 sub
-
- { "dx05.a6", 0x10000, 0xeb32cf25, 3 }, // 4 audiocpu
-
- { "dx00.a1", 0x08000, 0xf01ef985, 4 }, // 5 gfx1
-
- { "dx14.b5", 0x10000, 0x80f07915, 5 }, // 6 gfx2
- { "dx13.b4", 0x10000, 0xd32c02e7, 5 }, // 7
- { "dx12.b3", 0x10000, 0xac78b76b, 5 }, // 8
-
- { "dx06.a7", 0x10000, 0xb6fb208c, 6 }, // 9 gfx3
- { "dx07.a8", 0x10000, 0xee3e1817, 6 }, // 10
- { "dx08.a9", 0x10000, 0x705900fe, 6 }, // 11
- { "dx09.a10", 0x10000, 0x3192571d, 6 }, // 12
- { "dx10.b1", 0x10000, 0x3ef77a32, 6 }, // 13
- { "dx11.b2", 0x10000, 0x9cf3d5b8, 6 }, // 14
-
- { "id8751h.mcu", 0x01000, 0xca663965, 7 }, // 15 mcu
-};
-
-STD_ROM_PICK(csilverj)
-STD_ROM_FN(csilverj)
-
-struct BurnDriver BurnDrvCsilverj = {
- "csilverj", "csilver", NULL, NULL, "1987",
- "Captain Silver (Japan revision 3)\0", "imperfect sound", "Data East Corporation", "DEC8",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_DATAEAST, GBF_SCRFIGHT, 0,
- NULL, csilverjRomInfo, csilverjRomName, NULL, NULL, CsilverInputInfo, CsilverDIPInfo,
- CsilverInit, CsilverExit, CsilverFrame, LastmissDraw, CsilverScan, &DrvRecalc, 0x400,
- 256, 240, 4, 3
-};
-
-
-// Captain Silver (Japan revision 1)
-/* Same IC positions to World set */
-
-static struct BurnRomInfo csilverjaRomDesc[] = {
- { "dx03-1.18d", 0x08000, 0xd42905be, 1 }, // 0 maincpu
- { "dx01.12d", 0x10000, 0x570fb50c, 1 }, // 1
- { "dx02.13d", 0x10000, 0x58625890, 1 }, // 2
-
- { "dx04-1.19d", 0x10000, 0x29432691, 2 }, // 3 sub
-
- { "dx05.3f", 0x10000, 0xeb32cf25, 3 }, // 4 audiocpu
-
- { "dx00.3d", 0x08000, 0xf01ef985, 4 }, // 5 gfx1
-
- { "dx14.15k", 0x10000, 0x80f07915, 5 }, // 6 gfx2
- { "dx13.13k", 0x10000, 0xd32c02e7, 5 }, // 7
- { "dx12.10k", 0x10000, 0xac78b76b, 5 }, // 8
-
- { "dx06.5f", 0x10000, 0xb6fb208c, 6 }, // 9 gfx3
- { "dx07.7f", 0x10000, 0xee3e1817, 6 }, // 10
- { "dx08.8f", 0x10000, 0x705900fe, 6 }, // 11
- { "dx09.10f", 0x10000, 0x3192571d, 6 }, // 12
- { "dx10.12f", 0x10000, 0x3ef77a32, 6 }, // 13
- { "dx11.13f", 0x10000, 0x9cf3d5b8, 6 }, // 14
-
- { "id8751h.mcu", 0x01000, 0xca663965, 7 }, // 15 mcu
-};
-
-STD_ROM_PICK(csilverja)
-STD_ROM_FN(csilverja)
-
-struct BurnDriver BurnDrvCsilverja = {
- "csilverja", "csilver", NULL, NULL, "1987",
- "Captain Silver (Japan revision 1)\0", "imperfect sound", "Data East Corporation", "DEC8",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_DATAEAST, GBF_SCRFIGHT, 0,
- NULL, csilverjaRomInfo, csilverjaRomName, NULL, NULL, CsilverInputInfo, CsilverDIPInfo,
- CsilverInit, CsilverExit, CsilverFrame, LastmissDraw, CsilverScan, &DrvRecalc, 0x400,
- 256, 240, 4, 3
-};
diff --git a/jan/src/burn/drv/dataeast/d_dietgogo.cpp b/jan/src/burn/drv/dataeast/d_dietgogo.cpp
deleted file mode 100644
index f7a421d4f..000000000
--- a/jan/src/burn/drv/dataeast/d_dietgogo.cpp
+++ /dev/null
@@ -1,636 +0,0 @@
-// FB Alpha Diet Go Go driver module
-// Based on MAME driver by Bryan McPhail and David Haywood
-
-#include "tiles_generic.h"
-#include "m68000_intf.h"
-#include "deco16ic.h"
-#include "deco146.h"
-#include "msm6295.h"
-#include "h6280_intf.h"
-
-static UINT8 *AllMem;
-static UINT8 *MemEnd;
-static UINT8 *AllRam;
-static UINT8 *RamEnd;
-static UINT8 *Drv68KROM;
-static UINT8 *Drv68KCode;
-static UINT8 *DrvHucROM;
-static UINT8 *DrvGfxROM0;
-static UINT8 *DrvGfxROM1;
-static UINT8 *DrvGfxROM2;
-static UINT8 *DrvSndROM;
-static UINT8 *Drv68KRAM;
-static UINT8 *DrvPalRAM;
-static UINT8 *DrvSprRAM;
-static UINT8 *DrvHucRAM;
-
-static UINT32 *DrvPalette;
-static UINT8 DrvRecalc;
-
-static UINT8 *soundlatch;
-static UINT8 *flipscreen;
-
-static UINT8 DrvJoy1[16];
-static UINT8 DrvJoy2[16];
-static UINT8 DrvDips[2];
-static UINT8 DrvReset;
-static UINT16 DrvInputs[2];
-
-static struct BurnInputInfo DietgoInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy2 + 0, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 7, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy1 + 0, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy1 + 1, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy1 + 2, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy1 + 3, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy1 + 4, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy1 + 5, "p1 fire 2" },
- {"P1 Button 3", BIT_DIGITAL, DrvJoy1 + 6, "p1 fire 3" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy2 + 1, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy1 + 15, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvJoy1 + 8, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy1 + 9, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy1 + 10, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy1 + 11, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy1 + 12, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy1 + 13, "p2 fire 2" },
- {"P2 Button 3", BIT_DIGITAL, DrvJoy1 + 14, "p2 fire 3" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service", BIT_DIGITAL, DrvJoy2 + 2, "service" },
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip" },
-};
-
-STDINPUTINFO(Dietgo)
-
-static struct BurnDIPInfo DietgoDIPList[]=
-{
- {0x14, 0xff, 0xff, 0xff, NULL },
- {0x15, 0xff, 0xff, 0xff, NULL },
-
- {0 , 0xfe, 0 , 8, "Coin A" },
- {0x14, 0x01, 0x07, 0x00, "3 Coins 1 Credits" },
- {0x14, 0x01, 0x07, 0x01, "2 Coins 1 Credits" },
- {0x14, 0x01, 0x07, 0x07, "1 Coin 1 Credits" },
- {0x14, 0x01, 0x07, 0x06, "1 Coin 2 Credits" },
- {0x14, 0x01, 0x07, 0x05, "1 Coin 3 Credits" },
- {0x14, 0x01, 0x07, 0x04, "1 Coin 4 Credits" },
- {0x14, 0x01, 0x07, 0x03, "1 Coin 5 Credits" },
- {0x14, 0x01, 0x07, 0x02, "1 Coin 6 Credits" },
-
- {0 , 0xfe, 0 , 8, "Coin B" },
- {0x14, 0x01, 0x38, 0x00, "3 Coins 1 Credits" },
- {0x14, 0x01, 0x38, 0x08, "2 Coins 1 Credits" },
- {0x14, 0x01, 0x38, 0x38, "1 Coin 1 Credits" },
- {0x14, 0x01, 0x38, 0x30, "1 Coin 2 Credits" },
- {0x14, 0x01, 0x38, 0x28, "1 Coin 3 Credits" },
- {0x14, 0x01, 0x38, 0x20, "1 Coin 4 Credits" },
- {0x14, 0x01, 0x38, 0x18, "1 Coin 5 Credits" },
- {0x14, 0x01, 0x38, 0x10, "1 Coin 6 Credits" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x14, 0x01, 0x40, 0x40, "Off" },
- {0x14, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Continue Coin" },
- {0x14, 0x01, 0x80, 0x80, "1 Start/1 Continue" },
- {0x14, 0x01, 0x80, 0x00, "2 Start/1 Continue" },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x15, 0x01, 0x03, 0x01, "1" },
- {0x15, 0x01, 0x03, 0x00, "2" },
- {0x15, 0x01, 0x03, 0x03, "3" },
- {0x15, 0x01, 0x03, 0x02, "4" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x15, 0x01, 0x0c, 0x08, "Easy" },
- {0x15, 0x01, 0x0c, 0x0c, "Normal" },
- {0x15, 0x01, 0x0c, 0x04, "Hard" },
- {0x15, 0x01, 0x0c, 0x00, "Hardest" },
-
- {0 , 0xfe, 0 , 2, "Free Play" },
- {0x15, 0x01, 0x10, 0x10, "Off" },
- {0x15, 0x01, 0x10, 0x00, "On" },
-};
-
-STDDIPINFO(Dietgo)
-
-void __fastcall dietgogo_main_write_word(UINT32 address, UINT16 data)
-{
- deco16_write_control_word(0, address, 0x200000, data)
-
- if (address >= 0x340000 && address <= 0x343fff) {
- deco146_104_prot_ww(0, address, data);
- }
-}
-
-void __fastcall dietgogo_main_write_byte(UINT32 address, UINT8 data)
-{
- if (address >= 0x340000 && address <= 0x343fff) {
- deco146_104_prot_wb(0, address, data);
- }
-}
-
-UINT16 __fastcall dietgogo_main_read_word(UINT32 address)
-{
- if (address >= 0x340000 && address <= 0x343fff) {
- return deco146_104_prot_rw(0, address);
- }
-
- return 0;
-}
-
-UINT8 __fastcall dietgogo_main_read_byte(UINT32 address)
-{
- if (address >= 0x340000 && address <= 0x343fff) {
- return deco146_104_prot_rb(0, address);
- }
-
- return 0;
-}
-
-static INT32 dietgo_bank_callback(const INT32 bank)
-{
- return ((bank >> 4) & 0x7) * 0x1000;
-}
-
-static UINT16 inputs_read()
-{
- return DrvInputs[0];
-}
-
-static UINT16 system_read()
-{
- return (DrvInputs[1] & 7) | deco16_vblank;
-}
-
-static UINT16 dips_read()
-{
- return (DrvDips[1] << 8) | (DrvDips[0] << 0);
-}
-
-static void soundlatch_write(UINT16 data)
-{
- deco16_soundlatch = data & 0xff;
- h6280SetIRQLine(0, CPU_IRQSTATUS_ACK);
-}
-
-static INT32 DrvDoReset()
-{
- memset (AllRam, 0, RamEnd - AllRam);
-
- SekOpen(0);
- SekReset();
- SekClose();
-
- deco16SoundReset();
-
- deco16Reset();
-
- return 0;
-}
-
-static INT32 MemIndex()
-{
- UINT8 *Next; Next = AllMem;
-
- Drv68KROM = Next; Next += 0x080000;
- Drv68KCode = Next; Next += 0x080000;
- DrvHucROM = Next; Next += 0x010000;
-
- DrvGfxROM0 = Next; Next += 0x200000;
- DrvGfxROM1 = Next; Next += 0x200000;
- DrvGfxROM2 = Next; Next += 0x400000;
-
- MSM6295ROM = Next;
- DrvSndROM = Next; Next += 0x080000;
-
- DrvPalette = (UINT32*)Next; Next += 0x0300 * sizeof(UINT32);
-
- AllRam = Next;
-
- Drv68KRAM = Next; Next += 0x010000;
- DrvSprRAM = Next; Next += 0x000800;
- DrvPalRAM = Next; Next += 0x000c00;
- DrvHucRAM = Next; Next += 0x002000;
-
- soundlatch = Next; Next += 0x000001;
- flipscreen = Next; Next += 0x000001;
-
- RamEnd = Next;
-
- MemEnd = Next;
-
- return 0;
-}
-
-static INT32 DrvInit()
-{
- BurnSetRefreshRate(58.00);
-
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(Drv68KROM + 0x00000, 0, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x00001, 1, 2)) return 1;
-
- if (BurnLoadRom(DrvHucROM + 0x00000, 2, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM1 + 0x00000, 3, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM2 + 0x00000, 4, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x00001, 5, 2)) return 1;
-
- if (BurnLoadRom(DrvSndROM + 0x00000, 6, 1)) return 1;
-
- deco102_decrypt_cpu(Drv68KROM, Drv68KCode, 0x80000, 0xe9ba, 0x01, 0x19);
-
- deco56_decrypt_gfx(DrvGfxROM1, 0x100000);
-
- deco16_tile_decode(DrvGfxROM1, DrvGfxROM0, 0x100000, 1);
- deco16_tile_decode(DrvGfxROM1, DrvGfxROM1, 0x100000, 0);
- deco16_sprite_decode(DrvGfxROM2, 0x200000);
- }
-
- deco16Init(1, 0, 1);
- deco16_set_graphics(DrvGfxROM0, 0x100000 * 2, DrvGfxROM1, 0x100000 * 2, NULL, 0);
- deco16_set_global_offsets(0, 8);
- deco16_set_bank_callback(0, dietgo_bank_callback);
- deco16_set_bank_callback(1, dietgo_bank_callback);
-
- // 146_104 prot
- deco_104_init();
- deco_146_104_set_port_a_cb(inputs_read); // inputs
- deco_146_104_set_port_b_cb(system_read); // system
- deco_146_104_set_port_c_cb(dips_read); // dips
- deco_146_104_set_soundlatch_cb(soundlatch_write);
- deco_146_104_set_interface_scramble_interleave();
- deco_146_104_set_use_magic_read_address_xor(1);
-
- SekInit(0, 0x68000);
- SekOpen(0);
- SekMapMemory(Drv68KROM, 0x000000, 0x07ffff, MAP_READ);
- SekMapMemory(Drv68KCode, 0x000000, 0x07ffff, MAP_FETCH);
- SekMapMemory(deco16_pf_ram[0], 0x210000, 0x211fff, MAP_RAM);
- SekMapMemory(deco16_pf_ram[1], 0x212000, 0x213fff, MAP_RAM);
- SekMapMemory(deco16_pf_rowscroll[0], 0x220000, 0x2207ff, MAP_RAM);
- SekMapMemory(deco16_pf_rowscroll[1], 0x222000, 0x2227ff, MAP_RAM);
- SekMapMemory(DrvSprRAM, 0x280000, 0x2807ff, MAP_RAM);
- SekMapMemory(DrvPalRAM, 0x300000, 0x300bff, MAP_RAM);
- SekMapMemory(Drv68KRAM, 0x380000, 0x38ffff, MAP_RAM);
- SekSetWriteWordHandler(0, dietgogo_main_write_word);
- SekSetWriteByteHandler(0, dietgogo_main_write_byte);
- SekSetReadWordHandler(0, dietgogo_main_read_word);
- SekSetReadByteHandler(0, dietgogo_main_read_byte);
- SekClose();
-
- deco16SoundInit(DrvHucROM, DrvHucRAM, 2685000, 0, NULL, 0.45, 1006875, 0.60, 0, 0);
-
- GenericTilesInit();
-
- DrvDoReset();
-
- return 0;
-}
-
-static INT32 DrvExit()
-{
- GenericTilesExit();
-
- deco16Exit();
- deco16SoundExit();
-
- SekExit();
-
- BurnFree (AllMem);
-
- return 0;
-}
-
-static void draw_sprites()
-{
- UINT16 *ram = (UINT16*)DrvSprRAM;
-
- for (INT32 offs = 0; offs < 0x400; offs += 4)
- {
- if (BURN_ENDIAN_SWAP_INT16(ram[offs + 1]) == 0) continue;
-
- INT32 inc, mult;
-
- INT32 sy = BURN_ENDIAN_SWAP_INT16(ram[offs + 0]);
- INT32 code = BURN_ENDIAN_SWAP_INT16(ram[offs + 1]) & 0x3fff;
- INT32 sx = BURN_ENDIAN_SWAP_INT16(ram[offs + 2]);
-
- if ((sy & 0x1000) && (nCurrentFrame & 1)) continue;
-
- INT32 color = (sx >> 9) & 0x1f;
-
- INT32 flipx = sy & 0x2000;
- INT32 flipy = sy & 0x4000;
- INT32 multi = (1 << ((sy & 0x0600) >> 9)) - 1;
-
- sx &= 0x01ff;
- sy &= 0x01ff;
- if (sx >= 320) sx -= 512;
- if (sy >= 256) sy -= 512;
- sy = 240 - sy;
- sx = 304 - sx;
-
- code &= ~multi;
-
- if (flipy) {
- inc = -1;
- } else {
- code += multi;
- inc = 1;
- }
-
- if (*flipscreen)
- {
- sy = 240 - sy;
- sx = 304 - sx;
- flipx = !flipx;
- flipy = !flipy;
- mult = 16;
- }
- else
- mult = -16;
-
- if (sx >= 320 || sx < -15) continue;
-
- while (multi >= 0)
- {
- if (flipy) {
- if (flipx) {
- Render16x16Tile_Mask_FlipXY_Clip(pTransDraw, code - multi * inc, sx, (sy + mult * multi) - 8, color, 4, 0, 0x200, DrvGfxROM2);
- } else {
- Render16x16Tile_Mask_FlipY_Clip(pTransDraw, code - multi * inc, sx, (sy + mult * multi) - 8, color, 4, 0, 0x200, DrvGfxROM2);
- }
- } else {
- if (flipx) {
- Render16x16Tile_Mask_FlipX_Clip(pTransDraw, code - multi * inc, sx, (sy + mult * multi) - 8, color, 4, 0, 0x200, DrvGfxROM2);
- } else {
- Render16x16Tile_Mask_Clip(pTransDraw, code - multi * inc, sx, (sy + mult * multi) - 8, color, 4, 0, 0x200, DrvGfxROM2);
- }
- }
-
- multi--;
- }
- }
-}
-
-static INT32 DrvDraw()
-{
-// if (DrvRecalc) {
- deco16_palette_recalculate(DrvPalette, DrvPalRAM);
- DrvRecalc = 0;
-// }
-
- deco16_pf12_update();
-
- for (INT32 i = 0; i < nScreenWidth * nScreenHeight; i++) {
- pTransDraw[i] = 0x100;
- }
-
- if (nBurnLayer & 1) deco16_draw_layer(1, pTransDraw, DECO16_LAYER_OPAQUE);
-
- if (nBurnLayer & 2) deco16_draw_layer(0, pTransDraw, 0);
-
- if (nBurnLayer & 4) draw_sprites();
-
- BurnTransferCopy(DrvPalette);
-
- return 0;
-}
-
-static INT32 DrvFrame()
-{
- if (DrvReset) {
- DrvDoReset();
- }
-
- h6280NewFrame();
-
- {
- memset (DrvInputs, 0xff, 2 * sizeof(UINT16));
- for (INT32 i = 0; i < 16; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- }
- }
-
- INT32 nInterleave = 232; //256;
- INT32 nSoundBufferPos = 0;
- INT32 nCyclesTotal[2] = { 14000000 / 58, 2685000 / 58 };
- INT32 nCyclesDone[2] = { 0, 0 };
-
- SekOpen(0);
- h6280Open(0);
-
- deco16_vblank = 0;
-
- for (INT32 i = 0; i < nInterleave; i++)
- {
- nCyclesDone[0] += SekRun(nCyclesTotal[0] / nInterleave);
- nCyclesDone[1] += h6280Run(nCyclesTotal[1] / nInterleave);
-
- if (i == 208) deco16_vblank = 0x08;
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen / nInterleave;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- deco16SoundUpdate(pSoundBuf, nSegmentLength);
- nSoundBufferPos += nSegmentLength;
- }
- }
-
- SekSetIRQLine(6, CPU_IRQSTATUS_AUTO);
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
-
- if (nSegmentLength) {
- deco16SoundUpdate(pSoundBuf, nSegmentLength);
- }
- }
-
- h6280Close();
- SekClose();
-
- if (pBurnDraw) {
- DrvDraw();
- }
-
- return 0;
-}
-
-static INT32 DrvScan(INT32 nAction, INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin != NULL) {
- *pnMin = 0x029722;
- }
-
- if (nAction & ACB_MEMORY_RAM) {
- memset(&ba, 0, sizeof(ba));
- ba.Data = AllRam;
- ba.nLen = RamEnd-AllRam;
- ba.szName = "All Ram";
- BurnAcb(&ba);
- }
-
- if (nAction & ACB_DRIVER_DATA) {
- SekScan(nAction);
-
- deco16SoundScan(nAction, pnMin);
-
- deco16Scan();
- }
-
- return 0;
-}
-
-
-// Diet Go Go (USA v1.1 1992.09.26)
-
-static struct BurnRomInfo dietgouRomDesc[] = {
- { "jx_00-.4h", 0x040000, 0x1a9de04f, 1 | BRF_PRG | BRF_ESS }, // 0 68k Code
- { "jx_01-.5h", 0x040000, 0x79c097c8, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "jx_02.14m", 0x010000, 0x4e3492a5, 2 | BRF_PRG | BRF_ESS }, // 2 Huc6280 Code
-
- { "may-00.10a", 0x100000, 0x234d1f8d, 3 | BRF_GRA }, // 3 Characters & Background Tiles
-
- { "may-01.14a", 0x100000, 0x2da57d04, 4 | BRF_GRA }, // 4 Sprites
- { "may-02.16a", 0x100000, 0x3a66a713, 4 | BRF_GRA }, // 5
-
- { "may-03.11l", 0x080000, 0xb6e42bae, 5 | BRF_SND }, // 6 OKI M6295 Samples
-
- { "pal16l8b_vd-00.6h", 0x000104, 0x00000000, 6 | BRF_NODUMP }, // 7 PLDs
- { "pal16l8b_vd-01.7h", 0x000104, 0x00000000, 6 | BRF_NODUMP }, // 8
- { "pal16r6a_vd-02.11h", 0x000104, 0x00000000, 6 | BRF_NODUMP }, // 9
-};
-
-STD_ROM_PICK(dietgou)
-STD_ROM_FN(dietgou)
-
-struct BurnDriver BurnDrvDietgou = {
- "dietgou", "dietgo", NULL, NULL, "1992",
- "Diet Go Go (USA v1.1 1992.09.26)\0", NULL, "Data East Corporation", "DECO IC16",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_DATAEAST, GBF_PLATFORM, 0,
- NULL, dietgouRomInfo, dietgouRomName, NULL, NULL, DietgoInputInfo, DietgoDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x300,
- 320, 240, 4, 3
-};
-
-
-// Diet Go Go (Euro v1.1 1992.08.04)
-
-static struct BurnRomInfo dietgoeRomDesc[] = {
- { "jy_00-1.4h", 0x040000, 0x8bce137d, 1 | BRF_PRG | BRF_ESS }, // 0 68k Code
- { "jy_01-1.5h", 0x040000, 0xeca50450, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "jy_02.14m", 0x010000, 0x4e3492a5, 2 | BRF_PRG | BRF_ESS }, // 2 Huc6280 Code
-
- { "may-00.10a", 0x100000, 0x234d1f8d, 3 | BRF_GRA }, // 3 Characters & Background Tiles
-
- { "may-01.14a", 0x100000, 0x2da57d04, 4 | BRF_GRA }, // 4 Sprites
- { "may-02.16a", 0x100000, 0x3a66a713, 4 | BRF_GRA }, // 5
-
- { "may-03.11l", 0x080000, 0xb6e42bae, 5 | BRF_SND }, // 6 OKI M6295 Samples
-
- { "pal16l8b_vd-00.6h", 0x000104, 0x00000000, 6 | BRF_NODUMP }, // 7 PLDs
- { "pal16l8b_vd-01.7h", 0x000104, 0x00000000, 6 | BRF_NODUMP }, // 8
- { "pal16r6a_vd-02.11h", 0x000104, 0x00000000, 6 | BRF_NODUMP }, // 9
-};
-
-STD_ROM_PICK(dietgoe)
-STD_ROM_FN(dietgoe)
-
-struct BurnDriver BurnDrvDietgoe = {
- "dietgoe", "dietgo", NULL, NULL, "1992",
- "Diet Go Go (Euro v1.1 1992.08.04)\0", NULL, "Data East Corporation", "DECO IC16",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_DATAEAST, GBF_PLATFORM, 0,
- NULL, dietgoeRomInfo, dietgoeRomName, NULL, NULL, DietgoInputInfo, DietgoDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x300,
- 320, 240, 4, 3
-};
-
-
-// Diet Go Go (Euro v1.1 1992.09.26)
-
-static struct BurnRomInfo dietgoRomDesc[] = {
- { "jy_00-2.4h", 0x040000, 0x014dcf62, 1 | BRF_PRG | BRF_ESS }, // 0 68k Code
- { "jy_01-2.5h", 0x040000, 0x793ebd83, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "jy_02.14m", 0x010000, 0x4e3492a5, 2 | BRF_PRG | BRF_ESS }, // 2 Huc6280 Code
-
- { "may-00.10a", 0x100000, 0x234d1f8d, 3 | BRF_GRA }, // 3 Characters & Background Tiles
-
- { "may-01.14a", 0x100000, 0x2da57d04, 4 | BRF_GRA }, // 4 Sprites
- { "may-02.16a", 0x100000, 0x3a66a713, 4 | BRF_GRA }, // 5
-
- { "may-03.11l", 0x080000, 0xb6e42bae, 5 | BRF_SND }, // 6 OKI M6295 Samples
-
- { "pal16l8b_vd-00.6h", 0x000104, 0x00000000, 6 | BRF_NODUMP }, // 7 PLDs
- { "pal16l8b_vd-01.7h", 0x000104, 0x00000000, 6 | BRF_NODUMP }, // 8
- { "pal16r6a_vd-02.11h", 0x000104, 0x00000000, 6 | BRF_NODUMP }, // 9
-};
-
-STD_ROM_PICK(dietgo)
-STD_ROM_FN(dietgo)
-
-struct BurnDriver BurnDrvDietgo = {
- "dietgo", NULL, NULL, NULL, "1992",
- "Diet Go Go (Euro v1.1 1992.09.26)\0", NULL, "Data East Corporation", "DECO IC16",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_PREFIX_DATAEAST, GBF_PLATFORM, 0,
- NULL, dietgoRomInfo, dietgoRomName, NULL, NULL, DietgoInputInfo, DietgoDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x300,
- 320, 240, 4, 3
-};
-
-
-// Diet Go Go (Japan v1.1 1992.09.26)
-
-static struct BurnRomInfo dietgojRomDesc[] = {
- { "jw_00-2.4h", 0x040000, 0xe6ba6c49, 1 | BRF_PRG | BRF_ESS }, // 0 68k Code
- { "jw_01-2.5h", 0x040000, 0x684a3d57, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "jw_02.14m", 0x010000, 0x4e3492a5, 2 | BRF_PRG | BRF_ESS }, // 2 Huc6280 Code
-
- { "may-00.10a", 0x100000, 0x234d1f8d, 3 | BRF_GRA }, // 3 Characters & Background Tiles
-
- { "may-01.14a", 0x100000, 0x2da57d04, 4 | BRF_GRA }, // 4 Sprites
- { "may-02.16a", 0x100000, 0x3a66a713, 4 | BRF_GRA }, // 5
-
- { "may-03.11l", 0x080000, 0xb6e42bae, 5 | BRF_SND }, // 6 OKI M6295 Samples
-
- { "pal16l8b_vd-00.6h", 0x000104, 0x00000000, 6 | BRF_NODUMP }, // 7 PLDs
- { "pal16l8b_vd-01.7h", 0x000104, 0x00000000, 6 | BRF_NODUMP }, // 8
- { "pal16r6a_vd-02.11h", 0x000104, 0x00000000, 6 | BRF_NODUMP }, // 9
-};
-
-STD_ROM_PICK(dietgoj)
-STD_ROM_FN(dietgoj)
-
-struct BurnDriver BurnDrvDietgoj = {
- "dietgoj", "dietgo", NULL, NULL, "1992",
- "Diet Go Go (Japan v1.1 1992.09.26)\0", NULL, "Data East Corporation", "DECO IC16",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_DATAEAST, GBF_PLATFORM, 0,
- NULL, dietgojRomInfo, dietgojRomName, NULL, NULL, DietgoInputInfo, DietgoDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x300,
- 320, 240, 4, 3
-};
diff --git a/jan/src/burn/drv/dataeast/d_funkyjet.cpp b/jan/src/burn/drv/dataeast/d_funkyjet.cpp
deleted file mode 100644
index 7589a0619..000000000
--- a/jan/src/burn/drv/dataeast/d_funkyjet.cpp
+++ /dev/null
@@ -1,764 +0,0 @@
-// FB Alpha Funky Jet driver module
-// Based on MAME driver by Bryan McPhail
-
-#include "tiles_generic.h"
-#include "m68000_intf.h"
-#include "h6280_intf.h"
-#include "deco16ic.h"
-#include "msm6295.h"
-#include "burn_ym2151.h"
-#include "deco146.h"
-
-static UINT8 *AllMem;
-static UINT8 *MemEnd;
-static UINT8 *AllRam;
-static UINT8 *RamEnd;
-static UINT8 *Drv68KROM;
-static UINT8 *DrvHucROM;
-static UINT8 *DrvGfxROM0;
-static UINT8 *DrvGfxROM1;
-static UINT8 *DrvGfxROM2;
-static UINT8 *DrvSndROM;
-static UINT8 *Drv68KRAM;
-static UINT8 *DrvHucRAM;
-static UINT8 *DrvPalRAM;
-static UINT8 *DrvSprRAM;
-
-static UINT32 *DrvPalette;
-static UINT8 DrvRecalc;
-
-static UINT8 *flipscreen;
-
-static UINT8 DrvJoy1[16];
-static UINT8 DrvJoy2[16];
-static UINT8 DrvDips[2];
-static UINT8 DrvReset;
-static UINT16 DrvInputs[3];
-
-static struct BurnInputInfo FunkyjetInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy2 + 0, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 7, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy1 + 0, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy1 + 1, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy1 + 2, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy1 + 3, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy1 + 4, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy1 + 5, "p1 fire 2" },
- {"P1 Button 3", BIT_DIGITAL, DrvJoy1 + 6, "p1 fire 3" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy2 + 1, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy1 + 15, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvJoy1 + 8, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy1 + 9, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy1 + 10, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy1 + 11, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy1 + 12, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy1 + 13, "p2 fire 2" },
- {"P2 Button 3", BIT_DIGITAL, DrvJoy1 + 14, "p2 fire 3" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service", BIT_DIGITAL, DrvJoy2 + 2, "service" },
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip" },
-};
-
-STDINPUTINFO(Funkyjet)
-
-static struct BurnDIPInfo FunkyjetDIPList[]=
-{
- {0x14, 0xff, 0xff, 0xff, NULL },
- {0x15, 0xff, 0xff, 0xff, NULL },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x14, 0x01, 0x01, 0x01, "Off" },
- {0x14, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x14, 0x01, 0x02, 0x02, "Off" },
- {0x14, 0x01, 0x02, 0x00, "On" },
-
- {0 , 0xfe, 0 , 8, "Coin B" },
- {0x14, 0x01, 0x1c, 0x00, "3 Coins 1 Credits" },
- {0x14, 0x01, 0x1c, 0x10, "2 Coins 1 Credits" },
- {0x14, 0x01, 0x1c, 0x1c, "1 Coin 1 Credits" },
- {0x14, 0x01, 0x1c, 0x0c, "1 Coin 2 Credits" },
- {0x14, 0x01, 0x1c, 0x14, "1 Coin 3 Credits" },
- {0x14, 0x01, 0x1c, 0x04, "1 Coin 4 Credits" },
- {0x14, 0x01, 0x1c, 0x18, "1 Coin 5 Credits" },
- {0x14, 0x01, 0x1c, 0x08, "1 Coin 6 Credits" },
-
- {0 , 0xfe, 0 , 8, "Coin A" },
- {0x14, 0x01, 0xe0, 0x00, "3 Coins 1 Credits" },
- {0x14, 0x01, 0xe0, 0x80, "2 Coins 1 Credits" },
- {0x14, 0x01, 0xe0, 0xe0, "1 Coin 1 Credits" },
- {0x14, 0x01, 0xe0, 0x60, "1 Coin 2 Credits" },
- {0x14, 0x01, 0xe0, 0xa0, "1 Coin 3 Credits" },
- {0x14, 0x01, 0xe0, 0x20, "1 Coin 4 Credits" },
- {0x14, 0x01, 0xe0, 0xc0, "1 Coin 5 Credits" },
- {0x14, 0x01, 0xe0, 0x40, "1 Coin 6 Credits" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x15, 0x01, 0x01, 0x00, "Off" },
- {0x15, 0x01, 0x01, 0x01, "On" },
-
- {0 , 0xfe, 0 , 2, "Allow Continue" },
- {0x15, 0x01, 0x02, 0x00, "No" },
- {0x15, 0x01, 0x02, 0x02, "Yes" },
-
- {0 , 0xfe, 0 , 2, "Free Play" },
- {0x15, 0x01, 0x04, 0x04, "Off" },
- {0x15, 0x01, 0x04, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Freeze" },
- {0x15, 0x01, 0x08, 0x08, "Off" },
- {0x15, 0x01, 0x08, 0x00, "On" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x15, 0x01, 0x30, 0x10, "Easy" },
- {0x15, 0x01, 0x30, 0x30, "Normal" },
- {0x15, 0x01, 0x30, 0x20, "Hard" },
- {0x15, 0x01, 0x30, 0x00, "Hardest" },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x15, 0x01, 0xc0, 0x80, "1" },
- {0x15, 0x01, 0xc0, 0xc0, "2" },
- {0x15, 0x01, 0xc0, 0x40, "3" },
- {0x15, 0x01, 0xc0, 0x00, "4" },
-};
-
-STDDIPINFO(Funkyjet)
-
-static struct BurnDIPInfo FunkyjetjDIPList[]=
-{
- {0x14, 0xff, 0xff, 0xff, NULL },
- {0x15, 0xff, 0xff, 0xff, NULL },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x14, 0x01, 0x01, 0x01, "Off" },
- {0x14, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x14, 0x01, 0x02, 0x02, "Off" },
- {0x14, 0x01, 0x02, 0x00, "On" },
-
- {0 , 0xfe, 0 , 8, "Coin B" },
- {0x14, 0x01, 0x1c, 0x00, "3 Coins 1 Credits" },
- {0x14, 0x01, 0x1c, 0x10, "2 Coins 1 Credits" },
- {0x14, 0x01, 0x1c, 0x1c, "1 Coin 1 Credits" },
- {0x14, 0x01, 0x1c, 0x0c, "1 Coin 2 Credits" },
- {0x14, 0x01, 0x1c, 0x14, "1 Coin 3 Credits" },
- {0x14, 0x01, 0x1c, 0x04, "1 Coin 4 Credits" },
- {0x14, 0x01, 0x1c, 0x18, "1 Coin 5 Credits" },
- {0x14, 0x01, 0x1c, 0x08, "1 Coin 6 Credits" },
-
- {0 , 0xfe, 0 , 8, "Coin A" },
- {0x14, 0x01, 0xe0, 0x00, "3 Coins 1 Credits" },
- {0x14, 0x01, 0xe0, 0x80, "2 Coins 1 Credits" },
- {0x14, 0x01, 0xe0, 0xe0, "1 Coin 1 Credits" },
- {0x14, 0x01, 0xe0, 0x60, "1 Coin 2 Credits" },
- {0x14, 0x01, 0xe0, 0xa0, "1 Coin 3 Credits" },
- {0x14, 0x01, 0xe0, 0x20, "1 Coin 4 Credits" },
- {0x14, 0x01, 0xe0, 0xc0, "1 Coin 5 Credits" },
- {0x14, 0x01, 0xe0, 0x40, "1 Coin 6 Credits" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x15, 0x01, 0x01, 0x01, "Off" },
- {0x15, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Allow Continue" },
- {0x15, 0x01, 0x02, 0x00, "No" },
- {0x15, 0x01, 0x02, 0x02, "Yes" },
-
- {0 , 0xfe, 0 , 2, "Free Play" },
- {0x15, 0x01, 0x04, 0x04, "Off" },
- {0x15, 0x01, 0x04, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Freeze" },
- {0x15, 0x01, 0x08, 0x08, "Off" },
- {0x15, 0x01, 0x08, 0x00, "On" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x15, 0x01, 0x30, 0x10, "Easy" },
- {0x15, 0x01, 0x30, 0x30, "Normal" },
- {0x15, 0x01, 0x30, 0x20, "Hard" },
- {0x15, 0x01, 0x30, 0x00, "Hardest" },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x15, 0x01, 0xc0, 0x80, "1" },
- {0x15, 0x01, 0xc0, 0xc0, "2" },
- {0x15, 0x01, 0xc0, 0x40, "3" },
- {0x15, 0x01, 0xc0, 0x00, "4" },
-};
-
-STDDIPINFO(Funkyjetj)
-
-static struct BurnDIPInfo SotsugyoDIPList[]=
-{
- {0x14, 0xff, 0xff, 0xff, NULL },
- {0x15, 0xff, 0xff, 0xed, NULL },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x14, 0x01, 0x01, 0x01, "Off" },
- {0x14, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x14, 0x01, 0x02, 0x02, "Off" },
- {0x14, 0x01, 0x02, 0x00, "On" },
-
- {0 , 0xfe, 0 , 8, "Coin B" },
- {0x14, 0x01, 0x1c, 0x00, "3 Coins 1 Credits" },
- {0x14, 0x01, 0x1c, 0x10, "2 Coins 1 Credits" },
- {0x14, 0x01, 0x1c, 0x1c, "1 Coin 1 Credits" },
- {0x14, 0x01, 0x1c, 0x0c, "1 Coin 2 Credits" },
- {0x14, 0x01, 0x1c, 0x14, "1 Coin 3 Credits" },
- {0x14, 0x01, 0x1c, 0x04, "1 Coin 4 Credits" },
- {0x14, 0x01, 0x1c, 0x18, "1 Coin 5 Credits" },
- {0x14, 0x01, 0x1c, 0x08, "1 Coin 6 Credits" },
-
- {0 , 0xfe, 0 , 8, "Coin A" },
- {0x14, 0x01, 0xe0, 0x00, "3 Coins 1 Credits" },
- {0x14, 0x01, 0xe0, 0x80, "2 Coins 1 Credits" },
- {0x14, 0x01, 0xe0, 0xe0, "1 Coin 1 Credits" },
- {0x14, 0x01, 0xe0, 0x60, "1 Coin 2 Credits" },
- {0x14, 0x01, 0xe0, 0xa0, "1 Coin 3 Credits" },
- {0x14, 0x01, 0xe0, 0x20, "1 Coin 4 Credits" },
- {0x14, 0x01, 0xe0, 0xc0, "1 Coin 5 Credits" },
- {0x14, 0x01, 0xe0, 0x40, "1 Coin 6 Credits" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x15, 0x01, 0x02, 0x02, "Off" },
- {0x15, 0x01, 0x02, 0x00, "On" },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x15, 0x01, 0x0c, 0x04, "1" },
- {0x15, 0x01, 0x0c, 0x08, "2" },
- {0x15, 0x01, 0x0c, 0x0c, "3" },
- {0x15, 0x01, 0x0c, 0x00, "4" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x15, 0x01, 0x30, 0x30, "Easy" },
- {0x15, 0x01, 0x30, 0x20, "Normal" },
- {0x15, 0x01, 0x30, 0x10, "Hard" },
- {0x15, 0x01, 0x30, 0x00, "Hardest" },
-
- {0 , 0xfe, 0 , 2, "Free Play" },
- {0x15, 0x01, 0x40, 0x40, "Off" },
- {0x15, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Freeze" },
- {0x15, 0x01, 0x80, 0x80, "Off" },
- {0x15, 0x01, 0x80, 0x00, "On" },
-};
-
-STDDIPINFO(Sotsugyo)
-
-static void __fastcall funkyjet_main_write_word(UINT32 address, UINT16 data)
-{
- deco16_write_control_word(0, address, 0x300000, data)
-
- if ((address & 0xffc000) == 0x180000) {
- deco146_104_prot_ww(0, address, data);
- return;
- }
-}
-
-static void __fastcall funkyjet_main_write_byte(UINT32 address, UINT8 data)
-{
- if ((address & 0xffc000) == 0x180000) {
- deco146_104_prot_wb(0, address, data);
- return;
- }
-}
-
-static UINT16 __fastcall funkyjet_main_read_word(UINT32 address)
-{
- if ((address & 0xffc000) == 0x180000) {
- return deco146_104_prot_rw(0, address);
- }
-
- return 0;
-}
-
-static UINT8 __fastcall funkyjet_main_read_byte(UINT32 address)
-{
- if ((address & 0xffc000) == 0x180000) {
- return deco146_104_prot_rb(0, address);
- }
-
- return 0;
-}
-
-static UINT16 inputs_read()
-{
- return DrvInputs[0];
-}
-
-static UINT16 system_read()
-{
- return (DrvInputs[1] & 7) | deco16_vblank;
-}
-
-static UINT16 dips_read()
-{
- return DrvInputs[2];
-}
-
-static void soundlatch_write(UINT16 data)
-{
- deco16_soundlatch = data & 0xff;
- h6280SetIRQLine(0, CPU_IRQSTATUS_ACK);
-}
-
-static INT32 DrvDoReset()
-{
- memset (AllRam, 0, RamEnd - AllRam);
-
- SekOpen(0);
- SekReset();
- SekClose();
-
- deco16SoundReset();
-
- deco16Reset();
-
- return 0;
-}
-
-static INT32 MemIndex()
-{
- UINT8 *Next; Next = AllMem;
-
- Drv68KROM = Next; Next += 0x080000;
- DrvHucROM = Next; Next += 0x010000;
-
- DrvGfxROM0 = Next; Next += 0x100000;
- DrvGfxROM1 = Next; Next += 0x100000;
- DrvGfxROM2 = Next; Next += 0x200000;
-
- MSM6295ROM = Next;
- DrvSndROM = Next; Next += 0x040000;
-
- DrvPalette = (UINT32*)Next; Next += 0x0400 * sizeof(UINT32);
-
- AllRam = Next;
-
- Drv68KRAM = Next; Next += 0x004000;
- DrvHucRAM = Next; Next += 0x002000;
- DrvSprRAM = Next; Next += 0x000800;
- DrvPalRAM = Next; Next += 0x000800;
-
- flipscreen = Next; Next += 0x000001;
-
- RamEnd = Next;
-
- MemEnd = Next;
-
- return 0;
-}
-
-static INT32 DrvInit()
-{
- BurnSetRefreshRate(58.00);
-
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(Drv68KROM + 0x00001, 0, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x00000, 1, 2)) return 1;
-
- if (BurnLoadRom(DrvHucROM + 0x00000, 2, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM1 + 0x00000, 3, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM2 + 0x00000, 4, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x80000, 5, 1)) return 1;
-
- if (BurnLoadRom(DrvSndROM + 0x00000, 6, 1)) return 1;
-
- deco74_decrypt_gfx(DrvGfxROM1, 0x080000);
-
- deco16_tile_decode(DrvGfxROM1, DrvGfxROM0, 0x080000, 1);
- deco16_tile_decode(DrvGfxROM1, DrvGfxROM1, 0x080000, 0);
- deco16_tile_decode(DrvGfxROM2, DrvGfxROM2, 0x100000, 0);
- }
-
- deco16Init(1, 0, 1);
- deco16_set_graphics(DrvGfxROM0, 0x80000 * 2, DrvGfxROM1, 0x80000 * 2, NULL, 0);
- deco16_set_color_base(0, 256);
- deco16_set_color_base(1, 512);
- deco16_set_global_offsets(0, 8);
-
- SekInit(0, 0x68000);
- SekOpen(0);
- SekMapMemory(Drv68KROM, 0x000000, 0x07ffff, MAP_ROM);
- SekMapMemory(DrvPalRAM, 0x120000, 0x1207ff, MAP_RAM);
- SekMapMemory(Drv68KRAM, 0x140000, 0x143fff, MAP_RAM);
- SekMapMemory(DrvSprRAM, 0x160000, 0x1607ff, MAP_RAM);
- SekMapMemory(deco16_pf_ram[0], 0x320000, 0x321fff, MAP_RAM);
- SekMapMemory(deco16_pf_ram[1], 0x322000, 0x323fff, MAP_RAM);
- SekMapMemory(deco16_pf_rowscroll[0], 0x340000, 0x340bff, MAP_RAM);
- SekMapMemory(deco16_pf_rowscroll[1], 0x342000, 0x342bff, MAP_RAM);
- SekSetWriteWordHandler(0, funkyjet_main_write_word);
- SekSetWriteByteHandler(0, funkyjet_main_write_byte);
- SekSetReadWordHandler(0, funkyjet_main_read_word);
- SekSetReadByteHandler(0, funkyjet_main_read_byte);
- SekClose();
-
- deco_146_init();
- deco_146_104_set_port_a_cb(inputs_read); // inputs
- deco_146_104_set_port_b_cb(system_read); // system
- deco_146_104_set_port_c_cb(dips_read); // dips
- deco_146_104_set_soundlatch_cb(soundlatch_write);
- deco_146_104_set_interface_scramble_interleave();
-
- deco16SoundInit(DrvHucROM, DrvHucRAM, 8055000, 0, NULL, 0.45, 1000000, 0.50, 0, 0);
- BurnYM2151SetRoute(BURN_SND_YM2151_YM2151_ROUTE_1, 0.45, BURN_SND_ROUTE_LEFT);
- BurnYM2151SetRoute(BURN_SND_YM2151_YM2151_ROUTE_2, 0.45, BURN_SND_ROUTE_RIGHT);
-
- GenericTilesInit();
-
- DrvDoReset();
-
- return 0;
-}
-
-static INT32 DrvExit()
-{
- GenericTilesExit();
- deco16Exit();
-
- SekExit();
- deco16SoundExit();
-
- BurnFree (AllMem);
-
- return 0;
-}
-
-static void DrvPaletteRecalc()
-{
- UINT16 *p = (UINT16*)DrvPalRAM;
-
- for (INT32 i = 0; i < 0x800 / 2; i++) {
- INT32 b = (BURN_ENDIAN_SWAP_INT16(p[i]) >> 8) & 0x0f;
- INT32 g = (BURN_ENDIAN_SWAP_INT16(p[i]) >> 4) & 0x0f;
- INT32 r = (BURN_ENDIAN_SWAP_INT16(p[i]) >> 0) & 0x0f;
-
- r |= r << 4;
- g |= g << 4;
- b |= b << 4;
-
- DrvPalette[i] = BurnHighCol(r, g, b, 0);
- }
-}
-
-static void draw_sprites()
-{
- UINT16 *ram = (UINT16*)DrvSprRAM;
-
- for (INT32 offs = 0; offs < 0x400; offs += 4)
- {
- INT32 inc, mult;
-
- INT32 sy = BURN_ENDIAN_SWAP_INT16(ram[offs + 0]);
- INT32 code = BURN_ENDIAN_SWAP_INT16(ram[offs + 1]) & 0x3fff;
- INT32 sx = BURN_ENDIAN_SWAP_INT16(ram[offs + 2]);
-
- if ((sy & 0x1000) && (nCurrentFrame & 1)) continue;
-
- INT32 color = (sx >> 9) & 0x1f;
-
- INT32 flipx = sy & 0x2000;
- INT32 flipy = sy & 0x4000;
- INT32 multi = (1 << ((sy & 0x0600) >> 9)) - 1;
-
- sx &= 0x01ff;
- sy &= 0x01ff;
- if (sx >= 320) sx -= 512;
- if (sy >= 256) sy -= 512;
- sy = 240 - sy;
- sx = 304 - sx;
-
- code &= ~multi;
-
- if (flipy) {
- inc = -1;
- } else {
- code += multi;
- inc = 1;
- }
-
- if (*flipscreen)
- {
- sy = 240 - sy;
- sx = 304 - sx;
- flipx = !flipx;
- flipy = !flipy;
- mult = 16;
- }
- else
- mult = -16;
-
- if (sx >= 320 || sx < -15 || sy >= nScreenHeight) continue;
-
- while (multi >= 0)
- {
- INT32 y = ((sy + mult * multi) & 0x1ff) - 8;
- INT32 c = (code - multi * inc) & 0x3fff;
-
- if (flipy) {
- if (flipx) {
- Render16x16Tile_Mask_FlipXY_Clip(pTransDraw, c, sx, y, color, 4, 0, 0, DrvGfxROM2);
- } else {
- Render16x16Tile_Mask_FlipY_Clip(pTransDraw, c, sx, y, color, 4, 0, 0, DrvGfxROM2);
- }
- } else {
- if (flipx) {
- Render16x16Tile_Mask_FlipX_Clip(pTransDraw, c, sx, y, color, 4, 0, 0, DrvGfxROM2);
- } else {
- Render16x16Tile_Mask_Clip(pTransDraw, c, sx, y, color, 4, 0, 0, DrvGfxROM2);
- }
- }
-
- multi--;
- }
- }
-}
-
-static INT32 DrvDraw()
-{
-// if (DrvRecalc) {
- DrvPaletteRecalc();
- DrvRecalc = 0;
-// }
-
- deco16_pf12_update();
-
- for (INT32 i = 0; i < nScreenWidth * nScreenHeight; i++) {
- pTransDraw[i] = 0x300;
- }
-
- if (nBurnLayer & 1) deco16_draw_layer(1, pTransDraw, DECO16_LAYER_OPAQUE);
- if (nBurnLayer & 2) deco16_draw_layer(0, pTransDraw, 0);
-
- if (nBurnLayer & 4) draw_sprites();
-
- BurnTransferCopy(DrvPalette);
-
- return 0;
-}
-
-static INT32 DrvFrame()
-{
- if (DrvReset) {
- DrvDoReset();
- }
-
- {
- memset (DrvInputs, 0xff, 2 * sizeof(UINT16));
- for (INT32 i = 0; i < 16; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- }
- DrvInputs[2] = (DrvDips[1] << 8) | (DrvDips[0] << 0);
- }
-
- INT32 nInterleave = 232;
- INT32 nSoundBufferPos = 0;
- INT32 nCyclesTotal[2] = { 14000000 / 58, 8055000 / 58 };
- INT32 nCyclesDone[2] = { 0, 0 };
-
- h6280NewFrame();
-
- SekOpen(0);
- h6280Open(0);
-
- deco16_vblank = 0;
-
- for (INT32 i = 0; i < nInterleave; i++)
- {
- nCyclesDone[0] += SekRun(nCyclesTotal[0] / nInterleave);
- nCyclesDone[1] += h6280Run(nCyclesTotal[1] / nInterleave);
-
- if (i == 206) deco16_vblank = 0x08;
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen / nInterleave;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- deco16SoundUpdate(pSoundBuf, nSegmentLength);
- nSoundBufferPos += nSegmentLength;
- }
- }
-
- SekSetIRQLine(6, CPU_IRQSTATUS_AUTO);
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
-
- if (nSegmentLength) {
- deco16SoundUpdate(pSoundBuf, nSegmentLength);
- }
- }
-
- h6280Close();
- SekClose();
-
- if (pBurnDraw) {
- DrvDraw();
- }
-
- return 0;
-}
-
-static INT32 DrvScan(INT32 nAction, INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin != NULL) {
- *pnMin = 0x029722;
- }
-
- if (nAction & ACB_MEMORY_RAM) {
- memset(&ba, 0, sizeof(ba));
- ba.Data = AllRam;
- ba.nLen = RamEnd-AllRam;
- ba.szName = "All Ram";
- BurnAcb(&ba);
- }
-
- if (nAction & ACB_DRIVER_DATA) {
- SekScan(nAction);
-
- deco16SoundScan(nAction, pnMin);
-
- deco16Scan();
- }
-
- return 0;
-}
-
-
-// Funky Jet (World, rev 1)
-
-static struct BurnRomInfo funkyjetRomDesc[] = {
- { "jk00-1.12f", 0x40000, 0xce61579d, 1 | BRF_PRG | BRF_ESS }, // 0 68k Code
- { "jk01-1.13f", 0x40000, 0x274d04be, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "jk02.16f", 0x10000, 0x748c0bd8, 2 | BRF_PRG | BRF_ESS }, // 2 Huc6280 Code
-
- { "mat02", 0x80000, 0xe4b94c7e, 3 | BRF_GRA }, // 3 Characters & Background Tiles
-
- { "mat01", 0x80000, 0x24093a8d, 4 | BRF_GRA }, // 4 Sprites
- { "mat00", 0x80000, 0xfbda0228, 4 | BRF_GRA }, // 5
-
- { "jk03.15h", 0x20000, 0x69a0eaf7, 5 | BRF_SND }, // 6 OKI M6295 Samples
-};
-
-STD_ROM_PICK(funkyjet)
-STD_ROM_FN(funkyjet)
-
-struct BurnDriver BurnDrvFunkyjet = {
- "funkyjet", NULL, NULL, NULL, "1992",
- "Funky Jet (World, rev 1)\0", NULL, "[Data East] (Mitchell license)", "DECO IC16",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_PREFIX_DATAEAST, GBF_PLATFORM, 0,
- NULL, funkyjetRomInfo, funkyjetRomName, NULL, NULL, FunkyjetInputInfo, FunkyjetDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x400,
- 320, 240, 4, 3
-};
-
-
-// Funky Jet (World)
-
-static struct BurnRomInfo funkyjetaRomDesc[] = {
- { "jk00.12f", 0x40000, 0x712089c1, 1 | BRF_PRG | BRF_ESS }, // 0 68k Code
- { "jk01.13f", 0x40000, 0xbe3920d7, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "jk02.16f", 0x10000, 0x748c0bd8, 2 | BRF_PRG | BRF_ESS }, // 2 Huc6280 Code
-
- { "mat02", 0x80000, 0xe4b94c7e, 3 | BRF_GRA }, // 3 Characters & Background Tiles
-
- { "mat01", 0x80000, 0x24093a8d, 4 | BRF_GRA }, // 4 Sprites
- { "mat00", 0x80000, 0xfbda0228, 4 | BRF_GRA }, // 5
-
- { "jk03.15h", 0x20000, 0x69a0eaf7, 5 | BRF_SND }, // 6 OKI M6295 Samples
-};
-
-STD_ROM_PICK(funkyjeta)
-STD_ROM_FN(funkyjeta)
-
-struct BurnDriver BurnDrvFunkyjeta = {
- "funkyjeta", "funkyjet", NULL, NULL, "1992",
- "Funky Jet (World)\0", NULL, "[Data East] (Mitchell license)", "DECO IC16",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_DATAEAST, GBF_PLATFORM, 0,
- NULL, funkyjetaRomInfo, funkyjetaRomName, NULL, NULL, FunkyjetInputInfo, FunkyjetDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x400,
- 320, 240, 4, 3
-};
-
-
-// Funky Jet (Japan, rev 2)
-
-static struct BurnRomInfo funkyjetjRomDesc[] = {
- { "jh00-2.11f", 0x40000, 0x5b98b700, 1 | BRF_PRG | BRF_ESS }, // 0 68k Code
- { "jh01-2.13f", 0x40000, 0x21280220, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "jh02.16f", 0x10000, 0x748c0bd8, 2 | BRF_PRG | BRF_ESS }, // 2 Huc6280 Code
-
- { "mat02", 0x80000, 0xe4b94c7e, 3 | BRF_GRA }, // 3 Characters & Background Tiles
-
- { "mat01", 0x80000, 0x24093a8d, 4 | BRF_GRA }, // 4 Sprites
- { "mat00", 0x80000, 0xfbda0228, 4 | BRF_GRA }, // 5
-
- { "jh03.15h", 0x20000, 0x69a0eaf7, 5 | BRF_SND }, // 6 OKI M6295 Samples
-};
-
-STD_ROM_PICK(funkyjetj)
-STD_ROM_FN(funkyjetj)
-
-struct BurnDriver BurnDrvFunkyjetj = {
- "funkyjetj", "funkyjet", NULL, NULL, "1992",
- "Funky Jet (Japan, rev 2)\0", NULL, "Data East Corporation", "DECO IC16",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_DATAEAST, GBF_PLATFORM, 0,
- NULL, funkyjetjRomInfo, funkyjetjRomName, NULL, NULL, FunkyjetInputInfo, FunkyjetjDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x400,
- 320, 240, 4, 3
-};
-
-
-// Sotsugyo Shousho
-
-static struct BurnRomInfo sotsugyoRomDesc[] = {
- { "03.12f", 0x40000, 0xd175dfd1, 1 | BRF_PRG | BRF_ESS }, // 0 68k Code
- { "04.13f", 0x40000, 0x2072477c, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "sb020.16f", 0x10000, 0xbaf5ec93, 2 | BRF_PRG | BRF_ESS }, // 2 Huc6280 Code
-
- { "02.2f", 0x80000, 0x337b1451, 3 | BRF_GRA }, // 3 Characters & Background Tiles
-
- { "01.4a", 0x80000, 0xfa10dd54, 4 | BRF_GRA }, // 4 Sprites
- { "00.2a", 0x80000, 0xd35a14ef, 4 | BRF_GRA }, // 5
-
- { "sb030.15h", 0x20000, 0x1ea43f48, 5 | BRF_SND }, // 6 OKI M6295 Samples
-};
-
-STD_ROM_PICK(sotsugyo)
-STD_ROM_FN(sotsugyo)
-
-struct BurnDriver BurnDrvSotsugyo = {
- "sotsugyo", NULL, NULL, NULL, "1995",
- "Sotsugyo Shousho\0", NULL, "Mitchell (Atlus license)", "DECO IC16",
- L"\u5352\u696D\u8A3C\u66F8\0Sotsugyo Shousho\0", NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_PREFIX_DATAEAST, GBF_MINIGAMES, 0,
- NULL, sotsugyoRomInfo, sotsugyoRomName, NULL, NULL, FunkyjetInputInfo, SotsugyoDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x400,
- 320, 240, 4, 3
-};
diff --git a/jan/src/burn/drv/dataeast/d_karnov.cpp b/jan/src/burn/drv/dataeast/d_karnov.cpp
deleted file mode 100644
index 448e2a3cb..000000000
--- a/jan/src/burn/drv/dataeast/d_karnov.cpp
+++ /dev/null
@@ -1,1602 +0,0 @@
-// FB Alpha Chelnov / Karnov / Wonder Planet driver module
-// Based on MAME driver by Bryan McPhail
-
-#include "tiles_generic.h"
-#include "m68000_intf.h"
-#include "m6502_intf.h"
-#include "burn_ym2203.h"
-#include "burn_ym3526.h"
-
-static UINT8 *AllMem;
-static UINT8 *AllRam;
-static UINT8 *RamEnd;
-static UINT8 *MemEnd;
-static UINT8 *Drv68KROM;
-static UINT8 *Drv6502ROM;
-static UINT8 *DrvGfxROM0;
-static UINT8 *DrvGfxROM1;
-static UINT8 *DrvGfxROM2;
-static UINT8 *DrvColPROM;
-static UINT8 *Drv68KRAM;
-static UINT8 *DrvPfRAM;
-static UINT8 *Drv6502RAM;
-static UINT8 *DrvVidRAM;
-static UINT8 *DrvSprRAM;
-static UINT8 *DrvSprBuf;
-
-static UINT32 *Palette;
-static UINT32 *DrvPalette;
-static UINT8 DrvRecalc;
-
-static UINT16 *DrvScroll;
-
-static UINT8 *soundlatch;
-static UINT8 *flipscreen;
-
-static UINT16 i8751_return;
-static UINT16 i8751_needs_ack;
-static UINT16 i8751_coin_pending;
-static UINT16 i8751_command_queue;
-static INT32 i8751_level;
-
-static UINT8 DrvJoy1[16];
-static UINT8 DrvJoy2[16];
-static UINT8 DrvJoy3[16];
-static UINT16 DrvInput[3];
-static UINT8 DrvDip[2];
-static UINT8 DrvReset;
-
-#ifdef BUILD_A68K
-static bool bUseAsm68KCoreOldValue = false;
-#endif
-
-enum { KARNOV=0, KARNOVJ, CHELNOV, CHELNOVJ, CHELNOVW, WNDRPLNT };
-static INT32 microcontroller_id;
-static INT32 coin_mask;
-static INT32 vblank;
-
-static struct BurnInputInfo KarnovInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy3 + 2, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy2 + 2, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy1 + 0, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy1 + 1, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy1 + 2, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy1 + 3, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy1 + 4, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy1 + 5, "p1 fire 2" },
- {"P1 Button 3", BIT_DIGITAL, DrvJoy1 + 6, "p1 fire 3" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy3 + 1, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy2 + 3, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvJoy1 + 8, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy1 + 9, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy1 + 10, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy1 + 11, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy1 + 12, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy1 + 13, "p2 fire 2" },
- {"P2 Button 3", BIT_DIGITAL, DrvJoy1 + 14, "p2 fire 3" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service", BIT_DIGITAL, DrvJoy3 + 0, "service" },
- {"Dip A", BIT_DIPSWITCH, DrvDip + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDip + 1, "dip" },
-};
-
-STDINPUTINFO(Karnov)
-
-static struct BurnInputInfo ChelnovInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy3 + 6, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy2 + 2, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy1 + 0, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy1 + 1, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy1 + 2, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy1 + 3, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy1 + 4, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy1 + 5, "p1 fire 2" },
- {"P1 Button 3", BIT_DIGITAL, DrvJoy1 + 6, "p1 fire 3" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy3 + 5, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy2 + 3, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvJoy1 + 8, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy1 + 9, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy1 + 10, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy1 + 11, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy1 + 12, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy1 + 13, "p2 fire 2" },
- {"P2 Button 3", BIT_DIGITAL, DrvJoy1 + 14, "p2 fire 3" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service", BIT_DIGITAL, DrvJoy3 + 7, "service" },
- {"Dip A", BIT_DIPSWITCH, DrvDip + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDip + 1, "dip" },
-};
-
-STDINPUTINFO(Chelnov)
-
-static struct BurnDIPInfo KarnovDIPList[]=
-{
- {0x14, 0xff, 0xff, 0xaf, NULL },
- {0x15, 0xff, 0xff, 0xff, NULL },
-
- {0 , 0xfe, 0 , 4, "Coin B" },
- {0x14, 0x01, 0x03, 0x00, "2 Coins 1 Credits" },
- {0x14, 0x01, 0x03, 0x03, "1 Coin 1 Credits" },
- {0x14, 0x01, 0x03, 0x02, "1 Coin 2 Credits" },
- {0x14, 0x01, 0x03, 0x01, "1 Coin 3 Credits" },
-
- {0 , 0xfe, 0 , 4, "Coin A" },
- {0x14, 0x01, 0x0c, 0x00, "2 Coins 1 Credits" },
- {0x14, 0x01, 0x0c, 0x0c, "1 Coin 1 Credits" },
- {0x14, 0x01, 0x0c, 0x08, "1 Coin 2 Credits" },
- {0x14, 0x01, 0x0c, 0x04, "1 Coin 3 Credits" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x14, 0x01, 0x20, 0x20, "Off" },
- {0x14, 0x01, 0x20, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Cabinet" },
- {0x14, 0x01, 0x40, 0x00, "Upright" },
- {0x14, 0x01, 0x40, 0x40, "Cocktail" },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x15, 0x01, 0x03, 0x01, "1" },
- {0x15, 0x01, 0x03, 0x03, "3" },
- {0x15, 0x01, 0x03, 0x02, "5" },
- {0x15, 0x01, 0x03, 0x00, "Infinite (Cheat)" },
-
- {0 , 0xfe, 0 , 4, "Bonus Life" },
- {0x15, 0x01, 0x0c, 0x0c, "50 K" },
- {0x15, 0x01, 0x0c, 0x08, "70 K" },
- {0x15, 0x01, 0x0c, 0x04, "90 K" },
- {0x15, 0x01, 0x0c, 0x00, "100 K" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x15, 0x01, 0x30, 0x30, "Easy" },
- {0x15, 0x01, 0x30, 0x10, "Normal" },
- {0x15, 0x01, 0x30, 0x20, "Hard" },
- {0x15, 0x01, 0x30, 0x00, "Very Hard" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x15, 0x01, 0x40, 0x00, "Off" },
- {0x15, 0x01, 0x40, 0x40, "On" },
-
- {0 , 0xfe, 0 , 2, "Timer Speed" },
- {0x15, 0x01, 0x80, 0x80, "Normal" },
- {0x15, 0x01, 0x80, 0x00, "Fast" },
-};
-
-STDDIPINFO(Karnov)
-
-static struct BurnDIPInfo WndrplntDIPList[]=
-{
- {0x14, 0xff, 0xff, 0x6f, NULL },
- {0x15, 0xff, 0xff, 0xd3, NULL },
-
- {0 , 0xfe, 0 , 4, "Coin B" },
- {0x14, 0x01, 0x03, 0x00, "2 Coins 1 Credits" },
- {0x14, 0x01, 0x03, 0x03, "1 Coin 1 Credits" },
- {0x14, 0x01, 0x03, 0x02, "1 Coin 2 Credits" },
- {0x14, 0x01, 0x03, 0x01, "1 Coin 3 Credits" },
-
- {0 , 0xfe, 0 , 4, "Coin A" },
- {0x14, 0x01, 0x0c, 0x00, "2 Coins 1 Credits" },
- {0x14, 0x01, 0x0c, 0x0c, "1 Coin 1 Credits" },
- {0x14, 0x01, 0x0c, 0x08, "1 Coin 2 Credits" },
- {0x14, 0x01, 0x0c, 0x04, "1 Coin 3 Credits" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x14, 0x01, 0x20, 0x00, "Off" },
- {0x14, 0x01, 0x20, 0x20, "On" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x14, 0x01, 0x40, 0x40, "Off" },
- {0x14, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Cabinet" },
- {0x14, 0x01, 0x80, 0x00, "Upright" },
- {0x14, 0x01, 0x80, 0x80, "Cocktail" },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x15, 0x01, 0x03, 0x01, "1" },
- {0x15, 0x01, 0x03, 0x03, "3" },
- {0x15, 0x01, 0x03, 0x02, "5" },
- {0x15, 0x01, 0x03, 0x00, "Infinite (Cheat)" },
-
- {0 , 0xfe, 0 , 2, "Allow Continue" },
- {0x15, 0x01, 0x10, 0x00, "No" },
- {0x15, 0x01, 0x10, 0x10, "Yes" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x15, 0x01, 0xc0, 0x80, "Easy" },
- {0x15, 0x01, 0xc0, 0xc0, "Normal" },
- {0x15, 0x01, 0xc0, 0x40, "Hard" },
- {0x15, 0x01, 0xc0, 0x00, "Hardest" },
-};
-
-STDDIPINFO(Wndrplnt)
-
-static struct BurnDIPInfo ChelnovDIPList[]=
-{
- {0x14, 0xff, 0xff, 0x6f, NULL },
- {0x15, 0xff, 0xff, 0xdf, NULL },
-
- {0 , 0xfe, 0 , 4, "Coin A" },
- {0x14, 0x01, 0x03, 0x03, "1 Coin 2 Credits" },
- {0x14, 0x01, 0x03, 0x02, "1 Coin 3 Credits" },
- {0x14, 0x01, 0x03, 0x01, "1 Coin 4 Credits" },
- {0x14, 0x01, 0x03, 0x00, "1 Coin 6 Credits" },
-
- {0 , 0xfe, 0 , 4, "Coin B" },
- {0x14, 0x01, 0x0c, 0x00, "4 Coins 1 Credits" },
- {0x14, 0x01, 0x0c, 0x04, "3 Coins 1 Credits" },
- {0x14, 0x01, 0x0c, 0x08, "2 Coins 1 Credits" },
- {0x14, 0x01, 0x0c, 0x0c, "1 Coin 1 Credits" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x14, 0x01, 0x20, 0x00, "Off" },
- {0x14, 0x01, 0x20, 0x20, "On" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x14, 0x01, 0x40, 0x40, "Off" },
- {0x14, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Cabinet" },
- {0x14, 0x01, 0x80, 0x00, "Upright" },
- {0x14, 0x01, 0x80, 0x80, "Cocktail" },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x15, 0x01, 0x03, 0x01, "1" },
- {0x15, 0x01, 0x03, 0x03, "3" },
- {0x15, 0x01, 0x03, 0x02, "5" },
- {0x15, 0x01, 0x03, 0x00, "Infinite (Cheat)" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x15, 0x01, 0x0c, 0x04, "Easy" },
- {0x15, 0x01, 0x0c, 0x0c, "Normal" },
- {0x15, 0x01, 0x0c, 0x08, "Hard" },
- {0x15, 0x01, 0x0c, 0x00, "Hardest" },
-
- {0 , 0xfe, 0 , 2, "Allow Continue" },
- {0x15, 0x01, 0x10, 0x00, "No" },
- {0x15, 0x01, 0x10, 0x10, "Yes" },
-
- {0 , 0xfe, 0 , 2, "Freeze" },
- {0x15, 0x01, 0x40, 0x40, "Off" },
- {0x15, 0x01, 0x40, 0x00, "On" },
-};
-
-STDDIPINFO(Chelnov)
-
-static struct BurnDIPInfo ChelnovuDIPList[]=
-{
- {0x14, 0xff, 0xff, 0x6f, NULL },
- {0x15, 0xff, 0xff, 0xdf, NULL },
-
- {0 , 0xfe, 0 , 4, "Coin B" },
- {0x14, 0x01, 0x03, 0x00, "2 Coins 1 Credits" },
- {0x14, 0x01, 0x03, 0x03, "1 Coin 1 Credits" },
- {0x14, 0x01, 0x03, 0x02, "1 Coin 2 Credits" },
- {0x14, 0x01, 0x03, 0x01, "1 Coin 3 Credits" },
-
- {0 , 0xfe, 0 , 4, "Coin A" },
- {0x14, 0x01, 0x0c, 0x00, "2 Coins 1 Credits" },
- {0x14, 0x01, 0x0c, 0x0c, "1 Coin 1 Credits" },
- {0x14, 0x01, 0x0c, 0x08, "1 Coin 2 Credits" },
- {0x14, 0x01, 0x0c, 0x04, "1 Coin 3 Credits" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x14, 0x01, 0x20, 0x00, "Off" },
- {0x14, 0x01, 0x20, 0x20, "On" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x14, 0x01, 0x40, 0x40, "Off" },
- {0x14, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Cabinet" },
- {0x14, 0x01, 0x80, 0x00, "Upright" },
- {0x14, 0x01, 0x80, 0x80, "Cocktail" },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x15, 0x01, 0x03, 0x01, "1" },
- {0x15, 0x01, 0x03, 0x03, "3" },
- {0x15, 0x01, 0x03, 0x02, "5" },
- {0x15, 0x01, 0x03, 0x00, "Infinite (Cheat)" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x15, 0x01, 0x0c, 0x04, "Easy" },
- {0x15, 0x01, 0x0c, 0x0c, "Normal" },
- {0x15, 0x01, 0x0c, 0x08, "Hard" },
- {0x15, 0x01, 0x0c, 0x00, "Hardest" },
-
- {0 , 0xfe, 0 , 2, "Allow Continue" },
- {0x15, 0x01, 0x10, 0x00, "No" },
- {0x15, 0x01, 0x10, 0x10, "Yes" },
-
- {0 , 0xfe, 0 , 2, "Freeze" },
- {0x15, 0x01, 0x40, 0x40, "Off" },
- {0x15, 0x01, 0x40, 0x00, "On" },
-};
-
-STDDIPINFO(Chelnovu)
-
-//------------------------------------------------------------------------------------------------
-// These are pretty much ripped straight from MAME
-
-static void karnov_i8751_w(INT32 data)
-{
- if (i8751_needs_ack)
- {
- i8751_command_queue=data;
- return;
- }
-
- i8751_return=0;
- if (data==0x100 && microcontroller_id==KARNOVJ) i8751_return=0x56a; /* Japan version */
- if (data==0x100 && microcontroller_id==KARNOV) i8751_return=0x56b; /* USA version */
- if ((data&0xf00)==0x300) i8751_return=(data&0xff)*0x12; /* Player sprite mapping */
-
- if (data==0x400) i8751_return=0x4000; /* Get The Map... */
- if (data==0x402) i8751_return=0x40a6; /* Ancient Ruins */
- if (data==0x403) i8751_return=0x4054; /* Forest... */
- if (data==0x404) i8751_return=0x40de; /* ^Rocky hills */
- if (data==0x405) i8751_return=0x4182; /* Sea */
- if (data==0x406) i8751_return=0x41ca; /* Town */
- if (data==0x407) i8751_return=0x421e; /* Desert */
- if (data==0x401) i8751_return=0x4138; /* ^Whistling wind */
- if (data==0x408) i8751_return=0x4276; /* ^Heavy Gates */
-
- SekSetIRQLine(6, CPU_IRQSTATUS_AUTO); /* Signal main cpu task is complete */
- i8751_needs_ack=1;
-}
-
-static void wndrplnt_i8751_w(INT32 data)
-{
- if (i8751_needs_ack)
- {
- i8751_command_queue=data;
- return;
- }
-
- i8751_return=0;
- if (data==0x100) i8751_return=0x67a;
- if (data==0x200) i8751_return=0x214;
- if (data==0x300) i8751_return=0x17; /* Copyright text on title screen */
-// if (data==0x300) i8751_return=0x1; /* (USA) Copyright text on title screen */
-
- if ((data&0x600)==0x600)
- {
- switch (data&0x18)
- {
- case 0x00: i8751_return=0x4d53; break;
- case 0x08: i8751_return=0x4b54; break;
- case 0x10: i8751_return=0x5453; break;
- case 0x18: i8751_return=0x5341; break;
- }
- }
-
- if (data==0x400) i8751_return=0x594;
- if (data==0x401) i8751_return=0x5ea;
- if (data==0x402) i8751_return=0x628;
- if (data==0x403) i8751_return=0x66c;
- if (data==0x404) i8751_return=0x6a4;
- if (data==0x405) i8751_return=0x6a4;
- if (data==0x406) i8751_return=0x6a4;
-
- if (data==0x50c) i8751_return=0x13fc;
- if (data==0x50b) i8751_return=0x00ff;
- if (data==0x50a) i8751_return=0x0006;
- if (data==0x509) i8751_return=0x0000;
- if (data==0x508) i8751_return=0x4a39;
- if (data==0x507) i8751_return=0x0006;
- if (data==0x506) i8751_return=0x0000;
- if (data==0x505) i8751_return=0x66f8;
- if (data==0x504) i8751_return=0x4a39;
- if (data==0x503) i8751_return=0x000c;
- if (data==0x502) i8751_return=0x0003;
- if (data==0x501) i8751_return=0x6bf8;
- if (data==0x500) i8751_return=0x4e75;
-
- SekSetIRQLine(6, CPU_IRQSTATUS_AUTO);
- i8751_needs_ack=1;
-}
-
-static void chelnov_i8751_w(INT32 data)
-{
- if (i8751_needs_ack)
- {
- i8751_command_queue=data;
- return;
- }
-
- i8751_return=0;
- if (data==0x200 && microcontroller_id==CHELNOVJ) i8751_return=0x7734; /* Japan version */
- if (data==0x200 && microcontroller_id==CHELNOV) i8751_return=0x783e; /* USA version */
- if (data==0x200 && microcontroller_id==CHELNOVW) i8751_return=0x7736; /* World version */
- if (data==0x100 && microcontroller_id==CHELNOVJ) i8751_return=0x71a; /* Japan version */
- if (data==0x100 && microcontroller_id==CHELNOV) i8751_return=0x71b; /* USA version */
- if (data==0x100 && microcontroller_id==CHELNOVW) i8751_return=0x71c; /* World version */
-
- if ((data & 0xe000) == 0x6000) {
- if (data & 0x1000) {
- i8751_return = ((data & 0x0f) + ((data >> 4) & 0x0f)) * ((data >> 8) & 0x0f);
- } else {
- i8751_return = (data & 0x0f) * (((data >> 8) & 0x0f) + ((data >> 4) & 0x0f));
- }
- }
-
- if ((data&0xf000)==0x1000) i8751_level=1; /* Level 1 */
- if ((data&0xf000)==0x2000) i8751_level++; /* Level Increment */
-
- if ((data&0xf000)==0x3000)
- { /* Sprite table mapping */
- INT32 b=data&0xff;
- switch (i8751_level)
- {
- case 1: /* Level 1, Sprite mapping tables */
- if (microcontroller_id==CHELNOV)
- { /* USA */
- if (b<2) i8751_return=0;
- else if (b<6) i8751_return=1;
- else if (b<0xb) i8751_return=2;
- else if (b<0xf) i8751_return=3;
- else if (b<0x13) i8751_return=4;
- else i8751_return=5;
- }
- else
- { /* Japan, World */
- if (b<3) i8751_return=0;
- else if (b<8) i8751_return=1;
- else if (b<0x0c) i8751_return=2;
- else if (b<0x10) i8751_return=3;
- else if (b<0x19) i8751_return=4;
- else if (b<0x1b) i8751_return=5;
- else if (b<0x22) i8751_return=6;
- else if (b<0x28) i8751_return=7;
- else i8751_return=8;
- }
- break;
- case 2: /* Level 2, Sprite mapping tables, USA & Japan are the same */
- if (b<3) i8751_return=0;
- else if (b<9) i8751_return=1;
- else if (b<0x11) i8751_return=2;
- else if (b<0x1b) i8751_return=3;
- else if (b<0x21) i8751_return=4;
- else if (b<0x28) i8751_return=5;
- else i8751_return=6;
- break;
- case 3: /* Level 3, Sprite mapping tables, USA & Japan are the same */
- if (b<5) i8751_return=0;
- else if (b<9) i8751_return=1;
- else if (b<0x0d) i8751_return=2;
- else if (b<0x11) i8751_return=3;
- else if (b<0x1b) i8751_return=4;
- else if (b<0x1c) i8751_return=5;
- else if (b<0x22) i8751_return=6;
- else if (b<0x27) i8751_return=7;
- else i8751_return=8;
- break;
- case 4: /* Level 4, Sprite mapping tables, USA & Japan are the same */
- if (b<4) i8751_return=0;
- else if (b<0x0c) i8751_return=1;
- else if (b<0x0f) i8751_return=2;
- else if (b<0x19) i8751_return=3;
- else if (b<0x1c) i8751_return=4;
- else if (b<0x22) i8751_return=5;
- else if (b<0x29) i8751_return=6;
- else i8751_return=7;
- break;
- case 5: /* Level 5, Sprite mapping tables */
- if (b<7) i8751_return=0;
- else if (b<0x0e) i8751_return=1;
- else if (b<0x14) i8751_return=2;
- else if (b<0x1a) i8751_return=3;
- else if (b<0x23) i8751_return=4;
- else if (b<0x27) i8751_return=5;
- else i8751_return=6;
- break;
- case 6: /* Level 6, Sprite mapping tables */
- if (b<3) i8751_return=0;
- else if (b<0x0b) i8751_return=1;
- else if (b<0x11) i8751_return=2;
- else if (b<0x17) i8751_return=3;
- else if (b<0x1d) i8751_return=4;
- else if (b<0x24) i8751_return=5;
- else i8751_return=6;
- break;
- case 7: /* Level 7, Sprite mapping tables */
- if (b<5) i8751_return=0;
- else if (b<0x0b) i8751_return=1;
- else if (b<0x11) i8751_return=2;
- else if (b<0x1a) i8751_return=3;
- else if (b<0x21) i8751_return=4;
- else if (b<0x27) i8751_return=5;
- else i8751_return=6;
- break;
- }
- }
-
- SekSetIRQLine(6, CPU_IRQSTATUS_AUTO);
- i8751_needs_ack=1;
-}
-
-static void karnov_control_w(INT32 offset, INT32 data)
-{
- switch (offset<<1)
- {
- case 0:
- SekSetIRQLine(6, CPU_IRQSTATUS_NONE);
-
- if (i8751_needs_ack)
- {
- if (i8751_coin_pending)
- {
- i8751_return=i8751_coin_pending;
- SekSetIRQLine(6, CPU_IRQSTATUS_AUTO);
- i8751_coin_pending=0;
- }
- else if (i8751_command_queue)
- {
- i8751_needs_ack=0;
- karnov_control_w(3,i8751_command_queue);
- i8751_command_queue=0;
- }
- else
- {
- i8751_needs_ack=0;
- }
- }
- return;
-
- case 2:
- *soundlatch = data;
- M6502SetIRQLine(M6502_INPUT_LINE_NMI, CPU_IRQSTATUS_AUTO);
- break;
-
- case 4:
- memcpy (DrvSprBuf, DrvSprRAM, 0x1000);
- break;
-
- case 6:
- if (microcontroller_id==KARNOV || microcontroller_id==KARNOVJ) karnov_i8751_w(data);
- if (microcontroller_id==CHELNOV || microcontroller_id==CHELNOVJ || microcontroller_id==CHELNOVW) chelnov_i8751_w(data);
- if (microcontroller_id==WNDRPLNT) wndrplnt_i8751_w(data);
- break;
-
- case 8:
- DrvScroll[0] = data;
- *flipscreen = data >> 15;
- break;
-
- case 0xa:
- DrvScroll[1] = data;
- break;
-
- case 0xc:
- i8751_needs_ack=0;
- i8751_coin_pending=0;
- i8751_command_queue=0;
- i8751_return=0;
- break;
-
- case 0xe:
- SekSetIRQLine(7, CPU_IRQSTATUS_NONE);
- break;
- }
-}
-
-static UINT16 karnov_control_r(INT32 offset)
-{
- switch (offset<<1)
- {
- case 0:
- return DrvInput[0];
- case 2:
- return DrvInput[1] ^ vblank;
- case 4:
- return (DrvDip[1] << 8) | DrvDip[0];
- case 6:
- return i8751_return;
- }
-
- return ~0;
-}
-
-//------------------------------------------------------------------------------------------
-
-void __fastcall karnov_main_write_word(UINT32 address, UINT16 data)
-{
- if ((address & 0xfff800) == 0x0a1800) {
- UINT16 *ptr = (UINT16*)DrvPfRAM;
-
- INT32 offset = (address >> 1) & 0x3ff;
- offset = ((offset & 0x1f) << 5) | ((offset & 0x3e0) >> 5);
-
- ptr[offset] = BURN_ENDIAN_SWAP_INT16(data);
- return;
- }
-
- if ((address & 0xfffff0) == 0x0c0000) {
- karnov_control_w((address >> 1) & 0x07, data);
- return;
- }
-}
-
-void __fastcall karnov_main_write_byte(UINT32 address, UINT8 data)
-{
- if ((address & 0xfff800) == 0x0a1800) {
- INT32 offset = (address >> 1) & 0x3ff;
- offset = ((offset & 0x1f) << 5) | ((offset & 0x3e0) >> 5);
-
- DrvPfRAM[(offset << 1) | (~address & 1)] = data;
- return;
- }
-
- if ((address & 0xfffff0) == 0x0c0000) {
- karnov_control_w((address >> 1) & 0x07, data);
-
- }
-}
-
-UINT16 __fastcall karnov_main_read_word(UINT32 address)
-{
- if ((address & 0xfffff0) == 0x0c0000) {
- return karnov_control_r((address >> 1) & 7);
- }
-
- return 0;
-}
-
-UINT8 __fastcall karnov_main_read_byte(UINT32 address)
-{
- if ((address & 0xfffff0) == 0x0c0000) {
- return karnov_control_r((address >> 1) & 7) >> ((~address & 1) << 3);
- }
-
- return 0;
-}
-
-void karnov_sound_write(UINT16 address, UINT8 data)
-{
- switch (address)
- {
- case 0x1000:
- case 0x1001:
- BurnYM2203Write(0, address & 1, data);
- return;
-
- case 0x1800:
- case 0x1801:
- BurnYM3526Write(address & 1, data);
- return;
- }
-}
-
-UINT8 karnov_sound_read(UINT16 address)
-{
- switch (address)
- {
- case 0x0800:
-// m6502SetIRQ(M6502_CLEAR);
- return *soundlatch;
- }
-
- return 0;
-}
-
-static void DrvYM3526FMIRQHandler(INT32, INT32 nStatus)
-{
- if (nStatus) {
- M6502SetIRQLine(M6502_IRQ_LINE, CPU_IRQSTATUS_ACK);
- } else {
- M6502SetIRQLine(M6502_IRQ_LINE, CPU_IRQSTATUS_NONE);
- }
-}
-
-static INT32 DrvYM3526SynchroniseStream(INT32 nSoundRate)
-{
- return (INT64)M6502TotalCycles() * nSoundRate / 1500000;
-}
-
-static INT32 DrvYM2203SynchroniseStream(INT32 nSoundRate)
-{
- return (INT64)SekTotalCycles() * nSoundRate / 10000000;
-}
-
-static double DrvYM2203GetTime()
-{
- return (double)SekTotalCycles() / 10000000;
-}
-
-static INT32 DrvDoReset()
-{
- DrvReset = 0;
-
- memset (AllRam, 0, RamEnd - AllRam);
-
- SekOpen(0);
- M6502Open(0);
-
- SekReset();
- M6502Reset();
-
- BurnYM3526Reset();
- BurnYM2203Reset();
-
- M6502Close();
- SekClose();
-
- HiscoreReset();
-
- i8751_return = 0;
- i8751_needs_ack = 0;
- i8751_coin_pending = 0;
- i8751_command_queue = 0;
- i8751_level = 0;
-
- return 0;
-}
-
-static INT32 MemIndex()
-{
- UINT8 *Next; Next = AllMem;
-
- Drv68KROM = Next; Next += 0x060000;
- Drv6502ROM = Next; Next += 0x010000;
-
- DrvGfxROM0 = Next; Next += 0x020000;
- DrvGfxROM1 = Next; Next += 0x080000;
- DrvGfxROM2 = Next; Next += 0x100000;
-
- DrvColPROM = Next; Next += 0x000800;
-
- Palette = (UINT32*)Next; Next += 0x0300 * sizeof(UINT32);
- DrvPalette = (UINT32*)Next; Next += 0x0300 * sizeof(UINT32);
-
- AllRam = Next;
-
- Drv68KRAM = Next; Next += 0x004000;
- DrvPfRAM = Next; Next += 0x000800;
- Drv6502RAM = Next; Next += 0x000800;
- DrvVidRAM = Next; Next += 0x000800;
- DrvSprRAM = Next; Next += 0x001000;
- DrvSprBuf = Next; Next += 0x001000;
-
- soundlatch = Next; Next += 0x000001;
- flipscreen = Next; Next += 0x000001;
-
- DrvScroll = (UINT16*)Next; Next += 0x0002 * sizeof(UINT16);
-
- RamEnd = Next;
- MemEnd = Next;
-
- return 0;
-}
-
-static void DrvPaletteInit()
-{
- for (INT32 i = 0; i < 0x300; i++)
- {
- INT32 bit0,bit1,bit2,bit3,r,g,b;
-
- bit0 = (DrvColPROM[0x000 + i] >> 0) & 0x01;
- bit1 = (DrvColPROM[0x000 + i] >> 1) & 0x01;
- bit2 = (DrvColPROM[0x000 + i] >> 2) & 0x01;
- bit3 = (DrvColPROM[0x000 + i] >> 3) & 0x01;
- r = 0x0e * bit0 + 0x1f * bit1 + 0x43 * bit2 + 0x8f * bit3;
-
- bit0 = (DrvColPROM[0x000 + i] >> 4) & 0x01;
- bit1 = (DrvColPROM[0x000 + i] >> 5) & 0x01;
- bit2 = (DrvColPROM[0x000 + i] >> 6) & 0x01;
- bit3 = (DrvColPROM[0x000 + i] >> 7) & 0x01;
- g = 0x0e * bit0 + 0x1f * bit1 + 0x43 * bit2 + 0x8f * bit3;
-
- bit0 = (DrvColPROM[0x400 + i] >> 0) & 0x01;
- bit1 = (DrvColPROM[0x400 + i] >> 1) & 0x01;
- bit2 = (DrvColPROM[0x400 + i] >> 2) & 0x01;
- bit3 = (DrvColPROM[0x400 + i] >> 3) & 0x01;
- b = 0x0e * bit0 + 0x1f * bit1 + 0x43 * bit2 + 0x8f * bit3;
-
- Palette[i] = (r << 16) | (g << 8) | b;
- DrvPalette[i] = BurnHighCol(r, g, b, 0);
- }
-}
-
-static INT32 DrvGfxDecode()
-{
- INT32 Plane0[3] = { 0x6000*8,0x4000*8,0x2000*8 };
- INT32 Plane1[4] = { 0x60000*8,0x00000*8,0x20000*8,0x40000*8 };
- INT32 XOffs[16] = { 16*8, 1+(16*8), 2+(16*8), 3+(16*8), 4+(16*8), 5+(16*8), 6+(16*8), 7+(16*8), 0,1,2,3,4,5,6,7 };
- INT32 YOffs[16] = { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 ,8*8,9*8,10*8,11*8,12*8,13*8,14*8,15*8 };
-
- UINT8 *tmp = (UINT8*)BurnMalloc(0x80000);
- if (tmp == NULL) {
- return 1;
- }
-
- memcpy (tmp, DrvGfxROM0, 0x08000);
-
- GfxDecode(0x0400, 3, 8, 8, Plane0, XOffs + 8, YOffs, 0x040, tmp, DrvGfxROM0);
-
- memcpy (tmp, DrvGfxROM1, 0x80000);
-
- GfxDecode(0x0800, 4, 16, 16, Plane1, XOffs + 0, YOffs, 0x100, tmp, DrvGfxROM1);
-
- memcpy (tmp, DrvGfxROM2, 0x80000);
-
- GfxDecode(0x1000, 4, 16, 16, Plane1, XOffs + 0, YOffs, 0x100, tmp, DrvGfxROM2);
-
- BurnFree (tmp);
-
- return 0;
-}
-
-static INT32 DrvInit()
-{
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(Drv68KROM + 0x000001, 0, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x000000, 1, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x020001, 2, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x020000, 3, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x040001, 4, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x040000, 5, 2)) return 1;
-
- if (BurnLoadRom(Drv6502ROM + 0x08000, 6, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x00000, 7, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM1 + 0x00000, 8, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x20000, 9, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x40000, 10, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x60000, 11, 1)) return 1;
-
- if (microcontroller_id == CHELNOVJ || microcontroller_id == CHELNOVW || microcontroller_id == CHELNOV) {
- if (BurnLoadRom(DrvGfxROM2 + 0x00000, 12, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x20000, 13, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x40000, 14, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x60000, 15, 1)) return 1;
-
- if (BurnLoadRom(DrvColPROM + 0x00000, 16, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x00400, 17, 1)) return 1;
-
- // hack to bypass infinite loop waiting for mcu response
- *((UINT16*)(Drv68KROM + 0x062a)) = BURN_ENDIAN_SWAP_INT16(0x4E71);
- } else {
- if (BurnLoadRom(DrvGfxROM2 + 0x00000, 12, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x10000, 13, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x20000, 14, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x30000, 15, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x40000, 16, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x50000, 17, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x60000, 18, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x70000, 19, 1)) return 1;
-
- if (BurnLoadRom(DrvColPROM + 0x00000, 20, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x00400, 21, 1)) return 1;
- }
-
- DrvPaletteInit();
- DrvGfxDecode();
- }
-
-#ifdef BUILD_A68K
- // These games really don't like the ASM core, so disable it for now
- // and restore it on exit.
- if (bBurnUseASMCPUEmulation) {
- bUseAsm68KCoreOldValue = bBurnUseASMCPUEmulation;
- bBurnUseASMCPUEmulation = false;
- }
-#endif
-
- SekInit(0, 0x68000);
- SekOpen(0);
- SekMapMemory(Drv68KROM, 0x000000, 0x05ffff, MAP_ROM);
- SekMapMemory(Drv68KRAM, 0x060000, 0x063fff, MAP_RAM);
- SekMapMemory(DrvSprRAM, 0x080000, 0x080fff, MAP_RAM);
- SekMapMemory(DrvVidRAM, 0x0a0000, 0x0a07ff, MAP_RAM);
- SekMapMemory(DrvVidRAM, 0x0a0800, 0x0a0fff, MAP_RAM);
- SekMapMemory(DrvPfRAM, 0x0a1000, 0x0a17ff, MAP_WRITE);
- SekSetWriteWordHandler(0, karnov_main_write_word);
- SekSetWriteByteHandler(0, karnov_main_write_byte);
- SekSetReadWordHandler(0, karnov_main_read_word);
- SekSetReadByteHandler(0, karnov_main_read_byte);
- SekClose();
-
- M6502Init(0, TYPE_M6502);
- M6502Open(0);
- M6502MapMemory(Drv6502RAM, 0x0000, 0x05ff, MAP_RAM);
- M6502MapMemory(Drv6502ROM + 0x8000, 0x8000, 0xffff, MAP_ROM);
- M6502SetReadHandler(karnov_sound_read);
- M6502SetWriteHandler(karnov_sound_write);
- M6502Close();
-
- BurnYM3526Init(3000000, &DrvYM3526FMIRQHandler, &DrvYM3526SynchroniseStream, 0);
- BurnTimerAttachM6502YM3526(1500000);
- BurnYM3526SetRoute(BURN_SND_YM3526_ROUTE, 1.00, BURN_SND_ROUTE_BOTH);
-
- BurnYM2203Init(1, 1500000, NULL, DrvYM2203SynchroniseStream, DrvYM2203GetTime, 1);
- BurnTimerAttachSek(10000000);
- BurnYM2203SetAllRoutes(0, 0.25, BURN_SND_ROUTE_BOTH);
-
- GenericTilesInit();
-
- DrvDoReset();
-
- return 0;
-}
-
-static INT32 DrvExit()
-{
- GenericTilesExit();
-
- SekExit();
- M6502Exit();
-
- BurnYM3526Exit();
- BurnYM2203Exit();
-
- BurnFree (AllMem);
-
-#ifdef BUILD_A68K
- if (bUseAsm68KCoreOldValue) {
- bBurnUseASMCPUEmulation = true;
- }
-#endif
-
- return 0;
-}
-
-static void draw_txt_layer(INT32 swap)
-{
- UINT16 *vram = (UINT16*)DrvVidRAM;
- for (INT32 offs = 0x20; offs < 0x3e0; offs++)
- {
- INT32 sx = (offs & 0x1f) << 3;
- INT32 sy = (offs >> 5) << 3;
-
- if (swap) {
- INT32 t = sx;
- sx = sy;
- sy = t;
- }
-
- if (*flipscreen) {
- sy ^= 0xf8;
- sx ^= 0xf8;
- }
-
- if (microcontroller_id == WNDRPLNT) {
- sy -= 8;
- }
-
- INT32 code = BURN_ENDIAN_SWAP_INT16(vram[offs]) & 0x0fff;
- INT32 color = BURN_ENDIAN_SWAP_INT16(vram[offs]) >> 14;
-
- if (code == 0) continue;
-
- if (*flipscreen) {
- Render8x8Tile_Mask_FlipXY(pTransDraw, code, sx, sy, color, 3, 0, 0, DrvGfxROM0);
- } else {
- Render8x8Tile_Mask(pTransDraw, code, sx, sy, color, 3, 0, 0, DrvGfxROM0);
- }
- }
-}
-
-static void draw_bg_layer()
-{
- INT32 scrollx = DrvScroll[0] & 0x1ff;
- INT32 scrolly = DrvScroll[1] & 0x1ff;
-
- UINT16 *vram = (UINT16*)DrvPfRAM;
-
- for (INT32 offs = 0; offs < 0x400; offs++)
- {
- INT32 sx = (offs & 0x1f) << 4;
- INT32 sy = (offs >> 5) << 4;
-
- sy -= scrolly;
- if (sy < -15) sy+=512;
- sx -= scrollx;
- if (sx < -15) sx+=512;
-
- if (sx >= nScreenWidth || sy >= nScreenHeight) continue;
-
- INT32 attr = BURN_ENDIAN_SWAP_INT16(vram[offs]);
- INT32 code = attr & 0x7ff;
- INT32 color= attr >> 12;
-
- if (*flipscreen) {
- Render16x16Tile_FlipXY_Clip(pTransDraw, code, 240 - sx, (240 - sy) - 8, color, 4, 0x200, DrvGfxROM1);
- } else {
- Render16x16Tile_Clip(pTransDraw, code, sx, sy, color, 4, 0x200, DrvGfxROM1);
- }
- }
-}
-
-static inline void sprite_routine(INT32 code, INT32 sx, INT32 sy, INT32 color, INT32 fy, INT32 fx)
-{
- if (fy) {
- if (fx) {
- Render16x16Tile_Mask_FlipXY_Clip(pTransDraw, code, sx, sy, color, 4, 0, 0x100, DrvGfxROM2);
- } else {
- Render16x16Tile_Mask_FlipY_Clip(pTransDraw, code, sx, sy, color, 4, 0, 0x100, DrvGfxROM2);
- }
- } else {
- if (fx) {
- Render16x16Tile_Mask_FlipX_Clip(pTransDraw, code, sx, sy, color, 4, 0, 0x100, DrvGfxROM2);
- } else {
- Render16x16Tile_Mask_Clip(pTransDraw, code, sx, sy, color, 4, 0, 0x100, DrvGfxROM2);
- }
- }
-}
-
-static void draw_sprites()
-{
- UINT16 *ram = (UINT16*)DrvSprBuf;
-
- for (INT32 offs = 0; offs < 0x800; offs+=4)
- {
- INT32 y = BURN_ENDIAN_SWAP_INT16(ram[offs]);
- INT32 x = BURN_ENDIAN_SWAP_INT16(ram[offs + 2]) & 0x1ff;
- if (~y & 0x8000) continue;
- y &= 0x1ff;
-
- INT32 sprite = BURN_ENDIAN_SWAP_INT16(ram[offs + 3]);
- INT32 color = sprite >> 12;
- sprite &= 0xfff;
-
- INT32 flipx = BURN_ENDIAN_SWAP_INT16(ram[offs + 1]);
- INT32 flipy = flipx & 0x02;
- INT32 extra = flipx & 0x10;
- flipx &= 0x04;
-
- x = (x + 16) & 0x1ff;
- y = (y + 16 + extra) & 0x1ff;
- x = 256 - x;
- y = 256 - y;
-
- if (*flipscreen) {
- y = 240 - y;
- x = 240 - x;
- flipx ^= 0x04;
- flipy ^= 0x02;
- if (extra) y -= 16;
- y -= 8;
- }
-
- INT32 sprite2 = sprite + 1;
- if (extra && flipy) {
- sprite2--;
- sprite++;
- }
-
- sprite_routine(sprite, x, y, color, flipy, flipx);
-
- if (extra) sprite_routine(sprite2, x, y + 16, color, flipy, flipx);
- }
-}
-
-static INT32 DrvDraw()
-{
- if (DrvRecalc) {
- UINT8 r,g,b;
- for (INT32 i = 0; i < 0x300; i++) {
- INT32 d = Palette[i];
-
- r = d >> 16;
- g = d >> 8;
- b = d >> 0;
-
- DrvPalette[i] = BurnHighCol(r, g, b, 0);
- }
- DrvRecalc = 0;
- }
-
- draw_bg_layer();
- draw_sprites();
- draw_txt_layer(microcontroller_id == WNDRPLNT);
-
- BurnTransferCopy(DrvPalette);
-
- return 0;
-}
-
-static void DrvInterrupt()
-{
- static INT32 latch = 0;
-
- if (DrvInput[2] == coin_mask) latch=1;
- if (DrvInput[2] != coin_mask && latch)
- {
- if (i8751_needs_ack)
- {
- i8751_coin_pending = DrvInput[2] | 0x8000;
- }
- else
- {
- i8751_return = DrvInput[2] | 0x8000;
- SekSetIRQLine(6, CPU_IRQSTATUS_AUTO);
- SekRun(100);
- i8751_needs_ack=1;
- }
- latch=0;
- }
-
- SekSetIRQLine(7, CPU_IRQSTATUS_AUTO);
-}
-
-static INT32 DrvFrame()
-{
- if (DrvReset) {
- DrvDoReset();
- }
-
- SekNewFrame();
- M6502NewFrame();
-
- {
- memset (DrvInput, 0xff, 2 * sizeof(INT16));
- DrvInput[2] = coin_mask;
- for (INT32 i = 0; i < 16; i++) {
- DrvInput[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInput[1] ^= (DrvJoy2[i] & 1) << i;
- DrvInput[2] ^= (DrvJoy3[i] & 1) << i;
- }
- }
-
- INT32 nInterleave = 256;
- INT32 nCyclesTotal[2] = { 10000000 / 60, 1500000 / 60 };
-
- M6502Open(0);
- SekOpen(0);
-
- vblank = 0x80;
-
- for (INT32 i = 0; i < nInterleave; i++)
- {
- if (i == 240) {
- vblank = 0x00;
- DrvInterrupt();
- }
-
- BurnTimerUpdate((i + 1) * (nCyclesTotal[0] / nInterleave));
-
- BurnTimerUpdateYM3526((i + 1) * (nCyclesTotal[1] / nInterleave));
- }
-
- BurnTimerEndFrame(nCyclesTotal[0]);
- BurnTimerEndFrameYM3526(nCyclesTotal[1]);
-
- if (pBurnSoundOut) {
- BurnYM3526Update(pBurnSoundOut, nBurnSoundLen);
- BurnYM2203Update(pBurnSoundOut, nBurnSoundLen);
- }
-
- SekClose();
- M6502Close();
-
- if (pBurnDraw) {
- DrvDraw();
- }
-
- return 0;
-}
-
-static INT32 DrvScan(INT32 nAction, INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin != NULL) {
- *pnMin = 0x029707;
- }
-
- if (nAction & ACB_MEMORY_RAM) {
- memset(&ba, 0, sizeof(ba));
- ba.Data = AllRam;
- ba.nLen = RamEnd-AllRam;
- ba.szName = "All Ram";
- BurnAcb(&ba);
- }
-
- if (nAction & ACB_DRIVER_DATA) {
- SekScan(nAction);
- M6502Scan(nAction);
-
- SekOpen(0);
- M6502Open(0);
- BurnYM3526Scan(nAction, pnMin);
- BurnYM2203Scan(nAction, pnMin);
- M6502Close();
- SekClose();
-
- if (nAction & ACB_WRITE) {
- BurnYM2203Reset(); // Prevent hung sounds on savestate load (weird!) - dink
- }
-
- SCAN_VAR(i8751_return);
- SCAN_VAR(i8751_needs_ack);
- SCAN_VAR(i8751_coin_pending);
- SCAN_VAR(i8751_command_queue);
- SCAN_VAR(i8751_level);
- }
-
- return 0;
-}
-
-
-// Karnov (US, rev 6)
-
-static struct BurnRomInfo karnovRomDesc[] = {
- { "dn08-6", 0x10000, 0x4c60837f, 1 | BRF_PRG | BRF_ESS }, // 0 68k Code
- { "dn11-6", 0x10000, 0xcd4abb99, 1 | BRF_PRG | BRF_ESS }, // 1
- { "dn07-", 0x10000, 0xfc14291b, 1 | BRF_PRG | BRF_ESS }, // 2
- { "dn10-", 0x10000, 0xa4a34e37, 1 | BRF_PRG | BRF_ESS }, // 3
- { "dn06-5", 0x10000, 0x29d64e42, 1 | BRF_PRG | BRF_ESS }, // 4
- { "dn09-5", 0x10000, 0x072d7c49, 1 | BRF_PRG | BRF_ESS }, // 5
-
- { "dn05-5", 0x08000, 0xfa1a31a8, 2 | BRF_PRG | BRF_ESS }, // 6 m6502 Code
-
- { "dn00-", 0x08000, 0x0ed77c6d, 3 | BRF_GRA}, // 7 Characters
-
- { "dn04-", 0x10000, 0xa9121653, 4 | BRF_GRA}, // 8 Tiles
- { "dn01-", 0x10000, 0x18697c9e, 4 | BRF_GRA}, // 9
- { "dn03-", 0x10000, 0x90d9dd9c, 4 | BRF_GRA}, // 10
- { "dn02-", 0x10000, 0x1e04d7b9, 4 | BRF_GRA}, // 11
-
- { "dn12-", 0x10000, 0x9806772c, 5 | BRF_GRA}, // 12 Sprites
- { "dn14-5", 0x08000, 0xac9e6732, 5 | BRF_GRA}, // 13
- { "dn13-", 0x10000, 0xa03308f9, 5 | BRF_GRA}, // 14
- { "dn15-5", 0x08000, 0x8933fcb8, 5 | BRF_GRA}, // 15
- { "dn16-", 0x10000, 0x55e63a11, 5 | BRF_GRA}, // 16
- { "dn17-5", 0x08000, 0xb70ae950, 5 | BRF_GRA}, // 17
- { "dn18-", 0x10000, 0x2ad53213, 5 | BRF_GRA}, // 18
- { "dn19-5", 0x08000, 0x8fd4fa40, 5 | BRF_GRA}, // 19
-
- { "karnprom.21", 0x00400, 0xaab0bb93, 6 | BRF_GRA}, // 20 Color Color Proms
- { "karnprom.20", 0x00400, 0x02f78ffb, 6 | BRF_GRA}, // 21
-
- { "karnov_i8751", 0x01000, 0x00000000, BRF_OPT | BRF_NODUMP},
-};
-
-STD_ROM_PICK(karnov)
-STD_ROM_FN(karnov)
-
-static INT32 KarnovInit()
-{
- microcontroller_id = KARNOV;
- coin_mask = 0;
-
- return DrvInit();
-}
-
-struct BurnDriver BurnDrvKarnov = {
- "karnov", NULL, NULL, NULL, "1987",
- "Karnov (US, rev 6)\0", NULL, "Data East USA", "Miscellaneous",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_DATAEAST, GBF_PLATFORM | GBF_HORSHOOT, 0,
- NULL, karnovRomInfo, karnovRomName, NULL, NULL, KarnovInputInfo, KarnovDIPInfo,
- KarnovInit, DrvExit, DrvFrame, DrvDraw, DrvScan,
- &DrvRecalc, 0x300, 256, 248, 4, 3
-};
-
-
-// Karnov (US, rev 5)
-
-static struct BurnRomInfo karnovaRomDesc[] = {
- { "dn08-5", 0x10000, 0xdb92c264, 1 | BRF_PRG | BRF_ESS }, // 0 68k Code
- { "dn11-5", 0x10000, 0x05669b4b, 1 | BRF_PRG | BRF_ESS }, // 1
- { "dn07-", 0x10000, 0xfc14291b, 1 | BRF_PRG | BRF_ESS }, // 2
- { "dn10-", 0x10000, 0xa4a34e37, 1 | BRF_PRG | BRF_ESS }, // 3
- { "dn06-5", 0x10000, 0x29d64e42, 1 | BRF_PRG | BRF_ESS }, // 4
- { "dn09-5", 0x10000, 0x072d7c49, 1 | BRF_PRG | BRF_ESS }, // 5
-
- { "dn05-5", 0x08000, 0xfa1a31a8, 2 | BRF_PRG | BRF_ESS }, // 6 m6502 Code
-
- { "dn00-", 0x08000, 0x0ed77c6d, 3 | BRF_GRA}, // 7 Characters
-
- { "dn04-", 0x10000, 0xa9121653, 4 | BRF_GRA}, // 8 Tiles
- { "dn01-", 0x10000, 0x18697c9e, 4 | BRF_GRA}, // 9
- { "dn03-", 0x10000, 0x90d9dd9c, 4 | BRF_GRA}, // 10
- { "dn02-", 0x10000, 0x1e04d7b9, 4 | BRF_GRA}, // 11
-
- { "dn12-", 0x10000, 0x9806772c, 5 | BRF_GRA}, // 12 Sprites
- { "dn14-5", 0x08000, 0xac9e6732, 5 | BRF_GRA}, // 13
- { "dn13-", 0x10000, 0xa03308f9, 5 | BRF_GRA}, // 14
- { "dn15-5", 0x08000, 0x8933fcb8, 5 | BRF_GRA}, // 15
- { "dn16-", 0x10000, 0x55e63a11, 5 | BRF_GRA}, // 16
- { "dn17-5", 0x08000, 0xb70ae950, 5 | BRF_GRA}, // 17
- { "dn18-", 0x10000, 0x2ad53213, 5 | BRF_GRA}, // 18
- { "dn19-5", 0x08000, 0x8fd4fa40, 5 | BRF_GRA}, // 19
-
- { "karnprom.21", 0x00400, 0xaab0bb93, 6 | BRF_GRA}, // 20 Color Color Proms
- { "karnprom.20", 0x00400, 0x02f78ffb, 6 | BRF_GRA}, // 21
-
- { "karnov_i8751", 0x01000, 0x00000000, BRF_OPT | BRF_NODUMP},
-};
-
-STD_ROM_PICK(karnova)
-STD_ROM_FN(karnova)
-
-struct BurnDriver BurnDrvKarnova = {
- "karnova", "karnov", NULL, NULL, "1987",
- "Karnov (US, rev 5)\0", NULL, "Data East USA", "Miscellaneous",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_DATAEAST, GBF_PLATFORM | GBF_HORSHOOT, 0,
- NULL, karnovaRomInfo, karnovaRomName, NULL, NULL, KarnovInputInfo, KarnovDIPInfo,
- KarnovInit, DrvExit, DrvFrame, DrvDraw, DrvScan,
- &DrvRecalc, 0x300, 256, 248, 4, 3
-};
-
-
-// Karnov (Japan)
-
-static struct BurnRomInfo karnovjRomDesc[] = {
- { "kar8", 0x10000, 0x3e17e268, 1 | BRF_PRG | BRF_ESS }, // 0 68k Code
- { "kar11", 0x10000, 0x417c936d, 1 | BRF_PRG | BRF_ESS }, // 1
- { "dn07-", 0x10000, 0xfc14291b, 1 | BRF_PRG | BRF_ESS }, // 2
- { "dn10-", 0x10000, 0xa4a34e37, 1 | BRF_PRG | BRF_ESS }, // 3
- { "kar6", 0x10000, 0xc641e195, 1 | BRF_PRG | BRF_ESS }, // 4
- { "kar9", 0x10000, 0xd420658d, 1 | BRF_PRG | BRF_ESS }, // 5
-
- { "kar5", 0x08000, 0x7c9158f1, 2 | BRF_PRG | BRF_ESS }, // 6 m6502 Code
-
- { "dn00-", 0x08000, 0x0ed77c6d, 3 | BRF_GRA}, // 7 Characters
-
- { "dn04-", 0x10000, 0xa9121653, 4 | BRF_GRA}, // 8 Tiles
- { "dn01-", 0x10000, 0x18697c9e, 4 | BRF_GRA}, // 9
- { "dn03-", 0x10000, 0x90d9dd9c, 4 | BRF_GRA}, // 10
- { "dn02-", 0x10000, 0x1e04d7b9, 4 | BRF_GRA}, // 11
-
- { "dn12-", 0x10000, 0x9806772c, 5 | BRF_GRA}, // 12 Sprites
- { "kar14", 0x08000, 0xc6b39595, 5 | BRF_GRA}, // 13
- { "dn13-", 0x10000, 0xa03308f9, 5 | BRF_GRA}, // 14
- { "kar15", 0x08000, 0x2f72cac0, 5 | BRF_GRA}, // 15
- { "dn16-", 0x10000, 0x55e63a11, 5 | BRF_GRA}, // 16
- { "kar17", 0x08000, 0x7851c70f, 5 | BRF_GRA}, // 17
- { "dn18-", 0x10000, 0x2ad53213, 5 | BRF_GRA}, // 18
- { "kar19", 0x08000, 0x7bc174bb, 5 | BRF_GRA}, // 19
-
- { "karnprom.21", 0x00400, 0xaab0bb93, 6 | BRF_GRA}, // 20 Color Proms
- { "karnprom.20", 0x00400, 0x02f78ffb, 6 | BRF_GRA}, // 21
-
- { "karnovj_i8751", 0x01000, 0x00000000, BRF_OPT | BRF_NODUMP},
-};
-
-STD_ROM_PICK(karnovj)
-STD_ROM_FN(karnovj)
-
-static INT32 KarnovjInit()
-{
- microcontroller_id = KARNOVJ;
- coin_mask = 0;
-
- return DrvInit();
-}
-
-struct BurnDriver BurnDrvKarnovj = {
- "karnovj", "karnov", NULL, NULL, "1987",
- "Karnov (Japan)\0", NULL, "Data East Corporation", "Miscellaneous",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_DATAEAST, GBF_PLATFORM | GBF_HORSHOOT, 0,
- NULL, karnovjRomInfo, karnovjRomName, NULL, NULL, KarnovInputInfo, KarnovDIPInfo,
- KarnovjInit, DrvExit, DrvFrame, DrvDraw, DrvScan,
- &DrvRecalc, 0x300, 256, 248, 4, 3
-};
-
-
-// Wonder Planet (Japan)
-
-static struct BurnRomInfo wndrplntRomDesc[] = {
- { "ea08.bin", 0x10000, 0xb0578a14, 1 | BRF_PRG | BRF_ESS }, // 0 68k Code
- { "ea11.bin", 0x10000, 0x271edc6c, 1 | BRF_PRG | BRF_ESS }, // 1
- { "ea07.bin", 0x10000, 0x7095a7d5, 1 | BRF_PRG | BRF_ESS }, // 2
- { "ea10.bin", 0x10000, 0x81a96475, 1 | BRF_PRG | BRF_ESS }, // 3
- { "ea06.bin", 0x10000, 0x5951add3, 1 | BRF_PRG | BRF_ESS }, // 4
- { "ea09.bin", 0x10000, 0xc4b3cb1e, 1 | BRF_PRG | BRF_ESS }, // 5
-
- { "ea05.bin", 0x08000, 0x8dbb6231, 2 | BRF_PRG | BRF_ESS }, // 6 m6502 Code
-
- { "ea00.bin", 0x08000, 0x9f3cac4c, 3 | BRF_GRA}, // 7 Characters
-
- { "ea04.bin", 0x10000, 0x7d701344, 4 | BRF_GRA}, // 8 Tiles
- { "ea01.bin", 0x10000, 0x18df55fb, 4 | BRF_GRA}, // 9
- { "ea03.bin", 0x10000, 0x922ef050, 4 | BRF_GRA}, // 10
- { "ea02.bin", 0x10000, 0x700fde70, 4 | BRF_GRA}, // 11
-
- { "ea12.bin", 0x10000, 0xa6d4e99d, 5 | BRF_GRA}, // 12 Sprites
- { "ea14.bin", 0x10000, 0x915ffdc9, 5 | BRF_GRA}, // 13
- { "ea13.bin", 0x10000, 0xcd839f3a, 5 | BRF_GRA}, // 14
- { "ea15.bin", 0x10000, 0xa1f14f16, 5 | BRF_GRA}, // 15
- { "ea16.bin", 0x10000, 0x7a1d8a9c, 5 | BRF_GRA}, // 16
- { "ea17.bin", 0x10000, 0x21a3223d, 5 | BRF_GRA}, // 17
- { "ea18.bin", 0x10000, 0x3fb2cec7, 5 | BRF_GRA}, // 18
- { "ea19.bin", 0x10000, 0x87cf03b5, 5 | BRF_GRA}, // 19
-
- { "ea21.prm", 0x00400, 0xc8beab49, 6 | BRF_GRA}, // 20 Color Proms
- { "ea20.prm", 0x00400, 0x619f9d1e, 6 | BRF_GRA}, // 21
-
- { "wndrplnt_i8751", 0x01000, 0x00000000, BRF_OPT | BRF_NODUMP},
-};
-
-STD_ROM_PICK(wndrplnt)
-STD_ROM_FN(wndrplnt)
-
-static INT32 WndrplntInit()
-{
- microcontroller_id = WNDRPLNT;
- coin_mask = 0;
-
- return DrvInit();
-}
-
-struct BurnDriver BurnDrvWndrplnt = {
- "wndrplnt", NULL, NULL, NULL, "1987",
- "Wonder Planet (Japan)\0", NULL, "Data East Corporation", "Miscellaneous",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_DATAEAST, GBF_VERSHOOT, 0,
- NULL, wndrplntRomInfo, wndrplntRomName, NULL, NULL, KarnovInputInfo, WndrplntDIPInfo,
- WndrplntInit, DrvExit, DrvFrame, DrvDraw, DrvScan,
- &DrvRecalc, 0x300, 248, 256, 3, 4
-};
-
-
-// Chelnov - Atomic Runner (World)
-
-static struct BurnRomInfo chelnovRomDesc[] = {
- { "ee08-e.j16", 0x10000, 0x8275cc3a, 1 | BRF_PRG | BRF_ESS }, // 0 68k Code
- { "ee11-e.j19", 0x10000, 0x889e40a0, 1 | BRF_PRG | BRF_ESS }, // 1
- { "a-j14.bin", 0x10000, 0x51465486, 1 | BRF_PRG | BRF_ESS }, // 2
- { "a-j18.bin", 0x10000, 0xd09dda33, 1 | BRF_PRG | BRF_ESS }, // 3
- { "ee06-e.j13", 0x10000, 0x55acafdb, 1 | BRF_PRG | BRF_ESS }, // 4
- { "ee09-e.j17", 0x10000, 0x303e252c, 1 | BRF_PRG | BRF_ESS }, // 5
-
- { "ee05-.f3", 0x08000, 0x6a8936b4, 2 | BRF_PRG | BRF_ESS }, // 6 m6502 Code
-
- { "ee00-e.c5", 0x08000, 0xe06e5c6b, 3 | BRF_GRA}, // 7 Characters
-
- { "ee04-.d18", 0x10000, 0x96884f95, 4 | BRF_GRA}, // 8 Tiles
- { "ee01-.c15", 0x10000, 0xf4b54057, 4 | BRF_GRA}, // 9
- { "ee03-.d15", 0x10000, 0x7178e182, 4 | BRF_GRA}, // 10
- { "ee02-.c18", 0x10000, 0x9d7c45ae, 4 | BRF_GRA}, // 11
-
- { "ee12-.f8", 0x10000, 0x9b1c53a5, 5 | BRF_GRA}, // 12 Sprites
- { "ee13-.f9", 0x10000, 0x72b8ae3e, 5 | BRF_GRA}, // 13
- { "ee14-.f13", 0x10000, 0xd8f4bbde, 5 | BRF_GRA}, // 14
- { "ee15-.f15", 0x10000, 0x81e3e68b, 5 | BRF_GRA}, // 15
-
- { "ee21.k8", 0x00400, 0xb1db6586, 6 | BRF_GRA}, // 16 Color Proms
- { "ee20.l6", 0x00400, 0x41816132, 6 | BRF_GRA}, // 17
-
- { "chelnov_i8751", 0x01000, 0x00000000, BRF_OPT | BRF_NODUMP},
-};
-
-STD_ROM_PICK(chelnov)
-STD_ROM_FN(chelnov)
-
-static INT32 ChelnovInit()
-{
- microcontroller_id = CHELNOVW;
- coin_mask = 0xe0;
-
- return DrvInit();
-}
-
-struct BurnDriver BurnDrvChelnov = {
- "chelnov", NULL, NULL, NULL, "1988",
- "Chelnov - Atomic Runner (World)\0", NULL, "Data East Corporation", "Miscellaneous",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_DATAEAST, GBF_PLATFORM | GBF_HORSHOOT, 0,
- NULL, chelnovRomInfo, chelnovRomName, NULL, NULL, ChelnovInputInfo, ChelnovDIPInfo,
- ChelnovInit, DrvExit, DrvFrame, DrvDraw, DrvScan,
- &DrvRecalc, 0x300, 256, 248, 4, 3
-};
-
-
-// Chelnov - Atomic Runner (US)
-
-static struct BurnRomInfo chelnovuRomDesc[] = {
- { "ee08-a.j15", 0x10000, 0x2f2fb37b, 1 | BRF_PRG | BRF_ESS }, // 0 68k Code
- { "ee11-a.j20", 0x10000, 0xf306d05f, 1 | BRF_PRG | BRF_ESS }, // 1
- { "ee07-a.j14", 0x10000, 0x9c69ed56, 1 | BRF_PRG | BRF_ESS }, // 2
- { "ee10-a.j18", 0x10000, 0xd5c5fe4b, 1 | BRF_PRG | BRF_ESS }, // 3
- { "ee06-e.j13", 0x10000, 0x55acafdb, 1 | BRF_PRG | BRF_ESS }, // 4
- { "ee09-e.j17", 0x10000, 0x303e252c, 1 | BRF_PRG | BRF_ESS }, // 5
-
- { "ee05-.f3", 0x08000, 0x6a8936b4, 2 | BRF_PRG | BRF_ESS }, // 6 m6502 Code
-
- { "ee00-e.c5", 0x08000, 0xe06e5c6b, 3 | BRF_GRA}, // 7 Characters
-
- { "ee04-.d18", 0x10000, 0x96884f95, 4 | BRF_GRA}, // 8 Tiles
- { "ee01-.c15", 0x10000, 0xf4b54057, 4 | BRF_GRA}, // 9
- { "ee03-.d15", 0x10000, 0x7178e182, 4 | BRF_GRA}, // 10
- { "ee02-.c18", 0x10000, 0x9d7c45ae, 4 | BRF_GRA}, // 11
-
- { "ee12-.f8", 0x10000, 0x9b1c53a5, 5 | BRF_GRA}, // 12 Sprites
- { "ee13-.f9", 0x10000, 0x72b8ae3e, 5 | BRF_GRA}, // 13
- { "ee14-.f13", 0x10000, 0xd8f4bbde, 5 | BRF_GRA}, // 14
- { "ee15-.f15", 0x10000, 0x81e3e68b, 5 | BRF_GRA}, // 15
-
- { "ee21.k8", 0x00400, 0xb1db6586, 6 | BRF_GRA}, // 16 Color Proms
- { "ee20.l6", 0x00400, 0x41816132, 6 | BRF_GRA}, // 17
-
- { "chelnovu_i8751", 0x01000, 0x00000000, BRF_OPT | BRF_NODUMP},
-};
-
-STD_ROM_PICK(chelnovu)
-STD_ROM_FN(chelnovu)
-
-static INT32 ChelnovuInit()
-{
- microcontroller_id = CHELNOV;
- coin_mask = 0xe0;
-
- return DrvInit();
-}
-
-struct BurnDriver BurnDrvChelnovu = {
- "chelnovu", "chelnov", NULL, NULL, "1988",
- "Chelnov - Atomic Runner (US)\0", NULL, "Data East USA", "Miscellaneous",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_DATAEAST, GBF_PLATFORM | GBF_HORSHOOT, 0,
- NULL, chelnovuRomInfo, chelnovuRomName, NULL, NULL, ChelnovInputInfo, ChelnovuDIPInfo,
- ChelnovuInit, DrvExit, DrvFrame, DrvDraw, DrvScan,
- &DrvRecalc, 0x300, 256, 248, 4, 3
-};
-
-
-// Chelnov - Atomic Runner (Japan)
-
-static struct BurnRomInfo chelnovjRomDesc[] = {
- { "a-j15.bin", 0x10000, 0x1978cb52, 1 | BRF_PRG | BRF_ESS }, // 0 68k Code
- { "a-j20.bin", 0x10000, 0xe0ed3d99, 1 | BRF_PRG | BRF_ESS }, // 1
- { "a-j14.bin", 0x10000, 0x51465486, 1 | BRF_PRG | BRF_ESS }, // 2
- { "a-j18.bin", 0x10000, 0xd09dda33, 1 | BRF_PRG | BRF_ESS }, // 3
- { "a-j13.bin", 0x10000, 0xcd991507, 1 | BRF_PRG | BRF_ESS }, // 4
- { "a-j17.bin", 0x10000, 0x977f601c, 1 | BRF_PRG | BRF_ESS }, // 5
-
- { "ee05-.f3", 0x08000, 0x6a8936b4, 2 | BRF_PRG | BRF_ESS }, // 6 m6502 Code
-
- { "a-c5.bin", 0x08000, 0x1abf2c6d, 3 | BRF_GRA}, // 7 Characters
-
- { "ee04-.d18", 0x10000, 0x96884f95, 4 | BRF_GRA}, // 8 Tiles
- { "ee01-.c15", 0x10000, 0xf4b54057, 4 | BRF_GRA}, // 9
- { "ee03-.d15", 0x10000, 0x7178e182, 4 | BRF_GRA}, // 10
- { "ee02-.c18", 0x10000, 0x9d7c45ae, 4 | BRF_GRA}, // 11
-
- { "ee12-.f8", 0x10000, 0x9b1c53a5, 5 | BRF_GRA}, // 12 Sprites
- { "ee13-.f9", 0x10000, 0x72b8ae3e, 5 | BRF_GRA}, // 13
- { "ee14-.f13", 0x10000, 0xd8f4bbde, 5 | BRF_GRA}, // 14
- { "ee15-.f15", 0x10000, 0x81e3e68b, 5 | BRF_GRA}, // 15
-
- { "a-k7.bin", 0x00400, 0x309c49d8, 6 | BRF_GRA}, // 16 Color Proms
- { "ee20.l6", 0x00400, 0x41816132, 6 | BRF_GRA}, // 17
-
- { "chelnovj_i8751", 0x01000, 0x00000000, BRF_OPT | BRF_NODUMP},
-};
-
-STD_ROM_PICK(chelnovj)
-STD_ROM_FN(chelnovj)
-
-static INT32 ChelnovjInit()
-{
- microcontroller_id = CHELNOVJ;
- coin_mask = 0xe0;
-
- return DrvInit();
-}
-
-struct BurnDriver BurnDrvChelnovj = {
- "chelnovj", "chelnov", NULL, NULL, "1988",
- "Chelnov - Atomic Runner (Japan)\0", NULL, "Data East Corporation", "Miscellaneous",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_DATAEAST, GBF_PLATFORM | GBF_HORSHOOT, 0,
- NULL, chelnovjRomInfo, chelnovjRomName, NULL, NULL, ChelnovInputInfo, ChelnovuDIPInfo,
- ChelnovjInit, DrvExit, DrvFrame, DrvDraw, DrvScan,
- &DrvRecalc, 0x300, 256, 248, 4, 3
-};
diff --git a/jan/src/burn/drv/dataeast/d_kchamp.cpp b/jan/src/burn/drv/dataeast/d_kchamp.cpp
deleted file mode 100644
index ea48ed4f8..000000000
--- a/jan/src/burn/drv/dataeast/d_kchamp.cpp
+++ /dev/null
@@ -1,1149 +0,0 @@
-// FB Alpha Karate Champ driver module
-// Based on MAME driver by Ernesto Corvi
-
-#include "tiles_generic.h"
-#include "z80_intf.h"
-#include "driver.h"
-extern "C" {
-#include "ay8910.h"
-}
-#include "dac.h"
-#include "msm5205.h"
-
-static UINT8 *AllMem;
-static UINT8 *MemEnd;
-static UINT8 *AllRam;
-static UINT8 *RamEnd;
-static UINT8 *DrvZ80ROM0;
-static UINT8 *DrvZ80Ops;
-static UINT8 *DrvZ80ROM1;
-static UINT8 *DrvGfxROM0;
-static UINT8 *DrvGfxROM1;
-static UINT8 *DrvColPROM;
-static UINT8 *DrvZ80RAMA;
-static UINT8 *DrvZ80RAMB;
-static UINT8 *DrvZ80RAM1;
-static UINT8 *DrvVidRAM;
-static UINT8 *DrvColRAM;
-static UINT8 *DrvSprRAM;
-
-static UINT32 *DrvPalette;
-static UINT8 DrvRecalc;
-
-static INT16 *pAY8910Buffer[6];
-
-static UINT8 DrvJoy1[8];
-static UINT8 DrvJoy2[8];
-static UINT8 DrvJoy3[8];
-static UINT8 DrvDips[1];
-static UINT8 DrvInputs[3];
-static UINT8 DrvReset;
-
-static UINT8 nmi_enable;
-static UINT8 sound_nmi_enable;
-static UINT8 soundlatch;
-static UINT8 flipscreen;
-static UINT8 msm_play_lo_nibble;
-static UINT8 msm_data;
-static UINT8 msmcounter;
-
-static struct BurnInputInfo KchampInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy3 + 0, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy3 + 2, "p1 start" },
- {"P1 Up (left)", BIT_DIGITAL, DrvJoy1 + 2, "p1 up" },
- {"P1 Down (left)", BIT_DIGITAL, DrvJoy1 + 3, "p1 down" },
- {"P1 Left (left)", BIT_DIGITAL, DrvJoy1 + 1, "p1 left" },
- {"P1 Right (left)", BIT_DIGITAL, DrvJoy1 + 0, "p1 right" },
- {"P1 Up (right)", BIT_DIGITAL, DrvJoy1 + 6, "p3 up" },
- {"P1 Down (right)", BIT_DIGITAL, DrvJoy1 + 7, "p3 down" },
- {"P1 Left (right)", BIT_DIGITAL, DrvJoy1 + 5, "p3 left" },
- {"P1 Right (right)", BIT_DIGITAL, DrvJoy1 + 4, "p3 right" },
-
- {"P2 Start", BIT_DIGITAL, DrvJoy3 + 3, "p2 start" },
- {"P2 Coin", BIT_DIGITAL, DrvJoy3 + 1, "p2 coin" },
- {"P2 Up (left)", BIT_DIGITAL, DrvJoy2 + 2, "p2 up" },
- {"P2 Down (left)", BIT_DIGITAL, DrvJoy2 + 3, "p2 down" },
- {"P2 Left (left)", BIT_DIGITAL, DrvJoy2 + 1, "p2 left" },
- {"P2 Right (left)", BIT_DIGITAL, DrvJoy2 + 0, "p2 right" },
- {"P2 Up (right)", BIT_DIGITAL, DrvJoy2 + 6, "p4 up" },
- {"P2 Down (right)", BIT_DIGITAL, DrvJoy2 + 7, "p4 down" },
- {"P2 Left (right)", BIT_DIGITAL, DrvJoy2 + 5, "p4 left" },
- {"P2 Right (right)", BIT_DIGITAL, DrvJoy2 + 4, "p4 right" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
-};
-
-STDINPUTINFO(Kchamp)
-
-static struct BurnDIPInfo KchampDIPList[]=
-{
- {0x15, 0xff, 0xff, 0x3f, NULL },
-
- {0 , 0xfe, 0 , 4, "Coin B" },
- {0x15, 0x01, 0x03, 0x00, "3 Coins 1 Credits" },
- {0x15, 0x01, 0x03, 0x01, "2 Coins 1 Credits" },
- {0x15, 0x01, 0x03, 0x03, "1 Coin 1 Credits" },
- {0x15, 0x01, 0x03, 0x02, "1 Coin 2 Credits" },
-
- {0 , 0xfe, 0 , 4, "Coin A" },
- {0x15, 0x01, 0x0c, 0x00, "3 Coins 1 Credits" },
- {0x15, 0x01, 0x0c, 0x04, "2 Coins 1 Credits" },
- {0x15, 0x01, 0x0c, 0x0c, "1 Coin 1 Credits" },
- {0x15, 0x01, 0x0c, 0x08, "1 Coin 2 Credits" },
-
- {0 , 0xfe, 0 , 2, "Difficulty" },
- {0x15, 0x01, 0x10, 0x00, "Hard" },
- {0x15, 0x01, 0x10, 0x10, "Normal" },
-
- {0 , 0xfe, 0 , 2, "Free Play" },
- {0x15, 0x01, 0x20, 0x20, "Off" },
- {0x15, 0x01, 0x20, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x15, 0x01, 0x40, 0x40, "Off" },
- {0x15, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Cabinet" },
- {0x15, 0x01, 0x80, 0x00, "Upright" },
- {0x15, 0x01, 0x80, 0x80, "Cocktail" },
-};
-
-STDDIPINFO(Kchamp)
-
-static struct BurnDIPInfo KchampvsDIPList[]=
-{
- {0x15, 0xff, 0xff, 0xbf, NULL },
-
- {0 , 0xfe, 0 , 4, "Coin B" },
- {0x15, 0x01, 0x03, 0x00, "3 Coins 1 Credits" },
- {0x15, 0x01, 0x03, 0x01, "2 Coins 1 Credits" },
- {0x15, 0x01, 0x03, 0x03, "1 Coin 1 Credits" },
- {0x15, 0x01, 0x03, 0x02, "1 Coin 2 Credits" },
-
- {0 , 0xfe, 0 , 4, "Coin A" },
- {0x15, 0x01, 0x0c, 0x00, "3 Coins 1 Credits" },
- {0x15, 0x01, 0x0c, 0x04, "2 Coins 1 Credits" },
- {0x15, 0x01, 0x0c, 0x0c, "1 Coin 1 Credits" },
- {0x15, 0x01, 0x0c, 0x08, "1 Coin 2 Credits" },
-
- {0 , 0xfe, 0 , 2, "Difficulty" },
- {0x15, 0x01, 0x10, 0x00, "Hard" },
- {0x15, 0x01, 0x10, 0x10, "Normal" },
-
- {0 , 0xfe, 0 , 2, "Free Play" },
- {0x15, 0x01, 0x20, 0x20, "Off" },
- {0x15, 0x01, 0x20, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x15, 0x01, 0x40, 0x40, "Off" },
- {0x15, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Free Play" },
- {0x15, 0x01, 0x80, 0x00, "On" },
- {0x15, 0x01, 0x80, 0x80, "Off" },
-};
-
-STDDIPINFO(Kchampvs)
-
-static void __fastcall kchamp_main_write_port(UINT16 port, UINT8 data)
-{
- switch (port & 0xff)
- {
- case 0x80:
- flipscreen = data & 1;
- return;
-
- case 0x81:
- nmi_enable = data & 1;
- return;
-
- case 0xa8:
- soundlatch = data;
- ZetClose();
- ZetOpen(1);
- ZetSetIRQLine(0, CPU_IRQSTATUS_HOLD);
- ZetClose();
- ZetOpen(0);
- return;
- }
-}
-
-static UINT8 __fastcall kchamp_main_read_port(UINT16 port)
-{
- switch (port & 0xff)
- {
- case 0x80:
- return DrvDips[0];
-
- case 0x90:
- return DrvInputs[0];
-
- case 0x98:
- return DrvInputs[1];
-
- case 0xa0:
- return DrvInputs[2];
-
- case 0xa8:
- ZetClose();
- ZetOpen(1);
- ZetReset();
- ZetClose();
- ZetOpen(0);
- return 0;
- }
-
- return 0;
-}
-
-static void __fastcall kchamp_sound_write_port(UINT16 port, UINT8 data)
-{
- switch (port & 0xff)
- {
- case 0x00:
- case 0x01:
- case 0x02:
- case 0x03:
- AY8910Write((port/2)&1, ~port & 1, data);
- return;
-
- case 0x04:
- DACWrite(0, data);
- return;
-
- case 0x05:
- sound_nmi_enable = data & 0x80;
- return;
- }
-}
-
-static UINT8 __fastcall kchamp_sound_read_port(UINT16 port)
-{
- switch (port & 0xff)
- {
- case 0x06:
- return soundlatch;
- }
-
- return 0;
-}
-
-static void __fastcall kchampvs_main_write_port(UINT16 port, UINT8 data)
-{
- switch (port & 0xff)
- {
- case 0x00:
- flipscreen = data & 1;
- return;
-
- case 0x01:
- nmi_enable = data & 1;
- return;
-
- case 0x02:
- ZetClose();
- ZetOpen(1);
- ZetReset();
- ZetClose();
- ZetOpen(0);
- return;
-
- case 0x40:
- soundlatch = data;
- ZetClose();
- ZetOpen(1);
- ZetSetIRQLine(0, CPU_IRQSTATUS_HOLD);
- ZetClose();
- ZetOpen(0);
- return;
- }
-}
-
-static UINT8 __fastcall kchampvs_main_read_port(UINT16 port)
-{
- switch (port & 0xff)
- {
- case 0x00:
- return DrvInputs[0];
-
- case 0x40:
- return DrvInputs[1];
-
- case 0x80:
- return DrvInputs[2];
-
- case 0xc0:
- return DrvDips[0];
- }
-
- return 0;
-}
-
-static void __fastcall kchampvs_sound_write_port(UINT16 port, UINT8 data)
-{
- switch (port & 0xff)
- {
- case 0x00:
- case 0x01:
- case 0x02:
- case 0x03:
- AY8910Write((port/2)&1, ~port & 1, data);
- return;
-
- case 0x04:
- msm_data = data;
- msm_play_lo_nibble = 1;
- return;
-
- case 0x05:
- MSM5205ResetWrite(0, ~data & 1);
- sound_nmi_enable = data & 0x02;
- return;
- }
-}
-
-static UINT8 __fastcall kchampvs_sound_read_port(UINT16 port)
-{
- switch (port & 0xff)
- {
- case 0x01:
- return soundlatch;
- }
-
- return 0;
-}
-
-static void kchampvs_adpcm_interrupt()
-{
- if (msm_play_lo_nibble)
- MSM5205DataWrite(0, msm_data & 0x0f);
- else
- MSM5205DataWrite(0, msm_data >> 4);
-
- msm_play_lo_nibble = !msm_play_lo_nibble;
-
- if (!(msmcounter ^= 1) && sound_nmi_enable) {
- ZetNmi();
- }
-}
-
-static INT32 SynchroniseStream(INT32 nSoundRate)
-{
- return (INT64)ZetTotalCycles() * nSoundRate / 3000000;
-}
-
-static INT32 DrvDACSync()
-{
- return (INT32)(float)(nBurnSoundLen * (ZetTotalCycles() / (3000000.0000 / (nBurnFPS / 100.0000))));
-}
-
-static INT32 DrvDoReset()
-{
- memset (AllRam, 0, RamEnd - AllRam);
-
- ZetOpen(0);
- ZetReset();
- ZetClose();
-
- ZetOpen(1);
- ZetReset();
- DACReset();
- MSM5205Reset();
- ZetClose();
-
- AY8910Reset(0);
- AY8910Reset(1);
-
- nmi_enable = 0;
- sound_nmi_enable = 0;
- soundlatch = 0;
- flipscreen = 0;
- msm_play_lo_nibble = 1;
- msm_data = 0;
- msmcounter = 0;
-
- return 0;
-}
-
-static INT32 MemIndex()
-{
- UINT8 *Next; Next = AllMem;
-
- DrvZ80ROM0 = Next; Next += 0x010000;
- DrvZ80Ops = Next; Next += 0x010000;
- DrvZ80ROM1 = Next; Next += 0x010000;
-
- DrvGfxROM0 = Next; Next += 0x040000;
- DrvGfxROM1 = Next; Next += 0x080000;
-
- DrvColPROM = Next; Next += 0x000300;
-
- DrvPalette = (UINT32*)Next; Next += 0x100 * sizeof(UINT32);
-
- AllRam = Next;
-
- DrvZ80RAMA = Next; Next += 0x002000;
- DrvZ80RAMB = Next; Next += 0x002000;
- DrvZ80RAM1 = Next; Next += 0x00a000;
- DrvVidRAM = Next; Next += 0x000400;
- DrvColRAM = Next; Next += 0x000400;
- DrvSprRAM = Next; Next += 0x000100;
-
- RamEnd = Next;
-
- pAY8910Buffer[0] = (INT16*)Next; Next += nBurnSoundLen * sizeof(INT16);
- pAY8910Buffer[1] = (INT16*)Next; Next += nBurnSoundLen * sizeof(INT16);
- pAY8910Buffer[2] = (INT16*)Next; Next += nBurnSoundLen * sizeof(INT16);
- pAY8910Buffer[3] = (INT16*)Next; Next += nBurnSoundLen * sizeof(INT16);
- pAY8910Buffer[4] = (INT16*)Next; Next += nBurnSoundLen * sizeof(INT16);
- pAY8910Buffer[5] = (INT16*)Next; Next += nBurnSoundLen * sizeof(INT16);
-
- MemEnd = Next;
-
- return 0;
-}
-
-static INT32 DrvGfxDecode()
-{
- INT32 Plane0[2] = { 0x4000*8, 0 };
- INT32 Plane1[2] = { 0xc000*8, 0 };
- INT32 XOffs[16] = { STEP8(0,1), STEP8(0x2000*8,1) };
- INT32 YOffs[16] = { STEP8(0,8), STEP8(8*8,8) };
-
- UINT8 *tmp = (UINT8*)BurnMalloc(0x18000);
- if (tmp == NULL) {
- return 1;
- }
-
- memcpy (tmp, DrvGfxROM0, 0x8000);
-
- GfxDecode(0x0800, 2, 8, 8, Plane0, XOffs, YOffs, 0x040, tmp, DrvGfxROM0);
-
- memcpy (tmp, DrvGfxROM1, 0x18000);
-
- GfxDecode(0x0200, 2, 16, 16, Plane1, XOffs, YOffs, 0x080, tmp + 0x8000, DrvGfxROM1 + 0x40000);
- GfxDecode(0x0200, 2, 16, 16, Plane1, XOffs, YOffs, 0x080, tmp + 0x4000, DrvGfxROM1 + 0x20000);
- GfxDecode(0x0200, 2, 16, 16, Plane1, XOffs, YOffs, 0x080, tmp + 0x0000, DrvGfxROM1 + 0x00000);
-
- BurnFree(tmp);
-
- return 0;
-}
-
-static INT32 KchampInit()
-{
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(DrvZ80ROM0 + 0x00000, 0, 1)) return 1;
- if (BurnLoadRom(DrvZ80ROM0 + 0x02000, 1, 1)) return 1;
- if (BurnLoadRom(DrvZ80ROM0 + 0x04000, 2, 1)) return 1;
- if (BurnLoadRom(DrvZ80ROM0 + 0x06000, 3, 1)) return 1;
- if (BurnLoadRom(DrvZ80ROM0 + 0x08000, 4, 1)) return 1;
- if (BurnLoadRom(DrvZ80ROM0 + 0x0a000, 5, 1)) return 1;
-
- if (BurnLoadRom(DrvZ80ROM1 + 0x00000, 6, 1)) return 1;
- if (BurnLoadRom(DrvZ80ROM1 + 0x02000, 7, 1)) return 1;
- if (BurnLoadRom(DrvZ80ROM1 + 0x04000, 8, 1)) return 1;
- if (BurnLoadRom(DrvZ80ROM1 + 0x06000, 9, 1)) return 1;
- if (BurnLoadRom(DrvZ80ROM1 + 0x08000, 10, 1)) return 1;
- if (BurnLoadRom(DrvZ80ROM1 + 0x0a000, 11, 1)) return 1;
- if (BurnLoadRom(DrvZ80ROM1 + 0x0c000, 12, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x00000, 13, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x04000, 14, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM1 + 0x00000, 15, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x02000, 16, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x04000, 17, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x06000, 18, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x08000, 19, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x0a000, 20, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x0c000, 21, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x0e000, 22, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x10000, 23, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x12000, 24, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x14000, 25, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x16000, 26, 1)) return 1;
-
- if (BurnLoadRom(DrvColPROM + 0x00000, 27, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x00100, 28, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x00200, 29, 1)) return 1;
-
- DrvGfxDecode();
- }
-
- ZetInit(0);
- ZetOpen(0);
- ZetMapMemory(DrvZ80ROM0, 0x0000, 0xbfff, MAP_ROM);
- ZetMapMemory(DrvZ80RAMA, 0xc000, 0xdfff, MAP_RAM);
- ZetMapMemory(DrvVidRAM, 0xe000, 0xe3ff, MAP_RAM);
- ZetMapMemory(DrvColRAM, 0xe400, 0xe7ff, MAP_RAM);
- ZetMapMemory(DrvSprRAM, 0xea00, 0xeaff, MAP_RAM);
- ZetMapMemory(DrvZ80RAMB, 0xeb00, 0xffff, MAP_RAM);
- ZetSetOutHandler(kchamp_main_write_port);
- ZetSetInHandler(kchamp_main_read_port);
- ZetClose();
-
- ZetInit(1);
- ZetOpen(1);
- ZetMapMemory(DrvZ80ROM1, 0x0000, 0xdfff, MAP_ROM);
- ZetMapMemory(DrvZ80RAM1, 0xe000, 0xe2ff, MAP_RAM);
- ZetSetOutHandler(kchamp_sound_write_port);
- ZetSetInHandler(kchamp_sound_read_port);
- ZetClose();
-
- AY8910Init(0, 1500000, nBurnSoundRate, NULL, NULL, NULL, NULL);
- AY8910Init(1, 1500000, nBurnSoundRate, NULL, NULL, NULL, NULL);
- AY8910SetAllRoutes(0, 0.30, BURN_SND_ROUTE_BOTH);
- AY8910SetAllRoutes(1, 0.30, BURN_SND_ROUTE_BOTH);
-
- DACInit(0, 0, 1, DrvDACSync);
- DACSetRoute(0, 1.00, BURN_SND_ROUTE_BOTH);
-
- // not used in this hardware
- MSM5205Init(0, SynchroniseStream, 375000, kchampvs_adpcm_interrupt, MSM5205_S96_4B, 1);
- MSM5205SetRoute(0, 0.00, BURN_SND_ROUTE_BOTH);
-
- GenericTilesInit();
-
- DrvDoReset();
-
- return 0;
-}
-
-static void decode()
-{
- for (int A = 0; A < 0x10000; A++)
- DrvZ80Ops[A] = (DrvZ80ROM0[A] & 0x55) | ((DrvZ80ROM0[A] & 0x88) >> 2) | ((DrvZ80ROM0[A] & 0x22) << 2);
-}
-
-static INT32 KchampvsInit()
-{
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(DrvZ80ROM0 + 0x00000, 0, 1)) return 1;
- if (BurnLoadRom(DrvZ80ROM0 + 0x02000, 1, 1)) return 1;
- if (BurnLoadRom(DrvZ80ROM0 + 0x04000, 2, 1)) return 1;
- if (BurnLoadRom(DrvZ80ROM0 + 0x06000, 3, 1)) return 1;
- if (BurnLoadRom(DrvZ80ROM0 + 0x08000, 4, 1)) return 1;
- if (BurnLoadRom(DrvZ80ROM0 + 0x0a000, 5, 1)) return 1;
- memcpy (DrvZ80ROM0 + 0xe000, DrvZ80ROM0 + 0xc000, 0x2000);
-
- if (BurnLoadRom(DrvZ80ROM1 + 0x00000, 6, 1)) return 1;
- if (BurnLoadRom(DrvZ80ROM1 + 0x02000, 7, 1)) return 1;
- if (BurnLoadRom(DrvZ80ROM1 + 0x04000, 8, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x00000, 9, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x02000, 10, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x04000, 11, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x06000, 12, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM1 + 0x00000, 13, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x02000, 14, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x04000, 15, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x06000, 16, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x08000, 17, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x0a000, 18, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x0c000, 19, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x0e000, 20, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x10000, 21, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x12000, 22, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x14000, 23, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x16000, 24, 1)) return 1;
-
- if (BurnLoadRom(DrvColPROM + 0x00000, 25, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x00100, 26, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x00200, 27, 1)) return 1;
-
- DrvGfxDecode();
- decode();
- }
-
- ZetInit(0);
- ZetOpen(0);
- ZetMapMemory(DrvZ80ROM0, 0x0000, 0xbfff, MAP_ROM);
- ZetMapMemory(DrvZ80RAMA, 0xc000, 0xcfff, MAP_RAM);
- ZetMapMemory(DrvVidRAM, 0xd000, 0xd3ff, MAP_RAM);
- ZetMapMemory(DrvColRAM, 0xd400, 0xd7ff, MAP_RAM);
- ZetMapMemory(DrvSprRAM, 0xd800, 0xd9ff, MAP_RAM);
- ZetMapMemory(DrvZ80RAMB, 0xd900, 0xdfff, MAP_RAM);
- ZetMapMemory(DrvZ80ROM0 + 0xe000, 0xe000, 0xffff, MAP_ROM);
-// ZetMapMemory(DrvZ80Ops, 0x0000, 0xffff, MAP_FETCH);
- ZetMapArea(0x0000, 0xffff, 2, DrvZ80Ops, DrvZ80ROM0);
- ZetSetOutHandler(kchampvs_main_write_port);
- ZetSetInHandler(kchampvs_main_read_port);
- ZetClose();
-
- ZetInit(1);
- ZetOpen(1);
- ZetMapMemory(DrvZ80ROM1, 0x0000, 0x5fff, MAP_ROM);
- ZetMapMemory(DrvZ80RAM1, 0x6000, 0xffff, MAP_RAM);
- ZetSetOutHandler(kchampvs_sound_write_port);
- ZetSetInHandler(kchampvs_sound_read_port);
- ZetClose();
-
- AY8910Init(0, 1500000, nBurnSoundRate, NULL, NULL, NULL, NULL);
- AY8910Init(1, 1500000, nBurnSoundRate, NULL, NULL, NULL, NULL);
- AY8910SetAllRoutes(0, 0.30, BURN_SND_ROUTE_BOTH);
- AY8910SetAllRoutes(1, 0.30, BURN_SND_ROUTE_BOTH);
-
- MSM5205Init(0, SynchroniseStream, 375000, kchampvs_adpcm_interrupt, MSM5205_S96_4B, 1);
- MSM5205SetRoute(0, 1.00, BURN_SND_ROUTE_BOTH);
-
- // not used on this hardware
- DACInit(0, 0, 1, DrvDACSync);
- DACSetRoute(0, 0.00, BURN_SND_ROUTE_BOTH);
-
- GenericTilesInit();
-
- DrvDoReset();
-
- return 0;
-}
-
-static INT32 DrvExit()
-{
- GenericTilesExit();
-
- ZetExit();
- AY8910Exit(0);
- AY8910Exit(1);
- MSM5205Exit();
- DACExit();
-
- BurnFree(AllMem);
-
- return 0;
-}
-
-static void DrvPaletteInit()
-{
- for (INT32 i = 0; i < 0x100; i++)
- {
- UINT8 r = DrvColPROM[0x000 + i] & 0xf;
- UINT8 g = DrvColPROM[0x100 + i] & 0xf;
- UINT8 b = DrvColPROM[0x200 + i] & 0xf;
-
- r += r * 16;
- g += g * 16;
- b += b * 16;
-
- DrvPalette[i] = BurnHighCol(r,g,b,0);
- }
-}
-
-static void draw_layer()
-{
- for (INT32 offs = (2 * 32); offs < (32 * 32) - (2 * 32); offs++)
- {
- INT32 sx = (offs & 0x1f) * 8;
- INT32 sy = (offs / 0x20) * 8;
-
- INT32 attr = DrvColRAM[offs];
- INT32 code = DrvVidRAM[offs] + ((attr & 0x07) * 256);
- INT32 color= (attr >> 3) & 0x1f;
-
- Render8x8Tile(pTransDraw, code, sx, sy - 16, color, 2, 0x80, DrvGfxROM0);
- }
-}
-
-static void draw_sprites(INT32 sxoffs, INT32 syoffs)
-{
- INT32 banks[4] = { 0x400, 0x200, 0 };
-
- for (INT32 offs = 0; offs < 0x100; offs += 4)
- {
- INT32 attr = DrvSprRAM[offs + 2];
- INT32 code = DrvSprRAM[offs + 1] + ((attr & 0x10) << 4) + banks[(attr >> 5) & 3];
- INT32 color = attr & 0x0f;
- INT32 flipx = 0;
- INT32 flipy = attr & 0x80;
- INT32 sx = DrvSprRAM[offs + 3] - sxoffs;
- INT32 sy = syoffs - DrvSprRAM[offs];
-
- if ((nBurnLayer & (1 << ((attr>>5)&3))) == 0) continue;
-
- if (flipscreen)
- {
- sx = 240 - sx;
- sy = 240 - sy;
- flipx = !flipx;
- flipy = !flipy;
- }
-
- if (flipy) {
- if (flipx) {
- Render16x16Tile_Mask_FlipXY_Clip(pTransDraw, code, sx, sy - 16, color, 2, 0, 0, DrvGfxROM1);
- } else {
- Render16x16Tile_Mask_FlipY_Clip(pTransDraw, code, sx, sy - 16, color, 2, 0, 0, DrvGfxROM1);
- }
- } else {
- if (flipx) {
- Render16x16Tile_Mask_FlipX_Clip(pTransDraw, code, sx, sy - 16, color, 2, 0, 0, DrvGfxROM1);
- } else {
- Render16x16Tile_Mask_Clip(pTransDraw, code, sx, sy - 16, color, 2, 0, 0, DrvGfxROM1);
- }
- }
- }
-}
-
-static INT32 KchampDraw()
-{
- if (DrvRecalc) {
- DrvPaletteInit();
- DrvRecalc = 0;
- }
-
- draw_layer();
- draw_sprites(8,247);
-
- BurnTransferCopy(DrvPalette);
-
- return 0;
-}
-
-static INT32 KchampFrame()
-{
- if (DrvReset) {
- DrvDoReset();
- }
-
- ZetNewFrame();
-
- {
- memset (DrvInputs, 0xff, 3);
-
- for (INT32 i = 0; i < 8; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- DrvInputs[2] ^= (DrvJoy3[i] & 1) << i;
- }
- }
-
- INT32 nInterleave = 40;
- INT32 nCyclesTotal[2] = { 3000000 / 60, 3000000 / 60 };
- INT32 nCyclesDone[2] = { 0, 0 };
-
- for (INT32 i = 0; i < nInterleave; i++)
- {
- ZetOpen(0);
- nCyclesDone[0] += ZetRun(nCyclesTotal[0] / nInterleave);
- if (nmi_enable && i == 39) ZetNmi();
- ZetClose();
-
- ZetOpen(1);
- nCyclesDone[1] += ZetRun(nCyclesTotal[1] / nInterleave);
- if (sound_nmi_enable && (i == 20 || i == 39)) ZetNmi();
- ZetClose();
- }
-
- if (pBurnSoundOut) {
- AY8910Render(&pAY8910Buffer[0], pBurnSoundOut, nBurnSoundLen, 0);
- DACUpdate(pBurnSoundOut, nBurnSoundLen);
- }
-
- if (pBurnDraw) {
- KchampDraw();
- }
-
- return 0;
-}
-
-static INT32 KchampvsDraw()
-{
- if (DrvRecalc) {
- DrvPaletteInit();
- DrvRecalc = 0;
- }
-
- draw_layer();
- draw_sprites(0,240);
-
- BurnTransferCopy(DrvPalette);
-
- return 0;
-}
-
-static INT32 KchampvsFrame()
-{
- if (DrvReset) {
- DrvDoReset();
- }
-
- ZetNewFrame();
-
- {
- memset (DrvInputs, 0xff, 3);
-
- for (INT32 i = 0; i < 8; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- DrvInputs[2] ^= (DrvJoy3[i] & 1) << i;
- }
- }
-
- INT32 nInterleave = MSM5205CalcInterleave(0, 3000000);
- INT32 nCyclesTotal[2] = { 3000000 / 60, 3000000 / 60 };
- INT32 nCyclesDone[2] = { 0, 0 };
-
- for (INT32 i = 0; i < nInterleave; i++)
- {
- ZetOpen(0);
- nCyclesDone[0] += ZetRun(nCyclesTotal[0] / nInterleave);
- if (nmi_enable && i == (nInterleave - 1)) ZetNmi();
- ZetClose();
-
- ZetOpen(1);
- nCyclesDone[1] += ZetRun(nCyclesTotal[1] / nInterleave);
-
- MSM5205Update();
-
- ZetClose();
- }
-
- ZetOpen(1);
- if (pBurnSoundOut) {
- AY8910Render(&pAY8910Buffer[0], pBurnSoundOut, nBurnSoundLen, 0);
- MSM5205Render(0, pBurnSoundOut, nBurnSoundLen);
- }
- ZetClose();
-
- if (pBurnDraw) {
- KchampvsDraw();
- }
-
- return 0;
-}
-
-static INT32 DrvScan(INT32 nAction, INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin) {
- *pnMin = 0x029702;
- }
-
- if (nAction & ACB_VOLATILE) {
- memset(&ba, 0, sizeof(ba));
-
- ba.Data = AllRam;
- ba.nLen = RamEnd - AllRam;
- ba.szName = "All Ram";
- BurnAcb(&ba);
-
- ZetScan(nAction);
- AY8910Scan(nAction, pnMin);
- MSM5205Scan(nAction, pnMin);
- DACScan(nAction, pnMin);
-
- SCAN_VAR(nmi_enable);
- SCAN_VAR(sound_nmi_enable);
- SCAN_VAR(soundlatch);
- SCAN_VAR(flipscreen);
- SCAN_VAR(msm_play_lo_nibble);
- SCAN_VAR(msm_data);
- }
-
- return 0;
-}
-
-
-// Karate Champ (US)
-
-static struct BurnRomInfo kchampRomDesc[] = {
- { "b014.bin", 0x2000, 0x0000d1a0, 1 | BRF_PRG | BRF_ESS }, // 0 Z80 Code #0
- { "b015.bin", 0x2000, 0x03fae67e, 1 | BRF_PRG | BRF_ESS }, // 1
- { "b016.bin", 0x2000, 0x3b6e1d08, 1 | BRF_PRG | BRF_ESS }, // 2
- { "b017.bin", 0x2000, 0xc1848d1a, 1 | BRF_PRG | BRF_ESS }, // 3
- { "b018.bin", 0x2000, 0xb824abc7, 1 | BRF_PRG | BRF_ESS }, // 4
- { "b019.bin", 0x2000, 0x3b487a46, 1 | BRF_PRG | BRF_ESS }, // 5
-
- { "b026.bin", 0x2000, 0x999ed2c7, 2 | BRF_PRG | BRF_ESS }, // 6 Z80 Code #1
- { "b025.bin", 0x2000, 0x33171e07, 2 | BRF_PRG | BRF_ESS }, // 7
- { "b024.bin", 0x2000, 0x910b48b9, 2 | BRF_PRG | BRF_ESS }, // 8
- { "b023.bin", 0x2000, 0x47f66aac, 2 | BRF_PRG | BRF_ESS }, // 9
- { "b022.bin", 0x2000, 0x5928e749, 2 | BRF_PRG | BRF_ESS }, // 10
- { "b021.bin", 0x2000, 0xca17e3ba, 2 | BRF_PRG | BRF_ESS }, // 11
- { "b020.bin", 0x2000, 0xada4f2cd, 2 | BRF_PRG | BRF_ESS }, // 12
-
- { "b000.bin", 0x2000, 0xa4fa98a1, 3 | BRF_GRA }, // 13 Characters
- { "b001.bin", 0x2000, 0xfea09f7c, 3 | BRF_GRA }, // 14
-
- { "b013.bin", 0x2000, 0xeaad4168, 4 | BRF_GRA }, // 15 Sprites
- { "b004.bin", 0x2000, 0x10a47e2d, 4 | BRF_GRA }, // 16
- { "b012.bin", 0x2000, 0xb4842ea9, 4 | BRF_GRA }, // 17
- { "b003.bin", 0x2000, 0x8cd166a5, 4 | BRF_GRA }, // 18
- { "b011.bin", 0x2000, 0x4cbd3aa3, 4 | BRF_GRA }, // 19
- { "b002.bin", 0x2000, 0x6be342a6, 4 | BRF_GRA }, // 20
- { "b007.bin", 0x2000, 0xcb91d16b, 4 | BRF_GRA }, // 21
- { "b010.bin", 0x2000, 0x489c9c04, 4 | BRF_GRA }, // 22
- { "b006.bin", 0x2000, 0x7346db8a, 4 | BRF_GRA }, // 23
- { "b009.bin", 0x2000, 0xb78714fc, 4 | BRF_GRA }, // 24
- { "b005.bin", 0x2000, 0xb2557102, 4 | BRF_GRA }, // 25
- { "b008.bin", 0x2000, 0xc85aba0e, 4 | BRF_GRA }, // 26
-
- { "br27", 0x0100, 0xf683c54a, 5 | BRF_GRA }, // 27 Color data
- { "br26", 0x0100, 0x3ddbb6c4, 5 | BRF_GRA }, // 28
- { "br25", 0x0100, 0xba4a5651, 5 | BRF_GRA }, // 29
-};
-
-STD_ROM_PICK(kchamp)
-STD_ROM_FN(kchamp)
-
-struct BurnDriver BurnDrvKchamp = {
- "kchamp", NULL, NULL, NULL, "1984",
- "Karate Champ (US)\0", NULL, "Data East USA", "Miscellaneous",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED, 4, HARDWARE_PREFIX_DATAEAST, GBF_VSFIGHT, 0,
- NULL, kchampRomInfo, kchampRomName, NULL, NULL, KchampInputInfo, KchampDIPInfo,
- KchampInit, DrvExit, KchampFrame, KchampDraw, DrvScan, &DrvRecalc, 0x100,
- 224, 256, 3, 4
-};
-
-
-// Karate Dou (Japan)
-
-static struct BurnRomInfo karatedoRomDesc[] = {
- { "be14", 0x2000, 0x44e60aa0, 1 | BRF_PRG | BRF_ESS }, // 0 Z80 Code #0 (Encrypted)
- { "be15", 0x2000, 0xa65e3793, 1 | BRF_PRG | BRF_ESS }, // 1
- { "be16", 0x2000, 0x151d8872, 1 | BRF_PRG | BRF_ESS }, // 2
- { "be17", 0x2000, 0x8f393b6a, 1 | BRF_PRG | BRF_ESS }, // 3
- { "be18", 0x2000, 0xa09046ad, 1 | BRF_PRG | BRF_ESS }, // 4
- { "be19", 0x2000, 0x0cdc4da9, 1 | BRF_PRG | BRF_ESS }, // 5
-
- { "be26", 0x2000, 0x999ab0a3, 2 | BRF_PRG | BRF_ESS }, // 6 Z80 Code #1
- { "be25", 0x2000, 0x253bf0da, 2 | BRF_PRG | BRF_ESS }, // 7
- { "be24", 0x2000, 0xe2c188af, 2 | BRF_PRG | BRF_ESS }, // 8
- { "be23", 0x2000, 0x25262de1, 2 | BRF_PRG | BRF_ESS }, // 9
- { "be22", 0x2000, 0x38055c48, 2 | BRF_PRG | BRF_ESS }, // 10
- { "be21", 0x2000, 0x5f0efbe7, 2 | BRF_PRG | BRF_ESS }, // 11
- { "be20", 0x2000, 0xcbe8a533, 2 | BRF_PRG | BRF_ESS }, // 12
-
- { "be00", 0x2000, 0xcec020f2, 3 | BRF_GRA }, // 13 Characters
- { "be01", 0x2000, 0xcd96271c, 3 | BRF_GRA }, // 14
-
- { "be13", 0x2000, 0xfb358707, 4 | BRF_GRA }, // 15 Sprites
- { "be04", 0x2000, 0x48372bf8, 4 | BRF_GRA }, // 16
- { "b012.bin", 0x2000, 0xb4842ea9, 4 | BRF_GRA }, // 17
- { "b003.bin", 0x2000, 0x8cd166a5, 4 | BRF_GRA }, // 18
- { "b011.bin", 0x2000, 0x4cbd3aa3, 4 | BRF_GRA }, // 19
- { "b002.bin", 0x2000, 0x6be342a6, 4 | BRF_GRA }, // 20
- { "be07", 0x2000, 0x40f2b6fb, 4 | BRF_GRA }, // 21
- { "be10", 0x2000, 0x325c0a97, 4 | BRF_GRA }, // 22
- { "b006.bin", 0x2000, 0x7346db8a, 4 | BRF_GRA }, // 23
- { "b009.bin", 0x2000, 0xb78714fc, 4 | BRF_GRA }, // 24
- { "b005.bin", 0x2000, 0xb2557102, 4 | BRF_GRA }, // 25
- { "b008.bin", 0x2000, 0xc85aba0e, 4 | BRF_GRA }, // 26
-
- { "br27", 0x0100, 0xf683c54a, 5 | BRF_GRA }, // 27 Color data
- { "br26", 0x0100, 0x3ddbb6c4, 5 | BRF_GRA }, // 28
- { "br25", 0x0100, 0xba4a5651, 5 | BRF_GRA }, // 29
-};
-
-STD_ROM_PICK(karatedo)
-STD_ROM_FN(karatedo)
-
-struct BurnDriver BurnDrvKaratedo = {
- "karatedo", "kchamp", NULL, NULL, "1984",
- "Karate Dou (Japan)\0", NULL, "Data East Corporation", "Miscellaneous",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED, 4, HARDWARE_PREFIX_DATAEAST, GBF_VSFIGHT, 0,
- NULL, karatedoRomInfo, karatedoRomName, NULL, NULL, KchampInputInfo, KchampDIPInfo,
- KchampInit, DrvExit, KchampFrame, KchampDraw, DrvScan, &DrvRecalc, 0x100,
- 224, 256, 3, 4
-};
-
-
-// Karate Champ (US VS version, set 1)
-
-static struct BurnRomInfo kchampvsRomDesc[] = {
- { "bs24.d13", 0x2000, 0x829da69b, 1 | BRF_PRG | BRF_ESS }, // 0 Z80 Code #0 (Encrypted)
- { "bs23.d11", 0x2000, 0x091f810e, 1 | BRF_PRG | BRF_ESS }, // 1
- { "bs22.d10", 0x2000, 0xd4df2a52, 1 | BRF_PRG | BRF_ESS }, // 2
- { "bs21.d8", 0x2000, 0x3d4ef0da, 1 | BRF_PRG | BRF_ESS }, // 3
- { "bs20.d7", 0x2000, 0x623a467b, 1 | BRF_PRG | BRF_ESS }, // 4
- { "bs19.d6", 0x4000, 0x43e196c4, 1 | BRF_PRG | BRF_ESS }, // 5
-
- { "bs18.d4", 0x2000, 0xeaa646eb, 2 | BRF_PRG | BRF_ESS }, // 6 Z80 Code #1
- { "bs17.d2", 0x2000, 0xd71031ad, 2 | BRF_PRG | BRF_ESS }, // 7
- { "bs16.d1", 0x2000, 0x6f811c43, 2 | BRF_PRG | BRF_ESS }, // 8
-
- { "bs12.k1", 0x2000, 0x4c574ecd, 3 | BRF_GRA }, // 9 Characters
- { "bs13.k3", 0x2000, 0x750b66af, 3 | BRF_GRA }, // 10
- { "bs14.k5", 0x2000, 0x9ad6227c, 3 | BRF_GRA }, // 11
- { "bs15.k6", 0x2000, 0x3b6d5de5, 3 | BRF_GRA }, // 12
-
- { "bs00.a1", 0x2000, 0x51eda56c, 4 | BRF_GRA }, // 13 Sprites
- { "bs06.c1", 0x2000, 0x593264cf, 4 | BRF_GRA }, // 14
- { "bs01.a3", 0x2000, 0xb4842ea9, 4 | BRF_GRA }, // 15
- { "bs07.c3", 0x2000, 0x8cd166a5, 4 | BRF_GRA }, // 16
- { "bs02.a5", 0x2000, 0x4cbd3aa3, 4 | BRF_GRA }, // 17
- { "bs08.c5", 0x2000, 0x6be342a6, 4 | BRF_GRA }, // 18
- { "bs03.a6", 0x2000, 0x8dcd271a, 4 | BRF_GRA }, // 19
- { "bs09.c6", 0x2000, 0x4ee1dba7, 4 | BRF_GRA }, // 20
- { "bs04.a8", 0x2000, 0x7346db8a, 4 | BRF_GRA }, // 21
- { "bs10.c8", 0x2000, 0xb78714fc, 4 | BRF_GRA }, // 22
- { "bs05.a10", 0x2000, 0xb2557102, 4 | BRF_GRA }, // 23
- { "bs11.c10", 0x2000, 0xc85aba0e, 4 | BRF_GRA }, // 24
-
- { "br27.k10", 0x0100, 0xf683c54a, 5 | BRF_GRA }, // 25 Color data
- { "br26.k9", 0x0100, 0x3ddbb6c4, 5 | BRF_GRA }, // 26
- { "br25.k8", 0x0100, 0xba4a5651, 5 | BRF_GRA }, // 27
-};
-
-STD_ROM_PICK(kchampvs)
-STD_ROM_FN(kchampvs)
-
-static void patch_decode()
-{
- UINT8 *rom = DrvZ80ROM0;
-
- DrvZ80Ops[0] = rom[0];
- INT32 A = rom[1] + 256 * rom[2];
- DrvZ80Ops[A] = rom[A];
- rom[A+1] ^= 0xee;
- A = rom[A+1] + 256 * rom[A+2];
- DrvZ80Ops[A] = rom[A];
- A += 2;
- DrvZ80Ops[A] = rom[A];
-
- ZetOpen(0);
- ZetReset(); // catch vectors
- ZetClose();
-}
-
-static INT32 KchampvsInit1()
-{
- INT32 nRet = KchampvsInit();
-
- if (nRet == 0) {
- patch_decode();
- }
-
- return nRet;
-}
-
-struct BurnDriver BurnDrvKchampvs = {
- "kchampvs", "kchamp", NULL, NULL, "1984",
- "Karate Champ (US VS version, set 1)\0", NULL, "Data East USA", "Miscellaneous",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED, 4, HARDWARE_PREFIX_DATAEAST, GBF_VSFIGHT, 0,
- NULL, kchampvsRomInfo, kchampvsRomName, NULL, NULL, KchampInputInfo, KchampvsDIPInfo,
- KchampvsInit1, DrvExit, KchampvsFrame, KchampvsDraw, DrvScan, &DrvRecalc, 0x100,
- 224, 256, 3, 4
-};
-
-
-// Karate Champ (US VS version, set 2)
-
-static struct BurnRomInfo kchampvs2RomDesc[] = {
- { "lt.d13", 0x2000, 0xeef41aa8, 1 | BRF_PRG | BRF_ESS }, // 0 Z80 Code #0 (Encrypted)
- { "lt.d11", 0x2000, 0x091f810e, 1 | BRF_PRG | BRF_ESS }, // 1
- { "lt.d10", 0x2000, 0xd4df2a52, 1 | BRF_PRG | BRF_ESS }, // 2
- { "lt.d8", 0x2000, 0x3d4ef0da, 1 | BRF_PRG | BRF_ESS }, // 3
- { "lt.d7", 0x2000, 0x623a467b, 1 | BRF_PRG | BRF_ESS }, // 4
- { "lt.d6", 0x4000, 0xc3bc6e46, 1 | BRF_PRG | BRF_ESS }, // 5
-
- { "lt.d4", 0x2000, 0xeaa646eb, 2 | BRF_PRG | BRF_ESS }, // 6 Z80 Code #1
- { "lt.d2", 0x2000, 0xd71031ad, 2 | BRF_PRG | BRF_ESS }, // 7
- { "lt.d1", 0x2000, 0x6f811c43, 2 | BRF_PRG | BRF_ESS }, // 8
-
- { "lt.k1", 0x2000, 0x4c574ecd, 3 | BRF_GRA }, // 9 Characters
- { "lt.k3", 0x2000, 0x750b66af, 3 | BRF_GRA }, // 10
- { "lt.k5", 0x2000, 0x9ad6227c, 3 | BRF_GRA }, // 11
- { "lt.k6", 0x2000, 0x3b6d5de5, 3 | BRF_GRA }, // 12
-
- { "lt.a1", 0x2000, 0x51eda56c, 4 | BRF_GRA }, // 13 Sprites
- { "lt.c1", 0x2000, 0x593264cf, 4 | BRF_GRA }, // 14
- { "lt.a3", 0x2000, 0xb4842ea9, 4 | BRF_GRA }, // 15
- { "lt.c3", 0x2000, 0x8cd166a5, 4 | BRF_GRA }, // 16
- { "lt.a5", 0x2000, 0x4cbd3aa3, 4 | BRF_GRA }, // 17
- { "lt.c5", 0x2000, 0x6be342a6, 4 | BRF_GRA }, // 18
- { "lt.a6", 0x2000, 0x8dcd271a, 4 | BRF_GRA }, // 19
- { "lt.c6", 0x2000, 0x4ee1dba7, 4 | BRF_GRA }, // 20
- { "lt.a8", 0x2000, 0x7346db8a, 4 | BRF_GRA }, // 21
- { "lt.c8", 0x2000, 0xb78714fc, 4 | BRF_GRA }, // 22
- { "lt.a10", 0x2000, 0xb2557102, 4 | BRF_GRA }, // 23
- { "lt.c10", 0x2000, 0xc85aba0e, 4 | BRF_GRA }, // 24
-
- { "lt.k10", 0x0100, 0xf683c54a, 5 | BRF_GRA }, // 25 Color data
- { "lt.k9", 0x0100, 0x3ddbb6c4, 5 | BRF_GRA }, // 26
- { "lt.k8", 0x0100, 0xba4a5651, 5 | BRF_GRA }, // 27
-};
-
-STD_ROM_PICK(kchampvs2)
-STD_ROM_FN(kchampvs2)
-
-struct BurnDriver BurnDrvKchampvs2 = {
- "kchampvs2", "kchamp", NULL, NULL, "1984",
- "Karate Champ (US VS version, set 2)\0", NULL, "Data East USA", "Miscellaneous",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED, 4, HARDWARE_PREFIX_DATAEAST, GBF_VSFIGHT, 0,
- NULL, kchampvs2RomInfo, kchampvs2RomName, NULL, NULL, KchampInputInfo, KchampvsDIPInfo,
- KchampvsInit, DrvExit, KchampvsFrame, KchampvsDraw, DrvScan, &DrvRecalc, 0x100,
- 224, 256, 3, 4
-};
-
-
-// Taisen Karate Dou (Japan VS version)
-
-static struct BurnRomInfo karatevsRomDesc[] = {
- { "br24.d13", 0x2000, 0xea9cda49, 1 | BRF_PRG | BRF_ESS }, // 0 Z80 Code #0 (Encrypted)
- { "br23.d11", 0x2000, 0x46074489, 1 | BRF_PRG | BRF_ESS }, // 1
- { "br22.d10", 0x2000, 0x294f67ba, 1 | BRF_PRG | BRF_ESS }, // 2
- { "br21.d8", 0x2000, 0x934ea874, 1 | BRF_PRG | BRF_ESS }, // 3
- { "br20.d7", 0x2000, 0x97d7816a, 1 | BRF_PRG | BRF_ESS }, // 4
- { "br19.d6", 0x4000, 0xdd2239d2, 1 | BRF_PRG | BRF_ESS }, // 5
-
- { "br18.d4", 0x2000, 0x00ccb8ea, 2 | BRF_PRG | BRF_ESS }, // 6 Z80 Code #1
- { "bs17.d2", 0x2000, 0xd71031ad, 2 | BRF_PRG | BRF_ESS }, // 7
- { "br16.d1", 0x2000, 0x2512d961, 2 | BRF_PRG | BRF_ESS }, // 8
-
- { "br12.k1", 0x2000, 0x9ed6f00d, 3 | BRF_GRA }, // 9 Characters
- { "bs13.k3", 0x2000, 0x750b66af, 3 | BRF_GRA }, // 10
- { "br14.k5", 0x2000, 0xfc399229, 3 | BRF_GRA }, // 11
- { "bs15.k6", 0x2000, 0x3b6d5de5, 3 | BRF_GRA }, // 12
-
- { "br00.a1", 0x2000, 0xc46a8b88, 4 | BRF_GRA }, // 13 Sprites
- { "br06.c1", 0x2000, 0xcf8982ff, 4 | BRF_GRA }, // 14
- { "bs01.a3", 0x2000, 0xb4842ea9, 4 | BRF_GRA }, // 15
- { "bs07.c3", 0x2000, 0x8cd166a5, 4 | BRF_GRA }, // 16
- { "bs02.a5", 0x2000, 0x4cbd3aa3, 4 | BRF_GRA }, // 17
- { "bs08.c5", 0x2000, 0x6be342a6, 4 | BRF_GRA }, // 18
- { "br03.a6", 0x2000, 0xbde8a52b, 4 | BRF_GRA }, // 19
- { "br09.c6", 0x2000, 0xe9a5f945, 4 | BRF_GRA }, // 20
- { "bs04.a8", 0x2000, 0x7346db8a, 4 | BRF_GRA }, // 21
- { "bs10.c8", 0x2000, 0xb78714fc, 4 | BRF_GRA }, // 22
- { "bs05.a10", 0x2000, 0xb2557102, 4 | BRF_GRA }, // 23
- { "bs11.c10", 0x2000, 0xc85aba0e, 4 | BRF_GRA }, // 24
-
- { "br27.k10", 0x0100, 0xf683c54a, 5 | BRF_GRA }, // 25 Color data
- { "br26.k9", 0x0100, 0x3ddbb6c4, 5 | BRF_GRA }, // 26
- { "br25.k8", 0x0100, 0xba4a5651, 5 | BRF_GRA }, // 27
-};
-
-STD_ROM_PICK(karatevs)
-STD_ROM_FN(karatevs)
-
-struct BurnDriver BurnDrvKaratevs = {
- "karatevs", "kchamp", NULL, NULL, "1984",
- "Taisen Karate Dou (Japan VS version)\0", NULL, "Data East Corporation", "Miscellaneous",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED, 4, HARDWARE_PREFIX_DATAEAST, GBF_VSFIGHT, 0,
- NULL, karatevsRomInfo, karatevsRomName, NULL, NULL, KchampInputInfo, KchampvsDIPInfo,
- KchampvsInit1, DrvExit, KchampvsFrame, KchampvsDraw, DrvScan, &DrvRecalc, 0x100,
- 224, 256, 3, 4
-};
diff --git a/jan/src/burn/drv/dataeast/d_lemmings.cpp b/jan/src/burn/drv/dataeast/d_lemmings.cpp
deleted file mode 100644
index ea6def9a8..000000000
--- a/jan/src/burn/drv/dataeast/d_lemmings.cpp
+++ /dev/null
@@ -1,778 +0,0 @@
-// FB Alpha Lemmings driver module
-// Based on MAME driver by Bryan McPhail
-
-#include "tiles_generic.h"
-#include "m68000_intf.h"
-#include "burn_ym2151.h"
-#include "m6809_intf.h"
-#include "msm6295.h"
-
-static UINT8 *AllMem;
-static UINT8 *MemEnd;
-static UINT8 *AllRam;
-static UINT8 *RamEnd;
-static UINT8 *Drv68KROM;
-static UINT8 *Drv68KRAM;
-static UINT8 *DrvM6809ROM;
-static UINT8 *DrvM6809RAM;
-static UINT8 *DrvGfxROM0;
-static UINT8 *DrvGfxROM1;
-static UINT8 *DrvGfxROM2;
-static UINT8 *DrvPalRAM;
-static UINT8 *DrvVidRAM;
-static UINT8 *DrvPxlRAM0;
-static UINT8 *DrvPxlRAM1;
-static UINT8 *DrvSprRAM0;
-static UINT8 *DrvSprRAM1;
-static UINT8 *DrvSprBuf0;
-static UINT8 *DrvSprBuf1;
-static UINT8 *DrvSprTBuf0;
-static UINT8 *DrvSprTBuf1;
-static UINT8 *DrvCtrlRAM;
-
-static UINT8 *soundlatch;
-
-static UINT16 *pTempDraw;
-
-static UINT32 *DrvPalette;
-static UINT8 DrvRecalc;
-
-static UINT8 DrvJoy1[16];
-static UINT8 DrvJoy2[16];
-static UINT8 DrvDips[3];
-static UINT8 DrvReset;
-static UINT16 DrvInputs[2];
-
-static UINT8 FakeAnInp[8];
-static UINT8 FakeTrackBallX[2];
-static UINT8 FakeTrackBallY[2];
-
-static struct BurnInputInfo LemmingsInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy2 + 1, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 0, "p1 start" },
- {"P1 Up", BIT_DIGITAL, FakeAnInp + 0, "p1 up"},
- {"P1 Down", BIT_DIGITAL, FakeAnInp + 1, "p1 down"},
- {"P1 Left", BIT_DIGITAL, FakeAnInp + 2, "p1 left"},
- {"P1 Right", BIT_DIGITAL, FakeAnInp + 3, "p1 right"},
- {"P1 Button 1", BIT_DIGITAL, DrvJoy1 + 1, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy1 + 2, "p1 fire 2" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy2 + 0, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy1 + 3, "p2 start" },
- {"P2 Up", BIT_DIGITAL, FakeAnInp + 4, "p2 up"},
- {"P2 Down", BIT_DIGITAL, FakeAnInp + 5, "p2 down"},
- {"P2 Left", BIT_DIGITAL, FakeAnInp + 6, "p2 left"},
- {"P2 Right", BIT_DIGITAL, FakeAnInp + 7, "p2 right"},
- {"P2 Button 1", BIT_DIGITAL, DrvJoy1 + 4, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy1 + 5, "p2 fire 2" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip" },
- {"Dip C", BIT_DIPSWITCH, DrvDips + 2, "dip" },
-};
-
-STDINPUTINFO(Lemmings)
-
-static struct BurnDIPInfo LemmingsDIPList[]=
-{
- {0x11, 0xff, 0xff, 0x04, NULL },
- {0x12, 0xff, 0xff, 0xff, NULL },
- {0x13, 0xff, 0xff, 0xff, NULL },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x11, 0x01, 0x04, 0x04, "Off" },
- {0x11, 0x01, 0x04, 0x00, "On" },
-
- {0 , 0xfe, 0 , 4, "Credits for 1 Player" },
- {0x12, 0x01, 0x03, 0x03, "1" },
- {0x12, 0x01, 0x03, 0x02, "2" },
- {0x12, 0x01, 0x03, 0x01, "3" },
- {0x12, 0x01, 0x03, 0x00, "4" },
-
- {0 , 0xfe, 0 , 4, "Credits for 2 Player" },
- {0x12, 0x01, 0x0c, 0x0c, "1" },
- {0x12, 0x01, 0x0c, 0x08, "2" },
- {0x12, 0x01, 0x0c, 0x04, "3" },
- {0x12, 0x01, 0x0c, 0x00, "4" },
-
- {0 , 0xfe, 0 , 4, "Credits for Continue" },
- {0x12, 0x01, 0x30, 0x30, "1" },
- {0x12, 0x01, 0x30, 0x20, "2" },
- {0x12, 0x01, 0x30, 0x10, "3" },
- {0x12, 0x01, 0x30, 0x00, "4" },
-
- {0 , 0xfe, 0 , 2, "Free Play" },
- {0x12, 0x01, 0x80, 0x80, "Off" },
- {0x12, 0x01, 0x80, 0x00, "On" },
-
- {0 , 0xfe, 0 , 8, "Coin A" },
- {0x13, 0x01, 0x07, 0x07, "1 Coin 1 Credits" },
- {0x13, 0x01, 0x07, 0x06, "1 Coin 2 Credits" },
- {0x13, 0x01, 0x07, 0x05, "1 Coin 3 Credits" },
- {0x13, 0x01, 0x07, 0x04, "1 Coin 4 Credits" },
- {0x13, 0x01, 0x07, 0x03, "1 Coin 5 Credits" },
- {0x13, 0x01, 0x07, 0x02, "1 Coin 6 Credits" },
- {0x13, 0x01, 0x07, 0x01, "1 Coin 7 Credits" },
- {0x13, 0x01, 0x07, 0x00, "1 Coin 8 Credits" },
-
- {0 , 0xfe, 0 , 8, "Coin B" },
- {0x13, 0x01, 0x38, 0x38, "1 Coin 1 Credits" },
- {0x13, 0x01, 0x38, 0x30, "1 Coin 2 Credits" },
- {0x13, 0x01, 0x38, 0x28, "1 Coin 3 Credits" },
- {0x13, 0x01, 0x38, 0x20, "1 Coin 4 Credits" },
- {0x13, 0x01, 0x38, 0x18, "1 Coin 5 Credits" },
- {0x13, 0x01, 0x38, 0x10, "1 Coin 6 Credits" },
- {0x13, 0x01, 0x38, 0x08, "1 Coin 7 Credits" },
- {0x13, 0x01, 0x38, 0x00, "1 Coin 8 Credits" },
-};
-
-STDDIPINFO(Lemmings)
-
-static inline void palette_update_one(INT32 offset)
-{
- UINT16 *p = (UINT16*)DrvPalRAM;
-
- offset = (offset & 0xffc) / 2;
-
- DrvPalette[offset/2] = BurnHighCol(BURN_ENDIAN_SWAP_INT16(p[offset+1]), BURN_ENDIAN_SWAP_INT16(p[offset+1]) >> 8, BURN_ENDIAN_SWAP_INT16(p[offset]), 0);
-}
-
-static inline void pixel_layer_update_one(INT32 offset)
-{
- UINT16 src = *((UINT16*)(DrvPxlRAM0 + offset));
-
- pTempDraw[offset + 0] = ((BURN_ENDIAN_SWAP_INT16(src) >> 8) & 0x0f) + 0x100;
- pTempDraw[offset + 1] = ((BURN_ENDIAN_SWAP_INT16(src) >> 0) & 0x0f) + 0x100;
-}
-
-static inline void pixel_layer_update_two(INT32 offset)
-{
- UINT16 src = *((UINT16*)(DrvPxlRAM1 + offset));
-
- INT32 sy = offset / 0x200;
- INT32 sx = offset & 0x1fe;
-
- INT32 off = ((((sx / 8) * 32) + (sy / 8)) * 64) + ((sy & 7) * 8) + (sx & 6);
-
- DrvGfxROM2[off + 0] = ((BURN_ENDIAN_SWAP_INT16(src) >> 8) & 0x0f);
- DrvGfxROM2[off + 1] = ((BURN_ENDIAN_SWAP_INT16(src) >> 0) & 0x0f);
-}
-
-static void __fastcall lemmings_main_write_word(UINT32 address, UINT16 data)
-{
- if ((address & 0xfff000) == 0x160000) {
- *((UINT16*)(DrvPalRAM + (address & 0x000ffe))) = BURN_ENDIAN_SWAP_INT16(data);
- palette_update_one(address);
- return;
- }
-
- if ((address & 0xfffff0) == 0x170000) {
- *((UINT16*)(DrvCtrlRAM + (address & 0x0000e))) = BURN_ENDIAN_SWAP_INT16(data);
- return;
- }
-
- if ((address & 0xf80000) == 0x300000) {
- *((UINT16*)(DrvPxlRAM0 + (address & 0x7fffe))) = BURN_ENDIAN_SWAP_INT16(data);
- pixel_layer_update_one(address & 0x7fffe);
- return;
- }
-
- if ((address & 0xfe0000) == 0x380000) {
- *((UINT16*)(DrvPxlRAM1 + (address & 0x1fffe))) = BURN_ENDIAN_SWAP_INT16(data);
- pixel_layer_update_two(address & 0x1fffe);
- return;
- }
-
- switch (address)
- {
- case 0x1a0064:
- *soundlatch = data & 0xff;
- M6809SetIRQLine(1, CPU_IRQSTATUS_ACK);
- return;
-
- case 0x1c0000:
- memcpy (DrvSprBuf0, DrvSprRAM0, 0x800);
- return;
-
- case 0x1e0000:
- memcpy (DrvSprBuf1, DrvSprRAM1, 0x800);
- return;
- }
-}
-
-static void __fastcall lemmings_main_write_byte(UINT32 address, UINT8 data)
-{
- if ((address & 0xf80000) == 0x300000) {
- DrvPxlRAM0[(address & 0x7ffff)^1] = data;
- pixel_layer_update_one(address & 0x7fffe);
- return;
- }
-
- if ((address & 0xfe0000) == 0x380000) {
- DrvPxlRAM1[(address & 0x1ffff)^1] = data;
- pixel_layer_update_two(address & 0x1fffe);
- return;
- }
-}
-
-static UINT16 __fastcall lemmings_main_read_word(UINT32 address)
-{
- switch (address)
- {
- case 0x190000:
- return FakeTrackBallX[0];
-
- case 0x190002:
- return FakeTrackBallY[0];
-
- case 0x190008:
- return FakeTrackBallX[1];
-
- case 0x19000a:
- return FakeTrackBallY[1];
-
- case 0x1a0320:
- return (DrvInputs[1] & 0xfffb) | (DrvDips[0] & 0x04);
-
- case 0x1a041a:
- return DrvInputs[0];
- }
-
- return 0;
-}
-
-static UINT8 __fastcall lemmings_main_read_byte(UINT32 address)
-{
- switch (address)
- {
- case 0x1a0321: // Flipper seems to work better than proper vblank status
- static INT32 vblank;
- vblank ^= 8;
- return (DrvInputs[1] & 0xf3) | (DrvDips[0] & 0x04) | vblank;
-
- case 0x1a04e6:
- return DrvDips[2];
-
- case 0x1a04e7:
- return DrvDips[1];
- }
-
- return 0;
-}
-
-static void lemmings_sound_write(UINT16 address, UINT8 data)
-{
- switch (address)
- {
- case 0x0800:
- BurnYM2151SelectRegister(data);
- return;
-
- case 0x0801:
- BurnYM2151WriteRegister(data);
- return;
-
- case 0x1000:
- MSM6295Command(0, data);
- return;
-
- case 0x1800:
- M6809SetIRQLine(1, CPU_IRQSTATUS_NONE);
- return;
- }
-}
-
-static UINT8 lemmings_sound_read(UINT16 address)
-{
- switch (address)
- {
- case 0x0800:
- case 0x0801:
- return BurnYM2151ReadStatus();
-
- case 0x1000:
- return MSM6295ReadStatus(0);
-
- case 0x1800:
- return *soundlatch;
- }
-
- return 0;
-}
-
-static void lemmingsYM2151IrqHandler(INT32 irq)
-{
- M6809SetIRQLine(0, irq ? CPU_IRQSTATUS_ACK : CPU_IRQSTATUS_NONE);
- M6809Run(1000); // fix music tempo
-}
-
-static INT32 DrvDoReset()
-{
- memset (AllRam, 0, RamEnd - AllRam);
-
- SekOpen(0);
- SekReset();
- SekClose();
-
- M6809Open(0);
- M6809Reset();
- M6809Close();
-
- MSM6295Reset(0);
- BurnYM2151Reset();
-
- FakeTrackBallX[0] = FakeTrackBallX[1] = 0xff;
- FakeTrackBallY[0] = FakeTrackBallY[1] = 0x00;
-
- return 0;
-}
-
-static INT32 MemIndex()
-{
- UINT8 *Next; Next = AllMem;
-
- Drv68KROM = Next; Next += 0x100000;
- DrvM6809ROM = Next; Next += 0x010000;
-
- DrvGfxROM0 = Next; Next += 0x080000;
- DrvGfxROM1 = Next; Next += 0x080000;
-
- MSM6295ROM = Next; Next += 0x040000;
-
- DrvPalette = (UINT32*)Next; Next += 0x0401 * sizeof(INT32);
-
- AllRam = Next;
-
- Drv68KRAM = Next; Next += 0x010000;
- DrvPalRAM = Next; Next += 0x001000;
- DrvPxlRAM0 = Next; Next += 0x080000;
- DrvPxlRAM1 = Next; Next += 0x020000;
- DrvVidRAM = Next; Next += 0x003000;
- DrvSprRAM0 = Next; Next += 0x000800;
- DrvSprRAM1 = Next; Next += 0x000800;
- DrvSprBuf0 = Next; Next += 0x000800;
- DrvSprBuf1 = Next; Next += 0x000800;
- DrvSprTBuf0 = Next; Next += 0x000800;
- DrvSprTBuf1 = Next; Next += 0x000800;
-
- DrvM6809RAM = Next; Next += 0x000800;
-
- soundlatch = Next; Next += 0x000001;
-
- DrvCtrlRAM = Next; Next += 0x000010;
-
- DrvGfxROM2 = Next; Next += 0x020000; // expanded char tiles
-
- pTempDraw = (UINT16*)Next; Next += 0x800 * 0x200 * sizeof(INT16);
-
- RamEnd = Next;
-
- MemEnd = Next;
-
- return 0;
-}
-
-static INT32 DrvGfxDecode()
-{
- INT32 Plane[ 3] = { 0x20000*8, 0x10000*8, 0x00000 };
- INT32 XOffs[16] = { 7, 6, 5, 4, 3, 2, 1, 0, 16*8+7, 16*8+6, 16*8+5, 16*8+4, 16*8+3, 16*8+2, 16*8+1, 16*8+0 };
- INT32 YOffs[16] = { 15*8, 14*8, 13*8, 12*8, 11*8, 10*8, 9*8, 8*8, 7*8, 6*8, 5*8, 4*8, 3*8, 2*8, 1*8, 0*8 };
-
- UINT8 *tmp = (UINT8*)BurnMalloc(0x30000);
- if (tmp == NULL) {
- return 1;
- }
-
- memcpy (tmp, DrvGfxROM0, 0x30000);
-
- GfxDecode(0x0800, 3, 16, 16, Plane, XOffs, YOffs, 0x100, tmp, DrvGfxROM0);
-
- memcpy (tmp, DrvGfxROM1, 0x30000);
-
- GfxDecode(0x0800, 3, 16, 16, Plane, XOffs, YOffs, 0x100, tmp, DrvGfxROM1);
-
- BurnFree (tmp);
-
- return 0;
-}
-
-static INT32 DrvInit()
-{
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(Drv68KROM + 0x000001, 0, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x000000, 1, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x040001, 2, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x040000, 3, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x080001, 4, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x080000, 5, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x0c0001, 6, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x0c0000, 7, 2)) return 1;
-
- if (BurnLoadRom(DrvM6809ROM, 8, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x00000, 9, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x10000, 10, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x20000, 11, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM1 + 0x00000, 12, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x10000, 13, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x20000, 14, 1)) return 1;
-
- if (BurnLoadRom(MSM6295ROM, 15, 1)) return 1;
-
- DrvGfxDecode();
- }
-
- SekInit(0, 0x68000);
- SekOpen(0);
- SekMapMemory(Drv68KROM, 0x000000, 0x0fffff, MAP_ROM);
- SekMapMemory(Drv68KRAM, 0x100000, 0x10ffff, MAP_RAM);
- SekMapMemory(DrvSprRAM0, 0x120000, 0x1207ff, MAP_RAM);
- SekMapMemory(DrvSprRAM1, 0x140000, 0x1407ff, MAP_RAM);
- SekMapMemory(DrvPalRAM, 0x160000, 0x160fff, MAP_ROM);
- SekMapMemory(DrvVidRAM, 0x200000, 0x202fff, MAP_RAM);
- SekMapMemory(DrvPxlRAM0, 0x300000, 0x37ffff, MAP_ROM);
- SekMapMemory(DrvPxlRAM1, 0x380000, 0x39ffff, MAP_ROM);
- SekSetWriteWordHandler(0, lemmings_main_write_word);
- SekSetWriteByteHandler(0, lemmings_main_write_byte);
- SekSetReadWordHandler(0, lemmings_main_read_word);
- SekSetReadByteHandler(0, lemmings_main_read_byte);
- SekClose();
-
- M6809Init(1);
- M6809Open(0);
- M6809MapMemory(DrvM6809RAM, 0x0000, 0x07ff, MAP_RAM);
- M6809MapMemory(DrvM6809ROM + 0x8000, 0x8000, 0xffff, MAP_ROM);
- M6809SetWriteHandler(lemmings_sound_write);
- M6809SetReadHandler(lemmings_sound_read);
- M6809Close();
-
- BurnYM2151Init(3580000);
- BurnYM2151SetIrqHandler(&lemmingsYM2151IrqHandler);
- BurnYM2151SetRoute(BURN_SND_YM2151_YM2151_ROUTE_1, 0.45, BURN_SND_ROUTE_LEFT);
- BurnYM2151SetRoute(BURN_SND_YM2151_YM2151_ROUTE_2, 0.45, BURN_SND_ROUTE_RIGHT);
-
- MSM6295Init(0, 1023924 / 132, 1);
- MSM6295SetRoute(0, 0.50, BURN_SND_ROUTE_BOTH);
-
- GenericTilesInit();
-
- DrvDoReset();
-
- return 0;
-}
-
-static INT32 DrvExit()
-{
- GenericTilesExit();
-
- BurnYM2151Exit();
- MSM6295Exit(0);
- MSM6295ROM = NULL;
-
- SekExit();
- M6809Exit();
-
- BurnFree (AllMem);
-
- return 0;
-}
-
-static void draw_sprites(UINT8 *ram, UINT8 *rom, INT32 color_offset, INT32 pri)
-{
- UINT16 *sprdata = (UINT16*)ram;
-
- for (INT32 offs = 0; offs < 0x400; offs += 4)
- {
- INT32 inc;
-
- if ((BURN_ENDIAN_SWAP_INT16(sprdata[offs + 2]) & 0x2000) != pri) continue;
-
- INT32 sy = BURN_ENDIAN_SWAP_INT16(sprdata[offs + 0]);
-
- if ((sy & 0x1000) && (nCurrentFrame & 1)) continue;
-
- INT32 code = BURN_ENDIAN_SWAP_INT16(sprdata[offs + 1]) & 0x3fff;
- INT32 sx = BURN_ENDIAN_SWAP_INT16(sprdata[offs + 2]);
- INT32 color = (sx >>9) & 0xf;
-
- INT32 flipx = sy & 0x2000;
- INT32 flipy = sy & 0x4000;
- INT32 multi = (1 << ((sy & 0x0600) >> 9)) - 1;
-
- sx = sx & 0x01ff;
- sy = (sy & 0x01ff) - 16;
- if (sx >= 320) sx -= 512;
- if (sy >= 256) sy -= 512;
-
- if (sx > 320 || sx < -16) continue;
-
- code &= ~multi;
-
- if (flipy) {
- inc = 1;
- } else {
- code += multi;
- inc = -1;
- }
-
- while (multi >= 0)
- {
- if (flipy) {
- if (flipx) {
- Render16x16Tile_Mask_FlipXY_Clip(pTransDraw, (code - multi * inc) & 0x7ff, sx, sy + -16 * multi, color, 4, 0, color_offset, rom);
- } else {
- Render16x16Tile_Mask_FlipY_Clip(pTransDraw, (code - multi * inc) & 0x7ff, sx, sy + -16 * multi, color, 4, 0, color_offset, rom);
- }
- } else {
- if (flipx) {
- Render16x16Tile_Mask_FlipX_Clip(pTransDraw, (code - multi * inc) & 0x7ff, sx, sy + -16 * multi, color, 4, 0, color_offset, rom);
- } else {
- Render16x16Tile_Mask_Clip(pTransDraw, (code - multi * inc) & 0x7ff, sx, sy + -16 * multi, color, 4, 0, color_offset, rom);
- }
- }
-
- multi--;
- }
- }
-}
-
-static void draw_layer()
-{
- UINT16 *ram = (UINT16*)DrvVidRAM;
-
- for (INT32 offs = 0; offs < 64 * 32; offs++)
- {
- INT32 sy = ((offs & 0x1f) * 8) - 16;
- INT32 sx = (offs / 0x20) * 8;
-
- INT32 attr = BURN_ENDIAN_SWAP_INT16(ram[offs]);
- INT32 code = attr & 0x7ff;
- INT32 color = attr >> 12;
-
- if (sy >= nScreenHeight || sx >= nScreenWidth) continue;
-
- Render8x8Tile_Mask_Clip(pTransDraw, code, sx, sy, color, 4, 0, 0, DrvGfxROM2);
- }
-}
-
-static void copy_pixel_layer()
-{
- UINT16 *ctrl = (UINT16*)DrvCtrlRAM;
- INT32 x0 = -BURN_ENDIAN_SWAP_INT16(ctrl[2]);
- INT32 x1 = -BURN_ENDIAN_SWAP_INT16(ctrl[0]);
-
- UINT16 *src = pTempDraw + (16 * 0x800);
- UINT16 *dst = pTransDraw;
-
- if (BURN_ENDIAN_SWAP_INT16(ctrl[6]) & 0x02) // window mode
- {
- for (INT32 y = 0; y < nScreenHeight; y++, src += 0x800, dst += nScreenWidth) {
- for (INT32 x = 0; x < 160; x++) {
- INT32 pxl = src[(x - x0) & 0x7ff];
- if (pxl!=0x100) {
- dst[x] = pxl;
- }
-
- pxl = src[((x - x1) + 160) & 0x7ff];
- if (pxl!=0x100) {
- dst[x + 160] = pxl;
- }
- }
- }
- }
- else
- {
- for (INT32 y = 0; y < nScreenHeight; y++, src += 0x800, dst += nScreenWidth) {
- for (INT32 x = 0; x < nScreenWidth; x++) {
- INT32 pxl = src[(x - x1) & 0x7ff];
- if (pxl!=0x100) {
- dst[x] = pxl;
- }
- }
- }
- }
-}
-
-static INT32 DrvDraw()
-{
- if (DrvRecalc) {
- for (INT32 i = 0; i < 0x1000; i+=4) {
- palette_update_one(i);
- }
-
- DrvPalette[0x400] = BurnHighCol(0, 0, 0, 0); // black
-
- DrvRecalc = 0;
- }
-
- for (INT32 i = 0; i < nScreenWidth * nScreenHeight; i++) {
- pTransDraw[i] = 0x400;
- }
-
- if (nSpriteEnable & 1) draw_sprites(DrvSprTBuf1, DrvGfxROM1, 0x300, 0x0000);
-
- if (nBurnLayer & 1) copy_pixel_layer();
-
- if (nSpriteEnable & 2) draw_sprites(DrvSprTBuf0, DrvGfxROM0, 0x200, 0x0000);
- if (nSpriteEnable & 4) draw_sprites(DrvSprTBuf1, DrvGfxROM1, 0x300, 0x2000);
-
- if (nBurnLayer & 2) draw_layer();
-
- if (nSpriteEnable & 8) draw_sprites(DrvSprTBuf0, DrvGfxROM0, 0x200, 0x2000);
-
- BurnTransferCopy(DrvPalette);
-
- return 0;
-}
-
-static INT32 DrvFrame()
-{
- if (DrvReset) {
- DrvDoReset();
- }
-
- M6809NewFrame();
-
- {
- memset (DrvInputs, 0xff, 2 * sizeof(INT16));
- for (INT32 i = 0; i < 16; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- }
-
- if (FakeAnInp[0]) FakeTrackBallY[0] -= 0x04;
- if (FakeAnInp[1]) FakeTrackBallY[0] += 0x04;
- if (FakeAnInp[2]) FakeTrackBallX[0] += 0x04;
- if (FakeAnInp[3]) FakeTrackBallX[0] -= 0x04;
- if (FakeAnInp[4]) FakeTrackBallY[1] -= 0x04;
- if (FakeAnInp[5]) FakeTrackBallY[1] += 0x04;
- if (FakeAnInp[6]) FakeTrackBallX[1] += 0x04;
- if (FakeAnInp[7]) FakeTrackBallX[1] -= 0x04;
- }
-
- INT32 nSegment;
- INT32 nInterleave = 256;
- INT32 nSoundBufferPos = 0;
- INT32 nCyclesTotal[2] = { 14000000 / 60, 4027500 / 60 };
- INT32 nCyclesDone[2] = { 0, 0 };
-
- SekOpen(0);
- M6809Open(0);
-
- for (INT32 i = 0; i < nInterleave; i++)
- {
- nSegment = nCyclesTotal[0] - nCyclesDone[0];
- nCyclesDone[0] += SekRun(nSegment);
-
- nSegment = nCyclesTotal[1] - nCyclesDone[1];
- nCyclesDone[1] += M6809Run(nSegment);
-
- if (pBurnSoundOut) {
- nSegment = nBurnSoundLen / nInterleave;
-
- BurnYM2151Render(pBurnSoundOut + (nSoundBufferPos << 1), nSegment);
- MSM6295Render(0, pBurnSoundOut + (nSoundBufferPos << 1), nSegment);
-
- nSoundBufferPos += nSegment;
- }
- }
-
- SekSetIRQLine(6, CPU_IRQSTATUS_AUTO);
-
- if (pBurnSoundOut) {
- nSegment = nBurnSoundLen - nSoundBufferPos;
- if (nSegment > 0) {
- BurnYM2151Render(pBurnSoundOut + (nSoundBufferPos << 1), nSegment);
- MSM6295Render(0, pBurnSoundOut + (nSoundBufferPos << 1), nSegment);
- }
- }
-
- M6809Close();
- SekClose();
-
- if (pBurnDraw) {
- DrvDraw();
- }
-
- memcpy (DrvSprTBuf0, DrvSprBuf0, 0x800);
- memcpy (DrvSprTBuf1, DrvSprBuf1, 0x800);
-
- return 0;
-}
-
-static INT32 DrvScan(INT32 nAction, INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin != NULL) {
- *pnMin = 0x029722;
- }
-
- if (nAction & ACB_MEMORY_RAM) {
- memset(&ba, 0, sizeof(ba));
- ba.Data = AllRam;
- ba.nLen = RamEnd-AllRam;
- ba.szName = "All Ram";
- BurnAcb(&ba);
- }
-
- if (nAction & ACB_DRIVER_DATA) {
- SekScan(nAction);
-
- BurnYM2151Scan(nAction);
- MSM6295Scan(0, nAction);
-
- SCAN_VAR(FakeTrackBallX);
- SCAN_VAR(FakeTrackBallY);
- }
-
- return 0;
-}
-
-
-// Lemmings (US prototype)
-
-static struct BurnRomInfo lemmingsRomDesc[] = {
- { "lemmings.5", 0x20000, 0xe9a2b439, 1 | BRF_PRG | BRF_ESS }, // 0 68k Code
- { "lemmings.1", 0x20000, 0xbf52293b, 1 | BRF_PRG | BRF_ESS }, // 1
- { "lemmings.6", 0x20000, 0x0e3dc0ea, 1 | BRF_PRG | BRF_ESS }, // 2
- { "lemmings.2", 0x20000, 0x0cf3d7ce, 1 | BRF_PRG | BRF_ESS }, // 3
- { "lemmings.7", 0x20000, 0xd020219c, 1 | BRF_PRG | BRF_ESS }, // 4
- { "lemmings.3", 0x20000, 0xc635494a, 1 | BRF_PRG | BRF_ESS }, // 5
- { "lemmings.8", 0x20000, 0x9166ce09, 1 | BRF_PRG | BRF_ESS }, // 6
- { "lemmings.4", 0x20000, 0xaa845488, 1 | BRF_PRG | BRF_ESS }, // 7
-
- { "lemmings.15", 0x10000, 0xf0b24a35, 2 | BRF_PRG | BRF_ESS }, // 8 Z80 Code
-
- { "lemmings.9", 0x10000, 0xe06442f5, 3 | BRF_GRA }, // 9 Sprite Bank 0
- { "lemmings.10", 0x10000, 0x36398848, 3 | BRF_GRA }, // 10
- { "lemmings.11", 0x10000, 0xb46a54e5, 3 | BRF_GRA }, // 11
-
- { "lemmings.12", 0x10000, 0xdc9047ff, 4 | BRF_GRA }, // 12 Sprite Bank 1
- { "lemmings.13", 0x10000, 0x7cc15491, 4 | BRF_GRA }, // 13
- { "lemmings.14", 0x10000, 0xc162788f, 4 | BRF_GRA }, // 14
-
- { "lemmings.16", 0x20000, 0xf747847c, 5 | BRF_SND }, // 15 OKI MSM6295 Samples
-};
-
-STD_ROM_PICK(lemmings)
-STD_ROM_FN(lemmings)
-
-struct BurnDriver BurnDrvLemmings = {
- "lemmings", NULL, NULL, NULL, "1991",
- "Lemmings (US prototype)\0", NULL, "Data East USA", "Miscellaneous",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_PREFIX_DATAEAST, GBF_PUZZLE, 0,
- NULL, lemmingsRomInfo, lemmingsRomName, NULL, NULL, LemmingsInputInfo, LemmingsDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x400,
- 320, 224, 4, 3
-};
diff --git a/jan/src/burn/drv/dataeast/d_pktgaldx.cpp b/jan/src/burn/drv/dataeast/d_pktgaldx.cpp
deleted file mode 100644
index a0245010d..000000000
--- a/jan/src/burn/drv/dataeast/d_pktgaldx.cpp
+++ /dev/null
@@ -1,635 +0,0 @@
-// FB Alpha Pocket Gal deluxe driver module
-// Based on MAME driver by David Haywood and Bryan McPhail
-
-#include "tiles_generic.h"
-#include "m68000_intf.h"
-#include "deco16ic.h"
-#include "msm6295.h"
-
-static UINT8 *AllMem;
-static UINT8 *MemEnd;
-static UINT8 *AllRam;
-static UINT8 *RamEnd;
-static UINT8 *Drv68KROM;
-static UINT8 *Drv68KCode;
-static UINT8 *DrvGfxROM0;
-static UINT8 *DrvGfxROM1;
-static UINT8 *DrvGfxROM2;
-static UINT8 *DrvSndROM0;
-static UINT8 *DrvSndROM1;
-static UINT8 *Drv68KRAM;
-static UINT8 *DrvPalRAM;
-static UINT8 *DrvSprRAM;
-static UINT8 *DrvProtRAM;
-
-static UINT32 *DrvPalette;
-static UINT8 DrvRecalc;
-
-static UINT8 *flipscreen;
-
-static UINT8 DrvJoy1[16];
-static UINT8 DrvJoy2[16];
-static UINT8 DrvDips[2];
-static UINT8 DrvReset;
-static UINT16 DrvInputs[2];
-
-static struct BurnInputInfo PktgaldxInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy1 + 0, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy2 + 7, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy2 + 0, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy2 + 1, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy2 + 2, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy2 + 3, "p1 right" },
-
- {"P1 Button 1", BIT_DIGITAL, DrvJoy2 + 4, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy2 + 5, "p1 fire 2" },
- {"P1 Button 3", BIT_DIGITAL, DrvJoy2 + 6, "p1 fire 3" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy1 + 1, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy2 + 15, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvJoy2 + 8, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy2 + 9, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy2 + 10, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy2 + 11, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy2 + 12, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy2 + 13, "p2 fire 2" },
- {"P2 Button 3", BIT_DIGITAL, DrvJoy2 + 14, "p2 fire 3"} ,
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service", BIT_DIGITAL, DrvJoy1 + 2, "service" },
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip" },
-};
-
-STDINPUTINFO(Pktgaldx)
-
-static struct BurnDIPInfo PktgaldxDIPList[]=
-{
- {0x14, 0xff, 0xff, 0xff, NULL },
- {0x15, 0xff, 0xff, 0x7f, NULL },
-
- {0 , 0xfe, 0 , 8, "Coin A" },
- {0x14, 0x01, 0x07, 0x00, "3 Coins 1 Credits" },
- {0x14, 0x01, 0x07, 0x01, "2 Coins 1 Credits" },
- {0x14, 0x01, 0x07, 0x07, "1 Coin 1 Credits" },
- {0x14, 0x01, 0x07, 0x06, "1 Coin 2 Credits" },
- {0x14, 0x01, 0x07, 0x05, "1 Coin 3 Credits" },
- {0x14, 0x01, 0x07, 0x04, "1 Coin 4 Credits" },
- {0x14, 0x01, 0x07, 0x03, "1 Coin 5 Credits" },
- {0x14, 0x01, 0x07, 0x02, "1 Coin 6 Credits" },
-
- {0 , 0xfe, 0 , 8, "Coin B" },
- {0x14, 0x01, 0x38, 0x00, "3 Coins 1 Credits" },
- {0x14, 0x01, 0x38, 0x08, "2 Coins 1 Credits" },
- {0x14, 0x01, 0x38, 0x38, "1 Coin 1 Credits" },
- {0x14, 0x01, 0x38, 0x30, "1 Coin 2 Credits" },
- {0x14, 0x01, 0x38, 0x28, "1 Coin 3 Credits" },
- {0x14, 0x01, 0x38, 0x20, "1 Coin 4 Credits" },
- {0x14, 0x01, 0x38, 0x18, "1 Coin 5 Credits" },
- {0x14, 0x01, 0x38, 0x10, "1 Coin 6 Credits" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x14, 0x01, 0x40, 0x40, "Off" },
- {0x14, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "2 Coins to Start, 1 to Continue" },
- {0x14, 0x01, 0x80, 0x80, "Off" },
- {0x14, 0x01, 0x80, 0x00, "On" },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x15, 0x01, 0x03, 0x00, "2" },
- {0x15, 0x01, 0x03, 0x01, "3" },
- {0x15, 0x01, 0x03, 0x03, "4" },
- {0x15, 0x01, 0x03, 0x02, "5" },
-
- {0 , 0xfe, 0 , 4, "Time" },
- {0x15, 0x01, 0x0c, 0x00, "60" },
- {0x15, 0x01, 0x0c, 0x04, "80" },
- {0x15, 0x01, 0x0c, 0x0c, "100" },
- {0x15, 0x01, 0x0c, 0x08, "120" },
-
- {0 , 0xfe, 0 , 2, "Free Play" },
- {0x15, 0x01, 0x20, 0x20, "Off" },
- {0x15, 0x01, 0x20, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x15, 0x01, 0x80, 0x80, "Off" },
- {0x15, 0x01, 0x80, 0x00, "On" },
-};
-
-STDDIPINFO(Pktgaldx)
-
-void __fastcall pktgaldx_write_word(UINT32 address, UINT16 data)
-{
- if ((address & 0xfffff0) == 0x140000) {
- MSM6295Command(0, data);
- return;
- }
-
- if ((address & 0xfffff0) == 0x150000) {
- MSM6295Command(1, data);
- return;
- }
-
- deco16_write_control_word(0, address, 0x161800, data);
-
- if ((address & 0xfffff0) == 0x164800) {
- MSM6295SetBank(1, DrvSndROM1 + ((data & 3) * 0x40000), 0x00000, 0x3ffff);
- return;
- }
-}
-
-void __fastcall pktgaldx_write_byte(UINT32 address, UINT8 data)
-{
- if ((address & 0xfffff0) == 0x140000) {
- MSM6295Command(0, data);
- return;
- }
-
- if ((address & 0xfffff0) == 0x150000) {
- MSM6295Command(1, data);
- return;
- }
-
- deco16_write_control_word(0, address, 0x161800, data);
-
- if ((address & 0xfffff0) == 0x164800) {
- MSM6295SetBank(1, DrvSndROM1 + ((data & 3) * 0x40000), 0x00000, 0x3ffff);
- return;
- }
-}
-
-UINT16 __fastcall pktgaldx_read_word(UINT32 address)
-{
- switch (address)
- {
- case 0x140006:
- return MSM6295ReadStatus(0);
-
- case 0x150006:
- return MSM6295ReadStatus(1);
-
- case 0x167db2:
- return (DrvInputs[0] & 0xfff7) | (deco16_vblank & 0x08);
-
- case 0x167c4c:
- return (DrvDips[1] << 8) | (DrvDips[0] << 0);
-
- case 0x167842:
- return DrvInputs[1];
-
- case 0x167d10:
- return BURN_ENDIAN_SWAP_INT16(*((UINT16*)(DrvProtRAM + 0)));
-
- case 0x167d1a:
- return BURN_ENDIAN_SWAP_INT16(*((UINT16*)(DrvProtRAM + 2)));
- }
-
- return 0;
-}
-
-UINT8 __fastcall pktgaldx_read_byte(UINT32 address)
-{
- switch (address)
- {
- case 0x140006:
- case 0x140007:
- return MSM6295ReadStatus(0);
-
- case 0x150006:
- case 0x150007:
- return MSM6295ReadStatus(1);
-
- case 0x167db2:
- case 0x167db3:
- return (DrvInputs[0] & 0xf7) | (deco16_vblank & 0x08);
-
- case 0x167c4c:
- return DrvDips[1];
-
- case 0x167c4d:
- return DrvDips[0];
-
- case 0x167842:
- return DrvInputs[1] >> 8;
-
- case 0x167843:
- return DrvInputs[1] >> 0;
-
- case 0x167d10:
- case 0x167d11:
- return DrvProtRAM[((address & 1) ^ 1) + 0];
-
- case 0x167d1a:
- case 0x167d1b:
- return DrvProtRAM[((address & 1) ^ 1) + 2];
-
- }
-
- return 0;
-}
-
-static INT32 pktgaldx_bank_callback( const INT32 bank )
-{
- return ((bank >> 4) & 0x7) * 0x1000;
-}
-
-static INT32 DrvDoReset()
-{
- memset (AllRam, 0, RamEnd - AllRam);
-
- SekOpen(0);
- SekReset();
- SekClose();
-
- MSM6295Reset(0);
- MSM6295Reset(1);
-
- deco16Reset();
-
- return 0;
-}
-
-static INT32 MemIndex()
-{
- UINT8 *Next; Next = AllMem;
-
- Drv68KROM = Next; Next += 0x080000;
- Drv68KCode = Next; Next += 0x080000;
-
- DrvGfxROM0 = Next; Next += 0x200000;
- DrvGfxROM1 = Next; Next += 0x200000;
- DrvGfxROM2 = Next; Next += 0x200000;
-
- MSM6295ROM = Next;
- DrvSndROM0 = Next; Next += 0x040000;
- DrvSndROM1 = Next; Next += 0x100000;
-
- DrvPalette = (UINT32*)Next; Next += 0x0400 * sizeof(UINT32);
-
- AllRam = Next;
-
- Drv68KRAM = Next; Next += 0x010000;
- DrvSprRAM = Next; Next += 0x000800;
- DrvPalRAM = Next; Next += 0x001000;
- DrvProtRAM = Next; Next += 0x000800;
-
- flipscreen = Next; Next += 0x000001;
-
- RamEnd = Next;
-
- MemEnd = Next;
-
- return 0;
-}
-
-static INT32 DrvInit()
-{
- BurnSetRefreshRate(58.00);
-
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(Drv68KROM + 0x000000, 0, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM1 + 0x000000, 1, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM2 + 0x000000, 2, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x000001, 3, 2)) return 1;
-
- if (BurnLoadRom(DrvSndROM0 + 0x000000, 4, 1)) return 1;
-
- if (BurnLoadRom(DrvSndROM1 + 0x000000, 5, 1)) return 1;
-
- deco102_decrypt_cpu(Drv68KROM, Drv68KCode, 0x80000, 0x42ba, 0x00, 0x00);
-
- deco56_decrypt_gfx(DrvGfxROM1, 0x100000);
-
- deco16_tile_decode(DrvGfxROM1, DrvGfxROM0, 0x100000, 1);
- deco16_tile_decode(DrvGfxROM1, DrvGfxROM1, 0x100000, 0);
- deco16_sprite_decode(DrvGfxROM2, 0x100000);
- }
-
- deco16Init(1, 0, 1);
- deco16_set_graphics(DrvGfxROM0, 0x100000 * 2, DrvGfxROM1, 0x100000 * 2, NULL, 0);
- deco16_set_global_offsets(0, 8);
- deco16_set_bank_callback(1, pktgaldx_bank_callback);
-
- SekInit(0, 0x68000);
- SekOpen(0);
- SekMapMemory(Drv68KROM, 0x000000, 0x07ffff, MAP_READ);
- SekMapMemory(Drv68KCode, 0x000000, 0x07ffff, MAP_FETCH);
- SekMapMemory(deco16_pf_ram[0], 0x100000, 0x100fff, MAP_RAM);
- SekMapMemory(deco16_pf_ram[1], 0x102000, 0x102fff, MAP_RAM);
- SekMapMemory(deco16_pf_rowscroll[0], 0x110000, 0x1107ff, MAP_RAM);
- SekMapMemory(deco16_pf_rowscroll[1], 0x112000, 0x1127ff, MAP_RAM);
- SekMapMemory(DrvSprRAM, 0x120000, 0x1207ff, MAP_RAM);
- SekMapMemory(DrvPalRAM, 0x130000, 0x130fff, MAP_RAM);
- SekMapMemory(DrvProtRAM, 0x167800, 0x167fff, MAP_WRITE);
- SekMapMemory(Drv68KRAM, 0x170000, 0x17ffff, MAP_RAM);
- SekSetWriteWordHandler(0, pktgaldx_write_word);
- SekSetWriteByteHandler(0, pktgaldx_write_byte);
- SekSetReadWordHandler(0, pktgaldx_read_word);
- SekSetReadByteHandler(0, pktgaldx_read_byte);
- SekClose();
-
- MSM6295Init(0, 1006875 / 132, 0);
- MSM6295Init(1, 2013750 / 132, 1);
- MSM6295SetBank(0, DrvSndROM0, 0, 0x3ffff);
- MSM6295SetBank(1, DrvSndROM1, 0, 0x3ffff);
- MSM6295SetRoute(0, 0.75, BURN_SND_ROUTE_BOTH);
- MSM6295SetRoute(1, 0.60, BURN_SND_ROUTE_BOTH);
-
- GenericTilesInit();
-
- DrvDoReset();
-
- return 0;
-}
-
-static INT32 DrvExit()
-{
- GenericTilesExit();
- deco16Exit();
-
- MSM6295Exit(0);
- MSM6295Exit(1);
-
- SekExit();
-
- BurnFree (AllMem);
-
- MSM6295ROM = NULL;
-
- return 0;
-}
-
-static void draw_sprites()
-{
- UINT16 *spriteram = (UINT16 *)DrvSprRAM;
-
- for (INT32 offs = 0; offs < 0x400; offs += 4)
- {
- INT32 inc, mult;
-
- INT32 sprite = BURN_ENDIAN_SWAP_INT16(spriteram[offs+1]);
- if (!sprite) continue;
-
- INT32 y = BURN_ENDIAN_SWAP_INT16(spriteram[offs]);
-
- if ((y & 0x1000) && (nCurrentFrame & 1)) continue; // flash
-
- INT32 x = BURN_ENDIAN_SWAP_INT16(spriteram[offs + 2]);
- INT32 colour = (x >> 9) & 0x1f;
-
- INT32 fx = y & 0x2000;
- INT32 fy = y & 0x4000;
- INT32 multi = (1 << ((y & 0x0600) >> 9)) - 1;
-
- x = x & 0x01ff;
- y = y & 0x01ff;
- if (x >= 320) x -= 512;
- if (y >= 256) y -= 512;
- y = 240 - y;
- x = 304 - x;
-
- if (x > 320) continue;
-
- sprite &= ~multi;
- if (fy)
- inc = -1;
- else
- {
- sprite += multi;
- inc = 1;
- }
-
- if (!*flipscreen)
- {
- y = 240 - y;
- x = 304 - x;
- if (fx) fx = 0; else fx = 1;
- if (fy) fy = 0; else fy = 1;
- mult = 16;
- }
- else mult = -16;
-
- while (multi >= 0)
- {
- if (fy) {
- if (fx) {
- Render16x16Tile_Mask_FlipXY_Clip(pTransDraw, sprite - multi * inc, x, (y + mult * multi) - 8, colour, 4, 0, 0x200, DrvGfxROM2);
- } else {
- Render16x16Tile_Mask_FlipY_Clip(pTransDraw, sprite - multi * inc, x, (y + mult * multi) - 8, colour, 4, 0, 0x200, DrvGfxROM2);
- }
- } else {
- if (fx) {
- Render16x16Tile_Mask_FlipX_Clip(pTransDraw, sprite - multi * inc, x, (y + mult * multi) - 8, colour, 4, 0, 0x200, DrvGfxROM2);
- } else {
- Render16x16Tile_Mask_Clip(pTransDraw, sprite - multi * inc, x, (y + mult * multi) - 8, colour, 4, 0, 0x200, DrvGfxROM2);
- }
- }
-
- multi--;
- }
- }
-}
-
-static INT32 DrvDraw()
-{
-// if (DrvRecalc) {
- deco16_palette_recalculate(DrvPalette, DrvPalRAM);
- DrvRecalc = 0;
-// }
-
- deco16_pf12_update();
-
- for (INT32 i = 0; i < nScreenWidth * nScreenHeight; i++) {
- pTransDraw[i] = 00;
- }
-
- if (nBurnLayer & 1) deco16_draw_layer(1, pTransDraw, 0);
-
- if (nBurnLayer & 2) draw_sprites();
-
- if (nBurnLayer & 4) deco16_draw_layer(0, pTransDraw, 0);
-
- BurnTransferCopy(DrvPalette);
-
- return 0;
-}
-
-static INT32 DrvFrame()
-{
- if (DrvReset) {
- DrvDoReset();
- }
-
- {
- memset (DrvInputs, 0xff, 2 * sizeof(UINT16));
- for (INT32 i = 0; i < 16; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- }
- }
-
- INT32 nInterleave = 256;
- INT32 nCyclesTotal[1] = { 14000000 / 58 };
- INT32 nCyclesDone[1] = { 0 };
-
- SekOpen(0);
-
- deco16_vblank = 0;
-
- for (INT32 i = 0; i < nInterleave; i++)
- {
- nCyclesDone[0] += SekRun(nCyclesTotal[0] / nInterleave);
-
- if (i == 240) deco16_vblank = 0x08;
- }
-
- SekSetIRQLine(6, CPU_IRQSTATUS_AUTO);
-
- SekClose();
-
- if (pBurnSoundOut) {
- memset (pBurnSoundOut, 0, nBurnSoundLen * 2 * sizeof(INT16));
- MSM6295Render(0, pBurnSoundOut, nBurnSoundLen);
- MSM6295Render(1, pBurnSoundOut, nBurnSoundLen);
- }
-
- if (pBurnDraw) {
- DrvDraw();
- }
-
- return 0;
-}
-
-static INT32 DrvScan(INT32 nAction, INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin != NULL) {
- *pnMin = 0x029682;
- }
-
- if (nAction & ACB_MEMORY_RAM) {
- memset(&ba, 0, sizeof(ba));
- ba.Data = AllRam;
- ba.nLen = RamEnd-AllRam;
- ba.szName = "All Ram";
- BurnAcb(&ba);
- }
-
- if (nAction & ACB_DRIVER_DATA) {
- SekScan(nAction);
-
- deco16Scan();
-
- MSM6295Scan(0, nAction);
- MSM6295Scan(1, nAction);
- }
-
- return 0;
-}
-
-
-// Pocket Gal Deluxe (Euro v3.00)
-
-static struct BurnRomInfo pktgaldxRomDesc[] = {
- { "ke00-2.12a", 0x080000, 0xb04baf3a, 1 | BRF_PRG | BRF_ESS }, // 0 68k Code
-
- { "maz-02.2h", 0x100000, 0xc9d35a59, 2 | BRF_GRA }, // 1 Character and Background Tiles
-
- { "maz-00.1b", 0x080000, 0xfa3071f4, 3 | BRF_GRA }, // 2 Sprites
- { "maz-01.3b", 0x080000, 0x4934fe21, 3 | BRF_GRA }, // 3
-
- { "ke01.14f", 0x020000, 0x8a106263, 4 | BRF_SND }, // 4 OKI M6295 Sample 0
-
- { "maz-03.13f", 0x100000, 0xa313c964, 5 | BRF_SND }, // 5 OKI M6295 Sample 1
-};
-
-STD_ROM_PICK(pktgaldx)
-STD_ROM_FN(pktgaldx)
-
-struct BurnDriver BurnDrvPktgaldx = {
- "pktgaldx", NULL, NULL, NULL, "1992",
- "Pocket Gal Deluxe (Euro v3.00)\0", NULL, "Data East Corporation", "DECO IC16",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_PREFIX_DATAEAST, GBF_MISC, 0,
- NULL, pktgaldxRomInfo, pktgaldxRomName, NULL, NULL, PktgaldxInputInfo, PktgaldxDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x400,
- 320, 240, 4, 3
-};
-
-
-// Pocket Gal Deluxe (Japan v3.00)
-
-static struct BurnRomInfo pktgaldxjRomDesc[] = {
- { "kg00-2.12a", 0x080000, 0x62dc4137, 1 | BRF_PRG | BRF_ESS }, // 0 68k Code
-
- { "maz-02.2h", 0x100000, 0xc9d35a59, 2 | BRF_GRA }, // 1 Character and Background Tiles
-
- { "maz-00.1b", 0x080000, 0xfa3071f4, 3 | BRF_GRA }, // 2 Sprites
- { "maz-01.3b", 0x080000, 0x4934fe21, 3 | BRF_GRA }, // 3
-
- { "ke01.14f", 0x020000, 0x8a106263, 4 | BRF_SND }, // 4 OKI M6295 Sample 0
-
- { "maz-03.13f", 0x100000, 0xa313c964, 5 | BRF_SND }, // 5 OKI M6295 Sample 1
-};
-
-STD_ROM_PICK(pktgaldxj)
-STD_ROM_FN(pktgaldxj)
-
-struct BurnDriver BurnDrvPktgaldxj = {
- "pktgaldxj", "pktgaldx", NULL, NULL, "1993",
- "Pocket Gal Deluxe (Japan v3.00)\0", NULL, "Nihon System", "DECO IC16",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_DATAEAST, GBF_MISC, 0,
- NULL, pktgaldxjRomInfo, pktgaldxjRomName, NULL, NULL, PktgaldxInputInfo, PktgaldxDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x400,
- 320, 240, 4, 3
-};
-
-
-// Pocket Gal Deluxe (Euro v3.00, bootleg)
-
-static struct BurnRomInfo pktgaldxbRomDesc[] = {
- { "4.bin", 0x80000, 0x67ce30aa, 1 | BRF_PRG | BRF_ESS }, // 0 maincpu
- { "5.bin", 0x80000, 0x64cb4c33, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "11.bin", 0x80000, 0xa8c8f1fd, 2 | BRF_GRA }, // 2 Sprites
- { "6.bin", 0x80000, 0x0e3335a1, 2 | BRF_GRA }, // 3
- { "10.bin", 0x80000, 0x9dd743a9, 2 | BRF_GRA }, // 4
- { "7.bin", 0x80000, 0x0ebf12b5, 2 | BRF_GRA }, // 5
- { "9.bin", 0x80000, 0x078f371c, 2 | BRF_GRA }, // 6
- { "8.bin", 0x80000, 0x40f5a032, 2 | BRF_GRA }, // 7
-
- { "kg01.14f", 0x20000, 0x8a106263, 3 | BRF_SND }, // 8 OKI M6295 Sample 0
-
- { "3.bin", 0x80000, 0x4638747b, 4 | BRF_SND }, // 9 OKI M6295 Sample 1
- { "2.bin", 0x80000, 0xf841d995, 4 | BRF_SND }, // 10
-};
-
-STD_ROM_PICK(pktgaldxb)
-STD_ROM_FN(pktgaldxb)
-
-static INT32 pkgaldxbInit()
-{
- return 1;
-}
-
-struct BurnDriverD BurnDrvPktgaldxb = {
- "pktgaldxb", "pktgaldx", NULL, NULL, "1992",
- "Pocket Gal Deluxe (Euro v3.00, bootleg)\0", NULL, "bootleg", "DECO IC16",
- NULL, NULL, NULL, NULL,
- BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_PREFIX_DATAEAST, GBF_MISC, 0,
- NULL, pktgaldxbRomInfo, pktgaldxbRomName, NULL, NULL, PktgaldxInputInfo, PktgaldxDIPInfo,
- pkgaldxbInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x400,
- 320, 240, 4, 3
-};
diff --git a/jan/src/burn/drv/dataeast/d_rohga.cpp b/jan/src/burn/drv/dataeast/d_rohga.cpp
deleted file mode 100644
index ce1939668..000000000
--- a/jan/src/burn/drv/dataeast/d_rohga.cpp
+++ /dev/null
@@ -1,2557 +0,0 @@
-// FB Alpha Rohga Armor Force / Wizard Fire / Nitro Ball / Schmeiser Robo driver module
-// Based on MAME driver by Bryan McPhail
-
-// tofix: dataeast logo too fast or missing in rohga
-
-#include "tiles_generic.h"
-#include "m68000_intf.h"
-#include "h6280_intf.h"
-#include "deco16ic.h"
-#include "deco146.h"
-#include "msm6295.h"
-#include "burn_ym2151.h"
-
-static UINT8 *AllMem;
-static UINT8 *MemEnd;
-static UINT8 *AllRam;
-static UINT8 *RamEnd;
-static UINT8 *Drv68KROM;
-static UINT8 *DrvHucROM;
-static UINT8 *DrvGfxROM0;
-static UINT8 *DrvGfxROM1;
-static UINT8 *DrvGfxROM2;
-static UINT8 *DrvGfxROM3;
-static UINT8 *DrvGfxROM4;
-static UINT8 *DrvSndROM0;
-static UINT8 *DrvSndROM1;
-static UINT8 *Drv68KRAM;
-static UINT8 *DrvHucRAM;
-static UINT8 *DrvPalRAM;
-static UINT8 *DrvPalBuf;
-static UINT8 *DrvSprRAM;
-static UINT8 *DrvSprRAM2;
-static UINT8 *DrvSprBuf;
-static UINT8 *DrvSprBuf2;
-
-static UINT32 *DrvPalette;
-static UINT8 DrvRecalc;
-
-static UINT8 *flipscreen;
-
-static UINT8 DrvJoy1[16];
-static UINT8 DrvJoy2[16];
-static UINT8 DrvJoy3[16];
-static UINT8 DrvDips[3];
-static UINT8 DrvReset;
-static UINT16 DrvInputs[4];
-
-static UINT16 *tempdraw[2];
-
-static INT32 DrvOkiBank;
-
-static INT32 DrvIsWizdfireEnglish = 0;
-static INT32 DrvHangzo = 0;
-
-static struct BurnInputInfo RohgaInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy2 + 0, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 7, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy1 + 0, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy1 + 1, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy1 + 2, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy1 + 3, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy1 + 4, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy1 + 5, "p1 fire 2" },
- {"P1 Button 3", BIT_DIGITAL, DrvJoy1 + 6, "p1 fire 3" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy2 + 1, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy1 + 15, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvJoy1 + 8, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy1 + 9, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy1 + 10, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy1 + 11, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy1 + 12, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy1 + 13, "p2 fire 2" },
- {"P2 Button 3", BIT_DIGITAL, DrvJoy1 + 14, "p2 fire 3" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service", BIT_DIGITAL, DrvJoy2 + 2, "service" },
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip" },
- {"Dip C", BIT_DIPSWITCH, DrvDips + 2, "dip" },
-};
-
-STDINPUTINFO(Rohga)
-
-static struct BurnInputInfo WizdfireInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy2 + 0, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 7, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy1 + 0, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy1 + 1, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy1 + 2, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy1 + 3, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy1 + 4, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy1 + 5, "p1 fire 2" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy2 + 1, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy1 + 15, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvJoy1 + 8, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy1 + 9, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy1 + 10, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy1 + 11, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy1 + 12, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy1 + 13, "p2 fire 2" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service", BIT_DIGITAL, DrvJoy2 + 2, "service" },
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip" },
-};
-
-STDINPUTINFO(Wizdfire)
-
-static struct BurnInputInfo NitrobalInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy2 + 0, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 7, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy1 + 0, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy1 + 1, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy1 + 2, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy1 + 3, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy1 + 4, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy1 + 5, "p1 fire 2" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy2 + 1, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy1 + 15, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvJoy1 + 8, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy1 + 9, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy1 + 10, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy1 + 11, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy1 + 12, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy1 + 13, "p2 fire 2" },
-
- {"P3 Coin", BIT_DIGITAL, DrvJoy3 + 7, "p3 coin" },
- {"P3 Up", BIT_DIGITAL, DrvJoy3 + 0, "p3 up" },
- {"P3 Down", BIT_DIGITAL, DrvJoy3 + 1, "p3 down" },
- {"P3 Left", BIT_DIGITAL, DrvJoy3 + 2, "p3 left" },
- {"P3 Right", BIT_DIGITAL, DrvJoy3 + 3, "p3 right" },
- {"P3 Button 1", BIT_DIGITAL, DrvJoy3 + 4, "p3 fire 1" },
- {"P3 Button 2", BIT_DIGITAL, DrvJoy3 + 5, "p3 fire 2" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service", BIT_DIGITAL, DrvJoy2 + 2, "service" },
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip" },
-};
-
-STDINPUTINFO(Nitrobal)
-
-static struct BurnDIPInfo RohgaDIPList[]=
-{
- {0x14, 0xff, 0xff, 0xff, NULL },
- {0x15, 0xff, 0xff, 0x7f, NULL },
- {0x16, 0xff, 0xff, 0xff, NULL },
-
- {0 , 0xfe, 0 , 8, "Coin A" },
- {0x14, 0x01, 0x07, 0x00, "3 Coins 1 Credits" },
- {0x14, 0x01, 0x07, 0x01, "2 Coins 1 Credits" },
- {0x14, 0x01, 0x07, 0x07, "1 Coin 1 Credits" },
- {0x14, 0x01, 0x07, 0x06, "1 Coin 2 Credits" },
- {0x14, 0x01, 0x07, 0x05, "1 Coin 3 Credits" },
- {0x14, 0x01, 0x07, 0x04, "1 Coin 4 Credits" },
- {0x14, 0x01, 0x07, 0x03, "1 Coin 5 Credits" },
- {0x14, 0x01, 0x07, 0x02, "1 Coin 6 Credits" },
-
- {0 , 0xfe, 0 , 8, "Coin B" },
- {0x14, 0x01, 0x38, 0x00, "3 Coins 1 Credits" },
- {0x14, 0x01, 0x38, 0x08, "2 Coins 1 Credits" },
- {0x14, 0x01, 0x38, 0x38, "1 Coin 1 Credits" },
- {0x14, 0x01, 0x38, 0x30, "1 Coin 2 Credits" },
- {0x14, 0x01, 0x38, 0x28, "1 Coin 3 Credits" },
- {0x14, 0x01, 0x38, 0x20, "1 Coin 4 Credits" },
- {0x14, 0x01, 0x38, 0x18, "1 Coin 5 Credits" },
- {0x14, 0x01, 0x38, 0x10, "1 Coin 6 Credits" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x14, 0x01, 0x40, 0x40, "Off" },
- {0x14, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "2 Credits to Start, 1 to Continue" },
- {0x14, 0x01, 0x80, 0x80, "Off" },
- {0x14, 0x01, 0x80, 0x00, "On" },
-
- {0 , 0xfe, 0 , 4, "Player's Vitality" },
- {0x15, 0x01, 0x30, 0x30, "Normal" },
- {0x15, 0x01, 0x30, 0x20, "Low" },
- {0x15, 0x01, 0x30, 0x10, "Lowest" },
- {0x15, 0x01, 0x30, 0x00, "High" },
-
- {0 , 0xfe, 0 , 2, "Allow Continue" },
- {0x15, 0x01, 0x40, 0x40, "Off" },
- {0x15, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x15, 0x01, 0x80, 0x80, "Off" },
- {0x15, 0x01, 0x80, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Stage Clear Bonus" },
- {0x16, 0x01, 0x01, 0x01, "Off" },
- {0x16, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 4, "Enemy's Vitality" },
- {0x16, 0x01, 0x0c, 0x08, "Low" },
- {0x16, 0x01, 0x0c, 0x0c, "Normal" },
- {0x16, 0x01, 0x0c, 0x04, "High" },
- {0x16, 0x01, 0x0c, 0x00, "Highest" },
-
- {0 , 0xfe, 0 , 4, "Enemy Encounter Rate" },
- {0x16, 0x01, 0x30, 0x20, "Low" },
- {0x16, 0x01, 0x30, 0x30, "Normal" },
- {0x16, 0x01, 0x30, 0x10, "High" },
- {0x16, 0x01, 0x30, 0x00, "Highest" },
-
- {0 , 0xfe, 0 , 4, "Enemy's Weapon Speed" },
- {0x16, 0x01, 0xc0, 0x80, "Slow" },
- {0x16, 0x01, 0xc0, 0xc0, "Normal" },
- {0x16, 0x01, 0xc0, 0x40, "Fast" },
- {0x16, 0x01, 0xc0, 0x00, "Fastest" },
-};
-
-STDDIPINFO(Rohga)
-
-static struct BurnDIPInfo SchmeisrDIPList[]=
-{
- {0x14, 0xff, 0xff, 0xff, NULL },
- {0x15, 0xff, 0xff, 0xff, NULL },
- {0x16, 0xff, 0xff, 0xff, NULL },
-
- {0 , 0xfe, 0 , 8, "Coin A" },
- {0x14, 0x01, 0x07, 0x00, "3 Coins 1 Credits" },
- {0x14, 0x01, 0x07, 0x01, "2 Coins 1 Credits" },
- {0x14, 0x01, 0x07, 0x07, "1 Coin 1 Credits" },
- {0x14, 0x01, 0x07, 0x06, "1 Coin 2 Credits" },
- {0x14, 0x01, 0x07, 0x05, "1 Coin 3 Credits" },
- {0x14, 0x01, 0x07, 0x04, "1 Coin 4 Credits" },
- {0x14, 0x01, 0x07, 0x03, "1 Coin 5 Credits" },
- {0x14, 0x01, 0x07, 0x02, "1 Coin 6 Credits" },
-
- {0 , 0xfe, 0 , 8, "Coin B" },
- {0x14, 0x01, 0x38, 0x00, "3 Coins 1 Credits" },
- {0x14, 0x01, 0x38, 0x08, "2 Coins 1 Credits" },
- {0x14, 0x01, 0x38, 0x38, "1 Coin 1 Credits" },
- {0x14, 0x01, 0x38, 0x30, "1 Coin 2 Credits" },
- {0x14, 0x01, 0x38, 0x28, "1 Coin 3 Credits" },
- {0x14, 0x01, 0x38, 0x20, "1 Coin 4 Credits" },
- {0x14, 0x01, 0x38, 0x18, "1 Coin 5 Credits" },
- {0x14, 0x01, 0x38, 0x10, "1 Coin 6 Credits" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x14, 0x01, 0x40, 0x40, "Off" },
- {0x14, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x14, 0x01, 0x80, 0x80, "Off" },
- {0x14, 0x01, 0x80, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x15, 0x01, 0x04, 0x00, "Off" },
- {0x15, 0x01, 0x04, 0x04, "On" },
-
- {0 , 0xfe, 0 , 2, "Freeze Screen" },
- {0x16, 0x01, 0x20, 0x20, "Off" },
- {0x16, 0x01, 0x20, 0x00, "On" },
-};
-
-STDDIPINFO(Schmeisr)
-
-static struct BurnDIPInfo WizdfireDIPList[]=
-{
- {0x12, 0xff, 0xff, 0xff, NULL },
- {0x13, 0xff, 0xff, 0x7f, NULL },
-
- {0 , 0xfe, 0 , 8, "Coin A" },
- {0x12, 0x01, 0x07, 0x00, "3 Coins 1 Credits" },
- {0x12, 0x01, 0x07, 0x01, "2 Coins 1 Credits" },
- {0x12, 0x01, 0x07, 0x07, "1 Coin 1 Credits" },
- {0x12, 0x01, 0x07, 0x06, "1 Coin 2 Credits" },
- {0x12, 0x01, 0x07, 0x05, "1 Coin 3 Credits" },
- {0x12, 0x01, 0x07, 0x04, "1 Coin 4 Credits" },
- {0x12, 0x01, 0x07, 0x03, "1 Coin 5 Credits" },
- {0x12, 0x01, 0x07, 0x02, "1 Coin 6 Credits" },
-
- {0 , 0xfe, 0 , 8, "Coin B" },
- {0x12, 0x01, 0x38, 0x00, "3 Coins 1 Credits" },
- {0x12, 0x01, 0x38, 0x08, "2 Coins 1 Credits" },
- {0x12, 0x01, 0x38, 0x38, "1 Coin 1 Credits" },
- {0x12, 0x01, 0x38, 0x30, "1 Coin 2 Credits" },
- {0x12, 0x01, 0x38, 0x28, "1 Coin 3 Credits" },
- {0x12, 0x01, 0x38, 0x20, "1 Coin 4 Credits" },
- {0x12, 0x01, 0x38, 0x18, "1 Coin 5 Credits" },
- {0x12, 0x01, 0x38, 0x10, "1 Coin 6 Credits" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x12, 0x01, 0x40, 0x40, "Off" },
- {0x12, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "2 Credits to Start, 1 to Continue" },
- {0x12, 0x01, 0x80, 0x80, "Off" },
- {0x12, 0x01, 0x80, 0x00, "On" },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x13, 0x01, 0x03, 0x00, "2" },
- {0x13, 0x01, 0x03, 0x01, "3" },
- {0x13, 0x01, 0x03, 0x03, "4" },
- {0x13, 0x01, 0x03, 0x02, "5" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x13, 0x01, 0x0c, 0x08, "Easy" },
- {0x13, 0x01, 0x0c, 0x0c, "Normal" },
- {0x13, 0x01, 0x0c, 0x04, "Hard" },
- {0x13, 0x01, 0x0c, 0x00, "Hardest" },
-
- {0 , 0xfe, 0 , 4, "Magic Gauge Speed" },
- {0x13, 0x01, 0x30, 0x00, "Very Slow" },
- {0x13, 0x01, 0x30, 0x10, "Slow" },
- {0x13, 0x01, 0x30, 0x30, "Normal" },
- {0x13, 0x01, 0x30, 0x20, "Fast" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x13, 0x01, 0x80, 0x80, "Off" },
- {0x13, 0x01, 0x80, 0x00, "On" },
-};
-
-STDDIPINFO(Wizdfire)
-
-static struct BurnDIPInfo NitrobalDIPList[]=
-{
- {0x19, 0xff, 0xff, 0xff, NULL },
- {0x1a, 0xff, 0xff, 0x7f, NULL },
-
- {0 , 0xfe, 0 , 8, "Coin A" },
- {0x19, 0x01, 0x07, 0x00, "3 Coins 1 Credits" },
- {0x19, 0x01, 0x07, 0x01, "2 Coins 1 Credits" },
- {0x19, 0x01, 0x07, 0x07, "1 Coin 1 Credits" },
- {0x19, 0x01, 0x07, 0x06, "1 Coin 2 Credits" },
- {0x19, 0x01, 0x07, 0x05, "1 Coin 3 Credits" },
- {0x19, 0x01, 0x07, 0x04, "1 Coin 4 Credits" },
- {0x19, 0x01, 0x07, 0x03, "1 Coin 5 Credits" },
- {0x19, 0x01, 0x07, 0x02, "1 Coin 6 Credits" },
-
- {0 , 0xfe, 0 , 8, "Coin B" },
- {0x19, 0x01, 0x38, 0x00, "3 Coins 1 Credits" },
- {0x19, 0x01, 0x38, 0x08, "2 Coins 1 Credits" },
- {0x19, 0x01, 0x38, 0x38, "1 Coin 1 Credits" },
- {0x19, 0x01, 0x38, 0x30, "1 Coin 2 Credits" },
- {0x19, 0x01, 0x38, 0x28, "1 Coin 3 Credits" },
- {0x19, 0x01, 0x38, 0x20, "1 Coin 4 Credits" },
- {0x19, 0x01, 0x38, 0x18, "1 Coin 5 Credits" },
- {0x19, 0x01, 0x38, 0x10, "1 Coin 6 Credits" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x19, 0x01, 0x40, 0x40, "Off" },
- {0x19, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "2 Credits to Start, 1 to Continue" },
- {0x19, 0x01, 0x80, 0x80, "Off" },
- {0x19, 0x01, 0x80, 0x00, "On" },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x1a, 0x01, 0x03, 0x01, "1" },
- {0x1a, 0x01, 0x03, 0x00, "2" },
- {0x1a, 0x01, 0x03, 0x03, "3" },
- {0x1a, 0x01, 0x03, 0x02, "4" },
-
- {0 , 0xfe, 0 , 4, "Difficulty?" },
- {0x1a, 0x01, 0x0c, 0x08, "Easy" },
- {0x1a, 0x01, 0x0c, 0x0c, "Normal" },
- {0x1a, 0x01, 0x0c, 0x04, "Hard" },
- {0x1a, 0x01, 0x0c, 0x00, "Hardest" },
-
- {0 , 0xfe, 0 , 2, "Split Coin Chutes" },
- {0x1a, 0x01, 0x10, 0x10, "Off" },
- {0x1a, 0x01, 0x10, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Players" },
- {0x1a, 0x01, 0x20, 0x20, "2" },
- {0x1a, 0x01, 0x20, 0x00, "3" },
-
- {0 , 0xfe, 0 , 2, "Shot Button to Start" },
- {0x1a, 0x01, 0x40, 0x40, "Off" },
- {0x1a, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x1a, 0x01, 0x80, 0x80, "Off" },
- {0x1a, 0x01, 0x80, 0x00, "On" },
-};
-
-STDDIPINFO(Nitrobal)
-
-static struct BurnDIPInfo HangzoDIPList[]=
-{
- {0x14, 0xff, 0xff, 0xff, NULL },
- {0x15, 0xff, 0xff, 0x7f, NULL },
- {0x16, 0xff, 0xff, 0xff, NULL },
-
- {0 , 0xfe, 0 , 8, "Coin A" },
- {0x14, 0x01, 0x07, 0x00, "3 Coins 1 Credits" },
- {0x14, 0x01, 0x07, 0x01, "2 Coins 1 Credits" },
- {0x14, 0x01, 0x07, 0x07, "1 Coin 1 Credits" },
- {0x14, 0x01, 0x07, 0x06, "1 Coin 2 Credits" },
- {0x14, 0x01, 0x07, 0x05, "1 Coin 3 Credits" },
- {0x14, 0x01, 0x07, 0x04, "1 Coin 4 Credits" },
- {0x14, 0x01, 0x07, 0x03, "1 Coin 5 Credits" },
- {0x14, 0x01, 0x07, 0x02, "1 Coin 6 Credits" },
-
- {0 , 0xfe, 0 , 8, "Coin B" },
- {0x14, 0x01, 0x38, 0x00, "3 Coins 1 Credits" },
- {0x14, 0x01, 0x38, 0x08, "2 Coins 1 Credits" },
- {0x14, 0x01, 0x38, 0x38, "1 Coin 1 Credits" },
- {0x14, 0x01, 0x38, 0x30, "1 Coin 2 Credits" },
- {0x14, 0x01, 0x38, 0x28, "1 Coin 3 Credits" },
- {0x14, 0x01, 0x38, 0x20, "1 Coin 4 Credits" },
- {0x14, 0x01, 0x38, 0x18, "1 Coin 5 Credits" },
- {0x14, 0x01, 0x38, 0x10, "1 Coin 6 Credits" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x14, 0x01, 0x40, 0x40, "Off" },
- {0x14, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "2 Credits to Start, 1 to Continue" },
- {0x14, 0x01, 0x80, 0x80, "Off" },
- {0x14, 0x01, 0x80, 0x00, "On" },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x15, 0x01, 0x03, 0x01, "1" },
- {0x15, 0x01, 0x03, 0x00, "2" },
- {0x15, 0x01, 0x03, 0x03, "3" },
- {0x15, 0x01, 0x03, 0x02, "4" },
-
- {0 , 0xfe, 0 , 2, "Allow Continue" },
- {0x15, 0x01, 0x40, 0x00, "Off" },
- {0x15, 0x01, 0x40, 0x40, "On" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x15, 0x01, 0x80, 0x80, "Off" },
- {0x15, 0x01, 0x80, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Freeze Player" },
- {0x16, 0x01, 0x02, 0x02, "Off" },
- {0x16, 0x01, 0x02, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Freeze Frame" },
- {0x16, 0x01, 0x04, 0x04, "Off" },
- {0x16, 0x01, 0x04, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Freeze Screen" },
- {0x16, 0x01, 0x20, 0x20, "Off" },
- {0x16, 0x01, 0x20, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Debug Mode" },
- {0x16, 0x01, 0x80, 0x80, "Off" },
- {0x16, 0x01, 0x80, 0x00, "On" },
-};
-
-STDDIPINFO(Hangzo)
-
-void __fastcall rohga_main_write_word(UINT32 address, UINT16 data)
-{
- deco16_write_control_word(0, address, 0x200000, data)
- deco16_write_control_word(1, address, 0x240000, data)
-
- switch (address)
- {
- case 0x300000:
- memcpy (DrvSprBuf2, DrvSprBuf, 0x800);
- memcpy (DrvSprBuf, DrvSprRAM, 0x800);
- return;
-
- case 0x31000a:
- memcpy (DrvPalBuf, DrvPalRAM, 0x2000);
- return;
-
- case 0x321100: // schmeisr
- SekSetIRQLine(6, CPU_IRQSTATUS_NONE);
- return;
-
- case 0x322000:
- deco16_priority = data;
- return;
- }
-
- if (address >= 0x280000 && address <= 0x283fff) {
- deco146_104_prot_ww(0, address, data);
- return;
- }
-}
-
-void __fastcall rohga_main_write_byte(UINT32 address, UINT8 data)
-{
- switch (address)
- {
- case 0x300000:
- case 0x300001:
- memcpy (DrvSprBuf2, DrvSprBuf, 0x800);
- memcpy (DrvSprBuf, DrvSprRAM, 0x800);
- return;
-
- case 0x31000a:
- case 0x31000b:
- memcpy (DrvPalBuf, DrvPalRAM, 0x2000);
- return;
-
- case 0x321100: // schmeisr
- case 0x321101:
- SekSetIRQLine(6, CPU_IRQSTATUS_NONE);
- return;
-
- case 0x322000:
- case 0x322001:
- deco16_priority = data;
- return;
- }
-
- if (address >= 0x280000 && address <= 0x283fff) {
- deco146_104_prot_wb(0, address, data);
- return;
- }
-}
-
-UINT16 __fastcall rohga_main_read_word(UINT32 address)
-{
- switch (address)
- {
- case 0x2c0000:
- case 0x300000: // schmeisr
- return DrvDips[2];
-
- case 0x310002: // schmeisr
- return (DrvInputs[1] & 0x07) | (deco16_vblank & 0x08);
-
- case 0x321100:
- SekSetIRQLine(6, CPU_IRQSTATUS_NONE);
- return 0;
- }
-
- if (address >= 0x280000 && address <= 0x283fff) {
- return deco146_104_prot_rw(0, address);
- }
-
- return 0;
-}
-
-UINT8 __fastcall rohga_main_read_byte(UINT32 address)
-{
- switch (address)
- {
- case 0x2c0000:
- case 0x2c0001:
- case 0x300000: // schmeisr
- case 0x300001:
- return DrvDips[2];
-
- case 0x310002: // schmeisr
- case 0x310003:
- return (DrvInputs[1] & 0x07) | (deco16_vblank & 0x08);
-
- case 0x321100:
- case 0x321101:
- SekSetIRQLine(6, CPU_IRQSTATUS_NONE);
- return 0;
- }
-
- if (address >= 0x280000 && address <= 0x283fff) {
- return deco146_104_prot_rb(0, address);
- }
-
- return 0;
-}
-
-void __fastcall wizdfire_main_write_word(UINT32 address, UINT16 data)
-{
- deco16_write_control_word(0, address, 0x300000, data)
- deco16_write_control_word(1, address, 0x310000, data)
-
- switch (address)
- {
- case 0x350000:
- memcpy (DrvSprBuf, DrvSprRAM, 0x800);
- return;
-
- case 0x370000:
- memcpy (DrvSprBuf2, DrvSprRAM2, 0x800);
- return;
-
- case 0x380008:
- memcpy (DrvPalBuf, DrvPalRAM, 0x2000);
- return;
-
- case 0x320000:
- deco16_priority = data;
- return;
-
- case 0x320004:
- SekSetIRQLine(6, CPU_IRQSTATUS_NONE);
- return;
- }
-
- if ((address >= 0xff4000 && address <= 0xff7fff) || // wizdfire
- (address >= 0xfe4000 && address <= 0xfe7fff)) { // nitrobal
- deco146_104_prot_ww(0, address, data);
- return;
- }
-}
-
-void __fastcall wizdfire_main_write_byte(UINT32 address, UINT8 data)
-{
- switch (address)
- {
- case 0x350000:
- case 0x350001:
- memcpy (DrvSprBuf, DrvSprRAM, 0x800);
- return;
-
- case 0x370000:
- case 0x370001:
- memcpy (DrvSprBuf2, DrvSprRAM2, 0x800);
- return;
-
- case 0x380008:
- case 0x380009:
- memcpy (DrvPalBuf, DrvPalRAM, 0x2000);
- return;
-
- case 0x320000:
- case 0x320001:
- deco16_priority = data;
- return;
-
-
- case 0x320004:
- case 0x320005:
- SekSetIRQLine(6, CPU_IRQSTATUS_NONE);
- return;
- }
-
- if ((address >= 0xff4000 && address <= 0xff7fff) || // wizdfire
- (address >= 0xfe4000 && address <= 0xfe7fff)) { // nitrobal
- deco146_104_prot_wb(0, address, data);
- return;
- }
-}
-
-UINT16 __fastcall wizdfire_main_read_word(UINT32 address)
-{
- if (address == 0x320000) return DrvInputs[2];
-
- if ((address >= 0xff4000 && address <= 0xff7fff) || // wizdfire
- (address >= 0xfe4000 && address <= 0xfe7fff)) { // nitrobal
- return deco146_104_prot_rw(0, address);
- }
-
- return 0;
-}
-
-UINT8 __fastcall wizdfire_main_read_byte(UINT32 address)
-{
- if (address == 0x320000 || address == 0x320001) return DrvInputs[2] >> ((~address & 1) << 3);
-
- if ((address >= 0xff4000 && address <= 0xff7fff) || // wizdfire
- (address >= 0xfe4000 && address <= 0xfe7fff)) { // nitrobal
- return deco146_104_prot_rb(0, address);
- }
-
- return 0;
-}
-
-static void DrvYM2151WritePort(UINT32, UINT32 data)
-{
- if ((data & 0x01) != (UINT32)(DrvOkiBank & 0x01)) {
- memcpy (DrvSndROM0, DrvSndROM0 + 0x40000 + ((data & 0x01) >> 0) * 0x40000, 0x40000);
- }
-
- if ((data & 0x02) != (UINT32)(DrvOkiBank & 0x02)) {
- memcpy (DrvSndROM1, DrvSndROM1 + 0x40000 + ((data & 0x02) >> 1) * 0x40000, 0x40000);
- }
-
- DrvOkiBank = data;
-}
-
-static INT32 rohga_bank_callback( const INT32 bank )
-{
- return ((bank >> 4) & 0x3) << 12;
-}
-
-static INT32 DrvDoReset()
-{
- memset (AllRam, 0, RamEnd - AllRam);
-
- SekOpen(0);
- SekReset();
- SekClose();
-
- deco16SoundReset();
-
- deco16Reset();
-
- DrvOkiBank = -1;
- DrvYM2151WritePort(0, (DrvHangzo) ? 0 : 3);
-
- return 0;
-}
-
-static INT32 MemIndex()
-{
- UINT8 *Next; Next = AllMem;
-
- Drv68KROM = Next; Next += 0x200000;
- DrvHucROM = Next; Next += 0x010000;
-
- DrvGfxROM0 = Next; Next += 0x080000;
- DrvGfxROM1 = Next; Next += 0x400000;
- DrvGfxROM2 = Next; Next += 0x400000;
- DrvGfxROM3 = Next; Next += 0x800000;
- DrvGfxROM4 = Next; Next += 0x800000;
-
- MSM6295ROM = Next;
- DrvSndROM0 = Next; Next += 0x100000;
- DrvSndROM1 = Next; Next += 0x0c0000;
-
- tempdraw[0] = (UINT16*)Next; Next += 320 * 240 * sizeof(UINT16);
- tempdraw[1] = (UINT16*)Next; Next += 320 * 240 * sizeof(UINT16);
-
- DrvPalette = (UINT32*)Next; Next += 0x0800 * sizeof(UINT32);
-
- AllRam = Next;
-
- Drv68KRAM = Next; Next += 0x024000;
- DrvHucRAM = Next; Next += 0x002000;
- DrvSprRAM2 = Next; Next += 0x000800;
- DrvSprRAM = Next; Next += 0x000800;
- DrvSprBuf2 = Next; Next += 0x000800;
- DrvSprBuf = Next; Next += 0x000800;
-
- DrvPalRAM = Next; Next += 0x002000;
- DrvPalBuf = Next; Next += 0x002000;
-
- flipscreen = Next; Next += 0x000001;
-
- RamEnd = Next;
-
- MemEnd = Next;
-
- return 0;
-}
-
-static INT32 DrvSpriteDecode()
-{
- INT32 Plane[6] = { 0x400000*8+8, 0x400000*8, 0x200000*8+8, 0x200000*8, 8, 0 };
- INT32 XOffs[16] = { 7,6,5,4,3,2,1,0, 32*8+7, 32*8+6, 32*8+5, 32*8+4, 32*8+3, 32*8+2, 32*8+1, 32*8+0 };
- INT32 YOffs[16] = { 15*16, 14*16, 13*16, 12*16, 11*16, 10*16, 9*16, 8*16, 7*16, 6*16, 5*16, 4*16, 3*16, 2*16, 1*16, 0*16};
-
- UINT8 *tmp = (UINT8*)BurnMalloc(0x600000);
- if (tmp == NULL) {
- return 1;
- }
-
- memcpy (tmp, DrvGfxROM3, 0x600000);
-
- GfxDecode(0x8000, 6, 16, 16, Plane, XOffs, YOffs, 0x200, tmp, DrvGfxROM3);
-
- BurnFree (tmp);
-
- return 0;
-}
-
-static UINT16 deco_104_port_a_cb()
-{
- return DrvInputs[0];
-}
-
-static UINT16 deco_104_port_b_cb()
-{
- return (DrvInputs[1] & ~8) | deco16_vblank;
-}
-
-static UINT16 deco_104_port_c_cb()
-{
- return DrvInputs[2];
-}
-
-static void soundlatch_write(UINT16 data)
-{
- deco16_soundlatch = data & 0xff;
- h6280SetIRQLine(0, CPU_IRQSTATUS_ACK);
-}
-
-static INT32 RohgaInit()
-{
- BurnSetRefreshRate(58.00);
-
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(Drv68KROM + 0x000001, 0, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x000000, 1, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x100001, 2, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x100000, 3, 2)) return 1;
-
- if (BurnLoadRom(DrvHucROM + 0x000000, 4, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x000000, 5, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x000001, 6, 2)) return 1;
-
- if (BurnLoadRom(DrvGfxROM1 + 0x000000, 7, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x080000, 8, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM2 + 0x000000, 9, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x100000, 10, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM3 + 0x000000, 11, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM3 + 0x100000, 12, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM3 + 0x200000, 13, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM3 + 0x300000, 14, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM3 + 0x400000, 15, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM3 + 0x500000, 16, 1)) return 1;
-
- if (BurnLoadRom(DrvSndROM0 + 0x040000, 17, 1)) return 1;
-
- if (BurnLoadRom(DrvSndROM1 + 0x040000, 18, 1)) return 1;
-
- deco56_decrypt_gfx(DrvGfxROM0, 0x020000);
- deco56_decrypt_gfx(DrvGfxROM1, 0x100000);
-
- deco16_tile_decode(DrvGfxROM0, DrvGfxROM0, 0x020000, 1);
- deco16_tile_decode(DrvGfxROM1, DrvGfxROM1, 0x100000, 0);
- deco16_tile_decode(DrvGfxROM2, DrvGfxROM2, 0x200000, 0);
- DrvSpriteDecode();
- }
-
- deco16Init(0, 0, 1);
- deco16_set_graphics(DrvGfxROM0, 0x20000 * 2, DrvGfxROM1, 0x100000 * 2, DrvGfxROM2, 0x200000 * 2);
- deco16_set_color_base(2, 512);
- deco16_set_color_base(3, 768);
- deco16_set_global_offsets(0, 8);
- deco16_set_bank_callback(0, rohga_bank_callback);
- deco16_set_bank_callback(1, rohga_bank_callback);
- deco16_set_bank_callback(2, rohga_bank_callback);
- deco16_set_bank_callback(3, rohga_bank_callback);
-
- // 146_104 prot
- deco_104_init();
- deco_146_104_set_port_a_cb(deco_104_port_a_cb);
- deco_146_104_set_port_b_cb(deco_104_port_b_cb);
- deco_146_104_set_port_c_cb(deco_104_port_c_cb);
- deco_146_104_set_soundlatch_cb(soundlatch_write);
-
- SekInit(0, 0x68000);
- SekOpen(0);
- SekMapMemory(Drv68KROM, 0x000000, 0x1fffff, MAP_ROM);
- SekMapMemory(deco16_pf_ram[0], 0x3c0000, 0x3c1fff, MAP_RAM);
- SekMapMemory(deco16_pf_ram[1], 0x3c2000, 0x3c2fff, MAP_RAM);
- SekMapMemory(deco16_pf_ram[2], 0x3c4000, 0x3c4fff, MAP_RAM);
- SekMapMemory(deco16_pf_ram[3], 0x3c6000, 0x3c6fff, MAP_RAM);
- SekMapMemory(deco16_pf_rowscroll[0], 0x3c8000, 0x3c8fff, MAP_RAM);
- SekMapMemory(deco16_pf_rowscroll[0], 0x3c9000, 0x3c9fff, MAP_RAM);
- SekMapMemory(deco16_pf_rowscroll[1], 0x3ca000, 0x3cafff, MAP_RAM);
- SekMapMemory(deco16_pf_rowscroll[1], 0x3cb000, 0x3cbfff, MAP_RAM);
- SekMapMemory(deco16_pf_rowscroll[2], 0x3cc000, 0x3ccfff, MAP_RAM);
- SekMapMemory(deco16_pf_rowscroll[2], 0x3cd000, 0x3cdfff, MAP_RAM);
- SekMapMemory(deco16_pf_rowscroll[3], 0x3ce000, 0x3cefff, MAP_RAM);
- SekMapMemory(deco16_pf_rowscroll[3], 0x3cf000, 0x3cffff, MAP_RAM);
- SekMapMemory(DrvSprRAM, 0x3d0000, 0x3d07ff, MAP_RAM);
- SekMapMemory(DrvPalRAM, 0x3e0000, 0x3e1fff, MAP_RAM);
- SekMapMemory(Drv68KRAM, 0x3f0000, 0x3f3fff, MAP_RAM);
- SekSetWriteWordHandler(0, rohga_main_write_word);
- SekSetWriteByteHandler(0, rohga_main_write_byte);
- SekSetReadWordHandler(0, rohga_main_read_word);
- SekSetReadByteHandler(0, rohga_main_read_byte);
- SekClose();
-
- deco16SoundInit(DrvHucROM, DrvHucRAM, 2685000, 0, DrvYM2151WritePort, 0.78, 1006875, 1.00, 2013750, 0.40);
- BurnYM2151SetRoute(BURN_SND_YM2151_YM2151_ROUTE_1, 0.78, BURN_SND_ROUTE_LEFT);
- BurnYM2151SetRoute(BURN_SND_YM2151_YM2151_ROUTE_2, 0.78, BURN_SND_ROUTE_RIGHT);
-
- GenericTilesInit();
-
- DrvDoReset();
-
- return 0;
-}
-
-static INT32 WizdfireInit()
-{
- BurnSetRefreshRate(58.00);
-
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(Drv68KROM + 0x000001, 0, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x000000, 1, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x040001, 2, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x040000, 3, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x080001, 4, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x080000, 5, 2)) return 1;
-
- if (BurnLoadRom(DrvHucROM + 0x000000, 6, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x000000, 7, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x000001, 8, 2)) return 1;
-
- if (BurnLoadRom(DrvGfxROM1 + 0x000000, 9, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x100000, 10, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM2 + 0x000000, 11, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x080000, 12, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM3 + 0x000000, 13, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM3 + 0x000001, 14, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM3 + 0x200000, 15, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM3 + 0x200001, 16, 2)) return 1;
-
- if (BurnLoadRom(DrvGfxROM4 + 0x000000, 17, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM4 + 0x000001, 18, 2)) return 1;
-
- if (BurnLoadRom(DrvSndROM0 + 0x040000, 19, 1)) return 1;
- // DrvSndROM0 leaks into DrvSndROM1 by 0x40000, but that's ok, as DrvSndROM1 loads in below
- // DrvSndROM0's size must be 0x100000 for banking to work correctly. (internal to msm6295)
- if (DrvIsWizdfireEnglish == 1) {
- memcpy(DrvSndROM0 + 0x040000, DrvSndROM0 + 0x0c0000, 0x80000);
- }
- memset(DrvSndROM0 + 0x0c0000, 0, 0x80000);
-
- if (BurnLoadRom(DrvSndROM1 + 0x040000, 20, 1)) return 1;
-
- deco74_decrypt_gfx(DrvGfxROM0, 0x020000);
- deco74_decrypt_gfx(DrvGfxROM1, 0x200000);
- deco74_decrypt_gfx(DrvGfxROM2, 0x100000);
-
- deco16_tile_decode(DrvGfxROM0, DrvGfxROM0, 0x020000, 1);
- deco16_tile_decode(DrvGfxROM1, DrvGfxROM1, 0x200000, 0);
- deco16_tile_decode(DrvGfxROM2, DrvGfxROM2, 0x100000, 0);
- deco16_sprite_decode(DrvGfxROM3, 0x400000);
- deco16_sprite_decode(DrvGfxROM4, 0x100000);
- }
-
- deco16Init(0, 0, 1);
- deco16_set_graphics(DrvGfxROM0, 0x20000 * 2, DrvGfxROM1, 0x200000 * 2, DrvGfxROM2, 0x100000 * 2);
- deco16_set_color_base(2, 512);
- deco16_set_color_base(3, 768);
- deco16_set_global_offsets(0, 8);
- deco16_set_bank_callback(0, rohga_bank_callback);
- deco16_set_bank_callback(1, rohga_bank_callback);
- deco16_set_bank_callback(2, rohga_bank_callback);
- deco16_set_bank_callback(3, rohga_bank_callback);
-
- // 146_104 prot
- deco_104_init();
- deco_146_104_set_interface_scramble_reverse();
- deco_146_104_set_port_a_cb(deco_104_port_a_cb);
- deco_146_104_set_port_b_cb(deco_104_port_b_cb);
- deco_146_104_set_port_c_cb(deco_104_port_c_cb);
- deco_146_104_set_soundlatch_cb(soundlatch_write);
-
- SekInit(0, 0x68000);
- SekOpen(0);
- SekMapMemory(Drv68KROM, 0x000000, 0x1fffff, MAP_ROM);
- SekMapMemory(deco16_pf_ram[0], 0x200000, 0x200fff, MAP_RAM);
- SekMapMemory(deco16_pf_ram[1], 0x202000, 0x202fff, MAP_RAM);
- SekMapMemory(deco16_pf_ram[2], 0x208000, 0x208fff, MAP_RAM);
- SekMapMemory(deco16_pf_ram[3], 0x20a000, 0x20afff, MAP_RAM);
- SekMapMemory(deco16_pf_rowscroll[2], 0x20c000, 0x20c7ff, MAP_RAM);
- SekMapMemory(deco16_pf_rowscroll[3], 0x20e000, 0x20e7ff, MAP_RAM);
- SekMapMemory(DrvSprRAM, 0x340000, 0x3407ff, MAP_RAM);
- SekMapMemory(DrvSprRAM2, 0x360000, 0x3607ff, MAP_RAM);
- SekMapMemory(DrvPalRAM, 0x380000, 0x381fff, MAP_RAM);
- SekMapMemory(Drv68KRAM, 0xfdc000, 0xfe3fff, MAP_RAM);
- SekMapMemory(Drv68KRAM + 0x8000, 0xfe4800, 0xffffff, MAP_RAM);
- SekSetWriteWordHandler(0, wizdfire_main_write_word);
- SekSetWriteByteHandler(0, wizdfire_main_write_byte);
- SekSetReadWordHandler(0, wizdfire_main_read_word);
- SekSetReadByteHandler(0, wizdfire_main_read_byte);
- SekClose();
-
- deco16SoundInit(DrvHucROM, DrvHucRAM, 2685000, 0, DrvYM2151WritePort, 0.80, 1006875, 2.00, 2013750, 0.40);
- BurnYM2151SetRoute(BURN_SND_YM2151_YM2151_ROUTE_1, 0.80, BURN_SND_ROUTE_LEFT);
- BurnYM2151SetRoute(BURN_SND_YM2151_YM2151_ROUTE_2, 0.80, BURN_SND_ROUTE_RIGHT);
-
- GenericTilesInit();
-
- DrvDoReset();
-
- return 0;
-}
-
-static INT32 WizdfireEnglishInit()
-{
- DrvIsWizdfireEnglish = 1;
-
- return WizdfireInit();
-}
-
-static INT32 SchmeisrInit()
-{
- BurnSetRefreshRate(58.00);
-
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(Drv68KROM + 0x000001, 0, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x000000, 1, 2)) return 1;
-
- if (BurnLoadRom(DrvHucROM + 0x000000, 2, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM1 + 0x000000, 3, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x080000, 4, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM2 + 0x000000, 5, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x100000, 6, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM3 + 0x000000, 7, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM3 + 0x100000, 8, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM3 + 0x200000, 9, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM3 + 0x300000, 10, 1)) return 1;
-
- if (BurnLoadRom(DrvSndROM0 + 0x040000, 11, 1)) return 1;
-
- if (BurnLoadRom(DrvSndROM1 + 0x040000, 12, 1)) return 1;
-
- deco74_decrypt_gfx(DrvGfxROM1, 0x100000);
-
- memcpy (DrvGfxROM0 + 0x000000, DrvGfxROM1 + 0x000000, 0x020000);
- memcpy (DrvGfxROM0 + 0x020000, DrvGfxROM1 + 0x080000, 0x020000);
-
- deco16_tile_decode(DrvGfxROM0, DrvGfxROM0, 0x040000, 1);
- deco16_tile_decode(DrvGfxROM1, DrvGfxROM1, 0x100000, 0);
- deco16_tile_decode(DrvGfxROM2, DrvGfxROM2, 0x200000, 0);
- DrvSpriteDecode();
- }
-
- deco16Init(0, 0, 1);
- deco16_set_graphics(DrvGfxROM0, 0x40000 * 2, DrvGfxROM1, 0x100000 * 2, DrvGfxROM2, 0x200000 * 2);
- deco16_set_color_base(2, 512);
- deco16_set_color_base(3, 768);
- deco16_set_global_offsets(0, 8);
- deco16_set_bank_callback(0, rohga_bank_callback);
- deco16_set_bank_callback(1, rohga_bank_callback);
- deco16_set_bank_callback(2, rohga_bank_callback);
- deco16_set_bank_callback(3, rohga_bank_callback);
-
- // 146_104 prot
- deco_104_init();
- deco_146_104_set_port_a_cb(deco_104_port_a_cb);
- deco_146_104_set_port_b_cb(deco_104_port_b_cb);
- deco_146_104_set_port_c_cb(deco_104_port_c_cb);
- deco_146_104_set_soundlatch_cb(soundlatch_write);
-
- SekInit(0, 0x68000);
- SekOpen(0);
- SekMapMemory(Drv68KROM, 0x000000, 0x1fffff, MAP_ROM);
- SekMapMemory(deco16_pf_ram[0], 0x3c0000, 0x3c1fff, MAP_RAM);
- SekMapMemory(deco16_pf_ram[1], 0x3c2000, 0x3c2fff, MAP_RAM);
- SekMapMemory(deco16_pf_ram[2], 0x3c4000, 0x3c4fff, MAP_RAM);
- SekMapMemory(deco16_pf_ram[3], 0x3c6000, 0x3c6fff, MAP_RAM);
- SekMapMemory(deco16_pf_rowscroll[0], 0x3c8000, 0x3c8fff, MAP_RAM);
- SekMapMemory(deco16_pf_rowscroll[0], 0x3c9000, 0x3c9fff, MAP_RAM);
- SekMapMemory(deco16_pf_rowscroll[1], 0x3ca000, 0x3cafff, MAP_RAM);
- SekMapMemory(deco16_pf_rowscroll[1], 0x3cb000, 0x3cbfff, MAP_RAM);
- SekMapMemory(deco16_pf_rowscroll[2], 0x3cc000, 0x3ccfff, MAP_RAM);
- SekMapMemory(deco16_pf_rowscroll[2], 0x3cd000, 0x3cdfff, MAP_RAM);
- SekMapMemory(deco16_pf_rowscroll[3], 0x3ce000, 0x3cefff, MAP_RAM);
- SekMapMemory(deco16_pf_rowscroll[3], 0x3cf000, 0x3cffff, MAP_RAM);
- SekMapMemory(DrvSprRAM, 0x3d0000, 0x3d07ff, MAP_RAM);
- SekMapMemory(DrvPalRAM, 0x3e0000, 0x3e1fff, MAP_RAM);
- SekMapMemory(DrvPalRAM, 0x3e2000, 0x3e3fff, MAP_RAM);
- SekMapMemory(Drv68KRAM, 0xff0000, 0xff7fff, MAP_RAM);
- SekSetWriteWordHandler(0, rohga_main_write_word);
- SekSetWriteByteHandler(0, rohga_main_write_byte);
- SekSetReadWordHandler(0, rohga_main_read_word);
- SekSetReadByteHandler(0, rohga_main_read_byte);
- SekClose();
-
- deco16SoundInit(DrvHucROM, DrvHucRAM, 2685000, 0, DrvYM2151WritePort, 0.80, 1006875, 1.00, 2013750, 0.40);
- BurnYM2151SetRoute(BURN_SND_YM2151_YM2151_ROUTE_1, 0.80, BURN_SND_ROUTE_LEFT);
- BurnYM2151SetRoute(BURN_SND_YM2151_YM2151_ROUTE_2, 0.80, BURN_SND_ROUTE_RIGHT);
-
- GenericTilesInit();
-
- DrvDoReset();
-
- return 0;
-}
-
-static INT32 HangzoInit()
-{
- BurnSetRefreshRate(58.00);
-
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(Drv68KROM + 0x000001, 0, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x000000, 1, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x040001, 2, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x040000, 3, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x080001, 4, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x080000, 5, 2)) return 1;
-
- if (BurnLoadRom(DrvHucROM + 0x000000, 6, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM1 + 0x000000, 7, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x080000, 8, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM2 + 0x000000, 9, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x100000, 10, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM3 + 0x000000, 11, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM3 + 0x100000, 12, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM3 + 0x200000, 13, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM3 + 0x300000, 14, 1)) return 1;
-
- if (BurnLoadRom(DrvSndROM0 + 0x040000, 15, 1)) return 1;
-
- if (BurnLoadRom(DrvSndROM1 + 0x040000, 16, 1)) return 1;
-
- memcpy (DrvGfxROM0 + 0x000000, DrvGfxROM1 + 0x000000, 0x020000);
- memcpy (DrvGfxROM0 + 0x020000, DrvGfxROM1 + 0x080000, 0x020000);
-
- deco16_tile_decode(DrvGfxROM0, DrvGfxROM0, 0x040000, 1);
- deco16_tile_decode(DrvGfxROM1, DrvGfxROM1, 0x100000, 0);
- deco16_tile_decode(DrvGfxROM2, DrvGfxROM2, 0x200000, 0);
- DrvSpriteDecode();
- }
-
- deco16Init(0, 0, 1);
- deco16_set_graphics(DrvGfxROM0, 0x40000 * 2, DrvGfxROM1, 0x100000 * 2, DrvGfxROM2, 0x200000 * 2);
- deco16_set_color_base(2, 512);
- deco16_set_color_base(3, 768);
- deco16_set_global_offsets(0, 8);
- deco16_set_bank_callback(0, rohga_bank_callback);
- deco16_set_bank_callback(1, rohga_bank_callback);
- deco16_set_bank_callback(2, rohga_bank_callback);
- deco16_set_bank_callback(3, rohga_bank_callback);
-
- // 146_104 prot
- deco_104_init();
- deco_146_104_set_port_a_cb(deco_104_port_a_cb);
- deco_146_104_set_port_b_cb(deco_104_port_b_cb);
- deco_146_104_set_port_c_cb(deco_104_port_c_cb);
- deco_146_104_set_soundlatch_cb(soundlatch_write);
-
- SekInit(0, 0x68000);
- SekOpen(0);
- SekMapMemory(Drv68KROM, 0x000000, 0x1fffff, MAP_ROM);
- SekMapMemory(deco16_pf_ram[0], 0x3c0000, 0x3c1fff, MAP_RAM);
- SekMapMemory(deco16_pf_ram[1], 0x3c2000, 0x3c2fff, MAP_RAM);
- SekMapMemory(deco16_pf_ram[2], 0x3c4000, 0x3c4fff, MAP_RAM);
- SekMapMemory(deco16_pf_ram[3], 0x3c6000, 0x3c6fff, MAP_RAM);
- SekMapMemory(deco16_pf_rowscroll[0], 0x3c8000, 0x3c9fff, MAP_RAM);
- SekMapMemory(deco16_pf_rowscroll[1], 0x3ca000, 0x3cafff, MAP_RAM);
- SekMapMemory(deco16_pf_rowscroll[1], 0x3cb000, 0x3cbfff, MAP_RAM);
- SekMapMemory(deco16_pf_rowscroll[2], 0x3cc000, 0x3ccfff, MAP_RAM);
- SekMapMemory(deco16_pf_rowscroll[2], 0x3cd000, 0x3cdfff, MAP_RAM);
- SekMapMemory(deco16_pf_rowscroll[3], 0x3ce000, 0x3cefff, MAP_RAM);
- SekMapMemory(deco16_pf_rowscroll[3], 0x3cf000, 0x3cffff, MAP_RAM);
- SekMapMemory(DrvSprRAM, 0x3d0000, 0x3d07ff, MAP_RAM);
- SekMapMemory(DrvPalRAM, 0x3e0000, 0x3e1fff, MAP_RAM);
- SekMapMemory(DrvPalRAM, 0x3e2000, 0x3e3fff, MAP_RAM);
- SekMapMemory(Drv68KRAM, 0x3f0000, 0x3f3fff, MAP_RAM);
- SekSetWriteWordHandler(0, rohga_main_write_word);
- SekSetWriteByteHandler(0, rohga_main_write_byte);
- SekSetReadWordHandler(0, rohga_main_read_word);
- SekSetReadByteHandler(0, rohga_main_read_byte);
- SekClose();
-
- deco16SoundInit(DrvHucROM, DrvHucRAM, 2685000, 0, DrvYM2151WritePort, 0.80, 1006875, 1.00, 2013750, 0.40);
- BurnYM2151SetRoute(BURN_SND_YM2151_YM2151_ROUTE_1, 0.80, BURN_SND_ROUTE_LEFT);
- BurnYM2151SetRoute(BURN_SND_YM2151_YM2151_ROUTE_2, 0.80, BURN_SND_ROUTE_RIGHT);
-
- DrvHangzo = 1;
-
- GenericTilesInit();
-
- DrvDoReset();
-
- return 0;
-}
-
-static INT32 NitrobalInit()
-{
- BurnSetRefreshRate(58.00);
-
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(Drv68KROM + 0x000001, 0, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x000000, 1, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x040001, 2, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x040000, 3, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x080001, 4, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x080000, 5, 2)) return 1;
-
- if (BurnLoadRom(DrvHucROM + 0x000000, 6, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x000000, 7, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x000001, 8, 2)) return 1;
-
- if (BurnLoadRom(DrvGfxROM1 + 0x000000, 9, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x080000, 10, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM2 + 0x000000, 11, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x100000, 12, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM3 + 0x000000, 13, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM3 + 0x000001, 14, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM3 + 0x200000, 15, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM3 + 0x200001, 16, 2)) return 1;
- BurnByteswap(DrvGfxROM3, 0x400000);
-
- if (BurnLoadRom(DrvGfxROM4 + 0x000000, 17, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM4 + 0x000001, 18, 2)) return 1;
- BurnByteswap(DrvGfxROM4, 0x080000);
-
- if (BurnLoadRom(DrvSndROM0 + 0x040000, 19, 1)) return 1;
-
- if (BurnLoadRom(DrvSndROM1 + 0x040000, 20, 1)) return 1;
-
- deco56_decrypt_gfx(DrvGfxROM0, 0x020000);
- deco56_decrypt_gfx(DrvGfxROM1, 0x100000);
- deco74_decrypt_gfx(DrvGfxROM2, 0x200000);
-
- deco16_tile_decode(DrvGfxROM0, DrvGfxROM0, 0x020000, 1);
- deco16_tile_decode(DrvGfxROM1, DrvGfxROM1, 0x100000, 0);
- deco16_tile_decode(DrvGfxROM2, DrvGfxROM2, 0x200000, 0);
- deco16_sprite_decode(DrvGfxROM3, 0x400000);
- deco16_sprite_decode(DrvGfxROM4, 0x080000);
- }
-
- deco16Init(0, 0, 0);
- deco16_set_graphics(DrvGfxROM0, 0x20000 * 2, DrvGfxROM1, 0x100000 * 2, DrvGfxROM2, 0x200000 * 2);
- deco16_set_color_base(2, 512);
- deco16_set_color_mask(2, 0);
- deco16_set_color_base(3, 512);
- deco16_set_color_mask(3, 0);
- deco16_set_global_offsets(0, 8);
- deco16_set_bank_callback(0, rohga_bank_callback);
- deco16_set_bank_callback(1, rohga_bank_callback);
- deco16_set_bank_callback(2, rohga_bank_callback);
- deco16_set_bank_callback(3, rohga_bank_callback);
-
- // 146_104 prot
- deco_146_init();
- deco_146_104_set_interface_scramble_reverse();
- deco_146_104_set_use_magic_read_address_xor(1);
- deco_146_104_set_port_a_cb(deco_104_port_a_cb);
- deco_146_104_set_port_b_cb(deco_104_port_b_cb);
- deco_146_104_set_port_c_cb(deco_104_port_c_cb);
- deco_146_104_set_soundlatch_cb(soundlatch_write);
-
- SekInit(0, 0x68000);
- SekOpen(0);
- SekMapMemory(Drv68KROM, 0x000000, 0x1fffff, MAP_ROM);
- SekMapMemory(deco16_pf_ram[0], 0x200000, 0x200fff, MAP_RAM);
- SekMapMemory(deco16_pf_ram[0], 0x201000, 0x201fff, MAP_RAM);
- SekMapMemory(deco16_pf_ram[1], 0x202000, 0x2027ff, MAP_RAM);
- SekMapMemory(deco16_pf_ram[1], 0x202800, 0x202fff, MAP_RAM);
- SekMapMemory(deco16_pf_ram[2], 0x208000, 0x2087ff, MAP_RAM);
- SekMapMemory(deco16_pf_ram[2], 0x208800, 0x208fff, MAP_RAM);
- SekMapMemory(deco16_pf_ram[3], 0x20a000, 0x20a7ff, MAP_RAM);
- SekMapMemory(deco16_pf_ram[3], 0x20a800, 0x20afff, MAP_RAM);
- SekMapMemory(deco16_pf_rowscroll[0], 0x204000, 0x2047ff, MAP_RAM);
- SekMapMemory(deco16_pf_rowscroll[1], 0x206000, 0x2067ff, MAP_RAM);
- SekMapMemory(deco16_pf_rowscroll[2], 0x20c000, 0x20c7ff, MAP_RAM);
- SekMapMemory(deco16_pf_rowscroll[3], 0x20e000, 0x20e7ff, MAP_RAM);
- SekMapMemory(DrvSprRAM, 0x340000, 0x3407ff, MAP_RAM);
- SekMapMemory(DrvSprRAM2, 0x360000, 0x3607ff, MAP_RAM);
- SekMapMemory(DrvPalRAM, 0x380000, 0x381fff, MAP_RAM);
- SekMapMemory(Drv68KRAM, 0xfec000, 0xff3fff, MAP_RAM);
- SekMapMemory(Drv68KRAM + 0x8000, 0xff8000, 0xffffff, MAP_RAM);
- SekSetWriteWordHandler(0, wizdfire_main_write_word);
- SekSetWriteByteHandler(0, wizdfire_main_write_byte);
- SekSetReadWordHandler(0, wizdfire_main_read_word);
- SekSetReadByteHandler(0, wizdfire_main_read_byte);
- SekClose();
-
- deco16SoundInit(DrvHucROM, DrvHucRAM, 2685000, 0, DrvYM2151WritePort, 0.80, 1006875, 1.00, 2013750, 0.40);
- BurnYM2151SetRoute(BURN_SND_YM2151_YM2151_ROUTE_1, 0.80, BURN_SND_ROUTE_LEFT);
- BurnYM2151SetRoute(BURN_SND_YM2151_YM2151_ROUTE_2, 0.80, BURN_SND_ROUTE_RIGHT);
-
- GenericTilesInit();
-
- DrvDoReset();
-
- return 0;
-}
-
-static INT32 DrvExit()
-{
- GenericTilesExit();
- deco16Exit();
-
- SekExit();
-
- deco16SoundExit();
-
- BurnFree (AllMem);
-
- DrvIsWizdfireEnglish = 0;
- DrvHangzo = 0;
-
- return 0;
-}
-
-static void rohga_draw_sprites(UINT8 *ram, INT32 is_schmeisr)
-{
- UINT16 *spriteptr = (UINT16*)ram;
-
- for (INT32 offs = 0x400 - 4; offs >= 0; offs -= 4)
- {
- INT32 inc, mult, pri = 0;
- INT32 sprite = BURN_ENDIAN_SWAP_INT16(spriteptr[offs + 1]);
-
- if (!sprite) continue;
-
- INT32 x = BURN_ENDIAN_SWAP_INT16(spriteptr[offs + 2]);
-
- switch (x & 0x6000)
- {
- case 0x0000: pri = 0; break;
- case 0x4000: pri = 0xf0; break;
- case 0x6000: pri = 0xf0 | 0xcc; break;
- case 0x2000: pri = 0; break;
- }
-
- INT32 y = BURN_ENDIAN_SWAP_INT16(spriteptr[offs]);
-
- if ((y & 0x1000) && (nCurrentFrame & 1)) continue; // flash
-
- INT32 colour = (((x >> 9) & 0xf) << 6);
- if (is_schmeisr) colour += ((x & 0x8000) >> 15) << 4;
-
- INT32 fx = y & 0x2000;
- INT32 fy = y & 0x4000;
- INT32 multi = (1 << ((y & 0x0600) >> 9)) - 1;
-
- x = x & 0x01ff;
- y = y & 0x01ff;
- if (x >= 320) x -= 512;
- if (y >= 256) y -= 512;
-
- sprite &= ~multi;
- if (fy)
- inc = -1;
- else
- {
- sprite += multi;
- inc = 1;
- }
-
- if (*flipscreen)
- {
- x = 304 - x;
- y = 240 - y;
- if (fx) fx = 0; else fx = 1;
- if (fy) fy = 0; else fy = 1;
- mult = -16;
- }
- else
- mult = +16;
-
- while (multi >= 0)
- {
- deco16_draw_prio_sprite(pTransDraw, DrvGfxROM3, (sprite - multi * inc) & 0x7fff, colour + 0x400, x, y + mult * multi, fx, fy, pri);
-
- multi--;
- }
- }
-}
-
-static void wizdfire_draw_sprites(UINT8 *ram, UINT8 *gfx, INT32 coloff, INT32 mode, INT32 bank)
-{
- UINT16 *spriteptr = (UINT16*)ram;
-
- for (INT32 offs = 0; offs < 0x400; offs += 4)
- {
- INT32 inc, mult, prio = 0, alpha = 0xff;
-
- INT32 sprite = BURN_ENDIAN_SWAP_INT16(spriteptr[offs + 1]);
- if (!sprite) continue;
-
- INT32 x = BURN_ENDIAN_SWAP_INT16(spriteptr[offs + 2]);
-
- switch (mode)
- {
- case 4:
- if ((x & 0xc000) != 0xc000)
- continue;
- prio = 0x08;
- break;
- case 3:
- if ((x & 0xc000) != 0x8000)
- continue;
- prio = 0x10;
- break;
- case 2:
- if ((x & 0x8000) != 0x8000)
- continue;
- prio = 0x20;
- break;
- case 1:
- case 0:
- default:
- if ((x & 0x8000) != 0)
- continue;
- prio = 0x40;
- break;
- }
-
- INT32 y = BURN_ENDIAN_SWAP_INT16(spriteptr[offs]);
-
- if ((y & 0x1000) && (nCurrentFrame & 1)) continue; // flash
-
- INT32 colour = (x >> 9) & 0x1f;
-
- if (bank == 4 && colour & 0x10)
- {
- alpha = 0x80;
- colour &= 0xf;
- }
-
- INT32 fx = y & 0x2000;
- INT32 fy = y & 0x4000;
- INT32 multi = (1 << ((y & 0x0600) >> 9)) - 1;
-
- x = x & 0x01ff;
- y = y & 0x01ff;
- if (x >= 320) x -= 512;
- if (y >= 256) y -= 512;
-
- sprite &= ~multi;
- if (fy)
- inc = -1;
- else
- {
- sprite += multi;
- inc = 1;
- }
-
- if (*flipscreen)
- {
- x = 304 - x;
- y = 240 - y;
- mult = -16;
- } else {
- mult = +16;
- fx = !fx;
- fy = !fy;
- }
-
- if (bank == 3) {
- sprite &= 0x7fff;
- } else {
- sprite &= 0x0fff;
- }
-
- while (multi >= 0)
- {
- deco16_draw_prio_sprite(pTransDraw, gfx, sprite - multi * inc, (colour << 4) + coloff, x, y + mult * multi, fx, fy, -1);
-#if 0
- drawgfx_alpha(bitmap,cliprect,machine->gfx[bank],
- sprite - multi * inc,
- colour,
- fx,fy,
- x,y + mult * multi,
- 0,alpha);
-#endif
- multi--;
- }
- }
-}
-
-static void nitrobal_draw_sprites(UINT8 *ram, INT32 gfxbank, INT32 alpha_on)
-{
- UINT16 *spriteptr = (UINT16*)ram;
-
- INT32 offs = 0x3fc;
- INT32 end = -4;
- INT32 inc = -4;
- UINT8 *gfx;
-
- while (offs != end)
- {
- INT32 x, y, sprite, colour, fx, fy, w, h, sx, sy, x_mult, y_mult, tilemap_pri, sprite_pri, coloff;
- INT32 alpha = 0xff;
-
- sprite = BURN_ENDIAN_SWAP_INT16(spriteptr[offs + 3]);
- if (!sprite)
- {
- offs += inc;
- continue;
- }
-
- sx = BURN_ENDIAN_SWAP_INT16(spriteptr[offs + 1]);
-
- h = (BURN_ENDIAN_SWAP_INT16(spriteptr[offs + 2]) & 0xf000) >> 12;
- w = (BURN_ENDIAN_SWAP_INT16(spriteptr[offs + 2]) & 0x0f00) >> 8;
-
- sy = BURN_ENDIAN_SWAP_INT16(spriteptr[offs]);
- if ((sy & 0x2000) && (nCurrentFrame & 1))
- {
- offs += inc;
- continue;
- }
-
- colour = (BURN_ENDIAN_SWAP_INT16(spriteptr[offs + 2]) >> 0) & 0x1f;
-
- if (gfxbank == 3)
- {
- switch (BURN_ENDIAN_SWAP_INT16(spriteptr[offs + 2]) & 0xe0)
- { // deco16_priority == 0x20 in alien world, 0 in ghost town
- case 0xc0: tilemap_pri = 8; break;
- case 0x80: tilemap_pri = 64; break; // was 32, fixes horseshoe "ring" under bouncers in first level
- case 0x20: tilemap_pri = 32; break;
- case 0x40: tilemap_pri = 8; break;
- case 0xa0: tilemap_pri = (deco16_priority) ? 8 : 32; break; // was 32
- case 0x00: tilemap_pri = 72; break; // was 128, this and above fixes the archways over the player in alien world
- default: tilemap_pri = 128; break;
- }
-
- sprite_pri = 1;
-
- gfx = DrvGfxROM3;
- coloff = 0x400;
- }
- else
- {
- if (deco16_priority)
- tilemap_pri = 8;
- else
- tilemap_pri = 64;
-
- sprite_pri = 2;
-
- gfx = DrvGfxROM4;
- coloff = 0x600;
-
- if (colour & 0x10) {
- alpha = 0x80;
- colour &= 0x0f;
- }
- }
-
- fx = (BURN_ENDIAN_SWAP_INT16(spriteptr[offs + 0]) & 0x4000);
- fy = (BURN_ENDIAN_SWAP_INT16(spriteptr[offs + 0]) & 0x8000);
-
- if (!*flipscreen)
- {
- if (fx) fx = 0; else fx = 1;
- if (fy) fy = 0; else fy = 1;
-
- sx = sx & 0x01ff;
- sy = sy & 0x01ff;
- if (sx > 0x180) sx = -(0x200 - sx);
- if (sy > 0x180) sy = -(0x200 - sy);
-
- if (fx) { x_mult = -16; sx += 16 * w; } else { x_mult = 16; sx -= 16; }
- if (fy) { y_mult = -16; sy += 16 * h; } else { y_mult = 16; sy -= 16; }
- }
- else
- {
- sx = sx & 0x01ff;
- sy = sy & 0x01ff;
- if (sx & 0x100) sx = -(0x100 - (sx & 0xff));
- if (sy & 0x100) sy = -(0x100 - (sy & 0xff));
- sx = 304 - sx;
- sy = 240 - sy;
- if (sx >= 432) sx -= 512;
- if (sy >= 384) sy -= 512;
- if (fx) { x_mult = -16; sx += 16; } else { x_mult = 16; sx -= 16 * w; }
- if (fy) { y_mult = -16; sy += 16; } else { y_mult = 16; sy -= 16 * h; }
- }
-
- if (gfxbank == 3) {
- sprite &= 0x7fff;
- } else {
- sprite &= 0x0fff;
- }
-
- for (x = 0; x < w; x++)
- {
- for (y = 0; y < h; y++)
- {
- if (!alpha_on) {
- deco16_draw_prio_sprite_nitrobal(pTransDraw, gfx, sprite + y + h * x, (colour << 4) + coloff, sx + x_mult * (w-x), sy + y_mult * (h-y), fx, fy, tilemap_pri, sprite_pri);
- } else {
- deco16_draw_alphaprio_sprite(DrvPalette, gfx, sprite + y + h * x, (colour << 4) + coloff, sx + x_mult * (w-x), sy + y_mult * (h-y), fx, fy, tilemap_pri, sprite_pri, alpha);
- }
- }
- }
-
- offs += inc;
- }
-}
-
-static void draw_combined_playfield_step1()
-{
- UINT8 *tptr = deco16_pf_rowscroll[3];
- deco16_pf_rowscroll[3] = deco16_pf_rowscroll[2];
-
- deco16_draw_layer(2, tempdraw[0], 0x10000);
- deco16_draw_layer(3, tempdraw[1], 0x10000);
-
- deco16_pf_rowscroll[3] = tptr;
-}
-
-static void draw_combined_playfield(INT32 color, INT32 priority) // opaque
-{
- UINT16 *src0 = tempdraw[0];
- UINT16 *src1 = tempdraw[1];
- UINT16 *dest = pTransDraw;
- UINT8 *prio = deco16_prio_map;
-
- for (INT32 y = 0; y < nScreenHeight; y++) {
- for (INT32 x = 0; x < nScreenWidth; x++) {
- dest[x] = color | (src0[x] & 0x0f) | ((src1[x] & 0x0f) << 4);
- prio[x] = priority;
- }
- src0 += nScreenWidth;
- src1 += nScreenWidth;
- dest += nScreenWidth;
- prio += 512;
- }
-}
-
-static void update_rohga(INT32 is_schmeisr)
-{
-// if (DrvRecalc) {
- deco16_palette_recalculate(DrvPalette, DrvPalRAM);
- DrvRecalc = 0;
-// }
-
- deco16_pf12_update();
- deco16_pf34_update();
-
- for (INT32 i = 0; i < nScreenWidth * nScreenHeight; i++) {
- pTransDraw[i] = 0x300;
- }
-
- if ((deco16_priority & 0x03) == 0) {
- draw_combined_playfield_step1();
- }
-
- deco16_clear_prio_map();
-
- switch (deco16_priority & 3)
- {
- case 0:
- if (deco16_priority & 4)
- {
- draw_combined_playfield(0x200, DECO16_LAYER_PRIORITY(3));
- }
- else
- {
- deco16_draw_layer(3, pTransDraw, DECO16_LAYER_OPAQUE | DECO16_LAYER_PRIORITY(0x01));
- deco16_draw_layer(2, pTransDraw, DECO16_LAYER_PRIORITY(0x02));
- }
- deco16_draw_layer(1, pTransDraw, DECO16_LAYER_PRIORITY(0x04));
- break;
-
- case 1:
- deco16_draw_layer(3, pTransDraw, DECO16_LAYER_OPAQUE | DECO16_LAYER_PRIORITY(0x01));
- deco16_draw_layer(1, pTransDraw, DECO16_LAYER_PRIORITY(0x02));
- deco16_draw_layer(2, pTransDraw, DECO16_LAYER_PRIORITY(0x04));
- break;
-
- case 2:
- deco16_draw_layer(1, pTransDraw, DECO16_LAYER_OPAQUE | DECO16_LAYER_PRIORITY(0x01));
- deco16_draw_layer(3, pTransDraw, DECO16_LAYER_PRIORITY(0x02));
- deco16_draw_layer(2, pTransDraw, DECO16_LAYER_PRIORITY(0x04));
- break;
- }
-
- if (nSpriteEnable & 1) rohga_draw_sprites(DrvSprBuf2, is_schmeisr);
-
- deco16_draw_layer(0, pTransDraw, 0);
-
- BurnTransferCopy(DrvPalette);
-}
-
-static INT32 RohgaDraw()
-{
- update_rohga(0);
-
- return 0;
-}
-
-static INT32 SchmeisrDraw()
-{
- update_rohga(1);
-
- return 0;
-}
-
-static INT32 WizdfireDraw()
-{
-// if (DrvRecalc) {
- deco16_palette_recalculate(DrvPalette, DrvPalRAM);
- DrvRecalc = 0;
-// }
-
- deco16_pf12_update();
- deco16_pf34_update();
-
- for (INT32 i = 0; i < nScreenWidth * nScreenHeight; i++) {
- pTransDraw[i] = 0x200;
- }
-
- if (nBurnLayer & 1) deco16_draw_layer(3, pTransDraw, DECO16_LAYER_OPAQUE);
-
- if (nSpriteEnable & 1) wizdfire_draw_sprites(DrvSprBuf, DrvGfxROM3, 0x400, 4, 3);
-
- if (nBurnLayer & 2) deco16_draw_layer(1, pTransDraw, 0);
-
- if (nSpriteEnable & 2) wizdfire_draw_sprites(DrvSprBuf, DrvGfxROM3, 0x400, 3, 3);
-
- if ((deco16_priority & 0x1f) == 0x1f) {
- if (nBurnLayer & 4) deco16_draw_layer(2, pTransDraw, 0); // tilemap draw alpha 0x80...
- } else {
- if (nBurnLayer & 4) deco16_draw_layer(2, pTransDraw, 0);
- }
-
- if (nSpriteEnable & 4) wizdfire_draw_sprites(DrvSprBuf, DrvGfxROM3, 0x400, 0, 3);
- if (nSpriteEnable & 8) wizdfire_draw_sprites(DrvSprBuf2, DrvGfxROM4, 0x600, 2, 4);
- if (nSpriteEnable & 16) wizdfire_draw_sprites(DrvSprBuf2, DrvGfxROM4, 0x600, 1, 4);
-
- if (nBurnLayer & 8) deco16_draw_layer(0, pTransDraw, 0);
-
- BurnTransferCopy(DrvPalette);
-
- return 0;
-}
-
-static INT32 NitrobalDraw()
-{
-// if (DrvRecalc) {
- deco16_palette_recalculate(DrvPalette, DrvPalRAM);
- DrvRecalc = 0;
-// }
-
- deco16_pf12_update();
- deco16_pf34_update();
-
- for (INT32 i = 0; i < nScreenWidth * nScreenHeight; i++) {
- pTransDraw[i] = 0x200;
- }
-
- deco16_clear_prio_map();
-
- draw_combined_playfield_step1();
-
- draw_combined_playfield(0x200, 0);
-
- deco16_draw_layer(1, pTransDraw, 16);
-
- if (nBurnBpp != 4) { // regular (non-alpha) draw for anything !32bpp
- nitrobal_draw_sprites(DrvSprBuf , 3, 0);
- nitrobal_draw_sprites(DrvSprBuf2, 4, 0);
- }
-
- deco16_draw_layer(0, pTransDraw, DECO16_LAYER_PRIORITY(0xff));
-
- BurnTransferCopy(DrvPalette);
-
- if (nBurnBpp == 4) { // draw alpha sprites if 32bpp
- nitrobal_draw_sprites(DrvSprBuf , 3, 1);
- nitrobal_draw_sprites(DrvSprBuf2, 4, 1);
- }
-
- return 0;
-}
-
-static INT32 DrvFrame()
-{
- if (DrvReset) {
- DrvDoReset();
- }
-
- {
- memset (DrvInputs, 0xff, 4 * sizeof(UINT16));
- for (INT32 i = 0; i < 16; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- DrvInputs[3] ^= (DrvJoy3[i] & 1) << i;
- }
- DrvInputs[2] = (DrvDips[1] << 8) | (DrvDips[0] << 0);
- }
-
- INT32 nInterleave = 256;
- INT32 nSoundBufferPos = 0;
- INT32 nCyclesTotal[2] = { 14000000 / 58, 2685000 / 58 };
- INT32 nCyclesDone[2] = { 0, 0 };
-
- h6280NewFrame();
-
- SekOpen(0);
- h6280Open(0);
-
- deco16_vblank = 0;
-
- for (INT32 i = 0; i < nInterleave; i++)
- {
- nCyclesDone[0] += SekRun(nCyclesTotal[0] / nInterleave);
- nCyclesDone[1] += h6280Run(nCyclesTotal[1] / nInterleave);
-
- if (i == 248) {
- SekSetIRQLine(6, CPU_IRQSTATUS_ACK);
- deco16_vblank = 0x08;
- }
-
- if (pBurnSoundOut && i%8==7) { // rohga is really picky regarding ym2151 timing.
- INT32 nSegmentLength = nBurnSoundLen / (nInterleave/8);
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- deco16SoundUpdate(pSoundBuf, nSegmentLength);
- nSoundBufferPos += nSegmentLength;
- }
- }
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
-
- if (nSegmentLength) {
- deco16SoundUpdate(pSoundBuf, nSegmentLength);
- }
- }
-
- h6280Close();
- SekClose();
-
- if (pBurnDraw) {
- BurnDrvRedraw();
- }
-
- return 0;
-}
-
-static INT32 DrvScan(INT32 nAction, INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin != NULL) {
- *pnMin = 0x029722;
- }
-
- if (nAction & ACB_MEMORY_RAM) {
- memset(&ba, 0, sizeof(ba));
- ba.Data = AllRam;
- ba.nLen = RamEnd-AllRam;
- ba.szName = "All Ram";
- BurnAcb(&ba);
- }
-
- if (nAction & ACB_DRIVER_DATA) {
- SekScan(nAction);
-
- deco16SoundScan(nAction, pnMin);
-
- deco16Scan();
-
- SCAN_VAR(DrvOkiBank);
-
- INT32 bank = DrvOkiBank;
- DrvOkiBank = -1;
- DrvYM2151WritePort(0, bank);
- }
-
- return 0;
-}
-
-
-// Rohga Armor Force (Asia/Europe v5.0)
-
-static struct BurnRomInfo rohgaRomDesc[] = {
- { "ht-00-1.2a", 0x040000, 0x1ed84a67, 1 | BRF_PRG | BRF_ESS }, // 0 68k Code
- { "ht-03-1.2d", 0x040000, 0x84e7ebf6, 1 | BRF_PRG | BRF_ESS }, // 1
- { "mam00.8a", 0x080000, 0x0fa440a6, 1 | BRF_PRG | BRF_ESS }, // 2
- { "mam07.8d", 0x080000, 0xf8bc7f20, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "ha04.18p", 0x010000, 0xeb6608eb, 2 | BRF_PRG | BRF_ESS }, // 4 Huc6280 Code
-
- { "ha01.13a", 0x010000, 0xfb8f8519, 3 | BRF_GRA }, // 5 Characters
- { "ha02.14a", 0x010000, 0xaa47c17f, 3 | BRF_GRA }, // 6
-
- { "mam01.10a", 0x080000, 0xdbf4fbcc, 4 | BRF_GRA }, // 7 Foreground Tiles
- { "mam02.11a", 0x080000, 0xb1fac481, 4 | BRF_GRA }, // 8
-
- { "mam08.17d", 0x100000, 0xca97a83f, 5 | BRF_GRA }, // 9 Background Tiles
- { "mam09.18d", 0x100000, 0x3f57d56f, 5 | BRF_GRA }, // 10
-
- { "mam05.19a", 0x100000, 0x307a2cd1, 6 | BRF_GRA }, // 11 Sprites
- { "mam06.20a", 0x100000, 0xa1119a2d, 6 | BRF_GRA }, // 12
- { "mam10.19d", 0x100000, 0x99f48f9f, 6 | BRF_GRA }, // 13
- { "mam11.20d", 0x100000, 0xc3f12859, 6 | BRF_GRA }, // 14
- { "mam03.17a", 0x100000, 0xfc4dfd48, 6 | BRF_GRA }, // 15
- { "mam04.18a", 0x100000, 0x7d3b38bf, 6 | BRF_GRA }, // 16
-
- { "mam13.15p", 0x080000, 0x525b9461, 8 | BRF_SND }, // 17 OKI M6295 Samples 0
-
- { "mam12.14p", 0x080000, 0x6f00b791, 7 | BRF_SND }, // 18 OKI M6295 Samples 1
-
- { "hb-00.11p", 0x000200, 0xb7a7baad, 0 | BRF_OPT }, // 19 Unused PROMs
-};
-
-STD_ROM_PICK(rohga)
-STD_ROM_FN(rohga)
-
-struct BurnDriver BurnDrvRohga = {
- "rohga", NULL, NULL, NULL, "1991",
- "Rohga Armor Force (Asia/Europe v5.0)\0", NULL, "Data East Corporation", "DECO IC16",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_PREFIX_DATAEAST, GBF_SCRFIGHT | GBF_PLATFORM, 0,
- NULL, rohgaRomInfo, rohgaRomName, NULL, NULL, RohgaInputInfo, RohgaDIPInfo,
- RohgaInit, DrvExit, DrvFrame, RohgaDraw, DrvScan, &DrvRecalc, 0x800,
- 320, 240, 4, 3
-};
-
-
-// Rohga Armor Force (Asia/Europe v3.0 Set 1)
-
-static struct BurnRomInfo rohga1RomDesc[] = {
- { "jd00.bin", 0x040000, 0xe046c77a, 1 | BRF_PRG | BRF_ESS }, // 0 68k Code
- { "jd03.bin", 0x040000, 0x2c5120b8, 1 | BRF_PRG | BRF_ESS }, // 1
- { "mam00.8a", 0x080000, 0x0fa440a6, 1 | BRF_PRG | BRF_ESS }, // 2
- { "mam07.8d", 0x080000, 0xf8bc7f20, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "ha04.18p", 0x010000, 0xeb6608eb, 2 | BRF_PRG | BRF_ESS }, // 4 Huc6280 Code
-
- { "ha01.13a", 0x010000, 0xfb8f8519, 3 | BRF_GRA }, // 5 Characters
- { "ha02.14a", 0x010000, 0xaa47c17f, 3 | BRF_GRA }, // 6
-
- { "mam01.10a", 0x080000, 0xdbf4fbcc, 4 | BRF_GRA }, // 7 Foreground Tiles
- { "mam02.11a", 0x080000, 0xb1fac481, 4 | BRF_GRA }, // 8
-
- { "mam08.17d", 0x100000, 0xca97a83f, 5 | BRF_GRA }, // 9 Background Tiles
- { "mam09.18d", 0x100000, 0x3f57d56f, 5 | BRF_GRA }, // 10
-
- { "mam05.19a", 0x100000, 0x307a2cd1, 6 | BRF_GRA }, // 11 Sprites
- { "mam06.20a", 0x100000, 0xa1119a2d, 6 | BRF_GRA }, // 12
- { "mam10.19d", 0x100000, 0x99f48f9f, 6 | BRF_GRA }, // 13
- { "mam11.20d", 0x100000, 0xc3f12859, 6 | BRF_GRA }, // 14
- { "mam03.17a", 0x100000, 0xfc4dfd48, 6 | BRF_GRA }, // 15
- { "mam04.18a", 0x100000, 0x7d3b38bf, 6 | BRF_GRA }, // 16
-
- { "mam13.15p", 0x080000, 0x525b9461, 8 | BRF_SND }, // 17 OKI M6295 Samples 0
-
- { "mam12.14p", 0x080000, 0x6f00b791, 7 | BRF_SND }, // 18 OKI M6295 Samples 1
-
- { "hb-00.11p", 0x000200, 0xb7a7baad, 0 | BRF_OPT }, // 19 Unused PROMs
-};
-
-STD_ROM_PICK(rohga1)
-STD_ROM_FN(rohga1)
-
-struct BurnDriver BurnDrvRohga1 = {
- "rohga1", "rohga", NULL, NULL, "1991",
- "Rohga Armor Force (Asia/Europe v3.0 Set 1)\0", NULL, "Data East Corporation", "DECO IC16",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_DATAEAST, GBF_SCRFIGHT | GBF_PLATFORM, 0,
- NULL, rohga1RomInfo, rohga1RomName, NULL, NULL, RohgaInputInfo, RohgaDIPInfo,
- RohgaInit, DrvExit, DrvFrame, RohgaDraw, DrvScan, &DrvRecalc, 0x800,
- 320, 240, 4, 3
-};
-
-
-// Rohga Armor Force (Asia/Europe v3.0 Set 2)
-
-static struct BurnRomInfo rohga2RomDesc[] = {
- { "hts-00-3.2a", 0x040000, 0x154f02ec, 1 | BRF_PRG | BRF_ESS }, // 0 68k Code
- { "hts-03-3.2d", 0x040000, 0x5e69d3d8, 1 | BRF_PRG | BRF_ESS }, // 1
- { "mam00.8a", 0x080000, 0x0fa440a6, 1 | BRF_PRG | BRF_ESS }, // 2
- { "mam07.8d", 0x080000, 0xf8bc7f20, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "ha04.18p", 0x010000, 0xeb6608eb, 2 | BRF_PRG | BRF_ESS }, // 4 Huc6280 Code
-
- { "ha01.13a", 0x010000, 0xfb8f8519, 3 | BRF_GRA }, // 5 Characters
- { "ha02.14a", 0x010000, 0xaa47c17f, 3 | BRF_GRA }, // 6
-
- { "mam01.10a", 0x080000, 0xdbf4fbcc, 4 | BRF_GRA }, // 7 Foreground Tiles
- { "mam02.11a", 0x080000, 0xb1fac481, 4 | BRF_GRA }, // 8
-
- { "mam08.17d", 0x100000, 0xca97a83f, 5 | BRF_GRA }, // 9 Background Tiles
- { "mam09.18d", 0x100000, 0x3f57d56f, 5 | BRF_GRA }, // 10
-
- { "mam05.19a", 0x100000, 0x307a2cd1, 6 | BRF_GRA }, // 11 Sprites
- { "mam06.20a", 0x100000, 0xa1119a2d, 6 | BRF_GRA }, // 12
- { "mam10.19d", 0x100000, 0x99f48f9f, 6 | BRF_GRA }, // 13
- { "mam11.20d", 0x100000, 0xc3f12859, 6 | BRF_GRA }, // 14
- { "mam03.17a", 0x100000, 0xfc4dfd48, 6 | BRF_GRA }, // 15
- { "mam04.18a", 0x100000, 0x7d3b38bf, 6 | BRF_GRA }, // 16
-
- { "mam13.15p", 0x080000, 0x525b9461, 8 | BRF_SND }, // 17 OKI M6295 Samples 0
-
- { "mam12.14p", 0x080000, 0x6f00b791, 7 | BRF_SND }, // 18 OKI M6295 Samples 1
-
- { "hb-00.11p", 0x000200, 0xb7a7baad, 0 | BRF_OPT }, // 19 Unused PROMs
-};
-
-STD_ROM_PICK(rohga2)
-STD_ROM_FN(rohga2)
-
-struct BurnDriver BurnDrvRohga2 = {
- "rohga2", "rohga", NULL, NULL, "1991",
- "Rohga Armor Force (Asia/Europe v3.0 Set 2)\0", NULL, "Data East Corporation", "DECO IC16",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_DATAEAST, GBF_SCRFIGHT | GBF_PLATFORM, 0,
- NULL, rohga2RomInfo, rohga2RomName, NULL, NULL, RohgaInputInfo, RohgaDIPInfo,
- RohgaInit, DrvExit, DrvFrame, RohgaDraw, DrvScan, &DrvRecalc, 0x800,
- 320, 240, 4, 3
-};
-
-
-// Rohga Armor Force (Hong Kong v3.0)
-
-static struct BurnRomInfo rohgahRomDesc[] = {
- { "jd00-2.2a", 0x040000, 0xec70646a, 1 | BRF_PRG | BRF_ESS }, // 0 68k Code
- { "jd03-2.2d", 0x040000, 0x11d4c9a2, 1 | BRF_PRG | BRF_ESS }, // 1
- { "mam00.8a", 0x080000, 0x0fa440a6, 1 | BRF_PRG | BRF_ESS }, // 2
- { "mam07.8d", 0x080000, 0xf8bc7f20, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "ha04.18p", 0x010000, 0xeb6608eb, 2 | BRF_PRG | BRF_ESS }, // 4 Huc6280 Code
-
- { "ha01.13a", 0x010000, 0xfb8f8519, 3 | BRF_GRA }, // 5 Characters
- { "ha02.14a", 0x010000, 0xaa47c17f, 3 | BRF_GRA }, // 6
-
- { "mam01.10a", 0x080000, 0xdbf4fbcc, 4 | BRF_GRA }, // 7 Foreground Tiles
- { "mam02.11a", 0x080000, 0xb1fac481, 4 | BRF_GRA }, // 8
-
- { "mam08.17d", 0x100000, 0xca97a83f, 5 | BRF_GRA }, // 9 Background Tiles
- { "mam09.18d", 0x100000, 0x3f57d56f, 5 | BRF_GRA }, // 10
-
- { "mam05.19a", 0x100000, 0x307a2cd1, 6 | BRF_GRA }, // 11 Sprites
- { "mam06.20a", 0x100000, 0xa1119a2d, 6 | BRF_GRA }, // 12
- { "mam10.19d", 0x100000, 0x99f48f9f, 6 | BRF_GRA }, // 13
- { "mam11.20d", 0x100000, 0xc3f12859, 6 | BRF_GRA }, // 14
- { "mam03.17a", 0x100000, 0xfc4dfd48, 6 | BRF_GRA }, // 15
- { "mam04.18a", 0x100000, 0x7d3b38bf, 6 | BRF_GRA }, // 16
-
- { "mam13.15p", 0x080000, 0x525b9461, 8 | BRF_SND }, // 17 OKI M6295 Samples 0
-
- { "mam12.14p", 0x080000, 0x6f00b791, 7 | BRF_SND }, // 18 OKI M6295 Samples 1
-
- { "hb-00.11p", 0x000200, 0xb7a7baad, 0 | BRF_OPT }, // 19 Unused PROMs
-};
-
-STD_ROM_PICK(rohgah)
-STD_ROM_FN(rohgah)
-
-struct BurnDriver BurnDrvRohgah = {
- "rohgah", "rohga", NULL, NULL, "1991",
- "Rohga Armor Force (Hong Kong v3.0)\0", NULL, "Data East Corporation", "DECO IC16",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_DATAEAST, GBF_SCRFIGHT | GBF_PLATFORM, 0,
- NULL, rohgahRomInfo, rohgahRomName, NULL, NULL, RohgaInputInfo, RohgaDIPInfo,
- RohgaInit, DrvExit, DrvFrame, RohgaDraw, DrvScan, &DrvRecalc, 0x800,
- 320, 240, 4, 3
-};
-
-
-// Rohga Armor Force (US v1.0)
-
-static struct BurnRomInfo rohgauRomDesc[] = {
- { "ha00.2a", 0x040000, 0xd8d13052, 1 | BRF_PRG | BRF_ESS }, // 0 68k Code
- { "ha03.2d", 0x040000, 0x5f683bbf, 1 | BRF_PRG | BRF_ESS }, // 1
- { "mam00.8a", 0x080000, 0x0fa440a6, 1 | BRF_PRG | BRF_ESS }, // 2
- { "mam07.8d", 0x080000, 0xf8bc7f20, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "ha04.18p", 0x010000, 0xeb6608eb, 2 | BRF_PRG | BRF_ESS }, // 4 Huc6280 Code
-
- { "ha01.13a", 0x010000, 0xfb8f8519, 3 | BRF_GRA }, // 5 Characters
- { "ha02.14a", 0x010000, 0xaa47c17f, 3 | BRF_GRA }, // 6
-
- { "mam01.10a", 0x080000, 0xdbf4fbcc, 4 | BRF_GRA }, // 7 Foreground Tiles
- { "mam02.11a", 0x080000, 0xb1fac481, 4 | BRF_GRA }, // 8
-
- { "mam08.17d", 0x100000, 0xca97a83f, 5 | BRF_GRA }, // 9 Background Tiles
- { "mam09.18d", 0x100000, 0x3f57d56f, 5 | BRF_GRA }, // 10
-
- { "mam05.19a", 0x100000, 0x307a2cd1, 6 | BRF_GRA }, // 11 Sprites
- { "mam06.20a", 0x100000, 0xa1119a2d, 6 | BRF_GRA }, // 12
- { "mam10.19d", 0x100000, 0x99f48f9f, 6 | BRF_GRA }, // 13
- { "mam11.20d", 0x100000, 0xc3f12859, 6 | BRF_GRA }, // 14
- { "mam03.17a", 0x100000, 0xfc4dfd48, 6 | BRF_GRA }, // 15
- { "mam04.18a", 0x100000, 0x7d3b38bf, 6 | BRF_GRA }, // 16
-
- { "mam13.15p", 0x080000, 0x525b9461, 8 | BRF_SND }, // 17 OKI M6295 Samples 0
-
- { "mam12.14p", 0x080000, 0x6f00b791, 7 | BRF_SND }, // 18 OKI M6295 Samples 1
-
- { "hb-00.11p", 0x000200, 0xb7a7baad, 0 | BRF_OPT }, // 19 Unused PROMs
-};
-
-STD_ROM_PICK(rohgau)
-STD_ROM_FN(rohgau)
-
-struct BurnDriver BurnDrvRohgau = {
- "rohgau", "rohga", NULL, NULL, "1991",
- "Rohga Armor Force (US v1.0)\0", NULL, "Data East Corporation", "DECO IC16",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_DATAEAST, GBF_SCRFIGHT | GBF_PLATFORM, 0,
- NULL, rohgauRomInfo, rohgauRomName, NULL, NULL, RohgaInputInfo, RohgaDIPInfo,
- RohgaInit, DrvExit, DrvFrame, RohgaDraw, DrvScan, &DrvRecalc, 0x800,
- 320, 240, 4, 3
-};
-
-
-// Wolf Fang -Kuhga 2001- (Japan)
-
-static struct BurnRomInfo wolffangRomDesc[] = {
- { "hw_00-1.2a", 0x040000, 0x69dc611e, 1 | BRF_PRG | BRF_ESS }, // 0 68k Code
- { "hw_03-1.2d", 0x040000, 0xb66d9680, 1 | BRF_PRG | BRF_ESS }, // 1
- { "mam00.8a", 0x080000, 0x0fa440a6, 1 | BRF_PRG | BRF_ESS }, // 2
- { "mam07.8d", 0x080000, 0xf8bc7f20, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "hw_04-.18p", 0x010000, 0xeb6608eb, 2 | BRF_PRG | BRF_ESS }, // 4 Huc6280 Code
-
- { "hw_01-.13a", 0x010000, 0xd9810ca4, 3 | BRF_GRA }, // 5 Characters
- { "hw_02-.14a", 0x010000, 0x2a27ac8e, 3 | BRF_GRA }, // 6
-
- { "mam01.10a", 0x080000, 0xdbf4fbcc, 4 | BRF_GRA }, // 7 Foreground Tiles
- { "mam02.11a", 0x080000, 0xb1fac481, 4 | BRF_GRA }, // 8
-
- { "mam08.17d", 0x100000, 0xca97a83f, 5 | BRF_GRA }, // 9 Background Tiles
- { "mam09.18d", 0x100000, 0x3f57d56f, 5 | BRF_GRA }, // 10
-
- { "mam05.19a", 0x100000, 0x307a2cd1, 6 | BRF_GRA }, // 11 Sprites
- { "mam06.20a", 0x100000, 0xa1119a2d, 6 | BRF_GRA }, // 12
- { "mam10.19d", 0x100000, 0x99f48f9f, 6 | BRF_GRA }, // 13
- { "mam11.20d", 0x100000, 0xc3f12859, 6 | BRF_GRA }, // 14
- { "mam03.17a", 0x100000, 0xfc4dfd48, 6 | BRF_GRA }, // 15
- { "mam04.18a", 0x100000, 0x7d3b38bf, 6 | BRF_GRA }, // 16
-
- { "mam13.15p", 0x080000, 0x525b9461, 8 | BRF_SND }, // 17 OKI M6295 Samples 0
-
- { "mam12.14p", 0x080000, 0x6f00b791, 7 | BRF_SND }, // 18 OKI M6295 Samples 1
-
- { "hb-00.11p", 0x000200, 0xb7a7baad, 0 | BRF_OPT }, // 19 Unused PROMs
-};
-
-STD_ROM_PICK(wolffang)
-STD_ROM_FN(wolffang)
-
-struct BurnDriver BurnDrvWolffang = {
- "wolffang", "rohga", NULL, NULL, "1991",
- "Wolf Fang -Kuhga 2001- (Japan)\0", NULL, "Data East Corporation", "DECO IC16",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_DATAEAST, GBF_SCRFIGHT | GBF_PLATFORM, 0,
- NULL, wolffangRomInfo, wolffangRomName, NULL, NULL, RohgaInputInfo, RohgaDIPInfo,
- RohgaInit, DrvExit, DrvFrame, RohgaDraw, DrvScan, &DrvRecalc, 0x800,
- 320, 240, 4, 3
-};
-
-
-// Wizard Fire (Over Sea v2.1)
-
-static struct BurnRomInfo wizdfireRomDesc[] = {
- { "je-01.3d", 0x020000, 0xb6d62367, 1 | BRF_PRG | BRF_ESS }, // 0 68k Code
- { "je-00.3a", 0x020000, 0xf33de278, 1 | BRF_PRG | BRF_ESS }, // 1
- { "je-03.5d", 0x020000, 0x5217d404, 1 | BRF_PRG | BRF_ESS }, // 2
- { "je-02.5a", 0x020000, 0x36a1ce28, 1 | BRF_PRG | BRF_ESS }, // 3
- { "mas13", 0x080000, 0x7e5256ce, 1 | BRF_PRG | BRF_ESS }, // 4
- { "mas12", 0x080000, 0x005bd499, 1 | BRF_PRG | BRF_ESS }, // 5
-
- { "je-06.20r", 0x010000, 0x79042546, 2 | BRF_PRG | BRF_ESS }, // 6 Huc6280 Code
-
- { "je-04.10d", 0x010000, 0x73cba800, 3 | BRF_GRA }, // 7 Characters
- { "je-05.12d", 0x010000, 0x22e2c49d, 3 | BRF_GRA }, // 8
-
- { "mas00", 0x100000, 0x3d011034, 4 | BRF_GRA }, // 9 Foreground Tiles
- { "mas01", 0x100000, 0x6d0c9d0b, 4 | BRF_GRA }, // 10
-
- { "mas02", 0x080000, 0xaf00e620, 5 | BRF_GRA }, // 11 Background Tiles
- { "mas03", 0x080000, 0x2fe61ea2, 5 | BRF_GRA }, // 12
-
- { "mas04", 0x100000, 0x1e56953b, 6 | BRF_GRA }, // 13 Sprite Bank A
- { "mas05", 0x100000, 0x3826b8f8, 6 | BRF_GRA }, // 14
- { "mas06", 0x100000, 0x3b8bbd45, 6 | BRF_GRA }, // 15
- { "mas07", 0x100000, 0x31303769, 6 | BRF_GRA }, // 16
-
- { "mas08", 0x080000, 0xe224fb7a, 7 | BRF_GRA }, // 17 Sprite Bank B
- { "mas09", 0x080000, 0x5f6deb41, 7 | BRF_GRA }, // 18
-
- { "mas10", 0x100000, 0xf4b4c8a1, 8 | BRF_SND }, // 19 OKI M6295 Samples 0
-
- { "mas11", 0x080000, 0xc2f0a4f2, 9 | BRF_SND }, // 20 OKI M6295 Samples 1
-
- { "mb7122h.16l", 0x000400, 0x2bee57cc, 0 | BRF_OPT }, // 21 Unused PROMs
-};
-
-STD_ROM_PICK(wizdfire)
-STD_ROM_FN(wizdfire)
-
-struct BurnDriver BurnDrvWizdfire = {
- "wizdfire", NULL, NULL, NULL, "1992",
- "Wizard Fire (Over Sea v2.1)\0", NULL, "Data East Corporation", "DECO IC16",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_PREFIX_DATAEAST, GBF_SCRFIGHT, 0,
- NULL, wizdfireRomInfo, wizdfireRomName, NULL, NULL, WizdfireInputInfo, WizdfireDIPInfo,
- WizdfireEnglishInit, DrvExit, DrvFrame, WizdfireDraw, DrvScan, &DrvRecalc, 0x800,
- 320, 240, 4, 3
-};
-
-
-// Wizard Fire (US v1.1)
-
-static struct BurnRomInfo wizdfireuRomDesc[] = {
- { "jf-01.3d", 0x020000, 0xbde42a41, 1 | BRF_PRG | BRF_ESS }, // 0 68k Code
- { "jf-00.3a", 0x020000, 0xbca3c995, 1 | BRF_PRG | BRF_ESS }, // 1
- { "jf-03.5d", 0x020000, 0x5217d404, 1 | BRF_PRG | BRF_ESS }, // 2
- { "jf-02.5a", 0x020000, 0x36a1ce28, 1 | BRF_PRG | BRF_ESS }, // 3
- { "mas13", 0x080000, 0x7e5256ce, 1 | BRF_PRG | BRF_ESS }, // 4
- { "mas12", 0x080000, 0x005bd499, 1 | BRF_PRG | BRF_ESS }, // 5
-
- { "jf-06.20r", 0x010000, 0x79042546, 2 | BRF_PRG | BRF_ESS }, // 6 Huc6280 Code
-
- { "jf-04.10d", 0x010000, 0x73cba800, 3 | BRF_GRA }, // 7 Characters
- { "jf-05.12d", 0x010000, 0x22e2c49d, 3 | BRF_GRA }, // 8
-
- { "mas00", 0x100000, 0x3d011034, 4 | BRF_GRA }, // 9 Foreground Tiles
- { "mas01", 0x100000, 0x6d0c9d0b, 4 | BRF_GRA }, // 10
-
- { "mas02", 0x080000, 0xaf00e620, 5 | BRF_GRA }, // 11 Background Tiles
- { "mas03", 0x080000, 0x2fe61ea2, 5 | BRF_GRA }, // 12
-
- { "mas04", 0x100000, 0x1e56953b, 6 | BRF_GRA }, // 13 Sprite Bank A
- { "mas05", 0x100000, 0x3826b8f8, 6 | BRF_GRA }, // 14
- { "mas06", 0x100000, 0x3b8bbd45, 6 | BRF_GRA }, // 15
- { "mas07", 0x100000, 0x31303769, 6 | BRF_GRA }, // 16
-
- { "mas08", 0x080000, 0xe224fb7a, 7 | BRF_GRA }, // 17 Sprite Bank B
- { "mas09", 0x080000, 0x5f6deb41, 7 | BRF_GRA }, // 18
-
- { "mas10", 0x100000, 0xf4b4c8a1, 8 | BRF_SND }, // 19 OKI M6295 Samples 0
-
- { "mas11", 0x080000, 0xc2f0a4f2, 9 | BRF_SND }, // 20 OKI M6295 Samples 1
-
- { "mb7122h.16l", 0x000400, 0x2bee57cc, 0 | BRF_OPT }, // 21 Unused PROMs
-};
-
-STD_ROM_PICK(wizdfireu)
-STD_ROM_FN(wizdfireu)
-
-struct BurnDriver BurnDrvWizdfireu = {
- "wizdfireu", "wizdfire", NULL, NULL, "1992",
- "Wizard Fire (US v1.1)\0", NULL, "Data East Corporation", "DECO IC16",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_DATAEAST, GBF_SCRFIGHT, 0,
- NULL, wizdfireuRomInfo, wizdfireuRomName, NULL, NULL, WizdfireInputInfo, WizdfireDIPInfo,
- WizdfireEnglishInit, DrvExit, DrvFrame, WizdfireDraw, DrvScan, &DrvRecalc, 0x800,
- 320, 240, 4, 3
-};
-
-
-// Dark Seal 2 (Japan v2.1)
-
-static struct BurnRomInfo darkseal2RomDesc[] = {
- { "jb-01-3.3d", 0x020000, 0x82308c01, 1 | BRF_PRG | BRF_ESS }, // 0 68k Code
- { "jb-00-3.3a", 0x020000, 0x1d38113a, 1 | BRF_PRG | BRF_ESS }, // 1
- { "jb-03.5d", 0x020000, 0x5217d404, 1 | BRF_PRG | BRF_ESS }, // 2
- { "jb-02.5a", 0x020000, 0x36a1ce28, 1 | BRF_PRG | BRF_ESS }, // 3
- { "mas13", 0x080000, 0x7e5256ce, 1 | BRF_PRG | BRF_ESS }, // 4
- { "mas12", 0x080000, 0x005bd499, 1 | BRF_PRG | BRF_ESS }, // 5
-
- { "jb-06.20r", 0x010000, 0x2066a1dd, 2 | BRF_PRG | BRF_ESS }, // 6 Huc6280 Code
-
- { "jb-04.10d", 0x010000, 0x73cba800, 3 | BRF_GRA }, // 7 Characters
- { "jb-05.12d", 0x010000, 0x22e2c49d, 3 | BRF_GRA }, // 8
-
- { "mas00", 0x100000, 0x3d011034, 4 | BRF_GRA }, // 9 Foreground Tiles
- { "mas01", 0x100000, 0x6d0c9d0b, 4 | BRF_GRA }, // 10
-
- { "mas02", 0x080000, 0xaf00e620, 5 | BRF_GRA }, // 11 Background Tiles
- { "mas03", 0x080000, 0x2fe61ea2, 5 | BRF_GRA }, // 12
-
- { "mas04", 0x100000, 0x1e56953b, 6 | BRF_GRA }, // 13 Sprite Bank A
- { "mas05", 0x100000, 0x3826b8f8, 6 | BRF_GRA }, // 14
- { "mas06", 0x100000, 0x3b8bbd45, 6 | BRF_GRA }, // 15
- { "mas07", 0x100000, 0x31303769, 6 | BRF_GRA }, // 16
-
- { "mas08", 0x080000, 0xe224fb7a, 7 | BRF_GRA }, // 17 Sprite Bank B
- { "mas09", 0x080000, 0x5f6deb41, 7 | BRF_GRA }, // 18
-
- { "mas10", 0x100000, 0xf4b4c8a1, 8 | BRF_SND }, // 19 OKI M6295 Samples 0
-
- { "mas11", 0x080000, 0xc2f0a4f2, 9 | BRF_SND }, // 20 OKI M6295 Samples 1
-
- { "mb7122h.16l", 0x000400, 0x2bee57cc, 0 | BRF_OPT }, // 21 Unused PROMs
-};
-
-STD_ROM_PICK(darkseal2)
-STD_ROM_FN(darkseal2)
-
-struct BurnDriver BurnDrvDarkseal2 = {
- "darkseal2", "wizdfire", NULL, NULL, "1992",
- "Dark Seal 2 (Japan v2.1)\0", NULL, "Data East Corporation", "DECO IC16",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_DATAEAST, GBF_SCRFIGHT, 0,
- NULL, darkseal2RomInfo, darkseal2RomName, NULL, NULL, WizdfireInputInfo, WizdfireDIPInfo,
- WizdfireInit, DrvExit, DrvFrame, WizdfireDraw, DrvScan, &DrvRecalc, 0x800,
- 320, 240, 4, 3
-};
-
-
-// Schmeiser Robo (Japan)
-
-static struct BurnRomInfo schmeisrRomDesc[] = {
- { "sr001j.8a", 0x080000, 0xed31f3ff, 1 | BRF_PRG | BRF_ESS }, // 0 68k Code
- { "sr006j.8d", 0x080000, 0x9e9cfa5d, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "sr013.18p", 0x010000, 0x4ac00cbb, 2 | BRF_PRG | BRF_ESS }, // 2 Huc6280 Code
-
- { "sr002-74.9a", 0x080000, 0x97e15c7b, 3 | BRF_GRA }, // 3 Foreground Tiles
- { "sr003-74.11a", 0x080000, 0xea367971, 3 | BRF_GRA }, // 4
-
- { "sr007.17d", 0x100000, 0x886f80c7, 4 | BRF_GRA }, // 5 Background Tiles
- { "sr008.18d", 0x100000, 0xa74cbc90, 4 | BRF_GRA }, // 6
-
- { "sr004.19a", 0x100000, 0xe25434a1, 5 | BRF_GRA }, // 7 Sprites
- { "sr005.20a", 0x100000, 0x1630033b, 5 | BRF_GRA }, // 8
- { "sr009.19d", 0x100000, 0x7b9d982f, 5 | BRF_GRA }, // 9
- { "sr010.20d", 0x100000, 0x6e9e5352, 5 | BRF_GRA }, // 10
-
- { "sr012.15p", 0x080000, 0x38843d4d, 6 | BRF_SND }, // 12 OKI M6295 Samples 0
-
- { "sr011.14p", 0x080000, 0x81805616, 7 | BRF_SND }, // 11 OKI M6295 Samples 1
-
- { "hb-00.11p", 0x000200, 0xb7a7baad, 0 | BRF_OPT }, // 13 Unused PROMs
-};
-
-STD_ROM_PICK(schmeisr)
-STD_ROM_FN(schmeisr)
-
-struct BurnDriver BurnDrvSchmeisr = {
- "schmeisr", NULL, NULL, NULL, "1993",
- "Schmeiser Robo (Japan)\0",NULL, "Hot-B", "DECO IC16",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_PREFIX_DATAEAST, GBF_VSFIGHT, 0,
- NULL, schmeisrRomInfo, schmeisrRomName, NULL, NULL, RohgaInputInfo, SchmeisrDIPInfo,
- SchmeisrInit, DrvExit, DrvFrame, SchmeisrDraw, DrvScan, &DrvRecalc, 0x800,
- 320, 240, 4, 3
-};
-
-
-// Hangzo (Japan, prototype)
-/* Found on a Data East DE-0353-3 PCB */
-
-static struct BurnRomInfo hangzoRomDesc[] = {
- { "Pro0H 12.18.2A.27C1001", 0x20000, 0xac8087db, 1 | BRF_PRG | BRF_ESS }, // 0 68k Code
- { "Pro0H 12.18.2D.27C1001", 0x20000, 0xa6b7f4f4, 1 | BRF_PRG | BRF_ESS }, // 1
- { "Pro1H 12.10.4A.27C010", 0x20000, 0x0d04f43d, 1 | BRF_PRG | BRF_ESS }, // 2
- { "Pro1L 12.10.4D.27C010", 0x20000, 0x2e323918, 1 | BRF_PRG | BRF_ESS }, // 3
- { "Pro2H 12.10.6A.27C010", 0x20000, 0xbb3185a6, 1 | BRF_PRG | BRF_ESS }, // 4
- { "Pro2L 12.10.6D.27C010", 0x20000, 0x11ce97bb, 1 | BRF_PRG | BRF_ESS }, // 5
-
- { "SND 12.18.18P.27C512", 0x10000, 0x97c592dc, 2 | BRF_PRG | BRF_ESS }, // 6 Huc6280 Code
-
- { "BK1L 12.10.9A.574200", 0x80000, 0x5199729b, 3 | BRF_GRA }, // 7 Foreground Tiles
- { "BK1H 12.10.11A.574200", 0x80000, 0x85887bd8, 3 | BRF_GRA }, // 8
-
- { "BK23L 12.10.17D.574200", 0x80000, 0xed4e47c6, 4 | BRF_GRA }, // 9 Background Tiles
- { "BK23H 12.10.18D.574200", 0x80000, 0x6a725fb2, 4 | BRF_GRA }, // 10
-
- { "OBJ01L 12.10.19A.27C4000", 0x80000, 0xc141e310, 5 | BRF_GRA }, // 11 Sprites
- { "OBJ01H 12.10.20A.27C4000", 0x80000, 0x6a7b4252, 5 | BRF_GRA }, // 12
- { "OBJ23L 12.10.19D.27C4000", 0x80000, 0x0db6df6c, 5 | BRF_GRA }, // 13
- { "OBJ23H 12.10.20D.27C4000", 0x80000, 0x165031a1, 5 | BRF_GRA }, // 14
-
- { "PCM8K 11.5.15P.27C020", 0x40000, 0x02682a9a, 6 | BRF_SND }, // 15 OKI M6295 Samples 0
-
- { "PCM16K 11.5.14P.574000", 0x80000, 0x5b95c6c7, 7 | BRF_SND }, // 16 OKI M6295 Samples 1
-
- { "hb-00.11p", 0x00200, 0xb7a7baad, 0 | BRF_OPT }, // 17 Unused PROMs
-};
-
-STD_ROM_PICK(hangzo)
-STD_ROM_FN(hangzo)
-
-struct BurnDriver BurnDrvHangzo = {
- "hangzo", NULL, NULL, NULL, "1992",
- "Hangzo (Japan, prototype)\0", NULL, "Hot-B", "DECO IC16",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_PROTOTYPE, 2, HARDWARE_PREFIX_DATAEAST, GBF_SCRFIGHT, 0,
- NULL, hangzoRomInfo, hangzoRomName, NULL, NULL, RohgaInputInfo, HangzoDIPInfo,
- HangzoInit, DrvExit, DrvFrame, SchmeisrDraw, DrvScan, &DrvRecalc, 0x800,
- 320, 240, 4, 3
-};
-
-
-// Nitro Ball (World, set 1)
-
-static struct BurnRomInfo nitrobalRomDesc[] = {
- { "jl01-4.d3", 0x020000, 0x0414e409, 1 | BRF_PRG | BRF_ESS }, // 0 68k Code
- { "jl00-4.b3", 0x020000, 0xdd9e2bcc, 1 | BRF_PRG | BRF_ESS }, // 1
- { "jl03-4.d5", 0x020000, 0xea264ac5, 1 | BRF_PRG | BRF_ESS }, // 2
- { "jl02-4.b5", 0x020000, 0x74047997, 1 | BRF_PRG | BRF_ESS }, // 3
- { "jl05-2.d6", 0x040000, 0xb820fa20, 1 | BRF_PRG | BRF_ESS }, // 4
- { "jl04-2.b6", 0x040000, 0x1fd8995b, 1 | BRF_PRG | BRF_ESS }, // 5
-
- { "jl08.r20", 0x010000, 0x93d93fe1, 2 | BRF_PRG | BRF_ESS }, // 6 Huc6280 Code
-
- { "jl06.d10", 0x010000, 0x91cf668e, 3 | BRF_GRA }, // 7 Characters
- { "jl07.d12", 0x010000, 0xe61d0e42, 3 | BRF_GRA }, // 8
-
- { "mav00.b10", 0x080000, 0x34785d97, 4 | BRF_GRA }, // 9 Foreground Tiles
- { "mav01.b12", 0x080000, 0x8b531b16, 4 | BRF_GRA }, // 10
-
- { "mav02.b16", 0x100000, 0x20723bf7, 5 | BRF_GRA }, // 11 Background Tiles
- { "mav03.e16", 0x100000, 0xef6195f0, 5 | BRF_GRA }, // 12
-
- { "mav05.e19", 0x100000, 0xd92d769c, 6 | BRF_GRA }, // 13 Sprite Bank A
- { "mav04.b19", 0x100000, 0x8ba48385, 6 | BRF_GRA }, // 14
- { "mav07.e20", 0x080000, 0x5fc10ccd, 6 | BRF_GRA }, // 15
- { "mav06.b20", 0x080000, 0xae6201a5, 6 | BRF_GRA }, // 16
-
- { "mav09.e23", 0x040000, 0x1ce7b51a, 7 | BRF_GRA }, // 17 Sprite Bank B
- { "mav08.b23", 0x040000, 0x64966576, 7 | BRF_GRA }, // 18
-
- { "mav10.r17", 0x080000, 0x8ad734b0, 8 | BRF_SND }, // 19 OKI M6295 Samples 0
-
- { "mav11.r19", 0x080000, 0xef513908, 9 | BRF_SND }, // 20 OKI M6295 Samples 1
-
- { "jn-00.17l", 0x000400, 0x6ac77b84, 0 | BRF_OPT }, // 21 Unused PROMs
-};
-
-STD_ROM_PICK(nitrobal)
-STD_ROM_FN(nitrobal)
-
-struct BurnDriver BurnDrvNitrobal = {
- "nitrobal", NULL, NULL, NULL, "1992",
- "Nitro Ball (World, set 1)\0", NULL, "Data East Corporation", "DECO IC16",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL, 3, HARDWARE_PREFIX_DATAEAST, GBF_SHOOT, 0,
- NULL, nitrobalRomInfo, nitrobalRomName, NULL, NULL, NitrobalInputInfo, NitrobalDIPInfo,
- NitrobalInit, DrvExit, DrvFrame, NitrobalDraw, DrvScan, &DrvRecalc, 0x800,
- 240, 320, 3, 4
-};
-
-
-// Nitro Ball (World, set 2)
-
-static struct BurnRomInfo nitrobalaRomDesc[] = {
- // roms had no labels
- { "3d", 0x020000, 0x48f77c19, 1 | BRF_PRG | BRF_ESS }, // 0 68k Code
- { "3b", 0x020000, 0xfb1284e9, 1 | BRF_PRG | BRF_ESS }, // 1
- { "5d", 0x020000, 0xac47367a, 1 | BRF_PRG | BRF_ESS }, // 2
- { "5b", 0x020000, 0xa8e9d7dd, 1 | BRF_PRG | BRF_ESS }, // 3
- { "6d", 0x040000, 0x59e620cc, 1 | BRF_PRG | BRF_ESS }, // 4 // 7ee3 - 7f06 are 0xff instead of 0x00 in the nitrobal set, why?
- { "6b", 0x040000, 0x1fd8995b, 1 | BRF_PRG | BRF_ESS }, // 5 // this half of the pair matches
- /* Two empty rom slots at d7, b7 */
-
- { "jl08.r20", 0x010000, 0x93d93fe1, 2 | BRF_PRG | BRF_ESS }, // 6 Huc6280 Code
-
- { "jl06.d10", 0x010000, 0x91cf668e, 3 | BRF_GRA }, // 7 Characters
- { "jl07.d12", 0x010000, 0xe61d0e42, 3 | BRF_GRA }, // 8
-
- { "mav00.b10", 0x080000, 0x34785d97, 4 | BRF_GRA }, // 9 Foreground Tiles
- { "mav01.b12", 0x080000, 0x8b531b16, 4 | BRF_GRA }, // 10
-
- { "mav02.b16", 0x100000, 0x20723bf7, 5 | BRF_GRA }, // 11 Background Tiles
- { "mav03.e16", 0x100000, 0xef6195f0, 5 | BRF_GRA }, // 12
-
- { "mav05.e19", 0x100000, 0xd92d769c, 6 | BRF_GRA }, // 13 Sprite Bank A
- { "mav04.b19", 0x100000, 0x8ba48385, 6 | BRF_GRA }, // 14
- { "mav07.e20", 0x080000, 0x5fc10ccd, 6 | BRF_GRA }, // 15
- { "mav06.b20", 0x080000, 0xae6201a5, 6 | BRF_GRA }, // 16
-
- { "mav09.e23", 0x040000, 0x1ce7b51a, 7 | BRF_GRA }, // 17 Sprite Bank B
- { "mav08.b23", 0x040000, 0x64966576, 7 | BRF_GRA }, // 18
-
- { "mav10.r17", 0x080000, 0x8ad734b0, 8 | BRF_SND }, // 19 OKI M6295 Samples 0
-
- { "mav11.r19", 0x080000, 0xef513908, 9 | BRF_SND }, // 20 OKI M6295 Samples 1
-
- { "jn-00.17l", 0x000400, 0x6ac77b84, 0 | BRF_OPT }, // 21 Unused PROMs
-};
-
-STD_ROM_PICK(nitrobala)
-STD_ROM_FN(nitrobala)
-
-struct BurnDriver BurnDrvNitrobala = {
- "nitrobala", "nitrobal", NULL, NULL, "1992",
- "Nitro Ball (World, set 2)\0", NULL, "Data East Corporation", "DECO IC16",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL, 3, HARDWARE_PREFIX_DATAEAST, GBF_SHOOT, 0,
- NULL, nitrobalaRomInfo, nitrobalaRomName, NULL, NULL, NitrobalInputInfo, NitrobalDIPInfo,
- NitrobalInit, DrvExit, DrvFrame, NitrobalDraw, DrvScan, &DrvRecalc, 0x800,
- 240, 320, 3, 4
-};
-
-
-// Gun Ball (Japan)
-
-static struct BurnRomInfo gunballRomDesc[] = {
- { "jc01.3d", 0x020000, 0x61bfa998, 1 | BRF_PRG | BRF_ESS }, // 0 68k Code
- { "jc00.3b", 0x020000, 0x73ba8f74, 1 | BRF_PRG | BRF_ESS }, // 1
- { "jc03.5d", 0x020000, 0x19231612, 1 | BRF_PRG | BRF_ESS }, // 2
- { "jc02.5b", 0x020000, 0xa254f34c, 1 | BRF_PRG | BRF_ESS }, // 3
- { "jc05-3.6d", 0x040000, 0xf750a709, 1 | BRF_PRG | BRF_ESS }, // 4
- { "jc04-3.6b", 0x040000, 0xad711767, 1 | BRF_PRG | BRF_ESS }, // 5
-
- { "jl08.r20", 0x010000, 0x93d93fe1, 2 | BRF_PRG | BRF_ESS }, // 6 Huc6280 Code
-
- { "jl06.d10", 0x010000, 0x91cf668e, 3 | BRF_GRA }, // 7 Characters
- { "jl07.d12", 0x010000, 0xe61d0e42, 3 | BRF_GRA }, // 8
-
- { "mav00.b10", 0x080000, 0x34785d97, 4 | BRF_GRA }, // 9 Foreground Tiles
- { "mav01.b12", 0x080000, 0x8b531b16, 4 | BRF_GRA }, // 10
-
- { "mav02.b16", 0x100000, 0x20723bf7, 5 | BRF_GRA }, // 11 Background Tiles
- { "mav03.e16", 0x100000, 0xef6195f0, 5 | BRF_GRA }, // 12
-
- { "mav05.e19", 0x100000, 0xd92d769c, 6 | BRF_GRA }, // 13 Sprite Bank A
- { "mav04.b19", 0x100000, 0x8ba48385, 6 | BRF_GRA }, // 14
- { "mav07.e20", 0x080000, 0x5fc10ccd, 6 | BRF_GRA }, // 15
- { "mav06.b20", 0x080000, 0xae6201a5, 6 | BRF_GRA }, // 16
-
- { "mav09.e23", 0x040000, 0x1ce7b51a, 7 | BRF_GRA }, // 17 Sprite Bank B
- { "mav08.b23", 0x040000, 0x64966576, 7 | BRF_GRA }, // 18
-
- { "mav10.r17", 0x080000, 0x8ad734b0, 8 | BRF_SND }, // 19 OKI M6295 Samples 0
-
- { "mav11.r19", 0x080000, 0xef513908, 9 | BRF_SND }, // 20 OKI M6295 Samples 1
-
- { "jn-00.17l", 0x000400, 0x6ac77b84, 0 | BRF_OPT }, // 21 Unused PROMs
-};
-
-STD_ROM_PICK(gunball)
-STD_ROM_FN(gunball)
-
-struct BurnDriver BurnDrvGunball = {
- "gunball", "nitrobal", NULL, NULL, "1992",
- "Gun Ball (Japan)\0", NULL, "Data East Corporation", "DECO IC16",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL, 3, HARDWARE_PREFIX_DATAEAST, GBF_SHOOT, 0,
- NULL, gunballRomInfo, gunballRomName, NULL, NULL, NitrobalInputInfo, NitrobalDIPInfo,
- NitrobalInit, DrvExit, DrvFrame, NitrobalDraw, DrvScan, &DrvRecalc, 0x800,
- 240, 320, 3, 4
-};
diff --git a/jan/src/burn/drv/dataeast/d_shootout.cpp b/jan/src/burn/drv/dataeast/d_shootout.cpp
deleted file mode 100644
index 298bb5484..000000000
--- a/jan/src/burn/drv/dataeast/d_shootout.cpp
+++ /dev/null
@@ -1,948 +0,0 @@
-// FB Alpha Shoot Out driver module
-// Based on MAME driver by Ernesto Corvi, Phil Stroffolino, Bryan McPhail
-
-#include "tiles_generic.h"
-#include "m6502_intf.h"
-#include "burn_ym2203.h"
-
-static UINT8 *AllMem;
-static UINT8 *MemEnd;
-static UINT8 *AllRam;
-static UINT8 *RamEnd;
-static UINT8 *DrvM6502ROM0;
-static UINT8 *DrvM6502ROM1;
-static UINT8 *DrvGfxROM0;
-static UINT8 *DrvGfxROM1;
-static UINT8 *DrvGfxROM2;
-static UINT8 *DrvColPROM;
-static UINT8 *DrvM6502RAM0A;
-static UINT8 *DrvM6502RAM0B;
-static UINT8 *DrvM6502RAM1;
-static UINT8 *DrvTxtRAM;
-static UINT8 *DrvVidRAM;
-static UINT8 *DrvSprRAM;
-
-static UINT8 soundlatch;
-static UINT8 flipscreen;
-static UINT8 bankdata;
-static INT32 soundcpu_mhz;
-
-static UINT32 *DrvPalette;
-static UINT8 DrvRecalc;
-
-static INT32 vblank;
-
-static UINT8 DrvJoy1[8];
-static UINT8 DrvJoy2[8];
-static UINT8 DrvInputs[2];
-static UINT8 DrvDips[2];
-static UINT8 DrvReset;
-
-static UINT8 shootoutb = 0;
-static UINT8 ym2203portainit;
-static UINT8 ym2203portbinit;
-
-static struct BurnInputInfo ShootoutInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy2 + 7, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 6, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy1 + 2, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy1 + 3, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy1 + 1, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy1 + 0, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy1 + 4, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy1 + 5, "p1 fire 2" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy2 + 6, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy1 + 7, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvJoy2 + 2, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy2 + 3, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy2 + 1, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy2 + 0, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy2 + 4, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy2 + 5, "p2 fire 2" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip" },
-};
-
-STDINPUTINFO(Shootout)
-
-static struct BurnDIPInfo ShootoutDIPList[]=
-{
- {0x11, 0xff, 0xff, 0xbf, NULL },
- {0x12, 0xff, 0xff, 0x3f, NULL },
-
- {0 , 0xfe, 0 , 4, "Coin A" },
- {0x11, 0x01, 0x03, 0x00, "2 Coins 1 Credits" },
- {0x11, 0x01, 0x03, 0x03, "1 Coin 1 Credits" },
- {0x11, 0x01, 0x03, 0x02, "1 Coin 2 Credits" },
- {0x11, 0x01, 0x03, 0x01, "1 Coin 3 Credits" },
-
- {0 , 0xfe, 0 , 4, "Coin B" },
- {0x11, 0x01, 0x0c, 0x00, "2 Coins 1 Credits" },
- {0x11, 0x01, 0x0c, 0x0c, "1 Coin 1 Credits" },
- {0x11, 0x01, 0x0c, 0x08, "1 Coin 2 Credits" },
- {0x11, 0x01, 0x0c, 0x04, "1 Coin 3 Credits" },
-
- {0 , 0xfe, 0 , 0, "Demo Sounds" },
- {0x11, 0x01, 0x20, 0x00, "Off" },
- {0x11, 0x01, 0x20, 0x20, "On" },
-
- {0 , 0xfe, 0 , 2, "Cabinet" },
- {0x11, 0x01, 0x40, 0x00, "Upright" },
- {0x11, 0x01, 0x40, 0x40, "Cocktail" },
-
- {0 , 0xfe, 0 , 2, "Freeze" },
- {0x11, 0x01, 0x80, 0x80, "Off" },
- {0x11, 0x01, 0x80, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Lives" },
- {0x12, 0x01, 0x03, 0x01, "1" },
- {0x12, 0x01, 0x03, 0x03, "3" },
- {0x12, 0x01, 0x03, 0x02, "5" },
- {0x12, 0x01, 0x03, 0x00, "Infinite" },
-
- {0 , 0xfe, 0 , 4, "Bonus Life" },
- {0x12, 0x01, 0x0c, 0x0c, "20,000 Every 70,000" },
- {0x12, 0x01, 0x0c, 0x08, "30,000 Every 80,000" },
- {0x12, 0x01, 0x0c, 0x04, "40,000 Every 90,000" },
- {0x12, 0x01, 0x0c, 0x00, "70,000" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x12, 0x01, 0x30, 0x30, "Easy" },
- {0x12, 0x01, 0x30, 0x20, "Normal" },
- {0x12, 0x01, 0x30, 0x10, "Hard" },
- {0x12, 0x01, 0x30, 0x00, "Very Hard" },
-};
-
-STDDIPINFO(Shootout)
-
-static struct BurnDIPInfo ShootoujDIPList[]=
-{
- {0x11, 0xff, 0xff, 0xbf, NULL },
- {0x12, 0xff, 0xff, 0x3f, NULL },
-
- {0 , 0xfe, 0 , 4, "Coin A" },
- {0x11, 0x01, 0x03, 0x00, "2 Coins 1 Credits" },
- {0x11, 0x01, 0x03, 0x03, "1 Coin 1 Credits" },
- {0x11, 0x01, 0x03, 0x02, "1 Coin 2 Credits" },
- {0x11, 0x01, 0x03, 0x01, "1 Coin 3 Credits" },
-
- {0 , 0xfe, 0 , 4, "Coin B" },
- {0x11, 0x01, 0x0c, 0x00, "2 Coins 1 Credits" },
- {0x11, 0x01, 0x0c, 0x0c, "1 Coin 1 Credits" },
- {0x11, 0x01, 0x0c, 0x08, "1 Coin 2 Credits" },
- {0x11, 0x01, 0x0c, 0x04, "1 Coin 3 Credits" },
-
- {0 , 0xfe, 0 , 0, "Company Copyright" },
- {0x11, 0x01, 0x20, 0x20, "Data East Corp" },
- {0x11, 0x01, 0x20, 0x00, "Data East USA Inc" },
-
- {0 , 0xfe, 0 , 2, "Cabinet" },
- {0x11, 0x01, 0x40, 0x00, "Upright" },
- {0x11, 0x01, 0x40, 0x40, "Cocktail" },
-
- {0 , 0xfe, 0 , 2, "Freeze" },
- {0x11, 0x01, 0x80, 0x80, "Off" },
- {0x11, 0x01, 0x80, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Lives" },
- {0x12, 0x01, 0x03, 0x01, "1" },
- {0x12, 0x01, 0x03, 0x03, "3" },
- {0x12, 0x01, 0x03, 0x02, "5" },
- {0x12, 0x01, 0x03, 0x00, "Infinite" },
-
- {0 , 0xfe, 0 , 4, "Bonus Life" },
- {0x12, 0x01, 0x0c, 0x0c, "20,000 Every 50,000" },
- {0x12, 0x01, 0x0c, 0x08, "30,000 Every 60,000" },
- {0x12, 0x01, 0x0c, 0x04, "50,000 Every 70,000" },
- {0x12, 0x01, 0x0c, 0x00, "70,000" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x12, 0x01, 0x30, 0x30, "Easy" },
- {0x12, 0x01, 0x30, 0x20, "Normal" },
- {0x12, 0x01, 0x30, 0x10, "Hard" },
- {0x12, 0x01, 0x30, 0x00, "Very Hard" },
-};
-
-STDDIPINFO(Shootouj)
-
-static void bankswitch(INT32 data)
-{
- INT32 bank = 0x8000 + (data & 0xf) * 0x4000;
-
- bankdata = data;
-
- M6502MapMemory(DrvM6502ROM0 + bank, 0x4000, 0x7fff, MAP_ROM);
-}
-
-static void shootout_main_write(UINT16 address, UINT8 data)
-{
- if (address >= 0x1004 && address <= 0x17ff) {
- DrvM6502RAM0B[address & 0x7ff] = data;
- return;
- }
-
- switch (address)
- {
- case 0x1000:
- bankswitch(data & 0xf);
- return;
-
- case 0x1001:
- flipscreen = data & 1;
- return;
-
- case 0x1002:
- // coin counter
- return;
-
- case 0x1003:
- soundlatch = data;
- M6502Close();
- M6502Open(1);
- M6502SetIRQLine(0x20, CPU_IRQSTATUS_AUTO);
- M6502Close();
- M6502Open(0);
- return;
-
- // shootouj
- case 0x1800:
- // coin counter
- return;
-
- case 0x2800:
- case 0x2801:
- BurnYM2203Write(0, address & 1, data);
- return;
- }
-}
-
-static UINT8 shootout_main_read(UINT16 address)
-{
- if (address >= 0x1004 && address <= 0x17ff) {
- return DrvM6502RAM0B[address & 0x7ff];
- }
-
- switch (address)
- {
- case 0x1000:
- return DrvDips[0];
-
- case 0x1001:
- return DrvInputs[0];
-
- case 0x1002:
- return DrvInputs[1];
-
- case 0x1003:
- return (DrvDips[1] & 0x3f) | (vblank ? 0 : 0x80);
-
- case 0x2800:
- case 0x2801:
- return BurnYM2203Read(0, address & 1);
- }
-
- return 0;
-}
-
-static void shootout_sound_write(UINT16 address, UINT8 data)
-{
- switch (address)
- {
- case 0x4000:
- case 0x4001:
- BurnYM2203Write(0, address & 1, data);
- return;
-
- case 0xd000:
- return; //nop
- }
-}
-
-static UINT8 shootout_sound_read(UINT16 address)
-{
- switch (address)
- {
- case 0x4000:
- case 0x4001:
- return BurnYM2203Read(0, address & 1);
-
- case 0xa000:
- return soundlatch;
- }
-
- return 0;
-}
-
-static void ym2203_write_port_A(UINT32, UINT32 data)
-{
- if (ym2203portainit == 0) { // first thing written here on YM2203Reset() is 0xff, causes problems.
- ym2203portainit = 1;
- return;
- }
-
- bankswitch(data);
-}
-
-static void ym2203_write_port_B(UINT32, UINT32 data)
-{
- if (ym2203portbinit == 0) {
- ym2203portbinit = 1;
- return;
- }
-
- flipscreen = data & 1;
-}
-
-inline static void DrvYM2203IRQHandler(INT32, INT32 nStatus)
-{
- M6502SetIRQLine(0, (nStatus) ? CPU_IRQSTATUS_ACK : CPU_IRQSTATUS_NONE);
-}
-
-inline static INT32 DrvSynchroniseStream(INT32 nSoundRate)
-{
- return (INT64)M6502TotalCycles() * nSoundRate / soundcpu_mhz;
-}
-
-inline static double DrvGetTime()
-{
- return (double)M6502TotalCycles() / soundcpu_mhz;
-}
-
-static tilemap_callback( background )
-{
- INT32 attr = DrvVidRAM[offs + 0x400];
- INT32 code = DrvVidRAM[offs] + ((attr & 7) << 8);
- INT32 color = attr >> 4;
-
- TILE_SET_INFO(0, code, color, 0);
-}
-
-static tilemap_callback( foreground )
-{
- INT32 attr = DrvTxtRAM[offs + 0x400];
- INT32 code = DrvTxtRAM[offs] + ((attr & 3) << 8);
- INT32 color = attr >> 4;
-
- TILE_SET_INFO(1, code, color, 0);
-}
-
-static INT32 DrvDoReset()
-{
- memset (AllRam, 0, RamEnd - AllRam);
-
- M6502Open(0);
- M6502Reset();
- bankswitch(0);
- M6502Close();
-
- M6502Open(1);
- M6502Reset();
- BurnYM2203Reset();
- M6502Close();
-
- soundlatch = 0;
- flipscreen = 0;
- vblank = 1; // 248 on, 8 off
-
- ym2203portainit = 0;
- ym2203portbinit = 0;
-
- DrvInputs[1] = 0x3f;
-
- return 0;
-}
-
-static INT32 MemIndex()
-{
- UINT8 *Next; Next = AllMem;
-
- DrvM6502ROM0 = Next; Next += 0x018000;
-
- DrvM6502ROM1 = Next; Next += 0x004000;
-
- DrvGfxROM0 = Next; Next += 0x010000;
- DrvGfxROM1 = Next; Next += 0x080000;
- DrvGfxROM2 = Next; Next += 0x020000;
-
- DrvColPROM = Next; Next += 0x000100;
-
- DrvPalette = (UINT32*)Next; Next += 0x0100 * sizeof(UINT32);
-
- AllRam = Next;
-
- DrvM6502RAM0A = Next; Next += 0x001000;
- DrvM6502RAM0B = Next; Next += 0x000800;
- DrvM6502RAM1 = Next; Next += 0x000800;
- DrvTxtRAM = Next; Next += 0x000800;
- DrvVidRAM = Next; Next += 0x000800;
- DrvSprRAM = Next; Next += 0x000200;
-
- RamEnd = Next;
-
- MemEnd = Next;
-
- return 0;
-}
-
-static INT32 DrvGfxDecode()
-{
- INT32 Plane0[2] = { 0, 4 };
- INT32 Plane1[3] = { 0*0x10000*8, 1*0x10000*8, 2*0x10000*8 };
- INT32 XOffs0[8] = { STEP4((0x4000*8), 1), STEP4(0,1) };
- INT32 XOffs1[16]= { STEP8(128,1), STEP8(0,1) };
- INT32 YOffs[16] = { STEP16(0,8) };
-
- UINT8 *tmp = (UINT8*)BurnMalloc(0x30000);
- if (tmp == NULL) {
- return 1;
- }
-
- memcpy (tmp, DrvGfxROM0, 0x8000); // char
-
- GfxDecode(0x0400, 2, 8, 8, Plane0, XOffs0, YOffs, 0x040, tmp, DrvGfxROM0);
-
- memcpy (tmp, DrvGfxROM1, 0x30000);
-
- GfxDecode(0x0800, 3, 16, 16, Plane1, XOffs1, YOffs, 0x100, tmp, DrvGfxROM1);
-
- memcpy (tmp, DrvGfxROM2, 0x8000);
-
- GfxDecode(0x0800, 2, 8, 8, Plane0, XOffs0, YOffs, 0x040, tmp, DrvGfxROM2);
-
- BurnFree(tmp);
-
- return 0;
-}
-
-static INT32 ShootoutInit()
-{
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(DrvM6502ROM0 + 0x00000, 0, 1)) return 1;
- if (BurnLoadRom(DrvM6502ROM0 + 0x08000, 1, 1)) return 1;
- if (BurnLoadRom(DrvM6502ROM0 + 0x10000, 2, 1)) return 1;
-
- if (BurnLoadRom(DrvM6502ROM1 + 0x00000, 3, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x00000, 4, 1)) return 1;
- memcpy (DrvGfxROM0 + 0x4000, DrvGfxROM0 + 0x2000, 0x2000);
-
- if (BurnLoadRom(DrvGfxROM1 + 0x00000, 5, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x08000, 6, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x10000, 7, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x18000, 8, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x20000, 9, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x28000, 10, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM2 + 0x08000, 11, 1)) return 1;
- memcpy (DrvGfxROM2 + 0x00000, DrvGfxROM2 + 0x08000 + 0x00000, 0x02000);
- memcpy (DrvGfxROM2 + 0x04000, DrvGfxROM2 + 0x08000 + 0x02000, 0x02000);
- memcpy (DrvGfxROM2 + 0x02000, DrvGfxROM2 + 0x08000 + 0x04000, 0x02000);
- memcpy (DrvGfxROM2 + 0x06000, DrvGfxROM2 + 0x08000 + 0x06000, 0x02000);
- memset (DrvGfxROM2 + 0x08000, 0, 0x08000);
-
- if (BurnLoadRom(DrvColPROM + 0x00000, 12, 1)) return 1;
-
- DrvGfxDecode();
- }
-
- M6502Init(0, TYPE_DECO222);
- M6502Open(0);
- M6502MapMemory(DrvM6502RAM0A, 0x0000, 0x0fff, MAP_RAM);
- //M6502MapMemory(DrvM6502RAM0B, 0x1000, 0x17ff, MAP_RAM); // in handler
- M6502MapMemory(DrvSprRAM, 0x1800, 0x19ff, MAP_RAM);
- M6502MapMemory(DrvTxtRAM, 0x2000, 0x27ff, MAP_RAM);
- M6502MapMemory(DrvVidRAM, 0x2800, 0x2fff, MAP_RAM);
- M6502MapMemory(DrvM6502ROM0, 0x8000, 0xffff, MAP_ROM);
- M6502SetWriteHandler(shootout_main_write);
- M6502SetReadHandler(shootout_main_read);
- M6502Close();
-
- M6502Init(1, TYPE_M6502);
- M6502Open(1);
- M6502MapMemory(DrvM6502RAM1, 0x0000, 0x07ff, MAP_RAM);
- M6502MapMemory(DrvM6502ROM1, 0xc000, 0xffff, MAP_ROM);
- M6502SetWriteHandler(shootout_sound_write);
- M6502SetReadHandler(shootout_sound_read);
- M6502Close();
-
- BurnYM2203Init(1, 1500000, &DrvYM2203IRQHandler, DrvSynchroniseStream, DrvGetTime, 0);
- BurnTimerAttachM6502(1500000);
- soundcpu_mhz = 1500000;
- BurnYM2203SetAllRoutes(0, 1.00, BURN_SND_ROUTE_BOTH);
-
- GenericTilesInit();
- GenericTilemapInit(0, TILEMAP_SCAN_ROWS, background_map_callback, 8, 8, 32, 32);
- GenericTilemapInit(1, TILEMAP_SCAN_ROWS, foreground_map_callback, 8, 8, 32, 32);
- GenericTilemapSetGfx(0, DrvGfxROM2, 2, 8, 8, 0x20000, 0x00, 0xf);
- GenericTilemapSetGfx(1, DrvGfxROM0, 2, 8, 8, 0x10000, 0x80, 0xf);
- GenericTilemapSetOffsets(TMAP_GLOBAL, 0, -8);
- GenericTilemapSetTransparent(1, 0);
-
- DrvDoReset();
-
- return 0;
-}
-
-static INT32 ShootoujInit()
-{
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(DrvM6502ROM0 + 0x00000, 0, 1)) return 1;
- if (BurnLoadRom(DrvM6502ROM0 + 0x08000, 1, 1)) return 1;
- if (BurnLoadRom(DrvM6502ROM0 + 0x10000, 2, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x00000, 3, 1)) return 1;
- memcpy (DrvGfxROM0 + 0x4000, DrvGfxROM0 + 0x2000, 0x2000);
-
- if (BurnLoadRom(DrvGfxROM1 + 0x00000, 4, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x10000, 5, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x20000, 6, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM2 + 0x08000, 7, 1)) return 1;
- memcpy (DrvGfxROM2 + 0x00000, DrvGfxROM2 + 0x08000 + 0x00000, 0x02000);
- memcpy (DrvGfxROM2 + 0x04000, DrvGfxROM2 + 0x08000 + 0x02000, 0x02000);
- memcpy (DrvGfxROM2 + 0x02000, DrvGfxROM2 + 0x08000 + 0x04000, 0x02000);
- memcpy (DrvGfxROM2 + 0x06000, DrvGfxROM2 + 0x08000 + 0x06000, 0x02000);
- memset (DrvGfxROM2 + 0x08000, 0, 0x08000);
-
- if (BurnLoadRom(DrvColPROM + 0x00000, 8, 1)) return 1;
-
- DrvGfxDecode();
- }
-
- M6502Init(0, (shootoutb) ? TYPE_DECO222 : TYPE_M6502);
- M6502Open(0);
- M6502MapMemory(DrvM6502RAM0A, 0x0000, 0x0fff, MAP_RAM);
- M6502MapMemory(DrvSprRAM, 0x2000, 0x21ff, MAP_RAM);
- M6502MapMemory(DrvTxtRAM, 0x3000, 0x37ff, MAP_RAM);
- M6502MapMemory(DrvVidRAM, 0x3800, 0x3fff, MAP_RAM);
- M6502MapMemory(DrvM6502ROM0, 0x8000, 0xffff, MAP_ROM);
- M6502SetWriteHandler(shootout_main_write);
- M6502SetReadHandler(shootout_main_read);
- M6502Close();
-
- // Fake so we can re-use functions
- M6502Init(1, TYPE_M6502);
- M6502Open(1);
- M6502MapMemory(DrvM6502ROM0, 0x8000, 0xffff, MAP_ROM);
- M6502Close();
-
- BurnYM2203Init(1, 1500000, &DrvYM2203IRQHandler, DrvSynchroniseStream, DrvGetTime, 0);
- BurnYM2203SetPorts(0, NULL, NULL, &ym2203_write_port_A, &ym2203_write_port_B);
- BurnTimerAttachM6502(2000000);
- soundcpu_mhz = 2000000;
- BurnYM2203SetAllRoutes(0, 1.00, BURN_SND_ROUTE_BOTH);
-
- GenericTilesInit();
- GenericTilemapInit(0, TILEMAP_SCAN_ROWS, background_map_callback, 8, 8, 32, 32);
- GenericTilemapInit(1, TILEMAP_SCAN_ROWS, foreground_map_callback, 8, 8, 32, 32);
- GenericTilemapSetGfx(0, DrvGfxROM2, 2, 8, 8, 0x20000, 0x00, 0xf);
- GenericTilemapSetGfx(1, DrvGfxROM0, 2, 8, 8, 0x10000, 0x80, 0xf);
- GenericTilemapSetOffsets(TMAP_GLOBAL, 0, -8);
- GenericTilemapSetTransparent(1, 0);
-
- DrvDoReset();
-
- return 0;
-}
-
-static INT32 ShootoutbInit()
-{
- shootoutb = 1;
- return ShootoujInit();
-}
-
-static INT32 DrvExit()
-{
- GenericTilesExit();
-
- M6502Exit();
- BurnYM2203Exit();
-
- BurnFree (AllMem);
-
- shootoutb = 0;
-
- return 0;
-}
-
-static void DrvPaletteInit()
-{
- for (INT32 i = 0; i < 256; i++)
- {
- INT32 bit0 = (DrvColPROM[i] >> 0) & 0x01;
- INT32 bit1 = (DrvColPROM[i] >> 1) & 0x01;
- INT32 bit2 = (DrvColPROM[i] >> 2) & 0x01;
- INT32 r = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
-
- bit0 = (DrvColPROM[i] >> 3) & 0x01;
- bit1 = (DrvColPROM[i] >> 4) & 0x01;
- bit2 = (DrvColPROM[i] >> 5) & 0x01;
- INT32 g = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
-
- bit0 = 0;
- bit1 = (DrvColPROM[i] >> 6) & 0x01;
- bit2 = (DrvColPROM[i] >> 7) & 0x01;
- INT32 b = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
-
- DrvPalette[i] = BurnHighCol(r,g,b,0);
- }
-}
-
-static void draw_sprites(INT32 bank_bits)
-{
- const UINT8 *source = DrvSprRAM+127*4;
-
- bool m_bFlicker = (nCurrentFrame & 1) != 0;
-
- for(INT32 count=0; count<128; count++)
- {
- int attributes = source[1];
-
- if ( attributes & 0x01 ){
- if( m_bFlicker || (attributes&0x02)==0 ){
- int priority_mask = (attributes&0x08)?0x2:0;
- int sx = (240 - source[2])&0xff;
- int sy = (240 - source[0])&0xff;
- int vx, vy;
- int number = source[3] | ((attributes<> 4) & 0x01;
- Bit1 = (DrvProm[i] >> 5) & 0x01;
- Bit2 = (DrvProm[i] >> 6) & 0x01;
- Bit3 = (DrvProm[i] >> 7) & 0x01;
- r = 0x0e * Bit0 + 0x1f * Bit1 + 0x43 * Bit2 + 0x8f * Bit3;
-
- Bit0 = (DrvProm[i] >> 0) & 0x01;
- Bit1 = (DrvProm[i] >> 1) & 0x01;
- Bit2 = (DrvProm[i] >> 2) & 0x01;
- Bit3 = (DrvProm[i] >> 3) & 0x01;
- g = 0x0e * Bit0 + 0x1f * Bit1 + 0x43 * Bit2 + 0x8f * Bit3;
-
- Bit0 = (DrvProm[i + 0x100] >> 0) & 0x01;
- Bit1 = (DrvProm[i + 0x100] >> 1) & 0x01;
- Bit2 = (DrvProm[i + 0x100] >> 2) & 0x01;
- Bit3 = (DrvProm[i + 0x100] >> 3) & 0x01;
- b = 0x0e * Bit0 + 0x1f * Bit1 + 0x43 * Bit2 + 0x8f * Bit3;
-
- DrvPalette[i] = BurnHighCol(r, g, b, 0);
- }
-}
-
-static void DrvRenderBgLayer(INT32 RenderCategory)
-{
- INT32 mx, my, Attr, Code, Colour, x, y, TileIndex = 0, Category;
-
- for (my = 0; my < 32; my++) {
- for (mx = 0; mx < 32; mx++) {
- Attr = DrvColourRam[TileIndex];
- Code = (DrvVideoRam[TileIndex] + ((Attr & 0x07) << 8)) & 0x7ff;
- Colour = ((Attr & 0x10) >> 3) | ((Attr & 0x20) >> 5);
- Category = (Attr & 0x80) >> 7;
-
- if (Category == RenderCategory) {
- x = 8 * mx;
- y = 8 * my;
-
- y -= 16;
-
- x = 248 - x;
-
- if (RenderCategory) {
- if (x > 8 && x < 248 && y > 8 && y < 216) {
- Render8x8Tile_Mask(pTransDraw, Code, x, y, Colour, 3, 0, 128, DrvChars);
- } else {
- Render8x8Tile_Mask_Clip(pTransDraw, Code, x, y, Colour, 3, 0, 128, DrvChars);
- }
- } else {
- if (x > 8 && x < 248 && y > 8 && y < 216) {
- Render8x8Tile(pTransDraw, Code, x, y, Colour, 3, 128, DrvChars);
- } else {
- Render8x8Tile_Clip(pTransDraw, Code, x, y, Colour, 3, 128, DrvChars);
- }
- }
- }
-
- TileIndex++;
- }
- }
-}
-
-static void DrawSprites()
-{
- for (INT32 Offs = 0; Offs < 0x100; Offs += 4) {
- INT32 sx, sy, Code, Colour, xFlip, yFlip;
-
- Code = (DrvSpriteRam[Offs + 3] + ((DrvSpriteRam[Offs + 1] & 0x03) << 8)) & 0x3ff;
- Colour = (DrvSpriteRam[Offs + 1] & 0xf0) >> 4;
-
- sx = DrvSpriteRam[Offs + 2] - 2;
- sy = DrvSpriteRam[Offs];
-
- xFlip = DrvSpriteRam[Offs + 1] & 0x08;
- yFlip = DrvSpriteRam[Offs + 1] & 0x04;
-
- sy -= 16;
-
- if (xFlip) {
- if (yFlip) {
- Render16x16Tile_Mask_FlipXY_Clip(pTransDraw, Code, sx, sy, Colour, 3, 0, 0, DrvSprites);
- Render16x16Tile_Mask_FlipXY_Clip(pTransDraw, Code, sx - 256, sy, Colour, 3, 0, 0, DrvSprites);
- } else {
- Render16x16Tile_Mask_FlipX_Clip(pTransDraw, Code, sx, sy, Colour, 3, 0, 0, DrvSprites);
- Render16x16Tile_Mask_FlipX_Clip(pTransDraw, Code, sx - 256, sy, Colour, 3, 0, 0, DrvSprites);
- }
- } else {
- if (yFlip) {
- Render16x16Tile_Mask_FlipY_Clip(pTransDraw, Code, sx, sy, Colour, 3, 0, 0, DrvSprites);
- Render16x16Tile_Mask_FlipY_Clip(pTransDraw, Code, sx - 256, sy, Colour, 3, 0, 0, DrvSprites);
- } else {
- Render16x16Tile_Mask_Clip(pTransDraw, Code, sx, sy, Colour, 3, 0, 0, DrvSprites);
- Render16x16Tile_Mask_Clip(pTransDraw, Code, sx - 256, sy, Colour, 3, 0, 0, DrvSprites);
- }
- }
- }
-}
-
-static void DrvDraw()
-{
- BurnTransferClear();
- DrvCalcPalette();
- if (nBurnLayer & 0x01) DrvRenderBgLayer(0);
- if (nSpriteEnable & 0x02) DrawSprites();
- if (nBurnLayer & 0x04) DrvRenderBgLayer(1);
- BurnTransferCopy(DrvPalette);
-}
-
-static INT32 DrvFrame()
-{
- INT32 nCyclesTotal[2] = { 2000000 / 58, 1500000 / 58 };
- INT32 nInterleave = 100;
-
- if (DrvReset) DrvDoReset();
-
- DrvMakeInputs();
-
- M6809NewFrame();
- M6502NewFrame();
-
- M6809Open(0);
- M6502Open(0);
-
- for (INT32 i = 0; i < nInterleave; i++) {
- INT32 nCurrentCPU, nNext;
-
- nCurrentCPU = 0;
- nNext = (i + 1) * nCyclesTotal[nCurrentCPU] / nInterleave;
- BurnTimerUpdate(nNext);
- if (i == (nInterleave - 1)) M6809SetIRQLine(0x20, CPU_IRQSTATUS_AUTO);
-
- nCurrentCPU = 1;
- nNext = (i + 1) * nCyclesTotal[nCurrentCPU] / nInterleave;
- BurnTimerUpdateYM3526(nNext);
- }
-
- BurnTimerEndFrame(nCyclesTotal[0]);
- BurnTimerEndFrameYM3526(nCyclesTotal[1]);
-
- if (pBurnSoundOut) {
- BurnYM2203Update(pBurnSoundOut, nBurnSoundLen);
- BurnYM3526Update(pBurnSoundOut, nBurnSoundLen);
- }
-
- M6809Close();
- M6502Close();
-
- if (pBurnDraw) DrvDraw();
-
- return 0;
-}
-
-static INT32 DrvScan(INT32 nAction, INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin != NULL) {
- *pnMin = 0x029719;
- }
-
- if (nAction & ACB_MEMORY_RAM) {
- memset(&ba, 0, sizeof(ba));
- ba.Data = RamStart;
- ba.nLen = RamEnd-RamStart;
- ba.szName = "All Ram";
- BurnAcb(&ba);
- }
-
- if (nAction & ACB_DRIVER_DATA) {
- M6809Scan(nAction);
- M6502Scan(nAction);
-
- BurnYM2203Scan(nAction, pnMin);
- BurnYM3526Scan(nAction, pnMin);
-
- SCAN_VAR(I8751Return);
- SCAN_VAR(CurrentPtr);
- SCAN_VAR(CurrentTable);
- SCAN_VAR(InMath);
- SCAN_VAR(MathParam);
- SCAN_VAR(DrvSoundLatch);
- }
-
- return 0;
-}
-
-struct BurnDriver BurnDrvSidepckt = {
- "sidepckt", NULL, NULL, NULL, "1986",
- "Side Pocket (World)\0", NULL, "Data East Corporation", "Miscellaneous",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 3, HARDWARE_PREFIX_DATAEAST, GBF_SPORTSMISC, 0,
- NULL, DrvRomInfo, DrvRomName, NULL, NULL, DrvInputInfo, DrvDIPInfo,
- SidepcktInit, DrvExit, DrvFrame, NULL, DrvScan,
- NULL, 0x100, 256, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvSidepcktj = {
- "sidepcktj", "sidepckt", NULL, NULL, "1986",
- "Side Pocket (Japan)\0", NULL, "Data East Corporation", "Miscellaneous",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 3, HARDWARE_PREFIX_DATAEAST, GBF_SPORTSMISC, 0,
- NULL, DrvjRomInfo, DrvjRomName, NULL, NULL, DrvInputInfo, DrvjDIPInfo,
- SidepcktjInit, DrvExit, DrvFrame, NULL, DrvScan,
- NULL, 0x100, 256, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvSidepcktb = {
- "sidepcktb", "sidepckt", NULL, NULL, "1986",
- "Side Pocket (bootleg set 1)\0", NULL, "bootleg", "Miscellaneous",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 3, HARDWARE_PREFIX_DATAEAST, GBF_SPORTSMISC, 0,
- NULL, DrvbRomInfo, DrvbRomName, NULL, NULL, DrvInputInfo, DrvbDIPInfo,
- SidepcktbInit, DrvExit, DrvFrame, NULL, DrvScan,
- NULL, 0x100, 256, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvSidepcktb2 = {
- "sidepcktb2", "sidepckt", NULL, NULL, "1986",
- "Side Pocket (bootleg set 2)\0", NULL, "bootleg", "Miscellaneous",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 3, HARDWARE_PREFIX_DATAEAST, GBF_SPORTSMISC, 0,
- NULL, Drvb2RomInfo, Drvb2RomName, NULL, NULL, DrvInputInfo, DrvDIPInfo,
- SidepcktbInit, DrvExit, DrvFrame, NULL, DrvScan,
- NULL, 0x100, 256, 224, 4, 3
-};
diff --git a/jan/src/burn/drv/dataeast/d_simpl156.cpp b/jan/src/burn/drv/dataeast/d_simpl156.cpp
deleted file mode 100644
index 902c9eed2..000000000
--- a/jan/src/burn/drv/dataeast/d_simpl156.cpp
+++ /dev/null
@@ -1,1154 +0,0 @@
-// FB Alpha Data East Simple 156 System driver module
-// Based on MAME driver by
-
-#include "tiles_generic.h"
-#include "arm_intf.h"
-#include "msm6295.h"
-#include "eeprom.h"
-#include "deco16ic.h"
-
-static UINT8 *AllMem;
-static UINT8 *MemEnd;
-static UINT8 *AllRam;
-static UINT8 *RamEnd;
-static UINT8 *DrvArmROM;
-static UINT8 *DrvGfxROM0;
-static UINT8 *DrvGfxROM1;
-static UINT8 *DrvGfxROM2;
-static UINT8 *DrvSndROM0;
-static UINT8 *DrvSndROM1;
-static UINT8 *DrvEEPROM;
-static UINT8 *DrvArmRAM;
-static UINT8 *DrvSysRAM;
-static UINT8 *DrvPalRAM;
-static UINT8 *DrvSprRAM;
-
-static UINT32 *DrvPalette;
-static UINT8 DrvRecalc;
-
-static UINT8 DrvJoy1[16];
-static UINT8 DrvJoy2[16];
-static UINT8 DrvDips[1];
-static UINT16 DrvInputs[2];
-static UINT8 DrvReset;
-
-static INT32 charlienmode = 0;
-
-static INT32 DrvOkiBank;
-
-static struct BurnInputInfo Simpl156InputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy1 + 0, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy2 + 7, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy2 + 0, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy2 + 1, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy2 + 2, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy2 + 3, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy2 + 4, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy2 + 5, "p1 fire 2" },
- {"P1 Button 3", BIT_DIGITAL, DrvJoy2 + 6, "p1 fire 3" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy1 + 1, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy2 + 15, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvJoy2 + 8, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy2 + 9, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy2 + 10, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy2 + 11, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy2 + 12, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy2 + 13, "p2 fire 2" },
- {"P2 Button 3", BIT_DIGITAL, DrvJoy2 + 14, "p2 fire 3" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service", BIT_DIGITAL, DrvJoy1 + 2, "service" },
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
-};
-
-STDINPUTINFO(Simpl156)
-
-static struct BurnDIPInfo Simpl156DIPList[]=
-{
- {0x14, 0xff, 0xff, 0x08, NULL },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x14, 0x01, 0x08, 0x08, "Off" },
- {0x14, 0x01, 0x08, 0x00, "On" },
-};
-
-STDDIPINFO(Simpl156)
-
-//-----------------------------------------------------------------------------------------------------------------------------------------------
-
-static void oki_set_bank(INT32 bank)
-{
- if (DrvOkiBank != (bank & 0x07)) {
- DrvOkiBank = bank & 0x07;
- memcpy (DrvSndROM0 + 0x100000, DrvSndROM1 + 0x40000 * DrvOkiBank, 0x40000);
- }
-}
-
-// use INT type for ADDRESS to kill mingw warnings
-static void CommonWrite32(INT32 address, UINT32 data)
-{
- Write16Long(DrvArmRAM, 0x000000, 0x007fff) // 16-bit
- Write16Long(DrvSprRAM, 0x010000, 0x011fff) // 16-bit
- Write16Long(DrvPalRAM, 0x020000, 0x020fff) // 16-bit
- Write16Long(((UINT8*)deco16_pf_control[0]), 0x040000, 0x04001f) // 16-bit
- Write16Long(deco16_pf_ram[0], 0x050000, 0x051fff) // 16-bit
- Write16Long(deco16_pf_ram[0], 0x052000, 0x053fff) // 16-bit mirror
- Write16Long(deco16_pf_ram[1], 0x054000, 0x055fff) // 16-bit
- Write16Long(deco16_pf_rowscroll[0], 0x060000, 0x061fff) // 16-bit
- Write16Long(deco16_pf_rowscroll[1], 0x064000, 0x065fff) // 16-bit
-
- if (address == 0x030000) {
- oki_set_bank(data);
- EEPROMWrite(data & 0x20, data & 0x40, data & 0x10);
- return;
- }
-}
-
-static void CommonWrite8(INT32 address, UINT8 data)
-{
- Write16Byte(DrvArmRAM, 0x000000, 0x007fff) // 16-bit
- Write16Byte(DrvSprRAM, 0x010000, 0x011fff) // 16-bit
- Write16Byte(DrvPalRAM, 0x020000, 0x020fff) // 16-bit
- Write16Byte(((UINT8*)deco16_pf_control[0]), 0x040000, 0x04001f) // 16-bit
- Write16Byte(deco16_pf_ram[0], 0x050000, 0x051fff) // 16-bit
- Write16Byte(deco16_pf_ram[0], 0x052000, 0x053fff) // 16-bit mirror
- Write16Byte(deco16_pf_ram[1], 0x054000, 0x055fff) // 16-bit
- Write16Byte(deco16_pf_rowscroll[0], 0x060000, 0x061fff) // 16-bit
- Write16Byte(deco16_pf_rowscroll[1], 0x064000, 0x065fff) // 16-bit
-
- if ((address & ~3) == 0x030000) {
- oki_set_bank(data);
- EEPROMWrite(data & 0x20, data & 0x40, data & 0x10);
- return;
- }
-}
-
-static UINT32 CommonRead32(INT32 address)
-{
- Read16Long(DrvArmRAM, 0x000000, 0x007fff) // 16-bit
- Read16Long(DrvSprRAM, 0x010000, 0x011fff) // 16-bit
- Read16Long(DrvPalRAM, 0x020000, 0x020fff) // 16-bit
- Read16Long(((UINT8*)deco16_pf_control[0]), 0x040000, 0x04001f) // 16-bit
- Read16Long(deco16_pf_ram[0], 0x050000, 0x051fff) // 16-bit
- Read16Long(deco16_pf_ram[0], 0x052000, 0x053fff) // 16-bit mirror
- Read16Long(deco16_pf_ram[1], 0x054000, 0x055fff) // 16-bit
- Read16Long(deco16_pf_rowscroll[0], 0x060000, 0x061fff) // 16-bit
- Read16Long(deco16_pf_rowscroll[1], 0x064000, 0x065fff) // 16-bit
-
- if (address == 0x30000) {
- return DrvInputs[1];
- }
-
- return 0;
-}
-
-static UINT8 CommonRead8(INT32 address)
-{
- Read16Byte(DrvArmRAM, 0x000000, 0x007fff) // 16-bit
- Read16Byte(DrvSprRAM, 0x010000, 0x011fff) // 16-bit
- Read16Byte(DrvPalRAM, 0x020000, 0x020fff) // 16-bit
- Read16Byte(((UINT8*)deco16_pf_control[0]), 0x040000, 0x04001f) // 16-bit
- Read16Byte(deco16_pf_ram[0], 0x050000, 0x051fff) // 16-bit
- Read16Byte(deco16_pf_ram[0], 0x052000, 0x053fff) // 16-bit mirror
- Read16Byte(deco16_pf_ram[1], 0x054000, 0x055fff) // 16-bit
- Read16Byte(deco16_pf_rowscroll[0], 0x060000, 0x061fff) // 16-bit
- Read16Byte(deco16_pf_rowscroll[1], 0x064000, 0x065fff) // 16-bit
-
- switch (address)
- {
- case 0x030000:
- case 0x030001:
- case 0x030002:
- case 0x030003:
- return 0xff;
- }
-
- return 0;
-}
-
-//-----------------------------------------------------------------------------------------------------------------------------------------------
-
-static UINT32 map_offsets[3]; // memory, msm0, msm1
-
-void simpl156_write_byte(UINT32 address, UINT8 data)
-{
- if ((address & 0xf80000) == map_offsets[0]) {
- CommonWrite8(address & 0x7ffff, data);
- }
-
- if ((address & ~3) == map_offsets[1]) {
- MSM6295Command(0, data);
- return;
- }
-
- if ((address & ~3) == map_offsets[2]) {
- MSM6295Command(1, data);
- return;
- }
-}
-
-void simpl156_write_long(UINT32 address, UINT32 data)
-{
- if ((address & 0xf80000) == map_offsets[0]) {
- CommonWrite32(address & 0x7ffff, data);
- }
-
- if (address == map_offsets[1]) {
- MSM6295Command(0, data);
- return;
- }
-
- if (address == map_offsets[2]) {
- MSM6295Command(1, data);
- return;
- }
-}
-
-UINT8 simpl156_read_byte(UINT32 address)
-{
- if ((address & 0xf80000) == map_offsets[0]) {
- return CommonRead8(address & 0x7ffff);
- }
-
- if ((address & ~3) == 0x200000) {
- return ~0; // inputs -- only read once on boot
- }
-
- if ((address & ~3) == map_offsets[1]) {
- return MSM6295ReadStatus(0);
- }
-
- if ((address & ~3) == map_offsets[2]) {
- return MSM6295ReadStatus(1);
- }
-
- return 0;
-}
-
-UINT32 simpl156_read_long(UINT32 address)
-{
- if ((address & 0xf80000) == map_offsets[0]) {
- return CommonRead32(address & 0x7ffff);
- }
-
- if (address == 0x200000) {
- return 0xffff0000 | (EEPROMRead() << 8) | DrvInputs[0] | deco16_vblank; // party time needs proper vblank
- }
-
- if (address == map_offsets[1]) {
- return MSM6295ReadStatus(0);
- }
-
- if (address == map_offsets[2]) {
- return MSM6295ReadStatus(1);
- }
-
- return 0;
-}
-
-static void common_map(INT32 ram, INT32 sfx, INT32 mus)
-{
- map_offsets[0] = ram; // ram regions
- map_offsets[1] = sfx; // oki #0 (sfx)
- map_offsets[2] = mus; // oki #1 (music)
-
- ArmInit(0);
- ArmOpen(0);
- ArmMapMemory(DrvArmROM, 0x000000, 0x07ffff, MAP_ROM);
- ArmMapMemory(DrvSysRAM, 0x201000, 0x201fff, MAP_RAM); // 32-bit
- // ram regions and oki addresses set in map offsets
- ArmSetWriteByteHandler(simpl156_write_byte);
- ArmSetWriteLongHandler(simpl156_write_long);
- ArmSetReadByteHandler(simpl156_read_byte);
- ArmSetReadLongHandler(simpl156_read_long);
- ArmClose();
-}
-
-static void mitchell_map() { common_map(0x180000, 0x100000, 0x140000); }
-static void magdrop_map() { common_map(0x380000, 0x400000, 0x340000); }
-static void joemacr_map() { common_map(0x100000, 0x180000, 0x1c0000); }
-static void chainrec_map() { common_map(0x400000, 0x480000, 0x3c0000); }
-static void magdropp_map() { common_map(0x680000, 0x780000, 0x4c0000); }
-
-static INT32 simpl156_bank_callback(const INT32 bank)
-{
- return ((bank >> 4) & 0x7) * 0x1000;
-}
-
-static INT32 DrvDoReset()
-{
- memset (AllRam, 0, RamEnd - AllRam);
-
- ArmOpen(0);
- ArmReset();
- ArmClose();
-
- MSM6295Reset(0);
- MSM6295Reset(1);
-
- EEPROMReset();
-
- if (EEPROMAvailable() == 0) {
- EEPROMFill(DrvEEPROM, (charlienmode) ? 0xff : 0x00, 0x80);
- }
-
- deco16Reset();
-
- DrvOkiBank = -1;
- oki_set_bank(0);
-
- return 0;
-}
-
-static INT32 MemIndex()
-{
- UINT8 *Next; Next = AllMem;
-
- DrvArmROM = Next; Next += 0x0080000;
-
- DrvGfxROM0 = Next; Next += 0x0400000;
- DrvGfxROM1 = Next; Next += 0x0400000;
- DrvGfxROM2 = Next; Next += 0x1000000;
-
- MSM6295ROM = Next;
- DrvSndROM0 = Next; Next += 0x0180000;
- DrvSndROM1 = Next; Next += 0x0200000;
-
- DrvPalette = (UINT32*)Next; Next += 0x400 * sizeof(UINT32);
-
- DrvEEPROM = Next; Next += 0x0000080;
-
- AllRam = Next;
-
- DrvArmRAM = Next; Next += 0x0004000;
- DrvSysRAM = Next; Next += 0x0002000;
- DrvPalRAM = Next; Next += 0x0001000;
- DrvSprRAM = Next; Next += 0x0001000;
-
- RamEnd = Next;
-
- MemEnd = Next;
-
- return 0;
-}
-
-static void decode_samples()
-{
- UINT8 *tmp = (UINT8*)BurnMalloc(0x200000);
-
- for (INT32 i = 0; i < 0x200000; i++) {
- tmp[((i & 1) << 20) | (i >> 1)] = DrvSndROM1[i];
- }
-
- memcpy (DrvSndROM1, tmp, 0x200000);
-
- BurnFree (tmp);
-}
-
-static void pCommonSpeedhackCallback()
-{
- ArmIdleCycles(1120); // ok?
-}
-
-static INT32 CommonInit(INT32 (*pRomLoad)(INT32 *, INT32 *), void (*pMap)(), INT32 msm, UINT32 speedhack)
-{
- BurnSetRefreshRate(58.00);
-
- INT32 gfx0len, gfx1len;
-
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- if (pRomLoad) {
-
- if (pRomLoad(&gfx0len, &gfx1len)) return 1;
-
- deco156_decrypt(DrvArmROM, 0x080000);
-
- deco56_decrypt_gfx(DrvGfxROM0, gfx0len);
-
- deco16_tile_decode(DrvGfxROM0, DrvGfxROM1, gfx0len, 0);
- deco16_tile_decode(DrvGfxROM0, DrvGfxROM0, gfx0len, 1);
-
- deco16_sprite_decode(DrvGfxROM2, gfx1len);
-
- decode_samples();
- }
-
- if (pMap) {
- pMap();
- }
-
- ArmSetSpeedHack(speedhack ? speedhack : ~0, pCommonSpeedhackCallback);
-
- EEPROMInit(&eeprom_interface_93C46);
-
- MSM6295Init(0, 1006875 / 132, 1);
- MSM6295Init(1, 2013750 / 132 / msm, 1);
- MSM6295SetRoute(0, 0.60, BURN_SND_ROUTE_BOTH);
- MSM6295SetRoute(1, 0.20, BURN_SND_ROUTE_BOTH);
-
- deco16Init(1, 0, 1);
- deco16_set_bank_callback(0, simpl156_bank_callback);
- deco16_set_bank_callback(1, simpl156_bank_callback);
- deco16_set_graphics(DrvGfxROM0, gfx0len*2, DrvGfxROM1, gfx0len*2, NULL, 0);
- deco16_set_global_offsets(0, 8);
-
- GenericTilesInit();
-
- DrvDoReset();
-
- return 0;
-}
-
-static INT32 DrvExit()
-{
- EEPROMExit();
-
- ArmExit();
-
- MSM6295Exit(0);
- MSM6295Exit(1);
- MSM6295ROM = NULL;
-
- GenericTilesExit();
-
- deco16Exit();
-
- BurnFree (AllMem);
-
- charlienmode = 0;
-
- return 0;
-}
-
-static void simpl156_palette_recalc()
-{
- UINT16 *p = (UINT16*)DrvPalRAM;
-
- for (INT32 i = 0; i < 0x1000 / 4; i++)
- {
- INT32 r = (BURN_ENDIAN_SWAP_INT16 (p[i]) >> 0) & 0x1f; //Seb
- INT32 g = (BURN_ENDIAN_SWAP_INT16 (p[i]) >> 5) & 0x1f; //Seb
- INT32 b = (BURN_ENDIAN_SWAP_INT16 (p[i]) >> 10) & 0x1f; //Seb
-
- r = (r << 3) | (r >> 2);
- g = (g << 3) | (g >> 2);
- b = (b << 3) | (b >> 2);
-
- DrvPalette[i] = BurnHighCol(r, g, b, 0);
- }
-}
-
-static void draw_sprites()
-{
- UINT16 *spriteram = (UINT16*)DrvSprRAM;
-
- for (INT32 offs = (0x1400 / 4) - 4; offs >= 0; offs -= 4)
- {
- INT32 mult, inc;
-
- INT32 sy = BURN_ENDIAN_SWAP_INT16 (spriteram[offs + 0]); //Seb
- if ((sy & 0x1000) && (nCurrentFrame & 1)) continue;
-
- INT32 code = BURN_ENDIAN_SWAP_INT16 (spriteram[offs + 1]); //Seb
- INT32 sx = BURN_ENDIAN_SWAP_INT16 (spriteram[offs + 2]); //Seb
- INT32 color = (sx >> 9) & 0x1f;
- INT32 pri = sx & 0xc000;
- INT32 flipx = sy & 0x2000;
- INT32 flipy = sy & 0x4000;
- INT32 multi = (1 << ((sy & 0x0600) >> 9)) - 1;
-
- switch (pri)
- {
- case 0x0000: pri = 0x00; break;
- case 0x4000: pri = 0xf0; break;
- case 0x8000:
- case 0xc000: pri = 0xfc; break;
- }
-
- sx = sx & 0x01ff;
- sy = sy & 0x01ff;
- if (sx >= 320) sx -= 512;
- if (sy >= 256) sy -= 512;
- sy = 240 - sy;
- sx = 304 - sx;
-
- if (sx > 320) continue;
-
- code &= ~multi;
-
- if (flipy) {
- inc = -1;
- } else {
- code += multi;
- inc = 1;
- }
-
- if (1)//flipscreen
- {
- sy = 240 - sy;
- sx = 304 - sx;
- flipx = !flipx;
- flipy = !flipy;
- mult = 16;
- }
- else
- mult = -16;
-
- while (multi >= 0)
- {
- deco16_draw_prio_sprite(pTransDraw, DrvGfxROM2, code - multi * inc, (color << 4)+0x200, sx, sy + mult * multi, flipx, flipy, pri);
-
- multi--;
- }
- }
-}
-
-static INT32 DrvDraw()
-{
- simpl156_palette_recalc();
-
- deco16_pf12_update();
- deco16_clear_prio_map();
-
- for (INT32 i = 0; i < nScreenWidth * nScreenHeight; i++) {
- pTransDraw[i] = 0x100;
- }
-
- deco16_draw_layer(1, pTransDraw, 2);
- deco16_draw_layer(0, pTransDraw, 4);
-
- draw_sprites();
-
- BurnTransferCopy(DrvPalette);
-
- return 0;
-}
-
-static INT32 DrvFrame()
-{
- if (DrvReset) {
- DrvDoReset();
- }
-
- {
- DrvInputs[0] = 0x0007 | (DrvDips[0] & 8);
- DrvInputs[1] = 0xffff;
-
- for (INT32 i = 0; i < 16; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- }
- }
-
- INT32 nTotalCycles = 28000000 / 58;
-
- ArmOpen(0);
- deco16_vblank = 0x00;
- ArmRun(nTotalCycles - 12240);
- ArmSetIRQLine(ARM_IRQ_LINE, CPU_IRQSTATUS_AUTO);
- deco16_vblank = 0xf0;
- ArmRun(12240);
- ArmClose();
-
- if (pBurnSoundOut) {
- memset (pBurnSoundOut, 0, nBurnSoundLen * sizeof(INT16) * 2);
- MSM6295Render(0, pBurnSoundOut, nBurnSoundLen);
- MSM6295Render(1, pBurnSoundOut, nBurnSoundLen);
- }
-
- if (pBurnDraw) {
- DrvDraw();
- }
-
- return 0;
-}
-
-static INT32 DrvScan(INT32 nAction, INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin != NULL) {
- *pnMin = 0x029722;
- }
-
- if (nAction & ACB_MEMORY_RAM) {
- memset(&ba, 0, sizeof(ba));
- ba.Data = AllRam;
- ba.nLen = RamEnd-AllRam;
- ba.szName = "All Ram";
- BurnAcb(&ba);
- }
-
- if (nAction & ACB_DRIVER_DATA) {
- ArmScan(nAction);
-
- MSM6295Scan(0, nAction);
- MSM6295Scan(1, nAction);
-
- deco16Scan();
-
- SCAN_VAR(DrvOkiBank);
-
- if (nAction & ACB_WRITE) {
- INT32 bank = DrvOkiBank;
- DrvOkiBank = -1;
- oki_set_bank(bank);
- }
- }
-
- return 0;
-}
-
-
-// Joe & Mac Returns (World, Version 1.1, 1994.05.27)
-
-static struct BurnRomInfo joemacrRomDesc[] = {
- { "05.u29", 0x080000, 0x74e9a158, 1 | BRF_PRG | BRF_ESS }, // 0 ARM Code
-
- { "01.u8l", 0x080000, 0x4da4a2c1, 2 | BRF_GRA }, // 1 Characters & Tiles
- { "02.u8h", 0x080000, 0x642c08db, 2 | BRF_GRA }, // 2
-
- { "mbn01", 0x080000, 0xa3a37353, 3 | BRF_GRA }, // 3 Sprites
- { "mbn02", 0x080000, 0xaa2230c5, 3 | BRF_GRA }, // 4
-
- { "mbn04", 0x040000, 0xdcbd4771, 4 | BRF_SND }, // 5 OKI SFX Samples
-
- { "mbn03", 0x200000, 0x70b71a2a, 5 | BRF_SND }, // 6 OKI Music Samples
-};
-
-STD_ROM_PICK(joemacr)
-STD_ROM_FN(joemacr)
-
-static INT32 joemacrLoadCallback(INT32 *gfxlen0, INT32 *gfxlen1)
-{
- if (BurnLoadRom(DrvArmROM + 0x000000, 0, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x000000, 1, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x080000, 2, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM2 + 0x000001, 3, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x000000, 4, 2)) return 1;
-
- if (BurnLoadRom(DrvSndROM0 + 0x000000, 5, 1)) return 1;
-
- if (BurnLoadRom(DrvSndROM1 + 0x000000, 6, 1)) return 1;
-
- *gfxlen0 = 0x100000;
- *gfxlen1 = 0x200000;
-
- return 0;
-}
-
-static INT32 joemacrInit()
-{
- return CommonInit(joemacrLoadCallback, joemacr_map, 1, 0x0284);
-}
-
-struct BurnDriver BurnDrvJoemacr = {
- "joemacr", NULL, NULL, NULL, "1994",
- "Joe & Mac Returns (World, Version 1.1, 1994.05.27)\0", NULL, "Data East", "Simple 156",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_PREFIX_DATAEAST, GBF_PLATFORM, 0,
- NULL, joemacrRomInfo, joemacrRomName, NULL, NULL, Simpl156InputInfo, Simpl156DIPInfo,
- joemacrInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x400,
- 320, 240, 4, 3
-};
-
-
-// Joe & Mac Returns (World, Version 1.0, 1994.05.19)
-
-static struct BurnRomInfo joemacraRomDesc[] = {
- { "mw00", 0x080000, 0xe1b78f40, 1 | BRF_PRG | BRF_ESS }, // 0 ARM Code
-
- { "mbn00", 0x100000, 0x11b2dac7, 2 | BRF_GRA }, // 1 Characters & Tiles
-
- { "mbn01", 0x080000, 0xa3a37353, 3 | BRF_GRA }, // 2 Sprites
- { "mbn02", 0x080000, 0xaa2230c5, 3 | BRF_GRA }, // 3
-
- { "mbn04", 0x040000, 0xdcbd4771, 4 | BRF_SND }, // 4 OKI SFX Samples
-
- { "mbn03", 0x200000, 0x70b71a2a, 5 | BRF_SND }, // 5 OKI Music Samples
-};
-
-STD_ROM_PICK(joemacra)
-STD_ROM_FN(joemacra)
-
-static INT32 joemacraLoadCallback(INT32 *gfxlen0, INT32 *gfxlen1)
-{
- if (BurnLoadRom(DrvArmROM + 0x000000, 0, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x000000, 1, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM2 + 0x000001, 2, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x000000, 3, 2)) return 1;
-
- if (BurnLoadRom(DrvSndROM0 + 0x000000, 4, 1)) return 1;
-
- if (BurnLoadRom(DrvSndROM1 + 0x000000, 5, 1)) return 1;
-
- *gfxlen0 = 0x100000;
- *gfxlen1 = 0x200000;
-
- return 0;
-}
-
-static INT32 joemacraInit()
-{
- return CommonInit(joemacraLoadCallback, joemacr_map, 1, 0x0284);
-}
-
-struct BurnDriver BurnDrvJoemacra = {
- "joemacra", "joemacr", NULL, NULL, "1994",
- "Joe & Mac Returns (World, Version 1.0, 1994.05.19)\0", NULL, "Data East", "Simple 156",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_DATAEAST, GBF_PLATFORM, 0,
- NULL, joemacraRomInfo, joemacraRomName, NULL, NULL, Simpl156InputInfo, Simpl156DIPInfo,
- joemacraInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x400,
- 320, 240, 4, 3
-};
-
-
-// Joe & Mac Returns (Japan, Version 1.2, 1994.06.06)
-
-static struct BurnRomInfo joemacrjRomDesc[] = {
- { "my00-.e1", 0x080000, 0x2c184981, 1 | BRF_PRG | BRF_ESS }, // 0 ARM Code
-
- { "mbn00", 0x100000, 0x11b2dac7, 2 | BRF_GRA }, // 1 Characters & Tiles
-
- { "mbn01", 0x080000, 0xa3a37353, 3 | BRF_GRA }, // 2 Sprites
- { "mbn02", 0x080000, 0xaa2230c5, 3 | BRF_GRA }, // 3
-
- { "mbn04", 0x040000, 0xdcbd4771, 4 | BRF_SND }, // 4 OKI SFX Samples
-
- { "mbn03", 0x200000, 0x70b71a2a, 5 | BRF_SND }, // 5 OKI Music Samples
-
- { "jmrj_ak93c45.h3", 0x000080, 0x31f17522, 6 | BRF_PRG | BRF_ESS }, // 6 Default EEPROM Data
-};
-
-STD_ROM_PICK(joemacrj)
-STD_ROM_FN(joemacrj)
-
-static INT32 joemacrjLoadCallback(INT32 *gfxlen0, INT32 *gfxlen1)
-{
- if (BurnLoadRom(DrvArmROM + 0x000000, 0, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x000000, 1, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM2 + 0x000001, 2, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x000000, 3, 2)) return 1;
-
- if (BurnLoadRom(DrvSndROM0 + 0x000000, 4, 1)) return 1;
-
- if (BurnLoadRom(DrvSndROM1 + 0x000000, 5, 1)) return 1;
-
- if (BurnLoadRom(DrvEEPROM + 0x000000, 6, 1)) return 1;
-
- *gfxlen0 = 0x100000;
- *gfxlen1 = 0x200000;
-
- return 0;
-}
-
-static INT32 joemacrjInit()
-{
- return CommonInit(joemacrjLoadCallback, joemacr_map, 1, 0x0284);
-}
-
-struct BurnDriver BurnDrvJoemacrj = {
- "joemacrj", "joemacr", NULL, NULL, "1994",
- "Joe & Mac Returns (Japan, Version 1.2, 1994.06.06)\0", NULL, "Data East", "Simple 156",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_DATAEAST, GBF_PLATFORM, 0,
- NULL, joemacrjRomInfo, joemacrjRomName, NULL, NULL, Simpl156InputInfo, Simpl156DIPInfo,
- joemacrjInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x400,
- 320, 240, 4, 3
-};
-
-
-// Chain Reaction (World, Version 2.2, 1995.09.25)
-
-static struct BurnRomInfo chainrecRomDesc[] = {
- { "e1", 0x080000, 0x8a8340ef, 1 | BRF_PRG | BRF_ESS }, // 0 ARM Code
-
- { "mcc-00", 0x100000, 0x646b03ec, 2 | BRF_GRA }, // 1 Characters & Tiles
-
- { "u3", 0x080000, 0x92659721, 3 | BRF_GRA }, // 2 Sprites
- { "u4", 0x080000, 0xe304eb32, 3 | BRF_GRA }, // 3
- { "u5", 0x080000, 0x1b6f01ea, 3 | BRF_GRA }, // 4
- { "u6", 0x080000, 0x531a56f2, 3 | BRF_GRA }, // 5
-
- { "mcc-04", 0x040000, 0x86ee6ade, 4 | BRF_SND }, // 6 OKI SFX Samples
-
- { "mcc-03", 0x100000, 0xda2ebba0, 5 | BRF_SND }, // 7 OKI Music Samples
-
- { "eeprom-chainrec.bin", 0x000080, 0xb6da3fbf, 6 | BRF_PRG | BRF_ESS }, // 8 Default EEPROM Data
-};
-
-STD_ROM_PICK(chainrec)
-STD_ROM_FN(chainrec)
-
-static INT32 chainrecLoadCallback(INT32 *gfxlen0, INT32 *gfxlen1)
-{
- if (BurnLoadRom(DrvArmROM + 0x000000, 0, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x000000, 1, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM2 + 0x000000, 2, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x000002, 3, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x000001, 4, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x000003, 5, 4)) return 1;
-
- if (BurnLoadRom(DrvSndROM0 + 0x000000, 6, 1)) return 1;
-
- if (BurnLoadRom(DrvSndROM1 + 0x000000, 7, 1)) return 1;
-
- if (BurnLoadRom(DrvEEPROM + 0x000000, 8, 1)) return 1;
-
- *gfxlen0 = 0x100000;
- *gfxlen1 = 0x200000;
-
- return 0;
-}
-
-static INT32 chainrecInit()
-{
- return CommonInit(chainrecLoadCallback, chainrec_map, 1, 0x02d4);
-}
-
-struct BurnDriver BurnDrvChainrec = {
- "chainrec", NULL, NULL, NULL, "1995",
- "Chain Reaction (World, Version 2.2, 1995.09.25)\0", NULL, "Data East", "Simple 156",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_PREFIX_DATAEAST, GBF_PUZZLE, 0,
- NULL, chainrecRomInfo, chainrecRomName, NULL, NULL, Simpl156InputInfo, Simpl156DIPInfo,
- chainrecInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x400,
- 320, 240, 4, 3
-};
-
-
-// Magical Drop (Japan, Version 1.1, 1995.06.21)
-
-static struct BurnRomInfo magdropRomDesc[] = {
- { "re00-2.e1", 0x080000, 0x7138f10f, 1 | BRF_PRG | BRF_ESS }, // 0 ARM Code
-
- { "mcc-00", 0x100000, 0x646b03ec, 2 | BRF_GRA }, // 1 Characters & Tiles
-
- { "mcc-01.a13", 0x100000, 0x13d88745, 3 | BRF_GRA }, // 2 Sprites
- { "mcc-02.a14", 0x100000, 0xd0f97126, 3 | BRF_GRA }, // 3
-
- { "mcc-04", 0x040000, 0x86ee6ade, 4 | BRF_SND }, // 4 OKI SFX Samples
-
- { "mcc-03", 0x100000, 0xda2ebba0, 5 | BRF_SND }, // 5 OKI Music Samples
-
- { "93c45.2h", 0x000080, 0x16ce8d2d, 6 | BRF_PRG | BRF_ESS }, // 6 Default EEPROM Data
-};
-
-STD_ROM_PICK(magdrop)
-STD_ROM_FN(magdrop)
-
-static INT32 magdropLoadCallback(INT32 *gfxlen0, INT32 *gfxlen1)
-{
- if (BurnLoadRom(DrvArmROM + 0x000000, 0, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x000000, 1, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM2 + 0x000001, 2, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x000000, 3, 2)) return 1;
-
- if (BurnLoadRom(DrvSndROM0 + 0x000000, 4, 1)) return 1;
-
- if (BurnLoadRom(DrvSndROM1 + 0x000000, 5, 1)) return 1;
-
- if (BurnLoadRom(DrvEEPROM + 0x000000, 6, 1)) return 1;
-
- *gfxlen0 = 0x100000;
- *gfxlen1 = 0x200000;
-
- return 0;
-}
-
-static INT32 magdropInit()
-{
- return CommonInit(magdropLoadCallback, magdrop_map, 1, 0x02d4);
-}
-
-struct BurnDriver BurnDrvMagdrop = {
- "magdrop", "chainrec", NULL, NULL, "1995",
- "Magical Drop (Japan, Version 1.1, 1995.06.21)\0", NULL, "Data East", "Simple 156",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_DATAEAST, GBF_PUZZLE, 0,
- NULL, magdropRomInfo, magdropRomName, NULL, NULL, Simpl156InputInfo, Simpl156DIPInfo,
- magdropInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x400,
- 320, 240, 4, 3
-};
-
-
-// Magical Drop Plus 1 (Japan, Version 2.1, 1995.09.12)
-
-static struct BurnRomInfo magdroppRomDesc[] = {
- { "rz00-1.e1", 0x080000, 0x28caf639, 1 | BRF_PRG | BRF_ESS }, // 0 ARM Code
-
- { "mcc-00", 0x100000, 0x646b03ec, 2 | BRF_GRA }, // 1 Characters & Tiles
-
- { "mcc-01.a13", 0x100000, 0x13d88745, 3 | BRF_GRA }, // 2 Sprites
- { "mcc-02.a14", 0x100000, 0xd0f97126, 3 | BRF_GRA }, // 3
-
- { "mcc-04", 0x040000, 0x86ee6ade, 4 | BRF_SND }, // 4 OKI SFX Samples
-
- { "mcc-03", 0x100000, 0xda2ebba0, 5 | BRF_SND }, // 5 OKI Music Samples
-
- { "eeprom.2h", 0x000080, 0xd13d9edd, 6 | BRF_PRG | BRF_ESS }, // 6 Default EEPROM Data
-};
-
-STD_ROM_PICK(magdropp)
-STD_ROM_FN(magdropp)
-
-static INT32 magdroppInit()
-{
- return CommonInit(magdropLoadCallback, magdropp_map, 1, 0x02d4);
-}
-
-struct BurnDriver BurnDrvMagdropp = {
- "magdropp", "chainrec", NULL, NULL, "1995",
- "Magical Drop Plus 1 (Japan, Version 2.1, 1995.09.12)\0", NULL, "Data East", "Simple 156",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_DATAEAST, GBF_PUZZLE, 0,
- NULL, magdroppRomInfo, magdroppRomName, NULL, NULL, Simpl156InputInfo, Simpl156DIPInfo,
- magdroppInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x400,
- 320, 240, 4, 3
-};
-
-
-// Charlie Ninja
-
-static struct BurnRomInfo charlienRomDesc[] = {
- { "nd00-1.1e", 0x080000, 0xf18f4b23, 1 | BRF_PRG | BRF_ESS }, // 0 ARM Code
-
- { "mbr-00.9a", 0x200000, 0xecf2c7f0, 2 | BRF_GRA }, // 1 Characters & Tiles
-
- { "mbr-01.14a", 0x100000, 0x46c90215, 3 | BRF_GRA }, // 2 Sprites
- { "mbr-03.14h", 0x100000, 0xc448a68a, 3 | BRF_GRA }, // 3
-
- { "nd01-0.13h", 0x040000, 0x635a100a, 4 | BRF_SND }, // 4 OKI SFX Samples
-
- { "mbr-02.12f", 0x100000, 0x4f67d333, 5 | BRF_SND }, // 5 OKI Music Samples
-};
-
-STD_ROM_PICK(charlien)
-STD_ROM_FN(charlien)
-
-static INT32 charlienLoadCallback(INT32 *gfxlen0, INT32 *gfxlen1)
-{
- if (BurnLoadRom(DrvArmROM + 0x000000, 0, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x000000, 1, 1)) return 1;
- for (INT32 i = 0; i < 0x80000; i++) {
- INT32 t = DrvGfxROM0[0x080000 + i];
- DrvGfxROM0[0x080000 + i] = DrvGfxROM0[0x100000 + i];
- DrvGfxROM0[0x100000 + i] = t;
- }
-
- if (BurnLoadRom(DrvGfxROM2 + 0x000001, 2, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x000000, 3, 2)) return 1;
-
- if (BurnLoadRom(DrvSndROM0 + 0x000000, 4, 1)) return 1;
-
- if (BurnLoadRom(DrvSndROM1 + 0x000000, 5, 1)) return 1;
-
- *gfxlen0 = 0x200000;
- *gfxlen1 = 0x200000;
-
- return 0;
-}
-
-static INT32 charlienInit()
-{
- charlienmode = 1;
- return CommonInit(charlienLoadCallback, mitchell_map, 2, 0xc8c8);
-}
-
-struct BurnDriver BurnDrvCharlien = {
- "charlien", NULL, NULL, NULL, "1995",
- "Charlie Ninja\0", NULL, "Mitchell", "Simple 156",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_PREFIX_DATAEAST, GBF_PLATFORM | GBF_SCRFIGHT, 0,
- NULL, charlienRomInfo, charlienRomName, NULL, NULL, Simpl156InputInfo, Simpl156DIPInfo,
- charlienInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x400,
- 320, 240, 4, 3
-};
-
-
-// Party Time: Gonta the Diver II / Ganbare! Gonta!! 2 (World Release)
-
-static struct BurnRomInfo prtytimeRomDesc[] = {
- { "pz_00-0.1e", 0x080000, 0xec715c87, 1 | BRF_PRG | BRF_ESS }, // 0 ARM Code
-
- { "mcb-00.9a", 0x200000, 0xc48a4f2b, 2 | BRF_GRA }, // 1 Characters & Tiles
-
- { "mcb-02.14a", 0x200000, 0x423cfb38, 3 | BRF_GRA }, // 2 Sprites
- { "mcb-05.14h", 0x200000, 0x81540cfb, 3 | BRF_GRA }, // 3
- { "mcb-01.13a", 0x200000, 0x06f40a57, 3 | BRF_GRA }, // 4
- { "mcb-03.14d", 0x200000, 0x0aef73af, 3 | BRF_GRA }, // 5
-
- { "pz_01-0.13h", 0x040000, 0x8925bce2, 4 | BRF_SND }, // 6 OKI SFX Samples
-
- { "mcb-04.12f", 0x200000, 0xe23d3590, 5 | BRF_SND }, // 7 OKI Music Samples
-
- { "eeprom-prtytime.bin", 0x000080, 0x105700da, 6 | BRF_PRG | BRF_ESS }, // 8 Default EEPROM Data
-};
-
-STD_ROM_PICK(prtytime)
-STD_ROM_FN(prtytime)
-
-static INT32 prtytimeLoadCallback(INT32 *gfxlen0, INT32 *gfxlen1)
-{
- if (BurnLoadRom(DrvArmROM + 0x000000, 0, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x000000, 1, 1)) return 1;
- for (INT32 i = 0; i < 0x80000; i++) {
- INT32 t = DrvGfxROM0[0x080000 + i];
- DrvGfxROM0[0x080000 + i] = DrvGfxROM0[0x100000 + i];
- DrvGfxROM0[0x100000 + i] = t;
- }
-
- if (BurnLoadRom(DrvGfxROM2 + 0x000001, 2, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x000000, 3, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x400001, 4, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x400000, 5, 2)) return 1;
-
- if (BurnLoadRom(DrvSndROM0 + 0x000000, 6, 1)) return 1;
-
- if (BurnLoadRom(DrvSndROM1 + 0x000000, 7, 1)) return 1;
-
- if (BurnLoadRom(DrvEEPROM + 0x000000, 8, 1)) return 1;
-
- *gfxlen0 = 0x200000;
- *gfxlen1 = 0x800000;
-
- return 0;
-}
-
-static INT32 prtytimeInit()
-{
- return CommonInit(prtytimeLoadCallback, mitchell_map, 2, 0x04f0);
-}
-
-struct BurnDriver BurnDrvPrtytime = {
- "prtytime", NULL, NULL, NULL, "1995",
- "Party Time: Gonta the Diver II / Ganbare! Gonta!! 2 (World Release)\0", NULL, "Mitchell", "Simple 156",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED, 2, HARDWARE_PREFIX_DATAEAST, GBF_MISC, 0,
- NULL, prtytimeRomInfo, prtytimeRomName, NULL, NULL, Simpl156InputInfo, Simpl156DIPInfo,
- prtytimeInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x400,
- 240, 320, 3, 4
-};
-
-
-// Ganbare! Gonta!! 2 / Party Time: Gonta the Diver II (Japan Release)
-
-static struct BurnRomInfo gangontaRomDesc[] = {
- { "rd_00-0.1e", 0x080000, 0xf80f43bb, 1 | BRF_PRG | BRF_ESS }, // 0 ARM Code
-
- { "mcb-00.9a", 0x200000, 0xc48a4f2b, 2 | BRF_GRA }, // 1 Characters & Tiles
-
- { "mcb-02.14a", 0x200000, 0x423cfb38, 3 | BRF_GRA }, // 2 Sprites
- { "mcb-05.14h", 0x200000, 0x81540cfb, 3 | BRF_GRA }, // 3
- { "mcb-01.13a", 0x200000, 0x06f40a57, 3 | BRF_GRA }, // 4
- { "mcb-03.14d", 0x200000, 0x0aef73af, 3 | BRF_GRA }, // 5
-
- { "rd_01-0.13h", 0x040000, 0x70fd18c6, 4 | BRF_SND }, // 6 OKI SFX Samples
-
- { "mcb-04.12f", 0x200000, 0xe23d3590, 5 | BRF_SND }, // 7 OKI Music Samples
-
- { "eeprom-gangonta.bin", 0x000080, 0x27ba60a5, 6 | BRF_PRG | BRF_ESS }, // 8 Default EEPROM Data
-};
-
-STD_ROM_PICK(gangonta)
-STD_ROM_FN(gangonta)
-
-struct BurnDriver BurnDrvGangonta = {
- "gangonta", "prtytime", NULL, NULL, "1995",
- "Ganbare! Gonta!! 2 / Party Time: Gonta the Diver II (Japan Release)\0", NULL, "Mitchell", "Simple 156",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED, 2, HARDWARE_PREFIX_DATAEAST, GBF_MISC, 0,
- NULL, gangontaRomInfo, gangontaRomName, NULL, NULL, Simpl156InputInfo, Simpl156DIPInfo,
- prtytimeInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x400,
- 240, 320, 3, 4
-};
-
-
-// Osman (World)
-
-static struct BurnRomInfo osmanRomDesc[] = {
- { "sa00-0.1e", 0x080000, 0xec6b3257, 1 | BRF_PRG | BRF_ESS }, // 0 ARM Code
-
- { "mcf-00.9a", 0x200000, 0x247712dc, 2 | BRF_GRA }, // 1 Characters & Tiles
-
- { "mcf-02.14a", 0x200000, 0x21251b33, 3 | BRF_GRA }, // 2 Sprites
- { "mcf-04.14h", 0x200000, 0x4fa55577, 3 | BRF_GRA }, // 3
- { "mcf-01.13a", 0x200000, 0x83881e25, 3 | BRF_GRA }, // 4
- { "mcf-03.14d", 0x200000, 0xfaf1d51d, 3 | BRF_GRA }, // 5
-
- { "sa01-0.13h", 0x040000, 0xcea8368e, 4 | BRF_SND }, // 6 OKI SFX Samples
-
- { "mcf-05.12f", 0x200000, 0xf007d376, 5 | BRF_SND }, // 7 OKI Music Samples
-
- { "eeprom-osman.bin", 0x000080, 0x509552b2, 6 | BRF_PRG | BRF_ESS }, // 8 Default EEPROM Data
-};
-
-STD_ROM_PICK(osman)
-STD_ROM_FN(osman)
-
-static INT32 osmanInit()
-{
- return CommonInit(prtytimeLoadCallback, mitchell_map, 2, 0x5974);
-}
-
-struct BurnDriver BurnDrvOsman = {
- "osman", NULL, NULL, NULL, "1996",
- "Osman (World)\0", NULL, "Mitchell", "Simple 156",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_PREFIX_DATAEAST, GBF_PLATFORM | GBF_SCRFIGHT, 0,
- NULL, osmanRomInfo, osmanRomName, NULL, NULL, Simpl156InputInfo, Simpl156DIPInfo,
- osmanInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x400,
- 320, 240, 4, 3
-};
-
-
-// Cannon Dancer (Japan)
-
-static struct BurnRomInfo candanceRomDesc[] = {
- { "sa00-0.1e", 0x080000, 0xec6b3257, 1 | BRF_PRG | BRF_ESS }, // 0 ARM Code
-
- { "mcf-00.9a", 0x200000, 0x247712dc, 2 | BRF_GRA }, // 1 Characters & Tiles
-
- { "mcf-02.14a", 0x200000, 0x21251b33, 3 | BRF_GRA }, // 2 Sprites
- { "mcf-04.14h", 0x200000, 0x4fa55577, 3 | BRF_GRA }, // 3
- { "mcf-01.13a", 0x200000, 0x83881e25, 3 | BRF_GRA }, // 4
- { "mcf-03.14d", 0x200000, 0xfaf1d51d, 3 | BRF_GRA }, // 5
-
- { "sa01-0.13h", 0x040000, 0xcea8368e, 4 | BRF_SND }, // 6 OKI SFX Samples
-
- { "mcf-05.12f", 0x200000, 0xf007d376, 5 | BRF_SND }, // 7 OKI Music Samples
-
- { "eeprom-candance.bin", 0x000080, 0x0a0a8f6b, 6 | BRF_PRG | BRF_ESS }, // 8 Default EEPROM Data
-};
-
-STD_ROM_PICK(candance)
-STD_ROM_FN(candance)
-
-struct BurnDriver BurnDrvCandance = {
- "candance", "osman", NULL, NULL, "1996",
- "Cannon Dancer (Japan)\0", NULL, "Mitchell (Atlus license)", "Simple 156",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_DATAEAST, GBF_PLATFORM | GBF_SCRFIGHT, 0,
- NULL, candanceRomInfo, candanceRomName, NULL, NULL, Simpl156InputInfo, Simpl156DIPInfo,
- osmanInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x400,
- 320, 240, 4, 3
-};
diff --git a/jan/src/burn/drv/dataeast/d_supbtime.cpp b/jan/src/burn/drv/dataeast/d_supbtime.cpp
deleted file mode 100644
index 6085385ba..000000000
--- a/jan/src/burn/drv/dataeast/d_supbtime.cpp
+++ /dev/null
@@ -1,689 +0,0 @@
-// FB Alpha Super Burger Time / China Town driver module
-// Based on MAME driver by Bryan McPhail
-
-#include "tiles_generic.h"
-#include "m68000_intf.h"
-#include "deco16ic.h"
-#include "h6280_intf.h"
-#include "msm6295.h"
-
-static UINT8 *AllMem;
-static UINT8 *MemEnd;
-static UINT8 *AllRam;
-static UINT8 *RamEnd;
-static UINT8 *Drv68KROM;
-static UINT8 *DrvHucROM;
-static UINT8 *DrvGfxROM0;
-static UINT8 *DrvGfxROM1;
-static UINT8 *DrvGfxROM2;
-static UINT8 *DrvSndROM;
-static UINT8 *Drv68KRAM;
-static UINT8 *DrvHucRAM;
-static UINT8 *DrvPalRAM;
-static UINT8 *DrvSprRAM;
-
-static UINT32 *DrvPalette;
-static UINT8 DrvRecalc;
-
-static UINT8 *flipscreen;
-
-static UINT8 DrvJoy1[16];
-static UINT8 DrvJoy2[16];
-static UINT8 DrvDips[2];
-static UINT8 DrvReset;
-static UINT16 DrvInputs[2];
-
-static struct BurnInputInfo SupbtimeInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy2 + 0, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 7, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy1 + 0, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy1 + 1, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy1 + 2, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy1 + 3, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy1 + 4, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy1 + 5, "p1 fire 2" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy2 + 1, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy1 + 15, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvJoy1 + 8, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy1 + 9, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy1 + 10, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy1 + 11, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy1 + 12, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy1 + 13, "p2 fire 2" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip" },
-};
-
-STDINPUTINFO(Supbtime)
-
-static struct BurnDIPInfo SupbtimeDIPList[]=
-{
- {0x11, 0xff, 0xff, 0xff, NULL },
- {0x12, 0xff, 0xff, 0xfe, NULL },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x11, 0x01, 0x02, 0x02, "Off" },
- {0x11, 0x01, 0x02, 0x00, "On" },
-
- {0 , 0xfe, 0 , 8, "Coin B" },
- {0x11, 0x01, 0x1c, 0x00, "3 Coins 1 Credits" },
- {0x11, 0x01, 0x1c, 0x10, "2 Coins 1 Credits" },
- {0x11, 0x01, 0x1c, 0x1c, "1 Coin 1 Credits" },
- {0x11, 0x01, 0x1c, 0x0c, "1 Coin 2 Credits" },
- {0x11, 0x01, 0x1c, 0x14, "1 Coin 3 Credits" },
- {0x11, 0x01, 0x1c, 0x04, "1 Coin 4 Credits" },
- {0x11, 0x01, 0x1c, 0x18, "1 Coin 5 Credits" },
- {0x11, 0x01, 0x1c, 0x08, "1 Coin 6 Credits" },
-
- {0 , 0xfe, 0 , 8, "Coin A" },
- {0x11, 0x01, 0xe0, 0x00, "3 Coins 1 Credits" },
- {0x11, 0x01, 0xe0, 0x80, "2 Coins 1 Credits" },
- {0x11, 0x01, 0xe0, 0xe0, "1 Coin 1 Credits" },
- {0x11, 0x01, 0xe0, 0x60, "1 Coin 2 Credits" },
- {0x11, 0x01, 0xe0, 0xa0, "1 Coin 3 Credits" },
- {0x11, 0x01, 0xe0, 0x20, "1 Coin 4 Credits" },
- {0x11, 0x01, 0xe0, 0xc0, "1 Coin 5 Credits" },
- {0x11, 0x01, 0xe0, 0x40, "1 Coin 6 Credits" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x12, 0x01, 0x01, 0x01, "Off" },
- {0x12, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Allow Continue" },
- {0x12, 0x01, 0x02, 0x00, "No" },
- {0x12, 0x01, 0x02, 0x02, "Yes" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x12, 0x01, 0x30, 0x10, "Easy" },
- {0x12, 0x01, 0x30, 0x30, "Normal" },
- {0x12, 0x01, 0x30, 0x20, "Hard" },
- {0x12, 0x01, 0x30, 0x00, "Hardest" },
-
- {0 , 0xfe, 0 , 3, "Lives" },
- {0x12, 0x01, 0xc0, 0x80, "1" },
- {0x12, 0x01, 0xc0, 0x00, "2" },
- {0x12, 0x01, 0xc0, 0xc0, "3" },
-};
-
-STDDIPINFO(Supbtime)
-
-static struct BurnDIPInfo ChinatwnDIPList[]=
-{
- {0x11, 0xff, 0xff, 0xff, NULL },
- {0x12, 0xff, 0xff, 0xfe, NULL },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x11, 0x01, 0x02, 0x02, "Off" },
- {0x11, 0x01, 0x02, 0x00, "On" },
-
- {0 , 0xfe, 0 , 8, "Coin B" },
- {0x11, 0x01, 0x1c, 0x00, "3 Coins 1 Credits" },
- {0x11, 0x01, 0x1c, 0x10, "2 Coins 1 Credits" },
- {0x11, 0x01, 0x1c, 0x1c, "1 Coin 1 Credits" },
- {0x11, 0x01, 0x1c, 0x0c, "1 Coin 2 Credits" },
- {0x11, 0x01, 0x1c, 0x14, "1 Coin 3 Credits" },
- {0x11, 0x01, 0x1c, 0x04, "1 Coin 4 Credits" },
- {0x11, 0x01, 0x1c, 0x18, "1 Coin 5 Credits" },
- {0x11, 0x01, 0x1c, 0x08, "1 Coin 6 Credits" },
-
- {0 , 0xfe, 0 , 8, "Coin A" },
- {0x11, 0x01, 0xe0, 0x00, "3 Coins 1 Credits" },
- {0x11, 0x01, 0xe0, 0x80, "2 Coins 1 Credits" },
- {0x11, 0x01, 0xe0, 0xe0, "1 Coin 1 Credits" },
- {0x11, 0x01, 0xe0, 0x60, "1 Coin 2 Credits" },
- {0x11, 0x01, 0xe0, 0xa0, "1 Coin 3 Credits" },
- {0x11, 0x01, 0xe0, 0x20, "1 Coin 4 Credits" },
- {0x11, 0x01, 0xe0, 0xc0, "1 Coin 5 Credits" },
- {0x11, 0x01, 0xe0, 0x40, "1 Coin 6 Credits" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x12, 0x01, 0x01, 0x01, "Off" },
- {0x12, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x12, 0x01, 0x30, 0x10, "Easy" },
- {0x12, 0x01, 0x30, 0x30, "Normal" },
- {0x12, 0x01, 0x30, 0x20, "Hard" },
- {0x12, 0x01, 0x30, 0x00, "Hardest" },
-
- {0 , 0xfe, 0 , 4, "Time" },
- {0x12, 0x01, 0xc0, 0x00, "1500" },
- {0x12, 0x01, 0xc0, 0x80, "2000" },
- {0x12, 0x01, 0xc0, 0xc0, "2500" },
- {0x12, 0x01, 0xc0, 0x40, "3000" },
-};
-
-STDDIPINFO(Chinatwn)
-
-void __fastcall supbtime_main_write_word(UINT32 address, UINT16 data)
-{
- deco16_write_control_word(0, address, 0x300000, data)
-
- switch (address)
- {
- case 0x100000:
- case 0x1a0000:
- deco16_soundlatch = data & 0xff;
- h6280SetIRQLine(0, CPU_IRQSTATUS_ACK);
- return;
- }
-}
-
-void __fastcall supbtime_main_write_byte(UINT32 address, UINT8 data)
-{
- switch (address)
- {
- case 0x100001:
- case 0x1a0001:
- deco16_soundlatch = data;
- h6280SetIRQLine(0, CPU_IRQSTATUS_ACK);
- return;
- }
-}
-
-UINT16 __fastcall supbtime_main_read_word(UINT32 address)
-{
- deco16_read_control_word(0, address, 0x300000)
-
- switch (address)
- {
- case 0x180000:
- return DrvInputs[0];
-
- case 0x180002:
- return (DrvDips[1] << 8) | (DrvDips[0] << 0);
-
- case 0x180008:
- return (DrvInputs[1] & ~0x0008) | (deco16_vblank & 0x0008);
-
- case 0x18000a:
- case 0x18000c:
- return 0;
- }
-
- return 0;
-}
-
-UINT8 __fastcall supbtime_main_read_byte(UINT32 address)
-{
- switch (address)
- {
- case 0x180000:
- case 0x180001:
- return DrvInputs[0] >> ((~address & 1) << 3);
-
- case 0x180002:
- return DrvDips[0];
-
- case 0x180003:
- return DrvDips[1];
-
- case 0x180008:
- case 0x180009:
- return (DrvInputs[1] & ~0x0008) | (deco16_vblank & 0x0008);
- }
-
- return 0;
-}
-
-static INT32 DrvDoReset()
-{
- memset (AllRam, 0, RamEnd - AllRam);
-
- SekOpen(0);
- SekReset();
- SekClose();
-
- deco16SoundReset();
-
- deco16Reset();
-
- return 0;
-}
-
-static INT32 MemIndex()
-{
- UINT8 *Next; Next = AllMem;
-
- Drv68KROM = Next; Next += 0x040000;
- DrvHucROM = Next; Next += 0x010000;
-
- DrvGfxROM0 = Next; Next += 0x100000;
- DrvGfxROM1 = Next; Next += 0x100000;
- DrvGfxROM2 = Next; Next += 0x200000;
-
- MSM6295ROM = Next;
- DrvSndROM = Next; Next += 0x040000;
-
- DrvPalette = (UINT32*)Next; Next += 0x0400 * sizeof(UINT32);
-
- AllRam = Next;
-
- Drv68KRAM = Next; Next += 0x004000;
- DrvHucRAM = Next; Next += 0x002000;
- DrvSprRAM = Next; Next += 0x000800;
- DrvPalRAM = Next; Next += 0x000800;
-
- flipscreen = Next; Next += 0x000001;
-
- RamEnd = Next;
-
- MemEnd = Next;
-
- return 0;
-}
-
-static INT32 DrvInit(INT32 game)
-{
- BurnSetRefreshRate(58.00);
-
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(Drv68KROM + 0x00001, 0, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x00000, 1, 2)) return 1;
-
- if (BurnLoadRom(DrvHucROM + 0x00000, 2, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM1 + 0x00000, 3, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM2 + 0x00001, 4, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x00000, 5, 2)) return 1;
-
- if (BurnLoadRom(DrvSndROM + 0x00000, 6, 1)) return 1;
-
- deco16_tile_decode(DrvGfxROM1, DrvGfxROM0, 0x080000, 1);
- deco16_tile_decode(DrvGfxROM1, DrvGfxROM1, 0x080000, 0);
- deco16_sprite_decode(DrvGfxROM2, 0x100000);
- }
-
- deco16Init(1, 0, 1);
- deco16_set_graphics(DrvGfxROM0, 0x80000 * 2, DrvGfxROM1, 0x80000 * 2, NULL, 0);
- deco16_set_color_base(0, 256);
- deco16_set_color_base(1, 512);
- deco16_set_global_offsets(0, 8);
-
- SekInit(0, 0x68000);
- SekOpen(0);
- SekMapMemory(Drv68KROM, 0x000000, 0x03ffff, MAP_ROM);
- if (game) {
- SekMapMemory(Drv68KRAM, 0x100000, 0x103fff, MAP_RAM); // super burger time
- } else {
- SekMapMemory(Drv68KRAM, 0x1a0000, 0x1a3fff, MAP_RAM); // china town
- }
- SekMapMemory(DrvSprRAM, 0x120000, 0x1207ff, MAP_RAM);
- SekMapMemory(DrvPalRAM, 0x140000, 0x1407ff, MAP_RAM);
- SekMapMemory(deco16_pf_ram[0], 0x320000, 0x321fff, MAP_RAM);
- SekMapMemory(deco16_pf_ram[1], 0x322000, 0x323fff, MAP_RAM);
- SekMapMemory(deco16_pf_rowscroll[0], 0x340000, 0x340bff, MAP_RAM);
- SekMapMemory(deco16_pf_rowscroll[1], 0x342000, 0x342bff, MAP_RAM);
- SekSetWriteWordHandler(0, supbtime_main_write_word);
- SekSetWriteByteHandler(0, supbtime_main_write_byte);
- SekSetReadWordHandler(0, supbtime_main_read_word);
- SekSetReadByteHandler(0, supbtime_main_read_byte);
- SekClose();
-
- deco16SoundInit(DrvHucROM, DrvHucRAM, 4027500, 0, NULL, 0.45, 1023924, 0.50, 0, 0);
-
- GenericTilesInit();
-
- DrvDoReset();
-
- return 0;
-}
-
-static INT32 DrvExit()
-{
- GenericTilesExit();
- deco16Exit();
-
- SekExit();
-
- deco16SoundExit();
-
- BurnFree (AllMem);
-
- return 0;
-}
-
-static void DrvPaletteRecalc()
-{
- UINT16 *p = (UINT16*)DrvPalRAM;
-
- for (INT32 i = 0; i < 0x800 / 2; i++) {
- INT32 b = (BURN_ENDIAN_SWAP_INT16(p[i]) >> 8) & 0x0f; //Seb
- INT32 g = (BURN_ENDIAN_SWAP_INT16(p[i]) >> 4) & 0x0f; //Seb
- INT32 r = (BURN_ENDIAN_SWAP_INT16(p[i]) >> 0) & 0x0f; //Seb
-
- r |= r << 4;
- g |= g << 4;
- b |= b << 4;
-
- DrvPalette[i] = BurnHighCol(r, g, b, 0);
- }
-}
-
-static void draw_sprites()
-{
- UINT16 *ram = (UINT16*)DrvSprRAM;
-
- for (INT32 offs = 0; offs < 0x400; offs += 4)
- {
- INT32 inc, mult;
-
- INT32 sy = BURN_ENDIAN_SWAP_INT16(ram[offs + 0]);
- INT32 code = BURN_ENDIAN_SWAP_INT16(ram[offs + 1]) & 0x3fff;
- INT32 sx = BURN_ENDIAN_SWAP_INT16(ram[offs + 2]);
-
- if ((sy & 0x1000) && (nCurrentFrame & 1)) continue;
-
- INT32 color = (sx >> 9) & 0x1f;
-
- INT32 flipx = sy & 0x2000;
- INT32 flipy = sy & 0x4000;
- INT32 multi = (1 << ((sy & 0x0600) >> 9)) - 1;
-
- sx &= 0x01ff;
- sy &= 0x01ff;
- if (sx >= 320) sx -= 512;
- if (sy >= 256) sy -= 512;
- sy = 240 - sy;
- sx = 304 - sx;
-
- code &= ~multi;
-
- if (flipy) {
- inc = -1;
- } else {
- code += multi;
- inc = 1;
- }
-
- if (*flipscreen)
- {
- sy = 240 - sy;
- sx = 304 - sx;
- flipx = !flipx;
- flipy = !flipy;
- mult = 16;
- }
- else
- mult = -16;
-
- if (sx >= 320 || sx < -15) continue;
-
- while (multi >= 0)
- {
- INT32 y = (sy + mult * multi) - 8;
- INT32 c = (code - multi * inc) & 0x3fff;
-
- if (flipy) {
- if (flipx) {
- Render16x16Tile_Mask_FlipXY_Clip(pTransDraw, c, sx, y, color, 4, 0, 0, DrvGfxROM2);
- } else {
- Render16x16Tile_Mask_FlipY_Clip(pTransDraw, c, sx, y, color, 4, 0, 0, DrvGfxROM2);
- }
- } else {
- if (flipx) {
- Render16x16Tile_Mask_FlipX_Clip(pTransDraw, c, sx, y, color, 4, 0, 0, DrvGfxROM2);
- } else {
- Render16x16Tile_Mask_Clip(pTransDraw, c, sx, y, color, 4, 0, 0, DrvGfxROM2);
- }
- }
-
- multi--;
- }
- }
-}
-
-static INT32 DrvDraw()
-{
-// if (DrvRecalc) {
- DrvPaletteRecalc();
- DrvRecalc = 0;
-// }
-
- deco16_pf12_update();
-
- for (INT32 i = 0; i < nScreenWidth * nScreenHeight; i++) {
- pTransDraw[i] = 0x300;
- }
-
- if (nBurnLayer & 1) deco16_draw_layer(1, pTransDraw, 0x10000 /*opaque*/);
-
- if (nBurnLayer & 2) draw_sprites();
-
- if (nBurnLayer & 4) deco16_draw_layer(0, pTransDraw, 0x00000 /*transparent*/);
-
- BurnTransferCopy(DrvPalette);
-
- return 0;
-}
-
-static INT32 DrvFrame()
-{
- if (DrvReset) {
- DrvDoReset();
- }
-
- {
- memset (DrvInputs, 0xff, 2 * sizeof(UINT16));
- for (INT32 i = 0; i < 16; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- }
- }
-
- INT32 nInterleave = 232;
- INT32 nSoundBufferPos = 0;
- INT32 nCyclesTotal[2] = { 14000000 / 58, 4027500 / 58 };
- INT32 nCyclesDone[2] = { 0, 0 };
-
- h6280NewFrame();
-
- SekOpen(0);
- h6280Open(0);
-
- deco16_vblank = 0;
-
- for (INT32 i = 0; i < nInterleave; i++)
- {
- nCyclesDone[0] += SekRun(nCyclesTotal[0] / nInterleave);
- nCyclesDone[1] += h6280Run(nCyclesTotal[1] / nInterleave);
-
- if (i == 206) deco16_vblank = 0x08;
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen / nInterleave;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- deco16SoundUpdate(pSoundBuf, nSegmentLength);
- nSoundBufferPos += nSegmentLength;
- }
- }
-
- SekSetIRQLine(6, CPU_IRQSTATUS_AUTO);
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
-
- if (nSegmentLength) {
- deco16SoundUpdate(pSoundBuf, nSegmentLength);
- }
- }
-
- h6280Close();
- SekClose();
-
- if (pBurnDraw) {
- DrvDraw();
- }
-
- return 0;
-}
-
-static INT32 DrvScan(INT32 nAction, INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin != NULL) {
- *pnMin = 0x029722;
- }
-
- if (nAction & ACB_MEMORY_RAM) {
- memset(&ba, 0, sizeof(ba));
- ba.Data = AllRam;
- ba.nLen = RamEnd-AllRam;
- ba.szName = "All Ram";
- BurnAcb(&ba);
- }
-
- if (nAction & ACB_DRIVER_DATA) {
- SekScan(nAction);
-
- deco16SoundScan(nAction, pnMin);
-
- deco16Scan();
- }
-
- return 0;
-}
-
-
-
-// Super Burger Time (World, set 1)
-
-static struct BurnRomInfo supbtimeRomDesc[] = {
- { "gk03", 0x20000, 0xaeaeed61, 1 | BRF_PRG | BRF_ESS }, // 0 68k Code
- { "gk04", 0x20000, 0x2bc5a4eb, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "gc06.bin", 0x10000, 0xe0e6c0f4, 2 | BRF_PRG | BRF_ESS }, // 2 Huc6280 Code
-
- { "mae02.bin", 0x80000, 0xa715cca0, 3 | BRF_GRA }, // 3 Characters and Background Tiles
-
- { "mae00.bin", 0x80000, 0x30043094, 4 | BRF_GRA }, // 4 Sprites
- { "mae01.bin", 0x80000, 0x434af3fb, 4 | BRF_GRA }, // 5
-
- { "gc05.bin", 0x20000, 0x2f2246ff, 5 | BRF_SND }, // 6 OKI M6295 Samples
-};
-
-STD_ROM_PICK(supbtime)
-STD_ROM_FN(supbtime)
-
-static INT32 supbtimeInit()
-{
- return DrvInit(1);
-}
-
-struct BurnDriver BurnDrvSupbtime = {
- "supbtime", NULL, NULL, NULL, "1990",
- "Super Burger Time (World, set 1)\0", NULL, "Data East Corporation", "DECO IC16",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_PREFIX_DATAEAST, GBF_PLATFORM, 0,
- NULL, supbtimeRomInfo, supbtimeRomName, NULL, NULL, SupbtimeInputInfo, SupbtimeDIPInfo,
- supbtimeInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x400,
- 320, 240, 4, 3
-};
-
-
-// Super Burger Time (World, set 2)
-
-static struct BurnRomInfo supbtimeaRomDesc[] = {
- { "3.11f", 0x20000, 0x98b5f263, 1 | BRF_PRG | BRF_ESS }, // 0 68k Code
- { "4.12f", 0x20000, 0x937e68b9, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "gc06.bin", 0x10000, 0xe0e6c0f4, 2 | BRF_PRG | BRF_ESS }, // 2 Huc6280 Code
-
- { "mae02.bin", 0x80000, 0xa715cca0, 3 | BRF_GRA }, // 3 Characters and Background Tiles
-
- { "mae00.bin", 0x80000, 0x30043094, 4 | BRF_GRA }, // 4 Sprites
- { "mae01.bin", 0x80000, 0x434af3fb, 4 | BRF_GRA }, // 5
-
- { "gc05.bin", 0x20000, 0x2f2246ff, 5 | BRF_SND }, // 6 OKI M6295 Samples
-};
-
-STD_ROM_PICK(supbtimea)
-STD_ROM_FN(supbtimea)
-
-struct BurnDriver BurnDrvSupbtimea = {
- "supbtimea", "supbtime", NULL, NULL, "1990",
- "Super Burger Time (World, set 2)\0", NULL, "Data East Corporation", "DECO IC16",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_DATAEAST, GBF_PLATFORM, 0,
- NULL, supbtimeaRomInfo, supbtimeaRomName, NULL, NULL, SupbtimeInputInfo, SupbtimeDIPInfo,
- supbtimeInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x400,
- 320, 240, 4, 3
-};
-
-
-// Super Burger Time (Japan)
-
-static struct BurnRomInfo supbtimejRomDesc[] = {
- { "gc03.bin", 0x20000, 0xb5621f6a, 1 | BRF_PRG | BRF_ESS }, // 0 68k Code
- { "gc04.bin", 0x20000, 0x551b2a0c, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "gc06.bin", 0x10000, 0xe0e6c0f4, 2 | BRF_PRG | BRF_ESS }, // 2 Huc6280 Code
-
- { "mae02.bin", 0x80000, 0xa715cca0, 3 | BRF_GRA }, // 3 Characters and Background Tiles
-
- { "mae00.bin", 0x80000, 0x30043094, 4 | BRF_GRA }, // 4 Sprites
- { "mae01.bin", 0x80000, 0x434af3fb, 4 | BRF_GRA }, // 5
-
- { "gc05.bin", 0x20000, 0x2f2246ff, 5 | BRF_SND }, // 6 OKI M6295 Samples
-};
-
-STD_ROM_PICK(supbtimej)
-STD_ROM_FN(supbtimej)
-
-struct BurnDriver BurnDrvSupbtimej = {
- "supbtimej", "supbtime", NULL, NULL, "1990",
- "Super Burger Time (Japan)\0", NULL, "Data East Corporation", "DECO IC16",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_DATAEAST, GBF_PLATFORM, 0,
- NULL, supbtimejRomInfo, supbtimejRomName, NULL, NULL, SupbtimeInputInfo, SupbtimeDIPInfo,
- supbtimeInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x400,
- 320, 240, 4, 3
-};
-
-
-// China Town (Japan)
-
-static struct BurnRomInfo chinatwnRomDesc[] = {
- { "gv_00-.f11", 0x20000, 0x2ea7ea5d, 1 | BRF_PRG | BRF_ESS }, // 0 maincpu
- { "gv_01-.f13", 0x20000, 0xbcab03c7, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "gv_02-.f16", 0x10000, 0x95151d84, 2 | BRF_PRG | BRF_ESS }, // 2 audiocpu
-
- { "mak-02.h2", 0x80000, 0x745b2c50, 3 | BRF_GRA }, // 3 gfx1
-
- { "mak-00.a2", 0x80000, 0x18e8cc1b, 4 | BRF_GRA }, // 4 gfx2
- { "mak-01.a4", 0x80000, 0xd88ebda8, 4 | BRF_GRA }, // 5
-
- { "gv_03-.j14", 0x20000, 0x948faf92, 5 | BRF_SND }, // 6 oki
-};
-
-STD_ROM_PICK(chinatwn)
-STD_ROM_FN(chinatwn)
-
-static INT32 chinatwnInit()
-{
- return DrvInit(0);
-}
-
-struct BurnDriver BurnDrvChinatwn = {
- "chinatwn", NULL, NULL, NULL, "1991",
- "China Town (Japan)\0", NULL, "Data East Corporation", "DECO IC16",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_PREFIX_DATAEAST, GBF_PUZZLE, 0,
- NULL, chinatwnRomInfo, chinatwnRomName, NULL, NULL, SupbtimeInputInfo, ChinatwnDIPInfo,
- chinatwnInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x400,
- 320, 240, 4, 3
-};
diff --git a/jan/src/burn/drv/dataeast/d_tumblep.cpp b/jan/src/burn/drv/dataeast/d_tumblep.cpp
deleted file mode 100644
index 6842081e6..000000000
--- a/jan/src/burn/drv/dataeast/d_tumblep.cpp
+++ /dev/null
@@ -1,578 +0,0 @@
-// FB Alpha Tumble Pop driver module
-// Based on MAME driver by Bryan McPhail and David Haywood
-
-#include "tiles_generic.h"
-#include "m68000_intf.h"
-#include "h6280_intf.h"
-#include "deco16ic.h"
-#include "msm6295.h"
-#include "burn_ym2151.h"
-
-static UINT8 *AllMem;
-static UINT8 *MemEnd;
-static UINT8 *AllRam;
-static UINT8 *RamEnd;
-static UINT8 *Drv68KROM;
-static UINT8 *DrvHucROM;
-static UINT8 *DrvGfxROM0;
-static UINT8 *DrvGfxROM1;
-static UINT8 *DrvGfxROM2;
-static UINT8 *DrvSndROM;
-static UINT8 *Drv68KRAM;
-static UINT8 *DrvHucRAM;
-static UINT8 *DrvPalRAM;
-static UINT8 *DrvSprRAM;
-
-static UINT32 *DrvPalette;
-static UINT8 DrvRecalc;
-
-static UINT8 *flipscreen;
-
-static UINT8 DrvJoy1[16];
-static UINT8 DrvJoy2[16];
-static UINT8 DrvDips[2];
-static UINT8 DrvReset;
-static UINT16 DrvInputs[2];
-
-static struct BurnInputInfo TumblepInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy2 + 0, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 7, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy1 + 0, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy1 + 1, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy1 + 2, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy1 + 3, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy1 + 4, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy1 + 5, "p1 fire 2" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy2 + 1, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy1 + 15, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvJoy1 + 8, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy1 + 9, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy1 + 10, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy1 + 11, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy1 + 12, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy1 + 13, "p2 fire 2" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service", BIT_DIGITAL, DrvJoy2 + 2, "service" },
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip" },
-};
-
-STDINPUTINFO(Tumblep)
-
-static struct BurnDIPInfo TumblepDIPList[]=
-{
- {0x12, 0xff, 0xff, 0xff, NULL },
- {0x13, 0xff, 0xff, 0xfe, NULL },
-
- {0 , 0xfe, 0 , 2, "2 Coins to Start, 1 to Continue" },
- {0x12, 0x01, 0x01, 0x01, "Off" },
- {0x12, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x12, 0x01, 0x02, 0x02, "Off" },
- {0x12, 0x01, 0x02, 0x00, "On" },
-
- {0 , 0xfe, 0 , 8, "Coin B" },
- {0x12, 0x01, 0x1c, 0x00, "3 Coins 1 Credits" },
- {0x12, 0x01, 0x1c, 0x10, "2 Coins 1 Credits" },
- {0x12, 0x01, 0x1c, 0x1c, "1 Coin 1 Credits" },
- {0x12, 0x01, 0x1c, 0x0c, "1 Coin 2 Credits" },
- {0x12, 0x01, 0x1c, 0x14, "1 Coin 3 Credits" },
- {0x12, 0x01, 0x1c, 0x04, "1 Coin 4 Credits" },
- {0x12, 0x01, 0x1c, 0x18, "1 Coin 5 Credits" },
- {0x12, 0x01, 0x1c, 0x08, "1 Coin 6 Credits" },
-
- {0 , 0xfe, 0 , 8, "Coin A" },
- {0x12, 0x01, 0xe0, 0x00, "3 Coins 1 Credits" },
- {0x12, 0x01, 0xe0, 0x80, "2 Coins 1 Credits" },
- {0x12, 0x01, 0xe0, 0xe0, "1 Coin 1 Credits" },
- {0x12, 0x01, 0xe0, 0x60, "1 Coin 2 Credits" },
- {0x12, 0x01, 0xe0, 0xa0, "1 Coin 3 Credits" },
- {0x12, 0x01, 0xe0, 0x20, "1 Coin 4 Credits" },
- {0x12, 0x01, 0xe0, 0xc0, "1 Coin 5 Credits" },
- {0x12, 0x01, 0xe0, 0x40, "1 Coin 6 Credits" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x13, 0x01, 0x01, 0x01, "Off" },
- {0x13, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Allow Continue" },
- {0x13, 0x01, 0x02, 0x00, "No" },
- {0x13, 0x01, 0x02, 0x02, "Yes" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x13, 0x01, 0x30, 0x10, "Easy" },
- {0x13, 0x01, 0x30, 0x30, "Normal" },
- {0x13, 0x01, 0x30, 0x20, "Hard" },
- {0x13, 0x01, 0x30, 0x00, "Hardest" },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x13, 0x01, 0xc0, 0x80, "1" },
- {0x13, 0x01, 0xc0, 0x00, "2" },
- {0x13, 0x01, 0xc0, 0xc0, "3" },
- {0x13, 0x01, 0xc0, 0x40, "4" },
-};
-
-STDDIPINFO(Tumblep)
-
-void __fastcall tumblep_main_write_word(UINT32 address, UINT16 data)
-{
- deco16_write_control_word(0, address, 0x300000, data)
-
- switch (address)
- {
- case 0x100000:
- deco16_soundlatch = data;
- h6280SetIRQLine(0, CPU_IRQSTATUS_ACK);
- return;
- }
-}
-
-void __fastcall tumblep_main_write_byte(UINT32 address, UINT8 data)
-{
- switch (address)
- {
- case 0x100000:
- case 0x100001:
- deco16_soundlatch = data;
- h6280SetIRQLine(0, CPU_IRQSTATUS_ACK);
- return;
- }
-}
-
-UINT16 __fastcall tumblep_main_read_word(UINT32 address)
-{
- switch (address)
- {
- case 0x180000:
- return DrvInputs[0];
-
- case 0x180002:
- return (DrvDips[1] << 8) | (DrvDips[0] << 0);
-
- case 0x180008:
- return (DrvInputs[1] & ~0x0008) | (deco16_vblank & 0x0008);
- }
-
- return 0;
-}
-
-UINT8 __fastcall tumblep_main_read_byte(UINT32 address)
-{
- switch (address)
- {
- case 0x180000:
- case 0x180001:
- return DrvInputs[0] >> ((~address & 1) << 3);
-
- case 0x180002:
- return DrvDips[0];
-
- case 0x180003:
- return DrvDips[1];
-
- case 0x180008:
- case 0x180009:
- return (DrvInputs[1] & ~0x0008) | (deco16_vblank & 0x0008);
- }
-
- return 0;
-}
-
-static INT32 DrvDoReset()
-{
- memset (AllRam, 0, RamEnd - AllRam);
-
- SekOpen(0);
- SekReset();
- SekClose();
-
- deco16SoundReset();
-
- deco16Reset();
-
- return 0;
-}
-
-static INT32 MemIndex()
-{
- UINT8 *Next; Next = AllMem;
-
- Drv68KROM = Next; Next += 0x080000;
- DrvHucROM = Next; Next += 0x010000;
-
- DrvGfxROM0 = Next; Next += 0x100000;
- DrvGfxROM1 = Next; Next += 0x100000;
- DrvGfxROM2 = Next; Next += 0x200000;
-
- MSM6295ROM = Next;
- DrvSndROM = Next; Next += 0x040000;
-
- DrvPalette = (UINT32*)Next; Next += 0x0400 * sizeof(UINT32);
-
- AllRam = Next;
-
- Drv68KRAM = Next; Next += 0x004000;
- DrvHucRAM = Next; Next += 0x002000;
- DrvSprRAM = Next; Next += 0x000800;
- DrvPalRAM = Next; Next += 0x000800;
-
- flipscreen = Next; Next += 0x000001;
-
- RamEnd = Next;
-
- MemEnd = Next;
-
- return 0;
-}
-
-static INT32 DrvInit()
-{
- BurnSetRefreshRate(58.00);
-
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(Drv68KROM + 0x00001, 0, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x00000, 1, 2)) return 1;
-
- if (BurnLoadRom(DrvHucROM + 0x00000, 2, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM1 + 0x00000, 3, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM2 + 0x00000, 4, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x00001, 5, 2)) return 1;
-
- if (BurnLoadRom(DrvSndROM + 0x00000, 6, 1)) return 1;
-
- deco56_decrypt_gfx(DrvGfxROM1, 0x080000);
-
- deco16_tile_decode(DrvGfxROM1, DrvGfxROM0, 0x080000, 1);
- deco16_tile_decode(DrvGfxROM1, DrvGfxROM1, 0x080000, 0);
- deco16_sprite_decode(DrvGfxROM2, 0x100000);
- }
-
- deco16Init(1, 0, 1);
- deco16_set_graphics(DrvGfxROM0, 0x80000 * 2, DrvGfxROM1, 0x80000 * 2, NULL, 0);
- deco16_set_color_base(0, 256);
- deco16_set_color_base(1, 512);
- deco16_set_global_offsets(0, 8);
-
- SekInit(0, 0x68000);
- SekOpen(0);
- SekMapMemory(Drv68KROM, 0x000000, 0x07ffff, MAP_RAM);
- SekMapMemory(Drv68KRAM, 0x120000, 0x123fff, MAP_RAM);
- SekMapMemory(DrvPalRAM, 0x140000, 0x1407ff, MAP_RAM);
- SekMapMemory(DrvSprRAM, 0x1a0000, 0x1a07ff, MAP_RAM);
- SekMapMemory(deco16_pf_ram[0], 0x320000, 0x321fff, MAP_RAM);
- SekMapMemory(deco16_pf_ram[1], 0x322000, 0x323fff, MAP_RAM);
- SekMapMemory(deco16_pf_rowscroll[0], 0x340000, 0x340bff, MAP_RAM);
- SekMapMemory(deco16_pf_rowscroll[1], 0x342000, 0x342bff, MAP_RAM);
- SekSetWriteWordHandler(0, tumblep_main_write_word);
- SekSetWriteByteHandler(0, tumblep_main_write_byte);
- SekSetReadWordHandler(0, tumblep_main_read_word);
- SekSetReadByteHandler(0, tumblep_main_read_byte);
- SekClose();
-
- deco16SoundInit(DrvHucROM, DrvHucRAM, 4027500, 0, NULL, 0.45, 1023924, 0.50, 0, 0);
- BurnYM2151SetRoute(BURN_SND_YM2151_YM2151_ROUTE_1, 0.45, BURN_SND_ROUTE_LEFT);
- BurnYM2151SetRoute(BURN_SND_YM2151_YM2151_ROUTE_2, 0.45, BURN_SND_ROUTE_RIGHT);
-
- GenericTilesInit();
-
- DrvDoReset();
-
- return 0;
-}
-
-static INT32 DrvExit()
-{
- GenericTilesExit();
- deco16Exit();
-
- deco16SoundExit();
-
- SekExit();
-
- BurnFree(AllMem);
-
- return 0;
-}
-
-static void DrvPaletteRecalc()
-{
- UINT16 *p = (UINT16*)DrvPalRAM;
-
- for (INT32 i = 0; i < 0x800 / 2; i++) {
- INT32 b = (BURN_ENDIAN_SWAP_INT16(p[i]) >> 8) & 0x0f;
- INT32 g = (BURN_ENDIAN_SWAP_INT16(p[i]) >> 4) & 0x0f;
- INT32 r = (BURN_ENDIAN_SWAP_INT16(p[i]) >> 0) & 0x0f;
-
- r |= r << 4;
- g |= g << 4;
- b |= b << 4;
-
- DrvPalette[i] = BurnHighCol(r, g, b, 0);
- }
-}
-
-static void draw_sprites()
-{
- UINT16 *ram = (UINT16*)DrvSprRAM;
-
- for (INT32 offs = 0; offs < 0x400; offs += 4)
- {
- INT32 inc, mult;
-
- INT32 sy = BURN_ENDIAN_SWAP_INT16(ram[offs + 0]);
- INT32 code = BURN_ENDIAN_SWAP_INT16(ram[offs + 1]) & 0x3fff;
- INT32 sx = BURN_ENDIAN_SWAP_INT16(ram[offs + 2]);
-
- if ((sy & 0x1000) && (nCurrentFrame & 1)) continue;
-
- INT32 color = (sx >> 9) & 0x1f;
-
- INT32 flipx = sy & 0x2000;
- INT32 flipy = sy & 0x4000;
- INT32 multi = (1 << ((sy & 0x0600) >> 9)) - 1;
-
- sx &= 0x01ff;
- sy &= 0x01ff;
- if (sx >= 320) sx -= 512;
- if (sy >= 256) sy -= 512;
- sy = 240 - sy;
- sx = 304 - sx;
-
- code &= ~multi;
-
- if (flipy) {
- inc = -1;
- } else {
- code += multi;
- inc = 1;
- }
-
- if (*flipscreen)
- {
- sy = 240 - sy;
- sx = 304 - sx;
- flipx = !flipx;
- flipy = !flipy;
- mult = 16;
- }
- else
- mult = -16;
-
- if (sx >= 320 || sx < -15) continue;
-
- while (multi >= 0)
- {
- INT32 y = (sy + mult * multi) - 8;
- INT32 c = (code - multi * inc) & 0x3fff;
-
- if (flipy) {
- if (flipx) {
- Render16x16Tile_Mask_FlipXY_Clip(pTransDraw, c, sx, y, color, 4, 0, 0, DrvGfxROM2);
- } else {
- Render16x16Tile_Mask_FlipY_Clip(pTransDraw, c, sx, y, color, 4, 0, 0, DrvGfxROM2);
- }
- } else {
- if (flipx) {
- Render16x16Tile_Mask_FlipX_Clip(pTransDraw, c, sx, y, color, 4, 0, 0, DrvGfxROM2);
- } else {
- Render16x16Tile_Mask_Clip(pTransDraw, c, sx, y, color, 4, 0, 0, DrvGfxROM2);
- }
- }
-
- multi--;
- }
- }
-}
-
-static INT32 DrvDraw()
-{
-// if (DrvRecalc) {
- DrvPaletteRecalc();
- DrvRecalc = 0;
-// }
-
- deco16_pf12_update();
-
- for (INT32 i = 0; i < nScreenWidth * nScreenHeight; i++) {
- pTransDraw[i] = 0x100;
- }
-
- if (nBurnLayer & 1) deco16_draw_layer(1, pTransDraw, DECO16_LAYER_OPAQUE);
-
- if (nBurnLayer & 2) deco16_draw_layer(0, pTransDraw, 0);
-
- if (nBurnLayer & 4) draw_sprites();
-
- // hack! fix ugly line and keep proper aspect ratio.
- {
- UINT16 *dst = pTransDraw + (nScreenWidth - 2);
- for (INT32 y = 0; y < nScreenHeight; y++) {
- dst[1] = dst[0];
- dst += nScreenWidth;
- }
- }
-
- BurnTransferCopy(DrvPalette);
-
- return 0;
-}
-
-static INT32 DrvFrame()
-{
- if (DrvReset) {
- DrvDoReset();
- }
-
- {
- memset (DrvInputs, 0xff, 2 * sizeof(UINT16));
- for (INT32 i = 0; i < 16; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- }
- }
-
- INT32 nInterleave = 232;
- INT32 nSoundBufferPos = 0;
- INT32 nCyclesTotal[2] = { 14000000 / 58, 4027500 / 58 };
- INT32 nCyclesDone[2] = { 0, 0 };
-
- SekOpen(0);
- h6280Open(0);
-
- deco16_vblank = 0;
-
- for (INT32 i = 0; i < nInterleave; i++)
- {
- nCyclesDone[0] += SekRun(nCyclesTotal[0] / nInterleave);
- nCyclesDone[1] += h6280Run(nCyclesTotal[1] / nInterleave);
-
- if (i == 206) deco16_vblank = 0x08;
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen / nInterleave;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- deco16SoundUpdate(pSoundBuf, nSegmentLength);
- nSoundBufferPos += nSegmentLength;
- }
- }
-
- SekSetIRQLine(6, CPU_IRQSTATUS_AUTO);
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
-
- if (nSegmentLength) {
- deco16SoundUpdate(pSoundBuf, nSegmentLength);
- }
- }
-
- h6280Close();
- SekClose();
-
- if (pBurnDraw) {
- DrvDraw();
- }
-
- return 0;
-}
-
-static INT32 DrvScan(INT32 nAction, INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin != NULL) {
- *pnMin = 0x029722;
- }
-
- if (nAction & ACB_MEMORY_RAM) {
- memset(&ba, 0, sizeof(ba));
- ba.Data = AllRam;
- ba.nLen = RamEnd-AllRam;
- ba.szName = "All Ram";
- BurnAcb(&ba);
- }
-
- if (nAction & ACB_DRIVER_DATA) {
- SekScan(nAction);
-
- deco16SoundScan(nAction, pnMin);
-
- deco16Scan();
- }
-
- return 0;
-}
-
-
-// Tumble Pop (World)
-
-static struct BurnRomInfo tumblepRomDesc[] = {
- { "hl00-1.f12", 0x40000, 0xfd697c1b, 1 | BRF_PRG | BRF_ESS }, // 0 68k Code
- { "hl01-1.f13", 0x40000, 0xd5a62a3f, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "hl02-.f16", 0x10000, 0xa5cab888, 2 | BRF_PRG | BRF_ESS }, // 2 Huc6280 Code
-
- { "map-02.rom", 0x80000, 0xdfceaa26, 3 | BRF_GRA }, // 3 Characters & Background Tiles
-
- { "map-01.rom", 0x80000, 0xe81ffa09, 4 | BRF_GRA }, // 4 Sprites
- { "map-00.rom", 0x80000, 0x8c879cfe, 4 | BRF_GRA }, // 5
-
- { "hl03-.j15", 0x20000, 0x01b81da0, 5 | BRF_SND }, // 6 OKI M6295 Samples
-};
-
-STD_ROM_PICK(tumblep)
-STD_ROM_FN(tumblep)
-
-struct BurnDriver BurnDrvTumblep = {
- "tumblep", NULL, NULL, NULL, "1991",
- "Tumble Pop (World)\0", NULL, "Data East Corporation", "DECO IC16",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_PREFIX_DATAEAST, GBF_PLATFORM, 0,
- NULL, tumblepRomInfo, tumblepRomName, NULL, NULL, TumblepInputInfo, TumblepDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 320, 240, 4, 3
-};
-
-
-// Tumble Pop (Japan)
-
-static struct BurnRomInfo tumblepjRomDesc[] = {
- { "hk00-1.f12", 0x40000, 0x2d3e4d3d, 1 | BRF_PRG | BRF_ESS }, // 0 68k Code
- { "hk01-1.f13", 0x40000, 0x56912a00, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "hl02-.f16", 0x10000, 0xa5cab888, 2 | BRF_PRG | BRF_ESS }, // 2 Huc6280 Code
-
- { "map-02.rom", 0x80000, 0xdfceaa26, 3 | BRF_GRA }, // 3 Characters & Background Tiles
-
- { "map-01.rom", 0x80000, 0xe81ffa09, 4 | BRF_GRA }, // 4 Sprites
- { "map-00.rom", 0x80000, 0x8c879cfe, 4 | BRF_GRA }, // 5
-
- { "hl03-.j15", 0x20000, 0x01b81da0, 5 | BRF_SND }, // 6 OKI M6295 Samples
-};
-
-STD_ROM_PICK(tumblepj)
-STD_ROM_FN(tumblepj)
-
-struct BurnDriver BurnDrvTumblepj = {
- "tumblepj", "tumblep", NULL, NULL, "1991",
- "Tumble Pop (Japan)\0", NULL, "Data East Corporation", "DECO IC16",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_DATAEAST, GBF_PLATFORM, 0,
- NULL, tumblepjRomInfo, tumblepjRomName, NULL, NULL, TumblepInputInfo, TumblepDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 320, 240, 4, 3
-};
-
diff --git a/jan/src/burn/drv/dataeast/d_vaportra.cpp b/jan/src/burn/drv/dataeast/d_vaportra.cpp
deleted file mode 100644
index 7c00fb565..000000000
--- a/jan/src/burn/drv/dataeast/d_vaportra.cpp
+++ /dev/null
@@ -1,834 +0,0 @@
-// FB Alpha Vapor Trail driver module
-// Based on MAME driver by Bryan McPhail
-
-#include "tiles_generic.h"
-#include "m68000_intf.h"
-#include "h6280_intf.h"
-#include "deco16ic.h"
-#include "burn_ym2203.h"
-#include "msm6295.h"
-
-static UINT8 *AllMem;
-static UINT8 *MemEnd;
-static UINT8 *AllRam;
-static UINT8 *RamEnd;
-static UINT8 *Drv68KROM;
-static UINT8 *DrvHucROM;
-static UINT8 *DrvGfxROM0;
-static UINT8 *DrvGfxROM1;
-static UINT8 *DrvGfxROM2;
-static UINT8 *DrvGfxROM3;
-static UINT8 *DrvSndROM0;
-static UINT8 *DrvSndROM1;
-static UINT8 *Drv68KRAM;
-static UINT8 *DrvHucRAM;
-static UINT8 *DrvPalRAM0;
-static UINT8 *DrvPalRAM1;
-static UINT8 *DrvSprRAM;
-static UINT8 *DrvSprBuf;
-
-static UINT32 *DrvPalette;
-static UINT8 DrvRecalc;
-
-static INT16 *SoundBuffer;
-
-static UINT8 *flipscreen;
-static UINT16 *priority;
-
-static UINT8 DrvJoy1[16];
-static UINT8 DrvJoy2[16];
-static UINT8 DrvDips[2];
-static UINT8 DrvReset;
-static UINT16 DrvInputs[2];
-
-static struct BurnInputInfo VaportraInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy2 + 0, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 7, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy1 + 0, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy1 + 1, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy1 + 2, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy1 + 3, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy1 + 4, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy1 + 5, "p1 fire 2" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy2 + 1, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy1 + 15, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvJoy1 + 8, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy1 + 9, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy1 + 10, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy1 + 11, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy1 + 12, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy1 + 13, "p2 fire 2" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip" },
-};
-
-STDINPUTINFO(Vaportra)
-
-static struct BurnDIPInfo VaportraDIPList[]=
-{
- {0x11, 0xff, 0xff, 0x7f, NULL },
- {0x12, 0xff, 0xff, 0xff, NULL },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x11, 0x01, 0x03, 0x00, "2" },
- {0x11, 0x01, 0x03, 0x03, "3" },
- {0x11, 0x01, 0x03, 0x02, "4" },
- {0x11, 0x01, 0x03, 0x01, "5" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x11, 0x01, 0x0c, 0x08, "Easy" },
- {0x11, 0x01, 0x0c, 0x0c, "Normal" },
- {0x11, 0x01, 0x0c, 0x04, "Hard" },
- {0x11, 0x01, 0x0c, 0x00, "Hardest" },
-
- {0 , 0xfe, 0 , 4, "Bonus Life" },
- {0x11, 0x01, 0x30, 0x20, "150k, 300k and 600k" },
- {0x11, 0x01, 0x30, 0x30, "200k and 600k" },
- {0x11, 0x01, 0x30, 0x10, "300k only" },
- {0x11, 0x01, 0x30, 0x00, "None" },
-
- {0 , 0xfe, 0 , 2, "Allow Continue" },
- {0x11, 0x01, 0x40, 0x00, "No" },
- {0x11, 0x01, 0x40, 0x40, "Yes" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x11, 0x01, 0x80, 0x80, "Off" },
- {0x11, 0x01, 0x80, 0x00, "On" },
-
- {0 , 0xfe, 0 , 8, "Coin A" },
- {0x12, 0x01, 0x07, 0x00, "3 Coins 1 Credits" },
- {0x12, 0x01, 0x07, 0x01, "2 Coins 1 Credits" },
- {0x12, 0x01, 0x07, 0x07, "1 Coin 1 Credits" },
- {0x12, 0x01, 0x07, 0x06, "1 Coin 2 Credits" },
- {0x12, 0x01, 0x07, 0x05, "1 Coin 3 Credits" },
- {0x12, 0x01, 0x07, 0x04, "1 Coin 4 Credits" },
- {0x12, 0x01, 0x07, 0x03, "1 Coin 5 Credits" },
- {0x12, 0x01, 0x07, 0x02, "1 Coin 6 Credits" },
-
- {0 , 0xfe, 0 , 8, "Coin B" },
- {0x12, 0x01, 0x38, 0x00, "3 Coins 1 Credits" },
- {0x12, 0x01, 0x38, 0x08, "2 Coins 1 Credits" },
- {0x12, 0x01, 0x38, 0x38, "1 Coin 1 Credits" },
- {0x12, 0x01, 0x38, 0x30, "1 Coin 2 Credits" },
- {0x12, 0x01, 0x38, 0x28, "1 Coin 3 Credits" },
- {0x12, 0x01, 0x38, 0x20, "1 Coin 4 Credits" },
- {0x12, 0x01, 0x38, 0x18, "1 Coin 5 Credits" },
- {0x12, 0x01, 0x38, 0x10, "1 Coin 6 Credits" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x12, 0x01, 0x40, 0x40, "Off" },
- {0x12, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x12, 0x01, 0x80, 0x80, "Off" },
- {0x12, 0x01, 0x80, 0x00, "On" },
-};
-
-STDDIPINFO(Vaportra)
-
-void __fastcall vaportra_main_write_word(UINT32 address, UINT16 data)
-{
- deco16_write_control_word(1, address, 0x240000, data)
- deco16_write_control_word(0, address, 0x2c0000, data)
-
- if ((address & ~0xce0000) >= 0x318000 && (address & ~0xce0000) <= 0x3187ff)
- {
- *((UINT16*)(DrvSprRAM + (address & 0x7fe))) = data;
- return;
- }
-
- switch (address)
- {
- case 0x100000:
- case 0x100002:
- priority[(address & 2)/2] = data;
- return;
-
- case 0x100006:
- deco16_soundlatch = data & 0xff;
- h6280SetIRQLine(0, CPU_IRQSTATUS_ACK);
- return;
-
- case 0x30c000:
- memcpy (DrvSprBuf, DrvSprRAM, 0x800);
- return;
- }
-}
-
-void __fastcall vaportra_main_write_byte(UINT32 address, UINT8 data)
-{
- if ((address & ~0xce0000) >= 0x318000 && (address & ~0xce0000) <= 0x3187ff)
- {
- DrvSprRAM[(address & 0x7ff) ^ 1] = data;
- return;
- }
-
- switch (address)
- {
- case 0x100000:
- case 0x100001:
- case 0x100002:
- case 0x100003:
- priority[(address & 2)/2] = data;
- return;
-
- case 0x100007:
- deco16_soundlatch = data;
- h6280SetIRQLine(0, CPU_IRQSTATUS_ACK);
- return;
-
- case 0x30c000:
- case 0x30c001:
- memcpy (DrvSprBuf, DrvSprRAM, 0x800);
- return;
- }
-}
-
-UINT16 __fastcall vaportra_main_read_word(UINT32 address)
-{
- if ((address & ~0xce0000) >= 0x318000 && (address & ~0xce0000) <= 0x3187ff)
- {
- return *((UINT16*)(DrvSprRAM + (address & 0x7fe)));
- }
-
- switch (address)
- {
- case 0x100000:
- return DrvInputs[0];
-
- case 0x100002:
- return (DrvInputs[1] & 0xfff7) | (deco16_vblank & 0x08);
-
- case 0x100004:
- return (DrvDips[1] << 8) | (DrvDips[0] << 0);
-
- case 0x100006:
- case 0x100008:
- case 0x10000a:
- case 0x10000c:
- case 0x10000e:
- return 0xffff;
- }
-
- return 0;
-}
-
-UINT8 __fastcall vaportra_main_read_byte(UINT32 address)
-{
- if ((address & ~0xce0000) >= 0x318000 && (address & ~0xce0000) <= 0x3187ff)
- {
- return DrvSprRAM[(address & 0x7ff) ^ 1];
- }
-
- switch (address)
- {
- case 0x100000:
- return DrvInputs[0] >> 8;
-
- case 0x100001:
- return DrvInputs[0] >> 0;
-
- case 0x100002:
- case 0x100003:
- return (DrvInputs[1] & 0xf7) | (deco16_vblank & 0x08);
-
- case 0x100004:
- return DrvDips[1];
-
- case 0x100005:
- return DrvDips[0];
-
- case 0x100006:
- case 0x100007:
- case 0x100008:
- case 0x100009:
- case 0x10000a:
- case 0x10000b:
- case 0x10000c:
- case 0x10000d:
- case 0x10000e:
- case 0x10000f:
- return 0xff;
- }
-
- return 0;
-}
-
-static INT32 vaportra_bank_callback( const INT32 bank )
-{
- return ((bank >> 4) & 0x7) * 0x1000;
-}
-
-static INT32 DrvDoReset()
-{
- memset (AllRam, 0, RamEnd - AllRam);
-
- SekOpen(0);
- SekReset();
- SekClose();
-
- deco16SoundReset();
-
- deco16Reset();
- deco16_y_skew = 8; // HACK! the background is skewed by 8, causing sprite:layer misalignment (spider mini-boss/level 2, etc.)
-
- return 0;
-}
-
-static INT32 MemIndex()
-{
- UINT8 *Next; Next = AllMem;
-
- Drv68KROM = Next; Next += 0x080000;
- DrvHucROM = Next; Next += 0x010000;
-
- DrvGfxROM0 = Next; Next += 0x100000;
- DrvGfxROM1 = Next; Next += 0x100000;
- DrvGfxROM2 = Next; Next += 0x200000;
- DrvGfxROM3 = Next; Next += 0x200000;
-
- MSM6295ROM = Next;
- DrvSndROM0 = Next; Next += 0x100000;
- DrvSndROM1 = Next; Next += 0x040000;
-
- DrvPalette = (UINT32*)Next; Next += 0x0500 * sizeof(UINT32);
-
- AllRam = Next;
-
- Drv68KRAM = Next; Next += 0x004000;
- DrvHucRAM = Next; Next += 0x002000;
- DrvSprRAM = Next; Next += 0x000800;
- DrvSprBuf = Next; Next += 0x000800;
- DrvPalRAM0 = Next; Next += 0x000a00;
- DrvPalRAM1 = Next; Next += 0x000a00;
-
- flipscreen = Next; Next += 0x000001;
- priority = (UINT16*)Next; Next += 0x000002 * sizeof(UINT16);
-
- RamEnd = Next;
-
- SoundBuffer = (INT16*)Next; Next += nBurnSoundLen * 2 * sizeof(INT16);
-
- MemEnd = Next;
-
- return 0;
-}
-
-static void VaportraDecode()
-{
- for (INT32 i = 0x00000; i < 0x80000; i++)
- Drv68KROM[i] = (Drv68KROM[i] & 0x7e) | ((Drv68KROM[i] & 0x01) << 7) | ((Drv68KROM[i] & 0x80) >> 7);
-}
-
-static INT32 DrvInit(INT32 type)
-{
- BurnSetRefreshRate(58.00);
-
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(Drv68KROM + 0x000001, 0, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x000000, 1, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x040001, 2, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x040000, 3, 2)) return 1;
- VaportraDecode();
-
- if (BurnLoadRom(DrvHucROM + 0x000000, 4, 1)) return 1;
-
- if (type) // world revision 3
- {
- if (BurnLoadRom(DrvGfxROM0 + 0x000000, 5, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x000001, 6, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x040000, 7, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x040001, 8, 2)) return 1;
-
- if (BurnLoadRom(DrvGfxROM2 + 0x000000, 9, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x080000, 10, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM3 + 0x000000, 11, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM3 + 0x080000, 12, 1)) return 1;
-
- if (BurnLoadRom(DrvSndROM0 + 0x000000, 13, 1)) return 1;
-
- if (BurnLoadRom(DrvSndROM1 + 0x000000, 14, 1)) return 1;
- } else {
- if (BurnLoadRom(DrvGfxROM0 + 0x000000, 5, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM2 + 0x000000, 6, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x080000, 7, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM3 + 0x000000, 8, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM3 + 0x080000, 9, 1)) return 1;
-
- if (BurnLoadRom(DrvSndROM0 + 0x000000, 10, 1)) return 1;
-
- if (BurnLoadRom(DrvSndROM1 + 0x000000, 11, 1)) return 1;
- }
-
- memcpy (DrvGfxROM1 + 0x040000, DrvGfxROM0 + 0x000000, 0x040000);
- memcpy (DrvGfxROM1 + 0x000000, DrvGfxROM0 + 0x040000, 0x040000);
-
- deco16_tile_decode(DrvGfxROM1, DrvGfxROM0, 0x080000, 1);
- deco16_tile_decode(DrvGfxROM1, DrvGfxROM1, 0x080000, 0);
- deco16_tile_decode(DrvGfxROM2, DrvGfxROM2, 0x100000, 0);
- deco16_tile_decode(DrvGfxROM3, DrvGfxROM3, 0x100000, 0);
- }
-
- deco16Init(0, 0, 1);
- deco16_set_graphics(DrvGfxROM0, 0x100000, DrvGfxROM1, 0x100000, DrvGfxROM2, 0x200000);
- deco16_set_color_base(0, 0x000);
- deco16_set_color_base(1, 0x200);
- deco16_set_color_base(2, 0x300);
- deco16_set_color_base(3, 0x400);
- deco16_set_bank_callback(0, vaportra_bank_callback);
- deco16_set_bank_callback(1, vaportra_bank_callback);
- deco16_set_bank_callback(2, vaportra_bank_callback);
- deco16_set_bank_callback(3, vaportra_bank_callback);
-
- SekInit(0, 0x68000);
- SekOpen(0);
- SekMapMemory(Drv68KROM, 0x000000, 0x07ffff, MAP_ROM);
- SekMapMemory(deco16_pf_ram[2], 0x200000, 0x201fff, MAP_RAM);
- SekMapMemory(deco16_pf_ram[3], 0x202000, 0x203fff, MAP_RAM);
- SekMapMemory(deco16_pf_ram[0], 0x280000, 0x281fff, MAP_RAM);
- SekMapMemory(deco16_pf_ram[1], 0x282000, 0x283fff, MAP_RAM);
- SekMapMemory(DrvPalRAM0, 0x300000, 0x3009ff, MAP_RAM);
- SekMapMemory(DrvPalRAM1, 0x304000, 0x3049ff, MAP_RAM);
- //SekMapMemory(DrvSprRAM, 0xff8000, 0xff87ff, MAP_RAM); // in handler w/mirroring (fixes gameover animation)
- SekMapMemory(Drv68KRAM, 0xffc000, 0xffffff, MAP_RAM);
- SekSetWriteWordHandler(0, vaportra_main_write_word);
- SekSetWriteByteHandler(0, vaportra_main_write_byte);
- SekSetReadWordHandler(0, vaportra_main_read_word);
- SekSetReadByteHandler(0, vaportra_main_read_byte);
- SekClose();
-
- deco16SoundInit(DrvHucROM, DrvHucRAM, 8055000, 1, NULL, 0.60, 1006875, 0.75, 2013750, 0.60);
- BurnYM2203SetAllRoutes(0, 0.60, BURN_SND_ROUTE_BOTH);
-
- deco16_music_tempofix = 1;
-
- GenericTilesInit();
-
- DrvDoReset();
-
- return 0;
-}
-
-static INT32 DrvExit()
-{
- GenericTilesExit();
- deco16Exit();
- deco16_y_skew = 0;
-
- SekExit();
-
- deco16SoundExit();
-
- BurnFree (AllMem);
-
- return 0;
-}
-
-static void DrvPaletteRecalc()
-{
- UINT16 *p0 = (UINT16*)DrvPalRAM0;
- UINT16 *p1 = (UINT16*)DrvPalRAM1;
-
- for (INT32 i = 0; i < 0xa00 / 2; i++) {
- DrvPalette[i] = BurnHighCol(BURN_ENDIAN_SWAP_INT16(p0[i]) & 0xff, BURN_ENDIAN_SWAP_INT16(p0[i]) >> 8, BURN_ENDIAN_SWAP_INT16(p1[i])& 0xff, 0);
- }
-}
-
-static void draw_sprites(INT32 pri)
-{
- UINT16 *buffered_spriteram = (UINT16*)DrvSprBuf;
-
- INT32 priority_value = priority[1];
-
- for (INT32 offs = 0; offs < 0x400; offs += 4)
- {
- INT32 inc, mult;
-
- INT32 y = BURN_ENDIAN_SWAP_INT16(buffered_spriteram[offs + 0]);
- if ((y & 0x8000) == 0) continue;
-
- INT32 sprite = BURN_ENDIAN_SWAP_INT16(buffered_spriteram[offs + 1]) & 0x1fff;
-
- INT32 x = BURN_ENDIAN_SWAP_INT16(buffered_spriteram[offs + 2]);
-
- INT32 colour = (x >> 12) & 0xf;
-
- if ( pri && (colour >= priority_value)) continue;
- if (!pri && !(colour >= priority_value)) continue;
-
- if ((x & 0x0800) && (nCurrentFrame & 1)) continue; // flash
-
- INT32 fx = y & 0x2000;
- INT32 fy = y & 0x4000;
- INT32 multi = (1 << ((y & 0x1800) >> 11)) - 1;
-
- x = x & 0x01ff;
- y = y & 0x01ff;
- if (x >= 256) x -= 512;
- if (y >= 256) y -= 512;
- x = 240 - x;
- y = 240 - y;
-
- if (x > 256) continue;
-
- sprite &= ~multi;
- if (fy)
- inc = -1;
- else
- {
- sprite += multi;
- inc = 1;
- }
-
- if (*flipscreen)
- {
- y = 240 - y;
- x = 240 - x;
- if (fx) fx = 0; else fx = 1;
- if (fy) fy = 0; else fy = 1;
- mult = 16;
- }
- else mult = -16;
-
- while (multi >= 0)
- {
- if (fy) {
- if (fx) {
- Render16x16Tile_Mask_FlipXY_Clip(pTransDraw, sprite - multi * inc, x, (y + mult * multi) - 8, colour, 4, 0, 0x100, DrvGfxROM3);
- } else {
- Render16x16Tile_Mask_FlipY_Clip(pTransDraw, sprite - multi * inc, x, (y + mult * multi) - 8, colour, 4, 0, 0x100, DrvGfxROM3);
- }
- } else {
- if (fx) {
- Render16x16Tile_Mask_FlipX_Clip(pTransDraw, sprite - multi * inc, x, (y + mult * multi) - 8, colour, 4, 0, 0x100, DrvGfxROM3);
- } else {
- Render16x16Tile_Mask_Clip(pTransDraw, sprite - multi * inc, x, (y + mult * multi) - 8, colour, 4, 0, 0x100, DrvGfxROM3);
- }
- }
-
- multi--;
- }
- }
-}
-
-static INT32 DrvDraw()
-{
-// if (DrvRecalc) {
- DrvPaletteRecalc();
- DrvRecalc = 0;
-// }
-
- deco16_pf12_update();
- deco16_pf34_update();
-
- INT32 layer_prio = priority[0] & 0x03;
- INT32 layer_order[4][4] = { { 3, 2, 1, 0 }, { 2, 3, 1, 0 }, { 3, 1, 2, 0 }, { 2, 1, 3, 0 } };
-
- deco16_draw_layer(layer_order[layer_prio][0], pTransDraw, DECO16_LAYER_OPAQUE);
- deco16_draw_layer(layer_order[layer_prio][1], pTransDraw, 0);
- draw_sprites(0);
- deco16_draw_layer(layer_order[layer_prio][2], pTransDraw, 0);
- draw_sprites(1);
- deco16_draw_layer(layer_order[layer_prio][3], pTransDraw, 0);
-
- BurnTransferCopy(DrvPalette);
-
- return 0;
-}
-
-static INT32 DrvFrame()
-{
- if (DrvReset) {
- DrvDoReset();
- }
-
- {
- memset (DrvInputs, 0xff, 2 * sizeof(INT16));
- for (INT32 i = 0; i < 16; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- }
- }
-
- INT32 nInterleave = 232;
- INT32 nSoundBufferPos = 0;
- INT32 nCyclesTotal[2] = { 12000000 / 58, 8055000 / 58 };
- INT32 nCyclesDone[2] = { 0, 0 };
-
- h6280NewFrame();
-
- SekOpen(0);
- h6280Open(0);
-
- deco16_vblank = 0;
-
- for (INT32 i = 0; i < nInterleave; i++)
- {
- nCyclesDone[0] += SekRun(nCyclesTotal[0] / nInterleave);
- BurnTimerUpdate((i + 1) * nCyclesTotal[1] / nInterleave);
-
- if (i == 206) {
- deco16_vblank = 0x08;
- SekSetIRQLine(6, CPU_IRQSTATUS_AUTO);
- }
-
- INT32 nSegmentLength = nBurnSoundLen / nInterleave;
- INT16* pSoundBuf = SoundBuffer + (nSoundBufferPos << 1);
- deco16SoundUpdate(pSoundBuf, nSegmentLength);
- nSoundBufferPos += nSegmentLength;
- }
-
- BurnTimerEndFrame(nCyclesTotal[1]);
-
- if (pBurnSoundOut) {
- BurnYM2203Update(pBurnSoundOut, nBurnSoundLen);
-
- INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
- INT16* pSoundBuf = SoundBuffer + (nSoundBufferPos << 1);
-
- if (nSegmentLength) {
- deco16SoundUpdate(pSoundBuf, nSegmentLength);
- }
-
- for (INT32 i = 0; i < nBurnSoundLen; i++) {
- pBurnSoundOut[(i << 1) + 0] = BURN_SND_CLIP(pBurnSoundOut[(i << 1) + 0] + SoundBuffer[(i << 1) + 0]);
- pBurnSoundOut[(i << 1) + 1] = BURN_SND_CLIP(pBurnSoundOut[(i << 1) + 1] + SoundBuffer[(i << 1) + 1]);
- }
- }
-
- h6280Close();
- SekClose();
-
- if (pBurnDraw) {
- DrvDraw();
- }
-
- return 0;
-}
-
-static INT32 DrvScan(INT32 nAction, INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin != NULL) {
- *pnMin = 0x029722;
- }
-
- if (nAction & ACB_MEMORY_RAM) {
- memset(&ba, 0, sizeof(ba));
- ba.Data = AllRam;
- ba.nLen = RamEnd-AllRam;
- ba.szName = "All Ram";
- BurnAcb(&ba);
- }
-
- if (nAction & ACB_DRIVER_DATA) {
- SekScan(nAction);
-
- deco16SoundScan(nAction, pnMin);
-
- deco16Scan();
- }
-
- return 0;
-}
-
-
-// Vapor Trail - Hyper Offence Formation (World revision 1)
-
-static struct BurnRomInfo vaportraRomDesc[] = {
- { "fl_02-1.bin", 0x20000, 0x9ae36095, 1 | BRF_PRG | BRF_ESS }, // 0 68k Code
- { "fl_00-1.bin", 0x20000, 0xc08cc048, 1 | BRF_PRG | BRF_ESS }, // 1
- { "fl_03.bin", 0x20000, 0x80bd2844, 1 | BRF_PRG | BRF_ESS }, // 2
- { "fl_01.bin", 0x20000, 0x9474b085, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "fj04", 0x10000, 0xe9aedf9b, 2 | BRF_PRG | BRF_ESS }, // 4 Huc6280 Code
-
- { "vtmaa00.bin", 0x80000, 0x0330e13b, 3 | BRF_GRA }, // 5 Characters and Foreground Tiles
-
- { "vtmaa01.bin", 0x80000, 0xc217a31b, 4 | BRF_GRA }, // 7
- { "vtmaa02.bin", 0x80000, 0x091ff98e, 4 | BRF_GRA }, // 6 Background Tiles
-
- { "vtmaa04.bin", 0x80000, 0xb713e9cc, 5 | BRF_GRA }, // 9
- { "vtmaa03.bin", 0x80000, 0x1a30bf81, 5 | BRF_GRA }, // 8 Sprites
-
- { "fj06", 0x20000, 0x6e98a235, 6 | BRF_SND }, // 10 OKI M6295 Samples 0
-
- { "fj05", 0x20000, 0x39cda2b5, 7 | BRF_SND }, // 11 OKI M6295 Samples 1
-
- { "fj-27.bin", 0x00200, 0x65045742, 8 | BRF_OPT }, // 12 Unknown PROMs
-
- { "pal16l8a.6l", 0x00104, 0xee748e8f, 9 | BRF_OPT }, // 13 PLDs
- { "pal16l8b.13g", 0x00104, 0x6da13bda, 9 | BRF_OPT }, // 14
- { "pal16l8b.13h", 0x00104, 0x62a9e098, 9 | BRF_OPT }, // 15
- { "pal16l8b.14g", 0x00104, 0x036768aa, 9 | BRF_OPT }, // 16
- { "pal16l8b.14h", 0x00104, 0xbf421fce, 9 | BRF_OPT }, // 17
-};
-
-STD_ROM_PICK(vaportra)
-STD_ROM_FN(vaportra)
-
-static INT32 VaportraInit()
-{
- return DrvInit(0);
-}
-
-struct BurnDriver BurnDrvVaportra = {
- "vaportra", NULL, NULL, NULL, "1989",
- "Vapor Trail - Hyper Offence Formation (World revision 1)\0", NULL, "Data East Corporation", "DECO IC16",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL, 2, HARDWARE_PREFIX_DATAEAST, GBF_VERSHOOT, 0,
- NULL, vaportraRomInfo, vaportraRomName, NULL, NULL, VaportraInputInfo, VaportraDIPInfo,
- VaportraInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x500,
- 240, 256, 3, 4
-};
-
-
-// Vapor Trail - Hyper Offence Formation (World revision 3)
-
-static struct BurnRomInfo vaportraw3RomDesc[] = {
- { "fl02-3.bin", 0x20000, 0x6c59be54, 1 | BRF_PRG | BRF_ESS }, // 0 68k Code
- { "fl00-3.bin", 0x20000, 0x69f8bef4, 1 | BRF_PRG | BRF_ESS }, // 1
- { "fl_03.bin", 0x20000, 0x80bd2844, 1 | BRF_PRG | BRF_ESS }, // 2
- { "fl_01.bin", 0x20000, 0x9474b085, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "fj04", 0x10000, 0xe9aedf9b, 2 | BRF_PRG | BRF_ESS }, // 4 Huc6280 Code
-
- { "fl23", 0x20000, 0x6089f9e7, 3 | BRF_GRA }, // 5 Characters and Foreground Tiles
- { "fl25", 0x20000, 0x3989290a, 3 | BRF_GRA }, // 6
- { "fl24", 0x20000, 0x41551bfa, 3 | BRF_GRA }, // 7
- { "fl26", 0x20000, 0xdc67fa5c, 3 | BRF_GRA }, // 8
-
- { "vtmaa01.bin", 0x80000, 0xc217a31b, 4 | BRF_GRA }, // 9 Background Tiles
- { "vtmaa02.bin", 0x80000, 0x091ff98e, 4 | BRF_GRA }, // 10
-
- { "vtmaa04.bin", 0x80000, 0xb713e9cc, 5 | BRF_GRA }, // 11 Sprites
- { "vtmaa03.bin", 0x80000, 0x1a30bf81, 5 | BRF_GRA }, // 12
-
- { "fj06", 0x20000, 0x6e98a235, 6 | BRF_SND }, // 13 OKI M6295 Samples 0
-
- { "fj05", 0x20000, 0x39cda2b5, 7 | BRF_SND }, // 14 OKI M6295 Samples 1
-
- { "fj-27.bin", 0x00200, 0x65045742, 8 | BRF_OPT }, // 15 Unknown PROMs
-
- { "pal16l8a.6l", 0x00104, 0xee748e8f, 9 | BRF_OPT }, // 13 PLDs
- { "pal16l8b.13g", 0x00104, 0x6da13bda, 9 | BRF_OPT }, // 14
- { "pal16l8b.13h", 0x00104, 0x62a9e098, 9 | BRF_OPT }, // 15
- { "pal16l8b.14g", 0x00104, 0x036768aa, 9 | BRF_OPT }, // 16
- { "pal16l8b.14h", 0x00104, 0xbf421fce, 9 | BRF_OPT }, // 17
-};
-
-STD_ROM_PICK(vaportraw3)
-STD_ROM_FN(vaportraw3)
-
-static INT32 Vaportraw3Init()
-{
- return DrvInit(1);
-}
-
-struct BurnDriver BurnDrvVaportraw3 = {
- "vaportra3", "vaportra", NULL, NULL, "1989",
- "Vapor Trail - Hyper Offence Formation (World revision 3)\0", NULL, "Data East Corporation", "DECO IC16",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL, 2, HARDWARE_PREFIX_DATAEAST, GBF_VERSHOOT, 0,
- NULL, vaportraw3RomInfo, vaportraw3RomName, NULL, NULL, VaportraInputInfo, VaportraDIPInfo,
- Vaportraw3Init, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x500,
- 240, 256, 3, 4
-};
-
-
-// Vapor Trail - Hyper Offence Formation (US)
-
-static struct BurnRomInfo vaportrauRomDesc[] = {
- { "fj02", 0x20000, 0xa2affb73, 1 | BRF_PRG | BRF_ESS }, // 0 68k Code
- { "fj00", 0x20000, 0xef05e07b, 1 | BRF_PRG | BRF_ESS }, // 1
- { "fj03", 0x20000, 0x44893379, 1 | BRF_PRG | BRF_ESS }, // 2
- { "fj01", 0x20000, 0x97fbc107, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "fj04", 0x10000, 0xe9aedf9b, 2 | BRF_PRG | BRF_ESS }, // 4 Huc6280 Code
-
- { "vtmaa00.bin", 0x80000, 0x0330e13b, 3 | BRF_GRA }, // 5 Characters and Foreground Tiles
-
- { "vtmaa01.bin", 0x80000, 0xc217a31b, 4 | BRF_GRA }, // 7
- { "vtmaa02.bin", 0x80000, 0x091ff98e, 4 | BRF_GRA }, // 6 Background Tiles
-
- { "vtmaa04.bin", 0x80000, 0xb713e9cc, 5 | BRF_GRA }, // 9
- { "vtmaa03.bin", 0x80000, 0x1a30bf81, 5 | BRF_GRA }, // 8 Sprites
-
- { "fj06", 0x20000, 0x6e98a235, 6 | BRF_SND }, // 10 OKI M6295 Samples 0
-
- { "fj05", 0x20000, 0x39cda2b5, 7 | BRF_SND }, // 11 OKI M6295 Samples 1
-
- { "fj-27.bin", 0x00200, 0x65045742, 8 | BRF_OPT }, // 12 Unknown PROMs
-
- { "pal16l8a.6l", 0x00104, 0xee748e8f, 9 | BRF_OPT }, // 13 PLDs
- { "pal16l8b.13g", 0x00104, 0x6da13bda, 9 | BRF_OPT }, // 14
- { "pal16l8b.13h", 0x00104, 0x62a9e098, 9 | BRF_OPT }, // 15
- { "pal16l8b.14g", 0x00104, 0x036768aa, 9 | BRF_OPT }, // 16
- { "pal16l8b.14h", 0x00104, 0xbf421fce, 9 | BRF_OPT }, // 17
-};
-
-STD_ROM_PICK(vaportrau)
-STD_ROM_FN(vaportrau)
-
-struct BurnDriver BurnDrvVaportrau = {
- "vaportrau", "vaportra", NULL, NULL, "1989",
- "Vapor Trail - Hyper Offence Formation (US)\0", NULL, "Data East USA", "DECO IC16",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL, 2, HARDWARE_PREFIX_DATAEAST, GBF_VERSHOOT, 0,
- NULL, vaportrauRomInfo, vaportrauRomName, NULL, NULL, VaportraInputInfo, VaportraDIPInfo,
- VaportraInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x500,
- 240, 256, 3, 4
-};
-
-
-// Kuhga - Operation Code 'Vapor Trail' (Japan revision 3)
-
-static struct BurnRomInfo kuhgaRomDesc[] = {
- { "fp02-3.bin", 0x20000, 0xd0705ef4, 1 | BRF_PRG | BRF_ESS }, // 0 68k Code
- { "fp00-3.bin", 0x20000, 0x1da92e48, 1 | BRF_PRG | BRF_ESS }, // 1
- { "fp03.bin", 0x20000, 0xea0da0f1, 1 | BRF_PRG | BRF_ESS }, // 2
- { "fp01.bin", 0x20000, 0xe3ecbe86, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "fj04", 0x10000, 0xe9aedf9b, 2 | BRF_PRG | BRF_ESS }, // 4 Huc6280 Code
-
- { "vtmaa00.bin", 0x80000, 0x0330e13b, 3 | BRF_GRA }, // 5 Characters and Foreground Tiles
-
- { "vtmaa01.bin", 0x80000, 0xc217a31b, 4 | BRF_GRA }, // 7
- { "vtmaa02.bin", 0x80000, 0x091ff98e, 4 | BRF_GRA }, // 6 Background Tiles
-
- { "vtmaa04.bin", 0x80000, 0xb713e9cc, 5 | BRF_GRA }, // 9
- { "vtmaa03.bin", 0x80000, 0x1a30bf81, 5 | BRF_GRA }, // 8 Sprites
-
- { "fj06", 0x20000, 0x6e98a235, 6 | BRF_SND }, // 10 OKI M6295 Samples 0
-
- { "fj05", 0x20000, 0x39cda2b5, 7 | BRF_SND }, // 11 OKI M6295 Samples 1
-
- { "fj-27.bin", 0x00200, 0x65045742, 8 | BRF_OPT }, // 12 Unknown PROMs
-};
-
-STD_ROM_PICK(kuhga)
-STD_ROM_FN(kuhga)
-
-struct BurnDriver BurnDrvKuhga = {
- "kuhga", "vaportra", NULL, NULL, "1989",
- "Kuhga - Operation Code 'Vapor Trail' (Japan revision 3)\0", NULL, "Data East Corporation", "DECO IC16",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL, 2, HARDWARE_PREFIX_DATAEAST, GBF_VERSHOOT, 0,
- NULL, kuhgaRomInfo, kuhgaRomName, NULL, NULL, VaportraInputInfo, VaportraDIPInfo,
- VaportraInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x500,
- 240, 256, 3, 4
-};
diff --git a/jan/src/burn/drv/dataeast/deco146.cpp b/jan/src/burn/drv/dataeast/deco146.cpp
deleted file mode 100644
index 2de100088..000000000
--- a/jan/src/burn/drv/dataeast/deco146.cpp
+++ /dev/null
@@ -1,2570 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:David Haywood, Charles MacDonald
-/* Data East 146 protection chip / memory-mapper & I/O interface */
-
-/*
- The 146 emulation was based on the analysis of a 146 chip by
- Charles MacDonald http://cgfm2.emuviews.com/new/detech.txt
- using a Super Shanghai board and comparisons with the old protection
- simulations.
-
- The Deco 104 emulation is handled through deco104.c
-
- The Deco 146 and 104 chips act as I/O chips and as protection devices
- by using 2 banks of 0x80 words of RAM built into the chips.
-
- The chip has 0x400 read addresses each of which is mapped to one of
- the RAM addresses (scrambled) as well as logic for shifting, xoring
- and masking the bits returned.
-
- In addition there is the aformentioned bankswitch behavior triggered
- by causing a read related to a specific write address.
-
- The chip also provides takes an additional 4 address lines and uses
- them to map Chip Select outputs meaning depending on some
- configuration registers meaning it can potentially be used as a
- memory mapping device similar to the Sega System 16 ones, however
- nothing makes proper use of this functionality.
-
- There seems to be a way to select an alt read mode too, causing
- the port read lines to be xored.
-
- Many games only use the basic I/O functions!
-
- Data East Customs
- 60,66,75 and 146 all appear to have identical functionality
-
- Custom chip 104 appears to work in the same way but with different
- internal tables and different special ports.
-
- Chip 146 104
- XOR register port 0x2c 0x42
- MASK register port 0x36 0xee
- Soundlatch port 0x64 0xa8
- Bankswitch port 0x78 0x66
- Extra addr Xor(if used) 0x44a 0x2a4
- CS config region 0x8 0xc
-
- Both chips are often connected with the lower 10 address lines
- scrambled or reversed.
-
- Game Chip Address Scramble Extra Read Address Xor?
-
- --- 146 compatible games ---
-
- Edward Randy 60 None No
- Mutant Fighter 66 None No
- Captain America 75 None No
- Lemmings 75 None Yes
- Robocop 2 75 None Yes
- Super Shanghai Dragon's Eye 146 None No
- Funky Jet 146 Interleave No
- Sotsugyo Shousho (same board / config as Funky Jet)
- Nitro Ball 146 Reversed Yes
- Fighters History 75 Interleave Yes
- Stadium Hero 96 146 None Yes
- Dragon Gun 146 Reversed No
- Lock 'n' Loaded (same board / config as Dragon Gun)
-
- --- 104 games ---
-
- Caveman Ninja 104 None Yes
- Wizard Fire 104 Reversed No
- Pocket Gal DX 104 Custom* No*
- Boogie Wings 104 Reversed Yes
- Rohga 104 None No
- Diet GoGo 104 Interleave Yes
- Tattoo Assassins 104 Interleave No
- Dream Ball 104 None No
- Night Slashers 104 Interleave No
- Double Wings 104 Interleave Yes
- Schmeiser Robo 104 None No
-
-
- * not currently hooked up, address scramble not figured out
-
- */
-
-#include "tiles_generic.h"
-#include "deco146.h"
-
-deco146port_xx port_table_146[] = {
-/* 0x000 */ { 0x08a, { NIB1__, NIB2__, NIB3__, BLANK_ }, 0, 1 },
-/* 0x002 */ { 0x0aa, { NIB3__, NIB2__, NIB0__, NIB1__ }, 0, 0 },
-/* 0x004 */ { 0x018, { NIB2R2, NIB3__, BLANK_, BLANK_ }, 0, 1 },
-/* 0x006 */ { 0x03c, { BLANK_, NIB3__, BLANK_, BLANK_ }, 0, 0 },
-/* 0x008 */ { 0x0bc, { NIB0R1, NIB1__, NIB2__, NIB3__ }, 1, 1 },
-/* 0x00a */ { 0x00e, { NIB1R2, NIB2__, NIB3__, NIB0__ }, 1, 0 },
-/* 0x00c */ { 0x09a, { NIB3__, BLANK_, BLANK_, BLANK_ }, 0, 0 },
-/* 0x00e */ { 0x000, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x010 */ { 0x00c, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x012 */ { 0x006, { NIB3R2, BLANK_, BLANK_, BLANK_ }, 1, 0 },
-/* 0x014 */ { 0x0e6, { NIB2__, NIB3__, NIB1__, NIB0__ }, 0, 0 },
-/* 0x016 */ { 0x09c, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x018 */ { 0x05e, { NIB0__, NIB1__, NIB3__, NIB2__ }, 1, 1 },
-/* 0x01a */ { 0x0de, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x01c */ { 0x002, { NIB3__, NIB2__, BLANK_, BLANK_ }, 1, 1 },
-/* 0x01e */ { 0x0f4, { NIB0__, NIB1__, NIB2__, NIB3__ }, 1, 1 },
-/* 0x020 */ { 0x036, { NIB0__, NIB2__, NIB3__, NIB1__ }, 1, 0 },
-/* 0x022 */ { 0x070, { NIB1__, NIB2__, NIB3__, BLANK_ }, 1, 1 },
-/* 0x024 */ { INPUT_PORT_C, { NIB0R2, NIB1__, NIB2__, NIB3__ }, 0, 1 }, // // $4024 $FFFF DCBA .N. 2
-/* 0x026 */ { 0x030, { NIB0__, NIB3__, NIB2__, NIB1__ }, 0, 0 },
-/* 0x028 */ { 0x06a, { NIB1__, NIB0__, NIB3__, NIB2__ }, 0, 0 },
-/* 0x02a */ { 0x0c0, { NIB1R3, NIB2__, NIB3__, NIB0__ }, 1, 0 },
-/* 0x02c */ { 0x01c, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x02e */ { 0x0ec, { NIB2R1, NIB3__, NIB0__, NIB1__ }, 1, 0 },
-/* 0x030 */ { 0x090, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x032 */ { 0x0f0, { NIB1R2, NIB2__, NIB3__, BLANK_ }, 0, 1 },
-/* 0x034 */ { 0x020, { NIB1R3, NIB2__, NIB3__, NIB0__ }, 0, 0 },
-/* 0x036 */ { 0x082, { NIB1__, NIB2__, NIB3__, BLANK_ }, 1, 0 },
-/* 0x038 */ { 0x0a0, { NIB2__, NIB1__, NIB3__, NIB0__ }, 1, 0 },
-/* 0x03a */ { 0x078, { NIB3R3, NIB0__, NIB1__, NIB2__ }, 1, 1 },
-/* 0x03c */ { 0x0be, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x03e */ { 0x066, { NIB1__, NIB0__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x040 */ { 0x0c8, { NIB2R1, NIB3__, NIB0__, NIB1__ }, 0, 1 },
-/* 0x042 */ { 0x0ce, { NIB0__, NIB3__, NIB1__, NIB2__ }, 1, 0 },
-/* 0x044 */ { INPUT_PORT_B, { NIB0R2, BLANK_, BLANK_, BLANK_ }, 0, 1 },// $4044 $000F ---A .N. 2
-/* 0x046 */ { INPUT_PORT_B, { NIB0__, BLANK_, BLANK_, BLANK_ }, 1, 0 }, // $4046 $000F ---A X.. 0 (mutant fighter )
-/* 0x048 */ { 0x0f6, { NIB1__, NIB2__, BLANK_, NIB3__ }, 0, 1 },
-/* 0x04a */ { 0x0f8, { NIB0__, NIB3__, NIB2__, NIB1__ }, 0, 1 },
-/* 0x04c */ { 0x0cc, { NIB1R3, NIB2__, NIB3__, BLANK_ }, 0, 0 },
-/* 0x04e */ { 0x014, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x050 */ { INPUT_PORT_A, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 }, // $4050 $FFFF DCBA ... 0 (standard i/o read shanghai)
-/* 0x052 */ { 0x0de, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 1 },
-/* 0x054 */ { 0x060, { NIB0__, NIB2__, NIB3__, NIB1__ }, 0, 1 },
-/* 0x056 */ { 0x012, { NIB3__, NIB2__, NIB1__, NIB0__ }, 1, 0 },
-/* 0x058 */ { 0x0a2, { BLANK_, NIB3__, BLANK_, BLANK_ }, 1, 1 },
-/* 0x05a */ { 0x06c, { NIB1__, NIB2__, BLANK_, NIB3__ }, 1, 0 },
-/* 0x05c */ { 0x076, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x05e */ { INPUT_PORT_A, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 1 }, // // $405E $FFFF DCBA .N. 0
-/* 0x060 */ { 0x0dc, { NIB3__, NIB0__, NIB2__, NIB1__ }, 1, 1 },
-/* 0x062 */ { 0x054, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x064 */ { 0x05a, { NIB1__, NIB3__, NIB0__, NIB2__ }, 1, 0 },
-/* 0x066 */ { INPUT_PORT_A, { NIB2__, NIB3__, BLANK_, BLANK_ }, 0, 0 },// $4066 $FF00 BA-- ..B 0
-/* 0x068 */ { 0x0e0, { NIB2__, NIB3__, NIB0__, NIB1__ }, 0, 1 },
-/* 0x06a */ { 0x0d4, { NIB3R2, NIB0__, NIB1__, NIB2__ }, 0, 0 },
-/* 0x06c */ { 0x054, { NIB1__, NIB3__, NIB0__, NIB2__ }, 1, 1 },
-/* 0x06e */ { 0x0fc, { NIB3R1, BLANK_, BLANK_, BLANK_ }, 1, 1 },
-/* 0x070 */ { 0x07e, { NIB1R2, NIB2__, NIB3__, NIB0__ }, 0, 0 },
-/* 0x072 */ { 0x03e, { NIB2__, NIB1__, NIB3__, BLANK_ }, 0, 1 },
-/* 0x074 */ { 0x0c6, { BLANK_, NIB3__, BLANK_, NIB2__ }, 1, 1 },
-/* 0x076 */ { 0x078, { NIB3__, NIB2__, NIB1__, NIB0__ }, 1, 1 },
-/* 0x078 */ { 0x07c, { BLANK_, NIB2__, NIB3__, NIB1__ }, 0, 1 },
-/* 0x07a */ { 0x00e, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x07c */ { 0x09c, { NIB2R2, NIB3__, BLANK_, BLANK_ }, 1, 1 },
-/* 0x07e */ { 0x074, { NIB2__, NIB0__, NIB1__, NIB3__ }, 0, 0 },
-/* 0x080 */ { INPUT_PORT_B, { NIB0__, BLANK_, BLANK_, BLANK_ }, 0, 1 },// $4080 $000F ---A .N. 0
-/* 0x082 */ { 0x044, { NIB2R2, NIB3__, NIB0__, NIB1__ }, 1, 1 },
-/* 0x084 */ { 0x0c4, { NIB1__, NIB2__, BLANK_, NIB3__ }, 1, 1 },
-/* 0x086 */ { 0x0be, { NIB3__, BLANK_, BLANK_, BLANK_ }, 0, 0 },
-/* 0x088 */ { 0x04e, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x08a */ { 0x0b2, { NIB1R1, NIB2__, NIB3__, BLANK_ }, 0, 1 },
-/* 0x08c */ { 0x04e, { NIB3__, NIB0__, NIB1__, NIB2__ }, 1, 1 },
-/* 0x08e */ { 0x052, { BLANK_, NIB3__, BLANK_, NIB2__ }, 0, 0 },
-/* 0x090 */ { 0x04a, { NIB2__, NIB3__, BLANK_, BLANK_ }, 0, 0 },
-/* 0x092 */ { INPUT_PORT_B, { NIB1__, BLANK_, BLANK_, BLANK_ }, 0, 0 },// $4092 $00F0 --A- ... 0
-/* 0x094 */ { 0x02c, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x096 */ { 0x000, { BLANK_, NIB3__, BLANK_, BLANK_ }, 1, 0 },
-/* 0x098 */ { 0x076, { NIB2__, NIB3__, BLANK_, BLANK_ }, 0, 0 },
-/* 0x09a */ { 0x014, { BLANK_, NIB3__, BLANK_, BLANK_ }, 1, 1 },
-/* 0x09c */ { 0x094, { NIB2__, NIB1__, NIB0__, NIB3__ }, 0, 0 },
-/* 0x09e */ { 0x0ac, { NIB3__, NIB1__, NIB2__, NIB0__ }, 0, 1 },
-/* 0x0a0 */ { 0x0a4, { NIB3__, NIB0__, NIB1__, NIB2__ }, 1, 0 },
-/* 0x0a2 */ { 0x098, { NIB1R3, NIB2__, NIB3__, NIB0__ }, 0, 1 },
-/* 0x0a4 */ { 0x02c, { NIB0R2, NIB1__, NIB2__, NIB3__ }, 0, 1 },
-/* 0x0a6 */ { 0x0d8, { NIB3__, NIB2__, BLANK_, BLANK_ }, 1, 0 },
-/* 0x0a8 */ { 0x0d2, { NIB1R2, NIB2__, NIB3__, BLANK_ }, 1, 1 },
-/* 0x0aa */ { 0x0fe, { NIB0R3, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x0ac */ { INPUT_PORT_C, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 }, // $40AC $FFFF DCBA ... 0 (standard i/o read shanghai)
-/* 0x0ae */ { 0x062, { NIB2__, NIB3__, NIB1__, NIB0__ }, 1, 0 },
-/* 0x0b0 */ { 0x00c, { NIB3__, NIB2__, NIB0__, NIB1__ }, 1, 0 },
-/* 0x0b2 */ { 0x078, { NIB3R2, NIB0__, NIB1__, NIB2__ }, 1, 0 },
-/* 0x0b4 */ { 0x046, { BLANK_, NIB3__, BLANK_, BLANK_ }, 1, 0 },
-/* 0x0b6 */ { 0x0c6, { NIB3R2, NIB0__, NIB1__, NIB2__ }, 1, 0 },
-/* 0x0b8 */ { 0x03a, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x0ba */ { 0x0f2, { NIB2__, NIB1__, NIB3__, NIB0__ }, 0, 0 },
-/* 0x0bc */ { 0x0e2, { NIB3R2, BLANK_, BLANK_, BLANK_ }, 1, 1 },
-/* 0x0be */ { INPUT_PORT_B, { NIB2__, BLANK_, BLANK_, BLANK_ }, 0, 0 }, // // $40BE $0F00 -A-- ... 0
-/* 0x0c0 */ { 0x096, { NIB3R2, BLANK_, BLANK_, BLANK_ }, 0, 0 },
-/* 0x0c2 */ { INPUT_PORT_C, { NIB0__, NIB1__, NIB2__, NIB3__ }, 1, 0 }, // $40C2 $FFFF DCBA X.. 0 (edrandy) // standard port order with a xor..
-/* 0x0c4 */ { 0x056, { NIB3__, BLANK_, BLANK_, BLANK_ }, 1, 1 },
-/* 0x0c6 */ { 0x09e, { NIB2__, NIB3__, NIB0__, NIB1__ }, 0, 0 },
-/* 0x0c8 */ { 0x05c, { NIB2R2, NIB3__, BLANK_, BLANK_ }, 1, 0 },
-/* 0x0ca */ { 0x028, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x0cc */ { 0x0da, { NIB1__, NIB2__, NIB3__, NIB0__ }, 1, 0 },
-/* 0x0ce */ { 0x0b4, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x0d0 */ { 0x0a6, { NIB2__, NIB1__, NIB3__, NIB0__ }, 1, 1 },
-/* 0x0d2 */ { 0x0a6, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x0d4 */ { 0x06c, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x0d6 */ { 0x064, { NIB0__, NIB3__, NIB1__, NIB2__ }, 0, 0 },
-/* 0x0d8 */ { INPUT_PORT_C, { NIB0R1, NIB1__, NIB2__, NIB3__ }, 0, 1 }, // // $40D8 $FFFF DCBA .N. 1
-/* 0x0da */ { 0x0e4, { NIB2__, NIB1__, BLANK_, NIB3__ }, 0, 1 },
-/* 0x0dc */ { 0x048, { BLANK_, NIB3__, BLANK_, BLANK_ }, 0, 1 },
-/* 0x0de */ { 0x0ee, { NIB2__, NIB3__, NIB0__, NIB1__ }, 1, 1 },
-/* 0x0e0 */ { 0x024, { NIB0R1, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x0e2 */ { 0x0aa, { NIB3R1, NIB0__, NIB1__, NIB2__ }, 1, 0 },
-/* 0x0e4 */ { 0x004, { NIB1__, NIB2__, NIB0__, NIB3__ }, 0, 0 },
-/* 0x0e6 */ { 0x0c2, { NIB3R3, BLANK_, BLANK_, BLANK_ }, 1, 0 },
-/* 0x0e8 */ { 0x0ae, { NIB1__, NIB2__, NIB3__, NIB0__ }, 0, 0 },
-/* 0x0ea */ { 0x02a, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x0ec */ { 0x05e, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x0ee */ { 0x078, { NIB2R3, NIB3__, NIB0__, NIB1__ }, 1, 0 },
-/* 0x0f0 */ { 0x072, { NIB0__, NIB1__, NIB3__, NIB2__ }, 0, 1 },
-/* 0x0f2 */ { 0x016, { NIB3R1, BLANK_, BLANK_, BLANK_ }, 0, 0 },
-/* 0x0f4 */ { 0x02e, { NIB3__, NIB0__, NIB2__, NIB1__ }, 1, 0 },
-/* 0x0f6 */ { 0x042, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x0f8 */ { 0x068, { NIB2__, NIB1__, BLANK_, NIB3__ }, 1, 0 },
-/* 0x0fa */ { 0x042, { NIB3R3, NIB0__, NIB1__, NIB2__ }, 0, 0 },
-/* 0x0fc */ { 0x034, { NIB3R1, BLANK_, BLANK_, BLANK_ }, 1, 0 },
-/* 0x0fe */ { INPUT_PORT_A, { NIB1__, NIB2__, NIB3__, NIB0__ }, 0, 0 },// $40FE $FFFF CBAD ... 0
-/* 0x100 */ { 0x008, { NIB1R3, NIB2__, NIB3__, BLANK_ }, 1, 1 },
-/* 0x102 */ { 0x0a2, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x104 */ { 0x0c8, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x106 */ { 0x07a, { NIB1R1, NIB2__, NIB3__, NIB0__ }, 1, 0 },
-/* 0x108 */ { 0x050, { NIB1R2, NIB2__, NIB3__, BLANK_ }, 1, 0 },
-/* 0x10a */ { 0x01e, { NIB2__, NIB0__, NIB1__, NIB3__ }, 1, 0 },
-/* 0x10c */ { 0x0ca, { BLANK_, BLANK_, BLANK_, NIB3__ }, 0, 0 },
-/* 0x10e */ { 0x05a, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x110 */ { 0x090, { NIB3__, BLANK_, BLANK_, BLANK_ }, 1, 1 },
-/* 0x112 */ { 0x052, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x114 */ { 0x0ba, { NIB1R2, NIB2__, NIB3__, NIB0__ }, 0, 1 },
-/* 0x116 */ { 0x0c0, { NIB2R2, NIB3__, NIB0__, NIB1__ }, 0, 0 },
-/* 0x118 */ { INPUT_PORT_C, { NIB0R2, NIB1__, NIB2__, NIB3__ }, 1, 0 }, // // $4118 $FFFF DCBA X.. 2
-/* 0x11a */ { 0x02a, { NIB3__, NIB2__, BLANK_, BLANK_ }, 0, 0 },
-/* 0x11c */ { 0x032, { NIB2R3, NIB3__, BLANK_, BLANK_ }, 1, 0 },
-/* 0x11e */ { 0x026, { NIB1R1, NIB2__, NIB3__, NIB0__ }, 0, 0 },
-/* 0x120 */ { 0x0e0, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x122 */ { 0x0d6, { NIB2__, NIB3__, NIB1__, NIB0__ }, 1, 1 },
-/* 0x124 */ { 0x0a8, { NIB0__, NIB3__, NIB2__, NIB1__ }, 1, 0 },
-/* 0x126 */ { 0x0d0, { NIB3__, BLANK_, BLANK_, BLANK_ }, 1, 0 },
-/* 0x128 */ { 0x080, { NIB2R1, NIB3__, NIB0__, NIB1__ }, 0, 0 },
-/* 0x12a */ { 0x078, { NIB3R3, NIB0__, NIB1__, NIB2__ }, 0, 1 },
-/* 0x12c */ { 0x06e, { NIB2__, NIB1__, NIB3__, BLANK_ }, 0, 0 },
-/* 0x12e */ { 0x092, { NIB3R2, BLANK_, BLANK_, BLANK_ }, 0, 1 },
-/* 0x130 */ { 0x040, { NIB3__, NIB2__, BLANK_, BLANK_ }, 0, 0 },
-/* 0x132 */ { 0x0ea, { NIB2R2, NIB3__, NIB0__, NIB1__ }, 1, 0 },
-/* 0x134 */ { 0x086, { NIB3__, NIB2__, BLANK_, BLANK_ }, 0, 1 },
-/* 0x136 */ { 0x01c, { NIB2__, NIB3__, BLANK_, BLANK_ }, 0, 1 },
-/* 0x138 */ { 0x010, { NIB1__, NIB3__, NIB0__, NIB2__ }, 0, 0 },
-/* 0x13a */ { 0x038, { NIB1__, NIB2__, BLANK_, NIB3__ }, 0, 0 },
-/* 0x13c */ { 0x08e, { NIB0__, NIB1__, NIB3__, NIB2__ }, 0, 0 },
-/* 0x13e */ { 0x04c, { NIB2__, NIB3__, BLANK_, BLANK_ }, 1, 1 },
-/* 0x140 */ { 0x084, { NIB3__, NIB0__, NIB2__, NIB1__ }, 0, 0 },
-/* 0x142 */ { 0x028, { NIB3R1, NIB0__, NIB1__, NIB2__ }, 1, 1 },
-/* 0x144 */ { 0x0b8, { NIB1R2, NIB2__, NIB3__, BLANK_ }, 0, 0 },
-/* 0x146 */ { 0x022, { NIB2R3, NIB3__, BLANK_, BLANK_ }, 1, 1 },
-/* 0x148 */ { 0x046, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x14a */ { 0x08c, { NIB1__, NIB2__, NIB3__, BLANK_ }, 0, 0 },
-/* 0x14c */ { 0x0fa, { NIB1__, NIB2__, NIB0__, NIB3__ }, 1, 0 },
-/* 0x14e */ { 0x0b4, { NIB2__, NIB0__, NIB1__, NIB3__ }, 1, 1 },
-/* 0x150 */ { 0x0f0, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x152 */ { 0x018, { NIB1__, NIB0__, NIB2__, NIB3__ }, 1, 0 },
-/* 0x154 */ { 0x088, { NIB3__, BLANK_, BLANK_, BLANK_ }, 1, 0 },
-/* 0x156 */ { 0x058, { NIB3R3, NIB0__, NIB1__, NIB2__ }, 0, 1 },
-/* 0x158 */ { 0x032, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x15a */ { 0x0a0, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x15c */ { 0x0e8, { NIB3__, NIB1__, NIB2__, NIB0__ }, 1, 0 },
-/* 0x15e */ { 0x04c, { NIB3__, BLANK_, BLANK_, BLANK_ }, 0, 1 },
-/* 0x160 */ { 0x03a, { NIB2__, NIB1__, BLANK_, NIB3__ }, 1, 1 },
-/* 0x162 */ { 0x0b2, { NIB1__, NIB2__, NIB3__, NIB0__ }, 0, 1 },
-/* 0x164 */ { 0x086, { NIB2__, NIB1__, NIB3__, BLANK_ }, 1, 0 },
-/* 0x166 */ { 0x078, { NIB1__, NIB2__, NIB0__, NIB3__ }, 0, 1 },
-/* 0x168 */ { 0x0e6, { NIB2__, NIB3__, NIB1__, NIB0__ }, 0, 1 },
-/* 0x16a */ { 0x028, { NIB1__, NIB0__, NIB3__, NIB2__ }, 1, 0 },
-/* 0x16c */ { 0x026, { NIB1__, NIB2__, NIB0__, NIB3__ }, 0, 1 },
-/* 0x16e */ { INPUT_PORT_B, { NIB3__, BLANK_, BLANK_, BLANK_ }, 0, 0 }, // // $416E $F000 A--- ... 0
-/* 0x170 */ { 0x02a, { NIB2__, NIB0__, NIB1__, NIB3__ }, 0, 1 },
-/* 0x172 */ { 0x086, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x174 */ { 0x022, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x176 */ { 0x010, { NIB0R2, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x178 */ { 0x082, { NIB0__, NIB1__, NIB2__, NIB3__ }, 1, 0 },
-/* 0x17a */ { 0x02c, { NIB3__, NIB0__, NIB1__, NIB2__ }, 0, 0 },
-/* 0x17c */ { 0x0aa, { NIB1R2, NIB2__, NIB3__, NIB0__ }, 1, 1 },
-/* 0x17e */ { 0x056, { NIB1R1, NIB2__, NIB3__, BLANK_ }, 1, 1 },
-/* 0x180 */ { 0x0ec, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x182 */ { 0x098, { NIB2R2, NIB3__, BLANK_, BLANK_ }, 0, 0 },
-/* 0x184 */ { 0x0e2, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x186 */ { 0x09e, { NIB0__, NIB3__, NIB1__, NIB2__ }, 1, 1 },
-/* 0x188 */ { 0x0da, { NIB0R2, NIB1__, NIB2__, NIB3__ }, 1, 1 },
-/* 0x18a */ { 0x0a2, { NIB0__, NIB3__, NIB1__, NIB2__ }, 0, 1 },
-/* 0x18c */ { 0x0c2, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x18e */ { 0x01e, { NIB3__, NIB1__, NIB2__, NIB0__ }, 0, 0 },
-/* 0x190 */ { 0x02e, { NIB1__, NIB2__, NIB0__, NIB3__ }, 1, 1 },
-/* 0x192 */ { 0x062, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x194 */ { 0x002, { NIB3__, NIB0__, NIB1__, NIB2__ }, 0, 1 },
-/* 0x196 */ { 0x072, { NIB2__, NIB1__, NIB0__, NIB3__ }, 0, 1 },
-/* 0x198 */ { 0x076, { NIB2__, NIB1__, NIB0__, NIB3__ }, 1, 0 },
-/* 0x19a */ { 0x0e0, { NIB3R1, NIB0__, NIB1__, NIB2__ }, 0, 0 },
-/* 0x19c */ { 0x064, { NIB2R3, NIB3__, NIB0__, NIB1__ }, 1, 1 },
-/* 0x19e */ { INPUT_PORT_C, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 1 }, // // $419E $FFFF DCBA .N. 0
-/* 0x1a0 */ { INPUT_PORT_A, { NIB3__, NIB0__, NIB1__, NIB2__ }, 0, 0 },// $41A0 $FFFF ADCB ... 0
-/* 0x1a2 */ { 0x078, { NIB3__, NIB0__, NIB1__, NIB2__ }, 0, 0 },
-/* 0x1a4 */ { 0x07e, { NIB3R3, NIB0__, NIB1__, NIB2__ }, 1, 0 },
-/* 0x1a6 */ { 0x004, { NIB0R1, NIB1__, NIB2__, NIB3__ }, 1, 0 },
-/* 0x1a8 */ { 0x0ac, { NIB1__, NIB3__, NIB0__, NIB2__ }, 0, 1 },
-/* 0x1aa */ { 0x0b6, { NIB0R2, NIB1__, NIB2__, NIB3__ }, 1, 0 },
-/* 0x1ac */ { 0x09c, { NIB0__, NIB2__, NIB3__, NIB1__ }, 0, 0 },
-/* 0x1ae */ { 0x006, { NIB2R3, NIB3__, BLANK_, BLANK_ }, 0, 1 },
-/* 0x1b0 */ { 0x0c4, { NIB3__, NIB2__, NIB1__, NIB0__ }, 0, 0 },
-/* 0x1b2 */ { INPUT_PORT_A, { NIB0R2, NIB1__, NIB2__, NIB3__ }, 0, 0 },// $41B2 $FFFF DCBA ... 2
-/* 0x1b4 */ { 0x0c0, { NIB2__, NIB3__, BLANK_, BLANK_ }, 1, 1 },
-/* 0x1b6 */ { 0x036, { BLANK_, NIB2__, NIB3__, NIB1__ }, 1, 1 },
-/* 0x1b8 */ { 0x03c, { NIB3__, NIB2__, BLANK_, BLANK_ }, 1, 1 },
-/* 0x1ba */ { 0x0b2, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x1bc */ { 0x024, { NIB2R3, NIB3__, NIB0__, NIB1__ }, 0, 0 },
-/* 0x1be */ { 0x008, { NIB3R3, BLANK_, BLANK_, BLANK_ }, 0, 1 },
-/* 0x1c0 */ { 0x030, { NIB3__, NIB2__, NIB1__, NIB0__ }, 0, 1 },
-/* 0x1c2 */ { 0x09a, { NIB3__, NIB0__, NIB2__, NIB1__ }, 0, 1 },
-/* 0x1c4 */ { 0x016, { BLANK_, NIB2__, NIB3__, NIB1__ }, 1, 0 },
-/* 0x1c6 */ { 0x0ba, { NIB1R1, NIB2__, NIB3__, BLANK_ }, 0, 0 },
-/* 0x1c8 */ { 0x06a, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x1ca */ { 0x0ce, { NIB1R1, NIB2__, NIB3__, BLANK_ }, 1, 1 },
-/* 0x1cc */ { 0x0ec, { BLANK_, NIB3__, BLANK_, BLANK_ }, 0, 1 },
-/* 0x1ce */ { 0x014, { NIB3R1, BLANK_, BLANK_, BLANK_ }, 0, 1 },
-/* 0x1d0 */ { INPUT_PORT_B, { NIB1__, BLANK_, BLANK_, BLANK_ }, 0, 0 }, // // $41D0 $00F0 --A- ... 0
-/* 0x1d2 */ { 0x050, { NIB0__, NIB2__, NIB3__, NIB1__ }, 1, 1 },
-/* 0x1d4 */ { 0x0a0, { NIB2__, NIB3__, NIB0__, NIB1__ }, 1, 0 },
-/* 0x1d6 */ { 0x05e, { NIB3__, NIB2__, NIB1__, NIB0__ }, 1, 1 },
-/* 0x1d8 */ { 0x01a, { NIB1__, NIB0__, NIB2__, NIB3__ }, 0, 1 },
-/* 0x1da */ { 0x0fc, { NIB2__, NIB3__, BLANK_, BLANK_ }, 1, 0 },
-/* 0x1dc */ { 0x03e, { NIB2R1, NIB3__, BLANK_, BLANK_ }, 1, 0 },
-/* 0x1de */ { 0x078, { NIB2__, NIB1__, NIB3__, NIB0__ }, 0, 0 },
-/* 0x1e0 */ { 0x022, { NIB0R3, NIB1__, NIB2__, NIB3__ }, 0, 1 },
-/* 0x1e2 */ { 0x0c2, { NIB0R1, NIB1__, NIB2__, NIB3__ }, 0, 1 },
-/* 0x1e4 */ { 0x0cc, { NIB3R2, NIB0__, NIB1__, NIB2__ }, 1, 1 },
-/* 0x1e6 */ { 0x01e, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x1e8 */ { 0x002, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x1ea */ { 0x0d2, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x1ec */ { 0x092, { NIB2R1, NIB3__, BLANK_, BLANK_ }, 0, 0 },
-/* 0x1ee */ { 0x0f2, { NIB3R2, NIB0__, NIB1__, NIB2__ }, 0, 1 },
-/* 0x1f0 */ { 0x0c8, { NIB2R3, NIB3__, BLANK_, BLANK_ }, 0, 0 },
-/* 0x1f2 */ { 0x058, { NIB2__, NIB3__, BLANK_, BLANK_ }, 0, 1 },
-/* 0x1f4 */ { 0x0f4, { NIB3__, NIB2__, NIB0__, NIB1__ }, 1, 1 },
-/* 0x1f6 */ { 0x0f0, { NIB1R3, NIB2__, NIB3__, BLANK_ }, 1, 0 },
-/* 0x1f8 */ { 0x088, { NIB1__, NIB0__, NIB3__, NIB2__ }, 0, 1 },
-/* 0x1fa */ { 0x020, { NIB3__, NIB1__, NIB2__, NIB0__ }, 1, 1 },
-/* 0x1fc */ { 0x0ca, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x1fe */ { 0x04c, { NIB0R3, NIB1__, NIB2__, NIB3__ }, 1, 0 },
-/* 0x200 */ { INPUT_PORT_C, { NIB0R1, NIB1__, NIB2__, NIB3__ }, 1, 0 }, // // $4200 $FFFF DCBA X.. 1
-/* 0x202 */ { 0x04e, { BLANK_, BLANK_, BLANK_, NIB3__ }, 1, 1 },
-/* 0x204 */ { 0x018, { NIB1__, NIB0__, NIB3__, NIB2__ }, 1, 1 },
-/* 0x206 */ { 0x064, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x208 */ { 0x04a, { NIB1R1, NIB2__, NIB3__, BLANK_ }, 1, 0 },
-/* 0x20a */ { 0x080, { NIB3R3, BLANK_, BLANK_, BLANK_ }, 0, 0 },
-/* 0x20c */ { 0x034, { NIB3__, NIB2__, BLANK_, BLANK_ }, 0, 1 },
-/* 0x20e */ { 0x094, { NIB1R3, NIB2__, NIB3__, BLANK_ }, 0, 1 },
-/* 0x210 */ { 0x08a, { NIB2__, NIB1__, NIB3__, BLANK_ }, 1, 1 },
-/* 0x212 */ { 0x07a, { NIB3__, BLANK_, BLANK_, BLANK_ }, 0, 1 },
-/* 0x214 */ { 0x0f8, { NIB0__, NIB3__, NIB2__, NIB1__ }, 1, 1 },
-/* 0x216 */ { 0x070, { NIB1R1, NIB2__, NIB3__, NIB0__ }, 0, 1 },
-/* 0x218 */ { 0x0ca, { NIB3__, NIB2__, BLANK_, BLANK_ }, 1, 0 },
-/* 0x21a */ { 0x078, { NIB3R1, BLANK_, BLANK_, BLANK_ }, 1, 1 },
-/* 0x21c */ { 0x0e4, { NIB1R1, NIB2__, NIB3__, NIB0__ }, 1, 1 },
-/* 0x21e */ { 0x0fe, { NIB0__, NIB1__, NIB3__, NIB2__ }, 1, 0 },
-/* 0x220 */ { 0x0b0, { NIB3R1, NIB0__, NIB1__, NIB2__ }, 0, 1 },
-/* 0x222 */ { 0x07c, { NIB2R1, NIB3__, BLANK_, BLANK_ }, 0, 1 },
-/* 0x224 */ { 0x0b4, { NIB2R1, NIB3__, NIB0__, NIB1__ }, 1, 1 },
-/* 0x226 */ { 0x05c, { BLANK_, BLANK_, BLANK_, NIB3__ }, 0, 1 },
-/* 0x228 */ { 0x0e2, { NIB2R3, NIB3__, NIB0__, NIB1__ }, 1, 0 },
-/* 0x22a */ { INPUT_PORT_C, { NIB1__, NIB2__, NIB3__, BLANK_ }, 0, 0 }, // // $422A $FFF0 CBA- ... 0
-/* 0x22c */ { 0x0ae, { BLANK_, NIB3__, BLANK_, NIB2__ }, 0, 1 },
-/* 0x22e */ { 0x0de, { NIB2__, NIB3__, BLANK_, BLANK_ }, 1, 0 },
-/* 0x230 */ { 0x090, { NIB1R3, NIB2__, NIB3__, NIB0__ }, 1, 1 },
-/* 0x232 */ { 0x07c, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x234 */ { 0x0a6, { NIB2__, NIB1__, NIB0__, NIB3__ }, 1, 1 },
-/* 0x236 */ { 0x040, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x238 */ { 0x05a, { NIB3__, NIB2__, NIB0__, NIB1__ }, 0, 1 },
-/* 0x23a */ { 0x0a8, { BLANK_, NIB3__, BLANK_, BLANK_ }, 0, 0 },
-/* 0x23c */ { 0x060, { NIB3R3, NIB0__, NIB1__, NIB2__ }, 1, 1 },
-/* 0x23e */ { 0x074, { BLANK_, NIB2__, NIB3__, NIB1__ }, 0, 0 },
-/* 0x240 */ { 0x06e, { NIB3R3, BLANK_, BLANK_, BLANK_ }, 1, 1 },
-/* 0x242 */ { 0x0d4, { NIB2__, NIB1__, NIB3__, NIB0__ }, 0, 1 },
-/* 0x244 */ { 0x00a, { NIB2R3, NIB3__, NIB0__, NIB1__ }, 0, 1 },
-/* 0x246 */ { 0x068, { BLANK_, NIB3__, BLANK_, NIB2__ }, 1, 0 },
-/* 0x248 */ { 0x0d0, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x24a */ { 0x052, { BLANK_, BLANK_, BLANK_, NIB3__ }, 1, 0 },
-/* 0x24c */ { INPUT_PORT_B, { NIB2__, BLANK_, BLANK_, BLANK_ }, 0, 0 },//// $424C $0F00 -A-- ... 0
-/* 0x24e */ { 0x00e, { NIB0R3, NIB1__, NIB2__, NIB3__ }, 1, 1 },
-/* 0x250 */ { 0x012, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x252 */ { 0x08c, { NIB2R2, NIB3__, NIB0__, NIB1__ }, 0, 1 },
-/* 0x254 */ { 0x0bc, { NIB1__, NIB0__, NIB2__, NIB3__ }, 1, 1 },
-/* 0x256 */ { 0x078, { NIB2R1, NIB3__, BLANK_, BLANK_ }, 1, 1 },
-/* 0x258 */ { 0x0fe, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x25a */ { 0x0ee, { NIB2__, NIB1__, BLANK_, NIB3__ }, 0, 0 },
-/* 0x25c */ { 0x096, { NIB3R2, BLANK_, BLANK_, BLANK_ }, 1, 1 },
-/* 0x25e */ { 0x0dc, { NIB1__, NIB2__, BLANK_, NIB3__ }, 0, 0 },
-/* 0x260 */ { 0x07e, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x262 */ { 0x038, { NIB3__, NIB2__, BLANK_, BLANK_ }, 0, 1 },
-/* 0x264 */ { 0x046, { NIB2__, NIB3__, BLANK_, BLANK_ }, 0, 0 },
-/* 0x266 */ { 0x0b8, { NIB2__, NIB1__, BLANK_, NIB3__ }, 0, 1 },
-/* 0x268 */ { 0x0d0, { NIB2R1, NIB3__, BLANK_, BLANK_ }, 1, 0 },
-/* 0x26a */ { 0x0c6, { NIB3__, BLANK_, BLANK_, BLANK_ }, 1, 0 },
-/* 0x26c */ { 0x0ea, { NIB1R3, NIB2__, NIB3__, BLANK_ }, 1, 0 },
-/* 0x26e */ { 0x066, { NIB1R2, NIB2__, NIB3__, NIB0__ }, 0, 0 },
-/* 0x270 */ { 0x0f8, { NIB3__, NIB2__, BLANK_, BLANK_ }, 1, 0 },
-/* 0x272 */ { 0x068, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x274 */ { 0x03a, { NIB3R1, BLANK_, BLANK_, BLANK_ }, 1, 0 },
-/* 0x276 */ { 0x0e8, { NIB0R3, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x278 */ { 0x032, { NIB1__, NIB0__, NIB3__, NIB2__ }, 1, 1 },
-/* 0x27a */ { 0x08e, { NIB1__, NIB2__, NIB0__, NIB3__ }, 0, 1 },
-/* 0x27c */ { 0x044, { NIB2R3, NIB3__, BLANK_, BLANK_ }, 0, 0 },
-/* 0x27e */ { 0x0f6, { NIB3R1, NIB0__, NIB1__, NIB2__ }, 0, 1 },
-/* 0x280 */ { INPUT_PORT_B, { NIB3__, BLANK_, BLANK_, BLANK_ }, 0, 0 }, // // $4280 $F000 A--- ... 0
-/* 0x282 */ { 0x0be, { NIB3R3, NIB0__, NIB1__, NIB2__ }, 1, 0 },
-/* 0x284 */ { 0x040, { NIB0R1, NIB1__, NIB2__, NIB3__ }, 0, 1 },
-/* 0x286 */ { 0x06a, { NIB1R1, NIB2__, NIB3__, BLANK_ }, 0, 1 },
-/* 0x288 */ { 0x0a4, { NIB1__, NIB2__, BLANK_, NIB3__ }, 1, 0 },
-/* 0x28a */ { 0x0f0, { NIB3R2, NIB0__, NIB1__, NIB2__ }, 1, 1 },
-/* 0x28c */ { 0x0f8, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x28e */ { 0x0d2, { BLANK_, NIB3__, BLANK_, BLANK_ }, 1, 1 },
-/* 0x290 */ { 0x012, { NIB2__, NIB3__, NIB0__, NIB1__ }, 1, 1 },
-/* 0x292 */ { 0x078, { NIB2__, NIB1__, BLANK_, NIB3__ }, 1, 1 },
-/* 0x294 */ { 0x000, { NIB0R2, NIB1__, NIB2__, NIB3__ }, 1, 1 },
-/* 0x296 */ { 0x01c, { NIB0__, NIB3__, NIB2__, NIB1__ }, 0, 1 },
-/* 0x298 */ { 0x048, { NIB1__, NIB2__, NIB3__, NIB0__ }, 1, 0 },
-/* 0x29a */ { 0x06c, { NIB3R3, NIB0__, NIB1__, NIB2__ }, 0, 1 },
-/* 0x29c */ { 0x0d8, { NIB2R3, NIB3__, BLANK_, BLANK_ }, 0, 1 },
-/* 0x29e */ { 0x062, { NIB2__, NIB1__, NIB0__, NIB3__ }, 0, 1 },
-/* 0x2a0 */ { 0x0ac, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x2a2 */ { 0x0d6, { NIB3R1, BLANK_, BLANK_, BLANK_ }, 0, 1 },
-/* 0x2a4 */ { 0x00c, { NIB2__, NIB1__, NIB3__, NIB0__ }, 1, 1 },
-/* 0x2a6 */ { 0x0e8, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x2a8 */ { 0x084, { NIB0__, NIB3__, NIB1__, NIB2__ }, 0, 0 },
-/* 0x2aa */ { 0x054, { NIB3__, NIB2__, NIB0__, NIB1__ }, 1, 1 },
-/* 0x2ac */ { 0x042, { NIB2R1, NIB3__, NIB0__, NIB1__ }, 1, 1 },
-/* 0x2ae */ { 0x07e, { NIB2__, NIB3__, BLANK_, BLANK_ }, 1, 1 },
-/* 0x2b0 */ { 0x002, { NIB3__, BLANK_, BLANK_, BLANK_ }, 0, 1 },
-/* 0x2b2 */ { 0x0d8, { NIB3R2, NIB0__, NIB1__, NIB2__ }, 1, 0 },
-/* 0x2b4 */ { 0x0c4, { NIB3__, NIB2__, BLANK_, BLANK_ }, 1, 1 },
-/* 0x2b6 */ { 0x02e, { NIB3__, NIB2__, BLANK_, BLANK_ }, 1, 0 },
-/* 0x2b8 */ { 0x040, { NIB2R1, NIB3__, BLANK_, BLANK_ }, 0, 0 },
-/* 0x2ba */ { 0x064, { NIB0__, NIB3__, NIB2__, NIB1__ }, 1, 1 },
-/* 0x2bc */ { 0x072, { NIB2__, NIB3__, NIB1__, NIB0__ }, 1, 1 },
-/* 0x2be */ { 0x016, { NIB0R2, NIB1__, NIB2__, NIB3__ }, 1, 0 },
-/* 0x2c0 */ { 0x04e, { NIB2__, NIB1__, NIB0__, NIB3__ }, 1, 0 },
-/* 0x2c2 */ { 0x06e, { NIB2__, NIB1__, BLANK_, NIB3__ }, 1, 0 },
-/* 0x2c4 */ { 0x0de, { BLANK_, NIB3__, BLANK_, BLANK_ }, 0, 0 },
-/* 0x2c6 */ { 0x094, { NIB0__, NIB1__, NIB3__, NIB2__ }, 0, 0 },
-/* 0x2c8 */ { 0x074, { NIB2__, NIB0__, NIB1__, NIB3__ }, 0, 0 },
-/* 0x2ca */ { 0x07c, { NIB3__, NIB1__, NIB2__, NIB0__ }, 1, 0 },
-/* 0x2cc */ { 0x006, { NIB3__, NIB0__, NIB2__, NIB1__ }, 1, 0 },
-/* 0x2ce */ { 0x078, { NIB0R2, NIB1__, NIB2__, NIB3__ }, 1, 1 },
-/* 0x2d0 */ { 0x09e, { NIB2__, NIB1__, BLANK_, NIB3__ }, 0, 0 },
-/* 0x2d2 */ { 0x028, { NIB2R2, NIB3__, BLANK_, BLANK_ }, 1, 1 },
-/* 0x2d4 */ { 0x0b2, { NIB3R3, BLANK_, BLANK_, BLANK_ }, 1, 0 },
-/* 0x2d6 */ { 0x05a, { NIB3__, NIB2__, NIB1__, NIB0__ }, 1, 0 },
-/* 0x2d8 */ { 0x026, { NIB1__, NIB2__, NIB3__, BLANK_ }, 0, 1 },
-/* 0x2da */ { 0x08a, { NIB1R1, NIB2__, NIB3__, BLANK_ }, 0, 0 },
-/* 0x2dc */ { 0x0ac, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 1 },
-/* 0x2de */ { 0x096, { NIB3__, NIB2__, NIB0__, NIB1__ }, 1, 0 },
-/* 0x2e0 */ { 0x098, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x2e2 */ { INPUT_PORT_C, { NIB3__, NIB1__, NIB2__, NIB0__ }, 0, 0 }, // $42E2 $FFFF ACBD ... 0
-/* 0x2e4 */ { 0x02a, { NIB2R1, NIB3__, NIB0__, NIB1__ }, 1, 0 },
-/* 0x2e6 */ { 0x0fe, { NIB0__, NIB3__, NIB1__, NIB2__ }, 1, 0 },
-/* 0x2e8 */ { 0x0b4, { NIB3R1, NIB0__, NIB1__, NIB2__ }, 1, 1 },
-/* 0x2ea */ { 0x032, { NIB1R3, NIB2__, NIB3__, NIB0__ }, 0, 0 },
-/* 0x2ec */ { 0x0f2, { NIB1R3, NIB2__, NIB3__, NIB0__ }, 0, 1 },
-/* 0x2ee */ { 0x054, { NIB0__, NIB2__, NIB3__, NIB1__ }, 0, 1 },
-/* 0x2f0 */ { 0x0a2, { NIB1R2, NIB2__, NIB3__, BLANK_ }, 0, 1 },
-/* 0x2f2 */ { 0x050, { NIB1__, NIB2__, NIB3__, BLANK_ }, 1, 0 },
-/* 0x2f4 */ { INPUT_PORT_B, { NIB0R1, BLANK_, BLANK_, BLANK_ }, 0, 0 }, // // $42F4 $000F ---A ... 1
-/* 0x2f6 */ { 0x000, { NIB0R2, NIB1__, NIB2__, NIB3__ }, 0, 1 },
-/* 0x2f8 */ { 0x01e, { NIB1__, NIB2__, NIB0__, NIB3__ }, 1, 0 },
-/* 0x2fa */ { 0x014, { NIB3__, NIB0__, NIB1__, NIB2__ }, 1, 1 },
-/* 0x2fc */ { 0x0b8, { BLANK_, BLANK_, BLANK_, NIB3__ }, 0, 0 },
-/* 0x2fe */ { 0x0ae, { NIB3__, NIB2__, BLANK_, BLANK_ }, 0, 1 },
-/* 0x300 */ { 0x068, { NIB0__, NIB1__, NIB3__, NIB2__ }, 1, 1 },
-/* 0x302 */ { 0x0f8, { NIB1__, NIB0__, NIB3__, NIB2__ }, 0, 0 },
-/* 0x304 */ { 0x0d6, { NIB2__, NIB3__, NIB0__, NIB1__ }, 0, 0 },
-/* 0x306 */ { 0x044, { NIB1__, NIB2__, NIB3__, NIB0__ }, 1, 1 },
-/* 0x308 */ { 0x038, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x30a */ { 0x078, { NIB2__, NIB3__, BLANK_, BLANK_ }, 1, 0 },
-/* 0x30c */ { 0x04c, { NIB0__, NIB3__, NIB1__, NIB2__ }, 0, 1 },
-/* 0x30e */ { 0x0c6, { NIB0__, NIB1__, NIB2__, NIB3__ }, 1, 1 },
-/* 0x310 */ { 0x084, { NIB3__, NIB0__, NIB2__, NIB1__ }, 1, 1 },
-/* 0x312 */ { 0x0bc, { NIB3__, NIB2__, BLANK_, BLANK_ }, 1, 1 },
-/* 0x314 */ { 0x058, { NIB0__, NIB2__, NIB3__, NIB1__ }, 1, 1 },
-/* 0x316 */ { INPUT_PORT_B, { NIB0R2, BLANK_, BLANK_, BLANK_ }, 0, 0 }, // // $4316 $000F ---A ... 2
-/* 0x318 */ { 0x00e, { NIB3R3, NIB0__, NIB1__, NIB2__ }, 0, 0 },
-/* 0x31a */ { 0x092, { NIB3__, BLANK_, BLANK_, BLANK_ }, 1, 1 },
-/* 0x31c */ { 0x09a, { NIB0__, NIB2__, NIB3__, NIB1__ }, 0, 0 },
-/* 0x31e */ { 0x0a0, { BLANK_, NIB3__, BLANK_, NIB2__ }, 1, 0 },
-/* 0x320 */ { 0x08c, { NIB3__, BLANK_, BLANK_, BLANK_ }, 0, 1 },
-/* 0x322 */ { 0x08e, { NIB1__, NIB0__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x324 */ { 0x0d2, { BLANK_, NIB2__, NIB3__, NIB1__ }, 1, 1 },
-/* 0x326 */ { 0x024, { NIB2__, NIB1__, NIB3__, BLANK_ }, 0, 1 },
-/* 0x328 */ { 0x006, { BLANK_, NIB2__, NIB3__, NIB1__ }, 0, 0 },
-/* 0x32a */ { 0x080, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x32c */ { 0x0e2, { NIB1R2, NIB2__, NIB3__, NIB0__ }, 0, 1 },
-/* 0x32e */ { 0x008, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x330 */ { 0x00c, { NIB0__, NIB2__, NIB3__, NIB1__ }, 1, 0 },
-/* 0x332 */ { 0x048, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x334 */ { 0x05c, { NIB0__, NIB3__, NIB2__, NIB1__ }, 0, 0 },
-/* 0x336 */ { 0x042, { NIB3__, NIB2__, BLANK_, BLANK_ }, 0, 0 },
-/* 0x338 */ { 0x076, { NIB2__, NIB0__, NIB1__, NIB3__ }, 1, 1 },
-/* 0x33a */ { 0x036, { NIB0__, NIB3__, NIB2__, NIB1__ }, 1, 0 },
-/* 0x33c */ { 0x0b0, { NIB1R3, NIB2__, NIB3__, BLANK_ }, 0, 1 },
-/* 0x33e */ { 0x056, { NIB1__, NIB0__, NIB2__, NIB3__ }, 0, 1 },
-/* 0x340 */ { 0x01a, { NIB3__, NIB2__, BLANK_, BLANK_ }, 0, 0 },
-/* 0x342 */ { 0x0bc, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x344 */ { 0x0aa, { BLANK_, NIB3__, BLANK_, BLANK_ }, 1, 1 },
-/* 0x346 */ { 0x078, { NIB1__, NIB2__, NIB3__, BLANK_ }, 1, 0 },
-/* 0x348 */ { 0x0dc, { NIB1__, NIB2__, NIB0__, NIB3__ }, 0, 0 },
-/* 0x34a */ { 0x06a, { NIB1R2, NIB2__, NIB3__, BLANK_ }, 1, 0 },
-/* 0x34c */ { INPUT_PORT_B, { NIB0R3, BLANK_, BLANK_, BLANK_ }, 0, 0 }, // // $434C $000F ---A ... 3
-/* 0x34e */ { 0x03e, { NIB1__, NIB3__, NIB0__, NIB2__ }, 1, 1 },
-/* 0x350 */ { 0x0da, { NIB2__, NIB0__, NIB1__, NIB3__ }, 0, 1 },
-/* 0x352 */ { 0x098, { NIB3R3, NIB0__, NIB1__, NIB2__ }, 1, 1 },
-/* 0x354 */ { 0x01c, { NIB3__, NIB2__, NIB1__, NIB0__ }, 1, 1 },
-/* 0x356 */ { 0x034, { NIB2R2, NIB3__, NIB0__, NIB1__ }, 1, 1 },
-/* 0x358 */ { 0x0ba, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x35a */ { 0x08a, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x35c */ { 0x086, { NIB3__, NIB2__, NIB1__, NIB0__ }, 0, 1 },
-/* 0x35e */ { 0x09c, { NIB0R3, NIB1__, NIB2__, NIB3__ }, 0, 1 },
-/* 0x360 */ { 0x02c, { NIB0R1, NIB1__, NIB2__, NIB3__ }, 1, 0 },
-/* 0x362 */ { 0x080, { NIB3__, NIB0__, NIB2__, NIB1__ }, 0, 0 },
-/* 0x364 */ { 0x04a, { BLANK_, NIB3__, BLANK_, BLANK_ }, 0, 1 },
-/* 0x366 */ { 0x0c8, { NIB2__, NIB3__, NIB0__, NIB1__ }, 1, 0 },
-/* 0x368 */ { 0x05e, { NIB3R3, BLANK_, BLANK_, BLANK_ }, 0, 0 },
-/* 0x36a */ { 0x0f6, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x36c */ { 0x0fc, { NIB1__, NIB3__, NIB0__, NIB2__ }, 1, 0 },
-/* 0x36e */ { 0x048, { NIB1R1, NIB2__, NIB3__, NIB0__ }, 0, 1 },
-/* 0x370 */ { 0x0c4, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x372 */ { 0x020, { NIB0__, NIB1__, NIB3__, NIB2__ }, 1, 0 },
-/* 0x374 */ { 0x030, { NIB3R1, NIB0__, NIB1__, NIB2__ }, 1, 0 },
-/* 0x376 */ { 0x038, { NIB2__, NIB3__, BLANK_, BLANK_ }, 1, 1 },
-/* 0x378 */ { INPUT_PORT_A, { NIB1__, NIB0__, NIB2__, NIB3__ }, 0, 0 },// $4378 $FFFF DCAB ... 0
-/* 0x37a */ { 0x08e, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x37c */ { 0x010, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x37e */ { 0x0d0, { NIB1R1, NIB2__, NIB3__, BLANK_ }, 1, 1 },
-/* 0x380 */ { 0x084, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x382 */ { 0x078, { BLANK_, NIB3__, BLANK_, BLANK_ }, 0, 1 },
-/* 0x384 */ { 0x0ee, { NIB3R3, BLANK_, BLANK_, BLANK_ }, 0, 1 },
-/* 0x386 */ { 0x07a, { BLANK_, NIB2__, NIB3__, NIB1__ }, 1, 0 },
-/* 0x388 */ { 0x0b6, { NIB3__, NIB0__, NIB1__, NIB2__ }, 0, 1 },
-/* 0x38a */ { 0x084, { NIB1__, NIB0__, NIB3__, NIB2__ }, 0, 1 },
-/* 0x38c */ { 0x01a, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x38e */ { 0x004, { NIB1__, NIB2__, BLANK_, NIB3__ }, 1, 1 },
-/* 0x390 */ { 0x0fa, { BLANK_, NIB3__, BLANK_, BLANK_ }, 1, 0 },
-/* 0x392 */ { 0x0ae, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x394 */ { 0x0cc, { NIB3__, BLANK_, BLANK_, BLANK_ }, 1, 0 },
-/* 0x396 */ { 0x0e0, { NIB2__, NIB3__, BLANK_, BLANK_ }, 1, 0 },
-/* 0x398 */ { 0x024, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x39a */ { 0x0f6, { NIB2__, NIB3__, NIB1__, NIB0__ }, 0, 0 },
-/* 0x39c */ { 0x0a8, { NIB3__, NIB1__, NIB2__, NIB0__ }, 0, 0 },
-/* 0x39e */ { 0x0ec, { NIB1R2, NIB2__, NIB3__, BLANK_ }, 0, 0 },
-/* 0x3a0 */ { 0x070, { NIB2R1, NIB3__, BLANK_, BLANK_ }, 0, 1 },
-/* 0x3a2 */ { 0x0a6, { NIB0__, NIB1__, NIB3__, NIB2__ }, 0, 1 },
-/* 0x3a4 */ { 0x03c, { NIB2__, NIB1__, NIB3__, BLANK_ }, 1, 0 },
-/* 0x3a6 */ { 0x09e, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x3a8 */ { 0x0c2, { NIB2R2, NIB3__, NIB0__, NIB1__ }, 1, 0 },
-/* 0x3aa */ { 0x03a, { BLANK_, NIB3__, BLANK_, NIB2__ }, 0, 1 },
-/* 0x3ac */ { 0x0a4, { NIB2R3, NIB3__, NIB0__, NIB1__ }, 0, 1 },
-/* 0x3ae */ { 0x010, { NIB1__, NIB2__, NIB3__, NIB0__ }, 0, 0 },
-/* 0x3b0 */ { 0x0d4, { BLANK_, NIB3__, BLANK_, NIB2__ }, 1, 1 },
-/* 0x3b2 */ { 0x03c, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x3b4 */ { 0x082, { NIB3R3, BLANK_, BLANK_, BLANK_ }, 1, 1 },
-/* 0x3b6 */ { 0x00a, { NIB3R1, BLANK_, BLANK_, BLANK_ }, 0, 0 },
-/* 0x3b8 */ { 0x066, { NIB3__, NIB1__, NIB2__, NIB0__ }, 0, 1 },
-/* 0x3ba */ { 0x022, { NIB1__, NIB2__, NIB3__, BLANK_ }, 0, 0 },
-/* 0x3bc */ { 0x0be, { NIB1R3, NIB2__, NIB3__, BLANK_ }, 1, 1 },
-/* 0x3be */ { 0x078, { NIB2R1, NIB3__, BLANK_, BLANK_ }, 0, 1 },
-/* 0x3c0 */ { 0x0ca, { NIB2__, NIB0__, NIB1__, NIB3__ }, 1, 0 },
-/* 0x3c2 */ { 0x0ba, { NIB1__, NIB2__, BLANK_, NIB3__ }, 0, 1 },
-/* 0x3c4 */ { 0x0e6, { NIB2__, NIB3__, BLANK_, BLANK_ }, 0, 1 },
-/* 0x3c6 */ { 0x052, { NIB1R3, NIB2__, NIB3__, NIB0__ }, 1, 1 },
-/* 0x3c8 */ { 0x026, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x3ca */ { 0x0ce, { NIB1R1, NIB2__, NIB3__, NIB0__ }, 1, 0 },
-/* 0x3cc */ { 0x0f0, { NIB2__, NIB1__, NIB3__, NIB0__ }, 0, 0 },
-/* 0x3ce */ { 0x0f4, { NIB0R1, NIB1__, NIB2__, NIB3__ }, 1, 1 },
-/* 0x3d0 */ { 0x060, { NIB2R1, NIB3__, BLANK_, BLANK_ }, 1, 1 },
-/* 0x3d2 */ { 0x0e8, { NIB0__, NIB1__, NIB2__, NIB3__ }, 1, 0 },
-/* 0x3d4 */ { 0x018, { NIB0__, NIB3__, NIB1__, NIB2__ }, 1, 1 },
-/* 0x3d6 */ { 0x088, { NIB3__, NIB0__, NIB1__, NIB2__ }, 1, 0 },
-/* 0x3d8 */ { 0x0e4, { NIB2R3, NIB3__, NIB0__, NIB1__ }, 0, 0 },
-/* 0x3da */ { 0x0ea, { NIB1R1, NIB2__, NIB3__, BLANK_ }, 1, 0 },
-/* 0x3dc */ { 0x0aa, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x3de */ { 0x06c, { NIB1__, NIB2__, NIB0__, NIB3__ }, 1, 1 },
-/* 0x3e0 */ { 0x044, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x3e2 */ { 0x046, { NIB3__, NIB2__, NIB0__, NIB1__ }, 0, 0 },
-/* 0x3e4 */ { 0x020, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x3e6 */ { 0x012, { BLANK_, NIB2__, NIB3__, NIB1__ }, 0, 1 },
-/* 0x3e8 */ { 0x008, { NIB1__, NIB2__, NIB3__, NIB0__ }, 0, 1 },
-/* 0x3ea */ { 0x062, { NIB2R3, NIB3__, BLANK_, BLANK_ }, 1, 0 },
-/* 0x3ec */ { 0x0c0, { NIB3R2, BLANK_, BLANK_, BLANK_ }, 0, 1 },
-/* 0x3ee */ { 0x008, { NIB0R1, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x3f0 */ { 0x056, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x3f2 */ { 0x0d8, { NIB1R3, NIB2__, NIB3__, BLANK_ }, 0, 0 },
-/* 0x3f4 */ { 0x0ee, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x3f6 */ { 0x07c, { NIB0R3, NIB1__, NIB2__, NIB3__ }, 1, 0 },
-/* 0x3f8 */ { 0x086, { NIB2__, NIB3__, NIB1__, NIB0__ }, 0, 1 },
-/* 0x3fa */ { 0x078, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x3fc */ { 0x03a, { NIB2__, NIB3__, BLANK_, BLANK_ }, 0, 1 },
-/* 0x3fe */ { 0x006, { NIB3__, NIB0__, NIB2__, NIB1__ }, 0, 1 },
-/* 0x400 */ { 0x0fc, { NIB0R2, NIB1__, NIB2__, NIB3__ }, 1, 0 },
-/* 0x402 */ { 0x01c, { NIB2R3, NIB3__, NIB0__, NIB1__ }, 1, 1 },
-/* 0x404 */ { 0x098, { NIB2R3, NIB3__, NIB0__, NIB1__ }, 1, 0 },
-/* 0x406 */ { 0x06c, { NIB1__, NIB2__, NIB3__, BLANK_ }, 1, 1 },
-/* 0x408 */ { 0x0cc, { NIB1R2, NIB2__, NIB3__, NIB0__ }, 1, 1 },
-/* 0x40a */ { 0x0d6, { NIB1__, NIB3__, NIB0__, NIB2__ }, 0, 0 },
-/* 0x40c */ { 0x0f0, { NIB2__, NIB1__, NIB0__, NIB3__ }, 0, 0 },
-/* 0x40e */ { 0x07a, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x410 */ { 0x09a, { NIB2R2, NIB3__, BLANK_, BLANK_ }, 0, 1 },
-/* 0x412 */ { 0x0c4, { NIB2R2, NIB3__, NIB0__, NIB1__ }, 0, 1 },
-/* 0x414 */ { INPUT_PORT_C, { NIB2__, NIB3__, BLANK_, BLANK_ }, 0, 0 }, // $4414 $FF00 BA-- ... 0
-/* 0x416 */ { 0x0ea, { NIB2__, NIB1__, NIB3__, NIB0__ }, 0, 1 },
-/* 0x418 */ { 0x074, { NIB3R2, NIB0__, NIB1__, NIB2__ }, 0, 1 },
-/* 0x41a */ { 0x096, { NIB2R2, NIB3__, BLANK_, BLANK_ }, 0, 0 },
-/* 0x41c */ { 0x0f2, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x41e */ { 0x08a, { NIB3R2, BLANK_, BLANK_, BLANK_ }, 1, 0 },
-/* 0x420 */ { 0x054, { NIB2__, NIB1__, NIB3__, BLANK_ }, 1, 1 },
-/* 0x422 */ { 0x05c, { NIB3R2, NIB0__, NIB1__, NIB2__ }, 0, 0 },
-/* 0x424 */ { 0x0c2, { NIB3R2, BLANK_, BLANK_, BLANK_ }, 0, 0 },
-/* 0x426 */ { 0x026, { BLANK_, NIB3__, BLANK_, BLANK_ }, 0, 0 },
-/* 0x428 */ { 0x088, { NIB2R2, NIB3__, BLANK_, BLANK_ }, 1, 0 },
-/* 0x42a */ { 0x08c, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x42c */ { 0x09c, { NIB3R1, BLANK_, BLANK_, BLANK_ }, 1, 1 },
-/* 0x42e */ { 0x01a, { NIB3__, BLANK_, BLANK_, BLANK_ }, 1, 1 },
-/* 0x430 */ { INPUT_PORT_B, { NIB1__, BLANK_, BLANK_, BLANK_ }, 0, 0 }, // // $4430 $00F0 --A- ... 0
-/* 0x432 */ { 0x000, { NIB1R3, NIB2__, NIB3__, NIB0__ }, 1, 0 },
-/* 0x434 */ { 0x0d4, { NIB0R2, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x436 */ { 0x078, { NIB1__, NIB0__, NIB2__, NIB3__ }, 0, 1 },
-/* 0x438 */ { 0x070, { NIB3__, NIB2__, NIB0__, NIB1__ }, 0, 1 },
-/* 0x43a */ { 0x05e, { NIB2__, NIB3__, NIB0__, NIB1__ }, 0, 1 },
-/* 0x43c */ { 0x0f6, { NIB1__, NIB0__, NIB2__, NIB3__ }, 1, 0 },
-/* 0x43e */ { 0x082, { BLANK_, BLANK_, BLANK_, NIB3__ }, 0, 1 },
-/* 0x440 */ { 0x03e, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x442 */ { 0x0a6, { NIB3__, NIB2__, NIB1__, NIB0__ }, 0, 0 },
-/* 0x444 */ { 0x0b0, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x446 */ { 0x0de, { NIB1R2, NIB2__, NIB3__, BLANK_ }, 1, 1 },
-/* 0x448 */ { 0x0b6, { NIB1R2, NIB2__, NIB3__, NIB0__ }, 1, 0 },
-/* 0x44a */ { 0x002, { NIB3R1, NIB0__, NIB1__, NIB2__ }, 0, 0 },
-/* 0x44c */ { 0x090, { NIB3__, BLANK_, BLANK_, BLANK_ }, 0, 0 },
-/* 0x44e */ { 0x06e, { NIB3__, NIB1__, NIB2__, NIB0__ }, 1, 1 },
-/* 0x450 */ { 0x0a0, { BLANK_, BLANK_, BLANK_, NIB3__ }, 1, 1 },
-/* 0x452 */ { 0x0c8, { BLANK_, NIB3__, BLANK_, BLANK_ }, 0, 1 },
-/* 0x454 */ { 0x0f8, { NIB2R3, NIB3__, BLANK_, BLANK_ }, 1, 1 },
-/* 0x456 */ { 0x024, { NIB3__, BLANK_, BLANK_, BLANK_ }, 0, 0 },
-/* 0x458 */ { 0x0b6, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x45a */ { 0x070, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x45c */ { 0x0ee, { BLANK_, BLANK_, BLANK_, NIB3__ }, 1, 0 },
-/* 0x45e */ { 0x0b4, { NIB2__, NIB3__, NIB1__, NIB0__ }, 1, 0 },
-/* 0x460 */ { 0x0ca, { NIB2R1, NIB3__, BLANK_, BLANK_ }, 0, 1 },
-/* 0x462 */ { 0x01e, { NIB2R2, NIB3__, NIB0__, NIB1__ }, 0, 0 },
-/* 0x464 */ { 0x052, { NIB1R1, NIB2__, NIB3__, BLANK_ }, 0, 0 },
-/* 0x466 */ { 0x048, { BLANK_, NIB3__, BLANK_, BLANK_ }, 1, 0 },
-/* 0x468 */ { 0x02a, { NIB1__, NIB0__, NIB2__, NIB3__ }, 1, 1 },
-/* 0x46a */ { 0x02c, { NIB2R1, NIB3__, NIB0__, NIB1__ }, 0, 0 },
-/* 0x46c */ { 0x0a8, { NIB2__, NIB1__, NIB0__, NIB3__ }, 1, 1 },
-/* 0x46e */ { 0x010, { BLANK_, NIB3__, BLANK_, NIB2__ }, 0, 0 },
-/* 0x470 */ { 0x0ce, { NIB1__, NIB3__, NIB0__, NIB2__ }, 0, 1 },
-/* 0x472 */ { 0x078, { NIB3__, BLANK_, BLANK_, BLANK_ }, 0, 0 },
-/* 0x474 */ { 0x066, { NIB2__, NIB1__, BLANK_, NIB3__ }, 1, 1 },
-/* 0x476 */ { 0x05a, { NIB2__, NIB1__, NIB3__, NIB0__ }, 1, 0 },
-/* 0x478 */ { INPUT_PORT_C, { NIB1__, NIB0__, NIB3__, NIB2__ }, 0, 0 }, // $4478 $FFFF CDAB ... 0 (fghthist) - verify
-/* 0x47a */ { 0x014, { NIB1__, NIB0__, NIB3__, NIB2__ }, 1, 0 },
-/* 0x47c */ { 0x0e8, { NIB2__, NIB3__, BLANK_, BLANK_ }, 0, 0 },
-/* 0x47e */ { 0x0b8, { NIB1R1, NIB2__, NIB3__, NIB0__ }, 1, 1 },
-/* 0x480 */ { 0x0e0, { NIB2__, NIB3__, BLANK_, BLANK_ }, 1, 0 },
-/* 0x482 */ { 0x012, { NIB3__, NIB0__, NIB1__, NIB2__ }, 0, 0 },
-/* 0x484 */ { 0x058, { NIB2__, NIB1__, NIB3__, BLANK_ }, 0, 0 },
-/* 0x486 */ { 0x036, { NIB0__, NIB3__, NIB2__, NIB1__ }, 0, 1 },
-/* 0x488 */ { INPUT_PORT_A, { NIB1__, NIB0__, NIB3__, NIB2__ }, 0, 0 },// $4488 $FFFF CDAB ... 0
-/* 0x48a */ { 0x07a, { NIB3R1, BLANK_, BLANK_, BLANK_ }, 1, 0 },
-/* 0x48c */ { 0x072, { NIB2__, NIB1__, NIB3__, BLANK_ }, 0, 0 },
-/* 0x48e */ { 0x0c6, { NIB1R2, NIB2__, NIB3__, NIB0__ }, 1, 1 },
-/* 0x490 */ { 0x0bc, { NIB2__, NIB1__, NIB0__, NIB3__ }, 1, 0 },
-/* 0x492 */ { 0x0fa, { NIB2__, NIB3__, NIB1__, NIB0__ }, 1, 1 },
-/* 0x494 */ { 0x0f4, { NIB3R1, NIB0__, NIB1__, NIB2__ }, 1, 0 },
-/* 0x496 */ { 0x046, { NIB2R3, NIB3__, NIB0__, NIB1__ }, 0, 1 },
-/* 0x498 */ { 0x0b2, { NIB1R1, NIB2__, NIB3__, BLANK_ }, 0, 0 },
-/* 0x49a */ { 0x004, { NIB3__, NIB0__, NIB1__, NIB2__ }, 1, 0 },
-/* 0x49c */ { 0x07e, { NIB1R1, NIB2__, NIB3__, NIB0__ }, 0, 1 },
-/* 0x49e */ { 0x04e, { NIB1__, NIB2__, NIB0__, NIB3__ }, 1, 1 },
-/* 0x4a0 */ { 0x0e2, { NIB2R3, NIB3__, NIB0__, NIB1__ }, 0, 0 },
-/* 0x4a2 */ { 0x094, { NIB2__, NIB3__, NIB0__, NIB1__ }, 1, 0 },
-/* 0x4a4 */ { 0x0ae, { BLANK_, NIB2__, NIB3__, NIB1__ }, 1, 0 },
-/* 0x4a6 */ { 0x0a8, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x4a8 */ { 0x092, { NIB2__, NIB3__, BLANK_, BLANK_ }, 1, 1 },
-/* 0x4aa */ { 0x0da, { NIB2R1, NIB3__, NIB0__, NIB1__ }, 1, 1 },
-/* 0x4ac */ { 0x080, { NIB2R1, NIB3__, NIB0__, NIB1__ }, 1, 0 },
-/* 0x4ae */ { 0x078, { NIB2__, NIB1__, BLANK_, NIB3__ }, 0, 0 },
-/* 0x4b0 */ { 0x0be, { NIB3__, BLANK_, BLANK_, BLANK_ }, 0, 0 },
-/* 0x4b2 */ { 0x04c, { NIB2__, NIB0__, NIB1__, NIB3__ }, 1, 0 },
-/* 0x4b4 */ { 0x032, { NIB2R3, NIB3__, BLANK_, BLANK_ }, 0, 0 },
-/* 0x4b6 */ { 0x0fe, { NIB2__, NIB3__, NIB0__, NIB1__ }, 1, 1 },
-/* 0x4b8 */ { 0x030, { NIB1R2, NIB2__, NIB3__, NIB0__ }, 0, 0 },
-/* 0x4ba */ { 0x0dc, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x4bc */ { 0x030, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x4be */ { 0x02e, { NIB1R2, NIB2__, NIB3__, BLANK_ }, 0, 0 },
-/* 0x4c0 */ { INPUT_PORT_C, { NIB3__, BLANK_, BLANK_, BLANK_ }, 0, 0 },// $44C0 $F000 A--- ... 0
-/* 0x4c2 */ { 0x03c, { NIB1R3, NIB2__, NIB3__, BLANK_ }, 1, 0 },
-/* 0x4c4 */ { 0x08c, { NIB0__, NIB2__, NIB3__, NIB1__ }, 1, 0 },
-/* 0x4c6 */ { 0x028, { NIB3R1, BLANK_, BLANK_, BLANK_ }, 0, 0 },
-/* 0x4c8 */ { 0x03e, { NIB3R1, NIB0__, NIB1__, NIB2__ }, 0, 1 },
-/* 0x4ca */ { 0x0d0, { NIB0R1, NIB1__, NIB2__, NIB3__ }, 0, 1 },
-/* 0x4cc */ { 0x0d4, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x4ce */ { 0x062, { NIB0R3, NIB1__, NIB2__, NIB3__ }, 1, 0 },
-/* 0x4d0 */ { 0x076, { NIB2__, NIB1__, NIB3__, NIB0__ }, 1, 1 },
-/* 0x4d2 */ { 0x00e, { BLANK_, NIB3__, BLANK_, NIB2__ }, 1, 1 },
-/* 0x4d4 */ { 0x038, { NIB3R1, NIB0__, NIB1__, NIB2__ }, 0, 0 },
-/* 0x4d6 */ { 0x0dc, { NIB1R3, NIB2__, NIB3__, NIB0__ }, 0, 0 },
-/* 0x4d8 */ { 0x0e6, { NIB2__, NIB3__, BLANK_, BLANK_ }, 0, 0 },
-/* 0x4da */ { 0x00c, { NIB3__, BLANK_, BLANK_, BLANK_ }, 1, 1 },
-/* 0x4dc */ { 0x0a4, { NIB0R1, NIB1__, NIB2__, NIB3__ }, 1, 1 },
-/* 0x4de */ { 0x0c0, { NIB1R1, NIB2__, NIB3__, BLANK_ }, 0, 1 },
-/* 0x4e0 */ { INPUT_PORT_B, { NIB0__, BLANK_, BLANK_, BLANK_ }, 0, 0 }, // // $44E0 $000F ---A ... 0
-/* 0x4e2 */ { 0x0ba, { NIB3__, NIB0__, NIB1__, NIB2__ }, 0, 1 },
-/* 0x4e4 */ { 0x0ea, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x4e6 */ { 0x0ec, { NIB3R3, BLANK_, BLANK_, BLANK_ }, 0, 0 },
-/* 0x4e8 */ { 0x022, { NIB3__, NIB2__, NIB0__, NIB1__ }, 0, 0 },
-/* 0x4ea */ { 0x078, { NIB0R2, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x4ec */ { 0x0a2, { NIB3__, NIB2__, BLANK_, BLANK_ }, 0, 0 },
-/* 0x4ee */ { 0x068, { NIB1R3, NIB2__, NIB3__, NIB0__ }, 1, 1 },
-/* 0x4f0 */ { 0x050, { NIB0R1, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x4f2 */ { INPUT_PORT_B, { NIB1__, BLANK_, BLANK_, BLANK_ }, 0, 0 }, // // $44F2 $00F0 --A- ... 0
-/* 0x4f4 */ { 0x074, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x4f6 */ { 0x060, { BLANK_, NIB2__, NIB3__, NIB1__ }, 0, 1 },
-/* 0x4f8 */ { 0x040, { NIB2R1, NIB3__, BLANK_, BLANK_ }, 0, 0 },
-/* 0x4fa */ { 0x0f2, { NIB3__, NIB2__, NIB0__, NIB1__ }, 0, 1 },
-/* 0x4fc */ { 0x064, { NIB2__, NIB1__, BLANK_, NIB3__ }, 0, 1 },
-/* 0x4fe */ { 0x084, { NIB1R2, NIB2__, NIB3__, BLANK_ }, 0, 1 },
-/* 0x500 */ { 0x016, { NIB3__, NIB0__, NIB2__, NIB1__ }, 0, 0 },
-/* 0x502 */ { 0x04a, { NIB1__, NIB2__, NIB3__, NIB0__ }, 0, 1 },
-/* 0x504 */ { 0x018, { NIB1__, NIB2__, NIB3__, NIB0__ }, 0, 0 },
-/* 0x506 */ { 0x084, { NIB1R3, NIB2__, NIB3__, NIB0__ }, 1, 0 },
-/* 0x508 */ { 0x034, { NIB0__, NIB3__, NIB2__, NIB1__ }, 1, 1 },
-/* 0x50a */ { INPUT_PORT_B, { NIB3__, BLANK_, BLANK_, BLANK_ }, 0, 0 }, // // $450A $F000 A--- ... 0
-/* 0x50c */ { 0x08e, { NIB1__, NIB0__, NIB3__, NIB2__ }, 0, 1 },
-/* 0x50e */ { 0x00a, { NIB3__, NIB2__, BLANK_, BLANK_ }, 1, 0 },
-/* 0x510 */ { 0x0ac, { NIB3__, NIB2__, BLANK_, BLANK_ }, 1, 1 },
-/* 0x512 */ { 0x0d2, { NIB2__, NIB1__, NIB3__, NIB0__ }, 1, 0 },
-/* 0x514 */ { 0x06a, { NIB2__, NIB1__, BLANK_, NIB3__ }, 1, 0 },
-/* 0x516 */ { 0x0b0, { NIB0R3, NIB1__, NIB2__, NIB3__ }, 1, 1 },
-/* 0x518 */ { 0x0aa, { NIB2__, NIB3__, BLANK_, BLANK_ }, 0, 1 },
-/* 0x51a */ { 0x09e, { NIB0__, NIB1__, NIB3__, NIB2__ }, 0, 1 },
-/* 0x51c */ { 0x044, { NIB0__, NIB3__, NIB2__, NIB1__ }, 1, 0 },
-/* 0x51e */ { 0x0e4, { BLANK_, BLANK_, BLANK_, NIB3__ }, 0, 0 },
-/* 0x520 */ { 0x042, { NIB1__, NIB3__, NIB0__, NIB2__ }, 0, 0 },
-/* 0x522 */ { 0x020, { NIB2R1, NIB3__, BLANK_, BLANK_ }, 1, 1 },
-/* 0x524 */ { 0x056, { BLANK_, NIB3__, BLANK_, NIB2__ }, 1, 0 },
-/* 0x526 */ { 0x078, { NIB2__, NIB0__, NIB1__, NIB3__ }, 1, 1 },
-/* 0x528 */ { 0x0ea, { NIB1R2, NIB2__, NIB3__, NIB0__ }, 1, 1 },
-/* 0x52a */ { 0x004, { NIB2R3, NIB3__, BLANK_, BLANK_ }, 1, 0 },
-/* 0x52c */ { INPUT_PORT_A, { NIB0R1, NIB1__, NIB2__, NIB3__ }, 1, 0 },// $452C $FFFF DCBA X.. 1
-/* 0x52e */ { 0x060, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x530 */ { 0x0f0, { NIB2R2, NIB3__, BLANK_, BLANK_ }, 0, 0 },
-/* 0x532 */ { 0x052, { NIB0R1, NIB1__, NIB2__, NIB3__ }, 1, 0 },
-/* 0x534 */ { 0x09c, { NIB0__, NIB1__, NIB3__, NIB2__ }, 1, 0 },
-/* 0x536 */ { 0x072, { NIB1__, NIB2__, NIB0__, NIB3__ }, 0, 0 },
-/* 0x538 */ { 0x038, { NIB2__, NIB1__, NIB3__, BLANK_ }, 1, 0 },
-/* 0x53a */ { 0x036, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x53c */ { 0x0de, { NIB2__, NIB0__, NIB1__, NIB3__ }, 0, 1 },
-/* 0x53e */ { 0x0de, { NIB1__, NIB3__, NIB0__, NIB2__ }, 1, 1 },
-/* 0x540 */ { 0x01e, { NIB2R1, NIB3__, NIB0__, NIB1__ }, 0, 1 },
-/* 0x542 */ { 0x092, { NIB2__, NIB3__, BLANK_, BLANK_ }, 1, 0 },
-/* 0x544 */ { 0x040, { NIB1__, NIB0__, NIB3__, NIB2__ }, 1, 0 },
-/* 0x546 */ { 0x04c, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x548 */ { 0x06c, { BLANK_, NIB3__, BLANK_, NIB2__ }, 0, 1 },
-/* 0x54a */ { 0x0fe, { NIB3__, BLANK_, BLANK_, BLANK_ }, 1, 0 },
-/* 0x54c */ { 0x068, { NIB0__, NIB3__, NIB1__, NIB2__ }, 0, 1 },
-/* 0x54e */ { 0x060, { NIB2__, NIB3__, NIB0__, NIB1__ }, 0, 0 },
-/* 0x550 */ { 0x08e, { NIB2R1, NIB3__, BLANK_, BLANK_ }, 1, 0 },
-/* 0x552 */ { 0x008, { NIB1R1, NIB2__, NIB3__, NIB0__ }, 0, 0 },
-/* 0x554 */ { 0x006, { BLANK_, NIB3__, BLANK_, BLANK_ }, 1, 1 },
-/* 0x556 */ { 0x0d6, { NIB0__, NIB2__, NIB3__, NIB1__ }, 1, 1 },
-/* 0x558 */ { 0x06a, { NIB3__, BLANK_, BLANK_, BLANK_ }, 1, 1 },
-/* 0x55a */ { 0x0be, { NIB3R2, NIB0__, NIB1__, NIB2__ }, 0, 0 },
-/* 0x55c */ { INPUT_PORT_A, { NIB0R1, NIB1__, NIB2__, NIB3__ }, 0, 1 },// $455C $FFFF DCBA .N. 1
-/* 0x55e */ { 0x0fc, { NIB1R2, NIB2__, NIB3__, BLANK_ }, 1, 1 },
-/* 0x560 */ { 0x0fc, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x562 */ { 0x078, { NIB2R3, NIB3__, NIB0__, NIB1__ }, 1, 1 },
-/* 0x564 */ { INPUT_PORT_C, { NIB0__, NIB1__, NIB3__, NIB2__ }, 0, 0 }, // // $4564 $FFFF CDBA ... 0
-/* 0x566 */ { 0x0a4, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x568 */ { 0x0c6, { NIB3R3, BLANK_, BLANK_, BLANK_ }, 1, 0 },
-/* 0x56a */ { 0x0ca, { NIB1__, NIB0__, NIB3__, NIB2__ }, 0, 0 },
-/* 0x56c */ { 0x08c, { NIB0__, NIB3__, NIB1__, NIB2__ }, 0, 0 },
-/* 0x56e */ { 0x042, { NIB3__, NIB2__, NIB0__, NIB1__ }, 1, 0 },
-/* 0x570 */ { 0x05c, { NIB1__, NIB2__, BLANK_, NIB3__ }, 1, 1 },
-/* 0x572 */ { 0x0a0, { BLANK_, BLANK_, BLANK_, NIB3__ }, 0, 1 },
-/* 0x574 */ { 0x04c, { NIB3__, NIB1__, NIB2__, NIB0__ }, 0, 0 },
-/* 0x576 */ { 0x04a, { NIB2__, NIB1__, NIB3__, NIB0__ }, 0, 1 },
-/* 0x578 */ { 0x0d8, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x57a */ { 0x094, { NIB2__, NIB1__, NIB3__, BLANK_ }, 1, 1 },
-/* 0x57c */ { 0x002, { NIB1R1, NIB2__, NIB3__, BLANK_ }, 1, 1 },
-/* 0x57e */ { 0x020, { NIB0__, NIB1__, NIB2__, NIB3__ }, 1, 1 },
-/* 0x580 */ { 0x088, { NIB2R2, NIB3__, NIB0__, NIB1__ }, 1, 1 },
-/* 0x582 */ { 0x0b6, { NIB2R1, NIB3__, NIB0__, NIB1__ }, 0, 0 },
-/* 0x584 */ { 0x054, { NIB3R2, BLANK_, BLANK_, BLANK_ }, 1, 0 },
-/* 0x586 */ { 0x0b8, { BLANK_, NIB3__, BLANK_, BLANK_ }, 1, 0 },
-/* 0x588 */ { 0x014, { NIB3__, NIB2__, NIB1__, NIB0__ }, 0, 1 },
-/* 0x58a */ { 0x05a, { NIB3__, NIB1__, NIB2__, NIB0__ }, 1, 0 },
-/* 0x58c */ { 0x0e0, { BLANK_, NIB3__, BLANK_, NIB2__ }, 0, 0 },
-/* 0x58e */ { 0x0c8, { NIB0__, NIB1__, NIB3__, NIB2__ }, 0, 0 },
-/* 0x590 */ { 0x07a, { NIB1__, NIB2__, NIB0__, NIB3__ }, 1, 0 },
-/* 0x592 */ { 0x062, { NIB1__, NIB0__, NIB2__, NIB3__ }, 1, 0 },
-/* 0x594 */ { 0x0f6, { NIB1R3, NIB2__, NIB3__, BLANK_ }, 0, 1 },
-/* 0x596 */ { 0x0bc, { BLANK_, NIB3__, BLANK_, BLANK_ }, 0, 1 },
-/* 0x598 */ { 0x07c, { NIB2__, NIB1__, NIB0__, NIB3__ }, 1, 1 },
-/* 0x59a */ { 0x09a, { NIB2__, NIB3__, BLANK_, BLANK_ }, 0, 1 },
-/* 0x59c */ { 0x0ce, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x59e */ { 0x078, { NIB3__, NIB0__, NIB2__, NIB1__ }, 1, 0 },
-/* 0x5a0 */ { 0x03c, { NIB2R2, NIB3__, BLANK_, BLANK_ }, 0, 1 },
-/* 0x5a2 */ { 0x0f2, { NIB0R2, NIB1__, NIB2__, NIB3__ }, 1, 0 },
-/* 0x5a4 */ { 0x006, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x5a6 */ { 0x03a, { BLANK_, NIB3__, BLANK_, BLANK_ }, 1, 0 },
-/* 0x5a8 */ { 0x0b0, { NIB3__, NIB2__, NIB1__, NIB0__ }, 0, 0 },
-/* 0x5aa */ { 0x0cc, { NIB3__, NIB0__, NIB1__, NIB2__ }, 1, 1 },
-/* 0x5ac */ { 0x02a, { NIB1__, NIB2__, NIB3__, NIB0__ }, 1, 1 },
-/* 0x5ae */ { 0x08a, { NIB3R2, NIB0__, NIB1__, NIB2__ }, 0, 1 },
-/* 0x5b0 */ { 0x0f8, { NIB3__, NIB2__, BLANK_, BLANK_ }, 1, 0 },
-/* 0x5b2 */ { 0x024, { NIB2R2, NIB3__, NIB0__, NIB1__ }, 1, 0 },
-/* 0x5b4 */ { 0x05e, { NIB1__, NIB2__, NIB3__, NIB0__ }, 1, 0 },
-/* 0x5b6 */ { 0x0e4, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x5b8 */ { 0x0b4, { NIB1__, NIB2__, NIB3__, BLANK_ }, 0, 0 },
-/* 0x5ba */ { 0x016, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x5bc */ { 0x06e, { NIB3R1, BLANK_, BLANK_, BLANK_ }, 0, 1 },
-/* 0x5be */ { 0x096, { NIB3__, NIB0__, NIB1__, NIB2__ }, 1, 0 },
-/* 0x5c0 */ { 0x0ee, { NIB3R3, BLANK_, BLANK_, BLANK_ }, 0, 1 },
-/* 0x5c2 */ { 0x010, { NIB1R1, NIB2__, NIB3__, BLANK_ }, 0, 0 },
-/* 0x5c4 */ { 0x0fa, { NIB1__, NIB2__, BLANK_, NIB3__ }, 0, 0 },
-/* 0x5c6 */ { 0x0c6, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x5c8 */ { INPUT_PORT_B, { NIB0R1, BLANK_, BLANK_, BLANK_ }, 1, 0 },//// $45C8 $000F ---A X.. 1
-/* 0x5ca */ { 0x0c4, { NIB3R1, NIB0__, NIB1__, NIB2__ }, 1, 0 },
-/* 0x5cc */ { 0x032, { NIB2R3, NIB3__, NIB0__, NIB1__ }, 0, 1 },
-/* 0x5ce */ { 0x00e, { NIB2__, NIB1__, NIB3__, BLANK_ }, 0, 1 },
-/* 0x5d0 */ { 0x036, { NIB0__, NIB1__, NIB3__, NIB2__ }, 1, 1 },
-/* 0x5d2 */ { 0x0ba, { NIB0R3, NIB1__, NIB2__, NIB3__ }, 0, 1 },
-/* 0x5d4 */ { 0x034, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x5d6 */ { 0x0e4, { NIB1__, NIB2__, NIB3__, NIB0__ }, 1, 0 },
-/* 0x5d8 */ { 0x056, { NIB3__, NIB2__, BLANK_, BLANK_ }, 1, 1 },
-/* 0x5da */ { 0x078, { NIB1R2, NIB2__, NIB3__, NIB0__ }, 1, 0 },
-/* 0x5dc */ { 0x044, { NIB0__, NIB1__, NIB2__, NIB3__ }, 1, 1 },
-/* 0x5de */ { 0x016, { NIB1__, NIB2__, NIB3__, NIB0__ }, 1, 1 },
-/* 0x5e0 */ { 0x084, { NIB0__, NIB3__, NIB2__, NIB1__ }, 0, 0 },
-/* 0x5e2 */ { 0x086, { NIB0__, NIB2__, NIB3__, NIB1__ }, 1, 0 },
-/* 0x5e4 */ { INPUT_PORT_B, { NIB0R2, BLANK_, BLANK_, BLANK_ }, 1, 0 }, // // $45E4 $000F ---A X.. 2
-/* 0x5e6 */ { 0x0d8, { NIB1__, NIB0__, NIB3__, NIB2__ }, 0, 0 },
-/* 0x5e8 */ { 0x0f6, { NIB1R2, NIB2__, NIB3__, BLANK_ }, 0, 1 },
-/* 0x5ea */ { 0x0b8, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x5ec */ { 0x0dc, { NIB1R3, NIB2__, NIB3__, NIB0__ }, 0, 0 },
-/* 0x5ee */ { 0x0cc, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x5f0 */ { 0x02c, { NIB3__, NIB2__, BLANK_, BLANK_ }, 0, 0 },
-/* 0x5f2 */ { 0x012, { NIB2R1, NIB3__, NIB0__, NIB1__ }, 1, 0 },
-/* 0x5f4 */ { 0x018, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x5f6 */ { 0x07e, { NIB0__, NIB2__, NIB3__, NIB1__ }, 0, 1 },
-/* 0x5f8 */ { 0x066, { NIB3R1, BLANK_, BLANK_, BLANK_ }, 1, 0 },
-/* 0x5fa */ { 0x0ea, { NIB1R2, NIB2__, NIB3__, NIB0__ }, 0, 1 },
-/* 0x5fc */ { 0x0d0, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 1 },
-/* 0x5fe */ { 0x0ac, { NIB3__, NIB2__, NIB1__, NIB0__ }, 1, 0 },
-/* 0x600 */ { 0x0a8, { BLANK_, NIB3__, BLANK_, BLANK_ }, 1, 1 },
-/* 0x602 */ { 0x092, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x604 */ { 0x034, { NIB1__, NIB2__, BLANK_, NIB3__ }, 1, 0 },
-/* 0x606 */ { 0x0e6, { NIB0__, NIB3__, NIB1__, NIB2__ }, 0, 0 },
-/* 0x608 */ { 0x048, { NIB2__, NIB1__, NIB3__, NIB0__ }, 1, 1 },
-/* 0x60a */ { 0x0e2, { NIB0__, NIB3__, NIB2__, NIB1__ }, 0, 1 },
-/* 0x60c */ { 0x0a6, { NIB2__, NIB3__, NIB0__, NIB1__ }, 1, 1 },
-/* 0x60e */ { 0x0da, { BLANK_, NIB3__, BLANK_, BLANK_ }, 0, 1 },
-/* 0x610 */ { 0x0c0, { NIB0R1, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x612 */ { 0x0b2, { NIB3R1, NIB0__, NIB1__, NIB2__ }, 1, 0 },
-/* 0x614 */ { 0x046, { NIB1__, NIB2__, NIB0__, NIB3__ }, 0, 0 },
-/* 0x616 */ { 0x078, { NIB1__, NIB3__, NIB0__, NIB2__ }, 0, 1 },
-/* 0x618 */ { 0x070, { NIB3R3, BLANK_, BLANK_, BLANK_ }, 1, 0 },
-/* 0x61a */ { 0x0d4, { NIB1__, NIB2__, NIB3__, NIB0__ }, 0, 0 },
-/* 0x61c */ { 0x09e, { NIB0__, NIB1__, NIB3__, NIB2__ }, 0, 1 },
-/* 0x61e */ { 0x028, { NIB2__, NIB3__, NIB1__, NIB0__ }, 1, 1 },
-/* 0x620 */ { INPUT_PORT_C, { NIB1__, NIB2__, NIB3__, NIB0__ }, 0, 0 },// $4620 $FFFF CBAD ... 0
-/* 0x622 */ { 0x090, { NIB2__, NIB1__, BLANK_, NIB3__ }, 1, 0 },
-/* 0x624 */ { 0x0c2, { NIB3__, NIB0__, NIB2__, NIB1__ }, 1, 0 },
-/* 0x626 */ { 0x0f4, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x628 */ { 0x0a4, { NIB3R1, BLANK_, BLANK_, BLANK_ }, 0, 0 },
-/* 0x62a */ { 0x03e, { NIB1__, NIB0__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x62c */ { 0x058, { NIB1__, NIB2__, NIB3__, BLANK_ }, 1, 0 },
-/* 0x62e */ { 0x064, { NIB3__, BLANK_, BLANK_, BLANK_ }, 1, 1 },
-/* 0x630 */ { 0x01c, { NIB0__, NIB1__, NIB3__, NIB2__ }, 1, 1 },
-/* 0x632 */ { 0x02e, { BLANK_, BLANK_, BLANK_, NIB3__ }, 0, 0 },
-/* 0x634 */ { 0x04e, { NIB2__, NIB0__, NIB1__, NIB3__ }, 1, 0 },
-/* 0x636 */ { 0x018, { NIB2__, NIB3__, NIB1__, NIB0__ }, 0, 0 },
-/* 0x638 */ { 0x0a2, { NIB3R3, NIB0__, NIB1__, NIB2__ }, 0, 0 },
-/* 0x63a */ { 0x088, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x63c */ { INPUT_PORT_A, { NIB0__, NIB1__, NIB2__, NIB3__ }, 1, 0 }, // $463C $FFFF DCBA X.. 0
-/* 0x63e */ { 0x0da, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x640 */ { 0x022, { NIB1R2, NIB2__, NIB3__, BLANK_ }, 1, 0 },
-/* 0x642 */ { 0x030, { NIB2R1, NIB3__, BLANK_, BLANK_ }, 1, 1 },
-/* 0x644 */ { 0x000, { NIB1R3, NIB2__, NIB3__, BLANK_ }, 1, 1 },
-/* 0x646 */ { INPUT_PORT_A, { NIB1__, NIB2__, NIB3__, BLANK_ }, 0, 0 },// $4646 $FFF0 CBA- ..B 0
-/* 0x648 */ { 0x00a, { NIB1R3, NIB2__, NIB3__, BLANK_ }, 0, 0 },
-/* 0x64a */ { 0x074, { NIB1R1, NIB2__, NIB3__, NIB0__ }, 1, 0 },
-/* 0x64c */ { 0x0ae, { NIB1__, NIB2__, BLANK_, NIB3__ }, 0, 1 },
-/* 0x64e */ { 0x05c, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x650 */ { 0x01a, { NIB2R1, NIB3__, NIB0__, NIB1__ }, 0, 1 },
-/* 0x652 */ { 0x078, { NIB2__, NIB3__, NIB1__, NIB0__ }, 0, 0 },
-/* 0x654 */ { INPUT_PORT_C, { NIB1__, NIB0__, NIB2__, NIB3__ }, 0, 0 },// $4654 $FFFF DCAB ... 0
-/* 0x656 */ { 0x0c0, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x658 */ { 0x0aa, { NIB0__, NIB3__, NIB1__, NIB2__ }, 1, 0 },
-/* 0x65a */ { INPUT_PORT_C, { NIB2__, NIB3__, NIB0__, NIB1__ }, 0, 0 },// $465A $FFFF BADC ... 0
-/* 0x65c */ { 0x0e8, { NIB2__, NIB3__, NIB0__, NIB1__ }, 0, 1 },
-/* 0x65e */ { 0x0d2, { NIB1R1, NIB2__, NIB3__, NIB0__ }, 0, 1 },
-/* 0x660 */ { 0x0f4, { NIB2R1, NIB3__, BLANK_, BLANK_ }, 0, 0 },
-/* 0x662 */ { 0x010, { NIB3R2, NIB0__, NIB1__, NIB2__ }, 1, 0 },
-/* 0x664 */ { 0x080, { NIB0__, NIB3__, NIB2__, NIB1__ }, 1, 1 },
-/* 0x666 */ { 0x00c, { NIB3__, BLANK_, BLANK_, BLANK_ }, 0, 1 },
-/* 0x668 */ { 0x050, { NIB3R1, NIB0__, NIB1__, NIB2__ }, 0, 1 },
-/* 0x66a */ { 0x04a, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x66c */ { 0x09a, { NIB1R3, NIB2__, NIB3__, NIB0__ }, 1, 1 },
-/* 0x66e */ { 0x06e, { NIB2__, NIB1__, NIB3__, BLANK_ }, 1, 1 },
-/* 0x670 */ { INPUT_PORT_A, { NIB3__, BLANK_, BLANK_, BLANK_ }, 0, 0 }, // $4670 $F000 A--- ..B 0
-/* 0x672 */ { 0x072, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x674 */ { 0x074, { NIB3__, NIB2__, BLANK_, BLANK_ }, 0, 1 },
-/* 0x676 */ { 0x0ba, { NIB3R3, BLANK_, BLANK_, BLANK_ }, 0, 0 },
-/* 0x678 */ { 0x0c2, { NIB1R1, NIB2__, NIB3__, NIB0__ }, 1, 1 },
-/* 0x67a */ { 0x092, { NIB2__, NIB1__, NIB3__, NIB0__ }, 1, 0 },
-/* 0x67c */ { 0x01e, { NIB2R1, NIB3__, NIB0__, NIB1__ }, 1, 1 },
-/* 0x67e */ { 0x082, { NIB2__, NIB3__, NIB0__, NIB1__ }, 1, 0 },
-/* 0x680 */ { 0x036, { NIB2__, NIB1__, NIB3__, NIB0__ }, 0, 0 },
-/* 0x682 */ { 0x084, { NIB2R3, NIB3__, BLANK_, BLANK_ }, 0, 0 },
-/* 0x684 */ { 0x016, { NIB2R1, NIB3__, BLANK_, BLANK_ }, 0, 1 },
-/* 0x686 */ { 0x0d8, { NIB2__, NIB3__, BLANK_, BLANK_ }, 1, 0 },
-/* 0x688 */ { 0x086, { BLANK_, NIB3__, BLANK_, BLANK_ }, 1, 0 },
-/* 0x68a */ { 0x028, { BLANK_, NIB3__, BLANK_, NIB2__ }, 0, 0 },
-/* 0x68c */ { 0x040, { NIB3__, NIB0__, NIB1__, NIB2__ }, 1, 1 },
-/* 0x68e */ { 0x078, { NIB3R2, BLANK_, BLANK_, BLANK_ }, 1, 1 },
-/* 0x690 */ { 0x046, { NIB1R1, NIB2__, NIB3__, BLANK_ }, 0, 1 },
-/* 0x692 */ { 0x02e, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x694 */ { 0x0ea, { NIB1__, NIB0__, NIB2__, NIB3__ }, 0, 1 },
-/* 0x696 */ { 0x09a, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x698 */ { 0x068, { NIB3__, BLANK_, BLANK_, BLANK_ }, 0, 0 },
-/* 0x69a */ { 0x0d4, { NIB1__, NIB2__, BLANK_, NIB3__ }, 1, 1 },
-/* 0x69c */ { 0x070, { NIB3__, NIB2__, NIB1__, NIB0__ }, 1, 1 },
-/* 0x69e */ { 0x07c, { NIB2R2, NIB3__, NIB0__, NIB1__ }, 1, 1 },
-/* 0x6a0 */ { 0x0f6, { NIB2__, NIB0__, NIB1__, NIB3__ }, 0, 0 },
-/* 0x6a2 */ { 0x0e8, { NIB2R2, NIB3__, BLANK_, BLANK_ }, 1, 1 },
-/* 0x6a4 */ { 0x056, { BLANK_, NIB2__, NIB3__, NIB1__ }, 0, 1 },
-/* 0x6a6 */ { 0x0d2, { NIB1__, NIB0__, NIB3__, NIB2__ }, 1, 1 },
-/* 0x6a8 */ { 0x026, { BLANK_, BLANK_, BLANK_, NIB3__ }, 1, 1 },
-/* 0x6aa */ { 0x0a8, { NIB0R3, NIB1__, NIB2__, NIB3__ }, 1, 0 },
-/* 0x6ac */ { 0x0c6, { NIB3__, NIB1__, NIB2__, NIB0__ }, 1, 1 },
-/* 0x6ae */ { 0x0be, { NIB3__, NIB2__, BLANK_, BLANK_ }, 0, 0 },
-/* 0x6b0 */ { 0x062, { NIB1__, NIB0__, NIB3__, NIB2__ }, 0, 1 },
-/* 0x6b2 */ { 0x094, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x6b4 */ { 0x0ae, { NIB1R3, NIB2__, NIB3__, BLANK_ }, 1, 0 },
-/* 0x6b6 */ { 0x006, { NIB3__, NIB2__, NIB0__, NIB1__ }, 1, 1 },
-/* 0x6b8 */ { 0x0a4, { BLANK_, NIB3__, BLANK_, NIB2__ }, 1, 1 },
-/* 0x6ba */ { 0x050, { NIB2R2, NIB3__, NIB0__, NIB1__ }, 0, 0 },
-/* 0x6bc */ { 0x0f2, { NIB2__, NIB3__, BLANK_, BLANK_ }, 0, 1 },
-/* 0x6be */ { 0x07a, { NIB2R1, NIB3__, BLANK_, BLANK_ }, 1, 0 },
-/* 0x6c0 */ { 0x06c, { NIB3R2, NIB0__, NIB1__, NIB2__ }, 1, 1 },
-/* 0x6c2 */ { 0x00e, { NIB0R1, NIB1__, NIB2__, NIB3__ }, 0, 1 },
-/* 0x6c4 */ { 0x054, { NIB3R2, NIB0__, NIB1__, NIB2__ }, 0, 1 },
-/* 0x6c6 */ { 0x07e, { NIB0R3, NIB1__, NIB2__, NIB3__ }, 0, 1 },
-/* 0x6c8 */ { 0x018, { NIB1R1, NIB2__, NIB3__, BLANK_ }, 1, 1 },
-/* 0x6ca */ { 0x078, { NIB1R3, NIB2__, NIB3__, BLANK_ }, 1, 1 },
-/* 0x6cc */ { 0x01a, { NIB3__, NIB2__, NIB1__, NIB0__ }, 0, 1 },
-/* 0x6ce */ { 0x0de, { NIB2__, NIB1__, BLANK_, NIB3__ }, 0, 0 },
-/* 0x6d0 */ { 0x04a, { NIB3__, BLANK_, BLANK_, BLANK_ }, 0, 0 },
-/* 0x6d2 */ { 0x08c, { NIB3R3, NIB0__, NIB1__, NIB2__ }, 1, 0 },
-/* 0x6d4 */ { 0x014, { NIB0R1, NIB1__, NIB2__, NIB3__ }, 1, 0 },
-/* 0x6d6 */ { 0x0cc, { NIB2R3, NIB3__, BLANK_, BLANK_ }, 1, 0 },
-/* 0x6d8 */ { 0x00a, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x6da */ { 0x002, { NIB0__, NIB3__, NIB2__, NIB1__ }, 1, 0 },
-/* 0x6dc */ { 0x05a, { NIB3R3, NIB0__, NIB1__, NIB2__ }, 1, 1 },
-/* 0x6de */ { 0x0aa, { NIB1R3, NIB2__, NIB3__, NIB0__ }, 1, 0 },
-/* 0x6e0 */ { 0x090, { BLANK_, NIB3__, BLANK_, BLANK_ }, 1, 1 },
-/* 0x6e2 */ { 0x03c, { NIB3__, NIB2__, BLANK_, BLANK_ }, 1, 1 },
-/* 0x6e4 */ { 0x080, { NIB0R2, NIB1__, NIB2__, NIB3__ }, 1, 0 },
-/* 0x6e6 */ { 0x044, { NIB3R1, BLANK_, BLANK_, BLANK_ }, 0, 1 },
-/* 0x6e8 */ { 0x072, { BLANK_, NIB2__, NIB3__, NIB1__ }, 1, 1 },
-/* 0x6ea */ { 0x098, { BLANK_, NIB3__, BLANK_, BLANK_ }, 0, 0 },
-/* 0x6ec */ { 0x038, { NIB3R2, BLANK_, BLANK_, BLANK_ }, 0, 0 },
-/* 0x6ee */ { 0x04c, { NIB2__, NIB1__, NIB3__, BLANK_ }, 0, 1 },
-/* 0x6f0 */ { 0x022, { NIB2R3, NIB3__, BLANK_, BLANK_ }, 0, 1 },
-/* 0x6f2 */ { 0x000, { NIB0__, NIB2__, NIB3__, NIB1__ }, 0, 0 },
-/* 0x6f4 */ { 0x0fa, { NIB3__, NIB0__, NIB2__, NIB1__ }, 0, 1 },
-/* 0x6f6 */ { 0x00c, { BLANK_, NIB3__, BLANK_, BLANK_ }, 0, 1 },
-/* 0x6f8 */ { INPUT_PORT_A, { NIB2__, NIB3__, NIB0__, NIB1__,}, 0, 0 }, // $46F8 $FFFF BADC ... 0 (edrandy)
-/* 0x6fa */ { 0x004, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x6fc */ { 0x066, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x6fe */ { 0x08a, { NIB1R1, NIB2__, NIB3__, BLANK_ }, 0, 0 },
-/* 0x700 */ { 0x0b0, { NIB2R2, NIB3__, NIB0__, NIB1__ }, 1, 0 },
-/* 0x702 */ { 0x012, { BLANK_, NIB2__, NIB3__, NIB1__ }, 1, 0 },
-/* 0x704 */ { 0x066, { NIB3R3, BLANK_, BLANK_, BLANK_ }, 0, 1 },
-/* 0x706 */ { 0x078, { NIB2R2, NIB3__, BLANK_, BLANK_ }, 1, 0 },
-/* 0x708 */ { 0x02c, { NIB2R3, NIB3__, NIB0__, NIB1__ }, 0, 0 },
-/* 0x70a */ { 0x09c, { NIB2__, NIB3__, BLANK_, BLANK_ }, 1, 1 },
-/* 0x70c */ { 0x0bc, { NIB2__, NIB3__, NIB1__, NIB0__ }, 1, 0 },
-/* 0x70e */ { 0x004, { NIB3__, NIB0__, NIB1__, NIB2__ }, 0, 0 },
-/* 0x710 */ { 0x0ca, { NIB3__, NIB2__, NIB1__, NIB0__ }, 0, 0 },
-/* 0x712 */ { INPUT_PORT_B, { NIB0R1, BLANK_, BLANK_, BLANK_ }, 0, 1 }, // // $4712 $000F ---A .N. 1
-/* 0x714 */ { 0x00a, { NIB1R1, NIB2__, NIB3__, NIB0__ }, 0, 0 },
-/* 0x716 */ { INPUT_PORT_A, { NIB0R1, NIB1__, NIB2__, NIB3__ }, 0, 0 },// $4716 $FFFF DCBA ... 1
-/* 0x718 */ { 0x0a2, { NIB2R3, NIB3__, NIB0__, NIB1__ }, 1, 1 },
-/* 0x71a */ { 0x0ac, { NIB1__, NIB2__, NIB0__, NIB3__ }, 1, 1 },
-/* 0x71c */ { 0x0ce, { NIB3__, NIB1__, NIB2__, NIB0__ }, 0, 0 },
-/* 0x71e */ { 0x08e, { NIB2__, NIB1__, NIB0__, NIB3__ }, 1, 1 },
-/* 0x720 */ { 0x034, { NIB0R1, NIB1__, NIB2__, NIB3__ }, 1, 1 },
-/* 0x722 */ { INPUT_PORT_C, { NIB0R3, NIB1__, NIB2__, NIB3__ }, 0, 0 },// $4722 $FFFF DCBA ... 0
-/* 0x724 */ { 0x0d6, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x726 */ { 0x0fc, { NIB2__, NIB3__, BLANK_, BLANK_ }, 1, 0 },
-/* 0x728 */ { 0x0b6, { NIB1__, NIB3__, NIB0__, NIB2__ }, 1, 0 },
-/* 0x72a */ { 0x0ec, { NIB2__, NIB3__, BLANK_, BLANK_ }, 0, 0 },
-/* 0x72c */ { 0x094, { NIB3__, NIB1__, NIB2__, NIB0__ }, 0, 1 },
-/* 0x72e */ { INPUT_PORT_A, { NIB0R3, NIB1__, NIB2__, NIB3__ }, 0, 0 }, // $472E $FFFF DCBA ... 3
-/* 0x730 */ { 0x02e, { NIB1R2, NIB2__, NIB3__, NIB0__ }, 0, 0 },
-/* 0x732 */ { 0x09e, { NIB3R1, BLANK_, BLANK_, BLANK_ }, 1, 1 },
-/* 0x734 */ { 0x05c, { NIB1__, NIB0__, NIB2__, NIB3__ }, 1, 1 },
-/* 0x736 */ { 0x042, { NIB3__, NIB0__, NIB2__, NIB1__ }, 1, 1 },
-/* 0x738 */ { 0x0d0, { NIB1__, NIB3__, NIB0__, NIB2__ }, 1, 1 },
-/* 0x73a */ { 0x0f0, { NIB3__, NIB2__, BLANK_, BLANK_ }, 0, 1 },
-/* 0x73c */ { 0x0e4, { NIB3R2, BLANK_, BLANK_, BLANK_ }, 0, 1 },
-/* 0x73e */ { 0x04e, { NIB3R2, NIB0__, NIB1__, NIB2__ }, 0, 0 },
-/* 0x740 */ { 0x0cc, { NIB2__, NIB3__, BLANK_, BLANK_ }, 0, 1 },
-/* 0x742 */ { 0x078, { NIB3R2, BLANK_, BLANK_, BLANK_ }, 0, 1 },
-/* 0x744 */ { 0x010, { NIB0__, NIB1__, NIB3__, NIB2__ }, 1, 0 },
-/* 0x746 */ { 0x0b8, { NIB1R2, NIB2__, NIB3__, BLANK_ }, 1, 1 },
-/* 0x748 */ { 0x0c4, { NIB2__, NIB1__, NIB3__, BLANK_ }, 0, 0 },
-/* 0x74a */ { 0x052, { NIB2R1, NIB3__, NIB0__, NIB1__ }, 0, 0 },
-/* 0x74c */ { 0x06a, { NIB3__, BLANK_, BLANK_, BLANK_ }, 1, 0 },
-/* 0x74e */ { 0x064, { NIB0R3, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x750 */ { 0x0da, { NIB3__, NIB2__, BLANK_, BLANK_ }, 1, 0 },
-/* 0x752 */ { 0x076, { NIB1R3, NIB2__, NIB3__, BLANK_ }, 0, 1 },
-/* 0x754 */ { 0x03e, { NIB3__, NIB0__, NIB2__, NIB1__ }, 1, 1 },
-/* 0x756 */ { INPUT_PORT_C, { NIB3__, NIB0__, NIB1__, NIB2__ }, 0, 0 },// $4756 $FFFF ADCB ... 0
-/* 0x758 */ { 0x0fe, { BLANK_, BLANK_, BLANK_, NIB3__ }, 1, 0 },
-/* 0x75a */ { 0x058, { NIB2__, NIB1__, NIB0__, NIB3__ }, 0, 0 },
-/* 0x75c */ { 0x02a, { BLANK_, NIB3__, BLANK_, NIB2__ }, 1, 0 },
-/* 0x75e */ { 0x060, { NIB2R3, NIB3__, NIB0__, NIB1__ }, 0, 1 },
-/* 0x760 */ { 0x0f4, { NIB2__, NIB3__, BLANK_, BLANK_ }, 0, 0 },
-/* 0x762 */ { 0x082, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x764 */ { 0x008, { NIB2R2, NIB3__, NIB0__, NIB1__ }, 0, 1 },
-/* 0x766 */ { INPUT_PORT_A, { NIB0__, NIB1__, NIB3__, NIB2__ }, 0, 0 }, // $4766 $FFFF CDBA ... 0
-/* 0x768 */ { 0x0c8, { NIB1R2, NIB2__, NIB3__, NIB0__ }, 1, 0 },
-/* 0x76a */ { INPUT_PORT_B, { NIB0__, BLANK_, BLANK_, BLANK_ }, 0, 0 }, // $476A $000F ---A ... 0 (standard i/o read shanghai)
-/* 0x76c */ { 0x088, { NIB3__, NIB2__, NIB0__, NIB1__ }, 0, 1 },
-/* 0x76e */ { 0x06e, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x770 */ { 0x01c, { BLANK_, BLANK_, BLANK_, NIB3__ }, 0, 1 },
-/* 0x772 */ { 0x0d6, { NIB2R3, NIB3__, NIB0__, NIB1__ }, 1, 0 },
-/* 0x774 */ { 0x0e0, { BLANK_, NIB3__, BLANK_, NIB2__ }, 0, 1 },
-/* 0x776 */ { 0x020, { NIB1__, NIB2__, BLANK_, NIB3__ }, 0, 0 },
-/* 0x778 */ { 0x0a6, { NIB2__, NIB1__, NIB3__, NIB0__ }, 0, 1 },
-/* 0x77a */ { 0x030, { NIB3R3, BLANK_, BLANK_, BLANK_ }, 1, 1 },
-/* 0x77c */ { 0x0fa, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x77e */ { 0x078, { NIB0R2, NIB1__, NIB2__, NIB3__ }, 0, 1 },
-/* 0x780 */ { 0x0c0, { BLANK_, NIB2__, NIB3__, NIB1__ }, 0, 0 },
-/* 0x782 */ { 0x0b2, { NIB1R1, NIB2__, NIB3__, BLANK_ }, 1, 0 },
-/* 0x784 */ { 0x0e2, { NIB3__, NIB2__, NIB0__, NIB1__ }, 0, 0 },
-/* 0x786 */ { 0x024, { BLANK_, NIB3__, BLANK_, BLANK_ }, 0, 0 },
-/* 0x788 */ { INPUT_PORT_C, { NIB0R2, NIB1__, NIB2__, NIB3__ }, 0, 0 },// $4788 $FFFF DCBA ... 2
-/* 0x78a */ { 0x05e, { NIB1__, NIB2__, NIB3__, BLANK_ }, 0, 1 },
-/* 0x78c */ { 0x03a, { NIB0__, NIB3__, NIB1__, NIB2__ }, 1, 1 },
-/* 0x78e */ { 0x032, { NIB1R2, NIB2__, NIB3__, NIB0__ }, 1, 1 },
-/* 0x790 */ { INPUT_PORT_A, { NIB3__, NIB1__, NIB2__, NIB0__ }, 0, 0 }, // $4790 $FFFF ACBD ... 0
-/* 0x792 */ { 0x0e6, { NIB0__, NIB1__, NIB2__, NIB3__ }, 1, 0 },
-/* 0x794 */ { 0x096, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x796 */ { 0x0ee, { NIB0R2, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x798 */ { 0x0f8, { NIB3R3, NIB0__, NIB1__, NIB2__ }, 0, 1 },
-/* 0x79a */ { 0x0b4, { NIB0R2, NIB1__, NIB2__, NIB3__ }, 1, 1 },
-/* 0x79c */ { 0x096, { NIB2R2, NIB3__, BLANK_, BLANK_ }, 0, 0 },
-/* 0x79e */ { 0x0a0, { NIB1__, NIB2__, NIB3__, BLANK_ }, 1, 1 },
-/* 0x7a0 */ { 0x0a0, { NIB2R2, NIB3__, BLANK_, BLANK_ }, 0, 1 },
-/* 0x7a2 */ { 0x048, { NIB2__, NIB1__, BLANK_, NIB3__ }, 0, 1 },
-/* 0x7a4 */ { 0x0f6, { NIB2__, NIB0__, NIB1__, NIB3__ }, 0, 1 },
-/* 0x7a6 */ { 0x006, { NIB2__, NIB1__, NIB0__, NIB3__ }, 1, 0 },
-/* 0x7a8 */ { 0x0de, { NIB2__, NIB1__, NIB0__, NIB3__ }, 0, 1 },
-/* 0x7aa */ { 0x0cc, { NIB3__, NIB0__, NIB1__, NIB2__ }, 0, 1 },
-/* 0x7ac */ { 0x0a4, { NIB1__, NIB3__, NIB0__, NIB2__ }, 0, 1 },
-/* 0x7ae */ { 0x07c, { NIB0R2, NIB1__, NIB2__, NIB3__ }, 0, 1 },
-/* 0x7b0 */ { 0x0ce, { NIB1R3, NIB2__, NIB3__, NIB0__ }, 0, 1 },
-/* 0x7b2 */ { 0x0ba, { NIB3__, NIB0__, NIB1__, NIB2__ }, 1, 0 },
-/* 0x7b4 */ { 0x01e, { NIB0__, NIB3__, NIB1__, NIB2__ }, 0, 1 },
-/* 0x7b6 */ { 0x0da, { NIB3__, BLANK_, BLANK_, BLANK_ }, 1, 1 },
-/* 0x7b8 */ { 0x0aa, { NIB3R1, NIB0__, NIB1__, NIB2__ }, 0, 0 },
-/* 0x7ba */ { 0x078, { NIB1R3, NIB2__, NIB3__, BLANK_ }, 0, 0 },
-/* 0x7bc */ { 0x076, { NIB2__, NIB3__, NIB0__, NIB1__ }, 0, 0 },
-/* 0x7be */ { 0x0b6, { NIB3__, NIB2__, BLANK_, BLANK_ }, 1, 0 },
-/* 0x7c0 */ { 0x058, { NIB1__, NIB3__, NIB0__, NIB2__ }, 0, 0 },
-/* 0x7c2 */ { 0x050, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x7c4 */ { 0x060, { NIB0R3, NIB1__, NIB2__, NIB3__ }, 1, 1 },
-/* 0x7c6 */ { 0x05e, { NIB0__, NIB2__, NIB3__, NIB1__ }, 1, 1 },
-/* 0x7c8 */ { 0x094, { NIB2R2, NIB3__, BLANK_, BLANK_ }, 1, 0 },
-/* 0x7ca */ { 0x000, { NIB3__, NIB2__, NIB0__, NIB1__ }, 1, 0 },
-/* 0x7cc */ { 0x03e, { BLANK_, NIB3__, BLANK_, BLANK_ }, 1, 0 },
-/* 0x7ce */ { INPUT_PORT_C, { NIB0R1, NIB1__, NIB2__, NIB3__ }, 0, 0 }, // $47CE $FFFF DCBA ... 1
-/* 0x7d0 */ { 0x0d0, { NIB3__, NIB0__, NIB2__, NIB1__ }, 0, 0 },
-/* 0x7d2 */ { 0x0be, { NIB3R1, NIB0__, NIB1__, NIB2__ }, 1, 1 },
-/* 0x7d4 */ { 0x00c, { NIB1R2, NIB2__, NIB3__, BLANK_ }, 0, 0 },
-/* 0x7d6 */ { INPUT_PORT_A, { NIB0R2, NIB1__, NIB2__, NIB3__ }, 1, 0 },// $47D6 $FFFF DCBA X.. 2
-/* 0x7d8 */ { 0x01a, { NIB2R3, NIB3__, BLANK_, BLANK_ }, 1, 1 },
-/* 0x7da */ { 0x0e6, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x7dc */ { 0x0d6, { NIB1__, NIB2__, NIB3__, BLANK_ }, 0, 0 },
-/* 0x7de */ { 0x05c, { NIB1__, NIB2__, NIB0__, NIB3__ }, 1, 0 },
-/* 0x7e0 */ { 0x00a, { NIB2__, NIB0__, NIB1__, NIB3__ }, 1, 1 },
-/* 0x7e2 */ { 0x0c4, { NIB1__, NIB0__, NIB2__, NIB3__ }, 1, 0 },
-/* 0x7e4 */ { 0x0e4, { NIB3__, BLANK_, BLANK_, BLANK_ }, 1, 0 },
-/* 0x7e6 */ { 0x0a6, { NIB3__, NIB1__, NIB2__, NIB0__ }, 1, 0 },
-/* 0x7e8 */ { 0x058, { NIB0__, NIB1__, NIB2__, NIB3__ }, 0, 0 },
-/* 0x7ea */ { 0x040, { NIB0__, NIB1__, NIB3__, NIB2__ }, 0, 0 },
-/* 0x7ec */ { 0x046, { NIB3__, BLANK_, BLANK_, BLANK_ }, 0, 1 },
-/* 0x7ee */ { 0x0ea, { NIB2__, NIB3__, BLANK_, BLANK_ }, 1, 1 },
-/* 0x7f0 */ { 0x090, { NIB2__, NIB1__, BLANK_, NIB3__ }, 1, 1 },
-/* 0x7f2 */ { 0x08e, { NIB1__, NIB2__, NIB3__, NIB0__ }, 0, 1 },
-/* 0x7f4 */ { INPUT_PORT_A, { NIB0R2, NIB1__, NIB2__, NIB3__ }, 0, 1 }, // // $47F4 $FFFF DCBA .N. 2
-/* 0x7f6 */ { 0x078, { NIB3__, BLANK_, BLANK_, BLANK_ }, 0, 1 },
-/* 0x7f8 */ { 0x004, { NIB2__, NIB1__, NIB3__, BLANK_ }, 1, 0 },
-/* 0x7fa */ { 0x02e, { NIB2__, NIB3__, NIB1__, NIB0__ }, 0, 1 },
-/* 0x7fc */ { 0x06e, { NIB1__, NIB0__, NIB3__, NIB2__ }, 1, 0 },
-/* 0x7fe */ { 0x04c, { NIB1__, NIB2__, NIB0__, NIB3__ }, 0, 1 }
-};
-
-deco146port_xx port_table_104[] = {
- /* 0x000 */ { 0x04, { NIB3__, NIB0__, NIB1__, NIB2__ } , 1, 1 },
- /* 0x002 */ { 0x2a, { NIB1__, NIB3__, NIB0__, NIB2__ } , 0, 1 },
- /* 0x004 */ { 0x5e, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x006 */ { 0x98, { NIB0__, NIB1__, NIB2__, NIB3__ } , 1, 1 },
- /* 0x008 */ { 0x94, { NIB0R3, NIB1__, NIB2__, NIB3__ } , 0, 1 },
- /* 0x00a */ { 0xbe, { NIB3__, NIB2__, BLANK_, BLANK_ } , 1, 1 },
- /* 0x00c */ { 0xd6, { NIB1__, NIB2__, NIB3__, NIB0__ } , 0, 0 },
- /* 0x00e */ { 0xe4, { NIB0__, NIB3__, NIB1__, NIB2__ } , 0, 1 },
- /* 0x010 */ { 0x90, { NIB3__, NIB2__, NIB0__, NIB1__ } , 1, 1 },
- /* 0x012 */ { 0xa8, { NIB3__, NIB0__, NIB1__, NIB2__ } , 1, 0 },
- /* 0x014 */ { 0x24, { NIB2__, NIB1__, NIB3__, BLANK_ } , 0, 1 },
- /* 0x016 */ { 0xfc, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x018 */ { 0x08, { NIB3R1, BLANK_, BLANK_, BLANK_ } , 1, 1 },
- /* 0x01a */ { INPUT_PORT_C , { NIB1__, NIB0__, NIB2__, NIB3__ } , 0, 0 }, // dc.w $001A ; 0x0010
- /* 0x01c */ { 0x72, { NIB2__, NIB1__, NIB3__, BLANK_ } , 1, 0 },
- /* 0x01e */ { 0xc4, { NIB0__, NIB1__, NIB3__, NIB2__ } , 1, 1 },
- /* 0x020 */ { 0xd0, { NIB2__, NIB1__, NIB3__, NIB0__ } , 0, 1 },
- /* 0x022 */ { 0x66, { NIB1__, NIB2__, NIB0__, NIB3__ } , 1, 1 },
- /* 0x024 */ { 0x8c, { NIB3__, NIB2__, NIB0__, NIB1__ } , 0, 0 },
- /* 0x026 */ { 0xec, { BLANK_, NIB3__, BLANK_, BLANK_ } , 1, 0 },
- /* 0x028 */ { 0x58, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x02a */ { 0x80, { NIB3R1, NIB0__, NIB1__, NIB2__ } , 1, 0 },
- /* 0x02c */ { 0x82, { NIB0__, NIB3__, NIB2__, NIB1__ } , 0, 1 },
- /* 0x02e */ { 0x6a, { NIB3__, NIB0__, NIB1__, NIB2__ } , 0, 0 },
- /* 0x030 */ { 0x00, { NIB3R3, BLANK_, BLANK_, BLANK_ } , 0, 0 },
- /* 0x032 */ { 0x60, { NIB3__, BLANK_, BLANK_, BLANK_ } , 1, 0 },
- /* 0x034 */ { INPUT_PORT_B , { NIB0R3, BLANK_, BLANK_, BLANK_ } , 0, 0 },
- /* 0x036 */ { 0xae, { NIB2__, NIB3__, BLANK_, BLANK_ } , 0, 1 },
- /* 0x038 */ { 0x12, { NIB3__, NIB0__, NIB2__, NIB1__ } , 0, 0 },
- /* 0x03a */ { 0x42, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x03c */ { 0x1e, { NIB3R2, BLANK_, BLANK_, BLANK_ } , 0, 1 },
- /* 0x03e */ { 0xf6, { NIB1__, NIB2__, NIB3__, BLANK_ } , 1, 1 },
- /* 0x040 */ { 0xdc, { NIB3__, NIB2__, BLANK_, BLANK_ } , 1, 0 },
- /* 0x042 */ { 0x34, { NIB2R2, NIB3__, NIB0__, NIB1__ } , 1, 0 },
- /* 0x044 */ { 0x2c, { NIB3__, BLANK_, BLANK_, BLANK_ } , 1, 1 },
- /* 0x046 */ { 0x7a, { NIB3R1, NIB0__, NIB1__, NIB2__ } , 0, 1 },
- /* 0x048 */ { 0x10, { NIB1__, NIB2__, BLANK_, NIB3__ } , 0, 0 },
- /* 0x04a */ { 0x9e, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 1 },
- /* 0x04c */ { 0x3e, { NIB1__, NIB0__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x04e */ { 0x0e, { NIB2__, NIB1__, NIB3__, NIB0__ } , 0, 0 },
- /* 0x050 */ { 0xa4, { BLANK_, NIB3__, BLANK_, NIB2__ } , 0, 1 },
- /* 0x052 */ { 0x0c, { BLANK_, NIB2__, NIB3__, NIB1__ } , 1, 0 },
- /* 0x054 */ { 0x40, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x056 */ { 0x20, { NIB1__, NIB0__, NIB3__, NIB2__ } , 1, 1 },
- /* 0x058 */ { 0x46, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x05a */ { 0x6c, { NIB0R2, NIB1__, NIB2__, NIB3__ } , 1, 1 },
- /* 0x05c */ { 0x9a, { NIB2R1, NIB3__, BLANK_, BLANK_ } , 1, 0 },
- /* 0x05e */ { 0x18, { NIB1R1, NIB2__, NIB3__, NIB0__ } , 0, 0 },
- /* 0x060 */ { 0xe0, { NIB3__, NIB2__, BLANK_, BLANK_ } , 0, 0 },
- /* 0x062 */ { 0x30, { NIB1R2, NIB2__, NIB3__, NIB0__ } , 0, 0 },
- /* 0x064 */ { 0xca, { NIB2__, NIB1__, NIB0__, NIB3__ } , 0, 1 },
- /* 0x066 */ { 0xac, { NIB0R1, NIB1__, NIB2__, NIB3__ } , 0, 1 },
- /* 0x068 */ { 0xe8, { NIB2__, NIB1__, BLANK_, NIB3__ } , 0, 0 },
- /* 0x06a */ { 0x66, { NIB3__, NIB2__, NIB0__, NIB1__ } , 0, 1 },
- /* 0x06c */ { 0x14, { NIB2__, NIB1__, NIB0__, NIB3__ } , 0, 0 },
- /* 0x06e */ { 0x96, { NIB0__, NIB3__, NIB2__, NIB1__ } , 1, 0 },
- /* 0x070 */ { 0x5c, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x072 */ { 0x0a, { NIB0__, NIB2__, NIB3__, NIB1__ } , 0, 1 },
- /* 0x074 */ { INPUT_PORT_B , { NIB0R1, BLANK_, BLANK_, BLANK_ } , 0, 0 },
- /* 0x076 */ { INPUT_PORT_C , { NIB3__, BLANK_, BLANK_, BLANK_ } , 0, 1 }, // dc.w $0076 ; 0x1000 dc.w $0076 ; 0x1000 ; nand
- /* 0x078 */ { 0x5a, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x07a */ { 0x74, { NIB3R3, BLANK_, BLANK_, BLANK_ } , 1, 1 },
- /* 0x07c */ { 0xb4, { NIB3R2, NIB0__, NIB1__, NIB2__ } , 0, 0 },
- /* 0x07e */ { 0x86, { NIB2R3, NIB3__, NIB0__, NIB1__ } , 0, 1 },
- /* 0x080 */ { 0x84, { NIB1R1, NIB2__, NIB3__, NIB0__ } , 1, 1 },
- /* 0x082 */ { 0x28, { BLANK_, NIB3__, BLANK_, BLANK_ } , 1, 1 },
- /* 0x084 */ { 0x50, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x086 */ { 0x66, { NIB3R1, NIB0__, NIB1__, NIB2__ } , 1, 1 },
- /* 0x088 */ { INPUT_PORT_A , { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 }, // dc.w $0088
- /* 0x08a */ { 0x1c, { NIB3R1, BLANK_, BLANK_, BLANK_ } , 0, 1 },
- /* 0x08c */ { 0x48, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x08e */ { 0xc2, { NIB0R1, NIB1__, NIB2__, NIB3__ } , 1, 0 },
- /* 0x090 */ { 0x44, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x092 */ { 0x3c, { NIB0R1, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x094 */ { 0xfa, { NIB1__, NIB2__, NIB3__, NIB0__ } , 1, 1 },
- /* 0x096 */ { 0x22, { NIB2R3, NIB3__, NIB0__, NIB1__ } , 1, 1 },
- /* 0x098 */ { 0xf0, { NIB3__, BLANK_, BLANK_, BLANK_ } , 0, 1 },
- /* 0x09a */ { 0x2e, { BLANK_, NIB3__, BLANK_, NIB2__ } , 1, 0 },
- /* 0x09c */ { 0x06, { NIB0__, NIB3__, NIB1__, NIB2__ } , 1, 0 },
- /* 0x09e */ { 0x64, { NIB3__, NIB1__, NIB2__, NIB0__ } , 1, 0 },
- /* 0x0a0 */ { 0xcc, { NIB2__, NIB1__, NIB3__, NIB0__ } , 1, 0 },
- /* 0x0a2 */ { 0x7a, { NIB1R2, NIB2__, NIB3__, NIB0__ } , 1, 0 },
- /* 0x0a4 */ { 0xb2, { NIB2__, NIB3__, BLANK_, BLANK_ } , 1, 1 },
- /* 0x0a6 */ { 0xbe, { NIB3__, NIB0__, NIB1__, NIB2__ } , 0, 0 },
- /* 0x0a8 */ { 0xde, { NIB0__, NIB3__, NIB1__, NIB2__ } , 0, 1 },
- /* 0x0aa */ { 0xf8, { NIB2__, NIB1__, NIB0__, NIB3__ } , 1, 0 },
- /* 0x0ac */ { 0xca, { NIB2__, NIB3__, NIB1__, NIB0__ } , 1, 0 },
- /* 0x0ae */ { 0x3e, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x0b0 */ { 0xb6, { NIB2__, NIB3__, NIB1__, NIB0__ } , 0, 1 },
- /* 0x0b2 */ { 0xd8, { NIB1R1, NIB2__, NIB3__, NIB0__ } , 1, 1 },
- /* 0x0b4 */ { INPUT_PORT_C , { NIB3__, NIB0__, NIB1__, NIB2__ } , 0, 0 }, // dc.w $00B4 ; 0x1000
- /* 0x0b6 */ { 0xc0, { NIB3R1, BLANK_, BLANK_, BLANK_ } , 1, 0 },
- /* 0x0b8 */ { 0xa2, { NIB2R1, NIB3__, NIB0__, NIB1__ } , 0, 0 },
- /* 0x0ba */ { 0xe6, { NIB3__, NIB0__, NIB2__, NIB1__ } , 0, 0 },
- /* 0x0bc */ { 0x1a, { NIB0__, NIB2__, NIB3__, NIB1__ } , 1, 1 },
- /* 0x0be */ { 0xb0, { NIB2R3, NIB3__, NIB0__, NIB1__ } , 0, 0 },
- /* 0x0c0 */ { 0x4c, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x0c2 */ { 0x56, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x0c4 */ { 0xee, { NIB3__, NIB2__, BLANK_, BLANK_ } , 1, 0 },
- /* 0x0c6 */ { 0xd4, { NIB3R2, NIB0__, NIB1__, NIB2__ } , 1, 0 },
- /* 0x0c8 */ { INPUT_PORT_A , { NIB2__, NIB3__, NIB0__, NIB1__ } , 1, 0 }, // dc.w $00C8 ; xor
- /* 0x0ca */ { 0xda, { NIB0R3, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x0cc */ { 0xce, { NIB1__, NIB3__, NIB0__, NIB2__ } , 1, 0 },
- /* 0x0ce */ { 0xf2, { NIB0R1, NIB1__, NIB2__, NIB3__ } , 1, 1 },
- /* 0x0d0 */ { 0x8e, { NIB1__, NIB3__, NIB0__, NIB2__ } , 1, 1 },
- /* 0x0d2 */ { 0x3a, { NIB1R3, NIB2__, NIB3__, BLANK_ } , 1, 1 },
- /* 0x0d4 */ { 0x6e, { NIB1R3, NIB2__, NIB3__, BLANK_ } , 0, 0 },
- /* 0x0d6 */ { 0xa6, { NIB1R1, NIB2__, NIB3__, BLANK_ } , 0, 1 },
- /* 0x0d8 */ { 0x78, { BLANK_, NIB3__, BLANK_, NIB2__ } , 0, 0 },
- /* 0x0da */ { 0xbc, { NIB2__, NIB3__, BLANK_, BLANK_ } , 1, 1 },
- /* 0x0dc */ { 0xba, { NIB3R2, BLANK_, BLANK_, BLANK_ } , 1, 1 },
- /* 0x0de */ { 0x36, { NIB3R1, NIB0__, NIB1__, NIB2__ } , 1, 1 },
- /* 0x0e0 */ { 0x66, { NIB1__, NIB2__, NIB0__, NIB3__ } , 0, 1 },
- /* 0x0e2 */ { 0x92, { NIB3__, NIB2__, NIB1__, NIB0__ } , 0, 1 },
- /* 0x0e4 */ { 0x52, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x0e6 */ { 0xf4, { NIB0__, NIB2__, NIB3__, NIB1__ } , 1, 0 },
- /* 0x0e8 */ { INPUT_PORT_B , { NIB3__, BLANK_, BLANK_, BLANK_ } , 0, 0 },
- /* 0x0ea */ { 0xc6, { NIB0R3, NIB1__, NIB2__, NIB3__ } , 1, 0 },
- /* 0x0ec */ { 0xea, { NIB3__, NIB2__, BLANK_, BLANK_ } , 0, 1 },
- /* 0x0ee */ { 0xfe, { NIB3R2, BLANK_, BLANK_, BLANK_ } , 0, 0 },
- /* 0x0f0 */ { 0xb2, { BLANK_, BLANK_, BLANK_, NIB3__ } , 0, 1 },
- /* 0x0f2 */ { 0x32, { NIB0__, NIB1__, NIB2__, NIB3__ } , 1, 0 },
- /* 0x0f4 */ { 0x76, { NIB3R3, NIB0__, NIB1__, NIB2__ } , 0, 1 },
- /* 0x0f6 */ { 0xe2, { NIB2R1, NIB3__, NIB0__, NIB1__ } , 1, 1 },
- /* 0x0f8 */ { 0x7c, { NIB3__, BLANK_, BLANK_, BLANK_ } , 1, 0 },
- /* 0x0fa */ { 0xa0, { NIB0__, NIB1__, NIB3__, NIB2__ } , 0, 1 },
- /* 0x0fc */ { 0x4a, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x0fe */ { 0x70, { NIB1__, NIB2__, BLANK_, NIB3__ } , 1, 1 },
- /* 0x100 */ { 0x64, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x102 */ { 0x04, { NIB1R2, NIB2__, NIB3__, BLANK_ } , 1, 0 },
- /* 0x104 */ { 0xe2, { NIB0__, NIB1__, NIB3__, NIB2__ } , 1, 0 },
- /* 0x106 */ { 0xca, { BLANK_, NIB3__, BLANK_, BLANK_ } , 1, 0 },
- /* 0x108 */ { 0xa4, { NIB0R2, NIB1__, NIB2__, NIB3__ } , 1, 0 },
- /* 0x10a */ { 0x12, { NIB0__, NIB2__, NIB3__, NIB1__ } , 0, 0 },
- /* 0x10c */ { 0xaa, { BLANK_, BLANK_, BLANK_, NIB3__ } , 0, 0 },
- /* 0x10e */ { 0x7c, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x110 */ { 0xf4, { NIB1__, NIB0__, NIB2__, NIB3__ } , 1, 1 },
- /* 0x112 */ { 0xda, { NIB2__, NIB3__, BLANK_, BLANK_ } , 1, 0 },
- /* 0x114 */ { 0x7a, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x116 */ { 0x3a, { NIB1R3, NIB2__, NIB3__, NIB0__ } , 1, 0 },
- /* 0x118 */ { 0x00, { NIB3R3, BLANK_, BLANK_, BLANK_ } , 1, 0 },
- /* 0x11a */ { 0x66, { NIB3__, NIB2__, NIB0__, NIB1__ } , 1, 0 },
- /* 0x11c */ { 0xce, { NIB3R2, NIB0__, NIB1__, NIB2__ } , 0, 1 },
- /* 0x11e */ { 0xb6, { NIB1R2, NIB2__, NIB3__, NIB0__ } , 1, 1 },
- /* 0x120 */ { 0x1c, { NIB2__, NIB1__, NIB0__, NIB3__ } , 1, 0 },
- /* 0x122 */ { 0x82, { NIB2R3, NIB3__, BLANK_, BLANK_ } , 0, 0 },
- /* 0x124 */ { 0x4a, { NIB3R1, NIB0__, NIB1__, NIB2__ } , 0, 0 },
- /* 0x126 */ { 0x58, { NIB2R2, NIB3__, BLANK_, BLANK_ } , 1, 0 },
- /* 0x128 */ { 0xbe, { NIB2R3, NIB3__, BLANK_, BLANK_ } , 1, 0 },
- /* 0x12a */ { 0x36, { NIB1__, NIB2__, NIB3__, NIB0__ } , 0, 1 },
- /* 0x12c */ { 0x9a, { NIB3__, NIB1__, NIB2__, NIB0__ } , 0, 0 },
- /* 0x12e */ { 0x02, { NIB2__, NIB0__, NIB1__, NIB3__ } , 1, 1 },
- /* 0x130 */ { 0xea, { NIB2R1, NIB3__, NIB0__, NIB1__ } , 1, 0 },
- /* 0x132 */ { 0xae, { NIB3R2, BLANK_, BLANK_, BLANK_ } , 1, 0 },
- /* 0x134 */ { 0x52, { BLANK_, BLANK_, BLANK_, NIB3__ } , 1, 0 },
- /* 0x136 */ { 0xdc, { NIB3__, NIB2__, NIB1__, NIB0__ } , 0, 0 },
- /* 0x138 */ { 0x9e, { NIB0__, NIB3__, NIB1__, NIB2__ } , 0, 0 },
- /* 0x13a */ { 0xfc, { NIB3__, NIB1__, NIB2__, NIB0__ } , 1, 1 },
- /* 0x13c */ { 0x4c, { NIB2R1, NIB3__, BLANK_, BLANK_ } , 1, 1 },
- /* 0x13e */ { 0x76, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x140 */ { 0x8c, { NIB2__, NIB0__, NIB1__, NIB3__ } , 1, 0 },
- /* 0x142 */ { 0xd4, { NIB1__, NIB0__, NIB3__, NIB2__ } , 0, 1 },
- /* 0x144 */ { 0x3e, { NIB1__, NIB2__, NIB3__, BLANK_ } , 0, 0 },
- /* 0x146 */ { 0x16, { NIB0R2, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x148 */ { 0xb8, { NIB3__, NIB2__, NIB1__, NIB0__ } , 1, 0 },
- /* 0x14a */ { 0x50, { NIB2__, NIB1__, NIB3__, NIB0__ } , 1, 0 },
- /* 0x14c */ { 0x42, { NIB1R1, NIB2__, NIB3__, BLANK_ } , 1, 0 }, // xor readback address, affected by xor, funky
- /* 0x14e */ { 0xd6, { NIB0__, NIB2__, NIB3__, NIB1__ } , 1, 1 },
- /* 0x150 */ { 0x7e, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x152 */ { 0x92, { NIB2R3, NIB3__, NIB0__, NIB1__ } , 1, 0 },
- /* 0x154 */ { INPUT_PORT_A , { NIB3__, BLANK_, BLANK_, BLANK_ } , 0, 0 },
- /* 0x156 */ { 0xde, { NIB1__, NIB0__, NIB2__, NIB3__ } , 0, 1 },
- /* 0x158 */ { 0x1a, { BLANK_, NIB3__, BLANK_, BLANK_ } , 0, 1 },
- /* 0x15a */ { 0x9c, { NIB2__, NIB0__, NIB1__, NIB3__ } , 0, 1 },
- /* 0x15c */ { 0x14, { NIB1R3, NIB2__, NIB3__, NIB0__ } , 0, 1 },
- /* 0x15e */ { 0x98, { NIB1R2, NIB2__, NIB3__, NIB0__ } , 1, 0 },
- /* 0x160 */ { 0x40, { BLANK_, NIB2__, NIB3__, NIB1__ } , 0, 0 },
- /* 0x162 */ { 0x6e, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x164 */ { 0xc4, { NIB1__, NIB0__, NIB3__, NIB2__ } , 0, 0 },
- /* 0x166 */ { 0xc6, { NIB3R3, NIB0__, NIB1__, NIB2__ } , 1, 0 },
- /* 0x168 */ { 0x84, { NIB1R3, NIB2__, NIB3__, BLANK_ } , 0, 1 },
- /* 0x16a */ { 0x8e, { NIB2R1, NIB3__, BLANK_, BLANK_ } , 0, 1 },
- /* 0x16c */ { 0x96, { NIB3__, NIB0__, NIB2__, NIB1__ } , 1, 1 },
- /* 0x16e */ { 0x6a, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x170 */ { 0xf0, { NIB0R2, NIB1__, NIB2__, NIB3__ } , 0, 1 },
- /* 0x172 */ { 0x2a, { NIB3__, BLANK_, BLANK_, BLANK_ } , 0, 0 },
- /* 0x174 */ { 0x1e, { NIB2R1, NIB3__, NIB0__, NIB1__ } , 0, 1 },
- /* 0x176 */ { 0x62, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x178 */ { 0x88, { NIB2__, NIB3__, NIB0__, NIB1__ } , 0, 1 },
- /* 0x17a */ { 0xe0, { NIB2R2, NIB3__, NIB0__, NIB1__ } , 0, 1 },
- /* 0x17c */ { INPUT_PORT_A , { NIB3R1, NIB0__, NIB1__, NIB2__ } , 1, 1 }, // dc.w $017C ; xor,nand
- /* 0x17e */ { 0xcc, { NIB0__, NIB1__, NIB3__, NIB2__ } , 0, 0 },
- /* 0x180 */ { INPUT_PORT_A , { NIB0R3, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x182 */ { 0x46, { NIB2__, NIB1__, NIB0__, NIB3__ } , 0, 0 },
- /* 0x184 */ { 0x90, { NIB3__, NIB2__, BLANK_, BLANK_ } , 0, 1 },
- /* 0x186 */ { 0x72, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x188 */ { 0xee, { NIB1R2, NIB2__, NIB3__, BLANK_ } , 0, 1 },
- /* 0x18a */ { 0x2c, { NIB2R1, NIB3__, NIB0__, NIB1__ } , 0, 0 },
- /* 0x18c */ { 0x22, { NIB3R3, NIB0__, NIB1__, NIB2__ } , 0, 0 },
- /* 0x18e */ { 0x38, { NIB3R2, NIB0__, NIB1__, NIB2__ } , 1, 1 },
- /* 0x190 */ { 0x44, { NIB1__, NIB2__, BLANK_, NIB3__ } , 0, 1 },
- /* 0x192 */ { 0xc0, { NIB3__, NIB2__, BLANK_, BLANK_ } , 1, 1 },
- /* 0x194 */ { 0x54, { NIB2__, NIB3__, BLANK_, BLANK_ } , 0, 1 },
- /* 0x196 */ { 0x6c, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x198 */ { 0xfa, { NIB2__, NIB1__, BLANK_, NIB3__ } , 0, 1 },
- /* 0x19a */ { 0x34, { NIB2R3, NIB3__, NIB0__, NIB1__ } , 0, 0 },
- /* 0x19c */ { 0xa8, { NIB2R2, NIB3__, BLANK_, BLANK_ } , 1, 1 },
- /* 0x19e */ { 0x3c, { NIB2__, NIB1__, NIB3__, NIB0__ } , 1, 1 },
- /* 0x1a0 */ { 0x7e, { BLANK_, BLANK_, BLANK_, NIB3__ } , 1, 1 },
- /* 0x1a2 */ { 0x4e, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x1a4 */ { 0x9c, { NIB1R1, NIB2__, NIB3__, NIB0__ } , 0, 1 },
- /* 0x1a6 */ { 0x16, { BLANK_, NIB3__, BLANK_, BLANK_ } , 0, 0 },
- /* 0x1a8 */ { 0x38, { NIB2__, NIB3__, BLANK_, BLANK_ } , 1, 1 },
- /* 0x1aa */ { 0xc8, { NIB1__, NIB0__, NIB3__, NIB2__ } , 1, 0 },
- /* 0x1ac */ { 0x68, { NIB3__, BLANK_, BLANK_, BLANK_ } , 0, 1 },
- /* 0x1ae */ { 0x54, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x1b0 */ { 0xba, { NIB3__, BLANK_, BLANK_, BLANK_ } , 0, 0 },
- /* 0x1b2 */ { 0x78, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x1b4 */ { 0xcc, { NIB3__, NIB2__, BLANK_, BLANK_ } , 0, 0 },
- /* 0x1b6 */ { 0xfe, { NIB1__, NIB0__, NIB2__, NIB3__ } , 1, 0 },
- /* 0x1b8 */ { 0x86, { NIB0R3, NIB1__, NIB2__, NIB3__ } , 1, 1 },
- /* 0x1ba */ { 0x18, { NIB2R3, NIB3__, BLANK_, BLANK_ } , 1, 1 },
- /* 0x1bc */ { 0x0e, { NIB2__, NIB3__, NIB1__, NIB0__ } , 0, 1 },
- /* 0x1be */ { 0xc2, { NIB1R2, NIB2__, NIB3__, BLANK_ } , 1, 1 },
- /* 0x1c0 */ { INPUT_PORT_C , { NIB3__, NIB1__, NIB2__, NIB0__ } , 0, 0 }, // dc.w $01C0 ; 0x1000
- /* 0x1c2 */ { 0x0c, { NIB2__, NIB3__, BLANK_, BLANK_ } , 0, 0 },
- /* 0x1c4 */ { INPUT_PORT_A , { NIB0R1, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x1c6 */ { 0x70, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x1c8 */ { INPUT_PORT_A , { NIB0R2, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x1ca */ { 0x5c, { BLANK_, NIB2__, NIB3__, NIB1__ } , 0, 1 },
- /* 0x1cc */ { 0xac, { BLANK_, NIB3__, BLANK_, BLANK_ } , 1, 1 },
- /* 0x1ce */ { 0x48, { NIB3R1, BLANK_, BLANK_, BLANK_ } , 0, 0 },
- /* 0x1d0 */ { 0x0a, { BLANK_, NIB3__, BLANK_, NIB2__ } , 1, 1 },
- /* 0x1d2 */ { 0x94, { NIB2__, NIB3__, NIB1__, NIB0__ } , 1, 0 },
- /* 0x1d4 */ { 0x66, { BLANK_, NIB2__, NIB3__, NIB1__ } , 1, 1 },
- /* 0x1d6 */ { 0xf8, { NIB1__, NIB2__, NIB3__, BLANK_ } , 0, 1 },
- /* 0x1d8 */ { 0x68, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x1da */ { 0x24, { BLANK_, NIB3__, BLANK_, BLANK_ } , 0, 1 },
- /* 0x1dc */ { 0x66, { NIB3R3, NIB0__, NIB1__, NIB2__ } , 1, 1 },
- /* 0x1de */ { 0xa6, { NIB1R3, NIB2__, NIB3__, NIB0__ } , 0, 0 },
- /* 0x1e0 */ { 0x74, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x1e2 */ { 0xd0, { NIB2__, NIB3__, NIB1__, NIB0__ } , 0, 0 },
- /* 0x1e4 */ { 0x5e, { NIB3__, NIB0__, NIB2__, NIB1__ } , 0, 1 },
- /* 0x1e6 */ { 0xe6, { NIB1__, NIB2__, NIB0__, NIB3__ } , 0, 0 },
- /* 0x1e8 */ { 0x66, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x1ea */ { INPUT_PORT_B , { NIB1__, BLANK_, BLANK_, BLANK_ } , 0, 0 },
- /* 0x1ec */ { INPUT_PORT_B , { NIB1R2, BLANK_, BLANK_, BLANK_ } , 0, 1 }, // dc.w $01EC ; nand
- /* 0x1ee */ { 0xc8, { NIB3R3, BLANK_, BLANK_, BLANK_ } , 0, 1 },
- /* 0x1f0 */ { 0xa2, { NIB2__, NIB3__, NIB1__, NIB0__ } , 1, 1 },
- /* 0x1f2 */ { 0x60, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x1f4 */ { 0xbc, { NIB3__, NIB1__, NIB2__, NIB0__ } , 0, 1 },
- /* 0x1f6 */ { 0x06, { NIB1R1, NIB2__, NIB3__, NIB0__ } , 1, 0 },
- /* 0x1f8 */ { 0x2e, { NIB1__, NIB2__, NIB3__, BLANK_ } , 1, 0 },
- /* 0x1fa */ { 0x26, { NIB3__, NIB0__, NIB2__, NIB1__ } , 1, 0 },
- /* 0x1fc */ { 0x56, { NIB1__, NIB2__, BLANK_, NIB3__ } , 1, 0 },
- /* 0x1fe */ { 0xd2, { NIB1R1, NIB2__, NIB3__, BLANK_ } , 1, 1 },
- /* 0x200 */ { 0xa0, { NIB3R1, NIB0__, NIB1__, NIB2__ } , 0, 0 },
- /* 0x202 */ { 0x34, { NIB2__, NIB1__, BLANK_, NIB3__ } , 1, 0 },
- /* 0x204 */ { 0xf6, { BLANK_, BLANK_, BLANK_, NIB3__ } , 1, 0 },
- /* 0x206 */ { INPUT_PORT_A , { NIB2__, NIB3__, NIB0__, NIB1__ } , 0, 0 },
- /* 0x208 */ { 0xae, { NIB0R2, NIB1__, NIB2__, NIB3__ } , 1, 1 },
- /* 0x20a */ { 0xf4, { BLANK_, NIB2__, NIB3__, NIB1__ } , 1, 0 },
- /* 0x20c */ { INPUT_PORT_C , { BLANK_, BLANK_, BLANK_, NIB3__ } , 1, 1 }, // dc.w $020C ; Bit not present dc.w $020C ; Bit not present ; xor,nand
- /* 0x20e */ { 0x4e, { NIB2R3, NIB3__, BLANK_, BLANK_ } , 1, 1 },
- /* 0x210 */ { 0x0e, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x212 */ { 0x6e, { NIB0__, NIB3__, NIB1__, NIB2__ } , 1, 0 },
- /* 0x214 */ { 0x4a, { NIB3__, NIB0__, NIB2__, NIB1__ } , 0, 1 },
- /* 0x216 */ { 0x0a, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x218 */ { 0x82, { NIB1__, NIB2__, NIB0__, NIB3__ } , 1, 1 },
- /* 0x21a */ { 0x66, { NIB1__, NIB0__, NIB3__, NIB2__ } , 0, 0 },
- /* 0x21c */ { 0x6c, { NIB2R1, NIB3__, BLANK_, BLANK_ } , 1, 0 },
- /* 0x21e */ { 0xb8, { NIB0R3, NIB1__, NIB2__, NIB3__ } , 1, 1 },
- /* 0x220 */ { 0x12, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x222 */ { 0x06, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x224 */ { 0x00, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x226 */ { 0x72, { NIB3__, NIB0__, NIB1__, NIB2__ } , 1, 0 },
- /* 0x228 */ { 0xe4, { NIB2__, NIB1__, NIB3__, BLANK_ } , 1, 0 },
- /* 0x22a */ { 0x90, { NIB3__, NIB2__, NIB1__, NIB0__ } , 1, 1 },
- /* 0x22c */ { 0xc4, { BLANK_, NIB3__, BLANK_, BLANK_ } , 0, 0 },
- /* 0x22e */ { 0x08, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x230 */ { 0x98, { NIB1__, NIB2__, NIB3__, NIB0__ } , 1, 1 },
- /* 0x232 */ { 0xda, { NIB3R2, BLANK_, BLANK_, BLANK_ } , 0, 0 },
- /* 0x234 */ { 0x3a, { NIB1__, NIB3__, NIB0__, NIB2__ } , 1, 0 },
- /* 0x236 */ { 0xcc, { BLANK_, NIB3__, BLANK_, NIB2__ } , 1, 1 },
- /* 0x238 */ { 0x7c, { NIB2R3, NIB3__, BLANK_, BLANK_ } , 0, 1 },
- /* 0x23a */ { 0x86, { NIB0R2, NIB1__, NIB2__, NIB3__ } , 1, 0 },
- /* 0x23c */ { 0x56, { NIB3__, NIB1__, NIB2__, NIB0__ } , 0, 1 },
- /* 0x23e */ { 0x8a, { NIB0__, NIB3__, NIB2__, NIB1__ } , 1, 1 },
- /* 0x240 */ { 0xa0, { NIB1R3, NIB2__, NIB3__, NIB0__ } , 1, 1 },
- /* 0x242 */ { 0x04, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x244 */ { 0x32, { NIB1R3, NIB2__, NIB3__, NIB0__ } , 0, 1 },
- /* 0x246 */ { 0x48, { NIB2R2, NIB3__, NIB0__, NIB1__ } , 1, 0 },
- /* 0x248 */ { 0x8c, { NIB3__, NIB2__, NIB0__, NIB1__ } , 1, 1 },
- /* 0x24a */ { 0xa2, { NIB2R2, NIB3__, BLANK_, BLANK_ } , 1, 1 },
- /* 0x24c */ { 0xfa, { NIB2R1, NIB3__, NIB0__, NIB1__ } , 1, 0 },
- /* 0x24e */ { 0x46, { NIB3__, NIB0__, NIB2__, NIB1__ } , 1, 0 },
- /* 0x250 */ { 0x62, { NIB2__, NIB1__, NIB0__, NIB3__ } , 0, 1 },
- /* 0x252 */ { 0xe0, { NIB2__, NIB3__, BLANK_, BLANK_ } , 1, 0 },
- /* 0x254 */ { 0x7e, { NIB1R2, NIB2__, NIB3__, BLANK_ } , 1, 0 },
- /* 0x256 */ { 0xce, { NIB1__, NIB2__, NIB3__, NIB0__ } , 0, 1 },
- /* 0x258 */ { 0xf8, { NIB1R1, NIB2__, NIB3__, BLANK_ } , 1, 1 },
- /* 0x25a */ { 0x6a, { NIB2__, NIB3__, BLANK_, BLANK_ } , 0, 0 },
- /* 0x25c */ { 0x58, { NIB2__, NIB3__, BLANK_, BLANK_ } , 0, 0 },
- /* 0x25e */ { 0xc0, { NIB3__, NIB1__, NIB2__, NIB0__ } , 1, 0 },
- /* 0x260 */ { 0xe2, { NIB1__, NIB2__, NIB3__, BLANK_ } , 1, 1 },
- /* 0x262 */ { 0x30, { NIB1__, NIB2__, NIB3__, NIB0__ } , 1, 0 },
- /* 0x264 */ { 0x88, { NIB2__, NIB1__, NIB3__, BLANK_ } , 1, 1 },
- /* 0x266 */ { 0xe8, { NIB0__, NIB2__, NIB3__, NIB1__ } , 1, 0 },
- /* 0x268 */ { 0xac, { BLANK_, NIB3__, BLANK_, NIB2__ } , 0, 1 },
- /* 0x26a */ { 0xe6, { NIB3R1, BLANK_, BLANK_, BLANK_ } , 0, 0 },
- /* 0x26c */ { 0xc2, { NIB2R1, NIB3__, BLANK_, BLANK_ } , 1, 1 },
- /* 0x26e */ { 0xa8, { NIB3__, NIB2__, NIB1__, NIB0__ } , 0, 0 },
- /* 0x270 */ { INPUT_PORT_C , { NIB1__, NIB2__, NIB3__, NIB0__ } , 0, 0 }, // dc.w $0270 ; 0x0010
- /* 0x272 */ { 0x3c, { NIB0__, NIB1__, NIB3__, NIB2__ } , 1, 1 },
- /* 0x274 */ { 0x68, { NIB1__, NIB2__, NIB3__, BLANK_ } , 1, 0 },
- /* 0x276 */ { 0x2e, { NIB0R1, NIB1__, NIB2__, NIB3__ } , 0, 1 },
- /* 0x278 */ { 0x18, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x27a */ { 0x02, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x27c */ { 0x70, { NIB1__, NIB2__, NIB0__, NIB3__ } , 0, 0 },
- /* 0x27e */ { 0x94, { BLANK_, NIB3__, BLANK_, BLANK_ } , 1, 1 },
- /* 0x280 */ { 0x5e, { NIB2__, NIB1__, NIB3__, BLANK_ } , 0, 0 },
- /* 0x282 */ { 0x26, { NIB3__, BLANK_, BLANK_, BLANK_ } , 0, 1 },
- /* 0x284 */ { 0x14, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x286 */ { 0x7a, { NIB1R2, NIB2__, NIB3__, BLANK_ } , 0, 0 },
- /* 0x288 */ { 0xd2, { NIB3R2, NIB0__, NIB1__, NIB2__ } , 0, 1 },
- /* 0x28a */ { 0xd4, { NIB1R2, NIB2__, NIB3__, NIB0__ } , 0, 1 },
- /* 0x28c */ { 0xa6, { NIB1__, NIB3__, NIB0__, NIB2__ } , 0, 0 },
- /* 0x28e */ { 0x36, { NIB2R2, NIB3__, NIB0__, NIB1__ } , 0, 1 },
- /* 0x290 */ { 0xee, { NIB2__, NIB1__, BLANK_, NIB3__ } , 0, 0 },
- /* 0x292 */ { INPUT_PORT_C , { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 }, // dc.w $0292 ; 0x0001
- /* 0x294 */ { 0x66, { NIB3__, BLANK_, BLANK_, BLANK_ } , 0, 0 },
- /* 0x296 */ { 0x5a, { NIB3R2, NIB0__, NIB1__, NIB2__ } , 0, 0 },
- /* 0x298 */ { 0x64, { BLANK_, NIB3__, BLANK_, BLANK_ } , 0, 1 },
- /* 0x29a */ { 0x60, { BLANK_, NIB3__, BLANK_, BLANK_ } , 0, 1 },
- /* 0x29c */ { 0xec, { NIB2__, NIB3__, BLANK_, BLANK_ } , 0, 1 },
- /* 0x29e */ { 0x80, { NIB2R2, NIB3__, BLANK_, BLANK_ } , 1, 0 },
- /* 0x2a0 */ { 0xd0, { NIB1R2, NIB2__, NIB3__, NIB0__ } , 1, 1 },
- /* 0x2a2 */ { 0x44, { NIB2R3, NIB3__, NIB0__, NIB1__ } , 1, 1 },
- /* 0x2a4 */ { INPUT_PORT_C , { NIB0__, NIB1__, NIB3__, NIB2__ } , 0, 0 }, // dc.w $02A4 ; 0x0001
- /* 0x2a6 */ { 0xbc, { NIB2__, NIB0__, NIB1__, NIB3__ } , 1, 1 },
- /* 0x2a8 */ { 0x22, { BLANK_, NIB3__, BLANK_, BLANK_ } , 1, 1 },
- /* 0x2aa */ { 0xb2, { NIB3R1, BLANK_, BLANK_, BLANK_ } , 0, 1 },
- /* 0x2ac */ { 0x1e, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x2ae */ { 0x9c, { NIB2__, NIB0__, NIB1__, NIB3__ } , 0, 0 },
- /* 0x2b0 */ { 0x96, { NIB3__, NIB1__, NIB2__, NIB0__ } , 0, 0 },
- /* 0x2b2 */ { 0x8e, { NIB2__, NIB3__, NIB0__, NIB1__ } , 0, 1 },
- /* 0x2b4 */ { 0xb6, { NIB0__, NIB3__, NIB1__, NIB2__ } , 1, 1 },
- /* 0x2b6 */ { 0xfe, { NIB2__, NIB1__, NIB0__, NIB3__ } , 1, 1 },
- /* 0x2b8 */ { 0x66, { BLANK_, NIB3__, BLANK_, BLANK_ } , 1, 0 },
- /* 0x2ba */ { 0xf0, { BLANK_, NIB2__, NIB3__, NIB1__ } , 0, 0 },
- /* 0x2bc */ { 0x20, { NIB2R2, NIB3__, NIB0__, NIB1__ } , 1, 1 },
- /* 0x2be */ { 0x40, { NIB2__, NIB3__, BLANK_, BLANK_ } , 0, 0 },
- /* 0x2c0 */ { 0x4c, { NIB3R3, NIB0__, NIB1__, NIB2__ } , 0, 0 },
- /* 0x2c2 */ { 0x76, { BLANK_, NIB3__, BLANK_, NIB2__ } , 1, 1 },
- /* 0x2c4 */ { 0xca, { NIB3R2, BLANK_, BLANK_, BLANK_ } , 0, 1 },
- /* 0x2c6 */ { 0x50, { NIB3__, NIB2__, NIB0__, NIB1__ } , 1, 0 },
- /* 0x2c8 */ { 0x1c, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x2ca */ { 0x1a, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x2cc */ { INPUT_PORT_B , { NIB0__, BLANK_, BLANK_, BLANK_ } , 0, 0 },
- /* 0x2ce */ { 0x92, { NIB2R1, NIB3__, NIB0__, NIB1__ } , 1, 1 },
- /* 0x2d0 */ { 0x66, { BLANK_, NIB3__, BLANK_, NIB2__ } , 1, 0 },
- /* 0x2d2 */ { 0x28, { NIB3__, BLANK_, BLANK_, BLANK_ } , 1, 0 },
- /* 0x2d4 */ { 0x74, { NIB0__, NIB1__, NIB2__, NIB3__ } , 1, 0 },
- /* 0x2d6 */ { 0x16, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x2d8 */ { 0x9e, { NIB1__, NIB0__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x2da */ { 0xde, { NIB2R3, NIB3__, BLANK_, BLANK_ } , 1, 0 },
- /* 0x2dc */ { 0xba, { NIB0__, NIB1__, NIB2__, NIB3__ } , 1, 1 },
- /* 0x2de */ { 0x78, { NIB3__, BLANK_, BLANK_, BLANK_ } , 1, 0 },
- /* 0x2e0 */ { 0x9a, { NIB1__, NIB2__, BLANK_, NIB3__ } , 0, 0 },
- /* 0x2e2 */ { 0xc6, { NIB3R3, BLANK_, BLANK_, BLANK_ } , 0, 0 },
- /* 0x2e4 */ { 0x42, { NIB1__, NIB2__, NIB0__, NIB3__ } , 1, 0 },
- /* 0x2e6 */ { 0xea, { BLANK_, NIB3__, BLANK_, BLANK_ } , 0, 0 },
- /* 0x2e8 */ { 0x0c, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x2ea */ { 0xd8, { NIB1__, NIB0__, NIB3__, NIB2__ } , 1, 0 },
- /* 0x2ec */ { 0x5c, { NIB1__, NIB0__, NIB2__, NIB3__ } , 1, 0 },
- /* 0x2ee */ { 0xaa, { NIB3R1, NIB0__, NIB1__, NIB2__ } , 0, 1 },
- /* 0x2f0 */ { 0xb4, { NIB0__, NIB3__, NIB2__, NIB1__ } , 1, 0 },
- /* 0x2f2 */ { 0xf2, { NIB1R1, NIB2__, NIB3__, NIB0__ } , 0, 1 },
- /* 0x2f4 */ { INPUT_PORT_C , { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 1 }, // dc.w $02F4 ; 0x0001 dc.w $02F4 ; 0x0001 ; nand
- /* 0x2f6 */ { 0x84, { NIB1__, NIB2__, NIB0__, NIB3__ } , 0, 1 },
- /* 0x2f8 */ { 0xa4, { BLANK_, NIB2__, NIB3__, NIB1__ } , 0, 1 },
- /* 0x2fa */ { INPUT_PORT_C , { NIB0R3, NIB1__, NIB2__, NIB3__ } , 0, 0 }, // dc.w $02FA ; 0x0008
- /* 0x2fc */ { 0xfc, { BLANK_, NIB3__, BLANK_, NIB2__ } , 0, 0 },
- /* 0x2fe */ { 0x10, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x300 */ { 0xa4, { BLANK_, BLANK_, BLANK_, NIB3__ } , 0, 0 },
- /* 0x302 */ { 0x24, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x304 */ { 0xe2, { NIB2R3, NIB3__, BLANK_, BLANK_ } , 0, 0 },
- /* 0x306 */ { 0x32, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x308 */ { 0x2a, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x30a */ { 0x66, { NIB1R3, NIB2__, NIB3__, NIB0__ } , 0, 0 },
- /* 0x30c */ { 0x86, { NIB2R2, NIB3__, BLANK_, BLANK_ } , 0, 0 },
- /* 0x30e */ { 0xaa, { NIB3R3, BLANK_, BLANK_, BLANK_ } , 1, 1 },
- /* 0x310 */ { 0x66, { NIB2__, NIB1__, NIB3__, NIB0__ } , 0, 0 },
- /* 0x312 */ { 0x4e, { NIB0R1, NIB1__, NIB2__, NIB3__ } , 1, 1 },
- /* 0x314 */ { 0x84, { NIB1R3, NIB2__, NIB3__, BLANK_ } , 0, 0 },
- /* 0x316 */ { 0x96, { NIB2__, NIB3__, BLANK_, BLANK_ } , 1, 1 },
- /* 0x318 */ { 0x26, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x31a */ { 0x64, { NIB2R1, NIB3__, BLANK_, BLANK_ } , 0, 0 },
- /* 0x31c */ { 0xac, { NIB2__, NIB3__, NIB0__, NIB1__ } , 0, 0 },
- /* 0x31e */ { 0x78, { NIB2R2, NIB3__, NIB0__, NIB1__ } , 0, 0 },
- /* 0x320 */ { 0xfe, { NIB0__, NIB3__, NIB2__, NIB1__ } , 0, 0 },
- /* 0x322 */ { 0x2e, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x324 */ { 0x06, { NIB1R1, NIB2__, NIB3__, NIB0__ } , 0, 0 },
- /* 0x326 */ { 0x92, { BLANK_, NIB3__, BLANK_, BLANK_ } , 1, 0 },
- /* 0x328 */ { 0x34, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x32a */ { 0xc0, { NIB1R3, NIB2__, NIB3__, BLANK_ } , 0, 1 },
- /* 0x32c */ { 0x8a, { NIB2__, NIB1__, NIB3__, BLANK_ } , 0, 1 },
- /* 0x32e */ { 0x46, { NIB1__, NIB2__, BLANK_, NIB3__ } , 0, 1 },
- /* 0x330 */ { 0xd8, { NIB0R3, NIB1__, NIB2__, NIB3__ } , 1, 0 },
- /* 0x332 */ { 0xc4, { NIB1__, NIB0__, NIB3__, NIB2__ } , 1, 1 },
- /* 0x334 */ { 0x30, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x336 */ { 0x1a, { NIB0R1, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x338 */ { 0xd0, { BLANK_, BLANK_, BLANK_, NIB3__ } , 1, 1 },
- /* 0x33a */ { 0x60, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 1 },
- /* 0x33c */ { 0xf6, { NIB0R2, NIB1__, NIB2__, NIB3__ } , 0, 1 },
- /* 0x33e */ { 0x00, { NIB3__, NIB2__, NIB1__, NIB0__ } , 0, 1 },
- /* 0x340 */ { 0x90, { NIB0R1, NIB1__, NIB2__, NIB3__ } , 1, 0 },
- /* 0x342 */ { 0xfc, { NIB2__, NIB1__, NIB0__, NIB3__ } , 0, 0 },
- /* 0x344 */ { 0x08, { NIB3__, NIB2__, NIB0__, NIB1__ } , 0, 0 },
- /* 0x346 */ { 0xa8, { NIB2__, NIB3__, NIB1__, NIB0__ } , 1, 1 },
- /* 0x348 */ { 0x44, { NIB1R3, NIB2__, NIB3__, NIB0__ } , 1, 0 },
- /* 0x34a */ { 0x04, { NIB1__, NIB0__, NIB2__, NIB3__ } , 0, 1 },
- /* 0x34c */ { 0x3c, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x34e */ { 0xde, { NIB0__, NIB2__, NIB3__, NIB1__ } , 0, 0 },
- /* 0x350 */ { 0x72, { NIB3__, NIB2__, BLANK_, BLANK_ } , 0, 0 },
- /* 0x352 */ { 0x62, { NIB3R1, BLANK_, BLANK_, BLANK_ } , 1, 1 },
- /* 0x354 */ { 0x3a, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x356 */ { 0xba, { NIB2__, NIB1__, NIB3__, NIB0__ } , 0, 1 },
- /* 0x358 */ { 0x68, { NIB3__, NIB2__, BLANK_, BLANK_ } , 1, 1 },
- /* 0x35a */ { 0x76, { NIB3R1, NIB0__, NIB1__, NIB2__ } , 1, 0 },
- /* 0x35c */ { 0x9e, { NIB3__, NIB2__, BLANK_, BLANK_ } , 1, 1 },
- /* 0x35e */ { 0xc6, { NIB2__, NIB3__, NIB0__, NIB1__ } , 1, 1 },
- /* 0x360 */ { 0xe4, { NIB3R3, NIB0__, NIB1__, NIB2__ } , 0, 1 },
- /* 0x362 */ { 0x02, { BLANK_, NIB3__, BLANK_, BLANK_ } , 1, 0 },
- /* 0x364 */ { 0x6c, { NIB3__, NIB2__, BLANK_, BLANK_ } , 1, 0 },
- /* 0x366 */ { 0xec, { NIB0R3, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x368 */ { INPUT_PORT_C , { NIB3__, BLANK_, BLANK_, BLANK_ } , 0, 0 }, // dc.w $0368 ; 0x1000
- /* 0x36a */ { INPUT_PORT_A , { NIB3__, NIB0__, NIB1__, NIB2__ } , 0, 0 },
- /* 0x36c */ { INPUT_PORT_B , { NIB0__, BLANK_, BLANK_, BLANK_ } , 0, 0 },
- /* 0x36e */ { 0x0c, { NIB2__, NIB0__, NIB1__, NIB3__ } , 0, 1 },
- /* 0x370 */ { 0x80, { NIB1R1, NIB2__, NIB3__, NIB0__ } , 1, 0 },
- /* 0x372 */ { 0x82, { NIB3__, NIB0__, NIB1__, NIB2__ } , 1, 1 },
- /* 0x374 */ { 0xb8, { NIB3__, NIB2__, NIB0__, NIB1__ } , 0, 1 },
- /* 0x376 */ { 0x50, { NIB2R1, NIB3__, NIB0__, NIB1__ } , 0, 1 },
- /* 0x378 */ { 0x20, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x37a */ { 0xf4, { NIB0__, NIB2__, NIB3__, NIB1__ } , 0, 1 },
- /* 0x37c */ { 0x8c, { NIB2__, NIB1__, NIB3__, NIB0__ } , 1, 1 },
- /* 0x37e */ { 0xe6, { NIB2R3, NIB3__, NIB0__, NIB1__ } , 0, 1 },
- /* 0x380 */ { 0xda, { NIB2__, NIB3__, NIB0__, NIB1__ } , 1, 0 },
- /* 0x382 */ { 0xf2, { NIB2__, NIB3__, BLANK_, BLANK_ } , 1, 0 },
- /* 0x384 */ { 0xdc, { NIB1R2, NIB2__, NIB3__, NIB0__ } , 0, 0 },
- /* 0x386 */ { 0x9c, { NIB1__, NIB2__, NIB3__, NIB0__ } , 0, 0 },
- /* 0x388 */ { INPUT_PORT_A , { NIB1__, NIB2__, NIB3__, BLANK_ } , 0, 0 },
- /* 0x38a */ { INPUT_PORT_B , { NIB1__, BLANK_, BLANK_, BLANK_ } , 0, 0 },
- /* 0x38c */ { 0x28, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x38e */ { 0xb6, { NIB2__, NIB1__, BLANK_, NIB3__ } , 1, 1 },
- /* 0x390 */ { 0x2c, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x392 */ { 0xce, { NIB1R3, NIB2__, NIB3__, BLANK_ } , 1, 0 },
- /* 0x394 */ { 0x0e, { NIB2R2, NIB3__, BLANK_, BLANK_ } , 0, 1 },
- /* 0x396 */ { 0x5c, { NIB2__, NIB3__, NIB1__, NIB0__ } , 0, 0 },
- /* 0x398 */ { 0x52, { BLANK_, NIB3__, BLANK_, NIB2__ } , 1, 1 },
- /* 0x39a */ { 0x7e, { NIB3R3, NIB0__, NIB1__, NIB2__ } , 1, 1 },
- /* 0x39c */ { 0x6a, { NIB0__, NIB1__, NIB3__, NIB2__ } , 0, 0 },
- /* 0x39e */ { 0xa0, { NIB0__, NIB1__, NIB3__, NIB2__ } , 1, 0 },
- /* 0x3a0 */ { 0x52, { NIB3R3, BLANK_, BLANK_, BLANK_ } , 0, 1 },
- /* 0x3a2 */ { 0x94, { NIB2R3, NIB3__, NIB0__, NIB1__ } , 1, 0 },
- /* 0x3a4 */ { 0x2c, { NIB0__, NIB3__, NIB1__, NIB2__ } , 0, 0 },
- /* 0x3a6 */ { 0xc8, { NIB3R2, BLANK_, BLANK_, BLANK_ } , 1, 0 },
- /* 0x3a8 */ { 0x18, { NIB2R2, NIB3__, BLANK_, BLANK_ } , 0, 0 },
- /* 0x3aa */ { 0x56, { NIB3__, NIB2__, NIB1__, NIB0__ } , 1, 0 },
- /* 0x3ac */ { 0x54, { NIB0__, NIB1__, NIB3__, NIB2__ } , 0, 1 },
- /* 0x3ae */ { 0x58, { NIB1__, NIB0__, NIB3__, NIB2__ } , 0, 1 },
- /* 0x3b0 */ { INPUT_PORT_B , { NIB1__, BLANK_, BLANK_, BLANK_ } , 0, 0 },
- /* 0x3b2 */ { 0x14, { NIB1R1, NIB2__, NIB3__, BLANK_ } , 1, 0 },
- /* 0x3b4 */ { 0x38, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x3b6 */ { 0xf8, { NIB3__, BLANK_, BLANK_, BLANK_ } , 0, 0 },
- /* 0x3b8 */ { 0xb4, { NIB1__, NIB0__, NIB3__, NIB2__ } , 0, 0 },
- /* 0x3ba */ { 0xd6, { NIB3__, NIB2__, BLANK_, BLANK_ } , 1, 0 },
- /* 0x3bc */ { 0x5c, { NIB2__, NIB0__, NIB1__, NIB3__ } , 1, 0 },
- /* 0x3be */ { 0x1c, { NIB3__, NIB2__, BLANK_, BLANK_ } , 0, 0 },
- /* 0x3c0 */ { 0x22, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x3c2 */ { 0x66, { NIB0R2, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x3c4 */ { 0x8e, { NIB3__, NIB0__, NIB1__, NIB2__ } , 0, 1 },
- /* 0x3c6 */ { 0xf0, { NIB3__, BLANK_, BLANK_, BLANK_ } , 1, 1 },
- /* 0x3c8 */ { 0xae, { NIB3__, NIB2__, BLANK_, BLANK_ } , 0, 1 },
- /* 0x3ca */ { 0x1e, { NIB3R2, NIB0__, NIB1__, NIB2__ } , 1, 0 },
- /* 0x3cc */ { 0xee, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x3ce */ { 0xea, { NIB0__, NIB3__, NIB2__, NIB1__ } , 0, 1 },
- /* 0x3d0 */ { 0xe8, { NIB3__, NIB0__, NIB2__, NIB1__ } , 1, 1 },
- /* 0x3d2 */ { 0x88, { NIB1R2, NIB2__, NIB3__, BLANK_ } , 0, 1 },
- /* 0x3d4 */ { INPUT_PORT_C , { NIB1__, NIB0__, NIB3__, NIB2__ } , 0, 0 }, // dc.w $03D4 ; 0x0010
- /* 0x3d6 */ { 0x66, { NIB1__, NIB2__, BLANK_, NIB3__ } , 1, 1 },
- /* 0x3d8 */ { INPUT_PORT_B , { NIB3__, BLANK_, BLANK_, BLANK_ } , 0, 0 },
- /* 0x3da */ { 0xfa, { NIB3R3, NIB0__, NIB1__, NIB2__ } , 1, 0 },
- /* 0x3dc */ { 0x4c, { NIB2__, NIB1__, BLANK_, NIB3__ } , 0, 1 },
- /* 0x3de */ { 0x36, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x3e0 */ { 0xe0, { NIB1R2, NIB2__, NIB3__, BLANK_ } , 1, 1 },
- /* 0x3e2 */ { 0xd4, { NIB2R1, NIB3__, BLANK_, BLANK_ } , 0, 1 },
- /* 0x3e4 */ { 0xc8, { NIB1__, NIB2__, NIB3__, BLANK_ } , 0, 1 },
- /* 0x3e6 */ { 0xc2, { NIB1__, NIB2__, BLANK_, NIB3__ } , 1, 0 },
- /* 0x3e8 */ { 0x0a, { BLANK_, NIB2__, NIB3__, NIB1__ } , 1, 1 },
- /* 0x3ea */ { 0x9a, { NIB0R3, NIB1__, NIB2__, NIB3__ } , 0, 1 },
- /* 0x3ec */ { 0x7c, { NIB1R3, NIB2__, NIB3__, BLANK_ } , 1, 1 },
- /* 0x3ee */ { 0x4a, { NIB1R1, NIB2__, NIB3__, BLANK_ } , 0, 1 },
- /* 0x3f0 */ { 0xd2, { NIB3R2, BLANK_, BLANK_, BLANK_ } , 1, 1 },
- /* 0x3f2 */ { 0x48, { NIB3__, NIB2__, BLANK_, BLANK_ } , 0, 1 },
- /* 0x3f4 */ { 0x6e, { NIB1__, NIB2__, NIB3__, BLANK_ } , 0, 0 },
- /* 0x3f6 */ { 0xa6, { NIB1__, NIB3__, NIB0__, NIB2__ } , 0, 1 },
- /* 0x3f8 */ { 0x42, { NIB3R2, NIB0__, NIB1__, NIB2__ } , 1, 1 },
- /* 0x3fa */ { 0x5e, { NIB3__, BLANK_, BLANK_, BLANK_ } , 1, 1 },
- /* 0x3fc */ { 0xbc, { NIB3__, BLANK_, BLANK_, BLANK_ } , 0, 1 },
- /* 0x3fe */ { 0x10, { NIB2__, NIB3__, BLANK_, BLANK_ } , 0, 1 },
- /* 0x400 */ { 0x02, { NIB0R3, NIB1__, NIB2__, NIB3__ } , 1, 1 },
- /* 0x402 */ { 0x72, { NIB1__, NIB2__, NIB3__, NIB0__ } , 1, 0 },
- /* 0x404 */ { 0x74, { NIB1__, NIB0__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x406 */ { 0x96, { NIB0__, NIB3__, NIB2__, NIB1__ } , 1, 1 },
- /* 0x408 */ { 0x54, { BLANK_, NIB2__, NIB3__, NIB1__ } , 1, 0 },
- /* 0x40a */ { 0xda, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x40c */ { 0xd6, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x40e */ { 0x8a, { NIB1__, NIB2__, BLANK_, NIB3__ } , 1, 1 },
- /* 0x410 */ { 0xde, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x412 */ { 0xa4, { NIB1__, NIB2__, NIB0__, NIB3__ } , 1, 0 },
- /* 0x414 */ { 0xa2, { BLANK_, NIB3__, BLANK_, NIB2__ } , 1, 0 },
- /* 0x416 */ { 0xe4, { BLANK_, BLANK_, BLANK_, NIB3__ } , 0, 1 },
- /* 0x418 */ { 0x04, { NIB2R3, NIB3__, BLANK_, BLANK_ } , 1, 1 },
- /* 0x41a */ { 0x84, { NIB2R2, NIB3__, NIB0__, NIB1__ } , 1, 0 },
- /* 0x41c */ { 0x2a, { NIB2__, NIB3__, BLANK_, BLANK_ } , 0, 0 },
- /* 0x41e */ { 0x4c, { NIB0__, NIB2__, NIB3__, NIB1__ } , 0, 1 },
- /* 0x420 */ { 0x2e, { NIB1__, NIB0__, NIB3__, NIB2__ } , 0, 0 },
- /* 0x422 */ { 0x86, { NIB3__, BLANK_, BLANK_, BLANK_ } , 0, 1 },
- /* 0x424 */ { 0x60, { NIB0__, NIB1__, NIB3__, NIB2__ } , 0, 0 },
- /* 0x426 */ { 0xba, { NIB1__, NIB2__, NIB3__, NIB0__ } , 0, 1 },
- /* 0x428 */ { 0x8c, { NIB1R3, NIB2__, NIB3__, NIB0__ } , 1, 1 },
- /* 0x42a */ { 0xee, { NIB3__, NIB1__, NIB2__, NIB0__ } , 1, 0 },
- /* 0x42c */ { 0xac, { BLANK_, NIB2__, NIB3__, NIB1__ } , 0, 0 },
- /* 0x42e */ { 0x32, { NIB1__, NIB3__, NIB0__, NIB2__ } , 0, 1 },
- /* 0x430 */ { 0xd2, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x432 */ { 0x0e, { NIB0R3, NIB1__, NIB2__, NIB3__ } , 1, 0 },
- /* 0x434 */ { 0x06, { NIB3__, NIB1__, NIB2__, NIB0__ } , 1, 1 },
- /* 0x436 */ { 0x66, { NIB1R2, NIB2__, NIB3__, NIB0__ } , 1, 0 },
- /* 0x438 */ { 0xec, { NIB0__, NIB2__, NIB3__, NIB1__ } , 0, 0 },
- /* 0x43a */ { 0xfe, { NIB0R3, NIB1__, NIB2__, NIB3__ } , 0, 1 },
- /* 0x43c */ { INPUT_PORT_B , { BLANK_, BLANK_, BLANK_, BLANK_ } , 0, 0 }, // this address always seems to return 0, is it a port with all bits masked out? I'm going to assume it's a 'B' port (4-bit) with mask applied to those 4 bits so they always return 0 due to a design flaw, that would make 21 of each port type.
- /* 0x43e */ { 0x7a, { NIB0R1, NIB1__, NIB2__, NIB3__ } , 1, 0 },
- /* 0x440 */ { 0xfc, { NIB0R1, NIB1__, NIB2__, NIB3__ } , 1, 1 },
- /* 0x442 */ { 0x10, { NIB0R1, NIB1__, NIB2__, NIB3__ } , 0, 1 },
- /* 0x444 */ { 0x66, { NIB2R1, NIB3__, BLANK_, BLANK_ } , 0, 0 },
- /* 0x446 */ { 0x16, { NIB2__, NIB3__, BLANK_, BLANK_ } , 1, 1 },
- /* 0x448 */ { 0x90, { NIB1__, NIB0__, NIB2__, NIB3__ } , 1, 0 },
- /* 0x44a */ { 0xb4, { NIB3R3, BLANK_, BLANK_, BLANK_ } , 0, 1 },
- /* 0x44c */ { INPUT_PORT_B, { NIB3R1, BLANK_, BLANK_, BLANK_ } , 0, 1 }, //dc.w $044C ; nand
- /* 0x44e */ { 0x44, { NIB3__, NIB2__, BLANK_, BLANK_ } , 1, 0 },
- /* 0x450 */ { INPUT_PORT_C , { NIB2__, NIB3__, BLANK_, BLANK_ } , 1, 0 }, // dc.w $0450 ; 0x0100 dc.w $0450 ; 0x0100 ; xor
- /* 0x452 */ { 0x30, { NIB3R1, BLANK_, BLANK_, BLANK_ } , 0, 0 },
- /* 0x454 */ { 0x82, { NIB3__, NIB0__, NIB2__, NIB1__ } , 1, 0 },
- /* 0x456 */ { 0x26, { NIB0R1, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x458 */ { 0x52, { NIB2R1, NIB3__, NIB0__, NIB1__ } , 0, 1 },
- /* 0x45a */ { 0xc6, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x45c */ { 0xd8, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x45e */ { 0x18, { NIB3R1, BLANK_, BLANK_, BLANK_ } , 1, 0 },
- /* 0x460 */ { 0xc8, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x462 */ { 0x64, { NIB2R3, NIB3__, NIB0__, NIB1__ } , 0, 1 },
- /* 0x464 */ { 0xbe, { NIB2__, NIB1__, NIB3__, NIB0__ } , 1, 1 },
- /* 0x466 */ { 0x42, { NIB3__, NIB2__, BLANK_, BLANK_ } , 0, 1 },
- /* 0x468 */ { 0xc0, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x46a */ { 0x38, { NIB1R1, NIB2__, NIB3__, BLANK_ } , 0, 1 },
- /* 0x46c */ { 0xd0, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x46e */ { 0x9c, { NIB2R1, NIB3__, BLANK_, BLANK_ } , 0, 1 },
- /* 0x470 */ { 0xa8, { NIB0__, NIB1__, NIB3__, NIB2__ } , 0, 1 },
- /* 0x472 */ { 0x4a, { NIB1__, NIB2__, NIB3__, BLANK_ } , 1, 1 },
- /* 0x474 */ { 0x1c, { NIB2__, NIB0__, NIB1__, NIB3__ } , 0, 0 },
- /* 0x476 */ { 0xf0, { NIB3__, NIB2__, BLANK_, BLANK_ } , 1, 1 },
- /* 0x478 */ { 0xb6, { NIB3R1, BLANK_, BLANK_, BLANK_ } , 1, 1 },
- /* 0x47a */ { 0xc2, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x47c */ { 0x7e, { NIB3R3, BLANK_, BLANK_, BLANK_ } , 1, 0 },
- /* 0x47e */ { INPUT_PORT_B , { NIB3__, BLANK_, BLANK_, BLANK_ } , 0, 0 },
- /* 0x480 */ { 0x5a, { NIB2__, NIB1__, NIB3__, NIB0__ } , 0, 1 },
- /* 0x482 */ { 0x5c, { NIB1__, NIB2__, BLANK_, NIB3__ } , 0, 0 },
- /* 0x484 */ { 0x5a, { NIB3R1, NIB0__, NIB1__, NIB2__ } , 0, 1 },
- /* 0x486 */ { 0x06, { NIB0R2, NIB1__, NIB2__, NIB3__ } , 1, 0 },
- /* 0x488 */ { 0x2c, { NIB0R3, NIB1__, NIB2__, NIB3__ } , 1, 0 },
- /* 0x48a */ { 0x76, { NIB3__, NIB2__, BLANK_, BLANK_ } , 1, 0 },
- /* 0x48c */ { 0xbc, { NIB1R1, NIB2__, NIB3__, BLANK_ } , 1, 1 },
- /* 0x48e */ { 0x46, { NIB3__, NIB2__, NIB1__, NIB0__ } , 0, 0 },
- /* 0x490 */ { 0x66, { NIB2R2, NIB3__, NIB0__, NIB1__ } , 0, 1 },
- /* 0x492 */ { 0xea, { NIB1__, NIB0__, NIB2__, NIB3__ } , 0, 1 },
- /* 0x494 */ { 0x9a, { NIB1R1, NIB2__, NIB3__, NIB0__ } , 1, 0 },
- /* 0x496 */ { 0xb8, { NIB1__, NIB3__, NIB0__, NIB2__ } , 1, 1 },
- /* 0x498 */ { 0x36, { NIB2R3, NIB3__, BLANK_, BLANK_ } , 0, 1 },
- /* 0x49a */ { 0x56, { NIB0__, NIB1__, NIB3__, NIB2__ } , 1, 0 },
- /* 0x49c */ { 0x6c, { BLANK_, NIB3__, BLANK_, BLANK_ } , 1, 1 },
- /* 0x49e */ { 0x12, { NIB2__, NIB3__, BLANK_, BLANK_ } , 0, 0 },
- /* 0x4a0 */ { 0xa4, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x4a2 */ { 0xa8, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x4a4 */ { 0xce, { NIB3__, NIB1__, NIB2__, NIB0__ } , 1, 1 },
- /* 0x4a6 */ { 0x8c, { NIB1__, NIB0__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x4a8 */ { 0xb0, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x4aa */ { 0x48, { NIB1__, NIB2__, NIB3__, NIB0__ } , 1, 0 },
- /* 0x4ac */ { INPUT_PORT_A , { NIB3__, NIB1__, NIB2__, NIB0__ } , 0, 0 },
- /* 0x4ae */ { 0x92, { NIB3__, BLANK_, BLANK_, BLANK_ } , 1, 0 },
- /* 0x4b0 */ { 0x10, { NIB2R2, NIB3__, BLANK_, BLANK_ } , 1, 0 },
- /* 0x4b2 */ { 0x74, { NIB3__, NIB0__, NIB1__, NIB2__ } , 0, 0 },
- /* 0x4b4 */ { 0x08, { NIB1R2, NIB2__, NIB3__, BLANK_ } , 0, 0 },
- /* 0x4b6 */ { 0x94, { NIB3__, NIB2__, NIB1__, NIB0__ } , 1, 0 },
- /* 0x4b8 */ { 0x46, { NIB2__, NIB3__, NIB1__, NIB0__ } , 1, 0 },
- /* 0x4ba */ { 0x24, { NIB1R2, NIB2__, NIB3__, NIB0__ } , 0, 1 },
- /* 0x4bc */ { 0x42, { NIB1R3, NIB2__, NIB3__, BLANK_ } , 0, 0 },
- /* 0x4be */ { 0xa6, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x4c0 */ { 0x08, { NIB1__, NIB0__, NIB3__, NIB2__ } , 0, 1 },
- /* 0x4c2 */ { 0x80, { NIB1__, NIB2__, NIB0__, NIB3__ } , 0, 1 },
- /* 0x4c4 */ { 0x3c, { NIB3__, BLANK_, BLANK_, BLANK_ } , 0, 1 },
- /* 0x4c6 */ { 0x94, { NIB3R2, NIB0__, NIB1__, NIB2__ } , 1, 1 },
- /* 0x4c8 */ { INPUT_PORT_A , { NIB1__, NIB0__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x4ca */ { 0x20, { NIB2__, NIB1__, NIB3__, BLANK_ } , 1, 1 },
- /* 0x4cc */ { 0xf6, { NIB2__, NIB1__, NIB3__, NIB0__ } , 0, 0 },
- /* 0x4ce */ { 0x66, { NIB2__, NIB3__, NIB1__, NIB0__ } , 1, 1 },
- /* 0x4d0 */ { 0xe2, { NIB2R1, NIB3__, BLANK_, BLANK_ } , 1, 1 },
- /* 0x4d2 */ { INPUT_PORT_B , { NIB0R2, BLANK_, BLANK_, BLANK_ } , 0, 0 },
- /* 0x4d4 */ { 0xd4, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x4d6 */ { 0xa0, { NIB3__, NIB1__, NIB2__, NIB0__ } , 0, 0 },
- /* 0x4d8 */ { 0x48, { NIB0__, NIB3__, NIB1__, NIB2__ } , 0, 0 },
- /* 0x4da */ { 0xca, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x4dc */ { 0x62, { NIB2__, NIB3__, BLANK_, BLANK_ } , 0, 0 },
- /* 0x4de */ { 0x70, { NIB3R2, BLANK_, BLANK_, BLANK_ } , 1, 0 },
- /* 0x4e0 */ { 0xfa, { NIB3__, NIB2__, BLANK_, BLANK_ } , 1, 0 },
- /* 0x4e2 */ { 0x9e, { NIB0R3, NIB1__, NIB2__, NIB3__ } , 1, 1 },
- /* 0x4e4 */ { 0x40, { NIB1__, NIB2__, NIB3__, BLANK_ } , 0, 1 },
- /* 0x4e6 */ { 0x68, { NIB0R2, NIB1__, NIB2__, NIB3__ } , 1, 1 },
- /* 0x4e8 */ { 0x88, { NIB1__, NIB2__, BLANK_, NIB3__ } , 0, 1 },
- /* 0x4ea */ { 0x3e, { NIB3R3, NIB0__, NIB1__, NIB2__ } , 1, 0 },
- /* 0x4ec */ { 0x7c, { NIB2R3, NIB3__, NIB0__, NIB1__ } , 0, 0 },
- /* 0x4ee */ { 0xcc, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x4f0 */ { 0x34, { BLANK_, NIB3__, BLANK_, BLANK_ } , 1, 0 },
- /* 0x4f2 */ { INPUT_PORT_A , { NIB0__, NIB1__, NIB3__, NIB2__ } , 0, 0 }, // dc.w $04F2
- /* 0x4f4 */ { 0x28, { NIB2R1, NIB3__, NIB0__, NIB1__ } , 0, 0 },
- /* 0x4f6 */ { 0xe6, { NIB3__, NIB0__, NIB2__, NIB1__ } , 0, 0 },
- /* 0x4f8 */ { 0x6a, { NIB1__, NIB0__, NIB2__, NIB3__ } , 1, 1 },
- /* 0x4fa */ { 0xaa, { NIB1__, NIB3__, NIB0__, NIB2__ } , 0, 1 },
- /* 0x4fc */ { 0x50, { NIB2R3, NIB3__, BLANK_, BLANK_ } , 1, 1 },
- /* 0x4fe */ { 0xa6, { NIB2__, NIB0__, NIB1__, NIB3__ } , 0, 1 },
- /* 0x500 */ { 0xf0, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x502 */ { 0x88, { NIB3__, NIB0__, NIB2__, NIB1__ } , 1, 1 },
- /* 0x504 */ { 0x5c, { NIB3__, NIB2__, BLANK_, BLANK_ } , 1, 1 },
- /* 0x506 */ { INPUT_PORT_C , { NIB0R2, NIB1__, NIB2__, NIB3__ } , 0, 0 }, // dc.w $0506 ; 0x0004
- /* 0x508 */ { INPUT_PORT_A , { NIB2__, NIB3__, BLANK_, BLANK_ } , 0, 0 },
- /* 0x50a */ { 0xc0, { BLANK_, NIB3__, BLANK_, NIB2__ } , 0, 1 },
- /* 0x50c */ { 0x26, { NIB1__, NIB2__, NIB3__, NIB0__ } , 1, 1 },
- /* 0x50e */ { 0x72, { NIB3__, NIB2__, NIB1__, NIB0__ } , 1, 1 },
- /* 0x510 */ { 0x8a, { NIB2__, NIB0__, NIB1__, NIB3__ } , 1, 1 },
- /* 0x512 */ { 0x06, { NIB3__, NIB2__, NIB0__, NIB1__ } , 0, 0 },
- /* 0x514 */ { 0x32, { NIB1R2, NIB2__, NIB3__, BLANK_ } , 0, 1 },
- /* 0x516 */ { 0xb6, { NIB1R2, NIB2__, NIB3__, BLANK_ } , 1, 1 },
- /* 0x518 */ { 0x02, { BLANK_, NIB3__, BLANK_, BLANK_ } , 0, 0 },
- /* 0x51a */ { 0xb2, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 1 },
- /* 0x51c */ { 0x0a, { NIB3R2, BLANK_, BLANK_, BLANK_ } , 0, 1 },
- /* 0x51e */ { 0xd6, { NIB1R3, NIB2__, NIB3__, BLANK_ } , 0, 0 },
- /* 0x520 */ { 0xaa, { NIB2R1, NIB3__, BLANK_, BLANK_ } , 1, 0 },
- /* 0x522 */ { 0xca, { NIB1R3, NIB2__, NIB3__, NIB0__ } , 0, 1 },
- /* 0x524 */ { 0x54, { NIB1__, NIB2__, NIB3__, NIB0__ } , 0, 0 },
- /* 0x526 */ { 0x08, { NIB2R2, NIB3__, BLANK_, BLANK_ } , 0, 0 },
- /* 0x528 */ { INPUT_PORT_B , { NIB2__, BLANK_, BLANK_, BLANK_ } , 0, 0 },
- /* 0x52a */ { 0x8e, { BLANK_, NIB3__, BLANK_, BLANK_ } , 1, 1 },
- /* 0x52c */ { 0xe0, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x52e */ { 0xba, { NIB1R3, NIB2__, NIB3__, NIB0__ } , 1, 0 },
- /* 0x530 */ { 0x18, { NIB2__, NIB3__, NIB1__, NIB0__ } , 0, 1 },
- /* 0x532 */ { 0xb0, { NIB3__, NIB2__, NIB0__, NIB1__ } , 0, 1 },
- /* 0x534 */ { 0x1a, { NIB1__, NIB0__, NIB2__, NIB3__ } , 1, 1 },
- /* 0x536 */ { 0x7a, { NIB1__, NIB0__, NIB2__, NIB3__ } , 0, 1 },
- /* 0x538 */ { 0x3c, { NIB3__, BLANK_, BLANK_, BLANK_ } , 0, 0 },
- /* 0x53a */ { 0x0c, { NIB3__, NIB0__, NIB1__, NIB2__ } , 0, 1 },
- /* 0x53c */ { 0xfa, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x53e */ { 0x9e, { NIB3R2, BLANK_, BLANK_, BLANK_ } , 0, 0 },
- /* 0x540 */ { 0x3e, { NIB0__, NIB3__, NIB2__, NIB1__ } , 1, 0 },
- /* 0x542 */ { 0x9c, { NIB2R2, NIB3__, BLANK_, BLANK_ } , 1, 1 },
- /* 0x544 */ { 0x5a, { NIB2R3, NIB3__, NIB0__, NIB1__ } , 0, 0 },
- /* 0x546 */ { 0x62, { NIB2__, NIB1__, BLANK_, NIB3__ } , 0, 1 },
- /* 0x548 */ { 0xf6, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x54a */ { 0xde, { NIB1__, NIB0__, NIB3__, NIB2__ } , 1, 1 },
- /* 0x54c */ { 0x38, { NIB2__, NIB0__, NIB1__, NIB3__ } , 1, 0 },
- /* 0x54e */ { 0xe6, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x550 */ { 0xa2, { NIB2R3, NIB3__, BLANK_, BLANK_ } , 0, 1 },
- /* 0x552 */ { 0x4c, { NIB1R1, NIB2__, NIB3__, NIB0__ } , 1, 0 },
- /* 0x554 */ { 0xae, { BLANK_, NIB3__, BLANK_, BLANK_ } , 1, 1 },
- /* 0x556 */ { 0xac, { NIB2R1, NIB3__, NIB0__, NIB1__ } , 1, 0 },
- /* 0x558 */ { 0x68, { NIB3__, BLANK_, BLANK_, BLANK_ } , 1, 0 },
- /* 0x55a */ { 0xf2, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x55c */ { 0x66, { NIB1R1, NIB2__, NIB3__, BLANK_ } , 1, 1 },
- /* 0x55e */ { 0xea, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x560 */ { 0x82, { NIB3R3, BLANK_, BLANK_, BLANK_ } , 1, 1 },
- /* 0x562 */ { INPUT_PORT_B , { NIB0__, BLANK_, BLANK_, BLANK_ } , 1, 0 }, // dc.w $0562 ; xor
- /* 0x564 */ { 0x80, { NIB1R2, NIB2__, NIB3__, BLANK_ } , 0, 0 },
- /* 0x566 */ { 0xf8, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x568 */ { 0x6c, { NIB3R3, NIB0__, NIB1__, NIB2__ } , 0, 0 },
- /* 0x56a */ { 0x7c, { NIB3R3, NIB0__, NIB1__, NIB2__ } , 0, 1 },
- /* 0x56c */ { INPUT_PORT_A , { NIB1__, NIB2__, NIB3__, NIB0__ } , 0, 0 },
- /* 0x56e */ { 0x98, { NIB3__, NIB0__, NIB1__, NIB2__ } , 0, 0 },
- /* 0x570 */ { 0x24, { NIB2__, NIB1__, BLANK_, NIB3__ } , 1, 0 },
- /* 0x572 */ { 0xc2, { NIB1__, NIB3__, NIB0__, NIB2__ } , 1, 1 },
- /* 0x574 */ { 0xdc, { NIB0R2, NIB1__, NIB2__, NIB3__ } , 1, 1 },
- /* 0x576 */ { 0x52, { NIB2__, NIB1__, BLANK_, NIB3__ } , 0, 0 },
- /* 0x578 */ { 0x2a, { NIB2R2, NIB3__, BLANK_, BLANK_ } , 0, 1 },
- /* 0x57a */ { 0xb8, { NIB3__, NIB2__, BLANK_, BLANK_ } , 0, 0 },
- /* 0x57c */ { 0x28, { NIB1__, NIB2__, BLANK_, NIB3__ } , 0, 0 },
- /* 0x57e */ { 0xd8, { NIB1__, NIB2__, NIB0__, NIB3__ } , 0, 0 },
- /* 0x580 */ { 0x0c, { NIB2R1, NIB3__, NIB0__, NIB1__ } , 0, 0 },
- /* 0x582 */ { 0x8e, { NIB3__, NIB2__, NIB1__, NIB0__ } , 0, 0 },
- /* 0x584 */ { 0x22, { NIB1R3, NIB2__, NIB3__, BLANK_ } , 0, 1 },
- /* 0x586 */ { 0x00, { NIB2__, NIB3__, BLANK_, BLANK_ } , 1, 1 },
- /* 0x588 */ { 0x04, { NIB0__, NIB3__, NIB1__, NIB2__ } , 1, 1 },
- /* 0x58a */ { 0x22, { NIB3__, NIB2__, BLANK_, BLANK_ } , 1, 0 },
- /* 0x58c */ { 0xe8, { NIB1R3, NIB2__, NIB3__, BLANK_ } , 1, 0 },
- /* 0x58e */ { 0x74, { NIB1R3, NIB2__, NIB3__, NIB0__ } , 0, 0 },
- /* 0x590 */ { 0x0e, { NIB3R3, NIB0__, NIB1__, NIB2__ } , 1, 0 },
- /* 0x592 */ { 0x66, { BLANK_, NIB2__, NIB3__, NIB1__ } , 1, 1 },
- /* 0x594 */ { 0x40, { NIB2R2, NIB3__, BLANK_, BLANK_ } , 1, 0 },
- /* 0x596 */ { 0xc8, { NIB3R2, BLANK_, BLANK_, BLANK_ } , 1, 1 },
- /* 0x598 */ { 0x70, { NIB1R2, NIB2__, NIB3__, NIB0__ } , 1, 1 },
- /* 0x59a */ { 0x16, { NIB0__, NIB1__, NIB3__, NIB2__ } , 1, 0 },
- /* 0x59c */ { 0x12, { NIB0__, NIB3__, NIB2__, NIB1__ } , 0, 0 },
- /* 0x59e */ { 0x36, { NIB2__, NIB3__, BLANK_, BLANK_ } , 1, 0 },
- /* 0x5a0 */ { 0x5e, { NIB3__, BLANK_, BLANK_, BLANK_ } , 0, 1 },
- /* 0x5a2 */ { 0x24, { NIB0__, NIB3__, NIB1__, NIB2__ } , 0, 1 },
- /* 0x5a4 */ { 0xce, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x5a6 */ { 0xb0, { NIB3__, NIB2__, NIB0__, NIB1__ } , 1, 0 },
- /* 0x5a8 */ { 0xf2, { NIB3__, BLANK_, BLANK_, BLANK_ } , 1, 0 },
- /* 0x5aa */ { 0x98, { NIB2R3, NIB3__, NIB0__, NIB1__ } , 1, 1 },
- /* 0x5ac */ { 0x6e, { NIB0__, NIB2__, NIB3__, NIB1__ } , 1, 1 },
- /* 0x5ae */ { 0xdc, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x5b0 */ { 0xc4, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x5b2 */ { INPUT_PORT_B , { NIB0__, BLANK_, BLANK_, BLANK_ } , 0, 0 },
- /* 0x5b4 */ { 0xe0, { NIB1__, NIB3__, NIB0__, NIB2__ } , 0, 0 },
- /* 0x5b6 */ { 0x92, { NIB1__, NIB2__, NIB3__, BLANK_ } , 1, 0 },
- /* 0x5b8 */ { 0x4e, { NIB0__, NIB2__, NIB3__, NIB1__ } , 1, 0 },
- /* 0x5ba */ { 0xf4, { NIB0R2, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x5bc */ { 0x78, { NIB2__, NIB1__, NIB0__, NIB3__ } , 1, 0 },
- /* 0x5be */ { 0x58, { NIB3__, NIB0__, NIB2__, NIB1__ } , 0, 1 },
- /* 0x5c0 */ { 0xfe, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x5c2 */ { 0x4a, { NIB1__, NIB3__, NIB0__, NIB2__ } , 1, 0 },
- /* 0x5c4 */ { 0x3a, { NIB2R2, NIB3__, NIB0__, NIB1__ } , 1, 1 },
- /* 0x5c6 */ { 0x2c, { NIB0__, NIB1__, NIB2__, NIB3__ } , 1, 0 },
- /* 0x5c8 */ { 0x96, { NIB3__, NIB2__, BLANK_, BLANK_ } , 0, 1 },
- /* 0x5ca */ { 0x20, { NIB1R1, NIB2__, NIB3__, NIB0__ } , 1, 1 },
- /* 0x5cc */ { 0xc6, { NIB1__, NIB0__, NIB3__, NIB2__ } , 0, 0 },
- /* 0x5ce */ { 0xa8, { NIB3__, NIB0__, NIB1__, NIB2__ } , 1, 1 },
- /* 0x5d0 */ { 0xe2, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x5d2 */ { 0x66, { NIB2__, NIB3__, NIB1__, NIB0__ } , 1, 0 },
- /* 0x5d4 */ { 0xf4, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x5d6 */ { 0xec, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x5d8 */ { 0xbe, { NIB0R2, NIB1__, NIB2__, NIB3__ } , 1, 0 },
- /* 0x5da */ { 0xe8, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x5dc */ { 0x6e, { NIB1R2, NIB2__, NIB3__, BLANK_ } , 1, 0 },
- /* 0x5de */ { 0x1e, { BLANK_, BLANK_, BLANK_, NIB3__ } , 1, 0 },
- /* 0x5e0 */ { 0x14, { NIB2__, NIB1__, NIB0__, NIB3__ } , 0, 0 },
- /* 0x5e2 */ { 0x84, { NIB2R3, NIB3__, BLANK_, BLANK_ } , 0, 0 },
- /* 0x5e4 */ { 0xa0, { NIB0__, NIB3__, NIB1__, NIB2__ } , 1, 0 },
- /* 0x5e6 */ { 0x34, { NIB3__, NIB2__, NIB0__, NIB1__ } , 1, 1 },
- /* 0x5e8 */ { 0xe4, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x5ea */ { 0x58, { NIB3__, BLANK_, BLANK_, BLANK_ } , 1, 1 },
- /* 0x5ec */ { INPUT_PORT_B , { NIB2__, BLANK_, BLANK_, BLANK_ } , 0, 0 },
- /* 0x5ee */ { 0x42, { NIB2R2, NIB3__, NIB0__, NIB1__ } , 0, 0 },
- /* 0x5f0 */ { 0x8c, { NIB0R2, NIB1__, NIB2__, NIB3__ } , 0, 1 },
- /* 0x5f2 */ { 0x10, { NIB0__, NIB1__, NIB2__, NIB3__ } , 1, 1 },
- /* 0x5f4 */ { INPUT_PORT_C , { NIB2__, NIB3__, BLANK_, BLANK_ } , 0, 0 }, // dc.w $05F4 ; 0x0100
- /* 0x5f6 */ { 0x04, { NIB1__, NIB0__, NIB3__, NIB2__ } , 1, 0 },
- /* 0x5f8 */ { 0x4e, { NIB1R3, NIB2__, NIB3__, BLANK_ } , 1, 1 },
- /* 0x5fa */ { 0xd2, { NIB3__, BLANK_, BLANK_, BLANK_ } , 0, 0 },
- /* 0x5fc */ { 0x7e, { NIB2R1, NIB3__, NIB0__, NIB1__ } , 1, 1 },
- /* 0x5fe */ { 0xcc, { NIB2R3, NIB3__, BLANK_, BLANK_ } , 1, 0 },
- /* 0x600 */ { 0xc6, { NIB3__, NIB2__, BLANK_, BLANK_ } , 1, 1 },
- /* 0x602 */ { 0x20, { NIB2R1, NIB3__, BLANK_, BLANK_ } , 0, 0 },
- /* 0x604 */ { 0x36, { NIB2__, NIB1__, NIB3__, NIB0__ } , 1, 1 },
- /* 0x606 */ { 0xfc, { NIB2R2, NIB3__, NIB0__, NIB1__ } , 0, 0 },
- /* 0x608 */ { 0x1c, { NIB0__, NIB3__, NIB2__, NIB1__ } , 1, 0 },
- /* 0x60a */ { 0xca, { NIB0R3, NIB1__, NIB2__, NIB3__ } , 0, 1 },
- /* 0x60c */ { INPUT_PORT_A , { NIB1__, NIB0__, NIB3__, NIB2__ } , 0, 0 },
- /* 0x60e */ { 0xa0, { BLANK_, NIB2__, NIB3__, NIB1__ } , 0, 0 },
- /* 0x610 */ { 0xa4, { NIB1R2, NIB2__, NIB3__, NIB0__ } , 1, 1 },
- /* 0x612 */ { 0x64, { NIB2R1, NIB3__, NIB0__, NIB1__ } , 1, 0 },
- /* 0x614 */ { 0x96, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x616 */ { 0x7e, { NIB2__, NIB3__, BLANK_, BLANK_ } , 1, 0 },
- /* 0x618 */ { 0x0c, { NIB2R1, NIB3__, BLANK_, BLANK_ } , 0, 1 },
- /* 0x61a */ { 0x38, { NIB3__, NIB0__, NIB2__, NIB1__ } , 1, 1 },
- /* 0x61c */ { 0x66, { NIB3R3, BLANK_, BLANK_, BLANK_ } , 1, 0 },
- /* 0x61e */ { 0x22, { NIB3R1, BLANK_, BLANK_, BLANK_ } , 0, 1 },
- /* 0x620 */ { 0x1a, { NIB1__, NIB0__, NIB2__, NIB3__ } , 1, 0 },
- /* 0x622 */ { 0xae, { NIB3R1, BLANK_, BLANK_, BLANK_ } , 1, 1 },
- /* 0x624 */ { 0x9a, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x626 */ { 0x4e, { NIB2__, NIB3__, BLANK_, BLANK_ } , 1, 1 },
- /* 0x628 */ { 0x5a, { NIB0R2, NIB1__, NIB2__, NIB3__ } , 0, 1 },
- /* 0x62a */ { 0x8a, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x62c */ { INPUT_PORT_A , { NIB1__, NIB2__, BLANK_, NIB3__ } , 0, 1 }, // dc.w $062C ; nand
- /* 0x62e */ { 0x58, { NIB1R2, NIB2__, NIB3__, NIB0__ } , 1, 0 },
- /* 0x630 */ { INPUT_PORT_B , { NIB0__, BLANK_, BLANK_, BLANK_ } , 0, 1 }, // dc.w $0630 ; nand
- /* 0x632 */ { 0x6a, { NIB1R3, NIB2__, NIB3__, NIB0__ } , 0, 0 },
- /* 0x634 */ { 0xc2, { NIB2__, NIB0__, NIB1__, NIB3__ } , 1, 0 },
- /* 0x636 */ { 0xc4, { NIB2R2, NIB3__, BLANK_, BLANK_ } , 1, 1 },
- /* 0x638 */ { 0x94, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x63a */ { 0x3c, { NIB3__, BLANK_, BLANK_, BLANK_ } , 0, 0 },
- /* 0x63c */ { 0x74, { NIB0__, NIB3__, NIB1__, NIB2__ } , 1, 1 },
- /* 0x63e */ { 0x0a, { NIB1R2, NIB2__, NIB3__, NIB0__ } , 0, 0 },
- /* 0x640 */ { 0x30, { BLANK_, NIB3__, BLANK_, BLANK_ } , 0, 0 },
- /* 0x642 */ { 0x68, { NIB1__, NIB0__, NIB2__, NIB3__ } , 1, 0 },
- /* 0x644 */ { 0x40, { NIB2__, NIB3__, NIB1__, NIB0__ } , 0, 1 },
- /* 0x646 */ { 0xda, { NIB2__, NIB3__, NIB1__, NIB0__ } , 0, 0 },
- /* 0x648 */ { 0x60, { NIB1R2, NIB2__, NIB3__, BLANK_ } , 1, 1 },
- /* 0x64a */ { 0xde, { NIB3R2, NIB0__, NIB1__, NIB2__ } , 0, 1 },
- /* 0x64c */ { 0x04, { NIB3R2, BLANK_, BLANK_, BLANK_ } , 0, 0 },
- /* 0x64e */ { 0x86, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x650 */ { 0x78, { BLANK_, NIB2__, NIB3__, NIB1__ } , 1, 0 },
- /* 0x652 */ { 0x4a, { NIB2__, NIB3__, BLANK_, BLANK_ } , 1, 0 },
- /* 0x654 */ { 0x4c, { NIB1__, NIB2__, NIB0__, NIB3__ } , 1, 0 },
- /* 0x656 */ { 0x2e, { NIB1R1, NIB2__, NIB3__, NIB0__ } , 1, 1 },
- /* 0x658 */ { 0xbc, { NIB2__, NIB3__, NIB0__, NIB1__ } , 1, 0 },
- /* 0x65a */ { 0xc0, { NIB3__, NIB0__, NIB1__, NIB2__ } , 0, 1 },
- /* 0x65c */ { 0x44, { NIB1__, NIB2__, NIB3__, NIB0__ } , 1, 1 },
- /* 0x65e */ { 0x9c, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x660 */ { 0x48, { NIB2__, NIB1__, NIB3__, BLANK_ } , 0, 1 },
- /* 0x662 */ { 0x8c, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x664 */ { 0x9e, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x666 */ { 0xfe, { NIB2R3, NIB3__, NIB0__, NIB1__ } , 0, 1 },
- /* 0x668 */ { 0x5e, { NIB1R1, NIB2__, NIB3__, NIB0__ } , 0, 0 },
- /* 0x66a */ { 0x16, { NIB2__, NIB3__, NIB0__, NIB1__ } , 0, 0 },
- /* 0x66c */ { 0xdc, { BLANK_, NIB3__, BLANK_, BLANK_ } , 1, 1 },
- /* 0x66e */ { 0xec, { NIB3R1, BLANK_, BLANK_, BLANK_ } , 1, 0 },
- /* 0x670 */ { 0xf4, { NIB1R1, NIB2__, NIB3__, BLANK_ } , 0, 1 },
- /* 0x672 */ { 0x6c, { NIB1__, NIB0__, NIB3__, NIB2__ } , 0, 1 },
- /* 0x674 */ { INPUT_PORT_C , { NIB1__, NIB2__, NIB3__, BLANK_ } , 0, 0 }, // dc.w $0674 ; 0x0010
- /* 0x676 */ { 0xd2, { NIB0__, NIB1__, NIB2__, NIB3__ } , 1, 1 },
- /* 0x678 */ { 0x72, { BLANK_, NIB3__, BLANK_, BLANK_ } , 0, 1 },
- /* 0x67a */ { 0x28, { NIB0__, NIB3__, NIB1__, NIB2__ } , 0, 0 },
- /* 0x67c */ { 0x1e, { NIB2__, NIB3__, BLANK_, BLANK_ } , 0, 1 },
- /* 0x67e */ { INPUT_PORT_B , { NIB3R1, BLANK_, BLANK_, BLANK_ } , 0, 0 },
- /* 0x680 */ { 0x7a, { NIB0__, NIB3__, NIB1__, NIB2__ } , 1, 1 },
- /* 0x682 */ { 0xba, { NIB3__, NIB0__, NIB1__, NIB2__ } , 0, 1 },
- /* 0x684 */ { 0xd8, { NIB0__, NIB3__, NIB2__, NIB1__ } , 0, 0 },
- /* 0x686 */ { 0x46, { NIB1__, NIB3__, NIB0__, NIB2__ } , 0, 0 },
- /* 0x688 */ { 0xe4, { NIB1__, NIB2__, NIB3__, NIB0__ } , 1, 0 },
- /* 0x68a */ { 0xd0, { NIB2__, NIB3__, NIB0__, NIB1__ } , 0, 0 },
- /* 0x68c */ { 0x50, { NIB1R2, NIB2__, NIB3__, NIB0__ } , 0, 1 },
- /* 0x68e */ { 0x92, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x690 */ { 0x10, { NIB2R1, NIB3__, BLANK_, BLANK_ } , 0, 0 },
- /* 0x692 */ { 0x88, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x694 */ { 0xf2, { NIB2__, NIB0__, NIB1__, NIB3__ } , 0, 0 },
- /* 0x696 */ { 0xce, { NIB2__, NIB1__, BLANK_, NIB3__ } , 1, 0 },
- /* 0x698 */ { 0x12, { NIB2__, NIB1__, BLANK_, NIB3__ } , 1, 1 },
- /* 0x69a */ { 0x3e, { BLANK_, NIB3__, BLANK_, BLANK_ } , 0, 0 },
- /* 0x69c */ { 0x06, { NIB2__, NIB1__, NIB0__, NIB3__ } , 1, 1 },
- /* 0x69e */ { 0xe8, { NIB1R2, NIB2__, NIB3__, BLANK_ } , 0, 0 },
- /* 0x6a0 */ { 0xb2, { NIB2R2, NIB3__, NIB0__, NIB1__ } , 0, 0 },
- /* 0x6a2 */ { 0x28, { NIB3R1, BLANK_, BLANK_, BLANK_ } , 1, 0 },
- /* 0x6a4 */ { 0xa0, { NIB2__, NIB1__, NIB3__, BLANK_ } , 0, 0 },
- /* 0x6a6 */ { 0xe4, { NIB2R3, NIB3__, BLANK_, BLANK_ } , 0, 1 },
- /* 0x6a8 */ { 0x32, { NIB3__, NIB2__, NIB1__, NIB0__ } , 1, 1 },
- /* 0x6aa */ { 0x20, { NIB2R2, NIB3__, BLANK_, BLANK_ } , 0, 0 },
- /* 0x6ac */ { 0xf6, { NIB1R3, NIB2__, NIB3__, BLANK_ } , 1, 0 },
- /* 0x6ae */ { 0xf2, { NIB3__, BLANK_, BLANK_, BLANK_ } , 1, 1 },
- /* 0x6b0 */ { 0x10, { NIB2__, NIB1__, NIB3__, BLANK_ } , 1, 1 },
- /* 0x6b2 */ { 0xb4, { NIB1R3, NIB2__, NIB3__, NIB0__ } , 1, 1 },
- /* 0x6b4 */ { 0xa0, { NIB2__, NIB3__, BLANK_, BLANK_ } , 0, 0 },
- /* 0x6b6 */ { 0x30, { NIB0__, NIB3__, NIB2__, NIB1__ } , 1, 1 },
- /* 0x6b8 */ { 0xea, { NIB1__, NIB2__, NIB0__, NIB3__ } , 1, 0 },
- /* 0x6ba */ { 0xf6, { NIB2__, NIB3__, NIB0__, NIB1__ } , 1, 1 },
- /* 0x6bc */ { 0x42, { NIB2R2, NIB3__, BLANK_, BLANK_ } , 0, 1 },
- /* 0x6be */ { INPUT_PORT_A , { NIB1__, NIB2__, BLANK_, NIB3__ } , 1, 0 }, // dc.w $06BE ; xor
- /* 0x6c0 */ { 0x08, { NIB3__, NIB1__, NIB2__, NIB0__ } , 0, 1 },
- /* 0x6c2 */ { 0x54, { NIB2__, NIB1__, BLANK_, NIB3__ } , 1, 1 },
- /* 0x6c4 */ { 0x66, { NIB2__, NIB1__, BLANK_, NIB3__ } , 0, 1 },
- /* 0x6c6 */ { 0xcc, { NIB2__, NIB3__, BLANK_, BLANK_ } , 1, 1 },
- /* 0x6c8 */ { 0x52, { NIB1R3, NIB2__, NIB3__, BLANK_ } , 1, 1 },
- /* 0x6ca */ { 0xd4, { NIB2__, NIB1__, NIB3__, NIB0__ } , 0, 0 },
- /* 0x6cc */ { INPUT_PORT_C , { NIB0R1, NIB1__, NIB2__, NIB3__ } , 0, 0 }, // dc.w $06CC ; 0x0002
- /* 0x6ce */ { 0x0e, { NIB3__, BLANK_, BLANK_, BLANK_ } , 0, 1 },
- /* 0x6d0 */ { 0xb2, { BLANK_, BLANK_, BLANK_, NIB3__ } , 0, 0 },
- /* 0x6d2 */ { 0xa2, { NIB0__, NIB3__, NIB1__, NIB2__ } , 0, 0 },
- /* 0x6d4 */ { 0xb4, { NIB2__, NIB1__, NIB3__, BLANK_ } , 0, 0 },
- /* 0x6d6 */ { INPUT_PORT_A , { NIB0__, NIB1__, NIB2__, NIB3__ } , 1, 0 }, // dc.w $06D6 ; xor
- /* 0x6d8 */ { 0xac, { NIB2R1, NIB3__, BLANK_, BLANK_ } , 1, 1 },
- /* 0x6da */ { 0x24, { BLANK_, NIB2__, NIB3__, NIB1__ } , 0, 1 },
- /* 0x6dc */ { 0xbe, { NIB1__, NIB0__, NIB3__, NIB2__ } , 1, 0 },
- /* 0x6de */ { 0xa8, { NIB2R3, NIB3__, BLANK_, BLANK_ } , 1, 0 },
- /* 0x6e0 */ { 0x2c, { NIB2__, NIB3__, NIB0__, NIB1__ } , 1, 0 },
- /* 0x6e2 */ { 0x90, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x6e4 */ { 0x98, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x6e6 */ { 0x70, { NIB2__, NIB3__, BLANK_, BLANK_ } , 1, 0 },
- /* 0x6e8 */ { 0xb6, { BLANK_, NIB3__, BLANK_, NIB2__ } , 0, 1 },
- /* 0x6ea */ { 0xb8, { NIB0R1, NIB1__, NIB2__, NIB3__ } , 1, 1 },
- /* 0x6ec */ { 0x66, { NIB1__, NIB0__, NIB3__, NIB2__ } , 0, 0 },
- /* 0x6ee */ { 0x2a, { NIB0__, NIB2__, NIB3__, NIB1__ } , 1, 0 },
- /* 0x6f0 */ { 0x62, { NIB3R3, BLANK_, BLANK_, BLANK_ } , 0, 1 },
- /* 0x6f2 */ { 0xc8, { NIB3R3, NIB0__, NIB1__, NIB2__ } , 0, 1 },
- /* 0x6f4 */ { 0x14, { NIB2R2, NIB3__, NIB0__, NIB1__ } , 1, 0 },
- /* 0x6f6 */ { 0xa6, { NIB2__, NIB3__, NIB1__, NIB0__ } , 1, 1 },
- /* 0x6f8 */ { 0xe6, { NIB2__, NIB1__, BLANK_, NIB3__ } , 0, 0 },
- /* 0x6fa */ { 0xee, { NIB2__, NIB3__, BLANK_, BLANK_ } , 0, 0 },
- /* 0x6fc */ { 0x82, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x6fe */ { 0x26, { NIB1__, NIB2__, NIB0__, NIB3__ } , 1, 1 },
- /* 0x700 */ { 0x66, { BLANK_, NIB3__, BLANK_, NIB2__ } , 1, 0 },
- /* 0x702 */ { 0x2c, { NIB3__, BLANK_, BLANK_, BLANK_ } , 0, 1 },
- /* 0x704 */ { 0x7c, { NIB0R1, NIB1__, NIB2__, NIB3__ } , 1, 0 },
- /* 0x706 */ { 0x18, { NIB1__, NIB0__, NIB3__, NIB2__ } , 0, 0 },
- /* 0x708 */ { 0xda, { BLANK_, NIB3__, BLANK_, NIB2__ } , 0, 0 },
- /* 0x70a */ { 0xde, { NIB2R1, NIB3__, BLANK_, BLANK_ } , 1, 0 },
- /* 0x70c */ { 0x6e, { NIB1R3, NIB2__, NIB3__, BLANK_ } , 0, 1 },
- /* 0x70e */ { 0x26, { NIB1R2, NIB2__, NIB3__, BLANK_ } , 1, 0 },
- /* 0x710 */ { 0xca, { NIB3__, NIB2__, BLANK_, BLANK_ } , 0, 0 },
- /* 0x712 */ { 0xf0, { BLANK_, NIB3__, BLANK_, BLANK_ } , 0, 0 },
- /* 0x714 */ { 0x82, { NIB3__, NIB2__, BLANK_, BLANK_ } , 1, 1 },
- /* 0x716 */ { 0xc0, { NIB0__, NIB3__, NIB1__, NIB2__ } , 1, 0 },
- /* 0x718 */ { 0x8e, { NIB2R3, NIB3__, NIB0__, NIB1__ } , 1, 1 },
- /* 0x71a */ { 0x20, { NIB3__, NIB0__, NIB1__, NIB2__ } , 1, 0 },
- /* 0x71c */ { 0x4e, { NIB3__, NIB2__, NIB0__, NIB1__ } , 0, 1 },
- /* 0x71e */ { 0xe0, { BLANK_, BLANK_, BLANK_, NIB3__ } , 1, 1 },
- /* 0x720 */ { 0x66, { NIB0__, NIB1__, NIB3__, NIB2__ } , 0, 1 },
- /* 0x722 */ { 0xdc, { NIB1__, NIB2__, NIB3__, BLANK_ } , 1, 1 },
- /* 0x724 */ { 0xb2, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x726 */ { INPUT_PORT_C , { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 }, // dc.w $0726 ; 0x0001
- /* 0x728 */ { 0xd4, { NIB2__, NIB3__, NIB0__, NIB1__ } , 0, 1 },
- /* 0x72a */ { 0x86, { NIB3R2, NIB0__, NIB1__, NIB2__ } , 1, 1 },
- /* 0x72c */ { 0x78, { NIB0__, NIB2__, NIB3__, NIB1__ } , 0, 0 },
- /* 0x72e */ { 0xe4, { NIB1R2, NIB2__, NIB3__, BLANK_ } , 0, 1 },
- /* 0x730 */ { 0x3e, { NIB3R1, NIB0__, NIB1__, NIB2__ } , 1, 1 },
- /* 0x732 */ { 0x72, { NIB1__, NIB3__, NIB0__, NIB2__ } , 0, 0 },
- /* 0x734 */ { 0x64, { NIB2__, NIB1__, NIB3__, NIB0__ } , 1, 0 },
- /* 0x736 */ { 0x68, { BLANK_, BLANK_, BLANK_, NIB3__ } , 0, 1 },
- /* 0x738 */ { 0x54, { NIB3R1, BLANK_, BLANK_, BLANK_ } , 0, 0 },
- /* 0x73a */ { 0x00, { NIB2R3, NIB3__, BLANK_, BLANK_ } , 0, 0 },
- /* 0x73c */ { INPUT_PORT_A , { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 }, // dc.w $073C
- /* 0x73e */ { 0xae, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x740 */ { 0x6a, { NIB1__, NIB2__, NIB3__, NIB0__ } , 0, 0 },
- /* 0x742 */ { 0x2e, { NIB0__, NIB3__, NIB2__, NIB1__ } , 0, 0 },
- /* 0x744 */ { 0xf6, { NIB2__, NIB3__, NIB0__, NIB1__ } , 1, 1 },
- /* 0x746 */ { INPUT_PORT_C , { NIB0__, NIB1__, NIB2__, NIB3__ } , 1, 0 }, // dc.w $0746 ; 0x0001 dc.w $0746 ; 0x0001 ; xor
- /* 0x748 */ { 0x44, { NIB0R3, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x74a */ { 0x14, { NIB2__, NIB1__, NIB0__, NIB3__ } , 0, 1 },
- /* 0x74c */ { 0xd2, { BLANK_, BLANK_, BLANK_, NIB3__ } , 1, 0 },
- /* 0x74e */ { INPUT_PORT_C , { NIB2__, NIB3__, NIB0__, NIB1__ } , 0, 0 }, // dc.w $074E ; 0x0100
- /* 0x750 */ { 0xaa, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x752 */ { 0xbe, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x754 */ { 0x76, { NIB3__, BLANK_, BLANK_, BLANK_ } , 1, 1 },
- /* 0x756 */ { 0x60, { NIB3R1, NIB0__, NIB1__, NIB2__ } , 0, 0 },
- /* 0x758 */ { 0x70, { NIB3R3, NIB0__, NIB1__, NIB2__ } , 0, 0 },
- /* 0x75a */ { 0x4c, { NIB1R3, NIB2__, NIB3__, NIB0__ } , 1, 1 },
- /* 0x75c */ { 0xbc, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x75e */ { 0x7e, { NIB2R2, NIB3__, BLANK_, BLANK_ } , 0, 1 },
- /* 0x760 */ { 0x32, { NIB2R1, NIB3__, NIB0__, NIB1__ } , 0, 1 },
- /* 0x762 */ { 0x88, { NIB0R1, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x764 */ { 0xe2, { NIB3R2, NIB0__, NIB1__, NIB2__ } , 1, 0 },
- /* 0x766 */ { 0x66, { NIB2__, NIB1__, NIB0__, NIB3__ } , 0, 0 },
- /* 0x768 */ { 0x16, { NIB0__, NIB3__, NIB2__, NIB1__ } , 0, 1 },
- /* 0x76a */ { 0xfa, { NIB3R3, BLANK_, BLANK_, BLANK_ } , 1, 1 },
- /* 0x76c */ { 0x52, { NIB0R1, NIB1__, NIB2__, NIB3__ } , 0, 1 },
- /* 0x76e */ { 0xd6, { NIB0__, NIB3__, NIB1__, NIB2__ } , 0, 1 },
- /* 0x770 */ { INPUT_PORT_B , { NIB1__, BLANK_, BLANK_, BLANK_ } , 0, 0 },
- /* 0x772 */ { 0xc4, { NIB1__, NIB3__, NIB0__, NIB2__ } , 1, 0 },
- /* 0x774 */ { 0x38, { NIB1R3, NIB2__, NIB3__, NIB0__ } , 0, 1 },
- /* 0x776 */ { 0x6c, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 1 },
- /* 0x778 */ { 0xfc, { NIB2__, NIB1__, NIB3__, BLANK_ } , 1, 1 },
- /* 0x77a */ { 0x84, { NIB0__, NIB2__, NIB3__, NIB1__ } , 0, 1 },
- /* 0x77c */ { 0xb6, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x77e */ { 0x62, { NIB3__, NIB1__, NIB2__, NIB0__ } , 0, 0 },
- /* 0x780 */ { 0xb8, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x782 */ { 0xa2, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x784 */ { 0x8a, { NIB2__, NIB0__, NIB1__, NIB3__ } , 0, 0 },
- /* 0x786 */ { 0x3a, { BLANK_, NIB3__, BLANK_, BLANK_ } , 0, 0 },
- /* 0x788 */ { 0xf4, { NIB2__, NIB1__, NIB0__, NIB3__ } , 1, 1 },
- /* 0x78a */ { 0x40, { NIB1__, NIB2__, NIB3__, BLANK_ } , 1, 0 },
- /* 0x78c */ { 0x7a, { NIB1__, NIB2__, NIB3__, BLANK_ } , 0, 0 },
- /* 0x78e */ { 0x1c, { NIB2R3, NIB3__, NIB0__, NIB1__ } , 1, 0 },
- /* 0x790 */ { 0x04, { NIB0R2, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x792 */ { 0x1a, { NIB2R1, NIB3__, NIB0__, NIB1__ } , 1, 1 },
- /* 0x794 */ { 0x0e, { NIB1R3, NIB2__, NIB3__, BLANK_ } , 1, 0 },
- /* 0x796 */ { 0x30, { NIB3__, NIB0__, NIB2__, NIB1__ } , 1, 0 },
- /* 0x798 */ { 0x50, { NIB3__, NIB2__, NIB0__, NIB1__ } , 1, 1 },
- /* 0x79a */ { 0xc8, { NIB3R1, NIB0__, NIB1__, NIB2__ } , 1, 0 },
- /* 0x79c */ { 0xc6, { NIB1__, NIB2__, NIB0__, NIB3__ } , 0, 1 },
- /* 0x79e */ { 0x12, { NIB1__, NIB0__, NIB3__, NIB2__ } , 1, 1 },
- /* 0x7a0 */ { 0x6e, { NIB0__, NIB1__, NIB3__, NIB2__ } , 0, 0 },
- /* 0x7a2 */ { 0x56, { NIB2__, NIB1__, BLANK_, NIB3__ } , 1, 0 },
- /* 0x7a4 */ { 0xe2, { NIB2__, NIB3__, BLANK_, BLANK_ } , 0, 1 },
- /* 0x7a6 */ { 0x00, { NIB3R2, BLANK_, BLANK_, BLANK_ } , 0, 1 },
- /* 0x7a8 */ { 0xfa, { NIB3__, NIB1__, NIB2__, NIB0__ } , 1, 0 },
- /* 0x7aa */ { 0x76, { NIB1R3, NIB2__, NIB3__, NIB0__ } , 1, 0 },
- /* 0x7ac */ { 0x8e, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x7ae */ { 0xaa, { NIB1__, NIB0__, NIB3__, NIB2__ } , 0, 0 },
- /* 0x7b0 */ { 0x80, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x7b2 */ { 0x3a, { NIB3__, BLANK_, BLANK_, BLANK_ } , 1, 1 },
- /* 0x7b4 */ { 0xf8, { BLANK_, NIB3__, BLANK_, BLANK_ } , 1, 0 },
- /* 0x7b6 */ { 0x02, { NIB0__, NIB2__, NIB3__, NIB1__ } , 1, 1 },
- /* 0x7b8 */ { 0x84, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x7ba */ { 0xd0, { NIB0__, NIB1__, NIB3__, NIB2__ } , 1, 1 },
- /* 0x7bc */ { 0xd6, { NIB3__, NIB2__, BLANK_, BLANK_ } , 0, 1 },
- /* 0x7be */ { 0x66, { NIB2__, NIB1__, NIB0__, NIB3__ } , 1, 0 },
- /* 0x7c0 */ { 0xea, { NIB3R2, NIB0__, NIB1__, NIB2__ } , 0, 0 },
- /* 0x7c2 */ { 0xe8, { NIB3__, NIB2__, NIB0__, NIB1__ } , 0, 0 },
- /* 0x7c4 */ { 0x9c, { NIB2R2, NIB3__, BLANK_, BLANK_ } , 0, 0 },
- /* 0x7c6 */ { 0x02, { NIB3__, BLANK_, BLANK_, BLANK_ } , 1, 0 },
- /* 0x7c8 */ { 0x9a, { BLANK_, NIB2__, NIB3__, NIB1__ } , 1, 1 },
- /* 0x7ca */ { 0xa0, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x7cc */ { 0x0c, { NIB3R3, NIB0__, NIB1__, NIB2__ } , 1, 1 },
- /* 0x7ce */ { 0x80, { NIB3R3, BLANK_, BLANK_, BLANK_ } , 0, 0 },
- /* 0x7d0 */ { 0xec, { NIB1__, NIB2__, NIB0__, NIB3__ } , 0, 0 },
- /* 0x7d2 */ { 0x1e, { BLANK_, NIB3__, BLANK_, BLANK_ } , 0, 1 },
- /* 0x7d4 */ { 0xb4, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x7d6 */ { 0x28, { NIB3__, NIB2__, NIB1__, NIB0__ } , 0, 1 },
- /* 0x7d8 */ { 0xee, { NIB1__, NIB2__, BLANK_, NIB3__ } , 1, 1 },
- /* 0x7da */ { 0x56, { NIB2__, NIB0__, NIB1__, NIB3__ } , 1, 1 },
- /* 0x7dc */ { INPUT_PORT_A , { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 1 }, // dc.w $07DC ; nand
- /* 0x7de */ { 0x2a, { NIB3__, NIB2__, NIB1__, NIB0__ } , 1, 1 },
- /* 0x7e0 */ { 0xf8, { NIB3__, NIB0__, NIB1__, NIB2__ } , 1, 1 },
- /* 0x7e2 */ { 0x96, { NIB1__, NIB2__, BLANK_, NIB3__ } , 1, 0 },
- /* 0x7e4 */ { 0x34, { BLANK_, NIB3__, BLANK_, NIB2__ } , 1, 1 },
- /* 0x7e6 */ { 0x36, { NIB1R1, NIB2__, NIB3__, NIB0__ } , 0, 1 },
- /* 0x7e8 */ { 0x4a, { NIB0__, NIB1__, NIB2__, NIB3__ } , 1, 0 },
- /* 0x7ea */ { 0x0a, { NIB3__, BLANK_, BLANK_, BLANK_ } , 0, 0 },
- /* 0x7ec */ { 0x66, { NIB3__, NIB2__, NIB0__, NIB1__ } , 1, 0 },
- /* 0x7ee */ { 0xc2, { NIB1R1, NIB2__, NIB3__, BLANK_ } , 1, 0 },
- /* 0x7f0 */ { 0xba, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x7f2 */ { 0x5e, { NIB3__, NIB2__, BLANK_, BLANK_ } , 0, 1 },
- /* 0x7f4 */ { 0x5c, { NIB2__, NIB1__, NIB3__, BLANK_ } , 1, 0 },
- /* 0x7f6 */ { 0xac, { NIB0__, NIB1__, NIB2__, NIB3__ } , 0, 0 },
- /* 0x7f8 */ { 0x98, { NIB1__, NIB2__, NIB3__, NIB0__ } , 0, 1 },
- /* 0x7fa */ { 0x80, { NIB3R2, BLANK_, BLANK_, BLANK_ } , 1, 1 },
- /* 0x7fc */ { INPUT_PORT_C , { BLANK_, NIB3__, BLANK_, BLANK_ } , 0, 0 }, // dc.w $07FC ; Bit not present
- /* 0x7fe */ { 0xd8, { NIB2R2, NIB3__, NIB0__, NIB1__ } , 1, 1 }
-};
-
-// callbacks
-static UINT16 (*m_port_a_r)();
-static UINT16 (*m_port_b_r)();
-static UINT16 (*m_port_c_r)();
-static void (*m_soundlatch_w)(UINT16 sl);
-
-// configuration
-static UINT8 m_bankswitch_swap_read_address;
-static UINT16 m_magic_read_address_xor;
-static INT32 m_magic_read_address_xor_enabled;
-static UINT8 m_xor_port;
-static UINT8 m_mask_port;
-static UINT8 m_soundlatch_port;
-static UINT8 m_external_addrswap[10];
-static deco146port_xx* m_lookup_table;
-
-// vars
-static UINT16 m_rambank0[0x80];
-static UINT16 m_rambank1[0x80];
-static INT32 m_current_rambank;
-static UINT16 m_nand;
-static UINT16 m_xor;
-static UINT16 m_soundlatch;
-static UINT16 m_latchaddr;
-static UINT16 m_latchdata;
-static UINT8 m_configregion; // which value of upper 4 address lines accesses the config region
-static INT32 m_latchflag;
-static UINT8 region_selects[6];
-
-INT32 deco_146_104_inuse = 0;
-
-static UINT16 reorder(UINT16 input, UINT8 *weights)
-{
- UINT16 temp = 0;
- for(INT32 i = 0; i < 16; i++)
- {
- if(input & (1 << i)) // if input bit is set
- {
- if(weights[i] != 0xFF) // and weight exists for output bit
- {
- temp |= 1 << weights[i]; // set that bit
- }
- }
- }
- return temp;
-}
-
-static UINT16 read_data_getloc(UINT16 address, int& location)
-{
- UINT16 retdata = 0;
-
- location = m_lookup_table[address>>1].write_offset;
-
- if (location==INPUT_PORT_A)
- {
- retdata = m_port_a_r();
- //bprintf(0, _T("port-a %X, "), retdata);
- }
- else if (location==INPUT_PORT_B)
- {
- retdata = m_port_b_r();
- //bprintf(0, _T("port-b %X, "), retdata);
- }
- else if (location==INPUT_PORT_C)
- {
- retdata = m_port_c_r();
- //bprintf(0, _T("port-c %X, "), retdata);
- }
- else
- {
- if (m_current_rambank==0)
- retdata = m_rambank0[location>>1];
- else
- retdata = m_rambank1[location>>1];
- }
-
- UINT16 realret = reorder(retdata, &m_lookup_table[address>>1].mapping[0] );
-
- if (m_lookup_table[address>>1].use_xor) realret ^= m_xor;
- if (m_lookup_table[address>>1].use_nand) realret = (realret & ~m_nand);
-
- return realret;
-}
-
-
-static UINT16 read_protport(UINT16 address, UINT16 mem_mask)
-{
- // if we read the last written address immediately after then ignore all other logic and just return what was written unmodified
- if ((address==m_latchaddr) && (m_latchflag==1))
- {
- //logerror("returning latched data %04x\n", m_latchdata);
- m_latchflag = 0;
- return m_latchdata;
- }
-
- m_latchflag = 0;
-
- if (m_magic_read_address_xor_enabled) address ^= m_magic_read_address_xor;
-
- int location = 0;
- UINT16 realret = read_data_getloc(address, location);
-
- if (location == m_bankswitch_swap_read_address) // this has a special meaning
- {
- // logerror("(bankswitch) %04x %04x\n", address, mem_mask);
-
- if (m_current_rambank==0)
- m_current_rambank = 1;
- else
- m_current_rambank = 0;
- }
-
-
- return realret;
-}
-
-#define COMBINE_DATA(varptr) if (mem_mask == 0xffff) { *(varptr) = data; } else \
- if (mem_mask == 0xff00) { *(varptr) = (*(varptr) & ~mem_mask) | ((data << 8) & mem_mask); } else \
- { *(varptr) = (*(varptr) & ~mem_mask) | (data & mem_mask); }
-
-static void write_protport(UINT16 address, UINT16 data, UINT16 mem_mask)
-{
- m_latchaddr = address;
- m_latchdata = data;
- m_latchflag = 1;
-
- if ((address&0xff) == m_xor_port)
- {
- //bprintf(0, _T("LOAD XOR REGISTER %04x %04x - "), data, mem_mask);
- COMBINE_DATA(&m_xor);
- //bprintf(0, _T("after %04x\n"), m_xor);
- }
- else if ((address&0xff) == m_mask_port)
- {
- //bprintf(0, _T("LOAD NAND REGISTER %04x %04x - "), data, mem_mask);
- COMBINE_DATA(&m_nand);
- //bprintf(0, _T("after %04x\n"), m_nand);
- }
- else if ((address&0xff) == m_soundlatch_port)
- {
- //bprintf(0, _T("LOAD SOUND LATCH %04x %04x - "), data, mem_mask);
- COMBINE_DATA(&m_soundlatch);
- //bprintf(0, _T("after %04x\n"), m_soundlatch);
- m_soundlatch_w(data);
- }
-
- // always store
- if (m_current_rambank==0) {
- COMBINE_DATA(&m_rambank0[(address&0xff)>>1]);
- }
- else
- {
- COMBINE_DATA(&m_rambank1[(address&0xff)>>1]);
- }
-
-}
-#undef COMBINE_DATA
-
-void deco_146_104_write_data(UINT16 address, UINT16 data, UINT16 mem_mask, UINT8 &csflags)
-{
- address = BITSWAP16(address>>1, 15,14,13,12,11,10, m_external_addrswap[9],m_external_addrswap[8] ,m_external_addrswap[7],m_external_addrswap[6],m_external_addrswap[5],m_external_addrswap[4],m_external_addrswap[3],m_external_addrswap[2],m_external_addrswap[1],m_external_addrswap[0]) << 1;
-
- csflags = 0;
- int upper_addr_bits = (address & 0x7800) >> 11;
-
- if (upper_addr_bits == 0x8) // configuration registers are hardcoded to this area
- {
- int real_address = address & 0xf;
- //bprintf(0, _T("write to config regs %04x %04x %04x\n"), real_address, data, mem_mask);
-
- if ((real_address>=0x2) && (real_address<=0x0c))
- {
- region_selects[(real_address-2)/2] = data &0xf;
- return;
- }
- else
- {
- // unknown
- }
-
- return; // or fall through?
- }
-
- for (int i=0;i<6;i++)
- {
- int cs = region_selects[i];
-
- if (cs==upper_addr_bits)
- {
- int real_address = address & 0x7ff;
- csflags |= (1 << i);
-
- if (i==0) // the first cs is our internal protection area
- {
- //bprintf(0, _T("write matches cs table (protection) %01x %04x %04x %04x\n"), i, real_address, data, mem_mask);
- write_protport(real_address, data, mem_mask);
- }
- else
- {
-// logerror("write matches cs table (external connection) %01x %04x %04x %04x\n", i, real_address, data, mem_mask);
- }
- }
- }
-
- if (csflags==0)
- {
- //logerror("write not in cs table\n");
- }
-}
-
-UINT16 deco_146_104_read_data(UINT16 address, UINT16 mem_mask, UINT8 &csflags)
-{
- address = BITSWAP16(address>>1, 15,14,13,12,11,10, m_external_addrswap[9],m_external_addrswap[8] ,m_external_addrswap[7],m_external_addrswap[6],m_external_addrswap[5],m_external_addrswap[4],m_external_addrswap[3],m_external_addrswap[2],m_external_addrswap[1],m_external_addrswap[0]) << 1;
-
- UINT16 retdata = 0;
- csflags = 0;
- int upper_addr_bits = (address & 0x7800) >> 11;
-
- if (upper_addr_bits == 0x8) // configuration registers are hardcoded to this area
- {
- //int real_address = address & 0xf;
- //logerror("read config regs? %04x %04x\n", real_address, mem_mask);
- return 0x0000;
- }
-
- // what gets priority?
- for (int i=0;i<6;i++)
- {
- int cs = region_selects[i];
-
- if (cs==upper_addr_bits)
- {
- int real_address = address & 0x7ff;
- csflags |= (1 << i);
-
- if (i==0) // the first cs is our internal protection area
- {
- //bprintf(0, _T("read matches cs table (protection) %01x %04x %04x\n"), i, real_address, mem_mask);
- return read_protport(real_address, mem_mask);
- }
- else
- {
- //logerror("read matches cs table (external connection) %01x %04x %04x\n", i, real_address, mem_mask);
- }
- }
- }
-
- if (csflags==0)
- {
- //logerror("read not in cs table\n");
- }
-
- return retdata;
-}
-
-// handy handlers
-
-static UINT16 deco146_104prot_r(UINT32 region, UINT32 offset, UINT16 mem_mask)
-{
- INT32 deco146_addr = BITSWAP32(region + offset, 31,30,29,28,27,26,25,24,23,22,21,20,19,18, 13,12,11, 17,16,15,14, 10,9,8, 7,6,5,4, 3,2,1,0) & 0x7fff;
- UINT8 cs = 0;
- return deco_146_104_read_data(deco146_addr, mem_mask, cs);
-}
-
-static void deco146_104prot_w(UINT32 region, UINT32 offset, UINT16 data, UINT16 mem_mask)
-{
- INT32 deco146_addr = BITSWAP32(region + offset, 31,30,29,28,27,26,25,24,23,22,21,20,19,18, 13,12,11, 17,16,15,14, 10,9,8, 7,6,5,4, 3,2,1,0) & 0x7fff;
- UINT8 cs = 0;
- deco_146_104_write_data(deco146_addr, data, mem_mask, cs);
-}
-
-void deco146_104_prot_wb(UINT32 region, UINT32 address, UINT8 data)
-{
- deco146_104prot_w(region, address&0x3fff, data, 0xff00 >> ((address & 1) << 3));
-}
-
-UINT8 deco146_104_prot_rb(UINT32 region, UINT32 address)
-{
- return deco146_104prot_r(region, address&0x3fff, 0xff00 >> ((address & 1) << 3)) >> ((~address & 1) << 3);
-}
-
-void deco146_104_prot_ww(UINT32 region, UINT32 address, UINT16 data)
-{
- deco146_104prot_w(region, address&0x3fff, data, 0xffff);
-}
-
-UINT16 deco146_104_prot_rw(UINT32 region, UINT32 address)
-{
- return deco146_104prot_r(region, address&0x3fff, 0xffff);
-}
-
-
-static UINT16 deco_146_port_dummy_cb()
-{
- return 0x00;
-}
-
-static void deco_146_soundlatch_dummy(UINT16 data)
-{
-}
-
-void deco_146_104_set_port_a_cb(UINT16 (*port_cb)()) { m_port_a_r = port_cb; }
-void deco_146_104_set_port_b_cb(UINT16 (*port_cb)()) { m_port_b_r = port_cb; }
-void deco_146_104_set_port_c_cb(UINT16 (*port_cb)()) { m_port_c_r = port_cb; }
-void deco_146_104_set_soundlatch_cb(void (*port_cb)(UINT16 sl)) { m_soundlatch_w = port_cb; }
-void deco_146_104_set_interface_scramble(UINT8 a9, UINT8 a8, UINT8 a7, UINT8 a6, UINT8 a5, UINT8 a4, UINT8 a3,UINT8 a2,UINT8 a1,UINT8 a0)
-{
- m_external_addrswap[9] = a9;
- m_external_addrswap[8] = a8;
- m_external_addrswap[7] = a7;
- m_external_addrswap[6] = a6;
- m_external_addrswap[5] = a5;
- m_external_addrswap[4] = a4;
- m_external_addrswap[3] = a3;
- m_external_addrswap[2] = a2;
- m_external_addrswap[1] = a1;
- m_external_addrswap[0] = a0;
-}
-
-void deco_146_104_set_use_magic_read_address_xor(INT32 use_xor)
-{
- m_magic_read_address_xor_enabled = use_xor;
-}
-
-void deco_146_104_set_interface_scramble_reverse()
-{
- deco_146_104_set_interface_scramble(0,1,2,3,4,5,6,7,8,9);
-}
-
-void deco_146_104_set_interface_scramble_interleave()
-{
- deco_146_104_set_interface_scramble(4,5,3,6,2,7,1,8,0,9);
-}
-
-static void deco_146_104_base_init() // called internally!
-{
- deco_146_104_inuse = 1;
- // default addressing
- deco_146_104_set_interface_scramble(9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
-
- // bind our handler
- deco_146_104_set_port_a_cb(deco_146_port_dummy_cb);
- deco_146_104_set_port_b_cb(deco_146_port_dummy_cb);
- deco_146_104_set_port_c_cb(deco_146_port_dummy_cb);
- deco_146_104_set_soundlatch_cb(deco_146_soundlatch_dummy);
-}
-
-void deco_146_init() // called from driver
-{
- deco_146_104_base_init();
-
- m_bankswitch_swap_read_address = 0x78;
- m_magic_read_address_xor = 0x44a;
- m_magic_read_address_xor_enabled = 0;
- m_xor_port = 0x2c;
- m_mask_port = 0x36;
- m_soundlatch_port = 0x64;
- m_lookup_table = port_table_146;
- m_configregion = 0x8;
-}
-
-void deco_104_init() // called from driver
-{
- deco_146_104_base_init();
-
- m_bankswitch_swap_read_address = 0x66;
- m_magic_read_address_xor = 0x2a4;
- m_magic_read_address_xor_enabled = 0;
- m_xor_port = 0x42;
- m_mask_port = 0xee;
- m_soundlatch_port = 0xa8;
- m_lookup_table = port_table_104;
- m_configregion = 0xc;
-}
-
-void deco_146_104_exit()
-{
- deco_146_104_inuse = 0;
-}
-
-void deco_146_104_scan()
-{
- SCAN_VAR(m_xor);
- SCAN_VAR(m_nand);
- SCAN_VAR(m_soundlatch);
-
- SCAN_VAR(m_rambank0);
- SCAN_VAR(m_rambank1);
- SCAN_VAR(m_current_rambank);
-
- SCAN_VAR(region_selects);
-
- SCAN_VAR(m_latchaddr);
- SCAN_VAR(m_latchdata);
- SCAN_VAR(m_latchflag);
-}
-
-void deco_146_104_reset()
-{
- for (INT32 i = 0; i < 0x80; i++)
- {
- // the mutant fighter old sim assumes 0x0000
- m_rambank0[i] = 0xffff;
- m_rambank1[i] = 0xffff;
- }
-
- region_selects[0] = 0;
- region_selects[1] = 0;
- region_selects[2] = 0;
- region_selects[3] = 0;
- region_selects[4] = 0;
- region_selects[5] = 0;
-
- m_current_rambank = 0;
-
- m_soundlatch = 0x0000;
-
- m_latchaddr = 0xffff;
- m_latchdata = 0x0000;
- m_latchflag = 0;
-
- m_xor = 0;
- m_nand = 0x0;
-}
-
-
diff --git a/jan/src/burn/drv/dataeast/deco146.h b/jan/src/burn/drv/dataeast/deco146.h
deleted file mode 100644
index 87cb11c95..000000000
--- a/jan/src/burn/drv/dataeast/deco146.h
+++ /dev/null
@@ -1,69 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:David Haywood, Charles MacDonald
-
-#include "bitswap.h"
-
-// handy handlers
-void deco146_104_prot_wb(UINT32 region, UINT32 address, UINT8 data);
-void deco146_104_prot_ww(UINT32 region, UINT32 address, UINT16 data);
-UINT8 deco146_104_prot_rb(UINT32 region, UINT32 address);
-UINT16 deco146_104_prot_rw(UINT32 region, UINT32 address);
-
-// raw handlers
-void deco_146_104_write_data(UINT16 address, UINT16 data, UINT16 mem_mask, UINT8 &csflags);
-UINT16 deco_146_104_read_data(UINT16 address, UINT16 mem_mask, UINT8 &csflags);
-
-// configuration
-void deco_146_104_set_port_a_cb(UINT16 (*port_cb)()); // inputs
-void deco_146_104_set_port_b_cb(UINT16 (*port_cb)()); // system
-void deco_146_104_set_port_c_cb(UINT16 (*port_cb)()); // dips
-void deco_146_104_set_soundlatch_cb(void (*port_cb)(UINT16 sl));
-void deco_146_104_set_interface_scramble(UINT8 a9, UINT8 a8, UINT8 a7, UINT8 a6, UINT8 a5, UINT8 a4, UINT8 a3,UINT8 a2,UINT8 a1,UINT8 a0);
-void deco_146_104_set_interface_scramble_reverse();
-void deco_146_104_set_interface_scramble_interleave();
-void deco_146_104_set_use_magic_read_address_xor(INT32 use_xor);
-
-// init, etc.
-void deco_146_init();
-void deco_104_init();
-// these 3 autoatically called from deco16Scan(), deco16Reset(), deco16Exit()
-void deco_146_104_scan();
-void deco_146_104_reset();
-void deco_146_104_exit();
-
-extern INT32 deco_146_104_inuse;
-
-#define BLK (0xff)
-#define INPUT_PORT_A (-1)
-#define INPUT_PORT_B (-2)
-#define INPUT_PORT_C (-3)
-
-#define NIB3__ 0xc, 0xd, 0xe, 0xf
-#define NIB3R1 0xd, 0xe, 0xf, 0xc
-#define NIB3R2 0xe, 0xf, 0xc, 0xd
-#define NIB3R3 0xf, 0xc, 0xd, 0xe
-
-#define NIB2__ 0x8, 0x9, 0xa, 0xb
-#define NIB2R1 0x9, 0xa, 0xb, 0x8
-#define NIB2R2 0xa, 0xb, 0x8, 0x9
-#define NIB2R3 0xb, 0x8, 0x9, 0xa
-
-#define NIB1__ 0x4, 0x5, 0x6, 0x7
-#define NIB1R1 0x5, 0x6, 0x7, 0x4
-#define NIB1R2 0x6, 0x7, 0x4, 0x5
-#define NIB1R3 0x7, 0x4, 0x5, 0x6
-
-#define NIB0__ 0x0, 0x1, 0x2, 0x3
-#define NIB0R1 0x1, 0x2, 0x3, 0x0
-#define NIB0R2 0x2, 0x3, 0x0, 0x1
-#define NIB0R3 0x3, 0x0, 0x1, 0x2
-
-#define BLANK_ BLK, BLK, BLK, BLK
-
-struct deco146port_xx
-{
- INT32 write_offset;
- UINT8 mapping[16];
- INT32 use_xor;
- INT32 use_nand;
-};
diff --git a/jan/src/burn/drv/dataeast/deco16ic.cpp b/jan/src/burn/drv/dataeast/deco16ic.cpp
deleted file mode 100644
index 3a388bc79..000000000
--- a/jan/src/burn/drv/dataeast/deco16ic.cpp
+++ /dev/null
@@ -1,1827 +0,0 @@
-/*
-TO DO!
-
- DECO32 :)
-*/
-
-
-#include "tiles_generic.h"
-#include "bitswap.h"
-#include "deco146.h"
-
-static INT32 deco16_layer_size[4];
-static INT32 deco16_layer_size_select[4];
-
-static INT32 (*deco16_bank_callback[4])(const INT32 bank);
-
-static INT32 deco16_pf_colorbank[4];
-static INT32 deco16_pf_colormask[4];
-static INT32 deco16_pf_transmask[4];
-
-static INT32 deco16_pf_bank[4];
-
-static INT32 deco16_pf_gfx_bank[4]; // (1/2) 8x8, 16x16, (2/3) 8x8, 16x16
-
-static UINT16 deco16_scroll_x[4][ 512]; // 512 (rowscroll)
-static UINT16 deco16_scroll_y[4][1024]; // 1024 (colscroll)
-
-static INT32 deco16_scroll_rows[4];
-static INT32 deco16_scroll_cols[4];
-
-static INT32 deco16_enable_rowscroll[4];
-static INT32 deco16_enable_colscroll[4];
-
-static INT32 deco16_global_x_offset = 0;
-static INT32 deco16_global_y_offset = 0;
-
-static INT32 deco16_yscroll[4]; // scroll y register
-static INT32 deco16_xscroll[4]; // scroll x register
-
-static INT32 deco16_scroll_offset[4][2][2]; // tmap, size, x, y
-
-static UINT8 transmask[4][2][0x100];
-
-INT32 deco16_graphics_mask[3];
-
-UINT8 *deco16_graphics[3];
-
-UINT16 *deco16_pf_control[2];
-UINT8 *deco16_pf_ram[4] = { NULL, NULL, NULL, NULL };
-UINT8 *deco16_pf_rowscroll[4];//4 or 2?
-
-UINT16 deco16_priority;
-
-UINT8 *deco16_prio_map;
-UINT8 *deco16_sprite_prio_map; // boogwing
-
-INT32 deco16_vblank;
-
-INT32 deco16_music_tempofix; // set after deco16SoundInit(), fixes tempo issues in darkseal, vaportrail, and cbuster
-
-void deco16ProtScan();
-void deco16ProtReset();
-
-INT32 deco16_get_tilemap_size(INT32 tmap)
-{
- return deco16_layer_size_select[tmap];
-}
-
-// painfully unfast.
-void deco16_draw_prio_sprite(UINT16 *dest, UINT8 *gfx, INT32 code, INT32 color, INT32 sx, INT32 sy, INT32 flipx, INT32 flipy, INT32 pri, INT32 spri)
-{
- gfx += code * 0x100;
-
- INT32 flip = 0;
- if (flipx) flip |= 0x0f;
- if (flipy) flip |= 0xf0;
-
- sy -= deco16_global_y_offset;
- sx -= deco16_global_x_offset;
-
- for (INT32 yy = 0; yy < 16; yy++, sy++) {
-
- if (sy < 0 || sy >= nScreenHeight) continue;
-
- for (INT32 xx = 0; xx < 16; xx++, sx++) {
- if (sx < 0 || sx >= nScreenWidth) continue;
-
- INT32 pxl = gfx[((yy * 16) + xx) ^ flip];
-
- if (!pxl) continue;
-
- if (pri != -1) {
- INT32 bpriority = deco16_prio_map[(sy * 512) + sx];
-
- if (spri == -1) {
- if ((pri & (1 << (bpriority & 0x1f))) || (bpriority & 0x80)) continue;
- deco16_prio_map[sy * 512 + sx] |= 0x80; // right?
- } else {
- if (pri <= bpriority || spri <= deco16_sprite_prio_map[sy * 512 + sx]) continue;
- deco16_sprite_prio_map[sy * 512 + sx] = spri;
- deco16_prio_map[sy * 512 + sx] = pri; // right?
- }
- }
-
- dest[sy * nScreenWidth + sx] = pxl | color;
-
- deco16_prio_map[sy * 512 + sx] |= 0x80; // right?
- }
-
- sx -= 16;
- }
-}
-
-void deco16_draw_prio_sprite_nitrobal(UINT16 *dest, UINT8 *gfx, INT32 code, INT32 color, INT32 sx, INT32 sy, INT32 flipx, INT32 flipy, INT32 pri, INT32 spri)
-{
- gfx += code * 0x100;
-
- INT32 flip = 0;
- if (flipx) flip |= 0x0f;
- if (flipy) flip |= 0xf0;
-
- sy -= deco16_global_y_offset;
- sx -= deco16_global_x_offset;
-
- for (INT32 yy = 0; yy < 16; yy++, sy++) {
-
- if (sy < 0 || sy >= nScreenHeight) continue;
-
- for (INT32 xx = 0; xx < 16; xx++, sx++) {
- if (sx < 0 || sx >= nScreenWidth) continue;
-
- INT32 pxl = gfx[((yy * 16) + xx) ^ flip];
-
- if (!pxl) continue;
-
- if (pri != -1) {
- INT32 bpriority = deco16_prio_map[(sy * 512) + sx];
-
- if (pri > bpriority && spri > deco16_sprite_prio_map[sy * 512 + sx]) {
- dest[sy * nScreenWidth + sx] = pxl | color;
- deco16_prio_map[sy * 512 + sx] |= pri; // right?
- }
- deco16_sprite_prio_map[sy * 512 + sx] |= spri;
- }
- }
-
- sx -= 16;
- }
-}
-
-void deco16_draw_prio_sprite(UINT16 *dest, UINT8 *gfx, INT32 code, INT32 color, INT32 sx, INT32 sy, INT32 flipx, INT32 flipy, INT32 pri)
-{
- deco16_draw_prio_sprite(dest, gfx, code, color, sx, sy, flipx, flipy, pri, -1);
-}
-
-static inline UINT32 alpha_blend(UINT32 d, UINT32 s, UINT32 p)
-{
- INT32 a = 256 - p;
-
- return (((((s & 0xff00ff) * p) + ((d & 0xff00ff) * a)) & 0xff00ff00) +
- ((((s & 0x00ff00) * p) + ((d & 0x00ff00) * a)) & 0x00ff0000)) / 256;
-}
-
-void deco16_draw_alphaprio_sprite(UINT32 *palette, UINT8 *gfx, INT32 code, INT32 color, INT32 sx, INT32 sy, INT32 flipx, INT32 flipy, INT32 pri, INT32 spri, INT32 alpha)
-{
- if (alpha == 0) return;
-
- gfx += code * 0x100;
-
- INT32 flip = 0;
- if (flipx) flip |= 0x0f;
- if (flipy) flip |= 0xf0;
-
- sy -= deco16_global_y_offset;
- sx -= deco16_global_x_offset;
-
- UINT32 *dest = (UINT32*)pBurnDraw;
-
- for (INT32 yy = 0; yy < 16; yy++, sy++) {
-
- if (sy < 0 || sy >= nScreenHeight) continue;
-
- for (INT32 xx = 0; xx < 16; xx++, sx++) {
- if (sx < 0 || sx >= nScreenWidth) continue;
-
- INT32 pxl = gfx[((yy * 16) + xx) ^ flip];
-
- if (!pxl) continue;
-
- INT32 bpriority = deco16_prio_map[(sy * 512) + sx];
-
- if (spri == -1) {
- if ((pri & (1 << (bpriority & 0x1f))) || (bpriority & 0x80)) continue;
- deco16_prio_map[sy * 512 + sx] |= 0x80; // right?
- } else {
- if (pri <= bpriority || spri <= deco16_sprite_prio_map[sy * 512 + sx]) continue;
- deco16_sprite_prio_map[sy * 512 + sx] = spri;
- deco16_prio_map[sy * 512 + sx] = pri; // right?
- }
-
- if (alpha == 0xff) {
- dest[sy * nScreenWidth + sx] = palette[pxl | color];
- } else {
- dest[sy * nScreenWidth + sx] = alpha_blend(dest[sy * nScreenWidth + sx], palette[pxl | color], alpha);
- }
- }
-
- sx -= 16;
- }
-}
-
-void deco16_palette_recalculate(UINT32 *palette, UINT8 *pal)
-{
- UINT16 *p = (UINT16*)pal;
-
- for (INT32 i = 0; i < BurnDrvGetPaletteEntries() * 2; i+=2)
- {
- INT32 b = (BURN_ENDIAN_SWAP_INT16(p[i + 0]) >> 0) & 0xff;
- INT32 g = (BURN_ENDIAN_SWAP_INT16(p[i + 1]) >> 8) & 0xff;
- INT32 r = (BURN_ENDIAN_SWAP_INT16(p[i + 1]) >> 0) & 0xff;
-
- palette[i/2] = BurnHighCol(r, g, b, 0);
- }
-}
-
-void deco16_tile_decode(UINT8 *src, UINT8 *dst, INT32 len, INT32 type)
-{
- INT32 Plane[4] = { ((len / 2) * 8) + 8, ((len / 2) * 8) + 0, 0x00008, 0x00000 };
- INT32 XOffs[16] = { 32*8+0, 32*8+1, 32*8+2, 32*8+3, 32*8+4, 32*8+5, 32*8+6, 32*8+7, 0, 1, 2, 3, 4, 5, 6, 7 };
- INT32 YOffs[16] = { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16, 8*16, 9*16, 10*16, 11*16, 12*16, 13*16, 14*16, 15*16 };
-
- INT32 Plane1[8] = { 0x100000*8+8, 0x100000*8, 0x40000*8+8, 0x40000*8, 0xc0000*8+8, 0xc0000*8, 8, 0 };
-
- UINT8 *tmp = (UINT8*)BurnMalloc(len);
- if (tmp == NULL) {
- return;
- }
-
- memcpy (tmp, src, len);
-
- if (type == 2) { //16x16x8bpp
- GfxDecode(4096, 8, 16, 16, Plane1, XOffs + 0, YOffs, 0x200, tmp, dst);
- } else if (type == 1) { // 8x8
- GfxDecode((len * 2) / 0x040, 4, 8, 8, Plane, XOffs + 8, YOffs, 0x080, tmp, dst);
- } else {
- GfxDecode((len * 2) / 0x100, 4, 16, 16, Plane, XOffs + 0, YOffs, 0x200, tmp, dst);
- }
-
- BurnFree (tmp);
-}
-
-void deco16_sprite_decode(UINT8 *gfx, INT32 len)
-{
- INT32 Plane[4] = { 24,8,16,0 };
- INT32 XOffs[16] = { 512,513,514,515,516,517,518,519, 0, 1, 2, 3, 4, 5, 6, 7 };
- INT32 YOffs[16] = { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32, 8*32, 9*32,10*32,11*32,12*32,13*32,14*32,15*32};
-
- UINT8 *tmp = (UINT8*)BurnMalloc(len);
- if (tmp == NULL) {
- return;
- }
-
- memcpy (tmp, gfx, len);
-
- GfxDecode((len * 2) / 0x100, 4, 16, 16, Plane, XOffs, YOffs, 0x400, tmp, gfx);
-
- BurnFree (tmp);
-}
-
-INT32 deco16_y_skew = 0;
-
-void deco16_draw_layer_by_line(INT32 draw_start, INT32 draw_end, INT32 tmap, UINT16 *dest, INT32 flags)
-{
- INT32 size = deco16_layer_size_select[tmap];
- if (size == -1) return;
- if (deco16_y_skew) draw_end += deco16_y_skew;
-
- INT32 control = deco16_pf_control[tmap / 2][6];
- if (tmap & 1) control >>= 8;
-
-// INT32 control0 = deco16_pf_control[tmap / 2][5];
-// if (tmap & 1) control0 >>= 8;
-// if ((control0 & 0x80) == 0) return; // layer disable bit
-
- INT32 select = (tmap & 2) + ((tmap < 2) ? size : 0);
-
- size = size ? 16 : 8;
-
- INT32 bpp = (flags & 0x100000) ? 8 : 4;
- if (flags & 0x200000) bpp = 5;
-
- UINT8 *gfx = deco16_graphics[select];
- INT32 gfxmask = deco16_graphics_mask[select];
-
- UINT16 *vram = (UINT16 *)deco16_pf_ram[tmap];
-
- UINT8 *tmask = transmask[tmap][(flags & 0x00100) >> 8];
- UINT8 t_mask = (flags & 0x10000) ? 0 : 1; // enable using transparent pixels
-
- INT32 priority = flags & 0x000ff;
-
- INT32 tilebank = deco16_pf_bank[tmap];
- INT32 colmask = deco16_pf_colormask[tmap];
- INT32 colbank = deco16_pf_colorbank[tmap] >> bpp;
-
- INT32 hmask = (32 * size) - 1;
- INT32 wmask = (deco16_layer_size[tmap] * size) - 1;
- INT32 shift = (wmask & 0x100) ? 6 : 5;
- INT32 smask = size - 1;
-
- for (INT32 y = draw_start; y < draw_end; y++)
- {
- INT32 xoff = deco16_scroll_x[tmap][((y + deco16_yscroll[tmap] + deco16_global_y_offset)&0x1ff)/deco16_scroll_rows[tmap]] & wmask;
-
- for (INT32 x = 0; x < nScreenWidth + size; x+=size)
- {
- INT32 yoff = deco16_scroll_y[tmap][((x + xoff) & wmask)/deco16_scroll_cols[tmap]] & hmask;
-
- INT32 yy = (y + yoff) & hmask;
- INT32 xx = (x + xoff) & wmask;
-
- INT32 col = xx / size;
- INT32 row = yy / size;
-
- INT32 ofst;
- if (size == 8) {
- ofst = (row << shift) | (col);
- } else {
- ofst = (col & 0x1f) + ((row & 0x1f) << 5) + ((col & 0x20) << 5) + ((row & 0x20) << 6);
- }
-
- INT32 code = BURN_ENDIAN_SWAP_INT16(vram[ofst]);
- INT32 color = code >> 12;
-
- INT32 flipx = 0;
- INT32 flipy = 0;
-
- if ((color & 0x0008) && (control & 0x03)) {
- flipx = control & 0x01;
- flipy = control & 0x02;
- color &= 0x07;
- }
-
- code = ((code & 0xfff) | tilebank) & gfxmask;
- color = (color & colmask) + colbank;
-
- {
- color <<= bpp;
-
- INT32 sx = x - (xx & smask);
-
- INT32 sy = yy & smask;
- if (flipy) sy ^= smask;
-
- UINT8 *src = gfx + (code * size * size) + (sy * size);
-
- if (flipx) flipx = smask;
-
- for (INT32 xxx = 0; xxx < size; xxx++) {
- if ((xxx + sx) < 0 || (xxx + sx) >= nScreenWidth) continue;
-
- INT32 pxl = src[xxx^flipx];
-
- if (tmask[pxl] && t_mask) continue;
- if (y - deco16_y_skew >= 0)
- dest[(y - deco16_y_skew) * nScreenWidth + xxx + sx] = pxl | color;
- deco16_prio_map[y * 512 + xxx + sx] = priority;
- }
- }
- }
- }
-}
-
-void deco16_draw_layer(INT32 tmap, UINT16 *dest, INT32 flags)
-{
- deco16_draw_layer_by_line(0, nScreenHeight, tmap, dest, flags);
-}
-
-void deco16_set_bank_callback(INT32 tmap, INT32 (*callback)(const INT32 bank))
-{
- deco16_bank_callback[tmap] = callback;
-}
-
-void deco16_set_color_base(INT32 tmap, INT32 base)
-{
- deco16_pf_colorbank[tmap & 3] = base;
-}
-
-void deco16_set_color_mask(INT32 tmap, INT32 mask)
-{
- deco16_pf_colormask[tmap & 3] = mask;
-}
-
-void deco16_set_transparency_mask(INT32 tmap, INT32 mask)
-{
- deco16_pf_transmask[tmap & 3] = mask;
-}
-
-void deco16_set_gfxbank(INT32 tmap, INT32 small, INT32 big)
-{
- deco16_pf_gfx_bank[0 + (tmap & 2)] = small;
- deco16_pf_gfx_bank[1 + (tmap & 2)] = big;
-}
-
-void deco16_set_global_offsets(INT32 x, INT32 y)
-{
- deco16_global_x_offset = x;
- deco16_global_y_offset = y;
-}
-
-static void set_transmask(INT32 tmap, INT32 tmask0, INT32 tmask1)
-{
- for (INT32 i = 0; i < 16; i++) {
- transmask[tmap][0][i] = (tmask0 & (1 << i)) ? 1 : 0;
- transmask[tmap][1][i] = (tmask1 & (1 << i)) ? 1 : 0;
- }
-
- for (INT32 i = 16; i < 0x100; i++) {
- transmask[tmap][0][i] = 0;
- transmask[tmap][1][i] = 0;
- }
-}
-
-static void set_graphics_mask(INT32 gfx, INT32 len)
-{
- INT32 b = 1;
-
- while (b < (len - 1)) {
- b <<= 1;
- }
-
- deco16_graphics_mask[gfx] = b - 1;
-}
-
-void deco16_set_graphics(INT32 num, UINT8 *gfx, INT32 len, INT32 size /*tile size*/)
-{
- deco16_graphics[num] = gfx;
-
- set_graphics_mask(num, len / (size * size));
-}
-
-void deco16_set_graphics(UINT8 *gfx0, INT32 len0, UINT8 *gfx1, INT32 len1, UINT8 *gfx2, INT32 len2)
-{
- deco16_graphics[0] = gfx0;
- deco16_graphics[1] = gfx1;
- deco16_graphics[2] = gfx2;
-
- set_graphics_mask(0, len0 / (8 * 8));
- set_graphics_mask(1, len1 / (16 * 16));
- set_graphics_mask(2, len2 / (16 * 16));
-}
-
-void deco16_clear_prio_map()
-{
- memset(deco16_prio_map, 0, 512 * 256);
- memset(deco16_sprite_prio_map, 0, 512 * 256);
-}
-
-void deco16_set_scroll_offs(INT32 tmap, INT32 size, INT32 offsetx, INT32 offsety)
-{
- deco16_scroll_offset[tmap][size][0] = offsetx;
- deco16_scroll_offset[tmap][size][1] = offsety;
-}
-
-void deco16Init(INT32 no_pf34, INT32 split, INT32 full_width)
-{
- set_transmask(0, 0x0001, 0xffff);
- set_transmask(1, 0x0001, 0xffff);
- set_transmask(2, 0x0001, 0xffff);
- set_transmask(3, 0x0001, 0xffff);
-
- if (split) {
- set_transmask(1, 0xff01, 0x00ff);
- }
-
- memset (deco16_scroll_offset, 0, 4 * 2 * 2 * sizeof(INT32));
-
- deco16_pf_ram[0] = (UINT8*)BurnMalloc(0x2000); // ok
- deco16_pf_ram[1] = (UINT8*)BurnMalloc(0x2000);
-
- deco16_pf_rowscroll[0] = (UINT8*)BurnMalloc(0x2000);// plenty
- deco16_pf_rowscroll[1] = (UINT8*)BurnMalloc(0x2000);
-
- deco16_pf_control[0] = (UINT16*)BurnMalloc(0x10); //1/2
- deco16_pf_control[1] = (UINT16*)BurnMalloc(0x10); //3/4
-
- if (no_pf34 == 0) {
- deco16_pf_ram[2] = (UINT8*)BurnMalloc(0x2000); // right?
- deco16_pf_ram[3] = (UINT8*)BurnMalloc(0x2000);
-
- deco16_pf_rowscroll[2] = (UINT8*)BurnMalloc(0x1000); // right?
- deco16_pf_rowscroll[3] = (UINT8*)BurnMalloc(0x1000);
- }
-
- deco16_prio_map = (UINT8*)BurnMalloc(512 * 256); // priority map
- deco16_sprite_prio_map = (UINT8*)BurnMalloc(512 * 256);
-
- deco16_bank_callback[0] = NULL;
- deco16_bank_callback[1] = NULL;
- deco16_bank_callback[2] = NULL;
- deco16_bank_callback[3] = NULL;
-
- deco16_layer_size[0] = 64;
- deco16_layer_size[1] = full_width ? 64 : 32;
- deco16_layer_size[2] = (!no_pf34) ? (full_width ? 64 : 32) : 0;
- deco16_layer_size[3] = (!no_pf34) ? (full_width ? 64 : 32) : 0;
-
- deco16_pf_transmask[0] = 15;
- deco16_pf_transmask[1] = 15;
- deco16_pf_transmask[2] = 15;
- deco16_pf_transmask[3] = 15;
-
- deco16_pf_colormask[0] = 15;
- deco16_pf_colormask[1] = 15;
- deco16_pf_colormask[2] = 15;
- deco16_pf_colormask[3] = 15;
-
- deco16_pf_bank[0] = 0;
- deco16_pf_bank[1] = 0;
- deco16_pf_bank[2] = 0;
- deco16_pf_bank[3] = 0;
-
- deco16_pf_colorbank[0] = 0;
- deco16_pf_colorbank[1] = 16 << 4; // 2
- deco16_pf_colorbank[2] = 0;
- deco16_pf_colorbank[3] = 16 << 4; // 4
-
- deco16_pf_gfx_bank[0] = 0;
- deco16_pf_gfx_bank[1] = 1;
- deco16_pf_gfx_bank[2] = 2;
-
- deco16_layer_size_select[0] = 1; //16x16
- deco16_layer_size_select[1] = 1;
- deco16_layer_size_select[2] = 1;
- deco16_layer_size_select[3] = 1;
-
- deco16_global_x_offset = 0;
- deco16_global_y_offset = 0;
-
- deco16_priority = 0;
-}
-
-void deco16Reset()
-{
- memset (deco16_pf_rowscroll[0], 0, 0x1000);
- memset (deco16_pf_rowscroll[1], 0, 0x1000);
-
- if (deco16_pf_rowscroll[2]) {
- memset (deco16_pf_rowscroll[2], 0, 0x1000);
- memset (deco16_pf_rowscroll[3], 0, 0x1000);
- }
-
- memset (deco16_pf_control[0], 0, 16);
- memset (deco16_pf_control[1], 0, 16);
- memset (deco16_pf_ram[0], 0, 0x2000);
- memset (deco16_pf_ram[1], 0, 0x2000);
-
- if (deco16_pf_ram[2]) {
- memset (deco16_pf_ram[2], 0, 0x2000);
- memset (deco16_pf_ram[3], 0, 0x2000);
- }
-
- deco16_priority = 0;
-
- if (deco_146_104_inuse)
- deco_146_104_reset();
-}
-
-void deco16Exit()
-{
- BurnFree (deco16_prio_map);
-
- BurnFree (deco16_sprite_prio_map);
-
- for (INT32 i = 0; i < 4; i++) {
- BurnFree (deco16_pf_rowscroll[i]);
- deco16_pf_rowscroll[i] = NULL;
- BurnFree (deco16_pf_ram[i]);
- deco16_pf_ram[i] = NULL;
- }
-
- BurnFree (deco16_pf_control[0]);
- BurnFree (deco16_pf_control[1]);
-
- if (deco_146_104_inuse)
- deco_146_104_exit();
-}
-
-static void pf_update(INT32 tmap, INT32 scrollx, INT32 scrolly, UINT16 *rowscroll, INT32 control0, INT32 control1)
-{
- if (~tmap & 2) {
- if (control1 & 0x80) {
- deco16_layer_size_select[tmap] = (control0 & 0x80) ? 0 : -1; // 8x8
- } else {
- deco16_layer_size_select[tmap] = (control0 & 0x80) ? 1 : -1; // 16x16
- }
- }
-
- if (deco16_layer_size_select[tmap] == -1) return; // don't bother
-
- deco16_enable_rowscroll[tmap] = 0;
- deco16_enable_colscroll[tmap] = 0;
-
- deco16_yscroll[tmap] = scrolly;
- deco16_xscroll[tmap] = scrollx;
-
- if ((control1 & 0x40) == 0x40 && rowscroll != NULL) // row scroll
- {
- INT32 size = deco16_layer_size_select[tmap] ? 16 : 8;
-
- INT32 rows = 1;
- INT32 row_sel = (control0 >> 3) & 0x0f;
- if (row_sel < 9) rows = 0x200 >> row_sel;
-
- INT32 rownum = 512;
-
- if (size == 8) {
- rows /= 2;
- rownum /= 2;
- if (rows == 0) rows = 1;
- }
-
- if (rows != 1) deco16_enable_colscroll[tmap] = 1;
-
- INT32 rsize = rownum / rows;
-
- deco16_scroll_rows[tmap] = rsize;
-
- INT32 xscroll = scrollx + deco16_global_x_offset + deco16_scroll_offset[tmap][size/16][0];
-
- for (INT32 r = 0; r < rows; r++) {
- deco16_scroll_x[tmap][r & 0x1ff] = xscroll + BURN_ENDIAN_SWAP_INT16(rowscroll[r]);
- }
-
- if (~control1 & 0x20) {
- deco16_scroll_cols[tmap] = 0x8000;
- deco16_scroll_y[tmap][0] = (scrolly + deco16_global_y_offset) & 0x1ff;
- }
- }
-
- if ((control1 & 0x20) == 0x20 && rowscroll != NULL) // column scroll
- {
- INT32 size = deco16_layer_size_select[tmap] ? 16 : 8;
-
- INT32 mask = (0x40 >> (control0 & 0x07)) - 1;
- if (mask < 0) mask = 0;
-
- INT32 cols = 1024 / (8 << (control0 & 0x07));
-
- INT32 colnum = 1024;
-
- if (size == 8) {
- cols /= 2;
- colnum /= 2;
- if (cols == 0) cols = 1;
- }
-
- if (cols != 1) deco16_enable_rowscroll[tmap] = 1;
-
- INT32 rsize = colnum / cols;
-
- deco16_scroll_cols[tmap] = rsize;
-
- for (INT32 r = 0; r < cols; r++) {
- deco16_scroll_y[tmap][r] = (scrolly + BURN_ENDIAN_SWAP_INT16(rowscroll[(r & mask) + 0x200]) + deco16_global_y_offset) & 0x1ff;
- }
-
- if (~control1 & 0x40) {
- INT32 xscroll = scrollx + deco16_global_x_offset + deco16_scroll_offset[tmap][size/16][0];
-
- deco16_scroll_rows[tmap] = 0x8000;
- deco16_scroll_x[tmap][0] = xscroll;
- }
- }
-
- if ((control1 & 0x60) == 0x00) // normal scroll
- {
- INT32 size = deco16_layer_size_select[tmap] ? 16 : 8;
-
- deco16_scroll_rows[tmap] = 0x8000;
- deco16_scroll_cols[tmap] = 0x8000;
-
- deco16_scroll_y[tmap][0] = (scrolly + deco16_global_y_offset) & 0x1ff;
-
- INT32 xscroll = scrollx + deco16_global_x_offset + deco16_scroll_offset[tmap][size/16][0];
-
- deco16_scroll_x[tmap][0] = xscroll;
- }
-}
-
-void deco16_pf12_update()
-{
- if (deco16_bank_callback[0]) deco16_pf_bank[0] = deco16_bank_callback[0](deco16_pf_control[0][7] & 0xff);
- if (deco16_bank_callback[1]) deco16_pf_bank[1] = deco16_bank_callback[1](deco16_pf_control[0][7] >> 8);
-
- pf_update(0, deco16_pf_control[0][1], deco16_pf_control[0][2], (UINT16 *)deco16_pf_rowscroll[0], deco16_pf_control[0][5] & 0xff, deco16_pf_control[0][6] & 0xff);
- pf_update(1, deco16_pf_control[0][3], deco16_pf_control[0][4], (UINT16 *)deco16_pf_rowscroll[1], deco16_pf_control[0][5] >> 8 , deco16_pf_control[0][6] >> 8);
-}
-
-void deco16_pf34_update()
-{
- if (deco16_bank_callback[2]) deco16_pf_bank[2] = deco16_bank_callback[2](deco16_pf_control[1][7] & 0xff);
- if (deco16_bank_callback[3]) deco16_pf_bank[3] = deco16_bank_callback[3](deco16_pf_control[1][7] >> 8);
-
- pf_update(2, deco16_pf_control[1][1], deco16_pf_control[1][2], (UINT16 *)deco16_pf_rowscroll[2], deco16_pf_control[1][5] & 0xff, deco16_pf_control[1][6] & 0xff);
- pf_update(3, deco16_pf_control[1][3], deco16_pf_control[1][4], (UINT16 *)deco16_pf_rowscroll[3], deco16_pf_control[1][5] >> 8 , deco16_pf_control[1][6] >> 8);
-}
-
-void deco16_pf3_update()
-{
- if (deco16_bank_callback[2]) deco16_pf_bank[2] = deco16_bank_callback[2](deco16_pf_control[1][7] & 0xff);
- if (deco16_bank_callback[3]) deco16_pf_bank[3] = deco16_bank_callback[3](deco16_pf_control[1][7] >> 8);
-
- pf_update(2, deco16_pf_control[1][1], deco16_pf_control[1][2], (UINT16 *)deco16_pf_rowscroll[2], deco16_pf_control[1][5] & 0xff, deco16_pf_control[1][6] & 0xff);
-}
-
-void deco16Scan()
-{
- struct BurnArea ba;
-
- {
- char name[32];
-
- for (INT32 i = 0; i < 4; i++) {
- if (deco16_pf_ram[i] == NULL) continue;
-
- memset(&ba, 0, sizeof(ba));
- ba.Data = deco16_pf_ram[i];
- ba.nLen = 0x2000;
- sprintf (name, "Deco16ic RAM %d", i);
- ba.szName = name;
- BurnAcb(&ba);
-
- memset(&ba, 0, sizeof(ba));
- ba.Data = deco16_pf_rowscroll[i];
- ba.nLen = 0x1000;
- sprintf (name, "Deco16ic Rowscroll %d", i);
- ba.szName = name;
- BurnAcb(&ba);
- }
-
- memset(&ba, 0, sizeof(ba));
- ba.Data = (UINT8*)deco16_pf_control[0];
- ba.nLen = 16;
- ba.szName = "Deco16ic Control 0";
- BurnAcb(&ba);
-
- memset(&ba, 0, sizeof(ba));
- ba.Data = (UINT8*)deco16_pf_control[1];
- ba.nLen = 16;
- ba.szName = "Deco16ic Control 1";
- BurnAcb(&ba);
-
- SCAN_VAR(deco16_priority);
- SCAN_VAR(deco16_vblank);
-
- if (deco_146_104_inuse)
- deco_146_104_scan();
- }
-}
-
-
-//---------------------------------------------------------------------------------------------------------------------------------------------------
-// Data East common sound routines
-
-#define ENABLE_HUC6280
-
-#ifdef ENABLE_HUC6280
-#include "h6280_intf.h"
-#endif
-
-#include "burn_ym2151.h"
-#include "burn_ym2203.h"
-#include "msm6295.h"
-
-static INT32 deco16_sound_enable[4]; // ym2203, ym2151, msm6295 0, msm6295 1
-static INT32 deco16_sound_cpuclock = 0;
-
-INT32 deco16_soundlatch;
-
-static void deco16YM2151IrqHandler(INT32 state)
-{
-#ifdef ENABLE_HUC6280
- h6280SetIRQLine(1, state ? CPU_IRQSTATUS_ACK : CPU_IRQSTATUS_NONE);
-#else
- state = state;
-#endif
-}
-
-static INT32 deco16SynchroniseStream(INT32 nSoundRate)
-{
-#ifdef ENABLE_HUC6280
- return (INT64)h6280TotalCycles() * nSoundRate / deco16_sound_cpuclock;
-#else
- return 0 * nSoundRate;
-#endif
-}
-
-static double deco16GetTime()
-{
-#ifdef ENABLE_HUC6280
- return (double)h6280TotalCycles() / (deco16_sound_cpuclock * 1.0);
-#else
- return 0;
-#endif
-}
-
-static void deco16_sound_write(UINT32 address, UINT8 data)
-{
-//bprintf (0, _T("%5.5x, %2.2x\n"), address, data);
-
- switch (address)
- {
- case 0x100000:
- case 0x100001:
- if (deco16_sound_enable[1]) {
- BurnYM2203Write(0, address & 1, data);
- }
- return;
-
- case 0x110000:
- BurnYM2151SelectRegister(data);
- return;
-
- case 0x110001:
- BurnYM2151WriteRegister(data);
- return;
-
- case 0x120000:
- case 0x120001:
- MSM6295Command(0, data);
- return;
-
- case 0x130000:
- case 0x130001:
- if (deco16_sound_enable[3]) {
- MSM6295Command(1, data);
- }
- return;
-
- case 0x1fec00:
- case 0x1fec01:
-#ifdef ENABLE_HUC6280
- if (deco16_music_tempofix) return;
-
- h6280_timer_w(address & 1, data);
-#endif
- return;
-
- case 0x1ff400:
- case 0x1ff401:
- case 0x1ff402:
- case 0x1ff403:
-#ifdef ENABLE_HUC6280
- h6280_irq_status_w(address & 3, data);
-#endif
- return;
- }
-}
-
-static UINT8 deco16_sound_read(UINT32 address)
-{
-//bprintf (0, _T("%5.5x, rb\n"), address);
-
-
- switch (address)
- {
- case 0x100000:
- case 0x100001:
- if (deco16_sound_enable[1]) {
- return BurnYM2203Read(0, address & 1);
- }
- return 0x00;
-
- case 0x110000:
- return 0xff;
-
- case 0x110001:
- return BurnYM2151ReadStatus();
-
- case 0x120000:
- case 0x120001:
- return MSM6295ReadStatus(0);
-
- case 0x130000:
- case 0x130001:
- if (deco16_sound_enable[3]) {
- return MSM6295ReadStatus(1);
- }
- return 0;
-
- case 0x140000:
- case 0x140001:
-#ifdef ENABLE_HUC6280
- h6280SetIRQLine(0, CPU_IRQSTATUS_NONE);
-#endif
- return deco16_soundlatch;
- }
-
- return 0;
-}
-
-void deco16SoundReset()
-{
-#ifdef ENABLE_HUC6280
- h6280Open(0);
- h6280Reset();
- h6280Close();
-#endif
-
- if (deco16_sound_enable[0]) BurnYM2151Reset();
- if (deco16_sound_enable[1]) BurnYM2203Reset();
- if (deco16_sound_enable[2]) MSM6295Reset(0);
- if (deco16_sound_enable[3]) MSM6295Reset(1);
-
- deco16_soundlatch = 0;
-}
-
-void deco16SoundInit(UINT8 *rom, UINT8 *ram, INT32 huc_clock, INT32 ym2203, void (ym2151_port)(UINT32,UINT32), double ym2151vol, INT32 msmclk0, double msmvol0, INT32 msmclk1, double msmvol1)
-{
-#ifdef ENABLE_HUC6280
- h6280Init(0);
- h6280Open(0);
- h6280MapMemory(rom, 0x000000, 0x00ffff, MAP_ROM);
- h6280MapMemory(ram, 0x1f0000, 0x1f1fff, MAP_RAM);
- h6280SetWriteHandler(deco16_sound_write);
- h6280SetReadHandler(deco16_sound_read);
- h6280Close();
-#else
- rom = rom;
- ram = ram;
-#endif
-
- deco16_sound_cpuclock = huc_clock;
-
- deco16_sound_enable[0] = 1; // ym2151 always enabled
- deco16_sound_enable[1] = ym2203 ? 1 : 0;
- deco16_sound_enable[2] = 1; // msm6295 #0 always enabled
- deco16_sound_enable[3] = msmclk1 ? 1 : 0;
-
- BurnYM2151Init(3580000);
- BurnYM2151SetAllRoutes(ym2151vol, BURN_SND_ROUTE_BOTH);
- BurnYM2151SetIrqHandler(&deco16YM2151IrqHandler);
- if (ym2151_port != NULL) {
- BurnYM2151SetPortHandler(ym2151_port);
- }
-
- if (ym2203) {
- BurnYM2203Init(1, 4027500, NULL, deco16SynchroniseStream, deco16GetTime, 0);
-#ifdef ENABLE_HUC6280
- BurnTimerAttachH6280(deco16_sound_cpuclock);
-#endif
- }
-
- MSM6295Init(0, msmclk0 / 132, 1);
- MSM6295SetRoute(0, msmvol0, BURN_SND_ROUTE_BOTH);
-
- if (msmclk1) {
- MSM6295Init(1, msmclk1 / 132, 1);
- MSM6295SetRoute(1, msmvol1, BURN_SND_ROUTE_BOTH);
- }
-
- deco16_music_tempofix = 0;
-}
-
-void deco16SoundExit()
-{
-#ifdef ENABLE_HUC6280
- h6280Exit();
-#endif
-
- if (deco16_sound_enable[0]) BurnYM2151Exit();
- if (deco16_sound_enable[1]) BurnYM2203Exit();
- if (deco16_sound_enable[2]) MSM6295Exit(0);
- if (deco16_sound_enable[3]) MSM6295Exit(1);
-
- MSM6295ROM = NULL;
-
- deco16_sound_enable[0] = 0;
- deco16_sound_enable[1] = 0;
- deco16_sound_enable[2] = 0;
- deco16_sound_enable[3] = 0;
-
- deco16_sound_cpuclock = 0;
- deco16_music_tempofix = 0;
-}
-
-void deco16SoundUpdate(INT16 *buf, INT32 len)
-{
- if (deco16_sound_enable[0]) BurnYM2151Render(buf, len);
-// if (deco16_sound_enable[1]) BurnYM2203Update(buf, len);
- if (deco16_sound_enable[2]) MSM6295Render(0, buf, len);
- if (deco16_sound_enable[3]) MSM6295Render(1, buf, len);
-}
-
-void deco16SoundScan(INT32 nAction, INT32 *pnMin)
-{
- if (nAction & ACB_DRIVER_DATA) {
- h6280CpuScan(nAction);
-
- SCAN_VAR(deco16_soundlatch);
-
- if (deco16_sound_enable[0]) BurnYM2151Scan(nAction);
- if (deco16_sound_enable[1]) BurnYM2203Scan(nAction, pnMin);
- if (deco16_sound_enable[2]) MSM6295Scan(0, nAction);
- if (deco16_sound_enable[3]) MSM6295Scan(1, nAction);
- }
-}
-
-
-//---------------------------------------------------------------------------------------------------------------------------------------------------
-// Data East decryption routines
-
-static const UINT16 xor_masks[16] =
-{
- 0xd556,0x73cb,0x2963,0x4b9a,0xb3bc,0xbc73,0xcbc9,0xaeb5,
- 0x1e6d,0xd5b5,0xe676,0x5cc5,0x395a,0xdaae,0x2629,0xe59e,
-};
-
-static const UINT8 swap_patterns[8][16] =
-{
- { 0xf,0x8,0x9,0xc,0xa,0xd,0xb,0xe, 0x2,0x7,0x4,0x3,0x1,0x5,0x6,0x0 },
- { 0xc,0xa,0xb,0x9,0x8,0xf,0xe,0xd, 0x6,0x0,0x3,0x5,0x7,0x4,0x2,0x1 },
- { 0x8,0xc,0xb,0x9,0xd,0xe,0xf,0xa, 0x4,0x6,0x5,0x0,0x3,0x1,0x7,0x2 },
- { 0x8,0x9,0xa,0xd,0xb,0xf,0xe,0xc, 0x5,0x4,0x0,0x7,0x2,0x6,0x1,0x3 },
- { 0xc,0xd,0xe,0xf,0x8,0x9,0xa,0xb, 0x1,0x5,0x0,0x3,0x2,0x7,0x6,0x4 },
- { 0xe,0xf,0xd,0x8,0xc,0xa,0xb,0x9, 0x1,0x2,0x7,0x6,0x4,0x3,0x0,0x5 },
- { 0xd,0xe,0xa,0xb,0x9,0x8,0xc,0xf, 0x3,0x1,0x7,0x4,0x5,0x0,0x2,0x6 },
- { 0x9,0x8,0xe,0xa,0xf,0xb,0xd,0xc, 0x6,0x0,0x5,0x2,0x4,0x1,0x3,0x7 },
-};
-
-static const UINT8 deco56_xor_table[0x800] =
-{
- 0, 1, 2, 3, 4, 5, 5, 6, 7, 8, 9,10, 7,11,11, 9,11, 3, 7,10,12,13, 3,14, 0, 0, 9, 0,15, 3, 4,14,
- 6, 3,14,14, 3,12, 3,13, 9, 5,13, 3, 8, 2, 7,14, 2, 5, 1, 2, 3, 4,14,11, 8, 0, 6, 7,10, 3, 4, 7,
- 15, 1, 2, 7, 7,14,15, 0, 7, 9,15, 3,14,10, 9,12,11,12, 2, 8, 1,10, 9,14, 5, 6,15,10, 4,15, 5, 2,
- 3, 2, 4,15, 7, 7,10,13, 1,13, 6, 6, 7, 5,10, 9, 5,15,14, 2, 7,12, 7, 4, 2,15,12,10,11,15, 4, 6,
- 9, 3,11,13, 0, 3, 6, 4,15, 8, 3, 8, 0, 3,13, 8, 6, 0,11, 4, 9, 7,11, 1, 8, 1,10, 9, 2, 8,11,15,
- 2, 8,10, 5, 3, 8, 0,10, 0,15, 3, 1,15, 3, 8, 6,13,11,10, 4,15, 4, 4, 3, 7, 7,15, 3,11,15,15, 2,
- 3, 7,13, 4,10,12, 9, 8,11, 2, 5, 8, 7, 4,14, 0,12, 1,15,10, 3,10, 5,13, 1, 4, 0, 7, 7, 2, 8,15,
- 12, 1, 9,14,12, 9,11, 5,13, 1,12,12,14, 8, 8,13, 4,13, 1,12,10, 1,10,15, 7, 5, 1,13,10,10,15, 1,
- 3,14,13, 0, 0, 1, 3, 9, 5, 0, 4,13, 6,14, 2, 8, 3, 3, 5, 8, 1,10, 7, 5,13, 4, 2,12, 5, 1, 0, 4,
- 4, 6,14,10, 6, 3,11,10, 0,10, 2, 3,11,11,15,13, 3,10, 3, 8, 3, 4, 7, 1, 5, 3, 9, 8,14,13,13, 4,
- 1, 0, 1,12,12,12,11,11, 3, 7, 4,10,10, 3,10, 3, 1, 7, 4, 6, 2,12, 3, 3, 0, 0,10, 0, 6, 8, 0, 7,
- 2,15,10,14, 1,14, 4,12, 4, 2, 3, 4, 8, 0,10,10,15, 1, 8, 4,11, 2,12, 6,12,12,12, 2, 4, 6, 3,12,
- 4, 7,14,11,10, 6,13, 3, 4,14, 7, 5, 7, 5,10, 8, 5, 0, 7,12, 3, 7,14, 3, 3, 8, 0, 7, 6, 9,11,15,
- 10,15, 9, 7, 0,13, 7, 3, 7, 4,10, 1, 7, 4, 3,15, 2, 6, 1,14,12,12,10,10, 1,11,15, 0,10, 7,12,15,
- 8,10, 2,14,11, 0,10,12,13,15,12,15, 8,11, 5, 3, 0, 7,10, 6, 1, 9,11, 8, 4, 2, 4,12, 6, 3,15, 3,
- 2, 1,10, 2, 2, 7,10, 6,11,12, 6, 2,11, 7,15, 1,13, 9,12, 3, 9,12, 2,12, 6, 5,11, 8, 0, 7,14,10,
- 7, 8, 6, 5,12, 4, 1,12,12,13, 8, 4, 8,12, 8, 2, 1,15,13,14, 8, 6,11, 2,13, 5, 6,10, 9, 5, 7,11,
- 5,11,13, 2, 0, 8, 2,10, 2, 1, 6, 4, 8,14, 0, 4, 8,11, 8,15,12, 0,15, 6, 1,13,15,10, 3,13,14,13,
- 4, 5,12, 4, 3, 8, 9,15,13,11, 4, 8,10, 7,12, 7, 7, 9, 7,11,13, 0,15, 5,11, 5, 6, 2, 5, 1, 9, 2,
- 9,15, 9, 8,14, 6,11, 7,10, 4,14,12, 3,12, 3, 0, 4, 8,11, 9, 5, 7,14, 1,10, 3, 2,12,12,10,12, 8,
- 4, 5,10,13,11, 6,14, 4,13,14, 8, 3,10, 5, 6, 4, 4,10, 6, 5,12,11,10, 5, 9, 6, 7, 6, 4, 6, 3,15,
- 5,14,14,13, 7, 6,12,13,15, 5,15,10, 2, 1,15, 3,10,15, 7, 4, 5, 2,10,15,14,15, 1,13,12, 9, 8,14,
- 15, 3, 4, 1, 9,13,13, 3,12,15, 8,15, 7, 1,10,12,10, 9,12,10,14, 6, 5, 5, 4, 0,12,14,15, 6, 5, 5,
- 2,14, 2, 6,14, 2,12, 7, 5, 1, 2, 3, 2,12,15, 4,10, 5,10,13, 0, 2, 2, 1, 5, 7, 5, 2, 0,13, 0, 4,
- 13,13, 9,12, 5, 5,10,15, 6,11, 5, 2,11, 8, 0, 6, 9,13, 2, 6, 1,11, 5, 1,12, 8, 4, 7, 9,13, 4, 4,
- 15, 3, 4, 5, 5, 0, 9, 4,10, 8, 1, 0,13, 8, 6,12,15,15,10, 7,10, 2, 6, 1, 4, 0, 2, 8, 3,10, 2,12,
- 4, 1,12,15, 0, 1,10, 0,10,11, 6, 1, 0, 3, 2, 3, 4, 4, 9,14, 7, 3,13, 7,13, 9,14,12,10, 5, 4,14,
- 0, 5,15, 8,12,12, 0, 5,11,15, 8, 7,15, 5,12, 5, 5, 3, 6,13,15,15, 7, 0, 3, 9, 1, 5, 7, 7,12, 5,
- 3,12,10,11, 2,11, 5,10, 1, 3, 6, 2, 7, 1, 3, 0, 6, 8,12,15,14, 6,10,13, 9, 1,15, 4, 6,13,14, 7,
- 2,13,12, 9, 4, 7, 9, 9, 6,10, 6,15,15, 2, 0, 4,12,12,10, 2, 7, 4,14,10, 2, 6, 5,12, 0,14, 1,15,
- 13, 1, 4,13, 3,13, 6,15,11,15, 0,13,12, 5, 4,11,14,15, 6,13, 6, 7, 2, 2, 7,11, 6, 7,15, 0,13,10,
- 6,14, 9,13,12,14, 4, 8, 5,13, 3,14, 6, 6,13, 8, 7, 7, 5, 8,12, 2, 6, 0, 6, 8, 2,13, 9,14, 3,15,
- 1, 4,13, 3, 6, 8,15, 4, 8, 7, 4,10, 0, 9, 2,15, 2, 1, 3, 3, 1, 4, 0, 3, 1, 8, 5, 0,10, 0, 1, 6,
- 11, 3,12, 0,14,11, 0, 5,15, 9, 1, 7,15,12,12,10, 2, 2, 3,15,13,13, 2,13,14,13,13, 8,11,10, 9, 9,
- 9, 7, 7, 4, 9, 1, 9,10, 9, 9, 9,15,13,14,12,13, 6,11, 4, 6, 9,14, 6, 6, 7, 0, 8, 6,10, 7, 9,13,
- 4, 8, 1, 8, 9, 9, 3,14,10,14,11, 7,15, 8,13,11, 9, 0, 5, 4, 4, 7, 6, 0,13, 9,13, 7, 9, 3, 2, 0,
- 7,11, 5, 8, 8, 0,10, 3, 1, 4, 2,15,12, 5, 2, 6,15, 5,13, 6,12, 8,10, 9,12, 9, 1, 2,15,14, 5,11,
- 13, 3, 6, 8,15, 5, 8, 2,10, 2, 8,14,15, 5, 4, 0,10, 2,14,14, 8, 8, 9, 9,11,11,12,11, 5, 4, 2,12,
- 15,12, 1,11, 5,13, 0,12, 2, 4, 0, 0,12,12, 4,15, 7, 1, 2,13,10,10, 6, 4, 8, 6, 0,14,13, 1, 8, 3,
- 10, 9,11,12, 6, 0,11,14, 1,13, 7, 4,11, 3,10, 0, 2,10,14,13, 7, 8,10, 7, 7,12,10,11, 3, 9,13, 8,
- 0,10,10,13, 7,12, 8, 8, 5,15,10,15, 7, 1, 8, 2,12, 1,14,10,10, 4, 5, 7,11, 3, 7, 7, 1,12,12,12,
- 1,14, 4, 0,11,15, 8,10, 1,14, 2,11, 5, 5,10,12, 2, 2, 1, 0,10, 0, 6, 2,10,13, 1,11,14, 0,12,11,
- 8, 8,12, 4, 5, 5,14,14, 9, 8, 0,10, 1, 9,15,10,13, 5, 2, 7, 1, 2, 6, 5, 5,11, 0,13, 8, 0, 7, 2,
- 15,11,15, 0, 5,15, 5, 6, 0, 2, 5, 3, 0,14,14, 4,11, 7, 7, 4,10,11, 1, 8,13, 9, 4,13, 3, 6, 1,10,
- 1, 0,15,15,12,10, 6,11, 3, 4, 7, 8, 7,14, 8, 7,12,15, 9, 8, 7,14,14, 9,15, 8, 9, 4,12, 3,12,12,
- 7, 8,11, 2, 4, 8, 4, 9, 4,11,15, 2,13, 6, 3,13, 1,13, 5, 0, 2,10, 5, 8, 1,13,14, 0,11,15, 8,12,
- 10, 4, 5,10, 4,11,11, 2, 2,13, 2, 6, 0, 7, 4,11, 1,12, 6,13,14, 5, 9, 0, 5,13,14, 6,13, 3,13, 9,
- 14,14, 0, 9,12,14, 9,10, 1, 2,12, 3, 3,15, 8, 4, 3, 1,13,13,13,13, 4, 3, 5,15, 8, 2,15,13,11, 7,
- 4, 0,15,14, 1,13, 6, 8, 2, 8, 7,14,11, 7, 4, 1, 8,12,13,11, 0, 9, 0, 3,12,11, 2, 3, 9, 1, 3,13,
- 4, 5,15,10, 5, 9, 0, 3, 9, 6,13, 7,15,13,11,13,12, 6,14,15, 3, 6,10, 3,11,10, 1, 4,13, 0,15,15,
- 11, 0, 7,14, 9,15, 1,14, 2,13, 7,12,11, 7, 9, 6,11, 5,12, 4, 3, 6, 8, 3, 9, 0,15, 7, 1,11, 7,12,
- 2,13,13, 3, 0,11, 1,11, 6, 1, 5, 5, 4, 5,12, 3, 3,15, 3,10, 7,12,15, 0,13,10, 0, 2, 6,12, 9, 5,
- 3, 0, 0, 6, 3,13, 7,14,11,15, 7, 2, 2,11, 6,11, 9, 3,10,11, 1, 8, 1,13, 0,11, 2,10, 3,12, 4,11,
- 0, 0,10,10, 2, 3,15, 0, 0, 9,14, 5,14,10,14, 0,13, 1, 1,12, 3, 3, 1,15, 8, 8,11,13, 8, 4, 8, 5,
- 8, 7,13, 2, 1, 1,14,15, 1, 7, 7, 1,14, 1, 4,14, 0, 0, 7, 6, 5,11, 5, 8, 7, 1, 4, 3, 8,14, 5,11,
- 13, 8, 1, 9, 6,12, 9, 6, 3, 3,11,12, 5,11, 4, 4, 3,11, 0, 0,10,10, 7,15,15,11, 1,11,13,11, 6, 8,
- 2,15,10, 7, 0, 6, 3, 5, 2,14,12, 8,12,10,15, 8, 4,11, 8,13,11, 2, 5,13,10, 5, 9,10,15, 6, 3,12,
- 3, 0,11,15, 5,13,12,13,12, 0, 8,12,10, 0, 5, 5, 3, 2,10, 5, 3,10, 7, 2,13,12,15,13, 1,10, 4,10,
- 12,14,12, 1, 6,13, 6, 6, 0,13,11, 4, 5, 7, 1, 7, 7, 0, 4,13,13,12,14, 6, 1, 3,13,11, 1, 4, 9, 9,
- 2,12, 8, 5,10,15, 2, 0,14, 9, 5, 8,11, 5, 3, 4, 7, 1, 2,13, 3, 8, 1, 3,11,12,11, 5, 1, 5,10,12,
- 10, 2,10,13,12, 3, 9, 2,12,14,13, 8, 2, 1, 5, 3,15, 2, 8, 2, 1,15,10, 6,10, 3, 8, 9, 6, 9, 2,10,
- 4,12,10,15,14,15, 1,15, 0,13, 6, 0, 5, 6,13,12, 2,14, 0,10, 6,15, 8, 8, 6, 8, 2,12,11, 3, 9, 5,
- 9,15,11, 3,11,14,15, 6,14, 6, 7,12, 7,10, 6,14, 6, 6, 3, 5, 9,14, 7, 5, 8, 6, 2,12,15, 1, 2, 4,
- 11, 6, 3, 0, 5,11,14,14,14, 4,13, 6,11, 6, 4,12,15, 2, 4, 1, 1, 5, 1,15, 7, 0, 5, 0, 0, 0,12, 1,
-};
-
-static const UINT16 deco56_address_table[0x800] =
-{
- 0x527,0x1a1,0x2f6,0x523,0x297,0x005,0x141,0x3b4,0x539,0x794,0x6dd,0x498,0x59b,0x119,0x5db,0x631,
- 0x2f1,0x565,0x409,0x158,0x2d6,0x16e,0x571,0x0b9,0x543,0x52b,0x668,0x0c0,0x5fd,0x216,0x5ea,0x24e,
- 0x14b,0x09b,0x6d1,0x2f5,0x591,0x0b4,0x0a8,0x64a,0x39b,0x0d9,0x336,0x2a1,0x460,0x068,0x7b4,0x187,
- 0x59a,0x2f0,0x5cd,0x181,0x7f7,0x733,0x223,0x581,0x4c5,0x1d4,0x11b,0x22a,0x688,0x738,0x130,0x202,
- 0x12e,0x203,0x33e,0x4d0,0x2bd,0x0c4,0x042,0x614,0x6c2,0x385,0x3ed,0x7e2,0x2bb,0x2ef,0x3e1,0x654,
- 0x73f,0x447,0x15f,0x41d,0x320,0x05a,0x2f4,0x116,0x1d6,0x0c2,0x4c1,0x0f3,0x694,0x28f,0x15c,0x125,
- 0x343,0x291,0x33b,0x21e,0x031,0x4fa,0x76b,0x133,0x503,0x4e8,0x19c,0x3c6,0x24a,0x0b5,0x1df,0x71e,
- 0x5ed,0x564,0x648,0x5d7,0x5c2,0x4a4,0x30e,0x750,0x474,0x11f,0x4a2,0x3bb,0x64c,0x258,0x4c7,0x586,
- 0x071,0x362,0x593,0x252,0x2b0,0x5aa,0x053,0x047,0x6ef,0x669,0x6e8,0x011,0x093,0x443,0x33c,0x060,
- 0x211,0x7d3,0x4c8,0x426,0x1c1,0x2e8,0x1fb,0x51a,0x402,0x49f,0x519,0x1c7,0x096,0x4e6,0x279,0x455,
- 0x7ac,0x3a6,0x4af,0x736,0x1cb,0x45c,0x275,0x18c,0x776,0x6e0,0x5d4,0x59c,0x210,0x358,0x64f,0x2cf,
- 0x0f4,0x307,0x577,0x7ba,0x296,0x0f6,0x1a3,0x09d,0x2c5,0x532,0x7bd,0x26c,0x171,0x727,0x5ba,0x2da,
- 0x37b,0x707,0x366,0x10e,0x346,0x107,0x20a,0x4b1,0x12d,0x10b,0x603,0x788,0x2f7,0x6da,0x28b,0x08d,
- 0x3ff,0x1e6,0x2a4,0x39f,0x454,0x112,0x2ec,0x441,0x0fa,0x054,0x3e5,0x3a2,0x1ec,0x322,0x53e,0x413,
- 0x5b5,0x058,0x751,0x27a,0x3a7,0x2d1,0x16d,0x3f3,0x5f5,0x13e,0x122,0x1fe,0x069,0x7dd,0x213,0x424,
- 0x36f,0x6f5,0x20e,0x431,0x5b2,0x25e,0x601,0x169,0x1a9,0x1cd,0x2e3,0x39e,0x338,0x7e5,0x5e5,0x7b1,
- 0x3dc,0x464,0x065,0x255,0x246,0x71c,0x55c,0x3f7,0x5f6,0x0c8,0x1b4,0x148,0x284,0x69f,0x17f,0x4cd,
- 0x6d4,0x63f,0x7ca,0x28a,0x75f,0x2df,0x708,0x442,0x00e,0x140,0x457,0x14f,0x63a,0x420,0x23e,0x672,
- 0x440,0x716,0x3ca,0x1bb,0x622,0x367,0x018,0x109,0x3c1,0x206,0x7cb,0x42e,0x44c,0x613,0x61e,0x67c,
- 0x396,0x06d,0x01b,0x0c9,0x40f,0x4b6,0x6b8,0x485,0x758,0x4d3,0x61b,0x34d,0x4fe,0x7a6,0x025,0x3eb,
- 0x73a,0x79b,0x3db,0x312,0x190,0x35d,0x7b2,0x78b,0x248,0x010,0x075,0x12b,0x345,0x753,0x64b,0x163,
- 0x374,0x557,0x4d8,0x25b,0x780,0x479,0x012,0x360,0x51c,0x3a1,0x0d0,0x020,0x137,0x5cf,0x7c5,0x189,
- 0x679,0x352,0x7da,0x48a,0x18b,0x5fc,0x1fd,0x344,0x4dd,0x69e,0x761,0x542,0x65d,0x55b,0x755,0x4f9,
- 0x427,0x501,0x329,0x6f2,0x2b4,0x1b6,0x319,0x459,0x3fb,0x6df,0x4ab,0x176,0x2fd,0x62f,0x1ca,0x1b3,
- 0x1b7,0x2dc,0x674,0x56c,0x3ab,0x428,0x6c0,0x541,0x23d,0x283,0x6aa,0x5cb,0x231,0x713,0x014,0x79c,
- 0x1af,0x3f2,0x32b,0x19b,0x0d2,0x25c,0x5be,0x1c5,0x383,0x50d,0x3e4,0x657,0x4bb,0x0e8,0x403,0x26b,
- 0x14e,0x3b7,0x08f,0x31b,0x43f,0x375,0x2ca,0x6bc,0x678,0x13d,0x0e3,0x395,0x2ff,0x120,0x7eb,0x630,
- 0x52d,0x369,0x36a,0x58c,0x538,0x04a,0x461,0x24f,0x717,0x73c,0x784,0x59f,0x0c3,0x340,0x476,0x207,
- 0x6b7,0x31c,0x0da,0x729,0x2c0,0x7f0,0x3d5,0x67a,0x092,0x314,0x34f,0x2bc,0x6ee,0x32a,0x1a7,0x06b,
- 0x40b,0x029,0x7fc,0x608,0x316,0x15a,0x113,0x3b8,0x22b,0x445,0x389,0x7a1,0x174,0x218,0x10d,0x29b,
- 0x4a5,0x0e5,0x25f,0x250,0x75e,0x4c4,0x721,0x230,0x0d8,0x3c2,0x680,0x65f,0x25d,0x222,0x44d,0x57d,
- 0x056,0x37f,0x4a9,0x30d,0x6de,0x7f5,0x423,0x2f9,0x3be,0x097,0x380,0x27c,0x5f1,0x2ba,0x1ea,0x2a5,
- 0x162,0x0bd,0x4ff,0x5fa,0x3bf,0x01c,0x3ae,0x682,0x550,0x46a,0x13c,0x193,0x3cb,0x01e,0x6e9,0x03a,
- 0x6d6,0x323,0x55a,0x74f,0x508,0x4f1,0x616,0x609,0x2b3,0x32c,0x0b7,0x584,0x77c,0x4c2,0x412,0x20d,
- 0x21c,0x5f8,0x26f,0x69a,0x40d,0x50b,0x552,0x000,0x4e9,0x6e2,0x022,0x5d1,0x2f3,0x243,0x22d,0x706,
- 0x304,0x76d,0x201,0x1e0,0x7be,0x3a9,0x074,0x1ac,0x57a,0x754,0x244,0x08a,0x425,0x561,0x6d3,0x48f,
- 0x298,0x636,0x760,0x507,0x282,0x013,0x091,0x232,0x067,0x1ef,0x691,0x7e8,0x489,0x62e,0x289,0x487,
- 0x3df,0x562,0x3e7,0x104,0x040,0x117,0x3d8,0x3f1,0x135,0x1b2,0x3cc,0x0e4,0x5e8,0x75c,0x595,0x2af,
- 0x72f,0x361,0x0cf,0x5ca,0x3d1,0x049,0x002,0x347,0x287,0x337,0x799,0x404,0x7bc,0x0f1,0x101,0x467,
- 0x1e2,0x544,0x095,0x37c,0x2fa,0x763,0x38f,0x376,0x722,0x035,0x2e1,0x28e,0x09e,0x4fb,0x26d,0x611,
- 0x46c,0x5e7,0x563,0x6d2,0x724,0x2a0,0x475,0x24d,0x240,0x437,0x7c8,0x1dc,0x47a,0x356,0x72b,0x06a,
- 0x765,0x499,0x1a8,0x7b0,0x73d,0x592,0x149,0x4cb,0x5a9,0x1e1,0x4ba,0x774,0x0b6,0x570,0x469,0x294,
- 0x2d0,0x5df,0x5a3,0x16c,0x273,0x2b9,0x6c3,0x68a,0x5c6,0x041,0x768,0x4e3,0x0bc,0x077,0x21a,0x2db,
- 0x0be,0x006,0x79a,0x17b,0x6ec,0x689,0x4b5,0x471,0x0f5,0x515,0x683,0x47d,0x576,0x5de,0x3b0,0x705,
- 0x676,0x7d4,0x659,0x02c,0x49e,0x05e,0x02d,0x68c,0x3c8,0x4b9,0x5dd,0x390,0x0f0,0x42a,0x663,0x381,
- 0x48b,0x06e,0x2be,0x0c7,0x42f,0x62c,0x568,0x5ee,0x212,0x559,0x3ec,0x3b9,0x180,0x4e2,0x1e9,0x303,
- 0x446,0x387,0x6c9,0x52a,0x33d,0x7e4,0x325,0x5ff,0x554,0x290,0x675,0x7db,0x22f,0x578,0x5bf,0x3b6,
- 0x4b7,0x7dc,0x5e2,0x18f,0x1ba,0x56a,0x78c,0x6af,0x5a2,0x749,0x4d6,0x208,0x400,0x43a,0x35f,0x286,
- 0x251,0x332,0x030,0x6f6,0x0d3,0x786,0x3a5,0x214,0x087,0x667,0x378,0x29e,0x015,0x166,0x7ce,0x1f7,
- 0x3e8,0x49c,0x787,0x6be,0x16f,0x0ba,0x7d6,0x458,0x488,0x783,0x7cf,0x588,0x5dc,0x6c4,0x70a,0x100,
- 0x4fd,0x13a,0x078,0x715,0x1d2,0x633,0x32d,0x72a,0x6d5,0x6fd,0x78f,0x3d2,0x2c3,0x03e,0x17e,0x505,
- 0x583,0x326,0x2ea,0x51b,0x44a,0x04d,0x3d7,0x1e4,0x0ab,0x3e6,0x124,0x3b1,0x368,0x2c2,0x6c6,0x68e,
- 0x4ee,0x1d5,0x00c,0x430,0x71a,0x651,0x22e,0x20f,0x4ec,0x08e,0x292,0x086,0x589,0x435,0x6db,0x567,
- 0x769,0x4f6,0x599,0x038,0x36d,0x448,0x4f7,0x3fa,0x082,0x3c0,0x021,0x4bf,0x5b9,0x277,0x023,0x422,
- 0x0c6,0x6ab,0x4e5,0x044,0x00f,0x23a,0x664,0x36b,0x6fb,0x462,0x3d4,0x5ec,0x439,0x604,0x04c,0x546,
- 0x0a2,0x14c,0x436,0x128,0x063,0x735,0x7cc,0x410,0x105,0x4d1,0x655,0x1b5,0x3a4,0x6ba,0x04b,0x634,
- 0x7c6,0x1ce,0x3ef,0x11a,0x066,0x433,0x767,0x526,0x524,0x37a,0x5ad,0x0ec,0x4dc,0x38d,0x35b,0x4b2,
- 0x54d,0x19d,0x172,0x495,0x692,0x545,0x6a8,0x5a0,0x164,0x407,0x742,0x145,0x1ab,0x7c4,0x285,0x299,
- 0x1aa,0x66b,0x55d,0x594,0x69b,0x138,0x660,0x463,0x5b8,0x027,0x29d,0x57c,0x77a,0x481,0x797,0x7d9,
- 0x732,0x7c1,0x6c1,0x416,0x701,0x78e,0x695,0x4a6,0x7ea,0x44f,0x7e6,0x106,0x5d9,0x57e,0x4f2,0x779,
- 0x79f,0x509,0x2b5,0x22c,0x502,0x108,0x0b8,0x228,0x062,0x147,0x4fc,0x417,0x205,0x619,0x60b,0x308,
- 0x7d7,0x1ee,0x555,0x0bf,0x398,0x04e,0x02e,0x061,0x4f3,0x699,0x182,0x48c,0x0e9,0x4b8,0x196,0x27e,
- 0x1de,0x2b6,0x3d6,0x677,0x0d6,0x579,0x700,0x19a,0x3af,0x68d,0x51d,0x5d2,0x31e,0x4ae,0x617,0x1f8,
- 0x47c,0x7b3,0x7e3,0x50f,0x470,0x3a3,0x6dc,0x0c1,0x46e,0x6b2,0x5ae,0x5e1,0x492,0x6b6,0x14d,0x178,
- 0x1c9,0x798,0x781,0x0a5,0x23b,0x702,0x540,0x245,0x3d9,0x3b5,0x3ea,0x6ae,0x605,0x3de,0x0aa,0x179,
- 0x2c9,0x2ae,0x0ee,0x6a0,0x262,0x4ac,0x0cc,0x60a,0x5b1,0x0cd,0x194,0x0ad,0x76c,0x73e,0x71d,0x5eb,
- 0x7c0,0x486,0x0cb,0x200,0x551,0x1c6,0x3bc,0x686,0x696,0x12c,0x242,0x321,0x373,0x60f,0x635,0x56d,
- 0x115,0x5e6,0x4da,0x704,0x48d,0x261,0x4f8,0x217,0x49a,0x6fa,0x085,0x56b,0x2ad,0x75a,0x5da,0x720,
- 0x790,0x1f9,0x10f,0x55e,0x05d,0x21d,0x748,0x263,0x4d7,0x771,0x3bd,0x26e,0x07e,0x415,0x432,0x6eb,
- 0x525,0x2ee,0x703,0x08b,0x274,0x310,0x533,0x1b0,0x21f,0x5f3,0x1b1,0x090,0x5a6,0x35e,0x7ad,0x6e5,
- 0x330,0x4b0,0x175,0x4c6,0x70d,0x2d3,0x2b2,0x68b,0x5ef,0x650,0x003,0x081,0x1b9,0x46f,0x01f,0x026,
- 0x7cd,0x2cb,0x642,0x0a6,0x764,0x7a3,0x58e,0x45a,0x63b,0x6ed,0x1db,0x5e4,0x78d,0x661,0x2e4,0x051,
- 0x719,0x558,0x7fd,0x4d2,0x348,0x220,0x5e9,0x377,0x434,0x5d3,0x4a1,0x07a,0x301,0x7a9,0x33f,0x372,
- 0x52e,0x582,0x70f,0x1d9,0x690,0x6f4,0x391,0x084,0x4a0,0x399,0x7af,0x6f0,0x5ac,0x7f6,0x1ae,0x392,
- 0x77b,0x52c,0x7f9,0x2e7,0x0a9,0x5a7,0x3a0,0x6a1,0x5bc,0x6fc,0x32f,0x746,0x6bd,0x16b,0x42d,0x036,
- 0x233,0x0f7,0x224,0x480,0x055,0x465,0x4aa,0x159,0x5fe,0x478,0x1c3,0x536,0x518,0x7c2,0x143,0x7e1,
- 0x331,0x597,0x199,0x5ab,0x4d5,0x2de,0x0ed,0x0dc,0x317,0x229,0x4db,0x76e,0x351,0x5c1,0x618,0x684,
- 0x54b,0x1f4,0x103,0x553,0x64e,0x2b1,0x271,0x775,0x1a5,0x239,0x521,0x51f,0x12f,0x418,0x466,0x134,
- 0x468,0x0f9,0x15b,0x192,0x548,0x1bc,0x6b9,0x6e1,0x411,0x653,0x2c1,0x5f0,0x6cd,0x511,0x0af,0x7d1,
- 0x5d6,0x5bd,0x3ad,0x34e,0x41a,0x0fd,0x4f4,0x33a,0x666,0x146,0x1dd,0x30f,0x5a8,0x254,0x69d,0x44e,
- 0x42c,0x1f1,0x5fb,0x37d,0x3b2,0x080,0x7d8,0x2ac,0x221,0x1ad,0x66f,0x0eb,0x0e6,0x649,0x7fe,0x2a2,
- 0x673,0x18e,0x535,0x5cc,0x644,0x293,0x65e,0x1f6,0x573,0x150,0x3da,0x237,0x238,0x3c3,0x45b,0x1f2,
- 0x4d4,0x43d,0x1d0,0x63d,0x429,0x386,0x64d,0x46d,0x620,0x7ae,0x453,0x2c7,0x57b,0x697,0x6e7,0x2dd,
- 0x5e3,0x09f,0x019,0x41b,0x6e3,0x43e,0x363,0x0db,0x62d,0x341,0x215,0x37e,0x3e9,0x1da,0x32e,0x647,
- 0x21b,0x406,0x793,0x58f,0x560,0x0b2,0x569,0x607,0x2cd,0x640,0x38e,0x38a,0x388,0x4c9,0x652,0x185,
- 0x219,0x7bf,0x7ab,0x1eb,0x472,0x4ad,0x226,0x2fe,0x53f,0x270,0x739,0x313,0x032,0x7f3,0x70c,0x3e0,
- 0x2a9,0x259,0x5b7,0x08c,0x3c7,0x6ad,0x15d,0x2fb,0x10a,0x75d,0x66e,0x4e4,0x1fa,0x68f,0x643,0x2b8,
- 0x6bf,0x497,0x6ff,0x405,0x490,0x170,0x50e,0x073,0x693,0x1d8,0x59d,0x53c,0x1e8,0x711,0x740,0x637,
- 0x624,0x45e,0x483,0x6f3,0x09a,0x513,0x5bb,0x34c,0x414,0x54c,0x007,0x757,0x74a,0x2a3,0x355,0x017,
- 0x72e,0x379,0x5a1,0x4a3,0x2c4,0x671,0x731,0x572,0x65c,0x5d0,0x034,0x1be,0x31f,0x300,0x7b8,0x2d2,
- 0x0fe,0x57f,0x7fb,0x6a4,0x227,0x260,0x1c2,0x052,0x0ef,0x5ce,0x547,0x510,0x0f2,0x6ce,0x6ac,0x04f,
- 0x2d7,0x0d5,0x5a5,0x29a,0x256,0x3ac,0x195,0x048,0x752,0x6d9,0x606,0x2e6,0x7ff,0x05c,0x3f6,0x0d4,
- 0x623,0x602,0x5b3,0x58a,0x77e,0x6f8,0x3f5,0x698,0x587,0x78a,0x450,0x7c7,0x2e9,0x66c,0x49d,0x01d,
- 0x2ce,0x046,0x1d1,0x357,0x628,0x718,0x0dd,0x13b,0x685,0x600,0x741,0x072,0x4eb,0x646,0x71f,0x165,
- 0x05b,0x63e,0x043,0x136,0x66d,0x0fc,0x500,0x0f8,0x23f,0x31a,0x35a,0x7bb,0x45f,0x710,0x264,0x58d,
- 0x2f2,0x079,0x656,0x154,0x444,0x03c,0x12a,0x7b9,0x60e,0x315,0x364,0x3f8,0x725,0x575,0x365,0x7aa,
- 0x6e6,0x796,0x009,0x008,0x6a3,0x2ab,0x549,0x47b,0x2a7,0x778,0x730,0x627,0x7f2,0x743,0x3a8,0x39c,
- 0x598,0x67f,0x1bd,0x65b,0x71b,0x615,0x6d8,0x27f,0x714,0x13f,0x7d0,0x0e0,0x126,0x118,0x2a6,0x7d2,
- 0x4cf,0x2aa,0x60d,0x3dd,0x19f,0x24c,0x225,0x6a7,0x60c,0x7ee,0x6e4,0x41f,0x6ea,0x001,0x687,0x6cc,
- 0x6f7,0x514,0x40c,0x4de,0x11c,0x39a,0x1e3,0x53d,0x327,0x050,0x276,0x632,0x11d,0x183,0x0c5,0x3fe,
- 0x2a8,0x00b,0x30b,0x4f0,0x79d,0x257,0x3f0,0x15e,0x43c,0x6f1,0x110,0x596,0x2c6,0x5c5,0x0bb,0x318,
- 0x77d,0x306,0x1cc,0x267,0x5b6,0x161,0x151,0x160,0x638,0x7f4,0x1d3,0x1e7,0x452,0x6b1,0x057,0x197,
- 0x324,0x482,0x333,0x712,0x3ba,0x1a2,0x3f9,0x6ca,0x099,0x266,0x25a,0x17a,0x61d,0x1b8,0x556,0x4b3,
- 0x6a6,0x0ac,0x67b,0x792,0x66a,0x0ca,0x098,0x74d,0x75b,0x522,0x629,0x512,0x53a,0x73b,0x529,0x156,
- 0x65a,0x094,0x48e,0x737,0x123,0x129,0x1c0,0x18a,0x662,0x7ec,0x6cf,0x438,0x6cb,0x14a,0x4d9,0x728,
- 0x534,0x658,0x06c,0x70b,0x184,0x3fc,0x46b,0x791,0x665,0x7df,0x744,0x3fd,0x3ee,0x0e1,0x394,0x56e,
- 0x496,0x30a,0x7f1,0x55f,0x6a9,0x28d,0x770,0x2fc,0x41e,0x0ff,0x204,0x494,0x186,0x1c8,0x155,0x2eb,
- 0x328,0x5d5,0x49b,0x50c,0x0e7,0x76a,0x235,0x47e,0x62a,0x0fb,0x3f4,0x7c9,0x280,0x4c3,0x7a4,0x756,
- 0x0e2,0x5c3,0x24b,0x064,0x305,0x3e2,0x38b,0x7a8,0x31d,0x3d3,0x132,0x2ed,0x0b1,0x61f,0x02b,0x342,
- 0x18d,0x00a,0x62b,0x4be,0x72c,0x1ff,0x5c7,0x7de,0x295,0x0b3,0x059,0x7d5,0x253,0x20b,0x1f5,0x5f7,
- 0x27d,0x0a3,0x45d,0x7f8,0x1a0,0x088,0x43b,0x1ed,0x037,0x6f9,0x153,0x747,0x269,0x612,0x16a,0x265,
- 0x370,0x574,0x504,0x354,0x7a7,0x2b7,0x2d9,0x54a,0x7a0,0x745,0x421,0x734,0x528,0x0d1,0x371,0x4cc,
- 0x585,0x07b,0x477,0x58b,0x3cd,0x278,0x38c,0x03b,0x349,0x40a,0x7e7,0x6b4,0x6c5,0x19e,0x493,0x4e7,
- 0x4a8,0x382,0x610,0x72d,0x566,0x36c,0x5c8,0x766,0x083,0x34b,0x789,0x7ed,0x0b0,0x173,0x139,0x144,
- 0x28c,0x4e1,0x20c,0x3b3,0x41c,0x1bf,0x2e0,0x1a4,0x1f0,0x004,0x77f,0x7ef,0x114,0x63c,0x34a,0x27b,
- 0x070,0x4e0,0x537,0x4b4,0x127,0x302,0x033,0x47f,0x5f4,0x3cf,0x3c4,0x07f,0x272,0x102,0x6b5,0x121,
- 0x516,0x5f9,0x7b6,0x076,0x334,0x5c0,0x2e2,0x339,0x3e3,0x6b0,0x69c,0x0ea,0x56f,0x168,0x5e0,0x167,
- 0x3c9,0x639,0x191,0x762,0x7b5,0x795,0x384,0x772,0x3ce,0x76f,0x02f,0x23c,0x773,0x249,0x2c8,0x03d,
- 0x74c,0x06f,0x09c,0x0ae,0x6a2,0x131,0x4ea,0x1fc,0x309,0x2d8,0x3d0,0x51e,0x7e0,0x209,0x111,0x234,
- 0x01a,0x782,0x2e5,0x506,0x35c,0x7a5,0x2cc,0x517,0x30c,0x0d7,0x759,0x26a,0x4ce,0x401,0x1f3,0x10c,
- 0x449,0x29f,0x5b4,0x79e,0x6c7,0x028,0x530,0x681,0x397,0x00d,0x670,0x2d5,0x5af,0x520,0x0a4,0x6a5,
- 0x0df,0x723,0x039,0x4a7,0x281,0x70e,0x1e5,0x0de,0x02a,0x5c4,0x777,0x456,0x142,0x451,0x785,0x17d,
- 0x393,0x491,0x419,0x6d0,0x645,0x247,0x11e,0x0a1,0x580,0x473,0x3aa,0x709,0x17c,0x6bb,0x177,0x52f,
- 0x268,0x0a7,0x4ca,0x626,0x7a2,0x54e,0x484,0x4f5,0x4bd,0x5f2,0x198,0x4df,0x1c4,0x5a4,0x2d4,0x157,
- 0x4c0,0x241,0x531,0x40e,0x44b,0x2f8,0x0a0,0x1d7,0x350,0x152,0x67d,0x6b3,0x6c8,0x288,0x36e,0x7c3,
- 0x621,0x67e,0x4ef,0x7b7,0x7fa,0x359,0x408,0x6d7,0x29c,0x5c9,0x590,0x045,0x3c5,0x5b0,0x59e,0x0ce,
- 0x50a,0x236,0x1a6,0x641,0x54f,0x61c,0x05f,0x61a,0x74e,0x74b,0x016,0x6fe,0x311,0x39d,0x4ed,0x353,
- 0x625,0x4bc,0x335,0x42b,0x5d8,0x07d,0x03f,0x089,0x7e9,0x07c,0x1cf,0x024,0x188,0x53b,0x2bf,0x726,
-};
-
-static const UINT8 deco56_swap_table[0x800] =
-{
- 4,0,7,2,0,0,7,2,0,1,6,3,2,2,2,2,0,5,6,3,7,0,0,5,1,1,1,7,1,0,0,0,
- 2,5,6,6,2,0,4,1,5,0,1,7,4,7,0,4,6,2,1,5,3,1,2,4,6,4,2,0,4,3,3,7,
- 2,7,0,6,0,5,0,2,2,6,4,0,3,5,5,7,0,4,7,5,4,5,6,3,5,5,3,6,2,0,0,4,
- 2,3,7,5,6,4,7,4,3,2,0,0,0,1,5,4,0,3,7,3,1,6,4,1,2,6,7,4,1,3,0,7,
- 1,7,2,6,5,6,5,1,6,7,0,3,4,6,5,0,6,2,2,6,4,6,7,3,2,3,2,4,0,0,4,5,
- 6,5,0,3,0,6,0,6,0,6,7,1,3,5,0,4,5,3,7,4,3,3,5,1,2,1,6,7,1,6,7,6,
- 0,5,2,4,5,1,0,6,3,3,4,1,0,1,1,6,3,4,7,0,4,1,6,5,5,2,2,3,5,3,0,6,
- 6,7,4,4,7,3,3,2,0,6,3,0,4,7,7,6,1,1,1,7,1,5,3,7,6,4,6,2,2,4,1,5,
- 4,6,5,3,5,5,4,2,7,4,7,4,3,3,5,7,4,0,3,0,4,3,2,2,2,5,0,3,5,7,0,7,
- 2,7,7,7,2,3,3,6,4,0,3,7,2,5,1,2,1,0,5,4,3,5,5,3,6,3,4,6,2,2,1,4,
- 2,5,4,3,0,4,0,3,6,4,7,1,7,2,3,7,6,2,3,3,4,1,5,7,0,0,6,7,5,2,2,7,
- 1,5,7,4,6,3,0,4,4,3,6,6,5,1,1,6,6,1,1,5,1,5,1,4,1,6,5,6,2,6,6,0,
- 7,7,3,4,0,3,5,7,4,5,1,6,1,7,5,6,4,6,7,0,7,6,5,2,4,6,2,5,5,3,6,6,
- 5,6,2,5,1,7,6,1,3,5,1,4,6,6,6,4,6,0,4,2,5,6,5,0,4,5,1,1,2,2,1,3,
- 4,7,3,3,2,0,2,7,6,3,3,3,2,6,4,5,6,4,0,0,6,5,2,5,1,6,1,5,0,2,4,0,
- 0,5,6,0,5,1,7,1,5,7,6,5,7,3,2,1,2,0,4,5,7,4,3,5,0,6,1,6,1,6,2,6,
- 3,5,6,3,1,1,6,6,4,0,0,7,5,3,2,4,4,3,4,3,3,2,3,3,6,0,1,6,0,7,7,7,
- 6,7,5,5,7,0,6,7,4,7,3,5,4,5,0,1,1,7,0,4,1,0,0,3,2,6,2,6,4,5,4,6,
- 3,3,4,4,7,4,4,5,3,3,0,0,3,5,2,5,3,4,4,0,5,2,6,5,6,3,0,5,2,3,3,2,
- 5,7,0,4,1,7,0,5,7,5,3,6,1,5,2,4,3,4,7,7,5,7,7,5,5,2,5,4,7,2,5,5,
- 2,0,3,3,6,4,7,1,7,5,5,0,6,3,4,3,7,7,1,0,2,2,3,0,2,0,6,5,4,0,4,5,
- 6,0,3,7,5,0,3,4,0,6,7,0,2,3,6,3,5,6,3,4,6,0,1,1,2,2,1,6,6,1,6,1,
- 2,6,0,6,5,4,5,5,5,4,7,3,6,6,5,6,5,5,0,6,4,2,2,4,2,7,5,7,7,0,1,5,
- 5,3,4,1,6,4,3,0,1,5,0,2,0,7,4,1,6,4,5,3,4,4,4,6,5,4,7,6,5,1,6,3,
- 6,6,0,1,2,2,7,6,5,1,0,2,7,4,3,6,5,5,4,5,6,5,5,0,6,7,0,5,3,0,7,0,
- 6,0,3,3,4,6,0,3,5,7,4,5,0,1,1,5,3,4,3,5,2,6,6,1,1,2,7,1,2,1,5,7,
- 3,2,3,6,7,5,4,7,1,7,2,1,7,0,5,5,1,2,6,5,0,6,5,6,3,0,5,3,0,5,5,1,
- 0,3,0,5,1,5,6,3,2,7,4,1,0,5,6,3,7,5,1,3,0,3,1,0,0,1,1,7,4,0,7,4,
- 4,5,4,7,3,7,6,6,1,1,2,5,7,6,4,1,1,5,6,7,1,1,2,7,1,3,6,4,1,3,6,3,
- 5,3,5,6,2,0,4,5,3,5,1,1,0,4,2,6,6,5,3,2,5,5,1,0,4,3,5,7,6,3,4,4,
- 7,1,6,2,2,2,0,3,3,4,5,1,6,2,0,5,3,0,7,3,6,3,6,7,4,0,0,3,7,4,6,1,
- 1,1,6,0,0,0,7,1,2,3,5,5,2,3,0,3,7,2,5,1,3,5,4,0,4,6,2,2,0,7,7,7,
- 2,5,3,4,7,7,3,2,3,5,4,1,6,7,0,7,3,7,0,6,0,2,7,6,2,6,1,6,5,0,0,0,
- 2,2,2,2,5,5,5,6,5,0,4,1,1,2,2,0,3,5,5,5,6,3,5,1,3,0,1,4,1,0,0,3,
- 1,5,3,1,0,5,5,6,4,5,3,0,3,3,1,4,4,4,4,2,7,7,7,0,1,6,1,1,1,7,7,5,
- 6,4,7,5,3,6,6,1,1,6,7,1,4,4,7,7,6,0,6,4,6,7,6,6,3,3,1,1,3,7,3,1,
- 0,4,4,3,4,2,2,4,7,1,5,1,5,0,3,4,7,3,7,4,5,3,5,4,0,2,0,7,6,0,4,0,
- 6,0,7,1,3,4,7,0,0,6,7,5,7,7,2,2,0,7,2,4,7,1,6,1,1,5,5,5,2,5,3,5,
- 1,1,5,0,5,4,3,2,2,0,3,1,2,2,6,7,2,7,4,1,4,5,6,0,1,0,6,4,2,1,7,2,
- 2,2,4,1,3,0,3,5,7,2,1,1,3,6,2,5,5,7,4,2,7,5,5,5,1,4,4,0,7,2,0,6,
- 0,6,2,5,4,7,6,2,1,2,4,5,1,2,3,5,1,6,2,3,0,0,7,5,0,1,0,5,7,7,0,7,
- 2,6,0,0,3,6,1,0,4,0,5,1,5,7,4,3,1,5,7,7,6,4,7,3,3,4,6,5,0,4,7,6,
- 4,1,2,4,0,4,3,1,5,6,3,1,7,0,2,4,0,2,6,0,7,0,3,3,4,5,2,2,0,6,6,0,
- 3,7,7,1,5,0,2,1,5,1,1,5,2,4,5,3,1,6,4,7,6,3,4,3,5,3,6,7,7,4,4,3,
- 2,4,0,6,7,4,1,6,2,6,0,2,3,5,3,0,2,2,5,5,2,3,1,5,1,0,0,0,6,3,6,3,
- 3,5,6,4,0,4,2,6,3,5,1,2,7,1,3,0,3,3,0,2,3,2,7,0,7,7,4,6,2,4,7,0,
- 7,5,6,7,2,2,0,2,5,0,0,3,2,7,3,3,5,7,5,4,3,6,2,2,6,4,3,7,2,6,5,7,
- 7,7,6,0,2,6,7,2,4,0,1,0,3,5,3,4,3,1,7,7,5,4,0,1,6,3,0,7,6,4,5,4,
- 7,3,0,5,3,5,0,6,2,3,5,0,4,2,5,3,1,1,3,7,4,1,2,7,7,4,1,6,3,7,7,7,
- 6,6,4,1,1,3,1,3,4,7,5,6,2,7,2,5,1,1,6,7,0,7,6,3,4,1,4,0,1,2,6,0,
- 5,2,2,2,7,7,1,7,0,0,4,5,3,3,7,5,0,4,4,4,0,5,7,0,0,6,7,7,4,1,1,6,
- 1,1,0,1,4,5,2,6,0,4,4,5,7,0,3,7,4,6,6,2,1,7,6,4,7,1,7,2,5,5,6,6,
- 5,5,0,5,2,0,3,4,4,7,3,7,1,2,1,2,4,0,3,3,3,4,2,3,0,1,7,0,0,0,4,0,
- 7,2,1,5,6,3,4,6,2,6,6,3,5,4,3,4,0,4,7,4,7,7,0,2,1,6,7,0,6,7,5,7,
- 4,0,3,4,5,4,6,7,1,7,5,3,6,7,1,7,1,0,5,5,7,3,2,6,7,4,4,2,6,7,3,4,
- 1,7,4,1,5,3,3,5,3,4,6,4,4,6,0,4,2,6,0,4,3,1,7,2,7,7,1,7,1,0,4,6,
- 4,7,1,7,6,3,3,3,6,0,3,6,2,3,6,2,6,4,5,3,1,2,1,6,7,5,0,0,4,0,7,0,
- 6,1,1,2,2,7,6,2,5,4,4,6,3,5,4,7,3,1,4,0,0,2,4,1,4,6,3,6,0,7,2,3,
- 0,7,7,1,7,0,1,2,7,3,7,2,7,5,1,3,6,2,7,2,0,1,3,5,2,3,4,4,2,4,4,3,
- 4,4,0,3,7,2,6,6,6,0,0,7,1,0,1,5,0,1,7,1,4,3,7,7,6,1,0,4,3,3,1,2,
- 0,5,6,3,1,2,5,6,0,0,0,4,2,0,1,6,2,4,0,1,5,4,7,1,2,2,7,7,5,3,6,3,
- 3,5,4,0,5,3,0,1,5,5,4,0,5,0,1,1,3,6,4,2,3,1,5,5,7,4,0,5,7,0,6,6,
- 6,6,7,3,2,2,5,4,0,6,1,1,6,0,4,3,2,0,4,0,3,4,7,3,3,5,7,1,3,5,2,3,
- 6,5,6,0,1,1,6,0,6,1,7,2,4,5,6,5,0,4,0,3,2,3,7,7,0,3,5,0,4,1,1,1,
-};
-
-static const UINT8 deco74_xor_table[0x800] =
-{
- 13,13, 0,10, 8,15,12, 0,10, 8,13,15,12, 3,15, 2,11, 1, 8,10,13, 4,10,12,11, 2, 0, 3, 0,11, 8,11,
- 5,14,11, 2, 5, 3, 8,11, 8,13,14, 4, 3,13,11,10,14, 6, 9,11,11, 8, 0,15, 2, 4, 5, 7,15, 8,13,11,
- 7, 0,12, 3,13, 3, 1, 2, 6,14,10, 3,15,11,15, 7,13,14, 4, 6, 1,10,14, 8, 4,15, 2, 8,15, 9, 3,11,
- 15,11, 1,14,11, 5, 6,14, 3, 9,12,14,15,12, 6,15,12,13, 3,15, 4, 0, 8, 0, 6, 8, 0, 1, 6,10,14, 9,
- 12,15, 3, 5,11, 4, 9, 6, 9,13,12, 0,12,14, 9, 9,13,10,15, 8,15, 4, 9, 3,15,15,14, 8, 9, 0,10,11,
- 15,15, 1,15,10, 6,11,15, 7,11, 8,15, 2,12,15,15, 1,14,10,13, 0,14, 4, 3,12,13, 3, 5, 7, 0, 4, 1,
- 3, 5,13, 2, 0, 7, 2,13, 3, 7, 9, 2,15, 0, 2, 2, 2, 8, 6, 6,14, 2,15,11, 8, 0, 1,15, 5, 4, 2,15,
- 13, 1, 1,13, 4,10,15, 3,14, 2,12, 8, 9, 8,13, 2, 0,14, 2, 9, 0, 2,12, 3, 4,15,13, 8, 4,12, 3,11,
- 13,15, 5, 8, 7, 7, 7,15, 5,11,10, 4, 2, 1, 4,11,11,11, 8,10, 1,13, 5, 3, 1, 5, 8,15,10, 3,10, 9,
- 4,14, 2, 8, 6,14,14, 9, 7, 2,15, 0,15, 5,10, 3, 5,12,10, 0, 7, 2, 1,11, 4,13,10,14, 3, 1, 1, 1,
- 9,10,11, 0,14, 0, 1,11, 1, 2, 4,14, 9, 1,12,15, 0,10,11, 6,10, 4, 9, 1, 1, 5, 4, 3,15, 9,11, 0,
- 7,12,10, 9, 3,14, 4,11,11, 3, 2,10, 1,12, 4, 3,11, 1, 9, 1,15, 9, 3,11,12, 7,11, 6,15, 8, 1, 3,
- 10,12,10, 4, 2,13,13,11, 3,13, 1, 2, 7,13, 6, 6, 7,14,12,15, 9, 7,15, 7,15, 6, 5,11, 5, 1,15,11,
- 11, 7,14,12,12, 4,11, 3, 8, 9, 8,15,12, 8,10, 6, 0,12, 5, 9, 6, 7,10, 6, 1, 6,13, 1, 3,10, 8, 2,
- 1,13, 9, 4, 6,11, 2, 6, 2,15, 4,13, 3, 0, 7, 0, 9, 0, 6,14, 2,12,11, 0, 5,12, 7, 2, 6, 0, 2,10,
- 10, 5, 1,12, 5,14,12, 1,13, 2, 6,11, 7,10, 0, 0, 7, 1, 8,10, 2, 3, 6, 4,11,10,10,13,15, 0,14,10,
- 3, 8,14,10, 0, 7, 2, 4, 4, 4, 0, 9,15, 9,14, 3, 4, 3, 5, 4, 7,15, 6,13, 7,12, 1,12,10, 1, 8,15,
- 5,15,12,13,14,14, 0, 4, 0, 0, 5, 0, 6,14, 8,14,14, 1,11, 5, 5,11, 3, 0, 2,15,11, 2, 7, 1,14,10,
- 14, 3, 1, 5, 5,10, 1,10,13,13, 9, 9, 2, 1, 6, 7, 6, 7,11,15, 6, 6, 4,12, 8, 4, 3, 0, 0,15, 8, 2,
- 2,14, 1, 8,11, 7,11,10, 3,10, 6,10,14,10,14, 6, 1, 3, 5, 2, 2, 5, 5, 5, 8, 3,12,15, 6, 9,12,10,
- 4, 8,11, 6, 1, 8, 9,15,15,10, 0, 6,11, 8, 2, 9,15, 2, 2,10, 0, 5, 6, 5,11, 0, 0, 6, 0, 1,13, 6,
- 4, 4, 4, 1, 4, 0, 9,12, 2,10,13, 5,10,12,15,10,12, 3, 4, 7,10,13, 3,15,12,11, 6, 8,13, 2, 8,10,
- 3,12,13, 9,10, 4, 2,11, 1, 4, 9, 1,11, 2,14, 5, 2, 0,10,12, 0, 6, 7, 0, 2,10,15, 9, 0, 0, 8, 1,
- 0, 9, 1,14, 0,13,12,13, 9, 6,10,12,10, 0,13, 3, 7, 4,12, 0,11, 0, 0,11, 5, 0,14,15,11, 8, 2, 5,
- 4, 6, 5, 9,13, 5, 4, 4,13, 4, 0,12,10, 3, 2, 2, 0,13,11,12, 4,12, 9, 7,13,14,14, 8, 5, 0,13, 0,
- 1, 4,15,15, 9, 8, 5,12,13, 8,12, 8, 8,10, 0,15, 8,11, 5, 6, 9, 8,10,12, 9,12, 5,14, 6, 9, 7,15,
- 1, 9,15, 0, 1, 9, 1, 2, 8, 1, 4,12, 1, 4, 9, 7, 2,10, 8, 1,13, 6, 0,12, 0, 6,12,13, 5, 9, 4,12,
- 7,14,10, 4, 6, 8,12, 4, 9, 1, 2, 2, 3,13,10, 2,15, 7, 1, 6, 0,12, 5,10, 9, 1, 0,14,15, 3, 7, 6,
- 9,12,13, 7, 0,13, 2, 5, 7,13, 1, 3, 8,15, 9,10, 3, 0,15, 2,11, 5, 7, 3,10, 7, 4, 0, 7, 2,10, 2,
- 0, 3, 6, 6,13, 0, 5, 9,13, 8,11, 9, 0, 4, 1,11,15, 5,15, 3, 1,15, 1,15,12, 8, 9, 4, 1, 5, 8,11,
- 5, 7, 6,11, 5, 7,15,15, 9, 4, 7,12,14,11, 8, 6, 7, 7,12, 3, 9,12, 6, 9, 5, 8,13,14, 6,14, 4, 7,
- 12,12, 2,14,10, 2, 1,10, 3, 8,12,11,12, 7,12,15, 7,13, 9,15, 6, 3, 1,14,13,14, 8,11,14, 4, 9, 2,
- 13,13, 0, 2, 9,11, 3, 2, 4,11, 6, 8, 2,14, 7,15, 8, 8, 9, 5, 4,15,11, 7,13, 7, 4,15,15, 4, 2, 1,
- 6, 4, 3,15, 0,11,14,15, 6,15,11,14,10, 4, 4, 0, 5, 4, 6,15, 8,10,15, 1, 3, 8,13, 3, 3, 0, 7, 7,
- 2, 3, 2,11,14, 1,12,13,10, 2, 4,13, 4,13, 9, 3, 2, 1,14, 9, 8,11,15, 4, 8, 9,13, 2,10,14, 2, 4,
- 8,13,13,14,12, 1, 5,15,13, 3,12, 8,11,12,12, 1, 0,15, 9, 2, 6, 9, 3,12, 5, 0,10, 8, 5, 6,11,14,
- 7, 7, 0,10, 0,14,10, 8, 4,12, 5, 3,11,10, 5,13,15, 9,14,12,12, 0,14, 3, 2,12, 9,14,11,11, 9, 2,
- 8, 9,13, 0,10, 3,14,14,13, 6, 4,14, 2,10,10, 9,10, 4, 5, 4, 5, 3, 4, 6,15, 5,14, 2, 6,10, 4, 8,
- 6, 9, 9, 7, 3, 3, 9, 5, 9, 8,10, 5, 0,13, 7, 8, 4, 1, 3,13, 4, 1, 8,10, 3,11,13, 3,12, 0, 2, 0,
- 3, 1, 3, 3, 1, 6,13, 2, 3,13,11, 5, 9, 0, 4,12, 6,11, 4, 4, 3, 3,12, 7,13, 2,15,12, 1,11,15, 7,
- 10, 0, 9, 3, 3,13,12,12, 9,14, 2, 2, 0, 3,12, 2, 0,15, 0,10, 1, 9, 8, 3, 2, 3, 9, 1, 4, 5,12, 9,
- 10,11, 0, 2, 2,11, 5,13, 8, 1, 7, 8, 4,12,11, 1, 2,11, 7, 7, 8, 6, 5, 8, 8,14, 2, 6,10, 6, 1, 9,
- 3, 4, 2, 9,11, 1, 4, 9, 8,13, 5, 0,15,13, 0, 9, 9,11, 5,11, 6, 4, 6, 9, 5, 1,13, 8, 8, 2,14,14,
- 2, 3,14,12, 4, 6,15, 4,11,14, 7, 2, 3,14, 4,15, 4, 1, 8,13, 5, 5, 7, 0, 6,14, 0, 1, 1,13, 5,10,
- 10,14,14,10, 2, 9, 1,11, 5, 6, 8,12, 4, 2, 7, 7,11, 6,13,15, 1, 3, 9, 0,14,12, 9, 2, 3, 2, 1, 9,
- 12, 7, 4,12,14, 3, 3, 2, 3,14,10, 5, 8, 4, 9, 9,11,14,13,15,14, 7, 3,13, 0, 9, 4, 9,12,12, 1, 2,
- 10,11, 7,11, 1, 9, 2, 8, 1, 4, 5,14, 8,15, 9, 3, 8, 9, 6, 3, 7, 3, 1,10, 7, 5,13,14, 8, 7, 4,10,
- 14, 4, 6, 9, 6, 2, 5, 3, 8, 0, 9, 7, 2, 7,12, 8,12, 2,15, 4, 5, 0,11, 8,11, 2,14, 8,15, 0, 8, 9,
- 14, 5, 4,13,12,11, 2, 6,11, 9, 9, 7,14, 6, 6, 7, 4, 6, 3, 5,12, 5,11, 1,12,14, 0,13,15,13, 2, 2,
- 1, 8, 3,11, 3, 1, 6, 9,12,12, 5,10, 7,13,15, 4,12,10, 9,11,12,14,12,11,15, 2, 3, 2, 7, 8,15, 2,
- 2, 0,12,12, 9,11,13,14,13, 7, 3,11,11,14,12, 3, 2, 7, 4, 8, 9,11, 8,11, 5,10, 3, 7,15,11,12,15,
- 10, 8, 5,13, 8, 3, 9, 8, 5, 7, 1,15,15, 0,13, 7, 8, 6, 8,10, 8, 6, 6, 3, 4,10,13, 1, 6, 6,10, 1,
- 2,11, 4,15,15, 3, 1, 1,14,12, 1,15, 1, 6, 8,10,14,14, 9, 4, 7, 8, 6, 5, 3, 1, 0, 5, 3, 8, 6, 1,
- 4, 2,13,15,14, 5,13,11,10,13,11,11, 6,10, 7, 2, 1,15, 2,10, 5, 0,11, 5,15, 8, 0,14, 3,12,11, 7,
- 10, 1, 4, 0, 3,15, 7,15,12, 8, 9, 0, 1,15,13, 2, 3, 2,15,15,14,14, 7, 8,12,11,15,15,14, 2, 8, 8,
- 2, 0,15, 4, 2, 5,14,10, 4,12, 2, 1, 0,13, 7, 5, 4, 3,11, 6, 0, 2, 6,14, 9,14,10,13, 6,10, 5, 8,
- 15, 2, 4, 7, 1, 8, 5, 3,11, 5,12, 1, 3, 1,14, 4, 8,12, 6,10,14, 7,14, 7,15,14, 5,10, 6, 9, 3, 6,
- 12,15, 1,12, 0, 6, 1, 4,13,13, 7, 1, 7, 1, 9, 1, 8, 6, 9, 9, 8,12, 5, 2, 8,11, 9, 1, 3, 9, 0,11,
- 14, 8, 5, 9, 7, 7,14, 4, 6, 1, 6,11, 4, 0,15, 5, 9, 8, 5,13, 2, 6,13,10,12, 3, 4, 3,15, 5, 6,14,
- 2,10,14, 1, 5, 9, 6, 1, 9, 2, 7,11,14, 7,14, 5, 8, 9,14,13,14, 8, 3, 8, 4,10, 3,14, 0,13,12,15,
- 9, 9, 0, 4, 6, 7,12,13,12, 1,15, 2,13,13, 8,10,13, 5,12, 5, 4, 0, 2, 1,13,12, 2,14, 9,15,13, 9,
- 7,13, 7, 0,14, 7,12,15, 3,11, 0, 5, 8, 1, 0,12, 9, 0,11,13, 6, 3, 3, 7, 2, 2, 3, 5,14,14, 0, 9,
- 2, 6, 4,12, 2, 6, 3,12, 3,13, 3,14, 7, 1, 8,15,14, 3, 0,10, 2,15,15, 9,14,11,10,12,13,13,13, 9,
- 7, 7,12, 5, 3,14, 1, 5, 1,10, 6, 7, 9, 8,15, 7,13,11, 4, 5, 4,10,14,14,12, 1,13,14,15,14,15,10,
-};
-
-static const UINT16 deco74_address_table[0x800] =
-{
- 0x526,0x684,0x15f,0x1ad,0x736,0x341,0x4c3,0x23c,0x3eb,0x01f,0x18e,0x375,0x029,0x227,0x707,0x506,
- 0x5ce,0x0dc,0x5dc,0x5fd,0x15c,0x013,0x7b9,0x3c1,0x77d,0x1eb,0x53d,0x4a9,0x66e,0x0a9,0x4e2,0x361,
- 0x32d,0x151,0x16a,0x5ed,0x4b0,0x78a,0x0d1,0x01e,0x4be,0x7dd,0x22d,0x125,0x401,0x118,0x051,0x784,
- 0x48a,0x083,0x42f,0x56b,0x448,0x679,0x019,0x076,0x44c,0x663,0x3a1,0x740,0x095,0x242,0x4c5,0x13b,
- 0x3c4,0x130,0x122,0x047,0x16b,0x162,0x0d9,0x1f4,0x0be,0x018,0x56c,0x494,0x0b0,0x185,0x3b3,0x257,
- 0x764,0x05d,0x7d4,0x2bd,0x159,0x2fb,0x07a,0x365,0x4fd,0x451,0x452,0x52d,0x753,0x5c8,0x1a4,0x50e,
- 0x5ff,0x536,0x45b,0x281,0x4b8,0x1ff,0x228,0x5f9,0x1ca,0x587,0x0fd,0x02a,0x0da,0x03f,0x6a4,0x671,
- 0x2d9,0x377,0x39c,0x534,0x6c5,0x1b2,0x1db,0x263,0x5c3,0x0c7,0x474,0x4db,0x152,0x3de,0x47d,0x64a,
- 0x41c,0x66c,0x3d9,0x769,0x0c1,0x4ec,0x46b,0x274,0x6aa,0x623,0x31a,0x2ef,0x270,0x1e7,0x4e5,0x2e3,
- 0x1f9,0x203,0x150,0x4a3,0x7d3,0x0af,0x1c8,0x310,0x4cd,0x1a6,0x14e,0x636,0x3f8,0x04d,0x337,0x441,
- 0x3c0,0x1d8,0x482,0x399,0x3ef,0x520,0x260,0x352,0x4f8,0x521,0x271,0x6e6,0x5da,0x763,0x595,0x4e0,
- 0x2db,0x3c6,0x012,0x09b,0x14f,0x26b,0x512,0x0cb,0x616,0x605,0x63a,0x5e2,0x139,0x7cd,0x7d0,0x00c,
- 0x198,0x234,0x4f7,0x37e,0x0a1,0x4bd,0x1a1,0x2f0,0x3b4,0x0a6,0x1c7,0x51e,0x166,0x567,0x719,0x5cb,
- 0x3b5,0x31c,0x751,0x6a1,0x065,0x4fa,0x6e1,0x106,0x1a5,0x331,0x3a2,0x16d,0x756,0x090,0x554,0x241,
- 0x19a,0x35c,0x0e9,0x388,0x1c9,0x11b,0x5c7,0x56a,0x168,0x5b2,0x47f,0x5a9,0x551,0x3bb,0x3d3,0x428,
- 0x132,0x4d7,0x1d1,0x538,0x5d7,0x297,0x6df,0x0ce,0x728,0x2c5,0x6f6,0x60d,0x2a0,0x45f,0x46d,0x4f0,
- 0x5ea,0x1e0,0x4d6,0x442,0x32f,0x243,0x30f,0x0c9,0x344,0x42d,0x22f,0x327,0x2b2,0x158,0x7af,0x3d2,
- 0x127,0x6d3,0x411,0x7eb,0x632,0x277,0x60b,0x356,0x307,0x1c3,0x0f1,0x762,0x207,0x13e,0x25a,0x6d0,
- 0x38e,0x0a7,0x79a,0x2a5,0x771,0x39e,0x325,0x160,0x014,0x115,0x698,0x712,0x2c8,0x3c3,0x1bc,0x696,
- 0x0d6,0x692,0x49f,0x4de,0x5b3,0x0cc,0x2f3,0x667,0x318,0x52c,0x3e0,0x181,0x462,0x1f7,0x366,0x4f4,
- 0x547,0x44e,0x1be,0x3ed,0x04e,0x490,0x661,0x703,0x320,0x42e,0x406,0x161,0x259,0x702,0x58b,0x619,
- 0x51f,0x502,0x391,0x4ce,0x779,0x0f9,0x05b,0x45e,0x14a,0x66a,0x42b,0x35a,0x363,0x1b8,0x373,0x117,
- 0x78f,0x34e,0x2e0,0x2d7,0x7ee,0x27b,0x2c6,0x103,0x7dc,0x23d,0x2ad,0x049,0x68a,0x41f,0x582,0x3d5,
- 0x631,0x107,0x2be,0x28e,0x5af,0x119,0x694,0x744,0x546,0x19b,0x766,0x5cf,0x2ee,0x0e0,0x4a5,0x313,
- 0x6a3,0x3b1,0x28a,0x104,0x415,0x19e,0x01c,0x009,0x167,0x266,0x397,0x056,0x525,0x416,0x64f,0x689,
- 0x706,0x413,0x004,0x6c9,0x244,0x2f8,0x78b,0x510,0x02e,0x505,0x5a6,0x612,0x114,0x4d9,0x1cc,0x20f,
- 0x7e9,0x13a,0x584,0x495,0x6d2,0x5f4,0x093,0x43f,0x0e3,0x382,0x746,0x71e,0x794,0x72d,0x3ec,0x7c1,
- 0x03a,0x33d,0x1ec,0x128,0x27f,0x700,0x149,0x10c,0x553,0x2bc,0x492,0x080,0x5b0,0x015,0x1c4,0x691,
- 0x037,0x59f,0x542,0x4cf,0x253,0x5ae,0x74d,0x407,0x6e8,0x354,0x7b4,0x49b,0x300,0x6f2,0x26e,0x3f4,
- 0x086,0x37c,0x1ee,0x347,0x6b1,0x26d,0x105,0x55d,0x1ba,0x70b,0x236,0x3e3,0x0b6,0x2c2,0x33b,0x254,
- 0x140,0x2e8,0x5c2,0x03b,0x04c,0x5aa,0x480,0x560,0x6ed,0x633,0x7a6,0x29f,0x789,0x0e4,0x08a,0x15b,
- 0x57e,0x4fe,0x532,0x25c,0x215,0x709,0x5f7,0x197,0x586,0x2f1,0x5e0,0x477,0x61b,0x608,0x063,0x01b,
- 0x212,0x016,0x795,0x205,0x1fa,0x742,0x777,0x40b,0x146,0x73b,0x503,0x792,0x10e,0x545,0x7f6,0x3f7,
- 0x4ad,0x38d,0x3b9,0x516,0x2ac,0x3bd,0x31b,0x214,0x170,0x5d6,0x21b,0x1b1,0x3cd,0x213,0x565,0x40a,
- 0x113,0x515,0x724,0x03d,0x5c0,0x334,0x3e9,0x2a8,0x1c5,0x089,0x24e,0x7cb,0x4d5,0x280,0x36c,0x2b0,
- 0x430,0x0e6,0x0d5,0x3c5,0x662,0x275,0x60f,0x0de,0x248,0x07b,0x22c,0x7b5,0x340,0x739,0x2b8,0x65a,
- 0x508,0x116,0x079,0x7a0,0x4c2,0x099,0x4bb,0x52a,0x4d1,0x389,0x3a3,0x1e6,0x2a4,0x10d,0x4ba,0x581,
- 0x0b2,0x302,0x0f4,0x760,0x25d,0x4c6,0x39b,0x12b,0x046,0x637,0x38b,0x0f6,0x109,0x51c,0x40d,0x6e9,
- 0x6e2,0x7da,0x4a0,0x487,0x67e,0x65f,0x265,0x439,0x189,0x208,0x4b5,0x250,0x4f1,0x16e,0x496,0x3fc,
- 0x272,0x20c,0x7ae,0x292,0x5e3,0x472,0x458,0x66d,0x657,0x722,0x438,0x3b8,0x4e4,0x39a,0x598,0x539,
- 0x4b4,0x290,0x18b,0x1de,0x65c,0x2ea,0x6ff,0x20a,0x232,0x058,0x2d3,0x0d3,0x1f1,0x61d,0x0d2,0x1d2,
- 0x295,0x466,0x038,0x0ac,0x4c7,0x6c7,0x672,0x040,0x6a0,0x699,0x624,0x71f,0x120,0x10b,0x072,0x192,
- 0x3ba,0x638,0x58d,0x530,0x00e,0x761,0x6dd,0x1cd,0x18d,0x142,0x2eb,0x55e,0x7b2,0x367,0x5d3,0x71c,
- 0x2d2,0x0a0,0x6b2,0x134,0x286,0x12e,0x0cf,0x5dd,0x2e7,0x74b,0x261,0x082,0x726,0x14d,0x1e3,0x4b7,
- 0x7e7,0x435,0x294,0x31f,0x154,0x2cf,0x5f5,0x330,0x400,0x13d,0x629,0x7d1,0x4a2,0x3e6,0x3e8,0x1f5,
- 0x3f3,0x368,0x410,0x3ca,0x221,0x71b,0x669,0x195,0x7f2,0x70f,0x006,0x504,0x062,0x461,0x053,0x6f7,
- 0x0a3,0x6fa,0x1f2,0x745,0x7df,0x12a,0x05a,0x23b,0x4da,0x568,0x665,0x30d,0x5f6,0x328,0x283,0x169,
- 0x17c,0x601,0x201,0x6c3,0x6c0,0x491,0x63f,0x6f5,0x2b5,0x2c7,0x628,0x3f9,0x02b,0x38a,0x2e9,0x60c,
- 0x2a9,0x102,0x39f,0x0c3,0x42c,0x7cf,0x3df,0x4f9,0x235,0x3a8,0x7e4,0x485,0x21d,0x349,0x0e8,0x0b8,
- 0x345,0x683,0x18c,0x317,0x6ca,0x323,0x17d,0x36a,0x7c9,0x1a0,0x3e1,0x6f9,0x0a2,0x353,0x7b6,0x759,
- 0x287,0x7d7,0x25e,0x523,0x092,0x427,0x5a7,0x396,0x136,0x75a,0x3d6,0x507,0x385,0x5de,0x55f,0x0ad,
- 0x096,0x239,0x5b8,0x6cb,0x574,0x511,0x41e,0x537,0x074,0x148,0x7a4,0x70e,0x2cb,0x284,0x191,0x06e,
- 0x2da,0x51a,0x374,0x6ba,0x41b,0x552,0x460,0x371,0x183,0x0b3,0x444,0x748,0x7f4,0x59e,0x5bd,0x381,
- 0x0ab,0x6fd,0x4cc,0x3e5,0x5c5,0x09c,0x717,0x22e,0x708,0x1bb,0x70c,0x4a6,0x778,0x034,0x1d5,0x30b,
- 0x7f5,0x743,0x6ae,0x2de,0x2a6,0x613,0x5d0,0x40c,0x0bf,0x209,0x1b7,0x4f5,0x72b,0x620,0x647,0x643,
- 0x024,0x2ca,0x0bd,0x501,0x0a4,0x453,0x3ff,0x6b5,0x625,0x2f7,0x556,0x469,0x409,0x747,0x031,0x1f6,
- 0x47c,0x2ab,0x1fd,0x533,0x74f,0x395,0x754,0x0d0,0x6b0,0x42a,0x635,0x1af,0x6a9,0x49c,0x77b,0x611,
- 0x2ae,0x2b4,0x3a5,0x1b5,0x3fe,0x3ab,0x479,0x498,0x3aa,0x5c1,0x27e,0x26a,0x590,0x29d,0x02c,0x121,
- 0x404,0x61c,0x650,0x518,0x33a,0x768,0x0f2,0x0b4,0x686,0x67b,0x301,0x04b,0x1c1,0x7d9,0x772,0x0c8,
- 0x49a,0x68f,0x59b,0x419,0x73a,0x750,0x360,0x58e,0x264,0x52e,0x00d,0x46e,0x085,0x46f,0x788,0x164,
- 0x3d8,0x6db,0x52b,0x473,0x332,0x073,0x440,0x028,0x35b,0x3f1,0x14b,0x7fb,0x03e,0x28c,0x1ea,0x3f5,
- 0x6a8,0x53c,0x5b5,0x0fb,0x585,0x478,0x179,0x4ac,0x137,0x173,0x1e5,0x7c6,0x262,0x027,0x6d8,0x144,
- 0x3e4,0x673,0x7b7,0x145,0x6b7,0x596,0x1c6,0x54b,0x110,0x155,0x64e,0x4f6,0x44b,0x7fa,0x422,0x5a4,
- 0x06c,0x51d,0x023,0x0aa,0x459,0x5fc,0x11a,0x2dd,0x4e1,0x603,0x224,0x497,0x308,0x5c9,0x3dd,0x4e8,
- 0x48d,0x4cb,0x548,0x36f,0x094,0x36e,0x58a,0x299,0x797,0x57d,0x7c8,0x75f,0x321,0x431,0x045,0x131,
- 0x543,0x486,0x1ce,0x47b,0x57f,0x38f,0x775,0x1dd,0x34a,0x177,0x4d8,0x634,0x48c,0x2e5,0x5ee,0x255,
- 0x644,0x456,0x653,0x1e9,0x0ca,0x72e,0x576,0x710,0x6ab,0x4aa,0x4fb,0x569,0x541,0x309,0x1d9,0x714,
- 0x35d,0x757,0x278,0x7ef,0x2ec,0x668,0x6d7,0x335,0x62d,0x3b6,0x5b4,0x676,0x46c,0x0e2,0x5bc,0x7bd,
- 0x07f,0x267,0x68e,0x649,0x721,0x53f,0x226,0x0cd,0x6c2,0x312,0x1b9,0x11d,0x53e,0x602,0x6bd,0x561,
- 0x19c,0x62a,0x135,0x651,0x09e,0x3c8,0x237,0x204,0x610,0x798,0x690,0x5a5,0x5f3,0x0f8,0x540,0x614,
- 0x14c,0x5d1,0x00f,0x402,0x4b9,0x583,0x5c6,0x21e,0x457,0x3f6,0x07e,0x216,0x4b1,0x369,0x06b,0x37f,
- 0x091,0x580,0x61a,0x1cf,0x4b2,0x2c4,0x1bf,0x38c,0x0ff,0x314,0x7d8,0x26f,0x7a9,0x31e,0x2f2,0x7ca,
- 0x12d,0x101,0x54e,0x32e,0x791,0x4a1,0x76d,0x6b9,0x34d,0x061,0x69c,0x6bb,0x41d,0x571,0x711,0x339,
- 0x5bb,0x1e1,0x680,0x026,0x032,0x23f,0x524,0x329,0x488,0x2c9,0x7f8,0x043,0x0dd,0x5c4,0x589,0x6f1,
- 0x4c8,0x00b,0x782,0x670,0x6b8,0x196,0x1d4,0x43d,0x10f,0x56e,0x030,0x165,0x559,0x6b6,0x4ef,0x67d,
- 0x15d,0x56f,0x2ed,0x7a2,0x04a,0x4c1,0x7a3,0x2e4,0x111,0x5f8,0x725,0x685,0x3bc,0x1fb,0x5a3,0x178,
- 0x293,0x3a6,0x3a9,0x036,0x7ab,0x07d,0x4c9,0x5a1,0x5b7,0x19d,0x13c,0x519,0x0ee,0x157,0x5a8,0x23e,
- 0x2af,0x62e,0x25b,0x785,0x73d,0x172,0x3be,0x7ed,0x4e6,0x15e,0x5e7,0x211,0x44d,0x682,0x7db,0x5b6,
- 0x40f,0x020,0x0f5,0x7c0,0x609,0x5f2,0x6cf,0x08b,0x256,0x514,0x799,0x5d2,0x1e2,0x727,0x7e5,0x279,
- 0x30c,0x11c,0x30a,0x58f,0x0df,0x03c,0x577,0x5ef,0x7c2,0x55a,0x5b1,0x776,0x65d,0x2aa,0x225,0x3db,
- 0x276,0x6a5,0x5ec,0x229,0x5ca,0x513,0x1a8,0x30e,0x783,0x3fd,0x124,0x535,0x13f,0x64c,0x1a3,0x607,
- 0x02f,0x0e5,0x701,0x24c,0x45c,0x566,0x6d1,0x035,0x044,0x455,0x042,0x20e,0x7e8,0x767,0x2fa,0x476,
- 0x003,0x2bf,0x37a,0x5d4,0x247,0x660,0x1f0,0x2d6,0x36d,0x564,0x3c2,0x37b,0x2f4,0x17a,0x4a7,0x176,
- 0x3d4,0x59a,0x383,0x258,0x08e,0x098,0x528,0x62c,0x72f,0x35e,0x0b5,0x56d,0x6f0,0x44a,0x723,0x45d,
- 0x4eb,0x055,0x285,0x0ed,0x182,0x429,0x393,0x470,0x555,0x3a4,0x078,0x1a2,0x43a,0x16c,0x65e,0x087,
- 0x7f3,0x74e,0x273,0x386,0x6da,0x550,0x25f,0x206,0x039,0x2a3,0x2e6,0x199,0x1cb,0x445,0x4c0,0x06a,
- 0x54c,0x316,0x0d8,0x741,0x194,0x05c,0x606,0x43e,0x100,0x21a,0x43c,0x4c4,0x693,0x5e1,0x1d3,0x240,
- 0x20d,0x433,0x796,0x238,0x765,0x4af,0x0eb,0x7e1,0x050,0x4ee,0x2d5,0x75e,0x5a2,0x5be,0x70a,0x3cf,
- 0x376,0x005,0x61e,0x002,0x5cd,0x069,0x0c6,0x041,0x084,0x64b,0x60e,0x268,0x51b,0x000,0x464,0x34b,
- 0x615,0x3d7,0x5cc,0x1b0,0x233,0x7fe,0x641,0x53a,0x24d,0x00a,0x32a,0x18f,0x282,0x749,0x3dc,0x0b7,
- 0x5b9,0x336,0x0c4,0x5eb,0x398,0x475,0x2d8,0x5bf,0x646,0x418,0x5a0,0x3cc,0x531,0x187,0x3ea,0x6bc,
- 0x1ab,0x1e4,0x69d,0x63c,0x6f8,0x0f3,0x251,0x2dc,0x648,0x6a7,0x219,0x731,0x573,0x7f1,0x070,0x188,
- 0x7d5,0x436,0x730,0x6de,0x27d,0x163,0x129,0x403,0x298,0x2b9,0x06d,0x357,0x249,0x4b3,0x296,0x2b6,
- 0x6b4,0x697,0x770,0x484,0x303,0x7fc,0x1da,0x2d1,0x7f0,0x379,0x16f,0x222,0x48f,0x394,0x64d,0x68d,
- 0x3b2,0x5ab,0x3e2,0x5f1,0x7ff,0x69b,0x50c,0x384,0x655,0x346,0x446,0x7ea,0x4f3,0x2fc,0x2b1,0x562,
- 0x387,0x2ff,0x4ed,0x5e5,0x5d9,0x6fe,0x1ef,0x656,0x47e,0x171,0x067,0x600,0x6eb,0x246,0x4d2,0x73c,
- 0x305,0x1d0,0x434,0x5d8,0x6e7,0x781,0x32c,0x2bb,0x4d4,0x4b6,0x493,0x0c0,0x3bf,0x4f2,0x7ba,0x774,
- 0x6ad,0x378,0x7c4,0x63b,0x733,0x752,0x454,0x184,0x74c,0x3c9,0x618,0x688,0x054,0x414,0x6c4,0x07c,
- 0x2b7,0x3c7,0x2fe,0x73e,0x351,0x4a4,0x3fa,0x6e4,0x6d9,0x4a8,0x1fe,0x517,0x010,0x4d3,0x6c8,0x153,
- 0x180,0x593,0x7b1,0x7a5,0x24b,0x141,0x424,0x7e0,0x186,0x405,0x2ce,0x604,0x425,0x447,0x677,0x79b,
- 0x76f,0x0ec,0x2cd,0x358,0x1fc,0x3b7,0x0f0,0x32b,0x2cc,0x138,0x735,0x09a,0x549,0x704,0x720,0x786,
- 0x3f2,0x088,0x639,0x133,0x7b0,0x4ae,0x2f9,0x007,0x54d,0x68c,0x509,0x08d,0x67a,0x443,0x0ba,0x499,
- 0x06f,0x71d,0x0bc,0x695,0x3b0,0x63e,0x734,0x057,0x033,0x7a1,0x068,0x355,0x49d,0x5ba,0x76c,0x675,
- 0x54a,0x10a,0x417,0x3a0,0x658,0x1df,0x7aa,0x112,0x6c1,0x372,0x420,0x048,0x011,0x2df,0x202,0x622,
- 0x483,0x5e6,0x28d,0x0a8,0x324,0x380,0x6ea,0x449,0x23a,0x6a2,0x066,0x021,0x6fb,0x1e8,0x48b,0x0d4,
- 0x666,0x33f,0x077,0x50f,0x370,0x338,0x76a,0x2fd,0x1d6,0x2a2,0x77e,0x489,0x3ad,0x73f,0x7c5,0x17b,
- 0x471,0x5df,0x1aa,0x2f5,0x0db,0x7d6,0x6e0,0x7cc,0x645,0x729,0x08c,0x097,0x790,0x41a,0x4dc,0x7a8,
- 0x1bd,0x21f,0x01a,0x3ac,0x713,0x193,0x55b,0x59d,0x1c0,0x6ce,0x364,0x33c,0x4e9,0x57b,0x426,0x1a7,
- 0x21c,0x1ed,0x343,0x69a,0x732,0x6ef,0x55c,0x72a,0x18a,0x7f9,0x432,0x29b,0x7b3,0x468,0x319,0x0fe,
- 0x245,0x7ec,0x7be,0x24f,0x008,0x500,0x31d,0x33e,0x217,0x6be,0x50d,0x230,0x02d,0x15a,0x46a,0x1ac,
- 0x220,0x0ae,0x1d7,0x50a,0x558,0x718,0x40e,0x621,0x594,0x52f,0x27a,0x758,0x29e,0x4d0,0x642,0x75b,
- 0x156,0x20b,0x350,0x39d,0x0bb,0x08f,0x218,0x075,0x652,0x57c,0x6d5,0x0ea,0x678,0x052,0x5db,0x1b4,
- 0x423,0x3a7,0x4df,0x50b,0x77f,0x49e,0x0c5,0x5ac,0x79e,0x3fb,0x591,0x5fa,0x0c2,0x0e1,0x755,0x67c,
- 0x66b,0x60a,0x66f,0x481,0x467,0x7a7,0x61f,0x57a,0x17e,0x05f,0x5f0,0x7f7,0x0d7,0x773,0x05e,0x7e2,
- 0x6e5,0x659,0x4e7,0x738,0x24a,0x12c,0x77c,0x4bf,0x45a,0x69f,0x7fd,0x69e,0x529,0x19f,0x2ba,0x0b1,
- 0x627,0x412,0x65b,0x2f6,0x269,0x342,0x2b3,0x291,0x0fc,0x3da,0x12f,0x4e3,0x592,0x0fa,0x463,0x7bc,
- 0x780,0x11f,0x4ff,0x7ac,0x28f,0x175,0x0ef,0x6d6,0x4ea,0x527,0x3ee,0x0f7,0x0b9,0x311,0x27c,0x025,
- 0x2c3,0x71a,0x6af,0x190,0x11e,0x588,0x78e,0x6c6,0x147,0x3ae,0x578,0x6ac,0x4fc,0x252,0x7c7,0x43b,
- 0x557,0x7e3,0x2d0,0x63d,0x79c,0x62b,0x640,0x123,0x6e3,0x306,0x77a,0x4ab,0x787,0x421,0x1dc,0x390,
- 0x1ae,0x1f3,0x705,0x7d2,0x081,0x2e1,0x5e9,0x5fe,0x687,0x2a1,0x59c,0x0a5,0x223,0x78d,0x35f,0x7c3,
- 0x326,0x575,0x348,0x715,0x6b3,0x793,0x6f4,0x7b8,0x064,0x210,0x2c0,0x579,0x022,0x3af,0x74a,0x200,
- 0x1a9,0x75d,0x7ce,0x72c,0x79f,0x75c,0x09d,0x4dd,0x2e2,0x7e6,0x17f,0x716,0x570,0x7de,0x017,0x76e,
- 0x54f,0x362,0x29a,0x522,0x1b3,0x22a,0x572,0x3d1,0x408,0x437,0x3cb,0x6dc,0x58c,0x6a6,0x37d,0x53b,
- 0x1b6,0x7bf,0x5e8,0x143,0x289,0x392,0x22b,0x5fb,0x5ad,0x01d,0x2c1,0x26c,0x76b,0x70d,0x44f,0x6fc,
- 0x79d,0x4ca,0x450,0x34f,0x3e7,0x1c2,0x664,0x3d0,0x001,0x7ad,0x6f3,0x359,0x544,0x67f,0x563,0x6d4,
- 0x108,0x48e,0x3f0,0x04f,0x322,0x6cd,0x2d4,0x597,0x09f,0x62f,0x5e4,0x28b,0x681,0x231,0x630,0x315,
- 0x68b,0x059,0x3ce,0x36b,0x654,0x47a,0x29c,0x6bf,0x071,0x6cc,0x2a7,0x333,0x304,0x1f8,0x0e7,0x599,
- 0x174,0x060,0x674,0x6ec,0x7bb,0x288,0x6ee,0x737,0x34c,0x617,0x4bc,0x5d5,0x78c,0x465,0x126,0x626,
-};
-
-static const UINT8 deco74_swap_table[0x800] =
-{
- 2,7,5,7,1,1,4,4,7,5,6,7,7,3,4,3,0,2,1,3,0,4,7,7,2,5,3,1,4,4,6,7,
- 6,7,4,5,1,3,0,3,7,2,5,0,1,5,2,1,4,0,6,1,1,2,4,2,1,0,6,5,2,6,4,6,
- 4,4,2,2,0,6,0,4,6,0,1,7,0,6,1,2,5,0,1,5,0,2,6,2,2,7,0,7,2,4,6,3,
- 3,5,1,1,2,3,4,1,4,6,1,4,0,6,6,3,5,4,1,1,3,0,5,7,5,4,5,4,3,6,2,0,
- 4,5,7,3,1,3,4,7,7,4,2,7,1,6,4,1,1,4,0,4,2,0,4,0,1,5,6,4,7,7,3,7,
- 7,0,1,2,6,7,7,0,5,1,2,4,2,0,4,4,7,4,0,3,7,1,7,4,2,5,7,4,3,7,3,6,
- 7,3,0,5,1,7,5,3,0,1,6,1,7,4,7,6,5,1,2,7,3,3,1,4,6,2,3,7,0,4,5,6,
- 3,2,3,1,7,6,0,1,5,7,4,0,5,1,4,1,2,0,6,4,3,5,7,4,3,0,0,6,5,1,7,6,
- 0,2,4,0,0,5,4,7,4,3,3,0,2,3,5,7,0,3,2,3,7,2,0,0,7,6,3,5,0,1,3,2,
- 4,7,2,3,4,7,1,5,6,7,3,6,4,1,7,7,4,4,3,4,0,7,5,3,2,5,7,7,0,4,0,7,
- 7,2,5,1,2,4,7,6,0,6,7,0,5,0,1,6,5,0,2,4,5,1,6,7,6,0,7,0,6,0,1,4,
- 3,2,0,2,4,6,3,2,3,3,0,5,7,2,3,7,1,2,6,3,7,2,0,5,7,1,2,6,4,3,4,6,
- 4,0,1,4,2,3,3,2,3,7,0,7,4,3,2,1,0,3,5,2,5,3,0,0,0,4,6,4,4,6,1,0,
- 3,1,1,5,7,1,5,2,0,1,5,7,2,4,5,4,2,6,3,1,4,0,3,0,1,7,3,5,1,1,1,2,
- 2,3,4,1,2,0,0,7,1,6,1,5,2,2,2,1,6,6,0,5,5,4,2,3,7,4,6,6,6,3,1,3,
- 3,0,1,7,4,6,3,7,0,1,4,2,3,3,1,7,6,0,6,4,1,3,6,1,6,2,3,1,6,5,3,4,
- 2,1,3,3,1,6,6,3,6,6,5,0,1,7,1,0,4,6,0,6,0,0,3,6,5,6,4,0,4,2,6,5,
- 0,4,2,7,6,2,4,6,6,4,6,6,0,5,6,6,5,2,3,0,4,4,6,4,1,6,6,0,7,0,1,6,
- 1,2,2,4,6,4,2,5,4,2,2,5,4,1,3,3,4,5,3,4,5,6,3,5,2,3,7,6,1,0,4,4,
- 7,6,0,5,2,6,2,2,3,7,1,5,4,2,6,7,0,5,5,2,5,7,5,6,2,3,0,5,4,5,2,1,
- 0,5,3,6,7,2,3,4,0,3,5,7,6,6,5,6,7,2,2,2,3,5,0,2,0,1,2,2,4,6,7,2,
- 5,4,4,3,5,7,3,4,5,3,4,7,1,2,3,5,3,3,6,0,4,4,2,5,4,1,7,2,7,7,4,5,
- 2,1,0,3,4,1,3,6,2,4,3,3,3,0,0,1,2,0,3,3,6,5,6,7,5,2,0,4,2,0,1,6,
- 7,1,0,4,1,7,5,2,3,0,2,7,2,2,4,6,7,5,7,5,0,6,5,3,2,7,2,3,3,6,0,4,
- 1,5,2,2,5,6,4,1,3,6,2,7,4,3,4,1,6,0,5,6,0,0,3,1,1,2,4,3,4,1,4,2,
- 0,3,0,7,6,3,2,0,2,3,6,5,3,3,6,6,2,4,5,4,1,5,1,6,0,7,5,5,4,7,3,7,
- 4,3,5,0,7,4,4,3,5,5,7,7,2,4,6,6,7,0,7,6,1,0,2,4,0,2,3,5,4,6,3,5,
- 2,4,2,4,2,4,5,2,6,5,2,4,6,2,2,2,4,4,2,1,4,0,1,1,1,4,7,0,3,1,7,5,
- 7,5,5,4,1,0,2,3,5,3,3,7,2,6,1,2,7,4,1,5,2,4,2,5,4,0,5,0,5,4,1,3,
- 5,1,7,4,2,2,1,3,3,7,6,3,2,1,7,5,3,2,4,6,6,5,6,2,0,2,5,3,4,2,3,4,
- 0,2,6,3,4,6,6,7,3,0,3,0,1,0,2,7,4,6,0,3,5,2,5,5,5,3,6,4,7,3,5,3,
- 7,1,1,3,1,5,7,3,0,4,6,5,3,3,2,3,0,7,0,5,1,1,7,2,2,0,0,6,7,6,7,6,
- 3,4,7,3,7,6,6,0,7,6,3,0,0,6,2,7,1,0,2,7,6,2,2,2,7,1,3,2,3,4,1,3,
- 1,7,5,2,0,7,7,0,6,1,6,0,2,2,6,7,0,6,7,0,6,4,0,1,6,6,6,0,1,3,4,4,
- 4,1,2,2,7,3,7,2,4,4,3,4,0,3,1,0,0,7,3,3,6,5,0,4,3,5,5,0,1,7,2,3,
- 3,0,6,6,5,6,4,0,6,0,1,7,5,4,2,6,3,7,4,4,5,6,7,6,1,7,2,5,5,5,1,4,
- 3,0,6,3,2,3,0,2,0,0,0,1,0,6,3,7,7,4,3,2,3,4,6,4,2,0,5,3,3,6,4,3,
- 5,1,4,0,0,1,0,5,2,1,6,3,3,1,1,6,2,0,3,0,7,0,2,0,5,3,6,6,0,6,2,4,
- 0,3,0,1,2,1,6,4,5,2,3,4,1,2,0,6,7,0,5,5,0,0,3,7,1,4,1,2,7,3,4,7,
- 4,4,5,5,7,0,4,2,0,7,4,4,7,2,7,2,1,7,4,5,5,7,7,4,0,5,2,2,7,0,5,3,
- 3,2,0,5,2,1,1,7,0,5,4,3,1,3,2,5,3,4,5,3,4,6,2,2,2,5,4,2,1,3,1,4,
- 7,5,5,7,3,2,0,4,6,0,4,1,6,5,6,1,3,0,1,1,0,4,5,1,5,0,2,3,7,2,5,6,
- 0,6,4,2,6,1,5,6,3,3,5,0,3,2,0,0,1,2,1,0,2,7,5,1,6,4,1,7,6,5,3,2,
- 3,4,3,2,7,1,6,2,3,2,4,3,4,7,0,5,2,0,6,7,2,0,3,7,6,7,4,0,4,3,7,7,
- 5,2,6,6,7,6,3,6,6,1,6,2,3,1,5,1,0,5,1,0,3,7,4,5,0,3,2,1,3,5,3,1,
- 1,7,4,2,1,2,3,0,4,7,1,1,6,3,6,4,0,2,7,1,0,5,4,6,1,2,7,1,3,6,5,2,
- 3,0,5,7,3,5,5,2,2,6,1,6,0,4,5,7,3,4,0,7,0,5,4,3,6,5,7,0,1,0,0,7,
- 3,3,4,4,1,4,7,1,2,0,0,7,0,5,3,4,6,3,4,6,4,2,5,0,7,5,5,6,6,7,6,7,
- 3,4,5,0,5,5,7,5,4,4,1,4,3,1,4,3,3,2,5,7,6,3,0,4,1,2,5,4,4,3,0,2,
- 7,5,5,7,3,7,3,3,7,0,0,5,3,1,4,4,6,0,1,3,1,4,7,2,1,1,4,1,0,7,4,5,
- 2,7,2,4,5,7,3,3,7,6,4,4,5,3,2,4,0,3,5,5,5,4,3,6,7,7,5,1,3,0,2,6,
- 3,2,0,4,6,7,4,6,7,2,0,6,7,2,5,0,1,3,0,2,4,7,5,1,4,7,7,4,2,3,6,4,
- 3,2,0,4,0,6,0,0,5,7,0,4,0,4,6,3,6,0,0,3,1,0,1,2,6,2,1,0,5,7,6,4,
- 5,4,1,2,3,6,6,1,3,1,1,2,4,3,1,4,1,0,4,2,0,3,2,1,1,1,1,6,2,1,3,0,
- 6,6,2,5,5,5,2,6,7,6,1,1,3,1,1,6,0,2,6,0,3,6,0,6,3,4,3,3,0,2,0,1,
- 5,6,5,0,5,3,4,2,7,5,6,4,4,1,1,4,7,7,1,2,3,6,1,6,4,5,3,6,5,1,7,1,
- 0,6,6,2,6,2,6,0,2,2,6,1,0,2,5,6,6,7,4,4,7,6,1,0,1,4,3,1,2,1,4,1,
- 4,6,2,5,1,2,0,2,3,4,3,0,3,7,7,6,5,1,7,3,1,0,6,1,1,3,0,7,4,3,1,3,
- 7,6,1,5,4,3,5,4,7,0,2,5,4,5,1,6,3,7,4,5,6,7,3,6,1,2,3,3,6,6,1,5,
- 2,0,7,2,5,4,1,7,6,6,0,1,7,5,2,4,1,2,0,2,2,2,7,4,3,0,6,0,7,2,1,7,
- 5,1,7,1,2,2,4,3,1,3,6,5,5,0,2,6,2,6,0,1,4,1,1,4,3,2,6,0,6,3,7,5,
- 6,0,7,7,7,2,0,4,2,5,6,3,4,3,2,0,3,1,6,2,3,3,6,7,1,5,6,6,4,0,6,1,
- 1,6,2,0,7,6,3,2,5,6,0,4,2,4,4,2,5,7,5,4,4,1,6,3,4,6,5,5,6,0,0,4,
- 4,7,2,2,1,3,4,4,1,7,0,2,5,4,7,3,7,6,1,5,6,0,7,4,1,1,5,2,2,6,7,2,
-};
-
-static void deco_decrypt(UINT8 *src, INT32 len, const UINT8 *xor_table,const UINT16 *address_table,const UINT8 *swap_table,INT32 remap_only)
-{
- UINT16 *rom = (UINT16*)src;
- len/=2;
- UINT16 *buffer = (UINT16*)BurnMalloc(len * sizeof(INT16));
- INT32 i;
-
-#if 0
- /* we work on 16-bit words but data is loaded as 8-bit, so swap bytes on LSB machines */
- if (ENDIANNESS_NATIVE == ENDIANNESS_LITTLE)
- for (i = 0;i < len;i++)
- rom[i] = BIG_ENDIANIZE_INT16(rom[i]);
-#else
-#ifdef LSB_FIRST
- for (i = 0; i < len; i++) {
- rom[i] = (rom[i] << 8) | (rom[i] >> 8);
- }
-#endif
-#endif
-
- memcpy(buffer,rom,len*2);
-
- for (i = 0;i < len;i++)
- {
- INT32 addr = (i & ~0x7ff) | address_table[i & 0x7ff];
- INT32 pat = swap_table[i & 0x7ff];
-
- if (remap_only)
- rom[i] = buffer[addr];
- else
- rom[i] = BITSWAP16(buffer[addr] ^ xor_masks[xor_table[addr & 0x7ff]],
- swap_patterns[pat][0],
- swap_patterns[pat][1],
- swap_patterns[pat][2],
- swap_patterns[pat][3],
- swap_patterns[pat][4],
- swap_patterns[pat][5],
- swap_patterns[pat][6],
- swap_patterns[pat][7],
- swap_patterns[pat][8],
- swap_patterns[pat][9],
- swap_patterns[pat][10],
- swap_patterns[pat][11],
- swap_patterns[pat][12],
- swap_patterns[pat][13],
- swap_patterns[pat][14],
- swap_patterns[pat][15]);
- }
-
- BurnFree(buffer);
-
-#if 0
- /* we work on 16-bit words but data is loaded as 8-bit, so swap bytes on LSB machines */
- if (ENDIANNESS_NATIVE == ENDIANNESS_LITTLE)
- for (i = 0;i < len;i++)
- rom[i] = BIG_ENDIANIZE_INT16(rom[i]);
-#else
-#ifdef LSB_FIRST
- for (i = 0; i < len; i++) {
- rom[i] = (rom[i] << 8) | (rom[i] >> 8);
- }
-#endif
-#endif
-}
-
-void deco56_decrypt_gfx(UINT8 *rom, INT32 len)
-{
- deco_decrypt(rom,len,deco56_xor_table,deco56_address_table,deco56_swap_table, 0);
-}
-
-void deco74_decrypt_gfx(UINT8 *rom, INT32 len)
-{
- deco_decrypt(rom,len,deco74_xor_table,deco74_address_table,deco74_swap_table, 0);
-}
-
-void deco56_remap_gfx(UINT8 *rom, INT32 len)
-{
- // Apply address remap, but not XOR/shift
- deco_decrypt(rom,len,deco56_xor_table,deco56_address_table,deco56_swap_table, 1);
-}
-
-static UINT16 decrypt(UINT16 data, INT32 address, INT32 select_xor)
-{
- static const UINT16 xors[16] =
- {
- 0xb52c,0x2458,0x139a,0xc998,0xce8e,0x5144,0x0429,0xaad4,0xa331,0x3645,0x69a3,0xac64,0x1a53,0x5083,0x4dea,0xd237
- };
- static const UINT8 bitswaps[16][16] =
- {
- { 12,8,13,11,14,10,15,9, 3,2,1,0,4,5,6,7 }, { 10,11,14,12,15,13,8,9, 6,7,5,3,0,4,2,1 },
- { 14,13,15,9,8,12,11,10, 7,4,1,5,6,0,3,2 }, { 15,14,8,9,10,11,13,12, 1,2,7,3,4,6,0,5 },
- { 10,9,13,14,15,8,12,11, 5,2,1,0,3,4,7,6 }, { 8,9,15,14,10,11,13,12, 0,6,5,4,1,2,3,7 },
- { 14,8,15,9,10,11,13,12, 4,5,3,0,2,7,6,1 }, { 13,11,12,10,15,9,14,8, 6,0,7,5,1,4,3,2 },
- { 12,11,13,10,9,8,14,15, 0,2,4,6,7,5,3,1 }, { 15,13,9,8,10,11,12,14, 2,1,0,7,6,5,4,3 },
- { 13,8,9,10,11,12,15,14, 6,0,1,2,3,7,4,5 }, { 12,11,10,8,9,13,14,15, 6,5,4,0,7,1,2,3 },
- { 12,15,8,13,9,11,14,10, 6,5,4,3,2,1,0,7 }, { 11,12,13,14,15,8,9,10, 4,5,7,1,6,3,2,0 },
- { 13,8,12,14,11,15,10,9, 7,6,5,4,3,2,1,0 }, { 15,14,13,12,11,10,9,8, 0,6,7,4,3,2,1,5 }
- };
- INT32 j, xorval;
- const UINT8 *bs;
-
- // calculate bitswap to use
- j = ((address ^ select_xor) & 0xf0) >> 4;
- if (address & 0x20000) j ^= 4;
- bs = bitswaps[j];
-
- // calculate xor to use
- j = (address ^ select_xor) & 0x0f;
- if (address & 0x40000) j ^= 2; // boogwing
- xorval = xors[j];
-
- // decrypt
- return xorval ^ BITSWAP16(data,
- bs[0],bs[1],bs[2],bs[3],bs[4],bs[5],bs[6],bs[7],
- bs[8],bs[9],bs[10],bs[11],bs[12],bs[13],bs[14],bs[15]);
-}
-
-void deco102_decrypt_cpu(UINT8 *data, UINT8 *ops, INT32 size, INT32 address_xor, INT32 data_select_xor, INT32 opcode_select_xor)
-{
- UINT16 *rom = (UINT16*)data;
- UINT16 *opcodes = (UINT16*)ops;
- UINT16 *buf = (UINT16*)BurnMalloc(size);
-
- memcpy(buf, rom, size);
-
-// memory_set_decrypted_region(space, 0, size - 1, opcodes);
-// m68k_set_encrypted_opcode_range(devtag_get_device(machine, cputag), 0, size);
-
- for (INT32 i = 0; i < size / 2; i++)
- {
- INT32 src;
-
- // calculate address of encrypted word in ROM
- src = i & 0xf0000;
- if (i & 0x0001) src ^= 0xbe0b;
- if (i & 0x0002) src ^= 0x5699;
- if (i & 0x0004) src ^= 0x1322;
- if (i & 0x0008) src ^= 0x0004;
- if (i & 0x0010) src ^= 0x08a0;
- if (i & 0x0020) src ^= 0x0089;
- if (i & 0x0040) src ^= 0x0408;
- if (i & 0x0080) src ^= 0x1212;
- if (i & 0x0100) src ^= 0x08e0;
- if (i & 0x0200) src ^= 0x5499;
- if (i & 0x0400) src ^= 0x9a8b;
- if (i & 0x0800) src ^= 0x1222;
- if (i & 0x1000) src ^= 0x1200;
- if (i & 0x2000) src ^= 0x0008;
- if (i & 0x4000) src ^= 0x1210;
- if (i & 0x8000) src ^= 0x00e0;
- src ^= address_xor;
-
- rom[i] = BURN_ENDIAN_SWAP_INT16(decrypt(BURN_ENDIAN_SWAP_INT16(buf[src]), i, data_select_xor));
- opcodes[i] = BURN_ENDIAN_SWAP_INT16(decrypt(BURN_ENDIAN_SWAP_INT16(buf[src]), i, opcode_select_xor));
- }
-
- BurnFree(buf);
-}
-
-
-static void decrypt156(UINT32 *src, UINT32 *dst, INT32 length)
-{
- INT32 a;
-
- for (a = 0; a < length/4; a++)
- {
- INT32 addr, dword;
-
- addr = (a & 0xff0000) | 0x92c6;
-
- if (a & 0x0001) addr ^= 0xce4a;
- if (a & 0x0002) addr ^= 0x4db2;
- if (a & 0x0004) addr ^= 0xef60;
- if (a & 0x0008) addr ^= 0x5737;
- if (a & 0x0010) addr ^= 0x13dc;
- if (a & 0x0020) addr ^= 0x4bd9;
- if (a & 0x0040) addr ^= 0xa209;
- if (a & 0x0080) addr ^= 0xd996;
- if (a & 0x0100) addr ^= 0xa700;
- if (a & 0x0200) addr ^= 0xeca0;
- if (a & 0x0400) addr ^= 0x7529;
- if (a & 0x0800) addr ^= 0x3100;
- if (a & 0x1000) addr ^= 0x33b4;
- if (a & 0x2000) addr ^= 0x6161;
- if (a & 0x4000) addr ^= 0x1eef;
- if (a & 0x8000) addr ^= 0xf5a5;
-
- dword = BURN_ENDIAN_SWAP_INT32(src[addr]);
-
- // note that each of the following lines affects exactly two bits
-
- if (a & 0x00004) dword ^= 0x04400000;
- if (a & 0x00008) dword ^= 0x40000004;
- if (a & 0x00010) dword ^= 0x00048000;
- if (a & 0x00020) dword ^= 0x00000280;
- if (a & 0x00040) dword ^= 0x00200040;
- if (a & 0x00080) dword ^= 0x09000000;
- if (a & 0x00100) dword ^= 0x00001100;
- if (a & 0x00200) dword ^= 0x20002000;
- if (a & 0x00400) dword ^= 0x00000022;
- if (a & 0x00800) dword ^= 0x000a0000;
- if (a & 0x01000) dword ^= 0x10004000;
- if (a & 0x02000) dword ^= 0x00010400;
- if (a & 0x04000) dword ^= 0x80000010;
- if (a & 0x08000) dword ^= 0x00000009;
- if (a & 0x10000) dword ^= 0x02100000;
- if (a & 0x20000) dword ^= 0x00800800;
-
- switch (a & 3)
- {
- case 0:
- dword = BITSWAP32( dword ^ 0xec63197a,
- 1, 4, 7, 28, 22, 18, 20, 9,
- 16, 10, 30, 2, 31, 24, 19, 29,
- 6, 21, 23, 11, 12, 13, 5, 0,
- 8, 26, 27, 15, 14, 17, 25, 3 );
- break;
-
- case 1:
- dword = BITSWAP32( dword ^ 0x58a5a55f,
- 14, 23, 28, 29, 6, 24, 10, 1,
- 5, 16, 7, 2, 30, 8, 18, 3,
- 31, 22, 25, 20, 17, 0, 19, 27,
- 9, 12, 21, 15, 26, 13, 4, 11 );
- break;
-
- case 2:
- dword = BITSWAP32( dword ^ 0xe3a65f16,
- 19, 30, 21, 4, 2, 18, 15, 1,
- 12, 25, 8, 0, 24, 20, 17, 23,
- 22, 26, 28, 16, 9, 27, 6, 11,
- 31, 10, 3, 13, 14, 7, 29, 5 );
- break;
-
- case 3:
- dword = BITSWAP32( dword ^ 0x28d93783,
- 30, 6, 15, 0, 31, 18, 26, 22,
- 14, 23, 19, 17, 10, 8, 11, 20,
- 1, 28, 2, 4, 9, 24, 25, 27,
- 7, 21, 13, 29, 5, 3, 16, 12 );
- break;
- }
-
- dst[a] = BURN_ENDIAN_SWAP_INT32(dword);
- }
-}
-
-void deco156_decrypt(UINT8 *src, INT32 len)
-{
- UINT32 *rom = (UINT32*)src;
- UINT32 *buf = (UINT32*)BurnMalloc(len);
-
- memcpy (buf, rom, len);
-
- decrypt156(buf, rom, len);
-
- BurnFree(buf);
-}
-
-
diff --git a/jan/src/burn/drv/dataeast/deco16ic.h b/jan/src/burn/drv/dataeast/deco16ic.h
deleted file mode 100644
index c477b9aa3..000000000
--- a/jan/src/burn/drv/dataeast/deco16ic.h
+++ /dev/null
@@ -1,103 +0,0 @@
-
-// deco16 tilemap routines
-
-extern UINT16 *deco16_pf_control[2];
-extern UINT8 *deco16_pf_ram[4];
-extern UINT8 *deco16_pf_rowscroll[4];
-
-extern UINT16 deco16_priority;
-extern INT32 deco16_vblank;
-extern INT32 deco16_y_skew; // used in vaportrail
-
-void deco16_set_bank_callback(INT32 tmap, INT32 (*callback)(const INT32 bank));
-void deco16_set_color_base(INT32 tmap, INT32 base);
-void deco16_set_color_mask(INT32 tmap, INT32 mask);
-void deco16_set_transparency_mask(INT32 tmap, INT32 mask);
-void deco16_set_gfxbank(INT32 tmap, INT32 small, INT32 big);
-void deco16_set_global_offsets(INT32 x, INT32 y);
-
-void deco16_set_scroll_offs(INT32 tmap, INT32 size, INT32 offsetx, INT32 offsety);
-
-INT32 deco16_get_tilemap_size(INT32 tmap);
-
-extern UINT8 *deco16_prio_map;
-void deco16_clear_prio_map();
-void deco16_draw_prio_sprite(UINT16 *dest, UINT8 *gfx, INT32 code, INT32 color, INT32 sx, INT32 sy, INT32 flipx, INT32 flipy, INT32 pri);
-void deco16_draw_prio_sprite(UINT16 *dest, UINT8 *gfx, INT32 code, INT32 color, INT32 sx, INT32 sy, INT32 flipx, INT32 flipy, INT32 pri, INT32 spri);
-void deco16_draw_prio_sprite_nitrobal(UINT16 *dest, UINT8 *gfx, INT32 code, INT32 color, INT32 sx, INT32 sy, INT32 flipx, INT32 flipy, INT32 pri, INT32 spri);
-void deco16_draw_alphaprio_sprite(UINT32 *palette, UINT8 *gfx, INT32 code, INT32 color, INT32 sx, INT32 sy, INT32 flipx, INT32 flipy, INT32 pri, INT32 spri, INT32 alpha);
-
-void deco16_set_graphics(UINT8 *gfx0, INT32 len0, UINT8 *gfx1, INT32 len1, UINT8 *gfx2, INT32 len2);
-void deco16_set_graphics(INT32 num, UINT8 *gfx, INT32 len, INT32 size /*tile size*/); // individual bank
-
-void deco16Init(INT32 no_pf34, INT32 split, INT32 full_width);
-void deco16Reset();
-void deco16Exit();
-
-void deco16Scan();
-
-void deco16_pf12_update();
-void deco16_pf34_update();
-void deco16_pf3_update();
-
-#define DECO16_LAYER_OPAQUE 0x010000
-#define DECO16_LAYER_PRIORITY(x) ((x) & 0xff)
-#define DECO16_LAYER_8BITSPERPIXEL 0x100000
-#define DECO16_LAYER_5BITSPERPIXEL 0x200000
-#define DECO16_LAYER_4BITSPERPIXEL 0x000000 // just to clarify
-#define DECO16_LAYER_TRANSMASK0 0x000100
-#define DECO16_LAYER_TRANSMASK1 0x000000
-
-void deco16_draw_layer(INT32 tmap, UINT16 *dest, INT32 flags);
-void deco16_draw_layer_by_line(INT32 start, INT32 end, INT32 tmap, UINT16 *dest, INT32 flags);
-
-void deco16_tile_decode(UINT8 *src, UINT8 *dst, INT32 len, INT32 type);
-void deco16_sprite_decode(UINT8 *gfx, INT32 len);
-
-void deco16_palette_recalculate(UINT32 *palette, UINT8 *pal);
-
-#define deco16_write_control_word(num, addr, a, d) \
- if ((addr & 0xfffffff0) == a) { \
- deco16_pf_control[num][(addr & 0x0f)/2] = d; \
- return; \
- }
-
-#define deco16_write_control_byte(num, addr, a, d) \
- if ((addr & 0xfffffff0) == a) { \
- if ((addr) & 1) \
- deco16_pf_control[num][(addr & 0x0f)/2] = (deco16_pf_control[num][(addr & 0x0f)/2] & 0xff00) | d; \
- else \
- deco16_pf_control[num][(addr & 0x0f)/2] = (deco16_pf_control[num][(addr & 0x0f)/2] & 0x00ff) | (d << 8);\
- return; \
- }
-
-#define deco16_read_control_word(num, addr, a) \
- if ((addr & 0xfffffff0) == a) { \
- return deco16_pf_control[num][(addr & 0x0f)/2]; \
- }
-
-
-#define deco16ic_71_read() (0xffff)
-
-// common sound hardware...
-
-extern INT32 deco16_soundlatch;
-extern INT32 deco16_music_tempofix;
-
-void deco16SoundReset();
-void deco16SoundInit(UINT8 *rom, UINT8 *ram, INT32 huc_clock, INT32 ym2203, void (ym2151_port)(UINT32,UINT32), double ym2151vol, INT32 msmclk0, double msmvol0, INT32 msmclk1, double msmvol1);
-void deco16SoundExit();
-void deco16SoundUpdate(INT16 *buf, INT32 len);
-void deco16SoundScan(INT32 nAction, INT32 *pnMin);
-
-
-// decrypt routines
-
-void deco56_decrypt_gfx(UINT8 *rom, INT32 len);
-void deco74_decrypt_gfx(UINT8 *rom, INT32 len);
-void deco56_remap_gfx(UINT8 *rom, INT32 len);
-
-void deco102_decrypt_cpu(UINT8 *data, UINT8 *ops, INT32 size, INT32 address_xor, INT32 data_select_xor, INT32 opcode_select_xor);
-
-void deco156_decrypt(UINT8 *src, INT32 len);
-
diff --git a/jan/src/burn/drv/galaxian/d_galaxian.cpp b/jan/src/burn/drv/galaxian/d_galaxian.cpp
deleted file mode 100644
index 6e10aab16..000000000
--- a/jan/src/burn/drv/galaxian/d_galaxian.cpp
+++ /dev/null
@@ -1,23151 +0,0 @@
-#include "gal.h"
-
-// FB Alpha Galaxian driver module
-// Based on MAME driver by Aaron Giles, Couriersud,Stephane Humbert
-
-static INT32 ScrambleInit();
-
-// Input definitions (alphabetical)
-#define A(a, b, c, d) {a, b, (UINT8*)(c), d}
-static struct BurnInputInfo Ad2083InputList[] =
-{
- {"Coin 1" , BIT_DIGITAL , GalInputPort1 + 3, "p1 coin" },
- {"Start 1" , BIT_DIGITAL , GalInputPort1 + 7, "p1 start" },
- {"Coin 2" , BIT_DIGITAL , GalInputPort1 + 2, "p2 coin" },
- {"Start 2" , BIT_DIGITAL , GalInputPort1 + 6, "p2 start" },
-
- {"Up" , BIT_DIGITAL , GalInputPort0 + 0, "p1 up" },
- {"Down" , BIT_DIGITAL , GalInputPort0 + 2, "p1 down" },
- {"Left" , BIT_DIGITAL , GalInputPort0 + 5, "p1 left" },
- {"Right" , BIT_DIGITAL , GalInputPort0 + 4, "p1 right" },
- {"Fire 1" , BIT_DIGITAL , GalInputPort0 + 3, "p1 fire 1" },
-
- {"Reset" , BIT_DIGITAL , &GalReset , "reset" },
- {"Service" , BIT_DIGITAL , GalInputPort1 + 4, "service" },
- {"Dip 1" , BIT_DIPSWITCH , GalDip + 0 , "dip" },
- {"Dip 2" , BIT_DIPSWITCH , GalDip + 1 , "dip" },
- {"Dip 3" , BIT_DIPSWITCH , GalDip + 2 , "dip" },
- {"Dip 4" , BIT_DIPSWITCH , GalDip + 3 , "dip" },
-};
-
-STDINPUTINFO(Ad2083)
-
-static struct BurnInputInfo AmidarInputList[] =
-{
- {"Coin 1" , BIT_DIGITAL , GalInputPort0 + 7, "p1 coin" },
- {"Start 1" , BIT_DIGITAL , GalInputPort1 + 7, "p1 start" },
- {"Coin 2" , BIT_DIGITAL , GalInputPort0 + 6, "p2 coin" },
- {"Start 2" , BIT_DIGITAL , GalInputPort1 + 6, "p2 start" },
-
- {"Up" , BIT_DIGITAL , GalInputPort2 + 4, "p1 up" },
- {"Down" , BIT_DIGITAL , GalInputPort2 + 6, "p1 down" },
- {"Left" , BIT_DIGITAL , GalInputPort0 + 5, "p1 left" },
- {"Right" , BIT_DIGITAL , GalInputPort0 + 4, "p1 right" },
- {"Fire 1" , BIT_DIGITAL , GalInputPort0 + 3, "p1 fire 1" },
-
- {"Up (Cocktail)" , BIT_DIGITAL , GalInputPort0 + 0, "p2 up" },
- {"Down (Cocktail)" , BIT_DIGITAL , GalInputPort2 + 0, "p2 down" },
- {"Left (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 5, "p2 left" },
- {"Right (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 4, "p2 right" },
- {"Fire 1 (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 3, "p2 fire 1" },
-
- {"Reset" , BIT_DIGITAL , &GalReset , "reset" },
- {"Service" , BIT_DIGITAL , GalInputPort0 + 2, "service" },
- {"Dip 1" , BIT_DIPSWITCH , GalDip + 0 , "dip" },
- {"Dip 2" , BIT_DIPSWITCH , GalDip + 1 , "dip" },
- {"Dip 3" , BIT_DIPSWITCH , GalDip + 2 , "dip" },
- {"Dip 4" , BIT_DIPSWITCH , GalDip + 3 , "dip" },
-};
-
-STDINPUTINFO(Amidar)
-
-static struct BurnInputInfo AnteaterInputList[] =
-{
- {"Coin 1" , BIT_DIGITAL , GalInputPort0 + 7, "p1 coin" },
- {"Start 1" , BIT_DIGITAL , GalInputPort2 + 0, "p1 start" },
- {"Coin 2" , BIT_DIGITAL , GalInputPort0 + 6, "p2 coin" },
- {"Start 2" , BIT_DIGITAL , GalInputPort2 + 6, "p2 start" },
-
- {"Up" , BIT_DIGITAL , GalInputPort0 + 2, "p1 up" },
- {"Down" , BIT_DIGITAL , GalInputPort0 + 3, "p1 down" },
- {"Left" , BIT_DIGITAL , GalInputPort0 + 5, "p1 left" },
- {"Right" , BIT_DIGITAL , GalInputPort0 + 4, "p1 right" },
- {"Fire 1" , BIT_DIGITAL , GalInputPort0 + 0, "p1 fire 1" },
-
- {"Up (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 2, "p2 up" },
- {"Down (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 3, "p2 down" },
- {"Left (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 5, "p2 left" },
- {"Right (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 4, "p2 right" },
- {"Fire 1 (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 6, "p2 fire 1" },
-
- {"Reset" , BIT_DIGITAL , &GalReset , "reset" },
- {"Dip 1" , BIT_DIPSWITCH , GalDip + 0 , "dip" },
- {"Dip 2" , BIT_DIPSWITCH , GalDip + 1 , "dip" },
- {"Dip 3" , BIT_DIPSWITCH , GalDip + 2 , "dip" },
-};
-
-STDINPUTINFO(Anteater)
-
-static struct BurnInputInfo AnteatergInputList[] =
-{
- {"Coin 1" , BIT_DIGITAL , GalInputPort2 + 7, "p1 coin" },
- {"Start 1" , BIT_DIGITAL , GalInputPort1 + 7, "p1 start" },
- {"Coin 2" , BIT_DIGITAL , GalInputPort2 + 6, "p2 coin" },
- {"Start 2" , BIT_DIGITAL , GalInputPort1 + 6, "p2 start" },
-
- {"Up" , BIT_DIGITAL , GalInputPort0 + 4, "p1 up" },
- {"Down" , BIT_DIGITAL , GalInputPort0 + 6, "p1 down" },
- {"Left" , BIT_DIGITAL , GalInputPort2 + 5, "p1 left" },
- {"Right" , BIT_DIGITAL , GalInputPort2 + 4, "p1 right" },
- {"Fire 1" , BIT_DIGITAL , GalInputPort2 + 3, "p1 fire 1" },
-
- {"Up (Cocktail)" , BIT_DIGITAL , GalInputPort2 + 0, "p2 up" },
- {"Down (Cocktail)" , BIT_DIGITAL , GalInputPort0 + 0, "p2 down" },
- {"Left (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 5, "p2 left" },
- {"Right (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 4, "p2 right" },
- {"Fire 1 (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 3, "p2 fire 1" },
-
- {"Reset" , BIT_DIGITAL , &GalReset , "reset" },
- {"Dip 1" , BIT_DIPSWITCH , GalDip + 0 , "dip" },
- {"Dip 2" , BIT_DIPSWITCH , GalDip + 1 , "dip" },
- {"Dip 3" , BIT_DIPSWITCH , GalDip + 2 , "dip" },
-};
-
-STDINPUTINFO(Anteaterg)
-
-static struct BurnInputInfo AnteaterukInputList[] =
-{
- {"Coin 1" , BIT_DIGITAL , GalInputPort0 + 7, "p1 coin" },
- {"Start 1" , BIT_DIGITAL , GalInputPort1 + 7, "p1 start" },
- {"Coin 2" , BIT_DIGITAL , GalInputPort0 + 6, "p2 coin" },
- {"Start 2" , BIT_DIGITAL , GalInputPort1 + 6, "p2 start" },
-
- {"Up" , BIT_DIGITAL , GalInputPort2 + 4, "p1 up" },
- {"Down" , BIT_DIGITAL , GalInputPort2 + 6, "p1 down" },
- {"Left" , BIT_DIGITAL , GalInputPort0 + 5, "p1 left" },
- {"Right" , BIT_DIGITAL , GalInputPort0 + 4, "p1 right" },
- {"Fire 1" , BIT_DIGITAL , GalInputPort0 + 3, "p1 fire 1" },
-
- {"Up (Cocktail)" , BIT_DIGITAL , GalInputPort0 + 0, "p2 up" },
- {"Down (Cocktail)" , BIT_DIGITAL , GalInputPort2 + 0, "p2 down" },
- {"Left (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 5, "p2 left" },
- {"Right (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 4, "p2 right" },
- {"Fire 1 (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 3, "p2 fire 1" },
-
- {"Reset" , BIT_DIGITAL , &GalReset , "reset" },
- {"Dip 1" , BIT_DIPSWITCH , GalDip + 0 , "dip" },
- {"Dip 2" , BIT_DIPSWITCH , GalDip + 1 , "dip" },
- {"Dip 3" , BIT_DIPSWITCH , GalDip + 2 , "dip" },
-};
-
-STDINPUTINFO(Anteateruk)
-
-static struct BurnInputInfo AtlantisInputList[] =
-{
- {"Coin 1" , BIT_DIGITAL , GalInputPort0 + 7, "p1 coin" },
- {"Start 1" , BIT_DIGITAL , GalInputPort1 + 7, "p1 start" },
- {"Coin 2" , BIT_DIGITAL , GalInputPort0 + 6, "p2 coin" },
- {"Start 2" , BIT_DIGITAL , GalInputPort1 + 6, "p2 start" },
-
- {"Up" , BIT_DIGITAL , GalInputPort2 + 4, "p1 up" },
- {"Down" , BIT_DIGITAL , GalInputPort2 + 6, "p1 down" },
- {"Left" , BIT_DIGITAL , GalInputPort0 + 5, "p1 left" },
- {"Right" , BIT_DIGITAL , GalInputPort0 + 4, "p1 right" },
- {"Fire 1" , BIT_DIGITAL , GalInputPort0 + 3, "p1 fire 1" },
- {"Fire 2" , BIT_DIGITAL , GalInputPort0 + 1, "p1 fire 2" },
-
- {"Up (Cocktail)" , BIT_DIGITAL , GalInputPort0 + 0, "p2 up" },
- {"Down (Cocktail)" , BIT_DIGITAL , GalInputPort2 + 0, "p2 down" },
- {"Left (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 5, "p2 left" },
- {"Right (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 4, "p2 right" },
- {"Fire 1 (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 3, "p2 fire 1" },
- {"Fire 2 (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 2, "p2 fire 2" },
-
- {"Reset" , BIT_DIGITAL , &GalReset , "reset" },
- {"Dip 1" , BIT_DIPSWITCH , GalDip + 0 , "dip" },
- {"Dip 2" , BIT_DIPSWITCH , GalDip + 1 , "dip" },
- {"Dip 3" , BIT_DIPSWITCH , GalDip + 2 , "dip" },
-};
-
-STDINPUTINFO(Atlantis)
-
-static struct BurnInputInfo AzurianInputList[] =
-{
- {"Coin 1" , BIT_DIGITAL , GalInputPort0 + 4, "p1 coin" },
- {"Start 1" , BIT_DIGITAL , GalInputPort1 + 0, "p1 start" },
- {"Start 2" , BIT_DIGITAL , GalInputPort1 + 1, "p2 start" },
-
- {"Up" , BIT_DIGITAL , GalInputPort0 + 1, "p1 up" },
- {"Down" , BIT_DIGITAL , GalInputPort0 + 0, "p1 down" },
- {"Left" , BIT_DIGITAL , GalInputPort0 + 3, "p1 left" },
- {"Right" , BIT_DIGITAL , GalInputPort0 + 2, "p1 right" },
- {"Fire 1" , BIT_DIGITAL , GalInputPort0 + 5, "p1 fire 1" },
-
- {"Up (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 3, "p2 up" },
- {"Down (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 2, "p2 down" },
- {"Left (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 5, "p2 left" },
- {"Right (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 4, "p2 right" },
- {"Fire 1 (Cocktail)" , BIT_DIGITAL , GalInputPort0 + 6, "p2 fire 1" },
-
- {"Reset" , BIT_DIGITAL , &GalReset , "reset" },
- {"Dip 1" , BIT_DIPSWITCH , GalDip + 0 , "dip" },
- {"Dip 2" , BIT_DIPSWITCH , GalDip + 1 , "dip" },
- {"Dip 3" , BIT_DIPSWITCH , GalDip + 2 , "dip" },
- {"Dip 4" , BIT_DIPSWITCH , &GalFakeDip , "dip" },
-};
-
-STDINPUTINFO(Azurian)
-
-static struct BurnInputInfo BagmanmcInputList[] =
-{
- {"Coin 1" , BIT_DIGITAL , GalInputPort0 + 0, "p1 coin" },
- {"Start 1" , BIT_DIGITAL , GalInputPort0 + 2, "p1 start" },
- {"Coin 2" , BIT_DIGITAL , GalInputPort0 + 1, "p2 coin" },
- {"Start 2" , BIT_DIGITAL , GalInputPort1 + 0, "p2 start" },
-
- {"Up" , BIT_DIGITAL , GalInputPort0 + 5, "p1 up" },
- {"Down" , BIT_DIGITAL , GalInputPort0 + 6, "p1 down" },
- {"Left" , BIT_DIGITAL , GalInputPort0 + 3, "p1 left" },
- {"Right" , BIT_DIGITAL , GalInputPort0 + 4, "p1 right" },
- {"Fire 1" , BIT_DIGITAL , GalInputPort0 + 7, "p1 fire 1" },
-
- {"Up (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 4, "p2 up" },
- {"Down (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 5, "p2 down" },
- {"Left (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 2, "p2 left" },
- {"Right (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 3, "p2 right" },
- {"Fire 1 (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 6, "p2 fire 1" },
-
- {"Reset" , BIT_DIGITAL , &GalReset , "reset" },
- {"Dip 1" , BIT_DIPSWITCH , GalDip + 0 , "dip" },
- {"Dip 2" , BIT_DIPSWITCH , GalDip + 1 , "dip" },
- {"Dip 3" , BIT_DIPSWITCH , GalDip + 2 , "dip" },
-};
-
-STDINPUTINFO(Bagmanmc)
-
-static struct BurnInputInfo Batman2InputList[] =
-{
- {"Coin 1" , BIT_DIGITAL , GalInputPort0 + 0, "p1 coin" },
- {"Start 1" , BIT_DIGITAL , GalInputPort1 + 0, "p1 start" },
- {"Coin 2" , BIT_DIGITAL , GalInputPort0 + 1, "p2 coin" },
- {"Start 2" , BIT_DIGITAL , GalInputPort1 + 1, "p2 start" },
-
- {"Left" , BIT_DIGITAL , GalInputPort0 + 2, "p1 left" },
- {"Right" , BIT_DIGITAL , GalInputPort0 + 3, "p1 right" },
- {"Fire 1" , BIT_DIGITAL , GalInputPort0 + 4, "p1 fire 1" },
- {"Fire 2" , BIT_DIGITAL , GalInputPort0 + 7, "p1 fire 2" },
-
- {"Left (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 2, "p2 left" },
- {"Right (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 3, "p2 right" },
- {"Fire 1 (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 4, "p2 fire 1" },
- {"Fire 2 (Cocktail)" , BIT_DIGITAL , GalInputPort0 + 6, "p2 fire 2" },
-
- {"Reset" , BIT_DIGITAL , &GalReset , "reset" },
- {"Dip 1" , BIT_DIPSWITCH , GalDip + 0 , "dip" },
- {"Dip 2" , BIT_DIPSWITCH , GalDip + 1 , "dip" },
- {"Dip 3" , BIT_DIPSWITCH , GalDip + 2 , "dip" },
-};
-
-STDINPUTINFO(Batman2)
-
-static struct BurnInputInfo BlkholeInputList[] =
-{
- {"Coin 1" , BIT_DIGITAL , GalInputPort0 + 0, "p1 coin" },
- {"Start 1" , BIT_DIGITAL , GalInputPort1 + 0, "p1 start" },
- {"Start 2" , BIT_DIGITAL , GalInputPort1 + 1, "p2 start" },
-
- {"Left" , BIT_DIGITAL , GalInputPort0 + 2, "p1 left" },
- {"Right" , BIT_DIGITAL , GalInputPort0 + 3, "p1 right" },
- {"Fire 1" , BIT_DIGITAL , GalInputPort0 + 4, "p1 fire 1" },
-
- {"Left (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 2, "p2 left" },
- {"Right (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 3, "p2 right" },
- {"Fire 1 (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 4, "p2 fire 1" },
-
- {"Reset" , BIT_DIGITAL , &GalReset , "reset" },
- {"Dip 1" , BIT_DIPSWITCH , GalDip + 0 , "dip" },
- {"Dip 2" , BIT_DIPSWITCH , GalDip + 1 , "dip" },
- {"Dip 3" , BIT_DIPSWITCH , GalDip + 2 , "dip" },
-};
-
-STDINPUTINFO(Blkhole)
-
-static struct BurnInputInfo BongoInputList[] =
-{
- {"Coin 1" , BIT_DIGITAL , GalInputPort0 + 0, "p1 coin" },
- {"Start 1" , BIT_DIGITAL , GalInputPort1 + 0, "p1 start" },
- {"Start 2" , BIT_DIGITAL , GalInputPort1 + 1, "p2 start" },
-
- {"Up" , BIT_DIGITAL , GalInputPort0 + 5, "p1 up" },
- {"Left" , BIT_DIGITAL , GalInputPort0 + 2, "p1 left" },
- {"Right" , BIT_DIGITAL , GalInputPort0 + 3, "p1 right" },
-
- {"Up (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 5, "p2 up" },
- {"Left (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 2, "p2 left" },
- {"Right (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 3, "p2 right" },
-
- {"Reset" , BIT_DIGITAL , &GalReset , "reset" },
- {"Dip 1" , BIT_DIPSWITCH , GalDip + 0 , "dip" },
- {"Dip 2" , BIT_DIPSWITCH , GalDip + 1 , "dip" },
- {"Dip 3" , BIT_DIPSWITCH , GalDip + 2 , "dip" },
- {"Dip 4" , BIT_DIPSWITCH , GalDip + 3 , "dip" },
-};
-
-STDINPUTINFO(Bongo)
-
-static struct BurnInputInfo CalipsoInputList[] =
-{
- {"Coin 1" , BIT_DIGITAL , GalInputPort0 + 7, "p1 coin" },
- {"Coin 2" , BIT_DIGITAL , GalInputPort0 + 6, "p2 coin" },
-
- {"P1 Up" , BIT_DIGITAL , GalInputPort0 + 2, "p1 up" },
- {"P1 Down" , BIT_DIGITAL , GalInputPort0 + 3, "p1 down" },
- {"P1 Left" , BIT_DIGITAL , GalInputPort0 + 5, "p1 left" },
- {"P1 Right" , BIT_DIGITAL , GalInputPort0 + 4, "p1 right" },
- {"P1 Fire 1" , BIT_DIGITAL , GalInputPort2 + 0, "p1 fire 1" },
-
- {"P2 Up" , BIT_DIGITAL , GalInputPort1 + 2, "p2 up" },
- {"P2 Down" , BIT_DIGITAL , GalInputPort1 + 3, "p2 down" },
- {"P2 Left" , BIT_DIGITAL , GalInputPort1 + 5, "p2 left" },
- {"P2 Right" , BIT_DIGITAL , GalInputPort1 + 4, "p2 right" },
- {"P2 Fire 1" , BIT_DIGITAL , GalInputPort0 + 0, "p2 fire 1" },
-
- {"Reset" , BIT_DIGITAL , &GalReset , "reset" },
- {"Dip 1" , BIT_DIPSWITCH , GalDip + 0 , "dip" },
- {"Dip 2" , BIT_DIPSWITCH , GalDip + 1 , "dip" },
- {"Dip 3" , BIT_DIPSWITCH , GalDip + 2 , "dip" },
-};
-
-STDINPUTINFO(Calipso)
-
-static struct BurnInputInfo CheckmanjInputList[] =
-{
- {"Coin 1" , BIT_DIGITAL , GalInputPort0 + 0, "p1 coin" },
- {"Start 1" , BIT_DIGITAL , GalInputPort1 + 0, "p1 start" },
- {"Coin 2" , BIT_DIGITAL , GalInputPort0 + 1, "p2 coin" },
- {"Start 2" , BIT_DIGITAL , GalInputPort1 + 1, "p2 start" },
-
- {"Up" , BIT_DIGITAL , GalInputPort0 + 4, "p1 up" },
- {"Down" , BIT_DIGITAL , GalInputPort0 + 7, "p1 down" },
- {"Left" , BIT_DIGITAL , GalInputPort0 + 2, "p1 left" },
- {"Right" , BIT_DIGITAL , GalInputPort0 + 3, "p1 right" },
- {"Fire 1" , BIT_DIGITAL , GalInputPort2 + 1, "p1 fire 1" },
- {"Fire 2" , BIT_DIGITAL , GalInputPort2 + 0, "p1 fire 2" },
-
- {"Up (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 4, "p2 up" },
- {"Down (Cocktail)" , BIT_DIGITAL , GalInputPort0 + 6, "p2 down" },
- {"Left (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 2, "p2 left" },
- {"Right (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 3, "p2 right" },
- {"Fire 1 (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 5, "p2 fire 1" },
- {"Fire 2 (Cocktail)" , BIT_DIGITAL , GalInputPort0 + 5, "p2 fire 2" },
-
- {"Reset" , BIT_DIGITAL , &GalReset , "reset" },
- {"Dip 1" , BIT_DIPSWITCH , GalDip + 0 , "dip" },
- {"Dip 2" , BIT_DIPSWITCH , GalDip + 1 , "dip" },
- {"Dip 3" , BIT_DIPSWITCH , GalDip + 2 , "dip" },
-};
-
-STDINPUTINFO(Checkmanj)
-
-static struct BurnInputInfo CheckmanInputList[] =
-{
- {"Coin 1" , BIT_DIGITAL , GalInputPort0 + 1, "p1 coin" },
- {"Start 1/P1 Fire 1" , BIT_DIGITAL , GalInputPort1 + 0, "p1 start" },
- {"Coin 2" , BIT_DIGITAL , GalInputPort0 + 0, "p2 coin" },
- {"Start 2/P1 Fire 2" , BIT_DIGITAL , GalInputPort1 + 1, "p2 start" },
-
- {"Up" , BIT_DIGITAL , GalInputPort0 + 7, "p1 up" },
- {"Down" , BIT_DIGITAL , GalInputPort0 + 5, "p1 down" },
- {"Left" , BIT_DIGITAL , GalInputPort0 + 2, "p1 left" },
- {"Right" , BIT_DIGITAL , GalInputPort0 + 3, "p1 right" },
-
- {"Up (Cocktail)" , BIT_DIGITAL , GalInputPort0 + 6, "p2 up" },
- {"Down (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 5, "p2 down" },
- {"Left (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 2, "p2 left" },
- {"Right (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 3, "p2 right" },
- {"Fire 1 (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 4, "p2 fire 1" },
- {"Fire 2 (Cocktail)" , BIT_DIGITAL , GalInputPort0 + 4, "p2 fire 2" },
-
- {"Reset" , BIT_DIGITAL , &GalReset , "reset" },
- {"Dip 1" , BIT_DIPSWITCH , GalDip + 0 , "dip" },
- {"Dip 2" , BIT_DIPSWITCH , GalDip + 1 , "dip" },
- {"Dip 3" , BIT_DIPSWITCH , GalDip + 2 , "dip" },
-};
-
-STDINPUTINFO(Checkman)
-
-static struct BurnInputInfo CkonggInputList[] =
-{
- {"Coin 1" , BIT_DIGITAL , GalInputPort0 + 0, "p1 coin" },
- {"Start 1" , BIT_DIGITAL , GalInputPort1 + 0, "p1 start" },
- {"Start 2" , BIT_DIGITAL , GalInputPort1 + 1, "p2 start" },
-
- {"Up" , BIT_DIGITAL , GalInputPort0 + 4, "p1 up" },
- {"Down" , BIT_DIGITAL , GalInputPort0 + 5, "p1 down" },
- {"Left" , BIT_DIGITAL , GalInputPort0 + 2, "p1 left" },
- {"Right" , BIT_DIGITAL , GalInputPort0 + 3, "p1 right" },
- {"Fire 1" , BIT_DIGITAL , GalInputPort0 + 7, "p1 fire 1" },
- {"Fire 2" , BIT_DIGITAL , GalInputPort0 + 6, "p1 fire 2" },
-
- {"Up (Cocktail)" , BIT_DIGITAL , GalInputPort0 + 1, "p2 up" },
- {"Down (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 5, "p2 down" },
- {"Left (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 2, "p2 left" },
- {"Right (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 3, "p2 right" },
- {"Fire 1 (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 4, "p2 fire 1" },
-
- {"Reset" , BIT_DIGITAL , &GalReset , "reset" },
- {"Dip 1" , BIT_DIPSWITCH , GalDip + 0 , "dip" },
- {"Dip 2" , BIT_DIPSWITCH , GalDip + 1 , "dip" },
- {"Dip 3" , BIT_DIPSWITCH , GalDip + 2 , "dip" },
-};
-
-STDINPUTINFO(Ckongg)
-
-static struct BurnInputInfo CkongsInputList[] =
-{
- {"Coin 1" , BIT_DIGITAL , GalInputPort0 + 7, "p1 coin" },
- {"Start 1" , BIT_DIGITAL , GalInputPort1 + 7, "p1 start" },
- {"Coin 2" , BIT_DIGITAL , GalInputPort0 + 6, "p2 coin" },
- {"Start 2" , BIT_DIGITAL , GalInputPort1 + 6, "p2 start" },
-
- {"Up" , BIT_DIGITAL , GalInputPort2 + 4, "p1 up" },
- {"Down" , BIT_DIGITAL , GalInputPort2 + 6, "p1 down" },
- {"Left" , BIT_DIGITAL , GalInputPort0 + 5, "p1 left" },
- {"Right" , BIT_DIGITAL , GalInputPort0 + 4, "p1 right" },
- {"Fire 1" , BIT_DIGITAL , GalInputPort0 + 3, "p1 fire 1" },
-
- {"Up (Cocktail)" , BIT_DIGITAL , GalInputPort0 + 1, "p2 up" },
- {"Down (Cocktail)" , BIT_DIGITAL , GalInputPort2 + 0, "p2 down" },
- {"Left (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 5, "p2 left" },
- {"Right (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 4, "p2 right" },
- {"Fire 1 (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 3, "p2 fire 1" },
-
- {"Reset" , BIT_DIGITAL , &GalReset , "reset" },
- {"Dip 1" , BIT_DIPSWITCH , GalDip + 0 , "dip" },
- {"Dip 2" , BIT_DIPSWITCH , GalDip + 1 , "dip" },
- {"Dip 3" , BIT_DIPSWITCH , GalDip + 2 , "dip" },
-};
-
-STDINPUTINFO(Ckongs)
-
-static struct BurnInputInfo DambustrInputList[] =
-{
- {"Coin 1" , BIT_DIGITAL , GalInputPort0 + 1, "p1 coin" },
- {"Start 1" , BIT_DIGITAL , GalInputPort0 + 3, "p1 start" },
- {"Coin 2" , BIT_DIGITAL , GalInputPort0 + 0, "p2 coin" },
- {"Start 2" , BIT_DIGITAL , GalInputPort0 + 2, "p2 start" },
-
- {"Up" , BIT_DIGITAL , GalInputPort1 + 5, "p1 up" },
- {"Down" , BIT_DIGITAL , GalInputPort1 + 4, "p1 down" },
- {"Left" , BIT_DIGITAL , GalInputPort1 + 3, "p1 left" },
- {"Right" , BIT_DIGITAL , GalInputPort1 + 2, "p1 right" },
- {"Fire 1" , BIT_DIGITAL , GalInputPort1 + 0, "p1 fire 1" },
- {"Fire 2" , BIT_DIGITAL , GalInputPort1 + 1, "p1 fire 2" },
- {"Fire 3" , BIT_DIGITAL , GalInputPort0 + 7, "p1 fire 3" },
-
- {"Reset" , BIT_DIGITAL , &GalReset , "reset" },
- {"Dip 1" , BIT_DIPSWITCH , GalDip + 0 , "dip" },
- {"Dip 2" , BIT_DIPSWITCH , GalDip + 1 , "dip" },
- {"Dip 3" , BIT_DIPSWITCH , GalDip + 2 , "dip" },
-};
-
-STDINPUTINFO(Dambustr)
-
-static struct BurnInputInfo DarkplntInputList[] =
-{
- {"Coin 1" , BIT_DIGITAL , GalInputPort0 + 7, "p1 coin" },
- {"Coin 2" , BIT_DIGITAL , GalInputPort0 + 6, "p2 coin" },
-
- {"Left" , BIT_DIGITAL , GalInputPort3 + 0, "p1 left" },
- {"Right" , BIT_DIGITAL , GalInputPort3 + 1, "p1 right" },
- {"Fire 1" , BIT_DIGITAL , GalInputPort0 + 1, "p1 fire 1" },
- {"Fire 2" , BIT_DIGITAL , GalInputPort0 + 2, "p1 fire 2" },
- {"Fire 3" , BIT_DIGITAL , GalInputPort0 + 0, "p1 fire 3" },
-
- {"Reset" , BIT_DIGITAL , &GalReset , "reset" },
- {"Dip 1" , BIT_DIPSWITCH , GalDip + 0 , "dip" },
- {"Dip 2" , BIT_DIPSWITCH , GalDip + 1 , "dip" },
- {"Dip 3" , BIT_DIPSWITCH , GalDip + 2 , "dip" },
-};
-
-STDINPUTINFO(Darkplnt)
-
-static struct BurnInputInfo DevilfsgInputList[] =
-{
- {"Coin 1" , BIT_DIGITAL , GalInputPort0 + 0, "p1 coin" },
- {"Start 1" , BIT_DIGITAL , GalInputPort1 + 0, "p1 start" },
- {"Coin 2" , BIT_DIGITAL , GalInputPort0 + 1, "p2 coin" },
- {"Start 2" , BIT_DIGITAL , GalInputPort1 + 1, "p2 start" },
-
- {"Up" , BIT_DIGITAL , GalInputPort0 + 7, "p1 up" },
- {"Down" , BIT_DIGITAL , GalInputPort0 + 5, "p1 down" },
- {"Left" , BIT_DIGITAL , GalInputPort0 + 2, "p1 left" },
- {"Right" , BIT_DIGITAL , GalInputPort0 + 3, "p1 right" },
- {"Fire 1" , BIT_DIGITAL , GalInputPort0 + 4, "p1 fire 1" },
-
- {"Up (Cocktail)" , BIT_DIGITAL , GalInputPort0 + 6, "p2 up" },
- {"Down (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 5, "p2 down" },
- {"Left (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 2, "p2 left" },
- {"Right (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 3, "p2 right" },
- {"Fire 1 (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 4, "p2 fire 1" },
-
- {"Reset" , BIT_DIGITAL , &GalReset , "reset" },
- {"Dip 1" , BIT_DIPSWITCH , GalDip + 0 , "dip" },
- {"Dip 2" , BIT_DIPSWITCH , GalDip + 1 , "dip" },
- {"Dip 3" , BIT_DIPSWITCH , GalDip + 2 , "dip" },
-};
-
-STDINPUTINFO(Devilfsg)
-
-static struct BurnInputInfo DevilfshInputList[] =
-{
- {"Coin 1" , BIT_DIGITAL , GalInputPort0 + 7, "p1 coin" },
- {"Start 1" , BIT_DIGITAL , GalInputPort1 + 7, "p1 start" },
- {"Coin 2" , BIT_DIGITAL , GalInputPort0 + 6, "p2 coin" },
- {"Start 2" , BIT_DIGITAL , GalInputPort1 + 6, "p2 start" },
-
- {"Up" , BIT_DIGITAL , GalInputPort2 + 4, "p1 up" },
- {"Down" , BIT_DIGITAL , GalInputPort2 + 6, "p1 down" },
- {"Left" , BIT_DIGITAL , GalInputPort0 + 5, "p1 left" },
- {"Right" , BIT_DIGITAL , GalInputPort0 + 4, "p1 right" },
- {"Fire 1" , BIT_DIGITAL , GalInputPort0 + 3, "p1 fire 1" },
-
- {"Up (Cocktail)" , BIT_DIGITAL , GalInputPort0 + 0, "p2 up" },
- {"Down (Cocktail)" , BIT_DIGITAL , GalInputPort2 + 0, "p2 down" },
- {"Left (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 5, "p2 left" },
- {"Right (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 4, "p2 right" },
- {"Fire 1 (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 3, "p2 fire 1" },
-
- {"Reset" , BIT_DIGITAL , &GalReset , "reset" },
- {"Dip 1" , BIT_DIPSWITCH , GalDip + 0 , "dip" },
- {"Dip 2" , BIT_DIPSWITCH , GalDip + 1 , "dip" },
- {"Dip 3" , BIT_DIPSWITCH , GalDip + 2 , "dip" },
-};
-
-STDINPUTINFO(Devilfsh)
-
-static struct BurnInputInfo DingoInputList[] =
-{
- {"Coin 1" , BIT_DIGITAL , GalInputPort0 + 0, "p1 coin" },
- {"Start 1" , BIT_DIGITAL , GalInputPort1 + 0, "p1 start" },
- {"Coin 2" , BIT_DIGITAL , GalInputPort0 + 1, "p2 coin" },
- {"Start 2" , BIT_DIGITAL , GalInputPort1 + 1, "p2 start" },
-
- {"Up" , BIT_DIGITAL , GalInputPort0 + 4, "p1 up" },
- {"Down" , BIT_DIGITAL , GalInputPort0 + 7, "p1 down" },
- {"Left" , BIT_DIGITAL , GalInputPort0 + 2, "p1 left" },
- {"Right" , BIT_DIGITAL , GalInputPort0 + 3, "p1 right" },
- {"Fire 1" , BIT_DIGITAL , GalInputPort2 + 4, "p1 fire 1" },
-
- {"Up (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 4, "p2 up" },
- {"Down (Cocktail)" , BIT_DIGITAL , GalInputPort0 + 6, "p2 down" },
- {"Left (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 2, "p2 left" },
- {"Right (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 3, "p2 right" },
- {"Fire 1 (Cocktail)" , BIT_DIGITAL , GalInputPort0 + 5, "p2 fire 1" },
-
- {"Reset" , BIT_DIGITAL , &GalReset , "reset" },
- {"Dip 1" , BIT_DIPSWITCH , GalDip + 0 , "dip" },
- {"Dip 2" , BIT_DIPSWITCH , GalDip + 1 , "dip" },
- {"Dip 3" , BIT_DIPSWITCH , GalDip + 2 , "dip" },
-};
-
-STDINPUTINFO(Dingo)
-
-static struct BurnInputInfo DkongjrmInputList[] =
-{
- {"Coin 1" , BIT_DIGITAL , GalInputPort0 + 0, "p1 coin" },
- {"Start 1" , BIT_DIGITAL , GalInputPort1 + 0, "p1 start" },
- {"Start 2" , BIT_DIGITAL , GalInputPort1 + 1, "p2 start" },
-
- {"Up" , BIT_DIGITAL , GalInputPort0 + 4, "p1 up" },
- {"Down" , BIT_DIGITAL , GalInputPort0 + 7, "p1 down" },
- {"Left" , BIT_DIGITAL , GalInputPort0 + 2, "p1 left" },
- {"Right" , BIT_DIGITAL , GalInputPort0 + 3, "p1 right" },
- {"Fire 1" , BIT_DIGITAL , GalInputPort0 + 5, "p1 fire 1" },
-
- {"Up (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 4, "p2 up" },
- {"Down (Cocktail)" , BIT_DIGITAL , GalInputPort0 + 6, "p2 down" },
- {"Left (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 2, "p2 left" },
- {"Right (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 3, "p2 right" },
- {"Fire 1 (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 5, "p2 fire 1" },
-
- {"Reset" , BIT_DIGITAL , &GalReset , "reset" },
- {"Dip 1" , BIT_DIPSWITCH , GalDip + 0 , "dip" },
- {"Dip 2" , BIT_DIPSWITCH , GalDip + 1 , "dip" },
- {"Dip 3" , BIT_DIPSWITCH , GalDip + 2 , "dip" },
-};
-
-STDINPUTINFO(Dkongjrm)
-
-static struct BurnInputInfo DonightInputList[] =
-{
- {"Coin 1" , BIT_DIGITAL , GalInputPort0 + 0, "p1 coin" },
- {"Start 1" , BIT_DIGITAL , GalInputPort1 + 0, "p1 start" },
- {"Coin 2" , BIT_DIGITAL , GalInputPort0 + 1, "p2 coin" },
- {"Start 2" , BIT_DIGITAL , GalInputPort1 + 1, "p2 start" },
-
- {"Up" , BIT_DIGITAL , GalInputPort1 + 2, "p1 up" },
- {"Down" , BIT_DIGITAL , GalInputPort1 + 3, "p1 down" },
- {"Left" , BIT_DIGITAL , GalInputPort0 + 2, "p1 left" },
- {"Right" , BIT_DIGITAL , GalInputPort0 + 3, "p1 right" },
- {"Fire 1" , BIT_DIGITAL , GalInputPort0 + 4, "p1 fire 1" },
-
- {"Reset" , BIT_DIGITAL , &GalReset , "reset" },
- {"Service" , BIT_DIGITAL , GalInputPort0 + 7, "service" },
- {"Dip 1" , BIT_DIPSWITCH , GalDip + 0 , "dip" },
- {"Dip 2" , BIT_DIPSWITCH , GalDip + 1 , "dip" },
-};
-
-STDINPUTINFO(Donight)
-
-static struct BurnInputInfo DrivfrcgInputList[] =
-{
- {"Coin 1" , BIT_DIGITAL , GalInputPort0 + 0, "p1 coin" },
- {"Coin 2" , BIT_DIGITAL , GalInputPort0 + 1, "p2 coin" },
-
- {"Left" , BIT_DIGITAL , GalInputPort0 + 2, "p1 left" },
- {"Right" , BIT_DIGITAL , GalInputPort0 + 3, "p1 right" },
- {"Fire 1" , BIT_DIGITAL , GalInputPort1 + 0, "p1 fire 1" },
- {"Fire 2" , BIT_DIGITAL , GalInputPort1 + 1, "p1 fire 2" },
-
- {"Reset" , BIT_DIGITAL , &GalReset , "reset" },
- {"Dip 1" , BIT_DIPSWITCH , GalDip + 0 , "dip" },
- {"Dip 2" , BIT_DIPSWITCH , GalDip + 1 , "dip" },
- {"Dip 3" , BIT_DIPSWITCH , GalDip + 2 , "dip" },
- {"Dip 4" , BIT_DIPSWITCH , GalDip + 3 , "dip" },
-};
-
-STDINPUTINFO(Drivfrcg)
-
-static struct BurnInputInfo ExplorerInputList[] =
-{
- {"Coin 1" , BIT_DIGITAL , GalInputPort0 + 7, "p1 coin" },
- {"Start 1" , BIT_DIGITAL , GalInputPort1 + 7, "p1 start" },
- {"Coin 2" , BIT_DIGITAL , GalInputPort0 + 6, "p2 coin" },
- {"Start 2" , BIT_DIGITAL , GalInputPort1 + 6, "p2 start" },
-
- {"Up" , BIT_DIGITAL , GalInputPort0 + 0, "p1 up" },
- {"Down" , BIT_DIGITAL , GalInputPort0 + 2, "p1 down" },
- {"Left" , BIT_DIGITAL , GalInputPort0 + 5, "p1 left" },
- {"Right" , BIT_DIGITAL , GalInputPort0 + 4, "p1 right" },
- {"Fire 1" , BIT_DIGITAL , GalInputPort0 + 3, "p1 fire 1" },
- {"Fire 2" , BIT_DIGITAL , GalInputPort0 + 1, "p1 fire 2" },
-
- {"Reset" , BIT_DIGITAL , &GalReset , "reset" },
- {"Dip 1" , BIT_DIPSWITCH , GalDip + 0 , "dip" },
- {"Dip 2" , BIT_DIPSWITCH , GalDip + 1 , "dip" },
- {"Dip 3" , BIT_DIPSWITCH , GalDip + 2 , "dip" },
- {"Dip 4" , BIT_DIPSWITCH , GalDip + 3 , "dip" },
-};
-
-STDINPUTINFO(Explorer)
-
-static struct BurnInputInfo FantastcInputList[] =
-{
- {"Coin 1" , BIT_DIGITAL , GalInputPort0 + 1, "p1 coin" },
- {"Start 1" , BIT_DIGITAL , GalInputPort1 + 0, "p1 start" },
- {"Start 2" , BIT_DIGITAL , GalInputPort1 + 1, "p2 start" },
-
- {"Left" , BIT_DIGITAL , GalInputPort0 + 2, "p1 left" },
- {"Right" , BIT_DIGITAL , GalInputPort0 + 3, "p1 right" },
- {"Fire 1" , BIT_DIGITAL , GalInputPort0 + 4, "p1 fire 1" },
-
- {"Reset" , BIT_DIGITAL , &GalReset , "reset" },
- {"Dip 1" , BIT_DIPSWITCH , GalDip + 0 , "dip" },
- {"Dip 2" , BIT_DIPSWITCH , GalDip + 1 , "dip" },
- {"Dip 3" , BIT_DIPSWITCH , GalDip + 2 , "dip" },
-};
-
-STDINPUTINFO(Fantastc)
-
-static struct BurnInputInfo Fourin1InputList[] = {
- {"Coin 1" , BIT_DIGITAL , GalInputPort0 + 0, "p1 coin" },
- {"Start 1" , BIT_DIGITAL , GalInputPort1 + 0, "p1 start" },
- {"Start 2" , BIT_DIGITAL , GalInputPort1 + 1, "p2 start" },
-
- {"Up" , BIT_DIGITAL , GalInputPort0 + 7, "p1 up" },
- {"Down" , BIT_DIGITAL , GalInputPort0 + 6, "p1 down" },
- {"Left" , BIT_DIGITAL , GalInputPort0 + 2, "p1 left" },
- {"Right" , BIT_DIGITAL , GalInputPort0 + 3, "p1 right" },
- {"Fire" , BIT_DIGITAL , GalInputPort0 + 4, "p1 fire 1" },
-
- {"Up (Cocktail)" , BIT_DIGITAL , GalInputPort0 + 1, "p2 up" },
- {"Down (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 5, "p2 down" },
- {"Left (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 2, "p2 left" },
- {"Right (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 3, "p2 right" },
- {"Fire (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 4, "p2 fire 1" },
-
- {"Reset" , BIT_DIGITAL , &GalReset , "reset" },
- {"Dip 1" , BIT_DIPSWITCH , GalDip + 0 , "dip" },
- {"Dip 2" , BIT_DIPSWITCH , GalDip + 1 , "dip" },
- {"Dip 3" , BIT_DIPSWITCH , GalDip + 2 , "dip" },
- {"GM Dip 1" , BIT_DIPSWITCH , GalDip + 3 , "dip" },
- {"SC Dip 2" , BIT_DIPSWITCH , GalDip + 4 , "dip" },
- {"GX Dip 3" , BIT_DIPSWITCH , GalDip + 5 , "dip" },
- {"GC Dip 4" , BIT_DIPSWITCH , GalDip + 6 , "dip" },
-};
-
-STDINPUTINFO(Fourin1)
-
-static struct BurnInputInfo FroggInputList[] =
-{
- {"Coin 1" , BIT_DIGITAL , GalInputPort0 + 0, "p1 coin" },
- {"Start 1" , BIT_DIGITAL , GalInputPort1 + 0, "p1 start" },
- {"Coin 2" , BIT_DIGITAL , GalInputPort0 + 1, "p2 coin" },
- {"Start 2" , BIT_DIGITAL , GalInputPort1 + 1, "p2 start" },
-
- {"Up" , BIT_DIGITAL , GalInputPort0 + 4, "p1 up" },
- {"Down" , BIT_DIGITAL , GalInputPort0 + 7, "p1 down" },
- {"Left" , BIT_DIGITAL , GalInputPort0 + 2, "p1 left" },
- {"Right" , BIT_DIGITAL , GalInputPort0 + 3, "p1 right" },
-
- {"Up (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 4, "p2 up" },
- {"Down (Cocktail)" , BIT_DIGITAL , GalInputPort0 + 6, "p2 down" },
- {"Left (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 2, "p2 left" },
- {"Right (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 3, "p2 right" },
-
- {"Reset" , BIT_DIGITAL , &GalReset , "reset" },
- {"Service" , BIT_DIGITAL , GalInputPort0 + 7, "service" },
- {"Dip 1" , BIT_DIPSWITCH , GalDip + 0 , "dip" },
- {"Dip 2" , BIT_DIPSWITCH , GalDip + 1 , "dip" },
- {"Dip 3" , BIT_DIPSWITCH , GalDip + 2 , "dip" },
-};
-
-STDINPUTINFO(Frogg)
-
-static struct BurnInputInfo FroggerInputList[] =
-{
- {"Coin 1" , BIT_DIGITAL , GalInputPort0 + 7, "p1 coin" },
- {"Start 1" , BIT_DIGITAL , GalInputPort1 + 7, "p1 start" },
- {"Coin 2" , BIT_DIGITAL , GalInputPort0 + 6, "p2 coin" },
- {"Start 2" , BIT_DIGITAL , GalInputPort1 + 6, "p2 start" },
-
- {"Up" , BIT_DIGITAL , GalInputPort2 + 4, "p1 up" },
- {"Down" , BIT_DIGITAL , GalInputPort2 + 6, "p1 down" },
- {"Left" , BIT_DIGITAL , GalInputPort0 + 5, "p1 left" },
- {"Right" , BIT_DIGITAL , GalInputPort0 + 4, "p1 right" },
-
- {"Up (Cocktail)" , BIT_DIGITAL , GalInputPort0 + 0, "p2 up" },
- {"Down (Cocktail)" , BIT_DIGITAL , GalInputPort2 + 0, "p2 down" },
- {"Left (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 5, "p2 left" },
- {"Right (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 4, "p2 right" },
-
- {"Reset" , BIT_DIGITAL , &GalReset , "reset" },
- {"Service" , BIT_DIGITAL , GalInputPort0 + 2, "service" },
- {"Dip 1" , BIT_DIPSWITCH , GalDip + 0 , "dip" },
- {"Dip 2" , BIT_DIPSWITCH , GalDip + 1 , "dip" },
- {"Dip 3" , BIT_DIPSWITCH , GalDip + 2 , "dip" },
-};
-
-STDINPUTINFO(Frogger)
-
-static struct BurnInputInfo FroggermcInputList[] =
-{
- {"Coin 1" , BIT_DIGITAL , GalInputPort0 + 0, "p1 coin" },
- {"Start 1" , BIT_DIGITAL , GalInputPort1 + 0, "p1 start" },
- {"Coin 2" , BIT_DIGITAL , GalInputPort0 + 1, "p2 coin" },
- {"Start 2" , BIT_DIGITAL , GalInputPort1 + 1, "p2 start" },
-
- {"Up" , BIT_DIGITAL , GalInputPort0 + 4, "p1 up" },
- {"Down" , BIT_DIGITAL , GalInputPort0 + 5, "p1 down" },
- {"Left" , BIT_DIGITAL , GalInputPort0 + 2, "p1 left" },
- {"Right" , BIT_DIGITAL , GalInputPort0 + 3, "p1 right" },
-
- {"Up (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 4, "p2 up" },
- {"Down (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 5, "p2 down" },
- {"Left (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 2, "p2 left" },
- {"Right (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 3, "p2 right" },
-
- {"Reset" , BIT_DIGITAL , &GalReset , "reset" },
- {"Service" , BIT_DIGITAL , GalInputPort0 + 7, "service" },
- {"Dip 1" , BIT_DIPSWITCH , GalDip + 0 , "dip" },
- {"Dip 2" , BIT_DIPSWITCH , GalDip + 1 , "dip" },
- {"Dip 3" , BIT_DIPSWITCH , GalDip + 2 , "dip" },
-};
-
-STDINPUTINFO(Froggermc)
-
-static struct BurnInputInfo GalaxianInputList[] =
-{
- {"Coin 1" , BIT_DIGITAL , GalInputPort0 + 0, "p1 coin" },
- {"Start 1" , BIT_DIGITAL , GalInputPort1 + 0, "p1 start" },
- {"Coin 2" , BIT_DIGITAL , GalInputPort0 + 1, "p2 coin" },
- {"Start 2" , BIT_DIGITAL , GalInputPort1 + 1, "p2 start" },
-
- {"Left" , BIT_DIGITAL , GalInputPort0 + 2, "p1 left" },
- {"Right" , BIT_DIGITAL , GalInputPort0 + 3, "p1 right" },
- {"Fire 1" , BIT_DIGITAL , GalInputPort0 + 4, "p1 fire 1" },
-
- {"Left (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 2, "p2 left" },
- {"Right (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 3, "p2 right" },
- {"Fire 1 (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 4, "p2 fire 1" },
-
- {"Reset" , BIT_DIGITAL , &GalReset , "reset" },
- {"Service" , BIT_DIGITAL , GalInputPort0 + 7, "service" },
- {"Dip 1" , BIT_DIPSWITCH , GalDip + 0 , "dip" },
- {"Dip 2" , BIT_DIPSWITCH , GalDip + 1 , "dip" },
- {"Dip 3" , BIT_DIPSWITCH , GalDip + 2 , "dip" },
-};
-
-STDINPUTINFO(Galaxian)
-
-static struct BurnInputInfo GmgalaxInputList[] =
-{
- {"Coin 1" , BIT_DIGITAL , GalInputPort0 + 0, "p1 coin" },
- {"Start 1" , BIT_DIGITAL , GalInputPort1 + 0, "p1 start" },
- {"Start 2" , BIT_DIGITAL , GalInputPort1 + 1, "p2 start" },
-
- {"Up" , BIT_DIGITAL , GalInputPort0 + 7, "p1 up" },
- {"Down" , BIT_DIGITAL , GalInputPort0 + 6, "p1 down" },
- {"Left" , BIT_DIGITAL , GalInputPort0 + 2, "p1 left" },
- {"Right" , BIT_DIGITAL , GalInputPort0 + 3, "p1 right" },
- {"Fire 1" , BIT_DIGITAL , GalInputPort0 + 4, "p1 fire 1" },
-
- {"Up (Cocktail)" , BIT_DIGITAL , GalInputPort0 + 1, "p2 up" },
- {"Down (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 5, "p2 down" },
- {"Left (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 2, "p2 left" },
- {"Right (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 3, "p2 right" },
- {"Fire 1 (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 4, "p2 fire 1" },
-
- {"Reset" , BIT_DIGITAL , &GalReset , "reset" },
- {"GM Dip 1" , BIT_DIPSWITCH , GalDip + 0 , "dip" },
- {"GM Dip 2" , BIT_DIPSWITCH , GalDip + 1 , "dip" },
- {"GM Dip 3" , BIT_DIPSWITCH , GalDip + 2 , "dip" },
- {"GX Dip 1" , BIT_DIPSWITCH , GalDip + 3 , "dip" },
- {"GX Dip 2" , BIT_DIPSWITCH , GalDip + 4 , "dip" },
- {"GX Dip 3" , BIT_DIPSWITCH , GalDip + 5 , "dip" },
- {"Game Select Switch", BIT_DIPSWITCH , &GalFakeDip , "dip" },
-};
-
-STDINPUTINFO(Gmgalax)
-
-static struct BurnInputInfo HotshockInputList[] =
-{
- {"Coin 1" , BIT_DIGITAL , GalInputPort1 + 3, "p1 coin" },
- {"Start 1" , BIT_DIGITAL , GalInputPort1 + 7, "p1 start" },
- {"Coin 2" , BIT_DIGITAL , GalInputPort1 + 4, "p2 coin" },
- {"Start 2" , BIT_DIGITAL , GalInputPort1 + 6, "p2 start" },
-
- {"Up" , BIT_DIGITAL , GalInputPort0 + 0, "p1 up" },
- {"Down" , BIT_DIGITAL , GalInputPort0 + 2, "p1 down" },
- {"Left" , BIT_DIGITAL , GalInputPort0 + 5, "p1 left" },
- {"Right" , BIT_DIGITAL , GalInputPort0 + 4, "p1 right" },
- {"Fire 1" , BIT_DIGITAL , GalInputPort0 + 3, "p1 fire 1" },
-
- {"Reset" , BIT_DIGITAL , &GalReset , "reset" },
- {"Service" , BIT_DIGITAL , GalInputPort1 + 5, "service" },
- {"Dip 1" , BIT_DIPSWITCH , GalDip + 0 , "dip" },
- {"Dip 2" , BIT_DIPSWITCH , GalDip + 1 , "dip" },
- {"Dip 3" , BIT_DIPSWITCH , GalDip + 2 , "dip" },
- {"Dip 4" , BIT_DIPSWITCH , GalDip + 3 , "dip" },
-};
-
-STDINPUTINFO(Hotshock)
-
-static struct BurnInputInfo HunchbkgInputList[] =
-{
- {"Coin 1" , BIT_DIGITAL , GalInputPort0 + 0, "p1 coin" },
- {"Coin 2" , BIT_DIGITAL , GalInputPort0 + 1, "p2 coin" },
- {"Start 2" , BIT_DIGITAL , GalInputPort1 + 1, "p2 start" },
-
- {"Down" , BIT_DIGITAL , GalInputPort0 + 7, "p1 down" },
- {"Left" , BIT_DIGITAL , GalInputPort0 + 2, "p1 left" },
- {"Right" , BIT_DIGITAL , GalInputPort0 + 3, "p1 right" },
- {"Fire 1" , BIT_DIGITAL , GalInputPort1 + 0, "p1 fire 1" },
-
- {"Down (Cocktail)" , BIT_DIGITAL , GalInputPort0 + 6, "p2 down" },
- {"Left (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 2, "p2 left" },
- {"Right (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 3, "p2 right" },
- {"Fire 1 (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 5, "p2 fire 1" },
-
- {"Reset" , BIT_DIGITAL , &GalReset , "reset" },
- {"Dip 1" , BIT_DIPSWITCH , GalDip + 0 , "dip" },
- {"Dip 2" , BIT_DIPSWITCH , GalDip + 1 , "dip" },
- {"Dip 3" , BIT_DIPSWITCH , GalDip + 2 , "dip" },
-};
-
-STDINPUTINFO(Hunchbkg)
-
-static struct BurnInputInfo HunchbksInputList[] =
-{
- {"Coin 1" , BIT_DIGITAL , GalInputPort0 + 7, "p1 coin" },
- {"Start 1" , BIT_DIGITAL , GalInputPort1 + 7, "p1 start" },
- {"Coin 2" , BIT_DIGITAL , GalInputPort0 + 6, "p2 coin" },
- {"Start 2" , BIT_DIGITAL , GalInputPort1 + 6, "p2 start" },
-
- {"Up" , BIT_DIGITAL , GalInputPort2 + 4, "p1 up" },
- {"Down" , BIT_DIGITAL , GalInputPort2 + 6, "p1 down" },
- {"Left" , BIT_DIGITAL , GalInputPort0 + 5, "p1 left" },
- {"Right" , BIT_DIGITAL , GalInputPort0 + 4, "p1 right" },
- {"Fire 1" , BIT_DIGITAL , GalInputPort0 + 3, "p1 fire 1" },
- {"Fire 2" , BIT_DIGITAL , GalInputPort0 + 1, "p1 fire 2" },
-
- {"Up (Cocktail)" , BIT_DIGITAL , GalInputPort0 + 0, "p2 up" },
- {"Down (Cocktail)" , BIT_DIGITAL , GalInputPort2 + 0, "p2 down" },
- {"Left (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 5, "p2 left" },
- {"Right (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 4, "p2 right" },
- {"Fire 1 (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 3, "p2 fire 1" },
- {"Fire 2 (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 2, "p2 fire 2" },
-
- {"Reset" , BIT_DIGITAL , &GalReset , "reset" },
- {"Dip 1" , BIT_DIPSWITCH , GalDip + 0 , "dip" },
- {"Dip 2" , BIT_DIPSWITCH , GalDip + 1 , "dip" },
- {"Dip 3" , BIT_DIPSWITCH , GalDip + 2 , "dip" },
-};
-
-STDINPUTINFO(Hunchbks)
-
-static struct BurnInputInfo HustlerInputList[] =
-{
- {"Coin 1" , BIT_DIGITAL , GalInputPort0 + 7, "p1 coin" },
- {"Start 1" , BIT_DIGITAL , GalInputPort1 + 7, "p1 start" },
- {"Coin 2" , BIT_DIGITAL , GalInputPort0 + 6, "p2 coin" },
- {"Start 2" , BIT_DIGITAL , GalInputPort1 + 6, "p2 start" },
-
- {"Up" , BIT_DIGITAL , GalInputPort2 + 4, "p1 up" },
- {"Down" , BIT_DIGITAL , GalInputPort2 + 6, "p1 down" },
- {"Left" , BIT_DIGITAL , GalInputPort0 + 5, "p1 left" },
- {"Right" , BIT_DIGITAL , GalInputPort0 + 4, "p1 right" },
- {"Fire 1" , BIT_DIGITAL , GalInputPort0 + 3, "p1 fire 1" },
-
- {"Up (Cocktail)" , BIT_DIGITAL , GalInputPort0 + 0, "p2 up" },
- {"Down (Cocktail)" , BIT_DIGITAL , GalInputPort2 + 1, "p2 down" },
- {"Left (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 5, "p2 left" },
- {"Right (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 4, "p2 right" },
- {"Fire 1 (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 3, "p2 fire 1" },
-
- {"Reset" , BIT_DIGITAL , &GalReset , "reset" },
- {"Service" , BIT_DIGITAL , GalInputPort0 + 2, "service" },
- {"Dip 1" , BIT_DIPSWITCH , GalDip + 0 , "dip" },
- {"Dip 2" , BIT_DIPSWITCH , GalDip + 1 , "dip" },
- {"Dip 3" , BIT_DIPSWITCH , GalDip + 2 , "dip" },
-};
-
-STDINPUTINFO(Hustler)
-
-static struct BurnInputInfo JumpbugInputList[] =
-{
- {"Coin 1" , BIT_DIGITAL , GalInputPort0 + 0, "p1 coin" },
- {"Start 1" , BIT_DIGITAL , GalInputPort1 + 0, "p1 start" },
- {"Coin 2" , BIT_DIGITAL , GalInputPort1 + 5, "p2 coin" },
- {"Start 2" , BIT_DIGITAL , GalInputPort1 + 1, "p2 start" },
-
- {"Up" , BIT_DIGITAL , GalInputPort0 + 7, "p1 up" },
- {"Down" , BIT_DIGITAL , GalInputPort0 + 6, "p1 down" },
- {"Left" , BIT_DIGITAL , GalInputPort0 + 2, "p1 left" },
- {"Right" , BIT_DIGITAL , GalInputPort0 + 3, "p1 right" },
- {"Fire 1" , BIT_DIGITAL , GalInputPort0 + 4, "p1 fire 1" },
-
- {"Up (Cocktail)" , BIT_DIGITAL , GalInputPort0 + 1, "p2 up" },
- {"Down (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 7, "p2 down" },
- {"Left (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 2, "p2 left" },
- {"Right (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 3, "p2 right" },
- {"Fire 1 (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 4, "p2 fire 1" },
-
- {"Reset" , BIT_DIGITAL , &GalReset , "reset" },
- {"Dip 1" , BIT_DIPSWITCH , GalDip + 0 , "dip" },
- {"Dip 2" , BIT_DIPSWITCH , GalDip + 1 , "dip" },
- {"Dip 3" , BIT_DIPSWITCH , GalDip + 2 , "dip" },
-};
-
-STDINPUTINFO(Jumpbug)
-
-static struct BurnInputInfo KingballInputList[] =
-{
- {"Coin 1" , BIT_DIGITAL , GalInputPort0 + 0, "p1 coin" },
- {"Start 1" , BIT_DIGITAL , GalInputPort1 + 0, "p1 start" },
- {"Coin 2" , BIT_DIGITAL , GalInputPort0 + 1, "p2 coin" },
- {"Start 2" , BIT_DIGITAL , GalInputPort1 + 1, "p2 start" },
-
- {"Left" , BIT_DIGITAL , GalInputPort0 + 2, "p1 left" },
- {"Right" , BIT_DIGITAL , GalInputPort0 + 3, "p1 right" },
- {"Fire 1" , BIT_DIGITAL , GalInputPort0 + 4, "p1 fire 1" },
-
- {"Left (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 2, "p2 left" },
- {"Right (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 3, "p2 right" },
- {"Fire 1 (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 4, "p2 fire 1" },
-
- {"Reset" , BIT_DIGITAL , &GalReset , "reset" },
- {"Service" , BIT_DIGITAL , GalInputPort0 + 7, "service" },
- {"Dip 1" , BIT_DIPSWITCH , GalDip + 0 , "dip" },
- {"Dip 2" , BIT_DIPSWITCH , GalDip + 1 , "dip" },
- {"Dip 3" , BIT_DIPSWITCH , GalDip + 2 , "dip" },
- {"Fake Dip" , BIT_DIPSWITCH , &GalFakeDip , "dip" },
-};
-
-STDINPUTINFO(Kingball)
-
-static struct BurnInputInfo CkongmcInputList[] =
-{
- {"Coin 1" , BIT_DIGITAL , GalInputPort0 + 0, "p1 coin" },
-
- {"Up" , BIT_DIGITAL , GalInputPort0 + 4, "p1 up" },
- {"Down" , BIT_DIGITAL , GalInputPort0 + 7, "p1 down" },
- {"Left" , BIT_DIGITAL , GalInputPort0 + 2, "p1 left" },
- {"Right" , BIT_DIGITAL , GalInputPort0 + 3, "p1 right" },
- {"Fire 1" , BIT_DIGITAL , GalInputPort1 + 0, "p1 fire 1" },
-
- {"Up (Cocktail)" , BIT_DIGITAL , GalInputPort0 + 1, "p2 up" },
- {"Down (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 5, "p2 down" },
- {"Left (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 2, "p2 left" },
- {"Right (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 3, "p2 right" },
- {"Fire 1 (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 1, "p2 fire 1" },
-
- {"Reset" , BIT_DIGITAL , &GalReset , "reset" },
- {"Dip 1" , BIT_DIPSWITCH , GalDip + 0 , "dip" },
- {"Dip 2" , BIT_DIPSWITCH , GalDip + 1 , "dip" },
- {"Dip 3" , BIT_DIPSWITCH , GalDip + 2 , "dip" },
-};
-
-STDINPUTINFO(Ckongmc)
-
-static struct BurnInputInfo KongInputList[] =
-{
- {"Coin 1" , BIT_DIGITAL , GalInputPort0 + 1, "p1 coin" },
-
- {"Up" , BIT_DIGITAL , GalInputPort0 + 7, "p1 up" },
- {"Down" , BIT_DIGITAL , GalInputPort1 + 5, "p1 down" },
- {"Left" , BIT_DIGITAL , GalInputPort0 + 2, "p1 left" },
- {"Right" , BIT_DIGITAL , GalInputPort0 + 3, "p1 right" },
- {"Fire 1" , BIT_DIGITAL , GalInputPort1 + 0, "p1 fire 1" },
- {"Fire 2" , BIT_DIGITAL , GalInputPort1 + 1, "p2 fire 1" },
-
- {"Reset" , BIT_DIGITAL , &GalReset , "reset" },
- {"Dip 1" , BIT_DIPSWITCH , GalDip + 0 , "dip" },
- {"Dip 2" , BIT_DIPSWITCH , GalDip + 1 , "dip" },
- {"Dip 3" , BIT_DIPSWITCH , GalDip + 2 , "dip" },
-};
-
-STDINPUTINFO(Kong)
-
-static struct BurnInputInfo LadybuggInputList[] =
-{
- {"Coin 1" , BIT_DIGITAL , GalInputPort0 + 0, "p1 coin" },
- {"Start 1" , BIT_DIGITAL , GalInputPort1 + 0, "p1 start" },
- {"Coin 2" , BIT_DIGITAL , GalInputPort0 + 1, "p2 coin" },
- {"Start 2" , BIT_DIGITAL , GalInputPort1 + 1, "p2 start" },
-
- {"Up" , BIT_DIGITAL , GalInputPort0 + 7, "p1 up" },
- {"Down" , BIT_DIGITAL , GalInputPort0 + 5, "p1 down" },
- {"Left" , BIT_DIGITAL , GalInputPort0 + 2, "p1 left" },
- {"Right" , BIT_DIGITAL , GalInputPort0 + 3, "p1 right" },
- {"Fire 1" , BIT_DIGITAL , GalInputPort2 + 5, "p1 fire 1" },
-
- {"Up (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 4, "p2 up" },
- {"Down (Cocktail)" , BIT_DIGITAL , GalInputPort0 + 6, "p2 down" },
- {"Left (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 2, "p2 left" },
- {"Right (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 3, "p2 right" },
- {"Fire 1 (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 5, "p2 fire 1" },
-
- {"Reset" , BIT_DIGITAL , &GalReset , "reset" },
- {"Dip 1" , BIT_DIPSWITCH , GalDip + 0 , "dip" },
- {"Dip 2" , BIT_DIPSWITCH , GalDip + 1 , "dip" },
- {"Dip 3" , BIT_DIPSWITCH , GalDip + 2 , "dip" },
-};
-
-STDINPUTINFO(Ladybugg)
-
-static struct BurnInputInfo LeversInputList[] =
-{
- {"Coin 1" , BIT_DIGITAL , GalInputPort0 + 0, "p1 coin" },
- {"Start 1" , BIT_DIGITAL , GalInputPort1 + 0, "p1 start" },
- {"Coin 2" , BIT_DIGITAL , GalInputPort1 + 5, "p2 coin" },
- {"Start 2" , BIT_DIGITAL , GalInputPort1 + 1, "p2 start" },
-
- {"P1 Up" , BIT_DIGITAL , GalInputPort0 + 7, "p1 up" },
- {"P1 Down" , BIT_DIGITAL , GalInputPort0 + 6, "p1 down" },
- {"P1 Left" , BIT_DIGITAL , GalInputPort0 + 2, "p1 left" },
- {"P1 Right" , BIT_DIGITAL , GalInputPort0 + 3, "p1 right" },
-
- {"P2 Up" , BIT_DIGITAL , GalInputPort0 + 1, "p2 up" },
- {"P2 Down" , BIT_DIGITAL , GalInputPort1 + 7, "p2 down" },
- {"P2 Left" , BIT_DIGITAL , GalInputPort1 + 2, "p2 left" },
- {"P2 Right" , BIT_DIGITAL , GalInputPort1 + 3, "p2 right" },
-
- {"Reset" , BIT_DIGITAL , &GalReset , "reset" },
- {"Dip 1" , BIT_DIPSWITCH , GalDip + 0 , "dip" },
- {"Dip 2" , BIT_DIPSWITCH , GalDip + 1 , "dip" },
- {"Dip 3" , BIT_DIPSWITCH , GalDip + 2 , "dip" },
-};
-
-STDINPUTINFO(Levers)
-
-static struct BurnInputInfo LosttombInputList[] =
-{
- {"Coin 1" , BIT_DIGITAL , GalInputPort0 + 7, "p1 coin" },
- {"Start 1" , BIT_DIGITAL , GalInputPort0 + 1, "p1 start" },
- {"Coin 2" , BIT_DIGITAL , GalInputPort0 + 6, "p2 coin" },
- {"Start 2" , BIT_DIGITAL , GalInputPort0 + 0, "p2 start" },
-
- {"Left Up" , BIT_DIGITAL , GalInputPort0 + 2, "p1 up" },
- {"Left Down" , BIT_DIGITAL , GalInputPort0 + 3, "p1 down" },
- {"left Left" , BIT_DIGITAL , GalInputPort0 + 5, "p1 left" },
- {"Left Right" , BIT_DIGITAL , GalInputPort0 + 4, "p1 right" },
- {"Fire 1" , BIT_DIGITAL , GalInputPort1 + 6, "p1 fire 1" },
-
- {"Right Up" , BIT_DIGITAL , GalInputPort1 + 2, "p2 up" },
- {"Right Down" , BIT_DIGITAL , GalInputPort1 + 3, "p2 down" },
- {"Right Left" , BIT_DIGITAL , GalInputPort1 + 5, "p2 left" },
- {"Right Right" , BIT_DIGITAL , GalInputPort1 + 4, "p2 right" },
-
- {"Reset" , BIT_DIGITAL , &GalReset , "reset" },
- {"Dip 1" , BIT_DIPSWITCH , GalDip + 0 , "dip" },
- {"Dip 2" , BIT_DIPSWITCH , GalDip + 1 , "dip" },
- {"Dip 3" , BIT_DIPSWITCH , GalDip + 2 , "dip" },
-};
-
-STDINPUTINFO(Losttomb)
-
-static struct BurnInputInfo LuctodayInputList[] =
-{
- {"Coin 1" , BIT_DIGITAL , GalInputPort0 + 0, "p1 coin" },
- {"Start 1" , BIT_DIGITAL , GalInputPort1 + 0, "p1 start" },
-
- {"Left" , BIT_DIGITAL , GalInputPort0 + 2, "p1 left" },
- {"Right" , BIT_DIGITAL , GalInputPort0 + 3, "p1 right" },
- {"Fire 1" , BIT_DIGITAL , GalInputPort0 + 4, "p1 fire 1" },
- {"Fire 2" , BIT_DIGITAL , GalInputPort0 + 7, "p1 fire 2" },
-
- {"Reset" , BIT_DIGITAL , &GalReset , "reset" },
- {"Dip 1" , BIT_DIPSWITCH , GalDip + 0 , "dip" },
- {"Dip 2" , BIT_DIPSWITCH , GalDip + 1 , "dip" },
- {"Dip 3" , BIT_DIPSWITCH , GalDip + 2 , "dip" },
-};
-
-STDINPUTINFO(Luctoday)
-
-static struct BurnInputInfo MarsInputList[] =
-{
- {"Coin 1" , BIT_DIGITAL , GalInputPort0 + 7, "p1 coin" },
- {"Start 1" , BIT_DIGITAL , GalInputPort1 + 7, "p1 start" },
- {"Coin 2" , BIT_DIGITAL , GalInputPort0 + 6, "p2 coin" },
- {"Start 2" , BIT_DIGITAL , GalInputPort1 + 6, "p2 start" },
-
- {"P1 Left Stick Up" , BIT_DIGITAL , GalInputPort2 + 4, "p1 up" },
- {"P1 Left Stick Down" , BIT_DIGITAL , GalInputPort2 + 6, "p1 down" },
- {"P1 Left Stick Left" , BIT_DIGITAL , GalInputPort0 + 5, "p1 left" },
- {"P1 Left Stick Right", BIT_DIGITAL , GalInputPort0 + 4, "p1 right" },
- {"P1 Rght Stick Up" , BIT_DIGITAL , GalInputPort2 + 7, "p3 up" },
- {"P1 Rght Stick Down" , BIT_DIGITAL , GalInputPort2 + 5, "p3 down" },
- {"P1 Rght Stick Left" , BIT_DIGITAL , GalInputPort0 + 3, "p3 left" },
- {"P1 Rght Stick Right", BIT_DIGITAL , GalInputPort0 + 2, "p3 right" },
-
- {"P2 Left Stick Up" , BIT_DIGITAL , GalInputPort0 + 0, "p2 up" },
- {"P2 Left Stick Down" , BIT_DIGITAL , GalInputPort2 + 0, "p2 down" },
- {"P2 Left Stick Left" , BIT_DIGITAL , GalInputPort1 + 5, "p2 left" },
- {"P2 Left Stick Right", BIT_DIGITAL , GalInputPort1 + 4, "p2 right" },
- {"P2 Rght Stick Up" , BIT_DIGITAL , GalInputPort3 + 7, "p4 up" },
- {"P2 Rght Stick Down" , BIT_DIGITAL , GalInputPort3 + 5, "p4 down" },
- {"P2 Rght Stick Left" , BIT_DIGITAL , GalInputPort1 + 3, "p4 left" },
- {"P2 Rght Stick Right", BIT_DIGITAL , GalInputPort1 + 2, "p4 right" },
-
- {"Reset" , BIT_DIGITAL , &GalReset , "reset" },
- {"Service" , BIT_DIGITAL , GalInputPort0 + 1, "service" },
- {"Dip 1" , BIT_DIPSWITCH , GalDip + 0 , "dip" },
- {"Dip 2" , BIT_DIPSWITCH , GalDip + 1 , "dip" },
- {"Dip 3" , BIT_DIPSWITCH , GalDip + 2 , "dip" },
- {"Dip 4" , BIT_DIPSWITCH , &GalFakeDip , "dip" },
-};
-
-STDINPUTINFO(Mars)
-
-static struct BurnInputInfo MoonwarInputList[] =
-{
- {"Coin 1" , BIT_DIGITAL , GalInputPort0 + 7, "p1 coin" },
- {"Start 1" , BIT_DIGITAL , GalInputPort1 + 2, "p1 start" },
- {"Coin 2" , BIT_DIGITAL , GalInputPort0 + 6, "p2 coin" },
- {"Start 2" , BIT_DIGITAL , GalInputPort1 + 3, "p2 start" },
-
- {"Hyper Flip / Fire 2 (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 4, "p2 fire 2" },
-
- A("Dial" , BIT_ANALOG_REL, &GalAnalogPort0 , "p1 z-axis" ),
- {"Fire 1" , BIT_DIGITAL , GalInputPort1 + 7, "p1 fire 1" },
- {"Fire 2" , BIT_DIGITAL , GalInputPort1 + 6, "p1 fire 2" },
- {"Fire 3" , BIT_DIGITAL , GalInputPort1 + 5, "p1 fire 3" },
-
- A("Dial (Cocktail)" , BIT_ANALOG_REL, &GalAnalogPort1 , "p2 z-axis" ),
- {"Fire 1 (Cocktail)" , BIT_DIGITAL , GalInputPort2 + 0, "p2 fire 1" },
- {"Fire 3 (Cocktail)" , BIT_DIGITAL , GalInputPort0 + 5, "p2 fire 3" },
-
- {"Reset" , BIT_DIGITAL , &GalReset , "reset" },
- {"Dip 1" , BIT_DIPSWITCH , GalDip + 0 , "dip" },
- {"Dip 2" , BIT_DIPSWITCH , GalDip + 1 , "dip" },
- {"Dip 3" , BIT_DIPSWITCH , GalDip + 2 , "dip" },
-};
-
-STDINPUTINFO(Moonwar)
-
-static struct BurnInputInfo MrkougarInputList[] =
-{
- {"Coin 1" , BIT_DIGITAL , GalInputPort0 + 7, "p1 coin" },
- {"Start 1" , BIT_DIGITAL , GalInputPort1 + 7, "p1 start" },
- {"Coin 2" , BIT_DIGITAL , GalInputPort0 + 6, "p2 coin" },
- {"Start 2" , BIT_DIGITAL , GalInputPort1 + 6, "p2 start" },
-
- {"Left" , BIT_DIGITAL , GalInputPort0 + 5, "p1 left" },
- {"Right" , BIT_DIGITAL , GalInputPort0 + 4, "p1 right" },
- {"Fire 1" , BIT_DIGITAL , GalInputPort0 + 3, "p1 fire 1" },
-
- {"Left (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 5, "p2 left" },
- {"Right (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 4, "p2 right" },
- {"Fire 1 (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 3, "p2 fire 1" },
-
- {"Reset" , BIT_DIGITAL , &GalReset , "reset" },
- {"Service" , BIT_DIGITAL , GalInputPort0 + 2, "service" },
- {"Dip 1" , BIT_DIPSWITCH , GalDip + 0 , "dip" },
- {"Dip 2" , BIT_DIPSWITCH , GalDip + 1 , "dip" },
- {"Dip 3" , BIT_DIPSWITCH , GalDip + 2 , "dip" },
-};
-
-STDINPUTINFO(Mrkougar)
-
-static struct BurnInputInfo MshuttleInputList[] =
-{
- {"Coin 1" , BIT_DIGITAL , GalInputPort0 + 0, "p1 coin" },
- {"Start 1" , BIT_DIGITAL , GalInputPort1 + 0, "p1 start" },
- {"Coin 2" , BIT_DIGITAL , GalInputPort0 + 1, "p2 coin" },
- {"Start 2" , BIT_DIGITAL , GalInputPort1 + 1, "p2 start" },
-
- {"Up" , BIT_DIGITAL , GalInputPort0 + 2, "p1 up" },
- {"Down" , BIT_DIGITAL , GalInputPort0 + 3, "p1 down" },
- {"Right" , BIT_DIGITAL , GalInputPort0 + 5, "p1 right" },
- {"Fire 1" , BIT_DIGITAL , GalInputPort0 + 4, "p1 fire 1" },
-
- {"Up (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 2, "p2 up" },
- {"Down (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 3, "p2 down" },
- {"Right (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 5, "p2 right" },
- {"Fire 1 (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 4, "p2 fire 1" },
-
- {"Reset" , BIT_DIGITAL , &GalReset , "reset" },
- {"Dip 1" , BIT_DIPSWITCH , GalDip + 0 , "dip" },
- {"Dip 2" , BIT_DIPSWITCH , GalDip + 1 , "dip" },
- {"Dip 3" , BIT_DIPSWITCH , GalDip + 2 , "dip" },
-};
-
-STDINPUTINFO(Mshuttle)
-
-static struct BurnInputInfo OmegabInputList[] =
-{
- {"Coin 1" , BIT_DIGITAL , GalInputPort0 + 0, "p1 coin" },
- {"Start 1" , BIT_DIGITAL , GalInputPort1 + 0, "p1 start" },
- {"Coin 2" , BIT_DIGITAL , GalInputPort0 + 1, "p2 coin" },
- {"Start 2" , BIT_DIGITAL , GalInputPort1 + 1, "p2 start" },
-
- {"Left" , BIT_DIGITAL , GalInputPort0 + 2, "p1 left" },
- {"Right" , BIT_DIGITAL , GalInputPort0 + 3, "p1 right" },
- {"Fire 1" , BIT_DIGITAL , GalInputPort0 + 4, "p1 fire 1" },
-
- {"Left (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 2, "p2 left" },
- {"Right (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 3, "p2 right" },
- {"Fire 1 (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 4, "p2 fire 1" },
-
- {"Reset" , BIT_DIGITAL , &GalReset , "reset" },
- {"Dip 1" , BIT_DIPSWITCH , GalDip + 0 , "dip" },
- {"Dip 2" , BIT_DIPSWITCH , GalDip + 1 , "dip" },
- {"Dip 3" , BIT_DIPSWITCH , GalDip + 2 , "dip" },
-};
-
-STDINPUTINFO(Omegab)
-
-static struct BurnInputInfo OrbitronInputList[] =
-{
- {"Coin 1" , BIT_DIGITAL , GalInputPort0 + 0, "p1 coin" },
- {"Start 1" , BIT_DIGITAL , GalInputPort1 + 0, "p1 start" },
- {"Coin 2" , BIT_DIGITAL , GalInputPort0 + 1, "p2 coin" },
- {"Start 2" , BIT_DIGITAL , GalInputPort1 + 1, "p2 start" },
-
- {"Up" , BIT_DIGITAL , GalInputPort0 + 7, "p1 up" },
- {"Down" , BIT_DIGITAL , GalInputPort0 + 6, "p1 down" },
- {"Left" , BIT_DIGITAL , GalInputPort0 + 2, "p1 left" },
- {"Right" , BIT_DIGITAL , GalInputPort0 + 3, "p1 right" },
- {"Fire 1" , BIT_DIGITAL , GalInputPort0 + 4, "p1 fire 1" },
-
- {"Up (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 7, "p2 up" },
- {"Down (Cocktail)" , BIT_DIGITAL , GalInputPort0 + 5, "p2 down" },
- {"Left (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 2, "p2 left" },
- {"Right (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 3, "p2 right" },
- {"Fire 1 (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 4, "p2 fire 1" },
-
- {"Reset" , BIT_DIGITAL , &GalReset , "reset" },
- {"Dip 1" , BIT_DIPSWITCH , GalDip + 0 , "dip" },
- {"Dip 2" , BIT_DIPSWITCH , GalDip + 1 , "dip" },
- {"Dip 3" , BIT_DIPSWITCH , GalDip + 2 , "dip" },
-};
-
-STDINPUTINFO(Orbitron)
-
-static struct BurnInputInfo Ozon1InputList[] =
-{
- {"Coin 1" , BIT_DIGITAL , GalInputPort0 + 7, "p1 coin" },
- {"Start 1" , BIT_DIGITAL , GalInputPort1 + 7, "p1 start" },
- {"Coin 2" , BIT_DIGITAL , GalInputPort0 + 6, "p2 coin" },
- {"Start 2" , BIT_DIGITAL , GalInputPort1 + 6, "p2 start" },
-
- {"P1 Left" , BIT_DIGITAL , GalInputPort0 + 5, "p1 left" },
- {"P1 Right" , BIT_DIGITAL , GalInputPort0 + 4, "p1 right" },
- {"P1 Fire 1" , BIT_DIGITAL , GalInputPort0 + 3, "p1 fire 1" },
-
- {"P2 Left" , BIT_DIGITAL , GalInputPort1 + 5, "p2 left" },
- {"P2 Right" , BIT_DIGITAL , GalInputPort1 + 4, "p2 right" },
- {"P2 Fire 1" , BIT_DIGITAL , GalInputPort1 + 3, "p2 fire 1" },
-
- {"Reset" , BIT_DIGITAL , &GalReset , "reset" },
- {"Dip 1" , BIT_DIPSWITCH , GalDip + 0 , "dip" },
- {"Dip 2" , BIT_DIPSWITCH , GalDip + 1 , "dip" },
- {"Dip 3" , BIT_DIPSWITCH , GalDip + 2 , "dip" },
-};
-
-STDINPUTINFO(Ozon1)
-
-static struct BurnInputInfo PacmanblInputList[] =
-{
- {"Coin 1" , BIT_DIGITAL , GalInputPort0 + 0, "p1 coin" },
- {"Start 1" , BIT_DIGITAL , GalInputPort1 + 0, "p1 start" },
- {"Coin 2" , BIT_DIGITAL , GalInputPort0 + 1, "p2 coin" },
- {"Start 2" , BIT_DIGITAL , GalInputPort1 + 1, "p2 start" },
-
- {"Up" , BIT_DIGITAL , GalInputPort0 + 7, "p1 up" },
- {"Down" , BIT_DIGITAL , GalInputPort0 + 5, "p1 down" },
- {"Left" , BIT_DIGITAL , GalInputPort0 + 2, "p1 left" },
- {"Right" , BIT_DIGITAL , GalInputPort0 + 3, "p1 right" },
-
- {"Up (Cocktail)" , BIT_DIGITAL , GalInputPort0 + 6, "p2 up" },
- {"Down (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 5, "p2 down" },
- {"Left (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 2, "p2 left" },
- {"Right (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 3, "p2 right" },
-
- {"Reset" , BIT_DIGITAL , &GalReset , "reset" },
- {"Dip 1" , BIT_DIPSWITCH , GalDip + 0 , "dip" },
- {"Dip 2" , BIT_DIPSWITCH , GalDip + 1 , "dip" },
- {"Dip 3" , BIT_DIPSWITCH , GalDip + 2 , "dip" },
-};
-
-STDINPUTINFO(Pacmanbl)
-
-static struct BurnInputInfo Phoenxp2InputList[] =
-{
- {"Coin 1" , BIT_DIGITAL , GalInputPort0 + 0, "p1 coin" },
- {"Start 1" , BIT_DIGITAL , GalInputPort1 + 0, "p1 start" },
- {"Coin 2" , BIT_DIGITAL , GalInputPort0 + 1, "p2 coin" },
- {"Start 2" , BIT_DIGITAL , GalInputPort1 + 1, "p2 start" },
-
- {"Up" , BIT_DIGITAL , GalInputPort0 + 7, "p1 up" },
- {"Down" , BIT_DIGITAL , GalInputPort0 + 5, "p1 down" },
- {"Left" , BIT_DIGITAL , GalInputPort0 + 2, "p1 left" },
- {"Right" , BIT_DIGITAL , GalInputPort0 + 3, "p1 right" },
- {"Fire 1" , BIT_DIGITAL , GalInputPort0 + 4, "p1 fire 1" },
-
- {"Up (Cocktail)" , BIT_DIGITAL , GalInputPort0 + 6, "p2 up" },
- {"Down (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 5, "p2 down" },
- {"Left (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 2, "p2 left" },
- {"Right (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 3, "p2 right" },
- {"Fire 1 (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 4, "p2 fire 1" },
-
- {"Reset" , BIT_DIGITAL , &GalReset , "reset" },
- {"Dip 1" , BIT_DIPSWITCH , GalDip + 0 , "dip" },
- {"Dip 2" , BIT_DIPSWITCH , GalDip + 1 , "dip" },
- {"Dip 3" , BIT_DIPSWITCH , GalDip + 2 , "dip" },
-};
-
-STDINPUTINFO(Phoenxp2)
-
-static struct BurnInputInfo PicsesInputList[] =
-{
- {"Coin 1" , BIT_DIGITAL , GalInputPort0 + 1, "p1 coin" },
- {"Start 1" , BIT_DIGITAL , GalInputPort1 + 0, "p1 start" },
- {"Coin 2" , BIT_DIGITAL , GalInputPort0 + 0, "p2 coin" },
- {"Start 2" , BIT_DIGITAL , GalInputPort1 + 1, "p2 start" },
-
- {"Left" , BIT_DIGITAL , GalInputPort0 + 2, "p1 left" },
- {"Right" , BIT_DIGITAL , GalInputPort0 + 3, "p1 right" },
- {"Fire 1" , BIT_DIGITAL , GalInputPort0 + 4, "p1 fire 1" },
-
- {"Left (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 2, "p2 left" },
- {"Right (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 3, "p2 right" },
- {"Fire 1 (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 4, "p2 fire 1" },
-
- {"Reset" , BIT_DIGITAL , &GalReset , "reset" },
- {"Dip 1" , BIT_DIPSWITCH , GalDip + 0 , "dip" },
- {"Dip 2" , BIT_DIPSWITCH , GalDip + 1 , "dip" },
- {"Dip 3" , BIT_DIPSWITCH , GalDip + 2 , "dip" },
-};
-
-STDINPUTINFO(Picses)
-
-static struct BurnInputInfo PorterInputList[] =
-{
- {"Coin 1" , BIT_DIGITAL , GalInputPort0 + 0, "p1 coin" },
- {"Coin 2" , BIT_DIGITAL , GalInputPort0 + 1, "p2 coin" },
-
- {"Up" , BIT_DIGITAL , GalInputPort0 + 4, "p1 up" },
- {"Down" , BIT_DIGITAL , GalInputPort0 + 7, "p1 down" },
- {"Left" , BIT_DIGITAL , GalInputPort0 + 2, "p1 left" },
- {"Right" , BIT_DIGITAL , GalInputPort0 + 3, "p1 right" },
- {"Fire 1" , BIT_DIGITAL , GalInputPort1 + 0, "p1 fire 1" },
-
- {"Up (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 4, "p2 up" },
- {"Down (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 7, "p2 down" },
- {"Left (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 2, "p2 left" },
- {"Right (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 3, "p2 right" },
- {"Fire 1 (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 1, "p2 fire 1" },
-
- {"Reset" , BIT_DIGITAL , &GalReset , "reset" },
- {"Dip 1" , BIT_DIPSWITCH , GalDip + 0 , "dip" },
- {"Dip 2" , BIT_DIPSWITCH , GalDip + 1 , "dip" },
- {"Dip 3" , BIT_DIPSWITCH , GalDip + 2 , "dip" },
-};
-
-STDINPUTINFO(Porter)
-
-static struct BurnInputInfo RacknrolInputList[] =
-{
- {"Coin 1" , BIT_DIGITAL , GalInputPort0 + 0, "p1 coin" },
- {"Start 1" , BIT_DIGITAL , GalInputPort1 + 0, "p1 start" },
- {"Coin 2" , BIT_DIGITAL , GalInputPort0 + 1, "p2 coin" },
- {"Start 2" , BIT_DIGITAL , GalInputPort1 + 1, "p2 start" },
-
- {"Up" , BIT_DIGITAL , GalInputPort0 + 5, "p1 up" },
- {"Down" , BIT_DIGITAL , GalInputPort0 + 7, "p1 down" },
- {"Left" , BIT_DIGITAL , GalInputPort0 + 2, "p1 left" },
- {"Right" , BIT_DIGITAL , GalInputPort0 + 3, "p1 right" },
- {"Fire 1" , BIT_DIGITAL , GalInputPort0 + 4, "p1 fire 1" },
-
- {"Reset" , BIT_DIGITAL , &GalReset , "reset" },
- {"Dip 1" , BIT_DIPSWITCH , GalDip + 0 , "dip" },
- {"Dip 2" , BIT_DIPSWITCH , GalDip + 1 , "dip" },
- {"Dip 3" , BIT_DIPSWITCH , GalDip + 2 , "dip" },
-};
-
-STDINPUTINFO(Racknrol)
-
-static struct BurnInputInfo RescueInputList[] =
-{
- {"Coin 1" , BIT_DIGITAL , GalInputPort0 + 7, "p1 coin" },
- {"Start 1" , BIT_DIGITAL , GalInputPort2 + 0, "p1 start" },
- {"Coin 2" , BIT_DIGITAL , GalInputPort0 + 6, "p2 coin" },
- {"Start 2" , BIT_DIGITAL , GalInputPort2 + 6, "p2 start" },
-
- {"P1 Left Stick Up" , BIT_DIGITAL , GalInputPort0 + 2, "p1 up" },
- {"P1 Left Stick Down" , BIT_DIGITAL , GalInputPort0 + 3, "p1 down" },
- {"P1 Left Stick Left" , BIT_DIGITAL , GalInputPort0 + 5, "p1 left" },
- {"P1 Left Stick Right", BIT_DIGITAL , GalInputPort0 + 4, "p1 right" },
- {"P1 Rght Stick Up" , BIT_DIGITAL , GalInputPort1 + 2, "p2 up" },
- {"P1 Rght Stick Down" , BIT_DIGITAL , GalInputPort1 + 3, "p2 down" },
- {"P1 Rght Stick Left" , BIT_DIGITAL , GalInputPort1 + 5, "p2 left" },
- {"P1 Rght Stick Right", BIT_DIGITAL , GalInputPort1 + 4, "p2 right" },
- {"Fire 1" , BIT_DIGITAL , GalInputPort0 + 0, "p2 fire 1" },
-
- {"Reset" , BIT_DIGITAL , &GalReset , "reset" },
- {"Dip 1" , BIT_DIPSWITCH , GalDip + 0 , "dip" },
- {"Dip 2" , BIT_DIPSWITCH , GalDip + 1 , "dip" },
- {"Dip 3" , BIT_DIPSWITCH , GalDip + 2 , "dip" },
- {"Dip 4" , BIT_DIPSWITCH , &GalFakeDip , "dip" },
-};
-
-STDINPUTINFO(Rescue)
-
-static struct BurnInputInfo RockclimInputList[] =
-{
- {"Coin 1" , BIT_DIGITAL , GalInputPort0 + 0, "p1 coin" },
- {"Start 1" , BIT_DIGITAL , GalInputPort1 + 0, "p1 start" },
- {"Coin 2" , BIT_DIGITAL , GalInputPort0 + 1, "p2 coin" },
- {"Start 2" , BIT_DIGITAL , GalInputPort1 + 1, "p2 start" },
-
- {"P1 Left Stick Up" , BIT_DIGITAL , GalInputPort1 + 4, "p1 up" },
- {"P1 Left Stick Down" , BIT_DIGITAL , GalInputPort1 + 5, "p1 down" },
- {"P1 Left Stick Left" , BIT_DIGITAL , GalInputPort1 + 2, "p1 left" },
- {"P1 Left Stick Right", BIT_DIGITAL , GalInputPort1 + 3, "p1 right" },
- {"P1 Rght Stick Up" , BIT_DIGITAL , GalInputPort0 + 4, "p2 up" },
- {"P1 Rght Stick Down" , BIT_DIGITAL , GalInputPort0 + 5, "p2 down" },
- {"P1 Rght Stick Left" , BIT_DIGITAL , GalInputPort0 + 2, "p2 left" },
- {"P1 Rght Stick Right", BIT_DIGITAL , GalInputPort0 + 3, "p2 right" },
-
- {"Reset" , BIT_DIGITAL , &GalReset , "reset" },
- {"Dip 1" , BIT_DIPSWITCH , GalDip + 0 , "dip" },
- {"Dip 2" , BIT_DIPSWITCH , GalDip + 1 , "dip" },
- {"Dip 3" , BIT_DIPSWITCH , GalDip + 2 , "dip" },
- {"Dip 4" , BIT_DIPSWITCH , &GalFakeDip , "dip" },
-};
-
-STDINPUTINFO(Rockclim)
-
-static struct BurnInputInfo ScorpionmcInputList[] =
-{
- {"Coin 1" , BIT_DIGITAL , GalInputPort0 + 1, "p1 coin" },
- {"Start 1 / Fire 1" , BIT_DIGITAL , GalInputPort1 + 0, "p1 start" },
- {"Start 2 / Fire 2" , BIT_DIGITAL , GalInputPort1 + 1, "p2 start" },
-
- {"Up" , BIT_DIGITAL , GalInputPort0 + 4, "p1 up" },
- {"Down" , BIT_DIGITAL , GalInputPort0 + 7, "p1 down" },
- {"Left" , BIT_DIGITAL , GalInputPort0 + 2, "p1 left" },
- {"Right" , BIT_DIGITAL , GalInputPort0 + 3, "p1 right" },
-
- {"Up (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 4, "p2 up" },
- {"Down (Cocktail)" , BIT_DIGITAL , GalInputPort0 + 6, "p2 down" },
- {"Left (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 2, "p2 left" },
- {"Right (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 3, "p2 right" },
- {"Fire 1 (Cocktail)" , BIT_DIGITAL , GalInputPort0 + 5, "p2 fire 1" },
- {"Fire 2 (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 5, "p2 fire 2" },
-
- {"Reset" , BIT_DIGITAL , &GalReset , "reset" },
- {"Service" , BIT_DIGITAL , GalInputPort0 + 0, "service" },
- {"Dip 1" , BIT_DIPSWITCH , GalDip + 0 , "dip" },
- {"Dip 2" , BIT_DIPSWITCH , GalDip + 1 , "dip" },
- {"Dip 3" , BIT_DIPSWITCH , GalDip + 2 , "dip" },
- {"Dip 4" , BIT_DIPSWITCH , GalDip + 3 , "dip" },
-};
-
-STDINPUTINFO(Scorpionmc)
-
-static struct BurnInputInfo AracnisInputList[] =
-{
- {"Coin 1" , BIT_DIGITAL , GalInputPort0 + 1, "p1 coin" },
- {"Start 1" , BIT_DIGITAL , GalInputPort1 + 0, "p1 start" },
- {"Start 2" , BIT_DIGITAL , GalInputPort1 + 1, "p2 start" },
-
- {"Up" , BIT_DIGITAL , GalInputPort0 + 7, "p1 up" },
- {"Down" , BIT_DIGITAL , GalInputPort1 + 2, "p1 down" },
- {"Left" , BIT_DIGITAL , GalInputPort0 + 2, "p1 left" },
- {"Right" , BIT_DIGITAL , GalInputPort0 + 3, "p1 right" },
- {"Fire 1" , BIT_DIGITAL , GalInputPort0 + 4, "p1 fire 1" },
- {"Fire 2" , BIT_DIGITAL , GalInputPort0 + 6, "p1 fire 2" },
-
- {"Reset" , BIT_DIGITAL , &GalReset , "reset" },
- {"Service" , BIT_DIGITAL , GalInputPort0 + 0, "service" },
- {"Dip 1" , BIT_DIPSWITCH , GalDip + 0 , "dip" },
- {"Dip 2" , BIT_DIPSWITCH , GalDip + 1 , "dip" },
- {"Dip 3" , BIT_DIPSWITCH , GalDip + 2 , "dip" },
- {"Dip 4" , BIT_DIPSWITCH , GalDip + 3 , "dip" },
-};
-
-STDINPUTINFO(Aracnis)
-
-static struct BurnInputInfo Scramb2InputList[] =
-{
- {"Coin 1" , BIT_DIGITAL , GalInputPort0 + 7, "p1 coin" },
- {"Start 1" , BIT_DIGITAL , GalInputPort1 + 7, "p1 start" },
- {"Coin 2" , BIT_DIGITAL , GalInputPort0 + 2, "p2 coin" },
- {"Start 2" , BIT_DIGITAL , GalInputPort1 + 6, "p2 start" },
-
- {"Up" , BIT_DIGITAL , GalInputPort2 + 4, "p1 up" },
- {"Down" , BIT_DIGITAL , GalInputPort2 + 6, "p1 down" },
- {"Left" , BIT_DIGITAL , GalInputPort0 + 5, "p1 left" },
- {"Right" , BIT_DIGITAL , GalInputPort0 + 4, "p1 right" },
- {"Fire 1" , BIT_DIGITAL , GalInputPort0 + 3, "p1 fire 1" },
- {"Fire 2" , BIT_DIGITAL , GalInputPort0 + 1, "p1 fire 2" },
-
- {"Up (Cocktail)" , BIT_DIGITAL , GalInputPort0 + 0, "p2 up" },
- {"Down (Cocktail)" , BIT_DIGITAL , GalInputPort2 + 0, "p2 down" },
- {"Left (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 5, "p2 left" },
- {"Right (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 4, "p2 right" },
- {"Fire 1 (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 3, "p2 fire 1" },
- {"Fire 2 (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 2, "p2 fire 2" },
-
- {"Reset" , BIT_DIGITAL , &GalReset , "reset" },
- {"Dip 1" , BIT_DIPSWITCH , GalDip + 0 , "dip" },
- {"Dip 2" , BIT_DIPSWITCH , GalDip + 1 , "dip" },
- {"Dip 3" , BIT_DIPSWITCH , GalDip + 2 , "dip" },
-};
-
-STDINPUTINFO(Scramb2)
-
-static struct BurnInputInfo ScramblbInputList[] =
-{
- {"Coin 1" , BIT_DIGITAL , GalInputPort0 + 0, "p1 coin" },
- {"Start 1" , BIT_DIGITAL , GalInputPort1 + 0, "p1 start" },
- {"Start 2" , BIT_DIGITAL , GalInputPort1 + 1, "p2 start" },
-
- {"Up" , BIT_DIGITAL , GalInputPort0 + 7, "p1 up" },
- {"Down" , BIT_DIGITAL , GalInputPort0 + 6, "p1 down" },
- {"Left" , BIT_DIGITAL , GalInputPort0 + 2, "p1 left" },
- {"Right" , BIT_DIGITAL , GalInputPort0 + 3, "p1 right" },
- {"Fire 1" , BIT_DIGITAL , GalInputPort0 + 4, "p1 fire 1" },
- {"Fire 2" , BIT_DIGITAL , GalInputPort0 + 5, "p1 fire 2" },
-
- {"Up (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 7, "p2 up" },
- {"Down (Cocktail)" , BIT_DIGITAL , GalInputPort0 + 1, "p2 down" },
- {"Left (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 2, "p2 left" },
- {"Right (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 3, "p2 right" },
- {"Fire 1 (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 4, "p2 fire 1" },
- {"Fire 2 (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 5, "p2 fire 2" },
-
- {"Reset" , BIT_DIGITAL , &GalReset , "reset" },
- {"Dip 1" , BIT_DIPSWITCH , GalDip + 0 , "dip" },
- {"Dip 2" , BIT_DIPSWITCH , GalDip + 1 , "dip" },
- {"Dip 3" , BIT_DIPSWITCH , GalDip + 2 , "dip" },
-};
-
-STDINPUTINFO(Scramblb)
-
-static struct BurnInputInfo ScrambleInputList[] =
-{
- {"Coin 1" , BIT_DIGITAL , GalInputPort0 + 7, "p1 coin" },
- {"Start 1" , BIT_DIGITAL , GalInputPort1 + 7, "p1 start" },
- {"Coin 2" , BIT_DIGITAL , GalInputPort0 + 6, "p2 coin" },
- {"Start 2" , BIT_DIGITAL , GalInputPort1 + 6, "p2 start" },
-
- {"Up" , BIT_DIGITAL , GalInputPort2 + 4, "p1 up" },
- {"Down" , BIT_DIGITAL , GalInputPort2 + 6, "p1 down" },
- {"Left" , BIT_DIGITAL , GalInputPort0 + 5, "p1 left" },
- {"Right" , BIT_DIGITAL , GalInputPort0 + 4, "p1 right" },
- {"Fire 1" , BIT_DIGITAL , GalInputPort0 + 3, "p1 fire 1" },
- {"Fire 2" , BIT_DIGITAL , GalInputPort0 + 1, "p1 fire 2" },
-
- {"Up (Cocktail)" , BIT_DIGITAL , GalInputPort0 + 0, "p2 up" },
- {"Down (Cocktail)" , BIT_DIGITAL , GalInputPort2 + 0, "p2 down" },
- {"Left (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 5, "p2 left" },
- {"Right (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 4, "p2 right" },
- {"Fire 1 (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 3, "p2 fire 1" },
- {"Fire 2 (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 2, "p2 fire 2" },
-
- {"Reset" , BIT_DIGITAL , &GalReset , "reset" },
- {"Service" , BIT_DIGITAL , GalInputPort0 + 2, "service" },
- {"Dip 1" , BIT_DIPSWITCH , GalDip + 0 , "dip" },
- {"Dip 2" , BIT_DIPSWITCH , GalDip + 1 , "dip" },
- {"Dip 3" , BIT_DIPSWITCH , GalDip + 2 , "dip" },
-};
-
-STDINPUTINFO(Scramble)
-
-static struct BurnInputInfo ScramblerInputList[] =
-{
- {"Coin 1" , BIT_DIGITAL , GalInputPort0 + 0, "p1 coin" },
- {"Start 1" , BIT_DIGITAL , GalInputPort1 + 0, "p1 start" },
- {"Coin 2" , BIT_DIGITAL , GalInputPort0 + 1, "p2 coin" },
- {"Start 2" , BIT_DIGITAL , GalInputPort1 + 1, "p2 start" },
-
- {"Up" , BIT_DIGITAL , GalInputPort1 + 3, "p1 up" },
- {"Down" , BIT_DIGITAL , GalInputPort0 + 7, "p1 down" },
- {"Left" , BIT_DIGITAL , GalInputPort0 + 2, "p1 left" },
- {"Right" , BIT_DIGITAL , GalInputPort0 + 3, "p1 right" },
- {"Fire 1" , BIT_DIGITAL , GalInputPort0 + 4, "p1 fire 1" },
- {"Fire 2" , BIT_DIGITAL , GalInputPort1 + 2, "p1 fire 2" },
-
- {"Up (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 4, "p2 up" },
- {"Down (Cocktail)" , BIT_DIGITAL , GalInputPort0 + 6, "p2 down" },
- {"Fire 1 (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 5, "p2 fire 1" },
- {"Fire 2 (Cocktail)" , BIT_DIGITAL , GalInputPort0 + 5, "p2 fire 2" },
-
- {"Reset" , BIT_DIGITAL , &GalReset , "reset" },
- {"Dip 1" , BIT_DIPSWITCH , GalDip + 0 , "dip" },
- {"Dip 2" , BIT_DIPSWITCH , GalDip + 1 , "dip" },
- {"Dip 3" , BIT_DIPSWITCH , GalDip + 2 , "dip" },
-};
-
-STDINPUTINFO(Scrambler)
-
-static struct BurnInputInfo SfxInputList[] =
-{
- {"Coin 1" , BIT_DIGITAL , GalInputPort0 + 7, "p1 coin" },
- {"Start 1" , BIT_DIGITAL , GalInputPort1 + 7, "p1 start" },
- {"Coin 2" , BIT_DIGITAL , GalInputPort0 + 6, "p2 coin" },
- {"Start 2" , BIT_DIGITAL , GalInputPort1 + 6, "p2 start" },
-
- {"P1 Up" , BIT_DIGITAL , GalInputPort2 + 4, "p1 up" },
- {"P1 Down" , BIT_DIGITAL , GalInputPort2 + 6, "p1 down" },
- {"P1 Left" , BIT_DIGITAL , GalInputPort0 + 5, "p1 left" },
- {"P1 Right" , BIT_DIGITAL , GalInputPort0 + 4, "p1 right" },
- {"P1 Fire 1" , BIT_DIGITAL , GalInputPort0 + 3, "p1 fire 1" },
- {"P1 Fire 2" , BIT_DIGITAL , GalInputPort0 + 1, "p1 fire 2" },
-
- {"P2 Up" , BIT_DIGITAL , GalInputPort0 + 0, "p2 up" },
- {"P2 Down" , BIT_DIGITAL , GalInputPort2 + 0, "p2 down" },
- {"P2 Left" , BIT_DIGITAL , GalInputPort1 + 5, "p2 left" },
- {"P2 Right" , BIT_DIGITAL , GalInputPort1 + 4, "p2 right" },
- {"P2 Fire 1" , BIT_DIGITAL , GalInputPort1 + 3, "p2 fire 1" },
- {"P2 Fire 2" , BIT_DIGITAL , GalInputPort1 + 2, "p2 fire 2" },
-
- {"Reset" , BIT_DIGITAL , &GalReset , "reset" },
- {"Service" , BIT_DIGITAL , GalInputPort0 + 2, "service" },
- {"Dip 1" , BIT_DIPSWITCH , GalDip + 0 , "dip" },
- {"Dip 2" , BIT_DIPSWITCH , GalDip + 1 , "dip" },
- {"Dip 3" , BIT_DIPSWITCH , GalDip + 2 , "dip" },
-};
-
-STDINPUTINFO(Sfx)
-
-static struct BurnInputInfo SkybaseInputList[] =
-{
- {"Coin 1" , BIT_DIGITAL , GalInputPort0 + 0, "p1 coin" },
- {"Start 1" , BIT_DIGITAL , GalInputPort1 + 0, "p1 start" },
- {"Start 2" , BIT_DIGITAL , GalInputPort1 + 1, "p2 start" },
-
- {"Left" , BIT_DIGITAL , GalInputPort0 + 2, "p1 left" },
- {"Right" , BIT_DIGITAL , GalInputPort0 + 3, "p1 right" },
- {"Fire 1" , BIT_DIGITAL , GalInputPort0 + 4, "p1 fire 1" },
- {"Fire 2" , BIT_DIGITAL , GalInputPort2 + 6, "p1 fire 2" },
-
- {"Left (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 2, "p2 left" },
- {"Right (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 3, "p2 right" },
- {"Fire 1 (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 4, "p2 fire 1" },
- {"Fire 2 (Cocktail)" , BIT_DIGITAL , GalInputPort2 + 7, "p2 fire 2" },
-
- {"Reset" , BIT_DIGITAL , &GalReset , "reset" },
- {"Dip 1" , BIT_DIPSWITCH , GalDip + 0 , "dip" },
- {"Dip 2" , BIT_DIPSWITCH , GalDip + 1 , "dip" },
- {"Dip 3" , BIT_DIPSWITCH , GalDip + 2 , "dip" },
-};
-
-STDINPUTINFO(Skybase)
-
-static struct BurnInputInfo SmooncrsInputList[] =
-{
- {"Coin 1" , BIT_DIGITAL , GalInputPort0 + 0, "p1 coin" },
- {"Start 1" , BIT_DIGITAL , GalInputPort1 + 0, "p1 start" },
- {"Coin 2" , BIT_DIGITAL , GalInputPort0 + 1, "p2 coin" },
- {"Start 2" , BIT_DIGITAL , GalInputPort1 + 1, "p2 start" },
-
- {"Left" , BIT_DIGITAL , GalInputPort0 + 2, "p1 left" },
- {"Right" , BIT_DIGITAL , GalInputPort0 + 3, "p1 right" },
- {"Fire 1" , BIT_DIGITAL , GalInputPort0 + 4, "p1 fire 1" },
-
- {"Reset" , BIT_DIGITAL , &GalReset , "reset" },
- {"Dip 1" , BIT_DIPSWITCH , GalDip + 0 , "dip" },
- {"Dip 2" , BIT_DIPSWITCH , GalDip + 1 , "dip" },
- {"Dip 3" , BIT_DIPSWITCH , GalDip + 2 , "dip" },
-};
-
-STDINPUTINFO(Smooncrs)
-
-static struct BurnInputInfo SpdcoinInputList[] =
-{
- {"Coin 1" , BIT_DIGITAL , GalInputPort0 + 7, "p1 coin" },
- {"Start 1" , BIT_DIGITAL , GalInputPort0 + 1, "p1 start" },
- {"Coin 2" , BIT_DIGITAL , GalInputPort0 + 6, "p2 coin" },
- {"Start 2" , BIT_DIGITAL , GalInputPort0 + 3, "p2 start" },
-
- {"Left" , BIT_DIGITAL , GalInputPort0 + 5, "p1 left" },
- {"Right" , BIT_DIGITAL , GalInputPort0 + 4, "p1 right" },
-
- {"Reset" , BIT_DIGITAL , &GalReset , "reset" },
- {"Dip 1" , BIT_DIPSWITCH , GalDip + 0 , "dip" },
- {"Dip 2" , BIT_DIPSWITCH , GalDip + 1 , "dip" },
- {"Dip 3" , BIT_DIPSWITCH , GalDip + 2 , "dip" },
-};
-
-STDINPUTINFO(Spdcoin)
-
-static struct BurnInputInfo StratgyxInputList[] =
-{
- {"Coin 1" , BIT_DIGITAL , GalInputPort0 + 7, "p1 coin" },
- {"Start 1" , BIT_DIGITAL , GalInputPort1 + 7, "p1 start" },
- {"Coin 2" , BIT_DIGITAL , GalInputPort0 + 6, "p2 coin" },
- {"Start 2" , BIT_DIGITAL , GalInputPort1 + 6, "p2 start" },
-
- {"Up" , BIT_DIGITAL , GalInputPort2 + 4, "p1 up" },
- {"Down" , BIT_DIGITAL , GalInputPort2 + 6, "p1 down" },
- {"Left" , BIT_DIGITAL , GalInputPort0 + 5, "p1 left" },
- {"Right" , BIT_DIGITAL , GalInputPort0 + 4, "p1 right" },
- {"Fire 1" , BIT_DIGITAL , GalInputPort0 + 3, "p1 fire 1" },
- {"Fire 2" , BIT_DIGITAL , GalInputPort0 + 1, "p1 fire 2" },
- {"Fire 3" , BIT_DIGITAL , GalInputPort2 + 5, "p1 fire 3" },
-
- {"Up (Cocktail)" , BIT_DIGITAL , GalInputPort0 + 0, "p2 up" },
- {"Down (Cocktail)" , BIT_DIGITAL , GalInputPort2 + 0, "p2 down" },
- {"Left (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 5, "p2 left" },
- {"Right (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 4, "p2 right" },
- {"Fire 1 (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 3, "p2 fire 1" },
- {"Fire 2 (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 2, "p2 fire 2" },
- {"Fire 3 (Cocktail)" , BIT_DIGITAL , GalInputPort2 + 7, "p2 fire 3" },
-
- {"Reset" , BIT_DIGITAL , &GalReset , "reset" },
- {"Service" , BIT_DIGITAL , GalInputPort0 + 2, "service" },
- {"Dip 1" , BIT_DIPSWITCH , GalDip + 0 , "dip" },
- {"Dip 2" , BIT_DIPSWITCH , GalDip + 1 , "dip" },
- {"Dip 3" , BIT_DIPSWITCH , GalDip + 2 , "dip" },
-};
-
-STDINPUTINFO(Stratgyx)
-
-static struct BurnInputInfo StreakngInputList[] =
-{
- {"Coin 1" , BIT_DIGITAL , GalInputPort0 + 0, "p1 coin" },
- {"Start 1" , BIT_DIGITAL , GalInputPort1 + 0, "p1 start" },
- {"Start 2" , BIT_DIGITAL , GalInputPort1 + 1, "p2 start" },
-
- {"Up" , BIT_DIGITAL , GalInputPort0 + 7, "p1 up" },
- {"Down" , BIT_DIGITAL , GalInputPort0 + 6, "p1 down" },
- {"Left" , BIT_DIGITAL , GalInputPort0 + 2, "p1 left" },
- {"Right" , BIT_DIGITAL , GalInputPort0 + 3, "p1 right" },
-
- {"Up (Cocktail)" , BIT_DIGITAL , GalInputPort0 + 1, "p2 up" },
- {"Down (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 5, "p2 down" },
- {"Left (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 2, "p2 left" },
- {"Right (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 3, "p2 right" },
-
- {"Reset" , BIT_DIGITAL , &GalReset , "reset" },
- {"Dip 1" , BIT_DIPSWITCH , GalDip + 0 , "dip" },
- {"Dip 2" , BIT_DIPSWITCH , GalDip + 1 , "dip" },
- {"Dip 3" , BIT_DIPSWITCH , GalDip + 2 , "dip" },
-};
-
-STDINPUTINFO(Streakng)
-
-static struct BurnInputInfo SuperbonInputList[] =
-{
- {"Coin 1" , BIT_DIGITAL , GalInputPort0 + 7, "p1 coin" },
- {"Start 1" , BIT_DIGITAL , GalInputPort0 + 1, "p1 start" },
- {"Coin 2" , BIT_DIGITAL , GalInputPort0 + 6, "p2 coin" },
- {"Start 2" , BIT_DIGITAL , GalInputPort0 + 0, "p2 start" },
-
- {"Up" , BIT_DIGITAL , GalInputPort0 + 2, "p1 up" },
- {"Down" , BIT_DIGITAL , GalInputPort0 + 3, "p1 down" },
- {"Left" , BIT_DIGITAL , GalInputPort0 + 5, "p1 left" },
- {"Right" , BIT_DIGITAL , GalInputPort0 + 4, "p1 right" },
- {"Fire 1" , BIT_DIGITAL , GalInputPort1 + 3, "p1 fire 1" },
- {"Fire 2" , BIT_DIGITAL , GalInputPort1 + 6, "p1 fire 2" },
-
- {"Reset" , BIT_DIGITAL , &GalReset , "reset" },
- {"Dip 1" , BIT_DIPSWITCH , GalDip + 0 , "dip" },
- {"Dip 2" , BIT_DIPSWITCH , GalDip + 1 , "dip" },
- {"Dip 3" , BIT_DIPSWITCH , GalDip + 2 , "dip" },
-};
-
-STDINPUTINFO(Superbon)
-
-static struct BurnInputInfo TazmaniaInputList[] =
-{
- {"Coin 1" , BIT_DIGITAL , GalInputPort0 + 7, "p1 coin" },
- {"Start 1" , BIT_DIGITAL , GalInputPort2 + 0, "p1 start" },
- {"Coin 2" , BIT_DIGITAL , GalInputPort0 + 6, "p2 coin" },
- {"Start 2" , BIT_DIGITAL , GalInputPort2 + 6, "p2 start" },
-
- {"Up" , BIT_DIGITAL , GalInputPort0 + 2, "p1 up" },
- {"Down" , BIT_DIGITAL , GalInputPort0 + 3, "p1 down" },
- {"Left" , BIT_DIGITAL , GalInputPort0 + 5, "p1 left" },
- {"Right" , BIT_DIGITAL , GalInputPort0 + 4, "p1 right" },
- {"Fire 1" , BIT_DIGITAL , GalInputPort0 + 1, "p1 fire 1" },
- {"Fire 2" , BIT_DIGITAL , GalInputPort0 + 0, "p1 fire 2" },
-
- {"Up (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 2, "p2 up" },
- {"Down (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 3, "p2 down" },
- {"Left (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 5, "p2 left" },
- {"Right (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 4, "p2 right" },
- {"Fire 1 (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 7, "p2 fire 1" },
- {"Fire 2 (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 6, "p2 fire 2" },
-
- {"Reset" , BIT_DIGITAL , &GalReset , "reset" },
- {"Dip 1" , BIT_DIPSWITCH , GalDip + 0 , "dip" },
- {"Dip 2" , BIT_DIPSWITCH , GalDip + 1 , "dip" },
- {"Dip 3" , BIT_DIPSWITCH , GalDip + 2 , "dip" },
-};
-
-STDINPUTINFO(Tazmania)
-
-static struct BurnInputInfo TazzmangInputList[] =
-{
- {"Coin 1" , BIT_DIGITAL , GalInputPort0 + 0, "p1 coin" },
- {"Start 1 / Fire 2" , BIT_DIGITAL , GalInputPort1 + 0, "p1 start" },
- {"Coin 2" , BIT_DIGITAL , GalInputPort0 + 1, "p2 coin" },
- {"Start 2" , BIT_DIGITAL , GalInputPort1 + 1, "p2 start" },
-
- {"Up" , BIT_DIGITAL , GalInputPort0 + 7, "p1 up" },
- {"Down" , BIT_DIGITAL , GalInputPort0 + 6, "p1 down" },
- {"Left" , BIT_DIGITAL , GalInputPort0 + 2, "p1 left" },
- {"Right" , BIT_DIGITAL , GalInputPort0 + 3, "p1 right" },
- {"Fire 1" , BIT_DIGITAL , GalInputPort0 + 4, "p1 fire 1" },
-
- {"Up (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 7, "p2 up" },
- {"Down (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 6, "p2 down" },
- {"Left (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 2, "p2 left" },
- {"Right (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 3, "p2 right" },
- {"Fire 1 (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 4, "p2 fire 1" },
-
- {"Reset" , BIT_DIGITAL , &GalReset , "reset" },
- {"Dip 1" , BIT_DIPSWITCH , GalDip + 0 , "dip" },
- {"Dip 2" , BIT_DIPSWITCH , GalDip + 1 , "dip" },
- {"Dip 3" , BIT_DIPSWITCH , GalDip + 2 , "dip" },
-};
-
-STDINPUTINFO(Tazzmang)
-
-static struct BurnInputInfo TdpgalInputList[] =
-{
- {"Coin 1" , BIT_DIGITAL , GalInputPort0 + 0, "p1 coin" },
- {"Start 1" , BIT_DIGITAL , GalInputPort1 + 0, "p1 start" },
- {"Coin 2" , BIT_DIGITAL , GalInputPort0 + 1, "p2 coin" },
- {"Start 2" , BIT_DIGITAL , GalInputPort1 + 1, "p2 start" },
-
- {"Up" , BIT_DIGITAL , GalInputPort0 + 7, "p1 up" },
- {"Down" , BIT_DIGITAL , GalInputPort0 + 5, "p1 down" },
- {"Left" , BIT_DIGITAL , GalInputPort0 + 2, "p1 left" },
- {"Right" , BIT_DIGITAL , GalInputPort0 + 3, "p1 right" },
- {"Fire 1" , BIT_DIGITAL , GalInputPort0 + 4, "p1 fire 1" },
-
- {"Reset" , BIT_DIGITAL , &GalReset , "reset" },
- {"Service" , BIT_DIGITAL , GalInputPort0 + 7, "service" },
- {"Dip 1" , BIT_DIPSWITCH , GalDip + 0 , "dip" },
- {"Dip 2" , BIT_DIPSWITCH , GalDip + 1 , "dip" },
- {"Dip 3" , BIT_DIPSWITCH , GalDip + 2 , "dip" },
-};
-
-STDINPUTINFO(Tdpgal)
-
-static struct BurnInputInfo TheendInputList[] =
-{
- {"Coin 1" , BIT_DIGITAL , GalInputPort0 + 7, "p1 coin" },
- {"Start 1" , BIT_DIGITAL , GalInputPort1 + 7, "p1 start" },
- {"Coin 2" , BIT_DIGITAL , GalInputPort0 + 6, "p2 coin" },
- {"Start 2" , BIT_DIGITAL , GalInputPort1 + 6, "p2 start" },
-
- {"Left" , BIT_DIGITAL , GalInputPort0 + 5, "p1 left" },
- {"Right" , BIT_DIGITAL , GalInputPort0 + 4, "p1 right" },
- {"Fire 1" , BIT_DIGITAL , GalInputPort0 + 3, "p1 fire 1" },
- {"Fire 2" , BIT_DIGITAL , GalInputPort0 + 1, "p1 fire 2" },
-
- {"Left (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 5, "p2 left" },
- {"Right (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 4, "p2 right" },
- {"Fire 1 (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 3, "p2 fire 1" },
- {"Fire 2 (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 2, "p2 fire 2" },
-
- {"Reset" , BIT_DIGITAL , &GalReset , "reset" },
- {"Service" , BIT_DIGITAL , GalInputPort0 + 2, "service" },
- {"Dip 1" , BIT_DIPSWITCH , GalDip + 0 , "dip" },
- {"Dip 2" , BIT_DIPSWITCH , GalDip + 1 , "dip" },
- {"Dip 3" , BIT_DIPSWITCH , GalDip + 2 , "dip" },
-};
-
-STDINPUTINFO(Theend)
-
-static struct BurnInputInfo ThepitmInputList[] =
-{
- {"Coin 1" , BIT_DIGITAL , GalInputPort0 + 0, "p1 coin" },
- {"Start 1" , BIT_DIGITAL , GalInputPort1 + 0, "p1 start" },
- {"Coin 2" , BIT_DIGITAL , GalInputPort0 + 1, "p2 coin" },
- {"Start 2" , BIT_DIGITAL , GalInputPort1 + 1, "p2 start" },
-
- {"Up" , BIT_DIGITAL , GalInputPort0 + 4, "p1 up" },
- {"Down" , BIT_DIGITAL , GalInputPort0 + 7, "p1 down" },
- {"Left" , BIT_DIGITAL , GalInputPort0 + 2, "p1 left" },
- {"Right" , BIT_DIGITAL , GalInputPort0 + 3, "p1 right" },
- {"Fire 1" , BIT_DIGITAL , GalInputPort0 + 5, "p1 fire 1" },
-
- {"Up (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 4, "p2 up" },
- {"Down (Cocktail)" , BIT_DIGITAL , GalInputPort0 + 6, "p2 down" },
- {"Left (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 2, "p2 left" },
- {"Right (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 3, "p2 right" },
- {"Fire 1 (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 5, "p2 fire 1" },
-
- {"Reset" , BIT_DIGITAL , &GalReset , "reset" },
- {"Dip 1" , BIT_DIPSWITCH , GalDip + 0 , "dip" },
- {"Dip 2" , BIT_DIPSWITCH , GalDip + 1 , "dip" },
- {"Dip 3" , BIT_DIPSWITCH , GalDip + 2 , "dip" },
-};
-
-STDINPUTINFO(Thepitm)
-
-static struct BurnInputInfo TimefgtrInputList[] =
-{
- {"Coin 1" , BIT_DIGITAL , GalInputPort0 + 1, "p1 coin" },
- {"Start 1" , BIT_DIGITAL , GalInputPort1 + 0, "p1 start" },
- {"Start 2" , BIT_DIGITAL , GalInputPort1 + 1, "p2 start" },
-
- {"Up" , BIT_DIGITAL , GalInputPort0 + 7, "p1 up" },
- {"Down" , BIT_DIGITAL , GalInputPort1 + 5, "p1 down" },
- {"Left" , BIT_DIGITAL , GalInputPort0 + 2, "p1 left" },
- {"Right" , BIT_DIGITAL , GalInputPort0 + 3, "p1 right" },
- {"Fire 1" , BIT_DIGITAL , GalInputPort0 + 4, "p1 fire 1" },
-
- {"Reset" , BIT_DIGITAL , &GalReset , "reset" },
- {"Dip 1" , BIT_DIPSWITCH , GalDip + 0 , "dip" },
- {"Dip 2" , BIT_DIPSWITCH , GalDip + 1 , "dip" },
- {"Dip 3" , BIT_DIPSWITCH , GalDip + 2 , "dip" },
-};
-
-STDINPUTINFO(Timefgtr)
-
-static struct BurnInputInfo TurtlesInputList[] =
-{
- {"Coin 1" , BIT_DIGITAL , GalInputPort0 + 7, "p1 coin" },
- {"Start 1" , BIT_DIGITAL , GalInputPort1 + 7, "p1 start" },
- {"Coin 2" , BIT_DIGITAL , GalInputPort0 + 6, "p2 coin" },
- {"Start 2" , BIT_DIGITAL , GalInputPort1 + 6, "p2 start" },
-
- {"Up" , BIT_DIGITAL , GalInputPort2 + 4, "p1 up" },
- {"Down" , BIT_DIGITAL , GalInputPort2 + 6, "p1 down" },
- {"Left" , BIT_DIGITAL , GalInputPort0 + 5, "p1 left" },
- {"Right" , BIT_DIGITAL , GalInputPort0 + 4, "p1 right" },
- {"Fire 1" , BIT_DIGITAL , GalInputPort0 + 3, "p1 fire 1" },
-
- {"Up (Cocktail)" , BIT_DIGITAL , GalInputPort0 + 0, "p2 up" },
- {"Down (Cocktail)" , BIT_DIGITAL , GalInputPort2 + 0, "p2 down" },
- {"Left (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 5, "p2 left" },
- {"Right (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 4, "p2 right" },
- {"Fire 1 (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 3, "p2 fire 1" },
-
- {"Reset" , BIT_DIGITAL , &GalReset , "reset" },
- {"Service" , BIT_DIGITAL , GalInputPort0 + 2, "service" },
- {"Dip 1" , BIT_DIPSWITCH , GalDip + 0 , "dip" },
- {"Dip 2" , BIT_DIPSWITCH , GalDip + 1 , "dip" },
- {"Dip 3" , BIT_DIPSWITCH , GalDip + 2 , "dip" },
-};
-
-STDINPUTINFO(Turtles)
-
-static struct BurnInputInfo WarofbugInputList[] =
-{
- {"Coin 1" , BIT_DIGITAL , GalInputPort0 + 0, "p1 coin" },
- {"Start 1" , BIT_DIGITAL , GalInputPort1 + 0, "p1 start" },
- {"Coin 2" , BIT_DIGITAL , GalInputPort0 + 1, "p2 coin" },
- {"Start 2" , BIT_DIGITAL , GalInputPort1 + 1, "p2 start" },
-
- {"Up" , BIT_DIGITAL , GalInputPort0 + 7, "p1 up" },
- {"Down" , BIT_DIGITAL , GalInputPort0 + 6, "p1 down" },
- {"Left" , BIT_DIGITAL , GalInputPort0 + 2, "p1 left" },
- {"Right" , BIT_DIGITAL , GalInputPort0 + 3, "p1 right" },
- {"Fire 1" , BIT_DIGITAL , GalInputPort0 + 4, "p1 fire 1" },
-
- {"Up (Cocktail)" , BIT_DIGITAL , GalInputPort0 + 1, "p2 up" },
- {"Down (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 5, "p2 down" },
- {"Left (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 2, "p2 left" },
- {"Right (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 3, "p2 right" },
- {"Fire 1 (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 4, "p2 fire 1" },
-
- {"Reset" , BIT_DIGITAL , &GalReset , "reset" },
- {"Dip 1" , BIT_DIPSWITCH , GalDip + 0 , "dip" },
- {"Dip 2" , BIT_DIPSWITCH , GalDip + 1 , "dip" },
- {"Dip 3" , BIT_DIPSWITCH , GalDip + 2 , "dip" },
-};
-
-STDINPUTINFO(Warofbug)
-
-static struct BurnInputInfo ZigzagInputList[] =
-{
- {"Coin 1" , BIT_DIGITAL , GalInputPort0 + 0, "p1 coin" },
- {"Start 1" , BIT_DIGITAL , GalInputPort1 + 0, "p1 start" },
- {"Start 2" , BIT_DIGITAL , GalInputPort1 + 1, "p2 start" },
-
- {"Up" , BIT_DIGITAL , GalInputPort0 + 5, "p1 up" },
- {"Down" , BIT_DIGITAL , GalInputPort0 + 6, "p1 down" },
- {"Left" , BIT_DIGITAL , GalInputPort0 + 2, "p1 left" },
- {"Right" , BIT_DIGITAL , GalInputPort0 + 3, "p1 right" },
- {"Fire 1" , BIT_DIGITAL , GalInputPort0 + 4, "p1 fire 1" },
-
- {"Up (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 5, "p2 up" },
- {"Down (Cocktail)" , BIT_DIGITAL , GalInputPort0 + 7, "p2 down" },
- {"Left (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 2, "p2 left" },
- {"Right (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 3, "p2 right" },
- {"Fire 1 (Cocktail)" , BIT_DIGITAL , GalInputPort1 + 4, "p2 fire 1" },
-
- {"Reset" , BIT_DIGITAL , &GalReset , "reset" },
- {"Dip 1" , BIT_DIPSWITCH , GalDip + 0 , "dip" },
- {"Dip 2" , BIT_DIPSWITCH , GalDip + 1 , "dip" },
- {"Dip 3" , BIT_DIPSWITCH , GalDip + 2 , "dip" },
-};
-
-STDINPUTINFO(Zigzag)
-
-#undef A
-
-// Dip Switch defintions (alphabetical)
-static struct BurnDIPInfo Ad2083DIPList[]=
-{
- // Default Values
- {0x0b, 0xff, 0xff, 0x00, NULL },
- {0x0c, 0xff, 0xff, 0x00, NULL },
- {0x0d, 0xff, 0xff, 0x00, NULL },
- {0x0e, 0xff, 0xff, 0x10, NULL },
-
- // Dip 1
-
- // Dip 2
-
- // Dip 3
- {0 , 0xfe, 0 , 16 , "Coin A" },
- {0x0d, 0x01, 0x0f, 0x08, "2 Coins 1 Play" },
- {0x0d, 0x01, 0x0f, 0x09, "2 Coins 2 Plays" },
- {0x0d, 0x01, 0x0f, 0x00, "1 Coin 1 Play" },
- {0x0d, 0x01, 0x0f, 0x0a, "2 Coins 3 Plays" },
- {0x0d, 0x01, 0x0f, 0x0b, "2 Coins 4 Plays" },
- {0x0d, 0x01, 0x0f, 0x01, "1 Coin 2 Plays" },
- {0x0d, 0x01, 0x0f, 0x0c, "2 Coins 5 Plays" },
- {0x0d, 0x01, 0x0f, 0x0d, "2 Coins 6 Plays" },
- {0x0d, 0x01, 0x0f, 0x02, "1 Coin 3 Plays" },
- {0x0d, 0x01, 0x0f, 0x0e, "2 Coins 7 Plays" },
- {0x0d, 0x01, 0x0f, 0x0f, "2 Coins 8 Plays" },
- {0x0d, 0x01, 0x0f, 0x03, "1 Coin 4 Plays" },
- {0x0d, 0x01, 0x0f, 0x04, "1 Coin 5 Plays" },
- {0x0d, 0x01, 0x0f, 0x05, "1 Coin 6 Plays" },
- {0x0d, 0x01, 0x0f, 0x06, "1 Coin 7 Plays" },
- {0x0d, 0x01, 0x0f, 0x07, "1 Coin 8 Plays" },
-
- {0 , 0xfe, 0 , 16 , "Coin B" },
- {0x0d, 0x01, 0xf0, 0x80, "2 Coins 1 Play" },
- {0x0d, 0x01, 0xf0, 0x90, "2 Coins 2 Plays" },
- {0x0d, 0x01, 0xf0, 0x00, "1 Coin 1 Play" },
- {0x0d, 0x01, 0xf0, 0xa0, "2 Coins 3 Plays" },
- {0x0d, 0x01, 0xf0, 0xb0, "2 Coins 4 Plays" },
- {0x0d, 0x01, 0xf0, 0x10, "1 Coin 2 Plays" },
- {0x0d, 0x01, 0xf0, 0xc0, "2 Coins 5 Plays" },
- {0x0d, 0x01, 0xf0, 0xd0, "2 Coins 6 Plays" },
- {0x0d, 0x01, 0xf0, 0x20, "1 Coin 3 Plays" },
- {0x0d, 0x01, 0xf0, 0xe0, "2 Coins 7 Plays" },
- {0x0d, 0x01, 0xf0, 0xf0, "2 Coins 8 Plays" },
- {0x0d, 0x01, 0xf0, 0x30, "1 Coin 4 Plays" },
- {0x0d, 0x01, 0xf0, 0x40, "1 Coin 5 Plays" },
- {0x0d, 0x01, 0xf0, 0x50, "1 Coin 6 Plays" },
- {0x0d, 0x01, 0xf0, 0x60, "1 Coin 7 Plays" },
- {0x0d, 0x01, 0xf0, 0x70, "1 Coin 8 Plays" },
-
- // Dip 4
- {0 , 0xfe, 0 , 4 , "Lives" },
- {0x0e, 0x01, 0x03, 0x03, "2" },
- {0x0e, 0x01, 0x03, 0x02, "3" },
- {0x0e, 0x01, 0x03, 0x01, "4" },
- {0x0e, 0x01, 0x03, 0x00, "5" },
-
- {0 , 0xfe, 0 , 4 , "Bonus Life" },
- {0x0e, 0x01, 0x0c, 0x0c, "None" },
- {0x0e, 0x01, 0x0c, 0x08, "100000" },
- {0x0e, 0x01, 0x0c, 0x04, "150000" },
- {0x0e, 0x01, 0x0c, 0x00, "200000" },
-
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x0e, 0x01, 0x10, 0x10, "Upright" },
- {0x0e, 0x01, 0x10, 0x00, "Cocktail" },
-
- {0 , 0xfe, 0 , 2 , "Allow Continue" },
- {0x0e, 0x01, 0x20, 0x20, "Off" },
- {0x0e, 0x01, 0x20, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2 , "Demo Sounds" },
- {0x0e, 0x01, 0x80, 0x80, "Off" },
- {0x0e, 0x01, 0x80, 0x00, "On" },
-};
-
-STDDIPINFO(Ad2083)
-
-static struct BurnDIPInfo AmidarDIPList[]=
-{
- // Default Values
- {0x10, 0xff, 0xff, 0x00, NULL },
- {0x11, 0xff, 0xff, 0x00, NULL },
- {0x12, 0xff, 0xff, 0x06, NULL },
- {0x13, 0xff, 0xff, 0x00, NULL },
-
- // Dip 1
-
- // Dip 2
- {0 , 0xfe, 0 , 4 , "Lives" },
- {0x11, 0x01, 0x03, 0x00, "3" },
- {0x11, 0x01, 0x03, 0x01, "4" },
- {0x11, 0x01, 0x03, 0x02, "5" },
- {0x11, 0x01, 0x03, 0x03, "255" },
-
- // Dip 3
- {0 , 0xfe, 0 , 2 , "Demo Sounds" },
- {0x12, 0x01, 0x02, 0x00, "Off" },
- {0x12, 0x01, 0x02, 0x02, "On" },
-
- {0 , 0xfe, 0 , 2 , "Bonus Life" },
- {0x12, 0x01, 0x04, 0x04, "30000 50000" },
- {0x12, 0x01, 0x04, 0x00, "50000 50000" },
-
- // Dip 4
- {0 , 0xfe, 0 , 16 , "Coin A" },
- {0x13, 0x01, 0x0f, 0x0b, "4 Coins 1 Play" },
- {0x13, 0x01, 0x0f, 0x05, "3 Coins 1 Play" },
- {0x13, 0x01, 0x0f, 0x0e, "2 Coins 1 Play" },
- {0x13, 0x01, 0x0f, 0x0d, "3 Coins 2 Plays" },
- {0x13, 0x01, 0x0f, 0x07, "4 Coins 3 Plays" },
- {0x13, 0x01, 0x0f, 0x00, "1 Coin 1 Play" },
- {0x13, 0x01, 0x0f, 0x03, "3 Coins 4 Plays" },
- {0x13, 0x01, 0x0f, 0x01, "2 Coins 3 Plays" },
- {0x13, 0x01, 0x0f, 0x08, "1 Coin 2 Plays" },
- {0x13, 0x01, 0x0f, 0x09, "2 Coins 5 Plays" },
- {0x13, 0x01, 0x0f, 0x04, "1 Coin 3 Plays" },
- {0x13, 0x01, 0x0f, 0x0c, "1 Coin 4 Plays" },
- {0x13, 0x01, 0x0f, 0x02, "1 Coin 5 Plays" },
- {0x13, 0x01, 0x0f, 0x0a, "1 Coin 6 Plays" },
- {0x13, 0x01, 0x0f, 0x06, "1 Coin 7 Plays" },
- {0x13, 0x01, 0x0f, 0x0f, "Free Play" },
-
- {0 , 0xfe, 0 , 16 , "Coin B" },
- {0x13, 0x01, 0xf0, 0xb0, "4 Coins 1 Play" },
- {0x13, 0x01, 0xf0, 0x50, "3 Coins 1 Play" },
- {0x13, 0x01, 0xf0, 0xe0, "2 Coins 1 Play" },
- {0x13, 0x01, 0xf0, 0xd0, "3 Coins 2 Plays" },
- {0x13, 0x01, 0xf0, 0x70, "4 Coins 3 Plays" },
- {0x13, 0x01, 0xf0, 0x00, "1 Coin 1 Play" },
- {0x13, 0x01, 0xf0, 0x30, "3 Coins 4 Plays" },
- {0x13, 0x01, 0xf0, 0x10, "2 Coins 3 Plays" },
- {0x13, 0x01, 0xf0, 0x80, "1 Coin 2 Plays" },
- {0x13, 0x01, 0xf0, 0x90, "2 Coins 5 Plays" },
- {0x13, 0x01, 0xf0, 0x40, "1 Coin 3 Plays" },
- {0x13, 0x01, 0xf0, 0xc0, "1 Coin 4 Plays" },
- {0x13, 0x01, 0xf0, 0x20, "1 Coin 5 Plays" },
- {0x13, 0x01, 0xf0, 0xa0, "1 Coin 6 Plays" },
- {0x13, 0x01, 0xf0, 0x60, "1 Coin 7 Plays" },
- {0x13, 0x01, 0xf0, 0xf0, "Disable All Coins" },
-};
-
-STDDIPINFO(Amidar)
-
-static struct BurnDIPInfo AmidaroDIPList[]=
-{
- // Default Values
- {0x10, 0xff, 0xff, 0x00, NULL },
- {0x11, 0xff, 0xff, 0x02, NULL },
- {0x12, 0xff, 0xff, 0x06, NULL },
- {0x13, 0xff, 0xff, 0x00, NULL },
-
- // Dip 1
-
- // Dip 2
- {0 , 0xfe, 0 , 4 , "Lives" },
- {0x11, 0x01, 0x03, 0x00, "1" },
- {0x11, 0x01, 0x03, 0x01, "2" },
- {0x11, 0x01, 0x03, 0x02, "3" },
- {0x11, 0x01, 0x03, 0x03, "4" },
-
- // Dip 3
- {0 , 0xfe, 0 , 2 , "Level Progression" },
- {0x12, 0x01, 0x02, 0x02, "Slow" },
- {0x12, 0x01, 0x02, 0x00, "Fast" },
-
- {0 , 0xfe, 0 , 2 , "Bonus Life" },
- {0x12, 0x01, 0x04, 0x04, "30000 70000" },
- {0x12, 0x01, 0x04, 0x00, "50000 80000" },
-
- // Dip 4
- {0 , 0xfe, 0 , 16 , "Coin A" },
- {0x13, 0x01, 0x0f, 0x0b, "4 Coins 1 Play" },
- {0x13, 0x01, 0x0f, 0x05, "3 Coins 1 Play" },
- {0x13, 0x01, 0x0f, 0x0e, "2 Coins 1 Play" },
- {0x13, 0x01, 0x0f, 0x0d, "3 Coins 2 Plays" },
- {0x13, 0x01, 0x0f, 0x07, "4 Coins 3 Plays" },
- {0x13, 0x01, 0x0f, 0x00, "1 Coin 1 Play" },
- {0x13, 0x01, 0x0f, 0x03, "3 Coins 4 Plays" },
- {0x13, 0x01, 0x0f, 0x01, "2 Coins 3 Plays" },
- {0x13, 0x01, 0x0f, 0x08, "1 Coin 2 Plays" },
- {0x13, 0x01, 0x0f, 0x09, "2 Coins 5 Plays" },
- {0x13, 0x01, 0x0f, 0x04, "1 Coin 3 Plays" },
- {0x13, 0x01, 0x0f, 0x0c, "1 Coin 4 Plays" },
- {0x13, 0x01, 0x0f, 0x02, "1 Coin 5 Plays" },
- {0x13, 0x01, 0x0f, 0x0a, "1 Coin 6 Plays" },
- {0x13, 0x01, 0x0f, 0x06, "1 Coin 7 Plays" },
- {0x13, 0x01, 0x0f, 0x0f, "Free Play" },
-
- {0 , 0xfe, 0 , 16 , "Coin B" },
- {0x13, 0x01, 0xf0, 0xb0, "4 Coins 1 Play" },
- {0x13, 0x01, 0xf0, 0x50, "3 Coins 1 Play" },
- {0x13, 0x01, 0xf0, 0xe0, "2 Coins 1 Play" },
- {0x13, 0x01, 0xf0, 0xd0, "3 Coins 2 Plays" },
- {0x13, 0x01, 0xf0, 0x70, "4 Coins 3 Plays" },
- {0x13, 0x01, 0xf0, 0x00, "1 Coin 1 Play" },
- {0x13, 0x01, 0xf0, 0x30, "3 Coins 4 Plays" },
- {0x13, 0x01, 0xf0, 0x10, "2 Coins 3 Plays" },
- {0x13, 0x01, 0xf0, 0x80, "1 Coin 2 Plays" },
- {0x13, 0x01, 0xf0, 0x90, "2 Coins 5 Plays" },
- {0x13, 0x01, 0xf0, 0x40, "1 Coin 3 Plays" },
- {0x13, 0x01, 0xf0, 0xc0, "1 Coin 4 Plays" },
- {0x13, 0x01, 0xf0, 0x20, "1 Coin 5 Plays" },
- {0x13, 0x01, 0xf0, 0xa0, "1 Coin 6 Plays" },
- {0x13, 0x01, 0xf0, 0x60, "1 Coin 7 Plays" },
- {0x13, 0x01, 0xf0, 0xf0, "Disable All Coins" },
-};
-
-STDDIPINFO(Amidaro)
-
-static struct BurnDIPInfo AmidarsDIPList[]=
-{
- // Default Values
- {0x10, 0xff, 0xff, 0x00, NULL },
- {0x11, 0xff, 0xff, 0x01, NULL },
- {0x12, 0xff, 0xff, 0x0a, NULL },
-
- // Dip 1
-
- // Dip 2
- {0 , 0xfe, 0 , 4 , "Lives" },
- {0x11, 0x01, 0x03, 0x00, "2" },
- {0x11, 0x01, 0x03, 0x01, "3" },
- {0x11, 0x01, 0x03, 0x02, "4" },
- {0x11, 0x01, 0x03, 0x03, "256" },
-
- // Dip 3
- {0 , 0xfe, 0 , 2 , "Coinage" },
- {0x12, 0x01, 0x02, 0x02, "A 1C/1P B 1C/6P" },
- {0x12, 0x01, 0x02, 0x00, "A 2C/1P B 1C/3P" },
-
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x12, 0x01, 0x08, 0x08, "Upright" },
- {0x12, 0x01, 0x08, 0x00, "Cocktail" },
-};
-
-STDDIPINFO(Amidars)
-
-static struct BurnDIPInfo AmidaruDIPList[]=
-{
- // Default Values
- {0x10, 0xff, 0xff, 0x00, NULL },
- {0x11, 0xff, 0xff, 0x00, NULL },
- {0x12, 0xff, 0xff, 0x06, NULL },
- {0x13, 0xff, 0xff, 0x00, NULL },
-
- // Dip 1
-
- // Dip 2
- {0 , 0xfe, 0 , 4 , "Lives" },
- {0x11, 0x01, 0x03, 0x00, "3" },
- {0x11, 0x01, 0x03, 0x01, "4" },
- {0x11, 0x01, 0x03, 0x02, "5" },
- {0x11, 0x01, 0x03, 0x03, "255" },
-
- // Dip 3
- {0 , 0xfe, 0 , 2 , "Demo Sounds" },
- {0x12, 0x01, 0x02, 0x00, "Off" },
- {0x12, 0x01, 0x02, 0x02, "On" },
-
- {0 , 0xfe, 0 , 2 , "Bonus Life" },
- {0x12, 0x01, 0x04, 0x04, "30000 70000" },
- {0x12, 0x01, 0x04, 0x00, "50000 80000" },
-
- // Dip 4
- {0 , 0xfe, 0 , 16 , "Coin A" },
- {0x13, 0x01, 0x0f, 0x0b, "4 Coins 1 Play" },
- {0x13, 0x01, 0x0f, 0x05, "3 Coins 1 Play" },
- {0x13, 0x01, 0x0f, 0x0e, "2 Coins 1 Play" },
- {0x13, 0x01, 0x0f, 0x0d, "3 Coins 2 Plays" },
- {0x13, 0x01, 0x0f, 0x07, "4 Coins 3 Plays" },
- {0x13, 0x01, 0x0f, 0x00, "1 Coin 1 Play" },
- {0x13, 0x01, 0x0f, 0x03, "3 Coins 4 Plays" },
- {0x13, 0x01, 0x0f, 0x01, "2 Coins 3 Plays" },
- {0x13, 0x01, 0x0f, 0x08, "1 Coin 2 Plays" },
- {0x13, 0x01, 0x0f, 0x09, "2 Coins 5 Plays" },
- {0x13, 0x01, 0x0f, 0x04, "1 Coin 3 Plays" },
- {0x13, 0x01, 0x0f, 0x0c, "1 Coin 4 Plays" },
- {0x13, 0x01, 0x0f, 0x02, "1 Coin 5 Plays" },
- {0x13, 0x01, 0x0f, 0x0a, "1 Coin 6 Plays" },
- {0x13, 0x01, 0x0f, 0x06, "1 Coin 7 Plays" },
- {0x13, 0x01, 0x0f, 0x0f, "Free Play" },
-
- {0 , 0xfe, 0 , 16 , "Coin B" },
- {0x13, 0x01, 0xf0, 0xb0, "4 Coins 1 Play" },
- {0x13, 0x01, 0xf0, 0x50, "3 Coins 1 Play" },
- {0x13, 0x01, 0xf0, 0xe0, "2 Coins 1 Play" },
- {0x13, 0x01, 0xf0, 0xd0, "3 Coins 2 Plays" },
- {0x13, 0x01, 0xf0, 0x70, "4 Coins 3 Plays" },
- {0x13, 0x01, 0xf0, 0x00, "1 Coin 1 Play" },
- {0x13, 0x01, 0xf0, 0x30, "3 Coins 4 Plays" },
- {0x13, 0x01, 0xf0, 0x10, "2 Coins 3 Plays" },
- {0x13, 0x01, 0xf0, 0x80, "1 Coin 2 Plays" },
- {0x13, 0x01, 0xf0, 0x90, "2 Coins 5 Plays" },
- {0x13, 0x01, 0xf0, 0x40, "1 Coin 3 Plays" },
- {0x13, 0x01, 0xf0, 0xc0, "1 Coin 4 Plays" },
- {0x13, 0x01, 0xf0, 0x20, "1 Coin 5 Plays" },
- {0x13, 0x01, 0xf0, 0xa0, "1 Coin 6 Plays" },
- {0x13, 0x01, 0xf0, 0x60, "1 Coin 7 Plays" },
- {0x13, 0x01, 0xf0, 0xf0, "Disable All Coins" },
-};
-
-STDDIPINFO(Amidaru)
-
-static struct BurnDIPInfo AnteaterDIPList[]=
-{
- // Default Values
- {0x0f, 0xff, 0xff, 0x00, NULL },
- {0x10, 0xff, 0xff, 0x02, NULL },
- {0x11, 0xff, 0xff, 0x04, NULL },
-
- // Dip 1
-
- // Dip 2
- {0 , 0xfe, 0 , 2 , "Lives" },
- {0x10, 0x01, 0x01, 0x00, "3" },
- {0x10, 0x01, 0x01, 0x01, "5" },
-
- {0 , 0xfe, 0 , 2 , "Demo Sounds" },
- {0x10, 0x01, 0x02, 0x00, "Off" },
- {0x10, 0x01, 0x02, 0x02, "On" },
-
- // Dip 3
- {0 , 0xfe, 0 , 4 , "Coinage" },
- {0x11, 0x01, 0x06, 0x04, "1 Coin 1 Play" },
- {0x11, 0x01, 0x06, 0x06, "A 1C/2P B 2C/1P" },
- {0x11, 0x01, 0x06, 0x02, "A 1C/3P B 3C/1P" },
- {0x11, 0x01, 0x06, 0x00, "A 1C/4P B 4C/1P" },
-
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x11, 0x01, 0x08, 0x00, "Upright" },
- {0x11, 0x01, 0x08, 0x08, "Cocktail" },
-};
-
-STDDIPINFO(Anteater)
-
-static struct BurnDIPInfo AnteatergDIPList[]=
-{
- // Default Values
- {0x0f, 0xff, 0xff, 0x00, NULL },
- {0x10, 0xff, 0xff, 0x02, NULL },
- {0x11, 0xff, 0xff, 0x00, NULL },
-
- // Dip 1
- {0 , 0xfe, 0 , 2 , "Coinage" },
- {0x0f, 0x01, 0x02, 0x00, "A 1C/1P B 1C/5P" },
- {0x0f, 0x01, 0x02, 0x02, "A 2C/1P B 1C/3P" },
-
- {0 , 0xfe, 0 , 4 , "Lives" },
- {0x0f, 0x01, 0x0c, 0x00, "3" },
- {0x0f, 0x01, 0x0c, 0x04, "4" },
- {0x0f, 0x01, 0x0c, 0x08, "5" },
- {0x0f, 0x01, 0x0c, 0x0c, "6" },
-
- // Dip 2
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x10, 0x01, 0x01, 0x00, "Upright" },
- {0x10, 0x01, 0x01, 0x01, "Cocktail" },
-
- {0 , 0xfe, 0 , 2 , "Demo Sounds" },
- {0x10, 0x01, 0x02, 0x00, "Off" },
- {0x10, 0x01, 0x02, 0x02, "On" },
-
- // Dip 3
-};
-
-STDDIPINFO(Anteaterg)
-
-static struct BurnDIPInfo AnteaterukDIPList[]=
-{
- // Default Values
- {0x0f, 0xff, 0xff, 0x00, NULL },
- {0x10, 0xff, 0xff, 0x02, NULL },
- {0x11, 0xff, 0xff, 0x00, NULL },
-
- // Dip 1
-
- // Dip 2
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x10, 0x01, 0x01, 0x00, "Upright" },
- {0x10, 0x01, 0x01, 0x01, "Cocktail" },
-
- {0 , 0xfe, 0 , 2 , "Demo Sounds" },
- {0x10, 0x01, 0x02, 0x00, "Off" },
- {0x10, 0x01, 0x02, 0x02, "On" },
-
- // Dip 3
- {0 , 0xfe, 0 , 2 , "Coinage" },
- {0x11, 0x01, 0x02, 0x00, "A 1C/1P B 1C/5P" },
- {0x11, 0x01, 0x02, 0x02, "A 2C/1P B 1C/3P" },
-
- {0 , 0xfe, 0 , 4 , "Lives" },
- {0x11, 0x01, 0x0c, 0x00, "3" },
- {0x11, 0x01, 0x0c, 0x04, "4" },
- {0x11, 0x01, 0x0c, 0x08, "5" },
- {0x11, 0x01, 0x0c, 0x0c, "6" },
-};
-
-STDDIPINFO(Anteateruk)
-
-static struct BurnDIPInfo ArmorcarDIPList[]=
-{
- // Default Values
- {0x11, 0xff, 0xff, 0x00, NULL },
- {0x12, 0xff, 0xff, 0x02, NULL },
- {0x13, 0xff, 0xff, 0x04, NULL },
-
- // Dip 1
-
- // Dip 2
- {0 , 0xfe, 0 , 2 , "Lives" },
- {0x12, 0x01, 0x01, 0x00, "3" },
- {0x12, 0x01, 0x01, 0x01, "5" },
-
- {0 , 0xfe, 0 , 2 , "Demo Sounds" },
- {0x12, 0x01, 0x02, 0x00, "Off" },
- {0x12, 0x01, 0x02, 0x02, "On" },
-
- // Dip 3
- {0 , 0xfe, 0 , 4 , "Coinage" },
- {0x13, 0x01, 0x06, 0x04, "1 Coin 1 Play" },
- {0x13, 0x01, 0x06, 0x06, "A 1C/2P B 2C/1P" },
- {0x13, 0x01, 0x06, 0x02, "A 1C/3P B 3C/1P" },
- {0x13, 0x01, 0x06, 0x00, "A 1C/4P B 4C/1P" },
-
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x13, 0x01, 0x08, 0x00, "Upright" },
- {0x13, 0x01, 0x08, 0x08, "Cocktail" },
-};
-
-STDDIPINFO(Armorcar)
-
-static struct BurnDIPInfo AtlantisDIPList[]=
-{
- // Default Values
- {0x11, 0xff, 0xff, 0x00, NULL },
- {0x12, 0xff, 0xff, 0x01, NULL },
- {0x13, 0xff, 0xff, 0x0e, NULL },
-
- // Dip 1
-
- // Dip 2
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x12, 0x01, 0x01, 0x01, "Upright" },
- {0x12, 0x01, 0x01, 0x00, "Cocktail" },
-
- {0 , 0xfe, 0 , 2 , "Lives" },
- {0x12, 0x01, 0x02, 0x00, "3" },
- {0x12, 0x01, 0x02, 0x02, "5" },
-
- // Dip 3
- {0 , 0xfe, 0 , 3 , "Coinage" },
- {0x13, 0x01, 0x0e, 0x0c, "A 1C/3P B 2C/1P" },
- {0x13, 0x01, 0x0e, 0x0e, "A 1C/6P B 1C/1P" },
- {0x13, 0x01, 0x0e, 0x0a, "A 1C/99P B 1C/99P" },
-};
-
-STDDIPINFO(Atlantis)
-
-static struct BurnDIPInfo AtlantisbDIPList[]=
-{
- // Default Values
- {0x0f, 0xff, 0xff, 0x00, NULL },
- {0x10, 0xff, 0xff, 0x80, NULL },
- {0x11, 0xff, 0xff, 0x0c, NULL },
-
- // Dip 1
-
- // Dip 2
- {0 , 0xfe, 0 , 2 , "Coin A" },
- {0x10, 0x01, 0x40, 0x40, "2 Coins 1 Play" },
- {0x10, 0x01, 0x40, 0x00, "1 Coin 1 Play" },
-
- {0 , 0xfe, 0 , 2 , "Coin B" },
- {0x10, 0x01, 0x80, 0x80, "1 Coin 3 Plays" },
- {0x10, 0x01, 0x80, 0x00, "1 Coin 5 Plays" },
-
- // Dip 3
- {0 , 0xfe, 0 , 2 , "Difficulty" },
- {0x11, 0x01, 0x02, 0x00, "Easy" },
- {0x11, 0x01, 0x02, 0x02, "Hard" },
-
- {0 , 0xfe, 0 , 2 , "Lives" },
- {0x11, 0x01, 0x04, 0x04, "3" },
- {0x11, 0x01, 0x04, 0x00, "5" },
-
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x11, 0x01, 0x08, 0x08, "Upright" },
- {0x11, 0x01, 0x08, 0x00, "Cocktail" },
-};
-
-STDDIPINFO(Atlantisb)
-
-static struct BurnDIPInfo AzurianDIPList[]=
-{
- // Default Values
- {0x0e, 0xff, 0xff, 0x00, NULL },
- {0x0f, 0xff, 0xff, 0x00, NULL },
- {0x10, 0xff, 0xff, 0x00, NULL },
- {0x11, 0xff, 0xff, 0x01, NULL },
-
- // Dip 1
-
- // Dip 2
- {0 , 0xfe, 0 , 2 , "Lives" },
- {0x0f, 0x01, 0x80, 0x00, "3" },
- {0x0f, 0x01, 0x80, 0x80, "5" },
-
- // Dip 3
- {0 , 0xfe, 0 , 2 , "Coinage" },
- {0x10, 0x01, 0x01, 0x01, "2 Coins 1 Play" },
- {0x10, 0x01, 0x01, 0x00, "1 Coin 1 Play" },
-
- {0 , 0xfe, 0 , 2 , "Bonus Life" },
- {0x10, 0x01, 0x02, 0x00, "5000" },
- {0x10, 0x01, 0x02, 0x02, "7000" },
-
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x10, 0x01, 0x08, 0x00, "Upright" },
- {0x10, 0x01, 0x08, 0x08, "Cocktail" },
-
- // Fake Dip
- {0 , 0xfe, 0 , 4 , "Difficulty" },
- {0x11, 0x01, 0x03, 0x03, "Easy" },
- {0x11, 0x01, 0x03, 0x01, "Normal" },
- {0x11, 0x01, 0x03, 0x02, "Hard" },
- {0x11, 0x01, 0x03, 0x00, "Very Hard" },
-};
-
-STDDIPINFO(Azurian)
-
-static struct BurnDIPInfo BagmanmcDIPList[]=
-{
- // Default Values
- {0x0f, 0xff, 0xff, 0x00, NULL },
- {0x10, 0xff, 0xff, 0x80, NULL },
- {0x11, 0xff, 0xff, 0x7e, NULL },
-
- // Dip 1
-
- // Dip 2
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x10, 0x01, 0x80, 0x80, "Upright" },
- {0x10, 0x01, 0x80, 0x00, "Cocktail" },
-
- // Dip 3
- {0 , 0xfe, 0 , 4 , "Lives" },
- {0x11, 0x01, 0x03, 0x03, "2" },
- {0x11, 0x01, 0x03, 0x02, "3" },
- {0x11, 0x01, 0x03, 0x01, "4" },
- {0x11, 0x01, 0x03, 0x00, "5" },
-
- {0 , 0xfe, 0 , 2 , "Coinage" },
- {0x11, 0x01, 0x04, 0x00, "A 2C/1P B 1C/1P" },
- {0x11, 0x01, 0x04, 0x04, "A 1C/1P B 1C/2P" },
-
- {0 , 0xfe, 0 , 4 , "Difficulty" },
- {0x11, 0x01, 0x18, 0x18, "Easy" },
- {0x11, 0x01, 0x18, 0x10, "Medium" },
- {0x11, 0x01, 0x18, 0x08, "Hard" },
- {0x11, 0x01, 0x18, 0x00, "Hardest" },
-
- {0 , 0xfe, 0 , 2 , "Language" },
- {0x11, 0x01, 0x20, 0x20, "English" },
- {0x11, 0x01, 0x20, 0x00, "French" },
-
- {0 , 0xfe, 0 , 2 , "Bonus Life" },
- {0x11, 0x01, 0x40, 0x40, "30000" },
- {0x11, 0x01, 0x40, 0x00, "40000" },
-};
-
-STDDIPINFO(Bagmanmc)
-
-static struct BurnDIPInfo Batman2DIPList[]=
-{
- // Default Values
- {0x0d, 0xff, 0xff, 0x00, NULL },
- {0x0e, 0xff, 0xff, 0xc0, NULL },
- {0x0f, 0xff, 0xff, 0x00, NULL },
-
- // Dip 1
-
- // Dip 2
- {0 , 0xfe, 0 , 2 , "Coin A" },
- {0x0e, 0x01, 0x40, 0x40, "1 Coin 1 Play" },
- {0x0e, 0x01, 0x40, 0x00, "1 Coin 2 Plays" },
-
- {0 , 0xfe, 0 , 2 , "Coin B" },
- {0x0e, 0x01, 0x80, 0x80, "1 Coin 3 Plays" },
- {0x0e, 0x01, 0x80, 0x00, "1 Coin 5 Plays" },
-
- // Dip 3
- {0 , 0xfe, 0 , 2 , "Bonus Life" },
- {0x0f, 0x01, 0x01, 0x00, "30000" },
- {0x0f, 0x01, 0x01, 0x01, "50000" },
-
- {0 , 0xfe, 0 , 2 , "Lives" },
- {0x0f, 0x01, 0x04, 0x00, "3" },
- {0x0f, 0x01, 0x04, 0x04, "5" },
-
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x0f, 0x01, 0x08, 0x00, "Upright" },
- {0x0f, 0x01, 0x08, 0x08, "Cocktail" },
-};
-
-STDDIPINFO(Batman2)
-
-static struct BurnDIPInfo BlkholeDIPList[]=
-{
- // Default Values
- {0x0a, 0xff, 0xff, 0x00, NULL },
- {0x0b, 0xff, 0xff, 0x00, NULL },
- {0x0c, 0xff, 0xff, 0x02, NULL },
-
- // Dip 1
-
- // Dip 2
- {0 , 0xfe, 0 , 4 , "Coinage" },
- {0x0b, 0x01, 0xc0, 0xc0, "2 Coins 1 Play" },
- {0x0b, 0x01, 0xc0, 0x00, "1 Coin 1 Play" },
- {0x0b, 0x01, 0xc0, 0x40, "1 Coin 2 Plays" },
- {0x0b, 0x01, 0xc0, 0x80, "1 Coin 3 Plays" },
-
- // Dip 3
- {0 , 0xfe, 0 , 2 , "Bonus Life" },
- {0x0c, 0x01, 0x01, 0x00, "5000" },
- {0x0c, 0x01, 0x01, 0x01, "10000" },
-
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x0c, 0x01, 0x02, 0x02, "Upright" },
- {0x0c, 0x01, 0x02, 0x00, "Cocktail" },
-};
-
-STDDIPINFO(Blkhole)
-
-static struct BurnDIPInfo BongoDIPList[]=
-{
- // Default Values
- {0x0a, 0xff, 0xff, 0x00, NULL },
- {0x0b, 0xff, 0xff, 0x00, NULL },
- {0x0c, 0xff, 0xff, 0x00, NULL },
- {0x0d, 0xff, 0xff, 0x40, NULL },
-
- // Dip 1
-
- // Dip 2
-
- // Dip 3
-
- // Dip 4
- {0 , 0xfe, 0 , 4 , "Lives" },
- {0x0d, 0x01, 0x06, 0x00, "2" },
- {0x0d, 0x01, 0x06, 0x02, "3" },
- {0x0d, 0x01, 0x06, 0x04, "4" },
- {0x0d, 0x01, 0x06, 0x06, "5" },
-
- {0 , 0xfe, 0 , 2 , "Infinite Lives" },
- {0x0d, 0x01, 0x08, 0x00, "Off" },
- {0x0d, 0x01, 0x08, 0x08, "On" },
-
- {0 , 0xfe, 0 , 2 , "Coinage" },
- {0x0d, 0x01, 0x40, 0x00, "2 Coins 1 Play" },
- {0x0d, 0x01, 0x40, 0x40, "1 Coin 1 Play" },
-
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x0d, 0x01, 0x80, 0x00, "Upright" },
- {0x0d, 0x01, 0x80, 0x80, "Cocktail" },
-};
-
-STDDIPINFO(Bongo)
-
-static struct BurnDIPInfo CalipsoDIPList[]=
-{
- // Default Values
- {0x0d, 0xff, 0xff, 0x00, NULL },
- {0x0e, 0xff, 0xff, 0x02, NULL },
- {0x0f, 0xff, 0xff, 0x04, NULL },
-
- // Dip 1
-
- // Dip 2
- {0 , 0xfe, 0 , 2 , "Lives" },
- {0x0e, 0x01, 0x01, 0x00, "3" },
- {0x0e, 0x01, 0x01, 0x01, "5" },
-
- {0 , 0xfe, 0 , 2 , "Demo Sounds" },
- {0x0e, 0x01, 0x02, 0x00, "Off" },
- {0x0e, 0x01, 0x02, 0x02, "On" },
-
- // Dip 3
- {0 , 0xfe, 0 , 4 , "Coinage" },
- {0x0f, 0x01, 0x06, 0x04, "1 Coin 1 Play" },
- {0x0f, 0x01, 0x06, 0x06, "1 Coin 2 Plays" },
- {0x0f, 0x01, 0x06, 0x02, "1 Coin 3 Plays" },
- {0x0f, 0x01, 0x06, 0x00, "1 Coin 4 Plays" },
-};
-
-STDDIPINFO(Calipso)
-
-static struct BurnDIPInfo CatacombDIPList[]=
-{
- // Default Values
- {0x0b, 0xff, 0xff, 0x00, NULL },
- {0x0c, 0xff, 0xff, 0x40, NULL },
- {0x0d, 0xff, 0xff, 0x04, NULL },
-
- // Dip 1
-
- // Dip 2
- {0 , 0xfe, 0 , 2 , "Coin A" },
- {0x0c, 0x01, 0x40, 0x00, "2 Coins 1 Play" },
- {0x0c, 0x01, 0x40, 0x40, "1 Coin 1 Play" },
-
- {0 , 0xfe, 0 , 2 , "Coin B" },
- {0x0c, 0x01, 0x80, 0x00, "1 Coin 3 Plays" },
- {0x0c, 0x01, 0x80, 0x80, "1 Coin 5 Plays" },
-
- // Dip 3
- {0 , 0xfe, 0 , 2 , "Lives" },
- {0x0d, 0x01, 0x04, 0x04, "3" },
- {0x0d, 0x01, 0x04, 0x00, "5" },
-};
-
-STDDIPINFO(Catacomb)
-
-static struct BurnDIPInfo CavelonDIPList[]=
-{
- // Default Values
- {0x11, 0xff, 0xff, 0x00, NULL },
- {0x12, 0xff, 0xff, 0x02, NULL },
- {0x13, 0xff, 0xff, 0x0c, NULL },
-
- // Dip 1
-
- // Dip 2
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x12, 0x01, 0x01, 0x00, "Upright" },
- {0x12, 0x01, 0x01, 0x01, "Cocktail" },
-
- {0 , 0xfe, 0 , 2 , "Coinage" },
- {0x12, 0x01, 0x02, 0x02, "A 1C/1P B 1C/6P" },
- {0x12, 0x01, 0x02, 0x00, "A 2C/1P B 1C/3P" },
-
- // Dip 3
- {0 , 0xfe, 0 , 4 , "Lives" },
- {0x13, 0x01, 0x06, 0x00, "2" },
- {0x13, 0x01, 0x06, 0x04, "3" },
- {0x13, 0x01, 0x06, 0x02, "4" },
- {0x13, 0x01, 0x06, 0x06, "5" },
-};
-
-STDDIPINFO(Cavelon)
-
-static struct BurnDIPInfo CheckmanjDIPList[]=
-{
- // Default Values
- {0x11, 0xff, 0xff, 0x00, NULL },
- {0x12, 0xff, 0xff, 0x00, NULL },
- {0x13, 0xff, 0xff, 0x00, NULL },
-
- // Dip 1
-
- // Dip 2
- {0 , 0xfe, 0 , 2 , "Coinage" },
- {0x12, 0x01, 0x40, 0x40, "A 2C/1P B 1C/3P" },
- {0x12, 0x01, 0x40, 0x00, "A 1C/1P B 1C/6P" },
-
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x12, 0x01, 0x80, 0x00, "Upright" },
- {0x12, 0x01, 0x80, 0x80, "Cocktail" },
-
- // Dip 3
- {0 , 0xfe, 0 , 4 , "Lives" },
- {0x13, 0x01, 0x03, 0x00, "3" },
- {0x13, 0x01, 0x03, 0x01, "4" },
- {0x13, 0x01, 0x03, 0x02, "5" },
- {0x13, 0x01, 0x03, 0x03, "6" },
-
- {0 , 0xfe, 0 , 2 , "Bonus Life" },
- {0x13, 0x01, 0x04, 0x00, "100000" },
- {0x13, 0x01, 0x04, 0x04, "200000" },
-
- {0 , 0xfe, 0 , 2 , "Difficulty increases at level"},
- {0x13, 0x01, 0x08, 0x08, "3" },
- {0x13, 0x01, 0x08, 0x00, "5" },
-};
-
-STDDIPINFO(Checkmanj)
-
-static struct BurnDIPInfo CheckmanDIPList[]=
-{
- // Default Values
- {0x0f, 0xff, 0xff, 0x00, NULL },
- {0x10, 0xff, 0xff, 0x00, NULL },
- {0x11, 0xff, 0xff, 0x00, NULL },
-
- // Dip 1
-
- // Dip 2
- {0 , 0xfe, 0 , 2 , "Coinage" },
- {0x10, 0x01, 0x40, 0x40, "A 2C/1P B 1C/3P" },
- {0x10, 0x01, 0x40, 0x00, "A 1C/1P B 1C/6P" },
-
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x10, 0x01, 0x80, 0x00, "Upright" },
- {0x10, 0x01, 0x80, 0x80, "Cocktail" },
-
- // Dip 3
- {0 , 0xfe, 0 , 4 , "Lives" },
- {0x11, 0x01, 0x03, 0x00, "3" },
- {0x11, 0x01, 0x03, 0x01, "4" },
- {0x11, 0x01, 0x03, 0x02, "5" },
- {0x11, 0x01, 0x03, 0x03, "6" },
-
- {0 , 0xfe, 0 , 2 , "Bonus Life" },
- {0x11, 0x01, 0x04, 0x00, "100000" },
- {0x11, 0x01, 0x04, 0x04, "200000" },
-
- {0 , 0xfe, 0 , 2 , "Difficulty increases at level"},
- {0x11, 0x01, 0x08, 0x08, "3" },
- {0x11, 0x01, 0x08, 0x00, "5" },
-};
-
-STDDIPINFO(Checkman)
-
-static struct BurnDIPInfo CkonggDIPList[]=
-{
- // Default Values
- {0x0f, 0xff, 0xff, 0x00, NULL },
- {0x10, 0xff, 0xff, 0x80, NULL },
- {0x11, 0xff, 0xff, 0x0a, NULL },
-
- // Dip 1
-
- // Dip 2
- {0 , 0xfe, 0 , 2 , "Coinage" },
- {0x10, 0x01, 0x40, 0x00, "1 Coin 2 Plays" },
- {0x10, 0x01, 0x40, 0x40, "1 Coin 4 Plays" },
-
- // Dip 3
- {0 , 0xfe, 0 , 4 , "Lives" },
- {0x11, 0x01, 0x03, 0x00, "1" },
- {0x11, 0x01, 0x03, 0x01, "2" },
- {0x11, 0x01, 0x03, 0x02, "3" },
- {0x11, 0x01, 0x03, 0x03, "4" },
-
- {0 , 0xfe, 0 , 2 , "Bonus Life" },
- {0x11, 0x01, 0x08, 0x08, "500000" },
- {0x11, 0x01, 0x08, 0x00, "750000" },
-};
-
-STDDIPINFO(Ckongg)
-
-static struct BurnDIPInfo CkongsDIPList[]=
-{
- // Default Values
- {0x0f, 0xff, 0xff, 0x00, NULL },
- {0x10, 0xff, 0xff, 0x00, NULL },
- {0x11, 0xff, 0xff, 0x02, NULL },
-
- // Dip 1
-
- // Dip 2
-
- // Dip 3
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x11, 0x01, 0x02, 0x02, "Upright" },
- {0x11, 0x01, 0x02, 0x00, "Cocktail" },
-
- {0 , 0xfe, 0 , 2 , "Lives" },
- {0x11, 0x01, 0x04, 0x00, "3" },
- {0x11, 0x01, 0x04, 0x04, "4" },
-};
-
-STDDIPINFO(Ckongs)
-
-static struct BurnDIPInfo DambustrDIPList[]=
-{
- // Default Values
- {0x0c, 0xff, 0xff, 0x00, NULL },
- {0x0d, 0xff, 0xff, 0x00, NULL },
- {0x0e, 0xff, 0xff, 0x00, NULL },
-
- // Dip 1
- {0 , 0xfe, 0 , 2 , "Clear Swear Words" },
- {0x0c, 0x01, 0x20, 0x00, "Off" },
- {0x0c, 0x01, 0x20, 0x20, "On" },
-
- {0 , 0xfe, 0 , 2 , "Service Mode" },
- {0x0c, 0x01, 0x40, 0x00, "Off" },
- {0x0c, 0x01, 0x40, 0x40, "On" },
-
- // Dip 2
- {0 , 0xfe, 0 , 2 , "Second Coin Counter" },
- {0x0d, 0x01, 0x40, 0x00, "Off" },
- {0x0d, 0x01, 0x40, 0x40, "On" },
-
- {0 , 0xfe, 0 , 2 , "Coinage" },
- {0x0d, 0x01, 0x80, 0x80, "1 Coin 1 Credit" },
- {0x0d, 0x01, 0x80, 0x00, "1 Coin 2 Credits" },
-
- // Dip 3
- {0 , 0xfe, 0 , 4 , "Lives" },
- {0x0e, 0x01, 0x03, 0x00, "3" },
- {0x0e, 0x01, 0x03, 0x01, "4" },
- {0x0e, 0x01, 0x03, 0x02, "5" },
- {0x0e, 0x01, 0x03, 0x03, "6" },
-
- {0 , 0xfe, 0 , 2 , "Game Test Mode" },
- {0x0e, 0x01, 0x04, 0x00, "Off" },
- {0x0e, 0x01, 0x04, 0x04, "On" },
-
- {0 , 0xfe, 0 , 2 , "Union Jack" },
- {0x0e, 0x01, 0x08, 0x08, "Off" },
- {0x0e, 0x01, 0x08, 0x00, "On" },
-};
-
-STDDIPINFO(Dambustr)
-
-static struct BurnDIPInfo DarkplntDIPList[]=
-{
- // Default Values
- {0x08, 0xff, 0xff, 0x00, NULL },
- {0x09, 0xff, 0xff, 0x02, NULL },
- {0x0a, 0xff, 0xff, 0x0c, NULL },
-
- // Dip 1
-
- // Dip 2
- {0 , 0xfe, 0 , 2 , "Bonus Occurrence" },
- {0x09, 0x01, 0x01, 0x00, "Once" },
- {0x09, 0x01, 0x01, 0x01, "Everytime" },
-
- {0 , 0xfe, 0 , 2 , "Lives" },
- {0x09, 0x01, 0x02, 0x02, "1" },
- {0x09, 0x01, 0x02, 0x00, "2" },
-
- // Dip 3
- {0 , 0xfe, 0 , 4 , "Coinage" },
- {0x0a, 0x01, 0x06, 0x04, "1 Coin 1 Play" },
- {0x0a, 0x01, 0x06, 0x06, "A 1C/2P B 2C/1P" },
- {0x0a, 0x01, 0x06, 0x02, "A 1C/3P B 3C/1P" },
- {0x0a, 0x01, 0x06, 0x00, "A 1C/4P B 4C/1P" },
-
- {0 , 0xfe, 0 , 2 , "Bonus Life" },
- {0x0a, 0x01, 0x08, 0x08, "100000" },
- {0x0a, 0x01, 0x08, 0x00, "200000" },
-};
-
-STDDIPINFO(Darkplnt)
-
-static struct BurnDIPInfo DevilfsgDIPList[]=
-{
- // Default Values
- {0x0f, 0xff, 0xff, 0x00, NULL },
- {0x10, 0xff, 0xff, 0xc0, NULL },
- {0x11, 0xff, 0xff, 0x00, NULL },
-
- // Dip 1
-
- // Dip 2
- {0 , 0xfe, 0 , 2 , "Coin A" },
- {0x10, 0x01, 0x40, 0x00, "2 Coins 1 Play" },
- {0x10, 0x01, 0x40, 0x40, "1 Coin 1 Play" },
-
- {0 , 0xfe, 0 , 2 , "Coin B" },
- {0x10, 0x01, 0x80, 0x80, "1 Coin 3 Plays" },
- {0x10, 0x01, 0x80, 0x00, "1 Coin 5 Plays" },
-
- // Dip 3
- {0 , 0xfe, 0 , 2 , "Bonus Life" },
- {0x11, 0x01, 0x01, 0x00, "10000" },
- {0x11, 0x01, 0x01, 0x01, "15000" },
-
- {0 , 0xfe, 0 , 2 , "Lives" },
- {0x11, 0x01, 0x04, 0x00, "4" },
- {0x11, 0x01, 0x04, 0x04, "5" },
-
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x11, 0x01, 0x08, 0x00, "Upright" },
- {0x11, 0x01, 0x08, 0x08, "Cocktail" },
-};
-
-STDDIPINFO(Devilfsg)
-
-static struct BurnDIPInfo DevilfshDIPList[]=
-{
- // Default Values
- {0x0f, 0xff, 0xff, 0x00, NULL },
- {0x10, 0xff, 0xff, 0x03, NULL },
- {0x11, 0xff, 0xff, 0x02, NULL },
-
- // Dip 1
-
- // Dip 2
- {0 , 0xfe, 0 , 2 , "Bonus Life" },
- {0x10, 0x01, 0x01, 0x01, "10000" },
- {0x10, 0x01, 0x01, 0x00, "15000" },
-
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x10, 0x01, 0x02, 0x02, "Upright" },
- {0x10, 0x01, 0x02, 0x00, "Cocktail" },
-
- // Dip 3
- {0 , 0xfe, 0 , 2 , "Lives" },
- {0x11, 0x01, 0x02, 0x02, "4" },
- {0x11, 0x01, 0x02, 0x00, "5" },
-
- {0 , 0xfe, 0 , 2 , "Coin A" },
- {0x11, 0x01, 0x04, 0x04, "2 Coins 1 Play" },
- {0x11, 0x01, 0x04, 0x00, "1 Coin 1 Play" },
-
- {0 , 0xfe, 0 , 2 , "Coin B" },
- {0x11, 0x01, 0x08, 0x00, "1 Coin 3 Plays" },
- {0x11, 0x01, 0x08, 0x08, "1 Coin 5 Plays" },
-};
-
-STDDIPINFO(Devilfsh)
-
-static struct BurnDIPInfo DingoDIPList[]=
-{
- // Default Values
- {0x0f, 0xff, 0xff, 0x00, NULL },
- {0x10, 0xff, 0xff, 0x80, NULL },
- {0x11, 0xff, 0xff, 0x01, NULL },
-
- // Dip 1
-
- // Dip 2
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x10, 0x01, 0x40, 0x00, "Upright" },
- {0x10, 0x01, 0x40, 0x40, "Cocktail" },
-
- {0 , 0xfe, 0 , 2 , "Coinage" },
- {0x10, 0x01, 0x80, 0x40, "A 2C/1P B 1C/3P" },
- {0x10, 0x01, 0x80, 0x80, "A 1C/1P B 1C/5P" },
-
- // Dip 3
- {0 , 0xfe, 0 , 4 , "Difficulty" },
- {0x11, 0x01, 0x03, 0x00, "Easy" },
- {0x11, 0x01, 0x03, 0x01, "Medium" },
- {0x11, 0x01, 0x03, 0x02, "Hard" },
- {0x11, 0x01, 0x03, 0x03, "Hardest" },
-
- {0 , 0xfe, 0 , 2 , "Lives" },
- {0x11, 0x01, 0x04, 0x00, "3" },
- {0x11, 0x01, 0x04, 0x04, "4" },
-
- {0 , 0xfe, 0 , 2 , "Bonus Life" },
- {0x11, 0x01, 0x08, 0x00, "20000" },
- {0x11, 0x01, 0x08, 0x08, "40000" },
-};
-
-STDDIPINFO(Dingo)
-
-static struct BurnDIPInfo DkongjrmDIPList[]=
-{
- // Default Values
- {0x0e, 0xff, 0xff, 0x00, NULL },
- {0x0f, 0xff, 0xff, 0x00, NULL },
- {0x10, 0xff, 0xff, 0x08, NULL },
-
- // Dip 1
-
- // Dip 2
- {0 , 0xfe, 0 , 4 , "Coinage" },
- {0x0f, 0x01, 0xc0, 0xc0, "3 Coins 1 Play" },
- {0x0f, 0x01, 0xc0, 0x40, "2 Coins 1 Play" },
- {0x0f, 0x01, 0xc0, 0x00, "1 Coin 1 Play" },
- {0x0f, 0x01, 0xc0, 0x80, "1 Coin 2 Plays" },
-
- // Dip 3
- {0 , 0xfe, 0 , 2 , "Coin Multiplier" },
- {0x10, 0x01, 0x01, 0x00, "x1" },
- {0x10, 0x01, 0x01, 0x01, "x2" },
-
- {0 , 0xfe, 0 , 4 , "Lives" },
- {0x10, 0x01, 0x06, 0x00, "3" },
- {0x10, 0x01, 0x06, 0x02, "4" },
- {0x10, 0x01, 0x06, 0x04, "5" },
- {0x10, 0x01, 0x06, 0x06, "6" },
-
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x10, 0x01, 0x08, 0x08, "Upright" },
- {0x10, 0x01, 0x08, 0x00, "Cocktail" },
-};
-
-STDDIPINFO(Dkongjrm)
-
-static struct BurnDIPInfo DonightDIPList[]=
-{
- // Default Values
- {0x0b, 0xff, 0xff, 0x00, NULL },
- {0x0c, 0xff, 0xff, 0x00, NULL },
-
- // Dip 1
- {0 , 0xfe, 0 , 2 , "Service Mode" },
- {0x0b, 0x01, 0x40, 0x00, "Off" },
- {0x0b, 0x01, 0x40, 0x40, "On" },
-
- // Dip 2
- {0 , 0xfe, 0 , 4 , "Coinage" },
- {0x0c, 0x01, 0xc0, 0x40, "2 Coins 1 Play" },
- {0x0c, 0x01, 0xc0, 0x00, "1 Coin 1 Play" },
- {0x0c, 0x01, 0xc0, 0x80, "1 Coin 2 Plays" },
- {0x0c, 0x01, 0xc0, 0xc0, "Freeplay" },
-};
-
-STDDIPINFO(Donight)
-
-static struct BurnDIPInfo DrivfrcgDIPList[]=
-{
- // Default Values
- {0x07, 0xff, 0xff, 0x00, NULL },
- {0x08, 0xff, 0xff, 0x00, NULL },
- {0x09, 0xff, 0xff, 0x00, NULL },
- {0x0a, 0xff, 0xff, 0x00, NULL },
-
- // Dip 1
-
- // Dip 2
- {0 , 0xfe, 0 , 2 , "Coinage" },
- {0x08, 0x01, 0x40, 0x40, "A 2C/1P B 1C/3P" },
- {0x08, 0x01, 0x40, 0x00, "A 1C/1P B 1C/5P" },
-
- // Dip 3
-
- // Dip 4
-};
-
-STDDIPINFO(Drivfrcg)
-
-static struct BurnDIPInfo Eagle2DIPList[]=
-{
- // Default Values
- {0x0b, 0xff, 0xff, 0x00, NULL },
- {0x0c, 0xff, 0xff, 0x80, NULL },
- {0x0d, 0xff, 0xff, 0x00, NULL },
-
- // Dip 1
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x0b, 0x01, 0x20, 0x00, "Upright" },
- {0x0b, 0x01, 0x20, 0x20, "Cocktail" },
-
- // Dip 2
- {0 , 0xfe, 0 , 2 , "Bonus Life" },
- {0x0c, 0x01, 0x40, 0x00, "30000" },
- {0x0c, 0x01, 0x40, 0x40, "50000" },
-
- {0 , 0xfe, 0 , 2 , "Language" },
- {0x0c, 0x01, 0x80, 0x80, "English" },
- {0x0c, 0x01, 0x80, 0x00, "Japanese" },
-
- // Dip 3
- {0 , 0xfe, 0 , 4 , "Coinage" },
- {0x0d, 0x01, 0x03, 0x03, "4 Coins 1 Play" },
- {0x0d, 0x01, 0x03, 0x02, "3 Coins 1 Play" },
- {0x0d, 0x01, 0x03, 0x01, "2 Coins 1 Play" },
- {0x0d, 0x01, 0x03, 0x00, "1 Coin 1 Play" },
-
- {0 , 0xfe, 0 , 2 , "Free Play" },
- {0x0d, 0x01, 0x0c, 0x00, "Off" },
- {0x0d, 0x01, 0x0c, 0x0c, "On" },
-};
-
-STDDIPINFO(Eagle2)
-
-static struct BurnDIPInfo ExodusDIPList[]=
-{
- // Default Values
- {0x0b, 0xff, 0xff, 0x00, NULL },
- {0x0c, 0xff, 0xff, 0xc0, NULL },
- {0x0d, 0xff, 0xff, 0x00, NULL },
-
- // Dip 1
- {0 , 0xfe, 0 , 2 , "Service Mode" },
- {0x0b, 0x01, 0x40, 0x00, "Off" },
- {0x0b, 0x01, 0x40, 0x40, "On" },
-
- // Dip 2
- {0 , 0xfe, 0 , 2 , "Coin B" },
- {0x0c, 0x01, 0x40, 0x00, "2 Coins 1 Play" },
- {0x0c, 0x01, 0x40, 0x40, "1 Coin 1 Play" },
-
- {0 , 0xfe, 0 , 2 , "Coin A" },
- {0x0c, 0x01, 0x80, 0x80, "1 Coin 3 Plays" },
- {0x0c, 0x01, 0x80, 0x00, "1 Coin 5 Plays" },
-
- // Dip 3
- {0 , 0xfe, 0 , 2 , "Bonus Life" },
- {0x0d, 0x01, 0x01, 0x00, "7000" },
- {0x0d, 0x01, 0x01, 0x01, "None" },
-
- {0 , 0xfe, 0 , 2 , "Lives" },
- {0x0d, 0x01, 0x04, 0x00, "3" },
- {0x0d, 0x01, 0x04, 0x04, "5" },
-
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x0d, 0x01, 0x08, 0x00, "Upright" },
- {0x0d, 0x01, 0x08, 0x08, "Cocktail" },
-};
-
-STDDIPINFO(Exodus)
-
-static struct BurnDIPInfo ExplorerDIPList[]=
-{
- // Default Values
- {0x0b, 0xff, 0xff, 0x00, NULL },
- {0x0c, 0xff, 0xff, 0x00, NULL },
- {0x0d, 0xff, 0xff, 0x00, NULL },
- {0x0e, 0xff, 0xff, 0x01, NULL },
-
- // Dip 1
-
- // Dip 2
-
- // Dip 3
- {0 , 0xfe, 0 , 16 , "Coin A" },
- {0x0d, 0x01, 0x0f, 0x08, "2 Coins 1 Play" },
- {0x0d, 0x01, 0x0f, 0x09, "2 Coins 2 Plays" },
- {0x0d, 0x01, 0x0f, 0x00, "1 Coin 1 Play" },
- {0x0d, 0x01, 0x0f, 0x0a, "2 Coins 3 Plays" },
- {0x0d, 0x01, 0x0f, 0x0b, "2 Coins 4 Plays" },
- {0x0d, 0x01, 0x0f, 0x01, "1 Coin 2 Plays" },
- {0x0d, 0x01, 0x0f, 0x0c, "2 Coins 5 Plays" },
- {0x0d, 0x01, 0x0f, 0x0d, "2 Coins 6 Plays" },
- {0x0d, 0x01, 0x0f, 0x02, "1 Coin 3 Plays" },
- {0x0d, 0x01, 0x0f, 0x0e, "2 Coins 7 Plays" },
- {0x0d, 0x01, 0x0f, 0x0f, "2 Coins 8 Plays" },
- {0x0d, 0x01, 0x0f, 0x03, "1 Coin 4 Plays" },
- {0x0d, 0x01, 0x0f, 0x04, "1 Coin 5 Plays" },
- {0x0d, 0x01, 0x0f, 0x05, "1 Coin 6 Plays" },
- {0x0d, 0x01, 0x0f, 0x06, "1 Coin 7 Plays" },
- {0x0d, 0x01, 0x0f, 0x07, "1 Coin 8 Plays" },
-
- {0 , 0xfe, 0 , 16 , "Coin B" },
- {0x0d, 0x01, 0xf0, 0x80, "2 Coins 1 Play" },
- {0x0d, 0x01, 0xf0, 0x90, "2 Coins 2 Plays" },
- {0x0d, 0x01, 0xf0, 0x00, "1 Coin 1 Play" },
- {0x0d, 0x01, 0xf0, 0xa0, "2 Coins 3 Plays" },
- {0x0d, 0x01, 0xf0, 0xb0, "2 Coins 4 Plays" },
- {0x0d, 0x01, 0xf0, 0x10, "1 Coin 2 Plays" },
- {0x0d, 0x01, 0xf0, 0xc0, "2 Coins 5 Plays" },
- {0x0d, 0x01, 0xf0, 0xd0, "2 Coins 6 Plays" },
- {0x0d, 0x01, 0xf0, 0x20, "1 Coin 3 Plays" },
- {0x0d, 0x01, 0xf0, 0xe0, "2 Coins 7 Plays" },
- {0x0d, 0x01, 0xf0, 0xf0, "2 Coins 8 Plays" },
- {0x0d, 0x01, 0xf0, 0x30, "1 Coin 4 Plays" },
- {0x0d, 0x01, 0xf0, 0x40, "1 Coin 5 Plays" },
- {0x0d, 0x01, 0xf0, 0x50, "1 Coin 6 Plays" },
- {0x0d, 0x01, 0xf0, 0x60, "1 Coin 7 Plays" },
- {0x0d, 0x01, 0xf0, 0x70, "1 Coin 8 Plays" },
-
- // Dip 4
- {0 , 0xfe, 0 , 4 , "Lives" },
- {0x0e, 0x01, 0x03, 0x00, "2" },
- {0x0e, 0x01, 0x03, 0x01, "3" },
- {0x0e, 0x01, 0x03, 0x02, "4" },
- {0x0e, 0x01, 0x03, 0x03, "5" },
-
- {0 , 0xfe, 0 , 8 , "Bonus Life" },
- {0x0e, 0x01, 0x1c, 0x04, "10000" },
- {0x0e, 0x01, 0x1c, 0x0c, "15000" },
- {0x0e, 0x01, 0x1c, 0x14, "20000" },
- {0x0e, 0x01, 0x1c, 0x1c, "25000" },
- {0x0e, 0x01, 0x1c, 0x00, "30000" },
- {0x0e, 0x01, 0x1c, 0x08, "50000" },
- {0x0e, 0x01, 0x1c, 0x10, "70000" },
- {0x0e, 0x01, 0x1c, 0x18, "80000" },
-
- {0 , 0xfe, 0 , 2 , "Service Mode" },
- {0x0e, 0x01, 0x80, 0x00, "Off" },
- {0x0e, 0x01, 0x80, 0x80, "On" },
-};
-
-STDDIPINFO(Explorer)
-
-static struct BurnDIPInfo FantastcDIPList[]=
-{
- // Default Values
- {0x07, 0xff, 0xff, 0x40, NULL },
- {0x08, 0xff, 0xff, 0x00, NULL },
- {0x09, 0xff, 0xff, 0x01, NULL },
-
- // Dip 1
- {0 , 0xfe, 0 , 2 , "Service Mode" },
- {0x07, 0x01, 0x20, 0x00, "Off" },
- {0x07, 0x01, 0x20, 0x20, "On" },
-
- {0 , 0xfe, 0 , 2 , "Extended Bonus Life" },
- {0x07, 0x01, 0x40, 0x00, "Off" },
- {0x07, 0x01, 0x40, 0x40, "On" },
-
- // Dip 2
- {0 , 0xfe, 0 , 2 , "Coinage" },
- {0x08, 0x01, 0xc0, 0x00, "1 Coin 1 Play" },
- {0x08, 0x01, 0xc0, 0x80, "2 Coins 1 Play" },
-
- {0 , 0xfe, 0 , 2 , "Lives" },
- {0x08, 0x01, 0x80, 0x00, "3" },
- {0x08, 0x01, 0x80, 0x80, "5" },
-
- // Dip 3
- {0 , 0xfe, 0 , 4 , "Difficulty" },
- {0x09, 0x01, 0x03, 0x00, "Easy" },
- {0x09, 0x01, 0x03, 0x01, "Medium" },
- {0x09, 0x01, 0x03, 0x02, "Hard" },
- {0x09, 0x01, 0x03, 0x03, "Hardest" },
-
- {0 , 0xfe, 0 , 4 , "Bonus Life" },
- {0x09, 0x01, 0x0c, 0x00, "20000 80000" },
- {0x09, 0x01, 0x0c, 0x04, "30000 80000" },
- {0x09, 0x01, 0x0c, 0x08, "20000 120000" },
- {0x09, 0x01, 0x0c, 0x0c, "30000 120000" },
-};
-
-STDDIPINFO(Fantastc)
-
-static struct BurnDIPInfo FantaziaDIPList[]=
-{
- // Default Values
- {0x0b, 0xff, 0xff, 0x00, NULL },
- {0x0c, 0xff, 0xff, 0x00, NULL },
- {0x0d, 0xff, 0xff, 0x00, NULL },
-
- // Dip 1
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x0b, 0x01, 0x20, 0x00, "Upright" },
- {0x0b, 0x01, 0x20, 0x20, "Cocktail" },
-
- // Dip 2
- {0 , 0xfe, 0 , 2 , "Bonus Life" },
- {0x0c, 0x01, 0x40, 0x00, "30000" },
- {0x0c, 0x01, 0x40, 0x40, "50000" },
-
- // Dip 3
- {0 , 0xfe, 0 , 4 , "Coin B" },
- {0x0d, 0x01, 0x03, 0x03, "4 Coins 1 Play" },
- {0x0d, 0x01, 0x03, 0x02, "3 Coins 1 Play" },
- {0x0d, 0x01, 0x03, 0x01, "2 Coins 1 Play" },
- {0x0d, 0x01, 0x03, 0x00, "1 Coin 1 Play" },
-
- {0 , 0xfe, 0 , 4 , "Coin A" },
- {0x0d, 0x01, 0x0c, 0x00, "1 Coin 1 Play" },
- {0x0d, 0x01, 0x0c, 0x04, "1 Coin 2 Plays" },
- {0x0d, 0x01, 0x0c, 0x08, "1 Coin 3 Plays" },
- {0x0d, 0x01, 0x0c, 0x0c, "Freeplay" },
-};
-
-STDDIPINFO(Fantazia)
-
-static struct BurnDIPInfo Fourin1DIPList[]=
-{
- // Defaults
- {0x0e, 0xff, 0xff, 0x00, NULL },
- {0x0f, 0xff, 0xff, 0x00, NULL },
- {0x10, 0xff, 0xff, 0x00, NULL },
- {0x11, 0xff, 0xff, 0x00, NULL },
- {0x12, 0xff, 0xff, 0x00, NULL },
- {0x13, 0xff, 0xff, 0x00, NULL },
- {0x14, 0xff, 0xff, 0x00, NULL },
-
- // Dip 1
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x0e, 0x01, 0x20, 0x00, "Upright" },
- {0x0e, 0x01, 0x20, 0x20, "Cocktail" },
-
- // Dip 3
- {0 , 0xfe, 0 , 2 , "Lives" },
- {0x10, 0x01, 0x04, 0x00, "3" },
- {0x10, 0x01, 0x04, 0x04, "5" },
-
- // Ghost Muncher Pt 3
- {0 , 0xfe, 0 , 4 , "Bonus Life (Ghost Muncher)"},
- {0x11, 0x01, 0x03, 0x01, "10000" },
- {0x11, 0x01, 0x03, 0x02, "15000" },
- {0x11, 0x01, 0x03, 0x03, "20000" },
- {0x11, 0x01, 0x03, 0x00, "None" },
-
- {0 , 0xfe, 0 , 4 , "Coinage (Ghost Muncher)"},
- {0x11, 0x01, 0xc0, 0x40, "2 Coins 1 Credit" },
- {0x11, 0x01, 0xc0, 0x00, "1 Coin 1 Credit" },
- {0x11, 0x01, 0xc0, 0x80, "1 Coin 2 Credits" },
- {0x11, 0x01, 0xc0, 0xc0, "Free Play" },
-
- // Scramble Pt 2
- {0 , 0xfe, 0 , 2 , "Allow Continue (Scramble)"},
- {0x12, 0x01, 0x08, 0x08, "No" },
- {0x12, 0x01, 0x08, 0x00, "Yes" },
-
- {0 , 0xfe, 0 , 4 , "Coinage (Scramble)" },
- {0x12, 0x01, 0xc0, 0x40, "2 Coins 1 Credit" },
- {0x12, 0x01, 0xc0, 0x00, "1 Coin 1 Credit" },
- {0x12, 0x01, 0xc0, 0x80, "1 Coin 2 Credits" },
- {0x12, 0x01, 0xc0, 0xc0, "Free Play" },
-
- // Galaxian Pt 5
- {0 , 0xfe, 0 , 4 , "Bonus Life (Galaxian)" },
- {0x13, 0x01, 0x03, 0x01, "4000" },
- {0x13, 0x01, 0x03, 0x02, "5000" },
- {0x13, 0x01, 0x03, 0x03, "7000" },
- {0x13, 0x01, 0x03, 0x00, "None" },
-
- {0 , 0xfe, 0 , 3 , "Coinage (Galaxian)" },
- {0x13, 0x01, 0xc0, 0x40, "2 Coins 1 Credit" },
- {0x13, 0x01, 0xc0, 0x00, "1 Coin 1 Credit" },
- {0x13, 0x01, 0xc0, 0xc0, "Free Play" },
-
- // Galactic Convoy
- {0 , 0xfe, 0 , 2 , "Bonus Life (Galactic Convoy)"},
- {0x14, 0x01, 0x01, 0x00, "50000" },
- {0x14, 0x01, 0x01, 0x01, "80000" },
-
- {0 , 0xfe, 0 , 3 , "Coinage (Galactic Convoy)"},
- {0x14, 0x01, 0xc0, 0x40, "2 Coins 1 Credit" },
- {0x14, 0x01, 0xc0, 0x00, "1 Coin 1 Credit" },
- {0x14, 0x01, 0xc0, 0xc0, "Free Play" },
-};
-
-STDDIPINFO(Fourin1)
-
-static struct BurnDIPInfo FroggDIPList[]=
-{
- // Default Values
- {0x0e, 0xff, 0xff, 0x00, NULL },
- {0x0f, 0xff, 0xff, 0xc0, NULL },
- {0x10, 0xff, 0xff, 0x05, NULL },
-
- // Dip 1
-
- // Dip 2
- {0 , 0xfe, 0 , 4 , "Lives" },
- {0x0f, 0x01, 0xc0, 0xc0, "3" },
- {0x0f, 0x01, 0xc0, 0x80, "5" },
- {0x0f, 0x01, 0xc0, 0x40, "7" },
- {0x0f, 0x01, 0xc0, 0x00, "256" },
-
- // Dip 3
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x10, 0x01, 0x01, 0x01, "Upright" },
- {0x10, 0x01, 0x01, 0x00, "Cocktail" },
-
- {0 , 0xfe, 0 , 2 , "Coinage" },
- {0x10, 0x01, 0x04, 0x00, "2 Coins 1 Credit" },
- {0x10, 0x01, 0x04, 0x04, "1 Coin 1 Credit" },
-};
-
-STDDIPINFO(Frogg)
-
-static struct BurnDIPInfo FroggerDIPList[]=
-{
- // Default Values
- {0x0e, 0xff, 0xff, 0x00, NULL },
- {0x0f, 0xff, 0xff, 0x03, NULL },
- {0x10, 0xff, 0xff, 0x0e, NULL },
-
- // Dip 1
-
- // Dip 2
- {0 , 0xfe, 0 , 4 , "Lives" },
- {0x0f, 0x01, 0x03, 0x03, "3" },
- {0x0f, 0x01, 0x03, 0x02, "5" },
- {0x0f, 0x01, 0x03, 0x01, "7" },
- {0x0f, 0x01, 0x03, 0x00, "256" },
-
- // Dip 3
- {0 , 0xfe, 0 , 4 , "Coinage" },
- {0x10, 0x01, 0x06, 0x04, "A 2C/1P B 2C/1P C 2C/1P"},
- {0x10, 0x01, 0x06, 0x02, "A 2C/1P B 1C/3P C 2C/1P"},
- {0x10, 0x01, 0x06, 0x06, "A 1C/1P B 1C/1P C 1C/1P"},
- {0x10, 0x01, 0x06, 0x00, "A 1C/1P B 1C/6P C 1C/1P"},
-
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x10, 0x01, 0x08, 0x08, "Upright" },
- {0x10, 0x01, 0x08, 0x00, "Cocktail" },
-};
-
-STDDIPINFO(Frogger)
-
-static struct BurnDIPInfo FroggermcDIPList[]=
-{
- // Default Values
- {0x0e, 0xff, 0xff, 0x00, NULL },
- {0x0f, 0xff, 0xff, 0xc0, NULL },
- {0x10, 0xff, 0xff, 0x07, NULL },
-
- // Dip 1
-
- // Dip 2
- {0 , 0xfe, 0 , 4 , "Lives" },
- {0x0f, 0x01, 0xc0, 0xc0, "3" },
- {0x0f, 0x01, 0xc0, 0x80, "5" },
- {0x0f, 0x01, 0xc0, 0x40, "7" },
- {0x0f, 0x01, 0xc0, 0x00, "256" },
-
- // Dip 3
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x10, 0x01, 0x01, 0x01, "Upright" },
- {0x10, 0x01, 0x01, 0x00, "Cocktail" },
-
- {0 , 0xfe, 0 , 4 , "Coinage" },
- {0x10, 0x01, 0x06, 0x02, "A 2C/1P B 2C/1P C 2C/1P"},
- {0x10, 0x01, 0x06, 0x04, "A 2C/1P B 1C/3P C 2C/1P"},
- {0x10, 0x01, 0x06, 0x06, "A 1C/1P B 1C/1P C 1C/1P"},
- {0x10, 0x01, 0x06, 0x00, "A 1C/1P B 1C/6P C 1C/1P"},
-};
-
-STDDIPINFO(Froggermc)
-
-static struct BurnDIPInfo GalaxianDIPList[]=
-{
- // Default Values
- {0x0c, 0xff, 0xff, 0x00, NULL },
- {0x0d, 0xff, 0xff, 0x00, NULL },
- {0x0e, 0xff, 0xff, 0x04, NULL },
-
- // Dip 1
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x0c, 0x01, 0x20, 0x00, "Upright" },
- {0x0c, 0x01, 0x20, 0x20, "Cocktail" },
-
- {0 , 0xfe, 0 , 2 , "Service Mode" },
- {0x0c, 0x01, 0x40, 0x00, "Off" },
- {0x0c, 0x01, 0x40, 0x40, "On" },
-
- // Dip 2
- {0 , 0xfe, 0 , 4 , "Coinage" },
- {0x0d, 0x01, 0xc0, 0x40, "2 Coins 1 Play" },
- {0x0d, 0x01, 0xc0, 0x00, "1 Coin 1 Play" },
- {0x0d, 0x01, 0xc0, 0x80, "1 Coin 2 Plays" },
- {0x0d, 0x01, 0xc0, 0xc0, "Freeplay" },
-
- // Dip 3
- {0 , 0xfe, 0 , 4 , "Bonus Life" },
- {0x0e, 0x01, 0x03, 0x00, "7000" },
- {0x0e, 0x01, 0x03, 0x01, "10000" },
- {0x0e, 0x01, 0x03, 0x02, "12000" },
- {0x0e, 0x01, 0x03, 0x03, "20000" },
-
- {0 , 0xfe, 0 , 2 , "Lives" },
- {0x0e, 0x01, 0x04, 0x00, "2" },
- {0x0e, 0x01, 0x04, 0x04, "3" },
-};
-
-STDDIPINFO(Galaxian)
-
-static struct BurnDIPInfo GalaxianblDIPList[]=
-{
- // Default Values
- {0x0c, 0xff, 0xff, 0x00, NULL },
- {0x0d, 0xff, 0xff, 0x00, NULL },
- {0x0e, 0xff, 0xff, 0x04, NULL },
-
- // Dip 1
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x0c, 0x01, 0x20, 0x00, "Upright" },
- {0x0c, 0x01, 0x20, 0x20, "Cocktail" },
-
- {0 , 0xfe, 0 , 2 , "Service Mode" },
- {0x0c, 0x01, 0x40, 0x00, "Off" },
- {0x0c, 0x01, 0x40, 0x40, "On" },
-
- // Dip 2
- {0 , 0xfe, 0 , 4 , "Coinage" },
- {0x0d, 0x01, 0xc0, 0x40, "2 Coins 1 Play" },
- {0x0d, 0x01, 0xc0, 0x00, "1 Coin 1 Play" },
- {0x0d, 0x01, 0xc0, 0x80, "1 Coin 2 Plays" },
- {0x0d, 0x01, 0xc0, 0xc0, "Freeplay" },
-
- // Dip 3
- {0 , 0xfe, 0 , 4 , "Bonus Life" },
- {0x0e, 0x01, 0x03, 0x00, "None" },
- {0x0e, 0x01, 0x03, 0x01, "10000" },
- {0x0e, 0x01, 0x03, 0x02, "12000" },
- {0x0e, 0x01, 0x03, 0x03, "20000" },
-
- {0 , 0xfe, 0 , 2 , "Lives" },
- {0x0e, 0x01, 0x04, 0x00, "2" },
- {0x0e, 0x01, 0x04, 0x04, "3" },
-};
-
-STDDIPINFO(Galaxianbl)
-
-static struct BurnDIPInfo GalaxrfDIPList[]=
-{
- // Default Values
- {0x0c, 0xff, 0xff, 0x00, NULL },
- {0x0d, 0xff, 0xff, 0x00, NULL },
- {0x0e, 0xff, 0xff, 0x01, NULL },
-
- // Dip 1
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x0c, 0x01, 0x20, 0x00, "Upright" },
- {0x0c, 0x01, 0x20, 0x20, "Cocktail" },
-
- {0 , 0xfe, 0 , 2 , "Service Mode" },
- {0x0c, 0x01, 0x40, 0x00, "Off" },
- {0x0c, 0x01, 0x40, 0x40, "On" },
-
- // Dip 2
- {0 , 0xfe, 0 , 4 , "Coinage" },
- {0x0d, 0x01, 0xc0, 0x40, "2 Coins 1 Play" },
- {0x0d, 0x01, 0xc0, 0x00, "1 Coin 1 Play" },
- {0x0d, 0x01, 0xc0, 0x80, "1 Coin 2 Plays" },
- {0x0d, 0x01, 0xc0, 0xc0, "Freeplay" },
-
- // Dip 3
- {0 , 0xfe, 0 , 4 , "Bonus Life / Enemy Bullet Speed" },
- {0x0e, 0x01, 0x03, 0x00, "None, Slow" },
- {0x0e, 0x01, 0x03, 0x01, "12000, Medium" },
- {0x0e, 0x01, 0x03, 0x02, "20000, Fast" },
- {0x0e, 0x01, 0x03, 0x03, "30000, Fastest" },
-
- {0 , 0xfe, 0 , 2 , "Lives" },
- {0x0e, 0x01, 0x04, 0x00, "2" },
- {0x0e, 0x01, 0x04, 0x04, "3" },
-
- {0 , 0xfe, 0 , 2 , "Player Bullet Speed" },
- {0x0e, 0x01, 0x08, 0x00, "Slow" },
- {0x0e, 0x01, 0x08, 0x08, "Fast" },
-};
-
-STDDIPINFO(Galaxrf)
-
-static struct BurnDIPInfo GhostmunDIPList[]=
-{
- // Default Values
- {0x0c, 0xff, 0xff, 0x00, NULL },
- {0x0d, 0xff, 0xff, 0x40, NULL },
- {0x0e, 0xff, 0xff, 0x06, NULL },
-
- // Dip 1
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x0c, 0x01, 0x20, 0x00, "Upright" },
- {0x0c, 0x01, 0x20, 0x20, "Cocktail" },
-
- // Dip 2
- {0 , 0xfe, 0 , 4 , "Bonus Life" },
- {0x0d, 0x01, 0xc0, 0x40, "10000" },
- {0x0d, 0x01, 0xc0, 0x80, "15000" },
- {0x0d, 0x01, 0xc0, 0xc0, "20000" },
- {0x0d, 0x01, 0xc0, 0x00, "None" },
-
- // Dip 3
- {0 , 0xfe, 0 , 4 , "Coinage" },
- {0x0e, 0x01, 0x03, 0x00, "2 Coins 1 Play" },
- {0x0e, 0x01, 0x03, 0x02, "1 Coin 1 Play" },
- {0x0e, 0x01, 0x03, 0x01, "1 Coin 2 Plays" },
- {0x0e, 0x01, 0x03, 0x03, "Freeplay" },
-
- {0 , 0xfe, 0 , 4 , "Lives" },
- {0x0e, 0x01, 0x0c, 0x0c, "1" },
- {0x0e, 0x01, 0x0c, 0x08, "2" },
- {0x0e, 0x01, 0x0c, 0x04, "3" },
- {0x0e, 0x01, 0x0c, 0x00, "4" },
-};
-
-STDDIPINFO(Ghostmun)
-
-static struct BurnDIPInfo GmgalaxDIPList[]=
-{
- // Default Values
- {0x0e, 0xff, 0xff, 0x00, NULL },
- {0x0f, 0xff, 0xff, 0x40, NULL },
- {0x10, 0xff, 0xff, 0x06, NULL },
- {0x11, 0xff, 0xff, 0x00, NULL },
- {0x12, 0xff, 0xff, 0x00, NULL },
- {0x13, 0xff, 0xff, 0x01, NULL },
- {0x14, 0xff, 0xff, 0x00, NULL },
-
- // Ghost Muncher Dip 1
- {0 , 0xfe, 0 , 2 , "GM - Cabinet" },
- {0x0e, 0x01, 0x20, 0x00, "Upright" },
- {0x0e, 0x01, 0x20, 0x20, "Cocktail" },
-
- // Ghost Muncher Dip 2
- {0 , 0xfe, 0 , 4 , "GM - Bonus Life" },
- {0x0f, 0x01, 0xc0, 0x40, "10000" },
- {0x0f, 0x01, 0xc0, 0x80, "15000" },
- {0x0f, 0x01, 0xc0, 0xc0, "20000" },
- {0x0f, 0x01, 0xc0, 0x00, "None" },
-
- // Ghost Muncher Dip 3
- {0 , 0xfe, 0 , 4 , "GM - Coinage" },
- {0x10, 0x01, 0x03, 0x00, "2 Coins 1 Play" },
- {0x10, 0x01, 0x03, 0x02, "1 Coin 1 Play" },
- {0x10, 0x01, 0x03, 0x01, "1 Coin 2 Plays" },
- {0x10, 0x01, 0x03, 0x03, "Freeplay" },
-
- {0 , 0xfe, 0 , 4 , "GM - Lives" },
- {0x10, 0x01, 0x0c, 0x0c, "1" },
- {0x10, 0x01, 0x0c, 0x08, "2" },
- {0x10, 0x01, 0x0c, 0x04, "3" },
- {0x10, 0x01, 0x0c, 0x00, "4" },
-
- // Galaxian Dip 1
- {0 , 0xfe, 0 , 2 , "GX - Cabinet" },
- {0x11, 0x01, 0x20, 0x00, "Upright" },
- {0x11, 0x01, 0x20, 0x20, "Cocktail" },
-
- {0 , 0xfe, 0 , 2 , "GX - Service Mode" },
- {0x11, 0x01, 0x40, 0x00, "Off" },
- {0x11, 0x01, 0x40, 0x40, "On" },
-
- // Galaxian Dip 2
- {0 , 0xfe, 0 , 4 , "GX - Coinage" },
- {0x12, 0x01, 0xc0, 0x40, "2 Coins 1 Play" },
- {0x12, 0x01, 0xc0, 0x00, "1 Coin 1 Play" },
- {0x12, 0x01, 0xc0, 0x80, "1 Coin 2 Plays" },
- {0x12, 0x01, 0xc0, 0xc0, "Freeplay" },
-
- // Galaxian Dip 3
- {0 , 0xfe, 0 , 4 , "GX - Bonus Life" },
- {0x13, 0x01, 0x03, 0x01, "4000" },
- {0x13, 0x01, 0x03, 0x02, "5000" },
- {0x13, 0x01, 0x03, 0x03, "7000" },
- {0x13, 0x01, 0x03, 0x00, "None" },
-
- {0 , 0xfe, 0 , 2 , "GX - Lives" },
- {0x13, 0x01, 0x04, 0x00, "3" },
- {0x13, 0x01, 0x04, 0x04, "5" },
-
- // Select switch
- {0 , 0xfe, 0 , 2 , "Game Select" },
- {0x14, 0x01, 0x01, 0x00, "Ghost Muncher" },
- {0x14, 0x01, 0x01, 0x01, "Galaxian" },
-};
-
-STDDIPINFO(Gmgalax)
-
-static struct BurnDIPInfo GteikokubDIPList[]=
-{
- // Default Values
- {0x0b, 0xff, 0xff, 0x00, NULL },
- {0x0c, 0xff, 0xff, 0xc0, NULL },
- {0x0d, 0xff, 0xff, 0x00, NULL },
-
- // Dip 1
-
- // Dip 2
- {0 , 0xfe, 0 , 2 , "Coin A" },
- {0x0c, 0x01, 0x40, 0x00, "2 Coins 1 Play" },
- {0x0c, 0x01, 0x40, 0x40, "1 Coin 1 Play" },
-
- {0 , 0xfe, 0 , 2 , "Coin B" },
- {0x0c, 0x01, 0x80, 0x80, "1 Coin 3 Plays" },
- {0x0c, 0x01, 0x80, 0x00, "1 Coin 5 Plays" },
-
- // Dip 3
- {0 , 0xfe, 0 , 2 , "Bonus Life" },
- {0x0d, 0x01, 0x01, 0x00, "7000" },
- {0x0d, 0x01, 0x01, 0x01, "None" },
-
- {0 , 0xfe, 0 , 2 , "Lives" },
- {0x0d, 0x01, 0x04, 0x00, "3" },
- {0x0d, 0x01, 0x04, 0x04, "5" },
-
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x0d, 0x01, 0x08, 0x00, "Upright" },
- {0x0d, 0x01, 0x08, 0x08, "Cocktail" },
-};
-
-STDDIPINFO(Gteikokub)
-
-static struct BurnDIPInfo Gteikokub2DIPList[]=
-{
- // Default Values
- {0x0b, 0xff, 0xff, 0x00, NULL },
- {0x0c, 0xff, 0xff, 0xc0, NULL },
- {0x0d, 0xff, 0xff, 0x08, NULL },
-
- // Dip 1
-
- // Dip 2
- {0 , 0xfe, 0 , 2 , "Coin A" },
- {0x0c, 0x01, 0x40, 0x00, "2 Coins 1 Play" },
- {0x0c, 0x01, 0x40, 0x40, "1 Coin 1 Play" },
-
- {0 , 0xfe, 0 , 2 , "Coin B" },
- {0x0c, 0x01, 0x80, 0x80, "1 Coin 3 Plays" },
- {0x0c, 0x01, 0x80, 0x00, "1 Coin 5 Plays" },
-
- // Dip 3
- {0 , 0xfe, 0 , 2 , "Bonus Life" },
- {0x0d, 0x01, 0x01, 0x00, "7000" },
- {0x0d, 0x01, 0x01, 0x01, "None" },
-
- {0 , 0xfe, 0 , 2 , "Lives" },
- {0x0d, 0x01, 0x04, 0x00, "3" },
- {0x0d, 0x01, 0x04, 0x04, "5" },
-
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x0d, 0x01, 0x08, 0x08, "Upright" },
- {0x0d, 0x01, 0x08, 0x00, "Cocktail" },
-};
-
-STDDIPINFO(Gteikokub2)
-
-static struct BurnDIPInfo AsideralDIPList[]=
-{
- // Default Values
- {0x0c, 0xff, 0xff, 0x00, NULL },
- {0x0d, 0xff, 0xff, 0x40, NULL },
- {0x0e, 0xff, 0xff, 0x01, NULL },
-
- // Dip 1
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x0c, 0x01, 0x20, 0x00, "Upright" },
- {0x0c, 0x01, 0x20, 0x20, "Cocktail" },
-
- {0 , 0xfe, 0 , 2 , "Service Mode" },
- {0x0c, 0x01, 0x40, 0x00, "Off" },
- {0x0c, 0x01, 0x40, 0x40, "On" },
-
- // Dip 2
- {0 , 0xfe, 0 , 4 , "Coinage" },
- {0x0d, 0x01, 0xc0, 0x40, "1 Coin 1 Play" },
- {0x0d, 0x01, 0xc0, 0x00, "1C/2C, 1C/1C" },
- {0x0d, 0x01, 0xc0, 0x80, "1C/4C, 1C/2C" },
- {0x0d, 0x01, 0xc0, 0xc0, "Freeplay" },
-
- // Dip 3
- {0 , 0xfe, 0 , 4 , "Bonus Life" },
- {0x0e, 0x01, 0x03, 0x00, "None" },
- {0x0e, 0x01, 0x03, 0x01, "4000" },
- {0x0e, 0x01, 0x03, 0x02, "5000" },
- {0x0e, 0x01, 0x03, 0x03, "7000" },
-
- {0 , 0xfe, 0 , 2 , "Lives" },
- {0x0e, 0x01, 0x04, 0x00, "4" },
- {0x0e, 0x01, 0x04, 0x04, "5" },
-};
-
-STDDIPINFO(Asideral)
-
-static struct BurnDIPInfo HotshockDIPList[]=
-{
- // Default Values
- {0x0b, 0xff, 0xff, 0x00, NULL },
- {0x0c, 0xff, 0xff, 0x00, NULL },
- {0x0d, 0xff, 0xff, 0x00, NULL },
- {0x0e, 0xff, 0xff, 0x05, NULL },
-
- // Dip 1
-
- // Dip 2
-
- // Dip 3
- {0 , 0xfe, 0 , 16 , "Coin A" },
- {0x0d, 0x01, 0xf0, 0x80, "2 Coins 1 Play" },
- {0x0d, 0x01, 0xf0, 0x90, "2 Coins 2 Plays" },
- {0x0d, 0x01, 0xf0, 0x00, "1 Coin 1 Play" },
- {0x0d, 0x01, 0xf0, 0xa0, "2 Coins 3 Plays" },
- {0x0d, 0x01, 0xf0, 0xb0, "2 Coins 4 Plays" },
- {0x0d, 0x01, 0xf0, 0x10, "1 Coin 2 Plays" },
- {0x0d, 0x01, 0xf0, 0xc0, "2 Coins 5 Plays" },
- {0x0d, 0x01, 0xf0, 0xd0, "2 Coins 6 Plays" },
- {0x0d, 0x01, 0xf0, 0x20, "1 Coin 3 Plays" },
- {0x0d, 0x01, 0xf0, 0xe0, "2 Coins 7 Plays" },
- {0x0d, 0x01, 0xf0, 0xf0, "2 Coins 8 Plays" },
- {0x0d, 0x01, 0xf0, 0x30, "1 Coin 4 Plays" },
- {0x0d, 0x01, 0xf0, 0x40, "1 Coin 5 Plays" },
- {0x0d, 0x01, 0xf0, 0x50, "1 Coin 6 Plays" },
- {0x0d, 0x01, 0xf0, 0x60, "1 Coin 7 Plays" },
- {0x0d, 0x01, 0xf0, 0x70, "1 Coin 8 Plays" },
-
- {0 , 0xfe, 0 , 16 , "Coin B" },
- {0x0d, 0x01, 0x0f, 0x08, "2 Coins 1 Play" },
- {0x0d, 0x01, 0x0f, 0x09, "2 Coins 2 Plays" },
- {0x0d, 0x01, 0x0f, 0x00, "1 Coin 1 Play" },
- {0x0d, 0x01, 0x0f, 0x0a, "2 Coins 3 Plays" },
- {0x0d, 0x01, 0x0f, 0x0b, "2 Coins 4 Plays" },
- {0x0d, 0x01, 0x0f, 0x01, "1 Coin 2 Plays" },
- {0x0d, 0x01, 0x0f, 0x0c, "2 Coins 5 Plays" },
- {0x0d, 0x01, 0x0f, 0x0d, "2 Coins 6 Plays" },
- {0x0d, 0x01, 0x0f, 0x02, "1 Coin 3 Plays" },
- {0x0d, 0x01, 0x0f, 0x0e, "2 Coins 7 Plays" },
- {0x0d, 0x01, 0x0f, 0x0f, "2 Coins 8 Plays" },
- {0x0d, 0x01, 0x0f, 0x03, "1 Coin 4 Plays" },
- {0x0d, 0x01, 0x0f, 0x04, "1 Coin 5 Plays" },
- {0x0d, 0x01, 0x0f, 0x05, "1 Coin 6 Plays" },
- {0x0d, 0x01, 0x0f, 0x06, "1 Coin 7 Plays" },
- {0x0d, 0x01, 0x0f, 0x07, "1 Coin 8 Plays" },
-
- // Dip 4
- {0 , 0xfe, 0 , 4 , "Lives" },
- {0x0e, 0x01, 0x03, 0x00, "2" },
- {0x0e, 0x01, 0x03, 0x01, "3" },
- {0x0e, 0x01, 0x03, 0x02, "4" },
- {0x0e, 0x01, 0x03, 0x03, "5" },
-
- {0 , 0xfe, 0 , 2 , "Language" },
- {0x0e, 0x01, 0x04, 0x04, "English" },
- {0x0e, 0x01, 0x04, 0x00, "Italian" },
-
- {0 , 0xfe, 0 , 4 , "Bonus Life" },
- {0x0e, 0x01, 0x18, 0x00, "75000" },
- {0x0e, 0x01, 0x18, 0x08, "150000" },
- {0x0e, 0x01, 0x18, 0x10, "200000" },
- {0x0e, 0x01, 0x18, 0x18, "None" },
-
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x0e, 0x01, 0x80, 0x00, "Upright" },
- {0x0e, 0x01, 0x80, 0x80, "Cocktail" },
-};
-
-STDDIPINFO(Hotshock)
-
-static struct BurnDIPInfo HunchbkgDIPList[]=
-{
- // Default Values
- {0x0c, 0xff, 0xff, 0x00, NULL },
- {0x0d, 0xff, 0xff, 0x00, NULL },
- {0x0e, 0xff, 0xff, 0x00, NULL },
-
- // Dip 1
-
- // Dip 2
-
- // Dip 3
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x0e, 0x01, 0x01, 0x00, "Upright" },
- {0x0e, 0x01, 0x01, 0x01, "Cocktail" },
-};
-
-STDDIPINFO(Hunchbkg)
-
-static struct BurnDIPInfo HunchbksDIPList[]=
-{
- // Default Values
- {0x11, 0xff, 0xff, 0x00, NULL },
- {0x12, 0xff, 0xff, 0x02, NULL },
- {0x13, 0xff, 0xff, 0x0e, NULL },
-
- // Dip 1
-
- // Dip 2
- {0 , 0xfe, 0 , 2 , "Lives" },
- {0x12, 0x01, 0x01, 0x00, "3" },
- {0x12, 0x01, 0x01, 0x01, "5" },
-
- {0 , 0xfe, 0 , 2 , "Coinage" },
- {0x12, 0x01, 0x02, 0x00, "A 2C/1P B 1C/3P" },
- {0x12, 0x01, 0x02, 0x02, "A 1C/1P B 1C/5P" },
-
- // Dip 3
- {0 , 0xfe, 0 , 4 , "Bonus Life" },
- {0x13, 0x01, 0x06, 0x06, "10000" },
- {0x13, 0x01, 0x06, 0x04, "20000" },
- {0x13, 0x01, 0x06, 0x02, "40000" },
- {0x13, 0x01, 0x06, 0x00, "80000" },
-
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x14, 0x01, 0x08, 0x08, "Upright" },
- {0x14, 0x01, 0x08, 0x00, "Cocktail" },
-};
-
-STDDIPINFO(Hunchbks)
-
-static struct BurnDIPInfo HustlerDIPList[]=
-{
- // Default Values
- {0x10, 0xff, 0xff, 0x00, NULL },
- {0x11, 0xff, 0xff, 0x02, NULL },
- {0x12, 0xff, 0xff, 0x0e, NULL },
-
- // Dip 1
-
- // Dip 2
- {0 , 0xfe, 0 , 2 , "Lives" },
- {0x11, 0x01, 0x01, 0x01, "1" },
- {0x11, 0x01, 0x01, 0x00, "2" },
-
- {0 , 0xfe, 0 , 2 , "Infinite Lives" },
- {0x11, 0x01, 0x02, 0x02, "Off" },
- {0x11, 0x01, 0x02, 0x00, "On" },
-
- // Dip 3
- {0 , 0xfe, 0 , 4 , "Coinage" },
- {0x12, 0x01, 0x06, 0x02, "3 Coins 1 Play" },
- {0x12, 0x01, 0x06, 0x04, "2 Coins 1 Play" },
- {0x12, 0x01, 0x06, 0x06, "1 Coin 1 Play" },
- {0x12, 0x01, 0x06, 0x00, "1 Coin 2 Plays" },
-
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x12, 0x01, 0x08, 0x08, "Upright" },
- {0x12, 0x01, 0x08, 0x00, "Cocktail" },
-};
-
-STDDIPINFO(Hustler)
-
-static struct BurnDIPInfo JumpbugDIPList[]=
-{
- // Default Values
- {0x0f, 0xff, 0xff, 0x00, NULL },
- {0x10, 0xff, 0xff, 0x00, NULL },
- {0x11, 0xff, 0xff, 0x01, NULL },
-
- // Dip 1
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x0f, 0x01, 0x20, 0x00, "Upright" },
- {0x0f, 0x01, 0x20, 0x20, "Cocktail" },
-
- // Dip 2
- {0 , 0xfe, 0 , 2 , "Difficulty" },
- {0x10, 0x01, 0x40, 0x40, "Easy" },
- {0x10, 0x01, 0x40, 0x00, "Hard" },
-
- // Dip 3
- {0 , 0xfe, 0 , 4 , "Lives" },
- {0x11, 0x01, 0x03, 0x01, "3" },
- {0x11, 0x01, 0x03, 0x02, "4" },
- {0x11, 0x01, 0x03, 0x03, "5" },
- {0x11, 0x01, 0x03, 0x00, "Infinite" },
-
- {0 , 0xfe, 0 , 4 , "Coinage" },
- {0x11, 0x01, 0x0c, 0x04, "A 2C/1P B 2C/1P" },
- {0x11, 0x01, 0x0c, 0x08, "A 2C/1P B 1C/3P" },
- {0x11, 0x01, 0x0c, 0x00, "A 1C/1P B 1C/1P" },
- {0x11, 0x01, 0x0c, 0x0c, "A 1C/1P B 1C/6P" },
-};
-
-STDDIPINFO(Jumpbug)
-
-static struct BurnDIPInfo KingballDIPList[]=
-{
- // Default Values
- {0x0c, 0xff, 0xff, 0x00, NULL },
- {0x0d, 0xff, 0xff, 0x40, NULL },
- {0x0e, 0xff, 0xff, 0x04, NULL },
- {0x0f, 0xff, 0xff, 0x02, NULL },
-
- // Dip 1
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x0c, 0x01, 0x20, 0x00, "Upright" },
- {0x0c, 0x01, 0x20, 0x20, "Cocktail" },
-
- // Dip 2
- {0 , 0xfe, 0 , 4 , "Coinage" },
- {0x0d, 0x01, 0xc0, 0xc0, "2 Coins 1 Play" },
- {0x0d, 0x01, 0xc0, 0x40, "1 Coin 1 Play" },
- {0x0d, 0x01, 0xc0, 0x80, "1 Coin 2 Plays" },
- {0x0d, 0x01, 0xc0, 0x00, "Freeplay" },
-
- // Dip 3
- {0 , 0xfe, 0 , 4 , "Bonus Life" },
- {0x0e, 0x01, 0x03, 0x00, "10000" },
- {0x0e, 0x01, 0x03, 0x01, "12000" },
- {0x0e, 0x01, 0x03, 0x02, "15000" },
- {0x0e, 0x01, 0x03, 0x03, "None" },
-
- {0 , 0xfe, 0 , 2 , "Lives" },
- {0x0e, 0x01, 0x04, 0x00, "2" },
- {0x0e, 0x01, 0x04, 0x04, "3" },
-
- // Fake dip
- {0 , 0xfe, 0 , 2 , "Service Mode" },
- {0x0f, 0x01, 0x01, 0x00, "Off" },
- {0x0f, 0x01, 0x01, 0x01, "On" },
-
- {0 , 0xfe, 0 , 2 , "Speech" },
- {0x0f, 0x01, 0x02, 0x00, "Off" },
- {0x0f, 0x01, 0x02, 0x02, "On" },
-};
-
-STDDIPINFO(Kingball)
-
-static struct BurnDIPInfo CkongmcDIPList[]=
-{
- // Default Values
- {0x0c, 0xff, 0xff, 0x00, NULL },
- {0x0d, 0xff, 0xff, 0x00, NULL },
- {0x0e, 0xff, 0xff, 0x0a, NULL },
-
- // Dip 1
-
- // Dip 2
-
- // Dip 3
- {0 , 0xfe, 0 , 4 , "Lives" },
- {0x0e, 0x01, 0x03, 0x00, "1" },
- {0x0e, 0x01, 0x03, 0x01, "2" },
- {0x0e, 0x01, 0x03, 0x02, "3" },
- {0x0e, 0x01, 0x03, 0x03, "4" },
-
- {0 , 0xfe, 0 , 2 , "Bonus Life" },
- {0x0e, 0x01, 0x08, 0x08, "500000" },
- {0x0e, 0x01, 0x08, 0x00, "750000" },
-};
-
-STDDIPINFO(Ckongmc)
-
-static struct BurnDIPInfo KongDIPList[]=
-{
- // Default Values
- {0x08, 0xff, 0xff, 0x00, NULL },
- {0x09, 0xff, 0xff, 0x00, NULL },
- {0x0a, 0xff, 0xff, 0x00, NULL },
-
- // Dip 1
- {0 , 0xfe, 0 , 2 , "Service Mode" },
- {0x08, 0x01, 0x20, 0x00, "Off" },
- {0x08, 0x01, 0x20, 0x20, "On" },
-
- {0 , 0xfe, 0 , 2 , "99 Men/Max Timer" },
- {0x08, 0x01, 0x40, 0x00, "Off" },
- {0x08, 0x01, 0x40, 0x40, "On" },
-
- // Dip 2
- {0 , 0xfe, 0 , 2 , "Lives" },
- {0x09, 0x01, 0x40, 0x00, "3" },
- {0x09, 0x01, 0x40, 0x40, "5" },
-
- {0 , 0xfe, 0 , 2 , "Coinage" },
- {0x09, 0x01, 0x80, 0x00, "1 Coin 1 Credit" },
- {0x09, 0x01, 0x80, 0x80, "2 Coins 1 Credit" },
-
- // Dip 3
- {0 , 0xfe, 0 , 4 , "Bonus Life" },
- {0x0a, 0x01, 0x03, 0x00, "10000" },
- {0x0a, 0x01, 0x03, 0x01, "20000" },
- {0x0a, 0x01, 0x03, 0x02, "30000" },
- {0x0a, 0x01, 0x03, 0x03, "None" },
-
- {0 , 0xfe, 0 , 2 , "Mode" },
- {0x0a, 0x01, 0x04, 0x04, "Tournament (Harder)" },
- {0x0a, 0x01, 0x04, 0x00, "Normal" },
-};
-
-STDDIPINFO(Kong)
-
-static struct BurnDIPInfo LadybuggDIPList[]=
-{
- // Default Values
- {0x0f, 0xff, 0xff, 0x00, NULL },
- {0x10, 0xff, 0xff, 0x00, NULL },
- {0x11, 0xff, 0xff, 0x01, NULL },
-
- // Dip 1
-
- // Dip 2
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x10, 0x01, 0x40, 0x00, "Upright" },
- {0x10, 0x01, 0x40, 0x40, "Cocktail" },
-
- {0 , 0xfe, 0 , 2 , "Coinage" },
- {0x10, 0x01, 0x80, 0x00, "A 1C/1P B 1C/5P" },
- {0x10, 0x01, 0x80, 0x80, "A 2C/1P B 1C/3P" },
-
- // Dip 3
- {0 , 0xfe, 0 , 4 , "Difficulty" },
- {0x11, 0x01, 0x03, 0x00, "Easiest" },
- {0x11, 0x01, 0x03, 0x01, "Easy" },
- {0x11, 0x01, 0x03, 0x02, "Hard" },
- {0x11, 0x01, 0x03, 0x03, "Hardest" },
-
- {0 , 0xfe, 0 , 2 , "Lives" },
- {0x11, 0x01, 0x04, 0x00, "3" },
- {0x11, 0x01, 0x04, 0x04, "4" },
-
- {0 , 0xfe, 0 , 2 , "Bonus Life" },
- {0x11, 0x01, 0x08, 0x00, "20000" },
- {0x11, 0x01, 0x08, 0x08, "40000" },
-};
-
-STDDIPINFO(Ladybugg)
-
-static struct BurnDIPInfo LeversDIPList[]=
-{
- // Default Values
- {0x0d, 0xff, 0xff, 0x00, NULL },
- {0x0e, 0xff, 0xff, 0x00, NULL },
- {0x0f, 0xff, 0xff, 0x00, NULL },
-
- // Dip 1
-
- // Dip 2
-
- // Dip 3
- {0 , 0xfe, 0 , 2 , "Free Play" },
- {0x0f, 0x01, 0x08, 0x00, "Off" },
- {0x0f, 0x01, 0x08, 0x08, "On" },
-};
-
-STDDIPINFO(Levers)
-
-static struct BurnDIPInfo LosttombDIPList[]=
-{
- // Default Values
- {0x0e, 0xff, 0xff, 0x00, NULL },
- {0x0f, 0xff, 0xff, 0x02, NULL },
- {0x10, 0xff, 0xff, 0x04, NULL },
-
- // Dip 1
-
- // Dip 2
- {0 , 0xfe, 0 , 4 , "Lives" },
- {0x0f, 0x01, 0x03, 0x02, "3" },
- {0x0f, 0x01, 0x03, 0x01, "5" },
- {0x0f, 0x01, 0x03, 0x00, "Free Play" },
- {0x0f, 0x01, 0x03, 0x03, "Invulnerability" },
-
- // Dip 3
- {0 , 0xfe, 0 , 4 , "Coinage" },
- {0x10, 0x01, 0x06, 0x04, "1 Coin 1 Play" },
- {0x10, 0x01, 0x06, 0x06, "A 1C/2P B 2C/1P" },
- {0x10, 0x01, 0x06, 0x02, "A 1C/3P B 3C/1P" },
- {0x10, 0x01, 0x06, 0x00, "A 1C/4P B 4C/1P" },
-};
-
-STDDIPINFO(Losttomb)
-
-static struct BurnDIPInfo LuctodayDIPList[]=
-{
- // Default Values
- {0x07, 0xff, 0xff, 0x00, NULL },
- {0x08, 0xff, 0xff, 0x00, NULL },
- {0x09, 0xff, 0xff, 0x00, NULL },
-
- // Dip 1
-
- // Dip 2
-
- // Dip 3
-};
-
-STDDIPINFO(Luctoday)
-
-static struct BurnDIPInfo MarsDIPList[]=
-{
- // Default Values
- {0x16, 0xff, 0xff, 0x00, NULL },
- {0x17, 0xff, 0xff, 0x03, NULL },
- {0x18, 0xff, 0xff, 0x06, NULL },
- {0x19, 0xff, 0xff, 0x00, NULL },
-
- // Dip 1
-
- // Dip 2
- {0 , 0xfe, 0 , 2 , "Coin A" },
- {0x17, 0x01, 0x02, 0x00, "2 Coins 1 Play" },
- {0x17, 0x01, 0x02, 0x02, "1 Coin 1 Play" },
-
- {0 , 0xfe, 0 , 2 , "Coin B" },
- {0x17, 0x01, 0x01, 0x01, "1 Coin 3 Plays" },
- {0x17, 0x01, 0x01, 0x00, "1 Coin 5 Plays" },
-
- // Dip 3
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x18, 0x01, 0x02, 0x02, "Upright" },
- {0x18, 0x01, 0x02, 0x00, "Cocktail" },
-
- {0 , 0xfe, 0 , 2 , "Lives" },
- {0x18, 0x01, 0x08, 0x00, "3" },
- {0x18, 0x01, 0x08, 0x08, "255" },
-};
-
-STDDIPINFO(Mars)
-
-static struct BurnDIPInfo MimonkeyDIPList[]=
-{
- // Default Values
- {0x11, 0xff, 0xff, 0x00, NULL },
- {0x12, 0xff, 0xff, 0x03, NULL },
- {0x13, 0xff, 0xff, 0xae, NULL },
-
- // Dip 1
-
- // Dip 2
- {0 , 0xfe, 0 , 4 , "Lives" },
- {0x12, 0x01, 0x03, 0x03, "3" },
- {0x12, 0x01, 0x03, 0x02, "4" },
- {0x12, 0x01, 0x03, 0x01, "5" },
- {0x12, 0x01, 0x03, 0x00, "6" },
-
- // Dip 3
- {0 , 0xfe, 0 , 4 , "Coinage" },
- {0x13, 0x01, 0x06, 0x00, "3 Coins 1 Play" },
- {0x13, 0x01, 0x06, 0x04, "2 Coins 1 Play" },
- {0x13, 0x01, 0x06, 0x06, "1 Coin 1 Play" },
- {0x13, 0x01, 0x06, 0x02, "1 Coin 2 Plays" },
-
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x13, 0x01, 0x08, 0x08, "Upright" },
- {0x13, 0x01, 0x08, 0x00, "Cocktail" },
-
- {0 , 0xfe, 0 , 2 , "Infinite Lives" },
- {0x13, 0x01, 0x20, 0x20, "Off" },
- {0x13, 0x01, 0x20, 0x00, "On" },
-};
-
-STDDIPINFO(Mimonkey)
-
-static struct BurnDIPInfo MimonscoDIPList[]=
-{
- // Default Values
- {0x11, 0xff, 0xff, 0x00, NULL },
- {0x12, 0xff, 0xff, 0x01, NULL },
- {0x13, 0xff, 0xff, 0xae, NULL },
-
- // Dip 1
-
- // Dip 2
- {0 , 0xfe, 0 , 4 , "Lives" },
- {0x12, 0x01, 0x03, 0x03, "1" },
- {0x12, 0x01, 0x03, 0x02, "2" },
- {0x12, 0x01, 0x03, 0x01, "3" },
- {0x12, 0x01, 0x03, 0x00, "4" },
-
- // Dip 3
- {0 , 0xfe, 0 , 4 , "Coinage" },
- {0x13, 0x01, 0x06, 0x00, "3 Coins 1 Play" },
- {0x13, 0x01, 0x06, 0x04, "2 Coins 1 Play" },
- {0x13, 0x01, 0x06, 0x06, "1 Coin 1 Play" },
- {0x13, 0x01, 0x06, 0x02, "1 Coin 2 Plays" },
-
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x13, 0x01, 0x08, 0x08, "Upright" },
- {0x13, 0x01, 0x08, 0x00, "Cocktail" },
-
- {0 , 0xfe, 0 , 2 , "Infinite Lives" },
- {0x13, 0x01, 0x20, 0x20, "Off" },
- {0x13, 0x01, 0x20, 0x00, "On" },
-};
-
-STDDIPINFO(Mimonsco)
-
-static struct BurnDIPInfo MinefldDIPList[]=
-{
- // Default Values
- {0x0e, 0xff, 0xff, 0x00, NULL },
- {0x0f, 0xff, 0xff, 0x02, NULL },
- {0x10, 0xff, 0xff, 0x00, NULL },
-
- // Dip 1
- {0 , 0xfe, 0 , 2 , "Starting Level" },
- {0x0e, 0x01, 0x02, 0x00, "1" },
- {0x0e, 0x01, 0x02, 0x02, "3" },
-
- // Dip 2
- {0 , 0xfe, 0 , 2 , "Lives" },
- {0x0f, 0x01, 0x01, 0x00, "3" },
- {0x0f, 0x01, 0x01, 0x01, "5" },
-
- {0 , 0xfe, 0 , 2 , "Demo Sounds" },
- {0x0f, 0x01, 0x02, 0x00, "Off" },
- {0x0f, 0x01, 0x02, 0x02, "On" },
-
- // Dip 3
- {0 , 0xfe, 0 , 2 , "Coinage" },
- {0x10, 0x01, 0x02, 0x00, "1 Coin 1 Play" },
- {0x10, 0x01, 0x02, 0x02, "A 1C/2P B 2C/1P" },
-
- {0 , 0xfe, 0 , 4 , "Difficulty" },
- {0x10, 0x01, 0x0c, 0x00, "Easy" },
- {0x10, 0x01, 0x0c, 0x04, "Medium" },
- {0x10, 0x01, 0x0c, 0x08, "Hard" },
- {0x10, 0x01, 0x0c, 0x0c, "Hardest" },
-};
-
-STDDIPINFO(Minefld)
-
-static struct BurnDIPInfo Moonal2DIPList[]=
-{
- // Default Values
- {0x0c, 0xff, 0xff, 0x00, NULL },
- {0x0d, 0xff, 0xff, 0x00, NULL },
- {0x0e, 0xff, 0xff, 0x00, NULL },
-
- // Dip 1
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x0c, 0x01, 0x20, 0x00, "Upright" },
- {0x0c, 0x01, 0x20, 0x20, "Cocktail" },
-
- {0 , 0xfe, 0 , 2 , "Service Mode" },
- {0x0c, 0x01, 0x40, 0x00, "Off" },
- {0x0c, 0x01, 0x40, 0x40, "On" },
-
- // Dip 2
- {0 , 0xfe, 0 , 4 , "Coinage" },
- {0x0d, 0x01, 0xc0, 0x40, "2 Coins 1 Play" },
- {0x0d, 0x01, 0xc0, 0x00, "1 Coin 1 Play" },
- {0x0d, 0x01, 0xc0, 0x80, "1 Coin 2 Plays" },
- {0x0d, 0x01, 0xc0, 0xc0, "Freeplay" },
-
- // Dip 3
- {0 , 0xfe, 0 , 4 , "Bonus Life" },
- {0x0e, 0x01, 0x03, 0x01, "4000" },
- {0x0e, 0x01, 0x03, 0x02, "5000" },
- {0x0e, 0x01, 0x03, 0x03, "7000" },
- {0x0e, 0x01, 0x03, 0x00, "None" },
-
- {0 , 0xfe, 0 , 2 , "Lives" },
- {0x0e, 0x01, 0x04, 0x00, "3" },
- {0x0e, 0x01, 0x04, 0x04, "5" },
-};
-
-STDDIPINFO(Moonal2)
-
-static struct BurnDIPInfo MooncrgxDIPList[]=
-{
- // Default Values
- {0x0b, 0xff, 0xff, 0x00, NULL },
- {0x0c, 0xff, 0xff, 0xc0, NULL },
- {0x0d, 0xff, 0xff, 0x01, NULL },
-
- // Dip 1
-
- // Dip 2
- {0 , 0xfe, 0 , 2 , "Coin A" },
- {0x0c, 0x01, 0x40, 0x00, "2 Coins 1 Play" },
- {0x0c, 0x01, 0x40, 0x40, "1 Coin 1 Play" },
-
- {0 , 0xfe, 0 , 2 , "Coin B" },
- {0x0c, 0x01, 0x80, 0x80, "1 Coin 3 Plays" },
- {0x0c, 0x01, 0x80, 0x00, "1 Coin 5 Plays" },
-
- // Dip 3
- {0 , 0xfe, 0 , 2 , "Bonus Life" },
- {0x0d, 0x01, 0x01, 0x01, "30000" },
- {0x0d, 0x01, 0x01, 0x00, "50000" },
-
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x0d, 0x01, 0x08, 0x00, "Upright" },
- {0x0d, 0x01, 0x08, 0x08, "Cocktail" },
-};
-
-STDDIPINFO(Mooncrgx)
-
-static struct BurnDIPInfo MooncrsaDIPList[]=
-{
- // Default Values
- {0x0b, 0xff, 0xff, 0x00, NULL },
- {0x0c, 0xff, 0xff, 0x80, NULL },
- {0x0d, 0xff, 0xff, 0x00, NULL },
-
- // Dip 1
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x0b, 0x01, 0x20, 0x00, "Upright" },
- {0x0b, 0x01, 0x20, 0x20, "Cocktail" },
-
- // Dip 2
- {0 , 0xfe, 0 , 2 , "Bonus Life" },
- {0x0c, 0x01, 0x40, 0x00, "30000" },
- {0x0c, 0x01, 0x40, 0x40, "50000" },
-
- {0 , 0xfe, 0 , 2 , "Language" },
- {0x0c, 0x01, 0x80, 0x80, "English" },
- {0x0c, 0x01, 0x80, 0x00, "Japanese" },
-
- // Dip 3
- {0 , 0xfe, 0 , 4 , "Coinage" },
- {0x0d, 0x01, 0x0c, 0x00, "1 Coin 1 Play" },
- {0x0d, 0x01, 0x0c, 0x04, "1 Coin 2 Plays" },
- {0x0d, 0x01, 0x0c, 0x08, "1 Coin 3 Plays" },
- {0x0d, 0x01, 0x0c, 0x0c, "Freeplay" },
-};
-
-STDDIPINFO(Mooncrsa)
-
-static struct BurnDIPInfo MooncrsgDIPList[]=
-{
- // Default Values
- {0x0b, 0xff, 0xff, 0x00, NULL },
- {0x0c, 0xff, 0xff, 0x00, NULL },
- {0x0d, 0xff, 0xff, 0x00, NULL },
-
- // Dip 1
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x0b, 0x01, 0x20, 0x00, "Upright" },
- {0x0b, 0x01, 0x20, 0x20, "Cocktail" },
-
- // Dip 2
- {0 , 0xfe, 0 , 2 , "Bonus Life" },
- {0x0c, 0x01, 0x40, 0x00, "30000" },
- {0x0c, 0x01, 0x40, 0x40, "50000" },
-
- // Dip 3
- {0 , 0xfe, 0 , 4 , "Coin A" },
- {0x0d, 0x01, 0x03, 0x03, "4 Coins 1 Play" },
- {0x0d, 0x01, 0x03, 0x02, "3 Coins 1 Play" },
- {0x0d, 0x01, 0x03, 0x01, "2 Coins 1 Play" },
- {0x0d, 0x01, 0x03, 0x00, "1 Coin 1 Play" },
-
- {0 , 0xfe, 0 , 4 , "Coin B" },
- {0x0d, 0x01, 0x0c, 0x00, "1 Coin 1 Play" },
- {0x0d, 0x01, 0x0c, 0x04, "1 Coin 2 Plays" },
- {0x0d, 0x01, 0x0c, 0x08, "1 Coin 3 Plays" },
- {0x0d, 0x01, 0x0c, 0x0c, "Freeplay" },
-};
-
-STDDIPINFO(Mooncrsg)
-
-static struct BurnDIPInfo MooncrstDIPList[]=
-{
- // Default Values
- {0x0b, 0xff, 0xff, 0x00, NULL },
- {0x0c, 0xff, 0xff, 0x80, NULL },
- {0x0d, 0xff, 0xff, 0x00, NULL },
-
- // Dip 1
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x0b, 0x01, 0x20, 0x00, "Upright" },
- {0x0b, 0x01, 0x20, 0x20, "Cocktail" },
-
- // Dip 2
- {0 , 0xfe, 0 , 2 , "Bonus Life" },
- {0x0c, 0x01, 0x40, 0x00, "30000" },
- {0x0c, 0x01, 0x40, 0x40, "50000" },
-
- {0 , 0xfe, 0 , 2 , "Language" },
- {0x0c, 0x01, 0x80, 0x80, "English" },
- {0x0c, 0x01, 0x80, 0x00, "Japanese" },
-
- // Dip 3
- {0 , 0xfe, 0 , 4 , "Coin A" },
- {0x0d, 0x01, 0x03, 0x03, "4 Coins 1 Play" },
- {0x0d, 0x01, 0x03, 0x02, "3 Coins 1 Play" },
- {0x0d, 0x01, 0x03, 0x01, "2 Coins 1 Play" },
- {0x0d, 0x01, 0x03, 0x00, "1 Coin 1 Play" },
-
- {0 , 0xfe, 0 , 4 , "Coin B" },
- {0x0d, 0x01, 0x0c, 0x00, "1 Coin 1 Play" },
- {0x0d, 0x01, 0x0c, 0x04, "1 Coin 2 Plays" },
- {0x0d, 0x01, 0x0c, 0x08, "1 Coin 3 Plays" },
- {0x0d, 0x01, 0x0c, 0x0c, "Freeplay" },
-};
-
-STDDIPINFO(Mooncrst)
-
-static struct BurnDIPInfo MooncregDIPList[]=
-{
- // Default Values
- {0x0b, 0xff, 0xff, 0x00, NULL },
- {0x0c, 0xff, 0xff, 0xc0, NULL },
- {0x0d, 0xff, 0xff, 0x00, NULL },
-
- // Dip 1
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x0b, 0x01, 0x20, 0x00, "Upright" },
- {0x0b, 0x01, 0x20, 0x20, "Cocktail" },
-
- // Dip 2
- {0 , 0xfe, 0 , 2 , "Difficulty" },
- {0x0c, 0x01, 0x40, 0x40, "Easy" },
- {0x0c, 0x01, 0x40, 0x00, "Hard" },
-
- {0 , 0xfe, 0 , 2 , "Player's Bullet Speed" },
- {0x0c, 0x01, 0x80, 0x00, "Slow" },
- {0x0c, 0x01, 0x80, 0x80, "Fast" },
-
- // Dip 3
- {0 , 0xfe, 0 , 13 , "Coinage" },
- {0x0d, 0x01, 0x0f, 0x00, "1C 1P, 1C 2P" },
- {0x0d, 0x01, 0x0f, 0x01, "2C 1P, 2C 3P" },
- {0x0d, 0x01, 0x0f, 0x02, "3C 1P, 3C 4P" },
- {0x0d, 0x01, 0x0f, 0x03, "4C 1P, 4C 5P" },
- {0x0d, 0x01, 0x0f, 0x04, "1C 1P, 1C 3P" },
- {0x0d, 0x01, 0x0f, 0x05, "2C 1P, 2C 5P" },
- {0x0d, 0x01, 0x0f, 0x06, "3C 1P, 3C 7P" },
- {0x0d, 0x01, 0x0f, 0x07, "4C 1P, 4C 9P" },
- {0x0d, 0x01, 0x0f, 0x08, "1C 1P, 1C 4P" },
- {0x0d, 0x01, 0x0f, 0x09, "2C 1P, 2C 7P" },
- {0x0d, 0x01, 0x0f, 0x0a, "3C 1P, 3C 10P" },
- {0x0d, 0x01, 0x0f, 0x0b, "4C 1P, 4C 13P" },
- {0x0d, 0x01, 0x0f, 0x0c, "Free Play" },
-};
-
-STDDIPINFO(Mooncreg)
-
-static struct BurnDIPInfo MooncrslDIPList[]=
-{
- // Default Values
- {0x0b, 0xff, 0xff, 0x00, NULL },
- {0x0c, 0xff, 0xff, 0xc0, NULL },
- {0x0d, 0xff, 0xff, 0x00, NULL },
-
- // Dip 1
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x0b, 0x01, 0x20, 0x00, "Upright" },
- {0x0b, 0x01, 0x20, 0x20, "Cocktail" },
-
- // Dip 2
- {0 , 0xfe, 0 , 2 , "Difficulty" },
- {0x0c, 0x01, 0x40, 0x40, "Easy" },
- {0x0c, 0x01, 0x40, 0x00, "Hard" },
-
- {0 , 0xfe, 0 , 2 , "Player's Bullet Speed" },
- {0x0c, 0x01, 0x80, 0x00, "Slow" },
- {0x0c, 0x01, 0x80, 0x80, "Fast" },
-
- // Dip 3
- {0 , 0xfe, 0 , 4 , "Coin A" },
- {0x0d, 0x01, 0x03, 0x03, "4 Coins 1 Play" },
- {0x0d, 0x01, 0x03, 0x02, "3 Coins 1 Play" },
- {0x0d, 0x01, 0x03, 0x01, "2 Coins 1 Play" },
- {0x0d, 0x01, 0x03, 0x00, "1 Coin 1 Play" },
-
- {0 , 0xfe, 0 , 4 , "Coin B" },
- {0x0d, 0x01, 0x0c, 0x00, "1 Coin 1 Play" },
- {0x0d, 0x01, 0x0c, 0x04, "1 Coin 2 Plays" },
- {0x0d, 0x01, 0x0c, 0x08, "1 Coin 3 Plays" },
- {0x0d, 0x01, 0x0c, 0x0c, "Freeplay" },
-};
-
-STDDIPINFO(Mooncrsl)
-
-static struct BurnDIPInfo MoonqsrDIPList[]=
-{
- // Default Values
- {0x0b, 0xff, 0xff, 0x00, NULL },
- {0x0c, 0xff, 0xff, 0x00, NULL },
- {0x0d, 0xff, 0xff, 0x00, NULL },
-
- // Dip 1
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x0b, 0x01, 0x20, 0x00, "Upright" },
- {0x0b, 0x01, 0x20, 0x20, "Cocktail" },
-
- // Dip 2
- {0 , 0xfe, 0 , 4 , "Difficulty" },
- {0x0c, 0x01, 0xc0, 0x00, "Easy" },
- {0x0c, 0x01, 0xc0, 0x40, "Medium" },
- {0x0c, 0x01, 0xc0, 0x80, "Hard" },
- {0x0c, 0x01, 0xc0, 0xc0, "Hardest" },
-
- // Dip 3
- {0 , 0xfe, 0 , 4 , "Coin A" },
- {0x0d, 0x01, 0x03, 0x03, "4 Coins 1 Play" },
- {0x0d, 0x01, 0x03, 0x02, "3 Coins 1 Play" },
- {0x0d, 0x01, 0x03, 0x01, "2 Coins 1 Play" },
- {0x0d, 0x01, 0x03, 0x00, "1 Coin 1 Play" },
-
- {0 , 0xfe, 0 , 4 , "Coin B" },
- {0x0d, 0x01, 0x0c, 0x00, "1 Coin 1 Play" },
- {0x0d, 0x01, 0x0c, 0x04, "1 Coin 2 Plays" },
- {0x0d, 0x01, 0x0c, 0x08, "1 Coin 3 Plays" },
- {0x0d, 0x01, 0x0c, 0x0c, "Freeplay" },
-};
-
-STDDIPINFO(Moonqsr)
-
-static struct BurnDIPInfo MoonwarDIPList[]=
-{
- // Default Values
- {0x0d, 0xff, 0xff, 0x00, NULL },
- {0x0e, 0xff, 0xff, 0x03, NULL },
- {0x0f, 0xff, 0xff, 0x0c, NULL },
-
- // Dip 1
-
- // Dip 2
- {0 , 0xfe, 0 , 4 , "Lives" },
- {0x0e, 0x01, 0x03, 0x03, "3" },
- {0x0e, 0x01, 0x03, 0x02, "4" },
- {0x0e, 0x01, 0x03, 0x01, "5" },
- {0x0e, 0x01, 0x03, 0x00, "Free Play" },
-
- // Dip 3
- {0 , 0xfe, 0 , 4 , "Coinage" },
- {0x0f, 0x01, 0x06, 0x04, "1 Coin 1 Play" },
- {0x0f, 0x01, 0x06, 0x06, "1 Coin 2 Plays" },
- {0x0f, 0x01, 0x06, 0x02, "1 Coin 3 Plays" },
- {0x0f, 0x01, 0x06, 0x00, "1 Coin 4 Plays" },
-
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x0f, 0x01, 0x08, 0x08, "Upright" },
- {0x0f, 0x01, 0x08, 0x00, "Cocktail" },
-};
-
-STDDIPINFO(Moonwar)
-
-static struct BurnDIPInfo MoonwaraDIPList[]=
-{
- // Default Values
- {0x0d, 0xff, 0xff, 0x00, NULL },
- {0x0e, 0xff, 0xff, 0x03, NULL },
- {0x0f, 0xff, 0xff, 0x0e, NULL },
-
- // Dip 1
-
- // Dip 2
- {0 , 0xfe, 0 , 4 , "Lives" },
- {0x0e, 0x01, 0x03, 0x03, "3" },
- {0x0e, 0x01, 0x03, 0x02, "4" },
- {0x0e, 0x01, 0x03, 0x01, "5" },
- {0x0e, 0x01, 0x03, 0x00, "Free Play" },
-
- // Dip 3
- {0 , 0xfe, 0 , 4 , "Coinage" },
- {0x0f, 0x01, 0x06, 0x06, "1 Coin 1 Play" },
- {0x0f, 0x01, 0x06, 0x04, "1 Coin 2 Plays" },
- {0x0f, 0x01, 0x06, 0x02, "1 Coin 3 Plays" },
- {0x0f, 0x01, 0x06, 0x00, "1 Coin 4 Plays" },
-
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x0f, 0x01, 0x08, 0x08, "Upright" },
- {0x0f, 0x01, 0x08, 0x00, "Cocktail" },
-};
-
-STDDIPINFO(Moonwara)
-
-static struct BurnDIPInfo MrkougarDIPList[]=
-{
- // Default Values
- {0x0c, 0xff, 0xff, 0x00, NULL },
- {0x0d, 0xff, 0xff, 0x03, NULL },
- {0x0e, 0xff, 0xff, 0x0e, NULL },
-
- // Dip 1
-
- // Dip 2
- {0 , 0xfe, 0 , 2 , "Coin A" },
- {0x0d, 0x01, 0x02, 0x00, "2 Coins 1 Play" },
- {0x0d, 0x01, 0x02, 0x02, "1 Coin 1 Play" },
-
- {0 , 0xfe, 0 , 2 , "Coin B" },
- {0x0d, 0x01, 0x01, 0x01, "1 Coin 3 Plays" },
- {0x0d, 0x01, 0x01, 0x00, "1 Coin 5 Plays" },
-
- // Dip 3
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x0e, 0x01, 0x02, 0x02, "Upright" },
- {0x0e, 0x01, 0x02, 0x00, "Cocktail" },
-
- {0 , 0xfe, 0 , 2 , "Lives" },
- {0x0e, 0x01, 0x04, 0x04, "3" },
- {0x0e, 0x01, 0x04, 0x00, "5" },
-
- {0 , 0xfe, 0 , 2 , "Difficulty" },
- {0x0e, 0x01, 0x08, 0x00, "Easy" },
- {0x0e, 0x01, 0x08, 0x08, "Hard" },
-};
-
-STDDIPINFO(Mrkougar)
-
-static struct BurnDIPInfo MshuttleDIPList[]=
-{
- // Default Values
- {0x0d, 0xff, 0xff, 0x00, NULL },
- {0x0e, 0xff, 0xff, 0x80, NULL },
- {0x0f, 0xff, 0xff, 0x00, NULL },
-
- // Dip 1
-
- // Dip 2
- {0 , 0xfe, 0 , 2 , "Service Mode" },
- {0x0e, 0x01, 0x40, 0x00, "Off" },
- {0x0e, 0x01, 0x40, 0x40, "On" },
-
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x0e, 0x01, 0x80, 0x80, "Upright" },
- {0x0e, 0x01, 0x80, 0x00, "Cocktail" },
-
- // Dip 3
- {0 , 0xfe, 0 , 4 , "Lives" },
- {0x0f, 0x01, 0x03, 0x00, "3" },
- {0x0f, 0x01, 0x03, 0x01, "4" },
- {0x0f, 0x01, 0x03, 0x02, "5" },
- {0x0f, 0x01, 0x03, 0x03, "6" },
-
- {0 , 0xfe, 0 , 2 , "Bonus Life" },
- {0x0f, 0x01, 0x04, 0x00, "20000" },
- {0x0f, 0x01, 0x04, 0x04, "30000" },
-
- {0 , 0xfe, 0 , 4 , "Coin A" },
- {0x0e, 0x01, 0x18, 0x18, "3 Coins 1 Play" },
- {0x0e, 0x01, 0x18, 0x10, "3 Coins 1 Play" },
- {0x0e, 0x01, 0x18, 0x08, "2 Coins 1 Play" },
- {0x0e, 0x01, 0x18, 0x00, "1 Coin 1 Play" },
-
- {0 , 0xfe, 0 , 4 , "Coin B" },
- {0x0e, 0x01, 0x60, 0x00, "1 Coin 1 Play" },
- {0x0e, 0x01, 0x60, 0x20, "1 Coin 2 Plays" },
- {0x0e, 0x01, 0x60, 0x40, "1 Coin 3 Plays" },
- {0x0e, 0x01, 0x60, 0x60, "1 Coin 4 Plays" },
-};
-
-STDDIPINFO(Mshuttle)
-
-static struct BurnDIPInfo Newsin7DIPList[]=
-{
- // Default Values
- {0x0f, 0xff, 0xff, 0x00, NULL },
- {0x10, 0xff, 0xff, 0x00, NULL },
- {0x11, 0xff, 0xff, 0x0c, NULL },
-
- // Dip 1
-
- // Dip 2
- {0 , 0xfe, 0 , 4 , "Coinage" },
- {0x10, 0x01, 0x03, 0x00, "A 1C/1P B 2C/1P" },
- {0x10, 0x01, 0x03, 0x02, "A 1C/3P B 3C/1P" },
- {0x10, 0x01, 0x03, 0x01, "A 1C/2P B 1C/1P" },
- {0x10, 0x01, 0x03, 0x03, "A 1C/4P B 4C/1P" },
-
- // Dip 3
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x11, 0x01, 0x02, 0x00, "Upright" },
- {0x11, 0x01, 0x02, 0x02, "Cocktail" },
-
- {0 , 0xfe, 0 , 2 , "Lives" },
- {0x11, 0x01, 0x08, 0x08, "3" },
- {0x11, 0x01, 0x08, 0x00, "5" },
-};
-
-STDDIPINFO(Newsin7)
-
-static struct BurnDIPInfo OmegabDIPList[]=
-{
- // Default Values
- {0x0b, 0xff, 0xff, 0x00, NULL },
- {0x0c, 0xff, 0xff, 0xc0, NULL },
- {0x0d, 0xff, 0xff, 0x01, NULL },
-
- // Dip 1
-
- // Dip 2
- {0 , 0xfe, 0 , 2 , "Coin A" },
- {0x0c, 0x01, 0x40, 0x00, "2 Coins 1 Play" },
- {0x0c, 0x01, 0x40, 0x40, "1 Coin 1 Play" },
-
- {0 , 0xfe, 0 , 2 , "Coin B" },
- {0x0c, 0x01, 0x80, 0x80, "1 Coin 3 Plays" },
- {0x0c, 0x01, 0x80, 0x00, "1 Coin 5 Plays" },
-
- // Dip 3
- {0 , 0xfe, 0 , 2 , "Bonus Life" },
- {0x0d, 0x01, 0x01, 0x00, "10000" },
- {0x0d, 0x01, 0x01, 0x01, "20000" },
-
- {0 , 0xfe, 0 , 2 , "Lives" },
- {0x0d, 0x01, 0x04, 0x00, "3" },
- {0x0d, 0x01, 0x04, 0x04, "5" },
-
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x0d, 0x01, 0x08, 0x00, "Upright" },
- {0x0d, 0x01, 0x08, 0x08, "Cocktail" },
-};
-
-STDDIPINFO(Omegab)
-
-static struct BurnDIPInfo OrbitronDIPList[]=
-{
- // Default Values
- {0x0f, 0xff, 0xff, 0x00, NULL },
- {0x10, 0xff, 0xff, 0x40, NULL },
- {0x11, 0xff, 0xff, 0x00, NULL },
-
- // Dip 1
-
- // Dip 2
- {0 , 0xfe, 0 , 2 , "Coinage" },
- {0x10, 0x01, 0x60, 0x00, "A 2C/1P B 1C/3P" },
- {0x10, 0x01, 0x60, 0x40, "A 1C/1P B 1C/6P" },
-
- // Dip 3
- {0 , 0xfe, 0 , 2 , "Lives" },
- {0x11, 0x01, 0x04, 0x04, "2" },
- {0x11, 0x01, 0x04, 0x00, "3" },
-
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x11, 0x01, 0x08, 0x00, "Upright" },
- {0x11, 0x01, 0x08, 0x08, "Cocktail" },
-};
-
-STDDIPINFO(Orbitron)
-
-static struct BurnDIPInfo Ozon1DIPList[]=
-{
- // Default Values
- {0x0b, 0xff, 0xff, 0x00, NULL },
- {0x0c, 0xff, 0xff, 0x02, NULL },
- {0x0d, 0xff, 0xff, 0x06, NULL },
-
- // Dip 1
-
- // Dip 2
- {0 , 0xfe, 0 , 4 , "Lives" },
- {0x0c, 0x01, 0x03, 0x03, "3" },
- {0x0c, 0x01, 0x03, 0x02, "4" },
- {0x0c, 0x01, 0x03, 0x01, "5" },
- {0x0c, 0x01, 0x03, 0x00, "6" },
-
- // Dip 3
- {0 , 0xfe, 0 , 4 , "Coinage" },
- {0x0d, 0x01, 0x06, 0x06, "A 1C/1P B 2C/1P" },
- {0x0d, 0x01, 0x06, 0x04, "A 1C/2P B 1C/1P" },
- {0x0d, 0x01, 0x06, 0x02, "A 1C/3P B 3C/1P" },
- {0x0d, 0x01, 0x06, 0x00, "A 1C/4P B 4C/1P" },
-};
-
-STDDIPINFO(Ozon1)
-
-static struct BurnDIPInfo PacmanblDIPList[]=
-{
- // Default Values
- {0x0d, 0xff, 0xff, 0x00, NULL },
- {0x0e, 0xff, 0xff, 0xc0, NULL },
- {0x0f, 0xff, 0xff, 0x00, NULL },
-
- // Dip 1
-
- // Dip 2
- {0 , 0xfe, 0 , 2 , "Coin A" },
- {0x0e, 0x01, 0x40, 0x00, "2 Coins 1 Play" },
- {0x0e, 0x01, 0x40, 0x40, "1 Coin 1 Play" },
-
- {0 , 0xfe, 0 , 2 , "Coin B" },
- {0x0e, 0x01, 0x80, 0x80, "1 Coin 3 Plays" },
- {0x0e, 0x01, 0x80, 0x00, "1 Coin 5 Plays" },
-
- // Dip 3
- {0 , 0xfe, 0 , 2 , "Bonus Life" },
- {0x0f, 0x01, 0x01, 0x00, "15000" },
- {0x0f, 0x01, 0x01, 0x01, "20000" },
-
- {0 , 0xfe, 0 , 2 , "Difficulty" },
- {0x0f, 0x01, 0x02, 0x00, "Easy" },
- {0x0f, 0x01, 0x02, 0x02, "Hard" },
-
- {0 , 0xfe, 0 , 2 , "Lives" },
- {0x0f, 0x01, 0x04, 0x00, "3" },
- {0x0f, 0x01, 0x04, 0x04, "5" },
-
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x0f, 0x01, 0x08, 0x00, "Upright" },
- {0x0f, 0x01, 0x08, 0x08, "Cocktail" },
-};
-
-STDDIPINFO(Pacmanbl)
-
-static struct BurnDIPInfo Phoenxp2DIPList[]=
-{
- // Default Values
- {0x0f, 0xff, 0xff, 0x00, NULL },
- {0x10, 0xff, 0xff, 0xc0, NULL },
- {0x11, 0xff, 0xff, 0x00, NULL },
-
- // Dip 1
-
- // Dip 2
- {0 , 0xfe, 0 , 2 , "Coin A" },
- {0x10, 0x01, 0x40, 0x00, "2 Coins 1 Play" },
- {0x10, 0x01, 0x40, 0x40, "1 Coin 1 Play" },
-
- {0 , 0xfe, 0 , 2 , "Coin B" },
- {0x10, 0x01, 0x80, 0x80, "1 Coin 3 Plays" },
- {0x10, 0x01, 0x80, 0x00, "1 Coin 5 Plays" },
-
- // Dip 3
- {0 , 0xfe, 0 , 2 , "Difficulty" },
- {0x11, 0x01, 0x02, 0x00, "Easy" },
- {0x11, 0x01, 0x02, 0x02, "Hard" },
-
- {0 , 0xfe, 0 , 2 , "Lives" },
- {0x11, 0x01, 0x04, 0x00, "3" },
- {0x11, 0x01, 0x04, 0x04, "5" },
-
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x11, 0x01, 0x08, 0x00, "Upright" },
- {0x11, 0x01, 0x08, 0x08, "Cocktail" },
-};
-
-STDDIPINFO(Phoenxp2)
-
-static struct BurnDIPInfo PiscesDIPList[]=
-{
- // Default Values
- {0x0b, 0xff, 0xff, 0x00, NULL },
- {0x0c, 0xff, 0xff, 0x00, NULL },
- {0x0d, 0xff, 0xff, 0x00, NULL },
-
- // Dip 1
-
- // Dip 2
- {0 , 0xfe, 0 , 2 , "Lives" },
- {0x0c, 0x01, 0x40, 0x00, "3" },
- {0x0c, 0x01, 0x40, 0x40, "4" },
-
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x0c, 0x01, 0x80, 0x00, "Upright" },
- {0x0c, 0x01, 0x80, 0x80, "Cocktail" },
-
- // Dip 3
- {0 , 0xfe, 0 , 2 , "Bonus Life" },
- {0x0d, 0x01, 0x01, 0x00, "10000" },
- {0x0d, 0x01, 0x01, 0x01, "20000" },
-
- {0 , 0xfe, 0 , 2 , "Coinage" },
- {0x0d, 0x01, 0x02, 0x02, "A 2C/1P B 1C/3P" },
- {0x0d, 0x01, 0x02, 0x00, "A 1C/1P B 1C/6P" },
-
- {0 , 0xfe, 0 , 2 , "Difficulty" },
- {0x0d, 0x01, 0x04, 0x00, "Easy" },
- {0x0d, 0x01, 0x04, 0x04, "Hard" },
-};
-
-STDDIPINFO(Pisces)
-
-static struct BurnDIPInfo PiscesbDIPList[]=
-{
- // Default Values
- {0x0b, 0xff, 0xff, 0x00, NULL },
- {0x0c, 0xff, 0xff, 0x00, NULL },
- {0x0d, 0xff, 0xff, 0x00, NULL },
-
- // Dip 1
-
- // Dip 2
- {0 , 0xfe, 0 , 2 , "Lives" },
- {0x0c, 0x01, 0x40, 0x00, "3" },
- {0x0c, 0x01, 0x40, 0x40, "4" },
-
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x0c, 0x01, 0x80, 0x00, "Upright" },
- {0x0c, 0x01, 0x80, 0x80, "Cocktail" },
-
- // Dip 3
- {0 , 0xfe, 0 , 2 , "Bonus Life" },
- {0x0d, 0x01, 0x01, 0x00, "10000" },
- {0x0d, 0x01, 0x01, 0x01, "20000" },
-
- {0 , 0xfe, 0 , 2 , "Coinage" },
- {0x0d, 0x01, 0x02, 0x02, "A 2C/1P B 1C/2P 2C/5P" },
- {0x0d, 0x01, 0x02, 0x00, "A 1C/1P B 1C/5P" },
-
- {0 , 0xfe, 0 , 2 , "Difficulty" },
- {0x0d, 0x01, 0x04, 0x00, "Easy" },
- {0x0d, 0x01, 0x04, 0x04, "Hard" },
-};
-
-STDDIPINFO(Piscesb)
-
-static struct BurnDIPInfo PorterDIPList[]=
-{
- // Default Values
- {0x0d, 0xff, 0xff, 0x00, NULL },
- {0x0e, 0xff, 0xff, 0x00, NULL },
- {0x0f, 0xff, 0xff, 0x00, NULL },
-
- // Dip 1
-
- // Dip 2
-
- // Dip 3
-};
-
-STDDIPINFO(Porter)
-
-static struct BurnDIPInfo RacknrolDIPList[]=
-{
- // Default Values
- {0x0a, 0xff, 0xff, 0x00, NULL },
- {0x0b, 0xff, 0xff, 0x00, NULL },
- {0x0c, 0xff, 0xff, 0x00, NULL },
-
- // Dip 1
-
- // Dip 2
-
- // Dip 3
-};
-
-STDDIPINFO(Racknrol)
-
-static struct BurnDIPInfo RedufoDIPList[]=
-{
- // Default Values
- {0x0c, 0xff, 0xff, 0x00, NULL },
- {0x0d, 0xff, 0xff, 0xc0, NULL },
- {0x0e, 0xff, 0xff, 0x00, NULL },
-
- // Dip 1
- {0 , 0xfe, 0 , 2 , "Service Mode" },
- {0x0c, 0x01, 0x40, 0x00, "Off" },
- {0x0c, 0x01, 0x40, 0x40, "On" },
-
- // Dip 2
- {0 , 0xfe, 0 , 2 , "Coin A" },
- {0x0d, 0x01, 0x40, 0x00, "2 Coins 1 Play" },
- {0x0d, 0x01, 0x40, 0x40, "1 Coin 1 Play" },
-
- {0 , 0xfe, 0 , 2 , "Coin B" },
- {0x0d, 0x01, 0x80, 0x80, "1 Coin 3 Plays" },
- {0x0d, 0x01, 0x80, 0x00, "1 Coin 5 Plays" },
-
- // Dip 3
- {0 , 0xfe, 0 , 2 , "Bonus Life" },
- {0x0e, 0x01, 0x01, 0x00, "7000" },
- {0x0e, 0x01, 0x01, 0x01, "None" },
-
- {0 , 0xfe, 0 , 2 , "Lives" },
- {0x0e, 0x01, 0x04, 0x00, "3" },
- {0x0e, 0x01, 0x04, 0x04, "5" },
-
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x0e, 0x01, 0x08, 0x00, "Upright" },
- {0x0e, 0x01, 0x08, 0x08, "Cocktail" },
-};
-
-STDDIPINFO(Redufo)
-
-static struct BurnDIPInfo RedufobDIPList[]=
-{
- // Default Values
- {0x0c, 0xff, 0xff, 0x00, NULL },
- {0x0d, 0xff, 0xff, 0x00, NULL },
- {0x0e, 0xff, 0xff, 0x01, NULL },
-
- // Dip 1
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x0c, 0x01, 0x20, 0x00, "Upright" },
- {0x0c, 0x01, 0x20, 0x20, "Cocktail" },
-
- {0 , 0xfe, 0 , 2 , "Service Mode" },
- {0x0c, 0x01, 0x40, 0x00, "Off" },
- {0x0c, 0x01, 0x40, 0x40, "On" },
-
- // Dip 2
- {0 , 0xfe, 0 , 4 , "Coinage" },
- {0x0d, 0x01, 0xc0, 0x40, "A 2C/1P B 1C/3P" },
- {0x0d, 0x01, 0xc0, 0x00, "A 1C/1P B 1C/6P" },
- {0x0d, 0x01, 0xc0, 0x80, "A 1C/2P B 1C/12P" },
- {0x0d, 0x01, 0xc0, 0xc0, "Freeplay" },
-
- // Dip 3
- {0 , 0xfe, 0 , 4 , "Bonus Life" },
- {0x0e, 0x01, 0x03, 0x01, "4000" },
- {0x0e, 0x01, 0x03, 0x02, "5000" },
- {0x0e, 0x01, 0x03, 0x03, "7000" },
- {0x0e, 0x01, 0x03, 0x00, "None" },
-
- {0 , 0xfe, 0 , 2 , "Lives" },
- {0x0e, 0x01, 0x04, 0x00, "3" },
- {0x0e, 0x01, 0x04, 0x04, "5" },
-};
-
-STDDIPINFO(Redufob)
-
-static struct BurnDIPInfo RescueDIPList[]=
-{
- // Default Values
- {0x0e, 0xff, 0xff, 0x00, NULL },
- {0x0f, 0xff, 0xff, 0x02, NULL },
- {0x10, 0xff, 0xff, 0x0c, NULL },
-
- // Dip 1
- {0 , 0xfe, 0 , 2 , "Starting Level" },
- {0x0e, 0x01, 0x02, 0x00, "1" },
- {0x0e, 0x01, 0x02, 0x02, "3" },
-
- // Dip 2
- {0 , 0xfe, 0 , 2 , "Lives" },
- {0x0f, 0x01, 0x01, 0x00, "3" },
- {0x0f, 0x01, 0x01, 0x01, "5" },
-
- {0 , 0xfe, 0 , 2 , "Demo Sounds" },
- {0x0f, 0x01, 0x02, 0x00, "Off" },
- {0x0f, 0x01, 0x02, 0x02, "On" },
-
- // Dip 3
- {0 , 0xfe, 0 , 4 , "Coinage" },
- {0x10, 0x01, 0x06, 0x04, "1 Coin 1 Play" },
- {0x10, 0x01, 0x06, 0x06, "A 1C/2P B 2C/1P" },
- {0x10, 0x01, 0x06, 0x02, "A 1C/3P B 3C/1P" },
- {0x10, 0x01, 0x06, 0x00, "A 1C/4P B 4C/1P" },
-
- {0 , 0xfe, 0 , 2 , "Difficulty" },
- {0x10, 0x01, 0x08, 0x08, "Easy" },
- {0x10, 0x01, 0x08, 0x00, "Hard" },
-};
-
-STDDIPINFO(Rescue)
-
-static struct BurnDIPInfo RockclimDIPList[]=
-{
- // Default Values
- {0x0d, 0xff, 0xff, 0x40, NULL },
- {0x0e, 0xff, 0xff, 0xc0, NULL },
- {0x0f, 0xff, 0xff, 0x00, NULL },
- {0x10, 0xff, 0xff, 0xff, NULL },
-
- // Dip 1
-
- // Dip 2
- {0 , 0xfe, 0 , 2 , "Bonus Life" },
- {0x0e, 0x01, 0x40, 0x00, "30000" },
- {0x0e, 0x01, 0x40, 0x40, "50000" },
-
- {0 , 0xfe, 0 , 2 , "Coin Slots" },
- {0x0e, 0x01, 0x80, 0x80, "1" },
- {0x0e, 0x01, 0x80, 0x00, "2" },
-
- // Dip 3
- {0 , 0xfe, 0 , 4 , "Lives" },
- {0x0f, 0x01, 0x03, 0x00, "3" },
- {0x0f, 0x01, 0x03, 0x01, "4" },
- {0x0f, 0x01, 0x03, 0x02, "5" },
- {0x0f, 0x01, 0x03, 0x03, "6" },
-
- // Dip 4
- {0 , 0xfe, 0 , 16 , "Coin A" },
- {0x10, 0x01, 0x0f, 0x00, "9 Coins 1 Play" },
- {0x10, 0x01, 0x0f, 0x01, "8 Coins 1 Play" },
- {0x10, 0x01, 0x0f, 0x02, "7 Coins 1 Play" },
- {0x10, 0x01, 0x0f, 0x03, "6 Coins 1 Play" },
- {0x10, 0x01, 0x0f, 0x04, "5 Coins 1 Play" },
- {0x10, 0x01, 0x0f, 0x05, "4 Coins 1 Play" },
- {0x10, 0x01, 0x0f, 0x06, "3 Coins 1 Play" },
- {0x10, 0x01, 0x0f, 0x07, "2 Coins 1 Play" },
- {0x10, 0x01, 0x0f, 0x0f, "1 Coin 1 Play" },
- {0x10, 0x01, 0x0f, 0x0e, "1 Coin 2 Plays" },
- {0x10, 0x01, 0x0f, 0x0d, "1 Coin 3 Plays" },
- {0x10, 0x01, 0x0f, 0x0c, "1 Coin 4 Plays" },
- {0x10, 0x01, 0x0f, 0x0b, "1 Coin 5 Plays" },
- {0x10, 0x01, 0x0f, 0x0a, "1 Coin 6 Plays" },
- {0x10, 0x01, 0x0f, 0x09, "1 Coin 7 Plays" },
- {0x10, 0x01, 0x0f, 0x08, "1 Coin 8 Plays" },
-
- {0 , 0xfe, 0 , 16 , "Coin B" },
- {0x10, 0x01, 0xf0, 0x00, "9 Coins 1 Play" },
- {0x10, 0x01, 0xf0, 0x10, "8 Coins 1 Play" },
- {0x10, 0x01, 0xf0, 0x20, "7 Coins 1 Play" },
- {0x10, 0x01, 0xf0, 0x30, "6 Coins 1 Play" },
- {0x10, 0x01, 0xf0, 0x40, "5 Coins 1 Play" },
- {0x10, 0x01, 0xf0, 0x50, "4 Coins 1 Play" },
- {0x10, 0x01, 0xf0, 0x60, "3 Coins 1 Play" },
- {0x10, 0x01, 0xf0, 0x70, "2 Coins 1 Play" },
- {0x10, 0x01, 0xf0, 0xf0, "1 Coin 1 Play" },
- {0x10, 0x01, 0xf0, 0xe0, "1 Coin 2 Plays" },
- {0x10, 0x01, 0xf0, 0xd0, "1 Coin 3 Plays" },
- {0x10, 0x01, 0xf0, 0xc0, "1 Coin 4 Plays" },
- {0x10, 0x01, 0xf0, 0xb0, "1 Coin 5 Plays" },
- {0x10, 0x01, 0xf0, 0xa0, "1 Coin 6 Plays" },
- {0x10, 0x01, 0xf0, 0x90, "1 Coin 7 Plays" },
- {0x10, 0x01, 0xf0, 0x80, "1 Coin 8 Plays" },
-};
-
-STDDIPINFO(Rockclim)
-
-static struct BurnDIPInfo ScobraDIPList[]=
-{
- // Default Values
- {0x12, 0xff, 0xff, 0x00, NULL },
- {0x13, 0xff, 0xff, 0x03, NULL },
- {0x14, 0xff, 0xff, 0x0c, NULL },
-
- // Dip 1
-
- // Dip 2
- {0 , 0xfe, 0 , 2 , "Allow Continue" },
- {0x13, 0x01, 0x01, 0x01, "Off" },
- {0x13, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2 , "Lives" },
- {0x13, 0x01, 0x02, 0x02, "3" },
- {0x13, 0x01, 0x02, 0x00, "4" },
-
- // Dip 3
- {0 , 0xfe, 0 , 4 , "Coinage" },
- {0x14, 0x01, 0x06, 0x02, "2 Coins 1 Play" },
- {0x14, 0x01, 0x06, 0x00, "4 Coins 3 Plays" },
- {0x14, 0x01, 0x06, 0x04, "1 Coin 1 Play" },
- {0x14, 0x01, 0x06, 0x06, "1 Coin 99 Plays" },
-
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x14, 0x01, 0x08, 0x08, "Upright" },
- {0x14, 0x01, 0x08, 0x00, "Cocktail" },
-};
-
-STDDIPINFO(Scobra)
-
-static struct BurnDIPInfo ScobrasDIPList[]=
-{
- // Default Values
- {0x12, 0xff, 0xff, 0x00, NULL },
- {0x13, 0xff, 0xff, 0x03, NULL },
- {0x14, 0xff, 0xff, 0x0c, NULL },
-
- // Dip 1
-
- // Dip 2
- {0 , 0xfe, 0 , 2 , "Allow Continue" },
- {0x13, 0x01, 0x01, 0x01, "Off" },
- {0x13, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2 , "Lives" },
- {0x13, 0x01, 0x02, 0x02, "3" },
- {0x13, 0x01, 0x02, 0x00, "5" },
-
- // Dip 3
- {0 , 0xfe, 0 , 4 , "Coinage" },
- {0x14, 0x01, 0x06, 0x02, "2 Coins 1 Play" },
- {0x14, 0x01, 0x06, 0x00, "4 Coins 3 Plays" },
- {0x14, 0x01, 0x06, 0x04, "1 Coin 1 Play" },
- {0x14, 0x01, 0x06, 0x06, "1 Coin 99 Plays" },
-
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x14, 0x01, 0x08, 0x08, "Upright" },
- {0x14, 0x01, 0x08, 0x00, "Cocktail" },
-};
-
-STDDIPINFO(Scobras)
-
-static struct BurnDIPInfo ScorpionDIPList[]=
-{
- // Default Values
- {0x11, 0xff, 0xff, 0x00, NULL },
- {0x12, 0xff, 0xff, 0x00, NULL },
- {0x13, 0xff, 0xff, 0x04, NULL },
-
- // Dip 1
-
- // Dip 2
- {0 , 0xfe, 0 , 4 , "Lives" },
- {0x12, 0x01, 0x04, 0x00, "3" },
- {0x12, 0x01, 0x04, 0x01, "4" },
- {0x12, 0x01, 0x04, 0x02, "5" },
- {0x12, 0x01, 0x04, 0x03, "255" },
-
- // Dip 3
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x13, 0x01, 0x04, 0x04, "Upright" },
- {0x13, 0x01, 0x04, 0x00, "Cocktail" },
-
- {0 , 0xfe, 0 , 2 , "Coinage" },
- {0x13, 0x01, 0x08, 0x00, "A 1C/1P B 1C/1P" },
- {0x13, 0x01, 0x08, 0x08, "A 1C/1P B 1C/3P" },
-
- {0 , 0xfe, 0 , 4 , "Difficulty" },
- {0x13, 0x01, 0xa0, 0x00, "Normal" },
- {0x13, 0x01, 0xa0, 0x20, "Medium" },
- {0x13, 0x01, 0xa0, 0x80, "Hard" },
- {0x13, 0x01, 0xa0, 0xa0, "Very Hard" },
-};
-
-STDDIPINFO(Scorpion)
-
-static struct BurnDIPInfo ScorpionmcDIPList[]=
-{
- // Default Values
- {0x0f, 0xff, 0xff, 0x00, NULL },
- {0x10, 0xff, 0xff, 0x40, NULL },
- {0x11, 0xff, 0xff, 0x04, NULL },
- {0x12, 0xff, 0xff, 0x02, NULL },
-
- // Dip 1
-
- // Dip 2
- {0 , 0xfe, 0 , 4 , "Difficulty" },
- {0x10, 0x01, 0xc0, 0x00, "Easy" },
- {0x10, 0x01, 0xc0, 0x40, "Normal" },
- {0x10, 0x01, 0xc0, 0x80, "Hard" },
- {0x10, 0x01, 0xc0, 0xc0, "Hardest" },
-
- // Dip 3
- {0 , 0xfe, 0 , 3 , "Lives" },
- {0x11, 0x01, 0x0c, 0x00, "2" },
- {0x11, 0x01, 0x0c, 0x04, "3" },
- {0x11, 0x01, 0x0c, 0x08, "4" },
-
- // Dip 4
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x12, 0x01, 0x01, 0x00, "Upright" },
- {0x12, 0x01, 0x01, 0x01, "Cocktail" },
-
- {0 , 0xfe, 0 , 4 , "Coinage" },
- {0x12, 0x01, 0x06, 0x00, "2 Coins 1 Play" },
- {0x12, 0x01, 0x06, 0x02, "1 Coin 1 Play" },
- {0x12, 0x01, 0x06, 0x04, "1 Coin 2 Plays" },
- {0x12, 0x01, 0x06, 0x06, "1 Coin 3 Plays" },
-};
-
-STDDIPINFO(Scorpionmc)
-
-static struct BurnDIPInfo AracnisDIPList[]=
-{
- // Default Values
- {0x0b, 0xff, 0xff, 0x20, NULL },
- {0x0c, 0xff, 0xff, 0xf8, NULL },
- {0x0d, 0xff, 0xff, 0xfd, NULL },
- {0x0e, 0xff, 0xff, 0xff, NULL },
-
- // Dip 1
-
- // Dip 2
-
- // Dip 3
- {0 , 0xfe, 0 , 4 , "Coinage" },
- {0x0d, 0x01, 0x03, 0x00, "2 Coins 1 Play" },
- {0x0d, 0x01, 0x03, 0x01, "1 Coin 1 Play" },
- {0x0d, 0x01, 0x03, 0x02, "1 Coin 2 Plays" },
- {0x0d, 0x01, 0x03, 0x03, "1 Coin 3 Plays" },
-
- // Dip 4
-};
-
-STDDIPINFO(Aracnis)
-
-static struct BurnDIPInfo Scramb2DIPList[]=
-{
- // Default Values
- {0x11, 0xff, 0xff, 0x00, NULL },
- {0x12, 0xff, 0xff, 0x03, NULL },
- {0x13, 0xff, 0xff, 0x0e, NULL },
-
- // Dip 1
-
- // Dip 2
- {0 , 0xfe, 0 , 4 , "Lives" },
- {0x12, 0x01, 0x03, 0x03, "3" },
- {0x12, 0x01, 0x03, 0x02, "4" },
- {0x12, 0x01, 0x03, 0x01, "5" },
- {0x12, 0x01, 0x03, 0x00, "255" },
-
- // Dip 3
- {0 , 0xfe, 0 , 4 , "Coinage" },
- {0x13, 0x01, 0x06, 0x06, "1 Coin 1 Play" },
- {0x13, 0x01, 0x06, 0x04, "1 Coin 2 Plays" },
- {0x13, 0x01, 0x06, 0x02, "1 Coin 3 Plays" },
- {0x13, 0x01, 0x06, 0x00, "1 Coin 4 Plays" },
-
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x13, 0x01, 0x08, 0x08, "Upright" },
- {0x13, 0x01, 0x08, 0x00, "Cocktail" },
-};
-
-STDDIPINFO(Scramb2)
-
-static struct BurnDIPInfo ScramblbDIPList[]=
-{
- // Default Values
- {0x10, 0xff, 0xff, 0x00, NULL },
- {0x11, 0xff, 0xff, 0x00, NULL },
- {0x12, 0xff, 0xff, 0x00, NULL },
-
- // Dip 1
-
- // Dip 2
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x11, 0x01, 0x40, 0x00, "Upright" },
- {0x11, 0x01, 0x40, 0x40, "Cocktail" },
-
- // Dip 3
- {0 , 0xfe, 0 , 4 , "Coinage" },
- {0x12, 0x01, 0x03, 0x00, "1 Coin 1 Play" },
- {0x12, 0x01, 0x03, 0x01, "1 Coin 2 Plays" },
- {0x12, 0x01, 0x03, 0x02, "1 Coin 3 Plays" },
- {0x12, 0x01, 0x03, 0x03, "1 Coin 4 Plays" },
-
- {0 , 0xfe, 0 , 4 , "Lives" },
- {0x12, 0x01, 0x0c, 0x00, "3" },
- {0x12, 0x01, 0x0c, 0x04, "4" },
- {0x12, 0x01, 0x0c, 0x08, "5" },
- {0x12, 0x01, 0x0c, 0x0c, "255" },
-};
-
-STDDIPINFO(Scramblb)
-
-static struct BurnDIPInfo ScrambleDIPList[]=
-{
- // Default Values
- {0x12, 0xff, 0xff, 0x00, NULL },
- {0x13, 0xff, 0xff, 0x03, NULL },
- {0x14, 0xff, 0xff, 0x0e, NULL },
-
- // Dip 1
-
- // Dip 2
- {0 , 0xfe, 0 , 4 , "Lives" },
- {0x13, 0x01, 0x03, 0x03, "3" },
- {0x13, 0x01, 0x03, 0x02, "4" },
- {0x13, 0x01, 0x03, 0x01, "5" },
- {0x13, 0x01, 0x03, 0x00, "255" },
-
- // Dip 3
- {0 , 0xfe, 0 , 4 , "Coinage" },
- {0x14, 0x01, 0x06, 0x06, "A 1C/1P B 2C/1P C 1C/1P"},
- {0x14, 0x01, 0x06, 0x04, "A 1C/2P B 1C/1P C 1C/2P"},
- {0x14, 0x01, 0x06, 0x02, "A 1C/3P B 3C/1P C 1C/3P"},
- {0x14, 0x01, 0x06, 0x00, "A 1C/4P B 4C/1P C 1C/4P"},
-
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x14, 0x01, 0x08, 0x08, "Upright" },
- {0x14, 0x01, 0x08, 0x00, "Cocktail" },
-};
-
-STDDIPINFO(Scramble)
-
-static struct BurnDIPInfo ScramblerDIPList[]=
-{
- // Default Values
- {0x0f, 0xff, 0xff, 0x00, NULL },
- {0x10, 0xff, 0xff, 0x00, NULL },
- {0x11, 0xff, 0xff, 0xf8, NULL },
-
- // Dip 1
-
- // Dip 2
- {0 , 0xfe, 0 , 4 , "Coinage" },
- {0x10, 0x01, 0xc0, 0x00, "A 1C/1P B 1C/6P" },
- {0x10, 0x01, 0xc0, 0x40, "A 2C/1P B 1C/3P" },
- {0x10, 0x01, 0xc0, 0x80, "A 1C/2P B 1C/6P" },
- {0x10, 0x01, 0xc0, 0xc0, "A 2C/2P B 1C/3P" },
-
- // Dip 3
- {0 , 0xfe, 0 , 4 , "Lives" },
- {0x11, 0x01, 0x03, 0x00, "3" },
- {0x11, 0x01, 0x03, 0x01, "4" },
- {0x11, 0x01, 0x03, 0x02, "5" },
- {0x11, 0x01, 0x03, 0x03, "255" },
-
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x11, 0x01, 0x04, 0x00, "Upright" },
- {0x11, 0x01, 0x04, 0x04, "Cocktail" },
-};
-
-STDDIPINFO(Scrambler)
-
-static struct BurnDIPInfo SfxDIPList[]=
-{
- // Default Values
- {0x12, 0xff, 0xff, 0x00, NULL },
- {0x13, 0xff, 0xff, 0x01, NULL },
- {0x14, 0xff, 0xff, 0x08, NULL },
-
- // Dip 1
-
- // Dip 2
- {0 , 0xfe, 0 , 4 , "Lives" },
- {0x13, 0x01, 0x03, 0x01, "3" },
- {0x13, 0x01, 0x03, 0x02, "4" },
- {0x13, 0x01, 0x03, 0x03, "5" },
- {0x13, 0x01, 0x03, 0x00, "Invulerability" },
-
- // Dip 3
- {0 , 0xfe, 0 , 4 , "Coinage" },
- {0x14, 0x01, 0x06, 0x06, "3 Coins 1 Play" },
- {0x14, 0x01, 0x06, 0x04, "2 Coins 1 Play" },
- {0x14, 0x01, 0x06, 0x00, "1 Coin 1 Play" },
- {0x14, 0x01, 0x06, 0x02, "1 Coin 2 Plays" },
-
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x14, 0x01, 0x08, 0x08, "Upright" },
- {0x14, 0x01, 0x08, 0x00, "Cocktail" },
-};
-
-STDDIPINFO(Sfx)
-
-static struct BurnDIPInfo SkybaseDIPList[]=
-{
- // Default Values
- {0x0c, 0xff, 0xff, 0x00, NULL },
- {0x0d, 0xff, 0xff, 0x00, NULL },
- {0x0e, 0xff, 0xff, 0x00, NULL },
-
- // Dip 1
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x0c, 0x01, 0x20, 0x00, "Upright" },
- {0x0c, 0x01, 0x20, 0x20, "Cocktail" },
-
- // Dip 2
- {0 , 0xfe, 0 , 4 , "Coinage" },
- {0x0d, 0x01, 0xc0, 0x80, "1 Coin 1 Play (2 to start)"},
- {0x0d, 0x01, 0xc0, 0x00, "1 Coin 1 Play" },
- {0x0d, 0x01, 0xc0, 0x40, "1 Coin 2 Plays" },
- {0x0d, 0x01, 0xc0, 0xc0, "Freeplay" },
-
- // Dip 3
- {0 , 0xfe, 0 , 4 , "Lives" },
- {0x0e, 0x01, 0x03, 0x00, "3" },
- {0x0e, 0x01, 0x03, 0x01, "4" },
- {0x0e, 0x01, 0x03, 0x02, "5" },
- {0x0e, 0x01, 0x03, 0x03, "Infinite" },
-
- {0 , 0xfe, 0 , 4 , "Bonus Life" },
- {0x0e, 0x01, 0x0c, 0x00, "10000" },
- {0x0e, 0x01, 0x0c, 0x40, "15000" },
- {0x0e, 0x01, 0x0c, 0x40, "20000" },
- {0x0e, 0x01, 0x0c, 0x40, "None" },
-};
-
-STDDIPINFO(Skybase)
-
-static struct BurnDIPInfo SmooncrsDIPList[]=
-{
- // Default Values
- {0x08, 0xff, 0xff, 0x00, NULL },
- {0x09, 0xff, 0xff, 0xc0, NULL },
- {0x10, 0xff, 0xff, 0x00, NULL },
-
- // Dip 1
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x08, 0x01, 0x20, 0x00, "Upright" },
- {0x08, 0x01, 0x20, 0x20, "Cocktail" },
-
- // Dip 2
- {0 , 0xfe, 0 , 2 , "Difficulty" },
- {0x09, 0x01, 0x40, 0x40, "Easy" },
- {0x09, 0x01, 0x40, 0x00, "Hard" },
-
- {0 , 0xfe, 0 , 2 , "Players Bullet Speed" },
- {0x09, 0x01, 0x80, 0x00, "Slow" },
- {0x09, 0x01, 0x80, 0x80, "Fast" },
-
- // Dip 3
- {0 , 0xfe, 0 , 4 , "Coin A" },
- {0x10, 0x01, 0x03, 0x03, "4 Coins 1 Play" },
- {0x10, 0x01, 0x03, 0x02, "3 Coins 1 Play" },
- {0x10, 0x01, 0x03, 0x01, "2 Coins 1 Play" },
- {0x10, 0x01, 0x03, 0x00, "1 Coin 1 Play" },
-
- {0 , 0xfe, 0 , 4 , "Coin B" },
- {0x10, 0x01, 0x0c, 0x00, "1 Coin 1 Play" },
- {0x10, 0x01, 0x0c, 0x04, "1 Coin 2 Plays" },
- {0x10, 0x01, 0x0c, 0x08, "1 Coin 3 Plays" },
- {0x10, 0x01, 0x0c, 0x0c, "Freeplay" },
-};
-
-STDDIPINFO(Smooncrs)
-
-static struct BurnDIPInfo MooncptcDIPList[]=
-{
- // Default Values
- {0x08, 0xff, 0xff, 0x00, NULL },
- {0x09, 0xff, 0xff, 0xc0, NULL },
- {0x10, 0xff, 0xff, 0x03, NULL },
-
- // Dip 1
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x08, 0x01, 0x20, 0x00, "Upright" },
- {0x08, 0x01, 0x20, 0x20, "Cocktail" },
-
- // Dip 2
- {0 , 0xfe, 0 , 2 , "Difficulty" },
- {0x09, 0x01, 0x40, 0x40, "Easy" },
- {0x09, 0x01, 0x40, 0x00, "Hard" },
-
- {0 , 0xfe, 0 , 2 , "Players Bullet Speed" },
- {0x09, 0x01, 0x80, 0x00, "Slow" },
- {0x09, 0x01, 0x80, 0x80, "Fast" },
-
- // Dip 3
- {0 , 0xfe, 0 , 4 , "Coin A" },
- {0x10, 0x01, 0x03, 0x00, "1 Coin 2 Plays" },
- {0x10, 0x01, 0x03, 0x01, "2 Coins 3 Plays" },
- {0x10, 0x01, 0x03, 0x02, "3 Coins 4 Plays" },
- {0x10, 0x01, 0x03, 0x03, "4 Coins 5 Plays" },
-
- {0 , 0xfe, 0 , 4 , "Coin B" },
- {0x10, 0x01, 0x0c, 0x00, "1 Coin 1 Play" },
- {0x10, 0x01, 0x0c, 0x04, "1 Coin 2 Plays" },
- {0x10, 0x01, 0x0c, 0x08, "1 Coin 3 Plays" },
- {0x10, 0x01, 0x0c, 0x0c, "Freeplay" },
-};
-
-STDDIPINFO(Mooncptc)
-
-static struct BurnDIPInfo SpacbattDIPList[]=
-{
- // Default Values
- {0x0c, 0xff, 0xff, 0x00, NULL },
- {0x0d, 0xff, 0xff, 0x00, NULL },
- {0x0e, 0xff, 0xff, 0x01, NULL },
-
- // Dip 1
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x0c, 0x01, 0x20, 0x00, "Upright" },
- {0x0c, 0x01, 0x20, 0x20, "Cocktail" },
-
- {0 , 0xfe, 0 , 2 , "Service Mode" },
- {0x0c, 0x01, 0x40, 0x00, "Off" },
- {0x0c, 0x01, 0x40, 0x40, "On" },
-
- // Dip 2
- {0 , 0xfe, 0 , 4 , "Coinage" },
- {0x0d, 0x01, 0xc0, 0x40, "A 2C/1P B 1C/3P" },
- {0x0d, 0x01, 0xc0, 0x00, "A 1C/1P B 1C/6P" },
- {0x0d, 0x01, 0xc0, 0x80, "A 1C/2P B 1C/6P" },
- {0x0d, 0x01, 0xc0, 0xc0, "Freeplay" },
-
- // Dip 3
- {0 , 0xfe, 0 , 4 , "Bonus Life" },
- {0x0e, 0x01, 0x03, 0x01, "4000" },
- {0x0e, 0x01, 0x03, 0x02, "5000" },
- {0x0e, 0x01, 0x03, 0x03, "7000" },
- {0x0e, 0x01, 0x03, 0x00, "None" },
-
- {0 , 0xfe, 0 , 2 , "Lives" },
- {0x0e, 0x01, 0x04, 0x00, "3" },
- {0x0e, 0x01, 0x04, 0x04, "5" },
-};
-
-STDDIPINFO(Spacbatt)
-
-static struct BurnDIPInfo SpdcoinDIPList[]=
-{
- // Default Values
- {0x07, 0xff, 0xff, 0x00, NULL },
- {0x08, 0xff, 0xff, 0x03, NULL },
- {0x09, 0xff, 0xff, 0x06, NULL },
-
- // Dip 1
-
- // Dip 2
- {0 , 0xfe, 0 , 2 , "Freeze" },
- {0x08, 0x01, 0x01, 0x01, "Off" },
- {0x08, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2 , "Free Play" },
- {0x08, 0x01, 0x02, 0x02, "Off" },
- {0x08, 0x01, 0x02, 0x00, "On" },
-
- // Dip 3
- {0 , 0xfe, 0 , 2 , "Difficulty" },
- {0x09, 0x01, 0x04, 0x04, "Easy" },
- {0x09, 0x01, 0x04, 0x00, "Hard" },
-
- {0 , 0xfe, 0 , 2 , "Lives" },
- {0x09, 0x01, 0x08, 0x00, "3" },
- {0x09, 0x01, 0x08, 0x08, "5" },
-};
-
-STDDIPINFO(Spdcoin)
-
-static struct BurnDIPInfo StratgyxDIPList[] =
-{
- // Default Values
- {0x14, 0xff, 0xff, 0x00, NULL },
- {0x15, 0xff, 0xff, 0x03, NULL },
- {0x16, 0xff, 0xff, 0x08, NULL },
-
- // Dip 1
-
- // Dip 2
- {0 , 0xfe, 0 , 4 , "Lives" },
- {0x15, 0x01, 0x03, 0x03, "3" },
- {0x15, 0x01, 0x03, 0x02, "4" },
- {0x15, 0x01, 0x03, 0x01, "5" },
- {0x15, 0x01, 0x03, 0x00, "255" },
-
- // Dip 3
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x16, 0x01, 0x08, 0x08, "Upright" },
- {0x16, 0x01, 0x08, 0x00, "Cocktail" },
-};
-
-STDDIPINFO(Stratgyx)
-
-static struct BurnDIPInfo StreakngDIPList[]=
-{
- // Default Values
- {0x0c, 0xff, 0xff, 0x00, NULL },
- {0x0d, 0xff, 0xff, 0x40, NULL },
- {0x0e, 0xff, 0xff, 0x06, NULL },
-
- // Dip 1
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x0c, 0x01, 0x20, 0x00, "Upright" },
- {0x0c, 0x01, 0x20, 0x20, "Cocktail" },
-
- // Dip 2
- {0 , 0xfe, 0 , 4 , "Bonus Life" },
- {0x0d, 0x01, 0xc0, 0x40, "10000" },
- {0x0d, 0x01, 0xc0, 0x81, "15000" },
- {0x0d, 0x01, 0xc0, 0xc0, "20000" },
- {0x0d, 0x01, 0xc0, 0x00, "None" },
-
- // Dip 3
- {0 , 0xfe, 0 , 4 , "Coinage" },
- {0x0e, 0x01, 0x03, 0x00, "2 Coins 1 Play" },
- {0x0e, 0x01, 0x03, 0x02, "1 Coin 1 Play" },
- {0x0e, 0x01, 0x03, 0x01, "1 Coin 2 Plays" },
- {0x0e, 0x01, 0x03, 0x03, "Freeplay" },
-
- {0 , 0xfe, 0 , 4 , "Lives" },
- {0x0e, 0x01, 0x0c, 0x0c, "1" },
- {0x0e, 0x01, 0x0c, 0x08, "2" },
- {0x0e, 0x01, 0x0c, 0x04, "3" },
- {0x0e, 0x01, 0x0c, 0x00, "5" },
-};
-
-STDDIPINFO(Streakng)
-
-static struct BurnDIPInfo StrfbombDIPList[]=
-{
- // Default Values
- {0x12, 0xff, 0xff, 0x00, NULL },
- {0x13, 0xff, 0xff, 0x03, NULL },
- {0x14, 0xff, 0xff, 0x0e, NULL },
-
- // Dip 1
-
- // Dip 2
- {0 , 0xfe, 0 , 4 , "Lives" },
- {0x13, 0x01, 0x03, 0x03, "3" },
- {0x13, 0x01, 0x03, 0x02, "4" },
- {0x13, 0x01, 0x03, 0x01, "5" },
- {0x13, 0x01, 0x03, 0x00, "255" },
-
- // Dip 3
- {0 , 0xfe, 0 , 4 , "Coinage" },
- {0x14, 0x01, 0x06, 0x06, "A 1C/2P B 4C/1P C 1C/2P"},
- {0x14, 0x01, 0x06, 0x04, "A 1C/3P B 2C/1P C 1C/3P"},
- {0x14, 0x01, 0x06, 0x02, "A 1C/4P B 3C/1P C 1C/4P"},
- {0x14, 0x01, 0x06, 0x00, "A 1C/5P B 1C/1P C 1C/5P"},
-
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x14, 0x01, 0x08, 0x08, "Upright" },
- {0x14, 0x01, 0x08, 0x00, "Cocktail" },
-};
-
-STDDIPINFO(Strfbomb)
-
-static struct BurnDIPInfo SuperbonDIPList[]=
-{
- // Default Values
- {0x0b, 0xff, 0xff, 0x00, NULL },
- {0x0c, 0xff, 0xff, 0x02, NULL },
- {0x0d, 0xff, 0xff, 0x04, NULL },
-
- // Dip 1
-
- // Dip 2
- {0 , 0xfe, 0 , 4 , "Lives" },
- {0x0c, 0x01, 0x03, 0x02, "3" },
- {0x0c, 0x01, 0x03, 0x01, "5" },
- {0x0c, 0x01, 0x03, 0x00, "Free Play" },
- {0x0c, 0x01, 0x03, 0x03, "Invulnerability" },
-
- // Dip 3
- {0 , 0xfe, 0 , 4 , "Coinage" },
- {0x0d, 0x01, 0x06, 0x04, "1 Coin 1 Play" },
- {0x0d, 0x01, 0x06, 0x06, "A 1C/2P B 2C/1P" },
- {0x0d, 0x01, 0x06, 0x02, "A 1C/3P B 3C/1P" },
- {0x0d, 0x01, 0x06, 0x00, "A 1C/4P B 4C/1P" },
-};
-
-STDDIPINFO(Superbon)
-
-static struct BurnDIPInfo SupergDIPList[]=
-{
- // Default Values
- {0x0c, 0xff, 0xff, 0x00, NULL },
- {0x0d, 0xff, 0xff, 0x00, NULL },
- {0x0e, 0xff, 0xff, 0x01, NULL },
-
- // Dip 1
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x0c, 0x01, 0x20, 0x00, "Upright" },
- {0x0c, 0x01, 0x20, 0x20, "Cocktail" },
-
- {0 , 0xfe, 0 , 2 , "Service Mode" },
- {0x0c, 0x01, 0x40, 0x00, "Off" },
- {0x0c, 0x01, 0x40, 0x40, "On" },
-
- // Dip 2
- {0 , 0xfe, 0 , 4 , "Coinage" },
- {0x0d, 0x01, 0xc0, 0x40, "2 Coins 1 Play" },
- {0x0d, 0x01, 0xc0, 0x00, "1 Coin 1 Play" },
- {0x0d, 0x01, 0xc0, 0x80, "1 Coin 2 Plays" },
- {0x0d, 0x01, 0xc0, 0xc0, "Freeplay" },
-
- // Dip 3
- {0 , 0xfe, 0 , 4 , "Bonus Life" },
- {0x0e, 0x01, 0x03, 0x01, "4000" },
- {0x0e, 0x01, 0x03, 0x02, "5000" },
- {0x0e, 0x01, 0x03, 0x03, "7000" },
- {0x0e, 0x01, 0x03, 0x00, "None" },
-
- {0 , 0xfe, 0 , 2 , "Lives" },
- {0x0e, 0x01, 0x04, 0x00, "3" },
- {0x0e, 0x01, 0x04, 0x04, "5" },
-};
-
-STDDIPINFO(Superg)
-
-static struct BurnDIPInfo SwarmDIPList[]=
-{
- // Default Values
- {0x0c, 0xff, 0xff, 0x00, NULL },
- {0x0d, 0xff, 0xff, 0x00, NULL },
- {0x0e, 0xff, 0xff, 0x00, NULL },
-
- // Dip 1
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x0c, 0x01, 0x20, 0x00, "Upright" },
- {0x0c, 0x01, 0x20, 0x20, "Cocktail" },
-
- {0 , 0xfe, 0 , 2 , "Service Mode" },
- {0x0c, 0x01, 0x40, 0x00, "Off" },
- {0x0c, 0x01, 0x40, 0x40, "On" },
-
- // Dip 2
- {0 , 0xfe, 0 , 4 , "Coinage" },
- {0x0d, 0x01, 0xc0, 0x40, "2 Coins 1 Play" },
- {0x0d, 0x01, 0xc0, 0x00, "1 Coin 1 Play" },
- {0x0d, 0x01, 0xc0, 0x80, "1 Coin 2 Plays" },
- {0x0d, 0x01, 0xc0, 0xc0, "Freeplay" },
-
- // Dip 3
- {0 , 0xfe, 0 , 4 , "Bonus Life" },
- {0x0e, 0x01, 0x03, 0x01, "10000" },
- {0x0e, 0x01, 0x03, 0x02, "20000" },
- {0x0e, 0x01, 0x03, 0x03, "40000" },
- {0x0e, 0x01, 0x03, 0x00, "None" },
-
- {0 , 0xfe, 0 , 2 , "Lives" },
- {0x0e, 0x01, 0x04, 0x00, "3" },
- {0x0e, 0x01, 0x04, 0x04, "4" },
-
- {0 , 0xfe, 0 , 2 , "Difficulty" },
- {0x0e, 0x01, 0x08, 0x00, "Easy" },
- {0x0e, 0x01, 0x08, 0x08, "Hard" },
-};
-
-STDDIPINFO(Swarm)
-
-static struct BurnDIPInfo TazzmangDIPList[]=
-{
- // Default Values
- {0x0f, 0xff, 0xff, 0x00, NULL },
- {0x10, 0xff, 0xff, 0x00, NULL },
- {0x11, 0xff, 0xff, 0x04, NULL },
-
- // Dip 1
-
- // Dip 2
-
- // Dip 3
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x11, 0x01, 0x01, 0x00, "Upright" },
- {0x11, 0x01, 0x01, 0x01, "Cocktail" },
-
- {0 , 0xfe, 0 , 4 , "Coinage" },
- {0x11, 0x01, 0x06, 0x00, "A 4C/1P B 1C/4P" },
- {0x11, 0x01, 0x06, 0x02, "A 3C/1P B 1C/3P" },
- {0x11, 0x01, 0x06, 0x06, "A 2C/1P B 1C/2P" },
- {0x11, 0x01, 0x06, 0x04, "A 1C/1P B 1C/1P" },
-};
-
-STDDIPINFO(Tazzmang)
-
-static struct BurnDIPInfo TheendDIPList[]=
-{
- // Default Values
- {0x0e, 0xff, 0xff, 0x00, NULL },
- {0x0f, 0xff, 0xff, 0x03, NULL },
- {0x10, 0xff, 0xff, 0x0e, NULL },
-
- // Dip 1
-
- // Dip 2
- {0 , 0xfe, 0 , 4 , "Lives" },
- {0x0f, 0x01, 0x03, 0x03, "3" },
- {0x0f, 0x01, 0x03, 0x02, "4" },
- {0x0f, 0x01, 0x03, 0x01, "5" },
- {0x0f, 0x01, 0x03, 0x00, "256" },
-
- // Dip 3
- {0 , 0xfe, 0 , 4 , "Coinage" },
- {0x10, 0x01, 0x06, 0x02, "3 Coins 1 Play" },
- {0x10, 0x01, 0x06, 0x04, "2 Coins 1 Play" },
- {0x10, 0x01, 0x06, 0x06, "1 Coin 1 Play" },
- {0x10, 0x01, 0x06, 0x00, "1 Coin 2 Plays" },
-
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x10, 0x01, 0x08, 0x08, "Upright" },
- {0x10, 0x01, 0x08, 0x00, "Cocktail" },
-};
-
-STDDIPINFO(Theend)
-
-static struct BurnDIPInfo ThepitmDIPList[]=
-{
- // Default Values
- {0x0f, 0xff, 0xff, 0x00, NULL },
- {0x10, 0xff, 0xff, 0x00, NULL },
- {0x11, 0xff, 0xff, 0x00, NULL },
-
- // Dip 1
-
- // Dip 2
-
- // Dip 3
- {0 , 0xfe, 0 , 2 , "Flip Screen" },
- {0x0c, 0x01, 0x04, 0x00, "Off" },
- {0x0c, 0x01, 0x04, 0x04, "On" },
-
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x11, 0x01, 0x08, 0x00, "Upright" },
- {0x11, 0x01, 0x08, 0x08, "Cocktail" },
-};
-
-STDDIPINFO(Thepitm)
-
-static struct BurnDIPInfo TimefgtrDIPList[]=
-{
- // Default Values
- {0x09, 0xff, 0xff, 0x40, NULL },
- {0x0a, 0xff, 0xff, 0x00, NULL },
- {0x0b, 0xff, 0xff, 0x03, NULL },
-
- // Dip 1
- {0 , 0xfe, 0 , 2 , "255 Lives" },
- {0x09, 0x01, 0x20, 0x00, "Off" },
- {0x09, 0x01, 0x20, 0x20, "On" },
-
- {0 , 0xfe, 0 , 2 , "Extended Bonus Life" },
- {0x09, 0x01, 0x40, 0x00, "Off" },
- {0x09, 0x01, 0x40, 0x40, "On" },
-
- // Dip 2
- {0 , 0xfe, 0 , 2 , "Coinage" },
- {0x0a, 0x01, 0x40, 0x00, "1 Coin 1 Play" },
- {0x0a, 0x01, 0x40, 0x40, "2 Coins 1 Play" },
-
- {0 , 0xfe, 0 , 2 , "Lives" },
- {0x0a, 0x01, 0x80, 0x00, "3" },
- {0x0a, 0x01, 0x80, 0x80, "5" },
-
- // Dip 3
- {0 , 0xfe, 0 , 4 , "Bonus Life" },
- {0x0b, 0x01, 0x0c, 0x00, "10000 50000" },
- {0x0b, 0x01, 0x0c, 0x04, "20000 50000" },
- {0x0b, 0x01, 0x0c, 0x08, "10000 60000" },
- {0x0b, 0x01, 0x0c, 0x0c, "20000 60000" },
-};
-
-STDDIPINFO(Timefgtr)
-
-static struct BurnDIPInfo TriplepDIPList[]=
-{
- // Default Values
- {0x10, 0xff, 0xff, 0x00, NULL },
- {0x11, 0xff, 0xff, 0x03, NULL },
- {0x12, 0xff, 0xff, 0xae, NULL },
-
- // Dip 1
-
- // Dip 2
- {0 , 0xfe, 0 , 4 , "Lives" },
- {0x11, 0x01, 0x03, 0x03, "3" },
- {0x11, 0x01, 0x03, 0x02, "4" },
- {0x11, 0x01, 0x03, 0x01, "5" },
- {0x11, 0x01, 0x03, 0x00, "256" },
-
- // Dip 3
- {0 , 0xfe, 0 , 4 , "Coinage" },
- {0x12, 0x01, 0x06, 0x04, "A 1C/2P B 1C/1P C 1C/2C"},
- {0x12, 0x01, 0x06, 0x02, "A 1C/3P B 3C/1P C 1C/3C"},
- {0x12, 0x01, 0x06, 0x06, "A 1C/1P B 2C/1P C 1C/1C"},
- {0x12, 0x01, 0x06, 0x00, "A 1C/4P B 4C/1P C 1C/4C"},
-
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x12, 0x01, 0x08, 0x08, "Upright" },
- {0x12, 0x01, 0x08, 0x00, "Cocktail" },
-
- {0 , 0xfe, 0 , 2 , "Service Mode" },
- {0x12, 0x01, 0x20, 0x20, "Off" },
- {0x12, 0x01, 0x20, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2 , "Rack Test" },
- {0x12, 0x01, 0x80, 0x80, "Off" },
- {0x12, 0x01, 0x80, 0x00, "On" },
-};
-
-STDDIPINFO(Triplep)
-
-static struct BurnDIPInfo TurpinDIPList[]=
-{
- // Default Values
- {0x10, 0xff, 0xff, 0x00, NULL },
- {0x11, 0xff, 0xff, 0x03, NULL },
- {0x12, 0xff, 0xff, 0x0e, NULL },
-
- // Dip 1
-
- // Dip 2
- {0 , 0xfe, 0 , 4 , "Lives" },
- {0x11, 0x01, 0x03, 0x03, "3" },
- {0x11, 0x01, 0x03, 0x02, "5" },
- {0x11, 0x01, 0x03, 0x01, "7" },
- {0x11, 0x01, 0x03, 0x00, "126" },
-
- // Dip 3
- {0 , 0xfe, 0 , 4 , "Coinage" },
- {0x12, 0x01, 0x06, 0x00, "4 Coins 1 Play" },
- {0x12, 0x01, 0x06, 0x04, "2 Coins 1 Play" },
- {0x12, 0x01, 0x06, 0x06, "1 Coin 1 Play" },
- {0x12, 0x01, 0x06, 0x02, "1 Coin 2 Plays" },
-
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x12, 0x01, 0x08, 0x08, "Upright" },
- {0x12, 0x01, 0x08, 0x00, "Cocktail" },
-};
-
-STDDIPINFO(Turpin)
-
-static struct BurnDIPInfo TurtlesDIPList[]=
-{
- // Default Values
- {0x10, 0xff, 0xff, 0x00, NULL },
- {0x11, 0xff, 0xff, 0x03, NULL },
- {0x12, 0xff, 0xff, 0x0e, NULL },
-
- // Dip 1
-
- // Dip 2
- {0 , 0xfe, 0 , 4 , "Lives" },
- {0x11, 0x01, 0x03, 0x03, "3" },
- {0x11, 0x01, 0x03, 0x02, "4" },
- {0x11, 0x01, 0x03, 0x01, "5" },
- {0x11, 0x01, 0x03, 0x00, "126" },
-
- // Dip 3
- {0 , 0xfe, 0 , 4 , "Coinage" },
- {0x12, 0x01, 0x06, 0x06, "A 1C/1P B 2C/1P C 1C/1P"},
- {0x12, 0x01, 0x06, 0x04, "A 1C/2P B 1C/1P C 1C/2P"},
- {0x12, 0x01, 0x06, 0x02, "A 1C/3P B 3C/1P C 1C/3P"},
- {0x12, 0x01, 0x06, 0x00, "A 1C/4P B 4C/1P C 1C/4P"},
-
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x12, 0x01, 0x08, 0x08, "Upright" },
- {0x12, 0x01, 0x08, 0x00, "Cocktail" },
-};
-
-STDDIPINFO(Turtles)
-
-static struct BurnDIPInfo VpoolDIPList[]=
-{
- // Default Values
- {0x0c, 0xff, 0xff, 0x20, NULL },
- {0x0d, 0xff, 0xff, 0xe0, NULL },
- {0x0e, 0xff, 0xff, 0xff, NULL },
-
- // Dip 1
- {0 , 0xfe, 0 , 2 , "Service Mode" },
- {0x0c, 0x01, 0x40, 0x00, "Off" },
- {0x0c, 0x01, 0x40, 0x40, "On" },
-
- // Dip 2
-
- // Dip 3
-};
-
-STDDIPINFO(Vpool)
-
-static struct BurnDIPInfo WarofbugDIPList[]=
-{
- // Default Values
- {0x0f, 0xff, 0xff, 0x00, NULL },
- {0x10, 0xff, 0xff, 0x00, NULL },
- {0x11, 0xff, 0xff, 0x0a, NULL },
-
- // Dip 1
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x0f, 0x01, 0x20, 0x00, "Upright" },
- {0x0f, 0x01, 0x20, 0x20, "Cocktail" },
-
- // Dip 2
- {0 , 0xfe, 0 , 3 , "Coinage" },
- {0x10, 0x01, 0xc0, 0x40, "2 Coins 1 Play" },
- {0x10, 0x01, 0xc0, 0x00, "1 Coin 1 Play" },
- {0x10, 0x01, 0xc0, 0xc0, "Freeplay" },
-
- // Dip 3
- {0 , 0xfe, 0 , 4 , "Lives" },
- {0x11, 0x01, 0x03, 0x00, "1" },
- {0x11, 0x01, 0x03, 0x01, "2" },
- {0x11, 0x01, 0x03, 0x02, "3" },
- {0x11, 0x01, 0x03, 0x03, "4" },
-
- {0 , 0xfe, 0 , 2 , "Bonus Life" },
- {0x11, 0x01, 0x08, 0x08, "500000" },
- {0x11, 0x01, 0x08, 0x00, "700000" },
-};
-
-STDDIPINFO(Warofbug)
-
-static struct BurnDIPInfo ZerotimeDIPList[]=
-{
- // Default Values
- {0x0c, 0xff, 0xff, 0x00, NULL },
- {0x0d, 0xff, 0xff, 0x40, NULL },
- {0x0e, 0xff, 0xff, 0x03, NULL },
-
- // Dip 1
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x0c, 0x01, 0x20, 0x00, "Upright" },
- {0x0c, 0x01, 0x20, 0x20, "Cocktail" },
-
- {0 , 0xfe, 0 , 2 , "Service Mode" },
- {0x0c, 0x01, 0x40, 0x00, "Off" },
- {0x0c, 0x01, 0x40, 0x40, "On" },
-
- // Dip 2
- {0 , 0xfe, 0 , 4 , "Coinage" },
- {0x0d, 0x01, 0xc0, 0x40, "A 1C/1P 2C/3P B 1C/2P" },
- {0x0d, 0x01, 0xc0, 0xc0, "A 1C/1P 2C/3P B 1C/3P" },
- {0x0d, 0x01, 0xc0, 0x00, "A 1C/2P 2C/4P B 1C/4P" },
- {0x0d, 0x01, 0xc0, 0x80, "A 1C/2P 2C/5P B 1C/5P" },
-
- // Dip 3
- {0 , 0xfe, 0 , 4 , "Bonus Life" },
- {0x0e, 0x01, 0x03, 0x03, "6000" },
- {0x0e, 0x01, 0x03, 0x02, "7000" },
- {0x0e, 0x01, 0x03, 0x01, "9000" },
- {0x0e, 0x01, 0x03, 0x00, "None" },
-
- {0 , 0xfe, 0 , 2 , "Lives" },
- {0x0e, 0x01, 0x04, 0x00, "3" },
- {0x0e, 0x01, 0x04, 0x04, "5" },
-
- {0 , 0xfe, 0 , 2 , "Difficulty" },
- {0x0e, 0x01, 0x08, 0x00, "Easy" },
- {0x0e, 0x01, 0x08, 0x08, "Hard" },
-};
-
-STDDIPINFO(Zerotime)
-
-static struct BurnDIPInfo ZigzagDIPList[]=
-{
- // Default Values
- {0x0e, 0xff, 0xff, 0x00, NULL },
- {0x0f, 0xff, 0xff, 0x00, NULL },
- {0x10, 0xff, 0xff, 0x02, NULL },
-
- // Dip 1
-
- // Dip 2
- {0 , 0xfe, 0 , 4 , "Coinage" },
- {0x0f, 0x01, 0xc0, 0x40, "2 Coins 1 Play" },
- {0x0f, 0x01, 0xc0, 0x00, "1 Coin 1 Play" },
- {0x0f, 0x01, 0xc0, 0x80, "1 Coin 2 Plays" },
- {0x0f, 0x01, 0xc0, 0xc0, "Freeplay" },
-
- // Dip 3
- {0 , 0xfe, 0 , 2 , "Lives" },
- {0x10, 0x01, 0x01, 0x00, "3" },
- {0x10, 0x01, 0x01, 0x01, "4" },
-
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x10, 0x01, 0x02, 0x02, "Upright" },
- {0x10, 0x01, 0x02, 0x00, "Cocktail" },
-
- {0 , 0xfe, 0 , 4 , "Bonus Life" },
- {0x10, 0x01, 0x0c, 0x00, "10000 60000" },
- {0x10, 0x01, 0x0c, 0x04, "20000 60000" },
- {0x10, 0x01, 0x0c, 0x08, "30000 60000" },
- {0x10, 0x01, 0x0c, 0x0c, "40000 60000" },
-};
-
-STDDIPINFO(Zigzag)
-
-// Drivers
-// Basic Galaxian Hardware
-static struct BurnRomInfo GalaxianRomDesc[] = {
- { "galmidw.u", 0x00800, 0x745e2d61, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "galmidw.v", 0x00800, 0x9c999a40, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "galmidw.w", 0x00800, 0xb5894925, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "galmidw.y", 0x00800, 0x6b3ca10b, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "7l", 0x00800, 0x1b933207, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "1h.bin", 0x00800, 0x39fb43a4, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "1k.bin", 0x00800, 0x7e3f56a2, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "6l.bpr", 0x00020, 0xc3ac9467, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Galaxian)
-STD_ROM_FN(Galaxian)
-
-static struct BurnRomInfo GalaxianaRomDesc[] = {
- { "7f.bin", 0x01000, 0x4335b1de, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "7j.bin", 0x01000, 0x4e6f66a1, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "7l.bin", 0x00800, 0x5341d75a, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "1h.bin", 0x00800, 0x39fb43a4, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "1k.bin", 0x00800, 0x7e3f56a2, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "6l.bpr", 0x00020, 0xc3ac9467, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Galaxiana)
-STD_ROM_FN(Galaxiana)
-
-static struct BurnRomInfo GalaxianmRomDesc[] = {
- { "galmidw.u", 0x00800, 0x745e2d61, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "galmidw.v", 0x00800, 0x9c999a40, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "galmidw.w", 0x00800, 0xb5894925, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "galmidw.y", 0x00800, 0x6b3ca10b, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "galmidw.z", 0x00800, 0xcb24f797, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "galaxian.j1", 0x00800, 0x84decf98, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "galaxian.l1", 0x00800, 0xc31ada9e, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "6l.bpr", 0x00020, 0xc3ac9467, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Galaxianm)
-STD_ROM_FN(Galaxianm)
-
-static struct BurnRomInfo GalaxianmoRomDesc[] = {
- { "galaxian.u", 0x00800, 0xfac42d34, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "galaxian.v", 0x00800, 0xf58283e3, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "galaxian.w", 0x00800, 0x4c7031c0, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "galaxian.y", 0x00800, 0x96a7ac94, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "7l.bin", 0x00800, 0x5341d75a, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "galaxian.j1", 0x00800, 0x84decf98, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "galaxian.l1", 0x00800, 0xc31ada9e, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "6l.bpr", 0x00020, 0xc3ac9467, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Galaxianmo)
-STD_ROM_FN(Galaxianmo)
-
-static struct BurnRomInfo GalaxiantRomDesc[] = {
- { "gl-03.8g", 0x00800, 0xe8f3aa67, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "gl-04.8f", 0x00800, 0xf58283e3, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "gl-05.8e", 0x00800, 0x4c7031c0, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "gl-06.8d", 0x00800, 0x097d92a2, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "gl-07.8c", 0x00800, 0x5341d75a, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "gl-02.1k", 0x00800, 0xd14f7510, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "gl-01.1j", 0x00800, 0x968b6016, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "6l.bpr", 0x00020, 0xc3ac9467, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Galaxiant)
-STD_ROM_FN(Galaxiant)
-
-static struct BurnRomInfo GalaxianiRomDesc[] = {
- { "cp-1.8g", 0x00800, 0xe8f3aa67, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "cp-2.8f", 0x00800, 0xf58283e3, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "cp-3.8e", 0x00800, 0x4c7031c0, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "cp-4.8d", 0x00800, 0x097d92a2, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "cp-5.8c", 0x00800, 0x5341d75a, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "cp-7.1k", 0x00800, 0x287159b7, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "cp-6.1j", 0x00800, 0x6fb54cb1, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "6l.bpr", 0x00020, 0xc3ac9467, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Galaxiani)
-STD_ROM_FN(Galaxiani)
-
-static struct BurnRomInfo DonightRomDesc[] = {
- { "galmidw.u", 0x00800, 0x197493a6, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "galmidw.v", 0x00800, 0xb8ee84cf, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "galmidw.w", 0x00800, 0x76879d31, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "galmidw.y", 0x00800, 0xd6d5e47e, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "7l", 0x00800, 0x34913886, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "1h.bin", 0x00800, 0xf880af4b, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "1k.bin", 0x00800, 0x40fd608a, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "6l.bpr", 0x00020, 0x77f95861, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Donight)
-STD_ROM_FN(Donight)
-
-struct BurnDriver BurnDrvGalaxian = {
- "galaxian", NULL, NULL, NULL, "1979",
- "Galaxian (Namco set 1)\0", NULL, "Namco", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, GalaxianRomInfo, GalaxianRomName, NULL, NULL, GalaxianInputInfo, GalaxianDIPInfo,
- GalInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvGalaxiana = {
- "galaxiana", "galaxian", NULL, NULL, "1979",
- "Galaxian (Namco set 2)\0", NULL, "Namco", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, GalaxianaRomInfo, GalaxianaRomName, NULL, NULL, GalaxianInputInfo, SupergDIPInfo,
- GalInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvGalaxianm = {
- "galaxianm", "galaxian", NULL, NULL, "1979",
- "Galaxian (Midway set 1)\0", NULL, "Namco (Midway license)", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, GalaxianmRomInfo, GalaxianmRomName, NULL, NULL, GalaxianInputInfo, GalaxianDIPInfo,
- GalInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvGalaxianmo = {
- "galaxianmo", "galaxian", NULL, NULL, "1979",
- "Galaxian (Midway set 2)\0", NULL, "Namco (Midway license)", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, GalaxianmoRomInfo, GalaxianmoRomName, NULL, NULL, GalaxianInputInfo, GalaxianDIPInfo,
- GalInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvGalaxiant = {
- "galaxiant", "galaxian", NULL, NULL, "1979",
- "Galaxian (Taito)\0", NULL, "Namco (Taito license)", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, GalaxiantRomInfo, GalaxiantRomName, NULL, NULL, GalaxianInputInfo, SupergDIPInfo,
- GalInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvGalaxiani = {
- "galaxiani", "galaxian", NULL, NULL, "1979",
- "Galaxian (Irem)\0", NULL, "bootleg? (Irem)", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, GalaxianiRomInfo, GalaxianiRomName, NULL, NULL, GalaxianInputInfo, SupergDIPInfo,
- GalInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvDonight = {
- "donight", NULL, NULL, NULL, "2013",
- "Mr.Do's Nightmare (hack by Krazy Ivan)\0", NULL, "Krazy Ivan", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, DonightRomInfo, DonightRomName, NULL, NULL, DonightInputInfo, DonightDIPInfo,
- GalInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-// Galaxian Rip-Offs on basic Galaxian Hardware
-static struct BurnRomInfo MoonalnRomDesc[] = {
- { "galx.u", 0x00800, 0x79e4007d, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "prg2.bin", 0x00800, 0x59580b30, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "prg3.bin", 0x00800, 0xb64e9d12, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "superg.y", 0x00800, 0x9463f753, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "prg5.bin", 0x00800, 0x8bb78987, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "ca1.bin", 0x00800, 0x074271dd, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "ca2.bin", 0x00800, 0x84d90397, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "6l.bpr", 0x00020, 0xc3ac9467, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Moonaln)
-STD_ROM_FN(Moonaln)
-
-static struct BurnRomInfo SupergRomDesc[] = {
- { "7f.bin", 0x01000, 0x4335b1de, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "superg.w", 0x00800, 0xddeabdae, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "superg.y", 0x00800, 0x9463f753, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "superg.z", 0x00800, 0xe6312e35, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "galmidw.1j", 0x00800, 0x84decf98, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "galmidw.1k", 0x00800, 0xc31ada9e, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "6l.bpr", 0x00020, 0xc3ac9467, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Superg)
-STD_ROM_FN(Superg)
-
-static struct BurnRomInfo GalturboRomDesc[] = {
- { "galturbo.u", 0x00800, 0xe8f3aa67, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "galx.v", 0x00800, 0xbc16064e, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "superg.w", 0x00800, 0xddeabdae, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "galturbo.y", 0x00800, 0xa44f450f, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "galturbo.z", 0x00800, 0x3247f3d4, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "galturbo.1h", 0x00800, 0xa713fd1a, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "galturbo.1k", 0x00800, 0x28511790, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "6l.bpr", 0x00020, 0xc3ac9467, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Galturbo)
-STD_ROM_FN(Galturbo)
-
-static struct BurnRomInfo GalapxRomDesc[] = {
- { "galx.u", 0x00800, 0x79e4007d, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "galx.v", 0x00800, 0xbc16064e, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "galx.w", 0x00800, 0x72d2d3ee, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "galx.y", 0x00800, 0xafe397f3, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "galx.z", 0x00800, 0x778c0d3c, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "galx.1h", 0x00800, 0xe8810654, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "galx.1k", 0x00800, 0xcbe84a76, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "6l.bpr", 0x00020, 0xc3ac9467, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Galapx)
-STD_ROM_FN(Galapx)
-
-static struct BurnRomInfo Galap1RomDesc[] = {
- { "7f.bin", 0x01000, 0x4335b1de, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "galaxian.w", 0x00800, 0x4c7031c0, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "galx_1_4.rom", 0x00800, 0xe71e1d9e, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "galx_1_5.rom", 0x00800, 0x6e65a3b2, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "galmidw.1j", 0x00800, 0x84decf98, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "galmidw.1k", 0x00800, 0xc31ada9e, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "6l.bpr", 0x00020, 0xc3ac9467, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Galap1)
-STD_ROM_FN(Galap1)
-
-static struct BurnRomInfo Galap4RomDesc[] = {
- { "galnamco.u", 0x00800, 0xacfde501, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "galnamco.v", 0x00800, 0x65cf3c77, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "galnamco.w", 0x00800, 0x9eef9ae6, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "galnamco.y", 0x00800, 0x56a5ddd1, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "galnamco.z", 0x00800, 0xf4bc7262, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "galx_4c1.rom", 0x00800, 0xd5e88ab4, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "galx_4c2.rom", 0x00800, 0xa57b83e4, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "6l.bpr", 0x00020, 0xc3ac9467, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Galap4)
-STD_ROM_FN(Galap4)
-
-static struct BurnRomInfo SwarmRomDesc[] = {
- { "swarm1.bin", 0x00800, 0x21eba3d0, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "swarm2.bin", 0x00800, 0xf3a436cd, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "swarm3.bin", 0x00800, 0x2915e38b, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "swarm4.bin", 0x00800, 0x8bbbf486, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "swarm5.bin", 0x00800, 0xf1b1987e, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "swarma.bin", 0x00800, 0xef8657bb, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "swarmb.bin", 0x00800, 0x60c4bd31, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "6l.bpr", 0x00020, 0xc3ac9467, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Swarm)
-STD_ROM_FN(Swarm)
-
-static struct BurnRomInfo AstriansRomDesc[] = {
- { "astrians.7h", 0x00800, 0x21eba3d0, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "astrians.7j", 0x00800, 0xf3a436cd, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "astrians.7k", 0x00800, 0x2915e38b, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "astrians.7l", 0x00800, 0x2db56b2f, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "astrians.7m", 0x00800, 0x41075efb, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "astrians.1h", 0x00800, 0x77c074b4, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "astrians.1k", 0x00800, 0xc30fcc46, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "prom.6l", 0x00020, 0x6a0c7d87, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Astrians)
-STD_ROM_FN(Astrians)
-
-static struct BurnRomInfo ZerotimeRomDesc[] = {
- { "zt-p01c.016", 0x00800, 0x90a2bc61, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "zt-2.016", 0x00800, 0xa433067e, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "zt-3.016", 0x00800, 0xaaf038d4, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "zt-4.016", 0x00800, 0x786d690a, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "zt-5.016", 0x00800, 0xaf9260d7, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "ztc-2.016", 0x00800, 0x1b13ca05, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "ztc-1.016", 0x00800, 0x5cd7df03, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "6l.bpr", 0x00020, 0xc3ac9467, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Zerotime)
-STD_ROM_FN(Zerotime)
-
-// Late-to-market bootleg with PCB mods to use a single program rom
-// Datamat is the old name of Datasat, a technical service and distributor of arcade PCB's from the 80's and 90's.
-// A lot of the bootleg PCB's around Spain have Datamat stickers on the roms. It was one of the most important PCB sellers/distributors in the country from the era.
-// Datamat still operate today as Datasat http://datasat.info/
-static struct BurnRomInfo ZerotimedRomDesc[] = {
- { "zerotime_datamat.bin", 0x04000, 0xbe60834b, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "ztc-2.016", 0x00800, 0x1b13ca05, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "ztc-1.016", 0x00800, 0x5cd7df03, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "6l.bpr", 0x00020, 0xc3ac9467, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Zerotimed)
-STD_ROM_FN(Zerotimed)
-
-static struct BurnRomInfo StarfghtRomDesc[] = {
- { "ja.1", 0x00400, 0xc6ab558b, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "jb.2", 0x00400, 0x34b99fed, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "jc.3", 0x00400, 0x30e28016, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "jd.4", 0x00400, 0xde7e7770, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "je.5", 0x00400, 0xa916c919, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "jf.6", 0x00400, 0x9175882b, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "jg.7", 0x00400, 0x707c0f02, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "jh.8", 0x00400, 0x5dd26461, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "ji.9", 0x00400, 0x6651fe93, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "jj.10", 0x00400, 0x12c721b9, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "k1.7a", 0x00800, 0x977e37cf, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "k2.9a", 0x00800, 0x15e387ce, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "mmi6331.7f", 0x00020, 0x24652bc4, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Starfght)
-STD_ROM_FN(Starfght)
-
-static struct BurnRomInfo GalaxbsfRomDesc[] = {
- { "1.bn", 0x00400, 0xcc37b774, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2.bn", 0x00400, 0xc6d21f03, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "3.bn", 0x00400, 0x30e28016, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "4.bn", 0x00400, 0xde7e7770, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "5.bn", 0x00400, 0xa916c919, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "6.bn", 0x00400, 0x9175882b, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "7.bn", 0x00400, 0x1237b9da, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "8.bn", 0x00400, 0x78c53607, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "9.bn", 0x00400, 0x901894cc, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "10.bn", 0x00400, 0x5876f695, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "11.bn", 0x00800, 0x39fb43a4, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "12.bn", 0x00800, 0x7e3f56a2, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "6l.bpr", 0x00020, 0xc3ac9467, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Galaxbsf)
-STD_ROM_FN(Galaxbsf)
-
-static struct BurnRomInfo GalaxianblRomDesc[] = {
- { "gal00eg.ic4", 0x00400, 0x7c44510c, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "gal01eg.ic5", 0x00400, 0x2a426500, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "gal02.ic6", 0x00400, 0x30e28016, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "gal03.ic7", 0x00400, 0xde7e7770, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "gal04.ic8", 0x00400, 0xa916c919, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "gal05.ic9", 0x00400, 0x9175882b, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "gal06.ic10", 0x00400, 0x1237b9da, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "gal07eg.ic11", 0x00400, 0x16144658, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "gal08.ic12", 0x00400, 0x901894cc, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "gal09.ic13", 0x00400, 0x5876f695, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "galaxian.1h", 0x00800, 0x39fb43a4, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "galaxian.1k", 0x00800, 0x7e3f56a2, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "6l.bpr", 0x00020, 0xc3ac9467, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Galaxianbl)
-STD_ROM_FN(Galaxianbl)
-
-static struct BurnRomInfo Kamakazi3RomDesc[] = {
- { "f_r_a.bin", 0x00800, 0xe8f3aa67, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "f_a.bin", 0x00800, 0xf58283e3, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "f_b.bin", 0x00800, 0xddeabdae, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "f_r_c.bin", 0x00800, 0xc8530a88, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "f_r_d.bin", 0x00800, 0xda2d77e0, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "r_b.bin", 0x00800, 0x977e37cf, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "r_a.bin", 0x00800, 0xd0ba22c9, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "6l.bpr", 0x00020, 0xc3ac9467, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Kamakazi3)
-STD_ROM_FN(Kamakazi3)
-
-static struct BurnRomInfo SupergxRomDesc[] = {
- { "sg1", 0x00800, 0xb83f4578, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "sg2", 0x00800, 0xd12ca054, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "sg3", 0x00800, 0x53714cb1, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "sg4", 0x00800, 0x2f36fc69, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "sg5", 0x00800, 0x1e0ed4fd, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "sg6", 0x00800, 0x4f3d97a8, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "sgg1", 0x00800, 0xa1287bf6, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "sgg2", 0x00800, 0x528f1481, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "supergx.prm", 0x00020, 0x00000000, BRF_OPT | BRF_NODUMP },
-};
-
-STD_ROM_PICK(Supergx)
-STD_ROM_FN(Supergx)
-
-static struct BurnRomInfo TstgalxRomDesc[] = {
- { "test.u", 0x00800, 0x0614cd7f, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "galmidw.v", 0x00800, 0x9c999a40, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "galmidw.w", 0x00800, 0xb5894925, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "galmidw.y", 0x00800, 0x6b3ca10b, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "7l", 0x00800, 0x1b933207, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "1h.bin", 0x00800, 0x39fb43a4, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "1k.bin", 0x00800, 0x7e3f56a2, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "6l.bpr", 0x00020, 0xc3ac9467, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Tstgalx)
-STD_ROM_FN(Tstgalx)
-
-static struct BurnRomInfo GalaxrfRomDesc[] = {
- { "princip1.u", 0x00800, 0x3d5d9bae, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "princip2.v", 0x00800, 0xa433067e, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "princip3.w", 0x00800, 0xaaf038d4, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "princip4.y", 0x00800, 0xd74bdd2a, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "princip5.z", 0x00800, 0x7eeb9e63, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "graphhj.j1", 0x00800, 0x39fb43a4, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "graphkl.l1", 0x00800, 0x7e3f56a2, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "6l.bpr", 0x00020, 0xc3ac9467, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Galaxrf)
-STD_ROM_FN(Galaxrf)
-
-static struct BurnRomInfo GalaxrfggRomDesc[] = {
- { "gxrf.7f", 0x01000, 0xc06eeb10, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "gxrf.7j", 0x01000, 0x182ff334, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "gxrf.7l", 0x00800, 0xee827e75, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "gxrf.1jh", 0x00800, 0x23e627ff, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "gxrf.1lk", 0x00800, 0x0dbcee5b, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "gxrf.6l", 0x00020, 0x992350e5, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Galaxrfgg)
-STD_ROM_FN(Galaxrfgg)
-
-static INT32 SupergxInit()
-{
- INT32 nRet;
-
- GalTilesSharedRomSize = 0x1000;
- GalPromRomSize = 0x20;
-
- nRet = GalInit();
-
- GalTempRom = (UINT8*)BurnMalloc(GalTilesSharedRomSize);
- nRet = BurnLoadRom(GalTempRom + 0x0000, GAL_ROM_OFFSET_TILES_SHARED + 0, 1); if (nRet) return 1;
- nRet = BurnLoadRom(GalTempRom + 0x0800, GAL_ROM_OFFSET_TILES_SHARED + 0, 1); if (nRet) return 1;
- nRet = BurnLoadRom(GalTempRom + 0x1000, GAL_ROM_OFFSET_TILES_SHARED + 1, 1); if (nRet) return 1;
- nRet = BurnLoadRom(GalTempRom + 0x1800, GAL_ROM_OFFSET_TILES_SHARED + 1, 1); if (nRet) return 1;
- GfxDecode(GalNumChars, 2, 8, 8, CharPlaneOffsets, CharXOffsets, CharYOffsets, 0x40, GalTempRom, GalChars);
- GfxDecode(GalNumSprites, 2, 16, 16, SpritePlaneOffsets, SpriteXOffsets, SpriteYOffsets, 0x100, GalTempRom, GalSprites);
- BurnFree(GalTempRom);
-
- HardCodeGalaxianPROM();
-
- return nRet;
-}
-
-struct BurnDriver BurnDrvMoonaln = {
- "moonaln", "galaxian", NULL, NULL, "1979",
- "Moon Alien\0", NULL, "Nichibutsu (Karateco license)", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, MoonalnRomInfo, MoonalnRomName, NULL, NULL, GalaxianInputInfo, SupergDIPInfo,
- GalInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvSuperg = {
- "superg", "galaxian", NULL, NULL, "1979",
- "Super Galaxians (galaxiaj hack)\0", NULL, "hack", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HACK | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, SupergRomInfo, SupergRomName, NULL, NULL, GalaxianInputInfo, SupergDIPInfo,
- GalInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvGalturbo = {
- "galturbo", "galaxian", NULL, NULL, "1979",
- "Galaxian Turbo (superg hack)\0", NULL, "hack", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HACK | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, GalturboRomInfo, GalturboRomName, NULL, NULL, GalaxianInputInfo, SupergDIPInfo,
- GalInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvGalapx = {
- "galapx", "galaxian", NULL, NULL, "1979",
- "Galaxian Part X (moonaln hack)\0", NULL, "hack", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HACK | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, GalapxRomInfo, GalapxRomName, NULL, NULL, GalaxianInputInfo, SupergDIPInfo,
- GalInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvGalap1 = {
- "galap1", "galaxian", NULL, NULL, "1979",
- "Space Invaders Galactica (galaxiaj hack)\0", NULL, "hack", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HACK | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, Galap1RomInfo, Galap1RomName, NULL, NULL, GalaxianInputInfo, SupergDIPInfo,
- GalInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvGalap4 = {
- "galap4", "galaxian", NULL, NULL, "1979",
- "Galaxian Part 4 (hack)\0", NULL, "G.G.I", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HACK | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, Galap4RomInfo, Galap4RomName, NULL, NULL, GalaxianInputInfo, SupergDIPInfo,
- GalInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvSwarm = {
- "swarm", "galaxian", NULL, NULL, "1979",
- "Swarm (bootleg?)\0", NULL, "Sebelectro", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_BOOTLEG | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, SwarmRomInfo, SwarmRomName, NULL, NULL, GalaxianInputInfo, SwarmDIPInfo,
- GalInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvAstrians = {
- "astrians", "galaxian", NULL, NULL, "1979",
- "Astrians (clone of Swarm)\0", NULL, "BGV Ltd", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_BOOTLEG | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, AstriansRomInfo, AstriansRomName, NULL, NULL, GalaxianInputInfo, SwarmDIPInfo,
- GalInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvZerotime = {
- "zerotime", "galaxian", NULL, NULL, "1979",
- "Zero Time\0", NULL, "Petaco S.A", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, ZerotimeRomInfo, ZerotimeRomName, NULL, NULL, GalaxianInputInfo, ZerotimeDIPInfo,
- GalInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvZerotimed = {
- "zerotimed", "galaxian", NULL, NULL, "1979",
- "Zero Time (Datamat)\0", NULL, "Datamat", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, ZerotimedRomInfo, ZerotimedRomName, NULL, NULL, GalaxianInputInfo, ZerotimeDIPInfo,
- GalInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvStarfght = {
- "starfght", "galaxian", NULL, NULL, "1979",
- "Star Fighter\0", NULL, "Juetel", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, StarfghtRomInfo, StarfghtRomName, NULL, NULL, GalaxianInputInfo, SwarmDIPInfo,
- GalInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvGalaxbsf = {
- "galaxbsf", "galaxian", NULL, NULL, "1979",
- "Galaxian (bootleg, set 1)\0", NULL, "bootleg", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_BOOTLEG | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, GalaxbsfRomInfo, GalaxbsfRomName, NULL, NULL, GalaxianInputInfo, GalaxianDIPInfo,
- GalInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvGalaxianbl = {
- "galaxianbl", "galaxian", NULL, NULL, "1979",
- "Galaxian (bootleg, set 2)\0", NULL, "bootleg", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_BOOTLEG | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, GalaxianblRomInfo, GalaxianblRomName, NULL, NULL, GalaxianInputInfo, GalaxianblDIPInfo,
- GalInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvKamakazi3 = {
- "kamakazi3", "galaxian", NULL, NULL, "1979",
- "Kamakazi III (superg hack)\0", NULL, "bootleg", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_BOOTLEG | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, Kamakazi3RomInfo, Kamakazi3RomName, NULL, NULL, GalaxianInputInfo, SupergDIPInfo,
- GalInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriverD BurnDrvSupergx = {
- "supergx", "galaxian", NULL, NULL, "1980",
- "Super GX\0", "Bad Dump", "Nichibutsu", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, SupergxRomInfo, SupergxRomName, NULL, NULL, GalaxianInputInfo, SupergDIPInfo,
- SupergxInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvTstgalx = {
- "tst_galx", "galaxian", NULL, NULL, "1979",
- "Galaxian Test ROM\0", NULL, "Test ROM", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_PROTOTYPE, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, TstgalxRomInfo, TstgalxRomName, NULL, NULL, GalaxianInputInfo, GalaxianDIPInfo,
- GalInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvGalaxrf = {
- "galaxrf", "galaxian", NULL, NULL, "1980",
- "Galaxian (Recreativos Franco S.A. Spanish bootleg)\0", NULL, "bootleg (Recreativos Franco S.A.)", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, GalaxrfRomInfo, GalaxrfRomName, NULL, NULL, GalaxianInputInfo, GalaxrfDIPInfo,
- GalInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvGalaxrfgg = {
- "galaxrfgg", "galaxian", NULL, NULL, "1980",
- "Galaxian Growing Galaxip / Galaxian Nave Creciente (Recreativos Franco S.A. Spanish bootleg)\0", NULL, "bootleg (Recreativos Franco S.A.)", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, GalaxrfggRomInfo, GalaxrfggRomName, NULL, NULL, GalaxianInputInfo, GalaxrfDIPInfo,
- GalInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-// Other games on basic Galaxian hardware
-static struct BurnRomInfo BlkholeRomDesc[] = {
- { "bh1", 0x00800, 0x64998819, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "bh2", 0x00800, 0x26f26ce4, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "bh3", 0x00800, 0x3418bc45, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "bh4", 0x00800, 0x735ff481, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "bh5", 0x00800, 0x3f657be9, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "bh6", 0x00800, 0xa057ab35, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "bh7", 0x00800, 0x975ba821, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "bh8", 0x00800, 0x03d11020, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "6l.bpr", 0x00020, 0xc3ac9467, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Blkhole)
-STD_ROM_FN(Blkhole)
-
-static struct BurnRomInfo OrbitronRomDesc[] = {
- { "orbitron.3", 0x00800, 0x419f9c9b, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "orbitron.4", 0x00800, 0x44ad56ac, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "orbitron.1", 0x00800, 0xda3f5168, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "orbitron.2", 0x00800, 0xa3b813fc, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "orbitron.5", 0x00800, 0x20cd8bb8, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "orbitron.6", 0x00800, 0x2c91b83f, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "orbitron.7", 0x00800, 0x46f4cca4, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "l06_prom.bin", 0x00020, 0x6a0c7d87, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Orbitron)
-STD_ROM_FN(Orbitron)
-
-static struct BurnRomInfo LuctodayRomDesc[] = {
- { "ltprog1.bin", 0x00800, 0x59c389b9, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "ltprog2.bin", 0x00800, 0xac3893b1, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "ltchar2.bin", 0x00800, 0x8cd73bdc, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "ltchar1.bin", 0x00800, 0xb5ba9946, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "74s288.ch", 0x00020, 0x24652bc4, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Luctoday)
-STD_ROM_FN(Luctoday)
-
-static struct BurnRomInfo ChewingRomDesc[] = {
- { "1.bin", 0x01000, 0x7470b347, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "7l.bin", 0x00800, 0x78ebed36, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "2.bin", 0x00800, 0x88c605f3, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "3.bin", 0x00800, 0x77ac016a, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "74s288.ch", 0x00020, 0x24652bc4, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Chewing)
-STD_ROM_FN(Chewing)
-
-static struct BurnRomInfo CatacombRomDesc[] = {
- { "catacomb.u", 0x00800, 0x35cc28d2, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "catacomb.v", 0x00800, 0x1d1ce133, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "catacomb.w", 0x00800, 0x479bbde7, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "catacomb.y", 0x00800, 0x5e3da534, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "cat-gfx1", 0x00800, 0xe871e65c, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "cat-gfx2", 0x00800, 0xb14dafaa, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "mmi6331.6l", 0x00020, 0x6a0c7d87, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Catacomb)
-STD_ROM_FN(Catacomb)
-
-static struct BurnRomInfo OmegabRomDesc[] = {
- { "omega1.bin", 0x00800, 0xfc2a096b, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "omega2.bin", 0x00800, 0xad100357, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "omega3.bin", 0x00800, 0xd7e3be79, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "omega4.bin", 0x00800, 0x42068171, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "omega5.bin", 0x00800, 0xd8a93383, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "omega6.bin", 0x00800, 0x32a42f44, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "omega1h.bin", 0x00800, 0x527fd384, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "omega1k.bin", 0x00800, 0x36de42c6, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "mmi6331-1j.86", 0x00020, 0x6a0c7d87, BRF_OPT | BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Omegab)
-STD_ROM_FN(Omegab)
-
-static struct BurnRomInfo WarofbugRomDesc[] = {
- { "warofbug.u", 0x00800, 0xb8dfb7e3, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "warofbug.v", 0x00800, 0xfd8854e0, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "warofbug.w", 0x00800, 0x4495aa14, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "warofbug.y", 0x00800, 0xc14a541f, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "warofbug.z", 0x00800, 0xc167fe55, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "warofbug.1k", 0x00800, 0x8100fa85, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "warofbug.1j", 0x00800, 0xd1220ae9, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "warofbug.clr", 0x00020, 0x8688e64b, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Warofbug)
-STD_ROM_FN(Warofbug)
-
-static struct BurnRomInfo WarofbuggRomDesc[] = {
- { "wotbg-u-1.bin", 0x00800, 0xf43ff0a8, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "wotbg-v-2.bin", 0x00800, 0xeb7a028b, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "wotbg-w-3.bin", 0x00800, 0x693e0e50, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "wotbg-y-4.bin", 0x00800, 0x885d4982, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "wotbg-z-5.bin", 0x00800, 0x60041ef2, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "warofbug.1k", 0x00800, 0x8100fa85, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "warofbug.1j", 0x00800, 0xd1220ae9, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "warofbug.clr", 0x00020, 0x8688e64b, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Warofbugg)
-STD_ROM_FN(Warofbugg)
-
-static struct BurnRomInfo WarofbuguRomDesc[] = {
- { "wb-prog-1.7d", 0x00800, 0xb8dfb7e3, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "wb-prog-2.7e", 0x00800, 0xfd8854e0, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "wb-prog-3.7j", 0x00800, 0x4495aa14, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "wb-prog-4.7n", 0x00800, 0xe4bd257c, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "wb-prog-5.7p", 0x00800, 0x71257bb4, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "warofbug.1k", 0x00800, 0x8100fa85, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "warofbug.1j", 0x00800, 0xd1220ae9, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "warofbug.clr", 0x00020, 0x8688e64b, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Warofbugu)
-STD_ROM_FN(Warofbugu)
-
-static struct BurnRomInfo RedufoRomDesc[] = {
- { "redufo.1", 0x00800, 0x6a3b873c, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "redufo.2", 0x00800, 0x202eda3b, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "redufo.3", 0x00800, 0xbf7030e8, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "redufo.4", 0x00800, 0x8c1c2ef9, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "redufo.5", 0x00800, 0xef965b24, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "redufo.6", 0x00800, 0x58b3e39b, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "redufo.7", 0x00800, 0xfd07d811, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "redufo.8", 0x00800, 0xb34c7cb4, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "redufo.9", 0x00800, 0x50a2d447, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "tbp18s030n.6l", 0x00020, 0x6a0c7d87, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Redufo)
-STD_ROM_FN(Redufo)
-
-static struct BurnRomInfo RedufobRomDesc[] = {
- { "ru1a", 0x00800, 0x5a8e4f37, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "ru2a", 0x00800, 0xc624f52d, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "ru3a", 0x00800, 0xe1030d1c, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "ru4a", 0x00800, 0x7692069e, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "ru5a", 0x00800, 0xcb648ff3, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "ru6a", 0x00800, 0xe1a9f58e, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "ruhja", 0x00800, 0x8a422b0d, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "rukla", 0x00800, 0x1eb84cb1, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "6l.bpr", 0x00020, 0xc3ac9467, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Redufob)
-STD_ROM_FN(Redufob)
-
-static struct BurnRomInfo ExodusRomDesc[] = {
- { "exodus1.bin", 0x00800, 0x5dfe65e1, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "exodus2.bin", 0x00800, 0x6559222f, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "exodus3.bin", 0x00800, 0xbf7030e8, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "exodus4.bin", 0x00800, 0x3607909e, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "exodus9.bin", 0x00800, 0x994a90c4, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "exodus10.bin", 0x00800, 0xfbd11187, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "exodus11.bin", 0x00800, 0xfd07d811, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "exodus5.bin", 0x00800, 0xb34c7cb4, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "exodus6.bin", 0x00800, 0x50a2d447, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "l06_prom.bin", 0x00020, 0x6a0c7d87, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Exodus)
-STD_ROM_FN(Exodus)
-
-static struct BurnRomInfo TdpgalRomDesc[] = {
- { "1.bin", 0x00800, 0x7be819fe, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2.bin", 0x00800, 0x70c83a5e, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "3.bin", 0x00800, 0x475eb5a0, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "4.bin", 0x00800, 0x20a71943, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "5.bin", 0x00800, 0x72c4f2dc, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "6.bin", 0x00800, 0xfa4e2be4, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "8.bin", 0x00800, 0xd701b1d4, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "7.bin", 0x00800, 0x3113bcfd, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "bprom.bin", 0x00020, 0x2b4cf53f, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Tdpgal)
-STD_ROM_FN(Tdpgal)
-
-static struct BurnRomInfo AzurianRomDesc[] = {
- { "pgm.1", 0x01000, 0x17a0fca7, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "pgm.2", 0x01000, 0x14659848, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "pgm.3", 0x01000, 0x8f60fb97, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "gfx.1", 0x00800, 0xf5afb803, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "gfx.2", 0x00800, 0xae96e5d1, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "l06_prom.bin", 0x00020, 0x6a0c7d87, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Azurian)
-STD_ROM_FN(Azurian)
-
-static struct BurnRomInfo TazzmangRomDesc[] = {
- { "tazzm1.4k", 0x01000, 0xa14480a1, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "tazzm2.5j", 0x01000, 0x5609f5db, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "tazzm3.6f", 0x01000, 0xfe7f7002, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "tazzm4.7e", 0x01000, 0xc9ca1d0a, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "tazzm5.7l", 0x01000, 0xf50cd8a6, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "tazzm6.7l", 0x01000, 0x5cf2e7d2, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "tazm8.1lk", 0x00800, 0x2c5b612b, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "tazzm7.1jh", 0x00800, 0x3f5ff3ac, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "prom.6l", 0x00020, 0x6a0c7d87, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Tazzmang)
-STD_ROM_FN(Tazzmang)
-
-static struct BurnRomInfo Tazzmang2RomDesc[] = {
- { "tazmania.1", 0x00800, 0x6ecc84a2, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "tazmania.2", 0x00800, 0xe27b09f6, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "tazmania.3", 0x00800, 0x954868f3, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "tazmania.4", 0x00800, 0x238520e6, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "tazmania.5", 0x00800, 0x0527e513, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "tazmania.6", 0x00800, 0xaf2b92d8, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "tazmania.7", 0x00800, 0xbbdc41d3, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "tazmania.8", 0x00800, 0xeb35f49c, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "tazmania.a", 0x01000, 0x38f326f8, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "tazmania.b", 0x01000, 0x2a22a9dc, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "tazm8.1lk", 0x00800, 0x2c5b612b, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "tazzm7.1jh", 0x00800, 0x3f5ff3ac, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "prom.6l", 0x00020, 0x6a0c7d87, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Tazzmang2)
-STD_ROM_FN(Tazzmang2)
-
-static struct BurnRomInfo ScramblbRomDesc[] = {
- { "scramble.1k", 0x00800, 0x9e025c4a, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "scramble.2k", 0x00800, 0x306f783e, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "scramble.3k", 0x00800, 0x0500b701, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "scramble.4k", 0x00800, 0xdd380a22, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "scramble.5k", 0x00800, 0xdf0b9648, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "scramble.1j", 0x00800, 0xb8c07b3c, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "scramble.2j", 0x00800, 0x88ac07a0, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "scramble.3j", 0x00800, 0xc67d57ca, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "5f.k", 0x00800, 0x4708845b, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "5h.k", 0x00800, 0x11fd2887, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "82s123.6e", 0x00020, 0x4e3caeab, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Scramblb)
-STD_ROM_FN(Scramblb)
-
-static struct BurnRomInfo Scramb2RomDesc[] = {
- { "r1.7f1", 0x00800, 0x4a43148c, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "r1.7f2", 0x00800, 0x215a3b86, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "r2.7h1", 0x00800, 0x28779444, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "r2.7h2", 0x00800, 0x5b4b300b, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "r3.7k1", 0x00800, 0xb478aa53, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "r3.7k2", 0x00800, 0xc33f072e, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "r4.7l1", 0x00800, 0x88ac07a0, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "r4.7l2", 0x00800, 0x321fd003, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "r6.1j", 0x00800, 0x4708845b, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "r5.1l", 0x00800, 0x11fd2887, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "82s123.6e", 0x00020, 0x4e3caeab, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Scramb2)
-STD_ROM_FN(Scramb2)
-
-static struct BurnRomInfo ScramblerRomDesc[] = {
- { "principal 1.bin", 0x00800, 0x926958d2, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "principal 2.bin", 0x00800, 0x655c6eca, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "principal 3.bin", 0x00800, 0xcd31749a, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "principal 4.bin", 0x00800, 0xf055e1e3, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "principal 5.bin", 0x00800, 0x15f10df7, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "principal 6.bin", 0x00800, 0x4bd1c703, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "principal 7.bin", 0x00800, 0x0bb49470, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "principal 8.bin", 0x00800, 0x6db9f380, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "graph hj.bin", 0x00800, 0x4c017c9c, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "graph kl.bin", 0x00800, 0x28a66399, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "c01s.6e", 0x00020, 0x4e3caeab, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Scrambler)
-STD_ROM_FN(Scrambler)
-
-UINT8 __fastcall AzurianZ80Read(UINT16 a)
-{
- switch (a) {
- case 0x6000: {
- return GalInput[0] | GalDip[0];
- }
-
- case 0x6800: {
- return ((GalInput[1] | GalDip[1]) & ~0x40) | ((GalFakeDip & 0x01) << 6);
- }
-
- case 0x7000: {
- return ((GalInput[2] | GalDip[2]) & ~0x04) | ((GalFakeDip & 0x02) << 1);
- }
-
- case 0x7800: {
- // watchdog read
- return 0xff;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Read => %04X\n"), a);
- }
- }
-
- return 0xff;
-}
-
-UINT8 __fastcall TazzmangZ80Read(UINT16 a)
-{
- switch (a) {
- case 0x9800:
- case 0xb800: {
- // watchdog read
- return 0xff;
- }
-
- case 0xa000:
- case 0xa7ff: {
- return GalInput[0] | GalDip[0];
- }
-
- case 0xa800: {
- return GalInput[1] | GalDip[1];
- }
-
- case 0x7000:
- case 0xb000: {
- return GalInput[2] | GalDip[2];
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Read => %04X\n"), a);
- }
- }
-
- return 0xff;
-}
-
-void __fastcall TazzmangZ80Write(UINT16 a, UINT8 d)
-{
- if (a >= 0x8800 && a <= 0x88ff) {
- INT32 Offset = a - 0x8800;
-
- GalSpriteRam[Offset] = d;
-
- if (Offset < 0x40) {
- if ((Offset & 0x01) == 0) {
- GalScrollVals[Offset >> 1] = d;
- }
- }
-
- return;
- }
-
- switch (a) {
- case 0xa800:
- case 0xa801:
- case 0xa802:
- case 0xa803:
- case 0xa804:
- case 0xa805:
- case 0xa806:
- case 0xa807: {
- GalaxianSoundWrite(a - 0xa800, d);
- return;
- }
-
- case 0xb001: {
- GalIrqFire = d & 1;
- return;
- }
-
- case 0xb004: {
- GalStarsEnable = d & 0x01;
- if (!GalStarsEnable) GalStarsScrollPos = -1;
- return;
- }
-
- case 0xb006: {
- GalFlipScreenX = d & 1;
- return;
- }
-
- case 0xb007: {
- GalFlipScreenY = d & 1;
- return;
- }
-
- case 0xb800: {
- GalPitch = d;
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Write => %04X, %02X\n"), a, d);
- }
- }
-}
-
-UINT8 __fastcall ScramblbZ80Read(UINT16 a)
-{
- switch (a) {
- case 0x6000: {
- return GalInput[0] | GalDip[0];
- }
-
- case 0x6800: {
- return GalInput[1] | GalDip[1];
- }
-
- case 0x7000: {
- return GalInput[2] | GalDip[2];
- }
-
- case 0x7800: {
- // watchdog read
- return 0xff;
- }
-
- case 0x8102: {
- switch (ZetGetPC(-1)) {
- case 0x1da: return 0x80;
- case 0x1e4: return 0x00;
- }
- return 0xff;
- }
-
- case 0x8202: {
- switch (ZetGetPC(-1)) {
- case 0x1ca: return 0x90;
- }
- return 0xff;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Read => %04X\n"), a);
- }
- }
-
- return 0xff;
-}
-
-void __fastcall ScramblbZ80Write(UINT16 a, UINT8 d)
-{
- if (a >= 0x5000 && a <= 0x50ff) {
- INT32 Offset = a - 0x5000;
-
- GalSpriteRam[Offset] = d;
-
- if (Offset < 0x40) {
- if ((Offset & 0x01) == 0) {
- GalScrollVals[Offset >> 1] = d;
- }
- }
-
- return;
- }
-
- switch (a) {
- case 0x6000:
- case 0x6001: {
- // start_lamp_w
- return;
- }
-
- case 0x6002: {
- // coin_lock_w
- return;
- }
-
- case 0x6004:
- case 0x6005:
- case 0x6006:
- case 0x6007: {
- GalaxianLfoFreqWrite(a - 0x6004, d);
- return;
- }
-
- case 0x6800:
- case 0x6801:
- case 0x6802:
- case 0x6803:
- case 0x6804:
- case 0x6805:
- case 0x6806:
- case 0x6807: {
- GalaxianSoundWrite(a - 0x6800, d);
- return;
- }
-
- case 0x7001: {
- GalIrqFire = d & 1;
- return;
- }
-
- case 0x7002: {
- // coin_count_0_w
- return;
- }
-
- case 0x7003: {
- GalBackgroundEnable = d & 1;
- return;
- }
-
- case 0x7004: {
- GalStarsEnable = d & 0x01;
- if (!GalStarsEnable) GalStarsScrollPos = -1;
- return;
- }
-
- case 0x7006: {
- GalFlipScreenX = d & 1;
- return;
- }
-
- case 0x7007: {
- GalFlipScreenY = d & 1;
- return;
- }
-
- case 0x7800: {
- GalPitch = d;
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Write => %04X, %02X\n"), a, d);
- }
- }
-}
-
-UINT8 __fastcall Scramb2Z80Read(UINT16 a)
-{
- if (a >= 0x5800 && a <= 0x5fff) return 0x25;
-
- switch (a) {
- case 0x6000:
- case 0x6001:
- case 0x6002:
- case 0x6003:
- case 0x6004:
- case 0x6005:
- case 0x6006:
- case 0x6007: {
- int Offset = a - 0x6000;
- return ((0xff - GalInput[0] - GalDip[0]) >> Offset) & 0x01;
- }
-
- case 0x6800:
- case 0x6801:
- case 0x6802:
- case 0x6803:
- case 0x6804:
- case 0x6805:
- case 0x6806:
- case 0x6807: {
- int Offset = a - 0x6800;
- return ((0xff - GalInput[1] - GalDip[1]) >> Offset) & 0x01;
- }
-
- case 0x7000: {
- // watchdog read
- return 0xff;
- }
-
- case 0x7800:
- case 0x7801:
- case 0x7802:
- case 0x7803:
- case 0x7804:
- case 0x7805:
- case 0x7806:
- case 0x7807: {
- INT32 Offset = a - 0x7800;
- return ((0xff - GalInput[2] - GalDip[2]) >> Offset) & 0x01;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Read => %04X\n"), a);
- }
- }
-
- return 0xff;
-}
-
-void __fastcall Scramb2Z80Write(UINT16 a, UINT8 d)
-{
- if (a >= 0x5000 && a <= 0x50ff) {
- INT32 Offset = a - 0x5000;
-
- GalSpriteRam[Offset] = d;
-
- if (Offset < 0x40) {
- if ((Offset & 0x01) == 0) {
- GalScrollVals[Offset >> 1] = d;
- }
- }
-
- return;
- }
-
- switch (a) {
- case 0x6000:
- case 0x6001:
- case 0x6002:
- case 0x6003:
- case 0x6004:
- case 0x6005:
- case 0x6006:
- case 0x6007:
- case 0x7000:
- case 0x7001:
- case 0x7002:
- case 0x7003:
- case 0x7004:
- case 0x7005:
- case 0x7006:
- case 0x7007: {
- // Probably PPI writes that the bootleggers didn't use
- return;
- }
-
- case 0x6801: {
- GalIrqFire = d & 1;
- return;
- }
-
- case 0x6802: {
- // coin_count_0_w
- return;
- }
-
- case 0x6803: {
- GalBackgroundEnable = d & 1;
- return;
- }
-
- case 0x6804: {
- GalStarsEnable = d & 0x01;
- if (!GalStarsEnable) GalStarsScrollPos = -1;
- return;
- }
-
- case 0x6806: {
- GalFlipScreenX = d & 1;
- return;
- }
-
- case 0x6807: {
- GalFlipScreenY = d & 1;
- return;
- }
-
- case 0x7800: {
- GalPitch = d;
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Write => %04X, %02X\n"), a, d);
- }
- }
-}
-
-UINT8 __fastcall ScramblerZ80Read(UINT16 a)
-{
- switch (a) {
- case 0x6000: {
- return GalInput[0] | GalDip[0];
- }
-
- case 0x6800: {
- return GalInput[1] | GalDip[1];
- }
-
- case 0x7000: {
- return GalInput[2] | GalDip[2];
- }
-
- case 0x7800: {
- // watchdog read
- return 0xff;
- }
-
- case 0x8202: {
- // protection
- return 0xff;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Read => %04X\n"), a);
- }
- }
-
- return 0xff;
-}
-
-void __fastcall ScramblerZ80Write(UINT16 a, UINT8 d)
-{
- if (a >= 0x5400 && a <= 0x57ff) {
- // ???
- return;
- }
-
- if (a >= 0x5800 && a <= 0x58ff) {
- INT32 Offset = a - 0x5800;
-
- GalSpriteRam[Offset] = d;
-
- if (Offset >= 0x80 && Offset < 0xc0) {
- if ((Offset & 0x01) == 0) {
- GalScrollVals[(Offset - 0x80) >> 1] = d;
- }
- }
-
- return;
- }
-
- switch (a) {
- case 0x6000:
- case 0x6001: {
- // start_lamp_w
- return;
- }
-
- case 0x6003: {
- // coin_lock_w
- return;
- }
-
- case 0x6004:
- case 0x6005:
- case 0x6006:
- case 0x6007: {
- GalaxianLfoFreqWrite(a - 0x6004, d);
- return;
- }
-
- case 0x6800:
- case 0x6801:
- case 0x6802:
- case 0x6803:
- case 0x6804:
- case 0x6805:
- case 0x6806:
- case 0x6807: {
- GalaxianSoundWrite(a - 0x6800, d);
- return;
- }
-
- case 0x7000: {
- GalIrqFire = d & 1;
- return;
- }
-
- case 0x7002: {
- // coin_count_0_w
- return;
- }
-
- case 0x7003: {
- GalBackgroundEnable = d & 1;
- return;
- }
-
- case 0x7004: {
- GalStarsEnable = d & 0x01;
- if (!GalStarsEnable) GalStarsScrollPos = -1;
- return;
- }
-
- case 0x7006: {
- GalFlipScreenX = d & 1;
- return;
- }
-
- case 0x7007: {
- GalFlipScreenY = d & 1;
- return;
- }
-
- case 0x7800: {
- GalPitch = d;
- return;
- }
-
- case 0x8200: {
- // ???
- return;
- }
-
- case 0x8201: {
- // ???
- return;
- }
-
- case 0x8202: {
- // ???
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Write => %04X, %02X\n"), a, d);
- }
- }
-}
-
-static void OrbitronRearrangeRom()
-{
- GalTempRom = (UINT8*)BurnMalloc(0x2000);
-
- memcpy(GalTempRom, GalZ80Rom1, 0x2000);
- memcpy(GalZ80Rom1 + 0x0600, GalTempRom + 0x0000, 0x200);
- memcpy(GalZ80Rom1 + 0x0400, GalTempRom + 0x0200, 0x200);
- memcpy(GalZ80Rom1 + 0x0200, GalTempRom + 0x0400, 0x200);
- memcpy(GalZ80Rom1 + 0x0000, GalTempRom + 0x0600, 0x200);
- memcpy(GalZ80Rom1 + 0x0e00, GalTempRom + 0x0800, 0x200);
- memcpy(GalZ80Rom1 + 0x0c00, GalTempRom + 0x0a00, 0x200);
- memcpy(GalZ80Rom1 + 0x0a00, GalTempRom + 0x0c00, 0x200);
- memcpy(GalZ80Rom1 + 0x0800, GalTempRom + 0x0e00, 0x200);
- memcpy(GalZ80Rom1 + 0x1600, GalTempRom + 0x1000, 0x200);
- memcpy(GalZ80Rom1 + 0x1400, GalTempRom + 0x1200, 0x200);
- memcpy(GalZ80Rom1 + 0x1200, GalTempRom + 0x1400, 0x200);
- memcpy(GalZ80Rom1 + 0x1000, GalTempRom + 0x1600, 0x200);
- memcpy(GalZ80Rom1 + 0x1e00, GalTempRom + 0x1800, 0x200);
- memcpy(GalZ80Rom1 + 0x1c00, GalTempRom + 0x1a00, 0x200);
- memcpy(GalZ80Rom1 + 0x1a00, GalTempRom + 0x1c00, 0x200);
- memcpy(GalZ80Rom1 + 0x1800, GalTempRom + 0x1e00, 0x200);
- BurnFree(GalTempRom);
-}
-
-static INT32 OrbitronInit()
-{
- GalPostLoadCallbackFunction = OrbitronRearrangeRom;
-
- return GalInit();
-}
-
-static void LuctodayRearrangeRom()
-{
- memcpy(GalZ80Rom1 + 0x2000, GalZ80Rom1 + 0x0800, 0x800);
- memset(GalZ80Rom1 + 0x0800, 0, 0x800);
-}
-
-static INT32 LuctodayInit()
-{
- GalZ80Rom1Size = 0x1800;
- GalPostLoadCallbackFunction = LuctodayRearrangeRom;
-
- return GalInit();
-}
-
-static void ChewingRearrangeRom()
-{
- memcpy(GalZ80Rom1 + 0x2000, GalZ80Rom1 + 0x1000, 0x800);
- memset(GalZ80Rom1 + 0x1000, 0, 0x800);
-}
-
-static INT32 ChewingInit()
-{
- GalZ80Rom1Size = 0x1000;
- GalPostLoadCallbackFunction = ChewingRearrangeRom;
-
- return GalInit();
-}
-
-static void CatacombRearrangeRom()
-{
- memcpy(GalZ80Rom1 + 0x2000, GalZ80Rom1 + 0x1800, 0x800);
- memset(GalZ80Rom1 + 0x1800, 0, 0x800);
-}
-
-static INT32 CatacombInit()
-{
- GalZ80Rom1Size = 0x800;
- GalPostLoadCallbackFunction = CatacombRearrangeRom;
-
- return GalInit();
-}
-
-static void TdpgalPostLoad()
-{
- ZetOpen(0);
- ZetMapArea(0x4800, 0x4bff, 0, GalVideoRam);
- ZetMapArea(0x4800, 0x4bff, 1, GalVideoRam);
- ZetMapArea(0x4800, 0x4bff, 2, GalVideoRam);
- ZetClose();
-}
-
-static INT32 TdpgalInit()
-{
- INT32 nRet;
-
- GalPostLoadCallbackFunction = TdpgalPostLoad;
-
- nRet = GalInit();
-
- return nRet;
-}
-
-static void AzurianPostLoad()
-{
- ZetOpen(0);
- ZetSetReadHandler(AzurianZ80Read);
- ZetClose();
-}
-
-static INT32 AzurianInit()
-{
- INT32 nRet;
-
- GalPostLoadCallbackFunction = AzurianPostLoad;
-
- nRet = GalInit();
-
- GalDrawBulletsFunction = ScrambleDrawBullets;
-
- return nRet;
-}
-
-static void TazzmangPostLoad()
-{
- ZetOpen(0);
- ZetMemCallback(0x0000, 0xffff, 0);
- ZetMemCallback(0x0000, 0xffff, 1);
- ZetMemCallback(0x0000, 0xffff, 2);
- ZetSetReadHandler(TazzmangZ80Read);
- ZetSetWriteHandler(TazzmangZ80Write);
- ZetMapArea(0x0000, 0x5fff, 0, GalZ80Rom1);
- ZetMapArea(0x0000, 0x5fff, 2, GalZ80Rom1);
- ZetMapArea(0x8000, 0x87ff, 0, GalZ80Ram1);
- ZetMapArea(0x8000, 0x87ff, 1, GalZ80Ram1);
- ZetMapArea(0x8000, 0x87ff, 2, GalZ80Ram1);
- ZetMapArea(0x8800, 0x88ff, 0, GalSpriteRam);
- ZetMapArea(0x8800, 0x88ff, 2, GalSpriteRam);
- ZetMapArea(0x9000, 0x93ff, 0, GalVideoRam);
- ZetMapArea(0x9000, 0x93ff, 1, GalVideoRam);
- ZetMapArea(0x9000, 0x93ff, 2, GalVideoRam);
- ZetClose();
-}
-
-static INT32 TazzmangInit()
-{
- GalPostLoadCallbackFunction = TazzmangPostLoad;
-
- return GalInit();
-}
-
-static void MapScramblb()
-{
- ZetOpen(0);
- ZetMemCallback(0x0000, 0xffff, 0);
- ZetMemCallback(0x0000, 0xffff, 1);
- ZetMemCallback(0x0000, 0xffff, 2);
- ZetSetReadHandler(ScramblbZ80Read);
- ZetSetWriteHandler(ScramblbZ80Write);
- ZetMapArea(0x0000, (GalZ80Rom1Size > 0x4000) ? 0x3fff : GalZ80Rom1Size - 1, 0, GalZ80Rom1);
- ZetMapArea(0x0000, (GalZ80Rom1Size > 0x4000) ? 0x3fff : GalZ80Rom1Size - 1, 2, GalZ80Rom1);
- ZetMapArea(0x4000, 0x47ff, 0, GalZ80Ram1);
- ZetMapArea(0x4000, 0x47ff, 1, GalZ80Ram1);
- ZetMapArea(0x4000, 0x47ff, 2, GalZ80Ram1);
- ZetMapArea(0x4800, 0x4bff, 0, GalVideoRam);
- ZetMapArea(0x4800, 0x4bff, 1, GalVideoRam);
- ZetMapArea(0x4800, 0x4bff, 2, GalVideoRam);
- ZetMapArea(0x4c00, 0x4fff, 0, GalVideoRam);
- ZetMapArea(0x4c00, 0x4fff, 1, GalVideoRam);
- ZetMapArea(0x4c00, 0x4fff, 2, GalVideoRam);
- ZetMapArea(0x5000, 0x50ff, 0, GalSpriteRam);
- ZetMapArea(0x5000, 0x50ff, 2, GalSpriteRam);
- ZetClose();
-}
-
-static INT32 ScramblbInit()
-{
- INT32 nRet;
-
- GalPostLoadCallbackFunction = MapScramblb;
-
- nRet = GalInit();
-
- GalRenderBackgroundFunction = ScrambleDrawBackground;
- GalDrawBulletsFunction = ScrambleDrawBullets;
-
- return nRet;
-}
-
-static void Scramb2PostLoad()
-{
- MapScramblb();
-
- ZetOpen(0);
- ZetSetReadHandler(Scramb2Z80Read);
- ZetSetWriteHandler(Scramb2Z80Write);
- ZetClose();
-}
-
-static INT32 Scramb2Init()
-{
- INT32 nRet;
-
- GalPostLoadCallbackFunction = Scramb2PostLoad;
-
- nRet = GalInit();
-
- GalRenderBackgroundFunction = ScrambleDrawBackground;
- GalDrawBulletsFunction = ScrambleDrawBullets;
-
- return nRet;
-}
-
-static void MapScrambler()
-{
- ZetOpen(0);
- ZetMemCallback(0x0000, 0xffff, 0);
- ZetMemCallback(0x0000, 0xffff, 1);
- ZetMemCallback(0x0000, 0xffff, 2);
- ZetSetReadHandler(ScramblerZ80Read);
- ZetSetWriteHandler(ScramblerZ80Write);
- ZetMapArea(0x0000, (GalZ80Rom1Size > 0x4000) ? 0x3fff : GalZ80Rom1Size - 1, 0, GalZ80Rom1);
- ZetMapArea(0x0000, (GalZ80Rom1Size > 0x4000) ? 0x3fff : GalZ80Rom1Size - 1, 2, GalZ80Rom1);
- ZetMapArea(0x4000, 0x47ff, 0, GalZ80Ram1);
- ZetMapArea(0x4000, 0x47ff, 1, GalZ80Ram1);
- ZetMapArea(0x4000, 0x47ff, 2, GalZ80Ram1);
-// ZetMapArea(0x4800, 0x4bff, 0, GalZ80Ram1 + 0x800);
-// ZetMapArea(0x4800, 0x4bff, 1, GalZ80Ram1 + 0x800);
-// ZetMapArea(0x4800, 0x4bff, 2, GalZ80Ram1 + 0x800);
- ZetMapArea(0x5000, 0x53ff, 0, GalVideoRam);
- ZetMapArea(0x5000, 0x53ff, 1, GalVideoRam);
- ZetMapArea(0x5000, 0x53ff, 2, GalVideoRam);
- ZetMapArea(0x5400, 0x57ff, 0, GalVideoRam);
- ZetMapArea(0x5400, 0x57ff, 1, GalVideoRam);
- ZetMapArea(0x5400, 0x57ff, 2, GalVideoRam);
- ZetMapArea(0x5800, 0x58ff, 0, GalSpriteRam);
- ZetMapArea(0x5800, 0x58ff, 2, GalSpriteRam);
- ZetClose();
-}
-
-static INT32 ScramblerInit()
-{
- INT32 nRet;
-
- GalPostLoadCallbackFunction = MapScrambler;
-
- nRet = GalInit();
-
- GalRenderBackgroundFunction = ScrambleDrawBackground;
- GalDrawBulletsFunction = ScrambleDrawBullets;
- GalRenderFrameFunction = ScramblerRenderFrame;
-
- return nRet;
-}
-
-struct BurnDriver BurnDrvBlkhole = {
- "blkhole", NULL, NULL, NULL, "1981",
- "Black Hole\0", NULL, "TDS", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, BlkholeRomInfo, BlkholeRomName, NULL, NULL, BlkholeInputInfo, BlkholeDIPInfo,
- GalInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvOrbitron = {
- "orbitron", NULL, NULL, NULL, "19??",
- "Orbitron\0", NULL, "Signatron USA", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_SHOOT, 0,
- NULL, OrbitronRomInfo, OrbitronRomName, NULL, NULL, OrbitronInputInfo, OrbitronDIPInfo,
- OrbitronInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvLuctoday = {
- "luctoday", NULL, NULL, NULL, "1980",
- "Lucky Today\0", "Bad colours", "Sigma", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL, 2, HARDWARE_GALAXIAN, GBF_CASINO, 0,
- NULL, LuctodayRomInfo, LuctodayRomName, NULL, NULL, LuctodayInputInfo, LuctodayDIPInfo,
- LuctodayInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvChewing = {
- "chewing", "luctoday", NULL, NULL, "1980",
- "Chewing Gum\0", NULL, "unknown", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED, 2, HARDWARE_GALAXIAN, GBF_CASINO, 0,
- NULL, ChewingRomInfo, ChewingRomName, NULL, NULL, LuctodayInputInfo, LuctodayDIPInfo,
- ChewingInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvCatacomb = {
- "catacomb", NULL, NULL, NULL, "1982",
- "Catacomb\0", "Bad Colours", "MTM Games", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, CatacombRomInfo, CatacombRomName, NULL, NULL, OmegabInputInfo, CatacombDIPInfo,
- CatacombInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvOmegab = {
- "omegab", "theend", NULL, NULL, "19??",
- "Omega\0", NULL, "bootleg?", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_BOOTLEG | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, OmegabRomInfo, OmegabRomName, NULL, NULL, OmegabInputInfo, OmegabDIPInfo,
- GalInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvWarofbug = {
- "warofbug", NULL, NULL, NULL, "1981",
- "War of the Bugs or Monsterous Manouvers in a Mushroom Maze\0", NULL, "Armenia", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, WarofbugRomInfo, WarofbugRomName, NULL, NULL, WarofbugInputInfo, WarofbugDIPInfo,
- GalInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriverD BurnDrvWarofbugg = {
- "warofbugg", "warofbug", NULL, NULL, "1981",
- "War of the Bugs or Monsterous Manouvers in a Mushroom Maze (German)\0", NULL, "Armenia", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, WarofbuggRomInfo, WarofbuggRomName, NULL, NULL, WarofbugInputInfo, WarofbugDIPInfo,
- GalInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvWarofbugu = {
- "warofbugu", "warofbug", NULL, NULL, "1981",
- "War of the Bugs or Monsterous Manouvers in a Mushroom Maze (US)\0", NULL, "Armenia", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, WarofbuguRomInfo, WarofbuguRomName, NULL, NULL, WarofbugInputInfo, WarofbugDIPInfo,
- GalInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvRedufo = {
- "redufo", NULL, NULL, NULL, "1981",
- "Defend the Terra Attack on the Red UFO\0", NULL, "Artic", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, RedufoRomInfo, RedufoRomName, NULL, NULL, GalaxianInputInfo, RedufoDIPInfo,
- GalInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvRedufob = {
- "redufob", "redufo", NULL, NULL, "1981",
- "Defend the Terra Attack on the Red UFO (bootleg)\0", NULL, "bootleg", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_BOOTLEG | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, RedufobRomInfo, RedufobRomName, NULL, NULL, GalaxianInputInfo, RedufobDIPInfo,
- GalInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvExodus = {
- "exodus", "redufo", NULL, NULL, "19??",
- "Exodus (bootleg?)\0", NULL, "Subelectro", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_BOOTLEG, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, ExodusRomInfo, ExodusRomName, NULL, NULL, OmegabInputInfo, ExodusDIPInfo,
- GalInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvTdpgal = {
- "tdpgal", NULL, NULL, NULL, "1983",
- "Triple Draw Poker\0", NULL, "Design Labs / Thomas Automatics", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_BOOTLEG, 2, HARDWARE_GALAXIAN, GBF_CASINO, 0,
- NULL, TdpgalRomInfo, TdpgalRomName, NULL, NULL, TdpgalInputInfo, NULL,
- TdpgalInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvAzurian = {
- "azurian", NULL, NULL, NULL, "1982",
- "Azurian Attack\0", NULL, "Rait Electronics Ltd", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_SHOOT, 0,
- NULL, AzurianRomInfo, AzurianRomName, NULL, NULL, AzurianInputInfo, AzurianDIPInfo,
- AzurianInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvTazzmang = {
- "tazzmang", "tazmania", NULL, NULL, "1982",
- "Tazz-Mania (bootleg on Galaxian hardware)\0", NULL, "bootleg", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_BOOTLEG | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_MAZE, 0,
- NULL, TazzmangRomInfo, TazzmangRomName, NULL, NULL, TazzmangInputInfo, TazzmangDIPInfo,
- TazzmangInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvTazzmang2 = {
- "tazzmang2", "tazmania", NULL, NULL, "1982",
- "Tazz-Mania (bootleg on Galaxian hardware with Starfield)\0", NULL, "bootleg", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_BOOTLEG | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_MAZE, 0,
- NULL, Tazzmang2RomInfo, Tazzmang2RomName, NULL, NULL, TazzmangInputInfo, TazzmangDIPInfo,
- TazzmangInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvScramblb = {
- "scramblb", "scramble", NULL, NULL, "1981",
- "Scramble (bootleg on Galaxian hardware)\0", NULL, "bootleg", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_BOOTLEG | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_HORSHOOT, 0,
- NULL, ScramblbRomInfo, ScramblbRomName, NULL, NULL, ScramblbInputInfo, ScramblbDIPInfo,
- ScramblbInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvScramb2 = {
- "scramb2", "scramble", NULL, NULL, "1981",
- "Scramble (bootleg)\0", NULL, "bootleg", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_BOOTLEG | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_HORSHOOT, 0,
- NULL, Scramb2RomInfo, Scramb2RomName, NULL, NULL, Scramb2InputInfo, Scramb2DIPInfo,
- Scramb2Init, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvScrambler = {
- "scrambler", "scramble", NULL, NULL, "1981",
- "Scramble (Reben S.A. Spanish bootleg)\0", NULL, "bootleg (Reben S.A.)", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_BOOTLEG | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_HORSHOOT, 0,
- NULL, ScramblerRomInfo, ScramblerRomName, NULL, NULL, ScramblerInputInfo, ScramblerDIPInfo,
- ScramblerInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-// Extra chars controlled via bank at 0x6002
-static struct BurnRomInfo PiscesRomDesc[] = {
- { "p1.bin", 0x00800, 0x40c5b0e4, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "p2.bin", 0x00800, 0x055f9762, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "p3.bin", 0x00800, 0x3073dd04, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "p4.bin", 0x00800, 0x44aaf525, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "p5.bin", 0x00800, 0xfade512b, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "p6.bin", 0x00800, 0x5ab2822f, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "g09.bin", 0x00800, 0x9503a23a, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "g11.bin", 0x00800, 0x0adfc3fe, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "g10.bin", 0x00800, 0x3e61f849, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "g12.bin", 0x00800, 0x7130e9eb, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "colour.bin", 0x00020, 0x57a45057, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Pisces)
-STD_ROM_FN(Pisces)
-
-static struct BurnRomInfo PiscesbRomDesc[] = {
- { "pisces.a1", 0x00800, 0x856b8e1f, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "p2.bin", 0x00800, 0x055f9762, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "pisces.b2", 0x00800, 0x5540f2e4, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "p4.bin", 0x00800, 0x44aaf525, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "p5.bin", 0x00800, 0xfade512b, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "p6.bin", 0x00800, 0x5ab2822f, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "g09.bin", 0x00800, 0x9503a23a, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "g11.bin", 0x00800, 0x0adfc3fe, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "g10.bin", 0x00800, 0x3e61f849, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "g12.bin", 0x00800, 0x7130e9eb, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "colour.bin", 0x00020, 0x57a45057, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Piscesb)
-STD_ROM_FN(Piscesb)
-
-static struct BurnRomInfo OmniRomDesc[] = {
- { "omni1.7f", 0x01000, 0xa9b7acc6, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "omni2.7j", 0x01000, 0x6ade29b7, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "omni3.7f", 0x01000, 0x9e37bb24, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "omni5b.l1", 0x00800, 0x9503a23a, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "omni6c.j22", 0x00800, 0x0adfc3fe, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "omni4a.j1", 0x00800, 0x3e61f849, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "omni7d.l2", 0x00800, 0x7130e9eb, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "colour.bin", 0x00020, 0x57a45057, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Omni)
-STD_ROM_FN(Omni)
-
-static struct BurnRomInfo UniwarsRomDesc[] = {
- { "f07_1a.bin", 0x00800, 0xd975af10, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "h07_2a.bin", 0x00800, 0xb2ed14c3, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "k07_3a.bin", 0x00800, 0x945f4160, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "m07_4a.bin", 0x00800, 0xddc80bc5, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "d08p_5a.bin", 0x00800, 0x62354351, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "gg6", 0x00800, 0x270a3f4d, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "m08p_7a.bin", 0x00800, 0xc9245346, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "n08p_8a.bin", 0x00800, 0x797d45c7, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "egg10", 0x00800, 0x012941e0, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "h01_2.bin", 0x00800, 0xc26132af, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "egg9", 0x00800, 0xfc8b58fd, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "k01_2.bin", 0x00800, 0xdcc2b33b, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "uniwars.clr", 0x00020, 0x25c79518, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Uniwars)
-STD_ROM_FN(Uniwars)
-
-static struct BurnRomInfo UniwarsaRomDesc[] = {
- { "u1", 0x00800, 0xd975af10, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "u2", 0x00800, 0xb2ed14c3, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "u3", 0x00800, 0x945f4160, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "u4", 0x00800, 0xddc80bc5, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "u5", 0x00800, 0xa0847fe4, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "u6", 0x00800, 0x270a3f4d, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "u7", 0x00800, 0xc9245346, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "u8", 0x00800, 0x5760b65c, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "u10", 0x00800, 0x012941e0, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "u12", 0x00800, 0xc26132af, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "u9", 0x00800, 0xfc8b58fd, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "u11", 0x00800, 0xdcc2b33b, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "kareteco.clr", 0x00020, 0x6a0c7d87, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Uniwarsa)
-STD_ROM_FN(Uniwarsa)
-
-static struct BurnRomInfo MltiwarsRomDesc[] = {
- { "g1.bin", 0x00800, 0xd975af10, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "g2.bin", 0x00800, 0xb2ed14c3, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "g3.bin", 0x00800, 0x945f4160, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "g4.bin", 0x00800, 0xef28ec00, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "g5.bin", 0x00800, 0x855ab0dd, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "g6.bin", 0x00800, 0xd915a389, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "g7.bin", 0x00800, 0xc9245346, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "g8.bin", 0x00800, 0x797d45c7, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "g14.bin", 0x01000, 0x227f9e8e, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "g15.bin", 0x01000, 0x3f8b6a24, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "prom.bin", 0x00020, 0x6a0c7d87, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Mltiwars)
-STD_ROM_FN(Mltiwars)
-
-static struct BurnRomInfo GteikokuRomDesc[] = {
- { "f07_1a.bin", 0x00800, 0xd975af10, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "h07_2a.bin", 0x00800, 0xb2ed14c3, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "k07_3a.bin", 0x00800, 0x945f4160, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "m07_4a.bin", 0x00800, 0xddc80bc5, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "d08p_5a.bin", 0x00800, 0x62354351, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "e08p_6a.bin", 0x00800, 0xd915a389, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "m08p_7a.bin", 0x00800, 0xc9245346, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "n08p_8a.bin", 0x00800, 0x797d45c7, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "h01_1.bin", 0x00800, 0x8313c959, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "h01_2.bin", 0x00800, 0xc26132af, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "k01_1.bin", 0x00800, 0xc9d4537e, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "k01_2.bin", 0x00800, 0xdcc2b33b, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "l06_prom.bin", 0x00020, 0x6a0c7d87, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Gteikoku)
-STD_ROM_FN(Gteikoku)
-
-static struct BurnRomInfo GteikokubRomDesc[] = {
- { "1.bin", 0x00800, 0xbf00252f, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2.bin", 0x00800, 0xf712b7d5, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "k07_3a.bin", 0x00800, 0x945f4160, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "4.bin", 0x00800, 0x808a39a8, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "5.bin", 0x00800, 0x36fe6e67, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "6.bin", 0x00800, 0xc5ea67e8, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "m08p_7a.bin", 0x00800, 0xc9245346, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "8.bin", 0x00800, 0x28df3229, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "h01_1.bin", 0x00800, 0x8313c959, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "h01_2.bin", 0x00800, 0xc26132af, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "k01_1.bin", 0x00800, 0xc9d4537e, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "k01_2.bin", 0x00800, 0xdcc2b33b, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "l06_prom.bin", 0x00020, 0x6a0c7d87, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Gteikokub)
-STD_ROM_FN(Gteikokub)
-
-static struct BurnRomInfo Gteikokub2RomDesc[] = {
- { "94gnog.bin", 0x00800, 0x67ec3235, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "92gnog.bin", 0x00800, 0x813c41f2, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "k07_3a.bin", 0x00800, 0x945f4160, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "1gnog.bin", 0x00800, 0x49ff9658, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "5.bin", 0x00800, 0x36fe6e67, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "e08p_6a.bin", 0x00800, 0xd915a389, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "m08p_7a.bin", 0x00800, 0xc9245346, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "98gnog.bin", 0x00800, 0xe9d4ad3c, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "h01_1.bin", 0x00800, 0x8313c959, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "h01_2.bin", 0x00800, 0xc26132af, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "k01_1.bin", 0x00800, 0xc9d4537e, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "k01_2.bin", 0x00800, 0xdcc2b33b, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "l06_prom.bin", 0x00020, 0x6a0c7d87, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Gteikokub2)
-STD_ROM_FN(Gteikokub2)
-
-static struct BurnRomInfo SpacbattRomDesc[] = {
- { "sb1", 0x00800, 0xd975af10, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "sb2", 0x00800, 0xb2ed14c3, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "sb3", 0x00800, 0x945f4160, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "sb4", 0x00800, 0x8229835c, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "sb5", 0x00800, 0xf51ef930, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "sb6", 0x00800, 0xd915a389, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "sb7", 0x00800, 0xc9245346, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "sb8", 0x00800, 0xe59ff1ae, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "sb12", 0x00800, 0x8313c959, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "sb14", 0x00800, 0xc26132af, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "sb11", 0x00800, 0xc9d4537e, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "sb13", 0x00800, 0x92454380, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "6l.bpr", 0x00020, 0xc3ac9467, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Spacbatt)
-STD_ROM_FN(Spacbatt)
-
-static struct BurnRomInfo Spacbat2RomDesc[] = {
- { "sb1", 0x00800, 0xd975af10, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "sb2", 0x00800, 0xb2ed14c3, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "sb.3", 0x00800, 0xc25ce4c1, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "sb4", 0x00800, 0x8229835c, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "sb5", 0x00800, 0xf51ef930, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "sb6", 0x00800, 0xd915a389, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "sb7", 0x00800, 0xc9245346, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "sb8", 0x00800, 0xe59ff1ae, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "sb12", 0x00800, 0x8313c959, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "sb14", 0x00800, 0xc26132af, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "sb11", 0x00800, 0xc9d4537e, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "k01_2.bin", 0x00800, 0xdcc2b33b, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "l06_prom.bin", 0x00020, 0x6a0c7d87, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Spacbat2)
-STD_ROM_FN(Spacbat2)
-
-static struct BurnRomInfo SpacemprRomDesc[] = {
- { "uw01", 0x00800, 0x7c64fb92, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "uw02", 0x00800, 0xb2ed14c3, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "uw03", 0x00800, 0x945f4160, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "uw04", 0x00800, 0x84885060, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "uw05", 0x00800, 0xe342371d, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "uw06", 0x00800, 0xd915a389, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "uw07", 0x00800, 0xc9245346, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "uw08", 0x00800, 0xa237c394, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "uw10", 0x00800, 0xaf069cba, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "uw12", 0x00800, 0xc26132af, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "uw09", 0x00800, 0xff2c20d5, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "uw11", 0x00800, 0xdcc2b33b, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "mmi6331", 0x00020, 0x6a0c7d87, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Spacempr)
-STD_ROM_FN(Spacempr)
-
-static struct BurnRomInfo SkyraidrRomDesc[] = {
- { "f07_1a.bin", 0x00800, 0xd975af10, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "h07_2a.bin", 0x00800, 0xb2ed14c3, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "k07_3a.bin", 0x00800, 0x945f4160, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "sr.04", 0x00800, 0x9f61d1f8, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "sr.05", 0x00800, 0x4352af0a, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "sr.06", 0x00800, 0xd915a389, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "m08p_7a.bin", 0x00800, 0xc9245346, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "n08p_8a.bin", 0x00800, 0x797d45c7, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "sr.10", 0x00800, 0xaf069cba, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "h01_2.bin", 0x00800, 0xc26132af, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "sr.09", 0x00800, 0xff2c20d5, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "k01_2.bin", 0x00800, 0xdcc2b33b, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "uniwars.clr", 0x00020, 0x25c79518, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Skyraidr)
-STD_ROM_FN(Skyraidr)
-
-static struct BurnRomInfo GalempRomDesc[] = {
- { "1", 0x00800, 0xd975af10, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2", 0x00800, 0xb2ed14c3, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "3", 0x00800, 0x945f4160, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "4", 0x00800, 0xdf7a13ea, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "5", 0x00800, 0xff6128a2, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "6", 0x00800, 0xd915a389, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "7", 0x00800, 0xc9245346, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "8", 0x00800, 0x797d45c7, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "10", 0x00800, 0x30177b93, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "12", 0x00800, 0xc26132af, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "9", 0x00800, 0x7e8dcc13, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "11", 0x00800, 0xdcc2b33b, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "l06_prom.bin", 0x00020, 0x6a0c7d87, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Galemp)
-STD_ROM_FN(Galemp)
-
-static struct BurnRomInfo AsideralRomDesc[] = {
- { "1401.7f", 0x00800, 0x82a9da91, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "1302.7h", 0x00800, 0xcc59b49c, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "1203.7k", 0x00800, 0x3bc5a165, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "1104.7m", 0x00800, 0xc50149d0, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "5.8f", 0x00800, 0x17720c9e, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "6.8f", 0x00800, 0xf157a8db, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "7.8f", 0x00800, 0x75085cb6, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "8.8f", 0x00800, 0x797d45c7, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "u10.j2", 0x00800, 0x012941e0, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "u12.j2", 0x00800, 0xc26132af, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "u9.l2", 0x00800, 0xfc8b58fd, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "u11.l2", 0x00800, 0xdcc2b33b, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "uniwars.clr", 0x00020, 0x25c79518, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Asideral)
-STD_ROM_FN(Asideral)
-
-static struct BurnRomInfo PajaroesRomDesc[] = {
- { "pea.rom", 0x00800, 0x82a9da91, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "peb.rom", 0x00800, 0xcc59b49c, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "pec.rom", 0x00800, 0x3bc5a165, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "ped.rom", 0x00800, 0xc50149d0, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "pe05.rom", 0x00800, 0xcb461871, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "pe04.rom", 0x00800, 0xf157a8db, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "pe03.rom", 0x00800, 0x75085cb6, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "pe02.rom", 0x00800, 0x797d45c7, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "pe07.rom", 0x00800, 0x012941e0, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "pe09.rom", 0x00800, 0xc26132af, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "pe06.rom", 0x00800, 0xfc8b58fd, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "pe08.rom", 0x00800, 0xdcc2b33b, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "uniwars.clr", 0x00020, 0x25c79518, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Pajaroes)
-STD_ROM_FN(Pajaroes)
-
-void __fastcall PiscesZ80Write(UINT16 a, UINT8 d)
-{
- if (a >= 0x5800 && a <= 0x58ff) {
- INT32 Offset = a - 0x5800;
-
- GalSpriteRam[Offset] = d;
-
- if (Offset < 0x40) {
- if ((Offset & 0x01) == 0) {
- GalScrollVals[Offset >> 1] = d;
- }
- }
-
- return;
- }
-
- switch (a) {
- case 0x6000:
- case 0x6001: {
- // start_lamp_w
- return;
- }
-
- case 0x6002: {
- GalGfxBank[0] = d;
- return;
- }
-
- case 0x6003: {
- // coin_count_0_w
- return;
- }
-
- case 0x6004:
- case 0x6005:
- case 0x6006:
- case 0x6007: {
- GalaxianLfoFreqWrite(a - 0x6004, d);
- return;
- }
-
- case 0x6800:
- case 0x6801:
- case 0x6802:
- case 0x6803:
- case 0x6804:
- case 0x6805:
- case 0x6806:
- case 0x6807: {
- GalaxianSoundWrite(a - 0x6800, d);
- return;
- }
-
- case 0x7001: {
- GalIrqFire = d & 1;
- return;
- }
-
- case 0x7004: {
- GalStarsEnable = d & 0x01;
- if (!GalStarsEnable) GalStarsScrollPos = -1;
- return;
- }
-
- case 0x7006: {
- GalFlipScreenX = d & 1;
- return;
- }
-
- case 0x7007: {
- GalFlipScreenY = d & 1;
- return;
- }
-
- case 0x7800: {
- GalPitch = d;
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Write => %04X, %02X\n"), a, d);
- }
- }
-}
-
-static void PiscesInstallGfxBankHandler()
-{
- ZetOpen(0);
- ZetSetWriteHandler(PiscesZ80Write);
- ZetClose();
-}
-
-static INT32 PiscesInit()
-{
- GalPostLoadCallbackFunction = PiscesInstallGfxBankHandler;
- GalExtendTileInfoFunction = PiscesExtendTileInfo;
- GalExtendSpriteInfoFunction = PiscesExtendSpriteInfo;
-
- return GalInit();
-}
-
-struct BurnDriver BurnDrvPisces = {
- "pisces", NULL, NULL, NULL, "19??",
- "Pisces\0", NULL, "Subelectro", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, PiscesRomInfo, PiscesRomName, NULL, NULL, PicsesInputInfo, PiscesDIPInfo,
- PiscesInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvPiscesb = {
- "piscesb", "pisces", NULL, NULL, "19??",
- "Pisces (bootleg)\0", NULL, "bootleg", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_BOOTLEG, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, PiscesbRomInfo, PiscesbRomName, NULL, NULL, PicsesInputInfo, PiscesbDIPInfo,
- PiscesInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvOmni = {
- "omni", "pisces", NULL, NULL, "19??",
- "Omni\0", NULL, "bootleg", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_BOOTLEG, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, OmniRomInfo, OmniRomName, NULL, NULL, OmegabInputInfo, PiscesbDIPInfo,
- PiscesInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvUniwars = {
- "uniwars", NULL, NULL, NULL, "1980",
- "UniWar S\0", NULL, "Irem", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, UniwarsRomInfo, UniwarsRomName, NULL, NULL, GalaxianInputInfo, SupergDIPInfo,
- PiscesInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvUniwarsa = {
- "uniwarsa", "uniwars", NULL, NULL, "1980",
- "UniWar S (bootleg)\0", NULL, "bootleg (Karateco)", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, UniwarsaRomInfo, UniwarsaRomName, NULL, NULL, GalaxianInputInfo, SupergDIPInfo,
- PiscesInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvMltiwars = {
- "mltiwars", "uniwars", NULL, NULL, "1980",
- "Multi Wars (bootleg of UniWar S)\0", NULL, "bootleg (Gayton Games)", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, MltiwarsRomInfo, MltiwarsRomName, NULL, NULL, GalaxianInputInfo, SupergDIPInfo,
- PiscesInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvGteikoku = {
- "gteikoku", "uniwars", NULL, NULL, "1980",
- "Gingateikoku No Gyakushu\0", NULL, "Irem", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, GteikokuRomInfo, GteikokuRomName, NULL, NULL, GalaxianInputInfo, SupergDIPInfo,
- PiscesInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvGteikokub = {
- "gteikokub", "uniwars", NULL, NULL, "1980",
- "Gingateikoku No Gyakushu (bootleg set 1)\0", NULL, "bootleg", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_BOOTLEG, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, GteikokubRomInfo, GteikokubRomName, NULL, NULL, OmegabInputInfo, GteikokubDIPInfo,
- PiscesInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvGteikokub2 = {
- "gteikokub2", "uniwars", NULL, NULL, "1980",
- "Gingateikoku No Gyakushu (bootleg set 2)\0", NULL, "bootleg", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_BOOTLEG, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, Gteikokub2RomInfo, Gteikokub2RomName, NULL, NULL, OmegabInputInfo, Gteikokub2DIPInfo,
- PiscesInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvSpacbatt = {
- "spacbatt", "uniwars", NULL, NULL, "1980",
- "Space Battle (bootleg set 1)\0", NULL, "bootleg", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_BOOTLEG | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, SpacbattRomInfo, SpacbattRomName, NULL, NULL, GalaxianInputInfo, SpacbattDIPInfo,
- PiscesInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvSpacbat2 = {
- "spacbat2", "uniwars", NULL, NULL, "1980",
- "Space Battle (bootleg set 2)\0", NULL, "bootleg", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_BOOTLEG, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, Spacbat2RomInfo, Spacbat2RomName, NULL, NULL, GalaxianInputInfo, SpacbattDIPInfo,
- PiscesInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvSpacempr = {
- "spacempr", "uniwars", NULL, NULL, "1980",
- "Space Empire (bootleg)\0", NULL, "bootleg", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_BOOTLEG | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, SpacemprRomInfo, SpacemprRomName, NULL, NULL, GalaxianInputInfo, SpacbattDIPInfo,
- PiscesInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvSkyraidr = {
- "skyraidr", "uniwars", NULL, NULL, "1980",
- "Sky Raiders\0", NULL, "bootleg", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_BOOTLEG, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, SkyraidrRomInfo, SkyraidrRomName, NULL, NULL, GalaxianInputInfo, SupergDIPInfo,
- PiscesInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvGalemp = {
- "galemp", "uniwars", NULL, NULL, "1980",
- "Galaxy Empire (bootleg?)\0", NULL, "bootleg (Taito do Brasil)", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_BOOTLEG, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, GalempRomInfo, GalempRomName, NULL, NULL, GalaxianInputInfo, SupergDIPInfo,
- PiscesInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvAsideral = {
- "asideral", "uniwars", NULL, NULL, "1980",
- "Ataque Sideral (Spanish bootleg of UniWar S)\0", NULL, "bootleg (Electrogame S.A.)", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_BOOTLEG, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, AsideralRomInfo, AsideralRomName, NULL, NULL, GalaxianInputInfo, AsideralDIPInfo,
- PiscesInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvPajaroes = {
- "pajaroes", "uniwars", NULL, NULL, "1980",
- "Pajaro del Espacio (Spanish bootleg of UniWar S)\0", NULL, "bootleg (PSV S.A.)", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_BOOTLEG, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, PajaroesRomInfo, PajaroesRomName, NULL, NULL, GalaxianInputInfo, AsideralDIPInfo,
- PiscesInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-// Extra chars contolled via different banking at 0x6002
-static struct BurnRomInfo Batman2RomDesc[] = {
- { "01.bin", 0x00800, 0x150fbca5, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "02.bin", 0x00800, 0xb1624fd0, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "03.bin", 0x00800, 0x93774188, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "04.bin", 0x00800, 0x8a94ec6c, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "05.bin", 0x00800, 0xa3669461, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "06.bin", 0x00800, 0xfa1efbfe, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "07.bin", 0x00800, 0x9b77debd, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "08.bin", 0x00800, 0x6466177e, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "09.bin", 0x00800, 0x1a657b1f, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "11.bin", 0x00800, 0x7a2b48e5, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "10.bin", 0x00800, 0x9b570016, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "12.bin", 0x00800, 0x73956244, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "l06_prom.bin", 0x00020, 0x6a0c7d87, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Batman2)
-STD_ROM_FN(Batman2)
-
-static struct BurnRomInfo LadybuggRomDesc[] = {
- { "lbuggx.1", 0x00800, 0xe67e241d, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "lbuggx.2", 0x00800, 0x3cb1fb9a, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "lbuggx.3", 0x00800, 0x0937009e, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "lbuggx.4", 0x00800, 0x3e773f62, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "lbuggx.5", 0x00800, 0x2b0d42e5, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "lbuggx.6", 0x00800, 0x159f9433, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "lbuggx.7", 0x00800, 0xf2be06d5, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "lbuggx.8", 0x00800, 0x646fe79f, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "lbuggx.a", 0x01000, 0x7efb9dc5, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "lbuggx.b", 0x01000, 0x351d4ddc, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "lbuggx.clr", 0x00020, 0x4e3caeab, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Ladybugg)
-STD_ROM_FN(Ladybugg)
-
-static INT32 Batman2Init()
-{
- GalPostLoadCallbackFunction = PiscesInstallGfxBankHandler;
- GalExtendTileInfoFunction = Batman2ExtendTileInfo;
- GalExtendSpriteInfoFunction = UpperExtendSpriteInfo;
-
- return GalInit();
-}
-
-static INT32 LadybuggInit()
-{
- INT32 nRet;
-
- GalPostLoadCallbackFunction = PiscesInstallGfxBankHandler;
- GalExtendTileInfoFunction = Batman2ExtendTileInfo;
- GalExtendSpriteInfoFunction = UpperExtendSpriteInfo;
-
- nRet = GalInit();
-
- UINT8 *TempRom = (UINT8*)BurnMalloc(0x1000);
- GalTempRom = (UINT8*)BurnMalloc(GalTilesSharedRomSize);
- BurnLoadRom(TempRom + 0x0000, GAL_ROM_OFFSET_TILES_SHARED + 0, 1);
- memcpy(GalTempRom + 0x0800, TempRom + 0x0000, 0x800);
- memcpy(GalTempRom + 0x0000, TempRom + 0x0800, 0x800);
- BurnLoadRom(TempRom + 0x0000, GAL_ROM_OFFSET_TILES_SHARED + 1, 1);
- memcpy(GalTempRom + 0x1800, TempRom + 0x0000, 0x800);
- memcpy(GalTempRom + 0x1000, TempRom + 0x0800, 0x800);
- GfxDecode(GalNumChars, 2, 8, 8, CharPlaneOffsets, CharXOffsets, CharYOffsets, 0x40, GalTempRom, GalChars);
- GfxDecode(GalNumSprites, 2, 16, 16, SpritePlaneOffsets, SpriteXOffsets, SpriteYOffsets, 0x100, GalTempRom, GalSprites);
- BurnFree(GalTempRom);
- BurnFree(TempRom);
-
- return nRet;
-}
-
-struct BurnDriver BurnDrvBatman2 = {
- "batman2", "phoenix", NULL, NULL, "1981",
- "Batman Part 2\0", NULL, "bootleg", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_BOOTLEG, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, Batman2RomInfo, Batman2RomName, NULL, NULL, Batman2InputInfo, Batman2DIPInfo,
- Batman2Init, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvLadybugg = {
- "ladybugg", "ladybug", NULL, NULL, "1983",
- "Lady Bug (bootleg on Galaxian hardware)\0", NULL, "bootleg", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_BOOTLEG, 2, HARDWARE_GALAXIAN, GBF_MAZE, 0,
- NULL, LadybuggRomInfo, LadybuggRomName, NULL, NULL, LadybuggInputInfo, LadybuggDIPInfo,
- LadybuggInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-// Seperate sprite/tile roms
-static struct BurnRomInfo StreakngRomDesc[] = {
- { "sk1", 0x01000, 0xc8866ccb, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "sk2", 0x01000, 0x7caea29b, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "sk3", 0x01000, 0x7b4bfa76, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "sk4", 0x01000, 0x056fc921, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "sk5", 0x01000, 0xd27f1e0c, BRF_GRA | GAL_ROM_TILES_CHARS },
-
- { "sk6", 0x01000, 0xa7089588, BRF_GRA | GAL_ROM_TILES_SPRITES },
-
- { "sk.bpr", 0x00020, 0xbce79607, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Streakng)
-STD_ROM_FN(Streakng)
-
-static struct BurnRomInfo StreakngaRomDesc[] = {
- { "st1.bin", 0x00800, 0xc827e124, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "st2.bin", 0x00800, 0xb01d4f8f, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "st3.bin", 0x00800, 0xc7a9c493, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "st4.bin", 0x00800, 0x12487c75, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "5st.bin", 0x00800, 0xf9f9e2be, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "6st.bin", 0x00800, 0xc22fe6c2, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "7st.bin", 0x00800, 0x9cd7869a, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "8st.bin", 0x00800, 0x5e750ad3, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "11.bin", 0x00800, 0xcddd8924, BRF_GRA | GAL_ROM_TILES_CHARS },
- { "12.bin", 0x00800, 0x10cda095, BRF_GRA | GAL_ROM_TILES_CHARS },
-
- { "9.bin", 0x00800, 0x6a2a8a0f, BRF_GRA | GAL_ROM_TILES_SPRITES },
- { "10.bin", 0x00800, 0x3563dfbe, BRF_GRA | GAL_ROM_TILES_SPRITES },
-
- { "sk.bpr", 0x00020, 0xbce79607, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Streaknga)
-STD_ROM_FN(Streaknga)
-
-static struct BurnRomInfo PacmanblRomDesc[] = {
- { "1", 0x00800, 0x6718df42, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2", 0x00800, 0x33be3648, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "3", 0x00800, 0xf98c0ceb, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "4", 0x00800, 0xa9cd0082, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "5", 0x00800, 0x6d475afc, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "6", 0x00800, 0xcbe863d3, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "7", 0x00800, 0x7daef758, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "12", 0x00800, 0xb2ed320b, BRF_GRA | GAL_ROM_TILES_CHARS },
- { "11", 0x00800, 0xab88b2c4, BRF_GRA | GAL_ROM_TILES_CHARS },
-
- { "10", 0x00800, 0x44a45b72, BRF_GRA | GAL_ROM_TILES_SPRITES },
- { "9", 0x00800, 0xfa84659f, BRF_GRA | GAL_ROM_TILES_SPRITES },
-
- { "sn74s288n.6l", 0x00020, 0x24652bc4, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Pacmanbl)
-STD_ROM_FN(Pacmanbl)
-
-static struct BurnRomInfo PacmanblaRomDesc[] = {
- { "rom1.bin", 0x01000, 0x75e4f967, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "rom2.bin", 0x01000, 0x5b2e4293, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "rom3.bin", 0x01000, 0xc06e30a4, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "rom4.bin", 0x01000, 0x592b4ba8, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "rom5.bin", 0x01000, 0xf2d8c01e, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "rom6.bin", 0x01000, 0x346a1720, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "sn74s288n.6l", 0x00020, 0x24652bc4, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Pacmanbla)
-STD_ROM_FN(Pacmanbla)
-
-static struct BurnRomInfo GhostmunRomDesc[] = {
- { "pac1.bin", 0x01000, 0x19338c70, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "pac2.bin", 0x01000, 0x18db074d, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "pac3.bin", 0x01000, 0xabb98b1d, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "pac4.bin", 0x01000, 0x2403c78e, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "blpac12b", 0x00800, 0xb2ed320b, BRF_GRA | GAL_ROM_TILES_CHARS },
- { "blpac11b", 0x00800, 0xab88b2c4, BRF_GRA | GAL_ROM_TILES_CHARS },
-
- { "blpac10b", 0x00800, 0x44a45b72, BRF_GRA | GAL_ROM_TILES_SPRITES },
- { "blpac9b", 0x00800, 0xfa84659f, BRF_GRA | GAL_ROM_TILES_SPRITES },
-
- { "ghostmun.clr", 0x00020, 0x759647e3, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Ghostmun)
-STD_ROM_FN(Ghostmun)
-
-static struct BurnRomInfo Phoenxp2RomDesc[] = {
- { "1", 0x00800, 0xf6dcfd51, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2", 0x00800, 0xde951936, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "3", 0x00800, 0x7a3af2da, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "4", 0x00800, 0xc820ad32, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "5", 0x00800, 0x08e83233, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "6", 0x00800, 0xf31fb9d6, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "7", 0x00800, 0xd3a480c1, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "8", 0x00800, 0xedf9779e, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "10", 0x00800, 0x9b570016, BRF_GRA | GAL_ROM_TILES_CHARS },
- { "09", 0x00800, 0x1a657b1f, BRF_GRA | GAL_ROM_TILES_CHARS },
-
- { "12", 0x00800, 0x73956244, BRF_GRA | GAL_ROM_TILES_SPRITES },
- { "11", 0x00800, 0x7a2b48e5, BRF_GRA | GAL_ROM_TILES_SPRITES },
-
- { "sn74s288n.6l", 0x00020, 0x6a0c7d87, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Phoenxp2)
-STD_ROM_FN(Phoenxp2)
-
-static struct BurnRomInfo AtlantisbRomDesc[] = {
- { "1", 0x00800, 0x2b612351, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2", 0x00800, 0xb1c970e9, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "3", 0x00800, 0x63c3783e, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "4", 0x00800, 0x45f7cf34, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "5", 0x00800, 0xf335b96b, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "6", 0x00800, 0xa50bf8d5, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "8", 0x00800, 0x55cd5acd, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "7", 0x00800, 0x72e773b8, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "sn74s288n.6l", 0x00020, 0x6a0c7d87, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Atlantisb)
-STD_ROM_FN(Atlantisb)
-
-UINT8 __fastcall GhostmunZ80Read(UINT16 a)
-{
- switch (a) {
- case 0x6000: {
- return GalInput[0] | GalDip[0];
- }
-
- case 0x6800: {
- return GalInput[1] | GalDip[1];
- }
-
- case 0x7000: {
- return GalInput[2] | GalDip[2];
- }
-
- case 0x7800: {
- // watchdog read
- return 0xff;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Read => %04X\n"), a);
- }
- }
-
- return 0x00;
-}
-
-static INT32 PacmanblInit()
-{
- INT32 nRet = GalInit();
-
- GalSpriteClipStart = 7;
- GalSpriteClipEnd = 246;
-
- return nRet;
-}
-
-static void PacmanblaRearrangeRom()
-{
- GalTempRom = (UINT8*)BurnMalloc(GalZ80Rom1Size);
- memcpy(GalTempRom, GalZ80Rom1, GalZ80Rom1Size);
- memcpy(GalZ80Rom1 + 0x0000, GalTempRom + 0x0000, 0x800);
- memcpy(GalZ80Rom1 + 0x2000, GalTempRom + 0x0800, 0x800);
- memcpy(GalZ80Rom1 + 0x0800, GalTempRom + 0x1000, 0x800);
- memcpy(GalZ80Rom1 + 0x2800, GalTempRom + 0x1800, 0x800);
- memcpy(GalZ80Rom1 + 0x1000, GalTempRom + 0x2000, 0x800);
- memcpy(GalZ80Rom1 + 0x3000, GalTempRom + 0x2800, 0x800);
- memcpy(GalZ80Rom1 + 0x1800, GalTempRom + 0x3000, 0x800);
- memcpy(GalZ80Rom1 + 0x3800, GalTempRom + 0x3800, 0x800);
- BurnFree(GalTempRom);
-}
-
-static INT32 PacmanblaInit()
-{
- INT32 nRet;
-
- GalPostLoadCallbackFunction = PacmanblaRearrangeRom;
-
- nRet = PacmanblInit();
-
- GalNumChars = 0x100;
- GalNumSprites = 0x40;
- CharPlaneOffsets[1] = 0x4000;
- SpritePlaneOffsets[1] = 0x4000;
-
- UINT8 *TempRom = (UINT8*)BurnMalloc(0x2000);
- GalTempRom = (UINT8*)BurnMalloc(GalTilesSharedRomSize);
- BurnLoadRom(TempRom + 0x0000, GAL_ROM_OFFSET_TILES_SHARED + 0, 1);
- BurnLoadRom(TempRom + 0x1000, GAL_ROM_OFFSET_TILES_SHARED + 1, 1);
- memcpy(GalTempRom + 0x0000, TempRom + 0x0800, 0x800);
- memcpy(GalTempRom + 0x0800, TempRom + 0x1800, 0x800);
- memcpy(GalTempRom + 0x1000, TempRom + 0x0000, 0x800);
- memcpy(GalTempRom + 0x1800, TempRom + 0x1000, 0x800);
- GfxDecode(GalNumChars, 2, 8, 8, CharPlaneOffsets, CharXOffsets, CharYOffsets, 0x40, GalTempRom, GalChars);
- GfxDecode(GalNumSprites, 2, 16, 16, SpritePlaneOffsets, SpriteXOffsets, SpriteYOffsets, 0x100, GalTempRom + 0x1000, GalSprites);
- BurnFree(GalTempRom);
- BurnFree(TempRom);
-
- return nRet;
-}
-
-static void GhostmunInstallHandler()
-{
- ZetOpen(0);
- ZetSetReadHandler(GhostmunZ80Read);
- ZetClose();
-}
-
-static INT32 GhostmunInit()
-{
- GalPostLoadCallbackFunction = GhostmunInstallHandler;
-
- INT32 nRet = GalInit();
-
- GalSpriteClipStart = 7;
- GalSpriteClipEnd = 246;
-
- return nRet;
-}
-
-static void AtlantisbRearrangeRom()
-{
- GalTempRom = (UINT8*)BurnMalloc(0x3000);
-
- memcpy(GalTempRom, GalZ80Rom1, 0x3000);
- memcpy(GalZ80Rom1 + 0x0000, GalTempRom + 0x0000, 0x1000);
- memcpy(GalZ80Rom1 + 0x1800, GalTempRom + 0x1000, 0x2000);
- BurnFree(GalTempRom);
-}
-
-static INT32 AtlantisbInit()
-{
- GalZ80Rom1Size = 0x1000;
-
- GalPostLoadCallbackFunction = AtlantisbRearrangeRom;
-
- return GalInit();
-}
-
-struct BurnDriver BurnDrvStreakng = {
- "streakng", NULL, NULL, NULL, "1981",
- "Streaking (set 1)\0", "Bad Colours", "Shoei", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED, 2, HARDWARE_GALAXIAN, GBF_MAZE, 0,
- NULL, StreakngRomInfo, StreakngRomName, NULL, NULL, StreakngInputInfo, StreakngDIPInfo,
- GalInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvStreaknga = {
- "streaknga", "streakng", NULL, NULL, "1981",
- "Streaking (set 2)\0", "Bad Colours", "Shoei", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED, 2, HARDWARE_GALAXIAN, GBF_MAZE, 0,
- NULL, StreakngaRomInfo, StreakngaRomName, NULL, NULL, StreakngInputInfo, StreakngDIPInfo,
- GalInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvPacmanbl = {
- "pacmanbl", "puckman", NULL, NULL, "1981",
- "Pac-Man (Galaxian hardware, set 1)\0", NULL, "bootleg", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_BOOTLEG | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_MAZE, 0,
- NULL, PacmanblRomInfo, PacmanblRomName, NULL, NULL, PacmanblInputInfo, PacmanblDIPInfo,
- PacmanblInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvPacmanbla = {
- "pacmanbla", "puckman", NULL, NULL, "1981",
- "Pac-Man (Galaxian hardware, set 2)\0", NULL, "bootleg", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_BOOTLEG | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_MAZE, 0,
- NULL, PacmanblaRomInfo, PacmanblaRomName, NULL, NULL, PacmanblInputInfo, PacmanblDIPInfo,
- PacmanblaInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvGhostmun = {
- "ghostmun", "puckman", NULL, NULL, "1981",
- "Ghost Muncher\0", NULL, "Leisure and Allied", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_BOOTLEG | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_MAZE, 0,
- NULL, GhostmunRomInfo, GhostmunRomName, NULL, NULL, StreakngInputInfo, GhostmunDIPInfo,
- GhostmunInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvPhoenxp2 = {
- "phoenxp2", "phoenix", NULL, NULL, "1981",
- "Phoenix Part 2\0", NULL, "bootleg", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_BOOTLEG | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, Phoenxp2RomInfo, Phoenxp2RomName, NULL, NULL, Phoenxp2InputInfo, Phoenxp2DIPInfo,
- PacmanblInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvAtlantisb = {
- "atlantisb", "atlantis", NULL, NULL, "1981",
- "Battle of Atlantis (bootleg)\0", NULL, "bootleg", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_BOOTLEG | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_HORSHOOT, 0,
- NULL, AtlantisbRomInfo, AtlantisbRomName, NULL, NULL, Phoenxp2InputInfo, AtlantisbDIPInfo,
- AtlantisbInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-// Seperate sprite/tile roms with IRQ0 instead of NMI
-static struct BurnRomInfo DevilfsgRomDesc[] = {
- { "dfish1.7f", 0x01000, 0x2ab19698, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "dfish2.7h", 0x01000, 0x4e77f097, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "dfish3.7k", 0x01000, 0x3f16a4c6, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "dfish4.7m", 0x01000, 0x11fc7e59, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "dfish5.1h", 0x01000, 0xace6e31f, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "dfish6.1k", 0x01000, 0xd7a6c4c4, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "82s123.6e", 0x00020, 0x4e3caeab, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Devilfsg)
-STD_ROM_FN(Devilfsg)
-
-static void DevilfsgRearrangeRom()
-{
- GalTempRom = (UINT8*)BurnMalloc(GalZ80Rom1Size);
- memcpy(GalTempRom, GalZ80Rom1, GalZ80Rom1Size);
- memcpy(GalZ80Rom1 + 0x2000, GalTempRom + 0x0000, 0x800);
- memcpy(GalZ80Rom1 + 0x0000, GalTempRom + 0x0800, 0x800);
- memcpy(GalZ80Rom1 + 0x2800, GalTempRom + 0x1000, 0x800);
- memcpy(GalZ80Rom1 + 0x0800, GalTempRom + 0x1800, 0x800);
- memcpy(GalZ80Rom1 + 0x3000, GalTempRom + 0x2000, 0x800);
- memcpy(GalZ80Rom1 + 0x1000, GalTempRom + 0x2800, 0x800);
- memcpy(GalZ80Rom1 + 0x3800, GalTempRom + 0x3000, 0x800);
- memcpy(GalZ80Rom1 + 0x1800, GalTempRom + 0x3800, 0x800);
- BurnFree(GalTempRom);
-}
-
-static INT32 DevilfsgInit()
-{
- INT32 nRet;
-
- GalPostLoadCallbackFunction = DevilfsgRearrangeRom;
-
- nRet = GalInit();
-
- GalNumChars = 0x100;
- GalNumSprites = 0x40;
- CharPlaneOffsets[1] = 0x4000;
- SpritePlaneOffsets[1] = 0x4000;
-
- UINT8 *TempRom = (UINT8*)BurnMalloc(0x2000);
- GalTempRom = (UINT8*)BurnMalloc(0x1000);
- nRet = BurnLoadRom(TempRom + 0x0000, GAL_ROM_OFFSET_TILES_SHARED + 0, 1); if (nRet) return 1;
- nRet = BurnLoadRom(TempRom + 0x1000, GAL_ROM_OFFSET_TILES_SHARED + 1, 1); if (nRet) return 1;
- memcpy(GalTempRom + 0x0000, TempRom + 0x0800, 0x800);
- memcpy(GalTempRom + 0x0800, TempRom + 0x1800, 0x800);
- GfxDecode(GalNumChars, 2, 8, 8, CharPlaneOffsets, CharXOffsets, CharYOffsets, 0x40, GalTempRom, GalChars);
- memcpy(GalTempRom + 0x0000, TempRom + 0x0000, 0x800);
- memcpy(GalTempRom + 0x0800, TempRom + 0x1000, 0x800);
- GfxDecode(GalNumSprites, 2, 16, 16, SpritePlaneOffsets, SpriteXOffsets, SpriteYOffsets, 0x100, GalTempRom, GalSprites);
- BurnFree(GalTempRom);
- BurnFree(TempRom);
-
- GalIrqType = GAL_IRQ_TYPE_IRQ0;
-
- return nRet;
-}
-
-struct BurnDriver BurnDrvDevilfsg = {
- "devilfsg", "devilfsh", NULL, NULL, "1984",
- "Devil Fish (Galaxian hardware, bootleg?)\0", NULL, "Vision / Artic", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_BOOTLEG | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_MAZE, 0,
- NULL, DevilfsgRomInfo, DevilfsgRomName, NULL, NULL, DevilfsgInputInfo, DevilfsgDIPInfo,
- DevilfsgInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-// Sound hardware replaced with AY8910
-static struct BurnRomInfo ZigzagbRomDesc[] = {
- { "zz_d1.7l", 0x01000, 0x8cc08d81, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "zz_d2.7k", 0x01000, 0x326d8d45, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "zz_d4.7f", 0x01000, 0xa94ed92a, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "zz_d3.7h", 0x01000, 0xce5e7a00, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "zz_6.1h", 0x01000, 0x780c162a, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "zz_5.1k", 0x01000, 0xf3cdfec5, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "zzbpr_e9.bin", 0x00020, 0xaa486dd0, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Zigzagb)
-STD_ROM_FN(Zigzagb)
-
-static struct BurnRomInfo Zigzagb2RomDesc[] = {
- { "z1.7l", 0x01000, 0x4c28349a, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "zz_d2.7k", 0x01000, 0x326d8d45, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "zz_d4.7f", 0x01000, 0xa94ed92a, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "zz_d3.7h", 0x01000, 0xce5e7a00, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "zz_6.1h", 0x01000, 0x780c162a, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "zz_5.1k", 0x01000, 0xf3cdfec5, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "zzbpr_e9.bin", 0x00020, 0xaa486dd0, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Zigzagb2)
-STD_ROM_FN(Zigzagb2)
-
-static struct BurnRomInfo Ozon1RomDesc[] = {
- { "rom1.bin", 0x01000, 0x54899e8b, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "rom2.bin", 0x01000, 0x3c90fbfc, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "rom3.bin", 0x01000, 0x79fe313b, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "rom7.bin", 0x00800, 0x464285e8, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "rom8.bin", 0x00800, 0x92056dcc, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "ozon1.clr", 0x00020, 0x605ea6e9, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Ozon1)
-STD_ROM_FN(Ozon1)
-
-void __fastcall ZigzagZ80Write(UINT16 a, UINT8 d)
-{
- if (a >= 0x4800 && a <= 0x4fff) {
- INT32 Offset = a - 0x4800;
-
- switch (Offset & 0x300) {
- case 0x000: {
- if ((Offset & 1) != 0) {
- if ((Offset & 2) == 0) {
- AY8910Write(0, 1, ZigzagAYLatch);
- } else {
- AY8910Write(0, 0, ZigzagAYLatch);
- }
- }
- break;
- }
-
- case 0x100: {
- ZigzagAYLatch = Offset & 0xff;
- break;
- }
- }
- return;
- }
-
- if (a >= 0x5800 && a <= 0x58ff) {
- INT32 Offset = a - 0x5800;
-
- GalSpriteRam[Offset] = d;
-
- if (Offset < 0x40) {
- if ((Offset & 0x01) == 0) {
- GalScrollVals[Offset >> 1] = d;
- }
- }
-
- return;
- }
-
- switch (a) {
- case 0x6000:
- case 0x6001: {
- // start_lamp_w
- return;
- }
-
- case 0x6002: {
- // coin_lock_w
- return;
- }
-
- case 0x6003: {
- // coin_count_0_w
- return;
- }
-
- case 0x7001: {
- GalIrqFire = d & 1;
- return;
- }
-
- case 0x7002: {
- ZetMapArea(0x2000, 0x2fff, 0, GalZ80Rom1 + 0x2000 + (0x1000 * (d & 1)));
- ZetMapArea(0x2000, 0x2fff, 2, GalZ80Rom1 + 0x2000 + (0x1000 * (d & 1)));
- ZetMapArea(0x3000, 0x3fff, 0, GalZ80Rom1 + 0x2000 + (0x1000 * (~d & 1)));
- ZetMapArea(0x3000, 0x3fff, 2, GalZ80Rom1 + 0x2000 + (0x1000 * (~d & 1)));
- return;
- }
-
- case 0x7004: {
- GalStarsEnable = d & 0x01;
- if (!GalStarsEnable) GalStarsScrollPos = -1;
- return;
- }
-
- case 0x7006: {
- GalFlipScreenX = d & 1;
- return;
- }
-
- case 0x7007: {
- GalFlipScreenY = d & 1;
- return;
- }
-
- case 0x7800: {
- // watchdog write
- return;
- }
-
- default: {
- if (!(a >= 0x5400 && a <= 0x70ff))
- bprintf(PRINT_NORMAL, _T("Z80 #1 Write => %04X, %02X\n"), a, d);
- }
- }
-}
-
-UINT8 __fastcall Ozon1Z80Read(UINT16 a)
-{
- switch (a) {
- case 0x8100: {
- return 0xff - (GalInput[0] | GalDip[0]);
- }
-
- case 0x8101: {
- return 0xff - (GalInput[1] | GalDip[1]);
- }
-
- case 0x8102: {
- return 0xff - (GalInput[2] | GalDip[2]);
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Read => %04X\n"), a);
- }
- }
-
- return 0xff;
-}
-
-void __fastcall Ozon1Z80Write(UINT16 a, UINT8 d)
-{
- if (a >= 0x5000 && a <= 0x50ff) {
- INT32 Offset = a - 0x5000;
-
- GalSpriteRam[Offset] = d;
-
- if (Offset < 0x40) {
- if ((Offset & 0x01) == 0) {
- GalScrollVals[Offset >> 1] = d;
- }
- }
-
- return;
- }
-
- switch (a) {
- case 0x6801: {
- // ???
- GalIrqFire = d & 1;
- return;
- }
-
- case 0x6802: {
- // coin_counter_0_w
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Write => %04X, %02X\n"), a, d);
- }
- }
-}
-
-void __fastcall Ozon1Z80PortWrite(UINT16 a, UINT8 d)
-{
- a &= 0xff;
-
- switch (a) {
- case 0x00: {
- AY8910Write(0, 1, d);
- return;
- }
-
- case 0x01: {
- AY8910Write(0, 0, d);
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Port Write => %02X, %02X\n"), a, d);
- }
- }
-}
-
-static void ZigzagInstallHandler()
-{
- ZetOpen(0);
- ZetSetWriteHandler(ZigzagZ80Write);
- ZetClose();
-}
-
-static INT32 ZigzagInit()
-{
- INT32 nRet;
-
- GalSoundType = GAL_SOUND_HARDWARE_TYPE_ZIGZAGAY8910;
- GalPostLoadCallbackFunction = ZigzagInstallHandler;
-
- nRet = GalInit();
-
- GalNumChars = 0x100;
- GalNumSprites = 0x40;
- CharPlaneOffsets[1] = 0x4000;
- SpritePlaneOffsets[1] = 0x4000;
-
- UINT8 *TempRom = (UINT8*)BurnMalloc(0x2000);
- GalTempRom = (UINT8*)BurnMalloc(0x1000);
- nRet = BurnLoadRom(TempRom + 0x0000, GAL_ROM_OFFSET_TILES_SHARED + 0, 1); if (nRet) return 1;
- nRet = BurnLoadRom(TempRom + 0x1000, GAL_ROM_OFFSET_TILES_SHARED + 1, 1); if (nRet) return 1;
- memcpy(GalTempRom + 0x0000, TempRom + 0x0000, 0x800);
- memcpy(GalTempRom + 0x0800, TempRom + 0x1000, 0x800);
- GfxDecode(GalNumChars, 2, 8, 8, CharPlaneOffsets, CharXOffsets, CharYOffsets, 0x40, GalTempRom, GalChars);
- memcpy(GalTempRom + 0x0000, TempRom + 0x0800, 0x800);
- memcpy(GalTempRom + 0x0800, TempRom + 0x1800, 0x800);
- GfxDecode(GalNumSprites, 2, 16, 16, SpritePlaneOffsets, SpriteXOffsets, SpriteYOffsets, 0x100, GalTempRom, GalSprites);
- BurnFree(GalTempRom);
- BurnFree(TempRom);
-
- GalRenderFrameFunction = ZigZagRenderFrame;
- GalDrawBulletsFunction = NULL;
-
- AY8910SetAllRoutes(0, 0.20, BURN_SND_ROUTE_BOTH);
-
- return nRet;
-}
-
-static void Ozon1PostLoad()
-{
- ZetOpen(0);
- ZetMemCallback(0x0000, 0xffff, 0);
- ZetMemCallback(0x0000, 0xffff, 1);
- ZetMemCallback(0x0000, 0xffff, 2);
- ZetSetReadHandler(Ozon1Z80Read);
- ZetSetWriteHandler(Ozon1Z80Write);
- ZetSetOutHandler(Ozon1Z80PortWrite);
- ZetMapArea(0x0000, (GalZ80Rom1Size >= 0x4000) ? 0x3fff : GalZ80Rom1Size - 1, 0, GalZ80Rom1);
- ZetMapArea(0x0000, (GalZ80Rom1Size >= 0x4000) ? 0x3fff : GalZ80Rom1Size - 1, 2, GalZ80Rom1);
- ZetMapArea(0x4000, 0x43ff, 0, GalZ80Ram1);
- ZetMapArea(0x4000, 0x43ff, 1, GalZ80Ram1);
- ZetMapArea(0x4000, 0x43ff, 2, GalZ80Ram1);
- ZetMapArea(0x4800, 0x4bff, 0, GalVideoRam);
- ZetMapArea(0x4800, 0x4bff, 1, GalVideoRam);
- ZetMapArea(0x4800, 0x4bff, 2, GalVideoRam);
- ZetMapArea(0x4c00, 0x4fff, 0, GalVideoRam);
- ZetMapArea(0x4c00, 0x4fff, 1, GalVideoRam);
- ZetMapArea(0x4c00, 0x4fff, 2, GalVideoRam);
- ZetMapArea(0x5000, 0x50ff, 0, GalSpriteRam);
- ZetMapArea(0x5000, 0x50ff, 2, GalSpriteRam);
- ZetClose();
-}
-
-static INT32 Ozon1Init()
-{
- INT32 nRet;
-
- GalPostLoadCallbackFunction = Ozon1PostLoad;
- GalSoundType = GAL_SOUND_HARDWARE_TYPE_ZIGZAGAY8910;
-
- nRet = GalInit();
-
- GalDrawBulletsFunction = NULL;
- GalRenderBackgroundFunction = NULL;
-
- return nRet;
-}
-
-struct BurnDriver BurnDrvZigzagb = {
- "zigzagb", NULL, NULL, NULL, "1982",
- "Zig Zag (Galaxian hardware, set 1)\0", NULL, "LAX", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_MAZE, 0,
- NULL, ZigzagbRomInfo, ZigzagbRomName, NULL, NULL, ZigzagInputInfo, ZigzagDIPInfo,
- ZigzagInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvZigzagb2 = {
- "zigzagb2", "zigzagb", NULL, NULL, "1982",
- "Zig Zag (Galaxian hardware, set 2)\0", NULL, "LAX", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_MAZE, 0,
- NULL, Zigzagb2RomInfo, Zigzagb2RomName, NULL, NULL, ZigzagInputInfo, ZigzagDIPInfo,
- ZigzagInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvOzon1 = {
- "ozon1", NULL, NULL, NULL, "1983",
- "Ozon I\0", NULL, "Proma", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, Ozon1RomInfo, Ozon1RomName, NULL, NULL, Ozon1InputInfo, Ozon1DIPInfo,
- Ozon1Init, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-// Multi-game select via external switch
-static struct BurnRomInfo GmgalaxRomDesc[] = {
- { "pcb1_pm1.bin", 0x01000, 0x19338c70, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "pcb1_pm2.bin", 0x01000, 0x18db074d, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "pcb1_pm3.bin", 0x01000, 0xabb98b1d, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "pcb1_pm4.bin", 0x01000, 0x2403c78e, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "pcb1_gx1.bin", 0x01000, 0x2faa9f53, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "pcb1_gx2.bin", 0x01000, 0x121c5f16, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "pcb1_gx3.bin", 0x01000, 0x02d81a21, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "pcb2gfx1.bin", 0x01000, 0x7021bbc0, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "pcb2gfx3.bin", 0x01000, 0x089c922b, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "pcb2gfx2.bin", 0x01000, 0x51bf58ee, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "pcb2gfx4.bin", 0x01000, 0x908fd0dc, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "gmgalax2.clr", 0x00020, 0x499f4440, BRF_GRA | GAL_ROM_PROM },
- { "l06_prom.bin", 0x00020, 0x6a0c7d87, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Gmgalax)
-STD_ROM_FN(Gmgalax)
-
-UINT8 __fastcall GmgalaxZ80Read(UINT16 a)
-{
- switch (a) {
- case 0x6000: {
- return GalInput[0] | ((GmgalaxSelectedGame) ? GalDip[3] : GalDip[0]);
- }
-
- case 0x6800: {
- return GalInput[1] | ((GmgalaxSelectedGame) ? GalDip[4] : GalDip[1]);
- }
-
- case 0x7000: {
- return GalInput[2] | ((GmgalaxSelectedGame) ? GalDip[5] : GalDip[2]);
- }
-
- case 0x7800: {
- // watchdog read
- return 0xff;
- }
-
- default: {
- //bprintf(PRINT_NORMAL, _T("Z80 #1 Read => %04X\n"), a);
- }
- }
-
- return 0x00;
-}
-
-static void GmgalaxPostLoad()
-{
- ZetOpen(0);
- ZetSetReadHandler(GmgalaxZ80Read);
- ZetClose();
-}
-
-static INT32 GmgalaxInit()
-{
- INT32 nRet;
-
- GalPostLoadCallbackFunction = GmgalaxPostLoad;
- GalZ80Rom1Size = 0x1000;
-
- nRet = GalInit();
-
- UINT8 *TempRom = (UINT8*)BurnMalloc(0x1000);
- GalTempRom = (UINT8*)BurnMalloc(0x4000);
- nRet = BurnLoadRom(TempRom + 0x0000, GAL_ROM_OFFSET_TILES_SHARED + 0, 1); if (nRet) return 1;
- memcpy(GalTempRom + 0x0000, TempRom + 0x0000, 0x800);
- memcpy(GalTempRom + 0x1000, TempRom + 0x0800, 0x800);
- nRet = BurnLoadRom(TempRom + 0x0000, GAL_ROM_OFFSET_TILES_SHARED + 1, 1); if (nRet) return 1;
- memcpy(GalTempRom + 0x0800, TempRom + 0x0000, 0x800);
- memcpy(GalTempRom + 0x1800, TempRom + 0x0800, 0x800);
- nRet = BurnLoadRom(TempRom + 0x0000, GAL_ROM_OFFSET_TILES_SHARED + 2, 1); if (nRet) return 1;
- memcpy(GalTempRom + 0x2000, TempRom + 0x0000, 0x800);
- memcpy(GalTempRom + 0x3000, TempRom + 0x0800, 0x800);
- nRet = BurnLoadRom(TempRom + 0x0000, GAL_ROM_OFFSET_TILES_SHARED + 3, 1); if (nRet) return 1;
- memcpy(GalTempRom + 0x2800, TempRom + 0x0000, 0x800);
- memcpy(GalTempRom + 0x3800, TempRom + 0x0800, 0x800);
- GfxDecode(GalNumChars, 2, 8, 8, CharPlaneOffsets, CharXOffsets, CharYOffsets, 0x40, GalTempRom, GalChars);
- GfxDecode(GalNumSprites, 2, 16, 16, SpritePlaneOffsets, SpriteXOffsets, SpriteYOffsets, 0x100, GalTempRom, GalSprites);
- BurnFree(GalTempRom);
- BurnFree(TempRom);
-
- GalExtendTileInfoFunction = GmgalaxExtendTileInfo;
- GalExtendSpriteInfoFunction = GmgalaxExtendSpriteInfo;
-
- GalSpriteClipStart = 7;
- GalSpriteClipEnd = 246;
-
- GameIsGmgalax = 1;
-
- return nRet;
-}
-
-struct BurnDriver BurnDrvGmgalax = {
- "gmgalax", NULL, NULL, NULL, "1981",
- "Ghostmuncher Galaxian (bootleg)\0", NULL, "LAX", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_BOOTLEG, 2, HARDWARE_GALAXIAN, GBF_MAZE, 0,
- NULL, GmgalaxRomInfo, GmgalaxRomName, NULL, NULL, GmgalaxInputInfo, GmgalaxDIPInfo,
- GmgalaxInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-// Multi-game select via menu, with different graphic and sprite roms
-static struct BurnRomInfo Fourin1RomDesc[] = {
- { "rom1a", 0x01000, 0xce1af4d9, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "rom1b", 0x01000, 0x18484f9b, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "rom1c", 0x01000, 0x83248a8b, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "rom1d", 0x01000, 0x053f6da0, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "rom1e", 0x01000, 0x43c546f3, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "rom1f", 0x01000, 0x3a086b46, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "rom1g", 0x01000, 0xac0e2050, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "rom1h", 0x01000, 0xdc11a513, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "rom1i", 0x01000, 0xa5fb6be4, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "rom1j", 0x01000, 0x9054cfbe, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "rom2c", 0x01000, 0x7cd98e11, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "rom2d", 0x01000, 0x9402f32e, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "rom2e", 0x01000, 0x468e81df, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "rom2g", 0x01000, 0xb1ce3976, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "rom2h", 0x01000, 0x7eab5670, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "rom2i", 0x01000, 0x44565ac5, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "rom4b", 0x01000, 0x7e6495af, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "rom3b", 0x01000, 0x7475f72f, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "rom4c", 0x00800, 0x3355d46d, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "rom3c", 0x00800, 0xac755a25, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "rom4d", 0x01000, 0xbbdddb65, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "rom3d", 0x01000, 0x91a00204, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "rom4e", 0x01000, 0x0cb9e297, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "rom3e", 0x01000, 0xa1fe77f9, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "6l.bpr", 0x00020, 0x6a0c7d87, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Fourin1)
-STD_ROM_FN(Fourin1)
-
-UINT8 __fastcall Fourin1Z80Read(UINT16 a)
-{
- switch (a) {
- case 0x6000: {
- return GalInput[0] | GalDip[0];
- }
-
- case 0x6800: {
- return ((GalInput[1] | GalDip[1]) & ~0xc0) | (GalDip[3 + Fourin1Bank] & 0xc0);
- }
-
- case 0x7000: {
- return ((GalInput[2] | GalDip[2]) & 0x04) | (GalDip[3 + Fourin1Bank] & ~0xc4);
- }
-
- case 0x7800: {
- // watchdog read
- return 0xff;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Read => %04X\n"), a);
- }
- }
-
- return 0xff;
-}
-
-void __fastcall Fourin1Z80Write(UINT16 a, UINT8 d)
-{
- if (a < 0x4000) return;
-
- if (a >= 0x5800 && a <= 0x58ff) {
- INT32 Offset = a - 0x5800;
-
- GalSpriteRam[Offset] = d;
-
- if (Offset < 0x40) {
- if ((Offset & 0x01) == 0) {
- GalScrollVals[Offset >> 1] = d;
- }
- }
-
- return;
- }
-
- switch (a) {
- case 0x6000:
- case 0x6001: {
- // start_lamp_w
- return;
- }
-
- case 0x6002: {
- // coin_lock_w
- return;
- }
-
- case 0x6003: {
- // coin_count_0_w
- return;
- }
-
- case 0x6004:
- case 0x6005:
- case 0x6006:
- case 0x6007: {
- GalaxianLfoFreqWrite(a - 0x6004, d);
- return;
- }
-
- case 0x6800:
- case 0x6801:
- case 0x6802:
- case 0x6803:
- case 0x6804:
- case 0x6805:
- case 0x6806:
- case 0x6807: {
- GalaxianSoundWrite(a - 0x6800, d);
- return;
- }
-
- case 0x7001: {
- GalIrqFire = d & 1;
- return;
- }
-
- case 0x7004: {
- GalStarsEnable = d & 0x01;
- if (!GalStarsEnable) GalStarsScrollPos = -1;
- return;
- }
-
- case 0x7006: {
- GalFlipScreenX = d & 1;
- return;
- }
-
- case 0x7007: {
- GalFlipScreenY = d & 1;
- return;
- }
-
- case 0x7800: {
- GalPitch = d;
- return;
- }
-
- case 0x8000: {
- Fourin1Bank = d & 0x03;
- ZetMapArea(0x0000, 0x3fff, 0, GalZ80Rom1 + 0x2000 + (Fourin1Bank * 0x4000));
- ZetMapArea(0x0000, 0x3fff, 2, GalZ80Rom1 + 0x2000 + (Fourin1Bank * 0x4000));
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Write => %04X, %02X\n"), a, d);
- }
- }
-}
-
-static void Fourin1PostLoad()
-{
- GalTempRom = (UINT8*)BurnMalloc(0x3000);
- memcpy(GalTempRom, GalZ80Rom1 + 0xd000, 0x3000);
- memset(GalZ80Rom1 + 0xd000, 0x00, 0x1000);
- memcpy(GalZ80Rom1 + 0xe000, GalTempRom, 0x3000);
- memset(GalZ80Rom1 + 0x11000, 0x00, 0x1000);
- BurnFree(GalTempRom);
-
- for (UINT32 i = 0; i < GalZ80Rom1Size; i++) {
- GalZ80Rom1[i] = GalZ80Rom1[i] ^ (i & 0xff);
- }
-
- ZetOpen(0);
- ZetMemCallback(0x0000, 0xffff, 0);
- ZetMemCallback(0x0000, 0xffff, 1);
- ZetMemCallback(0x0000, 0xffff, 2);
- ZetSetReadHandler(Fourin1Z80Read);
- ZetSetWriteHandler(Fourin1Z80Write);
- ZetMapArea(0x0000, 0x3fff, 0, GalZ80Rom1);
- ZetMapArea(0x0000, 0x3fff, 2, GalZ80Rom1);
- ZetMapArea(0x4000, 0x43ff, 0, GalZ80Ram1);
- ZetMapArea(0x4000, 0x43ff, 1, GalZ80Ram1);
- ZetMapArea(0x4000, 0x43ff, 2, GalZ80Ram1);
- ZetMapArea(0x5000, 0x53ff, 0, GalVideoRam);
- ZetMapArea(0x5000, 0x53ff, 1, GalVideoRam);
- ZetMapArea(0x5000, 0x53ff, 2, GalVideoRam);
- ZetMapArea(0x5800, 0x58ff, 0, GalSpriteRam);
- ZetMapArea(0x5800, 0x58ff, 2, GalSpriteRam);
- ZetMapArea(0xc000, 0xdfff, 0, GalZ80Rom1);
- ZetMapArea(0xc000, 0xdfff, 2, GalZ80Rom1);
- ZetClose();
-}
-
-static INT32 Fourin1Init()
-{
- INT32 nRet;
-
- Fourin1Bank = 0;
- GalPostLoadCallbackFunction = Fourin1PostLoad;
- GalZ80Rom1Size = 0x2000;
- GalTilesSharedRomSize = 0x1000;
-
- nRet = GalInit();
-
- GalNumChars = 1024;
- GalNumSprites = 256;
- CharPlaneOffsets[1] = GalNumChars * 8 * 8;
- SpritePlaneOffsets[1] = GalNumSprites * 16 * 16;
-
- UINT8 *TempRom = (UINT8*)BurnMalloc(0x1000);
- GalTempRom = (UINT8*)BurnMalloc(GalTilesSharedRomSize);
- nRet = BurnLoadRom(TempRom + 0x0000, GAL_ROM_OFFSET_TILES_SHARED + 0, 1); if (nRet) return 1;
- memcpy(GalTempRom + 0x4000, TempRom + 0x0000, 0x800);
- memcpy(GalTempRom + 0x0000, TempRom + 0x0800, 0x800);
- nRet = BurnLoadRom(TempRom + 0x0000, GAL_ROM_OFFSET_TILES_SHARED + 1, 1); if (nRet) return 1;
- memcpy(GalTempRom + 0x6000, TempRom + 0x0000, 0x800);
- memcpy(GalTempRom + 0x2000, TempRom + 0x0800, 0x800);
- nRet = BurnLoadRom(TempRom + 0x0000, GAL_ROM_OFFSET_TILES_SHARED + 2, 1); if (nRet) return 1;
- memcpy(GalTempRom + 0x4800, TempRom + 0x0000, 0x800);
- memcpy(GalTempRom + 0x0800, TempRom + 0x0000, 0x800);
- nRet = BurnLoadRom(TempRom + 0x0000, GAL_ROM_OFFSET_TILES_SHARED + 3, 1); if (nRet) return 1;
- memcpy(GalTempRom + 0x6800, TempRom + 0x0000, 0x800);
- memcpy(GalTempRom + 0x2800, TempRom + 0x0000, 0x800);
- nRet = BurnLoadRom(TempRom + 0x0000, GAL_ROM_OFFSET_TILES_SHARED + 4, 1); if (nRet) return 1;
- memcpy(GalTempRom + 0x5000, TempRom + 0x0000, 0x800);
- memcpy(GalTempRom + 0x1000, TempRom + 0x0800, 0x800);
- nRet = BurnLoadRom(TempRom + 0x0000, GAL_ROM_OFFSET_TILES_SHARED + 5, 1); if (nRet) return 1;
- memcpy(GalTempRom + 0x7000, TempRom + 0x0000, 0x800);
- memcpy(GalTempRom + 0x3000, TempRom + 0x0800, 0x800);
- nRet = BurnLoadRom(TempRom + 0x0000, GAL_ROM_OFFSET_TILES_SHARED + 6, 1); if (nRet) return 1;
- memcpy(GalTempRom + 0x5800, TempRom + 0x0000, 0x800);
- memcpy(GalTempRom + 0x1800, TempRom + 0x0800, 0x800);
- nRet = BurnLoadRom(TempRom + 0x0000, GAL_ROM_OFFSET_TILES_SHARED + 7, 1); if (nRet) return 1;
- memcpy(GalTempRom + 0x7800, TempRom + 0x0000, 0x800);
- memcpy(GalTempRom + 0x3800, TempRom + 0x0800, 0x800);
- GfxDecode(GalNumChars, 2, 8, 8, CharPlaneOffsets, CharXOffsets, CharYOffsets, 0x40, GalTempRom, GalChars);
- GfxDecode(GalNumSprites, 2, 16, 16, SpritePlaneOffsets, SpriteXOffsets, SpriteYOffsets, 0x100, GalTempRom + 0x4000, GalSprites);
- BurnFree(GalTempRom);
- BurnFree(TempRom);
-
- GalExtendTileInfoFunction = Fourin1ExtendTileInfo;
- GalExtendSpriteInfoFunction = Fourin1ExtendSpriteInfo;
-
- GalSpriteClipStart = 7;
- GalSpriteClipEnd = 246;
-
- return nRet;
-}
-
-struct BurnDriver BurnDrvFourin1 = {
- "4in1", NULL, NULL, NULL, "1981",
- "4 Fun in 1\0", NULL, "Armenia / Food and Fun", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_BOOTLEG, 2, HARDWARE_GALAXIAN, GBF_MAZE, 0,
- NULL, Fourin1RomInfo, Fourin1RomName, NULL, NULL, Fourin1InputInfo, Fourin1DIPInfo,
- Fourin1Init, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-// Moon Cresta on Galaxian hardware with different memory map
-static struct BurnRomInfo MooncrstRomDesc[] = {
- { "mc1", 0x00800, 0x7d954a7a, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "mc2", 0x00800, 0x44bb7cfa, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "mc3", 0x00800, 0x9c412104, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "mc4", 0x00800, 0x7e9b1ab5, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "mc5.7r", 0x00800, 0x16c759af, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "mc6.8d", 0x00800, 0x69bcafdb, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "mc7.8e", 0x00800, 0xb50dbc46, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "mc8", 0x00800, 0x18ca312b, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "mcs_b", 0x00800, 0xfb0f1f81, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "mcs_d", 0x00800, 0x13932a15, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "mcs_a", 0x00800, 0x631ebb5a, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "mcs_c", 0x00800, 0x24cfd145, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "mmi6331.6l", 0x00020, 0x6a0c7d87, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Mooncrst)
-STD_ROM_FN(Mooncrst)
-
-static struct BurnRomInfo MooncrstukRomDesc[] = {
- { "mc1", 0x00800, 0x7d954a7a, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "mc2", 0x00800, 0x44bb7cfa, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "mc3", 0x00800, 0x9c412104, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "mc4", 0x00800, 0x7e9b1ab5, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "mc5.7r", 0x00800, 0x16c759af, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "mc6.8d", 0x00800, 0x69bcafdb, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "mc7.8e", 0x00800, 0xb50dbc46, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "8_uk.bin", 0x00800, 0xce727ad4, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "mcs_b", 0x00800, 0xfb0f1f81, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "mcs_d", 0x00800, 0x13932a15, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "mcs_a", 0x00800, 0x631ebb5a, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "mcs_c", 0x00800, 0x24cfd145, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "mmi6331.6l", 0x00020, 0x6a0c7d87, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Mooncrstuk)
-STD_ROM_FN(Mooncrstuk)
-
-static struct BurnRomInfo MooncrstukuRomDesc[] = {
- { "smc1f", 0x00800, 0x389ca0d6, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "smc2f", 0x00800, 0x410ab430, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "smc3f", 0x00800, 0xa6b4144b, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "smc4f", 0x00800, 0x4cc046fe, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "smc5f", 0x00800, 0x06d378a6, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "smc6f", 0x00800, 0x6e84a927, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "smc7f", 0x00800, 0xb45af1e8, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "smc8f_uk", 0x00800, 0xb968b2ff, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "mcs_b", 0x00800, 0xfb0f1f81, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "mcs_d", 0x00800, 0x13932a15, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "mcs_a", 0x00800, 0x631ebb5a, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "mcs_c", 0x00800, 0x24cfd145, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "mmi6331.6l", 0x00020, 0x6a0c7d87, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Mooncrstuku)
-STD_ROM_FN(Mooncrstuku)
-
-static struct BurnRomInfo MooncrstuRomDesc[] = {
- { "smc1f", 0x00800, 0x389ca0d6, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "smc2f", 0x00800, 0x410ab430, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "smc3f", 0x00800, 0xa6b4144b, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "smc4f", 0x00800, 0x4cc046fe, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "e5", 0x00800, 0x06d378a6, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "bepr199", 0x00800, 0x6e84a927, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "e7", 0x00800, 0xb45af1e8, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "smc8f", 0x00800, 0xf42164c5, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "mcs_b", 0x00800, 0xfb0f1f81, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "mcs_d", 0x00800, 0x13932a15, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "mcs_a", 0x00800, 0x631ebb5a, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "mcs_c", 0x00800, 0x24cfd145, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "mmi6331.6l", 0x00020, 0x6a0c7d87, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Mooncrstu)
-STD_ROM_FN(Mooncrstu)
-
-static struct BurnRomInfo MooncrstoRomDesc[] = {
- { "mc1.7d", 0x00800, 0x92a86aac, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "mc2.7e", 0x00800, 0x438c2b4b, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "mc3.7j", 0x00800, 0x67e3d21d, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "mc4.7p", 0x00800, 0xf4db39f6, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "mc5.7r", 0x00800, 0x16c759af, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "mc6.8d", 0x00800, 0x69bcafdb, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "mc7.8e", 0x00800, 0xb50dbc46, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "mc8.8h", 0x00800, 0x7e2b1928, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "mcs_b", 0x00800, 0xfb0f1f81, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "mcs_d", 0x00800, 0x13932a15, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "mcs_a", 0x00800, 0x631ebb5a, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "mcs_c", 0x00800, 0x24cfd145, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "mmi6331.6l", 0x00020, 0x6a0c7d87, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Mooncrsto)
-STD_ROM_FN(Mooncrsto)
-
-static struct BurnRomInfo MooncrstgRomDesc[] = {
- { "epr194", 0x00800, 0x0e5582b1, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "epr195", 0x00800, 0x12cb201b, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "epr196", 0x00800, 0x18255614, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "epr197", 0x00800, 0x05ac1466, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "epr198", 0x00800, 0xc28a2e8f, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "epr199", 0x00800, 0x5a4571de, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "epr200", 0x00800, 0xb7c85bf1, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "epr201", 0x00800, 0x2caba07f, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "epr203", 0x00800, 0xbe26b561, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "mcs_d", 0x00800, 0x13932a15, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "epr202", 0x00800, 0x26c7e800, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "mcs_c", 0x00800, 0x24cfd145, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "mmi6331.6l", 0x00020, 0x6a0c7d87, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Mooncrstg)
-STD_ROM_FN(Mooncrstg)
-
-static void MooncrstEncryptedPostLoad()
-{
- for (UINT32 Offset = 0; Offset < GalZ80Rom1Size; Offset++) {
- UINT8 Data = GalZ80Rom1[Offset];
- UINT8 Res = Data;
- if (BIT(Data, 1)) Res ^= 0x40;
- if (BIT(Data, 5)) Res ^= 0x04;
- if ((Offset & 1) == 0) Res = BITSWAP08(Res, 7, 2, 5, 4, 3, 6, 1, 0);
- GalZ80Rom1[Offset] = Res;
- }
-
- MapMooncrst();
-}
-
-static INT32 MooncrstEncryptedInit()
-{
- INT32 nRet;
-
- GalPostLoadCallbackFunction = MooncrstEncryptedPostLoad;
-
- nRet = GalInit();
-
- GalExtendTileInfoFunction = MooncrstExtendTileInfo;
- GalExtendSpriteInfoFunction = MooncrstExtendSpriteInfo;
-
- return nRet;
-}
-
-static INT32 MooncrstInit()
-{
- INT32 nRet;
-
- GalPostLoadCallbackFunction = MapMooncrst;
-
- nRet = GalInit();
-
- GalExtendTileInfoFunction = MooncrstExtendTileInfo;
- GalExtendSpriteInfoFunction = MooncrstExtendSpriteInfo;
-
- return nRet;
-}
-
-struct BurnDriver BurnDrvMooncrst = {
- "mooncrst", NULL, NULL, NULL, "1980",
- "Moon Cresta (Nichibutsu)\0", NULL, "Nichibutsu", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, MooncrstRomInfo, MooncrstRomName, NULL, NULL, OmegabInputInfo, MooncrstDIPInfo,
- MooncrstEncryptedInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvMooncrstuk = {
- "mooncrstuk", "mooncrst", NULL, NULL, "1980",
- "Moon Cresta (Nichibutsu UK)\0", NULL, "Nichibutsu UK", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, MooncrstukRomInfo, MooncrstukRomName, NULL, NULL, OmegabInputInfo, MooncrstDIPInfo,
- MooncrstEncryptedInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvMooncrstuku = {
- "mooncrstuku", "mooncrst", NULL, NULL, "1980",
- "Moon Cresta (Nichibutsu UK, unencrypted)\0", NULL, "Nichibutsu UK", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, MooncrstukuRomInfo, MooncrstukuRomName, NULL, NULL, OmegabInputInfo, MooncrstDIPInfo,
- MooncrstInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvMooncrstu = {
- "mooncrstu", "mooncrst", NULL, NULL, "1980",
- "Moon Cresta (Nichibutsu USA, unencrypted)\0", NULL, "Nichibutsu USA", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, MooncrstuRomInfo, MooncrstuRomName, NULL, NULL, OmegabInputInfo, MooncrstDIPInfo,
- MooncrstInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvMooncrsto = {
- "mooncrsto", "mooncrst", NULL, NULL, "1980",
- "Moon Cresta (Nichibutsu, old rev)\0", NULL, "Nichibutsu", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, MooncrstoRomInfo, MooncrstoRomName, NULL, NULL, OmegabInputInfo, MooncrsaDIPInfo,
- MooncrstEncryptedInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvMooncrstg = {
- "mooncrstg", "mooncrst", NULL, NULL, "1980",
- "Moon Cresta (Gremlin)\0", NULL, "Gremlin", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, MooncrstgRomInfo, MooncrstgRomName, NULL, NULL, OmegabInputInfo, MooncrsgDIPInfo,
- MooncrstInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-// Straight Moon Cresta Rip-Offs on basic Moon Cresta hardware
-static struct BurnRomInfo MooncrsbRomDesc[] = {
- { "bepr194", 0x00800, 0x6a23ec6d, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "bepr195", 0x00800, 0xee262ff2, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "f03.bin", 0x00800, 0x29a2b0ab, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "f04.bin", 0x00800, 0x4c6a5a6d, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "e5", 0x00800, 0x06d378a6, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "bepr199", 0x00800, 0x6e84a927, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "e7", 0x00800, 0xb45af1e8, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "bepr201", 0x00800, 0x66da55d5, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "epr203", 0x00800, 0xbe26b561, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "mcs_d", 0x00800, 0x13932a15, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "epr202", 0x00800, 0x26c7e800, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "mcs_c", 0x00800, 0x24cfd145, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "mmi6331.6l", 0x00020, 0x6a0c7d87, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Mooncrsb)
-STD_ROM_FN(Mooncrsb)
-
-static struct BurnRomInfo Mooncrs2RomDesc[] = {
- { "f8.bin", 0x00800, 0xd36003e5, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "bepr195", 0x00800, 0xee262ff2, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "f03.bin", 0x00800, 0x29a2b0ab, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "f04.bin", 0x00800, 0x4c6a5a6d, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "e5", 0x00800, 0x06d378a6, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "bepr199", 0x00800, 0x6e84a927, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "e7", 0x00800, 0xb45af1e8, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "m7.bin", 0x00800, 0x957ee078, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "1h_1_10.bin", 0x00800, 0x528da705, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "12.chr", 0x00800, 0x5a4b17ea, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "1k_1_11.bin", 0x00800, 0x4e79ff6b, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "11.chr", 0x00800, 0xe0edccbd, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "mmi6331.6l", 0x00020, 0x6a0c7d87, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Mooncrs2)
-STD_ROM_FN(Mooncrs2)
-
-static struct BurnRomInfo Mooncrs3RomDesc[] = {
- { "b1.7f", 0x01000, 0x0b28cd8a, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "b2.7h", 0x01000, 0x74a6f0ca, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "b3.7j", 0x01000, 0xeeb34cc9, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "b4.7k", 0x01000, 0x714330e5, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "o.1h", 0x00800, 0x528da705, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "q.1h", 0x00800, 0x5a4b17ea, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "p.1k", 0x00800, 0x4e79ff6b, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "r.1k", 0x00800, 0xe0edccbd, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "mmi6331.6l", 0x00020, 0x6a0c7d87, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Mooncrs3)
-STD_ROM_FN(Mooncrs3)
-
-static struct BurnRomInfo Mooncrs4RomDesc[] = {
- { "mooncrs4.7k", 0x01000, 0x5e201041, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "mooncrs4.7j", 0x01000, 0x8de07c8e, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "mooncrs4.7h", 0x01000, 0x888c6d61, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "mooncrs4.7f", 0x01000, 0x492f9b01, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "mooncrs4.1h", 0x01000, 0xf508a7a5, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "mooncrs4.1k", 0x01000, 0x9b549313, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "prom.6l", 0x00020, 0x6a0c7d87, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Mooncrs4)
-STD_ROM_FN(Mooncrs4)
-
-static struct BurnRomInfo FantaziaRomDesc[] = {
- { "f01.bin", 0x00800, 0xd3e23863, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "f02.bin", 0x00800, 0x63fa4149, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "f03.bin", 0x00800, 0x29a2b0ab, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "f04.bin", 0x00800, 0x4c6a5a6d, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "f09.bin", 0x00800, 0x75fd5ca1, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "f10.bin", 0x00800, 0xe4da2dd4, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "f11.bin", 0x00800, 0x42869646, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "f12.bin", 0x00800, 0xa48d7fb0, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "1h_1_10.bin", 0x00800, 0x528da705, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "mcs_d", 0x00800, 0x13932a15, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "1k_1_11.bin", 0x00800, 0x4e79ff6b, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "mcs_c", 0x00800, 0x24cfd145, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "fantazia.clr", 0x00020, 0xa84ff0af, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Fantazia)
-STD_ROM_FN(Fantazia)
-
-static struct BurnRomInfo EagleRomDesc[] = {
- { "e1", 0x00800, 0x224c9526, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "e2", 0x00800, 0xcc538ebd, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "f03.bin", 0x00800, 0x29a2b0ab, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "f04.bin", 0x00800, 0x4c6a5a6d, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "e5", 0x00800, 0x06d378a6, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "e6", 0x00800, 0x0dea20d5, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "e7", 0x00800, 0xb45af1e8, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "e8", 0x00800, 0xc437a876, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "e10", 0x00800, 0x40ce58bf, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "e12", 0x00800, 0x628fdeed, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "e9", 0x00800, 0xba664099, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "e11", 0x00800, 0xee4ec5fd, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "l06_prom.bin", 0x00020, 0x6a0c7d87, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Eagle)
-STD_ROM_FN(Eagle)
-
-static struct BurnRomInfo Eagle2RomDesc[] = {
- { "e1.7f", 0x00800, 0x45aab7a3, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "e2", 0x00800, 0xcc538ebd, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "f03.bin", 0x00800, 0x29a2b0ab, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "f04.bin", 0x00800, 0x4c6a5a6d, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "e5", 0x00800, 0x06d378a6, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "e6.6", 0x00800, 0x9f09f8c6, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "e7", 0x00800, 0xb45af1e8, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "e8", 0x00800, 0xc437a876, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "e10.2", 0x00800, 0x25b38ebd, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "e12", 0x00800, 0x628fdeed, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "e9", 0x00800, 0xba664099, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "e11", 0x00800, 0xee4ec5fd, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "l06_prom.bin", 0x00020, 0x6a0c7d87, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Eagle2)
-STD_ROM_FN(Eagle2)
-
-static struct BurnRomInfo Eagle3RomDesc[] = {
- { "e1", 0x00800, 0x224c9526, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "e2", 0x00800, 0xcc538ebd, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "f03.bin", 0x00800, 0x29a2b0ab, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "f04.bin", 0x00800, 0x4c6a5a6d, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "e5", 0x00800, 0x06d378a6, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "e6", 0x00800, 0x0dea20d5, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "e7", 0x00800, 0xb45af1e8, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "e8", 0x00800, 0xc437a876, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "e10a", 0x00800, 0xe3c63d4c, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "e12", 0x00800, 0x628fdeed, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "e9a", 0x00800, 0x59429e47, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "e11", 0x00800, 0xee4ec5fd, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "l06_prom.bin", 0x00020, 0x6a0c7d87, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Eagle3)
-STD_ROM_FN(Eagle3)
-
-static struct BurnRomInfo SpctbirdRomDesc[] = {
- { "tssa-7f", 0x00800, 0x45aab7a3, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "tssa-7h", 0x00800, 0x8b328f48, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "tssa-7k", 0x00800, 0x29a2b0ab, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "tssa-7m", 0x00800, 0x99c9166d, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "tssa-5", 0x00800, 0x797b6261, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "tssa-6", 0x00800, 0x4825692c, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "tssa-7", 0x00800, 0xb45af1e8, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "tssa-8", 0x00800, 0xc9b77b85, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "tssb-2", 0x00800, 0x7d23e1f2, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "tssb-4", 0x00800, 0xe4977833, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "tssb-1", 0x00800, 0x9b9267c3, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "tssb-3", 0x00800, 0x5ca5e233, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "l06_prom.bin", 0x00020, 0x6a0c7d87, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Spctbird)
-STD_ROM_FN(Spctbird)
-
-static struct BurnRomInfo SmooncrsRomDesc[] = {
- { "927", 0x00800, 0x55c5b994, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "928a", 0x00800, 0x77ae26d3, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "929", 0x00800, 0x716eaa10, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "930", 0x00800, 0xcea864f2, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "931", 0x00800, 0x702c5f51, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "932a", 0x00800, 0xe6a2039f, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "933", 0x00800, 0x73783cee, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "934", 0x00800, 0xc1a14aa2, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "epr203", 0x00800, 0xbe26b561, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "mcs_d", 0x00800, 0x13932a15, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "epr202", 0x00800, 0x26c7e800, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "mcs_c", 0x00800, 0x24cfd145, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "mmi6331.6l", 0x00020, 0x6a0c7d87, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Smooncrs)
-STD_ROM_FN(Smooncrs)
-
-static struct BurnRomInfo MooncrstsoRomDesc[] = {
- { "1.BIN", 0x00800, 0x0357ab1a, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2.BIN", 0x00800, 0xcf6e78f5, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "3.BIN", 0x00800, 0x716eaa10, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "4.BIN", 0x00800, 0xcea864f2, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "5.BIN", 0x00800, 0x32cd9adc, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "6.BIN", 0x00800, 0xf0230048, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "7.BIN", 0x00800, 0x73783cee, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "8.BIN", 0x00800, 0x1644965a, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- // missing, assuming 'super moon cresta' gfx
- { "epr203", 0x00800, 0xbe26b561, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "mcs_d", 0x00800, 0x13932a15, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "epr202", 0x00800, 0x26c7e800, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "mcs_c", 0x00800, 0x24cfd145, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "mmi6331.6l", 0x00020, 0x6a0c7d87, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Mooncrstso)
-STD_ROM_FN(Mooncrstso)
-
-static struct BurnRomInfo MooncptcRomDesc[] = {
- { "mc1.bin", 0x00800, 0x16f17cd5, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "mc2.bin", 0x00800, 0xe2128805, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "mc3.bin", 0x00800, 0x716eaa10, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "mc4.bin", 0x00800, 0xbd45cd8f, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "mc5.bin", 0x00800, 0x9a1e0528, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "mc6.bin", 0x00800, 0xf0230048, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "mc7.bin", 0x00800, 0xeafd4d02, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "mc8.bin", 0x00800, 0xccee32f8, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "mc12.bin", 0x00800, 0x528da705, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "mc14.bin", 0x00800, 0x5a4b17ea, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "mc11.bin", 0x00800, 0x4e79ff6b, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "mc13.bin", 0x00800, 0xe0edccbd, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "mmi6331.6l", 0x00020, 0x6a0c7d87, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Mooncptc)
-STD_ROM_FN(Mooncptc)
-
-static struct BurnRomInfo SstarcrsRomDesc[] = {
- { "ss1", 0x00800, 0x2ff72897, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "ss2", 0x00800, 0x565e7880, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "ss3", 0x00800, 0xa1939def, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "ss4", 0x00800, 0xa332e012, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "ss5", 0x00800, 0xb9e58453, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "ss6", 0x00800, 0x7cbb5bc8, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "ss7", 0x00800, 0x57713b91, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "ss8", 0x00800, 0xc857e898, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "ss10", 0x00800, 0x2a95b8ea, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "ss12", 0x00800, 0xb92c4c30, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "ss9", 0x00800, 0x3661e084, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "ss11", 0x00800, 0x95613048, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "mmi6331.6l", 0x00020, 0x6a0c7d87, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Sstarcrs)
-STD_ROM_FN(Sstarcrs)
-
-static struct BurnRomInfo MooncmwRomDesc[] = {
- { "60.1x", 0x00800, 0x322859e6, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "61.2x", 0x00800, 0xc249902d, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "62.3x", 0x00800, 0x29a2b0ab, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "63.4x", 0x00800, 0x4c6a5a6d, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "64.5x", 0x00800, 0x06d378a6, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "65.6x", 0x00800, 0x6e84a927, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "66.7x", 0x00800, 0xf23cd8ce, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "67.8x", 0x00800, 0x66da55d5, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "68.1h", 0x01000, 0x78663d86, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "69.1k", 0x01000, 0x162c50d3, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "prom-sn74s288n-71.6l", 0x00020, 0x6a0c7d87, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Mooncmw)
-STD_ROM_FN(Mooncmw)
-
-static struct BurnRomInfo StarfgmcRomDesc[] = {
- { "sei-sf-a2.bin", 0x00800, 0x322859e6, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "sei-sf-a1.bin", 0x00800, 0x7fed0654, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "sei-sf-b2.bin", 0x00800, 0x935f7435, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "sei-sf-c1.bin", 0x00800, 0x29d54869, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "sei-sf-d1.bin", 0x00800, 0x9126cca6, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "sei-sf-e2.bin", 0x00800, 0x9d394261, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "sei-sf-f2.bin", 0x00800, 0x94f161dd, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "sei-sf-f1.bin", 0x00800, 0x6ced7f80, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "sei-sf-jh2.bin", 0x00800, 0x8edba3cd, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "sei-sf-jh3.bin", 0x00800, 0xf5a871a9, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "sei-sf-lk2.bin", 0x00800, 0x44b0f06a, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "sei-sf-lk3.bin", 0x00800, 0x773b1ee6, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "prom-sn74s288n-71.6l", 0x00020, 0x6a0c7d87, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Starfgmc)
-STD_ROM_FN(Starfgmc)
-
-static struct BurnRomInfo SpcdragRomDesc[] = {
- { "a.bin", 0x00800, 0x38cc9839, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "b.bin", 0x00800, 0x419fa8d6, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "c.bin", 0x00800, 0xa1939def, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "d.bin", 0x00800, 0xcbcf17c5, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "em.bin", 0x00800, 0xeb81c19c, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "fm.bin", 0x00800, 0x757b7672, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "g.bin", 0x00800, 0x57713b91, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "h.bin", 0x00800, 0x159ad847, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "203.bin", 0x00800, 0xa2e82527, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "172.bin", 0x00800, 0x13932a15, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "202.bin", 0x00800, 0x80c3ad74, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "171.bin", 0x00800, 0x24cfd145, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "mmi6331.6l", 0x00020, 0x6a0c7d87, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Spcdrag)
-STD_ROM_FN(Spcdrag)
-
-static struct BurnRomInfo SpcdragaRomDesc[] = {
- { "1.7g", 0x00800, 0x38cc9839, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2.7g", 0x00800, 0x29e00ae4, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "3.7g", 0x00800, 0xa1939def, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "4.7g", 0x00800, 0x068f8830, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "5.10g", 0x00800, 0x32cd9adc, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "6.10g", 0x00800, 0x50db67c5, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "7.10g", 0x00800, 0x22415271, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "8.10g", 0x00800, 0x159ad847, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "a2.7a", 0x00800, 0x38b042dd, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "a4.7a", 0x00800, 0x5a4b17ea, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "a1.9a", 0x00800, 0x24441ab3, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "a3.9a", 0x00800, 0xe0edccbd, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "prom_6331.10f", 0x00020, 0x6a0c7d87, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Spcdraga)
-STD_ROM_FN(Spcdraga)
-
-static struct BurnRomInfo MooncregRomDesc[] = {
- { "eg1", 0x00800, 0xa67ca4af, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "eg2", 0x00800, 0xb57b140e, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "eg3", 0x00800, 0xa1939def, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "eg4", 0x00800, 0x068f8830, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "eg5", 0x00800, 0x32cd9adc, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "eg6", 0x00800, 0x3a4b62d9, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "eg7", 0x00800, 0x22415271, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "eg8", 0x00800, 0x7b9cc105, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "eg_2b", 0x00800, 0xfb0f1f81, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "eg_4b", 0x00800, 0x13932a15, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "eg_1b", 0x00800, 0x631ebb5a, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "eg_3b", 0x00800, 0x24cfd145, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "prom_6331.10f", 0x00020, 0x6a0c7d87, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Mooncreg)
-STD_ROM_FN(Mooncreg)
-
-static struct BurnRomInfo MooncrslRomDesc[] = {
- { "01.bin", 0x00800, 0xa67ca4af, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "02.bin", 0x00800, 0x16edce3e, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "03.bin", 0x00800, 0xa1939def, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "04.bin", 0x00800, 0x068f8830, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "05.bin", 0x00800, 0x28ae612d, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "06.bin", 0x00800, 0x803da987, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "07.bin", 0x00800, 0x8e9ac0fc, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "08.bin", 0x00800, 0x020a8e2f, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "mcs_b", 0x00800, 0xfb0f1f81, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "mcs_d", 0x00800, 0x13932a15, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "mcs_a", 0x00800, 0x631ebb5a, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "mcs_c", 0x00800, 0x24cfd145, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "mmi6331.6l", 0x00020, 0x6a0c7d87, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Mooncrsl)
-STD_ROM_FN(Mooncrsl)
-
-static struct BurnRomInfo SteraRomDesc[] = {
- { "stera.1", 0x00800, 0xcd04fea8, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "stera.2", 0x00800, 0xccd1878e, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "stera.3", 0x00800, 0x29a2b0ab, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "stera.4", 0x00800, 0x4c6a5a6d, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "stera.5", 0x00800, 0x06d378a6, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "stera.6", 0x00800, 0x6e84a927, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "stera.7", 0x00800, 0xb45af1e8, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "stera.8", 0x00800, 0x37f19956, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "stera.10", 0x00800, 0x528da705, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "stera.12", 0x00800, 0x13932a15, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "stera.11", 0x00800, 0x4e79ff6b, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "stera.9", 0x00800, 0x24cfd145, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "stera.6l", 0x00020, 0x6a0c7d87, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Stera)
-STD_ROM_FN(Stera)
-
-static struct BurnRomInfo MooncrgxRomDesc[] = {
- { "1", 0x00800, 0x84cf420b, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2", 0x00800, 0x4c2a61a1, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "3", 0x00800, 0x1962523a, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "4", 0x00800, 0x75dca896, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "5", 0x00800, 0x32483039, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "6", 0x00800, 0x43f2ab89, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "7", 0x00800, 0x1e9c168c, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "8", 0x00800, 0x5e09da94, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "1h_1_10.bin", 0x00800, 0x528da705, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "12.chr", 0x00800, 0x5a4b17ea, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "9.chr", 0x00800, 0x70df525c, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "11.chr", 0x00800, 0xe0edccbd, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "l06_prom.bin", 0x00020, 0x6a0c7d87, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Mooncrgx)
-STD_ROM_FN(Mooncrgx)
-
-static struct BurnRomInfo MoonqsrRomDesc[] = {
- { "mq1", 0x00800, 0x132c13ec, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "mq2", 0x00800, 0xc8eb74f1, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "mq3", 0x00800, 0x33965a89, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "mq4", 0x00800, 0xa3861d17, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "mq5", 0x00800, 0x8bcf9c67, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "mq6", 0x00800, 0x5750cda9, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "mq7", 0x00800, 0x78d7fe5b, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "mq8", 0x00800, 0x4919eed5, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "mqb", 0x00800, 0xb55ec806, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "mqd", 0x00800, 0x9e7d0e13, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "mqa", 0x00800, 0x66eee0db, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "mqc", 0x00800, 0xa6db5b0d, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "vid_e6.bin", 0x00020, 0x0b878b54, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Moonqsr)
-STD_ROM_FN(Moonqsr)
-
-static struct BurnRomInfo Moonal2RomDesc[] = {
- { "ali1", 0x00400, 0x0dcecab4, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "ali2", 0x00400, 0xc6ee75a7, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "ali3", 0x00400, 0xcd1be7e9, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "ali4", 0x00400, 0x83b03f08, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "ali5", 0x00400, 0x6f3cf61d, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "ali6", 0x00400, 0xe169d432, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "ali7", 0x00400, 0x41f64b73, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "ali8", 0x00400, 0xf72ee876, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "ali9", 0x00400, 0xb7fb763c, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "ali10", 0x00400, 0xb1059179, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "ali11", 0x00400, 0x9e79a1c6, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "ali13.1h", 0x00800, 0xa1287bf6, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "ali12.1k", 0x00800, 0x528f1481, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "6l.bpr", 0x00020, 0xc3ac9467, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Moonal2)
-STD_ROM_FN(Moonal2)
-
-static struct BurnRomInfo Moonal2bRomDesc[] = {
- { "md-1.a", 0x00800, 0xd41fd873, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "md-2.b", 0x00800, 0x8318b187, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "md-3.d", 0x00800, 0xb2170d3b, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "md-4.g", 0x00800, 0xbaa4d0bf, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "md-5.h", 0x00800, 0x61afb53c, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "md-6.f", 0x00800, 0x9cc973e0, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "md-13.h1", 0x00800, 0xa1287bf6, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "md-12.k1", 0x00800, 0x528f1481, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "6331.l6", 0x00020, 0xc3ac9467, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Moonal2b)
-STD_ROM_FN(Moonal2b)
-
-static struct BurnRomInfo ThepitmRomDesc[] = {
- { "1.bin", 0x00800, 0x0f78d6ea, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2.bin", 0x00800, 0xebacc6eb, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "3.bin", 0x00800, 0x14fd0706, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "4.bin", 0x00800, 0x613e920f, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "5.bin", 0x00800, 0x5a791f3f, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "6.bin", 0x00800, 0x0bb37f51, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "7.bin", 0x00800, 0x4dfdec6f, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "8.bin", 0x00800, 0xa39a9189, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "9.bin", 0x00800, 0x2eb90e07, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "1h.bin", 0x00800, 0x00dce65f, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "1k.bin", 0x00800, 0x3ec0056e, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "6l.bin", 0x00020, 0x6a0c7d87, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Thepitm)
-STD_ROM_FN(Thepitm)
-
-void __fastcall MooncrgxZ80Write(UINT16 a, UINT8 d)
-{
- if (a >= 0x5800 && a <= 0x58ff) {
- INT32 Offset = a - 0x5800;
-
- GalSpriteRam[Offset] = d;
-
- if (Offset < 0x40) {
- if ((Offset & 0x01) == 0) {
- GalScrollVals[Offset >> 1] = d;
- }
- }
-
- return;
- }
-
- switch (a) {
- case 0x6000:
- case 0x6001:
- case 0x6002: {
- GalGfxBank[a - 0x6000] = d;
- return;
- }
-
- case 0x6003: {
- // coin_count_0_w
- return;
- }
-
- case 0x6004:
- case 0x6005:
- case 0x6006:
- case 0x6007: {
- GalaxianLfoFreqWrite(a - 0x6004, d);
- return;
- }
-
- case 0x6800:
- case 0x6801:
- case 0x6802:
- case 0x6803:
- case 0x6804:
- case 0x6805:
- case 0x6806:
- case 0x6807: {
- GalaxianSoundWrite(a - 0x6800, d);
- return;
- }
-
- case 0x7001: {
- GalIrqFire = d & 1;
- return;
- }
-
- case 0x7004: {
- GalStarsEnable = d & 0x01;
- if (!GalStarsEnable) GalStarsScrollPos = -1;
- return;
- }
-
- case 0x7006: {
- GalFlipScreenX = d & 1;
- return;
- }
-
- case 0x7007: {
- GalFlipScreenY = d & 1;
- return;
- }
-
- case 0x7800: {
- GalPitch = d;
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Write => %04X, %02X\n"), a, d);
- }
- }
-}
-
-void __fastcall MoonqsrZ80Write(UINT16 a, UINT8 d)
-{
- if (a >= 0x9800 && a <= 0x98ff) {
- INT32 Offset = a - 0x9800;
-
- GalSpriteRam[Offset] = d;
-
- if (Offset < 0x40) {
- if ((Offset & 0x01) == 0) {
- GalScrollVals[Offset >> 1] = d;
- }
- }
-
- return;
- }
-
- switch (a) {
- case 0xa000:
- case 0xa001:
- case 0xa002: {
- GalGfxBank[a - 0xa000] = d;
- return;
- }
-
- case 0xa003: {
- // coin_count_0_w
- return;
- }
-
- case 0xa004:
- case 0xa005:
- case 0xa006:
- case 0xa007: {
- GalaxianLfoFreqWrite(a - 0xa004, d);
- return;
- }
-
- case 0xa800:
- case 0xa801:
- case 0xa802:
- case 0xa803:
- case 0xa804:
- case 0xa805:
- case 0xa806:
- case 0xa807: {
- GalaxianSoundWrite(a - 0xa800, d);
- return;
- }
-
- case 0xb000: {
- GalIrqFire = d & 1;
- return;
- }
-
- case 0xb004: {
- GalStarsEnable = d & 0x01;
- if (!GalStarsEnable) GalStarsScrollPos = -1;
- return;
- }
-
- case 0xb006: {
- GalFlipScreenX = d & 1;
- return;
- }
-
- case 0xb007: {
- GalFlipScreenY = d & 1;
- return;
- }
-
- case 0xb800: {
- GalPitch = d;
- return;
- }
- }
-
- bprintf(PRINT_NORMAL, _T("Prog Write %x, %x\n"), a, d);
-}
-
-void __fastcall ThepitmZ80Write(UINT16 a, UINT8 d)
-{
- if (a >= 0x9800 && a <= 0x98ff) {
- INT32 Offset = a - 0x9800;
-
- GalSpriteRam[Offset] = d;
-
- if (Offset < 0x40) {
- if ((Offset & 0x01) == 0) {
- GalScrollVals[Offset >> 1] = d;
- }
- }
-
- return;
- }
-
- switch (a) {
- case 0xa000:
- case 0xa001:
- case 0xa002: {
- GalGfxBank[a - 0xa000] = d;
- return;
- }
-
- case 0xa003: {
- // coin_count_0_w
- return;
- }
-
- case 0xa004:
- case 0xa005:
- case 0xa006:
- case 0xa007: {
- GalaxianLfoFreqWrite(a - 0xa004, d);
- return;
- }
-
- case 0xa800:
- case 0xa801:
- case 0xa802:
- case 0xa803:
- case 0xa804:
- case 0xa805:
- case 0xa806:
- case 0xa807: {
- GalaxianSoundWrite(a - 0xa800, d);
- return;
- }
-
- case 0xb001: {
- GalIrqFire = d & 1;
- return;
- }
-
- case 0xb004: {
- return;
- }
-
- case 0xb006: {
- GalFlipScreenX = d & 1;
- return;
- }
-
- case 0xb007: {
- GalFlipScreenY = d & 1;
- return;
- }
-
- case 0xb800: {
- GalPitch = d;
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Write => %04X, %02X\n"), a, d);
- }
- }
-}
-
-static void Mooncrs2RearrangeGfx()
-{
- UINT8* TempRom = (UINT8*)BurnMalloc(0x800);
- GalTempRom = (UINT8*)BurnMalloc(GalTilesSharedRomSize);
- BurnLoadRom(GalTempRom + 0x0000, GAL_ROM_OFFSET_TILES_SHARED + 0, 1);
- BurnLoadRom(GalTempRom + 0x1000, GAL_ROM_OFFSET_TILES_SHARED + 2, 1);
- BurnLoadRom(TempRom, GAL_ROM_OFFSET_TILES_SHARED + 1, 1);
- memcpy(GalTempRom + 0x0800, TempRom + 0x0000, 0x200);
- memcpy(GalTempRom + 0x0c00, TempRom + 0x0200, 0x200);
- memcpy(GalTempRom + 0x0a00, TempRom + 0x0400, 0x200);
- memcpy(GalTempRom + 0x0e00, TempRom + 0x0600, 0x200);
- BurnLoadRom(TempRom, GAL_ROM_OFFSET_TILES_SHARED + 3, 1);
- memcpy(GalTempRom + 0x1800, TempRom + 0x0000, 0x200);
- memcpy(GalTempRom + 0x1c00, TempRom + 0x0200, 0x200);
- memcpy(GalTempRom + 0x1a00, TempRom + 0x0400, 0x200);
- memcpy(GalTempRom + 0x1e00, TempRom + 0x0600, 0x200);
- BurnFree(TempRom);
- GfxDecode(GalNumChars, 2, 8, 8, CharPlaneOffsets, CharXOffsets, CharYOffsets, 0x40, GalTempRom, GalChars);
- GfxDecode(GalNumSprites, 2, 16, 16, SpritePlaneOffsets, SpriteXOffsets, SpriteYOffsets, 0x100, GalTempRom, GalSprites);
- BurnFree(GalTempRom);
-}
-
-static INT32 Mooncrs2Init()
-{
- GalPostLoadCallbackFunction = MapMooncrst;
-
- INT32 nRet = GalInit();
-
- Mooncrs2RearrangeGfx();
-
- GalExtendTileInfoFunction = MooncrstExtendTileInfo;
- GalExtendSpriteInfoFunction = MooncrstExtendSpriteInfo;
-
- return nRet;
-}
-
-static void Mooncrs3PostLoad()
-{
- GalTempRom = (UINT8*)BurnMalloc(GalZ80Rom1Size);
- memcpy(GalTempRom, GalZ80Rom1, GalZ80Rom1Size);
- memcpy(GalZ80Rom1 + 0x0000, GalTempRom + 0x0000, 0x800);
- memcpy(GalZ80Rom1 + 0x2000, GalTempRom + 0x0800, 0x800);
- memcpy(GalZ80Rom1 + 0x0800, GalTempRom + 0x1000, 0x800);
- memcpy(GalZ80Rom1 + 0x2800, GalTempRom + 0x1800, 0x800);
- memcpy(GalZ80Rom1 + 0x1000, GalTempRom + 0x2000, 0x800);
- memcpy(GalZ80Rom1 + 0x3000, GalTempRom + 0x2800, 0x800);
- memcpy(GalZ80Rom1 + 0x1800, GalTempRom + 0x3000, 0x800);
- memcpy(GalZ80Rom1 + 0x3800, GalTempRom + 0x3800, 0x800);
- BurnFree(GalTempRom);
-
- MapMooncrst();
-}
-
-static INT32 Mooncrs3Init()
-{
- INT32 nRet;
-
- GalPostLoadCallbackFunction = Mooncrs3PostLoad;
-
- nRet = GalInit();
-
- Mooncrs2RearrangeGfx();
-
- GalExtendTileInfoFunction = MooncrstExtendTileInfo;
- GalExtendSpriteInfoFunction = MooncrstExtendSpriteInfo;
-
- return nRet;
-}
-
-static INT32 Mooncrs4Init()
-{
- INT32 nRet;
-
- GalPostLoadCallbackFunction = MapMooncrst;
-
- nRet = GalInit();
-
- UINT8* TempRom = (UINT8*)BurnMalloc(0x1000);
- GalTempRom = (UINT8*)BurnMalloc(GalTilesSharedRomSize);
- BurnLoadRom(TempRom, GAL_ROM_OFFSET_TILES_SHARED + 0, 1);
- memcpy(GalTempRom + 0x0800, TempRom + 0x0000, 0x200);
- memcpy(GalTempRom + 0x0c00, TempRom + 0x0200, 0x200);
- memcpy(GalTempRom + 0x0a00, TempRom + 0x0400, 0x200);
- memcpy(GalTempRom + 0x0e00, TempRom + 0x0600, 0x200);
- memcpy(GalTempRom + 0x0000, TempRom + 0x0800, 0x800);
- BurnLoadRom(TempRom, GAL_ROM_OFFSET_TILES_SHARED + 1, 1);
- memcpy(GalTempRom + 0x1800, TempRom + 0x0000, 0x200);
- memcpy(GalTempRom + 0x1c00, TempRom + 0x0200, 0x200);
- memcpy(GalTempRom + 0x1a00, TempRom + 0x0400, 0x200);
- memcpy(GalTempRom + 0x1e00, TempRom + 0x0600, 0x200);
- memcpy(GalTempRom + 0x1000, TempRom + 0x0800, 0x800);
- BurnFree(TempRom);
- GfxDecode(GalNumChars, 2, 8, 8, CharPlaneOffsets, CharXOffsets, CharYOffsets, 0x40, GalTempRom, GalChars);
- GfxDecode(GalNumSprites, 2, 16, 16, SpritePlaneOffsets, SpriteXOffsets, SpriteYOffsets, 0x100, GalTempRom, GalSprites);
- BurnFree(GalTempRom);
-
- GalExtendTileInfoFunction = MooncrstExtendTileInfo;
- GalExtendSpriteInfoFunction = MooncrstExtendSpriteInfo;
-
- return nRet;
-}
-
-static void MooncrgxInstallHandler()
-{
- ZetOpen(0);
- ZetSetWriteHandler(MooncrgxZ80Write);
- ZetClose();
-}
-
-static INT32 MooncrgxInit()
-{
- INT32 nRet;
-
- GalPostLoadCallbackFunction = MooncrgxInstallHandler;
-
- nRet = GalInit();
-
- GalExtendTileInfoFunction = MooncrstExtendTileInfo;
- GalExtendSpriteInfoFunction = MooncrstExtendSpriteInfo;
-
- return nRet;
-}
-
-static void MoonqsrDecrypt()
-{
- for (UINT32 Offset = 0; Offset < GalZ80Rom1Size; Offset++) {
- UINT8 Data = GalZ80Rom1[Offset];
- UINT8 Res = Data;
- if (BIT(Data, 1)) Res ^= 0x40;
- if (BIT(Data, 5)) Res ^= 0x04;
- if ((Offset & 1) == 0) Res = BITSWAP08(Res, 7, 2, 5, 4, 3, 6, 1, 0);
- GalZ80Rom1Op[Offset] = Res;
- }
-
- MapMooncrst();
-
- ZetOpen(0);
- ZetSetWriteHandler(MoonqsrZ80Write);
- ZetMapArea(0x0000, (GalZ80Rom1Size >= 0x4000) ? 0x3fff : GalZ80Rom1Size - 1, 2, GalZ80Rom1Op, GalZ80Rom1);
- ZetClose();
-}
-
-static INT32 MoonqsrInit()
-{
- INT32 nRet;
-
- GalZ80Rom1Op = (UINT8*)BurnMalloc(0x4000);
-
- GalPostLoadCallbackFunction = MoonqsrDecrypt;
-
- nRet = GalInit();
-
- GalExtendTileInfoFunction = MoonqsrExtendTileInfo;
- GalExtendSpriteInfoFunction = MoonqsrExtendSpriteInfo;
-
- return nRet;
-}
-
-static INT32 Moonal2Init()
-{
- INT32 nRet;
-
- GalPostLoadCallbackFunction = MapMooncrst;
-
- nRet = GalInit();
-
- return nRet;
-}
-
-static void ThepitmPostLoad()
-{
- MapMooncrst();
-
- ZetOpen(0);
- ZetMapArea(0x0000, 0x47ff, 0, GalZ80Rom1);
- ZetMapArea(0x0000, 0x47ff, 2, GalZ80Rom1);
- ZetSetWriteHandler(ThepitmZ80Write);
- ZetClose();
-}
-
-static INT32 ThepitmInit()
-{
- INT32 nRet;
-
- GalPostLoadCallbackFunction = ThepitmPostLoad;
-
- nRet = GalInit();
-
- GalExtendTileInfoFunction = MooncrstExtendTileInfo;
- GalExtendSpriteInfoFunction = MooncrstExtendSpriteInfo;
-
- return nRet;
-}
-
-struct BurnDriver BurnDrvMooncrsb = {
- "mooncrsb", "mooncrst", NULL, NULL, "1980",
- "Moon Cresta (bootleg set 1)\0", NULL, "bootleg", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_BOOTLEG | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, MooncrsbRomInfo, MooncrsbRomName, NULL, NULL, OmegabInputInfo, MooncrsaDIPInfo,
- MooncrstInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvMooncrs2 = {
- "mooncrs2", "mooncrst", NULL, NULL, "1980",
- "Moon Cresta (bootleg set 2)\0", NULL, "Nichibutsu", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_BOOTLEG | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, Mooncrs2RomInfo, Mooncrs2RomName, NULL, NULL, OmegabInputInfo, MooncrsaDIPInfo,
- Mooncrs2Init, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvMooncrs3 = {
- "mooncrs3", "mooncrst", NULL, NULL, "1980",
- "Moon Cresta (bootleg set 3)\0", NULL, "bootleg", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_BOOTLEG | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, Mooncrs3RomInfo, Mooncrs3RomName, NULL, NULL, OmegabInputInfo, MooncrstDIPInfo,
- Mooncrs3Init, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvMooncrs4 = {
- "mooncrs4", "mooncrst", NULL, NULL, "1980",
- "Moon Crest\0", NULL, "SG-Florence", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_BOOTLEG | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, Mooncrs4RomInfo, Mooncrs4RomName, NULL, NULL, OmegabInputInfo, MooncrstDIPInfo,
- Mooncrs4Init, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvFantazia = {
- "fantazia", "mooncrst", NULL, NULL, "1980",
- "Fantazia (bootleg?)\0", NULL, "SubElectro", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_BOOTLEG | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, FantaziaRomInfo, FantaziaRomName, NULL, NULL, OmegabInputInfo, FantaziaDIPInfo,
- MooncrstInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvEagle = {
- "eagle", "mooncrst", NULL, NULL, "1980",
- "Eagle (set 1)\0", NULL, "Centuri", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_BOOTLEG | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, EagleRomInfo, EagleRomName, NULL, NULL, OmegabInputInfo, MooncrsaDIPInfo,
- Mooncrs2Init, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvEagle2 = {
- "eagle2", "mooncrst", NULL, NULL, "1980",
- "Eagle (set 2)\0", NULL, "Centuri", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_BOOTLEG | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, Eagle2RomInfo, Eagle2RomName, NULL, NULL, OmegabInputInfo, Eagle2DIPInfo,
- Mooncrs2Init, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvEagle3 = {
- "eagle3", "mooncrst", NULL, NULL, "1980",
- "Eagle (set 3)\0", NULL, "Nichibutsu (Centuri license)", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_BOOTLEG | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, Eagle3RomInfo, Eagle3RomName, NULL, NULL, OmegabInputInfo, MooncrsaDIPInfo,
- Mooncrs2Init, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvSpctbird = {
- "spctbird", "mooncrst", NULL, NULL, "1981?",
- "Space Thunderbird\0", NULL, "bootleg? (Fortrek)", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_BOOTLEG, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, SpctbirdRomInfo, SpctbirdRomName, NULL, NULL, OmegabInputInfo, Eagle2DIPInfo,
- Mooncrs2Init, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvSmooncrs = {
- "smooncrs", "mooncrst", NULL, NULL, "1981?",
- "Super Moon Cresta\0", NULL, "Nichibutsu (Gremlin license)", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_BOOTLEG | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, SmooncrsRomInfo, SmooncrsRomName, NULL, NULL, SmooncrsInputInfo, SmooncrsDIPInfo,
- MooncrstInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvMooncrstso = {
- "mooncrstso", "mooncrst", NULL, NULL, "1980",
- "Moon Cresta (SegaSA / Sonic)\0", NULL, "Nichibutsu (Sonic license)", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_BOOTLEG | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, MooncrstsoRomInfo, MooncrstsoRomName, NULL, NULL, OmegabInputInfo, MooncptcDIPInfo,
- MooncrstInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvMooncptc = {
- "mooncptc", "mooncrst", NULL, NULL, "1980?",
- "Moon Cresta (Petaco S.A. Spanish bootleg)\0", NULL, "bootleg (Petaco S.A.)", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_BOOTLEG | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, MooncptcRomInfo, MooncptcRomName, NULL, NULL, SmooncrsInputInfo, MooncptcDIPInfo,
- MooncrstInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvSstarcrs = {
- "sstarcrs", "mooncrst", NULL, NULL, "1980?",
- "Super Star Crest\0", NULL, "Nichibutsu (Taito do Brasil license)", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_BOOTLEG | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, SstarcrsRomInfo, SstarcrsRomName, NULL, NULL, OmegabInputInfo, MooncrsgDIPInfo,
- MooncrstInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvMooncmw = {
- "mooncmw", "mooncrst", NULL, NULL, "198?",
- "Moon War (Moon Cresta bootleg)\0", NULL, "bootleg", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_BOOTLEG | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, MooncmwRomInfo, MooncmwRomName, NULL, NULL, OmegabInputInfo, MooncrsaDIPInfo,
- MooncrstInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvStarfgmc = {
- "starfgmc", "mooncrst", NULL, NULL, "198?",
- "Star Fighter (Moon Cresta bootleg)\0", NULL, "bootleg (Samyra Engineering)", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_BOOTLEG | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, StarfgmcRomInfo, StarfgmcRomName, NULL, NULL, OmegabInputInfo, MooncrsaDIPInfo,
- MooncrstInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvSpcdrag = {
- "spcdrag", "mooncrst", NULL, NULL, "1980",
- "Space Dragon (Moon Cresta bootleg, set 1)\0", NULL, "bootleg", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_BOOTLEG | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, SpcdragRomInfo, SpcdragRomName, NULL, NULL, SmooncrsInputInfo, SmooncrsDIPInfo,
- MooncrstInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvSpcdraga = {
- "spcdraga", "mooncrst", NULL, NULL, "1980",
- "Space Dragon (Moon Cresta bootleg, set 2)\0", NULL, "bootleg", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_BOOTLEG | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, SpcdragaRomInfo, SpcdragaRomName, NULL, NULL, SmooncrsInputInfo, SmooncrsDIPInfo,
- MooncrstInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvMooncreg = {
- "mooncreg", "mooncrst", NULL, NULL, "1980",
- "Moon Cresta (Electrogame S.A. Spanish bootleg)\0", NULL, "bootleg (Electrogame S.A.)", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_BOOTLEG | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, MooncregRomInfo, MooncregRomName, NULL, NULL, OmegabInputInfo, MooncregDIPInfo,
- MooncrstInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvMooncrsl = {
- "mooncrsl", "mooncrst", NULL, NULL, "1980",
- "Cresta Mundo (Laguna S.A. Spanish Moon Cresta bootleg)\0", NULL, "bootleg (Laguna S.A.)", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_BOOTLEG | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, MooncrslRomInfo, MooncrslRomName, NULL, NULL, OmegabInputInfo, MooncrslDIPInfo,
- MooncrstInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvStera = {
- "stera", "mooncrst", NULL, NULL, "1980",
- "Steraranger (Moon Cresta bootleg)\0", NULL, "bootleg", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_BOOTLEG | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, SteraRomInfo, SteraRomName, NULL, NULL, SmooncrsInputInfo, SmooncrsDIPInfo,
- MooncrstInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvMooncrgx = {
- "mooncrgx", "mooncrst", NULL, NULL, "1980",
- "Moon Cresta (Galaxian hardware)\0", NULL, "bootleg", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_BOOTLEG | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, MooncrgxRomInfo, MooncrgxRomName, NULL, NULL, OmegabInputInfo, MooncrgxDIPInfo,
- MooncrgxInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvMoonqsr = {
- "moonqsr", NULL, NULL, NULL, "1980",
- "Moon Quasar\0", NULL, "Nichibutsu", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, MoonqsrRomInfo, MoonqsrRomName, NULL, NULL, OmegabInputInfo, MoonqsrDIPInfo,
- MoonqsrInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvMoonal2 = {
- "moonal2", NULL, NULL, NULL, "1980",
- "Moon Alien Part 2\0", NULL, "Nichibutsu", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, Moonal2RomInfo, Moonal2RomName, NULL, NULL, GalaxianInputInfo, Moonal2DIPInfo,
- Moonal2Init, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvMoonal2b = {
- "moonal2b", "moonal2", NULL, NULL, "1980",
- "Moon Alien Part 2 (older version)\0", NULL, "Nichibutsu", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, Moonal2bRomInfo, Moonal2bRomName, NULL, NULL, GalaxianInputInfo, Moonal2DIPInfo,
- Moonal2Init, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvThepitm = {
- "thepitm", "thepit", NULL, NULL, "198?",
- "The Pit (bootleg on Moon Quasar hardware)\0", NULL, "bootleg (KZH)", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED | BDF_BOOTLEG, 2, HARDWARE_GALAXIAN, GBF_PLATFORM, 0,
- NULL, ThepitmRomInfo, ThepitmRomName, NULL, NULL, ThepitmInputInfo, ThepitmDIPInfo,
- ThepitmInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-// Other games on basic Moon Cresta hardware
-static struct BurnRomInfo SkybaseRomDesc[] = {
- { "skybase.9a", 0x01000, 0x845b87a5, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "skybase.8a", 0x01000, 0x096785c2, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "skybase.7a", 0x01000, 0xd50c715b, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "skybase.6a", 0x01000, 0xf57edb27, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "skybase.5a", 0x01000, 0x50365d95, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "skybase.4a", 0x01000, 0xcbd6647f, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "skybase.7t", 0x01000, 0x9b471686, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "skybase.8t", 0x01000, 0x1cf723da, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "skybase.10t", 0x01000, 0xfe02e72c, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "skybase.9t", 0x01000, 0x0871291f, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "82s123.bpr", 0x00020, 0x6a0c7d87, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Skybase)
-STD_ROM_FN(Skybase)
-
-static struct BurnRomInfo BagmanmcRomDesc[] = {
- { "b1.bin", 0x01000, 0xb74c75ee, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "b2.bin", 0x01000, 0xa7d99916, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "b3.bin", 0x01000, 0xc78f5360, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "b4.bin", 0x01000, 0xeebd3bd1, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "b5.bin", 0x01000, 0x0fe24b8c, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "b6.bin", 0x01000, 0xf50390e7, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "g1-l.bin", 0x00800, 0x2ae6b5ab, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "g2-u.bin", 0x01000, 0xa2790089, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "g2-l.bin", 0x00800, 0x98b37397, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "g1-u.bin", 0x01000, 0xb63cfae4, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "bagmanmc.clr", 0x00020, 0x6a0c7d87, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Bagmanmc)
-STD_ROM_FN(Bagmanmc)
-
-static struct BurnRomInfo Bagmanm2RomDesc[] = {
- { "bagmanm2.1", 0x02000, 0x53769ebe, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "bagmanm2.2", 0x02000, 0x9435bb87, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "bagmanm2.3", 0x02000, 0xf37ba7f6, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "bagmanm2.9", 0x02000, 0xf1e70d9e, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "bagmanm2.7", 0x02000, 0x777e48c4, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "bagmanmc.clr", 0x00020, 0x6a0c7d87, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Bagmanm2)
-STD_ROM_FN(Bagmanm2)
-
-static struct BurnRomInfo DkongjrmRomDesc[] = {
- { "a1", 0x01000, 0x299486e9, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "a2", 0x01000, 0xa74a193b, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "b2", 0x01000, 0x7bc4f236, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "c1", 0x01000, 0x0f594c21, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "d1", 0x01000, 0xcf7d7296, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "e2", 0x01000, 0xf7528a52, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "f1", 0x01000, 0x9b1d4cc5, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "v_3pa.bin", 0x01000, 0x4974ffef, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "a2.gfx", 0x01000, 0x51845eaf, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "v_3na.bin", 0x01000, 0xa95c4c63, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "b2.gfx", 0x01000, 0x7b39c3d0, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "hustler.clr", 0x00020, 0xaa1f7f5e, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Dkongjrm)
-STD_ROM_FN(Dkongjrm)
-
-static struct BurnRomInfo VpoolRomDesc[] = {
- { "vidpool1.bin", 0x01000, 0x333f4732, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "vidpool2.bin", 0x01000, 0xeea6c0f1, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "vidpool3.bin", 0x01000, 0x309972a6, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "vidpool4.bin", 0x01000, 0xc4f71c1d, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "hustler.5f", 0x00800, 0x0bdfad0e, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "hustler.5h", 0x00800, 0x8e062177, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "hustler.clr", 0x00020, 0xaa1f7f5e, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Vpool)
-STD_ROM_FN(Vpool)
-
-static struct BurnRomInfo CkonggRomDesc[] = {
- { "g_ck1.bin", 0x01000, 0xa4323b94, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "ck2.bin", 0x01000, 0x1e532996, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "g_ck3.bin", 0x01000, 0x65157cde, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "g_ck4.bin", 0x01000, 0x43827bc6, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "g_ck5.bin", 0x01000, 0xa74ed96e, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "g_ck7.bin", 0x00800, 0x2c4d8129, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "ckvid10.bin", 0x01000, 0x7866d2cb, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "ckvid7.bin", 0x01000, 0x7311a101, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "ck_cp.bin", 0x00020, 0x7e0b79cb, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Ckongg)
-STD_ROM_FN(Ckongg)
-
-static struct BurnRomInfo CkongmcRomDesc[] = {
- { "kc1.bin", 0x01000, 0xa87fc828, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "kc2.bin", 0x01000, 0x94a13dec, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "kc3.bin", 0x01000, 0x5efc6705, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "kc4.bin", 0x01000, 0xac917d66, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "kc5.bin", 0x00800, 0x5a9ee1ed, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "kc6.bin", 0x00800, 0xf787431e, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "kc7.bin", 0x00800, 0x7a185e31, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "kc8carat.bin", 0x01000, 0x7866d2cb, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "kc9carat.bin", 0x01000, 0x7311a101, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "ck_cp.bin", 0x00020, 0x7e0b79cb, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Ckongmc)
-STD_ROM_FN(Ckongmc)
-
-static struct BurnRomInfo PorterRomDesc[] = {
- { "port1.bin", 0x01000, 0xbabaf7fe, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "port2.bin", 0x01000, 0x8f7eb0e3, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "port3.bin", 0x01000, 0x683939b5, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "port4.bin", 0x01000, 0x6a65d58d, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "port5.bin", 0x00800, 0x2978a9aa, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "port6.bin", 0x00800, 0x7ecdffb5, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "port7.bin", 0x01000, 0x603294f9, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "port8.bin", 0x01000, 0xb66a763d, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "mmi6331.6l", 0x00020, 0x6a0c7d87, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Porter)
-STD_ROM_FN(Porter)
-
-static struct BurnRomInfo KongRomDesc[] = {
- { "1", 0x01000, 0xa206beb5, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2", 0x01000, 0xd75597b6, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "3", 0x01000, 0x54e0b87b, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "4", 0x01000, 0x356c4ca2, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "5", 0x01000, 0x2d295976, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "6", 0x01000, 0x77131cca, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "7", 0x01000, 0x3d5ec3f1, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "8", 0x01000, 0x015fe5e5, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "9", 0x00800, 0xfe42a052, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "11", 0x00800, 0xad2b2cdd, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "10", 0x00800, 0x91fa187e, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "12", 0x00800, 0xb74724df, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "prom", 0x00020, 0x00000000, BRF_OPT | BRF_NODUMP },
-
- { "13", 0x01000, 0x7d33ca0a, BRF_OPT }, // unknown
-};
-
-STD_ROM_PICK(Kong)
-STD_ROM_FN(Kong)
-
-static struct BurnRomInfo FantastcRomDesc[] = {
- { "f1", 0x01000, 0x8019f0b7, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "f2", 0x01000, 0x988a9bc6, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "f3", 0x01000, 0xa3c0cc0b, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "f4", 0x01000, 0xc1361be8, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "f5", 0x01000, 0x6787e93f, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "f6", 0x01000, 0x597029ae, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "f7", 0x01000, 0x8de08d9a, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "f8", 0x01000, 0x489e2fb7, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "37", 0x01000, 0x3a54f749, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "38", 0x01000, 0x88b71264, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "prom-74g138", 0x00020, 0x800f5718, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Fantastc)
-STD_ROM_FN(Fantastc)
-
-static struct BurnRomInfo TimefgtrRomDesc[] = {
- { "tp01", 0x01000, 0xba8b3e70, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "tp02", 0x01000, 0x796158c0, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "tp03", 0x01000, 0xfe6a1c98, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "tp04", 0x01000, 0xeff73185, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "tp05", 0x01000, 0x85023e4a, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "tp06", 0x01000, 0xb6b8aaf9, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "tp07", 0x01000, 0x5f57342c, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "tp09", 0x01000, 0x636fd772, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "tp08", 0x01000, 0x2dc3c48b, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "tp10", 0x01000, 0xb27b450c, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "prom", 0x00020, 0x00000000, BRF_GRA | BRF_NODUMP },
-};
-
-STD_ROM_PICK(Timefgtr)
-STD_ROM_FN(Timefgtr)
-
-UINT8 __fastcall BagmanmcZ80Read(UINT16 a)
-{
- switch (a) {
- case 0xa000: {
- return GalInput[0] | GalDip[0];
- }
-
- case 0xa800: {
- return GalInput[1] | GalDip[1];
- }
-
- case 0xb000: {
- return GalInput[2] | GalDip[2];
- }
-
- case 0xb800: {
- // watchdog read
- return 0xff;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Read => %04X\n"), a);
- }
- }
-
- return 0xff;
-}
-
-void __fastcall BagmanmcZ80Write(UINT16 a, UINT8 d)
-{
- if (a >= 0x9800 && a <= 0x98ff) {
- INT32 Offset = a - 0x9800;
-
- GalSpriteRam[Offset] = d;
-
- if (Offset < 0x40) {
- if ((Offset & 0x01) == 0) {
- GalScrollVals[Offset >> 1] = d;
- }
- }
-
- return;
- }
-
- switch (a) {
- case 0xa000:
- case 0xa001:
- case 0xa002: {
- // ???
- return;
- }
-
- case 0xa003: {
- // coin_count_0_w
- return;
- }
-
- case 0xa004:
- case 0xa005:
- case 0xa006:
- case 0xa007: {
- GalaxianLfoFreqWrite(a - 0xa004, d);
- return;
- }
-
- case 0xa800:
- case 0xa801:
- case 0xa802:
- case 0xa803:
- case 0xa804:
- case 0xa805:
- case 0xa806:
- case 0xa807: {
- GalaxianSoundWrite(a - 0xa800, d);
- return;
- }
-
- case 0xb001: {
- GalIrqFire = d & 1;
- return;
- }
-
- case 0xb002: {
- GalGfxBank[0] = d;
- return;
- }
-
- case 0xb006: {
- GalFlipScreenX = d & 1;
- return;
- }
-
- case 0xb007: {
- GalFlipScreenY = d & 1;
- return;
- }
-
- case 0xb800: {
- GalPitch = d;
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Write => %04X, %02X\n"), a, d);
- }
- }
-}
-
-UINT8 __fastcall DkongjrmZ80Read(UINT16 a)
-{
- if (a >= 0xa000 && a <= 0xa0ff) {
- return GalInput[0] | GalDip[0];
- }
-
- if (a >= 0xa800 && a <= 0xa8ff) {
- return GalInput[1] | GalDip[1];
- }
-
- if (a >= 0xb000 && a <= 0xb0ff) {
- return GalInput[2] | GalDip[2];
- }
-
- switch (a) {
- case 0xb800: {
- // watchdog read
- return 0xff;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Read => %04X\n"), a);
- }
- }
-
- return 0xff;
-}
-
-void __fastcall DkongjrmZ80Write(UINT16 a, UINT8 d)
-{
- if (a >= 0x9800 && a <= 0x98ff) {
- INT32 Offset = a - 0x9800;
-
- GalSpriteRam[Offset] = d;
-
- if (Offset < 0x40) {
- if ((Offset & 0x01) == 0) {
- GalScrollVals[Offset >> 1] = d;
- }
- }
-
- return;
- }
-
- switch (a) {
- case 0xa003: {
- // coin_count_0_w
- return;
- }
-
- case 0xa004:
- case 0xa005:
- case 0xa006:
- case 0xa007: {
- GalaxianLfoFreqWrite(a - 0xa004, d);
- return;
- }
-
- case 0xa800:
- case 0xa801:
- case 0xa802:
- case 0xa803:
- case 0xa804:
-// case 0xa805:
- case 0xa806:
- case 0xa807: {
- GalaxianSoundWrite(a - 0xa800, d);
- return;
- }
-
- case 0xb000: {
- GalGfxBank[0] = d;
- return;
- }
-
- case 0xb001: {
- GalIrqFire = d & 1;
- return;
- }
-
- case 0xb006: {
- GalFlipScreenX = d & 1;
- return;
- }
-
- case 0xb007: {
- GalFlipScreenY = d & 1;
- return;
- }
-
- case 0xb800: {
- GalPitch = d;
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Write => %04X, %02X\n"), a, d);
- }
- }
-}
-
-UINT8 __fastcall CkonggZ80Read(UINT16 a)
-{
- switch (a) {
- case 0xc000: {
- return GalInput[0] | GalDip[0];
- }
-
- case 0xc400: {
- return GalInput[1] | GalDip[1];
- }
-
- case 0xc800: {
- return GalInput[2] | GalDip[2];
- }
-
- case 0xcc00: {
- // watchdog read
- return 0xff;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Read => %04X\n"), a);
- }
- }
-
- return 0xff;
-}
-
-void __fastcall CkonggZ80Write(UINT16 a, UINT8 d)
-{
- if (a >= 0x9800 && a <= 0x98ff) {
- INT32 Offset = a - 0x9800;
-
- GalSpriteRam[Offset] = d;
-
- if (Offset < 0x40) {
- if ((Offset & 0x01) == 0) {
- GalScrollVals[Offset >> 1] = d;
- }
- }
-
- return;
- }
-
- switch (a) {
- case 0xc400:
- case 0xc401:
- case 0xc402:
- case 0xc403:
- case 0xc404:
- case 0xc405:
- case 0xc406:
- case 0xc407: {
- GalaxianSoundWrite(a - 0xc400, d);
- return;
- }
-
- case 0xc801: {
- GalIrqFire = d & 1;
- return;
- }
-
- case 0xc804: {
- // link apparently cut
- return;
- }
-
- case 0xc806: {
- GalFlipScreenX = d & 1;
- return;
- }
-
- case 0xc807: {
- GalFlipScreenY = d & 1;
- return;
- }
-
- case 0xcc00: {
- GalPitch = d;
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Write => %04X, %02X\n"), a, d);
- }
- }
-}
-
-UINT8 __fastcall CkongmcZ80Read(UINT16 a)
-{
- switch (a) {
- case 0xa000: {
- return GalInput[0] | GalDip[0];
- }
-
- case 0xa800: {
- return GalInput[1] | GalDip[1];
- }
-
- case 0xb000: {
- return GalInput[2] | GalDip[2];
- }
-
- case 0xb800: {
- // watchdog read
- return 0xff;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Read => %04X\n"), a);
- }
- }
-
- return 0xff;
-}
-
-void __fastcall CkongmcZ80Write(UINT16 a, UINT8 d)
-{
- if (a >= 0x9800 && a <= 0x98ff) {
- INT32 Offset = a - 0x9800;
-
- GalSpriteRam[Offset] = d;
-
- if (Offset < 0x40) {
- if ((Offset & 0x01) == 0) {
- GalScrollVals[Offset >> 1] = d;
- }
- }
-
- return;
- }
-
- switch (a) {
- case 0xa800:
- case 0xa801:
- case 0xa802:
- case 0xa803:
- case 0xa804:
- case 0xa805:
- case 0xa806:
- case 0xa807: {
- GalaxianSoundWrite(a - 0xa800, d);
- return;
- }
-
- case 0xb001: {
- GalIrqFire = d & 1;
- return;
- }
-
- case 0xc806: {
- GalFlipScreenX = d & 1;
- return;
- }
-
- case 0xc807: {
- GalFlipScreenY = d & 1;
- return;
- }
-
- case 0xb800: {
- GalPitch = d;
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Write => %04X, %02X\n"), a, d);
- }
- }
-}
-
-void __fastcall FantastcZ80Write(UINT16 a, UINT8 d)
-{
- if (a >= 0x9800 && a <= 0x98ff) {
- INT32 Offset = a - 0x9800;
-
- GalSpriteRam[Offset] = d;
-
- if (Offset < 0x40) {
- if ((Offset & 0x01) == 0) {
- GalScrollVals[Offset >> 1] = d;
- }
- }
-
- return;
- }
-
- if (a >= 0x9900 && a <= 0xafff) {
- // ???
- return;
- }
-
- if (a >= 0xb001 && a <= 0xd7ff) {
- // ???
- return;
- }
-
- switch (a) {
- case 0x8803: {
- AY8910Write(0, 0, d);
- return;
- }
-
- case 0x880b: {
- AY8910Write(0, 1, d);
- return;
- }
-
- case 0x880c: {
- AY8910Write(1, 0, d);
- return;
- }
-
- case 0x880e: {
- AY8910Write(1, 1, d);
- return;
- }
-
- case 0xb000: {
- GalIrqFire = d & 1;
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Write => %04X, %02X\n"), a, d);
- }
- }
-}
-
-void __fastcall TimefgtrZ80Write(UINT16 a, UINT8 d)
-{
- if (a >= 0x9800 && a <= 0x9bff) {
- INT32 Offset = a - 0x9800;
-
- GalSpriteRam[Offset] = d;
-
- if (Offset < 0x40) {
- if ((Offset & 0x01) == 0) {
- GalScrollVals[Offset >> 1] = d;
- }
- }
-
- return;
- }
-
- if (a >= 0xfff8) {
- // ???
- return;
- }
-
- switch (a) {
- case 0x8803: {
- AY8910Write(0, 0, d);
- return;
- }
-
- case 0x880b: {
- AY8910Write(0, 1, d);
- return;
- }
-
- case 0x880c: {
- AY8910Write(1, 0, d);
- return;
- }
-
- case 0x880e: {
- AY8910Write(1, 1, d);
- return;
- }
-
- case 0xb000: {
- GalIrqFire = d & 1;
- return;
- }
-
- case 0xb004: {
- GalStarsEnable = d & 0x01;
- if (!GalStarsEnable) GalStarsScrollPos = -1;
- return;
- }
-
- case 0xb800: {
- // ???
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Write => %04X, %02X\n"), a, d);
- }
- }
-}
-
-static void SkybaseAlterZ80()
-{
- MapMooncrst();
-
- ZetOpen(0);
- ZetMapArea(0x0000, 0x5fff, 0, GalZ80Rom1);
- ZetMapArea(0x0000, 0x5fff, 2, GalZ80Rom1);
- ZetMapArea(0x8000, 0x87ff, 0, GalZ80Ram1);
- ZetMapArea(0x8000, 0x87ff, 1, GalZ80Ram1);
- ZetMapArea(0x8000, 0x87ff, 2, GalZ80Ram1);
- ZetClose();
-}
-
-static INT32 SkybaseInit()
-{
- INT32 nRet;
-
- GalPostLoadCallbackFunction = SkybaseAlterZ80;
-
- nRet = GalInit();
-
- GalExtendTileInfoFunction = SkybaseExtendTileInfo;
- GalExtendSpriteInfoFunction = SkybaseExtendSpriteInfo;
-
- return nRet;
-}
-
-static void BagmanmcPostLoad()
-{
- ZetOpen(0);
- ZetMemCallback(0x0000, 0xffff, 0);
- ZetMemCallback(0x0000, 0xffff, 1);
- ZetMemCallback(0x0000, 0xffff, 2);
- ZetSetReadHandler(BagmanmcZ80Read);
- ZetSetWriteHandler(BagmanmcZ80Write);
- ZetMapArea(0x0000, GalZ80Rom1Size - 1, 0, GalZ80Rom1);
- ZetMapArea(0x0000, GalZ80Rom1Size - 1, 2, GalZ80Rom1);
- ZetMapArea(0x6000, 0x67ff, 0, GalZ80Ram1);
- ZetMapArea(0x6000, 0x67ff, 1, GalZ80Ram1);
- ZetMapArea(0x6000, 0x67ff, 2, GalZ80Ram1);
- ZetMapArea(0x9000, 0x93ff, 0, GalVideoRam);
- ZetMapArea(0x9000, 0x93ff, 1, GalVideoRam);
- ZetMapArea(0x9000, 0x93ff, 2, GalVideoRam);
- ZetMapArea(0x9800, 0x98ff, 0, GalSpriteRam);
- ZetMapArea(0x9800, 0x98ff, 2, GalSpriteRam);
- ZetClose();
-}
-
-static INT32 BagmanmcInit()
-{
- INT32 nRet;
-
- GalPostLoadCallbackFunction = BagmanmcPostLoad;
- GameIsBagmanmc = 1;
-
- nRet = GalInit();
-
- GalIrqType = GAL_IRQ_TYPE_IRQ0;
- GalExtendTileInfoFunction = BagmanmcExtendTileInfo;
- GalExtendSpriteInfoFunction = BagmanmcExtendSpriteInfo;
-
- return nRet;
-}
-
-static void DkongjrmPostLoad()
-{
- ZetOpen(0);
- ZetMemCallback(0x0000, 0xffff, 0);
- ZetMemCallback(0x0000, 0xffff, 1);
- ZetMemCallback(0x0000, 0xffff, 2);
- ZetSetReadHandler(DkongjrmZ80Read);
- ZetSetWriteHandler(DkongjrmZ80Write);
- ZetMapArea(0x0000, 0x5fff, 0, GalZ80Rom1);
- ZetMapArea(0x0000, 0x5fff, 2, GalZ80Rom1);
- ZetMapArea(0x6000, 0x6fff, 0, GalZ80Ram1);
- ZetMapArea(0x6000, 0x6fff, 1, GalZ80Ram1);
- ZetMapArea(0x6000, 0x6fff, 2, GalZ80Ram1);
- ZetMapArea(0x7000, 0x7fff, 0, GalZ80Rom1 + 0x6000);
- ZetMapArea(0x7000, 0x7fff, 2, GalZ80Rom1 + 0x6000);
- ZetMapArea(0x9000, 0x93ff, 0, GalVideoRam);
- ZetMapArea(0x9000, 0x93ff, 1, GalVideoRam);
- ZetMapArea(0x9000, 0x93ff, 2, GalVideoRam);
- ZetMapArea(0x9800, 0x98ff, 0, GalSpriteRam);
- ZetMapArea(0x9800, 0x98ff, 2, GalSpriteRam);
- ZetClose();
-}
-
-static INT32 DkongjrmInit()
-{
- INT32 nRet;
-
- GalPostLoadCallbackFunction = DkongjrmPostLoad;
-
- nRet = GalInit();
-
- GalRenderBackgroundFunction = NULL;
- GalDrawBulletsFunction = NULL;
- GalExtendTileInfoFunction = PiscesExtendTileInfo;
- GalExtendSpriteInfoFunction = DkongjrmExtendSpriteInfo;
-
- GalRenderFrameFunction = DkongjrmRenderFrame;
-
- return nRet;
-}
-
-static void VpoolPostLoad()
-{
- MapMooncrst();
-
- GalTempRom = (UINT8*)BurnMalloc(GalZ80Rom1Size);
- memcpy(GalTempRom, GalZ80Rom1, GalZ80Rom1Size);
- memcpy(GalZ80Rom1 + 0x0000, GalTempRom + 0x0000, 0x800);
- memcpy(GalZ80Rom1 + 0x2000, GalTempRom + 0x0800, 0x800);
- memcpy(GalZ80Rom1 + 0x0800, GalTempRom + 0x1000, 0x800);
- memcpy(GalZ80Rom1 + 0x2800, GalTempRom + 0x1800, 0x800);
- memcpy(GalZ80Rom1 + 0x1000, GalTempRom + 0x2000, 0x800);
- memcpy(GalZ80Rom1 + 0x3000, GalTempRom + 0x2800, 0x800);
- memcpy(GalZ80Rom1 + 0x1800, GalTempRom + 0x3000, 0x800);
- memcpy(GalZ80Rom1 + 0x3800, GalTempRom + 0x3800, 0x800);
- BurnFree(GalTempRom);
-
- ZetOpen(0);
- ZetMapArea(0x8000, 0x87ff, 0, GalZ80Ram1);
- ZetMapArea(0x8000, 0x87ff, 1, GalZ80Ram1);
- ZetMapArea(0x8000, 0x87ff, 2, GalZ80Ram1);
- ZetClose();
-}
-
-static INT32 VpoolInit()
-{
- INT32 nRet;
-
- GalPostLoadCallbackFunction = VpoolPostLoad;
-
- nRet = GalInit();
-
- GalSpriteClipStart = 7;
- GalSpriteClipEnd = 246;
-
- return nRet;
-}
-
-static void CkonggMapZ80()
-{
- ZetOpen(0);
- ZetMemCallback(0x0000, 0xffff, 0);
- ZetMemCallback(0x0000, 0xffff, 1);
- ZetMemCallback(0x0000, 0xffff, 2);
- ZetSetReadHandler(CkonggZ80Read);
- ZetSetWriteHandler(CkonggZ80Write);
- ZetMapArea(0x0000, 0x57ff, 0, GalZ80Rom1);
- ZetMapArea(0x0000, 0x57ff, 2, GalZ80Rom1);
- ZetMapArea(0x6000, 0x6fff, 0, GalZ80Ram1);
- ZetMapArea(0x6000, 0x6fff, 1, GalZ80Ram1);
- ZetMapArea(0x6000, 0x6fff, 2, GalZ80Ram1);
- ZetMapArea(0x9000, 0x93ff, 0, GalVideoRam);
- ZetMapArea(0x9000, 0x93ff, 1, GalVideoRam);
- ZetMapArea(0x9000, 0x93ff, 2, GalVideoRam);
- ZetMapArea(0x9800, 0x98ff, 0, GalSpriteRam);
- ZetMapArea(0x9800, 0x98ff, 2, GalSpriteRam);
- ZetClose();
-}
-
-static void CkonggPostLoad()
-{
- GalTempRom = (UINT8*)BurnMalloc(GalZ80Rom1Size);
- memcpy(GalTempRom, GalZ80Rom1, GalZ80Rom1Size);
- memcpy(GalZ80Rom1 + 0x2400, GalTempRom + 0x0000, 0x400);
- memcpy(GalZ80Rom1 + 0x1c00, GalTempRom + 0x0400, 0x400);
- memcpy(GalZ80Rom1 + 0x4800, GalTempRom + 0x0800, 0x400);
- memcpy(GalZ80Rom1 + 0x0c00, GalTempRom + 0x0c00, 0x400);
- memcpy(GalZ80Rom1 + 0x4400, GalTempRom + 0x1000, 0x400);
- memcpy(GalZ80Rom1 + 0x0000, GalTempRom + 0x1400, 0x400);
- memcpy(GalZ80Rom1 + 0x1800, GalTempRom + 0x1800, 0x400);
- memcpy(GalZ80Rom1 + 0x2800, GalTempRom + 0x1c00, 0x400);
- memcpy(GalZ80Rom1 + 0x3400, GalTempRom + 0x2000, 0x400);
- memcpy(GalZ80Rom1 + 0x4c00, GalTempRom + 0x2400, 0x400);
- memcpy(GalZ80Rom1 + 0x5000, GalTempRom + 0x2800, 0x400);
- memcpy(GalZ80Rom1 + 0x0400, GalTempRom + 0x2c00, 0x400);
- memcpy(GalZ80Rom1 + 0x2000, GalTempRom + 0x3000, 0x400);
- memcpy(GalZ80Rom1 + 0x3800, GalTempRom + 0x3400, 0x400);
- memcpy(GalZ80Rom1 + 0x1000, GalTempRom + 0x3800, 0x400);
- memcpy(GalZ80Rom1 + 0x4000, GalTempRom + 0x3c00, 0x400);
- memcpy(GalZ80Rom1 + 0x0800, GalTempRom + 0x4000, 0x400);
- memcpy(GalZ80Rom1 + 0x5400, GalTempRom + 0x4400, 0x400);
- memcpy(GalZ80Rom1 + 0x2c00, GalTempRom + 0x4800, 0x400);
- memcpy(GalZ80Rom1 + 0x1400, GalTempRom + 0x4c00, 0x400);
- memcpy(GalZ80Rom1 + 0x3000, GalTempRom + 0x5000, 0x400);
- memcpy(GalZ80Rom1 + 0x3c00, GalTempRom + 0x5400, 0x400);
- BurnFree(GalTempRom);
-
- CkonggMapZ80();
-}
-
-static INT32 CkonggInit()
-{
- INT32 nRet;
-
- GalPostLoadCallbackFunction = CkonggPostLoad;
-
- nRet = GalInit();
-
- GalExtendSpriteInfoFunction = MshuttleExtendSpriteInfo;
-
- GalSpriteClipStart = 7;
- GalSpriteClipEnd = 246;
-
- return nRet;
-}
-
-static void CkongmcPostLoad()
-{
- GalTempRom = (UINT8*)BurnMalloc(0x4000);
- memcpy(GalTempRom, GalZ80Rom1, 0x4000);
- memcpy(GalZ80Rom1 + 0x0000, GalTempRom + 0x0000, 0x800);
- memcpy(GalZ80Rom1 + 0x2000, GalTempRom + 0x0800, 0x800);
- memcpy(GalZ80Rom1 + 0x0800, GalTempRom + 0x1000, 0x800);
- memcpy(GalZ80Rom1 + 0x2800, GalTempRom + 0x1800, 0x800);
- memcpy(GalZ80Rom1 + 0x1000, GalTempRom + 0x2000, 0x800);
- memcpy(GalZ80Rom1 + 0x3000, GalTempRom + 0x2800, 0x800);
- memcpy(GalZ80Rom1 + 0x1800, GalTempRom + 0x3000, 0x800);
- memcpy(GalZ80Rom1 + 0x3800, GalTempRom + 0x3800, 0x800);
- BurnFree(GalTempRom);
-
- CkonggMapZ80();
-
- ZetOpen(0);
- ZetSetReadHandler(CkongmcZ80Read);
- ZetSetWriteHandler(CkongmcZ80Write);
- ZetClose();
-}
-
-static INT32 CkongmcInit()
-{
- INT32 nRet;
-
- GalPostLoadCallbackFunction = CkongmcPostLoad;
-
- nRet = GalInit();
-
- GalExtendSpriteInfoFunction = MshuttleExtendSpriteInfo;
-
- GalSpriteClipStart = 7;
- GalSpriteClipEnd = 246;
-
- return nRet;
-}
-
-static void PorterPostLoad()
-{
- GalTempRom = (UINT8*)BurnMalloc(0x4000);
- memcpy(GalTempRom, GalZ80Rom1, 0x4000);
- memcpy(GalZ80Rom1 + 0x0000, GalTempRom + 0x0000, 0x800);
- memcpy(GalZ80Rom1 + 0x2000, GalTempRom + 0x0800, 0x800);
- memcpy(GalZ80Rom1 + 0x0800, GalTempRom + 0x1000, 0x800);
- memcpy(GalZ80Rom1 + 0x2800, GalTempRom + 0x1800, 0x800);
- memcpy(GalZ80Rom1 + 0x1000, GalTempRom + 0x2000, 0x800);
- memcpy(GalZ80Rom1 + 0x3000, GalTempRom + 0x2800, 0x800);
- memcpy(GalZ80Rom1 + 0x1800, GalTempRom + 0x3000, 0x800);
- memcpy(GalZ80Rom1 + 0x3800, GalTempRom + 0x3800, 0x800);
- BurnFree(GalTempRom);
-
- MapMooncrst();
-
- ZetOpen(0);
- ZetMapArea(0x0000, 0x5fff, 0, GalZ80Rom1);
- ZetMapArea(0x0000, 0x5fff, 2, GalZ80Rom1);
- ZetMapArea(0x8000, 0x87ff, 0, GalZ80Ram1);
- ZetMapArea(0x8000, 0x87ff, 1, GalZ80Ram1);
- ZetMapArea(0x8000, 0x87ff, 2, GalZ80Ram1);
- ZetClose();
-}
-
-static INT32 PorterInit()
-{
- INT32 nRet;
-
- GalPostLoadCallbackFunction = PorterPostLoad;
-
- nRet = GalInit();
-
- GalExtendTileInfoFunction = SkybaseExtendTileInfo;
- GalExtendSpriteInfoFunction = SkybaseExtendSpriteInfo;
-
- return nRet;
-}
-
-static void KongAlterZ80()
-{
- MapMooncrst();
-
- ZetOpen(0);
- ZetMapArea(0x0000, 0x7fff, 0, GalZ80Rom1);
- ZetMapArea(0x0000, 0x7fff, 2, GalZ80Rom1);
- ZetMapArea(0x8000, 0x87ff, 0, GalZ80Ram1);
- ZetMapArea(0x8000, 0x87ff, 1, GalZ80Ram1);
- ZetMapArea(0x8000, 0x87ff, 2, GalZ80Ram1);
- ZetClose();
-}
-
-static INT32 KongInit()
-{
- INT32 nRet;
-
- GalPostLoadCallbackFunction = KongAlterZ80;
-
- GalPromRomSize = 0x20;
-
- nRet = GalInit();
-
- GalRenderBackgroundFunction = NULL;
- GalExtendSpriteInfoFunction = UpperExtendSpriteInfo;
-
- HardCodeMooncrstPROM();
-
- return nRet;
-}
-
-static void FantastcPostLoad()
-{
- MapMooncrst();
-
- ZetOpen(0);
- ZetMapArea(0x0000, 0x7fff, 0, GalZ80Rom1);
- ZetMapArea(0x0000, 0x7fff, 2, GalZ80Rom1);
- ZetMapArea(0x8000, 0x87ff, 0, GalZ80Ram1);
- ZetMapArea(0x8000, 0x87ff, 1, GalZ80Ram1);
- ZetMapArea(0x8000, 0x87ff, 2, GalZ80Ram1);
- ZetSetWriteHandler(FantastcZ80Write);
- ZetClose();
-
- static const UINT16 lut_am_unscramble[32] = {
- 0, 2, 4, 6, // ok!
- 7, 3, 5, 1, // ok!
- 6, 0, 2, 4, // ok!
- 1, 5, 3, 0, // ok!
- 2, 4, 6, 3, // good, good?, guess, guess
- 5, 6, 0, 2, // good, good?, good?, guess
- 4, 1, 1, 5, // good, good, guess, good
- 3, 7, 7, 7 // ok!
- };
-
- UINT8 *pTemp = (UINT8*)BurnMalloc(0x8000);
- memcpy(pTemp, GalZ80Rom1, 0x8000);
-
- for (INT32 i = 0; i < 32; i++) {
- memcpy(GalZ80Rom1 + i * 0x400, pTemp + lut_am_unscramble[i] * 0x1000 + (i & 3) * 0x400, 0x400);
- }
-
- BurnFree(pTemp);
-}
-
-static INT32 FantastcInit()
-{
- INT32 nRet;
-
- GalSoundType = GAL_SOUND_HARDWARE_TYPE_FANTASTCAY8910;
-
- GalPostLoadCallbackFunction = FantastcPostLoad;
- GalNumSprites = 0x40;
-
- nRet = GalInit();
-
- GalRenderFrameFunction = FantastcRenderFrame;
- GalExtendSpriteInfoFunction = UpperExtendSpriteInfo;
-
- return nRet;
-}
-
-static void TimefgtrPostLoad()
-{
- MapMooncrst();
-
- ZetOpen(0);
- ZetMapArea(0x0000, 0x7fff, 0, GalZ80Rom1);
- ZetMapArea(0x0000, 0x7fff, 2, GalZ80Rom1);
- ZetMapArea(0x8000, 0x87ff, 0, GalZ80Ram1);
- ZetMapArea(0x8000, 0x87ff, 1, GalZ80Ram1);
- ZetMapArea(0x8000, 0x87ff, 2, GalZ80Ram1);
- ZetSetWriteHandler(TimefgtrZ80Write);
- ZetClose();
-}
-
-static INT32 TimefgtrInit()
-{
- INT32 nRet;
-
- GalSoundType = GAL_SOUND_HARDWARE_TYPE_FANTASTCAY8910;
- GalPromRomSize = 0x20;
-
- GalPostLoadCallbackFunction = TimefgtrPostLoad;
- GalNumSprites = 0x40;
-
- nRet = GalInit();
-
- GalRenderFrameFunction = TimefgtrRenderFrame;
- GalExtendSpriteInfoFunction = UpperExtendSpriteInfo;
-
- HardCodeMooncrstPROM();
-
- return nRet;
-}
-
-struct BurnDriver BurnDrvSkybase = {
- "skybase", NULL, NULL, NULL, "1982",
- "Sky Base\0", NULL, "Omori Electric Co. Ltd", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, SkybaseRomInfo, SkybaseRomName, NULL, NULL, SkybaseInputInfo, SkybaseDIPInfo,
- SkybaseInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriverD BurnDrvBagmanmc = {
- "bagmanmc", "bagman", NULL, NULL, "1982",
- "Bagman (bootleg on Moon Cresta hardware set 1)\0", "Bad Colours", "bootleg", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_BOOTLEG, 2, HARDWARE_GALAXIAN, GBF_MAZE, 0,
- NULL, BagmanmcRomInfo, BagmanmcRomName, NULL, NULL, BagmanmcInputInfo, BagmanmcDIPInfo,
- BagmanmcInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvBagmanm2 = {
- "bagmanm2", "bagman", NULL, NULL, "1982",
- "Bagman (bootleg on Moon Cresta hardware set 2)\0", "Bad Colours", "Valadon Automation", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_BOOTLEG, 2, HARDWARE_GALAXIAN, GBF_MAZE, 0,
- NULL, Bagmanm2RomInfo, Bagmanm2RomName, NULL, NULL, BagmanmcInputInfo, BagmanmcDIPInfo,
- BagmanmcInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvDkongjrm = {
- "dkongjrm", "dkongjr", NULL, NULL, "1982",
- "Donkey Kong Jr. (Moon Cresta hardware)\0", "Bad Colours", "bootleg", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_BOOTLEG | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_PLATFORM, 0,
- NULL, DkongjrmRomInfo, DkongjrmRomName, NULL, NULL, DkongjrmInputInfo, DkongjrmDIPInfo,
- DkongjrmInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvVpool = {
- "vpool", "hustler", NULL, NULL, "1980",
- "Video Pool (bootleg on Moon Cresta hardware)\0", NULL, "bootleg", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_BOOTLEG, 2, HARDWARE_GALAXIAN, GBF_SPORTSMISC, 0,
- NULL, VpoolRomInfo, VpoolRomName, NULL, NULL, GalaxianInputInfo, VpoolDIPInfo,
- VpoolInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvCkongg = {
- "ckongg", "ckong", NULL, NULL, "1981",
- "Crazy Kong (bootleg on Galaxian hardware)\0", NULL, "bootleg", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_BOOTLEG | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_PLATFORM, 0,
- NULL, CkonggRomInfo, CkonggRomName, NULL, NULL, CkonggInputInfo, CkonggDIPInfo,
- CkonggInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvCkongmc = {
- "ckongmc", "ckong", NULL, NULL, "1981",
- "Crazy Kong (bootleg on Moon Cresta hardware)\0", NULL, "bootleg", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_BOOTLEG | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_PLATFORM, 0,
- NULL, CkongmcRomInfo, CkongmcRomName, NULL, NULL, CkongmcInputInfo, CkongmcDIPInfo,
- CkongmcInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvPorter = {
- "porter", "dockman", NULL, NULL, "19??",
- "Port Man (bootleg on Moon Cresta hardware)\0", NULL, "Nova Games Ltd", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_BOOTLEG | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_PLATFORM, 0,
- NULL, PorterRomInfo, PorterRomName, NULL, NULL, PorterInputInfo, PorterDIPInfo,
- PorterInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvKong = {
- "kong", NULL, NULL, NULL, "198?",
- "Kong (Donkey Kong conversion on Galaxian hardware)\0", "Bad Colours", "Taito do Brasil", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED, 2, HARDWARE_GALAXIAN, GBF_PLATFORM, 0,
- NULL, KongRomInfo, KongRomName, NULL, NULL, KongInputInfo, KongDIPInfo,
- KongInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvFantastc = {
- "fantastc", NULL, NULL, NULL, "198?",
- "Fantastic (Galaga conversion on Galaxian hardware)\0", NULL, "Taito do Brasil", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, FantastcRomInfo, FantastcRomName, NULL, NULL, FantastcInputInfo, FantastcDIPInfo,
- FantastcInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvTimefgtr = {
- "timefgtr", NULL, NULL, NULL, "198?",
- "Time Fighter (Time Pilot conversion on Galaxian hardware)\0", "Bad Colours", "Taito do Brasil", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, TimefgtrRomInfo, TimefgtrRomName, NULL, NULL, TimefgtrInputInfo, TimefgtrDIPInfo,
- TimefgtrInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-// Custom background
-static struct BurnRomInfo RockclimRomDesc[] = {
- { "lc01.a1", 0x01000, 0x8601ae8d, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "lc02.a2", 0x01000, 0x2dde9d4c, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "lc03.a3", 0x01000, 0x82c48a67, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "lc04.a4", 0x01000, 0x7cd3a04a, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "lc05.a5", 0x01000, 0x5e542149, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "lc06.a6", 0x01000, 0xb2bdca64, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "lc08.a9", 0x00800, 0x7f18e1ef, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "lc07.a7", 0x00800, 0xf18b50ac, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "lc10.c9", 0x00800, 0xdec5781b, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "lc09.c7", 0x00800, 0x06c0b5de, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "lc11.f4", 0x00020, 0x6a0c7d87, BRF_GRA | GAL_ROM_PROM },
- { "lc12.e9", 0x00020, 0xf6e76547, BRF_GRA | GAL_ROM_PROM },
-
- { "lc13.g5", 0x01000, 0x19475f2b, BRF_GRA },
- { "lc14.g7", 0x01000, 0xcc96d1db, BRF_GRA },
-};
-
-STD_ROM_PICK(Rockclim)
-STD_ROM_FN(Rockclim)
-
-UINT8 __fastcall RockclimZ80Read(UINT16 a)
-{
- switch (a) {
- case 0x8800: {
- return GalInput[3] | GalDip[3];
- }
-
- case 0xa000: {
- return GalInput[0] | GalDip[0];
- }
-
- case 0xa800: {
- return GalInput[1] | GalDip[1];
- }
-
- case 0xb000: {
- return GalInput[2] | GalDip[2];
- }
-
- case 0xb800: {
- // watchdog read
- return 0xff;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Read => %04X\n"), a);
- }
- }
-
- return 0xff;
-}
-
-void __fastcall RockclimZ80Write(UINT16 a, UINT8 d)
-{
- if (a >= 0x9800 && a <= 0x98ff) {
- INT32 Offset = a - 0x9800;
-
- GalSpriteRam[Offset] = d;
-
- if (Offset < 0x40) {
- if ((Offset & 0x01) == 0) {
- GalScrollVals[Offset >> 1] = d;
- }
- }
-
- return;
- }
-
- switch (a) {
- case 0x4800: {
- RockclimScrollX = (RockclimScrollX & 0xff00) | d;
- return;
- }
-
- case 0x4801: {
- RockclimScrollX = (RockclimScrollX & 0xff) | (d << 8);
- return;
- }
-
- case 0x4802: {
- RockclimScrollY = (RockclimScrollY & 0xff00) | d;
- return;
- }
-
- case 0x4803: {
- RockclimScrollY = (RockclimScrollY & 0xff) | (d << 8);
- return;
- }
-
- case 0xa000:
- case 0xa001:
- case 0xa002: {
- GalGfxBank[a - 0xa000] = d;
- return;
- }
-
- case 0xa003: {
- // coin_count_0_w
- return;
- }
-
- case 0xa004:
- case 0xa005:
- case 0xa006:
- case 0xa007: {
- GalaxianLfoFreqWrite(a - 0xa004, d);
- return;
- }
-
- case 0xa800:
- case 0xa801:
- case 0xa802:
- case 0xa803:
- case 0xa804:
- case 0xa805:
- case 0xa806:
- case 0xa807: {
- GalaxianSoundWrite(a - 0xa800, d);
- return;
- }
-
- case 0xb000: {
- GalIrqFire = d & 1;
- return;
- }
-
- case 0xb004: {
- GalStarsEnable = d & 0x01;
- if (!GalStarsEnable) GalStarsScrollPos = -1;
- return;
- }
-
- case 0xb006: {
- GalFlipScreenX = d & 1;
- return;
- }
-
- case 0xb007: {
- GalFlipScreenY = d & 1;
- return;
- }
-
- case 0xb800: {
- GalPitch = d;
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Write => %04X, %02X\n"), a, d);
- }
- }
-}
-
-static void RockclimPostLoad()
-{
- MapMooncrst();
-
- GalVideoRam2 = (UINT8*)BurnMalloc(0x800);
-
- ZetOpen(0);
- ZetSetReadHandler(RockclimZ80Read);
- ZetSetWriteHandler(RockclimZ80Write);
- ZetMapArea(0x4000, 0x47ff, 0, GalVideoRam2);
- ZetMapArea(0x4000, 0x47ff, 1, GalVideoRam2);
- ZetMapArea(0x4000, 0x47ff, 2, GalVideoRam2);
- ZetMapArea(0x5000, 0x53ff, 0, GalZ80Ram1 + 0x400);
- ZetMapArea(0x5000, 0x53ff, 1, GalZ80Ram1 + 0x400);
- ZetMapArea(0x5000, 0x53ff, 2, GalZ80Ram1 + 0x400);
- ZetMapArea(0x6000, 0x7fff, 0, GalZ80Rom1 + 0x4000);
- ZetMapArea(0x6000, 0x7fff, 2, GalZ80Rom1 + 0x4000);
- ZetClose();
-}
-
-static INT32 RockclimInit()
-{
- INT32 nRet;
-
- GalPostLoadCallbackFunction = RockclimPostLoad;
- RockclimTiles = (UINT8*)BurnMalloc(0x100 * 8 * 8);
-
- nRet = GalInit();
-
- INT32 RockclimPlaneOffsets[4] = {4, 0, 0x8004, 0x8000};
- INT32 RockclimCharXOffsets[8] = {3, 2, 1, 0, 11, 10, 9, 8};
- INT32 RockclimCharYOffsets[8] = {0, 16, 32, 48, 64, 80, 96, 112};
-
- GalTempRom = (UINT8*)BurnMalloc(0x2000);
- nRet = BurnLoadRom(GalTempRom + 0x0000, 12, 1); if (nRet) return 1;
- nRet = BurnLoadRom(GalTempRom + 0x1000, 13, 1); if (nRet) return 1;
- GfxDecode(256, 4, 8, 8, RockclimPlaneOffsets, RockclimCharXOffsets, RockclimCharYOffsets, 0x80, GalTempRom, RockclimTiles);
- BurnFree(GalTempRom);
-
- GalCalcPaletteFunction = RockclimCalcPalette;
- GalRenderBackgroundFunction = RockclimDrawBackground;
- GalExtendTileInfoFunction = MooncrstExtendTileInfo;
- GalExtendSpriteInfoFunction = RockclimExtendSpriteInfo;
-
- return nRet;
-}
-
-struct BurnDriver BurnDrvRockclim = {
- "rockclim", NULL, NULL, NULL, "1981",
- "Rock Climber\0", NULL, "Taito", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_MISC, 0,
- NULL, RockclimRomInfo, RockclimRomName, NULL, NULL, RockclimInputInfo, RockclimDIPInfo,
- RockclimInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 256, 224, 4, 3
-};
-
-// Extra roms and sound hardware replaced with AY8910
-static struct BurnRomInfo JumpbugRomDesc[] = {
- { "jb1", 0x01000, 0x415aa1b7, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "jb2", 0x01000, 0xb1c27510, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "jb3", 0x01000, 0x97c24be2, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "jb4", 0x01000, 0x66751d12, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "jb5", 0x01000, 0xe2d66faf, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "jb6", 0x01000, 0x49e0bdfd, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "jb7", 0x00800, 0x83d71302, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "jbl", 0x00800, 0x9a091b0a, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "jbm", 0x00800, 0x8a0fc082, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "jbn", 0x00800, 0x155186e0, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "jbi", 0x00800, 0x7749b111, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "jbj", 0x00800, 0x06e8d7df, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "jbk", 0x00800, 0xb8dbddf3, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "l06_prom.bin", 0x00020, 0x6a0c7d87, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Jumpbug)
-STD_ROM_FN(Jumpbug)
-
-static struct BurnRomInfo JumpbugbRomDesc[] = {
- { "jb1", 0x01000, 0x415aa1b7, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "jb2", 0x01000, 0xb1c27510, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "jb3b", 0x01000, 0xcb8b8a0f, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "jb4", 0x01000, 0x66751d12, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "jb5b", 0x01000, 0x7553b5e2, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "jb6b", 0x01000, 0x47be9843, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "jb7b", 0x00800, 0x460aed61, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "jbl", 0x00800, 0x9a091b0a, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "jbm", 0x00800, 0x8a0fc082, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "jbn", 0x00800, 0x155186e0, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "jbi", 0x00800, 0x7749b111, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "jbj", 0x00800, 0x06e8d7df, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "jbk", 0x00800, 0xb8dbddf3, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "l06_prom.bin", 0x00020, 0x6a0c7d87, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Jumpbugb)
-STD_ROM_FN(Jumpbugb)
-
-static struct BurnRomInfo LeversRomDesc[] = {
- { "g96059.a8", 0x01000, 0x9550627a, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "g96060.d8", 0x01000, 0x5ac64646, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "g96061.e8", 0x01000, 0x9db8e520, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "g96062.h8", 0x01000, 0x7c8e8b3a, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "g96063.j8", 0x01000, 0xfa61e793, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "g96064.l8", 0x01000, 0xf797f389, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "g95948.n1", 0x00800, 0xd8a0c692, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "g95949.s1", 0x00800, 0x3660a552, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "g95946.j1", 0x00800, 0x73b61b2d, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "g95947.m1", 0x00800, 0x72ff67e2, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "g960lev.clr", 0x00020, 0x01febbbe, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Levers)
-STD_ROM_FN(Levers)
-
-static struct BurnRomInfo BongoRomDesc[] = {
- { "bg1.bin", 0x01000, 0xde9a8ec6, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "bg2.bin", 0x01000, 0xa19da662, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "bg3.bin", 0x01000, 0x9f6f2150, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "bg4.bin", 0x01000, 0xf80372d2, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "bg5.bin", 0x01000, 0xfc92eade, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "bg6.bin", 0x01000, 0x561d9e5d, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "b-h.bin", 0x01000, 0xfc79d103, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "b-k.bin", 0x01000, 0x94d17bf3, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "b-clr.bin", 0x00020, 0xc4761ada, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Bongo)
-STD_ROM_FN(Bongo)
-
-void __fastcall BongoZ80Write(UINT16 a, UINT8 d)
-{
- if (a >= 0x9800 && a <= 0x98ff) {
- INT32 Offset = a - 0x9800;
-
- GalSpriteRam[Offset] = d;
-
- if (Offset < 0x40) {
- if ((Offset & 0x01) == 0) {
- GalScrollVals[Offset >> 1] = d;
- }
- }
-
- return;
- }
-
- switch (a) {
- case 0xb001: {
- GalIrqFire = d & 1;
- return;
- }
-
- case 0xb004: {
- GalStarsEnable = d & 0x01;
- if (!GalStarsEnable) GalStarsScrollPos = -1;
- return;
- }
-
- case 0xb006: {
- GalFlipScreenX = d & 1;
- return;
- }
-
- case 0xb007: {
- GalFlipScreenY = d & 1;
- return;
- }
-
- case 0xb800: {
- // watchdog write?
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Write => %04X, %02X\n"), a, d);
- }
- }
-}
-
-UINT8 __fastcall BongoZ80PortRead(UINT16 a)
-{
- a &= 0xff;
-
- switch (a) {
- case 0x02: {
- return AY8910Read(0);
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Port Read => %02X\n"), a);
- }
- }
-
- return 0;
-}
-
-void __fastcall BongoZ80PortWrite(UINT16 a, UINT8 d)
-{
- a &= 0xff;
-
- switch (a) {
- case 0x00: {
- AY8910Write(0, 0, d);
- return;
- }
-
- case 0x01: {
- AY8910Write(0, 1, d);
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Port Write => %02X, %02X\n"), a, d);
- }
- }
-}
-
-static INT32 JumpbugInit()
-{
- INT32 nRet;
-
- GalPostLoadCallbackFunction = MapJumpbug;
- GalSoundType = GAL_SOUND_HARDWARE_TYPE_JUMPBUGAY8910;
-
- nRet = GalInit();
-
- GalRenderBackgroundFunction = JumpbugDrawBackground;
- GalDrawBulletsFunction = ScrambleDrawBullets;
- GalExtendTileInfoFunction = JumpbugExtendTileInfo;
- GalExtendSpriteInfoFunction = JumpbugExtendSpriteInfo;
-
- AY8910SetAllRoutes(0, 0.20, BURN_SND_ROUTE_BOTH);
-
- return nRet;
-}
-
-static void LeversPostLoad()
-{
- GalTempRom = (UINT8*)BurnMalloc(GalZ80Rom1Size);
- memcpy(GalTempRom, GalZ80Rom1, GalZ80Rom1Size);
- memset(GalZ80Rom1, 0, GalZ80Rom1Size);
- memcpy(GalZ80Rom1 + 0x0000, GalTempRom + 0x0000, 0x1000);
- memcpy(GalZ80Rom1 + 0x2000, GalTempRom + 0x1000, GalZ80Rom1Size - 0x2000);
- BurnFree(GalTempRom);
-
- MapJumpbug();
-}
-
-static INT32 LeversInit()
-{
- INT32 nRet;
-
- GalZ80Rom1Size = 0x1000;
- GalTilesSharedRomSize = 0x1000;
-
- GalPostLoadCallbackFunction = LeversPostLoad;
- GalSoundType = GAL_SOUND_HARDWARE_TYPE_JUMPBUGAY8910;
-
- nRet = GalInit();
-
- GalTempRom = (UINT8*)BurnMalloc(GalTilesSharedRomSize);
- nRet = BurnLoadRom(GalTempRom + 0x0000, GAL_ROM_OFFSET_TILES_SHARED + 0, 1); if (nRet) return 1;
- nRet = BurnLoadRom(GalTempRom + 0x1000, GAL_ROM_OFFSET_TILES_SHARED + 1, 1); if (nRet) return 1;
- nRet = BurnLoadRom(GalTempRom + 0x1800, GAL_ROM_OFFSET_TILES_SHARED + 2, 1); if (nRet) return 1;
- nRet = BurnLoadRom(GalTempRom + 0x2800, GAL_ROM_OFFSET_TILES_SHARED + 3, 1); if (nRet) return 1;
- GfxDecode(GalNumChars, 2, 8, 8, CharPlaneOffsets, CharXOffsets, CharYOffsets, 0x40, GalTempRom, GalChars);
- GfxDecode(GalNumSprites, 2, 16, 16, SpritePlaneOffsets, SpriteXOffsets, SpriteYOffsets, 0x100, GalTempRom, GalSprites);
- BurnFree(GalTempRom);
-
- GalRenderBackgroundFunction = JumpbugDrawBackground;
- GalDrawBulletsFunction = ScrambleDrawBullets;
- GalExtendTileInfoFunction = JumpbugExtendTileInfo;
- GalExtendSpriteInfoFunction = JumpbugExtendSpriteInfo;
-
- AY8910SetAllRoutes(0, 0.20, BURN_SND_ROUTE_BOTH);
-
- return nRet;
-}
-
-static void BongoPostLoad()
-{
- MapMooncrst();
-
- ZetOpen(0);
- ZetSetWriteHandler(BongoZ80Write);
- ZetSetInHandler(BongoZ80PortRead);
- ZetSetOutHandler(BongoZ80PortWrite);
- ZetMapArea(0x0000, 0x5fff, 0, GalZ80Rom1);
- ZetMapArea(0x0000, 0x5fff, 2, GalZ80Rom1);
- ZetMapArea(0x8400, 0x87ff, 0, GalZ80Ram1);
- ZetMapArea(0x8400, 0x87ff, 1, GalZ80Ram1);
- ZetMapArea(0x8400, 0x87ff, 2, GalZ80Ram1);
- ZetMapArea(0x9400, 0x97ff, 0, GalVideoRam);
- ZetMapArea(0x9400, 0x97ff, 1, GalVideoRam);
- ZetMapArea(0x9400, 0x97ff, 2, GalVideoRam);
- ZetClose();
-}
-
-static INT32 BongoInit()
-{
- INT32 nRet;
-
- GalPostLoadCallbackFunction = BongoPostLoad;
- GalSoundType = GAL_SOUND_HARDWARE_TYPE_BONGOAY8910;
-
- nRet = GalInit();
-
- GalExtendSpriteInfoFunction = UpperExtendSpriteInfo;
-
- return nRet;
-}
-
-struct BurnDriver BurnDrvJumpbug = {
- "jumpbug", NULL, NULL, NULL, "1981",
- "Jump Bug\0", NULL, "Rock-ola", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_HORSHOOT, 0,
- NULL, JumpbugRomInfo, JumpbugRomName, NULL, NULL, JumpbugInputInfo, JumpbugDIPInfo,
- JumpbugInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvJumpbugb = {
- "jumpbugb", "jumpbug", NULL, NULL, "1981",
- "Jump Bug (bootleg)\0", NULL, "bootleg", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_BOOTLEG | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_HORSHOOT, 0,
- NULL, JumpbugbRomInfo, JumpbugbRomName, NULL, NULL, JumpbugInputInfo, JumpbugDIPInfo,
- JumpbugInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvLevers = {
- "levers", NULL, NULL, NULL, "1983",
- "Levers\0", NULL, "Rock-ola", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_MISC, 0,
- NULL, LeversRomInfo, LeversRomName, NULL, NULL, LeversInputInfo, LeversDIPInfo,
- LeversInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvBongo = {
- "bongo", NULL, NULL, NULL, "1983",
- "Bongo\0", NULL, "Jetsoft", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_PLATFORM, 0,
- NULL, BongoRomInfo, BongoRomName, NULL, NULL, BongoInputInfo, BongoDIPInfo,
- BongoInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-// Second Z80 driving AY8910
-static struct BurnRomInfo CheckmanRomDesc[] = {
- { "cm1", 0x00800, 0xe8cbdd28, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "cm2", 0x00800, 0xb8432d4d, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "cm3", 0x00800, 0x15a97f61, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "cm4", 0x00800, 0x8c12ecc0, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "cm5", 0x00800, 0x2352cfd6, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "cm13", 0x00800, 0x0b09a3e8, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "cm14", 0x00800, 0x47f043be, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
-
- { "cm11", 0x00800, 0x8d1bcca0, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "cm9", 0x00800, 0x3cd5c751, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "checkman.clr", 0x00020, 0x57a45057, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Checkman)
-STD_ROM_FN(Checkman)
-
-static struct BurnRomInfo CheckmanjRomDesc[] = {
- { "cm_1.bin", 0x01000, 0x456a118f, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "cm_2.bin", 0x01000, 0x146b2c44, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "cm_3.bin", 0x00800, 0x73e1c945, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "cm_4.bin", 0x01000, 0x923cffa1, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
-
- { "cm_6.bin", 0x00800, 0x476a7cc3, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "cm_5.bin", 0x00800, 0xb3df2b5f, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "checkman.clr", 0x00020, 0x57a45057, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Checkmanj)
-STD_ROM_FN(Checkmanj)
-
-static struct BurnRomInfo DingoRomDesc[] = {
- { "003.e7", 0x01000, 0xd088550f, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "004.h7", 0x01000, 0xa228446a, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "005.j7", 0x00800, 0x14d680bb, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "6.7l", 0x01000, 0x047092e0, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
-
- { "001.h1", 0x00800, 0x1ab1dd4d, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "002.k1", 0x00800, 0x4be375ee, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "18s030.l6", 0x00020, 0x3061d0f9, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Dingo)
-STD_ROM_FN(Dingo)
-
-static struct BurnRomInfo DingoeRomDesc[] = {
- { "unk.2b", 0x01000, 0x0df7ac6d, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "unk.2d", 0x01000, 0x0881e204, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "unk.3b", 0x01000, 0x0b6aeab5, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "unk.1c", 0x00800, 0x8e354c38, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "unk.1d", 0x00800, 0x092878d6, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
-
- { "unk.4d", 0x00800, 0x76a00a56, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "unk.4b", 0x00800, 0x5acf57aa, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "82s123n.001", 0x00020, 0x02b11865, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Dingoe)
-STD_ROM_FN(Dingoe)
-
-void __fastcall CheckmanZ80PortWrite(UINT16 a, UINT8 d)
-{
- a &= 0xff;
-
- switch (a) {
- case 0x00: {
- GalSoundLatch = d;
- ZetClose();
- ZetOpen(1);
- ZetNmi();
- ZetClose();
- ZetOpen(0);
- return;
- }
- }
-
- bprintf(PRINT_NORMAL, _T("IO Write %x, %x\n"), a, d);
-}
-
-void __fastcall CheckmanZ80Write(UINT16 a, UINT8 d)
-{
- if (a >= 0x9800 && a <= 0x98ff) {
- INT32 Offset = a - 0x9800;
-
- GalSpriteRam[Offset] = d;
-
- if (Offset < 0x40) {
- if ((Offset & 0x01) == 0) {
- GalScrollVals[Offset >> 1] = d;
- }
- }
-
- return;
- }
-
- switch (a) {
- case 0xa000:
- case 0xa001:
- case 0xa002: {
- GalGfxBank[a - 0xa000] = d;
- return;
- }
-
- case 0xa003: {
- // coin_count_0_w
- return;
- }
-
- case 0xb001: {
- GalIrqFire = d & 1;
- return;
- }
-
- case 0xb004: {
- GalStarsEnable = d & 0x01;
- if (!GalStarsEnable) GalStarsScrollPos = -1;
- return;
- }
-
- case 0xb006: {
- GalFlipScreenX = d & 1;
- return;
- }
-
- case 0xb007: {
- GalFlipScreenY = d & 1;
- return;
- }
- }
-
- bprintf(PRINT_NORMAL, _T("Prog Write %x, %x\n"), a, d);
-}
-
-UINT8 __fastcall CheckmanSoundZ80PortRead(UINT16 a)
-{
- a &= 0xff;
-
- switch (a) {
- case 0x03: {
- return GalSoundLatch;
- }
-
- case 0x06: {
- return AY8910Read(0);
- }
- }
-
- bprintf(PRINT_NORMAL, _T("Sound IO Read %x\n"), a);
- return 0xff;
-}
-
-void __fastcall CheckmanSoundZ80PortWrite(UINT16 a, UINT8 d)
-{
- a &= 0xff;
-
- switch (a) {
- case 0x04: {
- AY8910Write(0, 0, d);
- return;
- }
-
- case 0x05: {
- AY8910Write(0, 1, d);
- return;
- }
- }
-
- bprintf(PRINT_NORMAL, _T("Sound IO Write %x, %x\n"), a, d);
-}
-
-UINT8 __fastcall CheckmanjZ80Read(UINT16 a)
-{
- switch (a) {
- case 0x3800: {
- switch (ZetGetPC(-1)) {
- case 0x0f15: return 0xf5;
- case 0x0f8f: return 0x7c;
- case 0x10b3: return 0x7c;
- case 0x10e0: return 0x00;
- case 0x10f1: return 0xaa;
- case 0x1402: return 0xaa;
- }
- return 0xff;
- }
-
- case 0x6000: {
- return GalInput[0] | GalDip[0];
- }
-
- case 0x6800: {
- return GalInput[1] | GalDip[1];
- }
-
- case 0x7000: {
- return GalInput[2] | GalDip[2];
- }
-
- case 0x7800: {
- // watchdog read
- return 0xff;
- }
- }
-
- bprintf(PRINT_NORMAL, _T("Prog Read %x\n"), a);
- return 0xff;
-}
-
-void __fastcall CheckmanjZ80Write(UINT16 a, UINT8 d)
-{
- if (a >= 0x5800 && a <= 0x58ff) {
- INT32 Offset = a - 0x5800;
-
- GalSpriteRam[Offset] = d;
-
- if (Offset < 0x40) {
- if ((Offset & 0x01) == 0) {
- GalScrollVals[Offset >> 1] = d;
- }
- }
-
- return;
- }
-
- switch (a) {
- case 0x6000:
- case 0x6001: {
- // start_lamp_w
- return;
- }
-
- case 0x6002: {
- // coin_lock_w
- return;
- }
-
- case 0x6003: {
- // coin_count_0_w
- return;
- }
-
- case 0x7001: {
- GalIrqFire = d & 1;
- return;
- }
-
- case 0x7004: {
- GalStarsEnable = d & 0x01;
- if (!GalStarsEnable) GalStarsScrollPos = -1;
- return;
- }
-
- case 0x7006: {
- GalFlipScreenX = d & 1;
- return;
- }
-
- case 0x7007: {
- GalFlipScreenY = d & 1;
- return;
- }
-
- case 0x7800: {
- GalSoundLatch = d;
- ZetClose();
- ZetOpen(1);
- ZetNmi();
- ZetClose();
- ZetOpen(0);
- return;
- }
- }
-
- bprintf(PRINT_NORMAL, _T("Prog Write %x, %x\n"), a, d);
-}
-
-UINT8 __fastcall CheckmanjSoundZ80Read(UINT16 a)
-{
- switch (a) {
- case 0xa002: {
- return AY8910Read(0);
- }
- }
-
- bprintf(PRINT_NORMAL, _T("Sound Prog Read %x\n"), a);
- return 0xff;
-}
-
-void __fastcall CheckmanjSoundZ80Write(UINT16 a, UINT8 d)
-{
- switch (a) {
- case 0xa000: {
- AY8910Write(0, 0, d);
- return;
- }
-
- case 0xa001: {
- AY8910Write(0, 1, d);
- return;
- }
- }
-
- bprintf(PRINT_NORMAL, _T("Sound Prog Write %x, %x\n"), a, d);
-}
-
-UINT8 __fastcall DingoZ80Read(UINT16 a)
-{
- switch (a) {
- case 0x3000: {
- return 0xaa;
- }
-
- case 0x3035: {
- return 0x8c;
- }
-
- case 0x6000: {
- return GalInput[0] | GalDip[0];
- }
-
- case 0x6800: {
- return GalInput[1] | GalDip[1];
- }
-
- case 0x7000: {
- return GalInput[2] | GalDip[2];
- }
-
- case 0x7800: {
- // watchdog read
- return 0xff;
- }
- }
-
- bprintf(PRINT_NORMAL, _T("Prog Read %x\n"), a);
- return 0xff;
-}
-
-static void CheckmanInitSoundCPU()
-{
- ZetOpen(1);
- ZetMapArea(0x0000, GalZ80Rom2Size - 1, 0, GalZ80Rom2);
- ZetMapArea(0x0000, GalZ80Rom2Size - 1, 2, GalZ80Rom2);
- ZetMapArea(0x2000, 0x23ff, 0, GalZ80Ram2);
- ZetMapArea(0x2000, 0x23ff, 1, GalZ80Ram2);
- ZetMapArea(0x2000, 0x23ff, 2, GalZ80Ram2);
- ZetSetInHandler(CheckmanSoundZ80PortRead);
- ZetSetOutHandler(CheckmanSoundZ80PortWrite);
- ZetClose();
-
- nGalCyclesTotal[1] = 1620000 / 60;
-}
-
-static void CheckmanPostLoad()
-{
- static const UINT8 XORTable[8][4] = {
- { 6, 0, 6, 0 },
- { 5, 1, 5, 1 },
- { 4, 2, 6, 1 },
- { 2, 4, 5, 0 },
- { 4, 6, 1, 5 },
- { 0, 6, 2, 5 },
- { 0, 2, 0, 2 },
- { 1, 4, 1, 4 }
- };
-
- for (UINT32 Offset = 0; Offset < GalZ80Rom1Size; Offset++) {
- UINT8 Data = GalZ80Rom1[Offset];
- UINT32 Line = Offset & 0x07;
-
- Data ^= (BIT(Data, XORTable[Line][0]) << XORTable[Line][1]) | (BIT(Data, XORTable[Line][2]) << XORTable[Line][3]);
- GalZ80Rom1[Offset] = Data;
- }
-
- MapMooncrst();
- ZetOpen(0);
- ZetSetWriteHandler(CheckmanZ80Write);
- ZetSetOutHandler(CheckmanZ80PortWrite);
- ZetClose();
-
- CheckmanInitSoundCPU();
-}
-
-static INT32 CheckmanInit()
-{
- INT32 nRet;
-
- GalPostLoadCallbackFunction = CheckmanPostLoad;
- GalSoundType = GAL_SOUND_HARDWARE_TYPE_CHECKMANAY8910;
- GalTilesSharedRomSize = 0x1000;
-
- nRet = GalInit();
-
- GalTempRom = (UINT8*)BurnMalloc(GalTilesSharedRomSize);
- BurnLoadRom(GalTempRom + 0x0000, GAL_ROM_OFFSET_TILES_SHARED + 0, 1);
- BurnLoadRom(GalTempRom + 0x1000, GAL_ROM_OFFSET_TILES_SHARED + 1, 1);
- memcpy(GalTempRom + 0x0800, GalTempRom + 0x0000, 0x800);
- memcpy(GalTempRom + 0x1800, GalTempRom + 0x1000, 0x800);
- GfxDecode(GalNumChars, 2, 8, 8, CharPlaneOffsets, CharXOffsets, CharYOffsets, 0x40, GalTempRom, GalChars);
- GfxDecode(GalNumSprites, 2, 16, 16, SpritePlaneOffsets, SpriteXOffsets, SpriteYOffsets, 0x100, GalTempRom, GalSprites);
- BurnFree(GalTempRom);
-
- GalExtendTileInfoFunction = MooncrstExtendTileInfo;
- GalExtendSpriteInfoFunction = MooncrstExtendSpriteInfo;
-
- AY8910SetAllRoutes(0, 0.20, BURN_SND_ROUTE_BOTH);
-
- return nRet;
-}
-
-static void CheckmanjInitSoundCPU()
-{
- ZetOpen(1);
- ZetMapArea(0x0000, GalZ80Rom2Size - 1, 0, GalZ80Rom2);
- ZetMapArea(0x0000, GalZ80Rom2Size - 1, 2, GalZ80Rom2);
- ZetMapArea(0x8000, 0x83ff, 0, GalZ80Ram2);
- ZetMapArea(0x8000, 0x83ff, 1, GalZ80Ram2);
- ZetMapArea(0x8000, 0x83ff, 2, GalZ80Ram2);
- ZetSetReadHandler(CheckmanjSoundZ80Read);
- ZetSetWriteHandler(CheckmanjSoundZ80Write);
- ZetClose();
-
- nGalCyclesTotal[1] = 1620000 / 60;
-}
-
-static void CheckmanjPostLoad()
-{
- ZetOpen(0);
- ZetSetReadHandler(CheckmanjZ80Read);
- ZetSetWriteHandler(CheckmanjZ80Write);
- ZetClose();
-
- CheckmanjInitSoundCPU();
-}
-
-static INT32 CheckmanjInit()
-{
- INT32 nRet;
-
- GalPostLoadCallbackFunction = CheckmanjPostLoad;
- GalSoundType = GAL_SOUND_HARDWARE_TYPE_CHECKMAJAY8910;
-
- nRet = GalInit();
-
- AY8910SetAllRoutes(0, 0.20, BURN_SND_ROUTE_BOTH);
-
- return nRet;
-}
-
-static void DingoPostLoad()
-{
- ZetOpen(0);
- ZetSetReadHandler(DingoZ80Read);
- ZetSetWriteHandler(CheckmanjZ80Write);
- ZetMapArea(0x5400, 0x57ff, 0, GalVideoRam);
- ZetMapArea(0x5400, 0x57ff, 1, GalVideoRam);
- ZetMapArea(0x5400, 0x57ff, 2, GalVideoRam);
- ZetClose();
-
- CheckmanjInitSoundCPU();
-}
-
-static INT32 DingoInit()
-{
- INT32 nRet;
-
- GalPostLoadCallbackFunction = DingoPostLoad;
- GalSoundType = GAL_SOUND_HARDWARE_TYPE_CHECKMAJAY8910;
- Dingo = 1;
- nRet = GalInit();
-
- AY8910SetAllRoutes(0, 1.00, BURN_SND_ROUTE_BOTH);
-
- return nRet;
-}
-
-static void DingoePostLoad()
-{
- for (UINT32 Offset = 0; Offset < GalZ80Rom1Size; Offset++) {
- UINT8 Data = GalZ80Rom1[Offset];
-
- Data ^= BIT(Data, 2) << 4;
- Data ^= BIT(Data, 5) << 0;
- Data ^= 0x02;
-
- if (Offset & 0x02) Data = BITSWAP08(Data, 7, 6, 5, 0, 3, 2, 1, 4);
- GalZ80Rom1[Offset] = Data;
- }
-
- MapMooncrst();
- ZetOpen(0);
- ZetSetWriteHandler(CheckmanZ80Write);
- ZetSetOutHandler(CheckmanZ80PortWrite);
- ZetClose();
-
- CheckmanInitSoundCPU();
-}
-
-static INT32 DingoeInit()
-{
- INT32 nRet;
-
- GalPostLoadCallbackFunction = DingoePostLoad;
- GalSoundType = GAL_SOUND_HARDWARE_TYPE_CHECKMANAY8910;
-
- nRet = GalInit();
-
- AY8910SetAllRoutes(0, 1.00, BURN_SND_ROUTE_BOTH);
-
- return nRet;
-}
-
-struct BurnDriver BurnDrvCheckman = {
- "checkman", NULL, NULL, NULL, "1982",
- "Check Man\0", NULL, "Zilex-Zenitone", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED, 2, HARDWARE_GALAXIAN, GBF_MAZE, 0,
- NULL, CheckmanRomInfo, CheckmanRomName, NULL, NULL, CheckmanInputInfo, CheckmanDIPInfo,
- CheckmanInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvCheckmanj = {
- "checkmanj", "checkman", NULL, NULL, "1982",
- "Check Man (Japan)\0", NULL, "Jaleco", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED, 2, HARDWARE_GALAXIAN, GBF_MAZE, 0,
- NULL, CheckmanjRomInfo, CheckmanjRomName, NULL, NULL, CheckmanjInputInfo, CheckmanjDIPInfo,
- CheckmanjInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvDingo = {
- "dingo", NULL, NULL, NULL, "1983",
- "Dingo\0", NULL, "Ashby Computers and Graphics LTD. (Jaleco license)", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED, 2, HARDWARE_GALAXIAN, GBF_MAZE, 0,
- NULL, DingoRomInfo, DingoRomName, NULL, NULL, DingoInputInfo, DingoDIPInfo,
- DingoInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriverD BurnDrvDingoe = {
- "dingoe", "dingo", NULL, NULL, "1983",
- "Dingo (encrypted)\0", "Encrypted", "Ashby Computers and Graphics LTD. (Jaleco license)", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED, 2, HARDWARE_GALAXIAN, GBF_MAZE, 0,
- NULL, DingoeRomInfo, DingoeRomName, NULL, NULL, DingoInputInfo, DingoDIPInfo,
- DingoeInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-// Crazy climber sound plus AY8910, and INT instead of NMI
-static struct BurnRomInfo MshuttleRomDesc[] = {
- { "my05", 0x01000, 0x83574af1, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "my04", 0x01000, 0x1cfae2c8, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "my03", 0x01000, 0xc8b8a368, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "my02", 0x01000, 0xb6aeee6e, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "my01", 0x01000, 0xdef82adc, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "my09", 0x01000, 0x3601b380, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "my11", 0x00800, 0xb659e932, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "my08", 0x01000, 0x992b06cd, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "my10", 0x00800, 0xd860e6ce, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "mscprom1.bin", 0x00020, 0xea0d1af0, BRF_GRA | GAL_ROM_PROM },
-
- { "my07", 0x01000, 0x522a2920, BRF_SND | BRF_OPT }, // Samples
- { "my06", 0x01000, 0x466415f2, BRF_SND | BRF_OPT },
-};
-
-STD_ROM_PICK(Mshuttle)
-STD_ROM_FN(Mshuttle)
-
-static struct BurnRomInfo Mshuttle2RomDesc[] = {
- { "my05", 0x01000, 0x83574af1, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "my04", 0x01000, 0x1cfae2c8, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "my03", 0x01000, 0xc8b8a368, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "my02", 0x01000, 0x9804061c, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "my01", 0x01000, 0xca746a61, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "my09", 0x01000, 0x3601b380, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "my11", 0x00800, 0xd860e6ce, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "my08", 0x01000, 0x992b06cd, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "my10", 0x00800, 0xd860e6ce, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "mscprom1.bin", 0x00020, 0xea0d1af0, BRF_GRA | GAL_ROM_PROM },
-
- { "my07", 0x01000, 0x522a2920, BRF_SND | BRF_OPT }, // Samples
- { "my06", 0x01000, 0x6d2dd711, BRF_SND | BRF_OPT },
-};
-
-STD_ROM_PICK(Mshuttle2)
-STD_ROM_FN(Mshuttle2)
-
-static struct BurnRomInfo MshuttlejRomDesc[] = {
- { "mcs.5", 0x01000, 0xa5a292b4, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "mcs.4", 0x01000, 0xacdc0f9e, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "mcs.3", 0x01000, 0xc1e3f5d8, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "mcs.2", 0x01000, 0x14577703, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "mcs.1", 0x01000, 0x27d46772, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "my09", 0x01000, 0x3601b380, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "my11", 0x00800, 0xb659e932, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "my08", 0x01000, 0x992b06cd, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "my10", 0x00800, 0xd860e6ce, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "mscprom1.bin", 0x00020, 0xea0d1af0, BRF_GRA | GAL_ROM_PROM },
-
- { "my07", 0x01000, 0x522a2920, BRF_SND | BRF_OPT }, // Samples
- { "my06", 0x01000, 0x6d2dd711, BRF_SND | BRF_OPT },
-};
-
-STD_ROM_PICK(Mshuttlej)
-STD_ROM_FN(Mshuttlej)
-
-static struct BurnRomInfo Mshuttlej2RomDesc[] = {
- { "ali5.bin", 0x01000, 0x320fe630, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "mcs.4", 0x01000, 0xacdc0f9e, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "mcs.3", 0x01000, 0xc1e3f5d8, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "ali2.bin", 0x01000, 0x9ed169e1, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "ali1.bin", 0x01000, 0x7f8a52d9, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "my09", 0x01000, 0x3601b380, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "my11", 0x00800, 0xb659e932, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "my08", 0x01000, 0x992b06cd, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "my10", 0x00800, 0xd860e6ce, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "mscprom1.bin", 0x00020, 0xea0d1af0, BRF_GRA | GAL_ROM_PROM },
-
- { "my07", 0x01000, 0x522a2920, BRF_SND | BRF_OPT }, // Samples
- { "my06.4r", 0x01000, 0x4162be4d, BRF_SND | BRF_OPT },
-};
-
-STD_ROM_PICK(Mshuttlej2)
-STD_ROM_FN(Mshuttlej2)
-
-UINT8 __fastcall MshuttleZ80PortRead(UINT16 a)
-{
- a &= 0xff;
-
- switch (a) {
- case 0x0c: {
- if (!MshuttleAY8910CS) return AY8910Read(0);
- return 0xff;
- }
- }
-
- bprintf(PRINT_NORMAL, _T("IO Read %x\n"), a);
- return 0xff;
-}
-
-void __fastcall MshuttleZ80PortWrite(UINT16 a, UINT8 d)
-{
- a &= 0xff;
-
- switch (a) {
- case 0x08: {
- if (!MshuttleAY8910CS) AY8910Write(0, 0, d);
- return;
- }
-
- case 0x09: {
- if (!MshuttleAY8910CS) AY8910Write(0, 1, d);
- return;
- }
- }
-
- bprintf(PRINT_NORMAL, _T("IO Write %x, %x\n"), a, d);
-}
-
-void __fastcall MshuttleZ80Write(UINT16 a, UINT8 d)
-{
- if (a >= 0x9800 && a <= 0x98ff) {
- INT32 Offset = a - 0x9800;
-
- GalSpriteRam[Offset] = d;
-
- if (Offset < 0x40) {
- if ((Offset & 0x01) == 0) {
- GalScrollVals[Offset >> 1] = d;
- }
- }
-
- return;
- }
-
- switch (a) {
- case 0xa000: {
- GalIrqFire = d & 1;
- return;
- }
-
- case 0xa001: {
- GalStarsEnable = d & 0x01;
- if (!GalStarsEnable) GalStarsScrollPos = -1;
- return;
- }
-
- case 0xa002: {
- GalFlipScreenX = d & 1;
- GalFlipScreenY = d & 1;
- return;
- }
-
- case 0xa004: {
- // cclimber_sample_trigger_w
- return;
- }
-
- case 0xa007: {
- MshuttleAY8910CS = d & 1;
- return;
- }
-
- case 0xa800: {
- // cclimber_sample_rate_w
- return;
- }
-
- case 0xb000: {
- // cclimber_sample_volume_w
- return;
- }
- }
- bprintf(PRINT_NORMAL, _T("Prog Write %x, %x\n"), a, d);
-}
-
-static void MapMshuttle()
-{
- MapMooncrst();
- ZetOpen(0);
- ZetMapArea(0x0000, 0x4fff, 0, GalZ80Rom1);
- ZetMapArea(0x0000, 0x4fff, 2, GalZ80Rom1Op, GalZ80Rom1);
- ZetSetWriteHandler(MshuttleZ80Write);
- ZetSetInHandler(MshuttleZ80PortRead);
- ZetSetOutHandler(MshuttleZ80PortWrite);
- ZetClose();
-}
-
-static void MshuttleDecrypt()
-{
- GalZ80Rom1Op = (UINT8*)BurnMalloc(GalZ80Rom1Size);
-
- static const UINT8 ConvTable[8][16] = {
- { 0x40, 0x41, 0x44, 0x15, 0x05, 0x51, 0x54, 0x55, 0x50, 0x00, 0x01, 0x04, (UINT8)-1, 0x10, 0x11, 0x14 },
- { 0x45, 0x51, 0x55, 0x44, 0x40, 0x11, 0x05, 0x41, 0x10, 0x14, 0x54, 0x50, 0x15, 0x04, 0x00, 0x01 },
- { 0x11, 0x14, 0x10, 0x00, 0x44, 0x05, (UINT8)-1, 0x04, 0x45, 0x15, 0x55, 0x50, (UINT8)-1, 0x01, 0x54, 0x51 },
- { 0x14, 0x01, 0x11, 0x10, 0x50, 0x15, 0x00, 0x40, 0x04, 0x51, 0x45, 0x05, 0x55, 0x54, (UINT8)-1, 0x44 },
- { 0x04, 0x10, (UINT8)-1, 0x40, 0x15, 0x41, 0x50, 0x50, 0x11, (UINT8)-1, 0x14, 0x00, 0x51, 0x45, 0x55, 0x01 },
- { 0x44, 0x45, 0x00, 0x51, (UINT8)-1, (UINT8)-1, 0x15, 0x11, 0x01, 0x10, 0x04, 0x55, 0x05, 0x40, 0x50, 0x41 },
- { 0x51, 0x00, 0x01, 0x05, 0x04, 0x55, 0x54, 0x50, 0x41, (UINT8)-1, 0x11, 0x15, 0x14, 0x10, 0x44, 0x40 },
- { 0x05, 0x04, 0x51, 0x01, (UINT8)-1, (UINT8)-1, 0x55, (UINT8)-1, 0x00, 0x50, 0x15, 0x14, 0x44, 0x41, 0x40, 0x54 },
- };
-
- for (UINT32 Offset = 0x0000; Offset < GalZ80Rom1Size; Offset++) {
- INT32 i, j;
- UINT8 Src;
-
- Src = GalZ80Rom1[Offset];
- i = (Offset & 1) | (Src & 0x02) | ((Src & 0x80) >> 5);
- j = (Src & 0x01) | ((Src & 0x04) >> 1) | ((Src & 0x10) >> 2) | ((Src & 0x40) >> 3);
-
- GalZ80Rom1Op[Offset] = (Src & 0xaa) | ConvTable[i][j];
- }
-
- MapMshuttle();
-}
-
-static void MShuttleCommonInit()
-{
- GalTempRom = (UINT8*)BurnMalloc(GalTilesSharedRomSize);
- BurnLoadRom(GalTempRom + 0x0000, GAL_ROM_OFFSET_TILES_SHARED + 0, 1);
- BurnLoadRom(GalTempRom + 0x1000, GAL_ROM_OFFSET_TILES_SHARED + 1, 1);
- BurnLoadRom(GalTempRom + 0x2000, GAL_ROM_OFFSET_TILES_SHARED + 2, 1);
- BurnLoadRom(GalTempRom + 0x3000, GAL_ROM_OFFSET_TILES_SHARED + 3, 1);
- GfxDecode(GalNumChars, 2, 8, 8, CharPlaneOffsets, CharXOffsets, CharYOffsets, 0x40, GalTempRom, GalChars);
- GfxDecode(GalNumSprites, 2, 16, 16, SpritePlaneOffsets, SpriteXOffsets, SpriteYOffsets, 0x100, GalTempRom, GalSprites);
- BurnFree(GalTempRom);
-
- GalDrawBulletsFunction = MshuttleDrawBullets;
- GalExtendTileInfoFunction = MshuttleExtendTileInfo;
- GalExtendSpriteInfoFunction = MshuttleExtendSpriteInfo;
-
- GalIrqType = GAL_IRQ_TYPE_IRQ0;
-}
-
-static INT32 MshuttleInit()
-{
- INT32 nRet;
-
- GalPostLoadCallbackFunction = MshuttleDecrypt;
- GalSoundType = GAL_SOUND_HARDWARE_TYPE_MSHUTTLEAY8910;
- GalTilesSharedRomSize = 0x1000;
-
- nRet = GalInit();
-
- MShuttleCommonInit();
-
- return nRet;
-}
-
-static void MshuttlejDecrypt()
-{
- GalZ80Rom1Op = (UINT8*)BurnMalloc(GalZ80Rom1Size);
-
- static const UINT8 ConvTable[8][16] = {
- { 0x41, 0x54, 0x51, 0x14, 0x05, 0x10, 0x01, 0x55, 0x44, 0x11, 0x00, 0x50, 0x15, 0x40, 0x04, 0x45 },
- { 0x50, 0x11, 0x40, 0x55, 0x51, 0x14, 0x45, 0x04, 0x54, 0x15, 0x10, 0x05, 0x44, 0x01, 0x00, 0x41 },
- { 0x44, 0x11, 0x00, 0x50, 0x41, 0x54, 0x04, 0x14, 0x15, 0x40, 0x51, 0x55, 0x05, 0x10, 0x01, 0x45 },
- { 0x10, 0x50, 0x54, 0x55, 0x01, 0x44, 0x40, 0x04, 0x14, 0x11, 0x00, 0x41, 0x45, 0x15, 0x51, 0x05 },
- { 0x14, 0x41, 0x01, 0x44, 0x04, 0x50, 0x51, 0x45, 0x11, 0x40, 0x54, 0x15, 0x10, 0x00, 0x55, 0x05 },
- { 0x01, 0x05, 0x41, 0x45, 0x54, 0x50, 0x55, 0x10, 0x11, 0x15, 0x51, 0x14, 0x44, 0x40, 0x04, 0x00 },
- { 0x05, 0x55, 0x00, 0x50, 0x11, 0x40, 0x54, 0x14, 0x45, 0x51, 0x10, 0x04, 0x44, 0x01, 0x41, 0x15 },
- { 0x55, 0x50, 0x15, 0x10, 0x01, 0x04, 0x41, 0x44, 0x45, 0x40, 0x05, 0x00, 0x11, 0x14, 0x51, 0x54 },
- };
-
- for (UINT32 Offset = 0x0000; Offset < GalZ80Rom1Size; Offset++) {
- INT32 i, j;
- UINT8 Src;
-
- Src = GalZ80Rom1[Offset];
- i = (Offset & 1) | (Src & 0x02) | ((Src & 0x80) >> 5);
- j = (Src & 0x01) | ((Src & 0x04) >> 1) | ((Src & 0x10) >> 2) | ((Src & 0x40) >> 3);
-
- GalZ80Rom1Op[Offset] = (Src & 0xaa) | ConvTable[i][j];
- }
-
- MapMshuttle();
-}
-
-static INT32 MshuttlejInit()
-{
- INT32 nRet;
-
- GalPostLoadCallbackFunction = MshuttlejDecrypt;
- GalSoundType = GAL_SOUND_HARDWARE_TYPE_MSHUTTLEAY8910;
- GalTilesSharedRomSize = 0x1000;
-
- nRet = GalInit();
-
- MShuttleCommonInit();
-
- return nRet;
-}
-
-struct BurnDriver BurnDrvMshuttle = {
- "mshuttle", NULL, NULL, NULL, "1981",
- "Moon Shuttle (US?)\0", "Incomplete Sound", "Nichibutsu", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, MshuttleRomInfo, MshuttleRomName, NULL, NULL, MshuttleInputInfo, MshuttleDIPInfo,
- MshuttleInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 256, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvMshuttle2 = {
- "mshuttle2", "mshuttle", NULL, NULL, "1981",
- "Moon Shuttle (US? set 2)\0", "Incomplete Sound", "Nichibutsu", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, Mshuttle2RomInfo, Mshuttle2RomName, NULL, NULL, MshuttleInputInfo, MshuttleDIPInfo,
- MshuttleInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 256, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvMshuttlej = {
- "mshuttlej", "mshuttle", NULL, NULL, "1981",
- "Moon Shuttle (Japan)\0", "Incomplete Sound", "Nichibutsu", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, MshuttlejRomInfo, MshuttlejRomName, NULL, NULL, MshuttleInputInfo, MshuttleDIPInfo,
- MshuttlejInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 256, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvMshuttlej2 = {
- "mshuttlej2", "mshuttle", NULL, NULL, "1981",
- "Moon Shuttle (Japan set 2)\0", "Incomplete Sound", "Nichibutsu", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, Mshuttlej2RomInfo, Mshuttlej2RomName, NULL, NULL, MshuttleInputInfo, MshuttleDIPInfo,
- MshuttlejInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 256, 224, 4, 3
-};
-
-// Second Z80 driving DAC
-static struct BurnRomInfo KingballRomDesc[] = {
- { "prg1.7f", 0x01000, 0x6cb49046, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "prg2.7j", 0x01000, 0xc223b416, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "prg3.7l", 0x00800, 0x453634c0, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "kbe1.ic4", 0x00800, 0x5be2c80a, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "kbe2.ic5", 0x00800, 0xbb59e965, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "kbe3.ic6", 0x00800, 0x1c94dd31, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "kbe2.ic7", 0x00800, 0xbb59e965, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
-
- { "chg1.1h", 0x00800, 0x9cd550e7, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "chg2.1k", 0x00800, 0xa206757d, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "kb2-1", 0x00020, 0x15dd5b16, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Kingball)
-STD_ROM_FN(Kingball)
-
-static struct BurnRomInfo KingballjRomDesc[] = {
- { "prg1.7f", 0x01000, 0x6cb49046, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "prg2.7j", 0x01000, 0xc223b416, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "prg3.7l", 0x00800, 0x453634c0, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "kbj1.ic4", 0x00800, 0xba16beb7, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "kbj2.ic5", 0x00800, 0x56686a63, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "kbj3.ic6", 0x00800, 0xfbc570a5, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "kbj2.ic7", 0x00800, 0x56686a63, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
-
- { "chg1.1h", 0x00800, 0x9cd550e7, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "chg2.1k", 0x00800, 0xa206757d, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "kb2-1", 0x00020, 0x15dd5b16, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Kingballj)
-STD_ROM_FN(Kingballj)
-
-UINT8 __fastcall KingballZ80Read(UINT16 a)
-{
- switch (a) {
- case 0xa000: {
- if (KingballSpeechDip) {
- return GalInput[0] | GalDip[0] | ((GalFakeDip & 0x02) ? 0x40 : 0x00);
- } else {
- return GalInput[0] | GalDip[0] | ((GalFakeDip & 0x01) ? 0x40 : 0x00);
- }
- }
-
- case 0xa800: {
- return ((GalInput[1] | GalDip[1]) & ~0x20) | (rand() & 0x20);
- }
-
- case 0xb000: {
- return GalInput[2] | GalDip[2];
- }
-
- case 0xb800: {
- // watchdog read
- return 0xff;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Read => %04X\n"), a);
- }
- }
-
- return 0xff;
-}
-
-void __fastcall KingballZ80Write(UINT16 a, UINT8 d)
-{
- if (a >= 0x9800 && a <= 0x98ff) {
- INT32 Offset = a - 0x9800;
-
- GalSpriteRam[Offset] = d;
-
- if (Offset < 0x40) {
- if ((Offset & 0x01) == 0) {
- GalScrollVals[Offset >> 1] = d;
- }
- }
-
- return;
- }
-
- switch (a) {
- case 0xa000:
- case 0xa001:
- case 0xa002: {
- GalGfxBank[a - 0xa000] = d;
- return;
- }
-
- case 0xa003: {
- // coin_count_0_w
- return;
- }
-
- case 0xa004:
- case 0xa005:
- case 0xa006:
- case 0xa007: {
- GalaxianLfoFreqWrite(a - 0xa004, d);
- return;
- }
-
- case 0xa800:
- case 0xa801:
- case 0xa802:
- case 0xa803:
- case 0xa804:
- case 0xa805:
- case 0xa806:
- case 0xa807: {
- GalaxianSoundWrite(a - 0xa800, d);
- return;
- }
-
- case 0xb000: {
- KingballSound = (KingballSound & ~0x01) | d;
- return;
- }
-
- case 0xb001: {
- GalIrqFire = d & 1;
- return;
- }
-
- case 0xb002: {
- KingballSound = (KingballSound & ~0x02) | (d << 1);
- GalSoundLatch = KingballSound | 0xf0;
- return;
- }
-
- case 0xb003: {
- KingballSpeechDip = d;
- return;
- }
-
- case 0xb004: {
- GalStarsEnable = d & 0x01;
- if (!GalStarsEnable) GalStarsScrollPos = -1;
- return;
- }
-
- case 0xb006: {
- GalFlipScreenX = d & 1;
- return;
- }
-
- case 0xb007: {
- GalFlipScreenY = d & 1;
- return;
- }
-
- case 0xb800: {
- GalPitch = d;
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Write => %04X, %02X\n"), a, d);
- }
- }
-}
-
-UINT8 __fastcall KingballSoundZ80Read(UINT16 a)
-{
- switch (a) {
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #2 Read => %04X\n"), a);
- }
- }
-
- return 0xff;
-}
-
-void __fastcall KingballSoundZ80Write(UINT16 a, UINT8 d)
-{
- switch (a) {
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #2 Write => %04X, %02X\n"), a, d);
- }
- }
-}
-
-UINT8 __fastcall KingballSoundZ80PortRead(UINT16 a)
-{
- a &= 0xff;
-
- switch (a) {
- case 0x00: {
- return GalSoundLatch;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #2 Port Read => %02X\n"), a);
- }
- }
-
- return 0;
-}
-
-void __fastcall KingballSoundZ80PortWrite(UINT16 a, UINT8 d)
-{
- a &= 0xff;
-
- switch (a) {
- case 0x00: {
- DACWrite(0, d ^ 0xff);
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #2 Port Write => %02X, %02X\n"), a, d);
- }
- }
-}
-
-static void KingballPostLoad()
-{
- MapMooncrst();
-
- ZetOpen(0);
- ZetSetReadHandler(KingballZ80Read);
- ZetSetWriteHandler(KingballZ80Write);
- ZetClose();
-
- ZetOpen(1);
- ZetSetReadHandler(KingballSoundZ80Read);
- ZetSetWriteHandler(KingballSoundZ80Write);
- ZetSetInHandler(KingballSoundZ80PortRead);
- ZetSetOutHandler(KingballSoundZ80PortWrite);
- ZetMapArea(0x0000, 0x1fff, 0, GalZ80Rom2);
- ZetMapArea(0x0000, 0x1fff, 2, GalZ80Rom2);
- ZetClose();
-
- nGalCyclesTotal[1] = (5000000 / 2) / 60;
-}
-
-static INT32 KingballInit()
-{
- INT32 nRet;
-
- GalPostLoadCallbackFunction = KingballPostLoad;
- GalSoundType = GAL_SOUND_HARDWARE_TYPE_KINGBALLDAC;
- GalTilesSharedRomSize = 0x1000;
-
- nRet = GalInit();
-
- GalTempRom = (UINT8*)BurnMalloc(GalTilesSharedRomSize);
- BurnLoadRom(GalTempRom + 0x0000, GAL_ROM_OFFSET_TILES_SHARED + 0, 1);
- BurnLoadRom(GalTempRom + 0x1000, GAL_ROM_OFFSET_TILES_SHARED + 1, 1);
- memcpy(GalTempRom + 0x0800, GalTempRom + 0x0000, 0x800);
- memcpy(GalTempRom + 0x1800, GalTempRom + 0x1000, 0x800);
- GfxDecode(GalNumChars, 2, 8, 8, CharPlaneOffsets, CharXOffsets, CharYOffsets, 0x40, GalTempRom, GalChars);
- GfxDecode(GalNumSprites, 2, 16, 16, SpritePlaneOffsets, SpriteXOffsets, SpriteYOffsets, 0x100, GalTempRom, GalSprites);
- BurnFree(GalTempRom);
-
- return nRet;
-}
-
-struct BurnDriver BurnDrvKingball = {
- "kingball", NULL, NULL, NULL, "1980",
- "King & Balloon (US)\0", NULL, "Namco", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, KingballRomInfo, KingballRomName, NULL, NULL, KingballInputInfo, KingballDIPInfo,
- KingballInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvKingballj = {
- "kingballj", "kingball", NULL, NULL, "1980",
- "King & Balloon (Japan)\0", NULL, "Namco", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, KingballjRomInfo, KingballjRomName, NULL, NULL, KingballInputInfo, KingballDIPInfo,
- KingballInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-// Frogger based hardware
-static struct BurnRomInfo FroggerRomDesc[] = {
- { "frogger.26", 0x01000, 0x597696d6, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "frogger.27", 0x01000, 0xb6e6fcc3, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "frsm3.7", 0x01000, 0xaca22ae0, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "frogger.608", 0x00800, 0xe8ab0256, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "frogger.609", 0x00800, 0x7380a48f, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "frogger.610", 0x00800, 0x31d7eb27, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
-
- { "frogger.607", 0x00800, 0x05f7d883, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "frogger.606", 0x00800, 0xf524ee30, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "pr-91.6l", 0x00020, 0x413703bf, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Frogger)
-STD_ROM_FN(Frogger)
-
-static struct BurnRomInfo Froggers1RomDesc[] = {
- { "frogger.26", 0x01000, 0x597696d6, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "frogger.27", 0x01000, 0xb6e6fcc3, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "frogger.34", 0x01000, 0xed866bab, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "epr-608.ic32", 0x00800, 0xe8ab0256, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "epr-609.ic33", 0x00800, 0x7380a48f, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "epr-610.ic34", 0x00800, 0x31d7eb27, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
-
- { "epr-607.ic101", 0x00800, 0x05f7d883, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "epr-606.ic102", 0x00800, 0xf524ee30, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "pr-91.6l", 0x00020, 0x413703bf, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Froggers1)
-STD_ROM_FN(Froggers1)
-
-static struct BurnRomInfo Froggers2RomDesc[] = {
- { "epr-1012.ic5", 0x01000, 0xefab0c79, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "epr-1013a.ic6", 0x01000, 0xaeca9c13, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "epr-1014.ic7", 0x01000, 0xdd251066, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "epr-1015.ic8", 0x01000, 0xbf293a02, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "epr-608.ic32", 0x00800, 0xe8ab0256, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "epr-609.ic33", 0x00800, 0x7380a48f, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "epr-610.ic34", 0x00800, 0x31d7eb27, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
-
- { "epr-607.ic101", 0x00800, 0x05f7d883, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "epr-606.ic102", 0x00800, 0xf524ee30, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "pr-91.6l", 0x00020, 0x413703bf, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Froggers2)
-STD_ROM_FN(Froggers2)
-
-static struct BurnRomInfo Froggers3RomDesc[] = {
- { "29", 0x01000, 0xa58e43a7, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "30", 0x01000, 0x119bbedb, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "31", 0x01000, 0x405595e9, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "epr-608.ic32", 0x00800, 0xe8ab0256, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "epr-609.ic33", 0x00800, 0x7380a48f, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "epr-610.ic34", 0x00800, 0x31d7eb27, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
-
- { "epr-607.ic101", 0x00800, 0x05f7d883, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "epr-606.ic102", 0x00800, 0xf524ee30, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "pr-91.6l", 0x00020, 0x413703bf, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Froggers3)
-STD_ROM_FN(Froggers3)
-
-static struct BurnRomInfo FroggermcRomDesc[] = {
- { "epr-1031.15", 0x01000, 0x4b7c8d11, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "epr-1032.16", 0x01000, 0xac00b9d9, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "epr-1033.33", 0x01000, 0xbc1d6fbc, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "epr-1034.34", 0x01000, 0x9efe7399, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "epr-1082.42", 0x01000, 0x802843c2, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "epr-1035.43", 0x00800, 0x14e74148, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
-
- { "epr-1037.1h", 0x00800, 0x05f7d883, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "epr-1036.1k", 0x00800, 0x658745f8, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "pr-91.6l", 0x00020, 0x413703bf, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Froggermc)
-STD_ROM_FN(Froggermc)
-
-static struct BurnRomInfo FroggersRomDesc[] = {
- { "vid_d2.bin", 0x00800, 0xc103066e, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "vid_e2.bin", 0x00800, 0xf08bc094, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "vid_f2.bin", 0x00800, 0x637a2ff8, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "vid_h2.bin", 0x00800, 0x04c027a5, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "vid_j2.bin", 0x00800, 0xfbdfbe74, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "vid_l2.bin", 0x00800, 0x8a4389e1, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "frogger.608", 0x00800, 0xe8ab0256, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "frogger.609", 0x00800, 0x7380a48f, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "frogger.610", 0x00800, 0x31d7eb27, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
-
- { "frogger.607", 0x00800, 0x05f7d883, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "epr-1036.1k", 0x00800, 0x658745f8, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "pr-91.6l", 0x00020, 0x413703bf, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Froggers)
-STD_ROM_FN(Froggers)
-
-static struct BurnRomInfo FrogfRomDesc[] = {
- { "6.bin", 0x01000, 0x8ff0a973, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "7.bin", 0x01000, 0x3087bb4b, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "8.bin", 0x01000, 0xc3869d12, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "frogger.608", 0x00800, 0xe8ab0256, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "frogger.609", 0x00800, 0x7380a48f, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "frogger.610", 0x00800, 0x31d7eb27, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
-
- { "frogger.607", 0x00800, 0x05f7d883, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "epr-1036.1k", 0x00800, 0x658745f8, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "pr-91.6l", 0x00020, 0x413703bf, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Frogf)
-STD_ROM_FN(Frogf)
-
-static struct BurnRomInfo FroggRomDesc[] = {
- { "p1.bin", 0x00800, 0x1762b266, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "p2.bin", 0x00800, 0x322f3916, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "p3.bin", 0x00800, 0x28bd6151, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "p4.bin", 0x00800, 0x5a69ab18, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "p5.bin", 0x00800, 0xb4f17745, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "p6.bin", 0x00800, 0x34be71b5, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "p7.bin", 0x00800, 0xde3edc8c, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "k.bin", 0x00800, 0x05f7d883, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "h.bin", 0x00800, 0x658745f8, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "pr-91.6l", 0x00020, 0x413703bf, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Frogg)
-STD_ROM_FN(Frogg)
-
-static struct BurnRomInfo FroggrsRomDesc[] = {
- { "frog4.bin", 0x01000, 0x4d563992, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "frog5.bin", 0x01000, 0xd8b8c06e, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "frog6.bin", 0x01000, 0xb55a1cb5, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "frogger.608", 0x00800, 0xe8ab0256, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "frogger.609", 0x00800, 0x7380a48f, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "frog3.bin", 0x00800, 0x837c16ab, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
-
- { "frogger.607", 0x00800, 0x05f7d883, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "frogger.606", 0x00800, 0xf524ee30, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "pr-91.6l", 0x00020, 0x413703bf, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Froggrs)
-STD_ROM_FN(Froggrs)
-
-void __fastcall FroggermcZ80Write(UINT16 a, UINT8 d)
-{
- if (a >= 0x9800 && a <= 0x98ff) {
- INT32 Offset = a - 0x9800;
-
- GalSpriteRam[Offset] = d;
-
- if (Offset < 0x40) {
- if ((Offset & 0x01) == 0) {
- GalScrollVals[Offset >> 1] = d;
- }
- }
-
- return;
- }
-
- switch (a) {
- case 0xa000:
- case 0xa001:
- case 0xa002: {
- GalGfxBank[a - 0xa000] = d;
- return;
- }
-
- case 0xa003: {
- // coin_count_0_w
- return;
- }
-
- case 0xa800: {
- GalSoundLatch = d;
- return;
- }
-
- case 0xb000: {
- GalIrqFire = d & 1;
- return;
- }
-
- case 0xb001: {
- if (!(d & 1)) {
- ZetClose();
- ZetOpen(1);
- ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
- ZetClose();
- ZetOpen(0);
- }
- return;
- }
-
- case 0xb004: {
- GalStarsEnable = d & 0x01;
- if (!GalStarsEnable) GalStarsScrollPos = -1;
- return;
- }
-
- case 0xb006: {
- GalFlipScreenX = d & 1;
- return;
- }
-
- case 0xb007: {
- GalFlipScreenY = d & 1;
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Write => %04X, %02X\n"), a, d);
- }
- }
-}
-
-UINT8 __fastcall FrogfZ80Read(UINT16 a)
-{
- if (a >= 0xc000) {
- UINT32 Offset = a - 0xc000;
- UINT8 Result = 0xff;
- if (Offset & 0x1000) Result &= ppi8255_r(0, (Offset >> 3) & 3);
- if (Offset & 0x2000) Result &= ppi8255_r(1, (Offset >> 3) & 3);
- return Result;
- }
-
- switch (a) {
- case 0xb800: {
- // watchdog read
- return 0xff;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Read => %04X\n"), a);
- }
- }
-
- return 0xff;
-}
-
-void __fastcall FrogfZ80Write(UINT16 a, UINT8 d)
-{
- if (a >= 0x9000 && a <= 0x90ff) {
- INT32 Offset = a - 0x9000;
-
- GalSpriteRam[Offset] = d;
-
- if (Offset < 0x40) {
- if ((Offset & 0x01) == 0) {
- GalScrollVals[Offset >> 1] = d;
- }
- }
-
- return;
- }
-
- if (a >= 0xc000) {
- INT32 Offset = a - 0xc000;
- if (Offset & 0x1000) ppi8255_w(0, (Offset >> 3) & 3, d);
- if (Offset & 0x2000) ppi8255_w(1, (Offset >> 3) & 3, d);
- return;
- }
-
- switch (a) {
- case 0xa802: {
- GalFlipScreenX = d & 1;
- return;
- }
-
- case 0xa804: {
- GalIrqFire = d & 1;
- return;
- }
-
- case 0xa806: {
- GalFlipScreenY = d & 1;
- return;
- }
-
- case 0xa809: {
- // coin_count_1_w
- return;
- }
-
- case 0xa80e: {
- // coin_count_0_w
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Write => %04X, %02X\n"), a, d);
- }
- }
-}
-
-static void FroggerEncGfxPostLoad()
-{
- GalTempRom = (UINT8*)BurnMalloc(GalTilesSharedRomSize);
- BurnLoadRom(GalTempRom + 0x0000, GAL_ROM_OFFSET_TILES_SHARED + 0, 1);
- BurnLoadRom(GalTempRom + 0x0800, GAL_ROM_OFFSET_TILES_SHARED + 1, 1);
- for (UINT32 Offset = 0x0800; Offset < 0x1000; Offset++) GalTempRom[Offset] = BITSWAP08(GalTempRom[Offset], 7, 6, 5, 4, 3, 2, 0, 1);
- GfxDecode(GalNumChars, 2, 8, 8, CharPlaneOffsets, CharXOffsets, CharYOffsets, 0x40, GalTempRom, GalChars);
- GfxDecode(GalNumSprites, 2, 16, 16, SpritePlaneOffsets, SpriteXOffsets, SpriteYOffsets, 0x100, GalTempRom, GalSprites);
- BurnFree(GalTempRom);
-
- MapFrogger();
-}
-
-static INT32 FroggerEncGfxInit()
-{
- INT32 nRet;
-
- GalPostLoadCallbackFunction = FroggerEncGfxPostLoad;
- GalSoundType = GAL_SOUND_HARDWARE_TYPE_FROGGERAY8910;
-
- nRet = GalInit(); if (nRet) return 1;
- FroggerSoundInit();
-
- FroggerAdjust = 1;
-
- GalRenderBackgroundFunction = FroggerDrawBackground;
- GalDrawBulletsFunction = NULL;
- GalExtendTileInfoFunction = FroggerExtendTileInfo;
- GalExtendSpriteInfoFunction = FroggerExtendSpriteInfo;
-
- KonamiPPIInit();
-
- return nRet;
-}
-
-static void FroggermcPostLoad()
-{
- MapMooncrst();
-
- ZetOpen(0);
- ZetSetWriteHandler(FroggermcZ80Write);
- ZetMapArea(0x8000, 0x87ff, 0, GalZ80Ram1);
- ZetMapArea(0x8000, 0x87ff, 1, GalZ80Ram1);
- ZetMapArea(0x8000, 0x87ff, 2, GalZ80Ram1);
- ZetClose();
-}
-
-static INT32 FroggermcInit()
-{
- INT32 nRet;
-
- GalPostLoadCallbackFunction = FroggermcPostLoad;
- GalSoundType = GAL_SOUND_HARDWARE_TYPE_FROGGERAY8910;
-
- nRet = GalInit(); if (nRet) return 1;
- FroggerSoundInit();
-
- GalRenderBackgroundFunction = FroggerDrawBackground;
- GalDrawBulletsFunction = NULL;
- GalExtendTileInfoFunction = FroggerExtendTileInfo;
- GalExtendSpriteInfoFunction = FroggerExtendSpriteInfo;
-
- return nRet;
-}
-
-static INT32 FroggersInit()
-{
- INT32 nRet;
-
- GalPostLoadCallbackFunction = MapTheend;
- GalSoundType = GAL_SOUND_HARDWARE_TYPE_FROGGERAY8910;
-
- nRet = GalInit(); if (nRet) return 1;
- FroggerSoundInit();
-
- KonamiPPIInit();
-
- GalRenderBackgroundFunction = FroggerDrawBackground;
- GalDrawBulletsFunction = NULL;
- GalExtendTileInfoFunction = FroggerExtendTileInfo;
- GalExtendSpriteInfoFunction = FroggerExtendSpriteInfo;
-
- return nRet;
-}
-
-static void FrogfPostLoad()
-{
- MapFrogger();
-
- ZetOpen(0);
- ZetSetReadHandler(FrogfZ80Read);
- ZetSetWriteHandler(FrogfZ80Write);
- ZetMemCallback(0x8800, 0xffff, 0);
- ZetMemCallback(0x8800, 0xffff, 1);
- ZetMemCallback(0x8800, 0xffff, 2);
- ZetMapArea(0x8800, 0x8bff, 0, GalVideoRam);
- ZetMapArea(0x8800, 0x8bff, 1, GalVideoRam);
- ZetMapArea(0x8800, 0x8bff, 2, GalVideoRam);
- ZetMapArea(0x9000, 0x90ff, 0, GalSpriteRam);
- ZetMapArea(0x9000, 0x90ff, 2, GalSpriteRam);
- ZetClose();
-}
-
-static INT32 FrogfInit()
-{
- INT32 nRet;
-
- GalPostLoadCallbackFunction = FrogfPostLoad;
- GalSoundType = GAL_SOUND_HARDWARE_TYPE_FROGGERAY8910;
-
- nRet = GalInit(); if (nRet) return 1;
- FroggerSoundInit();
-
- KonamiPPIInit();
-
- GalRenderBackgroundFunction = FroggerDrawBackground;
- GalDrawBulletsFunction = NULL;
- GalExtendTileInfoFunction = FroggerExtendTileInfo;
- GalExtendSpriteInfoFunction = FroggerExtendSpriteInfo;
-
- return nRet;
-}
-
-static void FroggPostLoad()
-{
- ZetOpen(0);
- ZetMapArea(0x4000, 0x47ff, 0, GalZ80Ram1);
- ZetMapArea(0x4000, 0x47ff, 1, GalZ80Ram1);
- ZetMapArea(0x4000, 0x47ff, 2, GalZ80Ram1);
- ZetClose();
-}
-
-static INT32 FroggInit()
-{
- INT32 nRet;
-
- GalPostLoadCallbackFunction = FroggPostLoad;
-
- nRet = GalInit();
-
- GalRenderBackgroundFunction = FroggerDrawBackground;
- GalExtendTileInfoFunction = FroggerExtendTileInfo;
- GalExtendSpriteInfoFunction = FroggerExtendSpriteInfo;
-
- return nRet;
-}
-
-static void FroggrsPostLoad()
-{
- GalTempRom = (UINT8*)BurnMalloc(GalTilesSharedRomSize);
- BurnLoadRom(GalTempRom + 0x0000, GAL_ROM_OFFSET_TILES_SHARED + 0, 1);
- BurnLoadRom(GalTempRom + 0x0800, GAL_ROM_OFFSET_TILES_SHARED + 1, 1);
- for (UINT32 Offset = 0x0800; Offset < 0x1000; Offset++) GalTempRom[Offset] = BITSWAP08(GalTempRom[Offset], 7, 6, 5, 4, 3, 2, 0, 1);
- GfxDecode(GalNumChars, 2, 8, 8, CharPlaneOffsets, CharXOffsets, CharYOffsets, 0x40, GalTempRom, GalChars);
- GfxDecode(GalNumSprites, 2, 16, 16, SpritePlaneOffsets, SpriteXOffsets, SpriteYOffsets, 0x100, GalTempRom, GalSprites);
- BurnFree(GalTempRom);
-
- MapTheend();
-}
-
-static INT32 FroggrsInit()
-{
- INT32 nRet;
-
- GalPostLoadCallbackFunction = FroggrsPostLoad;
- GalSoundType = GAL_SOUND_HARDWARE_TYPE_FROGGERAY8910;
-
- nRet = GalInit(); if (nRet) return 1;
- FroggerSoundInit();
-
- KonamiPPIInit();
-
- GalRenderBackgroundFunction = FroggerDrawBackground;
- GalDrawBulletsFunction = NULL;
- GalExtendTileInfoFunction = FroggerExtendTileInfo;
- GalExtendSpriteInfoFunction = FroggerExtendSpriteInfo;
-
- return nRet;
-}
-
-struct BurnDriver BurnDrvFrogger = {
- "frogger", NULL, NULL, NULL, "1981",
- "Frogger\0", NULL, "Konami", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_MISC, 0,
- NULL, FroggerRomInfo, FroggerRomName, NULL, NULL, FroggerInputInfo, FroggerDIPInfo,
- FroggerEncGfxInit, KonamiExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvFroggers1 = {
- "froggers1", "frogger", NULL, NULL, "1981",
- "Frogger (Sega set 1)\0", NULL, "Konami (Sega license)", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_MISC, 0,
- NULL, Froggers1RomInfo, Froggers1RomName, NULL, NULL, FroggerInputInfo, FroggerDIPInfo,
- FroggerEncGfxInit, KonamiExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvFroggers2 = {
- "froggers2", "frogger", NULL, NULL, "1981",
- "Frogger (Sega set 2)\0", NULL, "Konami (Sega license)", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_MISC, 0,
- NULL, Froggers2RomInfo, Froggers2RomName, NULL, NULL, FroggerInputInfo, FroggerDIPInfo,
- FroggerEncGfxInit, KonamiExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvFroggers3 = {
- "froggers3", "frogger", NULL, NULL, "1981",
- "Frogger (Sega set 3)\0", NULL, "Konami (Sega license)", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_MISC, 0,
- NULL, Froggers3RomInfo, Froggers3RomName, NULL, NULL, FroggerInputInfo, FroggerDIPInfo,
- FroggerEncGfxInit, KonamiExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvFroggermc = {
- "froggermc", "frogger", NULL, NULL, "1981",
- "Frogger (Moon Cresta hardware)\0", "No Sound", "Konami (Sega license)", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_MISC, 0,
- NULL, FroggermcRomInfo, FroggermcRomName, NULL, NULL, FroggermcInputInfo, FroggermcDIPInfo,
- FroggermcInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvFroggers = {
- "froggers", "frogger", NULL, NULL, "1981",
- "Frog\0", NULL, "bootleg", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_BOOTLEG | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_MISC, 0,
- NULL, FroggersRomInfo, FroggersRomName, NULL, NULL, FroggerInputInfo, FroggerDIPInfo,
- FroggersInit, KonamiExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvFrogf = {
- "frogf", "frogger", NULL, NULL, "1981",
- "Frog (Falcon bootleg)\0", NULL, "bootleg", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_BOOTLEG | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_MISC, 0,
- NULL, FrogfRomInfo, FrogfRomName, NULL, NULL, FroggerInputInfo, FroggerDIPInfo,
- FrogfInit, KonamiExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvFrogg = {
- "frogg", "frogger", NULL, NULL, "1981",
- "Frog (Galaxian hardware)\0", NULL, "bootleg", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_BOOTLEG, 2, HARDWARE_GALAXIAN, GBF_MISC, 0,
- NULL, FroggRomInfo, FroggRomName, NULL, NULL, FroggInputInfo, FroggDIPInfo,
- FroggInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvFroggrs = {
- "froggrs", "frogger", NULL, NULL, "1981",
- "Frogger (Scramble hardware)\0", NULL, "Coin Music", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_MISC, 0,
- NULL, FroggrsRomInfo, FroggrsRomName, NULL, NULL, FroggerInputInfo, FroggerDIPInfo,
- FroggrsInit, KonamiExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-// Turtles based hardware
-static struct BurnRomInfo TurtlesRomDesc[] = {
- { "turt_vid.2c", 0x01000, 0xec5e61fb, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "turt_vid.2e", 0x01000, 0xfd10821e, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "turt_vid.2f", 0x01000, 0xddcfc5fa, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "turt_vid.2h", 0x01000, 0x9e71696c, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "turt_vid.2j", 0x01000, 0xfcd49fef, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "turt_snd.5c", 0x01000, 0xf0c30f9a, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "turt_snd.5d", 0x01000, 0xaf5fc43c, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
-
- { "turt_vid.5h", 0x00800, 0xe5999d52, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "turt_vid.5f", 0x00800, 0xc3ffd655, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "turtles.clr", 0x00020, 0xf3ef02dd, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Turtles)
-STD_ROM_FN(Turtles)
-
-static struct BurnRomInfo TurpinRomDesc[] = {
- { "m1", 0x01000, 0x89177473, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "m2", 0x01000, 0x4c6ca5c6, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "m3", 0x01000, 0x62291652, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "turt_vid.2h", 0x01000, 0x9e71696c, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "m5", 0x01000, 0x7d2600f2, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "turt_snd.5c", 0x01000, 0xf0c30f9a, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "turt_snd.5d", 0x01000, 0xaf5fc43c, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
-
- { "turt_vid.5h", 0x00800, 0xe5999d52, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "turt_vid.5f", 0x00800, 0xc3ffd655, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "turtles.clr", 0x00020, 0xf3ef02dd, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Turpin)
-STD_ROM_FN(Turpin)
-
-static struct BurnRomInfo SixhundredRomDesc[] = {
- { "600_vid.2c", 0x01000, 0x8ee090ae, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "600_vid.2e", 0x01000, 0x45bfaff2, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "600_vid.2f", 0x01000, 0x9f4c8ed7, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "600_vid.2h", 0x01000, 0xa92ef056, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "600_vid.2j", 0x01000, 0x6dadd72d, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "600_snd.5c", 0x01000, 0x1773c68e, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "600_snd.5d", 0x01000, 0xa311b998, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
-
- { "600_vid.5h", 0x00800, 0x006c3d56, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "600_vid.5f", 0x00800, 0x7dbc0426, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "turtles.clr", 0x00020, 0xf3ef02dd, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Sixhundred)
-STD_ROM_FN(Sixhundred)
-
-static struct BurnRomInfo TurpinsRomDesc[] = {
- { "t1.bin", 0x01000, 0x89dd50cc, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "t3.bin", 0x01000, 0x9562dc29, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "t4.bin", 0x01000, 0x62291652, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "t5.bin", 0x01000, 0x804118e8, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "t2.bin", 0x01000, 0x8024f678, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "8tur.bin", 0x01000, 0xc97ed8ab, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "5tur.bin", 0x01000, 0xaf5fc43c, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
-
- { "tur.4f", 0x00800, 0xe5999d52, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "tur.5f", 0x00800, 0xc3ffd655, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "turtles.clr", 0x00020, 0xf3ef02dd, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Turpins)
-STD_ROM_FN(Turpins)
-
-static struct BurnRomInfo AmidarRomDesc[] = {
- { "1.2c", 0x01000, 0x621b74de, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2.2e", 0x01000, 0x38538b98, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "3.2f", 0x01000, 0x099ecb24, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "4.2h", 0x01000, 0xba149a93, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "5.2j", 0x01000, 0xeecc1abf, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "s1.5c", 0x01000, 0x8ca7b750, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "s2.5d", 0x01000, 0x9b5bdc0a, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
-
- { "c2.5f", 0x00800, 0x2cfe5ede, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "c2.5d", 0x00800, 0x57c4fd0d, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "amidar.clr", 0x00020, 0xf940dcc3, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Amidar)
-STD_ROM_FN(Amidar)
-
-static struct BurnRomInfo Amidar1RomDesc[] = {
- { "amidar.2c", 0x01000, 0xc294bf27, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "amidar.2e", 0x01000, 0xe6e96826, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "amidar.2f", 0x01000, 0x3656be6f, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "amidar.2h", 0x01000, 0x1be170bd, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "amidar.5c", 0x01000, 0xc4b66ae4, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "amidar.5d", 0x01000, 0x806785af, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
-
- { "amidar.5f", 0x00800, 0x5e51e84d, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "amidar.5h", 0x00800, 0x2f7f1c30, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "amidar.clr", 0x00020, 0xf940dcc3, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Amidar1)
-STD_ROM_FN(Amidar1)
-
-static struct BurnRomInfo AmidaruRomDesc[] = {
- { "amidarus.2c", 0x01000, 0x951e0792, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "amidarus.2e", 0x01000, 0xa1a3a136, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "amidarus.2f", 0x01000, 0xa5121bf5, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "amidarus.2h", 0x01000, 0x051d1c7f, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "amidarus.2j", 0x01000, 0x351f00d5, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "amidarus.5c", 0x01000, 0x8ca7b750, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "amidarus.5d", 0x01000, 0x9b5bdc0a, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
-
- { "amidarus.5f", 0x00800, 0x2cfe5ede, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "amidarus.5h", 0x00800, 0x57c4fd0d, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "amidar.clr", 0x00020, 0xf940dcc3, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Amidaru)
-STD_ROM_FN(Amidaru)
-
-static struct BurnRomInfo AmidaroRomDesc[] = {
- { "107.2cd", 0x01000, 0xc52536be, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "108.2fg", 0x01000, 0x38538b98, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "109.2fg", 0x01000, 0x69907f0f, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "110.2h", 0x01000, 0xba149a93, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "111.2j", 0x01000, 0x20d01c2e, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "amidarus.5c", 0x01000, 0x8ca7b750, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "amidarus.5d", 0x01000, 0x9b5bdc0a, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
-
- { "amidarus.5f", 0x00800, 0x2cfe5ede, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "113.5h", 0x00800, 0xbcdce168, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "amidar.clr", 0x00020, 0xf940dcc3, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Amidaro)
-STD_ROM_FN(Amidaro)
-
-static struct BurnRomInfo AmidarbRomDesc[] = {
- { "ami2gor.2c", 0x01000, 0x9ad2dcd2, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2.2f", 0x01000, 0x66282ff5, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "3.2j", 0x01000, 0xb0860e31, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "4.2m", 0x01000, 0x4a4086c9, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "8.11d", 0x01000, 0x8ca7b750, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "9.9d", 0x01000, 0x9b5bdc0a, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
-
- { "5.5f", 0x00800, 0x2082ad0a, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "6.5h", 0x00800, 0x3029f94f, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "n82s123n.6e", 0x00020, 0x01004d3f, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Amidarb)
-STD_ROM_FN(Amidarb)
-
-static struct BurnRomInfo AmigoRomDesc[] = {
- { "2732.a1", 0x01000, 0x930dc856, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2732.a2", 0x01000, 0x66282ff5, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2732.a3", 0x01000, 0xe9d3dc76, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2732.a4", 0x01000, 0x4a4086c9, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "amidarus.5c", 0x01000, 0x8ca7b750, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "amidarus.5d", 0x01000, 0x9b5bdc0a, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
-
- { "2716.a6", 0x00800, 0x2082ad0a, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "2716.a5", 0x00800, 0x3029f94f, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "amidar.clr", 0x00020, 0xf940dcc3, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Amigo)
-STD_ROM_FN(Amigo)
-
-static struct BurnRomInfo AmidarsRomDesc[] = {
- { "am2d", 0x00800, 0x24b79547, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "am2e", 0x00800, 0x4c64161e, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "am2f", 0x00800, 0xb3987a72, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "am2h", 0x00800, 0x29873461, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "am2j", 0x00800, 0x0fdd54d8, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "am2l", 0x00800, 0x5382f7ed, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "am2m", 0x00800, 0x1d7109e9, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "am2p", 0x00800, 0xc9163ac6, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "amidarus.5c", 0x01000, 0x8ca7b750, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "amidarus.5d", 0x01000, 0x9b5bdc0a, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
-
- { "2716.a6", 0x00800, 0x2082ad0a, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "2716.a5", 0x00800, 0x3029f94f, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "amidar.clr", 0x00020, 0xf940dcc3, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Amidars)
-STD_ROM_FN(Amidars)
-
-UINT8 __fastcall TurpinsZ80Read(UINT16 a)
-{
- switch (a) {
- case 0xa000: {
- return 0xff - GalInput[0] - GalDip[0];
- }
-
- case 0xa001: {
- return 0xff - GalInput[1] - GalDip[1];
- }
-
- case 0xa002: {
- return 0xff - GalInput[2] - GalDip[2];
- }
-
- case 0xb800: {
- // watchdog read
- return 0xff;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Read => %04X\n"), a);
- }
- }
-
- return 0xff;
-}
-
-void __fastcall TurpinsZ80Write(UINT16 a, UINT8 d)
-{
- if (a >= 0x9800 && a <= 0x98ff) {
- INT32 Offset = a - 0x9800;
-
- GalSpriteRam[Offset] = d;
-
- if (Offset < 0x40) {
- if ((Offset & 0x01) == 0) {
- GalScrollVals[Offset >> 1] = d;
- }
- }
-
- return;
- }
-
- switch (a) {
- case 0xa000: {
- GalBackgroundRed = d & 1;
- return;
- }
-
- case 0xa020: {
- GalBackgroundGreen = d & 1;
- return;
- }
-
- case 0xa028: {
- GalBackgroundBlue = d & 1;
- return;
- }
-
-
- case 0xa030: {
- // coin_count_0_w
- return;
- }
-
- case 0xa038: {
- // coin_count_1_w
- return;
- }
-
-
- case 0xa801: {
- GalIrqFire = d & 1;
- return;
- }
-
- case 0xa806: {
- GalFlipScreenX = d & 1;
- return;
- }
-
- case 0xa807: {
- GalFlipScreenY = d & 1;
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Write => %04X, %02X\n"), a, d);
- }
- }
-}
-
-static INT32 TurtlesInit()
-{
- INT32 nRet;
-
- GalPostLoadCallbackFunction = MapTurtles;
- GalSoundType = GAL_SOUND_HARDWARE_TYPE_KONAMIAY8910;
-
- nRet = GalInit();
- KonamiSoundInit();
-
- GalRenderBackgroundFunction = TurtlesDrawBackground;
- GalDrawBulletsFunction = NULL;
-
- KonamiPPIInit();
-
- return nRet;
-}
-
-static void TurpinsPostLoad()
-{
- MapTurtles();
-
- ZetOpen(0);
- ZetSetReadHandler(TurpinsZ80Read);
- ZetSetWriteHandler(TurpinsZ80Write);
- ZetClose();
-}
-
-static INT32 TurpinsInit()
-{
- INT32 nRet;
-
- GalPostLoadCallbackFunction = TurpinsPostLoad;
- GalSoundType = GAL_SOUND_HARDWARE_TYPE_KONAMIAY8910;
-
- nRet = GalInit();
- KonamiSoundInit();
-
- GalRenderBackgroundFunction = TurtlesDrawBackground;
- GalDrawBulletsFunction = NULL;
-
- return nRet;
-}
-
-struct BurnDriver BurnDrvTurtles = {
- "turtles", NULL, NULL, NULL, "1981",
- "Turtles\0", NULL, "Konami (Stern license)", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_MAZE, 0,
- NULL, TurtlesRomInfo, TurtlesRomName, NULL, NULL, TurtlesInputInfo, TurtlesDIPInfo,
- TurtlesInit, KonamiExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvTurpin = {
- "turpin", "turtles", NULL, NULL, "1981",
- "Turpin\0", NULL, "Konami (Sega license)", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_MAZE, 0,
- NULL, TurpinRomInfo, TurpinRomName, NULL, NULL, TurtlesInputInfo, TurpinDIPInfo,
- TurtlesInit, KonamiExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvSixhundred = {
- "600", "turtles", NULL, NULL, "1981",
- "600\0", NULL, "Konami", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_MAZE, 0,
- NULL, SixhundredRomInfo, SixhundredRomName, NULL, NULL, TurtlesInputInfo, TurtlesDIPInfo,
- TurtlesInit, KonamiExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvTurpins = {
- "turpins", "turtles", NULL, NULL, "1981",
- "Turpin (bootleg on Scramble hardware)\0", "No Sound", "bootleg", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_BOOTLEG | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_MAZE, 0,
- NULL, TurpinsRomInfo, TurpinsRomName, NULL, NULL, TurtlesInputInfo, TurtlesDIPInfo,
- TurpinsInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvAmidar = {
- "amidar", NULL, NULL, NULL, "1981",
- "Amidar\0", NULL, "Konami", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_MAZE, 0,
- NULL, AmidarRomInfo, AmidarRomName, NULL, NULL, AmidarInputInfo, AmidaruDIPInfo,
- TurtlesInit, KonamiExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvAmidar1 = {
- "amidar1", "amidar", NULL, NULL, "1981",
- "Amidar (older)\0", NULL, "Konami", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_MAZE, 0,
- NULL, Amidar1RomInfo, Amidar1RomName, NULL, NULL, AmidarInputInfo, AmidarDIPInfo,
- TurtlesInit, KonamiExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvAmidaru = {
- "amidaru", "amidar", NULL, NULL, "1982",
- "Amidar (Stern)\0", NULL, "Konami (Stern license)", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_MAZE, 0,
- NULL, AmidaruRomInfo, AmidaruRomName, NULL, NULL, AmidarInputInfo, AmidaruDIPInfo,
- TurtlesInit, KonamiExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvAmidaro = {
- "amidaro", "amidar", NULL, NULL, "1982",
- "Amidar (Olympia)\0", NULL, "Konami (Olympia license)", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_MAZE, 0,
- NULL, AmidaroRomInfo, AmidaroRomName, NULL, NULL, AmidarInputInfo, AmidaroDIPInfo,
- TurtlesInit, KonamiExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvAmidarb = {
- "amidarb", "amidar", NULL, NULL, "1982",
- "Amidar (bootleg)\0", NULL, "bootleg", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_BOOTLEG | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_MAZE, 0,
- NULL, AmidarbRomInfo, AmidarbRomName, NULL, NULL, AmidarInputInfo, AmidaruDIPInfo,
- TurtlesInit, KonamiExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvAmigo = {
- "amigo", "amidar", NULL, NULL, "1982",
- "Amigo\0", NULL, "bootleg", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_BOOTLEG | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_MAZE, 0,
- NULL, AmigoRomInfo, AmigoRomName, NULL, NULL, AmidarInputInfo, AmidaruDIPInfo,
- TurtlesInit, KonamiExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvAmidars = {
- "amidars", "amidar", NULL, NULL, "1982",
- "Amidar (Scramble hardware)\0", NULL, "Konami", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED, 2, HARDWARE_GALAXIAN, GBF_MAZE, 0,
- NULL, AmidarsRomInfo, AmidarsRomName, NULL, NULL, AmidarInputInfo, AmidarsDIPInfo,
- ScrambleInit, KonamiExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-// The End / Scramble based hardware
-static struct BurnRomInfo TheendRomDesc[] = {
- { "ic13_1t.bin", 0x00800, 0x93e555ba, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "ic14_2t.bin", 0x00800, 0x2de7ad27, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "ic15_3t.bin", 0x00800, 0x035f750b, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "ic16_4t.bin", 0x00800, 0x61286b5c, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "ic17_5t.bin", 0x00800, 0x434a8f68, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "ic18_6t.bin", 0x00800, 0xdc4cc786, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "ic56_1.bin", 0x00800, 0x7a141f29, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "ic55_2.bin", 0x00800, 0x218497c1, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
-
- { "ic30_2c.bin", 0x00800, 0x68ccf7bf, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "ic31_1c.bin", 0x00800, 0x4a48c999, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "6331-1j.86", 0x00020, 0x24652bc4, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Theend)
-STD_ROM_FN(Theend)
-
-static struct BurnRomInfo TheendsRomDesc[] = {
- { "the_end_ra3_13.ic13", 0x00800, 0x90e5ab14, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "the_end_ra3_14.ic14", 0x00800, 0x950f0a07, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "the_end_ra3_15.ic15", 0x00800, 0x6786bcf5, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "the_end_ra3_16.ic16", 0x00800, 0x380a0017, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "the_end_ra3_17.ic17", 0x00800, 0xaf067b7f, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "the_end_ra3_18.ic18", 0x00800, 0xa0411b93, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "the_end_ra3_56.ic56", 0x00800, 0x3b2c2f70, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "the_end_ra2_55.ic55", 0x00800, 0xe0429e50, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
-
- { "the_end_ra3_30.ic30", 0x00800, 0x527fd384, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "the_end_ra3_31.ic31", 0x00800, 0xaf6d09b6, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "6331-1j.86", 0x00020, 0x24652bc4, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Theends)
-STD_ROM_FN(Theends)
-
-static struct BurnRomInfo ScrambleRomDesc[] = {
- { "s1.2d", 0x00800, 0xea35ccaa, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "s2.2e", 0x00800, 0xe7bba1b3, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "s3.2f", 0x00800, 0x12d7fc3e, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "s4.2h", 0x00800, 0xb59360eb, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "s5.2j", 0x00800, 0x4919a91c, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "s6.2l", 0x00800, 0x26a4547b, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "s7.2m", 0x00800, 0x0bb49470, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "s8.2p", 0x00800, 0x6a5740e5, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "ot1.5c", 0x00800, 0xbcd297f0, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "ot2.5d", 0x00800, 0xde7912da, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "ot3.5e", 0x00800, 0xba2fa933, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
-
- { "c2.5f", 0x00800, 0x4708845b, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "c1.5h", 0x00800, 0x11fd2887, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "c01s.6e", 0x00020, 0x4e3caeab, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Scramble)
-STD_ROM_FN(Scramble)
-
-static struct BurnRomInfo ScramblesRomDesc[] = {
- { "2d", 0x00800, 0xb89207a1, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2e", 0x00800, 0xe9b4b9eb, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2f", 0x00800, 0xa1f14f4c, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2h", 0x00800, 0x591bc0d9, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2j", 0x00800, 0x22f11b6b, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2l", 0x00800, 0x705ffe49, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2m", 0x00800, 0xea26c35c, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2p", 0x00800, 0x94d8f5e3, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "ot1.5c", 0x00800, 0xbcd297f0, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "ot2.5d", 0x00800, 0xde7912da, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "ot3.5e", 0x00800, 0xba2fa933, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
-
- { "5f", 0x00800, 0x5f30311a, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "5h", 0x00800, 0x516e029e, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "c01s.6e", 0x00020, 0x4e3caeab, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Scrambles)
-STD_ROM_FN(Scrambles)
-
-static struct BurnRomInfo ScramblebfRomDesc[] = {
- { "scf1.2d", 0x00800, 0xb126aa1f, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "scf2.2e", 0x00800, 0xce25fb77, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "scns3.2f", 0x00800, 0xeec265ee, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "scns4.2h", 0x00800, 0xdd380a22, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "scns5.2j", 0x00800, 0x92980e72, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "scns6.2l", 0x00800, 0x9fd96374, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "scns7.2m", 0x00800, 0x88ac07a0, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "scns8.2p", 0x00800, 0x75232e09, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "ot1ns.5c", 0x00800, 0xbe037cf6, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "ot2.5d", 0x00800, 0xde7912da, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "ot3.5e", 0x00800, 0xba2fa933, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
-
- { "c2.5f", 0x00800, 0x4708845b, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "c1.5h", 0x00800, 0x11fd2887, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "c01s.6e", 0x00020, 0x4e3caeab, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Scramblebf)
-STD_ROM_FN(Scramblebf)
-
-static struct BurnRomInfo ScrambpRomDesc[] = {
- { "b1-2716.cpu", 0x00800, 0x63420017, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "b2-2716.cpu", 0x00800, 0x66ebc070, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "b3-2716.cpu", 0x00800, 0x317548fd, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "b4-2716.cpu", 0x00800, 0xdd380a22, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "b5-2716.cpu", 0x00800, 0xfa4f1a70, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "b6-2716.cpu", 0x00800, 0x9fd96374, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "b7-2716.cpu", 0x00800, 0x88ac07a0, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "b8-2716.cpu", 0x00800, 0xd20088ee, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "b11-2716.cpu", 0x00800, 0xbe037cf6, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "b12-2716.cpu", 0x00800, 0xde7912da, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "b13-2716.cpu", 0x00800, 0xba2fa933, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
-
- { "b9-2716.cpu", 0x00800, 0x4708845b, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "b10-2716.cpu", 0x00800, 0x11fd2887, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "c01s.6e", 0x00020, 0x4e3caeab, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Scrambp)
-STD_ROM_FN(Scrambp)
-
-static struct BurnRomInfo ScramceRomDesc[] = {
- { "es1.2c", 0x00800, 0x726fb19e, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "es2.2e", 0x00800, 0x66ebc070, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "es3.2f", 0x00800, 0x317548fd, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "es4.2h", 0x00800, 0xdd380a22, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "es5.2j", 0x00800, 0xfa4f1a70, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "es6.2l", 0x00800, 0x9fd96374, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "es7.2m", 0x00800, 0x88ac07a0, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "es8.2p", 0x00800, 0xd20088ee, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "11.5c", 0x00800, 0xbe037cf6, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "12.5d", 0x00800, 0xde7912da, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "13.5e", 0x00800, 0xba2fa933, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
-
- { "9.5f", 0x00800, 0x4708845b, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "10.5h", 0x00800, 0x11fd2887, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "prom7051.6e", 0x00020, 0x4e3caeab, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Scramce)
-STD_ROM_FN(Scramce)
-
-static struct BurnRomInfo ScramptRomDesc[] = {
- { "cx8-2716.cpu", 0x00800, 0x12b97cc6, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "cx4-2716.cpu", 0x00800, 0x66ebc070, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "cx9-2716.cpu", 0x00800, 0x317548fd, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "cx5-2716.cpu", 0x00800, 0xdd380a22, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "cx10-2716.cpu", 0x00800, 0xfa4f1a70, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "cx6-2716.cpu", 0x00800, 0x9fd96374, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "cx11-2716.cpu", 0x00800, 0x88ac07a0, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "cx7-2716.cpu", 0x00800, 0xc9a6c489, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "cx3-2716.cpu", 0x00800, 0xbe037cf6, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "cx2-2716.cpu", 0x00800, 0xde7912da, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "cx1-2716.cpu", 0x00800, 0xba2fa933, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
-
- { "cx12-2716.cpu", 0x00800, 0x4708845b, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "cx13-2716.cpu", 0x00800, 0x11fd2887, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "c01s.6e", 0x00020, 0x4e3caeab, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Scrampt)
-STD_ROM_FN(Scrampt)
-
-static struct BurnRomInfo ScramrfRomDesc[] = {
- { "2c.cpu", 0x01000, 0x85fa7de3, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2f.cpu", 0x01000, 0x5b500c90, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2j.cpu", 0x01000, 0x179e1c1f, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2m.cpu", 0x01000, 0x4a4bb870, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "5c.cpu", 0x00800, 0xbe037cf6, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "5d.cpu", 0x00800, 0xde7912da, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "5e.cpu", 0x00800, 0xba2fa933, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
-
- { "5f.cpu", 0x00800, 0x4708845b, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "5h.cpu", 0x00800, 0x11fd2887, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "c01s.6e", 0x00020, 0x4e3caeab, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Scramrf)
-STD_ROM_FN(Scramrf)
-
-static struct BurnRomInfo OffensivRomDesc[] = {
- { "2716-9C.bin", 0x00800, 0xcc2ee7f5, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2716-9E.bin", 0x00800, 0x66ebc070, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2716-9F.bin", 0x00800, 0x317548fd, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2716-9H.bin", 0x00800, 0xdd380a22, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2716-9J.bin", 0x00800, 0xfa4f1a70, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2716-9L.bin", 0x00800, 0x9fd96374, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2716-9M.bin", 0x00800, 0x88ac07a0, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2716-9P.bin", 0x00800, 0xfe2866f5, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "2716-5C.bin", 0x00800, 0xbe037cf6, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "2716-5D.bin", 0x00800, 0xde7912da, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "2716-5E.bin", 0x00800, 0xad833f7e, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
-
- { "2716-6F.bin", 0x00800, 0x4708845b, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "2716-6H.bin", 0x00800, 0x11fd2887, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "82s123-NMI6331-1J-5E.bin", 0x00020, 0x4e3caeab, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Offensiv)
-STD_ROM_FN(Offensiv)
-
-static struct BurnRomInfo ScramblebbRomDesc[] = {
- { "1", 0x00800, 0x8ba174c4, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2", 0x00800, 0x43cb40a4, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "3", 0x00800, 0xeec265ee, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "4", 0x00800, 0xdd380a22, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "5", 0x00800, 0x92980e72, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "6", 0x00800, 0x9fd96374, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "7", 0x00800, 0x88ac07a0, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "8", 0x00800, 0x75232e09, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "ot1.5c", 0x00800, 0xbcd297f0, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "ot2.5d", 0x00800, 0xde7912da, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "ot3.5e", 0x00800, 0xba2fa933, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
-
- { "9", 0x00800, 0x4708845b, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "10", 0x00800, 0x11fd2887, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "c01s.6e", 0x00020, 0x4e3caeab, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Scramblebb)
-STD_ROM_FN(Scramblebb)
-
-static struct BurnRomInfo StrfbombRomDesc[] = {
- { "1.2c", 0x00800, 0xb102aaa0, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2.2e", 0x00800, 0xd4155703, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "3.2f", 0x00800, 0xa9568c89, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "4.2h", 0x00800, 0x663b6c35, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "5.2j", 0x00800, 0x4919a91c, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "6.2l", 0x00800, 0x4ec66ae3, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "7.2m", 0x00800, 0x0feb0192, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "8.2p", 0x00800, 0x280a6142, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "ot1.5c", 0x00800, 0xbcd297f0, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "ot2.5d", 0x00800, 0xde7912da, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "ot3.5e", 0x00800, 0xba2fa933, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
-
- { "9.5f", 0x00800, 0x3abeff25, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "10.5h", 0x00800, 0x79ecacbe, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "c01s.6e", 0x00020, 0x4e3caeab, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Strfbomb)
-STD_ROM_FN(Strfbomb)
-
-static struct BurnRomInfo ExplorerRomDesc[] = {
- { "10l.bin", 0x01000, 0xd5adf626, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "9l.bin", 0x01000, 0x48e32788, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "8l.bin", 0x01000, 0xc0dbdbde, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "7l.bin", 0x01000, 0x9b30d227, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "3f.bin", 0x01000, 0x9faf18cf, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "4b.bin", 0x00800, 0xe910b5c3, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
-
- { "c2.5f", 0x00800, 0x4708845b, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "c1.5h", 0x00800, 0x11fd2887, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "c01s.6e", 0x00020, 0x4e3caeab, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Explorer)
-STD_ROM_FN(Explorer)
-
-static struct BurnRomInfo BomberRomDesc[] = {
- { "1.3l", 0x00800, 0x8c30c7c3, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2.3k", 0x00800, 0x1fca370c, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "3.3h", 0x00800, 0x8a714167, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "4.3f", 0x00800, 0xdd380a22, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "5.3e", 0x00800, 0x92980e72, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "6.3d", 0x00800, 0x9fd96374, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "7.3c", 0x00800, 0x88ac07a0, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "8.3a", 0x00800, 0x75232e09, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "11.8k", 0x00800, 0x97ba15e8, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "12.8l", 0x00800, 0x6510761d, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
-
- { "c2.5f", 0x00800, 0x4708845b, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "c1.5h", 0x00800, 0x11fd2887, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "c01s.6e", 0x00020, 0x4e3caeab, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Bomber)
-STD_ROM_FN(Bomber)
-
-static struct BurnRomInfo AtlantisRomDesc[] = {
- { "2c", 0x00800, 0x0e485b9a, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2e", 0x00800, 0xc1640513, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2f", 0x00800, 0xeec265ee, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2h", 0x00800, 0xa5d2e442, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2j", 0x00800, 0x45f7cf34, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2l", 0x00800, 0xf335b96b, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "ot1.5c", 0x00800, 0xbcd297f0, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "ot2.5d", 0x00800, 0xde7912da, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "ot3.5e", 0x00800, 0xba2fa933, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
-
- { "5f", 0x00800, 0x57f9c6b9, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "5h", 0x00800, 0xe989f325, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "c01s.6e", 0x00020, 0x4e3caeab, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Atlantis)
-STD_ROM_FN(Atlantis)
-
-static struct BurnRomInfo Atlantis2RomDesc[] = {
- { "boa_1.2c", 0x00800, 0xad348089, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "boa_2.2e", 0x00800, 0xcaa705d1, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "boa_3.2f", 0x00800, 0xac5e9ec1, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "boa_4.2h", 0x00800, 0x04792d90, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "boa_5.2j", 0x00800, 0x45f7cf34, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "boa_6.2l", 0x00800, 0xb297bd4b, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "boa_7.2m", 0x00800, 0xa50bf8d5, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "boa_8.2p", 0x00800, 0xd2c5c984, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "boa_11.5c", 0x00800, 0xbe037cf6, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "boa_12.5d", 0x00800, 0xde7912da, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "boa_13.5e", 0x00800, 0xba2fa933, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
-
- { "boa_9.5f", 0x00800, 0x55cd5acd, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "boa_10.5h", 0x00800, 0x72e773b8, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "c01s.6e", 0x00020, 0x4e3caeab, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Atlantis2)
-STD_ROM_FN(Atlantis2)
-
-static struct BurnRomInfo CkongsRomDesc[] = {
- { "vid_2c.bin", 0x01000, 0x49a8c234, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "vid_2e.bin", 0x01000, 0xf1b667f1, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "vid_2f.bin", 0x01000, 0xb194b75d, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "vid_2h.bin", 0x01000, 0x2052ba8a, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "vid_2j.bin", 0x01000, 0xb377afd0, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "vid_2l.bin", 0x01000, 0xfe65e691, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "turt_snd.5c", 0x01000, 0xf0c30f9a, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "snd_5d.bin", 0x01000, 0x892c9547, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
-
- { "vid_5f.bin", 0x01000, 0x7866d2cb, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "vid_5h.bin", 0x01000, 0x7311a101, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "vid_6e.bin", 0x00020, 0x5039af97, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Ckongs)
-STD_ROM_FN(Ckongs)
-
-static struct BurnRomInfo MarsRomDesc[] = {
- { "u26.3", 0x00800, 0x2f88892c, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "u56.4", 0x00800, 0x9e6bcbf7, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "u69.5", 0x00800, 0xdf496e6e, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "u98.6", 0x00800, 0x75f274bb, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "u114.7", 0x00800, 0x497fd8d0, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "u133.8", 0x00800, 0x3d4cd59f, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "u39.9", 0x00800, 0xbb5968b9, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "u51.10", 0x00800, 0x75fd7720, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "u78.11", 0x00800, 0x72a492da, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
-
- { "u72.1", 0x00800, 0x279789d0, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "u101.2", 0x00800, 0xc5dc627f, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "c01s.6e", 0x00020, 0x4e3caeab, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Mars)
-STD_ROM_FN(Mars)
-
-static struct BurnRomInfo DevilfshRomDesc[] = {
- { "u26.1", 0x00800, 0xec047d71, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "u56.2", 0x00800, 0x0138ade9, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "u69.3", 0x00800, 0x5dd0b3fc, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "u98.4", 0x00800, 0xded0b745, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "u114.5", 0x00800, 0x5fd40176, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "u133.6", 0x00800, 0x03538336, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "u143.7", 0x00800, 0x64676081, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "u163.8", 0x00800, 0xbc3d6770, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "u39.9", 0x00800, 0x09987e2e, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "u51.10", 0x00800, 0x1e2b1471, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "u78.11", 0x00800, 0x45279aaa, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
-
- { "u72.12", 0x01000, 0x5406508e, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "u101.13", 0x01000, 0x8c4018b6, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "c01s.6e", 0x00020, 0x4e3caeab, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Devilfsh)
-STD_ROM_FN(Devilfsh)
-
-static struct BurnRomInfo Newsin7RomDesc[] = {
- { "newsin.1", 0x01000, 0xe6c23fe0, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "newsin.2", 0x01000, 0x3d477b5f, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "newsin.3", 0x01000, 0x7dfa9af0, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "newsin.4", 0x01000, 0xd1b0ba19, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "newsin.5", 0x01000, 0x06275d59, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "newsin.13", 0x00800, 0xd88489a2, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "newsin.12", 0x00800, 0xb154a7af, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "newsin.11", 0x00800, 0x7ade709b, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
-
- { "newsin.9", 0x01000, 0x6b87adff, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "newsin.8", 0x01000, 0x0c5b895a, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "newsin.7", 0x01000, 0x6bc5d64f, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "newsin.6", 0x00020, 0x5cf2cd8d, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Newsin7)
-STD_ROM_FN(Newsin7)
-
-static struct BurnRomInfo MrkougarRomDesc[] = {
- { "2732-7.bin", 0x01000, 0xfd060ffb, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2732-6.bin", 0x01000, 0x9e05d868, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2732-5.bin", 0x01000, 0xcbc7c536, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "atw-6w-2.bin", 0x01000, 0xaf42a371, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "atw-6y-3.bin", 0x01000, 0x862b8902, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "atw-6z-4.bin", 0x01000, 0xa0396cc8, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
-
- { "2732-1.bin", 0x01000, 0x60ef1d43, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "c01s.6e", 0x00020, 0x4e3caeab, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Mrkougar)
-STD_ROM_FN(Mrkougar)
-
-static struct BurnRomInfo Mrkougar2RomDesc[] = {
- { "atw-7l-7.bin", 0x01000, 0x7b34b198, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "atw-7k-6.bin", 0x01000, 0xfbca23c7, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "atw-7h-5.bin", 0x01000, 0x05b257a2, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "atw-6w-2.bin", 0x01000, 0xaf42a371, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "atw-6y-3.bin", 0x01000, 0x862b8902, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "atw-6z-4.bin", 0x01000, 0xa0396cc8, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
-
- { "atw-1h-1.bin", 0x01000, 0x38fdfb63, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "atw-prom.bin", 0x00020, 0xc65db188, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Mrkougar2)
-STD_ROM_FN(Mrkougar2)
-
-static struct BurnRomInfo MrkougbRomDesc[] = {
- { "p01.bin", 0x00800, 0xdea0cde1, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "p02.bin", 0x00800, 0xc8017751, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "p03.bin", 0x00800, 0xb8921984, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "p04.bin", 0x00800, 0xb3c9754c, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "p05.bin", 0x00800, 0x8d94adbc, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "p06.bin", 0x00800, 0xacc921ff, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "atw-6w-2.bin", 0x01000, 0xaf42a371, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "atw-6y-3.bin", 0x01000, 0x862b8902, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "atw-6z-4.bin", 0x01000, 0xa0396cc8, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
-
- { "g07.bin", 0x00800, 0x0ecfd116, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "g08.bin", 0x00800, 0x00bfa3c6, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "atw-prom.bin", 0x00020, 0xc65db188, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Mrkougb)
-STD_ROM_FN(Mrkougb)
-
-static struct BurnRomInfo Mrkougb2RomDesc[] = {
- { "mrk1.bin", 0x00800, 0xfc93acb9, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "p02.bin", 0x00800, 0xc8017751, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "p03.bin", 0x00800, 0xb8921984, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "p04.bin", 0x00800, 0xb3c9754c, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "p05.bin", 0x00800, 0x8d94adbc, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "p06.bin", 0x00800, 0xacc921ff, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "atw-6w-2.bin", 0x01000, 0xaf42a371, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "atw-6y-3.bin", 0x01000, 0x862b8902, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "atw-6z-4.bin", 0x01000, 0xa0396cc8, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
-
- { "g07.bin", 0x00800, 0x0ecfd116, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "g08.bin", 0x00800, 0x00bfa3c6, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "atw-prom.bin", 0x00020, 0xc65db188, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Mrkougb2)
-STD_ROM_FN(Mrkougb2)
-
-static struct BurnRomInfo HotshockRomDesc[] = {
- { "0d.l10", 0x01000, 0x3e8aeaeb, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "1d.l9", 0x01000, 0x0eab3246, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2d.l8", 0x01000, 0xe646bde3, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "3d.l7", 0x01000, 0x5bde9312, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "6d.b3", 0x01000, 0xc5e02651, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "7d.b4", 0x01000, 0x49dc113d, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
-
- { "4d.h3", 0x01000, 0x751c850e, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "5d.h5", 0x01000, 0xfc74282e, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "18s030.1k", 0x00020, 0x4e3caeab, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Hotshock)
-STD_ROM_FN(Hotshock)
-
-static struct BurnRomInfo HotshockbRomDesc[] = {
- { "hotshock.l10", 0x01000, 0x401078f7, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "hotshock.l9", 0x01000, 0xaf76c237, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "hotshock.l8", 0x01000, 0x30486031, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "hotshock.l7", 0x01000, 0x5bde9312, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "hotshock.b3", 0x01000, 0x0092f0e2, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "hotshock.b4", 0x01000, 0xc2135a44, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
-
- { "hotshock.h4", 0x01000, 0x60bdaea9, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "hotshock.h5", 0x01000, 0x4ef17453, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "c01s.6e", 0x00020, 0x4e3caeab, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Hotshockb)
-STD_ROM_FN(Hotshockb)
-
-static struct BurnRomInfo ConquerRomDesc[] = {
- { "conquer3.l10", 0x01000, 0xa33a824f, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "conquer2.l9", 0x01000, 0x3ffa8285, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "conquer1.l8", 0x01000, 0x9ded2dff, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "conquer6.b3", 0x01000, 0xd363b2ea, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "conquer7.b4", 0x01000, 0xe6a63d71, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
-
- { "conquer4.h3", 0x01000, 0xac533893, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "conquer5.h5", 0x01000, 0xd884fd49, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "c01s.6e", 0x00020, 0x4e3caeab, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Conquer)
-STD_ROM_FN(Conquer)
-
-static struct BurnRomInfo CavelonRomDesc[] = {
- { "2.bin", 0x02000, 0xa3b353ac, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "1.bin", 0x02000, 0x3f62efd6, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "3.bin", 0x02000, 0x39d74e4e, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "1c_snd.bin", 0x00800, 0xf58dcf55, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
-
- { "h.bin", 0x01000, 0xd44fcd6f, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "k.bin", 0x01000, 0x59bc7f9e, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "cavelon.clr", 0x00020, 0xd133356b, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Cavelon)
-STD_ROM_FN(Cavelon)
-
-static struct BurnRomInfo MimonscrRomDesc[] = {
- { "mm1", 0x01000, 0x0399a0c4, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "mm2", 0x01000, 0x2c5e971e, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "mm3", 0x01000, 0x24ce1ce3, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "mm4", 0x01000, 0xc83fb639, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "mm5", 0x01000, 0xa9f12dfc, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "mm6", 0x01000, 0xe492a40c, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "mm7", 0x01000, 0x5339928d, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "mm8", 0x01000, 0xeee7a12e, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "mmsound1", 0x01000, 0x2d14c527, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "mmsnd2a", 0x01000, 0x35ed0f96, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
-
- { "mmgfx1", 0x02000, 0x4af47337, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "mmgfx2", 0x02000, 0xdef47da8, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "c01s.6e", 0x00020, 0x4e3caeab, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Mimonscr)
-STD_ROM_FN(Mimonscr)
-
-static struct BurnRomInfo MimonscraRomDesc[] = {
- { "1.c2", 0x01000, 0xcfff26f3, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2.e2", 0x01000, 0x1fca805f, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "3.f2", 0x01000, 0x24ce1ce3, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "4.h2", 0x01000, 0xc83fb639, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "5.j2", 0x01000, 0xa9f12dfc, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "6.l2", 0x01000, 0xe492a40c, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "7.m2", 0x01000, 0x5339928d, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "8.p2", 0x01000, 0x0b9915b8, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "2732.c5", 0x01000, 0x5995f24b, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "2732.d5", 0x01000, 0x35ed0f96, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
-
- { "top.g5", 0x01000, 0xf73a8412, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "bottom.g5", 0x01000, 0x3828c9db, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "top.f5", 0x01000, 0x9e0e9289, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "bottom.f5", 0x01000, 0x92085b0c, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "mb7051.e6", 0x00020, 0x4e3caeab, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Mimonscra)
-STD_ROM_FN(Mimonscra)
-
-UINT8 __fastcall ExplorerZ80Read(UINT16 a)
-{
- switch (a) {
- case 0x7000: {
- // watchdog read
- return 0xff;
- }
-
- case 0x8000: {
- return GalInput[0] | GalDip[0];
- }
-
- case 0x8001: {
- return GalInput[1] | GalDip[1];
- }
-
- case 0x8002: {
- return GalInput[2] | GalDip[2];
- }
-
- case 0x8003: {
- return GalInput[3] | GalDip[3];
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Read => %04X\n"), a);
- }
- }
-
- return 0xff;
-}
-
-void __fastcall ExplorerZ80Write(UINT16 a, UINT8 d)
-{
- if (a >= 0x5000 && a <= 0x50ff) {
- INT32 Offset = a - 0x5000;
-
- GalSpriteRam[Offset] = d;
-
- if (Offset < 0x40) {
- if ((Offset & 0x01) == 0) {
- GalScrollVals[Offset >> 1] = d;
- }
- }
-
- return;
- }
-
- if (a >= 0x5100 && a <= 0x51ff) {
- INT32 Offset = a - 0x5100;
-
- GalSpriteRam[Offset] = d;
-
- if (Offset < 0x40) {
- if ((Offset & 0x01) == 0) {
- GalScrollVals[Offset >> 1] = d;
- }
- }
-
- return;
- }
-
- switch (a) {
- case 0x6801: {
- GalIrqFire = d & 1;
- return;
- }
-
- case 0x6802: {
- // coin_count_0_w
- return;
- }
-
- case 0x6803: {
- GalBackgroundEnable = d & 1;
- return;
- }
-
- case 0x6804: {
- GalStarsEnable = d & 0x01;
- if (!GalStarsEnable) GalStarsScrollPos = -1;
- return;
- }
-
- case 0x6806: {
- GalFlipScreenX = d & 1;
- return;
- }
-
- case 0x6807: {
- GalFlipScreenY = d & 1;
- return;
- }
-
- case 0x7000: {
- // watchdog write
- return;
- }
-
- case 0x8000: {
- GalSoundLatch = d;
- return;
- }
-
- case 0x9000: {
- ZetClose();
- ZetOpen(1);
- ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
- ZetClose();
- ZetOpen(0);
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Write => %04X, %02X\n"), a, d);
- }
- }
-}
-
-UINT8 __fastcall CkongsZ80Read(UINT16 a)
-{
- switch (a) {
- case 0x7000:
- case 0x7001:
- case 0x7002:
- case 0x7003: {
- return ppi8255_r(0, a - 0x7000);
- }
-
- case 0x7800:
- case 0x7801:
- case 0x7802:
- case 0x7803: {
- return ppi8255_r(1, a - 0x7800);
- }
-
- case 0xb000: {
- // watchdog read
- return 0xff;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Read => %04X\n"), a);
- }
- }
-
- return 0xff;
-}
-
-void __fastcall CkongsZ80Write(UINT16 a, UINT8 d)
-{
- if (a >= 0x9800 && a <= 0x98ff) {
- INT32 Offset = a - 0x9800;
-
- GalSpriteRam[Offset] = d;
-
- if (Offset < 0x40) {
- if ((Offset & 0x01) == 0) {
- GalScrollVals[Offset >> 1] = d;
- }
- }
-
- return;
- }
-
- switch (a) {
- case 0x7000:
- case 0x7001:
- case 0x7002:
- case 0x7003: {
- ppi8255_w(0, a - 0x7000, d);
- return;
- }
-
- case 0x7800:
- case 0x7801:
- case 0x7802:
- case 0x7803: {
- ppi8255_w(1, a - 0x7800, d);
- return;
- }
-
- case 0xa801: {
- GalIrqFire = d & 1;
- return;
- }
-
- case 0xa806: {
- GalFlipScreenX = d & 1;
- return;
- }
-
- case 0xa807: {
- GalFlipScreenY = d & 1;
- return;
- }
-
- case 0xb000: {
- // watchdog write
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Write => %04X, %02X\n"), a, d);
- }
- }
-}
-
-UINT8 __fastcall MarsZ80Read(UINT16 a)
-{
- if (a >= 0x8100 && a <= 0x810f) {
- INT32 Offset = a - 0x8100;
- return ppi8255_r(0, ((Offset >> 2) & 0x02) | ((Offset >> 1) & 0x01));
- }
-
- if (a >= 0x8200 && a <= 0x820f) {
- INT32 Offset = a - 0x8200;
- return ppi8255_r(1, ((Offset >> 2) & 0x02) | ((Offset >> 1) & 0x01));
- }
-
- switch (a) {
- case 0x7000: {
- // watchdog read
- return 0xff;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Read => %04X\n"), a);
- }
- }
-
- return 0xff;
-}
-
-void __fastcall MarsZ80Write(UINT16 a, UINT8 d)
-{
- if (a >= 0x5000 && a <= 0x50ff) {
- INT32 Offset = a - 0x5000;
-
- GalSpriteRam[Offset] = d;
-
- if (Offset < 0x40) {
- if ((Offset & 0x01) == 0) {
- GalScrollVals[Offset >> 1] = d;
- }
- }
-
- return;
- }
-
- if (a >= 0x8100 && a <= 0x810f) {
- INT32 Offset = a - 0x8100;
- ppi8255_w(0, ((Offset >> 2) & 0x02) | ((Offset >> 1) & 0x01), d);
- return;
- }
-
- if (a >= 0x8200 && a <= 0x820f) {
- INT32 Offset = a - 0x8200;
- ppi8255_w(1, ((Offset >> 2) & 0x02) | ((Offset >> 1) & 0x01), d);
- return;
- }
-
- switch (a) {
- case 0x6800: {
- // coin_count_1_w
- return;
- }
-
- case 0x6801: {
- GalStarsEnable = d & 0x01;
- if (!GalStarsEnable) GalStarsScrollPos = -1;
- return;
- }
-
- case 0x6802: {
- GalIrqFire = d & 1;
- return;
- }
-
- case 0x6808: {
- // coin_count_0_w
- return;
- }
-
- case 0x6809: {
- GalFlipScreenX = d & 1;
- return;
- }
-
- case 0x680b: {
- GalFlipScreenY = d & 1;
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Write => %04X, %02X\n"), a, d);
- }
- }
-}
-
-UINT8 __fastcall Newsin7Z80Read(UINT16 a)
-{
- if (a >= 0x8200 && a <= 0x820f) {
- INT32 Offset = a - 0x8200;
- return ppi8255_r(1, ((Offset >> 2) & 0x02) | ((Offset >> 1) & 0x01));
- }
-
- if (a >= 0xc100 && a <= 0xc10f) {
- INT32 Offset = a - 0xc100;
- return ppi8255_r(0, ((Offset >> 2) & 0x02) | ((Offset >> 1) & 0x01));
- }
-
- switch (a) {
- case 0x7000: {
- // watchdog read
- return 0xff;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Read => %04X\n"), a);
- }
- }
-
- return 0xff;
-}
-
-void __fastcall Newsin7Z80Write(UINT16 a, UINT8 d)
-{
- if (a >= 0x5000 && a <= 0x50ff) {
- INT32 Offset = a - 0x5000;
-
- GalSpriteRam[Offset] = d;
-
- if (Offset < 0x40) {
- if ((Offset & 0x01) == 0) {
- GalScrollVals[Offset >> 1] = d;
- }
- }
-
- return;
- }
-
- if (a >= 0x8200 && a <= 0x820f) {
- INT32 Offset = a - 0x8200;
- ppi8255_w(1, ((Offset >> 2) & 0x02) | ((Offset >> 1) & 0x01), d);
- return;
- }
-
- if (a >= 0xc100 && a <= 0xc10f) {
- INT32 Offset = a - 0xc100;
- ppi8255_w(0, ((Offset >> 2) & 0x02) | ((Offset >> 1) & 0x01), d);
- return;
- }
-
- switch (a) {
- case 0x6800: {
- // coin_count_1_w
- return;
- }
-
- case 0x6801: {
- GalStarsEnable = d & 0x01;
- if (!GalStarsEnable) GalStarsScrollPos = -1;
- return;
- }
-
- case 0x6802: {
- GalIrqFire = d & 1;
- return;
- }
-
- case 0x6808: {
- // coin_count_0_w
- return;
- }
-
- case 0x6809: {
- GalFlipScreenX = d & 1;
- return;
- }
-
- case 0x680b: {
- GalFlipScreenY = d & 1;
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Write => %04X, %02X\n"), a, d);
- }
- }
-}
-
-void __fastcall MrkougarZ80Write(UINT16 a, UINT8 d)
-{
- if (a >= 0x5000 && a <= 0x50ff) {
- INT32 Offset = a - 0x5000;
-
- GalSpriteRam[Offset] = d;
-
- if (Offset < 0x40) {
- if ((Offset & 0x01) == 0) {
- GalScrollVals[Offset >> 1] = d;
- }
- }
-
- return;
- }
-
- if (a >= 0x8100 && a <= 0x810f) {
- INT32 Offset = a - 0x8100;
- ppi8255_w(0, ((Offset >> 2) & 0x02) | ((Offset >> 1) & 0x01), d);
- return;
- }
-
- if (a >= 0x8200 && a <= 0x820f) {
- INT32 Offset = a - 0x8200;
- ppi8255_w(1, ((Offset >> 2) & 0x02) | ((Offset >> 1) & 0x01), d);
- return;
- }
-
- switch (a) {
- case 0x6800: {
- // coin_count_1_w
- return;
- }
-
- case 0x6801: {
- GalIrqFire = d & 1;
- return;
- }
-
- case 0x6808: {
- // coin_count_0_w
- return;
- }
-
- case 0x6809: {
- GalFlipScreenX = d & 1;
- return;
- }
-
- case 0x680b: {
- GalFlipScreenY = d & 1;
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Write => %04X, %02X\n"), a, d);
- }
- }
-}
-
-UINT8 __fastcall HotshockZ80Read(UINT16 a)
-{
- switch (a) {
- case 0x8000: {
- return GalInput[0] | GalDip[0];
- }
-
- case 0x8001: {
- return GalInput[1] | GalDip[1];
- }
-
- case 0x8002: {
- return GalInput[2] | GalDip[2];
- }
-
- case 0x8003: {
- return GalInput[3] | GalDip[3];
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Read => %04X\n"), a);
- }
- }
-
- return 0xff;
-}
-
-void __fastcall HotshockZ80Write(UINT16 a, UINT8 d)
-{
- if (a >= 0x5000 && a <= 0x50ff) {
- INT32 Offset = a - 0x5000;
-
- GalSpriteRam[Offset] = d;
-
- if (Offset < 0x40) {
- if ((Offset & 0x01) == 0) {
- GalScrollVals[Offset >> 1] = d;
- }
- }
-
- return;
- }
-
- switch (a) {
- case 0x6000: {
- // coin_count_2_w
- return;
- }
-
- case 0x6002: {
- // coin_count_1_w
- return;
- }
-
- case 0x6004: {
- GalFlipScreenX = d & 1;
- GalFlipScreenY = d & 1;
- return;
- }
-
- case 0x6005: {
- // coin_count_0_w
- return;
- }
-
- case 0x6006: {
- GalGfxBank[0] = d & 1;
- return;
- }
-
- case 0x6801: {
- GalIrqFire = d & 1;
- return;
- }
-
- case 0x7000: {
- // watchdog write
- return;
- }
-
- case 0x8000: {
- GalSoundLatch = d;
- return;
- }
-
- case 0x9000: {
- ZetClose();
- ZetOpen(1);
- ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
- ZetClose();
- ZetOpen(0);
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Write => %04X, %02X\n"), a, d);
- }
- }
-}
-
-UINT8 __fastcall HotshockSoundZ80PortRead(UINT16 a)
-{
- a &= 0xff;
-
- switch (a) {
- case 0x20: {
- return AY8910Read(0);
- }
-
- case 0x40: {
- return AY8910Read(1);
- }
- }
-
- bprintf(PRINT_NORMAL, _T("Sound Port Read %x\n"), a);
-
- return 0;
-}
-
-void __fastcall HotshockSoundZ80PortWrite(UINT16 a, UINT8 d)
-{
- a &= 0xff;
-
- switch (a) {
- case 0x10: {
- AY8910Write(0, 0, d);
- return;
- }
-
- case 0x20: {
- AY8910Write(0, 1, d);
- return;
- }
-
- case 0x40: {
- AY8910Write(1, 1, d);
- return;
- }
-
- case 0x80: {
- AY8910Write(1, 0, d);
- return;
- }
- }
-
- bprintf(PRINT_NORMAL, _T("Sound Port Write %x, %x\n"), a, d);
-}
-
-static void CavelonDoBankSwitch()
-{
- CavelonBankSwitch = !CavelonBankSwitch;
- ZetMapArea(0x0000, 0x1fff, 0, GalZ80Rom1 + ((CavelonBankSwitch) ? 0x4000 : 0x0000));
- ZetMapArea(0x0000, 0x1fff, 2, GalZ80Rom1 + ((CavelonBankSwitch) ? 0x4000 : 0x0000));
-}
-
-UINT8 __fastcall CavelonZ80Read(UINT16 a)
-{
- if (a >= 0x8000) {
- CavelonDoBankSwitch();
- UINT32 Offset = a - 0x8000;
- UINT8 Result = 0xff;
- if (Offset & 0x0100) Result &= ppi8255_r(0, Offset & 3);
- if (Offset & 0x0200) Result &= ppi8255_r(1, Offset & 3);
- return Result;
- }
-
- switch (a) {
- case 0x7000: {
- // watchdog read
- return 0xff;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Read => %04X\n"), a);
- }
- }
-
- return 0xff;
-}
-
-void __fastcall CavelonZ80Write(UINT16 a, UINT8 d)
-{
- if (a >= 0x5000 && a <= 0x50ff) {
- INT32 Offset = a - 0x5000;
-
- GalSpriteRam[Offset] = d;
-
- if (Offset < 0x40) {
- if ((Offset & 0x01) == 0) {
- GalScrollVals[Offset >> 1] = d;
- }
- }
-
- return;
- }
-
- if (a >= 0x8000) {
- CavelonDoBankSwitch();
- INT32 Offset = a - 0x8000;
- if (Offset & 0x0100) ppi8255_w(0, Offset & 3, d);
- if (Offset & 0x0200) ppi8255_w(1, Offset & 3, d);
- return;
- }
-
- switch (a) {
- case 0x2000:
- case 0x3800:
- case 0x3801: {
- // write in rom area
- return;
- }
-
- case 0x6801: {
- GalIrqFire = d & 1;
- return;
- }
-
- case 0x6802: {
- // coin_count_0_w
- return;
- }
-
- case 0x6803: {
- GalBackgroundEnable = d & 1;
- return;
- }
-
- case 0x6804: {
- GalStarsEnable = d & 0x01;
- if (!GalStarsEnable) GalStarsScrollPos = -1;
- return;
- }
-
- case 0x6806: {
- GalFlipScreenX = d & 1;
- return;
- }
-
- case 0x6807: {
- GalFlipScreenY = d & 1;
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Write => %04X, %02X\n"), a, d);
- }
- }
-}
-
-UINT8 __fastcall MimonscrZ80Read(UINT16 a)
-{
- switch (a) {
- case 0x7000: {
- // watchdog read
- return 0xff;
- }
-
- case 0x8100:
- case 0x8101:
- case 0x8102:
- case 0x8103: {
- return ppi8255_r(0, a - 0x8100);
- }
-
- case 0x8200:
- case 0x8201:
- case 0x8202:
- case 0x8203: {
- return ppi8255_r(1, a - 0x8200);
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Read => %04X\n"), a);
- }
- }
-
- return 0xff;
-}
-
-void __fastcall MimonscrZ80Write(UINT16 a, UINT8 d)
-{
- if (a >= 0x5000 && a <= 0x50ff) {
- INT32 Offset = a - 0x5000;
-
- GalSpriteRam[Offset] = d;
-
- if (Offset < 0x40) {
- if ((Offset & 0x01) == 0) {
- GalScrollVals[Offset >> 1] = d;
- }
- }
-
- return;
- }
-
- switch (a) {
- case 0x6800: {
- GalGfxBank[0] = d & 1;
- return;
- }
-
- case 0x6801: {
- GalIrqFire = d & 1;
- return;
- }
-
- case 0x6802: {
- GalGfxBank[1] = d & 1;
- return;
- }
-
- case 0x6803: {
- // ???
- return;
- }
-
- case 0x6804: {
- GalBackgroundEnable = d & 1;
- return;
- }
-
- case 0x6805: {
- // ???
- return;
- }
-
- case 0x6806: {
- GalFlipScreenX = d & 1;
- return;
- }
-
- case 0x6807: {
- GalFlipScreenY = d & 1;
- return;
- }
-
- case 0x8100:
- case 0x8101:
- case 0x8102:
- case 0x8103: {
- ppi8255_w(0, a - 0x8100, d);
- return;
- }
-
- case 0x8200:
- case 0x8201:
- case 0x8202:
- case 0x8203: {
- ppi8255_w(1, a - 0x8200, d);
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Write => %04X, %02X\n"), a, d);
- }
- }
-}
-
-static INT32 TheendInit()
-{
- INT32 nRet;
-
- GalPostLoadCallbackFunction = MapTheend;
- GalSoundType = GAL_SOUND_HARDWARE_TYPE_KONAMIAY8910;
-
- nRet = GalInit(); if (nRet) return 1;
- KonamiSoundInit();
-
- GalRenderBackgroundFunction = GalaxianDrawBackground;
- GalDrawBulletsFunction = TheendDrawBullets;
-
- KonamiPPIInit();
-
- filter_rc_set_src_gain(0, 0.02);
- filter_rc_set_src_gain(1, 0.02);
- filter_rc_set_src_gain(2, 0.02);
- filter_rc_set_src_gain(3, 0.02);
- filter_rc_set_src_gain(4, 0.02);
- filter_rc_set_src_gain(5, 0.02);
-
- return nRet;
-}
-
-static UINT8 ScramblePPIReadIN2()
-{
- UINT8 Val = (ScrambleProtectionResult >> 7) & 1;
-
- if (Val) {
- return 0x5f - GalInput[2] - GalDip[2];
- } else {
- return 0xff - GalInput[2] - GalDip[2];
- }
-}
-
-static UINT8 ScrambleProtectionRead()
-{
- return ScrambleProtectionResult;
-}
-
-static void ScrambleProtectionWrite(UINT8 d)
-{
- ScrambleProtectionState = (ScrambleProtectionState << 4) | (d & 0x0f);
-
- switch (ScrambleProtectionState & 0xfff) {
- case 0xf09: ScrambleProtectionResult = 0xff; return;
- case 0xa49: ScrambleProtectionResult = 0xbf; return;
- case 0x319: ScrambleProtectionResult = 0x4f; return;
- case 0x5c9: ScrambleProtectionResult = 0x6f; return;
-
- // scrambles
- case 0x246: ScrambleProtectionResult ^= 0x80; return;
- case 0xb5f: ScrambleProtectionResult = 0x6f; return;
- }
-}
-
-static INT32 ScrambleInit()
-{
- INT32 nRet;
-
- GalPostLoadCallbackFunction = MapTheend;
- GalSoundType = GAL_SOUND_HARDWARE_TYPE_KONAMIAY8910;
-
- nRet = GalInit(); if (nRet) return 1;
- KonamiSoundInit();
-
- GalRenderBackgroundFunction = ScrambleDrawBackground;
- GalDrawBulletsFunction = ScrambleDrawBullets;
-
- KonamiPPIInit();
- PPI0PortReadC = ScramblePPIReadIN2;
- PPI1PortReadC = ScrambleProtectionRead;
- PPI1PortWriteC = ScrambleProtectionWrite;
-
- return nRet;
-}
-
-static void ExplorerPostLoad()
-{
- MapTheend();
-
- ZetOpen(0);
- ZetSetReadHandler(ExplorerZ80Read);
- ZetSetWriteHandler(ExplorerZ80Write);
- ZetMapArea(0x5100, 0x51ff, 0, GalSpriteRam);
- ZetMapArea(0x5100, 0x51ff, 2, GalSpriteRam);
- ZetClose();
-}
-
-static INT32 ExplorerInit()
-{
- INT32 nRet;
-
- GalPostLoadCallbackFunction = ExplorerPostLoad;
- GalSoundType = GAL_SOUND_HARDWARE_TYPE_EXPLORERAY8910;
-
- nRet = GalInit(); if (nRet) return 1;
- KonamiSoundInit();
-
- GalRenderBackgroundFunction = ScrambleDrawBackground;
- GalDrawBulletsFunction = ScrambleDrawBullets;
-
- KonamiPPIInit();
-
- return nRet;
-}
-
-static INT32 AtlantisInit()
-{
- INT32 nRet;
-
- GalPostLoadCallbackFunction = MapTheend;
- GalSoundType = GAL_SOUND_HARDWARE_TYPE_KONAMIAY8910;
-
- nRet = GalInit(); if (nRet) return 1;
- KonamiSoundInit();
-
- GalRenderBackgroundFunction = ScrambleDrawBackground;
- GalDrawBulletsFunction = ScrambleDrawBullets;
-
- KonamiPPIInit();
-
- filter_rc_set_src_gain(0, 0.25);
- filter_rc_set_src_gain(1, 0.25);
- filter_rc_set_src_gain(2, 0.25);
- filter_rc_set_src_gain(3, 0.25);
- filter_rc_set_src_gain(4, 0.25);
- filter_rc_set_src_gain(5, 0.25);
-
- return nRet;
-}
-
-static void CkongsPostLoad()
-{
- ZetOpen(0);
- ZetMemCallback(0x0000, 0xffff, 0);
- ZetMemCallback(0x0000, 0xffff, 1);
- ZetMemCallback(0x0000, 0xffff, 2);
- ZetSetReadHandler(CkongsZ80Read);
- ZetSetWriteHandler(CkongsZ80Write);
- ZetMapArea(0x0000, 0x5fff, 0, GalZ80Rom1);
- ZetMapArea(0x0000, 0x5fff, 2, GalZ80Rom1);
- ZetMapArea(0x6000, 0x6fff, 0, GalZ80Ram1);
- ZetMapArea(0x6000, 0x6fff, 1, GalZ80Ram1);
- ZetMapArea(0x6000, 0x6fff, 2, GalZ80Ram1);
- ZetMapArea(0x9000, 0x93ff, 0, GalVideoRam);
- ZetMapArea(0x9000, 0x93ff, 1, GalVideoRam);
- ZetMapArea(0x9000, 0x93ff, 2, GalVideoRam);
- ZetMapArea(0x9400, 0x97ff, 0, GalVideoRam);
- ZetMapArea(0x9400, 0x97ff, 1, GalVideoRam);
- ZetMapArea(0x9400, 0x97ff, 2, GalVideoRam);
- ZetMapArea(0x9800, 0x98ff, 0, GalSpriteRam);
- ZetMapArea(0x9800, 0x98ff, 2, GalSpriteRam);
- ZetClose();
-}
-
-static INT32 CkongsInit()
-{
- INT32 nRet;
-
- GalPostLoadCallbackFunction = CkongsPostLoad;
- GalSoundType = GAL_SOUND_HARDWARE_TYPE_KONAMIAY8910;
-
- nRet = GalInit(); if (nRet) return 1;
- KonamiSoundInit();
-
- KonamiPPIInit();
-
- GalExtendSpriteInfoFunction = MshuttleExtendSpriteInfo;
-
- GalSpriteClipStart = 7;
- GalSpriteClipEnd = 246;
-
- return nRet;
-}
-
-static void MarsDecrypt()
-{
- for (UINT32 i = 0; i < GalZ80Rom1Size; i += 16) {
- UINT8 SwapBuffer[16];
-
- for (UINT32 j = 0; j < 16; j++) {
- INT32 NewOffset = BITSWAP08(j, 7, 6, 5, 4, 2, 0, 3, 1);
- SwapBuffer[j] = GalZ80Rom1[i + NewOffset];
- }
- memcpy(GalZ80Rom1 + i, SwapBuffer, 16);
- }
-}
-
-static void MarsPostLoad()
-{
- MarsDecrypt();
-
- ZetOpen(0);
- ZetMemCallback(0x0000, 0xffff, 0);
- ZetMemCallback(0x0000, 0xffff, 1);
- ZetMemCallback(0x0000, 0xffff, 2);
- ZetSetReadHandler(MarsZ80Read);
- ZetSetWriteHandler(MarsZ80Write);
- ZetMapArea(0x0000, (GalZ80Rom1Size >= 0x4000) ? 0x3fff : GalZ80Rom1Size - 1, 0, GalZ80Rom1);
- ZetMapArea(0x0000, (GalZ80Rom1Size >= 0x4000) ? 0x3fff : GalZ80Rom1Size - 1, 2, GalZ80Rom1);
- ZetMapArea(0x4000, 0x47ff, 0, GalZ80Ram1);
- ZetMapArea(0x4000, 0x47ff, 1, GalZ80Ram1);
- ZetMapArea(0x4000, 0x47ff, 2, GalZ80Ram1);
- ZetMapArea(0x4800, 0x4bff, 0, GalVideoRam);
- ZetMapArea(0x4800, 0x4bff, 1, GalVideoRam);
- ZetMapArea(0x4800, 0x4bff, 2, GalVideoRam);
- ZetMapArea(0x5000, 0x50ff, 0, GalSpriteRam);
- ZetMapArea(0x5000, 0x50ff, 2, GalSpriteRam);
- ZetClose();
-}
-
-static INT32 MarsInit()
-{
- INT32 nRet;
-
- GalPostLoadCallbackFunction = MarsPostLoad;
- GalSoundType = GAL_SOUND_HARDWARE_TYPE_KONAMIAY8910;
-
- nRet = GalInit(); if (nRet) return 1;
- KonamiSoundInit();
-
- GalRenderBackgroundFunction = ScrambleDrawBackground;
- GalDrawBulletsFunction = ScrambleDrawBullets;
-
- KonamiPPIInit();
-
- return nRet;
-}
-
-static INT32 DevilfshInit()
-{
- INT32 nRet;
-
- GalPostLoadCallbackFunction = MarsPostLoad;
- GalSoundType = GAL_SOUND_HARDWARE_TYPE_KONAMIAY8910;
-
- nRet = GalInit(); if (nRet) return 1;
- KonamiSoundInit();
-
- GalNumChars = 0x100;
- GalNumSprites = 0x40;
- CharPlaneOffsets[1] = 0x8000;
- SpritePlaneOffsets[1] = 0x8000;
-
- GalTempRom = (UINT8*)BurnMalloc(GalTilesSharedRomSize);
- nRet = BurnLoadRom(GalTempRom + 0x0000, GAL_ROM_OFFSET_TILES_SHARED + 0, 1); if (nRet) return 1;
- nRet = BurnLoadRom(GalTempRom + 0x1000, GAL_ROM_OFFSET_TILES_SHARED + 1, 1); if (nRet) return 1;
- GfxDecode(GalNumChars, 2, 8, 8, CharPlaneOffsets, CharXOffsets, CharYOffsets, 0x40, GalTempRom, GalChars);
- GfxDecode(GalNumSprites, 2, 16, 16, SpritePlaneOffsets, SpriteXOffsets, SpriteYOffsets, 0x100, GalTempRom + 0x800, GalSprites);
- BurnFree(GalTempRom);
-
- GalRenderBackgroundFunction = ScrambleDrawBackground;
- GalDrawBulletsFunction = ScrambleDrawBullets;
-
- KonamiPPIInit();
-
- filter_rc_set_src_gain(0, 0.75);
- filter_rc_set_src_gain(1, 0.75);
- filter_rc_set_src_gain(2, 0.75);
- filter_rc_set_src_gain(3, 0.75);
- filter_rc_set_src_gain(4, 0.75);
- filter_rc_set_src_gain(5, 0.75);
-
- return nRet;
-}
-
-static void Newsin7PostLoad()
-{
- MarsDecrypt();
-
- ZetOpen(0);
- ZetMemCallback(0x0000, 0xffff, 0);
- ZetMemCallback(0x0000, 0xffff, 1);
- ZetMemCallback(0x0000, 0xffff, 2);
- ZetSetReadHandler(Newsin7Z80Read);
- ZetSetWriteHandler(Newsin7Z80Write);
- ZetMapArea(0x0000, (GalZ80Rom1Size >= 0x4000) ? 0x3fff : GalZ80Rom1Size - 1, 0, GalZ80Rom1);
- ZetMapArea(0x0000, (GalZ80Rom1Size >= 0x4000) ? 0x3fff : GalZ80Rom1Size - 1, 2, GalZ80Rom1);
- ZetMapArea(0x4000, 0x47ff, 0, GalZ80Ram1);
- ZetMapArea(0x4000, 0x47ff, 1, GalZ80Ram1);
- ZetMapArea(0x4000, 0x47ff, 2, GalZ80Ram1);
- ZetMapArea(0x4800, 0x4bff, 0, GalVideoRam);
- ZetMapArea(0x4800, 0x4bff, 1, GalVideoRam);
- ZetMapArea(0x4800, 0x4bff, 2, GalVideoRam);
- ZetMapArea(0x5000, 0x50ff, 0, GalSpriteRam);
- ZetMapArea(0x5000, 0x50ff, 2, GalSpriteRam);
- ZetMapArea(0xa000, 0xafff, 0, GalZ80Rom1 + 0x4000);
- ZetMapArea(0xa000, 0xafff, 2, GalZ80Rom1 + 0x4000);
- ZetClose();
-}
-
-static INT32 Newsin7Init()
-{
- INT32 nRet;
-
- GalPostLoadCallbackFunction = Newsin7PostLoad;
- GalSoundType = GAL_SOUND_HARDWARE_TYPE_KONAMIAY8910;
-
- nRet = GalInit(); if (nRet) return 1;
- KonamiSoundInit();
-
- GalNumChars = 0x100;
- GalNumSprites = 0x40;
-
- INT32 Newsin7PlaneOffsets[3] = {0x10000, 0, 0x8000};
-
- GalTempRom = (UINT8*)BurnMalloc(GalTilesSharedRomSize);
- nRet = BurnLoadRom(GalTempRom + 0x0000, GAL_ROM_OFFSET_TILES_SHARED + 0, 1); if (nRet) return 1;
- nRet = BurnLoadRom(GalTempRom + 0x1000, GAL_ROM_OFFSET_TILES_SHARED + 1, 1); if (nRet) return 1;
- nRet = BurnLoadRom(GalTempRom + 0x2000, GAL_ROM_OFFSET_TILES_SHARED + 2, 1); if (nRet) return 1;
- GfxDecode(GalNumChars, 3, 8, 8, Newsin7PlaneOffsets, CharXOffsets, CharYOffsets, 0x40, GalTempRom, GalChars);
- GfxDecode(GalNumSprites, 3, 16, 16, Newsin7PlaneOffsets, SpriteXOffsets, SpriteYOffsets, 0x100, GalTempRom + 0x800, GalSprites);
- BurnFree(GalTempRom);
-
- GalRenderBackgroundFunction = ScrambleDrawBackground;
- GalDrawBulletsFunction = ScrambleDrawBullets;
- GalColourDepth = 3;
- GalSpriteClipStart = 0;
- GalSpriteClipEnd = 246;
-
- KonamiPPIInit();
-
- return nRet;
-}
-
-static void MapMrkougar()
-{
- ZetOpen(0);
- ZetMemCallback(0x0000, 0xffff, 0);
- ZetMemCallback(0x0000, 0xffff, 1);
- ZetMemCallback(0x0000, 0xffff, 2);
- ZetSetReadHandler(MarsZ80Read);
- ZetSetWriteHandler(MrkougarZ80Write);
- ZetMapArea(0x0000, (GalZ80Rom1Size >= 0x4000) ? 0x3fff : GalZ80Rom1Size - 1, 0, GalZ80Rom1);
- ZetMapArea(0x0000, (GalZ80Rom1Size >= 0x4000) ? 0x3fff : GalZ80Rom1Size - 1, 2, GalZ80Rom1);
- ZetMapArea(0x4000, 0x47ff, 0, GalZ80Ram1);
- ZetMapArea(0x4000, 0x47ff, 1, GalZ80Ram1);
- ZetMapArea(0x4000, 0x47ff, 2, GalZ80Ram1);
- ZetMapArea(0x4800, 0x4bff, 0, GalVideoRam);
- ZetMapArea(0x4800, 0x4bff, 1, GalVideoRam);
- ZetMapArea(0x4800, 0x4bff, 2, GalVideoRam);
- ZetMapArea(0x4c00, 0x4fff, 0, GalVideoRam);
- ZetMapArea(0x4c00, 0x4fff, 1, GalVideoRam);
- ZetMapArea(0x4c00, 0x4fff, 2, GalVideoRam);
- ZetMapArea(0x5000, 0x50ff, 0, GalSpriteRam);
- ZetMapArea(0x5000, 0x50ff, 2, GalSpriteRam);
- ZetClose();
-}
-
-static void MrkougarPostLoad()
-{
- MarsDecrypt();
-
- MapMrkougar();
-}
-
-static INT32 MrkougarInit()
-{
- INT32 nRet;
-
- GalPostLoadCallbackFunction = MrkougarPostLoad;
- GalSoundType = GAL_SOUND_HARDWARE_TYPE_KONAMIAY8910;
-
- nRet = GalInit(); if (nRet) return 1;
- KonamiSoundInit();
-
- INT32 MrkougarPlaneOffsets[2] = {0, 4};
- INT32 MrkougarCharXOffsets[8] = {64, 65, 66, 67, 0, 1, 2, 3};
- INT32 MrkougarCharYOffsets[8] = {0, 8, 16, 24, 32, 40, 48, 56};
- INT32 MrkougarSpriteXOffsets[16] = {64, 65, 66, 67, 0, 1, 2, 3, 192, 193, 194, 195, 128, 129, 130, 131};
- INT32 MrkougarSpriteYOffsets[16] = {0, 8, 16, 24, 32, 40, 48, 56, 256, 264, 272, 280, 288, 296, 304, 312};
-
- GalTempRom = (UINT8*)BurnMalloc(GalTilesSharedRomSize);
- nRet = BurnLoadRom(GalTempRom + 0x0000, GAL_ROM_OFFSET_TILES_SHARED + 0, 1); if (nRet) return 1;
- GfxDecode(GalNumChars, 2, 8, 8, MrkougarPlaneOffsets, MrkougarCharXOffsets, MrkougarCharYOffsets, 0x80, GalTempRom, GalChars);
- GfxDecode(GalNumSprites, 2, 16, 16, MrkougarPlaneOffsets, MrkougarSpriteXOffsets, MrkougarSpriteYOffsets, 0x200, GalTempRom, GalSprites);
- BurnFree(GalTempRom);
-
- GalRenderBackgroundFunction = ScrambleDrawBackground;
- GalDrawBulletsFunction = ScrambleDrawBullets;
-
- KonamiPPIInit();
-
- return nRet;
-}
-
-static INT32 MrkougbInit()
-{
- INT32 nRet;
-
- GalPostLoadCallbackFunction = MapMrkougar;
- GalSoundType = GAL_SOUND_HARDWARE_TYPE_KONAMIAY8910;
-
- nRet = GalInit(); if (nRet) return 1;
- KonamiSoundInit();
-
- GalRenderBackgroundFunction = ScrambleDrawBackground;
- GalDrawBulletsFunction = ScrambleDrawBullets;
-
- KonamiPPIInit();
-
- return nRet;
-}
-
-static void HotshockPostLoad()
-{
- MapMrkougar();
-
- ZetOpen(0);
- ZetSetReadHandler(HotshockZ80Read);
- ZetSetWriteHandler(HotshockZ80Write);
- ZetClose();
-
- GalZ80Rom1[0x2ef9] = 0xc9;
-}
-
-static INT32 HotshockInit()
-{
- INT32 nRet;
-
- GalPostLoadCallbackFunction = HotshockPostLoad;
- GalSoundType = GAL_SOUND_HARDWARE_TYPE_KONAMIAY8910;
-
- nRet = GalInit(); if (nRet) return 1;
- KonamiSoundInit();
-
- ZetOpen(1);
- ZetSetInHandler(HotshockSoundZ80PortRead);
- ZetSetOutHandler(HotshockSoundZ80PortWrite);
- ZetClose();
-
- GalExtendTileInfoFunction = PiscesExtendTileInfo;
-
- GalSpriteClipStart = 7;
- GalSpriteClipEnd = 246;
-
- return nRet;
-}
-
-static void ConquerPostLoad()
-{
- MapMrkougar();
-
- ZetOpen(0);
- ZetSetReadHandler(HotshockZ80Read);
- ZetSetWriteHandler(HotshockZ80Write);
- ZetClose();
-}
-
-static INT32 ConquerInit()
-{
- INT32 nRet;
-
- GalPostLoadCallbackFunction = ConquerPostLoad;
- GalSoundType = GAL_SOUND_HARDWARE_TYPE_KONAMIAY8910;
-
- nRet = GalInit(); if (nRet) return 1;
- KonamiSoundInit();
-
- ZetOpen(1);
- ZetSetInHandler(HotshockSoundZ80PortRead);
- ZetSetOutHandler(HotshockSoundZ80PortWrite);
- ZetClose();
-
- GalExtendTileInfoFunction = PiscesExtendTileInfo;
-
- return nRet;
-}
-
-static void CavelonPostLoad()
-{
- MapTheend();
-
- ZetOpen(0);
- ZetSetReadHandler(CavelonZ80Read);
- ZetSetWriteHandler(CavelonZ80Write);
- ZetClose();
-}
-
-static INT32 CavelonInit()
-{
- INT32 nRet;
-
- GalPostLoadCallbackFunction = CavelonPostLoad;
- GalSoundType = GAL_SOUND_HARDWARE_TYPE_KONAMIAY8910;
-
- nRet = GalInit(); if (nRet) return 1;
- KonamiSoundInit();
-
- GalRenderBackgroundFunction = ScrambleDrawBackground;
- GalDrawBulletsFunction = ScrambleDrawBullets;
- GalExtendSpriteInfoFunction = MshuttleExtendSpriteInfo;
-
- KonamiPPIInit();
-
- filter_rc_set_src_gain(0, 0.20);
- filter_rc_set_src_gain(1, 0.20);
- filter_rc_set_src_gain(2, 0.20);
- filter_rc_set_src_gain(3, 0.20);
- filter_rc_set_src_gain(4, 0.20);
- filter_rc_set_src_gain(5, 0.20);
-
- return nRet;
-}
-
-static void MimonscrPostLoad()
-{
- ZetOpen(0);
- ZetMemCallback(0x0000, 0xffff, 0);
- ZetMemCallback(0x0000, 0xffff, 1);
- ZetMemCallback(0x0000, 0xffff, 2);
- ZetSetReadHandler(MimonscrZ80Read);
- ZetSetWriteHandler(MimonscrZ80Write);
- ZetMapArea(0x0000, (GalZ80Rom1Size >= 0x4000) ? 0x3fff : GalZ80Rom1Size - 1, 0, GalZ80Rom1);
- ZetMapArea(0x0000, (GalZ80Rom1Size >= 0x4000) ? 0x3fff : GalZ80Rom1Size - 1, 2, GalZ80Rom1);
- ZetMapArea(0x4000, 0x43ff, 0, GalVideoRam);
- ZetMapArea(0x4000, 0x43ff, 1, GalVideoRam);
- ZetMapArea(0x4000, 0x43ff, 2, GalVideoRam);
- ZetMapArea(0x4400, 0x47ff, 0, GalZ80Ram1);
- ZetMapArea(0x4400, 0x47ff, 1, GalZ80Ram1);
- ZetMapArea(0x4400, 0x47ff, 2, GalZ80Ram1);
- ZetMapArea(0x4800, 0x4bff, 0, GalVideoRam);
- ZetMapArea(0x4800, 0x4bff, 1, GalVideoRam);
- ZetMapArea(0x4800, 0x4bff, 2, GalVideoRam);
- ZetMapArea(0x5000, 0x50ff, 0, GalSpriteRam);
- ZetMapArea(0x5000, 0x50ff, 2, GalSpriteRam);
- ZetMapArea(0xc000, 0xffff, 0, GalZ80Rom1 + 0x4000);
- ZetMapArea(0xc000, 0xffff, 2, GalZ80Rom1 + 0x4000);
- ZetClose();
-}
-
-static INT32 MimonscrInit()
-{
- INT32 nRet;
-
- GalPostLoadCallbackFunction = MimonscrPostLoad;
- GalSoundType = GAL_SOUND_HARDWARE_TYPE_KONAMIAY8910;
-
- nRet = GalInit(); if (nRet) return 1;
- KonamiSoundInit();
-
- GalRenderBackgroundFunction = ScrambleDrawBackground;
- GalDrawBulletsFunction = ScrambleDrawBullets;
- GalExtendTileInfoFunction = MimonkeyExtendTileInfo;
- GalExtendSpriteInfoFunction = MimonkeyExtendSpriteInfo;
-
- KonamiPPIInit();
-
- filter_rc_set_src_gain(0, 0.20);
- filter_rc_set_src_gain(1, 0.20);
- filter_rc_set_src_gain(2, 0.20);
- filter_rc_set_src_gain(3, 0.20);
- filter_rc_set_src_gain(4, 0.20);
- filter_rc_set_src_gain(5, 0.20);
-
- return nRet;
-}
-
-struct BurnDriver BurnDrvTheend = {
- "theend", NULL, NULL, NULL, "1980",
- "The End\0", NULL, "Konami", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, TheendRomInfo, TheendRomName, NULL, NULL, TheendInputInfo, TheendDIPInfo,
- TheendInit, KonamiExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvTheends = {
- "theends", "theend", NULL, NULL, "1980",
- "The End (Stern)\0", NULL, "Konami (Stern license)", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, TheendsRomInfo, TheendsRomName, NULL, NULL, TheendInputInfo, TheendDIPInfo,
- TheendInit, KonamiExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvScramble = {
- "scramble", NULL, NULL, NULL, "1981",
- "Scramble\0", NULL, "Konami", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_HORSHOOT, 0,
- NULL, ScrambleRomInfo, ScrambleRomName, NULL, NULL, ScrambleInputInfo, ScrambleDIPInfo,
- ScrambleInit, KonamiExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvScrambles = {
- "scrambles", "scramble", NULL, NULL, "1981",
- "Scramble (Stern)\0", NULL, "Konami (Stern license)", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_HORSHOOT, 0,
- NULL, ScramblesRomInfo, ScramblesRomName, NULL, NULL, ScrambleInputInfo, ScrambleDIPInfo,
- ScrambleInit, KonamiExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvScramblebf = {
- "scramblebf", "scramble", NULL, NULL, "1981",
- "Scramble (Karateko, French bootleg)\0", NULL, "Karateko (bootleg)", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_BOOTLEG | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_HORSHOOT, 0,
- NULL, ScramblebfRomInfo, ScramblebfRomName, NULL, NULL, ScrambleInputInfo, ScrambleDIPInfo,
- ScrambleInit, KonamiExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvScrambp = {
- "scrambp", "scramble", NULL, NULL, "1981",
- "Impacto (Billport S.A., Spanish bootleg of Scramble)\0", NULL, "bootleg (Billport S.A.)", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_BOOTLEG | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_HORSHOOT, 0,
- NULL, ScrambpRomInfo, ScrambpRomName, NULL, NULL, ScrambleInputInfo, ScrambleDIPInfo,
- ScrambleInit, KonamiExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvScramce = {
- "scramce", "scramble", NULL, NULL, "1981",
- "Scramble (Centromatic S.A., Spanish bootleg)\0", NULL, "bootleg (Centromatic S.A.)", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_BOOTLEG | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_HORSHOOT, 0,
- NULL, ScramceRomInfo, ScramceRomName, NULL, NULL, ScrambleInputInfo, ScrambleDIPInfo,
- ScrambleInit, KonamiExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvScrampt = {
- "scrampt", "scramble", NULL, NULL, "1981",
- "Scramble (Petaco S.A., Spanish bootleg)\0", NULL, "bootleg (Petaco S.A.)", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_BOOTLEG | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_HORSHOOT, 0,
- NULL, ScramptRomInfo, ScramptRomName, NULL, NULL, ScrambleInputInfo, ScrambleDIPInfo,
- ScrambleInit, KonamiExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvScramrf = {
- "scramrf", "scramble", NULL, NULL, "1981",
- "Scramble (Recreativos Franco, Spanish bootleg)\0", NULL, "bootleg (Recreativos Franco)", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_BOOTLEG | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_HORSHOOT, 0,
- NULL, ScramrfRomInfo, ScramrfRomName, NULL, NULL, ScrambleInputInfo, ScrambleDIPInfo,
- ScrambleInit, KonamiExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvOffensiv = {
- "offensiv", "scramble", NULL, NULL, "1981",
- "Offensive (Spanish bootleg of Scramble)\0", NULL, "bootleg (Video Dens)", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_BOOTLEG | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_HORSHOOT, 0,
- NULL, OffensivRomInfo, OffensivRomName, NULL, NULL, ScrambleInputInfo, ScrambleDIPInfo,
- ScrambleInit, KonamiExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvScramblebb = {
- "scramblebb", "scramble", NULL, NULL, "1981",
- "Scramble (bootleg?)\0", NULL, "bootleg?", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_BOOTLEG | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_HORSHOOT, 0,
- NULL, ScramblebbRomInfo, ScramblebbRomName, NULL, NULL, ScrambleInputInfo, ScrambleDIPInfo,
- ScrambleInit, KonamiExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvStrfbomb = {
- "strfbomb", "scramble", NULL, NULL, "1981",
- "Strafe Bomb\0", NULL, "Omni", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_HORSHOOT, 0,
- NULL, StrfbombRomInfo, StrfbombRomName, NULL, NULL, ScrambleInputInfo, StrfbombDIPInfo,
- ScrambleInit, KonamiExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvExplorer = {
- "explorer", "scramble", NULL, NULL, "1981",
- "Explorer\0", NULL, "bootleg", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_BOOTLEG | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_HORSHOOT, 0,
- NULL, ExplorerRomInfo, ExplorerRomName, NULL, NULL, ExplorerInputInfo, ExplorerDIPInfo,
- ExplorerInit, KonamiExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvBomber = {
- "bomber", "scramble", NULL, NULL, "1981",
- "Bomber (bootleg of Scramble)\0", NULL, "bootleg", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_BOOTLEG | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_HORSHOOT, 0,
- NULL, BomberRomInfo, BomberRomName, NULL, NULL, ScrambleInputInfo, ScrambleDIPInfo,
- ScrambleInit, KonamiExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvAtlantis = {
- "atlantis", NULL, NULL, NULL, "1981",
- "Battle of Atlantis (set 1)\0", NULL, "Comsoft", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_HORSHOOT, 0,
- NULL, AtlantisRomInfo, AtlantisRomName, NULL, NULL, AtlantisInputInfo, AtlantisDIPInfo,
- AtlantisInit, KonamiExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvAtlantis2 = {
- "atlantis2", "atlantis", NULL, NULL, "1981",
- "Battle of Atlantis (set 2)\0", NULL, "Comsoft", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_HORSHOOT, 0,
- NULL, Atlantis2RomInfo, Atlantis2RomName, NULL, NULL, AtlantisInputInfo, AtlantisDIPInfo,
- AtlantisInit, KonamiExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvCkongs = {
- "ckongs", "ckong", NULL, NULL, "1981",
- "Crazy Kong (Scramble hardware)\0", NULL, "bootleg", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_BOOTLEG | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_PLATFORM, 0,
- NULL, CkongsRomInfo, CkongsRomName, NULL, NULL, CkongsInputInfo, CkongsDIPInfo,
- CkongsInit, KonamiExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvMars = {
- "mars", NULL, NULL, NULL, "1981",
- "Mars\0", NULL, "Artic", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_HORSHOOT, 0,
- NULL, MarsRomInfo, MarsRomName, NULL, NULL, MarsInputInfo, MarsDIPInfo,
- MarsInit, KonamiExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvDevilfsh = {
- "devilfsh", NULL, NULL, NULL, "1982",
- "Devil Fish\0", NULL, "Artic", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_MAZE, 0,
- NULL, DevilfshRomInfo, DevilfshRomName, NULL, NULL, DevilfshInputInfo, DevilfshDIPInfo,
- DevilfshInit, KonamiExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvNewsin7 = {
- "newsin7", NULL, NULL, NULL, "1983",
- "New Sinbad 7\0", NULL, "ATW USA, Inc.", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_MAZE, 0,
- NULL, Newsin7RomInfo, Newsin7RomName, NULL, NULL, DevilfshInputInfo, Newsin7DIPInfo,
- Newsin7Init, KonamiExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvMrkougar = {
- "mrkougar", NULL, NULL, NULL, "1984",
- "Mr. Kougar\0", NULL, "ATW", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_PLATFORM, 0,
- NULL, MrkougarRomInfo, MrkougarRomName, NULL, NULL, MrkougarInputInfo, MrkougarDIPInfo,
- MrkougarInit, KonamiExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvMrkougar2 = {
- "mrkougar2", "mrkougar", NULL, NULL, "1983",
- "Mr. Kougar (earlier)\0", NULL, "ATW", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_PLATFORM, 0,
- NULL, Mrkougar2RomInfo, Mrkougar2RomName, NULL, NULL, MrkougarInputInfo, MrkougarDIPInfo,
- MrkougarInit, KonamiExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvMrkougb = {
- "mrkougb", "mrkougar", NULL, NULL, "1983",
- "Mr. Kougar (bootleg set 1)\0", NULL, "bootleg", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_BOOTLEG | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_PLATFORM, 0,
- NULL, MrkougbRomInfo, MrkougbRomName, NULL, NULL, MrkougarInputInfo, MrkougarDIPInfo,
- MrkougbInit, KonamiExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvMrkougb2 = {
- "mrkougb2", "mrkougar", NULL, NULL, "1983",
- "Mr. Kougar (bootleg set 2)\0", NULL, "bootleg", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_BOOTLEG | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_PLATFORM, 0,
- NULL, Mrkougb2RomInfo, Mrkougb2RomName, NULL, NULL, MrkougarInputInfo, MrkougarDIPInfo,
- MrkougbInit, KonamiExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvHotshock = {
- "hotshock", NULL, NULL, NULL, "1982",
- "Hot Shocker\0", NULL, "E.G. Felaco (Domino license)", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED, 2, HARDWARE_GALAXIAN, GBF_MAZE, 0,
- NULL, HotshockRomInfo, HotshockRomName, NULL, NULL, HotshockInputInfo, HotshockDIPInfo,
- HotshockInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvHotshockb = {
- "hotshockb", "hotshock", NULL, NULL, "1982",
- "Hot Shocker (bootleg)\0", NULL, "bootleg", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_BOOTLEG, 2, HARDWARE_GALAXIAN, GBF_MAZE, 0,
- NULL, HotshockbRomInfo, HotshockbRomName, NULL, NULL, HotshockInputInfo, HotshockDIPInfo,
- HotshockInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriverD BurnDrvConquer = {
- "conquer", NULL, NULL, NULL, "1982",
- "Conquer\0", "Bad dump", "unknown", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED, 2, HARDWARE_GALAXIAN, GBF_MAZE, 0,
- NULL, ConquerRomInfo, ConquerRomName, NULL, NULL, HotshockInputInfo, HotshockDIPInfo,
- ConquerInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvCavelon = {
- "cavelon", NULL, NULL, NULL, "1983",
- "Cavelon\0", NULL, "Jetsoft", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_MAZE, 0,
- NULL, CavelonRomInfo, CavelonRomName, NULL, NULL, AtlantisInputInfo, CavelonDIPInfo,
- CavelonInit, KonamiExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvMimonscr = {
- "mimonscr", "mimonkey", NULL, NULL, "198?",
- "Mighty Monkey (bootleg on Scramble hardware)\0", NULL, "bootleg", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_BOOTLEG, 2, HARDWARE_GALAXIAN, GBF_HORSHOOT, 0,
- NULL, MimonscrRomInfo, MimonscrRomName, NULL, NULL, AtlantisInputInfo, MimonkeyDIPInfo,
- MimonscrInit, KonamiExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvMimonscra = {
- "mimonscra", "mimonkey", NULL, NULL, "198?",
- "Mighty Monkey (Kaina Games, bootleg on Scramble hardware)\0", NULL, "bootleg (Kaina Games)", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_BOOTLEG, 2, HARDWARE_GALAXIAN, GBF_HORSHOOT, 0,
- NULL, MimonscraRomInfo, MimonscraRomName, NULL, NULL, AtlantisInputInfo, MimonkeyDIPInfo,
- MimonscrInit, KonamiExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-// Scramble based hardware with one CPU and one AY8910
-static struct BurnRomInfo TriplepRomDesc[] = {
- { "triplep.2g", 0x01000, 0xc583a93d, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "triplep.2h", 0x01000, 0xc03ddc49, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "triplep.2k", 0x01000, 0xe83ca6b5, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "triplep.2l", 0x01000, 0x982cc3b9, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "triplep.5f", 0x00800, 0xd51cbd6f, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "triplep.5h", 0x00800, 0xf21c0059, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "tripprom.6e", 0x00020, 0x624f75df, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Triplep)
-STD_ROM_FN(Triplep)
-
-static struct BurnRomInfo TriplepaRomDesc[] = {
- { "td4.2h", 0x01000, 0x15a6d46a, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "tc3.2k", 0x01000, 0xbc26d2c0, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "te2.2l", 0x01000, 0x02025c10, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "td1.2m", 0x01000, 0xe9abc42b, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "ta6.5f", 0x00800, 0xd51cbd6f, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "ta7.5h", 0x00800, 0xf21c0059, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "ta.6e", 0x00020, 0x624f75df, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Triplepa)
-STD_ROM_FN(Triplepa)
-
-static struct BurnRomInfo KnockoutRomDesc[] = {
- { "knockout.2h", 0x01000, 0xeaaa848e, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "knockout.2k", 0x01000, 0xbc26d2c0, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "knockout.2l", 0x01000, 0x02025c10, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "knockout.2m", 0x01000, 0xe9abc42b, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "triplep.5f", 0x00800, 0xd51cbd6f, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "triplep.5h", 0x00800, 0xf21c0059, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "tripprom.6e", 0x00020, 0x624f75df, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Knockout)
-STD_ROM_FN(Knockout)
-
-static struct BurnRomInfo MarinerRomDesc[] = {
- { "tp1.2h", 0x01000, 0xdac1dfd0, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "tm2.2k", 0x01000, 0xefe7ca28, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "tm3.2l", 0x01000, 0x027881a6, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "tm4.2m", 0x01000, 0xa0fde7dc, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "tm5.2p", 0x01000, 0xd7ebcb8e, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "tm8.5f", 0x01000, 0x70ae611f, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "tm9.5h", 0x01000, 0x8e4e999e, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "t4.6e", 0x00020, 0xca42b6dd, BRF_GRA | GAL_ROM_PROM },
- { "t6.6p", 0x00100, 0xad208ccc, BRF_GRA | GAL_ROM_PROM }, // Background colour
- { "t5.7p", 0x00020, 0x1bd88cff, BRF_GRA | GAL_ROM_PROM }, // Char banking and star placement
-};
-
-STD_ROM_PICK(Mariner)
-STD_ROM_FN(Mariner)
-
-static struct BurnRomInfo EighthundredfathRomDesc[] = {
- { "tu1.2h", 0x01000, 0x5dd3d42f, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "tm2.2k", 0x01000, 0xefe7ca28, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "tm3.2l", 0x01000, 0x027881a6, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "tm4.2m", 0x01000, 0xa0fde7dc, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "tu5.2p", 0x01000, 0xf864a8a6, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "tm8.5f", 0x01000, 0x70ae611f, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "tm9.5h", 0x01000, 0x8e4e999e, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "t4.6e", 0x00020, 0xca42b6dd, BRF_GRA | GAL_ROM_PROM },
- { "t6.6p", 0x00100, 0xad208ccc, BRF_GRA | GAL_ROM_PROM }, // Background colour
- { "t5.7p", 0x00020, 0x1bd88cff, BRF_GRA | GAL_ROM_PROM }, // Char banking and star placement
-};
-
-STD_ROM_PICK(Eighthundredfath)
-STD_ROM_FN(Eighthundredfath)
-
-UINT8 __fastcall TriplepZ80PortRead(UINT16 a)
-{
- a &= 0xff;
-
- switch (a) {
- case 0x00: {
- // ???
- return 0;
- }
-
- case 0x01: {
- return AY8910Read(0);
- }
-
- case 0x02: {
- if (ZetGetPC(-1) == 0x015a) return 0xff;
- if (ZetGetPC(-1) == 0x0886) return 0x05;
- return 0;
- }
-
- case 0x03: {
- if (ZetGetPC(-1) == 0x015d) return 0x04;
- return 0;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Port Read => %02X\n"), a);
- }
- }
-
- return 0;
-}
-
-void __fastcall TriplepZ80PortWrite(UINT16 a, UINT8 d)
-{
- a &= 0xff;
-
- switch (a) {
- case 0x00: {
- AY8910Write(0, 1, d);
- return;
- }
-
- case 0x01: {
- AY8910Write(0, 0, d);
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Port Write => %02X, %02X\n"), a, d);
- }
- }
-}
-
-UINT8 __fastcall MarinerZ80Read(UINT16 a)
-{
- if (a >= 0x8000) {
- if (a == 0xb401) return 0x07;
- if (a == 0x9008) return 0x03;
-
- UINT32 Offset = a - 0x8000;
- UINT8 Result = 0xff;
- if (Offset & 0x0100) Result &= ppi8255_r(0, Offset & 3);
- if (Offset & 0x0200) Result &= ppi8255_r(1, Offset & 3);
- return Result;
- }
-
- switch (a) {
- case 0x7000: {
- // watchdog read
- return 0xff;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Read => %04X\n"), a);
- }
- }
-
- return 0xff;
-}
-
-static void TriplepPostLoad()
-{
- MapTheend();
-
- ZetOpen(0);
- ZetSetInHandler(TriplepZ80PortRead);
- ZetSetOutHandler(TriplepZ80PortWrite);
- ZetClose();
-}
-
-static INT32 TriplepInit()
-{
- INT32 nRet;
-
- GalPostLoadCallbackFunction = TriplepPostLoad;
- GalSoundType = GAL_SOUND_HARDWARE_TYPE_ZIGZAGAY8910;
-
- nRet = GalInit();
-
- GalRenderBackgroundFunction = ScrambleDrawBackground;
- GalDrawBulletsFunction = ScrambleDrawBullets;
-
- KonamiPPIInit();
- PPI1PortWriteA = NULL;
- PPI1PortWriteB = NULL;
-
- return nRet;
-}
-
-static void MarinerPostLoad()
-{
- GalTempRom = (UINT8*)BurnMalloc(0x1000);
- memcpy(GalTempRom, GalZ80Rom1 + 0x4000, 0x1000);
- memcpy(GalZ80Rom1 + 0x4800, GalTempRom + 0x0000, 0x800);
- memcpy(GalZ80Rom1 + 0x4000, GalTempRom + 0x0800, 0x800);
- BurnFree(GalTempRom);
-
- MapTheend();
-
- ZetOpen(0);
- ZetSetReadHandler(MarinerZ80Read);
- ZetSetInHandler(TriplepZ80PortRead);
- ZetSetOutHandler(TriplepZ80PortWrite);
- ZetMapArea(0x5800, 0x67ff, 0, GalZ80Rom1 + 0x4000);
- ZetMapArea(0x5800, 0x67ff, 2, GalZ80Rom1 + 0x4000);
- ZetClose();
-}
-
-static INT32 MarinerInit()
-{
- INT32 nRet;
-
- GalPostLoadCallbackFunction = MarinerPostLoad;
- GalSoundType = GAL_SOUND_HARDWARE_TYPE_ZIGZAGAY8910;
-
- nRet = GalInit();
-
- GalCalcPaletteFunction = MarinerCalcPalette;
- GalRenderBackgroundFunction = MarinerDrawBackground;
- GalDrawBulletsFunction = ScrambleDrawBullets;
- GalExtendTileInfoFunction = MarinerExtendTileInfo;
-
- KonamiPPIInit();
- PPI1PortWriteA = NULL;
- PPI1PortWriteB = NULL;
-
- return nRet;
-}
-
-struct BurnDriver BurnDrvTriplep = {
- "triplep", NULL, NULL, NULL, "1982",
- "Triple Punch (set 1)\0", NULL, "KKI", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_MAZE, 0,
- NULL, TriplepRomInfo, TriplepRomName, NULL, NULL, AmidarInputInfo, TriplepDIPInfo,
- TriplepInit, KonamiExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvTriplepa = {
- "triplepa", "triplep", NULL, NULL, "1982",
- "Triple Punch (set 2)\0", NULL, "KKK", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_MAZE, 0,
- NULL, TriplepaRomInfo, TriplepaRomName, NULL, NULL, AmidarInputInfo, TriplepDIPInfo,
- TriplepInit, KonamiExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvKnockout = {
- "knockout", "triplep", NULL, NULL, "1982",
- "Knock Out!!\0", NULL, "KKK", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_MAZE, 0,
- NULL, KnockoutRomInfo, KnockoutRomName, NULL, NULL, AmidarInputInfo, TriplepDIPInfo,
- TriplepInit, KonamiExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvMariner = {
- "mariner", NULL, NULL, NULL, "1981",
- "Mariner\0", NULL, "Armenip", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_HORSHOOT, 0,
- NULL, MarinerRomInfo, MarinerRomName, NULL, NULL, ScrambleInputInfo, ScrambleDIPInfo,
- MarinerInit, KonamiExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvEighthundredfath = {
- "800fath", "mariner", NULL, NULL, "1981",
- "800 Fathoms\0", NULL, "Amenip (US Billiards Inc. license)", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE |BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_HORSHOOT, 0,
- NULL, EighthundredfathRomInfo, EighthundredfathRomName, NULL, NULL, ScrambleInputInfo, ScrambleDIPInfo,
- MarinerInit, KonamiExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-// Scorpion hardware - based on Scramble but with a third AY8910 and a speech chip
-static struct BurnRomInfo ScorpionRomDesc[] = {
- { "1.2d", 0x01000, 0xba1219b4, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2.2f", 0x01000, 0xc3909ab6, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "3.2g", 0x01000, 0x43261352, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "4.2h", 0x01000, 0xaba2276a, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "5.2k", 0x01000, 0x952f78f2, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "igr_scorpion_32_a4.ic12", 0x01000, 0x361b8a36, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "igr_scorpion_32_a5.ic13", 0x01000, 0xaddecdd4, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
-
- { "igr_scorpion_32_f5.ic72", 0x01000, 0x1e5da9d6, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "igr_scorpion_32_h5.ic73", 0x01000, 0xa57adb0a, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "mmi6331_6e.ic59", 0x00020, 0x4e3caeab, BRF_GRA | GAL_ROM_PROM },
-
- { "igr_scorpion_32_a3.ic25", 0x01000, 0x04abf178, BRF_OPT | BRF_SND }, // Speech samples?
- { "igr_scorpion_32_a2.ic24", 0x01000, 0x90352dd4, BRF_OPT | BRF_SND },
- { "igr_scorpion_32_a1.ic23", 0x01000, 0x3bf2452d, BRF_OPT | BRF_SND },
-};
-
-STD_ROM_PICK(Scorpion)
-STD_ROM_FN(Scorpion)
-
-static struct BurnRomInfo ScorpionaRomDesc[] = {
- { "igr_scorpion_32_d2.ic109", 0x01000, 0xc5b9daeb, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "igr_scorpion_32_e2.ic110", 0x01000, 0x82308d05, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "igr_scorpion_32_g2.ic111", 0x01000, 0x756b09cd, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "igr_scorpion_32_h2.ic112", 0x01000, 0x667ad8be, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "igr_scorpion_16_l2.ic114", 0x00800, 0x6623da33, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "igr_scorpion_16_k2.ic113", 0x00800, 0x42ec34d8, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "igr_scorpion_32_a4.ic12", 0x01000, 0x361b8a36, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "igr_scorpion_32_a5.ic13", 0x01000, 0xaddecdd4, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
-
- { "igr_scorpion_32_f5.ic72", 0x01000, 0x1e5da9d6, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "igr_scorpion_32_h5.ic73", 0x01000, 0xa57adb0a, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "mmi6331_6e.ic59", 0x00020, 0x4e3caeab, BRF_GRA | GAL_ROM_PROM },
-
- { "igr_scorpion_32_a3.ic25", 0x01000, 0x04abf178, BRF_OPT | BRF_SND }, // Speech samples?
- { "igr_scorpion_32_a2.ic24", 0x01000, 0x90352dd4, BRF_OPT | BRF_SND },
- { "igr_scorpion_32_a1.ic23", 0x01000, 0x3bf2452d, BRF_OPT | BRF_SND },
-};
-
-STD_ROM_PICK(Scorpiona)
-STD_ROM_FN(Scorpiona)
-
-static struct BurnRomInfo ScorpionbRomDesc[] = {
- { "ic109.2d", 0x01000, 0xf54688c9, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "ic110.2e", 0x01000, 0x91aaaa12, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "ic111.2g", 0x01000, 0x4c3720da, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "ic112.2h", 0x01000, 0x53e2a983, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "ic113.2k", 0x01000, 0xe4ad299a, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "igr_scorpion_32_a4.ic12", 0x01000, 0x361b8a36, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "igr_scorpion_32_a5.ic13", 0x01000, 0xaddecdd4, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
-
- { "igr_scorpion_32_f5.ic72", 0x01000, 0x1e5da9d6, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "igr_scorpion_32_h5.ic73", 0x01000, 0xa57adb0a, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "mmi6331_6e.ic59", 0x00020, 0x4e3caeab, BRF_GRA | GAL_ROM_PROM },
-
- { "igr_scorpion_32_a3.ic25", 0x01000, 0x04abf178, BRF_OPT | BRF_SND }, // Speech samples?
- { "igr_scorpion_32_a2.ic24", 0x01000, 0x90352dd4, BRF_OPT | BRF_SND },
- { "igr_scorpion_32_a1.ic23", 0x01000, 0x3bf2452d, BRF_OPT | BRF_SND },
-};
-
-STD_ROM_PICK(Scorpionb)
-STD_ROM_FN(Scorpionb)
-
-static struct BurnRomInfo ScorpionmcRomDesc[] = {
- { "p1.bin", 0x00800, 0x58818d88, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "p2.bin", 0x00800, 0x8bec5f9f, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "p3.bin", 0x00800, 0x24b7fdff, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "p4.bin", 0x00800, 0x9082e2f0, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "p5.bin", 0x00800, 0x20387fc0, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "p6.bin", 0x00800, 0xf66c48e1, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "p7.bin", 0x00800, 0x931e34c7, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "p8.bin", 0x00800, 0xab5ab61d, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "p9.bin", 0x01000, 0xb551b974, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "p10.bin", 0x00800, 0xa7bd8d20, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "h.bin", 0x01000, 0x1e5da9d6, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "k.bin", 0x01000, 0xa57adb0a, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "mmi6331.bpr", 0x00020, 0x6a0c7d87, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Scorpionmc)
-STD_ROM_FN(Scorpionmc)
-
-static struct BurnRomInfo AracnisRomDesc[] = {
- { "00sc.bin", 0x01000, 0xc7e0d6b9, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "01sc.bin", 0x01000, 0x03eb27dc, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "02sc.bin", 0x01000, 0xf3d49d4f, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "03sc.bin", 0x01000, 0x0e741984, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "05sc.bin", 0x01000, 0xf27ee3e4, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "06sc.bin", 0x00800, 0xfdfc2c82, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "08sc.1h", 0x01000, 0x1e5da9d6, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "07sc.1k", 0x01000, 0xa57adb0a, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "mmi6331-1.6l", 0x00020, 0x24652bc4, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Aracnis)
-STD_ROM_FN(Aracnis)
-
-UINT8 __fastcall ScorpionmcZ80Read(UINT16 a)
-{
- switch (a) {
- case 0xa000: {
- return GalInput[0] | GalDip[0];
- }
-
- case 0xa800: {
- return GalInput[1] | GalDip[1];
- }
-
- case 0xb001: {
- return GalInput[2] | GalDip[2];
- }
-
- case 0xb002: {
- return GalInput[3] | GalDip[3];
- }
-
- case 0xb800: {
- // watchdog read
- return 0xff;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Read => %04X\n"), a);
- }
- }
-
- return 0xff;
-}
-
-void __fastcall ScorpionmcZ80Write(UINT16 a, UINT8 d)
-{
- if (a >= 0x9800 && a <= 0x98ff) {
- INT32 Offset = a - 0x9800;
-
- GalSpriteRam[Offset] = d;
-
- if (Offset < 0x40) {
- if ((Offset & 0x01) == 0) {
- GalScrollVals[Offset >> 1] = d;
- }
- }
-
- return;
- }
-
- switch (a) {
- case 0xa000:
- case 0xa001:
- case 0xa002: {
- GalGfxBank[a - 0xa000] = d;
- return;
- }
-
- case 0xa003: {
- // coin_count_0_w
- return;
- }
-
- case 0xa004:
- case 0xa005:
- case 0xa006:
- case 0xa007: {
- GalaxianLfoFreqWrite(a - 0xa004, d);
- return;
- }
-
- case 0xa800:
- case 0xa801:
- case 0xa802:
- case 0xa803:
- case 0xa804:
- case 0xa805:
- case 0xa806:
- case 0xa807: {
- GalaxianSoundWrite(a - 0xa800, d);
- return;
- }
-
- case 0xb001: {
- GalIrqFire = d & 1;
- return;
- }
-
- case 0xb004: {
- GalStarsEnable = d & 0x01;
- if (!GalStarsEnable) GalStarsScrollPos = -1;
- return;
- }
-
- case 0xb006: {
- GalFlipScreenX = d & 1;
- return;
- }
-
- case 0xb007: {
- GalFlipScreenY = d & 1;
- return;
- }
-
- case 0xb800: {
- GalPitch = d;
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Write => %04X, %02X\n"), a, d);
- }
- }
-}
-
-UINT8 __fastcall ScorpionSoundZ80Read(UINT16 a)
-{
- switch (a) {
- case 0x3000: {
- return 0xff;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #2 Read => %04X\n"), a);
- }
- }
-
- return 0xff;
-}
-
-UINT8 __fastcall ScorpionSoundZ80PortRead(UINT16 a)
-{
- a &= 0xff;
-
- UINT8 Result = 0xff;
- if (a & 0x08) Result &= AY8910Read(2);
- if (a & 0x20) Result &= AY8910Read(0);
- if (a & 0x80) Result &= AY8910Read(1);
- return Result;
-}
-
-void __fastcall ScorpionSoundZ80PortWrite(UINT16 a, UINT8 d)
-{
- a &= 0xff;
-
- if (a & 0x04) AY8910Write(2, 0, d);
- if (a & 0x08) AY8910Write(2, 1, d);
- if (a & 0x10) AY8910Write(0, 0, d);
- if (a & 0x20) AY8910Write(0, 1, d);
- if (a & 0x40) AY8910Write(1, 0, d);
- if (a & 0x80) AY8910Write(1, 1, d);
-}
-
-static UINT8 ScorpionProtectionRead()
-{
- UINT16 ParityBits;
- UINT8 Parity = 0;
-
- for (ParityBits = ScrambleProtectionState & 0xce29; ParityBits != 0; ParityBits >>= 1) {
- if (ParityBits & 1) Parity++;
- }
-
- return Parity;
-}
-
-static void ScorpionProtectionWrite(UINT8 d)
-{
- if (!(d & 0x20)) ScrambleProtectionState = 0x0000;
- if (!(d & 0x10)) ScrambleProtectionState = (ScrambleProtectionState << 1) | (~ScorpionProtectionRead() & 1);
-}
-
-static void ScorpionPostLoad()
-{
- GalTempRom = (UINT8*)BurnMalloc(0x1000);
- memcpy(GalTempRom, GalZ80Rom1 + 0x4000, 0x1000);
- memcpy(GalZ80Rom1 + 0x4800, GalTempRom + 0x0000, 0x800);
- memcpy(GalZ80Rom1 + 0x4000, GalTempRom + 0x0800, 0x800);
- BurnFree(GalTempRom);
-
- MapTheend();
-
- ZetOpen(0);
- ZetMapArea(0x5800, 0x67ff, 0, GalZ80Rom1 + 0x4000);
- ZetMapArea(0x5800, 0x67ff, 2, GalZ80Rom1 + 0x4000);
- ZetClose();
-}
-
-static INT32 ScorpionInit()
-{
- INT32 nRet;
-
- GalPostLoadCallbackFunction = ScorpionPostLoad;
- GalSoundType = GAL_SOUND_HARDWARE_TYPE_SCORPIONAY8910;
-
- nRet = GalInit(); if (nRet) return 1;
- KonamiSoundInit();
-
- ZetOpen(1);
- ZetSetReadHandler(ScorpionSoundZ80Read);
- ZetSetInHandler(ScorpionSoundZ80PortRead);
- ZetSetOutHandler(ScorpionSoundZ80PortWrite);
- ZetClose();
-
- GalRenderBackgroundFunction = ScrambleDrawBackground;
- GalDrawBulletsFunction = ScrambleDrawBullets;
- GalExtendTileInfoFunction = Batman2ExtendTileInfo;
- GalExtendSpriteInfoFunction = UpperExtendSpriteInfo;
-
- KonamiPPIInit();
- PPI1PortReadC = ScorpionProtectionRead;
- PPI1PortWriteC = ScorpionProtectionWrite;
-
- return nRet;
-}
-
-static void ScorpionmcPostLoad()
-{
- MapMooncrst();
-
- ZetOpen(0);
- ZetSetReadHandler(ScorpionmcZ80Read);
- ZetSetWriteHandler(ScorpionmcZ80Write);
- ZetMapArea(0x4000, 0x47ff, 0, GalZ80Ram1);
- ZetMapArea(0x4000, 0x47ff, 1, GalZ80Ram1);
- ZetMapArea(0x4000, 0x47ff, 2, GalZ80Ram1);
- ZetMapArea(0x5000, 0x67ff, 0, GalZ80Rom1 + 0x4000);
- ZetMapArea(0x5000, 0x67ff, 2, GalZ80Rom1 + 0x4000);
- ZetMapArea(0x9400, 0x97ff, 0, GalVideoRam);
- ZetMapArea(0x9400, 0x97ff, 1, GalVideoRam);
- ZetMapArea(0x9400, 0x97ff, 2, GalVideoRam);
- ZetClose();
-}
-
-static INT32 ScorpionmcInit()
-{
- INT32 nRet;
-
- GalPostLoadCallbackFunction = ScorpionmcPostLoad;
-
- nRet = GalInit();
-
- GalExtendTileInfoFunction = Batman2ExtendTileInfo;
- GalExtendSpriteInfoFunction = UpperExtendSpriteInfo;
-
- return nRet;
-}
-
-struct BurnDriver BurnDrvScorpion = {
- "scorpion", NULL, NULL, NULL, "1982",
- "Scorpion (set 1)\0", "Incomplete Sound", "Zaccaria", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_HORSHOOT, 0,
- NULL, ScorpionRomInfo, ScorpionRomName, NULL, NULL, AtlantisInputInfo, ScorpionDIPInfo,
- ScorpionInit, KonamiExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvScorpiona = {
- "scorpiona", "scorpion", NULL, NULL, "1982",
- "Scorpion (set 2)\0", "Incomplete Sound", "Zaccaria", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_HORSHOOT, 0,
- NULL, ScorpionaRomInfo, ScorpionaRomName, NULL, NULL, AtlantisInputInfo, ScorpionDIPInfo,
- ScorpionInit, KonamiExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvScorpionb = {
- "scorpionb", "scorpion", NULL, NULL, "1982",
- "Scorpion (set 3)\0", "Incomplete Sound", "Zaccaria", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_HORSHOOT, 0,
- NULL, ScorpionbRomInfo, ScorpionbRomName, NULL, NULL, AtlantisInputInfo, ScorpionDIPInfo,
- ScorpionInit, KonamiExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvScorpionmc = {
- "scorpionmc", "scorpion", NULL, NULL, "19??",
- "Scorpion (Moon Cresta hardware)\0", NULL, "Dorneer", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_HORSHOOT, 0,
- NULL, ScorpionmcRomInfo, ScorpionmcRomName, NULL, NULL, ScorpionmcInputInfo, ScorpionmcDIPInfo,
- ScorpionmcInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvAracnis = {
- "aracnis", "scorpion", NULL, NULL, "19??",
- "Aracnis (bootleg of Scorpion on Moon Cresta hardware)\0", NULL, "bootleg", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_BOOTLEG | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_HORSHOOT, 0,
- NULL, AracnisRomInfo, AracnisRomName, NULL, NULL, AracnisInputInfo, AracnisDIPInfo,
- ScorpionmcInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-// A.D. 2083 hardware - based on Scramble with TMS5100A for speech
-static struct BurnRomInfo Ad2083RomDesc[] = {
- { "ad0.10o", 0x02000, 0x4d34325a, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "ad1.9o", 0x02000, 0x0f37134b, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "ad2.8o", 0x02000, 0xbcfa655f, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "ad3.7o", 0x02000, 0x60655225, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "ad1s.3d", 0x02000, 0x80f39b0f, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "ad2s.4d", 0x01000, 0x5177fe2b, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
-
- { "ad4.5k", 0x02000, 0x388cdd21, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "ad5.3k", 0x02000, 0xf53f3449, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "prom-am27s19dc.1m", 0x00020, 0x2759aebd, BRF_GRA | GAL_ROM_PROM },
-
- { "ad1v.9a", 0x01000, 0x4cb93fff, BRF_OPT | BRF_SND }, // TMS5110A data
- { "ad2v.10a", 0x01000, 0x4b530ea7, BRF_OPT | BRF_SND }, // TMS5110A data
- { "prom-sn74s188.8a", 0x00020, 0xc58a4f6a, BRF_OPT | BRF_SND }, // TMS5110A data
-};
-
-STD_ROM_PICK(Ad2083)
-STD_ROM_FN(Ad2083)
-
-UINT8 __fastcall Ad2083Z80Read(UINT16 a)
-{
- switch (a) {
- case 0x7000: {
- // watchdog read
- return 0xff;
- }
-
- case 0x8000: {
- return GalInput[0] | GalDip[0];
- }
-
- case 0x8001: {
- return GalInput[1] | GalDip[1];
- }
-
- case 0x8002: {
- return GalInput[2] | GalDip[2];
- }
-
- case 0x8003: {
- return GalInput[3] | GalDip[3];
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Read => %04X\n"), a);
- }
- }
-
- return 0xff;
-}
-
-void __fastcall Ad2083Z80Write(UINT16 a, UINT8 d)
-{
- if (a >= 0x5000 && a <= 0x50ff) {
- INT32 Offset = a - 0x5000;
-
- GalSpriteRam[Offset] = d;
-
- if (Offset < 0x40) {
- if ((Offset & 0x01) == 0) {
- GalScrollVals[Offset >> 1] = d;
- }
- }
-
- return;
- }
-
- switch (a) {
- case 0x6004: {
- GalFlipScreenX = d & 1;
- GalFlipScreenY = d & 1;
- return;
- }
-
- case 0x6800: {
- // coin_counter_2_w
- return;
- }
-
- case 0x6801: {
- GalIrqFire = d & 1;
- return;
- }
-
- case 0x6802: {
- // coin_counter_0_w
- return;
- }
-
- case 0x6803: {
- GalBackgroundBlue = d & 1;
- return;
- }
-
- case 0x6805: {
- // coin_counter_1_w
- return;
- }
-
- case 0x6806: {
- GalBackgroundRed = d & 1;
- return;
- }
-
- case 0x6807: {
- GalBackgroundGreen = d & 1;
- return;
- }
-
- case 0x8000: {
- GalSoundLatch = d;
- return;
- }
-
- case 0x9000: {
- ZetClose();
- ZetOpen(1);
- ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
- ZetClose();
- ZetOpen(0);
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Write => %04X, %02X\n"), a, d);
- }
- }
-}
-
-static void Ad2083PostLoad()
-{
- UINT8 c;
-
- for (UINT32 i = 0; i < GalZ80Rom1Size; i++) {
- c = GalZ80Rom1[i] ^ 0x35;
- c = BITSWAP08(c, 6, 2, 5, 1, 7, 3, 4, 0);
- GalZ80Rom1[i] = c;
- }
-
- MapTheend();
-
- ZetOpen(0);
- ZetSetReadHandler(Ad2083Z80Read);
- ZetSetWriteHandler(Ad2083Z80Write);
- ZetMapArea(0xa000, 0xdfff, 0, GalZ80Rom1 + 0x4000);
- ZetMapArea(0xa000, 0xdfff, 2, GalZ80Rom1 + 0x4000);
- ZetMapArea(0xe800, 0xebff, 0, GalZ80Ram1 + 0x800);
- ZetMapArea(0xe800, 0xebff, 1, GalZ80Ram1 + 0x800);
- ZetMapArea(0xe800, 0xebff, 2, GalZ80Ram1 + 0x800);
- ZetClose();
-}
-
-static INT32 Ad2083Init()
-{
- INT32 nRet;
-
- GalPostLoadCallbackFunction = Ad2083PostLoad;
- GalSoundType = GAL_SOUND_HARDWARE_TYPE_AD2083AY8910;
-
- nRet = GalInit(); if (nRet) return 1;
- KonamiSoundInit();
-
- ZetOpen(1);
- ZetSetInHandler(HotshockSoundZ80PortRead);
- ZetSetOutHandler(HotshockSoundZ80PortWrite);
- ZetClose();
-
- GalRenderBackgroundFunction = TurtlesDrawBackground;
- GalDrawBulletsFunction = ScrambleDrawBullets;
- GalExtendTileInfoFunction = Ad2083ExtendTileInfo;
- GalExtendSpriteInfoFunction = Ad2083ExtendSpriteInfo;
-
- return nRet;
-}
-
-struct BurnDriver BurnDrvAd2083 = {
- "ad2083", NULL, NULL, NULL, "1983",
- "A.D. 2083\0", "Incomplete Sound", "Midcoin", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_HORSHOOT, 0,
- NULL, Ad2083RomInfo, Ad2083RomName, NULL, NULL, Ad2083InputInfo, Ad2083DIPInfo,
- Ad2083Init, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-// SF-X hardware - based on Scramble with extra Z80 and 8255 driving a DAC based sample player
-static struct BurnRomInfo SfxRomDesc[] = {
- { "sfx_b-0.1j", 0x02000, 0xe5bc6952, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "1.1c", 0x01000, 0x1b3c48e7, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "22.1d", 0x01000, 0xed44950d, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "23.1e", 0x01000, 0xf44a3ca0, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "27.1a", 0x01000, 0xed86839f, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "24.1g", 0x01000, 0xe6d7dc74, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "5.1h", 0x01000, 0xd1e8d390, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "5.5j", 0x01000, 0x59028fb6, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "6.6j", 0x01000, 0x5427670f, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
-
- { "1.1j", 0x01000, 0x2f172c58, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG3 },
- { "2.2j", 0x01000, 0xa6ad2f6b, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG3 },
- { "3.3j", 0x01000, 0xfa1274fa, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG3 },
- { "4.4j", 0x01000, 0x1cd33f3a, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG3 },
- { "10.3h", 0x01000, 0xb833a15b, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG3 },
- { "11.4h", 0x01000, 0xcbd76ec2, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG3 },
-
- { "28.5a", 0x01000, 0xd73a8252, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "29.5c", 0x01000, 0x1401ccf2, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "6331.9g", 0x00020, 0xca1d9ccd, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Sfx)
-STD_ROM_FN(Sfx)
-
-static struct BurnRomInfo SkelagonRomDesc[] = {
- { "31.bin", 0x01000, 0xae6f8647, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "32.bin", 0x01000, 0xa28c5838, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "33.bin", 0x01000, 0x32f7e99c, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "37.bin", 0x01000, 0x47f68a31, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "24.bin", 0x01000, 0xe6d7dc74, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "35.bin", 0x01000, 0x5b2a0158, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "36.bin", 0x01000, 0xf53ead29, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "5.5j", 0x01000, 0x59028fb6, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "6.6j", 0x01000, 0x5427670f, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
-
- { "1.1j", 0x01000, 0x2f172c58, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG3 },
- { "2.2j", 0x01000, 0xa6ad2f6b, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG3 },
- { "3.3j", 0x01000, 0xfa1274fa, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG3 },
- { "4.4j", 0x01000, 0x1cd33f3a, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG3 },
- { "10.bin", 0x01000, 0x2c719de2, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG3 },
- { "8.bin", 0x01000, 0x350379dd, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG3 },
-
- { "38.bin", 0x01000, 0x2fffa8b1, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "39.bin", 0x01000, 0xa854b5de, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "6331.9g", 0x00020, 0xca1d9ccd, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Skelagon)
-STD_ROM_FN(Skelagon)
-
-static struct BurnRomInfo MonsterzRomDesc[] = {
- { "b-1e.a1", 0x01000, 0x97886542, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "b-2e.c1", 0x01000, 0x184ffcb4, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "b-3e.d1", 0x01000, 0xb7b10ac7, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "b-4e.e1", 0x01000, 0xfb02c736, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "b-5e.g1", 0x01000, 0xb2788ab9, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "b-6e.h1", 0x01000, 0x77d7aa8d, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "a-1e.k1", 0x01000, 0xb88ba44e, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "a-2.k2", 0x01000, 0x8913c94e, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "a-3e.k3", 0x01000, 0xa8fa5095, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "a-4.k4", 0x01000, 0x93f81317, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
-
- { "a-5e.k5", 0x01000, 0xb5bcdb4e, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG3 },
- { "a-6.k6", 0x01000, 0x24832b2e, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG3 },
- { "a-7e.k7", 0x01000, 0x20ebea81, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG3 },
- { "a-8.k8", 0x01000, 0xb833a15b, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG3 },
- { "a-9.k9", 0x01000, 0xcbd76ec2, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG3 },
-
- { "b-7e.a5", 0x01000, 0xddd4158d, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "b-8e.c5", 0x01000, 0xb1331b4c, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "prom.g9", 0x00020, 0xb7ea00d7, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Monsterz)
-STD_ROM_FN(Monsterz)
-
-void __fastcall SfxZ80Write(UINT16 a, UINT8 d)
-{
- if (a >= 0x5000 && a <= 0x50ff) {
- INT32 Offset = a - 0x5000;
-
- GalSpriteRam[Offset] = d;
-
- if (Offset < 0x40) {
- if ((Offset & 0x01) == 0) {
- GalScrollVals[Offset >> 1] = d;
- }
- }
-
- return;
- }
-
- if (a >= 0x8000) {
- INT32 Offset = a - 0x8000;
- if (Offset & 0x0100) ppi8255_w(0, Offset & 3, d);
- if (Offset & 0x0200) ppi8255_w(1, Offset & 3, d);
- return;
- }
-
- switch (a) {
- case 0x6801: {
- GalIrqFire = d & 1;
- return;
- }
-
- case 0x6802: {
- // coin_count_0_w
- return;
- }
-
- case 0x6800: {
- GalBackgroundRed = d & 1;
- return;
- }
-
- case 0x6803: {
- GalBackgroundBlue = d & 1;
- return;
- }
-
- case 0x6804: {
- GalStarsEnable = d & 0x01;
- if (!GalStarsEnable) GalStarsScrollPos = -1;
- return;
- }
-
- case 0x6805: {
- GalBackgroundGreen = d & 1;
- return;
- }
-
- case 0x6806: {
- GalFlipScreenX = d & 1;
- return;
- }
-
- case 0x6807: {
- GalFlipScreenY = d & 1;
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Write => %04X, %02X\n"), a, d);
- }
- }
-}
-
-UINT8 __fastcall SfxSampleZ80Read(UINT16 a)
-{
- switch (a) {
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #3 Read => %04X\n"), a);
- }
- }
-
- return 0;
-}
-
-void __fastcall SfxSampleZ80Write(UINT16 a, UINT8 d)
-{
- switch (a) {
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #3 Write => %04X, %02X\n"), a, d);
- }
- }
-}
-
-UINT8 __fastcall SfxSampleZ80PortRead(UINT16 a)
-{
- a &= 0xff;
-
- UINT8 Result = 0xff;
- if (a & 0x04) Result &= ppi8255_r(2, a & 3);
- return Result;
-}
-
-void __fastcall SfxSampleZ80PortWrite(UINT16 a, UINT8 d)
-{
- a &= 0xff;
-
- if (a & 0x04) ppi8255_w(2, a & 3, d);
- if (a & 0x10) DACSignedWrite(0, d);
-}
-
-static UINT8 SfxSoundLatch2Read()
-{
- return GalSoundLatch2;
-}
-
-static void SfxPostLoad()
-{
- MapTheend();
-
- ZetOpen(0);
- ZetSetWriteHandler(SfxZ80Write);
- ZetMapArea(0x7000, 0x7fff, 0, GalZ80Rom1 + 0x4000);
- ZetMapArea(0x7000, 0x7fff, 2, GalZ80Rom1 + 0x4000);
- ZetMapArea(0xc000, 0xefff, 0, GalZ80Rom1 + 0x5000);
- ZetMapArea(0xc000, 0xefff, 2, GalZ80Rom1 + 0x5000);
- ZetClose();
-
- GalTempRom = (UINT8*)BurnMalloc(GalZ80Rom1Size);
- memcpy(GalTempRom, GalZ80Rom1, GalZ80Rom1Size);
- memcpy(GalZ80Rom1 + 0x0000, GalTempRom + 0x0000, 0x1000);
- memcpy(GalZ80Rom1 + 0x7000, GalTempRom + 0x1000, 0x1000);
- memcpy(GalZ80Rom1 + 0x1000, GalTempRom + 0x2000, 0x6000);
- BurnFree(GalTempRom);
-
- ZetOpen(2);
- ZetSetReadHandler(SfxSampleZ80Read);
- ZetSetWriteHandler(SfxSampleZ80Write);
- ZetSetInHandler(SfxSampleZ80PortRead);
- ZetSetOutHandler(SfxSampleZ80PortWrite);
- ZetMapArea(0x0000, GalZ80Rom3Size - 1, 0, GalZ80Rom3);
- ZetMapArea(0x0000, GalZ80Rom3Size - 1, 2, GalZ80Rom3);
- ZetMapArea(0x8000, 0x83ff, 0, GalZ80Ram3);
- ZetMapArea(0x8000, 0x83ff, 1, GalZ80Ram3);
- ZetMapArea(0x8000, 0x83ff, 2, GalZ80Ram3);
- ZetClose();
-
- nGalCyclesTotal[2] = (14318000 / 8) / 60;
-}
-
-static INT32 SfxInit()
-{
- INT32 nRet;
-
- GalPostLoadCallbackFunction = SfxPostLoad;
- GalSoundType = GAL_SOUND_HARDWARE_TYPE_SFXAY8910DAC;
-
- nRet = GalInit(); if (nRet) return 1;
- KonamiSoundInit();
-
- GalRenderBackgroundFunction = ScrambleDrawBackground;
- GalDrawBulletsFunction = ScrambleDrawBullets;
- GalExtendTileInfoFunction = UpperExtendTileInfo;
-
- ppi8255_init(3);
- PPI0PortReadA = KonamiPPIReadIN0;
- PPI0PortReadB = KonamiPPIReadIN1;
- PPI0PortReadC = KonamiPPIReadIN2;
- PPI1PortReadC = KonamiPPIReadIN3;
- PPI1PortWriteA = KonamiSoundLatchWrite;
- PPI1PortWriteB = KonamiSoundControlWrite;
- PPI2PortReadA = SfxSoundLatch2Read;
-
- SfxTilemap = 1;
- GalOrientationFlipX = 1;
-
- return nRet;
-}
-
-static void SkelagonPostLoad()
-{
- MapTheend();
-
- ZetOpen(0);
- ZetSetWriteHandler(SfxZ80Write);
- ZetMapArea(0x7000, 0x7fff, 0, GalZ80Rom1 + 0x4000);
- ZetMapArea(0x7000, 0x7fff, 2, GalZ80Rom1 + 0x4000);
- ZetMapArea(0xc000, 0xefff, 0, GalZ80Rom1 + 0x5000);
- ZetMapArea(0xc000, 0xefff, 2, GalZ80Rom1 + 0x5000);
- ZetClose();
-
- GalTempRom = (UINT8*)BurnMalloc(GalZ80Rom1Size);
- memcpy(GalTempRom, GalZ80Rom1, GalZ80Rom1Size);
- memset(GalZ80Rom1, 0xff, 0x1000);
- memcpy(GalZ80Rom1 + 0x1000, GalTempRom + 0x0000, 0x7000);
- BurnFree(GalTempRom);
-
- ZetOpen(2);
- ZetSetReadHandler(SfxSampleZ80Read);
- ZetSetWriteHandler(SfxSampleZ80Write);
- ZetSetInHandler(SfxSampleZ80PortRead);
- ZetSetOutHandler(SfxSampleZ80PortWrite);
- ZetMapArea(0x0000, GalZ80Rom3Size - 1, 0, GalZ80Rom3);
- ZetMapArea(0x0000, GalZ80Rom3Size - 1, 2, GalZ80Rom3);
- ZetMapArea(0x8000, 0x83ff, 0, GalZ80Ram3);
- ZetMapArea(0x8000, 0x83ff, 1, GalZ80Ram3);
- ZetMapArea(0x8000, 0x83ff, 2, GalZ80Ram3);
- ZetClose();
-
- nGalCyclesTotal[2] = (14318000 / 8) / 60;
-}
-
-static INT32 SkelagonInit()
-{
- INT32 nRet;
-
- GalPostLoadCallbackFunction = SkelagonPostLoad;
- GalSoundType = GAL_SOUND_HARDWARE_TYPE_SFXAY8910DAC;
- GalZ80Rom1Size = 0x1000;
-
- nRet = GalInit(); if (nRet) return 1;
- KonamiSoundInit();
-
- GalRenderBackgroundFunction = ScrambleDrawBackground;
- GalDrawBulletsFunction = ScrambleDrawBullets;
- GalExtendTileInfoFunction = UpperExtendTileInfo;
-
- ppi8255_init(3);
- PPI0PortReadA = KonamiPPIReadIN0;
- PPI0PortReadB = KonamiPPIReadIN1;
- PPI0PortReadC = KonamiPPIReadIN2;
- PPI1PortReadC = KonamiPPIReadIN3;
- PPI1PortWriteA = KonamiSoundLatchWrite;
- PPI1PortWriteB = KonamiSoundControlWrite;
- PPI2PortReadA = SfxSoundLatch2Read;
-
- SfxTilemap = 1;
- GalOrientationFlipX = 1;
-
- return nRet;
-}
-
-static void MonsterzPostLoad()
-{
- MapTheend();
-
- ZetOpen(0);
- ZetSetWriteHandler(SfxZ80Write);
- ZetMapArea(0xc000, 0xdfff, 0, GalZ80Rom1 + 0x4000);
- ZetMapArea(0xc000, 0xdfff, 2, GalZ80Rom1 + 0x4000);
- ZetClose();
-
- ZetOpen(2);
- ZetSetReadHandler(SfxSampleZ80Read);
- ZetSetWriteHandler(SfxSampleZ80Write);
- ZetSetInHandler(SfxSampleZ80PortRead);
- ZetSetOutHandler(SfxSampleZ80PortWrite);
- ZetMapArea(0x0000, GalZ80Rom3Size - 1, 0, GalZ80Rom3);
- ZetMapArea(0x0000, GalZ80Rom3Size - 1, 2, GalZ80Rom3);
- ZetMapArea(0x8000, 0x83ff, 0, GalZ80Ram3);
- ZetMapArea(0x8000, 0x83ff, 1, GalZ80Ram3);
- ZetMapArea(0x8000, 0x83ff, 2, GalZ80Ram3);
- ZetClose();
-
- GalTempRom = (UINT8*)BurnMalloc(GalZ80Rom3Size);
- memcpy(GalTempRom, GalZ80Rom3, GalZ80Rom3Size);
- memcpy(GalZ80Rom3 + 0x0000, GalTempRom + 0x0000, 0x3000);
- memset(GalZ80Rom3 + 0x3000, 0xff, 0x1000);
- memcpy(GalZ80Rom3 + 0x4000, GalTempRom + 0x3000, 0x2000);
- BurnFree(GalTempRom);
-
- nGalCyclesTotal[2] = (14318000 / 8) / 60;
-}
-
-static INT32 MonsterzInit()
-{
- INT32 nRet;
-
- GalPostLoadCallbackFunction = MonsterzPostLoad;
- GalSoundType = GAL_SOUND_HARDWARE_TYPE_SFXAY8910DAC;
- GalZ80Rom3Size = 0x1000;
-
- nRet = GalInit(); if (nRet) return 1;
- KonamiSoundInit();
-
- GalRenderBackgroundFunction = ScrambleDrawBackground;
- GalDrawBulletsFunction = ScrambleDrawBullets;
- GalExtendTileInfoFunction = UpperExtendTileInfo;
-
- ppi8255_init(3);
- PPI0PortReadA = KonamiPPIReadIN0;
- PPI0PortReadB = KonamiPPIReadIN1;
- PPI0PortReadC = KonamiPPIReadIN2;
- PPI1PortReadC = KonamiPPIReadIN3;
- PPI1PortWriteA = KonamiSoundLatchWrite;
- PPI1PortWriteB = KonamiSoundControlWrite;
- PPI2PortReadA = SfxSoundLatch2Read;
-
- SfxTilemap = 1;
- GalOrientationFlipX = 1;
-
- return nRet;
-}
-
-struct BurnDriver BurnDrvSfx = {
- "sfx", NULL, NULL, NULL, "1983",
- "SF-X\0", "Incomplete Sound", "Nichibutsu", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_HORSHOOT, 0,
- NULL, SfxRomInfo, SfxRomName, NULL, NULL, SfxInputInfo, SfxDIPInfo,
- SfxInit, KonamiExit, GalFrame, NULL, GalScan,
- NULL, 392, 256, 224, 4, 3
-};
-
-struct BurnDriverD BurnDrvSkelagon = {
- "skelagon", "sfx", NULL, NULL, "1983",
- "Skelagon\0", "Bad Dump", "Nichibutsu USA", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_CLONE, 2, HARDWARE_GALAXIAN, GBF_HORSHOOT, 0,
- NULL, SkelagonRomInfo, SkelagonRomName, NULL, NULL, SfxInputInfo, SfxDIPInfo,
- SkelagonInit, KonamiExit, GalFrame, NULL, GalScan,
- NULL, 392, 256, 224, 4, 3
-};
-
-struct BurnDriverD BurnDrvMonsterz = {
- "monsterz", NULL, NULL, NULL, "19??",
- "Monster Zero\0", "Protected", "Nihon", "Galaxian",
- NULL, NULL, NULL, NULL,
- 0, 2, HARDWARE_GALAXIAN, GBF_HORSHOOT, 0,
- NULL, MonsterzRomInfo, MonsterzRomName, NULL, NULL, SfxInputInfo, SfxDIPInfo,
- MonsterzInit, KonamiExit, GalFrame, NULL, GalScan,
- NULL, 392, 256, 224, 4, 3
-};
-
-// Super Cobra based hardware
-static struct BurnRomInfo ScobraRomDesc[] = {
- { "epr1265.2c", 0x01000, 0xa0744b3f, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2e", 0x01000, 0x8e7245cd, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "epr1267.2f", 0x01000, 0x47a4e6fb, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2h", 0x01000, 0x7244f21c, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "epr1269.2j", 0x01000, 0xe1f8a801, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2l", 0x01000, 0xd52affde, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "5c", 0x00800, 0xd4346959, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "5d", 0x00800, 0xcc025d95, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "5e", 0x00800, 0x1628c53f, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
-
- { "epr1274.5h", 0x00800, 0x64d113b4, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "epr1273.5f", 0x00800, 0xa96316d3, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "82s123.6e", 0x00020, 0x9b87f90d, BRF_GRA | GAL_ROM_PROM },};
-
-STD_ROM_PICK(Scobra)
-STD_ROM_FN(Scobra)
-
-static struct BurnRomInfo ScobrasRomDesc[] = {
- { "scobra2c.bin", 0x01000, 0xe15ade38, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "scobra2e.bin", 0x01000, 0xa270e44d, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "scobra2f.bin", 0x01000, 0xbdd70346, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "scobra2h.bin", 0x01000, 0xdca5ec31, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "scobra2j.bin", 0x01000, 0x0d8f6b6e, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "scobra2l.bin", 0x01000, 0x6f80f3a9, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "epr1275.5c", 0x00800, 0xdeeb0dd3, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "epr1276.5d", 0x00800, 0x872c1a74, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "epr1277.5e", 0x00800, 0xccd7a110, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
-
- { "epr1274.5h", 0x00800, 0x64d113b4, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "epr1273.5f", 0x00800, 0xa96316d3, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "82s123.6e", 0x00020, 0x9b87f90d, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Scobras)
-STD_ROM_FN(Scobras)
-
-static struct BurnRomInfo ScobraseRomDesc[] = {
- { "epr1265.2c", 0x01000, 0xa0744b3f, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "epr1266.2e", 0x01000, 0x65306279, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "epr1267.2f", 0x01000, 0x47a4e6fb, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "epr1268.2h", 0x01000, 0x53eecaf2, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "epr1269.2j", 0x01000, 0xe1f8a801, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "epr1270.2l", 0x01000, 0xf7709710, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "epr1275.5c", 0x00800, 0xdeeb0dd3, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "epr1276.5d", 0x00800, 0x872c1a74, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "epr1277.5e", 0x00800, 0xccd7a110, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
-
- { "epr1274.5h", 0x00800, 0x64d113b4, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "epr1273.5f", 0x00800, 0xa96316d3, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "pr1278.6e", 0x00020, 0xfd35c561, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Scobrase)
-STD_ROM_FN(Scobrase)
-
-static struct BurnRomInfo ScobrabRomDesc[] = {
- { "vid_2c.bin", 0x00800, 0xaeddf391, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "vid_2e.bin", 0x00800, 0x72b57eb7, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "scobra2e.bin", 0x01000, 0xa270e44d, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "scobra2f.bin", 0x01000, 0xbdd70346, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "scobra2h.bin", 0x01000, 0xdca5ec31, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "scobra2j.bin", 0x01000, 0x0d8f6b6e, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "scobra2l.bin", 0x01000, 0x6f80f3a9, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "epr1275.5c", 0x00800, 0xdeeb0dd3, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "epr1276.5d", 0x00800, 0x872c1a74, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "epr1277.5e", 0x00800, 0xccd7a110, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
-
- { "epr1274.5h", 0x00800, 0x64d113b4, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "epr1273.5f", 0x00800, 0xa96316d3, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "82s123.6e", 0x00020, 0x9b87f90d, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Scobrab)
-STD_ROM_FN(Scobrab)
-
-static struct BurnRomInfo ScobraeRomDesc[] = {
- { "super cobra ra1 2c 1981.2c", 0x01000, 0xba9d4152, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "super cobra ra1 2e 1981.2e", 0x01000, 0xf9b77b27, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "super cobra ra1 2f 1981.2f", 0x01000, 0xe6109c2c, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "super cobra ra1 2h 1981.2h", 0x01000, 0x8762735b, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "super cobra ra1 2j 1981.2j", 0x01000, 0x5648f404, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "super cobra ra1 2l 1981.2l", 0x01000, 0x34476cc3, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "5c", 0x00800, 0xdeeb0dd3, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "5d", 0x00800, 0x872c1a74, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "5e", 0x00800, 0xccd7a110, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
-
- { "super cobra ra1 5f 1981.5f", 0x00800, 0x64d113b4, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "super cobra ra1 5h 1981.5h", 0x00800, 0xa96316d3, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "82s123.6e", 0x00020, 0x9b87f90d, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Scobrae)
-STD_ROM_FN(Scobrae)
-
-static struct BurnRomInfo SuprheliRomDesc[] = {
- { "1.2c", 0x01000, 0xb25141d8, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "scobra2e.bin", 0x01000, 0xa270e44d, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "scobra2f.bin", 0x01000, 0xbdd70346, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "scobra2h.bin", 0x01000, 0xdca5ec31, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "scobra2j.bin", 0x01000, 0x0d8f6b6e, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "6.2l", 0x01000, 0x10a474d9, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "epr1275.5c", 0x00800, 0xdeeb0dd3, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "epr1276.5d", 0x00800, 0x872c1a74, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "9.9d", 0x00800, 0x2b69b8f3, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
-
- { "epr1274.5h", 0x00800, 0x64d113b4, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "epr1273.5f", 0x00800, 0xa96316d3, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "k.6e", 0x00020, 0xfd35c561, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Suprheli)
-STD_ROM_FN(Suprheli)
-
-static struct BurnRomInfo LosttombRomDesc[] = {
- { "2c", 0x01000, 0xd6176d2c, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2e", 0x01000, 0xa5f55f4a, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2f", 0x01000, 0x0169fa3c, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2h-easy", 0x01000, 0x054481b6, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2j", 0x01000, 0x249ee040, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2l", 0x01000, 0xc7d2e608, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2m", 0x01000, 0xbc4bc5b1, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "5c", 0x00800, 0xb899be2a, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "5d", 0x00800, 0x6907af31, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
-
- { "5f", 0x00800, 0x61f137e7, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "5h", 0x00800, 0x5581de5f, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "ltprom", 0x00020, 0x1108b816, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Losttomb)
-STD_ROM_FN(Losttomb)
-
-static struct BurnRomInfo LosttombhRomDesc[] = {
- { "2c", 0x01000, 0xd6176d2c, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2e", 0x01000, 0xa5f55f4a, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2f", 0x01000, 0x0169fa3c, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "lthard", 0x01000, 0xe32cbf0e, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2j", 0x01000, 0x249ee040, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2l", 0x01000, 0xc7d2e608, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2m", 0x01000, 0xbc4bc5b1, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "5c", 0x00800, 0xb899be2a, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "5d", 0x00800, 0x6907af31, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
-
- { "5f", 0x00800, 0x61f137e7, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "5h", 0x00800, 0x5581de5f, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "ltprom", 0x00020, 0x1108b816, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Losttombh)
-STD_ROM_FN(Losttombh)
-
-static struct BurnRomInfo ArmorcarRomDesc[] = {
- { "cpu.2c", 0x01000, 0x0d7bfdfb, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "cpu.2e", 0x01000, 0x76463213, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "cpu.2f", 0x01000, 0x2cc6d5f0, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "cpu.2h", 0x01000, 0x61278dbb, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "cpu.2j", 0x01000, 0xfb158d8c, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "sound.5c", 0x00800, 0x54ee7753, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "sound.5d", 0x00800, 0x5218fec0, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
-
- { "cpu.5f", 0x00800, 0x8a3da4d1, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "cpu.5h", 0x00800, 0x85bdb113, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "82s123.6e", 0x00020, 0x9b87f90d, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Armorcar)
-STD_ROM_FN(Armorcar)
-
-static struct BurnRomInfo Armorcar2RomDesc[] = {
- { "2c", 0x01000, 0xe393bd2f, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2e", 0x01000, 0xb7d443af, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2g", 0x01000, 0xe67380a4, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2h", 0x01000, 0x72af7b37, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2j", 0x01000, 0xe6b0dd7f, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "sound.5c", 0x00800, 0x54ee7753, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "sound.5d", 0x00800, 0x5218fec0, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
-
- { "cpu.5f", 0x00800, 0x8a3da4d1, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "cpu.5h", 0x00800, 0x85bdb113, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "82s123.6e", 0x00020, 0x9b87f90d, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Armorcar2)
-STD_ROM_FN(Armorcar2)
-
-static struct BurnRomInfo TazmaniaRomDesc[] = {
- { "2c.cpu", 0x01000, 0x932c5a06, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2e.cpu", 0x01000, 0xef17ce65, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2f.cpu", 0x01000, 0x43c7c39d, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2h.cpu", 0x01000, 0xbe829694, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2j.cpu", 0x01000, 0x6e197271, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2k.cpu", 0x01000, 0xa1eb453b, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "rom0.snd", 0x00800, 0xb8d741f1, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
-
- { "5f.cpu", 0x00800, 0x2c5b612b, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "5h.cpu", 0x00800, 0x3f5ff3ac, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "colr6f.cpu", 0x00020, 0xfce333c7, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Tazmania)
-STD_ROM_FN(Tazmania)
-
-static struct BurnRomInfo Tazmani2RomDesc[] = {
- { "2ck.cpu", 0x01000, 0xbf0492bf, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2ek.cpu", 0x01000, 0x6636c4d0, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2fk.cpu", 0x01000, 0xce59a57b, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2hk.cpu", 0x01000, 0x8bda3380, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2jk.cpu", 0x01000, 0xa4095e35, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2kk.cpu", 0x01000, 0xf308ca36, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "rom0.snd", 0x00800, 0xb8d741f1, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
-
- { "5f.cpu", 0x00800, 0x2c5b612b, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "5h.cpu", 0x00800, 0x3f5ff3ac, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "colr6f.cpu", 0x00020, 0xfce333c7, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Tazmani2)
-STD_ROM_FN(Tazmani2)
-
-static struct BurnRomInfo AnteaterRomDesc[] = {
- { "ra1-2c", 0x01000, 0x58bc9393, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "ra1-2e", 0x01000, 0x574fc6f6, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "ra1-2f", 0x01000, 0x2f7c1fe5, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "ra1-2h", 0x01000, 0xae8a5da3, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "ra4-5c", 0x00800, 0x87300b4f, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "ra4-5d", 0x00800, 0xaf4e5ffe, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
-
- { "ra6-5f", 0x00800, 0x4c3f8a08, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "ra6-5h", 0x00800, 0xb30c7c9f, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "colr6f.cpu", 0x00020, 0xfce333c7, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Anteater)
-STD_ROM_FN(Anteater)
-
-static struct BurnRomInfo AnteatergRomDesc[] = {
- { "prg_2.bin", 0x02000, 0x2ba793a8, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "prg_1.bin", 0x02000, 0x7a798af5, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "ra4-5c", 0x00800, 0x87300b4f, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "ra4-5d", 0x00800, 0xaf4e5ffe, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
-
- { "gfx_1.bin", 0x00800, 0x1e2824b1, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "gfx_2.bin", 0x00800, 0x784319b3, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "colr6f.cpu", 0x00020, 0xfce333c7, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Anteaterg)
-STD_ROM_FN(Anteaterg)
-
-static struct BurnRomInfo AnteaterukRomDesc[] = {
- { "ant1.bin", 0x02000, 0x69debc90, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "ant2.bin", 0x02000, 0xab352805, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "ra4-5c", 0x00800, 0x87300b4f, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "ra4-5d", 0x00800, 0xaf4e5ffe, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
-
- { "gfx_1.bin", 0x00800, 0x1e2824b1, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "gfx_2.bin", 0x00800, 0x784319b3, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "colr6f.cpu", 0x00020, 0xfce333c7, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Anteateruk)
-STD_ROM_FN(Anteateruk)
-
-static struct BurnRomInfo SpdcoinRomDesc[] = {
- { "spdcoin.2c", 0x01000, 0x65cf1e49, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "spdcoin.2e", 0x01000, 0x1ee59232, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "spdcoin.5c", 0x00800, 0xb4cf64b7, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "spdcoin.5d", 0x00800, 0x92304df0, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
-
- { "spdcoin.5f", 0x00800, 0xdd5f1dbc, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "spdcoin.5h", 0x00800, 0xab1fe81b, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "spdcoin.clr", 0x00020, 0x1a2ccc56, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Spdcoin)
-STD_ROM_FN(Spdcoin)
-
-static struct BurnRomInfo SuperbonRomDesc[] = {
- { "2d.cpu", 0x01000, 0x60c0ba18, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2e.cpu", 0x01000, 0xddcf44bf, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2f.cpu", 0x01000, 0xbb66c2d5, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2h.cpu", 0x01000, 0x74f4f04d, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2j.cpu", 0x01000, 0x78effb08, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2l.cpu", 0x01000, 0xe9dcecbd, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2m.cpu", 0x01000, 0x3ed0337e, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "5c", 0x00800, 0xb899be2a, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "5d.snd", 0x00800, 0x80640a04, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
-
- { "5f.cpu", 0x00800, 0x5b9d4686, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "5h.cpu", 0x00800, 0x58c29927, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "82s123.6e", 0x00020, 0x9b87f90d, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Superbon)
-STD_ROM_FN(Superbon)
-
-static struct BurnRomInfo CalipsoRomDesc[] = {
- { "calipso.2c", 0x01000, 0x0fcb703c, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "calipso.2e", 0x01000, 0xc6622f14, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "calipso.2f", 0x01000, 0x7bacbaba, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "calipso.2h", 0x01000, 0xa3a8111b, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "calipso.2j", 0x01000, 0xfcbd7b9e, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "calipso.2l", 0x01000, 0xf7630cab, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "calipso.5c", 0x00800, 0x9cbc65ab, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "calipso.5d", 0x00800, 0xa225ee3b, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
-
- { "calipso.5f", 0x02000, 0xfd4252e9, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "calipso.5h", 0x02000, 0x1663a73a, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "calipso.clr", 0x00020, 0x01165832, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Calipso)
-STD_ROM_FN(Calipso)
-
-static struct BurnRomInfo MoonwarRomDesc[] = {
- { "mw2.2c", 0x01000, 0x7c11b4d9, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "mw2.2e", 0x01000, 0x1b6362be, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "mw2.2f", 0x01000, 0x4fd8ba4b, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "mw2.2h", 0x01000, 0x56879f0d, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "mw2.5c", 0x00800, 0xc26231eb, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "mw2.5d", 0x00800, 0xbb48a646, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
-
- { "mw2.5f", 0x00800, 0xc5fa1aa0, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "mw2.5h", 0x00800, 0xa6ccc652, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "mw2.clr", 0x00020, 0x99614c6c, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Moonwar)
-STD_ROM_FN(Moonwar)
-
-static struct BurnRomInfo MoonwaraRomDesc[] = {
- { "2c", 0x01000, 0xbc20b734, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2e", 0x01000, 0xdb6ffec2, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2f", 0x01000, 0x378931b8, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2h", 0x01000, 0x031dbc2c, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "mw2.5c", 0x00800, 0xc26231eb, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "mw2.5d", 0x00800, 0xbb48a646, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
-
- { "mw2.5f", 0x00800, 0xc5fa1aa0, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "mw2.5h", 0x00800, 0xa6ccc652, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "moonwara.clr", 0x00020, 0xf58d4f58, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Moonwara)
-STD_ROM_FN(Moonwara)
-
-static struct BurnRomInfo StratgyxRomDesc[] = {
- { "2c_1.bin", 0x01000, 0xeec01237, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2e_2.bin", 0x01000, 0x926cb2d5, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2f_3.bin", 0x01000, 0x849e2504, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2h_4.bin", 0x01000, 0x8a64069b, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2j_5.bin", 0x01000, 0x78b9b898, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2l_6.bin", 0x01000, 0x20bae414, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "s1.bin", 0x01000, 0x713a5db8, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "s2.bin", 0x01000, 0x46079411, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
-
- { "5f_c2.bin", 0x00800, 0x7121b679, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "5h_c1.bin", 0x00800, 0xd105ad91, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "strategy.6e", 0x00020, 0x51a629e1, BRF_GRA | GAL_ROM_PROM },
- { "strategy.10k", 0x00020, 0xd95c0318, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Stratgyx)
-STD_ROM_FN(Stratgyx)
-
-static struct BurnRomInfo StratgysRomDesc[] = {
- { "2c.cpu", 0x01000, 0xf2aaaf2b, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2e.cpu", 0x01000, 0x5873fdc8, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2f.cpu", 0x01000, 0x532d604f, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2h.cpu", 0x01000, 0x82b1d95e, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2j.cpu", 0x01000, 0x66e84cde, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2l.cpu", 0x01000, 0x62b032d0, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "s1.bin", 0x01000, 0x713a5db8, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "s2.bin", 0x01000, 0x46079411, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
-
- { "5f.cpu", 0x00800, 0xf4aa5ddd, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "5h.cpu", 0x00800, 0x548e4635, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "strategy.6e", 0x00020, 0x51a629e1, BRF_GRA | GAL_ROM_PROM },
- { "strategy.10k", 0x00020, 0xd95c0318, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Stratgys)
-STD_ROM_FN(Stratgys)
-
-static struct BurnRomInfo StrongxRomDesc[] = {
- { "strongx.2d", 0x01000, 0xc2f7268c, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "strongx.2e", 0x01000, 0x91059422, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2f_3.bin", 0x01000, 0x849e2504, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2h_4.bin", 0x01000, 0x8a64069b, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2j_5.bin", 0x01000, 0x78b9b898, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "2l_6.bin", 0x01000, 0x20bae414, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "s1.bin", 0x01000, 0x713a5db8, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "s2.bin", 0x01000, 0x46079411, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
-
- { "5f_c2.bin", 0x00800, 0x7121b679, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "5h_c1.bin", 0x00800, 0xd105ad91, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "strategy.6e", 0x00020, 0x51a629e1, BRF_GRA | GAL_ROM_PROM },
- { "strategy.10k", 0x00020, 0xd95c0318, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Strongx)
-STD_ROM_FN(Strongx)
-
-static struct BurnRomInfo DarkplntRomDesc[] = {
- { "drkplt2c.dat", 0x01000, 0x5a0ca559, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "drkplt2e.dat", 0x01000, 0x52e2117d, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "drkplt2g.dat", 0x01000, 0x4093219c, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "drkplt2j.dat", 0x01000, 0xb974c78d, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "drkplt2k.dat", 0x01000, 0x71a37385, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "drkplt2l.dat", 0x01000, 0x5ad25154, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "drkplt2m.dat", 0x01000, 0x8d2f0122, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "drkplt2p.dat", 0x01000, 0x2d66253b, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "5c.snd", 0x01000, 0x672b9454, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
-
- { "drkplt5f.dat", 0x00800, 0x2af0ee66, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "drkplt5h.dat", 0x00800, 0x66ef3225, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "6e.cpu", 0x00020, 0x86b6e124, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Darkplnt)
-STD_ROM_FN(Darkplnt)
-
-static struct BurnRomInfo RescueRomDesc[] = {
- { "rb15acpu.bin", 0x01000, 0xd7e654ba, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "rb15bcpu.bin", 0x01000, 0xa93ea158, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "rb15ccpu.bin", 0x01000, 0x058cd3d0, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "rb15dcpu.bin", 0x01000, 0xd6505742, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "rb15ecpu.bin", 0x01000, 0x604df3a4, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "rb15csnd.bin", 0x00800, 0x8b24bf17, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "rb15dsnd.bin", 0x00800, 0xd96e4fb3, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
-
- { "rb15fcpu.bin", 0x00800, 0x4489d20c, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "rb15hcpu.bin", 0x00800, 0x5512c547, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "rescue.clr", 0x00020, 0x40c6bcbd, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Rescue)
-STD_ROM_FN(Rescue)
-
-static struct BurnRomInfo AponowRomDesc[] = {
- { "aponow01.rom", 0x01000, 0x33011579, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "aponow02.rom", 0x01000, 0xd477573e, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "aponow03.rom", 0x01000, 0x46c41898, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "rb15dcpu.bin", 0x01000, 0xd6505742, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "rb15ecpu.bin", 0x01000, 0x604df3a4, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "rb15csnd.bin", 0x00800, 0x8b24bf17, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "rb15dsnd.bin", 0x00800, 0xd96e4fb3, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
-
- { "rb15fcpu.bin", 0x00800, 0x4489d20c, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "rb15hcpu.bin", 0x00800, 0x5512c547, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "rescue.clr", 0x00020, 0x40c6bcbd, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Aponow)
-STD_ROM_FN(Aponow)
-
-static struct BurnRomInfo MinefldRomDesc[] = {
- { "ma22c", 0x01000, 0x1367a035, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "ma22e", 0x01000, 0x68946d21, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "ma22f", 0x01000, 0x7663aee5, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "ma22h", 0x01000, 0x9787475d, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "ma22j", 0x01000, 0x2ceceb54, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "ma22l", 0x01000, 0x85138fc9, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "ma15c", 0x00800, 0x8bef736b, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "ma15d", 0x00800, 0xf67b3f97, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
-
- { "ma15f", 0x00800, 0x9f703006, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "ma15h", 0x00800, 0xed0dccb1, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "minefld.clr", 0x00020, 0x1877368e, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Minefld)
-STD_ROM_FN(Minefld)
-
-static struct BurnRomInfo HustlerRomDesc[] = {
- { "hustler.1", 0x01000, 0x94479a3e, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "hustler.2", 0x01000, 0x3cc67bcc, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "hustler.3", 0x01000, 0x9422226a, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "hustler.6", 0x00800, 0x7a946544, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "hustler.7", 0x00800, 0x3db57351, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
-
- { "hustler.5f", 0x00800, 0x0bdfad0e, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "hustler.5h", 0x00800, 0x8e062177, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "hustler.clr", 0x00020, 0xaa1f7f5e, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Hustler)
-STD_ROM_FN(Hustler)
-
-static struct BurnRomInfo BilliardRomDesc[] = {
- { "a", 0x01000, 0xb7eb50c0, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "b", 0x01000, 0x988fe1c5, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "c", 0x01000, 0x7b8de793, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "hustler.6", 0x00800, 0x7a946544, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "hustler.7", 0x00800, 0x3db57351, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
-
- { "hustler.5f", 0x00800, 0x0bdfad0e, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "hustler.5h", 0x00800, 0x8e062177, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "hustler.clr", 0x00020, 0xaa1f7f5e, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Billiard)
-STD_ROM_FN(Billiard)
-
-static struct BurnRomInfo HustlerbRomDesc[] = {
- { "hustler.2c", 0x01000, 0x3a1ac6a9, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "hustler.2f", 0x01000, 0xdc6752ec, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "hustler.2j", 0x01000, 0x27c1e0f8, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "hustler.11d", 0x00800, 0xb559bfde, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "hustler.10d", 0x00800, 0x6ef96cfb, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
-
- { "hustler.5f", 0x00800, 0x0bdfad0e, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "hustler.5h", 0x00800, 0x8e062177, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "hustler.clr", 0x00020, 0xaa1f7f5e, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Hustlerb)
-STD_ROM_FN(Hustlerb)
-
-static struct BurnRomInfo MimonkeyRomDesc[] = {
- { "mm1.2e", 0x01000, 0x9019f1b1, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "mm2.2e", 0x01000, 0x043e97d6, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "mm3.2f", 0x01000, 0x1052726a, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "mm4.2h", 0x01000, 0x7b3f35ff, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "mm5.2j", 0x01000, 0xb4e5c32d, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "mm6.2l", 0x01000, 0x409036c4, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "mm7.2m", 0x01000, 0x119c08fa, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "mm8.2p", 0x01000, 0xf7989f04, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "mm13.11d", 0x01000, 0x2d14c527, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "mm14.10d", 0x01000, 0x35ed0f96, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
-
- { "mm12.5h", 0x01000, 0xf73a8412, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "mm10.5h", 0x01000, 0x3828c9db, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "mm11.5f", 0x01000, 0x9e0e9289, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "mm9.5f", 0x01000, 0x92085b0c, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "82s123.6e", 0x00020, 0x4e3caeab, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Mimonkey)
-STD_ROM_FN(Mimonkey)
-
-static struct BurnRomInfo MimonscoRomDesc[] = {
- { "fra_1a", 0x01000, 0x8e7a7379, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "fra_1b", 0x01000, 0xab08cbfe, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "fra_2a", 0x01000, 0x2d4da24d, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "fra_2b", 0x01000, 0x8d88fc7c, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "fra_3a", 0x01000, 0xb4e5c32d, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "fra_3b", 0x01000, 0x409036c4, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "fra_4a", 0x01000, 0x119c08fa, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "fra_4b", 0x01000, 0xd700fd03, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "mmsound1", 0x01000, 0x2d14c527, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
- { "mmsnd2a", 0x01000, 0x35ed0f96, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG2 },
-
- { "mmgfx1", 0x02000, 0x4af47337, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "mmgfx2", 0x02000, 0xdef47da8, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "82s123.6e", 0x00020, 0x4e3caeab, BRF_GRA | GAL_ROM_PROM },
-};
-
-STD_ROM_PICK(Mimonsco)
-STD_ROM_FN(Mimonsco)
-
-UINT8 __fastcall Tazmani2Z80Read(UINT16 a)
-{
- if (a >= 0xa000 && a <= 0xa00f) {
- return ppi8255_r(0, (a - 0xa000) >> 2);
- }
-
- if (a >= 0xa800 && a <= 0xa80f) {
- return ppi8255_r(1, (a - 0xa800) >> 2);
- }
-
- switch (a) {
- case 0x9800: {
- // watchdog read
- return 0xff;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Read => %04X\n"), a);
- }
- }
-
- return 0xff;
-}
-
-void __fastcall Tazmani2Z80Write(UINT16 a, UINT8 d)
-{
- if (a >= 0x8800 && a <= 0x88ff) {
- INT32 Offset = a - 0x8800;
-
- GalSpriteRam[Offset] = d;
-
- if (Offset < 0x40) {
- if ((Offset & 0x01) == 0) {
- GalScrollVals[Offset >> 1] = d;
- }
- }
-
- return;
- }
-
- if (a >= 0xa000 && a <= 0xa00f) {
- ppi8255_w(0, (a - 0xa000) >> 2, d);
- return;
- }
-
- if (a >= 0xa800 && a <= 0xa80f) {
- ppi8255_w(1, (a - 0xa800) >> 2, d);
- return;
- }
-
- switch (a) {
- case 0xb000: {
- GalStarsEnable = d & 0x01;
- if (!GalStarsEnable) GalStarsScrollPos = -1;
- return;
- }
-
- case 0xb002: {
- GalBackgroundEnable = d & 1;
- return;
- }
-
- case 0xb004: {
- GalIrqFire = d & 1;
- return;
- }
-
- case 0xb006: {
- // coin_count_0_w
- return;
- }
-
- case 0xb00c: {
- GalFlipScreenY = d & 1;
- return;
- }
-
- case 0xb00e: {
- GalFlipScreenX = d & 1;
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Write => %04X, %02X\n"), a, d);
- }
- }
-}
-
-UINT8 __fastcall AnteatergZ80Read(UINT16 a)
-{
- switch (a) {
- case 0xf521: {
- // watchdog read
- return 0xff;
- }
-
- case 0xf612: {
- return ppi8255_r(0, 0);
- }
-
- case 0xf631: {
- return ppi8255_r(0, 1);
- }
-
- case 0xf710: {
- return ppi8255_r(0, 2);
- }
-
- case 0xf753: {
- return ppi8255_r(0, 3);
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Read => %04X\n"), a);
- }
- }
-
- return 0xff;
-}
-
-void __fastcall AnteatergZ80Write(UINT16 a, UINT8 d)
-{
- if (a >= 0x2000 && a <= 0x20ff) {
- INT32 Offset = a - 0x2000;
-
- GalSpriteRam[Offset] = d;
-
- if (Offset < 0x40) {
- if ((Offset & 0x01) == 0) {
- GalScrollVals[Offset >> 1] = d;
- }
- }
-
- return;
- }
-
- switch (a) {
- case 0x2423: {
- ppi8255_w(1, 3, d);
- return;
- }
-
- case 0x2450: {
- ppi8255_w(1, 0, d);
- return;
- }
-
- case 0x2511: {
- ppi8255_w(1, 1, d);
- return;
- }
-
- case 0x2621: {
- GalIrqFire = d & 1;
- return;
- }
-
- case 0x2624: {
- GalStarsEnable = d & 0x01;
- if (!GalStarsEnable) GalStarsScrollPos = -1;
- return;
- }
-
- case 0x2647: {
- GalFlipScreenY = d & 1;
- return;
- }
-
- case 0x2653: {
- GalBackgroundEnable = d & 1;
- return;
- }
-
- case 0x2702: {
- // coin_count_0_w
- return;
- }
-
- case 0x2736: {
- GalFlipScreenX = d & 1;
- return;
- }
-
- case 0xf612: {
- ppi8255_w(0, 0, d);
- return;
- }
-
- case 0xf631: {
- ppi8255_w(0, 1, d);
- return;
- }
-
- case 0xf710: {
- ppi8255_w(0, 2, d);
- return;
- }
-
- case 0xf753: {
- ppi8255_w(0, 3, d);
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Write => %04X, %02X\n"), a, d);
- }
- }
-}
-
-UINT8 __fastcall AnteatgbZ80Read(UINT16 a)
-{
- switch (a) {
- case 0x145b: {
- // watchdog read
- return 0xff;
- }
-
- case 0xf300:
- case 0xf301:
- case 0xf302:
- case 0xf303: {
- return ppi8255_r(0, a - 0xf300);
- }
-
- case 0xfe00:
- case 0xfe01:
- case 0xfe02:
- case 0xfe03: {
- return ppi8255_r(1, a - 0xfe00);
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Read => %04X\n"), a);
- }
- }
-
- return 0xff;
-}
-
-void __fastcall AnteatgbZ80Write(UINT16 a, UINT8 d)
-{
- if (a >= 0x1200 && a <= 0x12ff) {
- INT32 Offset = a - 0x1200;
-
- GalSpriteRam[Offset] = d;
-
- if (Offset < 0x40) {
- if ((Offset & 0x01) == 0) {
- GalScrollVals[Offset >> 1] = d;
- }
- }
-
- return;
- }
-
- switch (a) {
- case 0x1171: {
- GalIrqFire = d & 1;
- return;
- }
-
- case 0x1172: {
- // coin_count_0_w
- return;
- }
-
- case 0x1173: {
- GalBackgroundEnable = d & 1;
- return;
- }
-
- case 0x1174: {
- GalStarsEnable = d & 0x01;
- if (!GalStarsEnable) GalStarsScrollPos = -1;
- return;
- }
-
- case 0x1176: {
- GalFlipScreenX = d & 1;
- return;
- }
-
- case 0x1177: {
- GalFlipScreenY = d & 1;
- return;
- }
-
- case 0xf300:
- case 0xf301:
- case 0xf302:
- case 0xf303: {
- ppi8255_w(0, a - 0xf300, d);
- return;
- }
-
- case 0xfe00:
- case 0xfe01:
- case 0xfe02:
- case 0xfe03: {
- ppi8255_w(1, a - 0xfe00, d);
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Write => %04X, %02X\n"), a, d);
- }
- }
-}
-
-void __fastcall StratgyxZ80Write(UINT16 a, UINT8 d)
-{
- if (a >= 0x8800 && a <= 0x88ff) {
- INT32 Offset = a - 0x8800;
-
- GalSpriteRam[Offset] = d;
-
- if (Offset < 0x40) {
- if ((Offset & 0x01) == 0) {
- GalScrollVals[Offset >> 1] = d;
- }
- }
-
- return;
- }
-
- if (a >= 0xa000 && a <= 0xa00f) {
- ppi8255_w(0, (a - 0xa000) >> 2, d);
- return;
- }
-
- if (a >= 0xa800 && a <= 0xa80f) {
- ppi8255_w(1, (a - 0xa800) >> 2, d);
- return;
- }
-
- switch (a) {
- case 0xb000: {
- GalBackgroundGreen = d & 1;
- return;
- }
-
- case 0xb002: {
- GalBackgroundBlue = d & 1;
- return;
- }
-
- case 0xb004: {
- GalIrqFire = d & 1;
- return;
- }
-
- case 0xb006:
- case 0xb008: {
- // coin_count_0_w
- return;
- }
-
- case 0xb00a: {
- GalBackgroundRed = d & 1;
- return;
- }
-
- case 0xb00c: {
- GalFlipScreenY = d & 1;
- return;
- }
-
- case 0xb00e: {
- GalFlipScreenX = d & 1;
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Write => %04X, %02X\n"), a, d);
- }
- }
-}
-
-void __fastcall DarkplntZ80Write(UINT16 a, UINT8 d)
-{
- if (a >= 0x8800 && a <= 0x88ff) {
- INT32 Offset = a - 0x8800;
-
- GalSpriteRam[Offset] = d;
-
- if (Offset < 0x40) {
- if ((Offset & 0x01) == 0) {
- GalScrollVals[Offset >> 1] = d;
- }
- }
-
- return;
- }
-
- if (a >= 0xa000 && a <= 0xa00f) {
- ppi8255_w(0, (a - 0xa000) >> 2, d);
- return;
- }
-
- if (a >= 0xa800 && a <= 0xa80f) {
- ppi8255_w(1, (a - 0xa800) >> 2, d);
- return;
- }
-
- switch (a) {
- case 0xb000: {
- GalStarsEnable = d & 0x01;
- if (!GalStarsEnable) GalStarsScrollPos = -1;
- return;
- }
-
- case 0xb002: {
- GalBackgroundEnable = d & 1;
- return;
- }
-
- case 0xb004: {
- GalIrqFire = d & 1;
- return;
- }
-
- case 0xb006: {
- // coin_count_0_w
- return;
- }
-
- case 0xb00a: {
- DarkplntBulletColour = d & 1;
- return;
- }
-
- case 0xb00c: {
- GalFlipScreenY = d & 1;
- return;
- }
-
- case 0xb00e: {
- GalFlipScreenX = d & 1;
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Write => %04X, %02X\n"), a, d);
- }
- }
-}
-
-UINT8 __fastcall HustlerZ80Read(UINT16 a)
-{
- if (a >= 0xd000 && a <= 0xd01f) {
- return ppi8255_r(0, (a - 0xd000) >> 3);
- }
-
- if (a >= 0xe000 && a <= 0xe01f) {
- return ppi8255_r(1, (a - 0xe000) >> 3);
- }
-
- switch (a) {
- case 0xb800: {
- // watchdog read
- return 0xff;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Read => %04X\n"), a);
- }
- }
-
- return 0xff;
-}
-
-void __fastcall HustlerZ80Write(UINT16 a, UINT8 d)
-{
- if (a >= 0x9000 && a <= 0x90ff) {
- INT32 Offset = a - 0x9000;
-
- GalSpriteRam[Offset] = d;
-
- if (Offset < 0x40) {
- if ((Offset & 0x01) == 0) {
- GalScrollVals[Offset >> 1] = d;
- }
- }
-
- return;
- }
-
- if (a >= 0xd000 && a <= 0xd01f) {
- ppi8255_w(0, (a - 0xd000) >> 3, d);
- return;
- }
-
- if (a >= 0xe000 && a <= 0xe01f) {
- ppi8255_w(1, (a - 0xe000) >> 3, d);
- return;
- }
-
- switch (a) {
- case 0xa802: {
- GalFlipScreenX = d & 1;
- return;
- }
-
- case 0xa804: {
- GalIrqFire = d & 1;
- return;
- }
-
- case 0xa806: {
- GalFlipScreenY = d & 1;
- return;
- }
-
- case 0xa80e: {
- // coin_count_0_w
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Write => %04X, %02X\n"), a, d);
- }
- }
-}
-
-UINT8 __fastcall HustlerbZ80Read(UINT16 a)
-{
- switch (a) {
- case 0xb000: {
- // watchdog read
- return 0xff;
- }
-
- case 0xc100:
- case 0xc101:
- case 0xc102:
- case 0xc103: {
- return ppi8255_r(0, a - 0xc100);
- }
-
- case 0xc200:
- case 0xc201:
- case 0xc202:
- case 0xc203: {
- return ppi8255_r(1, a - 0xc200);
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Read => %04X\n"), a);
- }
- }
-
- return 0xff;
-}
-
-void __fastcall HustlerbZ80Write(UINT16 a, UINT8 d)
-{
- if (a >= 0x9000 && a <= 0x90ff) {
- INT32 Offset = a - 0x9000;
-
- GalSpriteRam[Offset] = d;
-
- if (Offset < 0x40) {
- if ((Offset & 0x01) == 0) {
- GalScrollVals[Offset >> 1] = d;
- }
- }
-
- return;
- }
-
- switch (a) {
- case 0xa801: {
- GalIrqFire = d & 1;
- return;
- }
-
- case 0xa802: {
- // coin_count_0_w
- return;
- }
-
- case 0xa806: {
- GalFlipScreenY = d & 1;
- return;
- }
-
- case 0xa807: {
- GalFlipScreenX = d & 1;
- return;
- }
-
- case 0xc100:
- case 0xc101:
- case 0xc102:
- case 0xc103: {
- ppi8255_w(0, a - 0xc100, d);
- return;
- }
-
- case 0xc200:
- case 0xc201:
- case 0xc202:
- case 0xc203: {
- ppi8255_w(1, a - 0xc200, d);
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Write => %04X, %02X\n"), a, d);
- }
- }
-}
-
-UINT8 __fastcall HustlerbSoundZ80PortRead(UINT16 a)
-{
- a &= 0xff;
-
- switch (a) {
- case 0x80: {
- return AY8910Read(0);
- }
- }
-
- return 0xff;
-}
-
-void __fastcall HustlerbSoundZ80PortWrite(UINT16 a, UINT8 d)
-{
- a &= 0xff;
-
- switch (a) {
- case 0x40: {
- AY8910Write(0, 0, d);
- return;
- }
-
- case 0x80: {
- AY8910Write(0, 1, d);
- return;
- }
- }
-}
-
-void __fastcall MimonkeyZ80Write(UINT16 a, UINT8 d)
-{
- if (a >= 0x9000 && a <= 0x90ff) {
- INT32 Offset = a - 0x9000;
-
- GalSpriteRam[Offset] = d;
-
- if (Offset < 0x40) {
- if ((Offset & 0x01) == 0) {
- GalScrollVals[Offset >> 1] = d;
- }
- }
-
- return;
- }
-
- switch (a) {
- case 0x9800:
- case 0x9801:
- case 0x9802:
- case 0x9803: {
- ppi8255_w(0, a - 0x9800, d);
- return;
- }
-
- case 0xa000:
- case 0xa001:
- case 0xa002:
- case 0xa003: {
- ppi8255_w(1, a - 0xa000, d);
- return;
- }
-
- case 0xa800: {
- GalGfxBank[0] = d & 1;
- return;
- }
-
- case 0xa801: {
- GalIrqFire = d & 1;
- return;
- }
-
- case 0xa802: {
- GalGfxBank[1] = d & 1;
- return;
- }
-
- case 0xa803: {
- // ???
- return;
- }
-
- case 0xa804: {
- GalBackgroundEnable = d & 1;
- return;
- }
-
- case 0xa805: {
- // ???
- return;
- }
-
- case 0xa806: {
- GalFlipScreenX = d & 1;
- return;
- }
-
- case 0xa807: {
- GalFlipScreenY = d & 1;
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Write => %04X, %02X\n"), a, d);
- }
- }
-}
-
-static INT32 ScobraInit()
-{
- INT32 nRet;
-
- GalPostLoadCallbackFunction = MapScobra;
- GalSoundType = GAL_SOUND_HARDWARE_TYPE_KONAMIAY8910;
-
- nRet = GalInit(); if (nRet) return 1;
- KonamiSoundInit();
-
- GalRenderBackgroundFunction = ScrambleDrawBackground;
- GalDrawBulletsFunction = ScrambleDrawBullets;
-
- KonamiPPIInit();
-
- return nRet;
-}
-
-static INT32 ScobraeInit()
-{
- INT32 nRet;
-
- GalPostLoadCallbackFunction = MapScobra;
- GalSoundType = GAL_SOUND_HARDWARE_TYPE_KONAMIAY8910;
-
- nRet = GalInit(); if (nRet) return 1;
- KonamiSoundInit();
-
- for (INT32 Offs = 0; Offs < 0x6000; Offs++) {
- INT32 i = Offs & 0x7f;
- INT32 x = GalZ80Rom1[Offs];
-
- if (Offs & 0x80) i ^= 0x7f;
-
- if (i & 0x01) x ^= 0x49;
- if (i & 0x02) x ^= 0x21;
- if (i & 0x04) x ^= 0x18;
- if (i & 0x08) x ^= 0x12;
- if (i & 0x10) x ^= 0x84;
- if (i & 0x20) x ^= 0x24;
- if (i & 0x40) x ^= 0x40;
-
- GalZ80Rom1[Offs] = x ^ 0xff;
- }
-
- GalRenderBackgroundFunction = ScrambleDrawBackground;
- GalDrawBulletsFunction = ScrambleDrawBullets;
-
- KonamiPPIInit();
-
- return nRet;
-}
-
-static INT32 LosttombInit()
-{
- INT32 nRet;
-
- GalPostLoadCallbackFunction = MapScobra;
- GalSoundType = GAL_SOUND_HARDWARE_TYPE_KONAMIAY8910;
-
- nRet = GalInit(); if (nRet) return 1;
- KonamiSoundInit();
-
- GalTempRom = (UINT8*)BurnMalloc(GalTilesSharedRomSize);
- UINT8 *TempRom = (UINT8*)BurnMalloc(GalTilesSharedRomSize);
- BurnLoadRom(TempRom + 0x0000, GAL_ROM_OFFSET_TILES_SHARED + 0, 1);
- BurnLoadRom(TempRom + 0x0800, GAL_ROM_OFFSET_TILES_SHARED + 1, 1);
- for (UINT32 Offset = 0; Offset < GalTilesSharedRomSize; Offset++) {
- UINT32 SrcOffset = Offset & 0xa7f;
- SrcOffset |= ((BIT(Offset, 1) & BIT(Offset, 8)) | ((1 ^ BIT(Offset, 1)) & (BIT(Offset, 10)))) << 7;
- SrcOffset |= (BIT(Offset, 7) ^ (BIT(Offset, 1) & (BIT(Offset, 7) ^ BIT(Offset, 10)))) << 8;
- SrcOffset |= ((BIT(Offset, 1) & BIT(Offset, 7)) | ((1 ^ BIT(Offset, 1)) & (BIT(Offset, 8)))) << 10;
- GalTempRom[Offset] = TempRom[SrcOffset];
- }
- BurnFree(TempRom);
- GfxDecode(GalNumChars, 2, 8, 8, CharPlaneOffsets, CharXOffsets, CharYOffsets, 0x40, GalTempRom, GalChars);
- GfxDecode(GalNumSprites, 2, 16, 16, SpritePlaneOffsets, SpriteXOffsets, SpriteYOffsets, 0x100, GalTempRom, GalSprites);
- BurnFree(GalTempRom);
-
- GalRenderBackgroundFunction = ScrambleDrawBackground;
- GalDrawBulletsFunction = ScrambleDrawBullets;
-
- KonamiPPIInit();
-
- filter_rc_set_src_gain(0, 0.20);
- filter_rc_set_src_gain(1, 0.20);
- filter_rc_set_src_gain(2, 0.20);
- filter_rc_set_src_gain(3, 0.20);
- filter_rc_set_src_gain(4, 0.20);
- filter_rc_set_src_gain(5, 0.20);
-
- return nRet;
-}
-
-static void MapTazmani2()
-{
- ZetOpen(0);
- ZetMemCallback(0x0000, 0xffff, 0);
- ZetMemCallback(0x0000, 0xffff, 1);
- ZetMemCallback(0x0000, 0xffff, 2);
- ZetSetReadHandler(Tazmani2Z80Read);
- ZetSetWriteHandler(Tazmani2Z80Write);
- ZetMapArea(0x0000, (GalZ80Rom1Size > 0x8000) ? 0x7fff : GalZ80Rom1Size - 1, 0, GalZ80Rom1);
- ZetMapArea(0x0000, (GalZ80Rom1Size > 0x8000) ? 0x7fff : GalZ80Rom1Size - 1, 2, GalZ80Rom1);
- ZetMapArea(0x8000, 0x87ff, 0, GalZ80Ram1);
- ZetMapArea(0x8000, 0x87ff, 1, GalZ80Ram1);
- ZetMapArea(0x8000, 0x87ff, 2, GalZ80Ram1);
- ZetMapArea(0x8800, 0x88ff, 0, GalSpriteRam);
- ZetMapArea(0x8800, 0x88ff, 2, GalSpriteRam);
- ZetMapArea(0x9000, 0x93ff, 0, GalVideoRam);
- ZetMapArea(0x9000, 0x93ff, 1, GalVideoRam);
- ZetMapArea(0x9000, 0x93ff, 2, GalVideoRam);
- ZetClose();
-}
-
-static INT32 Tazmani2Init()
-{
- INT32 nRet;
-
- GalPostLoadCallbackFunction = MapTazmani2;
- GalSoundType = GAL_SOUND_HARDWARE_TYPE_KONAMIAY8910;
-
- nRet = GalInit(); if (nRet) return 1;
- KonamiSoundInit();
-
- GalRenderBackgroundFunction = ScrambleDrawBackground;
- GalDrawBulletsFunction = ScrambleDrawBullets;
-
- KonamiPPIInit();
-
- return nRet;
-}
-
-static INT32 AnteaterInit()
-{
- INT32 nRet;
-
- GalPostLoadCallbackFunction = MapScobra;
- GalSoundType = GAL_SOUND_HARDWARE_TYPE_KONAMIAY8910;
-
- nRet = GalInit(); if (nRet) return 1;
- KonamiSoundInit();
-
- GalTempRom = (UINT8*)BurnMalloc(GalTilesSharedRomSize);
- UINT8 *TempRom = (UINT8*)BurnMalloc(GalTilesSharedRomSize);
- BurnLoadRom(TempRom + 0x0000, GAL_ROM_OFFSET_TILES_SHARED + 0, 1);
- BurnLoadRom(TempRom + 0x0800, GAL_ROM_OFFSET_TILES_SHARED + 1, 1);
- for (UINT32 Offset = 0; Offset < GalTilesSharedRomSize; Offset++) {
- UINT32 SrcOffset = Offset & 0x9bf;
- SrcOffset |= (BIT(Offset, 4) ^ BIT(Offset, 9) ^ (BIT(Offset, 2) & BIT(Offset, 10))) << 6;
- SrcOffset |= (BIT(Offset, 2) ^ BIT(Offset, 10)) << 9;
- SrcOffset |= (BIT(Offset, 0) ^ BIT(Offset, 6) ^ 1) << 10;
- GalTempRom[Offset] = TempRom[SrcOffset];
- }
- BurnFree(TempRom);
- GfxDecode(GalNumChars, 2, 8, 8, CharPlaneOffsets, CharXOffsets, CharYOffsets, 0x40, GalTempRom, GalChars);
- GfxDecode(GalNumSprites, 2, 16, 16, SpritePlaneOffsets, SpriteXOffsets, SpriteYOffsets, 0x100, GalTempRom, GalSprites);
- BurnFree(GalTempRom);
-
- GalRenderBackgroundFunction = AnteaterDrawBackground;
- GalDrawBulletsFunction = ScrambleDrawBullets;
-
- KonamiPPIInit();
-
- filter_rc_set_src_gain(0, 0.20);
- filter_rc_set_src_gain(1, 0.20);
- filter_rc_set_src_gain(2, 0.20);
- filter_rc_set_src_gain(3, 0.20);
- filter_rc_set_src_gain(4, 0.20);
- filter_rc_set_src_gain(5, 0.20);
-
- return nRet;
-}
-
-static void AnteatergPostLoad()
-{
- ZetOpen(0);
- ZetMemCallback(0x0000, 0xffff, 0);
- ZetMemCallback(0x0000, 0xffff, 1);
- ZetMemCallback(0x0000, 0xffff, 2);
- ZetSetReadHandler(AnteatergZ80Read);
- ZetSetWriteHandler(AnteatergZ80Write);
- ZetMapArea(0x0000, 0x03ff, 0, GalZ80Rom1);
- ZetMapArea(0x0000, 0x03ff, 2, GalZ80Rom1);
- ZetMapArea(0x0400, 0x0bff, 0, GalZ80Ram1);
- ZetMapArea(0x0400, 0x0bff, 1, GalZ80Ram1);
- ZetMapArea(0x0400, 0x0bff, 2, GalZ80Ram1);
- ZetMapArea(0x0c00, 0x0fff, 0, GalVideoRam);
- ZetMapArea(0x0c00, 0x0fff, 1, GalVideoRam);
- ZetMapArea(0x0c00, 0x0fff, 2, GalVideoRam);
- ZetMapArea(0x2000, 0x20ff, 0, GalSpriteRam);
- ZetMapArea(0x2000, 0x20ff, 2, GalSpriteRam);
- ZetMapArea(0x4600, 0x4fff, 0, GalZ80Rom1 + 0x0400);
- ZetMapArea(0x4600, 0x4fff, 2, GalZ80Rom1 + 0x0400);
- ZetMapArea(0x6400, 0x7aff, 0, GalZ80Rom1 + 0x0e00);
- ZetMapArea(0x6400, 0x7aff, 2, GalZ80Rom1 + 0x0e00);
- ZetMapArea(0x7c00, 0x7fff, 0, GalVideoRam);
- ZetMapArea(0x7c00, 0x7fff, 1, GalVideoRam);
- ZetMapArea(0x7c00, 0x7fff, 2, GalVideoRam);
- ZetMapArea(0x8300, 0x98ff, 0, GalZ80Rom1 + 0x2500);
- ZetMapArea(0x8300, 0x98ff, 2, GalZ80Rom1 + 0x2500);
- ZetMapArea(0xa300, 0xa7ff, 0, GalZ80Rom1 + 0x3b00);
- ZetMapArea(0xa300, 0xa7ff, 2, GalZ80Rom1 + 0x3b00);
- ZetClose();
-}
-
-static INT32 AnteatergInit()
-{
- INT32 nRet;
-
- GalPostLoadCallbackFunction = AnteatergPostLoad;
- GalSoundType = GAL_SOUND_HARDWARE_TYPE_KONAMIAY8910;
-
- nRet = GalInit(); if (nRet) return 1;
- KonamiSoundInit();
-
- GalRenderBackgroundFunction = AnteaterDrawBackground;
- GalDrawBulletsFunction = ScrambleDrawBullets;
-
- KonamiPPIInit();
-
- filter_rc_set_src_gain(0, 0.20);
- filter_rc_set_src_gain(1, 0.20);
- filter_rc_set_src_gain(2, 0.20);
- filter_rc_set_src_gain(3, 0.20);
- filter_rc_set_src_gain(4, 0.20);
- filter_rc_set_src_gain(5, 0.20);
-
- return nRet;
-}
-
-static void AnteaterukPostLoad()
-{
- ZetOpen(0);
- ZetMemCallback(0x0000, 0xffff, 0);
- ZetMemCallback(0x0000, 0xffff, 1);
- ZetMemCallback(0x0000, 0xffff, 2);
- ZetSetReadHandler(AnteatgbZ80Read);
- ZetSetWriteHandler(AnteatgbZ80Write);
- ZetMapArea(0x0000, 0x03ff, 0, GalZ80Rom1);
- ZetMapArea(0x0000, 0x03ff, 2, GalZ80Rom1);
- ZetMapArea(0x0400, 0x0bff, 0, GalZ80Ram1);
- ZetMapArea(0x0400, 0x0bff, 1, GalZ80Ram1);
- ZetMapArea(0x0400, 0x0bff, 2, GalZ80Ram1);
- ZetMapArea(0x0c00, 0x0fff, 0, GalVideoRam);
- ZetMapArea(0x0c00, 0x0fff, 1, GalVideoRam);
- ZetMapArea(0x0c00, 0x0fff, 2, GalVideoRam);
- ZetMapArea(0x1200, 0x12ff, 0, GalSpriteRam);
- ZetMapArea(0x1200, 0x12ff, 2, GalSpriteRam);
- ZetMapArea(0x4600, 0x4fff, 0, GalZ80Rom1 + 0x0400);
- ZetMapArea(0x4600, 0x4fff, 2, GalZ80Rom1 + 0x0400);
- ZetMapArea(0x6400, 0x7aff, 0, GalZ80Rom1 + 0x0e00);
- ZetMapArea(0x6400, 0x7aff, 2, GalZ80Rom1 + 0x0e00);
- ZetMapArea(0x8300, 0x98ff, 0, GalZ80Rom1 + 0x2500);
- ZetMapArea(0x8300, 0x98ff, 2, GalZ80Rom1 + 0x2500);
- ZetMapArea(0xa300, 0xa7ff, 0, GalZ80Rom1 + 0x3b00);
- ZetMapArea(0xa300, 0xa7ff, 2, GalZ80Rom1 + 0x3b00);
- ZetClose();
-}
-
-static INT32 AnteaterukInit()
-{
- INT32 nRet;
-
- GalPostLoadCallbackFunction = AnteaterukPostLoad;
- GalSoundType = GAL_SOUND_HARDWARE_TYPE_KONAMIAY8910;
-
- nRet = GalInit(); if (nRet) return 1;
- KonamiSoundInit();
-
- GalRenderBackgroundFunction = ScrambleDrawBackground;
- GalDrawBulletsFunction = ScrambleDrawBullets;
-
- KonamiPPIInit();
-
- filter_rc_set_src_gain(0, 0.20);
- filter_rc_set_src_gain(1, 0.20);
- filter_rc_set_src_gain(2, 0.20);
- filter_rc_set_src_gain(3, 0.20);
- filter_rc_set_src_gain(4, 0.20);
- filter_rc_set_src_gain(5, 0.20);
-
- return nRet;
-}
-
-static void SuperbonPostLoad()
-{
- MapScobra();
-
- for (UINT32 Offset = 0; Offset < 0x1000; Offset++) {
- switch (Offset & 0x280) {
- case 0x000: GalZ80Rom1[Offset] ^= 0x92; break;
- case 0x080: GalZ80Rom1[Offset] ^= 0x82; break;
- case 0x200: GalZ80Rom1[Offset] ^= 0x12; break;
- case 0x280: GalZ80Rom1[Offset] ^= 0x10; break;
- }
- }
-}
-
-static INT32 SuperbonInit()
-{
- INT32 nRet;
-
- GalPostLoadCallbackFunction = SuperbonPostLoad;
- GalSoundType = GAL_SOUND_HARDWARE_TYPE_KONAMIAY8910;
-
- nRet = GalInit(); if (nRet) return 1;
- KonamiSoundInit();
-
- GalRenderBackgroundFunction = ScrambleDrawBackground;
- GalDrawBulletsFunction = ScrambleDrawBullets;
-
- KonamiPPIInit();
-
- filter_rc_set_src_gain(0, 0.20);
- filter_rc_set_src_gain(1, 0.20);
- filter_rc_set_src_gain(2, 0.20);
- filter_rc_set_src_gain(3, 0.20);
- filter_rc_set_src_gain(4, 0.20);
- filter_rc_set_src_gain(5, 0.20);
-
- return nRet;
-}
-
-static INT32 CalipsoInit()
-{
- INT32 nRet;
-
- GalPostLoadCallbackFunction = MapScobra;
- GalSoundType = GAL_SOUND_HARDWARE_TYPE_KONAMIAY8910;
-
- nRet = GalInit(); if (nRet) return 1;
- KonamiSoundInit();
-
- GalRenderBackgroundFunction = ScrambleDrawBackground;
- GalDrawBulletsFunction = ScrambleDrawBullets;
- GalExtendSpriteInfoFunction = CalipsoExtendSpriteInfo;
-
- KonamiPPIInit();
-
- filter_rc_set_src_gain(0, 0.20);
- filter_rc_set_src_gain(1, 0.20);
- filter_rc_set_src_gain(2, 0.20);
- filter_rc_set_src_gain(3, 0.20);
- filter_rc_set_src_gain(4, 0.20);
- filter_rc_set_src_gain(5, 0.20);
-
- return nRet;
-}
-
-static UINT8 MoonwarPPIReadIN0()
-{
- UINT8 Dial1 = (GalAnalogPort0 >> 8) & 0xff;
- UINT8 Dial2 = (GalAnalogPort1 >> 8) & 0xff;
- UINT8 Input0 = 0xff - GalInput[0] - GalDip[0];
- UINT8 Sign;
- UINT8 Delta;
-
- if (Dial1 >= 0xfc || (Dial1 >= 0x01 && Dial1 <= 0x04)) Dial1 = 0;
- if (Dial1 >= 0xf8) Dial1 = 0xfd;
- if (Dial1 >= 0x01 && Dial1 <= 0x07) Dial1 = 0x02;
-
- if (Dial2 >= 0xfc || (Dial2 >= 0x01 && Dial2 <= 0x04)) Dial2 = 0;
- if (Dial2 >= 0xf8) Dial2 = 0xfd;
- if (Dial2 >= 0x01 && Dial2 <= 0x07) Dial2 = 0x02;
-
- Delta = (MoonwarPortSelect ? Dial1 : Dial2);
- Sign = (Delta & 0x80) >> 3;
- Delta &= 0x0f;
-
- return (Input0 & 0xe0) | Delta | Sign;
-}
-
-static void MoonwarPortSelectWrite(UINT8 d)
-{
- MoonwarPortSelect = d & 0x10;
-}
-
-static INT32 MoonwarInit()
-{
- INT32 nRet;
-
- GalPostLoadCallbackFunction = MapScobra;
- GalSoundType = GAL_SOUND_HARDWARE_TYPE_KONAMIAY8910;
-
- nRet = GalInit(); if (nRet) return 1;
- KonamiSoundInit();
-
- GalRenderBackgroundFunction = ScrambleDrawBackground;
- GalDrawBulletsFunction = MoonwarDrawBullets;
-
- KonamiPPIInit();
-
- PPI0PortReadA = MoonwarPPIReadIN0;
- PPI0PortWriteC = MoonwarPortSelectWrite;
-
- filter_rc_set_src_gain(0, 0.20);
- filter_rc_set_src_gain(1, 0.20);
- filter_rc_set_src_gain(2, 0.20);
- filter_rc_set_src_gain(3, 0.20);
- filter_rc_set_src_gain(4, 0.20);
- filter_rc_set_src_gain(5, 0.20);
-
- return nRet;
-}
-
-static void StratgyxPostLoad()
-{
- MapTazmani2();
-
- ZetOpen(0);
- ZetSetWriteHandler(StratgyxZ80Write);
- ZetMapArea(0x9400, 0x97ff, 0, GalVideoRam);
- ZetMapArea(0x9400, 0x97ff, 1, GalVideoRam);
- ZetMapArea(0x9400, 0x97ff, 2, GalVideoRam);
- ZetClose();
-}
-
-static INT32 StratgyxInit()
-{
- INT32 nRet;
-
- GalPostLoadCallbackFunction = StratgyxPostLoad;
- GalSoundType = GAL_SOUND_HARDWARE_TYPE_KONAMIAY8910;
-
- nRet = GalInit(); if (nRet) return 1;
- KonamiSoundInit();
-
- GalCalcPaletteFunction = StratgyxCalcPalette;
- GalRenderBackgroundFunction = StratgyxDrawBackground;
-
- KonamiPPIInit();
-
- return nRet;
-}
-
-static void DarkplntPostLoad()
-{
- MapTazmani2();
-
- ZetOpen(0);
- ZetSetWriteHandler(DarkplntZ80Write);
- ZetClose();
-}
-
-static INT16 DarkplntDial = 0;
-static UINT32 DarkplntDialFrameNumberRead = 0;
-
-static UINT8 DarkplntPPIReadIN1()
-{
- UINT32 CurrentFrame = GetCurrentFrame();
-
- if (DarkplntDialFrameNumberRead != CurrentFrame) {
- if (GalInputPort3[0]) DarkplntDial -= 0x01;
- if (GalInputPort3[1]) DarkplntDial += 0x01;
- if (DarkplntDial > 0xfc) DarkplntDial = 0x00;
- if (DarkplntDial < 0) DarkplntDial = 0xfc;
- DarkplntDialFrameNumberRead = CurrentFrame;
- }
-
- static const UINT8 remap[] = {0x03, 0x02, 0x00, 0x01, 0x21, 0x20, 0x22, 0x23, 0x33, 0x32, 0x30, 0x31, 0x11, 0x10, 0x12, 0x13, 0x17, 0x16, 0x14, 0x15, 0x35, 0x34, 0x36, 0x37, 0x3f, 0x3e, 0x3c, 0x3d, 0x1d, 0x1c, 0x1e, 0x1f, 0x1b, 0x1a, 0x18, 0x19, 0x39, 0x38, 0x3a, 0x3b, 0x2b, 0x2a, 0x28, 0x29, 0x09, 0x08, 0x0a, 0x0b, 0x0f, 0x0e, 0x0c, 0x0d, 0x2d, 0x2c, 0x2e, 0x2f, 0x27, 0x26, 0x24, 0x25, 0x05, 0x04, 0x06, 0x07 };
-
- return 0xff - GalInput[1] - GalDip[1] - remap[DarkplntDial >> 2];
-}
-
-static INT32 DarkplntInit()
-{
- INT32 nRet;
-
- GalPostLoadCallbackFunction = DarkplntPostLoad;
- GalSoundType = GAL_SOUND_HARDWARE_TYPE_KONAMIAY8910;
-
- nRet = GalInit(); if (nRet) return 1;
- KonamiSoundInit();
-
- GalCalcPaletteFunction = DarkplntCalcPalette;
- GalDrawBulletsFunction = DarkplntDrawBullets;
-
- KonamiPPIInit();
- PPI0PortReadB = DarkplntPPIReadIN1;
-
- filter_rc_set_src_gain(0, 0.20);
- filter_rc_set_src_gain(1, 0.20);
- filter_rc_set_src_gain(2, 0.20);
- filter_rc_set_src_gain(3, 0.20);
- filter_rc_set_src_gain(4, 0.20);
- filter_rc_set_src_gain(5, 0.20);
-
- return nRet;
-}
-
-static INT32 RescueInit()
-{
- INT32 nRet;
-
- GalPostLoadCallbackFunction = MapScobra;
- GalSoundType = GAL_SOUND_HARDWARE_TYPE_KONAMIAY8910;
-
- nRet = GalInit(); if (nRet) return 1;
- KonamiSoundInit();
-
- GalTempRom = (UINT8*)BurnMalloc(GalTilesSharedRomSize);
- UINT8* TempRom = (UINT8*)BurnMalloc(GalTilesSharedRomSize);
- nRet = BurnLoadRom(GalTempRom + 0x0000, GAL_ROM_OFFSET_TILES_SHARED + 0, 1); if (nRet) return 1;
- nRet = BurnLoadRom(GalTempRom + 0x0800, GAL_ROM_OFFSET_TILES_SHARED + 1, 1); if (nRet) return 1;
- memcpy(TempRom, GalTempRom, GalTilesSharedRomSize);
- for (UINT32 Offset = 0; Offset < GalTilesSharedRomSize; Offset++) {
- UINT32 j = Offset & 0xa7f;
- j |= (BIT(Offset, 3) ^ BIT(Offset, 10)) << 7;
- j |= (BIT(Offset, 1) ^ BIT(Offset, 7)) << 8;
- j |= (BIT(Offset, 0) ^ BIT(Offset, 8)) << 10;
- GalTempRom[Offset] = TempRom[j];
- }
- GfxDecode(GalNumChars, 2, 8, 8, CharPlaneOffsets, CharXOffsets, CharYOffsets, 0x40, GalTempRom, GalChars);
- GfxDecode(GalNumSprites, 2, 16, 16, SpritePlaneOffsets, SpriteXOffsets, SpriteYOffsets, 0x100, GalTempRom, GalSprites);
- BurnFree(TempRom);
- BurnFree(GalTempRom);
-
- GalCalcPaletteFunction = RescueCalcPalette;
- GalRenderBackgroundFunction = RescueDrawBackground;
- GalDrawBulletsFunction = ScrambleDrawBullets;
-
- KonamiPPIInit();
-
- filter_rc_set_src_gain(0, 0.20);
- filter_rc_set_src_gain(1, 0.20);
- filter_rc_set_src_gain(2, 0.20);
- filter_rc_set_src_gain(3, 0.20);
- filter_rc_set_src_gain(4, 0.20);
- filter_rc_set_src_gain(5, 0.20);
-
- return nRet;
-}
-
-static INT32 MinefldInit()
-{
- INT32 nRet;
-
- GalPostLoadCallbackFunction = MapScobra;
- GalSoundType = GAL_SOUND_HARDWARE_TYPE_KONAMIAY8910;
-
- nRet = GalInit(); if (nRet) return 1;
- KonamiSoundInit();
-
- GalTempRom = (UINT8*)BurnMalloc(GalTilesSharedRomSize);
- UINT8* TempRom = (UINT8*)BurnMalloc(GalTilesSharedRomSize);
- nRet = BurnLoadRom(GalTempRom + 0x0000, GAL_ROM_OFFSET_TILES_SHARED + 0, 1); if (nRet) return 1;
- nRet = BurnLoadRom(GalTempRom + 0x0800, GAL_ROM_OFFSET_TILES_SHARED + 1, 1); if (nRet) return 1;
- memcpy(TempRom, GalTempRom, GalTilesSharedRomSize);
- for (UINT32 Offset = 0; Offset < GalTilesSharedRomSize; Offset++) {
- UINT32 j = Offset & 0xd5f;
- j |= (BIT(Offset, 3) ^ BIT(Offset, 7)) << 5;
- j |= (BIT(Offset, 2) ^ BIT(Offset, 9) ^ (BIT(Offset, 0) & BIT(Offset, 5)) ^ (BIT(Offset, 3) & BIT(Offset, 7) & (BIT(Offset, 0) ^ BIT(Offset, 5)))) << 7;
- j |= (BIT(Offset, 0) ^ BIT(Offset, 5) ^ (BIT(Offset, 3) & BIT(Offset, 7))) << 9;
- GalTempRom[Offset] = TempRom[j];
- }
- GfxDecode(GalNumChars, 2, 8, 8, CharPlaneOffsets, CharXOffsets, CharYOffsets, 0x40, GalTempRom, GalChars);
- GfxDecode(GalNumSprites, 2, 16, 16, SpritePlaneOffsets, SpriteXOffsets, SpriteYOffsets, 0x100, GalTempRom, GalSprites);
- BurnFree(TempRom);
- BurnFree(GalTempRom);
-
- GalCalcPaletteFunction = MinefldCalcPalette;
- GalRenderBackgroundFunction = MinefldDrawBackground;
- GalDrawBulletsFunction = ScrambleDrawBullets;
-
- KonamiPPIInit();
-
- filter_rc_set_src_gain(0, 0.20);
- filter_rc_set_src_gain(1, 0.20);
- filter_rc_set_src_gain(2, 0.20);
- filter_rc_set_src_gain(3, 0.20);
- filter_rc_set_src_gain(4, 0.20);
- filter_rc_set_src_gain(5, 0.20);
-
- return nRet;
-}
-
-static void HustlerPostLoad()
-{
- MapScobra();
-
- ZetOpen(0);
- ZetSetReadHandler(HustlerZ80Read);
- ZetSetWriteHandler(HustlerZ80Write);
- ZetClose();
-
- for (UINT32 Offset = 0; Offset < GalZ80Rom1Size; Offset++) {
- UINT8 XorMask;
- INT32 Bits[8];
-
- for (UINT32 i = 0; i < 8; i++) Bits[i] = (Offset >> i) & 1;
-
- XorMask = 0xff;
- if (Bits[0] ^ Bits[1]) XorMask ^= 0x01;
- if (Bits[3] ^ Bits[6]) XorMask ^= 0x02;
- if (Bits[4] ^ Bits[5]) XorMask ^= 0x04;
- if (Bits[0] ^ Bits[2]) XorMask ^= 0x08;
- if (Bits[2] ^ Bits[3]) XorMask ^= 0x10;
- if (Bits[1] ^ Bits[5]) XorMask ^= 0x20;
- if (Bits[0] ^ Bits[7]) XorMask ^= 0x40;
- if (Bits[4] ^ Bits[6]) XorMask ^= 0x80;
-
- GalZ80Rom1[Offset] ^= XorMask;
- }
-}
-
-static INT32 HustlerInit()
-{
- INT32 nRet;
-
- GalPostLoadCallbackFunction = HustlerPostLoad;
- GalSoundType = GAL_SOUND_HARDWARE_TYPE_FROGGERAY8910;
-
- nRet = GalInit(); if (nRet) return 1;
- FroggerSoundInit();
-
- GalRenderBackgroundFunction = ScrambleDrawBackground;
- GalDrawBulletsFunction = ScrambleDrawBullets;
-
- KonamiPPIInit();
-
- GalSpriteClipStart = 7;
- GalSpriteClipEnd = 246;
-
- return nRet;
-}
-
-static void BilliardPostLoad()
-{
- MapScobra();
-
- ZetOpen(0);
- ZetSetReadHandler(HustlerZ80Read);
- ZetSetWriteHandler(HustlerZ80Write);
- ZetClose();
-
- for (UINT32 Offset = 0; Offset < GalZ80Rom1Size; Offset++) {
- UINT8 XorMask;
- INT32 Bits[8];
-
- for (UINT32 i = 0; i < 8; i++) Bits[i] = (Offset >> i) & 1;
-
- XorMask = 0x55;
- if (Bits[2] ^ ( Bits[3] & Bits[6])) XorMask ^= 0x01;
- if (Bits[4] ^ ( Bits[5] & Bits[7])) XorMask ^= 0x02;
- if (Bits[0] ^ ( Bits[7] & !Bits[3])) XorMask ^= 0x04;
- if (Bits[3] ^ ((!Bits[0]) & Bits[2])) XorMask ^= 0x08;
- if (Bits[5] ^ ((!Bits[4]) & Bits[1])) XorMask ^= 0x10;
- if (Bits[6] ^ ((!Bits[2]) & !Bits[5])) XorMask ^= 0x20;
- if (Bits[1] ^ ((!Bits[6]) & !Bits[4])) XorMask ^= 0x40;
- if (Bits[7] ^ ((!Bits[1]) & Bits[0])) XorMask ^= 0x80;
-
- GalZ80Rom1[Offset] ^= XorMask;
- GalZ80Rom1[Offset] = BITSWAP08(GalZ80Rom1[Offset], 6, 1, 2, 5, 4, 3, 0, 7);
- }
-}
-
-static INT32 BilliardInit()
-{
- INT32 nRet;
-
- GalPostLoadCallbackFunction = BilliardPostLoad;
- GalSoundType = GAL_SOUND_HARDWARE_TYPE_FROGGERAY8910;
-
- nRet = GalInit(); if (nRet) return 1;
- FroggerSoundInit();
-
- GalRenderBackgroundFunction = ScrambleDrawBackground;
- GalDrawBulletsFunction = ScrambleDrawBullets;
-
- KonamiPPIInit();
-
- GalSpriteClipStart = 7;
- GalSpriteClipEnd = 246;
-
- return nRet;
-}
-
-static void HustlerbPostLoad()
-{
- MapScobra();
-
- ZetOpen(0);
- ZetSetReadHandler(HustlerbZ80Read);
- ZetSetWriteHandler(HustlerbZ80Write);
- ZetClose();
-
- FroggerSoundNoEncryptionInit();
- ZetOpen(1);
- ZetSetInHandler(HustlerbSoundZ80PortRead);
- ZetSetOutHandler(HustlerbSoundZ80PortWrite);
- ZetMapArea(0x8000, 0x83ff, 0, GalZ80Ram2);
- ZetMapArea(0x8000, 0x83ff, 1, GalZ80Ram2);
- ZetMapArea(0x8000, 0x83ff, 2, GalZ80Ram2);
- ZetClose();
-}
-
-static INT32 HustlerbInit()
-{
- INT32 nRet;
-
- GalPostLoadCallbackFunction = HustlerbPostLoad;
- GalSoundType = GAL_SOUND_HARDWARE_TYPE_FROGGERAY8910;
-
- nRet = GalInit();
-
- GalRenderBackgroundFunction = ScrambleDrawBackground;
- GalDrawBulletsFunction = ScrambleDrawBullets;
-
- KonamiPPIInit();
-
- GalSpriteClipStart = 7;
- GalSpriteClipEnd = 246;
-
- return nRet;
-}
-
-static void MapMimonkey()
-{
- MapScobra();
-
- ZetOpen(0);
- ZetSetWriteHandler(MimonkeyZ80Write);
- ZetMemCallback(0x4000, 0x7fff, 0);
- ZetMemCallback(0x4000, 0x7fff, 2);
- ZetMapArea(0xc000, 0xffff, 0, GalZ80Rom1 + 0x4000);
- ZetMapArea(0xc000, 0xffff, 2, GalZ80Rom1 + 0x4000);
- ZetClose();
-}
-
-static void MimonkeyPostLoad()
-{
- static const UINT8 XorTable[16][16] = {
- { 0x03, 0x03, 0x05, 0x07, 0x85, 0x00, 0x85, 0x85, 0x80, 0x80, 0x06, 0x03, 0x03, 0x00, 0x00, 0x81 },
- { 0x83, 0x87, 0x03, 0x87, 0x06, 0x00, 0x06, 0x04, 0x02, 0x00, 0x84, 0x84, 0x04, 0x00, 0x01, 0x83 },
- { 0x82, 0x82, 0x84, 0x02, 0x04, 0x00, 0x00, 0x03, 0x82, 0x00, 0x06, 0x80, 0x03, 0x00, 0x81, 0x07 },
- { 0x06, 0x06, 0x82, 0x81, 0x85, 0x00, 0x04, 0x07, 0x81, 0x05, 0x04, 0x00, 0x03, 0x00, 0x82, 0x84 },
- { 0x07, 0x07, 0x80, 0x07, 0x07, 0x00, 0x85, 0x86, 0x00, 0x07, 0x06, 0x04, 0x85, 0x00, 0x86, 0x85 },
- { 0x81, 0x83, 0x02, 0x02, 0x87, 0x00, 0x86, 0x03, 0x04, 0x06, 0x80, 0x05, 0x87, 0x00, 0x81, 0x81 },
- { 0x01, 0x01, 0x00, 0x07, 0x07, 0x00, 0x01, 0x01, 0x07, 0x07, 0x06, 0x00, 0x06, 0x00, 0x07, 0x07 },
- { 0x80, 0x87, 0x81, 0x87, 0x83, 0x00, 0x84, 0x01, 0x01, 0x86, 0x86, 0x80, 0x86, 0x00, 0x86, 0x86 },
- { 0x03, 0x03, 0x05, 0x07, 0x85, 0x00, 0x85, 0x85, 0x80, 0x80, 0x06, 0x03, 0x03, 0x00, 0x00, 0x81 },
- { 0x83, 0x87, 0x03, 0x87, 0x06, 0x00, 0x06, 0x04, 0x02, 0x00, 0x84, 0x84, 0x04, 0x00, 0x01, 0x83 },
- { 0x82, 0x82, 0x84, 0x02, 0x04, 0x00, 0x00, 0x03, 0x82, 0x00, 0x06, 0x80, 0x03, 0x00, 0x81, 0x07 },
- { 0x06, 0x06, 0x82, 0x81, 0x85, 0x00, 0x04, 0x07, 0x81, 0x05, 0x04, 0x00, 0x03, 0x00, 0x82, 0x84 },
- { 0x07, 0x07, 0x80, 0x07, 0x07, 0x00, 0x85, 0x86, 0x00, 0x07, 0x06, 0x04, 0x85, 0x00, 0x86, 0x85 },
- { 0x81, 0x83, 0x02, 0x02, 0x87, 0x00, 0x86, 0x03, 0x04, 0x06, 0x80, 0x05, 0x87, 0x00, 0x81, 0x81 },
- { 0x01, 0x01, 0x00, 0x07, 0x07, 0x00, 0x01, 0x01, 0x07, 0x07, 0x06, 0x00, 0x06, 0x00, 0x07, 0x07 },
- { 0x80, 0x87, 0x81, 0x87, 0x83, 0x00, 0x84, 0x01, 0x01, 0x86, 0x86, 0x80, 0x86, 0x00, 0x86, 0x86 }
- };
-
- INT32 Ctr = 0, Line, Col;
-
- for (INT32 Offset = 0; Offset < 0x4000; Offset++) {
- Line = (Ctr & 0x07) | ((Ctr & 0x200) >> 6);
- Col = ((GalZ80Rom1[Offset] & 0x80) >> 4) | (GalZ80Rom1[Offset] & 0x07);
- GalZ80Rom1[Offset] = GalZ80Rom1[Offset] ^ XorTable[Line][Col];
- Ctr++;
- }
-
- MapMimonkey();
-}
-
-static INT32 MimonkeyInit()
-{
- INT32 nRet;
-
- GalPostLoadCallbackFunction = MimonkeyPostLoad;
- GalSoundType = GAL_SOUND_HARDWARE_TYPE_KONAMIAY8910;
-
- nRet = GalInit(); if (nRet) return 1;
- KonamiSoundInit();
-
- GalRenderBackgroundFunction = ScrambleDrawBackground;
- GalDrawBulletsFunction = ScrambleDrawBullets;
- GalExtendTileInfoFunction = MimonkeyExtendTileInfo;
- GalExtendSpriteInfoFunction = MimonkeyExtendSpriteInfo;
-
- KonamiPPIInit();
-
- filter_rc_set_src_gain(0, 0.20);
- filter_rc_set_src_gain(1, 0.20);
- filter_rc_set_src_gain(2, 0.20);
- filter_rc_set_src_gain(3, 0.20);
- filter_rc_set_src_gain(4, 0.20);
- filter_rc_set_src_gain(5, 0.20);
-
- return nRet;
-}
-
-static INT32 MimonscoInit()
-{
- INT32 nRet;
-
- GalPostLoadCallbackFunction = MapMimonkey;
- GalSoundType = GAL_SOUND_HARDWARE_TYPE_KONAMIAY8910;
-
- nRet = GalInit(); if (nRet) return 1;
- KonamiSoundInit();
-
- GalRenderBackgroundFunction = ScrambleDrawBackground;
- GalDrawBulletsFunction = ScrambleDrawBullets;
- GalExtendTileInfoFunction = MimonkeyExtendTileInfo;
- GalExtendSpriteInfoFunction = MimonkeyExtendSpriteInfo;
-
- KonamiPPIInit();
-
- filter_rc_set_src_gain(0, 0.20);
- filter_rc_set_src_gain(1, 0.20);
- filter_rc_set_src_gain(2, 0.20);
- filter_rc_set_src_gain(3, 0.20);
- filter_rc_set_src_gain(4, 0.20);
- filter_rc_set_src_gain(5, 0.20);
-
- return nRet;
-}
-
-struct BurnDriver BurnDrvScobra = {
- "scobra", NULL, NULL, NULL, "1981",
- "Super Cobra\0", NULL, "Konami", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_HORSHOOT, 0,
- NULL, ScobraRomInfo, ScobraRomName, NULL, NULL, SfxInputInfo, ScobraDIPInfo,
- ScobraInit, KonamiExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvScobras = {
- "scobras", "scobra", NULL, NULL, "1981",
- "Super Cobra (Stern)\0", NULL, "Konami (Stern license)", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_HORSHOOT, 0,
- NULL, ScobrasRomInfo, ScobrasRomName, NULL, NULL, SfxInputInfo, ScobrasDIPInfo,
- ScobraInit, KonamiExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvScobrase = {
- "scobrase", "scobra", NULL, NULL, "1981",
- "Super Cobra (Sega)\0", NULL, "Konami (Sega license)", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED, 2, HARDWARE_GALAXIAN, GBF_HORSHOOT, 0,
- NULL, ScobraseRomInfo, ScobraseRomName, NULL, NULL, SfxInputInfo, ScobrasDIPInfo,
- ScobraInit, KonamiExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvScobrab = {
- "scobrab", "scobra", NULL, NULL, "1981",
- "Super Cobra (bootleg)\0", NULL, "bootleg", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_BOOTLEG, 2, HARDWARE_GALAXIAN, GBF_HORSHOOT, 0,
- NULL, ScobrabRomInfo, ScobrabRomName, NULL, NULL, SfxInputInfo, ScobrasDIPInfo,
- ScobraInit, KonamiExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvScobrae = {
- "scobrae", "scobra", NULL, NULL, "1981",
- "Super Cobra (Stern) (encrypted, KONATEC XC-103SS CPU)\0", NULL, "Konami (Stern license)", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_HORSHOOT, 0,
- NULL, ScobraeRomInfo, ScobraeRomName, NULL, NULL, SfxInputInfo, ScobrasDIPInfo,
- ScobraeInit, KonamiExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvSuprheli = {
- "suprheli", "scobra", NULL, NULL, "1981",
- "Super Heli (Super Cobra bootleg)\0", NULL, "bootleg", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_BOOTLEG, 2, HARDWARE_GALAXIAN, GBF_HORSHOOT, 0,
- NULL, SuprheliRomInfo, SuprheliRomName, NULL, NULL, SfxInputInfo, ScobrasDIPInfo,
- ScobraInit, KonamiExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvLosttomb = {
- "losttomb", NULL, NULL, NULL, "1982",
- "Lost Tomb (Easy)\0", NULL, "Stern", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_MAZE, 0,
- NULL, LosttombRomInfo, LosttombRomName, NULL, NULL, LosttombInputInfo, LosttombDIPInfo,
- LosttombInit, KonamiExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvLosttombh = {
- "losttombh", "losttomb", NULL, NULL, "1982",
- "Lost Tomb (Hard)\0", NULL, "Stern", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_MAZE, 0,
- NULL, LosttombhRomInfo, LosttombhRomName, NULL, NULL, LosttombInputInfo, LosttombDIPInfo,
- LosttombInit, KonamiExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvArmorcar = {
- "armorcar", NULL, NULL, NULL, "1981",
- "Armored Car (set 1)\0", NULL, "Stern", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_MAZE, 0,
- NULL, ArmorcarRomInfo, ArmorcarRomName, NULL, NULL, AtlantisInputInfo, ArmorcarDIPInfo,
- ScobraInit, KonamiExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvArmorcar2 = {
- "armorcar2", "armorcar", NULL, NULL, "1981",
- "Armored Car (set 2)\0", NULL, "Stern", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_MAZE, 0,
- NULL, Armorcar2RomInfo, Armorcar2RomName, NULL, NULL, AtlantisInputInfo, ArmorcarDIPInfo,
- ScobraInit, KonamiExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvTazmania = {
- "tazmania", NULL, NULL, NULL, "1982",
- "Tazz-Mania (set 1)\0", NULL, "Stern", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_MAZE, 0,
- NULL, TazmaniaRomInfo, TazmaniaRomName, NULL, NULL, TazmaniaInputInfo, ArmorcarDIPInfo,
- ScobraInit, KonamiExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvTazmani2 = {
- "tazmani2", "tazmania", NULL, NULL, "1982",
- "Tazz-Mania (set 2)\0", NULL, "Stern", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_MAZE, 0,
- NULL, Tazmani2RomInfo, Tazmani2RomName, NULL, NULL, TazmaniaInputInfo, ArmorcarDIPInfo,
- Tazmani2Init, KonamiExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvAnteater = {
- "anteater", NULL, NULL, NULL, "1982",
- "Anteater\0", NULL, "Stern (Tago license)", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_MAZE, 0,
- NULL, AnteaterRomInfo, AnteaterRomName, NULL, NULL, AnteaterInputInfo, AnteaterDIPInfo,
- AnteaterInit, KonamiExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvAnteaterg = {
- "anteaterg", "anteater", NULL, NULL, "1983",
- "Ameisenbaer (German)\0", NULL, "TV-Tuning (F.E.G. license)", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED, 2, HARDWARE_GALAXIAN, GBF_MAZE, 0,
- NULL, AnteatergRomInfo, AnteatergRomName, NULL, NULL, AnteatergInputInfo, AnteatergDIPInfo,
- AnteatergInit, KonamiExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvAnteateruk = {
- "anteateruk", "anteater", NULL, NULL, "1983",
- "The Anteater (UK)\0", NULL, "Free Enterprise Games", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_MAZE, 0,
- NULL, AnteaterukRomInfo, AnteaterukRomName, NULL, NULL, AnteaterukInputInfo, AnteaterukDIPInfo,
- AnteaterukInit, KonamiExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvSpdcoin = {
- "spdcoin", NULL, NULL, NULL, "1984",
- "Speed Coin (prototype)\0", NULL, "Stern", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_PROTOTYPE, 2, HARDWARE_GALAXIAN, GBF_MISC, 0,
- NULL, SpdcoinRomInfo, SpdcoinRomName, NULL, NULL, SpdcoinInputInfo, SpdcoinDIPInfo,
- ScobraInit, KonamiExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvSuperbon = {
- "superbon", NULL, NULL, NULL, "1985",
- "Agent Super Bond (scobra hardware)\0", "Bad Colours", "Signaton USA", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_MAZE, 0,
- NULL, SuperbonRomInfo, SuperbonRomName, NULL, NULL, SuperbonInputInfo, SuperbonDIPInfo,
- SuperbonInit, KonamiExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvCalipso = {
- "calipso", NULL, NULL, NULL, "1982",
- "Calipso\0", NULL, "Stern (Tago license)", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_MAZE, 0,
- NULL, CalipsoRomInfo, CalipsoRomName, NULL, NULL, CalipsoInputInfo, CalipsoDIPInfo,
- CalipsoInit, KonamiExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvMoonwar = {
- "moonwar", NULL, NULL, NULL, "1981",
- "Moonwar\0", NULL, "Stern", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_SHOOT, 0,
- NULL, MoonwarRomInfo, MoonwarRomName, NULL, NULL, MoonwarInputInfo, MoonwarDIPInfo,
- MoonwarInit, KonamiExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvMoonwara = {
- "moonwara", "moonwar", NULL, NULL, "1981",
- "Moonwar (older)\0", NULL, "Stern", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_SHOOT, 0,
- NULL, MoonwaraRomInfo, MoonwaraRomName, NULL, NULL, MoonwarInputInfo, MoonwaraDIPInfo,
- MoonwarInit, KonamiExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvStratgyx = {
- "stratgyx", NULL, NULL, NULL, "1981",
- "Strategy X\0", NULL, "Konami", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, StratgyxRomInfo, StratgyxRomName, NULL, NULL, StratgyxInputInfo, StratgyxDIPInfo,
- StratgyxInit, KonamiExit, GalFrame, NULL, GalScan,
- NULL, 392, 256, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvStratgys = {
- "stratgys", "stratgyx", NULL, NULL, "1981",
- "Strategy X (Stern)\0", NULL, "Konami (Stern License)", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, StratgysRomInfo, StratgysRomName, NULL, NULL, StratgyxInputInfo, StratgyxDIPInfo,
- StratgyxInit, KonamiExit, GalFrame, NULL, GalScan,
- NULL, 392, 256, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvStrongx = {
- "strongx", "stratgyx", NULL, NULL, "1982",
- "Strong X\0", NULL, "bootleg", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_VERSHOOT, 0,
- NULL, StrongxRomInfo, StrongxRomName, NULL, NULL, StratgyxInputInfo, StratgyxDIPInfo,
- StratgyxInit, KonamiExit, GalFrame, NULL, GalScan,
- NULL, 392, 256, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvDarkplnt = {
- "darkplnt", NULL, NULL, NULL, "1982",
- "Dark Planet\0", "Dial doesn't work very well", "Stern", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_SHOOT, 0,
- NULL, DarkplntRomInfo, DarkplntRomName, NULL, NULL, DarkplntInputInfo, DarkplntDIPInfo,
- DarkplntInit, KonamiExit, GalFrame, NULL, GalScan,
- NULL, 392, 256, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvRescue = {
- "rescue", NULL, NULL, NULL, "1982",
- "Rescue\0", NULL, "Stern", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_HORSHOOT, 0,
- NULL, RescueRomInfo, RescueRomName, NULL, NULL, RescueInputInfo, RescueDIPInfo,
- RescueInit, KonamiExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvAponow = {
- "aponow", "rescue", NULL, NULL, "1982",
- "Apocaljpse Now\0", NULL, "bootleg", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_BOOTLEG, 2, HARDWARE_GALAXIAN, GBF_HORSHOOT, 0,
- NULL, AponowRomInfo, AponowRomName, NULL, NULL, RescueInputInfo, RescueDIPInfo,
- RescueInit, KonamiExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvMinefld = {
- "minefld", NULL, NULL, NULL, "1983",
- "Minefield\0", NULL, "Stern", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_HORSHOOT, 0,
- NULL, MinefldRomInfo, MinefldRomName, NULL, NULL, RescueInputInfo, MinefldDIPInfo,
- MinefldInit, KonamiExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvHustler = {
- "hustler", NULL, NULL, NULL, "1981",
- "Video Hustler\0", NULL, "Konami", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_SPORTSMISC, 0,
- NULL, HustlerRomInfo, HustlerRomName, NULL, NULL, HustlerInputInfo, HustlerDIPInfo,
- HustlerInit, KonamiExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvBilliard = {
- "billiard", "hustler", NULL, NULL, "1981",
- "The Billiards\0", NULL, "bootleg", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_BOOTLEG | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_SPORTSMISC, 0,
- NULL, BilliardRomInfo, BilliardRomName, NULL, NULL, HustlerInputInfo, HustlerDIPInfo,
- BilliardInit, KonamiExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvHustlerb = {
- "hustlerb", "hustler", NULL, NULL, "1981",
- "Video Hustler (bootleg)\0", NULL, "bootleg", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_BOOTLEG | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_SPORTSMISC, 0,
- NULL, HustlerbRomInfo, HustlerbRomName, NULL, NULL, HustlerInputInfo, HustlerDIPInfo,
- HustlerbInit, KonamiExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvMimonkey = {
- "mimonkey", NULL, NULL, NULL, "198?",
- "Mighty Monkey\0", NULL, "Universal Video Games", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED, 2, HARDWARE_GALAXIAN, GBF_HORSHOOT, 0,
- NULL, MimonkeyRomInfo, MimonkeyRomName, NULL, NULL, AtlantisInputInfo, MimonkeyDIPInfo,
- MimonkeyInit, KonamiExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvMimonsco = {
- "mimonsco", "mimonkey", NULL, NULL, "198?",
- "Mighty Monkey (bootleg on Super Cobra hardware)\0", NULL, "bootleg", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_BOOTLEG, 2, HARDWARE_GALAXIAN, GBF_HORSHOOT, 0,
- NULL, MimonscoRomInfo, MimonscoRomName, NULL, NULL, AtlantisInputInfo, MimonscoDIPInfo,
- MimonscoInit, KonamiExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-// Dambusters based hardware - background can take priority over all graphics except high colour chars
-static struct BurnRomInfo DambustrRomDesc[] = {
- { "db11a.pr11", 0x01000, 0x427bd3fb, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "db9a.pr9", 0x01000, 0x57164563, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "db10a.pr10", 0x01000, 0x075b9c5e, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "db12a.pr12", 0x01000, 0xed01a68b, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "db8a.pr8", 0x01000, 0xfd041ff4, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "db6a.pr6", 0x01000, 0x448db54b, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "db7a.pr7", 0x01000, 0x675b1f5e, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "db5a.pr5", 0x01000, 0x75659ecc, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "db3a.pr3", 0x01000, 0x9e9a9710, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "db1a.pr1", 0x01000, 0x4cb964cd, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "db4a.pr3", 0x01000, 0xd9d2df33, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "db2a.pr2", 0x01000, 0x0a0a6af5, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "mi-7603-5.ic4", 0x00020, 0xf131f92f, BRF_GRA | GAL_ROM_PROM },
-
- { "mi-7603-5.ic3", 0x00020, 0xe2a54c47, BRF_OPT }, // timing?
-};
-
-STD_ROM_PICK(Dambustr)
-STD_ROM_FN(Dambustr)
-
-static struct BurnRomInfo DambustraRomDesc[] = {
- { "db11.pr11", 0x01000, 0x427bd3fb, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "db9a.pr9", 0x01000, 0x57164563, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "db10a.pr10", 0x01000, 0x075b9c5e, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "db12a.pr12", 0x01000, 0xed01a68b, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "db8a.pr8", 0x01000, 0xfd041ff4, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "db6.pr6", 0x01000, 0x56d301a9, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "db7a.pr7", 0x01000, 0x675b1f5e, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "db5a.pr5", 0x01000, 0x75659ecc, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "db3a.rom", 0x01000, 0x2347e26e, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "db1a.pr1", 0x01000, 0x4cb964cd, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "db4a.pr3", 0x01000, 0xd9d2df33, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "db2a.pr2", 0x01000, 0x0a0a6af5, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "mi-7603-5.ic4", 0x00020, 0xf131f92f, BRF_GRA | GAL_ROM_PROM },
-
- { "mi-7603-5.ic3", 0x00020, 0xe2a54c47, BRF_OPT }, // timing?
-};
-
-STD_ROM_PICK(Dambustra)
-STD_ROM_FN(Dambustra)
-
-static struct BurnRomInfo DambustrukRomDesc[] = {
- { "db11.bin", 0x01000, 0x9e6b34fe, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "db9.pr9", 0x01000, 0x57164563, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "db10p.bin", 0x01000, 0xc129c57b, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "db12.bin", 0x01000, 0xea4c65f5, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "db8.pr8", 0x01000, 0xfd041ff4, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "db6p.bin", 0x01000, 0x35dcee01, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "db7.pr7", 0x01000, 0x675b1f5e, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
- { "db5.pr5", 0x01000, 0x75659ecc, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "db3.pr3", 0x01000, 0x9e9a9710, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "db1ap.pr1", 0x01000, 0x4cb964cd, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "db4.pr3", 0x01000, 0xd9d2df33, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "db2.pr2", 0x01000, 0x0a0a6af5, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "mi-7603-5.ic4", 0x00020, 0xf131f92f, BRF_GRA | GAL_ROM_PROM },
-
- { "mi-7603-5.ic3", 0x00020, 0xe2a54c47, BRF_OPT }, // timing?
-};
-
-STD_ROM_PICK(Dambustruk)
-STD_ROM_FN(Dambustruk)
-
-UINT8 __fastcall DambustrZ80Read(UINT16 a)
-{
- if (a >= 0xd900 && a <= 0xdbff) {
- // ???
- return 0xff;
- }
-
- switch (a) {
- case 0xe000: {
- return GalInput[0] | GalDip[0];
- }
-
- case 0xe800: {
- return GalInput[1] | GalDip[1];
- }
-
- case 0xf000: {
- return GalInput[2] | GalDip[2];
- }
-
- case 0xf800: {
- // watchdog read
- return 0xff;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Read => %04X\n"), a);
- }
- }
-
- return 0xff;
-}
-
-void __fastcall DambustrZ80Write(UINT16 a, UINT8 d)
-{
- if (a >= 0xd800 && a <= 0xd8ff) {
- INT32 Offset = a - 0xd800;
-
- GalSpriteRam[Offset] = d;
-
- if (Offset < 0x40) {
- if ((Offset & 0x01) == 0) {
- GalScrollVals[Offset >> 1] = d;
- }
- }
-
- return;
- }
-
- if (a >= 0xd900 && a <= 0xdbff) {
- // ???
- return;
- }
-
- switch (a) {
- case 0x8000: {
- DambustrBgColour1 = (BIT(d, 2) << 2) | (BIT(d, 1) << 1) | BIT(d, 0);
- DambustrBgColour2 = (BIT(d, 6) << 2) | (BIT(d, 5) << 1) | BIT(d, 4);
- DambustrBgPriority = BIT(d, 3);
- GalGfxBank[0] = BIT(d, 7);
- return;
- }
-
- case 0x8001: {
- DambustrBgSplitLine = d;
- return;
- }
-
- case 0xe002:
- case 0xe003: {
- // coin_count_0_w
- return;
- }
-
- case 0xe004:
- case 0xe005:
- case 0xe006:
- case 0xe007: {
- GalaxianLfoFreqWrite(a - 0xe004, d);
- return;
- }
-
- case 0xe800:
- case 0xe801:
- case 0xe802:
- case 0xe803:
- case 0xe804:
- case 0xe805:
- case 0xe806:
- case 0xe807: {
- GalaxianSoundWrite(a - 0xe800, d);
- return;
- }
-
- case 0xf001: {
- GalIrqFire = d & 1;
- return;
- }
-
- case 0xf004: {
- GalStarsEnable = d & 0x01;
- if (!GalStarsEnable) GalStarsScrollPos = -1;
- return;
- }
-
- case 0xf006: {
- GalFlipScreenX = d & 1;
- return;
- }
-
- case 0xf007: {
- GalFlipScreenY = d & 1;
- return;
- }
-
- case 0xf800: {
- GalPitch = d;
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Write => %04X, %02X\n"), a, d);
- }
- }
-}
-
-UINT8 __fastcall DambustrZ80PortRead(UINT16 a)
-{
- a &= 0xff;
-
- switch (a) {
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Port Read => %02X\n"), a);
- }
- }
-
- return 0;
-}
-
-void __fastcall DambustrZ80PortWrite(UINT16 a, UINT8 d)
-{
- a &= 0xff;
-
- switch (a) {
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Port Write => %02X, %02X\n"), a, d);
- }
- }
-}
-
-static void DambustrPostLoad()
-{
- UINT8 Temp;
-
- GalTempRom = (UINT8*)BurnMalloc(0x4000);
- memcpy(GalTempRom, GalZ80Rom1, 0x4000);
- for (INT32 i = 0; i < 0x4000; i++) {
- GalZ80Rom1[i] = GalTempRom[BITSWAP16(i, 15, 14, 13, 12, 4, 10, 9, 8, 7, 6, 5, 3, 11, 2, 1, 0)];
- }
- BurnFree(GalTempRom);
-
- for (INT32 i = 0; i < 0x1000; i++) {
- Temp = GalZ80Rom1[0x5000 + i];
- GalZ80Rom1[0x5000 + i] = GalZ80Rom1[0x6000 + i];
- GalZ80Rom1[0x6000 + i] = GalZ80Rom1[0x1000 + i];
- GalZ80Rom1[0x1000 + i] = Temp;
- }
-
- for (INT32 i = 0; i < 0x1000; i++) {
- GalZ80Rom1[0x1000 + i] = BITSWAP08(GalZ80Rom1[0x1000 + i], 7, 6, 5, 1, 3, 2, 4, 0);
- GalZ80Rom1[0x4000 + i] = BITSWAP08(GalZ80Rom1[0x4000 + i], 7, 6, 5, 1, 3, 2, 4, 0);
- GalZ80Rom1[0x5000 + i] = BITSWAP08(GalZ80Rom1[0x5000 + i], 7, 6, 5, 1, 3, 2, 4, 0);
- }
-
- ZetOpen(0);
- ZetMemCallback(0x0000, 0xffff, 0);
- ZetMemCallback(0x0000, 0xffff, 1);
- ZetMemCallback(0x0000, 0xffff, 2);
- ZetSetReadHandler(DambustrZ80Read);
- ZetSetWriteHandler(DambustrZ80Write);
- ZetSetInHandler(DambustrZ80PortRead);
- ZetSetOutHandler(DambustrZ80PortWrite);
- ZetMapArea(0x0000, (GalZ80Rom1Size >= 0x8000) ? 0x7fff : GalZ80Rom1Size - 1, 0, GalZ80Rom1);
- ZetMapArea(0x0000, (GalZ80Rom1Size >= 0x8000) ? 0x7fff : GalZ80Rom1Size - 1, 2, GalZ80Rom1);
- ZetMapArea(0xc000, 0xc7ff, 0, GalZ80Ram1);
- ZetMapArea(0xc000, 0xc7ff, 1, GalZ80Ram1);
- ZetMapArea(0xc000, 0xc7ff, 2, GalZ80Ram1);
- ZetMapArea(0xd000, 0xd3ff, 0, GalVideoRam);
- ZetMapArea(0xd000, 0xd3ff, 1, GalVideoRam);
- ZetMapArea(0xd000, 0xd3ff, 2, GalVideoRam);
- ZetMapArea(0xd400, 0xd7ff, 0, GalVideoRam);
- ZetMapArea(0xd400, 0xd7ff, 1, GalVideoRam);
- ZetMapArea(0xd400, 0xd7ff, 2, GalVideoRam);
- ZetMapArea(0xd800, 0xd8ff, 0, GalSpriteRam);
- ZetMapArea(0xd800, 0xd8ff, 2, GalSpriteRam);
- ZetClose();
-}
-
-static INT32 DambustrInit()
-{
- INT32 nRet;
-
- GalPostLoadCallbackFunction = DambustrPostLoad;
-
- nRet = GalInit(); if (nRet) return 1;
-
- GalTempRom = (UINT8*)BurnMalloc(GalTilesSharedRomSize);
- UINT8 Temp[16];
- nRet = BurnLoadRom(GalTempRom + 0x0000, GAL_ROM_OFFSET_TILES_SHARED + 0, 1); if (nRet) return 1;
- nRet = BurnLoadRom(GalTempRom + 0x1000, GAL_ROM_OFFSET_TILES_SHARED + 1, 1); if (nRet) return 1;
- nRet = BurnLoadRom(GalTempRom + 0x2000, GAL_ROM_OFFSET_TILES_SHARED + 2, 1); if (nRet) return 1;
- nRet = BurnLoadRom(GalTempRom + 0x3000, GAL_ROM_OFFSET_TILES_SHARED + 3, 1); if (nRet) return 1;
- for (UINT32 i = 0; i < GalTilesSharedRomSize; i += 16) {
- UINT32 j;
-
- for (j = 0; j < 16; j++) {
- Temp[j] = GalTempRom[i + j];
- }
-
- for (j = 0; j < 8; j++) {
- GalTempRom[i + j + 0] = Temp[(j * 2) + 0];
- GalTempRom[i + j + 8] = Temp[(j * 2) + 1];
- }
- }
- GfxDecode(GalNumChars, 2, 8, 8, CharPlaneOffsets, CharXOffsets, CharYOffsets, 0x40, GalTempRom, GalChars);
- GfxDecode(GalNumSprites, 2, 16, 16, SpritePlaneOffsets, SpriteXOffsets, SpriteYOffsets, 0x100, GalTempRom, GalSprites);
- BurnFree(GalTempRom);
-
- GalCalcPaletteFunction = DambustrCalcPalette;
- GalRenderBackgroundFunction = DambustrDrawBackground;
- GalDrawBulletsFunction = DambustrDrawBullets;
- GalExtendTileInfoFunction = DambustrExtendTileInfo;
- GalExtendSpriteInfoFunction = UpperExtendSpriteInfo;
- GalRenderFrameFunction = DambustrRenderFrame;
-
- GalSpriteClipStart = 0;
- GalSpriteClipEnd = 255;
-
- GalVideoRam2 = (UINT8*)BurnMalloc(0x400);
-
- return nRet;
-}
-
-struct BurnDriver BurnDrvDambustr = {
- "dambustr", NULL, NULL, NULL, "1981",
- "Dambusters (US, set 1)\0", NULL, "South West Research", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED, 2, HARDWARE_GALAXIAN, GBF_HORSHOOT, 0,
- NULL, DambustrRomInfo, DambustrRomName, NULL, NULL, DambustrInputInfo, DambustrDIPInfo,
- DambustrInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvDambustra = {
- "dambustra", "dambustr", NULL, NULL, "1981",
- "Dambusters (US, set 2)\0", NULL, "South West Research", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED, 2, HARDWARE_GALAXIAN, GBF_HORSHOOT, 0,
- NULL, DambustraRomInfo, DambustraRomName, NULL, NULL, DambustrInputInfo, DambustrDIPInfo,
- DambustrInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvDambustruk = {
- "dambustruk", "dambustr", NULL, NULL, "1981",
- "Dambusters (UK)\0", NULL, "South West Research", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED, 2, HARDWARE_GALAXIAN, GBF_HORSHOOT, 0,
- NULL, DambustrukRomInfo, DambustrukRomName, NULL, NULL, DambustrInputInfo, DambustrDIPInfo,
- DambustrInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-// S2650 Based Games
-static struct BurnRomInfo HunchbkgRomDesc[] = {
- { "gal_hb_kl", 0x00800, 0x3977650e, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "gal_hb_hj", 0x00800, 0xdb489c3d, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "gal_hb_cp", 0x00020, 0xcbff6762, BRF_GRA | GAL_ROM_PROM },
-
- { "gal_hb_1", 0x00800, 0x46590e9b, BRF_ESS | BRF_PRG | GAL_ROM_S2650_PROG1 },
- { "gal_hb_2", 0x00800, 0x4e6e671c, BRF_ESS | BRF_PRG | GAL_ROM_S2650_PROG1 },
- { "gal_hb_3", 0x00800, 0xd29dc242, BRF_ESS | BRF_PRG | GAL_ROM_S2650_PROG1 },
- { "gal_hb_4", 0x00800, 0xd409d292, BRF_ESS | BRF_PRG | GAL_ROM_S2650_PROG1 },
- { "gal_hb_5", 0x00800, 0x29d3a8c4, BRF_ESS | BRF_PRG | GAL_ROM_S2650_PROG1 },
- { "gal_hb_6", 0x00800, 0xb016fd15, BRF_ESS | BRF_PRG | GAL_ROM_S2650_PROG1 },
- { "gal_hb_7", 0x00800, 0xd2731d27, BRF_ESS | BRF_PRG | GAL_ROM_S2650_PROG1 },
- { "gal_hb_8", 0x00800, 0xe4b1a666, BRF_ESS | BRF_PRG | GAL_ROM_S2650_PROG1 },
-};
-
-STD_ROM_PICK(Hunchbkg)
-STD_ROM_FN(Hunchbkg)
-
-static struct BurnRomInfo DrivfrcgRomDesc[] = {
- { "dfgj2.bin", 0x01000, 0x8e19f1e7, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "dfgj1.bin", 0x01000, 0x86b60ca8, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "dfgl2.bin", 0x01000, 0xea5e9959, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "dfgl1.bin", 0x01000, 0xb7ed195c, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "top.clr", 0x00020, 0x3110ddae, BRF_GRA | GAL_ROM_PROM },
- { "bot.clr", 0x00020, 0x0f0782af, BRF_GRA | GAL_ROM_PROM },
-
- { "dfgp1.bin", 0x01000, 0x52d5e77d, BRF_ESS | BRF_PRG | GAL_ROM_S2650_PROG1 },
- { "dfgp2.bin", 0x01000, 0x9cf4dbce, BRF_ESS | BRF_PRG | GAL_ROM_S2650_PROG1 },
- { "dfgp3.bin", 0x01000, 0x79763f62, BRF_ESS | BRF_PRG | GAL_ROM_S2650_PROG1 },
- { "dfgp4.bin", 0x01000, 0xdd95338b, BRF_ESS | BRF_PRG | GAL_ROM_S2650_PROG1 },
-};
-
-STD_ROM_PICK(Drivfrcg)
-STD_ROM_FN(Drivfrcg)
-
-static struct BurnRomInfo DrivfrctRomDesc[] = {
- { "01.bin", 0x02000, 0x300a6750, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "02.bin", 0x02000, 0xf04e14c4, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "tbp18s030.02", 0x00020, 0x3110ddae, BRF_GRA | GAL_ROM_PROM },
- { "tbp18s030.01", 0x00020, 0x0f0782af, BRF_GRA | GAL_ROM_PROM },
-
- { "03.bin", 0x04000, 0x9ab604cb, BRF_ESS | BRF_PRG | GAL_ROM_S2650_PROG1 },
-
- { "tbp24s10.bin", 0x00100, 0x8c0d886d, BRF_OPT },
- { "tbp28s42.bin", 0x00200, 0x9b8f310a, BRF_OPT },
-};
-
-STD_ROM_PICK(Drivfrct)
-STD_ROM_FN(Drivfrct)
-
-static struct BurnRomInfo DrivfrcbRomDesc[] = {
- { "df1.bin", 0x02000, 0x8adc3de0, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "df2.bin", 0x02000, 0x6d95ec35, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "top.clr", 0x00020, 0x3110ddae, BRF_GRA | GAL_ROM_PROM },
- { "bot.clr", 0x00020, 0x0f0782af, BRF_GRA | GAL_ROM_PROM },
-
- { "dfp.bin", 0x04000, 0xb5b2981d, BRF_ESS | BRF_PRG | GAL_ROM_S2650_PROG1 },
-};
-
-STD_ROM_PICK(Drivfrcb)
-STD_ROM_FN(Drivfrcb)
-
-static struct BurnRomInfo RacknrolRomDesc[] = {
- { "horz_g.bin", 0x04000, 0x97069ad5, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "horz_r.bin", 0x04000, 0xff64e84b, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "82s123.bin", 0x00020, 0x737802bf, BRF_GRA | GAL_ROM_PROM },
-
- { "horz_p.bin", 0x04000, 0x32ca5b43, BRF_ESS | BRF_PRG | GAL_ROM_S2650_PROG1 },
-
- { "82s147.bin", 0x00200, 0xaace7fa5, BRF_OPT }, // unknown
-};
-
-STD_ROM_PICK(Racknrol)
-STD_ROM_FN(Racknrol)
-
-static struct BurnRomInfo HexpoolRomDesc[] = {
- { "vert_g.bin", 0x04000, 0x7e257e80, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "vert_r.bin", 0x04000, 0xc5f0851e, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "82s123.bin", 0x00020, 0x737802bf, BRF_GRA | GAL_ROM_PROM },
-
- { "vert_p.bin", 0x04000, 0xbdb078fc, BRF_ESS | BRF_PRG | GAL_ROM_S2650_PROG1 },
-
- { "82s147.bin", 0x00200, 0xaace7fa5, BRF_OPT }, // unknown
-};
-
-STD_ROM_PICK(Hexpool)
-STD_ROM_FN(Hexpool)
-
-static struct BurnRomInfo HexpoolaRomDesc[] = {
- { "rom.1m", 0x04000, 0x7e257e80, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "rom.1l", 0x04000, 0xc5f0851e, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "82s123.11r", 0x00020, 0xdeb2fcf4, BRF_GRA | GAL_ROM_PROM },
-
- { "rom.4l", 0x04000, 0x2ca8018d, BRF_ESS | BRF_PRG | GAL_ROM_S2650_PROG1 },
-
- { "82s147.5pr", 0x00200, 0xcf496b1e, BRF_OPT }, // unknown
-
- { "82s153.6pr.bin",0x000eb, 0xbc07939a, BRF_OPT }, // PLD
-};
-
-STD_ROM_PICK(Hexpoola)
-STD_ROM_FN(Hexpoola)
-
-static struct BurnRomInfo HunchbksRomDesc[] = {
- { "11d_snd.bin", 0x00800, 0x88226086, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "5f_hb09.bin", 0x00800, 0xdb489c3d, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "5h_hb10.bin", 0x00800, 0x3977650e, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "6e_prom.bin", 0x00020, 0x01004d3f, BRF_GRA | GAL_ROM_PROM },
-
- { "2c_hb01.bin", 0x00800, 0x8bebd834, BRF_ESS | BRF_PRG | GAL_ROM_S2650_PROG1 },
- { "2e_hb02.bin", 0x00800, 0x07de4229, BRF_ESS | BRF_PRG | GAL_ROM_S2650_PROG1 },
- { "2f_hb03.bin", 0x00800, 0xb75a0dfc, BRF_ESS | BRF_PRG | GAL_ROM_S2650_PROG1 },
- { "2h_hb04.bin", 0x00800, 0xf3206264, BRF_ESS | BRF_PRG | GAL_ROM_S2650_PROG1 },
- { "2j_hb05.bin", 0x00800, 0x1bb78728, BRF_ESS | BRF_PRG | GAL_ROM_S2650_PROG1 },
- { "2l_hb06.bin", 0x00800, 0xf25ed680, BRF_ESS | BRF_PRG | GAL_ROM_S2650_PROG1 },
- { "2m_hb07.bin", 0x00800, 0xc72e0e17, BRF_ESS | BRF_PRG | GAL_ROM_S2650_PROG1 },
- { "2p_hb08.bin", 0x00800, 0x412087b0, BRF_ESS | BRF_PRG | GAL_ROM_S2650_PROG1 },
-};
-
-STD_ROM_PICK(Hunchbks)
-STD_ROM_FN(Hunchbks)
-
-static struct BurnRomInfo HncholmsRomDesc[] = {
- { "hncholym.5c", 0x00800, 0xe7758775, BRF_ESS | BRF_PRG | GAL_ROM_Z80_PROG1 },
-
- { "hncholym.5f", 0x01000, 0x75ad3542, BRF_GRA | GAL_ROM_TILES_SHARED },
- { "hncholym.5h", 0x01000, 0x6fec9dd3, BRF_GRA | GAL_ROM_TILES_SHARED },
-
- { "prom.6e", 0x00020, 0x4e3caeab, BRF_GRA | GAL_ROM_PROM },
-
- { "hncholym.2d", 0x00800, 0xfb453f9c, BRF_ESS | BRF_PRG | GAL_ROM_S2650_PROG1 },
- { "hncholym.2e", 0x00800, 0xb1429420, BRF_ESS | BRF_PRG | GAL_ROM_S2650_PROG1 },
- { "hncholym.2f", 0x00800, 0xafc98e28, BRF_ESS | BRF_PRG | GAL_ROM_S2650_PROG1 },
- { "hncholym.2h", 0x00800, 0x6785bf17, BRF_ESS | BRF_PRG | GAL_ROM_S2650_PROG1 },
- { "hncholym.2j", 0x00800, 0x0e1e4133, BRF_ESS | BRF_PRG | GAL_ROM_S2650_PROG1 },
- { "hncholym.2l", 0x00800, 0x6e982609, BRF_ESS | BRF_PRG | GAL_ROM_S2650_PROG1 },
- { "hncholym.2m", 0x00800, 0xb9141914, BRF_ESS | BRF_PRG | GAL_ROM_S2650_PROG1 },
- { "hncholym.2p", 0x00800, 0xca37b55b, BRF_ESS | BRF_PRG | GAL_ROM_S2650_PROG1 },
-
- { "82s147.1a", 0x00200, 0xd461a48b, BRF_OPT },
-};
-
-STD_ROM_PICK(Hncholms)
-STD_ROM_FN(Hncholms)
-
-UINT8 HunchbkgS2650Read(UINT16 Address)
-{
- switch (Address) {
- case 0x1500:
- case 0x3500:
- case 0x5500:
- case 0x7500: {
- return GalInput[0] | GalDip[0];
- }
-
- case 0x1580:
- case 0x3580:
- case 0x5580:
- case 0x7580: {
- return GalInput[1] | GalDip[1];
- }
-
- case 0x1600:
- case 0x3600:
- case 0x5600:
- case 0x7600: {
- return GalInput[2] | GalDip[2];
- }
-
- case 0x1680:
- case 0x3680:
- case 0x5680:
- case 0x7680: {
- // ???
- return 0;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("S2650 #1 Read %04x\n"), Address);
- }
- }
-
- return 0;
-}
-
-void HunchbkgS2650Write(UINT16 Address, UINT8 Data)
-{
- if ((Address >= 0x1480 && Address <= 0x14ff) || (Address >= 0x3480 && Address <= 0x34ff) || (Address >= 0x5480 && Address <= 0x54ff) || (Address >= 0x7480 && Address <= 0x74ff)) {
- INT32 Offset = Address & 0x7f;
-
- GalSpriteRam[Offset] = Data;
-
- if (Offset < 0x40) {
- if ((Offset & 0x01) == 0) {
- GalScrollVals[Offset >> 1] = Data;
- }
- }
-
- return;
- }
-
- switch (Address) {
- case 0x1503:
- case 0x3503:
- case 0x5503:
- case 0x7503: {
- // coin_count_0_w
- return;
- }
-
- case 0x1580:
- case 0x1581:
- case 0x1582:{
- GalaxianSoundWrite(Address - 0x1580, Data);
- return;
- }
-
- case 0x3580:
- case 0x3581:
- case 0x3582:{
- GalaxianSoundWrite(Address - 0x3580, Data);
- return;
- }
-
- case 0x5580:
- case 0x5581:
- case 0x5582:{
- GalaxianSoundWrite(Address - 0x5580, Data);
- return;
- }
-
- case 0x7580:
- case 0x7581:
- case 0x7582:{
- GalaxianSoundWrite(Address - 0x7580, Data);
- return;
- }
-
- case 0x1583:
- case 0x3583:
- case 0x5583:
- case 0x7583: {
- // nop
- return;
- }
-
- case 0x1584:
- case 0x1585:
- case 0x1586:
- case 0x1587: {
- GalaxianLfoFreqWrite(Address - 0x1584, Data);
- return;
- }
-
- case 0x3584:
- case 0x3585:
- case 0x3586:
- case 0x3587: {
- GalaxianLfoFreqWrite(Address - 0x3584, Data);
- return;
- }
-
- case 0x5584:
- case 0x5585:
- case 0x5586:
- case 0x5587: {
- GalaxianLfoFreqWrite(Address - 0x5584, Data);
- return;
- }
-
- case 0x7584:
- case 0x7585:
- case 0x7586:
- case 0x7587: {
- GalaxianLfoFreqWrite(Address - 0x7584, Data);
- return;
- }
-
- case 0x1600:
- case 0x3600:
- case 0x5600:
- case 0x7600: {
- // nop
- return;
- }
-
- case 0x1601:
- case 0x3601:
- case 0x5601:
- case 0x7601: {
- // nop
- return;
- }
-
- case 0x1604:
- case 0x3604:
- case 0x5604:
- case 0x7604: {
- // nop
- return;
- }
-
- case 0x1606:
- case 0x3606:
- case 0x5606:
- case 0x7606: {
- GalFlipScreenX = Data & 1;
- return;
- }
-
- case 0x1607:
- case 0x3607:
- case 0x5607:
- case 0x7607: {
- GalFlipScreenY = Data & 1;
- return;
- }
-
- case 0x1680:
- case 0x3680:
- case 0x5680:
- case 0x7680: {
- GalPitch = Data;
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("S2650 #1 Write %04x, %02x\n"), Address, Data);
- }
- }
-}
-
-UINT8 HunchbkgS2650PortRead(UINT16 Port)
-{
- switch (Port) {
- case S2650_DATA_PORT: {
- // nop
- return 0;
- }
-
- case S2650_SENSE_PORT: {
- return GalVBlank ? 0x80 : 0x00;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("S2650 #1 Port Read %04x\n"), Port);
- }
- }
-
- return 0;
-}
-
-void HunchbkgS2650PortWrite(UINT16 Port, UINT8 Data)
-{
- switch (Port) {
- default: {
- bprintf(PRINT_NORMAL, _T("S2650 #1 Port Write %04x, %02x\n"), Port, Data);
- }
- }
-}
-
-UINT8 DrivfrcgS2650Read(UINT16 Address)
-{
- switch (Address) {
- case 0x1500:
- case 0x3500:
- case 0x5500:
- case 0x7500: {
- return GalInput[0] | GalDip[0];
- }
-
- case 0x1580:
- case 0x3580:
- case 0x5580:
- case 0x7580: {
- return GalInput[1] | GalDip[1];
- }
-
- case 0x1600:
- case 0x3600:
- case 0x5600:
- case 0x7600: {
- return GalInput[2] | GalDip[2];
- }
-
- case 0x1700:
- case 0x3700:
- case 0x5700:
- case 0x7700: {
- return GalInput[3] | GalDip[3];
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("S2650 #1 Read %04x\n"), Address);
- }
- }
-
- return 0;
-}
-
-void DrivfrcgS2650Write(UINT16 Address, UINT8 Data)
-{
- if ((Address >= 0x1480 && Address <= 0x14ff) || (Address >= 0x3480 && Address <= 0x34ff) || (Address >= 0x5480 && Address <= 0x54ff) || (Address >= 0x7480 && Address <= 0x74ff)) {
- INT32 Offset = Address & 0x7f;
-
- GalSpriteRam[Offset] = Data;
-
- if (Offset < 0x40) {
- if ((Offset & 0x01) == 0) {
- GalScrollVals[Offset >> 1] = Data;
- }
- }
-
- return;
- }
-
- switch (Address) {
- case 0x1503:
- case 0x3503:
- case 0x5503:
- case 0x7503: {
- // coin_count_0_w
- return;
- }
-
- case 0x1580:
- case 0x1581:
- case 0x1582:{
- GalaxianSoundWrite(Address - 0x1580, Data);
- return;
- }
-
- case 0x3580:
- case 0x3581:
- case 0x3582:{
- GalaxianSoundWrite(Address - 0x3580, Data);
- return;
- }
-
- case 0x5580:
- case 0x5581:
- case 0x5582:{
- GalaxianSoundWrite(Address - 0x5580, Data);
- return;
- }
-
- case 0x7580:
- case 0x7581:
- case 0x7582:{
- GalaxianSoundWrite(Address - 0x7580, Data);
- return;
- }
-
- case 0x1583:
- case 0x3583:
- case 0x5583:
- case 0x7583: {
- // nop
- return;
- }
-
- case 0x1585:
- case 0x3585:
- case 0x5585:
- case 0x7585: {
- // nop
- return;
- }
-
- case 0x1586:
- case 0x1587: {
- GalaxianLfoFreqWrite(Address - 0x1586, Data);
- return;
- }
-
- case 0x3586:
- case 0x3587: {
- GalaxianLfoFreqWrite(Address - 0x3586, Data);
- return;
- }
-
- case 0x5586:
- case 0x5587: {
- GalaxianLfoFreqWrite(Address - 0x5586, Data);
- return;
- }
-
- case 0x7586:
- case 0x7587: {
- GalaxianLfoFreqWrite(Address - 0x7586, Data);
- return;
- }
-
- case 0x1600:
- case 0x3600:
- case 0x5600:
- case 0x7600: {
- GalPitch = Data;
- return;
- }
-
- case 0x1700:
- case 0x1701: {
- // nop
- return;
- }
-
- case 0x1704:
- case 0x1705:
- case 0x1706:
- case 0x1707:
- case 0x3704:
- case 0x3705:
- case 0x3706:
- case 0x3707:
- case 0x5704:
- case 0x5705:
- case 0x5706:
- case 0x5707:
- case 0x7704:
- case 0x7705:
- case 0x7706:
- case 0x7707: {
- INT32 Offset = Address & 0x03;
- GalVol = (GalVol & ~(1 << Offset)) | ((Data & 1) << Offset);
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("S2650 #1 Write %04x, %02x\n"), Address, Data);
- }
- }
-}
-
-UINT8 DrivfrcgS2650PortRead(UINT16 Port)
-{
- switch (Port) {
- case 0x00: {
- switch (s2650GetPC(0)) {
- case 0x02e:
- case 0x297: {
- return 0x01;
- }
- }
- bprintf(PRINT_NORMAL, _T("%x\n"), s2650GetPC(0));
- return 0x00;
- }
-
- case S2650_SENSE_PORT: {
- return GalVBlank ? 0x80 : 0x00;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("S2650 #1 Port Read %04x\n"), Port);
- }
- }
-
- return 0;
-}
-
-void DrivfrcgS2650PortWrite(UINT16 Port, UINT8 Data)
-{
- switch (Port) {
- default: {
- bprintf(PRINT_NORMAL, _T("S2650 #1 Port Write %04x, %02x\n"), Port, Data);
- }
- }
-}
-
-UINT8 RacknrolS2650Read(UINT16 Address)
-{
- switch (Address) {
- case 0x1500:
- case 0x3500:
- case 0x5500:
- case 0x7500: {
- return GalInput[0] | GalDip[0];
- }
-
- case 0x1580:
- case 0x3580:
- case 0x5580:
- case 0x7580: {
- return GalInput[1] | GalDip[1];
- }
-
- case 0x1600:
- case 0x3600:
- case 0x5600:
- case 0x7600: {
- return GalInput[2] | GalDip[2];
- }
-
- case 0x1680:
- case 0x3680:
- case 0x5680:
- case 0x7680: {
- // ???
- return 0;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("S2650 #1 Read %04x\n"), Address);
- }
- }
-
- return 0;
-}
-
-void RacknrolS2650Write(UINT16 Address, UINT8 Data)
-{
- if ((Address >= 0x1400 && Address <= 0x14ff) || (Address >= 0x3400 && Address <= 0x34ff) || (Address >= 0x5400 && Address <= 0x54ff) || (Address >= 0x7400 && Address <= 0x74ff)) {
- INT32 Offset = Address & 0xff;
-
- GalSpriteRam[Offset] = Data;
-
- if (Offset < 0x40) {
- if ((Offset & 0x01) == 0) {
- GalScrollVals[Offset >> 1] = Data;
- }
- }
-
- return;
- }
-
- switch (Address) {
- case 0x1601:
- case 0x3601:
- case 0x5601:
- case 0x7601: {
- // nop
- return;
- }
-
- case 0x1606:
- case 0x3606:
- case 0x5606:
- case 0x7606: {
- GalFlipScreenX = Data & 1;
- return;
- }
-
- case 0x1607:
- case 0x3607:
- case 0x5607:
- case 0x7607: {
- GalFlipScreenY = Data & 1;
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("S2650 #1 Write %04x, %02x\n"), Address, Data);
- }
- }
-}
-
-UINT8 RacknrolS2650PortRead(UINT16 Port)
-{
- switch (Port) {
- case S2650_SENSE_PORT: {
- return GalVBlank ? 0x00 : 0x80;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("S2650 #1 Port Read %04x\n"), Port);
- }
- }
-
- return 0;
-}
-
-void RacknrolS2650PortWrite(UINT16 Port, UINT8 Data)
-{
- if (Port >= 0x0020 && Port <= 0x003f) {
- GalGfxBank[Port - 0x0020] = Data;
- return;
- }
-
- switch (Port) {
- case 0x001d: {
- SN76496Write(0, Data);
- return;
- }
-
- case 0x001e: {
- SN76496Write(1, Data);
- return;
- }
-
- case 0x001f: {
- SN76496Write(2, Data);
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("S2650 #1 Port Write %04x, %02x\n"), Port, Data);
- }
- }
-}
-
-UINT8 HexpoolaS2650PortRead(UINT16 Port)
-{
- switch (Port) {
- case 0x0000: {
- // nop
- return 0;
- }
-
- case S2650_DATA_PORT: {
- switch (s2650GetPC(0)) {
- case 0x22: return 0x00;
- case 0x31: return 0x01;
- }
- return 0;
- }
-
- case S2650_SENSE_PORT: {
- return GalVBlank ? 0x00 : 0x80;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("S2650 #1 Port Read %04x\n"), Port);
- }
- }
-
- return 0;
-}
-
-void HexpoolaS2650PortWrite(UINT16 Port, UINT8 Data)
-{
- if (Port >= 0x0020 && Port <= 0x003f) {
- GalGfxBank[Port - 0x0020] = Data;
- return;
- }
-
- switch (Port) {
- case S2650_DATA_PORT: {
- SN76496Write(0, Data);
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("S2650 #1 Port Write %04x, %02x\n"), Port, Data);
- }
- }
-}
-
-UINT8 HunchbksS2650Read(UINT16 Address)
-{
- switch (Address) {
- case 0x1210:
- case 0x1211:
- case 0x1212:
- case 0x1213:
- case 0x3210:
- case 0x3211:
- case 0x3212:
- case 0x3213:
- case 0x5210:
- case 0x5211:
- case 0x5212:
- case 0x5213:
- case 0x7210:
- case 0x7211:
- case 0x7212:
- case 0x7213: {
- return ppi8255_r(0, Address & 0x03);
- }
-
- case 0x1500:
- case 0x1501:
- case 0x1502:
- case 0x1503:
- case 0x3500:
- case 0x3501:
- case 0x3502:
- case 0x3503:
- case 0x5500:
- case 0x5501:
- case 0x5502:
- case 0x5503:
- case 0x7500:
- case 0x7501:
- case 0x7502:
- case 0x7503: {
- return ppi8255_r(0, Address & 0x03);
- }
-
- case 0x1680:
- case 0x3680:
- case 0x5680:
- case 0x7680: {
- // watchdog read
- return 0;
- }
-
- case 0x1780:
- case 0x3780:
- case 0x5780:
- case 0x7780: {
- // watchdog read
- return 0;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("S2650 #1 Read %04x\n"), Address);
- }
- }
-
- return 0;
-}
-
-void HunchbksS2650Write(UINT16 Address, UINT8 Data)
-{
- if ((Address >= 0x1400 && Address <= 0x14ff) || (Address >= 0x3400 && Address <= 0x34ff) || (Address >= 0x5400 && Address <= 0x54ff) || (Address >= 0x7400 && Address <= 0x74ff)) {
- INT32 Offset = Address & 0xff;
-
- GalSpriteRam[Offset] = Data;
-
- if (Offset < 0x40) {
- if ((Offset & 0x01) == 0) {
- GalScrollVals[Offset >> 1] = Data;
- }
- }
-
- return;
- }
-
- switch (Address) {
- case 0x1210:
- case 0x1211:
- case 0x1212:
- case 0x1213:
- case 0x3210:
- case 0x3211:
- case 0x3212:
- case 0x3213:
- case 0x5210:
- case 0x5211:
- case 0x5212:
- case 0x5213:
- case 0x7210:
- case 0x7211:
- case 0x7212:
- case 0x7213: {
- ppi8255_w(1, Address & 0x03, Data);
- return;
- }
-
- case 0x1500:
- case 0x1501:
- case 0x1502:
- case 0x1503:
- case 0x3500:
- case 0x3501:
- case 0x3502:
- case 0x3503:
- case 0x5500:
- case 0x5501:
- case 0x5502:
- case 0x5503:
- case 0x7500:
- case 0x7501:
- case 0x7502:
- case 0x7503: {
- ppi8255_w(0, Address & 0x03, Data);
- return;
- }
-
- case 0x1600:
- case 0x3600:
- case 0x5600:
- case 0x7600: {
- // nop
- return;
- }
-
- case 0x1601:
- case 0x3601:
- case 0x5601:
- case 0x7601: {
- // nop
- return;
- }
-
- case 0x1606:
- case 0x3606:
- case 0x5606:
- case 0x7606: {
- GalFlipScreenX = Data & 1;
- return;
- }
-
- case 0x1607:
- case 0x3607:
- case 0x5607:
- case 0x7607: {
- GalFlipScreenY = Data & 1;
- return;
- }
-
- case 0x1700:
- case 0x1701: {
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("S2650 #1 Write %04x, %02x\n"), Address, Data);
- }
- }
-}
-
-UINT8 HunchbksS2650PortRead(UINT16 Port)
-{
- switch (Port) {
- case S2650_DATA_PORT: {
- // nop
- return 0;
- }
-
- case S2650_SENSE_PORT: {
- return GalVBlank ? 0x80 : 0x00;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("S2650 #1 Port Read %04x\n"), Port);
- }
- }
-
- return 0;
-}
-
-void HunchbksS2650PortWrite(UINT16 Port, UINT8 Data)
-{
- switch (Port) {
- default: {
- bprintf(PRINT_NORMAL, _T("S2650 #1 Port Write %04x, %02x\n"), Port, Data);
- }
- }
-}
-
-UINT8 HncholmsS2650PortRead(UINT16 Port)
-{
- switch (Port) {
- case 0x0000: {
- switch (s2650GetPC(0)) {
- case 0x02b: return 1;
- case 0xa27: return 1;
- }
- return 0;
- }
-
- case S2650_DATA_PORT: {
- // nop
- return 0;
- }
-
- case S2650_SENSE_PORT: {
- return GalVBlank ? 0x80 : 0x00;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("S2650 #1 Port Read %04x\n"), Port);
- }
- }
-
- return 0;
-}
-
-static INT32 GalS2650ReturnVector(INT32)
-{
- return 0x03;
-}
-
-static void S2650PostLoad()
-{
- s2650Init(1);
- s2650Open(0);
- s2650MapMemory(GalS2650Rom1 + 0x0000, 0x0000, 0x0fff, MAP_ROM);
- s2650MapMemory(GalSpriteRam, 0x1480, 0x14ff, MAP_READ);
- s2650MapMemory(GalVideoRam, 0x1800, 0x1bff, MAP_RAM);
- s2650MapMemory(GalZ80Ram1, 0x1c00, 0x1fff, MAP_RAM);
- s2650MapMemory(GalS2650Rom1 + 0x1000, 0x2000, 0x2fff, MAP_ROM);
- s2650MapMemory(GalSpriteRam, 0x3480, 0x34ff, MAP_READ);
- s2650MapMemory(GalVideoRam, 0x3800, 0x3bff, MAP_RAM);
- s2650MapMemory(GalZ80Ram1, 0x3c00, 0x3fff, MAP_RAM);
- s2650MapMemory(GalS2650Rom1 + 0x2000, 0x4000, 0x4fff, MAP_ROM);
- s2650MapMemory(GalSpriteRam, 0x5480, 0x54ff, MAP_READ);
- s2650MapMemory(GalVideoRam, 0x5800, 0x5bff, MAP_RAM);
- s2650MapMemory(GalZ80Ram1, 0x5c00, 0x5fff, MAP_RAM);
- s2650MapMemory(GalS2650Rom1 + 0x3000, 0x6000, 0x6fff, MAP_ROM);
- s2650MapMemory(GalSpriteRam, 0x7480, 0x74ff, MAP_READ);
- s2650MapMemory(GalVideoRam, 0x7800, 0x7bff, MAP_RAM);
- s2650MapMemory(GalZ80Ram1, 0x7c00, 0x7fff, MAP_RAM);
- s2650SetReadHandler(HunchbkgS2650Read);
- s2650SetWriteHandler(HunchbkgS2650Write);
- s2650SetInHandler(HunchbkgS2650PortRead);
- s2650SetOutHandler(HunchbkgS2650PortWrite);
- s2650SetIrqCallback(GalS2650ReturnVector);
- s2650Close();
-}
-
-static INT32 HunchbkgInit()
-{
- INT32 nRet;
-
- GalPostLoadCallbackFunction = S2650PostLoad;
-
- nRet = GalInit();
-
- return nRet;
-}
-
-static void DrivfrcgPostLoad()
-{
- GalTempRom = (UINT8*)BurnMalloc(GalS2650Rom1Size);
- memcpy(GalTempRom, GalS2650Rom1, GalS2650Rom1Size);
- memcpy(GalS2650Rom1 + 0x1800, GalTempRom + 0x0000, 0x400);
- memcpy(GalS2650Rom1 + 0x1c00, GalTempRom + 0x0400, 0x400);
- memcpy(GalS2650Rom1 + 0x0000, GalTempRom + 0x0800, 0x400);
- memcpy(GalS2650Rom1 + 0x0400, GalTempRom + 0x0c00, 0x400);
- memcpy(GalS2650Rom1 + 0x0800, GalTempRom + 0x1000, 0x400);
- memcpy(GalS2650Rom1 + 0x0c00, GalTempRom + 0x1400, 0x400);
- memcpy(GalS2650Rom1 + 0x1000, GalTempRom + 0x1800, 0x400);
- memcpy(GalS2650Rom1 + 0x1400, GalTempRom + 0x1c00, 0x400);
- memcpy(GalS2650Rom1 + 0x3800, GalTempRom + 0x2000, 0x400);
- memcpy(GalS2650Rom1 + 0x3c00, GalTempRom + 0x2400, 0x400);
- memcpy(GalS2650Rom1 + 0x2000, GalTempRom + 0x2800, 0x400);
- memcpy(GalS2650Rom1 + 0x2400, GalTempRom + 0x2c00, 0x400);
- memcpy(GalS2650Rom1 + 0x2800, GalTempRom + 0x3000, 0x400);
- memcpy(GalS2650Rom1 + 0x2c00, GalTempRom + 0x3400, 0x400);
- memcpy(GalS2650Rom1 + 0x3000, GalTempRom + 0x3800, 0x400);
- memcpy(GalS2650Rom1 + 0x3400, GalTempRom + 0x3c00, 0x400);
- BurnFree(GalTempRom);
-
- S2650PostLoad();
- s2650Open(0);
- s2650SetReadHandler(DrivfrcgS2650Read);
- s2650SetWriteHandler(DrivfrcgS2650Write);
- s2650SetInHandler(DrivfrcgS2650PortRead);
- s2650SetOutHandler(DrivfrcgS2650PortWrite);
- s2650Close();
-}
-
-static INT32 DrivfrcgInit()
-{
- INT32 nRet;
-
- GalPostLoadCallbackFunction = DrivfrcgPostLoad;
-
- nRet = GalInit();
-
- GalCalcPaletteFunction = RockclimCalcPalette;
- GalExtendTileInfoFunction = Ad2083ExtendTileInfo;
- GalExtendSpriteInfoFunction = MshuttleExtendSpriteInfo;
-
- return nRet;
-}
-
-static INT32 DrivfrcbInit()
-{
- INT32 nRet;
-
- GalPostLoadCallbackFunction = DrivfrcgPostLoad;
-
- nRet = GalInit();
-
- GalTempRom = (UINT8*)BurnMalloc(GalTilesSharedRomSize);
- UINT8 *TempRom = (UINT8*)BurnMalloc(0x2000);
- nRet = BurnLoadRom(TempRom, GAL_ROM_OFFSET_TILES_SHARED + 0, 1); if (nRet) return 1;
- memcpy(GalTempRom + 0x1000, TempRom + 0x0000, 0x1000);
- memcpy(GalTempRom + 0x0000, TempRom + 0x1000, 0x1000);
- nRet = BurnLoadRom(TempRom, GAL_ROM_OFFSET_TILES_SHARED + 1, 1); if (nRet) return 1;
- memcpy(GalTempRom + 0x3000, TempRom + 0x0000, 0x1000);
- memcpy(GalTempRom + 0x2000, TempRom + 0x1000, 0x1000);
- GfxDecode(GalNumChars, 2, 8, 8, CharPlaneOffsets, CharXOffsets, CharYOffsets, 0x40, GalTempRom, GalChars);
- GfxDecode(GalNumSprites, 2, 16, 16, SpritePlaneOffsets, SpriteXOffsets, SpriteYOffsets, 0x100, GalTempRom, GalSprites);
- BurnFree(GalTempRom);
- BurnFree(TempRom);
-
- GalCalcPaletteFunction = RockclimCalcPalette;
- GalExtendTileInfoFunction = Ad2083ExtendTileInfo;
- GalExtendSpriteInfoFunction = MshuttleExtendSpriteInfo;
-
- return nRet;
-}
-
-static void RacknrolPostLoad()
-{
- s2650Init(1);
- s2650Open(0);
- s2650MapMemory(GalS2650Rom1 + 0x0000, 0x0000, 0x0fff, MAP_ROM);
- s2650MapMemory(GalSpriteRam, 0x1400, 0x14ff, MAP_READ);
- s2650MapMemory(GalVideoRam, 0x1800, 0x1bff, MAP_RAM);
- s2650MapMemory(GalZ80Ram1, 0x1c00, 0x1fff, MAP_RAM);
- s2650MapMemory(GalS2650Rom1 + 0x1000, 0x2000, 0x2fff, MAP_ROM);
- s2650MapMemory(GalSpriteRam, 0x3400, 0x34ff, MAP_READ);
- s2650MapMemory(GalVideoRam, 0x3800, 0x3bff, MAP_RAM);
- s2650MapMemory(GalZ80Ram1, 0x3c00, 0x3fff, MAP_RAM);
- s2650MapMemory(GalS2650Rom1 + 0x2000, 0x4000, 0x4fff, MAP_ROM);
- s2650MapMemory(GalSpriteRam, 0x5400, 0x54ff, MAP_READ);
- s2650MapMemory(GalVideoRam, 0x5800, 0x5bff, MAP_RAM);
- s2650MapMemory(GalZ80Ram1, 0x5c00, 0x5fff, MAP_RAM);
- s2650MapMemory(GalS2650Rom1 + 0x3000, 0x6000, 0x6fff, MAP_ROM);
- s2650MapMemory(GalSpriteRam, 0x7400, 0x74ff, MAP_READ);
- s2650MapMemory(GalVideoRam, 0x7800, 0x7bff, MAP_RAM);
- s2650MapMemory(GalZ80Ram1, 0x7c00, 0x7fff, MAP_RAM);
- s2650SetReadHandler(RacknrolS2650Read);
- s2650SetWriteHandler(RacknrolS2650Write);
- s2650SetInHandler(RacknrolS2650PortRead);
- s2650SetOutHandler(RacknrolS2650PortWrite);
- s2650SetIrqCallback(GalS2650ReturnVector);
- s2650Close();
-}
-
-static INT32 RacknrolInit()
-{
- INT32 nRet;
-
- GalPostLoadCallbackFunction = RacknrolPostLoad;
- GalSoundType = GAL_SOUND_HARDWARE_TYPE_RACKNROLSN76496;
-
- nRet = GalInit();
-
- GalExtendTileInfoFunction = RacknrolExtendTileInfo;
-
- return nRet;
-}
-
-static void HexpoolaPostLoad()
-{
- RacknrolPostLoad();
-
- s2650Open(0);
- s2650SetInHandler(HexpoolaS2650PortRead);
- s2650SetOutHandler(HexpoolaS2650PortWrite);
- s2650Close();
-}
-
-static INT32 HexpoolaInit()
-{
- INT32 nRet;
-
- GalPostLoadCallbackFunction = HexpoolaPostLoad;
- GalSoundType = GAL_SOUND_HARDWARE_TYPE_HEXPOOLASN76496;
-
- nRet = GalInit();
-
- GalExtendTileInfoFunction = RacknrolExtendTileInfo;
-
- return nRet;
-}
-
-static void HunchbksPostLoad()
-{
- RacknrolPostLoad();
- s2650Open(0);
- s2650SetReadHandler(HunchbksS2650Read);
- s2650SetWriteHandler(HunchbksS2650Write);
- s2650SetInHandler(HunchbksS2650PortRead);
- s2650SetOutHandler(HunchbksS2650PortWrite);
- s2650Close();
-
- ZetInit(0);
-}
-
-static INT32 HunchbksInit()
-{
- INT32 nRet;
-
- GalPostLoadCallbackFunction = HunchbksPostLoad;
- GalSoundType = GAL_SOUND_HARDWARE_TYPE_HUNCHBACKAY8910;
-
- nRet = GalInit(); if (nRet) return 1;
- HunchbksSoundInit();
-
- GalRenderBackgroundFunction = ScrambleDrawBackground;
- GalDrawBulletsFunction = ScrambleDrawBullets;
-
- KonamiPPIInit();
- PPI1PortWriteB = HunchbksSoundControlWrite;
-
- return nRet;
-}
-
-static void HncholmsPostLoad()
-{
- RacknrolPostLoad();
- s2650Open(0);
- s2650SetReadHandler(HunchbksS2650Read);
- s2650SetWriteHandler(HunchbksS2650Write);
- s2650SetInHandler(HncholmsS2650PortRead);
- s2650SetOutHandler(HunchbksS2650PortWrite);
- s2650Close();
-
- ZetInit(0);
-}
-
-static INT32 HncholmsInit()
-{
- INT32 nRet;
-
- GalPostLoadCallbackFunction = HncholmsPostLoad;
- GalSoundType = GAL_SOUND_HARDWARE_TYPE_HUNCHBACKAY8910;
-
- nRet = GalInit(); if (nRet) return 1;
- HunchbksSoundInit();
-
- GalRenderBackgroundFunction = ScrambleDrawBackground;
- GalDrawBulletsFunction = ScrambleDrawBullets;
- GalExtendTileInfoFunction = Batman2ExtendTileInfo;
- GalExtendSpriteInfoFunction = UpperExtendSpriteInfo;
-
- nGalCyclesTotal[0] = (18432000 / 6 / 2 / 2) / 60;
-
- KonamiPPIInit();
- PPI1PortWriteB = HunchbksSoundControlWrite;
-
- return nRet;
-}
-
-struct BurnDriver BurnDrvHunchbkg = {
- "hunchbkg", "hunchbak", NULL, NULL, "1981",
- "Hunchback (Galaxian hardware)\0", NULL, "Century Electronics", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_PLATFORM, 0,
- NULL, HunchbkgRomInfo, HunchbkgRomName, NULL, NULL, HunchbkgInputInfo, HunchbkgDIPInfo,
- HunchbkgInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvDrivfrcg = {
- "drivfrcg", "drivfrcp", NULL, NULL, "1984",
- "Driving Force (Galaxian conversion)\0", NULL, "Shinkai Inc. (Magic Eletronics USA licence)", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_RACING, 0,
- NULL, DrivfrcgRomInfo, DrivfrcgRomName, NULL, NULL, DrivfrcgInputInfo, DrivfrcgDIPInfo,
- DrivfrcgInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvDrivfrct = {
- "drivfrct", "drivfrcp", NULL, NULL, "1985",
- "Top Racer (bootleg of Driving Force)\0", NULL, "bootleg (EMT Germany)", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_BOOTLEG | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_RACING, 0,
- NULL, DrivfrctRomInfo, DrivfrctRomName, NULL, NULL, DrivfrcgInputInfo, DrivfrcgDIPInfo,
- DrivfrcbInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvDrivfrcb = {
- "drivfrcb", "drivfrcp", NULL, NULL, "1985",
- "Driving Force (Galaxian conversion bootleg)\0", NULL, "bootleg (Elsys Software)", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_BOOTLEG | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_RACING, 0,
- NULL, DrivfrcbRomInfo, DrivfrcbRomName, NULL, NULL, DrivfrcgInputInfo, DrivfrcgDIPInfo,
- DrivfrcbInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvRacknrol = {
- "racknrol", NULL, NULL, NULL, "1986",
- "Rack + Roll\0", NULL, "Status (Shinkai License)", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_SPORTSMISC, 0,
- NULL, RacknrolRomInfo, RacknrolRomName, NULL, NULL, RacknrolInputInfo, RacknrolDIPInfo,
- RacknrolInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 256, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvHexpool = {
- "hexpool", "racknrol", NULL, NULL, "1986",
- "Hex Pool (Shinkai)\0", NULL, "Shinkai", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_SPORTSMISC, 0,
- NULL, HexpoolRomInfo, HexpoolRomName, NULL, NULL, RacknrolInputInfo, RacknrolDIPInfo,
- RacknrolInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvHexpoola = {
- "hexpoola", "racknrol", NULL, NULL, "1985",
- "Hex Pool (Senko)\0", NULL, "Senko", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_SPORTSMISC, 0,
- NULL, HexpoolaRomInfo, HexpoolaRomName, NULL, NULL, RacknrolInputInfo, RacknrolDIPInfo,
- HexpoolaInit, GalExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvHunchbks = {
- "hunchbks", "hunchbak", NULL, NULL, "1983",
- "Hunchback (Scramble hardware)\0", NULL, "Century Electronics", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_PLATFORM, 0,
- NULL, HunchbksRomInfo, HunchbksRomName, NULL, NULL, HunchbksInputInfo, HunchbksDIPInfo,
- HunchbksInit, KonamiExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvHncholms = {
- "hncholms", "huncholy", NULL, NULL, "1984",
- "Hunchback Olympic (Scramble hardware)\0", "Imperfect Sound", "Century Electronics", "Galaxian",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_GALAXIAN, GBF_SPORTSMISC, 0,
- NULL, HncholmsRomInfo, HncholmsRomName, NULL, NULL, HunchbksInputInfo, HunchbksDIPInfo,
- HncholmsInit, KonamiExit, GalFrame, NULL, GalScan,
- NULL, 392, 224, 256, 3, 4
-};
diff --git a/jan/src/burn/drv/galaxian/gal.h b/jan/src/burn/drv/galaxian/gal.h
deleted file mode 100644
index 1c5d8a0b1..000000000
--- a/jan/src/burn/drv/galaxian/gal.h
+++ /dev/null
@@ -1,331 +0,0 @@
-#include "tiles_generic.h"
-#include "z80_intf.h"
-#include "dac.h"
-#include "8255ppi.h"
-#include "bitswap.h"
-#include "s2650_intf.h"
-#include "sn76496.h"
-#include "flt_rc.h"
-
-#include "driver.h"
-extern "C" {
- #include "ay8910.h"
-}
-
-// ROM types
-#define GAL_ROM_Z80_PROG1 1
-#define GAL_ROM_Z80_PROG2 2
-#define GAL_ROM_Z80_PROG3 3
-#define GAL_ROM_TILES_SHARED 4
-#define GAL_ROM_TILES_CHARS 5
-#define GAL_ROM_TILES_SPRITES 6
-#define GAL_ROM_PROM 7
-#define GAL_ROM_S2650_PROG1 8
-
-#define GAL_ROM_OFFSET_Z80_PROG2 GalZ80Rom1Num
-#define GAL_ROM_OFFSET_Z80_PROG3 GalZ80Rom1Num + GalZ80Rom2Num
-#define GAL_ROM_OFFSET_TILES_SHARED GalZ80Rom1Num + GalZ80Rom2Num + GalZ80Rom3Num
-#define GAL_ROM_OFFSET_TILES_CHARS GalZ80Rom1Num + GalZ80Rom2Num + GalZ80Rom3Num + GalTilesSharedRomNum
-#define GAL_ROM_OFFSET_TILES_SPRITES GalZ80Rom1Num + GalZ80Rom2Num + GalZ80Rom3Num + GalTilesSharedRomNum + GalTilesCharRomNum
-#define GAL_ROM_OFFSET_PROM GalZ80Rom1Num + GalZ80Rom2Num + GalZ80Rom3Num + GalTilesSharedRomNum + GalTilesCharRomNum + GalTilesSpriteRomNum
-#define GAL_ROM_OFFSET_S2650_PROG1 GalZ80Rom1Num + GalZ80Rom2Num + GalZ80Rom3Num + GalTilesSharedRomNum + GalTilesCharRomNum + GalTilesSpriteRomNum + GalPromRomNum
-
-// IRQ types
-#define GAL_IRQ_TYPE_NMI 1
-#define GAL_IRQ_TYPE_IRQ0 2
-
-// Sound hardware types
-#define GAL_SOUND_HARDWARE_TYPE_GALAXIAN 1
-#define GAL_SOUND_HARDWARE_TYPE_ZIGZAGAY8910 2
-#define GAL_SOUND_HARDWARE_TYPE_JUMPBUGAY8910 3
-#define GAL_SOUND_HARDWARE_TYPE_CHECKMANAY8910 4
-#define GAL_SOUND_HARDWARE_TYPE_CHECKMAJAY8910 5
-#define GAL_SOUND_HARDWARE_TYPE_MSHUTTLEAY8910 6
-#define GAL_SOUND_HARDWARE_TYPE_KINGBALLDAC 7
-#define GAL_SOUND_HARDWARE_TYPE_FROGGERAY8910 8
-#define GAL_SOUND_HARDWARE_TYPE_KONAMIAY8910 9
-#define GAL_SOUND_HARDWARE_TYPE_EXPLORERAY8910 10
-#define GAL_SOUND_HARDWARE_TYPE_SCORPIONAY8910 11
-#define GAL_SOUND_HARDWARE_TYPE_SFXAY8910DAC 12
-#define GAL_SOUND_HARDWARE_TYPE_BONGOAY8910 13
-#define GAL_SOUND_HARDWARE_TYPE_AD2083AY8910 14
-#define GAL_SOUND_HARDWARE_TYPE_RACKNROLSN76496 15
-#define GAL_SOUND_HARDWARE_TYPE_HEXPOOLASN76496 16
-#define GAL_SOUND_HARDWARE_TYPE_HUNCHBACKAY8910 17
-#define GAL_SOUND_HARDWARE_TYPE_FANTASTCAY8910 18
-
-// Palette Numbers
-#define GAL_PALETTE_NUM_COLOURS_PROM 64
-#define GAL_PALETTE_NUM_COLOURS_STARS 64
-#define GAL_PALETTE_NUM_COLOURS_BULLETS 8
-#define GAL_PALETTE_NUM_COLOURS_BACKGROUND 256
-#define GAL_PALETTE_STARS_OFFSET GAL_PALETTE_NUM_COLOURS_PROM
-#define GAL_PALETTE_BULLETS_OFFSET GAL_PALETTE_NUM_COLOURS_PROM + GAL_PALETTE_NUM_COLOURS_STARS
-#define GAL_PALETTE_BACKGROUND_OFFSET GAL_PALETTE_NUM_COLOURS_PROM + GAL_PALETTE_NUM_COLOURS_STARS + GAL_PALETTE_NUM_COLOURS_BULLETS
-
-// gal_gfx.cpp
-extern UINT8 GalFlipScreenX;
-extern UINT8 GalFlipScreenY;
-extern UINT8 *GalGfxBank;
-extern UINT8 GalPaletteBank;
-extern UINT8 GalSpriteClipStart;
-extern UINT8 GalSpriteClipEnd;
-extern UINT8 FroggerAdjust;
-extern UINT8 Dingo;
-extern UINT8 GalBackgroundRed;
-extern UINT8 GalBackgroundGreen;
-extern UINT8 GalBackgroundBlue;
-extern UINT8 GalBackgroundEnable;
-extern UINT8 SfxTilemap;
-extern UINT8 GalOrientationFlipX;
-extern UINT8 GalColourDepth;
-extern UINT8 DarkplntBulletColour;
-extern UINT8 DambustrBgColour1;
-extern UINT8 DambustrBgColour2;
-extern UINT8 DambustrBgPriority;
-extern UINT8 DambustrBgSplitLine;
-extern UINT8 *RockclimTiles;
-extern UINT16 RockclimScrollX;
-extern UINT16 RockclimScrollY;
-extern INT32 CharPlaneOffsets[2];
-extern INT32 CharXOffsets[8];
-extern INT32 CharYOffsets[8];
-extern INT32 SpritePlaneOffsets[2];
-extern INT32 SpriteXOffsets[16];
-extern INT32 SpriteYOffsets[16];
-
-typedef void (*GalRenderBackground)();
-extern GalRenderBackground GalRenderBackgroundFunction;
-typedef void (*GalCalcPalette)();
-extern GalCalcPalette GalCalcPaletteFunction;
-typedef void (*GalDrawBullet)(INT32, INT32, INT32);
-extern GalDrawBullet GalDrawBulletsFunction;
-typedef void (*GalExtendTileInfo)(UINT16*, INT32*, INT32, INT32);
-extern GalExtendTileInfo GalExtendTileInfoFunction;
-typedef void (*GalExtendSpriteInfo)(const UINT8*, INT32*, INT32*, UINT8*, UINT8*, UINT16*, UINT8*);
-extern GalExtendSpriteInfo GalExtendSpriteInfoFunction;
-typedef void (*GalRenderFrame)();
-extern GalRenderFrame GalRenderFrameFunction;
-
-void UpperExtendTileInfo(UINT16 *Code, INT32*, INT32, INT32);
-void UpperExtendSpriteInfo(const UINT8*, INT32*, INT32*, UINT8*, UINT8*, UINT16 *Code, UINT8*);
-void PiscesExtendTileInfo(UINT16 *Code, INT32*, INT32, INT32);
-void PiscesExtendSpriteInfo(const UINT8*, INT32*, INT32*, UINT8*, UINT8*, UINT16 *Code, UINT8*);
-void Batman2ExtendTileInfo(UINT16 *Code, INT32*, INT32, INT32);
-void GmgalaxExtendTileInfo(UINT16 *Code, INT32*, INT32, INT32);
-void GmgalaxExtendSpriteInfo(const UINT8*, INT32*, INT32*, UINT8*, UINT8*, UINT16 *Code, UINT8*);
-void MooncrstExtendTileInfo(UINT16 *Code, INT32*, INT32, INT32);
-void MooncrstExtendSpriteInfo(const UINT8*, INT32*, INT32*, UINT8*, UINT8*, UINT16 *Code, UINT8*);
-void MoonqsrExtendTileInfo(UINT16 *Code, INT32*, INT32 Attr, INT32);
-void MoonqsrExtendSpriteInfo(const UINT8 *Base, INT32*, INT32*, UINT8*, UINT8*, UINT16 *Code, UINT8*);
-void SkybaseExtendTileInfo(UINT16 *Code, INT32*, INT32, INT32);
-void SkybaseExtendSpriteInfo(const UINT8*, INT32*, INT32*, UINT8*, UINT8*, UINT16 *Code, UINT8*);
-void RockclimExtendSpriteInfo(const UINT8*, INT32*, INT32*, UINT8*, UINT8*, UINT16 *Code, UINT8*);
-void JumpbugExtendTileInfo(UINT16 *Code, INT32*, INT32, INT32);
-void JumpbugExtendSpriteInfo(const UINT8*, INT32*, INT32*, UINT8*, UINT8*, UINT16 *Code, UINT8*);
-void FroggerExtendTileInfo(UINT16*, INT32 *Colour, INT32, INT32);
-void FroggerExtendSpriteInfo(const UINT8*, INT32*, INT32*, UINT8*, UINT8*, UINT16*, UINT8 *Colour);
-void CalipsoExtendSpriteInfo(const UINT8 *Base, INT32*, INT32*, UINT8 *xFlip, UINT8 *yFlip, UINT16 *Code, UINT8*);
-void MshuttleExtendTileInfo(UINT16 *Code, INT32*, INT32 Attr, INT32);
-void MshuttleExtendSpriteInfo(const UINT8 *Base, INT32*, INT32*, UINT8*, UINT8*, UINT16 *Code, UINT8*);
-void Fourin1ExtendTileInfo(UINT16 *Code, INT32*, INT32, INT32);
-void Fourin1ExtendSpriteInfo(const UINT8*, INT32*, INT32*, UINT8*, UINT8*, UINT16 *Code, UINT8*);
-void DkongjrmExtendSpriteInfo(const UINT8 *Base, INT32*, INT32*, UINT8 *xFlip, UINT8*, UINT16 *Code, UINT8*);
-void MarinerExtendTileInfo(UINT16 *Code, INT32*, INT32, INT32 x);
-void MimonkeyExtendTileInfo(UINT16 *Code, INT32*, INT32, INT32);
-void MimonkeyExtendSpriteInfo(const UINT8*, INT32*, INT32*, UINT8*, UINT8*, UINT16 *Code, UINT8*);
-void DambustrExtendTileInfo(UINT16 *Code, INT32*, INT32, INT32 x);
-void Ad2083ExtendTileInfo(UINT16 *Code, INT32 *Colour, INT32 Attr, INT32);
-void Ad2083ExtendSpriteInfo(const UINT8 *Base, INT32*, INT32*, UINT8 *xFlip, UINT8*, UINT16 *Code, UINT8*);
-void RacknrolExtendTileInfo(UINT16 *Code, INT32*, INT32, INT32 x);
-void BagmanmcExtendTileInfo(UINT16 *Code, INT32*, INT32, INT32);
-void BagmanmcExtendSpriteInfo(const UINT8*, INT32*, INT32*, UINT8*, UINT8*, UINT16 *Code, UINT8*);
-void HardCodeGalaxianPROM();
-void HardCodeMooncrstPROM();
-void GalaxianCalcPalette();
-void RockclimCalcPalette();
-void MarinerCalcPalette();
-void StratgyxCalcPalette();
-void RescueCalcPalette();
-void MinefldCalcPalette();
-void DarkplntCalcPalette();
-void DambustrCalcPalette();
-void GalaxianDrawBackground();
-void RockclimDrawBackground();
-void JumpbugDrawBackground();
-void FroggerDrawBackground();
-void TurtlesDrawBackground();
-void ScrambleDrawBackground();
-void AnteaterDrawBackground();
-void MarinerDrawBackground();
-void StratgyxDrawBackground();
-void RescueDrawBackground();
-void MinefldDrawBackground();
-void DambustrDrawBackground();
-void GalaxianDrawBullets(INT32 Offs, INT32 x, INT32 y);
-void TheendDrawBullets(INT32 Offs, INT32 x, INT32 y);
-void ScrambleDrawBullets(INT32, INT32 x, INT32 y);
-void MoonwarDrawBullets(INT32, INT32 x, INT32 y);
-void MshuttleDrawBullets(INT32, INT32 x, INT32 y);
-void DarkplntDrawBullets(INT32, INT32 x, INT32 y);
-void DambustrDrawBullets(INT32 Offs, INT32 x, INT32 y);
-void GalDraw();
-void DkongjrmRenderFrame();
-void DambustrRenderFrame();
-void FantastcRenderFrame();
-void TimefgtrRenderFrame();
-void ScramblerRenderFrame();
-void ZigZagRenderFrame();
-
-// gal_run.cpp
-extern UINT8 GalInputPort0[8];
-extern UINT8 GalInputPort1[8];
-extern UINT8 GalInputPort2[8];
-extern UINT8 GalInputPort3[8];
-extern UINT8 GalDip[7];
-extern UINT8 GalInput[4];
-extern UINT8 GalReset;
-extern UINT8 GalFakeDip;
-extern INT32 GalAnalogPort0;
-extern INT32 GalAnalogPort1;
-
-extern UINT8 *GalMem;
-extern UINT8 *GalMemEnd;
-extern UINT8 *GalRamStart;
-extern UINT8 *GalRamEnd;
-extern UINT8 *GalZ80Rom1;
-extern UINT8 *GalZ80Rom1Op;
-extern UINT8 *GalZ80Rom2;
-extern UINT8 *GalZ80Rom3;
-extern UINT8 *GalS2650Rom1;
-extern UINT8 *GalZ80Ram1;
-extern UINT8 *GalZ80Ram2;
-extern UINT8 *GalZ80Ram3;
-extern UINT8 *GalVideoRam;
-extern UINT8 *GalVideoRam2;
-extern UINT8 *GalSpriteRam;
-extern UINT8 *GalScrollVals;
-extern UINT8 *GalProm;
-extern UINT8 *GalChars;
-extern UINT8 *GalSprites;
-extern UINT8 *GalTempRom;
-extern UINT32 *GalPalette;
-extern UINT32 GalZ80Rom1Size;
-extern UINT32 GalZ80Rom1Num;
-extern UINT32 GalZ80Rom2Size;
-extern UINT32 GalZ80Rom2Num;
-extern UINT32 GalZ80Rom3Size;
-extern UINT32 GalZ80Rom3Num;
-extern UINT32 GalS2650Rom1Size;
-extern UINT32 GalS2650Rom1Num;
-extern UINT32 GalTilesSharedRomSize;
-extern UINT32 GalTilesSharedRomNum;
-extern UINT32 GalTilesCharRomSize;
-extern UINT32 GalTilesCharRomNum;
-extern UINT32 GalNumChars;
-extern UINT32 GalTilesSpriteRomSize;
-extern UINT32 GalTilesSpriteRomNum;
-extern UINT32 GalNumSprites;
-extern UINT32 GalPromRomSize;
-extern UINT32 GalPromRomNum;
-
-typedef void (*GalPostLoadCallback)();
-extern GalPostLoadCallback GalPostLoadCallbackFunction;
-
-extern UINT8 GalIrqType;
-extern UINT8 GalIrqFire;
-extern INT32 nGalCyclesDone[3], nGalCyclesTotal[3];
-
-extern UINT8 ZigzagAYLatch;
-extern UINT8 GalSoundLatch;
-extern UINT8 GalSoundLatch2;
-extern UINT8 KingballSound;
-extern UINT8 KonamiSoundControl;
-extern UINT8 SfxSampleControl;
-extern UINT8 KingballSpeechDip;
-extern UINT16 ScrambleProtectionState;
-extern UINT8 ScrambleProtectionResult;
-extern UINT8 MoonwarPortSelect;
-extern UINT8 MshuttleAY8910CS;
-extern UINT8 GmgalaxSelectedGame;
-extern UINT8 Fourin1Bank;
-extern UINT8 GameIsGmgalax;
-extern UINT8 GameIsBagmanmc;
-extern UINT8 CavelonBankSwitch;
-extern UINT8 GalVBlank;
-
-UINT8 KonamiPPIReadIN0();
-UINT8 KonamiPPIReadIN1();
-UINT8 KonamiPPIReadIN2();
-UINT8 KonamiPPIReadIN3();
-INT32 GalInit();
-void MapMooncrst();
-void MapJumpbug();
-void MapFrogger();
-void KonamiPPIInit();
-void MapTheend();
-void MapTurtles();
-void MapScobra();
-INT32 GalExit();
-INT32 KonamiExit();
-INT32 GalFrame();
-INT32 GalScan(INT32 nAction, INT32 *pnMin);
-
-// gal_sound.cpp
-extern INT16* pFMBuffer;
-extern INT16* pAY8910Buffer[9];
-extern UINT8 GalSoundType;
-extern UINT8 HunchbksSoundIrqFire;
-extern UINT8 GalLastPort2;
-extern UINT8 GalShootEnable;
-extern UINT8 GalNoiseEnable;
-extern INT32 GalNoiseVolume;
-extern double GalShootWavePos;
-extern double GalNoiseWavePos;
-extern INT32 GalPitch;
-extern INT32 GalVol;
-extern INT32 GalLfoVolume[3];
-extern double GalLfoFreq;
-extern double GalLfoFreqFrameVar;
-extern INT32 GalLfoBit[4];
-
-void GalaxianSoundSetRoute(double nVolume, INT32 nRouteDir);
-
-void GalSoundReset();
-void GalSoundInit();
-void GalSoundExit();
-void GalSoundScan(INT32 nAction, INT32 *pnMin);
-UINT8 CheckmajPortARead(UINT32);
-UINT8 BongoDipSwitchRead(UINT32);
-UINT8 KonamiSoundLatchRead(UINT32);
-UINT8 KonamiSoundTimerRead(UINT32);
-UINT8 FroggerSoundTimerRead(UINT32);
-UINT8 HunchbksSoundTimerRead(UINT32);
-void KonamiSoundLatchWrite(UINT8 d);
-void KonamiSoundControlWrite(UINT8 d);
-void HunchbksSoundControlWrite(UINT8 d);
-void SfxSoundLatch2Write(UINT32, UINT32 d);
-void SfxSampleControlWrite(UINT32, UINT32 d);
-void FroggerSoundInit();
-void FroggerSoundNoEncryptionInit();
-void KonamiSoundInit();
-void HunchbksSoundInit();
-INT32 KingballSyncDAC();
-INT32 SfxSyncDAC();
-void GalRenderSoundSamples(INT16 *pSoundBuf, INT32 nLength);
-void GalaxianSoundWrite(UINT32 Offset, UINT8 d);
-void GalaxianLfoFreqWrite(UINT32 Offset, UINT8 d);
-void GalaxianSoundUpdateTimers();
-
-// gal_stars.cpp
-extern INT32 GalStarsEnable;
-extern INT32 GalStarsScrollPos;
-extern INT32 GalStarsBlinkState;
-extern INT32 GalBlinkTimerStartFrame;
-
-void GalInitStars();
-void GalaxianRenderStarLayer();
-void JumpbugRenderStarLayer();
-void ScrambleRenderStarLayer();
-void MarinerRenderStarLayer();
-void RescueRenderStarLayer();
diff --git a/jan/src/burn/drv/galaxian/gal_gfx.cpp b/jan/src/burn/drv/galaxian/gal_gfx.cpp
deleted file mode 100644
index e7a84d6fa..000000000
--- a/jan/src/burn/drv/galaxian/gal_gfx.cpp
+++ /dev/null
@@ -1,1313 +0,0 @@
-#include "gal.h"
-
-GalRenderBackground GalRenderBackgroundFunction;
-GalCalcPalette GalCalcPaletteFunction;
-GalDrawBullet GalDrawBulletsFunction;
-GalExtendTileInfo GalExtendTileInfoFunction;
-GalExtendSpriteInfo GalExtendSpriteInfoFunction;
-GalRenderFrame GalRenderFrameFunction;
-
-UINT8 GalFlipScreenX;
-UINT8 GalFlipScreenY;
-UINT8 *GalGfxBank;
-UINT8 GalPaletteBank;
-UINT8 GalSpriteClipStart;
-UINT8 GalSpriteClipEnd;
-UINT8 FroggerAdjust;
-UINT8 GalBackgroundRed;
-UINT8 GalBackgroundGreen;
-UINT8 GalBackgroundBlue;
-UINT8 GalBackgroundEnable;
-UINT8 SfxTilemap;
-UINT8 GalOrientationFlipX;
-UINT8 GalColourDepth;
-UINT8 DarkplntBulletColour;
-UINT8 DambustrBgColour1;
-UINT8 DambustrBgColour2;
-UINT8 DambustrBgPriority;
-UINT8 DambustrBgSplitLine;
-UINT8 *RockclimTiles;
-UINT16 RockclimScrollX;
-UINT16 RockclimScrollY;
-
-// Graphics decode helpers
-INT32 CharPlaneOffsets[2] = { 0, 0x4000 };
-INT32 CharXOffsets[8] = { 0, 1, 2, 3, 4, 5, 6, 7 };
-INT32 CharYOffsets[8] = { 0, 8, 16, 24, 32, 40, 48, 56 };
-INT32 SpritePlaneOffsets[2] = { 0, 0x4000 };
-INT32 SpriteXOffsets[16] = { 0, 1, 2, 3, 4, 5, 6, 7, 64, 65, 66, 67, 68, 69, 70, 71 };
-INT32 SpriteYOffsets[16] = { 0, 8, 16, 24, 32, 40, 48, 56, 128, 136, 144, 152, 160, 168, 176, 184 };
-
-// Tile extend helpers
-void UpperExtendTileInfo(UINT16 *Code, INT32*, INT32, INT32)
-{
- *Code += 0x100;
-}
-
-void PiscesExtendTileInfo(UINT16 *Code, INT32*, INT32, INT32)
-{
- *Code |= GalGfxBank[0] << 8;
-}
-
-void Batman2ExtendTileInfo(UINT16 *Code, INT32*, INT32, INT32)
-{
- if (*Code & 0x80) *Code |= GalGfxBank[0] << 8;
-}
-
-void GmgalaxExtendTileInfo(UINT16 *Code, INT32*, INT32, INT32)
-{
- *Code |= GalGfxBank[0] << 9;
-}
-
-void MooncrstExtendTileInfo(UINT16 *Code, INT32*, INT32, INT32)
-{
- if (GalGfxBank[2] && (*Code & 0xc0) == 0x80) *Code = (*Code & 0x3f) | (GalGfxBank[0] << 6) | (GalGfxBank[1] << 7) | 0x0100;
-}
-
-void MoonqsrExtendTileInfo(UINT16 *Code, INT32*, INT32 Attr, INT32)
-{
- *Code |= (Attr & 0x20) << 3;
-}
-
-void SkybaseExtendTileInfo(UINT16 *Code, INT32*, INT32, INT32)
-{
- *Code |= GalGfxBank[2] << 8;
-}
-
-void JumpbugExtendTileInfo(UINT16 *Code, INT32*, INT32, INT32)
-{
- if ((*Code & 0xc0) == 0x80 && (GalGfxBank[2] & 0x01)) *Code += 128 + ((GalGfxBank[0] & 0x01) << 6) + ((GalGfxBank[1] & 0x01) << 7) + ((~GalGfxBank[4] & 0x01) << 8);
-}
-
-void FroggerExtendTileInfo(UINT16*, INT32 *Colour, INT32, INT32)
-{
- *Colour = ((*Colour >> 1) & 0x03) | ((*Colour << 2) & 0x04);
-}
-
-void MshuttleExtendTileInfo(UINT16 *Code, INT32*, INT32 Attr, INT32)
-{
- *Code |= (Attr & 0x30) << 4;
-}
-
-void Fourin1ExtendTileInfo(UINT16 *Code, INT32*, INT32, INT32)
-{
- *Code |= Fourin1Bank << 8;
-}
-
-void MarinerExtendTileInfo(UINT16 *Code, INT32*, INT32, INT32 x)
-{
- UINT8 *Prom = GalProm + 0x120;
-
- *Code |= (Prom[x] & 0x01) << 8;
-}
-
-void MimonkeyExtendTileInfo(UINT16 *Code, INT32*, INT32, INT32)
-{
- *Code |= (GalGfxBank[0] << 8) | (GalGfxBank[1] << 9);
-}
-
-void DambustrExtendTileInfo(UINT16 *Code, INT32*, INT32, INT32 x)
-{
- if (GalGfxBank[0] == 0) {
- *Code |= 0x300;
- } else {
- if (x == 28) {
- *Code |= 0x300;
- } else {
- *Code &= 0xff;
- }
- }
-}
-
-void Ad2083ExtendTileInfo(UINT16 *Code, INT32 *Colour, INT32 Attr, INT32)
-{
- INT32 Bank = Attr & 0x30;
- *Code |= (Bank << 4);
- *Colour |= ((Attr & 0x40) >> 3);
-}
-
-void RacknrolExtendTileInfo(UINT16 *Code, INT32*, INT32, INT32 x)
-{
- UINT8 Bank = GalGfxBank[x] & 7;
- *Code |= Bank << 8;
-}
-
-void BagmanmcExtendTileInfo(UINT16 *Code, INT32*, INT32, INT32)
-{
- *Code |= GalGfxBank[0] << 9;
-}
-
-// Sprite extend helpers
-void UpperExtendSpriteInfo(const UINT8*, INT32*, INT32*, UINT8*, UINT8*, UINT16 *Code, UINT8*)
-{
- *Code += 0x40;
-}
-
-void PiscesExtendSpriteInfo(const UINT8*, INT32*, INT32*, UINT8*, UINT8*, UINT16 *Code, UINT8*)
-{
- *Code |= GalGfxBank[0] << 6;
-}
-
-void GmgalaxExtendSpriteInfo(const UINT8*, INT32*, INT32*, UINT8*, UINT8*, UINT16 *Code, UINT8*)
-{
- *Code |= (GalGfxBank[0] << 7) | 0x40;
-}
-
-void MooncrstExtendSpriteInfo(const UINT8*, INT32*, INT32*, UINT8*, UINT8*, UINT16 *Code, UINT8*)
-{
- if (GalGfxBank[2] && (*Code & 0x30) == 0x20) *Code = (*Code & 0x0f) | (GalGfxBank[0] << 4) | (GalGfxBank[1] << 5) | 0x40;
-}
-
-void MoonqsrExtendSpriteInfo(const UINT8 *Base, INT32*, INT32*, UINT8*, UINT8*, UINT16 *Code, UINT8*)
-{
- *Code |= (Base[2] & 0x20) << 1;
-}
-
-void SkybaseExtendSpriteInfo(const UINT8*, INT32*, INT32*, UINT8*, UINT8*, UINT16 *Code, UINT8*)
-{
- *Code |= GalGfxBank[2] << 6;
-}
-
-void RockclimExtendSpriteInfo(const UINT8*, INT32*, INT32*, UINT8*, UINT8*, UINT16 *Code, UINT8*)
-{
- if (GalGfxBank[2]) *Code |= 0x40;
-}
-
-void JumpbugExtendSpriteInfo(const UINT8*, INT32*, INT32*, UINT8*, UINT8*, UINT16 *Code, UINT8*)
-{
- if ((*Code & 0x30) == 0x20 && (GalGfxBank[2] & 0x01) != 0) *Code += 32 + ((GalGfxBank[0] & 0x01) << 4) + ((GalGfxBank[1] & 0x01) << 5) + ((~GalGfxBank[4] & 0x01) << 6);
-}
-
-void FroggerExtendSpriteInfo(const UINT8*, INT32*, INT32*, UINT8*, UINT8*, UINT16*, UINT8 *Colour)
-{
- *Colour = ((*Colour >> 1) & 0x03) | ((*Colour << 2) & 0x04);
-}
-
-void CalipsoExtendSpriteInfo(const UINT8 *Base, INT32*, INT32*, UINT8 *xFlip, UINT8 *yFlip, UINT16 *Code, UINT8*)
-{
- *Code = Base[1];
- *xFlip = 0;
- *yFlip = 0;
-}
-
-void MshuttleExtendSpriteInfo(const UINT8 *Base, INT32*, INT32*, UINT8*, UINT8*, UINT16 *Code, UINT8*)
-{
- *Code |= (Base[2] & 0x30) << 2;
-}
-
-void Fourin1ExtendSpriteInfo(const UINT8*, INT32*, INT32*, UINT8*, UINT8*, UINT16 *Code, UINT8*)
-{
- *Code |= Fourin1Bank << 6;
-}
-
-void DkongjrmExtendSpriteInfo(const UINT8 *Base, INT32*, INT32*, UINT8 *xFlip, UINT8*, UINT16 *Code, UINT8*)
-{
- *Code = (Base[1] & 0x7f) | 0x80;
- *xFlip = 0;
-}
-
-void MimonkeyExtendSpriteInfo(const UINT8*, INT32*, INT32*, UINT8*, UINT8*, UINT16 *Code, UINT8*)
-{
- *Code |= (GalGfxBank[0] << 6) | (GalGfxBank[1] << 7);
-}
-
-void Ad2083ExtendSpriteInfo(const UINT8 *Base, INT32*, INT32*, UINT8 *xFlip, UINT8*, UINT16 *Code, UINT8*)
-{
- *Code = (Base[1] & 0x7f) | ((Base[2] & 0x30) << 2);
- *xFlip = 0;
-}
-
-void BagmanmcExtendSpriteInfo(const UINT8*, INT32*, INT32*, UINT8*, UINT8*, UINT16 *Code, UINT8*)
-{
- *Code |= (GalGfxBank[0] << 7) | 0x40;
-}
-
-// Hardcode a Galaxian PROM for any games that are missing a PROM dump
-void HardCodeGalaxianPROM()
-{
- GalProm[0x00]= 0x00;
- GalProm[0x01]= 0x00;
- GalProm[0x02]= 0x00;
- GalProm[0x03]= 0xf6;
- GalProm[0x04]= 0x00;
- GalProm[0x05]= 0x16;
- GalProm[0x06]= 0xc0;
- GalProm[0x07]= 0x3f;
- GalProm[0x08]= 0x00;
- GalProm[0x09]= 0xd8;
- GalProm[0x0a]= 0x07;
- GalProm[0x0b]= 0x3f;
- GalProm[0x0c]= 0x00;
- GalProm[0x0d]= 0xc0;
- GalProm[0x0e]= 0xc4;
- GalProm[0x0f]= 0x07;
- GalProm[0x10]= 0x00;
- GalProm[0x11]= 0xc0;
- GalProm[0x12]= 0xa0;
- GalProm[0x13]= 0x07;
- GalProm[0x14]= 0x00;
- GalProm[0x15]= 0x00;
- GalProm[0x16]= 0x00;
- GalProm[0x17]= 0x07;
- GalProm[0x18]= 0x00;
- GalProm[0x19]= 0xf6;
- GalProm[0x1a]= 0x07;
- GalProm[0x1b]= 0xf0;
- GalProm[0x1c]= 0x00;
- GalProm[0x1d]= 0x76;
- GalProm[0x1e]= 0x07;
- GalProm[0x1f]= 0xc6;
-}
-
-void HardCodeMooncrstPROM()
-{
- GalProm[0x00]= 0x00;
- GalProm[0x01]= 0x7a;
- GalProm[0x02]= 0x36;
- GalProm[0x03]= 0x07;
- GalProm[0x04]= 0x00;
- GalProm[0x05]= 0xf0;
- GalProm[0x06]= 0x38;
- GalProm[0x07]= 0x1f;
- GalProm[0x08]= 0x00;
- GalProm[0x09]= 0xc7;
- GalProm[0x0a]= 0xf0;
- GalProm[0x0b]= 0x3f;
- GalProm[0x0c]= 0x00;
- GalProm[0x0d]= 0xdb;
- GalProm[0x0e]= 0xc6;
- GalProm[0x0f]= 0x38;
- GalProm[0x10]= 0x00;
- GalProm[0x11]= 0x36;
- GalProm[0x12]= 0x07;
- GalProm[0x13]= 0xf0;
- GalProm[0x14]= 0x00;
- GalProm[0x15]= 0x33;
- GalProm[0x16]= 0x3f;
- GalProm[0x17]= 0xdb;
- GalProm[0x18]= 0x00;
- GalProm[0x19]= 0x3f;
- GalProm[0x1a]= 0x57;
- GalProm[0x1b]= 0xc6;
- GalProm[0x1c]= 0x00;
- GalProm[0x1d]= 0xc6;
- GalProm[0x1e]= 0x3f;
- GalProm[0x1f]= 0xff;
-}
-
-// Pallet generation
-#define RGB_MAXIMUM 224
-#define MAX_NETS 3
-#define MAX_RES_PER_NET 18
-#define Combine2Weights(tab,w0,w1) ((INT32)(((tab)[0]*(w0) + (tab)[1]*(w1)) + 0.5))
-#define Combine3Weights(tab,w0,w1,w2) ((INT32)(((tab)[0]*(w0) + (tab)[1]*(w1) + (tab)[2]*(w2)) + 0.5))
-
-static double ComputeResistorWeights(INT32 MinVal, INT32 MaxVal, double Scaler, INT32 Count1, const INT32 *Resistances1, double *Weights1, INT32 PullDown1, INT32 PullUp1, INT32 Count2, const INT32 *Resistances2, double *Weights2, INT32 PullDown2, INT32 PullUp2, INT32 Count3, const INT32 *Resistances3, double *Weights3, INT32 PullDown3, INT32 PullUp3)
-{
- INT32 NetworksNum;
-
- INT32 ResCount[MAX_NETS];
- double r[MAX_NETS][MAX_RES_PER_NET];
- double w[MAX_NETS][MAX_RES_PER_NET];
- double ws[MAX_NETS][MAX_RES_PER_NET];
- INT32 r_pd[MAX_NETS];
- INT32 r_pu[MAX_NETS];
-
- double MaxOut[MAX_NETS];
- double *Out[MAX_NETS];
-
- INT32 i, j, n;
- double Scale;
- double Max;
-
- NetworksNum = 0;
- for (n = 0; n < MAX_NETS; n++) {
- INT32 Count, pd, pu;
- const INT32 *Resistances;
- double *Weights;
-
- switch (n) {
- case 0: {
- Count = Count1;
- Resistances = Resistances1;
- Weights = Weights1;
- pd = PullDown1;
- pu = PullUp1;
- break;
- }
-
- case 1: {
- Count = Count2;
- Resistances = Resistances2;
- Weights = Weights2;
- pd = PullDown2;
- pu = PullUp2;
- break;
- }
-
- case 2:
- default: {
- Count = Count3;
- Resistances = Resistances3;
- Weights = Weights3;
- pd = PullDown3;
- pu = PullUp3;
- break;
- }
- }
-
- if (Count > 0) {
- ResCount[NetworksNum] = Count;
- for (i = 0; i < Count; i++) {
- r[NetworksNum][i] = 1.0 * Resistances[i];
- }
- Out[NetworksNum] = Weights;
- r_pd[NetworksNum] = pd;
- r_pu[NetworksNum] = pu;
- NetworksNum++;
- }
- }
-
- for (i = 0; i < NetworksNum; i++) {
- double R0, R1, Vout, Dst;
-
- for (n = 0; n < ResCount[i]; n++) {
- R0 = (r_pd[i] == 0) ? 1.0 / 1e12 : 1.0 / r_pd[i];
- R1 = (r_pu[i] == 0) ? 1.0 / 1e12 : 1.0 / r_pu[i];
-
- for (j = 0; j < ResCount[i]; j++) {
- if (j == n) {
- if (r[i][j] != 0.0) R1 += 1.0 / r[i][j];
- } else {
- if (r[i][j] != 0.0) R0 += 1.0 / r[i][j];
- }
- }
-
- R0 = 1.0/R0;
- R1 = 1.0/R1;
- Vout = (MaxVal - MinVal) * R0 / (R1 + R0) + MinVal;
-
- Dst = (Vout < MinVal) ? MinVal : (Vout > MaxVal) ? MaxVal : Vout;
-
- w[i][n] = Dst;
- }
- }
-
- j = 0;
- Max = 0.0;
- for (i = 0; i < NetworksNum; i++) {
- double Sum = 0.0;
-
- for (n = 0; n < ResCount[i]; n++) Sum += w[i][n];
-
- MaxOut[i] = Sum;
- if (Max < Sum) {
- Max = Sum;
- j = i;
- }
- }
-
- if (Scaler < 0.0) {
- Scale = ((double)MaxVal) / MaxOut[j];
- } else {
- Scale = Scaler;
- }
-
- for (i = 0; i < NetworksNum; i++) {
- for (n = 0; n < ResCount[i]; n++) {
- ws[i][n] = w[i][n] * Scale;
- (Out[i])[n] = ws[i][n];
- }
- }
-
- return Scale;
-
-}
-
-void GalaxianCalcPalette()
-{
- static const INT32 RGBResistances[3] = {1000, 470, 220};
- double rWeights[3], gWeights[3], bWeights[2];
-
- ComputeResistorWeights(0, RGB_MAXIMUM, -1.0, 3, &RGBResistances[0], rWeights, 470, 0, 3, &RGBResistances[0], gWeights, 470, 0, 2, &RGBResistances[1], bWeights, 470, 0);
-
- // Colour PROM
- for (INT32 i = 0; i < 32; i++) {
- UINT8 Bit0, Bit1, Bit2, r, g, b;
-
- Bit0 = BIT(GalProm[i + (GalPaletteBank * 0x20)],0);
- Bit1 = BIT(GalProm[i + (GalPaletteBank * 0x20)],1);
- Bit2 = BIT(GalProm[i + (GalPaletteBank * 0x20)],2);
- r = Combine3Weights(rWeights, Bit0, Bit1, Bit2);
-
- Bit0 = BIT(GalProm[i + (GalPaletteBank * 0x20)],3);
- Bit1 = BIT(GalProm[i + (GalPaletteBank * 0x20)],4);
- Bit2 = BIT(GalProm[i + (GalPaletteBank * 0x20)],5);
- g = Combine3Weights(gWeights, Bit0, Bit1, Bit2);
-
- Bit0 = BIT(GalProm[i + (GalPaletteBank * 0x20)],6);
- Bit1 = BIT(GalProm[i + (GalPaletteBank * 0x20)],7);
- b = Combine2Weights(bWeights, Bit0, Bit1);
-
- GalPalette[i] = BurnHighCol(r, g, b, 0);
- }
-
- // Stars
- for (INT32 i = 0; i < GAL_PALETTE_NUM_COLOURS_STARS; i++) {
- INT32 Bits, r, g, b;
- INT32 Map[4] = {0x00, 0x88, 0xcc, 0xff};
-
- Bits = (i >> 0) & 0x03;
- r = Map[Bits];
- Bits = (i >> 2) & 0x03;
- g = Map[Bits];
- Bits = (i >> 4) & 0x03;
- b = Map[Bits];
-
- GalPalette[i + GAL_PALETTE_STARS_OFFSET] = BurnHighCol(r, g, b, 0);
- }
-
- // Bullets
- for (INT32 i = 0; i < GAL_PALETTE_NUM_COLOURS_BULLETS - 1; i++) {
- GalPalette[i + GAL_PALETTE_BULLETS_OFFSET] = BurnHighCol(0xff, 0xff, 0xff, 0);
- }
- GalPalette[GAL_PALETTE_NUM_COLOURS_BULLETS - 1 + GAL_PALETTE_BULLETS_OFFSET] = BurnHighCol(0xff, 0xff, 0x00, 0);
-}
-
-void RockclimCalcPalette()
-{
- static const INT32 RGBResistances[3] = {1000, 470, 220};
- double rWeights[3], gWeights[3], bWeights[2];
-
- ComputeResistorWeights(0, RGB_MAXIMUM, -1.0, 3, &RGBResistances[0], rWeights, 470, 0, 3, &RGBResistances[0], gWeights, 470, 0, 2, &RGBResistances[1], bWeights, 470, 0);
-
- // Colour PROM
- for (INT32 i = 0; i < 64; i++) {
- UINT8 Bit0, Bit1, Bit2, r, g, b;
-
- Bit0 = BIT(GalProm[i + (GalPaletteBank * 0x20)],0);
- Bit1 = BIT(GalProm[i + (GalPaletteBank * 0x20)],1);
- Bit2 = BIT(GalProm[i + (GalPaletteBank * 0x20)],2);
- r = Combine3Weights(rWeights, Bit0, Bit1, Bit2);
-
- Bit0 = BIT(GalProm[i + (GalPaletteBank * 0x20)],3);
- Bit1 = BIT(GalProm[i + (GalPaletteBank * 0x20)],4);
- Bit2 = BIT(GalProm[i + (GalPaletteBank * 0x20)],5);
- g = Combine3Weights(gWeights, Bit0, Bit1, Bit2);
-
- Bit0 = BIT(GalProm[i + (GalPaletteBank * 0x20)],6);
- Bit1 = BIT(GalProm[i + (GalPaletteBank * 0x20)],7);
- b = Combine2Weights(bWeights, Bit0, Bit1);
-
- GalPalette[i] = BurnHighCol(r, g, b, 0);
- }
-
- // Stars
- for (INT32 i = 0; i < GAL_PALETTE_NUM_COLOURS_STARS; i++) {
- INT32 Bits, r, g, b;
- INT32 Map[4] = {0x00, 0x88, 0xcc, 0xff};
-
- Bits = (i >> 0) & 0x03;
- r = Map[Bits];
- Bits = (i >> 2) & 0x03;
- g = Map[Bits];
- Bits = (i >> 4) & 0x03;
- b = Map[Bits];
-
- GalPalette[i + GAL_PALETTE_STARS_OFFSET] = BurnHighCol(r, g, b, 0);
- }
-
- // Bullets
- for (INT32 i = 0; i < GAL_PALETTE_NUM_COLOURS_BULLETS - 1; i++) {
- GalPalette[i + GAL_PALETTE_BULLETS_OFFSET] = BurnHighCol(0xff, 0xff, 0xff, 0);
- }
- GalPalette[GAL_PALETTE_NUM_COLOURS_BULLETS - 1 + GAL_PALETTE_BULLETS_OFFSET] = BurnHighCol(0xff, 0xff, 0x00, 0);
-}
-
-void MarinerCalcPalette()
-{
- GalaxianCalcPalette();
-
- for (INT32 i = 0; i < 16; i++) {
- INT32 b = 0x0e * BIT(i, 0) + 0x1f * BIT(i, 1) + 0x43 * BIT(i, 2) + 0x8f * BIT(i, 3);
- GalPalette[i + GAL_PALETTE_BACKGROUND_OFFSET] = BurnHighCol(0, 0, b, 0);
- }
-}
-
-void StratgyxCalcPalette()
-{
- GalaxianCalcPalette();
-
- for (INT32 i = 0; i < 8; i++) {
- INT32 r = BIT(i, 0) * 0x7c;
- INT32 g = BIT(i, 1) * 0x3c;
- INT32 b = BIT(i, 2) * 0x47;
- GalPalette[i + GAL_PALETTE_BACKGROUND_OFFSET] = BurnHighCol(r, g, b, 0);
- }
-}
-
-void RescueCalcPalette()
-{
- GalaxianCalcPalette();
-
- for (INT32 i = 0; i < 128; i++) {
- INT32 b = i * 2;
- GalPalette[i + GAL_PALETTE_BACKGROUND_OFFSET] = BurnHighCol(0, 0, b, 0);
- }
-}
-
-void MinefldCalcPalette()
-{
- RescueCalcPalette();
-
- for (INT32 i = 0; i < 128; i++) {
- INT32 r = (INT32)(i * 1.5);
- INT32 g = (INT32)(i * 0.75);
- INT32 b = i / 2;
- GalPalette[i + 128 + GAL_PALETTE_BACKGROUND_OFFSET] = BurnHighCol(r, g, b, 0);
- }
-}
-
-void DarkplntCalcPalette()
-{
- static const INT32 RGBResistances[3] = {1000, 470, 220};
- double rWeights[3], gWeights[3], bWeights[2];
-
- ComputeResistorWeights(0, RGB_MAXIMUM, -1.0, 3, &RGBResistances[0], rWeights, 470, 0, 3, &RGBResistances[0], gWeights, 470, 0, 2, &RGBResistances[1], bWeights, 470, 0);
-
- // Colour PROM
- for (INT32 i = 0; i < 32; i++) {
- UINT8 Bit0, Bit1, Bit2, r, g, b;
-
- Bit0 = BIT(GalProm[i + (GalPaletteBank * 0x20)],0);
- Bit1 = BIT(GalProm[i + (GalPaletteBank * 0x20)],1);
- Bit2 = BIT(GalProm[i + (GalPaletteBank * 0x20)],2);
- r = Combine3Weights(rWeights, Bit0, Bit1, Bit2);
-
- g = 0;
-
- Bit0 = BIT(GalProm[i + (GalPaletteBank * 0x20)],3);
- Bit1 = BIT(GalProm[i + (GalPaletteBank * 0x20)],4);
- Bit2 = BIT(GalProm[i + (GalPaletteBank * 0x20)],5);
- b = Combine2Weights(bWeights, Bit0, Bit1);
-
- GalPalette[i] = BurnHighCol(r, g, b, 0);
- }
-
- // Stars
- for (INT32 i = 0; i < GAL_PALETTE_NUM_COLOURS_STARS; i++) {
- INT32 Bits, r, g, b;
- INT32 Map[4] = {0x00, 0x88, 0xcc, 0xff};
-
- Bits = (i >> 0) & 0x03;
- r = Map[Bits];
- Bits = (i >> 2) & 0x03;
- g = Map[Bits];
- Bits = (i >> 4) & 0x03;
- b = Map[Bits];
-
- GalPalette[i + GAL_PALETTE_STARS_OFFSET] = BurnHighCol(r, g, b, 0);
- }
-
- // Bullets
- GalPalette[0 + GAL_PALETTE_BULLETS_OFFSET] = BurnHighCol(0xef, 0x00, 0x00, 0);
- GalPalette[1 + GAL_PALETTE_BULLETS_OFFSET] = BurnHighCol(0x00, 0x00, 0xef, 0);
-}
-
-void DambustrCalcPalette()
-{
- static const INT32 RGBResistances[3] = {1000, 470, 220};
- double rWeights[3], gWeights[3], bWeights[2];
-
- ComputeResistorWeights(0, RGB_MAXIMUM, -1.0, 3, &RGBResistances[0], rWeights, 470, 0, 3, &RGBResistances[0], gWeights, 470, 0, 2, &RGBResistances[1], bWeights, 470, 0);
-
- // Colour PROM
- for (INT32 i = 0; i < 32; i++) {
- UINT8 Bit0, Bit1, Bit2, r, g, b;
-
- Bit0 = BIT(GalProm[i + (GalPaletteBank * 0x20)],0);
- Bit1 = BIT(GalProm[i + (GalPaletteBank * 0x20)],1);
- Bit2 = BIT(GalProm[i + (GalPaletteBank * 0x20)],2);
- b = Combine3Weights(rWeights, Bit0, Bit1, Bit2);
-
- Bit0 = BIT(GalProm[i + (GalPaletteBank * 0x20)],3);
- Bit1 = BIT(GalProm[i + (GalPaletteBank * 0x20)],4);
- Bit2 = BIT(GalProm[i + (GalPaletteBank * 0x20)],5);
- r = Combine3Weights(gWeights, Bit0, Bit1, Bit2);
-
- Bit0 = BIT(GalProm[i + (GalPaletteBank * 0x20)],6);
- Bit1 = BIT(GalProm[i + (GalPaletteBank * 0x20)],7);
- g = Combine2Weights(bWeights, Bit0, Bit1);
-
- GalPalette[i] = BurnHighCol(r, g, b, 0);
- }
-
- // Stars
- for (INT32 i = 0; i < GAL_PALETTE_NUM_COLOURS_STARS; i++) {
- INT32 Bits, r, g, b;
- INT32 Map[4] = {0x00, 0x88, 0xcc, 0xff};
-
- Bits = (i >> 0) & 0x03;
- r = Map[Bits];
- Bits = (i >> 2) & 0x03;
- g = Map[Bits];
- Bits = (i >> 4) & 0x03;
- b = Map[Bits];
-
- GalPalette[i + GAL_PALETTE_STARS_OFFSET] = BurnHighCol(r, g, b, 0);
- }
-
- // Bullets
- for (INT32 i = 0; i < GAL_PALETTE_NUM_COLOURS_BULLETS - 1; i++) {
- GalPalette[i + GAL_PALETTE_BULLETS_OFFSET] = BurnHighCol(0xff, 0xff, 0xff, 0);
- }
- GalPalette[GAL_PALETTE_NUM_COLOURS_BULLETS - 1 + GAL_PALETTE_BULLETS_OFFSET] = BurnHighCol(0xff, 0xff, 0x00, 0);
-
- for (INT32 i = 0; i < 8; i++) {
- INT32 r = BIT(i, 0) * 0x47;
- INT32 g = BIT(i, 1) * 0x47;
- INT32 b = BIT(i, 2) * 0x4f;
- GalPalette[i + GAL_PALETTE_BACKGROUND_OFFSET] = BurnHighCol(r, g, b, 0);
- }
-}
-
-#undef RGB_MAXIMUM
-#undef MAX_NETS
-#undef MAX_RES_PER_NET
-#undef Combine_2Weights
-#undef Combine_3Weights
-
-// Background and Stars rendering
-void GalaxianDrawBackground()
-{
- if (GalStarsEnable) GalaxianRenderStarLayer();
-}
-
-void RockclimDrawBackground()
-{
- INT32 mx, my, Code, Colour, x, y, TileIndex = 0;
-
- for (my = 0; my < 32; my++) {
- for (mx = 0; mx < 64; mx++) {
- Code = GalVideoRam2[TileIndex];
- Colour = 0;
-
- x = 8 * mx;
- y = 8 * my;
-
- x -= RockclimScrollX & 0x1ff;
- y -= RockclimScrollY & 0xff;
-
- if (x < -8) x += 512;
- if (y < -8) y += 256;
-
- y -= 16;
-
- if (x > 8 && x < (nScreenWidth - 8) && y > 8 && y < (nScreenHeight - 8)) {
- Render8x8Tile(pTransDraw, Code, x, y, Colour, 4, 32, RockclimTiles);
- } else {
- Render8x8Tile_Clip(pTransDraw, Code, x, y, Colour, 4, 32, RockclimTiles);
- }
-
- TileIndex++;
- }
- }
-}
-
-void JumpbugDrawBackground()
-{
- if (GalStarsEnable) JumpbugRenderStarLayer();
-}
-
-void FroggerDrawBackground()
-{
- GalPalette[GAL_PALETTE_BACKGROUND_OFFSET] = BurnHighCol(0, 0, 0x47, 0);
-
- if (GalFlipScreenX) {
- for (INT32 y = 0; y < nScreenHeight; y++) {
- for (INT32 x = nScreenWidth - 1; x > 128 - 8; x--) {
- pTransDraw[(y * nScreenWidth) + x] = GAL_PALETTE_BACKGROUND_OFFSET;
- }
- }
- } else {
- for (INT32 y = 0; y < nScreenHeight; y++) {
- for (INT32 x = 0; x < 128; x++) {
- pTransDraw[(y * nScreenWidth) + x] = GAL_PALETTE_BACKGROUND_OFFSET;
- }
- }
- }
-}
-
-void TurtlesDrawBackground()
-{
- GalPalette[GAL_PALETTE_BACKGROUND_OFFSET] = BurnHighCol(GalBackgroundRed * 0x55, GalBackgroundGreen * 0x47, GalBackgroundBlue * 0x55, 0);
-
- for (INT32 y = 0; y < nScreenHeight; y++) {
- for (INT32 x = 0; x < nScreenWidth; x++) {
- pTransDraw[(y * nScreenWidth) + x] = GAL_PALETTE_BACKGROUND_OFFSET;
- }
- }
-}
-
-void ScrambleDrawBackground()
-{
- GalPalette[GAL_PALETTE_BACKGROUND_OFFSET] = BurnHighCol(0, 0, 0x56, 0);
-
- if (GalBackgroundEnable) {
- for (INT32 y = 0; y < nScreenHeight; y++) {
- for (INT32 x = 0; x < nScreenWidth; x++) {
- pTransDraw[(y * nScreenWidth) + x] = GAL_PALETTE_BACKGROUND_OFFSET;
- }
- }
- }
-
- if (GalStarsEnable) ScrambleRenderStarLayer();
-}
-
-void AnteaterDrawBackground()
-{
- GalPalette[GAL_PALETTE_BACKGROUND_OFFSET] = BurnHighCol(0, 0, 0x56, 0);
-
- if (GalBackgroundEnable) {
- if (GalFlipScreenX) {
- for (INT32 y = 0; y < nScreenHeight; y++) {
- for (INT32 x = nScreenWidth - 1; x > 256 - 56; x--) {
- pTransDraw[(y * nScreenWidth) + x] = GAL_PALETTE_BACKGROUND_OFFSET;
- }
- }
- } else {
- for (INT32 y = 0; y < nScreenHeight; y++) {
- for (INT32 x = 0; x < 56; x++) {
- pTransDraw[(y * nScreenWidth) + x] = GAL_PALETTE_BACKGROUND_OFFSET;
- }
- }
- }
- }
-}
-
-void MarinerDrawBackground()
-{
- UINT8 *BgColourProm = GalProm + 0x20;
- INT32 x;
-
- if (GalFlipScreenX) {
- for (x = 0; x < 32; x++) {
- INT32 Colour;
-
- if (x == 0) {
- Colour = 0;
- } else {
- Colour = BgColourProm[0x20 + x - 1];
- }
-
- INT32 xStart = 8 * (31 - x);
- for (INT32 sy = 0; sy < nScreenHeight; sy++) {
- for (INT32 sx = xStart; sx < xStart + 8; sx++) {
- pTransDraw[(sy * nScreenWidth) + sx] = GAL_PALETTE_BACKGROUND_OFFSET + Colour;
- }
- }
- }
- } else {
- for (x = 0; x < 32; x++) {
- INT32 Colour;
-
- if (x == 31) {
- Colour = 0;
- } else {
- Colour = BgColourProm[x + 1];
- }
-
- INT32 xStart = x * 8;
- for (INT32 sy = 0; sy < nScreenHeight; sy++) {
- for (INT32 sx = xStart; sx < xStart + 8; sx++) {
- pTransDraw[(sy * nScreenWidth) + sx] = GAL_PALETTE_BACKGROUND_OFFSET + Colour;
- }
- }
- }
- }
-
- if (GalStarsEnable) MarinerRenderStarLayer();
-}
-
-void StratgyxDrawBackground()
-{
- UINT8 *BgColourProm = GalProm + 0x20;
-
- for (INT32 x = 0; x < 32; x++) {
- INT32 xStart, Colour = 0;
-
- if ((~BgColourProm[x] & 0x02) && GalBackgroundRed) Colour |= 0x01;
- if ((~BgColourProm[x] & 0x02) && GalBackgroundGreen) Colour |= 0x02;
- if ((~BgColourProm[x] & 0x01) && GalBackgroundBlue) Colour |= 0x04;
-
- if (GalFlipScreenX) {
- xStart = 8 * (31 - x);
- } else {
- xStart = 8 * x;
- }
-
- for (INT32 sy = 0; sy < nScreenHeight; sy++) {
- for (INT32 sx = xStart; sx < xStart + 8; sx++) {
- pTransDraw[(sy * nScreenWidth) + sx] = GAL_PALETTE_BACKGROUND_OFFSET + Colour;
- }
- }
- }
-}
-
-void RescueDrawBackground()
-{
- if (GalBackgroundEnable) {
- INT32 x;
-
- for (x = 0; x < 128; x++) {
- for (INT32 y = 0; y < nScreenHeight; y++) {
- pTransDraw[(y * nScreenWidth) + x] = GAL_PALETTE_BACKGROUND_OFFSET + x;
- }
- }
-
- for (x = 0; x < 120; x++) {
- for (INT32 y = 0; y < nScreenHeight; y++) {
- pTransDraw[(y * nScreenWidth) + (x + 128)] = GAL_PALETTE_BACKGROUND_OFFSET + x + 8;
- }
- }
-
- for (x = 0; x < 8; x++) {
- for (INT32 y = 0; y < nScreenHeight; y++) {
- pTransDraw[(y * nScreenWidth) + (x + 248)] = GAL_PALETTE_BACKGROUND_OFFSET;
- }
- }
- }
-
- if (GalStarsEnable) RescueRenderStarLayer();
-}
-
-void MinefldDrawBackground()
-{
- if (GalBackgroundEnable) {
- INT32 x;
-
- for (x = 0; x < 128; x++) {
- for (INT32 y = 0; y < nScreenHeight; y++) {
- pTransDraw[(y * nScreenWidth) + x] = GAL_PALETTE_BACKGROUND_OFFSET + x;
- }
- }
-
- for (x = 0; x < 120; x++) {
- for (INT32 y = 0; y < nScreenHeight; y++) {
- pTransDraw[(y * nScreenWidth) + (x + 128)] = GAL_PALETTE_BACKGROUND_OFFSET + x + 128;
- }
- }
-
- for (x = 0; x < 8; x++) {
- for (INT32 y = 0; y < nScreenHeight; y++) {
- pTransDraw[(y * nScreenWidth) + (x + 248)] = GAL_PALETTE_BACKGROUND_OFFSET;
- }
- }
- }
-
- if (GalStarsEnable) RescueRenderStarLayer();
-}
-
-void DambustrDrawBackground()
-{
- INT32 xClipStart = GalFlipScreenX ? 254 - DambustrBgSplitLine : 0;
- INT32 xClipEnd = GalFlipScreenX ? 0 : 254 - DambustrBgSplitLine;
-
- for (INT32 x = 0; x < 256 - DambustrBgSplitLine; x++) {
- if (DambustrBgPriority && (x < xClipStart || x > xClipEnd)) continue;
- for (INT32 y = 0; y < nScreenHeight; y++) {
- pTransDraw[(y * nScreenWidth) + x] = GAL_PALETTE_BACKGROUND_OFFSET + ((GalFlipScreenX) ? DambustrBgColour2 : DambustrBgColour1);
- }
- }
-
- for (INT32 x = 255; x > 256 - DambustrBgSplitLine; x--) {
- if (DambustrBgPriority && (x < xClipStart || x > xClipEnd)) continue;
- for (INT32 y = 0; y < nScreenHeight; y++) {
- pTransDraw[(y * nScreenWidth) + x] = GAL_PALETTE_BACKGROUND_OFFSET + ((GalFlipScreenX) ? DambustrBgColour1 : DambustrBgColour2);
- }
- }
-
- if (GalStarsEnable && !DambustrBgPriority) GalaxianRenderStarLayer();
-}
-
-// Char Layer rendering
-static void GalRenderBgLayer(UINT8 *pVideoRam)
-{
- INT32 mx, my, Attr, Colour, x, y, TileIndex = 0, RamPos;
- UINT16 Code;
-
- for (my = 0; my < 32; my++) {
- for (mx = 0; mx < 32; mx++) {
- RamPos = TileIndex & 0x1f;
- Code = pVideoRam[TileIndex];
- Attr = GalSpriteRam[(RamPos * 2) + 1];
- Colour = Attr & ((GalColourDepth == 3) ? 0x03 : 0x07);
-
- if (GalExtendTileInfoFunction) GalExtendTileInfoFunction(&Code, &Colour, Attr, RamPos);
-
- if (SfxTilemap) {
- x = 8 * my;
- y = 8 * mx;
- } else {
- x = 8 * mx;
- y = 8 * my;
- }
-
- y -= 16;
-
- if (GalFlipScreenX) x = nScreenWidth - 8 - x;
- if (GalFlipScreenY) y = nScreenHeight - 8 - y;
-
- INT32 px, py;
-
- UINT32 nPalette = Colour << GalColourDepth;
-
- for (py = 0; py < 8; py++) {
- for (px = 0; px < 8; px++) {
- UINT8 c = GalChars[(Code * 64) + (py * 8) + px];
- if (GalFlipScreenX) c = GalChars[(Code * 64) + (py * 8) + (7 - px)];
- if (GalFlipScreenY) c = GalChars[(Code * 64) + ((7 - py) * 8) + px];
- if (GalFlipScreenX && GalFlipScreenY) c = GalChars[(Code * 64) + ((7 - py) * 8) + (7 - px)];
-
- if (c) {
- INT32 xPos = x + px;
- INT32 yPos = y + py;
-
- if (SfxTilemap) {
- if (GalFlipScreenX) {
- xPos += GalScrollVals[mx];
- } else {
- xPos -= GalScrollVals[mx];
- }
-
- if (xPos < 0) xPos += 256;
- if (xPos > 255) xPos -= 256;
- } else {
- if (GalFlipScreenY) {
- yPos += GalScrollVals[mx];
- } else {
- yPos -= GalScrollVals[mx];
- }
-
- if (yPos < 0) yPos += 256;
- if (yPos > 255) yPos -= 256;
- }
-
- if (GalOrientationFlipX) {
- xPos = nScreenWidth - 1 - xPos;
- }
-
- if (yPos >= 0 && yPos < nScreenHeight) {
- UINT16* pPixel = pTransDraw + (yPos * nScreenWidth);
-
- if (xPos >= 0 && xPos < nScreenWidth) {
- pPixel[xPos] = c | nPalette;
- }
- }
- }
- }
- }
-
- TileIndex++;
- }
- }
-}
-
-// Sprite Rendering
-static void GalRenderSprites(const UINT8 *SpriteBase)
-{
- INT32 SprNum;
- INT32 ClipOfs = GalFlipScreenX ? 16 : 0;
- INT32 xMin = GalSpriteClipStart - ClipOfs;
- INT32 xMax = GalSpriteClipEnd - ClipOfs + 1;
-
- for (SprNum = 7; SprNum >= 0; SprNum--) {
- const UINT8 *Base = &SpriteBase[SprNum * 4];
- UINT8 Base0 = FroggerAdjust ? ((Base[0] >> 4) | (Base[0] << 4)) : Base[0];
- INT32 sy = 240 - (Base0 - (SprNum < 3));
- UINT16 Code = Base[1] & 0x3f;
- UINT8 xFlip = Base[1] & 0x40;
- UINT8 yFlip = Base[1] & 0x80;
- UINT8 Colour = Base[2] & ((GalColourDepth == 3) ? 0x03 : 0x07);
- INT32 sx = Base[3];
-
- if (GalExtendSpriteInfoFunction) GalExtendSpriteInfoFunction(Base, &sx, &sy, &xFlip, &yFlip, &Code, &Colour);
-
- if (GalFlipScreenX) {
- sx = 242 - sx;
- xFlip = !xFlip;
- }
-
- if (sx < xMin || sx > xMax) continue;
-
- if (GalFlipScreenY) {
- sy = 240 - sy;
- yFlip = !yFlip;
- }
-
- sy -= 16;
-
- if (GalOrientationFlipX) {
- sx = 242 - 1 - sx;
- xFlip = !xFlip;
- }
-
- if (sx > 16 && sx < (nScreenWidth - 16) && sy > 16 && sy < (nScreenHeight - 16)) {
- if (xFlip) {
- if (yFlip) {
- Render16x16Tile_Mask_FlipXY(pTransDraw, Code, sx, sy, Colour, GalColourDepth, 0, 0, GalSprites);
- } else {
- Render16x16Tile_Mask_FlipX(pTransDraw, Code, sx, sy, Colour, GalColourDepth, 0, 0, GalSprites);
- }
- } else {
- if (yFlip) {
- Render16x16Tile_Mask_FlipY(pTransDraw, Code, sx, sy, Colour, GalColourDepth, 0, 0, GalSprites);
- } else {
- Render16x16Tile_Mask(pTransDraw, Code, sx, sy, Colour, GalColourDepth, 0, 0, GalSprites);
- }
- }
- } else {
- if (xFlip) {
- if (yFlip) {
- Render16x16Tile_Mask_FlipXY_Clip(pTransDraw, Code, sx, sy, Colour, GalColourDepth, 0, 0, GalSprites);
- } else {
- Render16x16Tile_Mask_FlipX_Clip(pTransDraw, Code, sx, sy, Colour, GalColourDepth, 0, 0, GalSprites);
- }
- } else {
- if (yFlip) {
- Render16x16Tile_Mask_FlipY_Clip(pTransDraw, Code, sx, sy, Colour, GalColourDepth, 0, 0, GalSprites);
- } else {
- Render16x16Tile_Mask_Clip(pTransDraw, Code, sx, sy, Colour, GalColourDepth, 0, 0, GalSprites);
- }
- }
- }
- }
-}
-
-// Bullet rendering
-static inline void GalDrawPixel(INT32 x, INT32 y, INT32 Colour)
-{
- if (y >= 0 && y < nScreenHeight && x >= 0 && x < nScreenWidth) {
- pTransDraw[(y * nScreenWidth) + x] = Colour;
- }
-}
-
-void GalaxianDrawBullets(INT32 Offs, INT32 x, INT32 y)
-{
- x -= 4;
-
- GalDrawPixel(x++, y, GAL_PALETTE_BULLETS_OFFSET + Offs);
- GalDrawPixel(x++, y, GAL_PALETTE_BULLETS_OFFSET + Offs);
- GalDrawPixel(x++, y, GAL_PALETTE_BULLETS_OFFSET + Offs);
- GalDrawPixel(x++, y, GAL_PALETTE_BULLETS_OFFSET + Offs);
-}
-
-void TheendDrawBullets(INT32 Offs, INT32 x, INT32 y)
-{
- x -= 4;
-
- GalPalette[GAL_PALETTE_BULLETS_OFFSET + 7] = BurnHighCol(0xff, 0x00, 0xff, 0);
-
- GalDrawPixel(x++, y, GAL_PALETTE_BULLETS_OFFSET + Offs);
- GalDrawPixel(x++, y, GAL_PALETTE_BULLETS_OFFSET + Offs);
- GalDrawPixel(x++, y, GAL_PALETTE_BULLETS_OFFSET + Offs);
- GalDrawPixel(x++, y, GAL_PALETTE_BULLETS_OFFSET + Offs);
-}
-
-void ScrambleDrawBullets(INT32, INT32 x, INT32 y)
-{
- x -= 6;
-
- GalDrawPixel(x, y, GAL_PALETTE_BULLETS_OFFSET + 7);
-}
-
-void MoonwarDrawBullets(INT32, INT32 x, INT32 y)
-{
- x -= 6;
-
- GalPalette[GAL_PALETTE_BULLETS_OFFSET + 7] = BurnHighCol(0xef, 0xef, 0x97, 0);
-
- GalDrawPixel(x, y, GAL_PALETTE_BULLETS_OFFSET + 7);
-}
-
-void MshuttleDrawBullets(INT32, INT32 x, INT32 y)
-{
- GalPalette[GAL_PALETTE_BULLETS_OFFSET + 0] = BurnHighCol(0xff, 0xff, 0xff, 0);
- GalPalette[GAL_PALETTE_BULLETS_OFFSET + 1] = BurnHighCol(0xff, 0xff, 0x00, 0);
- GalPalette[GAL_PALETTE_BULLETS_OFFSET + 2] = BurnHighCol(0x00, 0xff, 0xff, 0);
- GalPalette[GAL_PALETTE_BULLETS_OFFSET + 3] = BurnHighCol(0x00, 0xff, 0x00, 0);
- GalPalette[GAL_PALETTE_BULLETS_OFFSET + 4] = BurnHighCol(0xff, 0x00, 0xff, 0);
- GalPalette[GAL_PALETTE_BULLETS_OFFSET + 5] = BurnHighCol(0xff, 0x00, 0x00, 0);
- GalPalette[GAL_PALETTE_BULLETS_OFFSET + 6] = BurnHighCol(0x00, 0x00, 0xff, 0);
- GalPalette[GAL_PALETTE_BULLETS_OFFSET + 7] = BurnHighCol(0x00, 0x00, 0x00, 0);
-
- --x;
- GalDrawPixel(x, y, ((x & 0x40) == 0) ? GAL_PALETTE_BULLETS_OFFSET + + ((x >> 2) & 7) : GAL_PALETTE_BULLETS_OFFSET + + 4);
- --x;
- GalDrawPixel(x, y, ((x & 0x40) == 0) ? GAL_PALETTE_BULLETS_OFFSET + + ((x >> 2) & 7) : GAL_PALETTE_BULLETS_OFFSET + + 4);
- --x;
- GalDrawPixel(x, y, ((x & 0x40) == 0) ? GAL_PALETTE_BULLETS_OFFSET + + ((x >> 2) & 7) : GAL_PALETTE_BULLETS_OFFSET + + 4);
- --x;
- GalDrawPixel(x, y, ((x & 0x40) == 0) ? GAL_PALETTE_BULLETS_OFFSET + + ((x >> 2) & 7) : GAL_PALETTE_BULLETS_OFFSET + + 4);
-}
-
-void DarkplntDrawBullets(INT32, INT32 x, INT32 y)
-{
- if (GalFlipScreenX) x++;
-
- x -= 6;
-
- GalDrawPixel(x, y, GAL_PALETTE_BULLETS_OFFSET + DarkplntBulletColour);
-}
-
-void DambustrDrawBullets(INT32 Offs, INT32 x, INT32 y)
-{
- INT32 Colour;
-
- if (GalFlipScreenX) x++;
-
- x -= 6;
-
- for (INT32 i = 0; i < 2; i++) {
- if (Offs < 16) {
- Colour = GAL_PALETTE_BULLETS_OFFSET + 7;
- y--;
- } else {
- Colour = GAL_PALETTE_BULLETS_OFFSET;
- x--;
- }
- }
-
- GalDrawPixel(x, y, Colour);
-}
-
-static void GalDrawBullets(const UINT8 *Base)
-{
- for (INT32 y = 0; y < nScreenHeight; y++) {
- UINT8 Shell = 0xff;
- UINT8 Missile = 0xff;
- UINT8 yEff;
- INT32 Which;
-
- yEff = (GalFlipScreenY) ? (y + 16 - 1) ^ 255 : y + 16 - 1;
-
- for (Which = 0; Which < 3; Which++) {
- if ((UINT8)(Base[Which * 4 + 1] + yEff) == 0xff) Shell = Which;
- }
-
- yEff = (GalFlipScreenY) ? (y + 16) ^ 255 : y + 16;
-
- for (Which = 3; Which < 8; Which++) {
- if ((UINT8)(Base[Which * 4 + 1] + yEff) == 0xff) {
- if (Which != 7) {
- Shell = Which;
- } else {
- Missile = Which;
- }
- }
- }
-
- if (Shell != 0xff) GalDrawBulletsFunction(Shell, (GalOrientationFlipX) ? Base[Shell * 4 + 3] : 255 - Base[Shell * 4 + 3], y);
- if (Missile != 0xff) GalDrawBulletsFunction(Missile, (GalOrientationFlipX) ? Base[Missile * 4 + 3] : 255 - Base[Missile * 4 + 3], y);
- }
-}
-
-// Render a frame
-void GalDraw()
-{
- if (GalRenderFrameFunction) {
- GalRenderFrameFunction();
- } else {
- BurnTransferClear();
- GalCalcPaletteFunction();
- if (GalRenderBackgroundFunction) GalRenderBackgroundFunction();
- GalRenderBgLayer(GalVideoRam);
- GalRenderSprites(&GalSpriteRam[0x40]);
- if (GalDrawBulletsFunction) GalDrawBullets(&GalSpriteRam[0x60]);
- BurnTransferCopy(GalPalette);
- }
-}
-
-void ZigZagRenderFrame()
-{
- BurnTransferClear();
- GalCalcPaletteFunction();
- if (GalRenderBackgroundFunction) GalRenderBackgroundFunction();
- GalRenderBgLayer(GalVideoRam);
- GalRenderSprites(&GalSpriteRam[0x40]);
- GalRenderSprites(&GalSpriteRam[0x40 + 0x20]);
- //if (GalDrawBulletsFunction) GalDrawBullets(&GalSpriteRam[0x60]);
- BurnTransferCopy(GalPalette);
-}
-
-void DkongjrmRenderFrame()
-{
- BurnTransferClear();
- GalCalcPaletteFunction();
- if (GalRenderBackgroundFunction) GalRenderBackgroundFunction();
- GalRenderBgLayer(GalVideoRam);
- GalRenderSprites(&GalSpriteRam[0x40]);
- GalRenderSprites(&GalSpriteRam[0x60]);
- GalRenderSprites(&GalSpriteRam[0xc0]);
- GalRenderSprites(&GalSpriteRam[0xe0]);
- if (GalDrawBulletsFunction) GalDrawBullets(&GalSpriteRam[0x60]);
- BurnTransferCopy(GalPalette);
-}
-
-void DambustrRenderFrame()
-{
- BurnTransferClear();
- GalCalcPaletteFunction();
- if (GalRenderBackgroundFunction) GalRenderBackgroundFunction();
- GalRenderBgLayer(GalVideoRam);
- GalRenderSprites(&GalSpriteRam[0x40]);
- if (GalDrawBulletsFunction) GalDrawBullets(&GalSpriteRam[0x60]);
- if (DambustrBgPriority) {
- if (GalRenderBackgroundFunction) GalRenderBackgroundFunction();
- memset(GalVideoRam2, 0x20, 0x400);
- for (INT32 i = 0; i < 32; i++) {
- INT32 Colour = GalSpriteRam[(i << 1) | 1] & 7;
- if (Colour > 3) {
- for (INT32 j = 0; j < 32; j++) GalVideoRam2[(32 * j) + i] = GalVideoRam[(32 * j) + i];
- }
- }
- GalRenderBgLayer(GalVideoRam2);
- }
- BurnTransferCopy(GalPalette);
-}
-
-void FantastcRenderFrame()
-{
- BurnTransferClear();
- GalCalcPaletteFunction();
- if (GalRenderBackgroundFunction) GalRenderBackgroundFunction();
- GalRenderBgLayer(GalVideoRam);
- GalRenderSprites(&GalSpriteRam[0x40]);
- if (GalDrawBulletsFunction) GalDrawBullets(&GalSpriteRam[0xc0]);
- BurnTransferCopy(GalPalette);
-}
-
-void TimefgtrRenderFrame()
-{
- BurnTransferClear();
- GalCalcPaletteFunction();
- if (GalRenderBackgroundFunction) GalRenderBackgroundFunction();
- GalRenderBgLayer(GalVideoRam);
- GalRenderSprites(&GalSpriteRam[0x040]); // MAME renders different sprite ram areas depending on screen-area - necessary?
- GalRenderSprites(&GalSpriteRam[0x140]);
- GalRenderSprites(&GalSpriteRam[0x240]);
- GalRenderSprites(&GalSpriteRam[0x340]);
- if (GalDrawBulletsFunction) GalDrawBullets(&GalSpriteRam[0xc0]);
- BurnTransferCopy(GalPalette);
-}
-
-void ScramblerRenderFrame()
-{
- BurnTransferClear();
- GalCalcPaletteFunction();
- if (GalRenderBackgroundFunction) GalRenderBackgroundFunction();
- GalRenderBgLayer(GalVideoRam);
- GalRenderSprites(&GalSpriteRam[0xc0]);
- if (GalDrawBulletsFunction) GalDrawBullets(&GalSpriteRam[0xe0]);
- BurnTransferCopy(GalPalette);
-}
diff --git a/jan/src/burn/drv/galaxian/gal_run.cpp b/jan/src/burn/drv/galaxian/gal_run.cpp
deleted file mode 100644
index 47c4a8b14..000000000
--- a/jan/src/burn/drv/galaxian/gal_run.cpp
+++ /dev/null
@@ -1,1954 +0,0 @@
-#include "gal.h"
-
-UINT8 GalInputPort0[8] = {0, 0, 0, 0, 0, 0, 0, 0};
-UINT8 GalInputPort1[8] = {0, 0, 0, 0, 0, 0, 0, 0};
-UINT8 GalInputPort2[8] = {0, 0, 0, 0, 0, 0, 0, 0};
-UINT8 GalInputPort3[8] = {0, 0, 0, 0, 0, 0, 0, 0};
-UINT8 GalDip[7] = {0, 0, 0, 0, 0, 0, 0};
-UINT8 GalInput[4] = {0x00, 0x00, 0x00, 0x00};
-UINT8 GalReset = 0;
-UINT8 GalFakeDip = 0;
-INT32 GalAnalogPort0 = 0;
-INT32 GalAnalogPort1 = 0;
-
-UINT8 *GalMem = NULL;
-UINT8 *GalMemEnd = NULL;
-UINT8 *GalRamStart = NULL;
-UINT8 *GalRamEnd = NULL;
-UINT8 *GalZ80Rom1 = NULL;
-UINT8 *GalZ80Rom1Op = NULL;
-UINT8 *GalZ80Rom2 = NULL;
-UINT8 *GalZ80Rom3 = NULL;
-UINT8 *GalS2650Rom1 = NULL;
-UINT8 *GalZ80Ram1 = NULL;
-UINT8 *GalZ80Ram2 = NULL;
-UINT8 *GalZ80Ram3 = NULL;
-UINT8 *GalVideoRam = NULL;
-UINT8 *GalVideoRam2 = NULL;
-UINT8 *GalSpriteRam = NULL;
-UINT8 *GalScrollVals = NULL;
-UINT8 *GalProm = NULL;
-UINT8 *GalChars = NULL;
-UINT8 *GalSprites = NULL;
-UINT8 *GalTempRom = NULL;
-UINT32 *GalPalette = NULL;
-
-UINT32 GalZ80Rom1Size = 0;
-UINT32 GalZ80Rom1Num = 0;
-UINT32 GalZ80Rom2Size = 0;
-UINT32 GalZ80Rom2Num = 0;
-UINT32 GalZ80Rom3Size = 0;
-UINT32 GalZ80Rom3Num = 0;
-UINT32 GalS2650Rom1Size = 0;
-UINT32 GalS2650Rom1Num = 0;
-UINT32 GalTilesSharedRomSize = 0;
-UINT32 GalTilesSharedRomNum = 0;
-UINT32 GalTilesCharRomSize = 0;
-UINT32 GalTilesCharRomNum = 0;
-UINT32 GalNumChars = 0;
-UINT32 GalTilesSpriteRomSize = 0;
-UINT32 GalTilesSpriteRomNum = 0;
-UINT32 GalNumSprites = 0;
-UINT32 GalPromRomSize = 0;
-UINT32 GalPromRomNum = 0;
-
-GalPostLoadCallback GalPostLoadCallbackFunction;
-
-// CPU Control
-UINT8 GalIrqType;
-UINT8 GalIrqFire;
-INT32 nGalCyclesDone[3], nGalCyclesTotal[3];
-static INT32 nGalCyclesSegment;
-
-// Misc variables
-UINT8 ZigzagAYLatch;
-UINT8 GalSoundLatch;
-UINT8 GalSoundLatch2;
-UINT8 KingballSound;
-UINT8 KingballSpeechDip;
-UINT8 KonamiSoundControl;
-UINT8 SfxSampleControl;
-UINT16 ScrambleProtectionState;
-UINT8 ScrambleProtectionResult;
-UINT8 MoonwarPortSelect;
-UINT8 MshuttleAY8910CS;
-UINT8 GmgalaxSelectedGame;
-UINT8 Fourin1Bank;
-UINT8 GameIsGmgalax;
-UINT8 GameIsBagmanmc;
-UINT8 CavelonBankSwitch;
-UINT8 GalVBlank;
-UINT8 Dingo;
-
-static inline void GalMakeInputs()
-{
- // Reset Inputs
- GalInput[0] = GalInput[1] = GalInput[2] = GalInput[3] = 0x00;
-
- // Compile Digital Inputs
- for (INT32 i = 0; i < 8; i++) {
- GalInput[0] |= (GalInputPort0[i] & 1) << i;
- GalInput[1] |= (GalInputPort1[i] & 1) << i;
- GalInput[2] |= (GalInputPort2[i] & 1) << i;
- GalInput[3] |= (GalInputPort3[i] & 1) << i;
- }
-}
-
-static INT32 GalMemIndex()
-{
- UINT8 *Next; Next = GalMem;
-
- GalZ80Rom1 = Next; Next += GalZ80Rom1Size;
- GalZ80Rom2 = Next; Next += GalZ80Rom2Size;
- GalZ80Rom3 = Next; Next += GalZ80Rom3Size;
- GalS2650Rom1 = Next; Next += GalS2650Rom1Size;
- GalProm = Next; Next += GalPromRomSize;
-
- GalRamStart = Next;
-
- GalZ80Ram1 = Next; Next += 0x01000;
- GalVideoRam = Next; Next += 0x00400;
- GalSpriteRam = Next; Next += 0x00400;
- GalScrollVals = Next; Next += 0x00020;
- GalGfxBank = Next; Next += 0x00020;
-
- if (GalZ80Rom2Size) {
- GalZ80Ram2 = Next; Next += 0x00400;
- }
-
- if (GalZ80Rom3Size) {
- GalZ80Ram3 = Next; Next += 0x00400;
- }
-
- GalRamEnd = Next;
-
- GalChars = Next; Next += GalNumChars * 8 * 8;
- GalSprites = Next; Next += GalNumSprites * 16 * 16;
- GalPalette = (UINT32*)Next; Next += (GAL_PALETTE_NUM_COLOURS_PROM + GAL_PALETTE_NUM_COLOURS_STARS + GAL_PALETTE_NUM_COLOURS_BULLETS + GAL_PALETTE_NUM_COLOURS_BACKGROUND) * sizeof(UINT32);
-
- GalMemEnd = Next;
-
- return 0;
-}
-
-static INT32 GalDoReset()
-{
- if (GalS2650Rom1Size) {
- s2650Open(0);
- s2650Reset();
- s2650Close();
- }
-
- if (GalZ80Rom1Size) {
- ZetOpen(0);
- if (!strcmp(BurnDrvGetTextA(DRV_NAME), "4in1")) {
- ZetMapArea(0x0000, 0x3fff, 0, GalZ80Rom1);
- ZetMapArea(0x0000, 0x3fff, 2, GalZ80Rom1);
- }
- ZetReset();
- ZetClose();
- }
-
- if (GalZ80Rom2Size) {
- ZetOpen(1);
- ZetReset();
- ZetClose();
- }
-
- if (GalZ80Rom3Size) {
- ZetOpen(2);
- ZetReset();
- ZetClose();
- }
-
- GalSoundReset();
- HiscoreReset();
-
- GalIrqFire = 0;
- GalFlipScreenX = 0;
- GalFlipScreenY = 0;
- ZigzagAYLatch = 0;
- GalSoundLatch = 0;
- GalSoundLatch2 = 0;
- KingballSpeechDip = 0;
- KingballSound = 0;
- GalStarsEnable = 0;
- GalStarsScrollPos = 0;
- GalBackgroundRed = 0;
- GalBackgroundGreen = 0;
- GalBackgroundBlue = 0;
- GalBackgroundEnable = 0;
- ScrambleProtectionState = 0;
- ScrambleProtectionResult = 0;
- MoonwarPortSelect = 0;
- MshuttleAY8910CS = 0;
- Fourin1Bank = 0;
- CavelonBankSwitch = 0;
- GalVBlank = 0;
-
- return 0;
-}
-
-static INT32 GalLoadRoms(bool bLoad)
-{
- struct BurnRomInfo ri;
- ri.nType = 0;
- ri.nLen = 0;
- INT32 nOffset = -1;
- UINT32 i;
- INT32 nRet = 0;
-
- if (!bLoad) {
- do {
- ri.nLen = 0;
- ri.nType = 0;
- BurnDrvGetRomInfo(&ri, ++nOffset);
- if ((ri.nType & 0xff) == GAL_ROM_Z80_PROG1) {
- GalZ80Rom1Size += ri.nLen;
- GalZ80Rom1Num++;
- }
- if ((ri.nType & 0xff) == GAL_ROM_Z80_PROG2) {
- GalZ80Rom2Size += ri.nLen;
- GalZ80Rom2Num++;
- }
- if ((ri.nType & 0xff) == GAL_ROM_Z80_PROG3) {
- GalZ80Rom3Size += ri.nLen;
- GalZ80Rom3Num++;
- }
- if ((ri.nType & 0xff) == GAL_ROM_TILES_SHARED) {
- GalTilesSharedRomSize += ri.nLen;
- GalTilesSharedRomNum++;
- }
- if ((ri.nType & 0xff) == GAL_ROM_TILES_CHARS) {
- GalTilesCharRomSize += ri.nLen;
- GalTilesCharRomNum++;
- }
- if ((ri.nType & 0xff) == GAL_ROM_TILES_SPRITES) {
- GalTilesSpriteRomSize += ri.nLen;
- GalTilesSpriteRomNum++;
- }
- if ((ri.nType & 0xff) == GAL_ROM_PROM) {
- GalPromRomSize += ri.nLen;
- GalPromRomNum++;
- }
- if ((ri.nType & 0xff) == GAL_ROM_S2650_PROG1) {
- GalS2650Rom1Size += ri.nLen;
- GalS2650Rom1Num++;
- }
- } while (ri.nLen);
-
- if (GalTilesSharedRomSize) {
- GalNumChars = GalTilesSharedRomSize / 16;
- GalNumSprites = GalTilesSharedRomSize / 64;
- CharPlaneOffsets[1] = GalTilesSharedRomSize * 4;
- SpritePlaneOffsets[1] = GalTilesSharedRomSize * 4;
- }
-
- if (GalTilesCharRomSize) {
- GalNumChars = GalTilesCharRomSize / 16;
- CharPlaneOffsets[1] = GalTilesCharRomSize * 4;
- }
-
- if (GalTilesSpriteRomSize) {
- GalNumSprites = GalTilesSpriteRomSize / 64;
- SpritePlaneOffsets[1] = GalTilesSpriteRomSize * 4;
- }
-
-#if 1 && defined FBA_DEBUG
- if (GalZ80Rom1Size) bprintf(PRINT_NORMAL, _T("Z80 #1 Rom Size: 0x%X (%i roms)\n"), GalZ80Rom1Size, GalZ80Rom1Num);
- if (GalZ80Rom2Size) bprintf(PRINT_NORMAL, _T("Z80 #2 Rom Size: 0x%X (%i roms)\n"), GalZ80Rom2Size, GalZ80Rom2Num);
- if (GalZ80Rom3Size) bprintf(PRINT_NORMAL, _T("Z80 #3 Rom Size: 0x%X (%i roms)\n"), GalZ80Rom3Size, GalZ80Rom3Num);
- if (GalS2650Rom1Size) bprintf(PRINT_NORMAL, _T("S2650 #1 Rom Size: 0x%X (%i roms)\n"), GalS2650Rom1Size, GalS2650Rom1Num);
- if (GalTilesSharedRomSize) bprintf(PRINT_NORMAL, _T("Shared Tile Rom Size: 0x%X (%i roms, 0x%X Chars, 0x%X Sprites)\n"), GalTilesSharedRomSize, GalTilesSharedRomNum, GalNumChars, GalNumSprites);
- if (GalTilesCharRomSize) bprintf(PRINT_NORMAL, _T("Char Rom Size: 0x%X (%i roms, 0x%X Chars)\n"), GalTilesCharRomSize, GalTilesCharRomNum, GalNumChars);
- if (GalTilesSpriteRomSize) bprintf(PRINT_NORMAL, _T("Sprite Rom Size: 0x%X (%i roms, 0x%X Sprites)\n"), GalTilesSpriteRomSize, GalTilesSpriteRomNum, GalNumSprites);
- if (GalPromRomSize) bprintf(PRINT_NORMAL, _T("PROM Rom Size: 0x%X (%i roms)\n"), GalPromRomSize, GalPromRomNum);
-#endif
- }
-
- if (bLoad) {
- INT32 Offset;
-
- // Z80 #1 Program Roms
- Offset = 0;
- for (i = 0; i < GalZ80Rom1Num; i++) {
- nRet = BurnLoadRom(GalZ80Rom1 + Offset, i, 1); if (nRet) return 1;
-
- BurnDrvGetRomInfo(&ri, i + 0);
- Offset += ri.nLen;
- }
-
- // Z80 #2 Program Roms
- if (GalZ80Rom2Size) {
- Offset = 0;
- for (i = GAL_ROM_OFFSET_Z80_PROG2; i < GAL_ROM_OFFSET_Z80_PROG2 + GalZ80Rom2Num; i++) {
- nRet = BurnLoadRom(GalZ80Rom2 + Offset, i, 1); if (nRet) return 1;
-
- BurnDrvGetRomInfo(&ri, i + 0);
- Offset += ri.nLen;
- }
- }
-
- // Z80 #3 Program Roms
- if (GalZ80Rom3Size) {
- Offset = 0;
- for (i = GAL_ROM_OFFSET_Z80_PROG3; i < GAL_ROM_OFFSET_Z80_PROG3 + GalZ80Rom3Num; i++) {
- nRet = BurnLoadRom(GalZ80Rom3 + Offset, i, 1); if (nRet) return 1;
-
- BurnDrvGetRomInfo(&ri, i + 0);
- Offset += ri.nLen;
- }
- }
-
- // Shared Tile Roms
- if (GalTilesSharedRomSize) {
- Offset = 0;
- GalTempRom = (UINT8*)BurnMalloc(GalTilesSharedRomSize);
- for (i = GAL_ROM_OFFSET_TILES_SHARED; i < GAL_ROM_OFFSET_TILES_SHARED + GalTilesSharedRomNum; i++) {
- nRet = BurnLoadRom(GalTempRom + Offset, i, 1); if (nRet) return 1;
-
- BurnDrvGetRomInfo(&ri, i + 0);
- Offset += ri.nLen;
- }
- GfxDecode(GalNumChars, 2, 8, 8, CharPlaneOffsets, CharXOffsets, CharYOffsets, 0x40, GalTempRom, GalChars);
- GfxDecode(GalNumSprites, 2, 16, 16, SpritePlaneOffsets, SpriteXOffsets, SpriteYOffsets, 0x100, GalTempRom, GalSprites);
- BurnFree(GalTempRom);
- }
-
- // Char Tile Roms
- if (GalTilesCharRomSize) {
- Offset = 0;
- GalTempRom = (UINT8*)BurnMalloc(GalTilesCharRomSize);
- for (i = GAL_ROM_OFFSET_TILES_CHARS; i < GAL_ROM_OFFSET_TILES_CHARS + GalTilesCharRomNum; i++) {
- nRet = BurnLoadRom(GalTempRom + Offset, i, 1); if (nRet) return 1;
-
- BurnDrvGetRomInfo(&ri, i + 0);
- Offset += ri.nLen;
- }
- GfxDecode(GalNumChars, 2, 8, 8, CharPlaneOffsets, CharXOffsets, CharYOffsets, 0x40, GalTempRom, GalChars);
- BurnFree(GalTempRom);
- }
-
- // Sprite Tile Roms
- if (GalTilesSpriteRomSize) {
- Offset = 0;
- GalTempRom = (UINT8*)BurnMalloc(GalTilesSpriteRomSize);
- for (i = GAL_ROM_OFFSET_TILES_SPRITES; i < GAL_ROM_OFFSET_TILES_SPRITES + GalTilesSpriteRomNum; i++) {
- nRet = BurnLoadRom(GalTempRom + Offset, i, 1); if (nRet) return 1;
-
- BurnDrvGetRomInfo(&ri, i + 0);
- Offset += ri.nLen;
- }
- GfxDecode(GalNumSprites, 2, 16, 16, SpritePlaneOffsets, SpriteXOffsets, SpriteYOffsets, 0x100, GalTempRom, GalSprites);
- BurnFree(GalTempRom);
- }
-
- // Prom
- if (GalPromRomSize) {
- Offset = 0;
- for (i = GAL_ROM_OFFSET_PROM; i < GAL_ROM_OFFSET_PROM + GalPromRomNum; i++) {
- nRet = BurnLoadRom(GalProm + Offset, i, 1); if (nRet) return 1;
-
- BurnDrvGetRomInfo(&ri, i + 0);
- Offset += ri.nLen;
- }
- }
-
- // S2650 #1 Program Roms
- if (GalS2650Rom1Size) {
- Offset = 0;
- for (i = GAL_ROM_OFFSET_S2650_PROG1; i < GAL_ROM_OFFSET_S2650_PROG1 + GalS2650Rom1Num; i++) {
- nRet = BurnLoadRom(GalS2650Rom1 + Offset, i, 1); if (nRet) return 1;
-
- BurnDrvGetRomInfo(&ri, i + 0);
- Offset += ri.nLen;
- }
- }
- }
-
- return nRet;
-}
-
-// Konami PPI Handlers
-UINT8 KonamiPPIReadIN0()
-{
- return 0xff - GalInput[0] - GalDip[0];
-}
-
-UINT8 KonamiPPIReadIN1()
-{
- return 0xff - GalInput[1] - GalDip[1];
-}
-
-UINT8 KonamiPPIReadIN2()
-{
- return 0xff - GalInput[2] - GalDip[2];
-}
-
-UINT8 KonamiPPIReadIN3()
-{
- return 0xff - GalInput[3] - GalDip[3];
-}
-
-void KonamiPPIInit()
-{
- ppi8255_init(2);
- PPI0PortReadA = KonamiPPIReadIN0;
- PPI0PortReadB = KonamiPPIReadIN1;
- PPI0PortReadC = KonamiPPIReadIN2;
- PPI1PortReadC = KonamiPPIReadIN3;
- PPI1PortWriteA = KonamiSoundLatchWrite;
- PPI1PortWriteB = KonamiSoundControlWrite;
-}
-
-// Galaxian Memory Map
-UINT8 __fastcall GalaxianZ80Read(UINT16 a)
-{
- switch (a) {
- case 0x6000: {
- return GalInput[0] | GalDip[0];
- }
-
- case 0x6800: {
- return GalInput[1] | GalDip[1];
- }
-
- case 0x7000: {
- return GalInput[2] | GalDip[2];
- }
-
- case 0x7800: {
- // watchdog read
- return 0xff;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Read => %04X\n"), a);
- }
- }
-
- return 0xff;
-}
-
-void __fastcall GalaxianZ80Write(UINT16 a, UINT8 d)
-{
- if (a >= 0x5800 && a <= 0x58ff) {
- int Offset = a - 0x5800;
-
- GalSpriteRam[Offset] = d;
-
- if (Offset < 0x40) {
- if ((Offset & 0x01) == 0) {
- GalScrollVals[Offset >> 1] = d;
- }
- }
-
- return;
- }
-
- switch (a) {
- case 0x6000:
- case 0x6001: {
- // start_lamp_w
- return;
- }
-
- case 0x6002: {
- // coin_lock_w
- return;
- }
-
- case 0x6003: {
- // coin_count_0_w
- return;
- }
-
- case 0x6004:
- case 0x6005:
- case 0x6006:
- case 0x6007: {
- GalaxianLfoFreqWrite(a - 0x6004, d);
- return;
- }
-
- case 0x6800:
- case 0x6801:
- case 0x6802:
- case 0x6803:
- case 0x6804:
- case 0x6805:
- case 0x6806:
- case 0x6807: {
- GalaxianSoundWrite(a - 0x6800, d);
- return;
- }
-
- case 0x7001: {
- GalIrqFire = d & 1;
- return;
- }
-
- case 0x7004: {
- GalStarsEnable = d & 0x01;
- if (!GalStarsEnable) GalStarsScrollPos = -1;
- return;
- }
-
- case 0x7006: {
- GalFlipScreenX = d & 1;
- return;
- }
-
- case 0x7007: {
- GalFlipScreenY = d & 1;
- return;
- }
-
- case 0x7800: {
- GalPitch = d;
- return;
- }
-
- default: {
- //bprintf(PRINT_NORMAL, _T("Z80 #1 Write => %04X, %02X\n"), a, d);
- }
- }
-}
-
-UINT8 __fastcall GalaxianZ80PortRead(UINT16 a)
-{
- a &= 0xff;
-
- switch (a) {
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Port Read => %02X\n"), a);
- }
- }
-
- return 0;
-}
-
-void __fastcall GalaxianZ80PortWrite(UINT16 a, UINT8 d)
-{
- a &= 0xff;
-
- switch (a) {
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Port Write => %02X, %02X\n"), a, d);
- }
- }
-}
-
-INT32 GalInit()
-{
- INT32 nLen;
-
- GalLoadRoms(0);
-
- if (!GalSoundType) GalSoundType = GAL_SOUND_HARDWARE_TYPE_GALAXIAN;
-
- // Allocate and Blank all required memory
- GalMem = NULL;
- GalMemIndex();
- nLen = GalMemEnd - (UINT8 *)0;
- if ((GalMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(GalMem, 0, nLen);
- GalMemIndex();
-
- if (GalLoadRoms(1)) return 1;
-
- // Setup the Z80 emulation
- if (GalSoundType != GAL_SOUND_HARDWARE_TYPE_HUNCHBACKAY8910) {
- if (GalZ80Rom3Size) {
- ZetInit(0);
- ZetInit(1);
- ZetInit(2);
- } else {
- if (GalZ80Rom2Size) {
- ZetInit(0);
- ZetInit(1);
- } else {
- if (GalZ80Rom1Size) {
- ZetInit(0);
- }
- }
- }
- if (GalZ80Rom1Size) {
- ZetOpen(0);
- ZetSetReadHandler(GalaxianZ80Read);
- ZetSetWriteHandler(GalaxianZ80Write);
- ZetSetInHandler(GalaxianZ80PortRead);
- ZetSetOutHandler(GalaxianZ80PortWrite);
- ZetMapArea(0x0000, (GalZ80Rom1Size > 0x4000) ? 0x3fff : GalZ80Rom1Size - 1, 0, GalZ80Rom1);
- ZetMapArea(0x0000, (GalZ80Rom1Size > 0x4000) ? 0x3fff : GalZ80Rom1Size - 1, 2, GalZ80Rom1);
- ZetMapArea(0x4000, 0x43ff, 0, GalZ80Ram1);
- ZetMapArea(0x4000, 0x43ff, 1, GalZ80Ram1);
- ZetMapArea(0x4000, 0x43ff, 2, GalZ80Ram1);
- ZetMapArea(0x4400, 0x47ff, 0, GalZ80Ram1);
- ZetMapArea(0x4400, 0x47ff, 1, GalZ80Ram1);
- ZetMapArea(0x4400, 0x47ff, 2, GalZ80Ram1);
- ZetMapArea(0x5000, 0x53ff, 0, GalVideoRam);
- ZetMapArea(0x5000, 0x53ff, 1, GalVideoRam);
- ZetMapArea(0x5000, 0x53ff, 2, GalVideoRam);
- ZetMapArea(0x5800, 0x58ff, 0, GalSpriteRam);
- ZetMapArea(0x5800, 0x58ff, 2, GalSpriteRam);
- ZetClose();
- }
- }
-
- nGalCyclesTotal[0] = (18432000 / 3 / 2) / 60;
-
- if (GalPostLoadCallbackFunction) GalPostLoadCallbackFunction();
-
- GalCalcPaletteFunction = GalaxianCalcPalette;
- GalRenderBackgroundFunction = GalaxianDrawBackground;
- GalDrawBulletsFunction = GalaxianDrawBullets;
-
- GalIrqType = GAL_IRQ_TYPE_NMI;
-
- GalSpriteClipStart = 16;
- GalSpriteClipEnd = 255;
-
- GalSoundInit();
-
- GalInitStars();
-
- GenericTilesInit();
-
- GalColourDepth = 2;
-
- // Reset the driver
- GalDoReset();
-
- return 0;
-}
-
-// Moon Cresta Memory Map
-UINT8 __fastcall MooncrstZ80Read(UINT16 a)
-{
- if (a >= 0x7000 && a <= 0x77ff) {
- return 0; // nop / unmapped area constantly read/written to by porter / portman
- }
-
- switch (a) {
- case 0xa000: {
- return GalInput[0] | GalDip[0];
- }
-
- case 0xa800: {
- return GalInput[1] | GalDip[1];
- }
-
- case 0xb000: {
- return GalInput[2] | GalDip[2];
- }
-
- case 0xb800: {
- // watchdog read
- return 0xff;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Read => %04X\n"), a);
- }
- }
-
- return 0xff;
-}
-
-void __fastcall MooncrstZ80Write(UINT16 a, UINT8 d)
-{
- if (a >= 0x9800 && a <= 0x98ff) {
- int Offset = a - 0x9800;
-
- GalSpriteRam[Offset] = d;
-
- if (Offset < 0x40) {
- if ((Offset & 0x01) == 0) {
- GalScrollVals[Offset >> 1] = d;
- }
- }
-
- return;
- }
-
- if (a >= 0x7000 && a <= 0x77ff) {
- return; // nop / unmapped area constantly written to by porter / portman
- }
-
- switch (a) {
- case 0xa000:
- case 0xa001:
- case 0xa002: {
- GalGfxBank[a - 0xa000] = d;
- return;
- }
-
- case 0xa003: {
- // coin_count_0_w
- return;
- }
-
- case 0xa004:
- case 0xa005:
- case 0xa006:
- case 0xa007: {
- GalaxianLfoFreqWrite(a - 0xa004, d);
- return;
- }
-
- case 0xa800:
- case 0xa801:
- case 0xa802:
- case 0xa803:
- case 0xa804:
- case 0xa805:
- case 0xa806:
- case 0xa807: {
- GalaxianSoundWrite(a - 0xa800, d);
- return;
- }
-
- case 0xb000: {
- GalIrqFire = d & 1;
- return;
- }
-
- case 0xb004: {
- GalStarsEnable = d & 0x01;
- if (!GalStarsEnable) GalStarsScrollPos = -1;
- return;
- }
-
- case 0xb006: {
- GalFlipScreenX = d & 1;
- return;
- }
-
- case 0xb007: {
- GalFlipScreenY = d & 1;
- return;
- }
-
- case 0xb800: {
- GalPitch = d;
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Write => %04X, %02X\n"), a, d);
- }
- }
-}
-
-UINT8 __fastcall MooncrstZ80PortRead(UINT16 a)
-{
- a &= 0xff;
-
- switch (a) {
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Port Read => %02X\n"), a);
- }
- }
-
- return 0;
-}
-
-void __fastcall MooncrstZ80PortWrite(UINT16 a, UINT8 d)
-{
- a &= 0xff;
-
- switch (a) {
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Port Write => %02X, %02X\n"), a, d);
- }
- }
-}
-
-void MapMooncrst()
-{
- ZetOpen(0);
- ZetMemCallback(0x0000, 0xffff, 0);
- ZetMemCallback(0x0000, 0xffff, 1);
- ZetMemCallback(0x0000, 0xffff, 2);
- ZetSetReadHandler(MooncrstZ80Read);
- ZetSetWriteHandler(MooncrstZ80Write);
- ZetSetInHandler(MooncrstZ80PortRead);
- ZetSetOutHandler(MooncrstZ80PortWrite);
- ZetMapArea(0x0000, (GalZ80Rom1Size >= 0x4000) ? 0x3fff : GalZ80Rom1Size - 1, 0, GalZ80Rom1);
- ZetMapArea(0x0000, (GalZ80Rom1Size >= 0x4000) ? 0x3fff : GalZ80Rom1Size - 1, 2, GalZ80Rom1);
- ZetMapArea(0x8000, 0x83ff, 0, GalZ80Ram1);
- ZetMapArea(0x8000, 0x83ff, 1, GalZ80Ram1);
- ZetMapArea(0x8000, 0x83ff, 2, GalZ80Ram1);
- ZetMapArea(0x9000, 0x93ff, 0, GalVideoRam);
- ZetMapArea(0x9000, 0x93ff, 1, GalVideoRam);
- ZetMapArea(0x9000, 0x93ff, 2, GalVideoRam);
- ZetMapArea(0x9800, 0x98ff, 0, GalSpriteRam);
- ZetMapArea(0x9800, 0x98ff, 2, GalSpriteRam);
- ZetClose();
-}
-
-// Jumpbug Memory Map
-UINT8 __fastcall JumpbugZ80Read(UINT16 a)
-{
- if (a >= 0xb000 && a <= 0xbfff) {
- INT32 Offset = a - 0xb000;
-
- switch (Offset) {
- case 0x114: return 0x4f;
- case 0x118: return 0xd3;
- case 0x214: return 0xcf;
- case 0x235: return 0x02;
- case 0x311: return 0xff;
- }
- }
-
- switch (a) {
- case 0x6000: {
- return GalInput[0] | GalDip[0];
- }
-
- case 0x6800: {
- return GalInput[1] | GalDip[1];
- }
-
- case 0x7000: {
- return GalInput[2] | GalDip[2];
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Read => %04X\n"), a);
- }
- }
-
- return 0xff;
-}
-
-void __fastcall JumpbugZ80Write(UINT16 a, UINT8 d)
-{
- if (a >= 0x5000 && a <= 0x50ff) {
- INT32 Offset = a - 0x5000;
-
- GalSpriteRam[Offset] = d;
-
- if (Offset < 0x40) {
- if ((Offset & 0x01) == 0) {
- GalScrollVals[Offset >> 1] = d;
- }
- }
-
- return;
- }
-
- switch (a) {
- case 0x5800: {
- AY8910Write(0, 1, d);
- return;
- }
-
- case 0x5900: {
- AY8910Write(0, 0, d);
- return;
- }
-
- case 0x2600:
- case 0x6000:
- case 0x6001:
- case 0x6803:
- case 0x6805:
- case 0xb000:
- case 0xb004:
- // ??? unknown writes
- return;
-
- case 0x6002:
- case 0x6003:
- case 0x6004:
- case 0x6005:
- case 0x6006: {
- GalGfxBank[a - 0x6002] = d;
- return;
- }
-
- case 0x7001: {
- GalIrqFire = d & 1;
- return;
- }
-
- case 0x7002: {
- // coin_count_0_w
- return;
- }
-
- case 0x7004: {
- GalStarsEnable = d & 0x01;
- if (!GalStarsEnable) GalStarsScrollPos = -1;
- return;
- }
-
- case 0x7006: {
- GalFlipScreenX = d & 1;
- return;
- }
-
- case 0x7007: {
- GalFlipScreenY = d & 1;
- return;
- }
-
- case 0x7800: {
- // watchdog write
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Write => %04X, %02X\n"), a, d);
- }
- }
-}
-
-UINT8 __fastcall JumpbugZ80PortRead(UINT16 a)
-{
- a &= 0xff;
-
- switch (a) {
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Port Read => %02X\n"), a);
- }
- }
-
- return 0;
-}
-
-void __fastcall JumpbugZ80PortWrite(UINT16 a, UINT8 d)
-{
- a &= 0xff;
-
- switch (a) {
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Port Write => %02X, %02X\n"), a, d);
- }
- }
-}
-
-void MapJumpbug()
-{
- ZetOpen(0);
- ZetMemCallback(0x0000, 0xffff, 0);
- ZetMemCallback(0x0000, 0xffff, 1);
- ZetMemCallback(0x0000, 0xffff, 2);
- ZetSetReadHandler(JumpbugZ80Read);
- ZetSetWriteHandler(JumpbugZ80Write);
- ZetSetInHandler(JumpbugZ80PortRead);
- ZetSetOutHandler(JumpbugZ80PortWrite);
- ZetMapArea(0x0000, 0x3fff, 0, GalZ80Rom1);
- ZetMapArea(0x0000, 0x3fff, 2, GalZ80Rom1);
- ZetMapArea(0x4000, 0x47ff, 0, GalZ80Ram1);
- ZetMapArea(0x4000, 0x47ff, 1, GalZ80Ram1);
- ZetMapArea(0x4000, 0x47ff, 2, GalZ80Ram1);
- ZetMapArea(0x4800, 0x4bff, 0, GalVideoRam);
- ZetMapArea(0x4800, 0x4bff, 1, GalVideoRam);
- ZetMapArea(0x4800, 0x4bff, 2, GalVideoRam);
- ZetMapArea(0x4c00, 0x4fff, 0, GalVideoRam);
- ZetMapArea(0x4c00, 0x4fff, 1, GalVideoRam);
- ZetMapArea(0x4c00, 0x4fff, 2, GalVideoRam);
- ZetMapArea(0x5000, 0x50ff, 0, GalSpriteRam);
- ZetMapArea(0x5000, 0x50ff, 2, GalSpriteRam);
- ZetMapArea(0x8000, GalZ80Rom1Size + 0x4000 - 1, 0, GalZ80Rom1 + 0x4000);
- ZetMapArea(0x8000, GalZ80Rom1Size + 0x4000 - 1, 2, GalZ80Rom1 + 0x4000);
- ZetClose();
-}
-
-// Frogger Memory Map
-UINT8 __fastcall FroggerZ80Read(UINT16 a)
-{
- if (a >= 0xc000) {
- UINT32 Offset = a - 0xc000;
- UINT8 Result = 0xff;
- if (Offset & 0x1000) Result &= ppi8255_r(1, (Offset >> 1) & 3);
- if (Offset & 0x2000) Result &= ppi8255_r(0, (Offset >> 1) & 3);
- return Result;
- }
-
- switch (a) {
- case 0x8800: {
- // watchdog read
- return 0xff;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Read => %04X\n"), a);
- }
- }
-
- return 0xff;
-}
-
-void __fastcall FroggerZ80Write(UINT16 a, UINT8 d)
-{
- if (a >= 0xb000 && a <= 0xb0ff) {
- INT32 Offset = a - 0xb000;
-
- GalSpriteRam[Offset] = d;
-
- if (Offset < 0x40) {
- if ((Offset & 0x01) == 0) {
- d = (d >> 4) | (d << 4);
- GalScrollVals[Offset >> 1] = d;
- }
- }
-
- return;
- }
-
- if (a >= 0xc000) {
- INT32 Offset = a - 0xc000;
- if (Offset & 0x1000) ppi8255_w(1, (Offset >> 1) & 3, d);
- if (Offset & 0x2000) ppi8255_w(0, (Offset >> 1) & 3, d);
- return;
- }
-
- switch (a) {
- case 0xb808: {
- GalIrqFire = d & 1;
- return;
- }
-
- case 0xb80c: {
- GalFlipScreenY = d & 1;
- return;
- }
-
- case 0xb810: {
- GalFlipScreenX = d & 1;
- return;
- }
-
- case 0xb818: {
- // coin_count_0_w
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Write => %04X, %02X\n"), a, d);
- }
- }
-}
-
-UINT8 __fastcall FroggerZ80PortRead(UINT16 a)
-{
- a &= 0xff;
-
- switch (a) {
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Port Read => %02X\n"), a);
- }
- }
-
- return 0;
-}
-
-void __fastcall FroggerZ80PortWrite(UINT16 a, UINT8 d)
-{
- a &= 0xff;
-
- switch (a) {
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Port Write => %02X, %02X\n"), a, d);
- }
- }
-}
-
-void MapFrogger()
-{
- ZetOpen(0);
- ZetMemCallback(0x0000, 0xffff, 0);
- ZetMemCallback(0x0000, 0xffff, 1);
- ZetMemCallback(0x0000, 0xffff, 2);
- ZetSetReadHandler(FroggerZ80Read);
- ZetSetWriteHandler(FroggerZ80Write);
- ZetSetInHandler(FroggerZ80PortRead);
- ZetSetOutHandler(FroggerZ80PortWrite);
- ZetMapArea(0x0000, (GalZ80Rom1Size > 0x4000) ? 0x3fff : GalZ80Rom1Size - 1, 0, GalZ80Rom1);
- ZetMapArea(0x0000, (GalZ80Rom1Size > 0x4000) ? 0x3fff : GalZ80Rom1Size - 1, 2, GalZ80Rom1);
- ZetMapArea(0x8000, 0x87ff, 0, GalZ80Ram1);
- ZetMapArea(0x8000, 0x87ff, 1, GalZ80Ram1);
- ZetMapArea(0x8000, 0x87ff, 2, GalZ80Ram1);
- ZetMapArea(0xa800, 0xabff, 0, GalVideoRam);
- ZetMapArea(0xa800, 0xabff, 1, GalVideoRam);
- ZetMapArea(0xa800, 0xabff, 2, GalVideoRam);
- ZetMapArea(0xb000, 0xb0ff, 0, GalSpriteRam);
- ZetMapArea(0xb000, 0xb0ff, 2, GalSpriteRam);
- ZetClose();
-}
-
-// The End Memory Map
-UINT8 __fastcall TheendZ80Read(UINT16 a)
-{
- if (a >= 0x8000) {
- UINT32 Offset = a - 0x8000;
- UINT8 Result = 0xff;
- if (Offset & 0x0100) Result &= ppi8255_r(0, Offset & 3);
- if (Offset & 0x0200) Result &= ppi8255_r(1, Offset & 3);
- return Result;
- }
-
- switch (a) {
- case 0x7000: {
- // watchdog read
- return 0xff;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Read => %04X\n"), a);
- }
- }
-
- return 0xff;
-}
-
-void __fastcall TheendZ80Write(UINT16 a, UINT8 d)
-{
- if (a >= 0x5000 && a <= 0x50ff) {
- INT32 Offset = a - 0x5000;
-
- GalSpriteRam[Offset] = d;
-
- if (Offset < 0x40) {
- if ((Offset & 0x01) == 0) {
- GalScrollVals[Offset >> 1] = d;
- }
- }
-
- return;
- }
-
- if (a >= 0x8000) {
- INT32 Offset = a - 0x8000;
- if (Offset & 0x0100) ppi8255_w(0, Offset & 3, d);
- if (Offset & 0x0200) ppi8255_w(1, Offset & 3, d);
- return;
- }
-
- switch (a) {
- case 0x6801: {
- GalIrqFire = d & 1;
- return;
- }
-
- case 0x6802: {
- // coin_count_0_w
- return;
- }
-
- case 0x6803: {
- GalBackgroundEnable = d & 1;
- return;
- }
-
- case 0x6804: {
- GalStarsEnable = d & 0x01;
- if (!GalStarsEnable) GalStarsScrollPos = -1;
- return;
- }
-
- case 0x6806: {
- GalFlipScreenX = d & 1;
- return;
- }
-
- case 0x6807: {
- GalFlipScreenY = d & 1;
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Write => %04X, %02X\n"), a, d);
- }
- }
-}
-
-UINT8 __fastcall TheendZ80PortRead(UINT16 a)
-{
- a &= 0xff;
-
- switch (a) {
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Port Read => %02X\n"), a);
- }
- }
-
- return 0;
-}
-
-void __fastcall TheendZ80PortWrite(UINT16 a, UINT8 d)
-{
- a &= 0xff;
-
- switch (a) {
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Port Write => %02X, %02X\n"), a, d);
- }
- }
-}
-
-void MapTheend()
-{
- ZetOpen(0);
- ZetMemCallback(0x0000, 0xffff, 0);
- ZetMemCallback(0x0000, 0xffff, 1);
- ZetMemCallback(0x0000, 0xffff, 2);
- ZetSetReadHandler(TheendZ80Read);
- ZetSetWriteHandler(TheendZ80Write);
- ZetSetInHandler(TheendZ80PortRead);
- ZetSetOutHandler(TheendZ80PortWrite);
- ZetMapArea(0x0000, (GalZ80Rom1Size > 0x4000) ? 0x3fff : GalZ80Rom1Size - 1, 0, GalZ80Rom1);
- ZetMapArea(0x0000, (GalZ80Rom1Size > 0x4000) ? 0x3fff : GalZ80Rom1Size - 1, 2, GalZ80Rom1);
- ZetMapArea(0x4000, 0x47ff, 0, GalZ80Ram1);
- ZetMapArea(0x4000, 0x47ff, 1, GalZ80Ram1);
- ZetMapArea(0x4000, 0x47ff, 2, GalZ80Ram1);
- ZetMapArea(0x4800, 0x4bff, 0, GalVideoRam);
- ZetMapArea(0x4800, 0x4bff, 1, GalVideoRam);
- ZetMapArea(0x4800, 0x4bff, 2, GalVideoRam);
- ZetMapArea(0x4c00, 0x4fff, 0, GalVideoRam);
- ZetMapArea(0x4c00, 0x4fff, 1, GalVideoRam);
- ZetMapArea(0x4c00, 0x4fff, 2, GalVideoRam);
- ZetMapArea(0x5000, 0x50ff, 0, GalSpriteRam);
- ZetMapArea(0x5000, 0x50ff, 2, GalSpriteRam);
- ZetClose();
-}
-
-// Turtles Memory Map
-UINT8 __fastcall TurtlesZ80Read(UINT16 a)
-{
- if (a >= 0xb000 && a <= 0xb03f) {
- UINT32 Offset = a - 0xb000;
- return ppi8255_r(0, (Offset >> 4) & 3);
- }
-
- if (a >= 0xb800 && a <= 0xb83f) {
- UINT32 Offset = a - 0xb800;
- return ppi8255_r(1, (Offset >> 4) & 3);
- }
-
- switch (a) {
- case 0xa800: {
- // watchdog read
- return 0xff;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Read => %04X\n"), a);
- }
- }
-
- return 0xff;
-}
-
-void __fastcall TurtlesZ80Write(UINT16 a, UINT8 d)
-{
- if (a >= 0x9800 && a <= 0x98ff) {
- INT32 Offset = a - 0x9800;
-
- GalSpriteRam[Offset] = d;
-
- if (Offset < 0x40) {
- if ((Offset & 0x01) == 0) {
- GalScrollVals[Offset >> 1] = d;
- }
- }
-
- return;
- }
-
- if (a >= 0xb000 && a <= 0xb03f) {
- UINT32 Offset = a - 0xb000;
- ppi8255_w(0, (Offset >> 4) & 3, d);
- return;
- }
-
- if (a >= 0xb800 && a <= 0xb83f) {
- UINT32 Offset = a - 0xb800;
- ppi8255_w(1, (Offset >> 4) & 3, d);
- return;
- }
-
- switch (a) {
- case 0xa000: {
- GalBackgroundRed = d & 1;
- return;
- }
-
- case 0xa008: {
- GalIrqFire = d & 1;
- return;
- }
-
- case 0xa010: {
- GalFlipScreenY = d & 1;
- return;
- }
-
- case 0xa018: {
- GalFlipScreenX = d & 1;
- return;
- }
-
- case 0xa020: {
- GalBackgroundGreen = d & 1;
- return;
- }
-
- case 0xa028: {
- GalBackgroundBlue = d & 1;
- return;
- }
-
- case 0xa030: {
- // coin_count_0_w
- return;
- }
-
- case 0xa038: {
- // coin_count_1_w
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Write => %04X, %02X\n"), a, d);
- }
- }
-}
-
-UINT8 __fastcall TurtlesZ80PortRead(UINT16 a)
-{
- a &= 0xff;
-
- switch (a) {
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Port Read => %02X\n"), a);
- }
- }
-
- return 0;
-}
-
-void __fastcall TurtlesZ80PortWrite(UINT16 a, UINT8 d)
-{
- a &= 0xff;
-
- switch (a) {
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Port Write => %02X, %02X\n"), a, d);
- }
- }
-}
-
-void MapTurtles()
-{
- ZetOpen(0);
- ZetMemCallback(0x0000, 0xffff, 0);
- ZetMemCallback(0x0000, 0xffff, 1);
- ZetMemCallback(0x0000, 0xffff, 2);
- ZetSetReadHandler(TurtlesZ80Read);
- ZetSetWriteHandler(TurtlesZ80Write);
- ZetSetInHandler(TurtlesZ80PortRead);
- ZetSetOutHandler(TurtlesZ80PortWrite);
- ZetMapArea(0x0000, (GalZ80Rom1Size > 0x8000) ? 0x7fff : GalZ80Rom1Size - 1, 0, GalZ80Rom1);
- ZetMapArea(0x0000, (GalZ80Rom1Size > 0x8000) ? 0x7fff : GalZ80Rom1Size - 1, 2, GalZ80Rom1);
- ZetMapArea(0x8000, 0x87ff, 0, GalZ80Ram1);
- ZetMapArea(0x8000, 0x87ff, 1, GalZ80Ram1);
- ZetMapArea(0x8000, 0x87ff, 2, GalZ80Ram1);
- ZetMapArea(0x9000, 0x93ff, 0, GalVideoRam);
- ZetMapArea(0x9000, 0x93ff, 1, GalVideoRam);
- ZetMapArea(0x9000, 0x93ff, 2, GalVideoRam);
- ZetMapArea(0x9400, 0x97ff, 0, GalVideoRam);
- ZetMapArea(0x9400, 0x97ff, 1, GalVideoRam);
- ZetMapArea(0x9400, 0x97ff, 2, GalVideoRam);
- ZetMapArea(0x9800, 0x98ff, 0, GalSpriteRam);
- ZetMapArea(0x9800, 0x98ff, 2, GalSpriteRam);
- ZetClose();
-}
-
-// Super Cobra Memory Map
-UINT8 __fastcall ScobraZ80Read(UINT16 a)
-{
- switch (a) {
- case 0x9800:
- case 0x9801:
- case 0x9802:
- case 0x9803: {
- return ppi8255_r(0, a - 0x9800);
- }
-
- case 0xa000:
- case 0xa001:
- case 0xa002:
- case 0xa003: {
- return ppi8255_r(1, a - 0xa000);
- }
-
- case 0xb000: {
- // watchdog read
- return 0xff;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Read => %04X\n"), a);
- }
- }
-
- return 0xff;
-}
-
-void __fastcall ScobraZ80Write(UINT16 a, UINT8 d)
-{
- if (a >= 0x9000 && a <= 0x90ff) {
- INT32 Offset = a - 0x9000;
-
- GalSpriteRam[Offset] = d;
-
- if (Offset < 0x40) {
- if ((Offset & 0x01) == 0) {
- GalScrollVals[Offset >> 1] = d;
- }
- }
-
- return;
- }
-
- switch (a) {
- case 0x9800:
- case 0x9801:
- case 0x9802:
- case 0x9803: {
- return ppi8255_w(0, a - 0x9800, d);
- }
-
- case 0xa000:
- case 0xa001:
- case 0xa002:
- case 0xa003: {
- return ppi8255_w(1, a - 0xa000, d);
- }
-
- case 0xa801: {
- GalIrqFire = d & 1;
- return;
- }
-
- case 0xa802: {
- // coin_count_0_w
- return;
- }
-
- case 0xa803: {
- GalBackgroundEnable = d & 1;
- return;
- }
-
- case 0xa804: {
- GalStarsEnable = d & 0x01;
- if (!GalStarsEnable) GalStarsScrollPos = -1;
- return;
- }
-
- case 0xa806: {
- GalFlipScreenX = d & 1;
- return;
- }
-
- case 0xa807: {
- GalFlipScreenY = d & 1;
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Write => %04X, %02X\n"), a, d);
- }
- }
-}
-
-UINT8 __fastcall ScobraZ80PortRead(UINT16 a)
-{
- a &= 0xff;
-
- switch (a) {
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Port Read => %02X\n"), a);
- }
- }
-
- return 0xff;
-}
-
-void __fastcall ScobraZ80PortWrite(UINT16 a, UINT8 d)
-{
- a &= 0xff;
-
- switch (a) {
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #1 Port Write => %02X, %02X\n"), a, d);
- }
- }
-}
-
-void MapScobra()
-{
- ZetOpen(0);
- ZetMemCallback(0x0000, 0xffff, 0);
- ZetMemCallback(0x0000, 0xffff, 1);
- ZetMemCallback(0x0000, 0xffff, 2);
- ZetSetReadHandler(ScobraZ80Read);
- ZetSetWriteHandler(ScobraZ80Write);
- ZetSetInHandler(ScobraZ80PortRead);
- ZetSetOutHandler(ScobraZ80PortWrite);
- ZetMapArea(0x0000, (GalZ80Rom1Size > 0x8000) ? 0x7fff : GalZ80Rom1Size - 1, 0, GalZ80Rom1);
- ZetMapArea(0x0000, (GalZ80Rom1Size > 0x8000) ? 0x7fff : GalZ80Rom1Size - 1, 2, GalZ80Rom1);
- ZetMapArea(0x8000, 0x87ff, 0, GalZ80Ram1);
- ZetMapArea(0x8000, 0x87ff, 1, GalZ80Ram1);
- ZetMapArea(0x8000, 0x87ff, 2, GalZ80Ram1);
- ZetMapArea(0x8800, 0x8bff, 0, GalVideoRam);
- ZetMapArea(0x8800, 0x8bff, 1, GalVideoRam);
- ZetMapArea(0x8800, 0x8bff, 2, GalVideoRam);
- ZetMapArea(0x8c00, 0x8fff, 0, GalVideoRam);
- ZetMapArea(0x8c00, 0x8fff, 1, GalVideoRam);
- ZetMapArea(0x8c00, 0x8fff, 2, GalVideoRam);
- ZetMapArea(0x9000, 0x90ff, 0, GalSpriteRam);
- ZetMapArea(0x9000, 0x90ff, 2, GalSpriteRam);
- ZetClose();
-}
-
-INT32 GalExit()
-{
- if (GalZ80Rom1Size) ZetExit();
- if (GalS2650Rom1Size) s2650Exit();
-
- GenericTilesExit();
-
- BurnFree(GalMem);
- BurnFree(GalZ80Rom1Op);
- BurnFree(GalVideoRam2);
- BurnFree(RockclimTiles);
-
- GalSoundExit();
-
- GalIrqFire = 0;
- GalIrqType = 0;
- GalSoundType = 0;
- GalFlipScreenX = 0;
- GalFlipScreenY = 0;
- ZigzagAYLatch = 0;
- GalSoundLatch = 0;
- GalSoundLatch2 = 0;
- KingballSpeechDip = 0;
- KingballSound = 0;
- KonamiSoundControl = 0;
- SfxSampleControl = 0;
- GmgalaxSelectedGame = 0;
- GalPaletteBank = 0;
- GalSpriteClipStart = 0;
- GalSpriteClipEnd = 0;
- FroggerAdjust = 0;
- GalBackgroundRed = 0;
- GalBackgroundGreen = 0;
- GalBackgroundBlue = 0;
- GalBackgroundEnable = 0;
- ScrambleProtectionState = 0;
- ScrambleProtectionResult = 0;
- Dingo = 0;
-
- GalZ80Rom1Size = 0;
- GalZ80Rom1Num = 0;
- GalZ80Rom2Size = 0;
- GalZ80Rom2Num = 0;
- GalZ80Rom3Size = 0;
- GalZ80Rom3Num = 0;
- GalS2650Rom1Size = 0;
- GalS2650Rom1Num = 0;
- GalTilesSharedRomSize = 0;
- GalTilesSharedRomNum = 0;
- GalTilesCharRomSize = 0;
- GalTilesCharRomNum = 0;
- GalNumChars = 0;
- GalTilesSpriteRomSize = 0;
- GalTilesSpriteRomNum = 0;
- GalNumSprites = 0;
- GalPromRomSize = 0;
- GalPromRomNum = 0;
-
- GalPostLoadCallbackFunction = NULL;
- GalRenderBackgroundFunction = NULL;
- GalCalcPaletteFunction = NULL;
- GalDrawBulletsFunction = NULL;
- GalExtendTileInfoFunction = NULL;
- GalExtendSpriteInfoFunction = NULL;
- GalRenderFrameFunction = NULL;
-
- SfxTilemap = 0;
- GalOrientationFlipX = 0;
- MoonwarPortSelect = 0;
- MshuttleAY8910CS = 0;
- Fourin1Bank = 0;
- GameIsGmgalax = 0;
- GameIsBagmanmc = 0;
- CavelonBankSwitch = 0;
- DarkplntBulletColour = 0;
- DambustrBgColour1 = 0;
- DambustrBgColour2 = 0;
- DambustrBgPriority = 0;
- DambustrBgSplitLine = 0;
- RockclimScrollX = 0;
- RockclimScrollY = 0;
- GalVBlank = 0;
-
- GalColourDepth = 0;
-
- return 0;
-}
-
-INT32 KonamiExit()
-{
- ppi8255_exit();
-
- return GalExit();
-}
-
-INT32 GalFrame()
-{
- INT32 nInterleave = 8;
- INT32 nSoundBufferPos = 0;
- INT32 SoundLenInterlv = (nBurnSoundLen > 0x100) ? 0x100 : nBurnSoundLen; // keep spdcoin from freezing up when the coin breaks @ 48khz
-
- if (GalSoundType == GAL_SOUND_HARDWARE_TYPE_GALAXIAN || GalSoundType == GAL_SOUND_HARDWARE_TYPE_KINGBALLDAC) {
- nInterleave = nBurnSoundLen;
- GalaxianSoundUpdateTimers();
- }
- if (GalSoundType == GAL_SOUND_HARDWARE_TYPE_KONAMIAY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_FROGGERAY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_EXPLORERAY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_SCORPIONAY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_HUNCHBACKAY8910) nInterleave = SoundLenInterlv / 4;
- if (GalSoundType == GAL_SOUND_HARDWARE_TYPE_SFXAY8910DAC) nInterleave = 32;
- if (GalSoundType == GAL_SOUND_HARDWARE_TYPE_CHECKMAJAY8910) nInterleave = 32;
- if (GalSoundType == GAL_SOUND_HARDWARE_TYPE_FANTASTCAY8910) nInterleave = 32;
-
- INT32 nIrqInterleaveFire = nInterleave / 4;
-
- if (GalSoundType == GAL_SOUND_HARDWARE_TYPE_RACKNROLSN76496 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_HEXPOOLASN76496) { nInterleave = 8; nIrqInterleaveFire = nInterleave - 1; }
-
- if (GameIsBagmanmc) nIrqInterleaveFire = 0;
-
- if (GalReset) GalDoReset();
-
- if (GameIsGmgalax && (GmgalaxSelectedGame != GalFakeDip)) {
- GmgalaxSelectedGame = GalFakeDip;
- INT32 nAddress = 0x0000;
- if (GmgalaxSelectedGame == 1) nAddress = 0x4000;
- ZetOpen(0);
- ZetMapArea(0x0000, 0x3fff, 0, GalZ80Rom1 + nAddress);
- ZetMapArea(0x0000, 0x3fff, 2, GalZ80Rom1 + nAddress);
- ZetClose();
-
- GalGfxBank[0] = 0;
- if (GmgalaxSelectedGame == 1) GalGfxBank[0] = 1;
- GalPaletteBank = 0;
- if (GmgalaxSelectedGame == 1) GalPaletteBank = 1;
-
- GalDoReset();
- }
-
- GalMakeInputs();
- GalVBlank = 0;
-
- if (GalZ80Rom1Size) ZetNewFrame();
-
- nGalCyclesDone[0] = nGalCyclesDone[1] = nGalCyclesDone[2] = 0;
-
- for (INT32 i = 0; i < nInterleave; i++) {
- INT32 nCurrentCPU, nNext;
-
- // Run Z80 #1
- if (GalZ80Rom1Size && GalSoundType != GAL_SOUND_HARDWARE_TYPE_HUNCHBACKAY8910) {
- nCurrentCPU = 0;
- ZetOpen(nCurrentCPU);
- nNext = (i + 1) * nGalCyclesTotal[nCurrentCPU] / nInterleave;
- nGalCyclesSegment = nNext - nGalCyclesDone[nCurrentCPU];
- nGalCyclesDone[nCurrentCPU] += ZetRun(nGalCyclesSegment);
- if (i == nIrqInterleaveFire && GalIrqFire) {
- if (GalIrqType == GAL_IRQ_TYPE_NMI) ZetNmi();
- if (GalIrqType == GAL_IRQ_TYPE_IRQ0) ZetSetIRQLine(0, CPU_IRQSTATUS_AUTO);
- GalIrqFire = 0;
- }
- ZetClose();
- }
-
- if (GalSoundType == GAL_SOUND_HARDWARE_TYPE_KINGBALLDAC || GalSoundType == GAL_SOUND_HARDWARE_TYPE_FROGGERAY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_KONAMIAY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_EXPLORERAY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_SCORPIONAY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_SFXAY8910DAC || GalSoundType == GAL_SOUND_HARDWARE_TYPE_AD2083AY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_CHECKMANAY8910) {
- // Run Z80 #2
- nCurrentCPU = 1;
- ZetOpen(nCurrentCPU);
- nNext = (i + 1) * nGalCyclesTotal[nCurrentCPU] / nInterleave;
- nGalCyclesSegment = nNext - nGalCyclesDone[nCurrentCPU];
- nGalCyclesDone[nCurrentCPU] += ZetRun(nGalCyclesSegment);
- if (GalSoundType == GAL_SOUND_HARDWARE_TYPE_CHECKMANAY8910) ZetSetIRQLine(0, CPU_IRQSTATUS_AUTO);
- ZetClose();
- }
-
- if (GalSoundType == GAL_SOUND_HARDWARE_TYPE_CHECKMAJAY8910) {
- if (Dingo && !((i%2) == 0)) continue; // slow down dingo music a bit.
- // Run Z80 #2
- nCurrentCPU = 1;
- ZetOpen(nCurrentCPU);
- nNext = (i + 1) * nGalCyclesTotal[nCurrentCPU] / nInterleave;
- nGalCyclesSegment = nNext - nGalCyclesDone[nCurrentCPU];
- nGalCyclesSegment = ZetRun(nGalCyclesSegment);
- nGalCyclesDone[nCurrentCPU] += nGalCyclesSegment;
- ZetSetIRQLine(0, CPU_IRQSTATUS_HOLD);
- ZetClose();
- }
-
- if (GalSoundType == GAL_SOUND_HARDWARE_TYPE_SFXAY8910DAC) {
- // Run Z80 #3
- nCurrentCPU = 2;
- ZetOpen(nCurrentCPU);
- nNext = (i + 1) * nGalCyclesTotal[nCurrentCPU] / nInterleave;
- nGalCyclesSegment = nNext - nGalCyclesDone[nCurrentCPU];
- nGalCyclesDone[nCurrentCPU] += ZetRun(nGalCyclesSegment);
- ZetClose();
- }
-
- // Run S2650 #1
- if (GalS2650Rom1Size) {
- nCurrentCPU = 0;
- s2650Open(nCurrentCPU);
- nNext = (i + 1) * nGalCyclesTotal[nCurrentCPU] / nInterleave;
- nGalCyclesSegment = nNext - nGalCyclesDone[nCurrentCPU];
- nGalCyclesDone[nCurrentCPU] += s2650Run(nGalCyclesSegment);
- if (i == nIrqInterleaveFire) {
- GalVBlank = 1;
- s2650SetIRQLine(0, CPU_IRQSTATUS_ACK);
- s2650Run(0);
- s2650SetIRQLine(0, CPU_IRQSTATUS_NONE);
- s2650Run(0);
- }
- s2650Close();
- }
-
- if (GalSoundType == GAL_SOUND_HARDWARE_TYPE_HUNCHBACKAY8910) {
- // Run Z80 #1
- nCurrentCPU = 1;
- ZetOpen(0);
- nNext = (i + 1) * nGalCyclesTotal[nCurrentCPU] / nInterleave;
- nGalCyclesSegment = nNext - nGalCyclesDone[nCurrentCPU];
- nGalCyclesDone[nCurrentCPU] += ZetRun(nGalCyclesSegment);
- if (HunchbksSoundIrqFire) ZetSetIRQLine(0, CPU_IRQSTATUS_AUTO);
- ZetClose();
- }
-
- if (GalSoundType == GAL_SOUND_HARDWARE_TYPE_GALAXIAN) {
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen / nInterleave;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- GalRenderSoundSamples(pSoundBuf, nSegmentLength);
- nSoundBufferPos += nSegmentLength;
- }
- }
-
- if (GalSoundType == GAL_SOUND_HARDWARE_TYPE_ZIGZAGAY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_JUMPBUGAY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_CHECKMANAY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_CHECKMAJAY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_EXPLORERAY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_SCORPIONAY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_SFXAY8910DAC || GalSoundType == GAL_SOUND_HARDWARE_TYPE_MSHUTTLEAY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_BONGOAY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_AD2083AY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_HUNCHBACKAY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_FANTASTCAY8910) {
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen / nInterleave;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- AY8910Render(&pAY8910Buffer[0], pSoundBuf, nSegmentLength, 0);
- nSoundBufferPos += nSegmentLength;
- }
- }
-
- if (GalSoundType == GAL_SOUND_HARDWARE_TYPE_KONAMIAY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_FROGGERAY8910) {
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen / nInterleave;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
-
- AY8910Update(0, &pAY8910Buffer[0], nSegmentLength);
- if (GalSoundType == GAL_SOUND_HARDWARE_TYPE_KONAMIAY8910) {
- AY8910Update(1, &pAY8910Buffer[3], nSegmentLength);
- }
-
- filter_rc_update(0, pAY8910Buffer[0], pSoundBuf, nSegmentLength);
- filter_rc_update(1, pAY8910Buffer[1], pSoundBuf, nSegmentLength);
- filter_rc_update(2, pAY8910Buffer[2], pSoundBuf, nSegmentLength);
- if (GalSoundType == GAL_SOUND_HARDWARE_TYPE_KONAMIAY8910) {
- filter_rc_update(3, pAY8910Buffer[3], pSoundBuf, nSegmentLength);
- filter_rc_update(4, pAY8910Buffer[4], pSoundBuf, nSegmentLength);
- filter_rc_update(5, pAY8910Buffer[5], pSoundBuf, nSegmentLength);
- }
-
- nSoundBufferPos += nSegmentLength;
- }
- }
-
- if (GalSoundType == GAL_SOUND_HARDWARE_TYPE_KINGBALLDAC) {
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen / nInterleave;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
-
- GalRenderSoundSamples(pSoundBuf, nSegmentLength);
- DACUpdate(pSoundBuf, nSegmentLength);
- nSoundBufferPos += nSegmentLength;
- }
- }
-
- if (GalSoundType == GAL_SOUND_HARDWARE_TYPE_RACKNROLSN76496 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_HEXPOOLASN76496) {
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen / nInterleave;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- SN76496Update(0, pSoundBuf, nSegmentLength);
- if (GalSoundType == GAL_SOUND_HARDWARE_TYPE_RACKNROLSN76496) {
- SN76496Update(1, pSoundBuf, nSegmentLength);
- SN76496Update(2, pSoundBuf, nSegmentLength);
- }
- nSoundBufferPos += nSegmentLength;
- }
- }
- }
-
- // Make sure the buffer is entirely filled.
- if (GalSoundType == GAL_SOUND_HARDWARE_TYPE_GALAXIAN) {
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
-
- if (nSegmentLength) {
- GalRenderSoundSamples(pSoundBuf, nSegmentLength);
- }
- }
- }
-
- if (GalSoundType == GAL_SOUND_HARDWARE_TYPE_ZIGZAGAY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_JUMPBUGAY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_CHECKMANAY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_CHECKMAJAY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_EXPLORERAY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_SCORPIONAY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_SFXAY8910DAC || GalSoundType == GAL_SOUND_HARDWARE_TYPE_MSHUTTLEAY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_BONGOAY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_AD2083AY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_HUNCHBACKAY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_FANTASTCAY8910) {
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- if (nSegmentLength) {
- AY8910Render(&pAY8910Buffer[0], pSoundBuf, nSegmentLength, 0);
- }
- }
- }
-
- if (GalSoundType == GAL_SOUND_HARDWARE_TYPE_KONAMIAY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_FROGGERAY8910) {
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- if (nSegmentLength) {
- AY8910Update(0, &pAY8910Buffer[0], nSegmentLength);
- if (GalSoundType == GAL_SOUND_HARDWARE_TYPE_KONAMIAY8910) {
- AY8910Update(1, &pAY8910Buffer[3], nSegmentLength);
- }
-
- filter_rc_update(0, pAY8910Buffer[0], pSoundBuf, nSegmentLength);
- filter_rc_update(1, pAY8910Buffer[1], pSoundBuf, nSegmentLength);
- filter_rc_update(2, pAY8910Buffer[2], pSoundBuf, nSegmentLength);
- if (GalSoundType == GAL_SOUND_HARDWARE_TYPE_KONAMIAY8910) {
- filter_rc_update(3, pAY8910Buffer[3], pSoundBuf, nSegmentLength);
- filter_rc_update(4, pAY8910Buffer[4], pSoundBuf, nSegmentLength);
- filter_rc_update(5, pAY8910Buffer[5], pSoundBuf, nSegmentLength);
- }
- }
- }
- }
-
- if (GalSoundType == GAL_SOUND_HARDWARE_TYPE_KINGBALLDAC) {
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
-
- if (nSegmentLength) {
- GalRenderSoundSamples(pSoundBuf, nSegmentLength);
- DACUpdate(pSoundBuf, nSegmentLength);
- }
- }
- }
-
- if (GalSoundType == GAL_SOUND_HARDWARE_TYPE_SFXAY8910DAC) {
- if (pBurnSoundOut) DACUpdate(pBurnSoundOut, nBurnSoundLen);
- }
-
- if (GalSoundType == GAL_SOUND_HARDWARE_TYPE_RACKNROLSN76496 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_HEXPOOLASN76496) {
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
-
- if (nSegmentLength) {
- SN76496Update(0, pSoundBuf, nSegmentLength);
- if (GalSoundType == GAL_SOUND_HARDWARE_TYPE_RACKNROLSN76496) {
- SN76496Update(1, pSoundBuf, nSegmentLength);
- SN76496Update(2, pSoundBuf, nSegmentLength);
- }
- }
- }
- }
-
- if (pBurnDraw) GalDraw();
-
- return 0;
-}
-
-INT32 GalScan(INT32 nAction, INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin != NULL) { // Return minimum compatible version
- *pnMin = 0x029703;
- }
-
- if (nAction & ACB_MEMORY_RAM) {
- memset(&ba, 0, sizeof(ba));
- ba.Data = GalRamStart;
- ba.nLen = GalRamEnd - GalRamStart;
- ba.szName = "All Ram";
- BurnAcb(&ba);
- }
-
- if (nAction & ACB_DRIVER_DATA) {
- if (GalZ80Rom1Size) ZetScan(nAction);
- ppi8255_scan();
- if (GalS2650Rom1Size) s2650Scan(nAction);
-
- GalSoundScan(nAction, pnMin);
-
- // Scan critical driver variables
- SCAN_VAR(GalInput);
- SCAN_VAR(GalAnalogPort0);
- SCAN_VAR(GalAnalogPort1);
- SCAN_VAR(GalIrqFire);
- SCAN_VAR(nGalCyclesDone);
- SCAN_VAR(nGalCyclesSegment);
- SCAN_VAR(ZigzagAYLatch);
- SCAN_VAR(GalSoundLatch);
- SCAN_VAR(GalSoundLatch2);
- SCAN_VAR(KingballSound);
- SCAN_VAR(KingballSpeechDip);
- SCAN_VAR(KonamiSoundControl);
- SCAN_VAR(SfxSampleControl);
- SCAN_VAR(ScrambleProtectionResult);
- SCAN_VAR(MoonwarPortSelect);
- SCAN_VAR(MshuttleAY8910CS);
- SCAN_VAR(GmgalaxSelectedGame);
- SCAN_VAR(Fourin1Bank);
- SCAN_VAR(CavelonBankSwitch);
- SCAN_VAR(GalFlipScreenX);
- SCAN_VAR(GalFlipScreenY);
- SCAN_VAR(GalPaletteBank);
- SCAN_VAR(GalBackgroundRed);
- SCAN_VAR(GalBackgroundGreen);
- SCAN_VAR(GalBackgroundBlue);
- SCAN_VAR(GalBackgroundEnable);
- SCAN_VAR(DarkplntBulletColour);
- SCAN_VAR(DambustrBgColour1);
- SCAN_VAR(DambustrBgColour2);
- SCAN_VAR(DambustrBgPriority);
- SCAN_VAR(DambustrBgSplitLine);
- SCAN_VAR(RockclimScrollX);
- SCAN_VAR(RockclimScrollY);
- SCAN_VAR(GalStarsEnable);
- SCAN_VAR(GalStarsScrollPos);
- SCAN_VAR(GalStarsBlinkState);
- SCAN_VAR(GalVBlank);
- }
-
- return 0;
-}
diff --git a/jan/src/burn/drv/galaxian/gal_sound.cpp b/jan/src/burn/drv/galaxian/gal_sound.cpp
deleted file mode 100644
index 88263bff3..000000000
--- a/jan/src/burn/drv/galaxian/gal_sound.cpp
+++ /dev/null
@@ -1,1136 +0,0 @@
-#include "gal.h"
-
-INT16* pFMBuffer;
-INT16* pAY8910Buffer[9];
-
-UINT8 GalSoundType;
-UINT8 HunchbksSoundIrqFire;
-
-#define XTAL 18432000
-#define RNG_RATE (XTAL / 3)
-#define NOISE_RATE (XTAL / 3 / 192 / 2 / 2)
-#define NOISE_LENGTH (NOISE_RATE * 4)
-#define NOISE_AMPLITUDE (70 * 256)
-#define SHOOT_VOLUME 0.50f
-#define SHOOT_SEC 2
-#define R41__ 100000
-#define R44__ 10000
-#define R45__ 22000
-#define R46__ 10000
-#define R47__ 2200
-#define R48__ 2200
-#define C25__ 0.000001
-#define C27__ 0.00000001
-#define C28__ 0.000047
-#define C29__ 0.00000001
-#define IC8L3_L 0.2
-#define IC8L3_H 4.5
-#define NOISE_L 0.2
-#define NOISE_H 4.5
-#define SHOOT_KEYON_TIME 0.1
-#define NE555_FM_ADJUST_RATE 0.80
-#define TOOTHSAW_LENGTH 16
-#define TOOTHSAW_VOLUME 0.36f
-#define TOOTHSAW_AMPLITUDE (64*256)
-#define V(r0,r1) 2 * TOOTHSAW_AMPLITUDE * (r0) / (r0 + r1) - TOOTHSAW_AMPLITUDE
-#define STEPS 16
-#define LFO_VOLUME 0.06f
-#define MINFREQ (139 - 139 / 3)
-#define MAXFREQ (139 + 139 / 3)
-
-static INT16 *GalNoiseWave;
-static INT16 *GalShootWave;
-static UINT32 GalShootLength;
-static UINT32 GalShootRate;
-UINT8 GalLastPort2 = 0;
-UINT8 GalShootEnable;
-UINT8 GalNoiseEnable;
-INT32 GalNoiseVolume;
-double GalShootWavePos;
-double GalNoiseWavePos;
-double GalLfoWavePos[3];
-INT32 GalPitch;
-INT32 GalVol;
-static double GalCounter;
-static INT32 GalCountDown;
-INT32 GalLfoVolume[3];
-double GalLfoFreq;
-double GalLfoFreqFrameVar;
-INT32 GalLfoBit[4];
-static double GalGain;
-static INT32 GalOutputDir;
-
-static INT16 GalToneWave[4][TOOTHSAW_LENGTH];
-
-static const INT16 GalBackgroundWave[32] =
-{
- 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000,
- 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000,
- -0x4000,-0x4000,-0x4000,-0x4000,-0x4000,-0x4000,-0x4000,-0x4000,
- -0x4000,-0x4000,-0x4000,-0x4000,-0x4000,-0x4000,-0x4000,-0x4000,
-};
-
-void GalaxianSoundSetRoute(double nVolume, INT32 nRouteDir)
-{
- GalGain = nVolume;
- GalOutputDir = nRouteDir;
-}
-
-void GalSoundReset()
-{
- if (GalSoundType == GAL_SOUND_HARDWARE_TYPE_ZIGZAGAY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_JUMPBUGAY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_CHECKMANAY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_CHECKMAJAY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_FROGGERAY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_MSHUTTLEAY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_BONGOAY8910) {
- AY8910Reset(0);
- }
-
- if (GalSoundType == GAL_SOUND_HARDWARE_TYPE_KONAMIAY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_EXPLORERAY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_SFXAY8910DAC || GalSoundType == GAL_SOUND_HARDWARE_TYPE_AD2083AY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_HUNCHBACKAY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_FANTASTCAY8910) {
- AY8910Reset(0);
- AY8910Reset(1);
- }
-
- if (GalSoundType == GAL_SOUND_HARDWARE_TYPE_SCORPIONAY8910) {
- AY8910Reset(0);
- AY8910Reset(1);
- AY8910Reset(2);
- }
-
- if (GalSoundType == GAL_SOUND_HARDWARE_TYPE_KINGBALLDAC || GalSoundType == GAL_SOUND_HARDWARE_TYPE_SFXAY8910DAC) {
- DACReset();
- }
-
- if (GalSoundType == GAL_SOUND_HARDWARE_TYPE_GALAXIAN || GalSoundType == GAL_SOUND_HARDWARE_TYPE_KINGBALLDAC) {
- GalLastPort2 = 0;
- GalShootEnable = 0;
- GalNoiseEnable = 0;
- GalNoiseVolume = 0;
- GalShootWavePos = 0;
- GalNoiseWavePos = 0;
- GalLfoWavePos[0] = GalLfoWavePos[1] = GalLfoWavePos[2] = 0;
- GalPitch = 0xff;
- GalVol = 0;
- GalCounter = 0;
- GalCountDown = 0;
- GalLfoVolume[0] = GalLfoVolume[1] = GalLfoVolume[2] = 0;
- GalLfoFreq = MAXFREQ;
- GalLfoFreqFrameVar = 0;
- GalLfoBit[0] = GalLfoBit[1] = GalLfoBit[2] = GalLfoBit[3] = 0;
- }
-}
-
-void GalSoundInit()
-{
- if (GalSoundType == GAL_SOUND_HARDWARE_TYPE_ZIGZAGAY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_JUMPBUGAY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_CHECKMANAY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_CHECKMAJAY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_FROGGERAY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_MSHUTTLEAY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_BONGOAY8910) {
- pFMBuffer = (INT16*)BurnMalloc(nBurnSoundLen * 3 * sizeof(INT16));
- }
-
- if (GalSoundType == GAL_SOUND_HARDWARE_TYPE_KONAMIAY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_EXPLORERAY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_SFXAY8910DAC || GalSoundType == GAL_SOUND_HARDWARE_TYPE_AD2083AY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_HUNCHBACKAY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_FANTASTCAY8910) {
- pFMBuffer = (INT16*)BurnMalloc(nBurnSoundLen * 6 * sizeof(INT16));
- }
-
- if (GalSoundType == GAL_SOUND_HARDWARE_TYPE_SCORPIONAY8910) {
- pFMBuffer = (INT16*)BurnMalloc(nBurnSoundLen * 9 * sizeof(INT16));
- }
-
- if (GalSoundType == GAL_SOUND_HARDWARE_TYPE_ZIGZAGAY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_CHECKMAJAY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_CHECKMANAY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_JUMPBUGAY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_FROGGERAY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_KONAMIAY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_EXPLORERAY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_SCORPIONAY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_SFXAY8910DAC || GalSoundType == GAL_SOUND_HARDWARE_TYPE_MSHUTTLEAY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_BONGOAY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_AD2083AY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_HUNCHBACKAY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_FANTASTCAY8910) {
- pAY8910Buffer[0] = pFMBuffer + nBurnSoundLen * 0;
- pAY8910Buffer[1] = pFMBuffer + nBurnSoundLen * 1;
- pAY8910Buffer[2] = pFMBuffer + nBurnSoundLen * 2;
- }
-
- if (GalSoundType == GAL_SOUND_HARDWARE_TYPE_KONAMIAY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_EXPLORERAY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_SCORPIONAY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_SFXAY8910DAC || GalSoundType == GAL_SOUND_HARDWARE_TYPE_AD2083AY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_HUNCHBACKAY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_FANTASTCAY8910) {
- pAY8910Buffer[3] = pFMBuffer + nBurnSoundLen * 3;
- pAY8910Buffer[4] = pFMBuffer + nBurnSoundLen * 4;
- pAY8910Buffer[5] = pFMBuffer + nBurnSoundLen * 5;
- }
-
- if (GalSoundType == GAL_SOUND_HARDWARE_TYPE_SCORPIONAY8910) {
- pAY8910Buffer[6] = pFMBuffer + nBurnSoundLen * 6;
- pAY8910Buffer[7] = pFMBuffer + nBurnSoundLen * 7;
- pAY8910Buffer[8] = pFMBuffer + nBurnSoundLen * 8;
- }
-
- if (GalSoundType == GAL_SOUND_HARDWARE_TYPE_ZIGZAGAY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_CHECKMANAY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_JUMPBUGAY8910) {
- AY8910Init(0, 1789750, nBurnSoundRate, NULL, NULL, NULL, NULL);
- AY8910SetAllRoutes(0, 0.50, BURN_SND_ROUTE_BOTH);
- }
-
- if (GalSoundType == GAL_SOUND_HARDWARE_TYPE_BONGOAY8910) {
- AY8910Init(0, 1789750, nBurnSoundRate, &BongoDipSwitchRead, NULL, NULL, NULL);
- AY8910SetAllRoutes(0, 0.20, BURN_SND_ROUTE_BOTH);
- }
-
- if (GalSoundType == GAL_SOUND_HARDWARE_TYPE_CHECKMAJAY8910) {
- AY8910Init(0, 1620000, nBurnSoundRate, &CheckmajPortARead, NULL, NULL, NULL);
- AY8910SetAllRoutes(0, 0.50, BURN_SND_ROUTE_BOTH);
- }
-
- if (GalSoundType == GAL_SOUND_HARDWARE_TYPE_MSHUTTLEAY8910) {
- // Port A Write - cclimber_sample_select_w
- AY8910Init(0, 18432000 / 3 / 4, nBurnSoundRate, NULL, NULL, NULL, NULL);
- AY8910SetAllRoutes(0, 0.20, BURN_SND_ROUTE_BOTH);
- }
-
- if (GalSoundType == GAL_SOUND_HARDWARE_TYPE_FROGGERAY8910) {
- AY8910Init(0, 14318000 / 8, nBurnSoundRate, &KonamiSoundLatchRead, &FroggerSoundTimerRead, NULL, NULL);
-
- filter_rc_init(0, FLT_RC_LOWPASS, 1, 1, 1, 0, 0);
- filter_rc_init(1, FLT_RC_LOWPASS, 1, 1, 1, 0, 1);
- filter_rc_init(2, FLT_RC_LOWPASS, 1, 1, 1, 0, 1);
-
- filter_rc_set_src_gain(0, 0.75);
- filter_rc_set_src_gain(1, 0.75);
- filter_rc_set_src_gain(2, 0.75);
-
- filter_rc_set_route(0, 1.00, BURN_SND_ROUTE_BOTH);
- filter_rc_set_route(1, 1.00, BURN_SND_ROUTE_BOTH);
- filter_rc_set_route(2, 1.00, BURN_SND_ROUTE_BOTH);
- }
-
- if (GalSoundType == GAL_SOUND_HARDWARE_TYPE_KONAMIAY8910) {
- AY8910Init(0, 14318000 / 8, nBurnSoundRate, NULL, NULL, NULL, NULL);
- AY8910Init(1, 14318000 / 8, nBurnSoundRate, &KonamiSoundLatchRead, &KonamiSoundTimerRead, NULL, NULL);
-
- filter_rc_init(0, FLT_RC_LOWPASS, 1, 1, 1, 0, 0);
- filter_rc_init(1, FLT_RC_LOWPASS, 1, 1, 1, 0, 1);
- filter_rc_init(2, FLT_RC_LOWPASS, 1, 1, 1, 0, 1);
- filter_rc_init(3, FLT_RC_LOWPASS, 1, 1, 1, 0, 1);
- filter_rc_init(4, FLT_RC_LOWPASS, 1, 1, 1, 0, 1);
- filter_rc_init(5, FLT_RC_LOWPASS, 1, 1, 1, 0, 1);
-
- filter_rc_set_src_gain(0, 0.50);
- filter_rc_set_src_gain(1, 0.50);
- filter_rc_set_src_gain(2, 0.50);
- filter_rc_set_src_gain(3, 0.50);
- filter_rc_set_src_gain(4, 0.50);
- filter_rc_set_src_gain(5, 0.50);
-
- filter_rc_set_route(0, 1.00, BURN_SND_ROUTE_BOTH);
- filter_rc_set_route(1, 1.00, BURN_SND_ROUTE_BOTH);
- filter_rc_set_route(2, 1.00, BURN_SND_ROUTE_BOTH);
- filter_rc_set_route(3, 1.00, BURN_SND_ROUTE_BOTH);
- filter_rc_set_route(4, 1.00, BURN_SND_ROUTE_BOTH);
- filter_rc_set_route(5, 1.00, BURN_SND_ROUTE_BOTH);
- }
-
- if (GalSoundType == GAL_SOUND_HARDWARE_TYPE_EXPLORERAY8910) {
- AY8910Init(0, 14318000 / 8, nBurnSoundRate, &KonamiSoundTimerRead, NULL, NULL, NULL);
- AY8910Init(1, 14318000 / 8, nBurnSoundRate, &KonamiSoundLatchRead, NULL, NULL, NULL);
- AY8910SetAllRoutes(0, 0.25, BURN_SND_ROUTE_BOTH);
- AY8910SetAllRoutes(1, 0.25, BURN_SND_ROUTE_BOTH);
- }
-
- if (GalSoundType == GAL_SOUND_HARDWARE_TYPE_SCORPIONAY8910) {
- AY8910Init(0, 14318000 / 8, nBurnSoundRate, NULL, NULL, NULL, NULL);
- AY8910Init(1, 14318000 / 8, nBurnSoundRate, &KonamiSoundLatchRead, &KonamiSoundTimerRead, NULL, NULL);
- AY8910Init(2, 14318000 / 8, nBurnSoundRate, NULL, NULL, NULL, NULL);
-
- filter_rc_init(0, FLT_RC_LOWPASS, 1, 1, 1, 0, 0);
- filter_rc_init(1, FLT_RC_LOWPASS, 1, 1, 1, 0, 1);
- filter_rc_init(2, FLT_RC_LOWPASS, 1, 1, 1, 0, 1);
- filter_rc_init(3, FLT_RC_LOWPASS, 1, 1, 1, 0, 1);
- filter_rc_init(4, FLT_RC_LOWPASS, 1, 1, 1, 0, 1);
- filter_rc_init(5, FLT_RC_LOWPASS, 1, 1, 1, 0, 1);
-
- filter_rc_set_src_gain(0, 0.50);
- filter_rc_set_src_gain(1, 0.50);
- filter_rc_set_src_gain(2, 0.50);
- filter_rc_set_src_gain(3, 0.50);
- filter_rc_set_src_gain(4, 0.50);
- filter_rc_set_src_gain(5, 0.50);
-
- filter_rc_set_route(0, 1.00, BURN_SND_ROUTE_BOTH);
- filter_rc_set_route(1, 1.00, BURN_SND_ROUTE_BOTH);
- filter_rc_set_route(2, 1.00, BURN_SND_ROUTE_BOTH);
- filter_rc_set_route(3, 1.00, BURN_SND_ROUTE_BOTH);
- filter_rc_set_route(4, 1.00, BURN_SND_ROUTE_BOTH);
- filter_rc_set_route(5, 1.00, BURN_SND_ROUTE_BOTH);
- }
-
- if (GalSoundType == GAL_SOUND_HARDWARE_TYPE_AD2083AY8910) {
- AY8910Init(0, 14318000 / 8, nBurnSoundRate, &KonamiSoundTimerRead, NULL, NULL, NULL);
- AY8910Init(1, 14318000 / 8, nBurnSoundRate, &KonamiSoundLatchRead, NULL, NULL, NULL);
- AY8910SetAllRoutes(0, 1.00, BURN_SND_ROUTE_BOTH);
- AY8910SetAllRoutes(1, 1.00, BURN_SND_ROUTE_BOTH);
- }
-
- if (GalSoundType == GAL_SOUND_HARDWARE_TYPE_FANTASTCAY8910) {
- AY8910Init(0, 1789750, nBurnSoundRate, NULL, NULL, NULL, NULL);
- AY8910Init(1, 1789750, nBurnSoundRate, NULL, NULL, NULL, NULL);
- AY8910SetAllRoutes(0, 0.25, BURN_SND_ROUTE_BOTH);
- AY8910SetAllRoutes(1, 0.25, BURN_SND_ROUTE_BOTH);
- }
-
- if (GalSoundType == GAL_SOUND_HARDWARE_TYPE_SFXAY8910DAC) {
- AY8910Init(0, 14318000 / 8, nBurnSoundRate, NULL, NULL, &SfxSoundLatch2Write, &SfxSampleControlWrite);
- AY8910Init(1, 14318000 / 8, nBurnSoundRate, &KonamiSoundLatchRead, &KonamiSoundTimerRead, NULL, NULL);
- AY8910SetAllRoutes(0, 0.10, BURN_SND_ROUTE_BOTH);
- AY8910SetAllRoutes(1, 0.10, BURN_SND_ROUTE_BOTH);
-
- filter_rc_init(0, FLT_RC_LOWPASS, 1, 1, 1, 0, 0);
- filter_rc_init(1, FLT_RC_LOWPASS, 1, 1, 1, 0, 1);
- filter_rc_init(2, FLT_RC_LOWPASS, 1, 1, 1, 0, 1);
- filter_rc_init(3, FLT_RC_LOWPASS, 1, 1, 1, 0, 1);
- filter_rc_init(4, FLT_RC_LOWPASS, 1, 1, 1, 0, 1);
- filter_rc_init(5, FLT_RC_LOWPASS, 1, 1, 1, 0, 1);
-
- filter_rc_set_src_gain(0, 0.50);
- filter_rc_set_src_gain(1, 0.50);
- filter_rc_set_src_gain(2, 0.50);
- filter_rc_set_src_gain(3, 0.50);
- filter_rc_set_src_gain(4, 0.50);
- filter_rc_set_src_gain(5, 0.50);
-
- filter_rc_set_route(0, 0.10, BURN_SND_ROUTE_BOTH);
- filter_rc_set_route(1, 0.10, BURN_SND_ROUTE_BOTH);
- filter_rc_set_route(2, 0.10, BURN_SND_ROUTE_BOTH);
- filter_rc_set_route(3, 0.10, BURN_SND_ROUTE_BOTH);
- filter_rc_set_route(4, 0.10, BURN_SND_ROUTE_BOTH);
- filter_rc_set_route(5, 0.10, BURN_SND_ROUTE_BOTH);
-
- DACInit(0, 0, 1, SfxSyncDAC);
- DACSetRoute(0, 1.00, BURN_SND_ROUTE_BOTH);
- }
-
- if (GalSoundType == GAL_SOUND_HARDWARE_TYPE_KINGBALLDAC) {
- DACInit(0, 0, 1, KingballSyncDAC);
- DACSetRoute(0, 0.35, BURN_SND_ROUTE_BOTH);
- }
-
- if (GalSoundType == GAL_SOUND_HARDWARE_TYPE_HEXPOOLASN76496) {
- SN76496Init(0, 18432000 / 3 / 2, 0);
- SN76496SetRoute(0, 1.00, BURN_SND_ROUTE_BOTH);
- }
-
- if (GalSoundType == GAL_SOUND_HARDWARE_TYPE_RACKNROLSN76496) {
- SN76496Init(0, 18432000 / 3 / 2, 0);
- SN76496Init(1, 18432000 / 3 / 2, 1);
- SN76496Init(2, 18432000 / 3 / 2, 1);
- SN76496SetRoute(0, 1.00, BURN_SND_ROUTE_BOTH);
- SN76496SetRoute(1, 1.00, BURN_SND_ROUTE_BOTH);
- SN76496SetRoute(2, 1.00, BURN_SND_ROUTE_BOTH);
- }
-
- if (GalSoundType == GAL_SOUND_HARDWARE_TYPE_HUNCHBACKAY8910) {
- AY8910Init(0, 14318000 / 8, nBurnSoundRate, NULL, NULL, NULL, NULL);
- AY8910Init(1, 14318000 / 8, nBurnSoundRate, &KonamiSoundLatchRead, &HunchbksSoundTimerRead, NULL, NULL);
-
- AY8910SetAllRoutes(0, 0.20, BURN_SND_ROUTE_BOTH);
- AY8910SetAllRoutes(1, 0.20, BURN_SND_ROUTE_BOTH);
- }
-
- if (GalSoundType == GAL_SOUND_HARDWARE_TYPE_GALAXIAN || GalSoundType == GAL_SOUND_HARDWARE_TYPE_KINGBALLDAC) {
- GalShootEnable = 0;
- GalShootWavePos = 0;
- INT32 CountDown, Generator, Bit1, Bit2;
-
- GalNoiseWave = (INT16*)BurnMalloc(NOISE_LENGTH * sizeof(INT16));
-
- GalShootRate = 22050;
- GalShootLength = SHOOT_SEC * GalShootRate;
- GalShootWave = (INT16*)BurnMalloc(GalShootLength * sizeof(INT16));
-
- Generator = 0;
- CountDown = NOISE_RATE / 2;
- for (INT32 i = 0; i < NOISE_LENGTH; i++) {
- CountDown -= RNG_RATE;
- while (CountDown < 0) {
- Generator <<= 1;
- Bit1 = (~Generator >> 17) & 1;
- Bit2 = (Generator >> 5) & 1;
- if (Bit1 ^ Bit2) Generator |= 1;
- CountDown += NOISE_RATE;
- }
- GalNoiseWave[i] = ((Generator >> 17) & 1) ? NOISE_AMPLITUDE : -NOISE_AMPLITUDE;
- }
-
- double v = 5.0;
- double vK = (GalShootRate) ? exp(-1 / (R41__ * C25__) / GalShootRate) : 0;
- double IC8L3 = IC8L3_L;
- INT32 IC8Lcnt = (INT32)(SHOOT_KEYON_TIME * GalShootRate);
- double c28v = IC8L3_H - (IC8L3_H - (NOISE_H + NOISE_L) / 2) / (R46__ + R47__ + R48__) * R47__;
- double c28K = (GalShootRate) ? exp(-1 / (22000 * 0.000047 ) / GalShootRate) : 0;
- double c29v = IC8L3_H - (IC8L3_H - (NOISE_H + NOISE_L) / 2) / (R46__ + R47__ + R48__) * (R47__ + R48__);
- double c29K1 = (GalShootRate) ? exp(-1 / (22000 * 0.00000001 ) / GalShootRate) : 0;
- double c29K2 = (GalShootRate) ? exp(-1 / (100000 * 0.00000001 ) / GalShootRate) : 0;
- double ne555cnt = 0;
- double ne555step = (GalShootRate) ? ((1.44 / ((R44__ + R45__ * 2) * C27__)) / GalShootRate) : 0;
- double ne555duty = (double)(R44__ + R45__) / (R44__ + R45__ * 2);
- double ne555sr;
- double ncnt = 0.0;
- double nstep = (GalShootRate) ? ((double)NOISE_RATE / GalShootRate) : 0;
- double noise_sh2;
-
- for (UINT32 i = 0; i < GalShootLength; i++) {
- noise_sh2 = GalNoiseWave[(INT32)ncnt % NOISE_LENGTH] == NOISE_AMPLITUDE ? NOISE_H : NOISE_L;
- ncnt += nstep;
- ne555sr = c29v * NE555_FM_ADJUST_RATE / (5.0 * 2 / 3);
- ne555cnt += ne555step;
- if (ne555cnt >= ne555sr) ne555cnt -= ne555sr;
- if (ne555cnt < ne555sr * ne555duty) {
- GalShootWave[i] = (INT16)(v / 5 * 0x7fff);
- if(IC8L3 == IC8L3_H) v *= vK;
- } else {
- GalShootWave[i] = 0;
- }
- c28v += (IC8L3 - c28v) - (IC8L3 - c28v) * c28K;
- c28v += (c29v - c28v) - (c29v - c28v) * c28K;
- c29v += (c28v - c29v) - (c28v - c29v) * c29K1;
- c29v += (noise_sh2 - c29v) - (noise_sh2 - c29v) * c29K2;
- if(IC8L3 == IC8L3_L && --IC8Lcnt == 0) IC8L3 = IC8L3_H;
- }
-
- memset(GalToneWave, 0, sizeof(GalToneWave));
-
- for (UINT32 i = 0; i < TOOTHSAW_LENGTH; i++ ) {
- double r0a = 1.0 / 1e12, r1a = 1.0 / 1e12;
- double r0b = 1.0 / 1e12, r1b = 1.0 / 1e12;
-
- if (i & 1) {
- r1a += 1.0 / 33000;
- r1b += 1.0 / 33000;
- } else {
- r0a += 1.0 / 33000;
- r0b += 1.0 / 33000;
- }
- if (i & 4) {
- r1a += 1.0 / 22000;
- r1b += 1.0 / 22000;
- } else {
- r0a += 1.0 / 22000;
- r0b += 1.0 / 22000;
- }
- GalToneWave[0][i] = (INT16)(V(1.0 / r0a, 1.0 / r1a));
-
- if (i & 4) {
- r1a += 1.0 / 10000;
- } else {
- r0a += 1.0 / 10000;
- }
- GalToneWave[1][i] = (INT16)(V(1.0 / r0a, 1.0 / r1a));
-
- if (i & 8) {
- r1b += 1.0 / 15000;
- } else {
- r0b += 1.0 / 15000;
- }
- GalToneWave[2][i] = (INT16)(V(1.0 / r0b, 1.0 / r1b));
-
- if (i & 4) {
- r0b += 1.0 / 10000;
- } else {
- r1b += 1.0 / 10000;
- }
- GalToneWave[3][i] = (INT16)(V(1.0 / r0b, 1.0 / r1b));
- }
-
- GalPitch = 0xff;
- GalVol = 0;
-
- GalLfoFreq = MAXFREQ;
- GalLfoFreqFrameVar = 0;
-
- GalGain = 4.00;
- GalOutputDir = BURN_SND_ROUTE_BOTH;
- }
-}
-
-void GalSoundExit()
-{
- if (GalSoundType == GAL_SOUND_HARDWARE_TYPE_ZIGZAGAY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_JUMPBUGAY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_CHECKMANAY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_CHECKMAJAY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_FROGGERAY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_BONGOAY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_MSHUTTLEAY8910) {
- AY8910Exit(0);
- }
-
- if (GalSoundType == GAL_SOUND_HARDWARE_TYPE_KONAMIAY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_EXPLORERAY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_SFXAY8910DAC || GalSoundType == GAL_SOUND_HARDWARE_TYPE_AD2083AY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_HUNCHBACKAY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_FANTASTCAY8910) {
- AY8910Exit(0);
- AY8910Exit(1);
- }
-
- if (GalSoundType == GAL_SOUND_HARDWARE_TYPE_SCORPIONAY8910) {
- AY8910Exit(0);
- AY8910Exit(1);
- AY8910Exit(2);
- }
-
- if (GalSoundType == GAL_SOUND_HARDWARE_TYPE_KINGBALLDAC || GalSoundType == GAL_SOUND_HARDWARE_TYPE_SFXAY8910DAC) {
- DACExit();
- }
-
- if (GalSoundType == GAL_SOUND_HARDWARE_TYPE_RACKNROLSN76496 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_HEXPOOLASN76496) {
- SN76496Exit();
- }
-
- if (GalSoundType == GAL_SOUND_HARDWARE_TYPE_KONAMIAY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_FROGGERAY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_SCORPIONAY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_SFXAY8910DAC) {
- filter_rc_exit();
- }
-
- BurnFree(pFMBuffer);
- for (INT32 i = 0; i < 9; i++) pAY8910Buffer[i] = NULL;
-
- BurnFree(GalNoiseWave);
- BurnFree(GalShootWave);
-
- HunchbksSoundIrqFire = 0;
- GalShootLength = 0;
- GalShootRate = 0;
- GalLastPort2 = 0;
- GalShootEnable = 0;
- GalNoiseEnable = 0;
- GalNoiseVolume = 0;
- GalShootWavePos = 0;
- GalNoiseWavePos = 0;
- GalLfoWavePos[0] = GalLfoWavePos[1] = GalLfoWavePos[2] = 0;
- GalPitch = 0;
- GalVol = 0;
- GalCounter = 0;
- GalCountDown = 0;
- GalLfoVolume[0] = GalLfoVolume[1] = GalLfoVolume[2] = 0;
- GalLfoFreq = 0;
- GalLfoFreqFrameVar = 0;
- GalLfoBit[0] = GalLfoBit[1] = GalLfoBit[2] = GalLfoBit[3] = 0;
- memset(GalToneWave, 0, sizeof(GalToneWave));
-}
-
-void GalSoundScan(INT32 nAction, INT32 *pnMin)
-{
- if (GalSoundType == GAL_SOUND_HARDWARE_TYPE_GALAXIAN || GalSoundType == GAL_SOUND_HARDWARE_TYPE_KINGBALLDAC) {
- SCAN_VAR(GalLastPort2);
- SCAN_VAR(GalShootEnable);
- SCAN_VAR(GalNoiseEnable);
- SCAN_VAR(GalNoiseVolume);
- SCAN_VAR(GalShootWavePos);
- SCAN_VAR(GalNoiseWavePos);
- SCAN_VAR(GalLfoWavePos);
- SCAN_VAR(GalPitch);
- SCAN_VAR(GalVol);
- SCAN_VAR(GalCounter);
- SCAN_VAR(GalCountDown);
- SCAN_VAR(GalLfoVolume);
- SCAN_VAR(GalLfoFreq);
- SCAN_VAR(GalLfoFreqFrameVar);
- SCAN_VAR(GalLfoBit);
- }
-
- if (GalSoundType == GAL_SOUND_HARDWARE_TYPE_ZIGZAGAY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_JUMPBUGAY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_CHECKMANAY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_CHECKMAJAY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_FROGGERAY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_BONGOAY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_KONAMIAY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_EXPLORERAY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_SFXAY8910DAC || GalSoundType == GAL_SOUND_HARDWARE_TYPE_AD2083AY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_SCORPIONAY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_HUNCHBACKAY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_FANTASTCAY8910) {
- AY8910Scan(nAction, pnMin);
- }
-
- if (GalSoundType == GAL_SOUND_HARDWARE_TYPE_KINGBALLDAC || GalSoundType == GAL_SOUND_HARDWARE_TYPE_SFXAY8910DAC) {
- DACScan(nAction, pnMin);
- }
-
- if (GalSoundType == GAL_SOUND_HARDWARE_TYPE_RACKNROLSN76496) {
- SN76496Scan(nAction, pnMin);
- }
-}
-
-// AY8910 Port Handlers
-UINT8 CheckmajPortARead(UINT32)
-{
- return GalSoundLatch;
-}
-
-UINT8 BongoDipSwitchRead(UINT32)
-{
- return GalInput[3] | GalDip[3];
-}
-
-UINT8 KonamiSoundLatchRead(UINT32)
-{
- ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
- return GalSoundLatch;
-}
-
-UINT8 KonamiSoundTimerRead(UINT32)
-{
- INT32 nActiveCPU = ZetGetActive();
- UINT32 Cycles;
-
- if (nActiveCPU == 1) {
- Cycles = (ZetTotalCycles() * 8) % (UINT64)(16 * 16 * 2 * 8 * 5 * 2);
- } else {
- ZetClose();
- ZetOpen(1);
- Cycles = (ZetTotalCycles() * 8) % (UINT64)(16 * 16 * 2 * 8 * 5 * 2);
- ZetClose();
- ZetOpen(nActiveCPU);
- }
-
- UINT8 HiBit = 0;
-
- if (Cycles >= 16 * 16 * 2 * 8 * 5) {
- HiBit = 1;
- Cycles -= 16 * 16 * 2 * 8 * 5;
- }
-
- return (HiBit << 7) | (BIT(Cycles, 14) << 6) | (BIT(Cycles, 13) << 5) | (BIT(Cycles, 11) << 4) | 0x0e;
-}
-
-UINT8 FroggerSoundTimerRead(UINT32)
-{
- UINT8 KonamiValue = KonamiSoundTimerRead(0);
- return BITSWAP08(KonamiValue, 7, 6, 3, 4, 5, 2, 1, 0);
-}
-
-UINT8 HunchbksSoundTimerRead(UINT32)
-{
- INT32 nActiveCPU = ZetGetActive();
- UINT32 Cycles;
-
- if (nActiveCPU == 0) {
- Cycles = (ZetTotalCycles() * 8) % (UINT64)(16 * 16 * 2 * 8 * 5 * 2);
- } else {
- ZetOpen(0);
- Cycles = (ZetTotalCycles() * 8) % (UINT64)(16 * 16 * 2 * 8 * 5 * 2);
- ZetClose();
- }
-
- UINT8 HiBit = 0;
-
- if (Cycles >= 16 * 16 * 2 * 8 * 5) {
- HiBit = 1;
- Cycles -= 16 * 16 * 2 * 8 * 5;
- }
-
- return (HiBit << 7) | (BIT(Cycles, 14) << 6) | (BIT(Cycles, 13) << 5) | (BIT(Cycles, 11) << 4) | 0x0e;
-}
-
-void KonamiSoundLatchWrite(UINT8 d)
-{
- GalSoundLatch = d;
-}
-
-void KonamiSoundControlWrite(UINT8 d)
-{
- UINT8 Old = KonamiSoundControl;
- KonamiSoundControl = d;
-
- if ((Old & 0x08) && !(d & 0x08)) {
- INT32 nActiveCPU = ZetGetActive();
-
- if (nActiveCPU == 1) {
- ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
- } else {
- ZetClose();
- ZetOpen(1);
- ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
- ZetClose();
- ZetOpen(nActiveCPU);
- }
- }
-
- /* bit 4 is sound disable */
-// sound_global_enable(~data & 0x10);
-}
-
-void HunchbksSoundControlWrite(UINT8 d)
-{
- UINT8 Old = KonamiSoundControl;
- KonamiSoundControl = d;
-
- HunchbksSoundIrqFire = 0;
-
- if ((Old & 0x08) && !(d & 0x08)) {
- HunchbksSoundIrqFire = 1;
- }
-
- /* bit 4 is sound disable */
-// sound_global_enable(~data & 0x10);
-}
-
-void SfxSoundLatch2Write(UINT32, UINT32 d)
-{
- GalSoundLatch2 = d & 0xff;
-}
-
-void SfxSampleControlWrite(UINT32, UINT32 d)
-{
- UINT8 Old = SfxSampleControl;
-
- d &= 0xff;
- SfxSampleControl = d;
-
- if ((Old & 0x01) && !(d & 0x01)) {
- INT32 nActiveCPU = ZetGetActive();
-
- if (nActiveCPU == 2) {
- ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
- nGalCyclesDone[2] += ZetRun(100);
- ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
-
- } else {
- ZetClose();
- ZetOpen(2);
- ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
- nGalCyclesDone[2] += ZetRun(100);
- ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
- ZetClose();
- ZetOpen(nActiveCPU);
- }
- }
-}
-
-// Frogger Sound CPU Memory Map
-static void filter_w(INT32 num, UINT8 d)
-{
- INT32 C;
-
- C = 0;
- if (d & 1) C += 220000; /* 220000pF = 0.220uF */
- if (d & 2) C += 47000; /* 47000pF = 0.047uF */
- filter_rc_set_RC(num, FLT_RC_LOWPASS, 1000, 5100, 0, CAP_P(C));
-}
-
-UINT8 __fastcall FroggerSoundZ80Read(UINT16 a)
-{
- switch (a) {
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #2 Read => %04X\n"), a);
- }
- }
-
- return 0xff;
-}
-
-void __fastcall FroggerSoundZ80Write(UINT16 a, UINT8 d)
-{
- if (a >= 0x6000 && a <= 0x6fff) {
- INT32 Offset = a & 0xfff;
- filter_w(0, (Offset >> 6) & 3);
- filter_w(1, (Offset >> 8) & 3);
- filter_w(2, (Offset >> 10) & 3);
- return;
- }
-
- switch (a) {
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #2 Write => %04X, %02X\n"), a, d);
- }
- }
-}
-
-UINT8 __fastcall FroggerSoundZ80PortRead(UINT16 a)
-{
- a &= 0xff;
-
- UINT8 Result = 0xff;
- if (a & 0x40) Result &= AY8910Read(0);
- return Result;
-}
-
-void __fastcall FroggerSoundZ80PortWrite(UINT16 a, UINT8 d)
-{
- a &= 0xff;
-
- if (a & 0x40) {
- AY8910Write(0, 1, d);
- } else {
- if (a & 0x80) {
- AY8910Write(0, 0, d);
- }
- }
-}
-
-void FroggerSoundNoEncryptionInit()
-{
- ZetOpen(1);
- ZetSetReadHandler(FroggerSoundZ80Read);
- ZetSetWriteHandler(FroggerSoundZ80Write);
- ZetSetInHandler(FroggerSoundZ80PortRead);
- ZetSetOutHandler(FroggerSoundZ80PortWrite);
- ZetMapArea(0x0000, GalZ80Rom2Size - 1, 0, GalZ80Rom2);
- ZetMapArea(0x0000, GalZ80Rom2Size - 1, 2, GalZ80Rom2);
- ZetMapArea(0x4000, 0x43ff, 0, GalZ80Ram2);
- ZetMapArea(0x4000, 0x43ff, 1, GalZ80Ram2);
- ZetMapArea(0x4000, 0x43ff, 2, GalZ80Ram2);
- ZetClose();
-
- nGalCyclesTotal[1] = (14318000 / 8) / 60;
-}
-
-void FroggerSoundInit()
-{
- FroggerSoundNoEncryptionInit();
-
- for (UINT32 Offset = 0; Offset < 0x0800; Offset++) GalZ80Rom2[Offset] = BITSWAP08(GalZ80Rom2[Offset], 7, 6, 5, 4, 3, 2, 0, 1);
-}
-
-// Konami Sound CPU Memory Map
-UINT8 __fastcall KonamiSoundZ80Read(UINT16 a)
-{
- switch (a) {
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #2 Read => %04X\n"), a);
- }
- }
-
- return 0xff;
-}
-
-void __fastcall KonamiSoundZ80Write(UINT16 a, UINT8 d)
-{
- if (GalSoundType == GAL_SOUND_HARDWARE_TYPE_KONAMIAY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_FROGGERAY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_SCORPIONAY8910 || GalSoundType == GAL_SOUND_HARDWARE_TYPE_SFXAY8910DAC) {
- if (a >= 0x9000 && a <= 0x9fff) {
- INT32 Offset = a & 0xfff;
- filter_w(0, (Offset >> 0) & 3);
- filter_w(1, (Offset >> 2) & 3);
- filter_w(2, (Offset >> 4) & 3);
- filter_w(3, (Offset >> 6) & 3);
- filter_w(4, (Offset >> 8) & 3);
- filter_w(5, (Offset >> 10) & 3);
- return;
- }
- }
-
- switch (a) {
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 #2 Write => %04X, %02X\n"), a, d);
- }
- }
-}
-
-UINT8 __fastcall KonamiSoundZ80PortRead(UINT16 a)
-{
- a &= 0xff;
-
- UINT8 Result = 0xff;
- if (a & 0x20) Result &= AY8910Read(0);
- if (a & 0x80) Result &= AY8910Read(1);
- return Result;
-}
-
-void __fastcall KonamiSoundZ80PortWrite(UINT16 a, UINT8 d)
-{
- a &= 0xff;
-
- if (a & 0x10) {
- AY8910Write(0, 0, d);
- } else {
- if (a & 0x20) {
- AY8910Write(0, 1, d);
- }
- }
-
- if (a & 0x40) {
- AY8910Write(1, 0, d);
- } else {
- if (a & 0x80) {
- AY8910Write(1, 1, d);
- }
- }
-}
-
-void KonamiSoundInit()
-{
- ZetOpen(1);
- ZetSetReadHandler(KonamiSoundZ80Read);
- ZetSetWriteHandler(KonamiSoundZ80Write);
- ZetSetInHandler(KonamiSoundZ80PortRead);
- ZetSetOutHandler(KonamiSoundZ80PortWrite);
- ZetMapArea(0x0000, GalZ80Rom2Size - 1, 0, GalZ80Rom2);
- ZetMapArea(0x0000, GalZ80Rom2Size - 1, 2, GalZ80Rom2);
- ZetMapArea(0x8000, 0x83ff, 0, GalZ80Ram2);
- ZetMapArea(0x8000, 0x83ff, 1, GalZ80Ram2);
- ZetMapArea(0x8000, 0x83ff, 2, GalZ80Ram2);
- ZetClose();
-
- nGalCyclesTotal[1] = (14318000 / 8) / 60;
-}
-
-void HunchbksSoundInit()
-{
- ZetOpen(0);
- ZetSetReadHandler(KonamiSoundZ80Read);
- ZetSetWriteHandler(KonamiSoundZ80Write);
- ZetSetInHandler(KonamiSoundZ80PortRead);
- ZetSetOutHandler(KonamiSoundZ80PortWrite);
- ZetMapArea(0x0000, GalZ80Rom1Size - 1, 0, GalZ80Rom1);
- ZetMapArea(0x0000, GalZ80Rom1Size - 1, 2, GalZ80Rom1);
- ZetMapArea(0x8000, 0x83ff, 0, GalZ80Ram1 + 0x400);
- ZetMapArea(0x8000, 0x83ff, 1, GalZ80Ram1 + 0x400);
- ZetMapArea(0x8000, 0x83ff, 2, GalZ80Ram1 + 0x400);
- ZetMapArea(0x8400, 0x87ff, 0, GalZ80Ram1 + 0x400);
- ZetMapArea(0x8400, 0x87ff, 1, GalZ80Ram1 + 0x400);
- ZetMapArea(0x8400, 0x87ff, 2, GalZ80Ram1 + 0x400);
- ZetMapArea(0x8800, 0x8bff, 0, GalZ80Ram1 + 0x400);
- ZetMapArea(0x8800, 0x8bff, 1, GalZ80Ram1 + 0x400);
- ZetMapArea(0x8800, 0x8bff, 2, GalZ80Ram1 + 0x400);
- ZetMapArea(0x8c00, 0x8fff, 0, GalZ80Ram1 + 0x400);
- ZetMapArea(0x8c00, 0x8fff, 1, GalZ80Ram1 + 0x400);
- ZetMapArea(0x8c00, 0x8fff, 2, GalZ80Ram1 + 0x400);
- ZetClose();
-
- nGalCyclesTotal[1] = (14318000 / 8) / 60;
-}
-
-// DAC handlers
-INT32 KingballSyncDAC()
-{
- return (INT32)(float)(nBurnSoundLen * (ZetTotalCycles() / ((nGalCyclesTotal[1] * 60.0000) / (nBurnFPS / 100.0000))));
-}
-
-INT32 SfxSyncDAC()
-{
- return (INT32)(float)(nBurnSoundLen * (ZetTotalCycles() / ((nGalCyclesTotal[2] * 60.0000) / (nBurnFPS / 100.0000))));
-}
-
-// Galaxian samples
-static void GalRenderShootSample(INT16 *pSoundBuf, INT32 nLength)
-{
- double Addr = GalShootWavePos;
- double Step = (double)GalShootRate / nBurnSoundRate;
-
- for (INT32 i = 0; i < nLength; i += 2) {
- INT16 Sample = (INT16)(GalShootWave[(INT32)Addr] * SHOOT_VOLUME);
- Sample >>= 4;
-
- INT32 nLeftSample = 0, nRightSample = 0;
-
- if ((GalOutputDir & BURN_SND_ROUTE_LEFT) == BURN_SND_ROUTE_LEFT) {
- nLeftSample += (INT32)(Sample * GalGain);
- }
- if ((GalOutputDir & BURN_SND_ROUTE_RIGHT) == BURN_SND_ROUTE_RIGHT) {
- nRightSample += (INT32)(Sample * GalGain);
- }
-
- nLeftSample = BURN_SND_CLIP(nLeftSample);
- nRightSample = BURN_SND_CLIP(nRightSample);
-
- pSoundBuf[i + 0] += nLeftSample;
- pSoundBuf[i + 1] += nRightSample;
-
- Addr += Step;
- }
-
- GalShootWavePos = Addr;
- if (GalShootWavePos > GalShootLength) {
- GalShootWavePos = 0;
- GalShootEnable = 0;
- }
-}
-
-static void GalRenderNoiseSample(INT16 *pSoundBuf, INT32 nLength)
-{
- double Addr = GalNoiseWavePos;
- double Step = (double)NOISE_RATE / nBurnSoundRate;
-
- for (INT32 i = 0; i < nLength; i += 2) {
- INT16 Sample = (INT16)(GalNoiseWave[(INT32)Addr] * (GalNoiseVolume / 100));
- Sample >>= 4;
-
- INT32 nLeftSample = 0, nRightSample = 0;
-
- if ((GalOutputDir & BURN_SND_ROUTE_LEFT) == BURN_SND_ROUTE_LEFT) {
- nLeftSample += (INT32)(Sample * GalGain);
- }
- if ((GalOutputDir & BURN_SND_ROUTE_RIGHT) == BURN_SND_ROUTE_RIGHT) {
- nRightSample += (INT32)(Sample * GalGain);
- }
-
- nLeftSample = BURN_SND_CLIP(nLeftSample);
- nRightSample = BURN_SND_CLIP(nRightSample);
-
- pSoundBuf[i + 0] += nLeftSample;
- pSoundBuf[i + 1] += nRightSample;
-
- Addr += Step;
- }
-
- GalNoiseWavePos = Addr;
- if (GalNoiseWavePos > NOISE_LENGTH) {
- GalNoiseWavePos = 0;
- }
-}
-
-static void GalRenderToneWave(INT16 *pSoundBuf, INT32 nLength)
-{
- INT32 i,j;
- INT16 *w = GalToneWave[GalVol];
-
- if (GalPitch != 0xff) {
- for (i = 0; i < nLength; i += 2) {
- INT32 mix = 0;
-
- for (j = 0; j < STEPS; j++) {
- if (GalCountDown >= 256) {
- GalCounter = GalCounter + ((double)96000 / nBurnSoundRate);
- if (GalCounter > TOOTHSAW_LENGTH) GalCounter = 0;
- GalCountDown = GalPitch;
- }
- GalCountDown++;
-
- mix += w[(INT32)GalCounter];
- }
-
- INT16 Sample = mix / STEPS;
- Sample >>= 4;
-
- INT32 nLeftSample = 0, nRightSample = 0;
-
- if ((GalOutputDir & BURN_SND_ROUTE_LEFT) == BURN_SND_ROUTE_LEFT) {
- nLeftSample += (INT32)(Sample * GalGain);
- }
- if ((GalOutputDir & BURN_SND_ROUTE_RIGHT) == BURN_SND_ROUTE_RIGHT) {
- nRightSample += (INT32)(Sample * GalGain);
- }
-
- nLeftSample = BURN_SND_CLIP(nLeftSample);
- nRightSample = BURN_SND_CLIP(nRightSample);
-
- pSoundBuf[i + 0] = nLeftSample;
- pSoundBuf[i + 1] = nRightSample;
- }
- }
-}
-
-static void GalRenderLfoWaveSample(INT32 nLfoWave, INT16 *pSoundBuf, INT32 nLength)
-{
- INT32 nshHZ = 0;
-
- switch (nLfoWave) {
- case 0: nshHZ = 470; break;
- case 1: nshHZ = 330; break;
- case 2: nshHZ = 220; break;
- }
- double Addr = GalLfoWavePos[nLfoWave];
- double Step = (double)(sizeof(GalBackgroundWave) * GalLfoFreq * (100 + 2 * nshHZ) / (100 + 2 * 470)) / nBurnSoundRate;
-
- for (INT32 i = 0; i < nLength; i += 2) {
- INT16 Sample = (INT16)(GalBackgroundWave[(INT32)Addr] * (GalLfoVolume[nLfoWave] ? LFO_VOLUME : 0));
- Sample >>= 4;
-
- INT32 nLeftSample = 0, nRightSample = 0;
-
- if ((GalOutputDir & BURN_SND_ROUTE_LEFT) == BURN_SND_ROUTE_LEFT) {
- nLeftSample += (INT32)(Sample * GalGain);
- }
- if ((GalOutputDir & BURN_SND_ROUTE_RIGHT) == BURN_SND_ROUTE_RIGHT) {
- nRightSample += (INT32)(Sample * GalGain);
- }
-
- nLeftSample = BURN_SND_CLIP(nLeftSample);
- nRightSample = BURN_SND_CLIP(nRightSample);
-
- pSoundBuf[i + 0] += nLeftSample;
- pSoundBuf[i + 1] += nRightSample;
-
- Addr += Step;
- }
-
- GalLfoWavePos[nLfoWave] = Addr;
- if (GalLfoWavePos[nLfoWave] > 32) {
- GalLfoWavePos[nLfoWave] = 0;
- }
-}
-
-void GalRenderSoundSamples(INT16 *pSoundBuf, INT32 nLength)
-{
- memset(pSoundBuf, 0, nLength * 2 * sizeof(INT16));
-
- GalRenderToneWave(pSoundBuf, nLength);
- GalRenderNoiseSample(pSoundBuf, nLength);
- if (GalShootEnable) GalRenderShootSample(pSoundBuf, nLength);
- GalRenderLfoWaveSample(0, pSoundBuf, nLength);
- GalRenderLfoWaveSample(1, pSoundBuf, nLength);
- GalRenderLfoWaveSample(2, pSoundBuf, nLength);
-}
-
-void GalaxianSoundWrite(UINT32 Offset, UINT8 d)
-{
- d &= 0x01;
-
- switch (Offset & 0x07) {
- case 0x00:
- case 0x01:
- case 0x02: {
- GalLfoVolume[Offset] = d;
- return;
- }
-
- case 0x03: {
- GalNoiseEnable = d & 1;
- if (GalNoiseEnable) {
- GalNoiseVolume = 100;
- GalNoiseWavePos = 0;
- }
- return;
- }
-
- case 0x04: {
- return;
- }
-
- case 0x05: {
- if (d & 1 && !(GalLastPort2 & 1) ) {
- GalShootEnable = 1;
- GalShootWavePos = 0;
- }
- GalLastPort2 = d;
- return;
- }
-
- case 0x06:
- case 0x07: {
- GalVol = (GalVol & ~(1 << (Offset & 0x01))) | ((d & 1) << (Offset & 0x01));
- return;
- }
- }
-}
-
-void GalaxianLfoFreqWrite(UINT32 Offset, UINT8 d)
-{
- double r0, r1, rx = 100000.0;
-
- if ((d & 0x01) == GalLfoBit[Offset]) return;
-
- GalLfoBit[Offset] = d & 0x01;
-
- r0 = 1.0 / 330000;
- r1 = 1.0 / 1e12;
-
- if (GalLfoBit[0]) {
- r1 += 1.0 / 1000000;
- } else {
- r0 += 1.0 / 1000000;
- }
-
- if (GalLfoBit[1]) {
- r1 += 1.0 / 470000;
- } else {
- r0 += 1.0 / 470000;
- }
-
- if (GalLfoBit[2]) {
- r1 += 1.0 / 220000;
- } else {
- r0 += 1.0 / 220000;
- }
-
- if (GalLfoBit[3]) {
- r1 += 1.0 / 100000;
- } else {
- r0 += 1.0 / 100000;
- }
-
- r0 = 1.0 / r0;
- r1 = 1.0 / r1;
-
- rx = rx + 2000000.0 * r0 / (r0 + r1);
-
- GalLfoFreqFrameVar = (1000000000 / ((MAXFREQ - MINFREQ) * 639 * rx)) * 100;
-
- bprintf(PRINT_NORMAL, _T("Offset %x, rx %f, %f\n"), Offset, (MAXFREQ - MINFREQ) * 639 * rx, GalLfoFreqFrameVar);
-}
-
-void GalaxianSoundUpdateTimers()
-{
- if (GetCurrentFrame() % 3) {
- if (!GalNoiseEnable && GalNoiseVolume > 0) {
- GalNoiseVolume -= (GalNoiseVolume / 10) + 1;
- }
- }
-
- if (GalLfoFreq > MINFREQ) {
- GalLfoFreq -= GalLfoFreqFrameVar;
- } else {
- GalLfoFreq = MAXFREQ;
- }
-}
diff --git a/jan/src/burn/drv/galaxian/gal_stars.cpp b/jan/src/burn/drv/galaxian/gal_stars.cpp
deleted file mode 100644
index a63f0235c..000000000
--- a/jan/src/burn/drv/galaxian/gal_stars.cpp
+++ /dev/null
@@ -1,241 +0,0 @@
-#include "gal.h"
-
-// This module is not accurate to the arcade hardware - it is ported from my previous Galaxian driver for FBA,
-// which was based on an old version of MAME. It is considered "good enough" for the purpose of giving the impression
-// of the star layers without being totally accurate
-
-struct Star
-{
- INT32 x, y, Colour;
-};
-
-static struct Star Stars[252];
-
-INT32 GalStarsEnable = 0;
-INT32 GalStarsScrollPos = 0;
-INT32 GalStarsBlinkState = 0;
-INT32 GalBlinkTimerStartFrame = 0;
-static double GalBlinkEveryFrames = (0.693 * (100000 + 2.0 + 10000) * 0.00001) * (16000.0 / 132 / 2);
-
-void GalInitStars()
-{
- INT32 nStars, Generator, x, y;
-
- GalStarsEnable = 0;
- GalStarsScrollPos = -1;
- GalStarsBlinkState = 0;
-
- nStars = 0;
- Generator = 0;
-
- for (y = 255; y >= 0; y--) {
- for (x = 511; x >= 0; x--) {
- INT32 Bit0;
-
- Bit0 = ((~Generator >> 16) & 0x01) ^ ((Generator >> 4) & 0x01);
-
- Generator = (Generator << 1) | Bit0;
-
- if (((~Generator >> 16) & 0x01) && (Generator & 0xff) == 0xff) {
- INT32 Colour;
-
- Colour = (~(Generator >> 8)) & 0x3f;
-
- if (Colour) {
- Stars[nStars].x = x;
- Stars[nStars].y = y;
- Stars[nStars].Colour = Colour;
-
- nStars++;
- }
- }
- }
- }
-}
-
-static INT32 GalCheckStarsBlinkState()
-{
- INT32 CurrentFrame = GetCurrentFrame();
-
- if ((CurrentFrame - GalBlinkTimerStartFrame) >= (INT32)GalBlinkEveryFrames) {
- GalBlinkTimerStartFrame = CurrentFrame;
- return 1;
- }
-
- return 0;
-}
-
-static inline void GalPlotStar(INT32 x, INT32 y, INT32 Colour)
-{
- if (y >= 0 && y < nScreenHeight && x >= 0 && x < nScreenWidth) {
- pTransDraw[(y * nScreenWidth) + x] = Colour + GAL_PALETTE_STARS_OFFSET;
- }
-}
-
-void GalaxianRenderStarLayer()
-{
- GalStarsScrollPos++;
-
- for (INT32 Offs = 0; Offs < 252; Offs++) {
- INT32 x, y;
-
- x = ((Stars[Offs].x + GalStarsScrollPos) & 0x01ff) >>1;
- y = (Stars[Offs].y + ((GalStarsScrollPos + Stars[Offs].x) >> 9)) & 0xff;
-
- if ((y & 0x01) ^ ((x >> 3) & 0x01)) {
- if (GalFlipScreenX) x = 255 - x;
- if (GalFlipScreenY) y = 255 - y;
- y -= 16;
- GalPlotStar(x, y, Stars[Offs].Colour);
- }
- }
-}
-
-void JumpbugRenderStarLayer()
-{
- if (GalCheckStarsBlinkState()) GalStarsBlinkState++;
-
- for (INT32 Offs = 0; Offs < 252; Offs++) {
- INT32 x, y;
-
- x = Stars[Offs].x >> 1;
- y = Stars[Offs].y >> 1;
-
- if ((y & 0x01) ^ ((x >> 3) & 0x01)) {
- switch (GalStarsBlinkState & 0x03) {
- case 0: {
- if (!(Stars[Offs].Colour & 0x01)) continue;
- break;
- }
-
- case 1: {
- if (!(Stars[Offs].Colour & 0x04)) continue;
- break;
- }
-
- case 2: {
- if (!(Stars[Offs].y & 0x02)) continue;
- break;
- }
-
- case 3: {
- break;
- }
- }
-
- x = Stars[Offs].x >> 1;
- y = Stars[Offs].y & 0xff;
-
- if (x >= 240) continue;
-
- if (GalFlipScreenX) x = 255 - x;
- if (GalFlipScreenY) y = 255 - y;
- y -= 16;
- GalPlotStar(x, y, Stars[Offs].Colour);
- }
- }
-}
-
-void ScrambleRenderStarLayer()
-{
- if (GalCheckStarsBlinkState()) GalStarsBlinkState++;
-
- for (INT32 Offs = 0; Offs < 252; Offs++) {
- INT32 x, y;
-
- x = Stars[Offs].x >> 1;
- y = Stars[Offs].y;
-
- if ((y & 0x01) ^ ((x >> 3) & 0x01)) {
- switch (GalStarsBlinkState & 0x03) {
- case 0: {
- if (!(Stars[Offs].Colour & 0x01)) continue;
- break;
- }
-
- case 1: {
- if (!(Stars[Offs].Colour & 0x04)) continue;
- break;
- }
-
- case 2: {
- if (!(Stars[Offs].y & 0x02)) continue;
- break;
- }
-
- case 3: {
- break;
- }
- }
-
- if (GalFlipScreenX) x = 255 - x;
- if (GalFlipScreenY) y = 255 - y;
- y -= 16;
- GalPlotStar(x, y, Stars[Offs].Colour);
- }
- }
-}
-
-void MarinerRenderStarLayer()
-{
- UINT8 *Prom = GalProm + 0x120;
-
- GalStarsScrollPos++;
-
- for (INT32 Offs = 0; Offs < 252; Offs++) {
- INT32 x, y;
-
- x = ((Stars[Offs].x + GalStarsScrollPos) & 0x01ff) >>1;
- y = (Stars[Offs].y + ((GalStarsScrollPos + Stars[Offs].x) >> 9)) & 0xff;
-
- if ((y & 0x01) ^ ((x >> 3) & 0x01)) {
- if (GalFlipScreenX) x = 255 - x;
- if (GalFlipScreenY) y = 255 - y;
- y -= 16;
-
- if (Prom[((x / 8) + 1) & 0x1f] & 0x04) {
- GalPlotStar(x, y, Stars[Offs].Colour);
- }
- }
- }
-}
-
-void RescueRenderStarLayer()
-{
- if (GalCheckStarsBlinkState()) GalStarsBlinkState++;
-
- for (INT32 Offs = 0; Offs < 252; Offs++) {
- INT32 x, y;
-
- x = Stars[Offs].x >> 1;
- y = Stars[Offs].y;
-
- if (x < 128 && ((y & 0x01) ^ ((x >> 3) & 0x01))) {
- switch (GalStarsBlinkState & 0x03) {
- case 0: {
- if (!(Stars[Offs].Colour & 0x01)) continue;
- break;
- }
-
- case 1: {
- if (!(Stars[Offs].Colour & 0x04)) continue;
- break;
- }
-
- case 2: {
- if (!(Stars[Offs].y & 0x02)) continue;
- break;
- }
-
- case 3: {
- break;
- }
- }
-
- if (GalFlipScreenX) x = 255 - x;
- if (GalFlipScreenY) y = 255 - y;
- y -= 16;
- GalPlotStar(x, y, Stars[Offs].Colour);
- }
- }
-}
diff --git a/jan/src/burn/drv/irem/d_m107.cpp b/jan/src/burn/drv/irem/d_m107.cpp
deleted file mode 100644
index d23c12256..000000000
--- a/jan/src/burn/drv/irem/d_m107.cpp
+++ /dev/null
@@ -1,1573 +0,0 @@
-// FB Alpha Irem M107 system driver
-// Based on MAME driver by Bryan McPhail
-// Based on port of M92 driver from MAME by OopsWare
-
-#include "tiles_generic.h"
-#include "burn_ym2151.h"
-#include "nec_intf.h"
-#include "irem_cpu.h"
-#include "iremga20.h"
-
-static UINT8 *Mem;
-static UINT8 *MemEnd;
-static UINT8 *RamStart;
-static UINT8 *RamEnd;
-static UINT8 *DrvV33ROM;
-static UINT8 *DrvV30ROM;
-static UINT8 *DrvGfxROM0;
-static UINT8 *DrvGfxROM1;
-static UINT8 *DrvSprTable;
-static UINT8 *DrvSndROM;
-static UINT8 *DrvVidRAM;
-static UINT8 *DrvV33RAM;
-static UINT8 *DrvV30RAM;
-static UINT8 *DrvSprRAM;
-static UINT8 *DrvSprBuf;
-static UINT8 *DrvPalRAM;
-static UINT8 *RamPrioBitmap;
-
-static UINT32 *DrvPalette;
-static UINT8 bRecalcPalette;
-
-static UINT8 *pf_control[4];
-static UINT8 *sound_status;
-static UINT8 *sound_latch;
-
-static INT32 sprite_enable;
-static INT32 raster_irq_position;
-static INT32 sound_cpu_reset;
-
-static INT32 nBankswitchData;
-static INT32 has_bankswitch = 0;
-
-static UINT8 DrvButton[8];
-static UINT8 DrvJoy1[8];
-static UINT8 DrvJoy2[8];
-static UINT8 DrvJoy3[8];
-static UINT8 DrvJoy4[8];
-static UINT8 DrvInput[8];
-static UINT8 DrvReset;
-
-static INT32 config_cpu_speed;
-static INT32 spritesystem;
-static INT32 vblank;
-static INT32 irq_vectorbase;
-static INT32 graphics_mask[2];
-static INT32 nPrevScreenPos = 0;
-
-typedef struct _m107_layer m107_layer;
-struct _m107_layer
-{
- INT32 enable;
- INT32 wide;
- INT32 enable_rowscroll;
-
- UINT16 scrollx;
- UINT16 scrolly;
-
- UINT16 *scroll;
- UINT16 *vram;
-};
-
-static struct _m107_layer *m107_layers[4];
-
-enum { VECTOR_INIT, YM2151_ASSERT, YM2151_CLEAR, V30_ASSERT, V30_CLEAR };
-
-static struct BurnInputInfo FirebarrInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvButton + 2, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvButton + 0, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy1 + 3, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy1 + 2, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy1 + 1, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy1 + 0, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy1 + 7, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy1 + 6, "p1 fire 2" },
- {"P1 Button 3", BIT_DIGITAL, DrvJoy1 + 5, "p1 fire 3" },
-
- {"P2 Coin", BIT_DIGITAL, DrvButton + 3, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvButton + 1, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvJoy2 + 3, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy2 + 2, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy2 + 1, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy2 + 0, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy2 + 7, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy2 + 6, "p2 fire 2" },
- {"P2 Button 3", BIT_DIGITAL, DrvJoy2 + 5, "p2 fire 3" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service", BIT_DIGITAL, DrvButton + 4, "service" },
- {"Dip A", BIT_DIPSWITCH, DrvInput + 5, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvInput + 6, "dip" },
- {"Dip C", BIT_DIPSWITCH, DrvInput + 7, "dip" },
-};
-
-STDINPUTINFO(Firebarr)
-
-static struct BurnInputInfo Dsoccr94InputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvButton + 2, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvButton + 0, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy1 + 3, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy1 + 2, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy1 + 1, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy1 + 0, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy1 + 7, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy1 + 6, "p1 fire 2" },
- {"P1 Button 3", BIT_DIGITAL, DrvJoy1 + 5, "p1 fire 3" },
-
- {"P2 Coin", BIT_DIGITAL, DrvButton + 3, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvButton + 1, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvJoy2 + 3, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy2 + 2, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy2 + 1, "p2 left" } ,
- {"P2 Right", BIT_DIGITAL, DrvJoy2 + 0, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy2 + 7, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy2 + 6, "p2 fire 2" },
- {"P2 Button 3", BIT_DIGITAL, DrvJoy2 + 5, "p2 fire 3" },
-
- {"P3 Coin", BIT_DIGITAL, DrvJoy3 + 5, "p3 coin" },
- {"P3 Start", BIT_DIGITAL, DrvJoy3 + 4, "p3 start" },
- {"P3 Up", BIT_DIGITAL, DrvJoy3 + 3, "p3 up" },
- {"P3 Down", BIT_DIGITAL, DrvJoy3 + 2, "p3 down" },
- {"P3 Left", BIT_DIGITAL, DrvJoy3 + 1, "p3 left" },
- {"P3 Right", BIT_DIGITAL, DrvJoy3 + 0, "p3 right" },
- {"P3 Button 1", BIT_DIGITAL, DrvJoy3 + 7, "p3 fire 1" },
- {"P3 Button 2", BIT_DIGITAL, DrvJoy3 + 6, "p3 fire 2" },
-
- {"P4 Coin", BIT_DIGITAL, DrvJoy4 + 5, "p4 coin" },
- {"P4 Start", BIT_DIGITAL, DrvJoy4 + 4, "p4 start" },
- {"P4 Up", BIT_DIGITAL, DrvJoy4 + 3, "p4 up" },
- {"P4 Down", BIT_DIGITAL, DrvJoy4 + 2, "p4 down" },
- {"P4 Left", BIT_DIGITAL, DrvJoy4 + 1, "p4 left" },
- {"P4 Right", BIT_DIGITAL, DrvJoy4 + 0, "p4 right" },
- {"P4 Button 1", BIT_DIGITAL, DrvJoy4 + 5, "p4 fire 1" },
- {"P4 Button 2", BIT_DIGITAL, DrvJoy4 + 6, "p4 fire 2" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service", BIT_DIGITAL, DrvButton + 4, "service" },
- {"Dip A", BIT_DIPSWITCH, DrvInput + 5, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvInput + 6, "dip" },
- {"Dip C", BIT_DIPSWITCH, DrvInput + 7, "dip" },
-};
-
-STDINPUTINFO(Dsoccr94)
-
-static struct BurnDIPInfo FirebarrDIPList[]=
-{
- {0x14, 0xff, 0xff, 0xfb, NULL },
- {0x15, 0xff, 0xff, 0xa3, NULL },
- {0x16, 0xff, 0xff, 0xfd, NULL },
-
- {0 , 0xfe, 0 , 4, "Rapid Fire" },
- {0x14, 0x01, 0x0c, 0x00, "Button 1 Normal, Button 3 Rapid Fire" },
- {0x14, 0x01, 0x0c, 0x04, "Button 1 Rapid Fire, Button 3 No Function" },
- {0x14, 0x01, 0x0c, 0x08, "Off" },
- {0x14, 0x01, 0x0c, 0x0c, "Off" },
-
- {0 , 0xfe, 0 , 2, "Continuous Play" },
- {0x14, 0x01, 0x10, 0x10, "Off" },
- {0x14, 0x01, 0x10, 0x00, "On" },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x15, 0x01, 0x03, 0x00, "2" },
- {0x15, 0x01, 0x03, 0x03, "3" },
- {0x15, 0x01, 0x03, 0x02, "4" },
- {0x15, 0x01, 0x03, 0x01, "5" },
-
- {0 , 0xfe, 0 , 2, "Allow Continue" },
- {0x15, 0x01, 0x20, 0x00, "No" },
- {0x15, 0x01, 0x20, 0x20, "Yes" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x15, 0x01, 0x40, 0x40, "Off" },
- {0x15, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x15, 0x01, 0x80, 0x80, "Off" },
- {0x15, 0x01, 0x80, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x16, 0x01, 0x01, 0x01, "Off" },
- {0x16, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Coin Slots" },
- {0x16, 0x01, 0x04, 0x04, "Common" },
- {0x16, 0x01, 0x04, 0x00, "Separate" },
-
- {0 , 0xfe, 0 , 2, "Coin Mode" },
- {0x16, 0x01, 0x08, 0x08, "1" },
- {0x16, 0x01, 0x08, 0x00, "2" },
-
-
- {0 , 0xfe, 0 , 16, "Coinage" },
- {0x16, 0x01, 0xf0, 0xa0, "6 Coins 1 Credits" },
- {0x16, 0x01, 0xf0, 0xb0, "5 Coins 1 Credits" },
- {0x16, 0x01, 0xf0, 0xc0, "4 Coins 1 Credits" },
- {0x16, 0x01, 0xf0, 0xd0, "3 Coins 1 Credits" },
- {0x16, 0x01, 0xf0, 0xe0, "2 Coins 1 Credits" },
- {0x16, 0x01, 0xf0, 0x10, "2 Coins to Start/1 to Continue" },
- {0x16, 0x01, 0xf0, 0x30, "3 Coins 2 Credits" },
- {0x16, 0x01, 0xf0, 0x20, "4 Coins 3 Credits" },
- {0x16, 0x01, 0xf0, 0xf0, "1 Coin 1 Credits" },
- {0x16, 0x01, 0xf0, 0x40, "2 Coins 3 Credits" },
- {0x16, 0x01, 0xf0, 0x90, "1 Coin 2 Credits" },
- {0x16, 0x01, 0xf0, 0x80, "1 Coin 3 Credits" },
- {0x16, 0x01, 0xf0, 0x70, "1 Coin 4 Credits" },
- {0x16, 0x01, 0xf0, 0x60, "1 Coin 5 Credits" },
- {0x16, 0x01, 0xf0, 0x50, "1 Coin 6 Credits" },
- {0x16, 0x01, 0xf0, 0x00, "Free Play" },
-
- {0 , 0xfe, 0 , 4, "Coin A" },
- {0x16, 0x01, 0x30, 0x00, "5 Coins 1 Credits" },
- {0x16, 0x01, 0x30, 0x10, "3 Coins 1 Credits" },
- {0x16, 0x01, 0x30, 0x20, "2 Coins 1 Credits" },
- {0x16, 0x01, 0x30, 0x30, "1 Coin 1 Credits" },
-
- {0 , 0xfe, 0 , 4, "Coin B" },
- {0x16, 0x01, 0xc0, 0xc0, "1 Coin 2 Credits" },
- {0x16, 0x01, 0xc0, 0x80, "1 Coin 3 Credits" },
- {0x16, 0x01, 0xc0, 0x40, "1 Coin 5 Credits" },
- {0x16, 0x01, 0xc0, 0x00, "1 Coin 6 Credits" },
-};
-
-STDDIPINFO(Firebarr)
-
-static struct BurnDIPInfo Dsoccr94DIPList[]=
-{
- {0x24, 0xff, 0xff, 0xff, NULL },
- {0x25, 0xff, 0xff, 0xbf, NULL },
- {0x26, 0xff, 0xff, 0xfd, NULL },
-
- {0 , 0xfe, 0 , 4, "Time" },
- {0x25, 0x01, 0x03, 0x00, "1:30" },
- {0x25, 0x01, 0x03, 0x03, "2:00" },
- {0x25, 0x01, 0x03, 0x02, "2:30" },
- {0x25, 0x01, 0x03, 0x01, "3:00" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x25, 0x01, 0x0c, 0x00, "Very Easy" },
- {0x25, 0x01, 0x0c, 0x08, "Easy" },
- {0x25, 0x01, 0x0c, 0x0c, "Normal" },
- {0x25, 0x01, 0x0c, 0x04, "Hard" },
-
- {0 , 0xfe, 0 , 2, "Game Mode" },
- {0x25, 0x01, 0x10, 0x10, "Match Mode" },
- {0x25, 0x01, 0x10, 0x00, "Power Mode" },
-
- {0 , 0xfe, 0 , 2, "Starting Button" },
- {0x25, 0x01, 0x20, 0x00, "Button 1" },
- {0x25, 0x01, 0x20, 0x20, "Start Button" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x25, 0x01, 0x40, 0x40, "Off" },
- {0x25, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x25, 0x01, 0x80, 0x80, "Off" },
- {0x25, 0x01, 0x80, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x26, 0x01, 0x01, 0x01, "Off" },
- {0x26, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Coin Slots" },
- {0x26, 0x01, 0x04, 0x04, "Common" },
- {0x26, 0x01, 0x04, 0x00, "Separate" },
-
- {0 , 0xfe, 0 , 2, "Coin Mode" },
- {0x26, 0x01, 0x08, 0x08, "1" },
- {0x26, 0x01, 0x08, 0x00, "2" },
-
- {0 , 0xfe, 0 , 16, "Coinage" },
- {0x26, 0x01, 0xf0, 0xa0, "6 Coins 1 Credits" },
- {0x26, 0x01, 0xf0, 0xb0, "5 Coins 1 Credits" },
- {0x26, 0x01, 0xf0, 0xc0, "4 Coins 1 Credits" },
- {0x26, 0x01, 0xf0, 0xd0, "3 Coins 1 Credits" },
- {0x26, 0x01, 0xf0, 0xe0, "2 Coins 1 Credits" },
- {0x26, 0x01, 0xf0, 0x10, "2 Coins to Start/1 to Continue" },
- {0x26, 0x01, 0xf0, 0x30, "3 Coins 2 Credits" },
- {0x26, 0x01, 0xf0, 0x20, "4 Coins 3 Credits" },
- {0x26, 0x01, 0xf0, 0xf0, "1 Coin 1 Credits" },
- {0x26, 0x01, 0xf0, 0x40, "2 Coins 3 Credits" },
- {0x26, 0x01, 0xf0, 0x90, "1 Coin 2 Credits" },
- {0x26, 0x01, 0xf0, 0x80, "1 Coin 3 Credits" },
- {0x26, 0x01, 0xf0, 0x70, "1 Coin 4 Credits" },
- {0x26, 0x01, 0xf0, 0x60, "1 Coin 5 Credits" },
- {0x26, 0x01, 0xf0, 0x50, "1 Coin 6 Credits" },
- {0x26, 0x01, 0xf0, 0x00, "Free Play" },
-
- {0 , 0xfe, 0 , 4, "Coin A" },
- {0x26, 0x01, 0x30, 0x00, "5 Coins 1 Credits" },
- {0x26, 0x01, 0x30, 0x10, "3 Coins 1 Credits" },
- {0x26, 0x01, 0x30, 0x20, "2 Coins 1 Credits" },
- {0x26, 0x01, 0x30, 0x30, "1 Coin 1 Credits" },
-
- {0 , 0xfe, 0 , 4, "Coin B" },
- {0x26, 0x01, 0xc0, 0xc0, "1 Coin 2 Credits" },
- {0x26, 0x01, 0xc0, 0x80, "1 Coin 3 Credits" },
- {0x26, 0x01, 0xc0, 0x40, "1 Coin 5 Credits" },
- {0x26, 0x01, 0xc0, 0x00, "1 Coin 6 Credits" },
-};
-
-STDDIPINFO(Dsoccr94)
-
-inline static UINT32 CalcCol(INT32 offs)
-{
- INT32 nColour = DrvPalRAM[offs + 0] | (DrvPalRAM[offs + 1] << 8);
- INT32 r, g, b;
-
- r = (nColour & 0x001F) << 3;
- r |= r >> 5;
- g = (nColour & 0x03E0) >> 2;
- g |= g >> 5;
- b = (nColour & 0x7C00) >> 7;
- b |= b >> 5;
-
- return BurnHighCol(r, g, b, 0);
-}
-
-static void m107Bankswitch(INT32 data)
-{
- INT32 bank = 0x80000 + ((data >> 1) & 0x03) * 0x20000;
-
- nBankswitchData = data;
-
- VezMapArea(0xa0000, 0xbffff, 0, DrvV33ROM + bank);
- VezMapArea(0xa0000, 0xbffff, 2, DrvV33ROM + bank);
-}
-
-static void m107YM2151IRQHandler(INT32 nStatus)
-{
- if (VezGetActive() == -1) return;
-
- VezSetIRQLineAndVector(NEC_INPUT_LINE_INTP0, 0xff/*default*/, nStatus ? CPU_IRQSTATUS_ACK : CPU_IRQSTATUS_NONE);
- VezRun(100);
-}
-
-static UINT8 __fastcall m107ReadByte(UINT32 address)
-{
- switch (address)
- {
- case 0xf0000:
- case 0xf0001:
- case 0xf0002:
- case 0xf0003:
- case 0xf0004:
- case 0xf0005:
- return 0x00; // wpksoc
- }
-
-// bprintf (0, _T("rb: %5.5x\n"), address);
-
- return 0;
-}
-
-static void __fastcall m107WriteByte(UINT32 address, UINT8 data)
-{
- if ((address & 0xff000) == 0xf9000 ) {
- DrvPalRAM[ address - 0xf9000] = data;
- if (address & 1) {
- INT32 offs = (address - 0xf9000) >> 1;
- DrvPalette[offs] = CalcCol( offs << 1 );
- }
- return;
- }
-
-// bprintf (0, _T("wb: %5.5x, %2.2x\n"), address, data);
-}
-
-static UINT8 __fastcall m107ReadPort(UINT32 port)
-{
-// bprintf (0, _T("Rp: %2.2x\n"), port & 0xff);
-
- switch (port)
- {
- case 0x00: return DrvInput[0];
- case 0x01: return DrvInput[1];
- case 0x02: return (DrvInput[4] & 0x7f) | vblank;
- case 0x03: return DrvInput[7];
- case 0x04: return DrvInput[5];
- case 0x05: return DrvInput[6];
- case 0x06: return DrvInput[2];
- case 0x07: return DrvInput[3];
-
- case 0x08: VezSetIRQLineAndVector(0, (irq_vectorbase + 12)/4, CPU_IRQSTATUS_NONE); return sound_status[0];
- case 0x09: VezSetIRQLineAndVector(0, (irq_vectorbase + 12)/4, CPU_IRQSTATUS_NONE); return sound_status[1];
-
- case 0x18: return 0;
-
- case 0xc0:
- return 0x02; // wpksoc - required to boot?
-
- case 0xc1:
- return 0x02; //
-
- case 0xc2:
- case 0xc3:
- return 0x00; // wpksoc
-
- // default:
- // bprintf(PRINT_NORMAL, _T("Attempt to read byte value of port %x\n"), port);
- }
- return 0;
-}
-
-static void set_pf_info(INT32 layer)
-{
- struct _m107_layer *ptr = m107_layers[layer];
-
- INT32 data = (pf_control[layer][5] << 8) + pf_control[layer][4];
-
- ptr->enable = (~data >> 7) & 1;
- ptr->vram = (UINT16*)(DrvVidRAM + (((data >> 8) & 0x0f) * 0x1000));
- ptr->enable_rowscroll = data & 0x03;
-}
-
-static void set_pf_scroll(INT32 layer)
-{
- struct _m107_layer *ptr = m107_layers[layer];
-
- ptr->scrollx = (pf_control[layer][2] << 0) | (pf_control[layer][3] << 8);
- ptr->scrolly = (pf_control[layer][0] << 0) | (pf_control[layer][1] << 8);
-}
-
-static void __fastcall m107WritePort(UINT32 port, UINT8 data)
-{
-// bprintf (0, _T("wp: %2.2x, %2.2x\n"), port & 0xff, data);
-
- switch (port)
- {
- case 0x00:
- sound_latch[0] = data;
- VezClose();
- VezOpen(1);
- VezSetIRQLineAndVector(NEC_INPUT_LINE_INTP1, 0xff/*default*/, CPU_IRQSTATUS_ACK);
- VezRun(10);
- VezSetIRQLineAndVector(NEC_INPUT_LINE_INTP1, 0xff/*default*/, CPU_IRQSTATUS_NONE);
- VezRun(10);
- VezClose();
- VezOpen(0);
- return;
-
- case 0x02:
- case 0x03:
- //m107_coincounter_w
- return;
-
- case 0x06:
- if (has_bankswitch) {
- m107Bankswitch(data);
- }
- return;
-
- case 0x80: pf_control[0][0] = data; set_pf_scroll(0); return;
- case 0x81: pf_control[0][1] = data; set_pf_scroll(0); return;
- case 0x82: pf_control[0][2] = data; set_pf_scroll(0); return;
- case 0x83: pf_control[0][3] = data; set_pf_scroll(0); return;
- case 0x84: pf_control[1][0] = data; set_pf_scroll(1); return;
- case 0x85: pf_control[1][1] = data; set_pf_scroll(1); return;
- case 0x86: pf_control[1][2] = data; set_pf_scroll(1); return;
- case 0x87: pf_control[1][3] = data; set_pf_scroll(1); return;
- case 0x88: pf_control[2][0] = data; set_pf_scroll(2); return;
- case 0x89: pf_control[2][1] = data; set_pf_scroll(2); return;
- case 0x8a: pf_control[2][2] = data; set_pf_scroll(2); return;
- case 0x8b: pf_control[2][3] = data; set_pf_scroll(2); return;
- case 0x8c: pf_control[3][0] = data; set_pf_scroll(3); return;
- case 0x8d: pf_control[3][1] = data; set_pf_scroll(3); return;
- case 0x8e: pf_control[3][2] = data; set_pf_scroll(3); return;
- case 0x8f: pf_control[3][3] = data; set_pf_scroll(3); return;
- case 0x90: pf_control[0][4] = data; return;
- case 0x91: pf_control[0][5] = data; set_pf_info(0); return;
- case 0x92: pf_control[1][4] = data; return;
- case 0x93: pf_control[1][5] = data; set_pf_info(1); return;
- case 0x94: pf_control[2][4] = data; return;
- case 0x95: pf_control[2][5] = data; set_pf_info(2); return;
- case 0x96: pf_control[3][4] = data; return;
- case 0x97: pf_control[3][5] = data; set_pf_info(3); return;
- case 0x98: pf_control[0][6] = data; return;
- case 0x99: pf_control[0][7] = data; return;
- case 0x9a: pf_control[1][6] = data; return;
- case 0x9b: pf_control[1][7] = data; return;
- case 0x9c: pf_control[2][6] = data; return;
- case 0x9d: pf_control[2][7] = data; return;
- case 0x9e: pf_control[3][6] = data;
- raster_irq_position = ((pf_control[3][7]<<8) | pf_control[3][6]) - 128;
- return;
- case 0x9f: pf_control[3][7] = data;
- raster_irq_position = ((pf_control[3][7]<<8) | pf_control[3][6]) - 128;
- return;
-
- case 0xb0:
- memcpy (DrvSprBuf, DrvSprRAM, 0x1000);
- return;
-
- case 0xb1:
- sprite_enable = ~data & 0x10;
- return;
-
- case 0xc0:
- case 0xc1:// sound reset
- VezClose();
- VezOpen(1);
- sound_cpu_reset = (data) ? 0 : 1;
- if (sound_cpu_reset) {
- VezReset();
- }
- VezClose();
- VezOpen(0);
- return;
-
- // default:
- // bprintf(PRINT_NORMAL, _T("Attempt to write byte value %x to port %x\n"), data, port);
- }
-}
-
-static UINT8 __fastcall m107SndReadByte(UINT32 address)
-{
- if ((address & 0xfffc0) == 0xa8000) {
- return iremga20_read( 0, (address & 0x0003f) / 2 );
- }
-
- switch (address)
- {
- case 0xa8042:
- return BurnYM2151ReadStatus();
-
- case 0xa8044:
- return sound_latch[0];
-
- case 0xa8045:
- return 0xff; // soundlatch high bits, always 0xff
-
- // default:
- // bprintf(PRINT_NORMAL, _T("V30 Attempt to read byte value of location %x\n"), address);
- }
- return 0;
-}
-
-static void __fastcall m107SndWriteByte(UINT32 address, UINT8 data)
-{
- if ((address & 0xfffc0) == 0xa8000) {
- iremga20_write( 0, (address & 0x0003f) / 2, data );
- return;
- }
-
- switch (address)
- {
- case 0xa8040:
- BurnYM2151SelectRegister(data);
- return;
-
- case 0xa8042:
- BurnYM2151WriteRegister(data);
- return;
-
- case 0xa8044:
- // VezSetIRQLineAndVector(NEC_INPUT_LINE_INTP1, 0xff/*default*/, CPU_IRQSTATUS_NONE);
- return;
-
- case 0xa8046:
- sound_status[0] = data;
- VezClose();
- VezOpen(0);
- VezSetIRQLineAndVector(0, (irq_vectorbase + 12)/4, CPU_IRQSTATUS_ACK);
- VezClose();
- VezOpen(1);
- return;
-
- // default:
- // bprintf(PRINT_NORMAL, _T("V30 Attempt to write byte value %x to location %x\n"), data, address);
- }
-}
-
-static INT32 DrvDoReset()
-{
- memset (RamStart, 0, RamEnd - RamStart);
-
- VezOpen(0);
- VezReset();
- if (has_bankswitch) m107Bankswitch(0);
- VezClose();
-
- VezOpen(1);
- VezReset();
- VezClose();
-
- BurnYM2151Reset();
- iremga20_reset(0);
-
- for (INT32 i = 0; i < 4; i++)
- {
- set_pf_info(i);
- set_pf_scroll(i);
- }
-
- sprite_enable = 0;
- raster_irq_position = -1;
- sound_cpu_reset = 0;
-
- return 0;
-}
-
-static INT32 MemIndex(INT32 gfxlen1, INT32 gfxlen2)
-{
- UINT8 *Next; Next = Mem;
- DrvV33ROM = Next; Next += 0x100000;
- DrvV30ROM = Next; Next += 0x020000;
- DrvGfxROM0 = Next; Next += gfxlen1 * 2;
- DrvGfxROM1 = Next; Next += gfxlen2 * 2;
-
- if (spritesystem == 1) {
- DrvSprTable = Next; Next += 0x040000;
- }
-
- DrvSndROM = Next; Next += 0x100000;
-
- RamPrioBitmap = Next; Next += 320 * 240;
-
- RamStart = Next;
-
- DrvSprRAM = Next; Next += 0x001000;
- DrvSprBuf = Next; Next += 0x001000;
- DrvVidRAM = Next; Next += 0x010000;
- DrvV33RAM = Next; Next += 0x010000;
- DrvV30RAM = Next; Next += 0x004000;
- DrvPalRAM = Next; Next += 0x001000;
-
- sound_status = Next; Next += 0x000004; // 2
- sound_latch = Next; Next += 0x000004; // 1
-
- pf_control[0] = Next; Next += 0x000008;
- pf_control[1] = Next; Next += 0x000008;
- pf_control[2] = Next; Next += 0x000008;
- pf_control[3] = Next; Next += 0x000008;
-
- m107_layers[0] = (struct _m107_layer*)Next; Next += sizeof(struct _m107_layer);
- m107_layers[1] = (struct _m107_layer*)Next; Next += sizeof(struct _m107_layer);
- m107_layers[2] = (struct _m107_layer*)Next; Next += sizeof(struct _m107_layer);
- m107_layers[3] = (struct _m107_layer*)Next; Next += sizeof(struct _m107_layer);
-
- RamEnd = Next;
-
- DrvPalette = (UINT32 *) Next; Next += 0x0800 * sizeof(UINT32);
-
- MemEnd = Next;
- return 0;
-}
-
-static void DrvGfxExpand(UINT8 *rom, INT32 len, INT32 type)
-{
- INT32 Plane0[4] = { 8, 0, 24, 16 };
- INT32 XOffs0[8] = { STEP8(0,1) };
- INT32 YOffs0[8] = { STEP8(0,32) };
- INT32 Plane1[4] = { RGN_FRAC(len, 3,4), RGN_FRAC(len, 2,4), RGN_FRAC(len,1,4), RGN_FRAC(len,0,4) };
- INT32 XOffs1[16] = { STEP8(0,1), STEP8(128,1) };
- INT32 YOffs1[16] = { STEP16(0,8) };
- INT32 XOffs2[16] = { STEP8(8,1), STEP8(0,1) };
- INT32 YOffs2[16] = { STEP16(0,16) };
-
- UINT8 *tmp = (UINT8*)BurnMalloc(len);
- if (tmp == NULL) {
- return;
- }
-
- memcpy (tmp, rom, len);
-
- if (type == 0) GfxDecode((len * 2) / 0x040, 4, 8, 8, Plane0, XOffs0, YOffs0, 0x100, tmp, rom);
- if (type == 1) GfxDecode((len * 2) / 0x100, 4, 16, 16, Plane1, XOffs1, YOffs1, 0x100, tmp, rom);
- if (type == 2) GfxDecode((len * 2) / 0x100, 4, 16, 16, Plane1, XOffs2, YOffs2, 0x100, tmp, rom);
-
- BurnFree(tmp);
-}
-
-static INT32 DrvInit(INT32 (*pRomLoadCallback)(), const UINT8 *sound_decrypt_table, INT32 gfxdecode, INT32 vectorbase, INT32 gfxlen1, INT32 gfxlen2)
-{
- Mem = NULL;
- MemIndex(gfxlen1, gfxlen2);
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((Mem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(Mem, 0, nLen);
- MemIndex(gfxlen1, gfxlen2);
-
- if (pRomLoadCallback)
- {
- if (pRomLoadCallback()) return 1;
-
- DrvGfxExpand(DrvGfxROM0, gfxlen1, 0);
- DrvGfxExpand(DrvGfxROM1, gfxlen2, gfxdecode);
- }
-
- {
- VezInit(0, V33_TYPE);
- VezInit(1, V35_TYPE, 14318180 /*before divider*/);
-
- VezOpen(0);
- VezMapArea(0x00000, 0x9ffff, 0, DrvV33ROM);
- VezMapArea(0x00000, 0x9ffff, 2, DrvV33ROM);
- VezMapArea(0xa0000, 0xbffff, 0, DrvV33ROM + 0xa0000);
- VezMapArea(0xa0000, 0xbffff, 2, DrvV33ROM + 0xa0000);
- VezMapArea(0xd0000, 0xdffff, 0, DrvVidRAM);
- VezMapArea(0xd0000, 0xdffff, 1, DrvVidRAM);
- VezMapArea(0xd0000, 0xdffff, 2, DrvVidRAM);
- VezMapArea(0xe0000, 0xeffff, 0, DrvV33RAM);
- VezMapArea(0xe0000, 0xeffff, 1, DrvV33RAM);
- VezMapArea(0xe0000, 0xeffff, 2, DrvV33RAM);
- VezMapArea(0xf8000, 0xf8fff, 0, DrvSprRAM);
- VezMapArea(0xf8000, 0xf8fff, 1, DrvSprRAM);
- VezMapArea(0xf9000, 0xf9fff, 0, DrvPalRAM);
- VezMapArea(0xff800, 0xfffff, 0, DrvV33ROM + 0x7f800);
- VezMapArea(0xff800, 0xfffff, 2, DrvV33ROM + 0x7f800);
- VezSetReadHandler(m107ReadByte);
- VezSetWriteHandler(m107WriteByte);
- VezSetReadPort(m107ReadPort);
- VezSetWritePort(m107WritePort);
- VezClose();
-
- VezOpen(1);
- if (sound_decrypt_table != NULL) {
- VezSetDecode((UINT8*)sound_decrypt_table);
- }
- VezMapArea(0x00000, 0x1ffff, 0, DrvV30ROM);
- VezMapArea(0x00000, 0x1ffff, 2, DrvV30ROM);
- VezMapArea(0xa0000, 0xa3fff, 0, DrvV30RAM);
- VezMapArea(0xa0000, 0xa3fff, 1, DrvV30RAM);
- VezMapArea(0xa0000, 0xa3fff, 2, DrvV30RAM);
- VezMapArea(0xff800, 0xfffff, 0, DrvV30ROM + 0x1f800);
- VezMapArea(0xff800, 0xfffff, 2, DrvV30ROM + 0x1f800);
- VezSetReadHandler(m107SndReadByte);
- VezSetWriteHandler(m107SndWriteByte);
- VezClose();
- }
-
- graphics_mask[0] = ((gfxlen1 * 2) - 1) / (8 * 8);
- graphics_mask[1] = ((gfxlen2 * 2) - 1) / (16 * 16);
-
- irq_vectorbase = vectorbase;
-
- BurnYM2151Init(3579545);
- YM2151SetIrqHandler(0, &m107YM2151IRQHandler);
- BurnYM2151SetAllRoutes(0.40, BURN_SND_ROUTE_BOTH);
-
- iremga20_init(0, DrvSndROM, 0x100000, 3579545);
- itemga20_set_route(0, 1.00, BURN_SND_ROUTE_BOTH);
-
- GenericTilesInit();
-
- DrvDoReset();
-
- return 0;
-}
-
-static INT32 DrvExit()
-{
- GenericTilesExit();
-
- BurnYM2151Exit();
- iremga20_exit();
-
- VezExit();
-
- BurnFree(Mem);
-
- nPrevScreenPos = 0;
- has_bankswitch = 0;
-
- return 0;
-}
-
-static void RenderTilePrio(UINT16 *dest, UINT8 *gfx, INT32 code, INT32 color, INT32 sx, INT32 sy, INT32 flipx, INT32 flipy, INT32 width, INT32 height, UINT8 *pri, INT32 prio)
-{
- if (sx <= (0-width) || sx >= nScreenWidth || sy <= (0-height) || sy >= nScreenHeight) return;
-
- INT32 flip = 0;
- if (flipy) flip |= (height - 1) * width;
- if (flipx) flip |= width - 1;
-
- gfx += code * width * height;
-
- for (INT32 y = 0; y < height; y++, sy++) {
- if (sy < 0 || sy >= nScreenHeight) continue;
-
- for (INT32 x = 0; x < width; x++, sx++) {
- if (sx < 0 || sx >= nScreenWidth) continue;
-
- INT32 pxl = gfx[((y * width) + x) ^ flip];
-
- if (pxl == 0) continue;
-
- if ((prio & (1 << pri[sy * nScreenWidth + sx])) == 0 && pri[sy * nScreenWidth + sx] < 0x80) {
- dest[sy * nScreenWidth + sx] = pxl | color;
- pri[sy * nScreenWidth + sx] |= 0x80;
- }
- }
-
- sx -= width;
- }
-}
-
-static void draw_sprites()
-{
- if (sprite_enable == 0) return;
-
- UINT16 *ram = (UINT16*)DrvSprBuf;
- int offs;
- UINT8 *rom = DrvSprTable;
-
- for (offs = 0;offs < 0x800;offs += 4)
- {
- int x,y,sprite,colour,fx,fy,y_multi,i,s_ptr,pri_mask;
-
- pri_mask = (!(ram[offs+2]&0x80)) ? 2 : 0;
-
- y=ram[offs+0] + 8;
- x=ram[offs+3];
- x&=0x1ff;
- y&=0x1ff;
-
- if (x==0 || y==0) continue; /* offscreen */
-
- sprite=ram[offs+1]&0x7fff;
-
- x = x - 16;
- y = 384 - 16 - y;
-
- colour=ram[offs+2]&0x7f;
- fx=(ram[offs+2]>>8)&0x1;
- fy=(ram[offs+2]>>8)&0x2;
- y_multi=(ram[offs+0]>>11)&0x3;
-
- if (spritesystem == 0)
- {
- y_multi=1 << y_multi; /* 1, 2, 4 or 8 */
-
- s_ptr = 0;
- if (!fy) s_ptr+=y_multi-1;
-
- for (i=0; i>1)&0x3);
- if (fx) xdisp = -xdisp-16;
- if (fy) ydisp = -ydisp - (16*y_multi-1);
- if (!ffy) sprite+=y_multi-1;
- for (i=0; ienable == 0) return;
-
- INT32 wide = 64;
- INT32 scrolly = (ptr->scrolly + 136) & 0x1ff;
- INT32 scrollx = ((ptr->scrollx) + 80) + (3 - 2 * layer);
-
- INT32 transparency = (forcelayer & 2) ? ~0 : 0;
- INT32 priority = forcelayer & 1;
-
- UINT16 *xscroll = (UINT16*)(DrvVidRAM + (0xe000 + 0x200 * layer));
- UINT16 *yscroll = (UINT16*)(DrvVidRAM + (0xe800 + 0x200 * layer));
-
- for (INT32 sy = start; sy < finish; sy++)
- {
- UINT16 *dest = pTransDraw + (sy * nScreenWidth);
- UINT8 *pri = RamPrioBitmap + (sy * nScreenWidth);
-
- INT32 scrolly_1 = (scrolly + sy) & 0x1ff;
- if (ptr->enable_rowscroll & 2) scrolly_1 = (scrolly_1 + BURN_ENDIAN_SWAP_INT16(yscroll[sy+8])) & 0x1ff;
-
- INT32 scrollx_1 = scrollx;
- if (ptr->enable_rowscroll & 1) scrollx_1 = (scrollx_1 + BURN_ENDIAN_SWAP_INT16(xscroll[((scrolly_1 + 136 + 0xff80)-(scrolly)) & 0x1ff])) & 0x1ff;
-
- INT32 romoff_1 = (scrolly_1 & 0x07) << 3;
-
- for (INT32 sx = 0; sx < nScreenWidth + 8; sx+=8)
- {
- INT32 sxx = (scrollx_1 + sx) & 0x1ff;
-
- INT32 offs = ((scrolly_1 / 8) * wide) + (((sxx) / 8) & (wide - 1));
-
- INT32 attr = BURN_ENDIAN_SWAP_INT16(ptr->vram[(offs * 2) + 1]);
-
- INT32 group = (attr >> 9) & 1;
-
- if (priority == group)
- {
- INT32 code = BURN_ENDIAN_SWAP_INT16(ptr->vram[(offs * 2) + 0]) | ((attr & 0x1000) << 4);
-
- if (code == 0 && transparency == 0) continue; // skip blank tiles
-
- INT32 color = (attr & 0x007f) << 4;
-
- INT32 x_xor = 0;
- INT32 romoff = romoff_1;
- if (attr & 0x0800) romoff ^= 0x38; // flipy
- if (attr & 0x0400) x_xor = 7; // flipx
-
- UINT8 *rom = DrvGfxROM0 + ((code & graphics_mask[0]) * 0x40) + romoff;
-
- INT32 xx = sx - (scrollx_1&0x7);
-
- for (INT32 x = 0; x < 8; x++, xx++) {
- if (xx < 0 || xx >= nScreenWidth) continue;
-
- INT32 pxl = rom[x ^ x_xor];
- if (pxl == transparency) continue;
-
- dest[xx] = pxl | color;
- pri[xx] = group;
- }
- }
- }
- }
-}
-
-static void DrawLayers(INT32 start, INT32 finish)
-{
- memset (RamPrioBitmap + (start * nScreenWidth), 0, nScreenWidth * (finish - start)); // clear priority
-
- if (~pf_control[3][4] & 0x80) {
-
- if (~nBurnLayer & 8) memset (pTransDraw + (start * nScreenWidth), 0, nScreenWidth * (finish - start) * sizeof(INT16));
-
- if (nBurnLayer & 8) draw_layer_byline(start, finish, 3, 0|2);
- if (nBurnLayer & 8) draw_layer_byline(start, finish, 3, 1|2);
-
- if (nBurnLayer & 4) draw_layer_byline(start, finish, 2, 0);
- } else {
- if (~nBurnLayer & 4) memset (pTransDraw + (start * nScreenWidth), 0, nScreenWidth * (finish - start) * sizeof(INT16));
-
- if (nBurnLayer & 4) draw_layer_byline(start, finish, 2, 0 | 2);
- }
-
- if (nBurnLayer & 2) draw_layer_byline(start, finish, 1, 0);
- if (nBurnLayer & 1) draw_layer_byline(start, finish, 0, 0);
- if (nSpriteEnable & 4) draw_layer_byline(start, finish, 2, 1);
- if (nSpriteEnable & 2) draw_layer_byline(start, finish, 1, 1);
- if (nSpriteEnable & 1) draw_layer_byline(start, finish, 0, 1);
-}
-
-static INT32 DrvDraw()
-{
- if (bRecalcPalette) {
- for (INT32 i=0; i<0x800;i++)
- DrvPalette[i] = CalcCol(i<<1);
- bRecalcPalette = 0;
- }
-// DrawLayers(0, nScreenHeight);
-
- if (nBurnLayer & 8) draw_sprites();
-
- BurnTransferCopy(DrvPalette);
-
- return 0;
-}
-
-static INT32 DrvReDraw()
-{
- if (bRecalcPalette) {
- for (INT32 i=0; i<0x800;i++)
- DrvPalette[i] = CalcCol(i<<1);
- bRecalcPalette = 0;
- }
-
- BurnTransferClear();
-
- DrawLayers(0, nScreenHeight);
-
- if (nBurnLayer & 8) draw_sprites();
-
- BurnTransferCopy(DrvPalette);
-
- return 0;
-}
-
-static void scanline_interrupts(INT32 scanline)
-{
- if (scanline == raster_irq_position) {
-
- if (scanline>=8 && scanline < 248 && nPrevScreenPos != (scanline-8)+1) {
- if (nPrevScreenPos >= 0 && nPrevScreenPos <= 239)
- DrawLayers(nPrevScreenPos, (scanline-8)+1);
- nPrevScreenPos = (scanline-8)+1;
- }
-
- VezSetIRQLineAndVector(0, (irq_vectorbase + 8)/4, CPU_IRQSTATUS_ACK);
- VezRun(10);
- VezSetIRQLineAndVector(0, (irq_vectorbase + 8)/4, CPU_IRQSTATUS_NONE);
-
- }
- else if (scanline == 248) // vblank
- {
- vblank = 0;
-
- if (nPrevScreenPos != 240) {
- DrawLayers(nPrevScreenPos, 240);
- }
- nPrevScreenPos = 0;
-
- if (pBurnDraw) {
- DrvDraw();
- // DrvReDraw();
- }
-
- VezSetIRQLineAndVector(0, (irq_vectorbase + 0)/4, CPU_IRQSTATUS_ACK);
- VezRun(10);
- VezSetIRQLineAndVector(0, (irq_vectorbase + 0)/4, CPU_IRQSTATUS_NONE);
- } else if (scanline == 8) {
- vblank = 0x80;
- }
-}
-
-static INT32 DrvFrame()
-{
- if (DrvReset) {
- DrvDoReset();
- }
-
- VezNewFrame();
-
- {
- memset (DrvInput, 0xff, 5);
-
- for (INT32 i = 0; i < 8; i++) {
- DrvInput[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInput[1] ^= (DrvJoy2[i] & 1) << i;
- DrvInput[2] ^= (DrvJoy3[i] & 1) << i;
- DrvInput[3] ^= (DrvJoy4[i] & 1) << i;
- DrvInput[4] ^= (DrvButton[i] & 1) << i;
- }
- }
-
- INT32 nInterleave = 256; // scanlines
- INT32 nCyclesTotal[2] = { 0, 0 };
- INT32 nCyclesDone[2] = { 0, 0 };
-
- INT32 nSoundBufferPos = 0;
- nCyclesTotal[0] = (INT32)((INT64)(config_cpu_speed / 60) * nBurnCPUSpeedAdjust / 0x0100);
- nCyclesTotal[1] = (INT32)((INT64)(7159090 / 60) * nBurnCPUSpeedAdjust / 0x0100);
-
- if (pBurnSoundOut) {
- memset (pBurnSoundOut, 0, nBurnSoundLen * 2 * sizeof(INT16));
- }
-
- nInterleave = 256 * 8; // * 8 for tight sync
-
- vblank = 0;
-
- for (INT32 i = 0; i < nInterleave; i++)
- {
- VezOpen(0);
- INT32 segment = nCyclesTotal[0] / nInterleave;
- nCyclesDone[0] += VezRun(segment);
- if ((i&7)==7) scanline_interrupts(i/8); // update at hblank?
-
- segment = (VezTotalCycles() * 7159) / (config_cpu_speed / 1000);
-
- VezClose();
-
- VezOpen(1);
-
- {
- if (sound_cpu_reset) {
- VezIdle(segment - VezTotalCycles());
- } else {
- nCyclesDone[1] += VezRun(segment - VezTotalCycles());
- }
- }
-
- if (pBurnSoundOut && (i&7)==7) {
- INT32 nSegmentLength = nBurnSoundLen / (nInterleave / 8);
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
-
- BurnYM2151Render(pSoundBuf, nSegmentLength);
- iremga20_update(0, pSoundBuf, nSegmentLength);
-
- nSoundBufferPos += nSegmentLength;
- }
-
- VezClose();
- }
-
- VezOpen(1);
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
- if (nSegmentLength) {
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- BurnYM2151Render(pSoundBuf, nSegmentLength);
- iremga20_update(0, pSoundBuf, nSegmentLength);
- }
- }
-
- VezClose();
-
- return 0;
-}
-
-static INT32 DrvScan(INT32 nAction,INT32 *pnMin)
-{
- if (pnMin)
- {
- *pnMin = 0x029671;
- }
-
- struct BurnArea ba;
-
- if (nAction & ACB_MEMORY_RAM)
- {
- memset(&ba, 0, sizeof(ba));
- ba.Data = RamStart;
- ba.nLen = RamEnd-RamStart;
- ba.szName = "All Ram";
- BurnAcb(&ba);
- }
-
- if (nAction & ACB_DRIVER_DATA)
- {
- VezScan(nAction);
-
- iremga20_scan(0, nAction, pnMin);
- BurnYM2151Scan(nAction);
-
- SCAN_VAR(raster_irq_position);
- SCAN_VAR(sound_cpu_reset);
- SCAN_VAR(sprite_enable);
- SCAN_VAR(nBankswitchData);
- }
-
- if (nAction & ACB_WRITE) {
- bRecalcPalette = 1;
-
- for (INT32 i = 0; i < 4; i++) {
- set_pf_scroll(i);
- set_pf_info(i);
- }
-
- if (has_bankswitch)
- {
- VezOpen(0);
- m107Bankswitch(nBankswitchData);
- VezClose();
- }
-
- VezOpen(1);
- m107YM2151IRQHandler(0);
- VezClose();
- }
-
- return 0;
-}
-
-
-
-// Air Assault (World)
-
-static struct BurnRomInfo airassRomDesc[] = {
- { "f4-a-h0-etc.h0", 0x040000, 0x038f2cbd, 1 | BRF_PRG | BRF_ESS }, // 0 V33 Code
- { "f4-a-l0-etc.l0", 0x040000, 0xd3eb7842, 1 | BRF_PRG | BRF_ESS }, // 1
- { "f4-a-h1-ss.h1", 0x020000, 0x4cb1c9ae, 1 | BRF_PRG | BRF_ESS }, // 2
- { "f4-a-l1-ss.l1", 0x020000, 0x1ddd192d, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "f4-b-sh0-c.sh0", 0x010000, 0x31c05c0d, 2 | BRF_PRG | BRF_ESS }, // 4 V35 Code
- { "f4-b-sl0-c.sl0", 0x010000, 0x60a0d33a, 2 | BRF_PRG | BRF_ESS }, // 5
-
- { "w45.c00", 0x100000, 0x2aab419e, 3 | BRF_GRA }, // 6 Background Tiles
- { "w46.c10", 0x100000, 0xd6e5c910, 3 | BRF_GRA }, // 7
-
- { "w47.000", 0x100000, 0x72e1a253, 4 | BRF_GRA }, // 8 Sprite Tiles
- { "w48.010", 0x100000, 0x1746b7f6, 4 | BRF_GRA }, // 9
- { "w49.020", 0x100000, 0x17b5caf2, 4 | BRF_GRA }, // 10
- { "w50.030", 0x100000, 0x63e4bec3, 4 | BRF_GRA }, // 11
-
- { "f4-b-drh-.drh", 0x020000, 0x12001372, 5 | BRF_GRA }, // 12 Sprite Tables
- { "f4-b-drl-.drl", 0x020000, 0x08cb7533, 5 | BRF_GRA }, // 13
-
- { "w96.da0", 0x080000, 0x7a493e2e, 6 | BRF_SND }, // 14 Irem GA20 Samples
-};
-
-STD_ROM_PICK(airass)
-STD_ROM_FN(airass)
-
-static INT32 airassRomLoad()
-{
- if (BurnLoadRom(DrvV33ROM + 0x000001, 0, 2)) return 1;
- if (BurnLoadRom(DrvV33ROM + 0x000000, 1, 2)) return 1;
- if (BurnLoadRom(DrvV33ROM + 0x080001, 2, 2)) return 1;
- if (BurnLoadRom(DrvV33ROM + 0x080000, 3, 2)) return 1;
-
- if (BurnLoadRom(DrvV30ROM + 0x000001, 4, 2)) return 1;
- if (BurnLoadRom(DrvV30ROM + 0x000000, 5, 2)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x000000, 6, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x000001, 7, 2)) return 1;
-
- if (BurnLoadRom(DrvGfxROM1 + 0x000000, 8, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x100000, 9, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x200000, 10, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x300000, 11, 1)) return 1;
-
- if (BurnLoadRom(DrvSprTable + 0x00001, 12, 2)) return 1;
- if (BurnLoadRom(DrvSprTable + 0x00000, 13, 2)) return 1;
-
- if (BurnLoadRom(DrvSndROM + 0x000000, 14, 1)) return 1;
-
- return 0;
-}
-
-static INT32 airassInit()
-{
- spritesystem = 1;
- config_cpu_speed = 14000000;
- return DrvInit(airassRomLoad, gunforce_decryption_table, 1, 0x20, 0x200000, 0x400000);
-}
-
-struct BurnDriver BurnDrvAirass = {
- "airass", NULL, NULL, NULL, "1993",
- "Air Assault (World)\0", NULL, "Irem", "M107",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL, 2, HARDWARE_IREM_MISC, GBF_VERSHOOT, 0,
- NULL, airassRomInfo, airassRomName, NULL, NULL, FirebarrInputInfo, FirebarrDIPInfo,
- airassInit, DrvExit, DrvFrame, DrvReDraw, DrvScan, &bRecalcPalette, 0x800,
- 240, 320, 3, 4
-};
-
-
-// Fire Barrel (Japan)
-
-static struct BurnRomInfo firebarrRomDesc[] = {
- { "f4-a-h0-c.h0", 0x40000, 0x2aa5676e, 1 | BRF_PRG | BRF_ESS }, // 0 V33 Code
- { "f4-a-l0-c.l0", 0x40000, 0x42f75d59, 1 | BRF_PRG | BRF_ESS }, // 1
- { "f4-a-h1-c.h1", 0x20000, 0xbb7f6968, 1 | BRF_PRG | BRF_ESS }, // 2
- { "f4-a-l1-c.l1", 0x20000, 0x9d57edd6, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "f4-b-sh0-b.sh0", 0x10000, 0x30a8e232, 2 | BRF_PRG | BRF_ESS }, // 4 V35 Code
- { "f4-b-sl0-b.sl0", 0x10000, 0x204b5f1f, 2 | BRF_PRG | BRF_ESS }, // 5
-
- { "f4-c00.c00", 0x80000, 0x50cab384, 3 | BRF_GRA }, // 6 Background Tiles
- { "f4-c10.c10", 0x80000, 0x330c6df2, 3 | BRF_GRA }, // 7
- { "f4-c01.c01", 0x80000, 0x12a698c8, 3 | BRF_GRA }, // 8
- { "f4-c11.c11", 0x80000, 0x3f9add18, 3 | BRF_GRA }, // 9
-
- { "f4-000.000", 0x80000, 0x920deee9, 4 | BRF_GRA }, // 10 Sprite Tiles
- { "f4-001.001", 0x80000, 0xe5725eaf, 4 | BRF_GRA }, // 11
- { "f4-010.010", 0x80000, 0x3505d185, 4 | BRF_GRA }, // 12
- { "f4-011.011", 0x80000, 0x1912682f, 4 | BRF_GRA }, // 13
- { "f4-020.020", 0x80000, 0xec130b8e, 4 | BRF_GRA }, // 14
- { "f4-021.021", 0x80000, 0x8dd384dc, 4 | BRF_GRA }, // 15
- { "f4-030.030", 0x80000, 0x7e7b30cd, 4 | BRF_GRA }, // 16
- { "f4-031.031", 0x80000, 0x83ac56c5, 4 | BRF_GRA }, // 17
-
- { "f4-b-drh-.drh", 0x20000, 0x12001372, 5 | BRF_GRA }, // 18 Sprite Tables
- { "f4-b-drl-.drl", 0x20000, 0x08cb7533, 5 | BRF_GRA }, // 19
-
- { "f4-b-da0.da0", 0x80000, 0x7a493e2e, 6 | BRF_SND }, // 20 Irem GA20 Samples
-};
-
-STD_ROM_PICK(firebarr)
-STD_ROM_FN(firebarr)
-
-static INT32 firebarrRomLoad()
-{
- if (BurnLoadRom(DrvV33ROM + 0x000001, 0, 2)) return 1;
- if (BurnLoadRom(DrvV33ROM + 0x000000, 1, 2)) return 1;
- if (BurnLoadRom(DrvV33ROM + 0x080001, 2, 2)) return 1;
- if (BurnLoadRom(DrvV33ROM + 0x080000, 3, 2)) return 1;
-
- if (BurnLoadRom(DrvV30ROM + 0x000001, 4, 2)) return 1;
- if (BurnLoadRom(DrvV30ROM + 0x000000, 5, 2)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x000000, 6, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x000001, 7, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x100000, 8, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x100001, 9, 2)) return 1;
-
- if (BurnLoadRom(DrvGfxROM1 + 0x000000, 10, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x000001, 11, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x100000, 12, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x100001, 13, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x200000, 14, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x200001, 15, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x300000, 16, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x300001, 17, 2)) return 1;
-
- if (BurnLoadRom(DrvSprTable + 0x00001, 18, 2)) return 1;
- if (BurnLoadRom(DrvSprTable + 0x00000, 19, 2)) return 1;
-
- if (BurnLoadRom(DrvSndROM + 0x000000, 20, 1)) return 1;
-
- return 0;
-}
-
-static INT32 firebarrInit()
-{
- spritesystem = 1;
- config_cpu_speed = 14000000;
- return DrvInit(firebarrRomLoad, rtypeleo_decryption_table, 2, 0x20, 0x200000, 0x400000);
-}
-
-struct BurnDriver BurnDrvFirebarr = {
- "firebarr", "airass", NULL, NULL, "1993",
- "Fire Barrel (Japan)\0", NULL, "Irem", "M107",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL, 2, HARDWARE_IREM_MISC, GBF_VERSHOOT, 0,
- NULL, firebarrRomInfo, firebarrRomName, NULL, NULL, FirebarrInputInfo, FirebarrDIPInfo,
- firebarrInit, DrvExit, DrvFrame, DrvReDraw, DrvScan, &bRecalcPalette, 0x800,
- 240, 320, 3, 4
-};
-
-
-// Dream Soccer '94 (World, M107 hardware)
-
-static struct BurnRomInfo dsoccr94RomDesc[] = {
- { "a3-4p_h0-c-0.ic59", 0x040000, 0xd01d3fd7, 1 | BRF_PRG | BRF_ESS }, // 0 V33 Code
- { "a3-4p_l0-c-0.ic61", 0x040000, 0x8af0afe2, 1 | BRF_PRG | BRF_ESS }, // 1
- { "a3_h1-c-0.ic60", 0x040000, 0x6109041b, 1 | BRF_PRG | BRF_ESS }, // 2
- { "a3_l1-c-0.ic62", 0x040000, 0x97a01f6b, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "a3-sh0-c-0.ic31", 0x010000, 0x23fe6ffc, 2 | BRF_PRG | BRF_ESS }, // 4 V35 Code
- { "a3-sl0-c-0.ic37", 0x010000, 0x768132e5, 2 | BRF_PRG | BRF_ESS }, // 5
-
- { "ds_c00.ic29", 0x100000, 0x2d31d418, 3 | BRF_GRA }, // 6 Background Tiles
- { "ds_c10.ic28", 0x100000, 0x57f7bcd3, 3 | BRF_GRA }, // 7
- { "ds_c01.ic21", 0x100000, 0x9d31a464, 3 | BRF_GRA }, // 8
- { "ds_c11.ic20", 0x100000, 0xa372e79f, 3 | BRF_GRA }, // 9
-
- { "ds_000.ic11", 0x100000, 0x366b3e29, 4 | BRF_GRA }, // 10 Sprite Tiles
- { "ds_010.ic12", 0x100000, 0x28a4cc40, 4 | BRF_GRA }, // 11
- { "ds_020.ic13", 0x100000, 0x5a310f7f, 4 | BRF_GRA }, // 12
- { "ds_030.ic14", 0x100000, 0x328b1f45, 4 | BRF_GRA }, // 13
-
- { "ds_da0.ic24", 0x100000, 0x67fc52fd, 5 | BRF_SND }, // 14 Irem GA20 Samples
-};
-
-STD_ROM_PICK(dsoccr94)
-STD_ROM_FN(dsoccr94)
-
-static INT32 dsoccr94RomLoad()
-{
- if (BurnLoadRom(DrvV33ROM + 0x000001, 0, 2)) return 1;
- if (BurnLoadRom(DrvV33ROM + 0x000000, 1, 2)) return 1;
- if (BurnLoadRom(DrvV33ROM + 0x080001, 2, 2)) return 1;
- if (BurnLoadRom(DrvV33ROM + 0x080000, 3, 2)) return 1;
-
- if (BurnLoadRom(DrvV30ROM + 0x000001, 4, 2)) return 1;
- if (BurnLoadRom(DrvV30ROM + 0x000000, 5, 2)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x000000, 6, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x000001, 7, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x200000, 8, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x200001, 9, 2)) return 1;
-
- if (BurnLoadRom(DrvGfxROM1 + 0x000000, 10, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x100000, 11, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x200000, 12, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x300000, 13, 1)) return 1;
-
- if (BurnLoadRom(DrvSndROM + 0x000000, 14, 1)) return 1;
-
- return 0;
-}
-
-static INT32 dsoccr94Init()
-{
- has_bankswitch = 1;
- spritesystem = 0;
- config_cpu_speed = 10000000;
- return DrvInit(dsoccr94RomLoad, dsoccr94_decryption_table, 1, 0x80, 0x400000, 0x400000);
-}
-
-struct BurnDriver BurnDrvDsoccr94 = {
- "dsoccr94", NULL, NULL, NULL, "1994",
- "Dream Soccer '94 (World, M107 hardware)\0", NULL, "Irem (Data East Corporation license)", "M107",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 4, HARDWARE_IREM_MISC, GBF_SPORTSFOOTBALL, 0,
- NULL, dsoccr94RomInfo, dsoccr94RomName, NULL, NULL, Dsoccr94InputInfo, Dsoccr94DIPInfo,
- dsoccr94Init, DrvExit, DrvFrame, DrvReDraw, DrvScan, &bRecalcPalette, 0x800,
- 320, 240, 4, 3
-};
-
-
-// Dream Soccer '94 (Korea, M107 hardware)
-// default team selected is Korea, so likely a Korean set
-
-static struct BurnRomInfo dsoccr94kRomDesc[] = {
- { "ic59_h0.bin", 0x040000, 0x7b26d8a3, 1 | BRF_PRG | BRF_ESS }, // 0 V33 Code
- { "ic61_l0.bin", 0x040000, 0xb13f0ff4, 1 | BRF_PRG | BRF_ESS }, // 1
- { "ic60_h1.bin", 0x040000, 0x6109041b, 1 | BRF_PRG | BRF_ESS }, // 2
- { "ic62_l1.bin", 0x040000, 0x97a01f6b, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "a3-sh0-c-0.ic31", 0x010000, 0x23fe6ffc, 2 | BRF_PRG | BRF_ESS }, // 4 V35 Code
- { "a3-sl0-c-0.ic37", 0x010000, 0x768132e5, 2 | BRF_PRG | BRF_ESS }, // 5
-
- { "ds_c00.ic29", 0x100000, 0x2d31d418, 3 | BRF_GRA }, // 6 Background Tiles
- { "ds_c10.ic28", 0x100000, 0x57f7bcd3, 3 | BRF_GRA }, // 7
- { "ds_c01.ic21", 0x100000, 0x9d31a464, 3 | BRF_GRA }, // 8
- { "ds_c11.ic20", 0x100000, 0xa372e79f, 3 | BRF_GRA }, // 9
-
- { "ds_000.ic11", 0x100000, 0x366b3e29, 4 | BRF_GRA }, // 10 Sprite Tiles
- { "ds_010.ic12", 0x100000, 0x28a4cc40, 4 | BRF_GRA }, // 11
- { "ds_020.ic13", 0x100000, 0x5a310f7f, 4 | BRF_GRA }, // 12
- { "ds_030.ic14", 0x100000, 0x328b1f45, 4 | BRF_GRA }, // 13
-
- { "ds_da0.ic24", 0x100000, 0x67fc52fd, 5 | BRF_SND }, // 14 Irem GA20 Samples
-};
-
-STD_ROM_PICK(dsoccr94k)
-STD_ROM_FN(dsoccr94k)
-
-struct BurnDriver BurnDrvDsoccr94k = {
- "dsoccr94k", "dsoccr94", NULL, NULL, "1994",
- "Dream Soccer '94 (Korea, M107 hardware)\0", NULL, "Irem (Data East Corporation license)", "M107",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 4, HARDWARE_IREM_MISC, GBF_SPORTSFOOTBALL, 0,
- NULL, dsoccr94kRomInfo, dsoccr94kRomName, NULL, NULL, Dsoccr94InputInfo, Dsoccr94DIPInfo,
- dsoccr94Init, DrvExit, DrvFrame, DrvReDraw, DrvScan, &bRecalcPalette, 0x800,
- 320, 240, 4, 3
-};
-
-
-// World PK Soccer
-
-static struct BurnRomInfo wpksocRomDesc[] = {
- { "pk-h0-eur-d.h0", 0x40000, 0xb4917788, 1 | BRF_PRG | BRF_ESS }, // 0 V33 Code
- { "pk-l0-eur-d.l0", 0x40000, 0x03816bae, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "pk-sh0.sh0", 0x10000, 0x1145998c, 2 | BRF_PRG | BRF_ESS }, // 2 V35 Code
- { "pk-sl0.sl0", 0x10000, 0x542ee1c7, 2 | BRF_PRG | BRF_ESS }, // 3
-
- { "pk-c00-os.c00", 0x80000, 0x42ae3d73, 3 | BRF_GRA }, // 4 Background Tiles
- { "pk-c10-os.c10", 0x80000, 0x86acf45c, 3 | BRF_GRA }, // 5
- { "pk-c01-os.c01", 0x80000, 0xb0d33f87, 3 | BRF_GRA }, // 6
- { "pk-c11-os.c11", 0x80000, 0x19de7d63, 3 | BRF_GRA }, // 7
-
- { "pk-000.000", 0x80000, 0x165ce027, 4 | BRF_GRA }, // 8 Sprite Tiles
- { "pk-001.001", 0x80000, 0xe2745147, 4 | BRF_GRA }, // 9
- { "pk-010.010", 0x80000, 0x6c171b73, 4 | BRF_GRA }, // 10
- { "pk-011.011", 0x80000, 0x471c0bf4, 4 | BRF_GRA }, // 11
- { "pk-020.020", 0x80000, 0xc886dad1, 4 | BRF_GRA }, // 12
- { "pk-021.021", 0x80000, 0x91e877ff, 4 | BRF_GRA }, // 13
- { "pk-030.030", 0x80000, 0x3390621c, 4 | BRF_GRA }, // 14
- { "pk-031.031", 0x80000, 0x4d322804, 4 | BRF_GRA }, // 15
-
- { "pk-da0.da0", 0x80000, 0x26a34cf4, 6 | BRF_SND }, // 16 Irem GA20 Samples
-};
-
-STD_ROM_PICK(wpksoc)
-STD_ROM_FN(wpksoc)
-
-static INT32 wpksocRomLoad()
-{
- if (BurnLoadRom(DrvV33ROM + 0x000001, 0, 2)) return 1;
- if (BurnLoadRom(DrvV33ROM + 0x000000, 1, 2)) return 1;
-
- if (BurnLoadRom(DrvV30ROM + 0x000001, 2, 2)) return 1;
- if (BurnLoadRom(DrvV30ROM + 0x000000, 3, 2)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x000000, 4, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x000001, 5, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x100000, 6, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x100001, 7, 2)) return 1;
-
- if (BurnLoadRom(DrvGfxROM1 + 0x000000, 8, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x000001, 9, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x100000, 10, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x100001, 11, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x200000, 12, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x200001, 13, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x300000, 14, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x300001, 15, 2)) return 1;
-
- if (BurnLoadRom(DrvSndROM + 0x000000, 16, 1)) return 1;
-
- return 0;
-}
-
-static INT32 wpksocInit()
-{
- has_bankswitch = 0;
- spritesystem = 0;
- config_cpu_speed = 14000000;
- return DrvInit(wpksocRomLoad, leagueman_decryption_table, 1, 0x80, 0x200000, 0x400000);
-}
-
-struct BurnDriverD BurnDrvWpksoc = {
- "wpksoc", NULL, NULL, NULL, "1995",
- "World PK Soccer\0", NULL, "Jaleco", "M107",
- NULL, NULL, NULL, NULL,
- 0, 4, HARDWARE_IREM_MISC, GBF_SPORTSFOOTBALL, 0,
- NULL, wpksocRomInfo, wpksocRomName, NULL, NULL, Dsoccr94InputInfo, Dsoccr94DIPInfo,
- wpksocInit, DrvExit, DrvFrame, DrvReDraw, DrvScan, &bRecalcPalette, 0x800,
- 320, 240, 4, 3
-};
-
-// Kick for the Goal
-
-static struct BurnRomInfo kftgoalRomDesc[] = {
- { "pk-h0-usa-d.h0", 0x40000, 0xaed4cde0, 1 | BRF_PRG | BRF_ESS }, // 0 V33 Code
- { "pk-l0-usa-d.l0", 0x40000, 0x39fe30d2, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "pk-sh0.sh0", 0x10000, 0x1145998c, 2 | BRF_PRG | BRF_ESS }, // 2 V35 Code
- { "pk-sl0.sl0", 0x10000, 0x542ee1c7, 2 | BRF_PRG | BRF_ESS }, // 3
-
- { "pk-c00-os.c00", 0x80000, 0x42ae3d73, 3 | BRF_GRA }, // 4 Background Tiles
- { "pk-c10-os.c10", 0x80000, 0x86acf45c, 3 | BRF_GRA }, // 5
- { "pk-c01-os.c01", 0x80000, 0xb0d33f87, 3 | BRF_GRA }, // 6
- { "pk-c11-os.c11", 0x80000, 0x19de7d63, 3 | BRF_GRA }, // 7
-
- { "pk-000-usa.000", 0x80000, 0x72e905ab, 4 | BRF_GRA }, // 8 Sprite Tiles
- { "pk-001-usa.001", 0x80000, 0xeec4f43c, 4 | BRF_GRA }, // 9
- { "pk-010-usa.010", 0x80000, 0xb3339d73, 4 | BRF_GRA }, // 10
- { "pk-011-usa.011", 0x80000, 0xbab2b7cf, 4 | BRF_GRA }, // 11
- { "pk-020-usa.020", 0x80000, 0x740a0bef, 4 | BRF_GRA }, // 12
- { "pk-021-usa.021", 0x80000, 0xf44208a6, 4 | BRF_GRA }, // 13
- { "pk-030-usa.030", 0x80000, 0x8eceef50, 4 | BRF_GRA }, // 14
- { "pk-031-usa.031", 0x80000, 0x8aa7dc04, 4 | BRF_GRA }, // 15
-
- { "pk-da0.da0", 0x80000, 0x26a34cf4, 6 | BRF_SND }, // 16 Irem GA20 Samples
-
- { "st-m28c64c.eeprom", 0x02000, 0x8e0c8b7c, 7 | BRF_PRG | BRF_ESS }, // 17 Eeprom data
-};
-
-STD_ROM_PICK(kftgoal)
-STD_ROM_FN(kftgoal)
-
-struct BurnDriverD BurnDrvKftgoal = {
- "kftgoal", "wpksoc", NULL, NULL, "1995",
- "Kick for the Goal\0", NULL, "Jaleco", "M107",
- NULL, NULL, NULL, NULL,
- BDF_CLONE, 4, HARDWARE_IREM_MISC, GBF_SPORTSFOOTBALL, 0,
- NULL, kftgoalRomInfo, kftgoalRomName, NULL, NULL, Dsoccr94InputInfo, Dsoccr94DIPInfo,
- wpksocInit, DrvExit, DrvFrame, DrvReDraw, DrvScan, &bRecalcPalette, 0x800,
- 320, 240, 4, 3
-};
diff --git a/jan/src/burn/drv/irem/d_m62.cpp b/jan/src/burn/drv/irem/d_m62.cpp
deleted file mode 100644
index e1ec4aec4..000000000
--- a/jan/src/burn/drv/irem/d_m62.cpp
+++ /dev/null
@@ -1,5186 +0,0 @@
-// FB Alpha Irem M62 system driver
-// Based on MAME driver by smf and David Haywood
-
-#include "tiles_generic.h"
-#include "z80_intf.h"
-#include "m6800_intf.h"
-#include "msm5205.h"
-#define USE_SAMPLE_HACK // allow use of sampled drumkit on Kid Niki, Spelunker 1 & 2, Battle-Road, Horizon
-
-#ifdef USE_SAMPLE_HACK
-#include "samples.h"
-#endif
-
-#include "driver.h"
-extern "C" {
- #include "ay8910.h"
-}
-
-static UINT8 M62InputPort0[8] = {0, 0, 0, 0, 0, 0, 0, 0};
-static UINT8 M62InputPort1[8] = {0, 0, 0, 0, 0, 0, 0, 0};
-static UINT8 M62InputPort2[8] = {0, 0, 0, 0, 0, 0, 0, 0};
-static UINT8 M62Dip[2] = {0, 0};
-static UINT8 M62Input[3] = {0x00, 0x00, 0x00};
-static UINT8 M62Reset = 0;
-static INT32 M62Z80BankAddress = 0;
-static INT32 M62Z80BankAddress2 = 0;
-
-static UINT32 M62Z80RomSize = 0;
-static UINT32 M62PromSize = 0;
-static UINT32 M62NumTiles = 0;
-static UINT32 M62NumSprites = 0;
-static UINT32 M62NumChars = 0;
-static UINT32 M62SpriteRamSize = 0;
-static UINT32 M62CharRamSize = 0;
-static UINT32 M62ScrollRamSize = 0;
-
-static UINT8 *Mem = NULL;
-static UINT8 *MemEnd = NULL;
-static UINT8 *RamStart = NULL;
-static UINT8 *RamEnd = NULL;
-static UINT8 *M62Z80Rom = NULL;
-static UINT8 *M62M6803Rom = NULL;
-static UINT8 *M62TileRam = NULL;
-static UINT8 *M62SpriteRam = NULL;
-static UINT8 *M62CharRam = NULL;
-static UINT8 *M62ScrollRam = NULL;
-static UINT8 *M62Z80Ram = NULL;
-static UINT8 *M62M6803Ram = NULL;
-static UINT8 *M62Tiles = NULL;
-static UINT8 *M62Sprites = NULL;
-static UINT8 *M62Chars = NULL;
-static UINT8 *M62PromData = NULL;
-static UINT8 *M62TempRom = NULL;
-static UINT32 *M62Palette = NULL;
-static INT16* pFMBuffer;
-static INT16* pAY8910Buffer[6];
-
-static INT32 M62BackgroundHScroll;
-static INT32 M62BackgroundVScroll;
-static INT32 M62CharHScroll;
-static INT32 M62CharVScroll;
-static INT32 M62FlipScreen;
-static INT32 M62SpriteHeightPromOffset;
-static UINT8 M62SoundLatch;
-static UINT8 M62Port1;
-static UINT8 M62Port2;
-static UINT8 M62SlaveMSM5205VClckReset;
-static UINT32 M62PaletteEntries;
-static UINT32 M62Z80Clock;
-static UINT32 M62M6803Clock;
-static UINT8 M62BankControl[2];
-static UINT8 Ldrun2BankSwap;
-static UINT8 Ldrun3TopBottomMask;
-static UINT8 KidnikiBackgroundBank;
-static UINT8 SpelunkrPaletteBank;
-static INT32 M62BgxTileDim = 0;
-static INT32 M62BgyTileDim = 0;
-static INT32 M62CharxTileDim = 0;
-static INT32 M62CharyTileDim = 0;
-static UINT32 bHasSamples = 0;
-
-typedef void (*M62Render)();
-static M62Render M62RenderFunction;
-static void KungfumDraw();
-static void BattroadDraw();
-static void LdrunDraw();
-static void Ldrun3Draw();
-static void Ldrun4Draw();
-static void LotlotDraw();
-static void KidnikiDraw();
-static void SpelunkrDraw();
-static void Spelunk2Draw();
-static void YoujyudnDraw();
-static void HorizonDraw();
-
-typedef void (*M62ExtendTileInfo)(INT32*, INT32*, INT32*, INT32*);
-static M62ExtendTileInfo M62ExtendTileInfoFunction;
-static void BattroadExtendTile(INT32* Code, INT32* Colour, INT32* Priority, INT32* xFlip);
-static void LdrunExtendTile(INT32* Code, INT32* Colour, INT32* Priority, INT32* xFlip);
-static void Ldrun2ExtendTile(INT32* Code, INT32* Colour, INT32* Priority, INT32* xFlip);
-static void Ldrun4ExtendTile(INT32* Code, INT32* Colour, INT32*, INT32*);
-static void LotlotExtendTile(INT32* Code, INT32* Colour, INT32*, INT32* xFlip);
-static void KidnikiExtendTile(INT32* Code, INT32* Colour, INT32* Priority, INT32*);
-static void SpelunkrExtendTile(INT32* Code, INT32* Colour, INT32*, INT32*);
-static void Spelunk2ExtendTile(INT32* Code, INT32* Colour, INT32*, INT32*);
-static void YoujyudnExtendTile(INT32* Code, INT32* Colour, INT32* Priority, INT32*);
-static void HorizonExtendTile(INT32* Code, INT32* Colour, INT32* Priority, INT32*);
-
-typedef void (*M62ExtendCharInfo)(INT32*, INT32*, INT32*, INT32*);
-static M62ExtendCharInfo M62ExtendCharInfoFunction;
-static void BattroadExtendChar(INT32* Code, INT32* Colour, INT32*, INT32*);
-static void LotlotExtendChar(INT32* Code, INT32* Colour, INT32*, INT32*);
-static void SpelunkrExtendChar(INT32* Code, INT32* Colour, INT32*, INT32*);
-static void YoujyudnExtendChar(INT32* Code, INT32* Colour, INT32*, INT32*);
-
-static INT32 nCyclesDone[2], nCyclesTotal[2];
-static INT32 nCyclesSegment;
-
-static struct BurnInputInfo M62InputList[] =
-{
- {"Coin 1" , BIT_DIGITAL , M62InputPort0 + 3, "p1 coin" },
- {"Start 1" , BIT_DIGITAL , M62InputPort0 + 0, "p1 start" },
- {"Coin 2" , BIT_DIGITAL , M62InputPort2 + 4, "p2 coin" },
- {"Start 2" , BIT_DIGITAL , M62InputPort0 + 1, "p2 start" },
-
- {"Up" , BIT_DIGITAL , M62InputPort1 + 3, "p1 up" },
- {"Down" , BIT_DIGITAL , M62InputPort1 + 2, "p1 down" },
- {"Left" , BIT_DIGITAL , M62InputPort1 + 1, "p1 left" },
- {"Right" , BIT_DIGITAL , M62InputPort1 + 0, "p1 right" },
- {"Fire 1" , BIT_DIGITAL , M62InputPort1 + 7, "p1 fire 1" },
- {"Fire 2" , BIT_DIGITAL , M62InputPort1 + 5, "p1 fire 2" },
-
- {"Up (Cocktail)" , BIT_DIGITAL , M62InputPort2 + 3, "p2 up" },
- {"Down (Cocktail)" , BIT_DIGITAL , M62InputPort2 + 2, "p2 down" },
- {"Left (Cocktail)" , BIT_DIGITAL , M62InputPort2 + 1, "p2 left" },
- {"Right (Cocktail)" , BIT_DIGITAL , M62InputPort2 + 0, "p2 right" },
- {"Fire 1 (Cocktail)" , BIT_DIGITAL , M62InputPort2 + 7, "p2 fire 1" },
- {"Fire 2 (Cocktail)" , BIT_DIGITAL , M62InputPort2 + 5, "p2 fire 2" },
-
- {"Reset" , BIT_DIGITAL , &M62Reset , "reset" },
- {"Service" , BIT_DIGITAL , M62InputPort0 + 2, "service" },
- {"Dip 1" , BIT_DIPSWITCH, M62Dip + 0 , "dip" },
- {"Dip 2" , BIT_DIPSWITCH, M62Dip + 1 , "dip" },
-};
-
-STDINPUTINFO(M62)
-
-static inline void M62ClearOpposites(UINT8* nJoystickInputs)
-{
- if ((*nJoystickInputs & 0x03) == 0x03) {
- *nJoystickInputs &= ~0x03;
- }
- if ((*nJoystickInputs & 0x0c) == 0x0c) {
- *nJoystickInputs &= ~0x0c;
- }
-}
-
-static inline void M62MakeInputs()
-{
- M62Input[0] = M62Input[1] = M62Input[2] = 0x00;
-
- for (INT32 i = 0; i < 8; i++) {
- M62Input[0] |= (M62InputPort0[i] & 1) << i;
- M62Input[1] |= (M62InputPort1[i] & 1) << i;
- M62Input[2] |= (M62InputPort2[i] & 1) << i;
- }
-
- M62ClearOpposites(&M62Input[0]);
- M62ClearOpposites(&M62Input[1]);
-}
-
-#define IREM_Z80_COINAGE_TYPE3 \
- {0 , 0xfe, 0 , 15 , "Coinage" }, \
- {0x12, 0x02, 0xf0, 0x90, "7 Coins 1 Play" }, \
- {0x13, 0x00, 0x04, 0x04, NULL }, \
- {0x12, 0x02, 0xf0, 0xa0, "6 Coins 1 Play" }, \
- {0x13, 0x00, 0x04, 0x04, NULL }, \
- {0x12, 0x02, 0xf0, 0xb0, "5 Coins 1 Play" }, \
- {0x13, 0x00, 0x04, 0x04, NULL }, \
- {0x12, 0x02, 0xf0, 0xc0, "4 Coins 1 Play" }, \
- {0x13, 0x00, 0x04, 0x04, NULL }, \
- {0x12, 0x02, 0xf0, 0xd0, "3 Coins 1 Play" }, \
- {0x13, 0x00, 0x04, 0x04, NULL }, \
- {0x12, 0x02, 0xf0, 0xe0, "2 Coins 1 Play" }, \
- {0x13, 0x00, 0x04, 0x04, NULL }, \
- {0x12, 0x02, 0xf0, 0xf0, "1 Coin 1 Play" }, \
- {0x13, 0x00, 0x04, 0x04, NULL }, \
- {0x12, 0x02, 0xf0, 0x70, "1 Coin 2 Plays" }, \
- {0x13, 0x00, 0x04, 0x04, NULL }, \
- {0x12, 0x02, 0xf0, 0x60, "1 Coin 3 Plays" }, \
- {0x13, 0x00, 0x04, 0x04, NULL }, \
- {0x12, 0x02, 0xf0, 0x50, "1 Coin 4 Plays" }, \
- {0x13, 0x00, 0x04, 0x04, NULL }, \
- {0x12, 0x02, 0xf0, 0x40, "1 Coin 5 Plays" }, \
- {0x13, 0x00, 0x04, 0x04, NULL }, \
- {0x12, 0x02, 0xf0, 0x30, "1 Coin 6 Plays" }, \
- {0x13, 0x00, 0x04, 0x04, NULL }, \
- {0x12, 0x02, 0xf0, 0x20, "1 Coin 7 Plays" }, \
- {0x13, 0x00, 0x04, 0x04, NULL }, \
- {0x12, 0x02, 0xf0, 0x10, "1 Coin 8 Plays" }, \
- {0x13, 0x00, 0x04, 0x04, NULL }, \
- {0x12, 0x02, 0xf0, 0x00, "Freeplay" }, \
- {0x13, 0x00, 0x04, 0x04, NULL }, \
- \
- {0 , 0xfe, 0 , 4 , "Coin A" }, \
- {0x12, 0x82, 0x30, 0x10, "3 Coins 1 Play" }, \
- {0x13, 0x00, 0x04, 0x04, NULL }, \
- {0x12, 0x82, 0x30, 0x20, "2 Coins 1 Play" }, \
- {0x13, 0x00, 0x04, 0x04, NULL }, \
- {0x12, 0x82, 0x30, 0x30, "1 Coin 1 Play" }, \
- {0x13, 0x00, 0x04, 0x04, NULL }, \
- {0x12, 0x82, 0x30, 0x00, "Free Play" }, \
- {0x13, 0x00, 0x04, 0x04, NULL }, \
- {0 , 0xfe, 0 , 4 , "Coin B" }, \
- {0x12, 0x82, 0xc0, 0xc0, "1 Coin 2 Plays" }, \
- {0x13, 0x00, 0x04, 0x04, NULL }, \
- {0x12, 0x82, 0xc0, 0x80, "1 Coin 3 Plays" }, \
- {0x13, 0x00, 0x04, 0x04, NULL }, \
- {0x12, 0x82, 0xc0, 0x40, "1 Coin 5 Plays" }, \
- {0x13, 0x00, 0x04, 0x04, NULL }, \
- {0x12, 0x82, 0xc0, 0x00, "1 Coin 6 Plays" }, \
- {0x13, 0x00, 0x04, 0x04, NULL }, \
-
-#define IREM_Z80_COINAGE_TYPE4 \
- {0 , 0xfe, 0 , 16 , "Coinage" }, \
- {0x12, 0x02, 0xf0, 0xa0, "6 Coins 1 Play" }, \
- {0x13, 0x00, 0x04, 0x04, NULL }, \
- {0x12, 0x02, 0xf0, 0xb0, "5 Coins 1 Play" }, \
- {0x13, 0x00, 0x04, 0x04, NULL }, \
- {0x12, 0x02, 0xf0, 0xc0, "4 Coins 1 Play" }, \
- {0x13, 0x00, 0x04, 0x04, NULL }, \
- {0x12, 0x02, 0xf0, 0xd0, "3 Coins 1 Play" }, \
- {0x13, 0x00, 0x04, 0x04, NULL }, \
- {0x12, 0x02, 0xf0, 0x10, "8 Coins 3 Plays" }, \
- {0x13, 0x00, 0x04, 0x04, NULL }, \
- {0x12, 0x02, 0xf0, 0xe0, "2 Coins 1 Play" }, \
- {0x13, 0x00, 0x04, 0x04, NULL }, \
- {0x12, 0x02, 0xf0, 0x20, "5 Coins 3 Plays" }, \
- {0x13, 0x00, 0x04, 0x04, NULL }, \
- {0x12, 0x02, 0xf0, 0x30, "3 Coins 2 Plays" }, \
- {0x13, 0x00, 0x04, 0x04, NULL }, \
- {0x12, 0x02, 0xf0, 0xf0, "1 Coin 1 Play" }, \
- {0x13, 0x00, 0x04, 0x04, NULL }, \
- {0x12, 0x02, 0xf0, 0x40, "2 Coins 3 Plays" }, \
- {0x13, 0x00, 0x04, 0x04, NULL }, \
- {0x12, 0x02, 0xf0, 0x90, "1 Coin 2 Plays" }, \
- {0x13, 0x00, 0x04, 0x04, NULL }, \
- {0x12, 0x02, 0xf0, 0x80, "1 Coin 3 Plays" }, \
- {0x13, 0x00, 0x04, 0x04, NULL }, \
- {0x12, 0x02, 0xf0, 0x70, "1 Coin 4 Plays" }, \
- {0x13, 0x00, 0x04, 0x04, NULL }, \
- {0x12, 0x02, 0xf0, 0x60, "1 Coin 5 Plays" }, \
- {0x13, 0x00, 0x04, 0x04, NULL }, \
- {0x12, 0x02, 0xf0, 0x50, "1 Coin 6 Plays" }, \
- {0x13, 0x00, 0x04, 0x04, NULL }, \
- {0x12, 0x02, 0xf0, 0x00, "Freeplay" }, \
- {0x13, 0x00, 0x04, 0x04, NULL }, \
- \
- {0 , 0xfe, 0 , 4 , "Coin A" }, \
- {0x12, 0x82, 0x30, 0x00, "5 Coins 1 Play" }, \
- {0x13, 0x00, 0x04, 0x04, NULL }, \
- {0x12, 0x82, 0x30, 0x10, "3 Coins 1 Play" }, \
- {0x13, 0x00, 0x04, 0x04, NULL }, \
- {0x12, 0x82, 0x30, 0x20, "2 Coins 1 Play" }, \
- {0x13, 0x00, 0x04, 0x04, NULL }, \
- {0x12, 0x82, 0x30, 0x30, "1 Coin 1 Play" }, \
- {0x13, 0x00, 0x04, 0x04, NULL }, \
- {0 , 0xfe, 0 , 4 , "Coin B" }, \
- {0x12, 0x82, 0xc0, 0xc0, "1 Coin 2 Plays" }, \
- {0x13, 0x00, 0x04, 0x04, NULL }, \
- {0x12, 0x82, 0xc0, 0x80, "1 Coin 3 Plays" }, \
- {0x13, 0x00, 0x04, 0x04, NULL }, \
- {0x12, 0x82, 0xc0, 0x40, "1 Coin 5 Plays" }, \
- {0x13, 0x00, 0x04, 0x04, NULL }, \
- {0x12, 0x82, 0xc0, 0x00, "1 Coin 6 Plays" }, \
- {0x13, 0x00, 0x04, 0x04, NULL }, \
-
-#define IREM_Z80_COINAGE_TYPE5 \
- {0 , 0xfe, 0 , 16 , "Coinage" }, \
- {0x12, 0x02, 0xf0, 0x00, "8 Coins 1 Play" }, \
- {0x13, 0x00, 0x04, 0x04, NULL }, \
- {0x12, 0x02, 0xf0, 0xa0, "6 Coins 1 Play" }, \
- {0x13, 0x00, 0x04, 0x04, NULL }, \
- {0x12, 0x02, 0xf0, 0xb0, "5 Coins 1 Play" }, \
- {0x13, 0x00, 0x04, 0x04, NULL }, \
- {0x12, 0x02, 0xf0, 0xc0, "4 Coins 1 Play" }, \
- {0x13, 0x00, 0x04, 0x04, NULL }, \
- {0x12, 0x02, 0xf0, 0xd0, "3 Coins 1 Play" }, \
- {0x13, 0x00, 0x04, 0x04, NULL }, \
- {0x12, 0x02, 0xf0, 0xe0, "2 Coins 1 Play" }, \
- {0x13, 0x00, 0x04, 0x04, NULL }, \
- {0x12, 0x02, 0xf0, 0x10, "5 Coins 3 Plays" }, \
- {0x13, 0x00, 0x04, 0x04, NULL }, \
- {0x12, 0x02, 0xf0, 0x20, "3 Coins 5 Plays" }, \
- {0x13, 0x00, 0x04, 0x04, NULL }, \
- {0x12, 0x02, 0xf0, 0x30, "3 Coins 2 Plays" }, \
- {0x13, 0x00, 0x04, 0x04, NULL }, \
- {0x12, 0x02, 0xf0, 0xf0, "1 Coin 1 Play" }, \
- {0x13, 0x00, 0x04, 0x04, NULL }, \
- {0x12, 0x02, 0xf0, 0x40, "2 Coins 3 Plays" }, \
- {0x13, 0x00, 0x04, 0x04, NULL }, \
- {0x12, 0x02, 0xf0, 0x90, "1 Coin 2 Plays" }, \
- {0x13, 0x00, 0x04, 0x04, NULL }, \
- {0x12, 0x02, 0xf0, 0x80, "1 Coin 3 Plays" }, \
- {0x13, 0x00, 0x04, 0x04, NULL }, \
- {0x12, 0x02, 0xf0, 0x70, "1 Coin 4 Plays" }, \
- {0x13, 0x00, 0x04, 0x04, NULL }, \
- {0x12, 0x02, 0xf0, 0x60, "1 Coin 5 Plays" }, \
- {0x13, 0x00, 0x04, 0x04, NULL }, \
- {0x12, 0x02, 0xf0, 0x50, "1 Coin 6 Plays" }, \
- {0x13, 0x00, 0x04, 0x04, NULL }, \
- \
- {0 , 0xfe, 0 , 4 , "Coin A" }, \
- {0x12, 0x82, 0x30, 0x00, "5 Coins 1 Play" }, \
- {0x13, 0x00, 0x04, 0x04, NULL }, \
- {0x12, 0x82, 0x30, 0x10, "3 Coins 1 Play" }, \
- {0x13, 0x00, 0x04, 0x04, NULL }, \
- {0x12, 0x82, 0x30, 0x20, "2 Coins 1 Play" }, \
- {0x13, 0x00, 0x04, 0x04, NULL }, \
- {0x12, 0x82, 0x30, 0x30, "1 Coin 1 Play" }, \
- {0x13, 0x00, 0x04, 0x04, NULL }, \
- {0 , 0xfe, 0 , 4 , "Coin B" }, \
- {0x12, 0x82, 0xc0, 0xc0, "1 Coin 2 Plays" }, \
- {0x13, 0x00, 0x04, 0x04, NULL }, \
- {0x12, 0x82, 0xc0, 0x80, "1 Coin 3 Plays" }, \
- {0x13, 0x00, 0x04, 0x04, NULL }, \
- {0x12, 0x82, 0xc0, 0x40, "1 Coin 5 Plays" }, \
- {0x13, 0x00, 0x04, 0x04, NULL }, \
- {0x12, 0x82, 0xc0, 0x00, "1 Coin 6 Plays" }, \
- {0x13, 0x00, 0x04, 0x04, NULL }, \
-
-static struct BurnDIPInfo KungfumDIPList[]=
-{
- // Default Values
- {0x12, 0xff, 0xff, 0xff, NULL },
- {0x13, 0xff, 0xff, 0xfd, NULL },
-
- // Dip 1
- {0 , 0xfe, 0 , 2 , "Difficulty" },
- {0x12, 0x01, 0x01, 0x01, "Easy" },
- {0x12, 0x01, 0x01, 0x00, "Hard" },
-
- {0 , 0xfe, 0 , 2 , "Energy Loss" },
- {0x12, 0x01, 0x02, 0x02, "Slow" },
- {0x12, 0x01, 0x02, 0x00, "Fast" },
-
- {0 , 0xfe, 0 , 4 , "Lives" },
- {0x12, 0x01, 0x0c, 0x08, "2" },
- {0x12, 0x01, 0x0c, 0x0c, "3" },
- {0x12, 0x01, 0x0c, 0x04, "4" },
- {0x12, 0x01, 0x0c, 0x00, "5" },
-
- IREM_Z80_COINAGE_TYPE3
-
- // Dip 2
- {0 , 0xfe, 0 , 2 , "Flip Screen" },
- {0x13, 0x01, 0x01, 0x01, "Off" },
- {0x13, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x13, 0x01, 0x02, 0x00, "Upright" },
- {0x13, 0x01, 0x02, 0x02, "Cocktail" },
-
- {0 , 0xfe, 0 , 2 , "Coin Mode" },
- {0x13, 0x01, 0x04, 0x04, "Mode 1" },
- {0x13, 0x01, 0x04, 0x00, "Mode 2" },
-
- {0 , 0xfe, 0 , 2 , "Slow Motion Mode" },
- {0x13, 0x01, 0x08, 0x08, "Off" },
- {0x13, 0x01, 0x08, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2 , "Freeze" },
- {0x13, 0x01, 0x10, 0x10, "Off" },
- {0x13, 0x01, 0x10, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2 , "Level Selection Mode" },
- {0x13, 0x01, 0x20, 0x20, "Off" },
- {0x13, 0x01, 0x20, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2 , "Invulnerability" },
- {0x13, 0x01, 0x40, 0x40, "Off" },
- {0x13, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2 , "Service Mode" },
- {0x13, 0x01, 0x80, 0x80, "Off" },
- {0x13, 0x01, 0x80, 0x00, "On" },
-};
-
-STDDIPINFO(Kungfum)
-
-static struct BurnDIPInfo BattroadDIPList[]=
-{
- // Default Values
- {0x12, 0xff, 0xff, 0xff, NULL },
- {0x13, 0xff, 0xff, 0xfd, NULL },
-
- // Dip 1
- {0 , 0xfe, 0 , 4 , "Fuel Decrease" },
- {0x12, 0x01, 0x03, 0x03, "Slow" },
- {0x12, 0x01, 0x03, 0x02, "Medium" },
- {0x12, 0x01, 0x03, 0x01, "Fast" },
- {0x12, 0x01, 0x03, 0x00, "Fastest" },
-
- {0 , 0xfe, 0 , 2 , "Difficulty" },
- {0x12, 0x01, 0x04, 0x04, "Easy" },
- {0x12, 0x01, 0x04, 0x00, "Hard" },
-
- IREM_Z80_COINAGE_TYPE3
-
- // Dip 2
- {0 , 0xfe, 0 , 2 , "Flip Screen" },
- {0x13, 0x01, 0x01, 0x01, "Off" },
- {0x13, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x13, 0x01, 0x02, 0x00, "Upright" },
- {0x13, 0x01, 0x02, 0x02, "Cocktail" },
-
- {0 , 0xfe, 0 , 2 , "Coin Mode" },
- {0x13, 0x01, 0x04, 0x04, "Mode 1" },
- {0x13, 0x01, 0x04, 0x00, "Mode 2" },
-
- {0 , 0xfe, 0 , 2 , "Freeze" },
- {0x13, 0x01, 0x10, 0x10, "Off" },
- {0x13, 0x01, 0x10, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2 , "Invulnerability" },
- {0x13, 0x01, 0x40, 0x40, "Off" },
- {0x13, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2 , "Service Mode" },
- {0x13, 0x01, 0x80, 0x80, "Off" },
- {0x13, 0x01, 0x80, 0x00, "On" },
-};
-
-STDDIPINFO(Battroad)
-
-static struct BurnDIPInfo LdrunDIPList[]=
-{
- // Default Values
- {0x12, 0xff, 0xff, 0xff, NULL },
- {0x13, 0xff, 0xff, 0xfd, NULL },
-
- // Dip 1
- {0 , 0xfe, 0 , 4 , "Timer" },
- {0x12, 0x01, 0x03, 0x03, "Slow" },
- {0x12, 0x01, 0x03, 0x02, "Medium" },
- {0x12, 0x01, 0x03, 0x01, "Fast" },
- {0x12, 0x01, 0x03, 0x00, "Fastest" },
-
- {0 , 0xfe, 0 , 4 , "Lives" },
- {0x12, 0x01, 0x0c, 0x08, "2" },
- {0x12, 0x01, 0x0c, 0x0c, "3" },
- {0x12, 0x01, 0x0c, 0x04, "4" },
- {0x12, 0x01, 0x0c, 0x00, "5" },
-
- IREM_Z80_COINAGE_TYPE3
-
- // Dip 2
- {0 , 0xfe, 0 , 2 , "Flip Screen" },
- {0x13, 0x01, 0x01, 0x01, "Off" },
- {0x13, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x13, 0x01, 0x02, 0x00, "Upright" },
- {0x13, 0x01, 0x02, 0x02, "Cocktail" },
-
- {0 , 0xfe, 0 , 2 , "Coin Mode" },
- {0x13, 0x01, 0x04, 0x04, "Mode 1" },
- {0x13, 0x01, 0x04, 0x00, "Mode 2" },
-
- {0 , 0xfe, 0 , 2 , "Freeze" },
- {0x13, 0x01, 0x10, 0x10, "Off" },
- {0x13, 0x01, 0x10, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2 , "Level Selection Mode" },
- {0x13, 0x01, 0x20, 0x20, "Off" },
- {0x13, 0x01, 0x20, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2 , "Invulnerability" },
- {0x13, 0x01, 0x40, 0x40, "Off" },
- {0x13, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2 , "Service Mode" },
- {0x13, 0x01, 0x80, 0x80, "Off" },
- {0x13, 0x01, 0x80, 0x00, "On" },
-};
-
-STDDIPINFO(Ldrun)
-
-static struct BurnDIPInfo Ldrun2DIPList[]=
-{
- // Default Values
- {0x12, 0xff, 0xff, 0xff, NULL },
- {0x13, 0xff, 0xff, 0xfd, NULL },
-
- // Dip 1
- {0 , 0xfe, 0 , 2 , "Timer" },
- {0x12, 0x01, 0x01, 0x01, "Slow" },
- {0x12, 0x01, 0x01, 0x00, "Fast" },
-
- {0 , 0xfe, 0 , 2 , "Game Speed" },
- {0x12, 0x01, 0x02, 0x00, "Low" },
- {0x12, 0x01, 0x02, 0x02, "High" },
-
- {0 , 0xfe, 0 , 4 , "Lives" },
- {0x12, 0x01, 0x0c, 0x08, "2" },
- {0x12, 0x01, 0x0c, 0x0c, "3" },
- {0x12, 0x01, 0x0c, 0x04, "4" },
- {0x12, 0x01, 0x0c, 0x00, "5" },
-
- IREM_Z80_COINAGE_TYPE3
-
- // Dip 2
- {0 , 0xfe, 0 , 2 , "Flip Screen" },
- {0x13, 0x01, 0x01, 0x01, "Off" },
- {0x13, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x13, 0x01, 0x02, 0x00, "Upright" },
- {0x13, 0x01, 0x02, 0x02, "Cocktail" },
-
- {0 , 0xfe, 0 , 2 , "Coin Mode" },
- {0x13, 0x01, 0x04, 0x04, "Mode 1" },
- {0x13, 0x01, 0x04, 0x00, "Mode 2" },
-
- {0 , 0xfe, 0 , 2 , "Freeze" },
- {0x13, 0x01, 0x10, 0x10, "Off" },
- {0x13, 0x01, 0x10, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2 , "Level Selection Mode" },
- {0x13, 0x01, 0x20, 0x20, "Off" },
- {0x13, 0x01, 0x20, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2 , "Invulnerability" },
- {0x13, 0x01, 0x40, 0x40, "Off" },
- {0x13, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2 , "Service Mode" },
- {0x13, 0x01, 0x80, 0x80, "Off" },
- {0x13, 0x01, 0x80, 0x00, "On" },
-};
-
-STDDIPINFO(Ldrun2)
-
-static struct BurnDIPInfo Ldrun4DIPList[]=
-{
- // Default Values
- {0x12, 0xff, 0xff, 0xff, NULL },
- {0x13, 0xff, 0xff, 0xff, NULL },
-
- // Dip 1
- {0 , 0xfe, 0 , 2 , "Timer" },
- {0x12, 0x01, 0x01, 0x01, "Slow" },
- {0x12, 0x01, 0x01, 0x00, "Fast" },
-
- {0 , 0xfe, 0 , 2 , "2 Players Game" },
- {0x12, 0x01, 0x02, 0x00, "1 Credit" },
- {0x12, 0x01, 0x02, 0x02, "2 Credits" },
-
- {0 , 0xfe, 0 , 4 , "1 Player Lives" },
- {0x12, 0x01, 0x0c, 0x08, "2" },
- {0x12, 0x01, 0x0c, 0x0c, "3" },
- {0x12, 0x01, 0x0c, 0x04, "4" },
- {0x12, 0x01, 0x0c, 0x00, "5" },
-
- IREM_Z80_COINAGE_TYPE3
-
- // Dip 2
- {0 , 0xfe, 0 , 2 , "Flip Screen" },
- {0x13, 0x01, 0x01, 0x01, "Off" },
- {0x13, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2 , "2 Players Lives" },
- {0x13, 0x01, 0x02, 0x02, "5" },
- {0x13, 0x01, 0x02, 0x00, "6" },
-
- {0 , 0xfe, 0 , 2 , "Coin Mode" },
- {0x13, 0x01, 0x04, 0x04, "Mode 1" },
- {0x13, 0x01, 0x04, 0x00, "Mode 2" },
-
- {0 , 0xfe, 0 , 2 , "Allow 2 Player Game" },
- {0x13, 0x01, 0x10, 0x00, "Off" },
- {0x13, 0x01, 0x10, 0x10, "On" },
-
- {0 , 0xfe, 0 , 2 , "Level Selection Mode" },
- {0x13, 0x01, 0x20, 0x20, "Off" },
- {0x13, 0x01, 0x20, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2 , "Invulnerability" },
- {0x13, 0x01, 0x40, 0x40, "Off" },
- {0x13, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2 , "Service Mode" },
- {0x13, 0x01, 0x80, 0x80, "Off" },
- {0x13, 0x01, 0x80, 0x00, "On" },
-};
-
-STDDIPINFO(Ldrun4)
-
-static struct BurnDIPInfo LotlotDIPList[]=
-{
- // Default Values
- {0x12, 0xff, 0xff, 0xff, NULL },
- {0x13, 0xff, 0xff, 0xf5, NULL },
-
- // Dip 1
- {0 , 0xfe, 0 , 4 , "Speed" },
- {0x12, 0x01, 0x03, 0x03, "Very Slow" },
- {0x12, 0x01, 0x03, 0x02, "Slow" },
- {0x12, 0x01, 0x03, 0x01, "Fast" },
- {0x12, 0x01, 0x03, 0x00, "Very Fast" },
-
- {0 , 0xfe, 0 , 4 , "Lives" },
- {0x12, 0x01, 0x0c, 0x08, "1" },
- {0x12, 0x01, 0x0c, 0x0c, "2" },
- {0x12, 0x01, 0x0c, 0x04, "3" },
- {0x12, 0x01, 0x0c, 0x00, "4" },
-
- IREM_Z80_COINAGE_TYPE4
-
- // Dip 2
- {0 , 0xfe, 0 , 2 , "Flip Screen" },
- {0x13, 0x01, 0x01, 0x01, "Off" },
- {0x13, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x13, 0x01, 0x02, 0x00, "Upright" },
- {0x13, 0x01, 0x02, 0x02, "Cocktail" },
-
- {0 , 0xfe, 0 , 2 , "Coin Mode" },
- {0x13, 0x01, 0x04, 0x04, "Mode 1" },
- {0x13, 0x01, 0x04, 0x00, "Mode 2" },
-
- {0 , 0xfe, 0 , 2 , "Demo Sounds" },
- {0x13, 0x01, 0x08, 0x08, "Off" },
- {0x13, 0x01, 0x08, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2 , "Freeze" },
- {0x13, 0x01, 0x10, 0x10, "Off" },
- {0x13, 0x01, 0x10, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2 , "Invulnerability" },
- {0x13, 0x01, 0x40, 0x40, "Off" },
- {0x13, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2 , "Service Mode" },
- {0x13, 0x01, 0x80, 0x80, "Off" },
- {0x13, 0x01, 0x80, 0x00, "On" },
-};
-
-STDDIPINFO(Lotlot)
-
-static struct BurnDIPInfo KidnikiDIPList[]=
-{
- // Default Values
- {0x12, 0xff, 0xff, 0xff, NULL },
- {0x13, 0xff, 0xff, 0xff, NULL },
-
- // Dip 1
- {0 , 0xfe, 0 , 4 , "Lives" },
- {0x12, 0x01, 0x03, 0x02, "2" },
- {0x12, 0x01, 0x03, 0x03, "3" },
- {0x12, 0x01, 0x03, 0x01, "4" },
- {0x12, 0x01, 0x03, 0x00, "5" },
-
- {0 , 0xfe, 0 , 2 , "Difficulty" },
- {0x12, 0x01, 0x04, 0x04, "Normal" },
- {0x12, 0x01, 0x04, 0x00, "Hard" },
-
- {0 , 0xfe, 0 , 2 , "Bonus Life" },
- {0x12, 0x01, 0x08, 0x08, "50000" },
- {0x12, 0x01, 0x08, 0x00, "80000" },
-
- IREM_Z80_COINAGE_TYPE4
-
- // Dip 2
- {0 , 0xfe, 0 , 2 , "Flip Screen" },
- {0x13, 0x01, 0x01, 0x01, "Off" },
- {0x13, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x13, 0x01, 0x02, 0x00, "Upright" },
- {0x13, 0x01, 0x02, 0x02, "Cocktail" },
-
- {0 , 0xfe, 0 , 2 , "Coin Mode" },
- {0x13, 0x01, 0x04, 0x04, "Mode 1" },
- {0x13, 0x01, 0x04, 0x00, "Mode 2" },
-
- {0 , 0xfe, 0 , 2 , "Game Repeats" },
- {0x13, 0x01, 0x08, 0x08, "Off" },
- {0x13, 0x01, 0x08, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2 , "Allow Continue" },
- {0x13, 0x01, 0x10, 0x00, "Off" },
- {0x13, 0x01, 0x10, 0x10, "On" },
-
- {0 , 0xfe, 0 , 2 , "Freeze" },
- {0x13, 0x01, 0x20, 0x20, "Off" },
- {0x13, 0x01, 0x20, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2 , "Invulnerability" },
- {0x13, 0x01, 0x40, 0x40, "Off" },
- {0x13, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2 , "Service Mode" },
- {0x13, 0x01, 0x80, 0x80, "Off" },
- {0x13, 0x01, 0x80, 0x00, "On" },
-};
-
-STDDIPINFO(Kidniki)
-
-static struct BurnDIPInfo SpelunkrDIPList[]=
-{
- // Default Values
- {0x12, 0xff, 0xff, 0xff, NULL },
- {0x13, 0xff, 0xff, 0xf5, NULL },
-
- // Dip 1
- {0 , 0xfe, 0 , 4 , "Energy Decrease" },
- {0x12, 0x01, 0x03, 0x03, "Slow" },
- {0x12, 0x01, 0x03, 0x02, "Medium" },
- {0x12, 0x01, 0x03, 0x01, "Fast" },
- {0x12, 0x01, 0x03, 0x00, "Fastest" },
-
- {0 , 0xfe, 0 , 4 , "Lives" },
- {0x12, 0x01, 0x0c, 0x08, "2" },
- {0x12, 0x01, 0x0c, 0x0c, "3" },
- {0x12, 0x01, 0x0c, 0x04, "4" },
- {0x12, 0x01, 0x0c, 0x00, "5" },
-
- IREM_Z80_COINAGE_TYPE4
-
- // Dip 2
- {0 , 0xfe, 0 , 2 , "Flip Screen" },
- {0x13, 0x01, 0x01, 0x01, "Off" },
- {0x13, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x13, 0x01, 0x02, 0x00, "Upright" },
- {0x13, 0x01, 0x02, 0x02, "Cocktail" },
-
- {0 , 0xfe, 0 , 2 , "Coin Mode" },
- {0x13, 0x01, 0x04, 0x04, "Mode 1" },
- {0x13, 0x01, 0x04, 0x00, "Mode 2" },
-
- {0 , 0xfe, 0 , 2 , "Allow Continue" },
- {0x13, 0x01, 0x08, 0x08, "Off" },
- {0x13, 0x01, 0x08, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2 , "Teleport" },
- {0x13, 0x01, 0x10, 0x10, "Off" },
- {0x13, 0x01, 0x10, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2 , "Freeze" },
- {0x13, 0x01, 0x20, 0x20, "Off" },
- {0x13, 0x01, 0x20, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2 , "Invulnerability" },
- {0x13, 0x01, 0x40, 0x40, "Off" },
- {0x13, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2 , "Service Mode" },
- {0x13, 0x01, 0x80, 0x80, "Off" },
- {0x13, 0x01, 0x80, 0x00, "On" },
-};
-
-STDDIPINFO(Spelunkr)
-
-static struct BurnDIPInfo Spelunk2DIPList[]=
-{
- // Default Values
- {0x12, 0xff, 0xff, 0xff, NULL },
- {0x13, 0xff, 0xff, 0xff, NULL },
-
- // Dip 1
- {0 , 0xfe, 0 , 4 , "Energy Decrease" },
- {0x12, 0x01, 0x03, 0x03, "Slow" },
- {0x12, 0x01, 0x03, 0x02, "Medium" },
- {0x12, 0x01, 0x03, 0x01, "Fast" },
- {0x12, 0x01, 0x03, 0x00, "Fastest" },
-
- {0 , 0xfe, 0 , 4 , "Lives" },
- {0x12, 0x01, 0x0c, 0x08, "2" },
- {0x12, 0x01, 0x0c, 0x0c, "3" },
- {0x12, 0x01, 0x0c, 0x04, "4" },
- {0x12, 0x01, 0x0c, 0x00, "5" },
-
- IREM_Z80_COINAGE_TYPE4
-
- // Dip 2
- {0 , 0xfe, 0 , 2 , "Flip Screen" },
- {0x13, 0x01, 0x01, 0x01, "Off" },
- {0x13, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x13, 0x01, 0x02, 0x00, "Upright" },
- {0x13, 0x01, 0x02, 0x02, "Cocktail" },
-
- {0 , 0xfe, 0 , 2 , "Coin Mode" },
- {0x13, 0x01, 0x04, 0x04, "Mode 1" },
- {0x13, 0x01, 0x04, 0x00, "Mode 2" },
-
- {0 , 0xfe, 0 , 2 , "Allow Continue" },
- {0x13, 0x01, 0x08, 0x00, "Off" },
- {0x13, 0x01, 0x08, 0x08, "On" },
-
- {0 , 0xfe, 0 , 2 , "Demo Sounds" },
- {0x13, 0x01, 0x10, 0x00, "Off" },
- {0x13, 0x01, 0x10, 0x10, "On" },
-
- {0 , 0xfe, 0 , 2 , "Freeze" },
- {0x13, 0x01, 0x20, 0x20, "Off" },
- {0x13, 0x01, 0x20, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2 , "Invulnerability" },
- {0x13, 0x01, 0x40, 0x40, "Off" },
- {0x13, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2 , "Service Mode" },
- {0x13, 0x01, 0x80, 0x80, "Off" },
- {0x13, 0x01, 0x80, 0x00, "On" },
-};
-
-STDDIPINFO(Spelunk2)
-
-static struct BurnDIPInfo YoujyudnDIPList[]=
-{
- // Default Values
- {0x12, 0xff, 0xff, 0xff, NULL },
- {0x13, 0xff, 0xff, 0xfd, NULL },
-
- // Dip 1
- {0 , 0xfe, 0 , 4 , "Lives" },
- {0x12, 0x01, 0x03, 0x02, "2" },
- {0x12, 0x01, 0x03, 0x03, "3" },
- {0x12, 0x01, 0x03, 0x01, "4" },
- {0x12, 0x01, 0x03, 0x00, "5" },
-
- IREM_Z80_COINAGE_TYPE4
-
- // Dip 2
- {0 , 0xfe, 0 , 2 , "Flip Screen" },
- {0x13, 0x01, 0x01, 0x01, "Off" },
- {0x13, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x13, 0x01, 0x02, 0x00, "Upright" },
- {0x13, 0x01, 0x02, 0x02, "Cocktail" },
-
- {0 , 0xfe, 0 , 2 , "Coin Mode" },
- {0x13, 0x01, 0x04, 0x04, "Mode 1" },
- {0x13, 0x01, 0x04, 0x00, "Mode 2" },
-
- {0 , 0xfe, 0 , 2 , "Bonus Life" },
- {0x13, 0x01, 0x08, 0x08, "20000 60000" },
- {0x13, 0x01, 0x08, 0x00, "40000 80000" },
-
- {0 , 0xfe, 0 , 2 , "Demo Sounds" },
- {0x13, 0x01, 0x10, 0x00, "Off" },
- {0x13, 0x01, 0x10, 0x10, "On" },
-
- {0 , 0xfe, 0 , 2 , "Level Selection Mode" },
- {0x13, 0x01, 0x20, 0x20, "Off" },
- {0x13, 0x01, 0x20, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2 , "Invulnerability" },
- {0x13, 0x01, 0x40, 0x40, "Off" },
- {0x13, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2 , "Service Mode" },
- {0x13, 0x01, 0x80, 0x80, "Off" },
- {0x13, 0x01, 0x80, 0x00, "On" },
-};
-
-STDDIPINFO(Youjyudn)
-
-static struct BurnDIPInfo HorizonDIPList[]=
-{
- // Default Values
- {0x12, 0xff, 0xff, 0xff, NULL },
- {0x13, 0xff, 0xff, 0xfd, NULL },
-
- // Dip 1
- {0 , 0xfe, 0 , 4 , "Lives" },
- {0x12, 0x01, 0x03, 0x00, "2" },
- {0x12, 0x01, 0x03, 0x03, "3" },
- {0x12, 0x01, 0x03, 0x01, "4" },
- {0x12, 0x01, 0x03, 0x02, "5" },
-
- {0 , 0xfe, 0 , 4 , "Bonus Life" },
- {0x12, 0x01, 0x0c, 0x00, "100 and 80k" },
- {0x12, 0x01, 0x0c, 0x0c, "40k and every 80k" },
- {0x12, 0x01, 0x0c, 0x08, "60k and every 100k" },
- {0x12, 0x01, 0x0c, 0x04, "80k and every 120k" },
-
- IREM_Z80_COINAGE_TYPE5
-
- // Dip 2
- {0 , 0xfe, 0 , 2 , "Flip Screen" },
- {0x13, 0x01, 0x01, 0x01, "Off" },
- {0x13, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x13, 0x01, 0x02, 0x00, "Upright" },
- {0x13, 0x01, 0x02, 0x02, "Cocktail" },
-
- {0 , 0xfe, 0 , 2 , "Coin Mode" },
- {0x13, 0x01, 0x04, 0x04, "Mode 1" },
- {0x13, 0x01, 0x04, 0x00, "Mode 2" },
-
- {0 , 0xfe, 0 , 2 , "Freeze" },
- {0x13, 0x01, 0x08, 0x08, "Off" },
- {0x13, 0x01, 0x08, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2 , "Frame Advance" },
- {0x13, 0x01, 0x10, 0x10, "Off" },
- {0x13, 0x01, 0x10, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2 , "Invulnerability" },
- {0x13, 0x01, 0x40, 0x40, "Off" },
- {0x13, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2 , "Service Mode" },
- {0x13, 0x01, 0x80, 0x80, "Off" },
- {0x13, 0x01, 0x80, 0x00, "On" },
-};
-
-STDDIPINFO(Horizon)
-
-static struct BurnRomInfo KungfumRomDesc[] = {
- { "a-4e-c.bin", 0x04000, 0xb6e2d083, BRF_ESS | BRF_PRG }, // 0 Z80 Program Code
- { "a-4d-c.bin", 0x04000, 0x7532918e, BRF_ESS | BRF_PRG }, // 1
-
- { "a-3e-.bin", 0x02000, 0x58e87ab0, BRF_ESS | BRF_PRG }, // 2 M6803 Program Code
- { "a-3f-.bin", 0x02000, 0xc81e31ea, BRF_ESS | BRF_PRG }, // 3
- { "a-3h-.bin", 0x02000, 0xd99fb995, BRF_ESS | BRF_PRG }, // 4
-
- { "g-4c-a.bin", 0x02000, 0x6b2cc9c8, BRF_GRA }, // 5 Characters
- { "g-4d-a.bin", 0x02000, 0xc648f558, BRF_GRA }, // 6
- { "g-4e-a.bin", 0x02000, 0xfbe9276e, BRF_GRA }, // 7
-
- { "b-4k-.bin", 0x02000, 0x16fb5150, BRF_GRA }, // 8 Sprites
- { "b-4f-.bin", 0x02000, 0x67745a33, BRF_GRA }, // 9
- { "b-4l-.bin", 0x02000, 0xbd1c2261, BRF_GRA }, // 10
- { "b-4h-.bin", 0x02000, 0x8ac5ed3a, BRF_GRA }, // 11
- { "b-3n-.bin", 0x02000, 0x28a213aa, BRF_GRA }, // 12
- { "b-4n-.bin", 0x02000, 0xd5228df3, BRF_GRA }, // 13
- { "b-4m-.bin", 0x02000, 0xb16de4f2, BRF_GRA }, // 14
- { "b-3m-.bin", 0x02000, 0xeba0d66b, BRF_GRA }, // 15
- { "b-4c-.bin", 0x02000, 0x01298885, BRF_GRA }, // 16
- { "b-4e-.bin", 0x02000, 0xc77b87d4, BRF_GRA }, // 17
- { "b-4d-.bin", 0x02000, 0x6a70615f, BRF_GRA }, // 18
- { "b-4a-.bin", 0x02000, 0x6189d626, BRF_GRA }, // 19
-
- { "g-1j-.bin", 0x00100, 0x668e6bca, BRF_GRA }, // 20 PROM (Tile Palette Red Component)
- { "b-1m-.bin", 0x00100, 0x76c05a9c, BRF_GRA }, // 21 PROM (Sprite Palette Red Component)
- { "g-1f-.bin", 0x00100, 0x964b6495, BRF_GRA }, // 22 PROM (Tile Palette Green Component)
- { "b-1n-.bin", 0x00100, 0x23f06b99, BRF_GRA }, // 23 PROM (Sprite Palette Green Component)
- { "g-1h-.bin", 0x00100, 0x550563e1, BRF_GRA }, // 24 PROM (Tile Palette Blue Component)
- { "b-1l-.bin", 0x00100, 0x35e45021, BRF_GRA }, // 25 PROM (Sprite Palette Blue Component)
- { "b-5f-.bin", 0x00020, 0x7a601c3d, BRF_GRA }, // 26 PROM (Sprite Height)
- { "b-6f-.bin", 0x00100, 0x82c20d12, BRF_GRA }, // 27 PROM (Video Timing)
-};
-
-STD_ROM_PICK(Kungfum)
-STD_ROM_FN(Kungfum)
-
-static struct BurnRomInfo KungfumdRomDesc[] = {
- { "snx_a-4e-d", 0x04000, 0xfc330a46, BRF_ESS | BRF_PRG }, // 0 Z80 Program Code
- { "snx_a-4d-d", 0x04000, 0x1b2fd32f, BRF_ESS | BRF_PRG }, // 1
-
- { "snx_a-3d-b", 0x04000, 0x85ca7956, BRF_ESS | BRF_PRG }, // 2 M6803 Program Code
- { "snx_a-3f-b", 0x04000, 0x3ef1100a, BRF_ESS | BRF_PRG }, // 3
-
- { "g-4c-a.bin", 0x02000, 0x6b2cc9c8, BRF_GRA }, // 4 Characters
- { "g-4d-a.bin", 0x02000, 0xc648f558, BRF_GRA }, // 5
- { "g-4e-a.bin", 0x02000, 0xfbe9276e, BRF_GRA }, // 6
-
- { "snx_b-4k-b", 0x04000, 0x85591db2, BRF_GRA }, // 7 Sprites
- { "snx_b-4f-b", 0x04000, 0xed719d7b, BRF_GRA }, // 8
- { "snx_b-3n-b", 0x04000, 0x05fcce8b, BRF_GRA }, // 9
- { "snx_b-4n-b", 0x04000, 0xdc675003, BRF_GRA }, // 10
- { "snx_b-4c-b", 0x04000, 0x1df11d81, BRF_GRA }, // 11
- { "snx_b-4e-b", 0x04000, 0x2d3b69dd, BRF_GRA }, // 12
-
- { "g-1j-.bin", 0x00100, 0x668e6bca, BRF_GRA }, // 13 PROM (Tile Palette Red Component)
- { "b-1m-.bin", 0x00100, 0x76c05a9c, BRF_GRA }, // 14 PROM (Sprite Palette Red Component)
- { "g-1f-.bin", 0x00100, 0x964b6495, BRF_GRA }, // 15 PROM (Tile Palette Green Component)
- { "b-1n-.bin", 0x00100, 0x23f06b99, BRF_GRA }, // 16 PROM (Sprite Palette Green Component)
- { "g-1h-.bin", 0x00100, 0x550563e1, BRF_GRA }, // 17 PROM (Tile Palette Blue Component)
- { "b-1l-.bin", 0x00100, 0x35e45021, BRF_GRA }, // 18 PROM (Sprite Palette Blue Component)
- { "b-5f-.bin", 0x00020, 0x7a601c3d, BRF_GRA }, // 19 PROM (Sprite Height)
- { "b-6f-.bin", 0x00100, 0x82c20d12, BRF_GRA }, // 20 PROM (Video Timing)
-};
-
-STD_ROM_PICK(Kungfumd)
-STD_ROM_FN(Kungfumd)
-
-static struct BurnRomInfo SpartanxRomDesc[] = {
- { "a-4e-c-j.bin", 0x04000, 0x32a0a9a6, BRF_ESS | BRF_PRG }, // 0 Z80 Program Code
- { "a-4d-c-j.bin", 0x04000, 0x3173ea78, BRF_ESS | BRF_PRG }, // 1
-
- { "a-3e-.bin", 0x02000, 0x58e87ab0, BRF_ESS | BRF_PRG }, // 2 M6803 Program Code
- { "a-3f-.bin", 0x02000, 0xc81e31ea, BRF_ESS | BRF_PRG }, // 3
- { "a-3h-.bin", 0x02000, 0xd99fb995, BRF_ESS | BRF_PRG }, // 4
-
- { "g-4c-a-j.bin", 0x02000, 0x8af9c5a6, BRF_GRA }, // 5 Characters
- { "g-4d-a-j.bin", 0x02000, 0xb8300c72, BRF_GRA }, // 6
- { "g-4e-a-j.bin", 0x02000, 0xb50429cd, BRF_GRA }, // 7
-
- { "b-4k-.bin", 0x02000, 0x16fb5150, BRF_GRA }, // 8 Sprites
- { "b-4f-.bin", 0x02000, 0x67745a33, BRF_GRA }, // 9
- { "b-4l-.bin", 0x02000, 0xbd1c2261, BRF_GRA }, // 10
- { "b-4h-.bin", 0x02000, 0x8ac5ed3a, BRF_GRA }, // 11
- { "b-3n-.bin", 0x02000, 0x28a213aa, BRF_GRA }, // 12
- { "b-4n-.bin", 0x02000, 0xd5228df3, BRF_GRA }, // 13
- { "b-4m-.bin", 0x02000, 0xb16de4f2, BRF_GRA }, // 14
- { "b-3m-.bin", 0x02000, 0xeba0d66b, BRF_GRA }, // 15
- { "b-4c-.bin", 0x02000, 0x01298885, BRF_GRA }, // 16
- { "b-4e-.bin", 0x02000, 0xc77b87d4, BRF_GRA }, // 17
- { "b-4d-.bin", 0x02000, 0x6a70615f, BRF_GRA }, // 18
- { "b-4a-.bin", 0x02000, 0x6189d626, BRF_GRA }, // 19
-
- { "g-1j-.bin", 0x00100, 0x668e6bca, BRF_GRA }, // 20 PROM (Tile Palette Red Component)
- { "b-1m-.bin", 0x00100, 0x76c05a9c, BRF_GRA }, // 21 PROM (Sprite Palette Red Component)
- { "g-1f-.bin", 0x00100, 0x964b6495, BRF_GRA }, // 22 PROM (Tile Palette Green Component)
- { "b-1n-.bin", 0x00100, 0x23f06b99, BRF_GRA }, // 23 PROM (Sprite Palette Green Component)
- { "g-1h-.bin", 0x00100, 0x550563e1, BRF_GRA }, // 24 PROM (Tile Palette Blue Component)
- { "b-1l-.bin", 0x00100, 0x35e45021, BRF_GRA }, // 25 PROM (Sprite Palette Blue Component)
- { "b-5f-.bin", 0x00020, 0x7a601c3d, BRF_GRA }, // 26 PROM (Sprite Height)
- { "b-6f-.bin", 0x00100, 0x82c20d12, BRF_GRA }, // 27 PROM (Video Timing)
-};
-
-STD_ROM_PICK(Spartanx)
-STD_ROM_FN(Spartanx)
-
-static struct BurnRomInfo KungfubRomDesc[] = {
- { "c5.5h", 0x04000, 0x5d8e791d, BRF_ESS | BRF_PRG }, // 0 Z80 Program Code
- { "c4.5k", 0x04000, 0x4000e2b8, BRF_ESS | BRF_PRG }, // 1
-
- { "a-3e-.bin", 0x02000, 0x58e87ab0, BRF_ESS | BRF_PRG }, // 2 M6803 Program Code
- { "a-3f-.bin", 0x02000, 0xc81e31ea, BRF_ESS | BRF_PRG }, // 3
- { "a-3h-.bin", 0x02000, 0xd99fb995, BRF_ESS | BRF_PRG }, // 4
-
- { "g-4c-a.bin", 0x02000, 0x6b2cc9c8, BRF_GRA }, // 5 Characters
- { "g-4d-a.bin", 0x02000, 0xc648f558, BRF_GRA }, // 6
- { "g-4e-a.bin", 0x02000, 0xfbe9276e, BRF_GRA }, // 7
-
- { "b-4k-.bin", 0x02000, 0x16fb5150, BRF_GRA }, // 8 Sprites
- { "b-4f-.bin", 0x02000, 0x67745a33, BRF_GRA }, // 9
- { "b-4l-.bin", 0x02000, 0xbd1c2261, BRF_GRA }, // 10
- { "b-4h-.bin", 0x02000, 0x8ac5ed3a, BRF_GRA }, // 11
- { "b-3n-.bin", 0x02000, 0x28a213aa, BRF_GRA }, // 12
- { "b-4n-.bin", 0x02000, 0xd5228df3, BRF_GRA }, // 13
- { "b-4m-.bin", 0x02000, 0xb16de4f2, BRF_GRA }, // 14
- { "b-3m-.bin", 0x02000, 0xeba0d66b, BRF_GRA }, // 15
- { "b-4c-.bin", 0x02000, 0x01298885, BRF_GRA }, // 16
- { "b-4e-.bin", 0x02000, 0xc77b87d4, BRF_GRA }, // 17
- { "b-4d-.bin", 0x02000, 0x6a70615f, BRF_GRA }, // 18
- { "b-4a-.bin", 0x02000, 0x6189d626, BRF_GRA }, // 19
-
- { "tbp24s10-main-1c.bin", 0x00100, 0x668e6bca, BRF_GRA }, // 20 PROM (Tile Palette Red Component)
- { "tbp24s10-gfx-1r.bin", 0x00100, 0x76c05a9c, BRF_GRA }, // 21 PROM (Sprite Palette Red Component)
- { "tbp24s10-main-1a.bin", 0x00100, 0x964b6495, BRF_GRA }, // 22 PROM (Tile Palette Green Component)
- { "tbp24s10-gfx-1s.bin", 0x00100, 0x23f06b99, BRF_GRA }, // 23 PROM (Sprite Palette Green Component)
- { "tbp24s10-main-1b.bin", 0x00100, 0x550563e1, BRF_GRA }, // 24 PROM (Tile Palette Blue Component)
- { "tbp24s10-gfx-1p.bin", 0x00100, 0x35e45021, BRF_GRA }, // 25 PROM (Sprite Palette Blue Component)
- { "18s030-gfx-8t.bin", 0x00020, 0x7a601c3d, BRF_GRA }, // 26 PROM (Sprite Height)
- { "tbp24s10-gfx-9k.bin", 0x00100, 0x82c20d12, BRF_GRA }, // 27 PROM (Video Timing)
- { "18s030-gfx-10a.bin", 0x00020, 0x3858acd0, BRF_OPT }, // 27
- { "18s030-gfx-5d.bin", 0x00020, 0x51304fcd, BRF_OPT }, // 28
- { "18s030-gfx-5e.bin", 0x00020, 0x51304fcd, BRF_OPT }, // 29
- { "18s030-gfx-6l.bin", 0x00020, 0x3858acd0, BRF_OPT }, // 30
- { "tbp24s10-gfx-3b.bin", 0x00100, 0xe6506ef4, BRF_OPT }, // 31
- { "tbp24s10-gfx-4a.bin", 0x00100, 0xe0aa8869, BRF_OPT }, // 32
- { "tbp24s10-gfx-4c.bin", 0x00100, 0xb43d094f, BRF_OPT }, // 33
- { "tbp24s10-gfx-6d.bin", 0x00100, 0x48bb39c9, BRF_OPT }, // 34
- { "tbp24s10-gfx-6e.bin", 0x00100, 0x48bb39c9, BRF_OPT }, // 35
- { "tbp24s10-gfx-6m.bin", 0x00100, 0x9f7a1a4d, BRF_OPT }, // 36
- { "tbp24s10-gfx-6n.bin", 0x00100, 0x35e5b39e, BRF_OPT }, // 37
- { "tbp24s10-gfx-8a.bin", 0x00100, 0x35e5b39e, BRF_OPT }, // 38
- { "tbp24s10-gfx-9a.bin", 0x00100, 0x9f7a1a4d, BRF_OPT }, // 39
- { "tbp24s10-gfx-9k.bin", 0x00100, 0x82c20d12, BRF_OPT }, // 40
- { "tbp24s10-main-8b.bin", 0x00100, 0x180fbc57, BRF_OPT }, // 41
- { "tbp24s10-main-8c.bin", 0x00100, 0x3bb32e5a, BRF_OPT }, // 42
- { "tbp24s10-main-8d.bin", 0x00100, 0x599c319f, BRF_OPT }, // 43
-};
-
-STD_ROM_PICK(Kungfub)
-STD_ROM_FN(Kungfub)
-
-static struct BurnRomInfo Kungfub2RomDesc[] = {
- { "kf4", 0x04000, 0x3f65313f, BRF_ESS | BRF_PRG }, // 0 Z80 Program Code
- { "kf5", 0x04000, 0x9ea325f3, BRF_ESS | BRF_PRG }, // 1
-
- { "a-3e-.bin", 0x02000, 0x58e87ab0, BRF_ESS | BRF_PRG }, // 2 M6803 Program Code
- { "a-3f-.bin", 0x02000, 0xc81e31ea, BRF_ESS | BRF_PRG }, // 3
- { "a-3h-.bin", 0x02000, 0xd99fb995, BRF_ESS | BRF_PRG }, // 4
-
- { "g-4c-a.bin", 0x02000, 0x6b2cc9c8, BRF_GRA }, // 5 Characters
- { "g-4d-a.bin", 0x02000, 0xc648f558, BRF_GRA }, // 6
- { "g-4e-a.bin", 0x02000, 0xfbe9276e, BRF_GRA }, // 7
-
- { "b-4k-.bin", 0x02000, 0x16fb5150, BRF_GRA }, // 8 Sprites
- { "b-4f-.bin", 0x02000, 0x67745a33, BRF_GRA }, // 9
- { "b-4l-.bin", 0x02000, 0xbd1c2261, BRF_GRA }, // 10
- { "b-4h-.bin", 0x02000, 0x8ac5ed3a, BRF_GRA }, // 11
- { "b-3n-.bin", 0x02000, 0x28a213aa, BRF_GRA }, // 12
- { "b-4n-.bin", 0x02000, 0xd5228df3, BRF_GRA }, // 13
- { "b-4m-.bin", 0x02000, 0xb16de4f2, BRF_GRA }, // 14
- { "b-3m-.bin", 0x02000, 0xeba0d66b, BRF_GRA }, // 15
- { "b-4c-.bin", 0x02000, 0x01298885, BRF_GRA }, // 16
- { "b-4e-.bin", 0x02000, 0xc77b87d4, BRF_GRA }, // 17
- { "b-4d-.bin", 0x02000, 0x6a70615f, BRF_GRA }, // 18
- { "b-4a-.bin", 0x02000, 0x6189d626, BRF_GRA }, // 19
-
- { "g-1j-.bin", 0x00100, 0x668e6bca, BRF_GRA }, // 20 PROM (Tile Palette Red Component)
- { "b-1m-.bin", 0x00100, 0x76c05a9c, BRF_GRA }, // 21 PROM (Sprite Palette Red Component)
- { "g-1f-.bin", 0x00100, 0x964b6495, BRF_GRA }, // 22 PROM (Tile Palette Green Component)
- { "b-1n-.bin", 0x00100, 0x23f06b99, BRF_GRA }, // 23 PROM (Sprite Palette Green Component)
- { "g-1h-.bin", 0x00100, 0x550563e1, BRF_GRA }, // 24 PROM (Tile Palette Blue Component)
- { "b-1l-.bin", 0x00100, 0x35e45021, BRF_GRA }, // 25 PROM (Sprite Palette Blue Component)
- { "b-5f-.bin", 0x00020, 0x7a601c3d, BRF_GRA }, // 26 PROM (Sprite Height)
- { "b-6f-.bin", 0x00100, 0x82c20d12, BRF_GRA }, // 27 PROM (Video Timing)
-};
-
-STD_ROM_PICK(Kungfub2)
-STD_ROM_FN(Kungfub2)
-
-static struct BurnRomInfo Kungfub3RomDesc[] = {
- { "5.bin", 0x04000, 0x5d8e791d, BRF_ESS | BRF_PRG }, // 0 Z80 Program Code
- { "4.bin", 0x04000, 0x4000e2b8, BRF_ESS | BRF_PRG }, // 1
-
- { "1.bin", 0x02000, 0x58e87ab0, BRF_ESS | BRF_PRG }, // 2 M6803 Program Code
- { "2.bin", 0x02000, 0xc81e31ea, BRF_ESS | BRF_PRG }, // 3
- { "3.bin", 0x02000, 0xd99fb995, BRF_ESS | BRF_PRG }, // 4
-
- { "6.bin", 0x02000, 0x6b2cc9c8, BRF_GRA }, // 4 Characters
- { "7.bin", 0x02000, 0xc648f558, BRF_GRA }, // 5
- { "8.bin", 0x02000, 0xfbe9276e, BRF_GRA }, // 6
-
- { "14.bin", 0x04000, 0x85591db2, BRF_GRA }, // 7 Sprites
- { "13.bin", 0x04000, 0xed719d7b, BRF_GRA }, // 8
- { "16.bin", 0x04000, 0x05fcce8b, BRF_GRA }, // 9
- { "15.bin", 0x04000, 0xdc675003, BRF_GRA }, // 10
- { "11.bin", 0x04000, 0x1df11d81, BRF_GRA }, // 11
- { "12.bin", 0x04000, 0x2d3b69dd, BRF_GRA }, // 12
-
- { "g-1j-.bin", 0x00100, 0x668e6bca, BRF_GRA }, // 13 PROM (Tile Palette Red Component)
- { "b-1m-.bin", 0x00100, 0x76c05a9c, BRF_GRA }, // 14 PROM (Sprite Palette Red Component)
- { "g-1f-.bin", 0x00100, 0x964b6495, BRF_GRA }, // 15 PROM (Tile Palette Green Component)
- { "b-1n-.bin", 0x00100, 0x23f06b99, BRF_GRA }, // 16 PROM (Sprite Palette Green Component)
- { "g-1h-.bin", 0x00100, 0x550563e1, BRF_GRA }, // 17 PROM (Tile Palette Blue Component)
- { "b-1l-.bin", 0x00100, 0x35e45021, BRF_GRA }, // 18 PROM (Sprite Palette Blue Component)
- { "b-5f-.bin", 0x00020, 0x7a601c3d, BRF_GRA }, // 19 PROM (Sprite Height)
- { "b-6f-.bin", 0x00100, 0x82c20d12, BRF_GRA }, // 20 PROM (Video Timing)
-};
-
-STD_ROM_PICK(Kungfub3)
-STD_ROM_FN(Kungfub3)
-
-static struct BurnRomInfo BattroadRomDesc[] = {
- { "br-a-4e.b", 0x02000, 0x9bf14768, BRF_ESS | BRF_PRG }, // 0 Z80 Program Code
- { "br-a-4d.b", 0x02000, 0x39ca1627, BRF_ESS | BRF_PRG }, // 1
- { "br-a-4b.b", 0x02000, 0x1865bb22, BRF_ESS | BRF_PRG }, // 2
- { "br-a-4a", 0x02000, 0x65b61c21, BRF_ESS | BRF_PRG }, // 3
- { "br-c-7c", 0x02000, 0x2e1eca52, BRF_ESS | BRF_PRG }, // 4
- { "br-c-7l", 0x02000, 0xf2178578, BRF_ESS | BRF_PRG }, // 5
- { "br-c-7d", 0x02000, 0x3aa9fa30, BRF_ESS | BRF_PRG }, // 6
- { "br-c-7b", 0x02000, 0x0b31b90b, BRF_ESS | BRF_PRG }, // 7
- { "br-c-7a", 0x02000, 0xec3b0080, BRF_ESS | BRF_PRG }, // 8
- { "br-c-7k", 0x02000, 0xedc75f7f, BRF_ESS | BRF_PRG }, // 9
-
- { "br-a-3e", 0x02000, 0xa7140871, BRF_ESS | BRF_PRG }, // 10 M6803 Program Code
- { "br-a-3f", 0x02000, 0x1bb51b30, BRF_ESS | BRF_PRG }, // 11
- { "br-a-3h", 0x02000, 0xafb3e083, BRF_ESS | BRF_PRG }, // 12
-
- { "br-c-6h", 0x02000, 0xca50841c, BRF_GRA }, // 13 Tiles
- { "br-c-6n", 0x02000, 0x7d53163a, BRF_GRA }, // 14
- { "br-c-6k", 0x02000, 0x5951e12a, BRF_GRA }, // 15
-
- { "br-b-4k.a", 0x02000, 0xd3c5e85b, BRF_GRA }, // 16 Sprites
- { "br-b-4f.a", 0x02000, 0x4354232a, BRF_GRA }, // 17
- { "br-b-3n.a", 0x02000, 0x2668dbef, BRF_GRA }, // 18
- { "br-b-4n.a", 0x02000, 0xc719a324, BRF_GRA }, // 19
- { "br-b-4c.a", 0x02000, 0x0b3193bf, BRF_GRA }, // 20
- { "br-b-4e.a", 0x02000, 0x3662e8fb, BRF_GRA }, // 21
-
- { "br-c-1b", 0x02000, 0x8088911e, BRF_GRA }, // 22 Chars
- { "br-c-1c", 0x02000, 0x3d78b653, BRF_GRA }, // 23
-
- { "br-c-3j", 0x00100, 0xaceaed79, BRF_GRA }, // 24 PROM (Tile Palette Red Component)
- { "br-b-1m", 0x00100, 0x3bd30c7d, BRF_GRA }, // 25 PROM (Sprite Palette Red Component)
- { "br-c-3l", 0x00100, 0x7cf6f380, BRF_GRA }, // 26 PROM (Tile Palette Green Component)
- { "br-b-1n", 0x00100, 0xb7f3dc3b, BRF_GRA }, // 27 PROM (Sprite Palette Green Component)
- { "br-c-3k", 0x00100, 0xd90e4a54, BRF_GRA }, // 28 PROM (Tile Palette Blue Component)
- { "br-b-1l", 0x00100, 0x5271c7d8, BRF_GRA }, // 29 PROM (Sprite Palette Blue Component)
- { "br-b-5p", 0x00020, 0xce746937, BRF_GRA }, // 30 PROM (Sprite Height)
- { "br-b-6f", 0x00100, 0x82c20d12, BRF_GRA }, // 31 PROM (Video Timing)
- { "br-c-1j", 0x00020, 0x78eb5d77, BRF_GRA }, // 32 PROM (Char Palette)
-};
-
-STD_ROM_PICK(Battroad)
-STD_ROM_FN(Battroad)
-
-static struct BurnRomInfo LdrunRomDesc[] = {
- { "lr-a-4e", 0x02000, 0x5d7e2a4d, BRF_ESS | BRF_PRG }, // 0 Z80 Program Code
- { "lr-a-4d", 0x02000, 0x96f20473, BRF_ESS | BRF_PRG }, // 1
- { "lr-a-4b", 0x02000, 0xb041c4a9, BRF_ESS | BRF_PRG }, // 2
- { "lr-a-4a", 0x02000, 0x645e42aa, BRF_ESS | BRF_PRG }, // 3
-
- { "lr-a-3f", 0x02000, 0x7a96accd, BRF_ESS | BRF_PRG }, // 4 M6803 Program Code
- { "lr-a-3h", 0x02000, 0x3f7f3939, BRF_ESS | BRF_PRG }, // 5
-
- { "lr-e-2d", 0x02000, 0x24f9b58d, BRF_GRA }, // 6 Characters
- { "lr-e-2j", 0x02000, 0x43175e08, BRF_GRA }, // 7
- { "lr-e-2f", 0x02000, 0xe0317124, BRF_GRA }, // 8
-
- { "lr-b-4k", 0x02000, 0x8141403e, BRF_GRA }, // 9 Sprites
- { "lr-b-3n", 0x02000, 0x55154154, BRF_GRA }, // 10
- { "lr-b-4c", 0x02000, 0x924e34d0, BRF_GRA }, // 11
-
- { "lr-e-3m", 0x00100, 0x53040416, BRF_GRA }, // 20 PROM (Tile Palette Red Component)
- { "lr-b-1m", 0x00100, 0x4bae1c25, BRF_GRA }, // 21 PROM (Sprite Palette Red Component)
- { "lr-e-3l", 0x00100, 0x67786037, BRF_GRA }, // 22 PROM (Tile Palette Green Component)
- { "lr-b-1n", 0x00100, 0x9cd3db94, BRF_GRA }, // 23 PROM (Sprite Palette Green Component)
- { "lr-e-3n", 0x00100, 0x5b716837, BRF_GRA }, // 24 PROM (Tile Palette Blue Component)
- { "lr-b-1l", 0x00100, 0x08d8cf9a, BRF_GRA }, // 25 PROM (Sprite Palette Blue Component)
- { "lr-b-5p", 0x00020, 0xe01f69e2, BRF_GRA }, // 26 PROM (Sprite Height)
- { "lr-b-6f", 0x00100, 0x34d88d3c, BRF_GRA }, // 27 PROM (Video Timing)
-};
-
-STD_ROM_PICK(Ldrun)
-STD_ROM_FN(Ldrun)
-
-static struct BurnRomInfo LdrunaRomDesc[] = {
- { "roma4c", 0x02000, 0x279421e1, BRF_ESS | BRF_PRG }, // 0 Z80 Program Code
- { "lr-a-4d", 0x02000, 0x96f20473, BRF_ESS | BRF_PRG }, // 1
- { "roma4b", 0x02000, 0x3c464bad, BRF_ESS | BRF_PRG }, // 2
- { "roma4a", 0x02000, 0x899df8e0, BRF_ESS | BRF_PRG }, // 3
-
- { "lr-a-3f", 0x02000, 0x7a96accd, BRF_ESS | BRF_PRG }, // 4 M6803 Program Code
- { "lr-a-3h", 0x02000, 0x3f7f3939, BRF_ESS | BRF_PRG }, // 5
-
- { "lr-e-2d", 0x02000, 0x24f9b58d, BRF_GRA }, // 6 Characters
- { "lr-e-2j", 0x02000, 0x43175e08, BRF_GRA }, // 7
- { "lr-e-2f", 0x02000, 0xe0317124, BRF_GRA }, // 8
-
- { "lr-b-4k", 0x02000, 0x8141403e, BRF_GRA }, // 9 Sprites
- { "lr-b-3n", 0x02000, 0x55154154, BRF_GRA }, // 10
- { "lr-b-4c", 0x02000, 0x924e34d0, BRF_GRA }, // 11
-
- { "lr-e-3m", 0x00100, 0x53040416, BRF_GRA }, // 20 PROM (Tile Palette Red Component)
- { "lr-b-1m", 0x00100, 0x4bae1c25, BRF_GRA }, // 21 PROM (Sprite Palette Red Component)
- { "lr-e-3l", 0x00100, 0x67786037, BRF_GRA }, // 22 PROM (Tile Palette Green Component)
- { "lr-b-1n", 0x00100, 0x9cd3db94, BRF_GRA }, // 23 PROM (Sprite Palette Green Component)
- { "lr-e-3n", 0x00100, 0x5b716837, BRF_GRA }, // 24 PROM (Tile Palette Blue Component)
- { "lr-b-1l", 0x00100, 0x08d8cf9a, BRF_GRA }, // 25 PROM (Sprite Palette Blue Component)
- { "lr-b-5p", 0x00020, 0xe01f69e2, BRF_GRA }, // 26 PROM (Sprite Height)
- { "lr-b-6f", 0x00100, 0x34d88d3c, BRF_GRA }, // 27 PROM (Video Timing)
-};
-
-STD_ROM_PICK(Ldruna)
-STD_ROM_FN(Ldruna)
-
-static struct BurnRomInfo Ldrun2RomDesc[] = {
- { "lr2-a-4e.a", 0x02000, 0x22313327, BRF_ESS | BRF_PRG }, // 0 Z80 Program Code
- { "lr2-a-4d", 0x02000, 0xef645179, BRF_ESS | BRF_PRG }, // 1
- { "lr2-a-4a.a", 0x02000, 0xb11ddf59, BRF_ESS | BRF_PRG }, // 2
- { "lr2-a-4a", 0x02000, 0x470cc8a1, BRF_ESS | BRF_PRG }, // 3
- { "lr2-h-1c.a", 0x02000, 0x7ebcadbc, BRF_ESS | BRF_PRG }, // 4
- { "lr2-h-1d.a", 0x02000, 0x64cbb7f9, BRF_ESS | BRF_PRG }, // 5
-
- { "lr2-a-3e", 0x02000, 0x853f3898, BRF_ESS | BRF_PRG }, // 6 M6803 Program Code
- { "lr2-a-3f", 0x02000, 0x7a96accd, BRF_ESS | BRF_PRG }, // 7
- { "lr2-a-3h", 0x02000, 0x2a0e83ca, BRF_ESS | BRF_PRG }, // 8
-
- { "lr2-h-1e", 0x02000, 0x9d63a8ff, BRF_GRA }, // 9 Characters
- { "lr2-h-1j", 0x02000, 0x40332bbd, BRF_GRA }, // 10
- { "lr2-h-1h", 0x02000, 0x9404727d, BRF_GRA }, // 11
-
- { "lr2-b-4k", 0x02000, 0x79909871, BRF_GRA }, // 12 Sprites
- { "lr2-b-4f", 0x02000, 0x06ba1ef4, BRF_GRA }, // 13
- { "lr2-b-3n", 0x02000, 0x3cc5893f, BRF_GRA }, // 14
- { "lr2-b-4n", 0x02000, 0x49c12f42, BRF_GRA }, // 15
- { "lr2-b-4c", 0x02000, 0xfbe6d24c, BRF_GRA }, // 16
- { "lr2-b-4e", 0x02000, 0x75172d1f, BRF_GRA }, // 17
-
- { "lr2-h-3m", 0x00100, 0x2c5d834b, BRF_GRA }, // 18 PROM (Tile Palette Red Component)
- { "lr2-b-1m", 0x00100, 0x4ec9bb3d, BRF_GRA }, // 19 PROM (Sprite Palette Red Component)
- { "lr2-h-3l", 0x00100, 0x3ae69aca, BRF_GRA }, // 20 PROM (Tile Palette Green Component)
- { "lr2-b-1n", 0x00100, 0x1daf1fa4, BRF_GRA }, // 21 PROM (Sprite Palette Green Component)
- { "lr2-h-3n", 0x00100, 0x2b28aec5, BRF_GRA }, // 22 PROM (Tile Palette Blue Component)
- { "lr2-b-1l", 0x00100, 0xc8fb708a, BRF_GRA }, // 23 PROM (Sprite Palette Blue Component)
- { "lr2-b-5p", 0x00020, 0xe01f69e2, BRF_GRA }, // 24 PROM (Sprite Height)
- { "lr2-b-6f", 0x00100, 0x34d88d3c, BRF_GRA }, // 25 PROM (Video Timing)
-};
-
-STD_ROM_PICK(Ldrun2)
-STD_ROM_FN(Ldrun2)
-
-static struct BurnRomInfo Ldrun3RomDesc[] = {
- { "lr3a4eb.bin", 0x04000, 0x09affc47, BRF_ESS | BRF_PRG }, // 0 Z80 Program Code
- { "lr3a4db.bin", 0x04000, 0x23a02178, BRF_ESS | BRF_PRG }, // 1
- { "lr3a4bb.bin", 0x04000, 0x3d501a1a, BRF_ESS | BRF_PRG }, // 2
-
- { "lr3-a-3d", 0x04000, 0x28be68cd, BRF_ESS | BRF_PRG }, // 3 M6803 Program Code
- { "lr3-a-3f", 0x04000, 0xcb7186b7, BRF_ESS | BRF_PRG }, // 4
-
- { "lr3-n-2a", 0x04000, 0xf9b74dee, BRF_GRA }, // 5 Characters
- { "lr3-n-2c", 0x04000, 0xfef707ba, BRF_GRA }, // 6
- { "lr3-n-2b", 0x04000, 0xaf3d27b9, BRF_GRA }, // 7
-
- { "lr3b4kb.bin", 0x04000, 0x21ecd8c5, BRF_GRA }, // 8 Sprites
- { "snxb4fb.bin", 0x04000, 0xed719d7b, BRF_GRA }, // 9
- { "lr3b3nb.bin", 0x04000, 0xda8cffab, BRF_GRA }, // 10
- { "snxb4nb.bin", 0x04000, 0xdc675003, BRF_GRA }, // 11
- { "snxb4cb.bin", 0x04000, 0x585aa244, BRF_GRA }, // 12
- { "snxb4eb.bin", 0x04000, 0x2d3b69dd, BRF_GRA }, // 13
-
- { "lr3-n-2l", 0x00100, 0xe880b86b, BRF_GRA }, // 14 PROM (Tile Palette Red Component)
- { "lr3-b-1m", 0x00100, 0xf02d7167, BRF_GRA }, // 15 PROM (Sprite Palette Red Component)
- { "lr3-n-2k", 0x00100, 0x047ee051, BRF_GRA }, // 16 PROM (Tile Palette Green Component)
- { "lr3-b-1n", 0x00100, 0x9e37f181, BRF_GRA }, // 17 PROM (Sprite Palette Green Component)
- { "lr3-n-2m", 0x00100, 0x69ad8678, BRF_GRA }, // 18 PROM (Tile Palette Blue Component)
- { "lr3-b-1l", 0x00100, 0x5b11c41d, BRF_GRA }, // 19 PROM (Sprite Palette Blue Component)
- { "lr3-b-5p", 0x00020, 0xe01f69e2, BRF_GRA }, // 20 PROM (Sprite Height)
- { "lr3-b-6f", 0x00100, 0x34d88d3c, BRF_GRA }, // 21 PROM (Video Timing)
- { "lr3-n-4f", 0x00100, 0xdf674be9, BRF_OPT }, // 22 PROM (Unknown)
-};
-
-STD_ROM_PICK(Ldrun3)
-STD_ROM_FN(Ldrun3)
-
-static struct BurnRomInfo Ldrun3jRomDesc[] = {
- { "lr3-a-4e", 0x04000, 0x5b334e8e, BRF_ESS | BRF_PRG }, // 0 Z80 Program Code
- { "lr3-a-4d.a", 0x04000, 0xa84bc931, BRF_ESS | BRF_PRG }, // 1
- { "lr3-a-4b.a", 0x04000, 0xbe09031d, BRF_ESS | BRF_PRG }, // 2
-
- { "lr3-a-3d", 0x04000, 0x28be68cd, BRF_ESS | BRF_PRG }, // 3 M6803 Program Code
- { "lr3-a-3f", 0x04000, 0xcb7186b7, BRF_ESS | BRF_PRG }, // 4
-
- { "lr3-n-2a", 0x04000, 0xf9b74dee, BRF_GRA }, // 5 Characters
- { "lr3-n-2c", 0x04000, 0xfef707ba, BRF_GRA }, // 6
- { "lr3-n-2b", 0x04000, 0xaf3d27b9, BRF_GRA }, // 7
-
- { "lr3-b-4k", 0x04000, 0x63f070c7, BRF_GRA }, // 8 Sprites
- { "lr3-b-3n", 0x04000, 0xeab7ad91, BRF_GRA }, // 9
- { "lr3-b-4c", 0x04000, 0x1a460a46, BRF_GRA }, // 10
-
- { "lr3-n-2l", 0x00100, 0xe880b86b, BRF_GRA }, // 11 PROM (Tile Palette Red Component)
- { "lr3-b-1m", 0x00100, 0xf02d7167, BRF_GRA }, // 12 PROM (Sprite Palette Red Component)
- { "lr3-n-2k", 0x00100, 0x047ee051, BRF_GRA }, // 13 PROM (Tile Palette Green Component)
- { "lr3-b-1n", 0x00100, 0x9e37f181, BRF_GRA }, // 14 PROM (Sprite Palette Green Component)
- { "lr3-n-2m", 0x00100, 0x69ad8678, BRF_GRA }, // 15 PROM (Tile Palette Blue Component)
- { "lr3-b-1l", 0x00100, 0x5b11c41d, BRF_GRA }, // 16 PROM (Sprite Palette Blue Component)
- { "lr3-b-5p", 0x00020, 0xe01f69e2, BRF_GRA }, // 17 PROM (Sprite Height)
- { "lr3-b-6f", 0x00100, 0x34d88d3c, BRF_GRA }, // 18 PROM (Video Timing)
- { "lr3-n-4f", 0x00100, 0xdf674be9, BRF_OPT }, // 19 PROM (Unknown)
-};
-
-STD_ROM_PICK(Ldrun3j)
-STD_ROM_FN(Ldrun3j)
-
-static struct BurnRomInfo Ldrun4RomDesc[] = {
- { "lr4-a-4e", 0x04000, 0x5383e9bf, BRF_ESS | BRF_PRG }, // 0 Z80 Program Code
- { "lr4-a-4d.c", 0x04000, 0x298afa36, BRF_ESS | BRF_PRG }, // 1
- { "lr4-v-4k", 0x08000, 0x8b248abd, BRF_ESS | BRF_PRG }, // 2
-
- { "lr4-a-3d", 0x04000, 0x86c6d445, BRF_ESS | BRF_PRG }, // 3 M6803 Program Code
- { "lr4-a-3f", 0x04000, 0x097c6c0a, BRF_ESS | BRF_PRG }, // 4
-
- { "lr4-v-2b", 0x04000, 0x4118e60a, BRF_GRA }, // 5 Characters
- { "lr4-v-2d", 0x04000, 0x542bb5b5, BRF_GRA }, // 6
- { "lr4-v-2c", 0x04000, 0xc765266c, BRF_GRA }, // 7
-
- { "lr4-b-4k", 0x04000, 0xe7fe620c, BRF_GRA }, // 8 Sprites
- { "lr4-b-4f", 0x04000, 0x6f0403db, BRF_GRA }, // 9
- { "lr4-b-3n", 0x04000, 0xad1fba1b, BRF_GRA }, // 10
- { "lr4-b-4n", 0x04000, 0x0e568fab, BRF_GRA }, // 11
- { "lr4-b-4c", 0x04000, 0x82c53669, BRF_GRA }, // 12
- { "lr4-b-4e", 0x04000, 0x767a1352, BRF_GRA }, // 13
-
- { "lr4-v-1m", 0x00100, 0xfe51bf1d, BRF_GRA }, // 14 PROM (Tile Palette Red Component)
- { "lr4-b-1m", 0x00100, 0x5d8d17d0, BRF_GRA }, // 15 PROM (Sprite Palette Red Component)
- { "lr4-v-1n", 0x00100, 0xda0658e5, BRF_GRA }, // 16 PROM (Tile Palette Green Component)
- { "lr4-b-1n", 0x00100, 0xda1129d2, BRF_GRA }, // 17 PROM (Sprite Palette Green Component)
- { "lr4-v-1p", 0x00100, 0x0df23ebe, BRF_GRA }, // 18 PROM (Tile Palette Blue Component)
- { "lr4-b-1l", 0x00100, 0x0d89b692, BRF_GRA }, // 19 PROM (Sprite Palette Blue Component)
- { "lr4-b-5p", 0x00020, 0xe01f69e2, BRF_GRA }, // 20 PROM (Sprite Height)
- { "lr4-b-6f", 0x00100, 0x34d88d3c, BRF_GRA }, // 21 PROM (Video Timing)
- { "lr4-v-4h", 0x00100, 0xdf674be9, BRF_OPT }, // 22 PROM (Unknown)
-};
-
-STD_ROM_PICK(Ldrun4)
-STD_ROM_FN(Ldrun4)
-
-static struct BurnRomInfo LotlotRomDesc[] = {
- { "lot-a-4e", 0x04000, 0x2913d08f, BRF_ESS | BRF_PRG }, // 0 Z80 Program Code
- { "lot-a-4d", 0x04000, 0x0443095f, BRF_ESS | BRF_PRG }, // 1
-
- { "lot-a-3h", 0x02000, 0x0781cee7, BRF_ESS | BRF_PRG }, // 2 M6803 Program Code
-
- { "lot-k-4a", 0x02000, 0x1b3695f4, BRF_GRA }, // 3 Tiles
- { "lot-k-4c", 0x02000, 0xbd2b0730, BRF_GRA }, // 4
- { "lot-k-4b", 0x02000, 0x930ddd55, BRF_GRA }, // 5
-
- { "lot-b-4k", 0x02000, 0xfd27cb90, BRF_GRA }, // 6 Sprites
- { "lot-b-3n", 0x02000, 0xbd486fff, BRF_GRA }, // 7
- { "lot-b-4c", 0x02000, 0x3026ee6c, BRF_GRA }, // 8
-
- { "lot-k-4p", 0x02000, 0x3b7d95ba, BRF_GRA }, // 9 Characters
- { "lot-k-4l", 0x02000, 0xf98dca1f, BRF_GRA }, // 10
- { "lot-k-4n", 0x02000, 0xf0cd76a5, BRF_GRA }, // 11
-
- { "lot-k-2f", 0x00100, 0xb820a05e, BRF_GRA }, // 12 PROM (Tile Palette Red Component)
- { "lot-b-1m", 0x00100, 0xc146461d, BRF_GRA }, // 13 PROM (Sprite Palette Red Component)
- { "lot-k-2l", 0x00100, 0xac3e230d, BRF_GRA }, // 14 PROM (Char Palette Red Component)
- { "lot-k-2e", 0x00100, 0x9b1fa005, BRF_GRA }, // 15 PROM (Tile Palette Green Component)
- { "lot-b-1n", 0x00100, 0x01e07db6, BRF_GRA }, // 16 PROM (Sprite Palette Green Component)
- { "lot-k-2k", 0x00100, 0x1811ad2b, BRF_GRA }, // 17 PROM (Char Palette Green Component)
- { "lot-k-2d", 0x00100, 0x315ed9a8, BRF_GRA }, // 18 PROM (Tile Palette Blue Component)
- { "lot-b-1l", 0x00100, 0x8b6fcde3, BRF_GRA }, // 19 PROM (Sprite Palette Blue Component)
- { "lot-k-2j", 0x00100, 0xe791ef2a, BRF_GRA }, // 20 PROM (Char Palette Blue Component)
- { "lot-b-5p", 0x00020, 0x110b21fd, BRF_GRA }, // 21 PROM (Sprite Height)
- { "lot-b-6f", 0x00100, 0x34d88d3c, BRF_GRA }, // 22 PROM (Video Timing)
- { "lot-k-7e", 0x00200, 0x6cef0fbd, BRF_GRA }, // 23 PROM (Unknown)
- { "lot-k-7h", 0x00200, 0x04442bee, BRF_GRA }, // 24 PROM (Unknown)
-};
-
-STD_ROM_PICK(Lotlot)
-STD_ROM_FN(Lotlot)
-
-static struct BurnRomInfo KidnikiRomDesc[] = {
- { "ky_a-4e-g.bin", 0x04000, 0x2edcbcd7, BRF_ESS | BRF_PRG }, // 0 Z80 Program Code
- { "dr03.4cd", 0x04000, 0xdba20934, BRF_ESS | BRF_PRG }, // 1
- { "ky_t-8k-g.bin", 0x08000, 0xdbc42f31, BRF_ESS | BRF_PRG }, // 2
- { "dr12.8l", 0x10000, 0xc0b255fd, BRF_ESS | BRF_PRG }, // 3
-
- { "dr00.3a", 0x04000, 0x458309f7, BRF_ESS | BRF_PRG }, // 4 M6803 Program Code
- { "dr01.3cd", 0x04000, 0xe66897bd, BRF_ESS | BRF_PRG }, // 5
- { "dr02.3f", 0x04000, 0xf9e31e26, BRF_ESS | BRF_PRG }, // 6
-
- { "dr06.2b", 0x08000, 0x4d9a970f, BRF_GRA }, // 7 Tiles
- { "dr07.2dc", 0x08000, 0xab59a4c4, BRF_GRA }, // 8
- { "dr05.2a", 0x08000, 0x2e6dad0c, BRF_GRA }, // 9
-
- { "dr21.4k", 0x04000, 0xa06cea9a, BRF_GRA }, // 10 Sprites
- { "dr19.4f", 0x04000, 0xb34605ad, BRF_GRA }, // 11
- { "dr22.4l", 0x04000, 0x41303de8, BRF_GRA }, // 12
- { "dr20.4jh", 0x04000, 0x5fbe6f61, BRF_GRA }, // 13
- { "dr14.3p", 0x04000, 0x76cfbcbc, BRF_GRA }, // 14
- { "dr24.4p", 0x04000, 0xd51c8db5, BRF_GRA }, // 15
- { "dr23.4nm", 0x04000, 0x03469df8, BRF_GRA }, // 16
- { "dr13.3nm", 0x04000, 0xd5c3dfe0, BRF_GRA }, // 17
- { "dr16.4cb", 0x04000, 0xf1d1bb93, BRF_GRA }, // 18
- { "dr18.4e", 0x04000, 0xedb7f25b, BRF_GRA }, // 19
- { "dr17.4dc", 0x04000, 0x4fb87868, BRF_GRA }, // 20
- { "dr15.4a", 0x04000, 0xe0b88de5, BRF_GRA }, // 21
-
- { "dr08.4l", 0x04000, 0x32d50643, BRF_GRA }, // 22 Characters
- { "dr09.4m", 0x04000, 0x17df6f95, BRF_GRA }, // 23
- { "dr10.4n", 0x04000, 0x820ce252, BRF_GRA }, // 24
-
- { "dr25.3f", 0x00100, 0x8e91430b, BRF_GRA }, // 25 PROM (Tile Palette Red Component)
- { "dr30.1m", 0x00100, 0x28c73263, BRF_GRA }, // 26 PROM (Sprite Palette Red Component)
- { "dr26.3h", 0x00100, 0xb563b93f, BRF_GRA }, // 27 PROM (Tile Palette Green Component)
- { "dr31.1n", 0x00100, 0x3529210e, BRF_GRA }, // 28 PROM (Sprite Palette Green Component)
- { "dr27.3j", 0x00100, 0x70d668ef, BRF_GRA }, // 29 PROM (Tile Palette Blue Component)
- { "dr29.1l", 0x00100, 0x1173a754, BRF_GRA }, // 30 PROM (Sprite Palette Blue Component)
- { "dr32.5p", 0x00020, 0x11cd1f2e, BRF_GRA }, // 31 PROM (Sprite Height)
- { "dr33.6f", 0x00100, 0x34d88d3c, BRF_GRA }, // 32 PROM (Video Timing)
- { "dr28.8f", 0x00200, 0x6cef0fbd, BRF_OPT }, // 33 PROM (Unknown)
-};
-
-STD_ROM_PICK(Kidniki)
-STD_ROM_FN(Kidniki)
-
-static struct BurnRomInfo KidnikiuRomDesc[] = {
- { "dr04.4e", 0x04000, 0x80431858, BRF_ESS | BRF_PRG }, // 0 Z80 Program Code
- { "dr03.4cd", 0x04000, 0xdba20934, BRF_ESS | BRF_PRG }, // 1
- { "dr11.8k", 0x08000, 0x04d82d93, BRF_ESS | BRF_PRG }, // 2
- { "dr12.8l", 0x10000, 0xc0b255fd, BRF_ESS | BRF_PRG }, // 3
-
- { "dr00.3a", 0x04000, 0x458309f7, BRF_ESS | BRF_PRG }, // 4 M6803 Program Code
- { "dr01.3cd", 0x04000, 0xe66897bd, BRF_ESS | BRF_PRG }, // 5
- { "dr02.3f", 0x04000, 0xf9e31e26, BRF_ESS | BRF_PRG }, // 6
-
- { "dr06.2b", 0x08000, 0x4d9a970f, BRF_GRA }, // 7 Tiles
- { "dr07.2dc", 0x08000, 0xab59a4c4, BRF_GRA }, // 8
- { "dr05.2a", 0x08000, 0x2e6dad0c, BRF_GRA }, // 9
-
- { "dr21.4k", 0x04000, 0xa06cea9a, BRF_GRA }, // 10 Sprites
- { "dr19.4f", 0x04000, 0xb34605ad, BRF_GRA }, // 11
- { "dr22.4l", 0x04000, 0x41303de8, BRF_GRA }, // 12
- { "dr20.4jh", 0x04000, 0x5fbe6f61, BRF_GRA }, // 13
- { "dr14.3p", 0x04000, 0x76cfbcbc, BRF_GRA }, // 14
- { "dr24.4p", 0x04000, 0xd51c8db5, BRF_GRA }, // 15
- { "dr23.4nm", 0x04000, 0x03469df8, BRF_GRA }, // 16
- { "dr13.3nm", 0x04000, 0xd5c3dfe0, BRF_GRA }, // 17
- { "dr16.4cb", 0x04000, 0xf1d1bb93, BRF_GRA }, // 18
- { "dr18.4e", 0x04000, 0xedb7f25b, BRF_GRA }, // 19
- { "dr17.4dc", 0x04000, 0x4fb87868, BRF_GRA }, // 20
- { "dr15.4a", 0x04000, 0xe0b88de5, BRF_GRA }, // 21
-
- { "dr08.4l", 0x04000, 0x32d50643, BRF_GRA }, // 22 Characters
- { "dr09.4m", 0x04000, 0x17df6f95, BRF_GRA }, // 23
- { "dr10.4n", 0x04000, 0x820ce252, BRF_GRA }, // 24
-
- { "dr25.3f", 0x00100, 0x8e91430b, BRF_GRA }, // 25 PROM (Tile Palette Red Component)
- { "dr30.1m", 0x00100, 0x28c73263, BRF_GRA }, // 26 PROM (Sprite Palette Red Component)
- { "dr26.3h", 0x00100, 0xb563b93f, BRF_GRA }, // 27 PROM (Tile Palette Green Component)
- { "dr31.1n", 0x00100, 0x3529210e, BRF_GRA }, // 28 PROM (Sprite Palette Green Component)
- { "dr27.3j", 0x00100, 0x70d668ef, BRF_GRA }, // 29 PROM (Tile Palette Blue Component)
- { "dr29.1l", 0x00100, 0x1173a754, BRF_GRA }, // 30 PROM (Sprite Palette Blue Component)
- { "dr32.5p", 0x00020, 0x11cd1f2e, BRF_GRA }, // 31 PROM (Sprite Height)
- { "dr33.6f", 0x00100, 0x34d88d3c, BRF_GRA }, // 32 PROM (Video Timing)
- { "dr28.8f", 0x00200, 0x6cef0fbd, BRF_OPT }, // 33 PROM (Unknown)
-};
-
-STD_ROM_PICK(Kidnikiu)
-STD_ROM_FN(Kidnikiu)
-
-static struct BurnRomInfo YanchamrRomDesc[] = {
- { "ky_a-4e-.bin", 0x04000, 0xc73ad2d6, BRF_ESS | BRF_PRG }, // 0 Z80 Program Code
- { "ky_a-4d-.bin", 0x04000, 0x401af828, BRF_ESS | BRF_PRG }, // 1
- { "ky_t-8k-.bin", 0x08000, 0xe967de88, BRF_ESS | BRF_PRG }, // 2
- { "ky_t-8l-.bin", 0x08000, 0xa929110b, BRF_ESS | BRF_PRG }, // 3
-
- { "ky_a-3a-.bin", 0x04000, 0xcb365f3b, BRF_ESS | BRF_PRG }, // 4 M6803 Program Code
- { "dr01.3cd", 0x04000, 0xe66897bd, BRF_ESS | BRF_PRG }, // 5
- { "dr02.3f", 0x04000, 0xf9e31e26, BRF_ESS | BRF_PRG }, // 6
-
- { "ky_t-2c-.bin", 0x08000, 0xcb9761fc, BRF_GRA }, // 7 Tiles
- { "ky_t-2d-.bin", 0x08000, 0x59732741, BRF_GRA }, // 8
- { "ky_t-2a-.bin", 0x08000, 0x0370fd82, BRF_GRA }, // 9
-
- { "ky_b-4k-.bin", 0x04000, 0x263a9d10, BRF_GRA }, // 10 Sprites
- { "ky_b-4f-.bin", 0x04000, 0x86e3d4a8, BRF_GRA }, // 11
- { "ky_b-4l-.bin", 0x04000, 0x19fa7558, BRF_GRA }, // 12
- { "ky_b-4h-.bin", 0x04000, 0x93e6665c, BRF_GRA }, // 13
- { "ky_b-3n-.bin", 0x04000, 0x0287c525, BRF_GRA }, // 14
- { "ky_b-4n-.bin", 0x04000, 0x764946e0, BRF_GRA }, // 15
- { "ky_b-4m-.bin", 0x04000, 0xeced5db9, BRF_GRA }, // 16
- { "ky_b-3m-.bin", 0x04000, 0xbe6cee44, BRF_GRA }, // 17
- { "ky_b-4c-.bin", 0x04000, 0x84d6b65d, BRF_GRA }, // 18
- { "ky_b-4e-.bin", 0x04000, 0xf91f9273, BRF_GRA }, // 19
- { "ky_b-4d-.bin", 0x04000, 0xa2fc15f0, BRF_GRA }, // 20
- { "ky_b-4a-.bin", 0x04000, 0xff2b9c8a, BRF_GRA }, // 21
-
- { "ky_t-4l-.bin", 0x04000, 0x1d0a9253, BRF_GRA }, // 22 Characters
- { "ky_t-4m-.bin", 0x04000, 0x4075c396, BRF_GRA }, // 23
- { "ky_t-4n-.bin", 0x04000, 0x7564f2ff, BRF_GRA }, // 24
-
- { "dr25.3f", 0x00100, 0x8e91430b, BRF_GRA }, // 25 PROM (Tile Palette Red Component)
- { "dr30.1m", 0x00100, 0x28c73263, BRF_GRA }, // 26 PROM (Sprite Palette Red Component)
- { "dr26.3h", 0x00100, 0xb563b93f, BRF_GRA }, // 27 PROM (Tile Palette Green Component)
- { "dr31.1n", 0x00100, 0x3529210e, BRF_GRA }, // 28 PROM (Sprite Palette Green Component)
- { "dr27.3j", 0x00100, 0x70d668ef, BRF_GRA }, // 29 PROM (Tile Palette Blue Component)
- { "dr29.1l", 0x00100, 0x1173a754, BRF_GRA }, // 30 PROM (Sprite Palette Blue Component)
- { "dr32.5p", 0x00020, 0x11cd1f2e, BRF_GRA }, // 31 PROM (Sprite Height)
- { "dr33.6f", 0x00100, 0x34d88d3c, BRF_GRA }, // 32 PROM (Video Timing)
- { "dr28.8f", 0x00200, 0x6cef0fbd, BRF_OPT }, // 33 PROM (Unknown)
-};
-
-STD_ROM_PICK(Yanchamr)
-STD_ROM_FN(Yanchamr)
-
-static struct BurnRomInfo LitheroRomDesc[] = {
- { "4.bin", 0x08000, 0x80903766, BRF_ESS | BRF_PRG }, // 0 Z80 Program Code
- { "11.bin", 0x08000, 0x7a1ef8cb, BRF_ESS | BRF_PRG }, // 1
- { "12.bin", 0x08000, 0xa929110b, BRF_ESS | BRF_PRG }, // 2
-
- { "ky_a-3a-.bin", 0x04000, 0xcb365f3b, BRF_ESS | BRF_PRG }, // 3 M6803 Program Code
- { "dr01.3cd", 0x04000, 0xe66897bd, BRF_ESS | BRF_PRG }, // 4
- { "dr02.3f", 0x04000, 0xf9e31e26, BRF_ESS | BRF_PRG }, // 5
-
- { "7.bin", 0x08000, 0xb55e8d19, BRF_GRA }, // 6 Tiles
- { "6.bin", 0x08000, 0x7bbbb209, BRF_GRA }, // 7
- { "5.bin", 0x08000, 0x0370fd82, BRF_GRA }, // 8
-
- { "16.bin", 0x08000, 0x5045a507, BRF_GRA }, // 9 Sprites
- { "15.bin", 0x08000, 0x946b16a0, BRF_GRA }, // 10
- { "18.bin", 0x08000, 0x901b69ff, BRF_GRA }, // 11
- { "17.bin", 0x08000, 0x504eed93, BRF_GRA }, // 12
- { "14.bin", 0x08000, 0x429d760b, BRF_GRA }, // 13
- { "13.bin", 0x08000, 0x1700cd64, BRF_GRA }, // 14
-
- { "8.bin", 0x04000, 0x4f388d63, BRF_GRA }, // 15 Characters
- { "9.bin", 0x04000, 0xdaafa2c1, BRF_GRA }, // 16
- { "10.bin", 0x04000, 0x60649d19, BRF_GRA }, // 17
-
- { "dr25.3f", 0x00100, 0x8e91430b, BRF_GRA }, // 18 PROM (Tile Palette Red Component)
- { "dr30.1m", 0x00100, 0x28c73263, BRF_GRA }, // 19 PROM (Sprite Palette Red Component)
- { "dr26.3h", 0x00100, 0xb563b93f, BRF_GRA }, // 20 PROM (Tile Palette Green Component)
- { "dr31.1n", 0x00100, 0x3529210e, BRF_GRA }, // 21 PROM (Sprite Palette Green Component)
- { "dr27.3j", 0x00100, 0x70d668ef, BRF_GRA }, // 22 PROM (Tile Palette Blue Component)
- { "dr29.1l", 0x00100, 0x1173a754, BRF_GRA }, // 23 PROM (Sprite Palette Blue Component)
- { "dr32.5p", 0x00020, 0x11cd1f2e, BRF_GRA }, // 24 PROM (Sprite Height)
- { "dr33.6f", 0x00100, 0x34d88d3c, BRF_GRA }, // 25 PROM (Video Timing)
- { "dr28.8f", 0x00200, 0x6cef0fbd, BRF_OPT }, // 26 PROM (Unknown)
-};
-
-STD_ROM_PICK(Lithero)
-STD_ROM_FN(Lithero)
-
-static struct BurnRomInfo SpelunkrRomDesc[] = {
- { "spra.4e", 0x04000, 0xcf811201, BRF_ESS | BRF_PRG }, // 0 Z80 Program Code
- { "spra.4d", 0x04000, 0xbb4faa4f, BRF_ESS | BRF_PRG }, // 1
- { "sprm.7c", 0x04000, 0xfb6197e2, BRF_ESS | BRF_PRG }, // 2
- { "sprm.7b", 0x04000, 0x26bb25a4, BRF_ESS | BRF_PRG }, // 3
-
- { "spra.3d", 0x04000, 0x4110363c, BRF_ESS | BRF_PRG }, // 4 M6803 Program Code
- { "spra.3f", 0x04000, 0x67a9d2e6, BRF_ESS | BRF_PRG }, // 5
-
- { "sprm.1d", 0x04000, 0x4ef7ae89, BRF_GRA }, // 6 Tiles
- { "sprm.1e", 0x04000, 0xa3755180, BRF_GRA }, // 7
- { "sprm.3c", 0x04000, 0xb4008e6a, BRF_GRA }, // 8
- { "sprm.3b", 0x04000, 0xf61cf012, BRF_GRA }, // 9
- { "sprm.1c", 0x04000, 0x58b21c76, BRF_GRA }, // 10
- { "sprm.1b", 0x04000, 0xa95cb3e5, BRF_GRA }, // 11
-
- { "sprb.4k", 0x04000, 0xe7f0e861, BRF_GRA }, // 12 Sprites
- { "sprb.4f", 0x04000, 0x32663097, BRF_GRA }, // 13
- { "sprb.3p", 0x04000, 0x8fbaf373, BRF_GRA }, // 14
- { "sprb.4p", 0x04000, 0x37069b76, BRF_GRA }, // 15
- { "sprb.4c", 0x04000, 0xcfe46a88, BRF_GRA }, // 16
- { "sprb.4e", 0x04000, 0x11c48979, BRF_GRA }, // 17
-
- { "sprm.4p", 0x04000, 0x4dfe2e63, BRF_GRA }, // 18 Characters
- { "sprm.4l", 0x04000, 0x239f2cd4, BRF_GRA }, // 19
- { "sprm.4m", 0x04000, 0xd6d07d70, BRF_GRA }, // 20
-
- { "sprm.2k", 0x00100, 0xfd8fa991, BRF_GRA }, // 21 PROM (Tile Palette Red Component)
- { "sprb.1m", 0x00100, 0x8d8cccad, BRF_GRA }, // 22 PROM (Sprite Palette Red Component)
- { "sprm.2j", 0x00100, 0x0e3890b4, BRF_GRA }, // 23 PROM (Tile Palette Green Component)
- { "sprb.1n", 0x00100, 0xc40e1cb2, BRF_GRA }, // 24 PROM (Sprite Palette Green Component)
- { "sprm.2h", 0x00100, 0x0478082b, BRF_GRA }, // 25 PROM (Tile Palette Blue Component)
- { "sprb.1l", 0x00100, 0x3ec46248, BRF_GRA }, // 26 PROM (Sprite Palette Blue Component)
- { "sprb.5p", 0x00020, 0x746c6238, BRF_GRA }, // 27 PROM (Sprite Height)
- { "sprb.6f", 0x00100, 0x34d88d3c, BRF_GRA }, // 28 PROM (Video Timing)
- { "sprm.8h", 0x00200, 0x875cc442, BRF_OPT }, // 29 PROM (Unknown)
-};
-
-STD_ROM_PICK(Spelunkr)
-STD_ROM_FN(Spelunkr)
-
-static struct BurnRomInfo SpelunkrjRomDesc[] = {
- { "spr_a4ec.bin", 0x04000, 0x4e94a80c, BRF_ESS | BRF_PRG }, // 0 Z80 Program Code
- { "spr_a4dd.bin", 0x04000, 0xe7c0cbce, BRF_ESS | BRF_PRG }, // 1
- { "spr_m7cc.bin", 0x04000, 0x57598a36, BRF_ESS | BRF_PRG }, // 2
- { "spr_m7bd.bin", 0x04000, 0xecf5137f, BRF_ESS | BRF_PRG }, // 3
-
- { "spra.3d", 0x04000, 0x4110363c, BRF_ESS | BRF_PRG }, // 4 M6803 Program Code
- { "spra.3f", 0x04000, 0x67a9d2e6, BRF_ESS | BRF_PRG }, // 5
-
- { "sprm.1d", 0x04000, 0x4ef7ae89, BRF_GRA }, // 6 Tiles
- { "sprm.1e", 0x04000, 0xa3755180, BRF_GRA }, // 7
- { "sprm.3c", 0x04000, 0xb4008e6a, BRF_GRA }, // 8
- { "sprm.3b", 0x04000, 0xf61cf012, BRF_GRA }, // 9
- { "sprm.1c", 0x04000, 0x58b21c76, BRF_GRA }, // 10
- { "sprm.1b", 0x04000, 0xa95cb3e5, BRF_GRA }, // 11
-
- { "sprb.4k", 0x04000, 0xe7f0e861, BRF_GRA }, // 12 Sprites
- { "sprb.4f", 0x04000, 0x32663097, BRF_GRA }, // 13
- { "sprb.3p", 0x04000, 0x8fbaf373, BRF_GRA }, // 14
- { "sprb.4p", 0x04000, 0x37069b76, BRF_GRA }, // 15
- { "sprb.4c", 0x04000, 0xcfe46a88, BRF_GRA }, // 16
- { "sprb.4e", 0x04000, 0x11c48979, BRF_GRA }, // 17
-
- { "sprm.4p", 0x04000, 0x4dfe2e63, BRF_GRA }, // 18 Characters
- { "sprm.4l", 0x04000, 0x239f2cd4, BRF_GRA }, // 19
- { "sprm.4m", 0x04000, 0xd6d07d70, BRF_GRA }, // 20
-
- { "sprm.2k", 0x00100, 0xfd8fa991, BRF_GRA }, // 21 PROM (Tile Palette Red Component)
- { "sprb.1m", 0x00100, 0x8d8cccad, BRF_GRA }, // 22 PROM (Sprite Palette Red Component)
- { "sprm.2j", 0x00100, 0x0e3890b4, BRF_GRA }, // 23 PROM (Tile Palette Green Component)
- { "sprb.1n", 0x00100, 0xc40e1cb2, BRF_GRA }, // 24 PROM (Sprite Palette Green Component)
- { "sprm.2h", 0x00100, 0x0478082b, BRF_GRA }, // 25 PROM (Tile Palette Blue Component)
- { "sprb.1l", 0x00100, 0x3ec46248, BRF_GRA }, // 26 PROM (Sprite Palette Blue Component)
- { "sprb.5p", 0x00020, 0x746c6238, BRF_GRA }, // 27 PROM (Sprite Height)
- { "sprb.6f", 0x00100, 0x34d88d3c, BRF_GRA }, // 28 PROM (Video Timing)
- { "sprm.8h", 0x00200, 0x875cc442, BRF_OPT }, // 29 PROM (Unknown)
-};
-
-STD_ROM_PICK(Spelunkrj)
-STD_ROM_FN(Spelunkrj)
-
-static struct BurnRomInfo Spelunk2RomDesc[] = {
- { "sp2-a.4e", 0x04000, 0x96c04bbb, BRF_ESS | BRF_PRG }, // 0 Z80 Program Code
- { "sp2-a.4d", 0x04000, 0xcb38c2ff, BRF_ESS | BRF_PRG }, // 1
- { "sp2-r.7d", 0x08000, 0x558837ea, BRF_ESS | BRF_PRG }, // 2
- { "sp2-r.7c", 0x08000, 0x4b380162, BRF_ESS | BRF_PRG }, // 3
- { "sp2-r.7b", 0x04000, 0x7709a1fe, BRF_ESS | BRF_PRG }, // 4
-
- { "sp2-a.3d", 0x04000, 0x839ec7e2, BRF_ESS | BRF_PRG }, // 5 M6803 Program Code
- { "sp2-a.3f", 0x04000, 0xad3ce898, BRF_ESS | BRF_PRG }, // 6
-
- { "sp2-r.1d", 0x08000, 0xc19fa4c9, BRF_GRA }, // 7 Tiles
- { "sp2-r.3b", 0x08000, 0x366604af, BRF_GRA }, // 8
- { "sp2-r.1b", 0x08000, 0x3a0c4d47, BRF_GRA }, // 9
-
- { "sp2-b.4k", 0x04000, 0x6cb67a17, BRF_GRA }, // 10 Sprites
- { "sp2-b.4f", 0x04000, 0xe4a1166f, BRF_GRA }, // 11
- { "sp2-b.3n", 0x04000, 0xf59e8b76, BRF_GRA }, // 12
- { "sp2-b.4n", 0x04000, 0xfa65bac9, BRF_GRA }, // 13
- { "sp2-b.4c", 0x04000, 0x1caf7013, BRF_GRA }, // 14
- { "sp2-b.4e", 0x04000, 0x780a463b, BRF_GRA }, // 15
-
- { "sp2-r.4l", 0x04000, 0x6a4b2d8b, BRF_GRA }, // 16 Characters
- { "sp2-r.4m", 0x04000, 0xe1368b61, BRF_GRA }, // 17
- { "sp2-r.4p", 0x04000, 0xfc138e13, BRF_GRA }, // 18
-
- { "sp2-r.1k", 0x00200, 0x31c1bcdc, BRF_GRA }, // 19 PROM (Char Palette Red and Green Component)
- { "sp2-r.2k", 0x00100, 0x1cf5987e, BRF_GRA }, // 20 PROM (Char Palette Blue Component)
- { "sp2-r.2j", 0x00100, 0x1acbe2a5, BRF_GRA }, // 21 PROM (Char Palette Blue Component)
- { "sp2-b.1m", 0x00100, 0x906104c7, BRF_GRA }, // 22 PROM (Sprite Palette Red Component)
- { "sp2-b.1n", 0x00100, 0x5a564c06, BRF_GRA }, // 23 PROM (Sprite Palette Green Component)
- { "sp2-b.1l", 0x00100, 0x8f4a2e3c, BRF_GRA }, // 24 PROM (Sprite Palette Blue Component)
- { "sp2-b.5p", 0x00020, 0xcd126f6a, BRF_GRA }, // 25 PROM (Sprite Height)
- { "sp2-b.6f", 0x00100, 0x34d88d3c, BRF_GRA }, // 26 PROM (Video Timing)
- { "sp2-r.8j", 0x00200, 0x875cc442, BRF_OPT }, // 27 PROM (Unknown)
-
- { "ampal16r4a-sp2-r-3h.bin", 0x00104, 0x00000000, BRF_OPT | BRF_NODUMP }, // 28 PAL
-};
-
-STD_ROM_PICK(Spelunk2)
-STD_ROM_FN(Spelunk2)
-
-static struct BurnRomInfo YoujyudnRomDesc[] = {
- { "yju_a4eb.bin", 0x04000, 0x0d356bdc, BRF_ESS | BRF_PRG }, // 0 Z80 Program Code
- { "yju_a4db.bin", 0x04000, 0xc169be13, BRF_ESS | BRF_PRG }, // 1
- { "yju_p4cb.0", 0x04000, 0x60baf3b1, BRF_ESS | BRF_PRG }, // 2
- { "yju_p4eb.1", 0x04000, 0x8d0521f8, BRF_ESS | BRF_PRG }, // 3
-
- { "yju_a3fb.bin", 0x04000, 0xe15c8030, BRF_ESS | BRF_PRG }, // 4 M6803 Program Code
-
- { "yju_p3bb.0", 0x08000, 0xc017913c, BRF_GRA }, // 5 Tiles
- { "yju_p1bb.1", 0x08000, 0x94627523, BRF_GRA }, // 6
- { "yju_p1cb.2", 0x08000, 0x6a378c56, BRF_GRA }, // 7
-
- { "yju_b4ka.00", 0x04000, 0x1bbb864a, BRF_GRA }, // 8 Sprites
- { "yju_b4fa.01", 0x04000, 0x14b4dd24, BRF_GRA }, // 9
- { "yju_b3na.10", 0x04000, 0x68879321, BRF_GRA }, // 10
- { "yju_b4na.11", 0x04000, 0x2860a68b, BRF_GRA }, // 11
- { "yju_b4ca.20", 0x04000, 0xab365829, BRF_GRA }, // 12
- { "yju_b4ea.21", 0x04000, 0xb36c31e4, BRF_GRA }, // 13
-
- { "yju_p4lb.2", 0x04000, 0x87878d9b, BRF_GRA }, // 14 Characters
- { "yju_p4mb.1", 0x04000, 0x1e1a0d09, BRF_GRA }, // 15
- { "yju_p4pb.0", 0x04000, 0xb4ab520b, BRF_GRA }, // 16
-
- { "yju_p2jb.bpr", 0x00100, 0xa4483631, BRF_GRA }, // 17 PROM (Tile Palette Red Component)
- { "yju_b1ma.r", 0x00100, 0xa8340e13, BRF_GRA }, // 18 PROM (Sprite Palette Red Component)
- { "yju_p2kb.bpr", 0x00100, 0x85481103, BRF_GRA }, // 19 PROM (Tile Palette Green Component)
- { "yju_b1na.g", 0x00100, 0xf5b4bc41, BRF_GRA }, // 20 PROM (Sprite Palette Green Component)
- { "yju_p2hb.bpr", 0x00100, 0xa6fd355c, BRF_GRA }, // 21 PROM (Tile Palette Blue Component)
- { "yju_b1la.b", 0x00100, 0x45e10491, BRF_GRA }, // 22 PROM (Sprite Palette Blue Component)
- { "yju_b-5p.bpr", 0x00020, 0x2095e6a3, BRF_GRA }, // 23 PROM (Sprite Height)
- { "yju_b-6f.bpr", 0x00100, 0x82c20d12, BRF_GRA }, // 24 PROM (Video Timing)
- { "yju_p-8d.bpr", 0x00200, 0x6cef0fbd, BRF_OPT }, // 25 PROM (Unknown)
-
- { "yju_b-pal16r4a-8m.pal", 0x00104, 0x3ece8e61, BRF_OPT }, // 26 PAL
-};
-
-STD_ROM_PICK(Youjyudn)
-STD_ROM_FN(Youjyudn)
-
-static struct BurnRomInfo HorizonRomDesc[] = {
- { "hrza-4e", 0x04000, 0x98b96ba2, BRF_ESS | BRF_PRG }, // 0 Z80 Program Code
- { "hrza-4d", 0x04000, 0x06b06ac7, BRF_ESS | BRF_PRG }, // 1
- { "hrza-4b", 0x04000, 0x39c0bd02, BRF_ESS | BRF_PRG }, // 2
-
- { "hrza-3f", 0x04000, 0x7412c99f, BRF_ESS | BRF_PRG }, // 3 M6803 Program Code
-
- { "hrzd-4d", 0x02000, 0xb93ed581, BRF_GRA }, // 4 Tiles
- { "hrzd-4c", 0x02000, 0x1cf73b53, BRF_GRA }, // 5
- { "hrzd-4a", 0x02000, 0xeace8d53, BRF_GRA }, // 6
-
- { "hrzb-4k.00", 0x04000, 0x11d2f3a1, BRF_GRA }, // 7 Sprites
- { "hrzb-4f.01", 0x04000, 0x356902ea, BRF_GRA }, // 8
- { "hrzb-3n.10", 0x04000, 0x87078a02, BRF_GRA }, // 9
- { "hrzb-4n.11", 0x04000, 0x5019cb1f, BRF_GRA }, // 10
- { "hrzb-4c.20", 0x04000, 0x90b385e7, BRF_GRA }, // 11
- { "hrzb-4e.21", 0x04000, 0xd05d77a2, BRF_GRA }, // 12
-
- { "hrzd-1d", 0x00100, 0xb33b08f9, BRF_GRA }, // 13 PROM (Tile Palette Red Component)
- { "hrzb-1m.r", 0x00100, 0x0871690a, BRF_GRA }, // 14 PROM (Sprite Palette Red Component)
- { "hrzd-1c", 0x00100, 0x6e696f3a, BRF_GRA }, // 15 PROM (Tile Palette Green Component)
- { "hrzb-1n.g", 0x00100, 0xf247d0a9, BRF_GRA }, // 16 PROM (Sprite Palette Green Component)
- { "hrzd-1e", 0x00100, 0x1fa60379, BRF_GRA }, // 17 PROM (Tile Palette Blue Component)
- { "hrzb-1l.b", 0x00100, 0x9ad0a0c8, BRF_GRA }, // 18 PROM (Sprite Palette Blue Component)
- { "hrzb-5p", 0x00020, 0x208b49e9, BRF_GRA }, // 19 PROM (Sprite Height)
- { "hrzb-6f", 0x00100, 0x82c20d12, BRF_GRA }, // 20 PROM (Video Timing)
-};
-
-STD_ROM_PICK(Horizon)
-STD_ROM_FN(Horizon)
-
-static INT32 M62MemIndex()
-{
- UINT8 *Next; Next = Mem;
-
- if (!M62BgxTileDim) M62BgxTileDim = 8;
- if (!M62BgyTileDim) M62BgyTileDim = 8;
- if (!M62CharxTileDim) M62CharxTileDim = 8;
- if (!M62CharyTileDim) M62CharyTileDim = 8;
- if (!M62SpriteRamSize) M62SpriteRamSize = 0x100;
-
- M62Z80Rom = Next; Next += M62Z80RomSize;
- M62M6803Rom = Next; Next += 0x0c000;
-
- RamStart = Next;
-
- M62SpriteRam = Next; Next += M62SpriteRamSize;
- M62TileRam = Next; Next += 0x12000;
- if (M62CharRamSize) { M62CharRam = Next; Next += M62CharRamSize; }
- if (M62ScrollRamSize) { M62ScrollRam = Next; Next += M62ScrollRamSize; }
- M62Z80Ram = Next; Next += 0x01000;
- M62M6803Ram = Next; Next += 0x00080;
- pFMBuffer = (INT16*)Next; Next += nBurnSoundLen * 6 * sizeof(INT16);
-
- RamEnd = Next;
-
- M62Tiles = Next; Next += M62NumTiles * M62BgxTileDim * M62BgyTileDim;
- M62Sprites = Next; Next += M62NumSprites * 16 * 16;
- if (M62NumChars) { M62Chars = Next; Next += M62NumChars * M62CharxTileDim * M62CharyTileDim; }
- M62Palette = (UINT32*)Next; Next += M62PaletteEntries * sizeof(UINT32);
- M62PromData = Next; Next += M62PromSize;
-
- MemEnd = Next;
-
- return 0;
-}
-
-static INT32 M62DoReset()
-{
- ZetOpen(0);
- ZetReset();
- ZetClose();
-
- M6803Reset();
-
- AY8910Reset(0);
- AY8910Reset(1);
-
- MSM5205Reset();
-#ifdef USE_SAMPLE_HACK
- BurnSampleReset();
-#endif
-
- M62Z80BankAddress = 0;
- M62Z80BankAddress2 = 0;
- M62BackgroundHScroll = 0;
- M62BackgroundVScroll = 0;
- M62CharHScroll = 0;
- M62CharVScroll = 0;
- M62FlipScreen = 0;
- M62SoundLatch = 0;
- M62Port1 = 0;
- M62Port2 = 0;
- M62SlaveMSM5205VClckReset = 0;
- M62BankControl[0] = M62BankControl[1] = 0;
- Ldrun2BankSwap = 0;
- Ldrun3TopBottomMask = 0;
- KidnikiBackgroundBank = 0;
- SpelunkrPaletteBank = 0;
-
- return 0;
-}
-
-UINT8 __fastcall M62Z80Read(UINT16 a)
-{
- switch (a) {
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 Read => %04X\n"), a);
- }
- }
-
- return 0;
-}
-
-void __fastcall M62Z80Write(UINT16 a, UINT8 d)
-{
- if (a <= 0xbfff) return;
-
- switch (a) {
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 Write => %04X, %02X\n"), a, d);
- }
- }
-}
-
-UINT8 __fastcall KungfumZ80Read(UINT16 a)
-{
- switch (a) {
- case 0xf000:
- case 0xf001:
- case 0xf002:
- case 0xf003: {
- // ???
- return 0;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 Read => %04X\n"), a);
- }
- }
-
- return 0;
-}
-
-void __fastcall KungfumZ80Write(UINT16 a, UINT8 d)
-{
- switch (a) {
- case 0xa000: {
- M62BackgroundHScroll = (M62BackgroundHScroll & 0xff00) | d;
- return;
- }
-
- case 0xb000: {
- M62BackgroundHScroll = (M62BackgroundHScroll & 0x00ff) | (d << 8);
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 Write => %04X, %02X\n"), a, d);
- }
- }
-}
-
-UINT8 __fastcall Ldrun3Z80Read(UINT16 a)
-{
- switch (a) {
- case 0xc800: {
- return 0x05;
- }
-
- case 0xcc00: {
- return 0x07;
- }
-
- case 0xcfff: {
- return 0x07;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 Read => %04X\n"), a);
- }
- }
-
- return 0;
-}
-
-void __fastcall Ldrun4Z80Write(UINT16 a, UINT8 d)
-{
- switch (a) {
- case 0xc800: {
- M62Z80BankAddress = 0x8000 + ((d & 0x01) * 0x4000);
- ZetMapArea(0x8000, 0xbfff, 0, M62Z80Rom + M62Z80BankAddress);
- ZetMapArea(0x8000, 0xbfff, 2, M62Z80Rom + M62Z80BankAddress);
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 Write => %04X, %02X\n"), a, d);
- }
- }
-}
-
-void __fastcall SpelunkrZ80Write(UINT16 a, UINT8 d)
-{
- switch (a) {
- case 0xd000: {
- M62BackgroundVScroll = (M62BackgroundVScroll & 0xff00) | d;
- return;
- }
-
- case 0xd001: {
- M62BackgroundVScroll = (M62BackgroundVScroll & 0x00ff) | (d << 8);
- return;
- }
-
- case 0xd002: {
- M62BackgroundHScroll = (M62BackgroundHScroll & 0xff00) | d;
- return;
- }
-
- case 0xd003: {
- M62BackgroundHScroll = (M62BackgroundHScroll & 0x00ff) | (d << 8);
- return;
- }
-
- case 0xd004: {
- M62Z80BankAddress = 0x8000 + ((d & 0x03) * 0x2000);
- ZetMapArea(0x8000, 0x9fff, 0, M62Z80Rom + M62Z80BankAddress);
- ZetMapArea(0x8000, 0x9fff, 2, M62Z80Rom + M62Z80BankAddress);
- return;
- }
-
- case 0xd005: {
- SpelunkrPaletteBank = d & 0x01;
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 Write => %04X, %02X\n"), a, d);
- }
- }
-}
-
-void __fastcall Spelunk2Z80Write(UINT16 a, UINT8 d)
-{
- switch (a) {
- case 0xd000: {
- M62BackgroundVScroll = (M62BackgroundVScroll & 0xff00) | d;
- return;
- }
-
- case 0xd001: {
- M62BackgroundHScroll = (M62BackgroundHScroll & 0xff00) | d;
- return;
- }
-
- case 0xd002: {
- M62BackgroundHScroll = (M62BackgroundHScroll & 0x00ff) | (((d & 0x02) >> 1) << 8);
- M62BackgroundVScroll = (M62BackgroundVScroll & 0x00ff) | ((d & 0x01) << 8);
- SpelunkrPaletteBank = (d & 0x0c) >> 2;
- return;
- }
-
- case 0xd003: {
- M62Z80BankAddress = 0x18000 + (((d & 0xc0) >> 6) * 0x1000);
- M62Z80BankAddress2 = 0x08000 + (((d & 0x3c) >> 2) * 0x1000);
- ZetMapArea(0x8000, 0x8fff, 0, M62Z80Rom + M62Z80BankAddress);
- ZetMapArea(0x8000, 0x8fff, 2, M62Z80Rom + M62Z80BankAddress);
- ZetMapArea(0x9000, 0x9fff, 0, M62Z80Rom + M62Z80BankAddress2);
- ZetMapArea(0x9000, 0x9fff, 2, M62Z80Rom + M62Z80BankAddress2);
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 Write => %04X, %02X\n"), a, d);
- }
- }
-}
-
-UINT8 __fastcall M62Z80PortRead(UINT16 a)
-{
- a &= 0xff;
-
- switch (a) {
- case 0x00: {
- return 0xff - M62Input[0];
- }
-
- case 0x01: {
- return 0xff - M62Input[1];
- }
-
- case 0x02: {
- return 0xff - M62Input[2];
- }
-
- case 0x03: {
- return M62Dip[0];
- }
-
- case 0x04: {
- return M62Dip[1];
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 Port Read => %02X\n"), a);
- }
- }
-
- return 0;
-}
-
-void __fastcall M62Z80PortWrite(UINT16 a, UINT8 d)
-{
- a &= 0xff;
-
- switch (a) {
- case 0x00: {
- if ((d & 0x80) == 0) {
- M62SoundLatch = d & 0x7f;
- } else {
- M6803SetIRQLine(M6803_IRQ_LINE, CPU_IRQSTATUS_ACK);
- }
- return;
- }
-
- case 0x01: {
- d ^= ~M62Dip[1] & 0x01;
- M62FlipScreen = d & 0x01;
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 Port Write => %02X, %02X\n"), a, d);
- }
- }
-}
-
-void __fastcall BattroadZ80PortWrite(UINT16 a, UINT8 d)
-{
- a &= 0xff;
-
- if (a <= 0x01) {
- M62Z80PortWrite(a, d);
- return;
- }
-
- switch (a) {
- case 0x80: {
- M62BackgroundVScroll = (M62BackgroundVScroll & 0xff00) | d;
- return;
- }
-
- case 0x81: {
- M62BackgroundHScroll = (M62BackgroundHScroll & 0x00ff) | (d << 8);
- return;
- }
-
- case 0x82: {
- M62BackgroundHScroll = (M62BackgroundHScroll & 0xff00) | d;
- return;
- }
-
- case 0x83: {
- M62Z80BankAddress = 0x8000 + ((d & 0x0f) * 0x2000);
- ZetMapArea(0xa000, 0xbfff, 0, M62Z80Rom + M62Z80BankAddress);
- ZetMapArea(0xa000, 0xbfff, 2, M62Z80Rom + M62Z80BankAddress);
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 Port Write => %02X, %02X\n"), a, d);
- }
- }
-}
-
-UINT8 __fastcall Ldrun2Z80PortRead(UINT16 a)
-{
- a &= 0xff;
-
- if (a <= 0x04) return M62Z80PortRead(a);
-
- switch (a) {
- case 0x80: {
- if (Ldrun2BankSwap) {
- Ldrun2BankSwap--;
- if (Ldrun2BankSwap == 0) {
- ZetMapArea(0x8000, 0x9fff, 0, M62Z80Rom + 0xa000);
- ZetMapArea(0x8000, 0x9fff, 2, M62Z80Rom + 0xa000);
- }
- }
- return 0;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 Port Read => %02X\n"), a);
- }
- }
-
- return 0;
-}
-
-void __fastcall Ldrun2Z80PortWrite(UINT16 a, UINT8 d)
-{
- a &= 0xff;
-
- if (a <= 0x01) {
- M62Z80PortWrite(a, d);
- return;
- }
-
- switch (a) {
- case 0x80:
- case 0x81: {
- static const INT32 Banks[30] = { 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1 };
- INT32 Offset = a - 0x80;
-
- M62BankControl[Offset] = d;
-
- if (Offset == 0x00) {
- if (d >= 1 && d <= 30) {
- M62Z80BankAddress = 0x8000 + (Banks[d - 1] * 0x2000);
- ZetMapArea(0x8000, 0x9fff, 0, M62Z80Rom + M62Z80BankAddress);
- ZetMapArea(0x8000, 0x9fff, 2, M62Z80Rom + M62Z80BankAddress);
- }
- } else {
- if (M62BankControl[0] == 0x01 && d == 0x0d) {
- Ldrun2BankSwap = 2;
- } else {
- Ldrun2BankSwap = 0;
- }
- }
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 Port Write => %02X, %02X\n"), a, d);
- }
- }
-}
-
-void __fastcall Ldrun3Z80PortWrite(UINT16 a, UINT8 d)
-{
- a &= 0xff;
-
- if (a <= 0x01) {
- M62Z80PortWrite(a, d);
- return;
- }
-
- switch (a) {
- case 0x80: {
- M62BackgroundVScroll = (M62BackgroundVScroll & 0xff00) | d;
- return;
- }
-
- case 0x81: {
- Ldrun3TopBottomMask = d & 0x01;
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 Port Write => %02X, %02X\n"), a, d);
- }
- }
-}
-
-void __fastcall Ldrun4Z80PortWrite(UINT16 a, UINT8 d)
-{
- a &= 0xff;
-
- if (a <= 0x01) {
- M62Z80PortWrite(a, d);
- return;
- }
-
- switch (a) {
- case 0x80: {
- // ???
- return;
- }
-
- case 0x81: {
- // ???
- return;
- }
-
- case 0x82: {
- M62BackgroundHScroll = (M62BackgroundHScroll & 0x00ff) | (d << 8);
- return;
- }
-
- case 0x83: {
- M62BackgroundHScroll = (M62BackgroundHScroll & 0xff00) | d;
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 Port Write => %02X, %02X\n"), a, d);
- }
- }
-}
-
-UINT8 __fastcall KidnikiZ80PortRead(UINT16 a)
-{
- a &= 0xff;
-
- if (a <= 0x04) return M62Z80PortRead(a);
-
- switch (a) {
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 Port Read => %02X\n"), a);
- }
- }
-
- return 0;
-}
-
-void __fastcall KidnikiZ80PortWrite(UINT16 a, UINT8 d)
-{
- a &= 0xff;
-
- if (a <= 0x01) {
- M62Z80PortWrite(a, d);
- return;
- }
-
- switch (a) {
- case 0x80: {
- M62BackgroundHScroll = (M62BackgroundHScroll & 0xff00) | d;
- return;
- }
-
- case 0x81: {
- M62BackgroundHScroll = (M62BackgroundHScroll & 0x00ff) | (d << 8);
- return;
- }
-
- case 0x82: {
- M62CharVScroll = (M62CharVScroll & 0xff00) | d;
- return;
- }
-
- case 0x83: {
- M62CharVScroll = (M62CharVScroll & 0x00ff) | (d << 8);
- return;
- }
-
- case 0x84: {
- KidnikiBackgroundBank = d & 0x01;
- return;
- }
-
- case 0x85: {
- M62Z80BankAddress = 0x8000 + ((d & 0x0f) * 0x2000);
- ZetMapArea(0x8000, 0x9fff, 0, M62Z80Rom + M62Z80BankAddress);
- ZetMapArea(0x8000, 0x9fff, 2, M62Z80Rom + M62Z80BankAddress);
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 Port Write => %02X, %02X\n"), a, d);
- }
- }
-}
-
-void __fastcall YoujyudnZ80PortWrite(UINT16 a, UINT8 d)
-{
- a &= 0xff;
-
- if (a <= 0x01) {
- M62Z80PortWrite(a, d);
- return;
- }
-
- switch (a) {
- case 0x80: {
- M62BackgroundHScroll = (M62BackgroundHScroll & 0x00ff) | (d << 8);
- return;
- }
-
- case 0x81: {
- M62BackgroundHScroll = (M62BackgroundHScroll & 0xff00) | d;
- return;
- }
-
- case 0x83: {
- M62Z80BankAddress = 0x8000 + ((d & 0x01) * 0x4000);
- ZetMapArea(0x8000, 0xbfff, 0, M62Z80Rom + M62Z80BankAddress);
- ZetMapArea(0x8000, 0xbfff, 2, M62Z80Rom + M62Z80BankAddress);
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 Port Write => %02X, %02X\n"), a, d);
- }
- }
-}
-
-UINT8 M62M6803ReadByte(UINT16 a)
-{
- if (a <= 0x001f) {
- return m6803_internal_registers_r(a);
- }
-
- if (a >= 0x0080 && a <= 0x00ff) {
- return M62M6803Ram[a - 0x0080];
- }
-
- bprintf(PRINT_NORMAL, _T("M6803 Read Byte -> %04X\n"), a);
-
- return 0;
-}
-
-void M62M6803WriteByte(UINT16 a, UINT8 d)
-{
- if (a <= 0x001f) {
- m6803_internal_registers_w(a, d);
- return;
- }
-
- if (a >= 0x0080 && a <= 0x00ff) {
- M62M6803Ram[a - 0x0080] = d;
- return;
- }
-
- switch (a) {
- case 0x0800: {
- M6803SetIRQLine(M6803_IRQ_LINE, CPU_IRQSTATUS_NONE);
- return;
- }
-
- case 0x0801: {
- MSM5205DataWrite(0, d);
- return;
- }
-
- case 0x0802: {
- MSM5205DataWrite(1, d);
- return;
- }
- }
-
- bprintf(PRINT_NORMAL, _T("M6803 Write Byte -> %04X, %02X\n"), a, d);
-}
-
-UINT8 M62M6803ReadPort(UINT16 a)
-{
- switch (a) {
- case M6803_PORT1: {
- if (M62Port2 & 0x08) return AY8910Read(0);
- if (M62Port2 & 0x10) return AY8910Read(1);
- return 0xff;
- }
-
- case M6803_PORT2: {
- return 0;
- }
- }
-
- bprintf(PRINT_NORMAL, _T("M6803 Read Port -> %04X\n"), a);
-
- return 0;
-}
-
-void M62M6803WritePort(UINT16 a, UINT8 d)
-{
- switch (a) {
- case M6803_PORT1: {
- M62Port1 = d;
- return;
- }
-
- case M6803_PORT2: {
- if ((M62Port2 & 0x01) && !(d & 0x01)) {
- if (M62Port2 & 0x04) {
- if (M62Port2 & 0x08) {
- AY8910Write(0, 0, M62Port1);
- }
- if (M62Port2 & 0x10) {
- AY8910Write(1, 0, M62Port1);
- }
- } else {
- if (M62Port2 & 0x08) {
- AY8910Write(0, 1, M62Port1);
- }
- if (M62Port2 & 0x10) {
- AY8910Write(1, 1, M62Port1);
- }
- }
- }
-
- M62Port2 = d;
- return;
- }
- }
-
- bprintf(PRINT_NORMAL, _T("M6803 Write Port -> %04X, %02X\n"), a, d);
-}
-
-static INT32 Tile1024PlaneOffsets[3] = { 0x20000, 0x10000, 0 };
-static INT32 Tile2048PlaneOffsets[3] = { 0x40000, 0x20000, 0 };
-static INT32 Tile4096PlaneOffsets[3] = { 0x80000, 0x40000, 0 };
-static INT32 TileXOffsets[8] = { 0, 1, 2, 3, 4, 5, 6, 7 };
-static INT32 TileYOffsets[8] = { 0, 8, 16, 24, 32, 40, 48, 56 };
-static INT32 KungfumSpritePlaneOffsets[3] = { 0x80000, 0x40000, 0 };
-static INT32 BattroadSpritePlaneOffsets[3] = { 0x40000, 0x20000, 0 };
-static INT32 LdrunSpritePlaneOffsets[3] = { 0x20000, 0x10000, 0 };
-static INT32 KidnikiSpritePlaneOffsets[3] = { 0x100000, 0x80000, 0 };
-static INT32 SpriteXOffsets[16] = { 0, 1, 2, 3, 4, 5, 6, 7, 128, 129, 130, 131, 132, 133, 134, 135 };
-static INT32 SpriteYOffsets[16] = { 0, 8, 16, 24, 32, 40, 48, 56, 64, 72, 80, 88, 96, 104, 112, 120 };
-static INT32 BattroadCharPlaneOffsets[2] = { 0, 0x10000 };
-static INT32 LotlotPlaneOffsets[3] = { 0, 0x10000, 0x20000 };
-static INT32 LotlotXOffsets[12] = { 0, 1, 2, 3, 128, 129, 130, 131, 132, 133, 134, 135 };
-static INT32 LotlotYOffsets[10] = { 0, 8, 16, 24, 32, 40, 48, 56, 64, 72 };
-static INT32 KidnikiPlaneOffsets[3] = { 0, 0x20000, 0x40000 };
-static INT32 KidnikiXOffsets[12] = { 0, 1, 2, 3, 64, 65, 66, 67, 68, 69, 70, 71 };
-static INT32 KidnikiYOffsets[8] = { 0, 8, 16, 24, 32, 40, 48, 56 };
-static INT32 Spelunk2PlaneOffsets[3] = { 0, 0x20000, 0x40000 };
-static INT32 Spelunk2XOffsets[12] = { 0, 1, 2, 3, 0x10000, 0x10001, 0x10002, 0x10003, 0x10004, 0x10005, 0x10006, 0x10007 };
-static INT32 Spelunk2YOffsets[8] = { 0, 8, 16, 24, 32, 40, 48, 56 };
-static INT32 YoujyudnTilePlaneOffsets[3] = { 0x40000, 0x20000, 0 };
-static INT32 YoujyudnTileXOffsets[8] = { 0, 1, 2, 3, 4, 5, 6, 7 };
-static INT32 YoujyudnTileYOffsets[16] = { 0, 8, 16, 24, 32, 40, 48, 56, 64, 72, 80, 88, 96, 104, 112, 120 };
-
-UINT8 M62SoundLatchRead(UINT32)
-{
- return M62SoundLatch;
-}
-
-static void AY8910_0PortBWrite(UINT32, UINT32 d)
-{
- MSM5205PlaymodeWrite(0, (d >> 2) & 0x07);
- MSM5205PlaymodeWrite(1, ((d >> 2) & 0x04) | 0x03);
-
- MSM5205ResetWrite(0, d & 0x01);
- MSM5205ResetWrite(1, d & 0x02);
-}
-
-static void AY8910_1PortAWrite(UINT32, UINT32 data)
-{
- if (data == 0xff) {
- //bprintf(0, _T("M62 Analog drumkit init.\n"));
- return;
- }
-
- if (data > 0) {
- if (data & 0x01) // bass drum
- BurnSamplePlay(2);
- if (data & 0x02) // snare drum
- BurnSamplePlay(1);
- if (data & 0x04) // open hat
- BurnSamplePlay(3);
- if (data & 0x08) // closed hat
- BurnSamplePlay(0);
- }
-}
-
-inline static INT32 M62SynchroniseStream(INT32 nSoundRate)
-{
- return (INT64)((double)ZetTotalCycles() * nSoundRate / M62Z80Clock);
-}
-
-static void M62MSM5205Vck0()
-{
- M6803SetIRQLine(M6803_INPUT_LINE_NMI, CPU_IRQSTATUS_AUTO);
- M62SlaveMSM5205VClckReset = 1;
-}
-
-static INT32 M62MemInit()
-{
- INT32 nLen;
-
- M62PaletteEntries = BurnDrvGetPaletteEntries();
-
- Mem = NULL;
- M62MemIndex();
- nLen = MemEnd - (UINT8 *)0;
- if ((Mem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(Mem, 0, nLen);
- M62MemIndex();
-
- return 0;
-}
-
-static INT32 KungfumLoadRoms()
-{
- INT32 nRet = 0;
-
- M62TempRom = (UINT8 *)BurnMalloc(0x18000);
-
- // Load Z80 Program Roms
- nRet = BurnLoadRom(M62Z80Rom + 0x00000, 0, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62Z80Rom + 0x04000, 1, 1); if (nRet != 0) return 1;
-
- // Load M6803 Program Roms
- nRet = BurnLoadRom(M62M6803Rom + 0x06000, 2, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62M6803Rom + 0x08000, 3, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62M6803Rom + 0x0a000, 4, 1); if (nRet != 0) return 1;
-
- // Load and decode the tiles
- memset(M62TempRom, 0, 0x18000);
- nRet = BurnLoadRom(M62TempRom + 0x00000, 5, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x02000, 6, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x04000, 7, 1); if (nRet != 0) return 1;
- GfxDecode(M62NumTiles, 3, M62BgxTileDim, M62BgyTileDim, Tile1024PlaneOffsets, TileXOffsets, TileYOffsets, 0x40, M62TempRom, M62Tiles);
-
- // Load and decode the sprites
- memset(M62TempRom, 0, 0x18000);
- nRet = BurnLoadRom(M62TempRom + 0x00000, 8, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x02000, 9, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x04000, 10, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x06000, 11, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x08000, 12, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x0a000, 13, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x0c000, 14, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x0e000, 15, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x10000, 16, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x12000, 17, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x14000, 18, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x16000, 19, 1); if (nRet != 0) return 1;
- GfxDecode(M62NumSprites, 3, 16, 16, KungfumSpritePlaneOffsets, SpriteXOffsets, SpriteYOffsets, 0x100, M62TempRom, M62Sprites);
-
- // Load the Proms
- nRet = BurnLoadRom(M62PromData + 0x00000, 20, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00100, 21, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00200, 22, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00300, 23, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00400, 24, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00500, 25, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00600, 26, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00620, 27, 1); if (nRet != 0) return 1;
-
- BurnFree(M62TempRom);
-
- return 0;
-}
-
-static INT32 KungfumdLoadRoms()
-{
- INT32 nRet = 0;
-
- M62TempRom = (UINT8 *)BurnMalloc(0x18000);
-
- // Load Z80 Program Roms
- nRet = BurnLoadRom(M62Z80Rom + 0x00000, 0, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62Z80Rom + 0x04000, 1, 1); if (nRet != 0) return 1;
-
- // Load M6803 Program Roms
- nRet = BurnLoadRom(M62M6803Rom + 0x04000, 2, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62M6803Rom + 0x08000, 3, 1); if (nRet != 0) return 1;
-
- // Load and decode the tiles
- memset(M62TempRom, 0, 0x18000);
- nRet = BurnLoadRom(M62TempRom + 0x00000, 4, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x02000, 5, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x04000, 6, 1); if (nRet != 0) return 1;
- GfxDecode(M62NumTiles, 3, M62BgxTileDim, M62BgyTileDim, Tile1024PlaneOffsets, TileXOffsets, TileYOffsets, 0x40, M62TempRom, M62Tiles);
-
- // Load and decode the sprites
- memset(M62TempRom, 0, 0x18000);
- nRet = BurnLoadRom(M62TempRom + 0x00000, 7, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x04000, 8, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x08000, 9, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x0c000, 10, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x10000, 11, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x14000, 12, 1); if (nRet != 0) return 1;
- GfxDecode(M62NumSprites, 3, 16, 16, KungfumSpritePlaneOffsets, SpriteXOffsets, SpriteYOffsets, 0x100, M62TempRom, M62Sprites);
-
- // Load the Proms
- nRet = BurnLoadRom(M62PromData + 0x00000, 13, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00100, 14, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00200, 15, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00300, 16, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00400, 17, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00500, 18, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00600, 19, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00620, 20, 1); if (nRet != 0) return 1;
-
- BurnFree(M62TempRom);
-
- return 0;
-}
-
-static INT32 Kungfub3LoadRoms()
-{
- INT32 nRet = 0;
-
- M62TempRom = (UINT8 *)BurnMalloc(0x18000);
-
- // Load Z80 Program Roms
- nRet = BurnLoadRom(M62Z80Rom + 0x00000, 0, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62Z80Rom + 0x04000, 1, 1); if (nRet != 0) return 1;
-
- // Load M6803 Program Roms
- nRet = BurnLoadRom(M62M6803Rom + 0x06000, 2, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62M6803Rom + 0x08000, 3, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62M6803Rom + 0x0a000, 4, 1); if (nRet != 0) return 1;
-
- // Load and decode the tiles
- memset(M62TempRom, 0, 0x18000);
- nRet = BurnLoadRom(M62TempRom + 0x00000, 5, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x02000, 6, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x04000, 7, 1); if (nRet != 0) return 1;
- GfxDecode(M62NumTiles, 3, M62BgxTileDim, M62BgyTileDim, Tile1024PlaneOffsets, TileXOffsets, TileYOffsets, 0x40, M62TempRom, M62Tiles);
-
- // Load and decode the sprites
- memset(M62TempRom, 0, 0x18000);
- nRet = BurnLoadRom(M62TempRom + 0x00000, 8, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x04000, 9, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x08000, 10, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x0c000, 11, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x10000, 12, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x14000, 13, 1); if (nRet != 0) return 1;
- GfxDecode(M62NumSprites, 3, 16, 16, KungfumSpritePlaneOffsets, SpriteXOffsets, SpriteYOffsets, 0x100, M62TempRom, M62Sprites);
-
- // Load the Proms
- nRet = BurnLoadRom(M62PromData + 0x00000, 14, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00100, 15, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00200, 16, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00300, 17, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00400, 18, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00500, 19, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00600, 20, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00620, 21, 1); if (nRet != 0) return 1;
-
- BurnFree(M62TempRom);
-
- return 0;
-}
-
-static INT32 BattroadLoadRoms()
-{
- INT32 nRet = 0;
-
- M62TempRom = (UINT8 *)BurnMalloc(0x0c000);
-
- // Load Z80 Program Roms
- nRet = BurnLoadRom(M62Z80Rom + 0x00000, 0, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62Z80Rom + 0x02000, 1, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62Z80Rom + 0x04000, 2, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62Z80Rom + 0x06000, 3, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62Z80Rom + 0x08000, 4, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62Z80Rom + 0x0a000, 5, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62Z80Rom + 0x0c000, 6, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62Z80Rom + 0x0e000, 7, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62Z80Rom + 0x10000, 8, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62Z80Rom + 0x14000, 9, 1); if (nRet != 0) return 1;
-
- // Load M6803 Program Roms
- nRet = BurnLoadRom(M62M6803Rom + 0x06000, 10, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62M6803Rom + 0x08000, 11, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62M6803Rom + 0x0a000, 12, 1); if (nRet != 0) return 1;
-
- // Load and decode the tiles
- memset(M62TempRom, 0, 0x0c000);
- nRet = BurnLoadRom(M62TempRom + 0x00000, 13, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x02000, 14, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x04000, 15, 1); if (nRet != 0) return 1;
- GfxDecode(M62NumTiles, 3, M62BgxTileDim, M62BgyTileDim, Tile1024PlaneOffsets, TileXOffsets, TileYOffsets, 0x40, M62TempRom, M62Tiles);
-
- // Load and decode the sprites
- memset(M62TempRom, 0, 0x0c000);
- nRet = BurnLoadRom(M62TempRom + 0x00000, 16, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x02000, 17, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x04000, 18, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x06000, 19, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x08000, 20, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x0a000, 21, 1); if (nRet != 0) return 1;
- GfxDecode(M62NumSprites, 3, 16, 16, BattroadSpritePlaneOffsets, SpriteXOffsets, SpriteYOffsets, 0x100, M62TempRom, M62Sprites);
-
- // Load and decode the chars
- memset(M62TempRom, 0, 0x0c000);
- nRet = BurnLoadRom(M62TempRom + 0x00000, 22, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x02000, 23, 1); if (nRet != 0) return 1;
- GfxDecode(M62NumChars, 2, M62CharxTileDim, M62CharyTileDim, BattroadCharPlaneOffsets, TileXOffsets, TileYOffsets, 0x40, M62TempRom, M62Chars);
-
- // Load the Proms
- nRet = BurnLoadRom(M62PromData + 0x00000, 24, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00100, 25, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00200, 26, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00300, 27, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00400, 28, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00500, 29, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00600, 30, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00620, 31, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00720, 32, 1); if (nRet != 0) return 1;
-
- BurnFree(M62TempRom);
-
- return 0;
-}
-
-static INT32 LdrunLoadRoms()
-{
- INT32 nRet = 0;
-
- M62TempRom = (UINT8 *)BurnMalloc(0x06000);
-
- // Load Z80 Program Roms
- nRet = BurnLoadRom(M62Z80Rom + 0x00000, 0, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62Z80Rom + 0x02000, 1, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62Z80Rom + 0x04000, 2, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62Z80Rom + 0x06000, 3, 1); if (nRet != 0) return 1;
-
- // Load M6803 Program Roms
- nRet = BurnLoadRom(M62M6803Rom + 0x08000, 4, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62M6803Rom + 0x0a000, 5, 1); if (nRet != 0) return 1;
-
- // Load and decode the tiles
- memset(M62TempRom, 0, 0x06000);
- nRet = BurnLoadRom(M62TempRom + 0x00000, 6, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x02000, 7, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x04000, 8, 1); if (nRet != 0) return 1;
- GfxDecode(M62NumTiles, 3, M62BgxTileDim, M62BgyTileDim, Tile1024PlaneOffsets, TileXOffsets, TileYOffsets, 0x40, M62TempRom, M62Tiles);
-
- // Load and decode the sprites
- memset(M62TempRom, 0, 0x06000);
- nRet = BurnLoadRom(M62TempRom + 0x00000, 9, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x02000, 10, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x04000, 11, 1); if (nRet != 0) return 1;
- GfxDecode(M62NumSprites, 3, 16, 16, LdrunSpritePlaneOffsets, SpriteXOffsets, SpriteYOffsets, 0x100, M62TempRom, M62Sprites);
-
- // Load the Proms
- nRet = BurnLoadRom(M62PromData + 0x00000, 12, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00100, 13, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00200, 14, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00300, 15, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00400, 16, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00500, 17, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00600, 18, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00620, 19, 1); if (nRet != 0) return 1;
-
- BurnFree(M62TempRom);
-
- return 0;
-}
-
-static INT32 Ldrun2LoadRoms()
-{
- INT32 nRet = 0;
-
- M62TempRom = (UINT8 *)BurnMalloc(0x0c000);
-
- // Load Z80 Program Roms
- nRet = BurnLoadRom(M62Z80Rom + 0x00000, 0, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62Z80Rom + 0x02000, 1, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62Z80Rom + 0x04000, 2, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62Z80Rom + 0x06000, 3, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62Z80Rom + 0x08000, 4, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62Z80Rom + 0x0a000, 5, 1); if (nRet != 0) return 1;
-
- // Load M6803 Program Roms
- nRet = BurnLoadRom(M62M6803Rom + 0x06000, 6, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62M6803Rom + 0x08000, 7, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62M6803Rom + 0x0a000, 8, 1); if (nRet != 0) return 1;
-
- // Load and decode the tiles
- memset(M62TempRom, 0, 0x0c000);
- nRet = BurnLoadRom(M62TempRom + 0x00000, 9, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x02000, 10, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x04000, 11, 1); if (nRet != 0) return 1;
- GfxDecode(M62NumTiles, 3, M62BgxTileDim, M62BgyTileDim, Tile1024PlaneOffsets, TileXOffsets, TileYOffsets, 0x40, M62TempRom, M62Tiles);
-
- // Load and decode the sprites
- memset(M62TempRom, 0, 0x0c000);
- nRet = BurnLoadRom(M62TempRom + 0x00000, 12, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x02000, 13, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x04000, 14, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x06000, 15, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x08000, 16, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x0a000, 17, 1); if (nRet != 0) return 1;
- GfxDecode(M62NumSprites, 3, 16, 16, BattroadSpritePlaneOffsets, SpriteXOffsets, SpriteYOffsets, 0x100, M62TempRom, M62Sprites);
-
- // Load the Proms
- nRet = BurnLoadRom(M62PromData + 0x00000, 18, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00100, 19, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00200, 20, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00300, 21, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00400, 22, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00500, 23, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00600, 24, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00620, 25, 1); if (nRet != 0) return 1;
-
- BurnFree(M62TempRom);
-
- return 0;
-}
-
-static INT32 Ldrun3LoadRoms()
-{
- INT32 nRet = 0;
-
- M62TempRom = (UINT8 *)BurnMalloc(0x18000);
-
- // Load Z80 Program Roms
- nRet = BurnLoadRom(M62Z80Rom + 0x00000, 0, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62Z80Rom + 0x04000, 1, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62Z80Rom + 0x08000, 2, 1); if (nRet != 0) return 1;
-
- // Load M6803 Program Roms
- nRet = BurnLoadRom(M62M6803Rom + 0x04000, 3, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62M6803Rom + 0x08000, 4, 1); if (nRet != 0) return 1;
-
- // Load and decode the tiles
- memset(M62TempRom, 0, 0x18000);
- nRet = BurnLoadRom(M62TempRom + 0x00000, 5, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x04000, 6, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x08000, 7, 1); if (nRet != 0) return 1;
- GfxDecode(M62NumTiles, 3, M62BgxTileDim, M62BgyTileDim, Tile2048PlaneOffsets, TileXOffsets, TileYOffsets, 0x40, M62TempRom, M62Tiles);
-
- // Load and decode the sprites
- memset(M62TempRom, 0, 0x18000);
- nRet = BurnLoadRom(M62TempRom + 0x00000, 8, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x04000, 9, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x08000, 10, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x0c000, 11, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x10000, 12, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x14000, 13, 1); if (nRet != 0) return 1;
- GfxDecode(M62NumSprites, 3, 16, 16, KungfumSpritePlaneOffsets, SpriteXOffsets, SpriteYOffsets, 0x100, M62TempRom, M62Sprites);
-
- // Load the Proms
- nRet = BurnLoadRom(M62PromData + 0x00000, 14, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00100, 15, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00200, 16, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00300, 17, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00400, 18, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00500, 19, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00600, 20, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00620, 21, 1); if (nRet != 0) return 1;
-
- BurnFree(M62TempRom);
-
- return 0;
-}
-
-static INT32 Ldrun3jLoadRoms()
-{
- INT32 nRet = 0;
-
- M62TempRom = (UINT8 *)BurnMalloc(0x0c000);
-
- // Load Z80 Program Roms
- nRet = BurnLoadRom(M62Z80Rom + 0x00000, 0, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62Z80Rom + 0x04000, 1, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62Z80Rom + 0x08000, 2, 1); if (nRet != 0) return 1;
-
- // Load M6803 Program Roms
- nRet = BurnLoadRom(M62M6803Rom + 0x04000, 3, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62M6803Rom + 0x08000, 4, 1); if (nRet != 0) return 1;
-
- // Load and decode the tiles
- memset(M62TempRom, 0, 0x0c000);
- nRet = BurnLoadRom(M62TempRom + 0x00000, 5, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x04000, 6, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x08000, 7, 1); if (nRet != 0) return 1;
- GfxDecode(M62NumTiles, 3, M62BgxTileDim, M62BgyTileDim, Tile2048PlaneOffsets, TileXOffsets, TileYOffsets, 0x40, M62TempRom, M62Tiles);
-
- // Load and decode the sprites
- memset(M62TempRom, 0, 0x0c000);
- nRet = BurnLoadRom(M62TempRom + 0x00000, 8, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x04000, 9, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x08000, 10, 1); if (nRet != 0) return 1;
- GfxDecode(M62NumSprites, 3, 16, 16, BattroadSpritePlaneOffsets, SpriteXOffsets, SpriteYOffsets, 0x100, M62TempRom, M62Sprites);
-
- // Load the Proms
- nRet = BurnLoadRom(M62PromData + 0x00000, 11, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00100, 12, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00200, 13, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00300, 14, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00400, 15, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00500, 16, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00600, 17, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00620, 18, 1); if (nRet != 0) return 1;
-
- BurnFree(M62TempRom);
-
- return 0;
-}
-
-static INT32 LotlotLoadRoms()
-{
- INT32 nRet = 0;
-
- M62TempRom = (UINT8 *)BurnMalloc(0x06000);
-
- // Load Z80 Program Roms
- nRet = BurnLoadRom(M62Z80Rom + 0x00000, 0, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62Z80Rom + 0x04000, 1, 1); if (nRet != 0) return 1;
-
- // Load M6803 Program Roms
- nRet = BurnLoadRom(M62M6803Rom + 0x0a000, 2, 1); if (nRet != 0) return 1;
-
- // Load and decode the tiles
- memset(M62TempRom, 0, 0x06000);
- nRet = BurnLoadRom(M62TempRom + 0x00000, 3, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x02000, 4, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x04000, 5, 1); if (nRet != 0) return 1;
- GfxDecode(M62NumTiles, 3, M62BgxTileDim, M62BgyTileDim, LotlotPlaneOffsets, LotlotXOffsets, LotlotYOffsets, 0x100, M62TempRom, M62Tiles);
-
- // Load and decode the sprites
- memset(M62TempRom, 0, 0x06000);
- nRet = BurnLoadRom(M62TempRom + 0x00000, 6, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x02000, 7, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x04000, 8, 1); if (nRet != 0) return 1;
- GfxDecode(M62NumSprites, 3, 16, 16, LdrunSpritePlaneOffsets, SpriteXOffsets, SpriteYOffsets, 0x100, M62TempRom, M62Sprites);
-
- // Load and decode the chars
- memset(M62TempRom, 0, 0x06000);
- nRet = BurnLoadRom(M62TempRom + 0x00000, 9, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x02000, 10, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x04000, 11, 1); if (nRet != 0) return 1;
- GfxDecode(M62NumChars, 3, M62CharxTileDim, M62CharyTileDim, LotlotPlaneOffsets, LotlotXOffsets, LotlotYOffsets, 0x100, M62TempRom, M62Chars);
-
- // Load the Proms
- nRet = BurnLoadRom(M62PromData + 0x00000, 12, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00100, 13, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00200, 14, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00300, 15, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00400, 16, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00500, 17, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00600, 18, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00700, 19, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00800, 20, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00900, 21, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00920, 22, 1); if (nRet != 0) return 1;
-
- BurnFree(M62TempRom);
-
- return 0;
-}
-
-static INT32 KidnikiLoadRoms()
-{
- INT32 nRet = 0;
-
- M62TempRom = (UINT8 *)BurnMalloc(0x30000);
-
- // Load Z80 Program Roms
- nRet = BurnLoadRom(M62Z80Rom + 0x00000, 0, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62Z80Rom + 0x04000, 1, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62Z80Rom + 0x08000, 2, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62Z80Rom + 0x10000, 3, 1); if (nRet != 0) return 1;
- memcpy(M62Z80Rom + 0x20000, M62Z80Rom + 0x18000, 0x8000);
-
- // Load M6803 Program Roms
- nRet = BurnLoadRom(M62M6803Rom + 0x00000, 4, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62M6803Rom + 0x04000, 5, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62M6803Rom + 0x08000, 6, 1); if (nRet != 0) return 1;
-
- // Load and decode the tiles
- memset(M62TempRom, 0, 0x30000);
- nRet = BurnLoadRom(M62TempRom + 0x00000, 7, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x08000, 8, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x10000, 9, 1); if (nRet != 0) return 1;
- GfxDecode(M62NumTiles, 3, M62BgxTileDim, M62BgyTileDim, Tile4096PlaneOffsets, TileXOffsets, TileYOffsets, 0x40, M62TempRom, M62Tiles);
-
- // Load and decode the sprites
- memset(M62TempRom, 0, 0x30000);
- nRet = BurnLoadRom(M62TempRom + 0x00000, 10, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x04000, 11, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x08000, 12, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x0c000, 13, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x10000, 14, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x14000, 15, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x18000, 16, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x1c000, 17, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x20000, 18, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x24000, 19, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x28000, 20, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x2c000, 21, 1); if (nRet != 0) return 1;
- GfxDecode(M62NumSprites, 3, 16, 16, KidnikiSpritePlaneOffsets, SpriteXOffsets, SpriteYOffsets, 0x100, M62TempRom, M62Sprites);
-
- // Load and decode the chars
- memset(M62TempRom, 0, 0x30000);
- nRet = BurnLoadRom(M62TempRom + 0x00000, 22, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x04000, 23, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x08000, 24, 1); if (nRet != 0) return 1;
- GfxDecode(M62NumChars, 3, M62CharxTileDim, M62CharyTileDim, KidnikiPlaneOffsets, KidnikiXOffsets, KidnikiYOffsets, 0x80, M62TempRom, M62Chars);
-
- // Load the Proms
- nRet = BurnLoadRom(M62PromData + 0x00000, 25, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00100, 26, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00200, 27, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00300, 28, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00400, 29, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00500, 30, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00600, 31, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00620, 32, 1); if (nRet != 0) return 1;
-
- BurnFree(M62TempRom);
-
- return 0;
-}
-
-static INT32 LitheroLoadRoms()
-{
- INT32 nRet = 0;
-
- M62TempRom = (UINT8 *)BurnMalloc(0x30000);
-
- // Load Z80 Program Roms
- nRet = BurnLoadRom(M62Z80Rom + 0x00000, 0, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62Z80Rom + 0x08000, 1, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62Z80Rom + 0x10000, 2, 1); if (nRet != 0) return 1;
-
- // Load M6803 Program Roms
- nRet = BurnLoadRom(M62M6803Rom + 0x00000, 3, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62M6803Rom + 0x04000, 4, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62M6803Rom + 0x08000, 5, 1); if (nRet != 0) return 1;
-
- // Load and decode the tiles
- memset(M62TempRom, 0, 0x30000);
- nRet = BurnLoadRom(M62TempRom + 0x00000, 6, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x08000, 7, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x10000, 8, 1); if (nRet != 0) return 1;
- GfxDecode(M62NumTiles, 3, M62BgxTileDim, M62BgyTileDim, Tile4096PlaneOffsets, TileXOffsets, TileYOffsets, 0x40, M62TempRom, M62Tiles);
-
- // Load and decode the sprites
- memset(M62TempRom, 0, 0x30000);
- nRet = BurnLoadRom(M62TempRom + 0x00000, 9, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x08000, 10, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x10000, 11, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x18000, 12, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x20000, 13, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x28000, 14, 1); if (nRet != 0) return 1;
- GfxDecode(M62NumSprites, 3, 16, 16, KidnikiSpritePlaneOffsets, SpriteXOffsets, SpriteYOffsets, 0x100, M62TempRom, M62Sprites);
-
- // Load and decode the chars
- memset(M62TempRom, 0, 0x30000);
- nRet = BurnLoadRom(M62TempRom + 0x00000, 15, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x04000, 16, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x08000, 17, 1); if (nRet != 0) return 1;
- GfxDecode(M62NumChars, 3, M62CharxTileDim, M62CharyTileDim, KidnikiPlaneOffsets, KidnikiXOffsets, KidnikiYOffsets, 0x80, M62TempRom, M62Chars);
-
- // Load the Proms
- nRet = BurnLoadRom(M62PromData + 0x00000, 18, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00100, 19, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00200, 20, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00300, 21, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00400, 22, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00500, 23, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00600, 24, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00620, 25, 1); if (nRet != 0) return 1;
-
- BurnFree(M62TempRom);
-
- return 0;
-}
-
-static INT32 SpelunkrLoadRoms()
-{
- INT32 nRet = 0;
-
- M62TempRom = (UINT8 *)BurnMalloc(0x18000);
-
- // Load Z80 Program Roms
- nRet = BurnLoadRom(M62Z80Rom + 0x00000, 0, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62Z80Rom + 0x04000, 1, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62Z80Rom + 0x08000, 2, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62Z80Rom + 0x0c000, 3, 1); if (nRet != 0) return 1;
-
- // Load M6803 Program Roms
- nRet = BurnLoadRom(M62M6803Rom + 0x04000, 4, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62M6803Rom + 0x08000, 5, 1); if (nRet != 0) return 1;
-
- // Load and decode the tiles
- memset(M62TempRom, 0, 0x18000);
- nRet = BurnLoadRom(M62TempRom + 0x00000, 6, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x04000, 7, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x08000, 8, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x0c000, 9, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x10000, 10, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x14000, 11, 1); if (nRet != 0) return 1;
- GfxDecode(M62NumTiles, 3, M62BgxTileDim, M62BgyTileDim, Tile4096PlaneOffsets, TileXOffsets, TileYOffsets, 0x40, M62TempRom, M62Tiles);
-
- // Load and decode the sprites
- memset(M62TempRom, 0, 0x18000);
- nRet = BurnLoadRom(M62TempRom + 0x00000, 12, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x04000, 13, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x08000, 14, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x0c000, 15, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x10000, 16, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x14000, 17, 1); if (nRet != 0) return 1;
- GfxDecode(M62NumSprites, 3, 16, 16, KungfumSpritePlaneOffsets, SpriteXOffsets, SpriteYOffsets, 0x100, M62TempRom, M62Sprites);
-
- // Load and decode the chars
- memset(M62TempRom, 0, 0x18000);
- UINT8 *pTemp = (UINT8*)BurnMalloc(0x18000);
- nRet = BurnLoadRom(pTemp + 0x00000, 18, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(pTemp + 0x04000, 19, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(pTemp + 0x08000, 20, 1); if (nRet != 0) return 1;
- memcpy(M62TempRom + 0x0000, pTemp + 0x0000, 0x800);
- memcpy(M62TempRom + 0x2000, pTemp + 0x0800, 0x800);
- memcpy(M62TempRom + 0x0800, pTemp + 0x1000, 0x800);
- memcpy(M62TempRom + 0x2800, pTemp + 0x1800, 0x800);
- memcpy(M62TempRom + 0x1000, pTemp + 0x2000, 0x800);
- memcpy(M62TempRom + 0x3000, pTemp + 0x2800, 0x800);
- memcpy(M62TempRom + 0x0800, pTemp + 0x3000, 0x800);
- memcpy(M62TempRom + 0x3800, pTemp + 0x3800, 0x800);
- memcpy(M62TempRom + 0x4000, pTemp + 0x4000, 0x800);
- memcpy(M62TempRom + 0x6000, pTemp + 0x4800, 0x800);
- memcpy(M62TempRom + 0x4800, pTemp + 0x5000, 0x800);
- memcpy(M62TempRom + 0x6800, pTemp + 0x5800, 0x800);
- memcpy(M62TempRom + 0x5000, pTemp + 0x6000, 0x800);
- memcpy(M62TempRom + 0x7000, pTemp + 0x6800, 0x800);
- memcpy(M62TempRom + 0x5800, pTemp + 0x7000, 0x800);
- memcpy(M62TempRom + 0x7800, pTemp + 0x7800, 0x800);
- memcpy(M62TempRom + 0x8000, pTemp + 0x8000, 0x800);
- memcpy(M62TempRom + 0xa000, pTemp + 0x8800, 0x800);
- memcpy(M62TempRom + 0x8800, pTemp + 0x9000, 0x800);
- memcpy(M62TempRom + 0xa800, pTemp + 0x9800, 0x800);
- memcpy(M62TempRom + 0x9000, pTemp + 0xa000, 0x800);
- memcpy(M62TempRom + 0xb000, pTemp + 0xa800, 0x800);
- memcpy(M62TempRom + 0x9800, pTemp + 0xb000, 0x800);
- memcpy(M62TempRom + 0xb800, pTemp + 0xb800, 0x800);
- BurnFree(pTemp);
- GfxDecode(M62NumChars, 3, M62CharxTileDim, M62CharyTileDim, Spelunk2PlaneOffsets, Spelunk2XOffsets, Spelunk2YOffsets, 0x40, M62TempRom, M62Chars);
-
- // Load the Proms
- nRet = BurnLoadRom(M62PromData + 0x00000, 21, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00100, 22, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00200, 23, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00300, 24, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00400, 25, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00500, 26, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00600, 27, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00620, 28, 1); if (nRet != 0) return 1;
-
- BurnFree(M62TempRom);
-
- return 0;
-}
-
-static INT32 Spelunk2LoadRoms()
-{
- INT32 nRet = 0;
-
- M62TempRom = (UINT8 *)BurnMalloc(0x18000);
-
- // Load Z80 Program Roms
- nRet = BurnLoadRom(M62Z80Rom + 0x00000, 0, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62Z80Rom + 0x04000, 1, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62Z80Rom + 0x08000, 2, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62Z80Rom + 0x10000, 3, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62Z80Rom + 0x18000, 4, 1); if (nRet != 0) return 1;
-
- // Load M6803 Program Roms
- nRet = BurnLoadRom(M62M6803Rom + 0x04000, 5, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62M6803Rom + 0x08000, 6, 1); if (nRet != 0) return 1;
-
- // Load and decode the tiles
- memset(M62TempRom, 0, 0x18000);
- nRet = BurnLoadRom(M62TempRom + 0x00000, 7, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x08000, 8, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x10000, 9, 1); if (nRet != 0) return 1;
- GfxDecode(M62NumTiles, 3, M62BgxTileDim, M62BgyTileDim, Tile4096PlaneOffsets, TileXOffsets, TileYOffsets, 0x40, M62TempRom, M62Tiles);
-
- // Load and decode the sprites
- memset(M62TempRom, 0, 0x18000);
- nRet = BurnLoadRom(M62TempRom + 0x00000, 10, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x04000, 11, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x08000, 12, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x0c000, 13, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x10000, 14, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x14000, 15, 1); if (nRet != 0) return 1;
- GfxDecode(M62NumSprites, 3, 16, 16, KungfumSpritePlaneOffsets, SpriteXOffsets, SpriteYOffsets, 0x100, M62TempRom, M62Sprites);
-
- // Load and decode the chars
- memset(M62TempRom, 0, 0x18000);
- UINT8 *pTemp = (UINT8*)BurnMalloc(0x18000);
- nRet = BurnLoadRom(pTemp + 0x00000, 16, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(pTemp + 0x04000, 17, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(pTemp + 0x08000, 18, 1); if (nRet != 0) return 1;
- memcpy(M62TempRom + 0x0000, pTemp + 0x0000, 0x800);
- memcpy(M62TempRom + 0x2000, pTemp + 0x0800, 0x800);
- memcpy(M62TempRom + 0x0800, pTemp + 0x1000, 0x800);
- memcpy(M62TempRom + 0x2800, pTemp + 0x1800, 0x800);
- memcpy(M62TempRom + 0x1000, pTemp + 0x2000, 0x800);
- memcpy(M62TempRom + 0x3000, pTemp + 0x2800, 0x800);
- memcpy(M62TempRom + 0x0800, pTemp + 0x3000, 0x800);
- memcpy(M62TempRom + 0x3800, pTemp + 0x3800, 0x800);
- memcpy(M62TempRom + 0x4000, pTemp + 0x4000, 0x800);
- memcpy(M62TempRom + 0x6000, pTemp + 0x4800, 0x800);
- memcpy(M62TempRom + 0x4800, pTemp + 0x5000, 0x800);
- memcpy(M62TempRom + 0x6800, pTemp + 0x5800, 0x800);
- memcpy(M62TempRom + 0x5000, pTemp + 0x6000, 0x800);
- memcpy(M62TempRom + 0x7000, pTemp + 0x6800, 0x800);
- memcpy(M62TempRom + 0x5800, pTemp + 0x7000, 0x800);
- memcpy(M62TempRom + 0x7800, pTemp + 0x7800, 0x800);
- memcpy(M62TempRom + 0x8000, pTemp + 0x8000, 0x800);
- memcpy(M62TempRom + 0xa000, pTemp + 0x8800, 0x800);
- memcpy(M62TempRom + 0x8800, pTemp + 0x9000, 0x800);
- memcpy(M62TempRom + 0xa800, pTemp + 0x9800, 0x800);
- memcpy(M62TempRom + 0x9000, pTemp + 0xa000, 0x800);
- memcpy(M62TempRom + 0xb000, pTemp + 0xa800, 0x800);
- memcpy(M62TempRom + 0x9800, pTemp + 0xb000, 0x800);
- memcpy(M62TempRom + 0xb800, pTemp + 0xb800, 0x800);
- BurnFree(pTemp);
- GfxDecode(M62NumChars, 3, M62CharxTileDim, M62CharyTileDim, Spelunk2PlaneOffsets, Spelunk2XOffsets, Spelunk2YOffsets, 0x40, M62TempRom, M62Chars);
-
- // Load the Proms
- nRet = BurnLoadRom(M62PromData + 0x00000, 19, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00200, 20, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00300, 21, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00400, 22, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00500, 23, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00600, 24, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00700, 25, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00720, 26, 1); if (nRet != 0) return 1;
-
- BurnFree(M62TempRom);
-
- return 0;
-}
-
-static INT32 YoujyudnLoadRoms()
-{
- INT32 nRet = 0;
-
- M62TempRom = (UINT8 *)BurnMalloc(0x18000);
-
- // Load Z80 Program Roms
- nRet = BurnLoadRom(M62Z80Rom + 0x00000, 0, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62Z80Rom + 0x04000, 1, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62Z80Rom + 0x08000, 2, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62Z80Rom + 0x0c000, 3, 1); if (nRet != 0) return 1;
-
- // Load M6803 Program Roms
- nRet = BurnLoadRom(M62M6803Rom + 0x08000, 4, 1); if (nRet != 0) return 1;
-
- // Load and decode the tiles
- memset(M62TempRom, 0, 0x18000);
- UINT8 *pTemp = (UINT8*)BurnMalloc(0x18000);
- nRet = BurnLoadRom(pTemp + 0x00000, 5, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(pTemp + 0x08000, 6, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(pTemp + 0x10000, 7, 1); if (nRet != 0) return 1;
- memcpy(M62TempRom + 0x0000, pTemp + 0x04000, 0x4000);
- memcpy(M62TempRom + 0x4000, pTemp + 0x0c000, 0x4000);
- memcpy(M62TempRom + 0x8000, pTemp + 0x14000, 0x4000);
- BurnFree(pTemp);
- GfxDecode(M62NumTiles, 3, M62BgxTileDim, M62BgyTileDim, YoujyudnTilePlaneOffsets, YoujyudnTileXOffsets, YoujyudnTileYOffsets, 0x80, M62TempRom, M62Tiles);
-
- // Load and decode the sprites
- memset(M62TempRom, 0, 0x18000);
- nRet = BurnLoadRom(M62TempRom + 0x00000, 8, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x04000, 9, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x08000, 10, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x0c000, 11, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x10000, 12, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x14000, 13, 1); if (nRet != 0) return 1;
- GfxDecode(M62NumSprites, 3, 16, 16, KungfumSpritePlaneOffsets, SpriteXOffsets, SpriteYOffsets, 0x100, M62TempRom, M62Sprites);
-
- // Load and decode the chars
- memset(M62TempRom, 0, 0x18000);
- nRet = BurnLoadRom(M62TempRom + 0x00000, 14, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x04000, 15, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x08000, 16, 1); if (nRet != 0) return 1;
- GfxDecode(M62NumChars, 3, M62CharxTileDim, M62CharyTileDim, KidnikiPlaneOffsets, KidnikiXOffsets, KidnikiYOffsets, 0x80, M62TempRom, M62Chars);
-
- // Load the Proms
- nRet = BurnLoadRom(M62PromData + 0x00000, 17, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00100, 18, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00200, 19, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00300, 20, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00400, 21, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00500, 22, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00600, 23, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00620, 24, 1); if (nRet != 0) return 1;
-
- BurnFree(M62TempRom);
-
- return 0;
-}
-
-static INT32 HorizonLoadRoms()
-{
- INT32 nRet = 0;
-
- M62TempRom = (UINT8 *)BurnMalloc(0x18000);
-
- // Load Z80 Program Roms
- nRet = BurnLoadRom(M62Z80Rom + 0x00000, 0, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62Z80Rom + 0x04000, 1, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62Z80Rom + 0x08000, 2, 1); if (nRet != 0) return 1;
-
- // Load M6803 Program Roms
- nRet = BurnLoadRom(M62M6803Rom + 0x08000, 3, 1); if (nRet != 0) return 1;
-
- // Load and decode the tiles
- memset(M62TempRom, 0, 0x18000);
- nRet = BurnLoadRom(M62TempRom + 0x00000, 4, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x02000, 5, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x04000, 6, 1); if (nRet != 0) return 1;
- GfxDecode(M62NumTiles, 3, M62BgxTileDim, M62BgyTileDim, Tile1024PlaneOffsets, TileXOffsets, TileYOffsets, 0x40, M62TempRom, M62Tiles);
-
- // Load and decode the sprites
- memset(M62TempRom, 0, 0x18000);
- nRet = BurnLoadRom(M62TempRom + 0x00000, 7, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x04000, 8, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x08000, 9, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x0c000, 10, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x10000, 11, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62TempRom + 0x14000, 12, 1); if (nRet != 0) return 1;
- GfxDecode(M62NumSprites, 3, 16, 16, KungfumSpritePlaneOffsets, SpriteXOffsets, SpriteYOffsets, 0x100, M62TempRom, M62Sprites);
-
- // Load the Proms
- nRet = BurnLoadRom(M62PromData + 0x00000, 13, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00100, 14, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00200, 15, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00300, 16, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00400, 17, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00500, 18, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00600, 19, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(M62PromData + 0x00620, 20, 1); if (nRet != 0) return 1;
-
- BurnFree(M62TempRom);
-
- return 0;
-}
-
-static void M62MachineInit()
-{
-// BurnSetRefreshRate(55.0);
-
- ZetInit(0);
- ZetOpen(0);
- ZetSetReadHandler(M62Z80Read);
- ZetSetWriteHandler(M62Z80Write);
- ZetSetInHandler(M62Z80PortRead);
- ZetSetOutHandler(M62Z80PortWrite);
- ZetMapArea(0x0000, 0x7fff, 0, M62Z80Rom );
- ZetMapArea(0x0000, 0x7fff, 2, M62Z80Rom );
- ZetMapArea(0xc000, 0xc0ff, 0, M62SpriteRam);
- ZetMapArea(0xc000, 0xc0ff, 1, M62SpriteRam);
- ZetMapArea(0xc000, 0xc0ff, 2, M62SpriteRam);
- ZetMapArea(0xd000, 0xdfff, 0, M62TileRam );
- ZetMapArea(0xd000, 0xdfff, 1, M62TileRam );
- ZetMapArea(0xd000, 0xdfff, 2, M62TileRam );
- ZetMapArea(0xe000, 0xefff, 0, M62Z80Ram );
- ZetMapArea(0xe000, 0xefff, 1, M62Z80Ram );
- ZetMapArea(0xe000, 0xefff, 2, M62Z80Ram );
- ZetClose();
-
- M6803Init(1);
- M6803MapMemory(M62M6803Rom, 0x4000, 0xffff, MAP_ROM);
- M6803SetReadHandler(M62M6803ReadByte);
- M6803SetWriteHandler(M62M6803WriteByte);
- M6803SetReadPortHandler(M62M6803ReadPort);
- M6803SetWritePortHandler(M62M6803WritePort);
-
- pAY8910Buffer[0] = pFMBuffer + nBurnSoundLen * 0;
- pAY8910Buffer[1] = pFMBuffer + nBurnSoundLen * 1;
- pAY8910Buffer[2] = pFMBuffer + nBurnSoundLen * 2;
- pAY8910Buffer[3] = pFMBuffer + nBurnSoundLen * 3;
- pAY8910Buffer[4] = pFMBuffer + nBurnSoundLen * 4;
- pAY8910Buffer[5] = pFMBuffer + nBurnSoundLen * 5;
-
- MSM5205Init(0, M62SynchroniseStream, 384000, M62MSM5205Vck0, MSM5205_S96_4B, 1);
- MSM5205Init(1, M62SynchroniseStream, 384000, NULL, MSM5205_SEX_4B, 1);
- MSM5205SetRoute(0, 0.20, BURN_SND_ROUTE_BOTH);
- MSM5205SetRoute(1, 0.20, BURN_SND_ROUTE_BOTH);
-
- AY8910Init(0, 894886, nBurnSoundRate, &M62SoundLatchRead, NULL, NULL, &AY8910_0PortBWrite);
- AY8910Init(1, 894886, nBurnSoundRate, NULL, NULL, &AY8910_1PortAWrite, NULL);
- AY8910SetAllRoutes(0, 0.15, BURN_SND_ROUTE_BOTH);
- AY8910SetAllRoutes(1, 0.15, BURN_SND_ROUTE_BOTH);
-#ifdef USE_SAMPLE_HACK
- BurnUpdateProgress(0.0, _T("Loading samples..."), 0);
- bBurnSampleTrimSampleEnd = 1;
- BurnSampleInit(1);
- BurnSampleSetAllRoutesAllSamples(0.40, BURN_SND_ROUTE_BOTH);
- bHasSamples = BurnSampleGetStatus(0) != -1;
-
- if (!bHasSamples) { // Samples not found
- BurnSampleSetAllRoutesAllSamples(0.00, BURN_SND_ROUTE_BOTH);
- } else {
- bprintf(0, _T("Using TR606 Drumkit samples!\n"));
- // Hat
- BurnSampleSetRoute(0, BURN_SND_SAMPLE_ROUTE_1, 0.11, BURN_SND_ROUTE_BOTH);
- BurnSampleSetRoute(0, BURN_SND_SAMPLE_ROUTE_2, 0.11, BURN_SND_ROUTE_BOTH);
- // Snare
- BurnSampleSetRoute(1, BURN_SND_SAMPLE_ROUTE_1, 0.40, BURN_SND_ROUTE_BOTH);
- BurnSampleSetRoute(1, BURN_SND_SAMPLE_ROUTE_2, 0.40, BURN_SND_ROUTE_BOTH);
- // Kick
- BurnSampleSetRoute(2, BURN_SND_SAMPLE_ROUTE_1, 0.40, BURN_SND_ROUTE_BOTH);
- BurnSampleSetRoute(2, BURN_SND_SAMPLE_ROUTE_2, 0.40, BURN_SND_ROUTE_BOTH);
- // Open Hat
- BurnSampleSetRoute(3, BURN_SND_SAMPLE_ROUTE_1, 0.11, BURN_SND_ROUTE_BOTH);
- BurnSampleSetRoute(3, BURN_SND_SAMPLE_ROUTE_2, 0.11, BURN_SND_ROUTE_BOTH);
- }
-#endif
-
- GenericTilesInit();
-
- M62Z80Clock = 4000000;
- M62M6803Clock = 894886;
-
- M62SpriteHeightPromOffset = (M62PaletteEntries & 0xf00) * 3;
-}
-
-static INT32 KungfumMachineInit()
-{
- M62MachineInit();
-
- ZetOpen(0);
- ZetSetReadHandler(KungfumZ80Read);
- ZetSetWriteHandler(KungfumZ80Write);
- ZetClose();
-
- M62Z80Clock = 3072000;
- M62RenderFunction = KungfumDraw;
-
- M62DoReset();
-
- return 0;
-}
-
-static INT32 BattroadMachineInit()
-{
- M62MachineInit();
-
- ZetOpen(0);
- ZetSetOutHandler(BattroadZ80PortWrite);
- ZetMapArea(0xa000, 0xbfff, 0, M62Z80Rom + 0x8000);
- ZetMapArea(0xa000, 0xbfff, 2, M62Z80Rom + 0x8000);
- ZetMapArea(0xc800, 0xcfff, 0, M62CharRam );
- ZetMapArea(0xc800, 0xcfff, 1, M62CharRam );
- ZetMapArea(0xc800, 0xcfff, 2, M62CharRam );
- ZetClose();
-
- M62Z80Clock = 3072000;
-
- M62RenderFunction = BattroadDraw;
- M62ExtendTileInfoFunction = BattroadExtendTile;
- M62ExtendCharInfoFunction = BattroadExtendChar;
-
- M62DoReset();
-
- return 0;
-}
-
-static INT32 LdrunMachineInit()
-{
- M62MachineInit();
-
- M62RenderFunction = LdrunDraw;
- M62ExtendTileInfoFunction = LdrunExtendTile;
-
- M62DoReset();
-
- return 0;
-}
-
-static INT32 Ldrun2MachineInit()
-{
- M62MachineInit();
-
- ZetOpen(0);
- ZetSetInHandler(Ldrun2Z80PortRead);
- ZetSetOutHandler(Ldrun2Z80PortWrite);
- ZetMapArea(0x8000, 0x9fff, 0, M62Z80Rom + 0x8000);
- ZetMapArea(0x8000, 0x9fff, 2, M62Z80Rom + 0x8000);
- ZetClose();
-
- M62RenderFunction = LdrunDraw;
- M62ExtendTileInfoFunction = Ldrun2ExtendTile;
-
- M62DoReset();
-
- return 0;
-}
-
-static INT32 Ldrun3MachineInit()
-{
- M62MachineInit();
-
- ZetOpen(0);
- ZetSetReadHandler(Ldrun3Z80Read);
- ZetSetOutHandler(Ldrun3Z80PortWrite);
- ZetMapArea(0x8000, 0xbfff, 0, M62Z80Rom + 0x8000);
- ZetMapArea(0x8000, 0xbfff, 2, M62Z80Rom + 0x8000);
- ZetClose();
-
- M62RenderFunction = Ldrun3Draw;
- M62ExtendTileInfoFunction = Ldrun2ExtendTile;
-
- M62DoReset();
-
- return 0;
-}
-
-static INT32 Ldrun4MachineInit()
-{
- M62MachineInit();
-
- ZetOpen(0);
- ZetSetWriteHandler(Ldrun4Z80Write);
- ZetSetOutHandler(Ldrun4Z80PortWrite);
- ZetMapArea(0x8000, 0xbfff, 0, M62Z80Rom + 0x8000);
- ZetMapArea(0x8000, 0xbfff, 2, M62Z80Rom + 0x8000);
- ZetClose();
-
- M62RenderFunction = Ldrun4Draw;
- M62ExtendTileInfoFunction = Ldrun4ExtendTile;
-
- M62DoReset();
-
- return 0;
-}
-
-static INT32 LotlotMachineInit()
-{
- M62MachineInit();
-
- ZetOpen(0);
- ZetMapArea(0xa000, 0xafff, 0, M62CharRam);
- ZetMapArea(0xa000, 0xafff, 1, M62CharRam);
- ZetMapArea(0xa000, 0xafff, 2, M62CharRam);
- ZetClose();
-
- M62RenderFunction = LotlotDraw;
- M62ExtendTileInfoFunction = LotlotExtendTile;
- M62ExtendCharInfoFunction = LotlotExtendChar;
-
- M62DoReset();
-
- return 0;
-}
-
-static INT32 KidnikiMachineInit()
-{
- M62MachineInit();
-
- ZetOpen(0);
- ZetSetInHandler(KidnikiZ80PortRead);
- ZetSetOutHandler(KidnikiZ80PortWrite);
- ZetMapArea(0x8000, 0x9fff, 0, M62Z80Rom + 0x8000);
- ZetMapArea(0x8000, 0x9fff, 2, M62Z80Rom + 0x8000);
- ZetMapArea(0xa000, 0xafff, 0, M62TileRam );
- ZetMapArea(0xa000, 0xafff, 1, M62TileRam );
- ZetMapArea(0xa000, 0xafff, 2, M62TileRam );
- ZetMapArea(0xd000, 0xdfff, 0, M62CharRam );
- ZetMapArea(0xd000, 0xdfff, 1, M62CharRam );
- ZetMapArea(0xd000, 0xdfff, 2, M62CharRam );
- ZetClose();
-
- M62RenderFunction = KidnikiDraw;
- M62ExtendTileInfoFunction = KidnikiExtendTile;
- M62ExtendCharInfoFunction = LotlotExtendChar;
-
- M62DoReset();
-
- return 0;
-}
-
-static INT32 SpelunkrMachineInit()
-{
- M62MachineInit();
-
- ZetOpen(0);
- ZetSetWriteHandler(SpelunkrZ80Write);
- ZetMapArea(0x8000, 0x9fff, 0, M62Z80Rom + 0x8000);
- ZetMapArea(0x8000, 0x9fff, 2, M62Z80Rom + 0x8000);
- ZetMapArea(0xa000, 0xbfff, 0, M62TileRam );
- ZetMapArea(0xa000, 0xbfff, 1, M62TileRam );
- ZetMapArea(0xa000, 0xbfff, 2, M62TileRam );
- ZetMapArea(0xc800, 0xcfff, 0, M62CharRam );
- ZetMapArea(0xc800, 0xcfff, 1, M62CharRam );
- ZetMapArea(0xc800, 0xcfff, 2, M62CharRam );
- ZetMemCallback(0xd000, 0xdfff, 0);
- ZetMemCallback(0xd000, 0xdfff, 1);
- ZetMemCallback(0xd000, 0xdfff, 2);
- ZetClose();
-
- M62RenderFunction = SpelunkrDraw;
- M62ExtendTileInfoFunction = SpelunkrExtendTile;
- M62ExtendCharInfoFunction = SpelunkrExtendChar;
- M62Z80Clock = 5000000; // needs a little boost or the top bg tiles don't scroll right. weird. -dink
-
- M62DoReset();
-
- return 0;
-}
-
-static INT32 Spelunk2MachineInit()
-{
- M62MachineInit();
-
- ZetOpen(0);
- ZetSetWriteHandler(Spelunk2Z80Write);
- ZetMapArea(0x8000, 0x8fff, 0, M62Z80Rom + 0x18000);
- ZetMapArea(0x8000, 0x8fff, 2, M62Z80Rom + 0x18000);
- ZetMapArea(0x9000, 0x9fff, 0, M62Z80Rom + 0x08000);
- ZetMapArea(0x9000, 0x9fff, 2, M62Z80Rom + 0x08000);
- ZetMapArea(0xa000, 0xbfff, 0, M62TileRam );
- ZetMapArea(0xa000, 0xbfff, 1, M62TileRam );
- ZetMapArea(0xa000, 0xbfff, 2, M62TileRam );
- ZetMapArea(0xc800, 0xcfff, 0, M62CharRam );
- ZetMapArea(0xc800, 0xcfff, 1, M62CharRam );
- ZetMapArea(0xc800, 0xcfff, 2, M62CharRam );
- ZetMemCallback(0xd000, 0xdfff, 0);
- ZetMemCallback(0xd000, 0xdfff, 1);
- ZetMemCallback(0xd000, 0xdfff, 2);
- ZetClose();
-
- M62RenderFunction = Spelunk2Draw;
- M62ExtendTileInfoFunction = Spelunk2ExtendTile;
- M62ExtendCharInfoFunction = SpelunkrExtendChar;
-
- M62SpriteHeightPromOffset = 0x700;
-
- M62DoReset();
-
- return 0;
-}
-
-static INT32 YoujyudnMachineInit()
-{
- M62MachineInit();
-
- ZetOpen(0);
- ZetSetOutHandler(YoujyudnZ80PortWrite);
- ZetMapArea(0x8000, 0xbfff, 0, M62Z80Rom + 0x8000);
- ZetMapArea(0x8000, 0xbfff, 2, M62Z80Rom + 0x8000);
- ZetMapArea(0xc800, 0xcfff, 0, M62CharRam );
- ZetMapArea(0xc800, 0xcfff, 1, M62CharRam );
- ZetMapArea(0xc800, 0xcfff, 2, M62CharRam );
- ZetMemCallback(0xd800, 0xdfff, 0);
- ZetMemCallback(0xd800, 0xdfff, 1);
- ZetMemCallback(0xd800, 0xdfff, 2);
- ZetClose();
-
- M62RenderFunction = YoujyudnDraw;
- M62ExtendTileInfoFunction = YoujyudnExtendTile;
- M62ExtendCharInfoFunction = YoujyudnExtendChar;
-
- M62Z80Clock = 3072000;
-
- M62DoReset();
-
- return 0;
-}
-
-static INT32 HorizonMachineInit()
-{
- M62MachineInit();
-
- ZetOpen(0);
- ZetMapArea(0x8000, 0xbfff, 0, M62Z80Rom + 0x8000);
- ZetMapArea(0x8000, 0xbfff, 2, M62Z80Rom + 0x8000);
- ZetMapArea(0xc000, 0xc1ff, 0, M62SpriteRam );
- ZetMapArea(0xc000, 0xc1ff, 1, M62SpriteRam );
- ZetMapArea(0xc000, 0xc1ff, 2, M62SpriteRam );
- ZetMapArea(0xc800, 0xc83f, 0, M62ScrollRam );
- ZetMapArea(0xc800, 0xc83f, 1, M62ScrollRam );
- ZetMapArea(0xc800, 0xc83f, 2, M62ScrollRam );
- ZetClose();
-
- M62RenderFunction = HorizonDraw;
- M62ExtendTileInfoFunction = HorizonExtendTile;
-
- M62DoReset();
-
- return 0;
-}
-
-static INT32 KungfumInit()
-{
- M62Z80RomSize = 0x8000;
- M62PromSize = 0x720;
- M62NumTiles = 0x400;
- M62NumSprites = 0x400;
-
- if (M62MemInit()) return 1;
- if (KungfumLoadRoms()) return 1;
- if (KungfumMachineInit()) return 1;
-
- return 0;
-}
-
-static INT32 KungfumdInit()
-{
- M62Z80RomSize = 0x8000;
- M62PromSize = 0x720;
- M62NumTiles = 0x400;
- M62NumSprites = 0x400;
-
- if (M62MemInit()) return 1;
- if (KungfumdLoadRoms()) return 1;
- if (KungfumMachineInit()) return 1;
-
- return 0;
-}
-
-static INT32 Kungfub3Init()
-{
- M62Z80RomSize = 0x8000;
- M62PromSize = 0x720;
- M62NumTiles = 0x400;
- M62NumSprites = 0x400;
-
- if (M62MemInit()) return 1;
- if (Kungfub3LoadRoms()) return 1;
- if (KungfumMachineInit()) return 1;
-
- return 0;
-}
-
-static INT32 BattroadInit()
-{
- M62Z80RomSize = 0x16000;
- M62PromSize = 0x740;
- M62NumTiles = 0x400;
- M62NumSprites = 0x200;
- M62NumChars = 0x400;
- M62CharRamSize = 0x800;
-
- if (M62MemInit()) return 1;
- if (BattroadLoadRoms()) return 1;
- if (BattroadMachineInit()) return 1;
-
- return 0;
-}
-
-static INT32 LdrunInit()
-{
- M62Z80RomSize = 0x8000;
- M62PromSize = 0x720;
- M62NumTiles = 0x400;
- M62NumSprites = 0x100;
-
- if (M62MemInit()) return 1;
- if (LdrunLoadRoms()) return 1;
- if (LdrunMachineInit()) return 1;
-
- return 0;
-}
-
-static INT32 Ldrun2Init()
-{
- M62Z80RomSize = 0xc000;
- M62PromSize = 0x720;
- M62NumTiles = 0x400;
- M62NumSprites = 0x200;
-
- if (M62MemInit()) return 1;
- if (Ldrun2LoadRoms()) return 1;
- if (Ldrun2MachineInit()) return 1;
-
- return 0;
-}
-
-static INT32 Ldrun3Init()
-{
- M62Z80RomSize = 0xc000;
- M62PromSize = 0x720;
- M62NumTiles = 0x800;
- M62NumSprites = 0x400;
-
- if (M62MemInit()) return 1;
- if (Ldrun3LoadRoms()) return 1;
- if (Ldrun3MachineInit()) return 1;
-
- return 0;
-}
-
-static INT32 Ldrun3jInit()
-{
- M62Z80RomSize = 0xc000;
- M62PromSize = 0x720;
- M62NumTiles = 0x800;
- M62NumSprites = 0x200;
-
- if (M62MemInit()) return 1;
- if (Ldrun3jLoadRoms()) return 1;
- if (Ldrun3MachineInit()) return 1;
-
- return 0;
-}
-
-static INT32 Ldrun4Init()
-{
- M62Z80RomSize = 0x10000;
- M62PromSize = 0x720;
- M62NumTiles = 0x800;
- M62NumSprites = 0x400;
-
- if (M62MemInit()) return 1;
- if (Ldrun3LoadRoms()) return 1;
- if (Ldrun4MachineInit()) return 1;
-
- return 0;
-}
-
-static INT32 LotlotInit()
-{
- M62Z80RomSize = 0x8000;
- M62PromSize = 0xa20;
- M62NumTiles = 0x100;
- M62NumSprites = 0x100;
- M62NumChars = 0x100;
- M62CharRamSize = 0x1000;
- M62BgxTileDim = 12;
- M62BgyTileDim = 10;
- M62CharxTileDim = 12;
- M62CharyTileDim = 10;
-
- if (M62MemInit()) return 1;
- if (LotlotLoadRoms()) return 1;
- if (LotlotMachineInit()) return 1;
-
- return 0;
-}
-
-static INT32 KidnikiInit()
-{
- M62Z80RomSize = 0x28000;
- M62PromSize = 0x720;
- M62NumTiles = 0x1000;
- M62NumSprites = 0x800;
- M62NumChars = 0x400;
- M62CharRamSize = 0x1000;
- M62BgxTileDim = 8;
- M62BgyTileDim = 8;
- M62CharxTileDim = 12;
- M62CharyTileDim = 8;
-
- if (M62MemInit()) return 1;
- if (KidnikiLoadRoms()) return 1;
- if (KidnikiMachineInit()) return 1;
-
- return 0;
-}
-
-static INT32 LitheroInit()
-{
- M62Z80RomSize = 0x28000;
- M62PromSize = 0x720;
- M62NumTiles = 0x1000;
- M62NumSprites = 0x800;
- M62NumChars = 0x400;
- M62CharRamSize = 0x1000;
- M62BgxTileDim = 8;
- M62BgyTileDim = 8;
- M62CharxTileDim = 12;
- M62CharyTileDim = 8;
-
- if (M62MemInit()) return 1;
- if (LitheroLoadRoms()) return 1;
- if (KidnikiMachineInit()) return 1;
-
- return 0;
-}
-
-static INT32 SpelunkrInit()
-{
- M62Z80RomSize = 0x10000;
- M62PromSize = 0x720;
- M62NumTiles = 0x1000;
- M62NumSprites = 0x400;
- M62NumChars = 0x200;
- M62CharRamSize = 0x800;
- M62BgxTileDim = 8;
- M62BgyTileDim = 8;
- M62CharxTileDim = 12;
- M62CharyTileDim = 8;
-
- if (M62MemInit()) return 1;
- if (SpelunkrLoadRoms()) return 1;
- if (SpelunkrMachineInit()) return 1;
-
- return 0;
-}
-
-static INT32 Spelunk2Init()
-{
- M62Z80RomSize = 0x1c000;
- M62PromSize = 0x820;
- M62NumTiles = 0x1000;
- M62NumSprites = 0x400;
- M62NumChars = 0x200;
- M62CharRamSize = 0x800;
- M62BgxTileDim = 8;
- M62BgyTileDim = 8;
- M62CharxTileDim = 12;
- M62CharyTileDim = 8;
-
- if (M62MemInit()) return 1;
- if (Spelunk2LoadRoms()) return 1;
- if (Spelunk2MachineInit()) return 1;
-
- return 0;
-}
-
-static INT32 YoujyudnInit()
-{
- M62Z80RomSize = 0x10000;
- M62PromSize = 0x720;
- M62NumTiles = 0x400;
- M62NumSprites = 0x400;
- M62NumChars = 0x400;
- M62CharRamSize = 0x800;
- M62BgxTileDim = 8;
- M62BgyTileDim = 16;
- M62CharxTileDim = 12;
- M62CharyTileDim = 8;
-
- if (M62MemInit()) return 1;
- if (YoujyudnLoadRoms()) return 1;
- if (YoujyudnMachineInit()) return 1;
-
- return 0;
-}
-
-static INT32 HorizonInit()
-{
- M62Z80RomSize = 0xc000;
- M62PromSize = 0x720;
- M62NumTiles = 0x400;
- M62NumSprites = 0x400;
- M62SpriteRamSize = 0x200;
- M62ScrollRamSize = 0x40;
-
- if (M62MemInit()) return 1;
- if (HorizonLoadRoms()) return 1;
- if (HorizonMachineInit()) return 1;
-
- return 0;
-}
-
-static INT32 M62Exit()
-{
- ZetExit();
- M6800Exit();
- AY8910Exit(0);
- AY8910Exit(1);
- MSM5205Exit();
-#ifdef USE_SAMPLE_HACK
- BurnSampleExit();
-#endif
-
- GenericTilesExit();
-
- BurnFree(Mem);
-
- M62Z80RomSize = 0;
- M62PromSize = 0;
- M62NumTiles = 0;
- M62NumSprites = 0;
- M62NumChars = 0;
- M62SpriteRamSize = 0;
- M62CharRamSize = 0;
- M62ScrollRamSize = 0;
-
- M62BackgroundHScroll = 0;
- M62BackgroundVScroll = 0;
- M62CharHScroll = 0;
- M62CharVScroll = 0;
- M62FlipScreen = 0;
- M62SoundLatch = 0;
- M62Port1 = 0;
- M62Port2 = 0;
- M62SlaveMSM5205VClckReset = 0;
- M62PaletteEntries = 0;
- M62Z80Clock = 0;
- M62M6803Clock = 0;
- M62RenderFunction = NULL;
- M62ExtendTileInfoFunction = NULL;
- M62ExtendCharInfoFunction = NULL;
- M62BankControl[0] = M62BankControl[1] = 0;
- Ldrun2BankSwap = 0;
- Ldrun3TopBottomMask = 0;
- KidnikiBackgroundBank = 0;
- SpelunkrPaletteBank = 0;
- M62BgxTileDim = 0;
- M62BgyTileDim = 0;
- M62CharxTileDim = 0;
- M62CharyTileDim = 0;
- M62SpriteHeightPromOffset = 0;
-
- return 0;
-}
-
-static void M62CalcPalette()
-{
- UINT8 *ColourProm = (UINT8*)M62PromData;
-
- for (UINT32 i = 0; i < M62PaletteEntries; i++) {
- INT32 Bit0, Bit1, Bit2, Bit3, r, g, b;
-
- Bit0 = (ColourProm[M62PaletteEntries * 0] >> 0) & 0x01;
- Bit1 = (ColourProm[M62PaletteEntries * 0] >> 1) & 0x01;
- Bit2 = (ColourProm[M62PaletteEntries * 0] >> 2) & 0x01;
- Bit3 = (ColourProm[M62PaletteEntries * 0] >> 3) & 0x01;
- r = 0x0e * Bit0 + 0x1f * Bit1 + 0x43 * Bit2 + 0x8f * Bit3;
-
- Bit0 = (ColourProm[M62PaletteEntries * 1] >> 0) & 0x01;
- Bit1 = (ColourProm[M62PaletteEntries * 1] >> 1) & 0x01;
- Bit2 = (ColourProm[M62PaletteEntries * 1] >> 2) & 0x01;
- Bit3 = (ColourProm[M62PaletteEntries * 1] >> 3) & 0x01;
- g = 0x0e * Bit0 + 0x1f * Bit1 + 0x43 * Bit2 + 0x8f * Bit3;
-
- Bit0 = (ColourProm[M62PaletteEntries * 2] >> 0) & 0x01;
- Bit1 = (ColourProm[M62PaletteEntries * 2] >> 1) & 0x01;
- Bit2 = (ColourProm[M62PaletteEntries * 2] >> 2) & 0x01;
- Bit3 = (ColourProm[M62PaletteEntries * 2] >> 3) & 0x01;
- b = 0x0e * Bit0 + 0x1f * Bit1 + 0x43 * Bit2 + 0x8f * Bit3;
-
- M62Palette[i] = BurnHighCol(r, g, b, 0);
-
- ColourProm++;
- }
-}
-
-static void BattroadCalcPalette()
-{
- UINT8 *ColourProm = (UINT8*)M62PromData;
-
- for (UINT32 i = 0; i < 0x200; i++) {
- INT32 Bit0, Bit1, Bit2, Bit3, r, g, b;
-
- Bit0 = (ColourProm[0x000] >> 0) & 0x01;
- Bit1 = (ColourProm[0x000] >> 1) & 0x01;
- Bit2 = (ColourProm[0x000] >> 2) & 0x01;
- Bit3 = (ColourProm[0x000] >> 3) & 0x01;
- r = 0x0e * Bit0 + 0x1f * Bit1 + 0x43 * Bit2 + 0x8f * Bit3;
-
- Bit0 = (ColourProm[0x200] >> 0) & 0x01;
- Bit1 = (ColourProm[0x200] >> 1) & 0x01;
- Bit2 = (ColourProm[0x200] >> 2) & 0x01;
- Bit3 = (ColourProm[0x200] >> 3) & 0x01;
- g = 0x0e * Bit0 + 0x1f * Bit1 + 0x43 * Bit2 + 0x8f * Bit3;
-
- Bit0 = (ColourProm[0x400] >> 0) & 0x01;
- Bit1 = (ColourProm[0x400] >> 1) & 0x01;
- Bit2 = (ColourProm[0x400] >> 2) & 0x01;
- Bit3 = (ColourProm[0x400] >> 3) & 0x01;
- b = 0x0e * Bit0 + 0x1f * Bit1 + 0x43 * Bit2 + 0x8f * Bit3;
-
- M62Palette[i] = BurnHighCol(r, g, b, 0);
-
- ColourProm++;
- }
-
- ColourProm = (UINT8*)M62PromData + 0x720;
-
- for (UINT32 i = 0; i < 0x20; i++) {
- INT32 Bit0, Bit1, Bit2, r, g, b;
-
- Bit0 = (ColourProm[i] >> 0) & 0x01;
- Bit1 = (ColourProm[i] >> 1) & 0x01;
- Bit2 = (ColourProm[i] >> 2) & 0x01;
- r = 0x21 * Bit0 + 0x47 * Bit1 + 0x97 * Bit2;
-
- Bit0 = (ColourProm[i] >> 3) & 0x01;
- Bit1 = (ColourProm[i] >> 4) & 0x01;
- Bit2 = (ColourProm[i] >> 5) & 0x01;
- g = 0x21 * Bit0 + 0x47 * Bit1 + 0x97 * Bit2;
-
- Bit0 = 0;
- Bit1 = (ColourProm[i] >> 6) & 0x01;
- Bit2 = (ColourProm[i] >> 7) & 0x01;
- b = 0x21 * Bit0 + 0x47 * Bit1 + 0x97 * Bit2;
-
- M62Palette[i + 0x200] = BurnHighCol(r, g, b, 0);
- }
-}
-
-static void Spelunk2CalcPalette()
-{
- UINT8 *ColourProm = (UINT8*)M62PromData;
-
- for (UINT32 i = 0; i < 0x200; i++) {
- INT32 Bit0, Bit1, Bit2, Bit3, r, g, b;
-
- Bit0 = (ColourProm[0x000] >> 0) & 0x01;
- Bit1 = (ColourProm[0x000] >> 1) & 0x01;
- Bit2 = (ColourProm[0x000] >> 2) & 0x01;
- Bit3 = (ColourProm[0x000] >> 3) & 0x01;
- r = 0x0e * Bit0 + 0x1f * Bit1 + 0x43 * Bit2 + 0x8f * Bit3;
-
- Bit0 = (ColourProm[0x000] >> 4) & 0x01;
- Bit1 = (ColourProm[0x000] >> 5) & 0x01;
- Bit2 = (ColourProm[0x000] >> 6) & 0x01;
- Bit3 = (ColourProm[0x000] >> 7) & 0x01;
- g = 0x0e * Bit0 + 0x1f * Bit1 + 0x43 * Bit2 + 0x8f * Bit3;
-
- Bit0 = (ColourProm[0x200] >> 0) & 0x01;
- Bit1 = (ColourProm[0x200] >> 1) & 0x01;
- Bit2 = (ColourProm[0x200] >> 2) & 0x01;
- Bit3 = (ColourProm[0x200] >> 3) & 0x01;
- b = 0x0e * Bit0 + 0x1f * Bit1 + 0x43 * Bit2 + 0x8f * Bit3;
-
- M62Palette[i] = BurnHighCol(r, g, b, 0);
-
- ColourProm++;
- }
-
- ColourProm += 0x200;
-
- for (UINT32 i = 0; i < 0x100; i++) {
- INT32 Bit0, Bit1, Bit2, Bit3, r, g, b;
-
- Bit0 = (ColourProm[0x000] >> 0) & 0x01;
- Bit1 = (ColourProm[0x000] >> 1) & 0x01;
- Bit2 = (ColourProm[0x000] >> 2) & 0x01;
- Bit3 = (ColourProm[0x000] >> 3) & 0x01;
- r = 0x0e * Bit0 + 0x1f * Bit1 + 0x43 * Bit2 + 0x8f * Bit3;
-
- Bit0 = (ColourProm[0x100] >> 0) & 0x01;
- Bit1 = (ColourProm[0x100] >> 1) & 0x01;
- Bit2 = (ColourProm[0x100] >> 2) & 0x01;
- Bit3 = (ColourProm[0x100] >> 3) & 0x01;
- g = 0x0e * Bit0 + 0x1f * Bit1 + 0x43 * Bit2 + 0x8f * Bit3;
-
- Bit0 = (ColourProm[0x200] >> 0) & 0x01;
- Bit1 = (ColourProm[0x200] >> 1) & 0x01;
- Bit2 = (ColourProm[0x200] >> 2) & 0x01;
- Bit3 = (ColourProm[0x200] >> 3) & 0x01;
- b = 0x0e * Bit0 + 0x1f * Bit1 + 0x43 * Bit2 + 0x8f * Bit3;
-
- M62Palette[i + 0x200] = BurnHighCol(r, g, b, 0);
-
- ColourProm++;
- }
-}
-
-static void BattroadExtendTile(INT32* Code, INT32* Colour, INT32* Priority, INT32* xFlip)
-{
- *Code |= ((*Colour & 0x40) << 3) | ((*Colour & 0x10) << 4);
-
- *xFlip = *Colour & 0x20;
-
- if (((*Colour & 0x1f) >> 1) >= 0x04) {
- *Priority = 1;
- } else {
- *Priority = 0;
- }
-
- *Colour &= 0x0f;
-}
-
-static void LdrunExtendTile(INT32* Code, INT32* Colour, INT32* Priority, INT32* xFlip)
-{
- *Code |= (*Colour & 0xc0) << 2;
-
- *xFlip = *Colour & 0x20;
-
- if (((*Colour & 0x1f) >> 1) >= 0x0c) {
- *Priority = 1;
- } else {
- *Priority = 0;
- }
-
- *Colour &= 0x1f;
-}
-
-static void Ldrun2ExtendTile(INT32* Code, INT32* Colour, INT32* Priority, INT32* xFlip)
-{
- *Code |= (*Colour & 0xc0) << 2;
-
- *xFlip = *Colour & 0x20;
-
- if (((*Colour & 0x1f) >> 1) >= 0x04) {
- *Priority = 1;
- } else {
- *Priority = 0;
- }
-
- *Colour &= 0x1f;
-}
-
-static void Ldrun4ExtendTile(INT32* Code, INT32* Colour, INT32*, INT32*)
-{
- *Code |= ((*Colour & 0xc0) << 2) | ((*Colour & 0x20) << 5);
- *Colour &= 0x1f;
-}
-
-static void LotlotExtendTile(INT32* Code, INT32* Colour, INT32*, INT32* xFlip)
-{
- *Code |= (*Colour & 0xc0) << 2;
- *xFlip = *Colour & 0x20;
- *Colour &= 0x1f;
-}
-
-static void KidnikiExtendTile(INT32* Code, INT32* Colour, INT32* Priority, INT32*)
-{
- *Code |= ((*Colour & 0xe0) << 3) | (KidnikiBackgroundBank << 11);
- *Priority = ((*Colour & 0xe0) == 0xe0) ? 1 : 0;
- *Colour &= 0x1f;
-}
-
-static void SpelunkrExtendTile(INT32* Code, INT32* Colour, INT32*, INT32*)
-{
- *Code |= ((*Colour & 0x10) << 4) | ((*Colour & 0x20) << 6) | ((*Colour & 0xc0) << 3);
- *Colour &= 0x0f | (SpelunkrPaletteBank << 4);
-}
-
-static void Spelunk2ExtendTile(INT32* Code, INT32* Colour, INT32*, INT32*)
-{
- *Code |= ((*Colour & 0xf0) << 4);
- *Colour &= 0x0f | (SpelunkrPaletteBank << 4);
-}
-
-static void YoujyudnExtendTile(INT32* Code, INT32* Colour, INT32* Priority, INT32*)
-{
- *Code |= (*Colour & 0x60) << 3;
- if (((*Colour & 0x1f) >> 1) >= 0x08) {
- *Priority = 1;
- } else {
- *Priority = 0;
- }
- *Colour &= 0x1f;
-}
-
-static void HorizonExtendTile(INT32* Code, INT32* Colour, INT32* Priority, INT32*)
-{
- *Code |= ((*Colour & 0xc0) << 2) | ((*Colour & 0x20) << 5);
- if (((*Colour & 0x1f) >> 1) >= 0x08) {
- *Priority = 1;
- } else {
- *Priority = 0;
- }
- *Colour &= 0x1f;
-}
-
-static void M62RenderBgLayer(INT32 PriorityToRender, INT32 xOffset, INT32 yOffset, INT32 Cols, INT32 Rows, INT32 Transparent)
-{
- INT32 Code, mx, my, Colour, x, y, TileIndex = 0, Priority, xFlip, yFlip;
-
- for (my = 0; my < Rows; my++) {
- for (mx = 0; mx < Cols; mx++) {
- Code = M62TileRam[TileIndex << 1];
- Colour = M62TileRam[(TileIndex << 1) | 0x01];
- Priority = 0;
- xFlip = 0;
- yFlip = 0;
-
- if (M62ExtendTileInfoFunction) M62ExtendTileInfoFunction(&Code, &Colour, &Priority, &xFlip);
- Code &= (M62NumTiles - 1);
-
- x = M62BgxTileDim * mx;
- y = M62BgyTileDim * my;
-
- if (M62FlipScreen) {
- xFlip = !xFlip;
- yFlip = !yFlip;
-
- y = (Rows * M62BgyTileDim) - M62BgyTileDim - y;
- x = (Cols * M62BgxTileDim) - M62BgxTileDim - x;
- }
-
- x -= xOffset;
- y -= yOffset;
-
- if (M62FlipScreen) {
- x += M62BackgroundHScroll & (Cols * M62BgxTileDim - 1);
- } else {
- x -= M62BackgroundHScroll & (Cols * M62BgxTileDim - 1);
- }
-
- y -= M62BackgroundVScroll & (Rows * M62BgyTileDim - 1);
-
- INT32 px, py;
-
- UINT32 nPalette = Colour << 3;
-
- if (Priority == PriorityToRender) {
- for (py = 0; py < M62BgyTileDim; py++) {
- for (px = 0; px < M62BgxTileDim; px++) {
- UINT8 c = M62Tiles[(Code * M62BgxTileDim * M62BgyTileDim) + (py * M62BgxTileDim) + px];
- if (xFlip) c = M62Tiles[(Code *M62BgxTileDim * M62BgyTileDim) + (py * M62BgxTileDim) + (M62BgxTileDim - 1 - px)];
- if (yFlip) c = M62Tiles[(Code * M62BgxTileDim * M62BgyTileDim) + ((M62BgyTileDim - 1 - py) * M62BgxTileDim) + px];
- if (xFlip && yFlip) c = M62Tiles[(Code * M62BgxTileDim * M62BgyTileDim) + ((M62BgyTileDim - 1 - py) * M62BgxTileDim) + (M62BgxTileDim - 1 - px)];
-
- if (Transparent && c == 0x00) continue;
-
- INT32 xPos = x + px;
- INT32 yPos = y + py;
-
- if (M62ScrollRamSize) {
-// tilemap_set_scrollx(state->bg_tilemap, i, state->scrollram[i << 1] | (state->scrollram[(i << 1) | 1] << 8));
-
- xPos -= (M62ScrollRam[my << 1] | (M62ScrollRam[(my << 1) | 0x01] << 8)) & (Cols * M62BgxTileDim - 1);
- }
-
- if (xPos < 0) xPos += Cols * M62BgxTileDim;
- if (xPos > (Cols * M62BgxTileDim - 1)) xPos -= Cols * M62BgxTileDim;
-
- if (yPos < 0) yPos += Rows * M62BgyTileDim;
- if (yPos > (Rows * M62BgyTileDim - 1)) yPos -= Rows * M62BgyTileDim;
-
- if (yPos >= 0 && yPos < nScreenHeight) {
- UINT16* pPixel = pTransDraw + (yPos * nScreenWidth);
-
- if (xPos >= 0 && xPos < nScreenWidth) {
- pPixel[xPos] = c | nPalette;
- }
- }
- }
- }
- }
-
- TileIndex++;
- }
- }
-}
-
-static void KungfumRenderBgLayer(INT32 PriorityToRender, INT32 Cols, INT32 Rows, INT32 Transparent)
-{
- INT32 Code, mx, my, Colour, x, y, TileIndex = 0, Priority, xFlip, yFlip;
-
- for (my = 0; my < Rows; my++) {
- for (mx = 0; mx < Cols; mx++) {
- Code = M62TileRam[TileIndex];
- Colour = M62TileRam[TileIndex + 0x800];
- xFlip = Colour & 0x20;
- yFlip = 0;
-
- Code |= (Colour & 0xc0) << 2;
- Code &= (M62NumTiles - 1);
-
- if ((TileIndex / 64) << 6 || ((Colour & 0x1f) >> 1) > 0x0c) {
- Priority = 1;
- } else {
- Priority = 0;
- }
-
- x = M62BgxTileDim * mx;
- y = M62BgyTileDim * my;
-
- if (M62FlipScreen) {
- xFlip = !xFlip;
- yFlip = !yFlip;
-
- y = (Rows * M62BgyTileDim - 1) - M62BgyTileDim - y;
- x = (Cols * M62BgxTileDim - 1) - M62BgxTileDim - x;
- }
-
- x -= 128;
-
- INT32 px, py;
-
- UINT32 nPalette = (Colour & 0x1f) << 3;
-
- if (Priority == PriorityToRender) {
- for (py = 0; py < M62BgyTileDim; py++) {
- for (px = 0; px < M62BgxTileDim; px++) {
- UINT8 c = M62Tiles[(Code * M62BgxTileDim * M62BgyTileDim) + (py * M62BgxTileDim) + px];
- if (xFlip) c = M62Tiles[(Code *M62BgxTileDim * M62BgyTileDim) + (py * M62BgxTileDim) + (M62BgxTileDim - 1 - px)];
- if (yFlip) c = M62Tiles[(Code * M62BgxTileDim * M62BgyTileDim) + ((M62BgyTileDim - 1 - py) * M62BgxTileDim) + px];
- if (xFlip && yFlip) c = M62Tiles[(Code * M62BgxTileDim * M62BgyTileDim) + ((M62BgyTileDim - 1 - py) * M62BgxTileDim) + (M62BgxTileDim - 1 - px)];
-
- if (Transparent && c == 0x00) continue;
-
- INT32 xPos = x + px;
- INT32 yPos = y + py;
-
- if (my >= 6) {
- if (M62FlipScreen) {
- xPos += M62BackgroundHScroll & (Cols * M62BgxTileDim - 1);
- } else {
- xPos -= M62BackgroundHScroll & (Cols * M62BgxTileDim - 1);
- }
- }
-
- if (xPos < 0) xPos += Cols * M62BgxTileDim;
- if (xPos > (Cols * M62BgxTileDim - 1)) xPos -= Cols * M62BgxTileDim;
-
- if (yPos < 0) yPos += Rows * M62BgyTileDim;
- if (yPos > (Rows * M62BgyTileDim - 1)) yPos -= Rows * M62BgyTileDim;
-
- if (yPos >= 0 && yPos < nScreenHeight) {
- UINT16* pPixel = pTransDraw + (yPos * nScreenWidth);
-
- if (xPos >= 0 && xPos < nScreenWidth) {
- pPixel[xPos] = c | nPalette;
- }
- }
- }
- }
- }
-
- TileIndex++;
- }
- }
-}
-
-static void M62RenderSprites(INT32 ColourMask, INT32 PriorityMask, INT32 Priority, INT32 VisibleOffset, INT32 PaletteOffset)
-{
- for (UINT32 Offset = 0; Offset < M62SpriteRamSize; Offset += 8) {
- INT32 i, Incr, Code, Colour, xFlip, yFlip, sx, sy;
-
- if ((M62SpriteRam[Offset] & PriorityMask) == Priority) {
- Code = M62SpriteRam[Offset + 4] + ((M62SpriteRam[Offset + 5] & 0x07) << 8);
- Colour = M62SpriteRam[Offset + 0] & ColourMask;
- sx = 256 * (M62SpriteRam[Offset + 7] & 1) + M62SpriteRam[Offset + 6],
- sy = 256 + 128 - 15 - (256 * (M62SpriteRam[Offset + 3] & 1) + M62SpriteRam[Offset + 2]),
- xFlip = M62SpriteRam[Offset + 5] & 0x40;
- yFlip = M62SpriteRam[Offset + 5] & 0x80;
-
- i = M62PromData[M62SpriteHeightPromOffset + ((Code >> 5) & 0x1f)];
- if (i == 1) {
- // double height
- Code &= ~1;
- sy -= 16;
- } else if (i == 2) {
- // quadruple height
- i = 3;
- Code &= ~3;
- sy -= 3*16;
- }
-
- if (M62FlipScreen) {
- sx = 496 - sx;
- sy = 242 - (i * 16) - sy;
- xFlip = !xFlip;
- yFlip = !yFlip;
- }
-
- if (yFlip) {
- Incr = -1;
- Code += i;
- } else {
- Incr = 1;
- }
-
- sx -= VisibleOffset;
-
- do {
- INT32 DrawCode = Code + (i * Incr);
- INT32 DrawY = sy + (i * 16);
- DrawCode &= (M62NumSprites - 1);
-
- if (sx > 15 && sx < (nScreenWidth - 16) && DrawY > 15 && DrawY < (nScreenHeight - 16)) {
- if (xFlip) {
- if (yFlip) {
- Render16x16Tile_Mask_FlipXY(pTransDraw, DrawCode, sx, DrawY, Colour, 3, 0, PaletteOffset, M62Sprites);
- } else {
- Render16x16Tile_Mask_FlipX(pTransDraw, DrawCode, sx, DrawY, Colour, 3, 0, PaletteOffset, M62Sprites);
- }
- } else {
- if (yFlip) {
- Render16x16Tile_Mask_FlipY(pTransDraw, DrawCode, sx, DrawY, Colour, 3, 0, PaletteOffset, M62Sprites);
- } else {
- Render16x16Tile_Mask(pTransDraw, DrawCode, sx, DrawY, Colour, 3, 0, PaletteOffset, M62Sprites);
- }
- }
- } else {
- if (xFlip) {
- if (yFlip) {
- Render16x16Tile_Mask_FlipXY_Clip(pTransDraw, DrawCode, sx, DrawY, Colour, 3, 0, PaletteOffset, M62Sprites);
- } else {
- Render16x16Tile_Mask_FlipX_Clip(pTransDraw, DrawCode, sx, DrawY, Colour, 3, 0, PaletteOffset, M62Sprites);
- }
- } else {
- if (yFlip) {
- Render16x16Tile_Mask_FlipY_Clip(pTransDraw, DrawCode, sx, DrawY, Colour, 3, 0, PaletteOffset, M62Sprites);
- } else {
- Render16x16Tile_Mask_Clip(pTransDraw, DrawCode, sx, DrawY, Colour, 3, 0, PaletteOffset, M62Sprites);
- }
- }
- }
-
- i--;
- } while (i >= 0);
- }
- }
-}
-
-static void BattroadExtendChar(INT32* Code, INT32* Colour, INT32*, INT32*)
-{
- *Code |= ((*Colour & 0x40) << 3) | ((*Colour & 0x10) << 4);
- *Colour &= 0x0f;
-}
-
-static void LotlotExtendChar(INT32* Code, INT32* Colour, INT32*, INT32*)
-{
- *Code |= (*Colour & 0xc0) << 2;
- *Colour &= 0x1f;
-}
-
-static void SpelunkrExtendChar(INT32* Code, INT32* Colour, INT32*, INT32*)
-{
- *Code |= (*Colour & 0x10) << 4;
- *Colour &= 0x0f | (SpelunkrPaletteBank << 4);
-}
-
-static void YoujyudnExtendChar(INT32* Code, INT32* Colour, INT32*, INT32*)
-{
- *Code |= (*Colour & 0xc0) << 2;
- *Colour &= 0x0f;
-}
-
-static void M62RenderCharLayer(INT32 Cols, INT32 Rows, INT32 ColourDepth, INT32 xOffset, INT32 yOffset, INT32 PaletteOffset)
-{
- INT32 mx, my, Code, Colour, x, y, TileIndex = 0, xFlip, yFlip;
-
- for (my = 0; my < Rows; my++) {
- for (mx = 0; mx < Cols; mx++) {
- Code = M62CharRam[TileIndex << 1];
- Colour = M62CharRam[(TileIndex << 1) | 0x01];
- xFlip = 0;
- yFlip = 0;
-
- if (M62ExtendCharInfoFunction) M62ExtendCharInfoFunction(&Code, &Colour, 0, 0);
- Code &= (M62NumChars - 1);
-
- x = M62CharxTileDim * mx;
- y = M62CharyTileDim * my;
-
- x -= xOffset;
- y -= yOffset;
-
- if (M62FlipScreen) {
- x += M62CharHScroll & (Cols * M62CharxTileDim - 1);
- } else {
- x -= M62CharHScroll & (Cols * M62CharxTileDim - 1);
- }
-
- y -= M62CharVScroll & (Rows * M62CharyTileDim - 1);
-
- INT32 px, py;
-
- UINT32 nPalette = Colour << ColourDepth;
-
- for (py = 0; py < M62CharyTileDim; py++) {
- for (px = 0; px < M62CharxTileDim; px++) {
- UINT8 c = M62Chars[(Code * M62CharxTileDim * M62CharyTileDim) + (py * M62CharxTileDim) + px];
- if (xFlip) c = M62Chars[(Code *M62CharxTileDim * M62CharyTileDim) + (py * M62CharxTileDim) + (M62CharxTileDim - 1 - px)];
- if (yFlip) c = M62Chars[(Code * M62CharxTileDim * M62CharyTileDim) + ((M62CharyTileDim - 1 - py) * M62CharxTileDim) + px];
- if (xFlip && yFlip) c = M62Chars[(Code * M62CharxTileDim * M62CharyTileDim) + ((M62CharyTileDim - 1 - py) * M62CharxTileDim) + (M62CharxTileDim - 1 - px)];
-
- if (c != 0) {
- INT32 xPos = x + px;
- INT32 yPos = y + py;
-
- if (xPos < 0) xPos += Cols * M62CharxTileDim;
- if (xPos > (Cols * M62CharxTileDim - 1)) xPos -= Cols * M62CharxTileDim;
-
- if (yPos < 0) yPos += Rows * M62CharyTileDim;
- if (yPos > (Rows * M62CharyTileDim - 1)) yPos -= Rows * M62CharyTileDim;
-
- if (yPos >= 0 && yPos < nScreenHeight) {
- UINT16* pPixel = pTransDraw + (yPos * nScreenWidth);
-
- if (xPos >= 0 && xPos < nScreenWidth) {
- pPixel[xPos] = c | nPalette | PaletteOffset;
- }
- }
- }
- }
- }
-
- TileIndex++;
- }
- }
-}
-
-static void KungfumDraw()
-{
- BurnTransferClear();
- M62CalcPalette();
- KungfumRenderBgLayer(0, 64, 32, 0);
- KungfumRenderBgLayer(1, 64, 32, 0);
- M62RenderSprites(0x1f, 0, 0, 128, 256);
- KungfumRenderBgLayer(0, 64, 32, 1);
- BurnTransferCopy(M62Palette);
-}
-
-static void BattroadDraw()
-{
- BurnTransferClear();
- BattroadCalcPalette();
- M62RenderBgLayer(0, 128, 0, 64, 32, 0);
- M62RenderBgLayer(1, 128, 0, 64, 32, 0);
- M62RenderSprites(0x0f, 0x10, 0x00, 128, 256);
- M62RenderBgLayer(1, 128, 0, 64, 32, 1);
- M62RenderSprites(0x0f, 0x10, 0x10, 128, 256);
- M62RenderCharLayer(32, 32, 2, 0, 0, 512);
- BurnTransferCopy(M62Palette);
-}
-
-static void LdrunDraw()
-{
- BurnTransferClear();
- M62CalcPalette();
- M62RenderBgLayer(0, 64, 0, 64, 32, 0);
- M62RenderBgLayer(1, 64, 0, 64, 32, 0);
- M62RenderSprites(0x0f, 0x10, 0x00, 64, 256);
- M62RenderBgLayer(1, 64, 0, 64, 32, 1);
- M62RenderSprites(0x0f, 0x10, 0x10, 64, 256);
- BurnTransferCopy(M62Palette);
-}
-
-static void Ldrun3Draw()
-{
- BurnTransferClear();
- M62CalcPalette();
- M62RenderBgLayer(0, 64, 0, 64, 32, 0);
- M62RenderBgLayer(1, 64, 0, 64, 32, 0);
- M62RenderSprites(0x0f, 0x10, 0x00, 64, 256);
- M62RenderBgLayer(1, 64, 0, 64, 32, 1);
- M62RenderSprites(0x0f, 0x10, 0x10, 64, 256);
-
- if (Ldrun3TopBottomMask) {
- INT32 x, y;
-
- for (x = 0; x < nScreenWidth; x++) {
- for (y = 0; y < 8; y++) {
- pTransDraw[(y * nScreenWidth) + x] = BurnHighCol(0, 0, 0, 0);
- pTransDraw[((y + 248) * nScreenWidth) + x] = BurnHighCol(0, 0, 0, 0);
- }
- }
- }
-
- BurnTransferCopy(M62Palette);
-}
-
-static void Ldrun4Draw()
-{
- BurnTransferClear();
- M62CalcPalette();
- M62RenderBgLayer(0, 64 - 2, 0, 64, 32, 0);
- M62RenderSprites(0x0f, 0x00, 0x00, 64, 256);
- BurnTransferCopy(M62Palette);
-}
-
-static void LotlotDraw()
-{
- M62BackgroundVScroll = 32;
- M62BackgroundHScroll = -64;
-
- BurnTransferClear();
- M62CalcPalette();
- M62RenderBgLayer(0, 64, 0, 32, 64, 0);
- M62RenderCharLayer(32, 64, 3, -64 + 64, 32, 512);
- M62RenderSprites(0x1f, 0x00, 0x00, 64, 256);
- BurnTransferCopy(M62Palette);
-}
-
-static void KidnikiDraw()
-{
- BurnTransferClear();
- M62CalcPalette();
- M62RenderBgLayer(0, 64 - 2, 0, 64, 32, 0);
- M62RenderBgLayer(1, 64 - 2, 0, 64, 32, 0);
- M62RenderSprites(0x1f, 0x00, 0x00, 64, 256);
- M62RenderBgLayer(1, 64 - 2, 0, 64, 32, 1);
- M62RenderCharLayer(32, 64, 3, 0, 128, 0);
- BurnTransferCopy(M62Palette);
-}
-
-static void SpelunkrDraw()
-{
- BurnTransferClear();
- M62CalcPalette();
- M62RenderBgLayer(0, 64, 128, 64, 64, 0);
- M62RenderSprites(0x1f, 0x00, 0x00, 64, 256);
- M62RenderCharLayer(32, 32, 3, 0, 0, 0);
- BurnTransferCopy(M62Palette);
-}
-
-static void Spelunk2Draw()
-{
- BurnTransferClear();
- Spelunk2CalcPalette();
- M62RenderBgLayer(0, 64 - 1, 128, 64, 64, 0);
- M62RenderSprites(0x1f, 0x00, 0x00, 64, 512);
- M62RenderCharLayer(32, 32, 3, 64 - 65, 0, 0);
- BurnTransferCopy(M62Palette);
-}
-
-static void YoujyudnDraw()
-{
- BurnTransferClear();
- M62CalcPalette();
- M62RenderBgLayer(0, 128, 0, 64, 16, 0);
- M62RenderBgLayer(1, 128, 0, 64, 16, 0);
- M62RenderSprites(0x1f, 0x00, 0x00, 128, 256);
- M62RenderBgLayer(1, 128, 0, 64, 16, 1);
- M62RenderCharLayer(32, 32, 3, 64, 0, 128);
- BurnTransferCopy(M62Palette);
-}
-
-static void HorizonDraw()
-{
- BurnTransferClear();
- M62CalcPalette();
- M62RenderBgLayer(0, 128, 0, 64, 32, 0);
- M62RenderBgLayer(1, 128, 0, 64, 32, 0);
- M62RenderSprites(0x1f, 0x00, 0x00, 128, 256);
- M62RenderBgLayer(1, 128, 0, 64, 32, 1);
- BurnTransferCopy(M62Palette);
-}
-
-static INT32 M62Frame()
-{
- INT32 nInterleave = MSM5205CalcInterleave(0, M62Z80Clock);
- INT32 nSoundBufferPos = 0;
-
- if (M62Reset) M62DoReset();
-
- M62MakeInputs();
-
- nCyclesTotal[0] = M62Z80Clock / 60;
- nCyclesTotal[1] = M62M6803Clock / 60;
- nCyclesDone[0] = nCyclesDone[1] = 0;
-
- ZetNewFrame();
- M6803NewFrame();
-
- for (INT32 i = 0; i < nInterleave; i++) {
- INT32 nCurrentCPU, nNext;
-
- nCurrentCPU = 0;
- ZetOpen(0);
- nNext = (i + 1) * nCyclesTotal[nCurrentCPU] / nInterleave;
- nCyclesSegment = nNext - nCyclesDone[nCurrentCPU];
- nCyclesDone[nCurrentCPU] += ZetRun(nCyclesSegment);
- if (i == (nInterleave - 1)) ZetSetIRQLine(0, CPU_IRQSTATUS_AUTO);
- ZetClose();
-
- nCurrentCPU = 1;
- nNext = (i + 1) * nCyclesTotal[nCurrentCPU] / nInterleave;
- nCyclesSegment = nNext - nCyclesDone[nCurrentCPU];
- nCyclesSegment = M6803Run(nCyclesSegment);
- nCyclesDone[nCurrentCPU] += nCyclesSegment;
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen / nInterleave;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- AY8910Render(&pAY8910Buffer[0], pSoundBuf, nSegmentLength, 0);
-#ifdef USE_SAMPLE_HACK
- if(bHasSamples)
- BurnSampleRender(pSoundBuf, nSegmentLength);
-#endif
- nSoundBufferPos += nSegmentLength;
- }
-
- ZetOpen(0);
- MSM5205Update();
- if (M62SlaveMSM5205VClckReset) {
- MSM5205VCLKWrite(1, 1);
- MSM5205VCLKWrite(1, 0);
- M62SlaveMSM5205VClckReset = 0;
- }
- ZetClose();
- }
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- if (nSegmentLength) {
- AY8910Render(&pAY8910Buffer[0], pSoundBuf, nSegmentLength, 0);
-#ifdef USE_SAMPLE_HACK
- if(bHasSamples)
- BurnSampleRender(pSoundBuf, nSegmentLength);
-#endif
- }
-
- ZetOpen(0);
- MSM5205Render(0, pBurnSoundOut, nBurnSoundLen);
- MSM5205Render(1, pBurnSoundOut, nBurnSoundLen);
- ZetClose();
-
- }
-
- if (pBurnDraw) {
- if (M62RenderFunction) M62RenderFunction();
- }
-
- return 0;
-}
-
-static INT32 M62Scan(INT32 nAction, INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin != NULL) {
- *pnMin = 0x029709;
- }
-
- if (nAction & ACB_MEMORY_RAM) {
- memset(&ba, 0, sizeof(ba));
- ba.Data = RamStart;
- ba.nLen = RamEnd-RamStart;
- ba.szName = "All Ram";
- BurnAcb(&ba);
- }
-
- if (nAction & ACB_DRIVER_DATA) {
- M6803Scan(nAction);
- ZetScan(nAction);
- AY8910Scan(nAction, pnMin);
- MSM5205Scan(nAction, pnMin);
-#ifdef USE_SAMPLE_HACK
- BurnSampleScan(nAction, pnMin);
-#endif
- SCAN_VAR(M62BackgroundHScroll);
- SCAN_VAR(M62BackgroundVScroll);
- SCAN_VAR(M62CharHScroll);
- SCAN_VAR(M62CharVScroll);
- SCAN_VAR(M62FlipScreen);
- SCAN_VAR(M62SoundLatch);
- SCAN_VAR(M62Port1);
- SCAN_VAR(M62Port2);
- SCAN_VAR(M62SlaveMSM5205VClckReset);
- SCAN_VAR(M62BankControl);
- SCAN_VAR(Ldrun2BankSwap);
- SCAN_VAR(Ldrun3TopBottomMask);
- SCAN_VAR(KidnikiBackgroundBank);
- SCAN_VAR(SpelunkrPaletteBank);
- }
-
- if (nAction & ACB_WRITE) {
- if (strstr(BurnDrvGetTextA(DRV_NAME), "spelunk")) {
- if (strstr(BurnDrvGetTextA(DRV_NAME), "spelunk2")) {
- ZetOpen(0);
- ZetMapArea(0x8000, 0x8fff, 0, M62Z80Rom + M62Z80BankAddress);
- ZetMapArea(0x8000, 0x8fff, 2, M62Z80Rom + M62Z80BankAddress);
- ZetMapArea(0x9000, 0x9fff, 0, M62Z80Rom + M62Z80BankAddress2);
- ZetMapArea(0x9000, 0x9fff, 2, M62Z80Rom + M62Z80BankAddress2);
- ZetClose();
- } else {
- ZetOpen(0);
- ZetMapArea(0x8000, 0x9fff, 0, M62Z80Rom + M62Z80BankAddress);
- ZetMapArea(0x8000, 0x9fff, 2, M62Z80Rom + M62Z80BankAddress);
- ZetClose();
- }
- }
- if (strstr(BurnDrvGetTextA(DRV_NAME), "ldrun4")) {
- ZetOpen(0);
- ZetMapArea(0x8000, 0xbfff, 0, M62Z80Rom + M62Z80BankAddress);
- ZetMapArea(0x8000, 0xbfff, 2, M62Z80Rom + M62Z80BankAddress);
- ZetClose();
- }
- if (strstr(BurnDrvGetTextA(DRV_NAME), "ldrun2")) {
- ZetOpen(0);
- ZetMapArea(0x8000, 0x9fff, 0, M62Z80Rom + M62Z80BankAddress);
- ZetMapArea(0x8000, 0x9fff, 2, M62Z80Rom + M62Z80BankAddress);
- ZetClose();
- }
- if (strstr(BurnDrvGetTextA(DRV_NAME), "battroad")) {
- ZetOpen(0);
- ZetMapArea(0xa000, 0xbfff, 0, M62Z80Rom + M62Z80BankAddress);
- ZetMapArea(0xa000, 0xbfff, 2, M62Z80Rom + M62Z80BankAddress);
- ZetClose();
- }
- if (strstr(BurnDrvGetTextA(DRV_NAME), "youj")) {
- ZetOpen(0);
- ZetMapArea(0x8000, 0xbfff, 0, M62Z80Rom + M62Z80BankAddress);
- ZetMapArea(0x8000, 0xbfff, 2, M62Z80Rom + M62Z80BankAddress);
- ZetClose();
- }
- if (strstr(BurnDrvGetTextA(DRV_NAME), "kidnik") ||
- strstr(BurnDrvGetTextA(DRV_NAME), "lithero") ||
- strstr(BurnDrvGetTextA(DRV_NAME), "yanchamr")) {
- ZetOpen(0);
- ZetMapArea(0x8000, 0x9fff, 0, M62Z80Rom + M62Z80BankAddress);
- ZetMapArea(0x8000, 0x9fff, 2, M62Z80Rom + M62Z80BankAddress);
- ZetClose();
- }
- }
-
- return 0;
-}
-
-static struct BurnSampleInfo M62SampleDesc[] = {
-#ifdef USE_SAMPLE_HACK
-#if !defined ROM_VERIFY
- { "TR606 - Hat", SAMPLE_NOLOOP },
- { "TR606 - Snare", SAMPLE_NOLOOP },
- { "TR606 - Kick", SAMPLE_NOLOOP },
- { "TR606 - Open Hat", SAMPLE_NOLOOP },
- { "TR606 - High Tom", SAMPLE_NOLOOP },
- { "TR606 - Low Tom", SAMPLE_NOLOOP },
- { "TR606 - Cymbal", SAMPLE_NOLOOP },
-#endif
-#endif
- { "", 0 }
-};
-
-STD_SAMPLE_PICK(M62)
-STD_SAMPLE_FN(M62)
-
-
-struct BurnDriver BurnDrvKungfum = {
- "kungfum", NULL, NULL, NULL, "1984",
- "Kung-Fu Master\0", NULL, "Irem", "Irem M62",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_IREM_M62, GBF_SCRFIGHT, 0,
- NULL, KungfumRomInfo, KungfumRomName, NULL, NULL, M62InputInfo, KungfumDIPInfo,
- KungfumInit, M62Exit, M62Frame, NULL, M62Scan,
- NULL, 0x200, 256, 256, 4, 3
-};
-
-struct BurnDriver BurnDrvKungfumd = {
- "kungfumd", "kungfum", NULL, NULL, "1984",
- "Kung-Fu Master (Data East)\0", NULL, "Irem (Data East License)", "Irem M62",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_IREM_M62, GBF_SCRFIGHT, 0,
- NULL, KungfumdRomInfo, KungfumdRomName, NULL, NULL, M62InputInfo, KungfumDIPInfo,
- KungfumdInit, M62Exit, M62Frame, NULL, M62Scan,
- NULL, 0x200, 256, 256, 4, 3
-};
-
-struct BurnDriver BurnDrvSpartanx = {
- "spartanx", "kungfum", NULL, NULL, "1984",
- "Spartan X (Japan)\0", NULL, "Irem", "Irem M62",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_IREM_M62, GBF_SCRFIGHT, 0,
- NULL, SpartanxRomInfo, SpartanxRomName, NULL, NULL, M62InputInfo, KungfumDIPInfo,
- KungfumInit, M62Exit, M62Frame, NULL, M62Scan,
- NULL, 0x200, 256, 256, 4, 3
-};
-
-struct BurnDriver BurnDrvKungfub = {
- "kungfub", "kungfum", NULL, NULL, "1984",
- "Kung-Fu Master (bootleg set 1)\0", NULL, "bootleg", "Irem M62",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_IREM_M62, GBF_SCRFIGHT, 0,
- NULL, KungfubRomInfo, KungfubRomName, NULL, NULL, M62InputInfo, KungfumDIPInfo,
- KungfumInit, M62Exit, M62Frame, NULL, M62Scan,
- NULL, 0x200, 256, 256, 4, 3
-};
-
-struct BurnDriver BurnDrvKungfub2 = {
- "kungfub2", "kungfum", NULL, NULL, "1984",
- "Kung-Fu Master (bootleg set 2)\0", NULL, "bootleg", "Irem M62",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_IREM_M62, GBF_SCRFIGHT, 0,
- NULL, Kungfub2RomInfo, Kungfub2RomName, NULL, NULL, M62InputInfo, KungfumDIPInfo,
- KungfumInit, M62Exit, M62Frame, NULL, M62Scan,
- NULL, 0x200, 256, 256, 4, 3
-};
-
-struct BurnDriver BurnDrvKungfub3 = {
- "kungfub3", "kungfum", NULL, NULL, "1984",
- "Kung-Fu Master (bootleg set 3)\0", NULL, "bootleg", "Irem M62",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_IREM_M62, GBF_SCRFIGHT, 0,
- NULL, Kungfub3RomInfo, Kungfub3RomName, NULL, NULL, M62InputInfo, KungfumDIPInfo,
- Kungfub3Init, M62Exit, M62Frame, NULL, M62Scan,
- NULL, 0x200, 256, 256, 4, 3
-};
-
-struct BurnDriver BurnDrvBattroad = {
- "battroad", NULL, NULL, "tr606drumkit", "1984",
- "The Battle-Road\0", NULL, "Irem", "Irem M62",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED, 2, HARDWARE_IREM_M62, GBF_SCRFIGHT, 0,
- NULL, BattroadRomInfo, BattroadRomName, M62SampleInfo, M62SampleName, M62InputInfo, BattroadDIPInfo,
- BattroadInit, M62Exit, M62Frame, NULL, M62Scan,
- NULL, 0x220, 256, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvLdrun = {
- "ldrun", NULL, NULL, NULL, "1984",
- "Lode Runner (set 1)\0", NULL, "Irem (licensed from Broderbund)", "Irem M62",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_IREM_M62, GBF_PLATFORM, 0,
- NULL, LdrunRomInfo, LdrunRomName, NULL, NULL, M62InputInfo, LdrunDIPInfo,
- LdrunInit, M62Exit, M62Frame, NULL, M62Scan,
- NULL, 0x200, 384, 256, 4, 3
-};
-
-struct BurnDriver BurnDrvLdruna = {
- "ldruna", "ldrun", NULL, NULL, "1984",
- "Lode Runner (set 2)\0", NULL, "Irem (licensed from Broderbund)", "Irem M62",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_IREM_M62, GBF_PLATFORM, 0,
- NULL, LdrunaRomInfo, LdrunaRomName, NULL, NULL, M62InputInfo, LdrunDIPInfo,
- LdrunInit, M62Exit, M62Frame, NULL, M62Scan,
- NULL, 0x200, 384, 256, 4, 3
-};
-
-struct BurnDriver BurnDrvLdrun2 = {
- "ldrun2", NULL, NULL, NULL, "1984",
- "Lode Runner II - The Bungeling Strikes Back\0", NULL, "Irem (licensed from Broderbund)", "Irem M62",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_IREM_M62, GBF_PLATFORM, 0,
- NULL, Ldrun2RomInfo, Ldrun2RomName, NULL, NULL, M62InputInfo, Ldrun2DIPInfo,
- Ldrun2Init, M62Exit, M62Frame, NULL, M62Scan,
- NULL, 0x200, 384, 256, 4, 3
-};
-
-struct BurnDriver BurnDrvLdrun3 = {
- "ldrun3", NULL, NULL, NULL, "1985",
- "Lode Runner III - The Golden Labyrinth\0", NULL, "Irem (licensed from Broderbund)", "Irem M62",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_IREM_M62, GBF_PLATFORM, 0,
- NULL, Ldrun3RomInfo, Ldrun3RomName, NULL, NULL, M62InputInfo, Ldrun2DIPInfo,
- Ldrun3Init, M62Exit, M62Frame, NULL, M62Scan,
- NULL, 0x200, 384, 256, 4, 3
-};
-
-struct BurnDriver BurnDrvLdrun3j = {
- "ldrun3j", "ldrun3", NULL, NULL, "1985",
- "Lode Runner III - Majin No Fukkatsu\0", NULL, "Irem (licensed from Broderbund)", "Irem M62",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_IREM_M62, GBF_PLATFORM, 0,
- NULL, Ldrun3jRomInfo, Ldrun3jRomName, NULL, NULL, M62InputInfo, Ldrun2DIPInfo,
- Ldrun3jInit, M62Exit, M62Frame, NULL, M62Scan,
- NULL, 0x200, 384, 256, 4, 3
-};
-
-struct BurnDriver BurnDrvLdrun4 = {
- "ldrun4", NULL, NULL, NULL, "1986",
- "Lode Runner IV - Teikoku Karano Dasshutsu\0", NULL, "Irem (licensed from Broderbund)", "Irem M62",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_IREM_M62, GBF_PLATFORM, 0,
- NULL, Ldrun4RomInfo, Ldrun4RomName, NULL, NULL, M62InputInfo, Ldrun4DIPInfo,
- Ldrun4Init, M62Exit, M62Frame, NULL, M62Scan,
- NULL, 0x200, 384, 256, 4, 3
-};
-
-struct BurnDriver BurnDrvLotlot = {
- "lotlot", NULL, NULL, NULL, "1985",
- "Lot Lot\0", NULL, "Irem (licensed from Tokuma Shoten)", "Irem M62",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_IREM_M62, GBF_PUZZLE, 0,
- NULL, LotlotRomInfo, LotlotRomName, NULL, NULL, M62InputInfo, LotlotDIPInfo,
- LotlotInit, M62Exit, M62Frame, NULL, M62Scan,
- NULL, 0x300, 384, 256, 4, 3
-};
-
-struct BurnDriver BurnDrvKidniki = {
- "kidniki", NULL, NULL, "tr606drumkit", "1986",
- "Kid Niki - Radical Ninja (World)\0", NULL, "Irem", "Irem M62",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_IREM_M62, GBF_PLATFORM, 0,
- NULL, KidnikiRomInfo, KidnikiRomName, M62SampleInfo, M62SampleName, M62InputInfo, KidnikiDIPInfo,
- KidnikiInit, M62Exit, M62Frame, NULL, M62Scan,
- NULL, 0x200, 384, 256, 4, 3
-};
-
-struct BurnDriver BurnDrvKidnikiu = {
- "kidnikiu", "kidniki", NULL, "tr606drumkit", "1986",
- "Kid Niki - Radical Ninja (US)\0", NULL, "Irem (Data East USA license)", "Irem M62",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_IREM_M62, GBF_PLATFORM, 0,
- NULL, KidnikiuRomInfo, KidnikiuRomName, M62SampleInfo, M62SampleName, M62InputInfo, KidnikiDIPInfo,
- KidnikiInit, M62Exit, M62Frame, NULL, M62Scan,
- NULL, 0x200, 384, 256, 4, 3
-};
-
-struct BurnDriver BurnDrvYanchamr = {
- "yanchamr", "kidniki", NULL, "tr606drumkit", "1986",
- "Kaiketsu Yanchamaru (Japan)\0", NULL, "Irem", "Irem M62",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_IREM_M62, GBF_PLATFORM, 0,
- NULL, YanchamrRomInfo, YanchamrRomName, M62SampleInfo, M62SampleName, M62InputInfo, KidnikiDIPInfo,
- KidnikiInit, M62Exit, M62Frame, NULL, M62Scan,
- NULL, 0x200, 384, 256, 4, 3
-};
-
-struct BurnDriver BurnDrvLithero = {
- "lithero", "kidniki", NULL, "tr606drumkit", "1987",
- "Little Hero\0", NULL, "bootleg", "Irem M62",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_IREM_M62, GBF_PLATFORM, 0,
- NULL, LitheroRomInfo, LitheroRomName, M62SampleInfo, M62SampleName, M62InputInfo, KidnikiDIPInfo,
- LitheroInit, M62Exit, M62Frame, NULL, M62Scan,
- NULL, 0x200, 384, 256, 4, 3
-};
-
-struct BurnDriver BurnDrvSpelunkr = {
- "spelunkr", NULL, NULL, "tr606drumkit", "1985",
- "Spelunker\0", NULL, "Irem (licensed from Broderbund)", "Irem M62",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_IREM_M62, GBF_PLATFORM, 0,
- NULL, SpelunkrRomInfo, SpelunkrRomName, M62SampleInfo, M62SampleName, M62InputInfo, SpelunkrDIPInfo,
- SpelunkrInit, M62Exit, M62Frame, NULL, M62Scan,
- NULL, 0x200, 384, 256, 4, 3
-};
-
-struct BurnDriver BurnDrvSpelunkrj = {
- "spelunkrj", "spelunkr", NULL, "tr606drumkit", "1985",
- "Spelunker (Japan)\0", NULL, "Irem (licensed from Broderbund)", "Irem M62",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_IREM_M62, GBF_PLATFORM, 0,
- NULL, SpelunkrjRomInfo, SpelunkrjRomName, M62SampleInfo, M62SampleName, M62InputInfo, SpelunkrDIPInfo,
- SpelunkrInit, M62Exit, M62Frame, NULL, M62Scan,
- NULL, 0x200, 384, 256, 4, 3
-};
-
-struct BurnDriver BurnDrvSpelunk2 = {
- "spelunk2", NULL, NULL, "tr606drumkit", "1986",
- "Spelunker II - 23 no Kagi (Japan)\0", NULL, "Irem (licensed from Broderbund)", "Irem M62",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_IREM_M62, GBF_PLATFORM, 0,
- NULL, Spelunk2RomInfo, Spelunk2RomName, M62SampleInfo, M62SampleName, M62InputInfo, Spelunk2DIPInfo,
- Spelunk2Init, M62Exit, M62Frame, NULL, M62Scan,
- NULL, 0x300, 384, 256, 4, 3
-};
-
-struct BurnDriver BurnDrvYoujyudn = {
- "youjyudn", NULL, NULL, NULL, "1986",
- "Youjyuden (Japan)\0", NULL, "Irem", "Irem M62",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL, 2, HARDWARE_IREM_M62, GBF_VERSHOOT, 0,
- NULL, YoujyudnRomInfo, YoujyudnRomName, NULL, NULL, M62InputInfo, YoujyudnDIPInfo,
- YoujyudnInit, M62Exit, M62Frame, NULL, M62Scan,
- NULL, 0x200, 256, 256, 3, 4
-};
-
-struct BurnDriver BurnDrvHorizon = {
- "horizon", NULL, NULL, "tr606drumkit", "1985",
- "Horizon\0", NULL, "Irem", "Irem M62",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_IREM_M62, GBF_HORSHOOT, 0,
- NULL, HorizonRomInfo, HorizonRomName, M62SampleInfo, M62SampleName, M62InputInfo, HorizonDIPInfo,
- HorizonInit, M62Exit, M62Frame, NULL, M62Scan,
- NULL, 0x200, 256, 256, 4, 3
-};
diff --git a/jan/src/burn/drv/irem/d_m63.cpp b/jan/src/burn/drv/irem/d_m63.cpp
deleted file mode 100644
index 48a4f30a2..000000000
--- a/jan/src/burn/drv/irem/d_m63.cpp
+++ /dev/null
@@ -1,1128 +0,0 @@
-// FB Alpha Irem M63 driver module
-// Based on MAME driver by Nicola Salmoria
-
-#include "tiles_generic.h"
-#include "z80_intf.h"
-#include "i8039.h"
-#include "driver.h"
-extern "C" {
-#include "ay8910.h"
-}
-
-static UINT8 *AllMem;
-static UINT8 *MemEnd;
-static UINT8 *AllRam;
-static UINT8 *RamEnd;
-static UINT8 *DrvZ80ROM;
-static UINT8 *DrvI8039ROM;
-static UINT8 *DrvGfxROM0;
-static UINT8 *DrvGfxROM1;
-static UINT8 *DrvGfxROM2;
-static UINT8 *DrvSndROM;
-static UINT8 *DrvSampleROM;
-static UINT8 *DrvColPROM;
-static UINT8 *DrvZ80RAM0;
-static UINT8 *DrvZ80RAM1;
-static UINT8 *DrvVidRAM0;
-static UINT8 *DrvVidRAM1;
-static UINT8 *DrvColRAM;
-static UINT8 *DrvSprRAM;
-static UINT8 *DrvScrRAM;
-
-static UINT32 *DrvPalette;
-static UINT8 DrvRecalc;
-
-static UINT8 *soundlatch;
-static UINT8 *interrupt_enable;
-static UINT8 *flipscreen;
-static UINT8 *palette_bank;
-static UINT8 *sound_status;
-
-static INT16 *pAY8910Buffer[6];
-
-static UINT8 m63_sound_p1;
-static UINT8 m63_sound_p2;
-static UINT8 sound_irq = 0;
-static INT32 sample_pos = 0;
-static INT32 sample_sel = -1;
-
-static UINT8 DrvJoy1[8];
-static UINT8 DrvJoy2[8];
-static UINT8 DrvDips[2];
-static UINT8 DrvInputs[2];
-static UINT8 DrvReset;
-
-static INT32 sy_offset;
-static INT32 char_color_offset;
-static INT32 sound_interrupt_count;
-
-static struct BurnInputInfo WilytowrInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy1 + 7, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 6, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy1 + 4, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy1 + 3, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy1 + 2, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy1 + 1, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy1 + 0, "p1 fire 1" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy2 + 5, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy1 + 5, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvJoy2 + 4, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy2 + 3, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy2 + 2, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy2 + 1, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy2 + 0, "p2 fire 1" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service", BIT_DIGITAL, DrvJoy2 + 6, "service" },
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip" },
-};
-
-STDINPUTINFO(Wilytowr)
-
-static struct BurnInputInfo FghtbsktInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy1 + 5, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 7, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy1 + 1, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy1 + 0, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy1 + 3, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy1 + 2, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy1 + 4, "p1 fire 1" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy2 + 5, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy1 + 6, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvJoy2 + 1, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy2 + 0, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy2 + 3, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy2 + 2, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy2 + 4, "p2 fire 1" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
-};
-
-STDINPUTINFO(Fghtbskt)
-
-static struct BurnDIPInfo WilytowrDIPList[]=
-{
- {0x10, 0xff, 0xff, 0x01, NULL },
- {0x11, 0xff, 0xff, 0x02, NULL },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x10, 0x01, 0x03, 0x00, "2" },
- {0x10, 0x01, 0x03, 0x01, "3" },
- {0x10, 0x01, 0x03, 0x02, "4" },
- {0x10, 0x01, 0x03, 0x03, "5" },
-
- {0 , 0xfe, 0 , 4, "Bonus Points Rate" },
- {0x10, 0x01, 0x0c, 0x00, "Normal" },
- {0x10, 0x01, 0x0c, 0x04, "x1.2" },
- {0x10, 0x01, 0x0c, 0x08, "x1.4" },
- {0x10, 0x01, 0x0c, 0x0c, "x1.6" },
-
- {0 , 0xfe, 0 , 4, "Coin A" },
- {0x10, 0x01, 0x30, 0x20, "3 Coins 1 Credits" },
- {0x10, 0x01, 0x30, 0x10, "2 Coins 1 Credits" },
- {0x10, 0x01, 0x30, 0x00, "1 Coin 1 Credits" },
- {0x10, 0x01, 0x30, 0x30, "Free Play" },
-
- {0 , 0xfe, 0 , 4, "Coin B" },
- {0x10, 0x01, 0xc0, 0x00, "1 Coin 2 Credits" },
- {0x10, 0x01, 0xc0, 0x40, "1 Coin 3 Credits" },
- {0x10, 0x01, 0xc0, 0x80, "1 Coin 5 Credits" },
- {0x10, 0x01, 0xc0, 0xc0, "1 Coin 6 Credits" },
-
- {0 , 0xfe, 0 , 16, "Coinage" },
- {0x10, 0x01, 0xf0, 0x60, "7 Coins 1 Credits" },
- {0x10, 0x01, 0xf0, 0x50, "6 Coins 1 Credits" },
- {0x10, 0x01, 0xf0, 0x40, "5 Coins 1 Credits" },
- {0x10, 0x01, 0xf0, 0x30, "4 Coins 1 Credits" },
- {0x10, 0x01, 0xf0, 0x20, "3 Coins 1 Credits" },
- {0x10, 0x01, 0xf0, 0x10, "2 Coins 1 Credits" },
- {0x10, 0x01, 0xf0, 0x00, "1 Coin 1 Credits" },
- {0x10, 0x01, 0xf0, 0x80, "1 Coin 2 Credits" },
- {0x10, 0x01, 0xf0, 0x90, "1 Coin 3 Credits" },
- {0x10, 0x01, 0xf0, 0xa0, "1 Coin 4 Credits" },
- {0x10, 0x01, 0xf0, 0xb0, "1 Coin 5 Credits" },
- {0x10, 0x01, 0xf0, 0xc0, "1 Coin 6 Credits" },
- {0x10, 0x01, 0xf0, 0xd0, "1 Coin 7 Credits" },
- {0x10, 0x01, 0xf0, 0xe0, "1 Coin 8 Credits" },
- {0x10, 0x01, 0xf0, 0x70, "1 Coin 9 Credits" },
- {0x10, 0x01, 0xf0, 0xf0, "Free Play" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x11, 0x01, 0x01, 0x00, "Off" },
- {0x11, 0x01, 0x01, 0x01, "On" },
-
- {0 , 0xfe, 0 , 2, "Cabinet" },
- {0x11, 0x01, 0x02, 0x02, "Upright" },
- {0x11, 0x01, 0x02, 0x00, "Cocktail" },
-
- {0 , 0xfe, 0 , 2, "Coin Mode" },
- {0x11, 0x01, 0x04, 0x00, "Mode 1" },
- {0x11, 0x01, 0x04, 0x04, "Mode 2" },
-
- {0 , 0xfe, 0 , 0, "Stop Mode (Cheat)" },
- {0x11, 0x01, 0x10, 0x00, "Off" },
- {0x11, 0x01, 0x10, 0x10, "On" },
-
- {0 , 0xfe, 0 , 2, "Invulnerability (Cheat)" },
- {0x11, 0x01, 0x40, 0x00, "Off" },
- {0x11, 0x01, 0x40, 0x40, "On" },
-
- {0 , 0xfe, 0 , 0, "Service Mode" },
- {0x11, 0x01, 0x80, 0x00, "Off" },
- {0x11, 0x01, 0x80, 0x80, "On" },
-};
-
-STDDIPINFO(Wilytowr)
-
-static struct BurnDIPInfo FghtbsktDIPList[]=
-{
- {0x0f, 0xff, 0xff, 0xc4, NULL },
-
- {0 , 0xfe, 0 , 4, "Coin A" },
- {0x0f, 0x01, 0x03, 0x03, "3 Coins 1 Credits" },
- {0x0f, 0x01, 0x03, 0x01, "2 Coins 1 Credits" },
- {0x0f, 0x01, 0x03, 0x00, "1 Coin 1 Credits" },
- {0x0f, 0x01, 0x03, 0x02, "1 Coin 2 Credits" },
-
- {0 , 0xfe, 0 , 4, "Coin B" },
- {0x0f, 0x01, 0x0c, 0x04, "1 Coin 1 Credits" },
- {0x0f, 0x01, 0x0c, 0x00, "1 Coin 2 Credits" },
- {0x0f, 0x01, 0x0c, 0x08, "1 Coin 4 Credits" },
- {0x0f, 0x01, 0x0c, 0x0c, "99 Credits / Sound Test" },
-
- {0 , 0xfe, 0 , 2, "Time Count Down" },
- {0x0f, 0x01, 0x20, 0x00, "Slow" },
- {0x0f, 0x01, 0x20, 0x20, "Too Fast" },
-
- {0 , 0xfe, 0 , 2, "Cabinet" },
- {0x0f, 0x01, 0x40, 0x40, "Upright" },
- {0x0f, 0x01, 0x40, 0x00, "Cocktail" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x0f, 0x01, 0x80, 0x00, "Off" },
- {0x0f, 0x01, 0x80, 0x80, "On" },
-};
-
-STDDIPINFO(Fghtbskt)
-
-void __fastcall m63_main_write(UINT16 address, UINT8 data)
-{
- switch (address)
- {
- case 0xf000:
- *interrupt_enable = data ? 1 : 0;
- return;
-
- case 0xf002:
- *flipscreen = ~data & 0x01;
- return;
-
- case 0xf003:
- *palette_bank = data & 0x01;
- return;
-
- case 0xf006:
- case 0xf007:
- // coin counters (offset)
- return;
-
- case 0xf800:
- *soundlatch = data;
- return;
-
- case 0xf801:
- return; // nop
-
- case 0xf803:
- I8039SetIrqState(1);
- return;
- }
-}
-
-UINT8 __fastcall m63_main_read(UINT16 address)
-{
- switch (address)
- {
- case 0xf000: // fghtbskt
- return *sound_status;
-
- case 0xf800:
- case 0xf001: // fghtbskt
- return DrvInputs[0];
-
- case 0xf801:
- case 0xf002: // fghtbskt
- return DrvInputs[1];
-
- case 0xf802:
- case 0xf003: // fghtbskt
- return DrvDips[0];
-
- case 0xf806:
- return DrvDips[1];
- }
-
- return 0;
-}
-
-void __fastcall fghtbskt_main_write(UINT16 address, UINT8 data)
-{
- switch (address)
- {
- case 0xf000:
- I8039SetIrqState(1);
- return;
-
- case 0xf002:
- *soundlatch = data;
- return;
-
- case 0xf801:
- *interrupt_enable = data ? 1 : 0;
- return;
-
- case 0xf802:
- *flipscreen = data ? 1 : 0;
- // if (flipscreen) ? tile_flipx : 0
- return;
-
- case 0xf807:
- if (data & 0x01) {
- sample_sel = ((data & 0xf0) << 8);
- sample_pos = 0;
- }
- return;
-
- case 0xf001:
- case 0xf800:
- case 0xf803:
- case 0xf804:
- case 0xf805:
- case 0xf806:
- return; // nop
- }
-}
-
-UINT8 __fastcall m63_sound_read(UINT32 address)
-{
- return DrvI8039ROM[address & 0x0fff];
-}
-
-void __fastcall m63_sound_write_port(UINT32 port, UINT8 data)
-{
- if ((port & 0xff00) == 0x0000) {
- if ((m63_sound_p2 & 0xf0) == 0xe0)
- {
- AY8910Write(0, 0, port & 0xff);
- }
- else if ((m63_sound_p2 & 0xf0) == 0xa0)
- {
- AY8910Write(0, 1, port & 0xff);
- }
- else if ((m63_sound_p1 & 0xe0) == 0x60 && sy_offset != 240)
- {
- AY8910Write(1, 0, port & 0xff);
- }
- else if ((m63_sound_p1 & 0xe0) == 0x40 && sy_offset != 240)
- {
- AY8910Write(1, 1, port & 0xff);
- }
- else if ((m63_sound_p2 & 0xf0) == 0x70)
- {
- *sound_status = port & 0xff;
- }
-
- return;
- }
-
- switch (port)
- {
- case 0x101:
- m63_sound_p1 = data;
- return;
-
- case 0x102:
- m63_sound_p2 = data;
- if ((data & 0xf0) == 0x50) I8039SetIrqState(0);
- return;
- }
-}
-
-UINT8 __fastcall m63_sound_read_port(UINT32 port)
-{
- if ((port & 0xff00) == 0x0000) {
- if ((m63_sound_p2 & 0xf0) == 0x60) {
- return *soundlatch;
- }
- else if ((m63_sound_p2 & 0xf0) == 0x70)
- {
- return DrvSndROM[((m63_sound_p1 & 0x1f) << 8) | (port & 0xff)];
- }
-
- return 0xff;
- }
-
- switch (port)
- {
- case 0x111:
- if (sound_irq) {
- sound_irq = 0;
- return 1;
- }
- return 0;
- }
-
- return 0;
-}
-
-static void m63PaletteRecalc()
-{
- for (INT32 i = 0; i < 256; i++)
- {
- INT32 bit0 = (DrvColPROM[i] >> 0) & 0x01;
- INT32 bit1 = (DrvColPROM[i] >> 1) & 0x01;
- INT32 bit2 = (DrvColPROM[i] >> 2) & 0x01;
- INT32 bit3 = (DrvColPROM[i] >> 3) & 0x01;
- INT32 r = 0x0e * bit0 + 0x1f * bit1 + 0x43 * bit2 + 0x8f * bit3;
-
- bit0 = (DrvColPROM[i + 256] >> 0) & 0x01;
- bit1 = (DrvColPROM[i + 256] >> 1) & 0x01;
- bit2 = (DrvColPROM[i + 256] >> 2) & 0x01;
- bit3 = (DrvColPROM[i + 256] >> 3) & 0x01;
- INT32 g = 0x0e * bit0 + 0x1f * bit1 + 0x43 * bit2 + 0x8f * bit3;
-
- bit0 = (DrvColPROM[i + 2*256] >> 0) & 0x01;
- bit1 = (DrvColPROM[i + 2*256] >> 1) & 0x01;
- bit2 = (DrvColPROM[i + 2*256] >> 2) & 0x01;
- bit3 = (DrvColPROM[i + 2*256] >> 3) & 0x01;
- INT32 b = 0x0e * bit0 + 0x1f * bit1 + 0x43 * bit2 + 0x8f * bit3;
-
- DrvPalette[i] = BurnHighCol(r,g,b,0);
- }
-
- for (INT32 i = 0; i < 4; i++)
- {
- INT32 bit0 = (DrvColPROM[0x300+i] >> 0) & 0x01;
- INT32 bit1 = (DrvColPROM[0x300+i] >> 1) & 0x01;
- INT32 bit2 = (DrvColPROM[0x300+i] >> 2) & 0x01;
- INT32 r = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
-
- bit0 = (DrvColPROM[0x300+i] >> 3) & 0x01;
- bit1 = (DrvColPROM[0x300+i] >> 4) & 0x01;
- bit2 = (DrvColPROM[0x300+i] >> 5) & 0x01;
- INT32 g = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
-
- bit0 = (DrvColPROM[0x300+i] >> 6) & 0x01;
- bit1 = (DrvColPROM[0x300+i] >> 7) & 0x01;
- INT32 b = 0x4f * bit0 + 0xa8 * bit1;
-
- DrvPalette[0x100+i] = BurnHighCol(r,g,b,0);
- }
-}
-
-static void m63_main_map()
-{
- ZetInit(0);
- ZetOpen(0);
- ZetMapArea(0x0000, 0xbfff, 0, DrvZ80ROM);
- ZetMapArea(0x0000, 0xbfff, 2, DrvZ80ROM);
- ZetMapArea(0xd000, 0xdfff, 0, DrvZ80RAM0);
- ZetMapArea(0xd000, 0xdfff, 1, DrvZ80RAM0);
- ZetMapArea(0xd000, 0xdfff, 2, DrvZ80RAM0);
- ZetMapArea(0xe000, 0xe1ff, 0, DrvZ80RAM1);
- ZetMapArea(0xe000, 0xe1ff, 1, DrvZ80RAM1);
- ZetMapArea(0xe000, 0xe1ff, 2, DrvZ80RAM1);
- ZetMapArea(0xe200, 0xe2ff, 0, DrvSprRAM);
- ZetMapArea(0xe200, 0xe2ff, 1, DrvSprRAM);
- ZetMapArea(0xe200, 0xe2ff, 2, DrvSprRAM);
- ZetMapArea(0xe300, 0xe3ff, 0, DrvScrRAM);
- ZetMapArea(0xe300, 0xe3ff, 1, DrvScrRAM);
- ZetMapArea(0xe300, 0xe3ff, 2, DrvScrRAM);
- ZetMapArea(0xe400, 0xe7ff, 0, DrvVidRAM1);
- ZetMapArea(0xe400, 0xe7ff, 1, DrvVidRAM1);
- ZetMapArea(0xe400, 0xe7ff, 2, DrvVidRAM1);
- ZetMapArea(0xe800, 0xebff, 0, DrvVidRAM0);
- ZetMapArea(0xe800, 0xebff, 1, DrvVidRAM0);
- ZetMapArea(0xe800, 0xebff, 2, DrvVidRAM0);
- ZetMapArea(0xec00, 0xefff, 0, DrvColRAM);
- ZetMapArea(0xec00, 0xefff, 1, DrvColRAM);
- ZetMapArea(0xec00, 0xefff, 2, DrvColRAM);
- ZetSetWriteHandler(m63_main_write);
- ZetSetReadHandler(m63_main_read);
- ZetClose();
-}
-
-static void fghtbskt_main_map()
-{
- ZetInit(0);
- ZetOpen(0);
- ZetMapArea(0x0000, 0xbfff, 0, DrvZ80ROM);
- ZetMapArea(0x0000, 0xbfff, 2, DrvZ80ROM);
- ZetMapArea(0xc000, 0xc7ff, 0, DrvZ80RAM0);
- ZetMapArea(0xc000, 0xc7ff, 1, DrvZ80RAM0);
- ZetMapArea(0xc000, 0xc7ff, 2, DrvZ80RAM0);
- ZetMapArea(0xd000, 0xd1ff, 0, DrvZ80RAM1);
- ZetMapArea(0xd000, 0xd1ff, 1, DrvZ80RAM1);
- ZetMapArea(0xd000, 0xd1ff, 2, DrvZ80RAM1);
- ZetMapArea(0xd200, 0xd2ff, 0, DrvSprRAM);
- ZetMapArea(0xd200, 0xd2ff, 1, DrvSprRAM);
- ZetMapArea(0xd200, 0xd2ff, 2, DrvSprRAM);
- ZetMapArea(0xd300, 0xd3ff, 0, DrvScrRAM);
- ZetMapArea(0xd300, 0xd3ff, 1, DrvScrRAM);
- ZetMapArea(0xd300, 0xd3ff, 2, DrvScrRAM);
- ZetMapArea(0xd400, 0xd7ff, 0, DrvVidRAM1);
- ZetMapArea(0xd400, 0xd7ff, 1, DrvVidRAM1);
- ZetMapArea(0xd400, 0xd7ff, 2, DrvVidRAM1);
- ZetMapArea(0xd800, 0xdbff, 0, DrvVidRAM0);
- ZetMapArea(0xd800, 0xdbff, 1, DrvVidRAM0);
- ZetMapArea(0xd800, 0xdbff, 2, DrvVidRAM0);
- ZetMapArea(0xdc00, 0xdfff, 0, DrvColRAM);
- ZetMapArea(0xdc00, 0xdfff, 1, DrvColRAM);
- ZetMapArea(0xdc00, 0xdfff, 2, DrvColRAM);
- ZetSetWriteHandler(fghtbskt_main_write);
- ZetSetReadHandler(m63_main_read);
- ZetClose();
-}
-
-static INT32 DrvDoReset()
-{
- memset (AllRam, 0, RamEnd - AllRam);
-
- ZetOpen(0);
- ZetReset();
- ZetClose();
-
- I8039Reset();
-
- AY8910Reset(0);
- AY8910Reset(1);
-
- m63_sound_p1 = 0;
- m63_sound_p2 = 0;
- sound_irq = 0;
- sample_pos = 0;
- sample_sel = -1;
-
- DrvRecalc = 1;
-
- return 0;
-}
-
-static INT32 DrvGfxDecode()
-{
- INT32 Plane0[2] = { 0x8000, 0x0000 };
- INT32 Plane1[3] = { (0x2000*8)*2, (0x2000*8)*1, (0x2000*8)*0 };
- INT32 Plane2[3] = { (0x4000*8)*2, (0x4000*8)*1, (0x4000*8)*0 };
- INT32 XOffs[16] = { 0, 1, 2, 3, 4, 5, 6, 7, (0x2000*8)+0, (0x2000*8)+1, (0x2000*8)+2, (0x2000*8)+3, (0x2000*8)+4, (0x2000*8)+5, (0x2000*8)+6, (0x2000*8)+7 };
- INT32 YOffs[16] = { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8, 8*8, 9*8, 10*8, 11*8, 12*8, 13*8, 14*8, 15*8 };
-
- UINT8 *tmp = (UINT8*)BurnMalloc(0xc000);
- if (tmp == NULL) {
- return 1;
- }
-
- memcpy (tmp, DrvGfxROM0, 0x2000);
-
- GfxDecode(0x0100, 2, 8, 8, Plane0, XOffs, YOffs, 0x040, tmp, DrvGfxROM0);
-
- memcpy (tmp, DrvGfxROM1, 0x6000);
-
- GfxDecode(0x0400, 3, 8, 8, Plane1, XOffs, YOffs, 0x040, tmp, DrvGfxROM1);
-
- memcpy (tmp, DrvGfxROM2, 0xc000);
-
- GfxDecode(0x0200, 3, 16, 16, Plane2, XOffs, YOffs, 0x080, tmp, DrvGfxROM2);
-
- BurnFree (tmp);
-
- return 0;
-}
-
-static INT32 MemIndex()
-{
- UINT8 *Next; Next = AllMem;
-
- DrvZ80ROM = Next; Next += 0x010000;
- DrvI8039ROM = Next; Next += 0x010000;
-
- DrvGfxROM0 = Next; Next += 0x008000;
- DrvGfxROM1 = Next; Next += 0x010000;
- DrvGfxROM2 = Next; Next += 0x020000;
-
- DrvSampleROM = Next; Next += 0x010000;
-
- DrvSndROM = Next; Next += 0x002000;
-
- DrvColPROM = Next; Next += 0x000400;
-
- DrvPalette = (UINT32*)Next; Next += 0x0104 * sizeof(UINT32);
-
- AllRam = Next;
-
- DrvZ80RAM0 = Next; Next += 0x001000;
- DrvZ80RAM1 = Next; Next += 0x000200;
- DrvVidRAM0 = Next; Next += 0x000400;
- DrvVidRAM1 = Next; Next += 0x000400;
- DrvColRAM = Next; Next += 0x000400;
- DrvSprRAM = Next; Next += 0x000100;
- DrvScrRAM = Next; Next += 0x000100;
-
- soundlatch = Next; Next += 0x000001;
- interrupt_enable = Next; Next += 0x000001;
- flipscreen = Next; Next += 0x000001;
- palette_bank = Next; Next += 0x000001;
- sound_status = Next; Next += 0x000001;
-
- RamEnd = Next;
-
- for (INT32 i = 0; i < 6; i++) {
- pAY8910Buffer[i] = (INT16*)Next; Next += nBurnSoundLen * sizeof(INT16);
- }
-
- MemEnd = Next;
-
- return 0;
-}
-
-static INT32 DrvInit(void (*pMapMainCPU)(), INT32 (*pRomLoadCallback)(), INT32 syoffset, INT32 charcoloroff, INT32 sndirqcount)
-{
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- if (pRomLoadCallback()) return 1;
-
- DrvGfxDecode();
-
- pMapMainCPU();
-
- I8039Init(NULL);
- I8039SetProgramReadHandler(m63_sound_read);
- I8039SetCPUOpReadHandler(m63_sound_read);
- I8039SetCPUOpReadArgHandler(m63_sound_read);
- I8039SetIOReadHandler(m63_sound_read_port);
- I8039SetIOWriteHandler(m63_sound_write_port);
-
- AY8910Init(0, 1500000, nBurnSoundRate, NULL, NULL, NULL, NULL);
- AY8910Init(1, 1500000, nBurnSoundRate, NULL, NULL, NULL, NULL);
- AY8910SetAllRoutes(0, 0.25, BURN_SND_ROUTE_BOTH);
- AY8910SetAllRoutes(1, 1.00, BURN_SND_ROUTE_BOTH);
-
- sy_offset = syoffset;
- char_color_offset = charcoloroff;
- sound_interrupt_count = sndirqcount;
-
- GenericTilesInit();
-
- DrvDoReset();
-
- return 0;
-}
-
-static INT32 DrvExit()
-{
- GenericTilesExit();
-
- ZetExit();
- I8039Exit();
-
- AY8910Exit(0);
- AY8910Exit(1);
-
- BurnFree (AllMem);
-
- return 0;
-}
-
-static INT32 wilytowerLoadRoms()
-{
- if (BurnLoadRom(DrvZ80ROM + 0x00000, 0, 1)) return 1;
- if (BurnLoadRom(DrvZ80ROM + 0x02000, 1, 1)) return 1;
- if (BurnLoadRom(DrvZ80ROM + 0x04000, 2, 1)) return 1;
- if (BurnLoadRom(DrvZ80ROM + 0x06000, 3, 1)) return 1;
- if (BurnLoadRom(DrvZ80ROM + 0x08000, 4, 1)) return 1;
- if (BurnLoadRom(DrvZ80ROM + 0x0a000, 5, 1)) return 1;
-
- if (BurnLoadRom(DrvI8039ROM, 6, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x00000, 7, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x01000, 8, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM1 + 0x00000, 9, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x02000, 10, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x04000, 11, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM2 + 0x00000, 12, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x02000, 13, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x04000, 14, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x06000, 15, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x08000, 16, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x0a000, 17, 1)) return 1;
-
- if (BurnLoadRom(DrvSndROM + 0x00000, 18, 1)) return 1;
-
- if (BurnLoadRom(DrvColPROM + 0x00000, 19, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x00100, 20, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x00200, 21, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x00300, 22, 1)) return 1;
-
- return 0;
-}
-
-static INT32 fghtbsktLoadRoms()
-{
- if (BurnLoadRom(DrvZ80ROM + 0x00000, 0, 1)) return 1;
- if (BurnLoadRom(DrvZ80ROM + 0x02000, 1, 1)) return 1;
- if (BurnLoadRom(DrvZ80ROM + 0x04000, 2, 1)) return 1;
- if (BurnLoadRom(DrvZ80ROM + 0x08000, 3, 1)) return 1;
- if (BurnLoadRom(DrvZ80ROM + 0x0a000, 4, 1)) return 1;
-
- if (BurnLoadRom(DrvI8039ROM, 5, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x00000, 6, 1)) return 1;
- memcpy (DrvGfxROM0 + 0x1000, DrvGfxROM0 + 0x0800, 0x0800);
-
- if (BurnLoadRom(DrvGfxROM1 + 0x00000, 7, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x02000, 8, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x04000, 9, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM2 + 0x00000, 10, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x02000, 11, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x04000, 12, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x06000, 13, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x08000, 14, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x0a000, 15, 1)) return 1;
-
- if (BurnLoadRom(DrvSndROM + 0x00000, 16, 1)) return 1;
-
- if (BurnLoadRom(DrvColPROM + 0x00000, 17, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x00100, 18, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x00200, 19, 1)) return 1;
-
- if (BurnLoadRom(DrvSampleROM + 0x00000, 20, 1)) return 1;
- if (BurnLoadRom(DrvSampleROM + 0x02000, 21, 1)) return 1;
- if (BurnLoadRom(DrvSampleROM + 0x04000, 22, 1)) return 1;
- if (BurnLoadRom(DrvSampleROM + 0x06000, 23, 1)) return 1;
- if (BurnLoadRom(DrvSampleROM + 0x08000, 24, 1)) return 1;
-
- return 0;
-}
-
-static INT32 wilytowrInit()
-{
- return DrvInit(m63_main_map, wilytowerLoadRoms, 238, 0x100, 60);
-}
-
-static INT32 atomboyInit()
-{
- return DrvInit(m63_main_map, wilytowerLoadRoms, 238, 0x100, 60/2);
-}
-
-static INT32 fghtbsktInit()
-{
- INT32 nRet = DrvInit(fghtbskt_main_map, fghtbsktLoadRoms, 240, 0x010, 60/2);
-
- AY8910SetAllRoutes(0, 1.00, BURN_SND_ROUTE_BOTH);
-
- return nRet;
-}
-
-static void draw_bg_layer()
-{
- for (INT32 offs = 0; offs < 32 * 32; offs++)
- {
- INT32 sx = (offs & 0x1f) << 3;
- INT32 sy = (offs >> 5) << 3;
-
- sy -= DrvScrRAM[(offs & 0x1f) * 8] + 16;
- if (sy < -7) sy += 256;
- if (sy >= nScreenHeight) continue;
-
- INT32 attr = DrvColRAM[offs];
- INT32 code = DrvVidRAM0[offs] | ((attr & 0x30) << 4);
- INT32 color = (attr & 0x0f) | (*palette_bank << 4);
-
- if (*flipscreen) {
- Render8x8Tile_FlipXY_Clip(pTransDraw, code, 248 - sx, 216 - sy, color, 3, 0, DrvGfxROM1);
- } else {
- Render8x8Tile_Clip(pTransDraw, code, sx, sy, color, 3, 0, DrvGfxROM1);
- }
- }
-}
-
-static void draw_fg_layer()
-{
- for (INT32 offs = (256/8)*(16/8); offs < (32 * 32) - ((256/8)*(16/8)); offs++)
- {
- INT32 sx = (offs & 0x1f) << 3;
- INT32 sy = ((offs >> 5) << 3) - 16;
-
- if (*flipscreen) {
- Render8x8Tile_Mask_FlipXY(pTransDraw, DrvVidRAM1[offs], 248 - sx, 216 - sy, 0, 2, 0, char_color_offset, DrvGfxROM0);
- } else {
- Render8x8Tile_Mask(pTransDraw, DrvVidRAM1[offs], sx, sy, 0, 2, 0, char_color_offset, DrvGfxROM0);
- }
- }
-}
-
-static void draw_sprite_tile(INT32 code, INT32 color, INT32 sx, INT32 sy, INT32 flipx, INT32 flipy)
-{
- if (flipy) {
- if (flipx) {
- Render16x16Tile_Mask_FlipXY_Clip(pTransDraw, code, sx, sy, color, 3, 0, 0, DrvGfxROM2);
- } else {
- Render16x16Tile_Mask_FlipY_Clip(pTransDraw, code, sx, sy, color, 3, 0, 0, DrvGfxROM2);
- }
- } else {
- if (flipx) {
- Render16x16Tile_Mask_FlipX_Clip(pTransDraw, code, sx, sy, color, 3, 0, 0, DrvGfxROM2);
- } else {
- Render16x16Tile_Mask_Clip(pTransDraw, code, sx, sy, color, 3, 0, 0, DrvGfxROM2);
- }
- }
-}
-
-static void draw_sprites()
-{
- for (INT32 offs = 0; offs < 0x100; offs += 4)
- {
- INT32 sx = DrvSprRAM[offs + 3];
- INT32 attr = DrvSprRAM[offs + 2];
- INT32 code = (DrvSprRAM[offs + 1]) | ((attr & 0x10) << 4);
- INT32 sy = (sy_offset - DrvSprRAM[offs]) - 16;
-
- INT32 color = (attr & 0x0f) | (*palette_bank << 4);
- INT32 flipx = (attr & 0x20);
- INT32 flipy = 0;
-
- if (*flipscreen)
- {
- sx = 240 - sx;
- sy = sy_offset - sy;
- flipx = !flipx;
- flipy = !flipy;
- }
-
- draw_sprite_tile(code, color, sx, sy, flipx, flipy);
-
- if (sx > 0xf0) {
- draw_sprite_tile(code, color, sx, sy, flipx, flipy);
- }
- }
-}
-
-static INT32 DrvDraw()
-{
- if (DrvRecalc) {
- m63PaletteRecalc();
- DrvRecalc = 0;
- }
-
- draw_bg_layer();
- draw_sprites();
- draw_fg_layer();
-
- BurnTransferCopy(DrvPalette);
-
- return 0;
-}
-
-static void sample_render(short *pSoundBuf, INT32 nLength)
-{
- if (sample_sel == -1) return;
-
- double Addr = sample_pos + sample_sel;
- double Step = (double)8000 / nBurnSoundRate;
-
- for (INT32 i = 0; i < nLength && Addr < 0xa000; i += 2, Addr += Step) {
- short Sample = (short)((DrvSampleROM[(int)Addr]^0x80) << 8);
-
- pSoundBuf[i ] += Sample;
- pSoundBuf[i + 1] += Sample;
- }
-
- sample_pos = (int)Addr;
- if (Addr >= 0xa000) sample_sel = -1;
-}
-
-static INT32 DrvFrame()
-{
- if (DrvReset) {
- DrvDoReset();
- }
-
- {
- memset (DrvInputs, 0, 2);
- for (INT32 i = 0; i < 8; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- }
- }
-
- INT32 nCyclesTotal[2] = { 3000000 / 60, 3000000 / 60 };
- INT32 nCyclesDone[2] = { 0, 0 };
- INT32 nInterleave = 100;
-
- ZetOpen(0);
-
- for (INT32 i = 0; i < nInterleave; i++)
- {
- nCyclesDone[0] += ZetRun(nCyclesTotal[0] / nInterleave);
- nCyclesDone[1] += I8039Run(nCyclesTotal[1] / nInterleave);
- }
-
- if (sound_interrupt_count == 30) {
- if (nCurrentFrame & 1) sound_irq = 1;
- } else {
- sound_irq = 1;
- }
-
- if (*interrupt_enable) ZetNmi();
-
- ZetClose();
-
- if (pBurnSoundOut) {
- AY8910Render(&pAY8910Buffer[0], pBurnSoundOut, nBurnSoundLen, 0);
-
- sample_render(pBurnSoundOut, nBurnSoundLen);
- }
-
- if (pBurnDraw) {
- DrvDraw();
- }
-
- return 0;
-}
-
-static INT32 DrvScan(INT32 nAction,INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin) {
- *pnMin = 0x029702;
- }
-
- if (nAction & ACB_VOLATILE) {
- memset(&ba, 0, sizeof(ba));
-
- ba.Data = AllRam;
- ba.nLen = RamEnd - AllRam;
- ba.szName = "All Ram";
- BurnAcb(&ba);
-
- ZetScan(nAction);
- I8039Scan(nAction, pnMin);
-
- AY8910Scan(nAction, pnMin);
-
- SCAN_VAR(m63_sound_p1);
- SCAN_VAR(m63_sound_p2);
- SCAN_VAR(sound_irq);
- SCAN_VAR(sample_pos);
- SCAN_VAR(sample_sel);
- }
-
- return 0;
-}
-
-
-// Wily Tower
-
-static struct BurnRomInfo wilytowrRomDesc[] = {
- { "wt4e.bin", 0x2000, 0xa38e4b8a, 1 | BRF_PRG | BRF_ESS }, // 0 Z80 code
- { "wt4h.bin", 0x2000, 0xc1405ceb, 1 | BRF_PRG | BRF_ESS }, // 1
- { "wt4j.bin", 0x2000, 0x379fb1c3, 1 | BRF_PRG | BRF_ESS }, // 2
- { "wt4k.bin", 0x2000, 0x2dd6f9c7, 1 | BRF_PRG | BRF_ESS }, // 3
- { "wt_a-4m.bin", 0x2000, 0xc1f8a7d5, 1 | BRF_PRG | BRF_ESS }, // 4
- { "wt_a-4n.bin", 0x2000, 0xb212f7d2, 1 | BRF_PRG | BRF_ESS }, // 5
-
- { "wt4d.bin", 0x1000, 0x25a171bf, 2 | BRF_PRG | BRF_ESS }, // 6 I8039 code
-
- { "wt_b-5e.bin", 0x1000, 0xfe45df43, 3 | BRF_GRA }, // 7 Characters
- { "wt_b-5f.bin", 0x1000, 0x87a17eff, 3 | BRF_GRA }, // 8
-
- { "wtb5a.bin", 0x2000, 0xefc1cbfa, 4 | BRF_GRA }, // 9 Tiles
- { "wtb5b.bin", 0x2000, 0xab4bfd07, 4 | BRF_GRA }, // 10
- { "wtb5d.bin", 0x2000, 0x40f23e1d, 4 | BRF_GRA }, // 11
-
- { "wt2j.bin", 0x1000, 0xd1bf0670, 5 | BRF_GRA }, // 12 Sprites
- { "wt3k.bin", 0x1000, 0x83c39a0e, 5 | BRF_GRA }, // 13
- { "wt_a-3m.bin", 0x1000, 0xe7e468ae, 5 | BRF_GRA }, // 14
- { "wt_a-3n.bin", 0x1000, 0x0741d1a9, 5 | BRF_GRA }, // 15
- { "wt_a-3p.bin", 0x1000, 0x7299f362, 5 | BRF_GRA }, // 16
- { "wt_a-3s.bin", 0x1000, 0x9b37d50d, 5 | BRF_GRA }, // 17
-
- { "wt_a-6d.bin", 0x1000, 0xa5dde29b, 6 | BRF_SND }, // 18 Sound data
-
- { "wt_a-5s-.bpr", 0x0100, 0x041950e7, 7 | BRF_GRA }, // 19 Color PROMs
- { "wt_a-5r-.bpr", 0x0100, 0xbc04bf25, 7 | BRF_GRA }, // 20
- { "wt_a-5p-.bpr", 0x0100, 0xed819a19, 7 | BRF_GRA }, // 21
- { "wt_b-9l-.bpr", 0x0020, 0xd2728744, 7 | BRF_GRA }, // 22
-};
-
-STD_ROM_PICK(wilytowr)
-STD_ROM_FN(wilytowr)
-
-struct BurnDriver BurnDrvWilytowr = {
- "wilytowr", NULL, NULL, NULL, "1984",
- "Wily Tower\0", NULL, "Irem", "M63",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_FLIPPED, 2, HARDWARE_IREM_M63, GBF_PLATFORM, 0,
- NULL, wilytowrRomInfo, wilytowrRomName, NULL, NULL, WilytowrInputInfo, WilytowrDIPInfo,
- wilytowrInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x104,
- 256, 224, 4, 3
-};
-
-
-// Atomic Boy (revision B)
-
-static struct BurnRomInfo atomboyRomDesc[] = {
- { "wt_a-4e.bin", 0x2000, 0xf7978185, 1 | BRF_PRG | BRF_ESS }, // 0 Z80 code
- { "wt_a-4h.bin", 0x2000, 0x0ca9950b, 1 | BRF_PRG | BRF_ESS }, // 1
- { "wt_a-4j.bin", 0x2000, 0x1badbc65, 1 | BRF_PRG | BRF_ESS }, // 2
- { "wt_a-4k.bin", 0x2000, 0x5a341f75, 1 | BRF_PRG | BRF_ESS }, // 3
- { "wt_a-4m.bin", 0x2000, 0xc1f8a7d5, 1 | BRF_PRG | BRF_ESS }, // 4
- { "wt_a-4n.bin", 0x2000, 0xb212f7d2, 1 | BRF_PRG | BRF_ESS }, // 5
-
- { "wt_a-4d-b.bin", 0x2000, 0x793ea53f, 2 | BRF_PRG | BRF_ESS }, // 6 I8039 code
-
- { "wt_b-5e.bin", 0x1000, 0xfe45df43, 3 | BRF_GRA }, // 7 Characters
- { "wt_b-5f.bin", 0x1000, 0x87a17eff, 3 | BRF_GRA }, // 8
-
- { "wt_b-5a.bin", 0x2000, 0xda22c452, 4 | BRF_GRA }, // 9 Tiles
- { "wt_b-5b.bin", 0x2000, 0x4fb25a1f, 4 | BRF_GRA }, // 10
- { "wt_b-5d.bin", 0x2000, 0x75be2604, 4 | BRF_GRA }, // 11
-
- { "wt_a-3j-b.bin", 0x2000, 0x996470f1, 5 | BRF_GRA }, // 12 Sprites
- { "wt_a-3k-b.bin", 0x2000, 0x8f4ec45c, 5 | BRF_GRA }, // 13
- { "wt_a-3m-b.bin", 0x2000, 0x4ac40358, 5 | BRF_GRA }, // 14
- { "wt_a-3n-b.bin", 0x2000, 0x709eef5b, 5 | BRF_GRA }, // 15
- { "wt_a-3p-b.bin", 0x2000, 0x3018b840, 5 | BRF_GRA }, // 16
- { "wt_a-3s-b.bin", 0x2000, 0x05a251d4, 5 | BRF_GRA }, // 17
-
- { "wt_a-6d.bin", 0x1000, 0xa5dde29b, 6 | BRF_SND }, // 18 Sound data
-
- { "wt_a-5s-b.bpr", 0x0100, 0x991e2a04, 7 | BRF_GRA }, // 19 Color PROMs
- { "wt_a-5r-b.bpr", 0x0100, 0xfb3822b7, 7 | BRF_GRA }, // 20
- { "wt_a-5p-b.bpr", 0x0100, 0x95849f7d, 7 | BRF_GRA }, // 21
- { "wt_b-9l-.bpr", 0x0020, 0xd2728744, 7 | BRF_GRA }, // 22
-};
-
-STD_ROM_PICK(atomboy)
-STD_ROM_FN(atomboy)
-
-struct BurnDriver BurnDrvAtomboy = {
- "atomboy", "wilytowr", NULL, NULL, "1985",
- "Atomic Boy (revision B)\0", NULL, "Irem (Memetron license)", "M63",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_FLIPPED, 2, HARDWARE_IREM_M63, GBF_PLATFORM, 0,
- NULL, atomboyRomInfo, atomboyRomName, NULL, NULL, WilytowrInputInfo, WilytowrDIPInfo,
- atomboyInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x104,
- 256, 224, 4, 3
-};
-
-
-// Atomic Boy (revision A)
-
-static struct BurnRomInfo atomboyaRomDesc[] = {
- { "wt_a-4e.bin", 0x2000, 0xf7978185, 1 | BRF_PRG | BRF_ESS }, // 0 Z80 code
- { "wt_a-4h.bin", 0x2000, 0x0ca9950b, 1 | BRF_PRG | BRF_ESS }, // 1
- { "wt_a-4j.bin", 0x2000, 0x1badbc65, 1 | BRF_PRG | BRF_ESS }, // 2
- { "wt_a-4k.bin", 0x2000, 0x5a341f75, 1 | BRF_PRG | BRF_ESS }, // 3
- { "wt_a-4m.bin", 0x2000, 0xc1f8a7d5, 1 | BRF_PRG | BRF_ESS }, // 4
- { "wt_a-4n.bin", 0x2000, 0xb212f7d2, 1 | BRF_PRG | BRF_ESS }, // 5
-
- { "wt_a-4d.bin", 0x1000, 0x3d43361e, 2 | BRF_PRG | BRF_ESS }, // 6 I8039 code
-
- { "wt_b-5e.bin", 0x1000, 0xfe45df43, 3 | BRF_GRA }, // 7 Characters
- { "wt_b-5f.bin", 0x1000, 0x87a17eff, 3 | BRF_GRA }, // 8
-
- { "wt_b-5a.bin", 0x2000, 0xda22c452, 4 | BRF_GRA }, // 9 Tiles
- { "wt_b-5b.bin", 0x2000, 0x4fb25a1f, 4 | BRF_GRA }, // 10
- { "wt_b-5d.bin", 0x2000, 0x75be2604, 4 | BRF_GRA }, // 11
-
- { "wt_a-3j.bin", 0x1000, 0xb30ca38f, 5 | BRF_GRA }, // 12 Sprites
- { "wt_a-3k.bin", 0x1000, 0x9a77eb73, 5 | BRF_GRA }, // 13
- { "wt_a-3m.bin", 0x1000, 0xe7e468ae, 5 | BRF_GRA }, // 14
- { "wt_a-3n.bin", 0x1000, 0x0741d1a9, 5 | BRF_GRA }, // 15
- { "wt_a-3p.bin", 0x1000, 0x7299f362, 5 | BRF_GRA }, // 16
- { "wt_a-3s.bin", 0x1000, 0x9b37d50d, 5 | BRF_GRA }, // 17
-
- { "wt_a-6d.bin", 0x1000, 0xa5dde29b, 6 | BRF_SND }, // 18 Sound data
-
- { "wt_a-5s-.bpr", 0x0100, 0x041950e7, 7 | BRF_GRA }, // 19 Color PROMs
- { "wt_a-5r-.bpr", 0x0100, 0xbc04bf25, 7 | BRF_GRA }, // 20
- { "wt_a-5p-.bpr", 0x0100, 0xed819a19, 7 | BRF_GRA }, // 21
- { "wt_b-9l-.bpr", 0x0020, 0xd2728744, 7 | BRF_GRA }, // 22
-};
-
-STD_ROM_PICK(atomboya)
-STD_ROM_FN(atomboya)
-
-struct BurnDriver BurnDrvAtomboya = {
- "atomboya", "wilytowr", NULL, NULL, "1985",
- "Atomic Boy (revision A)\0", NULL, "Irem (Memetron license)", "M63",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_FLIPPED, 2, HARDWARE_IREM_M63, GBF_PLATFORM, 0,
- NULL, atomboyaRomInfo, atomboyaRomName, NULL, NULL, WilytowrInputInfo, WilytowrDIPInfo,
- atomboyInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x104,
- 256, 224, 4, 3
-};
-
-
-// Fighting Basketball
-
-static struct BurnRomInfo fghtbsktRomDesc[] = {
- { "fb14.0f", 0x2000, 0x82032853, 1 | BRF_PRG | BRF_ESS }, // 0 Z80 code
- { "fb13.2f", 0x2000, 0x5306df0f, 1 | BRF_PRG | BRF_ESS }, // 1
- { "fb12.3f", 0x2000, 0xee9210d4, 1 | BRF_PRG | BRF_ESS }, // 2
- { "fb10.6f", 0x2000, 0x6b47efba, 1 | BRF_PRG | BRF_ESS }, // 3
- { "fb09.7f", 0x2000, 0xbe69e087, 1 | BRF_PRG | BRF_ESS }, // 4
-
- { "fb07.0b", 0x1000, 0x50432dbd, 2 | BRF_PRG | BRF_ESS }, // 5 I8039 code
-
- { "fb08.12f", 0x1000, 0x271cd7b8, 3 | BRF_GRA }, // 6 Characters
-
- { "fb21.25e", 0x2000, 0x02843591, 4 | BRF_GRA }, // 7 Tiles
- { "fb22.23e", 0x2000, 0xcd51d8e7, 4 | BRF_GRA }, // 8
- { "fb23.22e", 0x2000, 0x62bcac87, 4 | BRF_GRA }, // 9
-
- { "fb16.35a", 0x2000, 0xa5df1652, 5 | BRF_GRA }, // 10 Sprites
- { "fb15.37a", 0x2000, 0x59c4de06, 5 | BRF_GRA }, // 11
- { "fb18.32a", 0x2000, 0xc23ddcd7, 5 | BRF_GRA }, // 12
- { "fb17.34a", 0x2000, 0x7db28013, 5 | BRF_GRA }, // 13
- { "fb20.29a", 0x2000, 0x1a1b48f8, 5 | BRF_GRA }, // 14
- { "fb19.31a", 0x2000, 0x7ff7e321, 5 | BRF_GRA }, // 15
-
- { "fb06.12a", 0x2000, 0xbea3df99, 6 | BRF_SND }, // 16 Sound data
-
- { "fb_r.9e", 0x0100, 0xc5cdc8ba, 7 | BRF_GRA }, // 17 Color PROMs
- { "fb_g.10e", 0x0100, 0x1460c936, 7 | BRF_GRA }, // 18
- { "fb_b.11e", 0x0100, 0xfca5bf0e, 7 | BRF_GRA }, // 19
-
- { "fb01.42a", 0x2000, 0x1200b220, 8 | BRF_SND }, // 20 Samples
- { "fb02.41a", 0x2000, 0x0b67aa82, 8 | BRF_SND }, // 21
- { "fb03.40a", 0x2000, 0xc71269ed, 8 | BRF_SND }, // 22
- { "fb04.39a", 0x2000, 0x02ddc42d, 8 | BRF_SND }, // 23
- { "fb05.38a", 0x2000, 0x72ea6b49, 8 | BRF_SND }, // 24
-};
-
-STD_ROM_PICK(fghtbskt)
-STD_ROM_FN(fghtbskt)
-
-struct BurnDriver BurnDrvFghtbskt = {
- "fghtbskt", NULL, NULL, NULL, "1984",
- "Fighting Basketball\0", NULL, "Paradise Co. Ltd.", "M63",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_IREM_M63, GBF_SPORTSMISC, 0,
- NULL, fghtbsktRomInfo, fghtbsktRomName, NULL, NULL, FghtbsktInputInfo, FghtbsktDIPInfo,
- fghtbsktInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x100,
- 256, 224, 4, 3
-};
diff --git a/jan/src/burn/drv/irem/d_m72.cpp b/jan/src/burn/drv/irem/d_m72.cpp
deleted file mode 100644
index a80c88e7d..000000000
--- a/jan/src/burn/drv/irem/d_m72.cpp
+++ /dev/null
@@ -1,4064 +0,0 @@
-// FB Alpha Irem M72 driver module
-// Based on MAME driver by Nicola Salmoria and Nao
-
-/*
- to do:
- majtitle rowscrolling issue (start game, hit a ball and watch the bg)
- poundfor inputs
-*/
-
-#include "tiles_generic.h"
-#include "z80_intf.h"
-#include "burn_ym2151.h"
-#include "nec_intf.h"
-#include "irem_cpu.h"
-#include "dac.h"
-
-static UINT8 *AllMem;
-static UINT8 *MemEnd;
-static UINT8 *AllRam;
-static UINT8 *RamEnd;
-static UINT8 *DrvV30ROM;
-static UINT8 *DrvZ80ROM;
-static UINT8 *DrvGfxROM0;
-static UINT8 *DrvGfxROM1;
-static UINT8 *DrvGfxROM2;
-static UINT8 *DrvGfxROM3;
-static UINT8 *DrvSndROM;
-static UINT8 *DrvVidRAM0;
-static UINT8 *DrvVidRAM1;
-static UINT8 *DrvV30RAM;
-static UINT8 *DrvZ80RAM;
-static UINT8 *DrvSprRAM;
-static UINT8 *DrvSprBuf;
-static UINT8 *DrvPalRAM;
-static UINT8 *DrvProtRAM;
-static UINT8 *DrvRowScroll;
-static UINT8 *DrvSprRAM2;
-
-static UINT8 *scroll;
-
-static UINT8 *RamPrioBitmap;
-
-static UINT8 *soundlatch;
-static UINT8 *video_disable;
-
-static UINT32 *DrvPalette;
-static UINT8 DrvRecalc;
-static INT32 ym2151_previous = 0;
-static UINT8 irqvector;
-static INT32 sample_address;
-static INT32 irq_raster_position;
-static INT32 z80_reset = 0;
-static INT32 majtitle_rowscroll_enable = 0;
-
-static UINT8 DrvJoy1[8];
-static UINT8 DrvJoy2[8];
-static UINT8 DrvJoy3[8];
-static UINT8 DrvJoy4[8];
-static UINT8 DrvJoy5[8];
-static UINT8 DrvDips[2];
-static UINT8 DrvInputs[5];
-static UINT8 DrvReset;
-
-static INT32 nCurrentCycles;
-static INT32 nCyclesDone[2];
-static INT32 nCyclesTotal[2];
-
-static INT32 Clock_16mhz = 0;
-static INT32 Kengo = 0;
-static INT32 CosmicCop = 0;
-static INT32 m72_video_type = 0;
-static INT32 z80_nmi_enable = 0;
-static INT32 enable_z80_reset = 0; // only if z80 is not rom-based!
-static INT32 m72_irq_base = 0;
-static INT32 code_mask[4];
-static INT32 graphics_length[4];
-static INT32 video_offsets[2] = { 0, 0 };
-
-enum { Z80_NO_NMI=0, Z80_REAL_NMI, Z80_FAKE_NMI };
-enum { VECTOR_INIT, YM2151_ASSERT, YM2151_CLEAR, Z80_ASSERT, Z80_CLEAR };
-
-
-static struct BurnInputInfo CommonInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy3 + 2, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy3 + 0, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy1 + 3, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy1 + 2, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy1 + 1, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy1 + 0, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy1 + 7, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy1 + 6, "p1 fire 2" },
- {"P1 Button 3", BIT_DIGITAL, DrvJoy1 + 5, "p1 fire 3" },
- {"P1 Button 4", BIT_DIGITAL, DrvJoy1 + 4, "p1 fire 4" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy3 + 3, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy3 + 1, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvJoy2 + 3, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy2 + 2, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy2 + 1, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy2 + 0, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy2 + 7, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy2 + 6, "p2 fire 2" },
- {"P2 Button 3", BIT_DIGITAL, DrvJoy2 + 5, "p2 fire 3" },
- {"P2 Button 4", BIT_DIGITAL, DrvJoy2 + 4, "p2 fire 4" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service", BIT_DIGITAL, DrvJoy3 + 4, "service" },
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip" },
-};
-
-STDINPUTINFO(Common)
-
-static struct BurnInputInfo PoundforInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy2 + 2, "p1 coin"},
- {"P1 Start", BIT_DIGITAL, DrvJoy2 + 0, "p1 start"},
- {"P1 Button 1", BIT_DIGITAL, DrvJoy1 + 6, "p1 fire 1"},
- {"P1 Button 2", BIT_DIGITAL, DrvJoy1 + 5, "p1 fire 2"},
-
- // save space for analog inputs
- {"P2 Button 3", BIT_DIGITAL, DrvJoy5 + 6, "p2 fire 3"},
- {"P2 Button 4", BIT_DIGITAL, DrvJoy5 + 6, "p2 fire 4"},
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy2 + 3, "p2 coin"},
- {"P2 Start", BIT_DIGITAL, DrvJoy2 + 1, "p2 start"},
- {"P2 Button 1", BIT_DIGITAL, DrvJoy4 + 6, "p2 fire 1"},
- {"P2 Button 2", BIT_DIGITAL, DrvJoy4 + 5, "p2 fire 2"},
-
- // save space for analog inputs...
- {"P2 Button 5", BIT_DIGITAL, DrvJoy5 + 6, "p2 fire 5"},
- {"P2 Button 6", BIT_DIGITAL, DrvJoy5 + 6, "p2 fire 6"},
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset"},
- {"Service", BIT_DIGITAL, DrvJoy2 + 4, "service"},
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip"},
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip"},
-};
-
-STDINPUTINFO(Poundfor)
-
-static struct BurnDIPInfo Dip2CoinDIPList[]=
-{
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x16, 0x01, 0x40, 0x40, "Off" },
- {0x16, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x16, 0x01, 0x80, 0x80, "Off" },
- {0x16, 0x01, 0x80, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x17, 0x01, 0x01, 0x01, "Off" },
- {0x17, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Coin Mode" },
- {0x17, 0x01, 0x08, 0x08, "Mode 1" },
- {0x17, 0x01, 0x08, 0x00, "Mode 2" },
-
- {0 , 0xfe, 0 , 16, "Coinage" },
- {0x17, 0x01, 0xf0, 0xa0, "6 Coins 1 Credit" },
- {0x17, 0x01, 0xf0, 0xb0, "5 Coins 1 Credit" },
- {0x17, 0x01, 0xf0, 0xc0, "4 Coins 1 Credit" },
- {0x17, 0x01, 0xf0, 0xd0, "3 Coins 1 Credit" },
- {0x17, 0x01, 0xf0, 0xe0, "2 Coins 1 Credit" },
- {0x17, 0x01, 0xf0, 0x10, "2 Coins to Start/1 to Cont." },
- {0x17, 0x01, 0xf0, 0x30, "3 Coins 2 Credits" },
- {0x17, 0x01, 0xf0, 0x20, "4 Coins 3 Credits" },
- {0x17, 0x01, 0xf0, 0xf0, "1 Coin 1 Credit" },
- {0x17, 0x01, 0xf0, 0x40, "2 Coins 3 Credits" },
- {0x17, 0x01, 0xf0, 0x90, "1 Coin 2 Credits" },
- {0x17, 0x01, 0xf0, 0x80, "1 Coin 3 Credits" },
- {0x17, 0x01, 0xf0, 0x70, "1 Coin 4 Credits" },
- {0x17, 0x01, 0xf0, 0x60, "1 Coin 5 Credits" },
- {0x17, 0x01, 0xf0, 0x50, "1 Coin 6 Credits" },
- {0x17, 0x01, 0xf0, 0x00, "Free Play" },
-};
-
-static struct BurnDIPInfo Dip1CoinDIPList[]=
-{
- {0 , 0xfe, 0 , 16, "Coinage" },
- {0x16, 0x01, 0xf0, 0xa0, "6 Coins 1 Credit" },
- {0x16, 0x01, 0xf0, 0xb0, "5 Coins 1 Credit" },
- {0x16, 0x01, 0xf0, 0xc0, "4 Coins 1 Credit" },
- {0x16, 0x01, 0xf0, 0xd0, "3 Coins 1 Credit" },
- {0x16, 0x01, 0xf0, 0x10, "8 Coins 3 Credits" },
- {0x16, 0x01, 0xf0, 0xe0, "2 Coins 1 Credit" },
- {0x16, 0x01, 0xf0, 0x20, "5 Coins 3 Credits" },
- {0x16, 0x01, 0xf0, 0x30, "3 Coins 2 Credits" },
- {0x16, 0x01, 0xf0, 0xf0, "1 Coin 1 Credit" },
- {0x16, 0x01, 0xf0, 0x40, "2 Coins 3 Credits" },
- {0x16, 0x01, 0xf0, 0x90, "1 Coin 2 Credits" },
- {0x16, 0x01, 0xf0, 0x80, "1 Coin 3 Credits" },
- {0x16, 0x01, 0xf0, 0x70, "1 Coin 4 Credits" },
- {0x16, 0x01, 0xf0, 0x60, "1 Coin 5 Credits" },
- {0x16, 0x01, 0xf0, 0x50, "1 Coin 6 Credits" },
- {0x16, 0x01, 0xf0, 0x00, "Free Play" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x17, 0x01, 0x01, 0x01, "Off" },
- {0x17, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Coin Mode" },
- {0x17, 0x01, 0x04, 0x04, "Mode 1" },
- {0x17, 0x01, 0x04, 0x00, "Mode 2" },
-
- {0 , 0xfe, 0 , 2, "Stop Mode" },
- {0x17, 0x01, 0x20, 0x20, "Off" },
- {0x17, 0x01, 0x20, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x17, 0x01, 0x80, 0x80, "Off" },
- {0x17, 0x01, 0x80, 0x00, "On" },
-};
-
-static struct BurnDIPInfo RtypeDIPList[]=
-{
- {0x16, 0xff, 0xff, 0xfb, NULL },
- {0x17, 0xff, 0xff, 0xfd, NULL },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x16, 0x01, 0x03, 0x02, "2" },
- {0x16, 0x01, 0x03, 0x03, "3" },
- {0x16, 0x01, 0x03, 0x01, "4" },
- {0x16, 0x01, 0x03, 0x00, "5" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x16, 0x01, 0x04, 0x04, "Off" },
- {0x16, 0x01, 0x04, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Bonus Life" },
- {0x16, 0x01, 0x08, 0x00, "50K 150K 250K 400K 600K" },
- {0x16, 0x01, 0x08, 0x08, "100K 200K 350K 500K 700K" },
-
- {0 , 0xfe, 0 , 2, "Cabinet" },
- {0x17, 0x01, 0x02, 0x00, "Upright" },
- {0x17, 0x01, 0x02, 0x02, "Cocktail" },
-
- {0 , 0xfe, 0 , 2, "Difficulty" },
- {0x17, 0x01, 0x08, 0x08, "Normal" },
- {0x17, 0x01, 0x08, 0x00, "Hard" },
-
- {0 , 0xfe, 0 , 2, "Allow Continue" },
- {0x17, 0x01, 0x10, 0x00, "No" },
- {0x17, 0x01, 0x10, 0x10, "Yes" },
-
- {0 , 0xfe, 0 , 2, "Invulnerability" },
- {0x17, 0x01, 0x40, 0x40, "Off" },
- {0x17, 0x01, 0x40, 0x00, "On" },
-};
-
-STDDIPINFOEXT(Rtype, Dip1Coin, Rtype )
-
-static struct BurnDIPInfo RtypepDIPList[]=
-{
- {0x16, 0xff, 0xff, 0xfb, NULL },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x16, 0x01, 0x04, 0x04, "On" },
- {0x16, 0x01, 0x04, 0x00, "Off" },
-};
-
-STDDIPINFOEXT(Rtypep, Rtype, Rtypep )
-
-static struct BurnDIPInfo XmultiplDIPList[]=
-{
- {0x16, 0xff, 0xff, 0xff, NULL },
- {0x17, 0xff, 0xff, 0xfd, NULL },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x16, 0x01, 0x03, 0x02, "Very Easy" },
- {0x16, 0x01, 0x03, 0x01, "Easy" },
- {0x16, 0x01, 0x03, 0x03, "Normal" },
- {0x16, 0x01, 0x03, 0x00, "Hard" },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x16, 0x01, 0x0c, 0x08, "1" },
- {0x16, 0x01, 0x0c, 0x04, "2" },
- {0x16, 0x01, 0x0c, 0x0c, "3" },
- {0x16, 0x01, 0x0c, 0x00, "4" },
-
- {0 , 0xfe, 0 , 4, "Cabinet" },
- {0x17, 0x01, 0x02, 0x00, "Upright (single)" },
- {0x17, 0x01, 0x02, 0x02, "Cocktail" },
- {0x17, 0x01, 0x02, 0x00, "Upright (double) On" },
- {0x17, 0x01, 0x02, 0x02, "Upright (double) Off" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x17, 0x01, 0x08, 0x00, "Off" },
- {0x17, 0x01, 0x08, 0x08, "On" },
-
- {0 , 0xfe, 0 , 2, "Upright (double) Mode" },
- {0x17, 0x01, 0x10, 0x10, "Off" },
- {0x17, 0x01, 0x10, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Allow Continue" },
- {0x17, 0x01, 0x20, 0x00, "No" },
- {0x17, 0x01, 0x20, 0x20, "Yes" },
-};
-
-STDDIPINFOEXT(Xmultipl, Dip1Coin, Xmultipl )
-
-static struct BurnDIPInfo DbreedDIPList[]=
-{
- {0x16, 0xff, 0xff, 0xff, NULL },
- {0x17, 0xff, 0xff, 0xf5, NULL },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x16, 0x01, 0x03, 0x02, "2" },
- {0x16, 0x01, 0x03, 0x03, "3" },
- {0x16, 0x01, 0x03, 0x01, "4" },
- {0x16, 0x01, 0x03, 0x00, "5" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x16, 0x01, 0x0c, 0x00, "Very Easy" },
- {0x16, 0x01, 0x0c, 0x08, "Easy" },
- {0x16, 0x01, 0x0c, 0x0c, "Normal" },
- {0x16, 0x01, 0x0c, 0x04, "Hard" },
-
- {0 , 0xfe, 0 , 2, "Cabinet" },
- {0x17, 0x01, 0x02, 0x00, "Upright" },
- {0x17, 0x01, 0x02, 0x02, "Cocktail" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x17, 0x01, 0x08, 0x08, "Off" },
- {0x17, 0x01, 0x08, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Allow Continue" },
- {0x17, 0x01, 0x10, 0x00, "No" },
- {0x17, 0x01, 0x10, 0x10, "Yes" },
-};
-
-STDDIPINFOEXT(Dbreed, Dip1Coin, Dbreed )
-
-static struct BurnDIPInfo BchopperDIPList[]=
-{
- {0x16, 0xff, 0xff, 0xfb, NULL },
- {0x17, 0xff, 0xff, 0xfd, NULL },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x16, 0x01, 0x03, 0x00, "1" },
- {0x16, 0x01, 0x03, 0x02, "2" },
- {0x16, 0x01, 0x03, 0x03, "3" },
- {0x16, 0x01, 0x03, 0x01, "4" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x16, 0x01, 0x04, 0x04, "Off" },
- {0x16, 0x01, 0x04, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Bonus Life" },
- {0x16, 0x01, 0x08, 0x08, "80K 200K 350K" },
- {0x16, 0x01, 0x08, 0x00, "100K 250K 400K" },
-
- {0 , 0xfe, 0 , 2, "Cabinet" },
- {0x17, 0x01, 0x02, 0x00, "Upright" },
- {0x17, 0x01, 0x02, 0x02, "Cocktail" },
-
- {0 , 0xfe, 0 , 2, "Difficulty" },
- {0x17, 0x01, 0x08, 0x08, "Normal" },
- {0x17, 0x01, 0x08, 0x00, "Hard" },
-
- {0 , 0xfe, 0 , 2, "Allow Continue" },
- {0x17, 0x01, 0x10, 0x00, "No" },
- {0x17, 0x01, 0x10, 0x10, "Yes" },
-
- {0 , 0xfe, 0 , 2, "Invulnerability" },
- {0x17, 0x01, 0x40, 0x40, "Off" },
- {0x17, 0x01, 0x40, 0x00, "On" },
-};
-
-STDDIPINFOEXT(Bchopper, Dip1Coin, Bchopper )
-
-static struct BurnDIPInfo NspiritDIPList[]=
-{
- {0x16, 0xff, 0xff, 0xff, NULL },
- {0x17, 0xff, 0xff, 0xf5, NULL },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x16, 0x01, 0x03, 0x02, "2" },
- {0x16, 0x01, 0x03, 0x03, "3" },
- {0x16, 0x01, 0x03, 0x01, "4" },
- {0x16, 0x01, 0x03, 0x00, "5" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x16, 0x01, 0x0c, 0x08, "Easy" },
- {0x16, 0x01, 0x0c, 0x0c, "Normal" },
- {0x16, 0x01, 0x0c, 0x04, "Hard" },
- {0x16, 0x01, 0x0c, 0x00, "Hardest" },
-
- {0 , 0xfe, 0 , 2, "Cabinet" },
- {0x17, 0x01, 0x02, 0x00, "Upright" },
- {0x17, 0x01, 0x02, 0x02, "Cocktail" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x17, 0x01, 0x08, 0x08, "Off" },
- {0x17, 0x01, 0x08, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Allow Continue" },
- {0x17, 0x01, 0x10, 0x00, "No" },
- {0x17, 0x01, 0x10, 0x10, "Yes" },
-
- {0 , 0xfe, 0 , 2, "Invulnerability" },
- {0x17, 0x01, 0x40, 0x40, "Off" },
- {0x17, 0x01, 0x40, 0x00, "On" },
-};
-
-STDDIPINFOEXT(Nspirit, Dip1Coin, Nspirit )
-
-static struct BurnDIPInfo ImgfightDIPList[]=
-{
- {0x16, 0xff, 0xff, 0xff, NULL },
- {0x17, 0xff, 0xff, 0xe5, NULL },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x16, 0x01, 0x03, 0x02, "2" },
- {0x16, 0x01, 0x03, 0x03, "3" },
- {0x16, 0x01, 0x03, 0x01, "4" },
- {0x16, 0x01, 0x03, 0x00, "5" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x16, 0x01, 0x0c, 0x0c, "Normal" },
- {0x16, 0x01, 0x0c, 0x08, "Hard" },
- {0x16, 0x01, 0x0c, 0x04, "Hardest" },
- {0x16, 0x01, 0x0c, 0x00, "Debug Mode 2 lap" },
-
- {0 , 0xfe, 0 , 2, "Cabinet" },
- {0x17, 0x01, 0x02, 0x00, "Upright" },
- {0x17, 0x01, 0x02, 0x02, "Cocktail" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x17, 0x01, 0x08, 0x08, "Off" },
- {0x17, 0x01, 0x08, 0x00, "On" },
-};
-
-STDDIPINFOEXT(Imgfight, Dip1Coin, Imgfight )
-
-static struct BurnDIPInfo Rtype2DIPList[]=
-{
- {0x16, 0xff, 0xff, 0xff, NULL },
- {0x17, 0xff, 0xff, 0xf7, NULL },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x16, 0x01, 0x03, 0x02, "2" },
- {0x16, 0x01, 0x03, 0x03, "3" },
- {0x16, 0x01, 0x03, 0x01, "4" },
- {0x16, 0x01, 0x03, 0x00, "5" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x16, 0x01, 0x0c, 0x08, "Easy" },
- {0x16, 0x01, 0x0c, 0x0c, "Normal" },
- {0x16, 0x01, 0x0c, 0x04, "Hard" },
- {0x16, 0x01, 0x0c, 0x00, "Hardest" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x17, 0x01, 0x02, 0x00, "Off" },
- {0x17, 0x01, 0x02, 0x02, "On" },
-
- {0 , 0xfe, 0 , 3, "Cabinet" },
- {0x17, 0x01, 0x18, 0x10, "Upright" },
- {0x17, 0x01, 0x18, 0x00, "Upright (2P)" },
- {0x17, 0x01, 0x18, 0x18, "Cocktail" },
-};
-
-STDDIPINFOEXT(Rtype2, Dip1Coin, Rtype2 )
-
-static struct BurnDIPInfo LohtDIPList[]=
-{
- {0x16, 0xff, 0xff, 0xfb, NULL },
- {0x17, 0xff, 0xff, 0xfd, NULL },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x16, 0x01, 0x03, 0x00, "2" },
- {0x16, 0x01, 0x03, 0x03, "3" },
- {0x16, 0x01, 0x03, 0x02, "4" },
- {0x16, 0x01, 0x03, 0x01, "5" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x16, 0x01, 0x04, 0x04, "Off" },
- {0x16, 0x01, 0x04, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Cabinet" },
- {0x17, 0x01, 0x02, 0x00, "Upright" },
- {0x17, 0x01, 0x02, 0x02, "Cocktail" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x17, 0x01, 0x18, 0x00, "Easy" },
- {0x17, 0x01, 0x18, 0x18, "Normal" },
- {0x17, 0x01, 0x18, 0x10, "Hard" },
- {0x17, 0x01, 0x18, 0x08, "Hardest" },
-
- {0 , 0xfe, 0 , 2, "Invulnerability" },
- {0x17, 0x01, 0x40, 0x40, "Off" },
- {0x17, 0x01, 0x40, 0x00, "On" },
-};
-
-STDDIPINFOEXT(Loht, Dip1Coin, Loht )
-
-static struct BurnDIPInfo AirduelDIPList[]=
-{
- {0x16, 0xff, 0xff, 0xbf, NULL },
- {0x17, 0xff, 0xff, 0xff, NULL },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x16, 0x01, 0x03, 0x02, "2" },
- {0x16, 0x01, 0x03, 0x03, "3" },
- {0x16, 0x01, 0x03, 0x01, "4" },
- {0x16, 0x01, 0x03, 0x00, "5" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x16, 0x01, 0x0c, 0x00, "Very Easy" },
- {0x16, 0x01, 0x0c, 0x08, "Easy" },
- {0x16, 0x01, 0x0c, 0x0c, "Normal" },
- {0x16, 0x01, 0x0c, 0x04, "Hard" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x17, 0x01, 0x01, 0x01, "Off" },
- {0x17, 0x01, 0x01, 0x00, "On" },
-};
-
-STDDIPINFOEXT(Airduel, Dip2Coin, Airduel )
-
-static struct BurnDIPInfo GallopDIPList[]=
-{
- {0x16, 0xff, 0xff, 0xbf, NULL },
- {0x17, 0xff, 0xff, 0xf9, NULL },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x16, 0x01, 0x03, 0x02, "2" },
- {0x16, 0x01, 0x03, 0x03, "3" },
- {0x16, 0x01, 0x03, 0x01, "4" },
- {0x16, 0x01, 0x03, 0x00, "5" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x16, 0x01, 0x0c, 0x00, "Very Easy" },
- {0x16, 0x01, 0x0c, 0x08, "Easy" },
- {0x16, 0x01, 0x0c, 0x0c, "Normal" },
- {0x16, 0x01, 0x0c, 0x04, "Hard" },
-
- {0 , 0xfe, 0 , 0, "Allow Continue" },
- {0x16, 0x01, 0x20, 0x00, "No" },
- {0x16, 0x01, 0x20, 0x20, "Yes" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x17, 0x01, 0x01, 0x01, "Off" },
- {0x17, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Cabinet" },
- {0x17, 0x01, 0x06, 0x00, "Upright" },
- {0x17, 0x01, 0x06, 0x02, "Upright (2P)" },
- {0x17, 0x01, 0x06, 0x06, "Cocktail" },
-};
-
-STDDIPINFOEXT(Gallop, Dip2Coin, Gallop )
-
-static struct BurnDIPInfo KengoDIPList[]=
-{
- {0x16, 0xff, 0xff, 0xbf, NULL },
- {0x17, 0xff, 0xff, 0xf9, NULL },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x16, 0x01, 0x03, 0x02, "2" },
- {0x16, 0x01, 0x03, 0x03, "3" },
- {0x16, 0x01, 0x03, 0x01, "4" },
- {0x16, 0x01, 0x03, 0x00, "5" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x16, 0x01, 0x0c, 0x00, "Very Easy" },
- {0x16, 0x01, 0x0c, 0x08, "Easy" },
- {0x16, 0x01, 0x0c, 0x0c, "Normal" },
- {0x16, 0x01, 0x0c, 0x04, "Hard" },
-
- {0 , 0xfe, 0 , 2, "Allow Continue" },
- {0x16, 0x01, 0x20, 0x00, "No" },
- {0x16, 0x01, 0x20, 0x20, "Yes" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x17, 0x01, 0x01, 0x01, "Off" },
- {0x17, 0x01, 0x01, 0x00, "On" },
-};
-
-STDDIPINFOEXT(Kengo, Dip2Coin, Kengo )
-
-static struct BurnDIPInfo HharryDIPList[]=
-{
- {0x16, 0xff, 0xff, 0xbf, NULL },
- {0x17, 0xff, 0xff, 0xfd, NULL },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x16, 0x01, 0x03, 0x02, "2" },
- {0x16, 0x01, 0x03, 0x03, "3" },
- {0x16, 0x01, 0x03, 0x01, "4" },
- {0x16, 0x01, 0x03, 0x00, "5" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x16, 0x01, 0x0c, 0x00, "Very Easy" },
- {0x16, 0x01, 0x0c, 0x08, "Easy" },
- {0x16, 0x01, 0x0c, 0x0c, "Normal" },
- {0x16, 0x01, 0x0c, 0x04, "Hard" },
-
- {0 , 0xfe, 0 , 2, "Continue Limit" },
- {0x16, 0x01, 0x10, 0x00, "No" },
- {0x16, 0x01, 0x10, 0x10, "Yes" },
-
- {0 , 0xfe, 0 , 2, "Allow Continue" },
- {0x16, 0x01, 0x20, 0x00, "No" },
- {0x16, 0x01, 0x20, 0x20, "Yes" },
-
- {0 , 0xfe, 0 , 3, "Cabinet" },
- {0x17, 0x01, 0x06, 0x04, "Upright" },
- {0x17, 0x01, 0x06, 0x00, "Upright (2P)" },
- {0x17, 0x01, 0x06, 0x06, "Cocktail" },
-};
-
-STDDIPINFOEXT(Hharry, Dip2Coin, Hharry )
-
-static struct BurnDIPInfo PoundforDIPList[]=
-{
- {0x0e, 0xff, 0xff, 0xbf, NULL },
- {0x0f, 0xff, 0xff, 0xfd, NULL },
-
- {0 , 0xfe, 0 , 4, "Round Time" },
- {0x0e, 0x01, 0x03, 0x02, "60" },
- {0x0e, 0x01, 0x03, 0x03, "90" },
- {0x0e, 0x01, 0x03, 0x01, "120" },
- {0x0e, 0x01, 0x03, 0x00, "150" },
-
- {0 , 0xfe, 0 , 2, "Matches/Credit (2P)" },
- {0x0e, 0x01, 0x04, 0x04, "1" },
- {0x0e, 0x01, 0x04, 0x00, "2" },
-
- {0 , 0xfe, 0 , 2, "Rounds/Match" },
- {0x0e, 0x01, 0x08, 0x08, "2" },
- {0x0e, 0x01, 0x08, 0x00, "3" },
-
- {0 , 0xfe, 0 , 2, "Difficulty" },
- {0x0e, 0x01, 0x10, 0x10, "Normal" },
- {0x0e, 0x01, 0x10, 0x00, "Hard" },
-
- {0 , 0xfe, 0 , 2, "Trackball Size" },
- {0x0e, 0x01, 0x20, 0x20, "Small" },
- {0x0e, 0x01, 0x20, 0x00, "Large" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x0e, 0x01, 0x40, 0x40, "Off" },
- {0x0e, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x0e, 0x01, 0x80, 0x80, "Off" },
- {0x0e, 0x01, 0x80, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x0f, 0x01, 0x01, 0x01, "Off" },
- {0x0f, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 3, "Cabinet" },
- {0x0f, 0x01, 0x06, 0x04, "Upright" },
- {0x0f, 0x01, 0x06, 0x02, "Upright (2P)" },
- {0x0f, 0x01, 0x06, 0x06, "Cocktail" },
-
- {0 , 0xfe, 0 , 2, "Coin Mode" },
- {0x0f, 0x01, 0x08, 0x08, "Mode 1" },
- {0x0f, 0x01, 0x08, 0x00, "Mode 2" },
-
- {0 , 0xfe, 0 , 16, "Coinage" },
- {0x0f, 0x01, 0xf0, 0xa0, "6 Coins 1 Credit" },
- {0x0f, 0x01, 0xf0, 0xb0, "5 Coins 1 Credit" },
- {0x0f, 0x01, 0xf0, 0xc0, "4 Coins 1 Credit" },
- {0x0f, 0x01, 0xf0, 0xd0, "3 Coins 1 Credit" },
- {0x0f, 0x01, 0xf0, 0xe0, "2 Coins 1 Credit" },
- {0x0f, 0x01, 0xf0, 0x30, "3 Coins 2 Credits" },
- {0x0f, 0x01, 0xf0, 0x20, "4 Coins 3 Credits" },
- {0x0f, 0x01, 0xf0, 0xf0, "1 Coin 1 Credit" },
- {0x0f, 0x01, 0xf0, 0x10, "1 Coin/1 Credit, 1 Coin/Cont."},
- {0x0f, 0x01, 0xf0, 0x40, "2 Coins 3 Credits" },
- {0x0f, 0x01, 0xf0, 0x90, "1 Coin 2 Credits" },
- {0x0f, 0x01, 0xf0, 0x80, "1 Coin 3 Credits" },
- {0x0f, 0x01, 0xf0, 0x70, "1 Coin 4 Credits" },
- {0x0f, 0x01, 0xf0, 0x60, "1 Coin 5 Credits" },
- {0x0f, 0x01, 0xf0, 0x50, "1 Coin 6 Credits" },
- {0x0f, 0x01, 0xf0, 0x00, "Free Play" },
-};
-
-STDDIPINFO(Poundfor)
-
-//--------------------------------------------------------------------------------------------------------------------------------------------------
-// Protection handlers
-
-static const UINT8 *protection_code = NULL;
-static const UINT8 *protection_crc = NULL;
-static const INT32 *protection_sample_offsets = NULL;
-
-static UINT8 protection_read(INT32 address)
-{
- if (address == 0xb0ffb) {
- if (protection_code != NULL) {
- memcpy (DrvProtRAM, protection_code, 96);
- }
- }
-
- return DrvProtRAM[address & 0xfff];
-}
-
-static void protection_write(INT32 address, UINT8 data)
-{
- DrvProtRAM[address & 0xfff] = data ^ 0xff;
-
- if (address == 0xb0fff && data == 0) {
- if (protection_crc != NULL) {
- memcpy (DrvProtRAM + 0xfe0, protection_crc, 18);
- }
- }
-}
-
-static void protection_sample_offset_write(UINT8 data)
-{
- if (protection_sample_offsets != NULL) {
- if (data < protection_sample_offsets[0]) {
- sample_address = protection_sample_offsets[data+1];
- }
- }
-}
-
-static void m72_install_protection(const UINT8 *code, const UINT8 *crc, const INT32 *offs)
-{
- protection_code = code;
- protection_crc = crc;
- protection_sample_offsets = offs;
-}
-
-#define install_protection(name) m72_install_protection(name##_code, name##_crc, name##_sample_offsets)
-
-/* Battle Chopper / Mr. Heli */
-static const INT32 bchopper_sample_offsets[7] = { 6, 0x0000, 0x0010, 0x2510, 0x6510, 0x8510, 0x9310 };
-
-static const UINT8 bchopper_code[96] =
-{
- 0x68,0x00,0xa0, // push 0a000h
- 0x1f, // pop ds
- 0xc6,0x06,0x38,0x38,0x53, // mov [3838h], byte 053h
- 0xc6,0x06,0x3a,0x38,0x41, // mov [383ah], byte 041h
- 0xc6,0x06,0x3c,0x38,0x4d, // mov [383ch], byte 04dh
- 0xc6,0x06,0x3e,0x38,0x4f, // mov [383eh], byte 04fh
- 0xc6,0x06,0x40,0x38,0x54, // mov [3840h], byte 054h
- 0xc6,0x06,0x42,0x38,0x4f, // mov [3842h], byte 04fh
- 0x68,0x00,0xb0, // push 0b000h
- 0x1f, // pop ds
- 0xc6,0x06,0x00,0x09,0x49^0xff, // mov [0900h], byte 049h
- 0xc6,0x06,0x00,0x0a,0x49^0xff, // mov [0a00h], byte 049h
- 0xc6,0x06,0x00,0x0b,0x49^0xff, // mov [0b00h], byte 049h
- 0xc6,0x06,0x00,0x00,0xcb^0xff, // mov [0000h], byte 0cbh ; retf : bypass protection check during the game
- 0x68,0x00,0xd0, // push 0d000h
- 0x1f, // pop ds
- // the following is for mrheli only, the game checks for
- // "This game can only be played in Japan..." message in the video text buffer
- // the message is nowhere to be found in the ROMs, so has to be displayed by the mcu
- 0xc6,0x06,0x70,0x16,0x77, // mov [1670h], byte 077h
- 0xea,0x68,0x01,0x40,0x00 // jmp 0040:$0168
-};
-
-static const UINT8 bchopper_crc[18] = {
- 0x1a,0x12,0x5c,0x08,0x84,0xb6,0x73,0xd1,0x54,0x91,0x94,0xeb,0x00,0x00
-};
-
-static const UINT8 mrheli_crc[18] = {
- 0x24,0x21,0x1f,0x14,0xf9,0x28,0xfb,0x47,0x4c,0x77,0x9e,0xc2,0x00,0x00
-};
-
-/* X Multiply */
-static const INT32 xmultiplm72_sample_offsets[4] = { 3, 0x0000, 0x0020, 0x1a40 };
-
-static const UINT8 xmultiplm72_code[96] = {
- 0xea,0x30,0x02,0x00,0x0e // jmp 0e00:$0230
-};
-
-static const UINT8 xmultiplm72_crc[18] = {
- 0x73,0x82,0x4e,0x3f, 0xfc,0x56,0x59,0x06,0x05,0x48,0xa8,0xf4,0x00,0x00
-};
-
-/* Dragon Breed */
-static const INT32 dbreedm72_sample_offsets[10] = { 9, 0x00000, 0x00020, 0x02c40, 0x08160, 0x0c8c0, 0x0ffe0, 0x13000, 0x15820, 0x15f40 };
-
-static const UINT8 dbreedm72_code[96] = {
- 0xea,0x6c,0x00,0x00,0x00 // jmp 0000:$006c
-};
-
-static const UINT8 dbreedm72_crc[18] ={
- 0xa4,0x96,0x5f,0xc0, 0xab,0x49,0x9f,0x19,0x84,0xe6,0xd6,0xca,0x00,0x00
-};
-
-/* Ninja Spirit */
-static const INT32 nspirit_sample_offsets[10] = { 9, 0x0000, 0x0020, 0x2020, 0, 0x5720, 0, 0x7b60, 0x9b60, 0xc360 };
-
-static const UINT8 nspirit_code[96] =
-{
- 0x68,0x00,0xa0, // push 0a000h
- 0x1f, // pop ds
- 0xc6,0x06,0x38,0x38,0x4e, // mov [3838h], byte 04eh
- 0xc6,0x06,0x3a,0x38,0x49, // mov [383ah], byte 049h
- 0xc6,0x06,0x3c,0x38,0x4e, // mov [383ch], byte 04eh
- 0xc6,0x06,0x3e,0x38,0x44, // mov [383eh], byte 044h
- 0xc6,0x06,0x40,0x38,0x4f, // mov [3840h], byte 04fh
- 0xc6,0x06,0x42,0x38,0x55, // mov [3842h], byte 055h
- 0x68,0x00,0xb0, // push 0b000h
- 0x1f, // pop ds
- 0xc6,0x06,0x00,0x09,0x49^0xff, // mov [0900h], byte 049h
- 0xc6,0x06,0x00,0x0a,0x49^0xff, // mov [0a00h], byte 049h
- 0xc6,0x06,0x00,0x0b,0x49^0xff, // mov [0b00h], byte 049h
- 0x68,0x00,0xd0, // push 0d000h
- 0x1f, // pop ds
- // the following is for nspiritj only, the game checks for
- // "This game can only be played in Japan..." message in the video text buffer
- // the message is nowhere to be found in the ROMs, so has to be displayed by the mcu
- 0xc6,0x06,0x70,0x16,0x57, // mov [1670h], byte 057h
- 0xc6,0x06,0x71,0x16,0x00, // mov [1671h], byte 000h
- 0xea,0x00,0x00,0x40,0x00 // jmp 0040:$0000
-};
-
-static const UINT8 nspirit_crc[18] = {
- 0xfe,0x94,0x6e,0x4e, 0xc8,0x33,0xa7,0x2d,0xf2,0xa3,0xf9,0xe1, 0xa9,0x6c,0x02,0x95, 0x00,0x00
-};
-
-static const UINT8 nspiritj_crc[18] = {
- 0x26,0xa3,0xa5,0xe9, 0xc8,0x33,0xa7,0x2d,0xf2,0xa3,0xf9,0xe1, 0xbc,0x6c,0x01,0x95, 0x00,0x00
-};
-
-/* Image Fight */
-static const INT32 imgfight_sample_offsets[8] = { 7, 0x0000, 0x0020, 0x44e0, 0x98a0, 0xc820, 0xf7a0, 0x108c0 };
-
-static const UINT8 imgfight_code[96] =
-{
- 0x68,0x00,0xa0, // push 0a000h
- 0x1f, // pop ds
- 0xc6,0x06,0x38,0x38,0x50, // mov [3838h], byte 050h
- 0xc6,0x06,0x3a,0x38,0x49, // mov [383ah], byte 049h
- 0xc6,0x06,0x3c,0x38,0x43, // mov [383ch], byte 043h
- 0xc6,0x06,0x3e,0x38,0x4b, // mov [383eh], byte 04bh
- 0xc6,0x06,0x40,0x38,0x45, // mov [3840h], byte 045h
- 0xc6,0x06,0x42,0x38,0x54, // mov [3842h], byte 054h
- 0x68,0x00,0xb0, // push 0b000h
- 0x1f, // pop ds
- 0xc6,0x06,0x00,0x09,0x49^0xff, // mov [0900h], byte 049h
- 0xc6,0x06,0x00,0x0a,0x49^0xff, // mov [0a00h], byte 049h
- 0xc6,0x06,0x00,0x0b,0x49^0xff, // mov [0b00h], byte 049h
- 0xc6,0x06,0x20,0x09,0x49^0xff, // mov [0920h], byte 049h
- 0xc6,0x06,0x21,0x09,0x4d^0xff, // mov [0921h], byte 04dh
- 0xc6,0x06,0x22,0x09,0x41^0xff, // mov [0922h], byte 041h
- 0xc6,0x06,0x23,0x09,0x47^0xff, // mov [0923h], byte 047h
- 0x68,0x00,0xd0, // push 0d000h
- 0x1f, // pop ds
- // the game checks for
- // "This game can only be played in Japan..." message in the video text buffer
- // the message is nowhere to be found in the ROMs, so has to be displayed by the mcu
- 0xc6,0x06,0xb0,0x1c,0x57, // mov [1cb0h], byte 057h
- 0xea,0x00,0x00,0x40,0x00 // jmp 0040:$0000
-};
-
-static const UINT8 imgfight_crc[18] = {
- 0x7e,0xcc,0xec,0x03, 0x04,0x33,0xb6,0xc5, 0xbf,0x37,0x92,0x94, 0x00,0x00
-};
-
-/* Air Duel */
-static const INT32 airduel_sample_offsets[17] = {
- 16,
- 0x00000, 0x00020, 0x03ec0, 0x05640, 0x06dc0, 0x083a0, 0x0c000, 0x0eb60,
- 0x112e0, 0x13dc0, 0x16520, 0x16d60, 0x18ae0, 0x1a5a0, 0x1bf00, 0x1c340 };
-
-static const UINT8 airduel_code[96] =
-{
- 0x68,0x00,0xd0, // push 0d000h
- 0x1f, // pop ds
- // the game checks for
- // "This game can only be played in Japan..." message in the video text buffer
- // the message is nowhere to be found in the ROMs, so has to be displayed by the mcu
- 0xc6,0x06,0xc0,0x1c,0x57, // mov [1cc0h], byte 057h
- 0xea,0x69,0x0b,0x00,0x00 // jmp 0000:$0b69
-};
-
-static const UINT8 airduel_crc[18] = {
- 0x72,0x9c,0xca,0x85, 0xc9,0x12,0xcc,0xea, 0x00,0x00
-};
-
-/* Daiku no Gensan */
-static const INT32 dkgenm72_sample_offsets[29] = {
- 28,
- 0x00000, 0x00020, 0x01800, 0x02da0, 0x03be0, 0x05ae0, 0x06100, 0x06de0,
- 0x07260, 0x07a60, 0x08720, 0x0a5c0, 0x0c3c0, 0x0c7a0, 0x0e140, 0x0fb00,
- 0x10fa0, 0x10fc0, 0x10fe0, 0x11f40, 0x12b20, 0x130a0, 0x13c60, 0x14740,
- 0x153c0, 0x197e0, 0x1af40, 0x1c080 };
-
-static const UINT8 dkgenm72_code[96] = {
- 0xea,0x3d,0x00,0x00,0x10 // jmp 1000:$003d
-};
-
-static const UINT8 dkgenm72_crc[18] = {
- 0xc8,0xb4,0xdc,0xf8, 0xd3,0xba,0x48,0xed,0x79,0x08,0x1c,0xb3, 0x00,0x00
-};
-
-/* Legend of Hero Tonma */
-static const INT32 loht_sample_offsets[8] = { 7, 0x0000, 0x0020, 0, 0x2c40, 0x4320, 0x7120, 0xb200 };
-
-static const UINT8 loht_code[96] =
-{
- 0x68,0x00,0xa0, // push 0a000h
- 0x1f, // pop ds
- 0xc6,0x06,0x3c,0x38,0x47, // mov [383ch], byte 047h
- 0xc6,0x06,0x3d,0x38,0x47, // mov [383dh], byte 047h
- 0xc6,0x06,0x42,0x38,0x44, // mov [3842h], byte 044h
- 0xc6,0x06,0x43,0x38,0x44, // mov [3843h], byte 044h
- 0x68,0x00,0xb0, // push 0b000h
- 0x1f, // pop ds
- 0xc6,0x06,0x00,0x09,0x49^0xff, // mov [0900h], byte 049h
- 0xc6,0x06,0x00,0x0a,0x49^0xff, // mov [0a00h], byte 049h
- 0xc6,0x06,0x00,0x0b,0x49^0xff, // mov [0b00h], byte 049h
-
- 0x68,0x00,0xd0, // push 0d000h // Japan set only
- 0x1f, // pop ds // Japan set only
- 0xc6,0x06,0x70,0x16,0x57, // mov [1670h], byte 057h // Japan set only - checks this (W) of WARNING
-
- 0xea,0x5d,0x01,0x40,0x00 // jmp 0040:$015d
-};
-
-static const UINT8 loht_crc[18] = {
- 0x39,0x00,0x82,0xae, 0x2c,0x9d,0x4b,0x73,0xfb,0xac,0xd4,0x6d, 0x6d,0x5b,0x77,0xc0, 0x00,0x00
-};
-
-/* Gallop - Armed police Unit */
-static const INT32 gallop_sample_offsets[32] = {
- 31,
- 0x00000, 0x00020, 0x00040, 0x01360, 0x02580, 0x04f20, 0x06240, 0x076e0,
- 0x08660, 0x092a0, 0x09ba0, 0x0a560, 0x0cee0, 0x0de20, 0x0e620, 0x0f1c0,
- 0x10200, 0x10220, 0x10240, 0x11380, 0x12760, 0x12780, 0x127a0, 0x13c40,
- 0x140a0, 0x16760, 0x17e40, 0x18ee0, 0x19f60, 0x1bbc0, 0x1cee0 };
-
-//--------------------------------------------------------------------------------------------------------------------------------------------------
-
-
-static void setvector_callback(INT32 param)
-{
- switch (param)
- {
- case VECTOR_INIT: irqvector = 0xff; break;
- case YM2151_ASSERT: irqvector &= 0xef; break;
- case YM2151_CLEAR: irqvector |= 0x10; break;
- case Z80_ASSERT: irqvector &= 0xdf; break;
- case Z80_CLEAR: irqvector |= 0x20; break;
- }
-
- if (irqvector == 0xff) {
- ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
- } else {
- ZetSetVector(irqvector);
- ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
- }
-}
-
-static void palette_write(INT32 offset, INT32 offset2)
-{
- if (offset & 1) return;
-
- UINT16 *pal = (UINT16*)DrvPalRAM;
- offset = (offset / 2) & 0x00ff;
-
- INT32 offset3 = offset;
- if (offset2) {
- offset3 |= 0x0100;
- pal += 0x1000 / 2;
- }
-
- INT32 r = BURN_ENDIAN_SWAP_INT16(pal[offset + 0x000]) & 0x1f;
- INT32 g = BURN_ENDIAN_SWAP_INT16(pal[offset + 0x200]) & 0x1f;
- INT32 b = BURN_ENDIAN_SWAP_INT16(pal[offset + 0x400]) & 0x1f;
-
- DrvPalette[offset3] = BurnHighCol((r << 3) | (r >> 2), (g << 3) | (g >> 2), (b << 3) | (b >> 2), 0);
-}
-
-UINT8 __fastcall m72_main_read(UINT32 address)
-{
- if ((address & 0xff000) == 0xb0000) {
- return protection_read(address);
- }
-
- return 0;
-}
-
-void __fastcall m72_main_write(UINT32 address, UINT8 data)
-{
- if ((address & 0xff000) == 0xb0000) {
- protection_write(address, data);
- return;
- }
-
- if ((address & 0xff000) == 0xc8000) {
- if (address & 1) data = 0xff;
- DrvPalRAM[(address & 0xdff) | 0x0000] = DrvPalRAM[(address & 0xdff) | 0x0200] = data | 0xe0;
- palette_write(address, 0);
- return;
- }
-
- if ((address & 0xff000) == 0xcc000) {
- if (address & 1) data = 0xff;
- DrvPalRAM[(address & 0xdff) | 0x1000] = DrvPalRAM[(address & 0xdff) | 0x1200] = data | 0xe0;
- palette_write(address, 1);
- return;
- }
-}
-
-void __fastcall rtype2_main_write(UINT32 address, UINT8 data)
-{
- if ((address & 0xff000) == 0xc8000 || (address & 0xff000) == 0xa0000 || (address & 0xff000) == 0xcc000) {
- if (address & 1) data = 0xff;
- DrvPalRAM[(address & 0xdff) | 0x0000] = DrvPalRAM[(address & 0xdff) | 0x0200] = data | 0xe0;
- palette_write(address, 0);
- return;
- }
-
- if ((address & 0xff000) == 0xd8000 || (address & 0xff000) == 0xa8000 || (address & 0xff000) == 0xa4000) {
- if (address & 1) data = 0xff;
- DrvPalRAM[(address & 0xdff) | 0x1000] = DrvPalRAM[(address & 0xdff) | 0x1200] = data | 0xe0;
- palette_write(address, 1);
- return;
- }
-
- switch (address)
- {
- case 0xb0000:
- case 0xe0000: // majtitle
- irq_raster_position = (irq_raster_position & 0xff00) | (data << 0);
- return;
-
- case 0xb0001:
- case 0xe0001: // majtitle
- irq_raster_position = (irq_raster_position & 0x00ff) | (data << 8);
- return;
-
- case 0xbc000:
- // case 0xbc001:
- case 0xec000: // majtitle
- // case 0xec001:
- memcpy (DrvSprBuf, DrvSprRAM, 0x0400);
- return;
- }
-}
-
-void __fastcall m72_main_write_port(UINT32 port, UINT8 data)
-{
-// bprintf (0, _T("%2.2x, %2.2x wp\n"), port, data);
-
- switch (port)
- {
- case 0x00:
- *soundlatch = data;
- setvector_callback(Z80_ASSERT);
- return;
-
- case 0x01:
- return;
-
- case 0x02:
-// case 0x03:
- {
- // coin counter = data & 3 (&1 = 0, &2 = 1)
- // flipscreen = ((data & 0x04) >> 2) ^ ((~input_port_read(space->machine, "DSW") >> 8) & 1);
-
- video_disable[0] = data & 0x08;
-
- if (enable_z80_reset) {
- if (data & 0x10) {
- z80_reset = 0;
- } else if (!z80_reset) { // don't reset it if its already resetting - fixes BGM in airduel -dink
- ZetReset();
- setvector_callback(VECTOR_INIT);
- z80_reset = 1;
- }
- }
- }
- return;
-
- case 0x04:
- case 0x05:
- memcpy (DrvSprBuf, DrvSprRAM, 0x0400);
- return;
-
- case 0x06:
- irq_raster_position = (irq_raster_position & 0xff00) | (data << 0);
- return;
-
- case 0x07:
- irq_raster_position = (irq_raster_position & 0x00ff) | (data << 8);
- return;
-
- case 0x40:
- case 0x41:
- case 0x43: // nop
- return;
-
- case 0x42:
- if (m72_irq_base == 0) {
- m72_irq_base = data << 2;
- //bprintf(0, _T("irq base vector %X.\n"), m72_irq_base);
- }
- return;
-
- case 0x80:
- case 0x81:// scrolly1
- case 0x82:
- case 0x83:// scrollx1
- case 0x84:
- case 0x85:// scrolly2
- case 0x86:
- case 0x87:// scrollx2
- scroll[port & 0x07] = data;
- return;
-
- // case 0x8e:
- case 0x8f:
- majtitle_rowscroll_enable = data ? 1 : 0;
- return;
-
- case 0xc0:
- protection_sample_offset_write(data);
- return;
- }
-}
-
-static UINT16 __fastcall poundfor_trackball_r(INT32 offset)
-{
- static INT32 prev[4],diff[4];
-// static const char *const axisnames[] = { "TRACK0_X", "TRACK0_Y", "TRACK1_X", "TRACK1_Y" };
-
-#if 0
- if (offset == 0)
- {
- INT32 i,curr;
-
- for (i = 0;i < 4;i++)
- {
- curr = input_port_read(space->machine, axisnames[i]);
- diff[i] = (curr - prev[i]);
- prev[i] = curr;
- }
- }
-#endif
- prev[0] = 0;
- diff[0] = diff[1] = diff[2] = diff[3] = ~0;
- INT32 input = DrvInputs[0] | (DrvInputs[3] << 8);
-
- switch (offset)
- {
- default:
- case 0:
- return (diff[0] & 0xff) | ((diff[2] & 0xff) << 8);
- case 1:
- return ((diff[0] >> 8) & 0x1f) | (diff[2] & 0x1f00) | (~input & 0xe0e0);
- case 2:
- return (diff[1] & 0xff) | ((diff[3] & 0xff) << 8);
- case 3:
- return ((diff[1] >> 8) & 0x1f) | (diff[3] & 0x1f00);
- }
-
- return 0;
-}
-
-UINT8 __fastcall m72_main_read_port(UINT32 port)
-{
- switch (port)
- {
- case 0x00: return DrvInputs[0];
- case 0x01: return DrvInputs[1];
- case 0x02: return DrvInputs[2];
- case 0x03: return 0xff;
- case 0x04: return DrvDips[0];
- case 0x05: return DrvDips[1];
- }
-
- if ((port & 0xf8) == 0x08) {
- INT32 ret = poundfor_trackball_r((port / 2) & 0x03);
- if (port & 1) return ret >> 8;
- else return ret;
- }
-
- return 0;
-}
-
-void __fastcall m72_sound_write_port(UINT16 port, UINT8 data)
-{
- switch (port & 0xff)
- {
- case 0x00:
- case 0x40: // poundfor
- BurnYM2151SelectRegister(data);
- return;
-
- case 0x01:
- case 0x41: // poundfor
- BurnYM2151WriteRegister(data);
- return;
-
- case 0x06:
- case 0x42: // poundfor
- case 0x83: // rtype2
- setvector_callback(Z80_CLEAR);
- return;
-
- case 0x10: // poundfor
- case 0x11:
- sample_address >>= 4;
- sample_address = (sample_address & 0xff00) | (data << 0);
- sample_address <<= 4;
- return;
-
- case 0x12:
- case 0x13: // poundfor
- sample_address >>= 4;
- sample_address = (sample_address & 0x00ff) | (data << 8);
- sample_address <<= 4;
- return;
-
- case 0x80: // rtype2
- sample_address >>= 5;
- sample_address = (sample_address & 0xff00) | (data << 0);
- sample_address <<= 5;
- return;
-
- case 0x81: // rtype2
- sample_address >>= 5;
- sample_address = (sample_address & 0x00ff) | (data << 8);
- sample_address <<= 5;
- return;
-
- case 0x82:
- DACSignedWrite(0, data);
- sample_address = (sample_address + 1) & 0x3ffff;
- if (!DrvSndROM[sample_address]) {
- DACWrite(0, 0); // clear dac @ end of sample, fixes distortion in rtype2 level4 after death while also killing an air-tank
- }
- return;
- }
-}
-
-UINT8 __fastcall m72_sound_read_port(UINT16 port)
-{
- switch (port & 0xff)
- {
- case 0x00:
- case 0x01:
- case 0x40: // poundfor
- case 0x41: // poundfor
- return BurnYM2151ReadStatus();
-
- case 0x80: // rtype2
- case 0x42: // poundfor
- case 0x02:
- return *soundlatch;
-
- case 0x84:
- return DrvSndROM[sample_address & 0x3ffff];
- }
-
- return 0;
-}
-
-static void m72YM2151IRQHandler(INT32 nStatus)
-{
- setvector_callback(nStatus ? YM2151_ASSERT : YM2151_CLEAR);
-}
-
-static INT32 m72SyncDAC()
-{ // Note: the FPS is 55, but when calculating the sync, we use 4 less FPS - this gets rid of clicks in the sample output. -dink dec. 2, 2014
- return (INT32)(float)(nBurnSoundLen * (ZetTotalCycles() / (3579545.000 / 51/*(nBurnFPS / 100.000)*/)));
-}
-
-static INT32 DrvDoReset()
-{
- memset (AllRam, 0, RamEnd - AllRam);
-
- VezOpen(0);
- VezReset();
- VezClose();
-
- ZetOpen(0);
- ZetReset();
- setvector_callback(VECTOR_INIT);
- if (enable_z80_reset) {
- z80_reset = 1;
- }
- ZetClose();
-
- BurnYM2151Reset();
- DACReset();
-
- ym2151_previous = 0;
- sample_address = 0;
- irq_raster_position = -1;
- if (!CosmicCop) m72_irq_base = 0;
-
- return 0;
-}
-
-static void common_main_cpu_map(INT32 romaddr, INT32 ramaddr)
-{
- VezInit(0, V30_TYPE);
-
- VezOpen(0);
- VezMapArea(0x00000, (romaddr-1), 0, DrvV30ROM + 0x000000);
- VezMapArea(0x00000, (romaddr-1), 2, DrvV30ROM + 0x000000);
- VezMapArea(0x00000+ramaddr, 0x03fff+ramaddr, 0, DrvV30RAM);
- VezMapArea(0x00000+ramaddr, 0x03fff+ramaddr, 1, DrvV30RAM);
- VezMapArea(0x00000+ramaddr, 0x03fff+ramaddr, 2, DrvV30RAM);
-// VezMapArea(0xb0000, 0xb0fff, 2, DrvProtRAM);
- VezMapArea(0xc0000, 0xc0fff, 0, DrvSprRAM);
- VezMapArea(0xc0000, 0xc0fff, 1, DrvSprRAM);
- VezMapArea(0xc0000, 0xc0fff, 2, DrvSprRAM);
- VezMapArea(0xc8000, 0xc8fff, 0, DrvPalRAM);
-// VezMapArea(0xc8000, 0xc8fff, 1, DrvPalRAM);
- VezMapArea(0xc8000, 0xc8fff, 2, DrvPalRAM);
- VezMapArea(0xcc000, 0xccfff, 0, DrvPalRAM + 0x1000);
-// VezMapArea(0xcc000, 0xccfff, 1, DrvPalRAM + 0x1000);
- VezMapArea(0xcc000, 0xccfff, 2, DrvPalRAM + 0x1000);
- VezMapArea(0xd0000, 0xd3fff, 0, DrvVidRAM0);
- VezMapArea(0xd0000, 0xd3fff, 1, DrvVidRAM0);
- VezMapArea(0xd0000, 0xd3fff, 2, DrvVidRAM0);
- VezMapArea(0xd8000, 0xdbfff, 0, DrvVidRAM1);
- VezMapArea(0xd8000, 0xdbfff, 1, DrvVidRAM1);
- VezMapArea(0xd8000, 0xdbfff, 2, DrvVidRAM1);
- VezMapArea(0xe0000, 0xeffff, 0, DrvZ80RAM);
- VezMapArea(0xe0000, 0xeffff, 1, DrvZ80RAM);
- VezMapArea(0xe0000, 0xeffff, 2, DrvZ80RAM);
- VezMapArea(0xff800, 0xfffff, 0, DrvV30ROM + 0x0ff800);
- VezMapArea(0xff800, 0xfffff, 2, DrvV30ROM + 0x0ff800);
- VezSetReadHandler(m72_main_read);
- VezSetWriteHandler(m72_main_write);
- VezSetReadPort(m72_main_read_port);
- VezSetWritePort(m72_main_write_port);
- VezClose();
-}
-
-static void common_040000_040000() { common_main_cpu_map(0x40000, 0x40000); }
-static void common_080000_080000() { common_main_cpu_map(0x80000, 0x80000); }
-static void common_080000_088000() { common_main_cpu_map(0x80000, 0x88000); }
-static void common_080000_090000() { common_main_cpu_map(0x80000, 0x90000); }
-static void common_080000_09c000() { common_main_cpu_map(0x80000, 0x9c000); }
-static void common_080000_0a0000() { common_main_cpu_map(0x80000, 0xa0000); }
-
-static void rtype2_main_cpu_map()
-{
- VezInit(0, V30_TYPE);
-
- VezOpen(0);
- VezMapArea(0x00000, 0x7ffff, 0, DrvV30ROM + 0x000000);
- VezMapArea(0x00000, 0x7ffff, 2, DrvV30ROM + 0x000000);
- VezMapArea(0xc0000, 0xc0fff, 0, DrvSprRAM);
- VezMapArea(0xc0000, 0xc0fff, 1, DrvSprRAM);
- VezMapArea(0xc0000, 0xc0fff, 2, DrvSprRAM);
- VezMapArea(0xc8000, 0xc8fff, 0, DrvPalRAM);
-// VezMapArea(0xc8000, 0xc8fff, 1, DrvPalRAM);
- VezMapArea(0xc8000, 0xc8fff, 2, DrvPalRAM);
- VezMapArea(0xd0000, 0xd3fff, 0, DrvVidRAM0);
- VezMapArea(0xd0000, 0xd3fff, 1, DrvVidRAM0);
- VezMapArea(0xd0000, 0xd3fff, 2, DrvVidRAM0);
- VezMapArea(0xd4000, 0xd7fff, 0, DrvVidRAM1);
- VezMapArea(0xd4000, 0xd7fff, 1, DrvVidRAM1);
- VezMapArea(0xd4000, 0xd7fff, 2, DrvVidRAM1);
- VezMapArea(0xd8000, 0xd8fff, 0, DrvPalRAM + 0x1000);
-// VezMapArea(0xd8000, 0xd8fff, 1, DrvPalRAM + 0x1000);
- VezMapArea(0xd8000, 0xd8fff, 2, DrvPalRAM + 0x1000);
- VezMapArea(0xe0000, 0xe3fff, 0, DrvV30RAM);
- VezMapArea(0xe0000, 0xe3fff, 1, DrvV30RAM);
- VezMapArea(0xe0000, 0xe3fff, 2, DrvV30RAM);
- VezMapArea(0xff800, 0xfffff, 0, DrvV30ROM + 0x0ff800);
- VezMapArea(0xff800, 0xfffff, 2, DrvV30ROM + 0x0ff800);
- VezSetReadHandler(m72_main_read);
- VezSetWriteHandler(rtype2_main_write);
- VezSetReadPort(m72_main_read_port);
- VezSetWritePort(m72_main_write_port);
- VezClose();
-}
-
-static void hharryu_main_cpu_map()
-{
- VezInit(0, V35_TYPE);
-
- VezOpen(0);
- VezMapArea(0x00000, 0x7ffff, 0, DrvV30ROM + 0x000000);
- VezMapArea(0x00000, 0x7ffff, 2, DrvV30ROM + 0x000000);
- VezMapArea(0x80000, 0x83fff, 0, DrvVidRAM0); // kengo
- VezMapArea(0x80000, 0x83fff, 1, DrvVidRAM0);
- VezMapArea(0x80000, 0x83fff, 2, DrvVidRAM0);
- VezMapArea(0x84000, 0x87fff, 0, DrvVidRAM1); // kengo
- VezMapArea(0x84000, 0x87fff, 1, DrvVidRAM1);
- VezMapArea(0x84000, 0x87fff, 2, DrvVidRAM1);
- VezMapArea(0xa0000, 0xa0fff, 0, DrvPalRAM);
-// VezMapArea(0xa0000, 0xa0fff, 1, DrvPalRAM);
- VezMapArea(0xa0000, 0xa0fff, 2, DrvPalRAM);
- VezMapArea(0xa8000, 0xa8fff, 0, DrvPalRAM + 0x1000);
-// VezMapArea(0xa8000, 0xa8fff, 1, DrvPalRAM + 0x1000);
- VezMapArea(0xa8000, 0xa8fff, 2, DrvPalRAM + 0x1000);
- VezMapArea(0xc0000, 0xc0fff, 0, DrvSprRAM);
- VezMapArea(0xc0000, 0xc0fff, 1, DrvSprRAM);
- VezMapArea(0xc0000, 0xc0fff, 2, DrvSprRAM);
- VezMapArea(0xd0000, 0xd3fff, 0, DrvVidRAM0);
- VezMapArea(0xd0000, 0xd3fff, 1, DrvVidRAM0);
- VezMapArea(0xd0000, 0xd3fff, 2, DrvVidRAM0);
- VezMapArea(0xd4000, 0xd7fff, 0, DrvVidRAM1);
- VezMapArea(0xd4000, 0xd7fff, 1, DrvVidRAM1);
- VezMapArea(0xd4000, 0xd7fff, 2, DrvVidRAM1);
- VezMapArea(0xe0000, 0xe3fff, 0, DrvV30RAM);
- VezMapArea(0xe0000, 0xe3fff, 1, DrvV30RAM);
- VezMapArea(0xe0000, 0xe3fff, 2, DrvV30RAM);
- VezMapArea(0xff800, 0xfffff, 0, DrvV30ROM + 0x0ff800);
- VezMapArea(0xff800, 0xfffff, 2, DrvV30ROM + 0x0ff800);
- VezSetReadHandler(m72_main_read);
- VezSetWriteHandler(rtype2_main_write);
- VezSetReadPort(m72_main_read_port);
- VezSetWritePort(m72_main_write_port);
- VezClose();
-}
-
-static void majtitle_main_cpu_map()
-{
- VezInit(0, V30_TYPE);
-
- VezOpen(0);
- VezMapArea(0x00000, 0x7ffff, 0, DrvV30ROM + 0x000000);
- VezMapArea(0x00000, 0x7ffff, 2, DrvV30ROM + 0x000000);
- VezMapArea(0xa0000, 0xa07ff, 0, DrvRowScroll);
- VezMapArea(0xa0000, 0xa07ff, 1, DrvRowScroll);
- VezMapArea(0xa0000, 0xa07ff, 2, DrvRowScroll);
- VezMapArea(0xa4000, 0xa4fff, 0, DrvPalRAM + 0x1000);
-// VezMapArea(0xa4000, 0xa4fff, 1, DrvPalRAM + 0x1000);
- VezMapArea(0xa4000, 0xa4fff, 2, DrvPalRAM + 0x1000);
- VezMapArea(0xac000, 0xaffff, 0, DrvVidRAM0);
- VezMapArea(0xac000, 0xaffff, 1, DrvVidRAM0);
- VezMapArea(0xac000, 0xaffff, 2, DrvVidRAM0);
- VezMapArea(0xb0000, 0xbffff, 0, DrvVidRAM1);
- VezMapArea(0xb0000, 0xbffff, 1, DrvVidRAM1);
- VezMapArea(0xb0000, 0xbffff, 2, DrvVidRAM1);
- VezMapArea(0xc0000, 0xc07ff, 0, DrvSprRAM);
- VezMapArea(0xc0000, 0xc07ff, 1, DrvSprRAM);
- VezMapArea(0xc0000, 0xc07ff, 2, DrvSprRAM);
- VezMapArea(0xc8000, 0xc87ff, 0, DrvSprRAM2);
- VezMapArea(0xc8000, 0xc87ff, 1, DrvSprRAM2);
- VezMapArea(0xc8000, 0xc87ff, 2, DrvSprRAM2);
- VezMapArea(0xcc000, 0xccfff, 0, DrvPalRAM);
-// VezMapArea(0xcc000, 0xccfff, 1, DrvPalRAM);
- VezMapArea(0xcc000, 0xccfff, 2, DrvPalRAM);
- VezMapArea(0xd0000, 0xd3fff, 0, DrvV30RAM);
- VezMapArea(0xd0000, 0xd3fff, 1, DrvV30RAM);
- VezMapArea(0xd0000, 0xd3fff, 2, DrvV30RAM);
- VezMapArea(0xff800, 0xfffff, 0, DrvV30ROM + 0x0ff800);
- VezMapArea(0xff800, 0xfffff, 2, DrvV30ROM + 0x0ff800);
- VezSetReadHandler(m72_main_read);
- VezSetWriteHandler(rtype2_main_write);
- VezSetReadPort(m72_main_read_port);
- VezSetWritePort(m72_main_write_port);
- VezClose();
-}
-
-static void sound_ram_map()
-{
- ZetInit(0);
- ZetOpen(0);
- ZetMapArea(0x0000, 0xffff, 0, DrvZ80RAM);
- ZetMapArea(0x0000, 0xffff, 1, DrvZ80RAM);
- ZetMapArea(0x0000, 0xffff, 2, DrvZ80RAM);
- ZetSetOutHandler(m72_sound_write_port);
- ZetSetInHandler(m72_sound_read_port);
- ZetClose();
-
- enable_z80_reset = 1;
-}
-
-static void sound_rom_map()
-{
- ZetInit(0);
- ZetOpen(0);
- ZetMapArea(0x0000, 0xefff, 0, DrvZ80ROM);
- ZetMapArea(0x0000, 0xefff, 2, DrvZ80ROM);
- ZetMapArea(0xf000, 0xffff, 0, DrvZ80RAM);
- ZetMapArea(0xf000, 0xffff, 1, DrvZ80RAM);
- ZetMapArea(0xf000, 0xffff, 2, DrvZ80RAM);
- ZetSetOutHandler(m72_sound_write_port);
- ZetSetInHandler(m72_sound_read_port);
- ZetClose();
-
- enable_z80_reset = 0;
-}
-
-static INT32 DrvGfxDecode(UINT8 *gfx, INT32 len, INT32 type)
-{
- INT32 Planes[4] = { ((len / 4) * 8) * 3, ((len / 4) * 8) * 2, ((len / 4) * 8) * 1, ((len / 4) * 8) * 0 };
- INT32 XOffs[16] = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87 };
- INT32 YOffs[16] = { 0x00, 0x08, 0x10, 0x18, 0x20, 0x28, 0x30, 0x38, 0x40, 0x48, 0x50, 0x58, 0x60, 0x68, 0x70, 0x78 };
-
- UINT8 *tmp = (UINT8*)BurnMalloc(len);
- if (tmp == NULL) {
- return 1;
- }
-
- memcpy (tmp, gfx, len);
-
- if (type) {
- GfxDecode((len * 2) / ( 8 * 8), 4, 8, 8, Planes, XOffs, YOffs, 0x040, tmp, gfx);
- } else {
- GfxDecode((len * 2) / (16 * 16), 4, 16, 16, Planes, XOffs, YOffs, 0x100, tmp, gfx);
- }
-
- BurnFree (tmp);
-
- return 0;
-}
-
-static INT32 GetRoms(INT32 bLoad)
-{
- char* pRomName;
- struct BurnRomInfo ri;
- UINT8 *V30ROM = DrvV30ROM;
- UINT8 *Z80ROM = DrvZ80ROM;
- UINT8 *GFXROM0 = DrvGfxROM0;
- UINT8 *GFXROM1 = DrvGfxROM1;
- UINT8 *GFXROM2 = DrvGfxROM2;
- UINT8 *GFXROM3 = DrvGfxROM3;
- UINT8 *SNDROM = DrvSndROM;
- INT32 pglen = 0;
-
- for (INT32 i = 0; !BurnDrvGetRomName(&pRomName, i, 0); i++) {
-
- BurnDrvGetRomInfo(&ri, i);
-
- if ((ri.nType & 15) == 1) {
- if (bLoad) {
- if (BurnLoadRom(V30ROM + 1, i + 0, 2)) return 1;
- if (BurnLoadRom(V30ROM + 0, i + 1, 2)) return 1;
- }
- V30ROM += ri.nLen * 2;
- i++;
- continue;
- }
-
- if ((ri.nType & 15) == 6) {
- if (bLoad) if (BurnLoadRom(Z80ROM , i, 1)) return 1;
- Z80ROM += ri.nLen;
- continue;
- }
-
- if ((ri.nType & 15) == 2) {
- if (bLoad) if (BurnLoadRom(GFXROM0, i, 1)) return 1;
- GFXROM0 += ri.nLen;
-
- if (pglen == 0x10000 && ri.nLen == 0x8000) { // rtype fix
- if (bLoad) if (BurnLoadRom(GFXROM0, i, 1)) return 1;
- GFXROM0 += ri.nLen;
- }
- pglen = ri.nLen;
- continue;
- }
-
- if ((ri.nType & 15) == 3) {
- if (bLoad) if (BurnLoadRom(GFXROM1, i, 1)) return 1;
- GFXROM1 += ri.nLen;
- continue;
- }
-
- if ((ri.nType & 15) == 4) {
- if (bLoad) if (BurnLoadRom(GFXROM2, i, 1)) return 1;
- GFXROM2 += ri.nLen;
- continue;
- }
-
- if ((ri.nType & 15) == 14) {
- if (bLoad) if (BurnLoadRom(GFXROM3, i, 1)) return 1;
- GFXROM3 += ri.nLen;
- continue;
- }
-
- if ((ri.nType & 15) == 5) {
- if (bLoad) if (BurnLoadRom(SNDROM , i, 1)) return 1;
- SNDROM += ri.nLen;
- continue;
- }
- }
-
- if (bLoad) {
- // copy irq vectors
- memcpy (DrvV30ROM + 0xffff0, V30ROM - 0x10, 0x010);
-
- // mirror sound rom
- INT32 sndlen = SNDROM - DrvSndROM;
- if (sndlen < 0x40000 && sndlen) {
- for (INT32 i = 0; i < 0x40000; i++) {
- DrvSndROM[i] = DrvSndROM[i % sndlen];
- }
- }
-
- DrvGfxDecode(DrvGfxROM0, graphics_length[0], 0);
- DrvGfxDecode(DrvGfxROM1, graphics_length[1], 1);
-
- if (graphics_length[2] > 2) {
- DrvGfxDecode(DrvGfxROM2, graphics_length[2], 1);
- } else {
- DrvGfxROM2 = DrvGfxROM1;
- code_mask[2] = code_mask[1];
- }
-
- if (graphics_length[3] > 2) {
- DrvGfxDecode(DrvGfxROM3, graphics_length[3], 0);
- } else {
- code_mask[3] = 0;
- }
- } else {
- graphics_length[0] = GFXROM0 - DrvGfxROM0;
- graphics_length[1] = GFXROM1 - DrvGfxROM1;
- graphics_length[2] = GFXROM2 - DrvGfxROM2;
- graphics_length[3] = GFXROM3 - DrvGfxROM3;
-
- for (INT32 i = 1, j = 0; j < 4; graphics_length[j] = i, j++, i = 1) {
- while (i < graphics_length[j]) i <<= 1;
- }
-
- code_mask[0] = ((graphics_length[0] * 2) - 1) / (16 * 16);
- code_mask[1] = ((graphics_length[1] * 2) - 1) / (8 * 8);
- code_mask[2] = ((graphics_length[2] * 2) - 1) / (8 * 8);
- code_mask[3] = ((graphics_length[3] * 2) - 1) / (16 * 16);
- }
-
- return 0;
-}
-
-static INT32 MemIndex()
-{
- UINT8 *Next; Next = AllMem;
-
- DrvV30ROM = Next; Next += 0x200000;
- DrvZ80ROM = Next; Next += 0x010000;
- DrvGfxROM0 = Next; Next += graphics_length[0] * 2;
- DrvGfxROM1 = Next; Next += graphics_length[1] * 2;
- DrvGfxROM2 = Next; Next += graphics_length[2] * 2;
- DrvGfxROM3 = Next; Next += graphics_length[3] * 2;
- DrvSndROM = Next; Next += 0x040000;
-
- RamPrioBitmap = Next; Next += nScreenWidth * nScreenHeight;
-
- AllRam = Next;
-
- DrvZ80RAM = Next; Next += 0x010000;
- DrvSprRAM = Next; Next += 0x001000;
- DrvSprRAM2 = Next; Next += 0x000800;
- DrvSprBuf = Next; Next += 0x001000;
- DrvVidRAM0 = Next; Next += 0x004000;
- DrvVidRAM1 = Next; Next += 0x010000;
- DrvV30RAM = Next; Next += 0x004000;
- DrvPalRAM = Next; Next += 0x002000;
- DrvProtRAM = Next; Next += 0x001000;
- DrvRowScroll = Next; Next += 0x000800;
-
- soundlatch = Next; Next += 0x000004; // 1
- video_disable = Next; Next += 0x000004; // 1
-
- scroll = Next; Next += 0x000008;
-
- RamEnd = Next;
-
- DrvPalette = (UINT32 *) Next; Next += 0x200 * sizeof(UINT32);
-
- MemEnd = Next;
-
- return 0;
-}
-
-
-static INT32 DrvInit(void (*pCPUMapCallback)(), void (*pSNDMapCallback)(), INT32 (*pRomLoadCallback)(), INT32 z80_nmi, INT32 video_type)
-{
- BurnSetRefreshRate(55.00);
-
- GenericTilesInit();
-
- GetRoms(0);
-
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- if (GetRoms(1)) return 1;
-
- if (pCPUMapCallback) {
- pCPUMapCallback();
- }
-
- if (pSNDMapCallback) {
- pSNDMapCallback();
- }
-
- if (pRomLoadCallback) {
- if (pRomLoadCallback()) return 1;
- }
-
- m72_irq_base = 0; // set by port 42. (programmable interrupt controller)
- z80_nmi_enable = z80_nmi;
- m72_video_type = video_type;
-
- switch (video_type)
- {
- case 0: // m72
- video_offsets[0] = video_offsets[1] = 0;
- break;
-
- case 1: // rtype
- case 3: // majtitle
- video_offsets[0] = video_offsets[1] = -4;
- break;
-
- case 2: // hharry, xmultipl
- case 7: // cosmccop (layer offsets of type 2, flipxy of type 1)
- video_offsets[0] = -4;
- video_offsets[1] = -6;
- if (video_type == 7) m72_video_type = 1; // cosmccop: diff flipx/y handling in draw_layer()
- break;
-
- case 4: // poundfor
- video_offsets[0] = video_offsets[1] = -6;
- m72_video_type = 1; // rtype
- break;
-
- case 5: // kengo
- video_offsets[0] = -3;
- video_offsets[1] = -6;
- m72_video_type = 1; // rtype
- break;
-
- case 6: // airduel m82
- video_offsets[0] = video_offsets[1] = -6;
- m72_video_type = 1; // rtype
- break;
- }
-
- BurnYM2151Init(3579545);
- YM2151SetIrqHandler(0, &m72YM2151IRQHandler);
- BurnYM2151SetRoute(BURN_SND_YM2151_YM2151_ROUTE_1, 1.00, BURN_SND_ROUTE_LEFT);
- BurnYM2151SetRoute(BURN_SND_YM2151_YM2151_ROUTE_2, 1.00, BURN_SND_ROUTE_RIGHT);
-
- DACInit(0, 0, 1, m72SyncDAC);
- DACSetRoute(0, 0.40, BURN_SND_ROUTE_BOTH);
-
- DrvDoReset();
-
- return 0;
-}
-
-static INT32 DrvExit()
-{
- GenericTilesExit();
-
- BurnYM2151Exit();
- DACExit();
-
- ZetExit();
- VezExit();
-
- BurnFree(AllMem);
-
- m72_video_type = 0;
- enable_z80_reset = 0;
- z80_nmi_enable = 0;
- m72_irq_base = 0;
- Kengo = 0;
- CosmicCop = 0;
- Clock_16mhz = 0;
-
- m72_install_protection(NULL,NULL,NULL);
-
- video_offsets[0] = video_offsets[1] = 0;
-
- return 0;
-}
-
-static void draw_layer(INT32 layer, INT32 forcelayer, INT32 type, INT32 start, INT32 finish) // bg = layer 1, fg = layer 0
-{
- INT32 codeand = code_mask[1+layer];
- UINT16 *vram = (UINT16*)(layer ? DrvVidRAM1 : DrvVidRAM0);
- UINT8 *gfx = (layer) ? DrvGfxROM2 : DrvGfxROM1;
-
- // layer, prio, forcelayer
- const UINT16 transmask[2][3][2] = {
- { { 0xffff, 0x0001 }, { 0x00ff, 0xff01 }, { 0x0001, 0xffff } },
- { { 0xffff, 0x0000 }, { 0x00ff, 0xff00 }, { (type == 0) ? (const UINT16)0x0007 : (const UINT16)0x0001, (type == 0) ? (const UINT16)0xfff8 : (const UINT16)0xfffe } }
- };
-
- INT32 scrolly = scroll[layer * 4 + 0] | (scroll[layer * 4 + 1] << 8);
- INT32 scrollx = scroll[layer * 4 + 2] | (scroll[layer * 4 + 3] << 8);
-
- scrolly = (scrolly + 128) & 0x1ff;
- scrollx = (scrollx + 64 + video_offsets[layer]) & 0x1ff;
-
- UINT16 *xscroll = (UINT16*)DrvRowScroll;
-
- for (INT32 sy = start; sy < finish; sy++)
- {
- UINT16 *dest = pTransDraw + (sy * nScreenWidth);
- UINT8 *pri = RamPrioBitmap + (sy * nScreenWidth);
-
- INT32 scrolly1 = (scrolly + sy) & 0x1ff;
- INT32 romoff1 = (scrolly1 & 0x07) << 3;
-
- for (INT32 sx = 0; sx < nScreenWidth + 8; sx+=8)
- {
- INT32 flipy, flipx, prio, scrollx1, offs;
-
- if (majtitle_rowscroll_enable && type == 3 && layer == 1) {
- scrollx1 = 256 + BURN_ENDIAN_SWAP_INT16(xscroll[scrolly1]) + sx + 64 + video_offsets[1];
- } else {
- scrollx1 = scrollx + sx;
- if (type == 3 && layer == 1) scrollx1 += 256;
- }
-
- if (type == 3 && layer == 1) {
- scrollx1 &= 0x3ff;
- offs = ((scrolly1 >> 3) << 8) | (scrollx1 >> 3);
- } else {
- scrollx1 &= 0x1ff;
- offs = ((scrolly1 >> 3) << 6) | (scrollx1 >> 3);
- }
-
- INT32 code = BURN_ENDIAN_SWAP_INT16(vram[offs * 2 + 0]);
- INT32 color = BURN_ENDIAN_SWAP_INT16(vram[offs * 2 + 1]);
-
- if (type == 1 || type == 3) {
- flipy = color & 0x0040;
- flipx = color & 0x0020;
- prio = (color & 0x0100) ? 2 : (color & 0x80) ? 1 : 0;
- } else {
- flipy = code & 0x8000;
- flipx = code & 0x4000;
- prio = (color & 0x80) ? 2 : ((color & 0x40) ? 1 : 0);
- }
-
- INT32 mask = transmask[layer][prio][forcelayer];
-
- code &= codeand;
- color = ((color & 0x000f) << 4) | 0x100;
- prio = 1 << prio;
-
- {
- INT32 scrollx0 = scrollx1 & 0x07;
- INT32 x_xor = 0;
- INT32 romoff = romoff1;
- if (flipy) romoff ^= 0x38;
- if (flipx) x_xor = 7;
-
- UINT8 *rom = gfx + (code * 0x40) + romoff;
-
- INT32 xx = sx - scrollx0;
-
- for (INT32 x = 0; x < 8; x++, xx++) {
- if (xx < 0 || xx >= nScreenWidth) continue;
-
- INT32 pxl = rom[x ^ x_xor];
- if (mask & (1 << pxl)) continue;
-
- dest[xx] = pxl | color;
- pri[xx] = prio;
- }
- }
- }
- }
-}
-
-static void draw_sprites()
-{
- UINT16 *sprram = (UINT16*)DrvSprBuf;
-
- for (INT32 offs = 0; offs < 0x400/2;)
- {
- INT32 sx = -256+(BURN_ENDIAN_SWAP_INT16(sprram[offs+3]) & 0x3ff);
- INT32 attr = BURN_ENDIAN_SWAP_INT16(sprram[offs+2]);
- INT32 code = BURN_ENDIAN_SWAP_INT16(sprram[offs+1]);
- INT32 sy = 384-(BURN_ENDIAN_SWAP_INT16(sprram[offs+0]) & 0x1ff);
-
- INT32 color = attr & 0x0f;
- INT32 flipx = attr & 0x0800;
- INT32 flipy = attr & 0x0400;
-
- INT32 w = 1 << ((attr & 0xc000) >> 14);
- INT32 h = 1 << ((attr & 0x3000) >> 12);
- sy -= 16 * h;
-
- sx -= 64; // ?
-#if 0
- if (*flipscreen)
- {
- sx = 512 - 16*w - sx;
- sy = 284 - 16*h - sy;
- flipx = !flipx;
- flipy = !flipy;
- }
-#endif
-
- for (INT32 x = 0;x < w;x++)
- {
- for (INT32 y = 0;y < h;y++)
- {
- INT32 c = code;
-
- if (flipx) c += 8*(w-1-x);
- else c += 8*x;
- if (flipy) c += h-1-y;
- else c += y;
-
- c &= code_mask[0];
-
- INT32 xx = sx + 16 * x;
- INT32 yy = sy + 16 * y;
-
- if (xx < -15 || yy < -15 || xx >= nScreenWidth || yy >= nScreenHeight) continue;
-
- if (flipy) {
- if (flipx) {
- Render16x16Tile_Mask_FlipXY_Clip(pTransDraw, c, xx, yy, color, 4, 0, 0, DrvGfxROM0);
- } else {
- Render16x16Tile_Mask_FlipY_Clip(pTransDraw, c, xx, yy, color, 4, 0, 0, DrvGfxROM0);
- }
- } else {
- if (flipx) {
- Render16x16Tile_Mask_FlipX_Clip(pTransDraw, c, xx, yy, color, 4, 0, 0, DrvGfxROM0);
- } else {
- Render16x16Tile_Mask_Clip(pTransDraw, c, xx, yy, color, 4, 0, 0, DrvGfxROM0);
- }
- }
- }
- }
-
- offs += w*4;
- }
-}
-
-static void majtitle_draw_sprites()
-{
- UINT16 *spriteram16_2 = (UINT16*)DrvSprRAM2;
-
- for (INT32 offs = 0; offs < 0x400; offs += 4)
- {
- INT32 code,color,sx,sy,flipx,flipy,w,h,x,y;
-
- code = BURN_ENDIAN_SWAP_INT16(spriteram16_2[offs+1]);
- color = BURN_ENDIAN_SWAP_INT16(spriteram16_2[offs+2]) & 0x0f;
- sx = -256+(BURN_ENDIAN_SWAP_INT16(spriteram16_2[offs+3]) & 0x3ff);
- sy = 384-(BURN_ENDIAN_SWAP_INT16(spriteram16_2[offs+0]) & 0x1ff);
- flipx = BURN_ENDIAN_SWAP_INT16(spriteram16_2[offs+2]) & 0x0800;
- flipy = BURN_ENDIAN_SWAP_INT16(spriteram16_2[offs+2]) & 0x0400;
-
- w = 1;// << ((spriteram16_2[offs+2] & 0xc000) >> 14);
- h = 1 << ((BURN_ENDIAN_SWAP_INT16(spriteram16_2[offs+2]) & 0x3000) >> 12);
- sy -= 16 * h;
-
- sx -= 64; // ?
-#if 0
- if (flip_screen_get(machine))
- {
- sx = 512 - 16*w - sx;
- sy = 256 - 16*h - sy;
- flipx = !flipx;
- flipy = !flipy;
- }
-#endif
-
- for (x = 0;x < w;x++)
- {
- for (y = 0;y < h;y++)
- {
- INT32 c = code;
-
- if (flipx) c += 8*(w-1-x);
- else c += 8*x;
- if (flipy) c += h-1-y;
- else c += y;
-
- c &= code_mask[3];
-
- INT32 xx = sx + 16 * x;
- INT32 yy = sy + 16 * y;
-
- if (xx < -15 || yy < -15 || xx >= nScreenWidth || yy >= nScreenHeight) continue;
-
- if (flipy) {
- if (flipx) {
- Render16x16Tile_Mask_FlipXY_Clip(pTransDraw, c, xx, yy, color, 4, 0, 0, DrvGfxROM3);
- } else {
- Render16x16Tile_Mask_FlipY_Clip(pTransDraw, c, xx, yy, color, 4, 0, 0, DrvGfxROM3);
- }
- } else {
- if (flipx) {
- Render16x16Tile_Mask_FlipX_Clip(pTransDraw, c, xx, yy, color, 4, 0, 0, DrvGfxROM3);
- } else {
- Render16x16Tile_Mask_Clip(pTransDraw, c, xx, yy, color, 4, 0, 0, DrvGfxROM3);
- }
- }
- }
- }
- }
-}
-
-static void dodrawline(INT32 start, INT32 finish)
-{
- if (*video_disable) return;
-
- if (nBurnLayer & 1) draw_layer(1, 1, m72_video_type, start, finish);
- if (nBurnLayer & 2) draw_layer(0, 1, m72_video_type, start, finish);
-
- GenericTilesSetClip(0, -1, start, finish);
- if (nSpriteEnable & 1) {
- if (m72_video_type == 3) majtitle_draw_sprites();
- draw_sprites();
- }
- GenericTilesClearClip();
-
- if (nBurnLayer & 4) draw_layer(1, 0, m72_video_type, start, finish);
- if (nBurnLayer & 8) draw_layer(0, 0, m72_video_type, start, finish);
-}
-
-static inline void DrvDrawInitFrame()
-{
- BurnTransferClear();
-}
-
-static INT32 DrvDraw()
-{
- if (DrvRecalc) {
- for (INT32 i = 0; i < 0x200; i++) {
- palette_write((i & 0xff) * 2, i >> 8);
- }
- DrvRecalc = 0;
- }
-
- BurnTransferCopy(DrvPalette);
-
- return 0;
-}
-
-static void compile_inputs()
-{
- memset (DrvInputs, 0xff, 5);
-
- for (INT32 i = 0; i < 8; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- DrvInputs[2] ^= (DrvJoy3[i] & 1) << i;
- DrvInputs[3] ^= (DrvJoy4[i] & 1) << i;
- DrvInputs[4] ^= (DrvJoy5[i] & 1) << i;
- }
-}
-
-static INT32 nPreviousLine = 0;
-
-static void scanline_interrupts(INT32 scanline)
-{
- if (scanline == (irq_raster_position - 128) && scanline < 256) {
- if (nPreviousLine <= scanline && scanline < nScreenHeight) {
- dodrawline(nPreviousLine, scanline+1);
- nPreviousLine = scanline + 1;
- }
- if (Kengo)
- VezSetIRQLineAndVector(NEC_INPUT_LINE_INTP2, 0xff, CPU_IRQSTATUS_AUTO);
- else
- VezSetIRQLineAndVector(0, (m72_irq_base + 8)/4, CPU_IRQSTATUS_AUTO);
- }
- else if (scanline == 255) // vblank
- {
- if (nPreviousLine < nScreenHeight) {
- dodrawline(nPreviousLine, nScreenHeight);
- nPreviousLine = 0;
- }
- if (Kengo)
- VezSetIRQLineAndVector(NEC_INPUT_LINE_INTP0, 0xff, CPU_IRQSTATUS_AUTO);
- else
- VezSetIRQLineAndVector(0, (m72_irq_base + 0)/4, CPU_IRQSTATUS_AUTO);
- }
-
- if (nPreviousLine >= nScreenHeight) nPreviousLine = 0;
-}
-
-static INT32 DrvFrame()
-{
- INT32 nSoundBufferPos = 0;
-
- if (DrvReset) {
- DrvDoReset();
- }
-
- VezNewFrame();
- ZetNewFrame();
-
- compile_inputs();
-
- INT32 multiplier = 3;
- INT32 nInterleave = 256 * multiplier;
-
- if (Clock_16mhz) // Ken-go, Cosmic Cop
- nCyclesTotal[0] = (INT32)((INT64)(16000000 / 55) * nBurnCPUSpeedAdjust / 0x0100);
- else
- nCyclesTotal[0] = (INT32)((INT64)(8000000 / 55) * nBurnCPUSpeedAdjust / 0x0100);
- nCyclesTotal[1] = (INT32)((INT64)(3579545 / 55) * nBurnCPUSpeedAdjust / 0x0100);
- nCyclesDone[0] = nCyclesDone[1] = 0;
-
- if (pBurnDraw) {
- DrvDrawInitFrame();
- }
-
- VezOpen(0);
- ZetOpen(0);
-
- for (INT32 i = 0; i < nInterleave; i++)
- {
- nCurrentCycles = nCyclesTotal[0] / nInterleave;
- nCyclesDone[0] += VezRun(nCurrentCycles);
-
- if ((i%multiplier)==0)
- scanline_interrupts(i/multiplier);
-
- if (z80_reset == 0) {
- nCyclesDone[1] += ZetRun(nCyclesTotal[1] / nInterleave);
-
- if (i%multiplier==0 && i/multiplier & 1) {
- if (z80_nmi_enable == Z80_FAKE_NMI) {
- if (DrvSndROM[sample_address]) {
- DACSignedWrite(0, DrvSndROM[sample_address]);
- sample_address = (sample_address + 1) & 0x3ffff;
- } else {
- DACWrite(0, 0); // Clear DAC output buffer at end of sample - fixes distortion in Air Duel & second-to-last level of Mr. Heli
- }
-
- } else if (z80_nmi_enable == Z80_REAL_NMI) {
- ZetNmi();
- }
- }
- } else {
- ZetIdle(nCyclesTotal[1] / nInterleave);
- }
-
- if ((i%multiplier)==0) {
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen / (nInterleave / multiplier);
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
-
- BurnYM2151Render(pSoundBuf, nSegmentLength);
-
- nSoundBufferPos += nSegmentLength;
- }
- }
- }
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
-
- if (nSegmentLength) {
- BurnYM2151Render(pSoundBuf, nSegmentLength);
- }
-
- DACUpdate(pBurnSoundOut, nBurnSoundLen);
- }
-
- VezClose();
- ZetClose();
-
- if (pBurnDraw) {
- DrvDraw();
- }
-
- return 0;
-}
-
-static INT32 DrvScan(INT32 nAction, INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin != NULL) { // Return minimum compatible version
- *pnMin = 0x029705;
- }
-
- if (nAction & ACB_MEMORY_RAM) {
- memset(&ba, 0, sizeof(ba));
- ba.Data = AllRam;
- ba.nLen = MemEnd-AllRam;
- ba.szName = "All Ram";
- BurnAcb(&ba);
- }
-
- if (nAction & ACB_DRIVER_DATA) {
- ZetScan(nAction);
- BurnYM2151Scan(nAction);
- DACScan(nAction, pnMin);
- VezScan(nAction);
-
- SCAN_VAR(irq_raster_position);
- SCAN_VAR(m72_irq_base);
- }
-
- if (nAction & ACB_WRITE) {
- ZetOpen(0); // Kick-start the ym2151 after state load.
- m72YM2151IRQHandler(1);
- ZetClose();
- }
-
- return 0;
-}
-
-
-
-// R-Type (World)
-
-static struct BurnRomInfo rtypeRomDesc[] = {
- { "rt_r-h0-b.1b", 0x10000, 0x591c7754, 0x01 | BRF_PRG | BRF_ESS }, // 0 V30 Code
- { "rt_r-l0-b.3b", 0x10000, 0xa1928df0, 0x01 | BRF_PRG | BRF_ESS }, // 1
- { "rt_r-h1-b.1c", 0x10000, 0xa9d71eca, 0x01 | BRF_PRG | BRF_ESS }, // 2
- { "rt_r-l1-b.3c", 0x10000, 0x0df3573d, 0x01 | BRF_PRG | BRF_ESS }, // 3
-
- { "rt_r-00.1h", 0x10000, 0xdad53bc0, 0x02 | BRF_GRA }, // 4 Sprites
- { "rt_r-01.1j", 0x08000, 0x5e441e7f, 0x02 | BRF_GRA }, // 5
- { "rt_r-10.1k", 0x10000, 0xd6a66298, 0x02 | BRF_GRA }, // 6
- { "rt_r-11.1l", 0x08000, 0x791df4f8, 0x02 | BRF_GRA }, // 7
- { "rt_r-20.3h", 0x10000, 0xfc247c8a, 0x02 | BRF_GRA }, // 8
- { "rt_r-21.3j", 0x08000, 0xed793841, 0x02 | BRF_GRA }, // 9
- { "rt_r-30.3k", 0x10000, 0xeb02a1cb, 0x02 | BRF_GRA }, // 10
- { "rt_r-31.3l", 0x08000, 0x8558355d, 0x02 | BRF_GRA }, // 11
-
- { "rt_b-a0.3c", 0x08000, 0x4e212fb0, 0x03 | BRF_GRA }, // 12 Foreground Tiles
- { "rt_b-a1.3d", 0x08000, 0x8a65bdff, 0x03 | BRF_GRA }, // 13
- { "rt_b-a2.3a", 0x08000, 0x5a4ae5b9, 0x03 | BRF_GRA }, // 14
- { "rt_b-a3.3e", 0x08000, 0x73327606, 0x03 | BRF_GRA }, // 15
-
- { "rt_b-b0.3j", 0x08000, 0xa7b17491, 0x04 | BRF_GRA }, // 16 Background Tiles
- { "rt_b-b1.3k", 0x08000, 0xb9709686, 0x04 | BRF_GRA }, // 17
- { "rt_b-b2.3h", 0x08000, 0x433b229a, 0x04 | BRF_GRA }, // 18
- { "rt_b-b3.3f", 0x08000, 0xad89b072, 0x04 | BRF_GRA }, // 19
-};
-
-STD_ROM_PICK(rtype)
-STD_ROM_FN(rtype)
-
-static INT32 rtypeInit()
-{
- return DrvInit(common_040000_040000, sound_ram_map, NULL, Z80_NO_NMI, 0);
-}
-
-struct BurnDriver BurnDrvRtype = {
- "rtype", NULL, NULL, NULL, "1987",
- "R-Type (World)\0", NULL, "Irem", "M72",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_IREM_M72, GBF_HORSHOOT, 0,
- NULL, rtypeRomInfo, rtypeRomName, NULL, NULL, CommonInputInfo, RtypeDIPInfo,
- rtypeInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x200,
- 384, 256, 4, 3
-};
-
-
-// R-Type (Japan)
-
-static struct BurnRomInfo rtypejRomDesc[] = {
- { "rt_r-h0-.1b", 0x10000, 0xc2940df2, 0x01 | BRF_PRG | BRF_ESS }, // 0 V30 Code
- { "rt_r-l0-.3b", 0x10000, 0x858cc0f6, 0x01 | BRF_PRG | BRF_ESS }, // 1
- { "rt_r-h1-.1c", 0x10000, 0x5bcededa, 0x01 | BRF_PRG | BRF_ESS }, // 2
- { "rt_r-l1-.3c", 0x10000, 0x4821141c, 0x01 | BRF_PRG | BRF_ESS }, // 3
-
- { "rt_r-00.1h", 0x10000, 0xdad53bc0, 0x02 | BRF_GRA }, // 4 Sprites
- { "rt_r-01.1j", 0x08000, 0x5e441e7f, 0x02 | BRF_GRA }, // 5
- { "rt_r-10.1k", 0x10000, 0xd6a66298, 0x02 | BRF_GRA }, // 6
- { "rt_r-11.1l", 0x08000, 0x791df4f8, 0x02 | BRF_GRA }, // 7
- { "rt_r-20.3h", 0x10000, 0xfc247c8a, 0x02 | BRF_GRA }, // 8
- { "rt_r-21.3j", 0x08000, 0xed793841, 0x02 | BRF_GRA }, // 9
- { "rt_r-30.3k", 0x10000, 0xeb02a1cb, 0x02 | BRF_GRA }, // 10
- { "rt_r-31.3l", 0x08000, 0x8558355d, 0x02 | BRF_GRA }, // 11
-
- { "rt_b-a0.3c", 0x08000, 0x4e212fb0, 0x03 | BRF_GRA }, // 12 Foreground Tiles
- { "rt_b-a1.3d", 0x08000, 0x8a65bdff, 0x03 | BRF_GRA }, // 13
- { "rt_b-a2.3a", 0x08000, 0x5a4ae5b9, 0x03 | BRF_GRA }, // 14
- { "rt_b-a3.3e", 0x08000, 0x73327606, 0x03 | BRF_GRA }, // 15
-
- { "rt_b-b0.3j", 0x08000, 0xa7b17491, 0x04 | BRF_GRA }, // 16 Background Tiles
- { "rt_b-b1.3k", 0x08000, 0xb9709686, 0x04 | BRF_GRA }, // 17
- { "rt_b-b2.3h", 0x08000, 0x433b229a, 0x04 | BRF_GRA }, // 18
- { "rt_b-b3.3f", 0x08000, 0xad89b072, 0x04 | BRF_GRA }, // 19
-};
-
-STD_ROM_PICK(rtypej)
-STD_ROM_FN(rtypej)
-
-struct BurnDriver BurnDrvRtypej = {
- "rtypej", "rtype", NULL, NULL, "1987",
- "R-Type (Japan)\0", NULL, "Irem", "M72",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_IREM_M72, GBF_HORSHOOT, 0,
- NULL, rtypejRomInfo, rtypejRomName, NULL, NULL, CommonInputInfo, RtypeDIPInfo,
- rtypeInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x200,
- 384, 256, 4, 3
-};
-
-
-// R-Type (Japan prototype)
-
-static struct BurnRomInfo rtypejpRomDesc[] = {
- { "db_b1.bin", 0x10000, 0xc1865141, 0x01 | BRF_PRG | BRF_ESS }, // 0 V30 Code
- { "db_a1.bin", 0x10000, 0x5ad2bd90, 0x01 | BRF_PRG | BRF_ESS }, // 1
- { "db_b2.bin", 0x10000, 0xb4f6407e, 0x01 | BRF_PRG | BRF_ESS }, // 2
- { "db_a2.bin", 0x10000, 0x6098d86f, 0x01 | BRF_PRG | BRF_ESS }, // 3
-
- { "rt_r-00.1h", 0x10000, 0xdad53bc0, 0x02 | BRF_GRA }, // 4 Sprites
- { "rt_r-01.1j", 0x08000, 0x5e441e7f, 0x02 | BRF_GRA }, // 5
- { "rt_r-10.1k", 0x10000, 0xd6a66298, 0x02 | BRF_GRA }, // 6
- { "rt_r-11.1l", 0x08000, 0x791df4f8, 0x02 | BRF_GRA }, // 7
- { "rt_r-20.3h", 0x10000, 0xfc247c8a, 0x02 | BRF_GRA }, // 8
- { "rt_r-21.3j", 0x08000, 0xed793841, 0x02 | BRF_GRA }, // 9
- { "rt_r-30.3k", 0x10000, 0xeb02a1cb, 0x02 | BRF_GRA }, // 10
- { "rt_r-31.3l", 0x08000, 0x8558355d, 0x02 | BRF_GRA }, // 11
-
- { "rt_b-a0.3c", 0x08000, 0x4e212fb0, 0x03 | BRF_GRA }, // 12 Foreground Tiles
- { "rt_b-a1.3d", 0x08000, 0x8a65bdff, 0x03 | BRF_GRA }, // 13
- { "rt_b-a2.3a", 0x08000, 0x5a4ae5b9, 0x03 | BRF_GRA }, // 14
- { "rt_b-a3.3e", 0x08000, 0x73327606, 0x03 | BRF_GRA }, // 15
-
- { "rt_b-b0.3j", 0x08000, 0xa7b17491, 0x04 | BRF_GRA }, // 16 Background Tiles
- { "rt_b-b1.3k", 0x08000, 0xb9709686, 0x04 | BRF_GRA }, // 17
- { "rt_b-b2.3h", 0x08000, 0x433b229a, 0x04 | BRF_GRA }, // 18
- { "rt_b-b3.3f", 0x08000, 0xad89b072, 0x04 | BRF_GRA }, // 19
-};
-
-STD_ROM_PICK(rtypejp)
-STD_ROM_FN(rtypejp)
-
-struct BurnDriver BurnDrvRtypejp = {
- "rtypejp", "rtype", NULL, NULL, "1987",
- "R-Type (Japan prototype)\0", NULL, "Irem", "M72",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_IREM_M72, GBF_HORSHOOT, 0,
- NULL, rtypejpRomInfo, rtypejpRomName, NULL, NULL, CommonInputInfo, RtypepDIPInfo,
- rtypeInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x200,
- 384, 256, 4, 3
-};
-
-
-// R-Type (US)
-
-static struct BurnRomInfo rtypeuRomDesc[] = {
- { "rt_r-h0-a.1b", 0x10000, 0x36008a4e, 0x01 | BRF_PRG | BRF_ESS }, // 0 V30 Code
- { "rt_r-l0-a.3b", 0x10000, 0x4aaa668e, 0x01 | BRF_PRG | BRF_ESS }, // 1
- { "rt_r-h1-a.1c", 0x10000, 0x7ebb2a53, 0x01 | BRF_PRG | BRF_ESS }, // 2
- { "rt_r-l1-a.3c", 0x10000, 0xc28b103b, 0x01 | BRF_PRG | BRF_ESS }, // 3
-
- { "rt_r-00.1h", 0x10000, 0xdad53bc0, 0x02 | BRF_GRA }, // 4 Sprites
- { "rt_r-01.1j", 0x08000, 0x5e441e7f, 0x02 | BRF_GRA }, // 5
- { "rt_r-10.1k", 0x10000, 0xd6a66298, 0x02 | BRF_GRA }, // 6
- { "rt_r-11.1l", 0x08000, 0x791df4f8, 0x02 | BRF_GRA }, // 7
- { "rt_r-20.3h", 0x10000, 0xfc247c8a, 0x02 | BRF_GRA }, // 8
- { "rt_r-21.3j", 0x08000, 0xed793841, 0x02 | BRF_GRA }, // 9
- { "rt_r-30.3k", 0x10000, 0xeb02a1cb, 0x02 | BRF_GRA }, // 10
- { "rt_r-31.3l", 0x08000, 0x8558355d, 0x02 | BRF_GRA }, // 11
-
- { "rt_b-a0.3c", 0x08000, 0x4e212fb0, 0x03 | BRF_GRA }, // 12 Foreground Tiles
- { "rt_b-a1.3d", 0x08000, 0x8a65bdff, 0x03 | BRF_GRA }, // 13
- { "rt_b-a2.3a", 0x08000, 0x5a4ae5b9, 0x03 | BRF_GRA }, // 14
- { "rt_b-a3.3e", 0x08000, 0x73327606, 0x03 | BRF_GRA }, // 15
-
- { "rt_b-b0.3j", 0x08000, 0xa7b17491, 0x04 | BRF_GRA }, // 16 Background Tiles
- { "rt_b-b1.3k", 0x08000, 0xb9709686, 0x04 | BRF_GRA }, // 17
- { "rt_b-b2.3h", 0x08000, 0x433b229a, 0x04 | BRF_GRA }, // 18
- { "rt_b-b3.3f", 0x08000, 0xad89b072, 0x04 | BRF_GRA }, // 19
-
- { "m72_a-8l-.ic66", 0x00100, 0xb460c438, 0x00 | BRF_OPT }, // 20 Proms
- { "m72_a-9l-.ic75", 0x00100, 0xa4f2c4bc, 0x00 | BRF_OPT }, // 21
-
- { "m72_r-3a-.bin", 0x00001, 0x00000000, 0x00 | BRF_OPT | BRF_NODUMP }, // 22 PLDs
- { "m72_a-3d-.bin", 0x00001, 0x00000000, 0x00 | BRF_OPT | BRF_NODUMP }, // 23
- { "m72_a-4d-.bin", 0x00001, 0x00000000, 0x00 | BRF_OPT | BRF_NODUMP }, // 24
-};
-
-STD_ROM_PICK(rtypeu)
-STD_ROM_FN(rtypeu)
-
-struct BurnDriver BurnDrvRtypeu = {
- "rtypeu", "rtype", NULL, NULL, "1987",
- "R-Type (US)\0", NULL, "Irem (Nintendo of America license)", "M72",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_IREM_M72, GBF_HORSHOOT, 0,
- NULL, rtypeuRomInfo, rtypeuRomName, NULL, NULL, CommonInputInfo, RtypeDIPInfo,
- rtypeInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x200,
- 384, 256, 4, 3
-};
-
-
-// R-Type (World bootleg)
-
-static struct BurnRomInfo rtypebRomDesc[] = {
- { "7.512", 0x10000, 0xeacc8024, 0x01 | BRF_PRG | BRF_ESS }, // 0 V30 Code
- { "1.512", 0x10000, 0x2e5fe27b, 0x01 | BRF_PRG | BRF_ESS }, // 1
- { "8.512", 0x10000, 0x22cc4950, 0x01 | BRF_PRG | BRF_ESS }, // 2
- { "2.512", 0x10000, 0xada7b90e, 0x01 | BRF_PRG | BRF_ESS }, // 3
-
- { "rt_r-00.1h", 0x10000, 0xdad53bc0, 0x02 | BRF_GRA }, // 4 Sprites
- { "rt_r-01.1j", 0x08000, 0x5e441e7f, 0x02 | BRF_GRA }, // 5
- { "rt_r-10.1k", 0x10000, 0xd6a66298, 0x02 | BRF_GRA }, // 6
- { "rt_r-11.1l", 0x08000, 0x791df4f8, 0x02 | BRF_GRA }, // 7
- { "rt_r-20.3h", 0x10000, 0xfc247c8a, 0x02 | BRF_GRA }, // 8
- { "rt_r-21.3j", 0x08000, 0xed793841, 0x02 | BRF_GRA }, // 9
- { "rt_r-30.3k", 0x10000, 0xeb02a1cb, 0x02 | BRF_GRA }, // 10
- { "rt_r-31.3l", 0x08000, 0x8558355d, 0x02 | BRF_GRA }, // 11
-
- { "rt_b-a0.3c", 0x08000, 0x4e212fb0, 0x03 | BRF_GRA }, // 12 Foreground Tiles
- { "rt_b-a1.3d", 0x08000, 0x8a65bdff, 0x03 | BRF_GRA }, // 13
- { "rt_b-a2.3a", 0x08000, 0x5a4ae5b9, 0x03 | BRF_GRA }, // 14
- { "rt_b-a3.3e", 0x08000, 0x73327606, 0x03 | BRF_GRA }, // 15
-
- { "rt_b-b0.3j", 0x08000, 0xa7b17491, 0x04 | BRF_GRA }, // 16 Background Tiles
- { "rt_b-b1.3k", 0x08000, 0xb9709686, 0x04 | BRF_GRA }, // 17
- { "rt_b-b2.3h", 0x08000, 0x433b229a, 0x04 | BRF_GRA }, // 18
- { "rt_b-b3.3f", 0x08000, 0xad89b072, 0x04 | BRF_GRA }, // 19
-};
-
-STD_ROM_PICK(rtypeb)
-STD_ROM_FN(rtypeb)
-
-struct BurnDriver BurnDrvRtypeb = {
- "rtypeb", "rtype", NULL, NULL, "1987",
- "R-Type (World bootleg)\0", NULL, "bootleg", "M72",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_IREM_M72, GBF_HORSHOOT, 0,
- NULL, rtypebRomInfo, rtypebRomName, NULL, NULL, CommonInputInfo, RtypeDIPInfo,
- rtypeInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x200,
- 384, 256, 4, 3
-};
-
-
-// X Multiply (World, M81)
-
-static struct BurnRomInfo xmultiplRomDesc[] = {
- { "xm-a-h1-.ic58", 0x20000, 0x449048cf, 0x01 | BRF_PRG | BRF_ESS }, // 0 V30 Code
- { "xm-a-l1-.ic67", 0x20000, 0x26ce39b0, 0x01 | BRF_PRG | BRF_ESS }, // 1
- { "xm-a-h0-.ic59", 0x10000, 0x509bc970, 0x01 | BRF_PRG | BRF_ESS }, // 2
- { "xm-a-l0-.ic68", 0x10000, 0x490a9ebc, 0x01 | BRF_PRG | BRF_ESS }, // 3
-
- { "xm-a-sp-.ic14", 0x10000, 0x006eef56, 0x06 | BRF_PRG | BRF_ESS }, // 4 Z80 Code
-
- { "t44.00", 0x20000, 0xdb45186e, 0x02 | BRF_GRA }, // 5 Sprites
- { "t45.01", 0x20000, 0x4d0764d4, 0x02 | BRF_GRA }, // 6
- { "t46.10", 0x20000, 0xf0c465a4, 0x02 | BRF_GRA }, // 7
- { "t47.11", 0x20000, 0x1263b24b, 0x02 | BRF_GRA }, // 8
- { "t48.20", 0x20000, 0x4129944f, 0x02 | BRF_GRA }, // 9
- { "t49.21", 0x20000, 0x2346e6f9, 0x02 | BRF_GRA }, // 10
- { "t50.30", 0x20000, 0xe322543e, 0x02 | BRF_GRA }, // 11
- { "t51.31", 0x20000, 0x229bf7b1, 0x02 | BRF_GRA }, // 12
-
- { "t53.a0", 0x20000, 0x1a082494, 0x03 | BRF_GRA }, // 13 Foreground Tiles
- { "t54.a1", 0x20000, 0x076c16c5, 0x03 | BRF_GRA }, // 14
- { "t55.a2", 0x20000, 0x25d877a5, 0x03 | BRF_GRA }, // 15
- { "t56.a3", 0x20000, 0x5b1213f5, 0x03 | BRF_GRA }, // 16
-
- { "t57.b0", 0x20000, 0x0a84e0c7, 0x04 | BRF_GRA }, // 17 Background Tiles
- { "t58.b1", 0x20000, 0xa874121d, 0x04 | BRF_GRA }, // 18
- { "t59.b2", 0x20000, 0x69deb990, 0x04 | BRF_GRA }, // 19
- { "t60.b3", 0x20000, 0x14c69f99, 0x04 | BRF_GRA }, // 20
-
- { "t52.v0", 0x20000, 0x2db1bd80, 0x05 | BRF_SND }, // 21 DAC Samples
-
- { "m81_a-9l-.ic72", 0x00100, 0xb460c438, 0x00 | BRF_OPT }, // 22 Proms
- { "m81_a-9p-.ic74", 0x00100, 0xa4f2c4bc, 0x00 | BRF_OPT }, // 23
-};
-
-STD_ROM_PICK(xmultipl)
-STD_ROM_FN(xmultipl)
-
-static INT32 xmultiplInit()
-{
- return DrvInit(common_080000_09c000, sound_rom_map, NULL, Z80_REAL_NMI, 2);
-}
-
-struct BurnDriver BurnDrvXmultipl = {
- "xmultipl", NULL, NULL, NULL, "1989",
- "X Multiply (World, M81)\0", NULL, "Irem", "M81",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_IREM_M72, GBF_HORSHOOT, 0,
- NULL, xmultiplRomInfo, xmultiplRomName, NULL, NULL, CommonInputInfo, XmultiplDIPInfo,
- xmultiplInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x200,
- 384, 256, 4, 3
-};
-
-
-// X Multiply (Japan, M72)
-
-static struct BurnRomInfo xmultiplm72RomDesc[] = {
- { "ch3.h3", 0x20000, 0x20685021, 0x01 | BRF_PRG | BRF_ESS }, // 0 V30 Code
- { "cl3.l3", 0x20000, 0x93fdd200, 0x01 | BRF_PRG | BRF_ESS }, // 1
- { "ch0.h0", 0x10000, 0x9438dd8a, 0x01 | BRF_PRG | BRF_ESS }, // 2
- { "cl0.l0", 0x10000, 0x06a9e213, 0x01 | BRF_PRG | BRF_ESS }, // 3
-
- { "t44.00", 0x20000, 0xdb45186e, 0x02 | BRF_GRA }, // 4 Sprites
- { "t45.01", 0x20000, 0x4d0764d4, 0x02 | BRF_GRA }, // 5
- { "t46.10", 0x20000, 0xf0c465a4, 0x02 | BRF_GRA }, // 6
- { "t47.11", 0x20000, 0x1263b24b, 0x02 | BRF_GRA }, // 7
- { "t48.20", 0x20000, 0x4129944f, 0x02 | BRF_GRA }, // 8
- { "t49.21", 0x20000, 0x2346e6f9, 0x02 | BRF_GRA }, // 9
- { "t50.30", 0x20000, 0xe322543e, 0x02 | BRF_GRA }, // 10
- { "t51.31", 0x20000, 0x229bf7b1, 0x02 | BRF_GRA }, // 11
-
- { "t53.a0", 0x20000, 0x1a082494, 0x03 | BRF_GRA }, // 12 Foreground Tiles
- { "t54.a1", 0x20000, 0x076c16c5, 0x03 | BRF_GRA }, // 13
- { "t55.a2", 0x20000, 0x25d877a5, 0x03 | BRF_GRA }, // 14
- { "t56.a3", 0x20000, 0x5b1213f5, 0x03 | BRF_GRA }, // 15
-
- { "t57.b0", 0x20000, 0x0a84e0c7, 0x04 | BRF_GRA }, // 16 Background Tiles
- { "t58.b1", 0x20000, 0xa874121d, 0x04 | BRF_GRA }, // 17
- { "t59.b2", 0x20000, 0x69deb990, 0x04 | BRF_GRA }, // 18
- { "t60.b3", 0x20000, 0x14c69f99, 0x04 | BRF_GRA }, // 19
-
- { "t52.v0", 0x20000, 0x2db1bd80, 0x05 | BRF_SND }, // 20 DAC Samples
-
- { "xmultipl_i8751h.bin",0x01000, 0xc8ceb3cd, 0x00 | BRF_OPT }, // 21 i8751 Code
-};
-
-STD_ROM_PICK(xmultiplm72)
-STD_ROM_FN(xmultiplm72)
-
-static INT32 xmultiplm72Init()
-{
- install_protection(xmultiplm72);
-
- return DrvInit(common_080000_080000, sound_ram_map, NULL, Z80_REAL_NMI, 0);
-}
-
-struct BurnDriver BurnDrvXmultiplm72 = {
- "xmultiplm72", "xmultipl", NULL, NULL, "1989",
- "X Multiply (Japan, M72)\0", NULL, "Irem", "M72",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_IREM_M72, GBF_HORSHOOT, 0,
- NULL, xmultiplm72RomInfo, xmultiplm72RomName, NULL, NULL, CommonInputInfo, XmultiplDIPInfo,
- xmultiplm72Init, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x200,
- 384, 256, 4, 3
-};
-
-
-// Dragon Breed (M81 PCB version)
-
-static struct BurnRomInfo dbreedRomDesc[] = {
- { "db-a-h0-.59", 0x20000, 0xe1177267, 0x01 | BRF_PRG | BRF_ESS }, // 0 V30 Code
- { "db-a-l0-.68", 0x20000, 0xd82b167e, 0x01 | BRF_PRG | BRF_ESS }, // 1
-
- { "db-a-sp-.14", 0x10000, 0x54a61560, 0x06 | BRF_PRG | BRF_ESS }, // 2 Z80 Code
-
- { "db_k800m.00", 0x20000, 0xc027a8cf, 0x02 | BRF_GRA }, // 3 Sprites
- { "db_k801m.10", 0x20000, 0x093faf33, 0x02 | BRF_GRA }, // 4
- { "db_k802m.20", 0x20000, 0x055b4c59, 0x02 | BRF_GRA }, // 5
- { "db_k803m.30", 0x20000, 0x8ed63922, 0x02 | BRF_GRA }, // 6
-
- { "db_k804m.a0", 0x20000, 0x4c83e92e, 0x03 | BRF_GRA }, // 7 Foreground & Background Tiles
- { "db_k805m.a1", 0x20000, 0x835ef268, 0x03 | BRF_GRA }, // 8
- { "db_k806m.a2", 0x20000, 0x5117f114, 0x03 | BRF_GRA }, // 9
- { "db_k807m.a3", 0x20000, 0x8eb0c978, 0x03 | BRF_GRA }, // 10
-
- { "db_a-v0.rom", 0x20000, 0x312f7282, 0x05 | BRF_SND }, // 11 DAC Samples
-};
-
-STD_ROM_PICK(dbreed)
-STD_ROM_FN(dbreed)
-
-static INT32 dbreedRomLoadCallback()
-{
- memcpy (DrvV30ROM + 0x60000, DrvV30ROM + 0x20000, 0x20000);
-
- return 0;
-}
-
-static INT32 dbreedInit()
-{
- return DrvInit(common_080000_088000, sound_rom_map, dbreedRomLoadCallback, Z80_REAL_NMI, 2);
-}
-
-struct BurnDriver BurnDrvDbreed = {
- "dbreed", NULL, NULL, NULL, "1989",
- "Dragon Breed (M81 PCB version)\0", NULL, "Irem", "M81",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_IREM_M72, GBF_HORSHOOT, 0,
- NULL, dbreedRomInfo, dbreedRomName, NULL, NULL, CommonInputInfo, DbreedDIPInfo,
- dbreedInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x200,
- 384, 256, 4, 3
-};
-
-
-// Dragon Breed (M72 PCB version)
-
-static struct BurnRomInfo dbreedm72RomDesc[] = {
- { "db_c-h3.rom", 0x20000, 0x4bf3063c, 0x01 | BRF_PRG | BRF_ESS }, // 0 V30 Code
- { "db_c-l3.rom", 0x20000, 0xe4b89b79, 0x01 | BRF_PRG | BRF_ESS }, // 1
- { "db_c-h0.rom", 0x10000, 0x5aa79fb2, 0x01 | BRF_PRG | BRF_ESS }, // 2
- { "db_c-l0.rom", 0x10000, 0xed0f5e06, 0x01 | BRF_PRG | BRF_ESS }, // 3
-
- { "db_k800m.00", 0x20000, 0xc027a8cf, 0x02 | BRF_GRA }, // 4 Sprites
- { "db_k801m.10", 0x20000, 0x093faf33, 0x02 | BRF_GRA }, // 5
- { "db_k802m.20", 0x20000, 0x055b4c59, 0x02 | BRF_GRA }, // 6
- { "db_k803m.30", 0x20000, 0x8ed63922, 0x02 | BRF_GRA }, // 7
-
- { "db_k804m.a0", 0x20000, 0x4c83e92e, 0x03 | BRF_GRA }, // 8 Foreground Tiles
- { "db_k805m.a1", 0x20000, 0x835ef268, 0x03 | BRF_GRA }, // 9
- { "db_k806m.a2", 0x20000, 0x5117f114, 0x03 | BRF_GRA }, // 10
- { "db_k807m.a3", 0x20000, 0x8eb0c978, 0x03 | BRF_GRA }, // 11
-
- { "db_k804m.b0", 0x20000, 0x4c83e92e, 0x04 | BRF_GRA }, // 12 Background Tiles
- { "db_k805m.b1", 0x20000, 0x835ef268, 0x04 | BRF_GRA }, // 13
- { "db_k806m.b2", 0x20000, 0x5117f114, 0x04 | BRF_GRA }, // 14
- { "db_k807m.b3", 0x20000, 0x8eb0c978, 0x04 | BRF_GRA }, // 15
-
- { "db_c-v0.rom", 0x20000, 0x312f7282, 0x05 | BRF_SND }, // 16 DAC Samples
-
- { "dbreedm72_i8751.mcu",0x10000, 0x00000000, 0x00 | BRF_OPT | BRF_NODUMP }, // 17 i8751 Code
-};
-
-STD_ROM_PICK(dbreedm72)
-STD_ROM_FN(dbreedm72)
-
-static INT32 dbreedm72RomLoadCallback()
-{
- memmove(DrvV30ROM + 0x60000, DrvV30ROM + 0x40000, 0x20000);
-
- return 0;
-}
-
-static INT32 dbreedm72Init()
-{
- install_protection(dbreedm72);
-
- return DrvInit(common_080000_090000, sound_ram_map, dbreedm72RomLoadCallback, Z80_REAL_NMI, 0);
-}
-
-struct BurnDriver BurnDrvDbreedm72 = {
- "dbreedm72", "dbreed", NULL, NULL, "1989",
- "Dragon Breed (M72 PCB version)\0", NULL, "Irem", "M72",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_IREM_M72, GBF_HORSHOOT, 0,
- NULL, dbreedm72RomInfo, dbreedm72RomName, NULL, NULL, CommonInputInfo, DbreedDIPInfo,
- dbreedm72Init, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x200,
- 384, 256, 4, 3
-};
-
-
-// Battle Chopper
-
-static struct BurnRomInfo bchopperRomDesc[] = {
- { "c-h0-b.rom", 0x10000, 0xf2feab16, 0x01 | BRF_PRG | BRF_ESS }, // 0 V30 Code
- { "c-l0-b.rom", 0x10000, 0x9f887096, 0x01 | BRF_PRG | BRF_ESS }, // 1
- { "c-h1-b.rom", 0x10000, 0xa995d64f, 0x01 | BRF_PRG | BRF_ESS }, // 2
- { "c-l1-b.rom", 0x10000, 0x41dda999, 0x01 | BRF_PRG | BRF_ESS }, // 3
- { "c-h3-b.rom", 0x10000, 0xab9451ca, 0x01 | BRF_PRG | BRF_ESS }, // 4
- { "c-l3-b.rom", 0x10000, 0x11562221, 0x01 | BRF_PRG | BRF_ESS }, // 5
-
- { "c-00-a.rom", 0x10000, 0xf6e6e660, 0x02 | BRF_GRA }, // 6 Sprites
- { "c-01-b.rom", 0x10000, 0x708cdd37, 0x02 | BRF_GRA }, // 7
- { "c-10-a.rom", 0x10000, 0x292c8520, 0x02 | BRF_GRA }, // 8
- { "c-11-b.rom", 0x10000, 0x20904cf3, 0x02 | BRF_GRA }, // 9
- { "c-20-a.rom", 0x10000, 0x1ab50c23, 0x02 | BRF_GRA }, // 10
- { "c-21-b.rom", 0x10000, 0xc823d34c, 0x02 | BRF_GRA }, // 11
- { "c-30-a.rom", 0x10000, 0x11f6c56b, 0x02 | BRF_GRA }, // 12
- { "c-31-b.rom", 0x10000, 0x23134ec5, 0x02 | BRF_GRA }, // 13
-
- { "b-a0-b.rom", 0x10000, 0xe46ed7bf, 0x03 | BRF_GRA }, // 14 Foreground Tiles
- { "b-a1-b.rom", 0x10000, 0x590605ff, 0x03 | BRF_GRA }, // 15
- { "b-a2-b.rom", 0x10000, 0xf8158226, 0x03 | BRF_GRA }, // 16
- { "b-a3-b.rom", 0x10000, 0x0f07b9b7, 0x03 | BRF_GRA }, // 17
-
- { "b-b0-.rom", 0x10000, 0xb5b95776, 0x04 | BRF_GRA }, // 18 Background Tiles
- { "b-b1-.rom", 0x10000, 0x74ca16ee, 0x04 | BRF_GRA }, // 19
- { "b-b2-.rom", 0x10000, 0xb82cca04, 0x04 | BRF_GRA }, // 20
- { "b-b3-.rom", 0x10000, 0xa7afc920, 0x04 | BRF_GRA }, // 21
-
- { "c-v0-b.rom", 0x10000, 0xd0c27e58, 0x05 | BRF_SND }, // 22 DAC Samples
-
- { "bchopper_i8751.mcu", 0x10000, 0x00000000, 0x00 | BRF_OPT | BRF_NODUMP }, // 23 i8751 Code
-};
-
-STD_ROM_PICK(bchopper)
-STD_ROM_FN(bchopper)
-
-static INT32 bchopperInit()
-{
- install_protection(bchopper);
-
- return DrvInit(common_080000_0a0000, sound_ram_map, dbreedm72RomLoadCallback, Z80_FAKE_NMI, 0);
-}
-
-struct BurnDriver BurnDrvBchopper = {
- "bchopper", NULL, NULL, NULL, "1987",
- "Battle Chopper\0", NULL, "Irem", "M72",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_IREM_M72, GBF_HORSHOOT, 0,
- NULL, bchopperRomInfo, bchopperRomName, NULL, NULL, CommonInputInfo, BchopperDIPInfo,
- bchopperInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x200,
- 384, 256, 4, 3
-};
-
-
-// Mr. HELI no Dai-Bouken
-
-static struct BurnRomInfo mrheliRomDesc[] = {
- { "mh-c-h0.bin", 0x10000, 0xe2ca5646, 0x01 | BRF_PRG | BRF_ESS }, // 0 V30 Code
- { "mh-c-l0.bin", 0x10000, 0x643e23cd, 0x01 | BRF_PRG | BRF_ESS }, // 1
- { "mh-c-h1.bin", 0x10000, 0x8974e84d, 0x01 | BRF_PRG | BRF_ESS }, // 2
- { "mh-c-l1.bin", 0x10000, 0x5f8bda69, 0x01 | BRF_PRG | BRF_ESS }, // 3
- { "mh-c-h3.bin", 0x10000, 0x143f596e, 0x01 | BRF_PRG | BRF_ESS }, // 4
- { "mh-c-l3.bin", 0x10000, 0xc0982536, 0x01 | BRF_PRG | BRF_ESS }, // 5
-
- { "mh-c-00.bin", 0x20000, 0xdec4e121, 0x02 | BRF_GRA }, // 6 Sprites
- { "mh-c-10.bin", 0x20000, 0x7aaa151e, 0x02 | BRF_GRA }, // 7
- { "mh-c-20.bin", 0x20000, 0xeae0de74, 0x02 | BRF_GRA }, // 8
- { "mh-c-30.bin", 0x20000, 0x01d5052f, 0x02 | BRF_GRA }, // 9
-
- { "mh-b-a0.bin", 0x10000, 0x6a0db256, 0x03 | BRF_GRA }, // 10 Foreground Tiles
- { "mh-b-a1.bin", 0x10000, 0x14ec9795, 0x03 | BRF_GRA }, // 11
- { "mh-b-a2.bin", 0x10000, 0xdfcb510e, 0x03 | BRF_GRA }, // 12
- { "mh-b-a3.bin", 0x10000, 0x957e329b, 0x03 | BRF_GRA }, // 13
-
- { "b-b0-.rom", 0x10000, 0xb5b95776, 0x04 | BRF_GRA }, // 14 Background Tiles
- { "b-b1-.rom", 0x10000, 0x74ca16ee, 0x04 | BRF_GRA }, // 15
- { "b-b2-.rom", 0x10000, 0xb82cca04, 0x04 | BRF_GRA }, // 16
- { "b-b3-.rom", 0x10000, 0xa7afc920, 0x04 | BRF_GRA }, // 17
-
- { "c-v0-b.rom", 0x10000, 0xd0c27e58, 0x05 | BRF_SND }, // 18 DAC Samples
-
- { "mh-c-pr.bin", 0x01000, 0x897dc4ee, 0x00 | BRF_OPT }, // 19 i8751 Code
-};
-
-STD_ROM_PICK(mrheli)
-STD_ROM_FN(mrheli)
-
-static INT32 mrheliInit()
-{
- m72_install_protection(bchopper_code, mrheli_crc, bchopper_sample_offsets);
-
- return DrvInit(common_080000_0a0000, sound_ram_map, dbreedm72RomLoadCallback, Z80_FAKE_NMI, 0);
-}
-
-struct BurnDriver BurnDrvMrheli = {
- "mrheli", "bchopper", NULL, NULL, "1987",
- "Mr. HELI no Dai-Bouken\0", NULL, "Irem", "M72",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_IREM_M72, GBF_HORSHOOT, 0,
- NULL, mrheliRomInfo, mrheliRomName, NULL, NULL, CommonInputInfo, BchopperDIPInfo,
- mrheliInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x200,
- 384, 256, 4, 3
-};
-
-
-// Ninja Spirit
-
-static struct BurnRomInfo nspiritRomDesc[] = {
- { "nin_c-h0.6h", 0x10000, 0x035692fa, 0x01 | BRF_PRG | BRF_ESS }, // 0 V30 Code
- { "nin_c-l0.6d", 0x10000, 0x9a405898, 0x01 | BRF_PRG | BRF_ESS }, // 1
- { "nin_c-h1.6j", 0x10000, 0xcbc10586, 0x01 | BRF_PRG | BRF_ESS }, // 2
- { "nin_c-l1.6c", 0x10000, 0xb75c9a4d, 0x01 | BRF_PRG | BRF_ESS }, // 3
- { "nin_c-h2.6l", 0x10000, 0x8ad818fa, 0x01 | BRF_PRG | BRF_ESS }, // 4
- { "nin_c-l2.6b", 0x10000, 0xc52ca78c, 0x01 | BRF_PRG | BRF_ESS }, // 5
- { "nin_c-h3.6m", 0x10000, 0x501104ef, 0x01 | BRF_PRG | BRF_ESS }, // 6
- { "nin_c-l3.6a", 0x10000, 0xfd7408b8, 0x01 | BRF_PRG | BRF_ESS }, // 7
-
- { "nin-r00.7m", 0x20000, 0x5f61d30b, 0x02 | BRF_GRA }, // 8 Sprites
- { "nin-r10.7j", 0x20000, 0x0caad107, 0x02 | BRF_GRA }, // 9
- { "nin-r20.7f", 0x20000, 0xef3617d3, 0x02 | BRF_GRA }, // 10
- { "nin-r30.7d", 0x20000, 0x175d2a24, 0x02 | BRF_GRA }, // 11
-
- { "nin_b-a0.4c", 0x10000, 0x63f8f658, 0x03 | BRF_GRA }, // 12 Foreground Tiles
- { "nin_b-a1.4d", 0x10000, 0x75eb8306, 0x03 | BRF_GRA }, // 13
- { "nin_b-a2.4b", 0x10000, 0xdf532172, 0x03 | BRF_GRA }, // 14
- { "nin_b-a3.4e", 0x10000, 0x4dedd64c, 0x03 | BRF_GRA }, // 15
-
- { "b0.4j", 0x10000, 0x1b0e08a6, 0x04 | BRF_GRA }, // 16 Background Tiles
- { "b1.4k", 0x10000, 0x728727f0, 0x04 | BRF_GRA }, // 17
- { "b2.4h", 0x10000, 0xf87efd75, 0x04 | BRF_GRA }, // 18
- { "b3.4f", 0x10000, 0x98856cb4, 0x04 | BRF_GRA }, // 19
-
- { "nin-v0.7a", 0x10000, 0xa32e8caf, 0x05 | BRF_SND }, // 20 DAC Samples
-
- { "nin_c-pr.1c", 0x01000, 0x00000000, 0x00 | BRF_OPT | BRF_NODUMP }, // 21 i8751 Code
-
- { "m72_a-8l.8l", 0x00100, 0xb460c438, 0x00 | BRF_OPT }, // 22 Proms
- { "m72_a-9l.9l", 0x00100, 0xa4f2c4bc, 0x00 | BRF_OPT }, // 23
-
- { "nin_c-3f.3f", 0x00100, 0x5402fc07, 0x00 | BRF_OPT }, // 24 PLDs
- { "m72_a-3d.3d", 0x00100, 0xde85dac3, 0x00 | BRF_OPT }, // 25
- { "m72_a-4d.4d", 0x00100, 0x59676de1, 0x00 | BRF_OPT }, // 26
-};
-
-STD_ROM_PICK(nspirit)
-STD_ROM_FN(nspirit)
-
-static INT32 nspiritInit()
-{
- install_protection(nspirit);
-
- return DrvInit(common_080000_0a0000, sound_ram_map, NULL, Z80_FAKE_NMI, 0);
-}
-
-struct BurnDriver BurnDrvNspirit = {
- "nspirit", NULL, NULL, NULL, "1988",
- "Ninja Spirit\0", NULL, "Irem", "M72",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_IREM_M72, GBF_SCRFIGHT, 0,
- NULL, nspiritRomInfo, nspiritRomName, NULL, NULL, CommonInputInfo, NspiritDIPInfo,
- nspiritInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x200,
- 384, 256, 4, 3
-};
-
-
-// Saigo no Nindou (Japan)
-
-static struct BurnRomInfo nspiritjRomDesc[] = {
- { "c-h0", 0x10000, 0x8603fab2, 0x01 | BRF_PRG | BRF_ESS }, // 0 V30 Code
- { "c-l0", 0x10000, 0xe520fa35, 0x01 | BRF_PRG | BRF_ESS }, // 1
- { "nin_c-h1.6j", 0x10000, 0xcbc10586, 0x01 | BRF_PRG | BRF_ESS }, // 2
- { "nin_c-l1.6c", 0x10000, 0xb75c9a4d, 0x01 | BRF_PRG | BRF_ESS }, // 3
- { "nin_c-h2.6l", 0x10000, 0x8ad818fa, 0x01 | BRF_PRG | BRF_ESS }, // 4
- { "nin_c-l2.6b", 0x10000, 0xc52ca78c, 0x01 | BRF_PRG | BRF_ESS }, // 5
- { "c-h3", 0x10000, 0x95b63a61, 0x01 | BRF_PRG | BRF_ESS }, // 6
- { "c-l3", 0x10000, 0xe754a87a, 0x01 | BRF_PRG | BRF_ESS }, // 7
-
- { "nin-r00.7m", 0x20000, 0x5f61d30b, 0x02 | BRF_GRA }, // 8 Sprites
- { "nin-r10.7j", 0x20000, 0x0caad107, 0x02 | BRF_GRA }, // 9
- { "nin-r20.7f", 0x20000, 0xef3617d3, 0x02 | BRF_GRA }, // 10
- { "nin-r30.7d", 0x20000, 0x175d2a24, 0x02 | BRF_GRA }, // 11
-
- { "nin_b-a0.4c", 0x10000, 0x63f8f658, 0x03 | BRF_GRA }, // 12 Foreground Tiles
- { "nin_b-a1.4d", 0x10000, 0x75eb8306, 0x03 | BRF_GRA }, // 13
- { "nin_b-a2.4b", 0x10000, 0xdf532172, 0x03 | BRF_GRA }, // 14
- { "nin_b-a3.4e", 0x10000, 0x4dedd64c, 0x03 | BRF_GRA }, // 15
-
- { "b0.4j", 0x10000, 0x1b0e08a6, 0x04 | BRF_GRA }, // 16 Background Tiles
- { "b1.4k", 0x10000, 0x728727f0, 0x04 | BRF_GRA }, // 17
- { "b2.4h", 0x10000, 0xf87efd75, 0x04 | BRF_GRA }, // 18
- { "b3.4f", 0x10000, 0x98856cb4, 0x04 | BRF_GRA }, // 19
-
- { "nin-v0.7a", 0x10000, 0xa32e8caf, 0x05 | BRF_SND }, // 20 DAC Samples
-
- { "nin_c-pr.1c", 0x01000, 0x802d440a, 0x00 | BRF_OPT }, // 21 i8751 Code
-};
-
-STD_ROM_PICK(nspiritj)
-STD_ROM_FN(nspiritj)
-
-static INT32 nspiritjInit()
-{
- m72_install_protection(nspirit_code, nspiritj_crc, nspirit_sample_offsets);
-
- return DrvInit(common_080000_0a0000, sound_ram_map, NULL, Z80_FAKE_NMI, 0);
-}
-
-struct BurnDriver BurnDrvNspiritj = {
- "nspiritj", "nspirit", NULL, NULL, "1988",
- "Saigo no Nindou (Japan)\0", NULL, "Irem", "M72",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_IREM_M72, GBF_SCRFIGHT, 0,
- NULL, nspiritjRomInfo, nspiritjRomName, NULL, NULL, CommonInputInfo, NspiritDIPInfo,
- nspiritjInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x200,
- 384, 256, 4, 3
-};
-
-
-// Image Fight (Japan, revision A)
-
-static struct BurnRomInfo imgfightRomDesc[] = {
- { "if-c-h0-a.bin", 0x10000, 0xf5c94464, 0x01 | BRF_PRG | BRF_ESS }, // 0 V30 Code
- { "if-c-l0-a.bin", 0x10000, 0x87c534fe, 0x01 | BRF_PRG | BRF_ESS }, // 1
- { "if-c-h3.bin", 0x20000, 0xea030541, 0x01 | BRF_PRG | BRF_ESS }, // 2
- { "if-c-l3.bin", 0x20000, 0xc66ae348, 0x01 | BRF_PRG | BRF_ESS }, // 3
-
- { "if-c-00.bin", 0x20000, 0x745e6638, 0x02 | BRF_GRA }, // 4 Sprites
- { "if-c-10.bin", 0x20000, 0xb7108449, 0x02 | BRF_GRA }, // 5
- { "if-c-20.bin", 0x20000, 0xaef33cba, 0x02 | BRF_GRA }, // 6
- { "if-c-30.bin", 0x20000, 0x1f98e695, 0x02 | BRF_GRA }, // 7
-
- { "if-a-a0.bin", 0x10000, 0x34ee2d77, 0x03 | BRF_GRA }, // 8 Foreground Tiles
- { "if-a-a1.bin", 0x10000, 0x6bd2845b, 0x03 | BRF_GRA }, // 9
- { "if-a-a2.bin", 0x10000, 0x090d50e5, 0x03 | BRF_GRA }, // 10
- { "if-a-a3.bin", 0x10000, 0x3a8e3083, 0x03 | BRF_GRA }, // 11
-
- { "if-a-b0.bin", 0x10000, 0xb425c829, 0x04 | BRF_GRA }, // 12 Background Tiles
- { "if-a-b1.bin", 0x10000, 0xe9bfe23e, 0x04 | BRF_GRA }, // 13
- { "if-a-b2.bin", 0x10000, 0x256e50f2, 0x04 | BRF_GRA }, // 14
- { "if-a-b3.bin", 0x10000, 0x4c682785, 0x04 | BRF_GRA }, // 15
-
- { "if-c-v0.bin", 0x10000, 0xcb64a194, 0x05 | BRF_SND }, // 16 DAC Samples
- { "if-c-v1.bin", 0x10000, 0x45b68bf5, 0x05 | BRF_SND }, // 17
-
- { "imgfight_i8751h.bin",0x01000, 0x00000000, 0x00 | BRF_OPT | BRF_NODUMP }, // 18 i8751 Code
-};
-
-STD_ROM_PICK(imgfight)
-STD_ROM_FN(imgfight)
-
-static INT32 imgfightRomLoadCallback()
-{
- memmove(DrvV30ROM + 0x40000, DrvV30ROM + 0x20000, 0x40000);
-
- return 0;
-}
-
-static INT32 imgfightInit()
-{
- install_protection(imgfight);
-
- return DrvInit(common_080000_0a0000, sound_ram_map, imgfightRomLoadCallback, Z80_FAKE_NMI, 0);
-}
-
-struct BurnDriver BurnDrvImgfight = {
- "imgfight", NULL, NULL, NULL, "1988",
- "Image Fight (Japan, revision A)\0", NULL, "Irem", "M72",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL, 2, HARDWARE_IREM_M72, GBF_VERSHOOT, 0,
- NULL, imgfightRomInfo, imgfightRomName, NULL, NULL, CommonInputInfo, ImgfightDIPInfo,
- imgfightInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x200,
- 256, 384, 3, 4
-};
-
-
-// Image Fight (Japan)
-
-static struct BurnRomInfo imgfightjRomDesc[] = {
- { "if-c-h0.bin", 0x10000, 0x592d2d80, 0x01 | BRF_PRG | BRF_ESS }, // 0 V30 Code
- { "if-c-l0.bin", 0x10000, 0x61f89056, 0x01 | BRF_PRG | BRF_ESS }, // 1
- { "if-c-h3.bin", 0x20000, 0xea030541, 0x01 | BRF_PRG | BRF_ESS }, // 2
- { "if-c-l3.bin", 0x20000, 0xc66ae348, 0x01 | BRF_PRG | BRF_ESS }, // 3
-
- { "if-c-00.bin", 0x20000, 0x745e6638, 0x02 | BRF_GRA }, // 4 Sprites
- { "if-c-10.bin", 0x20000, 0xb7108449, 0x02 | BRF_GRA }, // 5
- { "if-c-20.bin", 0x20000, 0xaef33cba, 0x02 | BRF_GRA }, // 6
- { "if-c-30.bin", 0x20000, 0x1f98e695, 0x02 | BRF_GRA }, // 7
-
- { "if-a-a0.bin", 0x10000, 0x34ee2d77, 0x03 | BRF_GRA }, // 8 Foreground Tiles
- { "if-a-a1.bin", 0x10000, 0x6bd2845b, 0x03 | BRF_GRA }, // 9
- { "if-a-a2.bin", 0x10000, 0x090d50e5, 0x03 | BRF_GRA }, // 10
- { "if-a-a3.bin", 0x10000, 0x3a8e3083, 0x03 | BRF_GRA }, // 11
-
- { "if-a-b0.bin", 0x10000, 0xb425c829, 0x04 | BRF_GRA }, // 12 Background Tiles
- { "if-a-b1.bin", 0x10000, 0xe9bfe23e, 0x04 | BRF_GRA }, // 13
- { "if-a-b2.bin", 0x10000, 0x256e50f2, 0x04 | BRF_GRA }, // 14
- { "if-a-b3.bin", 0x10000, 0x4c682785, 0x04 | BRF_GRA }, // 15
-
- { "if-c-v0.bin", 0x10000, 0xcb64a194, 0x05 | BRF_SND }, // 16 DAC Samples
- { "if-c-v1.bin", 0x10000, 0x45b68bf5, 0x05 | BRF_SND }, // 17
-
- { "imgfightj_i8751h.bin",0x01000, 0xef0d5098, 0x00 | BRF_OPT }, // 18 i8751 Code
-};
-
-STD_ROM_PICK(imgfightj)
-STD_ROM_FN(imgfightj)
-
-struct BurnDriver BurnDrvImgfightj = {
- "imgfightj", "imgfight", NULL, NULL, "1988",
- "Image Fight (Japan)\0", NULL, "Irem", "M72",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL, 2, HARDWARE_IREM_M72, GBF_VERSHOOT, 0,
- NULL, imgfightjRomInfo, imgfightjRomName, NULL, NULL, CommonInputInfo, ImgfightDIPInfo,
- imgfightInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x200,
- 256, 384, 3, 4
-};
-
-
-// Air Duel (World, M82-A-A + M82-B-A)
-
-static struct BurnRomInfo airduelRomDesc[] = {
- { "AD_(M82)_A-H0-D.IC52", 0x20000, 0xdbecc726, 0x01 | BRF_PRG | BRF_ESS }, // 0 V30 Code
- { "AD_(M82)_A-L0-D.IC60", 0x20000, 0x6a9fcf59, 0x01 | BRF_PRG | BRF_ESS }, // 1
- { "AD_(M82)_A-H1-D.IC51", 0x20000, 0xbafc152a, 0x01 | BRF_PRG | BRF_ESS }, // 2
- { "AD_(M82)_A-L1-D.IC59", 0x20000, 0x9e2b1ae7, 0x01 | BRF_PRG | BRF_ESS }, // 3
-
- { "AD_(M82)_A-SP-D.IC15", 0x10000, 0x16a858a3, 0x06 | BRF_PRG | BRF_ESS }, // 4 Z80 Code
-
- { "AD_(M82)_B-N0-D.IC44", 0x20000, 0x2f0d599b, 0x02 | BRF_GRA }, // 5 Sprites
- { "AD_(M82)_B-N1-D.IC45", 0x20000, 0x9865856b, 0x02 | BRF_GRA }, // 6
- { "AD_(M82)_B-N2-D.IC46", 0x20000, 0xd392aef2, 0x02 | BRF_GRA }, // 7
- { "AD_(M82)_B-N3-D.IC36", 0x20000, 0x923240c3, 0x02 | BRF_GRA }, // 8
-
- { "AD_(M82)_A-C0-D.IC49", 0x20000, 0xce134b47, 0x03 | BRF_GRA }, // 9 Foreground Tiles
- { "AD_(M82)_A-C1-D.IC48", 0x20000, 0x097fd853, 0x03 | BRF_GRA }, // 10
- { "AD_(M82)_A-C2-D.IC57", 0x20000, 0x6a94c1b9, 0x03 | BRF_GRA }, // 11
- { "AD_(M82)_A-C3-D.IC56", 0x20000, 0x6637c349, 0x03 | BRF_GRA }, // 12
-
- { "mt_f0.bin", 0x20000, 0x2d5e05d5, 0x0e | BRF_GRA }, // 17 Sprites 2
- { "mt_f1.bin", 0x20000, 0xc68cd65f, 0x0e | BRF_GRA }, // 18
- { "mt_f2.bin", 0x20000, 0xa71feb2d, 0x0e | BRF_GRA }, // 19
- { "mt_f3.bin", 0x20000, 0x179f7562, 0x0e | BRF_GRA }, // 20
-
- { "AD_(M82)_A-V0-D.IC12", 0x20000, 0x339f474d, 0x05 | BRF_SND }, // 21 DAC Samples
-};
-
-STD_ROM_PICK(airduel)
-STD_ROM_FN(airduel)
-
-static INT32 airduelInit()
-{
- return DrvInit(majtitle_main_cpu_map, sound_rom_map, NULL, Z80_REAL_NMI, 6);
-}
-
-struct BurnDriver BurnDrvAirduel = {
- "airduel", NULL, NULL, NULL, "1990",
- "Air Duel (World, M82-A-A + M82-B-A)\0", NULL, "Irem", "M82",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL, 2, HARDWARE_IREM_M72, GBF_VERSHOOT, 0,
- NULL, airduelRomInfo, airduelRomName, NULL, NULL, CommonInputInfo, AirduelDIPInfo,
- airduelInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x200,
- 256, 384, 3, 4
-};
-
-
-// Air Duel (Japan, M72)
-
-static struct BurnRomInfo airduelm72RomDesc[] = {
- { "ad-c-h0.bin", 0x20000, 0x12140276, 0x01 | BRF_PRG | BRF_ESS }, // 0 V30 Code
- { "ad-c-l0.bin", 0x20000, 0x4ac0b91d, 0x01 | BRF_PRG | BRF_ESS }, // 1
- { "ad-c-h3.bin", 0x20000, 0x9f7cfca3, 0x01 | BRF_PRG | BRF_ESS }, // 2
- { "ad-c-l3.bin", 0x20000, 0x9dd343f7, 0x01 | BRF_PRG | BRF_ESS }, // 3
-
- { "ad-00.bin", 0x20000, 0x2f0d599b, 0x02 | BRF_GRA }, // 4 Sprites
- { "ad-10.bin", 0x20000, 0x9865856b, 0x02 | BRF_GRA }, // 5
- { "ad-20.bin", 0x20000, 0xd392aef2, 0x02 | BRF_GRA }, // 6
- { "ad-30.bin", 0x20000, 0x923240c3, 0x02 | BRF_GRA }, // 7
-
- { "ad-a0.bin", 0x20000, 0xce134b47, 0x03 | BRF_GRA }, // 8 Foreground Tiles
- { "ad-a1.bin", 0x20000, 0x097fd853, 0x03 | BRF_GRA }, // 9
- { "ad-a2.bin", 0x20000, 0x6a94c1b9, 0x03 | BRF_GRA }, // 10
- { "ad-a3.bin", 0x20000, 0x6637c349, 0x03 | BRF_GRA }, // 11
-
- { "ad-b0.bin", 0x20000, 0xce134b47, 0x04 | BRF_GRA }, // 12 Background Tiles
- { "ad-b1.bin", 0x20000, 0x097fd853, 0x04 | BRF_GRA }, // 13
- { "ad-b2.bin", 0x20000, 0x6a94c1b9, 0x04 | BRF_GRA }, // 14
- { "ad-b3.bin", 0x20000, 0x6637c349, 0x04 | BRF_GRA }, // 15
-
- { "ad-v0.bin", 0x20000, 0x339f474d, 0x05 | BRF_SND }, // 16 DAC Samples
-
- { "airduel_i8751.mcu", 0x10000, 0x00000000, 0x00 | BRF_OPT | BRF_NODUMP }, // 17 i8751 Code
-};
-
-STD_ROM_PICK(airduelm72)
-STD_ROM_FN(airduelm72)
-
-static INT32 airduelm72Init()
-{
- install_protection(airduel);
-
- return DrvInit(common_080000_0a0000, sound_ram_map, NULL, Z80_FAKE_NMI, 0);
-}
-
-struct BurnDriver BurnDrvAirduelm72 = {
- "airduelm72", "airduel", NULL, NULL, "1990",
- "Air Duel (Japan, M72)\0", NULL, "Irem", "M72",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_CLONE, 2, HARDWARE_IREM_M72, GBF_VERSHOOT, 0,
- NULL, airduelm72RomInfo, airduelm72RomName, NULL, NULL, CommonInputInfo, AirduelDIPInfo,
- airduelm72Init, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x200,
- 256, 384, 3, 4
-};
-
-
-// R-Type II
-
-static struct BurnRomInfo rtype2RomDesc[] = {
- { "rt2-a-h0-d.54", 0x20000, 0xd8ece6f4, 0x01 | BRF_PRG | BRF_ESS }, // 0 V30 Code
- { "rt2-a-l0-d.60", 0x20000, 0x32cfb2e4, 0x01 | BRF_PRG | BRF_ESS }, // 1
- { "rt2-a-h1-d.53", 0x20000, 0x4f6e9b15, 0x01 | BRF_PRG | BRF_ESS }, // 2
- { "rt2-a-l1-d.59", 0x20000, 0x0fd123bf, 0x01 | BRF_PRG | BRF_ESS }, // 3
-
- { "ic17.4f", 0x10000, 0x73ffecb4, 0x06 | BRF_PRG | BRF_ESS }, // 4 Z80 Code
-
- { "ic31.6l", 0x20000, 0x2cd8f913, 0x02 | BRF_GRA }, // 5 Sprites
- { "ic21.4l", 0x20000, 0x5033066d, 0x02 | BRF_GRA }, // 6
- { "ic32.6m", 0x20000, 0xec3a0450, 0x02 | BRF_GRA }, // 7
- { "ic22.4m", 0x20000, 0xdb6176fc, 0x02 | BRF_GRA }, // 8
-
- { "ic50.7s", 0x20000, 0xf3f8736e, 0x03 | BRF_GRA }, // 9 Foreground & Background Tiles
- { "ic51.7u", 0x20000, 0xb4c543af, 0x03 | BRF_GRA }, // 10
- { "ic56.8s", 0x20000, 0x4cb80d66, 0x03 | BRF_GRA }, // 11
- { "ic57.8u", 0x20000, 0xbee128e0, 0x03 | BRF_GRA }, // 12
- { "ic65.9r", 0x20000, 0x2dc9c71a, 0x03 | BRF_GRA }, // 13
- { "ic66.9u", 0x20000, 0x7533c428, 0x03 | BRF_GRA }, // 14
- { "ic63.9m", 0x20000, 0xa6ad67f2, 0x03 | BRF_GRA }, // 15
- { "ic64.9p", 0x20000, 0x3686d555, 0x03 | BRF_GRA }, // 16
-
- { "ic14.4c", 0x20000, 0x637172d5, 0x05 | BRF_SND }, // 17 DAC Samples
-};
-
-STD_ROM_PICK(rtype2)
-STD_ROM_FN(rtype2)
-
-static INT32 rtype2Init()
-{
- return DrvInit(rtype2_main_cpu_map, sound_rom_map, NULL, Z80_REAL_NMI, 1);
-}
-
-struct BurnDriver BurnDrvRtype2 = {
- "rtype2", NULL, NULL, NULL, "1989",
- "R-Type II\0", NULL, "Irem", "M82",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_IREM_M72, GBF_HORSHOOT, 0,
- NULL, rtype2RomInfo, rtype2RomName, NULL, NULL, CommonInputInfo, Rtype2DIPInfo,
- rtype2Init, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x200,
- 384, 256, 4, 3
-};
-
-
-// R-Type II (Japan)
-
-static struct BurnRomInfo rtype2jRomDesc[] = {
- { "rt2-a-h0.54", 0x20000, 0x7857ccf6, 0x01 | BRF_PRG | BRF_ESS }, // 0 V30 Code
- { "rt2-a-l0.60", 0x20000, 0xcb22cd6e, 0x01 | BRF_PRG | BRF_ESS }, // 1
- { "rt2-a-h1.53", 0x20000, 0x49e75d28, 0x01 | BRF_PRG | BRF_ESS }, // 2
- { "rt2-a-l1.59", 0x20000, 0x12ec1676, 0x01 | BRF_PRG | BRF_ESS }, // 3
-
- { "ic17.4f", 0x10000, 0x73ffecb4, 0x06 | BRF_PRG | BRF_ESS }, // 4 Z80 Code
-
- { "ic31.6l", 0x20000, 0x2cd8f913, 0x02 | BRF_GRA }, // 5 Sprites
- { "ic21.4l", 0x20000, 0x5033066d, 0x02 | BRF_GRA }, // 6
- { "ic32.6m", 0x20000, 0xec3a0450, 0x02 | BRF_GRA }, // 7
- { "ic22.4m", 0x20000, 0xdb6176fc, 0x02 | BRF_GRA }, // 8
-
- { "ic50.7s", 0x20000, 0xf3f8736e, 0x03 | BRF_GRA }, // 9 Foreground & Background Tiles
- { "ic51.7u", 0x20000, 0xb4c543af, 0x03 | BRF_GRA }, // 10
- { "ic56.8s", 0x20000, 0x4cb80d66, 0x03 | BRF_GRA }, // 11
- { "ic57.8u", 0x20000, 0xbee128e0, 0x03 | BRF_GRA }, // 12
- { "ic65.9r", 0x20000, 0x2dc9c71a, 0x03 | BRF_GRA }, // 13
- { "ic66.9u", 0x20000, 0x7533c428, 0x03 | BRF_GRA }, // 14
- { "ic63.9m", 0x20000, 0xa6ad67f2, 0x03 | BRF_GRA }, // 15
- { "ic64.9p", 0x20000, 0x3686d555, 0x03 | BRF_GRA }, // 16
-
- { "ic14.4c", 0x20000, 0x637172d5, 0x05 | BRF_SND }, // 17 DAC Samples
-
- { "rt2_b-4n-.bin", 0x00100, 0xb460c438, 0x00 | BRF_OPT }, // 18 Proms
- { "rt2_b-4p-.bin", 0x00100, 0xa4f2c4bc, 0x00 | BRF_OPT }, // 19
-};
-
-STD_ROM_PICK(rtype2j)
-STD_ROM_FN(rtype2j)
-
-struct BurnDriver BurnDrvRtype2j = {
- "rtype2j", "rtype2", NULL, NULL, "1989",
- "R-Type II (Japan)\0", NULL, "Irem", "M82",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_IREM_M72, GBF_HORSHOOT, 0,
- NULL, rtype2jRomInfo, rtype2jRomName, NULL, NULL, CommonInputInfo, Rtype2DIPInfo,
- rtype2Init, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x200,
- 384, 256, 4, 3
-};
-
-
-// R-Type II (Japan, revision C)
-
-static struct BurnRomInfo rtype2jcRomDesc[] = {
- { "rt2-a-h0-c.54", 0x20000, 0xef9a9990, 0x01 | BRF_PRG | BRF_ESS }, // 0 V30 Code
- { "rt2-a-l0-c.60", 0x20000, 0xd8b9da64, 0x01 | BRF_PRG | BRF_ESS }, // 1
- { "rt2-a-h1-c.53", 0x20000, 0x1b1870f4, 0x01 | BRF_PRG | BRF_ESS }, // 2
- { "rt2-a-l1-c.59", 0x20000, 0x60fdff35, 0x01 | BRF_PRG | BRF_ESS }, // 3
-
- { "ic17.4f", 0x10000, 0x73ffecb4, 0x06 | BRF_PRG | BRF_ESS }, // 4 Z80 Code
-
- { "ic31.6l", 0x20000, 0x2cd8f913, 0x02 | BRF_GRA }, // 5 Sprites
- { "ic21.4l", 0x20000, 0x5033066d, 0x02 | BRF_GRA }, // 6
- { "ic32.6m", 0x20000, 0xec3a0450, 0x02 | BRF_GRA }, // 7
- { "ic22.4m", 0x20000, 0xdb6176fc, 0x02 | BRF_GRA }, // 8
-
- { "ic50.7s", 0x20000, 0xf3f8736e, 0x03 | BRF_GRA }, // 9 Foreground & Background Tiles
- { "ic51.7u", 0x20000, 0xb4c543af, 0x03 | BRF_GRA }, // 10
- { "ic56.8s", 0x20000, 0x4cb80d66, 0x03 | BRF_GRA }, // 11
- { "ic57.8u", 0x20000, 0xbee128e0, 0x03 | BRF_GRA }, // 12
- { "ic65.9r", 0x20000, 0x2dc9c71a, 0x03 | BRF_GRA }, // 13
- { "ic66.9u", 0x20000, 0x7533c428, 0x03 | BRF_GRA }, // 14
- { "ic63.9m", 0x20000, 0xa6ad67f2, 0x03 | BRF_GRA }, // 15
- { "ic64.9p", 0x20000, 0x3686d555, 0x03 | BRF_GRA }, // 16
-
- { "ic14.4c", 0x20000, 0x637172d5, 0x05 | BRF_SND }, // 17 DAC Samples
-};
-
-STD_ROM_PICK(rtype2jc)
-STD_ROM_FN(rtype2jc)
-
-struct BurnDriver BurnDrvRtype2jc = {
- "rtype2jc", "rtype2", NULL, NULL, "1989",
- "R-Type II (Japan, revision C)\0", NULL, "Irem", "M82",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_IREM_M72, GBF_HORSHOOT, 0,
- NULL, rtype2jcRomInfo, rtype2jcRomName, NULL, NULL, CommonInputInfo, Rtype2DIPInfo,
- rtype2Init, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x200,
- 384, 256, 4, 3
-};
-
-
-// Hammerin' Harry (World)
-
-static struct BurnRomInfo hharryRomDesc[] = {
- { "a-h0-v.rom", 0x20000, 0xc52802a5, 0x01 | BRF_PRG | BRF_ESS }, // 0 V30 Code
- { "a-l0-v.rom", 0x20000, 0xf463074c, 0x01 | BRF_PRG | BRF_ESS }, // 1
- { "a-h1-0.rom", 0x10000, 0x3ae21335, 0x01 | BRF_PRG | BRF_ESS }, // 2
- { "a-l1-0.rom", 0x10000, 0xbc6ac5f9, 0x01 | BRF_PRG | BRF_ESS }, // 3
-
- { "a-sp-0.rom", 0x10000, 0x80e210e7, 0x06 | BRF_PRG | BRF_ESS }, // 4 Z80 Code
-
- { "hh_00.rom", 0x20000, 0xec5127ef, 0x02 | BRF_GRA }, // 5 Sprites
- { "hh_10.rom", 0x20000, 0xdef65294, 0x02 | BRF_GRA }, // 6
- { "hh_20.rom", 0x20000, 0xbb0d6ad4, 0x02 | BRF_GRA }, // 7
- { "hh_30.rom", 0x20000, 0x4351044e, 0x02 | BRF_GRA }, // 8
-
- { "hh_a0.rom", 0x20000, 0xc577ba5f, 0x03 | BRF_GRA }, // 9 Foreground & Background Tiles
- { "hh_a1.rom", 0x20000, 0x429d12ab, 0x03 | BRF_GRA }, // 10
- { "hh_a2.rom", 0x20000, 0xb5b163b0, 0x03 | BRF_GRA }, // 11
- { "hh_a3.rom", 0x20000, 0x8ef566a1, 0x03 | BRF_GRA }, // 12
-
- { "a-v0-0.rom", 0x20000, 0xfaaacaff, 0x05 | BRF_SND }, // 13 DAC Samples
-};
-
-STD_ROM_PICK(hharry)
-STD_ROM_FN(hharry)
-
-static INT32 hharryInit()
-{
- return DrvInit(common_080000_0a0000, sound_rom_map, dbreedm72RomLoadCallback, Z80_REAL_NMI, 2);
-}
-
-struct BurnDriver BurnDrvHharry = {
- "hharry", NULL, NULL, NULL, "1990",
- "Hammerin' Harry (World)\0", NULL, "Irem", "M82",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_IREM_M72, GBF_SCRFIGHT | GBF_PLATFORM, 0,
- NULL, hharryRomInfo, hharryRomName, NULL, NULL, CommonInputInfo, HharryDIPInfo,
- hharryInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x200,
- 384, 256, 4, 3
-};
-
-
-// Hammerin' Harry (US)
-
-static struct BurnRomInfo hharryuRomDesc[] = {
- { "a-ho-u.8d", 0x20000, 0xede7f755, 0x01 | BRF_PRG | BRF_ESS }, // 0 V30 Code
- { "a-lo-u.9d", 0x20000, 0xdf0726ae, 0x01 | BRF_PRG | BRF_ESS }, // 1
- { "a-h1-f.8b", 0x10000, 0x31b741c5, 0x01 | BRF_PRG | BRF_ESS }, // 2
- { "a-l1-f.9b", 0x10000, 0xb23e966c, 0x01 | BRF_PRG | BRF_ESS }, // 3
-
- { "a-sp-0.rom", 0x10000, 0x80e210e7, 0x06 | BRF_PRG | BRF_ESS }, // 4 Z80 Code
-
- { "hh_00.rom", 0x20000, 0xec5127ef, 0x02 | BRF_GRA }, // 5 Sprites
- { "hh_10.rom", 0x20000, 0xdef65294, 0x02 | BRF_GRA }, // 6
- { "hh_20.rom", 0x20000, 0xbb0d6ad4, 0x02 | BRF_GRA }, // 7
- { "hh_30.rom", 0x20000, 0x4351044e, 0x02 | BRF_GRA }, // 8
-
- { "hh_a0.rom", 0x20000, 0xc577ba5f, 0x03 | BRF_GRA }, // 9 Foreground & Background Tiles
- { "hh_a1.rom", 0x20000, 0x429d12ab, 0x03 | BRF_GRA }, // 10
- { "hh_a2.rom", 0x20000, 0xb5b163b0, 0x03 | BRF_GRA }, // 11
- { "hh_a3.rom", 0x20000, 0x8ef566a1, 0x03 | BRF_GRA }, // 12
-
- { "a-v0-0.rom", 0x20000, 0xfaaacaff, 0x05 | BRF_SND }, // 13 DAC Samples
-};
-
-STD_ROM_PICK(hharryu)
-STD_ROM_FN(hharryu)
-
-static INT32 hharryuInit()
-{
- return DrvInit(hharryu_main_cpu_map, sound_rom_map, dbreedm72RomLoadCallback, Z80_REAL_NMI, 1);
-}
-
-struct BurnDriver BurnDrvHharryu = {
- "hharryu", "hharry", NULL, NULL, "1990",
- "Hammerin' Harry (US)\0", NULL, "Irem America", "M82",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_IREM_M72, GBF_SCRFIGHT | GBF_PLATFORM, 0,
- NULL, hharryuRomInfo, hharryuRomName, NULL, NULL, CommonInputInfo, HharryDIPInfo,
- hharryuInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x200,
- 384, 256, 4, 3
-};
-
-
-// Daiku no Gensan (Japan, M82)
-
-static struct BurnRomInfo dkgensanRomDesc[] = {
- { "gen-a-h0.bin", 0x20000, 0x07a45f6d, 0x01 | BRF_PRG | BRF_ESS }, // 0 V30 Code
- { "gen-a-l0.bin", 0x20000, 0x46478fea, 0x01 | BRF_PRG | BRF_ESS }, // 1
- { "gen-a-h1.bin", 0x10000, 0x54e5b73c, 0x01 | BRF_PRG | BRF_ESS }, // 2
- { "gen-a-l1.bin", 0x10000, 0x894f8a9f, 0x01 | BRF_PRG | BRF_ESS }, // 3
-
- { "gen-a-sp.bin", 0x10000, 0xe83cfc2c, 0x06 | BRF_PRG | BRF_ESS }, // 4 Z80 Code
-
- { "hh_00.rom", 0x20000, 0xec5127ef, 0x02 | BRF_GRA }, // 5 Sprites
- { "hh_10.rom", 0x20000, 0xdef65294, 0x02 | BRF_GRA }, // 6
- { "hh_20.rom", 0x20000, 0xbb0d6ad4, 0x02 | BRF_GRA }, // 7
- { "hh_30.rom", 0x20000, 0x4351044e, 0x02 | BRF_GRA }, // 8
-
- { "hh_a0.rom", 0x20000, 0xc577ba5f, 0x03 | BRF_GRA }, // 9 Foreground & Background Tiles
- { "hh_a1.rom", 0x20000, 0x429d12ab, 0x03 | BRF_GRA }, // 10
- { "hh_a2.rom", 0x20000, 0xb5b163b0, 0x03 | BRF_GRA }, // 11
- { "hh_a3.rom", 0x20000, 0x8ef566a1, 0x03 | BRF_GRA }, // 12
-
- { "gen-vo.bin", 0x20000, 0xd8595c66, 0x05 | BRF_SND }, // 13 DAC Samples
-};
-
-STD_ROM_PICK(dkgensan)
-STD_ROM_FN(dkgensan)
-
-struct BurnDriver BurnDrvDkgensan = {
- "dkgensan", "hharry", NULL, NULL, "1990",
- "Daiku no Gensan (Japan, M82)\0", NULL, "Irem", "M82",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_IREM_M72, GBF_SCRFIGHT | GBF_PLATFORM, 0,
- NULL, dkgensanRomInfo, dkgensanRomName, NULL, NULL, CommonInputInfo, HharryDIPInfo,
- hharryuInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x200,
- 384, 256, 4, 3
-};
-
-
-// Daiku no Gensan (Japan, M72)
-
-static struct BurnRomInfo dkgensanm72RomDesc[] = {
- { "ge72-h0.bin", 0x20000, 0xa0ad992c, 0x01 | BRF_PRG | BRF_ESS }, // 0 V30 Code
- { "ge72-l0.bin", 0x20000, 0x996396f0, 0x01 | BRF_PRG | BRF_ESS }, // 1
- { "ge72-h3.bin", 0x10000, 0xd8b86005, 0x01 | BRF_PRG | BRF_ESS }, // 2
- { "ge72-l3.bin", 0x10000, 0x23d303a5, 0x01 | BRF_PRG | BRF_ESS }, // 3
-
- { "hh_00.rom", 0x20000, 0xec5127ef, 0x02 | BRF_GRA }, // 4 Sprites
- { "hh_10.rom", 0x20000, 0xdef65294, 0x02 | BRF_GRA }, // 5
- { "hh_20.rom", 0x20000, 0xbb0d6ad4, 0x02 | BRF_GRA }, // 6
- { "hh_30.rom", 0x20000, 0x4351044e, 0x02 | BRF_GRA }, // 7
-
- { "ge72b-a0.bin", 0x10000, 0xf5f56b2a, 0x03 | BRF_GRA }, // 8 Foreground Tiles
- { "ge72-a1.bin", 0x10000, 0xd194ea08, 0x03 | BRF_GRA }, // 9
- { "ge72-a2.bin", 0x10000, 0x2b06bcc3, 0x03 | BRF_GRA }, // 10
- { "ge72-a3.bin", 0x10000, 0x94b96bfa, 0x03 | BRF_GRA }, // 11
-
- { "ge72-b0.bin", 0x10000, 0x208796b3, 0x04 | BRF_GRA }, // 12 Background Tiles
- { "ge72-b1.bin", 0x10000, 0xb4a7f490, 0x04 | BRF_GRA }, // 13
- { "ge72b-b2.bin", 0x10000, 0x34fe8f7f, 0x04 | BRF_GRA }, // 14
- { "ge72b-b3.bin", 0x10000, 0x4b0e92f4, 0x04 | BRF_GRA }, // 15
-
- { "gen-vo.bin", 0x20000, 0xd8595c66, 0x05 | BRF_SND }, // 16 DAC Samples
-
- { "dkgenm72_i8751.mcu", 0x10000, 0x00000000, 0x00 | BRF_OPT | BRF_NODUMP }, // 17 i8751 Code
-};
-
-STD_ROM_PICK(dkgensanm72)
-STD_ROM_FN(dkgensanm72)
-
-static INT32 dkgensanm72Init()
-{
- install_protection(dkgenm72);
-
- return DrvInit(common_080000_0a0000, sound_ram_map, dbreedm72RomLoadCallback, Z80_FAKE_NMI, 0);
-}
-
-struct BurnDriver BurnDrvDkgensanm72 = {
- "dkgensanm72", "hharry", NULL, NULL, "1990",
- "Daiku no Gensan (Japan, M72)\0", NULL, "Irem", "M72",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_IREM_M72, GBF_SCRFIGHT | GBF_PLATFORM, 0,
- NULL, dkgensanm72RomInfo, dkgensanm72RomName, NULL, NULL, CommonInputInfo, HharryDIPInfo,
- dkgensanm72Init, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x200,
- 384, 256, 4, 3
-};
-
-
-// Lightning Swords
-
-static struct BurnRomInfo ltswordsRomDesc[] = {
- { "h0.ic55", 0x20000, 0x22f342b2, 0x01 | BRF_PRG | BRF_ESS }, // 0 V30 Code
- { "l0.ic61", 0x20000, 0x0210d592, 0x01 | BRF_PRG | BRF_ESS }, // 1
-
- { "ken_d-sp.rom", 0x10000, 0x233ca1cf, 0x06 | BRF_PRG | BRF_ESS }, // 2 Z80 Code
-
- { "ken_m31.rom", 0x20000, 0xe00b95a6, 0x02 | BRF_GRA }, // 3 Sprites
- { "ken_m21.rom", 0x20000, 0xd7722f87, 0x02 | BRF_GRA }, // 4
- { "ken_m32.rom", 0x20000, 0x30a844c4, 0x02 | BRF_GRA }, // 5
- { "ken_m22.rom", 0x20000, 0xa00dac85, 0x02 | BRF_GRA }, // 6
-
- { "ken_m51.rom", 0x20000, 0x1646cf4f, 0x03 | BRF_GRA }, // 7 Foreground & Background Tiles
- { "ken_m57.rom", 0x20000, 0xa9f88d90, 0x03 | BRF_GRA }, // 8
- { "ken_m66.rom", 0x20000, 0xe9d17645, 0x03 | BRF_GRA }, // 9
- { "ken_m64.rom", 0x20000, 0xdf46709b, 0x03 | BRF_GRA }, // 10
-
- { "ken_m14.rom", 0x20000, 0x6651e9b7, 0x05 | BRF_SND }, // 11 DAC Samples
-};
-
-STD_ROM_PICK(ltswords)
-STD_ROM_FN(ltswords)
-
-static INT32 kengoInit()
-{
- INT32 nRet = DrvInit(hharryu_main_cpu_map, sound_rom_map, NULL, Z80_REAL_NMI, 5);
-
- if (nRet == 0) {
- Kengo = 1;
- Clock_16mhz = 1;
- VezOpen(0);
- VezSetDecode((UINT8 *)&gunforce_decryption_table);
- VezClose();
- }
-
- return nRet;
-}
-
-struct BurnDriver BurnDrvLtswords = {
- "ltswords", NULL, NULL, NULL, "1991",
- "Lightning Swords\0", NULL, "Irem", "M84?",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_IREM_M72, GBF_SCRFIGHT, 0,
- NULL, ltswordsRomInfo, ltswordsRomName, NULL, NULL, CommonInputInfo, KengoDIPInfo,
- kengoInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x200,
- 384, 256, 4, 3
-};
-
-
-// Ken-Go (set 1)
-
-static struct BurnRomInfo kengoRomDesc[] = {
- { "ken_d-h0.rom", 0x20000, 0xf4ddeea5, 0x01 | BRF_PRG | BRF_ESS }, // 0 V30 Code
- { "ken_d-l0.rom", 0x20000, 0x04dc0f81, 0x01 | BRF_PRG | BRF_ESS }, // 1
-
- { "ken_d-sp.rom", 0x10000, 0x233ca1cf, 0x06 | BRF_PRG | BRF_ESS }, // 2 Z80 Code
-
- { "ken_m31.rom", 0x20000, 0xe00b95a6, 0x02 | BRF_GRA }, // 3 Sprites
- { "ken_m21.rom", 0x20000, 0xd7722f87, 0x02 | BRF_GRA }, // 4
- { "ken_m32.rom", 0x20000, 0x30a844c4, 0x02 | BRF_GRA }, // 5
- { "ken_m22.rom", 0x20000, 0xa00dac85, 0x02 | BRF_GRA }, // 6
-
- { "ken_m51.rom", 0x20000, 0x1646cf4f, 0x03 | BRF_GRA }, // 7 Foreground & Background Tiles
- { "ken_m57.rom", 0x20000, 0xa9f88d90, 0x03 | BRF_GRA }, // 8
- { "ken_m66.rom", 0x20000, 0xe9d17645, 0x03 | BRF_GRA }, // 9
- { "ken_m64.rom", 0x20000, 0xdf46709b, 0x03 | BRF_GRA }, // 10
-
- { "ken_m14.rom", 0x20000, 0x6651e9b7, 0x05 | BRF_SND }, // 11 DAC Samples
-};
-
-STD_ROM_PICK(kengo)
-STD_ROM_FN(kengo)
-
-struct BurnDriver BurnDrvKengo = {
- "kengo", "ltswords", NULL, NULL, "1991",
- "Ken-Go (set 1)\0", NULL, "Irem", "M84?",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_IREM_M72, GBF_SCRFIGHT, 0,
- NULL, kengoRomInfo, kengoRomName, NULL, NULL, CommonInputInfo, KengoDIPInfo,
- kengoInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x200,
- 384, 256, 4, 3
-};
-
-
-// Ken-Go (set 2)
-
-static struct BurnRomInfo kengoaRomDesc[] = {
- { "KEN-D-H0-.IC55", 0x20000, 0xed3da88c, 0x01 | BRF_PRG | BRF_ESS }, // 0 V30 Code
- { "KEN-D-L0-.IC61", 0x20000, 0x92c57d8e, 0x01 | BRF_PRG | BRF_ESS }, // 1
-
- { "ken_d-sp.rom", 0x10000, 0x233ca1cf, 0x06 | BRF_PRG | BRF_ESS }, // 2 Z80 Code
-
- { "ken_m31.rom", 0x20000, 0xe00b95a6, 0x02 | BRF_GRA }, // 3 Sprites
- { "ken_m21.rom", 0x20000, 0xd7722f87, 0x02 | BRF_GRA }, // 4
- { "ken_m32.rom", 0x20000, 0x30a844c4, 0x02 | BRF_GRA }, // 5
- { "ken_m22.rom", 0x20000, 0xa00dac85, 0x02 | BRF_GRA }, // 6
-
- { "ken_m51.rom", 0x20000, 0x1646cf4f, 0x03 | BRF_GRA }, // 7 Foreground & Background Tiles
- { "ken_m57.rom", 0x20000, 0xa9f88d90, 0x03 | BRF_GRA }, // 8
- { "ken_m66.rom", 0x20000, 0xe9d17645, 0x03 | BRF_GRA }, // 9
- { "ken_m64.rom", 0x20000, 0xdf46709b, 0x03 | BRF_GRA }, // 10
-
- { "ken_m14.rom", 0x20000, 0x6651e9b7, 0x05 | BRF_SND }, // 11 DAC Samples
-
- { "KEN_B-4N-.IC23", 0x00100, 0xb460c438, 0x00 | BRF_OPT }, // 12 Proms
- { "KEN_B-4P-.IC24", 0x00100, 0x526f10ca, 0x00 | BRF_OPT }, // 13
-};
-
-STD_ROM_PICK(kengoa)
-STD_ROM_FN(kengoa)
-
-struct BurnDriver BurnDrvKengoa = {
- "kengoa", "ltswords", NULL, NULL, "1991",
- "Ken-Go (set 2)\0", NULL, "Irem", "M84?",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_IREM_M72, GBF_SCRFIGHT, 0,
- NULL, kengoaRomInfo, kengoaRomName, NULL, NULL, CommonInputInfo, KengoDIPInfo,
- kengoInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x200,
- 384, 256, 4, 3
-};
-
-
-// Cosmic Cop (World)
-
-static struct BurnRomInfo cosmccopRomDesc[] = {
- { "cc-d-h0b.bin", 0x40000, 0x38958b01, 0x01 | BRF_PRG | BRF_ESS }, // 0 V30 Code
- { "cc-d-l0b.bin", 0x40000, 0xeff87f70, 0x01 | BRF_PRG | BRF_ESS }, // 1
-
- { "cc-d-sp.bin", 0x10000, 0x3e3ace60, 0x06 | BRF_PRG | BRF_ESS }, // 2 Z80 Code
-
- { "cc-c-00.bin", 0x20000, 0x9d99deaa, 0x02 | BRF_GRA }, // 3 Sprites
- { "cc-c-10.bin", 0x20000, 0x7eb083ed, 0x02 | BRF_GRA }, // 4
- { "cc-c-20.bin", 0x20000, 0x9421489e, 0x02 | BRF_GRA }, // 5
- { "cc-c-30.bin", 0x20000, 0x920ec735, 0x02 | BRF_GRA }, // 6
-
- { "cc-d-g00.bin", 0x20000, 0xe7f3d772, 0x03 | BRF_GRA }, // 7 Foreground & Background Tiles
- { "cc-d-g10.bin", 0x20000, 0x418b4e4c, 0x03 | BRF_GRA }, // 8
- { "cc-d-g20.bin", 0x20000, 0xa4b558eb, 0x03 | BRF_GRA }, // 9
- { "cc-d-g30.bin", 0x20000, 0xf64a3166, 0x03 | BRF_GRA }, // 10
-
- { "cc-c-v0.bin", 0x20000, 0x6247bade, 0x05 | BRF_SND }, // 11 DAC Samples
-};
-
-STD_ROM_PICK(cosmccop)
-STD_ROM_FN(cosmccop)
-
-static INT32 cosmccopInit()
-{
- Clock_16mhz = 1;
-
- INT32 rc = DrvInit(hharryu_main_cpu_map, sound_rom_map, NULL, Z80_REAL_NMI, 7);
-
- m72_irq_base = 0x60; // Cosmic Cop doesn't write to port 0x42 (irq config), set it manually. (after DrvInit()!)
- CosmicCop = 1;
-
- return rc;
-}
-
-struct BurnDriver BurnDrvCosmccop = {
- "cosmccop", NULL, NULL, NULL, "1991",
- "Cosmic Cop (World)\0", NULL, "Irem", "M84",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_IREM_M72, GBF_HORSHOOT, 0,
- NULL, cosmccopRomInfo, cosmccopRomName, NULL, NULL, CommonInputInfo, GallopDIPInfo,
- cosmccopInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x200,
- 384, 256, 4, 3
-};
-
-
-// Gallop - Armed police Unit (Japan)
-
-static struct BurnRomInfo gallopRomDesc[] = {
- { "cc-c-h0.bin", 0x20000, 0x2217dcd0, 0x01 | BRF_PRG | BRF_ESS }, // 0 V30 Code
- { "cc-c-l0.bin", 0x20000, 0xff39d7fb, 0x01 | BRF_PRG | BRF_ESS }, // 1
- { "cc-c-h3.bin", 0x20000, 0x9b2bbab9, 0x01 | BRF_PRG | BRF_ESS }, // 2
- { "cc-c-l3.bin", 0x20000, 0xacd3278e, 0x01 | BRF_PRG | BRF_ESS }, // 3
-
- { "cc-c-00.bin", 0x20000, 0x9d99deaa, 0x02 | BRF_GRA }, // 4 Sprites
- { "cc-c-10.bin", 0x20000, 0x7eb083ed, 0x02 | BRF_GRA }, // 5
- { "cc-c-20.bin", 0x20000, 0x9421489e, 0x02 | BRF_GRA }, // 6
- { "cc-c-30.bin", 0x20000, 0x920ec735, 0x02 | BRF_GRA }, // 7
-
- { "cc-b-a0.bin", 0x10000, 0xa33472bd, 0x03 | BRF_GRA }, // 8 Foreground Tiles
- { "cc-b-a1.bin", 0x10000, 0x118b1f2d, 0x03 | BRF_GRA }, // 9
- { "cc-b-a2.bin", 0x10000, 0x83cebf48, 0x03 | BRF_GRA }, // 10
- { "cc-b-a3.bin", 0x10000, 0x572903fc, 0x03 | BRF_GRA }, // 11
-
- { "cc-b-b0.bin", 0x10000, 0x0df5b439, 0x04 | BRF_GRA }, // 12 Background Tiles
- { "cc-b-b1.bin", 0x10000, 0x010b778f, 0x04 | BRF_GRA }, // 13
- { "cc-b-b2.bin", 0x10000, 0xbda9f6fb, 0x04 | BRF_GRA }, // 14
- { "cc-b-b3.bin", 0x10000, 0xd361ba3f, 0x04 | BRF_GRA }, // 15
-
- { "cc-c-v0.bin", 0x20000, 0x6247bade, 0x05 | BRF_SND }, // 16 DAC Samples
-
- { "gallop_i8751.mcu", 0x10000, 0x00000000, BRF_NODUMP | BRF_OPT },
-};
-
-STD_ROM_PICK(gallop)
-STD_ROM_FN(gallop)
-
-static INT32 gallopInit()
-{
- protection_sample_offsets = gallop_sample_offsets;
- Clock_16mhz = 1;
-
- return DrvInit(common_080000_0a0000, sound_ram_map, NULL, Z80_FAKE_NMI, 0);
-}
-
-struct BurnDriver BurnDrvGallop = {
- "gallop", "cosmccop", NULL, NULL, "1991",
- "Gallop - Armed police Unit (Japan)\0", NULL, "Irem", "M72",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_IREM_M72, GBF_HORSHOOT, 0,
- NULL, gallopRomInfo, gallopRomName, NULL, NULL, CommonInputInfo, GallopDIPInfo,
- gallopInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x200,
- 384, 256, 4, 3
-};
-
-
-
-// Legend of Hero Tonma
-
-static struct BurnRomInfo lohtRomDesc[] = {
- { "tom_c-h0.rom", 0x20000, 0xa63204b6, 0x01 | BRF_PRG | BRF_ESS }, // 0 V30 Code
- { "tom_c-l0.rom", 0x20000, 0xe788002f, 0x01 | BRF_PRG | BRF_ESS }, // 1
- { "tom_c-h3-", 0x20000, 0x714778b5, 0x01 | BRF_PRG | BRF_ESS }, // 2
- { "tom_c-l3-", 0x20000, 0x2f049b03, 0x01 | BRF_PRG | BRF_ESS }, // 3
-
- { "tom_m53.rom", 0x20000, 0x0b83265f, 0x02 | BRF_GRA }, // 4 Sprites
- { "tom_m51.rom", 0x20000, 0x8ec5f6f3, 0x02 | BRF_GRA }, // 5
- { "tom_m49.rom", 0x20000, 0xa41d3bfd, 0x02 | BRF_GRA }, // 6
- { "tom_m47.rom", 0x20000, 0x9d81a25b, 0x02 | BRF_GRA }, // 7
-
- { "tom_m21.rom", 0x10000, 0x3ca3e771, 0x03 | BRF_GRA }, // 8 Foreground Tiles
- { "tom_m22.rom", 0x10000, 0x7a05ee2f, 0x03 | BRF_GRA }, // 9
- { "tom_m20.rom", 0x10000, 0x79aa2335, 0x03 | BRF_GRA }, // 10
- { "tom_m23.rom", 0x10000, 0x789e8b24, 0x03 | BRF_GRA }, // 11
-
- { "tom_m26.rom", 0x10000, 0x44626bf6, 0x04 | BRF_GRA }, // 12 Background Tiles
- { "tom_m27.rom", 0x10000, 0x464952cf, 0x04 | BRF_GRA }, // 13
- { "tom_m25.rom", 0x10000, 0x3db9b2c7, 0x04 | BRF_GRA }, // 14
- { "tom_m24.rom", 0x10000, 0xf01fe899, 0x04 | BRF_GRA }, // 15
-
- { "tom_m44.rom", 0x10000, 0x3ed51d1f, 0x05 | BRF_SND }, // 16 DAC Samples
-
- { "loht_i8751.mcu", 0x10000, 0x00000000, 0x00 | BRF_OPT | BRF_NODUMP }, // 17 i8751 Code
-};
-
-STD_ROM_PICK(loht)
-STD_ROM_FN(loht)
-
-static INT32 lohtInit()
-{
- install_protection(loht);
-
- return DrvInit(common_080000_0a0000, sound_ram_map, NULL, Z80_FAKE_NMI, 0);
-}
-
-struct BurnDriver BurnDrvLoht = {
- "loht", NULL, NULL, NULL, "1989",
- "Legend of Hero Tonma\0", NULL, "Irem", "M72",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_IREM_M72, GBF_SCRFIGHT, 0,
- NULL, lohtRomInfo, lohtRomName, NULL, NULL, CommonInputInfo, LohtDIPInfo,
- lohtInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x200,
- 384, 256, 4, 3
-};
-
-
-// Legend of Hero Tonma (Japan)
-
-static struct BurnRomInfo lohtjRomDesc[] = {
- { "tom_c-h0-", 0x20000, 0x2a752998, 0x01 | BRF_PRG | BRF_ESS }, // 0 V30 Code
- { "tom_c-l0-", 0x20000, 0xa224d928, 0x01 | BRF_PRG | BRF_ESS }, // 1
- { "tom_c-h3-", 0x20000, 0x714778b5, 0x01 | BRF_PRG | BRF_ESS }, // 2
- { "tom_c-l3-", 0x20000, 0x2f049b03, 0x01 | BRF_PRG | BRF_ESS }, // 3
-
- { "r200", 0x20000, 0x0b83265f, 0x02 | BRF_GRA }, // 4 Sprites
- { "r210", 0x20000, 0x8ec5f6f3, 0x02 | BRF_GRA }, // 5
- { "r220", 0x20000, 0xa41d3bfd, 0x02 | BRF_GRA }, // 6
- { "r230", 0x20000, 0x9d81a25b, 0x02 | BRF_GRA }, // 7
-
- { "r2a0.a0", 0x10000, 0x3ca3e771, 0x03 | BRF_GRA }, // 8 Foreground Tiles
- { "r2a1.a1", 0x10000, 0x7a05ee2f, 0x03 | BRF_GRA }, // 9
- { "r2a2.a2", 0x10000, 0x79aa2335, 0x03 | BRF_GRA }, // 10
- { "r2a3.a3", 0x10000, 0x789e8b24, 0x03 | BRF_GRA }, // 11
-
- { "078.b0", 0x10000, 0x44626bf6, 0x04 | BRF_GRA }, // 12 Background Tiles
- { "079.b1", 0x10000, 0x464952cf, 0x04 | BRF_GRA }, // 13
- { "080.b2", 0x10000, 0x3db9b2c7, 0x04 | BRF_GRA }, // 14
- { "081.b3", 0x10000, 0xf01fe899, 0x04 | BRF_GRA }, // 15
-
- { "082", 0x10000, 0x3ed51d1f, 0x05 | BRF_SND }, // 16 DAC Samples
-
- { "tom_c-pr.bin", 0x01000, 0x9fa9b496, 0x00 | BRF_OPT }, // 17 i8751 Code
-};
-
-STD_ROM_PICK(lohtj)
-STD_ROM_FN(lohtj)
-
-struct BurnDriver BurnDrvLohtj = {
- "lohtj", "loht", NULL, NULL, "1989",
- "Legend of Hero Tonma (Japan)\0", NULL, "Irem", "M72",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_IREM_M72, GBF_SCRFIGHT, 0,
- NULL, lohtjRomInfo, lohtjRomName, NULL, NULL, CommonInputInfo, LohtDIPInfo,
- lohtInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x200,
- 384, 256, 4, 3
-};
-
-static INT32 lohtbRomLoadCallback()
-{
- // Hack the program rom to work for now
- UINT8 _0x400[216] = {
- 0xFA, 0xB9, 0xFF, 0xFF, 0xE2, 0xFE, 0xB8, 0x17, 0x00, 0xE7, 0x40, 0xB8, 0x20, 0x00, 0xE7, 0x42,
- 0xB8, 0x0F, 0x00, 0xE7, 0x42, 0xB8, 0x00, 0xA0, 0x8E, 0xD0, 0x8E, 0xD8, 0xBE, 0x00, 0x3F, 0xB0,
- 0x00, 0x88, 0x04, 0x3A, 0x04, 0x75, 0x08, 0x46, 0xFE, 0xC0, 0x75, 0xF5, 0xE9, 0x18, 0x00, 0x33,
- 0xF6, 0xE9, 0x03, 0x00, 0xBE, 0x40, 0x00, 0xB8, 0x00, 0xB0, 0x8E, 0xD8, 0xC7, 0x06, 0xFE, 0x0F,
- 0x00, 0x00, 0xEA, 0x62, 0x11, 0x00, 0x00, 0xE5, 0x04, 0x0F, 0x19, 0xC0, 0x0F, 0x74, 0xE0, 0xBC,
- 0x00, 0x40, 0x33, 0xDB, 0xB9, 0x00, 0x10, 0xB8, 0x00, 0xB0, 0x8E, 0xD8, 0x8A, 0xC3, 0x02, 0xC7,
- 0x88, 0x07, 0x43, 0xE2, 0xF7, 0x33, 0xC9, 0xFE, 0xC9, 0x75, 0xFC, 0xFE, 0xCD, 0x75, 0xF8, 0x33,
- 0xDB, 0xB9, 0x00, 0x10, 0x8A, 0xC3, 0x02, 0xC7, 0x34, 0xFF, 0x3A, 0x07, 0x75, 0xB6, 0x43, 0xE2,
- 0xF3, 0x33, 0xDB, 0xB9, 0xFC, 0x0F, 0xFE, 0x07, 0x43, 0xE2, 0xFB, 0x90, 0x90, 0x90, 0x9A, 0x00,
- 0x00, 0x00, 0xB0, 0x73, 0xF6, 0x90, 0x90, 0x90, 0xB8, 0x00, 0xB0, 0x8E, 0xC0, 0x33, 0xD2, 0x42,
- 0x81, 0xE2, 0x01, 0x00, 0xBF, 0xB2, 0x04, 0xE8, 0x7B, 0x00, 0xE8, 0x3E, 0x00, 0xEB, 0xF0, 0x90,
- 0x90, 0x90, 0x0B, 0x38, 0x29, 0x43, 0x4F, 0x50, 0x59, 0x52, 0x49, 0x47, 0x48, 0x54, 0x20, 0x31,
- 0x39, 0x38, 0x39, 0x20, 0x49, 0x52, 0x45, 0x4D, 0x20, 0x43, 0x4F, 0x52, 0x50, 0x4F, 0x52, 0x41,
- 0x54, 0x49, 0x4F, 0x4E, 0x0B, 0x50, 0x2B, 0x41
- };
-
- memcpy (DrvV30ROM + 0x00400, _0x400, 216);
-
- DrvV30ROM[0x3FC] = 0x88;
- DrvV30ROM[0x3FD] = 0x05;
- DrvV30ROM[0xB42] = 0x1E;
- DrvV30ROM[0xB43] = 0x06;
- DrvV30ROM[0xB44] = 0xB8;
- DrvV30ROM[0x405B] = 0x05;
- DrvV30ROM[0x4066] = 0x05;
- DrvV30ROM[0x103DA] = 0xB0;
- DrvV30ROM[0x103DD] = 0xFE;
- DrvV30ROM[0x103DE] = 0x06;
- DrvV30ROM[0x103DF] = 0xFE;
- DrvV30ROM[0x103E0] = 0x0F;
- DrvV30ROM[0x103E1] = 0xE5;
- DrvV30ROM[0x103E2] = 0x02;
- DrvV30ROM[0x103E3] = 0xA9;
- DrvV30ROM[0x103E4] = 0x20;
- DrvV30ROM[0x103E5] = 0x00;
- DrvV30ROM[0x103E6] = 0x75;
- DrvV30ROM[0x103E7] = 0x05;
- DrvV30ROM[0x103E8] = 0xEA;
- DrvV30ROM[0x103E9] = 0x2F;
- DrvV30ROM[0x103EA] = 0x04;
- DrvV30ROM[0x103EB] = 0x00;
- DrvV30ROM[0x103EC] = 0x00;
- DrvV30ROM[0x103ED] = 0xB8;
- DrvV30ROM[0x10459] = 0xE7;
- DrvV30ROM[0x1045A] = 0x04;
- DrvV30ROM[0x1045B] = 0xE5;
- DrvV30ROM[0x1045C] = 0x02;
- DrvV30ROM[0x1045D] = 0x25;
- DrvV30ROM[0x1045E] = 0x80;
- DrvV30ROM[0x1045F] = 0x00;
- DrvV30ROM[0x10460] = 0x74;
- DrvV30ROM[0x10461] = 0xF9;
- DrvV30ROM[0x10462] = 0x36;
- DrvV30ROM[0x10463] = 0xA1;
- DrvV30ROM[0x10464] = 0xB2;
- DrvV30ROM[0x10465] = 0x23;
- DrvV30ROM[0x10466] = 0xE7;
- DrvV30ROM[0x10467] = 0x82;
- DrvV30ROM[0x10468] = 0x36;
- DrvV30ROM[0x10469] = 0xA1;
- DrvV30ROM[0x1046A] = 0xB6;
- DrvV30ROM[0x1046B] = 0x23;
- DrvV30ROM[0x1046C] = 0xE7;
- DrvV30ROM[0x104B4] = 0x32;
- DrvV30ROM[0x104B5] = 0xE4;
- DrvV30ROM[0x104B6] = 0x3C;
- DrvV30ROM[0x104B7] = 0x7F;
- DrvV30ROM[0x104B8] = 0x72;
- DrvV30ROM[0x10577] = 0x47;
- DrvV30ROM[0x10578] = 0xDC;
- DrvV30ROM[0x10585] = 0x61;
- DrvV30ROM[0x10586] = 0x07;
- DrvV30ROM[0x10587] = 0x1F;
- DrvV30ROM[0x10599] = 0x00;
- DrvV30ROM[0x10793] = 0xE7;
- DrvV30ROM[0x10794] = 0x02;
- DrvV30ROM[0x1E1C0] = 0xBA;
- DrvV30ROM[0x1EA29] = 0xE7;
- DrvV30ROM[0x1EA2A] = 0x02;
-
- // invert graphics roms
- for (INT32 i = 0; i < 0x80000; i++) {
- DrvGfxROM1[i] ^= 0x0f;
- DrvGfxROM2[i] ^= 0x0f;
- }
-
- return 0;
-}
-
-// Legend of Hero Tonma (bootleg, set 1)
-
-static struct BurnRomInfo lohtbRomDesc[] = {
- { "lohtb03.b", 0x20000, 0x8b845a70, 0x01 | BRF_PRG | BRF_ESS }, // 0 V30 Code
- { "lohtb05.d", 0x20000, 0xe90f7623, 0x01 | BRF_PRG | BRF_ESS }, // 1
- { "lohtb02.a", 0x20000, 0x714778b5, 0x01 | BRF_PRG | BRF_ESS }, // 2
- { "lohtb04.c", 0x20000, 0x2f049b03, 0x01 | BRF_PRG | BRF_ESS }, // 3
-
- { "lohtb01.02", 0x10000, 0xe4bd8f03, 0x06 | BRF_PRG | BRF_ESS }, // 4 Z80 Code
-
- { "lohtb14.11", 0x10000, 0xdf5ac5ee, 0x02 | BRF_GRA }, // 5 Sprites
- { "lohtb18.15", 0x10000, 0xd7ecf849, 0x02 | BRF_GRA }, // 6
- { "lohtb15.12", 0x10000, 0x45220b01, 0x02 | BRF_GRA }, // 7
- { "lohtb19.16", 0x10000, 0x35d1a808, 0x02 | BRF_GRA }, // 8
- { "lohtb16.13", 0x10000, 0x25b85cfc, 0x02 | BRF_GRA }, // 9
- { "lohtb20.17", 0x10000, 0x464d8579, 0x02 | BRF_GRA }, // 10
- { "lohtb17.14", 0x10000, 0x763fa4ec, 0x02 | BRF_GRA }, // 11
- { "lohtb21.18", 0x10000, 0xa73568c7, 0x02 | BRF_GRA }, // 12
-
- { "lohtb13.10", 0x10000, 0x359f17d4, 0x03 | BRF_GRA }, // 13 Foreground Tiles
- { "lohtb11.08", 0x10000, 0x73391e8a, 0x03 | BRF_GRA }, // 14
- { "lohtb09.06", 0x10000, 0x7096d390, 0x03 | BRF_GRA }, // 15
- { "lohtb07.04", 0x10000, 0x71a27b81, 0x03 | BRF_GRA }, // 16
-
- { "lohtb12.09", 0x10000, 0x4d5e9b53, 0x04 | BRF_GRA }, // 17 Background Tiles
- { "lohtb10.07", 0x10000, 0x4f75a26a, 0x04 | BRF_GRA }, // 18
- { "lohtb08.05", 0x10000, 0x34854262, 0x04 | BRF_GRA }, // 19
- { "lohtb06.03", 0x10000, 0xf923183c, 0x04 | BRF_GRA }, // 20
-};
-
-STD_ROM_PICK(lohtb)
-STD_ROM_FN(lohtb)
-
-static INT32 lohtbInit()
-{
- install_protection(loht);
-
- return DrvInit(common_080000_0a0000, sound_ram_map, lohtbRomLoadCallback, Z80_FAKE_NMI, 0);
-}
-
-struct BurnDriver BurnDrvLohtb = {
- "lohtb", "loht", NULL, NULL, "1989",
- "Legend of Hero Tonma (bootleg, set 1)\0", NULL, "bootleg", "M72",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_IREM_M72, GBF_SCRFIGHT, 0,
- NULL, lohtbRomInfo, lohtbRomName, NULL, NULL, CommonInputInfo, LohtDIPInfo,
- lohtbInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x200,
- 384, 256, 4, 3
-};
-
-
-// Legend of Hero Tonma (bootleg, set 2)
-
-static struct BurnRomInfo lohtb2RomDesc[] = {
- { "loht-a2.bin", 0x10000, 0xccc90e54, 0x01 | BRF_PRG | BRF_ESS }, // 0 V30 Code
- { "loht-a10.bin", 0x10000, 0x3aa06730, 0x01 | BRF_PRG | BRF_ESS }, // 1
- { "loht-a3.bin", 0x10000, 0xff8a98de, 0x01 | BRF_PRG | BRF_ESS }, // 2
- { "loht-a11.bin", 0x10000, 0xeab1d7bc, 0x01 | BRF_PRG | BRF_ESS }, // 3
- { "loht-a5.bin", 0x10000, 0x79e007ec, 0x01 | BRF_PRG | BRF_ESS }, // 4
- { "loht-a13.bin", 0x10000, 0xb951346e, 0x01 | BRF_PRG | BRF_ESS }, // 5
- { "loht-a4.bin", 0x10000, 0x254ea4d5, 0x01 | BRF_PRG | BRF_ESS }, // 6
- { "loht-a12.bin", 0x10000, 0xcfb0390d, 0x01 | BRF_PRG | BRF_ESS }, // 7
-
- { "loht-a16.bin", 0x10000, 0xdf5ac5ee, 0x02 | BRF_GRA }, // 8 Sprites
- { "loht-a17.bin", 0x10000, 0xd7ecf849, 0x02 | BRF_GRA }, // 9
- { "loht-a8.bin", 0x10000, 0x45220b01, 0x02 | BRF_GRA }, // 10
- { "loht-a9.bin", 0x10000, 0x4af9bb3c, 0x02 | BRF_GRA }, // 11
- { "loht-a14.bin", 0x10000, 0x25b85cfc, 0x02 | BRF_GRA }, // 12
- { "loht-a15.bin", 0x10000, 0x464d8579, 0x02 | BRF_GRA }, // 13
- { "loht-a6.bin", 0x10000, 0x763fa4ec, 0x02 | BRF_GRA }, // 14
- { "loht-a7.bin", 0x10000, 0xa73568c7, 0x02 | BRF_GRA }, // 15
-
- { "loht-a19.bin", 0x10000, 0x3ca3e771, 0x03 | BRF_GRA }, // 16 Foreground Tiles
- { "loht-a20.bin", 0x10000, 0x7a05ee2f, 0x03 | BRF_GRA }, // 17
- { "loht-a18.bin", 0x10000, 0x79aa2335, 0x03 | BRF_GRA }, // 18
- { "loht-a21.bin", 0x10000, 0x789e8b24, 0x03 | BRF_GRA }, // 19
-
- { "loht-a24.bin", 0x10000, 0x44626bf6, 0x04 | BRF_GRA }, // 20 Background Tiles
- { "loht-a25.bin", 0x10000, 0x464952cf, 0x04 | BRF_GRA }, // 21
- { "loht-a23.bin", 0x10000, 0x3db9b2c7, 0x04 | BRF_GRA }, // 22
- { "loht-a22.bin", 0x10000, 0xf01fe899, 0x04 | BRF_GRA }, // 23
-
- { "loht-a1.bin", 0x10000, 0x3ed51d1f, 0x05 | BRF_SND }, // 24 DAC Samples
-
- { "loht-a26.bin", 0x02000, 0xac901e17, 0x00 | BRF_OPT }, // 25 i8751 Code
-};
-
-STD_ROM_PICK(lohtb2)
-STD_ROM_FN(lohtb2)
-
-struct BurnDriver BurnDrvLohtb2 = {
- "lohtb2", "loht", NULL, NULL, "1989",
- "Legend of Hero Tonma (bootleg, set 2)\0", NULL, "bootleg", "M72",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_IREM_M72, GBF_SCRFIGHT, 0,
- NULL, lohtb2RomInfo, lohtb2RomName, NULL, NULL, CommonInputInfo, LohtDIPInfo,
- lohtInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x200,
- 384, 256, 4, 3
-};
-
-
-// Pound for Pound (World)
-
-static struct BurnRomInfo poundforRomDesc[] = {
- { "ppa-h0-b.9e", 0x20000, 0x50d4a2d8, 0x01 | BRF_PRG | BRF_ESS }, // 0 V30 Code
- { "ppa-l0-b.9d", 0x20000, 0xbd997942, 0x01 | BRF_PRG | BRF_ESS }, // 1
- { "ppa-h1.9f", 0x20000, 0xf6c82f48, 0x01 | BRF_PRG | BRF_ESS }, // 2
- { "ppa-l1.9c", 0x20000, 0x5b07b087, 0x01 | BRF_PRG | BRF_ESS }, // 3
-
- { "ppa-sp.4j", 0x10000, 0x3f458a5b, 0x06 | BRF_PRG | BRF_ESS }, // 4 Z80 Code
-
- { "ppb-n0.bin", 0x40000, 0x951a41f8, 0x02 | BRF_GRA }, // 5 Sprites
- { "ppb-n1.bin", 0x40000, 0xc609b7f2, 0x02 | BRF_GRA }, // 6
- { "ppb-n2.bin", 0x40000, 0x318c0b5f, 0x02 | BRF_GRA }, // 7
- { "ppb-n3.bin", 0x40000, 0x93dc9490, 0x02 | BRF_GRA }, // 8
-
- { "ppa-g00.bin", 0x20000, 0x8a88a174, 0x03 | BRF_GRA }, // 9 Foreground & Background Tiles
- { "ppa-g10.bin", 0x20000, 0xe48a66ac, 0x03 | BRF_GRA }, // 10
- { "ppa-g20.bin", 0x20000, 0x12b93e79, 0x03 | BRF_GRA }, // 11
- { "ppa-g30.bin", 0x20000, 0xfaa39aee, 0x03 | BRF_GRA }, // 12
-
- { "ppa-v0.bin", 0x40000, 0x03321664, 0x05 | BRF_SND }, // 13 DAC Samples
-};
-
-STD_ROM_PICK(poundfor)
-STD_ROM_FN(poundfor)
-
-static INT32 poundforInit()
-{
- return DrvInit(rtype2_main_cpu_map, sound_rom_map, NULL, Z80_FAKE_NMI, 4);
-}
-
-struct BurnDriverD BurnDrvPoundfor = {
- "poundfor", NULL, NULL, NULL, "1990",
- "Pound for Pound (World)\0", NULL, "Irem", "M85",
- NULL, NULL, NULL, NULL,
- BDF_ORIENTATION_VERTICAL, 2, HARDWARE_IREM_M72, GBF_SPORTSMISC, 0,
- NULL, poundforRomInfo, poundforRomName, NULL, NULL, PoundforInputInfo, PoundforDIPInfo,
- poundforInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x200,
- 256, 384, 3, 4
-};
-
-
-// Pound for Pound (Japan)
-
-static struct BurnRomInfo poundforjRomDesc[] = {
- { "ppa-h0-.9e", 0x20000, 0xf0165e3b, 0x01 | BRF_PRG | BRF_ESS }, // 0 V30 Code
- { "ppa-l0-.9d", 0x20000, 0xf954f99f, 0x01 | BRF_PRG | BRF_ESS }, // 1
- { "ppa-h1.9f", 0x20000, 0xf6c82f48, 0x01 | BRF_PRG | BRF_ESS }, // 2
- { "ppa-l1.9c", 0x20000, 0x5b07b087, 0x01 | BRF_PRG | BRF_ESS }, // 3
-
- { "ppa-sp.4j", 0x10000, 0x3f458a5b, 0x06 | BRF_PRG | BRF_ESS }, // 4 Z80 Code
-
- { "ppb-n0.bin", 0x40000, 0x951a41f8, 0x02 | BRF_GRA }, // 5 Sprites
- { "ppb-n1.bin", 0x40000, 0xc609b7f2, 0x02 | BRF_GRA }, // 6
- { "ppb-n2.bin", 0x40000, 0x318c0b5f, 0x02 | BRF_GRA }, // 7
- { "ppb-n3.bin", 0x40000, 0x93dc9490, 0x02 | BRF_GRA }, // 8
-
- { "ppa-g00.bin", 0x20000, 0x8a88a174, 0x03 | BRF_GRA }, // 9 Foreground & Background Tiles
- { "ppa-g10.bin", 0x20000, 0xe48a66ac, 0x03 | BRF_GRA }, // 10
- { "ppa-g20.bin", 0x20000, 0x12b93e79, 0x03 | BRF_GRA }, // 11
- { "ppa-g30.bin", 0x20000, 0xfaa39aee, 0x03 | BRF_GRA }, // 12
-
- { "ppa-v0.bin", 0x40000, 0x03321664, 0x05 | BRF_SND }, // 13 DAC Samples
-};
-
-STD_ROM_PICK(poundforj)
-STD_ROM_FN(poundforj)
-
-struct BurnDriverD BurnDrvPoundforj = {
- "poundforj", "poundfor", NULL, NULL, "1990",
- "Pound for Pound (Japan)\0", NULL, "Irem", "M85",
- NULL, NULL, NULL, NULL,
- BDF_CLONE | BDF_ORIENTATION_VERTICAL, 2, HARDWARE_IREM_M72, GBF_SPORTSMISC, 0,
- NULL, poundforjRomInfo, poundforjRomName, NULL, NULL, PoundforInputInfo, PoundforDIPInfo,
- poundforInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x200,
- 256, 384, 3, 4
-};
-
-
-// Pound for Pound (US)
-
-static struct BurnRomInfo poundforuRomDesc[] = {
- { "ppa-ho-a.9e", 0x20000, 0xff4c83a4, 0x01 | BRF_PRG | BRF_ESS }, // 0 V30 Code
- { "ppa-lo-a.9d", 0x20000, 0x3374ce8f, 0x01 | BRF_PRG | BRF_ESS }, // 1
- { "ppa-h1.9f", 0x20000, 0xf6c82f48, 0x01 | BRF_PRG | BRF_ESS }, // 2
- { "ppa-l1.9c", 0x20000, 0x5b07b087, 0x01 | BRF_PRG | BRF_ESS }, // 3
-
- { "ppa-sp.4j", 0x10000, 0x3f458a5b, 0x06 | BRF_PRG | BRF_ESS }, // 4 Z80 Code
-
- { "ppb-n0.bin", 0x40000, 0x951a41f8, 0x02 | BRF_GRA }, // 5 Sprites
- { "ppb-n1.bin", 0x40000, 0xc609b7f2, 0x02 | BRF_GRA }, // 6
- { "ppb-n2.bin", 0x40000, 0x318c0b5f, 0x02 | BRF_GRA }, // 7
- { "ppb-n3.bin", 0x40000, 0x93dc9490, 0x02 | BRF_GRA }, // 8
-
- { "ppa-g00.bin", 0x20000, 0x8a88a174, 0x03 | BRF_GRA }, // 9 Foreground & Background Tiles
- { "ppa-g10.bin", 0x20000, 0xe48a66ac, 0x03 | BRF_GRA }, // 10
- { "ppa-g20.bin", 0x20000, 0x12b93e79, 0x03 | BRF_GRA }, // 11
- { "ppa-g30.bin", 0x20000, 0xfaa39aee, 0x03 | BRF_GRA }, // 12
-
- { "ppa-v0.bin", 0x40000, 0x03321664, 0x05 | BRF_SND }, // 13 DAC Samples
-};
-
-STD_ROM_PICK(poundforu)
-STD_ROM_FN(poundforu)
-
-struct BurnDriverD BurnDrvPoundforu = {
- "poundforu", "poundfor", NULL, NULL, "1990",
- "Pound for Pound (US)\0", NULL, "Irem America", "M85",
- NULL, NULL, NULL, NULL,
- BDF_CLONE | BDF_ORIENTATION_VERTICAL, 2, HARDWARE_IREM_M72, GBF_SPORTSMISC, 0,
- NULL, poundforuRomInfo, poundforuRomName, NULL, NULL, PoundforInputInfo, PoundforDIPInfo,
- poundforInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x200,
- 256, 384, 3, 4
-};
-
-
-// Major Title (World)
-
-static struct BurnRomInfo majtitleRomDesc[] = {
- { "mt_h0-a.bin", 0x20000, 0x36aadb67, 0x01 | BRF_PRG | BRF_ESS }, // 0 V30 Code
- { "mt_l0-a.bin", 0x20000, 0x2e1b6242, 0x01 | BRF_PRG | BRF_ESS }, // 1
- { "mt_h1-a.bin", 0x20000, 0xe1402a22, 0x01 | BRF_PRG | BRF_ESS }, // 2
- { "mt_l1-a.bin", 0x20000, 0x0efa409a, 0x01 | BRF_PRG | BRF_ESS }, // 3
-
- { "mt_sp.bin", 0x10000, 0xe44260a9, 0x06 | BRF_PRG | BRF_ESS }, // 4 Z80 Code
-
- { "mt_n0.bin", 0x40000, 0x5618cddc, 0x02 | BRF_GRA }, // 5 Sprites
- { "mt_n1.bin", 0x40000, 0x483b873b, 0x02 | BRF_GRA }, // 6
- { "mt_n2.bin", 0x40000, 0x4f5d665b, 0x02 | BRF_GRA }, // 7
- { "mt_n3.bin", 0x40000, 0x83571549, 0x02 | BRF_GRA }, // 8
-
- { "mt_c0.bin", 0x20000, 0x780e7a02, 0x03 | BRF_GRA }, // 9 Foreground & Background Tiles
- { "mt_c1.bin", 0x20000, 0x45ad1381, 0x03 | BRF_GRA }, // 10
- { "mt_c2.bin", 0x20000, 0x5df5856d, 0x03 | BRF_GRA }, // 11
- { "mt_c3.bin", 0x20000, 0xf5316cc8, 0x03 | BRF_GRA }, // 12
-
- { "mt_f0.bin", 0x20000, 0x2d5e05d5, 0x0e | BRF_GRA }, // 13 Sprites
- { "mt_f1.bin", 0x20000, 0xc68cd65f, 0x0e | BRF_GRA }, // 14
- { "mt_f2.bin", 0x20000, 0xa71feb2d, 0x0e | BRF_GRA }, // 15
- { "mt_f3.bin", 0x20000, 0x179f7562, 0x0e | BRF_GRA }, // 16
-
- { "mt_vo.bin", 0x20000, 0xeb24bb2c, 0x05 | BRF_SND }, // 17 DAC Samples
-};
-
-STD_ROM_PICK(majtitle)
-STD_ROM_FN(majtitle)
-
-static INT32 majtitleInit()
-{
- return DrvInit(majtitle_main_cpu_map, sound_rom_map, NULL, Z80_REAL_NMI, 3);
-}
-
-struct BurnDriver BurnDrvMajtitle = {
- "majtitle", NULL, NULL, NULL, "1990",
- "Major Title (World)\0", "Graphics issues", "Irem", "M84",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_IREM_M72, GBF_SPORTSMISC, 0,
- NULL, majtitleRomInfo, majtitleRomName, NULL, NULL, CommonInputInfo, Rtype2DIPInfo,
- majtitleInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x200,
- 384, 256, 4, 3
-};
-
-
-// Major Title (Japan)
-
-static struct BurnRomInfo majtitlejRomDesc[] = {
- { "mt_h0.bin", 0x20000, 0xb9682c70, 0x01 | BRF_PRG | BRF_ESS }, // 0 V30 Code
- { "mt_l0.bin", 0x20000, 0x702c9fd6, 0x01 | BRF_PRG | BRF_ESS }, // 1
- { "mt_h1.bin", 0x20000, 0xd9e97c30, 0x01 | BRF_PRG | BRF_ESS }, // 2
- { "mt_l1.bin", 0x20000, 0x8dbd91b5, 0x01 | BRF_PRG | BRF_ESS }, // 3
-
- { "mt_sp.bin", 0x10000, 0xe44260a9, 0x06 | BRF_PRG | BRF_ESS }, // 4 Z80 Code
-
- { "mt_n0.bin", 0x40000, 0x5618cddc, 0x02 | BRF_GRA }, // 5 Sprites
- { "mt_n1.bin", 0x40000, 0x483b873b, 0x02 | BRF_GRA }, // 6
- { "mt_n2.bin", 0x40000, 0x4f5d665b, 0x02 | BRF_GRA }, // 7
- { "mt_n3.bin", 0x40000, 0x83571549, 0x02 | BRF_GRA }, // 8
-
- { "mt_c0.bin", 0x20000, 0x780e7a02, 0x03 | BRF_GRA }, // 9 Foreground & Background Tiles
- { "mt_c1.bin", 0x20000, 0x45ad1381, 0x03 | BRF_GRA }, // 10
- { "mt_c2.bin", 0x20000, 0x5df5856d, 0x03 | BRF_GRA }, // 11
- { "mt_c3.bin", 0x20000, 0xf5316cc8, 0x03 | BRF_GRA }, // 12
-
- { "mt_f0.bin", 0x20000, 0x2d5e05d5, 0x0e | BRF_GRA }, // 13 Sprites
- { "mt_f1.bin", 0x20000, 0xc68cd65f, 0x0e | BRF_GRA }, // 14
- { "mt_f2.bin", 0x20000, 0xa71feb2d, 0x0e | BRF_GRA }, // 15
- { "mt_f3.bin", 0x20000, 0x179f7562, 0x0e | BRF_GRA }, // 16
-
- { "mt_vo.bin", 0x20000, 0xeb24bb2c, 0x05 | BRF_SND }, // 17 DAC Samples
-};
-
-STD_ROM_PICK(majtitlej)
-STD_ROM_FN(majtitlej)
-
-struct BurnDriver BurnDrvMajtitlej = {
- "majtitlej", "majtitle", NULL, NULL, "1990",
- "Major Title (Japan)\0", "Graphics issues", "Irem", "M84",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_IREM_M72, GBF_SPORTSMISC, 0,
- NULL, majtitlejRomInfo, majtitlejRomName, NULL, NULL, CommonInputInfo, Rtype2DIPInfo,
- majtitleInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x200,
- 384, 256, 4, 3
-};
diff --git a/jan/src/burn/drv/irem/d_m90.cpp b/jan/src/burn/drv/irem/d_m90.cpp
deleted file mode 100644
index a8d9d4e74..000000000
--- a/jan/src/burn/drv/irem/d_m90.cpp
+++ /dev/null
@@ -1,1848 +0,0 @@
-// FB Alpha Irem M90 driver module
-// Based on MAME driver by Bryan McPhail
-
-#include "tiles_generic.h"
-#include "z80_intf.h"
-#include "burn_ym2151.h"
-#include "nec_intf.h"
-#include "irem_cpu.h"
-#include "dac.h"
-
-static UINT8 *AllMem;
-static UINT8 *MemEnd;
-static UINT8 *AllRam;
-static UINT8 *RamEnd;
-static UINT8 *DrvV30ROM;
-static UINT8 *DrvZ80ROM;
-static UINT8 *DrvGfxROM0;
-static UINT8 *DrvGfxROM1;
-static UINT8 *DrvSndROM;
-static UINT8 *DrvVidRAM;
-static UINT8 *DrvV30RAM;
-static UINT8 *DrvZ80RAM;
-static UINT8 *DrvSprRAM;
-static UINT8 *DrvPalRAM;
-
-static UINT8 *m90_video_control;
-
-static UINT8 *RamPrioBitmap;
-
-static UINT8 *soundlatch;
-
-static UINT32 *DrvPalette;
-static UINT8 DrvRecalc;
-
-static UINT8 irqvector;
-static INT32 sample_address;
-
-static UINT8 DrvJoy1[8];
-static UINT8 DrvJoy2[8];
-static UINT8 DrvJoy3[8];
-static UINT8 DrvJoy4[8];
-static UINT8 DrvJoy5[8];
-static UINT8 DrvDips[2];
-static UINT8 DrvInputs[5];
-static UINT8 DrvReset;
-
-static INT32 vblank;
-static INT32 code_mask[2];
-static INT32 video_offsets[2] = { 0, 0 };
-
-enum { VECTOR_INIT, YM2151_ASSERT, YM2151_CLEAR, Z80_ASSERT, Z80_CLEAR };
-
-static struct BurnInputInfo p4commonInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy3 + 2, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy3 + 0, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy1 + 3, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy1 + 2, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy1 + 1, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy1 + 0, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy1 + 7, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy1 + 6, "p1 fire 2" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy3 + 3, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy3 + 1, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvJoy2 + 3, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy2 + 2, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy2 + 1, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy2 + 0, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy2 + 7, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy2 + 6, "p2 fire 2" },
-
- {"P3 Coin", BIT_DIGITAL, DrvJoy4 + 5, "p3 coin" },
- {"P3 Start", BIT_DIGITAL, DrvJoy4 + 4, "p3 start" },
- {"P3 Up", BIT_DIGITAL, DrvJoy4 + 3, "p3 up" },
- {"P3 Down", BIT_DIGITAL, DrvJoy4 + 2, "p3 down" },
- {"P3 Left", BIT_DIGITAL, DrvJoy4 + 1, "p3 left" },
- {"P3 Right", BIT_DIGITAL, DrvJoy4 + 0, "p3 right" },
- {"P3 Button 1", BIT_DIGITAL, DrvJoy4 + 7, "p3 fire 1" },
- {"P3 Button 2", BIT_DIGITAL, DrvJoy4 + 6, "p3 fire 2" },
-
- {"P4 Coin", BIT_DIGITAL, DrvJoy5 + 5, "p4 coin" },
- {"P4 Start", BIT_DIGITAL, DrvJoy5 + 4, "p4 start" },
- {"P4 Up", BIT_DIGITAL, DrvJoy5 + 3, "p4 up" },
- {"P4 Down", BIT_DIGITAL, DrvJoy5 + 2, "p4 down" },
- {"P4 Left", BIT_DIGITAL, DrvJoy5 + 1, "p4 left" },
- {"P4 Right", BIT_DIGITAL, DrvJoy5 + 0, "p4 right" },
- {"P4 Button 1", BIT_DIGITAL, DrvJoy5 + 7, "p4 fire 1" },
- {"P4 Button 2", BIT_DIGITAL, DrvJoy5 + 6, "p4 fire 2" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service", BIT_DIGITAL, DrvJoy3 + 4, "service" },
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip" },
-};
-
-STDINPUTINFO(p4common)
-
-static struct BurnInputInfo p2commonInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy3 + 2, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy3 + 0, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy1 + 3, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy1 + 2, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy1 + 1, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy1 + 0, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy1 + 7, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy1 + 6, "p1 fire 2" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy3 + 3, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy3 + 1, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvJoy2 + 3, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy2 + 2, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy2 + 1, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy2 + 0, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy2 + 7, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy2 + 6, "p2 fire 2" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service", BIT_DIGITAL, DrvJoy3 + 4, "service" },
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip" },
-};
-
-STDINPUTINFO(p2common)
-
-static struct BurnInputInfo Quizf1InputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy3 + 2, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy3 + 0, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy1 + 3, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy1 + 2, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy1 + 1, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy1 + 0, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy1 + 7, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy1 + 6, "p1 fire 2" },
- {"P1 Button 3", BIT_DIGITAL, DrvJoy1 + 5, "p1 fire 3" },
- {"P1 Button 4", BIT_DIGITAL, DrvJoy1 + 4, "p1 fire 4" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy3 + 3, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy3 + 1, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvJoy2 + 3, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy2 + 2, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy2 + 1, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy2 + 0, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy2 + 7, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy2 + 6, "p2 fire 2" },
- {"P2 Button 3", BIT_DIGITAL, DrvJoy2 + 5, "p2 fire 3" },
- {"P2 Button 4", BIT_DIGITAL, DrvJoy2 + 4, "p2 fire 4" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service", BIT_DIGITAL, DrvJoy3 + 4, "service" },
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip" },
-};
-
-STDINPUTINFO(Quizf1)
-
-static struct BurnInputInfo Matchit2InputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy3 + 2, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy3 + 0, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy1 + 3, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy1 + 2, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy1 + 1, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy1 + 0, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy1 + 7, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy1 + 6, "p1 fire 2" },
- {"P1 Button 3", BIT_DIGITAL, DrvJoy1 + 5, "p1 fire 3" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy3 + 3, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy3 + 1, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvJoy2 + 3, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy2 + 2, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy2 + 1, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy2 + 0, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy2 + 7, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy2 + 6, "p2 fire 2" },
- {"P2 Button 3", BIT_DIGITAL, DrvJoy2 + 5, "p2 fire 3" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service", BIT_DIGITAL, DrvJoy3 + 4, "service" },
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip" },
-};
-
-STDINPUTINFO(Matchit2)
-
-static struct BurnDIPInfo DynablstDIPList[]=
-{
- {0x22, 0xff, 0xff, 0xbf, NULL },
- {0x23, 0xff, 0xff, 0xff, NULL },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x22, 0x01, 0x03, 0x02, "2" },
- {0x22, 0x01, 0x03, 0x03, "3" },
- {0x22, 0x01, 0x03, 0x01, "4" },
- {0x22, 0x01, 0x03, 0x00, "5" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x22, 0x01, 0x0c, 0x08, "Easy" },
- {0x22, 0x01, 0x0c, 0x0c, "Medium" },
- {0x22, 0x01, 0x0c, 0x04, "Hard" },
- {0x22, 0x01, 0x0c, 0x00, "Hardest" },
-
- {0 , 0xfe, 0 , 2, "Game Title" },
- {0x22, 0x01, 0x10, 0x10, "Dynablaster" },
- {0x22, 0x01, 0x10, 0x00, "Bomber Man" },
-
- {0 , 0xfe, 0 , 2, "Allow Continue" },
- {0x22, 0x01, 0x20, 0x00, "No" },
- {0x22, 0x01, 0x20, 0x20, "Yes" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x22, 0x01, 0x40, 0x40, "Off" },
- {0x22, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x22, 0x01, 0x80, 0x80, "Off" },
- {0x22, 0x01, 0x80, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x23, 0x01, 0x01, 0x01, "Off" },
- {0x23, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 4, "Cabinet" },
- {0x23, 0x01, 0x06, 0x04, "2 Player Upright" },
- {0x23, 0x01, 0x06, 0x06, "4 Player Upright A" },
- {0x23, 0x01, 0x06, 0x02, "4 Player Upright B" },
- {0x23, 0x01, 0x06, 0x00, "Cocktail" },
-
- {0 , 0xfe, 0 , 2, "Coin Mode" },
- {0x23, 0x01, 0x08, 0x08, "1" },
- {0x23, 0x01, 0x08, 0x00, "2" },
-
- {0 , 0xfe, 0 , 16, "Coinage" },
- {0x23, 0x01, 0xf0, 0xa0, "6 Coins 1 Credits" },
- {0x23, 0x01, 0xf0, 0xb0, "5 Coins 1 Credits" },
- {0x23, 0x01, 0xf0, 0xc0, "4 Coins 1 Credits" },
- {0x23, 0x01, 0xf0, 0xd0, "3 Coins 1 Credits" },
- {0x23, 0x01, 0xf0, 0xe0, "2 Coins 1 Credits" },
- {0x23, 0x01, 0xf0, 0x10, "2 Coins to Start/1 to Continue" },
- {0x23, 0x01, 0xf0, 0x30, "3 Coins 2 Credits" },
- {0x23, 0x01, 0xf0, 0x20, "4 Coins 3 Credits" },
- {0x23, 0x01, 0xf0, 0xf0, "1 Coin 1 Credits" },
- {0x23, 0x01, 0xf0, 0x40, "2 Coins 3 Credits" },
- {0x23, 0x01, 0xf0, 0x90, "1 Coin 2 Credits" },
- {0x23, 0x01, 0xf0, 0x80, "1 Coin 3 Credits" },
- {0x23, 0x01, 0xf0, 0x70, "1 Coin 4 Credits" },
- {0x23, 0x01, 0xf0, 0x60, "1 Coin 5 Credits" },
- {0x23, 0x01, 0xf0, 0x50, "1 Coin 6 Credits" },
- {0x23, 0x01, 0xf0, 0x00, "Free Play" },
-};
-
-STDDIPINFO(Dynablst)
-
-static struct BurnDIPInfo AtompunkDIPList[]=
-{
- {0x22, 0xff, 0xff, 0xbf, NULL },
- {0x23, 0xff, 0xff, 0xff, NULL },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x22, 0x01, 0x03, 0x02, "2" },
- {0x22, 0x01, 0x03, 0x03, "3" },
- {0x22, 0x01, 0x03, 0x01, "4" },
- {0x22, 0x01, 0x03, 0x00, "5" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x22, 0x01, 0x0c, 0x08, "Easy" },
- {0x22, 0x01, 0x0c, 0x0c, "Medium" },
- {0x22, 0x01, 0x0c, 0x04, "Hard" },
- {0x22, 0x01, 0x0c, 0x00, "Hardest" },
-
- {0 , 0xfe, 0 , 2, "Unknown" },
- {0x22, 0x01, 0x10, 0x10, "Off" },
- {0x22, 0x01, 0x10, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Allow Continue" },
- {0x22, 0x01, 0x20, 0x00, "No" },
- {0x22, 0x01, 0x20, 0x20, "Yes" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x22, 0x01, 0x40, 0x40, "Off" },
- {0x22, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x22, 0x01, 0x80, 0x80, "Off" },
- {0x22, 0x01, 0x80, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x23, 0x01, 0x01, 0x01, "Off" },
- {0x23, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 4, "Cabinet" },
- {0x23, 0x01, 0x06, 0x04, "2 Player Upright" },
- {0x23, 0x01, 0x06, 0x06, "4 Player Upright A" },
- {0x23, 0x01, 0x06, 0x02, "4 Player Upright B" },
- {0x23, 0x01, 0x06, 0x00, "Cocktail" },
-
- {0 , 0xfe, 0 , 2, "Coin Mode" },
- {0x23, 0x01, 0x08, 0x08, "1" },
- {0x23, 0x01, 0x08, 0x00, "2" },
-
- {0 , 0xfe, 0 , 16, "Coinage" },
- {0x23, 0x01, 0xf0, 0xa0, "6 Coins 1 Credits" },
- {0x23, 0x01, 0xf0, 0xb0, "5 Coins 1 Credits" },
- {0x23, 0x01, 0xf0, 0xc0, "4 Coins 1 Credits" },
- {0x23, 0x01, 0xf0, 0xd0, "3 Coins 1 Credits" },
- {0x23, 0x01, 0xf0, 0xe0, "2 Coins 1 Credits" },
- {0x23, 0x01, 0xf0, 0x10, "2 Coins to Start/1 to Continue" },
- {0x23, 0x01, 0xf0, 0x30, "3 Coins 2 Credits" },
- {0x23, 0x01, 0xf0, 0x20, "4 Coins 3 Credits" },
- {0x23, 0x01, 0xf0, 0xf0, "1 Coin 1 Credits" },
- {0x23, 0x01, 0xf0, 0x40, "2 Coins 3 Credits" },
- {0x23, 0x01, 0xf0, 0x90, "1 Coin 2 Credits" },
- {0x23, 0x01, 0xf0, 0x80, "1 Coin 3 Credits" },
- {0x23, 0x01, 0xf0, 0x70, "1 Coin 4 Credits" },
- {0x23, 0x01, 0xf0, 0x60, "1 Coin 5 Credits" },
- {0x23, 0x01, 0xf0, 0x50, "1 Coin 6 Credits" },
- {0x23, 0x01, 0xf0, 0x00, "Free Play" },
-};
-
-STDDIPINFO(Atompunk)
-
-static struct BurnDIPInfo BombrmanDIPList[]=
-{
- {0x12, 0xff, 0xff, 0xaf, NULL },
- {0x13, 0xff, 0xff, 0xf9, NULL },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x12, 0x01, 0x03, 0x02, "2" },
- {0x12, 0x01, 0x03, 0x03, "3" },
- {0x12, 0x01, 0x03, 0x01, "4" },
- {0x12, 0x01, 0x03, 0x00, "5" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x12, 0x01, 0x0c, 0x08, "Easy" },
- {0x12, 0x01, 0x0c, 0x0c, "Medium" },
- {0x12, 0x01, 0x0c, 0x04, "Hard" },
- {0x12, 0x01, 0x0c, 0x00, "Hardest" },
-
- {0 , 0xfe, 0 , 2, "Allow Continue" },
- {0x12, 0x01, 0x20, 0x00, "No" },
- {0x12, 0x01, 0x20, 0x20, "Yes" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x12, 0x01, 0x40, 0x40, "Off" },
- {0x12, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x12, 0x01, 0x80, 0x80, "Off" },
- {0x12, 0x01, 0x80, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x13, 0x01, 0x01, 0x01, "Off" },
- {0x13, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Coin Mode" },
- {0x13, 0x01, 0x08, 0x08, "1" },
- {0x13, 0x01, 0x08, 0x00, "2" },
-
- {0 , 0xfe, 0 , 16, "Coinage" },
- {0x13, 0x01, 0xf0, 0xa0, "6 Coins 1 Credits" },
- {0x13, 0x01, 0xf0, 0xb0, "5 Coins 1 Credits" },
- {0x13, 0x01, 0xf0, 0xc0, "4 Coins 1 Credits" },
- {0x13, 0x01, 0xf0, 0xd0, "3 Coins 1 Credits" },
- {0x13, 0x01, 0xf0, 0xe0, "2 Coins 1 Credits" },
- {0x13, 0x01, 0xf0, 0x10, "2 Coins to Start/1 to Continue" },
- {0x13, 0x01, 0xf0, 0x30, "3 Coins 2 Credits" },
- {0x13, 0x01, 0xf0, 0x20, "4 Coins 3 Credits" },
- {0x13, 0x01, 0xf0, 0xf0, "1 Coin 1 Credits" },
- {0x13, 0x01, 0xf0, 0x40, "2 Coins 3 Credits" },
- {0x13, 0x01, 0xf0, 0x90, "1 Coin 2 Credits" },
- {0x13, 0x01, 0xf0, 0x80, "1 Coin 3 Credits" },
- {0x13, 0x01, 0xf0, 0x70, "1 Coin 4 Credits" },
- {0x13, 0x01, 0xf0, 0x60, "1 Coin 5 Credits" },
- {0x13, 0x01, 0xf0, 0x50, "1 Coin 6 Credits" },
- {0x13, 0x01, 0xf0, 0x00, "Free Play" },
-};
-
-STDDIPINFO(Bombrman)
-
-static struct BurnDIPInfo HasamuDIPList[]=
-{
- {0x12, 0xff, 0xff, 0xbf, NULL },
- {0x13, 0xff, 0xff, 0xff, NULL },
-
- {0 , 0xfe, 0 , 2, "Allow Continue" },
- {0x12, 0x01, 0x20, 0x00, "No" },
- {0x12, 0x01, 0x20, 0x20, "Yes" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x12, 0x01, 0x40, 0x40, "Off" },
- {0x12, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x12, 0x01, 0x80, 0x80, "Off" },
- {0x12, 0x01, 0x80, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x13, 0x01, 0x01, 0x01, "Off" },
- {0x13, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Unknown" },
- {0x13, 0x01, 0x02, 0x02, "Off" },
- {0x13, 0x01, 0x02, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Coin Mode" },
- {0x13, 0x01, 0x08, 0x08, "1" },
- {0x13, 0x01, 0x08, 0x00, "2" },
-
- {0 , 0xfe, 0 , 16, "Coinage" },
- {0x13, 0x01, 0xf0, 0xa0, "6 Coins 1 Credits" },
- {0x13, 0x01, 0xf0, 0xb0, "5 Coins 1 Credits" },
- {0x13, 0x01, 0xf0, 0xc0, "4 Coins 1 Credits" },
- {0x13, 0x01, 0xf0, 0xd0, "3 Coins 1 Credits" },
- {0x13, 0x01, 0xf0, 0xe0, "2 Coins 1 Credits" },
- {0x13, 0x01, 0xf0, 0x10, "2 Coins to Start/1 to Continue" },
- {0x13, 0x01, 0xf0, 0x30, "3 Coins 2 Credits" },
- {0x13, 0x01, 0xf0, 0x20, "4 Coins 3 Credits" },
- {0x13, 0x01, 0xf0, 0xf0, "1 Coin 1 Credits" },
- {0x13, 0x01, 0xf0, 0x40, "2 Coins 3 Credits" },
- {0x13, 0x01, 0xf0, 0x90, "1 Coin 2 Credits" },
- {0x13, 0x01, 0xf0, 0x80, "1 Coin 3 Credits" },
- {0x13, 0x01, 0xf0, 0x70, "1 Coin 4 Credits" },
- {0x13, 0x01, 0xf0, 0x60, "1 Coin 5 Credits" },
- {0x13, 0x01, 0xf0, 0x50, "1 Coin 6 Credits" },
- {0x13, 0x01, 0xf0, 0x00, "Free Play" },
-};
-
-STDDIPINFO(Hasamu)
-
-static struct BurnDIPInfo RiskchalDIPList[]=
-{
- {0x12, 0xff, 0xff, 0xbf, NULL },
- {0x13, 0xff, 0xff, 0xff, NULL },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x12, 0x01, 0x03, 0x02, "2" },
- {0x12, 0x01, 0x03, 0x03, "3" },
- {0x12, 0x01, 0x03, 0x01, "4" },
- {0x12, 0x01, 0x03, 0x00, "5" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x12, 0x01, 0x0c, 0x08, "Easy" },
- {0x12, 0x01, 0x0c, 0x0c, "Medium" },
- {0x12, 0x01, 0x0c, 0x04, "Hard" },
- {0x12, 0x01, 0x0c, 0x00, "Hardest" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x12, 0x01, 0x40, 0x40, "Off" },
- {0x12, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x12, 0x01, 0x80, 0x80, "Off" },
- {0x12, 0x01, 0x80, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x13, 0x01, 0x01, 0x01, "Off" },
- {0x13, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Coin Slots" },
- {0x13, 0x01, 0x04, 0x04, "Common" },
- {0x13, 0x01, 0x04, 0x00, "Separate" },
-
- {0 , 0xfe, 0 , 2, "Coin Mode" },
- {0x13, 0x01, 0x08, 0x08, "1" },
- {0x13, 0x01, 0x08, 0x00, "2" },
-
- {0 , 0xfe, 0 , 16, "Coinage" },
- {0x13, 0x01, 0xf0, 0xa0, "6 Coins 1 Credits" },
- {0x13, 0x01, 0xf0, 0xb0, "5 Coins 1 Credits" },
- {0x13, 0x01, 0xf0, 0xc0, "4 Coins 1 Credits" },
- {0x13, 0x01, 0xf0, 0xd0, "3 Coins 1 Credits" },
- {0x13, 0x01, 0xf0, 0xe0, "2 Coins 1 Credits" },
- {0x13, 0x01, 0xf0, 0x10, "2 Coins to Start/1 to Continue" },
- {0x13, 0x01, 0xf0, 0x30, "3 Coins 2 Credits" },
- {0x13, 0x01, 0xf0, 0x20, "4 Coins 3 Credits" },
- {0x13, 0x01, 0xf0, 0xf0, "1 Coin 1 Credits" },
- {0x13, 0x01, 0xf0, 0x40, "2 Coins 3 Credits" },
- {0x13, 0x01, 0xf0, 0x90, "1 Coin 2 Credits" },
- {0x13, 0x01, 0xf0, 0x80, "1 Coin 3 Credits" },
- {0x13, 0x01, 0xf0, 0x70, "1 Coin 4 Credits" },
- {0x13, 0x01, 0xf0, 0x60, "1 Coin 5 Credits" },
- {0x13, 0x01, 0xf0, 0x50, "1 Coin 6 Credits" },
- {0x13, 0x01, 0xf0, 0x00, "Free Play" },
-};
-
-STDDIPINFO(Riskchal)
-
-static struct BurnDIPInfo BbmanwDIPList[]=
-{
- {0x22, 0xff, 0xff, 0xbf, NULL },
- {0x23, 0xff, 0xff, 0xff, NULL },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x22, 0x01, 0x03, 0x02, "2" },
- {0x22, 0x01, 0x03, 0x03, "3" },
- {0x22, 0x01, 0x03, 0x01, "4" },
- {0x22, 0x01, 0x03, 0x00, "5" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x22, 0x01, 0x0c, 0x08, "Easy" },
- {0x22, 0x01, 0x0c, 0x0c, "Medium" },
- {0x22, 0x01, 0x0c, 0x04, "Hard" },
- {0x22, 0x01, 0x0c, 0x00, "Hardest" },
-
- {0 , 0xfe, 0 , 2, "Game Title" },
- {0x22, 0x01, 0x10, 0x10, "Bomber Man World" },
- {0x22, 0x01, 0x10, 0x00, "New Dyna Blaster Global Quest" },
-
- {0 , 0xfe, 0 , 2, "Allow Continue" },
- {0x22, 0x01, 0x20, 0x00, "No" },
- {0x22, 0x01, 0x20, 0x20, "Yes" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x22, 0x01, 0x40, 0x40, "Off" },
- {0x22, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x22, 0x01, 0x80, 0x80, "Off" },
- {0x22, 0x01, 0x80, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x23, 0x01, 0x01, 0x01, "Off" },
- {0x23, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 4, "Cabinet" },
- {0x23, 0x01, 0x06, 0x04, "2 Player" },
- {0x23, 0x01, 0x06, 0x06, "4 Player Seprate Coins" },
- {0x23, 0x01, 0x06, 0x02, "4 Player Shared Coins" },
- {0x23, 0x01, 0x06, 0x00, "4 Player 1&2 3&4 Share Coins" },
-
- {0 , 0xfe, 0 , 2, "Coin Mode" },
- {0x23, 0x01, 0x08, 0x08, "1" },
- {0x23, 0x01, 0x08, 0x00, "2" },
-
- {0 , 0xfe, 0 , 16, "Coinage" },
- {0x23, 0x01, 0xf0, 0xa0, "6 Coins 1 Credits" },
- {0x23, 0x01, 0xf0, 0xb0, "5 Coins 1 Credits" },
- {0x23, 0x01, 0xf0, 0xc0, "4 Coins 1 Credits" },
- {0x23, 0x01, 0xf0, 0xd0, "3 Coins 1 Credits" },
- {0x23, 0x01, 0xf0, 0xe0, "2 Coins 1 Credits" },
- {0x23, 0x01, 0xf0, 0x10, "2 Coins to Start/1 to Continue" },
- {0x23, 0x01, 0xf0, 0x30, "3 Coins 2 Credits" },
- {0x23, 0x01, 0xf0, 0x20, "4 Coins 3 Credits" },
- {0x23, 0x01, 0xf0, 0xf0, "1 Coin 1 Credits" },
- {0x23, 0x01, 0xf0, 0x40, "2 Coins 3 Credits" },
- {0x23, 0x01, 0xf0, 0x90, "1 Coin 2 Credits" },
- {0x23, 0x01, 0xf0, 0x80, "1 Coin 3 Credits" },
- {0x23, 0x01, 0xf0, 0x70, "1 Coin 4 Credits" },
- {0x23, 0x01, 0xf0, 0x60, "1 Coin 5 Credits" },
- {0x23, 0x01, 0xf0, 0x50, "1 Coin 6 Credits" },
- {0x23, 0x01, 0xf0, 0x00, "Free Play" },
-};
-
-STDDIPINFO(Bbmanw)
-
-static struct BurnDIPInfo BbmanwjDIPList[]=
-{
- {0x22, 0xff, 0xff, 0xbf, NULL },
- {0x23, 0xff, 0xff, 0xff, NULL },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x22, 0x01, 0x03, 0x02, "2" },
- {0x22, 0x01, 0x03, 0x03, "3" },
- {0x22, 0x01, 0x03, 0x01, "4" },
- {0x22, 0x01, 0x03, 0x00, "5" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x22, 0x01, 0x0c, 0x08, "Easy" },
- {0x22, 0x01, 0x0c, 0x0c, "Medium" },
- {0x22, 0x01, 0x0c, 0x04, "Hard" },
- {0x22, 0x01, 0x0c, 0x00, "Hardest" },
-
- {0 , 0xfe, 0 , 2, "Allow Continue" },
- {0x22, 0x01, 0x20, 0x00, "No" },
- {0x22, 0x01, 0x20, 0x20, "Yes" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x22, 0x01, 0x40, 0x40, "Off" },
- {0x22, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x22, 0x01, 0x80, 0x80, "Off" },
- {0x22, 0x01, 0x80, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x23, 0x01, 0x01, 0x01, "Off" },
- {0x23, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 4, "Cabinet" },
- {0x23, 0x01, 0x06, 0x04, "2 Player" },
- {0x23, 0x01, 0x06, 0x06, "4 Player Seprate Coins" },
- {0x23, 0x01, 0x06, 0x02, "4 Player Shared Coins" },
- {0x23, 0x01, 0x06, 0x00, "4 Player 1&2 3&4 Share Coins" },
-
- {0 , 0xfe, 0 , 2, "Coin Mode" },
- {0x23, 0x01, 0x08, 0x08, "1" },
- {0x23, 0x01, 0x08, 0x00, "2" },
-
- {0 , 0xfe, 0 , 16, "Coinage" },
- {0x23, 0x01, 0xf0, 0xa0, "6 Coins 1 Credits" },
- {0x23, 0x01, 0xf0, 0xb0, "5 Coins 1 Credits" },
- {0x23, 0x01, 0xf0, 0xc0, "4 Coins 1 Credits" },
- {0x23, 0x01, 0xf0, 0xd0, "3 Coins 1 Credits" },
- {0x23, 0x01, 0xf0, 0xe0, "2 Coins 1 Credits" },
- {0x23, 0x01, 0xf0, 0x10, "2 Coins to Start/1 to Continue" },
- {0x23, 0x01, 0xf0, 0x30, "3 Coins 2 Credits" },
- {0x23, 0x01, 0xf0, 0x20, "4 Coins 3 Credits" },
- {0x23, 0x01, 0xf0, 0xf0, "1 Coin 1 Credits" },
- {0x23, 0x01, 0xf0, 0x40, "2 Coins 3 Credits" },
- {0x23, 0x01, 0xf0, 0x90, "1 Coin 2 Credits" },
- {0x23, 0x01, 0xf0, 0x80, "1 Coin 3 Credits" },
- {0x23, 0x01, 0xf0, 0x70, "1 Coin 4 Credits" },
- {0x23, 0x01, 0xf0, 0x60, "1 Coin 5 Credits" },
- {0x23, 0x01, 0xf0, 0x50, "1 Coin 6 Credits" },
- {0x23, 0x01, 0xf0, 0x00, "Free Play" },
-};
-
-STDDIPINFO(Bbmanwj)
-
-static struct BurnDIPInfo Quizf1DIPList[]=
-{
- {0x16, 0xff, 0xff, 0x9f, NULL },
- {0x17, 0xff, 0xff, 0xff, NULL },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x16, 0x01, 0x03, 0x02, "2" },
- {0x16, 0x01, 0x03, 0x03, "3" },
- {0x16, 0x01, 0x03, 0x01, "4" },
- {0x16, 0x01, 0x03, 0x00, "5" },
-
- {0 , 0xfe, 0 , 2, "Input Device" },
- {0x16, 0x01, 0x20, 0x20, "Joystick" },
- {0x16, 0x01, 0x20, 0x00, "Buttons" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x16, 0x01, 0x40, 0x40, "Off" },
- {0x16, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x16, 0x01, 0x80, 0x80, "Off" },
- {0x16, 0x01, 0x80, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x17, 0x01, 0x01, 0x01, "Off" },
- {0x17, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Coin Mode" },
- {0x17, 0x01, 0x08, 0x08, "1" },
- {0x17, 0x01, 0x08, 0x00, "2" },
-
- {0 , 0xfe, 0 , 16, "Coinage" },
- {0x17, 0x01, 0xf0, 0xa0, "6 Coins 1 Credits" },
- {0x17, 0x01, 0xf0, 0xb0, "5 Coins 1 Credits" },
- {0x17, 0x01, 0xf0, 0xc0, "4 Coins 1 Credits" },
- {0x17, 0x01, 0xf0, 0xd0, "3 Coins 1 Credits" },
- {0x17, 0x01, 0xf0, 0xe0, "2 Coins 1 Credits" },
- {0x17, 0x01, 0xf0, 0x10, "2 Coins to Start/1 to Continue" },
- {0x17, 0x01, 0xf0, 0x30, "3 Coins 2 Credits" },
- {0x17, 0x01, 0xf0, 0x20, "4 Coins 3 Credits" },
- {0x17, 0x01, 0xf0, 0xf0, "1 Coin 1 Credits" },
- {0x17, 0x01, 0xf0, 0x40, "2 Coins 3 Credits" },
- {0x17, 0x01, 0xf0, 0x90, "1 Coin 2 Credits" },
- {0x17, 0x01, 0xf0, 0x80, "1 Coin 3 Credits" },
- {0x17, 0x01, 0xf0, 0x70, "1 Coin 4 Credits" },
- {0x17, 0x01, 0xf0, 0x60, "1 Coin 5 Credits" },
- {0x17, 0x01, 0xf0, 0x50, "1 Coin 6 Credits" },
- {0x17, 0x01, 0xf0, 0x00, "Free Play" },
-};
-
-STDDIPINFO(Quizf1)
-
-static struct BurnDIPInfo Matchit2DIPList[]=
-{
- {0x14, 0xff, 0xff, 0xff, NULL },
- {0x15, 0xff, 0xff, 0xff, NULL },
-
- {0 , 0xfe, 0 , 2, "Girls Mode" },
- {0x14, 0x01, 0x01, 0x00, "Off" },
- {0x14, 0x01, 0x01, 0x01, "On" },
-
- {0 , 0xfe, 0 , 2, "China Tiles" },
- {0x14, 0x01, 0x02, 0x02, "Mahjong" },
- {0x14, 0x01, 0x02, 0x00, "Alpha-Numeric" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x14, 0x01, 0x0c, 0x00, "Very Hard" },
- {0x14, 0x01, 0x0c, 0x04, "Hard" },
- {0x14, 0x01, 0x0c, 0x0c, "Normal" },
- {0x14, 0x01, 0x0c, 0x08, "Easy" },
-
- {0 , 0xfe, 0 , 4, "Timer Speed" },
- {0x14, 0x01, 0x30, 0x00, "Very Hard" },
- {0x14, 0x01, 0x30, 0x10, "Hard" },
- {0x14, 0x01, 0x30, 0x30, "Normal" },
- {0x14, 0x01, 0x30, 0x20, "Easy" },
-
- {0 , 0xfe, 0 , 2, "Title Screen" },
- {0x14, 0x01, 0x40, 0x40, "Match It II" },
- {0x14, 0x01, 0x40, 0x00, "Shisensho II" },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x14, 0x01, 0x80, 0x80, "Off" },
- {0x14, 0x01, 0x80, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x15, 0x01, 0x01, 0x01, "Off" },
- {0x15, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 3, "Language" },
- {0x15, 0x01, 0x06, 0x06, "English" },
- {0x15, 0x01, 0x06, 0x04, "German" },
- {0x15, 0x01, 0x06, 0x02, "Korean" },
-
- {0 , 0xfe, 0 , 2, "Coin Mode" },
- {0x15, 0x01, 0x08, 0x08, "1" },
- {0x15, 0x01, 0x08, 0x00, "2" },
-
- {0 , 0xfe, 0 , 16, "Coinage" },
- {0x15, 0x01, 0xf0, 0xa0, "6 Coins 1 Credits" },
- {0x15, 0x01, 0xf0, 0xb0, "5 Coins 1 Credits" },
- {0x15, 0x01, 0xf0, 0xc0, "4 Coins 1 Credits" },
- {0x15, 0x01, 0xf0, 0xd0, "3 Coins 1 Credits" },
- {0x15, 0x01, 0xf0, 0xe0, "2 Coins 1 Credits" },
- {0x15, 0x01, 0xf0, 0x10, "2 Coins to Start/1 to Continue" },
- {0x15, 0x01, 0xf0, 0x30, "3 Coins 2 Credits" },
- {0x15, 0x01, 0xf0, 0x20, "4 Coins 3 Credits" },
- {0x15, 0x01, 0xf0, 0xf0, "1 Coin 1 Credits" },
- {0x15, 0x01, 0xf0, 0x40, "2 Coins 3 Credits" },
- {0x15, 0x01, 0xf0, 0x90, "1 Coin 2 Credits" },
- {0x15, 0x01, 0xf0, 0x80, "1 Coin 3 Credits" },
- {0x15, 0x01, 0xf0, 0x70, "1 Coin 4 Credits" },
- {0x15, 0x01, 0xf0, 0x60, "1 Coin 5 Credits" },
- {0x15, 0x01, 0xf0, 0x50, "1 Coin 6 Credits" },
- {0x15, 0x01, 0xf0, 0x00, "Free Play" },
-};
-
-STDDIPINFO(Matchit2)
-
-static struct BurnDIPInfo Shisen2DIPList[]=
-{
- {0x14, 0xff, 0xff, 0xbf, NULL },
- {0x15, 0xff, 0xff, 0xff, NULL },
-
- {0 , 0xfe, 0 , 2, "Girls Mode" },
- {0x14, 0x01, 0x01, 0x00, "Off" },
- {0x14, 0x01, 0x01, 0x01, "On" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x14, 0x01, 0x0c, 0x00, "Very Hard" },
- {0x14, 0x01, 0x0c, 0x04, "Hard" },
- {0x14, 0x01, 0x0c, 0x0c, "Normal" },
- {0x14, 0x01, 0x0c, 0x08, "Easy" },
-
- {0 , 0xfe, 0 , 4, "Timer Speed" },
- {0x14, 0x01, 0x30, 0x00, "Very Hard" },
- {0x14, 0x01, 0x30, 0x10, "Hard" },
- {0x14, 0x01, 0x30, 0x30, "Normal" },
- {0x14, 0x01, 0x30, 0x20, "Easy" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x14, 0x01, 0x40, 0x40, "Off" },
- {0x14, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x14, 0x01, 0x80, 0x80, "Off" },
- {0x14, 0x01, 0x80, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x15, 0x01, 0x01, 0x01, "Off" },
- {0x15, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Coin Mode" },
- {0x15, 0x01, 0x08, 0x08, "1" },
- {0x15, 0x01, 0x08, 0x00, "2" },
-
- {0 , 0xfe, 0 , 16, "Coinage" },
- {0x15, 0x01, 0xf0, 0xa0, "6 Coins 1 Credits" },
- {0x15, 0x01, 0xf0, 0xb0, "5 Coins 1 Credits" },
- {0x15, 0x01, 0xf0, 0xc0, "4 Coins 1 Credits" },
- {0x15, 0x01, 0xf0, 0xd0, "3 Coins 1 Credits" },
- {0x15, 0x01, 0xf0, 0xe0, "2 Coins 1 Credits" },
- {0x15, 0x01, 0xf0, 0x10, "2 Coins to Start/1 to Continue" },
- {0x15, 0x01, 0xf0, 0x30, "3 Coins 2 Credits" },
- {0x15, 0x01, 0xf0, 0x20, "4 Coins 3 Credits" },
- {0x15, 0x01, 0xf0, 0xf0, "1 Coin 1 Credits" },
- {0x15, 0x01, 0xf0, 0x40, "2 Coins 3 Credits" },
- {0x15, 0x01, 0xf0, 0x90, "1 Coin 2 Credits" },
- {0x15, 0x01, 0xf0, 0x80, "1 Coin 3 Credits" },
- {0x15, 0x01, 0xf0, 0x70, "1 Coin 4 Credits" },
- {0x15, 0x01, 0xf0, 0x60, "1 Coin 5 Credits" },
- {0x15, 0x01, 0xf0, 0x50, "1 Coin 6 Credits" },
- {0x15, 0x01, 0xf0, 0x00, "Free Play" },
-};
-
-STDDIPINFO(Shisen2)
-
-static void setvector_callback(INT32 param)
-{
- switch (param)
- {
- case VECTOR_INIT: irqvector = 0xff; break;
- case YM2151_ASSERT: irqvector &= 0xef; break;
- case YM2151_CLEAR: irqvector |= 0x10; break;
- case Z80_ASSERT: irqvector &= 0xdf; break;
- case Z80_CLEAR: irqvector |= 0x20; break;
- }
-
- ZetSetVector(irqvector);
- ZetSetIRQLine(0, (irqvector == 0xff) ? CPU_IRQSTATUS_NONE : CPU_IRQSTATUS_ACK);
-}
-
-static inline void update_palette_entry(INT32 entry)
-{
- UINT16 d = *((UINT16*)(DrvPalRAM + entry));
-
-#ifndef LSB_FIRST
- d = BURN_ENDIAN_SWAP_INT16(d);
-#endif
-
- UINT8 r = (d >> 0) & 0x1f;
- UINT8 g = (d >> 5) & 0x1f;
- UINT8 b = (d >> 10) & 0x1f;
-
- r = (r << 3) | (r >> 2);
- g = (g << 3) | (g >> 2);
- b = (b << 3) | (b >> 2);
-
- DrvPalette[entry / 2] = BurnHighCol(r, g, b, 0);
-}
-
-void __fastcall m90_main_write(UINT32 address, UINT8 data)
-{
- if ((address & 0xffc00) == 0xe0000) {
- DrvPalRAM[address & 0x3ff] = data;
- update_palette_entry(address & 0x3fe);
- return;
- }
-}
-
-UINT8 __fastcall m90_main_read(UINT32 /*address*/)
-{
- return 0;
-}
-
-void __fastcall m90_main_write_port(UINT32 port, UINT8 data)
-{
- if ((port & ~0x0f) == 0x80) {
- m90_video_control[port & 0x0f] = data;
- return;
- }
-
- switch (port)
- {
- case 0x00:
- // case 0x01:
- *soundlatch = data;
- setvector_callback(Z80_ASSERT);
- return;
-
- case 0x02:
- // case 0x03:
- // coin counter
- return;
-
- case 0x04:
- //case 0x05:
- {
- INT32 bankaddress = 0x100000 + 0x10000 * (data & 0x0f);
- VezMapArea(0x80000, 0x8ffff, 0, DrvV30ROM + bankaddress);
- VezMapArea(0x80000, 0x8ffff, 2, DrvV30ROM + bankaddress);
- }
- return;
-
- case 0x90:
- // case 0x91: // nop dynablsb
- return;
-
- //default:
- // bprintf (0, _T("Writing %2.2x to port %2.2x wp\n"), data, port);
- // break;
- }
-}
-
-UINT8 __fastcall m90_main_read_port(UINT32 port)
-{
- switch (port)
- {
- case 0x00: return DrvInputs[0];
- case 0x01: return DrvInputs[1];
- case 0x02: return (DrvInputs[2] & 0x7f) | vblank; // system
- // case 0x03: return 0xff; // ?
- case 0x04: return DrvDips[0];
- case 0x05: return DrvDips[1];
- case 0x06: return DrvInputs[3];
- case 0x07: return DrvInputs[4];
-
- //default:
- // bprintf (0, _T("Reading port: %2.2x\n"), port);
- // break;
- }
-
- return 0;
-}
-
-void __fastcall m90_sound_write_port(UINT16 port, UINT8 data)
-{
- switch (port & 0xff)
- {
- case 0x00:
- case 0x40: // bbmanw
- BurnYM2151SelectRegister(data);
- return;
-
- case 0x01:
- case 0x41: // bbmanw
- BurnYM2151WriteRegister(data);
- return;
-
- case 0x80:
- sample_address >>= 5;
- sample_address = (sample_address & 0x00ff) | (data << 8);
- sample_address <<= 5;
- return;
-
- case 0x81:
- sample_address >>= 5;
- sample_address = (sample_address & 0xff00) | (data << 0);
- sample_address <<= 5;
- return;
-
- case 0x82:
- DACSignedWrite(0, data);
- sample_address = (sample_address + 1) & 0x3ffff;
- return;
-
- case 0x42: // bbmanw
- case 0x83:
- setvector_callback(Z80_CLEAR);
- return;
- }
-}
-
-UINT8 __fastcall m90_sound_read_port(UINT16 port)
-{
- switch (port & 0xff)
- {
- case 0x00:
- case 0x01:
- case 0x40: // bbmanw
- case 0x41:
- return BurnYM2151ReadStatus();
-
- case 0x42: // bbmanw
- case 0x80:
- ZetSetVector(0xff);
- ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
- return *soundlatch;
-
- case 0x84:
- return DrvSndROM[sample_address & 0x3fff];
- }
-
- return 0;
-}
-
-static void m72YM2151IRQHandler(INT32 nStatus)
-{
- setvector_callback(nStatus ? YM2151_ASSERT : YM2151_CLEAR);
-}
-
-static INT32 m90SyncDAC()
-{
- return (INT32)(float)(nBurnSoundLen * (ZetTotalCycles() / (3579545.000 / (nBurnFPS / 100.000))));
-}
-
-static INT32 DrvDoReset()
-{
- memset (AllRam, 0, RamEnd - AllRam);
-
- VezOpen(0);
- VezReset();
- VezClose();
-
- ZetOpen(0);
- ZetReset();
- setvector_callback(VECTOR_INIT);
- ZetClose();
-
- BurnYM2151Reset();
- DACReset();
-
- sample_address = 0;
-
- return 0;
-}
-
-static INT32 MemIndex()
-{
- UINT8 *Next; Next = AllMem;
-
- DrvV30ROM = Next; Next += 0x200000;
- DrvZ80ROM = Next; Next += 0x010000;
- DrvGfxROM0 = Next; Next += 0x400000;
- DrvGfxROM1 = Next; Next += 0x400000;
- DrvSndROM = Next; Next += 0x180000;
-
- RamPrioBitmap = Next; Next += nScreenWidth * nScreenHeight;
-
- AllRam = Next;
-
- DrvSprRAM = Next; Next += 0x000800;
- DrvVidRAM = Next; Next += 0x010000;
- DrvV30RAM = Next; Next += 0x004000;
- DrvPalRAM = Next; Next += 0x000800;
- DrvZ80RAM = Next; Next += 0x001000;
-
- soundlatch = Next; Next += 0x000004; // 1
-
- m90_video_control = Next; Next += 0x000010;
-
- RamEnd = Next;
-
- DrvPalette = (UINT32 *) Next; Next += 0x0200 * sizeof(UINT32);
-
- MemEnd = Next;
-
- return 0;
-}
-
-static INT32 DrvLoadRoms(INT32 codesize, INT32 samples, INT32 bank)
-{
- if (BurnLoadRom(DrvV30ROM + 1, 0, 2)) return 1;
- if (BurnLoadRom(DrvV30ROM + 0, 1, 2)) return 1;
-
- if (codesize == 0x40000) {
- memcpy (DrvV30ROM + 0x7fff0, DrvV30ROM + 0x3fff0, 0x10);
- }
-
- if (BurnLoadRom(DrvZ80ROM, 2, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM1 + 0x000000, 3, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x080000, 4, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x100000, 5, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x180000, 6, 1)) return 1;
-
- if (samples) {
- if (BurnLoadRom(DrvSndROM, 7, 1)) return 1;
-
- if (samples < 0x40000) {
- memcpy (DrvSndROM + 0x20000, DrvSndROM + 0x00000, 0x20000);
- }
- }
-
- if (bank) {
- if (BurnLoadRom(DrvV30ROM + 0x100001, 8, 2)) return 1;
- if (BurnLoadRom(DrvV30ROM + 0x100000, 9, 2)) return 1;
- }
-
- return 0;
-}
-
-static void map_main_cpu(UINT8 *decrypt_table, INT32 codesize, INT32 spriteram)
-{
- VezInit(0, V35_TYPE, 32000000/2);
-
- VezOpen(0);
- if (decrypt_table != NULL) {
- VezSetDecode(decrypt_table);
- }
-
- VezMapArea(0x00000, (codesize-1), 0, DrvV30ROM + 0x000000);
- VezMapArea(0x00000, (codesize-1), 2, DrvV30ROM + 0x000000);
- VezMapArea(0x80000, 0x8ffff, 0, DrvV30ROM + 0x100000);
- VezMapArea(0x80000, 0x8ffff, 2, DrvV30ROM + 0x100000);
- VezMapArea(0xa0000, 0xa3fff, 0, DrvV30RAM);
- VezMapArea(0xa0000, 0xa3fff, 1, DrvV30RAM);
- VezMapArea(0xa0000, 0xa3fff, 2, DrvV30RAM);
- VezMapArea(0xd0000, 0xdffff, 0, DrvVidRAM);
- VezMapArea(0xd0000, 0xdffff, 1, DrvVidRAM);
- VezMapArea(0xd0000, 0xdffff, 2, DrvVidRAM);
- VezMapArea(0xe0000, 0xe07ff, 0, DrvPalRAM);
-// VezMapArea(0xe0000, 0xe07ff, 1, DrvPalRAM);
- VezMapArea(0xe0000, 0xe07ff, 2, DrvPalRAM);
- VezMapArea(0xff800, 0xfffff, 0, DrvV30ROM + 0x07f800);
- VezMapArea(0xff800, 0xfffff, 2, DrvV30ROM + 0x07f800);
-
- if (spriteram) {
- VezMapArea(0x00000 + spriteram, 0x00fff + spriteram, 0, DrvSprRAM); // 00e - fff // ??
- VezMapArea(0x00000 + spriteram, 0x00fff + spriteram, 1, DrvSprRAM);
- VezMapArea(0x00000 + spriteram, 0x00fff + spriteram, 2, DrvSprRAM);
- }
-
- VezSetReadHandler(m90_main_read);
- VezSetWriteHandler(m90_main_write);
- VezSetReadPort(m90_main_read_port);
- VezSetWritePort(m90_main_write_port);
- VezClose();
-}
-
-static void DrvGfxDecode()
-{
- INT32 Plane[4] = { 0x180000 * 8, 0x100000 * 8, 0x080000 * 8, 0x000000 * 8 };
- INT32 XOffs[16] = { 0, 1, 2, 3, 4, 5, 6, 7, 16*8+0, 16*8+1, 16*8+2, 16*8+3, 16*8+4, 16*8+5, 16*8+6, 16*8+7 };
- INT32 YOffs[16] = { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8, 8*8, 9*8, 10*8, 11*8, 12*8, 13*8, 14*8, 15*8 };
-
- UINT8 *tmp = (UINT8*)BurnMalloc(0x200000);
- if (tmp == NULL) {
- return;
- }
-
- memcpy (tmp, DrvGfxROM1, 0x200000);
-
- GfxDecode(0x10000, 4, 8, 8, Plane, XOffs, YOffs, 0x040, tmp, DrvGfxROM0);
- GfxDecode(0x04000, 4, 16, 16, Plane, XOffs, YOffs, 0x100, tmp, DrvGfxROM1);
-
- BurnFree (tmp);
-}
-
-static INT32 DrvInit(INT32 codesize, INT32 gfxlen, INT32 samples, INT32 bank, INT32 spriteram, const UINT8 *decrypt_table)
-{
- GenericTilesInit();
-
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- if (DrvLoadRoms(codesize, samples, bank)) return 1;
-
- DrvGfxDecode();
-
- map_main_cpu((UINT8*)decrypt_table, codesize, spriteram);
-
- ZetInit(0);
- ZetOpen(0);
- ZetMapArea(0x0000, 0xefff, 0, DrvZ80ROM);
- ZetMapArea(0x0000, 0xefff, 2, DrvZ80ROM);
- ZetMapArea(0xf000, 0xffff, 0, DrvZ80RAM);
- ZetMapArea(0xf000, 0xffff, 1, DrvZ80RAM);
- ZetMapArea(0xf000, 0xffff, 2, DrvZ80RAM);
- ZetSetOutHandler(m90_sound_write_port);
- ZetSetInHandler(m90_sound_read_port);
- ZetClose();
-
- BurnYM2151Init(3579545);
- YM2151SetIrqHandler(0, &m72YM2151IRQHandler);
- BurnYM2151SetAllRoutes(0.15, BURN_SND_ROUTE_BOTH);
-
- DACInit(0, 0, 1, m90SyncDAC);
- DACSetRoute(0, 0.10, BURN_SND_ROUTE_BOTH);
-
- code_mask[0] = ((gfxlen * 2) - 1) / (8 * 8);
- code_mask[1] = ((gfxlen * 2) - 1) / (16 * 16);
-
- DrvDoReset();
-
- return 0;
-}
-
-static INT32 DrvExit()
-{
- GenericTilesExit();
-
- BurnYM2151Exit();
- DACExit();
-
- ZetExit();
- VezExit();
-
- BurnFree(AllMem);
-
- video_offsets[0] = video_offsets[1] = 0;
-
- return 0;
-}
-
-static void RenderTilePrio(UINT16 *dest, UINT8 *gfx, INT32 code, INT32 color, INT32 sx, INT32 sy, INT32 flipx, INT32 flipy, INT32 width, INT32 height, UINT8 *pri, INT32 prio)
-{
- if (sx <= (0-width) || sx >= nScreenWidth || sy <= (0-height) || sy >= nScreenHeight) return;
-
- INT32 flip = 0;
- if (flipy) flip |= (height - 1) * width;
- if (flipx) flip |= width - 1;
-
- gfx += code * width * height;
-
- for (INT32 y = 0; y < height; y++, sy++) {
- if (sy < 0 || sy >= nScreenHeight) continue;
-
- for (INT32 x = 0; x < width; x++, sx++) {
- if (sx < 0 || sx >= nScreenWidth) continue;
-
- INT32 pxl = gfx[((y * width) + x) ^ flip];
-
- if (pxl == 0) continue;
-
- if ((prio & (1 << pri[sy * nScreenWidth + sx])) == 0) {
- dest[sy * nScreenWidth + sx] = pxl | color;
- pri[sy * nScreenWidth + sx] = 7;
- }
- }
-
- sx -= width;
- }
-}
-
-static void draw_sprites()
-{
- INT32 pri_ctrl = m90_video_control[14] & 0x03;
- UINT16 *sram = (UINT16*)(DrvVidRAM + 0xee00);
-
- for (INT32 offs = 0x1f2/2; offs >= 0; offs -= 3)
- {
- INT32 sy = BURN_ENDIAN_SWAP_INT16(sram[offs + 0]);
- INT32 code = BURN_ENDIAN_SWAP_INT16(sram[offs + 1]);
- INT32 sx = BURN_ENDIAN_SWAP_INT16(sram[offs + 2]);
-
- INT32 flipy = sy & 0x8000;
- INT32 flipx = sx & 0x0200;
- INT32 multi = 1 << ((sy & 0x6000) >> 13);
- INT32 color = (sy >> 9) & 0x0f;
-
- sx = ((sx - video_offsets[0]) & 0x1ff) - 16;
- sy = (512 - ((sy + video_offsets[1]) & 0x1ff)) - (16 * multi);
-
- INT32 prio = 0x82;
- if (pri_ctrl & 0x01) {
- if ((color & 0x08) == 0x08) prio = 0x80;
- } else if (pri_ctrl & 0x02) {
- if ((color & 0x0c) == 0x0c) prio = 0x80;
- }
-
- for (INT32 i = 0; i < multi; i++) {
- RenderTilePrio(pTransDraw, DrvGfxROM1, (code + (flipy ? multi-1 - i : i)) & code_mask[1], (color << 4)|0x100, sx, sy+i*16, flipx, flipy, 16, 16, RamPrioBitmap, prio);
- }
- }
-}
-
-static void draw_layer(INT32 layer)
-{
- INT32 control = m90_video_control[10 + (layer * 2)];
-
- if (control & 0x10) return; // disable layer
-
- INT32 enable_rowscroll = control & 0x20;
- INT32 enable_colscroll = control & 0x40;
-
- INT32 wide = (control & 0x04) ? 128 : 64;
-
- INT32 trans = layer ? 0xff : 0;
-
- INT32 pmask = (wide == 128) ? 2 : 3;
- UINT16 *vram = (UINT16*)(DrvVidRAM + (control & pmask) * 0x4000);
-
- UINT16 scrollx = ((m90_video_control[(layer*4)+2] << 0) | (m90_video_control[(layer*4)+3] << 8)) + video_offsets[0];
- UINT16 scrolly = ((m90_video_control[(layer*4)+0] << 0) | (m90_video_control[(layer*4)+1] << 8)) + video_offsets[1];
-
- scrollx += layer ? -2 : 2;
- scrollx += ((wide & 0x80) * 2);
-
- UINT16 *xscroll = (UINT16*)(DrvVidRAM + 0xf000 + (layer * 0x400));
- UINT16 *yscroll = (UINT16*)(DrvVidRAM + 0xf800 + (layer * 0x400));
-
- for (INT32 sy = 0; sy < nScreenHeight; sy++)
- {
- INT32 scrollx_1 = scrollx;
- INT32 scrolly_1 = 0;
- UINT16 *dest = pTransDraw + (sy * nScreenWidth);
- UINT8 *pri = RamPrioBitmap + (sy * nScreenWidth);
-
- if (enable_rowscroll) scrollx_1 += BURN_ENDIAN_SWAP_INT16(xscroll[sy]);
-
- if (enable_colscroll) {
- scrolly_1 += (scrolly + sy + BURN_ENDIAN_SWAP_INT16(yscroll[sy]) + 128) & 0x1ff;
- } else {
- scrolly_1 += (scrolly + sy) & 0x1ff;
- }
-
- INT32 romoff_1 = (scrolly_1 & 0x07) << 3;
-
- for (INT32 sx = 0; sx < nScreenWidth + 8; sx+=8)
- {
- INT32 scrollx_2 = (scrollx_1 + sx) & ((wide * 8) - 1);
-
- INT32 offs = ((scrolly_1 / 8) * wide) | (scrollx_2 / 8);
-
- INT32 code = BURN_ENDIAN_SWAP_INT16(vram[offs * 2 + 0]) & code_mask[0];
- INT32 color = BURN_ENDIAN_SWAP_INT16(vram[offs * 2 + 1]);
-
- INT32 flipy = color & 0x80;
- INT32 flipx = color & 0x40;
- INT32 group =(color & 0x30) ? 0 : 1;
- color &= 0x0f;
-
- {
- color <<= 4;
- INT32 x_xor = 0;
- INT32 romoff = romoff_1;
- if (flipy) romoff ^= 0x38;
- if (flipx) x_xor = 7;
-
- UINT8 *rom = DrvGfxROM0 + (code * 0x40) + romoff;
-
- INT32 xx = sx - (scrollx_2&0x7);
-
- for (INT32 x = 0; x < 8; x++, xx++) {
- if (xx < 0 || xx >= nScreenWidth) continue;
-
- INT32 pxl = rom[x ^ x_xor];
- if (pxl == trans) continue;
-
- dest[xx] = pxl | color;
- pri[xx] = 1 << group;
- }
- }
- }
- }
-}
-
-static INT32 DrvDraw()
-{
- if (DrvRecalc) {
- for (INT32 i = 0; i < 0x400; i+=2) {
- update_palette_entry(i);
- }
- DrvRecalc = 0;
- }
-
- if ((m90_video_control[14] & 0x04) == 0) {
- if (m90_video_control[12] & 0x10) {
- memset (RamPrioBitmap, 0, nScreenWidth * nScreenHeight);
- BurnTransferClear();
- } else {
- if (nBurnLayer & 1) draw_layer(1);
- }
-
- if (nBurnLayer & 2) draw_layer(0);
-
- if (nBurnLayer & 4) draw_sprites();
- } else {
- BurnTransferClear();
- }
-
- BurnTransferCopy(DrvPalette);
-
- return 0;
-}
-
-static void compile_inputs()
-{
- memset (DrvInputs, 0xff, 5);
-
- for (INT32 i = 0; i < 8; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- DrvInputs[2] ^= (DrvJoy3[i] & 1) << i;
- DrvInputs[3] ^= (DrvJoy4[i] & 1) << i;
- DrvInputs[4] ^= (DrvJoy5[i] & 1) << i;
- }
-}
-
-static INT32 DrvFrame()
-{
- if (DrvReset) {
- DrvDoReset();
- }
-
- compile_inputs();
-
- INT32 nInterleave = 128; // nmi pulses for sound cpu
- INT32 nCyclesTotal[2];
- INT32 nCyclesDone[2];
-
- // overclocking...
- nCyclesTotal[0] = (INT32)((INT64)(8000000 / 60) * nBurnCPUSpeedAdjust / 0x0100);
- nCyclesTotal[1] = (INT32)((INT64)(3579545 / 60) * nBurnCPUSpeedAdjust / 0x0100);
- nCyclesDone[0] = nCyclesDone[1] = 0;
-
- VezNewFrame();
- ZetNewFrame();
-
- VezOpen(0);
- ZetOpen(0);
-
- vblank = 0;
-
- for (INT32 i = 0; i < nInterleave; i++)
- {
- nCyclesDone[0] += VezRun(nCyclesTotal[0] / nInterleave);
-
- if (i == (nInterleave - 1))
- {
- VezSetIRQLineAndVector(NEC_INPUT_LINE_INTP0, 0xff, CPU_IRQSTATUS_ACK);
- VezRun(0);
- VezSetIRQLineAndVector(NEC_INPUT_LINE_INTP0, 0xff, CPU_IRQSTATUS_NONE);
- }
-
- nCyclesDone[1] += ZetRun(nCyclesTotal[1] / nInterleave);
- ZetNmi();
-
- if (i == 124) vblank = 0x80;
- }
-
- if (pBurnSoundOut) {
- BurnYM2151Render(pBurnSoundOut, nBurnSoundLen);
- DACUpdate(pBurnSoundOut, nBurnSoundLen);
- }
-
- VezClose();
- ZetClose();
-
- if (pBurnDraw) {
- DrvDraw();
- }
-
- return 0;
-}
-
-
-
-// Hasamu (Japan)
-
-static struct BurnRomInfo hasamuRomDesc[] = {
- { "hasc-p1.bin", 0x20000, 0x53df9834, 1 | BRF_PRG | BRF_ESS }, // 0 V30 Code
- { "hasc-p0.bin", 0x20000, 0xdff0ba6e, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "hasc-sp.bin", 0x10000, 0x259b1687, 2 | BRF_PRG | BRF_ESS }, // 2 Z80 Code
-
- { "hasc-c0.bin", 0x20000, 0xdd5a2174, 3 | BRF_GRA }, // 3 Tiles and sprites
- { "hasc-c1.bin", 0x20000, 0x76b8217c, 3 | BRF_GRA }, // 4
- { "hasc-c2.bin", 0x20000, 0xd90f9a68, 3 | BRF_GRA }, // 5
- { "hasc-c3.bin", 0x20000, 0x6cfe0d39, 3 | BRF_GRA }, // 6
-};
-
-STD_ROM_PICK(hasamu)
-STD_ROM_FN(hasamu)
-
-static INT32 hasamuInit()
-{
- video_offsets[0] = 48;
- video_offsets[1] = 136;
- return DrvInit(0x40000, 0x80000, 0x00000, 0, 0, gunforce_decryption_table);
-}
-
-struct BurnDriver BurnDrvHasamu = {
- "hasamu", NULL, NULL, NULL, "1991",
- "Hasamu (Japan)\0", NULL, "Irem", "M90",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_IREM_M90, GBF_MISC, 0,
- NULL, hasamuRomInfo, hasamuRomName, NULL, NULL, p2commonInputInfo, HasamuDIPInfo,
- hasamuInit, DrvExit, DrvFrame, DrvDraw, NULL, &DrvRecalc, 0x200,
- 384, 240, 4, 3
-};
-
-
-// Dynablaster / Bomber Man
-
-static struct BurnRomInfo dynablstRomDesc[] = {
- { "bbm-cp1e.62", 0x20000, 0x27667681, 1 | BRF_PRG | BRF_ESS }, // 0 V30 Code
- { "bbm-cp0e.65", 0x20000, 0x95db7a67, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "bbm-sp.23", 0x10000, 0x251090cd, 2 | BRF_PRG | BRF_ESS }, // 2 Z80 Code
-
- { "bbm-c0.66", 0x40000, 0x695d2019, 3 | BRF_GRA }, // 3 Tiles and sprites
- { "bbm-c1.67", 0x40000, 0x4c7c8bbc, 3 | BRF_GRA }, // 4
- { "bbm-c2.68", 0x40000, 0x0700d406, 3 | BRF_GRA }, // 5
- { "bbm-c3.69", 0x40000, 0x3c3613af, 3 | BRF_GRA }, // 6
-
- { "bbm-v0.20", 0x20000, 0x0fa803fe, 4 | BRF_SND }, // 7 Samples
-};
-
-STD_ROM_PICK(dynablst)
-STD_ROM_FN(dynablst)
-
-static INT32 dynablstInit()
-{
- video_offsets[0] = 80;
- video_offsets[1] = 136;
- return DrvInit(0x40000, 0x100000, 0x20000, 0, 0, bomberman_decryption_table);
-}
-
-struct BurnDriver BurnDrvDynablst = {
- "dynablst", NULL, NULL, NULL, "1991",
- "Dynablaster / Bomber Man\0", NULL, "Irem (licensed from Hudson Soft)", "M90",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 4, HARDWARE_IREM_M90, GBF_MISC, 0,
- NULL, dynablstRomInfo, dynablstRomName, NULL, NULL, p4commonInputInfo, DynablstDIPInfo,
- dynablstInit, DrvExit, DrvFrame, DrvDraw, NULL, &DrvRecalc, 0x200,
- 320, 240, 4, 3
-};
-
-
-// Bomber Man (Japan)
-
-static struct BurnRomInfo bombrmanRomDesc[] = {
- { "bbm-p1.62", 0x20000, 0x982bd166, 1 | BRF_PRG | BRF_ESS }, // 0 V30 Code
- { "bbm-p0.65", 0x20000, 0x0a20afcc, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "bbm-sp.23", 0x10000, 0x251090cd, 2 | BRF_PRG | BRF_ESS }, // 2 Z80 Code
-
- { "bbm-c0.66", 0x40000, 0x695d2019, 3 | BRF_GRA }, // 3 Tiles and sprites
- { "bbm-c1.67", 0x40000, 0x4c7c8bbc, 3 | BRF_GRA }, // 4
- { "bbm-c2.68", 0x40000, 0x0700d406, 3 | BRF_GRA }, // 5
- { "bbm-c3.69", 0x40000, 0x3c3613af, 3 | BRF_GRA }, // 6
-
- { "bbm-v0.20", 0x20000, 0x0fa803fe, 4 | BRF_SND }, // 7 Samples
-};
-
-STD_ROM_PICK(bombrman)
-STD_ROM_FN(bombrman)
-
-struct BurnDriver BurnDrvBombrman = {
- "bombrman", "dynablst", NULL, NULL, "1991",
- "Bomber Man (Japan)\0", NULL, "Irem (licensed from Hudson Soft)", "M90",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_IREM_M90, GBF_MISC, 0,
- NULL, bombrmanRomInfo, bombrmanRomName, NULL, NULL, p2commonInputInfo, BombrmanDIPInfo,
- dynablstInit, DrvExit, DrvFrame, DrvDraw, NULL, &DrvRecalc, 0x200,
- 320, 240, 4, 3
-};
-
-
-// Atomic Punk (US)
-
-static struct BurnRomInfo atompunkRomDesc[] = {
- { "bbm-cp0d.65", 0x20000, 0x860c0479, 1 | BRF_PRG | BRF_ESS }, // 0 V30 Code
- { "bbm-cp1d.62", 0x20000, 0xbe57bf74, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "bbm-sp.23", 0x10000, 0x251090cd, 2 | BRF_PRG | BRF_ESS }, // 2 Z80 Code
-
- { "bbm-c0.66", 0x40000, 0x695d2019, 3 | BRF_GRA }, // 3 Tiles and sprites
- { "bbm-c1.67", 0x40000, 0x4c7c8bbc, 3 | BRF_GRA }, // 4
- { "bbm-c2.68", 0x40000, 0x0700d406, 3 | BRF_GRA }, // 5
- { "bbm-c3.69", 0x40000, 0x3c3613af, 3 | BRF_GRA }, // 6
-
- { "bbm-v0.20", 0x20000, 0x0fa803fe, 4 | BRF_SND }, // 7 Samples
-};
-
-STD_ROM_PICK(atompunk)
-STD_ROM_FN(atompunk)
-
-struct BurnDriver BurnDrvAtompunk = {
- "atompunk", "dynablst", NULL, NULL, "1991",
- "Atomic Punk (US)\0", NULL, "Irem America (licensed from Hudson Soft)", "M90",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 4, HARDWARE_IREM_M90, GBF_MISC, 0,
- NULL, atompunkRomInfo, atompunkRomName, NULL, NULL, p4commonInputInfo, AtompunkDIPInfo,
- dynablstInit, DrvExit, DrvFrame, DrvDraw, NULL, &DrvRecalc, 0x200,
- 320, 240, 4, 3
-};
-
-
-// Bomber Man World / New Dyna Blaster - Global Quest
-
-static struct BurnRomInfo bbmanwRomDesc[] = {
- { "bbm2-h0-b.77", 0x40000, 0x567d3709, 1 | BRF_PRG | BRF_ESS }, // 0 V30 Code
- { "bbm2-l0-b.79", 0x40000, 0xe762c22b, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "bbm2-sp.33", 0x10000, 0x6bc1689e, 2 | BRF_PRG | BRF_ESS }, // 2 Z80 Code
-
- { "bbm2-c0.81", 0x40000, 0xe7ce058a, 3 | BRF_GRA }, // 3 Tiles and sprites
- { "bbm2-c1.82", 0x40000, 0x636a78a9, 3 | BRF_GRA }, // 4
- { "bbm2-c2.83", 0x40000, 0x9ac2142f, 3 | BRF_GRA }, // 5
- { "bbm2-c3.84", 0x40000, 0x47af1750, 3 | BRF_GRA }, // 6
-
- { "bbm2-v0.30", 0x20000, 0x4ad889ed, 4 | BRF_SND }, // 7 Samples
-};
-
-STD_ROM_PICK(bbmanw)
-STD_ROM_FN(bbmanw)
-
-static INT32 bbmanwInit()
-{
- video_offsets[0] = 80;
- video_offsets[1] = 136;
- return DrvInit(0x80000, 0x100000, 0x20000, 0, 0, dynablaster_decryption_table);
-}
-
-struct BurnDriver BurnDrvBbmanw = {
- "bbmanw", NULL, NULL, NULL, "1992",
- "Bomber Man World / New Dyna Blaster - Global Quest\0", NULL, "Irem", "M90",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_IREM_M90, GBF_MISC, 0,
- NULL, bbmanwRomInfo, bbmanwRomName, NULL, NULL, p4commonInputInfo, BbmanwDIPInfo,
- bbmanwInit, DrvExit, DrvFrame, DrvDraw, NULL, &DrvRecalc, 0x200,
- 320, 240, 4, 3
-};
-
-
-// Bomber Man World (Japan)
-
-static struct BurnRomInfo bbmanwjRomDesc[] = {
- { "bbm2-h0.77", 0x40000, 0xe1407b91, 1 | BRF_PRG | BRF_ESS }, // 0 V30 Code
- { "bbm2-l0.79", 0x40000, 0x20873b49, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "bbm2-sp-a.33", 0x10000, 0xa4b0a66e, 2 | BRF_PRG | BRF_ESS }, // 2 Z80 Code
-
- { "bbm2-c0.81", 0x40000, 0xe7ce058a, 3 | BRF_GRA }, // 3 Tiles and sprites
- { "bbm2-c1.82", 0x40000, 0x636a78a9, 3 | BRF_GRA }, // 4
- { "bbm2-c2.83", 0x40000, 0x9ac2142f, 3 | BRF_GRA }, // 5
- { "bbm2-c3.84", 0x40000, 0x47af1750, 3 | BRF_GRA }, // 6
-
- { "bbm2-v0-b.30", 0x20000, 0x0ae655ff, 4 | BRF_SND }, // 7 Samples
-};
-
-STD_ROM_PICK(bbmanwj)
-STD_ROM_FN(bbmanwj)
-
-struct BurnDriver BurnDrvBbmanwj = {
- "bbmanwj", "bbmanw", NULL, NULL, "1992",
- "Bomber Man World (Japan)\0", NULL, "Irem", "M90",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_IREM_M90, GBF_MISC, 0,
- NULL, bbmanwjRomInfo, bbmanwjRomName, NULL, NULL, p4commonInputInfo, BbmanwjDIPInfo,
- bbmanwInit, DrvExit, DrvFrame, DrvDraw, NULL, &DrvRecalc, 0x200,
- 320, 240, 4, 3
-};
-
-
-// Bomber Man World (Japan, revised sound hardware)
-
-static struct BurnRomInfo bbmanwjaRomDesc[] = {
- { "bbm2-h0.77", 0x40000, 0xe1407b91, 1 | BRF_PRG | BRF_ESS }, // 0 V30 Code
- { "bbm2-l0.79", 0x40000, 0x20873b49, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "bbm2-sp-b.33", 0x10000, 0xb8d8108c, 2 | BRF_PRG | BRF_ESS }, // 2 Z80 Code
-
- { "bbm2-c0.81", 0x40000, 0xe7ce058a, 3 | BRF_GRA }, // 3 Tiles and sprites
- { "bbm2-c1.82", 0x40000, 0x636a78a9, 3 | BRF_GRA }, // 4
- { "bbm2-c2.83", 0x40000, 0x9ac2142f, 3 | BRF_GRA }, // 5
- { "bbm2-c3.84", 0x40000, 0x47af1750, 3 | BRF_GRA }, // 6
-
- { "bbm2-v0-b.30", 0x20000, 0x0ae655ff, 4 | BRF_SND }, // 7 Samples
-};
-
-STD_ROM_PICK(bbmanwja)
-STD_ROM_FN(bbmanwja)
-
-struct BurnDriver BurnDrvBbmanwja = {
- "bbmanwja", "bbmanw", NULL, NULL, "1992",
- "Bomber Man World (Japan, revised sound hardware)\0", NULL, "Irem", "M90",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_IREM_M90, GBF_MISC, 0,
- NULL, bbmanwjaRomInfo, bbmanwjaRomName, NULL, NULL, p4commonInputInfo, BbmanwjDIPInfo,
- bbmanwInit, DrvExit, DrvFrame, DrvDraw, NULL, &DrvRecalc, 0x200,
- 320, 240, 4, 3
-};
-
-
-// New Atomic Punk - Global Quest (US)
-
-static struct BurnRomInfo newapunkRomDesc[] = {
- { "bbm2-h0-a.77", 0x40000, 0x7d858682, 1 | BRF_PRG | BRF_ESS }, // 0 V30 Code
- { "bbm2-l0-a.79", 0x40000, 0xc7568031, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "bbm2-sp.33", 0x10000, 0x6bc1689e, 2 | BRF_PRG | BRF_ESS }, // 2 Z80 Code
-
- { "bbm2-c0.81", 0x40000, 0xe7ce058a, 3 | BRF_GRA }, // 3 Tiles and sprites
- { "bbm2-c1.82", 0x40000, 0x636a78a9, 3 | BRF_GRA }, // 4
- { "bbm2-c2.83", 0x40000, 0x9ac2142f, 3 | BRF_GRA }, // 5
- { "bbm2-c3.84", 0x40000, 0x47af1750, 3 | BRF_GRA }, // 6
-
- { "bbm2-v0.30", 0x20000, 0x4ad889ed, 4 | BRF_SND }, // 7 Samples
-};
-
-STD_ROM_PICK(newapunk)
-STD_ROM_FN(newapunk)
-
-struct BurnDriver BurnDrvNewapunk = {
- "newapunk", "bbmanw", NULL, NULL, "1992",
- "New Atomic Punk - Global Quest (US)\0", NULL, "Irem America", "M90",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_IREM_M90, GBF_MISC, 0,
- NULL, newapunkRomInfo, newapunkRomName, NULL, NULL, p4commonInputInfo, BbmanwjDIPInfo,
- bbmanwInit, DrvExit, DrvFrame, DrvDraw, NULL, &DrvRecalc, 0x200,
- 320, 240, 4, 3
-};
-
-
-// Quiz F1 1-2 Finish (Japan)
-
-static struct BurnRomInfo quizf1RomDesc[] = {
- { "qf1-h0-.77", 0x40000, 0x280e3049, 1 | BRF_PRG | BRF_ESS }, // 0 V30 Code
- { "qf1-l0-.79", 0x40000, 0x94588a6f, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "qf1-sp-.33", 0x10000, 0x0664fa9f, 2 | BRF_PRG | BRF_ESS }, // 2 Z80 Code
-
- { "qf1-c0-.81", 0x80000, 0xc26b521e, 3 | BRF_GRA }, // 3 Tiles and sprites
- { "qf1-c1-.82", 0x80000, 0xdb9d7394, 3 | BRF_GRA }, // 4
- { "qf1-c2-.83", 0x80000, 0x0b1460ae, 3 | BRF_GRA }, // 5
- { "qf1-c3-.84", 0x80000, 0x2d32ff37, 3 | BRF_GRA }, // 6
-
- { "qf1-v0-.30", 0x40000, 0xb8d16e7c, 4 | BRF_SND }, // 7 Samples
-
- { "qf1-h1-.78", 0x80000, 0xc6c2eb2b, 5 | BRF_PRG | BRF_ESS }, // 8 V30 banked code
- { "qf1-l1-.80", 0x80000, 0x3132c144, 5 | BRF_PRG | BRF_ESS }, // 9
-};
-
-STD_ROM_PICK(quizf1)
-STD_ROM_FN(quizf1)
-
-static INT32 quizf1Init()
-{
- video_offsets[0] = 48;
- video_offsets[1] = 128;
- return DrvInit(0x80000, 0x200000, 0x40000, 0x100000, 0, lethalth_decryption_table);
-}
-
-struct BurnDriver BurnDrvQuizf1 = {
- "quizf1", NULL, NULL, NULL, "1992",
- "Quiz F1 1-2 Finish (Japan)\0", NULL, "Irem", "M90",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_IREM_M90, GBF_MISC, 0,
- NULL, quizf1RomInfo, quizf1RomName, NULL, NULL, Quizf1InputInfo, Quizf1DIPInfo,
- quizf1Init, DrvExit, DrvFrame, DrvDraw, NULL, &DrvRecalc, 0x200,
- 384, 240, 4, 3
-};
-
-
-// Risky Challenge
-
-static struct BurnRomInfo riskchalRomDesc[] = {
- { "rc_h0.ic77", 0x40000, 0x4c9b5344, 1 | BRF_PRG | BRF_ESS }, // 0 V30 Code
- { "rc_l0.ic79", 0x40000, 0x0455895a, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "l4_a-sp.ic33", 0x10000, 0xbb80094e, 2 | BRF_PRG | BRF_ESS }, // 2 Z80 Code
-
- { "rc_c0.rom", 0x80000, 0x84d0b907, 3 | BRF_GRA }, // 3 Tiles and sprites
- { "rc_c1.rom", 0x80000, 0xcb3784ef, 3 | BRF_GRA }, // 4
- { "rc_c2.rom", 0x80000, 0x687164d7, 3 | BRF_GRA }, // 5
- { "rc_c3.rom", 0x80000, 0xc86be6af, 3 | BRF_GRA }, // 6
-
- { "rc_v0.rom", 0x40000, 0xcddac360, 4 | BRF_SND }, // 7 Samples
-};
-
-STD_ROM_PICK(riskchal)
-STD_ROM_FN(riskchal)
-
-static INT32 riskchalInit()
-{
- video_offsets[0] = 80;
- video_offsets[1] = 136;
- return DrvInit(0x80000, 0x200000, 0x40000, 0, 0, gussun_decryption_table);
-}
-
-struct BurnDriver BurnDrvRiskchal = {
- "riskchal", NULL, NULL, NULL, "1993",
- "Risky Challenge\0", "Unemulated CPU functions", "Irem", "M90",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_IREM_M90, GBF_MISC, 0,
- NULL, riskchalRomInfo, riskchalRomName, NULL, NULL, p2commonInputInfo, RiskchalDIPInfo,
- riskchalInit, DrvExit, DrvFrame, DrvDraw, NULL, &DrvRecalc, 0x200,
- 320, 240, 4, 3
-};
-
-
-// Gussun Oyoyo (Japan)
-
-static struct BurnRomInfo gussunRomDesc[] = {
- { "l4_a-h0.ic77", 0x40000, 0x9d585e61, 1 | BRF_PRG | BRF_ESS }, // 0 V30 Code
- { "l4_a-l0.ic79", 0x40000, 0xc7b4c519, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "l4_a-sp.ic33", 0x10000, 0xbb80094e, 2 | BRF_PRG | BRF_ESS }, // 2 Z80 Code
-
- { "rc_c0.rom", 0x80000, 0x84d0b907, 3 | BRF_GRA }, // 3 Tiles and sprites
- { "rc_c1.rom", 0x80000, 0xcb3784ef, 3 | BRF_GRA }, // 4
- { "rc_c2.rom", 0x80000, 0x687164d7, 3 | BRF_GRA }, // 5
- { "rc_c3.rom", 0x80000, 0xc86be6af, 3 | BRF_GRA }, // 6
-
- { "rc_v0.rom", 0x40000, 0xcddac360, 4 | BRF_SND }, // 7 Samples
-};
-
-STD_ROM_PICK(gussun)
-STD_ROM_FN(gussun)
-
-struct BurnDriver BurnDrvGussun = {
- "gussun", "riskchal", NULL, NULL, "1993",
- "Gussun Oyoyo (Japan)\0", "Unemulated CPU functions", "Irem", "M90",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_IREM_M90, GBF_MISC, 0,
- NULL, gussunRomInfo, gussunRomName, NULL, NULL, p2commonInputInfo, RiskchalDIPInfo,
- riskchalInit, DrvExit, DrvFrame, DrvDraw, NULL, &DrvRecalc, 0x200,
- 320, 240, 4, 3
-};
-
-
-// Match It II
-
-static struct BurnRomInfo matchit2RomDesc[] = {
- { "sis2-h0-b.bin", 0x40000, 0x9a2556ac, 1 | BRF_PRG | BRF_ESS }, // 0 V30 Code
- { "sis2-l0-b.bin", 0x40000, 0xd35d948a, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "sis2-sp-.rom", 0x10000, 0x6fc0ff3a, 2 | BRF_PRG | BRF_ESS }, // 2 Z80 Code
-
- { "ic81.rom", 0x80000, 0x5a7cb88f, 3 | BRF_GRA }, // 3 Tiles and sprites
- { "ic82.rom", 0x80000, 0x54a7852c, 3 | BRF_GRA }, // 4
- { "ic83.rom", 0x80000, 0x2bd65dc6, 3 | BRF_GRA }, // 5
- { "ic84.rom", 0x80000, 0x876d5fdb, 3 | BRF_GRA }, // 6
-};
-
-STD_ROM_PICK(matchit2)
-STD_ROM_FN(matchit2)
-
-static INT32 matchit2Init()
-{
- video_offsets[0] = 48;
- video_offsets[1] = 128;
- return DrvInit(0x80000, 0x200000, 0, 0, 0, matchit2_decryption_table);
-}
-
-struct BurnDriver BurnDrvMatchit2 = {
- "matchit2", NULL, NULL, NULL, "1993",
- "Match It II\0", NULL, "Tamtex", "M90",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_IREM_M90, GBF_MISC, 0,
- NULL, matchit2RomInfo, matchit2RomName, NULL, NULL, Matchit2InputInfo, Matchit2DIPInfo,
- matchit2Init, DrvExit, DrvFrame, DrvDraw, NULL, &DrvRecalc, 0x200,
- 384, 240, 4, 3
-};
-
-
-// Shisensho II
-
-static struct BurnRomInfo shisen2RomDesc[] = {
- { "sis2-h0-.rom", 0x40000, 0x6fae0aea, 1 | BRF_PRG | BRF_ESS }, // 0 V30 Code
- { "sis2-l0-.rom", 0x40000, 0x2af25182, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "sis2-sp-.rom", 0x10000, 0x6fc0ff3a, 2 | BRF_PRG | BRF_ESS }, // 2 Z80 Code
-
- { "ic81.rom", 0x80000, 0x5a7cb88f, 3 | BRF_GRA }, // 3 Tiles and sprites
- { "ic82.rom", 0x80000, 0x54a7852c, 3 | BRF_GRA }, // 4
- { "ic83.rom", 0x80000, 0x2bd65dc6, 3 | BRF_GRA }, // 5
- { "ic84.rom", 0x80000, 0x876d5fdb, 3 | BRF_GRA }, // 6
-};
-
-STD_ROM_PICK(shisen2)
-STD_ROM_FN(shisen2)
-
-struct BurnDriver BurnDrvShisen2 = {
- "shisen2", "matchit2", NULL, NULL, "1993",
- "Shisensho II\0", NULL, "Tamtex", "M90",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_IREM_M90, GBF_MISC, 0,
- NULL, shisen2RomInfo, shisen2RomName, NULL, NULL, Matchit2InputInfo, Shisen2DIPInfo,
- matchit2Init, DrvExit, DrvFrame, DrvDraw, NULL, &DrvRecalc, 0x200,
- 384, 240, 4, 3
-};
diff --git a/jan/src/burn/drv/irem/d_m92.cpp b/jan/src/burn/drv/irem/d_m92.cpp
deleted file mode 100644
index 63c428b5b..000000000
--- a/jan/src/burn/drv/irem/d_m92.cpp
+++ /dev/null
@@ -1,3942 +0,0 @@
-// FB Alpha Irem M92 system driver
-// Based on MAME driver by Bryan McPhail
-// Original port from MAME by OopsWare
-// Overhauled and tuned up by dink in August 2014, R-Type LEO title intro-effect fixed Dec.2016
-
-#include "tiles_generic.h"
-#include "burn_ym2151.h"
-#include "nec_intf.h"
-#include "msm6295.h" // ppan
-#include "irem_cpu.h"
-#include "iremga20.h"
-
-static UINT8 *Mem = NULL;
-static UINT8 *MemEnd = NULL;
-static UINT8 *RamStart;
-static UINT8 *RamEnd;
-static UINT8 *DrvV33ROM;
-static UINT8 *DrvV30ROM;
-static UINT8 *DrvGfxROM0;
-static UINT8 *DrvGfxROM1;
-static UINT8 *DrvSndROM;
-static UINT8 *DrvVidRAM;
-static UINT8 *DrvV33RAM;
-static UINT8 *DrvV30RAM;
-static UINT8 *DrvSprRAM;
-static UINT8 *DrvSprBuf;
-static UINT8 *DrvPalRAM;
-static UINT8 *DrvEEPROM;
-
-static UINT8 *pf_control[4];
-
-static UINT8 *sound_status;
-static UINT8 *sound_latch;
-
-static UINT8 *RamPrioBitmap;
-
-static UINT32 *DrvPalette;
-static UINT8 bRecalcPalette = 0;
-
-static UINT32 PalBank;
-
-static INT32 sprite_extent = 0;
-static UINT8 m92_sprite_buffer_busy;
-static INT32 m92_sprite_list;
-static INT32 m92_sprite_buffer_timer;
-static INT32 m92_raster_irq_position = 0;
-
-static UINT8 DrvButton[8];
-static UINT8 DrvJoy1[8];
-static UINT8 DrvJoy2[8];
-static UINT8 DrvJoy3[8];
-static UINT8 DrvJoy4[8];
-static UINT8 DrvInput[9];
-static UINT8 DrvReset = 0;
-
-static INT32 m92_irq_vectorbase;
-static INT32 graphics_mask[2] = { 0, 0 };
-
-static INT32 nInterleave = 256; // 256 scanlines
-static INT32 nCyclesDone[2] = { 0, 0 };
-static INT32 nCyclesTotal[2] = { 0, 0 };
-
-static INT32 m92_kludge = 0;
-static INT32 nPrevScreenPos = 0;
-static INT32 nScreenOffsets[2] = { 0, 0 }; // x,y (ppan)
-
-static INT32 msm6295_bank;
-
-typedef struct _m92_layer m92_layer;
-struct _m92_layer
-{
- INT32 enable;
- INT32 wide;
- INT32 enable_rowscroll;
-
- UINT16 scrollx;
- UINT16 scrolly;
-
- UINT16 *scroll;
- UINT16 *vram;
-};
-
-static struct _m92_layer *m92_layers[3];
-
-enum { VECTOR_INIT, YM2151_ASSERT, YM2151_CLEAR, V30_ASSERT, V30_CLEAR };
-
-static struct BurnInputInfo p2CommonInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvButton + 2, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvButton + 0, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy1 + 3, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy1 + 2, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy1 + 1, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy1 + 0, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy1 + 7, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy1 + 6, "p1 fire 2" },
-
- {"P2 Coin", BIT_DIGITAL, DrvButton + 3, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvButton + 1, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvJoy2 + 3, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy2 + 2, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy2 + 1, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy2 + 0, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy2 + 7, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy2 + 6, "p2 fire 2" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service", BIT_DIGITAL, DrvButton + 4, "service" },
- {"Dip A", BIT_DIPSWITCH, DrvInput + 5, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvInput + 6, "dip" },
- {"Dip C", BIT_DIPSWITCH, DrvInput + 7, "dip" },
-};
-
-STDINPUTINFO(p2Common)
-
-static struct BurnInputInfo p3CommonInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvButton + 2, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvButton + 0, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy1 + 3, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy1 + 2, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy1 + 1, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy1 + 0, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy1 + 7, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy1 + 6, "p1 fire 2" },
-
- {"P2 Coin", BIT_DIGITAL, DrvButton + 3, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvButton + 1, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvJoy2 + 3, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy2 + 2, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy2 + 1, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy2 + 0, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy2 + 7, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy2 + 6, "p2 fire 2" },
-
- {"P3 Coin", BIT_DIGITAL, DrvJoy3 + 5, "p3 coin" },
- {"P3 Start", BIT_DIGITAL, DrvJoy3 + 4, "p3 start" },
- {"P3 Up", BIT_DIGITAL, DrvJoy3 + 3, "p3 up" },
- {"P3 Down", BIT_DIGITAL, DrvJoy3 + 2, "p3 down" },
- {"P3 Left", BIT_DIGITAL, DrvJoy3 + 1, "p3 left" },
- {"P3 Right", BIT_DIGITAL, DrvJoy3 + 0, "p3 right" },
- {"P3 Button 1", BIT_DIGITAL, DrvJoy3 + 7, "p3 fire 1" },
- {"P3 Button 2", BIT_DIGITAL, DrvJoy3 + 6, "p3 fire 2" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service", BIT_DIGITAL, DrvButton + 4, "service" },
- {"Dip A", BIT_DIPSWITCH, DrvInput + 5, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvInput + 6, "dip" },
- {"Dip C", BIT_DIPSWITCH, DrvInput + 7, "dip" },
-};
-
-STDINPUTINFO(p3Common)
-
-static struct BurnInputInfo p4CommonInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvButton + 2, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvButton + 0, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy1 + 3, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy1 + 2, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy1 + 1, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy1 + 0, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy1 + 7, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy1 + 6, "p1 fire 2" },
-
- {"P2 Coin", BIT_DIGITAL, DrvButton + 3, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvButton + 1, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvJoy2 + 3, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy2 + 2, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy2 + 1, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy2 + 0, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy2 + 7, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy2 + 6, "p2 fire 2" },
-
- {"P3 Coin", BIT_DIGITAL, DrvJoy3 + 5, "p3 coin" },
- {"P3 Start", BIT_DIGITAL, DrvJoy3 + 4, "p3 start" },
- {"P3 Up", BIT_DIGITAL, DrvJoy3 + 3, "p3 up" },
- {"P3 Down", BIT_DIGITAL, DrvJoy3 + 2, "p3 down" },
- {"P3 Left", BIT_DIGITAL, DrvJoy3 + 1, "p3 left" },
- {"P3 Right", BIT_DIGITAL, DrvJoy3 + 0, "p3 right" },
- {"P3 Button 1", BIT_DIGITAL, DrvJoy3 + 7, "p3 fire 1" },
- {"P3 Button 2", BIT_DIGITAL, DrvJoy3 + 6, "p3 fire 2" },
-
- {"P4 Coin", BIT_DIGITAL, DrvJoy4 + 5, "p4 coin" },
- {"P4 Start", BIT_DIGITAL, DrvJoy4 + 4, "p4 start" },
- {"P4 Up", BIT_DIGITAL, DrvJoy4 + 3, "p4 up" },
- {"P4 Down", BIT_DIGITAL, DrvJoy4 + 2, "p4 down" },
- {"P4 Left", BIT_DIGITAL, DrvJoy4 + 1, "p4 left" },
- {"P4 Right", BIT_DIGITAL, DrvJoy4 + 0, "p4 right" },
- {"P4 Button 1", BIT_DIGITAL, DrvJoy4 + 7, "p4 fire 1" },
- {"P4 Button 2", BIT_DIGITAL, DrvJoy4 + 6, "p4 fire 2" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service", BIT_DIGITAL, DrvButton + 4, "service" },
- {"Dip A", BIT_DIPSWITCH, DrvInput + 5, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvInput + 6, "dip" },
- {"Dip C", BIT_DIPSWITCH, DrvInput + 7, "dip" },
-};
-
-STDINPUTINFO(p4Common)
-
-static struct BurnInputInfo nbbatmanInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvButton + 2, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvButton + 0, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy1 + 3, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy1 + 2, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy1 + 1, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy1 + 0, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy1 + 7, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy1 + 6, "p1 fire 2" },
-
- {"P2 Coin", BIT_DIGITAL, DrvButton + 3, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvButton + 1, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvJoy2 + 3, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy2 + 2, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy2 + 1, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy2 + 0, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy2 + 7, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy2 + 6, "p2 fire 2" },
-
- {"P3 Coin", BIT_DIGITAL, DrvJoy3 + 5, "p3 coin" },
- {"P3 Start", BIT_DIGITAL, DrvJoy3 + 4, "p3 start" },
- {"P3 Up", BIT_DIGITAL, DrvJoy3 + 3, "p3 up" },
- {"P3 Down", BIT_DIGITAL, DrvJoy3 + 2, "p3 down" },
- {"P3 Left", BIT_DIGITAL, DrvJoy3 + 1, "p3 left" },
- {"P3 Right", BIT_DIGITAL, DrvJoy3 + 0, "p3 right" },
- {"P3 Button 1", BIT_DIGITAL, DrvJoy3 + 7, "p3 fire 1" },
- {"P3 Button 2", BIT_DIGITAL, DrvJoy3 + 6, "p3 fire 2" },
-
- {"P4 Coin", BIT_DIGITAL, DrvJoy4 + 5, "p4 coin" },
- {"P4 Start", BIT_DIGITAL, DrvJoy4 + 4, "p4 start" },
- {"P4 Up", BIT_DIGITAL, DrvJoy4 + 3, "p4 up" },
- {"P4 Down", BIT_DIGITAL, DrvJoy4 + 2, "p4 down" },
- {"P4 Left", BIT_DIGITAL, DrvJoy4 + 1, "p4 left" },
- {"P4 Right", BIT_DIGITAL, DrvJoy4 + 0, "p4 right" },
- {"P4 Button 1", BIT_DIGITAL, DrvJoy4 + 7, "p4 fire 1" },
- {"P4 Button 2", BIT_DIGITAL, DrvJoy4 + 6, "p4 fire 2" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service", BIT_DIGITAL, DrvButton + 4, "service" },
- {"Dip A", BIT_DIPSWITCH, DrvInput + 5, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvInput + 6, "dip" },
- {"Dip C", BIT_DIPSWITCH, DrvInput + 7, "dip" },
- {"Dip D", BIT_DIPSWITCH, DrvInput + 8, "dip" },
-};
-
-STDINPUTINFO(nbbatman)
-
-static struct BurnInputInfo PsoldierInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvButton + 2, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvButton + 0, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy1 + 3, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy1 + 2, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy1 + 1, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy1 + 0, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy1 + 7, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy1 + 6, "p1 fire 2" },
- {"P1 Button 3", BIT_DIGITAL, DrvJoy1 + 5, "p1 fire 3" },
- {"P1 Button 4", BIT_DIGITAL, DrvJoy4 + 1, "p1 fire 4" },
- {"P1 Button 5", BIT_DIGITAL, DrvJoy4 + 2, "p1 fire 5" },
- {"P1 Button 6", BIT_DIGITAL, DrvJoy4 + 3, "p1 fire 6" },
-
- {"P2 Coin", BIT_DIGITAL, DrvButton + 3, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvButton + 1, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvJoy2 + 3, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy2 + 2, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy2 + 1, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy2 + 0, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy2 + 7, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy2 + 6, "p2 fire 2" },
- {"P2 Button 3", BIT_DIGITAL, DrvJoy2 + 5, "p2 fire 3" },
- {"P2 Button 4", BIT_DIGITAL, DrvJoy4 + 5, "p2 fire 4" },
- {"P2 Button 5", BIT_DIGITAL, DrvJoy4 + 6, "p2 fire 5" },
- {"P2 Button 6", BIT_DIGITAL, DrvJoy4 + 7, "p2 fire 6" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service", BIT_DIGITAL, DrvButton + 4, "service" },
- {"Dip A", BIT_DIPSWITCH, DrvInput + 5, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvInput + 6, "dip" },
- {"Dip C", BIT_DIPSWITCH, DrvInput + 7, "dip" },
-};
-
-STDINPUTINFO(Psoldier)
-
-static struct BurnDIPInfo BmasterDIPList[]=
-{
- {0x12, 0xff, 0xff, 0xbf, NULL },
- {0x13, 0xff, 0xff, 0xff, NULL },
- {0x14, 0xff, 0xff, 0xff, NULL },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x12, 0x01, 0x03, 0x00, "1" },
- {0x12, 0x01, 0x03, 0x03, "2" },
- {0x12, 0x01, 0x03, 0x02, "3" },
- {0x12, 0x01, 0x03, 0x01, "4" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x12, 0x01, 0x0c, 0x00, "Very Easy" },
- {0x12, 0x01, 0x0c, 0x08, "Easy" },
- {0x12, 0x01, 0x0c, 0x0c, "Normal" },
- {0x12, 0x01, 0x0c, 0x04, "Hard" },
-
- {0 , 0xfe, 0 , 2, "Bonus Life" },
- {0x12, 0x01, 0x10, 0x10, "300k only" },
- {0x12, 0x01, 0x10, 0x00, "None" },
-
- {0 , 0xfe, 0 , 2, "Allow Continue" },
- {0x12, 0x01, 0x20, 0x00, "No" },
- {0x12, 0x01, 0x20, 0x20, "Yes" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x12, 0x01, 0x40, 0x40, "Off" },
- {0x12, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x12, 0x01, 0x80, 0x80, "Off" },
- {0x12, 0x01, 0x80, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x13, 0x01, 0x01, 0x01, "Off" },
- {0x13, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Coin Slots" },
- {0x13, 0x01, 0x04, 0x04, "Common" },
- {0x13, 0x01, 0x04, 0x00, "Separate" },
-
- {0 , 0xfe, 0 , 2, "Coin Mode" },
- {0x13, 0x01, 0x08, 0x08, "1" },
- {0x13, 0x01, 0x08, 0x00, "2" },
-
-#if 1
- {0 , 0xfe, 0 , 16, "Coinage" },
- {0x13, 0x01, 0xf0, 0xa0, "6 Coins 1 Credits" },
- {0x13, 0x01, 0xf0, 0xb0, "5 Coins 1 Credits" },
- {0x13, 0x01, 0xf0, 0xc0, "4 Coins 1 Credits" },
- {0x13, 0x01, 0xf0, 0xd0, "3 Coins 1 Credits" },
- {0x13, 0x01, 0xf0, 0xe0, "2 Coins 1 Credits" },
- {0x13, 0x01, 0xf0, 0x10, "2 Coins to Start/1 to Continue" },
- {0x13, 0x01, 0xf0, 0x30, "3 Coins 2 Credits" },
- {0x13, 0x01, 0xf0, 0x20, "4 Coins 3 Credits" },
- {0x13, 0x01, 0xf0, 0xf0, "1 Coin 1 Credits" },
- {0x13, 0x01, 0xf0, 0x40, "2 Coins 3 Credits" },
- {0x13, 0x01, 0xf0, 0x90, "1 Coin 2 Credits" },
- {0x13, 0x01, 0xf0, 0x80, "1 Coin 3 Credits" },
- {0x13, 0x01, 0xf0, 0x70, "1 Coin 4 Credits" },
- {0x13, 0x01, 0xf0, 0x60, "1 Coin 5 Credits" },
- {0x13, 0x01, 0xf0, 0x50, "1 Coin 6 Credits" },
- {0x13, 0x01, 0xf0, 0x00, "Free Play" },
-#else
- {0 , 0xfe, 0 , 4, "Coin A" },
- {0x13, 0x01, 0x30, 0x00, "5 Coins 1 Credits" },
- {0x13, 0x01, 0x30, 0x10, "3 Coins 1 Credits" },
- {0x13, 0x01, 0x30, 0x20, "2 Coins 1 Credits" },
- {0x13, 0x01, 0x30, 0x30, "1 Coin 1 Credits" },
-
- {0 , 0xfe, 0 , 4, "Coin B" },
- {0x13, 0x01, 0xc0, 0xc0, "1 Coin 2 Credits" },
- {0x13, 0x01, 0xc0, 0x80, "1 Coin 3 Credits" },
- {0x13, 0x01, 0xc0, 0x40, "1 Coin 5 Credits" },
- {0x13, 0x01, 0xc0, 0x00, "1 Coin 6 Credits" },
-#endif
-};
-
-STDDIPINFO(Bmaster)
-
-static struct BurnDIPInfo GunforceDIPList[]=
-{
- {0x12, 0xff, 0xff, 0xbf, NULL },
- {0x13, 0xff, 0xff, 0xfd, NULL },
- {0x14, 0xff, 0xff, 0xf0, NULL },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x12, 0x01, 0x03, 0x02, "2" },
- {0x12, 0x01, 0x03, 0x03, "3" },
- {0x12, 0x01, 0x03, 0x01, "4" },
- {0x12, 0x01, 0x03, 0x00, "5" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x12, 0x01, 0x0c, 0x00, "Very Easy" },
- {0x12, 0x01, 0x0c, 0x08, "Easy" },
- {0x12, 0x01, 0x0c, 0x0c, "Normal" },
- {0x12, 0x01, 0x0c, 0x04, "Hard" },
-
- {0 , 0xfe, 0 , 2, "Bonus Life" },
- {0x12, 0x01, 0x10, 0x00, "15000 35000 75000 120000" },
- {0x12, 0x01, 0x10, 0x10, "20000 40000 90000 150000" },
-
- {0 , 0xfe, 0 , 2, "Allow Continue" },
- {0x12, 0x01, 0x20, 0x00, "No" },
- {0x12, 0x01, 0x20, 0x20, "Yes" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x12, 0x01, 0x40, 0x40, "Off" },
- {0x12, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x12, 0x01, 0x80, 0x80, "Off" },
- {0x12, 0x01, 0x80, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x13, 0x01, 0x01, 0x01, "Off" },
- {0x13, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Coin Slots" },
- {0x13, 0x01, 0x04, 0x04, "Common" },
- {0x13, 0x01, 0x04, 0x00, "Separate" },
-
- {0 , 0xfe, 0 , 2, "Coin Mode" },
- {0x13, 0x01, 0x08, 0x08, "1" },
- {0x13, 0x01, 0x08, 0x00, "2" },
-
-#if 1
- {0 , 0xfe, 0 , 16, "Coinage" },
- {0x13, 0x01, 0xf0, 0xa0, "6 Coins 1 Credits" },
- {0x13, 0x01, 0xf0, 0xb0, "5 Coins 1 Credits" },
- {0x13, 0x01, 0xf0, 0xc0, "4 Coins 1 Credits" },
- {0x13, 0x01, 0xf0, 0xd0, "3 Coins 1 Credits" },
- {0x13, 0x01, 0xf0, 0xe0, "2 Coins 1 Credits" },
- {0x13, 0x01, 0xf0, 0x10, "2 Coins to Start/1 to Continue" },
- {0x13, 0x01, 0xf0, 0x30, "3 Coins 2 Credits" },
- {0x13, 0x01, 0xf0, 0x20, "4 Coins 3 Credits" },
- {0x13, 0x01, 0xf0, 0xf0, "1 Coin 1 Credits" },
- {0x13, 0x01, 0xf0, 0x40, "2 Coins 3 Credits" },
- {0x13, 0x01, 0xf0, 0x90, "1 Coin 2 Credits" },
- {0x13, 0x01, 0xf0, 0x80, "1 Coin 3 Credits" },
- {0x13, 0x01, 0xf0, 0x70, "1 Coin 4 Credits" },
- {0x13, 0x01, 0xf0, 0x60, "1 Coin 5 Credits" },
- {0x13, 0x01, 0xf0, 0x50, "1 Coin 6 Credits" },
- {0x13, 0x01, 0xf0, 0x00, "Free Play" },
-#else
- {0 , 0xfe, 0 , 4, "Coin A" },
- {0x13, 0x01, 0x30, 0x00, "5 Coins 1 Credits" },
- {0x13, 0x01, 0x30, 0x10, "3 Coins 1 Credits" },
- {0x13, 0x01, 0x30, 0x20, "2 Coins 1 Credits" },
- {0x13, 0x01, 0x30, 0x30, "1 Coin 1 Credits" },
-
- {0 , 0xfe, 0 , 4, "Coin B" },
- {0x13, 0x01, 0xc0, 0xc0, "1 Coin 2 Credits" },
- {0x13, 0x01, 0xc0, 0x80, "1 Coin 3 Credits" },
- {0x13, 0x01, 0xc0, 0x40, "1 Coin 5 Credits" },
- {0x13, 0x01, 0xc0, 0x00, "1 Coin 6 Credits" },
-#endif
-};
-
-STDDIPINFO(Gunforce)
-
-
-static struct BurnDIPInfo MysticriDIPList[]=
-{
- {0x12, 0xff, 0xff, 0xbf, NULL },
- {0x13, 0xff, 0xff, 0xfd, NULL },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x12, 0x01, 0x03, 0x02, "2" },
- {0x12, 0x01, 0x03, 0x03, "3" },
- {0x12, 0x01, 0x03, 0x01, "4" },
- {0x12, 0x01, 0x03, 0x00, "5" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x12, 0x01, 0x0c, 0x08, "Easy" },
- {0x12, 0x01, 0x0c, 0x0c, "Normal" },
- {0x12, 0x01, 0x0c, 0x04, "Hard" },
- {0x12, 0x01, 0x0c, 0x00, "Hardest" },
-
- {0 , 0xfe, 0 , 2, "Bonus Life" },
- {0x12, 0x01, 0x10, 0x00, "15000 35000 60000" },
- {0x12, 0x01, 0x10, 0x10, "20000 50000 90000" },
-
- {0 , 0xfe, 0 , 2, "Allow Continue" },
- {0x12, 0x01, 0x20, 0x00, "No" },
- {0x12, 0x01, 0x20, 0x20, "Yes" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x12, 0x01, 0x40, 0x40, "Off" },
- {0x12, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x12, 0x01, 0x80, 0x80, "Off" },
- {0x12, 0x01, 0x80, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x13, 0x01, 0x01, 0x01, "Off" },
- {0x13, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Coin Slots" },
- {0x13, 0x01, 0x04, 0x04, "Common" },
- {0x13, 0x01, 0x04, 0x00, "Separate" },
-
- {0 , 0xfe, 0 , 2, "Coin Mode" },
- {0x13, 0x01, 0x08, 0x08, "1" },
- {0x13, 0x01, 0x08, 0x00, "2" },
-
-#if 1
- {0 , 0xfe, 0 , 16, "Coinage" },
- {0x13, 0x01, 0xf0, 0xa0, "6 Coins 1 Credits" },
- {0x13, 0x01, 0xf0, 0xb0, "5 Coins 1 Credits" },
- {0x13, 0x01, 0xf0, 0xc0, "4 Coins 1 Credits" },
- {0x13, 0x01, 0xf0, 0xd0, "3 Coins 1 Credits" },
- {0x13, 0x01, 0xf0, 0xe0, "2 Coins 1 Credits" },
- {0x13, 0x01, 0xf0, 0x10, "2 Coins to Start/1 to Continue" },
- {0x13, 0x01, 0xf0, 0x30, "3 Coins 2 Credits" },
- {0x13, 0x01, 0xf0, 0x20, "4 Coins 3 Credits" },
- {0x13, 0x01, 0xf0, 0xf0, "1 Coin 1 Credits" },
- {0x13, 0x01, 0xf0, 0x40, "2 Coins 3 Credits" },
- {0x13, 0x01, 0xf0, 0x90, "1 Coin 2 Credits" },
- {0x13, 0x01, 0xf0, 0x80, "1 Coin 3 Credits" },
- {0x13, 0x01, 0xf0, 0x70, "1 Coin 4 Credits" },
- {0x13, 0x01, 0xf0, 0x60, "1 Coin 5 Credits" },
- {0x13, 0x01, 0xf0, 0x50, "1 Coin 6 Credits" },
- {0x13, 0x01, 0xf0, 0x00, "Free Play" },
-#else
- {0 , 0xfe, 0 , 4, "Coin A" },
- {0x13, 0x01, 0x30, 0x00, "5 Coins 1 Credits" },
- {0x13, 0x01, 0x30, 0x10, "3 Coins 1 Credits" },
- {0x13, 0x01, 0x30, 0x20, "2 Coins 1 Credits" },
- {0x13, 0x01, 0x30, 0x30, "1 Coin 1 Credits" },
-
- {0 , 0xfe, 0 , 4, "Coin B" },
- {0x13, 0x01, 0xc0, 0xc0, "1 Coin 2 Credits" },
- {0x13, 0x01, 0xc0, 0x80, "1 Coin 3 Credits" },
- {0x13, 0x01, 0xc0, 0x40, "1 Coin 5 Credits" },
- {0x13, 0x01, 0xc0, 0x00, "1 Coin 6 Credits" },
-#endif
-};
-
-STDDIPINFO(Mysticri)
-
-static struct BurnDIPInfo Gunforc2DIPList[]=
-{
- {0x12, 0xff, 0xff, 0xbf, NULL },
- {0x13, 0xff, 0xff, 0xfd, NULL },
- {0x14, 0xff, 0xff, 0xff, NULL },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x12, 0x01, 0x03, 0x02, "3" },
- {0x12, 0x01, 0x03, 0x03, "2" },
- {0x12, 0x01, 0x03, 0x01, "4" },
- {0x12, 0x01, 0x03, 0x00, "1" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x12, 0x01, 0x0c, 0x00, "Very Easy" },
- {0x12, 0x01, 0x0c, 0x08, "Easy" },
- {0x12, 0x01, 0x0c, 0x0c, "Normal" },
- {0x12, 0x01, 0x0c, 0x04, "Hard" },
-
- {0 , 0xfe, 0 , 2, "Allow Continue" },
- {0x12, 0x01, 0x20, 0x00, "No" },
- {0x12, 0x01, 0x20, 0x20, "Yes" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x12, 0x01, 0x40, 0x40, "Off" },
- {0x12, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x12, 0x01, 0x80, 0x80, "Off" },
- {0x12, 0x01, 0x80, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x13, 0x01, 0x01, 0x01, "Off" },
- {0x13, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Coin Slots" },
- {0x13, 0x01, 0x04, 0x04, "Common" },
- {0x13, 0x01, 0x04, 0x00, "Separate" },
-
- {0 , 0xfe, 0 , 2, "Coin Mode" },
- {0x13, 0x01, 0x08, 0x08, "1" },
- {0x13, 0x01, 0x08, 0x00, "2" },
-
-#if 1
- {0 , 0xfe, 0 , 16, "Coinage" },
- {0x13, 0x01, 0xf0, 0xa0, "6 Coins 1 Credits" },
- {0x13, 0x01, 0xf0, 0xb0, "5 Coins 1 Credits" },
- {0x13, 0x01, 0xf0, 0xc0, "4 Coins 1 Credits" },
- {0x13, 0x01, 0xf0, 0xd0, "3 Coins 1 Credits" },
- {0x13, 0x01, 0xf0, 0xe0, "2 Coins 1 Credits" },
- {0x13, 0x01, 0xf0, 0x10, "2 Coins to Start/1 to Continue" },
- {0x13, 0x01, 0xf0, 0x30, "3 Coins 2 Credits" },
- {0x13, 0x01, 0xf0, 0x20, "4 Coins 3 Credits" },
- {0x13, 0x01, 0xf0, 0xf0, "1 Coin 1 Credits" },
- {0x13, 0x01, 0xf0, 0x40, "2 Coins 3 Credits" },
- {0x13, 0x01, 0xf0, 0x90, "1 Coin 2 Credits" },
- {0x13, 0x01, 0xf0, 0x80, "1 Coin 3 Credits" },
- {0x13, 0x01, 0xf0, 0x70, "1 Coin 4 Credits" },
- {0x13, 0x01, 0xf0, 0x60, "1 Coin 5 Credits" },
- {0x13, 0x01, 0xf0, 0x50, "1 Coin 6 Credits" },
- {0x13, 0x01, 0xf0, 0x00, "Free Play" },
-#else
- {0 , 0xfe, 0 , 4, "Coin A" },
- {0x13, 0x01, 0x30, 0x00, "5 Coins 1 Credits" },
- {0x13, 0x01, 0x30, 0x10, "3 Coins 1 Credits" },
- {0x13, 0x01, 0x30, 0x20, "2 Coins 1 Credits" },
- {0x13, 0x01, 0x30, 0x30, "1 Coin 1 Credits" },
-
- {0 , 0xfe, 0 , 4, "Coin B" },
- {0x13, 0x01, 0xc0, 0xc0, "1 Coin 2 Credits" },
- {0x13, 0x01, 0xc0, 0x80, "1 Coin 3 Credits" },
- {0x13, 0x01, 0xc0, 0x40, "1 Coin 5 Credits" },
- {0x13, 0x01, 0xc0, 0x00, "1 Coin 6 Credits" },
-#endif
-};
-
-STDDIPINFO(Gunforc2)
-
-static struct BurnDIPInfo RtypeleoDIPList[]=
-{
- {0x12, 0xff, 0xff, 0xaf, NULL },
- {0x13, 0xff, 0xff, 0xfd, NULL },
- {0x14, 0xff, 0xff, 0xf0, NULL },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x12, 0x01, 0x03, 0x02, "2" },
- {0x12, 0x01, 0x03, 0x03, "3" },
- {0x12, 0x01, 0x03, 0x01, "4" },
- {0x12, 0x01, 0x03, 0x00, "5" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x12, 0x01, 0x0c, 0x00, "Very Easy" },
- {0x12, 0x01, 0x0c, 0x08, "Easy" },
- {0x12, 0x01, 0x0c, 0x0c, "Normal" },
- {0x12, 0x01, 0x0c, 0x04, "Hard" },
-
- {0 , 0xfe, 0 , 2, "Allow Continue" },
- {0x12, 0x01, 0x20, 0x00, "No" },
- {0x12, 0x01, 0x20, 0x20, "Yes" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x12, 0x01, 0x40, 0x40, "Off" },
- {0x12, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x12, 0x01, 0x80, 0x80, "Off" },
- {0x12, 0x01, 0x80, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x13, 0x01, 0x01, 0x01, "Off" },
- {0x13, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Coin Slots" },
- {0x13, 0x01, 0x04, 0x04, "Common" },
- {0x13, 0x01, 0x04, 0x00, "Separate" },
-
- {0 , 0xfe, 0 , 2, "Coin Mode" },
- {0x13, 0x01, 0x08, 0x08, "1" },
- {0x13, 0x01, 0x08, 0x00, "2" },
-
-#if 1
- {0 , 0xfe, 0 , 16, "Coinage" },
- {0x13, 0x01, 0xf0, 0xa0, "6 Coins 1 Credits" },
- {0x13, 0x01, 0xf0, 0xb0, "5 Coins 1 Credits" },
- {0x13, 0x01, 0xf0, 0xc0, "4 Coins 1 Credits" },
- {0x13, 0x01, 0xf0, 0xd0, "3 Coins 1 Credits" },
- {0x13, 0x01, 0xf0, 0xe0, "2 Coins 1 Credits" },
- {0x13, 0x01, 0xf0, 0x10, "2 Coins to Start/1 to Continue" },
- {0x13, 0x01, 0xf0, 0x30, "3 Coins 2 Credits" },
- {0x13, 0x01, 0xf0, 0x20, "4 Coins 3 Credits" },
- {0x13, 0x01, 0xf0, 0xf0, "1 Coin 1 Credits" },
- {0x13, 0x01, 0xf0, 0x40, "2 Coins 3 Credits" },
- {0x13, 0x01, 0xf0, 0x90, "1 Coin 2 Credits" },
- {0x13, 0x01, 0xf0, 0x80, "1 Coin 3 Credits" },
- {0x13, 0x01, 0xf0, 0x70, "1 Coin 4 Credits" },
- {0x13, 0x01, 0xf0, 0x60, "1 Coin 5 Credits" },
- {0x13, 0x01, 0xf0, 0x50, "1 Coin 6 Credits" },
- {0x13, 0x01, 0xf0, 0x00, "Free Play" },
-#else
- {0 , 0xfe, 0 , 4, "Coin A" },
- {0x13, 0x01, 0x30, 0x00, "5 Coins 1 Credits" },
- {0x13, 0x01, 0x30, 0x10, "3 Coins 1 Credits" },
- {0x13, 0x01, 0x30, 0x20, "2 Coins 1 Credits" },
- {0x13, 0x01, 0x30, 0x30, "1 Coin 1 Credits" },
-
- {0 , 0xfe, 0 , 4, "Coin B" },
- {0x13, 0x01, 0xc0, 0xc0, "1 Coin 2 Credits" },
- {0x13, 0x01, 0xc0, 0x80, "1 Coin 3 Credits" },
- {0x13, 0x01, 0xc0, 0x40, "1 Coin 5 Credits" },
- {0x13, 0x01, 0xc0, 0x00, "1 Coin 6 Credits" },
-#endif
-};
-
-STDDIPINFO(Rtypeleo)
-
-static struct BurnDIPInfo InthuntDIPList[]=
-{
- {0x12, 0xff, 0xff, 0xaf, NULL },
- {0x13, 0xff, 0xff, 0xfd, NULL },
- {0x14, 0xff, 0xff, 0xf0, NULL },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x12, 0x01, 0x03, 0x02, "2" },
- {0x12, 0x01, 0x03, 0x03, "3" },
- {0x12, 0x01, 0x03, 0x01, "4" },
- {0x12, 0x01, 0x03, 0x00, "5" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x12, 0x01, 0x0c, 0x00, "Very Easy" },
- {0x12, 0x01, 0x0c, 0x08, "Easy" },
- {0x12, 0x01, 0x0c, 0x0c, "Normal" },
- {0x12, 0x01, 0x0c, 0x04, "Hard" },
-
- {0 , 0xfe, 0 , 2, "Any Button to Start" },
- {0x12, 0x01, 0x20, 0x20, "No" },
- {0x12, 0x01, 0x20, 0x00, "Yes" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x12, 0x01, 0x40, 0x40, "Off" },
- {0x12, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x12, 0x01, 0x80, 0x80, "Off" },
- {0x12, 0x01, 0x80, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x13, 0x01, 0x01, 0x01, "Off" },
- {0x13, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Coin Slots" },
- {0x13, 0x01, 0x04, 0x04, "Common" },
- {0x13, 0x01, 0x04, 0x00, "Separate" },
-
- {0 , 0xfe, 0 , 2, "Coin Mode" },
- {0x13, 0x01, 0x08, 0x08, "1" },
- {0x13, 0x01, 0x08, 0x00, "2" },
-
-#if 1
- {0 , 0xfe, 0 , 16, "Coinage" },
- {0x13, 0x01, 0xf0, 0xa0, "6 Coins 1 Credits" },
- {0x13, 0x01, 0xf0, 0xb0, "5 Coins 1 Credits" },
- {0x13, 0x01, 0xf0, 0xc0, "4 Coins 1 Credits" },
- {0x13, 0x01, 0xf0, 0xd0, "3 Coins 1 Credits" },
- {0x13, 0x01, 0xf0, 0xe0, "2 Coins 1 Credits" },
- {0x13, 0x01, 0xf0, 0x10, "2 Coins to Start/1 to Continue" },
- {0x13, 0x01, 0xf0, 0x30, "3 Coins 2 Credits" },
- {0x13, 0x01, 0xf0, 0x20, "4 Coins 3 Credits" },
- {0x13, 0x01, 0xf0, 0xf0, "1 Coin 1 Credits" },
- {0x13, 0x01, 0xf0, 0x40, "2 Coins 3 Credits" },
- {0x13, 0x01, 0xf0, 0x90, "1 Coin 2 Credits" },
- {0x13, 0x01, 0xf0, 0x80, "1 Coin 3 Credits" },
- {0x13, 0x01, 0xf0, 0x70, "1 Coin 4 Credits" },
- {0x13, 0x01, 0xf0, 0x60, "1 Coin 5 Credits" },
- {0x13, 0x01, 0xf0, 0x50, "1 Coin 6 Credits" },
- {0x13, 0x01, 0xf0, 0x00, "Free Play" },
-#else
- {0 , 0xfe, 0 , 4, "Coin A" },
- {0x13, 0x01, 0x30, 0x00, "5 Coins 1 Credits" },
- {0x13, 0x01, 0x30, 0x10, "3 Coins 1 Credits" },
- {0x13, 0x01, 0x30, 0x20, "2 Coins 1 Credits" },
- {0x13, 0x01, 0x30, 0x30, "1 Coin 1 Credits" },
-
- {0 , 0xfe, 0 , 4, "Coin B" },
- {0x13, 0x01, 0xc0, 0xc0, "1 Coin 2 Credits" },
- {0x13, 0x01, 0xc0, 0x80, "1 Coin 3 Credits" },
- {0x13, 0x01, 0xc0, 0x40, "1 Coin 5 Credits" },
- {0x13, 0x01, 0xc0, 0x00, "1 Coin 6 Credits" },
-#endif
-};
-
-STDDIPINFO(Inthunt)
-
-static struct BurnDIPInfo LethalthDIPList[]=
-{
- {0x12, 0xff, 0xff, 0xbf, NULL },
- {0x13, 0xff, 0xff, 0xfd, NULL },
- {0x14, 0xff, 0xff, 0xff, NULL },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x12, 0x01, 0x03, 0x02, "2" },
- {0x12, 0x01, 0x03, 0x03, "3" },
- {0x12, 0x01, 0x03, 0x01, "4" },
- {0x12, 0x01, 0x03, 0x00, "5" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x12, 0x01, 0x0c, 0x00, "Very Easy" },
- {0x12, 0x01, 0x0c, 0x08, "Easy" },
- {0x12, 0x01, 0x0c, 0x0c, "Normal" },
- {0x12, 0x01, 0x0c, 0x04, "Hard" },
-
- {0 , 0xfe, 0 , 2, "Continuous Play" },
- {0x12, 0x01, 0x10, 0x00, "Off" },
- {0x12, 0x01, 0x10, 0x10, "On" },
-
- {0 , 0xfe, 0 , 2, "Allow Continue" },
- {0x12, 0x01, 0x20, 0x00, "No" },
- {0x12, 0x01, 0x20, 0x20, "Yes" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x12, 0x01, 0x40, 0x40, "Off" },
- {0x12, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x12, 0x01, 0x80, 0x80, "Off" },
- {0x12, 0x01, 0x80, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x13, 0x01, 0x01, 0x01, "Off" },
- {0x13, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Coin Slots" },
- {0x13, 0x01, 0x04, 0x04, "Common" },
- {0x13, 0x01, 0x04, 0x00, "Separate" },
-
- {0 , 0xfe, 0 , 2, "Coin Mode" },
- {0x13, 0x01, 0x08, 0x08, "1" },
- {0x13, 0x01, 0x08, 0x00, "2" },
-
-#if 1
- {0 , 0xfe, 0 , 16, "Coinage" },
- {0x13, 0x01, 0xf0, 0xa0, "6 Coins 1 Credits" },
- {0x13, 0x01, 0xf0, 0xb0, "5 Coins 1 Credits" },
- {0x13, 0x01, 0xf0, 0xc0, "4 Coins 1 Credits" },
- {0x13, 0x01, 0xf0, 0xd0, "3 Coins 1 Credits" },
- {0x13, 0x01, 0xf0, 0xe0, "2 Coins 1 Credits" },
- {0x13, 0x01, 0xf0, 0x10, "2 Coins to Start/1 to Continue" },
- {0x13, 0x01, 0xf0, 0x30, "3 Coins 2 Credits" },
- {0x13, 0x01, 0xf0, 0x20, "4 Coins 3 Credits" },
- {0x13, 0x01, 0xf0, 0xf0, "1 Coin 1 Credits" },
- {0x13, 0x01, 0xf0, 0x40, "2 Coins 3 Credits" },
- {0x13, 0x01, 0xf0, 0x90, "1 Coin 2 Credits" },
- {0x13, 0x01, 0xf0, 0x80, "1 Coin 3 Credits" },
- {0x13, 0x01, 0xf0, 0x70, "1 Coin 4 Credits" },
- {0x13, 0x01, 0xf0, 0x60, "1 Coin 5 Credits" },
- {0x13, 0x01, 0xf0, 0x50, "1 Coin 6 Credits" },
- {0x13, 0x01, 0xf0, 0x00, "Free Play" },
-#else
- {0 , 0xfe, 0 , 4, "Coin A" },
- {0x13, 0x01, 0x30, 0x00, "5 Coins 1 Credits" },
- {0x13, 0x01, 0x30, 0x10, "3 Coins 1 Credits" },
- {0x13, 0x01, 0x30, 0x20, "2 Coins 1 Credits" },
- {0x13, 0x01, 0x30, 0x30, "1 Coin 1 Credits" },
-
- {0 , 0xfe, 0 , 4, "Coin B" },
- {0x13, 0x01, 0xc0, 0xc0, "1 Coin 2 Credits" },
- {0x13, 0x01, 0xc0, 0x80, "1 Coin 3 Credits" },
- {0x13, 0x01, 0xc0, 0x40, "1 Coin 5 Credits" },
- {0x13, 0x01, 0xc0, 0x00, "1 Coin 6 Credits" },
-#endif
-
- {0 , 0xfe, 0 , 4, "Bonus Life" },
- {0x14, 0x01, 0x03, 0x02, "500K & 1M" },
- {0x14, 0x01, 0x03, 0x03, "700K & 1.5M" },
- {0x14, 0x01, 0x03, 0x00, "700K, 1.5M, 3M & 4.5M" },
- {0x14, 0x01, 0x03, 0x01, "1M & 2M" },
-};
-
-STDDIPINFO(Lethalth)
-
-static struct BurnDIPInfo UccopsDIPList[]=
-{
- {0x1a, 0xff, 0xff, 0xae, NULL },
- {0x1b, 0xff, 0xff, 0xff, NULL },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x1a, 0x01, 0x03, 0x00, "1" },
- {0x1a, 0x01, 0x03, 0x03, "2" },
- {0x1a, 0x01, 0x03, 0x02, "3" },
- {0x1a, 0x01, 0x03, 0x01, "4" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x1a, 0x01, 0x0c, 0x00, "Very Easy" },
- {0x1a, 0x01, 0x0c, 0x08, "Easy" },
- {0x1a, 0x01, 0x0c, 0x0c, "Normal" },
- {0x1a, 0x01, 0x0c, 0x04, "Hard" },
-
- {0 , 0xfe, 0 , 2, "Any Button to Start" },
- {0x1a, 0x01, 0x20, 0x00, "No" },
- {0x1a, 0x01, 0x20, 0x20, "Yes" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x1a, 0x01, 0x40, 0x40, "Off" },
- {0x1a, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x1a, 0x01, 0x80, 0x80, "Off" },
- {0x1a, 0x01, 0x80, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x1b, 0x01, 0x01, 0x01, "Off" },
- {0x1b, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Cabinet" },
- {0x1b, 0x01, 0x02, 0x02, "2 Players" },
- {0x1b, 0x01, 0x02, 0x00, "4 Players" },
-
- {0 , 0xfe, 0 , 2, "Coin Slots" },
- {0x1b, 0x01, 0x04, 0x04, "Common" },
- {0x1b, 0x01, 0x04, 0x00, "Separate" },
-
- {0 , 0xfe, 0 , 2, "Coin Mode" },
- {0x1b, 0x01, 0x08, 0x08, "1" },
- {0x1b, 0x01, 0x08, 0x00, "2" },
-
- {0 , 0xfe, 0 , 16, "Coinage" },
- {0x1b, 0x01, 0xf0, 0xa0, "6 Coins 1 Credits" },
- {0x1b, 0x01, 0xf0, 0xb0, "5 Coins 1 Credits" },
- {0x1b, 0x01, 0xf0, 0xc0, "4 Coins 1 Credits" },
- {0x1b, 0x01, 0xf0, 0xd0, "3 Coins 1 Credits" },
- {0x1b, 0x01, 0xf0, 0xe0, "2 Coins 1 Credits" },
- {0x1b, 0x01, 0xf0, 0x10, "2 Coins to Start/1 to Continue" },
- {0x1b, 0x01, 0xf0, 0x30, "3 Coins 2 Credits" },
- {0x1b, 0x01, 0xf0, 0x20, "4 Coins 3 Credits" },
- {0x1b, 0x01, 0xf0, 0xf0, "1 Coin 1 Credits" },
- {0x1b, 0x01, 0xf0, 0x40, "2 Coins 3 Credits" },
- {0x1b, 0x01, 0xf0, 0x90, "1 Coin 2 Credits" },
- {0x1b, 0x01, 0xf0, 0x80, "1 Coin 3 Credits" },
- {0x1b, 0x01, 0xf0, 0x70, "1 Coin 4 Credits" },
- {0x1b, 0x01, 0xf0, 0x60, "1 Coin 5 Credits" },
- {0x1b, 0x01, 0xf0, 0x50, "1 Coin 6 Credits" },
- {0x1b, 0x01, 0xf0, 0x00, "Free Play" },
-};
-
-STDDIPINFO(Uccops)
-
-static struct BurnDIPInfo HookDIPList[]=
-{
- {0x22, 0xff, 0xff, 0xbf, NULL },
- {0x23, 0xff, 0xff, 0xff, NULL },
- {0x24, 0xff, 0xff, 0xff, NULL },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x22, 0x01, 0x03, 0x00, "1" },
- {0x22, 0x01, 0x03, 0x03, "2" },
- {0x22, 0x01, 0x03, 0x02, "3" },
- {0x22, 0x01, 0x03, 0x01, "4" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x22, 0x01, 0x0c, 0x00, "Very Easy" },
- {0x22, 0x01, 0x0c, 0x08, "Easy" },
- {0x22, 0x01, 0x0c, 0x0c, "Normal" },
- {0x22, 0x01, 0x0c, 0x04, "Hard" },
-
- {0 , 0xfe, 0 , 2, "Any Button to Start" },
- {0x22, 0x01, 0x20, 0x00, "No" },
- {0x22, 0x01, 0x20, 0x20, "Yes" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x22, 0x01, 0x40, 0x40, "Off" },
- {0x22, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x22, 0x01, 0x80, 0x80, "Off" },
- {0x22, 0x01, 0x80, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x23, 0x01, 0x01, 0x01, "Off" },
- {0x23, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Cabinet" },
- {0x23, 0x01, 0x02, 0x02, "2 Players" },
- {0x23, 0x01, 0x02, 0x00, "4 Players" },
-
- {0 , 0xfe, 0 , 2, "Coin Slots" },
- {0x23, 0x01, 0x04, 0x04, "Common" },
- {0x23, 0x01, 0x04, 0x00, "Separate" },
-
- {0 , 0xfe, 0 , 2, "Coin Mode" },
- {0x23, 0x01, 0x08, 0x08, "1" },
- {0x23, 0x01, 0x08, 0x00, "2" },
-
- {0 , 0xfe, 0 , 16, "Coinage" },
- {0x23, 0x01, 0xf0, 0xa0, "6 Coins 1 Credits" },
- {0x23, 0x01, 0xf0, 0xb0, "5 Coins 1 Credits" },
- {0x23, 0x01, 0xf0, 0xc0, "4 Coins 1 Credits" },
- {0x23, 0x01, 0xf0, 0xd0, "3 Coins 1 Credits" },
- {0x23, 0x01, 0xf0, 0xe0, "2 Coins 1 Credits" },
- {0x23, 0x01, 0xf0, 0x10, "2 Coins to Start/1 to Continue" },
- {0x23, 0x01, 0xf0, 0x30, "3 Coins 2 Credits" },
- {0x23, 0x01, 0xf0, 0x20, "4 Coins 3 Credits" },
- {0x23, 0x01, 0xf0, 0xf0, "1 Coin 1 Credits" },
- {0x23, 0x01, 0xf0, 0x40, "2 Coins 3 Credits" },
- {0x23, 0x01, 0xf0, 0x90, "1 Coin 2 Credits" },
- {0x23, 0x01, 0xf0, 0x80, "1 Coin 3 Credits" },
- {0x23, 0x01, 0xf0, 0x70, "1 Coin 4 Credits" },
- {0x23, 0x01, 0xf0, 0x60, "1 Coin 5 Credits" },
- {0x23, 0x01, 0xf0, 0x50, "1 Coin 6 Credits" },
- {0x23, 0x01, 0xf0, 0x00, "Free Play" },
-};
-
-STDDIPINFO(Hook)
-
-static struct BurnDIPInfo NbbatmanDIPList[]=
-{
- {0x22, 0xff, 0xff, 0x9f, NULL },
- {0x23, 0xff, 0xff, 0xff, NULL },
- {0x24, 0xff, 0xff, 0xff, NULL },
- {0x25, 0xff, 0xff, 0x00, NULL },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x22, 0x01, 0x03, 0x00, "1" },
- {0x22, 0x01, 0x03, 0x03, "2" },
- {0x22, 0x01, 0x03, 0x02, "3" },
- {0x22, 0x01, 0x03, 0x01, "4" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x22, 0x01, 0x0c, 0x08, "Easy" },
- {0x22, 0x01, 0x0c, 0x0c, "Normal" },
- {0x22, 0x01, 0x0c, 0x04, "Hard" },
- {0x22, 0x01, 0x0c, 0x00, "Hardest" },
-
- {0 , 0xfe, 0 , 2, "Any Button to Start" },
- {0x22, 0x01, 0x20, 0x20, "No" },
- {0x22, 0x01, 0x20, 0x00, "Yes" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x22, 0x01, 0x40, 0x40, "Off" },
- {0x22, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x22, 0x01, 0x80, 0x80, "Off" },
- {0x22, 0x01, 0x80, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x23, 0x01, 0x01, 0x01, "Off" },
- {0x23, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Cabinet" },
- {0x23, 0x01, 0x02, 0x02, "2 Players" },
- {0x23, 0x01, 0x02, 0x00, "4 Players" },
-
- {0 , 0xfe, 0 , 2, "Coin Slots" },
- {0x23, 0x01, 0x04, 0x04, "Common" },
- {0x23, 0x01, 0x04, 0x00, "Separate" },
-
- {0 , 0xfe, 0 , 2, "Coin Mode" },
- {0x23, 0x01, 0x08, 0x08, "1" },
- {0x23, 0x01, 0x08, 0x00, "2" },
-
- {0 , 0xfe, 0 , 16, "Coinage" },
- {0x23, 0x01, 0xf0, 0xa0, "6 Coins 1 Credits" },
- {0x23, 0x01, 0xf0, 0xb0, "5 Coins 1 Credits" },
- {0x23, 0x01, 0xf0, 0xc0, "4 Coins 1 Credits" },
- {0x23, 0x01, 0xf0, 0xd0, "3 Coins 1 Credits" },
- {0x23, 0x01, 0xf0, 0xe0, "2 Coins 1 Credits" },
- {0x23, 0x01, 0xf0, 0x10, "2 Coins to Start/1 to Continue" },
- {0x23, 0x01, 0xf0, 0x30, "3 Coins 2 Credits" },
- {0x23, 0x01, 0xf0, 0x20, "4 Coins 3 Credits" },
- {0x23, 0x01, 0xf0, 0xf0, "1 Coin 1 Credits" },
- {0x23, 0x01, 0xf0, 0x40, "2 Coins 3 Credits" },
- {0x23, 0x01, 0xf0, 0x90, "1 Coin 2 Credits" },
- {0x23, 0x01, 0xf0, 0x80, "1 Coin 3 Credits" },
- {0x23, 0x01, 0xf0, 0x70, "1 Coin 4 Credits" },
- {0x23, 0x01, 0xf0, 0x60, "1 Coin 5 Credits" },
- {0x23, 0x01, 0xf0, 0x50, "1 Coin 6 Credits" },
- {0x23, 0x01, 0xf0, 0x00, "Free Play" },
-
- {0 , 0xfe, 0 , 2, "Early SoundCPU emulation mode. (HACK)" },
- {0x25, 0x01, 0x01, 0x00, "Off" },
- {0x25, 0x01, 0x01, 0x01, "On (Reload game after change!)" },
-};
-
-STDDIPINFO(Nbbatman)
-
-static struct BurnDIPInfo Majtitl2DIPList[]=
-{
- {0x22, 0xff, 0xff, 0x9f, NULL },
- {0x23, 0xff, 0xff, 0xfd, NULL },
- {0x24, 0xff, 0xff, 0xff, NULL },
-
- {0 , 0xfe, 0 , 2, "Given Holes/Stroke Play" },
- {0x22, 0x01, 0x01, 0x00, "1" },
- {0x22, 0x01, 0x01, 0x01, "2" },
-
- {0 , 0xfe, 0 , 2, "Given Holes/Match or Skins" },
- {0x22, 0x01, 0x02, 0x00, "1" },
- {0x22, 0x01, 0x02, 0x02, "2" },
-
- {0 , 0xfe, 0 , 2, "Difficulty" },
- {0x22, 0x01, 0x04, 0x04, "Normal" },
- {0x22, 0x01, 0x04, 0x00, "Hard" },
-
- {0 , 0xfe, 0 , 2, "Joystick Configuration" },
- {0x22, 0x01, 0x08, 0x08, "Upright" },
- {0x22, 0x01, 0x08, 0x00, "Cocktail" },
-
- {0 , 0xfe, 0 , 2, "Number of Joysticks" },
- {0x22, 0x01, 0x10, 0x10, "2 Joysticks" },
- {0x22, 0x01, 0x10, 0x00, "4 Joysticks" },
-
- {0 , 0xfe, 0 , 2, "Any Button to Start" },
- {0x22, 0x01, 0x20, 0x20, "No" },
- {0x22, 0x01, 0x20, 0x00, "Yes" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x22, 0x01, 0x40, 0x40, "Off" },
- {0x22, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x22, 0x01, 0x80, 0x80, "Off" },
- {0x22, 0x01, 0x80, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x23, 0x01, 0x01, 0x01, "Off" },
- {0x23, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Cabinet" },
- {0x23, 0x01, 0x02, 0x00, "Upright" },
- {0x23, 0x01, 0x02, 0x02, "Cocktail" },
-
- {0 , 0xfe, 0 , 2, "Coin Slots" },
- {0x23, 0x01, 0x04, 0x04, "Common" },
- {0x23, 0x01, 0x04, 0x00, "Separate" },
-
- {0 , 0xfe, 0 , 2, "Coin Mode" },
- {0x23, 0x01, 0x08, 0x08, "1" },
- {0x23, 0x01, 0x08, 0x00, "2" },
-
- {0 , 0xfe, 0 , 16, "Coinage" },
- {0x23, 0x01, 0xf0, 0xa0, "6 Coins 1 Credits" },
- {0x23, 0x01, 0xf0, 0xb0, "5 Coins 1 Credits" },
- {0x23, 0x01, 0xf0, 0xc0, "4 Coins 1 Credits" },
- {0x23, 0x01, 0xf0, 0xd0, "3 Coins 1 Credits" },
- {0x23, 0x01, 0xf0, 0xe0, "2 Coins 1 Credits" },
- {0x23, 0x01, 0xf0, 0x10, "2 Coins to Start/1 to Continue" },
- {0x23, 0x01, 0xf0, 0x30, "3 Coins 2 Credits" },
- {0x23, 0x01, 0xf0, 0x20, "4 Coins 3 Credits" },
- {0x23, 0x01, 0xf0, 0xf0, "1 Coin 1 Credits" },
- {0x23, 0x01, 0xf0, 0x40, "2 Coins 3 Credits" },
- {0x23, 0x01, 0xf0, 0x90, "1 Coin 2 Credits" },
- {0x23, 0x01, 0xf0, 0x80, "1 Coin 3 Credits" },
- {0x23, 0x01, 0xf0, 0x70, "1 Coin 4 Credits" },
- {0x23, 0x01, 0xf0, 0x60, "1 Coin 5 Credits" },
- {0x23, 0x01, 0xf0, 0x50, "1 Coin 6 Credits" },
- {0x23, 0x01, 0xf0, 0x00, "Free Play" },
-
- {0 , 0xfe, 0 , 2, "Ticket Dispenser" },
- {0x24, 0x01, 0x01, 0x01, "Off" },
- {0x24, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 4, "Points Per Ticket" },
- {0x24, 0x01, 0x06, 0x06, "1 Point - 1 Ticket" },
- {0x24, 0x01, 0x06, 0x04, "2 Points - 1 Ticket" },
- {0x24, 0x01, 0x06, 0x02, "5 Points - 1 Ticket" },
- {0x24, 0x01, 0x06, 0x00, "10 Points - 1 Ticket" },
-
- {0 , 0xfe, 0 , 2, "Deltronics Model" },
- {0x24, 0x01, 0x80, 0x80, "DL 1275" },
- {0x24, 0x01, 0x80, 0x00, "DL 4SS" },
-};
-
-STDDIPINFO(Majtitl2)
-
-static struct BurnDIPInfo Dsoccr94jDIPList[]=
-{
- {0x22, 0xff, 0xff, 0xbf, NULL },
- {0x23, 0xff, 0xff, 0xff, NULL },
- {0x24, 0xff, 0xff, 0xff, NULL },
-
- {0 , 0xfe, 0 , 4, "Time" },
- {0x22, 0x01, 0x03, 0x00, "1:30" },
- {0x22, 0x01, 0x03, 0x03, "2:00" },
- {0x22, 0x01, 0x03, 0x02, "2:30" },
- {0x22, 0x01, 0x03, 0x01, "3:00" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x22, 0x01, 0x0c, 0x00, "Very Easy" },
- {0x22, 0x01, 0x0c, 0x08, "Easy" },
- {0x22, 0x01, 0x0c, 0x0c, "Normal" },
- {0x22, 0x01, 0x0c, 0x04, "Hard" },
-
- {0 , 0xfe, 0 , 2, "Game Mode" },
- {0x22, 0x01, 0x10, 0x10, "Match Mode" },
- {0x22, 0x01, 0x10, 0x00, "Power Mode" },
-
- {0 , 0xfe, 0 , 2, "Starting Button" },
- {0x22, 0x01, 0x20, 0x00, "Button 1" },
- {0x22, 0x01, 0x20, 0x20, "Start Button" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x22, 0x01, 0x40, 0x40, "Off" },
- {0x22, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x22, 0x01, 0x80, 0x80, "Off" },
- {0x22, 0x01, 0x80, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x23, 0x01, 0x01, 0x01, "Off" },
- {0x23, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Cabinet" },
- {0x23, 0x01, 0x02, 0x02, "2 Players" },
- {0x23, 0x01, 0x02, 0x00, "4 Players" },
-
- {0 , 0xfe, 0 , 2, "Coin Slots" },
- {0x23, 0x01, 0x04, 0x04, "Common" },
- {0x23, 0x01, 0x04, 0x00, "Separate" },
-
- {0 , 0xfe, 0 , 2, "Coin Mode" },
- {0x23, 0x01, 0x08, 0x08, "1" },
- {0x23, 0x01, 0x08, 0x00, "2" },
-
- {0 , 0xfe, 0 , 16, "Coinage" },
- {0x23, 0x01, 0xf0, 0xa0, "6 Coins 1 Credits" },
- {0x23, 0x01, 0xf0, 0xb0, "5 Coins 1 Credits" },
- {0x23, 0x01, 0xf0, 0xc0, "4 Coins 1 Credits" },
- {0x23, 0x01, 0xf0, 0xd0, "3 Coins 1 Credits" },
- {0x23, 0x01, 0xf0, 0xe0, "2 Coins 1 Credits" },
- {0x23, 0x01, 0xf0, 0x10, "2 Coins to Start/1 to Continue" },
- {0x23, 0x01, 0xf0, 0x30, "3 Coins 2 Credits" },
- {0x23, 0x01, 0xf0, 0x20, "4 Coins 3 Credits" },
- {0x23, 0x01, 0xf0, 0xf0, "1 Coin 1 Credits" },
- {0x23, 0x01, 0xf0, 0x40, "2 Coins 3 Credits" },
- {0x23, 0x01, 0xf0, 0x90, "1 Coin 2 Credits" },
- {0x23, 0x01, 0xf0, 0x80, "1 Coin 3 Credits" },
- {0x23, 0x01, 0xf0, 0x70, "1 Coin 4 Credits" },
- {0x23, 0x01, 0xf0, 0x60, "1 Coin 5 Credits" },
- {0x23, 0x01, 0xf0, 0x50, "1 Coin 6 Credits" },
- {0x23, 0x01, 0xf0, 0x00, "Free Play" },
-
- {0 , 0xfe, 0 , 4, "Player Power" },
- {0x24, 0x01, 0x03, 0x00, "500" },
- {0x24, 0x01, 0x03, 0x03, "1000" },
- {0x24, 0x01, 0x03, 0x01, "1500" },
- {0x24, 0x01, 0x03, 0x02, "2000" },
-};
-
-STDDIPINFO(Dsoccr94j)
-
-static struct BurnDIPInfo PsoldierDIPList[]=
-{
- {0x1a, 0xff, 0xff, 0x9f, NULL },
- {0x1b, 0xff, 0xff, 0xfd, NULL },
-
- {0 , 0xfe, 0 , 2, "Any Button to Start" },
- {0x1a, 0x01, 0x20, 0x20, "No" },
- {0x1a, 0x01, 0x20, 0x00, "Yes" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x1a, 0x01, 0x40, 0x40, "Off" },
- {0x1a, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x1a, 0x01, 0x80, 0x80, "Off" },
- {0x1a, 0x01, 0x80, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x1b, 0x01, 0x01, 0x01, "Off" },
- {0x1b, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Coin Slots" },
- {0x1b, 0x01, 0x04, 0x04, "Common" },
- {0x1b, 0x01, 0x04, 0x00, "Separate" },
-
- {0 , 0xfe, 0 , 2, "Coin Mode" },
- {0x1b, 0x01, 0x08, 0x08, "1" },
- {0x1b, 0x01, 0x08, 0x00, "2" },
-
- {0 , 0xfe, 0 , 16, "Coinage" },
- {0x1b, 0x01, 0xf0, 0xa0, "6 Coins 1 Credits" },
- {0x1b, 0x01, 0xf0, 0xb0, "5 Coins 1 Credits" },
- {0x1b, 0x01, 0xf0, 0xc0, "4 Coins 1 Credits" },
- {0x1b, 0x01, 0xf0, 0xd0, "3 Coins 1 Credits" },
- {0x1b, 0x01, 0xf0, 0xe0, "2 Coins 1 Credits" },
- {0x1b, 0x01, 0xf0, 0x10, "2 Coins to Start/1 to Continue" },
- {0x1b, 0x01, 0xf0, 0x30, "3 Coins 2 Credits" },
- {0x1b, 0x01, 0xf0, 0x20, "4 Coins 3 Credits" },
- {0x1b, 0x01, 0xf0, 0xf0, "1 Coin 1 Credits" },
- {0x1b, 0x01, 0xf0, 0x40, "2 Coins 3 Credits" },
- {0x1b, 0x01, 0xf0, 0x90, "1 Coin 2 Credits" },
- {0x1b, 0x01, 0xf0, 0x80, "1 Coin 3 Credits" },
- {0x1b, 0x01, 0xf0, 0x70, "1 Coin 4 Credits" },
- {0x1b, 0x01, 0xf0, 0x60, "1 Coin 5 Credits" },
- {0x1b, 0x01, 0xf0, 0x50, "1 Coin 6 Credits" },
- {0x1b, 0x01, 0xf0, 0x00, "Free Play" },
-};
-
-STDDIPINFO(Psoldier)
-
-inline static UINT32 CalcCol(INT32 offs)
-{
- INT32 nColour = DrvPalRAM[offs + 0] | (DrvPalRAM[offs + 1] << 8);
- INT32 r, g, b;
-
- r = (nColour & 0x001F) << 3;
- r |= r >> 5;
- g = (nColour & 0x03E0) >> 2;
- g |= g >> 5;
- b = (nColour & 0x7C00) >> 7;
- b |= b >> 5;
-
- return BurnHighCol(r, g, b, 0);
-}
-
-static void m92YM2151IRQHandler(INT32 nStatus)
-{
- if (VezGetActive() == -1) return;
- VezSetIRQLineAndVector(NEC_INPUT_LINE_INTP0, 0xff/*default*/, nStatus ? CPU_IRQSTATUS_ACK : CPU_IRQSTATUS_NONE);
- VezRun(100);
-}
-
-UINT8 __fastcall m92ReadByte(UINT32 address)
-{
- if ((address & 0xff800) == 0xf8800 )
- return DrvPalRAM[ address - 0xf8800 + PalBank ];
-
- if ((address & 0xfc000) == 0xf0000 ) {
- if (address & 1) {
- return 0xff;
- } else {
- return DrvEEPROM[(address & 0x3fff) / 2];
- }
- }
-
- return 0;
-}
-
-void __fastcall m92WriteByte(UINT32 address, UINT8 data)
-{
- if ((address & 0xff800) == 0xf8800 ) {
- DrvPalRAM[ address - 0xf8800 + PalBank ] = data;
- if (address & 1) {
- INT32 offs = (address - 0xf8800 + PalBank) >> 1;
- DrvPalette[offs] = CalcCol( offs << 1 );
- }
- return;
- }
-
- if ((address & 0xfc001) == 0xf0000 ) {
- DrvEEPROM[(address & 0x3fff) / 2] = data;
- return;
- }
-
- switch (address)
- {
- case 0xf9000:
- sprite_extent = (sprite_extent & 0xff00) | (data << 0);
- return;
-
- case 0xf9001:
- sprite_extent = (sprite_extent & 0x00ff) | (data << 8);
- return;
-
- case 0xf9004:
- m92_sprite_list = (data==8) ? (((0x100 - sprite_extent)&0xff)*4) : 0x400;
- return;
-
- case 0xf9008:
- m92_sprite_buffer_busy = 0;
- m92_sprite_buffer_timer = 1;
- VezRunEnd();
- return;
-
- case 0xf9800:
- PalBank = (data & 0x02) ? 0x0800 : 0x0000;
- return;
-
-// default:
-// bprintf(PRINT_NORMAL, _T("Attempt to write byte value %x to location %x\n"), data, address);
- }
-}
-
-UINT8 __fastcall m92ReadPort(UINT32 port)
-{
- switch (port)
- {
- case 0x00: return ~DrvInput[0]; // player 1
- case 0x01: return ~DrvInput[1]; // player 2
- case 0x02: return (~DrvInput[4] & 0x7F) | m92_sprite_buffer_busy;
- case 0x03: return DrvInput[7]; // dip 3
- case 0x04: return DrvInput[5]; // dip 1
- case 0x05: return DrvInput[6]; // dip 2
- case 0x06: return ~DrvInput[2]; // player 3
- case 0x07: return ~DrvInput[3]; // player 4
-
- case 0x08: VezSetIRQLineAndVector(0, (m92_irq_vectorbase + 12)/4, CPU_IRQSTATUS_NONE); return sound_status[0];
- case 0x09: VezSetIRQLineAndVector(0, (m92_irq_vectorbase + 12)/4, CPU_IRQSTATUS_NONE); return sound_status[1];
-
- case 0x18: return (m92_kludge == 3) ? MSM6295ReadStatus(0) : 0; // ppan
-
-// default:
-// bprintf(PRINT_NORMAL, _T("Attempt to read byte value of port %x\n"), port);
- }
- return 0;
-}
-
-static void clear_pf_scroll(INT32 layer)
-{
- pf_control[layer][0] = 0; // scrolly
- pf_control[layer][1] = 0; // "
- pf_control[layer][4] = 0; // scrollx
- pf_control[layer][5] = 0; // "
-}
-
-static void set_pf_info(INT32 layer, INT32 data)
-{
- struct _m92_layer *ptr = m92_layers[layer];
-
- if (data & 0x10) {
- ptr->enable = 0;
- } else {
- ptr->enable = 1;
- ptr->wide = (data & 0x04) ? 128 : 64;
- }
-
- int oldrowscroll = ptr->enable_rowscroll;
- ptr->enable_rowscroll = data & 0x40;
- if (ptr->enable_rowscroll != oldrowscroll)
- clear_pf_scroll(layer); //clear scrollx/scrolly on change, fixes skewed background problems (f. ex. inthunt)
-
- ptr->vram = (UINT16*)(DrvVidRAM + ((data & 0x03) * 0x4000));
-}
-
-static void set_pf_scroll(INT32 layer)
-{
- struct _m92_layer *ptr = m92_layers[layer];
-
- ptr->scrollx = (pf_control[layer][4] << 0) | (pf_control[layer][5] << 8);
- ptr->scrolly = (pf_control[layer][0] << 0) | (pf_control[layer][1] << 8);
-}
-
-void __fastcall m92WritePort(UINT32 port, UINT8 data)
-{
- switch (port)
- {
- case 0x00:
- // case 0x01:
- sound_latch[0] = data;
- VezClose();
- VezOpen(1);
- VezSetIRQLineAndVector(NEC_INPUT_LINE_INTP1, 0xff/*default*/, CPU_IRQSTATUS_ACK);
- VezRun(10);
- VezSetIRQLineAndVector(NEC_INPUT_LINE_INTP1, 0xff/*default*/, CPU_IRQSTATUS_NONE);
- VezRun(10);
- VezClose();
- VezOpen(0);
- return;
-
- case 0x02:
- case 0x03:
- //m92_coincounter_w
- return;
-
- case 0x10: // ppan
- if (m92_kludge == 3) {
- if (msm6295_bank != (data + 1)) {
- msm6295_bank = (data & 3) + 1;
- memcpy (DrvSndROM + 0x20000, DrvSndROM + 0x100000 + msm6295_bank * 0x20000, 0x20000);
- }
- }
- return;
-
- case 0x18: // ppan
- if (m92_kludge == 3) MSM6295Command(0, data);
- return;
-
- case 0x20:
- // case 0x21:
- // m92_bankswitch_w
- if (m92_kludge != 1) { // lethalth
- VezMapArea(0xa0000, 0xbffff, 0, DrvV33ROM + 0x100000 + (data&0x7)*0x10000);
- VezMapArea(0xa0000, 0xbffff, 2, DrvV33ROM + 0x100000 + (data&0x7)*0x10000);
- }
- return;
-
- case 0x40:
- case 0x41:
- case 0x43: // IRQ controller init (ignored)
- return;
- case 0x42: // get vectorbase from IRQ controller init - first write on port 0x42
- if (m92_irq_vectorbase == 0) {
- m92_irq_vectorbase = data << 2;
- }
- return;
-
- case 0x80: pf_control[0][0] = data; set_pf_scroll(0); return;
- case 0x81: pf_control[0][1] = data; set_pf_scroll(0); return;
- case 0x82: pf_control[0][2] = data; return;
- case 0x83: pf_control[0][3] = data; return;
- case 0x84: pf_control[0][4] = data; set_pf_scroll(0); return;
- case 0x85: pf_control[0][5] = data; set_pf_scroll(0); return;
- case 0x86: pf_control[0][6] = data; return;
- case 0x87: pf_control[0][7] = data; return;
- case 0x88: pf_control[1][0] = data; set_pf_scroll(1); return;
- case 0x89: pf_control[1][1] = data; set_pf_scroll(1); return;
- case 0x8a: pf_control[1][2] = data; return;
- case 0x8b: pf_control[1][3] = data; return;
- case 0x8c: pf_control[1][4] = data; set_pf_scroll(1); return;
- case 0x8d: pf_control[1][5] = data; set_pf_scroll(1); return;
- case 0x8e: pf_control[1][6] = data; return;
- case 0x8f: pf_control[1][7] = data; return;
- case 0x90: pf_control[2][0] = data; set_pf_scroll(2); return;
- case 0x91: pf_control[2][1] = data; set_pf_scroll(2); return;
- case 0x92: pf_control[2][2] = data; return;
- case 0x93: pf_control[2][3] = data; return;
- case 0x94: pf_control[2][4] = data; set_pf_scroll(2); return;
- case 0x95: pf_control[2][5] = data; set_pf_scroll(2); return;
- case 0x96: pf_control[2][6] = data; return;
- case 0x97: pf_control[2][7] = data; return;
- case 0x98: pf_control[3][0] = data; set_pf_info(0, data); return;
- case 0x99: pf_control[3][1] = data; return;
- case 0x9a: pf_control[3][2] = data; set_pf_info(1, data); return;
- case 0x9b: pf_control[3][3] = data; return;
- case 0x9c: pf_control[3][4] = data; set_pf_info(2, data); return;
- case 0x9d: pf_control[3][5] = data; return;
- case 0x9e: pf_control[3][6] = data;
- return;
- case 0x9f: pf_control[3][7] = data;
- m92_raster_irq_position = ((pf_control[3][7]<<8) | pf_control[3][6]) - 128;
- return;
-
- case 0xc0:
- case 0xc1:// sound reset
- return;
-
- //default:
- // bprintf(PRINT_NORMAL, _T("Attempt to write byte value %x to port %x\n"), data, port);
- }
-}
-
-UINT8 __fastcall m92SndReadByte(UINT32 address)
-{
- if ((address & 0xfffc0) == 0xa8000) {
- return iremga20_read( 0, (address & 0x0003f) / 2 );
- }
-
- switch (address)
- {
- case 0xa8042:
- return BurnYM2151ReadStatus();
-
- case 0xa8044:
- //VezSetIRQLineAndVector(NEC_INPUT_LINE_INTP1, 0xff/*default*/, CPU_IRQSTATUS_NONE);
- return sound_latch[0];
-
- case 0xa8045:
- return 0xff; // soundlatch high bits, always 0xff
-
-// default:
-// bprintf(PRINT_NORMAL, _T("V30 Attempt to read byte value of location %x\n"), address);
- }
- return 0;
-}
-
-void __fastcall m92SndWriteByte(UINT32 address, UINT8 data)
-{
- if ((address & 0xfffc0) == 0xa8000) {
- iremga20_write( 0, (address & 0x0003f) / 2, data );
- return;
- }
-
- if ((address & 0xfff00) == 0x9ff00) { // NOP
- return;
- }
-
- switch (address)
- {
- case 0xa8040:
- BurnYM2151SelectRegister(data);
- return;
-
- case 0xa8042:
- BurnYM2151WriteRegister(data);
- return;
-
- case 0xa8044:
- //VezSetIRQLineAndVector(NEC_INPUT_LINE_INTP1, 0xff/*default*/, CPU_IRQSTATUS_NONE);
- return;
-
- case 0xa8046:
- sound_status[0] = data;
- VezClose();
- VezOpen(0);
- VezSetIRQLineAndVector(0, (m92_irq_vectorbase + 12)/4, CPU_IRQSTATUS_ACK);
- VezClose();
- VezOpen(1);
- return;
-
- // default:
- // bprintf(PRINT_NORMAL, _T("V30 Attempt to write byte value %x to location %x\n"), data, address);
- }
-}
-
-static INT32 DrvDoReset()
-{
- memset (RamStart, 0, RamEnd - RamStart);
-
- VezOpen(0);
- VezReset();
- VezClose();
-
- VezOpen(1);
- VezReset();
- VezClose();
-
- BurnYM2151Reset();
- iremga20_reset(0);
- if (m92_kludge == 3) { // ppan
- MSM6295Reset(0);
- msm6295_bank = -1;
- m92WritePort(0x10, 0); // set bank
- }
-
- if (m92_kludge == 1) sound_status[0] = 0x80;
-
- m92_irq_vectorbase = 0;
- m92_sprite_buffer_busy = 0x80;
- m92_sprite_buffer_timer = 0;
- PalBank = 0;
-
- {
- struct _m92_layer *ptr;
- for (INT32 i = 0; i < 3; i++) {
- ptr = m92_layers[i];
- ptr->scroll = (UINT16*)(DrvVidRAM + (0xf400 + 0x400 * i));
- }
- }
-
- return 0;
-}
-
-static void loadDecodeGfx01(UINT8 *tmp, INT32 rid, INT32 shift, INT32 size)
-{
- UINT8 * pgfx = DrvGfxROM0;
-
- BurnLoadRom(tmp, rid, 1);
-
- for (INT32 i=0; i<(size/8); i++) {
- for( INT32 y=0;y<8;y++, tmp++, pgfx+=8) {
- for ( INT32 j=0;j<8;j++) {
- pgfx[j] |= ((tmp[0]>>(j^7))&1)<>(~j&7))&1)<> (7-(i&7)))&1)<= nScreenWidth || sy <= (0-height) || sy >= nScreenHeight) return;
-
- INT32 flip = 0;
- if (flipy) flip |= (height - 1) * width;
- if (flipx) flip |= width - 1;
-
- gfx += code * width * height;
-
- //"m92 is a special case, usually it would need pri |= 1<<31; but not this time! -dink"
-
- for (INT32 y = 0; y < height; y++, sy++) {
- if (sy < 0 || sy >= nScreenHeight) continue;
-
- for (INT32 x = 0; x < width; x++, sx++) {
- if (sx < 0 || sx >= nScreenWidth) continue;
-
- INT32 pxl = gfx[((y * width) + x) ^ flip];
-
- if (pxl == 0) continue;
-
- if ((prio & (1 << pri[sy * nScreenWidth + sx])) == 0) {
- dest[sy * nScreenWidth + sx] = pxl | color;
- }
- pri[sy * nScreenWidth + sx] = 7;
- }
-
- sx -= width;
- }
-}
-
-static void draw_sprites()
-{
- UINT16 *ram = (UINT16*)DrvSprBuf;
-
- for (INT32 k=0; k<8; k++)
- {
- for (INT32 offs = 0; offs < m92_sprite_list; )
- {
- INT32 y = (((384 - 16 - (BURN_ENDIAN_SWAP_INT16(ram[offs+0]) & 0x1ff)) - nScreenOffsets[1]) & 0x1ff) - 8;
- INT32 x = (BURN_ENDIAN_SWAP_INT16(ram[offs+3]) & 0x1ff) - 96;
-
- INT32 pri_s = (BURN_ENDIAN_SWAP_INT16(ram[offs+0]) & 0xe000) >> 13;
- INT32 pri_b = (BURN_ENDIAN_SWAP_INT16(ram[offs+2]) & 0x0080) ? 0x80 : 0x82;
- INT32 code = BURN_ENDIAN_SWAP_INT16(ram[offs+1]);
- INT32 color = BURN_ENDIAN_SWAP_INT16(ram[offs+2]) & 0x007f;
-
- INT32 flipx = BURN_ENDIAN_SWAP_INT16(ram[offs+2]) & 0x0100;
- INT32 flipy = BURN_ENDIAN_SWAP_INT16(ram[offs+2]) & 0x0200;
- INT32 y_multi= 1 << ((BURN_ENDIAN_SWAP_INT16(ram[offs+0]) >> 9) & 3);
- INT32 x_multi= 1 << ((BURN_ENDIAN_SWAP_INT16(ram[offs+0]) >> 11) & 3);
-
- offs += 4 * x_multi;
- if (pri_s != k) continue;
-
- if (flipx) x+=16 * (x_multi - 1);
-
- for (INT32 j = 0; j < x_multi; j++)
- {
- INT32 s_ptr = j * 8;
- if (!flipy) s_ptr += y_multi-1;
-
- x &= 0x1ff;
-
- for (INT32 i=0; i 0x1f0) RenderTilePrio(pTransDraw, DrvGfxROM1, (code + s_ptr) & graphics_mask[1], color << 4, x-512, y-i*16, flipx, flipy, 16, 16, RamPrioBitmap, pri_b);
-
- if (flipy) s_ptr++; else s_ptr--;
- }
-
- if (flipx) x-=16; else x+=16;
- }
- }
- }
-}
-
-static void draw_layer_byline(INT32 start, INT32 finish, INT32 layer, INT32 forcelayer)
-{
- struct _m92_layer *ptr = m92_layers[layer];
-
- if (ptr->enable == 0) return;
-
- INT32 wide = ptr->wide;
- INT32 scrolly = (ptr->scrolly + 136 - nScreenOffsets[1]) & 0x1ff;
- INT32 scrollx = ((ptr->scrollx - nScreenOffsets[0]) - (2 * layer - ((wide & 0x80)<<1))) + 80;
-
- const UINT16 transmask[3][3][2] = { // layer, group, value
- { { 0xffff, 0x0001 }, { 0x00ff, 0xff01 }, { 0x0001, 0xffff } },
- { { 0xffff, 0x0001 }, { 0x00ff, 0xff01 }, { 0x0001, 0xffff } },
- { { 0xffff, 0x0000 }, { 0x00ff, 0xff00 }, { 0x0001, 0xfffe } }
- };
-
- INT32 priority = 1 << forcelayer;
-
- for (INT32 sy = start; sy < finish; sy++)
- {
- UINT16 *dest = pTransDraw + (sy * nScreenWidth);
- UINT8 *pri = RamPrioBitmap + (sy * nScreenWidth);
-
- INT32 scrollx_1 = scrollx;
- if (ptr->enable_rowscroll) scrollx_1 += BURN_ENDIAN_SWAP_INT16(ptr->scroll[(sy+scrolly)&0x1ff]) - ((m92_kludge==4) ? 24 : 0);
- INT32 scrolly_1 = (scrolly + sy) & 0x1ff;
- INT32 romoff_1 = (scrolly_1 & 0x07) << 3;
-
- for (INT32 sx = 0; sx < nScreenWidth + 8; sx+=8)
- {
- INT32 offs = ((scrolly_1 / 8) * wide) + (((scrollx_1 + sx) / 8) & (wide - 1));
- INT32 attr = BURN_ENDIAN_SWAP_INT16(ptr->vram[(offs * 2) + 1]);
- INT32 code = BURN_ENDIAN_SWAP_INT16(ptr->vram[(offs * 2) + 0]) | ((attr & 0x8000) << 1);
- INT32 color =(attr & 0x007f) << 4;
- INT32 flipy = attr & 0x0400;
- INT32 flipx = attr & 0x0200;
-
- INT32 group = 0;
- if (attr & 0x0180) group = (attr & 0x0100) ? 2 : 1;
-
- {
- INT32 x_xor = 0;
- INT32 romoff = romoff_1;
- if (flipy) romoff ^= 0x38;
- if (flipx) x_xor = 7;
-
- UINT8 *rom = DrvGfxROM0 + ((code & graphics_mask[0]) * 0x40) + romoff;
- INT32 mask = transmask[layer][group][forcelayer];
-
- INT32 xx = sx - (scrollx_1&0x7);
-
- for (INT32 x = 0; x < 8; x++, xx++) {
- if (xx < 0 || xx >= nScreenWidth) continue;
-
- INT32 pxl = rom[x ^ x_xor];
- if (mask & (1 << pxl)) continue;
-
- dest[xx] = pxl | color;
- pri[xx] = priority;
- }
- }
- }
- }
-}
-
-static void DrawLayers(INT32 start, INT32 finish)
-{
- memset (RamPrioBitmap + (start * nScreenWidth), 0, nScreenWidth * (finish - start)); // clear priority
-
- if (~nBurnLayer & 1) memset (pTransDraw + (start * nScreenWidth), 0, nScreenWidth * (finish - start) * sizeof(INT16));
-
- if (~pf_control[3][4] & 0x10) {
- if (nBurnLayer & 1) draw_layer_byline(start, finish, 2, 1);
- if (nBurnLayer & 1) draw_layer_byline(start, finish, 2, 0);
- } else {
- memset (pTransDraw + (start * nScreenWidth), 0, nScreenWidth * (finish - start) * sizeof(INT16));
- }
-
- if (nBurnLayer & 2) draw_layer_byline(start, finish, 1, 1);
- if (nBurnLayer & 2) draw_layer_byline(start, finish, 1, 0);
- if (nBurnLayer & 4) draw_layer_byline(start, finish, 0, 1);
- if (nBurnLayer & 4) draw_layer_byline(start, finish, 0, 0);
-}
-
-static INT32 DrvDraw()
-{
- if (bRecalcPalette) {
- for (INT32 i=0; i<0x800;i++)
- DrvPalette[i] = CalcCol(i<<1);
- bRecalcPalette = 0;
- }
-
-// DrawLayers(0, nScreenHeight);
-
- if (nBurnLayer & 8) draw_sprites();
-
- BurnTransferCopy(DrvPalette);
-
- return 0;
-}
-
-static INT32 DrvReDraw()
-{
- if (bRecalcPalette) {
- for (INT32 i=0; i<0x800;i++)
- DrvPalette[i] = CalcCol(i<<1);
- bRecalcPalette = 0;
- }
-
- DrawLayers(0, nScreenHeight);
-
- if (nBurnLayer & 8) draw_sprites();
-
- BurnTransferCopy(DrvPalette);
-
- return 0;
-}
-
-static inline void DrvClearOpposites(UINT8* nJoystickInputs)
-{
- if ((*nJoystickInputs & 0x03) == 0x03) {
- *nJoystickInputs &= ~0x03;
- }
- if ((*nJoystickInputs & 0x0c) == 0x0c) {
- *nJoystickInputs &= ~0x0c;
- }
-}
-
-static void compile_inputs()
-{
- memset (DrvInput, 0, 5);
-
- for (INT32 i = 0; i < 8; i++) {
- DrvInput[0] |= (DrvJoy1[i] & 1) << i;
- DrvInput[1] |= (DrvJoy2[i] & 1) << i;
- DrvInput[2] |= (DrvJoy3[i] & 1) << i;
- DrvInput[3] |= (DrvJoy4[i] & 1) << i;
- DrvInput[4] |= (DrvButton[i] & 1) << i;
- }
-
- // Clear Opposites
- DrvClearOpposites(&DrvInput[0]);
- DrvClearOpposites(&DrvInput[1]);
-}
-
-static void scanline_interrupts(INT32 prev, INT32 segment, INT32 scanline)
-{
- if (m92_sprite_buffer_timer) {
- memcpy (DrvSprBuf, DrvSprRAM, 0x800);
- if (m92_kludge != 4) nCyclesDone[0] += VezRun(347); // nbbatman: fix for random lockups during gameplay
- m92_sprite_buffer_busy = 0x80;
- VezSetIRQLineAndVector(0, (m92_irq_vectorbase + 4)/4, CPU_IRQSTATUS_ACK);
- nCyclesDone[0] += VezRun(10);
- VezSetIRQLineAndVector(0, (m92_irq_vectorbase + 4)/4, CPU_IRQSTATUS_NONE);
- if (m92_kludge != 4) nCyclesDone[0] += VezRun(segment - (VezTotalCycles() - prev));
-
- m92_sprite_buffer_timer = 0;
- }
-
- if (scanline == m92_raster_irq_position) {
-
- if (scanline>=8 && scanline < 248 && nPrevScreenPos != (scanline-8)+1) {
- if (nPrevScreenPos >= 0 && nPrevScreenPos <= 239)
- DrawLayers(nPrevScreenPos, (scanline-8)+1);
- nPrevScreenPos = (scanline-8)+1;
- }
-
- VezSetIRQLineAndVector(0, (m92_irq_vectorbase + 8)/4, CPU_IRQSTATUS_ACK);
- nCyclesDone[0] += VezRun((m92_kludge == 4) ? 20 : 10); // nbbatman: gets rid of flashes in intro sequence
- VezSetIRQLineAndVector(0, (m92_irq_vectorbase + 8)/4, CPU_IRQSTATUS_NONE);
-
- }
- else if (scanline == 248) // vblank
- {
- if (nPrevScreenPos != 240) {
- DrawLayers(nPrevScreenPos, 240);
- }
- nPrevScreenPos = 0;
-
- if (pBurnDraw) {
- DrvDraw();
- }
-
- if (m92_kludge == 4) nCyclesDone[0] += VezRun(1200); // nbbatman: gets rid of flash after IREM logo fades out
- VezSetIRQLineAndVector(0, (m92_irq_vectorbase + 0)/4, CPU_IRQSTATUS_ACK);
- nCyclesDone[0] += VezRun(10);
- VezSetIRQLineAndVector(0, (m92_irq_vectorbase + 0)/4, CPU_IRQSTATUS_NONE);
- }
-}
-
-static INT32 DrvFrame()
-{
- if (DrvReset) {
- DrvDoReset();
- }
-
- VezNewFrame();
-
- compile_inputs();
-
- INT32 multiplier=8;
- nInterleave = 256*multiplier;
-
- // overclocking...
- INT32 nSoundBufferPos = 0;
- nCyclesTotal[0] = (INT32)((INT64)(9000000 / 60) * nBurnCPUSpeedAdjust / 0x0100);
- nCyclesTotal[1] = (INT32)((INT64)(7159090 / 60) * nBurnCPUSpeedAdjust / 0x0100);
- nCyclesDone[0] = nCyclesDone[1] = 0;
-
- for (INT32 i = 0; i < nInterleave; i++)
- {
- VezOpen(0);
- INT32 segment = nCyclesTotal[0] / nInterleave;
- INT32 prev = VezTotalCycles();
-
- nCyclesDone[0] += VezRun(segment);
- if ((i%multiplier)==(multiplier-1))
- scanline_interrupts(prev, segment, i/multiplier); // update at hblank?
- VezClose();
-
- VezOpen(1);
- segment = nCyclesTotal[1] / nInterleave;
- segment += segment * i;
- while (VezTotalCycles() < segment) {
- nCyclesDone[1] += VezRun(segment - VezTotalCycles());
- }
-
- if ((i%multiplier)==(multiplier-1)) {
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen / (nInterleave / multiplier);
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
-
- BurnYM2151Render(pSoundBuf, nSegmentLength);
- iremga20_update(0, pSoundBuf, nSegmentLength);
-
- nSoundBufferPos += nSegmentLength;
- }
- }
-
- VezClose();
- }
-
- VezOpen(1);
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
- if (nSegmentLength) {
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- BurnYM2151Render(pSoundBuf, nSegmentLength);
- iremga20_update(0, pSoundBuf, nSegmentLength);
- }
- }
-
- VezClose();
-
- return 0;
-}
-
-static INT32 PpanFrame()
-{
- if (DrvReset) {
- DrvDoReset();
- }
-
- compile_inputs();
-
- // overclocking...
- nCyclesTotal[0] = (INT32)((INT64)(9000000 / 60) * nBurnCPUSpeedAdjust / 0x0100);
- nCyclesDone[0] = 0;
-
- VezOpen(0);
-
- for (INT32 i = 0; i < nInterleave; i++)
- {
- nCyclesDone[0] += VezRun(nCyclesTotal[0] / nInterleave);
-
- scanline_interrupts(0,0,i);
- }
-
- if (pBurnSoundOut) {
- MSM6295Render(0, pBurnSoundOut, nBurnSoundLen);
- }
-
- VezClose();
-
- return 0;
-}
-
-static INT32 DrvScan(INT32 nAction,INT32 *pnMin)
-{
- if (pnMin)
- {
- *pnMin = 0x029737;
- }
-
- struct BurnArea ba;
-
- if (nAction & ACB_MEMORY_RAM)
- {
- memset(&ba, 0, sizeof(ba));
- ba.Data = RamStart;
- ba.nLen = RamEnd-RamStart;
- ba.szName = "All Ram";
- BurnAcb(&ba);
-
- if (nAction & ACB_WRITE) {
- bRecalcPalette = 1;
-
- struct _m92_layer *ptr;
- for (INT32 i = 0; i < 3; i++) {
- ptr = m92_layers[i];
- ptr->scroll = (UINT16*)(DrvVidRAM + (0xf400 + 0x400 * i));
- }
-
- set_pf_info(0, pf_control[3][0]);
- set_pf_info(1, pf_control[3][2]);
- set_pf_info(2, pf_control[3][4]);
- }
- }
-
- if (nAction & ACB_DRIVER_DATA)
- {
- VezScan(nAction);
-
- iremga20_scan(0, nAction, pnMin);
- BurnYM2151Scan(nAction);
-
- SCAN_VAR(PalBank);
-
- SCAN_VAR(m92_raster_irq_position);
- SCAN_VAR(sprite_extent);
- SCAN_VAR(m92_sprite_list);
- SCAN_VAR(m92_sprite_buffer_busy);
- SCAN_VAR(m92_sprite_buffer_timer);
- SCAN_VAR(m92_irq_vectorbase);
-
- if (nAction & ACB_WRITE) {
- VezOpen(1);
- m92YM2151IRQHandler(0); // get fm sound going again on state load
- VezClose();
- }
-
- if (m92_kludge == 3) { // ppan
- MSM6295Scan(0, nAction);
-
- SCAN_VAR(msm6295_bank);
-
- INT32 temp = msm6295_bank;
- msm6295_bank = -1;
- m92WritePort(0x10, temp);
- }
- }
-
- return 0;
-}
-
-
-//-----------------------------------------------------------------------------------------------------------------------------
-
-
-// Hook (World)
-
-static struct BurnRomInfo hookRomDesc[] = {
- { "h-h0-d.3h", 0x040000, 0x40189ff6, 1 | BRF_PRG | BRF_ESS }, // 0 V33 Code
- { "h-l0-d.3h", 0x040000, 0x14567690, 1 | BRF_PRG | BRF_ESS }, // 1
- { "h-h1.rom", 0x020000, 0x264ba1f0, 1 | BRF_PRG | BRF_ESS }, // 2
- { "h-l1.rom", 0x020000, 0xf9913731, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "h-sh0.rom", 0x010000, 0x86a4e56e, 2 | BRF_PRG | BRF_ESS }, // 4 V30 Code
- { "h-sl0.rom", 0x010000, 0x10fd9676, 2 | BRF_PRG | BRF_ESS }, // 5
-
- { "hook-c0.rom", 0x040000, 0xdec63dcf, 3 | BRF_GRA }, // 6 Background Tiles
- { "hook-c1.rom", 0x040000, 0xe4eb0b92, 3 | BRF_GRA }, // 7
- { "hook-c2.rom", 0x040000, 0xa52b320b, 3 | BRF_GRA }, // 8
- { "hook-c3.rom", 0x040000, 0x7ef67731, 3 | BRF_GRA }, // 9
-
- { "hook-000.rom", 0x100000, 0xccceac30, 4 | BRF_GRA }, // 10 Sprites
- { "hook-010.rom", 0x100000, 0x8ac8da67, 4 | BRF_GRA }, // 11
- { "hook-020.rom", 0x100000, 0x8847af9a, 4 | BRF_GRA }, // 12
- { "hook-030.rom", 0x100000, 0x239e877e, 4 | BRF_GRA }, // 13
-
- { "hook-da.rom", 0x080000, 0x88cd0212, 5 | BRF_SND }, // 14 Irem GA20 Samples
-};
-
-STD_ROM_PICK(hook)
-STD_ROM_FN(hook)
-
-static INT32 hookRomLoad()
-{
- return RomLoad(0x080000, 0x040000, 0x100000, 0, 0);
-}
-
-static INT32 hookInit()
-{
- return DrvInit(hookRomLoad, hook_decryption_table, 1, 0x100000, 0x400000);
-}
-
-struct BurnDriver BurnDrvHook = {
- "hook", NULL, NULL, NULL, "1992",
- "Hook (World)\0", NULL, "Irem", "M92",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 4, HARDWARE_IREM_M92, GBF_SCRFIGHT, 0,
- NULL, hookRomInfo, hookRomName, NULL, NULL, p4CommonInputInfo, HookDIPInfo,
- hookInit, DrvExit, DrvFrame, DrvReDraw, DrvScan, &bRecalcPalette, 0x800,
- 320, 240, 4, 3
-};
-
-
-// Hook (US)
-
-static struct BurnRomInfo hookuRomDesc[] = {
- { "h-h0-c.3h", 0x040000, 0x84cc239e, 1 | BRF_PRG | BRF_ESS }, // 0 V33 Code
- { "h-l0-c.5h", 0x040000, 0x45e194fe, 1 | BRF_PRG | BRF_ESS }, // 1
- { "h-h1.rom", 0x020000, 0x264ba1f0, 1 | BRF_PRG | BRF_ESS }, // 2
- { "h-l1.rom", 0x020000, 0xf9913731, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "h-sh0.rom", 0x010000, 0x86a4e56e, 2 | BRF_PRG | BRF_ESS }, // 4 V30 Code
- { "h-sl0.rom", 0x010000, 0x10fd9676, 2 | BRF_PRG | BRF_ESS }, // 5
-
- { "hook-c0.rom", 0x040000, 0xdec63dcf, 3 | BRF_GRA }, // 6 Background Tiles
- { "hook-c1.rom", 0x040000, 0xe4eb0b92, 3 | BRF_GRA }, // 7
- { "hook-c2.rom", 0x040000, 0xa52b320b, 3 | BRF_GRA }, // 8
- { "hook-c3.rom", 0x040000, 0x7ef67731, 3 | BRF_GRA }, // 9
-
- { "hook-000.rom", 0x100000, 0xccceac30, 4 | BRF_GRA }, // 10 Sprites
- { "hook-010.rom", 0x100000, 0x8ac8da67, 4 | BRF_GRA }, // 11
- { "hook-020.rom", 0x100000, 0x8847af9a, 4 | BRF_GRA }, // 12
- { "hook-030.rom", 0x100000, 0x239e877e, 4 | BRF_GRA }, // 13
-
- { "hook-da.rom", 0x080000, 0x88cd0212, 5 | BRF_SND }, // 14 Irem GA20 Samples
-};
-
-STD_ROM_PICK(hooku)
-STD_ROM_FN(hooku)
-
-struct BurnDriver BurnDrvHooku = {
- "hooku", "hook", NULL, NULL, "1992",
- "Hook (US)\0", NULL, "Irem America", "M92",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 4, HARDWARE_IREM_M92, GBF_SCRFIGHT, 0,
- NULL, hookuRomInfo, hookuRomName, NULL, NULL, p4CommonInputInfo, HookDIPInfo,
- hookInit, DrvExit, DrvFrame, DrvReDraw, DrvScan, &bRecalcPalette, 0x800,
- 320, 240, 4, 3
-};
-
-
-// Hook (Japan)
-
-static struct BurnRomInfo hookjRomDesc[] = {
- { "h-h0-g.3h", 0x040000, 0x5964c886, 1 | BRF_PRG | BRF_ESS }, // 0 V33 Code
- { "h-l0-g.5h", 0x040000, 0x7f7433f2, 1 | BRF_PRG | BRF_ESS }, // 1
- { "h-h1.rom", 0x020000, 0x264ba1f0, 1 | BRF_PRG | BRF_ESS }, // 2
- { "h-l1.rom", 0x020000, 0xf9913731, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "h-sh0-a.3l", 0x010000, 0xbd3d1f61, 2 | BRF_PRG | BRF_ESS }, // 4 V30 Code
- { "h-sl0-a.3n", 0x010000, 0x76371def, 2 | BRF_PRG | BRF_ESS }, // 5
-
- { "hook-c0.rom", 0x040000, 0xdec63dcf, 3 | BRF_GRA }, // 6 Background Tiles
- { "hook-c1.rom", 0x040000, 0xe4eb0b92, 3 | BRF_GRA }, // 7
- { "hook-c2.rom", 0x040000, 0xa52b320b, 3 | BRF_GRA }, // 8
- { "hook-c3.rom", 0x040000, 0x7ef67731, 3 | BRF_GRA }, // 9
-
- { "hook-000.rom", 0x100000, 0xccceac30, 4 | BRF_GRA }, // 10 Sprites
- { "hook-010.rom", 0x100000, 0x8ac8da67, 4 | BRF_GRA }, // 11
- { "hook-020.rom", 0x100000, 0x8847af9a, 4 | BRF_GRA }, // 12
- { "hook-030.rom", 0x100000, 0x239e877e, 4 | BRF_GRA }, // 13
-
- { "hook-da.rom", 0x080000, 0x88cd0212, 5 | BRF_SND }, // 14 Irem GA20 Samples
-};
-
-STD_ROM_PICK(hookj)
-STD_ROM_FN(hookj)
-
-struct BurnDriver BurnDrvHookj = {
- "hookj", "hook", NULL, NULL, "1992",
- "Hook (Japan)\0", NULL, "Irem", "M92",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 4, HARDWARE_IREM_M92, GBF_SCRFIGHT, 0,
- NULL, hookjRomInfo, hookjRomName, NULL, NULL, p4CommonInputInfo, HookDIPInfo,
- hookInit, DrvExit, DrvFrame, DrvReDraw, DrvScan, &bRecalcPalette, 0x800,
- 320, 240, 4, 3
-};
-
-
-// Peter Pan (bootleg of Hook)
-
-static struct BurnRomInfo ppanRomDesc[] = {
- { "1.u6", 0x80000, 0xb135dd6e, 1 | BRF_PRG | BRF_ESS }, // 0 V33 Code
- { "2.u5", 0x80000, 0x7785289c, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "7.u114", 0x40000, 0xdec63dcf, 2 | BRF_PRG | BRF_ESS }, // 2 Background Tiles
- { "6.u115", 0x40000, 0xe4eb0b92, 2 | BRF_PRG | BRF_ESS }, // 3
- { "5.u116", 0x40000, 0xa52b320b, 2 | BRF_PRG | BRF_ESS }, // 4
- { "4.u117", 0x40000, 0x7ef67731, 2 | BRF_PRG | BRF_ESS }, // 5
-
- { "15.u106", 0x80000, 0xcdfc2f78, 3 | BRF_GRA }, // 6 Sprites
- { "14.u110", 0x80000, 0x87e767f0, 3 | BRF_GRA }, // 7
- { "13.u107", 0x80000, 0xe07f2abe, 3 | BRF_GRA }, // 8
- { "12.u111", 0x80000, 0xf446150e, 3 | BRF_GRA }, // 9
- { "11.u108", 0x80000, 0x5c114daa, 3 | BRF_GRA }, // 10
- { "10.u112", 0x80000, 0xfa11fa40, 3 | BRF_GRA }, // 11
- { "9.u109", 0x80000, 0x9d466b1a, 3 | BRF_GRA }, // 12
- { "8.u113", 0x80000, 0xd08a5f6b, 3 | BRF_GRA }, // 13
-
- { "3.u122", 0x80000, 0xd0d37028, 4 | BRF_GRA }, // 14 OKI M6295 Samples
-};
-
-STD_ROM_PICK(ppan)
-STD_ROM_FN(ppan)
-
-static INT32 ppanRomLoad()
-{
- if (BurnLoadRom(DrvV33ROM + 0x000001, 0, 2)) return 1;
- if (BurnLoadRom(DrvV33ROM + 0x000000, 1, 2)) return 1;
-
- UINT8 *tmp = (UINT8 *)BurnMalloc(0x080000);
- if (tmp == NULL) {
- return 1;
- }
-
- loadDecodeGfx01(tmp, 2, 0, 0x40000);
- loadDecodeGfx01(tmp, 3, 1, 0x40000);
- loadDecodeGfx01(tmp, 4, 2, 0x40000);
- loadDecodeGfx01(tmp, 5, 3, 0x40000);
-
- DrvGfxROM1 += 0x400000;
-
- loadDecodeGfx02(tmp, 7, 0, 0x80000);
- loadDecodeGfx02(tmp, 9, 1, 0x80000);
- loadDecodeGfx02(tmp, 11, 2, 0x80000);
- loadDecodeGfx02(tmp, 13, 3, 0x80000);
-
- DrvGfxROM1 -= 0x400000;
-
- loadDecodeGfx02(tmp, 6, 0, 0x80000);
- loadDecodeGfx02(tmp, 8, 1, 0x80000);
- loadDecodeGfx02(tmp, 10, 2, 0x80000);
- loadDecodeGfx02(tmp, 12, 3, 0x80000);
-
- if (BurnLoadRom(DrvSndROM + 0x100000, 14, 1)) return 1;
- memcpy (DrvSndROM, DrvSndROM + 0x100000, 0x40000);
-
- BurnFree (tmp);
-
- DrvSprBuf = DrvSprRAM; // no sprite buffer!!
-
- return 0;
-}
-
-static INT32 PpanInit()
-{
- m92_kludge = 3;
- nScreenOffsets[1] = 120; // ?
- return DrvInit(ppanRomLoad, NULL, 1, 0x100000, 0x400000);
-}
-
-struct BurnDriver BurnDrvPpan = {
- "ppan", "hook", NULL, NULL, "1992",
- "Peter Pan (bootleg of Hook)\0", NULL, "bootleg", "M92",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_IREM_M92, GBF_SCRFIGHT, 0,
- NULL, ppanRomInfo, ppanRomName, NULL, NULL, p4CommonInputInfo, HookDIPInfo,
- PpanInit, DrvExit, PpanFrame, DrvReDraw, DrvScan, &bRecalcPalette, 0x800,
- 320, 240, 4, 3
-};
-
-
-// In The Hunt (World)
-
-static struct BurnRomInfo inthuntRomDesc[] = {
- { "ith-h0-d.bin", 0x040000, 0x52f8e7a6, 1 | BRF_PRG | BRF_ESS }, // 0 V33 Code
- { "ith-l0-d.bin", 0x040000, 0x5db79eb7, 1 | BRF_PRG | BRF_ESS }, // 1
- { "ith-h1-b.bin", 0x020000, 0xfc2899df, 1 | BRF_PRG | BRF_ESS }, // 2
- { "ith-l1-b.bin", 0x020000, 0x955a605a, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "ith-sh0.rom", 0x010000, 0x209c8b7f, 2 | BRF_PRG | BRF_ESS }, // 4 V30 Code
- { "ith-sl0.rom", 0x010000, 0x18472d65, 2 | BRF_PRG | BRF_ESS }, // 5
-
- { "ith_ic26.rom", 0x080000, 0x4c1818cf, 3 | BRF_GRA }, // 6 Background Tiles
- { "ith_ic25.rom", 0x080000, 0x91145bae, 3 | BRF_GRA }, // 7
- { "ith_ic24.rom", 0x080000, 0xfc03fe3b, 3 | BRF_GRA }, // 8
- { "ith_ic23.rom", 0x080000, 0xee156a0a, 3 | BRF_GRA }, // 9
-
- { "ith_ic34.rom", 0x100000, 0xa019766e, 4 | BRF_GRA }, // 10 Sprites
- { "ith_ic35.rom", 0x100000, 0x3fca3073, 4 | BRF_GRA }, // 11
- { "ith_ic36.rom", 0x100000, 0x20d1b28b, 4 | BRF_GRA }, // 12
- { "ith_ic37.rom", 0x100000, 0x90b6fd4b, 4 | BRF_GRA }, // 13
-
- { "ith_ic9.rom", 0x080000, 0x318ee71a, 5 | BRF_SND }, // 14 Irem GA20 Samples
-};
-
-STD_ROM_PICK(inthunt)
-STD_ROM_FN(inthunt)
-
-static INT32 inthuntRomLoad()
-{
- return RomLoad(0x080000, 0x080000, 0x100000, 0, 0);
-}
-
-static INT32 inthuntInit()
-{
- return DrvInit(inthuntRomLoad, inthunt_decryption_table, 1, 0x200000, 0x400000);
-}
-
-struct BurnDriver BurnDrvInthunt = {
- "inthunt", NULL, NULL, NULL, "1993",
- "In The Hunt (World)\0", NULL, "Irem", "M92",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_IREM_M92, GBF_HORSHOOT, 0,
- NULL, inthuntRomInfo, inthuntRomName, NULL, NULL, p2CommonInputInfo, InthuntDIPInfo,
- inthuntInit, DrvExit, DrvFrame, DrvReDraw, DrvScan, &bRecalcPalette, 0x800,
- 320, 240, 4, 3
-};
-
-
-// In The Hunt (US)
-
-static struct BurnRomInfo inthuntuRomDesc[] = {
- { "ith-h0-c.bin", 0x040000, 0x563dcec0, 1 | BRF_PRG | BRF_ESS }, // 0 V33 Code
- { "ith-l0-c.bin", 0x040000, 0x1638c705, 1 | BRF_PRG | BRF_ESS }, // 1
- { "ith-h1-a.bin", 0x020000, 0x0253065f, 1 | BRF_PRG | BRF_ESS }, // 2
- { "ith-l1-a.bin", 0x020000, 0xa57d688d, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "ith-sh0.rom", 0x010000, 0x209c8b7f, 2 | BRF_PRG | BRF_ESS }, // 4 V30 Code
- { "ith-sl0.rom", 0x010000, 0x18472d65, 2 | BRF_PRG | BRF_ESS }, // 5
-
- { "ith_ic26.rom", 0x080000, 0x4c1818cf, 3 | BRF_GRA }, // 6 Background Tiles
- { "ith_ic25.rom", 0x080000, 0x91145bae, 3 | BRF_GRA }, // 7
- { "ith_ic24.rom", 0x080000, 0xfc03fe3b, 3 | BRF_GRA }, // 8
- { "ith_ic23.rom", 0x080000, 0xee156a0a, 3 | BRF_GRA }, // 9
-
- { "ith_ic34.rom", 0x100000, 0xa019766e, 4 | BRF_GRA }, // 10 Sprites
- { "ith_ic35.rom", 0x100000, 0x3fca3073, 4 | BRF_GRA }, // 11
- { "ith_ic36.rom", 0x100000, 0x20d1b28b, 4 | BRF_GRA }, // 12
- { "ith_ic37.rom", 0x100000, 0x90b6fd4b, 4 | BRF_GRA }, // 13
-
- { "ith_ic9.rom", 0x080000, 0x318ee71a, 5 | BRF_SND }, // 14 Irem GA20 Samples
-};
-
-STD_ROM_PICK(inthuntu)
-STD_ROM_FN(inthuntu)
-
-struct BurnDriver BurnDrvInthuntu = {
- "inthuntu", "inthunt", NULL, NULL, "1993",
- "In The Hunt (US)\0", NULL, "Irem America", "M92",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_IREM_M92, GBF_HORSHOOT, 0,
- NULL, inthuntuRomInfo, inthuntuRomName, NULL, NULL, p2CommonInputInfo, InthuntDIPInfo,
- inthuntInit, DrvExit, DrvFrame, DrvReDraw, DrvScan, &bRecalcPalette, 0x800,
- 320, 240, 4, 3
-};
-
-
-// Kaitei Daisensou (Japan)
-
-static struct BurnRomInfo kaiteidsRomDesc[] = {
- { "ith-h0j.bin", 0x040000, 0xdc1dec36, 1 | BRF_PRG | BRF_ESS }, // 0 V33 Code
- { "ith-l0j.bin", 0x040000, 0x8835d704, 1 | BRF_PRG | BRF_ESS }, // 1
- { "ith-h1j.bin", 0x020000, 0x5a7b212d, 1 | BRF_PRG | BRF_ESS }, // 2
- { "ith-l1j.bin", 0x020000, 0x4c084494, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "ith-sh0.rom", 0x010000, 0x209c8b7f, 2 | BRF_PRG | BRF_ESS }, // 4 V30 Code
- { "ith-sl0.rom", 0x010000, 0x18472d65, 2 | BRF_PRG | BRF_ESS }, // 5
-
- { "ith_ic26.rom", 0x080000, 0x4c1818cf, 3 | BRF_GRA }, // 6 Background Tiles
- { "ith_ic25.rom", 0x080000, 0x91145bae, 3 | BRF_GRA }, // 7
- { "ith_ic24.rom", 0x080000, 0xfc03fe3b, 3 | BRF_GRA }, // 8
- { "ith_ic23.rom", 0x080000, 0xee156a0a, 3 | BRF_GRA }, // 9
-
- { "ith_ic34.rom", 0x100000, 0xa019766e, 4 | BRF_GRA }, // 10 Sprites
- { "ith_ic35.rom", 0x100000, 0x3fca3073, 4 | BRF_GRA }, // 11
- { "ith_ic36.rom", 0x100000, 0x20d1b28b, 4 | BRF_GRA }, // 12
- { "ith_ic37.rom", 0x100000, 0x90b6fd4b, 4 | BRF_GRA }, // 13
-
- { "ith_ic9.rom", 0x080000, 0x318ee71a, 5 | BRF_SND }, // 14 Irem GA20 Samples
-};
-
-STD_ROM_PICK(kaiteids)
-STD_ROM_FN(kaiteids)
-
-struct BurnDriver BurnDrvKaiteids = {
- "kaiteids", "inthunt", NULL, NULL, "1993",
- "Kaitei Daisensou (Japan)\0", NULL, "Irem", "M92",
- L"Kaitei Daisensou (Japan)\0\u776D\u955E\u2759\u2662\u894E\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_IREM_M92, GBF_HORSHOOT, 0,
- NULL, kaiteidsRomInfo, kaiteidsRomName, NULL, NULL, p2CommonInputInfo, InthuntDIPInfo,
- inthuntInit, DrvExit, DrvFrame, DrvReDraw, DrvScan, &bRecalcPalette, 0x800,
- 320, 240, 4, 3
-};
-
-
-// R-Type Leo (World)
-
-static struct BurnRomInfo rtypeleoRomDesc[] = {
- { "rtl-h0-c.bin", 0x040000, 0x5fef7fa1, 1 | BRF_PRG | BRF_ESS }, // 0 V33 Code
- { "rtl-l0-c.bin", 0x040000, 0x8156456b, 1 | BRF_PRG | BRF_ESS }, // 1
- { "rtl-h1-d.bin", 0x020000, 0x352ff444, 1 | BRF_PRG | BRF_ESS }, // 2
- { "rtl-l1-d.bin", 0x020000, 0xfd34ea46, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "rtl-sh0a.bin", 0x010000, 0xe518b4e3, 2 | BRF_PRG | BRF_ESS }, // 4 V30 Code
- { "rtl-sl0a.bin", 0x010000, 0x896f0d36, 2 | BRF_PRG | BRF_ESS }, // 5
-
- { "rtl-c0.bin", 0x080000, 0xfb588d7c, 3 | BRF_GRA }, // 6 Background Tiles
- { "rtl-c1.bin", 0x080000, 0xe5541bff, 3 | BRF_GRA }, // 7
- { "rtl-c2.bin", 0x080000, 0xfaa9ae27, 3 | BRF_GRA }, // 8
- { "rtl-c3.bin", 0x080000, 0x3a2343f6, 3 | BRF_GRA }, // 9
-
- { "rtl-000.bin", 0x100000, 0x82a06870, 4 | BRF_GRA }, // 10 Sprites
- { "rtl-010.bin", 0x100000, 0x417e7a56, 4 | BRF_GRA }, // 11
- { "rtl-020.bin", 0x100000, 0xf9a3f3a1, 4 | BRF_GRA }, // 12
- { "rtl-030.bin", 0x100000, 0x03528d95, 4 | BRF_GRA }, // 13
-
- { "rtl-da.bin", 0x080000, 0xdbebd1ff, 5 | BRF_SND }, // 14 Irem GA20 Samples
-};
-
-STD_ROM_PICK(rtypeleo)
-STD_ROM_FN(rtypeleo)
-
-static INT32 rtypeleoRomLoad()
-{
- return RomLoad(0x080000, 0x080000, 0x100000, 0, 0);
-}
-
-static INT32 rtypeleoInit()
-{
- return DrvInit(rtypeleoRomLoad, rtypeleo_decryption_table, 1, 0x200000, 0x400000);
-}
-
-struct BurnDriver BurnDrvRtypeleo = {
- "rtypeleo", NULL, NULL, NULL, "1992",
- "R-Type Leo (World)\0", NULL, "Irem", "M92",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_IREM_M92, GBF_HORSHOOT, 0,
- NULL, rtypeleoRomInfo, rtypeleoRomName, NULL, NULL, p2CommonInputInfo, RtypeleoDIPInfo,
- rtypeleoInit, DrvExit, DrvFrame, DrvReDraw, DrvScan, &bRecalcPalette, 0x800,
- 320, 240, 4, 3
-};
-
-
-// R-Type Leo (Japan)
-
-static struct BurnRomInfo rtypelejRomDesc[] = {
- { "rtl-h0-d.bin", 0x040000, 0x3dbac89f, 1 | BRF_PRG | BRF_ESS }, // 0 V33 Code
- { "rtl-l0-d.bin", 0x040000, 0xf85a2537, 1 | BRF_PRG | BRF_ESS }, // 1
- { "rtl-h1-d.bin", 0x020000, 0x352ff444, 1 | BRF_PRG | BRF_ESS }, // 2
- { "rtl-l1-d.bin", 0x020000, 0xfd34ea46, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "rtl-sh0a.bin", 0x010000, 0xe518b4e3, 2 | BRF_PRG | BRF_ESS }, // 4 V30 Code
- { "rtl-sl0a.bin", 0x010000, 0x896f0d36, 2 | BRF_PRG | BRF_ESS }, // 5
-
- { "rtl-c0.bin", 0x080000, 0xfb588d7c, 3 | BRF_GRA }, // 6 Background Tiles
- { "rtl-c1.bin", 0x080000, 0xe5541bff, 3 | BRF_GRA }, // 7
- { "rtl-c2.bin", 0x080000, 0xfaa9ae27, 3 | BRF_GRA }, // 8
- { "rtl-c3.bin", 0x080000, 0x3a2343f6, 3 | BRF_GRA }, // 9
-
- { "rtl-000.bin", 0x100000, 0x82a06870, 4 | BRF_GRA }, // 10 Sprites
- { "rtl-010.bin", 0x100000, 0x417e7a56, 4 | BRF_GRA }, // 11
- { "rtl-020.bin", 0x100000, 0xf9a3f3a1, 4 | BRF_GRA }, // 12
- { "rtl-030.bin", 0x100000, 0x03528d95, 4 | BRF_GRA }, // 13
-
- { "rtl-da.bin", 0x080000, 0xdbebd1ff, 5 | BRF_SND }, // 14 Irem GA20 Samples
-};
-
-STD_ROM_PICK(rtypelej)
-STD_ROM_FN(rtypelej)
-
-struct BurnDriver BurnDrvRtypelej = {
- "rtypeleoj", "rtypeleo", NULL, NULL, "1992",
- "R-Type Leo (Japan)\0", NULL, "Irem", "M92",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_IREM_M92, GBF_HORSHOOT, 0,
- NULL, rtypelejRomInfo, rtypelejRomName, NULL, NULL, p2CommonInputInfo, RtypeleoDIPInfo,
- rtypeleoInit, DrvExit, DrvFrame, DrvReDraw, DrvScan, &bRecalcPalette, 0x800,
- 320, 240, 4, 3
-};
-
-
-// Blade Master (World)
-
-static struct BurnRomInfo bmasterRomDesc[] = {
- { "bm_d-h0-b.5m", 0x040000, 0x49b257c7, 1 | BRF_PRG | BRF_ESS }, // 0 V33 Code
- { "bm_d-l0-b.5f", 0x040000, 0xa873523e, 1 | BRF_PRG | BRF_ESS }, // 1
- { "bm_d-h1-b.5l", 0x010000, 0x082b7158, 1 | BRF_PRG | BRF_ESS }, // 2
- { "bm_d-l1-b.5j", 0x010000, 0x6ff0c04e, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "bm_d-sh0.rom", 0x010000, 0x9f7c075b, 2 | BRF_PRG | BRF_ESS }, // 4 V30 Code
- { "bm_d-sl0.rom", 0x010000, 0x1fa87c89, 2 | BRF_PRG | BRF_ESS }, // 5
-
- { "bm_c0.rom", 0x040000, 0x2cc966b8, 3 | BRF_GRA }, // 6 Background Tiles
- { "bm_c1.rom", 0x040000, 0x46df773e, 3 | BRF_GRA }, // 7
- { "bm_c2.rom", 0x040000, 0x05b867bd, 3 | BRF_GRA }, // 8
- { "bm_c3.rom", 0x040000, 0x0a2227a4, 3 | BRF_GRA }, // 9
-
- { "bm_000.rom", 0x080000, 0x339fc9f3, 4 | BRF_GRA }, // 10 Sprites
- { "bm_010.rom", 0x080000, 0x6a14377d, 4 | BRF_GRA }, // 11
- { "bm_020.rom", 0x080000, 0x31532198, 4 | BRF_GRA }, // 12
- { "bm_030.rom", 0x080000, 0xd1a041d3, 4 | BRF_GRA }, // 13
-
- { "bm_da.rom", 0x080000, 0x62ce5798, 5 | BRF_SND }, // 14 Irem GA20 Samples
-};
-
-STD_ROM_PICK(bmaster)
-STD_ROM_FN(bmaster)
-
-static INT32 bmasterRomLoad()
-{
- return RomLoad(0x080000, 0x040000, 0x080000, 0, 0);
-}
-
-static INT32 bmasterInit()
-{
- return DrvInit(bmasterRomLoad, bomberman_decryption_table, 1, 0x100000, 0x200000);
-}
-
-struct BurnDriver BurnDrvBmaster = {
- "bmaster", NULL, NULL, NULL, "1991",
- "Blade Master (World)\0", NULL, "Irem", "M92",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_IREM_M92, GBF_SCRFIGHT, 0,
- NULL, bmasterRomInfo, bmasterRomName, NULL, NULL, p2CommonInputInfo, BmasterDIPInfo,
- bmasterInit, DrvExit, DrvFrame, DrvReDraw, DrvScan, &bRecalcPalette, 0x800,
- 320, 240, 4, 3
-};
-
-
-// Cross Blades! (Japan)
-
-static struct BurnRomInfo crossbldRomDesc[] = {
- { "bm_d-h0.3h", 0x040000, 0xa28a5821, 1 | BRF_PRG | BRF_ESS }, // 0 V33 Code
- { "bm_d-l0.5h", 0x040000, 0xa504f1a0, 1 | BRF_PRG | BRF_ESS }, // 1
- { "bm_d-h1.3e", 0x010000, 0x18da6c47, 1 | BRF_PRG | BRF_ESS }, // 2
- { "bm_d-l1.5e", 0x010000, 0xa65c1b42, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "bm_d-sh0.rom", 0x010000, 0x9f7c075b, 2 | BRF_PRG | BRF_ESS }, // 4 V30 Code
- { "bm_d-sl0.rom", 0x010000, 0x1fa87c89, 2 | BRF_PRG | BRF_ESS }, // 5
-
- { "bm_c0.rom", 0x040000, 0x2cc966b8, 3 | BRF_GRA }, // 6 Background Tiles
- { "bm_c1.rom", 0x040000, 0x46df773e, 3 | BRF_GRA }, // 7
- { "bm_c2.rom", 0x040000, 0x05b867bd, 3 | BRF_GRA }, // 8
- { "bm_c3.rom", 0x040000, 0x0a2227a4, 3 | BRF_GRA }, // 9
-
- { "bm_000.rom", 0x080000, 0x339fc9f3, 4 | BRF_GRA }, // 10 Sprites
- { "bm_010.rom", 0x080000, 0x6a14377d, 4 | BRF_GRA }, // 11
- { "bm_020.rom", 0x080000, 0x31532198, 4 | BRF_GRA }, // 12
- { "bm_030.rom", 0x080000, 0xd1a041d3, 4 | BRF_GRA }, // 13
-
- { "bm_da.rom", 0x080000, 0x62ce5798, 5 | BRF_SND }, // 14 Irem GA20 Samples
-};
-
-STD_ROM_PICK(crossbld)
-STD_ROM_FN(crossbld)
-
-struct BurnDriver BurnDrvCrossbld = {
- "crossbld", "bmaster", NULL, NULL, "1991",
- "Cross Blades! (Japan)\0", NULL, "Irem", "M92",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_IREM_M92, GBF_SCRFIGHT, 0,
- NULL, crossbldRomInfo, crossbldRomName, NULL, NULL, p2CommonInputInfo, BmasterDIPInfo,
- bmasterInit, DrvExit, DrvFrame, DrvReDraw, DrvScan, &bRecalcPalette, 0x800,
- 320, 240, 4, 3
-};
-
-
-// Mystic Riders (World)
-
-static struct BurnRomInfo mysticriRomDesc[] = {
- { "mr-h0-b.bin", 0x040000, 0xd529f887, 1 | BRF_PRG | BRF_ESS }, // 0 V33 Code
- { "mr-l0-b.bin", 0x040000, 0xa457ab44, 1 | BRF_PRG | BRF_ESS }, // 1
- { "mr-h1-b.bin", 0x010000, 0xe17649b9, 1 | BRF_PRG | BRF_ESS }, // 2
- { "mr-l1-b.bin", 0x010000, 0xa87c62b4, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "mr-sh0.bin", 0x010000, 0x50d335e4, 2 | BRF_PRG | BRF_ESS }, // 4 V30 Code
- { "mr-sl0.bin", 0x010000, 0x0fa32721, 2 | BRF_PRG | BRF_ESS }, // 5
-
- { "mr-c0.bin", 0x040000, 0x872a8fad, 3 | BRF_GRA }, // 6 Background Tiles
- { "mr-c1.bin", 0x040000, 0xd2ffb27a, 3 | BRF_GRA }, // 7
- { "mr-c2.bin", 0x040000, 0x62bff287, 3 | BRF_GRA }, // 8
- { "mr-c3.bin", 0x040000, 0xd0da62ab, 3 | BRF_GRA }, // 9
-
- { "mr-o00.bin", 0x080000, 0xa0f9ce16, 4 | BRF_GRA }, // 10 Sprites
- { "mr-o10.bin", 0x080000, 0x4e70a9e9, 4 | BRF_GRA }, // 11
- { "mr-o20.bin", 0x080000, 0xb9c468fc, 4 | BRF_GRA }, // 12
- { "mr-o30.bin", 0x080000, 0xcc32433a, 4 | BRF_GRA }, // 13
-
- { "mr-da.bin", 0x040000, 0x1a11fc59, 5 | BRF_SND }, // 14 Irem GA20 Samples
-};
-
-STD_ROM_PICK(mysticri)
-STD_ROM_FN(mysticri)
-
-static INT32 mysticriInit()
-{
- return DrvInit(bmasterRomLoad, mysticri_decryption_table, 1, 0x100000, 0x200000);
-}
-
-struct BurnDriver BurnDrvMysticri = {
- "mysticri", NULL, NULL, NULL, "1992",
- "Mystic Riders (World)\0", NULL, "Irem", "M92",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_IREM_M92, GBF_HORSHOOT, 0,
- NULL, mysticriRomInfo, mysticriRomName, NULL, NULL, p2CommonInputInfo, MysticriDIPInfo,
- mysticriInit, DrvExit, DrvFrame, DrvReDraw, DrvScan, &bRecalcPalette, 0x800,
- 320, 240, 4, 3
-};
-
-
-// Gun Hohki (Japan)
-
-static struct BurnRomInfo gunhohkiRomDesc[] = {
- { "mr-h0.bin", 0x040000, 0x83352270, 1 | BRF_PRG | BRF_ESS }, // 0 V33 Code
- { "mr-l0.bin", 0x040000, 0x9db308ae, 1 | BRF_PRG | BRF_ESS }, // 1
- { "mr-h1.bin", 0x010000, 0xc9532b60, 1 | BRF_PRG | BRF_ESS }, // 2
- { "mr-l1.bin", 0x010000, 0x6349b520, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "mr-sh0.bin", 0x010000, 0x50d335e4, 2 | BRF_PRG | BRF_ESS }, // 4 V30 Code
- { "mr-sl0.bin", 0x010000, 0x0fa32721, 2 | BRF_PRG | BRF_ESS }, // 5
-
- { "mr-c0.bin", 0x040000, 0x872a8fad, 3 | BRF_GRA }, // 6 Background Tiles
- { "mr-c1.bin", 0x040000, 0xd2ffb27a, 3 | BRF_GRA }, // 7
- { "mr-c2.bin", 0x040000, 0x62bff287, 3 | BRF_GRA }, // 8
- { "mr-c3.bin", 0x040000, 0xd0da62ab, 3 | BRF_GRA }, // 9
-
- { "mr-o00.bin", 0x080000, 0xa0f9ce16, 4 | BRF_GRA }, // 10 Sprites
- { "mr-o10.bin", 0x080000, 0x4e70a9e9, 4 | BRF_GRA }, // 11
- { "mr-o20.bin", 0x080000, 0xb9c468fc, 4 | BRF_GRA }, // 12
- { "mr-o30.bin", 0x080000, 0xcc32433a, 4 | BRF_GRA }, // 13
-
- { "mr-da.bin", 0x040000, 0x1a11fc59, 5 | BRF_SND }, // 14 Irem GA20 Samples
-};
-
-STD_ROM_PICK(gunhohki)
-STD_ROM_FN(gunhohki)
-
-struct BurnDriver BurnDrvGunhohki = {
- "gunhohki", "mysticri", NULL, NULL, "1992",
- "Gun Hohki (Japan)\0", NULL, "Irem", "M92",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_IREM_M92, GBF_HORSHOOT, 0,
- NULL, gunhohkiRomInfo, gunhohkiRomName, NULL, NULL, p2CommonInputInfo, MysticriDIPInfo,
- mysticriInit, DrvExit, DrvFrame, DrvReDraw, DrvScan, &bRecalcPalette, 0x800,
- 320, 240, 4, 3
-};
-
-
-// Mystic Riders (bootleg?)
-
-static struct BurnRomInfo mysticribRomDesc[] = {
- { "h0", 0x040000, 0xe38c1f56, 1 | BRF_PRG | BRF_ESS }, // 0 V33 Code
- { "l0", 0x040000, 0x77846e48, 1 | BRF_PRG | BRF_ESS }, // 1
- { "h1", 0x010000, 0x4dcb085b, 1 | BRF_PRG | BRF_ESS }, // 2
- { "l1", 0x010000, 0x88df4f70, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "sh0", 0x010000, 0xfc7221ee, 2 | BRF_PRG | BRF_ESS }, // 4 V30 Code
- { "sl0", 0x010000, 0x65c809e6, 2 | BRF_PRG | BRF_ESS }, // 5
-
- { "mr-c0.bin", 0x040000, 0x872a8fad, 3 | BRF_GRA }, // 6 Background Tiles
- { "mr-c1.bin", 0x040000, 0xd2ffb27a, 3 | BRF_GRA }, // 7
- { "mr-c2.bin", 0x040000, 0x62bff287, 3 | BRF_GRA }, // 8
- { "mr-c3.bin", 0x040000, 0xd0da62ab, 3 | BRF_GRA }, // 9
-
- { "mr-o00.bin", 0x080000, 0xa0f9ce16, 4 | BRF_GRA }, // 10 Sprites
- { "mr-o10.bin", 0x080000, 0x4e70a9e9, 4 | BRF_GRA }, // 11
- { "mr-o20.bin", 0x080000, 0xb9c468fc, 4 | BRF_GRA }, // 12
- { "mr-o30.bin", 0x080000, 0xcc32433a, 4 | BRF_GRA }, // 13
-
- { "mr-da.bin", 0x040000, 0x1a11fc59, 5 | BRF_SND }, // 14 Irem GA20 Samples
-};
-
-STD_ROM_PICK(mysticrib)
-STD_ROM_FN(mysticrib)
-
-struct BurnDriver BurnDrvMysticrib = {
- "mysticrib", "mysticri", NULL, NULL, "1992",
- "Mystic Riders (bootleg?)\0", NULL, "Irem", "M92",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_IREM_M92, GBF_HORSHOOT, 0,
- NULL, mysticribRomInfo, mysticribRomName, NULL, NULL, p2CommonInputInfo, MysticriDIPInfo,
- mysticriInit, DrvExit, DrvFrame, DrvReDraw, DrvScan, &bRecalcPalette, 0x800,
- 320, 240, 4, 3
-};
-
-
-// Gunforce - Battle Fire Engulfed Terror Island (World)
-
-static struct BurnRomInfo gunforceRomDesc[] = {
- { "gf_h0-c.5m", 0x020000, 0xc09bb634, 1 | BRF_PRG | BRF_ESS }, // 0 V33 Code
- { "gf_l0-c.5f", 0x020000, 0x1bef6f7d, 1 | BRF_PRG | BRF_ESS }, // 1
- { "gf_h1-c.5l", 0x020000, 0xc84188b7, 1 | BRF_PRG | BRF_ESS }, // 2
- { "gf_l1-c.5j", 0x020000, 0xb189f72a, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "gf_sh0.rom", 0x010000, 0x3f8f16e0, 2 | BRF_PRG | BRF_ESS }, // 4 V30 Code
- { "gf_sl0.rom", 0x010000, 0xdb0b13a3, 2 | BRF_PRG | BRF_ESS }, // 5
-
- { "gf_c0.rom", 0x040000, 0xb3b74979, 3 | BRF_GRA }, // 6 Background Tiles
- { "gf_c1.rom", 0x040000, 0xf5c8590a, 3 | BRF_GRA }, // 7
- { "gf_c2.rom", 0x040000, 0x30f9fb64, 3 | BRF_GRA }, // 8
- { "gf_c3.rom", 0x040000, 0x87b3e621, 3 | BRF_GRA }, // 9
-
- { "gf_000.rom", 0x040000, 0x209e8e8d, 4 | BRF_GRA }, // 10 Sprites
- { "gf_010.rom", 0x040000, 0x6e6e7808, 4 | BRF_GRA }, // 11
- { "gf_020.rom", 0x040000, 0x6f5c3cb0, 4 | BRF_GRA }, // 12
- { "gf_030.rom", 0x040000, 0x18978a9f, 4 | BRF_GRA }, // 13
-
- { "gf-da.rom", 0x020000, 0x933ba935, 5 | BRF_SND }, // 14 Irem GA20 Samples
-};
-
-STD_ROM_PICK(gunforce)
-STD_ROM_FN(gunforce)
-
-static INT32 gunforceRomLoad()
-{
- return RomLoad(0x040000, 0x040000, 0x040000, 0, 0);
-}
-
-static INT32 gunforceInit()
-{
- return DrvInit(gunforceRomLoad, gunforce_decryption_table, 1, 0x100000, 0x100000);
-}
-
-struct BurnDriver BurnDrvGunforce = {
- "gunforce", NULL, NULL, NULL, "1991",
- "Gunforce - Battle Fire Engulfed Terror Island (World)\0", NULL, "Irem", "M92",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_IREM_M92, GBF_PLATFORM, 0,
- NULL, gunforceRomInfo, gunforceRomName, NULL, NULL, p2CommonInputInfo, GunforceDIPInfo,
- gunforceInit, DrvExit, DrvFrame, DrvReDraw, DrvScan, &bRecalcPalette, 0x800,
- 320, 240, 4, 3
-};
-
-
-// Gunforce - Battle Fire Engulfed Terror Island (Japan)
-
-static struct BurnRomInfo gunforcejRomDesc[] = {
- { "gfb_h0-e.5m", 0x020000, 0x43c36e0f, 1 | BRF_PRG | BRF_ESS }, // 0 V33 Code
- { "gfb_l0-e.5f", 0x020000, 0x24a558d8, 1 | BRF_PRG | BRF_ESS }, // 1
- { "gfb_h1-e.5l", 0x020000, 0xd9744f5d, 1 | BRF_PRG | BRF_ESS }, // 2
- { "gfb_l1-e.5j", 0x020000, 0xa0f7b61b, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "gf_sh0.rom", 0x010000, 0x3f8f16e0, 2 | BRF_PRG | BRF_ESS }, // 4 V30 Code
- { "gf_sl0.rom", 0x010000, 0xdb0b13a3, 2 | BRF_PRG | BRF_ESS }, // 5
-
- { "gf_c0.rom", 0x040000, 0xb3b74979, 3 | BRF_GRA }, // 6 Background Tiles
- { "gf_c1.rom", 0x040000, 0xf5c8590a, 3 | BRF_GRA }, // 7
- { "gf_c2.rom", 0x040000, 0x30f9fb64, 3 | BRF_GRA }, // 8
- { "gf_c3.rom", 0x040000, 0x87b3e621, 3 | BRF_GRA }, // 9
-
- { "gf_000.rom", 0x040000, 0x209e8e8d, 4 | BRF_GRA }, // 10 Sprites
- { "gf_010.rom", 0x040000, 0x6e6e7808, 4 | BRF_GRA }, // 11
- { "gf_020.rom", 0x040000, 0x6f5c3cb0, 4 | BRF_GRA }, // 12
- { "gf_030.rom", 0x040000, 0x18978a9f, 4 | BRF_GRA }, // 13
-
- { "gf-da.rom", 0x020000, 0x933ba935, 5 | BRF_SND }, // 14 Irem GA20 Samples
-};
-
-STD_ROM_PICK(gunforcej)
-STD_ROM_FN(gunforcej)
-
-struct BurnDriver BurnDrvGunforcej = {
- "gunforcej", "gunforce", NULL, NULL, "1991",
- "Gunforce - Battle Fire Engulfed Terror Island (Japan)\0", NULL, "Irem", "M92",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_IREM_M92, GBF_PLATFORM, 0,
- NULL, gunforcejRomInfo, gunforcejRomName, NULL, NULL, p2CommonInputInfo, GunforceDIPInfo,
- gunforceInit, DrvExit, DrvFrame, DrvReDraw, DrvScan, &bRecalcPalette, 0x800,
- 320, 240, 4, 3
-};
-
-
-// Gunforce - Battle Fire Engulfed Terror Island (US)
-
-static struct BurnRomInfo gunforceuRomDesc[] = {
- { "gf_h0-d.5m", 0x020000, 0xa6db7b5c, 1 | BRF_PRG | BRF_ESS }, // 0 V33 Code
- { "gf_l0-d.5f", 0x020000, 0x82cf55f6, 1 | BRF_PRG | BRF_ESS }, // 1
- { "gf_h1-d.5l", 0x020000, 0x08a3736c, 1 | BRF_PRG | BRF_ESS }, // 2
- { "gf_l1-d.5j", 0x020000, 0x435f524f, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "gf_sh0.rom", 0x010000, 0x3f8f16e0, 2 | BRF_PRG | BRF_ESS }, // 4 V30 Code
- { "gf_sl0.rom", 0x010000, 0xdb0b13a3, 2 | BRF_PRG | BRF_ESS }, // 5
-
- { "gf_c0.rom", 0x040000, 0xb3b74979, 3 | BRF_GRA }, // 6 Background Tiles
- { "gf_c1.rom", 0x040000, 0xf5c8590a, 3 | BRF_GRA }, // 7
- { "gf_c2.rom", 0x040000, 0x30f9fb64, 3 | BRF_GRA }, // 8
- { "gf_c3.rom", 0x040000, 0x87b3e621, 3 | BRF_GRA }, // 9
-
- { "gf_000.rom", 0x040000, 0x209e8e8d, 4 | BRF_GRA }, // 10 Sprites
- { "gf_010.rom", 0x040000, 0x6e6e7808, 4 | BRF_GRA }, // 11
- { "gf_020.rom", 0x040000, 0x6f5c3cb0, 4 | BRF_GRA }, // 12
- { "gf_030.rom", 0x040000, 0x18978a9f, 4 | BRF_GRA }, // 13
-
- { "gf-da.rom", 0x020000, 0x933ba935, 5 | BRF_SND }, // 14 Irem GA20 Samples
-};
-
-STD_ROM_PICK(gunforceu)
-STD_ROM_FN(gunforceu)
-
-struct BurnDriver BurnDrvGunforceu = {
- "gunforceu", "gunforce", NULL, NULL, "1991",
- "Gunforce - Battle Fire Engulfed Terror Island (US)\0", NULL, "Irem America", "M92",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_IREM_M92, GBF_PLATFORM, 0,
- NULL, gunforceuRomInfo, gunforceuRomName, NULL, NULL, p2CommonInputInfo, GunforceDIPInfo,
- gunforceInit, DrvExit, DrvFrame, DrvReDraw, DrvScan, &bRecalcPalette, 0x800,
- 320, 240, 4, 3
-};
-
-
-// Undercover Cops (World)
-
-static struct BurnRomInfo uccopsRomDesc[] = {
- { "uc_h0.rom", 0x040000, 0x240aa5f7, 1 | BRF_PRG | BRF_ESS }, // 0 V33 Code
- { "uc_l0.rom", 0x040000, 0xdf9a4826, 1 | BRF_PRG | BRF_ESS }, // 1
- { "uc_h1.rom", 0x020000, 0x8d29bcd6, 1 | BRF_PRG | BRF_ESS }, // 2
- { "uc_l1.rom", 0x020000, 0xa8a402d8, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "uc_sh0.rom", 0x010000, 0xdf90b198, 2 | BRF_PRG | BRF_ESS }, // 4 V30 Code
- { "uc_sl0.rom", 0x010000, 0x96c11aac, 2 | BRF_PRG | BRF_ESS }, // 5
-
- { "uc_w38m.rom", 0x080000, 0x130a40e5, 3 | BRF_GRA }, // 6 Background Tiles
- { "uc_w39m.rom", 0x080000, 0xe42ca144, 3 | BRF_GRA }, // 7
- { "uc_w40m.rom", 0x080000, 0xc2961648, 3 | BRF_GRA }, // 8
- { "uc_w41m.rom", 0x080000, 0xf5334b80, 3 | BRF_GRA }, // 9
-
- { "uc_k16m.rom", 0x100000, 0x4a225f09, 4 | BRF_GRA }, // 10 Sprites
- { "uc_k17m.rom", 0x100000, 0xe4ed9a54, 4 | BRF_GRA }, // 11
- { "uc_k18m.rom", 0x100000, 0xa626eb12, 4 | BRF_GRA }, // 12
- { "uc_k19m.rom", 0x100000, 0x5df46549, 4 | BRF_GRA }, // 13
-
- { "uc_w42.rom", 0x080000, 0xd17d3fd6, 5 | BRF_SND }, // 14 Irem GA20 Samples
-};
-
-STD_ROM_PICK(uccops)
-STD_ROM_FN(uccops)
-
-static INT32 uccopsRomLoad()
-{
- return RomLoad(0x080000, 0x080000, 0x100000, 0, 0);
-}
-
-static INT32 uccopsInit()
-{
- return DrvInit(uccopsRomLoad, dynablaster_decryption_table, 1, 0x200000, 0x400000);
-}
-
-struct BurnDriver BurnDrvUccops = {
- "uccops", NULL, NULL, NULL, "1992",
- "Undercover Cops (World)\0", NULL, "Irem", "M92",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 3, HARDWARE_IREM_M92, GBF_SCRFIGHT, 0,
- NULL, uccopsRomInfo, uccopsRomName, NULL, NULL, p3CommonInputInfo, UccopsDIPInfo,
- uccopsInit, DrvExit, DrvFrame, DrvReDraw, DrvScan, &bRecalcPalette, 0x800,
- 320, 240, 4, 3
-};
-
-
-// Undercover Cops (US)
-
-static struct BurnRomInfo uccopsuRomDesc[] = {
- { "uc_h0.rom", 0x040000, 0x240aa5f7, 1 | BRF_PRG | BRF_ESS }, // 0 V33 Code
- { "uc_l0.rom", 0x040000, 0xdf9a4826, 1 | BRF_PRG | BRF_ESS }, // 1
- { "uc_h1-g.rom", 0x020000, 0x6b8ca2de, 1 | BRF_PRG | BRF_ESS }, // 2
- { "uc_l1-g.rom", 0x020000, 0x2bdec7dd, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "uc_sh0.rom", 0x010000, 0xdf90b198, 2 | BRF_PRG | BRF_ESS }, // 4 V30 Code
- { "uc_sl0.rom", 0x010000, 0x96c11aac, 2 | BRF_PRG | BRF_ESS }, // 5
-
- { "uc_w38m.rom", 0x080000, 0x130a40e5, 3 | BRF_GRA }, // 6 Background Tiles
- { "uc_w39m.rom", 0x080000, 0xe42ca144, 3 | BRF_GRA }, // 7
- { "uc_w40m.rom", 0x080000, 0xc2961648, 3 | BRF_GRA }, // 8
- { "uc_w41m.rom", 0x080000, 0xf5334b80, 3 | BRF_GRA }, // 9
-
- { "uc_k16m.rom", 0x100000, 0x4a225f09, 4 | BRF_GRA }, // 10 Sprites
- { "uc_k17m.rom", 0x100000, 0xe4ed9a54, 4 | BRF_GRA }, // 11
- { "uc_k18m.rom", 0x100000, 0xa626eb12, 4 | BRF_GRA }, // 12
- { "uc_k19m.rom", 0x100000, 0x5df46549, 4 | BRF_GRA }, // 13
-
- { "uc_w42.rom", 0x080000, 0xd17d3fd6, 5 | BRF_SND }, // 14 Irem GA20 Samples
-};
-
-STD_ROM_PICK(uccopsu)
-STD_ROM_FN(uccopsu)
-
-struct BurnDriver BurnDrvUccopsu = {
- "uccopsu", "uccops", NULL, NULL, "1992",
- "Undercover Cops (US)\0", NULL, "Irem", "M92",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 3, HARDWARE_IREM_M92, GBF_SCRFIGHT, 0,
- NULL, uccopsuRomInfo, uccopsuRomName, NULL, NULL, p3CommonInputInfo, UccopsDIPInfo,
- uccopsInit, DrvExit, DrvFrame, DrvReDraw, DrvScan, &bRecalcPalette, 0x800,
- 320, 240, 4, 3
-};
-
-
-// Undercover Cops (Alpha Renewal Version)
-
-static struct BurnRomInfo uccopsarRomDesc[] = {
- { "uc_h0_a.ic28", 0x040000, 0x9e17cada, 1 | BRF_PRG | BRF_ESS }, // 0 V33 Code
- { "uc_l0_a.ic39", 0x040000, 0x4a4e3208, 1 | BRF_PRG | BRF_ESS }, // 1
- { "uc_h1.ic27", 0x020000, 0x79d79742, 1 | BRF_PRG | BRF_ESS }, // 2
- { "uc_l1.ic38", 0x020000, 0x37211581, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "uc_sh0.ic30", 0x010000, 0xf0ca1b03, 2 | BRF_PRG | BRF_ESS }, // 4 V30 Code
- { "uc_sl0.ic31", 0x010000, 0xd1661723, 2 | BRF_PRG | BRF_ESS }, // 5
-
- { "uc_c0.ic26", 0x080000, 0x6a419a36, 3 | BRF_GRA }, // 6 Background Tiles
- { "uc_c1.ic25", 0x080000, 0xd703ecc7, 3 | BRF_GRA }, // 7
- { "uc_c2.ic24", 0x080000, 0x96397ac6, 3 | BRF_GRA }, // 8
- { "uc_c3.ic23", 0x080000, 0x5d07d10d, 3 | BRF_GRA }, // 9
-
- { "uc_030.ic37", 0x100000, 0x97f7775e, 4 | BRF_GRA }, // 10 Sprites
- { "uc_020.ic36", 0x100000, 0x5e0b1d65, 4 | BRF_GRA }, // 11
- { "uc_010.ic35", 0x100000, 0xbdc224b3, 4 | BRF_GRA }, // 12
- { "uc_000.ic34", 0x100000, 0x7526daec, 4 | BRF_GRA }, // 13
-
- { "uc_da.bin", 0x080000, 0x0b2855e9, 5 | BRF_SND }, // 14 Irem GA20 Samples
-};
-
-STD_ROM_PICK(uccopsar)
-STD_ROM_FN(uccopsar)
-
-struct BurnDriver BurnDrvUccopsar = {
- "uccopsar", "uccops", NULL, NULL, "1992",
- "Undercover Cops (Alpha Renewal Version)\0", NULL, "Irem", "M92",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 3, HARDWARE_IREM_M92, GBF_SCRFIGHT, 0,
- NULL, uccopsarRomInfo, uccopsarRomName, NULL, NULL, p3CommonInputInfo, UccopsDIPInfo,
- uccopsInit, DrvExit, DrvFrame, DrvReDraw, DrvScan, &bRecalcPalette, 0x800,
- 320, 240, 4, 3
-};
-
-
-// Undercover Cops (Japan)
-
-static struct BurnRomInfo uccopsjRomDesc[] = {
- { "uc_h0_a.ic28", 0x040000, 0x9e17cada, 1 | BRF_PRG | BRF_ESS }, // 0 V33 Code
- { "uc_l0_a.ic39", 0x040000, 0x4a4e3208, 1 | BRF_PRG | BRF_ESS }, // 1
- { "uc_h1_a.ic27", 0x020000, 0x83f78dea, 1 | BRF_PRG | BRF_ESS }, // 2
- { "uc_l1_a.ic38", 0x020000, 0x19628280, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "uc_sh0.ic30", 0x010000, 0xf0ca1b03, 2 | BRF_PRG | BRF_ESS }, // 4 V30 Code
- { "uc_sl0.ic31", 0x010000, 0xd1661723, 2 | BRF_PRG | BRF_ESS }, // 5
-
- { "uc_c0.ic26", 0x080000, 0x6a419a36, 3 | BRF_GRA }, // 6 Background Tiles
- { "uc_c1.ic25", 0x080000, 0xd703ecc7, 3 | BRF_GRA }, // 7
- { "uc_c2.ic24", 0x080000, 0x96397ac6, 3 | BRF_GRA }, // 8
- { "uc_c3.ic23", 0x080000, 0x5d07d10d, 3 | BRF_GRA }, // 9
-
- { "uc_030.ic37", 0x100000, 0x97f7775e, 4 | BRF_GRA }, // 10 Sprites
- { "uc_020.ic36", 0x100000, 0x5e0b1d65, 4 | BRF_GRA }, // 11
- { "uc_010.ic35", 0x100000, 0xbdc224b3, 4 | BRF_GRA }, // 12
- { "uc_000.ic34", 0x100000, 0x7526daec, 4 | BRF_GRA }, // 13
-
- { "uc_da.bin", 0x080000, 0x0b2855e9, 5 | BRF_SND }, // 14 Irem GA20 Samples
-};
-
-STD_ROM_PICK(uccopsj)
-STD_ROM_FN(uccopsj)
-
-struct BurnDriver BurnDrvUccopsj = {
- "uccopsj", "uccops", NULL, NULL, "1992",
- "Undercover Cops (Japan)\0", NULL, "Irem", "M92",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 3, HARDWARE_IREM_M92, GBF_SCRFIGHT, 0,
- NULL, uccopsjRomInfo, uccopsjRomName, NULL, NULL, p3CommonInputInfo, UccopsDIPInfo,
- uccopsInit, DrvExit, DrvFrame, DrvReDraw, DrvScan, &bRecalcPalette, 0x800,
- 320, 240, 4, 3
-};
-
-
-// Gunforce 2 (US)
-
-static struct BurnRomInfo gunforc2RomDesc[] = {
- { "a2-h0-a.6h", 0x040000, 0x49965e22, 1 | BRF_PRG | BRF_ESS }, // 0 V33 Code
- { "a2-l0-a.8h", 0x040000, 0x8c88b278, 1 | BRF_PRG | BRF_ESS }, // 1
- { "a2-h1-a.6f", 0x040000, 0x34280b88, 1 | BRF_PRG | BRF_ESS }, // 2
- { "a2-l1-a.8f", 0x040000, 0xc8c13f51, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "a2_sh0.3l", 0x010000, 0x2e2d103d, 2 | BRF_PRG | BRF_ESS }, // 4 V30 Code
- { "a2_sl0.5l", 0x010000, 0x2287e0b3, 2 | BRF_PRG | BRF_ESS }, // 5
-
- { "a2_c0.1a", 0x080000, 0x68b8f574, 3 | BRF_GRA }, // 6 Background Tiles
- { "a2_c1.1b", 0x080000, 0x0b9efe67, 3 | BRF_GRA }, // 7
- { "a2_c2.3a", 0x080000, 0x7a9e9978, 3 | BRF_GRA }, // 8
- { "a2_c3.3b", 0x080000, 0x1395ee6d, 3 | BRF_GRA }, // 9
-
- { "a2_000.8a", 0x100000, 0x38e03147, 4 | BRF_GRA }, // 10 Sprites
- { "a2_010.8b", 0x100000, 0x1d5b05f8, 4 | BRF_GRA }, // 11
- { "a2_020.8c", 0x100000, 0xf2f461cc, 4 | BRF_GRA }, // 12
- { "a2_030.8d", 0x100000, 0x97609d9d, 4 | BRF_GRA }, // 13
-
- { "a2_da.1l", 0x100000, 0x3c8cdb6a, 5 | BRF_SND }, // 14 Irem GA20 Samples
-};
-
-STD_ROM_PICK(gunforc2)
-STD_ROM_FN(gunforc2)
-
-static INT32 gunforc2RomLoad()
-{
- return RomLoad(0x100000, 0x080000, 0x100000, 0, 0);
-}
-
-static INT32 gunforc2Init()
-{
- INT32 nRet;
-
- nRet = DrvInit(gunforc2RomLoad, lethalth_decryption_table, 1, 0x200000, 0x400000);
-
- if (nRet == 0) {
- memcpy (DrvV33ROM + 0x80000, DrvV33ROM + 0x100000, 0x20000);
- }
-
- return nRet;
-}
-
-struct BurnDriver BurnDrvGunforc2 = {
- "gunforc2", NULL, NULL, NULL, "1994",
- "Gunforce 2 (US)\0", NULL, "Irem", "M92",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_IREM_M92, GBF_PLATFORM, 0,
- NULL, gunforc2RomInfo, gunforc2RomName, NULL, NULL, p2CommonInputInfo, Gunforc2DIPInfo,
- gunforc2Init, DrvExit, DrvFrame, DrvReDraw, DrvScan, &bRecalcPalette, 0x800,
- 320, 240, 4, 3
-};
-
-
-// Geostorm (Japan)
-
-static struct BurnRomInfo geostormRomDesc[] = {
- { "geo-h0.bin", 0x040000, 0x9be58d09, 1 | BRF_PRG | BRF_ESS }, // 0 V33 Code
- { "geo-l0.bin", 0x040000, 0x59abb75d, 1 | BRF_PRG | BRF_ESS }, // 1
- { "a2-h1-a.6f", 0x040000, 0x34280b88, 1 | BRF_PRG | BRF_ESS }, // 2
- { "a2-l1-a.8f", 0x040000, 0xc8c13f51, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "a2_sh0.3l", 0x010000, 0x2e2d103d, 2 | BRF_PRG | BRF_ESS }, // 4 V30 Code
- { "a2_sl0.5l", 0x010000, 0x2287e0b3, 2 | BRF_PRG | BRF_ESS }, // 5
-
- { "a2_c0.1a", 0x080000, 0x68b8f574, 3 | BRF_GRA }, // 6 Background Tiles
- { "a2_c1.1b", 0x080000, 0x0b9efe67, 3 | BRF_GRA }, // 7
- { "a2_c2.3a", 0x080000, 0x7a9e9978, 3 | BRF_GRA }, // 8
- { "a2_c3.3b", 0x080000, 0x1395ee6d, 3 | BRF_GRA }, // 9
-
- { "a2_000.8a", 0x100000, 0x38e03147, 4 | BRF_GRA }, // 10 Sprites
- { "a2_010.8b", 0x100000, 0x1d5b05f8, 4 | BRF_GRA }, // 11
- { "a2_020.8c", 0x100000, 0xf2f461cc, 4 | BRF_GRA }, // 12
- { "a2_030.8d", 0x100000, 0x97609d9d, 4 | BRF_GRA }, // 13
-
- { "a2_da.1l", 0x100000, 0x3c8cdb6a, 5 | BRF_SND }, // 14 Irem GA20 Samples
-};
-
-STD_ROM_PICK(geostorm)
-STD_ROM_FN(geostorm)
-
-struct BurnDriver BurnDrvGeostorm = {
- "geostorm", "gunforc2", NULL, NULL, "1994",
- "Geostorm (Japan)\0", NULL, "Irem", "M92",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_IREM_M92, GBF_PLATFORM, 0,
- NULL, geostormRomInfo, geostormRomName, NULL, NULL, p2CommonInputInfo, Gunforc2DIPInfo,
- gunforc2Init, DrvExit, DrvFrame, DrvReDraw, DrvScan, &bRecalcPalette, 0x800,
- 320, 240, 4, 3
-};
-
-
-// Ninja Baseball Batman (World)
-
-static struct BurnRomInfo nbbatmanRomDesc[] = {
- { "6_h0.34", 0x040000, 0x5c4a1e3f, 1 | BRF_PRG | BRF_ESS }, // 0 V33 Code
- { "3_l0.31", 0x040000, 0x3d6d70ae, 1 | BRF_PRG | BRF_ESS }, // 1
- { "a1-h1-.33", 0x040000, 0x3ce2aab5, 1 | BRF_PRG | BRF_ESS }, // 2
- { "a1-l1-.32", 0x040000, 0x116d9bcc, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "a1-sh0-.14", 0x010000, 0xb7fae3e6, 2 | BRF_PRG | BRF_ESS }, // 4 V30 Code
- { "a1-sl0-.17", 0x010000, 0xb26d54fc, 2 | BRF_PRG | BRF_ESS }, // 5
-
- { "lh534k0c.9", 0x080000, 0x314a0c6d, 3 | BRF_GRA }, // 6 Background Tiles
- { "lh534k0e.10", 0x080000, 0xdc31675b, 3 | BRF_GRA }, // 7
- { "lh534k0f.11", 0x080000, 0xe15d8bfb, 3 | BRF_GRA }, // 8
- { "lh534k0g.12", 0x080000, 0x888d71a3, 3 | BRF_GRA }, // 9
-
- { "lh538393.42", 0x100000, 0x26cdd224, 4 | BRF_GRA }, // 10 Sprites
- { "lh538394.43", 0x100000, 0x4bbe94fa, 4 | BRF_GRA }, // 11
- { "lh538395.44", 0x100000, 0x2a533b5e, 4 | BRF_GRA }, // 12
- { "lh538396.45", 0x100000, 0x863a66fa, 4 | BRF_GRA }, // 13
-
- { "lh534k0k.8", 0x080000, 0x735e6380, 5 | BRF_SND }, // 14 Irem GA20 Samples
-};
-
-STD_ROM_PICK(nbbatman)
-STD_ROM_FN(nbbatman)
-
-static INT32 nbbatmanInit()
-{
- INT32 nRet;
- const UINT8 *decrtab = leagueman_decryption_table;
-
- m92_kludge = 4;
-
- if (DrvInput[8] & 1) // dip option, use old soundCPU emulation "style", for weirdos!
- decrtab = leagueman_OLD_decryption_table;
-
- nRet = DrvInit(gunforc2RomLoad, decrtab, 1, 0x200000, 0x400000);
-
- if (nRet == 0) {
- memcpy (DrvV33ROM + 0x80000, DrvV33ROM + 0x100000, 0x20000);
- }
-
- return nRet;
-}
-
-struct BurnDriver BurnDrvNbbatman = {
- "nbbatman", NULL, NULL, NULL, "1993",
- "Ninja Baseball Batman (World)\0", NULL, "Irem", "M92",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 4, HARDWARE_IREM_M92, GBF_SCRFIGHT, 0,
- NULL, nbbatmanRomInfo, nbbatmanRomName, NULL, NULL, nbbatmanInputInfo, NbbatmanDIPInfo,
- nbbatmanInit, DrvExit, DrvFrame, DrvReDraw, DrvScan, &bRecalcPalette, 0x800,
- 320, 240, 4, 3
-};
-
-
-// Ninja Baseball Batman (US)
-
-static struct BurnRomInfo nbbatmanuRomDesc[] = {
- { "a1-h0-a.34", 0x040000, 0x24a9b794, 1 | BRF_PRG | BRF_ESS }, // 0 V33 Code
- { "a1-l0-a.31", 0x040000, 0x846d7716, 1 | BRF_PRG | BRF_ESS }, // 1
- { "a1-h1-.33", 0x040000, 0x3ce2aab5, 1 | BRF_PRG | BRF_ESS }, // 2
- { "a1-l1-.32", 0x040000, 0x116d9bcc, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "a1-sh0-.14", 0x010000, 0xb7fae3e6, 2 | BRF_PRG | BRF_ESS }, // 4 V30 Code
- { "a1-sl0-.17", 0x010000, 0xb26d54fc, 2 | BRF_PRG | BRF_ESS }, // 5
-
- { "lh534k0c.9", 0x080000, 0x314a0c6d, 3 | BRF_GRA }, // 6 Background Tiles
- { "lh534k0e.10", 0x080000, 0xdc31675b, 3 | BRF_GRA }, // 7
- { "lh534k0f.11", 0x080000, 0xe15d8bfb, 3 | BRF_GRA }, // 8
- { "lh534k0g.12", 0x080000, 0x888d71a3, 3 | BRF_GRA }, // 9
-
- { "lh538393.42", 0x100000, 0x26cdd224, 4 | BRF_GRA }, // 10 Sprites
- { "lh538394.43", 0x100000, 0x4bbe94fa, 4 | BRF_GRA }, // 11
- { "lh538395.44", 0x100000, 0x2a533b5e, 4 | BRF_GRA }, // 12
- { "lh538396.45", 0x100000, 0x863a66fa, 4 | BRF_GRA }, // 13
-
- { "lh534k0k.8", 0x080000, 0x735e6380, 5 | BRF_SND }, // 14 Irem GA20 Samples
-};
-
-STD_ROM_PICK(nbbatmanu)
-STD_ROM_FN(nbbatmanu)
-
-struct BurnDriver BurnDrvNbbatmanu = {
- "nbbatmanu", "nbbatman", NULL, NULL, "1993",
- "Ninja Baseball Batman (US)\0", NULL, "Irem America", "M92",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 4, HARDWARE_IREM_M92, GBF_SCRFIGHT, 0,
- NULL, nbbatmanuRomInfo, nbbatmanuRomName, NULL, NULL, p4CommonInputInfo, NbbatmanDIPInfo,
- nbbatmanInit, DrvExit, DrvFrame, DrvReDraw, DrvScan, &bRecalcPalette, 0x800,
- 320, 240, 4, 3
-};
-
-
-// Yakyuu Kakutou League-Man (Japan)
-
-static struct BurnRomInfo leaguemnRomDesc[] = {
- { "lma1-h0.34", 0x040000, 0x47c54204, 1 | BRF_PRG | BRF_ESS }, // 0 V33 Code
- { "lma1-l0.31", 0x040000, 0x1d062c82, 1 | BRF_PRG | BRF_ESS }, // 1
- { "a1-h1-.33", 0x040000, 0x3ce2aab5, 1 | BRF_PRG | BRF_ESS }, // 2
- { "a1-l1-.32", 0x040000, 0x116d9bcc, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "a1-sh0-.14", 0x010000, 0xb7fae3e6, 2 | BRF_PRG | BRF_ESS }, // 4 V30 Code
- { "a1-sl0-.17", 0x010000, 0xb26d54fc, 2 | BRF_PRG | BRF_ESS }, // 5
-
- { "lh534k0c.9", 0x080000, 0x314a0c6d, 3 | BRF_GRA }, // 6 Background Tiles
- { "lh534k0e.10", 0x080000, 0xdc31675b, 3 | BRF_GRA }, // 7
- { "lh534k0f.11", 0x080000, 0xe15d8bfb, 3 | BRF_GRA }, // 8
- { "lh534k0g.12", 0x080000, 0x888d71a3, 3 | BRF_GRA }, // 9
-
- { "lh538393.42", 0x100000, 0x26cdd224, 4 | BRF_GRA }, // 10 Sprites
- { "lh538394.43", 0x100000, 0x4bbe94fa, 4 | BRF_GRA }, // 11
- { "lh538395.44", 0x100000, 0x2a533b5e, 4 | BRF_GRA }, // 12
- { "lh538396.45", 0x100000, 0x863a66fa, 4 | BRF_GRA }, // 13
-
- { "lh534k0k.8", 0x080000, 0x735e6380, 5 | BRF_SND }, // 14 Irem GA20 Samples
-};
-
-STD_ROM_PICK(leaguemn)
-STD_ROM_FN(leaguemn)
-
-struct BurnDriver BurnDrvLeaguemn = {
- "leaguemn", "nbbatman", NULL, NULL, "1993",
- "Yakyuu Kakutou League-Man (Japan)\0", NULL, "Irem", "M92",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 4, HARDWARE_IREM_M92, GBF_SCRFIGHT, 0,
- NULL, leaguemnRomInfo, leaguemnRomName, NULL, NULL, p4CommonInputInfo, NbbatmanDIPInfo,
- nbbatmanInit, DrvExit, DrvFrame, DrvReDraw, DrvScan, &bRecalcPalette, 0x800,
- 320, 240, 4, 3
-};
-
-
-// Lethal Thunder (World)
-
-static struct BurnRomInfo lethalthRomDesc[] = {
- { "lt_d-h0.rom", 0x020000, 0x20c68935, 1 | BRF_PRG | BRF_ESS }, // 0 V33 Code
- { "lt_d-l0.rom", 0x020000, 0xe1432fb3, 1 | BRF_PRG | BRF_ESS }, // 1
- { "lt_d-h1.rom", 0x020000, 0xd7dd3d48, 1 | BRF_PRG | BRF_ESS }, // 2
- { "lt_d-l1.rom", 0x020000, 0xb94b3bd8, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "lt_d-sh0.rom", 0x010000, 0xaf5b224f, 2 | BRF_PRG | BRF_ESS }, // 4 V30 Code
- { "lt_d-sl0.rom", 0x010000, 0xcb3faac3, 2 | BRF_PRG | BRF_ESS }, // 5
-
- { "lt_7a.rom", 0x040000, 0xada0fd50, 3 | BRF_GRA }, // 6 Background Tiles
- { "lt_7b.rom", 0x040000, 0xd2596883, 3 | BRF_GRA }, // 7
- { "lt_7d.rom", 0x040000, 0x2de637ef, 3 | BRF_GRA }, // 8
- { "lt_7h.rom", 0x040000, 0x9f6585cd, 3 | BRF_GRA }, // 9
-
- { "lt_7j.rom", 0x040000, 0xbaf8863e, 4 | BRF_GRA }, // 10 Sprites
- { "lt_7l.rom", 0x040000, 0x40fd50af, 4 | BRF_GRA }, // 11
- { "lt_7s.rom", 0x040000, 0xc8e970df, 4 | BRF_GRA }, // 12
- { "lt_7y.rom", 0x040000, 0xf5436708, 4 | BRF_GRA }, // 13
-
- { "lt_8a.rom", 0x040000, 0x357762a2, 5 | BRF_SND }, // 14 Irem GA20 Samples
-};
-
-STD_ROM_PICK(lethalth)
-STD_ROM_FN(lethalth)
-
-static INT32 lethalthRomLoad()
-{
- m92_kludge = 1;
- return RomLoad(0x040000, 0x040000, 0x040000, 0, 0);
-}
-
-static INT32 lethalthInit()
-{
- return DrvInit(lethalthRomLoad, lethalth_decryption_table, 0, 0x100000, 0x100000);
-}
-
-struct BurnDriver BurnDrvLethalth = {
- "lethalth", NULL, NULL, NULL, "1991",
- "Lethal Thunder (World)\0", NULL, "Irem", "M92",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL, 2, HARDWARE_IREM_M92, GBF_VERSHOOT, 0,
- NULL, lethalthRomInfo, lethalthRomName, NULL, NULL, p2CommonInputInfo, LethalthDIPInfo,
- lethalthInit, DrvExit, DrvFrame, DrvReDraw, DrvScan, &bRecalcPalette, 0x800,
- 240, 320, 3, 4
-};
-
-
-// Thunder Blaster (Japan)
-
-static struct BurnRomInfo thndblstRomDesc[] = {
- { "lt_d-h0j.rom", 0x020000, 0xdc218a18, 1 | BRF_PRG | BRF_ESS }, // 0 V33 Code
- { "lt_d-l0j.rom", 0x020000, 0xae9a3f81, 1 | BRF_PRG | BRF_ESS }, // 1
- { "lt_d-h1.rom", 0x020000, 0xd7dd3d48, 1 | BRF_PRG | BRF_ESS }, // 2
- { "lt_d-l1.rom", 0x020000, 0xb94b3bd8, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "lt_d-sh0.rom", 0x010000, 0xaf5b224f, 2 | BRF_PRG | BRF_ESS }, // 4 V30 Code
- { "lt_d-sl0.rom", 0x010000, 0xcb3faac3, 2 | BRF_PRG | BRF_ESS }, // 5
-
- { "lt_7a.rom", 0x040000, 0xada0fd50, 3 | BRF_GRA }, // 6 Background Tiles
- { "lt_7b.rom", 0x040000, 0xd2596883, 3 | BRF_GRA }, // 7
- { "lt_7d.rom", 0x040000, 0x2de637ef, 3 | BRF_GRA }, // 8
- { "lt_7h.rom", 0x040000, 0x9f6585cd, 3 | BRF_GRA }, // 9
-
- { "lt_7j.rom", 0x040000, 0xbaf8863e, 4 | BRF_GRA }, // 10 Sprites
- { "lt_7l.rom", 0x040000, 0x40fd50af, 4 | BRF_GRA }, // 11
- { "lt_7s.rom", 0x040000, 0xc8e970df, 4 | BRF_GRA }, // 12
- { "lt_7y.rom", 0x040000, 0xf5436708, 4 | BRF_GRA }, // 13
-
- { "lt_8a.rom", 0x040000, 0x357762a2, 5 | BRF_SND }, // 14 Irem GA20 Samples
-};
-
-STD_ROM_PICK(thndblst)
-STD_ROM_FN(thndblst)
-
-struct BurnDriver BurnDrvThndblst = {
- "thndblst", "lethalth", NULL, NULL, "1991",
- "Thunder Blaster (Japan)\0", NULL, "Irem", "M92",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL, 2, HARDWARE_IREM_M92, GBF_VERSHOOT, 0,
- NULL, thndblstRomInfo, thndblstRomName, NULL, NULL, p2CommonInputInfo, LethalthDIPInfo,
- lethalthInit, DrvExit, DrvFrame, DrvReDraw, DrvScan, &bRecalcPalette, 0x800,
- 240, 320, 3, 4
-};
-
-
-// Dream Soccer '94 (Japan)
-
-static struct BurnRomInfo dsoccr94jRomDesc[] = {
- { "a3_-h0-e.bin", 0x040000, 0x8de1dbcd, 1 | BRF_PRG | BRF_ESS }, // 0 V33 Code
- { "a3_-l0-e.bin", 0x040000, 0xd3df8bfd, 1 | BRF_PRG | BRF_ESS }, // 1
- { "ds_h1-c.rom", 0x040000, 0x6109041b, 1 | BRF_PRG | BRF_ESS }, // 2
- { "ds_l1-c.rom", 0x040000, 0x97a01f6b, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "ds_sh0.rom", 0x010000, 0x23fe6ffc, 2 | BRF_PRG | BRF_ESS }, // 4 V30 Code
- { "ds_sl0.rom", 0x010000, 0x768132e5, 2 | BRF_PRG | BRF_ESS }, // 5
-
- { "c0.bin", 0x100000, 0x83ea8a47, 3 | BRF_GRA }, // 6 Background Tiles
- { "c1.bin", 0x100000, 0x64063e6d, 3 | BRF_GRA }, // 7
- { "c2.bin", 0x100000, 0xcc1f621a, 3 | BRF_GRA }, // 8
- { "c3.bin", 0x100000, 0x515829e1, 3 | BRF_GRA }, // 9
-
- { "a3-o00-w.bin", 0x080000, 0xb094e5ad, 4 | BRF_GRA }, // 10 Sprites
- { "a3-o01-w.bin", 0x080000, 0x91f34018, 4 | BRF_GRA }, // 11
- { "a3-o10-w.bin", 0x080000, 0xedddeef4, 4 | BRF_GRA }, // 12
- { "a3-o11-w.bin", 0x080000, 0x274a9526, 4 | BRF_GRA }, // 13
- { "a3-o20-w.bin", 0x080000, 0x32064393, 4 | BRF_GRA }, // 14
- { "a3-o21-w.bin", 0x080000, 0x57bae3d9, 4 | BRF_GRA }, // 15
- { "a3-o30-w.bin", 0x080000, 0xbe838e2f, 4 | BRF_GRA }, // 16
- { "a3-o31-w.bin", 0x080000, 0xbf899f0d, 4 | BRF_GRA }, // 17
-
- { "ds_da0.rom", 0x100000, 0x67fc52fd, 5 | BRF_SND }, // 18 Irem GA20 Samples
-};
-
-STD_ROM_PICK(dsoccr94j)
-STD_ROM_FN(dsoccr94j)
-
-static INT32 dsoccr94jRomLoad()
-{
- return RomLoad(0x100000, 0x100000, 0x100000, 1, 0);
-}
-
-static INT32 dsoccr94jInit()
-{
- return DrvInit(dsoccr94jRomLoad, dsoccr94_decryption_table, 1, 0x400000, 0x400000);
-}
-
-struct BurnDriver BurnDrvDsoccr94j = {
- "dsoccr94j", "dsoccr94", NULL, NULL, "1994",
- "Dream Soccer '94 (Japan)\0", NULL, "Irem", "M92",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 4, HARDWARE_IREM_M92, GBF_SPORTSFOOTBALL, 0,
- NULL, dsoccr94jRomInfo, dsoccr94jRomName, NULL, NULL, p4CommonInputInfo, Dsoccr94jDIPInfo,
- dsoccr94jInit, DrvExit, DrvFrame, DrvReDraw, DrvScan, &bRecalcPalette, 0x800,
- 320, 240, 4, 3
-};
-
-
-// Superior Soldiers (US)
-
-static struct BurnRomInfo ssoldierRomDesc[] = {
- { "f3-h0-h.bin", 0x040000, 0xb63fb9da, 1 | BRF_PRG | BRF_ESS }, // 0 V33 Code
- { "f3-l0-h.bin", 0x040000, 0x419361a2, 1 | BRF_PRG | BRF_ESS }, // 1
- { "f3-h1-a.bin", 0x020000, 0xe3d9f619, 1 | BRF_PRG | BRF_ESS }, // 2
- { "f3-l1-a.bin", 0x020000, 0x8cb5c396, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "f3_sh0.sh0", 0x010000, 0x90b55e5e, 2 | BRF_PRG | BRF_ESS }, // 4 V30 Code
- { "f3_sl0.sl0", 0x010000, 0x77c16d57, 2 | BRF_PRG | BRF_ESS }, // 5
-
- { "f3_w50.c0", 0x040000, 0x47e788ee, 3 | BRF_GRA }, // 6 Background Tiles
- { "f3_w51.c1", 0x040000, 0x8e535e3f, 3 | BRF_GRA }, // 7
- { "f3_w52.c2", 0x040000, 0xa6eb2e56, 3 | BRF_GRA }, // 8
- { "f3_w53.c3", 0x040000, 0x2f992807, 3 | BRF_GRA }, // 9
-
- { "f3_w37.000", 0x100000, 0xfd4cda03, 4 | BRF_GRA }, // 10 Sprites
- { "f3_w38.001", 0x100000, 0x755bab10, 4 | BRF_GRA }, // 11
- { "f3_w39.010", 0x100000, 0xb21ced92, 4 | BRF_GRA }, // 12
- { "f3_w40.011", 0x100000, 0x2e906889, 4 | BRF_GRA }, // 13
- { "f3_w41.020", 0x100000, 0x02455d10, 4 | BRF_GRA }, // 14
- { "f3_w42.021", 0x100000, 0x124589b9, 4 | BRF_GRA }, // 15
- { "f3_w43.030", 0x100000, 0xdae7327a, 4 | BRF_GRA }, // 16
- { "f3_w44.031", 0x100000, 0xd0fc84ac, 4 | BRF_GRA }, // 17
-
- { "f3_w95.da", 0x080000, 0xf7ca432b, 5 | BRF_SND }, // 18 Irem GA20 Samples
-};
-
-STD_ROM_PICK(ssoldier)
-STD_ROM_FN(ssoldier)
-
-static INT32 ssoldierRomLoad()
-{
- return RomLoad(0x080000, 0x040000, 0x200000, 1, 0);
-}
-
-static INT32 ssoldierInit()
-{
- m92_kludge = 1;
-
- return DrvInit(ssoldierRomLoad, psoldier_decryption_table, 1, 0x100000, 0x800000);
-}
-
-struct BurnDriver BurnDrvSsoldier = {
- "ssoldier", NULL, NULL, NULL, "1993",
- "Superior Soldiers (US)\0", NULL, "Irem America", "M92",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_IREM_M92, GBF_VSFIGHT, 0,
- NULL, ssoldierRomInfo, ssoldierRomName, NULL, NULL, PsoldierInputInfo, PsoldierDIPInfo,
- ssoldierInit, DrvExit, DrvFrame, DrvReDraw, DrvScan, &bRecalcPalette, 0x800,
- 320, 240, 4, 3
-};
-
-
-// Perfect Soldiers (Japan)
-
-static struct BurnRomInfo psoldierRomDesc[] = {
- { "f3_h0-d.bin", 0x040000, 0x38f131fd, 1 | BRF_PRG | BRF_ESS }, // 0 V33 Code
- { "f3_l0-d.bin", 0x040000, 0x1662969c, 1 | BRF_PRG | BRF_ESS }, // 1
- { "f3_h1-.bin", 0x040000, 0xc8d1947c, 1 | BRF_PRG | BRF_ESS }, // 2
- { "f3_l1-.bin", 0x040000, 0x7b9492fc, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "f3_sh0.sh0", 0x010000, 0x90b55e5e, 2 | BRF_PRG | BRF_ESS }, // 4 V30 Code
- { "f3_sl0.sl0", 0x010000, 0x77c16d57, 2 | BRF_PRG | BRF_ESS }, // 5
-
- { "f3_w50.c0", 0x040000, 0x47e788ee, 3 | BRF_GRA }, // 6 Background Tiles
- { "f3_w51.c1", 0x040000, 0x8e535e3f, 3 | BRF_GRA }, // 7
- { "f3_w52.c2", 0x040000, 0xa6eb2e56, 3 | BRF_GRA }, // 8
- { "f3_w53.c3", 0x040000, 0x2f992807, 3 | BRF_GRA }, // 9
-
- { "f3_w37.000", 0x100000, 0xfd4cda03, 4 | BRF_GRA }, // 10 Sprites
- { "f3_w38.001", 0x100000, 0x755bab10, 4 | BRF_GRA }, // 11
- { "f3_w39.010", 0x100000, 0xb21ced92, 4 | BRF_GRA }, // 12
- { "f3_w40.011", 0x100000, 0x2e906889, 4 | BRF_GRA }, // 13
- { "f3_w41.020", 0x100000, 0x02455d10, 4 | BRF_GRA }, // 14
- { "f3_w42.021", 0x100000, 0x124589b9, 4 | BRF_GRA }, // 15
- { "f3_w43.030", 0x100000, 0xdae7327a, 4 | BRF_GRA }, // 16
- { "f3_w44.031", 0x100000, 0xd0fc84ac, 4 | BRF_GRA }, // 17
-
- { "f3_w95.da", 0x080000, 0xf7ca432b, 5 | BRF_SND }, // 18 Irem GA20 Samples
-};
-
-STD_ROM_PICK(psoldier)
-STD_ROM_FN(psoldier)
-
-struct BurnDriver BurnDrvPsoldier = {
- "psoldier", "ssoldier", NULL, NULL, "1993",
- "Perfect Soldiers (Japan)\0", NULL, "Irem", "M92",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_IREM_M92, GBF_VSFIGHT, 0,
- NULL, psoldierRomInfo, psoldierRomName, NULL, NULL, PsoldierInputInfo, PsoldierDIPInfo,
- ssoldierInit, DrvExit, DrvFrame, DrvReDraw, DrvScan, &bRecalcPalette, 0x800,
- 320, 240, 4, 3
-};
-
-
-// Major Title 2 (World, set 1)
-
-static struct BurnRomInfo majtitl2RomDesc[] = {
- { "mt2-h0-b.5m", 0x040000, 0xb163b12e, 1 | BRF_PRG | BRF_ESS }, // 0 V33 Code
- { "mt2-l0-b.5f", 0x040000, 0x6f3b5d9d, 1 | BRF_PRG | BRF_ESS }, // 1
- { "is-h1.5l", 0x040000, 0x9ba8e1f2, 1 | BRF_PRG | BRF_ESS }, // 2
- { "is-l1.5j", 0x040000, 0xe4e00626, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "mt2-sh0-.ic14", 0x010000, 0x1ecbea43, 2 | BRF_PRG | BRF_ESS }, // 4 V30 Code
- { "mt2-sl0-.ic17", 0x010000, 0x8fd5b531, 2 | BRF_PRG | BRF_ESS }, // 5
-
- { "hr0.ic9", 0x040000, 0x7e61e4b5, 3 | BRF_GRA }, // 6 Background Tiles
- { "hr1.ic10", 0x040000, 0x0a667564, 3 | BRF_GRA }, // 7
- { "hr2.ic11", 0x040000, 0x5eb44312, 3 | BRF_GRA }, // 8
- { "hr3.ic12", 0x040000, 0xf2866294, 3 | BRF_GRA }, // 9
-
- { "k30.ic42", 0x100000, 0x8c9a2678, 4 | BRF_GRA }, // 10 Sprites
- { "k31.ic43", 0x100000, 0x5455df78, 4 | BRF_GRA }, // 11
- { "k32.ic44", 0x100000, 0x3a258c41, 4 | BRF_GRA }, // 12
- { "k33.ic45", 0x100000, 0xc1e91a14, 4 | BRF_GRA }, // 13
-
- { "k0d.ic8", 0x080000, 0x713b9e9f, 5 | BRF_SND }, // 14 Irem GA20 Samples
-
- { "mt2eep", 0x000800, 0x208af971, 6 | BRF_PRG | BRF_ESS }, // 15 EEPROM data
-
- { "pal16l8-m92-a-3m.ic11", 0x000104, 0x00000000, 7 | BRF_NODUMP }, // 16 plds
- { "pal16l8-m92-a-7j.ic41", 0x000104, 0x00000000, 7 | BRF_NODUMP }, // 17
- { "pal16l8-m92-a-9j.ic51", 0x000104, 0x00000000, 7 | BRF_NODUMP }, // 18
- { "pal16l8-m92-b-2l.ic7", 0x000104, 0x00000000, 7 | BRF_NODUMP }, // 19
- { "pal16l8-m92-b-7h.ic47", 0x000104, 0x00000000, 7 | BRF_NODUMP }, // 20
-};
-
-STD_ROM_PICK(majtitl2)
-STD_ROM_FN(majtitl2)
-
-static INT32 majtitl2RomLoad()
-{
- return RomLoad(0x100000, 0x040000, 0x100000, 0, 15);
-}
-
-static INT32 majtitl2Init()
-{
- m92_kludge = 2;
- return DrvInit(majtitl2RomLoad, majtitl2_decryption_table, 1, 0x100000, 0x400000);
-}
-
-struct BurnDriver BurnDrvMajtitl2 = {
- "majtitl2", NULL, NULL, NULL, "1992",
- "Major Title 2 (World)\0", NULL, "Irem", "M92",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_IREM_M92, GBF_SPORTSMISC, 0,
- NULL, majtitl2RomInfo, majtitl2RomName, NULL, NULL, p4CommonInputInfo, Majtitl2DIPInfo,
- majtitl2Init, DrvExit, DrvFrame, DrvReDraw, DrvScan, &bRecalcPalette, 0x800,
- 320, 240, 4, 3
-};
-
-
-// Major Title 2 (World, set 2)
-
-static struct BurnRomInfo majtitl2bRomDesc[] = {
- { "mt2-h0-e.ic34", 0x040000, 0xf6c3a28c, 1 | BRF_PRG | BRF_ESS }, // 0 V33 Code
- { "mt2-l0-e.ic31", 0x040000, 0x0a061384, 1 | BRF_PRG | BRF_ESS }, // 1
- { "mt2-h1-.ic33", 0x040000, 0x9ba8e1f2, 1 | BRF_PRG | BRF_ESS }, // 2
- { "mt2-l1-.ic32", 0x040000, 0xe4e00626, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "mt2-sh0-.ic14", 0x010000, 0x1ecbea43, 2 | BRF_PRG | BRF_ESS }, // 4 V30 Code
- { "mt2-sl0-.ic17", 0x010000, 0x8fd5b531, 2 | BRF_PRG | BRF_ESS }, // 5
-
- { "hr0.ic9", 0x040000, 0x7e61e4b5, 3 | BRF_GRA }, // 6 Background Tiles
- { "hr1.ic10", 0x040000, 0x0a667564, 3 | BRF_GRA }, // 7
- { "hr2.ic11", 0x040000, 0x5eb44312, 3 | BRF_GRA }, // 8
- { "hr3.ic12", 0x040000, 0xf2866294, 3 | BRF_GRA }, // 9
-
- { "k30.ic42", 0x100000, 0x8c9a2678, 4 | BRF_GRA }, // 10 Sprites
- { "k31.ic43", 0x100000, 0x5455df78, 4 | BRF_GRA }, // 11
- { "k32.ic44", 0x100000, 0x3a258c41, 4 | BRF_GRA }, // 12
- { "k33.ic45", 0x100000, 0xc1e91a14, 4 | BRF_GRA }, // 13
-
- { "k0d.ic8", 0x080000, 0x713b9e9f, 5 | BRF_SND }, // 14 Irem GA20 Samples
-
- { "mt2eep", 0x000800, 0x208af971, 6 | BRF_PRG | BRF_ESS }, // 15 EEPROM data
-
- { "pal16l8-m92-a-3m.ic11", 0x000104, 0x00000000, 7 | BRF_NODUMP }, // 16 plds
- { "pal16l8-m92-a-7j.ic41", 0x000104, 0x00000000, 7 | BRF_NODUMP }, // 17
- { "pal16l8-m92-a-9j.ic51", 0x000104, 0x00000000, 7 | BRF_NODUMP }, // 18
- { "pal16l8-m92-b-2l.ic7", 0x000104, 0x00000000, 7 | BRF_NODUMP }, // 19
- { "pal16l8-m92-b-7h.ic47", 0x000104, 0x00000000, 7 | BRF_NODUMP }, // 20
-};
-
-STD_ROM_PICK(majtitl2b)
-STD_ROM_FN(majtitl2b)
-
-struct BurnDriver BurnDrvMajtitl2b = {
- "majtitl2b", "majtitl2", NULL, NULL, "1992",
- "Major Title 2 (World, set 2)\0", NULL, "Irem", "M92",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_IREM_M92, GBF_SPORTSMISC, 0,
- NULL, majtitl2bRomInfo, majtitl2bRomName, NULL, NULL, p4CommonInputInfo, Majtitl2DIPInfo,
- majtitl2Init, DrvExit, DrvFrame, DrvReDraw, DrvScan, &bRecalcPalette, 0x800,
- 320, 240, 4, 3
-};
-
-
-// Major Title 2 (World, set 1, alt sound CPU)
-// this set matches the 'majtitl2' except for the soundcpu roms, which are for a different CPU
-
-static struct BurnRomInfo majtitl2aRomDesc[] = {
- { "mt2-h0-.5m", 0x040000, 0xb163b12e, 1 | BRF_PRG | BRF_ESS }, // 0 V33 Code
- { "mt2-l0-.5f", 0x040000, 0x6f3b5d9d, 1 | BRF_PRG | BRF_ESS }, // 1
- { "mt2-h1-.5l", 0x040000, 0x9ba8e1f2, 1 | BRF_PRG | BRF_ESS }, // 2
- { "mt2-l1-.5j", 0x040000, 0xe4e00626, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "mt2sh0-a", 0x010000, 0x50f076e5, 2 | BRF_PRG | BRF_ESS }, // 4 V30 Code
- { "mt2sl0-a", 0x010000, 0xf4ecd7b5, 2 | BRF_PRG | BRF_ESS }, // 5
-
- { "hr0.ic9", 0x040000, 0x7e61e4b5, 3 | BRF_GRA }, // 6 Background Tiles
- { "hr1.ic10", 0x040000, 0x0a667564, 3 | BRF_GRA }, // 7
- { "hr2.ic11", 0x040000, 0x5eb44312, 3 | BRF_GRA }, // 8
- { "hr3.ic12", 0x040000, 0xf2866294, 3 | BRF_GRA }, // 9
-
- { "k30.ic42", 0x100000, 0x8c9a2678, 4 | BRF_GRA }, // 10 Sprites
- { "k31.ic43", 0x100000, 0x5455df78, 4 | BRF_GRA }, // 11
- { "k32.ic44", 0x100000, 0x3a258c41, 4 | BRF_GRA }, // 12
- { "k33.ic45", 0x100000, 0xc1e91a14, 4 | BRF_GRA }, // 13
-
- { "k0d.ic8", 0x080000, 0x713b9e9f, 5 | BRF_SND }, // 14 Irem GA20 Samples
-
- { "mt2eep", 0x000800, 0x208af971, 6 | BRF_PRG | BRF_ESS }, // 15 EEPROM data
-
- { "pal16l8-m92-a-3m.ic11", 0x000104, 0x00000000, 7 | BRF_NODUMP }, // 16 plds
- { "pal16l8-m92-a-7j.ic41", 0x000104, 0x00000000, 7 | BRF_NODUMP }, // 17
- { "pal16l8-m92-a-9j.ic51", 0x000104, 0x00000000, 7 | BRF_NODUMP }, // 18
- { "pal16l8-m92-b-2l.ic7", 0x000104, 0x00000000, 7 | BRF_NODUMP }, // 19
- { "pal16l8-m92-b-7h.ic47", 0x000104, 0x00000000, 7 | BRF_NODUMP }, // 20
-};
-
-STD_ROM_PICK(majtitl2a)
-STD_ROM_FN(majtitl2a)
-
-static INT32 majtitl2aInit()
-{
- m92_kludge = 2;
- return DrvInit(majtitl2RomLoad, mysticri_decryption_table, 1, 0x100000, 0x400000);
-}
-
-struct BurnDriver BurnDrvMajtitl2a = {
- "majtitl2a", "majtitl2", NULL, NULL, "1992",
- "Major Title 2 (World, set 1, alt sound CPU)\0", NULL, "Irem", "M92",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_IREM_M92, GBF_SPORTSMISC, 0,
- NULL, majtitl2aRomInfo, majtitl2aRomName, NULL, NULL, p4CommonInputInfo, Majtitl2DIPInfo,
- majtitl2aInit, DrvExit, DrvFrame, DrvReDraw, DrvScan, &bRecalcPalette, 0x800,
- 320, 240, 4, 3
-};
-
-
-// Major Title 2 (Japan)
-
-static struct BurnRomInfo majtitl2jRomDesc[] = {
- { "mt2-h0", 0x040000, 0x8a8d71ad, 1 | BRF_PRG | BRF_ESS }, // 0 V33 Code
- { "mt2-l1", 0x040000, 0xdd4fff51, 1 | BRF_PRG | BRF_ESS }, // 1
- { "is-h1.5l", 0x040000, 0x9ba8e1f2, 1 | BRF_PRG | BRF_ESS }, // 2
- { "is-l1.5j", 0x040000, 0xe4e00626, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "mt2-sh0-.ic14", 0x010000, 0x1ecbea43, 2 | BRF_PRG | BRF_ESS }, // 4 V30 Code
- { "mt2-sl0-.ic17", 0x010000, 0x8fd5b531, 2 | BRF_PRG | BRF_ESS }, // 5
-
- { "hr0.ic9", 0x040000, 0x7e61e4b5, 3 | BRF_GRA }, // 6 Background Tiles
- { "hr1.ic10", 0x040000, 0x0a667564, 3 | BRF_GRA }, // 7
- { "hr2.ic11", 0x040000, 0x5eb44312, 3 | BRF_GRA }, // 8
- { "hr3.ic12", 0x040000, 0xf2866294, 3 | BRF_GRA }, // 9
-
- { "k30.ic42", 0x100000, 0x8c9a2678, 4 | BRF_GRA }, // 10 Sprites
- { "k31.ic43", 0x100000, 0x5455df78, 4 | BRF_GRA }, // 11
- { "k32.ic44", 0x100000, 0x3a258c41, 4 | BRF_GRA }, // 12
- { "k33.ic45", 0x100000, 0xc1e91a14, 4 | BRF_GRA }, // 13
-
- { "k0d.ic8", 0x080000, 0x713b9e9f, 5 | BRF_SND }, // 14 Irem GA20 Samples
-
- { "mt2eep", 0x000800, 0x208af971, 6 | BRF_PRG | BRF_ESS }, // 15 EEPROM data
-
- { "pal16l8-m92-a-3m.ic11", 0x000104, 0x00000000, 7 | BRF_NODUMP }, // 16 plds
- { "pal16l8-m92-a-7j.ic41", 0x000104, 0x00000000, 7 | BRF_NODUMP }, // 17
- { "pal16l8-m92-a-9j.ic51", 0x000104, 0x00000000, 7 | BRF_NODUMP }, // 18
- { "pal16l8-m92-b-2l.ic7", 0x000104, 0x00000000, 7 | BRF_NODUMP }, // 19
- { "pal16l8-m92-b-7h.ic47", 0x000104, 0x00000000, 7 | BRF_NODUMP }, // 20
-};
-
-STD_ROM_PICK(majtitl2j)
-STD_ROM_FN(majtitl2j)
-
-struct BurnDriver BurnDrvMajtitl2j = {
- "majtitl2j", "majtitl2", NULL, NULL, "1992",
- "Major Title 2 (Japan)\0", NULL, "Irem", "M92",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_IREM_M92, GBF_SPORTSMISC, 0,
- NULL, majtitl2jRomInfo, majtitl2jRomName, NULL, NULL, p4CommonInputInfo, Majtitl2DIPInfo,
- majtitl2Init, DrvExit, DrvFrame, DrvReDraw, DrvScan, &bRecalcPalette, 0x800,
- 320, 240, 4, 3
-};
-
-
-// The Irem Skins Game (US set 1)
-
-static struct BurnRomInfo skingameRomDesc[] = {
- { "is-h0-d.5m", 0x040000, 0x80940abb, 1 | BRF_PRG | BRF_ESS }, // 0 V33 Code
- { "is-l0-d.5f", 0x040000, 0xb84beed6, 1 | BRF_PRG | BRF_ESS }, // 1
- { "is-h1.5l", 0x040000, 0x9ba8e1f2, 1 | BRF_PRG | BRF_ESS }, // 2
- { "is-l1.5j", 0x040000, 0xe4e00626, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "mt2-sh0-.ic14", 0x010000, 0x1ecbea43, 2 | BRF_PRG | BRF_ESS }, // 4 V30 Code
- { "mt2-sl0-.ic17", 0x010000, 0x8fd5b531, 2 | BRF_PRG | BRF_ESS }, // 5
-
- { "hr0.ic9", 0x040000, 0x7e61e4b5, 3 | BRF_GRA }, // 6 Background Tiles
- { "hr1.ic10", 0x040000, 0x0a667564, 3 | BRF_GRA }, // 7
- { "hr2.ic11", 0x040000, 0x5eb44312, 3 | BRF_GRA }, // 8
- { "hr3.ic12", 0x040000, 0xf2866294, 3 | BRF_GRA }, // 9
-
- { "k30.ic42", 0x100000, 0x8c9a2678, 4 | BRF_GRA }, // 10 Sprites
- { "k31.ic43", 0x100000, 0x5455df78, 4 | BRF_GRA }, // 11
- { "k32.ic44", 0x100000, 0x3a258c41, 4 | BRF_GRA }, // 12
- { "k33.ic45", 0x100000, 0xc1e91a14, 4 | BRF_GRA }, // 13
-
- { "k0d.ic8", 0x080000, 0x713b9e9f, 5 | BRF_SND }, // 14 Irem GA20 Samples
-
- { "mt2eep", 0x000800, 0x208af971, 6 | BRF_PRG | BRF_ESS }, // 15 EEPROM data
-
- { "pal16l8-m92-a-3m.ic11", 0x000104, 0x00000000, 7 | BRF_NODUMP }, // 16 plds
- { "pal16l8-m92-a-7j.ic41", 0x000104, 0x00000000, 7 | BRF_NODUMP }, // 17
- { "pal16l8-m92-a-9j.ic51", 0x000104, 0x00000000, 7 | BRF_NODUMP }, // 18
- { "pal16l8-m92-b-2l.ic7", 0x000104, 0x00000000, 7 | BRF_NODUMP }, // 19
- { "pal16l8-m92-b-7h.ic47", 0x000104, 0x00000000, 7 | BRF_NODUMP }, // 20
-};
-
-STD_ROM_PICK(skingame)
-STD_ROM_FN(skingame)
-
-struct BurnDriver BurnDrvSkingame = {
- "skingame", "majtitl2", NULL, NULL, "1992",
- "The Irem Skins Game (US set 1)\0", NULL, "Irem America", "M92",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_IREM_M92, GBF_SPORTSMISC, 0,
- NULL, skingameRomInfo, skingameRomName, NULL, NULL, p4CommonInputInfo, Majtitl2DIPInfo,
- majtitl2Init, DrvExit, DrvFrame, DrvReDraw, DrvScan, &bRecalcPalette, 0x800,
- 320, 240, 4, 3
-};
-
-
-// The Irem Skins Game (US set 2)
-
-static struct BurnRomInfo skingame2RomDesc[] = {
- { "mt2-h0-a.5m", 0x040000, 0x7c6dbbc7, 1 | BRF_PRG | BRF_ESS }, // 0 V33 Code
- { "mt2-l0-a.5f", 0x040000, 0x9de5f689, 1 | BRF_PRG | BRF_ESS }, // 1
- { "is-h1.5l", 0x040000, 0x9ba8e1f2, 1 | BRF_PRG | BRF_ESS }, // 2
- { "is-l1.5j", 0x040000, 0xe4e00626, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "mt2-sh0-.ic14", 0x010000, 0x1ecbea43, 2 | BRF_PRG | BRF_ESS }, // 4 V30 Code
- { "mt2-sl0-.ic17", 0x010000, 0x8fd5b531, 2 | BRF_PRG | BRF_ESS }, // 5
-
- { "hr0.ic9", 0x040000, 0x7e61e4b5, 3 | BRF_GRA }, // 6 Background Tiles
- { "hr1.ic10", 0x040000, 0x0a667564, 3 | BRF_GRA }, // 7
- { "hr2.ic11", 0x040000, 0x5eb44312, 3 | BRF_GRA }, // 8
- { "hr3.ic12", 0x040000, 0xf2866294, 3 | BRF_GRA }, // 9
-
- { "k30.ic42", 0x100000, 0x8c9a2678, 4 | BRF_GRA }, // 10 Sprites
- { "k31.ic43", 0x100000, 0x5455df78, 4 | BRF_GRA }, // 11
- { "k32.ic44", 0x100000, 0x3a258c41, 4 | BRF_GRA }, // 12
- { "k33.ic45", 0x100000, 0xc1e91a14, 4 | BRF_GRA }, // 13
-
- { "k0d.ic8", 0x080000, 0x713b9e9f, 5 | BRF_SND }, // 14 Irem GA20 Samples
-
- { "mt2eep", 0x000800, 0x208af971, 6 | BRF_PRG | BRF_ESS }, // 15 EEPROM data
-
- { "pal16l8-m92-a-3m.ic11", 0x000104, 0x00000000, 7 | BRF_NODUMP }, // 16 plds
- { "pal16l8-m92-a-7j.ic41", 0x000104, 0x00000000, 7 | BRF_NODUMP }, // 17
- { "pal16l8-m92-a-9j.ic51", 0x000104, 0x00000000, 7 | BRF_NODUMP }, // 18
- { "pal16l8-m92-b-2l.ic7", 0x000104, 0x00000000, 7 | BRF_NODUMP }, // 19
- { "pal16l8-m92-b-7h.ic47", 0x000104, 0x00000000, 7 | BRF_NODUMP }, // 20
-};
-
-STD_ROM_PICK(skingame2)
-STD_ROM_FN(skingame2)
-
-struct BurnDriver BurnDrvSkingame2 = {
- "skingame2", "majtitl2", NULL, NULL, "1992",
- "The Irem Skins Game (US set 2)\0", NULL, "Irem America", "M92",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_IREM_M92, GBF_SPORTSMISC, 0,
- NULL, skingame2RomInfo, skingame2RomName, NULL, NULL, p4CommonInputInfo, Majtitl2DIPInfo,
- majtitl2Init, DrvExit, DrvFrame, DrvReDraw, DrvScan, &bRecalcPalette, 0x800,
- 320, 240, 4, 3
-};
-
diff --git a/jan/src/burn/drv/irem/d_vigilant.cpp b/jan/src/burn/drv/irem/d_vigilant.cpp
deleted file mode 100644
index 193605046..000000000
--- a/jan/src/burn/drv/irem/d_vigilant.cpp
+++ /dev/null
@@ -1,2543 +0,0 @@
-// Based on MAME driver by Mike Balfour
-
-#include "tiles_generic.h"
-#include "z80_intf.h"
-#include "burn_ym2151.h"
-#include "burn_ym2203.h"
-#include "dac.h"
-
-static UINT8 DrvInputPort0[8] = {0, 0, 0, 0, 0, 0, 0, 0};
-static UINT8 DrvInputPort1[8] = {0, 0, 0, 0, 0, 0, 0, 0};
-static UINT8 DrvInputPort2[8] = {0, 0, 0, 0, 0, 0, 0, 0};
-static UINT8 DrvDip[3] = {0, 0, 0};
-static UINT8 DrvInput[3] = {0x00, 0x00, 0x00};
-static UINT8 DrvReset = 0;
-
-static UINT8 *Mem = NULL;
-static UINT8 *MemEnd = NULL;
-static UINT8 *RamStart = NULL;
-static UINT8 *RamEnd = NULL;
-static UINT8 *DrvZ80Rom1 = NULL;
-static UINT8 *DrvZ80Rom2 = NULL;
-static UINT8 *DrvZ80Ram1 = NULL;
-static UINT8 *DrvZ80Ram2 = NULL;
-static UINT8 *DrvVideoRam = NULL;
-static UINT8 *DrvSpriteRam = NULL;
-static UINT8 *DrvPaletteRam = NULL;
-static UINT8 *DrvChars = NULL;
-static UINT8 *DrvBackTiles = NULL;
-static UINT8 *DrvSprites = NULL;
-static UINT8 *DrvSamples = NULL;
-static UINT8 *DrvTempRom = NULL;
-static UINT32 *DrvPalette = NULL;
-
-static UINT8 DrvRomBank;
-static UINT8 DrvSoundLatch;
-static UINT8 DrvIrqVector;
-
-static INT32 DrvRearColour;
-static INT32 DrvRearDisable;
-static INT32 DrvHorizScrollLo;
-static INT32 DrvHorizScrollHi;
-static INT32 DrvRearHorizScrollLo;
-static INT32 DrvRearHorizScrollHi;
-static INT32 DrvSampleAddress;
-
-static INT32 nCyclesDone[2], nCyclesTotal[2];
-static INT32 nCyclesSegment;
-
-static UINT8 DrvHasYM2203 = 0;
-static UINT8 DrvKikcubicDraw = 0;
-
-#define VECTOR_INIT 0
-#define YM2151_ASSERT 1
-#define YM2151_CLEAR 2
-#define Z80_ASSERT 3
-#define Z80_CLEAR 4
-
-static struct BurnInputInfo DrvInputList[] =
-{
- {"Coin 1" , BIT_DIGITAL , DrvInputPort0 + 3, "p1 coin" },
- {"Start 1" , BIT_DIGITAL , DrvInputPort0 + 0, "p1 start" },
- {"Coin 2" , BIT_DIGITAL , DrvInputPort2 + 4, "p2 coin" },
- {"Start 2" , BIT_DIGITAL , DrvInputPort0 + 1, "p2 start" },
-
- {"Up" , BIT_DIGITAL , DrvInputPort1 + 3, "p1 up" },
- {"Down" , BIT_DIGITAL , DrvInputPort1 + 2, "p1 down" },
- {"Left" , BIT_DIGITAL , DrvInputPort1 + 1, "p1 left" },
- {"Right" , BIT_DIGITAL , DrvInputPort1 + 0, "p1 right" },
- {"Fire 1" , BIT_DIGITAL , DrvInputPort1 + 5, "p1 fire 1" },
- {"Fire 2" , BIT_DIGITAL , DrvInputPort1 + 7, "p1 fire 2" },
-
- {"Up (Cocktail)" , BIT_DIGITAL , DrvInputPort2 + 3, "p2 up" },
- {"Down (Cocktail)" , BIT_DIGITAL , DrvInputPort2 + 2, "p2 down" },
- {"Left (Cocktail)" , BIT_DIGITAL , DrvInputPort2 + 1, "p2 left" },
- {"Right (Cocktail)" , BIT_DIGITAL , DrvInputPort2 + 0, "p2 right" },
- {"Fire 1 (Cocktail)" , BIT_DIGITAL , DrvInputPort2 + 5, "p2 fire 1" },
- {"Fire 2 (Cocktail)" , BIT_DIGITAL , DrvInputPort2 + 7, "p2 fire 2" },
-
- {"Reset" , BIT_DIGITAL , &DrvReset , "reset" },
- {"Service" , BIT_DIGITAL , DrvInputPort0 + 2, "service" },
- {"Dip 1" , BIT_DIPSWITCH, DrvDip + 0 , "dip" },
- {"Dip 2" , BIT_DIPSWITCH, DrvDip + 1 , "dip" },
-};
-
-STDINPUTINFO(Drv)
-
-static struct BurnInputInfo BuccanrsInputList[] =
-{
- {"Coin 1" , BIT_DIGITAL , DrvInputPort0 + 4, "p1 coin" },
- {"Start 1" , BIT_DIGITAL , DrvInputPort0 + 7, "p1 start" },
- {"Coin 2" , BIT_DIGITAL , DrvInputPort2 + 4, "p2 coin" },
- {"Start 2" , BIT_DIGITAL , DrvInputPort0 + 6, "p2 start" },
-
- {"Up" , BIT_DIGITAL , DrvInputPort1 + 3, "p1 up" },
- {"Down" , BIT_DIGITAL , DrvInputPort1 + 2, "p1 down" },
- {"Left" , BIT_DIGITAL , DrvInputPort1 + 1, "p1 left" },
- {"Right" , BIT_DIGITAL , DrvInputPort1 + 0, "p1 right" },
- {"Fire 1" , BIT_DIGITAL , DrvInputPort1 + 7, "p1 fire 1" },
- {"Fire 2" , BIT_DIGITAL , DrvInputPort1 + 5, "p1 fire 2" },
-
- {"Up (Cocktail)" , BIT_DIGITAL , DrvInputPort2 + 3, "p2 up" },
- {"Down (Cocktail)" , BIT_DIGITAL , DrvInputPort2 + 2, "p2 down" },
- {"Left (Cocktail)" , BIT_DIGITAL , DrvInputPort2 + 1, "p2 left" },
- {"Right (Cocktail)" , BIT_DIGITAL , DrvInputPort2 + 0, "p2 right" },
- {"Fire 1 (Cocktail)" , BIT_DIGITAL , DrvInputPort2 + 7, "p2 fire 1" },
- {"Fire 2 (Cocktail)" , BIT_DIGITAL , DrvInputPort2 + 5, "p2 fire 2" },
-
- {"Reset" , BIT_DIGITAL , &DrvReset , "reset" },
- {"Dip 1" , BIT_DIPSWITCH, DrvDip + 0 , "dip" },
- {"Dip 2" , BIT_DIPSWITCH, DrvDip + 1 , "dip" },
- {"Dip 3" , BIT_DIPSWITCH, DrvDip + 2 , "dip" },
-};
-
-STDINPUTINFO(Buccanrs)
-
-static struct BurnInputInfo BuccanrsaInputList[] =
-{
- {"Coin 1" , BIT_DIGITAL , DrvInputPort0 + 3, "p1 coin" },
- {"Start 1" , BIT_DIGITAL , DrvInputPort0 + 0, "p1 start" },
- {"Coin 2" , BIT_DIGITAL , DrvInputPort2 + 4, "p2 coin" },
- {"Start 2" , BIT_DIGITAL , DrvInputPort0 + 1, "p2 start" },
-
- {"Up" , BIT_DIGITAL , DrvInputPort1 + 3, "p1 up" },
- {"Down" , BIT_DIGITAL , DrvInputPort1 + 2, "p1 down" },
- {"Left" , BIT_DIGITAL , DrvInputPort1 + 1, "p1 left" },
- {"Right" , BIT_DIGITAL , DrvInputPort1 + 0, "p1 right" },
- {"Fire 1" , BIT_DIGITAL , DrvInputPort1 + 7, "p1 fire 1" },
- {"Fire 2" , BIT_DIGITAL , DrvInputPort1 + 5, "p1 fire 2" },
-
- {"Up (Cocktail)" , BIT_DIGITAL , DrvInputPort2 + 3, "p2 up" },
- {"Down (Cocktail)" , BIT_DIGITAL , DrvInputPort2 + 2, "p2 down" },
- {"Left (Cocktail)" , BIT_DIGITAL , DrvInputPort2 + 1, "p2 left" },
- {"Right (Cocktail)" , BIT_DIGITAL , DrvInputPort2 + 0, "p2 right" },
- {"Fire 1 (Cocktail)" , BIT_DIGITAL , DrvInputPort2 + 7, "p2 fire 1" },
- {"Fire 2 (Cocktail)" , BIT_DIGITAL , DrvInputPort2 + 5, "p2 fire 2" },
-
- {"Reset" , BIT_DIGITAL , &DrvReset , "reset" },
- {"Dip 1" , BIT_DIPSWITCH, DrvDip + 0 , "dip" },
- {"Dip 2" , BIT_DIPSWITCH, DrvDip + 1 , "dip" },
- {"Dip 3" , BIT_DIPSWITCH, DrvDip + 2 , "dip" },
-};
-
-STDINPUTINFO(Buccanrsa)
-
-static struct BurnInputInfo KikcubicInputList[] =
-{
- {"Coin 1" , BIT_DIGITAL , DrvInputPort0 + 4, "p1 coin" },
- {"Start 1" , BIT_DIGITAL , DrvInputPort0 + 0, "p1 start" },
- {"Coin 2" , BIT_DIGITAL , DrvInputPort0 + 5, "p2 coin" },
- {"Start 2" , BIT_DIGITAL , DrvInputPort0 + 1, "p2 start" },
-
- {"Up" , BIT_DIGITAL , DrvInputPort1 + 3, "p1 up" },
- {"Down" , BIT_DIGITAL , DrvInputPort1 + 2, "p1 down" },
- {"Left" , BIT_DIGITAL , DrvInputPort1 + 1, "p1 left" },
- {"Right" , BIT_DIGITAL , DrvInputPort1 + 0, "p1 right" },
- {"Fire 1" , BIT_DIGITAL , DrvInputPort1 + 7, "p1 fire 1" },
- {"Fire 2" , BIT_DIGITAL , DrvInputPort1 + 5, "p1 fire 2" },
-
- {"Up (Cocktail)" , BIT_DIGITAL , DrvInputPort2 + 3, "p2 up" },
- {"Down (Cocktail)" , BIT_DIGITAL , DrvInputPort2 + 2, "p2 down" },
- {"Left (Cocktail)" , BIT_DIGITAL , DrvInputPort2 + 1, "p2 left" },
- {"Right (Cocktail)" , BIT_DIGITAL , DrvInputPort2 + 0, "p2 right" },
- {"Fire 1 (Cocktail)" , BIT_DIGITAL , DrvInputPort2 + 7, "p2 fire 1" },
- {"Fire 2 (Cocktail)" , BIT_DIGITAL , DrvInputPort2 + 5, "p2 fire 2" },
-
- {"Reset" , BIT_DIGITAL , &DrvReset , "reset" },
- {"Dip 1" , BIT_DIPSWITCH, DrvDip + 0 , "dip" },
- {"Dip 2" , BIT_DIPSWITCH, DrvDip + 1 , "dip" },
-};
-
-STDINPUTINFO(Kikcubic)
-
-static inline void DrvClearOpposites(UINT8* nJoystickInputs)
-{
- if ((*nJoystickInputs & 0x03) == 0x03) {
- *nJoystickInputs &= ~0x03;
- }
- if ((*nJoystickInputs & 0x0c) == 0x0c) {
- *nJoystickInputs &= ~0x0c;
- }
-}
-
-static inline void DrvMakeInputs()
-{
- // Reset Inputs
- DrvInput[0] = DrvInput[1] = DrvInput[2] = 0x00;
-
- // Compile Digital Inputs
- for (INT32 i = 0; i < 8; i++) {
- DrvInput[0] |= (DrvInputPort0[i] & 1) << i;
- DrvInput[1] |= (DrvInputPort1[i] & 1) << i;
- DrvInput[2] |= (DrvInputPort2[i] & 1) << i;
- }
-
- // Clear Opposites
- DrvClearOpposites(&DrvInput[1]);
- DrvClearOpposites(&DrvInput[2]);
-}
-
-static struct BurnDIPInfo DrvDIPList[]=
-{
- // Default Values
- {0x12, 0xff, 0xff, 0xff, NULL },
- {0x13, 0xff, 0xff, 0xfd, NULL },
-
- // Dip 1
- {0 , 0xfe, 0 , 4 , "Lives" },
- {0x12, 0x01, 0x03, 0x02, "2" },
- {0x12, 0x01, 0x03, 0x03, "3" },
- {0x12, 0x01, 0x03, 0x01, "4" },
- {0x12, 0x01, 0x03, 0x00, "5" },
-
- {0 , 0xfe, 0 , 2 , "Difficulty" },
- {0x12, 0x01, 0x04, 0x04, "Normal" },
- {0x12, 0x01, 0x04, 0x00, "Hard" },
-
- {0 , 0xfe, 0 , 2 , "Energy Decrease Rate" },
- {0x12, 0x01, 0x08, 0x08, "Slow" },
- {0x12, 0x01, 0x08, 0x00, "Fast" },
-
- {0 , 0xfe, 0 , 16 , "Coinage" },
- {0x12, 0x01, 0xf0, 0xa0, "6 Coins 1 Play" },
- {0x12, 0x01, 0xf0, 0xb0, "5 Coins 1 Play" },
- {0x12, 0x01, 0xf0, 0xc0, "4 Coins 1 Play" },
- {0x12, 0x01, 0xf0, 0xd0, "3 Coins 1 Play" },
- {0x12, 0x01, 0xf0, 0x10, "8 Coins 3 Plays" },
- {0x12, 0x01, 0xf0, 0xe0, "2 Coins 1 Play" },
- {0x12, 0x01, 0xf0, 0x20, "5 Coins 3 Plays" },
- {0x12, 0x01, 0xf0, 0x30, "3 Coins 2 Plays" },
- {0x12, 0x01, 0xf0, 0xf0, "1 Coin 1 Play" },
- {0x12, 0x01, 0xf0, 0x40, "2 Coins 3 Plays" },
- {0x12, 0x01, 0xf0, 0x90, "1 Coin 2 Plays" },
- {0x12, 0x01, 0xf0, 0x80, "1 Coin 3 Plays" },
- {0x12, 0x01, 0xf0, 0x70, "1 Coin 4 Plays" },
- {0x12, 0x01, 0xf0, 0x60, "1 Coin 5 Plays" },
- {0x12, 0x01, 0xf0, 0x50, "1 Coin 6 Plays" },
- {0x12, 0x01, 0xf0, 0x00, "Freeplay" },
-
- // Dip 2
- {0 , 0xfe, 0 , 2 , "Flip Screen" },
- {0x13, 0x01, 0x01, 0x01, "Off" },
- {0x13, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x13, 0x01, 0x02, 0x00, "Upright" },
- {0x13, 0x01, 0x02, 0x02, "Cocktail" },
-
- {0 , 0xfe, 0 , 2 , "Coin Mode" },
- {0x13, 0x01, 0x04, 0x04, "Mode 1" },
- {0x13, 0x01, 0x04, 0x00, "Mode 2" },
-
- {0 , 0xfe, 0 , 2 , "Demo Sounds" },
- {0x13, 0x01, 0x08, 0x00, "Off" },
- {0x13, 0x01, 0x08, 0x08, "On" },
-
- {0 , 0xfe, 0 , 2 , "Allow Continue" },
- {0x13, 0x01, 0x10, 0x00, "Off" },
- {0x13, 0x01, 0x10, 0x10, "On" },
-
- {0 , 0xfe, 0 , 2 , "Stop Mode" },
- {0x13, 0x01, 0x20, 0x20, "Off" },
- {0x13, 0x01, 0x20, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2 , "Invulnerability" },
- {0x13, 0x01, 0x40, 0x40, "Off" },
- {0x13, 0x01, 0x40, 0x00, "On" },
-};
-
-STDDIPINFO(Drv)
-
-static struct BurnDIPInfo BuccanrsDIPList[]=
-{
- // Default Values
- {0x11, 0xff, 0xff, 0x2f, NULL },
- {0x12, 0xff, 0xff, 0xff, NULL },
- {0x13, 0xff, 0xff, 0x7f, NULL },
-
- // Dip 1
- {0 , 0xfe, 0 , 2 , "Service Mode" },
- {0x11, 0x01, 0x01, 0x01, "Off" },
- {0x11, 0x01, 0x01, 0x00, "On" },
-
- // Dip 2
- {0 , 0xfe, 0 , 12 , "Coin A" },
- {0x12, 0x01, 0x0f, 0x04, "4 Coins 1 Play" },
- {0x12, 0x01, 0x0f, 0x07, "3 Coins 1 Play" },
- {0x12, 0x01, 0x0f, 0x00, "5 Coins 2 Plays" },
- {0x12, 0x01, 0x0f, 0x0a, "2 Coins 1 Play" },
- {0x12, 0x01, 0x0f, 0x06, "3 Coins 2 Plays" },
- {0x12, 0x01, 0x0f, 0x03, "4 Coins 3 Plays" },
- {0x12, 0x01, 0x0f, 0x0f, "1 Coin 1 Play" },
- {0x12, 0x01, 0x0f, 0x05, "3 Coins 5 Plays" },
- {0x12, 0x01, 0x0f, 0x0e, "1 Coin 2 Plays" },
- {0x12, 0x01, 0x0f, 0x0d, "1 Coin 3 Plays" },
- {0x12, 0x01, 0x0f, 0x0c, "1 Coin 4 Plays" },
- {0x12, 0x01, 0x0f, 0x0b, "1 Coin 5 Plays" },
-
- {0 , 0xfe, 0 , 12 , "Coin B" },
- {0x12, 0x01, 0xf0, 0x40, "4 Coins 1 Play" },
- {0x12, 0x01, 0xf0, 0x70, "3 Coins 1 Play" },
- {0x12, 0x01, 0xf0, 0x00, "5 Coins 2 Plays" },
- {0x12, 0x01, 0xf0, 0xa0, "2 Coins 1 Play" },
- {0x12, 0x01, 0xf0, 0x60, "3 Coins 2 Plays" },
- {0x12, 0x01, 0xf0, 0x30, "4 Coins 3 Plays" },
- {0x12, 0x01, 0xf0, 0xf0, "1 Coin 1 Play" },
- {0x12, 0x01, 0xf0, 0x50, "3 Coins 5 Plays" },
- {0x12, 0x01, 0xf0, 0xe0, "1 Coin 2 Plays" },
- {0x12, 0x01, 0xf0, 0xd0, "1 Coin 3 Plays" },
- {0x12, 0x01, 0xf0, 0xc0, "1 Coin 4 Plays" },
- {0x12, 0x01, 0xf0, 0xb0, "1 Coin 5 Plays" },
-
- // Dip 3
- {0 , 0xfe, 0 , 2 , "Flip Screen" },
- {0x13, 0x01, 0x01, 0x01, "Off" },
- {0x13, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 4 , "Lives" },
- {0x13, 0x01, 0x06, 0x06, "2" },
- {0x13, 0x01, 0x06, 0x04, "3" },
- {0x13, 0x01, 0x06, 0x02, "4" },
- {0x13, 0x01, 0x06, 0x00, "5" },
-
- {0 , 0xfe, 0 , 4 , "Difficulty" },
- {0x13, 0x01, 0x18, 0x18, "Normal" },
- {0x13, 0x01, 0x18, 0x08, "Medium" },
- {0x13, 0x01, 0x18, 0x10, "Hard" },
- {0x13, 0x01, 0x18, 0x00, "Invincibilty" },
-
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x13, 0x01, 0x20, 0x20, "Upright" },
- {0x13, 0x01, 0x20, 0x00, "Cocktail" },
-
- {0 , 0xfe, 0 , 2 , "Demo Sounds" },
- {0x13, 0x01, 0x40, 0x00, "Off" },
- {0x13, 0x01, 0x40, 0x40, "On" },
-
- {0 , 0xfe, 0 , 2 , "Allow Continue" },
- {0x13, 0x01, 0x80, 0x80, "Off" },
- {0x13, 0x01, 0x80, 0x00, "On" },
-};
-
-STDDIPINFO(Buccanrs)
-
-static struct BurnDIPInfo BuccanrsaDIPList[]=
-{
- // Default Values
- {0x11, 0xff, 0xff, 0xf4, NULL },
- {0x12, 0xff, 0xff, 0xff, NULL },
- {0x13, 0xff, 0xff, 0x7f, NULL },
-
- // Dip 1
- {0 , 0xfe, 0 , 2 , "Service Mode" },
- {0x11, 0x01, 0xf4, 0xf4, "Off" },
- {0x11, 0x01, 0xf4, 0x00, "On" },
-
- // Dip 2
- {0 , 0xfe, 0 , 12 , "Coin A" },
- {0x12, 0x01, 0x0f, 0x04, "4 Coins 1 Play" },
- {0x12, 0x01, 0x0f, 0x07, "3 Coins 1 Play" },
- {0x12, 0x01, 0x0f, 0x00, "5 Coins 2 Plays" },
- {0x12, 0x01, 0x0f, 0x0a, "2 Coins 1 Play" },
- {0x12, 0x01, 0x0f, 0x06, "3 Coins 2 Plays" },
- {0x12, 0x01, 0x0f, 0x03, "4 Coins 3 Plays" },
- {0x12, 0x01, 0x0f, 0x0f, "1 Coin 1 Play" },
- {0x12, 0x01, 0x0f, 0x05, "3 Coins 5 Plays" },
- {0x12, 0x01, 0x0f, 0x0e, "1 Coin 2 Plays" },
- {0x12, 0x01, 0x0f, 0x0d, "1 Coin 3 Plays" },
- {0x12, 0x01, 0x0f, 0x0c, "1 Coin 4 Plays" },
- {0x12, 0x01, 0x0f, 0x0b, "1 Coin 5 Plays" },
-
- {0 , 0xfe, 0 , 12 , "Coin B" },
- {0x12, 0x01, 0xf0, 0x40, "4 Coins 1 Play" },
- {0x12, 0x01, 0xf0, 0x70, "3 Coins 1 Play" },
- {0x12, 0x01, 0xf0, 0x00, "5 Coins 2 Plays" },
- {0x12, 0x01, 0xf0, 0xa0, "2 Coins 1 Play" },
- {0x12, 0x01, 0xf0, 0x60, "3 Coins 2 Plays" },
- {0x12, 0x01, 0xf0, 0x30, "4 Coins 3 Plays" },
- {0x12, 0x01, 0xf0, 0xf0, "1 Coin 1 Play" },
- {0x12, 0x01, 0xf0, 0x50, "3 Coins 5 Plays" },
- {0x12, 0x01, 0xf0, 0xe0, "1 Coin 2 Plays" },
- {0x12, 0x01, 0xf0, 0xd0, "1 Coin 3 Plays" },
- {0x12, 0x01, 0xf0, 0xc0, "1 Coin 4 Plays" },
- {0x12, 0x01, 0xf0, 0xb0, "1 Coin 5 Plays" },
-
- // Dip 3
- {0 , 0xfe, 0 , 2 , "Flip Screen" },
- {0x13, 0x01, 0x01, 0x01, "Off" },
- {0x13, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 4 , "Lives" },
- {0x13, 0x01, 0x06, 0x06, "2" },
- {0x13, 0x01, 0x06, 0x04, "3" },
- {0x13, 0x01, 0x06, 0x02, "4" },
- {0x13, 0x01, 0x06, 0x00, "5" },
-
- {0 , 0xfe, 0 , 4 , "Difficulty" },
- {0x13, 0x01, 0x18, 0x18, "Normal" },
- {0x13, 0x01, 0x18, 0x08, "Medium" },
- {0x13, 0x01, 0x18, 0x10, "Hard" },
- {0x13, 0x01, 0x18, 0x00, "Invincibilty" },
-
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x13, 0x01, 0x20, 0x20, "Upright" },
- {0x13, 0x01, 0x20, 0x00, "Cocktail" },
-
- {0 , 0xfe, 0 , 2 , "Demo Sounds" },
- {0x13, 0x01, 0x40, 0x00, "Off" },
- {0x13, 0x01, 0x40, 0x40, "On" },
-
- {0 , 0xfe, 0 , 2 , "Allow Continue" },
- {0x13, 0x01, 0x80, 0x80, "Off" },
- {0x13, 0x01, 0x80, 0x00, "On" },
-};
-
-STDDIPINFO(Buccanrsa)
-
-static struct BurnDIPInfo KikcubicDIPList[]=
-{
- // Default Values
- {0x11, 0xff, 0xff, 0xff, NULL },
- {0x12, 0xff, 0xff, 0xd5, NULL },
-
- // Dip 1
- {0 , 0xfe, 0 , 4 , "Difficulty" },
- {0x11, 0x01, 0x03, 0x02, "Easy" },
- {0x11, 0x01, 0x03, 0x03, "Medium" },
- {0x11, 0x01, 0x03, 0x01, "Hard" },
- {0x11, 0x01, 0x03, 0x00, "Hardest" },
-
- {0 , 0xfe, 0 , 4 , "Lives" },
- {0x11, 0x01, 0x0c, 0x08, "1" },
- {0x11, 0x01, 0x0c, 0x04, "2" },
- {0x11, 0x01, 0x0c, 0x0c, "3" },
- {0x11, 0x01, 0x0c, 0x00, "4" },
-
- {0 , 0xfe, 0 , 12 , "Coinage" },
- {0x11, 0x01, 0xf0, 0xa0, "6 Coins 1 Play" },
- {0x11, 0x01, 0xf0, 0xb0, "5 Coins 1 Play" },
- {0x11, 0x01, 0xf0, 0xc0, "4 Coins 1 Play" },
- {0x11, 0x01, 0xf0, 0xd0, "3 Coins 1 Play" },
- {0x11, 0x01, 0xf0, 0xe0, "2 Coins 1 Play" },
- {0x11, 0x01, 0xf0, 0xf0, "1 Coin 1 Play" },
- {0x11, 0x01, 0xf0, 0x70, "1 Coin 2 Plays" },
- {0x11, 0x01, 0xf0, 0x60, "1 Coin 3 Plays" },
- {0x11, 0x01, 0xf0, 0x50, "1 Coin 4 Plays" },
- {0x11, 0x01, 0xf0, 0x40, "1 Coin 5 Plays" },
- {0x11, 0x01, 0xf0, 0x30, "1 Coin 6 Plays" },
- {0x11, 0x01, 0xf0, 0x00, "Freeplay" },
-
- // Dip 2
- {0 , 0xfe, 0 , 2 , "Flip Screen" },
- {0x12, 0x01, 0x01, 0x01, "Off" },
- {0x12, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x12, 0x01, 0x02, 0x00, "Upright" },
- {0x12, 0x01, 0x02, 0x02, "Cocktail" },
-
- {0 , 0xfe, 0 , 2 , "Coin Mode" },
- {0x12, 0x01, 0x04, 0x04, "Mode 1" },
- {0x12, 0x01, 0x04, 0x00, "Mode 2" },
-
- {0 , 0xfe, 0 , 2 , "Demo Sounds" },
- {0x12, 0x01, 0x08, 0x08, "Off" },
- {0x12, 0x01, 0x08, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2 , "Invulnerability" },
- {0x12, 0x01, 0x10, 0x10, "Off" },
- {0x12, 0x01, 0x10, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2 , "Level Select" },
- {0x12, 0x01, 0x20, 0x20, "Off" },
- {0x12, 0x01, 0x20, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2 , "Player Adding" },
- {0x12, 0x01, 0x40, 0x40, "Off" },
- {0x12, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2 , "Service Mode" },
- {0x12, 0x01, 0x80, 0x80, "Off" },
- {0x12, 0x01, 0x80, 0x00, "On" },
-};
-
-STDDIPINFO(Kikcubic)
-
-static struct BurnRomInfo DrvRomDesc[] = {
- { "VG_A-8H-E.ic55", 0x08000, 0x0d4e6866, BRF_ESS | BRF_PRG }, // 0 Z80 #1 Program Code
- { "VG_A-8L-A.ic57", 0x10000, 0x690d812f, BRF_ESS | BRF_PRG }, // 1
-
- { "VG_A-5J-.ic37", 0x10000, 0x10582b2d, BRF_ESS | BRF_PRG }, // 2 Z80 #2 Program
-
- { "VG_B-4F-.ic34", 0x10000, 0x01579d20, BRF_GRA }, // 3 Characters
- { "VG_B-4J-.ic35", 0x10000, 0x4f5872f0, BRF_GRA }, // 4
-
- { "VG_B-6L-.ic62", 0x20000, 0xfbe9552d, BRF_GRA }, // 5 Sprites
- { "VG_B-6K-.ic61", 0x20000, 0xae09d5c0, BRF_GRA }, // 6
- { "VG_B-6P-.ic64", 0x20000, 0xafb77461, BRF_GRA }, // 7
- { "VG_B-6N-.ic63", 0x20000, 0x5065cd35, BRF_GRA }, // 8
-
- { "VG_B-1D-.ic2", 0x10000, 0x81b1ee5c, BRF_GRA }, // 9 Background
- { "VG_B-1F-.ic3", 0x10000, 0xd0d33673, BRF_GRA }, // 10
- { "VG_B-1H-.ic4", 0x10000, 0xaae81695, BRF_GRA }, // 11
-
- { "VG_A-4D-.ic26", 0x10000, 0x9b85101d, BRF_SND }, // 12 Samples
-
- { "VG_B-8R.ic90", 0x00117, 0xdf368a7a, BRF_GRA }, // 13 PALs
- { "VG_B-4M.ic38", 0x00117, 0xdbca4204, BRF_GRA }, // 14
- { "VG_B-1B.ic1", 0x00117, 0x922e5167, BRF_GRA }, // 15
-
- { "tbp24s10_7a.ic52", 0x00100, 0xc324835e, BRF_OPT }, // 16 Video Timing PROM
-};
-
-STD_ROM_PICK(Drv)
-STD_ROM_FN(Drv)
-
-static struct BurnRomInfo Drv1RomDesc[] = {
- { "VG_A-8H-C.ic55", 0x08000, 0xd72682e8, BRF_ESS | BRF_PRG }, // 0 Z80 #1 Program Code
- { "VG_A-8L-A.ic57", 0x10000, 0x690d812f, BRF_ESS | BRF_PRG }, // 1
-
- { "VG_A-5J-.ic37", 0x10000, 0x10582b2d, BRF_ESS | BRF_PRG }, // 2 Z80 #2 Program
-
- { "613.ic34", 0x20000, 0xee7a6c2f, BRF_GRA }, // 3 Characters
- { "614.ic35", 0x20000, 0x6422e8ba, BRF_GRA }, // 4
-
- { "616.ic62", 0x20000, 0xfbe9552d, BRF_GRA }, // 5 Sprites
- { "615.ic61", 0x20000, 0xae09d5c0, BRF_GRA }, // 6
- { "618.ic64", 0x20000, 0xafb77461, BRF_GRA }, // 7
- { "617.ic63", 0x20000, 0x5065cd35, BRF_GRA }, // 8
-
- { "619.ic2", 0x20000, 0x9e2f8759, BRF_GRA }, // 9 Background
- { "612.ic4", 0x20000, 0x85057c81, BRF_GRA }, // 10
-
- { "VG_A-4D-.ic26", 0x10000, 0x9b85101d, BRF_SND }, // 11 Samples
-
- { "VG_B-8R.ic90", 0x00117, 0xdf368a7a, BRF_GRA }, // 12 PALs
- { "VG_B-4M.ic38", 0x00117, 0xdbca4204, BRF_GRA }, // 13
- { "VG_B-1B.ic1", 0x00117, 0x922e5167, BRF_GRA }, // 14
-
- { "tbp24s10_7a.ic52", 0x00100, 0xc324835e, BRF_OPT }, // 15 Video Timing PROM
-};
-
-STD_ROM_PICK(Drv1)
-STD_ROM_FN(Drv1)
-
-static struct BurnRomInfo DrvuRomDesc[] = {
- { "VG_A-8H-.ic55", 0x08000, 0x8d15109e, BRF_ESS | BRF_PRG }, // 0 Z80 #1 Program Code
- { "VG_A-8L-.ic57", 0x10000, 0x7f95799b, BRF_ESS | BRF_PRG }, // 1
-
- { "VG_A-5J-.ic37", 0x10000, 0x10582b2d, BRF_ESS | BRF_PRG }, // 2 Z80 #2 Program
-
- { "613.ic34", 0x20000, 0xee7a6c2f, BRF_GRA }, // 3 Characters
- { "614.ic35", 0x20000, 0x6422e8ba, BRF_GRA }, // 4
-
- { "616.ic62", 0x20000, 0xfbe9552d, BRF_GRA }, // 5 Sprites
- { "615.ic61", 0x20000, 0xae09d5c0, BRF_GRA }, // 6
- { "618.ic64", 0x20000, 0xafb77461, BRF_GRA }, // 7
- { "617.ic63", 0x20000, 0x5065cd35, BRF_GRA }, // 8
-
- { "619.ic2", 0x20000, 0x9e2f8759, BRF_GRA }, // 9 Background
- { "612.ic4", 0x20000, 0x85057c81, BRF_GRA }, // 10
-
- { "VG_A-4D-.ic26", 0x10000, 0x9b85101d, BRF_SND }, // 11 Samples
-
- { "VG_B-8R.ic90", 0x00117, 0xdf368a7a, BRF_GRA }, // 12 PALs
- { "VG_B-4M.ic38", 0x00117, 0xdbca4204, BRF_GRA }, // 13
- { "VG_B-1B.ic1", 0x00117, 0x922e5167, BRF_GRA }, // 14
-
- { "tbp24s10_7a.ic52", 0x00100, 0xc324835e, BRF_OPT }, // 15 Video Timing PROM
-};
-
-STD_ROM_PICK(Drvu)
-STD_ROM_FN(Drvu)
-
-static struct BurnRomInfo Drvu2RomDesc[] = {
- { "VG_A-8H-G.ic55", 0x08000, 0x9444c04e, BRF_ESS | BRF_PRG }, // 0 Z80 #1 Program Code
- { "VG_A-8L-.ic57", 0x10000, 0x7f95799b, BRF_ESS | BRF_PRG }, // 1
-
- { "VG_A-5J-.ic37", 0x10000, 0x10582b2d, BRF_ESS | BRF_PRG }, // 2 Z80 #2 Program
-
- { "VG_B-4F-.ic34", 0x10000, 0x01579d20, BRF_GRA }, // 3 Characters
- { "VG_B-4J-.ic35", 0x10000, 0x4f5872f0, BRF_GRA }, // 4
-
- { "VG_B-6L-.ic62", 0x20000, 0xfbe9552d, BRF_GRA }, // 5 Sprites
- { "VG_B-6K-.ic61", 0x20000, 0xae09d5c0, BRF_GRA }, // 6
- { "VG_B-6P-.ic64", 0x20000, 0xafb77461, BRF_GRA }, // 7
- { "VG_B-6N-.ic63", 0x20000, 0x5065cd35, BRF_GRA }, // 8
-
- { "VG_B-1D-.ic2", 0x10000, 0x81b1ee5c, BRF_GRA }, // 9 Background
- { "VG_B-1F-.ic3", 0x10000, 0xd0d33673, BRF_GRA }, // 10
- { "VG_B-1H-.ic4", 0x10000, 0xaae81695, BRF_GRA }, // 11
-
- { "VG_A-4D-.ic26", 0x10000, 0x9b85101d, BRF_SND }, // 12 Samples
-
- { "VG_B-8R.ic90", 0x00117, 0xdf368a7a, BRF_GRA }, // 13 PALs
- { "VG_B-4M.ic38", 0x00117, 0xdbca4204, BRF_GRA }, // 14
- { "VG_B-1B.ic1", 0x00117, 0x922e5167, BRF_GRA }, // 15
-
- { "tbp24s10_7a.ic52", 0x00100, 0xc324835e, BRF_OPT }, // 16 Video Timing PROM
-};
-
-STD_ROM_PICK(Drvu2)
-STD_ROM_FN(Drvu2)
-
-static struct BurnRomInfo DrvjRomDesc[] = {
- { "VG_A-8H-D.ic55", 0x08000, 0xba848713, BRF_ESS | BRF_PRG }, // 0 Z80 #1 Program Code
- { "VG_A-8L-D.ic57", 0x10000, 0x3b12b1d8, BRF_ESS | BRF_PRG }, // 1
-
- { "VG_A-5J-D.ic37", 0x10000, 0x10582b2d, BRF_ESS | BRF_PRG }, // 2 Z80 #2 Program
-
- { "613.ic34", 0x20000, 0xee7a6c2f, BRF_GRA }, // 3 Characters
- { "614.ic35", 0x20000, 0x6422e8ba, BRF_GRA }, // 4
-
- { "616.ic62", 0x20000, 0xfbe9552d, BRF_GRA }, // 5 Sprites
- { "615.ic61", 0x20000, 0xae09d5c0, BRF_GRA }, // 6
- { "618.ic64", 0x20000, 0xafb77461, BRF_GRA }, // 7
- { "617.ic63", 0x20000, 0x5065cd35, BRF_GRA }, // 8
-
- { "619.ic2", 0x20000, 0x9e2f8759, BRF_GRA }, // 9 Background
- { "612.ic4", 0x20000, 0x85057c81, BRF_GRA }, // 10
-
- { "VG_A-4D-D.ic26", 0x10000, 0x9b85101d, BRF_SND }, // 11 Samples
-
- { "VG_B-8R.ic90", 0x00117, 0xdf368a7a, BRF_GRA }, // 12 PALs
- { "VG_B-4M.ic38", 0x00117, 0xdbca4204, BRF_GRA }, // 13
- { "VG_B-1B.ic1", 0x00117, 0x922e5167, BRF_GRA }, // 14
-
- { "tbp24s10_7a.ic52", 0x00100, 0xc324835e, BRF_OPT }, // 15 Video Timing PROM
-};
-
-STD_ROM_PICK(Drvj)
-STD_ROM_FN(Drvj)
-
-static struct BurnRomInfo DrvbRomDesc[] = {
- { "g07_c03.bin", 0x08000, 0x9dcca081, BRF_ESS | BRF_PRG }, // 0 Z80 #1 Program Code
- { "j07_c04.bin", 0x10000, 0xe0159105, BRF_ESS | BRF_PRG }, // 1
-
- { "g05_c02.bin", 0x10000, 0x10582b2d, BRF_ESS | BRF_PRG }, // 2 Z80 #2 Program
-
- { "f05_c08.bin", 0x10000, 0x01579d20, BRF_GRA }, // 3 Characters
- { "h05_c09.bin", 0x10000, 0x4f5872f0, BRF_GRA }, // 4
-
- { "n07_c12.bin", 0x10000, 0x10af8eb2, BRF_GRA }, // 5 Sprites
- { "k07_c10.bin", 0x10000, 0x9576f304, BRF_GRA }, // 6
- { "o07_c13.bin", 0x10000, 0xb1d9d4dc, BRF_GRA }, // 7
- { "l07_c11.bin", 0x10000, 0x4598be4a, BRF_GRA }, // 8
- { "t07_c16.bin", 0x10000, 0xf5425e42, BRF_GRA }, // 9
- { "p07_c14.bin", 0x10000, 0xcb50a17c, BRF_GRA }, // 10
- { "v07_c17.bin", 0x10000, 0x959ba3c7, BRF_GRA }, // 11
- { "s07_c15.bin", 0x10000, 0x7f2e91c5, BRF_GRA }, // 12
-
- { "d01_c05.bin", 0x10000, 0x81b1ee5c, BRF_GRA }, // 13 Background
- { "e01_c06.bin", 0x10000, 0xd0d33673, BRF_GRA }, // 14
- { "f01_c07.bin", 0x10000, 0xaae81695, BRF_GRA }, // 15
-
- { "d04_c01.bin", 0x10000, 0x9b85101d, BRF_SND }, // 16 Samples
-
- { "VG_B-8R.ic90", 0x00117, 0xdf368a7a, BRF_GRA }, // 17 PALs
- { "VG_B-4M.ic38", 0x00117, 0xdbca4204, BRF_GRA }, // 18
- { "VG_B-1B.ic1", 0x00117, 0x922e5167, BRF_GRA }, // 19
-};
-
-STD_ROM_PICK(Drvb)
-STD_ROM_FN(Drvb)
-
-static struct BurnRomInfo VigilantaRomDesc[] = {
- { "VG_A-8H-A.ic55", 0x08000, 0x97df1454, BRF_ESS | BRF_PRG }, // 0 Z80 #1 Program Code
- { "VG_A-8L-A.ic57", 0x10000, 0x690d812f, BRF_ESS | BRF_PRG }, // 1
-
- { "VG_A-5J-A.ic37", 0x10000, 0x10582b2d, BRF_ESS | BRF_PRG }, // 2 Z80 #2 Program
-
- { "613.ic34", 0x20000, 0xee7a6c2f, BRF_GRA }, // 3 Characters
- { "614.ic35", 0x20000, 0x6422e8ba, BRF_GRA }, // 4
-
- { "616.ic62", 0x20000, 0xfbe9552d, BRF_GRA }, // 5 Sprites
- { "615.ic61", 0x20000, 0xae09d5c0, BRF_GRA }, // 6
- { "618.ic64", 0x20000, 0xafb77461, BRF_GRA }, // 7
- { "617.ic63", 0x20000, 0x5065cd35, BRF_GRA }, // 8
-
- { "619.ic2", 0x20000, 0x9e2f8759, BRF_GRA }, // 9 Background
- { "612.ic4", 0x20000, 0x85057c81, BRF_GRA }, // 10
-
- { "VG_A-4D-A.ic26", 0x10000, 0x9b85101d, BRF_SND }, // 11 Samples
-
- { "VG_B-8R.ic90", 0x00117, 0xdf368a7a, BRF_GRA }, // 12 PALs
- { "VG_B-4M.ic38", 0x00117, 0xdbca4204, BRF_GRA }, // 13
- { "VG_B-1B.ic1", 0x00117, 0x922e5167, BRF_GRA }, // 14
-
- { "tbp24s10_7a.ic52", 0x00100, 0xc324835e, BRF_OPT }, // 15 Video Timing PROM
-};
-
-STD_ROM_PICK(Vigilanta)
-STD_ROM_FN(Vigilanta)
-
-static struct BurnRomInfo VigilantbRomDesc[] = {
- { "VG_A-8H-B.ic55", 0x08000, 0x05350c2a, BRF_ESS | BRF_PRG }, // 0 Z80 #1 Program Code
- { "VG_A-8L-.ic57", 0x10000, 0x7f95799b, BRF_ESS | BRF_PRG }, // 1
-
- { "VG_A-5J-.ic37", 0x10000, 0x10582b2d, BRF_ESS | BRF_PRG }, // 2 Z80 #2 Program
-
- { "613.ic34", 0x20000, 0xee7a6c2f, BRF_GRA }, // 3 Characters
- { "614.ic35", 0x20000, 0x6422e8ba, BRF_GRA }, // 4
-
- { "616.ic62", 0x20000, 0xfbe9552d, BRF_GRA }, // 5 Sprites
- { "615.ic61", 0x20000, 0xae09d5c0, BRF_GRA }, // 6
- { "618.ic64", 0x20000, 0xafb77461, BRF_GRA }, // 7
- { "617.ic63", 0x20000, 0x5065cd35, BRF_GRA }, // 8
-
- { "619.ic2", 0x20000, 0x9e2f8759, BRF_GRA }, // 9 Background
- { "612.ic4", 0x20000, 0x85057c81, BRF_GRA }, // 10
-
- { "VG_A-4D-.ic26", 0x10000, 0x9b85101d, BRF_SND }, // 11 Samples
-
- { "VG_B-8R.ic90", 0x00117, 0xdf368a7a, BRF_GRA }, // 12 PALs
- { "VG_B-4M.ic38", 0x00117, 0xdbca4204, BRF_GRA }, // 13
- { "VG_B-1B.ic1", 0x00117, 0x922e5167, BRF_GRA }, // 14
-
- { "tbp24s10_7a.ic52", 0x00100, 0xc324835e, BRF_OPT }, // 15 Video Timing PROM
-};
-
-STD_ROM_PICK(Vigilantb)
-STD_ROM_FN(Vigilantb)
-
-static struct BurnRomInfo BuccanrsRomDesc[] = {
- { "BC-011_K-163.U58", 0x10000, 0xbf1d7e6f, BRF_ESS | BRF_PRG }, // 0 Z80 #1 Program Code
- { "BC-012_K-163.U25", 0x10000, 0x87303ba8, BRF_ESS | BRF_PRG }, // 1
-
- { "BC-001_K-0161.U128", 0x10000, 0xeb65f8c3, BRF_ESS | BRF_PRG }, // 2 Z80 #2 Program
-
- { "BC-003_K-0161.U212", 0x10000, 0x95e3c517, BRF_GRA }, // 3 Characters
- { "BC-004_K-0161.U189", 0x10000, 0xfe2377ab, BRF_GRA }, // 4
-
- { "BC-005_K-0161.U113", 0x20000, 0x16dc435f, BRF_GRA }, // 5 Sprites
- { "BC-006_K-161.U80", 0x10000, 0x4fe3bf97, BRF_GRA }, // 6
- { "BC-008_K-161.U52", 0x20000, 0x078aef7f, BRF_GRA }, // 7
- { "BC-007_K-161.U70", 0x10000, 0xf650fa90, BRF_GRA }, // 8
-
- { "BC-009_K-163.U49", 0x20000, 0x0c6188fb, BRF_GRA }, // 9 Background
- { "BC-010_K-163.U27", 0x20000, 0x2d383ff8, BRF_GRA }, // 10
-
- { "BC-002_K-0161.U74", 0x10000, 0x36ee1dac, BRF_SND }, // 11 Samples
-
- { "prom1.u54", 0x00100, 0xc324835e, BRF_GRA }, // 12 PROMs
- { "prom4.u79", 0x00100, 0xe6506ef4, BRF_GRA }, // 13
- { "prom3.u88", 0x00100, 0xb43d094f, BRF_GRA }, // 14
- { "prom2.u99", 0x00100, 0xe0aa8869, BRF_GRA }, // 15
-
- { "pal16l8.u103", 0x00104, 0x00000000, BRF_GRA | BRF_NODUMP }, // 16 PALs
- { "pal16l8.u156", 0x00104, 0x00000000, BRF_GRA | BRF_NODUMP }, // 17
- { "pal16l8.u42", 0x00104, 0x00000000, BRF_GRA | BRF_NODUMP }, // 18
-};
-
-STD_ROM_PICK(Buccanrs)
-STD_ROM_FN(Buccanrs)
-
-static struct BurnRomInfo BuccanrsaRomDesc[] = {
- { "bc-011", 0x08000, 0x6b657ef1, BRF_ESS | BRF_PRG }, // 0 Z80 #1 Program Code
- { "BC-012_K-163.U25", 0x10000, 0x87303ba8, BRF_ESS | BRF_PRG }, // 1
-
- { "BC-001_K-0161.U128", 0x10000, 0xeb65f8c3, BRF_ESS | BRF_PRG }, // 2 Z80 #2 Program
-
- { "BC-003_K-0161.U212", 0x10000, 0x95e3c517, BRF_GRA }, // 3 Characters
- { "BC-004_K-0161.U189", 0x10000, 0xfe2377ab, BRF_GRA }, // 4
-
- { "BC-005_K-0161.U113", 0x20000, 0x16dc435f, BRF_GRA }, // 5 Sprites
- { "BC-006_K-161.U80", 0x10000, 0x4fe3bf97, BRF_GRA }, // 6
- { "BC-008_K-161.U52", 0x20000, 0x078aef7f, BRF_GRA }, // 7
- { "BC-007_K-161.U70", 0x10000, 0xf650fa90, BRF_GRA }, // 8
-
- { "BC-009_K-163.U49", 0x20000, 0x0c6188fb, BRF_GRA }, // 9 Background
- { "BC-010_K-163.U27", 0x20000, 0x2d383ff8, BRF_GRA }, // 10
-
- { "BC-002_K-0161.U74", 0x10000, 0x36ee1dac, BRF_SND }, // 11 Samples
-
- { "prom1.u54", 0x00100, 0xc324835e, BRF_GRA }, // 12 PROMs
- { "prom4.u79", 0x00100, 0xe6506ef4, BRF_GRA }, // 13
- { "prom3.u88", 0x00100, 0xb43d094f, BRF_GRA }, // 14
- { "prom2.u99", 0x00100, 0xe0aa8869, BRF_GRA }, // 15
-};
-
-STD_ROM_PICK(Buccanrsa)
-STD_ROM_FN(Buccanrsa)
-
-static struct BurnRomInfo BuccanrsbRomDesc[] = {
- { "rr_Du.u58", 0x08000, 0xdcad3a8b, BRF_ESS | BRF_PRG }, // 0 Z80 #1 Program Code
- { "BC-012_K-163.U25", 0x10000, 0x87303ba8, BRF_ESS | BRF_PRG }, // 1
-
- { "BC-001_K-0161.U128", 0x10000, 0xeb65f8c3, BRF_ESS | BRF_PRG }, // 2 Z80 #2 Program
-
- { "BC-003_K-0161.U212", 0x10000, 0x95e3c517, BRF_GRA }, // 3 Characters
- { "BC-004_K-0161.U189", 0x10000, 0xfe2377ab, BRF_GRA }, // 4
-
- { "BC-005_K-0161.U113", 0x20000, 0x16dc435f, BRF_GRA }, // 5 Sprites
- { "BC-006_K-161.U80", 0x10000, 0x4fe3bf97, BRF_GRA }, // 6
- { "BC-008_K-161.U52", 0x20000, 0x078aef7f, BRF_GRA }, // 7
- { "BC-007_K-161.U70", 0x10000, 0xf650fa90, BRF_GRA }, // 8
-
- { "BC-009_K-163.U49", 0x20000, 0x0c6188fb, BRF_GRA }, // 9 Background
- { "BC-010_K-163.U27", 0x20000, 0x2d383ff8, BRF_GRA }, // 10
-
- { "BC-002_K-0161.U74", 0x10000, 0x36ee1dac, BRF_SND }, // 11 Samples
-
- { "prom1.u54", 0x00100, 0xc324835e, BRF_GRA }, // 12 PROMs
- { "prom4.u79", 0x00100, 0xe6506ef4, BRF_GRA }, // 13
- { "prom3.u88", 0x00100, 0xb43d094f, BRF_GRA }, // 14
- { "prom2.u99", 0x00100, 0xe0aa8869, BRF_GRA }, // 15
-};
-
-STD_ROM_PICK(Buccanrsb)
-STD_ROM_FN(Buccanrsb)
-
-static struct BurnRomInfo KikcubicRomDesc[] = {
- { "mqj-p0", 0x08000, 0x9cef394a, BRF_ESS | BRF_PRG }, // 0 Z80 #1 Program Code
- { "mqj-b0", 0x10000, 0xd9bcf4cd, BRF_ESS | BRF_PRG }, // 1
- { "mqj-b1", 0x10000, 0x54a0abe1, BRF_ESS | BRF_PRG }, // 2
-
- { "mqj-sp", 0x10000, 0xbbcf3582, BRF_ESS | BRF_PRG }, // 3 Z80 #2 Program
-
- { "mqj-c0", 0x10000, 0x975585c5, BRF_GRA }, // 4 Characters
- { "mqj-c1", 0x10000, 0x49d9936d, BRF_GRA }, // 5
-
- { "mqj-00", 0x40000, 0x7fb0c58f, BRF_GRA }, // 6 Sprites
- { "mqj-10", 0x40000, 0x3a189205, BRF_GRA }, // 7
-
- { "mqj-v0", 0x10000, 0x54762956, BRF_SND }, // 8 Samples
-
- { "8d", 0x00100, 0x7379bb12, BRF_GRA }, // 9 PROMs
- { "6h", 0x00020, 0xface0cbb, BRF_GRA }, // 10
- { "7s", 0x00020, 0xface0cbb, BRF_GRA }, // 11
-};
-
-STD_ROM_PICK(Kikcubic)
-STD_ROM_FN(Kikcubic)
-
-static struct BurnRomInfo KikcubicbRomDesc[] = {
- { "1.bin", 0x08000, 0xd3a589ba, BRF_ESS | BRF_PRG }, // 0 Z80 #1 Program Code
- { "4.bin", 0x10000, 0x9ae1e1a6, BRF_ESS | BRF_PRG }, // 1
- { "5.bin", 0x08000, 0xa5a6bffd, BRF_ESS | BRF_PRG }, // 2
-
- { "mqj-sp", 0x10000, 0xbbcf3582, BRF_ESS | BRF_PRG }, // 3 Z80 #2 Program
-
- { "7.bin", 0x10000, 0x1788d51a, BRF_GRA }, // 4 Characters
- { "mqj-c1", 0x10000, 0x49d9936d, BRF_GRA }, // 5
-
- { "11.bin", 0x10000, 0x0f0cac92, BRF_GRA }, // 6 Sprites
- { "10.bin", 0x10000, 0x7d3822a8, BRF_GRA }, // 7
- { "9.bin", 0x10000, 0x56fb4fa3, BRF_GRA }, // 8
- { "8.bin", 0x10000, 0x947dbd4e, BRF_GRA }, // 9
-
- { "mqj-v0", 0x10000, 0x54762956, BRF_SND }, // 10 Samples
-
- { "8d", 0x00100, 0x7379bb12, BRF_GRA }, // 11 PROMs
- { "6h", 0x00020, 0xface0cbb, BRF_GRA }, // 12
- { "7s", 0x00020, 0xface0cbb, BRF_GRA }, // 13
-};
-
-STD_ROM_PICK(Kikcubicb)
-STD_ROM_FN(Kikcubicb)
-
-static INT32 MemIndex()
-{
- UINT8 *Next; Next = Mem;
-
- DrvZ80Rom1 = Next; Next += 0x28000;
- DrvZ80Rom2 = Next; Next += 0x10000;
- DrvSamples = Next; Next += 0x10000;
-
- RamStart = Next;
-
- DrvZ80Ram1 = Next; Next += 0x02000;
- DrvZ80Ram2 = Next; Next += 0x01000;
- DrvSpriteRam = Next; Next += 0x00100;
- DrvPaletteRam = Next; Next += 0x00800;
- DrvVideoRam = Next; Next += 0x01000;
- DrvPalette = (UINT32*)Next; Next += (512 + 32) * sizeof(UINT32);
-
- RamEnd = Next;
-
- DrvChars = Next; Next += 0x1000 * 8 * 8;
- DrvSprites = Next; Next += 0x1000 * 16 * 16;
- DrvBackTiles = Next; Next += 0x4000 * 32;
-
- MemEnd = Next;
-
- return 0;
-}
-
-static void DrvSetVector(INT32 Status)
-{
- switch (Status) {
- case VECTOR_INIT: {
- DrvIrqVector = 0xff;
- break;
- }
-
- case YM2151_ASSERT: {
- DrvIrqVector &= 0xef;
- break;
- }
-
- case YM2151_CLEAR: {
- DrvIrqVector |= 0x10;
- break;
- }
-
- case Z80_ASSERT: {
- DrvIrqVector &= 0xdf;
- break;
- }
-
- case Z80_CLEAR: {
- DrvIrqVector |= 0x20;
- break;
- }
- }
-
- if (DrvIrqVector == 0xff) {
-// ZetSetVector(DrvIrqVector);
- ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
- } else {
- ZetSetVector(DrvIrqVector);
- ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
- nCyclesDone[1] += ZetRun(1000);
- }
-}
-
-static INT32 DrvDoReset()
-{
- for (INT32 i = 0; i < 2; i++) {
- ZetOpen(i);
- ZetReset();
- if (i == 1) DrvSetVector(VECTOR_INIT);
- ZetClose();
- }
-
- if (DrvHasYM2203) {
- BurnYM2203Reset();
- } else {
- BurnYM2151Reset();
- }
-
- DACReset();
-
- DrvRomBank = 0;
- DrvSoundLatch = 0;
- DrvRearColour = 0;
- DrvRearDisable = 0;
- DrvHorizScrollLo = 0;
- DrvHorizScrollHi = 0;
- DrvRearHorizScrollLo = 0;
- DrvRearHorizScrollHi = 0;
- DrvSampleAddress = 0;
-
- return 0;
-}
-
-UINT8 __fastcall VigilanteZ80Read1(UINT16 a)
-{
- switch (a) {
- default: {
-// bprintf(PRINT_NORMAL, _T("Z80 #1 Read => %04X\n"), a);
- }
- }
-
- return 0;
-}
-
-void __fastcall VigilanteZ80Write1(UINT16 a, UINT8 d)
-{
- if (a >= 0xc020 && a <= 0xc0df) {
- DrvSpriteRam[a - 0xc020] = d;
- return;
- }
-
- if (a >= 0xc800 && a <= 0xcfff) {
- INT32 Offset = a & 0x7ff;
- INT32 Bank = Offset & 0x400;
- INT32 r, g, b;
-
- DrvPaletteRam[Offset] = d;
-
- Offset &= 0xff;
- r = (DrvPaletteRam[Bank + Offset + 0x000] << 3) & 0xff;
- g = (DrvPaletteRam[Bank + Offset + 0x100] << 3) & 0xff;
- b = (DrvPaletteRam[Bank + Offset + 0x200] << 3) & 0xff;
-
- DrvPalette[(Bank >> 2) + Offset] = BurnHighCol(r, g, b, 0);
- return;
- }
-
- switch (a) {
- default: {
-// bprintf(PRINT_NORMAL, _T("Z80 #1 Write => %04X, %02X\n"), a, d);
- }
- }
-}
-
-UINT8 __fastcall VigilanteZ80PortRead1(UINT16 a)
-{
- a &= 0xff;
-
- switch (a) {
- case 0x00: {
- return 0xff - DrvInput[0];
- }
-
- case 0x01: {
- return 0xff - DrvInput[1];
- }
-
- case 0x02: {
- return 0xff - DrvInput[2];
- }
-
- case 0x03: {
- return DrvDip[0];
- }
-
- case 0x04: {
- return DrvDip[1];
- }
-
- default: {
-// bprintf(PRINT_NORMAL, _T("Z80 #1 Port Read => %02X\n"), a);
- }
- }
-
- return 0;
-}
-
-UINT8 __fastcall BuccanrsZ80PortRead1(UINT16 a)
-{
- a &= 0xff;
-
- switch (a) {
- case 0x00: {
- return (0xd0 - DrvInput[0]) | DrvDip[0];
- }
-
- case 0x01: {
- return 0xff - DrvInput[1];
- }
-
- case 0x02: {
- return 0xff - DrvInput[2];
- }
-
- case 0x03: {
- return DrvDip[1];
- }
-
- case 0x04: {
- return DrvDip[2];
- }
-
- default: {
-// bprintf(PRINT_NORMAL, _T("Z80 #1 Port Read => %02X\n"), a);
- }
- }
-
- return 0;
-}
-
-UINT8 __fastcall BuccanrsaZ80PortRead1(UINT16 a)
-{
- a &= 0xff;
-
- switch (a) {
- case 0x00: {
- return (0x0b - DrvInput[0]) | DrvDip[0];
- }
-
- case 0x01: {
- return 0xff - DrvInput[1];
- }
-
- case 0x02: {
- return 0xff - DrvInput[2];
- }
-
- case 0x03: {
- return DrvDip[1];
- }
-
- case 0x04: {
- return DrvDip[2];
- }
-
- default: {
-// bprintf(PRINT_NORMAL, _T("Z80 #1 Port Read => %02X\n"), a);
- }
- }
-
- return 0;
-}
-
-void __fastcall VigilanteZ80PortWrite1(UINT16 a, UINT8 d)
-{
- a &= 0xff;
-
- switch (a) {
- case 0x00: {
- DrvSoundLatch = d;
- ZetClose();
- ZetOpen(1);
- DrvSetVector(Z80_ASSERT);
- ZetClose();
- ZetOpen(0);
- return;
- }
-
- case 0x01: {
- // output port?
- return;
- }
-
- case 0x04: {
- DrvRomBank = d & 0x07;
- ZetMapArea(0x8000, 0xbfff, 0, DrvZ80Rom1 + 0x10000 + (DrvRomBank * 0x4000));
- ZetMapArea(0x8000, 0xbfff, 2, DrvZ80Rom1 + 0x10000 + (DrvRomBank * 0x4000));
- return;
- }
-
- case 0x80: {
- DrvHorizScrollLo = d;
- return;
- }
-
- case 0x81: {
- DrvHorizScrollHi = (d & 0x01) << 8;
- return;
- }
-
- case 0x82: {
- DrvRearHorizScrollLo = d;
- return;
- }
-
- case 0x83: {
- DrvRearHorizScrollHi = (d & 0x07) << 8;
- return;
- }
-
- case 0x84: {
- DrvRearColour = d & 0x0d;
- DrvRearDisable = d & 0x40;
- return;
- }
-
- default: {
-// bprintf(PRINT_NORMAL, _T("Z80 #1 Port Write => %02X, %02X\n"), a, d);
- }
- }
-}
-
-UINT8 __fastcall KikcubicZ80Read1(UINT16 a)
-{
- switch (a) {
- default: {
-// bprintf(PRINT_NORMAL, _T("Z80 #1 Read => %04X\n"), a);
- }
- }
-
- return 0;
-}
-
-void __fastcall KikcubicZ80Write1(UINT16 a, UINT8 d)
-{
- if (a >= 0xc800 && a <= 0xcaff) {
- INT32 Offset = a & 0x3ff;
- INT32 Bank = 0; /*Offset & 0x400;*/ // always bank 0 due to shortened palette ram in kikcubic
- INT32 r, g, b;
-
- DrvPaletteRam[Offset] = d;
-
- Offset &= 0xff;
- r = (DrvPaletteRam[Bank + Offset + 0x000] << 3) & 0xff;
- g = (DrvPaletteRam[Bank + Offset + 0x100] << 3) & 0xff;
- b = (DrvPaletteRam[Bank + Offset + 0x200] << 3) & 0xff;
-
- DrvPalette[(Bank >> 2) + Offset] = BurnHighCol(r, g, b, 0);
- return;
- }
-
- switch (a) {
- default: {
-// bprintf(PRINT_NORMAL, _T("Z80 #1 Write => %04X, %02X\n"), a, d);
- }
- }
-}
-
-UINT8 __fastcall KikcubicZ80PortRead1(UINT16 a)
-{
- a &= 0xff;
-
- switch (a) {
- case 0x00: {
- return DrvDip[0];
- }
-
- case 0x01: {
- return DrvDip[1];
- }
-
- case 0x02: {
- return 0xff - DrvInput[1];
- }
-
- case 0x03: {
- return 0xff - DrvInput[0];
- }
-
- case 0x04: {
- return 0xff - DrvInput[2];
- }
-
- default: {
-// bprintf(PRINT_NORMAL, _T("Z80 #1 Port Read => %02X\n"), a);
- }
- }
-
- return 0;
-}
-
-void __fastcall KikcubicZ80PortWrite1(UINT16 a, UINT8 d)
-{
- a &= 0xff;
-
- switch (a) {
- case 0x00: {
- // coin write
- return;
- }
-
- case 0x04: {
- DrvRomBank = d & 0x07;
- ZetMapArea(0x8000, 0xbfff, 0, DrvZ80Rom1 + 0x10000 + (DrvRomBank * 0x4000));
- ZetMapArea(0x8000, 0xbfff, 2, DrvZ80Rom1 + 0x10000 + (DrvRomBank * 0x4000));
- return;
- }
-
- case 0x06: {
- if (d == 0x20) return; // ???
- DrvSoundLatch = d;
- ZetClose();
- ZetOpen(1);
- DrvSetVector(Z80_ASSERT);
- ZetClose();
- ZetOpen(0);
- return;
- }
-
- case 0x07: {
- // nop???
- return;
- }
-
- default: {
-// bprintf(PRINT_NORMAL, _T("Z80 #1 Port Write => %02X, %02X\n"), a, d);
- }
- }
-}
-
-UINT8 __fastcall VigilanteZ80Read2(UINT16 a)
-{
- switch (a) {
- default: {
-// bprintf(PRINT_NORMAL, _T("Z80 #2 Read => %04X\n"), a);
- }
- }
-
- return 0;
-}
-
-void __fastcall VigilanteZ80Write2(UINT16 a, UINT8 /*d*/)
-{
- switch (a) {
- default: {
-// bprintf(PRINT_NORMAL, _T("Z80 #2 Write => %04X, %02X\n"), a, d);
- }
- }
-}
-
-UINT8 __fastcall VigilanteZ80PortRead2(UINT16 a)
-{
- a &= 0xff;
-
- switch (a) {
- case 0x01: {
- return BurnYM2151ReadStatus();
- }
-
- case 0x80: {
- return DrvSoundLatch;
- }
-
- case 0x84: {
- return DrvSamples[DrvSampleAddress];
- }
-
- default: {
-// bprintf(PRINT_NORMAL, _T("Z80 #2 Port Read => %02X\n"), a);
- }
- }
-
- return 0;
-}
-
-void __fastcall VigilanteZ80PortWrite2(UINT16 a, UINT8 d)
-{
- a &= 0xff;
-
- switch (a) {
- case 0x00: {
- BurnYM2151SelectRegister(d);
- return;
- }
-
- case 0x01: {
- BurnYM2151WriteRegister(d);
- return;
- }
-
- case 0x80: {
- DrvSampleAddress = (DrvSampleAddress & 0xff00) | ((d << 0) & 0x00ff);
- return;
- }
-
- case 0x81: {
- DrvSampleAddress = (DrvSampleAddress & 0x00ff) | ((d << 8) & 0xff00);
- return;
- }
-
- case 0x82: {
- DACSignedWrite(0, d);
- DrvSampleAddress = (DrvSampleAddress + 1) & 0xffff;
- return;
- }
-
- case 0x83: {
- DrvSetVector(Z80_CLEAR);
- return;
- }
-
- default: {
-// bprintf(PRINT_NORMAL, _T("Z80 #2 Port Write => %02X, %02X\n"), a, d);
- }
- }
-}
-
-UINT8 __fastcall BuccanrsZ80PortRead2(UINT16 a)
-{
- a &= 0xff;
-
- switch (a) {
- case 0x00: {
- return YM2203Read(0, 0);
- }
-
- case 0x02: {
- return YM2203Read(1, 0);
- }
-
- case 0x80: {
- return DrvSoundLatch;
- }
-
- case 0x84: {
- return DrvSamples[DrvSampleAddress];
- }
-
- default: {
-// bprintf(PRINT_NORMAL, _T("Z80 #2 Port Read => %02X\n"), a);
- }
- }
-
- return 0;
-}
-
-void __fastcall BuccanrsZ80PortWrite2(UINT16 a, UINT8 d)
-{
- a &= 0xff;
-
- switch (a) {
- case 0x00: {
- BurnYM2203Write(0, 0, d);
- return;
- }
-
- case 0x01: {
- BurnYM2203Write(0, 1, d);
- return;
- }
-
- case 0x02: {
- BurnYM2203Write(1, 0, d);
- return;
- }
-
- case 0x03: {
- BurnYM2203Write(1, 1, d);
- return;
- }
-
- case 0x80: {
- DrvSampleAddress = (DrvSampleAddress & 0xff00) | ((d << 0) & 0x00ff);
- return;
- }
-
- case 0x81: {
- DrvSampleAddress = (DrvSampleAddress & 0x00ff) | ((d << 8) & 0xff00);
- return;
- }
-
- case 0x82: {
- DACSignedWrite(0, d);
- DrvSampleAddress = (DrvSampleAddress + 1) & 0xffff;
- return;
- }
-
- case 0x83: {
- DrvSetVector(Z80_CLEAR);
- return;
- }
-
- default: {
-// bprintf(PRINT_NORMAL, _T("Z80 #2 Port Write => %02X, %02X\n"), a, d);
- }
- }
-}
-
-static void VigilantYM2151IrqHandler(INT32 Irq)
-{
- if (Irq) {
- DrvSetVector(YM2151_ASSERT);
- } else {
- DrvSetVector(YM2151_CLEAR);
- }
-}
-
-inline static void BuccanrsYM2203IRQHandler(INT32, INT32 nStatus)
-{
- if (nStatus & 1) {
- DrvSetVector(YM2151_ASSERT);
- } else {
- DrvSetVector(YM2151_CLEAR);
- }
-}
-
-inline static INT32 BuccanrsSynchroniseStream(INT32 nSoundRate)
-{
- return (INT64)ZetTotalCycles() * nSoundRate / (18432000 / 6);
-}
-
-inline static double BuccanrsGetTime()
-{
- return (double)ZetTotalCycles() / (18432000 / 6);
-}
-
-static INT32 VigilantSyncDAC()
-{
- return (INT32)(float)(nBurnSoundLen * (ZetTotalCycles() / ((nCyclesTotal[1] * 55.0000) / (nBurnFPS / 100.0000))));
-}
-
-static INT32 CharPlaneOffsets[4] = { 0x80000, 0x80004, 0, 4 };
-static INT32 CharXOffsets[8] = { 0, 1, 2, 3, 64, 65, 66, 67 };
-static INT32 CharYOffsets[8] = { 0, 8, 16, 24, 32, 40, 48, 56 };
-static INT32 SpritePlaneOffsets[4] = { 0x200000, 0x200004, 0, 4 };
-static INT32 SpriteXOffsets[16] = { 0, 1, 2, 3, 128, 129, 130, 131, 256, 257, 258, 259, 384, 385, 386, 387 };
-static INT32 SpriteYOffsets[16] = { 0, 8, 16, 24, 32, 40, 48, 56, 64, 72, 80, 88, 96, 104, 112, 120 };
-static INT32 BackTilePlaneOffsets[4] = { 0, 2, 4, 6 };
-static INT32 BackTileXOffsets[32] = { 1, 0, 9, 8, 17, 16, 25, 24, 33, 32, 41, 40, 49, 48, 57, 56, 65, 64, 73, 72, 81, 80, 89, 88, 97, 96, 105, 104, 113, 112, 121, 120 };
-static INT32 BackTileYOffsets[1] = { 0 };
-static INT32 BuccSpriteXOffsets[16] = { 3, 2, 1, 0, 131, 130, 129, 128, 259, 258, 257, 256, 387, 386, 385, 384 };
-static INT32 BuccBackTilePlaneOffsets[4] = { 6, 4, 2, 0 };
-
-static INT32 DrvInit()
-{
- INT32 nRet = 0, nLen;
-
- // Allocate and Blank all required memory
- Mem = NULL;
- MemIndex();
- nLen = MemEnd - (UINT8 *)0;
- if ((Mem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(Mem, 0, nLen);
- MemIndex();
-
- DrvTempRom = (UINT8 *)BurnMalloc(0x80000);
-
- // Load Z80 #1 Program Roms
- nRet = BurnLoadRom(DrvZ80Rom1 + 0x00000, 0, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvZ80Rom1 + 0x10000, 1, 1); if (nRet != 0) return 1;
-
- // Load Z80 #2 Program Roms
- nRet = BurnLoadRom(DrvZ80Rom2 + 0x00000, 2, 1); if (nRet != 0) return 1;
-
- // Load and decode the chars
- nRet = BurnLoadRom(DrvTempRom + 0x00000, 3, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x10000, 4, 1); if (nRet != 0) return 1;
- GfxDecode(0x1000, 4, 8, 8, CharPlaneOffsets, CharXOffsets, CharYOffsets, 0x80, DrvTempRom, DrvChars);
-
- // Load and decode the sprites
- UINT8 *tmp2 = (UINT8*)BurnMalloc(0x20000);
- memset(DrvTempRom, 0, 0x80000);
- nRet = BurnLoadRom(tmp2 + 0x00000, 5, 1); if (nRet != 0) return 1;
- memcpy(DrvTempRom + 0x00000, tmp2 + 0x00000, 0x10000);
- memcpy(DrvTempRom + 0x20000, tmp2 + 0x10000, 0x10000);
- nRet = BurnLoadRom(tmp2 + 0x00000, 6, 1); if (nRet != 0) return 1;
- memcpy(DrvTempRom + 0x10000, tmp2 + 0x00000, 0x10000);
- memcpy(DrvTempRom + 0x30000, tmp2 + 0x10000, 0x10000);
- nRet = BurnLoadRom(tmp2 + 0x00000, 7, 1); if (nRet != 0) return 1;
- memcpy(DrvTempRom + 0x40000, tmp2 + 0x00000, 0x10000);
- memcpy(DrvTempRom + 0x60000, tmp2 + 0x10000, 0x10000);
- nRet = BurnLoadRom(tmp2 + 0x00000, 8, 1); if (nRet != 0) return 1;
- memcpy(DrvTempRom + 0x50000, tmp2 + 0x00000, 0x10000);
- memcpy(DrvTempRom + 0x70000, tmp2 + 0x10000, 0x10000);
- GfxDecode(0x1000, 4, 16, 16, SpritePlaneOffsets, SpriteXOffsets, SpriteYOffsets, 0x200, DrvTempRom, DrvSprites);
- BurnFree(tmp2);
-
- // Load and decode the bg tiles
- memset(DrvTempRom, 0, 0x80000);
- nRet = BurnLoadRom(DrvTempRom + 0x00000, 9, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x10000, 10, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x20000, 11, 1); if (nRet != 0) return 1;
- GfxDecode(0x4000, 4, 32, 1, BackTilePlaneOffsets, BackTileXOffsets, BackTileYOffsets, 0x80, DrvTempRom, DrvBackTiles);
-
- BurnFree(DrvTempRom);
-
- // Load sample Roms
- nRet = BurnLoadRom(DrvSamples + 0x00000, 12, 1); if (nRet != 0) return 1;
-
- // Setup the Z80 emulation
- ZetInit(0);
- ZetOpen(0);
- ZetSetReadHandler(VigilanteZ80Read1);
- ZetSetWriteHandler(VigilanteZ80Write1);
- ZetSetInHandler(VigilanteZ80PortRead1);
- ZetSetOutHandler(VigilanteZ80PortWrite1);
- ZetMapArea(0x0000, 0x7fff, 0, DrvZ80Rom1 );
- ZetMapArea(0x0000, 0x7fff, 2, DrvZ80Rom1 );
- ZetMapArea(0x8000, 0xbfff, 0, DrvZ80Rom1 + 0x10000 );
- ZetMapArea(0x8000, 0xbfff, 2, DrvZ80Rom1 + 0x10000 );
- ZetMapArea(0xc800, 0xcfff, 0, DrvPaletteRam );
- ZetMapArea(0xc800, 0xcfff, 2, DrvPaletteRam );
- ZetMapArea(0xd000, 0xdfff, 0, DrvVideoRam );
- ZetMapArea(0xd000, 0xdfff, 1, DrvVideoRam );
- ZetMapArea(0xd000, 0xdfff, 2, DrvVideoRam );
- ZetMapArea(0xe000, 0xefff, 0, DrvZ80Ram1 );
- ZetMapArea(0xe000, 0xefff, 1, DrvZ80Ram1 );
- ZetMapArea(0xe000, 0xefff, 2, DrvZ80Ram1 );
- ZetClose();
-
- ZetInit(1);
- ZetOpen(1);
- ZetSetReadHandler(VigilanteZ80Read2);
- ZetSetWriteHandler(VigilanteZ80Write2);
- ZetSetInHandler(VigilanteZ80PortRead2);
- ZetSetOutHandler(VigilanteZ80PortWrite2);
- ZetMapArea(0x0000, 0xbfff, 0, DrvZ80Rom2 );
- ZetMapArea(0x0000, 0xbfff, 2, DrvZ80Rom2 );
- ZetMapArea(0xf000, 0xffff, 0, DrvZ80Ram2 );
- ZetMapArea(0xf000, 0xffff, 1, DrvZ80Ram2 );
- ZetMapArea(0xf000, 0xffff, 2, DrvZ80Ram2 );
- ZetClose();
-
- BurnSetRefreshRate(55.0);
- nCyclesTotal[0] = 3579645 / 55;
- nCyclesTotal[1] = 3579645 / 55;
-
- GenericTilesInit();
- BurnYM2151Init(3579645);
- BurnYM2151SetIrqHandler(&VigilantYM2151IrqHandler);
- BurnYM2151SetRoute(BURN_SND_YM2151_YM2151_ROUTE_1, 0.55, BURN_SND_ROUTE_LEFT);
- BurnYM2151SetRoute(BURN_SND_YM2151_YM2151_ROUTE_2, 0.55, BURN_SND_ROUTE_RIGHT);
- DACInit(0, 0, 1, VigilantSyncDAC);
- DACSetRoute(0, 0.45, BURN_SND_ROUTE_BOTH);
-
- DrvDoReset();
-
- return 0;
-}
-
-static INT32 DrvcInit()
-{
- INT32 nRet = 0, nLen;
-
- // Allocate and Blank all required memory
- Mem = NULL;
- MemIndex();
- nLen = MemEnd - (UINT8 *)0;
- if ((Mem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(Mem, 0, nLen);
- MemIndex();
-
- DrvTempRom = (UINT8 *)BurnMalloc(0x80000);
-
- // Load Z80 #1 Program Roms
- nRet = BurnLoadRom(DrvZ80Rom1 + 0x00000, 0, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvZ80Rom1 + 0x10000, 1, 1); if (nRet != 0) return 1;
-
- // Load Z80 #2 Program Roms
- nRet = BurnLoadRom(DrvZ80Rom2 + 0x00000, 2, 1); if (nRet != 0) return 1;
-
- // Load and decode the chars
- nRet = BurnLoadRom(DrvTempRom + 0x00000, 3, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x10000, 4, 1); if (nRet != 0) return 1;
- GfxDecode(0x1000, 4, 8, 8, CharPlaneOffsets, CharXOffsets, CharYOffsets, 0x80, DrvTempRom, DrvChars);
-
- // Load and decode the sprites
- UINT8 *tmp2 = (UINT8*)BurnMalloc(0x20000);
- memset(DrvTempRom, 0, 0x80000);
- nRet = BurnLoadRom(tmp2 + 0x00000, 5, 1); if (nRet != 0) return 1;
- memcpy(DrvTempRom + 0x00000, tmp2 + 0x00000, 0x10000);
- memcpy(DrvTempRom + 0x20000, tmp2 + 0x10000, 0x10000);
- nRet = BurnLoadRom(tmp2 + 0x00000, 6, 1); if (nRet != 0) return 1;
- memcpy(DrvTempRom + 0x10000, tmp2 + 0x00000, 0x10000);
- memcpy(DrvTempRom + 0x30000, tmp2 + 0x10000, 0x10000);
- nRet = BurnLoadRom(tmp2 + 0x00000, 7, 1); if (nRet != 0) return 1;
- memcpy(DrvTempRom + 0x40000, tmp2 + 0x00000, 0x10000);
- memcpy(DrvTempRom + 0x60000, tmp2 + 0x10000, 0x10000);
- nRet = BurnLoadRom(tmp2 + 0x00000, 8, 1); if (nRet != 0) return 1;
- memcpy(DrvTempRom + 0x50000, tmp2 + 0x00000, 0x10000);
- memcpy(DrvTempRom + 0x70000, tmp2 + 0x10000, 0x10000);
- GfxDecode(0x1000, 4, 16, 16, SpritePlaneOffsets, SpriteXOffsets, SpriteYOffsets, 0x200, DrvTempRom, DrvSprites);
- BurnFree(tmp2);
-
- // Load and decode the bg tiles
- memset(DrvTempRom, 0, 0x80000);
- nRet = BurnLoadRom(DrvTempRom + 0x00000, 9, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x20000, 10, 1); if (nRet != 0) return 1;
- GfxDecode(0x4000, 4, 32, 1, BackTilePlaneOffsets, BackTileXOffsets, BackTileYOffsets, 0x80, DrvTempRom, DrvBackTiles);
-
- BurnFree(DrvTempRom);
-
- // Load sample Roms
- nRet = BurnLoadRom(DrvSamples + 0x00000, 11, 1); if (nRet != 0) return 1;
-
- // Setup the Z80 emulation
- ZetInit(0);
- ZetOpen(0);
- ZetSetReadHandler(VigilanteZ80Read1);
- ZetSetWriteHandler(VigilanteZ80Write1);
- ZetSetInHandler(VigilanteZ80PortRead1);
- ZetSetOutHandler(VigilanteZ80PortWrite1);
- ZetMapArea(0x0000, 0x7fff, 0, DrvZ80Rom1 );
- ZetMapArea(0x0000, 0x7fff, 2, DrvZ80Rom1 );
- ZetMapArea(0x8000, 0xbfff, 0, DrvZ80Rom1 + 0x10000 );
- ZetMapArea(0x8000, 0xbfff, 2, DrvZ80Rom1 + 0x10000 );
- ZetMapArea(0xc800, 0xcfff, 0, DrvPaletteRam );
- ZetMapArea(0xc800, 0xcfff, 2, DrvPaletteRam );
- ZetMapArea(0xd000, 0xdfff, 0, DrvVideoRam );
- ZetMapArea(0xd000, 0xdfff, 1, DrvVideoRam );
- ZetMapArea(0xd000, 0xdfff, 2, DrvVideoRam );
- ZetMapArea(0xe000, 0xefff, 0, DrvZ80Ram1 );
- ZetMapArea(0xe000, 0xefff, 1, DrvZ80Ram1 );
- ZetMapArea(0xe000, 0xefff, 2, DrvZ80Ram1 );
- ZetClose();
-
- ZetInit(1);
- ZetOpen(1);
- ZetSetReadHandler(VigilanteZ80Read2);
- ZetSetWriteHandler(VigilanteZ80Write2);
- ZetSetInHandler(VigilanteZ80PortRead2);
- ZetSetOutHandler(VigilanteZ80PortWrite2);
- ZetMapArea(0x0000, 0xbfff, 0, DrvZ80Rom2 );
- ZetMapArea(0x0000, 0xbfff, 2, DrvZ80Rom2 );
- ZetMapArea(0xf000, 0xffff, 0, DrvZ80Ram2 );
- ZetMapArea(0xf000, 0xffff, 1, DrvZ80Ram2 );
- ZetMapArea(0xf000, 0xffff, 2, DrvZ80Ram2 );
- ZetClose();
-
- BurnSetRefreshRate(55.0);
- nCyclesTotal[0] = 3579645 / 55;
- nCyclesTotal[1] = 3579645 / 55;
-
- GenericTilesInit();
- BurnYM2151Init(3579645);
- BurnYM2151SetIrqHandler(&VigilantYM2151IrqHandler);
- BurnYM2151SetRoute(BURN_SND_YM2151_YM2151_ROUTE_1, 0.55, BURN_SND_ROUTE_LEFT);
- BurnYM2151SetRoute(BURN_SND_YM2151_YM2151_ROUTE_2, 0.55, BURN_SND_ROUTE_RIGHT);
- DACInit(0, 0, 1, VigilantSyncDAC);
- DACSetRoute(0, 0.45, BURN_SND_ROUTE_BOTH);
-
- DrvDoReset();
-
- return 0;
-}
-
-static INT32 DrvbInit()
-{
- INT32 nRet = 0, nLen;
-
- // Allocate and Blank all required memory
- Mem = NULL;
- MemIndex();
- nLen = MemEnd - (UINT8 *)0;
- if ((Mem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(Mem, 0, nLen);
- MemIndex();
-
- DrvTempRom = (UINT8 *)BurnMalloc(0x80000);
-
- // Load Z80 #1 Program Roms
- nRet = BurnLoadRom(DrvZ80Rom1 + 0x00000, 0, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvZ80Rom1 + 0x10000, 1, 1); if (nRet != 0) return 1;
-
- // Load Z80 #2 Program Roms
- nRet = BurnLoadRom(DrvZ80Rom2 + 0x00000, 2, 1); if (nRet != 0) return 1;
-
- // Load and decode the chars
- nRet = BurnLoadRom(DrvTempRom + 0x00000, 3, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x10000, 4, 1); if (nRet != 0) return 1;
- GfxDecode(0x1000, 4, 8, 8, CharPlaneOffsets, CharXOffsets, CharYOffsets, 0x80, DrvTempRom, DrvChars);
-
- // Load and decode the sprites
- memset(DrvTempRom, 0, 0x80000);
- nRet = BurnLoadRom(DrvTempRom + 0x00000, 5, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x10000, 6, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x20000, 7, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x30000, 8, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x40000, 9, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x50000, 10, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x60000, 11, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x70000, 12, 1); if (nRet != 0) return 1;
- GfxDecode(0x1000, 4, 16, 16, SpritePlaneOffsets, SpriteXOffsets, SpriteYOffsets, 0x200, DrvTempRom, DrvSprites);
-
- // Load and decode the bg tiles
- memset(DrvTempRom, 0, 0x80000);
- nRet = BurnLoadRom(DrvTempRom + 0x00000, 13, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x10000, 14, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x20000, 15, 1); if (nRet != 0) return 1;
- GfxDecode(0x4000, 4, 32, 1, BackTilePlaneOffsets, BackTileXOffsets, BackTileYOffsets, 0x80, DrvTempRom, DrvBackTiles);
-
- BurnFree(DrvTempRom);
-
- // Load sample Roms
- nRet = BurnLoadRom(DrvSamples + 0x00000, 16, 1); if (nRet != 0) return 1;
-
- // Setup the Z80 emulation
- ZetInit(0);
- ZetOpen(0);
- ZetSetReadHandler(VigilanteZ80Read1);
- ZetSetWriteHandler(VigilanteZ80Write1);
- ZetSetInHandler(VigilanteZ80PortRead1);
- ZetSetOutHandler(VigilanteZ80PortWrite1);
- ZetMapArea(0x0000, 0x7fff, 0, DrvZ80Rom1 );
- ZetMapArea(0x0000, 0x7fff, 2, DrvZ80Rom1 );
- ZetMapArea(0x8000, 0xbfff, 0, DrvZ80Rom1 + 0x10000 );
- ZetMapArea(0x8000, 0xbfff, 2, DrvZ80Rom1 + 0x10000 );
- ZetMapArea(0xc800, 0xcfff, 0, DrvPaletteRam );
- ZetMapArea(0xc800, 0xcfff, 2, DrvPaletteRam );
- ZetMapArea(0xd000, 0xdfff, 0, DrvVideoRam );
- ZetMapArea(0xd000, 0xdfff, 1, DrvVideoRam );
- ZetMapArea(0xd000, 0xdfff, 2, DrvVideoRam );
- ZetMapArea(0xe000, 0xefff, 0, DrvZ80Ram1 );
- ZetMapArea(0xe000, 0xefff, 1, DrvZ80Ram1 );
- ZetMapArea(0xe000, 0xefff, 2, DrvZ80Ram1 );
- ZetClose();
-
- ZetInit(1);
- ZetOpen(1);
- ZetSetReadHandler(VigilanteZ80Read2);
- ZetSetWriteHandler(VigilanteZ80Write2);
- ZetSetInHandler(VigilanteZ80PortRead2);
- ZetSetOutHandler(VigilanteZ80PortWrite2);
- ZetMapArea(0x0000, 0xbfff, 0, DrvZ80Rom2 );
- ZetMapArea(0x0000, 0xbfff, 2, DrvZ80Rom2 );
- ZetMapArea(0xf000, 0xffff, 0, DrvZ80Ram2 );
- ZetMapArea(0xf000, 0xffff, 1, DrvZ80Ram2 );
- ZetMapArea(0xf000, 0xffff, 2, DrvZ80Ram2 );
- ZetClose();
-
- BurnSetRefreshRate(55.0);
- nCyclesTotal[0] = 3579645 / 55;
- nCyclesTotal[1] = 3579645 / 55;
-
- GenericTilesInit();
- BurnYM2151Init(3579645);
- BurnYM2151SetIrqHandler(&VigilantYM2151IrqHandler);
- BurnYM2151SetRoute(BURN_SND_YM2151_YM2151_ROUTE_1, 0.55, BURN_SND_ROUTE_LEFT);
- BurnYM2151SetRoute(BURN_SND_YM2151_YM2151_ROUTE_2, 0.55, BURN_SND_ROUTE_RIGHT);
- DACInit(0, 0, 1, VigilantSyncDAC);
- DACSetRoute(0, 0.45, BURN_SND_ROUTE_BOTH);
-
- DrvDoReset();
-
- return 0;
-}
-
-static INT32 BuccanrsInit()
-{
- INT32 nRet = 0, nLen;
-
- // Allocate and Blank all required memory
- Mem = NULL;
- MemIndex();
- nLen = MemEnd - (UINT8 *)0;
- if ((Mem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(Mem, 0, nLen);
- MemIndex();
-
- DrvTempRom = (UINT8 *)BurnMalloc(0x80000);
-
- // Load Z80 #1 Program Roms
- nRet = BurnLoadRom(DrvZ80Rom1 + 0x00000, 0, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvZ80Rom1 + 0x10000, 1, 1); if (nRet != 0) return 1;
-
- // Load Z80 #2 Program Roms
- nRet = BurnLoadRom(DrvZ80Rom2 + 0x00000, 2, 1); if (nRet != 0) return 1;
-
- // Load and decode the chars
- nRet = BurnLoadRom(DrvTempRom + 0x00000, 3, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x10000, 4, 1); if (nRet != 0) return 1;
- GfxDecode(0x1000, 4, 8, 8, CharPlaneOffsets, CharXOffsets, CharYOffsets, 0x80, DrvTempRom, DrvChars);
-
- // Load and decode the sprites
- memset(DrvTempRom, 0, 0x80000);
- nRet = BurnLoadRom(DrvTempRom + 0x00000, 5, 1); if (nRet != 0) return 1;
- memcpy(DrvTempRom + 0x20000, DrvTempRom + 0x10000, 0x10000);
- nRet = BurnLoadRom(DrvTempRom + 0x10000, 6, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x40000, 7, 1); if (nRet != 0) return 1;
- memcpy(DrvTempRom + 0x60000, DrvTempRom + 0x50000, 0x10000);
- nRet = BurnLoadRom(DrvTempRom + 0x50000, 8, 1); if (nRet != 0) return 1;
- GfxDecode(0x1000, 4, 16, 16, SpritePlaneOffsets, BuccSpriteXOffsets, SpriteYOffsets, 0x200, DrvTempRom, DrvSprites);
-
- // Load and decode the bg tiles
- memset(DrvTempRom, 0, 0x80000);
- nRet = BurnLoadRom(DrvTempRom + 0x20000, 9, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x00000, 10, 1); if (nRet != 0) return 1;
- GfxDecode(0x4000, 4, 32, 1, BuccBackTilePlaneOffsets, BackTileXOffsets, BackTileYOffsets, 0x80, DrvTempRom, DrvBackTiles);
-
- BurnFree(DrvTempRom);
-
- // Load sample Roms
- nRet = BurnLoadRom(DrvSamples + 0x00000, 11, 1); if (nRet != 0) return 1;
-
- // Setup the Z80 emulation
- ZetInit(0);
- ZetOpen(0);
- ZetSetReadHandler(VigilanteZ80Read1);
- ZetSetWriteHandler(VigilanteZ80Write1);
- ZetSetInHandler(BuccanrsZ80PortRead1);
- ZetSetOutHandler(VigilanteZ80PortWrite1);
- if (!strcmp(BurnDrvGetTextA(DRV_NAME), "buccanrsa")) ZetSetInHandler(BuccanrsaZ80PortRead1);
- ZetMapArea(0x0000, 0x7fff, 0, DrvZ80Rom1 );
- ZetMapArea(0x0000, 0x7fff, 2, DrvZ80Rom1 );
- ZetMapArea(0x8000, 0xbfff, 0, DrvZ80Rom1 + 0x10000 );
- ZetMapArea(0x8000, 0xbfff, 2, DrvZ80Rom1 + 0x10000 );
- ZetMapArea(0xc800, 0xcfff, 0, DrvPaletteRam );
- ZetMapArea(0xc800, 0xcfff, 2, DrvPaletteRam );
- ZetMapArea(0xd000, 0xdfff, 0, DrvVideoRam );
- ZetMapArea(0xd000, 0xdfff, 1, DrvVideoRam );
- ZetMapArea(0xd000, 0xdfff, 2, DrvVideoRam );
- ZetMapArea(0xe000, 0xefff, 0, DrvZ80Ram1 );
- ZetMapArea(0xe000, 0xefff, 1, DrvZ80Ram1 );
- ZetMapArea(0xe000, 0xefff, 2, DrvZ80Ram1 );
- ZetClose();
-
- ZetInit(1);
- ZetOpen(1);
- ZetSetReadHandler(VigilanteZ80Read2);
- ZetSetWriteHandler(VigilanteZ80Write2);
- ZetSetInHandler(BuccanrsZ80PortRead2);
- ZetSetOutHandler(BuccanrsZ80PortWrite2);
- ZetMapArea(0x0000, 0xbfff, 0, DrvZ80Rom2 );
- ZetMapArea(0x0000, 0xbfff, 2, DrvZ80Rom2 );
- ZetMapArea(0xf000, 0xffff, 0, DrvZ80Ram2 );
- ZetMapArea(0xf000, 0xffff, 1, DrvZ80Ram2 );
- ZetMapArea(0xf000, 0xffff, 2, DrvZ80Ram2 );
- ZetClose();
-
- BurnSetRefreshRate(55.0);
- nCyclesTotal[0] = 5688800 / 55;
- nCyclesTotal[1] = (18432000 / 6) / 55;
-
- GenericTilesInit();
-
- DrvHasYM2203 = 1;
- BurnYM2203Init(2, 18432000 / 6, &BuccanrsYM2203IRQHandler, BuccanrsSynchroniseStream, BuccanrsGetTime, 0);
- BurnTimerAttachZet(18432000 / 6);
- BurnYM2203SetRoute(0, BURN_SND_YM2203_YM2203_ROUTE, 0.50, BURN_SND_ROUTE_BOTH);
- BurnYM2203SetRoute(0, BURN_SND_YM2203_AY8910_ROUTE_1, 0.35, BURN_SND_ROUTE_BOTH);
- BurnYM2203SetRoute(0, BURN_SND_YM2203_AY8910_ROUTE_2, 0.35, BURN_SND_ROUTE_BOTH);
- BurnYM2203SetRoute(0, BURN_SND_YM2203_AY8910_ROUTE_3, 0.35, BURN_SND_ROUTE_BOTH);
- BurnYM2203SetRoute(1, BURN_SND_YM2203_YM2203_ROUTE, 0.50, BURN_SND_ROUTE_BOTH);
- BurnYM2203SetRoute(1, BURN_SND_YM2203_AY8910_ROUTE_1, 0.35, BURN_SND_ROUTE_BOTH);
- BurnYM2203SetRoute(1, BURN_SND_YM2203_AY8910_ROUTE_2, 0.35, BURN_SND_ROUTE_BOTH);
- BurnYM2203SetRoute(1, BURN_SND_YM2203_AY8910_ROUTE_3, 0.35, BURN_SND_ROUTE_BOTH);
-
- DACInit(0, 0, 1, VigilantSyncDAC);
- DACSetRoute(0, 0.35, BURN_SND_ROUTE_BOTH);
-
- DrvDoReset();
-
- return 0;
-}
-
-static INT32 KikcubicInit()
-{
- INT32 nRet = 0, nLen;
-
- // Allocate and Blank all required memory
- Mem = NULL;
- MemIndex();
- nLen = MemEnd - (UINT8 *)0;
- if ((Mem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(Mem, 0, nLen);
- MemIndex();
-
- DrvTempRom = (UINT8 *)BurnMalloc(0x80000);
-
- if (!strcmp(BurnDrvGetTextA(DRV_NAME), "kikcubicb")) {
- // Load Z80 #1 Program Roms
- nRet = BurnLoadRom(DrvZ80Rom1 + 0x00000, 0, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvZ80Rom1 + 0x10000, 1, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvZ80Rom1 + 0x20000, 2, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvZ80Rom1 + 0x28000, 2, 1); if (nRet != 0) return 1;
-
- // Load Z80 #2 Program Roms
- nRet = BurnLoadRom(DrvZ80Rom2 + 0x00000, 3, 1); if (nRet != 0) return 1;
-
- // Load and decode the chars
- nRet = BurnLoadRom(DrvTempRom + 0x00000, 4, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x10000, 5, 1); if (nRet != 0) return 1;
- GfxDecode(0x1000, 4, 8, 8, CharPlaneOffsets, CharXOffsets, CharYOffsets, 0x80, DrvTempRom, DrvChars);
-
- // Load and decode the sprites
- memset(DrvTempRom, 0, 0x80000);
- nRet = BurnLoadRom(DrvTempRom + 0x00000, 6, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x20000, 6, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x10000, 7, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x30000, 7, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x40000, 8, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x60000, 8, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x50000, 9, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x70000, 9, 1); if (nRet != 0) return 1;
- GfxDecode(0x1000, 4, 16, 16, SpritePlaneOffsets, SpriteXOffsets, SpriteYOffsets, 0x200, DrvTempRom, DrvSprites);
-
- // Load sample Roms
- nRet = BurnLoadRom(DrvSamples + 0x00000, 10, 1); if (nRet != 0) return 1;
- } else {
- // Load Z80 #1 Program Roms
- nRet = BurnLoadRom(DrvZ80Rom1 + 0x00000, 0, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvZ80Rom1 + 0x10000, 1, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvZ80Rom1 + 0x20000, 2, 1); if (nRet != 0) return 1;
-
- // Load Z80 #2 Program Roms
- nRet = BurnLoadRom(DrvZ80Rom2 + 0x00000, 3, 1); if (nRet != 0) return 1;
-
- // Load and decode the chars
- nRet = BurnLoadRom(DrvTempRom + 0x00000, 4, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x10000, 5, 1); if (nRet != 0) return 1;
- GfxDecode(0x1000, 4, 8, 8, CharPlaneOffsets, CharXOffsets, CharYOffsets, 0x80, DrvTempRom, DrvChars);
-
- // Load and decode the sprites
- memset(DrvTempRom, 0, 0x80000);
- nRet = BurnLoadRom(DrvTempRom + 0x00000, 6, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTempRom + 0x40000, 7, 1); if (nRet != 0) return 1;
- GfxDecode(0x1000, 4, 16, 16, SpritePlaneOffsets, SpriteXOffsets, SpriteYOffsets, 0x200, DrvTempRom, DrvSprites);
-
- // Load sample Roms
- nRet = BurnLoadRom(DrvSamples + 0x00000, 8, 1); if (nRet != 0) return 1;
- }
-
- BurnFree(DrvTempRom);
-
- // Setup the Z80 emulation
- ZetInit(0);
- ZetOpen(0);
- ZetSetReadHandler(KikcubicZ80Read1);
- ZetSetWriteHandler(KikcubicZ80Write1);
- ZetSetInHandler(KikcubicZ80PortRead1);
- ZetSetOutHandler(KikcubicZ80PortWrite1);
- ZetMapArea(0x0000, 0x7fff, 0, DrvZ80Rom1 );
- ZetMapArea(0x0000, 0x7fff, 2, DrvZ80Rom1 );
- ZetMapArea(0x8000, 0xbfff, 0, DrvZ80Rom1 + 0x10000 );
- ZetMapArea(0x8000, 0xbfff, 2, DrvZ80Rom1 + 0x10000 );
- ZetMapArea(0xc000, 0xc0ff, 0, DrvSpriteRam );
- ZetMapArea(0xc000, 0xc0ff, 1, DrvSpriteRam );
- ZetMapArea(0xc000, 0xc0ff, 2, DrvSpriteRam );
- ZetMapArea(0xc800, 0xcaff, 0, DrvPaletteRam );
- ZetMapArea(0xc800, 0xcaff, 2, DrvPaletteRam );
- ZetMapArea(0xd000, 0xdfff, 0, DrvVideoRam );
- ZetMapArea(0xd000, 0xdfff, 1, DrvVideoRam );
- ZetMapArea(0xd000, 0xdfff, 2, DrvVideoRam );
- ZetMapArea(0xe000, 0xffff, 0, DrvZ80Ram1 );
- ZetMapArea(0xe000, 0xffff, 1, DrvZ80Ram1 );
- ZetMapArea(0xe000, 0xffff, 2, DrvZ80Ram1 );
- ZetClose();
-
- ZetInit(1);
- ZetOpen(1);
- ZetSetReadHandler(VigilanteZ80Read2);
- ZetSetWriteHandler(VigilanteZ80Write2);
- ZetSetInHandler(VigilanteZ80PortRead2);
- ZetSetOutHandler(VigilanteZ80PortWrite2);
- ZetMapArea(0x0000, 0xbfff, 0, DrvZ80Rom2 );
- ZetMapArea(0x0000, 0xbfff, 2, DrvZ80Rom2 );
- ZetMapArea(0xf000, 0xffff, 0, DrvZ80Ram2 );
- ZetMapArea(0xf000, 0xffff, 1, DrvZ80Ram2 );
- ZetMapArea(0xf000, 0xffff, 2, DrvZ80Ram2 );
- ZetClose();
-
- BurnSetRefreshRate(55.0);
- nCyclesTotal[0] = 3579645 / 55;
- nCyclesTotal[1] = 3579645 / 55;
-
- GenericTilesInit();
- BurnYM2151Init(3579645);
- BurnYM2151SetIrqHandler(&VigilantYM2151IrqHandler);
- BurnYM2151SetRoute(BURN_SND_YM2151_YM2151_ROUTE_1, 0.55, BURN_SND_ROUTE_LEFT);
- BurnYM2151SetRoute(BURN_SND_YM2151_YM2151_ROUTE_2, 0.55, BURN_SND_ROUTE_RIGHT);
- DACInit(0, 0, 1, VigilantSyncDAC);
- DACSetRoute(0, 1.00, BURN_SND_ROUTE_BOTH);
-
- DrvKikcubicDraw = 1;
-
- DrvDoReset();
-
- return 0;
-}
-
-static INT32 DrvExit()
-{
- ZetExit();
- if (DrvHasYM2203) {
- BurnYM2203Exit();
- } else {
- BurnYM2151Exit();
- }
- DACExit();
-
- GenericTilesExit();
-
- BurnFree(Mem);
-
- DrvRomBank = 0;
- DrvSoundLatch = 0;
- DrvIrqVector = 0;
- DrvRearColour = 0;
- DrvRearDisable = 0;
- DrvHorizScrollLo = 0;
- DrvHorizScrollHi = 0;
- DrvRearHorizScrollLo = 0;
- DrvRearHorizScrollHi = 0;
- DrvSampleAddress = 0;
-
- DrvHasYM2203 = 0;
- DrvKikcubicDraw = 0;
-
- return 0;
-}
-
-static void DrvRenderBackground()
-{
- INT32 CharCode = 0;
- INT32 Scroll = 0x17a - (DrvRearHorizScrollLo + DrvRearHorizScrollHi);
- if (Scroll > 0) Scroll -= 2048;
-
- for (INT32 i = 0; i < 16; i++) {
- INT32 r, g, b;
-
- r = (DrvPaletteRam[0x400 + 16 * DrvRearColour + i] << 3) & 0xff;
- g = (DrvPaletteRam[0x500 + 16 * DrvRearColour + i] << 3) & 0xff;
- b = (DrvPaletteRam[0x600 + 16 * DrvRearColour + i] << 3) & 0xff;
-
- DrvPalette[512 + i] = BurnHighCol(r, g, b, 0);
-
- r = (DrvPaletteRam[0x400 + 16 * DrvRearColour + 32 + i] << 3) & 0xff;
- g = (DrvPaletteRam[0x500 + 16 * DrvRearColour + 32 + i] << 3) & 0xff;
- b = (DrvPaletteRam[0x600 + 16 * DrvRearColour + 32 + i] << 3) & 0xff;
-
- DrvPalette[512 + 16 + i] = BurnHighCol(r, g, b, 0);
- }
-
- for (INT32 Page = 0; Page < 4; Page++) {
- for (INT32 Row = 0; Row < 256; Row++) {
- for (INT32 Col = 0; Col < 512; Col += 32) {
- INT32 Colour = (Row < 128) ? 0 : 1;
- UINT32 nPalette = 512 | (Colour << 4);
-
- for (INT32 px = 0; px < 32; px++) {
- UINT8 c = DrvBackTiles[(CharCode * 32) + px];
- INT32 xPos = (512 * Page) + Col + px + Scroll;
-
- if (Row >= 0 && Row < nScreenHeight) {
- UINT16* pPixel = pTransDraw + (Row * nScreenWidth);
-
- if (xPos >= 0 && xPos < nScreenWidth) {
- pPixel[xPos] = c | nPalette;
- }
- }
- }
-
- CharCode++;
- }
- }
- }
-}
-
-static void DrvDrawForeground(INT32 Priority, INT32 Opaque)
-{
- INT32 Scroll = -(DrvHorizScrollLo + DrvHorizScrollHi);
-
- for (INT32 Offset = 0; Offset < 0x1000; Offset += 2) {
- INT32 sy = 8 * ((Offset / 2) / 64);
- INT32 sx = 8 * ((Offset / 2) % 64);
- INT32 Attr = DrvVideoRam[Offset + 1];
- INT32 Colour = Attr & 0x0f;
- INT32 Tile = DrvVideoRam[Offset + 0] | ((Attr & 0xf0) << 4);
-
- if (Priority) {
- // Sprite masking
- if ((Colour & 0x0c) == 0x0c) {
- if (sy >= 48) {
- sx = (sx + Scroll) & 0x1ff;
-
- sx -= 128;
-
- INT32 px, py;
- UINT32 nPalette = 256 | (Colour << 4);
-
- for (py = 0; py < 8; py++) {
- for (px = 0; px < 8; px++) {
- UINT8 c = DrvChars[(Tile * 64) + (py * 8) + px];
-
- if (((0xff >> c) & 0x01) == 0) {
- INT32 xPos = sx + px;
- INT32 yPos = sy + py;
-
- if (yPos >= 0 && yPos < nScreenHeight) {
- UINT16* pPixel = pTransDraw + (yPos * nScreenWidth);
-
- if (xPos >= 0 && xPos < nScreenWidth) {
- pPixel[xPos] = c | nPalette;
- }
- }
- }
- }
- }
- }
- }
- } else {
- if (sy >= 48) sx = (sx + Scroll) & 0x1ff;
-
- sx -= 128;
-
- if (sx >= 0 && sx < (nScreenWidth - 8) && sy >= 0 && sy < (nScreenHeight - 8)) {
- if (Opaque || Colour >= 4) {
- Render8x8Tile(pTransDraw, Tile, sx, sy, Colour, 4, 256, DrvChars);
- } else {
- Render8x8Tile_Mask(pTransDraw, Tile, sx, sy, Colour, 4, 0, 256, DrvChars);
- }
- } else {
- if (Opaque || Colour >= 4) {
- Render8x8Tile_Clip(pTransDraw, Tile, sx, sy, Colour, 4, 256, DrvChars);
- } else {
- Render8x8Tile_Mask_Clip(pTransDraw, Tile, sx, sy, Colour, 4, 0, 256, DrvChars);
- }
- }
- }
- }
-}
-
-static void DrvDrawSprites()
-{
- INT32 DrvSpriteRamSize = 0xc0;
- if (DrvKikcubicDraw) DrvSpriteRamSize = 0x100;
-
- for (INT32 Offset = 0; Offset < DrvSpriteRamSize; Offset += 8) {
- INT32 Code, Colour, sx, sy, xFlip, yFlip, h;
-
- Code = DrvSpriteRam[Offset + 4] | ((DrvSpriteRam[Offset + 5] & 0x0f) << 8);
- Colour = DrvSpriteRam[Offset + 0] & 0x0f;
- sx = (DrvSpriteRam[Offset + 6] | ((DrvSpriteRam[Offset + 7] & 0x01) << 8));
- sy = 256 + 128 - (DrvSpriteRam[Offset + 2] | ((DrvSpriteRam[Offset + 3] & 0x01) << 8));
- xFlip = DrvSpriteRam[Offset + 5] & 0x40;
- yFlip = DrvSpriteRam[Offset + 5] & 0x80;
- h = 1 << ((DrvSpriteRam[Offset + 5] & 0x30) >> 4);
- sy -= 16 * h;
-
- Code &= ~(h - 1);
-
- if (DrvKikcubicDraw) {
- sx -= 64;
- } else {
- sx -= 128;
- }
-
- for (INT32 y = 0; y < h; y++) {
- INT32 c = Code;
-
- if (yFlip) {
- c += h - 1 - y;
- } else {
- c += y;
- }
-
- if (sx > 16 && sx < (nScreenWidth - 16) && (sy + (16 * y)) > 16 && (sy + (16 * y)) < (nScreenHeight - 16)) {
- if (xFlip) {
- if (yFlip) {
- Render16x16Tile_Mask_FlipXY(pTransDraw, c, sx, sy + (16 * y), Colour, 4, 0, 0, DrvSprites);
- } else {
- Render16x16Tile_Mask_FlipX(pTransDraw, c, sx, sy + (16 * y), Colour, 4, 0, 0, DrvSprites);
- }
- } else {
- if (yFlip) {
- Render16x16Tile_Mask_FlipY(pTransDraw, c, sx, sy + (16 * y), Colour, 4, 0, 0, DrvSprites);
- } else {
- Render16x16Tile_Mask(pTransDraw, c, sx, sy + (16 * y), Colour, 4, 0, 0, DrvSprites);
- }
- }
- } else {
- if (xFlip) {
- if (yFlip) {
- Render16x16Tile_Mask_FlipXY_Clip(pTransDraw, c, sx, sy + (16 * y), Colour, 4, 0, 0, DrvSprites);
- } else {
- Render16x16Tile_Mask_FlipX_Clip(pTransDraw, c, sx, sy + (16 * y), Colour, 4, 0, 0, DrvSprites);
- }
- } else {
- if (yFlip) {
- Render16x16Tile_Mask_FlipY_Clip(pTransDraw, c, sx, sy + (16 * y), Colour, 4, 0, 0, DrvSprites);
- } else {
- Render16x16Tile_Mask_Clip(pTransDraw, c, sx, sy + (16 * y), Colour, 4, 0, 0, DrvSprites);
- }
- }
- }
- }
- }
-}
-
-static void DrvDraw()
-{
- BurnTransferClear();
-
- if (DrvRearDisable) {
- DrvDrawForeground(0, 1);
- DrvDrawSprites();
- DrvDrawForeground(1, 0);
- } else {
- DrvRenderBackground();
- DrvDrawForeground(0, 0);
- DrvDrawSprites();
- DrvDrawForeground(1, 0);
- }
-
- BurnTransferCopy(DrvPalette);
-}
-
-static void KikcubicDraw()
-{
- BurnTransferClear();
-
- for (INT32 Offset = 0; Offset < 0x1000; Offset += 2) {
- INT32 sy = 8 * ((Offset / 2) / 64);
- INT32 sx = 8 * ((Offset / 2) % 64);
- INT32 Attr = DrvVideoRam[Offset + 1];
- INT32 Colour = (Attr & 0xf0) >> 4;
- INT32 Code = DrvVideoRam[Offset] | ((Attr & 0x0f) << 8);
-
- sx -= 64;
- if (sx >= 0 && sx < (nScreenWidth - 8) && sy >= 0 && sy < (nScreenHeight - 8)) {
- Render8x8Tile(pTransDraw, Code, sx, sy, Colour, 4, 0, DrvChars);
- } else {
- Render8x8Tile_Clip(pTransDraw, Code, sx, sy, Colour, 4, 0, DrvChars);
- }
- }
-
- DrvDrawSprites();
- BurnTransferCopy(DrvPalette);
-}
-
-static INT32 DrvFrame()
-{
- INT32 nInterleave = 256; // dac needs 128 NMIs
- INT32 nSoundBufferPos = 0;
-
- if (DrvReset) DrvDoReset();
-
- DrvMakeInputs();
-
- nCyclesDone[0] = nCyclesDone[1] = 0;
-
- ZetNewFrame();
-
- for (INT32 i = 0; i < nInterleave; i++) {
- INT32 nCurrentCPU, nNext;
-
- nCurrentCPU = 0;
- ZetOpen(nCurrentCPU);
- nNext = (i + 1) * nCyclesTotal[nCurrentCPU] / nInterleave;
- nCyclesSegment = nNext - nCyclesDone[nCurrentCPU];
- nCyclesDone[nCurrentCPU] += ZetRun(nCyclesSegment);
- if (i == (nInterleave - 1)) ZetSetIRQLine(0, CPU_IRQSTATUS_AUTO);
- ZetClose();
-
- nCurrentCPU = 1;
- ZetOpen(nCurrentCPU);
- if (!DrvHasYM2203) {
- nNext = (i + 1) * nCyclesTotal[nCurrentCPU] / nInterleave;
- nCyclesSegment = nNext - nCyclesDone[nCurrentCPU];
- nCyclesDone[nCurrentCPU] += ZetRun(nCyclesSegment);
- } else {
- BurnTimerUpdate(i * (nCyclesTotal[nCurrentCPU] / nInterleave));
- }
- if (i & 1) {
- ZetNmi();
- }
- ZetClose();
-
- if (pBurnSoundOut && !DrvHasYM2203) {
- INT32 nSegmentLength = nBurnSoundLen / nInterleave;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- ZetOpen(1);
- BurnYM2151Render(pSoundBuf, nSegmentLength);
- ZetClose();
- nSoundBufferPos += nSegmentLength;
- }
- }
-
- if (DrvHasYM2203) {
- ZetOpen(1);
- BurnTimerEndFrame(nCyclesTotal[1]);
- ZetClose();
- }
-
- if (pBurnSoundOut && !DrvHasYM2203) {
- INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
-
- if (nSegmentLength) {
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- ZetOpen(1);
- BurnYM2151Render(pSoundBuf, nSegmentLength);
- ZetClose();
- }
- DACUpdate(pBurnSoundOut, nBurnSoundLen);
- }
-
- if (DrvHasYM2203 && pBurnSoundOut) {
- ZetOpen(1);
- BurnYM2203Update(pBurnSoundOut, nBurnSoundLen);
- ZetClose();
- DACUpdate(pBurnSoundOut, nBurnSoundLen);
- }
-
- if (pBurnDraw) {
- if (DrvKikcubicDraw) {
- KikcubicDraw();
- } else {
- DrvDraw();
- }
- }
-
- return 0;
-}
-
-static INT32 DrvScan(INT32 nAction, INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin != NULL) { // Return minimum compatible version
- *pnMin = 0x029705;
- }
-
- if (nAction & ACB_MEMORY_RAM) {
- memset(&ba, 0, sizeof(ba));
- ba.Data = RamStart;
- ba.nLen = RamEnd-RamStart;
- ba.szName = "All Ram";
- BurnAcb(&ba);
- }
-
- if (nAction & ACB_DRIVER_DATA) {
- ZetScan(nAction);
- if (DrvHasYM2203) {
- BurnYM2203Scan(nAction, pnMin);
- } else {
- BurnYM2151Scan(nAction);
- }
- DACScan(nAction, pnMin);
-
- // Scan critical driver variables
- SCAN_VAR(nCyclesDone);
- SCAN_VAR(nCyclesSegment);
- SCAN_VAR(DrvRomBank);
- SCAN_VAR(DrvSoundLatch);
- SCAN_VAR(DrvDip);
- SCAN_VAR(DrvInput);
- SCAN_VAR(DrvIrqVector);
- SCAN_VAR(DrvRearColour);
- SCAN_VAR(DrvRearDisable);
- SCAN_VAR(DrvHorizScrollLo);
- SCAN_VAR(DrvHorizScrollHi);
- SCAN_VAR(DrvRearHorizScrollLo);
- SCAN_VAR(DrvRearHorizScrollHi);
- SCAN_VAR(DrvSampleAddress);
- }
-
- if (nAction & ACB_WRITE) {
- ZetOpen(0);
- ZetMapArea(0x8000, 0xbfff, 0, DrvZ80Rom1 + 0x10000 + (DrvRomBank * 0x4000));
- ZetMapArea(0x8000, 0xbfff, 2, DrvZ80Rom1 + 0x10000 + (DrvRomBank * 0x4000));
- ZetClose();
- }
-
- return 0;
-}
-
-#undef VECTOR_INIT
-#undef YM2151_ASSERT
-#undef YM2151_CLEAR
-#undef Z80_ASSERT
-#undef Z80_CLEAR
-
-struct BurnDriver BurnDrvVigilant = {
- "vigilant", NULL, NULL, NULL, "1988",
- "Vigilante (World, Rev E)\0", NULL, "Irem", "Miscellaneous",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_IREM_MISC, GBF_SCRFIGHT, 0,
- NULL, DrvRomInfo, DrvRomName, NULL, NULL, DrvInputInfo, DrvDIPInfo,
- DrvInit, DrvExit, DrvFrame, NULL, DrvScan,
- NULL, 544, 256, 256, 4, 3
-};
-
-struct BurnDriver BurnDrvVigilanta = {
- "vigilanta", "vigilant", NULL, NULL, "1988",
- "Vigilante (World, Rev A)\0", NULL, "Irem", "Miscellaneous",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_IREM_MISC, GBF_SCRFIGHT, 0,
- NULL, VigilantaRomInfo, VigilantaRomName, NULL, NULL, DrvInputInfo, DrvDIPInfo,
- DrvcInit, DrvExit, DrvFrame, NULL, DrvScan,
- NULL, 544, 256, 256, 4, 3
-};
-
-struct BurnDriver BurnDrvVigilantb = {
- "vigilantb", "vigilant", NULL, NULL, "1988",
- "Vigilante (US, Rev B)\0", NULL, "Irem (Data East License)", "Miscellaneous",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_IREM_MISC, GBF_SCRFIGHT, 0,
- NULL, VigilantbRomInfo, VigilantbRomName, NULL, NULL, DrvInputInfo, DrvDIPInfo,
- DrvcInit, DrvExit, DrvFrame, NULL, DrvScan,
- NULL, 544, 256, 256, 4, 3
-};
-
-struct BurnDriver BurnDrvVigilantc = {
- "vigilantc", "vigilant", NULL, NULL, "1988",
- "Vigilante (World, Rev C)\0", NULL, "Irem", "Miscellaneous",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_IREM_MISC, GBF_SCRFIGHT, 0,
- NULL, Drv1RomInfo, Drv1RomName, NULL, NULL, DrvInputInfo, DrvDIPInfo,
- DrvcInit, DrvExit, DrvFrame, NULL, DrvScan,
- NULL, 544, 256, 256, 4, 3
-};
-
-struct BurnDriver BurnDrvVigilanto = {
- "vigilanto", "vigilant", NULL, NULL, "1988",
- "Vigilante (US)\0", NULL, "Irem (Data East USA License)", "Miscellaneous",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_IREM_MISC, GBF_SCRFIGHT, 0,
- NULL, DrvuRomInfo, DrvuRomName, NULL, NULL, DrvInputInfo, DrvDIPInfo,
- DrvcInit, DrvExit, DrvFrame, NULL, DrvScan,
- NULL, 544, 256, 256, 4, 3
-};
-
-struct BurnDriver BurnDrvVigilantg = {
- "vigilantg", "vigilant", NULL, NULL, "1988",
- "Vigilante (US, Rev G)\0", NULL, "Irem (Data East USA License)", "Miscellaneous",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_IREM_MISC, GBF_SCRFIGHT, 0,
- NULL, Drvu2RomInfo, Drvu2RomName, NULL, NULL, DrvInputInfo, DrvDIPInfo,
- DrvInit, DrvExit, DrvFrame, NULL, DrvScan,
- NULL, 544, 256, 256, 4, 3
-};
-
-struct BurnDriver BurnDrvVigilantd = {
- "vigilantd", "vigilant", NULL, NULL, "1988",
- "Vigilante (Japan, Rev D)\0", NULL, "Irem", "Miscellaneous",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_IREM_MISC, GBF_SCRFIGHT, 0,
- NULL, DrvjRomInfo, DrvjRomName, NULL, NULL, DrvInputInfo, DrvDIPInfo,
- DrvcInit, DrvExit, DrvFrame, NULL, DrvScan,
- NULL, 544, 256, 256, 4, 3
-};
-
-struct BurnDriver BurnDrvVigilantbl = {
- "vigilantbl", "vigilant", NULL, NULL, "1988",
- "Vigilante (bootleg)\0", NULL, "bootleg", "Miscellaneous",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_IREM_MISC, GBF_SCRFIGHT, 0,
- NULL, DrvbRomInfo, DrvbRomName, NULL, NULL, DrvInputInfo, DrvDIPInfo,
- DrvbInit, DrvExit, DrvFrame, NULL, DrvScan,
- NULL, 544, 256, 256, 4, 3
-};
-
-struct BurnDriver BurnDrvKikcubic = {
- "kikcubic", NULL, NULL, NULL, "1988",
- "Meikyu Jima (Japan)\0", NULL, "Irem", "Miscellaneous",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_IREM_MISC, GBF_MAZE, 0,
- NULL, KikcubicRomInfo, KikcubicRomName, NULL, NULL, KikcubicInputInfo, KikcubicDIPInfo,
- KikcubicInit, DrvExit, DrvFrame, NULL, DrvScan,
- NULL, 544, 384, 256, 4, 3
-};
-
-struct BurnDriver BurnDrvKikcubicb = {
- "kikcubicb", "kikcubic", NULL, NULL, "1988",
- "Kickle Cubele\0", NULL, "bootleg", "Miscellaneous",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_IREM_MISC, GBF_MAZE, 0,
- NULL, KikcubicbRomInfo, KikcubicbRomName, NULL, NULL, KikcubicInputInfo, KikcubicDIPInfo,
- KikcubicInit, DrvExit, DrvFrame, NULL, DrvScan,
- NULL, 544, 384, 256, 4, 3
-};
-
-struct BurnDriver BurnDrvBuccanrs = {
- "buccanrs", NULL, NULL, NULL, "1989",
- "Buccaneers (set 1)\0", NULL, "Duintronic", "Miscellaneous",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_IREM_MISC, GBF_SCRFIGHT, 0,
- NULL, BuccanrsRomInfo, BuccanrsRomName, NULL, NULL, BuccanrsInputInfo, BuccanrsDIPInfo,
- BuccanrsInit, DrvExit, DrvFrame, NULL, DrvScan,
- NULL, 544, 256, 256, 4, 3
-};
-
-struct BurnDriver BurnDrvBuccanrsa = {
- "buccanrsa", "buccanrs", NULL, NULL, "1989",
- "Buccaneers (set 2)\0", NULL, "Duintronic", "Miscellaneous",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_IREM_MISC, GBF_SCRFIGHT, 0,
- NULL, BuccanrsaRomInfo, BuccanrsaRomName, NULL, NULL, BuccanrsaInputInfo, BuccanrsaDIPInfo,
- BuccanrsInit, DrvExit, DrvFrame, NULL, DrvScan,
- NULL, 544, 256, 256, 4, 3
-};
-
-struct BurnDriver BurnDrvBuccanrsb = {
- "buccanrsb", "buccanrs", NULL, NULL, "1989",
- "Buccaneers (set 3, harder)\0", NULL, "Duintronic", "Miscellaneous",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_IREM_MISC, GBF_SCRFIGHT, 0,
- NULL, BuccanrsbRomInfo, BuccanrsbRomName, NULL, NULL, BuccanrsInputInfo, BuccanrsDIPInfo,
- BuccanrsInit, DrvExit, DrvFrame, NULL, DrvScan,
- NULL, 544, 256, 256, 4, 3
-};
diff --git a/jan/src/burn/drv/irem/irem_cpu.cpp b/jan/src/burn/drv/irem/irem_cpu.cpp
deleted file mode 100644
index fb2c96ded..000000000
--- a/jan/src/burn/drv/irem/irem_cpu.cpp
+++ /dev/null
@@ -1,678 +0,0 @@
-/*****************************************************************************
-
- Irem Custom V35+ CPU
- -- has internal 256 byte lookup table, handled in realtime. Bomberman
- World runs encrypted code from RAM, Risky Challenge expects to be able
- to run code in emulation (non-encrypted) mode for some subroutines..
-
- Hasamu Nanao 08J27261A1 011 9102KK700
- Gunforce Nanao 08J27261A1 011 9106KK701
- Ken-Go Nanao 08J27261A1 011 9102KK701
- Bomberman Nanao 08J27261A1 012 9123KK200
- Atomic Punk Nanao 08J27291A1 012 9128KK440
- Blade Master / Cross Blades! Nanao 08J27291A1 012 9123KK740
- Quiz F-1 1,2 Finish Nanao 08J27291A4 014 9147KK700
- Gunforce 2 Nanao 08J27291A4 014 9247KK700
- Lethal Thunder Nanao 08J27291A4 014 9147KK700
- Bomberman World / New Atomic Punk Nanao 08J27291A5 015 9219KK700
- Undercover Cops Nanao 08J27291A5 015 9219KK700
- Mystic Riders / Gun Hohki Nanao 08J27291A6 016 9217NK700
- The IREM Skins Game/Major Title 2 Nanao 08J27291A7 017
- or (some Major Title 2) Nanao 08J27291A6 016 9217NK700 (same as Mystic Riders)
- Hook Nanao 08J27291A8 018 9237NK700
-
- R-Type Leo Irem D8000021A1 019 9242NK700
- Fire Barrel Irem D8000010A1 019 9243NK700
- Air Assault same as Gun Force
- In The Hunt Irem D8000011A1 020
- Risky Challenge/Gussun Oyoyo Irem D8000019A1 022 9331NK700
- Match It II/Shisensho II Irem D8000020A1 023 9320NK700
- World PK Soccer/Kick for the Goal Irem D8000021A1 024 9335NK701
- Ninja Baseball Batman Irem D8000021A1 024 9335NK700
- Perfect Soldiers Irem D8000022A1
- Dream Soccer '94 Irem D8000023A1 026
-
- Please let me know if you can fill in any of the blanks.
-
- Emulation by Bryan McPhail, mish@tendril.co.uk, thanks to Chris Hardy too!
-
-*****************************************************************************/
-
-
-
-#include "burnint.h"
-#include "irem_cpu.h"
-
-
-// CAVEATS:
-// 0x80 and 0x82 pre- opcodes can easily be confused. They perform exactly the same
-// function when operating on memory, but when working with registers one affects
-// byte registers and the other word registers. Gunforce, Blade Master and
-// Lethal Thunder had this error.
-
-//double check 0x00 0x22 0x28 0x4a 0x34 in these tables
-
-#define xxxx 0x90/* Unknown */
-
-const UINT8 gunforce_decryption_table[256] = {
- 0xff,xxxx,xxxx,0x2c,xxxx,xxxx,0x43,0x88, xxxx,0x13,0x0a,0xbd,0xba,0x60,0xea,xxxx, /* 00 */
- xxxx,xxxx,0xf2,0x29,0xb3,0x22,xxxx,0x0c, 0xa9,0x5f,0x9d,0x07,xxxx,xxxx,0x0b,0xbb, /* 10 */
- 0x8a,xxxx,xxxx,xxxx,0x3a,0x3c,0x5a,0x38, 0x99,xxxx,0xf8,0x89,xxxx,0x91,xxxx,0x55, /* 20 */
- 0xac,0x40,0x73,xxxx,0x59,xxxx,0xfc,xxxx, 0x50,0xfa,xxxx,0x25,xxxx,0x34,0x47,0xb7, /* 30 */
- xxxx,xxxx,xxxx,0x49,xxxx,0x0f,0x8b,0x05, 0xc3,0xa5,0xbf,0x83,0x86,0xc5,xxxx,xxxx, /* 40 */
- 0x08,0x77,0x24,0xb4,xxxx,0x92,xxxx,0x3b, 0x5e,0xb6,0x80,0x0d,0x2e,0xab,0xe7,xxxx, /* 50 */
- 0x48,xxxx,0xad,0xc0,xxxx,0x1b,0xc6,0xa3, 0x04,xxxx,xxxx,xxxx,0x16,0xb0,0x7d,0x98, /* 60 */
- 0x87,0x46,0x8c,xxxx,xxxx,0xfe,xxxx,0xcf, xxxx,0x68,0x84,xxxx,0xd2,xxxx,0x18,0x51, /* 70 */
- 0x76,0xa4,0x36,0x52,0xfb,xxxx,0xb9,xxxx, xxxx,0xb1,0x1c,0x21,0xe6,0xb5,0x17,0x27, /* 80 */
- 0x3d,0x45,0xbe,0xae,xxxx,0x4a,0x0e,0xe5, xxxx,0x58,0x1f,0x61,0xf3,0x02,xxxx,0xe8, /* 90 */
- xxxx,xxxx,xxxx,0xf7,0x56,0x96,0xaa,0xbc, 0x4f,xxxx,xxxx,0x79,0xd0,xxxx,0x2a,0x12, /* A0 */
- 0x4e,0xb8,xxxx,0x41,xxxx,0x90,0xd3,xxxx, 0x2d,0x33,0xf6,xxxx,xxxx,0x14,xxxx,0x32, /* B0 */
- 0x5d,0xa8,0x53,0x26,0x2b,0x20,0x81,0x75, 0x7f,0x3e,xxxx,xxxx,0x00,0x93,xxxx,0xb2, /* C0 */
- 0x57,xxxx,0xa0,xxxx,0x39,xxxx,xxxx,0x72, xxxx,0x01,0x42,0x74,0x9c,0x1e,xxxx,0x5b, /* D0 */
- xxxx,0xf9,xxxx,0x2f,0x85,xxxx,0xeb,0xa2, xxxx,0xe2,0x11,xxxx,0x4b,0x7e,xxxx,0x78, /* E0 */
- xxxx,xxxx,0x09,0xa1,0x03,xxxx,0x23,0xc1, 0x8e,0xe9,0xd1,0x7c,xxxx,xxxx,0xc7,0x06, /* F0 */
-};
-// 0x13 (0x29) guess
-// 0x18 (0xa9) guess
-// 0x50 (0x28) guess
-// 0x63 (0xc0) guess
-// 0x7e (0x18) opcode is right but arguments could be swapped
-// 0xcc (0x00) guess
-// 0xea (0x11) guess
-// 0x51 (0x77) guess (kengo)
-// 0x96 (0x0e) complete guess (kengo), maybe wrong but I don't see what it could be
-
-
-//double check 22 (boot bomb at 2a000)
-//47a7 (46e0 in boot) - hmm
-
-// 0x00 is NOT 0x20 (no context in bomberman)
-
-const UINT8 bomberman_decryption_table[256] = {
- xxxx,xxxx,0x79,xxxx,0x9d,0x48,xxxx,xxxx, xxxx,xxxx,0x2e,xxxx,xxxx,0xa5,0x72,xxxx, /* 00 */
- 0x46,0x5b,0xb1,0x3a,0xc3,xxxx,0x35,xxxx, xxxx,0x23,xxxx,0x99,xxxx,0x05,xxxx,0x3c, /* 10 */
- 0x3b,0x76,0x11,xxxx,xxxx,0x4b,xxxx,0x92, xxxx,0x32,0x5d,xxxx,0xf7,0x5a,0x9c,xxxx, /* 20 */
- 0x26,0x40,0x89,xxxx,xxxx,xxxx,xxxx,0x57, xxxx,xxxx,xxxx,xxxx,xxxx,0xba,0x53,0xbb, /* 30 */
- 0x42,0x59,0x2f,xxxx,0x77,xxxx,xxxx,0x4f, 0xbf,0x4a,0xcb,0x86,0x62,0x7d,xxxx,0xb8, /* 40 */
- xxxx,0x34,xxxx,0x5f,xxxx,0x7f,0xf8,0x80, 0xa0,0x84,0x12,0x52,xxxx,xxxx,xxxx,0x47, /* 50 */
- xxxx,0x2b,0x88,0xf9,xxxx,0xa3,0x83,xxxx, 0x75,0x87,xxxx,0xab,0xeb,xxxx,0xfe,xxxx, /* 60 */
- xxxx,0xaf,0xd0,0x2c,0xd1,0xe6,0x90,0x43, 0xa2,0xe7,0x85,0xe2,0x49,0x22,0x29,xxxx, /* 70 */
- 0x7c,xxxx,xxxx,0x9a,xxxx,xxxx,0xb9,xxxx, 0x14,0xcf,0x33,0x02,xxxx,xxxx,xxxx,0x73, /* 80 */
- xxxx,0xc5,xxxx,xxxx,xxxx,0xf3,0xf6,0x24, xxxx,0x56,0xd3,xxxx,0x09,0x01,xxxx,xxxx, /* 90 */
- 0x03,0x2d,0x1b,xxxx,0xf5,0xbe,xxxx,xxxx, 0xfb,0x8e,0x21,0x8d,0x0b,xxxx,xxxx,0xb2, /* A0 */
- 0xfc,0xfa,0xc6,xxxx,0xe8,0xd2,xxxx,0x08, 0x0a,0xa8,0x78,0xff,xxxx,0xb5,xxxx,xxxx, /* B0 */
- 0xc7,0x06,0x18,xxxx,xxxx,0x1e,0x7e,0xb0, 0x0e,0x0f,xxxx,xxxx,0x0c,0xaa,0x55,xxxx, /* C0 */
- xxxx,0x74,0x3d,xxxx,xxxx,0x38,0x27,0x50, xxxx,0xb6,0x5e,0x8b,0x07,0xe5,0x39,0xea, /* D0 */
- 0xbd,xxxx,0x81,0xb7,xxxx,0x8a,0x0d,xxxx, 0x58,0xa1,0xa9,0x36,xxxx,0xc4,xxxx,0x8f, /* E0 */
- 0x8c,0x1f,0x51,0x04,0xf2,xxxx,0xb3,0xb4, 0xe9,0x2a,xxxx,xxxx,xxxx,0x25,xxxx,0xbc, /* F0 */
-};
-// 49 -> 4a (verified in a bombrman PCB)
-
-const UINT8 lethalth_decryption_table[256] = {
- 0x7f,0x26,0x5d,xxxx,0xba,xxxx,0x1e,0x5e, 0xb8,xxxx,0xbc,0xe8,0x01,xxxx,0x4a,0x25, /* 00 */
-// ssss !!!! !!!! !!!! !!!! !!!! !!!! !!!! !!!! !!!! !!!!
- xxxx,0xbd,xxxx,0x22,0x10,xxxx,0x02,0x57, 0x70,xxxx,0x7e,xxxx,0xe7,0x52,xxxx,0xa9, /* 10 */
-// !!!! !!!! !!!! ???? !!!! !!!! gggg
- xxxx,xxxx,0xc6,0x06,0xa0,0xfe,0xcf,0x8e, 0x43,0x8f,0x2d,xxxx,0xd4,0x85,0x75,0xa2, /* 20 */
-// !!!! !!!! !!!! !!!! !!!! !!!! !!!! !!!!
- 0x3d,xxxx,xxxx,0x38,0x7c,0x89,0xd1,0x80, 0x3b,0x72,0x07,xxxx,0x42,0x37,0x0a,0x18, /* 30 */
-// gggg !!!! ???? !!!! !!!! !!!! !!!! !!!! !!!! ssss !!!!
- 0x88,0xb4,0x98,0x8b,0xb9,0x9c,0xad,0x0e, 0x2b,xxxx,0xbf,xxxx,0x55,xxxx,0x56,0xb0, /* 40 */
-// !!!! pppp !!!! !!!! !!!! !!!! gggg !!!! !!!! !!!! !!!!
- 0x93,0x91,xxxx,0xeb,xxxx,0x50,0x41,0x29, 0x47,xxxx,xxxx,0x60,xxxx,0xab,xxxx,xxxx, /* 50 */
-// pppp !!!! !!!! !!!! !!!! !!!! !!!! !!!!
- 0xc3,0xe2,0xd0,0xb2,0x11,0x79,xxxx,0x08, xxxx,0xfb,xxxx,0x2c,0x23,xxxx,0x28,0x0d, /* 60 */
-// !!!! !!!! !!!! !!!! ???? !!!! !!!!
- xxxx,xxxx,xxxx,0x83,0x3c,xxxx,0x1b,0x34, 0x5b,xxxx,0x40,xxxx,xxxx,0x04,0xfc,0xcd, /* 70 */
-// !!!! !!!! !!!! !!!! !!!! ssss
- 0xb1,0xf3,0x8a,xxxx,xxxx,0x87,xxxx,xxxx, xxxx,xxxx,xxxx,xxxx,0xbe,0x84,0x1f,0xe6, /* 80 */
-// !!!! !!!! !!!! !!!! !!!!
- 0xff,xxxx,0x12,xxxx,0xb5,0x36,xxxx,0xb3, xxxx,xxxx,xxxx,0xd2,0x4e,xxxx,xxxx,xxxx, /* 90 */
-// !!!! !!!! !!!!
- 0xa5,xxxx,xxxx,0xc7,xxxx,0x27,0x0b,xxxx, 0x20,xxxx,xxxx,xxxx,xxxx,xxxx,0x61,0x7d, /* A0 */
-// !!!! !!!! !!!! !!!! ????
- xxxx,xxxx,0x86,0x0f,xxxx,0xb7,xxxx,0x4f, xxxx,xxxx,0xc0,0xfd,xxxx,0x39,xxxx,0x77, /* B0 */
-// !!!! !!!! !!!! !!!! !!!!
- 0x05,0x3a,xxxx,0x48,0x92,0x76,0x3e,0x03, xxxx,0xf8,xxxx,0x59,0xa8,0x5f,0xf9,0xbb, /* C0 */
-// !!!! !!!! pppp !!!! !!!! !!!! !!!! !!!!
- 0x81,0xfa,0x9d,0xe9,0x2e,0xa1,0xc1,0x33, xxxx,0x78,xxxx,0x0c,xxxx,0x24,0xaa,0xac, /* D0 */
-// !!!! !!!! !!!! !!!! !!!! !!!! !!!! !!!! ???? !!!! !!!!
- xxxx,0xb6,xxxx,0xea,xxxx,0x73,0xe5,0x58, 0x00,0xf7,xxxx,0x74,xxxx,0x76,xxxx,0xa3, /* E0 */
-// !!!! gggg !!!! !!!! !!!! !!!! ???? !!!!
- xxxx,0x5a,0xf6,0x32,0x46,0x2a,xxxx,xxxx, 0x53,0x4b,0x90,0x0d,0x51,0x68,0x99,0x13, /* F0 */
-// !!!! !!!! !!!! !!!! !!!! !!!! !!!! ???? !!!! !!!!
-};
-/*
-missing opcode:
-
-"!!!!" -> checked against gussun
-"gggg" -> very probably
-"pppp" -> probably
-"ssss" -> sure
-"????" -> missing
-
-
-1a -> (78,7c,7e) ->
-34 -> (78,7c,7e) -> 78
-
-65 -> (79,
-af -> (79,7d) (strange 71) ->
-d9 -> (11e07 from 11de6) (70,78 -> to handle a01ce=000-7d0 -> 0x78
-ed -> (p76,78,7c,7e) ->
-fb ->
-
-probably:
-42 -> 0x98 (083a3)
-50 -> 0x93 (083a7)
-c5 -> (18d56 - from 1844f) (71,73,76,79,7a,7d,7e) -> to handle level number (a008d=00-0f) -> 0x76
-
-very probably:
-48 -> 0x2b
-e5 -> 0x73
-
-sure:
-00 -> 0x7f
-3d -> 0x37
-7f -> 0xcd (little machine in the game - 16058)
-
-*/
-// 0x2c (0xd4) complete guess
-// 0x2d (0x85) complete guess
-// 0xc4 (0x92) guess
-// 0xbb (0xfd) guess
-// 0x46 (0xad) guess - risky challenge use same code
-// 0x6e (0x28) guess
-// 0x76 (0x1b) guess
-// 0x8d (0x84) guess
-// 0xa6 (0x0b) guess - risky challenge use same code
-// 0xa8 (0x20) guess
-// 0xbd (0x39) guess - risky challenge use same code
-// 0xc3 (0x48) guess
-// and our collection of conditional branches:
-// 0xbf (0x7d) >= (monitor test)
-// 0x34 (0x7c) < or <= (seems more like <) | these two are used toghether
-// 0xaf (0x7f) > or >= (seems more like >) |
-// 0xed (0x7e) <= or < (seems more like <=)
-// 0x00 (0x7f) > ? | these two are used toghether
-// 0x1a (0x7c) < ? | (rowscroll on pink screen on startup)
-// 0xc5 (0x7a) completely in the dark (game start after car seelction)
-
-
-const UINT8 dynablaster_decryption_table[256] = {
- 0x1f,0x51,0x84,xxxx,0x3d,0x09,0x0d,xxxx, xxxx,0x57,xxxx,xxxx,xxxx,0x32,0x11,xxxx, /* 00 */
- xxxx,0x9c,xxxx,xxxx,0x4b,xxxx,xxxx,0x03, xxxx,xxxx,xxxx,0x89,0xb0,xxxx,xxxx,xxxx, /* 10 */
- xxxx,0xbb,0x18,0xbe,0x53,0x21,0x55,0x7c, xxxx,xxxx,0x47,0x58,0xf6,xxxx,xxxx,0xb2, /* 20 */
- 0x06,xxxx,0x2b,xxxx,0x2f,0x0b,0xfc, 0x91 , xxxx,xxxx,0xfa,0x81,0x83,0x40,0x38,xxxx, /* 30 */
- xxxx,xxxx,0x49,0x85,0xd1,0xf5,0x07,0xe2, 0x5e,0x1e,xxxx,0x04,xxxx,xxxx,xxxx,0xb1, /* 40 */
- 0xc7,xxxx,0x96, 0xf2 /*0xaf*/, 0xb6,0xd2,0xc3,xxxx, 0x87,0xba,0xcb,0x88,xxxx,0xb9,0xd0,0xb5, /* 50 */
- 0x9a,0x80,0xa2,0x72,xxxx,0xb4,xxxx,0xaa, 0x26,0x7d,0x52,0x33,0x2e,0xbc,0x08,0x79, /* 60 */
- 0x48,xxxx,0x76,0x36,0x02,xxxx,0x5b,0x12, 0x8b,0xe7,xxxx,xxxx,xxxx,0xab,xxxx,0x4f, /* 70 */
- xxxx,xxxx,0xa8,0xe5,0x39,0x0e,0xa9,xxxx, xxxx,0x14,xxxx,0xff, 0x7f/*0x75*/ ,xxxx,xxxx,0x27, /* 80 */
- xxxx,0x01,xxxx,xxxx,0xe6,0x8a,0xd3,xxxx, xxxx,0x8e,0x56,0xa5,0x92,xxxx,xxxx,0xf9, /* 90 */
- 0x22,xxxx,0x5f,xxxx,xxxx,0xa1,xxxx,0x74, 0xb8,xxxx,0x46,0x05,0xeb,0xcf,0xbf,0x5d, /* a0 */
- 0x24,xxxx,0x9d,xxxx,xxxx,xxxx,xxxx,xxxx, 0x59,0x8d,0x3c,0xf8,0xc5,xxxx,0xf3,0x4e, /* b0 */
- xxxx,xxxx,0x50,0xc6,0xe9,0xfe,0x0a,xxxx, 0x99,0x86,xxxx,xxxx,0xaf ,0x8c/*0x8e*/,0x42,0xf7, /* c0 */
- xxxx,0x41,xxxx,0xa3,xxxx,0x3a,0x2a,0x43, xxxx,0xb3,0xe8,xxxx,0xc4,0x35,0x78,0x25, /* d0 */
- 0x75,xxxx,0xb7,xxxx,0x23,xxxx, xxxx/*0xe2*/,0x8f, xxxx,xxxx,0x2c,xxxx,0x77,0x7e,xxxx,0x0f, /* e0 */
- 0x0c,0xa0,0xbd,xxxx,xxxx,0x2d,0x29,0xea, xxxx,0x3b,0x73,xxxx,0xfb,0x20,xxxx,0x5a /* f0 */
-};
-//double check 0x00/0xa0 AND.
-//double check 0x8c (0x7d jg)
-//double check 0xfd (0x20 AND) - 9d2 in code
-//double check 0xd1 (0x41 INC cw) used in uccops and dynablaster (LOOKS GOOD)
-
-//AND fd (0x20)
-//0x37 (91) guess from dynablaster title screen
-
-// BM - 0x61 NOT 82, but instead 0x80 verified in both Atomic Punk and UCCops
-// 0x22 is 0x18 (SBB) verified from Gunforce
-// 0x5b seems confirmed (previous commented out as 0x36)
-// NS I expected 0x32 to be 0x1b (SBB) like in gunforce, but startup tests fail in bbmanw.
-// therefore it seems to be 0x2b (SUB)
-// NS010718 0xa0 was 0x00 (ADDB), verified to be 0x22 (ANDB)
-
-
-const UINT8 mysticri_decryption_table[256] = {
- xxxx,0x57,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx, 0xbf,0x43,xxxx,xxxx,xxxx,xxxx,0xfc,xxxx, /* 00 */
- xxxx,xxxx,xxxx,xxxx,xxxx,0x52,0xa3,0x26, xxxx,0xc7,xxxx,0x0f,xxxx,0x0c,xxxx,xxxx, /* 10 */
- xxxx,xxxx,0xff,xxxx,xxxx,0x02,xxxx,xxxx, 0x2e,xxxx,0x5f,xxxx,xxxx,xxxx,0x73,0x50, /* 20 */
- 0xb2,0x3a,xxxx,xxxx,0xbb,xxxx,xxxx,xxxx, xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx, /* 30 */
- xxxx,xxxx,0x8e,0x3c,0x42,xxxx,xxxx,0xb9, xxxx,xxxx,0x2a,xxxx,0x47,0xa0,0x2b,0x03, /* 40 */
- 0xb5,0x1f,xxxx,0xaa,xxxx,0xfb,xxxx,xxxx, xxxx,xxxx,xxxx,xxxx,0x38,xxxx,xxxx,xxxx, /* 50 */
- 0x2c,xxxx,xxxx,0xc6,xxxx,xxxx,0xb1,xxxx, xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,0xa2,xxxx, /* 60 */
- 0xe9,0xe8,xxxx,xxxx,0x86,xxxx,0x8b,xxxx, xxxx,xxxx,xxxx,xxxx,0x5b,0x72,xxxx,xxxx, /* 70 */
- xxxx,xxxx,0x5d,0x0a,xxxx,xxxx,0x89,xxxx, 0xb0,0x88,xxxx,xxxx,xxxx,0x87,0x75,0xbd, /* 80 */
- xxxx,0x51,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx, xxxx,xxxx,xxxx,0x5a,0x58,xxxx,xxxx,0x56, /* 90 */
- xxxx,0x8a,xxxx,0x55,xxxx,xxxx,xxxx,0xb4, 0x08,xxxx,0xf6,xxxx,xxxx,0x9d,xxxx,0xbc, /* A0 */
- 0x0b,xxxx,xxxx,0x5e,xxxx,xxxx,xxxx,0x22, 0x36,xxxx,0x1e,xxxx,0xb6,0xba,0x23,xxxx, /* B0 */
- 0x20,xxxx,xxxx,xxxx,0x59,0x53,xxxx,0x04, 0x81,xxxx,xxxx,0xf3,xxxx,xxxx,0x3b,0x06, /* C0 */
- xxxx,0x79,0x83,0x9c,xxxx,0x18,0x80,xxxx, 0xc3,xxxx,xxxx,xxxx,0x32,xxxx,0xcf,xxxx, /* D0 */
- 0xeb,xxxx,xxxx,0x33,xxxx,0xfa,xxxx,xxxx, 0xd2,xxxx,0x24,xxxx,0x74,0x41,0xb8,xxxx, /* E0 */
- xxxx,xxxx,0xd0,0x07,xxxx,xxxx,xxxx,xxxx, xxxx,0x46,xxxx,0xea,0xfe,0x78,xxxx,xxxx, /* F0 */
-};
-// 0xd5 (0x18) opcode is right but arguments could be swapped
-// 0x4e (0x2b) not sure, could be 0x1b
-
-
-const UINT8 majtitl2_decryption_table[256] = {
- 0x87,xxxx,0x78,0xaa,xxxx,xxxx,xxxx,0x2c, 0x32,0x0a,0x0f,xxxx,0x5e,xxxx,0xc6,0x8a, /* 00 */
- 0x33,xxxx,xxxx,xxxx,xxxx,0xea,xxxx,0x72, xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,0x24,0x55, /* 10 */
- xxxx,xxxx,xxxx,0x89,0xfb,xxxx,0x59,0x02, xxxx,xxxx,0x5d,xxxx,xxxx,xxxx,0x36,xxxx, /* 20 */
- xxxx,0x06,0x79,xxxx,xxxx,0x1e,0x07,xxxx, xxxx,xxxx,0x83,xxxx,xxxx,xxxx,xxxx,xxxx, /* 30 */
- 0x9d,xxxx,xxxx,0x74,xxxx,xxxx,xxxx,0x0c, 0x58,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx, /* 40 */
- 0x3c,xxxx,0x03,xxxx,xxxx,0xfa,0x43,xxxx, 0xbf,xxxx,xxxx,0x75,xxxx,0x88,xxxx,0x80, /* 50 */
- xxxx,0xa3,xxxx,0xfe,xxxx,xxxx,xxxx,xxxx, xxxx,xxxx,xxxx,xxxx,0x3a,xxxx,xxxx,xxxx, /* 60 */
- 0x2b,xxxx,xxxx,xxxx,xxxx,0xe9,0x5f,xxxx, 0x46,xxxx,0x41,xxxx,0x18,0xb8,xxxx,xxxx, /* 70 */
- 0xb4,0x5a,0xb1,xxxx,xxxx,0x50,0xe8,0x20, xxxx,0xb2,xxxx,xxxx,xxxx,xxxx,xxxx,0x51, /* 80 */
- xxxx,xxxx,xxxx,0x56,xxxx,xxxx,xxxx,xxxx, xxxx,0xcf,xxxx,xxxx,xxxx,0xc3,xxxx,xxxx, /* 90 */
- xxxx,xxxx,xxxx,xxxx,0x0b,xxxx,xxxx,0xb5, 0x57,xxxx,xxxx,0xc7,0x3b,xxxx,xxxx,xxxx, /* A0 */
- xxxx,xxxx,xxxx,xxxx,0xb6,xxxx,0xeb,xxxx, 0x38,xxxx,0xa0,0x08,xxxx,0x86,0xb0,xxxx, /* B0 */
- 0x42,0x1f,0x73,xxxx,0xf6,xxxx,xxxx,xxxx, 0x53,xxxx,0x52,xxxx,0x04,0xbd,xxxx,xxxx, /* C0 */
- 0x26,0xff,0x2e,xxxx,0x81,xxxx,0x47,xxxx, xxxx,xxxx,xxxx,0xd0,0x22,xxxx,xxxx,0xb9, /* D0 */
- 0x23,xxxx,0xf3,xxxx,xxxx,xxxx,xxxx,xxxx, xxxx,0xd2,0x8b,0xba,xxxx,xxxx,xxxx,0x5b, /* E0 */
- xxxx,xxxx,0x9c,xxxx,xxxx,xxxx,xxxx,0xfc, 0xbc,0xa2,0x2a,xxxx,xxxx,0x8e,0xbb,xxxx, /* F0 */
-};
-// 0x7c (0x18) opcode is right but arguments could be swapped
-// 0x70 (0x2b) not sure, could be 0x1b
-
-
-const UINT8 hook_decryption_table[256] = {
- 0xb6,0x20,0x22,xxxx,0x0f,0x57,0x59,0xc6, 0xeb,xxxx,0xb0,0xbb,0x3b,xxxx,xxxx,xxxx, /* 00 */
- 0x36,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx, xxxx,0xfe,xxxx,xxxx,xxxx,xxxx,xxxx,0xa0, /* 10 */
- 0x2e,xxxx,0x0b,xxxx,xxxx,0x58,xxxx,xxxx, xxxx,xxxx,xxxx,xxxx,xxxx,0x80,xxxx,xxxx, /* 20 */
- 0x33,xxxx,xxxx,0xbf,0x55,xxxx,xxxx,xxxx, 0x53,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx, /* 30 */
- 0x47,0x74,xxxx,0xb1,0xb4,xxxx,xxxx,0x88, xxxx,xxxx,0x38,0xcf,xxxx,0x8e,xxxx,xxxx, /* 40 */
- xxxx,0xc7,xxxx,0x32,xxxx,0x52,0x3c,xxxx, xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,0x83,0x72, /* 50 */
- xxxx,0x73,xxxx,0x5a,xxxx,0x43,xxxx,xxxx, xxxx,xxxx,0x41,0xe9,0xbd,xxxx,0xb2,0xd2, /* 60 */
- xxxx,0xaa,0xa2,xxxx,xxxx,xxxx,xxxx,xxxx, xxxx,xxxx,xxxx,0x26,xxxx,xxxx,0x8a,xxxx, /* 70 */
- xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,0x18, xxxx,0x9d,xxxx,xxxx,xxxx,0x5d,xxxx,0x46, /* 80 */
- xxxx,xxxx,xxxx,0xf6,0xc3,0xa3,0x1e,0x07, 0x5f,0x81,xxxx,0x0c,xxxx,0xb8,xxxx,0x75, /* 90 */
- xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx, xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,0x79, /* A0 */
- xxxx,0x5e,xxxx,xxxx,0x06,xxxx,0xff,xxxx, 0x5b,0x24,xxxx,0x2b,xxxx,xxxx,xxxx,0x02, /* B0 */
- 0x86,xxxx,xxxx,0xfb,xxxx,xxxx,0x50,0xfc, 0x08,xxxx,xxxx,xxxx,0x03,xxxx,0xb9,xxxx, /* C0 */
- xxxx,0xbc,0xe8,0x1f,0xfa,0x42,xxxx,xxxx, 0x89,xxxx,0x23,0x87,xxxx,0x2a,xxxx,xxxx, /* D0 */
- 0x8b,xxxx,0xf3,0xea,0x04,0x2c,0xb5,xxxx, 0x0a,xxxx,0x51,xxxx,xxxx,0x3a,xxxx,0x9c, /* E0 */
- xxxx,xxxx,0x78,xxxx,0xba,xxxx,xxxx,xxxx, xxxx,xxxx,xxxx,xxxx,0xd0,0x56,xxxx,xxxx, /* F0 */
-};
-// 0x87 (0x18) opcode is right but arguments could be swapped
-// 0xbb (0x2b) not sure, could be 0x1b
-
-
-const UINT8 rtypeleo_decryption_table[256] = {
- 0x5d,xxxx,0xc6,xxxx,xxxx,xxxx,0x2a,0x3a,xxxx,xxxx,xxxx,0x86,xxxx,0x22,xxxx,0xf3, /* 00 */
- xxxx,xxxx,xxxx,xxxx,xxxx,0x38,0xf7,0x42,0x04,xxxx,xxxx,0x1f,0x4b,xxxx,xxxx,0x58, /* 10 */
- 0x57,0x2e,xxxx,xxxx,0x53,xxxx,0xb9,xxxx,xxxx,xxxx,xxxx,xxxx,0x20,0x55,xxxx,0x3d, /* 20 */
- 0xa0,xxxx,xxxx,0x0c,0x03,xxxx,0x83,xxxx,xxxx,xxxx,0x8a,0x00,xxxx,0xaa,xxxx,xxxx, /* 30 */
- xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,0x41,0x0a,0x26,0x8b,0x56,0x5e,xxxx, /* 40 */
- xxxx,0x74,xxxx,xxxx,xxxx,xxxx,0x06,xxxx,xxxx,0x89,0x5b,0xc7,0x43,xxxx,xxxx,xxxx, /* 50 */
- xxxx,0xb6,xxxx,0x3b,xxxx,xxxx,xxxx,xxxx,xxxx,0x36,0xea,0x80,xxxx,xxxx,xxxx,0x5f, /* 60 */
- xxxx,0x0f,xxxx,xxxx,xxxx,0x46,xxxx,xxxx,0x3c,0x8e,xxxx,0xa3,0x87,xxxx,xxxx,xxxx, /* 70 */
- 0x2b,0xfb,0x47,0x0b,xxxx,0xfc,0x02,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,0x72,0x2c, /* 80 */
- 0x33,xxxx,xxxx,xxxx,xxxx,xxxx,0x9d,0xbd,xxxx,0xb2,xxxx,0x78,0x75,0xb8,xxxx,xxxx, /* 90 */
- xxxx,xxxx,xxxx,xxxx,0xcf,0x5a,0x88,xxxx,xxxx,xxxx,0xc3,xxxx,0xeb,0xfa,xxxx,0x32, /* A0 */
- xxxx,xxxx,xxxx,0x52,0xb4,xxxx,xxxx,xxxx,xxxx,0xbc,xxxx,xxxx,xxxx,0xb1,0x59,0x50, /* B0 */
- xxxx,xxxx,0xb5,xxxx,0x08,0xa2,0xbf,0xbb,0x1e,0x9c,xxxx,0x73,xxxx,0xd0,xxxx,xxxx, /* C0 */
- xxxx,xxxx,xxxx,xxxx,0x81,xxxx,0x79,xxxx,xxxx,0x24,0x23,xxxx,xxxx,0xb0,0x07,0xff, /* D0 */
- xxxx,0xba,0xf6,0x51,xxxx,xxxx,xxxx,0xfe,xxxx,0x92,xxxx,xxxx,xxxx,xxxx,0xe9,xxxx, /* E0 */
- xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,0xe8,0xd2,xxxx,0x18,xxxx,xxxx,xxxx,0xd1,xxxx,xxxx, /* F0 */
-// ^^^^
-};
-// 0xf9 (0x18) opcode is right but arguments could be swapped
-// 0x80 (0x2b) not sure, could be 0x1b
-// 0x16 (0x01) guess (wrong?)
-// fixed 0x16 = 0xf7 mapping
-// 3d = correct
-
-const UINT8 inthunt_decryption_table[256] = {
- 0x1f,xxxx,0xbb,0x50,xxxx,0x58,0x42,0x57, xxxx,xxxx,0xe9,xxxx,xxxx,xxxx,xxxx,0x0b, /* 00 */
- xxxx,xxxx,0x9d,0x9c,xxxx,xxxx,0x1e,xxxx, xxxx,0xb4,0x5b,xxxx,xxxx,xxxx,xxxx,xxxx, /* 10 */
- xxxx,xxxx,0x78,0xc7,xxxx,xxxx,0x83,xxxx, xxxx,0x0c,0xb0,0x04,xxxx,xxxx,xxxx,xxxx, /* 20 */
- xxxx,xxxx,xxxx,xxxx,0x3b,0xc3,0xb5,0x47, xxxx,xxxx,xxxx,xxxx,0x59,xxxx,xxxx,xxxx, /* 30 */
- xxxx,xxxx,xxxx,0x38,xxxx,xxxx,xxxx,xxxx, 0x5f,0xa3,0xfa,xxxx,0xe8,0x36,0x75,xxxx, /* 40 */
- 0x88,0x33,xxxx,xxxx,xxxx,xxxx,0x43,xxxx, xxxx,0x87,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx, /* 50 */
- xxxx,xxxx,xxxx,xxxx,0x8e,0xf3,0x56,xxxx, xxxx,xxxx,xxxx,0x26,0xff,xxxx,xxxx,xxxx, /* 60 */
- xxxx,xxxx,xxxx,0x2a,xxxx,0x8a,xxxx,0x18, xxxx,xxxx,0x03,0x89,0x24,xxxx,xxxx,xxxx, /* 70 */
- 0x0a,xxxx,0xeb,xxxx,0x86,xxxx,xxxx,xxxx, 0x79,0x3a,xxxx,xxxx,xxxx,xxxx,0xa0,xxxx, /* 80 */
- 0xea,xxxx,xxxx,xxxx,xxxx,xxxx,0x2c,xxxx, 0xc6,xxxx,xxxx,0x46,xxxx,0xaa,0xb6,0x5e, /* 90 */
- xxxx,xxxx,xxxx,xxxx,0x8b,xxxx,xxxx,xxxx, xxxx,xxxx,0xba,xxxx,0xb9,0x53,0xa2,xxxx, /* A0 */
- xxxx,0x07,xxxx,xxxx,xxxx,0x3c,0x32,xxxx, 0x2b,xxxx,0xb8,xxxx,xxxx,xxxx,xxxx,xxxx, /* B0 */
- 0xbd,xxxx,xxxx,xxxx,xxxx,0x81,xxxx,0xd0, 0x08,xxxx,0x55,0x06,0xcf,xxxx,xxxx,0xfc, /* C0 */
- xxxx,xxxx,xxxx,0xb1,0xbf,xxxx,xxxx,0x51, 0x52,xxxx,0x5d,xxxx,0x5a,xxxx,0xb2,xxxx, /* D0 */
- 0xfe,xxxx,xxxx,0x22,0x20,0x72,0xf6,0x80, 0x02,0x2e,xxxx,0x74,0x0f,xxxx,xxxx,xxxx, /* E0 */
- xxxx,xxxx,xxxx,xxxx,0xbc,0x41,xxxx,0xfb, 0x73,xxxx,xxxx,xxxx,0x23,0xd2,xxxx,xxxx, /* F0 */
-};
-// 0x77 (0x18) opcode is right but arguments could be swapped
-// 0xb8 (0x2b) not sure, could be 0x1b
-
-const UINT8 gussun_decryption_table[256] = {
- 0x63,xxxx,xxxx,0x36,xxxx,0x52,0xb1,0x5b, 0x68,0xcd,xxxx,xxxx,xxxx,0xa8,xxxx,xxxx, /* 00 */
-// gggg gggg gggg gggg
- xxxx,xxxx,0x75,0x24,0x08,0x83,0x32,0xe9, xxxx,0x79,xxxx,0x8f,0x22,xxxx,0xac,xxxx, /* 10 */
-// pppp pppp gggg
- 0x5d,0xa5,0x11,0x51,0x0a,0x29,xxxx,xxxx ,0xf8,0x98,0x91,0x40,0x28,0x00,0x03,0x5f, /* 20 */
-// gggg gggg gggg gggg gggg gggg pppp
- 0x26,xxxx,xxxx,0x8b,0x2f,0x02,xxxx,xxxx, 0x8e,0xab,xxxx,xxxx,0xbc,0x90,0xb3,xxxx, /* 30 */
-// gggg
- 0x09,xxxx,0xc6,xxxx,xxxx,0x3a,xxxx,xxxx, xxxx,0x74,0x61,xxxx,0x33,xxxx,xxxx,xxxx, /* 40 */
-// gggg
- xxxx,0x53,0xa0,0xc0,0xc3,0x41,0xfc,0xe7, xxxx,0x2c,0x7c,0x2b,xxxx,0x4f,0xba,0x2a, /* 50 */
-// gggg gggg gggg pppp gggg gggg
- 0xb0,xxxx,0x21,0x7d,xxxx,xxxx,0xb5,0x07, 0xb9,xxxx,0x27,0x46,0xf9,xxxx,xxxx,xxxx, /* 60 */
-// pppp pppp gggg gggg
- xxxx,0xea,0x72,0x73,0xad,0xd1,0x3b,0x5e, 0xe5,0x57,xxxx,0x0d,0xfd,xxxx,0x92,0x3c, /* 70 */
-// gggg pppp gggg gggg
- xxxx,0x86,0x78,0x7f,0x30,0x25,0x2d,xxxx, 0x9a,0xeb,0x04,0x0b,0xa2,0xb8,0xf6,xxxx, /* 80 */
-// pppp gggg gggg pppp gggg
- xxxx,xxxx,0x9d,xxxx,0xbb,xxxx,xxxx,0xcb, 0xa9,0xcf,xxxx,0x60,0x43,0x56,xxxx,xxxx, /* 90 */
-// gggg gggg
- xxxx,0xa3,xxxx,xxxx,0x12,xxxx,0xfa,0xb4, xxxx,0x81,0xe6,0x48,0x80,0x8c,0xd4,xxxx, /* a0 */
-// gggg gggg pppp gggg gggg
- 0x42,xxxx,0x84,0xb6,0x77,0x3d,0x3e,xxxx, xxxx,0x0c,0x4b,xxxx,0xa4,xxxx,xxxx,xxxx, /* b0 */
-// gggg gggg pppp gggg gggg pppp pppp gggg
- xxxx,0xff,0x47,xxxx,0x55,0x1e,xxxx,0x59, 0x93,xxxx,xxxx,xxxx,0x88,0xc1,0x01,0xb2, /* c0 */
-// gggg
- 0x85,0x2e,0x06,0xc7,0x05,xxxx,0x8a,0x5a, 0x58,0xbe,xxxx,0x4e,xxxx,0x1f,0x23,xxxx, /* d0 */
-// gggg gggg
- 0xe8,xxxx,0x89,0xa1,0xd0,xxxx,xxxx,0xe2, 0x38,0xfe,0x50,0x9c,xxxx,xxxx,xxxx,0x49, /* e0 */
-// gggg gggg
- 0xfb,0x20,0xf3,xxxx,xxxx,0x0f,xxxx,xxxx, xxxx,0x76,0xf7,0xbd,0x39,0x7e,0xbf,xxxx, /* f0 */
-// pppp gggg gggg gggg
-};
-
-
-/*
-missing opcode:
-
-" " -> checked against hasamu (i.e. you can compare gussun from 2002a and hasamu from 54a0)
-"gggg" -> very probably
-"pppp" -> probably
-"????" -> missing
-
-rz probably:
-14 -> 08 (2097b 20980 - routine from 2097a) (08 30) to handle the player number -> 08
-19 -> 79 (1df45 routine from 1df27 / 2282f - routine from 2281f to 22871) no 70,78,7a,7b,7c,7e,7f(ok) ok 79,7d
-5a -> 7c (195eb - (222fc - routine from 222ed to ) (7x j...) no 70,71,79,7a,7b ok (78,7c) -> 7c
-63 -> 7d (1df7f, 1df8c, 1df95, 21f08 - routine from 1df27 to ) no 70,78,7a,7b,7c,7e,7f(ok) ok 79,7d
-7b -> 0d
-82 -> 78 (78,7c) -> 78
-86 -> 2d
-ab -> 48 (1956f - routine from 194e1 to 19619 - bp 19567) (when the water go up) -> 48
-b3 -> b6 (216b6 - 216cf - 16663 (when you rotate a piece) - 175f1 - 17d2a - 17d36) -> b6
-b9 -> 0c (21210 - routine from 2117e to ) 2 bytes -> to handle messages in level 0 (learning level)
-ba -> 4b (1094d, 10b28 - routine from 10948 to 10b73) one byte -> probably 4b
-f1 -> 20 to handle the player number
-
-rz guess:
-06 -> b1 (22872 - routine from 22872 to 2289d)
-09 -> cd (22a17 - routine from 229ed to 22a1a)
-0d -> a8 (
-1b -> 8f (1d8f9 - routine from 1d8c7 to 1d8fc) - three bytes (pop instruction for the push in 1d8e6)
-22 -> 11 (1deff - routine from 1dee8 to 1df26) -> 11 - to handle sprite animation
-25 -> 29 (195a0 - routine from 194e1 to ) (19,29)
-28 -> f8 (
-29 -> 98 (1df22 - routine from 1dee8 to 1df26) -> 98 - to handle sprite animation
-2b -> 40 (1d4d2 1db81 1dba9 - routine from 1d4b2 to 1d4de) -> 40
-2c -> 28 (20333 - routine from 2032a to 20366) (18,28)
-2d -> 00 (1df1d - routine from 1dee8 to 1df26) -> 00 - to handle sprite animation
-34 -> 2f (20381 - routine from 2037b to 20391) - used to handle number of lives and game over
-40 -> 09
-52 -> a0
-55 -> 41
-59 -> 2c (220cf - 2037f - routine from 2202f to ) 2bytes (2c,
-5b -> 2b (used in "Service Mode" / "CHARACTER menu")
-5d -> 4f
-62 -> 21 (1cf86 1cfa3 - routine from 1cf61 to 1cff4) (water in level 1) (01 11 19 29)
-66 -> b5 (1daaf - routine from 1da61 to 1daca) - two bytes (colors effect)
-6a -> 27 (20368 - routine from 20368 to 2037a) - used to limit the max lives number
-73 -> 73 (1d4f7 - routine from 1d4df to 1d539) -> (no 70,71,72,74,75,76,77,78,79,7a,7b,7c,7d,7e,7f) - ok 73
-7c -> fd
-7e -> 92 (1e095 - routine from 1e073 to 1e0cf)
-83 -> 7f (194cd - routine from) no 70,78,79,7a,7b,7c,7d,7e ok 77(no) ok 7f
-84 -> 08 (1d8f1 - routine from 1d8c7 to 1d8fc) - three bytes (ok 30) (sprite animation) -> 30
-88 -> 9a
-92 -> 9d
-97 -> cb
-a4 -> 12 (02,12) - routine from 1d392 -> 12
-a7 -> b4 (2029a - routine from 20290 to
-ad -> 8c (1d559, 1d8d4 - routine from 1d547 - ; routine from 1d8b8 to 1d8fc) ..............................
-ae -> d4 (20215 - ) used when you insert a coin to handle the "coin number" in decimal
-b0 -> 42 (routine from 128db)
-b2 -> 84 (20a8b - 20acc) 20,21,84,85 (scroll down the object) - to handle the player number
-b4 -> 77 (1d03a, 1d57a - routine from 1d4df ) no 70,71,76,78,79,7a,7b,7c,7d,7e,7f ok 77
-b6 -> 3e
-bc -> a4
-c2 -> 47 (22881, 220ff - routine from 22872 to 22885)
-d0 -> 85 (routine from 16a3e) (when you rotate a piece)
-db -> 4e (18b1a)
-eb -> 9c
-ef -> 49 (dec CW) (used in "Service Mode" / "CHARACTER menu")
-f9 -> 76 (16d02(f 16cfa)-16598-165a1-18de7(f 18dc4) no 71(no),77(no),(icons? 70,76,78,7a,7c,7e),79,7d,7f(no) maybe 76
-fb -> bd
-fd -> 7e (1d659 - routine from 1d63c to 1d65e) no 70,76,77,78,79,7a,7b, 7c,7d,7e,7f ok 7e
-
-missing V35+ core:
-0f 92 -> of 92 not supported (1011d before STI instruction) (for now no effects)
-
--------------------------------------------------------------------------------------------------------------
-
-AS notes:
-0x1e is lodsb not lds,noted from 2344f
-0x16 is xor r8,r8 not xor r16,r16
-0xc8 not inc aw but xch bw,aw
-0xcd is 0xc1 not 0xbd(palette at startup)
-0x97 guess,but seems right(228c1),known to *not* be ret %Iw.
-0x00 wrong(for sure it needs a one byte operand due to push es called at one point...)
-0x19 guess (0x82 PRE)
-0xc2 guess,it could be dec iy...
-
-above - c8 (inc aw) guess from stos code
-0xc5 -> 1e (push ds) guess (pop ds soon after) right?
-0xa9 -> 81 (not 0x82 PRE) guess from 237df
-0xcd -> c1 total guess (wrong but 3 bytes)
-*/
-
-/*
-e0100 palette sub-routine:
-12485: 23 push es
-12486: 27 C2 mov es,dw
-12488: D7 C0 xor aw,aw
-1248A: D7 FF xor iy,iy
-1248C: 44 00 01 mov cw,$0100
-1248F: 81 5D repe stosw
-12491: 95 22 06 97 39 mov byte ss:[$3997],$FF
-12497: 3A pop es
-12498: 60 ret
-
-d1a86
-
-unk
-add bw,bw [d8]
-add ix,sp [e6]
-add iy,sp [e7]
-clc
-ret
-*/
-
-const UINT8 leagueman_decryption_table[256] = {
- xxxx,xxxx,xxxx,0x55,0xbb,xxxx,0x23,0x79, xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,0x38,xxxx, /* 00 */
- 0xf7,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx, 0x3d,xxxx,xxxx,xxxx,0xba,xxxx,0x1e,xxxx, /* 10 */
- 0x2c,0x46,xxxx,0xb5,xxxx,0x4b,xxxx,0xfe, xxxx,xxxx,0xfb,0x2e,xxxx,xxxx,0x36,0x04, /* 20 */
- 0xcf,xxxx,0xf3,0x5a,0x8a,0x0c,0x9c,xxxx, xxxx,xxxx,0xb2,0x50,xxxx,xxxx,xxxx,0x5f, /* 30 */
- xxxx,xxxx,0x24,xxxx,xxxx,0x41,0x2b,xxxx, 0xe9,xxxx,0x08,0x3b,xxxx,xxxx,xxxx,xxxx, /* 40 */
- xxxx,0xd2,0x51,xxxx,xxxx,xxxx,0x22,xxxx, 0xeb,0x3a,0x5b,0xa2,0xb1,0x80,xxxx,xxxx, /* 50 */
- xxxx,xxxx,xxxx,xxxx,0x59,0xb4,0x88,xxxx, xxxx,0xbf,0xd1,xxxx,0xb9,0x57,xxxx,xxxx, /* 60 */
- 0x72,xxxx,0x73,xxxx,xxxx,xxxx,xxxx,0x0f, xxxx,xxxx,xxxx,xxxx,0x56,xxxx,xxxx,0xc6, /* 70 */
- xxxx,xxxx,xxxx,xxxx,xxxx,0x2a,0x8e,xxxx, 0x81,0xa3,0x58,xxxx,0xaa,0x78,0x89,xxxx, /* 80 */
- xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,0xbd,xxxx, xxxx,xxxx,0xff,xxxx,xxxx,xxxx,0x07,0x53, /* 90 */
- 0xa0,xxxx,xxxx,0x5e,0xb0,xxxx,0x83,0xf6, xxxx,0x26,0x32,xxxx,xxxx,xxxx,0x74,0x0a, /* A0 */
- 0x18,xxxx,xxxx,xxxx,0x75,0x03,xxxx,xxxx, 0xb6,0x02,xxxx,xxxx,0x43,xxxx,0xb8,xxxx, /* B0 */
- 0xe8,xxxx,0xfc,xxxx,0x20,0xc3,xxxx,0x06, xxxx,0x1f,0x86,0x00,xxxx,xxxx,xxxx,0xd0, /* C0 */
- 0x47,xxxx,0x87,xxxx,xxxx,0x9d,0x3c,0xc7, xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx, /* D0 */
- xxxx,xxxx,xxxx,0x8b,xxxx,xxxx,0x33,xxxx, xxxx,xxxx,xxxx,xxxx,0xfa,0x42,xxxx,xxxx, /* E0 */
- xxxx,xxxx,xxxx,0xea,xxxx,0x52,xxxx,0x5d, xxxx,xxxx,xxxx,xxxx,0xbc,xxxx,xxxx,xxxx, /* F0 */
-};
-// 0x25 (0x4b) guess
-// fixed 0x10 = 0xf7 mapping
-
-const UINT8 leagueman_OLD_decryption_table[256] = {
- xxxx,xxxx,xxxx,0x55,0xbb,xxxx,0x23,0x79, xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,0x38,xxxx, /* 00 */
- 0x01,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx, 0x3d,xxxx,xxxx,xxxx,0xba,xxxx,0x1e,xxxx, /* 10 */
- 0x2c,0x46,xxxx,0xb5,xxxx,0x4b,xxxx,0xfe, xxxx,xxxx,0xfb,0x2e,xxxx,xxxx,0x36,0x04, /* 20 */
- 0xcf,xxxx,0xf3,0x5a,0x8a,0x0c,0x9c,xxxx, xxxx,xxxx,0xb2,0x50,xxxx,xxxx,xxxx,0x5f, /* 30 */
- xxxx,xxxx,0x24,xxxx,xxxx,0x41,0x2b,xxxx, 0xe9,xxxx,0x08,0x3b,xxxx,xxxx,xxxx,xxxx, /* 40 */
- xxxx,0xd2,0x51,xxxx,xxxx,xxxx,0x22,xxxx, 0xeb,0x3a,0x5b,0xa2,0xb1,0x80,xxxx,xxxx, /* 50 */
- xxxx,xxxx,xxxx,xxxx,0x59,0xb4,0x88,xxxx, xxxx,0xbf,0xd1,xxxx,0xb9,0x57,xxxx,xxxx, /* 60 */
- 0x72,xxxx,0x73,xxxx,xxxx,xxxx,xxxx,0x0f, xxxx,xxxx,xxxx,xxxx,0x56,xxxx,xxxx,0xc6, /* 70 */
- xxxx,xxxx,xxxx,xxxx,xxxx,0x2a,0x8e,xxxx, 0x81,0xa3,0x58,xxxx,0xaa,0x78,0x89,xxxx, /* 80 */
- xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,0xbd,xxxx, xxxx,xxxx,0xff,xxxx,xxxx,xxxx,0x07,0x53, /* 90 */
- 0xa0,xxxx,xxxx,0x5e,0xb0,xxxx,0x83,0xf6, xxxx,0x26,0x32,xxxx,xxxx,xxxx,0x74,0x0a, /* A0 */
- 0x18,xxxx,xxxx,xxxx,0x75,0x03,xxxx,xxxx, 0xb6,0x02,xxxx,xxxx,0x43,xxxx,0xb8,xxxx, /* B0 */
- 0xe8,xxxx,0xfc,xxxx,0x20,0xc3,xxxx,0x06, xxxx,0x1f,0x86,0x00,xxxx,xxxx,xxxx,0xd0, /* C0 */
- 0x47,xxxx,0x87,xxxx,xxxx,0x9d,0x3c,0xc7, xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx, /* D0 */
- xxxx,xxxx,xxxx,0x8b,xxxx,xxxx,0x33,xxxx, xxxx,xxxx,xxxx,xxxx,0xfa,0x42,xxxx,xxxx, /* E0 */
- xxxx,xxxx,xxxx,0xea,xxxx,0x52,xxxx,0x5d, xxxx,xxxx,xxxx,xxxx,0xbc,xxxx,xxxx,xxxx, /* F0 */
-};
-
-
-const UINT8 psoldier_decryption_table[256] = {
- xxxx,xxxx,xxxx,0x8a,xxxx,0xaa,xxxx,xxxx, xxxx,0x20,0x23,0x55,xxxx,0xb5,0x0a,xxxx, /* 00 */
- xxxx,0x46,xxxx,0xb6,xxxx,0x74,0x8b,xxxx, xxxx,0xba,0x01,xxxx,xxxx,0x5a,0x86,0xfb, /* 10 */
- 0xb2,xxxx,0xb0,xxxx,0x42,0x06,0x1e,0x08, 0x22,0x9d,xxxx,xxxx,xxxx,xxxx,xxxx,0x73, /* 20 */
- xxxx,xxxx,0x5f,xxxx,xxxx,0xd0,xxxx,0xff, xxxx,xxxx,0xbd,xxxx,0x03,xxxx,0xb9,xxxx, /* 30 */
- xxxx,xxxx,xxxx,0x51,0x5e,0x24,xxxx,xxxx, xxxx,xxxx,xxxx,0x58,0x59,xxxx,xxxx,xxxx, /* 40 */
- 0x52,xxxx,xxxx,xxxx,0xa0,xxxx,xxxx,0x02, 0xd2,xxxx,0x79,0x26,0x3a,0x0f,0xcf,0xb4, /* 50 */
- 0xf3,xxxx,xxxx,0x50,xxxx,0x75,0xb1,xxxx, 0xd1,0x47,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx, /* 60 */
- 0xc6,xxxx,xxxx,xxxx,xxxx,xxxx,0xbc,xxxx, xxxx,xxxx,xxxx,xxxx,0x53,0x41,xxxx,xxxx, /* 70 */
- xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,0x04,xxxx, xxxx,xxxx,xxxx,0x2c,xxxx,0xbf,xxxx,xxxx, /* 80 */
- xxxx,xxxx,0xe8,xxxx,xxxx,0x78,xxxx,0xbb, xxxx,xxxx,0x1f,0x2b,0x87,xxxx,0x4b,0x56, /* 90 */
- 0x36,0x33,xxxx,xxxx,xxxx,0x9c,0xc3,xxxx, xxxx,0x81,xxxx,0xe9,xxxx,0xfa,xxxx,xxxx, /* A0 */
- xxxx,0x72,xxxx,0xa2,xxxx,xxxx,0xc7,xxxx, xxxx,0x92,xxxx,xxxx,0x88,xxxx,xxxx,xxxx, /* B0 */
- 0x3b,xxxx,0x0c,xxxx,0x80,xxxx,xxxx,xxxx, xxxx,0x2e,xxxx,xxxx,xxxx,0x57,xxxx,0x8e, /* C0 */
- 0x07,xxxx,0xa3,xxxx,xxxx,xxxx,0x3d,xxxx, 0xfe,xxxx,xxxx,0xfc,0xea,xxxx,0x38,xxxx, /* D0 */
- 0x3c,0xf6,xxxx,xxxx,xxxx,0x18,xxxx,xxxx, 0xb8,xxxx,xxxx,xxxx,0x2a,0x5d,0x5b,xxxx, /* E0 */
- xxxx,0x43,0x32,xxxx,xxxx,xxxx,0xeb,xxxx, xxxx,xxxx,xxxx,xxxx,0x83,0x89,xxxx,xxxx, /* F0 */
-};
-// 0x9e (0x4b) guess
-// 0x1a (0x01) guess (wrong?)
-
-
-const UINT8 dsoccr94_decryption_table[256] = {
- xxxx,0xd1,xxxx,xxxx,xxxx,0x79,0x2e,xxxx, xxxx,xxxx,0x5a,0x0f,xxxx,xxxx,0x43,xxxx, /* 00 */
- xxxx,xxxx,0xe8,0x50,xxxx,xxxx,xxxx,0xa0, 0x5d,0x22,xxxx,xxxx,0xb2,0x3a,xxxx,xxxx, /* 10 */
- 0xf6,0x8a,0x41,xxxx,xxxx,0x81,xxxx,xxxx, xxxx,xxxx,0x2b,0x58,xxxx,xxxx,xxxx,0xc6, /* 20 */
- xxxx,xxxx,0xb9,xxxx,xxxx,0x2a,xxxx,0x3c, xxxx,0x80,0x26,xxxx,0xb0,xxxx,0x47,xxxx, /* 30 */
- xxxx,xxxx,0x0a,0x55,xxxx,xxxx,xxxx,0x88, xxxx,xxxx,0x87,xxxx,xxxx,0xb4,0x0c,xxxx, /* 40 */
- 0x73,0x53,xxxx,xxxx,0x3b,0x1f,xxxx,xxxx, xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx, /* 50 */
- 0x01,xxxx,xxxx,xxxx,xxxx,0x1e,xxxx,xxxx, 0xc3,xxxx,0xa3,0x74,xxxx,0x32,0x42,0x75, /* 60 */
- 0xfc,xxxx,0xb8,xxxx,0x33,xxxx,0x5e,xxxx, xxxx,0xaa,xxxx,xxxx,0x04,xxxx,0x9c,0xba, /* 70 */
- xxxx,xxxx,0x24,0x89,xxxx,xxxx,0xea,xxxx, 0x23,xxxx,xxxx,xxxx,0xbb,xxxx,xxxx,0xc7, /* 80 */
- xxxx,0x8e,xxxx,0x52,xxxx,0x18,xxxx,0x72, xxxx,xxxx,xxxx,xxxx,0xb6,xxxx,xxxx,xxxx, /* 90 */
- 0xfa,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx, 0xb1,xxxx,xxxx,xxxx,xxxx,0x57,0x78,0xa2, /* A0 */
- xxxx,0x3d,0x51,xxxx,xxxx,0xbf,0x46,0x2c, xxxx,xxxx,0xfb,xxxx,xxxx,xxxx,xxxx,0x38, /* B0 */
- 0x56,xxxx,0xcf,xxxx,0x08,xxxx,xxxx,xxxx, 0x5b,0x07,xxxx,xxxx,xxxx,0x20,0x9d,xxxx, /* C0 */
- 0x03,xxxx,xxxx,xxxx,xxxx,xxxx,0xbc,0x86, 0x59,xxxx,0x02,xxxx,0xff,0xd2,0x8b,xxxx, /* D0 */
- xxxx,0xd0,xxxx,xxxx,xxxx,xxxx,xxxx,0xe9, 0x06,xxxx,0x5f,0xf3,xxxx,0xb5,xxxx,xxxx, /* E0 */
- 0xeb,xxxx,xxxx,xxxx,xxxx,xxxx,0x83,xxxx, 0x36,xxxx,xxxx,xxxx,xxxx,0xbd,0xfe,xxxx, /* F0 */
-};
-
-// 0x95 (0x18) opcode is right but arguments could be swapped
-// 0x2a (0x2b) not sure, could be 0x1b
-// 0x60 (0x01) guess (wrong?)
-
-
-/* preliminary table by Pierpaolo Prazzoli */
-const UINT8 matchit2_decryption_table[256] = {
- xxxx,0x86,0x0a,xxxx,0x32,0x01,0x81,0xbe, 0xea,xxxx,0xbb,xxxx,xxxx,xxxx,0xa5,0xf6, /* 00 */
-// new new new new new new new new new
- 0x5d,0x8c,0xf3,0xc4,0x42,0x5a,0x22,0x26, xxxx,0x58,xxxx,0xfd,0x59,0x53,0x80,0x09, /* 10 */
-// new new new new !!!! new !!!! new !!!! new new new !!!!
- xxxx,0x1e,0x48,0xe2,0x50,xxxx,0xc3,0x23, xxxx,xxxx,0xe9,xxxx,0x40,0x83,0xa3,0x46, /* 20 */
-// new new new new new new new new new new
- 0x49,0xb4,0xa9,xxxx,0xd3,0x8b,0xe8,0xb8, 0xa0,xxxx,xxxx,xxxx,0x84,xxxx,xxxx,xxxx, /* 30 */
-// !!!! ???? new !!!! new new new new
- xxxx,xxxx,xxxx,xxxx,0x14,xxxx,0x25,xxxx, xxxx,0x5e,xxxx,0x87,0x56,0xb9,0x4a,0x39, /* 40 */
-// new new new new new new new new
- 0x89,xxxx,xxxx,xxxx,xxxx,0x1f,0xa4,xxxx, 0xf8,0x5f,0x21,0xb3,0x5b,xxxx,0x8d,xxxx, /* 50 */
-// new new !!!! new new !!!! new new
- xxxx,0xc5,0x7c,0x07,xxxx,0x88,0xba,0x47, 0x35,0xfb,xxxx,0x7f,xxxx,xxxx,0xc6,0xeb, /* 60 */
-// new !!!! new new new new new new !!!! new
- xxxx,0xc7,xxxx,xxxx,0xd2,0xa1,0x72,0x79, 0xfe,0x24,0xab,0x2a,0xbc,0x0d,0x8f,0x7e, /* 70 */
-// !!!! new new new new new new new new new !!!!
- xxxx,0x7d,xxxx,0xe7,0x2d,xxxx,xxxx,0x57, 0x0b,0xa2,xxxx,0x9d,xxxx,xxxx,0x74,0x85, /* 80 */
-// !!!! new new new new new new new new
- 0xaf,0x2f,0x8a,0xe6,0x08,xxxx,0xff,xxxx, xxxx,0x1c,xxxx,xxxx,0x02,xxxx,xxxx,xxxx, /* 90 */
-// new !!!! new new new new !!!! new
- 0x43,0x04,xxxx,xxxx,0xbf,0x3b,0x93,0x38, xxxx,xxxx,xxxx,0x77,xxxx,0xb0,xxxx,0x3a, /* A0 */
-// new new new new new new new new new
- 0xfc,xxxx,0xb5,xxxx,xxxx,xxxx,xxxx,0x05, 0x52,0x76,0x2b,0xe5,0xbd,xxxx,0x0e,0xb1, /* B0 */
-// new new new new new new new new new !!!!
- 0x73,xxxx,xxxx,0x45,0x92,0x99,xxxx,0xf7, 0x3d,0xd0,0xb6,0x36,0xf9,0xfa,0x0f,xxxx, /* C0 */
-// new new new new new new new !!!! new new
- 0x75,xxxx,0xaa,0x9c,xxxx,0x11,xxxx,xxxx, 0x27,0x4b,xxxx,0x2c,0x51,0x2e,0x4d,xxxx, /* D0 */
-// new !!!! new new new new new new new !!!!
- 0x55,0x3c,xxxx,0xb7,xxxx,0xd1,0x8e,xxxx, 0xb2,xxxx,0x78,xxxx,0x12,xxxx,0x29,0x0c, /* E0 */
-// new new new ???? new new new new new new new
- 0x33,xxxx,0xf2,xxxx,xxxx,xxxx,xxxx,xxxx, xxxx,0x03,0x06,0xa8,xxxx,xxxx,0xcf,xxxx, /* F0 */
-// new new new new new new
-};
-/*
-Unknown (marked "????")
-
-from shisen 2:
-E4 -> pc: b08; f458, 1920 (99% 1 byte at boot and sometimes when a piece is selected)
- b65c (after one match is finished with the girl on the background or when you finish some levels in the other modes)
-
-Found (marked "!!!!")
-14 -> pc: 8b2a -> 42
-16 -> pc: 1714, 1804, 1a70, 1cc3 (00 10 13 1C 20 21 22 34 D4 D5 after a match) -> 22
-1B -> pc: 630e (it's used to update the high score) -> FD
-1F -> pc: f30, f35, af74, 153a, 6dd8, 674f -> 09
-30 -> pc: 19af, 1986 -> 49
-31 -> pc: c804, c813, c822, 1358, c303, c312, c321, 1315, 1338 (2 bytes opcode) -> B4
-34 -> pc: 42cd -> D3
-4E -> pc: 7ac3, 7ae8 (after a 2 players match and in a 2 players match in "stalemate") -> 4a
-56 -> pc: 6587 (can be 6C, 6D, 6E, 6F, A4, A6, A7, AA, AC, AD, AE at boot) -> A4
-5A -> pc: ae83 (after an item is selected) (00 10 13 15 1B -1C already used- 1D 21 28) -> 21 (it's used to evidence tiles similar to the one selected)
-62 -> pc: 5b3f (jump 71, 7C) -> 7C
-6B -> pc: 1810, 1936 (jump) -> 7F
-74 -> pc: ca75 -> D2
-7F -> pc: 6b7e, 51d7, 5a8c, 5a9a, 5996 (jump: 7C, 7E) -> 7E
-81 -> pc: 599d (jump: 7D, 7F) -> 7D
-91 -> pc: 6e0c, 96ef, 96d0 (1 byte opcode) -> 2F
-99 -> pc: 96f7, 9702 (after undo button is pressed) -> 1C (it's used to update the score when the you undo the moves)
-BF -> pc: 6af3, 6b01, ca73, ab39 (2 bytes opcode) -> B1
-C4 -> pc: deb4 -> 92 from bbmanw
-EC -> pc: 966e, 9679 -> 12 from bbmanw
-D2 -> pc: 631c (it's used to update the high score) (6C, 6E, A6, AA, AE) -> AA
-
-the ones marked with "new" are checked against dynablst and bomberman tables
-*/
-
-
-const UINT8 test_decryption_table[256] = {
- xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx, xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx, /* 00 */
- xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx, xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx, /* 10 */
- xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx, xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx, /* 20 */
- xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx, xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx, /* 30 */
- xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx, xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx, /* 40 */
- xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx, xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx, /* 50 */
- xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx, xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx, /* 60 */
- xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx, xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx, /* 70 */
- xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx, xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx, /* 80 */
- xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx, xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx, /* 90 */
- xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx, xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx, /* A0 */
- xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx, xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx, /* B0 */
- xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx, xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx, /* C0 */
- xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx, xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx, /* D0 */
- xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx, xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx, /* E0 */
- xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx, xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx, /* F0 */
-};
-
-
-void irem_cpu_decrypt(INT32 /*cpu*/,const UINT8 *decryption_table, UINT8 *src, UINT8 *dest, INT32 size)
-{
- for (INT32 A = 0;A < size;A++)
- {
- dest[A] = decryption_table[src[A]];
- }
-}
diff --git a/jan/src/burn/drv/irem/irem_cpu.h b/jan/src/burn/drv/irem/irem_cpu.h
deleted file mode 100644
index cd080d000..000000000
--- a/jan/src/burn/drv/irem/irem_cpu.h
+++ /dev/null
@@ -1,19 +0,0 @@
-extern const UINT8 gunforce_decryption_table[];
-extern const UINT8 bomberman_decryption_table[];
-extern const UINT8 lethalth_decryption_table[];
-extern const UINT8 dynablaster_decryption_table[];
-extern const UINT8 mysticri_decryption_table[];
-extern const UINT8 majtitl2_decryption_table[];
-extern const UINT8 hook_decryption_table[];
-extern const UINT8 rtypeleo_decryption_table[];
-extern const UINT8 inthunt_decryption_table[];
-extern const UINT8 gussun_decryption_table[];
-extern const UINT8 leagueman_decryption_table[];
-extern const UINT8 leagueman_OLD_decryption_table[];
-extern const UINT8 psoldier_decryption_table[];
-extern const UINT8 dsoccr94_decryption_table[];
-extern const UINT8 matchit2_decryption_table[];
-
-extern const UINT8 test_decryption_table[];
-
-extern void irem_cpu_decrypt(INT32 cpu,const UINT8 *decryption_table, UINT8 *src,UINT8 *dest, INT32 size);
diff --git a/jan/src/burn/drv/konami/d_88games.cpp b/jan/src/burn/drv/konami/d_88games.cpp
deleted file mode 100644
index dccfb47d4..000000000
--- a/jan/src/burn/drv/konami/d_88games.cpp
+++ /dev/null
@@ -1,826 +0,0 @@
-// FB Alpha '88 Games driver module
-// Based on MAME driver by Nicola Salmoria
-
-#include "tiles_generic.h"
-#include "z80_intf.h"
-#include "konami_intf.h"
-#include "konamiic.h"
-#include "burn_ym2151.h"
-#include "upd7759.h"
-
-static UINT8 *AllMem;
-static UINT8 *MemEnd;
-static UINT8 *AllRam;
-static UINT8 *RamEnd;
-static UINT8 *DrvKonROM;
-static UINT8 *DrvZ80ROM;
-static UINT8 *DrvGfxROM0;
-static UINT8 *DrvGfxROM1;
-static UINT8 *DrvGfxROM2;
-static UINT8 *DrvGfxROMExp0;
-static UINT8 *DrvGfxROMExp1;
-static UINT8 *DrvGfxROMExp2;
-static UINT8 *DrvSndROM0;
-static UINT8 *DrvSndROM1;
-static UINT8 *DrvBankRAM;
-static UINT8 *DrvKonRAM;
-static UINT8 *DrvPalRAM;
-static UINT8 *DrvZ80RAM;
-static UINT8 *DrvNVRAM;
-
-static UINT32 *DrvPalette;
-static UINT8 DrvRecalc;
-
-static UINT8 *soundlatch;
-static UINT8 *nDrvBank;
-
-static INT32 videobank;
-static INT32 zoomreadroms;
-static INT32 k88games_priority;
-static INT32 UPD7759Device;
-
-static UINT8 DrvJoy1[8];
-static UINT8 DrvJoy2[8];
-static UINT8 DrvJoy3[8];
-static UINT8 DrvDips[3];
-static UINT8 DrvInputs[3];
-static UINT8 DrvReset;
-
-static struct BurnInputInfo games88InputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy1 + 0, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy2 + 3, "p1 start" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy2 + 0, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy2 + 1, "p1 fire 2" },
- {"P1 Button 3", BIT_DIGITAL, DrvJoy2 + 2, "p1 fire 3" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy1 + 1, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy2 + 7, "p2 start" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy2 + 4, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy2 + 5, "p2 fire 2" },
- {"P2 Button 3", BIT_DIGITAL, DrvJoy2 + 6, "p2 fire 3" },
-
- {"P3 Start", BIT_DIGITAL, DrvJoy3 + 3, "p3 start" },
- {"P3 Button 1", BIT_DIGITAL, DrvJoy3 + 0, "p3 fire 1" },
- {"P3 Button 2", BIT_DIGITAL, DrvJoy3 + 1, "p3 fire 2" },
- {"P3 Button 3", BIT_DIGITAL, DrvJoy3 + 2, "p3 fire 3" },
-
- {"P4 Start", BIT_DIGITAL, DrvJoy3 + 7, "p4 start" },
- {"P4 Button 1", BIT_DIGITAL, DrvJoy3 + 4, "p4 fire 1" },
- {"P4 Button 2", BIT_DIGITAL, DrvJoy3 + 5, "p4 fire 2" },
- {"P4 Button 3", BIT_DIGITAL, DrvJoy3 + 6, "p4 fire 3" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service", BIT_DIGITAL, DrvJoy1 + 2, "service" },
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip" },
- {"Dip C", BIT_DIPSWITCH, DrvDips + 2, "dip" },
-};
-
-STDINPUTINFO(games88)
-
-static struct BurnDIPInfo games88DIPList[]=
-{
- {0x14, 0xff, 0xff, 0xf0, NULL },
- {0x15, 0xff, 0xff, 0xff, NULL },
- {0x16, 0xff, 0xff, 0x7b, NULL },
-
-// {0 , 0xfe, 0 , 2, "Flip Screen" },
-// {0x14, 0x01, 0x10, 0x10, "Off" },
-// {0x14, 0x01, 0x10, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "World Records" },
- {0x14, 0x01, 0x20, 0x20, "Don't Erase" },
- {0x14, 0x01, 0x20, 0x00, "Erase on Reset" },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x14, 0x01, 0x40, 0x40, "Off" },
- {0x14, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 16, "Coin A" },
- {0x15, 0x01, 0x0f, 0x02, "4 Coins 1 Credit" },
- {0x15, 0x01, 0x0f, 0x05, "3 Coins 1 Credit" },
- {0x15, 0x01, 0x0f, 0x08, "2 Coins 1 Credit" },
- {0x15, 0x01, 0x0f, 0x04, "3 Coins 2 Credits" },
- {0x15, 0x01, 0x0f, 0x01, "4 Coins 3 Credits" },
- {0x15, 0x01, 0x0f, 0x0f, "1 Coin 1 Credit" },
- {0x15, 0x01, 0x0f, 0x03, "3 Coins 4 Credits" },
- {0x15, 0x01, 0x0f, 0x07, "2 Coins 3 Credits" },
- {0x15, 0x01, 0x0f, 0x0e, "1 Coin 2 Credits" },
- {0x15, 0x01, 0x0f, 0x06, "2 Coins 5 Credits" },
- {0x15, 0x01, 0x0f, 0x0d, "1 Coin 3 Credits" },
- {0x15, 0x01, 0x0f, 0x0c, "1 Coin 4 Credits" },
- {0x15, 0x01, 0x0f, 0x0b, "1 Coin 5 Credits" },
- {0x15, 0x01, 0x0f, 0x0a, "1 Coin 6 Credits" },
- {0x15, 0x01, 0x0f, 0x09, "1 Coin 7 Credits" },
- {0x15, 0x01, 0x0f, 0x00, "Free Play" },
-
- {0 , 0xfe, 0 , 16, "Coin B" },
- {0x15, 0x01, 0xf0, 0x20, "4 Coins 1 Credit" },
- {0x15, 0x01, 0xf0, 0x50, "3 Coins 1 Credit" },
- {0x15, 0x01, 0xf0, 0x80, "2 Coins 1 Credit" },
- {0x15, 0x01, 0xf0, 0x40, "3 Coins 2 Credits" },
- {0x15, 0x01, 0xf0, 0x10, "4 Coins 3 Credits" },
- {0x15, 0x01, 0xf0, 0xf0, "1 Coin 1 Credit" },
- {0x15, 0x01, 0xf0, 0x30, "3 Coins 4 Credits" },
- {0x15, 0x01, 0xf0, 0x70, "2 Coins 3 Credits" },
- {0x15, 0x01, 0xf0, 0xe0, "1 Coin 2 Credits" },
- {0x15, 0x01, 0xf0, 0x60, "2 Coins 5 Credits" },
- {0x15, 0x01, 0xf0, 0xd0, "1 Coin 3 Credits" },
- {0x15, 0x01, 0xf0, 0xc0, "1 Coin 4 Credits" },
- {0x15, 0x01, 0xf0, 0xb0, "1 Coin 5 Credits" },
- {0x15, 0x01, 0xf0, 0xa0, "1 Coin 6 Credits" },
- {0x15, 0x01, 0xf0, 0x90, "1 Coin 7 Credits" },
- {0x15, 0x01, 0xf0, 0x00, "No Coin B" },
-
-// {0 , 0xfe, 0 , 4, "Cabinet" },
-// {0x16, 0x01, 0x06, 0x06, "Cocktail" },
-// {0x16, 0x01, 0x06, 0x04, "Cocktail (A)" },
-// {0x16, 0x01, 0x06, 0x02, "Upright" },
-// {0x16, 0x01, 0x06, 0x00, "Upright (D)" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x16, 0x01, 0x60, 0x60, "Easy" },
- {0x16, 0x01, 0x60, 0x40, "Normal" },
- {0x16, 0x01, 0x60, 0x20, "Hard" },
- {0x16, 0x01, 0x60, 0x00, "Hardest" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x16, 0x01, 0x80, 0x80, "Off" },
- {0x16, 0x01, 0x80, 0x00, "On" },
-};
-
-STDDIPINFO(games88)
-
-void games88_main_write(UINT16 address, UINT8 data)
-{
- switch (address)
- {
- case 0x5f84:
- zoomreadroms = data & 0x04;
- return;
-
- case 0x5f88:
- // watchdog
- return;
-
- case 0x5f8c:
- *soundlatch = data;
- return;
-
- case 0x5f90:
- ZetSetVector(0xff);
- ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
- return;
- }
-
- if ((address & 0xf800) == 0x3800)
- {
- if (videobank)
- DrvBankRAM[address & 0x7ff] = data;
- else
- K051316Write(0, address & 0x7ff, data);
-
- return;
- }
-
- if ((address & 0xfff0) == 0x5fc0) {
- K051316WriteCtrl(0, address & 0x0f, data);
- return;
- }
-
- if ((address & 0xc000) == 0x4000) {
- K052109_051960_w(address & 0x3fff, data);
- return;
- }
-}
-
-UINT8 games88_main_read(UINT16 address)
-{
- switch (address)
- {
- case 0x5f94:
- return (DrvInputs[0] & 0x0f) | (DrvDips[0] & 0xf0);
-
- case 0x5f95:
- return DrvInputs[1];
-
- case 0x5f96:
- return DrvInputs[2];
-
- case 0x5f97:
- return DrvDips[1];
-
- case 0x5f9b:
- return DrvDips[2];
- }
-
- if ((address & 0xf800) == 0x3800)
- {
- if (videobank) {
- return DrvBankRAM[address & 0x7ff];
- } else {
- if (zoomreadroms) {
- return K051316ReadRom(0, address & 0x7ff); // k051316_rom_0
- } else {
- return K051316Read(0, address & 0x7ff); // k051316_0
- }
- }
- }
-
- if ((address & 0xc000) == 0x4000) {
- return K052109_051960_r(address & 0x3fff);
- }
-
- return 0;
-}
-
-void __fastcall games88_sound_write(UINT16 address, UINT8 data)
-{
- switch (address)
- {
- case 0x9000:
- UPD7759PortWrite(UPD7759Device, data);
- return;
-
- case 0xc000:
- BurnYM2151SelectRegister(data);
- return;
-
- case 0xc001:
- BurnYM2151WriteRegister(data);
- return;
-
- case 0xe000:
- UPD7759Device = (data & 4) >> 2;
- UPD7759ResetWrite(UPD7759Device, data & 2);
- UPD7759StartWrite(UPD7759Device, data & 1);
- return;
- }
-}
-
-UINT8 __fastcall games88_sound_read(UINT16 address)
-{
- switch (address)
- {
- case 0xa000:
- ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
- return *soundlatch;
-
- case 0xc000:
- case 0xc001:
- return BurnYM2151ReadStatus();
- }
-
- return 0;
-}
-
-static void games88_set_lines(INT32 lines)
-{
- nDrvBank[0] = lines;
-
- INT32 nBank = 0x10000 + (lines & 0x07) * 0x2000;
-
- konamiMapMemory(DrvKonROM + nBank, 0x0000, 0x0fff, MAP_ROM);
-
- if (lines & 8) {
- konamiMapMemory(DrvPalRAM, 0x1000, 0x1fff, MAP_RAM);
- } else {
- konamiMapMemory(DrvKonROM + nBank + 0x1000, 0x1000, 0x1fff, MAP_ROM);
- konamiMapMemory(DrvKonROM + 0x0000, 0x1000, 0x1fff, MAP_WRITE); // unmap writes
- }
-
- videobank = lines & 0x10;
- K052109RMRDLine = lines & 0x20;
- k88games_priority = lines & 0x80;
-}
-
-static void K052109Callback(INT32 layer, INT32 bank, INT32 *code, INT32 *color, INT32 *, INT32 *)
-{
- INT32 layer_colorbase[3] = { 64, 0, 16 };
-
- *code |= ((*color & 0x0f) << 8) | (bank << 12);
- *color = layer_colorbase[layer] + ((*color & 0xf0) >> 4);
-}
-
-static void K051960Callback(INT32 *, INT32 *color, INT32 *priority, INT32 *)
-{
- *priority = (*color & 0x20) >> 5;
- *color = 32 + (*color & 0x0f);
-}
-
-static void K051316Callback(INT32 *code,INT32 *color,INT32 *flags)
-{
- *flags = *color & 0x40;
- *code |= ((*color & 0x07) << 8);
- *color = 48 + ((*color & 0x38) >> 3) + ((*color & 0x80) >> 4);
-}
-
-static INT32 DrvDoReset()
-{
- DrvReset = 0;
-
- memset (AllRam, 0, RamEnd - AllRam);
-
- konamiOpen(0);
- konamiReset();
- konamiClose();
-
- ZetOpen(0);
- ZetReset();
- ZetClose();
-
- BurnYM2151Reset();
-
- KonamiICReset();
-
- UPD7759Reset();
-
- videobank = 0;
- zoomreadroms = 0;
- k88games_priority = 0;
- UPD7759Device = 0;
-
- return 0;
-}
-
-static INT32 MemIndex()
-{
- UINT8 *Next; Next = AllMem;
-
- DrvKonROM = Next; Next += 0x020000;
- DrvZ80ROM = Next; Next += 0x010000;
-
- DrvGfxROM0 = Next; Next += 0x080000;
- DrvGfxROM1 = Next; Next += 0x100000;
- DrvGfxROM2 = Next; Next += 0x040000;
- DrvGfxROMExp0 = Next; Next += 0x100000;
- DrvGfxROMExp1 = Next; Next += 0x200000;
- DrvGfxROMExp2 = Next; Next += 0x080000;
-
- DrvSndROM0 = Next; Next += 0x020000;
- DrvSndROM1 = Next; Next += 0x020000;
-
- DrvPalette = (UINT32*)Next; Next += 0x800 * sizeof(UINT32);
-
- AllRam = Next;
-
- DrvBankRAM = Next; Next += 0x000800;
- DrvKonRAM = Next; Next += 0x001000;
- DrvPalRAM = Next; Next += 0x001000;
- DrvNVRAM = Next; Next += 0x000800;
-
- DrvZ80RAM = Next; Next += 0x000800;
-
- soundlatch = Next; Next += 0x000001;
- nDrvBank = Next; Next += 0x000002;
-
- RamEnd = Next;
- MemEnd = Next;
-
- return 0;
-}
-
-static INT32 DrvInit()
-{
- GenericTilesInit();
-
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(DrvKonROM + 0x008000, 0, 1)) return 1;
- if (BurnLoadRom(DrvKonROM + 0x010000, 1, 1)) return 1;
-
- if (BurnLoadRom(DrvZ80ROM + 0x000000, 2, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x000000, 3, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x000001, 4, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x000002, 5, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x000003, 6, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x040000, 7, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x040001, 8, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x040002, 9, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x040003, 10, 4)) return 1;
-
- if (BurnLoadRom(DrvGfxROM1 + 0x000000, 11, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x000001, 12, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x000002, 13, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x000003, 14, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x040000, 15, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x040001, 16, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x040002, 17, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x040003, 18, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x080000, 19, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x080001, 20, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x080002, 21, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x080003, 22, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x0c0000, 23, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x0c0001, 24, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x0c0002, 25, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x0c0003, 26, 4)) return 1;
-
- if (BurnLoadRom(DrvGfxROM2 + 0x000000, 27, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x010000, 28, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x020000, 29, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x030000, 30, 1)) return 1;
-
- if (BurnLoadRom(DrvSndROM0 + 0x000000, 31, 1)) return 1;
- if (BurnLoadRom(DrvSndROM0 + 0x010000, 32, 1)) return 1;
-
- if (BurnLoadRom(DrvSndROM1 + 0x000000, 33, 1)) return 1;
- if (BurnLoadRom(DrvSndROM1 + 0x010000, 34, 1)) return 1;
-
- K052109GfxDecode(DrvGfxROM0, DrvGfxROMExp0, 0x080000);
- K051960GfxDecode(DrvGfxROM1, DrvGfxROMExp1, 0x100000);
- }
-
- konamiInit(0);
- konamiOpen(0);
- konamiMapMemory(DrvPalRAM + 0x0000, 0x1000, 0x1fff, MAP_RAM);
- konamiMapMemory(DrvKonRAM, 0x2000, 0x2fff, MAP_RAM);
- konamiMapMemory(DrvNVRAM, 0x3000, 0x37ff, MAP_RAM);
- konamiMapMemory(DrvKonROM + 0x8000, 0x8000, 0xffff, MAP_ROM);
- konamiSetWriteHandler(games88_main_write);
- konamiSetReadHandler(games88_main_read);
- konamiSetlinesCallback(games88_set_lines);
- konamiClose();
-
- ZetInit(0);
- ZetOpen(0);
- ZetMapArea(0x0000, 0x7fff, 0, DrvZ80ROM);
- ZetMapArea(0x0000, 0x7fff, 2, DrvZ80ROM);
- ZetMapArea(0x8000, 0x87ff, 0, DrvZ80RAM);
- ZetMapArea(0x8000, 0x87ff, 1, DrvZ80RAM);
- ZetMapArea(0x8000, 0x87ff, 2, DrvZ80RAM);
- ZetSetWriteHandler(games88_sound_write);
- ZetSetReadHandler(games88_sound_read);
- ZetClose();
-
- BurnYM2151Init(3579545);
- BurnYM2151SetAllRoutes(0.75, BURN_SND_ROUTE_BOTH);
-
- UPD7759Init(0, UPD7759_STANDARD_CLOCK, DrvSndROM0);
- UPD7759Init(1, UPD7759_STANDARD_CLOCK, DrvSndROM1);
- UPD7759SetRoute(0, 0.30, BURN_SND_ROUTE_BOTH);
- UPD7759SetRoute(1, 0.30, BURN_SND_ROUTE_BOTH);
-
- K052109Init(DrvGfxROM0, DrvGfxROMExp0, 0x7ffff);
- K052109SetCallback(K052109Callback);
- K052109AdjustScroll(0, 0);
-
- K051960Init(DrvGfxROM1, DrvGfxROMExp1, 0xfffff);
- K051960SetCallback(K051960Callback);
- K051960SetSpriteOffset(0, 0);
-
- K051316Init(0, DrvGfxROM2, DrvGfxROMExp2, 0x3ffff, K051316Callback, 4, 0);
- K051316SetOffset(0, -104, -16);
-
- DrvDoReset();
-
- return 0;
-}
-
-static INT32 DrvExit()
-{
- GenericTilesExit();
-
- KonamiICExit();
-
- konamiExit();
- ZetExit();
-
- BurnYM2151Exit();
- UPD7759Exit();
-
- BurnFree (AllMem);
-
- return 0;
-}
-
-static INT32 DrvDraw()
-{
- KonamiRecalcPalette(DrvPalRAM, DrvPalette, 0x1000);
-
- K052109UpdateScroll();
-
- if (k88games_priority)
- {
- if (nBurnLayer & 1) K052109RenderLayer(0, K052109_OPAQUE, 0);
- if (nSpriteEnable & 1) K051960SpritesRender(1, 1);
- if (nBurnLayer & 2) K052109RenderLayer(2, 0, 0);
- if (nBurnLayer & 4) K052109RenderLayer(1, 0, 0);
- if (nSpriteEnable & 2) K051960SpritesRender(0, 0);
- if (nBurnLayer & 8) K051316_zoom_draw(0, 0);
- }
- else
- {
- if (nBurnLayer & 1) K052109RenderLayer(2, K052109_OPAQUE, 0);
- if (nBurnLayer & 2) K051316_zoom_draw(0, 4);
- if (nSpriteEnable & 1) K051960SpritesRender(0, 0);
- if (nBurnLayer & 4) K052109RenderLayer(1, 0, 0);
- if (nSpriteEnable & 2) K051960SpritesRender(1, 1);
- if (nBurnLayer & 8) K052109RenderLayer(0, 0, 0);
- }
-
- KonamiBlendCopy(DrvPalette);
-
- return 0;
-}
-
-static INT32 DrvFrame()
-{
- if (DrvReset) {
- DrvDoReset();
- }
-
- {
- memset (DrvInputs, 0xff, 3);
- for (INT32 i = 0; i < 8; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- DrvInputs[2] ^= (DrvJoy3[i] & 1) << i;
- }
- }
-
- konamiNewFrame();
- ZetNewFrame();
-
- INT32 nSoundBufferPos = 0;
- INT32 nInterleave = 100;
- INT32 nCyclesTotal[2] = { (((3000000 / 60) * 133) / 100) /* 33% overclock */, 3579545 / 60 };
- INT32 nCyclesDone[2] = { 0, 0 };
-
- ZetOpen(0);
- konamiOpen(0);
-
- for (INT32 i = 0; i < nInterleave; i++)
- {
- INT32 nSegment = (nCyclesTotal[0] / nInterleave) * (i + 1);
-
- nCyclesDone[0] += konamiRun(nSegment - nCyclesDone[0]);
-
- nSegment = (nCyclesTotal[1] / nInterleave) * (i + 1);
-
- nCyclesDone[1] += ZetRun(nSegment - nCyclesDone[1]);
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen / nInterleave;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- BurnYM2151Render(pSoundBuf, nSegmentLength);
- UPD7759Update(0, pSoundBuf, nSegmentLength);
- UPD7759Update(1, pSoundBuf, nSegmentLength);
- nSoundBufferPos += nSegmentLength;
- }
- }
-
- if (K052109_irq_enabled) konamiSetIrqLine(KONAMI_IRQ_LINE, CPU_IRQSTATUS_AUTO);
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
- if (nSegmentLength) {
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- BurnYM2151Render(pSoundBuf, nSegmentLength);
- UPD7759Update(0, pSoundBuf, nSegmentLength);
- UPD7759Update(1, pSoundBuf, nSegmentLength);
- }
- }
-
- konamiClose();
- ZetClose();
-
- if (pBurnDraw) {
- DrvDraw();
- }
-
- return 0;
-}
-
-static INT32 DrvScan(INT32 nAction,INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin) {
- *pnMin = 0x029705;
- }
-
- if (nAction & ACB_VOLATILE) {
- memset(&ba, 0, sizeof(ba));
-
- ba.Data = AllRam;
- ba.nLen = RamEnd - AllRam;
- ba.szName = "All Ram";
- BurnAcb(&ba);
-
- konamiCpuScan(nAction);
- ZetScan(nAction);
-
- BurnYM2151Scan(nAction);
- UPD7759Scan(0, nAction, pnMin);
- UPD7759Scan(0, nAction, pnMin);
-
- KonamiICScan(nAction);
-
- SCAN_VAR(videobank);
- SCAN_VAR(zoomreadroms);
- SCAN_VAR(k88games_priority);
- SCAN_VAR(UPD7759Device);
- }
-
- if (nAction & ACB_WRITE) {
- konamiOpen(0);
- games88_set_lines(nDrvBank[0]);
- konamiClose();
- }
-
- return 0;
-}
-
-
-// '88 Games
-
-static struct BurnRomInfo games88RomDesc[] = {
- { "861m01.k18", 0x08000, 0x4a4e2959, 1 | BRF_PRG | BRF_ESS }, // 0 Konami Custom Cpu
- { "861m02.k16", 0x10000, 0xe19f15f6, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "861d01.d9", 0x08000, 0x0ff1dec0, 2 | BRF_PRG | BRF_ESS }, // 2 Z80 Code
-
- { "861a08.a", 0x10000, 0x77a00dd6, 3 | BRF_GRA }, // 3 K052109 Tiles
- { "861a08.c", 0x10000, 0xb422edfc, 3 | BRF_GRA }, // 4
- { "861a09.a", 0x10000, 0xdf8917b6, 3 | BRF_GRA }, // 5
- { "861a09.c", 0x10000, 0xf577b88f, 3 | BRF_GRA }, // 6
- { "861a08.b", 0x10000, 0x28a8304f, 3 | BRF_GRA }, // 7
- { "861a08.d", 0x10000, 0xe01a3802, 3 | BRF_GRA }, // 8
- { "861a09.b", 0x10000, 0x4917158d, 3 | BRF_GRA }, // 9
- { "861a09.d", 0x10000, 0x2bb3282c, 3 | BRF_GRA }, // 10
-
- { "861a05.a", 0x10000, 0xcedc19d0, 4 | BRF_GRA }, // 11 K051960 Tiles
- { "861a05.e", 0x10000, 0x725af3fc, 4 | BRF_GRA }, // 12
- { "861a06.a", 0x10000, 0x85e2e30e, 4 | BRF_GRA }, // 13
- { "861a06.e", 0x10000, 0x6f96651c, 4 | BRF_GRA }, // 14
- { "861a05.b", 0x10000, 0xdb2a8808, 4 | BRF_GRA }, // 15
- { "861a05.f", 0x10000, 0x32d830ca, 4 | BRF_GRA }, // 16
- { "861a06.b", 0x10000, 0xce17eaf0, 4 | BRF_GRA }, // 17
- { "861a06.f", 0x10000, 0x88310bf3, 4 | BRF_GRA }, // 18
- { "861a05.c", 0x10000, 0xcf03c449, 4 | BRF_GRA }, // 19
- { "861a05.g", 0x10000, 0xfd51c4ea, 4 | BRF_GRA }, // 20
- { "861a06.c", 0x10000, 0xa568b34e, 4 | BRF_GRA }, // 21
- { "861a06.g", 0x10000, 0x4a55beb3, 4 | BRF_GRA }, // 22
- { "861a05.d", 0x10000, 0x97d78c77, 4 | BRF_GRA }, // 23
- { "861a05.h", 0x10000, 0x60d0c8a5, 4 | BRF_GRA }, // 24
- { "861a06.d", 0x10000, 0xbc70ab39, 4 | BRF_GRA }, // 25
- { "861a06.h", 0x10000, 0xd906b79b, 4 | BRF_GRA }, // 26
-
- { "861a04.a", 0x10000, 0x092a8b15, 5 | BRF_GRA }, // 27 K051316 Tiles
- { "861a04.b", 0x10000, 0x75744b56, 5 | BRF_GRA }, // 28
- { "861a04.c", 0x10000, 0xa00021c5, 5 | BRF_GRA }, // 29
- { "861a04.d", 0x10000, 0xd208304c, 5 | BRF_GRA }, // 30
-
- { "861a07.a", 0x10000, 0x5d035d69, 6 | BRF_SND }, // 31 UPD7759 #0 Samples
- { "861a07.b", 0x10000, 0x6337dd91, 6 | BRF_SND }, // 32
-
- { "861a07.c", 0x10000, 0x5067a38b, 7 | BRF_SND }, // 33 UPD7759 #1 Samples
- { "861a07.d", 0x10000, 0x86731451, 7 | BRF_SND }, // 34
-
- { "861.g3", 0x00100, 0x429785db, 0 | BRF_OPT }, // 31 Priority Prom
-};
-
-STD_ROM_PICK(games88)
-STD_ROM_FN(games88)
-
-struct BurnDriver BurnDrvgames88 = {
- "88games", NULL, NULL, NULL, "1988",
- "'88 Games\0", NULL, "Konami", "GX861",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 4, HARDWARE_PREFIX_KONAMI, GBF_SPORTSMISC, 0,
- NULL, games88RomInfo, games88RomName, NULL, NULL, games88InputInfo, games88DIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 304, 224, 4, 3
-};
-
-
-// Konami '88
-
-static struct BurnRomInfo konami88RomDesc[] = {
- { "861.e03", 0x08000, 0x55979bd9, 1 | BRF_PRG | BRF_ESS }, // 0 Konami Custom Cpu
- { "861.e02", 0x10000, 0x5b7e98a6, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "861d01.d9", 0x08000, 0x0ff1dec0, 2 | BRF_PRG | BRF_ESS }, // 2 Z80 Code
-
- { "861a08.a", 0x10000, 0x77a00dd6, 3 | BRF_GRA }, // 3 K052109 Tiles
- { "861a08.c", 0x10000, 0xb422edfc, 3 | BRF_GRA }, // 4
- { "861a09.a", 0x10000, 0xdf8917b6, 3 | BRF_GRA }, // 5
- { "861a09.c", 0x10000, 0xf577b88f, 3 | BRF_GRA }, // 6
- { "861a08.b", 0x10000, 0x28a8304f, 3 | BRF_GRA }, // 7
- { "861a08.d", 0x10000, 0xe01a3802, 3 | BRF_GRA }, // 8
- { "861a09.b", 0x10000, 0x4917158d, 3 | BRF_GRA }, // 9
- { "861a09.d", 0x10000, 0x2bb3282c, 3 | BRF_GRA }, // 10
-
- { "861a05.a", 0x10000, 0xcedc19d0, 4 | BRF_GRA }, // 11 K051960 Tiles
- { "861a05.e", 0x10000, 0x725af3fc, 4 | BRF_GRA }, // 12
- { "861a06.a", 0x10000, 0x85e2e30e, 4 | BRF_GRA }, // 13
- { "861a06.e", 0x10000, 0x6f96651c, 4 | BRF_GRA }, // 14
- { "861a05.b", 0x10000, 0xdb2a8808, 4 | BRF_GRA }, // 15
- { "861a05.f", 0x10000, 0x32d830ca, 4 | BRF_GRA }, // 16
- { "861a06.b", 0x10000, 0xce17eaf0, 4 | BRF_GRA }, // 17
- { "861a06.f", 0x10000, 0x88310bf3, 4 | BRF_GRA }, // 18
- { "861a05.c", 0x10000, 0xcf03c449, 4 | BRF_GRA }, // 19
- { "861a05.g", 0x10000, 0xfd51c4ea, 4 | BRF_GRA }, // 20
- { "861a06.c", 0x10000, 0xa568b34e, 4 | BRF_GRA }, // 21
- { "861a06.g", 0x10000, 0x4a55beb3, 4 | BRF_GRA }, // 22
- { "861a05.d", 0x10000, 0x97d78c77, 4 | BRF_GRA }, // 23
- { "861a05.h", 0x10000, 0x60d0c8a5, 4 | BRF_GRA }, // 24
- { "861a06.d", 0x10000, 0xbc70ab39, 4 | BRF_GRA }, // 25
- { "861a06.h", 0x10000, 0xd906b79b, 4 | BRF_GRA }, // 26
-
- { "861a04.a", 0x10000, 0x092a8b15, 5 | BRF_GRA }, // 27 K051316 Tiles
- { "861a04.b", 0x10000, 0x75744b56, 5 | BRF_GRA }, // 28
- { "861a04.c", 0x10000, 0xa00021c5, 5 | BRF_GRA }, // 29
- { "861a04.d", 0x10000, 0xd208304c, 5 | BRF_GRA }, // 30
-
- { "861a07.a", 0x10000, 0x5d035d69, 6 | BRF_SND }, // 31 UPD7759 #0 Samples
- { "861a07.b", 0x10000, 0x6337dd91, 6 | BRF_SND }, // 32
-
- { "861a07.c", 0x10000, 0x5067a38b, 7 | BRF_SND }, // 33 UPD7759 #1 Samples
- { "861a07.d", 0x10000, 0x86731451, 7 | BRF_SND }, // 34
-
- { "861.g3", 0x00100, 0x429785db, 0 | BRF_OPT }, // 31 Priority Prom
-};
-
-STD_ROM_PICK(konami88)
-STD_ROM_FN(konami88)
-
-struct BurnDriver BurnDrvKonami88 = {
- "konami88", "88games", NULL, NULL, "1988",
- "Konami '88\0", NULL, "Konami", "GX861",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 4, HARDWARE_PREFIX_KONAMI, GBF_SPORTSMISC, 0,
- NULL, konami88RomInfo, konami88RomName, NULL, NULL, games88InputInfo, games88DIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 304, 224, 4, 3
-};
-
-
-// Hyper Sports Special (Japan)
-
-static struct BurnRomInfo hypsptspRomDesc[] = {
- { "861f03.k18", 0x08000, 0x8c61aebd, 1 | BRF_PRG | BRF_ESS }, // 0 Konami Custom Cpu
- { "861f02.k16", 0x10000, 0xd2460c28, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "861d01.d9", 0x08000, 0x0ff1dec0, 2 | BRF_PRG | BRF_ESS }, // 2 Z80 Code
-
- { "861a08.a", 0x10000, 0x77a00dd6, 3 | BRF_GRA }, // 3 K052109 Tiles
- { "861a08.c", 0x10000, 0xb422edfc, 3 | BRF_GRA }, // 4
- { "861a09.a", 0x10000, 0xdf8917b6, 3 | BRF_GRA }, // 5
- { "861a09.c", 0x10000, 0xf577b88f, 3 | BRF_GRA }, // 6
- { "861a08.b", 0x10000, 0x28a8304f, 3 | BRF_GRA }, // 7
- { "861a08.d", 0x10000, 0xe01a3802, 3 | BRF_GRA }, // 8
- { "861a09.b", 0x10000, 0x4917158d, 3 | BRF_GRA }, // 9
- { "861a09.d", 0x10000, 0x2bb3282c, 3 | BRF_GRA }, // 10
-
- { "861a05.a", 0x10000, 0xcedc19d0, 4 | BRF_GRA }, // 11 K051960 Tiles
- { "861a05.e", 0x10000, 0x725af3fc, 4 | BRF_GRA }, // 12
- { "861a06.a", 0x10000, 0x85e2e30e, 4 | BRF_GRA }, // 13
- { "861a06.e", 0x10000, 0x6f96651c, 4 | BRF_GRA }, // 14
- { "861a05.b", 0x10000, 0xdb2a8808, 4 | BRF_GRA }, // 15
- { "861a05.f", 0x10000, 0x32d830ca, 4 | BRF_GRA }, // 16
- { "861a06.b", 0x10000, 0xce17eaf0, 4 | BRF_GRA }, // 17
- { "861a06.f", 0x10000, 0x88310bf3, 4 | BRF_GRA }, // 18
- { "861a05.c", 0x10000, 0xcf03c449, 4 | BRF_GRA }, // 19
- { "861a05.g", 0x10000, 0xfd51c4ea, 4 | BRF_GRA }, // 20
- { "861a06.c", 0x10000, 0xa568b34e, 4 | BRF_GRA }, // 21
- { "861a06.g", 0x10000, 0x4a55beb3, 4 | BRF_GRA }, // 22
- { "861a05.d", 0x10000, 0x97d78c77, 4 | BRF_GRA }, // 23
- { "861a05.h", 0x10000, 0x60d0c8a5, 4 | BRF_GRA }, // 24
- { "861a06.d", 0x10000, 0xbc70ab39, 4 | BRF_GRA }, // 25
- { "861a06.h", 0x10000, 0xd906b79b, 4 | BRF_GRA }, // 26
-
- { "861a04.a", 0x10000, 0x092a8b15, 5 | BRF_GRA }, // 27 K051316 Tiles
- { "861a04.b", 0x10000, 0x75744b56, 5 | BRF_GRA }, // 28
- { "861a04.c", 0x10000, 0xa00021c5, 5 | BRF_GRA }, // 29
- { "861a04.d", 0x10000, 0xd208304c, 5 | BRF_GRA }, // 30
-
- { "861a07.a", 0x10000, 0x5d035d69, 6 | BRF_SND }, // 31 UPD7759 #0 Samples
- { "861a07.b", 0x10000, 0x6337dd91, 6 | BRF_SND }, // 32
-
- { "861a07.c", 0x10000, 0x5067a38b, 7 | BRF_SND }, // 33 UPD7759 #1 Samples
- { "861a07.d", 0x10000, 0x86731451, 7 | BRF_SND }, // 34
-
- { "861.g3", 0x00100, 0x429785db, 8 | BRF_OPT }, // 31 Priority Prom
-};
-
-STD_ROM_PICK(hypsptsp)
-STD_ROM_FN(hypsptsp)
-
-struct BurnDriver BurnDrvHypsptsp = {
- "hypsptsp", "88games", NULL, NULL, "1988",
- "Hyper Sports Special (Japan)\0", NULL, "Konami", "GX861",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 4, HARDWARE_PREFIX_KONAMI, GBF_SPORTSMISC, 0,
- NULL, hypsptspRomInfo, hypsptspRomName, NULL, NULL, games88InputInfo, games88DIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 304, 224, 4, 3
-};
diff --git a/jan/src/burn/drv/konami/d_ajax.cpp b/jan/src/burn/drv/konami/d_ajax.cpp
deleted file mode 100644
index 40aeb6260..000000000
--- a/jan/src/burn/drv/konami/d_ajax.cpp
+++ /dev/null
@@ -1,931 +0,0 @@
-// FB Alpha Ajax driver module
-// Based on MAME driver by Manuel Abadia
-
-#include "tiles_generic.h"
-#include "z80_intf.h"
-#include "konami_intf.h"
-#include "konamiic.h"
-#include "burn_ym2151.h"
-#include "k007232.h"
-#include "m6809_intf.h"
-
-static UINT8 *AllMem;
-static UINT8 *MemEnd;
-static UINT8 *AllRam;
-static UINT8 *RamEnd;
-static UINT8 *DrvKonROM;
-static UINT8 *DrvM6809ROM;
-static UINT8 *DrvZ80ROM;
-static UINT8 *DrvGfxROM0;
-static UINT8 *DrvGfxROM1;
-static UINT8 *DrvGfxROM2;
-static UINT8 *DrvGfxROMExp0;
-static UINT8 *DrvGfxROMExp1;
-static UINT8 *DrvSndROM0;
-static UINT8 *DrvSndROM1;
-static UINT8 *DrvShareRAM;
-static UINT8 *DrvKonRAM;
-static UINT8 *DrvPalRAM;
-static UINT8 *DrvZ80RAM;
-static UINT32 *DrvPalette;
-static UINT8 DrvRecalc;
-
-static UINT8 *soundlatch;
-static UINT8 *nDrvBankRom;
-
-static UINT8 DrvInputs[3];
-static UINT8 DrvJoy1[8];
-static UINT8 DrvJoy2[8];
-static UINT8 DrvJoy3[8];
-static UINT8 DrvDips[3];
-static UINT8 DrvReset;
-
-static INT32 firq_enable;
-static INT32 ajax_priority;
-
-static struct BurnInputInfo AjaxInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy1 + 0, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 3, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy2 + 2, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy2 + 3, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy2 + 0, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy2 + 1, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy2 + 4, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy2 + 5, "p1 fire 2" },
- {"P1 Button 3", BIT_DIGITAL, DrvJoy2 + 6, "p1 fire 3" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy1 + 1, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy1 + 4, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvJoy3 + 2, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy3 + 3, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy3 + 0, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy3 + 1, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy3 + 4, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy3 + 5, "p2 fire 2" },
- {"P2 Button 3", BIT_DIGITAL, DrvJoy3 + 6, "p2 fire 3" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset"},
- {"Service", BIT_DIGITAL, DrvJoy1 + 2, "service" },
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip" },
- {"Dip C", BIT_DIPSWITCH, DrvDips + 2, "dip" },
-};
-
-STDINPUTINFO(Ajax)
-
-static struct BurnDIPInfo AjaxDIPList[]=
-{
- {0x14, 0xff, 0xff, 0xff, NULL },
- {0x15, 0xff, 0xff, 0x52, NULL },
- {0x16, 0xff, 0xff, 0xff, NULL },
-
- {0 , 0xfe, 0 , 16, "Coin A" },
- {0x14, 0x01, 0x0f, 0x02, "4 Coins 1 Credit" },
- {0x14, 0x01, 0x0f, 0x05, "3 Coins 1 Credit" },
- {0x14, 0x01, 0x0f, 0x08, "2 Coins 1 Credit" },
- {0x14, 0x01, 0x0f, 0x04, "3 Coins 2 Credits" },
- {0x14, 0x01, 0x0f, 0x01, "4 Coins 3 Credits" },
- {0x14, 0x01, 0x0f, 0x0f, "1 Coin 1 Credit" },
- {0x14, 0x01, 0x0f, 0x03, "3 Coins 4 Credits" },
- {0x14, 0x01, 0x0f, 0x07, "2 Coins 3 Credits" },
- {0x14, 0x01, 0x0f, 0x0e, "1 Coin 2 Credits" },
- {0x14, 0x01, 0x0f, 0x06, "2 Coins 5 Credits" },
- {0x14, 0x01, 0x0f, 0x0d, "1 Coin 3 Credits" },
- {0x14, 0x01, 0x0f, 0x0c, "1 Coin 4 Credits" },
- {0x14, 0x01, 0x0f, 0x0b, "1 Coin 5 Credits" },
- {0x14, 0x01, 0x0f, 0x0a, "1 Coin 6 Credits" },
- {0x14, 0x01, 0x0f, 0x09, "1 Coin 7 Credits" },
- {0x14, 0x01, 0x0f, 0x00, "Free Play" },
-
- {0 , 0xfe, 0 , 15, "Coin B" },
- {0x14, 0x01, 0xf0, 0x20, "4 Coins 1 Credit" },
- {0x14, 0x01, 0xf0, 0x50, "3 Coins 1 Credit" },
- {0x14, 0x01, 0xf0, 0x80, "2 Coins 1 Credit" },
- {0x14, 0x01, 0xf0, 0x40, "3 Coins 2 Credits" },
- {0x14, 0x01, 0xf0, 0x10, "4 Coins 3 Credits" },
- {0x14, 0x01, 0xf0, 0xf0, "1 Coin 1 Credit" },
- {0x14, 0x01, 0xf0, 0x30, "3 Coins 4 Credits" },
- {0x14, 0x01, 0xf0, 0x70, "2 Coins 3 Credits" },
- {0x14, 0x01, 0xf0, 0xe0, "1 Coin 2 Credits" },
- {0x14, 0x01, 0xf0, 0x60, "2 Coins 5 Credits" },
- {0x14, 0x01, 0xf0, 0xd0, "1 Coin 3 Credits" },
- {0x14, 0x01, 0xf0, 0xc0, "1 Coin 4 Credits" },
- {0x14, 0x01, 0xf0, 0xb0, "1 Coin 5 Credits" },
- {0x14, 0x01, 0xf0, 0xa0, "1 Coin 6 Credits" },
- {0x14, 0x01, 0xf0, 0x90, "1 Coin 7 Credits" },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x15, 0x01, 0x03, 0x03, "2" },
- {0x15, 0x01, 0x03, 0x02, "3" },
- {0x15, 0x01, 0x03, 0x01, "5" },
- {0x15, 0x01, 0x03, 0x00, "7" },
-
-// {0 , 0xfe, 0 , 2, "Cabinet" },
-// {0x15, 0x01, 0x04, 0x00, "Upright" },
-// {0x15, 0x01, 0x04, 0x04, "Cocktail" },
-
- {0 , 0xfe, 0 , 4, "Bonus Life" },
- {0x15, 0x01, 0x18, 0x18, "30000 150000" },
- {0x15, 0x01, 0x18, 0x10, "50000 200000" },
- {0x15, 0x01, 0x18, 0x08, "30000" },
- {0x15, 0x01, 0x18, 0x00, "50000" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x15, 0x01, 0x60, 0x60, "Easy" },
- {0x15, 0x01, 0x60, 0x40, "Normal" },
- {0x15, 0x01, 0x60, 0x20, "Difficult" },
- {0x15, 0x01, 0x60, 0x00, "Very Difficult" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x15, 0x01, 0x80, 0x80, "Off" },
- {0x15, 0x01, 0x80, 0x00, "On" },
-
-// {0 , 0xfe, 0 , 2, "Flip Screen" },
-// {0x16, 0x01, 0x01, 0x01, "Off" },
-// {0x16, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Upright Controls" },
- {0x16, 0x01, 0x02, 0x02, "Single" },
- {0x16, 0x01, 0x02, 0x00, "Dual" },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x16, 0x01, 0x04, 0x04, "Off" },
- {0x16, 0x01, 0x04, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Control in 3D Stages" },
- {0x16, 0x01, 0x08, 0x08, "Normal" },
- {0x16, 0x01, 0x08, 0x00, "Inverted" },
-};
-
-STDDIPINFO(Ajax)
-
-static void ajax_main_bankswitch(INT32 data)
-{
- nDrvBankRom[0] = data;
-
- INT32 nBank = 0x10000 + ((data & 0x80) << 9) + ((data & 7) << 13);
-
- ajax_priority = data & 0x08;
-
- konamiMapMemory(DrvKonROM + nBank, 0x6000, 0x7fff, MAP_ROM);
-}
-
-void ajax_main_write(UINT16 address, UINT8 data)
-{
- if (address <= 0x1c0)
- {
- switch ((address & 0x01c0) >> 6)
- {
- case 0x0000:
- if (address == 0 && firq_enable) {
- M6809SetIRQLine(1, CPU_IRQSTATUS_AUTO);
- }
- break;
-
- case 0x0001:
- ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
- break;
-
- case 0x0002:
- *soundlatch = data;
- break;
-
- case 0x0003:
- ajax_main_bankswitch(data);
- break;
- }
- }
-
- if ((address & 0xfff8) == 0x0800) {
- K051937Write(address & 7, data);
- return;
- }
-
- if ((address & 0xfc00) == 0x0c00) {
- K051960Write(address & 0x3ff, data);
- return;
- }
-}
-
-UINT8 ajax_main_read(UINT16 address)
-{
- if (address <= 0x01c0) {
- switch ((address & 0x1c0) >> 6)
- {
- case 0x0000:
- return konamiTotalCycles() & 0xff; // rand
-
- case 0x0004:
- return DrvInputs[2];
-
- case 0x0006:
- switch (address & 3) {
- case 0:
- return DrvInputs[0];
-
- case 1:
- return DrvInputs[1];
-
- case 2:
- return DrvDips[0];
-
- case 3:
- return DrvDips[1];
- }
- return 0;
-
- case 0x0007:
- return DrvDips[2];
- }
- }
-
- if ((address & 0xfff8) == 0x0800) {
- return K051937Read(address & 7);
- }
-
- if ((address & 0xfc00) == 0x0c00) {
- return K051960Read(address & 0x3ff);
- }
-
- return 0;
-}
-
-static void ajax_sub_bankswitch(UINT8 data)
-{
- nDrvBankRom[1] = data;
-
- K052109RMRDLine = data & 0x40;
-
- K051316WrapEnable(0, data & 0x20);
-
- firq_enable = data & 0x10;
-
- INT32 nBank = ((data & 0x0f) << 13) + 0x10000;
- M6809MapMemory(DrvM6809ROM + nBank, 0x8000, 0x9fff, MAP_ROM);
-}
-
-void ajax_sub_write(UINT16 address, UINT8 data)
-{
- if ((address & 0xf800) == 0x0000) {
- K051316Write(0, address & 0x7ff, data);
- return;
- }
-
- if ((address & 0xfff0) == 0x0800) {
- K051316WriteCtrl(0, address & 0x0f, data);
- return;
- }
-
- if (address == 0x1800) {
- ajax_sub_bankswitch(data);
- return;
- }
-
- if ((address & 0xc000) == 0x4000) {
- K052109Write(address & 0x3fff, data);
- return;
- }
-}
-
-UINT8 ajax_sub_read(UINT16 address)
-{
- if ((address & 0xf800) == 0x0000) {
- return K051316Read(0, address & 0x7ff);
- }
-
- if ((address & 0xf800) == 0x1000) {
- return K051316ReadRom(0, address & 0x7ff);
- }
-
- if ((address & 0xc000) == 0x4000) {
- return K052109Read(address & 0x3fff);
- }
-
- return 0;
-}
-
-void __fastcall ajax_sound_write(UINT16 address, UINT8 data)
-{
- if ((address & 0xfff0) == 0xa000) {
- K007232WriteReg(0, address & 0x0f, data);
- return;
- }
-
- if ((address & 0xfff0) == 0xb000) {
- K007232WriteReg(1, address & 0x0f, data);
- return;
- }
-
- switch (address)
- {
- case 0x9000:
- k007232_set_bank(0, (data >> 1) & 1, (data >> 0) & 1 );
- k007232_set_bank(1, (data >> 4) & 3, (data >> 2) & 3 );
- return;
-
- case 0xb80c:
- K007232SetVolume(1, 0, (data & 0x0f) * 0x11/2, (data & 0x0f) * 0x11/2);
- return;
-
- case 0xc000:
- BurnYM2151SelectRegister(data);
- return;
-
- case 0xc001:
- BurnYM2151WriteRegister(data);
- return;
- }
-}
-
-UINT8 __fastcall ajax_sound_read(UINT16 address)
-{
- if ((address & 0xfff0) == 0xa000) {
- return K007232ReadReg(0, address & 0x0f);
- }
-
- if ((address & 0xfff0) == 0xb000) {
- return K007232ReadReg(1, address & 0x0f);
- }
-
- switch (address)
- {
- case 0xc000:
- case 0xc001:
- return BurnYM2151ReadStatus();
-
- case 0xe000:
- ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
- return *soundlatch;
- }
-
- return 0;
-}
-
-static void K052109Callback(INT32 layer, INT32 bank, INT32 *code, INT32 *color, INT32 *, INT32 *)
-{
- INT32 layer_colorbase[3] = { 64, 0, 32 };
-
- *code |= ((*color & 0x0f) << 8) | (bank << 12);
- *code &= 0x3fff;
- *color = layer_colorbase[layer] + ((*color & 0xf0) >> 4);
-}
-
-static void K051960Callback(INT32 *code, INT32 *color,INT32 *priority, INT32 *)
-{
- *priority = 0xff00;
- if ( *color & 0x10) *priority |= 0xf0f0;
- if (~*color & 0x40) *priority |= 0xcccc;
- if ( *color & 0x20) *priority |= 0xaaaa;
- *color = 16 + (*color & 0x0f);
- *code &= 0x1fff;
-}
-
-static void K051316Callback(INT32 *code,INT32 *color,INT32 *)
-{
- *code |= ((*color & 0x07) << 8);
- *code &= 0x7ff;
- *color = 6 + ((*color & 0x08) >> 3);
-}
-
-static void DrvK007232VolCallback0(INT32 v)
-{
- K007232SetVolume(0, 0, (v >> 0x4) * 0x11, 0);
- K007232SetVolume(0, 1, 0, (v & 0x0f) * 0x11);
-}
-
-static void DrvK007232VolCallback1(INT32 v)
-{
- K007232SetVolume(1, 1, (v & 0x0f) * 0x11/2, (v & 0x0f) * 0x11/2);
-}
-
-static INT32 DrvDoReset()
-{
- DrvReset = 0;
-
- memset (AllRam, 0, RamEnd - AllRam);
-
- konamiOpen(0);
- konamiReset();
- konamiClose();
-
- M6809Open(0);
- M6809Reset();
- M6809Close();
-
- ZetOpen(0);
- ZetReset();
- ZetClose();
-
- BurnYM2151Reset();
-
- KonamiICReset();
-
- firq_enable = 0;
- ajax_priority = 0;
-
- HiscoreReset();
-
- return 0;
-}
-
-static INT32 MemIndex()
-{
- UINT8 *Next; Next = AllMem;
-
- DrvKonROM = Next; Next += 0x030000;
- DrvM6809ROM = Next; Next += 0x030000;
- DrvZ80ROM = Next; Next += 0x010000;
-
- DrvGfxROM0 = Next; Next += 0x080000;
- DrvGfxROM1 = Next; Next += 0x100000;
- DrvGfxROM2 = Next; Next += 0x080000;
- DrvGfxROMExp0 = Next; Next += 0x100000;
- DrvGfxROMExp1 = Next; Next += 0x200000;
-
- DrvSndROM0 = Next; Next += 0x040000;
- DrvSndROM1 = Next; Next += 0x080000;
-
- DrvPalette = (UINT32*)Next; Next += 0x801 * sizeof(UINT32);
-
- AllRam = Next;
-
- DrvShareRAM = Next; Next += 0x002000;
- DrvKonRAM = Next; Next += 0x002000;
- DrvPalRAM = Next; Next += 0x001000 + 0x1000;
-
- DrvZ80RAM = Next; Next += 0x000800;
-
- soundlatch = Next; Next += 0x000001;
- nDrvBankRom = Next; Next += 0x000002;
-
- RamEnd = Next;
- MemEnd = Next;
-
- return 0;
-}
-
-static INT32 DrvInit(INT32 type)
-{
- GenericTilesInit();
-
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(DrvKonROM + 0x020000, 0, 1)) return 1;
- if (BurnLoadRom(DrvKonROM + 0x010000, 1, 1)) return 1;
- memcpy (DrvKonROM + 0x08000, DrvKonROM + 0x28000, 0x8000);
-
- if (BurnLoadRom(DrvM6809ROM + 0x20000, 2, 1)) return 1;
- memcpy (DrvM6809ROM + 0xa000, DrvM6809ROM + 0x22000, 0x6000);
- if (BurnLoadRom(DrvM6809ROM + 0x10000, 3, 1)) return 1;
-
- if (BurnLoadRom(DrvZ80ROM + 0x000000, 4, 1)) return 1;
-
- if (type) {
- if (BurnLoadRom(DrvGfxROM0 + 0x000000, 5, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x000001, 6, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x000002, 7, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x000003, 8, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x040000, 9, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x040001, 10, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x040002, 11, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x040003, 12, 4)) return 1;
-
- if (BurnLoadRom(DrvGfxROM1 + 0x000000, 13, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x000001, 14, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x000002, 15, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x000003, 16, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x040000, 17, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x040001, 18, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x040002, 19, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x040003, 20, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x080000, 21, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x080001, 22, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x080002, 23, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x080003, 24, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x0c0000, 25, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x0c0001, 26, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x0c0002, 27, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x0c0003, 28, 4)) return 1;
-
- if (BurnLoadRom(DrvGfxROM2 + 0x000000, 29, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x040000, 30, 1)) return 1;
-
- if (BurnLoadRom(DrvSndROM0 + 0x000000, 31, 1)) return 1;
- if (BurnLoadRom(DrvSndROM0 + 0x010000, 32, 1)) return 1;
- if (BurnLoadRom(DrvSndROM0 + 0x020000, 33, 1)) return 1;
- if (BurnLoadRom(DrvSndROM0 + 0x030000, 34, 1)) return 1;
-
- if (BurnLoadRom(DrvSndROM1 + 0x000000, 35, 1)) return 1;
- if (BurnLoadRom(DrvSndROM1 + 0x010000, 36, 1)) return 1;
- if (BurnLoadRom(DrvSndROM1 + 0x020000, 37, 1)) return 1;
- if (BurnLoadRom(DrvSndROM1 + 0x030000, 38, 1)) return 1;
- if (BurnLoadRom(DrvSndROM1 + 0x040000, 39, 1)) return 1;
- if (BurnLoadRom(DrvSndROM1 + 0x050000, 40, 1)) return 1;
- if (BurnLoadRom(DrvSndROM1 + 0x060000, 41, 1)) return 1;
- if (BurnLoadRom(DrvSndROM1 + 0x070000, 42, 1)) return 1;
- } else {
- if (BurnLoadRomExt(DrvGfxROM0 + 0x000000, 5, 4, LD_GROUP(2))) return 1;
- if (BurnLoadRomExt(DrvGfxROM0 + 0x000002, 6, 4, LD_GROUP(2))) return 1;
-
- if (BurnLoadRomExt(DrvGfxROM1 + 0x000000, 7, 4, LD_GROUP(2))) return 1;
- if (BurnLoadRomExt(DrvGfxROM1 + 0x000002, 8, 4, LD_GROUP(2))) return 1;
-
- if (BurnLoadRom(DrvGfxROM2 + 0x000000, 9, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x040000, 10, 1)) return 1;
-
- if (BurnLoadRom(DrvSndROM0 + 0x000000, 11, 1)) return 1;
- if (BurnLoadRom(DrvSndROM1 + 0x000000, 12, 1)) return 1;
- }
-
- K052109GfxDecode(DrvGfxROM0, DrvGfxROMExp0, 0x080000);
- K051960GfxDecode(DrvGfxROM1, DrvGfxROMExp1, 0x100000);
- }
-
- konamiInit(0);
- konamiOpen(0);
- konamiMapMemory(DrvPalRAM, 0x1000, 0x1fff, MAP_RAM);
- konamiMapMemory(DrvShareRAM, 0x2000, 0x3fff, MAP_RAM);
- konamiMapMemory(DrvKonRAM, 0x4000, 0x5fff, MAP_RAM);
- konamiMapMemory(DrvKonROM + 0x10000, 0x6000, 0x7fff, MAP_ROM);
- konamiMapMemory(DrvKonROM + 0x08000, 0x8000, 0xffff, MAP_ROM);
- konamiSetWriteHandler(ajax_main_write);
- konamiSetReadHandler(ajax_main_read);
- konamiClose();
-
- M6809Init(1);
- M6809Open(0);
- M6809MapMemory(DrvShareRAM, 0x2000, 0x3fff, MAP_RAM);
- M6809MapMemory(DrvM6809ROM + 0x10000, 0x8000, 0x9fff, MAP_ROM);
- M6809MapMemory(DrvM6809ROM + 0x0a000, 0xa000, 0xffff, MAP_ROM);
- M6809SetWriteHandler(ajax_sub_write);
- M6809SetReadHandler(ajax_sub_read);
- M6809Close();
-
- ZetInit(0);
- ZetOpen(0);
- ZetMapArea(0x0000, 0x7fff, 0, DrvZ80ROM);
- ZetMapArea(0x0000, 0x7fff, 2, DrvZ80ROM);
- ZetMapArea(0x8000, 0x87ff, 0, DrvZ80RAM);
- ZetMapArea(0x8000, 0x87ff, 1, DrvZ80RAM);
- ZetMapArea(0x8000, 0x87ff, 2, DrvZ80RAM);
- ZetSetWriteHandler(ajax_sound_write);
- ZetSetReadHandler(ajax_sound_read);
- ZetClose();
-
- BurnYM2151Init(3579545);
- BurnYM2151SetRoute(BURN_SND_YM2151_YM2151_ROUTE_1, 1.00, BURN_SND_ROUTE_LEFT);
- BurnYM2151SetRoute(BURN_SND_YM2151_YM2151_ROUTE_2, 1.00, BURN_SND_ROUTE_RIGHT);
-
- K007232Init(0, 3579545, DrvSndROM0, 0x40000);
- K007232SetPortWriteHandler(0, DrvK007232VolCallback0);
- K007232PCMSetAllRoutes(0, 0.20, BURN_SND_ROUTE_BOTH);
-
- K007232Init(1, 3579545, DrvSndROM1, 0x80000);
- K007232SetPortWriteHandler(1, DrvK007232VolCallback1);
- K007232SetRoute(1, BURN_SND_K007232_ROUTE_1, 0.40, BURN_SND_ROUTE_BOTH);
- K007232SetRoute(1, BURN_SND_K007232_ROUTE_2, 0.30, BURN_SND_ROUTE_BOTH);
-
- K052109Init(DrvGfxROM0, DrvGfxROMExp0, 0x7ffff);
- K052109SetCallback(K052109Callback);
- K052109AdjustScroll(4, 0);
-
- K051960Init(DrvGfxROM1, DrvGfxROMExp1, 0xfffff);
- K051960SetCallback(K051960Callback);
- K051960SetSpriteOffset(4, 0);
-
- K051316Init(0, DrvGfxROM2, DrvGfxROM2, 0x7ffff, K051316Callback, 7, 0);
- K051316SetOffset(0, -112 + 4, -16);
-
- DrvDoReset();
-
- return 0;
-}
-
-static INT32 DrvExit()
-{
- GenericTilesExit();
-
- KonamiICExit();
-
- M6809Exit();
- konamiExit();
- ZetExit();
-
- K007232Exit();
- BurnYM2151Exit();
-
- BurnFree (AllMem);
-
- return 0;
-}
-
-static INT32 DrvDraw()
-{
- KonamiRecalcPalette(DrvPalRAM, DrvPalette, 0x1000);
-
- K052109UpdateScroll();
-
- KonamiClearBitmaps(0);
-
- if (nBurnLayer & 1) K052109RenderLayer(2, 0, 1);
-
- if (ajax_priority)
- {
- if (nBurnLayer & 2) K051316_zoom_draw(0, 4);
- if (nBurnLayer & 4) K052109RenderLayer(1, 0, 2);
- }
- else
- {
- if (nBurnLayer & 4) K052109RenderLayer(1, 0, 2);
- if (nBurnLayer & 2) K051316_zoom_draw(0, 4);
- }
-
- if (nBurnLayer & 8) K052109RenderLayer(0, 0, 8);
-
- if (nSpriteEnable & 8) K051960SpritesRender(-1, -1);
-
- KonamiBlendCopy(DrvPalette);
-
- return 0;
-}
-
-static INT32 DrvFrame()
-{
- if (DrvReset) {
- DrvDoReset();
- }
-
- {
- memset (DrvInputs, 0xff, 3);
- for (INT32 i = 0; i < 8; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- DrvInputs[2] ^= (DrvJoy3[i] & 1) << i;
- }
-
- // Clear opposites
- if ((DrvInputs[1] & 0x03) == 0) DrvInputs[1] |= 0x03;
- if ((DrvInputs[1] & 0x0c) == 0) DrvInputs[1] |= 0x0c;
- if ((DrvInputs[2] & 0x03) == 0) DrvInputs[2] |= 0x03;
- if ((DrvInputs[2] & 0x0c) == 0) DrvInputs[2] |= 0x0c;
- }
-
- INT32 nSoundBufferPos = 0;
- INT32 nInterleave = 100;
- INT32 nCyclesTotal[3] = { (((3000000 / 60) * 133) / 100) /* 33% overclock */, 3000000 / 60, 3579545 / 60 };
- INT32 nCyclesDone[3] = { 0, 0, 0 };
-
- ZetOpen(0);
- M6809Open(0);
- konamiOpen(0);
-
- for (INT32 i = 0; i < nInterleave; i++)
- {
- INT32 nSegment = (nCyclesTotal[0] / nInterleave) * (i + 1);
- nCyclesDone[0] += konamiRun(nSegment - nCyclesDone[0]);
-
- nCyclesDone[1] += M6809Run(nSegment - nCyclesDone[1]);
- nSegment = (nCyclesTotal[2] / nInterleave) * (i + 1);
-
- nCyclesDone[2] += ZetRun(nSegment - nCyclesDone[2]);
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen / nInterleave;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- BurnYM2151Render(pSoundBuf, nSegmentLength);
- K007232Update(0, pSoundBuf, nSegmentLength);
- K007232Update(1, pSoundBuf, nSegmentLength);
- nSoundBufferPos += nSegmentLength;
- }
- }
-
- if (K051960_irq_enabled) konamiSetIrqLine(KONAMI_IRQ_LINE, CPU_IRQSTATUS_AUTO);
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
- if (nSegmentLength) {
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- BurnYM2151Render(pSoundBuf, nSegmentLength);
- K007232Update(0, pSoundBuf, nSegmentLength);
- K007232Update(1, pSoundBuf, nSegmentLength);
- }
- }
-
- konamiClose();
- M6809Close();
- ZetClose();
-
- if (pBurnDraw) {
- DrvDraw();
- }
-
- return 0;
-}
-
-static INT32 DrvScan(INT32 nAction,INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin) {
- *pnMin = 0x029705;
- }
-
- if (nAction & ACB_VOLATILE) {
- memset(&ba, 0, sizeof(ba));
-
- ba.Data = AllRam;
- ba.nLen = RamEnd - AllRam;
- ba.szName = "All Ram";
- BurnAcb(&ba);
-
- konamiCpuScan(nAction);
- M6809Scan(nAction);
- ZetScan(nAction);
-
- BurnYM2151Scan(nAction);
- K007232Scan(nAction, pnMin);
-
- KonamiICScan(nAction);
- }
-
- if (nAction & ACB_WRITE) {
- konamiOpen(0);
- ajax_main_bankswitch(nDrvBankRom[0]);
- konamiClose();
-
- M6809Open(0);
- ajax_sub_bankswitch(nDrvBankRom[1]);
- M6809Close();
- }
-
- return 0;
-}
-
-
-// Ajax
-
-static struct BurnRomInfo ajaxRomDesc[] = {
- { "770_m01.n11", 0x10000, 0x4a64e53a, 1 | BRF_PRG | BRF_ESS }, // 0 Konami Custom Code
- { "770_l02.n12", 0x10000, 0xad7d592b, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "770_l05.i16", 0x08000, 0xed64fbb2, 2 | BRF_PRG | BRF_ESS }, // 2 M6809 Code
- { "770_f04.g16", 0x10000, 0xe0e4ec9c, 2 | BRF_PRG | BRF_ESS }, // 3
-
- { "770_h03.f16", 0x08000, 0x2ffd2afc, 3 | BRF_PRG | BRF_ESS }, // 4 Z80 Code
-
- { "770c13-a.f3", 0x10000, 0x4ef6fff2, 4 | BRF_GRA }, // 5 K052109 Tiles
- { "770c13-c.f4", 0x10000, 0x97ffbab6, 4 | BRF_GRA }, // 6
- { "770c12-a.f5", 0x10000, 0x6c0ade68, 4 | BRF_GRA }, // 7
- { "770c12-c.f6", 0x10000, 0x61fc39cc, 4 | BRF_GRA }, // 8
- { "770c13-b.e3", 0x10000, 0x86fdd706, 4 | BRF_GRA }, // 9
- { "770c13-d.e4", 0x10000, 0x7d7acb2d, 4 | BRF_GRA }, // 10
- { "770c12-b.e5", 0x10000, 0x5f221cc6, 4 | BRF_GRA }, // 11
- { "770c12-d.e6", 0x10000, 0xf1edb2f4, 4 | BRF_GRA }, // 12
-
- { "770c09-a.f8", 0x10000, 0x76690fb8, 5 | BRF_GRA }, // 13 K051960 Tiles
- { "770c09-e.f9", 0x10000, 0x17b482c9, 5 | BRF_GRA }, // 14
- { "770c08-a.f10", 0x10000, 0xefd29a56, 5 | BRF_GRA }, // 15
- { "770c08-e.f11", 0x10000, 0x6d43afde, 5 | BRF_GRA }, // 16
- { "770c09-b.e8", 0x10000, 0xcd1709d1, 5 | BRF_GRA }, // 17
- { "770c09-f.e9", 0x10000, 0xcba4b47e, 5 | BRF_GRA }, // 18
- { "770c08-b.e10", 0x10000, 0xf3374014, 5 | BRF_GRA }, // 19
- { "770c08-f.e11", 0x10000, 0xf5ba59aa, 5 | BRF_GRA }, // 20
- { "770c09-c.d8", 0x10000, 0xbfd080b8, 5 | BRF_GRA }, // 21
- { "770c09-g.d9", 0x10000, 0x77d58ea0, 5 | BRF_GRA }, // 22
- { "770c08-c.d10", 0x10000, 0x28e7088f, 5 | BRF_GRA }, // 23
- { "770c08-g.d11", 0x10000, 0x17da8f6d, 5 | BRF_GRA }, // 24
- { "770c09-d.c8", 0x10000, 0x6f955600, 5 | BRF_GRA }, // 25
- { "770c09-h.c9", 0x10000, 0x494a9090, 5 | BRF_GRA }, // 26
- { "770c08-d.c10", 0x10000, 0x91591777, 5 | BRF_GRA }, // 27
- { "770c08-h.c11", 0x10000, 0xd97d4b15, 5 | BRF_GRA }, // 28
-
- { "770c06.f4", 0x40000, 0xd0c592ee, 6 | BRF_GRA }, // 29 K051960 Tiles
- { "770c07.h4", 0x40000, 0x0b399fb1, 6 | BRF_GRA }, // 30
-
- { "770c10-a.a7", 0x10000, 0xe45ec094, 7 | BRF_SND }, // 31 K007232 #0 Samples
- { "770c10-b.a6", 0x10000, 0x349db7d3, 7 | BRF_SND }, // 32
- { "770c10-c.a5", 0x10000, 0x71cb1f05, 7 | BRF_SND }, // 33
- { "770c10-d.a4", 0x10000, 0xe8ab1844, 7 | BRF_SND }, // 34
-
- { "770c11-a.c6", 0x10000, 0x8cccd9e0, 8 | BRF_SND }, // 35 K007232 #1 Samples
- { "770c11-b.c5", 0x10000, 0x0af2fedd, 8 | BRF_SND }, // 36
- { "770c11-c.c4", 0x10000, 0x7471f24a, 8 | BRF_SND }, // 37
- { "770c11-d.c3", 0x10000, 0xa58be323, 8 | BRF_SND }, // 38
- { "770c11-e.b7", 0x10000, 0xdd553541, 8 | BRF_SND }, // 39
- { "770c11-f.b6", 0x10000, 0x3f78bd0f, 8 | BRF_SND }, // 40
- { "770c11-g.b5", 0x10000, 0x078c51b2, 8 | BRF_SND }, // 41
- { "770c11-h.b4", 0x10000, 0x7300c2e1, 8 | BRF_SND }, // 42
-
- { "63s241.j11", 0x00200, 0x9bdd719f, 9 | BRF_OPT }, // 43 Timing Prom (unused)
-};
-
-STD_ROM_PICK(ajax)
-STD_ROM_FN(ajax)
-
-static INT32 ajaxInit()
-{
- return DrvInit(1);
-}
-
-struct BurnDriver BurnDrvAjax = {
- "ajax", NULL, NULL, NULL, "1987",
- "Ajax\0", NULL, "Konami", "GX770",
- L"Ajax\0\u30A8\u30FC\u30B8\u30E3\u30C3\u30AF\u30B9\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_KONAMI, GBF_VERSHOOT, 0,
- NULL, ajaxRomInfo, ajaxRomName, NULL, NULL, AjaxInputInfo, AjaxDIPInfo,
- ajaxInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 224, 304, 3, 4
-};
-
-
-// Typhoon
-
-static struct BurnRomInfo typhoonRomDesc[] = {
- { "770_k01.n11", 0x10000, 0x5ba74a22, 1 | BRF_PRG | BRF_ESS }, // 0 Konami Custom Code
- { "770_k02.n12", 0x10000, 0x3bcf782a, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "770_k05.i16", 0x08000, 0x0f1bebbb, 2 | BRF_PRG | BRF_ESS }, // 2 M6809 Code
- { "770_f04.g16", 0x10000, 0xe0e4ec9c, 2 | BRF_PRG | BRF_ESS }, // 3
-
- { "770_h03.f16", 0x08000, 0x2ffd2afc, 3 | BRF_PRG | BRF_ESS }, // 4 Z80 Code
-
- { "770c13.n22", 0x40000, 0xb859ca4e, 4 | BRF_GRA }, // 5 K052109 Tiles
- { "770c12.k22", 0x40000, 0x50d14b72, 4 | BRF_GRA }, // 6
-
- { "770c09.n4", 0x80000, 0x1ab4a7ff, 5 | BRF_GRA }, // 7 K051960 Tiles
- { "770c08.k4", 0x80000, 0xa8e80586, 5 | BRF_GRA }, // 8
-
- { "770c06.f4", 0x40000, 0xd0c592ee, 6 | BRF_GRA }, // 9 K051960 Tiles
- { "770c07.h4", 0x40000, 0x0b399fb1, 6 | BRF_GRA }, // 10
-
- { "770c10", 0x40000, 0x7fac825f, 7 | BRF_SND }, // 11 K007232 #0 Samples
-
- { "770c11", 0x80000, 0x299a615a, 8 | BRF_SND }, // 12 K007232 #1 Samples
-
- { "63s241.j11", 0x00200, 0x9bdd719f, 9 | BRF_OPT }, // 13 Timing Prom (unused)
-};
-
-STD_ROM_PICK(typhoon)
-STD_ROM_FN(typhoon)
-
-static INT32 typhoonInit()
-{
- return DrvInit(0);
-}
-
-struct BurnDriver BurnDrvTyphoon = {
- "typhoon", "ajax", NULL, NULL, "1987",
- "Typhoon\0", NULL, "Konami", "GX770",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_KONAMI, GBF_VERSHOOT, 0,
- NULL, typhoonRomInfo, typhoonRomName, NULL, NULL, AjaxInputInfo, AjaxDIPInfo,
- typhoonInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 224, 304, 3, 4
-};
-
-
-// Ajax (Japan)
-
-static struct BurnRomInfo ajaxjRomDesc[] = {
- { "770_l01.n11", 0x10000, 0x7cea5274, 1 | BRF_PRG | BRF_ESS }, // 0 Konami Custom Code
- { "770_l02.n12", 0x10000, 0xad7d592b, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "770_l05.i16", 0x08000, 0xed64fbb2, 2 | BRF_PRG | BRF_ESS }, // 2 M6809 code
- { "770_f04.g16", 0x10000, 0xe0e4ec9c, 2 | BRF_PRG | BRF_ESS }, // 3
-
- { "770_f03.f16", 0x08000, 0x3fe914fd, 3 | BRF_PRG | BRF_ESS }, // 4 Z80 Code
-
- { "770c13.n22", 0x40000, 0xb859ca4e, 4 | BRF_GRA }, // 5 K052109 Tiles
- { "770c12.k22", 0x40000, 0x50d14b72, 4 | BRF_GRA }, // 6
-
- { "770c09.n4", 0x80000, 0x1ab4a7ff, 5 | BRF_GRA }, // 7 K051960 Tiles
- { "770c08.k4", 0x80000, 0xa8e80586, 5 | BRF_GRA }, // 8
-
- { "770c06.f4", 0x40000, 0xd0c592ee, 6 | BRF_GRA }, // 9 K051960 Tiles
- { "770c07.h4", 0x40000, 0x0b399fb1, 6 | BRF_GRA }, // 10
-
- { "770c10", 0x40000, 0x7fac825f, 7 | BRF_SND }, // 11 K007232 #0 Samples
-
- { "770c11", 0x80000, 0x299a615a, 8 | BRF_SND }, // 12 K007232 #1 Samples
-
- { "63s241.j11", 0x00200, 0x9bdd719f, 9 | BRF_OPT }, // 13 Timing Prom (unused)
-};
-
-STD_ROM_PICK(ajaxj)
-STD_ROM_FN(ajaxj)
-
-struct BurnDriver BurnDrvAjaxj = {
- "ajaxj", "ajax", NULL, NULL, "1987",
- "Ajax (Japan)\0", NULL, "Konami", "GX770",
- L"Ajax\0\u30A8\u30FC\u30B8\u30E3\u30C3\u30AF\u30B9 (Japan)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_KONAMI, GBF_VERSHOOT, 0,
- NULL, ajaxjRomInfo, ajaxjRomName, NULL, NULL, AjaxInputInfo, AjaxDIPInfo,
- typhoonInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 224, 304, 3, 4
-};
diff --git a/jan/src/burn/drv/konami/d_aliens.cpp b/jan/src/burn/drv/konami/d_aliens.cpp
deleted file mode 100644
index 339574e40..000000000
--- a/jan/src/burn/drv/konami/d_aliens.cpp
+++ /dev/null
@@ -1,825 +0,0 @@
-// FB Alpha Aliens driver module
-// Based on MAME driver by Manuel Abadia
-
-#include "tiles_generic.h"
-#include "z80_intf.h"
-#include "konami_intf.h"
-#include "konamiic.h"
-#include "burn_ym2151.h"
-#include "k007232.h"
-
-static UINT8 *AllMem;
-static UINT8 *MemEnd;
-static UINT8 *AllRam;
-static UINT8 *RamEnd;
-static UINT8 *DrvKonROM;
-static UINT8 *DrvZ80ROM;
-static UINT8 *DrvGfxROM0;
-static UINT8 *DrvGfxROM1;
-static UINT8 *DrvGfxROMExp0;
-static UINT8 *DrvGfxROMExp1;
-static UINT8 *DrvSndROM;
-static UINT8 *DrvBankRAM;
-static UINT8 *DrvKonRAM;
-static UINT8 *DrvPalRAM;
-static UINT8 *DrvZ80RAM;
-static UINT32 *DrvPalette;
-static UINT8 DrvRecalc;
-
-static UINT8 *soundlatch;
-static UINT8 *nDrvRamBank;
-static UINT8 *nDrvKonamiBank;
-
-static UINT8 DrvJoy1[8];
-static UINT8 DrvJoy2[8];
-static UINT8 DrvJoy3[8];
-static UINT8 DrvDips[3];
-static UINT8 DrvInputs[2];
-static UINT8 DrvReset;
-
-static struct BurnInputInfo AliensInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy1 + 6, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 7, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy1 + 2, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy1 + 3, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy1 + 0, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy1 + 1, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy1 + 4, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy1 + 5, "p1 fire 2" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy2 + 6, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy2 + 7, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvJoy2 + 2, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy2 + 3, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy2 + 0, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy2 + 1, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy2 + 4, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy2 + 5, "p2 fire 2" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service", BIT_DIGITAL, DrvJoy3 + 4, "service" },
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip" },
- {"Dip C", BIT_DIPSWITCH, DrvDips + 2, "dip" },
-};
-
-STDINPUTINFO(Aliens)
-
-static struct BurnDIPInfo AliensDIPList[]=
-{
- {0x12, 0xff, 0xff, 0xff, NULL },
- {0x13, 0xff, 0xff, 0x5e, NULL },
- {0x14, 0xff, 0xff, 0xff, NULL },
-
- {0 , 0xfe, 0 , 16, "Coin A" },
- {0x12, 0x01, 0x0f, 0x02, "4 Coins 1 Credit" },
- {0x12, 0x01, 0x0f, 0x05, "3 Coins 1 Credit" },
- {0x12, 0x01, 0x0f, 0x08, "2 Coins 1 Credit" },
- {0x12, 0x01, 0x0f, 0x04, "3 Coins 2 Credits" },
- {0x12, 0x01, 0x0f, 0x01, "4 Coins 3 Credits" },
- {0x12, 0x01, 0x0f, 0x0f, "1 Coin 1 Credit" },
- {0x12, 0x01, 0x0f, 0x03, "3 Coins 4 Credits" },
- {0x12, 0x01, 0x0f, 0x07, "2 Coins 3 Credits" },
- {0x12, 0x01, 0x0f, 0x0e, "1 Coin 2 Credits" },
- {0x12, 0x01, 0x0f, 0x06, "2 Coins 5 Credits" },
- {0x12, 0x01, 0x0f, 0x0d, "1 Coin 3 Credits" },
- {0x12, 0x01, 0x0f, 0x0c, "1 Coin 4 Credits" },
- {0x12, 0x01, 0x0f, 0x0b, "1 Coin 5 Credits" },
- {0x12, 0x01, 0x0f, 0x0a, "1 Coin 6 Credits" },
- {0x12, 0x01, 0x0f, 0x09, "1 Coin 7 Credits" },
- {0x12, 0x01, 0x0f, 0x00, "Free Play" },
-
- {0 , 0xfe, 0 , 16, "Coin B" },
- {0x12, 0x01, 0xf0, 0x20, "4 Coins 1 Credit" },
- {0x12, 0x01, 0xf0, 0x50, "3 Coins 1 Credit" },
- {0x12, 0x01, 0xf0, 0x80, "2 Coins 1 Credit" },
- {0x12, 0x01, 0xf0, 0x40, "3 Coins 2 Credits" },
- {0x12, 0x01, 0xf0, 0x10, "4 Coins 3 Credits" },
- {0x12, 0x01, 0xf0, 0xf0, "1 Coin 1 Credit" },
- {0x12, 0x01, 0xf0, 0x30, "3 Coins 4 Credits" },
- {0x12, 0x01, 0xf0, 0x70, "2 Coins 3 Credits" },
- {0x12, 0x01, 0xf0, 0xe0, "1 Coin 2 Credits" },
- {0x12, 0x01, 0xf0, 0x60, "2 Coins 5 Credits" },
- {0x12, 0x01, 0xf0, 0xd0, "1 Coin 3 Credits" },
- {0x12, 0x01, 0xf0, 0xc0, "1 Coin 4 Credits" },
- {0x12, 0x01, 0xf0, 0xb0, "1 Coin 5 Credits" },
- {0x12, 0x01, 0xf0, 0xa0, "1 Coin 6 Credits" },
- {0x12, 0x01, 0xf0, 0x90, "1 Coin 7 Credits" },
- {0x12, 0x01, 0xf0, 0x00, "No Credits" },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x13, 0x01, 0x03, 0x03, "1" },
- {0x13, 0x01, 0x03, 0x02, "2" },
- {0x13, 0x01, 0x03, 0x01, "3" },
- {0x13, 0x01, 0x03, 0x00, "5" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x13, 0x01, 0x60, 0x60, "Easy" },
- {0x13, 0x01, 0x60, 0x40, "Normal" },
- {0x13, 0x01, 0x60, 0x20, "Hard" },
- {0x13, 0x01, 0x60, 0x00, "Very Hard" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x13, 0x01, 0x80, 0x80, "Off" },
- {0x13, 0x01, 0x80, 0x00, "On" },
-
-// {0 , 0xfe, 0 , 2, "Flip Screen" },
-// {0x14, 0x01, 0x01, 0x01, "Off" },
-// {0x14, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x14, 0x01, 0x04, 0x04, "Off" },
- {0x14, 0x01, 0x04, 0x00, "On" },
-};
-
-STDDIPINFO(Aliens)
-
-static void set_ram_bank(INT32 data)
-{
- nDrvRamBank[0] = data;
-
- if (data & 0x20) {
- konamiMapMemory(DrvPalRAM, 0x0000, 0x03ff, MAP_RAM);
- } else {
- konamiMapMemory(DrvBankRAM, 0x0000, 0x03ff, MAP_RAM);
- }
-}
-
-void aliens_main_write(UINT16 address, UINT8 data)
-{
- switch (address)
- {
- case 0x5f88:
- set_ram_bank(data & 0x20);
- K052109RMRDLine = data & 0x40;
- return;
-
- case 0x5f8c:
- *soundlatch = data;
- ZetSetVector(0xff);
- ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
- return;
- }
-
- if ((address & 0xc000) == 0x4000) {
- K052109_051960_w(address & 0x3fff, data);
- return;
- }
-}
-
-UINT8 aliens_main_read(UINT16 address)
-{
- switch (address)
- {
- case 0x5f80:
- return DrvDips[2];
-
- case 0x5f81:
- return DrvInputs[0];
-
- case 0x5f82:
- return DrvInputs[1];
-
- case 0x5f83:
- return DrvDips[1];
-
- case 0x5f84:
- return DrvDips[0];
-
- case 0x5f88:
- // watchdog reset
- return 0;
- }
-
- if ((address & 0xc000) == 0x4000) {
- return K052109_051960_r(address & 0x3fff);
- }
-
- return 0;
-}
-
-void __fastcall aliens_sound_write(UINT16 address, UINT8 data)
-{
- if ((address & 0xfff0) == 0xe000) {
- K007232WriteReg(0, address & 0x0f, data);
- return;
- }
-
- switch (address)
- {
- case 0xa000:
- BurnYM2151SelectRegister(data);
- return;
-
- case 0xa001:
- BurnYM2151WriteRegister(data);
- return;
- }
-}
-
-UINT8 __fastcall aliens_sound_read(UINT16 address)
-{
- if ((address & 0xfff0) == 0xe000) {
- return K007232ReadReg(0, address & 0x0f);
- }
-
- switch (address)
- {
- case 0xa000:
- case 0xa001:
- return BurnYM2151ReadStatus();
-
- case 0xc000:
- ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
- return *soundlatch;
- }
-
- return 0;
-}
-
-static void DrvYM2151WritePort(UINT32, UINT32 data)
-{
- INT32 bank_A = ((data >> 1) & 0x01);
- INT32 bank_B = ((data) & 0x01);
-
- k007232_set_bank(0, bank_A, bank_B );
-}
-
-static void DrvK007232VolCallback(INT32 v)
-{
- K007232SetVolume(0, 0, (v >> 0x4) * 0x11, 0);
- K007232SetVolume(0, 1, 0, (v & 0x0f) * 0x11);
-}
-
-static void aliens_set_lines(INT32 lines)
-{
- nDrvKonamiBank[0] = lines;
-
- INT32 nBank = (lines & 0x1f) * 0x2000;
-
- konamiMapMemory(DrvKonROM + 0x10000 + nBank, 0x2000, 0x3fff, MAP_ROM);
-}
-
-static void K052109Callback(INT32 layer, INT32 bank, INT32 *code, INT32 *color, INT32 *, INT32 *)
-{
- *code |= ((*color & 0x3f) << 8) | (bank << 14);
- *code &= 0xffff;
- *color = (layer << 2) + ((*color & 0xc0) >> 6);
-}
-
-static void K051960Callback(INT32 *code, INT32 *color,INT32 *priority, INT32 *shadow)
-{
- switch (*color & 0x70)
- {
- case 0x10: *priority = 0x00; break;
- case 0x00: *priority = 0xf0; break;
- case 0x40: *priority = 0xfc; break;
- case 0x20:
- case 0x60: *priority = 0xfe; break;
- case 0x50: *priority = 0xcc; break;
- case 0x30:
- case 0x70: *priority = 0xee; break;
- }
-
- *code |= (*color & 0x80) << 6;
- *code &= 0x3fff;
- *color = 16 + (*color & 0x0f);
- *shadow = 0;
-}
-
-static INT32 DrvDoReset()
-{
- DrvReset = 0;
-
- memset (AllRam, 0, RamEnd - AllRam);
-
- konamiOpen(0);
- konamiReset();
- konamiClose();
-
- ZetOpen(0);
- ZetReset();
- ZetClose();
-
- BurnYM2151Reset();
-
- KonamiICReset();
-
- return 0;
-}
-
-static INT32 MemIndex()
-{
- UINT8 *Next; Next = AllMem;
-
- DrvKonROM = Next; Next += 0x040000;
- DrvZ80ROM = Next; Next += 0x010000;
-
- DrvGfxROM0 = Next; Next += 0x200000;
- DrvGfxROM1 = Next; Next += 0x200000;
- DrvGfxROMExp0 = Next; Next += 0x400000;
- DrvGfxROMExp1 = Next; Next += 0x400000;
-
- DrvSndROM = Next; Next += 0x040000;
-
- DrvPalette = (UINT32*)Next; Next += 0x200 * sizeof(UINT32);
-
- AllRam = Next;
-
- DrvBankRAM = Next; Next += 0x000400;
- DrvKonRAM = Next; Next += 0x001c00;
- DrvPalRAM = Next; Next += 0x000400;
-
- DrvZ80RAM = Next; Next += 0x000800;
-
- soundlatch = Next; Next += 0x000001;
-
- nDrvRamBank = Next; Next += 0x000001;
- nDrvKonamiBank = Next; Next += 0x000001;
-
- RamEnd = Next;
- MemEnd = Next;
-
- return 0;
-}
-
-static INT32 DrvInit()
-{
- GenericTilesInit();
-
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(DrvKonROM + 0x030000, 0, 1)) return 1;
- if (BurnLoadRom(DrvKonROM + 0x010000, 1, 1)) return 1;
- memcpy (DrvKonROM + 0x08000, DrvKonROM + 0x38000, 0x8000);
-
- if (BurnLoadRom(DrvZ80ROM + 0x000000, 2, 1)) return 1;
-
- if (BurnLoadRomExt(DrvGfxROM0 + 0x000000, 3, 4, LD_GROUP(2))) return 1;
- if (BurnLoadRomExt(DrvGfxROM0 + 0x000002, 4, 4, LD_GROUP(2))) return 1;
- if (BurnLoadRomExt(DrvGfxROM0 + 0x100000, 5, 4, LD_GROUP(2))) return 1;
- if (BurnLoadRomExt(DrvGfxROM0 + 0x100002, 6, 4, LD_GROUP(2))) return 1;
-
- if (BurnLoadRomExt(DrvGfxROM1 + 0x000000, 7, 4, LD_GROUP(2))) return 1;
- if (BurnLoadRomExt(DrvGfxROM1 + 0x000002, 8, 4, LD_GROUP(2))) return 1;
- if (BurnLoadRomExt(DrvGfxROM1 + 0x100000, 9, 4, LD_GROUP(2))) return 1;
- if (BurnLoadRomExt(DrvGfxROM1 + 0x100002, 10, 4, LD_GROUP(2))) return 1;
-
- if (BurnLoadRom(DrvSndROM + 0x000000, 11, 1)) return 1;
-
- K052109GfxDecode(DrvGfxROM0, DrvGfxROMExp0, 0x200000);
- K051960GfxDecode(DrvGfxROM1, DrvGfxROMExp1, 0x200000);
- }
-
- konamiInit(0);
- konamiOpen(0);
- konamiMapMemory(DrvBankRAM, 0x0000, 0x03ff, MAP_RAM);
- konamiMapMemory(DrvKonRAM, 0x0400, 0x1fff, MAP_RAM);
- konamiMapMemory(DrvKonROM + 0x10000, 0x2000, 0x3fff, MAP_ROM);
- konamiMapMemory(DrvKonROM + 0x08000, 0x8000, 0xffff, MAP_ROM);
- konamiSetWriteHandler(aliens_main_write);
- konamiSetReadHandler(aliens_main_read);
- konamiSetlinesCallback(aliens_set_lines);
- konamiClose();
-
- ZetInit(0);
- ZetOpen(0);
- ZetMapArea(0x0000, 0x7fff, 0, DrvZ80ROM);
- ZetMapArea(0x0000, 0x7fff, 2, DrvZ80ROM);
- ZetMapArea(0x8000, 0x87ff, 0, DrvZ80RAM);
- ZetMapArea(0x8000, 0x87ff, 1, DrvZ80RAM);
- ZetMapArea(0x8000, 0x87ff, 2, DrvZ80RAM);
- ZetSetWriteHandler(aliens_sound_write);
- ZetSetReadHandler(aliens_sound_read);
- ZetClose();
-
- K052109Init(DrvGfxROM0, DrvGfxROMExp0, 0x1fffff);
- K052109SetCallback(K052109Callback);
- K052109AdjustScroll(8, 0);
-
- K051960Init(DrvGfxROM1, DrvGfxROMExp1, 0x1fffff);
- K051960SetCallback(K051960Callback);
- K051960SetSpriteOffset(8, 0);
-
- BurnYM2151Init(3579545);
- BurnYM2151SetPortHandler(&DrvYM2151WritePort);
- BurnYM2151SetAllRoutes(0.60, BURN_SND_ROUTE_BOTH);
-
- K007232Init(0, 3579545, DrvSndROM, 0x40000);
- K007232SetPortWriteHandler(0, DrvK007232VolCallback);
- K007232PCMSetAllRoutes(0, 0.20, BURN_SND_ROUTE_BOTH);
-
- DrvDoReset();
-
- return 0;
-}
-
-static INT32 DrvExit()
-{
- GenericTilesExit();
-
- KonamiICExit();
-
- konamiExit();
- ZetExit();
-
- K007232Exit();
- BurnYM2151Exit();
-
- BurnFree (AllMem);
-
- return 0;
-}
-
-static INT32 DrvDraw()
-{
- KonamiRecalcPalette(DrvPalRAM, DrvPalette, 0x400);
-
- K052109UpdateScroll();
-
- KonamiClearBitmaps(DrvPalette[0x0040]);
-
- if (nBurnLayer & 1) K052109RenderLayer(1, 0, 1);
- if (nBurnLayer & 2) K052109RenderLayer(2, 0, 2);
- if (nBurnLayer & 4) K052109RenderLayer(0, 0, 4);
-
- if (nSpriteEnable & 1) K051960SpritesRender(-1, -1);
-
- KonamiBlendCopy(DrvPalette);
-
- return 0;
-}
-
-static INT32 DrvFrame()
-{
- if (DrvReset) {
- DrvDoReset();
- }
-
- {
- memset (DrvInputs, 0xff, sizeof ( DrvInputs ));
-
- for (INT32 i = 0; i < 8; i++)
- {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- DrvDips[2] ^= (DrvJoy3[i] & 1) << i;
- }
-
- // Clear opposites
- if ((DrvInputs[0] & 0x03) == 0) DrvInputs[0] |= 0x03;
- if ((DrvInputs[0] & 0x0c) == 0) DrvInputs[0] |= 0x0c;
- if ((DrvInputs[1] & 0x03) == 0) DrvInputs[1] |= 0x03;
- if ((DrvInputs[1] & 0x0c) == 0) DrvInputs[1] |= 0x0c;
- }
-
- konamiNewFrame();
- ZetNewFrame();
-
- INT32 nSoundBufferPos = 0;
- INT32 nInterleave = nBurnSoundLen;
- INT32 nCyclesTotal[2] = { 6000000 / 60, 3579545 / 60 };
- INT32 nCyclesDone[2] = { 0, 0 };
-
- ZetOpen(0);
- konamiOpen(0);
-
- for (INT32 i = 0; i < nInterleave; i++)
- {
- INT32 nSegment = (nCyclesTotal[0] / nInterleave) * (i + 1);
-
- nCyclesDone[0] += konamiRun(nSegment - nCyclesDone[0]);
-
- nSegment = (nCyclesTotal[1] / nInterleave) * (i + 1);
-
- nCyclesDone[1] += ZetRun(nSegment - nCyclesDone[1]);
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen / nInterleave;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- BurnYM2151Render(pSoundBuf, nSegmentLength);
- K007232Update(0, pSoundBuf, nSegmentLength);
- nSoundBufferPos += nSegmentLength;
- }
- }
-
- if (K051960_irq_enabled) konamiSetIrqLine(KONAMI_IRQ_LINE, CPU_IRQSTATUS_AUTO);
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
- if (nSegmentLength) {
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- BurnYM2151Render(pSoundBuf, nSegmentLength);
- K007232Update(0, pSoundBuf, nSegmentLength);
- }
- }
-
- konamiClose();
- ZetClose();
-
- if (pBurnDraw) {
- DrvDraw();
- }
-
- return 0;
-}
-
-static INT32 DrvScan(INT32 nAction,INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin) {
- *pnMin = 0x029704;
- }
-
- if (nAction & ACB_VOLATILE) {
- memset(&ba, 0, sizeof(ba));
-
- ba.Data = AllRam;
- ba.nLen = RamEnd - AllRam;
- ba.szName = "All Ram";
- BurnAcb(&ba);
-
- konamiCpuScan(nAction);
- ZetScan(nAction);
-
- BurnYM2151Scan(nAction);
- K007232Scan(nAction, pnMin);
-
- KonamiICScan(nAction);
- }
-
- if (nAction & ACB_WRITE) {
- konamiOpen(0);
- set_ram_bank(nDrvRamBank[0]);
- aliens_set_lines(nDrvKonamiBank[0]);
- konamiClose();
- }
-
- return 0;
-}
-
-
-// Aliens (World set 1)
-
-static struct BurnRomInfo aliensRomDesc[] = {
- { "875_j02.e24", 0x10000, 0x56c20971, 1 | BRF_PRG | BRF_ESS }, // 0 Konami CPU Code
- { "875_j01.c24", 0x20000, 0x6a529cd6, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "875_b03.g04", 0x08000, 0x1ac4d283, 2 | BRF_PRG | BRF_ESS }, // 2 Z80 Code
-
- { "875b11.k13", 0x80000, 0x89c5c885, 3 | BRF_GRA }, // 3 Background Tiles
- { "875b12.k19", 0x80000, 0xea6bdc17, 3 | BRF_GRA }, // 4
- { "875b07.j13", 0x40000, 0xe9c56d66, 3 | BRF_GRA }, // 5
- { "875b08.j19", 0x40000, 0xf9387966, 3 | BRF_GRA }, // 6
-
- { "875b10.k08", 0x80000, 0x0b1035b1, 4 | BRF_GRA }, // 7 Sprites
- { "875b09.k02", 0x80000, 0xe76b3c19, 4 | BRF_GRA }, // 8
- { "875b06.j08", 0x40000, 0x081a0566, 4 | BRF_GRA }, // 9
- { "875b05.j02", 0x40000, 0x19a261f2, 4 | BRF_GRA }, // 10
-
- { "875b04.e05", 0x40000, 0x4e209ac8, 5 | BRF_SND }, // 11 K007232 Samples
-
- { "821a08.h14", 0x00100, 0x7da55800, 6 | BRF_OPT }, // 12 Timing Proms
-};
-
-STD_ROM_PICK(aliens)
-STD_ROM_FN(aliens)
-
-struct BurnDriver BurnDrvAliens = {
- "aliens", NULL, NULL, NULL, "1990",
- "Aliens (World set 1)\0", NULL, "Konami", "GX875",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_PREFIX_KONAMI, GBF_PLATFORM | GBF_HORSHOOT, 0,
- NULL, aliensRomInfo, aliensRomName, NULL, NULL, AliensInputInfo, AliensDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x200,
- 288, 224, 4, 3
-};
-
-
-// Aliens (World set 2)
-
-static struct BurnRomInfo aliens2RomDesc[] = {
- { "875_p02.e24", 0x10000, 0x4edd707d, 1 | BRF_PRG | BRF_ESS }, // 0 Konami CPU Code
- { "875_n01.c24", 0x20000, 0x106cf59c, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "875_b03.g04", 0x08000, 0x1ac4d283, 2 | BRF_PRG | BRF_ESS }, // 2 Z80 Code
-
- { "875b11.k13", 0x80000, 0x89c5c885, 3 | BRF_GRA }, // 3 Background Tiles
- { "875b12.k19", 0x80000, 0xea6bdc17, 3 | BRF_GRA }, // 4
- { "875b07.j13", 0x40000, 0xe9c56d66, 3 | BRF_GRA }, // 5
- { "875b08.j19", 0x40000, 0xf9387966, 3 | BRF_GRA }, // 6
-
- { "875b10.k08", 0x80000, 0x0b1035b1, 4 | BRF_GRA }, // 7 Sprites
- { "875b09.k02", 0x80000, 0xe76b3c19, 4 | BRF_GRA }, // 8
- { "875b06.j08", 0x40000, 0x081a0566, 4 | BRF_GRA }, // 9
- { "875b05.j02", 0x40000, 0x19a261f2, 4 | BRF_GRA }, // 10
-
- { "875b04.e05", 0x40000, 0x4e209ac8, 5 | BRF_SND }, // 11 K007232 Samples
-
- { "821a08.h14", 0x00100, 0x7da55800, 6 | BRF_OPT }, // 12 Timing Proms
-};
-
-STD_ROM_PICK(aliens2)
-STD_ROM_FN(aliens2)
-
-struct BurnDriver BurnDrvAliens2 = {
- "aliens2", "aliens", NULL, NULL, "1990",
- "Aliens (World set 2)\0", NULL, "Konami", "GX875",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_KONAMI, GBF_PLATFORM | GBF_HORSHOOT, 0,
- NULL, aliens2RomInfo, aliens2RomName, NULL, NULL, AliensInputInfo, AliensDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x200,
- 288, 224, 4, 3
-};
-
-
-// Aliens (World set 3)
-
-static struct BurnRomInfo aliens3RomDesc[] = {
- { "875_w3_2.e24", 0x10000, 0xf917f7b5, 1 | BRF_PRG | BRF_ESS }, // 0 Konami CPU Code
- { "875_w3_1.c24", 0x20000, 0x3c0006fb, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "875_b03.g04", 0x08000, 0x1ac4d283, 2 | BRF_PRG | BRF_ESS }, // 2 Z80 Code
-
- { "875b11.k13", 0x80000, 0x89c5c885, 3 | BRF_GRA }, // 3 Background Tiles
- { "875b12.k19", 0x80000, 0xea6bdc17, 3 | BRF_GRA }, // 4
- { "875b07.j13", 0x40000, 0xe9c56d66, 3 | BRF_GRA }, // 5
- { "875b08.j19", 0x40000, 0xf9387966, 3 | BRF_GRA }, // 6
-
- { "875b10.k08", 0x80000, 0x0b1035b1, 4 | BRF_GRA }, // 7 Sprites
- { "875b09.k02", 0x80000, 0xe76b3c19, 4 | BRF_GRA }, // 8
- { "875b06.j08", 0x40000, 0x081a0566, 4 | BRF_GRA }, // 9
- { "875b05.j02", 0x40000, 0x19a261f2, 4 | BRF_GRA }, // 10
-
- { "875b04.e05", 0x40000, 0x4e209ac8, 5 | BRF_SND }, // 11 K007232 Samples
-
- { "821a08.h14", 0x00100, 0x7da55800, 6 | BRF_OPT }, // 12 Timing Proms
-};
-
-STD_ROM_PICK(aliens3)
-STD_ROM_FN(aliens3)
-
-struct BurnDriver BurnDrvAliens3 = {
- "aliens3", "aliens", NULL, NULL, "1990",
- "Aliens (World set 3)\0", NULL, "Konami", "GX875",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_KONAMI, GBF_PLATFORM | GBF_HORSHOOT, 0,
- NULL, aliens3RomInfo, aliens3RomName, NULL, NULL, AliensInputInfo, AliensDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x200,
- 288, 224, 4, 3
-};
-
-
-// Aliens (US)
-
-static struct BurnRomInfo aliensuRomDesc[] = {
- { "875_n02.e24", 0x10000, 0x24dd612e, 1 | BRF_PRG | BRF_ESS }, // 0 Konami CPU Code
- { "875_n01.c24", 0x20000, 0x106cf59c, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "875_b03.g04", 0x08000, 0x1ac4d283, 2 | BRF_PRG | BRF_ESS }, // 2 Z80 Code
-
- { "875b11.k13", 0x80000, 0x89c5c885, 3 | BRF_GRA }, // 3 Background Tiles
- { "875b12.k19", 0x80000, 0xea6bdc17, 3 | BRF_GRA }, // 4
- { "875b07.j13", 0x40000, 0xe9c56d66, 3 | BRF_GRA }, // 5
- { "875b08.j19", 0x40000, 0xf9387966, 3 | BRF_GRA }, // 6
-
- { "875b10.k08", 0x80000, 0x0b1035b1, 4 | BRF_GRA }, // 7 Sprites
- { "875b09.k02", 0x80000, 0xe76b3c19, 4 | BRF_GRA }, // 8
- { "875b06.j08", 0x40000, 0x081a0566, 4 | BRF_GRA }, // 9
- { "875b05.j02", 0x40000, 0x19a261f2, 4 | BRF_GRA }, // 10
-
- { "875b04.e05", 0x40000, 0x4e209ac8, 5 | BRF_SND }, // 11 K007232 Samples
-
- { "821a08.h14", 0x00100, 0x7da55800, 6 | BRF_OPT }, // 12 Timing Proms
-};
-
-STD_ROM_PICK(aliensu)
-STD_ROM_FN(aliensu)
-
-struct BurnDriver BurnDrvAliensu = {
- "aliensu", "aliens", NULL, NULL, "1990",
- "Aliens (US)\0", NULL, "Konami", "GX875",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_KONAMI, GBF_PLATFORM | GBF_HORSHOOT, 0,
- NULL, aliensuRomInfo, aliensuRomName, NULL, NULL, AliensInputInfo, AliensDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x200,
- 288, 224, 4, 3
-};
-
-
-// Aliens (Japan set 1)
-
-static struct BurnRomInfo aliensjRomDesc[] = {
- { "875_m02.e24", 0x10000, 0x54a774e5, 1 | BRF_PRG | BRF_ESS }, // 0 Konami CPU Code
- { "875_m01.c24", 0x20000, 0x1663d3dc, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "875_k03.g04", 0x08000, 0xbd86264d, 2 | BRF_PRG | BRF_ESS }, // 2 Z80 Code
-
- { "875b11.k13", 0x80000, 0x89c5c885, 3 | BRF_GRA }, // 3 Background Tiles
- { "875b12.k19", 0x80000, 0xea6bdc17, 3 | BRF_GRA }, // 4
- { "875b07.j13", 0x40000, 0xe9c56d66, 3 | BRF_GRA }, // 5
- { "875b08.j19", 0x40000, 0xf9387966, 3 | BRF_GRA }, // 6
-
- { "875b10.k08", 0x80000, 0x0b1035b1, 4 | BRF_GRA }, // 7 Sprites
- { "875b09.k02", 0x80000, 0xe76b3c19, 4 | BRF_GRA }, // 8
- { "875b06.j08", 0x40000, 0x081a0566, 4 | BRF_GRA }, // 9
- { "875b05.j02", 0x40000, 0x19a261f2, 4 | BRF_GRA }, // 10
-
- { "875b04.e05", 0x40000, 0x4e209ac8, 5 | BRF_SND }, // 11 K007232 Samples
-
- { "821a08.h14", 0x00100, 0x7da55800, 6 | BRF_OPT }, // 12 Timing Proms
-};
-
-STD_ROM_PICK(aliensj)
-STD_ROM_FN(aliensj)
-
-struct BurnDriver BurnDrvAliensj = {
- "aliensj", "aliens", NULL, NULL, "1990",
- "Aliens (Japan set 1)\0", NULL, "Konami", "GX875",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_KONAMI, GBF_PLATFORM | GBF_HORSHOOT, 0,
- NULL, aliensjRomInfo, aliensjRomName, NULL, NULL, AliensInputInfo, AliensDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x200,
- 288, 224, 4, 3
-};
-
-
-// Aliens (Japan set 2)
-
-static struct BurnRomInfo aliensj2RomDesc[] = {
- { "875_j2_2.e24", 0x10000, 0x4bb84952, 1 | BRF_PRG | BRF_ESS }, // 0 Konami CPU Code
- { "875_m01.c24", 0x20000, 0x1663d3dc, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "875_k03.g04", 0x08000, 0xbd86264d, 2 | BRF_PRG | BRF_ESS }, // 2 Z80 Code
-
- { "875b11.k13", 0x80000, 0x89c5c885, 3 | BRF_GRA }, // 3 Background Tiles
- { "875b12.k19", 0x80000, 0xea6bdc17, 3 | BRF_GRA }, // 4
- { "875b07.j13", 0x40000, 0xe9c56d66, 3 | BRF_GRA }, // 5
- { "875b08.j19", 0x40000, 0xf9387966, 3 | BRF_GRA }, // 6
-
- { "875b10.k08", 0x80000, 0x0b1035b1, 4 | BRF_GRA }, // 7 Sprites
- { "875b09.k02", 0x80000, 0xe76b3c19, 4 | BRF_GRA }, // 8
- { "875b06.j08", 0x40000, 0x081a0566, 4 | BRF_GRA }, // 9
- { "875b05.j02", 0x40000, 0x19a261f2, 4 | BRF_GRA }, // 10
-
- { "875b04.e05", 0x40000, 0x4e209ac8, 5 | BRF_SND }, // 11 K007232 Samples
-
- { "821a08.h14", 0x00100, 0x7da55800, 6 | BRF_OPT }, // 12 Timing Proms
-};
-
-STD_ROM_PICK(aliensj2)
-STD_ROM_FN(aliensj2)
-
-struct BurnDriver BurnDrvAliensj2 = {
- "aliensj2", "aliens", NULL, NULL, "1990",
- "Aliens (Japan set 2)\0", NULL, "Konami", "GX875",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_KONAMI, GBF_PLATFORM | GBF_HORSHOOT, 0,
- NULL, aliensj2RomInfo, aliensj2RomName, NULL, NULL, AliensInputInfo, AliensDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x200,
- 288, 224, 4, 3
-};
-
-
-// Aliens (Asia)
-
-static struct BurnRomInfo aliensaRomDesc[] = {
- { "875_r02.e24", 0x10000, 0x973e4f11, 1 | BRF_PRG | BRF_ESS }, // 0 Konami CPU Code
- { "875_m01.c24", 0x20000, 0x1663d3dc, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "875_k03.g04", 0x08000, 0xbd86264d, 2 | BRF_PRG | BRF_ESS }, // 2 Z80 Code
-
- { "875b11.k13", 0x80000, 0x89c5c885, 3 | BRF_GRA }, // 3 Background Tiles
- { "875b12.k19", 0x80000, 0xea6bdc17, 3 | BRF_GRA }, // 4
- { "875b07.j13", 0x40000, 0xe9c56d66, 3 | BRF_GRA }, // 5
- { "875b08.j19", 0x40000, 0xf9387966, 3 | BRF_GRA }, // 6
-
- { "875b10.k08", 0x80000, 0x0b1035b1, 4 | BRF_GRA }, // 7 Sprites
- { "875b09.k02", 0x80000, 0xe76b3c19, 4 | BRF_GRA }, // 8
- { "875b06.j08", 0x40000, 0x081a0566, 4 | BRF_GRA }, // 9
- { "875b05.j02", 0x40000, 0x19a261f2, 4 | BRF_GRA }, // 10
-
- { "875b04.e05", 0x40000, 0x4e209ac8, 5 | BRF_SND }, // 11 K007232 Samples
-
- { "821a08.h14", 0x00100, 0x7da55800, 6 | BRF_OPT }, // 12 Timing Proms
-};
-
-STD_ROM_PICK(aliensa)
-STD_ROM_FN(aliensa)
-
-struct BurnDriver BurnDrvAliensa = {
- "aliensa", "aliens", NULL, NULL, "1990",
- "Aliens (Asia)\0", NULL, "Konami", "GX875",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_KONAMI, GBF_PLATFORM | GBF_HORSHOOT, 0,
- NULL, aliensaRomInfo, aliensaRomName, NULL, NULL, AliensInputInfo, AliensDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x200,
- 288, 224, 4, 3
-};
diff --git a/jan/src/burn/drv/konami/d_asterix.cpp b/jan/src/burn/drv/konami/d_asterix.cpp
deleted file mode 100644
index a0f282b04..000000000
--- a/jan/src/burn/drv/konami/d_asterix.cpp
+++ /dev/null
@@ -1,905 +0,0 @@
-// FB Alpha Asterix driver module
-// Based on MAME driver by Olivier Galibert
-
-#include "tiles_generic.h"
-#include "m68000_intf.h"
-#include "z80_intf.h"
-#include "burn_ym2151.h"
-#include "konamiic.h"
-#include "k053260.h"
-#include "eeprom.h"
-
-static UINT8 *AllMem;
-static UINT8 *Drv68KROM;
-static UINT8 *DrvZ80ROM;
-static UINT8 *DrvGfxROM0;
-static UINT8 *DrvGfxROM1;
-static UINT8 *DrvGfxROMExp0;
-static UINT8 *DrvGfxROMExp1;
-static UINT8 *DrvSndROM;
-static UINT8 *DrvEeprom;
-static UINT8 *AllRam;
-static UINT8 *Drv68KRAM0;
-static UINT8 *Drv68KRAM1;
-static UINT8 *DrvZ80RAM;
-static UINT8 *DrvPalRAM;
-static UINT8 *RamEnd;
-static UINT8 *MemEnd;
-
-static UINT32 *DrvPalette;
-static UINT8 DrvRecalc;
-
-static UINT16 spritebank;
-
-static INT32 layerpri[3];
-static INT32 layer_colorbase[4];
-static INT32 spritebanks[4];
-static INT32 sprite_colorbase;
-static UINT32 tilebanks[4];
-
-static UINT8 DrvJoy1[16];
-static UINT8 DrvJoy2[16];
-static UINT8 DrvReset;
-static UINT16 DrvInputs[2];
-static UINT8 DrvDips[1];
-
-static INT32 nCyclesDone[2];
-
-static UINT16 prot[2];
-
-static struct BurnInputInfo AsterixInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy1 + 8, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 7, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy1 + 2, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy1 + 3, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy1 + 0, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy1 + 1, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy1 + 4, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy1 + 5, "p1 fire 2" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy1 + 9, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy2 + 7, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvJoy2 + 2, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy2 + 3, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy2 + 0, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy2 + 1, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy2 + 4, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy2 + 5, "p2 fire 2" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service", BIT_DIGITAL, DrvJoy1 + 10, "service" },
- {"Dip", BIT_DIPSWITCH, DrvDips + 0, "dip" },
-};
-
-STDINPUTINFO(Asterix)
-
-static struct BurnDIPInfo AsterixDIPList[]=
-{
- {0x12, 0xff, 0xff, 0x04, NULL },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x12, 0x01, 0x04, 0x04, "Off" },
- {0x12, 0x01, 0x04, 0x00, "On" },
-};
-
-STDDIPINFO(Asterix)
-
-static void protection_write(UINT8 offset, UINT16 data)
-{
- offset = (offset / 2) & 1;
-
- prot[offset] = data;
-
- if (offset == 1)
- {
- UINT32 cmd = (prot[0] << 16) | prot[1];
-
- switch (cmd >> 24)
- {
- case 0x64:
- {
- UINT32 param1 = (SekReadWord((cmd & 0xffffff) + 0) << 16) | SekReadWord((cmd & 0xffffff) + 2);
- UINT32 param2 = (SekReadWord((cmd & 0xffffff) + 4) << 16) | SekReadWord((cmd & 0xffffff) + 6);
-
- switch (param1 >> 24)
- {
- case 0x22:
- {
- int size = param2 >> 24;
- param1 &= 0xffffff;
- param2 &= 0xffffff;
- while(size >= 0)
- {
- SekWriteWord(param2, SekReadWord(param1));
- param1 += 2;
- param2 += 2;
- size--;
- }
- break;
- }
- }
- break;
- }
- }
- }
-}
-
-static void reset_spritebank()
-{
- K053244BankSelect(0, spritebank & 7);
-
- spritebanks[0] = (spritebank << 12) & 0x7000;
- spritebanks[1] = (spritebank << 9) & 0x7000;
- spritebanks[2] = (spritebank << 6) & 0x7000;
- spritebanks[3] = (spritebank << 3) & 0x7000;
-}
-
-static void __fastcall asterix_main_write_word(UINT32 address, UINT16 data)
-{
-//bprintf (0, _T("WW %5.5x, %4.4x\n"), address, data);
-
- if ((address & 0xfff000) == 0x400000) {
- K056832HalfRamWriteWord(address & 0xfff, data);
- return;
- }
-
- if ((address & 0xfffff0) == 0x200000) {
- K053244Write(0, (address & 0xe) + 0, data >> 8);
- K053244Write(0, (address & 0xe) + 1, data & 0xff);
- return;
- }
-
- if ((address & 0xffffe0) == 0x300000) {
- K053244Write(0, (address & 0xe) / 2, data & 0xff);
- return;
- }
-
- if ((address & 0xfffff8) == 0x380700) {
- return; // regsb
- }
-
- if ((address & 0xffffc0) == 0x440000) {
- K056832WordWrite(address & 0x3e, data);
- return;
- }
-
- switch (address)
- {
- case 0x380100:
- EEPROMWrite((data & 0x04), (data & 0x02), (data & 0x01));
- K056832SetTileBank((data & 0x20) >> 5);
- return;
-
- case 0x380400:
- spritebank = data;
- reset_spritebank();
- return;
-
- case 0x380600:
- case 0x380601:
- return; // nop
-
- case 0x380800:
- case 0x380802:
- protection_write(address, data);
- return;
- }
-}
-
-static void __fastcall asterix_main_write_byte(UINT32 address, UINT8 data)
-{
- if ((address & 0xfff000) == 0x400000) {
- K056832HalfRamWriteByte(address & 0xfff, data);
- return;
- }
-
- if ((address & 0xfffff0) == 0x200000) {
- K053244Write(0, address & 0xf, data);
- return;
- }
-
- if ((address & 0xffffe1) == 0x300001) {
- K053244Write(0, (address & 0xe) / 2, data);
- return;
- }
-
- if ((address & 0xffffe1) == 0x380501) {
- K053251Write((address / 2) & 0xf, data);
- return;
- }
-
- if ((address & 0xfffff8) == 0x380700) {
- return; // regsb
- }
-
- if ((address & 0xffffc0) == 0x440000) {
- K056832ByteWrite(address & 0x3f, data);
- return;
- }
-
- switch (address)
- {
- case 0x380101:
- EEPROMWrite((data & 0x04), (data & 0x02), (data & 0x01));
- K056832SetTileBank((data & 0x20) >> 5);
- return;
-
- case 0x380201:
- case 0x380203:
- K053260Write(0, (address / 2) & 1, data);
- return;
-
- case 0x380301:
- ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
- return;
-
- case 0x380601:
- return; // nop
- }
-}
-
-static UINT16 __fastcall asterix_main_read_word(UINT32 address)
-{
- if ((address & 0xfffff0) == 0x200000) {
- return (K053244Read(0, address & 0xe) << 8) | K053244Read(0, (address & 0xe) + 1);
- }
-
- if ((address & 0xffffe0) == 0x300000) {
- return K053244Read(0, (address & 0xe)/2);
- }
-
- if ((address & 0xfff000) == 0x400000) {
- return K056832HalfRamReadWord(address & 0xfff);
- }
-
- if ((address & 0xffe000) == 0x420000) {
- return K056832RomWordRead(address);
- }
-
- switch (address)
- {
- case 0x380000:
- return DrvInputs[0];
-
- case 0x380002:
- return (DrvInputs[1] & ~0xf900) | (EEPROMRead() ? 0x100 : 0);
- }
-
- return 0;
-}
-
-static UINT8 __fastcall asterix_main_read_byte(UINT32 address)
-{
- if ((address & 0xfffff0) == 0x200000) {
- return K053244Read(0, address & 0xf);
- }
-
- if ((address & 0xffffe0) == 0x300000) {
- return K053244Read(0, (address & 0xe)/2);
- }
-
- if ((address & 0xfff000) == 0x400000) {
- return K056832HalfRamReadByte(address & 0xfff);
- }
-
- if ((address & 0xffe000) == 0x420000) {
- return K056832RomWordRead(address) >> ((~address & 1) * 8);
- }
-
- switch (address)
- {
- case 0x380000:
- return DrvInputs[0] >> 8;
-
- case 0x380001:
- return DrvInputs[0];
-
- case 0x380002:
- return ((DrvInputs[1] >> 8) & 0x06) | (EEPROMRead() ? 0x01 : 0);
-
- case 0x380003:
- return DrvInputs[1];
-
- case 0x380201:
- case 0x380203:
- return K053260Read(0, ((address / 2) & 1) + 2);
-
- case 0x380600:
- case 0x380601:
- return 0; // nop
- }
-
- return 0;
-}
-
-static void __fastcall asterix_sound_write(UINT16 address, UINT8 data)
-{
- switch (address)
- {
- case 0xf801:
- BurnYM2151WriteRegister(data);
- return;
-
- case 0xfc00:
- nCyclesDone[1] += ZetRun(100);
- ZetNmi();
- return;
-
- case 0xfe00:
- BurnYM2151SelectRegister(data);
- return;
- }
-
- if (address >= 0xfa00 && address <= 0xfa2f) {
- K053260Write(0, address & 0x3f, data);
- }
-}
-
-static UINT8 __fastcall asterix_sound_read(UINT16 address)
-{
- switch (address)
- {
- case 0xf801:
- return BurnYM2151ReadStatus();
- }
-
- if (address >= 0xfa00 && address <= 0xfa2f) {
- if ((address & 0x3e) == 0x00) ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
-
- return K053260Read(0, address & 0x3f);
- }
-
- return 0;
-}
-static void asterix_sprite_callback(INT32 *code, INT32 *color, INT32 *priority)
-{
- INT32 pri = (*color & 0x00e0) >> 2;
- if (pri <= layerpri[2]) *priority = 0;
- else if (pri > layerpri[2] && pri <= layerpri[1]) *priority = 0xf0;
- else if (pri > layerpri[1] && pri <= layerpri[0]) *priority = 0xfc;
- else *priority = 0xfe;
- *color = sprite_colorbase | (*color & 0x001f);
- *code = (*code & 0xfff) | spritebanks[(*code >> 12) & 3];
-}
-
-static void asterix_tile_callback(INT32 layer, INT32 *code, INT32 *color, INT32 *flags)
-{
- *flags = (*code & 0x1000) ? 1 : 0;
-
- *color = (layer_colorbase[layer] + ((*code & 0xe000) >> 13)) & 0x7f;
- *code = (*code & 0x03ff) | tilebanks[(*code >> 10) & 3];
-}
-
-static const eeprom_interface asterix_eeprom_interface =
-{
- 7,
- 8,
- "111000",
- "111100",
- "1100100000000",
- "1100000000000",
- "1100110000000",
- 0,
- 0
-};
-
-static INT32 DrvDoReset()
-{
- memset (AllRam, 0, RamEnd - AllRam);
-
- SekOpen(0);
- SekReset();
- SekClose();
-
- ZetOpen(0);
- ZetReset();
- ZetClose();
-
- EEPROMReset();
-
- if (EEPROMAvailable() == 0) {
- EEPROMFill(DrvEeprom, 0, 128);
- }
-
- KonamiICReset();
-
- BurnYM2151Reset();
- K053260Reset(0);
-
- return 0;
-}
-
-static INT32 MemIndex()
-{
- UINT8 *Next; Next = AllMem;
-
- Drv68KROM = Next; Next += 0x100000;
- DrvZ80ROM = Next; Next += 0x010000;
-
- DrvGfxROM0 = Next; Next += 0x100000;
- DrvGfxROMExp0 = Next; Next += 0x200000;
- DrvGfxROM1 = Next; Next += 0x400000;
- DrvGfxROMExp1 = Next; Next += 0x800000;
-
- DrvSndROM = Next; Next += 0x200000;
-
- DrvEeprom = Next; Next += 0x000080;
-
- konami_palette32 = (UINT32*)Next;
- DrvPalette = (UINT32*)Next; Next += 0x800 * sizeof(UINT32);
-
- AllRam = Next;
-
- Drv68KRAM0 = Next; Next += 0x008000;
- Drv68KRAM1 = Next; Next += 0x000800;
-
- DrvZ80RAM = Next; Next += 0x000800;
-
- DrvPalRAM = Next; Next += 0x001000;
-
- RamEnd = Next;
- MemEnd = Next;
-
- return 0;
-}
-
-static INT32 DrvGfxDecode()
-{
- INT32 Plane1[4] = { STEP4(24, -8) };
- INT32 XOffs1[16] = { STEP8(0,1), STEP8(256,1) };
- INT32 YOffs1[16] = { STEP8(0,32), STEP8(512,32) };
-
- K053247GfxDecode(DrvGfxROM0, DrvGfxROMExp0, 0x100000);
-
- GfxDecode(0x8000, 4, 16, 16, Plane1, XOffs1, YOffs1, 128*8, DrvGfxROM1, DrvGfxROMExp1);
-
- return 0;
-}
-
-static INT32 DrvInit()
-{
- GenericTilesInit();
-
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(Drv68KROM + 0x000001, 0, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x000000, 1, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x080001, 2, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x080000, 3, 2)) return 1;
-
- if (BurnLoadRom(DrvZ80ROM + 0x000000, 4, 1)) return 1;
-
- if (BurnLoadRomExt(DrvGfxROM0 + 0x000000, 5, 4, 2)) return 1;
- if (BurnLoadRomExt(DrvGfxROM0 + 0x000002, 6, 4, 2)) return 1;
-
- if (BurnLoadRomExt(DrvGfxROM1 + 0x000000, 7, 4, 2)) return 1;
- if (BurnLoadRomExt(DrvGfxROM1 + 0x000002, 8, 4, 2)) return 1;
-
- if (BurnLoadRom(DrvSndROM + 0x000000, 9, 1)) return 1;
-
- if (BurnLoadRom(DrvEeprom + 0x000000, 10, 1)) return 1;
-
- DrvGfxDecode();
- }
-
- K056832Init(DrvGfxROM0, DrvGfxROMExp0, 0x100000, asterix_tile_callback);
- K056832SetGlobalOffsets(112, 16);
-
- K053245Init(0, DrvGfxROM1, DrvGfxROMExp1, 0x3fffff, asterix_sprite_callback);
- K053245SetSpriteOffset(0, -115, 15);
-
- SekInit(0, 0x68000);
- SekOpen(0);
- SekMapMemory(Drv68KROM, 0x000000, 0x0fffff, MAP_ROM);
- SekMapMemory(Drv68KRAM0, 0x100000, 0x107fff, MAP_RAM);
- SekMapMemory(K053245Ram[0], 0x180000, 0x1807ff, MAP_RAM);
- SekMapMemory(Drv68KRAM1, 0x180800, 0x180fff, MAP_RAM);
- SekMapMemory(DrvPalRAM, 0x280000, 0x280fff, MAP_RAM);
- SekSetWriteWordHandler(0, asterix_main_write_word);
- SekSetWriteByteHandler(0, asterix_main_write_byte);
- SekSetReadWordHandler(0, asterix_main_read_word);
- SekSetReadByteHandler(0, asterix_main_read_byte);
- SekClose();
-
- ZetInit(0);
- ZetOpen(0);
- ZetMapMemory(DrvZ80ROM, 0x0000, 0xefff, MAP_ROM);
- ZetMapMemory(DrvZ80RAM, 0xf000, 0xf7ff, MAP_RAM);
- ZetSetWriteHandler(asterix_sound_write);
- ZetSetReadHandler(asterix_sound_read);
- ZetClose();
-
- EEPROMInit(&asterix_eeprom_interface);
-
- BurnYM2151Init(4000000);
- BurnYM2151SetRoute(BURN_SND_YM2151_YM2151_ROUTE_1, 1.00, BURN_SND_ROUTE_LEFT);
- BurnYM2151SetRoute(BURN_SND_YM2151_YM2151_ROUTE_2, 1.00, BURN_SND_ROUTE_RIGHT);
-
- K053260Init(0, 4000000, DrvSndROM, 0x200000);
- K053260SetRoute(0, BURN_SND_K053260_ROUTE_1, 0.75, BURN_SND_ROUTE_LEFT);
- K053260SetRoute(0, BURN_SND_K053260_ROUTE_2, 0.75, BURN_SND_ROUTE_RIGHT);
-
- DrvDoReset();
-
- return 0;
-}
-
-static INT32 DrvExit()
-{
- GenericTilesExit();
-
- KonamiICExit();
-
- SekExit();
- ZetExit();
-
- EEPROMExit();
-
- BurnYM2151Exit();
- K053260Exit();
-
- BurnFree (AllMem);
-
- return 0;
-}
-
-static void DrvPaletteRecalc()
-{
- UINT16 *pal = (UINT16*)DrvPalRAM;
-
- for (INT32 i = 0; i < 0x1000/2; i++)
- {
- INT32 r = (pal[i] & 0x1f);
- INT32 g = (pal[i] >> 5) & 0x1f;
- INT32 b = (pal[i] >> 10) & 0x1f;
-
- r = (r << 3) | (r >> 2);
- g = (g << 3) | (g >> 2);
- b = (b << 3) | (b >> 2);
-
- DrvPalette[i] = (r << 16) + (g << 8) + b;
- }
-}
-
-static INT32 DrvDraw()
-{
- DrvPaletteRecalc();
-
- INT32 layer[3];
-
- tilebanks[0] = (K056832GetLookup(0) << 10);
- tilebanks[1] = (K056832GetLookup(1) << 10);
- tilebanks[2] = (K056832GetLookup(2) << 10);
- tilebanks[3] = (K056832GetLookup(3) << 10);
-
- layer_colorbase[0] = K053251GetPaletteIndex(0);
- layer_colorbase[1] = K053251GetPaletteIndex(2);
- layer_colorbase[2] = K053251GetPaletteIndex(3);
- layer_colorbase[3] = K053251GetPaletteIndex(4);
-
- sprite_colorbase = K053251GetPaletteIndex(1);
-
- KonamiClearBitmaps(DrvPalette[0]);
-
- if (K056832ReadRegister(0) & 0x10)
- {
- K056832SetLayerOffsets(0, 89 - 176, 0);
- K056832SetLayerOffsets(1, 91 - 176, 0);
- K056832SetLayerOffsets(2, 89 - 176, 0);
- K056832SetLayerOffsets(3, 95 - 176, 0);
- }
- else
- {
- K056832SetLayerOffsets(0, 89, 0);
- K056832SetLayerOffsets(1, 91, 0);
- K056832SetLayerOffsets(2, 89, 0);
- K056832SetLayerOffsets(3, 95, 0);
- }
-
- layer[0] = 0;
- layerpri[0] = K053251GetPriority(0);
- layer[1] = 1;
- layerpri[1] = K053251GetPriority(2);
- layer[2] = 3;
- layerpri[2] = K053251GetPriority(4);
-
- konami_sortlayers3(layer, layerpri);
-
- if (nBurnLayer & 1) K056832Draw(layer[0], K056832_DRAW_FLAG_MIRROR, 1);
- if (nBurnLayer & 2) K056832Draw(layer[1], K056832_DRAW_FLAG_MIRROR, 2);
- if (nBurnLayer & 4) K056832Draw(layer[2], K056832_DRAW_FLAG_MIRROR, 4);
-
- if (nSpriteEnable & 1) K053245SpritesRender(0);
-
- if (nBurnLayer & 8) K056832Draw(2, K056832_DRAW_FLAG_MIRROR, 0);
-
- KonamiBlendCopy(DrvPalette);
-
- return 0;
-}
-
-static INT32 DrvFrame()
-{
- if (DrvReset) {
- DrvDoReset();
- }
-
- {
- DrvInputs[0] = 0x07ff;
- DrvInputs[1] = ((DrvDips[0] & 0x04) << 8) | 0x02ff;
- for (INT32 i = 0; i < 16; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- }
- }
-
- INT32 nInterleave = nBurnSoundLen;
- INT32 nSoundBufferPos = 0;
- INT32 nCyclesTotal[2] = { 12000000 / 60, 8000000 / 60 };
- nCyclesDone[0] = nCyclesDone[1] = 0;
-
- SekOpen(0);
- ZetOpen(0);
-
- for (INT32 i = 0; i < nInterleave; i++) {
- INT32 nNext, nCyclesSegment;
-
- nNext = (i + 1) * nCyclesTotal[0] / nInterleave;
- nCyclesSegment = nNext - nCyclesDone[0];
- nCyclesSegment = SekRun(nCyclesSegment);
- nCyclesDone[0] += nCyclesSegment;
-
- nNext = (i + 1) * nCyclesTotal[1] / nInterleave;
- nCyclesSegment = nNext - nCyclesDone[1];
- nCyclesSegment = ZetRun(nCyclesSegment);
- nCyclesDone[1] += nCyclesSegment;
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen / nInterleave;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- BurnYM2151Render(pSoundBuf, nSegmentLength);
- K053260Update(0, pSoundBuf, nSegmentLength);
- nSoundBufferPos += nSegmentLength;
- }
- }
-
- if (K056832IsIrqEnabled()) SekSetIRQLine(5, CPU_IRQSTATUS_AUTO);
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- if (nSegmentLength) {
- BurnYM2151Render(pSoundBuf, nSegmentLength);
- K053260Update(0, pSoundBuf, nSegmentLength);
- }
- }
-
- ZetClose();
- SekClose();
-
- if (pBurnDraw) {
- DrvDraw();
- }
-
- return 0;
-}
-
-static INT32 DrvScan(INT32 nAction,INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin) {
- *pnMin = 0x029732;
- }
-
- if (nAction & ACB_VOLATILE) {
- memset(&ba, 0, sizeof(ba));
-
- ba.Data = AllRam;
- ba.nLen = RamEnd - AllRam;
- ba.szName = "All Ram";
- BurnAcb(&ba);
-
- SekScan(nAction);
- ZetScan(nAction);
-
- BurnYM2151Scan(nAction);
- K053260Scan(nAction);
-
- KonamiICScan(nAction);
-
- SCAN_VAR(prot[0]);
- SCAN_VAR(prot[1]);
-
- SCAN_VAR(spritebank);
- }
-
- if (nAction & ACB_WRITE) {
- reset_spritebank();
- }
-
- EEPROMScan(nAction, pnMin);
-
- return 0;
-}
-
-
-// Asterix (ver EAD)
-
-static struct BurnRomInfo asterixRomDesc[] = {
- { "068_ea_d01.8c", 0x020000, 0x61d6621d, 1 | BRF_PRG | BRF_ESS }, // 0 68K Code
- { "068_ea_d02.8d", 0x020000, 0x53aac057, 1 | BRF_PRG | BRF_ESS }, // 1
- { "068a03.7c", 0x020000, 0x8223ebdc, 1 | BRF_PRG | BRF_ESS }, // 2
- { "068a04.7d", 0x020000, 0x9f351828, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "068_a05.5f", 0x010000, 0xd3d0d77b, 2 | BRF_PRG | BRF_ESS }, // 4 Z80 Code
-
- { "068a12.16k", 0x080000, 0xb9da8e9c, 3 | BRF_GRA }, // 5 K056832 Characters
- { "068a11.12k", 0x080000, 0x7eb07a81, 3 | BRF_GRA }, // 6
-
- { "068a08.7k", 0x200000, 0xc41278fe, 4 | BRF_GRA }, // 7 K053245 Sprites
- { "068a07.3k", 0x200000, 0x32efdbc4, 4 | BRF_GRA }, // 8
-
- { "068a06.1e", 0x200000, 0x6df9ec0e, 5 | BRF_SND }, // 9 K053260 Samples
-
- { "asterix.nv", 0x000080, 0x490085c8, 6 | BRF_OPT }, // 10 eeprom data
-};
-
-STD_ROM_PICK(asterix)
-STD_ROM_FN(asterix)
-
-struct BurnDriver BurnDrvAsterix = {
- "asterix", NULL, NULL, NULL, "1992",
- "Asterix (ver EAD)\0", NULL, "Konami", "GX068",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_PREFIX_KONAMI, GBF_SCRFIGHT, 0,
- NULL, asterixRomInfo, asterixRomName, NULL, NULL, AsterixInputInfo, AsterixDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 288, 224, 4, 3
-};
-
-
-// Asterix (ver EAC)
-
-static struct BurnRomInfo asterixeacRomDesc[] = {
- { "068_ea_c01.8c", 0x020000, 0x0ccd1feb, 1 | BRF_PRG | BRF_ESS }, // 0 68K Code
- { "068_ea_c02.8d", 0x020000, 0xb0805f47, 1 | BRF_PRG | BRF_ESS }, // 1
- { "068a03.7c", 0x020000, 0x8223ebdc, 1 | BRF_PRG | BRF_ESS }, // 2
- { "068a04.7d", 0x020000, 0x9f351828, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "068_a05.5f", 0x010000, 0xd3d0d77b, 2 | BRF_PRG | BRF_ESS }, // 4 Z80 Code
-
- { "068a12.16k", 0x080000, 0xb9da8e9c, 3 | BRF_GRA }, // 5 K056832 Characters
- { "068a11.12k", 0x080000, 0x7eb07a81, 3 | BRF_GRA }, // 6
-
- { "068a08.7k", 0x200000, 0xc41278fe, 4 | BRF_GRA }, // 7 K053245 Sprites
- { "068a07.3k", 0x200000, 0x32efdbc4, 4 | BRF_GRA }, // 8
-
- { "068a06.1e", 0x200000, 0x6df9ec0e, 5 | BRF_SND }, // 9 K053260 Samples
-
- { "asterixeac.nv", 0x000080, 0x490085c8, 6 | BRF_OPT }, // 10 eeprom data
-};
-
-STD_ROM_PICK(asterixeac)
-STD_ROM_FN(asterixeac)
-
-struct BurnDriver BurnDrvAsterixeac = {
- "asterixeac", "asterix", NULL, NULL, "1992",
- "Asterix (ver EAC)\0", NULL, "Konami", "GX068",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_KONAMI, GBF_SCRFIGHT, 0,
- NULL, asterixeacRomInfo, asterixeacRomName, NULL, NULL, AsterixInputInfo, AsterixDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 288, 224, 4, 3
-};
-
-
-// Asterix (ver EAA)
-
-static struct BurnRomInfo asterixeaaRomDesc[] = {
- { "068_ea_a01.8c", 0x020000, 0x85b41d8e, 1 | BRF_PRG | BRF_ESS }, // 0 68K Code
- { "068_ea_a02.8d", 0x020000, 0x8e886305, 1 | BRF_PRG | BRF_ESS }, // 1
- { "068a03.7c", 0x020000, 0x8223ebdc, 1 | BRF_PRG | BRF_ESS }, // 2
- { "068a04.7d", 0x020000, 0x9f351828, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "068_a05.5f", 0x010000, 0xd3d0d77b, 2 | BRF_PRG | BRF_ESS }, // 4 Z80 Code
-
- { "068a12.16k", 0x080000, 0xb9da8e9c, 3 | BRF_GRA }, // 5 K056832 Characters
- { "068a11.12k", 0x080000, 0x7eb07a81, 3 | BRF_GRA }, // 6
-
- { "068a08.7k", 0x200000, 0xc41278fe, 4 | BRF_GRA }, // 7 K053245 Sprites
- { "068a07.3k", 0x200000, 0x32efdbc4, 4 | BRF_GRA }, // 8
-
- { "068a06.1e", 0x200000, 0x6df9ec0e, 5 | BRF_SND }, // 9 K053260 Samples
-
- { "asterixeaa.nv", 0x000080, 0x30275de0, 6 | BRF_OPT }, // 10 eeprom data
-};
-
-STD_ROM_PICK(asterixeaa)
-STD_ROM_FN(asterixeaa)
-
-struct BurnDriver BurnDrvAsterixeaa = {
- "asterixeaa", "asterix", NULL, NULL, "1992",
- "Asterix (ver EAA)\0", NULL, "Konami", "GX068",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_KONAMI, GBF_SCRFIGHT, 0,
- NULL, asterixeaaRomInfo, asterixeaaRomName, NULL, NULL, AsterixInputInfo, AsterixDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 288, 224, 4, 3
-};
-
-
-// Asterix (ver AAD)
-
-static struct BurnRomInfo asterixaadRomDesc[] = {
- { "068_aa_d01.8c", 0x020000, 0x3fae5f1f, 1 | BRF_PRG | BRF_ESS }, // 0 68K Code
- { "068_aa_d02.8d", 0x020000, 0x171f0ba0, 1 | BRF_PRG | BRF_ESS }, // 1
- { "068a03.7c", 0x020000, 0x8223ebdc, 1 | BRF_PRG | BRF_ESS }, // 2
- { "068a04.7d", 0x020000, 0x9f351828, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "068_a05.5f", 0x010000, 0xd3d0d77b, 2 | BRF_PRG | BRF_ESS }, // 4 Z80 Code
-
- { "068a12.16k", 0x080000, 0xb9da8e9c, 3 | BRF_GRA }, // 5 K056832 Characters
- { "068a11.12k", 0x080000, 0x7eb07a81, 3 | BRF_GRA }, // 6
-
- { "068a08.7k", 0x200000, 0xc41278fe, 4 | BRF_GRA }, // 7 K053245 Sprites
- { "068a07.3k", 0x200000, 0x32efdbc4, 4 | BRF_GRA }, // 8
-
- { "068a06.1e", 0x200000, 0x6df9ec0e, 5 | BRF_SND }, // 9 K053260 Samples
-
- { "asterixaad.nv", 0x000080, 0xbcca86a7, 6 | BRF_OPT }, // 10 eeprom data
-};
-
-STD_ROM_PICK(asterixaad)
-STD_ROM_FN(asterixaad)
-
-struct BurnDriver BurnDrvAsterixaad = {
- "asterixaad", "asterix", NULL, NULL, "1992",
- "Asterix (ver AAD)\0", NULL, "Konami", "GX068",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_KONAMI, GBF_SCRFIGHT, 0,
- NULL, asterixaadRomInfo, asterixaadRomName, NULL, NULL, AsterixInputInfo, AsterixDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 288, 224, 4, 3
-};
-
-
-// Asterix (ver JAD)
-
-static struct BurnRomInfo asterixjRomDesc[] = {
- { "068_ja_d01.8c", 0x020000, 0x2bc10940, 1 | BRF_PRG | BRF_ESS }, // 0 68K Code
- { "068_ja_d02.8d", 0x020000, 0xde438300, 1 | BRF_PRG | BRF_ESS }, // 1
- { "068a03.7c", 0x020000, 0x8223ebdc, 1 | BRF_PRG | BRF_ESS }, // 2
- { "068a04.7d", 0x020000, 0x9f351828, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "068_a05.5f", 0x010000, 0xd3d0d77b, 2 | BRF_PRG | BRF_ESS }, // 4 Z80 Code
-
- { "068a12.16k", 0x080000, 0xb9da8e9c, 3 | BRF_GRA }, // 5 K056832 Characters
- { "068a11.12k", 0x080000, 0x7eb07a81, 3 | BRF_GRA }, // 6
-
- { "068a08.7k", 0x200000, 0xc41278fe, 4 | BRF_GRA }, // 7 K053245 Sprites
- { "068a07.3k", 0x200000, 0x32efdbc4, 4 | BRF_GRA }, // 8
-
- { "068a06.1e", 0x200000, 0x6df9ec0e, 5 | BRF_SND }, // 9 K053260 Samples
-
- { "asterixj.nv", 0x000080, 0x84229f2c, 6 | BRF_OPT }, // 10 eeprom data
-};
-
-STD_ROM_PICK(asterixj)
-STD_ROM_FN(asterixj)
-
-struct BurnDriver BurnDrvAsterixj = {
- "asterixj", "asterix", NULL, NULL, "1992",
- "Asterix (ver JAD)\0", NULL, "Konami", "GX068",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_KONAMI, GBF_SCRFIGHT, 0,
- NULL, asterixjRomInfo, asterixjRomName, NULL, NULL, AsterixInputInfo, AsterixDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 288, 224, 4, 3
-};
diff --git a/jan/src/burn/drv/konami/d_battlnts.cpp b/jan/src/burn/drv/konami/d_battlnts.cpp
deleted file mode 100644
index 45673a0ae..000000000
--- a/jan/src/burn/drv/konami/d_battlnts.cpp
+++ /dev/null
@@ -1,775 +0,0 @@
-// FB Alpha Battlantis driver module
-// Based on MAME driver by Manuel Abadia
-
-#include "tiles_generic.h"
-#include "hd6309_intf.h"
-#include "z80_intf.h"
-#include "k007342_k007420.h"
-#include "burn_ym3812.h"
-
-static UINT8 *AllMem;
-static UINT8 *MemEnd;
-static UINT8 *AllRam;
-static UINT8 *RamEnd;
-static UINT8 *DrvHD6309ROM;
-static UINT8 *DrvZ80ROM;
-static UINT8 *DrvGfxROM0;
-static UINT8 *DrvGfxROM1;
-
-static UINT32 *DrvPalette;
-static UINT8 DrvRecalc;
-
-static UINT8 *DrvZ80RAM;
-static UINT8 *DrvPalRAM;
-
-static UINT8 HD6309Bank;
-static UINT8 soundlatch;
-static INT32 spritebank;
-
-static UINT8 DrvJoy1[8];
-static UINT8 DrvJoy2[8];
-static UINT8 DrvJoy3[8];
-static UINT8 DrvDips[4];
-static UINT8 DrvReset;
-
-static UINT8 DrvInputs[3];
-
-static INT32 watchdog;
-
-static struct BurnInputInfo DrvInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy3 + 0, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy3 + 3, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy1 + 2, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy1 + 3, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy1 + 0, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy1 + 1, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy1 + 4, "p1 fire 1" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy3 + 1, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy3 + 4, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvJoy2 + 2, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy2 + 3, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy2 + 0, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy2 + 1, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy2 + 4, "p2 fire 1" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service", BIT_DIGITAL, DrvJoy3 + 2, "service" },
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip" },
- {"Dip C", BIT_DIPSWITCH, DrvDips + 2, "dip" },
- {"Dip D", BIT_DIPSWITCH, DrvDips + 3, "dip" },
-};
-
-STDINPUTINFO(Drv)
-
-static struct BurnDIPInfo BattlntsDIPList[]=
-{
- {0x10, 0xff, 0xff, 0x00, NULL },
- {0x11, 0xff, 0xff, 0xe0, NULL },
- {0x12, 0xff, 0xff, 0xff, NULL },
- {0x13, 0xff, 0xff, 0x5a, NULL },
-
- {0 , 0xfe, 0 , 2, "Allow Continue" },
- {0x10, 0x01, 0x80, 0x80, "3 Times" },
- {0x10, 0x01, 0x80, 0x00, "5 Times" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x11, 0x01, 0x20, 0x20, "Off" },
- {0x11, 0x01, 0x20, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Upright Controls" },
- {0x11, 0x01, 0x40, 0x40, "Single" },
- {0x11, 0x01, 0x40, 0x00, "Dual" },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x11, 0x01, 0x80, 0x80, "Off" },
- {0x11, 0x01, 0x80, 0x00, "On" },
-
- {0 , 0xfe, 0 , 16, "Free Play" },
- {0x12, 0x01, 0x0f, 0x02, "4 Coins 1 Credits" },
- {0x12, 0x01, 0x0f, 0x05, "3 Coins 1 Credits" },
- {0x12, 0x01, 0x0f, 0x08, "2 Coins 1 Credits" },
- {0x12, 0x01, 0x0f, 0x04, "3 Coins 2 Credits" },
- {0x12, 0x01, 0x0f, 0x01, "4 Coins 3 Credits" },
- {0x12, 0x01, 0x0f, 0x0f, "1 Coin 1 Credits" },
- {0x12, 0x01, 0x0f, 0x03, "3 Coins 4 Credits" },
- {0x12, 0x01, 0x0f, 0x07, "2 Coins 3 Credits" },
- {0x12, 0x01, 0x0f, 0x0e, "1 Coin 2 Credits" },
- {0x12, 0x01, 0x0f, 0x06, "2 Coins 5 Credits" },
- {0x12, 0x01, 0x0f, 0x0d, "1 Coin 3 Credits" },
- {0x12, 0x01, 0x0f, 0x0c, "1 Coin 4 Credits" },
- {0x12, 0x01, 0x0f, 0x0b, "1 Coin 5 Credits" },
- {0x12, 0x01, 0x0f, 0x0a, "1 Coin 6 Credits" },
- {0x12, 0x01, 0x0f, 0x09, "1 Coin 7 Credits" },
- {0x12, 0x01, 0x0f, 0x00, ":1,2,3,4" },
-
- {0 , 0xfe, 0 , 16, "Coin B" },
- {0x12, 0x01, 0xf0, 0x20, "4 Coins 1 Credits" },
- {0x12, 0x01, 0xf0, 0x50, "3 Coins 1 Credits" },
- {0x12, 0x01, 0xf0, 0x80, "2 Coins 1 Credits" },
- {0x12, 0x01, 0xf0, 0x40, "3 Coins 2 Credits" },
- {0x12, 0x01, 0xf0, 0x10, "4 Coins 3 Credits" },
- {0x12, 0x01, 0xf0, 0xf0, "1 Coin 1 Credits" },
- {0x12, 0x01, 0xf0, 0x30, "3 Coins 4 Credits" },
- {0x12, 0x01, 0xf0, 0x70, "2 Coins 3 Credits" },
- {0x12, 0x01, 0xf0, 0xe0, "1 Coin 2 Credits" },
- {0x12, 0x01, 0xf0, 0x60, "2 Coins 5 Credits" },
- {0x12, 0x01, 0xf0, 0xd0, "1 Coin 3 Credits" },
- {0x12, 0x01, 0xf0, 0xc0, "1 Coin 4 Credits" },
- {0x12, 0x01, 0xf0, 0xb0, "1 Coin 5 Credits" },
- {0x12, 0x01, 0xf0, 0xa0, "1 Coin 6 Credits" },
- {0x12, 0x01, 0xf0, 0x90, "1 Coin 7 Credits" },
- {0x12, 0x01, 0xf0, 0x00, "No Coin B" },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x13, 0x01, 0x03, 0x03, "2" },
- {0x13, 0x01, 0x03, 0x02, "3" },
- {0x13, 0x01, 0x03, 0x01, "5" },
- {0x13, 0x01, 0x03, 0x00, "7" },
-
- {0 , 0xfe, 0 , 2, "Cabinet" },
- {0x13, 0x01, 0x04, 0x00, "Upright" },
- {0x13, 0x01, 0x04, 0x04, "Cocktail" },
-
- {0 , 0xfe, 0 , 4, "Bonus Life" },
- {0x13, 0x01, 0x18, 0x18, "30k And Every 70k" },
- {0x13, 0x01, 0x18, 0x10, "40k And Every 80k" },
- {0x13, 0x01, 0x18, 0x08, "40k" },
- {0x13, 0x01, 0x18, 0x00, "50k" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x13, 0x01, 0x60, 0x60, "Easy" },
- {0x13, 0x01, 0x60, 0x40, "Normal" },
- {0x13, 0x01, 0x60, 0x20, "Difficult" },
- {0x13, 0x01, 0x60, 0x00, "Very Difficult" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x13, 0x01, 0x80, 0x80, "Off" },
- {0x13, 0x01, 0x80, 0x00, "On" },
-};
-
-STDDIPINFO(Battlnts)
-
-static struct BurnDIPInfo RackemupDIPList[]=
-{
- {0x10, 0xff, 0xff, 0x00, NULL },
- {0x11, 0xff, 0xff, 0xe0, NULL },
- {0x12, 0xff, 0xff, 0xff, NULL },
- {0x13, 0xff, 0xff, 0x52, NULL },
-
- {0 , 0xfe, 0 , 2, "Allow Continue" },
- {0x10, 0x01, 0x80, 0x80, "3 Times" },
- {0x10, 0x01, 0x80, 0x00, "5 Times" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x11, 0x01, 0x20, 0x20, "Off" },
- {0x11, 0x01, 0x20, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Upright Controls" },
- {0x11, 0x01, 0x40, 0x40, "Single" },
- {0x11, 0x01, 0x40, 0x00, "Dual" },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x11, 0x01, 0x80, 0x80, "Off" },
- {0x11, 0x01, 0x80, 0x00, "On" },
-
- {0 , 0xfe, 0 , 16, "Free Play" },
- {0x12, 0x01, 0x0f, 0x02, "4 Coins 1 Credits" },
- {0x12, 0x01, 0x0f, 0x05, "3 Coins 1 Credits" },
- {0x12, 0x01, 0x0f, 0x08, "2 Coins 1 Credits" },
- {0x12, 0x01, 0x0f, 0x04, "3 Coins 2 Credits" },
- {0x12, 0x01, 0x0f, 0x01, "4 Coins 3 Credits" },
- {0x12, 0x01, 0x0f, 0x0f, "1 Coin 1 Credits" },
- {0x12, 0x01, 0x0f, 0x03, "3 Coins 4 Credits" },
- {0x12, 0x01, 0x0f, 0x07, "2 Coins 3 Credits" },
- {0x12, 0x01, 0x0f, 0x0e, "1 Coin 2 Credits" },
- {0x12, 0x01, 0x0f, 0x06, "2 Coins 5 Credits" },
- {0x12, 0x01, 0x0f, 0x0d, "1 Coin 3 Credits" },
- {0x12, 0x01, 0x0f, 0x0c, "1 Coin 4 Credits" },
- {0x12, 0x01, 0x0f, 0x0b, "1 Coin 5 Credits" },
- {0x12, 0x01, 0x0f, 0x0a, "1 Coin 6 Credits" },
- {0x12, 0x01, 0x0f, 0x09, "1 Coin 7 Credits" },
- {0x12, 0x01, 0x0f, 0x00, ":1,2,3,4" },
-
- {0 , 0xfe, 0 , 16, "Coin B" },
- {0x12, 0x01, 0xf0, 0x20, "4 Coins 1 Credits" },
- {0x12, 0x01, 0xf0, 0x50, "3 Coins 1 Credits" },
- {0x12, 0x01, 0xf0, 0x80, "2 Coins 1 Credits" },
- {0x12, 0x01, 0xf0, 0x40, "3 Coins 2 Credits" },
- {0x12, 0x01, 0xf0, 0x10, "4 Coins 3 Credits" },
- {0x12, 0x01, 0xf0, 0xf0, "1 Coin 1 Credits" },
- {0x12, 0x01, 0xf0, 0x30, "3 Coins 4 Credits" },
- {0x12, 0x01, 0xf0, 0x70, "2 Coins 3 Credits" },
- {0x12, 0x01, 0xf0, 0xe0, "1 Coin 2 Credits" },
- {0x12, 0x01, 0xf0, 0x60, "2 Coins 5 Credits" },
- {0x12, 0x01, 0xf0, 0xd0, "1 Coin 3 Credits" },
- {0x12, 0x01, 0xf0, 0xc0, "1 Coin 4 Credits" },
- {0x12, 0x01, 0xf0, 0xb0, "1 Coin 5 Credits" },
- {0x12, 0x01, 0xf0, 0xa0, "1 Coin 6 Credits" },
- {0x12, 0x01, 0xf0, 0x90, "1 Coin 7 Credits" },
- {0x12, 0x01, 0xf0, 0x00, "No Coin B" },
-
- {0 , 0xfe, 0 , 4, "Balls" },
- {0x13, 0x01, 0x03, 0x03, "2" },
- {0x13, 0x01, 0x03, 0x02, "3" },
- {0x13, 0x01, 0x03, 0x01, "4" },
- {0x13, 0x01, 0x03, 0x00, "7" },
-
- {0 , 0xfe, 0 , 2, "Cabinet" },
- {0x13, 0x01, 0x04, 0x00, "Upright" },
- {0x13, 0x01, 0x04, 0x04, "Cocktail" },
-
- {0 , 0xfe, 0 , 4, "Time To Aim" },
- {0x13, 0x01, 0x18, 0x18, "25s (Stage 1: 30s)" },
- {0x13, 0x01, 0x18, 0x10, "20s (Stage 1: 25s)" },
- {0x13, 0x01, 0x18, 0x08, "17s (Stage 1: 22s)" },
- {0x13, 0x01, 0x18, 0x00, "15s (Stage 1: 20s)" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x13, 0x01, 0x60, 0x60, "Easy" },
- {0x13, 0x01, 0x60, 0x40, "Normal" },
- {0x13, 0x01, 0x60, 0x20, "Difficult" },
- {0x13, 0x01, 0x60, 0x00, "Very Difficult" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x13, 0x01, 0x80, 0x80, "Off" },
- {0x13, 0x01, 0x80, 0x00, "On" },
-};
-
-STDDIPINFO(Rackemup)
-
-static void bankswitch(INT32 bank)
-{
- HD6309Bank = bank;
- HD6309MapMemory(DrvHD6309ROM + 0x10000 + ((bank >> 6) * 0x4000), 0x4000, 0x7fff, MAP_ROM);
-}
-
-static void battlnts_main_write(UINT16 address, UINT8 data)
-{
- if ((address & 0xfff8) == 0x2600) {
- K007342Regs[0][address & 7] = data;
- return;
- }
-
- switch (address)
- {
- case 0x2e08:
- bankswitch(data);
- return;
-
- case 0x2e0c:
- spritebank = (data & 0x01) * 0x400;
- return;
-
- case 0x2e10:
- watchdog = 0;
- return;
-
- case 0x2e14:
- soundlatch = data;
- return;
-
- case 0x2e18:
- ZetSetVector(0xff);
- ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
- return;
- }
-}
-
-static UINT8 battlnts_main_read(UINT16 address)
-{
- switch (address)
- {
- case 0x2e00:
- return DrvDips[2];
-
- case 0x2e01:
- return DrvInputs[1];
-
- case 0x2e02:
- return (DrvInputs[0] & 0x7f) | (DrvDips[0] & 0x80);
-
- case 0x2e03:
- return (DrvInputs[2] & 0x1f) | (DrvDips[1] & 0xe0);
-
- case 0x2e04:
- return DrvDips[3];
- }
-
- return 0;
-}
-
-static void __fastcall battlnts_sound_write(UINT16 address, UINT8 data)
-{
- switch (address)
- {
- case 0xa000:
- case 0xa001:
- BurnYM3812Write(0, address & 1, data);
- return;
-
- case 0xc000:
- case 0xc001:
- BurnYM3812Write(1, address & 1, data);
- return;
- }
-}
-
-static UINT8 __fastcall battlnts_sound_read(UINT16 address)
-{
- switch (address)
- {
- case 0xa000:
- case 0xa001:
- return BurnYM3812Read(0, address & 1);
-
- case 0xc000:
- case 0xc001:
- return BurnYM3812Read(1, address & 1);
-
- case 0xe000:
- ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
- return soundlatch;
- }
-
- return 0;
-}
-
-static void battlnts_tile_callback(INT32 /*layer*/, INT32 /*bank*/, INT32 *code, INT32 *color, INT32 */*flags*/)
-{
- *code |= ((*color & 0x0f) << 9) | ((*color & 0x40) << 2);
- *color = 0;
-}
-
-static void battlnts_sprite_callback(INT32 *code, INT32 *color)
-{
- *code |= ((*color & 0xc0) << 2) | spritebank;
- *code = (*code << 2) | ((*color & 0x30) >> 4);
- *color = 4;
-}
-
-static INT32 DrvSynchroniseStream(INT32 nSoundRate)
-{
- return (INT64)ZetTotalCycles() * nSoundRate / 4000000;
-}
-
-static INT32 DrvDoReset(INT32 clear_ram)
-{
- if (clear_ram) {
- memset (AllRam, 0, RamEnd - AllRam);
- }
-
- HD6309Open(0);
- HD6309Reset();
- HD6309Close();
-
- ZetOpen(0);
- ZetReset();
- BurnYM3812Reset();
- ZetClose();
-
- HD6309Bank = 0;
- soundlatch = 0;
- spritebank = 0;
-
- return 0;
-}
-
-static INT32 MemIndex()
-{
- UINT8 *Next; Next = AllMem;
-
- DrvHD6309ROM = Next; Next += 0x020000;
- DrvZ80ROM = Next; Next += 0x008000;
-
- DrvGfxROM0 = Next; Next += 0x080000;
- DrvGfxROM1 = Next; Next += 0x080000;
-
- DrvPalette = (UINT32*)Next; Next += 0x80 * sizeof(UINT32);
-
- AllRam = Next;
-
- DrvZ80RAM = Next; Next += 0x000800;
- DrvPalRAM = Next; Next += 0x000100;
-
- K007342VidRAM[0] = Next; Next += 0x002000;
- K007342ScrRAM[0] = Next; Next += 0x000200;
-
- K007420RAM[0] = Next; Next += 0x000200;
-
- RamEnd = Next;
- MemEnd = Next;
-
- return 0;
-}
-
-static void DrvGfxExpand(UINT8 *src, INT32 len)
-{
- for (INT32 i = (len - 1) * 2; i >= 0; i-=2) {
- src[i+0] = src[i/2] >> 4;
- src[i+1] = src[i/2] & 0xf;
- }
-}
-
-static INT32 DrvInit()
-{
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(DrvHD6309ROM + 0x08000, 0, 1)) return 1;
- if (BurnLoadRom(DrvHD6309ROM + 0x10000, 1, 1)) return 1;
-
- if (BurnLoadRom(DrvZ80ROM + 0x00000, 2, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x00000, 3, 1)) return 1;
- BurnByteswap(DrvGfxROM0, 0x40000);
-
- if (BurnLoadRom(DrvGfxROM1 + 0x00000, 4, 1)) return 1;
-
- DrvGfxExpand(DrvGfxROM0, 0x40000);
- DrvGfxExpand(DrvGfxROM1, 0x40000);
- }
-
- HD6309Init(0);
- HD6309Open(0);
- HD6309MapMemory(K007342VidRAM[0], 0x0000, 0x1fff, MAP_RAM);
- HD6309MapMemory(K007420RAM[0], 0x2000, 0x21ff, MAP_RAM);
- HD6309MapMemory(K007342ScrRAM[0], 0x2200, 0x23ff, MAP_RAM);
- HD6309MapMemory(DrvPalRAM, 0x2400, 0x24ff, MAP_RAM);
- HD6309MapMemory(DrvHD6309ROM + 0x08000, 0x8000, 0xffff, MAP_ROM);
- HD6309SetWriteHandler(battlnts_main_write);
- HD6309SetReadHandler(battlnts_main_read);
- HD6309Close();
-
- ZetInit(0);
- ZetOpen(0);
- ZetMapMemory(DrvZ80ROM, 0x0000, 0x7fff, MAP_ROM);
- ZetMapMemory(DrvZ80RAM, 0x8000, 0x87ff, MAP_RAM);
- ZetSetWriteHandler(battlnts_sound_write);
- ZetSetReadHandler(battlnts_sound_read);
- ZetClose();
-
- K007342Init(DrvGfxROM0, battlnts_tile_callback);
- K007342SetOffsets(0, 16);
-
- K007420Init(0x3ff, battlnts_sprite_callback);
- K007420SetOffsets(0, 16);
-
- BurnYM3812Init(2, 3000000, NULL, &DrvSynchroniseStream, 0);
- BurnTimerAttachZetYM3812(4000000);
- BurnYM3812SetRoute(0, BURN_SND_YM3812_ROUTE, 1.00, BURN_SND_ROUTE_BOTH);
- BurnYM3812SetRoute(1, BURN_SND_YM3812_ROUTE, 1.00, BURN_SND_ROUTE_BOTH);
-
- GenericTilesInit();
-
- DrvDoReset(1);
-
- return 0;
-}
-
-static INT32 DrvExit()
-{
- GenericTilesExit();
-
- ZetExit();
- HD6309Exit();
-
- BurnYM3812Exit();
-
- BurnFree (AllMem);
-
- return 0;
-}
-
-static void DrvPaletteInit()
-{
- UINT16 *pal = (UINT16*)DrvPalRAM;
-
- for (INT32 i = 0; i < 0x100 / 2; i++) {
- UINT16 p = (pal[i] << 8) | (pal[i] >> 8);
- INT32 r = (p & 0x1f);
- INT32 g = (p >> 5) & 0x1f;
- INT32 b = (p >> 10) & 0x1f;
-
- r = (r << 3) | (r >> 2);
- g = (g << 3) | (g >> 2);
- b = (b << 3) | (b >> 2);
-
- DrvPalette[i] = BurnHighCol(r,g,b,0);
- }
-}
-
-static INT32 DrvDraw()
-{
- if (DrvRecalc) {
- DrvPaletteInit();
- DrvRecalc = 1;
- }
-
- if (~nBurnLayer & 1) BurnTransferClear();
-
- if (nBurnLayer & 1) K007342DrawLayer(0, 0 | K007342_OPAQUE, 0);
- if (nSpriteEnable & 1) K007420DrawSprites(DrvGfxROM1);
- if (nBurnLayer & 2) K007342DrawLayer(0, 1 | K007342_OPAQUE, 0);
-
- BurnTransferCopy(DrvPalette);
-
- return 0;
-}
-
-static INT32 DrvFrame()
-{
- watchdog++;
- if (DrvReset) {
- DrvDoReset(0);
- }
-
- if (DrvReset) {
- DrvDoReset(1);
- }
-
- ZetNewFrame();
-
- {
- memset (DrvInputs, 0xff, 3);
- for (INT32 i = 0; i < 8; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- DrvInputs[2] ^= (DrvJoy3[i] & 1) << i;
- }
- }
-
- INT32 nInterleave = 256;
- INT32 nCyclesTotal[2] = { 12000000 / 4 / 60, 4000000 / 60 }; // hd6309 has internal divider
-
- HD6309Open(0);
- ZetOpen(0);
-
- for (INT32 i = 0; i < nInterleave; i++) {
-
- HD6309Run(nCyclesTotal[0] / nInterleave);
-
- if (i == 248 && K007342_irq_enabled()) HD6309SetIRQLine(0, CPU_IRQSTATUS_AUTO);
-
- BurnTimerUpdateYM3812((i + 1) * (nCyclesTotal[1] / nInterleave));
- }
-
- BurnTimerEndFrameYM3812(nCyclesTotal[1]);
-
- if (pBurnSoundOut) {
- BurnYM3812Update(pBurnSoundOut, nBurnSoundLen);
- }
-
- HD6309Close();
- ZetClose();
-
- if (pBurnDraw) {
- DrvDraw();
- }
-
- return 0;
-}
-
-static INT32 DrvScan(INT32 nAction,INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin) {
- *pnMin = 0x029704;
- }
-
- if (nAction & ACB_VOLATILE) {
- memset(&ba, 0, sizeof(ba));
- ba.Data = AllRam;
- ba.nLen = RamEnd - AllRam;
- ba.szName = "All RAM";
- BurnAcb(&ba);
- }
-
- if (nAction & ACB_DRIVER_DATA) {
- HD6309Scan(nAction);
- ZetScan(nAction);
-
- BurnYM3812Scan(nAction, pnMin);
-
- SCAN_VAR(HD6309Bank);
- SCAN_VAR(soundlatch);
- SCAN_VAR(spritebank);
- }
-
- if (nAction & ACB_WRITE) {
- HD6309Open(0);
- bankswitch(HD6309Bank);
- HD6309Close();
- }
-
- return 0;
-}
-
-
-// Battlantis (program code G)
-
-static struct BurnRomInfo battlntsRomDesc[] = {
- { "777_g02.7e", 0x08000, 0xdbd8e17e, 1 }, // 0 HD6309 Code
- { "777_g03.8e", 0x10000, 0x7bd44fef, 1 }, // 1
-
- { "777_c01.10a", 0x08000, 0xc21206e9, 2 }, // 2 Z80 Code
-
- { "777c04.13a", 0x40000, 0x45d92347, 3 }, // 3 Tiles
-
- { "777c05.13e", 0x40000, 0xaeee778c, 4 }, // 4 Sprites
-};
-
-STD_ROM_PICK(battlnts)
-STD_ROM_FN(battlnts)
-
-struct BurnDriver BurnDrvBattlnts = {
- "battlnts", NULL, NULL, NULL, "1987",
- "Battlantis (program code G)\0", NULL, "Konami", "GX777",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED, 2, HARDWARE_PREFIX_KONAMI, GBF_MISC, 0,
- NULL, battlntsRomInfo, battlntsRomName, NULL, NULL, DrvInputInfo, BattlntsDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x80,
- 224, 256, 3, 4
-};
-
-
-// Battlantis (program code F)
-
-static struct BurnRomInfo battlntsaRomDesc[] = {
- { "777_f02.7e", 0x08000, 0x9f1dc5c1, 1 }, // 0 HD6309 Code
- { "777_f03.8e", 0x10000, 0x040d00bf, 1 }, // 1
-
- { "777_c01.10a", 0x08000, 0xc21206e9, 2 }, // 2 Z80 Code
-
- { "777c04.13a", 0x40000, 0x45d92347, 3 }, // 3 Tiles
-
- { "777c05.13e", 0x40000, 0xaeee778c, 4 }, // 4 Sprites
-};
-
-STD_ROM_PICK(battlntsa)
-STD_ROM_FN(battlntsa)
-
-struct BurnDriver BurnDrvBattlntsa = {
- "battlntsa", "battlnts", NULL, NULL, "1987",
- "Battlantis (program code F)\0", NULL, "Konami", "GX777",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED, 2, HARDWARE_PREFIX_KONAMI, GBF_MISC, 0,
- NULL, battlntsaRomInfo, battlntsaRomName, NULL, NULL, DrvInputInfo, BattlntsDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x80,
- 224, 256, 3, 4
-};
-
-
-// Battlantis (Japan, program code E)
-
-static struct BurnRomInfo battlntsjRomDesc[] = {
- { "777_e02.7e", 0x08000, 0xd631cfcb, 1 }, // 0 HD6309 Code
- { "777_e03.8e", 0x10000, 0x5ef1f4ef, 1 }, // 1
-
- { "777_c01.10a", 0x08000, 0xc21206e9, 2 }, // 2 Z80 Code
-
- { "777c04.13a", 0x40000, 0x45d92347, 3 }, // 3 Tiles
-
- { "777c05.13e", 0x40000, 0xaeee778c, 4 }, // 4 Sprites
-};
-
-STD_ROM_PICK(battlntsj)
-STD_ROM_FN(battlntsj)
-
-struct BurnDriver BurnDrvBattlntsj = {
- "battlntsj", "battlnts", NULL, NULL, "1987",
- "Battlantis (Japan, program code E)\0", NULL, "Konami", "GX777",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED, 2, HARDWARE_PREFIX_KONAMI, GBF_MISC, 0,
- NULL, battlntsjRomInfo, battlntsjRomName, NULL, NULL, DrvInputInfo, BattlntsDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x80,
- 224, 256, 3, 4
-};
-
-
-// Rack 'em Up (program code L)
-
-static struct BurnRomInfo rackemupRomDesc[] = {
- { "765_l02.7e", 0x08000, 0x3dfc48bd, 1 }, // 0 HD6309 Code
- { "765_j03.8e", 0x10000, 0xa13fd751, 1 }, // 1
-
- { "765_j01.10a", 0x08000, 0x77ae753e, 2 }, // 2 Z80 Code
-
- { "765_l04.13a", 0x40000, 0xd8fb9c64, 3 }, // 3 Tiles
-
- { "765_l05.13e", 0x40000, 0x1bb6855f, 4 }, // 4 Sprites
-};
-
-STD_ROM_PICK(rackemup)
-STD_ROM_FN(rackemup)
-
-struct BurnDriver BurnDrvRackemup = {
- "rackemup", NULL, NULL, NULL, "1987",
- "Rack 'em Up (program code L)\0", NULL, "Konami", "GX765",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED, 2, HARDWARE_PREFIX_KONAMI, GBF_MISC, 0,
- NULL, rackemupRomInfo, rackemupRomName, NULL, NULL, DrvInputInfo, RackemupDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x80,
- 224, 256, 3, 4
-};
-
-
-// The Hustler (Japan, program code M)
-
-static struct BurnRomInfo thehustlRomDesc[] = {
- { "765_m02.7e", 0x08000, 0x934807b9, 1 }, // 0 HD6309 Code
- { "765_j03.8e", 0x10000, 0xa13fd751, 1 }, // 1
-
- { "765_j01.10a", 0x08000, 0x77ae753e, 2 }, // 2 Z80 Code
-
- { "765_e04.13a", 0x40000, 0x08c2b72e, 3 }, // 3 Tiles
-
- { "765_e05.13e", 0x40000, 0xef044655, 4 }, // 4 Sprites
-};
-
-STD_ROM_PICK(thehustl)
-STD_ROM_FN(thehustl)
-
-struct BurnDriver BurnDrvThehustl = {
- "thehustl", "rackemup", NULL, NULL, "1987",
- "The Hustler (Japan, program code M)\0", NULL, "Konami", "GX765",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED, 2, HARDWARE_PREFIX_KONAMI, GBF_MISC, 0,
- NULL, thehustlRomInfo, thehustlRomName, NULL, NULL, DrvInputInfo, RackemupDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x80,
- 224, 256, 3, 4
-};
-
-
-// The Hustler (Japan, program code J)
-
-static struct BurnRomInfo thehustljRomDesc[] = {
- { "765_j02.7e", 0x08000, 0x2ac14c75, 1 }, // 0 HD6309 Code
- { "765_j03.8e", 0x10000, 0xa13fd751, 1 }, // 1
-
- { "765_j01.10a", 0x08000, 0x77ae753e, 2 }, // 2 Z80 Code
-
- { "765_e04.13a", 0x40000, 0x08c2b72e, 3 }, // 3 gfx1
-
- { "765_e05.13e", 0x40000, 0xef044655, 4 }, // 4 gfx2
-};
-
-STD_ROM_PICK(thehustlj)
-STD_ROM_FN(thehustlj)
-
-struct BurnDriver BurnDrvThehustlj = {
- "thehustlj", "rackemup", NULL, NULL, "1987",
- "The Hustler (Japan, program code J)\0", NULL, "Konami", "GX765",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED, 2, HARDWARE_PREFIX_KONAMI, GBF_MISC, 0,
- NULL, thehustljRomInfo, thehustljRomName, NULL, NULL, DrvInputInfo, RackemupDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x80,
- 224, 256, 3, 4
-};
diff --git a/jan/src/burn/drv/konami/d_bishi.cpp b/jan/src/burn/drv/konami/d_bishi.cpp
deleted file mode 100644
index c0d0f7647..000000000
--- a/jan/src/burn/drv/konami/d_bishi.cpp
+++ /dev/null
@@ -1,771 +0,0 @@
-// FB Alpha Bishi Bashi driver module
-// Based on MAME driver by R. Belmont
-
-#include "tiles_generic.h"
-#include "m68000_intf.h"
-#include "konamiic.h"
-#include "ymz280b.h"
-
-static UINT8 *AllMem;
-static UINT8 *Drv68KROM;
-static UINT8 *DrvGfxROM;
-static UINT8 *DrvGfxROMExp;
-static UINT8 *AllRam;
-static UINT8 *Drv68KRAM;
-static UINT8 *DrvPalRAM;
-static UINT8 *RamEnd;
-static UINT8 *MemEnd;
-
-static UINT32 *DrvPalette;
-static UINT8 DrvRecalc;
-
-static INT32 layerpri[4];
-static INT32 layer_colorbase[4];
-
-static UINT8 DrvJoy1[16];
-static UINT8 DrvJoy2[16];
-static UINT8 DrvReset;
-static UINT16 DrvInputs[2];
-static UINT8 DrvDips[3];
-
-static UINT16 control_data = 0;
-static UINT16 control_data2 = 0;
-
-static struct BurnInputInfo BishiInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy1 + 11, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy2 + 11, "p1 start" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy2 + 8, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy2 + 9, "p1 fire 2" },
- {"P1 Button 3", BIT_DIGITAL, DrvJoy2 + 10, "p1 fire 3" },
-
- {"P2 Start", BIT_DIGITAL, DrvJoy2 + 15, "p2 start" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy2 + 12, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy2 + 13, "p2 fire 2" },
- {"P2 Button 3", BIT_DIGITAL, DrvJoy2 + 14, "p2 fire 3" },
-
- {"P3 Start", BIT_DIGITAL, DrvJoy2 + 3, "p3 start" },
- {"P3 Button 1", BIT_DIGITAL, DrvJoy2 + 0, "p3 fire 1" },
- {"P3 Button 2", BIT_DIGITAL, DrvJoy2 + 1, "p3 fire 2" },
- {"P3 Button 3", BIT_DIGITAL, DrvJoy2 + 2, "p3 fire 3" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service", BIT_DIGITAL, DrvJoy2 + 7, "service" },
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip" },
- {"Dip C", BIT_DIPSWITCH, DrvDips + 2, "dip" },
-};
-
-STDINPUTINFO(Bishi)
-
-static struct BurnInputInfo Bishi2pInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy1 + 11, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy2 + 11, "p1 start" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy2 + 8, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy2 + 9, "p1 fire 2" },
- {"P1 Button 3", BIT_DIGITAL, DrvJoy2 + 10, "p1 fire 3" },
-
- {"P2 Start", BIT_DIGITAL, DrvJoy2 + 3, "p2 start" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy2 + 0, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy2 + 1, "p2 fire 2" },
- {"P2 Button 3", BIT_DIGITAL, DrvJoy2 + 2, "p2 fire 3" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service", BIT_DIGITAL, DrvJoy2 + 7, "service" },
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip" },
- {"Dip C", BIT_DIPSWITCH, DrvDips + 2, "dip" },
-};
-
-STDINPUTINFO(Bishi2p)
-
-static struct BurnDIPInfo BishiDIPList[]=
-{
- {0x0f, 0xff, 0xff, 0x40, NULL },
- {0x10, 0xff, 0xff, 0xec, NULL },
- {0x11, 0xff, 0xff, 0x3f, NULL },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x0f, 0x01, 0x40, 0x40, "Off" },
- {0x0f, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 8, "Difficulty" },
- {0x10, 0x01, 0x07, 0x07, "Easiest" },
- {0x10, 0x01, 0x07, 0x06, "Very Easy" },
- {0x10, 0x01, 0x07, 0x05, "Easy" },
- {0x10, 0x01, 0x07, 0x04, "Medium" },
- {0x10, 0x01, 0x07, 0x03, "Medium Hard" },
- {0x10, 0x01, 0x07, 0x02, "Hard" },
- {0x10, 0x01, 0x07, 0x01, "Very Hard" },
- {0x10, 0x01, 0x07, 0x00, "Hardest" },
-
- {0 , 0xfe, 0 , 8, "Lives" },
- {0x10, 0x01, 0x38, 0x38, "1" },
- {0x10, 0x01, 0x38, 0x30, "2" },
- {0x10, 0x01, 0x38, 0x28, "3" },
- {0x10, 0x01, 0x38, 0x20, "4" },
- {0x10, 0x01, 0x38, 0x18, "5" },
- {0x10, 0x01, 0x38, 0x10, "6" },
- {0x10, 0x01, 0x38, 0x08, "7" },
- {0x10, 0x01, 0x38, 0x00, "8" },
-
- {0 , 0xfe, 0 , 4, "Demo Sounds" },
- {0x10, 0x01, 0xc0, 0xc0, "All The Time" },
- {0x10, 0x01, 0xc0, 0x80, "Loop At 2 Times" },
- {0x10, 0x01, 0xc0, 0x40, "Loop At 4 Times" },
- {0x10, 0x01, 0xc0, 0x00, "No Sounds" },
-
- {0 , 0xfe, 0 , 16, "Coinage" },
- {0x11, 0x01, 0x0f, 0x02, "4 Coins 1 Credits" },
- {0x11, 0x01, 0x0f, 0x05, "3 Coins 1 Credits" },
- {0x11, 0x01, 0x0f, 0x08, "2 Coins 1 Credits" },
- {0x11, 0x01, 0x0f, 0x04, "3 Coins 2 Credits" },
- {0x11, 0x01, 0x0f, 0x01, "4 Coins 3 Credits" },
- {0x11, 0x01, 0x0f, 0x0f, "1 Coin 1 Credits" },
- {0x11, 0x01, 0x0f, 0x00, "4 Coins 5 Credits" },
- {0x11, 0x01, 0x0f, 0x03, "3 Coins 4 Credits" },
- {0x11, 0x01, 0x0f, 0x07, "2 Coins 3 Credits" },
- {0x11, 0x01, 0x0f, 0x0e, "1 Coin 2 Credits" },
- {0x11, 0x01, 0x0f, 0x06, "2 Coins 5 Credits" },
- {0x11, 0x01, 0x0f, 0x0d, "1 Coin 3 Credits" },
- {0x11, 0x01, 0x0f, 0x0c, "1 Coin 4 Credits" },
- {0x11, 0x01, 0x0f, 0x0b, "1 Coin 5 Credits" },
- {0x11, 0x01, 0x0f, 0x0a, "1 Coin 6 Credits" },
- {0x11, 0x01, 0x0f, 0x09, "1 Coin 7 Credits" },
-
- {0 , 0xfe, 0 , 2, "Free Play" },
- {0x11, 0x01, 0x10, 0x10, "No" },
- {0x11, 0x01, 0x10, 0x00, "Yes" },
-
- {0 , 0xfe, 0 , 2, "Slack Difficulty" },
- {0x11, 0x01, 0x20, 0x20, "Off" },
- {0x11, 0x01, 0x20, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Title Demo" },
- {0x11, 0x01, 0x40, 0x40, "At 1 Loop" },
- {0x11, 0x01, 0x40, 0x00, "At Every Gamedemo" },
-
- {0 , 0xfe, 0 , 2, "Gamedemo" },
- {0x11, 0x01, 0x80, 0x80, "4 Kinds" },
- {0x11, 0x01, 0x80, 0x00, "7 Kinds" },
-};
-
-STDDIPINFO(Bishi)
-
-static struct BurnDIPInfo Bishi2pDIPList[]=
-{
- {0x0b, 0xff, 0xff, 0x40, NULL },
- {0x0c, 0xff, 0xff, 0xec, NULL },
- {0x0d, 0xff, 0xff, 0x3f, NULL },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x0b, 0x01, 0x40, 0x40, "Off" },
- {0x0b, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 8, "Difficulty" },
- {0x0c, 0x01, 0x07, 0x07, "Easiest" },
- {0x0c, 0x01, 0x07, 0x06, "Very Easy" },
- {0x0c, 0x01, 0x07, 0x05, "Easy" },
- {0x0c, 0x01, 0x07, 0x04, "Medium" },
- {0x0c, 0x01, 0x07, 0x03, "Medium Hard" },
- {0x0c, 0x01, 0x07, 0x02, "Hard" },
- {0x0c, 0x01, 0x07, 0x01, "Very Hard" },
- {0x0c, 0x01, 0x07, 0x00, "Hardest" },
-
- {0 , 0xfe, 0 , 8, "Lives" },
- {0x0c, 0x01, 0x38, 0x38, "1" },
- {0x0c, 0x01, 0x38, 0x30, "2" },
- {0x0c, 0x01, 0x38, 0x28, "3" },
- {0x0c, 0x01, 0x38, 0x20, "4" },
- {0x0c, 0x01, 0x38, 0x18, "5" },
- {0x0c, 0x01, 0x38, 0x10, "6" },
- {0x0c, 0x01, 0x38, 0x08, "7" },
- {0x0c, 0x01, 0x38, 0x00, "8" },
-
- {0 , 0xfe, 0 , 4, "Demo Sounds" },
- {0x0c, 0x01, 0xc0, 0xc0, "All The Time" },
- {0x0c, 0x01, 0xc0, 0x80, "Loop At 2 Times" },
- {0x0c, 0x01, 0xc0, 0x40, "Loop At 4 Times" },
- {0x0c, 0x01, 0xc0, 0x00, "No Sounds" },
-
- {0 , 0xfe, 0 , 16, "Coinage" },
- {0x0d, 0x01, 0x0f, 0x02, "4 Coins 1 Credits" },
- {0x0d, 0x01, 0x0f, 0x05, "3 Coins 1 Credits" },
- {0x0d, 0x01, 0x0f, 0x08, "2 Coins 1 Credits" },
- {0x0d, 0x01, 0x0f, 0x04, "3 Coins 2 Credits" },
- {0x0d, 0x01, 0x0f, 0x01, "4 Coins 3 Credits" },
- {0x0d, 0x01, 0x0f, 0x0f, "1 Coin 1 Credits" },
- {0x0d, 0x01, 0x0f, 0x00, "4 Coins 5 Credits" },
- {0x0d, 0x01, 0x0f, 0x03, "3 Coins 4 Credits" },
- {0x0d, 0x01, 0x0f, 0x07, "2 Coins 3 Credits" },
- {0x0d, 0x01, 0x0f, 0x0e, "1 Coin 2 Credits" },
- {0x0d, 0x01, 0x0f, 0x06, "2 Coins 5 Credits" },
- {0x0d, 0x01, 0x0f, 0x0d, "1 Coin 3 Credits" },
- {0x0d, 0x01, 0x0f, 0x0c, "1 Coin 4 Credits" },
- {0x0d, 0x01, 0x0f, 0x0b, "1 Coin 5 Credits" },
- {0x0d, 0x01, 0x0f, 0x0a, "1 Coin 6 Credits" },
- {0x0d, 0x01, 0x0f, 0x09, "1 Coin 7 Credits" },
-
- {0 , 0xfe, 0 , 2, "Free Play" },
- {0x0d, 0x01, 0x10, 0x10, "No" },
- {0x0d, 0x01, 0x10, 0x00, "Yes" },
-
- {0 , 0xfe, 0 , 2, "Slack Difficulty" },
- {0x0d, 0x01, 0x20, 0x20, "Off" },
- {0x0d, 0x01, 0x20, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Title Demo" },
- {0x0d, 0x01, 0x40, 0x40, "At 1 Loop" },
- {0x0d, 0x01, 0x40, 0x00, "At Every Gamedemo" },
-
- {0 , 0xfe, 0 , 2, "Gamedemo" },
- {0x0d, 0x01, 0x80, 0x80, "4 Kinds" },
- {0x0d, 0x01, 0x80, 0x00, "7 Kinds" },
-};
-
-STDDIPINFO(Bishi2p)
-
-static void __fastcall bishi_write_word(UINT32 address, UINT16 data)
-{
- if ((address & 0xffffc0) == 0x830000) {
- K056832WordWrite(address, data);
- return;
- }
-
- if ((address & 0xfffff8) == 0x840000) {
- return; // regb
- }
-
- if ((address & 0xffffe0) == 0x850000) {
- K054338WriteWord(address, data);
- return;
- }
-
- if ((address & 0xffff00) == 0x870000) {
- K055555WordWrite(address, data);
- return;
- }
-
- if ((address & 0xffe000) == 0xa00000) {
- K056832RamWriteWord(address & 0x1fff, data);
- return;
- }
-
- switch (address)
- {
- case 0x800000:
- control_data = data;
- return;
-
- case 0x810000:
- control_data2 = data;
- return;
-
- case 0x880000:
- case 0x880002:
- YMZ280BWrite((address/2)&1, data);
- return;
- }
-}
-
-static void __fastcall bishi_write_byte(UINT32 address, UINT8 data)
-{
- if ((address & 0xffffc0) == 0x830000) {
- K056832ByteWrite(address, data);
- return;
- }
-
- if ((address & 0xfffff8) == 0x840000) {
- return; // regb
- }
-
- if ((address & 0xffffe0) == 0x850000) {
- K054338WriteByte(address, data);
- return;
- }
-
- if ((address & 0xffff00) == 0x870000) {
- K055555ByteWrite(address, data);
- return;
- }
-
- if ((address & 0xffe000) == 0xa00000) {
- K056832RamWriteByte(address & 0x1fff, data);
- return;
- }
-
- switch (address)
- {
- case 0x800000:
- control_data = (control_data & 0x00ff) | (data << 8);
- return;
-
- case 0x800001:
- control_data = (control_data & 0xff00) | (data << 0);
- return;
-
- case 0x810000:
- case 0x810001:
- control_data2 = data;
- return;
-
- case 0x880000:
- case 0x880002:
- YMZ280BWrite((address/2)&1, data);
- return;
- }
-}
-
-static UINT16 __fastcall bishi_read_word(UINT32 address)
-{
- if ((address & 0xffe000) == 0xa00000) {
- return K056832RamReadWord(address & 0x1fff);
- }
-
- switch (address)
- {
- case 0x800000:
- case 0x800001:
- return control_data;
-
- case 0x800004:
- case 0x800005:
- return (DrvDips[2] << 8) + DrvDips[1];
-
- case 0x800006:
- case 0x800007:
- return DrvInputs[0];
-
- case 0x800008:
- case 0x800009:
- return DrvInputs[1];
-
- case 0x880000:
- case 0x880002:
- return YMZ280BRead((address/2)&1);
- }
-
- return 0;
-}
-
-static UINT8 __fastcall bishi_read_byte(UINT32 address)
-{
- if ((address & 0xffe000) == 0xa00000) {
- return K056832RamReadByte(address & 0x1fff);
- }
-
- switch (address)
- {
- case 0x800000:
- case 0x800001:
- return control_data >> ((~address & 1) * 8);
-
- case 0x800004:
- case 0x800005:
- return DrvDips[(address & 1)+1];
-
- case 0x800006:
- return DrvInputs[0] >> 8;
-
- case 0x800007:
- return DrvInputs[0];
-
- case 0x800008:
- return DrvInputs[1] >> 8;
-
- case 0x800009:
- return DrvInputs[1];
-
- case 0x880000:
- case 0x880001:
- case 0x880002:
- case 0x880003:
- return YMZ280BRead((address/2)&1);
- }
-
- return 0;
-}
-
-static void bishi_tile_callback(INT32 layer, INT32 *code, INT32 *color, INT32 */*flags*/)
-{
- *color = layer_colorbase[layer] + ((*color & 0xf0));
- *code &= 0x7fff;
-}
-
-static void bishi_sound_irq(INT32 status)
-{
- SekSetIRQLine(1, (status) ? CPU_IRQSTATUS_ACK : CPU_IRQSTATUS_NONE);
-}
-
-static INT32 DrvDoReset()
-{
- memset (AllRam, 0, RamEnd - AllRam);
-
- SekOpen(0);
- SekReset();
- SekClose();
-
- KonamiICReset();
-
- YMZ280BReset();
-
- for (INT32 i = 0; i < 4; i++)
- layer_colorbase[i] = i << 6;
-
- return 0;
-}
-
-static INT32 MemIndex()
-{
- UINT8 *Next; Next = AllMem;
-
- Drv68KROM = Next; Next += 0x100000;
-
- DrvGfxROM = Next; Next += 0x200000;
- DrvGfxROMExp = Next; Next += 0x200000;
-
- YMZ280BROM = Next; Next += 0x200000;
-
- konami_palette32 = (UINT32*)Next;
- DrvPalette = (UINT32*)Next; Next += 0x2000 * sizeof(UINT32);
-
- AllRam = Next;
-
- Drv68KRAM = Next; Next += 0x008000;
- DrvPalRAM = Next; Next += 0x004000;
-
- RamEnd = Next;
- MemEnd = Next;
-
- return 0;
-}
-
-static INT32 DrvGfxDecode()
-{
- INT32 Plane[8] = { 8*7,8*3,8*5,8*1,8*6,8*2,8*4,8*0 };
- INT32 XOffs[8] = { STEP8(0,1) };
- INT32 YOffs[8] = { STEP8(0,64) };
-
- GfxDecode(0x8000, 8, 8, 8, Plane, XOffs, YOffs, 8*8*8, DrvGfxROM, DrvGfxROMExp);
-
- return 0;
-}
-
-static INT32 DrvInit()
-{
- GenericTilesInit();
-
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(Drv68KROM + 0x000000, 0, 1)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x080000, 1, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM + 0x000000, 2, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM + 0x000001, 3, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM + 0x100000, 4, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM + 0x100001, 5, 2)) return 1;
-
- if (BurnLoadRom(YMZ280BROM + 0x000000, 6, 1)) return 1;
- if (BurnLoadRom(YMZ280BROM + 0x080000, 7, 1)) return 1;
- if (BurnLoadRom(YMZ280BROM + 0x100000, 8, 1)) return 1;
- if (BurnLoadRom(YMZ280BROM + 0x180000, 9, 1)) return 1;
-
- DrvGfxDecode();
- }
-
- SekInit(0, 0x68000);
- SekOpen(0);
- SekMapMemory(Drv68KROM, 0x000000, 0x0fffff, MAP_ROM);
- SekMapMemory(Drv68KRAM, 0x400000, 0x407fff, MAP_RAM);
- SekMapMemory(DrvPalRAM, 0xb00000, 0xb03fff, MAP_RAM);
- SekMapMemory(DrvPalRAM, 0xb04000, 0xb047ff, MAP_ROM);
- SekSetWriteWordHandler(0, bishi_write_word);
- SekSetWriteByteHandler(0, bishi_write_byte);
- SekSetReadWordHandler(0, bishi_read_word);
- SekSetReadByteHandler(0, bishi_read_byte);
- SekClose();
-
- K055555Init();
- K054338Init();
-
- K056832Init(DrvGfxROM, DrvGfxROMExp, 0x200000, bishi_tile_callback);
- K056832SetGlobalOffsets(29, 16);
- K056832SetLayerOffsets(0, -2, 0);
- K056832SetLayerOffsets(1, 2, 0);
- K056832SetLayerOffsets(2, 4, 0);
- K056832SetLayerOffsets(3, 6, 0);
- K056832SetLayerAssociation(0);
-
- YMZ280BInit(16934400, bishi_sound_irq);
- YMZ280BSetRoute(BURN_SND_YMZ280B_YMZ280B_ROUTE_1, 1.00, BURN_SND_ROUTE_LEFT);
- YMZ280BSetRoute(BURN_SND_YMZ280B_YMZ280B_ROUTE_2, 1.00, BURN_SND_ROUTE_RIGHT);
-
- DrvDoReset();
-
- return 0;
-}
-
-static INT32 DrvExit()
-{
- GenericTilesExit();
-
- KonamiICExit();
-
- SekExit();
-
- YMZ280BExit();
-
- BurnFree (AllMem);
-
- return 0;
-}
-
-static void DrvPaletteRecalc()
-{
- UINT16 *pal = (UINT16*)DrvPalRAM;
-
- for (INT32 i = 0; i < 0x4000/2; i+=2) {
- UINT32 p = (pal[i] << 16) | (pal[i+1]);
-
- UINT8 r = p & 0xff;
- UINT8 g = p >> 8;
- UINT8 b = p >> 16;
-
- DrvPalette[i/2] = (r << 16) | (g << 8) | b;
- }
-}
-
-static INT32 DrvDraw()
-{
- DrvPaletteRecalc();
-
- INT32 layers[4];
- static const INT32 pris[4] = { K55_PRIINP_0, K55_PRIINP_3, K55_PRIINP_6, K55_PRIINP_7 };
- static const INT32 enables[4] = { K55_INP_VRAM_A, K55_INP_VRAM_B, K55_INP_VRAM_C, K55_INP_VRAM_D };
-
- KonamiClearBitmaps(0);
-
- K054338_fill_solid_bg();
-
- for (INT32 i = 0; i < 4; i++)
- {
- layers[i] = i;
- layerpri[i] = K055555ReadRegister(pris[i]);
- }
-
- konami_sortlayers4(layers, layerpri);
-
- for (INT32 i = 0; i < 4; i++)
- {
- if (K055555ReadRegister(K55_INPUT_ENABLES) & enables[layers[i]])
- {
- if (nBurnLayer & (1 << i)) K056832Draw(layers[i], 0, 1 << i);
- }
- }
-
- KonamiBlendCopy(DrvPalette);
-
- return 0;
-}
-
-static INT32 DrvFrame()
-{
- if (DrvReset) {
- DrvDoReset();
- }
-
- {
- memset (DrvInputs, 0xff, 2 * sizeof(INT16));
- for (INT32 i = 0; i < 16; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- }
- }
-
- INT32 nInterleave = 256;
- INT32 nCyclesTotal[1] = { 12000000 / 60 };
- INT32 nCyclesDone[1] = { 0 };
-
- SekOpen(0);
-
- for (INT32 i = 0; i < nInterleave; i++)
- {
- nCyclesDone[0] += SekRun(nCyclesTotal[0] / nInterleave);
-
- if (control_data & 0x800) {
- if (i == 0) SekSetIRQLine(4, CPU_IRQSTATUS_AUTO);
- if (i == 240) SekSetIRQLine(3, CPU_IRQSTATUS_AUTO);
-
- }
- }
-
- if (pBurnSoundOut) {
- YMZ280BRender(pBurnSoundOut, nBurnSoundLen);
- }
-
- SekClose();
-
- if (pBurnDraw) {
- DrvDraw();
- }
-
- return 0;
-}
-
-static INT32 DrvScan(INT32 nAction,INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin) {
- *pnMin = 0x029732;
- }
-
- if (nAction & ACB_VOLATILE) {
- memset(&ba, 0, sizeof(ba));
-
- ba.Data = AllRam;
- ba.nLen = RamEnd - AllRam;
- ba.szName = "All Ram";
- BurnAcb(&ba);
-
- SekScan(nAction);
-
- YMZ280BScan();
-
- KonamiICScan(nAction);
-
- SCAN_VAR(control_data);
- SCAN_VAR(control_data2);
- }
-
- return 0;
-}
-
-
-// Bishi Bashi Championship Mini Game Senshuken (ver JAA, 3 Players)
-
-static struct BurnRomInfo bishiRomDesc[] = {
- { "575jaa05.12e", 0x80000, 0x7d354567, 1 | BRF_PRG | BRF_ESS }, // 0 68K Code
- { "575jaa06.15e", 0x80000, 0x9b2f7fbb, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "575jaa07.14n", 0x80000, 0x37bbf387, 2 | BRF_GRA }, // 2 K056832 Characters
- { "575jaa08.17n", 0x80000, 0x47ecd559, 2 | BRF_GRA }, // 3
- { "575jaa09.19n", 0x80000, 0xc1db6e68, 2 | BRF_GRA }, // 4
- { "575jaa10.22n", 0x80000, 0xc8b145d6, 2 | BRF_GRA }, // 5
-
- { "575jaa01.2f", 0x80000, 0xe1e9f7b2, 3 | BRF_SND }, // 6 YMZ280b Samples
- { "575jaa02.4f", 0x80000, 0xd228eb06, 3 | BRF_SND }, // 7
- { "575jaa03.6f", 0x80000, 0x9ec0321f, 3 | BRF_SND }, // 8
- { "575jaa04.8f", 0x80000, 0x0120967f, 3 | BRF_SND }, // 9
-};
-
-STD_ROM_PICK(bishi)
-STD_ROM_FN(bishi)
-
-struct BurnDriver BurnDrvBishi = {
- "bishi", NULL, NULL, NULL, "1996",
- "Bishi Bashi Championship Mini Game Senshuken (ver JAA, 3 Players)\0", "Imperfect gfx (one gfx rom bad, bad priorities)", "Konami", "Miscellaneous",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_PREFIX_KONAMI, GBF_MISC, 0,
- NULL, bishiRomInfo, bishiRomName, NULL, NULL, BishiInputInfo, BishiDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x2000,
- 288, 224, 4, 3
-};
-
-
-// Super Bishi Bashi Championship (ver JAA, 2 Players)
-
-static struct BurnRomInfo sbishiRomDesc[] = {
- { "675jaa05.12e", 0x80000, 0x28a09c01, 1 | BRF_PRG | BRF_ESS }, // 0 68K Code
- { "675jaa06.15e", 0x80000, 0xe4998b33, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "675jaa07.14n", 0x80000, 0x6fe7c658, 2 | BRF_GRA }, // 2 K056832 Characters
- { "675jaa08.17n", 0x80000, 0xc230afc9, 2 | BRF_GRA }, // 3
- { "675jaa09.19n", 0x80000, 0x63fe85a5, 2 | BRF_GRA }, // 4
- { "675jaa10.22n", 0x80000, 0x703ac462, 2 | BRF_GRA }, // 5
-
- { "675jaa01.2f", 0x80000, 0x67910b15, 3 | BRF_SND }, // 6 YMZ280b Samples
- { "675jaa02.4f", 0x80000, 0x3313a7ae, 3 | BRF_SND }, // 7
- { "675jaa03.6f", 0x80000, 0xec977e6a, 3 | BRF_SND }, // 8
- { "675jaa04.8f", 0x80000, 0x1d1de34e, 3 | BRF_SND }, // 9
-};
-
-STD_ROM_PICK(sbishi)
-STD_ROM_FN(sbishi)
-
-struct BurnDriver BurnDrvSbishi = {
- "sbishi", NULL, NULL, NULL, "1998",
- "Super Bishi Bashi Championship (ver JAA, 2 Players)\0", "Imperfect gfx (bad priorities)", "Konami", "Miscellaneous",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_PREFIX_KONAMI, GBF_MISC, 0,
- NULL, sbishiRomInfo, sbishiRomName, NULL, NULL, Bishi2pInputInfo, Bishi2pDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x2000,
- 288, 224, 4, 3
-};
-
-
-// Super Bishi Bashi Championship (ver KAB, 3 Players)
-
-static struct BurnRomInfo sbishikRomDesc[] = {
- { "kab05.12e", 0x80000, 0x749063ca, 1 | BRF_PRG | BRF_ESS }, // 0 68K Code
- { "kab06.15e", 0x80000, 0x089e0f37, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "675kaa07.14n", 0x80000, 0x1177c1f8, 2 | BRF_GRA }, // 2 K056832 Characters
- { "675kaa08.17n", 0x80000, 0x7117e9cd, 2 | BRF_GRA }, // 3
- { "675kaa09.19n", 0x80000, 0x8d49c765, 2 | BRF_GRA }, // 4
- { "675kaa10.22n", 0x80000, 0xc16acf32, 2 | BRF_GRA }, // 5
-
- { "675kaa01.2f", 0x80000, 0x73ac6ae6, 3 | BRF_SND }, // 6 YMZ280b Samples
- { "675kaa02.4f", 0x80000, 0x4c341e7c, 3 | BRF_SND }, // 7
- { "675kaa03.6f", 0x80000, 0x83f91beb, 3 | BRF_SND }, // 8
- { "675kaa04.8f", 0x80000, 0xebcbd813, 3 | BRF_SND }, // 9
-};
-
-STD_ROM_PICK(sbishik)
-STD_ROM_FN(sbishik)
-
-struct BurnDriver BurnDrvSbishik = {
- "sbishik", "sbishi", NULL, NULL, "1998",
- "Super Bishi Bashi Championship (ver KAB, 3 Players)\0", "Imperfect gfx (bad priorities)", "Konami", "Miscellaneous",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_KONAMI, GBF_MISC, 0,
- NULL, sbishikRomInfo, sbishikRomName, NULL, NULL, BishiInputInfo, BishiDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x2000,
- 288, 224, 4, 3
-};
-
-
-// Super Bishi Bashi Championship (ver KAA, 3 Players)
-
-static struct BurnRomInfo sbishikaRomDesc[] = {
- { "675kaa05.12e", 0x80000, 0x23600e1d, 1 | BRF_PRG | BRF_ESS }, // 0 68K Code
- { "675kaa06.15e", 0x80000, 0xbd1091f5, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "675kaa07.14n", 0x80000, 0x1177c1f8, 2 | BRF_GRA }, // 2 K056832 Characters
- { "675kaa08.17n", 0x80000, 0x7117e9cd, 2 | BRF_GRA }, // 3
- { "675kaa09.19n", 0x80000, 0x8d49c765, 2 | BRF_GRA }, // 4
- { "675kaa10.22n", 0x80000, 0xc16acf32, 2 | BRF_GRA }, // 5
-
- { "675kaa01.2f", 0x80000, 0x73ac6ae6, 3 | BRF_SND }, // 6 YMZ280b Samples
- { "675kaa02.4f", 0x80000, 0x4c341e7c, 3 | BRF_SND }, // 7
- { "675kaa03.6f", 0x80000, 0x83f91beb, 3 | BRF_SND }, // 8
- { "675kaa04.8f", 0x80000, 0xebcbd813, 3 | BRF_SND }, // 9
-};
-
-STD_ROM_PICK(sbishika)
-STD_ROM_FN(sbishika)
-
-struct BurnDriver BurnDrvSbishika = {
- "sbishika", "sbishi", NULL, NULL, "1998",
- "Super Bishi Bashi Championship (ver KAA, 3 Players)\0", "Imperfect gfx (bad priorities)", "Konami", "Miscellaneous",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_KONAMI, GBF_MISC, 0,
- NULL, sbishikaRomInfo, sbishikaRomName, NULL, NULL, BishiInputInfo, BishiDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x2000,
- 288, 224, 4, 3
-};
diff --git a/jan/src/burn/drv/konami/d_bladestl.cpp b/jan/src/burn/drv/konami/d_bladestl.cpp
deleted file mode 100644
index c49997dff..000000000
--- a/jan/src/burn/drv/konami/d_bladestl.cpp
+++ /dev/null
@@ -1,718 +0,0 @@
-// FB Alpha Blades of Steel driver module
-// Based on MAME driver by Manuel Abadia
-
-// Needs trackball hooked up
-
-#include "tiles_generic.h"
-#include "m6809_intf.h"
-#include "hd6309_intf.h"
-#include "burn_ym2203.h"
-#include "upd7759.h"
-#include "k007342_k007420.h"
-#include "konamiic.h"
-
-static UINT8 *AllMem;
-static UINT8 *MemEnd;
-static UINT8 *AllRam;
-static UINT8 *RamEnd;
-static UINT8 *DrvHD6309ROM;
-static UINT8 *DrvM6809ROM;
-static UINT8 *DrvGfxROM0;
-static UINT8 *DrvGfxROM1;
-static UINT8 *DrvUpdROM;
-static UINT8 *DrvLutPROM;
-
-static UINT32 *DrvPalette;
-static UINT8 DrvRecalc;
-
-static UINT8 *DrvHD6309RAM;
-static UINT8 *DrvM6809RAM;
-static UINT8 *DrvPalRAM;
-
-static UINT8 HD6309Bank;
-static UINT8 soundlatch;
-static INT32 spritebank;
-static UINT8 soundbank;
-
-static UINT8 DrvJoy1[8];
-static UINT8 DrvJoy2[9];
-static UINT8 DrvJoy3[8];
-static UINT8 DrvDips[4];
-static UINT8 DrvInputs[3];
-static UINT8 DrvReset;
-static INT32 DrvAnalog0 = 0;
-static INT32 DrvAnalog1 = 0;
-static INT32 DrvAnalog2 = 0;
-static INT32 DrvAnalog3 = 0;
-
-static INT32 watchdog;
-
-#define A(a, b, c, d) {a, b, (UINT8*)(c), d}
-
-static struct BurnInputInfo BladestlInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy1 + 0, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 3, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy2 + 2, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy2 + 3, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy2 + 0, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy2 + 1, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy2 + 4, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy2 + 5, "p1 fire 2" },
- {"P1 Button 3", BIT_DIGITAL, DrvJoy2 + 6, "p1 fire 3" },
-
- A("P1 Trackball X", BIT_ANALOG_REL, &DrvAnalog0, "mouse x-axis" ),
- A("P1 Trackball Y", BIT_ANALOG_REL, &DrvAnalog1, "mouse y-axis" ),
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy1 + 1, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy1 + 4, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvJoy3 + 2, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy3 + 3, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy3 + 0, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy3 + 1, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy3 + 4, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy3 + 5, "p2 fire 2" },
- {"P2 Button 3", BIT_DIGITAL, DrvJoy3 + 6, "p2 fire 3" },
-
- A("P2 Trackball X", BIT_ANALOG_REL, &DrvAnalog2, "mouse x-axis" ),
- A("P2 Trackball Y", BIT_ANALOG_REL, &DrvAnalog3, "mouse y-axis" ),
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip" },
- {"Dip C", BIT_DIPSWITCH, DrvDips + 2, "dip" },
- {"Dip D", BIT_DIPSWITCH, DrvDips + 3, "dip" },
-};
-
-STDINPUTINFO(Bladestl)
-
-static struct BurnDIPInfo BladestlDIPList[]=
-{
- {0x17, 0xff, 0xff, 0xe0, NULL },
- {0x18, 0xff, 0xff, 0xc0, NULL },
- {0x19, 0xff, 0xff, 0xff, NULL },
- {0x1a, 0xff, 0xff, 0x5b, NULL },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x17, 0x01, 0x20, 0x20, "Off" },
- {0x17, 0x01, 0x20, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x17, 0x01, 0x80, 0x80, "Off" },
- {0x17, 0x01, 0x80, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Period time set" },
- {0x18, 0x01, 0x80, 0x80, "4" },
- {0x18, 0x01, 0x80, 0x00, "7" },
-
- {0 , 0xfe, 0 , 16, "Coin A" },
- {0x19, 0x01, 0x0f, 0x02, "4 Coins 1 Credits" },
- {0x19, 0x01, 0x0f, 0x05, "3 Coins 1 Credits" },
- {0x19, 0x01, 0x0f, 0x08, "2 Coins 1 Credits" },
- {0x19, 0x01, 0x0f, 0x04, "3 Coins 2 Credits" },
- {0x19, 0x01, 0x0f, 0x01, "4 Coins 3 Credits" },
- {0x19, 0x01, 0x0f, 0x0f, "1 Coin 1 Credits" },
- {0x19, 0x01, 0x0f, 0x00, "4 Coins 5 Credits" },
- {0x19, 0x01, 0x0f, 0x03, "3 Coins 4 Credits" },
- {0x19, 0x01, 0x0f, 0x07, "2 Coins 3 Credits" },
- {0x19, 0x01, 0x0f, 0x0e, "1 Coin 2 Credits" },
- {0x19, 0x01, 0x0f, 0x06, "2 Coins 5 Credits" },
- {0x19, 0x01, 0x0f, 0x0d, "1 Coin 3 Credits" },
- {0x19, 0x01, 0x0f, 0x0c, "1 Coin 4 Credits" },
- {0x19, 0x01, 0x0f, 0x0b, "1 Coin 5 Credits" },
- {0x19, 0x01, 0x0f, 0x0a, "1 Coin 6 Credits" },
- {0x19, 0x01, 0x0f, 0x09, "1 Coin 7 Credits" },
-
- {0 , 0xfe, 0 , 16, "Coin B" },
- {0x19, 0x01, 0xf0, 0x20, "4 Coins 1 Credits" },
- {0x19, 0x01, 0xf0, 0x50, "3 Coins 1 Credits" },
- {0x19, 0x01, 0xf0, 0x80, "2 Coins 1 Credits" },
- {0x19, 0x01, 0xf0, 0x40, "3 Coins 2 Credits" },
- {0x19, 0x01, 0xf0, 0x10, "4 Coins 3 Credits" },
- {0x19, 0x01, 0xf0, 0xf0, "1 Coin 1 Credits" },
- {0x19, 0x01, 0xf0, 0x00, "4 Coins 5 Credits" },
- {0x19, 0x01, 0xf0, 0x30, "3 Coins 4 Credits" },
- {0x19, 0x01, 0xf0, 0x70, "2 Coins 3 Credits" },
- {0x19, 0x01, 0xf0, 0xe0, "1 Coin 2 Credits" },
- {0x19, 0x01, 0xf0, 0x60, "2 Coins 5 Credits" },
- {0x19, 0x01, 0xf0, 0xd0, "1 Coin 3 Credits" },
- {0x19, 0x01, 0xf0, 0xc0, "1 Coin 4 Credits" },
- {0x19, 0x01, 0xf0, 0xb0, "1 Coin 5 Credits" },
- {0x19, 0x01, 0xf0, 0xa0, "1 Coin 6 Credits" },
- {0x19, 0x01, 0xf0, 0x90, "1 Coin 7 Credits" },
-
- {0 , 0xfe, 0 , 2, "Cabinet" },
- {0x1a, 0x01, 0x04, 0x00, "Upright" },
- {0x1a, 0x01, 0x04, 0x04, "Cocktail" },
-
- {0 , 0xfe, 0 , 4, "Bonus time set" },
- {0x1a, 0x01, 0x18, 0x18, "30 secs" },
- {0x1a, 0x01, 0x18, 0x10, "20 secs" },
- {0x1a, 0x01, 0x18, 0x08, "15 secs" },
- {0x1a, 0x01, 0x18, 0x00, "10 secs" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x1a, 0x01, 0x60, 0x60, "Easy" },
- {0x1a, 0x01, 0x60, 0x40, "Normal" },
- {0x1a, 0x01, 0x60, 0x20, "Difficult" },
- {0x1a, 0x01, 0x60, 0x00, "Very Difficult" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x1a, 0x01, 0x80, 0x80, "Off" },
- {0x1a, 0x01, 0x80, 0x00, "On" },
-};
-
-STDDIPINFO(Bladestl)
-
-static void bankswitch(INT32 bank)
-{
- HD6309Bank = bank;
- HD6309MapMemory(DrvHD6309ROM + (((bank & 0x60) >> 5) * 0x2000), 0x6000, 0x7fff, MAP_ROM);
-}
-
-static void bladestl_main_write(UINT16 address, UINT8 data)
-{
- if ((address & 0xfff8) == 0x2600) {
- K007342Regs[0][address & 7] = data;
- return;
- }
-
- if ((address & 0xffe0) == 0x2f80) {
- K051733Write(address & 0x1f, data);
- return;
- }
-
- switch (address)
- {
- case 0x2e80:
- soundlatch = data;
- M6809SetIRQLine(0, CPU_IRQSTATUS_ACK);
- return;
-
- case 0x2ec0:
- watchdog = 0;
- return;
-
- case 0x2f40:
- // coin counters = data & 0x03;
- // leds data & 0x0c;
- spritebank = (data & 0x80) << 3;
- bankswitch(data);
- return;
-
- case 0x2fc0:
- return; // nop
- }
-}
-
-static UINT8 trackball_read(INT32 /*offset*/)
-{
-/*
- int curr = m_trackball[offset]->read();
- int delta = (curr - m_last_track[offset]) & 0xff;
- m_last_track[offset] = curr;
-
- return (delta & 0x80) | (curr >> 1);
-*/
- return 0;
-}
-
-static UINT8 bladestl_main_read(UINT16 address)
-{
- if ((address & 0xffe0) == 0x2f80) {
- return K051733Read(address & 0x1f);
- }
-
- switch (address)
- {
- case 0x2e00:
- return (DrvInputs[0] & 0x1f) | (DrvDips[0] & 0xe0);
-
- case 0x2e01:
- return (DrvInputs[1] & 0x7f) | (DrvDips[1] & 0x80);
-
- case 0x2e02:
- return DrvInputs[2];
-
- case 0x2e03:
- return DrvDips[3];
-
- case 0x2e40:
- return DrvDips[2];
-
- case 0x2f00:
- case 0x2f01:
- case 0x2f02:
- case 0x2f03:
- return trackball_read(address & 3);
- }
-
- return 0;
-}
-
-static void bladestl_sound_write(UINT16 address, UINT8 data)
-{
- switch (address)
- {
- case 0x1000:
- case 0x1001:
- BurnYM2203Write(0, address & 1, data);
- return;
-
- case 0x3000:
- UPD7759ResetWrite(0, data & 1);
- UPD7759StartWrite(0, data & 2);
- return;
-
- case 0x5000:
- return;
- }
-}
-
-static UINT8 bladestl_sound_read(UINT16 address)
-{
- switch (address)
- {
- case 0x1000:
- case 0x1001:
- return BurnYM2203Read(0, address & 1);
-
- case 0x4000:
- return (UPD7759BusyRead(0) ? 1 : 0);
-
- case 0x6000:
- M6809SetIRQLine(0, CPU_IRQSTATUS_NONE);
- return soundlatch;
- }
-
- return 0;
-}
-
-static void bladestl_tile_callback(INT32 layer, INT32 /*bank*/, INT32 *code, INT32 *color, INT32 */*flags*/)
-{
- *code |= ((*color & 0x0f) << 8) | ((*color & 0x40) << 6);
- *color = 0x10 + layer;
-}
-
-static void bladestl_sprite_callback(INT32 *code, INT32 *color)
-{
- *code |= ((*color & 0xc0) << 2) + spritebank;
- *code = (*code << 2) | ((*color & 0x30) >> 4);
- *color = (*color & 0x0f);
-}
-
-static void bladestl_ym2203_write_portA(UINT32, UINT32 data)
-{
- UPD7759PortWrite(0, data);
-}
-
-static void bladestl_ym2203_write_portB(UINT32, UINT32 data)
-{
- soundbank = data;
- memcpy (DrvUpdROM, DrvUpdROM + 0x20000 + (((data & 0x38) >> 3) * 0x20000), 0x20000);
-}
-
-inline static INT32 DrvSynchroniseStream(INT32 nSoundRate)
-{
- return (INT64)M6809TotalCycles() * nSoundRate / 2000000;
-}
-
-inline static double DrvGetTime()
-{
- return (double)M6809TotalCycles() / 2000000.0;
-}
-
-static INT32 DrvDoReset(INT32 clear_ram)
-{
- if (clear_ram) {
- memset (AllRam, 0, RamEnd - AllRam);
- }
-
- HD6309Open(0);
- HD6309Reset();
- HD6309Close();
-
- M6809Open(0);
- M6809Reset();
- UPD7759Reset();
- BurnYM2203Reset();
- M6809Close();
-
- K007342Reset();
-
- bladestl_ym2203_write_portB(0,0);
-
- HiscoreReset();
-
- HD6309Bank = 0;
- soundlatch = 0;
- spritebank = 0;
-
- return 0;
-}
-
-static INT32 MemIndex()
-{
- UINT8 *Next; Next = AllMem;
-
- DrvHD6309ROM = Next; Next += 0x010000;
- DrvM6809ROM = Next; Next += 0x010000;
-
- DrvGfxROM0 = Next; Next += 0x080000;
- DrvGfxROM1 = Next; Next += 0x080000;
-
- DrvUpdROM = Next; Next += 0x120000;
-
- DrvLutPROM = Next; Next += 0x000100;
-;
- DrvPalette = (UINT32*)Next; Next += 0x120 * sizeof(UINT32);
-
- AllRam = Next;
-
- DrvHD6309RAM = Next; Next += 0x002000;
- DrvM6809RAM = Next; Next += 0x000800;
- DrvPalRAM = Next; Next += 0x000100;
-
- K007342VidRAM[0] = Next; Next += 0x002000;
- K007342ScrRAM[0] = Next; Next += 0x000200;
-
- K007420RAM[0] = Next; Next += 0x000200;
-
- RamEnd = Next;
- MemEnd = Next;
-
- return 0;
-}
-
-static void DrvGfxExpand(UINT8 *src, INT32 len)
-{
- for (INT32 i = (len - 1) * 2; i >= 0; i-=2) {
- src[i+0] = src[i/2] >> 4;
- src[i+1] = src[i/2] & 0xf;
- }
-}
-
-static INT32 DrvInit()
-{
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(DrvHD6309ROM + 0x00000, 0, 1)) return 1;
-
- if (BurnLoadRom(DrvM6809ROM + 0x08000, 1, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x00000, 2, 1)) return 1;
- BurnByteswap(DrvGfxROM0, 0x40000);
-
- if (BurnLoadRom(DrvGfxROM1 + 0x00000, 3, 1)) return 1;
-
- if (BurnLoadRom(DrvLutPROM + 0x00000, 4, 1)) return 1;
-
- if (BurnLoadRom(DrvUpdROM + 0x20000, 5, 1)) return 1;
- if (BurnLoadRom(DrvUpdROM + 0xa0000, 6, 1)) return 1;
-
- DrvGfxExpand(DrvGfxROM0, 0x40000);
- DrvGfxExpand(DrvGfxROM1, 0x40000);
- }
-
- HD6309Init(0);
- HD6309Open(0);
- HD6309MapMemory(K007342VidRAM[0], 0x0000, 0x1fff, MAP_RAM);
- HD6309MapMemory(K007420RAM[0], 0x2000, 0x21ff, MAP_RAM);
- HD6309MapMemory(K007342ScrRAM[0], 0x2200, 0x23ff, MAP_RAM);
- HD6309MapMemory(DrvPalRAM, 0x2400, 0x24ff, MAP_RAM);
- HD6309MapMemory(DrvHD6309RAM, 0x4000, 0x5fff, MAP_RAM);
- HD6309MapMemory(DrvHD6309ROM + 0x08000, 0x8000, 0xffff, MAP_ROM);
- HD6309SetWriteHandler(bladestl_main_write);
- HD6309SetReadHandler(bladestl_main_read);
- HD6309Close();
-
- M6809Init(1);
- M6809Open(0);
- M6809MapMemory(DrvM6809RAM, 0x0000, 0x07ff, MAP_RAM);
- M6809MapMemory(DrvM6809ROM + 0x08000, 0x8000, 0xffff, MAP_ROM);
- M6809SetWriteHandler(bladestl_sound_write);
- M6809SetReadHandler(bladestl_sound_read);
- M6809Close();
-
- K007342Init(DrvGfxROM0, bladestl_tile_callback);
- K007342SetOffsets(0, 16);
-
- K007420Init(0x3ff, bladestl_sprite_callback);
- K007420SetOffsets(0, 16);
-
- UPD7759Init(0, UPD7759_STANDARD_CLOCK, DrvUpdROM);
- UPD7759SetRoute(0, 0.60, BURN_SND_ROUTE_BOTH);
-
- BurnYM2203Init(1, 3579545, NULL, DrvSynchroniseStream, DrvGetTime, 0);
- BurnYM2203SetPorts(0, NULL, NULL, &bladestl_ym2203_write_portA, &bladestl_ym2203_write_portB);
- BurnTimerAttachM6809(2000000);
- BurnYM2203SetAllRoutes(0, 0.45, BURN_SND_ROUTE_BOTH);
- BurnYM2203SetPSGVolume(0, 0.35); // when filters get hooked up, remove this line.
-
- // needs filters hooked up
-
- GenericTilesInit();
-
- DrvDoReset(1);
-
- return 0;
-}
-
-static INT32 DrvExit()
-{
- GenericTilesExit();
-
- M6809Exit();
- HD6309Exit();
-
- BurnYM2203Exit();
- UPD7759Exit();
-
- BurnFree (AllMem);
-
- return 0;
-}
-
-static void DrvPaletteInit()
-{
- UINT32 pens[0x60];
- UINT16 *pal = (UINT16*)DrvPalRAM;
-
- for (INT32 i = 0; i < 0x60 / 2; i++) {
- UINT16 p = (pal[i] << 8) | (pal[i] >> 8);
- INT32 r = (p & 0x1f);
- INT32 g = (p >> 5) & 0x1f;
- INT32 b = (p >> 10) & 0x1f;
-
- r = (r << 3) | (r >> 2);
- g = (g << 3) | (g >> 2);
- b = (b << 3) | (b >> 2);
-
- pens[i] = BurnHighCol(r,g,b,0);
- }
-
- for (INT32 i = 0; i < 0x100; i++) {
- DrvPalette[i] = pens[(DrvLutPROM[i] & 0xf)|0x20];
- }
-
- for (INT32 i = 0; i < 0x020; i++) {
- DrvPalette[i + 0x100] = pens[i];
- }
-}
-
-static INT32 DrvDraw()
-{
- if (DrvRecalc) {
- DrvPaletteInit();
- DrvRecalc = 1;
- }
-
- if (~nBurnLayer & 1) BurnTransferClear();
-
- if (nBurnLayer & 1) K007342DrawLayer(1, 0 | K007342_OPAQUE, 0);
- if (nSpriteEnable & 1) K007420DrawSprites(DrvGfxROM1);
- if (nBurnLayer & 2) K007342DrawLayer(1, 1 | K007342_OPAQUE, 0);
- if (nBurnLayer & 4) K007342DrawLayer(0, 0, 0);
- if (nBurnLayer & 8) K007342DrawLayer(0, 1, 0);
-
- BurnTransferCopy(DrvPalette);
-
- return 0;
-}
-
-static INT32 DrvFrame()
-{
- watchdog++;
- if (DrvReset) {
- DrvDoReset(0);
- }
-
- if (DrvReset) {
- DrvDoReset(1);
- }
-
- M6809NewFrame();
-
- {
- memset (DrvInputs, 0xff, 3);
- for (INT32 i = 0; i < 8; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- DrvInputs[2] ^= (DrvJoy3[i] & 1) << i;
- }
- }
-
- INT32 nInterleave = 256;
- INT32 nCyclesTotal[2] = { 6000000 / 60, 2000000 / 60 };
-
- HD6309Open(0);
- M6809Open(0);
-
- HD6309SetIRQLine(0x20, CPU_IRQSTATUS_AUTO); // nmi
-
- for (INT32 i = 0; i < nInterleave; i++) {
-
- HD6309Run(nCyclesTotal[0] / nInterleave);
-
- if (i == 240 && K007342_irq_enabled()) HD6309SetIRQLine(1, CPU_IRQSTATUS_AUTO); // firq
-
- BurnTimerUpdate((i + 1) * (nCyclesTotal[1] / nInterleave));
- }
-
- BurnTimerEndFrame(nCyclesTotal[1]);
-
- if (pBurnSoundOut) {
- BurnYM2203Update(pBurnSoundOut, nBurnSoundLen);
- UPD7759Update(0, pBurnSoundOut, nBurnSoundLen);
- }
-
- HD6309Close();
- M6809Close();
-
- if (pBurnDraw) {
- DrvDraw();
- }
-
- return 0;
-}
-
-static INT32 DrvScan(INT32 nAction,INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin) {
- *pnMin = 0x029704;
- }
-
- if (nAction & ACB_VOLATILE) {
- memset(&ba, 0, sizeof(ba));
- ba.Data = AllRam;
- ba.nLen = RamEnd - AllRam;
- ba.szName = "All RAM";
- BurnAcb(&ba);
- }
-
- if (nAction & ACB_DRIVER_DATA) {
- HD6309Scan(nAction);
- M6809Scan(nAction);
-
- K051733Scan(nAction);
- BurnYM2203Scan(nAction, pnMin);
- UPD7759Scan(0, nAction, pnMin);
-
- K007342Scan(nAction);
-
- SCAN_VAR(HD6309Bank);
- SCAN_VAR(soundlatch);
- SCAN_VAR(spritebank);
- SCAN_VAR(soundbank);
- }
-
- if (nAction & ACB_WRITE) {
- HD6309Open(0);
- bankswitch(HD6309Bank);
- HD6309Close();
-
- bladestl_ym2203_write_portB(0,soundbank);
- }
-
- return 0;
-}
-
-
-// Blades of Steel (version T)
-
-static struct BurnRomInfo bladestlRomDesc[] = {
- { "797-t01.19c", 0x10000, 0x89d7185d, 1 | BRF_PRG | BRF_ESS }, // 0 HD6309 Code
-
- { "797-c02.12d", 0x08000, 0x65a331ea, 2 | BRF_PRG | BRF_ESS }, // 1 M6809 Code
-
- { "797a05.19h", 0x40000, 0x5491ba28, 3 | BRF_GRA }, // 2 Tiles
-
- { "797a06.13h", 0x40000, 0xd055f5cc, 4 | BRF_GRA }, // 3 Sprites
-
- { "797a07.16i", 0x00100, 0x7aecad4e, 5 | BRF_GRA }, // 4 Sprite Color Lookup Tables
-
- { "797a03.11a", 0x80000, 0x9ee1a542, 6 | BRF_GRA }, // 5 UPD7759 Samples
- { "797a04.9a", 0x40000, 0x9ac8ea4e, 6 | BRF_GRA }, // 6
-};
-
-STD_ROM_PICK(bladestl)
-STD_ROM_FN(bladestl)
-
-struct BurnDriver BurnDrvBladestl = {
- "bladestl", NULL, NULL, NULL, "1987",
- "Blades of Steel (version T)\0", NULL, "Konami", "GX797",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_KONAMI, GBF_SPORTSMISC, 0,
- NULL, bladestlRomInfo, bladestlRomName, NULL, NULL, BladestlInputInfo, BladestlDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x120,
- 224, 256, 3, 4
-};
-
-
-// Blades of Steel (version L)
-
-static struct BurnRomInfo bladestllRomDesc[] = {
- { "797-l01.19c", 0x10000, 0x1ab14c40, 1 | BRF_PRG | BRF_ESS }, // 0 HD6309 Code
-
- { "797-c02.12d", 0x08000, 0x65a331ea, 2 | BRF_PRG | BRF_ESS }, // 1 M6809 Code
-
- { "797a05.19h", 0x40000, 0x5491ba28, 3 | BRF_GRA }, // 2 Tiles
-
- { "797a06.13h", 0x40000, 0xd055f5cc, 4 | BRF_GRA }, // 3 Sprites
-
- { "797a07.16i", 0x00100, 0x7aecad4e, 5 | BRF_GRA }, // 4 Sprite Color Lookup Tables
-
- { "797a03.11a", 0x80000, 0x9ee1a542, 6 | BRF_GRA }, // 5 UPD7759 Samples
- { "797a04.9a", 0x40000, 0x9ac8ea4e, 6 | BRF_GRA }, // 6
-};
-
-STD_ROM_PICK(bladestll)
-STD_ROM_FN(bladestll)
-
-struct BurnDriver BurnDrvBladestll = {
- "bladestll", "bladestl", NULL, NULL, "1987",
- "Blades of Steel (version L)\0", NULL, "Konami", "GX797",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_KONAMI, GBF_SPORTSMISC, 0,
- NULL, bladestllRomInfo, bladestllRomName, NULL, NULL, BladestlInputInfo, BladestlDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x120,
- 224, 256, 3, 4
-};
-
-
-// Blades of Steel (version E)
-
-static struct BurnRomInfo bladestleRomDesc[] = {
- { "797-e01.19c", 0x10000, 0xf8472e95, 1 | BRF_PRG | BRF_ESS }, // 0 HD6309 Code
-
- { "797-c02.12d", 0x08000, 0x65a331ea, 2 | BRF_PRG | BRF_ESS }, // 1 M6809 Code
-
- { "797a05.19h", 0x40000, 0x5491ba28, 3 | BRF_GRA }, // 2 Tiles
-
- { "797a06.13h", 0x40000, 0xd055f5cc, 4 | BRF_GRA }, // 3 Sprites
-
- { "797a07.16i", 0x00100, 0x7aecad4e, 5 | BRF_GRA }, // 4 Sprite Color Lookup Tables
-
- { "797a03.11a", 0x80000, 0x9ee1a542, 6 | BRF_GRA }, // 5 UPD7759 Samples
- { "797a04.9a", 0x40000, 0x9ac8ea4e, 6 | BRF_GRA }, // 6
-};
-
-STD_ROM_PICK(bladestle)
-STD_ROM_FN(bladestle)
-
-struct BurnDriver BurnDrvBladestle = {
- "bladestle", "bladestl", NULL, NULL, "1987",
- "Blades of Steel (version E)\0", NULL, "Konami", "GX797",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_KONAMI, GBF_SPORTSMISC, 0,
- NULL, bladestleRomInfo, bladestleRomName, NULL, NULL, BladestlInputInfo, BladestlDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x120,
- 224, 256, 3, 4
-};
diff --git a/jan/src/burn/drv/konami/d_blockhl.cpp b/jan/src/burn/drv/konami/d_blockhl.cpp
deleted file mode 100644
index 011417d20..000000000
--- a/jan/src/burn/drv/konami/d_blockhl.cpp
+++ /dev/null
@@ -1,568 +0,0 @@
-// FB Alpha Block Hole driver module
-// Based on MAME driver by Nicola Salmoria
-
-#include "tiles_generic.h"
-#include "z80_intf.h"
-#include "konami_intf.h"
-#include "konamiic.h"
-#include "burn_ym2151.h"
-
-static UINT8 *AllMem;
-static UINT8 *MemEnd;
-static UINT8 *AllRam;
-static UINT8 *RamEnd;
-static UINT8 *DrvKonROM;
-static UINT8 *DrvZ80ROM;
-static UINT8 *DrvGfxROM0;
-static UINT8 *DrvGfxROM1;
-static UINT8 *DrvGfxROMExp0;
-static UINT8 *DrvGfxROMExp1;
-static UINT8 *DrvBankRAM;
-static UINT8 *DrvKonRAM;
-static UINT8 *DrvPalRAM;
-static UINT8 *DrvZ80RAM;
-static UINT32 *DrvPalette;
-static UINT8 DrvRecalc;
-
-static UINT8 *soundlatch;
-static UINT8 *nDrvKonamiBank;
-
-static UINT8 DrvJoy1[8];
-static UINT8 DrvJoy2[8];
-static UINT8 DrvJoy3[8];
-static UINT8 DrvDips[3];
-static UINT8 DrvInputs[3];
-static UINT8 DrvReset;
-
-static struct BurnInputInfo BlockhlInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy3 + 0, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 7, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy1 + 2, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy1 + 3, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy1 + 0, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy1 + 1, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy1 + 4, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy1 + 5, "p1 fire 2" },
- {"P1 Button 3", BIT_DIGITAL, DrvJoy1 + 6, "p1 fire 3" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy3 + 1, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy2 + 7, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvJoy2 + 2, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy2 + 3, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy2 + 0, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy2 + 1, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy2 + 4, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy2 + 5, "p2 fire 2" },
- {"P2 Button 3", BIT_DIGITAL, DrvJoy2 + 6, "p2 fire 3" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service", BIT_DIGITAL, DrvJoy3 + 2, "service" },
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip" },
- {"Dip C", BIT_DIPSWITCH, DrvDips + 2, "dip" },
-};
-
-STDINPUTINFO(Blockhl)
-
-static struct BurnDIPInfo BlockhlDIPList[]=
-{
- {0x14, 0xff, 0xff, 0xff, NULL },
- {0x15, 0xff, 0xff, 0x5f, NULL },
- {0x16, 0xff, 0xff, 0xf0, NULL },
-
- {0 , 0xfe, 0 , 16, "Coin A" },
- {0x14, 0x01, 0x0f, 0x02, "4 Coins 1 Credit" },
- {0x14, 0x01, 0x0f, 0x05, "3 Coins 1 Credit" },
- {0x14, 0x01, 0x0f, 0x08, "2 Coins 1 Credit" },
- {0x14, 0x01, 0x0f, 0x04, "3 Coins 2 Credits" },
- {0x14, 0x01, 0x0f, 0x01, "4 Coins 3 Credits" },
- {0x14, 0x01, 0x0f, 0x0f, "1 Coin 1 Credit" },
- {0x14, 0x01, 0x0f, 0x03, "3 Coins 4 Credits" },
- {0x14, 0x01, 0x0f, 0x07, "2 Coins 3 Credits" },
- {0x14, 0x01, 0x0f, 0x0e, "1 Coin 2 Credits" },
- {0x14, 0x01, 0x0f, 0x06, "2 Coins 5 Credits" },
- {0x14, 0x01, 0x0f, 0x0d, "1 Coin 3 Credits" },
- {0x14, 0x01, 0x0f, 0x0c, "1 Coin 4 Credits" },
- {0x14, 0x01, 0x0f, 0x0b, "1 Coin 5 Credits" },
- {0x14, 0x01, 0x0f, 0x0a, "1 Coin 6 Credits" },
- {0x14, 0x01, 0x0f, 0x09, "1 Coin 7 Credits" },
- {0x14, 0x01, 0x0f, 0x00, "Free Play" },
-
- {0 , 0xfe, 0 , 15, "Coin B" },
- {0x14, 0x01, 0xf0, 0x20, "4 Coins 1 Credit" },
- {0x14, 0x01, 0xf0, 0x50, "3 Coins 1 Credit" },
- {0x14, 0x01, 0xf0, 0x80, "2 Coins 1 Credit" },
- {0x14, 0x01, 0xf0, 0x40, "3 Coins 2 Credits" },
- {0x14, 0x01, 0xf0, 0x10, "4 Coins 3 Credits" },
- {0x14, 0x01, 0xf0, 0xf0, "1 Coin 1 Credit" },
- {0x14, 0x01, 0xf0, 0x30, "3 Coins 4 Credits" },
- {0x14, 0x01, 0xf0, 0x70, "2 Coins 3 Credits" },
- {0x14, 0x01, 0xf0, 0xe0, "1 Coin 2 Credits" },
- {0x14, 0x01, 0xf0, 0x60, "2 Coins 5 Credits" },
- {0x14, 0x01, 0xf0, 0xd0, "1 Coin 3 Credits" },
- {0x14, 0x01, 0xf0, 0xc0, "1 Coin 4 Credits" },
- {0x14, 0x01, 0xf0, 0xb0, "1 Coin 5 Credits" },
- {0x14, 0x01, 0xf0, 0xa0, "1 Coin 6 Credits" },
- {0x14, 0x01, 0xf0, 0x90, "1 Coin 7 Credits" },
-
- {0 , 0xfe, 0 , 2, "Lives" },
- {0x15, 0x01, 0x01, 0x01, "1" },
- {0x15, 0x01, 0x01, 0x00, "2" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x15, 0x01, 0x60, 0x60, "Easy" },
- {0x15, 0x01, 0x60, 0x40, "Normal" },
- {0x15, 0x01, 0x60, 0x20, "Difficult" },
- {0x15, 0x01, 0x60, 0x00, "Very Difficult" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x15, 0x01, 0x80, 0x80, "Off" },
- {0x15, 0x01, 0x80, 0x00, "On" },
-
-// {0 , 0xfe, 0 , 2, "Flip Screen" },
-// {0x16, 0x01, 0x10, 0x10, "Off" },
-// {0x16, 0x01, 0x10, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x16, 0x01, 0x40, 0x40, "Off" },
- {0x16, 0x01, 0x40, 0x00, "On" },
-};
-
-STDDIPINFO(Blockhl)
-
-void blockhl_main_write(UINT16 address, UINT8 data)
-{
- switch (address)
- {
- case 0x1f84:
- *soundlatch = data;
- return;
-
- case 0x1f88:
- ZetSetVector(0xff);
- ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
- return;
-
- case 0x1f8c:
- // watchdog
- return;
- }
-
- if ((address & 0xc000) == 0x0000) {
- K052109_051960_w(address & 0x3fff, data);
- return;
- }
-}
-
-UINT8 blockhl_main_read(UINT16 address)
-{
- switch (address)
- {
- case 0x1f94:
- return DrvDips[2] | (DrvInputs[2] & 0x0f);
-
- case 0x1f95:
- return DrvInputs[0];
-
- case 0x1f96:
- return DrvInputs[1];
-
- case 0x1f97:
- return DrvDips[0];
-
- case 0x1f98:
- return DrvDips[1];
- }
-
- if ((address & 0xc000) == 0x0000) {
- return K052109_051960_r(address & 0x3fff);
- }
-
- return 0;
-}
-
-void __fastcall blockhl_sound_write(UINT16 address, UINT8 data)
-{
- switch (address)
- {
- case 0xc000:
- BurnYM2151SelectRegister(data);
- return;
-
- case 0xc001:
- BurnYM2151WriteRegister(data);
- return;
- }
-}
-
-UINT8 __fastcall blockhl_sound_read(UINT16 address)
-{
- switch (address)
- {
- case 0xa000:
- ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
- return *soundlatch;
-
- case 0xc001:
- return BurnYM2151ReadStatus();
- }
-
- return 0;
-}
-
-static void blockhl_set_lines(INT32 lines)
-{
- INT32 nBank = (lines & 0x03) * 0x2000;
-
- konamiMapMemory(DrvKonROM + nBank, 0x6000, 0x7fff, MAP_ROM);
-
- if (~lines & 0x20) {
- konamiMapMemory(DrvPalRAM, 0x5800, 0x5fff, MAP_RAM);
- } else {
- konamiMapMemory(DrvBankRAM, 0x5800, 0x5fff, MAP_RAM);
- }
-
- K052109RMRDLine = lines & 0x40;
-
- nDrvKonamiBank[0] = lines;
-}
-
-static void K052109Callback(INT32 layer, INT32, INT32 *code, INT32 *color, INT32 *, INT32 *)
-{
- *code |= ((*color & 0x0f) << 8);
- *code &= 0xfff;
- *color = (layer << 4) + ((*color & 0xe0) >> 5);
-}
-
-static void K051960Callback(INT32 *code, INT32 *color, INT32 *priority, INT32 *)
-{
- *priority = ((*color & 0x10) >> 3) | 0xfc;
-
- *code &= 0x3ff;
- *color = 0x30 + (*color & 0x0f);
-}
-
-static INT32 DrvDoReset()
-{
- DrvReset = 0;
-
- memset (AllRam, 0, RamEnd - AllRam);
-
- konamiOpen(0);
- konamiReset();
- konamiClose();
-
- ZetOpen(0);
- ZetReset();
- ZetClose();
-
- BurnYM2151Reset();
-
- KonamiICReset();
-
- return 0;
-}
-
-static INT32 MemIndex()
-{
- UINT8 *Next; Next = AllMem;
-
- DrvKonROM = Next; Next += 0x010000;
- DrvZ80ROM = Next; Next += 0x010000;
-
- DrvGfxROM0 = Next; Next += 0x020000;
- DrvGfxROM1 = Next; Next += 0x020000;
- DrvGfxROMExp0 = Next; Next += 0x040000;
- DrvGfxROMExp1 = Next; Next += 0x040000;
-
- DrvPalette = (UINT32*)Next; Next += 0x400 * sizeof(UINT32);
-
- AllRam = Next;
-
- DrvBankRAM = Next; Next += 0x000800;
- DrvKonRAM = Next; Next += 0x001800;
- DrvPalRAM = Next; Next += 0x000800;
-
- DrvZ80RAM = Next; Next += 0x000800;
-
- soundlatch = Next; Next += 0x000001;
-
- nDrvKonamiBank = Next; Next += 0x000001;
-
- RamEnd = Next;
- MemEnd = Next;
-
- return 0;
-}
-
-static INT32 DrvInit()
-{
- GenericTilesInit();
-
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(DrvKonROM + 0x000000, 0, 1)) return 1;
-
- if (BurnLoadRom(DrvZ80ROM + 0x000000, 1, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x000000, 2, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x000001, 3, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x000002, 4, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x000003, 5, 4)) return 1;
-
- if (BurnLoadRom(DrvGfxROM1 + 0x000000, 6, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x000001, 7, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x000002, 8, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x000003, 9, 4)) return 1;
-
- K052109GfxDecode(DrvGfxROM0, DrvGfxROMExp0, 0x020000);
- K051960GfxDecode(DrvGfxROM1, DrvGfxROMExp1, 0x020000);
- }
-
- konamiInit(0);
- konamiOpen(0);
- konamiMapMemory(DrvKonRAM, 0x4000, 0x57ff, MAP_RAM);
- konamiMapMemory(DrvBankRAM, 0x5800, 0x5fff, MAP_RAM);
- konamiMapMemory(DrvKonROM + 0x00000, 0x6000, 0x7fff, MAP_ROM);
- konamiMapMemory(DrvKonROM + 0x08000, 0x8000, 0xffff, MAP_ROM);
- konamiSetWriteHandler(blockhl_main_write);
- konamiSetReadHandler(blockhl_main_read);
- konamiSetlinesCallback(blockhl_set_lines);
- konamiClose();
-
- ZetInit(0);
- ZetOpen(0);
- ZetMapArea(0x0000, 0x7fff, 0, DrvZ80ROM);
- ZetMapArea(0x0000, 0x7fff, 2, DrvZ80ROM);
- ZetMapArea(0x8000, 0x87ff, 0, DrvZ80RAM);
- ZetMapArea(0x8000, 0x87ff, 1, DrvZ80RAM);
- ZetMapArea(0x8000, 0x87ff, 2, DrvZ80RAM);
- ZetSetWriteHandler(blockhl_sound_write);
- ZetSetReadHandler(blockhl_sound_read);
- ZetClose();
-
- BurnYM2151Init(3579545);
- BurnYM2151SetAllRoutes(0.60, BURN_SND_ROUTE_BOTH);
-
- K052109Init(DrvGfxROM0, DrvGfxROMExp0, 0x1ffff);
- K052109SetCallback(K052109Callback);
- K052109AdjustScroll(8, 0);
-
- K051960Init(DrvGfxROM1, DrvGfxROMExp1, 0x1ffff);
- K051960SetCallback(K051960Callback);
- K051960SetSpriteOffset(8, 0);
-
- DrvDoReset();
-
- return 0;
-}
-
-static INT32 DrvExit()
-{
- GenericTilesExit();
-
- KonamiICExit();
-
- konamiExit();
- ZetExit();
-
- BurnYM2151Exit();
-
- BurnFree (AllMem);
-
- return 0;
-}
-
-static INT32 DrvDraw()
-{
- KonamiRecalcPalette(DrvPalRAM, DrvPalette, 0x800);
-
- K052109UpdateScroll();
-
- K052109RenderLayer(2, K052109_OPAQUE, 0);
- K052109RenderLayer(1, 0, 1);
- K052109RenderLayer(0, 0, 2);
-
- K051960SpritesRender(0, -1);
-
- KonamiBlendCopy(DrvPalette);
-
- return 0;
-}
-
-static INT32 DrvFrame()
-{
- if (DrvReset) {
- DrvDoReset();
- }
-
- {
- memset (DrvInputs, 0xff, 3);
- for (INT32 i = 0; i < 8; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- DrvInputs[2] ^= (DrvJoy3[i] & 1) << i;
- }
-
- // Clear opposites
- if ((DrvInputs[0] & 0x03) == 0) DrvInputs[0] |= 0x03;
- if ((DrvInputs[0] & 0x0c) == 0) DrvInputs[0] |= 0x0c;
- if ((DrvInputs[1] & 0x03) == 0) DrvInputs[1] |= 0x03;
- if ((DrvInputs[1] & 0x0c) == 0) DrvInputs[1] |= 0x0c;
- }
-
- konamiNewFrame();
- ZetNewFrame();
-
- INT32 nSoundBufferPos = 0;
- INT32 nInterleave = 100;
- INT32 nCyclesTotal[2] = { (((3000000 / 60) * 133) / 100) /* 33% overclock */, 3579545 / 60 };
- INT32 nCyclesDone[2] = { 0, 0 };
-
- ZetOpen(0);
- konamiOpen(0);
-
- for (INT32 i = 0; i < nInterleave; i++)
- {
- INT32 nSegment = (nCyclesTotal[0] / nInterleave) * (i + 1);
-
- nCyclesDone[0] += konamiRun(nSegment - nCyclesDone[0]);
-
- nSegment = (nCyclesTotal[1] / nInterleave) * (i + 1);
-
- nCyclesDone[1] += ZetRun(nSegment - nCyclesDone[1]);
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen / nInterleave;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- BurnYM2151Render(pSoundBuf, nSegmentLength);
- nSoundBufferPos += nSegmentLength;
- }
- }
-
- if (K052109_irq_enabled && (nDrvKonamiBank[0] & 0x03) == 0)
- konamiSetIrqLine(KONAMI_IRQ_LINE, CPU_IRQSTATUS_AUTO);
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
- if (nSegmentLength) {
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- BurnYM2151Render(pSoundBuf, nSegmentLength);
- }
- }
-
- konamiClose();
- ZetClose();
-
- if (pBurnDraw) {
- DrvDraw();
- }
-
- return 0;
-}
-
-static INT32 DrvScan(INT32 nAction,INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin) {
- *pnMin = 0x029705;
- }
-
- if (nAction & ACB_VOLATILE) {
- memset(&ba, 0, sizeof(ba));
-
- ba.Data = AllRam;
- ba.nLen = RamEnd - AllRam;
- ba.szName = "All Ram";
- BurnAcb(&ba);
-
- konamiCpuScan(nAction);
- ZetScan(nAction);
-
- BurnYM2151Scan(nAction);
- KonamiICScan(nAction);
- }
-
- if (nAction & ACB_WRITE) {
- konamiOpen(0);
- blockhl_set_lines(nDrvKonamiBank[0]);
- konamiClose();
- }
-
- return 0;
-}
-
-
-// Block Hole
-
-static struct BurnRomInfo blockhlRomDesc[] = {
- { "973l02.e21", 0x10000, 0xe14f849a, 1 | BRF_PRG | BRF_ESS }, // 0 Konami Custom Code
-
- { "973d01.g6", 0x08000, 0xeeee9d92, 2 | BRF_PRG | BRF_ESS }, // 1 Z80 Code
-
- { "973f07.k15", 0x08000, 0x1a8cd9b4, 3 | BRF_GRA }, // 2 Background Tiles
- { "973f08.k18", 0x08000, 0x952b51a6, 3 | BRF_GRA }, // 3
- { "973f09.k20", 0x08000, 0x77841594, 3 | BRF_GRA }, // 4
- { "973f10.k23", 0x08000, 0x09039fab, 3 | BRF_GRA }, // 5
-
- { "973f06.k12", 0x08000, 0x51acfdb6, 4 | BRF_GRA }, // 6 Sprites
- { "973f05.k9", 0x08000, 0x4cfea298, 4 | BRF_GRA }, // 7
- { "973f04.k7", 0x08000, 0x69ca41bd, 4 | BRF_GRA }, // 8
- { "973f03.k4", 0x08000, 0x21e98472, 4 | BRF_GRA }, // 9
-
- { "973a11.h10", 0x00100, 0x46d28fe9, 5 | BRF_OPT }, // 10 Proms
-};
-
-STD_ROM_PICK(blockhl)
-STD_ROM_FN(blockhl)
-
-struct BurnDriver BurnDrvBlockhl = {
- "blockhl", NULL, NULL, NULL, "1989",
- "Block Hole\0", NULL, "Konami", "GX973",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_PREFIX_KONAMI, GBF_PUZZLE, 0,
- NULL, blockhlRomInfo, blockhlRomName, NULL, NULL, BlockhlInputInfo, BlockhlDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x400,
- 288, 224, 4, 3
-};
-
-
-// Quarth (Japan)
-
-static struct BurnRomInfo quarthRomDesc[] = {
- { "973j02.e21", 0x10000, 0x27a90118, 1 | BRF_PRG | BRF_ESS }, // 0 Konami Custom Code
-
- { "973d01.g6", 0x08000, 0xeeee9d92, 2 | BRF_PRG | BRF_ESS }, // 1 Z80 Code
-
- { "973e07.k15", 0x08000, 0x0bd6b0f8, 3 | BRF_GRA }, // 2 Background Tiles
- { "973e08.k18", 0x08000, 0x104d0d5f, 3 | BRF_GRA }, // 3
- { "973e09.k20", 0x08000, 0xbd3a6f24, 3 | BRF_GRA }, // 4
- { "973e10.k23", 0x08000, 0xcf5e4b86, 3 | BRF_GRA }, // 5
-
- { "973e06.k12", 0x08000, 0x0d58af85, 4 | BRF_GRA }, // 6 Sprites
- { "973e05.k9", 0x08000, 0x15d822cb, 4 | BRF_GRA }, // 7
- { "973e04.k7", 0x08000, 0xd70f4a2c, 4 | BRF_GRA }, // 8
- { "973e03.k4", 0x08000, 0x2c5a4b4b, 4 | BRF_GRA }, // 9
-
- { "973a11.h10", 0x00100, 0x46d28fe9, 5 | BRF_OPT }, // 10 Proms
-};
-
-STD_ROM_PICK(quarth)
-STD_ROM_FN(quarth)
-
-struct BurnDriver BurnDrvQuarth = {
- "quarth", "blockhl", NULL, NULL, "1989",
- "Quarth (Japan)\0", NULL, "Konami", "GX973",
- L"Quarth\0\u30AF\u30A9\u30FC\u30B9 (Japan)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_KONAMI, GBF_PUZZLE, 0,
- NULL, quarthRomInfo, quarthRomName, NULL, NULL, BlockhlInputInfo, BlockhlDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x400,
- 288, 224, 4, 3
-};
diff --git a/jan/src/burn/drv/konami/d_bottom9.cpp b/jan/src/burn/drv/konami/d_bottom9.cpp
deleted file mode 100644
index 12b0b2e8d..000000000
--- a/jan/src/burn/drv/konami/d_bottom9.cpp
+++ /dev/null
@@ -1,908 +0,0 @@
-// FB Alpha Bottom of the Nineth driver module
-// Based on MAME driver by Nicola Salmoria
-
-#include "tiles_generic.h"
-#include "z80_intf.h"
-#include "konamiic.h"
-#include "k007232.h"
-#include "m6809_intf.h"
-
-static UINT8 *AllMem;
-static UINT8 *MemEnd;
-static UINT8 *AllRam;
-static UINT8 *RamEnd;
-static UINT8 *DrvM6809ROM;
-static UINT8 *DrvZ80ROM;
-static UINT8 *DrvGfxROM0;
-static UINT8 *DrvGfxROM1;
-static UINT8 *DrvGfxROM2;
-static UINT8 *DrvGfxROMExp0;
-static UINT8 *DrvGfxROMExp1;
-static UINT8 *DrvGfxROMExp2;
-static UINT8 *DrvSndROM0;
-static UINT8 *DrvSndROM1;
-static UINT8 *DrvM6809RAM;
-static UINT8 *DrvPalRAM;
-static UINT8 *DrvZ80RAM;
-
-static UINT32 *DrvPalette;
-static UINT8 DrvRecalc;
-
-static UINT8 *soundlatch;
-static UINT8 *nmi_enable;
-static UINT8 *nDrvBank;
-
-static INT32 bottom9_video_enable;
-static INT32 zoomreadroms;
-static INT32 K052109_selected;
-
-static UINT8 DrvJoy1[8];
-static UINT8 DrvJoy2[8];
-static UINT8 DrvJoy3[8];
-static UINT8 DrvDips[3];
-static UINT8 DrvReset;
-static UINT8 DrvInputs[3];
-
-static struct BurnInputInfo Bottom9InputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy3 + 0, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 0, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy1 + 1, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy1 + 2, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy1 + 3, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy1 + 4, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy1 + 5, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy1 + 6, "p1 fire 2" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy3 + 1, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy2 + 0, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvJoy2 + 1, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy2 + 2, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy2 + 3, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy2 + 4, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy2 + 5, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy2 + 6, "p2 fire 2" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service", BIT_DIGITAL, DrvJoy3 + 2, "service" },
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip" },
- {"Dip C", BIT_DIPSWITCH, DrvDips + 2, "dip" },
-};
-
-STDINPUTINFO(Bottom9)
-
-static struct BurnDIPInfo Bottom9DIPList[]=
-{
- {0x12, 0xff, 0xff, 0xff, NULL },
- {0x13, 0xff, 0xff, 0x4c, NULL },
- {0x14, 0xff, 0xff, 0xf0, NULL },
-
- {0 , 0xfe, 0 , 16, "Coin A" },
- {0x12, 0x01, 0x0f, 0x02, "4 Coins 1 Credit" },
- {0x12, 0x01, 0x0f, 0x05, "3 Coins 1 Credit" },
- {0x12, 0x01, 0x0f, 0x08, "2 Coins 1 Credit" },
- {0x12, 0x01, 0x0f, 0x04, "3 Coins 2 Credits" },
- {0x12, 0x01, 0x0f, 0x01, "4 Coins 3 Credits" },
- {0x12, 0x01, 0x0f, 0x0f, "1 Coin 1 Credit" },
- {0x12, 0x01, 0x0f, 0x00, "4 Coins 5 Credits" },
- {0x12, 0x01, 0x0f, 0x03, "3 Coins 4 Credits" },
- {0x12, 0x01, 0x0f, 0x07, "2 Coins 3 Credits" },
- {0x12, 0x01, 0x0f, 0x0e, "1 Coin 2 Credits" },
- {0x12, 0x01, 0x0f, 0x06, "2 Coins 5 Credits" },
- {0x12, 0x01, 0x0f, 0x0d, "1 Coin 3 Credits" },
- {0x12, 0x01, 0x0f, 0x0c, "1 Coin 4 Credits" },
- {0x12, 0x01, 0x0f, 0x0b, "1 Coin 5 Credits" },
- {0x12, 0x01, 0x0f, 0x0a, "1 Coin 6 Credits" },
- {0x12, 0x01, 0x0f, 0x09, "1 Coin 7 Credits" },
-
- {0 , 0xfe, 0 , 16, "Coin B" },
- {0x12, 0x01, 0xf0, 0x20, "4 Coins 1 Credit" },
- {0x12, 0x01, 0xf0, 0x50, "3 Coins 1 Credit" },
- {0x12, 0x01, 0xf0, 0x80, "2 Coins 1 Credit" },
- {0x12, 0x01, 0xf0, 0x40, "3 Coins 2 Credits" },
- {0x12, 0x01, 0xf0, 0x10, "4 Coins 3 Credits" },
- {0x12, 0x01, 0xf0, 0xf0, "1 Coin 1 Credit" },
- {0x12, 0x01, 0xf0, 0x00, "4 Coins 5 Credits" },
- {0x12, 0x01, 0xf0, 0x30, "3 Coins 4 Credits" },
- {0x12, 0x01, 0xf0, 0x70, "2 Coins 3 Credits" },
- {0x12, 0x01, 0xf0, 0xe0, "1 Coin 2 Credits" },
- {0x12, 0x01, 0xf0, 0x60, "2 Coins 5 Credits" },
- {0x12, 0x01, 0xf0, 0xd0, "1 Coin 3 Credits" },
- {0x12, 0x01, 0xf0, 0xc0, "1 Coin 4 Credits" },
- {0x12, 0x01, 0xf0, 0xb0, "1 Coin 5 Credits" },
- {0x12, 0x01, 0xf0, 0xa0, "1 Coin 6 Credits" },
- {0x12, 0x01, 0xf0, 0x90, "1 Coin 7 Credits" },
-
- {0 , 0xfe, 0 , 8, "Play Time" },
- {0x13, 0x01, 0x07, 0x07, "1'00" },
- {0x13, 0x01, 0x07, 0x06, "1'10" },
- {0x13, 0x01, 0x07, 0x05, "1'20" },
- {0x13, 0x01, 0x07, 0x04, "1'30" },
- {0x13, 0x01, 0x07, 0x03, "1'40" },
- {0x13, 0x01, 0x07, 0x02, "1'50" },
- {0x13, 0x01, 0x07, 0x01, "2'00" },
- {0x13, 0x01, 0x07, 0x00, "2'10" },
-
- {0 , 0xfe, 0 , 4, "Bonus Time" },
- {0x13, 0x01, 0x18, 0x18, "00" },
- {0x13, 0x01, 0x18, 0x10, "20" },
- {0x13, 0x01, 0x18, 0x08, "30" },
- {0x13, 0x01, 0x18, 0x00, "40" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x13, 0x01, 0x60, 0x60, "Easy" },
- {0x13, 0x01, 0x60, 0x40, "Normal" },
- {0x13, 0x01, 0x60, 0x20, "Difficult" },
- {0x13, 0x01, 0x60, 0x00, "Very Difficult" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x13, 0x01, 0x80, 0x80, "Off" },
- {0x13, 0x01, 0x80, 0x00, "On" },
-
-// {0 , 0xfe, 0 , 2, "Flip Screen" },
-// {0x14, 0x01, 0x10, 0x10, "Off" },
-// {0x14, 0x01, 0x10, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x14, 0x01, 0x40, 0x40, "Off" },
- {0x14, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Fielder Control" },
- {0x14, 0x01, 0x80, 0x80, "Normal" },
- {0x14, 0x01, 0x80, 0x00, "Auto" },
-};
-
-STDDIPINFO(Bottom9)
-
-static struct BurnDIPInfo MstadiumDIPList[]=
-{
- {0x12, 0xff, 0xff, 0xff, NULL },
- {0x13, 0xff, 0xff, 0x49, NULL },
- {0x14, 0xff, 0xff, 0xf0, NULL },
-
- {0 , 0xfe, 0 , 16, "Coin A" },
- {0x12, 0x01, 0x0f, 0x02, "4 Coins 1 Credit" },
- {0x12, 0x01, 0x0f, 0x05, "3 Coins 1 Credit" },
- {0x12, 0x01, 0x0f, 0x08, "2 Coins 1 Credit" },
- {0x12, 0x01, 0x0f, 0x04, "3 Coins 2 Credits" },
- {0x12, 0x01, 0x0f, 0x01, "4 Coins 3 Credits" },
- {0x12, 0x01, 0x0f, 0x0f, "1 Coin 1 Credit" },
- {0x12, 0x01, 0x0f, 0x00, "4 Coins 5 Credits" },
- {0x12, 0x01, 0x0f, 0x03, "3 Coins 4 Credits" },
- {0x12, 0x01, 0x0f, 0x07, "2 Coins 3 Credits" },
- {0x12, 0x01, 0x0f, 0x0e, "1 Coin 2 Credits" },
- {0x12, 0x01, 0x0f, 0x06, "2 Coins 5 Credits" },
- {0x12, 0x01, 0x0f, 0x0d, "1 Coin 3 Credits" },
- {0x12, 0x01, 0x0f, 0x0c, "1 Coin 4 Credits" },
- {0x12, 0x01, 0x0f, 0x0b, "1 Coin 5 Credits" },
- {0x12, 0x01, 0x0f, 0x0a, "1 Coin 6 Credits" },
- {0x12, 0x01, 0x0f, 0x09, "1 Coin 7 Credits" },
-
- {0 , 0xfe, 0 , 16, "Coin B" },
- {0x12, 0x01, 0xf0, 0x20, "4 Coins 1 Credit" },
- {0x12, 0x01, 0xf0, 0x50, "3 Coins 1 Credit" },
- {0x12, 0x01, 0xf0, 0x80, "2 Coins 1 Credit" },
- {0x12, 0x01, 0xf0, 0x40, "3 Coins 2 Credits" },
- {0x12, 0x01, 0xf0, 0x10, "4 Coins 3 Credits" },
- {0x12, 0x01, 0xf0, 0xf0, "1 Coin 1 Credit" },
- {0x12, 0x01, 0xf0, 0x00, "4 Coins 5 Credits" },
- {0x12, 0x01, 0xf0, 0x30, "3 Coins 4 Credits" },
- {0x12, 0x01, 0xf0, 0x70, "2 Coins 3 Credits" },
- {0x12, 0x01, 0xf0, 0xe0, "1 Coin 2 Credits" },
- {0x12, 0x01, 0xf0, 0x60, "2 Coins 5 Credits" },
- {0x12, 0x01, 0xf0, 0xd0, "1 Coin 3 Credits" },
- {0x12, 0x01, 0xf0, 0xc0, "1 Coin 4 Credits" },
- {0x12, 0x01, 0xf0, 0xb0, "1 Coin 5 Credits" },
- {0x12, 0x01, 0xf0, 0xa0, "1 Coin 6 Credits" },
- {0x12, 0x01, 0xf0, 0x90, "1 Coin 7 Credits" },
-
- {0 , 0xfe, 0 , 4, "Play Inning" },
- {0x13, 0x01, 0x03, 0x03, "1 Inning" },
- {0x13, 0x01, 0x03, 0x02, "2 Inning" },
- {0x13, 0x01, 0x03, 0x01, "3 Inning" },
- {0x13, 0x01, 0x03, 0x00, "4 Inning" },
-
- {0 , 0xfe, 0 , 4, "Play Inning Time" },
- {0x13, 0x01, 0x0c, 0x0c, "06 Min" },
- {0x13, 0x01, 0x0c, 0x08, "08 Min" },
- {0x13, 0x01, 0x0c, 0x04, "10 Min" },
- {0x13, 0x01, 0x0c, 0x00, "12 Min" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x13, 0x01, 0x60, 0x60, "Easy" },
- {0x13, 0x01, 0x60, 0x40, "Normal" },
- {0x13, 0x01, 0x60, 0x20, "Difficult" },
- {0x13, 0x01, 0x60, 0x00, "Very Difficult" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x13, 0x01, 0x80, 0x80, "Off" },
- {0x13, 0x01, 0x80, 0x00, "On" },
-
-// {0 , 0xfe, 0 , 2, "Flip Screen" },
-// {0x14, 0x01, 0x10, 0x10, "Off" },
-// {0x14, 0x01, 0x10, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x14, 0x01, 0x40, 0x40, "Off" },
- {0x14, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Fielder Control" },
- {0x14, 0x01, 0x80, 0x80, "Normal" },
- {0x14, 0x01, 0x80, 0x00, "Auto" },
-};
-
-STDDIPINFO(Mstadium)
-
-static void bankswitch(INT32 data)
-{
- nDrvBank[0] = data;
-
- INT32 offs = 0x10000 + (data & 0x1e) * 0x1000;
-
- M6809MapMemory(DrvM6809ROM + offs, 0x6000, 0x7fff, MAP_ROM);
-}
-
-void bottom9_main_write(UINT16 address, UINT8 data)
-{
- switch (address)
- {
- case 0x1f80:
- bankswitch(data);
- return;
-
- case 0x1f90:
- {
- K052109RMRDLine = data & 0x04;
- bottom9_video_enable = ~data & 0x08;
- zoomreadroms = data & 0x10;
- K052109_selected = data & 0x20;
- }
- return;
-
- case 0x1fa0:
- // watchdog
- return;
-
- case 0x1fb0:
- *soundlatch = data;
- return;
-
- case 0x1fc0:
- ZetSetVector(0xff);
- ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
- return;
- }
-
- if ((address & 0xfff0) == 0x1ff0) {
- K051316WriteCtrl(0, address & 0x0f, data);
- return;
- }
-
- if (K052109_selected == 0) {
- if ((address & 0xf800) == 0x0000) {
- K051316Write(0, address & 0x7ff, data);
- return;
- }
-
- if ((address & 0xf800) == 0x2000) {
- DrvPalRAM[address & 0x7ff] = data;
- return;
- }
- }
-
- if ((address & 0xc000) == 0x0000) {
- K052109_051960_w(address & 0x3fff, data);
- return;
- }
-}
-
-UINT8 bottom9_main_read(UINT16 address)
-{
- switch (address)
- {
- case 0x1fd0:
- return (DrvInputs[2] & 0x0f) | (DrvDips[2] & 0xf0);
-
- case 0x1fd1:
- return DrvInputs[0];
-
- case 0x1fd2:
- return DrvInputs[1];
-
- case 0x1fd3:
- return DrvDips[0];
-
- case 0x1fe0:
- return DrvDips[1];
- }
-
-
- if (K052109_selected == 0) {
- if ((address & 0xf800) == 0x0000) {
- if (zoomreadroms)
- return K051316ReadRom(0, address & 0x7ff);
- else
- return K051316Read(0, address & 0x7ff);
- }
-
- if ((address & 0xf800) == 0x2000) {
- return DrvPalRAM[address & 0x7ff];
- }
- }
-
- if ((address & 0xc000) == 0x0000) {
- return K052109_051960_r(address & 0x3fff);
- }
-
- return 0;
-}
-
-static void sound_bank_w(INT32 data)
-{
- k007232_set_bank(0, (data >> 0) & 0x03, (data >> 2) & 0x03);
- k007232_set_bank(1, (data >> 4) & 0x03, (data >> 6) & 0x03);
-}
-
-void __fastcall bottom9_sound_write(UINT16 address, UINT8 data)
-{
- if ((address & 0xfff0) == 0xa000) {
- K007232WriteReg(0, address & 0x0f, data);
- return;
- }
-
- if ((address & 0xfff0) == 0xb000) {
- K007232WriteReg(1, address & 0x0f, data);
- return;
- }
-
- switch (address)
- {
- case 0x9000:
- sound_bank_w(data);
- return;
-
- case 0xf000:
- *nmi_enable = data;
- return;
- }
-}
-
-UINT8 __fastcall bottom9_sound_read(UINT16 address)
-{
- if ((address & 0xfff0) == 0xa000) {
- return K007232ReadReg(0, address & 0x0f);
- }
-
- if ((address & 0xfff0) == 0xb000) {
- return K007232ReadReg(1, address & 0x0f);
- }
-
- switch (address)
- {
- case 0xd000:
- ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
- return *soundlatch;
- }
-
- return 0;
-}
-
-static void K052109Callback(INT32 layer, INT32, INT32 *code, INT32 *color, INT32 *, INT32 *)
-{
- *code |= (*color & 0x3f) << 8;
- *color = ((layer & 2) << 3) | ((*color & 0xc0) >> 6);
-}
-
-static void K051960Callback(INT32 *code, INT32 *color, INT32 *priority, INT32 *)
-{
- *priority = (*color & 0x30) >> 4;
- *color = 0x20 + (*color & 0x0f);
- *code &= 0x1fff;
-}
-
-static void K051316Callback(INT32 *code,INT32 *color,INT32 *flags)
-{
- *flags = (*color & 0x40) >> 6;
- *code |= ((*color & 0x03) << 8);
- *color = 0x30 | ((*color & 0x3c) >> 2);
-}
-
-static void DrvK007232VolCallback0(int v)
-{
- K007232SetVolume(0,0,(v >> 4) * 0x11,0);
- K007232SetVolume(0,1,0,(v & 0x0f) * 0x11);
-}
-
-static void DrvK007232VolCallback1(INT32 v)
-{
- K007232SetVolume(1,0,(v >> 4) * 0x11,0);
- K007232SetVolume(1,1,0,(v & 0x0f) * 0x11);
-}
-
-static INT32 DrvDoReset()
-{
- DrvReset = 0;
-
- memset (AllRam, 0, RamEnd - AllRam);
-
- M6809Open(0);
- M6809Reset();
- M6809Close();
-
- ZetOpen(0);
- ZetReset();
- ZetClose();
-
- KonamiICReset();
-
- bottom9_video_enable = 0;
- zoomreadroms = 0;
- K052109_selected = 0;
-
- return 0;
-}
-
-static INT32 MemIndex()
-{
- UINT8 *Next; Next = AllMem;
-
- DrvM6809ROM = Next; Next += 0x030000;
- DrvZ80ROM = Next; Next += 0x010000;
-
- DrvGfxROM0 = Next; Next += 0x080000;
- DrvGfxROM1 = Next; Next += 0x100000;
- DrvGfxROM2 = Next; Next += 0x020000;
- DrvGfxROMExp0 = Next; Next += 0x100000;
- DrvGfxROMExp1 = Next; Next += 0x200000;
- DrvGfxROMExp2 = Next; Next += 0x040000;
-
- DrvSndROM0 = Next; Next += 0x040000;
- DrvSndROM1 = Next; Next += 0x040000;
-
- DrvPalette = (UINT32*)Next; Next += 0x400 * sizeof(UINT32);
-
- AllRam = Next;
-
- DrvM6809RAM = Next; Next += 0x002000;
- DrvPalRAM = Next; Next += 0x000800;
-
- DrvZ80RAM = Next; Next += 0x000800;
-
- soundlatch = Next; Next += 0x000001;
- nmi_enable = Next; Next += 0x000001;
- nDrvBank = Next; Next += 0x000001;
-
- RamEnd = Next;
- MemEnd = Next;
-
- return 0;
-}
-
-static INT32 DrvInit()
-{
- GenericTilesInit();
-
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(DrvM6809ROM + 0x010000, 0, 1)) return 1;
- if (BurnLoadRom(DrvM6809ROM + 0x000000, 1, 1)) return 1;
- memcpy (DrvM6809ROM + 0x20000, DrvM6809ROM + 0x00000, 0x8000);
- memcpy (DrvM6809ROM + 0x28000, DrvM6809ROM + 0x00000, 0x8000);
-
- if (BurnLoadRom(DrvZ80ROM + 0x000000, 2, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x000000, 3, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x000001, 4, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x000002, 5, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x000003, 6, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x040000, 7, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x040001, 8, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x040002, 9, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x040003, 10, 4)) return 1;
-
- if (BurnLoadRom(DrvGfxROM1 + 0x000000, 11, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x000001, 12, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x000002, 13, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x000003, 14, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x040000, 15, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x040001, 16, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x040002, 17, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x040003, 18, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x080000, 19, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x080001, 20, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x080002, 21, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x080003, 22, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x0c0000, 23, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x0c0001, 24, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x0c0002, 25, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x0c0003, 26, 4)) return 1;
-
- if (BurnLoadRom(DrvGfxROM2 + 0x000000, 27, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x010000, 28, 1)) return 1;
-
- if (BurnLoadRom(DrvSndROM0 + 0x000000, 29, 1)) return 1;
- if (BurnLoadRom(DrvSndROM0 + 0x010000, 30, 1)) return 1;
- if (BurnLoadRom(DrvSndROM0 + 0x020000, 31, 1)) return 1;
- if (BurnLoadRom(DrvSndROM0 + 0x030000, 32, 1)) return 1;
-
- if (BurnLoadRom(DrvSndROM1 + 0x000000, 33, 1)) return 1;
- if (BurnLoadRom(DrvSndROM1 + 0x010000, 34, 1)) return 1;
- if (BurnLoadRom(DrvSndROM1 + 0x020000, 35, 1)) return 1;
- if (BurnLoadRom(DrvSndROM1 + 0x030000, 36, 1)) return 1;
-
- K052109GfxDecode(DrvGfxROM0, DrvGfxROMExp0, 0x080000);
- K051960GfxDecode(DrvGfxROM1, DrvGfxROMExp1, 0x100000);
- }
-
- M6809Init(1);
- M6809Open(0);
- M6809MapMemory(DrvM6809RAM, 0x4000, 0x5fff, MAP_RAM);
- M6809MapMemory(DrvM6809ROM + 0x10000, 0x6000, 0x7fff, MAP_ROM);
- M6809MapMemory(DrvM6809ROM + 0x08000, 0x8000, 0xffff, MAP_ROM);
- M6809SetWriteHandler(bottom9_main_write);
- M6809SetReadHandler(bottom9_main_read);
- M6809Close();
-
- ZetInit(0);
- ZetOpen(0);
- ZetMapArea(0x0000, 0x7fff, 0, DrvZ80ROM);
- ZetMapArea(0x0000, 0x7fff, 2, DrvZ80ROM);
- ZetMapArea(0x8000, 0x87ff, 0, DrvZ80RAM);
- ZetMapArea(0x8000, 0x87ff, 1, DrvZ80RAM);
- ZetMapArea(0x8000, 0x87ff, 2, DrvZ80RAM);
- ZetSetWriteHandler(bottom9_sound_write);
- ZetSetReadHandler(bottom9_sound_read);
- ZetClose();
-
- K007232Init(0, 3579545, DrvSndROM0, 0x40000);
- K007232SetPortWriteHandler(0, DrvK007232VolCallback0);
- K007232PCMSetAllRoutes(0, 0.40, BURN_SND_ROUTE_BOTH);
-
- K007232Init(1, 3579545, DrvSndROM1, 0x40000);
- K007232SetPortWriteHandler(1, DrvK007232VolCallback1);
- K007232PCMSetAllRoutes(1, 0.40, BURN_SND_ROUTE_BOTH);
-
- K052109Init(DrvGfxROM0, DrvGfxROMExp0, 0x7ffff);
- K052109SetCallback(K052109Callback);
- K052109AdjustScroll(8, 0);
-
- K051960Init(DrvGfxROM1, DrvGfxROMExp1, 0xfffff);
- K051960SetCallback(K051960Callback);
- K051960SetSpriteOffset(8, 0);
-
- K051316Init(0, DrvGfxROM2, DrvGfxROMExp2, 0x1ffff, K051316Callback, 4, 0);
- K051316SetOffset(0, -112, -16);
-
- DrvDoReset();
-
- return 0;
-}
-
-static INT32 DrvExit()
-{
- GenericTilesExit();
-
- KonamiICExit();
-
- M6809Exit();
- ZetExit();
-
- K007232Exit();
-
- BurnFree (AllMem);
-
- return 0;
-}
-
-static INT32 DrvDraw()
-{
- KonamiRecalcPalette(DrvPalRAM, DrvPalette, 0x800);
-
- K052109UpdateScroll();
-
- KonamiClearBitmaps(0);
-
- K051960SpritesRender(1, 1);
- K051316_zoom_draw(0, 0);
- K051960SpritesRender(0, 0);
- K052109RenderLayer(2, 0, 0);
- K051960SpritesRender(2, 3);
- K052109RenderLayer(1, 0, 0);
-
- KonamiBlendCopy(DrvPalette);
-
- return 0;
-}
-
-static INT32 DrvFrame()
-{
- if (DrvReset) {
- DrvDoReset();
- }
-
- {
- memset (DrvInputs, 0xff, 3);
- for (INT32 i = 0; i < 8; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- DrvInputs[2] ^= (DrvJoy3[i] & 1) << i;
- }
-
- // Clear opposites
- if ((DrvInputs[0] & 0x06) == 0) DrvInputs[0] |= 0x06;
- if ((DrvInputs[0] & 0x18) == 0) DrvInputs[0] |= 0x18;
- if ((DrvInputs[1] & 0x06) == 0) DrvInputs[1] |= 0x06;
- if ((DrvInputs[1] & 0x18) == 0) DrvInputs[1] |= 0x18;
- }
-
- INT32 nInterleave = 8;
- INT32 nCyclesTotal[2] = { 2000000 / 60, 3579545 / 60 };
- INT32 nCyclesDone[2] = { 0, 0 };
-
- ZetOpen(0);
- M6809Open(0);
-
- for (INT32 i = 0; i < nInterleave; i++)
- {
- INT32 nSegment = (nCyclesTotal[0] / nInterleave) * (i + 1);
-
- nCyclesDone[0] += M6809Run(nSegment - nCyclesDone[0]);
-
- nSegment = (nCyclesTotal[1] / nInterleave) * (i + 1);
-
- nCyclesDone[1] += ZetRun(nSegment - nCyclesDone[1]);
- if (*nmi_enable) ZetNmi();
- }
-
- if (K052109_irq_enabled) M6809SetIRQLine(0, CPU_IRQSTATUS_AUTO);
-
- if (pBurnSoundOut) {
- memset(pBurnSoundOut, 0, nBurnSoundLen * sizeof(INT16) * 2);
- K007232Update(0, pBurnSoundOut, nBurnSoundLen);
- K007232Update(1, pBurnSoundOut, nBurnSoundLen);
- }
-
- M6809Close();
- ZetClose();
-
- if (pBurnDraw) {
- DrvDraw();
- }
-
- return 0;
-}
-
-static INT32 DrvScan(INT32 nAction,INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin) {
- *pnMin = 0x029705;
- }
-
- if (nAction & ACB_VOLATILE) {
- memset(&ba, 0, sizeof(ba));
-
- ba.Data = AllRam;
- ba.nLen = RamEnd - AllRam;
- ba.szName = "All Ram";
- BurnAcb(&ba);
-
- M6809Scan(nAction);
- ZetScan(nAction);
-
- K007232Scan(nAction, pnMin);
-
- KonamiICScan(nAction);
-
- SCAN_VAR(bottom9_video_enable);
- SCAN_VAR(zoomreadroms);
- SCAN_VAR(K052109_selected);
- }
-
- if (nAction & ACB_WRITE) {
- M6809Open(0);
- bankswitch(nDrvBank[0]);
- M6809Close();
- }
-
- return 0;
-}
-
-
-// Bottom of the Ninth (ver. T)
-
-static struct BurnRomInfo bottom9RomDesc[] = {
- { "891n03.k17", 0x10000, 0x8b083ff3, 1 | BRF_PRG | BRF_ESS }, // 0 M6809 Code
- { "891-t02.k15", 0x10000, 0x2c10ced2, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "891j01.g8", 0x08000, 0x31b0a0a8, 2 | BRF_PRG | BRF_ESS }, // 2 Z80 Code
-
- { "891e10c", 0x10000, 0x209b0431, 3 | BRF_GRA }, // 3 K052109 Tiles
- { "891e10a", 0x10000, 0x8020a9e8, 3 | BRF_GRA }, // 4
- { "891e09c", 0x10000, 0x9dcaefbf, 3 | BRF_GRA }, // 5
- { "891e09a", 0x10000, 0x56b0ead9, 3 | BRF_GRA }, // 6
- { "891e10d", 0x10000, 0x16d5fd7a, 3 | BRF_GRA }, // 7
- { "891e10b", 0x10000, 0x30121cc0, 3 | BRF_GRA }, // 8
- { "891e09d", 0x10000, 0x4e1335e6, 3 | BRF_GRA }, // 9
- { "891e09b", 0x10000, 0xb6f914fb, 3 | BRF_GRA }, // 10
-
- { "891e06e", 0x10000, 0x0b04db1c, 4 | BRF_GRA }, // 11 K051960 Tiles
- { "891e06a", 0x10000, 0x5ee37327, 4 | BRF_GRA }, // 12
- { "891e05e", 0x10000, 0xb356e729, 4 | BRF_GRA }, // 13
- { "891e05a", 0x10000, 0xbfd5487e, 4 | BRF_GRA }, // 14
- { "891e06f", 0x10000, 0xf9ada524, 4 | BRF_GRA }, // 15
- { "891e06b", 0x10000, 0x2295dfaa, 4 | BRF_GRA }, // 16
- { "891e05f", 0x10000, 0xecdd11c5, 4 | BRF_GRA }, // 17
- { "891e05b", 0x10000, 0xaba18d24, 4 | BRF_GRA }, // 18
- { "891e06g", 0x10000, 0x04abf78f, 4 | BRF_GRA }, // 19
- { "891e06c", 0x10000, 0xdbdb0d55, 4 | BRF_GRA }, // 20
- { "891e05g", 0x10000, 0xc315f9ae, 4 | BRF_GRA }, // 21
- { "891e05c", 0x10000, 0x21fcbc6f, 4 | BRF_GRA }, // 22
- { "891e06h", 0x10000, 0x5d5ded8c, 4 | BRF_GRA }, // 23
- { "891e06d", 0x10000, 0xf9ecbd71, 4 | BRF_GRA }, // 24
- { "891e05h", 0x10000, 0xb0aba53b, 4 | BRF_GRA }, // 25
- { "891e05d", 0x10000, 0xf6d3f886, 4 | BRF_GRA }, // 26
-
- { "891e07a", 0x10000, 0xb8d8b939, 5 | BRF_GRA }, // 27 K051316 Tiles
- { "891e07b", 0x10000, 0x83b2f92d, 5 | BRF_GRA }, // 28
-
- { "891e08a", 0x10000, 0xcef667bf, 6 | BRF_GRA }, // 29 K007232 #0 Samples
- { "891e08b", 0x10000, 0xf7c14a7a, 6 | BRF_GRA }, // 30
- { "891e08c", 0x10000, 0x756b7f3c, 6 | BRF_GRA }, // 31
- { "891e08d", 0x10000, 0xcd0d7305, 6 | BRF_GRA }, // 32
-
- { "891e04a", 0x10000, 0xdaebbc74, 7 | BRF_GRA }, // 33 K007232 #1 Samples
- { "891e04b", 0x10000, 0x5ffb9ad1, 7 | BRF_GRA }, // 34
- { "891e04c", 0x10000, 0x2dbbf16b, 7 | BRF_GRA }, // 35
- { "891e04d", 0x10000, 0x8b0cd2cc, 7 | BRF_GRA }, // 36
-
- { "891b11.f23", 0x00100, 0xecb854aa, 8 | BRF_OPT }, // 37 Priority Proms
-};
-
-STD_ROM_PICK(bottom9)
-STD_ROM_FN(bottom9)
-
-struct BurnDriver BurnDrvBottom9 = {
- "bottom9", NULL, NULL, NULL, "1989",
- "Bottom of the Ninth (ver. T)\0", NULL, "Konami", "GX891",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_PREFIX_KONAMI, GBF_SPORTSMISC, 0,
- NULL, bottom9RomInfo, bottom9RomName, NULL, NULL, Bottom9InputInfo, Bottom9DIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x400,
- 288, 224, 4, 3
-};
-
-
-// Bottom of the Ninth (ver. N)
-
-static struct BurnRomInfo bottom9nRomDesc[] = {
- { "891n03.k17", 0x10000, 0x8b083ff3, 1 | BRF_PRG | BRF_ESS }, // 0 M6809 Code
- { "891n02.k15", 0x10000, 0xd44d9ed4, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "891j01.g8", 0x08000, 0x31b0a0a8, 2 | BRF_PRG | BRF_ESS }, // 2 Z80 Code
-
- { "891e10c", 0x10000, 0x209b0431, 3 | BRF_GRA }, // 3 K052109 Tiles
- { "891e10a", 0x10000, 0x8020a9e8, 3 | BRF_GRA }, // 4
- { "891e09c", 0x10000, 0x9dcaefbf, 3 | BRF_GRA }, // 5
- { "891e09a", 0x10000, 0x56b0ead9, 3 | BRF_GRA }, // 6
- { "891e10d", 0x10000, 0x16d5fd7a, 3 | BRF_GRA }, // 7
- { "891e10b", 0x10000, 0x30121cc0, 3 | BRF_GRA }, // 8
- { "891e09d", 0x10000, 0x4e1335e6, 3 | BRF_GRA }, // 9
- { "891e09b", 0x10000, 0xb6f914fb, 3 | BRF_GRA }, // 10
-
- { "891e06e", 0x10000, 0x0b04db1c, 4 | BRF_GRA }, // 11 K051960 Tiles
- { "891e06a", 0x10000, 0x5ee37327, 4 | BRF_GRA }, // 12
- { "891e05e", 0x10000, 0xb356e729, 4 | BRF_GRA }, // 13
- { "891e05a", 0x10000, 0xbfd5487e, 4 | BRF_GRA }, // 14
- { "891e06f", 0x10000, 0xf9ada524, 4 | BRF_GRA }, // 15
- { "891e06b", 0x10000, 0x2295dfaa, 4 | BRF_GRA }, // 16
- { "891e05f", 0x10000, 0xecdd11c5, 4 | BRF_GRA }, // 17
- { "891e05b", 0x10000, 0xaba18d24, 4 | BRF_GRA }, // 18
- { "891e06g", 0x10000, 0x04abf78f, 4 | BRF_GRA }, // 19
- { "891e06c", 0x10000, 0xdbdb0d55, 4 | BRF_GRA }, // 20
- { "891e05g", 0x10000, 0xc315f9ae, 4 | BRF_GRA }, // 21
- { "891e05c", 0x10000, 0x21fcbc6f, 4 | BRF_GRA }, // 22
- { "891e06h", 0x10000, 0x5d5ded8c, 4 | BRF_GRA }, // 23
- { "891e06d", 0x10000, 0xf9ecbd71, 4 | BRF_GRA }, // 24
- { "891e05h", 0x10000, 0xb0aba53b, 4 | BRF_GRA }, // 25
- { "891e05d", 0x10000, 0xf6d3f886, 4 | BRF_GRA }, // 26
-
- { "891e07a", 0x10000, 0xb8d8b939, 5 | BRF_GRA }, // 27 K051316 Tiles
- { "891e07b", 0x10000, 0x83b2f92d, 5 | BRF_GRA }, // 28
-
- { "891e08a", 0x10000, 0xcef667bf, 6 | BRF_GRA }, // 29 K007232 #0 Samples
- { "891e08b", 0x10000, 0xf7c14a7a, 6 | BRF_GRA }, // 30
- { "891e08c", 0x10000, 0x756b7f3c, 6 | BRF_GRA }, // 31
- { "891e08d", 0x10000, 0xcd0d7305, 6 | BRF_GRA }, // 32
-
- { "891e04a", 0x10000, 0xdaebbc74, 7 | BRF_GRA }, // 33 K007232 #1 Samples
- { "891e04b", 0x10000, 0x5ffb9ad1, 7 | BRF_GRA }, // 34
- { "891e04c", 0x10000, 0x2dbbf16b, 7 | BRF_GRA }, // 35
- { "891e04d", 0x10000, 0x8b0cd2cc, 7 | BRF_GRA }, // 36
-
- { "891b11.f23", 0x00100, 0xecb854aa, 8 | BRF_OPT }, // 37 Priority Proms
-};
-
-STD_ROM_PICK(bottom9n)
-STD_ROM_FN(bottom9n)
-
-struct BurnDriver BurnDrvBottom9n = {
- "bottom9n", "bottom9", NULL, NULL, "1989",
- "Bottom of the Ninth (ver. N)\0", NULL, "Konami", "GX891",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_KONAMI, GBF_SPORTSMISC, 0,
- NULL, bottom9nRomInfo, bottom9nRomName, NULL, NULL, Bottom9InputInfo, Bottom9DIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x400,
- 288, 224, 4, 3
-};
-
-
-// Main Stadium (Japan ver. 4)
-
-static struct BurnRomInfo mstadiumRomDesc[] = {
- { "891-403.k17", 0x10000, 0x1c00c4e8, 1 | BRF_PRG | BRF_ESS }, // 0 M6809 Code
- { "891-402.k15", 0x10000, 0xb850bbce, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "891w01.g8", 0x08000, 0xedec565a, 2 | BRF_PRG | BRF_ESS }, // 2 Z80 Code
-
- { "891e10c", 0x10000, 0x209b0431, 3 | BRF_GRA }, // 3 K052109 Tiles
- { "891e10a", 0x10000, 0x8020a9e8, 3 | BRF_GRA }, // 4
- { "891e09c", 0x10000, 0x9dcaefbf, 3 | BRF_GRA }, // 5
- { "891e09a", 0x10000, 0x56b0ead9, 3 | BRF_GRA }, // 6
- { "891e10d", 0x10000, 0x16d5fd7a, 3 | BRF_GRA }, // 7
- { "891e10b", 0x10000, 0x30121cc0, 3 | BRF_GRA }, // 8
- { "891e09d", 0x10000, 0x4e1335e6, 3 | BRF_GRA }, // 9
- { "891e09b", 0x10000, 0xb6f914fb, 3 | BRF_GRA }, // 10
-
- { "891e06e", 0x10000, 0x0b04db1c, 4 | BRF_GRA }, // 11 K051960 Tiles
- { "891e06a", 0x10000, 0x5ee37327, 4 | BRF_GRA }, // 12
- { "891e05e", 0x10000, 0xb356e729, 4 | BRF_GRA }, // 13
- { "891e05a", 0x10000, 0xbfd5487e, 4 | BRF_GRA }, // 14
- { "891e06f", 0x10000, 0xf9ada524, 4 | BRF_GRA }, // 15
- { "891e06b", 0x10000, 0x2295dfaa, 4 | BRF_GRA }, // 16
- { "891e05f", 0x10000, 0xecdd11c5, 4 | BRF_GRA }, // 17
- { "891e05b", 0x10000, 0xaba18d24, 4 | BRF_GRA }, // 18
- { "891e06g", 0x10000, 0x04abf78f, 4 | BRF_GRA }, // 19
- { "891e06c", 0x10000, 0xdbdb0d55, 4 | BRF_GRA }, // 20
- { "891e05g", 0x10000, 0xc315f9ae, 4 | BRF_GRA }, // 21
- { "891e05c", 0x10000, 0x21fcbc6f, 4 | BRF_GRA }, // 22
- { "891e06h", 0x10000, 0x5d5ded8c, 4 | BRF_GRA }, // 23
- { "891e06d", 0x10000, 0xf9ecbd71, 4 | BRF_GRA }, // 24
- { "891e05h", 0x10000, 0xb0aba53b, 4 | BRF_GRA }, // 25
- { "891e05d", 0x10000, 0xf6d3f886, 4 | BRF_GRA }, // 26
-
- { "891e07a", 0x10000, 0xb8d8b939, 5 | BRF_GRA }, // 27 K051316 Tiles
- { "891e07b", 0x10000, 0x83b2f92d, 5 | BRF_GRA }, // 28
-
- { "891e08a", 0x10000, 0xcef667bf, 6 | BRF_GRA }, // 29 K007232 #0 Samples
- { "891e08b", 0x10000, 0xf7c14a7a, 6 | BRF_GRA }, // 30
- { "891e08c", 0x10000, 0x756b7f3c, 6 | BRF_GRA }, // 31
- { "891e08d", 0x10000, 0xcd0d7305, 6 | BRF_GRA }, // 32
-
- { "891e04a", 0x10000, 0xdaebbc74, 7 | BRF_GRA }, // 33 K007232 #1 Samples
- { "891e04b", 0x10000, 0x5ffb9ad1, 7 | BRF_GRA }, // 34
- { "891e04c", 0x10000, 0x2dbbf16b, 7 | BRF_GRA }, // 35
- { "891e04d", 0x10000, 0x8b0cd2cc, 7 | BRF_GRA }, // 36
-
- { "891b11.f23", 0x00100, 0xecb854aa, 8 | BRF_OPT }, // 37 Priority Proms
-};
-
-STD_ROM_PICK(mstadium)
-STD_ROM_FN(mstadium)
-
-struct BurnDriver BurnDrvMstadium = {
- "mstadium", "bottom9", NULL, NULL, "1989",
- "Main Stadium (Japan ver. 4)\0", NULL, "Konami", "GX891",
- L"Main Stadium\0\u30E1\u30A4\u30F3\u30B9\u30BF\u30B8\u30A2\u30E0 (Japan ver. 4)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_KONAMI, GBF_SPORTSMISC, 0,
- NULL, mstadiumRomInfo, mstadiumRomName, NULL, NULL, Bottom9InputInfo, MstadiumDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x400,
- 288, 224, 4, 3
-};
diff --git a/jan/src/burn/drv/konami/d_chqflag.cpp b/jan/src/burn/drv/konami/d_chqflag.cpp
deleted file mode 100644
index 86a8690e5..000000000
--- a/jan/src/burn/drv/konami/d_chqflag.cpp
+++ /dev/null
@@ -1,829 +0,0 @@
-// FB Alpha Chequered Flag driver module
-// Based on MAME driver by Nicola Salmoria and Manuel Abadia
-
-#include "tiles_generic.h"
-#include "z80_intf.h"
-#include "konami_intf.h"
-#include "konamiic.h"
-#include "burn_ym2151.h"
-#include "k007232.h"
-#include "burn_shift.h"
-
-static UINT8 *AllMem;
-static UINT8 *MemEnd;
-static UINT8 *AllRam;
-static UINT8 *RamEnd;
-static UINT8 *DrvKonROM;
-static UINT8 *DrvZ80ROM;
-static UINT8 *DrvGfxROM0;
-static UINT8 *DrvGfxROM1;
-static UINT8 *DrvGfxROM2;
-static UINT8 *DrvGfxROMExp0;
-static UINT8 *DrvGfxROMExp1;
-static UINT8 *DrvSndROM0;
-static UINT8 *DrvSndROM1;
-static UINT8 *DrvKonRAM;
-static UINT8 *DrvPalRAM;
-static UINT8 *DrvZ80RAM;
-
-static UINT32 *DrvPalette;
-static UINT8 DrvRecalc;
-
-static UINT8 *soundlatch;
-static UINT8 *soundlatch1;
-
-static UINT8 DrvInputs[3];
-static UINT8 DrvJoy1[8];
-static UINT8 DrvJoy2[8];
-static UINT8 DrvJoy3[8];
-static UINT8 DrvDips[3];
-static UINT8 DrvReset;
-
-static INT32 nNmiEnable;
-static INT32 nDrvRomBank;
-static INT32 nDrvRamBank;
-static INT32 nBackgroundBrightness;
-static INT32 k051316_readroms;
-static INT32 analog_ctrl;
-static INT32 DrvAnalogPort0 = 0;
-static INT32 DrvAnalogPort1 = 0;
-static UINT8 accelerator;
-static UINT8 steeringwheel;
-
-static INT32 watchdog;
-
-#define A(a, b, c, d) {a, b, (UINT8*)(c), d}
-static struct BurnInputInfo ChqflagInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy1 + 0, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 3, "p1 start" },
-
- A("Wheel", BIT_ANALOG_REL, &DrvAnalogPort0 , "mouse x-axis"),
- A("Accelerator", BIT_ANALOG_REL, &DrvAnalogPort1 , "p1 fire 1"),
-
- {"P1 Button 1", BIT_DIGITAL, DrvJoy2 + 1, "p1 fire 2" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy2 + 0, "p1 fire 3" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service", BIT_DIGITAL, DrvJoy1 + 2, "service" },
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip" },
- {"Dip C", BIT_DIPSWITCH, DrvDips + 2, "dip" },
-};
-
-STDINPUTINFO(Chqflag)
-#undef A
-
-static struct BurnDIPInfo ChqflagDIPList[]=
-{
- {0x08, 0xff, 0xff, 0xff, NULL },
- {0x09, 0xff, 0xff, 0x5f, NULL },
- {0x0a, 0xff, 0xff, 0xe0, NULL },
-
- {0 , 0xfe, 0 , 16, "Coin A" },
- {0x08, 0x01, 0x0f, 0x02, "4 Coins 1 Credits" },
- {0x08, 0x01, 0x0f, 0x05, "3 Coins 1 Credits" },
- {0x08, 0x01, 0x0f, 0x08, "2 Coins 1 Credits" },
- {0x08, 0x01, 0x0f, 0x04, "3 Coins 2 Credits" },
- {0x08, 0x01, 0x0f, 0x01, "4 Coins 3 Credits" },
- {0x08, 0x01, 0x0f, 0x0f, "1 Coin 1 Credits" },
- {0x08, 0x01, 0x0f, 0x03, "3 Coins 4 Credits" },
- {0x08, 0x01, 0x0f, 0x07, "2 Coins 3 Credits" },
- {0x08, 0x01, 0x0f, 0x0e, "1 Coin 2 Credits" },
- {0x08, 0x01, 0x0f, 0x06, "2 Coins 5 Credits" },
- {0x08, 0x01, 0x0f, 0x0d, "1 Coin 3 Credits" },
- {0x08, 0x01, 0x0f, 0x0c, "1 Coin 4 Credits" },
- {0x08, 0x01, 0x0f, 0x0b, "1 Coin 5 Credits" },
- {0x08, 0x01, 0x0f, 0x0a, "1 Coin 6 Credits" },
- {0x08, 0x01, 0x0f, 0x09, "1 Coin 7 Credits" },
- {0x08, 0x01, 0x0f, 0x00, "Free Play" },
-
- {0 , 0xfe, 0 , 16, "Coin B" },
- {0x08, 0x01, 0xf0, 0x20, "4 Coins 1 Credits" },
- {0x08, 0x01, 0xf0, 0x50, "3 Coins 1 Credits" },
- {0x08, 0x01, 0xf0, 0x80, "2 Coins 1 Credits" },
- {0x08, 0x01, 0xf0, 0x40, "3 Coins 2 Credits" },
- {0x08, 0x01, 0xf0, 0x10, "4 Coins 3 Credits" },
- {0x08, 0x01, 0xf0, 0xf0, "1 Coin 1 Credits" },
- {0x08, 0x01, 0xf0, 0x30, "3 Coins 4 Credits" },
- {0x08, 0x01, 0xf0, 0x70, "2 Coins 3 Credits" },
- {0x08, 0x01, 0xf0, 0xe0, "1 Coin 2 Credits" },
- {0x08, 0x01, 0xf0, 0x60, "2 Coins 5 Credits" },
- {0x08, 0x01, 0xf0, 0xd0, "1 Coin 3 Credits" },
- {0x08, 0x01, 0xf0, 0xc0, "1 Coin 4 Credits" },
- {0x08, 0x01, 0xf0, 0xb0, "1 Coin 5 Credits" },
- {0x08, 0x01, 0xf0, 0xa0, "1 Coin 6 Credits" },
- {0x08, 0x01, 0xf0, 0x90, "1 Coin 7 Credits" },
- {0x08, 0x01, 0xf0, 0x00, "Invalid" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x09, 0x01, 0x60, 0x60, "Easy" },
- {0x09, 0x01, 0x60, 0x40, "Normal" },
- {0x09, 0x01, 0x60, 0x20, "Difficult" },
- {0x09, 0x01, 0x60, 0x00, "Very Difficult" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x09, 0x01, 0x80, 0x80, "Off" },
- {0x09, 0x01, 0x80, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Title" },
- {0x0a, 0x01, 0x40, 0x40, "Chequered Flag" },
- {0x0a, 0x01, 0x40, 0x00, "Checkered Flag" },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x0a, 0x01, 0x80, 0x80, "Off" },
- {0x0a, 0x01, 0x80, 0x00, "On" },
-};
-
-STDDIPINFO(Chqflag)
-
-static void bankswitch(INT32 data)
-{
- nDrvRomBank = data & 0x1f;
-
- if (nDrvRomBank < (0x50000 / 0x4000))
- konamiMapMemory(DrvKonROM + (nDrvRomBank * 0x4000), 0x4000, 0x7fff, MAP_ROM);
-}
-
-static void chqflag_main_write(UINT16 address, UINT8 data)
-{
- if ((address & 0xf000) == 0x1000) {
- if (nDrvRamBank) {
- if (address & 0x800) {
- DrvPalRAM[address & 0x7ff] = data;
- return;
- } else {
- K051316Write(0, address & 0x7ff, data);
- return;
- }
- } else {
- DrvKonRAM[address] = data;
- return;
- }
- }
-
- if ((address & 0xfff8) == 0x2000) {
- if (address == 0x2000) {
- if (data & 0x01) konamiSetIrqLine(0, CPU_IRQSTATUS_NONE);
- if (data & 0x04) konamiSetIrqLine(0x20, CPU_IRQSTATUS_NONE);
- nNmiEnable = data & 0x04;
- }
-
- K051937Write(address & 7, data);
- return;
- }
-
- if ((address & 0xfc00) == 0x2400) {
- K051960Write(address & 0x3ff, data);
- return;
- }
-
- if ((address & 0xf800) == 0x2800) {
- K051316Write(1, address & 0x7ff, data);
- return;
- }
-
- if ((address & 0xffe0) == 0x3400) {
- K051733Write(address & 0x1f, data);
- return;
- }
-
- if ((address & 0xfff0) == 0x3500) {
- K051316WriteCtrl(0, address & 0x0f, data);
- return;
- }
-
- if ((address & 0xfff0) == 0x3600) {
- K051316WriteCtrl(1, address & 0x0f, data);
- return;
- }
-
- switch (address)
- {
- case 0x3000:
- *soundlatch = data;
- return;
-
- case 0x3001:
- *soundlatch1 = data;
- ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
- return;
-
- case 0x3002:
- nDrvRamBank = data & 0x20;
- bankswitch(data);
- return;
-
- case 0x3003:
- {
- nBackgroundBrightness = (data & 0x80) ? 60 : 100;
-
- konami_set_highlight_mode((data & 0x08) ? 1 : 0);
-
- k051316_readroms = data & 0x10;
- }
- return;
-
- case 0x3300:
- watchdog = 0;
- return;
-
- case 0x3700:
- case 0x3702:
- analog_ctrl = data & 3;
- return;
- }
-}
-
-static inline UINT8 analog_port_read()
-{
- switch (analog_ctrl)
- {
- case 0x00: {
- accelerator = DrvAnalogPort1;
- return accelerator;
- }
- case 0x01: {
- steeringwheel = 0x7f + (DrvAnalogPort0 >> 4);
- return steeringwheel;
- }
- case 0x02: return accelerator; // 0x02,0x03: previous reads
- case 0x03: return steeringwheel;
- }
-
- return 0xff;
-}
-
-static UINT8 chqflag_main_read(UINT16 address)
-{
- if ((address & 0xf000) == 0x1000) {
- if (nDrvRamBank) {
- if (address & 0x800) {
- return DrvPalRAM[address & 0x7ff];
- } else {
- if (k051316_readroms) {
- return K051316ReadRom(0, address & 0x7ff);
- } else {
- return K051316Read(0, address & 0x7ff);
- }
- }
- } else {
- return DrvKonRAM[address];
- }
- }
-
- if ((address & 0xffe0) == 0x3400) {
- return K051733Read(address & 0x1f);
- }
-
- if ((address & 0xfff8) == 0x2000) {
- return K051937Read(address & 7);
- }
-
- if ((address & 0xfc00) == 0x2400) {
- return K051960Read(address & 0x3ff);
- }
-
- if ((address & 0xf800) == 0x2800) {
- if (k051316_readroms) {
- return K051316ReadRom(1, address & 0x7ff);
- } else {
- return K051316Read(1, address & 0x7ff);
- }
- }
-
- switch (address)
- {
- case 0x3100:
- return DrvDips[0];
-
- case 0x3200:
- return (DrvInputs[0] & 0x1f) | (DrvDips[2] & 0xe0);
-
- case 0x3201:
- return 0xff;
-
- case 0x3203:
- return DrvDips[1];
-
- case 0x3701:
- return DrvInputs[1] & 0x0f;
-
- case 0x3702:
- return analog_port_read();
- }
-
- return 0;
-}
-
-static void __fastcall chqflag_sound_write(UINT16 address, UINT8 data)
-{
- if ((address & 0xfff0) == 0xa000) {
- K007232WriteReg(0, address & 0x0f, data);
- return;
- }
-
- if ((address & 0xfff0) == 0xb000) {
- K007232WriteReg(1, address & 0x0f, data);
- return;
- }
-
- switch (address)
- {
- case 0x9000:
- k007232_set_bank(0, (data >> 4) & 3, (data >> 6) & 3 );
- k007232_set_bank(1, (data >> 0) & 3, (data >> 2) & 3 );
- return;
-
- case 0xa01c:
- K007232SetVolume(0, 1, (data & 0x0f) * 0x11/2, (data >> 4) * 0x11/2);
- return;
-
- case 0xc000:
- BurnYM2151SelectRegister(data);
- return;
-
- case 0xc001:
- BurnYM2151WriteRegister(data);
- return;
-
- case 0xf000:
- return; // nop
- }
-}
-
-static UINT8 __fastcall chqflag_sound_read(UINT16 address)
-{
- if ((address & 0xfff0) == 0xa000) {
- return K007232ReadReg(0, address & 0x0f);
- }
-
- if ((address & 0xfff0) == 0xb000) {
- return K007232ReadReg(1, address & 0x0f);
- }
-
- switch (address)
- {
- case 0xc000:
- case 0xc001:
- return BurnYM2151ReadStatus();
-
- case 0xd000:
- return *soundlatch;
-
- case 0xe000:
- ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
- return *soundlatch1;
- }
-
- return 0;
-}
-
-static void DrvYM2151IrqHandler(INT32 state)
-{
- if (state) ZetNmi();
-}
-
-static void DrvK007232VolCallback0(INT32 v)
-{
- K007232SetVolume(0, 0, (v & 0x0f) * 0x11/2, (v & 0x0f) * 0x11/2);
-}
-
-static void DrvK007232VolCallback1(INT32 v)
-{
- K007232SetVolume(1, 0, (v >> 0x4) * 0x11, 0);
- K007232SetVolume(1, 1, 0, (v & 0x0f) * 0x11);
-}
-
-static void K051316Callback0(INT32 *code,INT32 *color,INT32 *)
-{
- *code |= ((*color & 0x03) << 8);
- *color = (256 / 16) + ((*color & 0x3c) >> 2);
-}
-
-static void K051316Callback1(INT32 *code,INT32 *color,INT32 *flags)
-{
- *flags = (*color & 0xc0) >> 6;
- *code |= ((*color & 0x0f) << 8);
- *color = (512 / 256) + ((*color & 0x10) >> 4);
-}
-
-static void K051960Callback(INT32 *, INT32 *color, INT32 *priority, INT32 *)
-{
- *priority = (*color & 0x10) ? 0 : 0xaaaa;
- *color = (*color & 0x0f);
-}
-
-static INT32 DrvDoReset(INT32 clear_mem)
-{
- if (clear_mem) {
- memset (AllRam, 0, RamEnd - AllRam);
- }
-
- konamiOpen(0);
- konamiReset();
- bankswitch(0);
- konamiClose();
-
- ZetOpen(0);
- ZetReset();
- ZetClose();
-
- BurnYM2151Reset();
-
- KonamiICReset();
- K051316WrapEnable(1, 1);
-
- nDrvRamBank = 0;
- k051316_readroms = 0;
- analog_ctrl = 0;
- nNmiEnable = 0;
-
- watchdog = 0;
- BurnShiftReset();
-
- HiscoreReset();
-
- return 0;
-}
-
-static INT32 MemIndex()
-{
- UINT8 *Next; Next = AllMem;
-
- DrvKonROM = Next; Next += 0x050000;
- DrvZ80ROM = Next; Next += 0x008000;
-
- DrvGfxROM0 = Next; Next += 0x100000;
- DrvGfxROM1 = Next; Next += 0x020000;
- DrvGfxROM2 = Next; Next += 0x100000;
- DrvGfxROMExp0 = Next; Next += 0x200000;
- DrvGfxROMExp1 = Next; Next += 0x040000;
-
- DrvSndROM0 = Next; Next += 0x080000;
- DrvSndROM1 = Next; Next += 0x080000;
-
- DrvPalette = (UINT32*)Next; Next += 0x401 * sizeof(UINT32);
-
- AllRam = Next;
-
- DrvKonRAM = Next; Next += 0x002000;
- DrvPalRAM = Next; Next += 0x000800;
-
- DrvZ80RAM = Next; Next += 0x000800;
-
- soundlatch = Next; Next += 0x000001;
- soundlatch1 = Next; Next += 0x000001;
-
- RamEnd = Next;
- MemEnd = Next;
-
- return 0;
-}
-
-static INT32 DrvInit()
-{
- GenericTilesInit();
-
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(DrvKonROM + 0x000000, 0, 1)) return 1;
- if (BurnLoadRom(DrvKonROM + 0x040000, 1, 1)) return 1;
-
- if (BurnLoadRom(DrvZ80ROM + 0x000000, 2, 1)) return 1;
-
- if (BurnLoadRomExt(DrvGfxROM0 + 0x000000, 3, 4, LD_GROUP(2))) return 1;
- if (BurnLoadRomExt(DrvGfxROM0 + 0x000002, 4, 4, LD_GROUP(2))) return 1;
-
- if (BurnLoadRom(DrvGfxROM1 + 0x000000, 5, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM2 + 0x000000, 6, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x040000, 7, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x080000, 8, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x0c0000, 9, 1)) return 1;
-
- if (BurnLoadRom(DrvSndROM0 + 0x000000, 10, 1)) return 1;
-
- if (BurnLoadRom(DrvSndROM1 + 0x000000, 11, 1)) return 1;
-
- K051960GfxDecode(DrvGfxROM0, DrvGfxROMExp0, 0x100000);
- }
-
- konamiInit(0);
- konamiOpen(0);
- konamiMapMemory(DrvKonRAM, 0x0000, 0x0fff, MAP_RAM);
- konamiMapMemory(DrvKonROM + 0x00000, 0x4000, 0x7fff, MAP_ROM);
- konamiMapMemory(DrvKonROM + 0x48000, 0x8000, 0xffff, MAP_ROM);
- konamiSetWriteHandler(chqflag_main_write);
- konamiSetReadHandler(chqflag_main_read);
- konamiClose();
-
- ZetInit(0);
- ZetOpen(0);
- ZetMapMemory(DrvZ80ROM, 0x0000, 0x7fff, MAP_ROM);
- ZetMapMemory(DrvZ80RAM, 0x8000, 0x87ff, MAP_RAM);
- ZetSetWriteHandler(chqflag_sound_write);
- ZetSetReadHandler(chqflag_sound_read);
- ZetClose();
-
- BurnYM2151Init(3579545);
- BurnYM2151SetIrqHandler(&DrvYM2151IrqHandler);
- BurnYM2151SetRoute(BURN_SND_YM2151_YM2151_ROUTE_1, 1.00, BURN_SND_ROUTE_LEFT);
- BurnYM2151SetRoute(BURN_SND_YM2151_YM2151_ROUTE_2, 1.00, BURN_SND_ROUTE_RIGHT);
-
- K007232Init(0, 3579545, DrvSndROM0, 0x80000);
- K007232SetPortWriteHandler(0, DrvK007232VolCallback0);
- K007232PCMSetAllRoutes(0, 0.20, BURN_SND_ROUTE_BOTH);
-
- K007232Init(1, 3579545, DrvSndROM1, 0x80000);
- K007232SetPortWriteHandler(1, DrvK007232VolCallback1);
- K007232PCMSetAllRoutes(1, 0.20, BURN_SND_ROUTE_BOTH);
-
- K051960Init(DrvGfxROM0, DrvGfxROMExp0, 0xfffff);
- K051960SetCallback(K051960Callback);
- K051960SetSpriteOffset(-8, 0);
-
- K051316Init(0, DrvGfxROM1, DrvGfxROMExp1, 0x1ffff, K051316Callback0, 4, 0);
- K051316SetOffset(0, -89, -16);
-
- K051316Init(1, DrvGfxROM2, DrvGfxROM2, 0xfffff, K051316Callback1, 8, 0xc0 | 0x200);
- K051316SetOffset(1, -96, -16);
-
- konami_set_highlight_over_sprites_mode(1);
-
- BurnShiftInit(SHIFT_POSITION_BOTTOM_RIGHT, SHIFT_COLOR_GREEN, 80);
-
- DrvDoReset(1);
-
- return 0;
-}
-
-static INT32 DrvExit()
-{
- GenericTilesExit();
-
- KonamiICExit();
-
- konamiExit();
- ZetExit();
-
- K007232Exit();
- BurnYM2151Exit();
-
- BurnShiftExit();
-
- BurnFree (AllMem);
-
- return 0;
-}
-
-static void DrvPaletteInit()
-{
- konami_palette32 = DrvPalette;
-
- UINT8 r,g,b;
- UINT16 *p = (UINT16*)DrvPalRAM;
-
- for (INT32 i = 0; i < 0x800 / 2; i++) {
- UINT16 d = BURN_ENDIAN_SWAP_INT16((p[i] << 8) | (p[i] >> 8));
-
- r = (d >> 0) & 0x1f;
- g = (d >> 5) & 0x1f;
- b = (d >> 10) & 0x1f;
-
- r = (r << 3) | (r >> 2);
- g = (g << 3) | (g >> 2);
- b = (b << 3) | (b >> 2);
-
- if (i >= 0x200) {
- r = (r * nBackgroundBrightness) / 100;
- g = (g * nBackgroundBrightness) / 100;
- b = (b * nBackgroundBrightness) / 100;
- }
-
- DrvPalette[i] = (r << 16) | (g << 8) | b; // 32-bit colors
- }
-}
-
-static INT32 DrvDraw()
-{
- DrvPaletteInit();
-
- BurnTransferClear();
- KonamiClearBitmaps(0);
-
- if (nBurnLayer & 1) K051316_zoom_draw(1, 0 | 0x200);
-
- if (nBurnLayer & 2) K051316_zoom_draw(1, 1);
-
- if (nSpriteEnable & 1) K051960SpritesRender(-1, -1);
-
- if (nBurnLayer & 4) K051316_zoom_draw(0, 0);
-
- KonamiBlendCopy(DrvPalette);
-
- BurnShiftRender();
-
- return 0;
-}
-
-static INT32 DrvFrame()
-{
- watchdog++;
- if (watchdog > 180) {
- DrvDoReset(0);
- }
-
- if (DrvReset) {
- DrvDoReset(1);
- }
-
- {
- memset (DrvInputs, 0xff, 3);
- for (INT32 i = 0; i < 8; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- DrvInputs[2] ^= (DrvJoy3[i] & 1) << i;
- }
-
- { // gear shifter stuff
- BurnShiftInputCheckToggle(DrvJoy2[0]);
-
- DrvInputs[1] &= ~1;
- DrvInputs[1] |= !bBurnShiftStatus;
- }
- }
-
- INT32 nSoundBufferPos = 0;
- INT32 nInterleave = 256/2;
- INT32 nCyclesTotal[2] = { 3000000 / 60, 3579545 / 60 };
- INT32 nCyclesDone[2] = { 0, 0 };
-
- ZetOpen(0);
- konamiOpen(0);
-
- for (INT32 i = 0; i < nInterleave; i++)
- {
- INT32 nSegment = (nCyclesTotal[0] / nInterleave) * (i + 1);
- nCyclesDone[0] += konamiRun(nSegment - nCyclesDone[0]);
-
- nSegment = (nCyclesTotal[1] / nInterleave) * (i + 1);
- nCyclesDone[1] += ZetRun(nSegment - nCyclesDone[1]);
-
- if ((i&0xf)==0 && nNmiEnable) konamiSetIrqLine(0x20, CPU_IRQSTATUS_ACK); // iq_132 fix me!
- if (i == 120 && K051960_irq_enabled) konamiSetIrqLine(KONAMI_IRQ_LINE, CPU_IRQSTATUS_ACK);
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen / nInterleave;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- BurnYM2151Render(pSoundBuf, nSegmentLength);
- K007232Update(0, pSoundBuf, nSegmentLength);
- K007232Update(1, pSoundBuf, nSegmentLength);
- nSoundBufferPos += nSegmentLength;
- }
- }
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
- if (nSegmentLength) {
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- BurnYM2151Render(pSoundBuf, nSegmentLength);
- K007232Update(0, pSoundBuf, nSegmentLength);
- K007232Update(1, pSoundBuf, nSegmentLength);
- }
- }
-
- konamiClose();
- ZetClose();
-
- if (pBurnDraw) {
- DrvDraw();
- }
-
- return 0;
-}
-
-static INT32 DrvScan(INT32 nAction, INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin) {
- *pnMin = 0x029705;
- }
-
- if (nAction & ACB_VOLATILE) {
- memset(&ba, 0, sizeof(ba));
-
- ba.Data = AllRam;
- ba.nLen = RamEnd - AllRam;
- ba.szName = "All Ram";
- BurnAcb(&ba);
-
- konamiCpuScan(nAction);
- ZetScan(nAction);
-
- BurnYM2151Scan(nAction);
- K007232Scan(nAction, pnMin);
-
- KonamiICScan(nAction);
-
- BurnShiftScan(nAction);
-
- SCAN_VAR(nDrvRomBank);
- SCAN_VAR(nDrvRamBank);
- SCAN_VAR(k051316_readroms);
- SCAN_VAR(analog_ctrl);
- SCAN_VAR(nNmiEnable);
- SCAN_VAR(nBackgroundBrightness);
- SCAN_VAR(accelerator);
- SCAN_VAR(steeringwheel);
- }
-
- if (nAction & ACB_WRITE) {
- konamiOpen(0);
- bankswitch(nDrvRomBank);
- konamiClose();
-
- }
-
- return 0;
-}
-
-
-// Chequered Flag
-
-static struct BurnRomInfo chqflagRomDesc[] = {
- { "717e10", 0x40000, 0x72fc56f6, 1 | BRF_PRG | BRF_ESS }, // 0 Konami Custom Code
- { "717h02", 0x10000, 0xf5bd4e78, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "717e01", 0x08000, 0x966b8ba8, 2 | BRF_PRG | BRF_ESS }, // 2 Z80 Code
-
- { "717e04", 0x80000, 0x1a50a1cc, 3 | BRF_GRA }, // 3 k051960 Sprites
- { "717e05", 0x80000, 0x46ccb506, 3 | BRF_GRA }, // 4
-
- { "717e06.n16", 0x20000, 0x1ec26c7a, 4 | BRF_GRA }, // 5 k051316 #0 Zoom Tiles
-
- { "717e07.l20", 0x40000, 0xb9a565a8, 5 | BRF_GRA }, // 6 k051316 #1 Zoom Tiles
- { "717e08.l22", 0x40000, 0xb68a212e, 5 | BRF_GRA }, // 7
- { "717e11.n20", 0x40000, 0xebb171ec, 5 | BRF_GRA }, // 8
- { "717e12.n22", 0x40000, 0x9269335d, 5 | BRF_GRA }, // 9
-
- { "717e03", 0x80000, 0xebe73c22, 6 | BRF_GRA }, // 10 k007232 #0 Samples
-
- { "717e09", 0x80000, 0xd74e857d, 7 | BRF_GRA }, // 11 k007232 #1 Samples
-};
-
-STD_ROM_PICK(chqflag)
-STD_ROM_FN(chqflag)
-
-struct BurnDriver BurnDrvChqflag = {
- "chqflag", NULL, NULL, NULL, "1988",
- "Chequered Flag\0", NULL, "Konami", "Miscellaneous",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED, 1, HARDWARE_PREFIX_KONAMI, GBF_RACING, 0,
- NULL, chqflagRomInfo, chqflagRomName, NULL, NULL, ChqflagInputInfo, ChqflagDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x400,
- 224, 304, 3, 4
-};
-
-
-// Chequered Flag (Japan)
-
-static struct BurnRomInfo chqflagjRomDesc[] = {
- { "717e10", 0x40000, 0x72fc56f6, 1 | BRF_PRG | BRF_ESS }, // 0 Konami Custom Code
- { "717j02.bin", 0x10000, 0x05355daa, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "717e01", 0x08000, 0x966b8ba8, 2 | BRF_PRG | BRF_ESS }, // 2 Z80 Code
-
- { "717e04", 0x80000, 0x1a50a1cc, 3 | BRF_GRA }, // 3 k051960 Sprites
- { "717e05", 0x80000, 0x46ccb506, 3 | BRF_GRA }, // 4
-
- { "717e06.n16", 0x20000, 0x1ec26c7a, 4 | BRF_GRA }, // 5 k051316 #0 Zoom Tiles
-
- { "717e07.l20", 0x40000, 0xb9a565a8, 5 | BRF_GRA }, // 6 k051316 #1 Zoom Tiles
- { "717e08.l22", 0x40000, 0xb68a212e, 5 | BRF_GRA }, // 7
- { "717e11.n20", 0x40000, 0xebb171ec, 5 | BRF_GRA }, // 8
- { "717e12.n22", 0x40000, 0x9269335d, 5 | BRF_GRA }, // 9
-
- { "717e03", 0x80000, 0xebe73c22, 6 | BRF_GRA }, // 10 k007232 #0 Samples
-
- { "717e09", 0x80000, 0xd74e857d, 7 | BRF_GRA }, // 11 k007232 #1 Samples
-};
-
-STD_ROM_PICK(chqflagj)
-STD_ROM_FN(chqflagj)
-
-struct BurnDriver BurnDrvChqflagj = {
- "chqflagj", "chqflag", NULL, NULL, "1988",
- "Chequered Flag (Japan)\0", NULL, "Konami", "Miscellaneous",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED, 1, HARDWARE_PREFIX_KONAMI, GBF_RACING, 0,
- NULL, chqflagjRomInfo, chqflagjRomName, NULL, NULL, ChqflagInputInfo, ChqflagDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x400,
- 224, 304, 3, 4
-};
diff --git a/jan/src/burn/drv/konami/d_circusc.cpp b/jan/src/burn/drv/konami/d_circusc.cpp
deleted file mode 100644
index 3d4bb8db5..000000000
--- a/jan/src/burn/drv/konami/d_circusc.cpp
+++ /dev/null
@@ -1,864 +0,0 @@
-// FB Alpha Circus Charlie driver module
-// Based on MAME driver by Chris Hardy
-
-#include "tiles_generic.h"
-#include "m6809_intf.h"
-#include "z80_intf.h"
-#include "sn76496.h"
-#include "dac.h"
-
-static UINT8 *AllMem;
-static UINT8 *MemEnd;
-static UINT8 *AllRam;
-static UINT8 *RamEnd;
-static UINT8 *DrvM6809ROM;
-static UINT8 *DrvM6809ROMDec;
-static UINT8 *DrvZ80ROM;
-static UINT8 *DrvGfxROM0;
-static UINT8 *DrvGfxROM1;
-static UINT8 *DrvColPROM;
-static UINT8 *DrvTransTable;
-static UINT8 *DrvM6809RAM;
-static UINT8 *DrvColRAM;
-static UINT8 *DrvVidRAM;
-static UINT8 *DrvSprRAM;
-static UINT8 *DrvZ80RAM;
-
-static UINT32 *DrvPalette;
-static UINT8 DrvRecalc;
-
-static UINT8 snlatch;
-static UINT8 soundlatch;
-static UINT8 irqmask;
-static UINT8 spritebank;
-static UINT8 scrolldata;
-
-static UINT8 DrvJoy1[8];
-static UINT8 DrvJoy2[8];
-static UINT8 DrvJoy3[8];
-static UINT8 DrvDips[3];
-static UINT8 DrvInputs[3];
-static UINT8 DrvReset;
-
-static INT32 watchdog;
-
-static struct BurnInputInfo CircuscInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy1 + 0, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 3, "p1 start" },
- {"P1 Left", BIT_DIGITAL, DrvJoy2 + 0, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy2 + 1, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy2 + 4, "p1 fire 1" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy1 + 1, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy1 + 4, "p2 start" },
- {"P2 Left", BIT_DIGITAL, DrvJoy3 + 0, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy3 + 1, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy3 + 4, "p2 fire 1" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service", BIT_DIGITAL, DrvJoy1 + 2, "service" },
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip" },
-};
-
-STDINPUTINFO(Circusc)
-
-static struct BurnDIPInfo CircuscDIPList[]=
-{
- {0x0c, 0xff, 0xff, 0xff, NULL },
- {0x0d, 0xff, 0xff, 0x4b, NULL },
-
- {0 , 0xfe, 0 , 16, "Coin A" },
- {0x0c, 0x01, 0x0f, 0x02, "4 Coins 1 Credits" },
- {0x0c, 0x01, 0x0f, 0x05, "3 Coins 1 Credits" },
- {0x0c, 0x01, 0x0f, 0x08, "2 Coins 1 Credits" },
- {0x0c, 0x01, 0x0f, 0x04, "3 Coins 2 Credits" },
- {0x0c, 0x01, 0x0f, 0x01, "4 Coins 3 Credits" },
- {0x0c, 0x01, 0x0f, 0x0f, "1 Coin 1 Credits" },
- {0x0c, 0x01, 0x0f, 0x03, "3 Coins 4 Credits" },
- {0x0c, 0x01, 0x0f, 0x07, "2 Coins 3 Credits" },
- {0x0c, 0x01, 0x0f, 0x0e, "1 Coin 2 Credits" },
- {0x0c, 0x01, 0x0f, 0x06, "2 Coins 5 Credits" },
- {0x0c, 0x01, 0x0f, 0x0d, "1 Coin 3 Credits" },
- {0x0c, 0x01, 0x0f, 0x0c, "1 Coin 4 Credits" },
- {0x0c, 0x01, 0x0f, 0x0b, "1 Coin 5 Credits" },
- {0x0c, 0x01, 0x0f, 0x0a, "1 Coin 6 Credits" },
- {0x0c, 0x01, 0x0f, 0x09, "1 Coin 7 Credits" },
- {0x0c, 0x01, 0x0f, 0x00, "Free Play" },
-
- {0 , 0xfe, 0 , 16, "Coin B" },
- {0x0c, 0x01, 0xf0, 0x20, "4 Coins 1 Credits" },
- {0x0c, 0x01, 0xf0, 0x50, "3 Coins 1 Credits" },
- {0x0c, 0x01, 0xf0, 0x80, "2 Coins 1 Credits" },
- {0x0c, 0x01, 0xf0, 0x40, "3 Coins 2 Credits" },
- {0x0c, 0x01, 0xf0, 0x10, "4 Coins 3 Credits" },
- {0x0c, 0x01, 0xf0, 0xf0, "1 Coin 1 Credits" },
- {0x0c, 0x01, 0xf0, 0x30, "3 Coins 4 Credits" },
- {0x0c, 0x01, 0xf0, 0x70, "2 Coins 3 Credits" },
- {0x0c, 0x01, 0xf0, 0xe0, "1 Coin 2 Credits" },
- {0x0c, 0x01, 0xf0, 0x60, "2 Coins 5 Credits" },
- {0x0c, 0x01, 0xf0, 0xd0, "1 Coin 3 Credits" },
- {0x0c, 0x01, 0xf0, 0xc0, "1 Coin 4 Credits" },
- {0x0c, 0x01, 0xf0, 0xb0, "1 Coin 5 Credits" },
- {0x0c, 0x01, 0xf0, 0xa0, "1 Coin 6 Credits" },
- {0x0c, 0x01, 0xf0, 0x90, "1 Coin 7 Credits" },
- {0x0c, 0x01, 0xf0, 0x00, "Free Play" },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x0d, 0x01, 0x03, 0x03, "3" },
- {0x0d, 0x01, 0x03, 0x02, "4" },
- {0x0d, 0x01, 0x03, 0x01, "5" },
- {0x0d, 0x01, 0x03, 0x00, "7" },
-
- {0 , 0xfe, 0 , 2, "Cabinet" },
- {0x0d, 0x01, 0x04, 0x00, "Upright" },
- {0x0d, 0x01, 0x04, 0x04, "Cocktail" },
-
- {0 , 0xfe, 0 , 2, "Bonus Life" },
- {0x0d, 0x01, 0x08, 0x08, "20k 90k 70k+" },
- {0x0d, 0x01, 0x08, 0x00, "30k 110k 80k+" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x0d, 0x01, 0x60, 0x60, "Easy" },
- {0x0d, 0x01, 0x60, 0x40, "Normal" },
- {0x0d, 0x01, 0x60, 0x20, "Hard" },
- {0x0d, 0x01, 0x60, 0x00, "Hardest" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x0d, 0x01, 0x80, 0x80, "Off" },
- {0x0d, 0x01, 0x80, 0x00, "On" },
-};
-
-STDDIPINFO(Circusc)
-
-static void circusc_main_write(UINT16 address, UINT8 data)
-{
- switch (address)
- {
- case 0x0000:
- // flipscreen = data & 0x01;
- return;
-
- case 0x0001:
- irqmask = data & 0x01;
- return;
-
- case 0x0003:
- case 0x0004:
- // coin counter
- return;
-
- case 0x0005:
- spritebank = data & 0x01;
- return;
-
- case 0x0400:
- watchdog = 0;
- return;
-
- case 0x0800:
- soundlatch = data;
- return;
-
- case 0x0c00:
- ZetSetVector(0xff);
- ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
- return;
-
- case 0x1c00:
- scrolldata = data;
- return;
- }
-}
-
-static UINT8 circusc_main_read(UINT16 address)
-{
- switch (address)
- {
- case 0x1000:
- return DrvInputs[0];
-
- case 0x1001:
- return DrvInputs[1];
-
- case 0x1002:
- return DrvInputs[2];
-
- case 0x1003:
- return 0;
-
- case 0x1400:
- return DrvDips[0];
-
- case 0x1800:
- return DrvDips[1];
- }
-
- return 0;
-}
-
-static void __fastcall circusc_sound_write(UINT16 address, UINT8 data)
-{
- switch (address)
- {
- case 0xa000:
- snlatch = data;
- return;
-
- case 0xa001:
- SN76496Write(0, snlatch);
- return;
-
- case 0xa002:
- SN76496Write(1, snlatch);
- return;
-
- case 0xa003:
- DACWrite(0, data);
- return;
-
- case 0xa004:
- case 0xa07c:
- // discrete
- return;
- }
-}
-
-static UINT8 __fastcall circusc_sound_read(UINT16 address)
-{
- switch (address)
- {
- case 0x6000:
- ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
- return soundlatch;
-
- case 0x8000:
- return (ZetTotalCycles() / 0x200) & 0x1e;
- }
-
- return 0;
-}
-
-static INT32 DrvDACSync()
-{
- return (INT32)(float)(nBurnSoundLen * (ZetTotalCycles() / (3579545.0000 / (nBurnFPS / 100.0000))));
-}
-
-static INT32 DrvDoReset(INT32 clear_ram)
-{
- if (clear_ram) {
- memset (AllRam, 0, RamEnd - AllRam);
- }
-
- M6809Open(0);
- M6809Reset();
- M6809Close();
-
- ZetOpen(0);
- ZetReset();
- ZetClose();
-
- DACReset();
-
- watchdog = 0;
- soundlatch = 0;
- irqmask = 0;
- spritebank = 0;
- scrolldata = 0;
- snlatch = 0;
-
- HiscoreReset();
-
- return 0;
-}
-
-static INT32 MemIndex()
-{
- UINT8 *Next; Next = AllMem;
-
- DrvM6809ROM = Next; Next += 0x00a000;
- DrvM6809ROMDec = Next; Next += 0x00a000;
- DrvZ80ROM = Next; Next += 0x004000;
-
- DrvGfxROM0 = Next; Next += 0x018000;
- DrvGfxROM1 = Next; Next += 0x028000;
-
- DrvColPROM = Next; Next += 0x000220;
-
- DrvTransTable = Next; Next += 0x000200;
-
- DrvPalette = (UINT32*)Next; Next += 0x200 * sizeof(UINT32);
-
- AllRam = Next;
-
- DrvM6809RAM = Next; Next += 0x02000;
- DrvColRAM = Next; Next += 0x00400;
- DrvVidRAM = Next; Next += 0x00400;
- DrvSprRAM = Next; Next += 0x00200;
-
- DrvZ80RAM = Next; Next += 0x00400;
-
- RamEnd = Next;
- MemEnd = Next;
-
- return 0;
-}
-
-static void M6809Decode()
-{
- for (INT32 i = 0; i < 0xa000; i++) {
- DrvM6809ROMDec[i] = DrvM6809ROM[i] ^ (((i&2)?0x80:0x20)|((i&8)?0x08:0x02));
- }
-}
-
-static void DrvGfxExpand(UINT8 *src, INT32 len)
-{
- for (INT32 i = (len - 1) * 2; i >= 0; i-=2) {
- src[i+0] = src[i/2] >> 4;
- src[i+1] = src[i/2] & 0xf;
- }
-}
-
-static INT32 DrvInit()
-{
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
-
- if (BurnLoadRom(DrvM6809ROM + 0x00000, 0, 1)) return 1;
- if (BurnLoadRom(DrvM6809ROM + 0x02000, 1, 1)) return 1;
- if (BurnLoadRom(DrvM6809ROM + 0x04000, 2, 1)) return 1;
- if (BurnLoadRom(DrvM6809ROM + 0x06000, 3, 1)) return 1;
- if (BurnLoadRom(DrvM6809ROM + 0x08000, 4, 1)) return 1;
-
- if (BurnLoadRom(DrvZ80ROM + 0x00000, 5, 1)) return 1;
- if (BurnLoadRom(DrvZ80ROM + 0x02000, 6, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x00000, 7, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x02000, 8, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM1 + 0x00000, 9, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x02000, 10, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x04000, 11, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x06000, 12, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x08000, 13, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x0a000, 14, 1)) return 1;
-
- if (BurnLoadRom(DrvColPROM + 0x00000, 15, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x00020, 16, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x00120, 17, 1)) return 1;
-
- M6809Decode();
- DrvGfxExpand(DrvGfxROM0, 0x4000);
- DrvGfxExpand(DrvGfxROM1, 0xc000);
- }
-
- M6809Init(1);
- M6809Open(0);
- M6809MapMemory(DrvM6809RAM, 0x2000, 0x2fff, MAP_RAM);
- M6809MapMemory(DrvColRAM, 0x3000, 0x33ff, MAP_RAM);
- M6809MapMemory(DrvVidRAM, 0x3400, 0x37ff, MAP_RAM);
- M6809MapMemory(DrvSprRAM, 0x3800, 0x39ff, MAP_RAM);
- M6809MapMemory(DrvM6809RAM + 0x1a00, 0x3a00, 0x3fff, MAP_RAM);
- M6809MapMemory(DrvM6809ROM, 0x6000, 0xffff, MAP_READ);
- M6809MapMemory(DrvM6809ROMDec, 0x6000, 0xffff, MAP_FETCH);
- M6809SetWriteHandler(circusc_main_write);
- M6809SetReadHandler(circusc_main_read);
- M6809Close();
-
- ZetInit(0);
- ZetOpen(0);
- ZetMapMemory(DrvZ80ROM, 0x0000, 0x3fff, MAP_ROM);
- for (INT32 i = 0; i < 0x2000; i+=0x400) {
- ZetMapMemory(DrvZ80RAM, 0x4000+i, 0x43ff+i, MAP_RAM);
- }
- ZetSetWriteHandler(circusc_sound_write);
- ZetSetReadHandler(circusc_sound_read);
- ZetClose();
-
- SN76496Init(0, 1789772, 0);
- SN76496Init(1, 1789772, 1);
- SN76496SetRoute(0, 1.00, BURN_SND_ROUTE_BOTH);
- SN76496SetRoute(1, 1.00, BURN_SND_ROUTE_BOTH);
-
- DACInit(0, 0, 1, DrvDACSync);
- DACSetRoute(0, 1.00, BURN_SND_ROUTE_BOTH);
-
- GenericTilesInit();
-
- DrvDoReset(1);
-
- return 0;
-}
-
-static INT32 DrvExit()
-{
- GenericTilesExit();
-
- M6809Exit();
- ZetExit();
-
- SN76496Exit();
- DACExit();
-
- BurnFree (AllMem);
-
- return 0;
-}
-
-static void DrvPaletteInit()
-{
- UINT32 pens[32];
-
- for (INT32 i = 0; i < 32; i++)
- {
- INT32 bit0 = (DrvColPROM[i] >> 0) & 0x01;
- INT32 bit1 = (DrvColPROM[i] >> 1) & 0x01;
- INT32 bit2 = (DrvColPROM[i] >> 2) & 0x01;
- INT32 r = bit2 * 151 + bit1 * 71 + bit0 * 33;
-
- bit0 = (DrvColPROM[i] >> 3) & 0x01;
- bit1 = (DrvColPROM[i] >> 4) & 0x01;
- bit2 = (DrvColPROM[i] >> 5) & 0x01;
- INT32 g = bit2 * 151 + bit1 * 71 + bit0 * 33;
-
- bit0 = (DrvColPROM[i] >> 6) & 0x01;
- bit1 = (DrvColPROM[i] >> 7) & 0x01;
- INT32 b = bit1 * 174 + bit0 * 81;
-
- pens[i] = BurnHighCol(r,g,b,0);
- }
-
- for (INT32 i = 0; i < 0x200; i++) {
- DrvPalette[i] = pens[(DrvColPROM[i+0x20] & 0xf) + ((~i & 0x100)>>4)];
- DrvTransTable[i] = (DrvPalette[i] ? 0xff : 0);
- }
-}
-
-static void draw_layer(INT32 priority)
-{
- for (INT32 offs = 0; offs < 32 * 32; offs++)
- {
- INT32 sx = (offs & 0x1f) * 8;
- INT32 sy = (offs / 0x20) * 8;
-
- if (sx >= 80) sy -= scrolldata;
- if (sy < -7) sy += 256;
-
- sy -= 16;
- if (sy < -7 || sy >= nScreenHeight) continue;
-
- INT32 attr = DrvColRAM[offs];
- INT32 prio = attr & 0x10;
- if (priority != prio) continue;
-
- INT32 code = DrvVidRAM[offs] + ((attr & 0x20) * 8);
- INT32 color = attr & 0x0f;
- INT32 flipy = attr & 0x80;
- INT32 flipx = attr & 0x40;
-
- if (flipy) {
- if (flipx) {
- Render8x8Tile_FlipXY_Clip(pTransDraw, code, sx, sy, color, 4, 0, DrvGfxROM0);
- } else {
- Render8x8Tile_FlipY_Clip(pTransDraw, code, sx, sy, color, 4, 0, DrvGfxROM0);
- }
- } else {
- if (flipx) {
- Render8x8Tile_FlipX_Clip(pTransDraw, code, sx, sy, color, 4, 0, DrvGfxROM0);
- } else {
- Render8x8Tile_Clip(pTransDraw, code, sx, sy, color, 4, 0, DrvGfxROM0);
- }
- }
- }
-}
-
-static void draw_sprites()
-{
- UINT8 *spriteram = DrvSprRAM + (spritebank * 0x100);
-
- for (INT32 offs = 0; offs < 0x100; offs += 4)
- {
- INT32 attr = spriteram[offs + 1];
- INT32 code = spriteram[offs + 0] + ((attr & 0x20) * 8);
- INT32 sx = spriteram[offs + 2];
- INT32 sy = spriteram[offs + 3];
- INT32 color = attr & 0x0f;
- INT32 flipx = attr & 0x40;
- INT32 flipy = attr & 0x80;
-
- RenderTileTranstab(pTransDraw, DrvGfxROM1, code, color*16+0x100, 0, sx, sy - 16, flipx, flipy, 16, 16, DrvTransTable);
- }
-}
-
-static INT32 DrvDraw()
-{
- if (DrvRecalc) {
- DrvPaletteInit();
- DrvRecalc = 0;
- }
-
- draw_layer(0x10);
- draw_sprites();
- draw_layer(0x00);
-
- BurnTransferCopy(DrvPalette);
-
- return 0;
-}
-
-static INT32 DrvFrame()
-{
- watchdog++;
- if (watchdog >= 180) {
- DrvDoReset(0);
- }
-
- if (DrvReset) {
- DrvDoReset(1);
- }
-
- ZetNewFrame();
-
- {
- memset (DrvInputs, 0xff, 3);
- for (INT32 i = 0; i < 8; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- DrvInputs[2] ^= (DrvJoy3[i] & 1) << i;
- }
-
- // Clear opposites
- if ((DrvInputs[1] & 0x03) == 0) DrvInputs[1] |= 0x03;
- if ((DrvInputs[2] & 0x03) == 0) DrvInputs[2] |= 0x03;
- }
-
- INT32 nInterleave = 32;
- INT32 nCyclesTotal[2] = { 2048000 / 60, 3579545 / 60 };
- INT32 nCyclesDone[2] = { 0, 0 };
- INT32 nSoundBufferPos = 0;
-
- M6809Open(0);
- ZetOpen(0);
-
- for (INT32 i = 0; i < nInterleave; i++)
- {
- nCyclesDone[0] += M6809Run(nCyclesTotal[0] / nInterleave);
-
- nCyclesDone[1] += ZetRun(nCyclesTotal[1] / nInterleave);
-
- // Render Sound Segment
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen / nInterleave;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- SN76496Update(0, pSoundBuf, nSegmentLength);
- SN76496Update(1, pSoundBuf, nSegmentLength);
- nSoundBufferPos += nSegmentLength;
- }
- }
-
- if (irqmask) M6809SetIRQLine(0, CPU_IRQSTATUS_AUTO);
-
- // Make sure the buffer is entirely filled.
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- if (nSegmentLength) {
- SN76496Update(0, pSoundBuf, nSegmentLength);
- SN76496Update(1, pSoundBuf, nSegmentLength);
- }
- DACUpdate(pBurnSoundOut, nBurnSoundLen);
- }
-
- ZetClose();
- M6809Close();
-
- if (pBurnDraw) {
- DrvDraw();
- }
-
- return 0;
-}
-
-static INT32 DrvScan(INT32 nAction,INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin) {
- *pnMin = 0x029705;
- }
-
- if (nAction & ACB_VOLATILE) {
- memset(&ba, 0, sizeof(ba));
-
- ba.Data = AllRam;
- ba.nLen = RamEnd - AllRam;
- ba.szName = "All Ram";
- BurnAcb(&ba);
-
- M6809Scan(nAction);
- ZetScan(nAction);
-
- DACScan(nAction, pnMin);
- SN76496Scan(nAction, pnMin);
-
- SCAN_VAR(snlatch);
- SCAN_VAR(soundlatch);
- SCAN_VAR(irqmask);
- SCAN_VAR(spritebank);
- SCAN_VAR(scrolldata);
- }
-
- return 0;
-}
-
-
-// Circus Charlie (level select, set 1)
-
-static struct BurnRomInfo circuscRomDesc[] = {
- { "380_s05.3h", 0x2000, 0x48feafcf, 1 | BRF_PRG | BRF_ESS }, // 0 M6809 Code (Encrypted)
- { "380_q04.4h", 0x2000, 0xc283b887, 1 | BRF_PRG | BRF_ESS }, // 1
- { "380_q03.5h", 0x2000, 0xe90c0e86, 1 | BRF_PRG | BRF_ESS }, // 2
- { "380_q02.6h", 0x2000, 0x4d847dc6, 1 | BRF_PRG | BRF_ESS }, // 3
- { "380_q01.7h", 0x2000, 0x18c20adf, 1 | BRF_PRG | BRF_ESS }, // 4
-
- { "380_l14.5c", 0x2000, 0x607df0fb, 2 | BRF_PRG | BRF_ESS }, // 5 Z80 Code
- { "380_l15.7c", 0x2000, 0xa6ad30e1, 2 | BRF_PRG | BRF_ESS }, // 6
-
- { "380_j12.4a", 0x2000, 0x56e5b408, 3 | BRF_GRA }, // 7 Tiles
- { "380_j13.5a", 0x2000, 0x5aca0193, 3 | BRF_GRA }, // 8
-
- { "380_j06.11e", 0x2000, 0xdf0405c6, 4 | BRF_GRA }, // 9 Sprites
- { "380_j07.12e", 0x2000, 0x23dfe3a6, 4 | BRF_GRA }, // 10
- { "380_j08.13e", 0x2000, 0x3ba95390, 4 | BRF_GRA }, // 11
- { "380_j09.14e", 0x2000, 0xa9fba85a, 4 | BRF_GRA }, // 12
- { "380_j10.15e", 0x2000, 0x0532347e, 4 | BRF_GRA }, // 13
- { "380_j11.16e", 0x2000, 0xe1725d24, 4 | BRF_GRA }, // 14
-
- { "380_j18.2a", 0x0020, 0x10dd4eaa, 5 | BRF_GRA }, // 15 Color PROMs
- { "380_j17.7b", 0x0100, 0x13989357, 5 | BRF_GRA }, // 16
- { "380_j16.10c", 0x0100, 0xc244f2aa, 5 | BRF_GRA }, // 17
-};
-
-STD_ROM_PICK(circusc)
-STD_ROM_FN(circusc)
-
-struct BurnDriver BurnDrvCircusc = {
- "circusc", NULL, NULL, NULL, "1984",
- "Circus Charlie (level select, set 1)\0", NULL, "Konami", "GX380",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_KONAMI, GBF_PLATFORM, 0,
- NULL, circuscRomInfo, circuscRomName, NULL, NULL, CircuscInputInfo, CircuscDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x200,
- 224, 256, 3, 4
-};
-
-
-// Circus Charlie (level select, set 2)
-
-static struct BurnRomInfo circusc2RomDesc[] = {
- { "380_w05.3h", 0x2000, 0x87df9f5e, 1 | BRF_PRG | BRF_ESS }, // 0 M6809 Code (Encrypted)
- { "380_q04.4h", 0x2000, 0xc283b887, 1 | BRF_PRG | BRF_ESS }, // 1
- { "380_q03.5h", 0x2000, 0xe90c0e86, 1 | BRF_PRG | BRF_ESS }, // 2
- { "380_q02.6h", 0x2000, 0x4d847dc6, 1 | BRF_PRG | BRF_ESS }, // 3
- { "380_q01.7h", 0x2000, 0x18c20adf, 1 | BRF_PRG | BRF_ESS }, // 4
-
- { "380_l14.5c", 0x2000, 0x607df0fb, 2 | BRF_PRG | BRF_ESS }, // 5 Z80 Code
- { "380_l15.7c", 0x2000, 0xa6ad30e1, 2 | BRF_PRG | BRF_ESS }, // 6
-
- { "380_j12.4a", 0x2000, 0x56e5b408, 3 | BRF_GRA }, // 7 Tiles
- { "380_k13.5a", 0x2000, 0x5aca0193, 3 | BRF_GRA }, // 8
-
- { "380_j06.11e", 0x2000, 0xdf0405c6, 4 | BRF_GRA }, // 9 Sprites
- { "380_j07.12e", 0x2000, 0x23dfe3a6, 4 | BRF_GRA }, // 10
- { "380_j08.13e", 0x2000, 0x3ba95390, 4 | BRF_GRA }, // 11
- { "380_j09.14e", 0x2000, 0xa9fba85a, 4 | BRF_GRA }, // 12
- { "380_j10.15e", 0x2000, 0x0532347e, 4 | BRF_GRA }, // 13
- { "380_j11.16e", 0x2000, 0xe1725d24, 4 | BRF_GRA }, // 14
-
- { "380_j18.2a", 0x0020, 0x10dd4eaa, 5 | BRF_GRA }, // 15 Color PROMs
- { "380_j17.7b", 0x0100, 0x13989357, 5 | BRF_GRA }, // 16
- { "380_j16.10c", 0x0100, 0xc244f2aa, 5 | BRF_GRA }, // 17
-};
-
-STD_ROM_PICK(circusc2)
-STD_ROM_FN(circusc2)
-
-struct BurnDriver BurnDrvCircusc2 = {
- "circusc2", "circusc", NULL, NULL, "1984",
- "Circus Charlie (level select, set 2)\0", NULL, "Konami", "GX380",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_KONAMI, GBF_PLATFORM, 0,
- NULL, circusc2RomInfo, circusc2RomName, NULL, NULL, CircuscInputInfo, CircuscDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x200,
- 224, 256, 3, 4
-};
-
-
-// Circus Charlie (level select, set 3)
-
-static struct BurnRomInfo circusc3RomDesc[] = {
- { "380_w05.3h", 0x2000, 0x87df9f5e, 1 | BRF_PRG | BRF_ESS }, // 0 M6809 Code (Encrypted)
- { "380_r04.4h", 0x2000, 0xc283b887, 1 | BRF_PRG | BRF_ESS }, // 1
- { "380_r03.5h", 0x2000, 0xe90c0e86, 1 | BRF_PRG | BRF_ESS }, // 2
- { "380_r02.6h", 0x2000, 0x2d434c6f, 1 | BRF_PRG | BRF_ESS }, // 3
- { "380_q01.7h", 0x2000, 0x18c20adf, 1 | BRF_PRG | BRF_ESS }, // 4
-
- { "380_l14.5c", 0x2000, 0x607df0fb, 2 | BRF_PRG | BRF_ESS }, // 5 Z80 Code
- { "380_l15.7c", 0x2000, 0xa6ad30e1, 2 | BRF_PRG | BRF_ESS }, // 6
-
- { "380_j12.4a", 0x2000, 0x56e5b408, 3 | BRF_GRA }, // 7 Tiles
- { "380_j13.5a", 0x2000, 0x5aca0193, 3 | BRF_GRA }, // 8
-
- { "380_j06.11e", 0x2000, 0xdf0405c6, 4 | BRF_GRA }, // 9 Sprites
- { "380_j07.12e", 0x2000, 0x23dfe3a6, 4 | BRF_GRA }, // 10
- { "380_j08.13e", 0x2000, 0x3ba95390, 4 | BRF_GRA }, // 11
- { "380_j09.14e", 0x2000, 0xa9fba85a, 4 | BRF_GRA }, // 12
- { "380_j10.15e", 0x2000, 0x0532347e, 4 | BRF_GRA }, // 13
- { "380_j11.16e", 0x2000, 0xe1725d24, 4 | BRF_GRA }, // 14
-
- { "380_j18.2a", 0x0020, 0x10dd4eaa, 5 | BRF_GRA }, // 15 Color PROMs
- { "380_j17.7b", 0x0100, 0x13989357, 5 | BRF_GRA }, // 16
- { "380_j16.10c", 0x0100, 0xc244f2aa, 5 | BRF_GRA }, // 17
-};
-
-STD_ROM_PICK(circusc3)
-STD_ROM_FN(circusc3)
-
-struct BurnDriver BurnDrvCircusc3 = {
- "circusc3", "circusc", NULL, NULL, "1984",
- "Circus Charlie (level select, set 3)\0", NULL, "Konami", "GX380",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_KONAMI, GBF_PLATFORM, 0,
- NULL, circusc3RomInfo, circusc3RomName, NULL, NULL, CircuscInputInfo, CircuscDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x200,
- 224, 256, 3, 4
-};
-
-
-// Circus Charlie (no level select)
-
-static struct BurnRomInfo circusc4RomDesc[] = {
- { "380_r05.3h", 0x2000, 0xed52c60f, 1 | BRF_PRG | BRF_ESS }, // 0 M6809 Code (Encrypted)
- { "380_n04.4h", 0x2000, 0xfcc99e33, 1 | BRF_PRG | BRF_ESS }, // 1
- { "380_n03.5h", 0x2000, 0x5ef5b3b5, 1 | BRF_PRG | BRF_ESS }, // 2
- { "380_n02.6h", 0x2000, 0xa5a5e796, 1 | BRF_PRG | BRF_ESS }, // 3
- { "380_n01.7h", 0x2000, 0x70d26721, 1 | BRF_PRG | BRF_ESS }, // 4
-
- { "380_l14.5c", 0x2000, 0x607df0fb, 2 | BRF_PRG | BRF_ESS }, // 5 Z80 Code
- { "380_l15.7c", 0x2000, 0xa6ad30e1, 2 | BRF_PRG | BRF_ESS }, // 6
-
- { "380_j12.4a", 0x2000, 0x56e5b408, 3 | BRF_GRA }, // 7 Tiles
- { "380_j13.5a", 0x2000, 0x5aca0193, 3 | BRF_GRA }, // 8
-
- { "380_j06.11e", 0x2000, 0xdf0405c6, 4 | BRF_GRA }, // 9 Sprites
- { "380_j07.12e", 0x2000, 0x23dfe3a6, 4 | BRF_GRA }, // 10
- { "380_j08.13e", 0x2000, 0x3ba95390, 4 | BRF_GRA }, // 11
- { "380_j09.14e", 0x2000, 0xa9fba85a, 4 | BRF_GRA }, // 12
- { "380_j10.15e", 0x2000, 0x0532347e, 4 | BRF_GRA }, // 13
- { "380_j11.16e", 0x2000, 0xe1725d24, 4 | BRF_GRA }, // 14
-
- { "380_j18.2a", 0x0020, 0x10dd4eaa, 5 | BRF_GRA }, // 15 Color PROMs
- { "380_j17.7b", 0x0100, 0x13989357, 5 | BRF_GRA }, // 16
- { "380_j16.10c", 0x0100, 0xc244f2aa, 5 | BRF_GRA }, // 17
-};
-
-STD_ROM_PICK(circusc4)
-STD_ROM_FN(circusc4)
-
-struct BurnDriver BurnDrvCircusc4 = {
- "circusc4", "circusc", NULL, NULL, "1984",
- "Circus Charlie (no level select)\0", NULL, "Konami", "GX380",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_KONAMI, GBF_PLATFORM, 0,
- NULL, circusc4RomInfo, circusc4RomName, NULL, NULL, CircuscInputInfo, CircuscDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x200,
- 224, 256, 3, 4
-};
-
-
-// Circus Charlie (Centuri)
-
-static struct BurnRomInfo circusccRomDesc[] = {
- { "380_u05.3h", 0x2000, 0x964c035a, 1 | BRF_PRG | BRF_ESS }, // 0 M6809 Code (Encrypted)
- { "380_p04.4h", 0x2000, 0xdd0c0ee7, 1 | BRF_PRG | BRF_ESS }, // 1
- { "380_p03.5h", 0x2000, 0x190247af, 1 | BRF_PRG | BRF_ESS }, // 2
- { "380_p02.6h", 0x2000, 0x7e63725e, 1 | BRF_PRG | BRF_ESS }, // 3
- { "380_p01.7h", 0x2000, 0xeedaa5b2, 1 | BRF_PRG | BRF_ESS }, // 4
-
- { "380_l14.5c", 0x2000, 0x607df0fb, 2 | BRF_PRG | BRF_ESS }, // 5 Z80 Code
- { "380_l15.7c", 0x2000, 0xa6ad30e1, 2 | BRF_PRG | BRF_ESS }, // 6
-
- { "380_j12.4a", 0x2000, 0x56e5b408, 3 | BRF_GRA }, // 7 Tiles
- { "380_j13.5a", 0x2000, 0x5aca0193, 3 | BRF_GRA }, // 8
-
- { "380_j06.11e", 0x2000, 0xdf0405c6, 4 | BRF_GRA }, // 9 Sprites
- { "380_j07.12e", 0x2000, 0x23dfe3a6, 4 | BRF_GRA }, // 10
- { "380_j08.13e", 0x2000, 0x3ba95390, 4 | BRF_GRA }, // 11
- { "380_j09.14e", 0x2000, 0xa9fba85a, 4 | BRF_GRA }, // 12
- { "380_j10.15e", 0x2000, 0x0532347e, 4 | BRF_GRA }, // 13
- { "380_j11.16e", 0x2000, 0xe1725d24, 4 | BRF_GRA }, // 14
-
- { "380_j18.2a", 0x0020, 0x10dd4eaa, 5 | BRF_GRA }, // 15 Color PROMs
- { "380_j17.7b", 0x0100, 0x13989357, 5 | BRF_GRA }, // 16
- { "380_j16.10c", 0x0100, 0xc244f2aa, 5 | BRF_GRA }, // 17
-};
-
-STD_ROM_PICK(circuscc)
-STD_ROM_FN(circuscc)
-
-struct BurnDriver BurnDrvCircuscc = {
- "circuscc", "circusc", NULL, NULL, "1984",
- "Circus Charlie (Centuri)\0", NULL, "Konami (Centuri license)", "GX380",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_KONAMI, GBF_PLATFORM, 0,
- NULL, circusccRomInfo, circusccRomName, NULL, NULL, CircuscInputInfo, CircuscDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x200,
- 224, 256, 3, 4
-};
-
-
-// Circus Charlie (Centuri, earlier)
-
-static struct BurnRomInfo circusceRomDesc[] = {
- { "380_p05.3h", 0x2000, 0x7ca74494, 1 | BRF_PRG | BRF_ESS }, // 0 M6809 Code (Encrypted)
- { "380_p04.4h", 0x2000, 0xdd0c0ee7, 1 | BRF_PRG | BRF_ESS }, // 1
- { "380_p03.5h", 0x2000, 0x190247af, 1 | BRF_PRG | BRF_ESS }, // 2
- { "380_p02.6h", 0x2000, 0x7e63725e, 1 | BRF_PRG | BRF_ESS }, // 3
- { "380_p01.7h", 0x2000, 0xeedaa5b2, 1 | BRF_PRG | BRF_ESS }, // 4
-
- { "380_l14.5c", 0x2000, 0x607df0fb, 2 | BRF_PRG | BRF_ESS }, // 5 Z80 Code
- { "380_l15.7c", 0x2000, 0xa6ad30e1, 2 | BRF_PRG | BRF_ESS }, // 6
-
- { "380_j12.4a", 0x2000, 0x56e5b408, 3 | BRF_GRA }, // 7 Tiles
- { "380_j13.5a", 0x2000, 0x5aca0193, 3 | BRF_GRA }, // 8
-
- { "380_j06.11e", 0x2000, 0xdf0405c6, 4 | BRF_GRA }, // 9 Sprites
- { "380_j07.12e", 0x2000, 0x23dfe3a6, 4 | BRF_GRA }, // 10
- { "380_j08.13e", 0x2000, 0x3ba95390, 4 | BRF_GRA }, // 11
- { "380_j09.14e", 0x2000, 0xa9fba85a, 4 | BRF_GRA }, // 12
- { "380_j10.15e", 0x2000, 0x0532347e, 4 | BRF_GRA }, // 13
- { "380_j11.16e", 0x2000, 0xe1725d24, 4 | BRF_GRA }, // 14
-
- { "380_j18.2a", 0x0020, 0x10dd4eaa, 5 | BRF_GRA }, // 15 Color PROMs
- { "380_j17.7b", 0x0100, 0x13989357, 5 | BRF_GRA }, // 16
- { "380_j16.10c", 0x0100, 0xc244f2aa, 5 | BRF_GRA }, // 17
-};
-
-STD_ROM_PICK(circusce)
-STD_ROM_FN(circusce)
-
-struct BurnDriver BurnDrvCircusce = {
- "circusce", "circusc", NULL, NULL, "1984",
- "Circus Charlie (Centuri, earlier)\0", NULL, "Konami (Centuri license)", "GX380",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_KONAMI, GBF_PLATFORM, 0,
- NULL, circusceRomInfo, circusceRomName, NULL, NULL, CircuscInputInfo, CircuscDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x200,
- 224, 256, 3, 4
-};
diff --git a/jan/src/burn/drv/konami/d_contra.cpp b/jan/src/burn/drv/konami/d_contra.cpp
deleted file mode 100644
index 538c18b98..000000000
--- a/jan/src/burn/drv/konami/d_contra.cpp
+++ /dev/null
@@ -1,1406 +0,0 @@
-// FB Alpha Contra driver module
-// Based on MAME driver by Carlos A. Lozano, Phil Stroffolino, Jose T. Gomez, and Eric Hustvedt
-
-#include "tiles_generic.h"
-#include "burn_ym2151.h"
-#include "m6809_intf.h"
-#include "hd6309_intf.h"
-
-static UINT8 *AllMem;
-static UINT8 *MemEnd;
-static UINT8 *AllRam;
-static UINT8 *RamEnd;
-static UINT8 *DrvHD6309ROM0;
-static UINT8 *DrvM6809ROM0;
-static UINT8 *DrvHD6309RAM0;
-static UINT8 *DrvHD6309RAM1;
-static UINT8 *DrvM6809RAM0;
-static UINT8 *DrvGfxROM0;
-static UINT8 *DrvGfxROM1;
-static UINT8 *DrvPROMs;
-static UINT8 *DrvColTable;
-static UINT8 *DrvPalRAM;
-static UINT8 *DrvFgCRAM;
-static UINT8 *DrvFgVRAM;
-static UINT8 *DrvTxCRAM;
-static UINT8 *DrvTxVRAM;
-static UINT8 *DrvBgCRAM;
-static UINT8 *DrvBgVRAM;
-static UINT8 *DrvSprRAM;
-static UINT32 *DrvPalette;
-static UINT32 *Palette;
-static UINT8 DrvRecalc;
-static UINT8 *pDrvSprRAM0;
-static UINT8 *pDrvSprRAM1;
-
-static UINT8 DrvJoy1[8];
-static UINT8 DrvJoy2[8];
-static UINT8 DrvJoy3[8];
-static UINT8 DrvInputs[3];
-static UINT8 DrvDip[3];
-static UINT8 DrvReset;
-
-static UINT8 soundlatch;
-static UINT8 nBankData;
-
-static UINT8 K007121_ctrlram[2][8];
-static INT32 K007121_flipscreen[2];
-
-static struct BurnInputInfo DrvInputList[] =
-{
- {"P1 Coin" , BIT_DIGITAL , DrvJoy1 + 0, "p1 coin" },
- {"P1 Start" , BIT_DIGITAL , DrvJoy1 + 3, "p1 start" },
- {"P1 Left" , BIT_DIGITAL , DrvJoy2 + 0, "p1 left" },
- {"P1 Right" , BIT_DIGITAL , DrvJoy2 + 1, "p1 right" },
- {"P1 Up" , BIT_DIGITAL , DrvJoy2 + 2, "p1 up" },
- {"P1 Down" , BIT_DIGITAL , DrvJoy2 + 3, "p1 down" },
- {"P1 Fire 1" , BIT_DIGITAL , DrvJoy2 + 4, "p1 fire 1" },
- {"P1 Fire 2" , BIT_DIGITAL , DrvJoy2 + 5, "p1 fire 2" },
-
- {"P2 Coin" , BIT_DIGITAL , DrvJoy1 + 1, "p2 coin" },
- {"P2 Start" , BIT_DIGITAL , DrvJoy1 + 4, "p2 start" },
- {"P2 Left" , BIT_DIGITAL , DrvJoy3 + 0, "p2 left" },
- {"P2 Right" , BIT_DIGITAL , DrvJoy3 + 1, "p2 right" },
- {"P2 Up" , BIT_DIGITAL , DrvJoy3 + 2, "p2 up" },
- {"P2 Down" , BIT_DIGITAL , DrvJoy3 + 3, "p2 down" },
- {"P2 Fire 1" , BIT_DIGITAL , DrvJoy3 + 4, "p2 fire 1" },
- {"P2 Fire 2" , BIT_DIGITAL , DrvJoy3 + 5, "p2 fire 2" },
-
- {"Reset" , BIT_DIGITAL , &DrvReset, "reset" },
- {"Service" , BIT_DIGITAL , DrvJoy1 + 2, "service" },
- {"Dip 1" , BIT_DIPSWITCH, DrvDip + 0, "dip" },
- {"Dip 2" , BIT_DIPSWITCH, DrvDip + 1, "dip" },
- {"Dip 3" , BIT_DIPSWITCH, DrvDip + 2, "dip" },
-};
-
-STDINPUTINFO(Drv)
-
-static struct BurnDIPInfo DrvDIPList[]=
-{
- {0x12, 0xff, 0xff, 0xff, NULL },
- {0x13, 0xff, 0xff, 0x5a, NULL },
- {0x14, 0xff, 0xff, 0xff, NULL },
-
- {0x12, 0xfe, 0, 16, "Coin A" },
- {0x12, 0x01, 0x0f, 0x02, "4 Coins 1 Credit" },
- {0x12, 0x01, 0x0f, 0x05, "3 Coins 1 Credit" },
- {0x12, 0x01, 0x0f, 0x08, "2 Coins 1 Credit" },
- {0x12, 0x01, 0x0f, 0x04, "3 Coins 2 Credits" },
- {0x12, 0x01, 0x0f, 0x01, "4 Coins 3 Credits" },
- {0x12, 0x01, 0x0f, 0x0f, "1 Coin 1 Credit" },
- {0x12, 0x01, 0x0f, 0x03, "3 Coins 4 Credits" },
- {0x12, 0x01, 0x0f, 0x07, "2 Coins 3 Credits" },
- {0x12, 0x01, 0x0f, 0x0e, "1 Coin 2 Credits" },
- {0x12, 0x01, 0x0f, 0x06, "2 Coins 5 Credits" },
- {0x12, 0x01, 0x0f, 0x0d, "1 Coin 3 Credits" },
- {0x12, 0x01, 0x0f, 0x0c, "1 Coin 4 Credits" },
- {0x12, 0x01, 0x0f, 0x0b, "1 Coin 5 Credits" },
- {0x12, 0x01, 0x0f, 0x0a, "1 Coin 6 Credits" },
- {0x12, 0x01, 0x0f, 0x09, "1 Coin 7 Credits" },
- {0x12, 0x01, 0x0f, 0x00, "Free Play" },
-
- {0x12, 0xfe, 0, 15, "Coin B" },
- {0x12, 0x01, 0xf0, 0x20, "4 Coins 1 Credit" },
- {0x12, 0x01, 0xf0, 0x50, "3 Coins 1 Credit" },
- {0x12, 0x01, 0xf0, 0x80, "2 Coins 1 Credit" },
- {0x12, 0x01, 0xf0, 0x40, "3 Coins 2 Credits" },
- {0x12, 0x01, 0xf0, 0x10, "4 Coins 3 Credits" },
- {0x12, 0x01, 0xf0, 0xf0, "1 Coin 1 Credit" },
- {0x12, 0x01, 0xf0, 0x30, "3 Coins 4 Credits" },
- {0x12, 0x01, 0xf0, 0x70, "2 Coins 3 Credits" },
- {0x12, 0x01, 0xf0, 0xe0, "1 Coin 2 Credits" },
- {0x12, 0x01, 0xf0, 0x60, "2 Coins 5 Credits" },
- {0x12, 0x01, 0xf0, 0xd0, "1 Coin 3 Credits" },
- {0x12, 0x01, 0xf0, 0xc0, "1 Coin 4 Credits" },
- {0x12, 0x01, 0xf0, 0xb0, "1 Coin 5 Credits" },
- {0x12, 0x01, 0xf0, 0xa0, "1 Coin 6 Credits" },
- {0x12, 0x01, 0xf0, 0x90, "1 Coin 7 Credits" },
-
- {0x13, 0xfe, 0, 4, "Lives" },
- {0x13, 0x01, 0x03, 0x03, "2" },
- {0x13, 0x01, 0x03, 0x02, "3" },
- {0x13, 0x01, 0x03, 0x01, "5" }, // 4 in test mode
- {0x13, 0x01, 0x03, 0x00, "7" },
-
- {0x13, 0xfe, 0, 4, "Bonus Life" },
- {0x13, 0x01, 0x18, 0x18, "30000 70000" },
- {0x13, 0x01, 0x18, 0x10, "40000 80000" },
- {0x13, 0x01, 0x18, 0x08, "40000" },
- {0x13, 0x01, 0x18, 0x00, "50000" },
-
- {0x13, 0xfe, 0, 4, "Difficulty" },
- {0x13, 0x01, 0x60, 0x60, "Easy" },
- {0x13, 0x01, 0x60, 0x40, "Normal" },
- {0x13, 0x01, 0x60, 0x20, "Hard" },
- {0x13, 0x01, 0x60, 0x00, "Hardest" },
-
- {0x13, 0xfe, 0, 2, "Demo Sounds" },
- {0x13, 0x01, 0x80, 0x80, "Off" },
- {0x13, 0x01, 0x80, 0x00, "On" },
-
- {0x14, 0xfe, 0, 2, "Flip Screen" },
- {0x14, 0x01, 0x01, 0x01, "Off" },
- {0x14, 0x01, 0x01, 0x00, "On" },
-
- {0x14, 0xfe, 0, 2, "Service Mode" },
- {0x14, 0x01, 0x04, 0x04, "Off" },
- {0x14, 0x01, 0x04, 0x00, "On" },
-
- {0x14, 0xfe, 0, 2, "Sound" },
- {0x14, 0x01, 0x08, 0x00, "Mono" },
- {0x14, 0x01, 0x08, 0x08, "Stereo" },
-};
-
-STDDIPINFO(Drv)
-
-static struct BurnDIPInfo CabinetDIPList[]=
-{
-
- {0x13, 0xfe, 0, 2, "Cabinet" },
- {0x13, 0x01, 0x04, 0x00, "Upright" },
- {0x13, 0x01, 0x04, 0x04, "Cocktail" },
-
- {0x14, 0xfe, 0, 2, "Upright Controls" },
- {0x14, 0x02, 0x02, 0x02, "Single" },
- {0x13, 0x00, 0x04, 0x00, NULL},
- {0x14, 0x02, 0x02, 0x00, "Dual" },
- {0x13, 0x00, 0x04, 0x00, NULL},
-};
-
-STDDIPINFOEXT(Gryzor, Drv, Cabinet)
-
-static void K007121_ctrl_w(INT32 chip, INT32 offset, INT32 data)
-{
- if (offset == 7) K007121_flipscreen[chip] = data & 0x08;
-
- K007121_ctrlram[chip][offset] = data;
-}
-
-static void contra_K007121_ctrl_0_w(INT32 offset, INT32 data)
-{
- if (offset == 3)
- {
- if (data & 0x08)
- memcpy (pDrvSprRAM0, DrvSprRAM + 0x000, 0x800);
- else
- memcpy (pDrvSprRAM0, DrvSprRAM + 0x800, 0x800);
- }
-
- K007121_ctrl_w(0,offset,data);
-}
-
-static void contra_K007121_ctrl_1_w(INT32 offset, INT32 data)
-{
- if (offset == 3)
- {
- if (data&0x8)
- memcpy(pDrvSprRAM1, DrvHD6309RAM1 + 0x0800, 0x800);
- else
- memcpy(pDrvSprRAM1, DrvHD6309RAM1 + 0x1000, 0x800);
- }
-
- K007121_ctrl_w(1,offset,data);
-}
-
-void contra_bankswitch_w(INT32 data)
-{
- nBankData = data & 0x0f;
- INT32 bankaddress = 0x10000 + nBankData * 0x2000;
-
- if (bankaddress < 0x28000)
- HD6309MapMemory(DrvHD6309ROM0 + bankaddress, 0x6000, 0x7fff, MAP_ROM);
-}
-
-UINT8 DrvContraHD6309ReadByte(UINT16 address)
-{
- switch (address)
- {
- case 0x0010:
- case 0x0011:
- case 0x0012:
- return DrvInputs[address & 3];
-
- case 0x0014:
- case 0x0015:
- case 0x0016:
- return DrvDip[address & 3];
- }
-
- return 0;
-}
-
-void DrvContraHD6309WriteByte(UINT16 address, UINT8 data)
-{
- if ((address & 0xff00) == 0x0c00) {
- INT32 offset = address & 0xff;
-
- DrvPalRAM[offset] = data;
-
- UINT16 col = DrvPalRAM[offset & ~1] | (DrvPalRAM[offset | 1] << 8);
-
- UINT8 r, g, b;
-
- r = (col >> 0) & 0x1f;
- r = (r << 3) | (r >> 2);
-
- g = (col >> 5) & 0x1f;
- g = (g << 3) | (g >> 2);
-
- b = (col >> 10) & 0x1f;
- b = (b << 3) | (b >> 2);
-
- UINT32 color = (r << 16) | (g << 8) | b;
-
- DrvRecalc = 1;
- Palette[offset >> 1] = color;
-
- return;
- }
-
- switch (address)
- {
- case 0x0000:
- case 0x0001:
- case 0x0002:
- case 0x0003:
- case 0x0004:
- case 0x0005:
- case 0x0006:
- case 0x0007:
- contra_K007121_ctrl_0_w(address & 7, data);
- return;
-
- case 0x0018:
- // coin counter
- return;
-
- case 0x001a:
- M6809SetIRQLine(0, CPU_IRQSTATUS_AUTO);
- return;
-
- case 0x001c:
- soundlatch = data;
- return;
-
- case 0x0060:
- case 0x0061:
- case 0x0062:
- case 0x0063:
- case 0x0064:
- case 0x0065:
- case 0x0066:
- case 0x0067:
- contra_K007121_ctrl_1_w(address & 7, data);
- return;
-
- case 0x7000:
- contra_bankswitch_w(data);
- return;
- }
-}
-
-UINT8 DrvContraM6809SoundReadByte(UINT16 address)
-{
- switch (address)
- {
- case 0x0000:
- return soundlatch;
-
- case 0x2001:
- return BurnYM2151ReadStatus();
- }
-
- return 0;
-}
-
-void DrvContraM6809SoundWriteByte(UINT16 address, UINT8 data)
-{
- switch (address)
- {
- case 0x2000:
- BurnYM2151SelectRegister(data);
- return;
-
- case 0x2001:
- BurnYM2151WriteRegister(data);
- return;
- }
-}
-
-static INT32 MemIndex()
-{
- UINT8 *Next; Next = AllMem;
-
- DrvHD6309ROM0 = Next; Next += 0x030000;
- DrvM6809ROM0 = Next; Next += 0x010000;
-
- DrvGfxROM0 = Next; Next += 0x100000;
- DrvGfxROM1 = Next; Next += 0x100000;
-
- DrvPROMs = Next; Next += 0x000400;
-
- DrvColTable = Next; Next += 0x001000;
-
- DrvPalette = (UINT32*)Next; Next += 0x01000 * sizeof(UINT32);
-
- AllRam = Next;
-
- DrvHD6309RAM0 = Next; Next += 0x001000;
- DrvHD6309RAM1 = Next; Next += 0x001800;
- DrvM6809RAM0 = Next; Next += 0x000800;
- DrvPalRAM = Next; Next += 0x000100;
- DrvFgCRAM = Next; Next += 0x000400;
- DrvFgVRAM = Next; Next += 0x000400;
- DrvTxCRAM = Next; Next += 0x000400;
- DrvTxVRAM = Next; Next += 0x000400;
- DrvBgCRAM = Next; Next += 0x000400;
- DrvBgVRAM = Next; Next += 0x000400;
- DrvSprRAM = Next; Next += 0x001000;
-
- pDrvSprRAM0 = Next; Next += 0x000800;
- pDrvSprRAM1 = Next; Next += 0x000800;
-
- Palette = (UINT32*)Next; Next += 0x00080 * sizeof(UINT32);
-
- RamEnd = Next;
-
- MemEnd = Next;
-
- return 0;
-}
-
-static INT32 DrvGfxExpand(UINT8 *src)
-{
- for (INT32 i = 0x80000-1; i>=0; i--) {
- src[i*2+1] = src[i] & 0xf;
- src[i*2+0] = src[i] >> 4;
- }
-
- return 0;
-}
-
-static INT32 DrvColorTableInit()
-{
- for (INT32 chip = 0; chip < 2; chip++)
- {
- for (INT32 pal = 0; pal < 8; pal++)
- {
- INT32 clut = ((chip << 1) | (pal & 1)) << 8;
-
- for (INT32 i = 0; i < 0x100; i++)
- {
- UINT8 ctabentry;
-
- if (((pal & 0x01) == 0) && (DrvPROMs[clut | i] == 0))
- ctabentry = 0;
- else
- ctabentry = (pal << 4) | (DrvPROMs[clut | i] & 0x0f);
-
- DrvColTable[(chip << 11) | (pal << 8) | i] = ctabentry;
- }
- }
- }
-
- return 0;
-}
-
-static INT32 DrvDoReset()
-{
- memset (AllRam, 0, RamEnd - AllRam);
-
- memset (K007121_ctrlram, 0, sizeof(K007121_ctrlram));
- memset (K007121_flipscreen, 0, sizeof(K007121_flipscreen));
-
- HD6309Open(0);
- HD6309Reset();
- HD6309Close();
-
- M6809Open(0);
- M6809Reset();
- BurnYM2151Reset();
- M6809Close();
-
- soundlatch = 0;
- nBankData = 0;
-
- HiscoreReset();
-
- return 0;
-}
-
-static INT32 CommonInit(INT32 (*pRomLoad)())
-{
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (pRomLoad) {
- if (pRomLoad()) return 1;
- }
-
- DrvGfxExpand(DrvGfxROM0);
- DrvGfxExpand(DrvGfxROM1);
-
- DrvColorTableInit();
- }
-
- HD6309Init(0);
- HD6309Open(0);
- HD6309MapMemory(DrvPalRAM, 0x0c00, 0x0cff, MAP_ROM);
- HD6309MapMemory(DrvHD6309RAM0, 0x1000, 0x1fff, MAP_RAM);
- HD6309MapMemory(DrvFgCRAM, 0x2000, 0x23ff, MAP_RAM);
- HD6309MapMemory(DrvFgVRAM, 0x2400, 0x27ff, MAP_RAM);
- HD6309MapMemory(DrvTxCRAM, 0x2800, 0x2bff, MAP_RAM);
- HD6309MapMemory(DrvTxVRAM, 0x2c00, 0x2fff, MAP_RAM);
- HD6309MapMemory(DrvSprRAM, 0x3000, 0x3fff, MAP_RAM);
- HD6309MapMemory(DrvBgCRAM, 0x4000, 0x43ff, MAP_RAM);
- HD6309MapMemory(DrvBgVRAM, 0x4400, 0x47ff, MAP_RAM);
- HD6309MapMemory(DrvHD6309RAM1, 0x4800, 0x5fff, MAP_RAM);
-// HD6309MapMemory(DrvHD6309ROM0 + 0x10000, 0x6000, 0x7fff, MAP_ROM);
- HD6309MapMemory(DrvHD6309ROM0 + 0x08000, 0x8000, 0xffff, MAP_ROM);
- HD6309SetReadHandler(DrvContraHD6309ReadByte);
- HD6309SetWriteHandler(DrvContraHD6309WriteByte);
- HD6309Close();
-
- M6809Init(1);
- M6809Open(0);
- M6809MapMemory(DrvM6809RAM0, 0x6000, 0x67ff, MAP_RAM);
- M6809MapMemory(DrvM6809ROM0 + 0x08000, 0x8000, 0xffff, MAP_ROM);
- M6809SetReadHandler(DrvContraM6809SoundReadByte);
- M6809SetWriteHandler(DrvContraM6809SoundWriteByte);
- M6809Close();
-
- BurnYM2151Init(3579545);
- BurnYM2151SetRoute(BURN_SND_YM2151_YM2151_ROUTE_1, 0.60, BURN_SND_ROUTE_LEFT);
- BurnYM2151SetRoute(BURN_SND_YM2151_YM2151_ROUTE_2, 0.60, BURN_SND_ROUTE_RIGHT);
-
- DrvDoReset();
-
- GenericTilesInit();
-
- return 0;
-}
-
-static INT32 CommonRomLoad()
-{
- if (BurnLoadRom(DrvHD6309ROM0 + 0x20000, 0, 1)) return 1;
- memcpy (DrvHD6309ROM0 + 0x08000, DrvHD6309ROM0 + 0x28000, 0x08000);
- if (BurnLoadRom(DrvHD6309ROM0 + 0x10000, 1, 1)) return 1;
-
- if (BurnLoadRom(DrvM6809ROM0 + 0x08000, 2, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x000000, 3, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x000001, 4, 2)) return 1;
-
- if (BurnLoadRom(DrvGfxROM1 + 0x000000, 5, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x000001, 6, 2)) return 1;
-
- if (BurnLoadRom(DrvPROMs + 0x000000, 7, 1)) return 1;
- if (BurnLoadRom(DrvPROMs + 0x000100, 8, 1)) return 1;
- if (BurnLoadRom(DrvPROMs + 0x000200, 9, 1)) return 1;
- if (BurnLoadRom(DrvPROMs + 0x000300, 10, 1)) return 1;
-
- return 0;
-}
-
-static INT32 BootlegRomLoad()
-{
- if (BurnLoadRom(DrvHD6309ROM0 + 0x20000, 0, 1)) return 1;
- memcpy (DrvHD6309ROM0 + 0x08000, DrvHD6309ROM0 + 0x28000, 0x08000);
- if (BurnLoadRom(DrvHD6309ROM0 + 0x10000, 1, 1)) return 1;
-
- if (BurnLoadRom(DrvM6809ROM0 + 0x08000, 2, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x00000, 3, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x10000, 4, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x20000, 5, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x30000, 6, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x40000, 7, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x50000, 8, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x60000, 9, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x70000, 10, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM1 + 0x00000, 11, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x10000, 12, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x20000, 13, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x30000, 14, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x40000, 15, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x50000, 16, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x60000, 17, 1)) return 1;
-// 70000-7ffff empty
-
- if (BurnLoadRom(DrvPROMs + 0x000000, 18, 1)) return 1;
- if (BurnLoadRom(DrvPROMs + 0x000100, 19, 1)) return 1;
- if (BurnLoadRom(DrvPROMs + 0x000200, 20, 1)) return 1;
- if (BurnLoadRom(DrvPROMs + 0x000300, 21, 1)) return 1;
-
- return 0;
-}
-
-static INT32 ContraeRomLoad()
-{
- if (BurnLoadRom(DrvHD6309ROM0 + 0x20000, 0, 1)) return 1;
- memcpy (DrvHD6309ROM0 + 0x08000, DrvHD6309ROM0 + 0x28000, 0x08000);
- if (BurnLoadRom(DrvHD6309ROM0 + 0x10000, 1, 1)) return 1;
-
- if (BurnLoadRom(DrvM6809ROM0 + 0x08000, 2, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x000000, 3, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x020000, 4, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x040000, 5, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x060000, 6, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x000001, 7, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x020001, 8, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x040001, 9, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x060001, 10, 2)) return 1;
-
- if (BurnLoadRom(DrvGfxROM1 + 0x000000, 11, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x020000, 12, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x040000, 13, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x060000, 14, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x000001, 15, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x020001, 16, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x040001, 17, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x060001, 18, 2)) return 1;
-
- if (BurnLoadRom(DrvPROMs + 0x000000, 19, 1)) return 1;
- if (BurnLoadRom(DrvPROMs + 0x000100, 20, 1)) return 1;
- if (BurnLoadRom(DrvPROMs + 0x000200, 21, 1)) return 1;
- if (BurnLoadRom(DrvPROMs + 0x000300, 22, 1)) return 1;
-
- return 0;
-}
-
-static INT32 DrvInit() { return CommonInit(CommonRomLoad); }
-static INT32 BootInit() { return CommonInit(BootlegRomLoad); }
-static INT32 ContraeInit() { return CommonInit(ContraeRomLoad); }
-
-static INT32 DrvExit()
-{
- GenericTilesExit();
-
- HD6309Exit();
- M6809Exit();
- BurnYM2151Exit();
-
- BurnFree (AllMem);
-
- return 0;
-}
-
-static void draw_bg()
-{
- INT32 bit0 = (K007121_ctrlram[1][0x05] >> 0) & 0x03;
- INT32 bit1 = (K007121_ctrlram[1][0x05] >> 2) & 0x03;
- INT32 bit2 = (K007121_ctrlram[1][0x05] >> 4) & 0x03;
- INT32 bit3 = (K007121_ctrlram[1][0x05] >> 6) & 0x03;
- INT32 mask = (K007121_ctrlram[1][0x04] & 0xf0) >> 4;
- INT32 scrollx = K007121_ctrlram[1][0x00] & 0xff;
- INT32 scrolly = K007121_ctrlram[1][0x02] & 0xff;
- INT32 flipscreen = K007121_flipscreen[1];
-
- for (INT32 offs = 0; offs < 0x400; offs++)
- {
- INT32 sx = (offs & 0x1f) << 3;
- INT32 sy = (offs >> 5) << 3;
-
- sx -= scrollx;
- sy -= scrolly;
- if (sx < -7) sx += 256;
- if (sy < -7) sy += 256;
- sx += 40;
- sy -= 16;
-
- INT32 attr = DrvBgCRAM[offs];
-
- INT32 bank = ((attr & 0x80) >> 7) |
- ((attr >> (bit0+2)) & 0x02) |
- ((attr >> (bit1+1)) & 0x04) |
- ((attr >> (bit2 )) & 0x08) |
- ((attr >> (bit3-1)) & 0x10) |
- ((K007121_ctrlram[1][0x03] & 0x01) << 5);
-
- bank = (bank & ~(mask << 1)) | ((K007121_ctrlram[0][0x04] & mask) << 1);
-
- INT32 color = ((K007121_ctrlram[1][6]&0x30)*2+16)+(attr&7);
-
- INT32 code = DrvBgVRAM[offs] | (bank << 8);
-
- if (flipscreen) {
- Render8x8Tile_FlipXY_Clip(pTransDraw, code, (280 - sx)-8, 224 - sy, color, 4, 0x800, DrvGfxROM1);
- } else {
- Render8x8Tile_Clip(pTransDraw, code, sx, sy, color, 4, 0x800, DrvGfxROM1);
- }
- }
-}
-
-static void draw_fg()
-{
- INT32 bit0 = (K007121_ctrlram[0][0x05] >> 0) & 0x03;
- INT32 bit1 = (K007121_ctrlram[0][0x05] >> 2) & 0x03;
- INT32 bit2 = (K007121_ctrlram[0][0x05] >> 4) & 0x03;
- INT32 bit3 = (K007121_ctrlram[0][0x05] >> 6) & 0x03;
- INT32 mask = (K007121_ctrlram[0][0x04] & 0xf0) >> 4;
- INT32 scrollx = K007121_ctrlram[0][0x00] & 0xff;
- INT32 scrolly = K007121_ctrlram[0][0x02] & 0xff;
- INT32 flipscreen = K007121_flipscreen[0];
-
- for (INT32 offs = 0; offs < 0x400; offs++)
- {
- INT32 sx = (offs & 0x1f) << 3;
- INT32 sy = (offs >> 5) << 3;
-
- sx -= scrollx;
- sy -= scrolly;
- if (sx < -7) sx += 256;
- if (sy < -7) sy += 256;
- sx += 40;
- sy -= 16;
-
- INT32 attr = DrvFgCRAM[offs];
-
- INT32 bank = ((attr & 0x80) >> 7) |
- ((attr >> (bit0+2)) & 0x02) |
- ((attr >> (bit1+1)) & 0x04) |
- ((attr >> (bit2 )) & 0x08) |
- ((attr >> (bit3-1)) & 0x10) |
- ((K007121_ctrlram[0][0x03] & 0x01) << 5);
-
- bank = (bank & ~(mask << 1)) | ((K007121_ctrlram[0][0x04] & mask) << 1);
-
- INT32 color = ((K007121_ctrlram[0][6]&0x30)*2+16)+(attr&7);
-
- INT32 code = DrvFgVRAM[offs] | (bank << 8);
-
- if (flipscreen) {
- Render8x8Tile_Mask_FlipXY_Clip(pTransDraw, code, (280 - sx)-8, 224 - sy, color, 4, 0, 0, DrvGfxROM0);
- } else {
- Render8x8Tile_Mask_Clip(pTransDraw, code, sx, sy, color, 4, 0, 0, DrvGfxROM0);
- }
- }
-}
-
-static void draw_tx()
-{
- INT32 bit0 = (K007121_ctrlram[0][0x05] >> 0) & 0x03;
- INT32 bit1 = (K007121_ctrlram[0][0x05] >> 2) & 0x03;
- INT32 bit2 = (K007121_ctrlram[0][0x05] >> 4) & 0x03;
- INT32 bit3 = (K007121_ctrlram[0][0x05] >> 6) & 0x03;
- INT32 flipscreen = K007121_flipscreen[0];
-
- for (INT32 offs = 0x40; offs < 0x3c0; offs++)
- {
- INT32 sx = (offs & 0x1f) << 3;
- if (sx > 39) continue;
- INT32 sy = (offs >> 5) << 3;
-
- INT32 attr = DrvTxCRAM[offs];
-
- INT32 bank = ((attr & 0x80) >> 7) |
- ((attr >> (bit0+2)) & 0x02) |
- ((attr >> (bit1+1)) & 0x04) |
- ((attr >> (bit2 )) & 0x08) |
- ((attr >> (bit3-1)) & 0x10);
-
- INT32 color = ((K007121_ctrlram[0][6]&0x30)*2+16)+(attr&7);
-
- INT32 code = DrvTxVRAM[offs] | (bank << 8);
-
- if (flipscreen) {
- Render8x8Tile_FlipXY_Clip(pTransDraw, code, (sx ^ 0xf8) + 24, (sy ^ 0xf8) - 16, color, 4, 0, DrvGfxROM0);
- } else {
- Render8x8Tile(pTransDraw, code, sx, sy - 16, color, 4, 0, DrvGfxROM0);
- }
- }
-}
-
-
-static void K007121_sprites_draw(INT32 chip, UINT8 *gfx_base, UINT8 *ctable,
- const UINT8 *source, INT32 base_color,
- INT32 global_x_offset, INT32 global_y_offset,
- INT32 bank_base, INT32 pri_mask, INT32 color_offset)
-{
- INT32 flipscreen = K007121_flipscreen[chip];
- INT32 i,num,inc,offs[5],trans;
- INT32 is_flakatck = (ctable == NULL);
-
- if (is_flakatck)
- {
- num = 0x40;
- inc = -0x20;
- source += 0x3f << 5;
- offs[0] = 0x0e;
- offs[1] = 0x0f;
- offs[2] = 0x06;
- offs[3] = 0x04;
- offs[4] = 0x08;
- trans = 0;
- }
- else
- {
- num = 0x40;
-
- inc = 5;
- offs[0] = 0x00;
- offs[1] = 0x01;
- offs[2] = 0x02;
- offs[3] = 0x03;
- offs[4] = 0x04;
- trans = 0;
-
- if (pri_mask != -1)
- {
- source += (num-1)*inc;
- inc = -inc;
- }
- }
-
- for (i = 0;i < num;i++)
- {
- INT32 number = source[offs[0]];
- INT32 sprite_bank = source[offs[1]] & 0x0f;
- INT32 sx = source[offs[3]];
- INT32 sy = source[offs[2]];
- INT32 attr = source[offs[4]];
- INT32 color = base_color + ((source[offs[1]] & 0xf0) >> 4);
- INT32 xflip = attr & 0x10;
- INT32 yflip = attr & 0x20;
- INT32 width,height;
- INT32 transparent_color = 0;
- static const INT32 x_offset[4] = {0x0,0x1,0x4,0x5};
- static const INT32 y_offset[4] = {0x0,0x2,0x8,0xa};
- INT32 x,y, ex, ey;
-
- if (attr & 0x01) sx -= 256;
- if (sy >= 240) sy -= 256;
-
- number += ((sprite_bank & 0x3) << 8) + ((attr & 0xc0) << 4);
- number = number << 2;
- number += (sprite_bank >> 2) & 3;
-
- if (!is_flakatck || source[0x00])
- {
- number += bank_base;
-
- switch (attr & 0x0e)
- {
- case 0x06: width = height = 1; break;
- case 0x04: width = 1; height = 2; number &= (~2); break;
- case 0x02: width = 2; height = 1; number &= (~1); break;
- case 0x00: width = height = 2; number &= (~3); break;
- case 0x08: width = height = 4; number &= (~3); break;
- default: width = 1; height = 1;
- }
-
- for (y = 0; y < height; y++)
- {
- for (x = 0;x < width;x++)
- {
- ex = xflip ? (width-1-x) : x;
- ey = yflip ? (height-1-y) : y;
-
- if (flipscreen)
- {
- if (pri_mask != -1)
- ;// not implemented
- else
- if (yflip) {
- if (xflip) {
- Render8x8Tile_Mask_Clip(pTransDraw, number + x_offset[ex] + y_offset[ey], 248-(sx+x*8)-global_x_offset+24, 248-(sy+y*8)+global_y_offset, color, 4, transparent_color, color_offset, gfx_base);
- } else {
- Render8x8Tile_Mask_FlipX_Clip(pTransDraw, number + x_offset[ex] + y_offset[ey], 248-(sx+x*8)-global_x_offset+24, 248-(sy+y*8)+global_y_offset, color, 4, transparent_color, color_offset, gfx_base);
- }
- } else {
- if (xflip) {
- Render8x8Tile_Mask_FlipY_Clip(pTransDraw, number + x_offset[ex] + y_offset[ey], 248-(sx+x*8)-global_x_offset+24, 248-(sy+y*8)+global_y_offset, color, 4, transparent_color, color_offset, gfx_base);
- } else {
- Render8x8Tile_Mask_FlipXY_Clip(pTransDraw, number + x_offset[ex] + y_offset[ey], 248-(sx+x*8)-global_x_offset+24, 248-(sy+y*8)+global_y_offset, color, 4, transparent_color, color_offset, gfx_base);
- }
- }
- }
- else
- {
- if (pri_mask != -1)
- ;// not implemented
- else
- if (yflip) {
- if (xflip) {
- Render8x8Tile_Mask_FlipXY_Clip(pTransDraw, number + x_offset[ex] + y_offset[ey], global_x_offset+sx+x*8, (sy+y*8)+global_y_offset, color, 4, transparent_color, color_offset, gfx_base);
- } else {
- Render8x8Tile_Mask_FlipY_Clip(pTransDraw, number + x_offset[ex] + y_offset[ey], global_x_offset+sx+x*8, (sy+y*8)+global_y_offset, color, 4, transparent_color, color_offset, gfx_base);
- }
- } else {
- if (xflip) {
- Render8x8Tile_Mask_FlipX_Clip(pTransDraw, number + x_offset[ex] + y_offset[ey], global_x_offset+sx+x*8, (sy+y*8)+global_y_offset, color, 4, transparent_color, color_offset, gfx_base);
- } else {
- Render8x8Tile_Mask_Clip(pTransDraw, number + x_offset[ex] + y_offset[ey], global_x_offset+sx+x*8, (sy+y*8)+global_y_offset, color, 4, transparent_color, color_offset, gfx_base);
- }
- }
- }
- }
- }
- }
-
- source += inc;
- }
-}
-
-static void draw_sprites(INT32 bank, UINT8 *gfx_base, INT32 color_offset)
-{
- INT32 base_color = (K007121_ctrlram[bank][6]&0x30)<<1;
- const UINT8 *source = bank ? pDrvSprRAM1 : pDrvSprRAM0;
-
- K007121_sprites_draw(bank, gfx_base, DrvColTable, source, base_color, 40, -16, 0, -1, color_offset);
-}
-
-
-static INT32 DrvDraw()
-{
- if (DrvRecalc) {
- for (INT32 i = 0; i < 0x1000; i++) {
- INT32 rgb = Palette[DrvColTable[i]];
- DrvPalette[i] = BurnHighCol((rgb >> 16)&0xff, (rgb >> 8)&0xff, rgb&0xff, 0);
- }
- DrvRecalc = 0;
- }
-
- draw_bg();
- draw_fg();
-
- draw_sprites(0, DrvGfxROM0, 0x000);
- draw_sprites(1, DrvGfxROM1, 0x800);
-
- draw_tx();
-
- BurnTransferCopy(DrvPalette);
-
- return 0;
-}
-
-
-static INT32 DrvFrame()
-{
- INT32 nInterleave = 256;
-
- if (DrvReset) {
- DrvDoReset();
- }
-
- {
- DrvInputs[0] = DrvInputs[1] = DrvInputs[2] = 0xff;
-
- for (INT32 i = 0 ; i < 8; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- DrvInputs[2] ^= (DrvJoy3[i] & 1) << i;
- }
-
- // Clear opposites
- if ((DrvInputs[1] & 0x03) == 0) DrvInputs[1] |= 0x03;
- if ((DrvInputs[1] & 0x0c) == 0) DrvInputs[1] |= 0x0c;
- if ((DrvInputs[2] & 0x03) == 0) DrvInputs[2] |= 0x03;
- if ((DrvInputs[2] & 0x0c) == 0) DrvInputs[2] |= 0x0c;
- }
-
- INT32 nCyclesSegment = 0;
- INT32 nSoundBufferPos = 0;
- INT32 nCyclesTotal[2] = { 12000000 / 60, 3000000 / 60 };
- INT32 nCyclesDone[2] = { 0, 0 };
-
- HD6309Open(0);
- M6809Open(0);
-
- for (INT32 i = 0; i < nInterleave; i++) {
- INT32 nCurrentCPU, nNext;
-
- nCurrentCPU = 0;
- nNext = (i + 1) * nCyclesTotal[nCurrentCPU] / nInterleave;
- nCyclesSegment = nNext - nCyclesDone[nCurrentCPU];
- nCyclesDone[nCurrentCPU] += HD6309Run(nCyclesSegment);
- if (i == 240 && (K007121_ctrlram[0][7] & 0x02)) {
- HD6309SetIRQLine(0, CPU_IRQSTATUS_AUTO);
- }
-
- nCurrentCPU = 1;
- nNext = (i + 1) * nCyclesTotal[nCurrentCPU] / nInterleave;
- nCyclesSegment = nNext - nCyclesDone[nCurrentCPU];
- nCyclesDone[nCurrentCPU] += M6809Run(nCyclesSegment);
-
- if (pBurnSoundOut && i%16 == 15) {
- INT32 nSegmentLength = nBurnSoundLen / (nInterleave / 16);
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- BurnYM2151Render(pSoundBuf, nSegmentLength);
- nSoundBufferPos += nSegmentLength;
- }
- }
-
- M6809Close();
- HD6309Close();
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
-
- if (nSegmentLength) {
- M6809Open(0);
- BurnYM2151Render(pSoundBuf, nSegmentLength);
- M6809Close();
- }
- }
-
- if (pBurnDraw) {
- DrvDraw();
- }
-
- return 0;
-}
-
-static INT32 DrvScan(INT32 nAction, INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin) {
- *pnMin = 0x029696;
- }
-
- if (nAction & ACB_VOLATILE) {
- memset(&ba, 0, sizeof(ba));
- ba.Data = AllRam;
- ba.nLen = RamEnd - AllRam;
- ba.szName = "All RAM";
- BurnAcb(&ba);
-
- memset(&ba, 0, sizeof(ba));
- ba.Data = K007121_ctrlram;
- ba.nLen = sizeof(K007121_ctrlram);
- ba.szName = "K007121 Control RAM";
- BurnAcb(&ba);
- }
-
- if (nAction & ACB_DRIVER_DATA) {
- HD6309Scan(nAction);
- M6809Scan(nAction);
-
- BurnYM2151Scan(nAction);
-
- SCAN_VAR(K007121_flipscreen);
- SCAN_VAR(soundlatch);
- SCAN_VAR(nBankData);
-
- if (nAction & ACB_WRITE) {
- HD6309Open(0);
- contra_bankswitch_w(nBankData);
- HD6309Close();
- DrvRecalc = 1;
- }
- }
-
- return 0;
-}
-
-
-// Contra (US / Asia, set 1)
-
-static struct BurnRomInfo contraRomDesc[] = {
- { "633m03.18a", 0x10000, 0xd045e1da, 1 | BRF_PRG | BRF_ESS }, // 0 m6809 #0 Code
- { "633i02.17a", 0x10000, 0xb2f7bd9a, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "633e01.12a", 0x08000, 0xd1549255, 2 | BRF_PRG | BRF_ESS }, // 2 m6809 #1 Code
-
- { "633e04.7d", 0x40000, 0x14ddc542, 3 | BRF_GRA }, // 3 Chip 0 Tiles
- { "633e05.7f", 0x40000, 0x42185044, 3 | BRF_GRA }, // 4
-
- { "633e06.16d", 0x40000, 0x9cf6faae, 4 | BRF_GRA }, // 5 Chip 1 Tiles
- { "633e07.16f", 0x40000, 0xf2d06638, 4 | BRF_GRA }, // 6
-
- { "633e08.10g", 0x00100, 0x9f0949fa, 5 | BRF_GRA }, // 7 Color Proms
- { "633e09.12g", 0x00100, 0x14ca5e19, 5 | BRF_GRA }, // 8
- { "633f10.18g", 0x00100, 0x2b244d84, 5 | BRF_GRA }, // 9
- { "633f11.20g", 0x00100, 0x14ca5e19, 5 | BRF_GRA }, // 10
-
- { "007766.20d.bin", 0x1, 0x00000000, 0 | BRF_NODUMP }, /* PAL16L/A-2CN */
-};
-
-STD_ROM_PICK(contra)
-STD_ROM_FN(contra)
-
-struct BurnDriver BurnDrvContra = {
- "contra", NULL, NULL, NULL, "1987",
- "Contra (US / Asia, set 1)\0", NULL, "Konami", "GX633",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_KONAMI, GBF_SHOOT, 0,
- NULL, contraRomInfo, contraRomName, NULL, NULL, DrvInputInfo, DrvDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x1000,
- 224, 280, 3, 4
-};
-
-
-// Contra (US / Asia, set 2)
-
-static struct BurnRomInfo contra1RomDesc[] = {
- { "633i03.18a", 0x10000, 0x7fc0d8cf, 1 | BRF_PRG | BRF_ESS }, // 0 m6809 #0 Code
- { "633i02.17a", 0x10000, 0xb2f7bd9a, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "633e01.12a", 0x08000, 0xd1549255, 2 | BRF_PRG | BRF_ESS }, // 2 m6809 #1 Code
-
- { "633e04.7d", 0x40000, 0x14ddc542, 3 | BRF_GRA }, // 3 Chip 0 Tiles
- { "633e05.7f", 0x40000, 0x42185044, 3 | BRF_GRA }, // 4
-
- { "633e06.16d", 0x40000, 0x9cf6faae, 4 | BRF_GRA }, // 5 Chip 1 Tiles
- { "633e07.16f", 0x40000, 0xf2d06638, 4 | BRF_GRA }, // 6
-
- { "633e08.10g", 0x00100, 0x9f0949fa, 5 | BRF_GRA }, // 7 Color Proms
- { "633e09.12g", 0x00100, 0x14ca5e19, 5 | BRF_GRA }, // 8
- { "633f10.18g", 0x00100, 0x2b244d84, 5 | BRF_GRA }, // 9
- { "633f11.20g", 0x00100, 0x14ca5e19, 5 | BRF_GRA }, // 10
-
- { "007766.20d.bin", 0x1, 0x00000000, 0 | BRF_NODUMP }, /* PAL16L/A-2CN */
-};
-
-STD_ROM_PICK(contra1)
-STD_ROM_FN(contra1)
-
-struct BurnDriver BurnDrvContra1 = {
- "contra1", "contra", NULL, NULL, "1987",
- "Contra (US / Asia, set 2)\0", NULL, "Konami", "GX633",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_KONAMI, GBF_SHOOT, 0,
- NULL, contra1RomInfo, contra1RomName, NULL, NULL, DrvInputInfo, DrvDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x1000,
- 224, 280, 3, 4
-};
-
-
-// Contra (US / Asia, set 3)
-
-static struct BurnRomInfo contraeRomDesc[] = {
- { "633_e03.18a", 0x10000, 0x7ebdb314, 1 | BRF_PRG | BRF_ESS }, // 0 m6809 #0 Code
- { "633_e02.17a", 0x10000, 0x9d5ebe66, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "633e01.12a", 0x08000, 0xd1549255, 2 | BRF_PRG | BRF_ESS }, // 2 m6809 #1 Code
-
- // this PCB used official Konami riser-boards in place of the mask roms
- { "633_e04_a.7d", 0x10000, 0xe027f330, 3 | BRF_GRA }, // 3 Chip 0 Tiles
- { "633_e04_b.7d", 0x10000, 0xa71230f5, 3 | BRF_GRA }, // 4
- { "633_e04_c.7d", 0x10000, 0x0b103d01, 3 | BRF_GRA }, // 5
- { "633_e04_d.7d", 0x10000, 0xab3faa60, 3 | BRF_GRA }, // 6
- { "633_e05_a.7f", 0x10000, 0x81a70a77, 3 | BRF_GRA }, // 7
- { "633_e05_b.7f", 0x10000, 0x55556f29, 3 | BRF_GRA }, // 8
- { "633_e05_c.7f", 0x10000, 0xacba86bf, 3 | BRF_GRA }, // 9
- { "633_e05_d.7f", 0x10000, 0x59cf234d, 3 | BRF_GRA }, // 10
-
- { "633_e06_a.16d", 0x10000, 0x030079c5, 4 | BRF_GRA }, // 11 Chip 1 Tiles
- { "633_e06_b.16d", 0x10000, 0xe17d5807, 4 | BRF_GRA }, // 12
- { "633_e06_c.16d", 0x10000, 0x7d6a28cd, 4 | BRF_GRA }, // 13
- { "633_e06_d.16d", 0x10000, 0x83db378f, 4 | BRF_GRA }, // 14
- { "633_e07_a.16f", 0x10000, 0x8fcd40e5, 4 | BRF_GRA }, // 15
- { "633_e07_b.16f", 0x10000, 0x694e306e, 4 | BRF_GRA }, // 16
- { "633_e07_c.16f", 0x10000, 0xfb33f3ff, 4 | BRF_GRA }, // 17
- { "633_e07_d.16f", 0x10000, 0xcfab0988, 4 | BRF_GRA }, // 18
-
- { "633e08.10g", 0x00100, 0x9f0949fa, 5 | BRF_GRA }, // 19 Color Proms
- { "633e09.12g", 0x00100, 0x14ca5e19, 5 | BRF_GRA }, // 20
- { "633e10.18g", 0x00100, 0xe782c494, 5 | BRF_GRA }, // 21
- { "633e11.20g", 0x00100, 0x14ca5e19, 5 | BRF_GRA }, // 22
-
- { "007766.20d.bin", 0x1, 0x00000000, 0 | BRF_NODUMP }, /* PAL16L/A-2CN */
-};
-
-STD_ROM_PICK(contrae)
-STD_ROM_FN(contrae)
-
-struct BurnDriver BurnDrvContrae = {
- "contrae", "contra", NULL, NULL, "1987",
- "Contra (US / Asia, set 3)\0", NULL, "Konami", "GX633",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_KONAMI, GBF_SHOOT, 0,
- NULL, contraeRomInfo, contraeRomName, NULL, NULL, DrvInputInfo, DrvDIPInfo,
- ContraeInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x1000,
- 224, 280, 3, 4
-};
-
-
-// Contra (Japan, set 1)
-
-static struct BurnRomInfo contrajRomDesc[] = {
- { "633n03.18a", 0x10000, 0xfedab568, 1 | BRF_PRG | BRF_ESS }, // 0 m6809 #0 Code
- { "633k02.17a", 0x10000, 0x5d5f7438, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "633e01.12a", 0x08000, 0xd1549255, 2 | BRF_PRG | BRF_ESS }, // 2 m6809 #1 Code
-
- { "633e04.7d", 0x40000, 0x14ddc542, 3 | BRF_GRA }, // 3 Chip 0 Tiles
- { "633e05.7f", 0x40000, 0x42185044, 3 | BRF_GRA }, // 4
-
- { "633e06.16d", 0x40000, 0x9cf6faae, 4 | BRF_GRA }, // 5 Chip 1 Tiles
- { "633e07.16f", 0x40000, 0xf2d06638, 4 | BRF_GRA }, // 6
-
- { "633e08.10g", 0x00100, 0x9f0949fa, 5 | BRF_GRA }, // 7 Color Proms
- { "633e09.12g", 0x00100, 0x14ca5e19, 5 | BRF_GRA }, // 8
- { "633f10.18g", 0x00100, 0x2b244d84, 5 | BRF_GRA }, // 9
- { "633f11.20g", 0x00100, 0x14ca5e19, 5 | BRF_GRA }, // 10
-
- { "007766.20d.bin", 0x1, 0x00000000, 0 | BRF_NODUMP }, /* PAL16L/A-2CN */
-};
-
-STD_ROM_PICK(contraj)
-STD_ROM_FN(contraj)
-
-struct BurnDriver BurnDrvContraj = {
- "contraj", "contra", NULL, NULL, "1987",
- "Contra (Japan, set 1)\0", NULL, "Konami", "GX633",
- L"\u9B42\u6597\u7F85 \u30B3\u30F3\u30C8\u30E9 (Japan, set 1)\0Contra\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_KONAMI, GBF_SHOOT, 0,
- NULL, contrajRomInfo, contrajRomName, NULL, NULL, DrvInputInfo, DrvDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x1000,
- 224, 280, 3, 4
-};
-
-
-// Contra (Japan, set 2)
-
-static struct BurnRomInfo contraj1RomDesc[] = {
- { "633k03.18a", 0x10000, 0xbdb9196d, 1 | BRF_PRG | BRF_ESS }, // 0 m6809 #0 Code
- { "633k02.17a", 0x10000, 0x5d5f7438, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "633e01.12a", 0x08000, 0xd1549255, 2 | BRF_PRG | BRF_ESS }, // 2 m6809 #1 Code
-
- { "633e04.7d", 0x40000, 0x14ddc542, 3 | BRF_GRA }, // 3 Chip 0 Tiles
- { "633e05.7f", 0x40000, 0x42185044, 3 | BRF_GRA }, // 4
-
- { "633e06.16d", 0x40000, 0x9cf6faae, 4 | BRF_GRA }, // 5 Chip 1 Tiles
- { "633e07.16f", 0x40000, 0xf2d06638, 4 | BRF_GRA }, // 6
-
- { "633e08.10g", 0x00100, 0x9f0949fa, 5 | BRF_GRA }, // 7 Color Proms
- { "633e09.12g", 0x00100, 0x14ca5e19, 5 | BRF_GRA }, // 8
- { "633f10.18g", 0x00100, 0x2b244d84, 5 | BRF_GRA }, // 9
- { "633f11.20g", 0x00100, 0x14ca5e19, 5 | BRF_GRA }, // 10
-
- { "007766.20d.bin", 0x1, 0x00000000, 0 | BRF_NODUMP }, /* PAL16L/A-2CN */
-};
-
-STD_ROM_PICK(contraj1)
-STD_ROM_FN(contraj1)
-
-struct BurnDriver BurnDrvContraj1 = {
- "contraj1", "contra", NULL, NULL, "1987",
- "Contra (Japan, set 2)\0", NULL, "Konami", "GX633",
- L"\u9B42\u6597\u7F85 \u30B3\u30F3\u30C8\u30E9 (Japan, set 2)\0Contra\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_KONAMI, GBF_SHOOT, 0,
- NULL, contraj1RomInfo, contraj1RomName, NULL, NULL, DrvInputInfo, DrvDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x1000,
- 224, 280, 3, 4
-};
-
-
-// Gryzor (Set 1)
-
-static struct BurnRomInfo gryzorRomDesc[] = {
- { "633j03.18a", 0x10000, 0x20919162, 1 | BRF_PRG | BRF_ESS }, // 0 m6809 #0 Code
- { "633j02.17a", 0x10000, 0xb5922f9a, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "633e01.12a", 0x08000, 0xd1549255, 2 | BRF_PRG | BRF_ESS }, // 2 m6809 #1 Code
-
- { "633e04.7d", 0x40000, 0x14ddc542, 3 | BRF_GRA }, // 3 Chip 0 Tiles
- { "633e05.7f", 0x40000, 0x42185044, 3 | BRF_GRA }, // 4
-
- { "633e06.16d", 0x40000, 0x9cf6faae, 4 | BRF_GRA }, // 5 Chip 1 Tiles
- { "633e07.16f", 0x40000, 0xf2d06638, 4 | BRF_GRA }, // 6
-
- { "633e08.10g", 0x00100, 0x9f0949fa, 5 | BRF_GRA }, // 7 Color Proms
- { "633e09.12g", 0x00100, 0x14ca5e19, 5 | BRF_GRA }, // 8
- { "633f10.18g", 0x00100, 0x2b244d84, 5 | BRF_GRA }, // 9
- { "633f11.20g", 0x00100, 0x14ca5e19, 5 | BRF_GRA }, // 10
-
- { "007766.20d.bin", 0x1, 0x00000000, 0 | BRF_NODUMP }, /* PAL16L/A-2CN */
-};
-
-STD_ROM_PICK(gryzor)
-STD_ROM_FN(gryzor)
-
-struct BurnDriver BurnDrvGryzor = {
- "gryzor", "contra", NULL, NULL, "1987",
- "Gryzor (Set 1)\0", NULL, "Konami", "GX633",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_KONAMI, GBF_SHOOT, 0,
- NULL, gryzorRomInfo, gryzorRomName, NULL, NULL, DrvInputInfo, GryzorDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x1000,
- 224, 280, 3, 4
-};
-
-
-// Gryzor (Set 2)
-
-static struct BurnRomInfo gryzor1RomDesc[] = {
- { "633g2.18a", 0x10000, 0x92ca77bd, 1 | BRF_PRG | BRF_ESS }, // 0 m6809 #0 Code
- { "633g3.17a", 0x10000, 0xbbd9e95e, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "633e01.12a", 0x08000, 0xd1549255, 2 | BRF_PRG | BRF_ESS }, // 2 m6809 #1 Code
-
- { "633e04.7d", 0x40000, 0x14ddc542, 3 | BRF_GRA }, // 3 Chip 0 Tiles
- { "633e05.7f", 0x40000, 0x42185044, 3 | BRF_GRA }, // 4
-
- { "633e06.16d", 0x40000, 0x9cf6faae, 4 | BRF_GRA }, // 5 Chip 1 Tiles
- { "633e07.16f", 0x40000, 0xf2d06638, 4 | BRF_GRA }, // 6
-
- { "633e08.10g", 0x00100, 0x9f0949fa, 5 | BRF_GRA }, // 7 Color Proms
- { "633e09.12g", 0x00100, 0x14ca5e19, 5 | BRF_GRA }, // 8
- { "633f10.18g", 0x00100, 0x2b244d84, 5 | BRF_GRA }, // 9
- { "633f11.20g", 0x00100, 0x14ca5e19, 5 | BRF_GRA }, // 10
-
- { "007766.20d.bin", 0x1, 0x00000000, 0 | BRF_NODUMP },
-};
-
-STD_ROM_PICK(gryzor1)
-STD_ROM_FN(gryzor1)
-
-struct BurnDriver BurnDrvGryzor1 = {
- "gryzor1", "contra", NULL, NULL, "1987",
- "Gryzor (Set 2)\0", NULL, "Konami", "GX633",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_KONAMI, GBF_SHOOT, 0,
- NULL, gryzor1RomInfo, gryzor1RomName, NULL, NULL, DrvInputInfo, GryzorDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x1000,
- 224, 280, 3, 4
-};
-
-
-// Contra (bootleg)
-
-static struct BurnRomInfo contrabRomDesc[] = {
- { "3.ic20", 0x10000, 0xd045e1da, 1 | BRF_PRG | BRF_ESS }, // 0 m6809 #0 Code
- { "1.ic19", 0x10000, 0xb2f7bd9a, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "3.ic63", 0x08000, 0xd1549255, 2 | BRF_PRG | BRF_ESS }, // 2 m6809 #1 Code
-
- { "7.rom", 0x10000, 0x57f467d2, 3 | BRF_GRA }, // 3 Chip 0 Tiles
- { "10.rom", 0x10000, 0xe6db9685, 3 | BRF_GRA }, // 4
- { "9.rom", 0x10000, 0x875c61de, 3 | BRF_GRA }, // 5
- { "8.rom", 0x10000, 0x642765d6, 3 | BRF_GRA }, // 6
- { "15.rom", 0x10000, 0xdaa2324b, 3 | BRF_GRA }, // 7
- { "16.rom", 0x10000, 0xe27cc835, 3 | BRF_GRA }, // 8
- { "17.rom", 0x10000, 0xce4330b9, 3 | BRF_GRA }, // 9
- { "18.rom", 0x10000, 0x1571ce42, 3 | BRF_GRA }, // 10
-
- { "4.rom", 0x10000, 0x2cc7e52c, 4 | BRF_GRA }, // 11 Chip 1 Tiles
- { "5.rom", 0x10000, 0xe01a5b9c, 4 | BRF_GRA }, // 12
- { "6.rom", 0x10000, 0xaeea6744, 4 | BRF_GRA }, // 13
- { "14.rom", 0x10000, 0x765afdc7, 4 | BRF_GRA }, // 14
- { "11.rom", 0x10000, 0xbd9ba92c, 4 | BRF_GRA }, // 15
- { "12.rom", 0x10000, 0xd0be7ec2, 4 | BRF_GRA }, // 16
- { "13.rom", 0x10000, 0x2b513d12, 4 | BRF_GRA }, // 17
-
- { "633e08.10g", 0x00100, 0x9f0949fa, 5 | BRF_GRA }, // 18 Color Proms
- { "633e09.12g", 0x00100, 0x14ca5e19, 5 | BRF_GRA }, // 19
- { "633f10.18g", 0x00100, 0x2b244d84, 5 | BRF_GRA }, // 20
- { "633f11.20g", 0x00100, 0x14ca5e19, 5 | BRF_GRA }, // 21
-
- { "conprom.53", 0x00100, 0x05a1da7e, 0 | BRF_OPT }, // 22
-};
-
-STD_ROM_PICK(contrab)
-STD_ROM_FN(contrab)
-
-struct BurnDriver BurnDrvContrab = {
- "contrab", "contra", NULL, NULL, "1987",
- "Contra (bootleg)\0", NULL, "Konami", "GX633",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_KONAMI, GBF_SHOOT, 0,
- NULL, contrabRomInfo, contrabRomName, NULL, NULL, DrvInputInfo, DrvDIPInfo,
- BootInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x1000,
- 224, 280, 3, 4
-};
-
-
-// Contra (Japan bootleg, set 1)
-
-static struct BurnRomInfo contrabjRomDesc[] = {
- { "2.2k", 0x10000, 0xfedab568, 1 | BRF_PRG | BRF_ESS }, // 0 m6809 #0 Code
- { "1.2h", 0x10000, 0x5d5f7438, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "a3.4p", 0x08000, 0xd1549255, 2 | BRF_PRG | BRF_ESS }, // 2 m6809 #1 Code
-
- { "a7.14f", 0x10000, 0x57f467d2, 3 | BRF_GRA }, // 3 Chip 0 Tiles
- { "a10.14l", 0x10000, 0xe6db9685, 3 | BRF_GRA }, // 4
- { "a9.14k", 0x10000, 0x875c61de, 3 | BRF_GRA }, // 5
- { "a8.14h", 0x10000, 0x642765d6, 3 | BRF_GRA }, // 6
- { "a15.14r", 0x10000, 0xdaa2324b, 3 | BRF_GRA }, // 7
- { "a16.14t", 0x10000, 0xe27cc835, 3 | BRF_GRA }, // 8
- { "a17.14v", 0x10000, 0xce4330b9, 3 | BRF_GRA }, // 9
- { "a18.14w", 0x10000, 0x1571ce42, 3 | BRF_GRA }, // 10
-
- { "a4.14a", 0x10000, 0x2cc7e52c, 4 | BRF_GRA }, // 11 Chip 1 Tiles
- { "a5.14c", 0x10000, 0xe01a5b9c, 4 | BRF_GRA }, // 12
- { "e6.14d", 0x10000, 0xaeea6744, 4 | BRF_GRA }, // 13
- { "a14.14q", 0x10000, 0x765afdc7, 4 | BRF_GRA }, // 14
- { "a11.14m", 0x10000, 0xbd9ba92c, 4 | BRF_GRA }, // 15
- { "a12.14n", 0x10000, 0xd0be7ec2, 4 | BRF_GRA }, // 16
- { "a13.14p", 0x10000, 0x2b513d12, 4 | BRF_GRA }, // 17
-
- { "633e08.10g", 0x00100, 0x9f0949fa, 5 | BRF_GRA }, // 18 Color Proms
- { "633e09.12g", 0x00100, 0x14ca5e19, 5 | BRF_GRA }, // 19
- { "633f10.18g", 0x00100, 0x2b244d84, 5 | BRF_GRA }, // 20
- { "633f11.20g", 0x00100, 0x14ca5e19, 5 | BRF_GRA }, // 21
-};
-
-STD_ROM_PICK(contrabj)
-STD_ROM_FN(contrabj)
-
-struct BurnDriver BurnDrvContrabj = {
- "contrabj", "contra", NULL, NULL, "1987",
- "Contra (Japan bootleg, set 1)\0", NULL, "Konami", "GX633",
- L"\u9B42\u6597\u7F85 \u30B3\u30F3\u30C8\u30E9 (Japan bootleg, set 1)\0Contra\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_KONAMI, GBF_SHOOT, 0,
- NULL, contrabjRomInfo, contrabjRomName, NULL, NULL, DrvInputInfo, DrvDIPInfo,
- BootInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x1000,
- 224, 280, 3, 4
-};
-
-
-// Contra (Japan bootleg, set 2)
-
-static struct BurnRomInfo contrabj1RomDesc[] = {
- { "2__(contrabtj2).2k", 0x10000, 0xbdb9196d, 1 | BRF_PRG | BRF_ESS }, // 0 m6809 #0 Code
- { "1.2h", 0x10000, 0x5d5f7438, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "a3.4p", 0x08000, 0xd1549255, 2 | BRF_PRG | BRF_ESS }, // 2 m6809 #1 Code
-
- { "a7.14f", 0x10000, 0x57f467d2, 3 | BRF_GRA }, // 3 Chip 0 Tiles
- { "a10.14l", 0x10000, 0xe6db9685, 3 | BRF_GRA }, // 4
- { "a9.14k", 0x10000, 0x875c61de, 3 | BRF_GRA }, // 5
- { "a8.14h", 0x10000, 0x642765d6, 3 | BRF_GRA }, // 6
- { "a15.14r", 0x10000, 0xdaa2324b, 3 | BRF_GRA }, // 7
- { "a16.14t", 0x10000, 0xe27cc835, 3 | BRF_GRA }, // 8
- { "a17.14v", 0x10000, 0xce4330b9, 3 | BRF_GRA }, // 9
- { "a18.14w", 0x10000, 0x1571ce42, 3 | BRF_GRA }, // 10
-
- { "a4.14a", 0x10000, 0x2cc7e52c, 4 | BRF_GRA }, // 11 Chip 1 Tiles
- { "a5.14c", 0x10000, 0xe01a5b9c, 4 | BRF_GRA }, // 12
- { "e6.14d", 0x10000, 0xaeea6744, 4 | BRF_GRA }, // 13
- { "a14.14q", 0x10000, 0x765afdc7, 4 | BRF_GRA }, // 14
- { "a11.14m", 0x10000, 0xbd9ba92c, 4 | BRF_GRA }, // 15
- { "a12.14n", 0x10000, 0xd0be7ec2, 4 | BRF_GRA }, // 16
- { "a13.14p", 0x10000, 0x2b513d12, 4 | BRF_GRA }, // 17
-
- { "633e08.10g", 0x00100, 0x9f0949fa, 5 | BRF_GRA }, // 18 Color Proms
- { "633e09.12g", 0x00100, 0x14ca5e19, 5 | BRF_GRA }, // 19
- { "633f10.18g", 0x00100, 0x2b244d84, 5 | BRF_GRA }, // 20
- { "633f11.20g", 0x00100, 0x14ca5e19, 5 | BRF_GRA }, // 21
-};
-
-STD_ROM_PICK(contrabj1)
-STD_ROM_FN(contrabj1)
-
-struct BurnDriver BurnDrvContrabj1 = {
- "contrabj1", "contra", NULL, NULL, "1987",
- "Contra (Japan bootleg, set 2)\0", NULL, "Konami", "GX633",
- L"\u9B42\u6597\u7F85 \u30B3\u30F3\u30C8\u30E9 (Japan bootleg, set 2)\0Contra\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_KONAMI, GBF_SHOOT, 0,
- NULL, contrabj1RomInfo, contrabj1RomName, NULL, NULL, DrvInputInfo, DrvDIPInfo,
- BootInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x1000,
- 224, 280, 3, 4
-};
-
diff --git a/jan/src/burn/drv/konami/d_crimfght.cpp b/jan/src/burn/drv/konami/d_crimfght.cpp
deleted file mode 100644
index e70f56658..000000000
--- a/jan/src/burn/drv/konami/d_crimfght.cpp
+++ /dev/null
@@ -1,779 +0,0 @@
-// FB Alpha Crime Fighters driver module
-// Based on MAME driver by Manuel Abadia
-
-#include "tiles_generic.h"
-#include "z80_intf.h"
-#include "konami_intf.h"
-#include "konamiic.h"
-#include "burn_ym2151.h"
-#include "k007232.h"
-
-static UINT8 *AllMem;
-static UINT8 *MemEnd;
-static UINT8 *AllRam;
-static UINT8 *RamEnd;
-static UINT8 *DrvKonROM;
-static UINT8 *DrvZ80ROM;
-static UINT8 *DrvGfxROM0;
-static UINT8 *DrvGfxROM1;
-static UINT8 *DrvGfxROMExp0;
-static UINT8 *DrvGfxROMExp1;
-static UINT8 *DrvSndROM;
-static UINT8 *DrvBankRAM;
-static UINT8 *DrvKonRAM;
-static UINT8 *DrvPalRAM;
-static UINT8 *DrvZ80RAM;
-static UINT32 *DrvPalette;
-static UINT8 DrvRecalc;
-
-static UINT8 *soundlatch;
-static UINT8 *nDrvRamBank;
-static UINT8 *nDrvKonamiBank;
-
-static UINT8 DrvJoy1[8];
-static UINT8 DrvJoy2[8];
-static UINT8 DrvJoy3[8];
-static UINT8 DrvJoy4[8];
-static UINT8 DrvJoy5[8];
-static UINT8 DrvDips[3];
-static UINT8 DrvInputs[5];
-static UINT8 DrvReset;
-
-static struct BurnInputInfo CrimfghtInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy5 + 0, "p1 coin"},
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 7, "p1 start"},
- {"P1 Up", BIT_DIGITAL, DrvJoy1 + 2, "p1 up"},
- {"P1 Down", BIT_DIGITAL, DrvJoy1 + 3, "p1 down"},
- {"P1 Left", BIT_DIGITAL, DrvJoy1 + 0, "p1 left"},
- {"P1 Right", BIT_DIGITAL, DrvJoy1 + 1, "p1 right"},
- {"P1 Button 1", BIT_DIGITAL, DrvJoy1 + 4, "p1 fire 1"},
- {"P1 Button 2", BIT_DIGITAL, DrvJoy1 + 5, "p1 fire 2"},
- {"P1 Button 3", BIT_DIGITAL, DrvJoy1 + 6, "p1 fire 3"},
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy5 + 1, "p2 coin"},
- {"P2 Start", BIT_DIGITAL, DrvJoy2 + 7, "p2 start"},
- {"P2 Up", BIT_DIGITAL, DrvJoy2 + 2, "p2 up"},
- {"P2 Down", BIT_DIGITAL, DrvJoy2 + 3, "p2 down"},
- {"P2 Left", BIT_DIGITAL, DrvJoy2 + 0, "p2 left"},
- {"P2 Right", BIT_DIGITAL, DrvJoy2 + 1, "p2 right"},
- {"P2 Button 1", BIT_DIGITAL, DrvJoy2 + 4, "p2 fire 1"},
- {"P2 Button 2", BIT_DIGITAL, DrvJoy2 + 5, "p2 fire 2"},
- {"P2 Button 3", BIT_DIGITAL, DrvJoy2 + 6, "p2 fire 3"},
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset"},
- {"Service 1", BIT_DIGITAL, DrvJoy5 + 4, "service"},
- {"Service 2", BIT_DIGITAL, DrvJoy5 + 5, "service2"},
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip"},
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip"},
- {"Dip C", BIT_DIPSWITCH, DrvDips + 2, "dip"},
-};
-
-STDINPUTINFO(Crimfght)
-
-static struct BurnInputInfo CrimfghtuInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy5 + 0, "p1 coin" },
- {"P1 Up", BIT_DIGITAL, DrvJoy1 + 2, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy1 + 3, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy1 + 0, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy1 + 1, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy1 + 4, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy1 + 5, "p1 fire 2" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy5 + 1, "p2 coin" },
- {"P2 Up", BIT_DIGITAL, DrvJoy2 + 2, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy2 + 3, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy2 + 0, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy2 + 1, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy2 + 4, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy2 + 5, "p2 fire 2" },
-
- {"P3 Coin", BIT_DIGITAL, DrvJoy5 + 2, "p3 coin" },
- {"P3 Up", BIT_DIGITAL, DrvJoy3 + 2, "p3 up" },
- {"P3 Down", BIT_DIGITAL, DrvJoy3 + 3, "p3 down" },
- {"P3 Left", BIT_DIGITAL, DrvJoy3 + 0, "p3 left" },
- {"P3 Right", BIT_DIGITAL, DrvJoy3 + 1, "p3 right" },
- {"P3 Button 1", BIT_DIGITAL, DrvJoy3 + 4, "p3 fire 1" },
- {"P3 Button 2", BIT_DIGITAL, DrvJoy3 + 5, "p3 fire 2" },
-
- {"P4 Coin", BIT_DIGITAL, DrvJoy5 + 3, "p4 coin" },
- {"P4 Up", BIT_DIGITAL, DrvJoy4 + 2, "p4 up" },
- {"P4 Down", BIT_DIGITAL, DrvJoy4 + 3, "p4 down" },
- {"P4 Left", BIT_DIGITAL, DrvJoy4 + 0, "p4 left" },
- {"P4 Right", BIT_DIGITAL, DrvJoy4 + 1, "p4 right" },
- {"P4 Button 1", BIT_DIGITAL, DrvJoy4 + 4, "p4 fire 1" },
- {"P4 Button 2", BIT_DIGITAL, DrvJoy4 + 5, "p4 fire 2" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service 1", BIT_DIGITAL, DrvJoy5 + 4, "service" },
- {"Service 2", BIT_DIGITAL, DrvJoy5 + 5, "service2"},
- {"Service 3", BIT_DIGITAL, DrvJoy5 + 6, "service3"},
- {"Service 4", BIT_DIGITAL, DrvJoy5 + 7, "service4"},
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip" },
- {"Dip C", BIT_DIPSWITCH, DrvDips + 2, "dip" },
-};
-
-STDINPUTINFO(Crimfghtu)
-
-static struct BurnDIPInfo CrimfghtDIPList[]=
-{
- {0x15, 0xff, 0xff, 0xff, NULL },
- {0x16, 0xff, 0xff, 0x5f, NULL },
- {0x17, 0xff, 0xff, 0xfb, NULL },
-
- {0 , 0xfe, 0 , 16, "Coin A" },
- {0x15, 0x01, 0x0f, 0x02, "4 Coins 1 Credit" },
- {0x15, 0x01, 0x0f, 0x05, "3 Coins 1 Credit" },
- {0x15, 0x01, 0x0f, 0x08, "2 Coins 1 Credit" },
- {0x15, 0x01, 0x0f, 0x04, "3 Coins 2 Credits" },
- {0x15, 0x01, 0x0f, 0x01, "4 Coins 3 Credits" },
- {0x15, 0x01, 0x0f, 0x0f, "1 Coin 1 Credit" },
- {0x15, 0x01, 0x0f, 0x03, "3 Coins 4 Credits" },
- {0x15, 0x01, 0x0f, 0x07, "2 Coins 3 Credits" },
- {0x15, 0x01, 0x0f, 0x0e, "1 Coin 2 Credits" },
- {0x15, 0x01, 0x0f, 0x06, "2 Coins 5 Credits" },
- {0x15, 0x01, 0x0f, 0x0d, "1 Coin 3 Credits" },
- {0x15, 0x01, 0x0f, 0x0c, "1 Coin 4 Credits" },
- {0x15, 0x01, 0x0f, 0x0b, "1 Coin 5 Credits" },
- {0x15, 0x01, 0x0f, 0x0a, "1 Coin 6 Credits" },
- {0x15, 0x01, 0x0f, 0x09, "1 Coin 7 Credits" },
- {0x15, 0x01, 0x0f, 0x00, "Free Play" },
-
- {0 , 0xfe, 0 , 16, "Coin B" },
- {0x15, 0x01, 0xf0, 0x20, "4 Coins 1 Credit" },
- {0x15, 0x01, 0xf0, 0x50, "3 Coins 1 Credit" },
- {0x15, 0x01, 0xf0, 0x80, "2 Coins 1 Credit" },
- {0x15, 0x01, 0xf0, 0x40, "3 Coins 2 Credits" },
- {0x15, 0x01, 0xf0, 0x10, "4 Coins 3 Credits" },
- {0x15, 0x01, 0xf0, 0xf0, "1 Coin 1 Credit" },
- {0x15, 0x01, 0xf0, 0x30, "3 Coins 4 Credits" },
- {0x15, 0x01, 0xf0, 0x70, "2 Coins 3 Credits" },
- {0x15, 0x01, 0xf0, 0xe0, "1 Coin 2 Credits" },
- {0x15, 0x01, 0xf0, 0x60, "2 Coins 5 Credits" },
- {0x15, 0x01, 0xf0, 0xd0, "1 Coin 3 Credits" },
- {0x15, 0x01, 0xf0, 0xc0, "1 Coin 4 Credits" },
- {0x15, 0x01, 0xf0, 0xb0, "1 Coin 5 Credits" },
- {0x15, 0x01, 0xf0, 0xa0, "1 Coin 6 Credits" },
- {0x15, 0x01, 0xf0, 0x90, "1 Coin 7 Credits" },
- {0x15, 0x01, 0xf0, 0x00, "Not Use" },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x16, 0x01, 0x03, 0x03, "1" },
- {0x16, 0x01, 0x03, 0x02, "2" },
- {0x16, 0x01, 0x03, 0x01, "3" },
- {0x16, 0x01, 0x03, 0x00, "4" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x16, 0x01, 0x60, 0x60, "Easy" },
- {0x16, 0x01, 0x60, 0x40, "Normal" },
- {0x16, 0x01, 0x60, 0x20, "Difficult" },
- {0x16, 0x01, 0x60, 0x00, "Very Difficult" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x16, 0x01, 0x80, 0x80, "Off" },
- {0x16, 0x01, 0x80, 0x00, "On" },
-
-// {0 , 0xfe, 0 , 2, "Flip Screen" },
-// {0x17, 0x01, 0x01, 0x01, "Off" },
-// {0x17, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x17, 0x01, 0x04, 0x00, "Off" },
- {0x17, 0x01, 0x04, 0x04, "On" },
-};
-
-STDDIPINFO(Crimfght)
-
-static struct BurnDIPInfo CrimfghtuDIPList[]=
-{
- {0x21, 0xff, 0xff, 0xff, NULL },
- {0x22, 0xff, 0xff, 0x5f, NULL },
- {0x23, 0xff, 0xff, 0xfb, NULL },
-
- {0 , 0xfe, 0 , 16, "Coinage" },
- {0x21, 0x01, 0x0f, 0x02, "4 Coins 1 Credit" },
- {0x21, 0x01, 0x0f, 0x05, "3 Coins 1 Credit" },
- {0x21, 0x01, 0x0f, 0x08, "2 Coins 1 Credit" },
- {0x21, 0x01, 0x0f, 0x04, "3 Coins 2 Credits" },
- {0x21, 0x01, 0x0f, 0x01, "4 Coins 3 Credits" },
- {0x21, 0x01, 0x0f, 0x0f, "1 Coin 1 Credit" },
- {0x21, 0x01, 0x0f, 0x03, "3 Coins 4 Credits" },
- {0x21, 0x01, 0x0f, 0x07, "2 Coins 3 Credits" },
- {0x21, 0x01, 0x0f, 0x0e, "1 Coin 2 Credits" },
- {0x21, 0x01, 0x0f, 0x06, "2 Coins 5 Credits" },
- {0x21, 0x01, 0x0f, 0x0d, "1 Coin 3 Credits" },
- {0x21, 0x01, 0x0f, 0x0c, "1 Coin 4 Credits" },
- {0x21, 0x01, 0x0f, 0x0b, "1 Coin 5 Credits" },
- {0x21, 0x01, 0x0f, 0x0a, "1 Coin 6 Credits" },
- {0x21, 0x01, 0x0f, 0x09, "1 Coin 7 Credits" },
- {0x21, 0x01, 0x0f, 0x00, "1 Coin 99 Credits" },
-
-/* {0 , 0xfe, 0 , 16, "Coin B" },
- {0x21, 0x01, 0xf0, 0x20, "4 Coins 1 Credit" },
- {0x21, 0x01, 0xf0, 0x50, "3 Coins 1 Credit" },
- {0x21, 0x01, 0xf0, 0x80, "2 Coins 1 Credit" },
- {0x21, 0x01, 0xf0, 0x40, "3 Coins 2 Credits" },
- {0x21, 0x01, 0xf0, 0x10, "4 Coins 3 Credits" },
- {0x21, 0x01, 0xf0, 0xf0, "1 Coin 1 Credit" },
- {0x21, 0x01, 0xf0, 0x30, "3 Coins 4 Credits" },
- {0x21, 0x01, 0xf0, 0x70, "2 Coins 3 Credits" },
- {0x21, 0x01, 0xf0, 0xe0, "1 Coin 2 Credits" },
- {0x21, 0x01, 0xf0, 0x60, "2 Coins 5 Credits" },
- {0x21, 0x01, 0xf0, 0xd0, "1 Coin 3 Credits" },
- {0x21, 0x01, 0xf0, 0xc0, "1 Coin 4 Credits" },
- {0x21, 0x01, 0xf0, 0xb0, "1 Coin 5 Credits" },
- {0x21, 0x01, 0xf0, 0xa0, "1 Coin 6 Credits" },
- {0x21, 0x01, 0xf0, 0x90, "1 Coin 7 Credits" },
- {0x21, 0x01, 0xf0, 0x00, "No Coin B" },*/
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x22, 0x01, 0x60, 0x60, "Easy" },
- {0x22, 0x01, 0x60, 0x40, "Normal" },
- {0x22, 0x01, 0x60, 0x20, "Difficult" },
- {0x22, 0x01, 0x60, 0x00, "Very difficult" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x22, 0x01, 0x80, 0x80, "Off" },
- {0x22, 0x01, 0x80, 0x00, "On" },
-
-// {0 , 0xfe, 0 , 2, "Flip Screen" },
-// {0x23, 0x01, 0x01, 0x01, "Off" },
-// {0x23, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x23, 0x01, 0x04, 0x00, "Off" },
- {0x23, 0x01, 0x04, 0x04, "On" },
-};
-
-STDDIPINFO(Crimfghtu)
-
-static void set_ram_bank(INT32 data)
-{
- nDrvRamBank[0] = data;
-
- if (data & 0x20) {
- konamiMapMemory(DrvPalRAM, 0x0000, 0x03ff, MAP_RAM);
- } else {
- konamiMapMemory(DrvBankRAM, 0x0000, 0x03ff, MAP_RAM);
- }
-}
-
-void crimfght_main_write(UINT16 address, UINT8 data)
-{
- switch (address)
- {
- case 0x3f8c:
- *soundlatch = data;
- ZetSetVector(0xff);
- ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
- break;
- }
-
- if (address >= 0x2000 && address <= 0x5fff) {
- K052109_051960_w(address - 0x2000, data);
- return;
- }
-}
-
-UINT8 crimfght_main_read(UINT16 address)
-{
- switch (address)
- {
- case 0x3f80:
- return DrvInputs[4];
-
- case 0x3f81:
- return DrvInputs[0];
-
- case 0x3f82:
- return DrvInputs[1];
-
- case 0x3f83:
- return DrvDips[1];
-
- case 0x3f84:
- return DrvDips[2];
-
- case 0x3f85:
- return DrvInputs[2];
-
- case 0x3f86:
- return DrvInputs[3];
-
- case 0x3f87:
- return DrvDips[0];
-
- case 0x3f88:
- // watchdog reset
- return 0;
- }
-
- if (address >= 0x2000 && address <= 0x5fff) {
- return K052109_051960_r(address - 0x2000);
- }
-
- return 0;
-}
-
-void __fastcall crimfght_sound_write(UINT16 address, UINT8 data)
-{
- if ((address & 0xfff0) == 0xe000) {
- K007232WriteReg(0, address & 0x0f, data);
- return;
- }
-
- switch (address)
- {
- case 0xa000:
- BurnYM2151SelectRegister(data);
- return;
-
- case 0xa001:
- BurnYM2151WriteRegister(data);
- return;
- }
-}
-
-UINT8 __fastcall crimfght_sound_read(UINT16 address)
-{
- if ((address & 0xfff0) == 0xe000) {
- return K007232ReadReg(0, address & 0x0f);
- }
-
- switch (address)
- {
- case 0xa000:
- case 0xa001:
- return BurnYM2151ReadStatus();
-
- case 0xc000:
- ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
- return *soundlatch;
- }
-
- return 0;
-}
-
-static void DrvK007232VolCallback(INT32 v)
-{
- K007232SetVolume(0, 0, (v >> 0x4) * 0x11, 0);
- K007232SetVolume(0, 1, 0, (v & 0x0f) * 0x11);
-}
-
-static void DrvYM2151WritePort(UINT32, UINT32 data)
-{
- INT32 bank_A = ((data >> 1) & 0x01);
- INT32 bank_B = ((data) & 0x01);
-
- k007232_set_bank(0, bank_A, bank_B);
-}
-
-static void crimfght_set_lines(INT32 lines)
-{
- nDrvKonamiBank[0] = lines;
-
- set_ram_bank(lines & 0x20);
- K052109RMRDLine = lines & 0x40;
-
- INT32 nBank = 0x10000 + ((lines & 0x0f) * 0x2000);
-
- konamiMapMemory(DrvKonROM + nBank, 0x6000, 0x7fff, MAP_ROM);
-}
-
-static void K052109Callback(INT32 layer, INT32 bank, INT32 *code, INT32 *color, INT32 *flipx, INT32 *)
-{
- *flipx = *color & 0x20;
- *code |= ((*color & 0x1f) << 8) | (bank << 13);
- *code &= 0x3fff;
- *color = (layer << 2) + ((*color & 0xc0) >> 6);
-}
-
-static void K051960Callback(INT32 *code, INT32 *color,INT32 *priority, INT32 *shadow)
-{
- switch (*color & 0x70)
- {
- case 0x10: *priority = 0; break;
- case 0x00: *priority = 1; break;
- case 0x40: *priority = 2; break;
- case 0x20: *priority = 3; break;
- }
-
- *code |= (*color & 0x80) << 6;
- *code &= 0x1fff;
- *color = 16 + (*color & 0x0f);
- *shadow = 0;
-}
-
-static INT32 DrvDoReset()
-{
- DrvReset = 0;
-
- memset (AllRam, 0, RamEnd - AllRam);
-
- konamiOpen(0);
- konamiReset();
- konamiClose();
-
- ZetOpen(0);
- ZetReset();
- ZetClose();
-
- BurnYM2151Reset();
-
- KonamiICReset();
-
- return 0;
-}
-
-static INT32 MemIndex()
-{
- UINT8 *Next; Next = AllMem;
-
- DrvKonROM = Next; Next += 0x040000;
- DrvZ80ROM = Next; Next += 0x010000;
-
- DrvGfxROM0 = Next; Next += 0x080000;
- DrvGfxROM1 = Next; Next += 0x100000;
- DrvGfxROMExp0 = Next; Next += 0x100000;
- DrvGfxROMExp1 = Next; Next += 0x200000;
-
- DrvSndROM = Next; Next += 0x040000;
-
- DrvPalette = (UINT32*)Next; Next += 0x200 * sizeof(UINT32);
-
- AllRam = Next;
-
- DrvBankRAM = Next; Next += 0x000400;
- DrvKonRAM = Next; Next += 0x001c00;
- DrvPalRAM = Next; Next += 0x000400;
-
- DrvZ80RAM = Next; Next += 0x000800;
-
- soundlatch = Next; Next += 0x000001;
-
- nDrvRamBank = Next; Next += 0x000001;
- nDrvKonamiBank = Next; Next += 0x000001;
-
- RamEnd = Next;
- MemEnd = Next;
-
- return 0;
-}
-
-static INT32 DrvInit()
-{
- GenericTilesInit();
-
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(DrvKonROM + 0x010000, 0, 1)) return 1;
- memcpy (DrvKonROM + 0x08000, DrvKonROM + 0x28000, 0x8000);
- memset (DrvKonROM + 0x28000, 0, 0x8000);
-
- if (BurnLoadRom(DrvZ80ROM + 0x000000, 1, 1)) return 1;
-
- if (BurnLoadRomExt(DrvGfxROM0 + 0x000000, 2, 4, 2)) return 1;
- if (BurnLoadRomExt(DrvGfxROM0 + 0x000002, 3, 4, 2)) return 1;
-
- if (BurnLoadRomExt(DrvGfxROM1 + 0x000000, 4, 4, 2)) return 1;
- if (BurnLoadRomExt(DrvGfxROM1 + 0x000002, 5, 4, 2)) return 1;
-
- if (BurnLoadRom(DrvSndROM + 0x000000, 6, 1)) return 1;
-
- K052109GfxDecode(DrvGfxROM0, DrvGfxROMExp0, 0x080000);
- K051960GfxDecode(DrvGfxROM1, DrvGfxROMExp1, 0x100000);
- }
-
- konamiInit(0);
- konamiOpen(0);
- konamiMapMemory(DrvBankRAM, 0x0000, 0x03ff, MAP_RAM);
- konamiMapMemory(DrvKonRAM, 0x0400, 0x1fff, MAP_RAM);
- konamiMapMemory(DrvKonROM + 0x10000, 0x6000, 0x7fff, MAP_ROM);
- konamiMapMemory(DrvKonROM + 0x08000, 0x8000, 0xffff, MAP_ROM);
- konamiSetWriteHandler(crimfght_main_write);
- konamiSetReadHandler(crimfght_main_read);
- konamiSetlinesCallback(crimfght_set_lines);
- konamiClose();
-
- ZetInit(0);
- ZetOpen(0);
- ZetMapArea(0x0000, 0x7fff, 0, DrvZ80ROM);
- ZetMapArea(0x0000, 0x7fff, 2, DrvZ80ROM);
- ZetMapArea(0x8000, 0x87ff, 0, DrvZ80RAM);
- ZetMapArea(0x8000, 0x87ff, 1, DrvZ80RAM);
- ZetMapArea(0x8000, 0x87ff, 2, DrvZ80RAM);
- ZetSetWriteHandler(crimfght_sound_write);
- ZetSetReadHandler(crimfght_sound_read);
- ZetClose();
-
- BurnYM2151Init(3579545);
- BurnYM2151SetPortHandler(&DrvYM2151WritePort);
- BurnYM2151SetRoute(BURN_SND_YM2151_YM2151_ROUTE_1, 1.00, BURN_SND_ROUTE_LEFT);
- BurnYM2151SetRoute(BURN_SND_YM2151_YM2151_ROUTE_2, 1.00, BURN_SND_ROUTE_RIGHT);
-
- K007232Init(0, 3579545, DrvSndROM, 0x40000);
- K007232SetPortWriteHandler(0, DrvK007232VolCallback);
- K007232PCMSetAllRoutes(0, 0.20, BURN_SND_ROUTE_BOTH);
-
- K052109Init(DrvGfxROM0, DrvGfxROMExp0, 0x7ffff);
- K052109SetCallback(K052109Callback);
- K052109AdjustScroll(-2, 0);
-
- K051960Init(DrvGfxROM1, DrvGfxROMExp1, 0xfffff);
- K051960SetCallback(K051960Callback);
- K051960SetSpriteOffset(-2, 0);
-
- DrvDoReset();
-
- return 0;
-}
-
-static INT32 DrvExit()
-{
- GenericTilesExit();
-
- KonamiICExit();
-
- konamiExit();
- ZetExit();
-
- K007232Exit();
- BurnYM2151Exit();
-
- BurnFree (AllMem);
-
- return 0;
-}
-
-static INT32 DrvDraw()
-{
- KonamiRecalcPalette(DrvPalRAM, DrvPalette, 0x400);
-
- K052109UpdateScroll();
-
- if (nBurnLayer & 1) K052109RenderLayer(1, K052109_OPAQUE, 0);
- if (nSpriteEnable & 1) K051960SpritesRender(2, 2);
- if (nBurnLayer & 2) K052109RenderLayer(2, 0, 0);
- if (nSpriteEnable & 2) K051960SpritesRender(1, 1);
- if (nBurnLayer & 4) K052109RenderLayer(0, 0, 0);
- if (nSpriteEnable & 4) K051960SpritesRender(0, 0);
-
- KonamiBlendCopy(DrvPalette);
-
- return 0;
-}
-
-static INT32 DrvFrame()
-{
- if (DrvReset) {
- DrvDoReset();
- }
-
- {
- memset (DrvInputs, 0xff, 5);
- for (INT32 i = 0; i < 8; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- DrvInputs[2] ^= (DrvJoy3[i] & 1) << i;
- DrvInputs[3] ^= (DrvJoy4[i] & 1) << i;
- DrvInputs[4] ^= (DrvJoy5[i] & 1) << i;
- }
-
- // Clear Opposites
- if ((DrvInputs[0] & 0x0c) == 0) DrvInputs[0] |= 0x0c;
- if ((DrvInputs[0] & 0x03) == 0) DrvInputs[0] |= 0x03;
- if ((DrvInputs[1] & 0x0c) == 0) DrvInputs[1] |= 0x0c;
- if ((DrvInputs[1] & 0x03) == 0) DrvInputs[1] |= 0x03;
- if ((DrvInputs[2] & 0x0c) == 0) DrvInputs[2] |= 0x0c;
- if ((DrvInputs[2] & 0x03) == 0) DrvInputs[2] |= 0x03;
- if ((DrvInputs[3] & 0x0c) == 0) DrvInputs[3] |= 0x0c;
- if ((DrvInputs[3] & 0x03) == 0) DrvInputs[3] |= 0x03;
- }
-
- konamiNewFrame();
- ZetNewFrame();
-
- INT32 nSoundBufferPos = 0;
- INT32 nInterleave = 100;
- INT32 nCyclesTotal[2] = { (((3000000 / 60) * 133) / 100) /* 33% overclock */, 3579545 / 60 };
- INT32 nCyclesDone[2] = { 0, 0 };
-
- ZetOpen(0);
- konamiOpen(0);
-
- for (INT32 i = 0; i < nInterleave; i++)
- {
- INT32 nSegment = (nCyclesTotal[0] / nInterleave) * (i + 1);
-
- nCyclesDone[0] += konamiRun(nSegment - nCyclesDone[0]);
-
- nSegment = (nCyclesTotal[1] / nInterleave) * (i + 1);
-
- nCyclesDone[1] += ZetRun(nSegment - nCyclesDone[1]);
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen / nInterleave;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- BurnYM2151Render(pSoundBuf, nSegmentLength);
- K007232Update(0, pSoundBuf, nSegmentLength);
- nSoundBufferPos += nSegmentLength;
- }
- }
-
- konamiSetIrqLine(KONAMI_IRQ_LINE, CPU_IRQSTATUS_AUTO);
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
- if (nSegmentLength) {
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- BurnYM2151Render(pSoundBuf, nSegmentLength);
- K007232Update(0, pSoundBuf, nSegmentLength);
- }
- }
-
- konamiClose();
- ZetClose();
-
- if (pBurnDraw) {
- DrvDraw();
- }
-
- return 0;
-}
-
-static INT32 DrvScan(INT32 nAction,INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin) {
- *pnMin = 0x029704;
- }
-
- if (nAction & ACB_VOLATILE) {
- memset(&ba, 0, sizeof(ba));
-
- ba.Data = AllRam;
- ba.nLen = RamEnd - AllRam;
- ba.szName = "All Ram";
- BurnAcb(&ba);
-
- konamiCpuScan(nAction);
- ZetScan(nAction);
-
- BurnYM2151Scan(nAction);
- K007232Scan(nAction, pnMin);
-
- KonamiICScan(nAction);
- }
-
- if (nAction & ACB_WRITE) {
- konamiOpen(0);
- set_ram_bank(nDrvRamBank[0]);
- crimfght_set_lines(nDrvKonamiBank[0]);
- konamiClose();
- }
-
- return 0;
-}
-
-
-// Crime Fighters (US 4 players)
-
-static struct BurnRomInfo crimfghtRomDesc[] = {
- { "821r02.f24", 0x20000, 0x4ecdd923, 1 | BRF_PRG | BRF_ESS }, // 0 Konami CPU Code
-
- { "821l01.h4", 0x08000, 0x0faca89e, 2 | BRF_PRG | BRF_ESS }, // 1 Z80 Code
-
- { "821k06.k13", 0x40000, 0xa1eadb24, 3 | BRF_GRA }, // 2 Background Tiles
- { "821k07.k19", 0x40000, 0x060019fa, 3 | BRF_GRA }, // 3
-
- { "821k04.k2", 0x80000, 0x00e0291b, 4 | BRF_GRA }, // 4 Sprites
- { "821k05.k8", 0x80000, 0xe09ea05d, 4 | BRF_GRA }, // 5
-
- { "821k03.e5", 0x40000, 0xfef8505a, 5 | BRF_SND }, // 6 K007232 Samples
-
- { "821a08.i15", 0x00100, 0x7da55800, 6 | BRF_OPT }, // 7 Proms
-};
-
-STD_ROM_PICK(crimfght)
-STD_ROM_FN(crimfght)
-
-struct BurnDriver BurnDrvCrimfght = {
- "crimfght", NULL, NULL, NULL, "1989",
- "Crime Fighters (World 2 players)\0", NULL, "Konami", "GX821",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 4, HARDWARE_PREFIX_KONAMI, GBF_SCRFIGHT, 0,
- NULL, crimfghtRomInfo, crimfghtRomName, NULL, NULL, CrimfghtInputInfo, CrimfghtDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x200,
- 320, 224, 4, 3
-};
-
-
-// Crime Fighters (Japan 2 Players)
-
-static struct BurnRomInfo crimfghtjRomDesc[] = {
- { "821p02.f24", 0x20000, 0xf33fa2e1, 1 | BRF_PRG | BRF_ESS }, // 0 Konami CPU Code
-
- { "821l01.h4", 0x08000, 0x0faca89e, 2 | BRF_PRG | BRF_ESS }, // 1 Z80 Code
-
- { "821k06.k13", 0x40000, 0xa1eadb24, 3 | BRF_GRA }, // 2 Background Tiles
- { "821k07.k19", 0x40000, 0x060019fa, 3 | BRF_GRA }, // 3
-
- { "821k04.k2", 0x80000, 0x00e0291b, 4 | BRF_GRA }, // 4 Sprites
- { "821k05.k8", 0x80000, 0xe09ea05d, 4 | BRF_GRA }, // 5
-
- { "821k03.e5", 0x40000, 0xfef8505a, 5 | BRF_SND }, // 6 K007232 Samples
-
- { "821a08.i15", 0x00100, 0x7da55800, 6 | BRF_OPT }, // 7 Proms
-};
-
-STD_ROM_PICK(crimfghtj)
-STD_ROM_FN(crimfghtj)
-
-struct BurnDriver BurnDrvCrimfghtj = {
- "crimfghtj", "crimfght", NULL, NULL, "1989",
- "Crime Fighters (Japan 2 Players)\0", NULL, "Konami", "GX821",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_KONAMI, GBF_SCRFIGHT, 0,
- NULL, crimfghtjRomInfo, crimfghtjRomName, NULL, NULL, CrimfghtInputInfo, CrimfghtDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x200,
- 320, 224, 4, 3
-};
-
-
-// Crime Fighters (US 4 Players)
-
-static struct BurnRomInfo crimfghtuRomDesc[] = {
- { "821l02.f24", 0x20000, 0x588e7da6, 1 | BRF_PRG | BRF_ESS }, // 0 Konami CPU Code
-
- { "821l01.h4", 0x08000, 0x0faca89e, 2 | BRF_PRG | BRF_ESS }, // 1 Z80 Code
-
- { "821k06.k13", 0x40000, 0xa1eadb24, 3 | BRF_GRA }, // 2 Background Tiles
- { "821k07.k19", 0x40000, 0x060019fa, 3 | BRF_GRA }, // 3
-
- { "821k04.k2", 0x80000, 0x00e0291b, 4 | BRF_GRA }, // 4 Sprites
- { "821k05.k8", 0x80000, 0xe09ea05d, 4 | BRF_GRA }, // 5
-
- { "821k03.e5", 0x40000, 0xfef8505a, 5 | BRF_SND }, // 6 K007232 Samples
-
- { "821a08.i15", 0x00100, 0x7da55800, 6 | BRF_OPT }, // 7 Proms
-};
-
-STD_ROM_PICK(crimfghtu)
-STD_ROM_FN(crimfghtu)
-
-struct BurnDriver BurnDrvCrimfghtu = {
- "crimfghtu", "crimfght", NULL, NULL, "1989",
- "Crime Fighters (US 4 Players)\0", NULL, "Konami", "GX821",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_KONAMI, GBF_SCRFIGHT, 0,
- NULL, crimfghtuRomInfo, crimfghtuRomName, NULL, NULL, CrimfghtuInputInfo, CrimfghtuDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x200,
- 320, 224, 4, 3
-};
diff --git a/jan/src/burn/drv/konami/d_dbz.cpp b/jan/src/burn/drv/konami/d_dbz.cpp
deleted file mode 100644
index e9a52536e..000000000
--- a/jan/src/burn/drv/konami/d_dbz.cpp
+++ /dev/null
@@ -1,1103 +0,0 @@
-// FB Alpa Dragon Ball Z driver module
-// Based on MAME driver by David Haywood, R. Belmont and Pierpaolo Prazzoli
-
-#include "tiles_generic.h"
-#include "m68000_intf.h"
-#include "z80_intf.h"
-#include "konamiic.h"
-#include "burn_ym2151.h"
-#include "msm6295.h"
-
-static UINT8 *AllMem;
-static UINT8 *MemEnd;
-static UINT8 *AllRam;
-static UINT8 *RamEnd;
-static UINT8 *Drv68KROM;
-static UINT8 *DrvZ80ROM;
-static UINT8 *DrvGfxROM0;
-static UINT8 *DrvGfxROMExp0;
-static UINT8 *DrvGfxROM1;
-static UINT8 *DrvGfxROMExp1;
-static UINT8 *DrvGfxROM2;
-static UINT8 *DrvGfxROMExp2;
-static UINT8 *DrvGfxROM3;
-static UINT8 *DrvGfxROMExp3;
-static UINT8 *DrvSndROM;
-static UINT8 *Drv68KRAM0;
-static UINT8 *Drv68KRAM1;
-static UINT8 *DrvPalRAM;
-static UINT8 *DrvBg2RAM;
-static UINT8 *DrvBg1RAM;
-static UINT8 *Drvk053936RAM1;
-static UINT8 *Drvk053936RAM2;
-static UINT8 *DrvK053936Ctrl1;
-static UINT8 *DrvK053936Ctrl2;
-static UINT8 *DrvZ80RAM;
-
-static UINT32 *DrvPalette;
-static UINT8 DrvRecalc;
-
-static INT32 layerpri[8];
-static INT32 layer_colorbase[8];
-static INT32 sprite_colorbase;
-
-static UINT8 *soundlatch;
-
-static UINT8 DrvJoy1[16];
-static UINT8 DrvJoy2[16];
-static UINT8 DrvReset;
-static UINT16 DrvInputs[3];
-static UINT8 DrvDips[3];
-
-static UINT16 control_data;
-
-static struct BurnInputInfo DbzInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy2 + 5, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy2 + 1, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy1 + 4, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy1 + 3, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy1 + 6, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy1 + 5, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy1 + 2, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy1 + 1, "p1 fire 2" },
- {"P1 Button 3", BIT_DIGITAL, DrvJoy1 + 0, "p1 fire 3" },
- {"P1 Button 4", BIT_DIGITAL, DrvJoy2 + 7, "p1 fire 4" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy2 + 4, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy2 + 0, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvJoy1 + 12, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy1 + 11, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy1 + 14, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy1 + 13, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy1 + 10, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy1 + 9, "p2 fire 2" },
- {"P2 Button 3", BIT_DIGITAL, DrvJoy1 + 8, "p2 fire 3" },
- {"P2 Button 4", BIT_DIGITAL, DrvJoy2 + 6, "p2 fire 4" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service", BIT_DIGITAL, DrvJoy2 + 2, "service" },
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip" },
- {"Dip C", BIT_DIPSWITCH, DrvDips + 2, "dip" },
-};
-
-STDINPUTINFO(Dbz)
-
-static struct BurnDIPInfo DbzDIPList[]=
-{
- {0x16, 0xff, 0xff, 0x08, NULL },
- {0x17, 0xff, 0xff, 0x3f, NULL },
- {0x18, 0xff, 0xff, 0xff, NULL },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x16, 0x01, 0x08, 0x08, "Off" },
- {0x16, 0x01, 0x08, 0x00, "On" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x17, 0x01, 0x03, 0x01, "Easy" },
- {0x17, 0x01, 0x03, 0x03, "Normal" },
- {0x17, 0x01, 0x03, 0x02, "Hard" },
- {0x17, 0x01, 0x03, 0x00, "Hardest" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x17, 0x01, 0x08, 0x08, "Off" },
- {0x17, 0x01, 0x08, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x17, 0x01, 0x20, 0x20, "Off" },
- {0x17, 0x01, 0x20, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Language" },
- {0x17, 0x01, 0x40, 0x00, "English" },
- {0x17, 0x01, 0x40, 0x40, "Japanese" },
-
- {0 , 0xfe, 0 , 2, "Mask ROM Test" },
- {0x17, 0x01, 0x80, 0x00, "Off" },
- {0x17, 0x01, 0x80, 0x80, "On" },
-
- {0 , 0xfe, 0 , 16, "Coin A" },
- {0x18, 0x01, 0x0f, 0x02, "4 Coins 1 Credits" },
- {0x18, 0x01, 0x0f, 0x05, "3 Coins 1 Credits" },
- {0x18, 0x01, 0x0f, 0x08, "2 Coins 1 Credits" },
- {0x18, 0x01, 0x0f, 0x04, "3 Coins 2 Credits" },
- {0x18, 0x01, 0x0f, 0x01, "4 Coins 3 Credits" },
- {0x18, 0x01, 0x0f, 0x0f, "1 Coin 1 Credits" },
- {0x18, 0x01, 0x0f, 0x03, "3 Coins 4 Credits" },
- {0x18, 0x01, 0x0f, 0x07, "2 Coins 3 Credits" },
- {0x18, 0x01, 0x0f, 0x0e, "1 Coin 2 Credits" },
- {0x18, 0x01, 0x0f, 0x06, "2 Coins 5 Credits" },
- {0x18, 0x01, 0x0f, 0x0d, "1 Coin 3 Credits" },
- {0x18, 0x01, 0x0f, 0x0c, "1 Coin 4 Credits" },
- {0x18, 0x01, 0x0f, 0x0b, "1 Coin 5 Credits" },
- {0x18, 0x01, 0x0f, 0x0a, "1 Coin 6 Credits" },
- {0x18, 0x01, 0x0f, 0x09, "1 Coin 7 Credits" },
- {0x18, 0x01, 0x0f, 0x00, "Free Play" },
-
- {0 , 0xfe, 0 , 16, "Coin B" },
- {0x18, 0x01, 0xf0, 0x20, "4 Coins 1 Credits" },
- {0x18, 0x01, 0xf0, 0x50, "3 Coins 1 Credits" },
- {0x18, 0x01, 0xf0, 0x80, "2 Coins 1 Credits" },
- {0x18, 0x01, 0xf0, 0x40, "3 Coins 2 Credits" },
- {0x18, 0x01, 0xf0, 0x10, "4 Coins 3 Credits" },
- {0x18, 0x01, 0xf0, 0xf0, "1 Coin 1 Credits" },
- {0x18, 0x01, 0xf0, 0x30, "3 Coins 4 Credits" },
- {0x18, 0x01, 0xf0, 0x70, "2 Coins 3 Credits" },
- {0x18, 0x01, 0xf0, 0xe0, "1 Coin 2 Credits" },
- {0x18, 0x01, 0xf0, 0x60, "2 Coins 5 Credits" },
- {0x18, 0x01, 0xf0, 0xd0, "1 Coin 3 Credits" },
- {0x18, 0x01, 0xf0, 0xc0, "1 Coin 4 Credits" },
- {0x18, 0x01, 0xf0, 0xb0, "1 Coin 5 Credits" },
- {0x18, 0x01, 0xf0, 0xa0, "1 Coin 6 Credits" },
- {0x18, 0x01, 0xf0, 0x90, "1 Coin 7 Credits" },
- {0x18, 0x01, 0xf0, 0x00, "No Coin B" },
-};
-
-STDDIPINFO(Dbz)
-
-static struct BurnDIPInfo Dbz2DIPList[]=
-{
- {0x16, 0xff, 0xff, 0x08, NULL },
- {0x17, 0xff, 0xff, 0x3f, NULL },
- {0x18, 0xff, 0xff, 0xff, NULL },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x16, 0x01, 0x08, 0x08, "Off" },
- {0x16, 0x01, 0x08, 0x00, "On" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x17, 0x01, 0x03, 0x01, "Easy" },
- {0x17, 0x01, 0x03, 0x03, "Normal" },
- {0x17, 0x01, 0x03, 0x02, "Hard" },
- {0x17, 0x01, 0x03, 0x00, "Hardest" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x17, 0x01, 0x04, 0x04, "Off" },
- {0x17, 0x01, 0x04, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x17, 0x01, 0x08, 0x08, "Off" },
- {0x17, 0x01, 0x08, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Level Select" },
- {0x17, 0x01, 0x10, 0x10, "Off" },
- {0x17, 0x01, 0x10, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x17, 0x01, 0x20, 0x20, "Off" },
- {0x17, 0x01, 0x20, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Language" },
- {0x17, 0x01, 0x40, 0x00, "English" },
- {0x17, 0x01, 0x40, 0x40, "Japanese" },
-
- {0 , 0xfe, 0 , 2, "Mask ROM Test" },
- {0x17, 0x01, 0x80, 0x00, "Off" },
- {0x17, 0x01, 0x80, 0x80, "On" },
-
- {0 , 0xfe, 0 , 16, "Coin A" },
- {0x18, 0x01, 0x0f, 0x02, "4 Coins 1 Credits" },
- {0x18, 0x01, 0x0f, 0x05, "3 Coins 1 Credits" },
- {0x18, 0x01, 0x0f, 0x08, "2 Coins 1 Credits" },
- {0x18, 0x01, 0x0f, 0x04, "3 Coins 2 Credits" },
- {0x18, 0x01, 0x0f, 0x01, "4 Coins 3 Credits" },
- {0x18, 0x01, 0x0f, 0x0f, "1 Coin 1 Credits" },
- {0x18, 0x01, 0x0f, 0x03, "3 Coins 4 Credits" },
- {0x18, 0x01, 0x0f, 0x07, "2 Coins 3 Credits" },
- {0x18, 0x01, 0x0f, 0x0e, "1 Coin 2 Credits" },
- {0x18, 0x01, 0x0f, 0x06, "2 Coins 5 Credits" },
- {0x18, 0x01, 0x0f, 0x0d, "1 Coin 3 Credits" },
- {0x18, 0x01, 0x0f, 0x0c, "1 Coin 4 Credits" },
- {0x18, 0x01, 0x0f, 0x0b, "1 Coin 5 Credits" },
- {0x18, 0x01, 0x0f, 0x0a, "1 Coin 6 Credits" },
- {0x18, 0x01, 0x0f, 0x09, "1 Coin 7 Credits" },
- {0x18, 0x01, 0x0f, 0x00, "Free Play" },
-
- {0 , 0xfe, 0 , 16, "Coin B" },
- {0x18, 0x01, 0xf0, 0x20, "4 Coins 1 Credits" },
- {0x18, 0x01, 0xf0, 0x50, "3 Coins 1 Credits" },
- {0x18, 0x01, 0xf0, 0x80, "2 Coins 1 Credits" },
- {0x18, 0x01, 0xf0, 0x40, "3 Coins 2 Credits" },
- {0x18, 0x01, 0xf0, 0x10, "4 Coins 3 Credits" },
- {0x18, 0x01, 0xf0, 0xf0, "1 Coin 1 Credits" },
- {0x18, 0x01, 0xf0, 0x30, "3 Coins 4 Credits" },
- {0x18, 0x01, 0xf0, 0x70, "2 Coins 3 Credits" },
- {0x18, 0x01, 0xf0, 0xe0, "1 Coin 2 Credits" },
- {0x18, 0x01, 0xf0, 0x60, "2 Coins 5 Credits" },
- {0x18, 0x01, 0xf0, 0xd0, "1 Coin 3 Credits" },
- {0x18, 0x01, 0xf0, 0xc0, "1 Coin 4 Credits" },
- {0x18, 0x01, 0xf0, 0xb0, "1 Coin 5 Credits" },
- {0x18, 0x01, 0xf0, 0xa0, "1 Coin 6 Credits" },
- {0x18, 0x01, 0xf0, 0x90, "1 Coin 7 Credits" },
- {0x18, 0x01, 0xf0, 0x00, "No Coin B" },
-};
-
-STDDIPINFO(Dbz2)
-
-static void __fastcall dbz_main_write_word(UINT32 address, UINT16 data)
-{
- if ((address & 0xffc000) == 0x490000) {
- K056832RamWriteWord(address & 0x1fff, data);
- return;
- }
-
- if ((address & 0xffbff8) == 0x4c0000) {
- K053246Write((address & 0x06) + 0, data >> 8);
- K053246Write((address & 0x06) + 1, data&0xff);
- return;
- }
-
- if ((address & 0xfffff8) == 0x4c8000) {
- return; // regsb
- }
-
- if ((address & 0xffffc0) == 0x4cc000) {
- K056832WordWrite(address & 0x3e, data);
- return;
- }
-
- if ((address & 0xffffe0) == 0x4f8000) {
- // k053252
- return;
- }
-
- switch (address)
- {
- case 0x4ec000:
- control_data = data;
- K053246_set_OBJCHA_line(data & 0x0400);
- return;
-
- case 0x4f0000:
- *soundlatch = data;
- return;
-
- case 0x4f4000:
- ZetNmi();
- return;
- }
-
-// bprintf (0, _T("WW: %5.5x, %4.4x\n"), address, data);
-}
-
-static void __fastcall dbz_main_write_byte(UINT32 address, UINT8 data)
-{
- if ((address & 0xffc000) == 0x490000) {
- K056832RamWriteByte(address & 0x1fff, data);
- return;
- }
-
- if ((address & 0xffbff8) == 0x4c0000) {
- K053246Write((address & 0x07) ^ 0, data);
- return;
- }
-
- if ((address & 0xfffff8) == 0x4c8000) {
- return; // regsb
- }
-
- if ((address & 0xffffc0) == 0x4cc000) {
- K056832ByteWrite(address & 0x3f, data);
- return;
- }
-
- if ((address & 0xffffe1) == 0x4fc001) {
- K053251Write((address / 2) & 0xf, data);
- return;
- }
-
- if ((address & 0xffffe0) == 0x4f8000) {
- // k053252Write
- return;
- }
-
- switch (address)
- {
- case 0x4e8000:
- return; // nop
-
- case 0x4ec000:
- control_data = (control_data & 0x00ff) + (data << 8);
- K053246_set_OBJCHA_line(data & 0x04);
- return;
-
- case 0x4ec001:
- control_data = (control_data & 0xff00) + data;
- return;
-
- case 0x4f0000:
- case 0x4f0001:
- *soundlatch = data;
- return;
-
- case 0x4f4000:
- case 0x4f4001:
- ZetNmi();
- return;
- }
-
-// bprintf (0, _T("WB: %5.5x, %2.2x\n"), address, data);
-}
-
-static UINT16 __fastcall dbz_main_read_word(UINT32 address)
-{
- if ((address & 0xffc000) == 0x490000) {
- return K056832RamReadWord(address & 0x1fff);
- }
-
- if ((address & 0xff8000) == 0x498000) {
- return K056832RomWord8000Read(address);
- }
-
- if ((address & 0xffffe0) == 0x4f8000) {
- return 0; // k053252
- }
-
- switch (address)
- {
- case 0x4c0000:
- return K053246Read(1) + (K053246Read(0) << 8);
-
- case 0x4e0000:
- return DrvInputs[0];
-
- case 0x4e0002:
- return DrvInputs[1];
-
- case 0x4e4000:
- return DrvInputs[2];
- }
-
-// bprintf (0, _T("RW: %5.5x\n"), address);
-
- return 0;
-}
-
-static UINT8 __fastcall dbz_main_read_byte(UINT32 address)
-{
- if ((address & 0xffc000) == 0x490000) {
- return K056832RamReadByte(address & 0x1fff);
- }
-
- if ((address & 0xff8000) == 0x498000) {
- return K056832RomWord8000Read(address) >> ((~address & 1) * 8);
- }
-
- if ((address & 0xffffe0) == 0x4f8000) {
- return 0; // k053252
- }
-
- switch (address)
- {
- case 0x4c0000:
- case 0x4c0001:
- return K053246Read(address & 1);
-
- case 0x4e0000:
- return DrvInputs[0] >> 8;
-
- case 0x4e0001:
- return DrvInputs[0];
-
- case 0x4e0002:
- return DrvInputs[1] >> 8;
-
- case 0x4e0003:
- return DrvInputs[1];
-
- case 0x4e4000:
- return DrvInputs[2] >> 8;
-
- case 0x4e4001:
- return DrvInputs[2];
- }
-
-// bprintf (0, _T("RB: %5.5x\n"), address);
-
- return 0;
-}
-
-static void __fastcall dbz_sound_write(UINT16 address, UINT8 data)
-{
- switch (address)
- {
- case 0xc000:
- BurnYM2151SelectRegister(data);
- return;
-
- case 0xc001:
- BurnYM2151WriteRegister(data);
- return;
-
- case 0xd000:
- case 0xd002:
- case 0xd001:
- MSM6295Command(0, data);
- return;
- }
-}
-
-static UINT8 __fastcall dbz_sound_read(UINT16 address)
-{
- switch (address)
- {
- case 0xc000:
- case 0xc001:
- return BurnYM2151ReadStatus();
-
- case 0xd000:
- case 0xd002:
- case 0xd001:
- return MSM6295ReadStatus(0);
-
- case 0xe000:
- case 0xe001:
- return *soundlatch;
- }
-
- return 0;
-}
-
-static void dbz_sprite_callback(INT32 */*code*/, INT32 *color, INT32 *priority)
-{
- INT32 pri = (*color & 0x3c0) >> 5;
-
- if (pri <= layerpri[3]) *priority = 0xff00;
- else if (pri > layerpri[3] && pri <= layerpri[2]) *priority = 0xfff0;
- else if (pri > layerpri[2] && pri <= layerpri[1]) *priority = 0xfffc;
- else *priority = 0xfffe;
-
- *color = (sprite_colorbase << 1) + (*color & 0x1f);
-}
-
-static void dbz_tile_callback(INT32 layer, INT32 */*code*/, INT32 *color, INT32 */*flags*/)
-{
- *color = (layer_colorbase[layer] << 1) + ((*color & 0x3c) >> 2);
-}
-
-static void dbz_K053936_callback1(INT32 offset, UINT16 *ram, INT32 *code, INT32 *color, INT32 *, INT32 *, INT32 *flipx, INT32 *)
-{
- *code = ram[(offset * 2) + 1] & 0x7fff;
- *color = ((ram[(offset * 2) + 0] & 0x000f) + (layer_colorbase[4] << 1)) << 4;
- *color &= 0x1ff0;
- *flipx = ram[(offset * 2) + 0] & 0x0080;
-}
-
-static void dbz_K053936_callback2(INT32 offset, UINT16 *ram, INT32 *code, INT32 *color, INT32 *, INT32 *, INT32 *flipx, INT32 *)
-{
- *code = ram[(offset * 2) + 1] & 0x7fff;
- *color = ((ram[(offset * 2) + 0] & 0x000f) + (layer_colorbase[5] << 1)) << 4;
- *color &= 0x1ff0;
- *flipx = ram[(offset * 2) + 0] & 0x0080;
-}
-
-static void dbzYM2151IrqHandler(INT32 status)
-{
- ZetSetIRQLine(0, (status) ? CPU_IRQSTATUS_ACK : CPU_IRQSTATUS_NONE);
-}
-
-static INT32 DrvDoReset()
-{
- memset (AllRam, 0, RamEnd - AllRam);
-
- SekOpen(0);
- SekReset();
- SekClose();
-
- ZetOpen(0);
- ZetReset();
- ZetClose();
-
- KonamiICReset();
-
- MSM6295Reset(0);
- BurnYM2151Reset();
-
- control_data = 0;
-
- return 0;
-}
-
-static INT32 MemIndex()
-{
- UINT8 *Next; Next = AllMem;
-
- Drv68KROM = Next; Next += 0x100000;
- DrvZ80ROM = Next; Next += 0x010000;
-
- DrvGfxROM0 = Next; Next += 0x400000;
- DrvGfxROMExp0 = Next; Next += 0x800000;
- DrvGfxROM1 = Next; Next += 0x800000;
- DrvGfxROMExp1 = Next; Next += 0x1000000;
- DrvGfxROM2 = Next; Next += 0x400000;
- DrvGfxROMExp2 = Next; Next += 0x800000;
- DrvGfxROM3 = Next; Next += 0x400000;
- DrvGfxROMExp3 = Next; Next += 0x800000;
-
- MSM6295ROM = Next;
- DrvSndROM = Next; Next += 0x040000;
-
- konami_palette32 = (UINT32*)Next;
- DrvPalette = (UINT32*)Next; Next += 0x2000 * sizeof(UINT32);
-
- AllRam = Next;
-
- Drv68KRAM0 = Next; Next += 0x010000;
- Drv68KRAM1 = Next; Next += 0x004000;
- DrvPalRAM = Next; Next += 0x004000;
-
- DrvBg2RAM = Next; Next += 0x002000;
- DrvBg1RAM = Next; Next += 0x002000;
-
- DrvK053936Ctrl1 = Next; Next += 0x000400;
- DrvK053936Ctrl2 = Next; Next += 0x000400;
-
- Drvk053936RAM1 = Next; Next += 0x004000;
- Drvk053936RAM2 = Next; Next += 0x004000;
-
- DrvZ80RAM = Next; Next += 0x004000;
-
- soundlatch = Next; Next += 0x000001;
-
- RamEnd = Next;
- MemEnd = Next;
-
- return 0;
-}
-
-static void DrvExpandGfx(UINT8 *dst, UINT8 *src, INT32 len, INT32 bs)
-{
- for (INT32 i = (len - 1); i >= 0; i--) {
- dst[i*2+0] = src[i^bs] >> 4;
- dst[i*2+1] = src[i^bs] & 0xf;
- }
-}
-
-static void dbz_patch()
-{
- UINT16 *ROM = (UINT16 *)Drv68KROM;
-
- // to avoid crash during loop at 0x00076e after D4 > 0x80 (reading tiles region out of bounds)
- ROM[0x76c/2] = 0x007f; /* 0x00ff */
- // nop out dbz1's mask rom test
- // tile ROM test
- ROM[0x7b0/2] = 0x4e71; /* 0x0c43 - cmpi.w #-$1e0d, D3 */
- ROM[0x7b2/2] = 0x4e71; /* 0xe1f3 */
- ROM[0x7b4/2] = 0x4e71; /* 0x6600 - bne $7d6 */
- ROM[0x7b6/2] = 0x4e71; /* 0x0020 */
- ROM[0x7c0/2] = 0x4e71; /* 0x0c45 - cmpi.w #-$7aad, D5 */
- ROM[0x7c2/2] = 0x4e71; /* 0x8553 */
- ROM[0x7c4/2] = 0x4e71; /* 0x6600 - bne $7d6 */
- ROM[0x7c6/2] = 0x4e71; /* 0x0010 */
- // PSAC2 ROM test (A and B)
- ROM[0x9a8/2] = 0x4e71; /* 0x0c43 - cmpi.w #$43c0, D3 */
- ROM[0x9aa/2] = 0x4e71; /* 0x43c0 */
- ROM[0x9ac/2] = 0x4e71; /* 0x6600 - bne $a00 */
- ROM[0x9ae/2] = 0x4e71; /* 0x0052 */
- ROM[0x9ea/2] = 0x4e71; /* 0x0c44 - cmpi.w #-$13de, D4 */
- ROM[0x9ec/2] = 0x4e71; /* 0xec22 */
- ROM[0x9ee/2] = 0x4e71; /* 0x6600 - bne $a00 */
- ROM[0x9f0/2] = 0x4e71; /* 0x0010 */
- // prog ROM test
- ROM[0x80c/2] = 0x4e71; /* 0xb650 - cmp.w (A0), D3 */
- ROM[0x80e/2] = 0x4e71; /* 0x6600 - bne $820 */
- ROM[0x810/2] = 0x4e71; /* 0x005e */
-}
-
-static void dbza_patch()
-{
- UINT16 *ROM = (UINT16 *)Drv68KROM;
-
- // nop out dbz1's mask rom test
- // tile ROM test
- ROM[0x78c/2] = 0x4e71; /* 0x0c43 - cmpi.w #-$1236, D3 */
- ROM[0x78e/2] = 0x4e71; /* 0x0010 */
- ROM[0x790/2] = 0x4e71; /* 0x6600 - bne $7a2 */
- ROM[0x792/2] = 0x4e71; /* 0x0010 */
- // PSAC2 ROM test
- ROM[0x982/2] = 0x4e71; /* 0x0c43 - cmpi.w #$437e, D3 */
- ROM[0x984/2] = 0x4e71; /* 0x437e */
- ROM[0x986/2] = 0x4e71; /* 0x6600 - bne $9a0 */
- ROM[0x988/2] = 0x4e71; /* 0x0018 */
- ROM[0x98a/2] = 0x4e71; /* 0x0c44 - cmpi.w #$65e8, D4 */
- ROM[0x98c/2] = 0x4e71; /* 0x65e8 */
- ROM[0x98e/2] = 0x4e71; /* 0x6600 - bne $9a0 */
- ROM[0x990/2] = 0x4e71; /* 0x0010 */
-}
-
-static void dbz2_patch()
-{
- UINT16 *ROM = (UINT16 *)Drv68KROM;
-
- // to avoid crash during loop at 0x000a4a after D4 > 0x80 (reading tiles region out of bounds)
- ROM[0xa48/2] = 0x007f; /* 0x00ff */
- // nop out dbz1's mask rom test
- // tile ROM test
- ROM[0xa88/2] = 0x4e71; /* 0x0c43 - cmpi.w #$e58, D3 */
- ROM[0xa8a/2] = 0x4e71; /* 0x0e58 */
- ROM[0xa8c/2] = 0x4e71; /* 0x6600 - bne $aae */
- ROM[0xa8e/2] = 0x4e71; /* 0x0020 */
- ROM[0xa98/2] = 0x4e71; /* 0x0c45 - cmpi.w #-$3d20, D5 */
- ROM[0xa9a/2] = 0x4e71; /* 0xc2e0 */
- ROM[0xa9c/2] = 0x4e71; /* 0x6600 - bne $aae */
- ROM[0xa9e/2] = 0x4e71; /* 0x0010 */
- // PSAC2 ROM test (0 to 3)
- ROM[0xc66/2] = 0x4e71; /* 0xb549 - cmpm.w (A1)+, (A2)+ */
- ROM[0xc68/2] = 0x4e71; /* 0x6600 - bne $cc8 */
- ROM[0xc6a/2] = 0x4e71; /* 0x005e */
- ROM[0xc7c/2] = 0x4e71; /* 0xb549 - cmpm.w (A1)+, (A2)+ */
- ROM[0xc7e/2] = 0x4e71; /* 0x6600 - bne $cc8 */
- ROM[0xc80/2] = 0x4e71; /* 0x0048 */
- ROM[0xc9e/2] = 0x4e71; /* 0xb549 - cmpm.w (A1)+, (A2)+ */
- ROM[0xca0/2] = 0x4e71; /* 0x6600 - bne $cc8 */
- ROM[0xca2/2] = 0x4e71; /* 0x0026 */
- ROM[0xcb4/2] = 0x4e71; /* 0xb549 - cmpm.w (A1)+, (A2)+ */
- ROM[0xcb6/2] = 0x4e71; /* 0x6600 - bne $cc8 */
- ROM[0xcb8/2] = 0x4e71; /* 0x0010 */
- // prog ROM test
- ROM[0xae4/2] = 0x4e71; /* 0xb650 - cmp.w (A0), D3 */
- ROM[0xae6/2] = 0x4e71; /* 0x6600 - bne $af8 */
- ROM[0xae8/2] = 0x4e71; /* 0x005e */
-}
-
-static INT32 DrvInit(INT32 nGame)
-{
- GenericTilesInit();
-
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(Drv68KROM + 0x000001, 0, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x000000, 1, 2)) return 1;
-
- if (BurnLoadRom(DrvZ80ROM + 0x000000, 2, 1)) return 1;
-
- if (BurnLoadRomExt(DrvGfxROM0 + 0x000000, 3, 4, 2)) return 1;
- if (BurnLoadRomExt(DrvGfxROM0 + 0x000002, 4, 4, 2)) return 1;
-
- if (BurnLoadRomExt(DrvGfxROM1 + 0x000000, 5, 8, 2)) return 1;
- if (BurnLoadRomExt(DrvGfxROM1 + 0x000002, 6, 8, 2)) return 1;
- if (BurnLoadRomExt(DrvGfxROM1 + 0x000004, 7, 8, 2)) return 1;
- if (BurnLoadRomExt(DrvGfxROM1 + 0x000006, 8, 8, 2)) return 1;
-
- if (BurnLoadRom(DrvGfxROM2 + 0x000000, 9, 1)) return 1;
-
- if (nGame != 2) // dbz, dbza
- {
- if (BurnLoadRom(DrvGfxROM3 + 0x000000, 10, 1)) return 1;
-
- if (BurnLoadRom(DrvSndROM + 0x000000, 11, 1)) return 1;
- }
- else // dbz2
- {
- if (BurnLoadRom(DrvGfxROM2 + 0x200000, 10, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM3 + 0x000000, 11, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM3 + 0x200000, 12, 1)) return 1;
-
- if (BurnLoadRom(DrvSndROM + 0x000000, 13, 1)) return 1;
- }
-
- DrvExpandGfx(DrvGfxROMExp0, DrvGfxROM0, 0x400000, 1);
- DrvExpandGfx(DrvGfxROMExp1, DrvGfxROM1, 0x800000, 1);
- DrvExpandGfx(DrvGfxROMExp2, DrvGfxROM2, 0x400000, 0);
- DrvExpandGfx(DrvGfxROMExp3, DrvGfxROM3, 0x400000, 0);
-
- if (nGame == 0) dbz_patch();
- if (nGame == 1) dbza_patch();
- if (nGame == 2) dbz2_patch();
- }
-
- K053936Init(0, DrvBg1RAM, 0x4000, 1024, 512, dbz_K053936_callback1);
- K053936Init(1, DrvBg2RAM, 0x4000, 1024, 512, dbz_K053936_callback2);
- K053936EnableWrap(0,1);
- K053936EnableWrap(1,1);
- K053936SetOffset(0, -46, -16);
- K053936SetOffset(1, -46, -16);
-
- K056832Init(DrvGfxROM0, DrvGfxROMExp0, 0x400000, dbz_tile_callback);
- K056832SetGlobalOffsets(0, 0);
- K056832SetLayerOffsets(0, (nGame == 2) ? -34 : -35, -16);
- K056832SetLayerOffsets(1, -31, -16);
- K056832SetLayerOffsets(2, 0, 0);
- K056832SetLayerOffsets(3, -31, -16);
-
- K053247Init(DrvGfxROM1, DrvGfxROMExp1, 0x7fffff, dbz_sprite_callback, 1);
- K053247SetSpriteOffset(-87, -32);
-
- SekInit(0, 0x68000);
- SekOpen(0);
- SekMapMemory(Drv68KROM, 0x000000, 0x0fffff, MAP_ROM);
- SekMapMemory(Drv68KRAM0, 0x480000, 0x48ffff, MAP_RAM);
- SekMapMemory(K053247Ram, 0x4a0000, 0x4a0fff, MAP_RAM);
- SekMapMemory(Drv68KRAM1, 0x4a1000, 0x4a3fff, MAP_RAM);
- SekMapMemory(DrvPalRAM, 0x4a8000, 0x4abfff, MAP_RAM);
- SekMapMemory(DrvK053936Ctrl1, 0x4d0000, 0x4d03ff, MAP_RAM);
- SekMapMemory(DrvK053936Ctrl2, 0x4d4000, 0x4d43ff, MAP_RAM);
- SekMapMemory(DrvBg2RAM, 0x500000, 0x501fff, MAP_RAM);
- SekMapMemory(DrvBg1RAM, 0x508000, 0x509fff, MAP_RAM);
- SekMapMemory(Drvk053936RAM1, 0x510000, 0x513fff, MAP_RAM);
- SekMapMemory(Drvk053936RAM2, 0x518000, 0x51bfff, MAP_RAM);
- SekSetWriteWordHandler(0, dbz_main_write_word);
- SekSetWriteByteHandler(0, dbz_main_write_byte);
- SekSetReadWordHandler(0, dbz_main_read_word);
- SekSetReadByteHandler(0, dbz_main_read_byte);
- SekClose();
-
- ZetInit(0);
- ZetOpen(0);
- ZetMapMemory(DrvZ80ROM, 0x0000, 0x7fff, MAP_ROM);
- ZetMapMemory(DrvZ80RAM, 0x8000, 0xbfff, MAP_RAM);
- ZetSetWriteHandler(dbz_sound_write);
- ZetSetReadHandler(dbz_sound_read);
- ZetClose();
-
- BurnYM2151Init(4000000);
- BurnYM2151SetIrqHandler(&dbzYM2151IrqHandler);
- BurnYM2151SetRoute(BURN_SND_YM2151_YM2151_ROUTE_1, 1.00, BURN_SND_ROUTE_LEFT);
- BurnYM2151SetRoute(BURN_SND_YM2151_YM2151_ROUTE_2, 1.00, BURN_SND_ROUTE_RIGHT);
-
- MSM6295Init(0, 1056000 / 132, 1);
- MSM6295SetRoute(0, 1.00, BURN_SND_ROUTE_BOTH);
-
- DrvDoReset();
-
- return 0;
-}
-
-static INT32 dbzInit()
-{
- return DrvInit(0);
-}
-
-static INT32 dbzaInit()
-{
- return DrvInit(1);
-}
-
-static INT32 dbz2Init()
-{
- return DrvInit(2);
-}
-
-static INT32 DrvExit()
-{
- GenericTilesExit();
-
- KonamiICExit();
-
- BurnYM2151Exit();
- MSM6295Exit(0);
-
- SekExit();
- ZetExit();
-
- BurnFree (AllMem);
-
- MSM6295ROM = NULL;
-
- return 0;
-}
-
-static void DrvPaletteRecalc()
-{
- UINT16 *pal = (UINT16*)DrvPalRAM;
-
- for (INT32 i = 0; i < 0x4000/2; i++)
- {
- INT32 r = (pal[i] >> 10 & 0x1f);
- INT32 g = (pal[i] >> 5) & 0x1f;
- INT32 b = (pal[i]) & 0x1f;
-
- r = (r << 3) | (r >> 2);
- g = (g << 3) | (g >> 2);
- b = (b << 3) | (b >> 2);
-
- DrvPalette[i] = (r << 16) + (g << 8) + b;
- }
-}
-
-static INT32 DrvDraw()
-{
- static const INT32 K053251_CI[6] = { 3, 4, 4, 4, 2, 1 };
- DrvPaletteRecalc();
- KonamiClearBitmaps(0);
-
- INT32 layer[5], plane;
-
- sprite_colorbase = K053251GetPaletteIndex(0);
-
- for (plane = 0; plane < 6; plane++)
- {
- layer_colorbase[plane] = K053251GetPaletteIndex(K053251_CI[plane]);
- }
-
- K053936PredrawTiles2(0, DrvGfxROMExp3);
- K053936PredrawTiles2(1, DrvGfxROMExp2);
-
- layer[0] = 0;
- layerpri[0] = K053251GetPriority(3);
- layer[1] = 1;
- layerpri[1] = K053251GetPriority(4);
- layer[2] = 3;
- layerpri[2] = K053251GetPriority(0);
- layer[3] = 4;
- layerpri[3] = K053251GetPriority(2);
- layer[4] = 5;
- layerpri[4] = K053251GetPriority(1);
-
- konami_sortlayers5(layer, layerpri);
-
- for (plane = 0; plane < 5; plane++)
- {
- INT32 flag, pri;
-
- if (plane == 0)
- {
- flag = 0;
- pri = 0;
- }
- else
- {
- flag = 1;
- pri = 1 << (plane - 1);
- }
-
- if (layer[plane] == 4) {
- if (nBurnLayer & 1) K053936Draw(0, (UINT16*)DrvK053936Ctrl2, (UINT16*)Drvk053936RAM2, flag | (pri<<8));
- } else if(layer[plane] == 5) {
- if (nBurnLayer & 2) K053936Draw(1, (UINT16*)DrvK053936Ctrl1, (UINT16*)Drvk053936RAM1, flag | (pri<<8));
- } else {
- if (nSpriteEnable & 2) K056832Draw(layer[plane], flag ? 0 : K056832_LAYER_OPAQUE, pri);
- }
- }
-
- if (nSpriteEnable & 1) K053247SpritesRender();
-
- KonamiBlendCopy(DrvPalette);
-
- return 0;
-}
-
-static INT32 DrvFrame()
-{
- if (DrvReset) {
- DrvDoReset();
- }
-
- {
- memset (DrvInputs, 0xff, 2 * sizeof(INT16));
- for (INT32 i = 0; i < 16; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- }
-
- DrvInputs[1] = (DrvInputs[1] & ~0xff08) | (DrvDips[0] & 0x08) | (DrvDips[1] << 8);
- DrvInputs[2] = (DrvDips[2] << 8) | (DrvDips[2] << 0);
- }
-
- SekNewFrame();
-
- INT32 nInterleave = nBurnSoundLen;
- INT32 nSoundBufferPos = 0;
- INT32 nCyclesTotal[2] = { 16000000 / 60, 4000000 / 60 };
- INT32 nCyclesDone[2] = { 0, 0 };
-
- SekOpen(0);
- ZetOpen(0);
-
- for (INT32 i = 0; i < nInterleave; i++) {
- INT32 nNext, nCyclesSegment;
-
- nNext = (i + 1) * nCyclesTotal[0] / nInterleave;
- nCyclesSegment = nNext - nCyclesDone[0];
- nCyclesSegment = SekRun(nCyclesSegment);
- nCyclesDone[0] += nCyclesSegment;
-
- if (i == 0 && K053246_is_IRQ_enabled()) {
- SekSetIRQLine(4, CPU_IRQSTATUS_AUTO);
- }
-
- if (i == (nInterleave - 20)) {
- SekSetIRQLine(2, CPU_IRQSTATUS_AUTO); //CK);
- }
-
- nNext = (i + 1) * nCyclesTotal[1] / nInterleave;
- nCyclesSegment = nNext - nCyclesDone[1];
- nCyclesSegment = ZetRun(nCyclesSegment);
- nCyclesDone[1] += nCyclesSegment;
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen / nInterleave;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- BurnYM2151Render(pSoundBuf, nSegmentLength);
- MSM6295Render(0, pSoundBuf, nSegmentLength);
- nSoundBufferPos += nSegmentLength;
- }
-
- }
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- if (nSegmentLength) {
- BurnYM2151Render(pSoundBuf, nSegmentLength);
- MSM6295Render(0, pSoundBuf, nSegmentLength);
- }
- }
-
- ZetClose();
- SekClose();
-
- if (pBurnDraw) {
- DrvDraw();
- }
-
- return 0;
-}
-
-static INT32 DrvScan(INT32 nAction,INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin) {
- *pnMin = 0x029732;
- }
-
- if (nAction & ACB_VOLATILE) {
- memset(&ba, 0, sizeof(ba));
-
- ba.Data = AllRam;
- ba.nLen = RamEnd - AllRam;
- ba.szName = "All Ram";
- BurnAcb(&ba);
-
- SekScan(nAction);
- ZetScan(nAction);
-
- BurnYM2151Scan(nAction);
- MSM6295Scan(0,nAction);
-
- KonamiICScan(nAction);
-
- SCAN_VAR(control_data);
- }
-
- return 0;
-}
-
-
-// Dragonball Z (rev B)
-
-static struct BurnRomInfo dbzRomDesc[] = {
- { "222b11.9e", 0x080000, 0x4c6b75e9, 1 | BRF_PRG | BRF_ESS }, // 0 68K Code
- { "222b12.9f", 0x080000, 0x48637fce, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "222a10.5e", 0x008000, 0x1c93e30a, 2 | BRF_PRG | BRF_ESS }, // 2 Z80 Code
-
- { "222a01.27c", 0x200000, 0x9fce4ed4, 3 | BRF_GRA }, // 3 Background Tiles
- { "222a02.27e", 0x200000, 0x651acaa5, 3 | BRF_GRA }, // 4
-
- { "222a04.3j", 0x200000, 0x2533b95a, 4 | BRF_GRA }, // 5 Sprites
- { "222a05.1j", 0x200000, 0x731b7f93, 4 | BRF_GRA }, // 6
- { "222a06.3l", 0x200000, 0x97b767d3, 4 | BRF_GRA }, // 7
- { "222a07.1l", 0x200000, 0x430bc873, 4 | BRF_GRA }, // 8
-
- { "222a08.25k", 0x200000, 0x6410ee1b, 5 | BRF_GRA }, // 9 Zoom Layer Tiles #1
-
- { "222a09.25l", 0x200000, 0xf7b3f070, 6 | BRF_GRA }, // 10 Zoom Layer Tiles #0
-
- { "222a03.7c", 0x040000, 0x1924467b, 7 | BRF_SND }, // 11 Samples
-};
-
-STD_ROM_PICK(dbz)
-STD_ROM_FN(dbz)
-
-struct BurnDriver BurnDrvDbz = {
- "dbz", NULL, NULL, NULL, "1993",
- "Dragonball Z (rev B)\0", NULL, "Banpresto", "Miscellaneous",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_PREFIX_KONAMI, GBF_VSFIGHT, 0,
- NULL, dbzRomInfo, dbzRomName, NULL, NULL, DbzInputInfo, DbzDIPInfo,
- dbzInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x2000,
- 384, 256, 4, 3
-};
-
-// Dragonball Z (rev A)
-
-static struct BurnRomInfo dbzaRomDesc[] = {
- { "222a11.9e", 0x080000, 0x60c7d9b2, 1 | BRF_PRG | BRF_ESS }, // 0 68K Code
- { "222a12.9f", 0x080000, 0x6ebc6853, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "222a10.5e", 0x008000, 0x1c93e30a, 2 | BRF_PRG | BRF_ESS }, // 2 Z80 Code
-
- { "222a01.27c", 0x200000, 0x9fce4ed4, 3 | BRF_GRA }, // 3 Background Tiles
- { "222a02.27e", 0x200000, 0x651acaa5, 3 | BRF_GRA }, // 4
-
- { "222a04.3j", 0x200000, 0x2533b95a, 4 | BRF_GRA }, // 5 Sprites
- { "222a05.1j", 0x200000, 0x731b7f93, 4 | BRF_GRA }, // 6
- { "222a06.3l", 0x200000, 0x97b767d3, 4 | BRF_GRA }, // 7
- { "222a07.1l", 0x200000, 0x430bc873, 4 | BRF_GRA }, // 8
-
- { "222a08.25k", 0x200000, 0x6410ee1b, 5 | BRF_GRA }, // 9 Zoom Layer Tiles #1
-
- { "222a09.25l", 0x200000, 0xf7b3f070, 6 | BRF_GRA }, // 10 Zoom Layer Tiles #0
-
- { "222a03.7c", 0x040000, 0x1924467b, 7 | BRF_SND }, // 11 Samples
-};
-
-STD_ROM_PICK(dbza)
-STD_ROM_FN(dbza)
-
-struct BurnDriver BurnDrvDbza = {
- "dbza", "dbz", NULL, NULL, "1993",
- "Dragonball Z (rev A)\0", NULL, "Banpresto", "Miscellaneous",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_KONAMI, GBF_VSFIGHT, 0,
- NULL, dbzaRomInfo, dbzaRomName, NULL, NULL, DbzInputInfo, DbzDIPInfo,
- dbzaInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x2000,
- 384, 256, 4, 3
-};
-
-
-// Dragonball Z 2 - Super Battle
-
-static struct BurnRomInfo dbz2RomDesc[] = {
- { "a9e.9e", 0x080000, 0xe6a142c9, 1 | BRF_PRG | BRF_ESS }, // 0 68K Code
- { "a9f.9f", 0x080000, 0x76cac399, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "s-001.5e", 0x008000, 0x154e6d03, 2 | BRF_PRG | BRF_ESS }, // 2 Z80 Code
-
- { "ds-b01.27c", 0x200000, 0x8dc39972, 3 | BRF_GRA }, // 3 Background Tiles
- { "ds-b02.27e", 0x200000, 0x7552f8cd, 3 | BRF_GRA }, // 4
-
- { "ds-o01.3j", 0x200000, 0xd018531f, 4 | BRF_GRA }, // 5 Sprites
- { "ds-o02.1j", 0x200000, 0x5a0f1ebe, 4 | BRF_GRA }, // 6
- { "ds-o03.3l", 0x200000, 0xddc3bef1, 4 | BRF_GRA }, // 7
- { "ds-o04.1l", 0x200000, 0xb5df6676, 4 | BRF_GRA }, // 8
-
- { "ds-p01.25k", 0x200000, 0x1c7aad68, 5 | BRF_GRA }, // 9 Zoom Layer Tiles #1
- { "ds-p02.27k", 0x200000, 0xe4c3a43b, 5 | BRF_GRA }, // 10
-
- { "ds-p03.25l", 0x200000, 0x1eaa671b, 6 | BRF_GRA }, // 11 Zoom Layer Tiles #0
- { "ds-p04.27l", 0x200000, 0x5845ff98, 6 | BRF_GRA }, // 12
-
- { "pcm.7c", 0x040000, 0xb58c884a, 7 | BRF_SND }, // 13 Samples
-};
-
-STD_ROM_PICK(dbz2)
-STD_ROM_FN(dbz2)
-
-struct BurnDriver BurnDrvDbz2 = {
- "dbz2", NULL, NULL, NULL, "1994",
- "Dragonball Z 2 - Super Battle\0", NULL, "Banpresto", "Miscellaneous",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_PREFIX_KONAMI, GBF_VSFIGHT, 0,
- NULL, dbz2RomInfo, dbz2RomName, NULL, NULL, DbzInputInfo, Dbz2DIPInfo,
- dbz2Init,DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x2000,
- 384, 256, 4, 3
-};
diff --git a/jan/src/burn/drv/konami/d_finalzr.cpp b/jan/src/burn/drv/konami/d_finalzr.cpp
deleted file mode 100644
index 966eea1e6..000000000
--- a/jan/src/burn/drv/konami/d_finalzr.cpp
+++ /dev/null
@@ -1,872 +0,0 @@
-// FB Alpha Finalizer driver module
-// Based on MAME driver by Nicola Salmoria
-
-#include "tiles_generic.h"
-#include "m6809_intf.h"
-#include "i8039.h"
-#include "sn76496.h"
-#include "dac.h"
-#include "resnet.h"
-
-static UINT8 *AllMem;
-static UINT8 *RamEnd;
-static UINT8 *AllRam;
-static UINT8 *MemEnd;
-static UINT8 *DrvM6809ROM;
-static UINT8 *DrvM6809DecROM;
-static UINT8 *DrvI8039ROM;
-static UINT8 *DrvGfxROM0;
-static UINT8 *DrvColPROM;
-static UINT8 *DrvColRAM0;
-static UINT8 *DrvVidRAM0;
-static UINT8 *DrvColRAM1;
-static UINT8 *DrvVidRAM1;
-static UINT8 *DrvSprRAM0;
-static UINT8 *DrvSprRAM1;
-
-static UINT32 *DrvPalette;
-static UINT8 DrvRecalc;
-
-static UINT8 DrvInputs[3];
-static UINT8 DrvJoy1[8];
-static UINT8 DrvJoy2[8];
-static UINT8 DrvJoy3[8];
-static UINT8 DrvDips[3];
-static UINT8 DrvReset;
-
-static UINT8 scroll;
-static UINT8 nmi_enable;
-static UINT8 irq_enable;
-static UINT8 charbank;
-static UINT8 spriterambank;
-static UINT8 soundlatch;
-static UINT8 flipscreen;
-static UINT8 i8039_t1;
-
-static INT32 watchdog = 0;
-static INT32 vblank;
-
-static struct BurnInputInfo FinalizrInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy1 + 0, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 3, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy2 + 2, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy2 + 3, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy2 + 0, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy2 + 1, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy2 + 4, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy2 + 5, "p1 fire 2" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy1 + 1, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy1 + 4, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvJoy3 + 2, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy3 + 3, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy3 + 0, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy3 + 1, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy3 + 4, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy3 + 5, "p2 fire 2" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service", BIT_DIGITAL, DrvJoy1 + 2, "service" },
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip" },
- {"Dip C", BIT_DIPSWITCH, DrvDips + 2, "dip" },
-};
-
-STDINPUTINFO(Finalizr)
-
-static struct BurnDIPInfo FinalizrDIPList[]=
-{
- {0x12, 0xff, 0xff, 0xff, NULL },
- {0x13, 0xff, 0xff, 0x5a, NULL },
- {0x14, 0xff, 0xff, 0xfe, NULL },
-
- {0 , 0xfe, 0 , 16, "Coin A" },
- {0x12, 0x01, 0x0f, 0x02, "4 Coins 1 Credits" },
- {0x12, 0x01, 0x0f, 0x05, "3 Coins 1 Credits" },
- {0x12, 0x01, 0x0f, 0x08, "2 Coins 1 Credits" },
- {0x12, 0x01, 0x0f, 0x04, "3 Coins 2 Credits" },
- {0x12, 0x01, 0x0f, 0x01, "4 Coins 3 Credits" },
- {0x12, 0x01, 0x0f, 0x0f, "1 Coin 1 Credits" },
- {0x12, 0x01, 0x0f, 0x03, "3 Coins 4 Credits" },
- {0x12, 0x01, 0x0f, 0x07, "2 Coins 3 Credits" },
- {0x12, 0x01, 0x0f, 0x0e, "1 Coin 2 Credits" },
- {0x12, 0x01, 0x0f, 0x06, "2 Coins 5 Credits" },
- {0x12, 0x01, 0x0f, 0x0d, "1 Coin 3 Credits" },
- {0x12, 0x01, 0x0f, 0x0c, "1 Coin 4 Credits" },
- {0x12, 0x01, 0x0f, 0x0b, "1 Coin 5 Credits" },
- {0x12, 0x01, 0x0f, 0x0a, "1 Coin 6 Credits" },
- {0x12, 0x01, 0x0f, 0x09, "1 Coin 7 Credits" },
- {0x12, 0x01, 0x0f, 0x00, "Free Play" },
-
- {0 , 0xfe, 0 , 16, "Coin B" },
- {0x12, 0x01, 0xf0, 0x20, "4 Coins 1 Credits" },
- {0x12, 0x01, 0xf0, 0x50, "3 Coins 1 Credits" },
- {0x12, 0x01, 0xf0, 0x80, "2 Coins 1 Credits" },
- {0x12, 0x01, 0xf0, 0x40, "3 Coins 2 Credits" },
- {0x12, 0x01, 0xf0, 0x10, "4 Coins 3 Credits" },
- {0x12, 0x01, 0xf0, 0xf0, "1 Coin 1 Credits" },
- {0x12, 0x01, 0xf0, 0x30, "3 Coins 4 Credits" },
- {0x12, 0x01, 0xf0, 0x70, "2 Coins 3 Credits" },
- {0x12, 0x01, 0xf0, 0xe0, "1 Coin 2 Credits" },
- {0x12, 0x01, 0xf0, 0x60, "2 Coins 5 Credits" },
- {0x12, 0x01, 0xf0, 0xd0, "1 Coin 3 Credits" },
- {0x12, 0x01, 0xf0, 0xc0, "1 Coin 4 Credits" },
- {0x12, 0x01, 0xf0, 0xb0, "1 Coin 5 Credits" },
- {0x12, 0x01, 0xf0, 0xa0, "1 Coin 6 Credits" },
- {0x12, 0x01, 0xf0, 0x90, "1 Coin 7 Credits" },
- {0x12, 0x01, 0xf0, 0x00, "No Coin B" },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x13, 0x01, 0x03, 0x03, "2" },
- {0x13, 0x01, 0x03, 0x02, "3" },
- {0x13, 0x01, 0x03, 0x01, "4" },
- {0x13, 0x01, 0x03, 0x00, "7" },
-
- {0 , 0xfe, 0 , 2, "Cabinet" },
- {0x13, 0x01, 0x04, 0x00, "Upright" },
- {0x13, 0x01, 0x04, 0x04, "Cocktail" },
-
- {0 , 0xfe, 0 , 4, "Bonus Life" },
- {0x13, 0x01, 0x18, 0x18, "30000 150000" },
- {0x13, 0x01, 0x18, 0x10, "50000 300000" },
- {0x13, 0x01, 0x18, 0x08, "30000" },
- {0x13, 0x01, 0x18, 0x00, "50000" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x13, 0x01, 0x60, 0x60, "Easy" },
- {0x13, 0x01, 0x60, 0x40, "Normal" },
- {0x13, 0x01, 0x60, 0x20, "Hard" },
- {0x13, 0x01, 0x60, 0x00, "Very Hard" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x13, 0x01, 0x80, 0x80, "Off" },
- {0x13, 0x01, 0x80, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x14, 0x01, 0x01, 0x00, "Off" },
- {0x14, 0x01, 0x01, 0x01, "On" },
-
- {0 , 0xfe, 0 , 2, "Controls" },
- {0x14, 0x01, 0x02, 0x02, "Single" },
- {0x14, 0x01, 0x02, 0x00, "Dual" },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x14, 0x01, 0x04, 0x04, "Off" },
- {0x14, 0x01, 0x04, 0x00, "On" },
-};
-
-STDDIPINFO(Finalizr)
-
-static UINT8 finalizr_main_read(UINT16 address)
-{
- switch (address)
- {
- case 0x0800:
- return DrvDips[2];
-
- case 0x0808:
- return DrvDips[1];
-
- case 0x0810:
- return (DrvInputs[0] & 0x7f) | (vblank ? 0x80 : 0);
- case 0x0811:
- case 0x0812:
- return (DrvInputs[address & 3] & 0x7f);
-
- case 0x0813:
- return DrvDips[0];
- }
-
- return 0;
-}
-
-static void finalizr_main_write(UINT16 address, UINT8 data)
-{
- switch (address)
- {
- case 0x0001:
- scroll = data;
- return;
-
- case 0x0003:
- charbank = data & 0x03;
- spriterambank = data & 0x08;
- return;
-
- case 0x0004:
- nmi_enable = data & 0x01;
- irq_enable = data & 0x02;
- flipscreen =~data & 0x08;
- return;
-
- case 0x0818:
- watchdog = 0;
- return;
-
- case 0x0819:
- // coin counters
- return;
-
- case 0x081a:
- SN76496Write(0, data);
- return;
-
- case 0x081b: // nop
- return;
-
- case 0x081c:
- I8039SetIrqState(1);
- return;
-
- case 0x081d:
- soundlatch = data;
- return;
- }
-}
-
-static UINT8 __fastcall finalizr_sound_read(UINT32 address)
-{
- return DrvI8039ROM[address & 0x0fff];
-}
-
-static void __fastcall finalizr_sound_write_port(UINT32 port, UINT8 data)
-{
- port &= 0x1ff;
-
- switch (port)
- {
- case I8039_p1:
- DACWrite(0, data);
- return;
-
- case I8039_p2:
- if (~data & 0x80) I8039SetIrqState(0);
- return;
-
- case I8039_t0:
- // clock?
- return;
- }
-}
-
-static UINT8 __fastcall finalizr_sound_read_port(UINT32 port)
-{
- port &= 0x1ff;
-
- if (port < 0x100) {
- return soundlatch;
- }
-
- switch (port)
- {
- case I8039_t1:
- i8039_t1 = (i8039_t1 + 1) & 0xf;
- return (!(i8039_t1 % 3) && (i8039_t1 > 0));
- }
-
- return 0;
-}
-
-static INT32 DrvSyncDAC()
-{
- return (INT32)(float)(nBurnSoundLen * (I8039TotalCycles() / (614400.0000 / (nBurnFPS / 100.0000))));
-}
-
-static INT32 DrvDoReset(INT32 clear_ram)
-{
- if (clear_ram) {
- memset (AllRam, 0, RamEnd - AllRam);
- }
-
- M6809Open(0);
- M6809Reset();
- M6809Close();
-
- I8039Reset();
- DACReset();
-
- scroll = 0;
- nmi_enable = 0;
- irq_enable = 0;
- charbank = 0;
- spriterambank = 0;
- soundlatch = 0;
- i8039_t1 = 0;
-
- watchdog = 0;
-
- return 0;
-}
-
-static INT32 MemIndex()
-{
- UINT8 *Next; Next = AllMem;
-
- DrvM6809ROM = Next; Next += 0x00c000;
- DrvM6809DecROM = Next; Next += 0x00c000;
-
- DrvI8039ROM = Next; Next += 0x001000;
-
- DrvGfxROM0 = Next; Next += 0x040000;
-
- DrvColPROM = Next; Next += 0x000240;
-
- DrvPalette = (UINT32*)Next; Next += 0x0200 * sizeof(UINT32);
-
- AllRam = Next;
-
- DrvColRAM0 = Next; Next += 0x000400;
- DrvVidRAM0 = Next; Next += 0x000400;
- DrvColRAM1 = Next; Next += 0x000400;
- DrvVidRAM1 = Next; Next += 0x000400;
-
- DrvSprRAM0 = Next; Next += 0x000800;
- DrvSprRAM1 = Next; Next += 0x000800;
-
- RamEnd = Next;
-
- MemEnd = Next;
-
- return 0;
-}
-
-static void FinalizrDecode()
-{
- for (INT32 i = 0; i < 0xc000; i++) {
- DrvM6809DecROM[i] = DrvM6809ROM[i] ^ (((i&2)?0x80:0x20)|((i&8)?0x08:0x02));
- }
-}
-
-static void DrvGfxExpand()
-{
- for (INT32 i = 0x20000-1; i >= 0; i--) {
- DrvGfxROM0[i*2+0] = DrvGfxROM0[i] >> 4;
- DrvGfxROM0[i*2+1] = DrvGfxROM0[i] & 0xf;
- }
-}
-
-static void DrvPaletteInit()
-{
- UINT32 palette[0x20];
-
- static const int resistances[4] = { 2200, 1000, 470, 220 };
- double rweights[4], gweights[4], bweights[4];
-
- compute_resistor_weights(0, 0xff, -1.0,
- 4, &resistances[0], rweights, 470, 0,
- 4, &resistances[0], gweights, 470, 0,
- 4, &resistances[0], bweights, 470, 0);
-
- for (INT32 i = 0; i < 0x20; i++)
- {
- INT32 bit0 = (DrvColPROM[i] >> 0) & 0x01;
- INT32 bit1 = (DrvColPROM[i] >> 1) & 0x01;
- INT32 bit2 = (DrvColPROM[i] >> 2) & 0x01;
- INT32 bit3 = (DrvColPROM[i] >> 3) & 0x01;
-
- INT32 r = combine_4_weights(rweights, bit0, bit1, bit2, bit3);
-
- bit0 = (DrvColPROM[i] >> 4) & 0x01;
- bit1 = (DrvColPROM[i] >> 5) & 0x01;
- bit2 = (DrvColPROM[i] >> 6) & 0x01;
- bit3 = (DrvColPROM[i] >> 7) & 0x01;
-
- INT32 g = combine_4_weights(rweights, bit0, bit1, bit2, bit3);
-
- bit0 = (DrvColPROM[i + 0x20] >> 0) & 0x01;
- bit1 = (DrvColPROM[i + 0x20] >> 1) & 0x01;
- bit2 = (DrvColPROM[i + 0x20] >> 2) & 0x01;
- bit3 = (DrvColPROM[i + 0x20] >> 3) & 0x01;
-
- INT32 b = combine_4_weights(rweights, bit0, bit1, bit2, bit3);
-
- palette[i] = BurnHighCol(r,g,b,0);
- }
-
- for (INT32 i = 0; i < 0x200; i++) {
- DrvPalette[i] = palette[(DrvColPROM[i+0x40]&0xf)+((~i&0x100)/16)];
- }
-}
-
-static INT32 DrvInit()
-{
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- if ((BurnDrvGetFlags() & BDF_BOOTLEG) == 0)
- {
- if (BurnLoadRom(DrvM6809ROM + 0x00000, 0, 1)) return 1;
- if (BurnLoadRom(DrvM6809ROM + 0x04000, 1, 1)) return 1;
- if (BurnLoadRom(DrvM6809ROM + 0x08000, 2, 1)) return 1;
-
- if (BurnLoadRom(DrvI8039ROM + 0x00000, 3, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x00000, 4, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x00001, 5, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x08000, 6, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x08001, 7, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x10000, 8, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x10001, 9, 2)) return 1;
- memset (DrvGfxROM0 + 0x18000, 0xff, 0x08000);
-
- if (BurnLoadRom(DrvColPROM + 0x00000, 10, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x00020, 11, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x00040, 12, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x00140, 13, 1)) return 1;
- }
- else
- {
- if (BurnLoadRom(DrvM6809ROM + 0x00000, 0, 1)) return 1;
- if (BurnLoadRom(DrvM6809ROM + 0x08000, 1, 1)) return 1;
-
- if (BurnLoadRom(DrvI8039ROM + 0x00000, 2, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x00000, 3, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x00001, 4, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x08000, 5, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x08001, 6, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x10000, 7, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x10001, 8, 2)) return 1;
- memset (DrvGfxROM0 + 0x18000, 0xff, 0x08000);
-
- if (BurnLoadRom(DrvColPROM + 0x00000, 9, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x00020, 10, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x00040, 11, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x00140, 12, 1)) return 1;
- }
-
- FinalizrDecode();
- DrvGfxExpand();
- DrvPaletteInit();
-
- M6809Init(1);
- M6809Open(0);
- M6809MapMemory(DrvColRAM0, 0x2000, 0x23ff, MAP_RAM);
- M6809MapMemory(DrvVidRAM0, 0x2400, 0x27ff, MAP_RAM);
- M6809MapMemory(DrvColRAM1, 0x2800, 0x2bff, MAP_RAM);
- M6809MapMemory(DrvVidRAM1, 0x2c00, 0x2fff, MAP_RAM);
- M6809MapMemory(DrvSprRAM0, 0x3000, 0x37ff, MAP_RAM);
- M6809MapMemory(DrvSprRAM1, 0x3800, 0x3fff, MAP_RAM);
- M6809MapMemory(DrvM6809ROM, 0x4000, 0xffff, MAP_READ);
- M6809MapMemory(DrvM6809DecROM, 0x4000, 0xffff, MAP_FETCH);
- M6809SetWriteHandler(finalizr_main_write);
- M6809SetReadHandler(finalizr_main_read);
- M6809Close();
-
- I8039Init(NULL);
- I8039SetProgramReadHandler(finalizr_sound_read);
- I8039SetCPUOpReadHandler(finalizr_sound_read);
- I8039SetCPUOpReadArgHandler(finalizr_sound_read);
- I8039SetIOReadHandler(finalizr_sound_read_port);
- I8039SetIOWriteHandler(finalizr_sound_write_port);
-
- SN76489AInit(0, 1536000, 0);
- SN76496SetRoute(0, 0.45, BURN_SND_ROUTE_BOTH);
-
- DACInit(0, 0, 1, DrvSyncDAC);
- DACSetRoute(0, 0.15, BURN_SND_ROUTE_BOTH);
-
- GenericTilesInit();
-
- DrvDoReset(1);
-
- return 0;
-}
-
-static INT32 DrvExit()
-{
- GenericTilesExit();
-
- M6809Exit();
- I8039Exit();
-
- SN76496Exit();
- DACExit();
-
- BurnFree (AllMem);
-
- return 0;
-}
-
-static void draw_bg_layer()
-{
- INT32 scrollx = scroll - 32;
-
- for (INT32 offs = 0; offs < 32 * 32; offs++)
- {
- INT32 sx = ((offs & 0x1f) * 8);
- INT32 sy = ((offs / 0x20) * 8) - 16;
- if (sy < 0 || sy >= nScreenHeight) continue;
-
- sx -= scrollx;
-
- if (sx < 25) sx += 256;
- if (sx >= nScreenWidth || sy >= nScreenHeight) continue;
-
- INT32 attr = DrvColRAM0[offs];
- INT32 code = DrvVidRAM0[offs] | ((attr & 0xc0) << 2) | (charbank << 10);
- INT32 color = attr & 0x0f;
- INT32 flipy = attr & 0x20;
- INT32 flipx = attr & 0x10;
-
- if (flipy) {
- if (flipx) {
- Render8x8Tile_FlipXY_Clip(pTransDraw, code, sx, sy, color, 4, 0, DrvGfxROM0);
- } else {
- Render8x8Tile_FlipY_Clip(pTransDraw, code, sx, sy, color, 4, 0, DrvGfxROM0);
- }
- } else {
- if (flipx) {
- Render8x8Tile_FlipX_Clip(pTransDraw, code, sx, sy, color, 4, 0, DrvGfxROM0);
- } else {
- Render8x8Tile_Clip(pTransDraw, code, sx, sy, color, 4, 0, DrvGfxROM0);
- }
- }
- }
-}
-
-static void draw_fg_layer()
-{
- for (INT32 offs = 0; offs < 32 * 32; offs++)
- {
- INT32 sx = (offs & 0x1f) * 8;
- if (sx >= 32) continue;
- INT32 sy = ((offs / 0x20) * 8) - 16;
- if (sy < 0 || sy >= nScreenHeight) continue;
-
- INT32 attr = DrvColRAM1[offs];
- INT32 code = DrvVidRAM1[offs] | ((attr & 0xc0) << 2);
- INT32 color = attr & 0x0f;
- INT32 flipy = attr & 0x20;
- INT32 flipx = attr & 0x10;
-
- if (flipy) {
- if (flipx) {
- Render8x8Tile_FlipXY_Clip(pTransDraw, code, sx, sy, color, 4, 0, DrvGfxROM0);
- } else {
- Render8x8Tile_FlipY_Clip(pTransDraw, code, sx, sy, color, 4, 0, DrvGfxROM0);
- }
- } else {
- if (flipx) {
- Render8x8Tile_FlipX_Clip(pTransDraw, code, sx, sy, color, 4, 0, DrvGfxROM0);
- } else {
- Render8x8Tile_Clip(pTransDraw, code, sx, sy, color, 4, 0, DrvGfxROM0);
- }
- }
- }
-}
-
-static void draw_16x16(INT32 code, INT32 color, INT32 sx, INT32 sy, INT32 flipx, INT32 flipy)
-{
- code &= 0xfff;
- sy -= 16;
-
- INT32 flip = ((flipx)?1:0)|((flipy)?2:0);
-
- for (INT32 i = 0; i < 4; i++)
- {
- if (flipy) {
- if (flipx) {
- Render8x8Tile_Mask_FlipXY_Clip(pTransDraw, code + (flip^i), sx + (i & 1) * 8, sy + (i & 2) * 4, color, 4, 0, 0x100, DrvGfxROM0);
- } else {
- Render8x8Tile_Mask_FlipY_Clip(pTransDraw, code + (flip^i), sx + (i & 1) * 8, sy + (i & 2) * 4, color, 4, 0, 0x100, DrvGfxROM0);
- }
- } else {
- if (flipx) {
- Render8x8Tile_Mask_FlipX_Clip(pTransDraw, code + (flip^i), sx + (i & 1) * 8, sy + (i & 2) * 4, color, 4, 0, 0x100, DrvGfxROM0);
- } else {
- Render8x8Tile_Mask_Clip(pTransDraw, code + (flip^i), sx + (i & 1) * 8, sy + (i & 2) * 4, color, 4, 0, 0x100, DrvGfxROM0);
- }
- }
- }
-}
-
-static void draw_8x8(INT32 code, INT32 color, INT32 sx, INT32 sy, INT32 flipx, INT32 flipy)
-{
- code &= 0xfff;
- sy -= 16;
-
- for (INT32 i = 0; i < 4; i++)
- {
- if (flipy) {
- if (flipx) {
- Render8x8Tile_Mask_FlipXY_Clip(pTransDraw, code, sx, sy, color, 4, 0, 0x100, DrvGfxROM0);
- } else {
- Render8x8Tile_Mask_FlipY_Clip(pTransDraw, code, sx, sy, color, 4, 0, 0x100, DrvGfxROM0);
- }
- } else {
- if (flipx) {
- Render8x8Tile_Mask_FlipX_Clip(pTransDraw, code, sx, sy, color, 4, 0, 0x100, DrvGfxROM0);
- } else {
- Render8x8Tile_Mask_Clip(pTransDraw, code, sx, sy, color, 4, 0, 0x100, DrvGfxROM0);
- }
- }
- }
-}
-
-static void draw_sprites()
-{
- UINT8 *sr = spriterambank ? DrvSprRAM1 : DrvSprRAM0;
-
- for (INT32 offs = 0; offs <= 0x200 - 5; offs += 5)
- {
- INT32 sx = 32 + 1 + sr[offs + 3] - ((sr[offs + 4] & 0x01) << 8);
- INT32 sy = sr[offs + 2];
- INT32 flipx = sr[offs + 4] & 0x20;
- INT32 flipy = sr[offs + 4] & 0x40;
- INT32 code = sr[offs] + ((sr[offs + 1] & 0x0f) << 8);
- INT32 color = ((sr[offs + 1] & 0xf0) >> 4);
- INT32 size = sr[offs + 4] & 0x1c;
-
- if (size >= 0x10)
- {
- if (flipscreen)
- {
- sx = 256 - sx;
- sy = 224 - sy;
- flipx = !flipx;
- flipy = !flipy;
- }
-
- draw_16x16(code*4+0, color, flipx ? sx + 16 : sx, flipy ? sy + 16 : sy, flipx, flipy);
- draw_16x16(code*4+4, color, flipx ? sx : sx + 16, flipy ? sy + 16 : sy, flipx, flipy);
- draw_16x16(code*4+8, color, flipx ? sx + 16: sx , flipy ? sy : sy + 16, flipx, flipy);
- draw_16x16(code*4+12, color, flipx ? sx : sx + 16, flipy ? sy : sy + 16, flipx, flipy);
- }
- else
- {
- if (flipscreen)
- {
- sx = ((size & 0x08) ? 280: 272) - sx;
- sy = ((size & 0x04) ? 248: 240) - sy;
- flipx = !flipx;
- flipy = !flipy;
- }
-
- if (size == 0x00)
- {
- draw_16x16(code*4, color, sx, sy, flipx, flipy);
- }
- else
- {
- code = ((code & 0x3ff) << 2) | ((code & 0xc00) >> 10);
-
- if (size == 0x04)
- {
- draw_8x8(code &~1, color, flipx ? sx + 8 : sx, sy, flipx, flipy);
- draw_8x8(code | 1, color, flipx ? sx : sx + 8, sy, flipx, flipy);
- }
- else if (size == 0x08)
- {
- draw_8x8(code &~2, color, sx, flipy ? sy + 8 : sy, flipx, flipy);
- draw_8x8(code | 2, color, sx, flipy ? sy : sy + 8, flipx, flipy);
- }
- else if (size == 0x0c)
- {
- draw_8x8(code, color, sx, sy, flipx, flipy);
- }
- }
- }
- }
-}
-
-static INT32 DrvDraw()
-{
- if (DrvRecalc) {
- DrvPaletteInit();
- DrvRecalc = 0;
- }
-
- BurnTransferClear();
-
- if (nBurnLayer & 1) draw_bg_layer();
- if (nBurnLayer & 2) draw_sprites();
- if (nBurnLayer & 4) draw_fg_layer();
-
- BurnTransferCopy(DrvPalette);
-
- return 0;
-}
-
-static INT32 DrvFrame()
-{
- watchdog++;
- if (watchdog >= 180) {
- DrvDoReset(0);
- }
-
- if (DrvReset) {
- DrvDoReset(1);
- }
-
- M6809NewFrame();
- I8039NewFrame();
-
- {
- memset (DrvInputs, 0xff, 3);
- for (INT32 i = 0; i < 8; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- DrvInputs[2] ^= (DrvJoy3[i] & 1) << i;
- }
- }
-
- INT32 nInterleave = 256;
- INT32 nSoundBufferPos = 0;
- INT32 nCyclesTotal[2] = { 1536000 / 60, 9216000 / 15 / 60 };
- INT32 nCyclesDone[2] = { 0, 0 };
-
- M6809Open(0);
-
- vblank = 0;
-
- for (INT32 i = 0; i < nInterleave; i++)
- {
- nCyclesDone[0] += M6809Run(nCyclesTotal[0] / nInterleave);
- if (i == 240 && irq_enable) {
- M6809SetIRQLine(0, CPU_IRQSTATUS_ACK);
- M6809Run(100);
- M6809SetIRQLine(0, CPU_IRQSTATUS_NONE);
- }
-
- if ((i % 32) == 31 && nmi_enable) M6809SetIRQLine(0x20, CPU_IRQSTATUS_AUTO);
-
- if (i == 240) vblank = 1; // ?
-
- INT32 nSegment = (i + 1) * nCyclesTotal[1] / nInterleave;
- nCyclesDone[1] += I8039Run(nSegment - nCyclesDone[1]);
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen / nInterleave;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- SN76496Update(0, pSoundBuf, nSegmentLength);
- nSoundBufferPos += nSegmentLength;
- }
- }
-
- M6809Close();
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- SN76496Update(0, pSoundBuf, nSegmentLength);
- DACUpdate(pBurnSoundOut, nBurnSoundLen);
- }
-
- if (pBurnDraw) {
- DrvDraw();
- }
-
- return 0;
-}
-
-static INT32 DrvScan(INT32 nAction,INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin) {
- *pnMin = 0x029704;
- }
-
- if (nAction & ACB_VOLATILE) {
- memset(&ba, 0, sizeof(ba));
- ba.Data = AllRam;
- ba.nLen = RamEnd - AllRam;
- ba.szName = "All RAM";
- BurnAcb(&ba);
- }
-
- if (nAction & ACB_DRIVER_DATA) {
- M6809Scan(nAction);
- I8039Scan(nAction,pnMin);
-
- DACScan(nAction,pnMin);
- SN76496Scan(nAction,pnMin);
-
- SCAN_VAR(scroll);
- SCAN_VAR(nmi_enable);
- SCAN_VAR(irq_enable);
- SCAN_VAR(charbank);
- SCAN_VAR(spriterambank);
- SCAN_VAR(soundlatch);
- SCAN_VAR(flipscreen);
- SCAN_VAR(i8039_t1);
- }
-
- return 0;
-}
-
-
-// Finalizer - Super Transformation
-
-static struct BurnRomInfo finalizrRomDesc[] = {
- { "523k01.9c", 0x4000, 0x716633cb, 1 | BRF_PRG | BRF_ESS }, // 0 M6809 Code
- { "523k02.12c", 0x4000, 0x1bccc696, 1 | BRF_PRG | BRF_ESS }, // 1
- { "523k03.13c", 0x4000, 0xc48927c6, 1 | BRF_PRG | BRF_ESS }, // 2
-
- { "d8749hd.bin", 0x0800, 0x978dfc33, 2 | BRF_PRG | BRF_ESS }, // 3 I8039 Code
-
- { "523h04.5e", 0x4000, 0xc056d710, 3 | BRF_GRA }, // 4 Sprites & tiles
- { "523h07.5f", 0x4000, 0x50e512ba, 3 | BRF_GRA }, // 5
- { "523h05.6e", 0x4000, 0xae0d0f76, 3 | BRF_GRA }, // 6
- { "523h08.6f", 0x4000, 0x79f44e17, 3 | BRF_GRA }, // 7
- { "523h06.7e", 0x4000, 0xd2db9689, 3 | BRF_GRA }, // 8
- { "523h09.7f", 0x4000, 0x8896dc85, 3 | BRF_GRA }, // 9
-
- { "523h10.2f", 0x0020, 0xec15dd15, 4 | BRF_GRA }, // 10 Color Proms
- { "523h11.3f", 0x0020, 0x54be2e83, 4 | BRF_GRA }, // 11
- { "523h13.11f", 0x0100, 0x4e0647a0, 4 | BRF_GRA }, // 12
- { "523h12.10f", 0x0100, 0x53166a2a, 4 | BRF_GRA }, // 13
-};
-
-STD_ROM_PICK(finalizr)
-STD_ROM_FN(finalizr)
-
-struct BurnDriver BurnDrvFinalizr = {
- "finalizr", NULL, NULL, NULL, "1985",
- "Finalizer - Super Transformation\0", NULL, "Konami", "GX523",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED, 2, HARDWARE_PREFIX_KONAMI, GBF_VERSHOOT, 0,
- NULL, finalizrRomInfo, finalizrRomName, NULL, NULL, FinalizrInputInfo, FinalizrDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x200,
- 224, 272, 3, 4
-};
-
-
-// Finalizer - Super Transformation (bootleg)
-
-static struct BurnRomInfo finalizrbRomDesc[] = {
- { "finalizr.5", 0x8000, 0xa55e3f14, 1 | BRF_PRG | BRF_ESS }, // 0 M6809 Code
- { "finalizr.6", 0x4000, 0xce177f6e, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "d8749hd.bin", 0x0800, 0x978dfc33, 2 | BRF_PRG | BRF_ESS }, // 2 I8039 Code
-
- { "523h04.5e", 0x4000, 0xc056d710, 3 | BRF_GRA }, // 3 Sprites & tiles
- { "523h07.5f", 0x4000, 0x50e512ba, 3 | BRF_GRA }, // 4
- { "523h05.6e", 0x4000, 0xae0d0f76, 3 | BRF_GRA }, // 5
- { "523h08.6f", 0x4000, 0x79f44e17, 3 | BRF_GRA }, // 6
- { "523h06.7e", 0x4000, 0xd2db9689, 3 | BRF_GRA }, // 7
- { "523h09.7f", 0x4000, 0x8896dc85, 3 | BRF_GRA }, // 8
-
- { "523h10.2f", 0x0020, 0xec15dd15, 4 | BRF_GRA }, // 9 Color Proms
- { "523h11.3f", 0x0020, 0x54be2e83, 4 | BRF_GRA }, // 10
- { "523h13.11f", 0x0100, 0x4e0647a0, 4 | BRF_GRA }, // 11
- { "523h12.10f", 0x0100, 0x53166a2a, 4 | BRF_GRA }, // 12
-};
-
-STD_ROM_PICK(finalizrb)
-STD_ROM_FN(finalizrb)
-
-struct BurnDriver BurnDrvFinalizrb = {
- "finalizrb", "finalizr", NULL, NULL, "1985",
- "Finalizer - Super Transformation (bootleg)\0", NULL, "bootleg", "GX523",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED, 2, HARDWARE_PREFIX_KONAMI, GBF_VERSHOOT, 0,
- NULL, finalizrbRomInfo, finalizrbRomName, NULL, NULL, FinalizrInputInfo, FinalizrDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x200,
- 224, 272, 3, 4
-};
diff --git a/jan/src/burn/drv/konami/d_gberet.cpp b/jan/src/burn/drv/konami/d_gberet.cpp
deleted file mode 100644
index a8bfc2086..000000000
--- a/jan/src/burn/drv/konami/d_gberet.cpp
+++ /dev/null
@@ -1,1131 +0,0 @@
-// FB Alpha Green Beret driver module
-// Based on MAME driver by Nicola Salmoria
-
-#include "tiles_generic.h"
-#include "z80_intf.h"
-#include "sn76496.h"
-
-static UINT8 *Mem, *MemEnd, *Rom, *Gfx0, *Gfx1, *Prom;
-static UINT32 *Palette, *DrvPalette;
-static UINT8 DrvRecalcPal;
-
-static UINT8 DrvJoy1[8], DrvJoy2[8], DrvJoy3[8], DrvDips[4], DrvReset;
-
-static UINT8 nmi_enable, irq_enable;
-static UINT16 gberetb_scroll;
-static UINT8 flipscreen;
-static UINT8 gberet_spritebank;
-static INT32 mrgoemon_bank;
-static UINT8 soundlatch;
-
-static INT32 game_type = 0; // 0 gberet / rushatck, 1 gberetb, 2 mrgoemon
-
-static struct BurnInputInfo DrvInputList[] = {
- {"P1 Coin" , BIT_DIGITAL , DrvJoy3 + 0, "p1 coin" },
- {"P1 Start" , BIT_DIGITAL , DrvJoy3 + 3, "p1 start" },
- {"P1 Left" , BIT_DIGITAL , DrvJoy1 + 0, "p1 left" },
- {"P1 Right" , BIT_DIGITAL , DrvJoy1 + 1, "p1 right" },
- {"P1 Up" , BIT_DIGITAL , DrvJoy1 + 2, "p1 up" },
- {"P1 Down" , BIT_DIGITAL , DrvJoy1 + 3, "p1 down" },
- {"P1 Button 1" , BIT_DIGITAL , DrvJoy1 + 4, "p1 fire 1" },
- {"P1 Button 2" , BIT_DIGITAL , DrvJoy1 + 5, "p1 fire 2" },
-
- {"P2 Coin" , BIT_DIGITAL , DrvJoy3 + 1, "p2 coin" },
- {"P2 Start" , BIT_DIGITAL , DrvJoy3 + 4, "p2 start" },
- {"P2 Left" , BIT_DIGITAL , DrvJoy2 + 0, "p2 left" },
- {"P2 Right" , BIT_DIGITAL , DrvJoy2 + 1, "p2 right" },
- {"P2 Up" , BIT_DIGITAL , DrvJoy2 + 2, "p2 up" },
- {"P2 Down" , BIT_DIGITAL , DrvJoy2 + 3, "p2 down" },
- {"P2 Button 1" , BIT_DIGITAL , DrvJoy2 + 4, "p2 fire 1" },
- {"P2 Button 2" , BIT_DIGITAL , DrvJoy2 + 5, "p2 fire 2" },
-
- {"Service" , BIT_DIGITAL , DrvJoy3 + 2, "service" },
-
- {"Reset" , BIT_DIGITAL , &DrvReset , "reset" },
- {"Dip 1" , BIT_DIPSWITCH, DrvDips + 0, "dip" },
- {"Dip 2" , BIT_DIPSWITCH, DrvDips + 1, "dip" },
- {"Dip 3" , BIT_DIPSWITCH, DrvDips + 2, "dip" },
-
-};
-
-STDINPUTINFO(Drv)
-
-static struct BurnInputInfo gberetbInputList[] = {
- {"P1 Coin" , BIT_DIGITAL , DrvJoy3 + 7, "p1 coin" },
- {"P1 Start" , BIT_DIGITAL , DrvJoy3 + 5, "p1 start" },
- {"P1 Left" , BIT_DIGITAL , DrvJoy1 + 0, "p1 left" },
- {"P1 Right" , BIT_DIGITAL , DrvJoy1 + 1, "p1 right" },
- {"P1 Up" , BIT_DIGITAL , DrvJoy1 + 2, "p1 up" },
- {"P1 Down" , BIT_DIGITAL , DrvJoy1 + 3, "p1 down" },
- {"P1 Button 1" , BIT_DIGITAL , DrvJoy1 + 4, "p1 fire 1" },
- {"P1 Button 2" , BIT_DIGITAL , DrvJoy1 + 5, "p1 fire 2" },
-
- {"P2 Coin" , BIT_DIGITAL , DrvJoy3 + 6, "p2 coin" },
- {"P2 Start" , BIT_DIGITAL , DrvJoy3 + 4, "p2 start" },
- {"Reset" , BIT_DIGITAL , &DrvReset , "reset" },
- {"Dip 1" , BIT_DIPSWITCH, DrvDips + 3, "dip" },
- {"Dip 2" , BIT_DIPSWITCH, DrvDips + 2, "dip" },
-};
-
-STDINPUTINFO(gberetb)
-
-static struct BurnDIPInfo gberetDIPList[]=
-{
- {0x12, 0xff, 0xff, 0xff, NULL },
-
- {0 , 0xfe, 0 , 16 , "Coin A" },
- {0x12, 0x01, 0x0f, 0x02, "4 Coins 1 Credit" },
- {0x12, 0x01, 0x0f, 0x05, "3 Coins 1 Credit" },
- {0x12, 0x01, 0x0f, 0x08, "2 Coins 1 Credit" },
- {0x12, 0x01, 0x0f, 0x04, "3 Coins 2 Credits" },
- {0x12, 0x01, 0x0f, 0x01, "4 Coins 3 Credits" },
- {0x12, 0x01, 0x0f, 0x0f, "1 Coin 1 Credit" },
- {0x12, 0x01, 0x0f, 0x03, "3 Coins 4 Credits" },
- {0x12, 0x01, 0x0f, 0x07, "2 Coins 3 Credits" },
- {0x12, 0x01, 0x0f, 0x0e, "1 Coin 2 Credits" },
- {0x12, 0x01, 0x0f, 0x06, "2 Coins 5 Credits" },
- {0x12, 0x01, 0x0f, 0x0d, "1 Coin 3 Credits" },
- {0x12, 0x01, 0x0f, 0x0c, "1 Coin 4 Credits" },
- {0x12, 0x01, 0x0f, 0x0b, "1 Coin 5 Credits" },
- {0x12, 0x01, 0x0f, 0x0a, "1 Coin 6 Credits" },
- {0x12, 0x01, 0x0f, 0x09, "1 Coin 7 Credits" },
- {0x12, 0x01, 0x0f, 0x00, "Free Play" },
-
- {0 , 0xfe, 0 , 15 , "Coin B" },
- {0x12, 0x82, 0xf0, 0x20, "4 Coins 1 Credit" },
- {0x12, 0x00, 0x0f, 0x00, NULL },
- {0x12, 0x82, 0xf0, 0x50, "3 Coins 1 Credit" },
- {0x12, 0x00, 0x0f, 0x00, NULL },
- {0x12, 0x82, 0xf0, 0x80, "2 Coins 1 Credit" },
- {0x12, 0x00, 0x0f, 0x00, NULL },
- {0x12, 0x82, 0xf0, 0x40, "3 Coins 2 Credits" },
- {0x12, 0x00, 0x0f, 0x00, NULL },
- {0x12, 0x82, 0xf0, 0x10, "4 Coins 3 Credits" },
- {0x12, 0x00, 0x0f, 0x00, NULL },
- {0x12, 0x82, 0xf0, 0xf0, "1 Coin 1 Credit" },
- {0x12, 0x00, 0x0f, 0x00, NULL },
- {0x12, 0x82, 0xf0, 0x30, "3 Coins 4 Credits" },
- {0x12, 0x00, 0x0f, 0x00, NULL },
- {0x12, 0x82, 0xf0, 0x70, "2 Coins 3 Credits" },
- {0x12, 0x00, 0x0f, 0x00, NULL },
- {0x12, 0x82, 0xf0, 0xe0, "1 Coin 2 Credits" },
- {0x12, 0x00, 0x0f, 0x00, NULL },
- {0x12, 0x82, 0xf0, 0x60, "2 Coins 5 Credits" },
- {0x12, 0x00, 0x0f, 0x00, NULL },
- {0x12, 0x82, 0xf0, 0xd0, "1 Coin 3 Credits" },
- {0x12, 0x00, 0x0f, 0x00, NULL },
- {0x12, 0x82, 0xf0, 0xc0, "1 Coin 4 Credits" },
- {0x12, 0x00, 0x0f, 0x00, NULL },
- {0x12, 0x82, 0xf0, 0xb0, "1 Coin 5 Credits" },
- {0x12, 0x00, 0x0f, 0x00, NULL },
- {0x12, 0x82, 0xf0, 0xa0, "1 Coin 6 Credits" },
- {0x12, 0x00, 0x0f, 0x00, NULL },
- {0x12, 0x82, 0xf0, 0x90, "1 Coin 7 Credits" },
- {0x12, 0x00, 0x0f, 0x00, NULL },
-
- {0x13, 0xff, 0xff, 0x4a, NULL },
-
- {0 , 0xfe, 0 , 4 , "Lives" },
- {0x13, 0x01, 0x03, 0x03, "2" },
- {0x13, 0x01, 0x03, 0x02, "3" },
- {0x13, 0x01, 0x03, 0x01, "5" },
- {0x13, 0x01, 0x03, 0x00, "7" },
-
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x13, 0x01, 0x04, 0x00, "Upright" },
- {0x13, 0x01, 0x04, 0x04, "Cocktail" },
-
- {0 , 0xfe, 0 , 4 , "Bonus Life" },
- {0x13, 0x01, 0x18, 0x18, "30K 70K 70K+" },
- {0x13, 0x01, 0x18, 0x10, "40K 80K 80K+" },
- {0x13, 0x01, 0x18, 0x08, "50K 100K 100K+" },
- {0x13, 0x01, 0x18, 0x00, "50K 200K 200K+" },
-
- {0 , 0xfe, 0 , 4 , "Difficulty" },
- {0x13, 0x01, 0x60, 0x60, "Easy" },
- {0x13, 0x01, 0x60, 0x40, "Normal" },
- {0x13, 0x01, 0x60, 0x20, "Difficult" },
- {0x13, 0x01, 0x60, 0x00, "Very Difficult" },
-
- {0 , 0xfe, 0 , 2 , "Demo Sounds" },
- {0x13, 0x01, 0x80, 0x80, "Off" },
- {0x13, 0x01, 0x80, 0x00, "On" },
-
- {0x14, 0xff, 0xff, 0x0f, NULL },
-
- {0 , 0xfe, 0 , 2 , "Flip Screen" },
- {0x14, 0x01, 0x01, 0x01, "Off" },
- {0x14, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2 , "Upright Controls" },
- {0x14, 0x01, 0x02, 0x02, "Single" },
- {0x14, 0x01, 0x02, 0x00, "Dual" },
-};
-
-STDDIPINFO(gberet)
-
-static struct BurnDIPInfo gberetbDIPList[]=
-{
- {0x0b, 0xff, 0xff, 0xff, NULL },
-
- {0 , 0xfe, 0 , 16 , "Coin A" },
- {0x0b, 0x01, 0x0f, 0x02, "4 Coins 1 Credit" },
- {0x0b, 0x01, 0x0f, 0x05, "3 Coins 1 Credit" },
- {0x0b, 0x01, 0x0f, 0x08, "2 Coins 1 Credit" },
- {0x0b, 0x01, 0x0f, 0x04, "3 Coins 2 Credits" },
- {0x0b, 0x01, 0x0f, 0x01, "4 Coins 3 Credits" },
- {0x0b, 0x01, 0x0f, 0x0f, "1 Coin 1 Credit" },
- {0x0b, 0x01, 0x0f, 0x03, "3 Coins 4 Credits" },
- {0x0b, 0x01, 0x0f, 0x07, "2 Coins 3 Credits" },
- {0x0b, 0x01, 0x0f, 0x0e, "1 Coin 2 Credits" },
- {0x0b, 0x01, 0x0f, 0x06, "2 Coins 5 Credits" },
- {0x0b, 0x01, 0x0f, 0x0d, "1 Coin 3 Credits" },
- {0x0b, 0x01, 0x0f, 0x0c, "1 Coin 4 Credits" },
- {0x0b, 0x01, 0x0f, 0x0b, "1 Coin 5 Credits" },
- {0x0b, 0x01, 0x0f, 0x0a, "1 Coin 6 Credits" },
- {0x0b, 0x01, 0x0f, 0x09, "1 Coin 7 Credits" },
- {0x0b, 0x01, 0x0f, 0x00, "Free Play" },
-
- {0 , 0xfe, 0 , 15 , "Coin B" },
- {0x0b, 0x82, 0xf0, 0x20, "4 Coins 1 Credit" },
- {0x0b, 0x00, 0x0f, 0x00, NULL },
- {0x0b, 0x82, 0xf0, 0x50, "3 Coins 1 Credit" },
- {0x0b, 0x00, 0x0f, 0x00, NULL },
- {0x0b, 0x82, 0xf0, 0x80, "2 Coins 1 Credit" },
- {0x0b, 0x00, 0x0f, 0x00, NULL },
- {0x0b, 0x82, 0xf0, 0x40, "3 Coins 2 Credits" },
- {0x0b, 0x00, 0x0f, 0x00, NULL },
- {0x0b, 0x82, 0xf0, 0x10, "4 Coins 3 Credits" },
- {0x0b, 0x00, 0x0f, 0x00, NULL },
- {0x0b, 0x82, 0xf0, 0xf0, "1 Coin 1 Credit" },
- {0x0b, 0x00, 0x0f, 0x00, NULL },
- {0x0b, 0x82, 0xf0, 0x30, "3 Coins 4 Credits" },
- {0x0b, 0x00, 0x0f, 0x00, NULL },
- {0x0b, 0x82, 0xf0, 0x70, "2 Coins 3 Credits" },
- {0x0b, 0x00, 0x0f, 0x00, NULL },
- {0x0b, 0x82, 0xf0, 0xe0, "1 Coin 2 Credits" },
- {0x0b, 0x00, 0x0f, 0x00, NULL },
- {0x0b, 0x82, 0xf0, 0x60, "2 Coins 5 Credits" },
- {0x0b, 0x00, 0x0f, 0x00, NULL },
- {0x0b, 0x82, 0xf0, 0xd0, "1 Coin 3 Credits" },
- {0x0b, 0x00, 0x0f, 0x00, NULL },
- {0x0b, 0x82, 0xf0, 0xc0, "1 Coin 4 Credits" },
- {0x0b, 0x00, 0x0f, 0x00, NULL },
- {0x0b, 0x82, 0xf0, 0xb0, "1 Coin 5 Credits" },
- {0x0b, 0x00, 0x0f, 0x00, NULL },
- {0x0b, 0x82, 0xf0, 0xa0, "1 Coin 6 Credits" },
- {0x0b, 0x00, 0x0f, 0x00, NULL },
- {0x0b, 0x82, 0xf0, 0x90, "1 Coin 7 Credits" },
- {0x0b, 0x00, 0x0f, 0x00, NULL },
-
- {0x0c, 0xff, 0xff, 0x4a, NULL },
-
- {0 , 0xfe, 0 , 4 , "Lives" },
- {0x0c, 0x01, 0x03, 0x03, "2" },
- {0x0c, 0x01, 0x03, 0x02, "3" },
- {0x0c, 0x01, 0x03, 0x01, "5" },
- {0x0c, 0x01, 0x03, 0x00, "7" },
-
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x0c, 0x01, 0x04, 0x00, "Upright" },
- {0x0c, 0x01, 0x04, 0x04, "Cocktail" },
-
- {0 , 0xfe, 0 , 4 , "Bonus Life" },
- {0x0c, 0x01, 0x18, 0x18, "30K 70K 70K+" },
- {0x0c, 0x01, 0x18, 0x10, "40K 80K 80K+" },
- {0x0c, 0x01, 0x18, 0x08, "50K 100K 100K+" },
- {0x0c, 0x01, 0x18, 0x00, "50K 200K 200K+" },
-
- {0 , 0xfe, 0 , 4 , "Difficulty" },
- {0x0c, 0x01, 0x60, 0x60, "Easy" },
- {0x0c, 0x01, 0x60, 0x40, "Normal" },
- {0x0c, 0x01, 0x60, 0x20, "Difficult" },
- {0x0c, 0x01, 0x60, 0x00, "Very Difficult" },
-
- {0 , 0xfe, 0 , 2 , "Demo Sounds" },
- {0x0c, 0x01, 0x80, 0x80, "Off" },
- {0x0c, 0x01, 0x80, 0x00, "On" },
-};
-
-STDDIPINFO(gberetb)
-
-static struct BurnDIPInfo mrgoemonDIPList[]=
-{
- {0x12, 0xff, 0xff, 0xff, NULL },
-
- {0 , 0xfe, 0 , 16 , "Coin A" },
- {0x12, 0x01, 0x0f, 0x02, "4 Coins 1 Credit" },
- {0x12, 0x01, 0x0f, 0x05, "3 Coins 1 Credit" },
- {0x12, 0x01, 0x0f, 0x08, "2 Coins 1 Credit" },
- {0x12, 0x01, 0x0f, 0x04, "3 Coins 2 Credits" },
- {0x12, 0x01, 0x0f, 0x01, "4 Coins 3 Credits" },
- {0x12, 0x01, 0x0f, 0x0f, "1 Coin 1 Credit" },
- {0x12, 0x01, 0x0f, 0x03, "3 Coins 4 Credits" },
- {0x12, 0x01, 0x0f, 0x07, "2 Coins 3 Credits" },
- {0x12, 0x01, 0x0f, 0x0e, "1 Coin 2 Credits" },
- {0x12, 0x01, 0x0f, 0x06, "2 Coins 5 Credits" },
- {0x12, 0x01, 0x0f, 0x0d, "1 Coin 3 Credits" },
- {0x12, 0x01, 0x0f, 0x0c, "1 Coin 4 Credits" },
- {0x12, 0x01, 0x0f, 0x0b, "1 Coin 5 Credits" },
- {0x12, 0x01, 0x0f, 0x0a, "1 Coin 6 Credits" },
- {0x12, 0x01, 0x0f, 0x09, "1 Coin 7 Credits" },
- {0x12, 0x01, 0x0f, 0x00, "Free Play" },
-
- {0 , 0xfe, 0 , 15 , "Coin B" },
- {0x12, 0x82, 0xf0, 0x20, "4 Coins 1 Credit" },
- {0x12, 0x00, 0x0f, 0x00, NULL },
- {0x12, 0x82, 0xf0, 0x50, "3 Coins 1 Credit" },
- {0x12, 0x00, 0x0f, 0x00, NULL },
- {0x12, 0x82, 0xf0, 0x80, "2 Coins 1 Credit" },
- {0x12, 0x00, 0x0f, 0x00, NULL },
- {0x12, 0x82, 0xf0, 0x40, "3 Coins 2 Credits" },
- {0x12, 0x00, 0x0f, 0x00, NULL },
- {0x12, 0x82, 0xf0, 0x10, "4 Coins 3 Credits" },
- {0x12, 0x00, 0x0f, 0x00, NULL },
- {0x12, 0x82, 0xf0, 0xf0, "1 Coin 1 Credit" },
- {0x12, 0x00, 0x0f, 0x00, NULL },
- {0x12, 0x82, 0xf0, 0x30, "3 Coins 4 Credits" },
- {0x12, 0x00, 0x0f, 0x00, NULL },
- {0x12, 0x82, 0xf0, 0x70, "2 Coins 3 Credits" },
- {0x12, 0x00, 0x0f, 0x00, NULL },
- {0x12, 0x82, 0xf0, 0xe0, "1 Coin 2 Credits" },
- {0x12, 0x00, 0x0f, 0x00, NULL },
- {0x12, 0x82, 0xf0, 0x60, "2 Coins 5 Credits" },
- {0x12, 0x00, 0x0f, 0x00, NULL },
- {0x12, 0x82, 0xf0, 0xd0, "1 Coin 3 Credits" },
- {0x12, 0x00, 0x0f, 0x00, NULL },
- {0x12, 0x82, 0xf0, 0xc0, "1 Coin 4 Credits" },
- {0x12, 0x00, 0x0f, 0x00, NULL },
- {0x12, 0x82, 0xf0, 0xb0, "1 Coin 5 Credits" },
- {0x12, 0x00, 0x0f, 0x00, NULL },
- {0x12, 0x82, 0xf0, 0xa0, "1 Coin 6 Credits" },
- {0x12, 0x00, 0x0f, 0x00, NULL },
- {0x12, 0x82, 0xf0, 0x90, "1 Coin 7 Credits" },
- {0x12, 0x00, 0x0f, 0x00, NULL },
-
- {0x13, 0xff, 0xff, 0x4a, NULL },
-
- {0 , 0xfe, 0 , 4 , "Lives" },
- {0x13, 0x01, 0x03, 0x03, "2" },
- {0x13, 0x01, 0x03, 0x02, "3" },
- {0x13, 0x01, 0x03, 0x01, "5" },
- {0x13, 0x01, 0x03, 0x00, "7" },
-
- {0 , 0xfe, 0 , 2 , "Cabinet" },
- {0x13, 0x01, 0x04, 0x00, "Upright" },
- {0x13, 0x01, 0x04, 0x04, "Cocktail" },
-
- {0 , 0xfe, 0 , 4 , "Bonus Life" },
- {0x13, 0x01, 0x18, 0x18, "20K 60K+" },
- {0x13, 0x01, 0x18, 0x10, "30K 70K+" },
- {0x13, 0x01, 0x18, 0x08, "40K 80K+" },
- {0x13, 0x01, 0x18, 0x00, "50K 90K+" },
-
- {0 , 0xfe, 0 , 4 , "Difficulty" },
- {0x13, 0x01, 0x60, 0x60, "Easy" },
- {0x13, 0x01, 0x60, 0x40, "Normal" },
- {0x13, 0x01, 0x60, 0x20, "Difficult" },
- {0x13, 0x01, 0x60, 0x00, "Very Difficult" },
-
- {0 , 0xfe, 0 , 2 , "Demo Sounds" },
- {0x13, 0x01, 0x80, 0x80, "Off" },
- {0x13, 0x01, 0x80, 0x00, "On" },
-
- {0x14, 0xff, 0xff, 0x0f, NULL },
-
- {0 , 0xfe, 0 , 2 , "Flip Screen" },
- {0x14, 0x01, 0x01, 0x01, "Off" },
- {0x14, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2 , "Upright Controls" },
- {0x14, 0x01, 0x02, 0x02, "Single" },
- {0x14, 0x01, 0x02, 0x00, "Dual" },
-
- {0 , 0xfe, 0 , 2 , "Service Mode" },
- {0x14, 0x01, 0x04, 0x04, "Off" },
- {0x14, 0x01, 0x04, 0x00, "On" },
-};
-
-STDDIPINFO(mrgoemon)
-
-static void mrgoemon_bankswitch(INT32 nBank)
-{
- mrgoemon_bank = nBank;
- ZetMapArea(0xf800, 0xffff, 0, Rom + 0x10000 + mrgoemon_bank);
- ZetMapArea(0xf800, 0xffff, 2, Rom + 0x10000 + mrgoemon_bank);
-}
-
-void __fastcall gberet_write(UINT16 address, UINT8 data)
-{
- switch (address)
- {
- case 0xe040:
- case 0xe041:
- case 0xe042:
- return;
-
- case 0xe043:
- gberet_spritebank = data;
- return;
-
- case 0xe044:
- {
- nmi_enable = data & 0x01;
- irq_enable = data & ((game_type & 2) ? 0x02 : 0x04);
-
- flipscreen = data & 0x08;
- }
- return;
-
- case 0xf000:
- {
- // Coin counters
-
- if (game_type == 2) {
- mrgoemon_bankswitch((data >> 5) << 11);
- }
- }
- return;
- case 0xf200:
- soundlatch = data;
- return;
- case 0xf400:
- if (game_type == 1) {// gberetb
- SN76496Write(0, data);
- } else { // gberet
- SN76496Write(0, soundlatch);
- }
- return;
- case 0xf600: // watchdog
- return;
-
- case 0xf900:
- case 0xf901:
- gberetb_scroll = (((address & 1) << 8) | data) + 0x38;
- return;
- }
-
- if (address >= 0xe000 && address <= 0xe03f) {
- Rom[address] = data;
- return;
- }
-
- if (game_type != 1) return;
-
- if (address >= 0xe900 && address <= 0xe9ff) {
- Rom[address] = data;
- return;
- }
-}
-
-UINT8 __fastcall gberet_read(UINT16 address)
-{
- UINT8 nRet = 0xff;
-
- switch (address)
- {
- case 0xf200:
- return DrvDips[1];
-
- case 0xf400:
- return DrvDips[2];
-
- case 0xf600:
- return DrvDips[0];
-
- case 0xf601:
- {
- if (game_type & 1) return DrvDips[3];
-
- for (INT32 i = 0; i < 8; i++) nRet ^= DrvJoy2[i] << i;
-
- return nRet;
- }
-
-
- case 0xf602:
- {
- for (INT32 i = 0; i < 8; i++) nRet ^= DrvJoy1[i] << i;
-
- return nRet;
- }
-
-
- case 0xf603:
- {
- for (INT32 i = 0; i < 8; i++) nRet ^= DrvJoy3[i] << i;
-
- return nRet;
- }
- }
-
- if (address >= 0xe000 && address <= 0xe03f) {
- return Rom[address];
- }
-
- if (game_type != 1) return 0;
-
- if (address >= 0xe900 && address <= 0xe9ff) {
- return Rom[address];
- }
-
- return 0;
-}
-
-static INT32 DrvDoReset()
-{
- DrvReset = 0;
-
- flipscreen = 0;
- nmi_enable = 0;
- irq_enable = 0;
- mrgoemon_bank = 0;
- gberetb_scroll = 0;
- gberet_spritebank = 0;
-
- ZetOpen(0);
- ZetReset();
-
- if (game_type & 2) {
- mrgoemon_bankswitch(0);
- }
-
- ZetClose();
-
- HiscoreReset();
-
- return 0;
-}
-
-
-static INT32 MemIndex()
-{
- UINT8 *Next; Next = Mem;
-
- Rom = Next; Next += 0x14000;
-
- Gfx0 = Next; Next += 0x08000;
- Gfx1 = Next; Next += 0x20000;
-
- Prom = Next; Next += 0x00220;
-
- Palette = (UINT32*)Next; Next += 0x00200 * sizeof(UINT32);
- DrvPalette = (UINT32*)Next; Next += 0x00200 * sizeof(UINT32);
-
- MemEnd = Next;
-
- return 0;
-}
-
-static void DrvCreatePalette()
-{
- UINT32 tmp[0x20];
-
- for (INT32 i = 0; i < 0x20; i++)
- {
- INT32 bit0, bit1, bit2;
- INT32 r, g, b;
-
- bit0 = (Prom[i] >> 0) & 0x01;
- bit1 = (Prom[i] >> 1) & 0x01;
- bit2 = (Prom[i] >> 2) & 0x01;
- r = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
-
- bit0 = (Prom[i] >> 3) & 0x01;
- bit1 = (Prom[i] >> 4) & 0x01;
- bit2 = (Prom[i] >> 5) & 0x01;
- g = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
-
- bit0 = 0;
- bit1 = (Prom[i] >> 6) & 0x01;
- bit2 = (Prom[i] >> 7) & 0x01;
- b = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
-
- tmp[i] = (r << 16) | (g << 8) | b;
- }
-
- Prom += 0x20;
-
- for (INT32 i = 0; i < 0x100; i++)
- {
- UINT8 ctabentry;
-
- ctabentry = (Prom[0x000 + i] & 0x0f) | 0x10;
- Palette[0x000 + i] = tmp[ctabentry];
-
- ctabentry = (Prom[0x100 + i] & 0x0f);
- Palette[0x100 + i] = tmp[ctabentry];
- }
-}
-
-static void Graphics_Decode(INT32 *CharPlanes, INT32 *CharXOffs, INT32 *CharYOffs, INT32 *SprPlanes, INT32 *SprXOffs, INT32 *SprYOffs, INT32 SprMod)
-{
- UINT8 *tmp = (UINT8*)BurnMalloc(0x10000);
- if (tmp == NULL) {
- return;
- }
-
- memcpy (tmp, Gfx0, 0x4000);
-
- GfxDecode(0x200, 4, 8, 8, CharPlanes, CharXOffs, CharYOffs, 0x100, tmp, Gfx0);
-
- memcpy (tmp, Gfx1, 0x10000);
-
- GfxDecode(0x200, 4, 16, 16, SprPlanes, SprXOffs, SprYOffs, SprMod, tmp, Gfx1);
-
- BurnFree (tmp);
-}
-
-static void DrvGfxDecode()
-{
- static INT32 Planes[4] = { STEP4(0,1) };
- static INT32 XOffs[16] = { STEP8(0,4), STEP8(256,4) };
- static INT32 YOffs[16] = { STEP8(0,32), STEP8(512,32) };
-
- Graphics_Decode(Planes, XOffs, YOffs, Planes, XOffs, YOffs, 0x400);
-}
-
-static void BootGfxDecode()
-{
- static INT32 CharPlanes[4] = { STEP4(0,1) };
- static INT32 CharXOffs[8] = { 24, 28, 0, 4, 8, 12, 16, 20 };
- static INT32 CharYOffs[8] = { STEP8(0, 32) };
- static INT32 SpriPlanes[4] = { 0, 0x20000, 0x40000, 0x60000 };
- static INT32 SpriXOffs[16] = { STEP8(0, 1), STEP8(128, 1) };
- static INT32 SpriYOffs[16] = { STEP16(0, 8) };
-
- Graphics_Decode(CharPlanes, CharXOffs, CharYOffs, SpriPlanes, SpriXOffs, SpriYOffs, 0x100);
-}
-
-static INT32 GetRoms()
-{
- char* pRomName;
- struct BurnRomInfo ri;
- UINT8 *Load0 = Rom;
- UINT8 *Load1 = Gfx0;
- UINT8 *Load2 = Gfx1;
- UINT8 *Load3 = Prom;
-
- for (INT32 i = 0; !BurnDrvGetRomName(&pRomName, i, 0); i++) {
-
- BurnDrvGetRomInfo(&ri, i);
-
- if ((ri.nType & 7) == 1) {
- if (BurnLoadRom(Load0, i, 1)) return 1;
- Load0 += ri.nLen;
-
- continue;
- }
-
- if ((ri.nType & 7) == 2) {
- if (BurnLoadRom(Load1, i, 1)) return 1;
- Load1 += ri.nLen;
-
- continue;
- }
-
- if ((ri.nType & 7) == 3) {
- if (BurnLoadRom(Load2, i, 1)) return 1;
- Load2 += ri.nLen;
-
- continue;
- }
-
- if ((ri.nType & 7) == 4) {
- if (BurnLoadRom(Load3, i, 1)) return 1;
- Load3 += ri.nLen;
-
- continue;
- }
- }
-
- if (game_type == 2) {
- memcpy (Rom + 0x10000, Rom + 0x0c000, 0x04000);
- memset (Rom + 0x0c000, 0, 0x04000);
- }
-
- return 0;
-}
-
-static INT32 DrvInit()
-{
- INT32 nLen;
-
- Mem = NULL;
- MemIndex();
- nLen = MemEnd - (UINT8 *)0;
- if ((Mem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(Mem, 0, nLen);
- MemIndex();
-
- if (GetRoms()) return 1;
-
- if (game_type == 1) {
- BootGfxDecode();
- } else {
- DrvGfxDecode();
- }
- DrvCreatePalette();
-
- ZetInit(0);
- ZetOpen(0);
- ZetSetReadHandler(gberet_read);
- ZetSetWriteHandler(gberet_write);
- ZetMapArea(0x0000, 0xbfff, 0, Rom + 0x0000);
- ZetMapArea(0x0000, 0xbfff, 2, Rom + 0x0000);
- ZetMapArea(0xc000, 0xcfff, 0, Rom + 0xc000);
- ZetMapArea(0xc000, 0xcfff, 1, Rom + 0xc000);
- ZetMapArea(0xd000, 0xd0ff, 0, Rom + 0xd000);
- ZetMapArea(0xd000, 0xd0ff, 1, Rom + 0xd000);
- ZetMapArea(0xd100, 0xd1ff, 0, Rom + 0xd100);
- ZetMapArea(0xd100, 0xd1ff, 1, Rom + 0xd100);
- ZetMapArea(0xd200, 0xdfff, 0, Rom + 0xd200);
- ZetMapArea(0xd200, 0xdfff, 1, Rom + 0xd200);
- ZetMapArea(0xd200, 0xdfff, 2, Rom + 0xd200);
- if (game_type == 2) {
- ZetMapArea(0xe800, 0xe8ff, 0, Rom + 0xe800);
- ZetMapArea(0xe800, 0xe8ff, 1, Rom + 0xe800);
- ZetMapArea(0xe800, 0xe8ff, 2, Rom + 0xe800);
- }
- ZetClose();
-
- SN76489AInit(0, 18432000 / 12, 0);
- SN76496SetRoute(0, 1.00, BURN_SND_ROUTE_BOTH);
-
- DrvDoReset();
-
- if (game_type == 0) {
- BurnSetRefreshRate(30.0);
- }
-
- GenericTilesInit();
-
- return 0;
-}
-
-static INT32 DrvExit()
-{
- GenericTilesExit();
-
- ZetExit();
- SN76496Exit();
-
- BurnFree (Rom);
-
- game_type = 0;
-
-
- return 0;
-}
-
-static inline void put_pixel(INT32 x, INT32 y, INT32 src, INT32 color)
-{
- INT32 pxl = color | src;
-
- if (y < 0 || x < 0 || x >= nScreenWidth || y >= nScreenHeight || !Prom[pxl]) return;
-
- pTransDraw[(y * nScreenWidth) + x] = pxl;
-}
-
-static void gberet_draw_16x16(INT32 num, INT32 sx, INT32 sy, INT32 color, INT32 flipx, INT32 flipy)
-{
- color |= 0x100;
- UINT8 *src = Gfx1 + (num << 8);
-
- if (flipy) {
- if (flipx) {
- for (INT32 y = sy + 15; y >= sy; y--) {
- for (INT32 x = sx + 15; x >= sx; x--, src++) {
- put_pixel(x, y, *src, color);
- }
- }
- } else {
- for (INT32 y = sy + 15; y >= sy; y--) {
- for (INT32 x = sx; x < sx + 16; x++, src++) {
- put_pixel(x, y, *src, color);
- }
- }
- }
- } else {
- if (flipx) {
- for (INT32 y = sy; y < sy + 16; y++) {
- for (INT32 x = sx + 15; x >= sx; x--, src++) {
- put_pixel(x, y, *src, color);
- }
- }
- } else {
- for (INT32 y = sy; y < sy + 16; y++) {
- for (INT32 x = sx; x < sx + 16; x++, src++) {
- put_pixel(x, y, *src, color);
- }
- }
- }
- }
-}
-
-static void gberet_draw_sprites()
-{
- UINT8 *sr = Rom + 0xd000 + ((~gberet_spritebank & 8) << 5);
-
- for (INT32 offs = 0; offs < 0xc0; offs += 4)
- {
- if (sr[offs + 3])
- {
- INT32 attr = sr[offs + 1];
- INT32 code = sr[offs + 0] + ((attr & 0x40) << 2);
- INT32 sx = sr[offs + 2] - 2 * (attr & 0x80);
- INT32 sy = sr[offs + 3];
- INT32 color = (attr & 0x0f) << 4;
- INT32 flipx = attr & 0x10;
- INT32 flipy = attr & 0x20;
-
- if (flipscreen)
- {
- sx = 240 - sx;
- sy = 240 - sy;
- flipx = !flipx;
- flipy = !flipy;
- }
-
- sy -= 16;
- sx -= 8;
-
- gberet_draw_16x16(code, sx, sy, color, flipx, flipy);
- }
- }
-}
-
-static void gberetb_draw_sprites()
-{
- for (INT32 offs = 0x100 - 4; offs >= 0; offs -= 4)
- {
- if (Rom[0xe901 + offs])
- {
- INT32 attr = Rom[0xe903 + offs];
- INT32 code = Rom[0xe900 + offs] + ((attr & 0x40) << 2);
- INT32 sx = Rom[0xe902 + offs] - 2 * (attr & 0x80);
- INT32 sy = 240 - Rom[0xe901 + offs];
- INT32 color = (attr & 0x0f) << 4;
- INT32 flipx = attr & 0x10;
- INT32 flipy = attr & 0x20;
-
- if (flipscreen)
- {
- sx = 240 - sx;
- sy = 240 - sy;
- flipx = !flipx;
- flipy = !flipy;
- }
-
- sy -= 16;
- sx -= 8;
-
- gberet_draw_16x16(code, sx, sy, color, flipx, flipy);
- }
- }
-}
-
-static INT32 DrvDraw()
-{
- if (DrvRecalcPal) {
- for (INT32 i = 0; i < 0x200; i++) {
- DrvPalette[i] = BurnHighCol(Palette[i] >> 16, Palette[i] >> 8, Palette[i], 0);
- }
- }
-
- for (INT32 offs = 0x40; offs < 0x7c0; offs++)
- {
- INT32 sx = (offs & 0x3f) << 3;
- INT32 sy = (offs >> 3) & 0xf8;
- INT32 attr = Rom[0xc000 + offs];
- INT32 code = Rom[0xc800 + offs] + ((attr & 0x40) << 2);
- INT32 color = attr & 0x0f;
- INT32 flipy = attr & 0x20;
- INT32 flipx = attr & 0x10;
-
- INT32 scroll = 0;
-
- if (game_type & 1) {
- if (sy > 0x2f && sy < 0xe8) {
- scroll = gberetb_scroll;
- }
- } else {
- scroll = Rom[0xe000 | (sy >> 3)] | (Rom[0xe020 | (sy >> 3)] << 8);
- }
-
- sx -= scroll;
- sx += (sx >> 21) & 0x200;
-
- if (flipscreen) {
- sx = 248 - sx;
- sy = 248 - sy;
- flipx = !flipx;
- flipy = !flipy;
- }
-
- sy -= 16;
- sx -= 8;
-
- if (sx < -7 || sx >= 0x100 || sy < 0 || sy > 223) continue;
-
- if (flipy) {
- if (flipx) {
- Render8x8Tile_FlipXY_Clip(pTransDraw, code, sx, sy, color, 4, 0, Gfx0);
- } else {
- Render8x8Tile_FlipY_Clip(pTransDraw, code, sx, sy, color, 4, 0, Gfx0);
- }
- } else {
- if (flipx) {
- Render8x8Tile_FlipX_Clip(pTransDraw, code, sx, sy, color, 4, 0, Gfx0);
- } else {
- Render8x8Tile_Clip(pTransDraw, code, sx, sy, color, 4, 0, Gfx0);
-
- }
- }
- }
-
- if (game_type & 1) {
- gberetb_draw_sprites();
- } else {
- gberet_draw_sprites();
- }
-
- BurnTransferCopy(DrvPalette);
-
- return 0;
-}
-
-static INT32 DrvFrame()
-{
- INT32 nInterleave = game_type ? 16 : 32;
- INT32 nSoundBufferPos = 0;
-
- if (DrvReset) {
- DrvDoReset();
- }
-
- ZetOpen(0);
-
- INT32 nCyclesDone, nCyclesTotal;
-
- nCyclesDone = 0;
- nCyclesTotal = 3072000 / (nBurnFPS / 256);
-
- for (INT32 i = 0; i < nInterleave; i++)
- {
- INT32 nCyclesSegment = (nCyclesTotal - nCyclesDone) / (nInterleave - i);
-
- nCyclesDone = ZetRun(nCyclesSegment);
-
- if (irq_enable && i == (nInterleave - 1)) {
- ZetSetIRQLine(0, CPU_IRQSTATUS_AUTO);
- }
-
- if (nmi_enable && (i & 1)) {
- ZetNmi();
- }
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen / nInterleave;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- SN76496Update(0, pSoundBuf, nSegmentLength);
- nSoundBufferPos += nSegmentLength;
- }
- }
-
- ZetClose();
-
-// Make sure the buffer is entirely filled.
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
-
- if (nSegmentLength) {
- SN76496Update(0, pSoundBuf, nSegmentLength);
- }
- }
-
- if (pBurnDraw) {
- DrvDraw();
- }
-
- return 0;
-}
-
-static INT32 DrvScan(INT32 nAction,INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin) {
- *pnMin = 0x029675;
- }
-
- if (nAction & ACB_VOLATILE) {
- memset(&ba, 0, sizeof(ba));
-
- ba.Data = Rom + 0xc000;
- ba.nLen = 0x4000;
- ba.szName = "All Ram";
- BurnAcb(&ba);
-
- ZetScan(nAction);
-
- SCAN_VAR(nmi_enable);
- SCAN_VAR(irq_enable);
- SCAN_VAR(flipscreen);
- SCAN_VAR(mrgoemon_bank);
- SCAN_VAR(gberetb_scroll);
- SCAN_VAR(gberet_spritebank);
- SCAN_VAR(soundlatch);
- SN76496Scan(nAction, pnMin);
-
- ZetOpen(0);
- mrgoemon_bankswitch(mrgoemon_bank);
- ZetClose();
- }
-
- return 0;
-}
-
-// Green Beret
-
-static struct BurnRomInfo gberetRomDesc[] = {
- { "577l03.10c", 0x4000, 0xae29e4ff, 1 | BRF_PRG | BRF_ESS }, // 0 Z80 Code
- { "577l02.8c", 0x4000, 0x240836a5, 1 | BRF_PRG | BRF_ESS }, // 1
- { "577l01.7c", 0x4000, 0x41fa3e1f, 1 | BRF_PRG | BRF_ESS }, // 2
-
- { "577l07.3f", 0x4000, 0x4da7bd1b, 2 | BRF_GRA }, // 3 Characters
-
- { "577l06.5e", 0x4000, 0x0f1cb0ca, 3 | BRF_GRA }, // 4 Sprites
- { "577l05.4e", 0x4000, 0x523a8b66, 3 | BRF_GRA }, // 5
- { "577l08.4f", 0x4000, 0x883933a4, 3 | BRF_GRA }, // 6
- { "577l04.3e", 0x4000, 0xccecda4c, 3 | BRF_GRA }, // 7
-
- { "577h09.2f", 0x0020, 0xc15e7c80, 4 | BRF_GRA }, // 8 Color Proms
- { "577h11.6f", 0x0100, 0x2a1a992b, 4 | BRF_GRA }, // 9
- { "577h10.5f", 0x0100, 0xe9de1e53, 4 | BRF_GRA }, // 10
-};
-
-STD_ROM_PICK(gberet)
-STD_ROM_FN(gberet)
-
-struct BurnDriver BurnDrvGberet = {
- "gberet", NULL, NULL, NULL, "1985",
- "Green Beret\0", NULL, "Konami", "GX577",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_KONAMI, GBF_PLATFORM, 0,
- NULL, gberetRomInfo, gberetRomName, NULL, NULL, DrvInputInfo, gberetDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalcPal, 0x200,
- 240, 224, 4, 3
-};
-
-
-// Rush'n Attack (US)
-
-static struct BurnRomInfo rushatckRomDesc[] = {
- { "577h03.10c", 0x4000, 0x4d276b52, 1 | BRF_PRG | BRF_ESS }, // 0 Z80 Code
- { "577h02.8c", 0x4000, 0xb5802806, 1 | BRF_PRG | BRF_ESS }, // 1
- { "577h01.7c", 0x4000, 0xda7c8f3d, 1 | BRF_PRG | BRF_ESS }, // 2
-
- { "577h07.3f", 0x4000, 0x03f9815f, 2 | BRF_GRA }, // 3 Characters
-
- { "577l06.5e", 0x4000, 0x0f1cb0ca, 3 | BRF_GRA }, // 4 Sprites
- { "577h05.4e", 0x4000, 0x9d028e8f, 3 | BRF_GRA }, // 5
- { "577l08.4f", 0x4000, 0x883933a4, 3 | BRF_GRA }, // 6
- { "577l04.3e", 0x4000, 0xccecda4c, 3 | BRF_GRA }, // 7
-
- { "577h09.2f", 0x0020, 0xc15e7c80, 4 | BRF_GRA }, // 8 Color Proms
- { "577h11.6f", 0x0100, 0x2a1a992b, 4 | BRF_GRA }, // 9
- { "577h10.5f", 0x0100, 0xe9de1e53, 4 | BRF_GRA }, // 10
-};
-
-STD_ROM_PICK(rushatck)
-STD_ROM_FN(rushatck)
-
-struct BurnDriver BurnDrvRushatck = {
- "rushatck", "gberet", NULL, NULL, "1985",
- "Rush'n Attack (US)\0", NULL, "Konami", "GX577",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_KONAMI, GBF_PLATFORM, 0,
- NULL, rushatckRomInfo, rushatckRomName, NULL, NULL, DrvInputInfo, gberetDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalcPal, 0x200,
- 240, 224, 4, 3
-};
-
-
-// Green Beret (bootleg)
-
-static struct BurnRomInfo gberetbRomDesc[] = {
- { "2-ic82.10g", 0x8000, 0x6d6fb494, 1 | BRF_PRG | BRF_ESS }, // 0 Z80 Code
- { "3-ic81.10f", 0x4000, 0xf1520a0a, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "1-ic92.12c", 0x4000, 0xb0189c87, 2 | BRF_GRA }, // 2 Characters
-
- { "7-1c8.2b", 0x4000, 0x86334522, 3 | BRF_GRA }, // 3 Sprites
- { "6-ic9.2c", 0x4000, 0xbda50d3e, 3 | BRF_GRA }, // 4
- { "5-ic10.2d", 0x4000, 0x6a7b3881, 3 | BRF_GRA }, // 5
- { "4-ic11.2e", 0x4000, 0x3fb186c9, 3 | BRF_GRA }, // 6
-
- { "577h09", 0x0020, 0xc15e7c80, 4 | BRF_GRA }, // 7 Color Proms
- { "577h11.6f", 0x0100, 0x2a1a992b, 4 | BRF_GRA }, // 8
- { "577h10.5f", 0x0100, 0xe9de1e53, 4 | BRF_GRA }, // 9
-
- { "pal16r6_ic35.5h", 0x0104, 0xbd76fb53, BRF_GRA },
-};
-
-STD_ROM_PICK(gberetb)
-STD_ROM_FN(gberetb)
-
-static INT32 gberetbInit()
-{
- game_type = 1;
-
- return DrvInit();
-}
-
-struct BurnDriver BurnDrvGberetb = {
- "gberetb", "gberet", NULL, NULL, "1985",
- "Green Beret (bootleg)\0", NULL, "bootleg", "GX577",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_KONAMI, GBF_PLATFORM, 0,
- NULL, gberetbRomInfo, gberetbRomName, NULL, NULL, gberetbInputInfo, gberetbDIPInfo,
- gberetbInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalcPal, 0x200,
- 240, 224, 4, 3
-};
-
-
-// Mr. Goemon (Japan)
-
-static struct BurnRomInfo mrgoemonRomDesc[] = {
- { "621d01.10c", 0x8000, 0xb2219c56, 1 | BRF_PRG | BRF_ESS }, // 0 Z80 Code
- { "621d02.12c", 0x8000, 0xc3337a97, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "621a05.6d", 0x4000, 0xf0a6dfc5, 2 | BRF_GRA }, // 2 Characters
-
- { "621d03.4d", 0x8000, 0x66f2b973, 3 | BRF_GRA }, // 3 Sprites
- { "621d04.5d", 0x8000, 0x47df6301, 3 | BRF_GRA }, // 4
-
- { "621a06.5f", 0x0020, 0x7c90de5f, 4 | BRF_GRA }, // 5 Color Proms
- { "621a08.7f", 0x0100, 0x2fb244dd, 4 | BRF_GRA }, // 6
- { "621a07.6f", 0x0100, 0x3980acdc, 4 | BRF_GRA }, // 7
-};
-
-STD_ROM_PICK(mrgoemon)
-STD_ROM_FN(mrgoemon)
-
-static INT32 mrgoemonInit()
-{
- game_type = 2;
-
- return DrvInit();
-}
-
-struct BurnDriver BurnDrvMrgoemon = {
- "mrgoemon", NULL, NULL, NULL, "1986",
- "Mr. Goemon (Japan)\0", NULL, "Konami", "Miscellaneous",
- L"Mr. Goemon \u4E94\u53F3\u885B\u9580 (Japan)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_KONAMI, GBF_PLATFORM, 0,
- NULL, mrgoemonRomInfo, mrgoemonRomName, NULL, NULL, DrvInputInfo, mrgoemonDIPInfo,
- mrgoemonInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalcPal, 0x200,
- 240, 224, 4, 3
-};
-
diff --git a/jan/src/burn/drv/konami/d_gbusters.cpp b/jan/src/burn/drv/konami/d_gbusters.cpp
deleted file mode 100644
index 6cbd4dee9..000000000
--- a/jan/src/burn/drv/konami/d_gbusters.cpp
+++ /dev/null
@@ -1,680 +0,0 @@
-// FB Alpha Gang Busters driver module
-// Based on MAME by Manuel Abadia
-
-#include "tiles_generic.h"
-#include "z80_intf.h"
-#include "konami_intf.h"
-#include "konamiic.h"
-#include "burn_ym2151.h"
-#include "k007232.h"
-
-static UINT8 *AllMem;
-static UINT8 *MemEnd;
-static UINT8 *AllRam;
-static UINT8 *RamEnd;
-static UINT8 *DrvKonROM;
-static UINT8 *DrvZ80ROM;
-static UINT8 *DrvGfxROM0;
-static UINT8 *DrvGfxROM1;
-static UINT8 *DrvGfxROMExp0;
-static UINT8 *DrvGfxROMExp1;
-static UINT8 *DrvSndROM;
-static UINT8 *DrvBankRAM;
-static UINT8 *DrvKonRAM;
-static UINT8 *DrvPalRAM;
-static UINT8 *DrvZ80RAM;
-static UINT32 *DrvPalette;
-static UINT8 DrvRecalc;
-
-static UINT8 *soundlatch;
-static UINT8 *nDrvRamBank;
-static UINT8 *nDrvKonamiBank;
-
-static UINT8 DrvJoy1[8];
-static UINT8 DrvJoy2[8];
-static UINT8 DrvJoy3[8];
-static UINT8 DrvDips[3];
-static UINT8 DrvInputs[3];
-static UINT8 DrvReset;
-
-static struct BurnInputInfo GbustersInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy1 + 0, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 3, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy2 + 2, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy2 + 3, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy2 + 0, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy2 + 1, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy2 + 4, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy2 + 5, "p1 fire 2" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy1 + 1, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy1 + 4, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvJoy3 + 2, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy3 + 3, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy3 + 0, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy3 + 1, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy3 + 4, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy3 + 5, "p2 fire 2" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service", BIT_DIGITAL, DrvJoy1 + 2, "service"},
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip" },
- {"Dip C", BIT_DIPSWITCH, DrvDips + 2, "dip" },
-};
-
-STDINPUTINFO(Gbusters)
-
-static struct BurnDIPInfo GbustersDIPList[]=
-{
- {0x12, 0xff, 0xff, 0xff, NULL },
- {0x13, 0xff, 0xff, 0x56, NULL },
- {0x14, 0xff, 0xff, 0xff, NULL },
-
- {0 , 0xfe, 0 , 16, "Coin A" },
- {0x12, 0x01, 0x0f, 0x02, "4 Coins 1 Credit" },
- {0x12, 0x01, 0x0f, 0x05, "3 Coins 1 Credit" },
- {0x12, 0x01, 0x0f, 0x08, "2 Coins 1 Credit" },
- {0x12, 0x01, 0x0f, 0x04, "3 Coins 2 Credits" },
- {0x12, 0x01, 0x0f, 0x01, "4 Coins 3 Credits" },
- {0x12, 0x01, 0x0f, 0x0f, "1 Coin 1 Credit" },
- {0x12, 0x01, 0x0f, 0x03, "3 Coins 4 Credits" },
- {0x12, 0x01, 0x0f, 0x07, "2 Coins 3 Credits" },
- {0x12, 0x01, 0x0f, 0x0e, "1 Coin 2 Credits" },
- {0x12, 0x01, 0x0f, 0x06, "2 Coins 5 Credits" },
- {0x12, 0x01, 0x0f, 0x0d, "1 Coin 3 Credits" },
- {0x12, 0x01, 0x0f, 0x0c, "1 Coin 4 Credits" },
- {0x12, 0x01, 0x0f, 0x0b, "1 Coin 5 Credits" },
- {0x12, 0x01, 0x0f, 0x0a, "1 Coin 6 Credits" },
- {0x12, 0x01, 0x0f, 0x09, "1 Coin 7 Credits" },
- {0x12, 0x01, 0x0f, 0x00, "Free Play" },
-
- {0 , 0xfe, 0 , 15, "Coin B" },
- {0x12, 0x01, 0xf0, 0x20, "4 Coins 1 Credit" },
- {0x12, 0x01, 0xf0, 0x50, "3 Coins 1 Credit" },
- {0x12, 0x01, 0xf0, 0x80, "2 Coins 1 Credit" },
- {0x12, 0x01, 0xf0, 0x40, "3 Coins 2 Credits" },
- {0x12, 0x01, 0xf0, 0x10, "4 Coins 3 Credits" },
- {0x12, 0x01, 0xf0, 0xf0, "1 Coin 1 Credit" },
- {0x12, 0x01, 0xf0, 0x30, "3 Coins 4 Credits" },
- {0x12, 0x01, 0xf0, 0x70, "2 Coins 3 Credits" },
- {0x12, 0x01, 0xf0, 0xe0, "1 Coin 2 Credits" },
- {0x12, 0x01, 0xf0, 0x60, "2 Coins 5 Credits" },
- {0x12, 0x01, 0xf0, 0xd0, "1 Coin 3 Credits" },
- {0x12, 0x01, 0xf0, 0xc0, "1 Coin 4 Credits" },
- {0x12, 0x01, 0xf0, 0xb0, "1 Coin 5 Credits" },
- {0x12, 0x01, 0xf0, 0xa0, "1 Coin 6 Credits" },
- {0x12, 0x01, 0xf0, 0x90, "1 Coin 7 Credits" },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x13, 0x01, 0x03, 0x03, "2" },
- {0x13, 0x01, 0x03, 0x02, "3" },
- {0x13, 0x01, 0x03, 0x01, "5" },
- {0x13, 0x01, 0x03, 0x00, "7" },
-
- {0 , 0xfe, 0 , 2, "Bullets" },
- {0x13, 0x01, 0x04, 0x04, "50" },
- {0x13, 0x01, 0x04, 0x00, "60" },
-
- {0 , 0xfe, 0 , 4, "Bonus Life" },
- {0x13, 0x01, 0x18, 0x18, "50k, 200k & 400k" },
- {0x13, 0x01, 0x18, 0x10, "70k, 250k & 500k" },
- {0x13, 0x01, 0x18, 0x08, "50k" },
- {0x13, 0x01, 0x18, 0x00, "70k" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x13, 0x01, 0x60, 0x60, "Easy" },
- {0x13, 0x01, 0x60, 0x40, "Normal" },
- {0x13, 0x01, 0x60, 0x20, "Difficult" },
- {0x13, 0x01, 0x60, 0x00, "Very Difficult" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x13, 0x01, 0x80, 0x80, "Off" },
- {0x13, 0x01, 0x80, 0x00, "On" },
-
-// {0 , 0xfe, 0 , 2, "Flip Screen" },
-// {0x14, 0x01, 0x01, 0x01, "Off" },
-// {0x14, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x14, 0x01, 0x04, 0x04, "Off" },
- {0x14, 0x01, 0x04, 0x00, "On" },
-};
-
-STDDIPINFO(Gbusters)
-
-static void set_ram_bank(INT32 data)
-{
- nDrvRamBank[0] = data;
-
- if (~data & 0x01) {
- konamiMapMemory(DrvPalRAM, 0x5800, 0x5fff, MAP_RAM);
- } else {
- konamiMapMemory(DrvBankRAM, 0x5800, 0x5fff, MAP_RAM);
- }
-}
-
-void gbusters_main_write(UINT16 address, UINT8 data)
-{
- switch (address)
- {
- case 0x1f80:
- set_ram_bank(data);
- return;
-
- case 0x1f84:
- *soundlatch = data;
- return;
-
- case 0x1f88:
- ZetSetVector(0xff);
- ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
-
- return;
-
- case 0x1f8c:
- // watchdog
- return;
-
- case 0x1f98:
- K052109RMRDLine = data & 0x01;
- return;
- }
-
- if ((address & 0xc000) == 0x0000) {
- K052109_051960_w(address & 0x3fff, data);
- return;
- }
-}
-
-UINT8 gbusters_main_read(UINT16 address)
-{
- switch (address)
- {
- case 0x1f90:
- return DrvInputs[0];
-
- case 0x1f91:
- return DrvInputs[1];
-
- case 0x1f92:
- return DrvInputs[2];
-
- case 0x1f93:
- return DrvDips[2];
-
- case 0x1f94:
- return DrvDips[0];
-
- case 0x1f95:
- return DrvDips[1];
- }
-
- if ((address & 0xc000) == 0x0000) {
- return K052109_051960_r(address & 0x3fff);
- }
-
- return 0;
-}
-
-static void gbusters_snd_bankswitch_w(INT32 data)
-{
- INT32 bank_B = ((data >> 2) & 0x01);
- INT32 bank_A = ((data) & 0x01);
- k007232_set_bank(0, bank_A, bank_B );
-}
-
-void __fastcall gbusters_sound_write(UINT16 address, UINT8 data)
-{
- if ((address & 0xfff0) == 0xb000) {
- K007232WriteReg(0, address & 0x0f, data);
- return;
- }
-
- switch (address)
- {
- case 0xc000:
- BurnYM2151SelectRegister(data);
- return;
-
- case 0xc001:
- BurnYM2151WriteRegister(data);
- return;
-
- case 0xf000:
- gbusters_snd_bankswitch_w(data);
- return;
- }
-}
-
-UINT8 __fastcall gbusters_sound_read(UINT16 address)
-{
- if ((address & 0xfff0) == 0xb000) {
- return K007232ReadReg(0, address & 0x0f);
- }
-
- switch (address)
- {
- case 0xa000:
- ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
- return *soundlatch;
-
- case 0xc001:
- return BurnYM2151ReadStatus();
- }
-
- return 0;
-}
-
-static void gbusters_set_lines(INT32 lines)
-{
- INT32 nBank = 0x10000 + (lines & 0x0f) * 0x2000;
-
- nDrvKonamiBank[1] = lines;
-
- konamiMapMemory(DrvKonROM + nBank, 0x6000, 0x7fff, MAP_ROM);
-}
-
-static void DrvK007232VolCallback(INT32 v)
-{
- K007232SetVolume(0, 0, (v >> 0x4) * 0x11, 0);
- K007232SetVolume(0, 1, 0, (v & 0x0f) * 0x11);
-}
-
-static void K052109Callback(INT32 layer, INT32 bank, INT32 *code, INT32 *color, INT32 *, INT32 *)
-{
- INT32 layer_colorbase[3] = { 0x30, 0x00, 0x10 };
-
- *code |= ((*color & 0x0d) << 8) | ((*color & 0x10) << 5) | (bank << 12);
- *code &= 0x3fff;
- *color = layer_colorbase[layer] + ((*color & 0xe0) >> 5);
-}
-
-static void K051960Callback(INT32 *code, INT32 *color, INT32 *priority, INT32 *)
-{
- *priority = (*color & 0x30) >> 4;
- *color = 0x20 + (*color & 0x0f);
- *code &= 0x0fff;
-}
-
-static INT32 DrvDoReset()
-{
- DrvReset = 0;
-
- memset (AllRam, 0, RamEnd - AllRam);
-
- konamiOpen(0);
- konamiReset();
- konamiClose();
-
- ZetOpen(0);
- ZetReset();
- ZetClose();
-
- BurnYM2151Reset();
-
- KonamiICReset();
-
- return 0;
-}
-
-static INT32 MemIndex()
-{
- UINT8 *Next; Next = AllMem;
-
- DrvKonROM = Next; Next += 0x030000;
- DrvZ80ROM = Next; Next += 0x010000;
-
- DrvGfxROM0 = Next; Next += 0x080000;
- DrvGfxROM1 = Next; Next += 0x080000;
- DrvGfxROMExp0 = Next; Next += 0x100000;
- DrvGfxROMExp1 = Next; Next += 0x100000;
-
- DrvSndROM = Next; Next += 0x040000;
-
- DrvPalette = (UINT32*)Next; Next += 0x400 * sizeof(UINT32);
-
- AllRam = Next;
-
- DrvBankRAM = Next; Next += 0x000800;
- DrvKonRAM = Next; Next += 0x001800;
- DrvPalRAM = Next; Next += 0x000800;
-
- DrvZ80RAM = Next; Next += 0x000800;
-
- soundlatch = Next; Next += 0x000001;
-
- nDrvRamBank = Next; Next += 0x000001;
- nDrvKonamiBank = Next; Next += 0x000002;
-
- RamEnd = Next;
- MemEnd = Next;
-
- return 0;
-}
-
-static INT32 DrvInit()
-{
- GenericTilesInit();
-
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(DrvKonROM + 0x000000, 0, 1)) return 1;
- if (BurnLoadRom(DrvKonROM + 0x020000, 1, 1)) return 1;
- memcpy (DrvKonROM + 0x10000, DrvKonROM + 0x00000, 0x08000);
- memcpy (DrvKonROM + 0x18000, DrvKonROM + 0x00000, 0x08000);
-
- if (BurnLoadRom(DrvZ80ROM + 0x000000, 2, 1)) return 1;
-
- if (BurnLoadRomExt(DrvGfxROM0 + 0x000000, 3, 4, 2)) return 1;
- if (BurnLoadRomExt(DrvGfxROM0 + 0x000002, 4, 4, 2)) return 1;
-
- if (BurnLoadRomExt(DrvGfxROM1 + 0x000000, 5, 4, 2)) return 1;
- if (BurnLoadRomExt(DrvGfxROM1 + 0x000002, 6, 4, 2)) return 1;
-
- if (BurnLoadRom(DrvSndROM + 0x000000, 7, 1)) return 1;
-
- K052109GfxDecode(DrvGfxROM0, DrvGfxROMExp0, 0x080000);
- K051960GfxDecode(DrvGfxROM1, DrvGfxROMExp1, 0x080000);
- }
-
- konamiInit(0);
- konamiOpen(0);
- konamiMapMemory(DrvKonRAM, 0x4000, 0x57ff, MAP_RAM);
- konamiMapMemory(DrvBankRAM, 0x5800, 0x5fff, MAP_RAM);
- konamiMapMemory(DrvKonROM + 0x10000, 0x6000, 0x7fff, MAP_ROM);
- konamiMapMemory(DrvKonROM + 0x08000, 0x8000, 0xffff, MAP_ROM);
- konamiSetWriteHandler(gbusters_main_write);
- konamiSetReadHandler(gbusters_main_read);
- konamiSetlinesCallback(gbusters_set_lines);
- konamiClose();
-
- ZetInit(0);
- ZetOpen(0);
- ZetMapArea(0x0000, 0x7fff, 0, DrvZ80ROM);
- ZetMapArea(0x0000, 0x7fff, 2, DrvZ80ROM);
- ZetMapArea(0x8000, 0x87ff, 0, DrvZ80RAM);
- ZetMapArea(0x8000, 0x87ff, 1, DrvZ80RAM);
- ZetMapArea(0x8000, 0x87ff, 2, DrvZ80RAM);
- ZetSetWriteHandler(gbusters_sound_write);
- ZetSetReadHandler(gbusters_sound_read);
- ZetClose();
-
- BurnYM2151Init(3579545);
- BurnYM2151SetAllRoutes(0.60, BURN_SND_ROUTE_BOTH);
-
- K007232Init(0, 3579545, DrvSndROM, 0x40000);
- K007232SetPortWriteHandler(0, DrvK007232VolCallback);
- K007232PCMSetAllRoutes(0, 0.30, BURN_SND_ROUTE_BOTH);
-
- K052109Init(DrvGfxROM0, DrvGfxROMExp0, 0x7ffff);
- K052109SetCallback(K052109Callback);
- K052109AdjustScroll(8, 0);
-
- K051960Init(DrvGfxROM1, DrvGfxROMExp1, 0x7ffff);
- K051960SetCallback(K051960Callback);
- K051960SetSpriteOffset(8, 0);
-
- DrvDoReset();
-
- return 0;
-}
-
-static INT32 DrvExit()
-{
- GenericTilesExit();
-
- KonamiICExit();
-
- konamiExit();
- ZetExit();
-
- K007232Exit();
- BurnYM2151Exit();
-
- BurnFree (AllMem);
-
- return 0;
-}
-
-static INT32 DrvDraw()
-{
- KonamiRecalcPalette(DrvPalRAM, DrvPalette, 0x800);
-
- K052109UpdateScroll();
-
- if (nDrvRamBank[0] & 0x08)
- {
-
- if (nBurnLayer & 1) K052109RenderLayer(2, K052109_OPAQUE, 0);
- if (nSpriteEnable & 1) K051960SpritesRender(2, 2);
- if (nBurnLayer & 2) K052109RenderLayer(1, 0, 0);
- if (nSpriteEnable & 2) K051960SpritesRender(0, 0);
- if (nBurnLayer & 4) K052109RenderLayer(0, 0, 0);
-
- }
- else
- {
- if (nBurnLayer & 1) K052109RenderLayer(1, K052109_OPAQUE, 0);
- if (nSpriteEnable & 1) K051960SpritesRender(2, 2);
- if (nBurnLayer & 2) K052109RenderLayer(2, 0, 0);
- if (nSpriteEnable & 2) K051960SpritesRender(0, 0);
- if (nBurnLayer & 4) K052109RenderLayer(0, 0, 0);
- }
-
- KonamiBlendCopy(DrvPalette);
-
- return 0;
-}
-
-static INT32 DrvFrame()
-{
- if (DrvReset) {
- DrvDoReset();
- }
-
- {
- memset (DrvInputs, 0xff, 3);
- for (INT32 i = 0; i < 8; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- DrvInputs[2] ^= (DrvJoy3[i] & 1) << i;
- }
-
- // Clear opposites
- if ((DrvInputs[1] & 0x03) == 0) DrvInputs[1] |= 0x03;
- if ((DrvInputs[1] & 0x0c) == 0) DrvInputs[1] |= 0x0c;
- if ((DrvInputs[2] & 0x03) == 0) DrvInputs[2] |= 0x03;
- if ((DrvInputs[2] & 0x0c) == 0) DrvInputs[2] |= 0x0c;
- }
-
- konamiNewFrame();
- ZetNewFrame();
-
- INT32 nSoundBufferPos = 0;
- INT32 nInterleave = nBurnSoundLen;
- INT32 nCyclesTotal[2] = { 3000000 / 60, 3579545 / 60 };
- INT32 nCyclesDone[2] = { 0, 0 };
-
- ZetOpen(0);
- konamiOpen(0);
-
- for (INT32 i = 0; i < nInterleave; i++)
- {
- INT32 nSegment = (nCyclesTotal[0] / nInterleave) * (i + 1);
-
- nCyclesDone[0] += konamiRun(nSegment - nCyclesDone[0]);
-
- nSegment = (nCyclesTotal[1] / nInterleave) * (i + 1);
-
- nCyclesDone[1] += ZetRun(nSegment - nCyclesDone[1]);
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen / nInterleave;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- BurnYM2151Render(pSoundBuf, nSegmentLength);
- K007232Update(0, pSoundBuf, nSegmentLength);
- nSoundBufferPos += nSegmentLength;
- }
- }
-
- if (K052109_irq_enabled) konamiSetIrqLine(KONAMI_IRQ_LINE, CPU_IRQSTATUS_AUTO);
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
- if (nSegmentLength) {
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- BurnYM2151Render(pSoundBuf, nSegmentLength);
- K007232Update(0, pSoundBuf, nSegmentLength);
- }
- }
-
- konamiClose();
- ZetClose();
-
- if (pBurnDraw) {
- DrvDraw();
- }
-
- return 0;
-}
-
-static INT32 DrvScan(INT32 nAction,INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin) {
- *pnMin = 0x029704;
- }
-
- if (nAction & ACB_VOLATILE) {
- memset(&ba, 0, sizeof(ba));
-
- ba.Data = AllRam;
- ba.nLen = RamEnd - AllRam;
- ba.szName = "All Ram";
- BurnAcb(&ba);
-
- konamiCpuScan(nAction);
- ZetScan(nAction);
-
- BurnYM2151Scan(nAction);
- K007232Scan(nAction, pnMin);
-
- KonamiICScan(nAction);
- }
-
- if (nAction & ACB_WRITE) {
- konamiOpen(0);
- set_ram_bank(nDrvRamBank[0]);
- gbusters_set_lines(nDrvKonamiBank[1]);
- konamiClose();
- }
-
- return 0;
-}
-
-
-// Gang Busters (set 1)
-
-static struct BurnRomInfo gbustersRomDesc[] = {
- { "878n02.k13", 0x10000, 0x51697aaa, 1 | BRF_PRG | BRF_ESS }, // 0 Konami Custom Code
- { "878j03.k15", 0x10000, 0x3943a065, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "878h01.f8", 0x08000, 0x96feafaa, 2 | BRF_PRG | BRF_ESS }, // 2 Z80 Code
-
- { "878c07.h27", 0x40000, 0xeeed912c, 3 | BRF_GRA }, // 3 Background Tiles
- { "878c08.k27", 0x40000, 0x4d14626d, 3 | BRF_GRA }, // 4
-
- { "878c05.h5", 0x40000, 0x01f4aea5, 4 | BRF_GRA }, // 5 Sprites
- { "878c06.k5", 0x40000, 0xedfaaaaf, 4 | BRF_GRA }, // 6
-
- { "878c04.d5", 0x40000, 0x9e982d1c, 5 | BRF_SND }, // 7 K007232 Samples
-
- { "878a09.f20", 0x00100, 0xe2d09a1b, 6 | BRF_OPT }, // 8 Proms
-};
-
-STD_ROM_PICK(gbusters)
-STD_ROM_FN(gbusters)
-
-struct BurnDriver BurnDrvGbusters = {
- "gbusters", NULL, NULL, NULL, "1988",
- "Gang Busters (set 1)\0", NULL, "Konami", "GX878",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED, 2, HARDWARE_PREFIX_KONAMI, GBF_SHOOT, 0,
- NULL, gbustersRomInfo, gbustersRomName, NULL, NULL, GbustersInputInfo, GbustersDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x400,
- 224, 288, 3, 4
-};
-
-
-// Gang Busters (set 2)
-
-static struct BurnRomInfo gbusteraRomDesc[] = {
- { "878_02.k13", 0x10000, 0x57178414, 1 | BRF_PRG | BRF_ESS }, // 0 Konami Custom Code
- { "878_03.k15", 0x10000, 0x6c59e660, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "878h01.f8", 0x08000, 0x96feafaa, 2 | BRF_PRG | BRF_ESS }, // 2 Z80 Code
-
- { "878c07.h27", 0x40000, 0xeeed912c, 3 | BRF_GRA }, // 3 Background Tiles
- { "878c08.k27", 0x40000, 0x4d14626d, 3 | BRF_GRA }, // 4
-
- { "878c05.h5", 0x40000, 0x01f4aea5, 4 | BRF_GRA }, // 5 Sprites
- { "878c06.k5", 0x40000, 0xedfaaaaf, 4 | BRF_GRA }, // 6
-
- { "878c04.d5", 0x40000, 0x9e982d1c, 5 | BRF_SND }, // 7 K007232 Samples
-
- { "878a09.f20", 0x00100, 0xe2d09a1b, 6 | BRF_OPT }, // 8 Proms
-};
-
-STD_ROM_PICK(gbustera)
-STD_ROM_FN(gbustera)
-
-struct BurnDriver BurnDrvGbustera = {
- "gbustersa", "gbusters", NULL, NULL, "1988",
- "Gang Busters (set 2)\0", NULL, "Konami", "GX878",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED, 2, HARDWARE_PREFIX_KONAMI, GBF_SHOOT, 0,
- NULL, gbusteraRomInfo, gbusteraRomName, NULL, NULL, GbustersInputInfo, GbustersDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x400,
- 224, 288, 3, 4
-};
-
-
-// Crazy Cop (Japan)
-
-static struct BurnRomInfo crazycopRomDesc[] = {
- { "878m02.k13", 0x10000, 0x9c1c9f52, 1 | BRF_PRG | BRF_ESS }, // 0 Konami Custom Code
- { "878j03.k15", 0x10000, 0x3943a065, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "878h01.f8", 0x08000, 0x96feafaa, 2 | BRF_PRG | BRF_ESS }, // 2 Z80 Code
-
- { "878c07.h27", 0x40000, 0xeeed912c, 3 | BRF_GRA }, // 3 Background Tiles
- { "878c08.k27", 0x40000, 0x4d14626d, 3 | BRF_GRA }, // 4
-
- { "878c05.h5", 0x40000, 0x01f4aea5, 4 | BRF_GRA }, // 5 Sprites
- { "878c06.k5", 0x40000, 0xedfaaaaf, 4 | BRF_GRA }, // 6
-
- { "878c04.d5", 0x40000, 0x9e982d1c, 5 | BRF_SND }, // 7 K007232 Samples
-
- { "878a09.f20", 0x00100, 0xe2d09a1b, 6 | BRF_OPT }, // 8 Proms
-};
-
-STD_ROM_PICK(crazycop)
-STD_ROM_FN(crazycop)
-
-struct BurnDriver BurnDrvCrazycop = {
- "crazycop", "gbusters", NULL, NULL, "1988",
- "Crazy Cop (Japan)\0", NULL, "Konami", "GX878",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED, 2, HARDWARE_PREFIX_KONAMI, GBF_SHOOT, 0,
- NULL, crazycopRomInfo, crazycopRomName, NULL, NULL, GbustersInputInfo, GbustersDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x400,
- 224, 288, 3, 4
-};
diff --git a/jan/src/burn/drv/konami/d_gijoe.cpp b/jan/src/burn/drv/konami/d_gijoe.cpp
deleted file mode 100644
index 196737d56..000000000
--- a/jan/src/burn/drv/konami/d_gijoe.cpp
+++ /dev/null
@@ -1,928 +0,0 @@
-// FB Alpha GI Joe driver module
-// Based on MAME driver by Olivier Galibert
-
-#include "tiles_generic.h"
-#include "m68000_intf.h"
-#include "z80_intf.h"
-#include "konamiic.h"
-#include "burn_ym2151.h"
-#include "k054539.h"
-#include "eeprom.h"
-
-static UINT8 *AllMem;
-static UINT8 *Drv68KROM;
-static UINT8 *DrvZ80ROM;
-static UINT8 *DrvGfxROM0;
-static UINT8 *DrvGfxROM1;
-static UINT8 *DrvGfxROMExp0;
-static UINT8 *DrvGfxROMExp1;
-static UINT8 *DrvSndROM;
-static UINT8 *DrvEeprom;
-static UINT8 *AllRam;
-static UINT8 *Drv68KRAM;
-static UINT8 *DrvZ80RAM;
-static UINT8 *DrvSprRAM;
-static UINT8 *DrvPalRAM;
-static UINT8 *RamEnd;
-static UINT8 *MemEnd;
-
-static UINT8 *soundlatch;
-static UINT8 *soundlatch2;
-
-static UINT32 *DrvPalette;
-static UINT8 DrvRecalc;
-
-static INT32 layerpri[4];
-static INT32 layer_colorbase[4];
-static INT32 sprite_colorbase;
-
-static UINT8 DrvJoy1[16];
-static UINT8 DrvJoy2[16];
-static UINT8 DrvJoy3[16];
-static UINT8 DrvJoy4[16];
-static UINT8 DrvReset;
-static UINT16 DrvInputs[4];
-static UINT8 DrvDips[4];
-
-static INT32 avac_bits[4];
-static INT32 avac_occupancy[4];
-static INT32 avac_vrc;
-
-static INT32 sound_nmi_enable;
-static INT32 irq6_timer;
-static UINT16 control_data;
-
-static struct BurnInputInfo GijoeInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy2 + 0, "p1 coin"},
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 0, "p1 start"},
- {"P1 Up", BIT_DIGITAL, DrvJoy3 + 2, "p1 up"},
- {"P1 Down", BIT_DIGITAL, DrvJoy3 + 3, "p1 down"},
- {"P1 Left", BIT_DIGITAL, DrvJoy3 + 0, "p1 left"},
- {"P1 Right", BIT_DIGITAL, DrvJoy3 + 1, "p1 right"},
- {"P1 Button 1", BIT_DIGITAL, DrvJoy3 + 4, "p1 fire 1"},
- {"P1 Button 2", BIT_DIGITAL, DrvJoy3 + 5, "p1 fire 2"},
- {"P1 Button 3", BIT_DIGITAL, DrvJoy3 + 6, "p1 fire 3"},
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy2 + 1, "p2 coin"},
- {"P2 Start", BIT_DIGITAL, DrvJoy1 + 1, "p2 start"},
- {"P2 Up", BIT_DIGITAL, DrvJoy3 + 10, "p2 up"},
- {"P2 Down", BIT_DIGITAL, DrvJoy3 + 11, "p2 down"},
- {"P2 Left", BIT_DIGITAL, DrvJoy3 + 8, "p2 left"},
- {"P2 Right", BIT_DIGITAL, DrvJoy3 + 9, "p2 right"},
- {"P2 Button 1", BIT_DIGITAL, DrvJoy3 + 12, "p2 fire 1"},
- {"P2 Button 2", BIT_DIGITAL, DrvJoy3 + 13, "p2 fire 2"},
- {"P2 Button 3", BIT_DIGITAL, DrvJoy3 + 14, "p2 fire 3"},
-
- {"P3 Coin", BIT_DIGITAL, DrvJoy2 + 2, "p3 coin"},
- {"P3 Start", BIT_DIGITAL, DrvJoy1 + 2, "p3 start"},
- {"P3 Up", BIT_DIGITAL, DrvJoy4 + 2, "p3 up"},
- {"P3 Down", BIT_DIGITAL, DrvJoy4 + 3, "p3 down"},
- {"P3 Left", BIT_DIGITAL, DrvJoy4 + 0, "p3 left"},
- {"P3 Right", BIT_DIGITAL, DrvJoy4 + 1, "p3 right"},
- {"P3 Button 1", BIT_DIGITAL, DrvJoy4 + 4, "p3 fire 1"},
- {"P3 Button 2", BIT_DIGITAL, DrvJoy4 + 5, "p3 fire 2"},
- {"P3 Button 3", BIT_DIGITAL, DrvJoy4 + 6, "p3 fire 3"},
-
- {"P4 Coin", BIT_DIGITAL, DrvJoy2 + 3, "p4 coin"},
- {"P4 Start", BIT_DIGITAL, DrvJoy1 + 3, "p4 start"},
- {"P4 Up", BIT_DIGITAL, DrvJoy4 + 10, "p4 up"},
- {"P4 Down", BIT_DIGITAL, DrvJoy4 + 11, "p4 down"},
- {"P4 Left", BIT_DIGITAL, DrvJoy4 + 8, "p4 left"},
- {"P4 Right", BIT_DIGITAL, DrvJoy4 + 9, "p4 right"},
- {"P4 Button 1", BIT_DIGITAL, DrvJoy4 + 12, "p4 fire 1"},
- {"P4 Button 2", BIT_DIGITAL, DrvJoy4 + 13, "p4 fire 2"},
- {"P4 Button 3", BIT_DIGITAL, DrvJoy4 + 14, "p4 fire 3"},
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset"},
- {"Service 1", BIT_DIGITAL, DrvJoy2 + 8, "service"},
- {"Service 2", BIT_DIGITAL, DrvJoy2 + 9, "service"},
- {"Service 3", BIT_DIGITAL, DrvJoy2 + 10, "service"},
- {"Service 4", BIT_DIGITAL, DrvJoy2 + 11, "service"},
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip"},
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip"},
- {"Dip C", BIT_DIPSWITCH, DrvDips + 2, "dip"},
- {"Dip D", BIT_DIPSWITCH, DrvDips + 3, "dip"},
-};
-
-STDINPUTINFO(Gijoe)
-
-static struct BurnDIPInfo GijoeDIPList[]=
-{
- {0x29, 0xff, 0xff, 0x08, NULL },
- {0x2a, 0xff, 0xff, 0x80, NULL },
- {0x2b, 0xff, 0xff, 0x80, NULL },
- {0x2c, 0xff, 0xff, 0x80, NULL },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x29, 0x01, 0x08, 0x08, "Off" },
- {0x29, 0x01, 0x08, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Sound" },
- {0x2a, 0x01, 0x80, 0x80, "Mono" },
- {0x2a, 0x01, 0x80, 0x00, "Stereo" },
-
- {0 , 0xfe, 0 , 2, "Coin mechanism" },
- {0x2b, 0x01, 0x80, 0x80, "Common" },
- {0x2b, 0x01, 0x80, 0x00, "Independent" },
-
- {0 , 0xfe, 0 , 2, "Players" },
- {0x2c, 0x01, 0x80, 0x80, "2" },
- {0x2c, 0x01, 0x80, 0x00, "4" },
-};
-
-STDDIPINFO(Gijoe)
-
-static void gijoe_objdma()
-{
- UINT16 *src_head, *src_tail, *dst_head, *dst_tail;
-
- src_head = (UINT16*)DrvSprRAM;
- src_tail = src_head + 255 * 8;
- dst_head = (UINT16*)K053247Ram;
- dst_tail = dst_head + 255 * 8;
-
- for (; src_head <= src_tail; src_head += 8)
- {
- if (*src_head & 0x8000)
- {
- memcpy(dst_head, src_head, 0x10);
- dst_head += 8;
- }
- else
- {
- *dst_tail = 0;
- dst_tail -= 8;
- }
- }
-}
-
-static void __fastcall gijoe_main_write_word(UINT32 address, UINT16 data)
-{
- if ((address & 0xfffff8) == 0x110000) {
- K053246Write((address & 0x06) + 0, data >> 8);
- K053246Write((address & 0x06) + 1, data&0xff);
- return;
- }
-
- if ((address & 0xffc000) == 0x120000) {
- K056832RamWriteWord(address & 0x1fff, data);
- return;
- }
-
- if ((address & 0xfffff8) == 0x160000) {
- return; // regsb
- }
-
- if ((address & 0xffffc0) == 0x1b0000) {
- K056832WordWrite(address & 0x3e, data);
- return;
- }
-
- switch (address)
- {
- case 0x1c000c:
- *soundlatch = data;
- break;
-
- case 0x1d0000:
- ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
- return;
- }
- //bprintf(0, _T("%X %X\n"), address, data);
-}
-
-static void __fastcall gijoe_main_write_byte(UINT32 address, UINT8 data)
-{
- if ((address & 0xfffff8) == 0x110000) {
- K053246Write((address & 0x07) ^ 0, data);
- return;
- }
-
- if ((address & 0xffc000) == 0x120000) {
- K056832RamWriteByte(address & 0x1fff, data);
- return;
- }
-
- if ((address & 0xfffff8) == 0x160000) {
- return; // regsb
- }
-
- if ((address & 0xffffe1) == 0x1a0001) {
- K053251Write((address / 2) & 0xf, data);
- return;
- }
-
- if ((address & 0xffffc0) == 0x1b0000) {
- K056832ByteWrite(address & 0x3f, data);
- return;
- }
-
- switch (address)
- {
- case 0x170000:
- return; // watchdog
-
- case 0x1e8001:
- EEPROMWrite((data & 0x04), (data & 0x02), (data & 0x01));
- K053246_set_OBJCHA_line((data & 0x40) >> 6);
- control_data = data;
- return;
-
- case 0x1c000c:
- case 0x1c000d:
- *soundlatch = data;
- break;
-
- case 0x1d0000:
- case 0x1d0001:
- ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
- return;
-
- }
-}
-
-static UINT16 __fastcall gijoe_main_read_word(UINT32 address)
-{
- if ((address & 0xffc000) == 0x120000) {
- return K056832RamReadWord(address & 0x1fff);
- }
-
- if ((address & 0xffe000) == 0x130000) {
- return K056832RomWordRead(address);
- }
-
- switch (address)
- {
- case 0x1e0000:
- return DrvInputs[2];
-
- case 0x1e0002:
- return DrvInputs[3];
-
- case 0x1e4000:
- return DrvInputs[1];
-
- case 0x1e4002:
- return (DrvInputs[0] & 0xfeff) | (EEPROMRead() ? 0x0100 : 0);
-
- case 0x1c0014:
- return *soundlatch2;
-
- case 0x1f0000:
- return K053246Read(1) + (K053246Read(0) << 8); // ?
- }
-
- return 0;
-}
-
-static UINT8 __fastcall gijoe_main_read_byte(UINT32 address)
-{
- if ((address & 0xffc000) == 0x120000) {
- return K056832RamReadByte(address & 0x1fff);
- }
-
- if ((address & 0xffe000) == 0x130000) {
- return K056832RomWordRead(address) >> ((~address & 1) * 8);
- }
-
- switch (address)
- {
- case 0x1e0000:
- return DrvInputs[2] >> 8;
-
- case 0x1e0001:
- return DrvInputs[2];
-
- case 0x1e0002:
- return DrvInputs[3] >> 8;
-
- case 0x1e0003:
- return DrvInputs[3];
-
- case 0x1e4000:
- return DrvInputs[1] >> 8;
-
- case 0x1e4001:
- return DrvInputs[1];
-
- case 0x1e4002:
- return ((DrvInputs[0] >> 8) & 0xfe) | (EEPROMRead() ? 0x01 : 0);
-
- case 0x1e4003:
- return DrvInputs[0];
-
- case 0x1c0014:
- case 0x1c0015:
- return *soundlatch2;
-
- case 0x1f0000:
- case 0x1f0001:
- return K053246Read((address & 1)); // ^ 1? ??
- }
-
- return 0;
-}
-
-static void __fastcall gijoe_sound_write(UINT16 address, UINT8 data)
-{
- if (address >= 0xf800 && address <= 0xfa2f) {
- if (address == 0xfa2f) sound_nmi_enable = data & 0x20;
- K054539Write(0, address & 0x3ff, data);
- return;
- }
-
- switch (address)
- {
- case 0xfc00:
- *soundlatch2 = data;
- return;
- }
-}
-
-static UINT8 __fastcall gijoe_sound_read(UINT16 address)
-{
- if (address >= 0xf800 && address <= 0xfa2f) {
- return K054539Read(0, address & 0x3ff);
- }
-
- switch (address)
- {
- case 0xfc02:
- ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
- return *soundlatch;
- }
-
- return 0;
-}
-
-static void gijoe_sprite_callback(INT32 */*code*/, INT32 *color, INT32 *priority)
-{
- INT32 pri = (*color & 0x03e0) >> 4;
-
- if (pri <= layerpri[3]) *priority = 0x0000;
- else if (pri > layerpri[3] && pri <= layerpri[2]) *priority = 0xff00;
- else if (pri > layerpri[2] && pri <= layerpri[1]) *priority = 0xfff0;
- else if (pri > layerpri[1] && pri <= layerpri[0]) *priority = 0xfffc;
- else *priority = 0xfffe;
-
- *color = sprite_colorbase | (*color & 0x001f);
-}
-
-static void gijoe_tile_callback(int layer, int *code, int *color, int */*flags*/)
-{
- INT32 tile = *code;
-
- if (tile >= 0xf000 && tile <= 0xf4ff)
- {
- tile &= 0x0fff;
- if (tile < 0x0310)
- {
- avac_occupancy[layer] |= 0x0f00;
- tile |= avac_bits[0];
- }
- else if (tile < 0x0470)
- {
- avac_occupancy[layer] |= 0xf000;
- tile |= avac_bits[1];
- }
- else
- {
- avac_occupancy[layer] |= 0x00f0;
- tile |= avac_bits[2];
- }
- *code = tile;
- }
-
- *color = (*color >> 2 & 0x0f) | layer_colorbase[layer];
-}
-
-static const eeprom_interface gijoe_eeprom_interface =
-{
- 7,
- 8,
- "011000",
- "011100",
- "0100100000000",
- "0100000000000",
- "0100110000000",
- 0,
- 0
-};
-
-static INT32 DrvDoReset()
-{
- memset (AllRam, 0, RamEnd - AllRam);
-
- SekOpen(0);
- SekReset();
- SekClose();
-
- ZetOpen(0);
- ZetReset();
- ZetClose();
-
- KonamiICReset();
-
- K054539Reset(0);
-
- EEPROMReset();
-
- if (EEPROMAvailable() == 0) {
- EEPROMFill(DrvEeprom, 0, 128);
- }
-
- control_data = 0;
-
- for (INT32 i = 0; i < 4; i++)
- {
- avac_occupancy[i] = 0;
- avac_bits[i] = 0;
- layer_colorbase[i] = 0;
- layerpri[i] = 0;
- }
-
- avac_vrc = 0xffff;
- sound_nmi_enable = 0;
-
- irq6_timer = -1;
-
- return 0;
-}
-
-static INT32 MemIndex()
-{
- UINT8 *Next; Next = AllMem;
-
- Drv68KROM = Next; Next += 0x100000;
- DrvZ80ROM = Next; Next += 0x010000;
-
- DrvGfxROM0 = Next; Next += 0x200000;
- DrvGfxROMExp0 = Next; Next += 0x400000;
- DrvGfxROM1 = Next; Next += 0x400000;
- DrvGfxROMExp1 = Next; Next += 0x800000;
-
- DrvSndROM = Next; Next += 0x200000;
-
- DrvEeprom = Next; Next += 0x000080;
-
- konami_palette32 = (UINT32*)Next;
- DrvPalette = (UINT32*)Next; Next += 0x0800 * sizeof(UINT32);
-
- AllRam = Next;
-
- Drv68KRAM = Next; Next += 0x010000;
- DrvSprRAM = Next; Next += 0x001000;
- DrvPalRAM = Next; Next += 0x001000;
-
- DrvZ80RAM = Next; Next += 0x000800;
-
- soundlatch = Next; Next += 0x000001;
- soundlatch2 = Next; Next += 0x000001;
-
- RamEnd = Next;
- MemEnd = Next;
-
- return 0;
-}
-
-static INT32 DrvInit()
-{
- GenericTilesInit();
-
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(Drv68KROM + 0x000001, 0, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x000000, 1, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x080001, 2, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x080000, 3, 2)) return 1;
-
- if (BurnLoadRom(DrvZ80ROM + 0x000000, 4, 1)) return 1;
-
- if (BurnLoadRomExt(DrvGfxROM0 + 0x000000, 5, 4, 2)) return 1;
- if (BurnLoadRomExt(DrvGfxROM0 + 0x000002, 6, 4, 2)) return 1;
-
- if (BurnLoadRomExt(DrvGfxROM1 + 0x000000, 7, 8, 2)) return 1;
- if (BurnLoadRomExt(DrvGfxROM1 + 0x000002, 8, 8, 2)) return 1;
- if (BurnLoadRomExt(DrvGfxROM1 + 0x000004, 9, 8, 2)) return 1;
- if (BurnLoadRomExt(DrvGfxROM1 + 0x000006, 10, 8, 2)) return 1;
-
- if (BurnLoadRom(DrvSndROM + 0x000000, 11, 1)) return 1;
-
- if (BurnLoadRom(DrvEeprom + 0x000000, 12, 1)) return 1;
-
- K053247GfxDecode(DrvGfxROM0, DrvGfxROMExp0, 0x200000);
- K053247GfxDecode(DrvGfxROM1, DrvGfxROMExp1, 0x400000);
- }
-
- SekInit(0, 0x68000);
- SekOpen(0);
- SekMapMemory(Drv68KROM, 0x000000, 0x0fffff, MAP_ROM);
- SekMapMemory(DrvSprRAM, 0x100000, 0x100fff, MAP_RAM);
- SekMapMemory(Drv68KRAM, 0x180000, 0x18ffff, MAP_RAM);
- SekMapMemory(DrvPalRAM, 0x190000, 0x190fff, MAP_RAM);
- SekSetWriteWordHandler(0, gijoe_main_write_word);
- SekSetWriteByteHandler(0, gijoe_main_write_byte);
- SekSetReadWordHandler(0, gijoe_main_read_word);
- SekSetReadByteHandler(0, gijoe_main_read_byte);
- SekClose();
-
- ZetInit(0);
- ZetOpen(0);
- ZetMapMemory(DrvZ80ROM, 0x0000, 0xefff, MAP_ROM);
- ZetMapMemory(DrvZ80RAM, 0xf000, 0xf7ff, MAP_RAM);
- ZetSetWriteHandler(gijoe_sound_write);
- ZetSetReadHandler(gijoe_sound_read);
- ZetClose();
-
- EEPROMInit(&gijoe_eeprom_interface);
-
- K056832Init(DrvGfxROM0, DrvGfxROMExp0, 0x200000, gijoe_tile_callback);
- K056832SetGlobalOffsets(24, 16);
-
- K053247Init(DrvGfxROM1, DrvGfxROMExp1, 0x3fffff, gijoe_sprite_callback, 1);
- K053247SetSpriteOffset(-61, -46+10);
-
- K054539Init(0, 48000, DrvSndROM, 0x200000);
- K054539SetRoute(0, BURN_SND_K054539_ROUTE_1, 1.00, BURN_SND_ROUTE_LEFT);
- K054539SetRoute(0, BURN_SND_K054539_ROUTE_2, 1.00, BURN_SND_ROUTE_RIGHT);
-
- DrvDoReset();
-
- return 0;
-}
-
-static INT32 DrvExit()
-{
- GenericTilesExit();
-
- KonamiICExit();
-
- SekExit();
- ZetExit();
-
- EEPROMExit();
-
- K054539Exit();
-
- BurnFree (AllMem);
-
- return 0;
-}
-
-static void DrvPaletteRecalc()
-{
- UINT16 *pal = (UINT16*)DrvPalRAM;
-
- for (INT32 i = 0; i < 0x1000/2; i++)
- {
- INT32 r = (pal[i] & 0x1f);
- INT32 g = (pal[i] >> 5) & 0x1f;
- INT32 b = (pal[i] >> 10) & 0x1f;
-
- r = (r << 3) | (r >> 2);
- g = (g << 3) | (g >> 2);
- b = (b << 3) | (b >> 2);
-
- DrvPalette[i] = (r << 16) + (g << 8) + b;
- }
-}
-
-static INT32 DrvDraw()
-{
- DrvPaletteRecalc();
-
- INT32 layers[4], dirty, mask = 0, vrc_mode, vrc_new;
-
- K056832ReadAvac(&vrc_mode, &vrc_new);
-
- if (vrc_mode)
- {
- for (dirty = 0xf000; dirty; dirty >>= 4)
- if ((avac_vrc & dirty) != (vrc_new & dirty))
- mask |= dirty;
-
- avac_vrc = vrc_new;
- avac_bits[0] = vrc_new << 4 & 0xf000;
- avac_bits[1] = vrc_new & 0xf000;
- avac_bits[2] = vrc_new << 8 & 0xf000;
- avac_bits[3] = vrc_new << 12 & 0xf000;
- }
- else
- avac_bits[3] = avac_bits[2] = avac_bits[1] = avac_bits[0] = 0xf000;
-
- sprite_colorbase = K053251GetPaletteIndex(0);
-
- for (INT32 i = 0; i < 4; i++) {
- layer_colorbase[i] = K053251GetPaletteIndex(i+1);
- }
-
- if (K056832ReadRegister(0x14) == 2)
- {
- K056832SetLayerOffsets(0, 2, 0);
- K056832SetLayerOffsets(1, 4, 0);
- K056832SetLayerOffsets(2, 6, 0);
- K056832SetLayerOffsets(3, 8, 0);
- }
- else
- {
- K056832SetLayerOffsets(0, 0, 0);
- K056832SetLayerOffsets(1, 8, 0);
- K056832SetLayerOffsets(2, 14, 0);
- K056832SetLayerOffsets(3, 16, 0);
- }
-
- KonamiClearBitmaps(0);
-
- layers[0] = 0;
- layerpri[0] = 0; // not sure
- layers[1] = 1;
- layerpri[1] = K053251GetPriority(2);
- layers[2] = 2;
- layerpri[2] = K053251GetPriority(3);
- layers[3] = 3;
- layerpri[3] = K053251GetPriority(4);
-
- konami_sortlayers4(layers, layerpri);
-
- if (nBurnLayer & 1) K056832Draw(layers[0], K056832_DRAW_FLAG_MIRROR, 1);
- if (nBurnLayer & 2) K056832Draw(layers[1], K056832_DRAW_FLAG_MIRROR, 2);
- if (nBurnLayer & 4) K056832Draw(layers[2], K056832_DRAW_FLAG_MIRROR, 4);
- if (nBurnLayer & 8) K056832Draw(layers[3], K056832_DRAW_FLAG_MIRROR, 8);
-
- if (nSpriteEnable & 1) K053247SpritesRender();
-
- KonamiBlendCopy(DrvPalette);
-
- return 0;
-}
-
-static INT32 DrvFrame()
-{
- if (DrvReset) {
- DrvDoReset();
- }
-
- {
- memset (DrvInputs, 0xff, 4 * sizeof(INT16));
- for (INT32 i = 0; i < 16; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- DrvInputs[2] ^= (DrvJoy3[i] & 1) << i;
- DrvInputs[3] ^= (DrvJoy4[i] & 1) << i;
- }
-
- DrvInputs[0] = (DrvInputs[0] & 0xf7ff) | ((DrvDips[0] & 0x08) << 8);
- DrvInputs[2] = (DrvInputs[2] & 0x7f7f) | (DrvDips[1] & 0x80) | ((DrvDips[2] & 0x80) << 8);
- DrvInputs[3] = (DrvInputs[3] & 0xff7f) | (DrvDips[3] & 0x80);
- DrvInputs[0] &= 0x0fff;
- DrvInputs[1] &= 0x0fff;
- }
-
- INT32 nInterleave = 256;
- INT32 nCyclesTotal[2] = { 16000000 / 60, 8000000 / 60 };
- INT32 nCyclesDone[2] = { 0, 0 };
-
- SekOpen(0);
- ZetOpen(0);
-
- for (INT32 i = 0; i < nInterleave; i++) {
- INT32 nNext, nCyclesSegment;
-
- nNext = (i + 1) * nCyclesTotal[0] / nInterleave;
- nCyclesSegment = nNext - nCyclesDone[0];
- nCyclesSegment = SekRun(nCyclesSegment);
- nCyclesDone[0] += nCyclesSegment;
-
- if (control_data & 0x20 && irq6_timer == 0) {
- SekSetIRQLine(6, CPU_IRQSTATUS_AUTO);
- irq6_timer = -1;
- } else if (irq6_timer != -1) irq6_timer--;
-
- nNext = (i + 1) * nCyclesTotal[1] / nInterleave;
- nCyclesSegment = nNext - nCyclesDone[1];
- nCyclesSegment = ZetRun(nCyclesSegment);
- nCyclesDone[1] += nCyclesSegment;
- if ((i % (nInterleave / 8)) == ((nInterleave / 8) - 1) && sound_nmi_enable) {
- ZetNmi();
- }
-
- if (i == 240) {
- if (K056832IsIrqEnabled()) {
- if (K053246_is_IRQ_enabled()) {
- gijoe_objdma();
- irq6_timer = 1; // guess
- }
-
- if (control_data & 0x80) {
- SekSetIRQLine(5, CPU_IRQSTATUS_AUTO);
- }
- }
- }
- }
-
- if (pBurnSoundOut) {
- memset (pBurnSoundOut, 0, nBurnSoundLen * 2 * 2);
- K054539Update(0, pBurnSoundOut, nBurnSoundLen);
- }
-
- ZetClose();
- SekClose();
-
- if (pBurnDraw) {
- DrvDraw();
- }
-
- return 0;
-}
-
-static INT32 DrvScan(INT32 nAction, INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin) {
- *pnMin = 0x029732;
- }
-
- if (nAction & ACB_VOLATILE) {
- memset(&ba, 0, sizeof(ba));
-
- ba.Data = AllRam;
- ba.nLen = RamEnd - AllRam;
- ba.szName = "All Ram";
- BurnAcb(&ba);
-
- SekScan(nAction);
- ZetScan(nAction);
-
- K054539Scan(nAction);
-
- KonamiICScan(nAction);
-
- SCAN_VAR(avac_vrc);
- SCAN_VAR(avac_bits);
- SCAN_VAR(avac_occupancy);
- SCAN_VAR(sound_nmi_enable);
- SCAN_VAR(control_data);
- SCAN_VAR(irq6_timer);
-
- SCAN_VAR(layerpri);
- SCAN_VAR(layer_colorbase);
- SCAN_VAR(sprite_colorbase);
- }
-
- return 0;
-}
-
-
-// G.I. Joe (World, EAB, set 1)
-
-static struct BurnRomInfo gijoeRomDesc[] = {
- { "069eab03.14e", 0x040000, 0xdd2d533f, 1 | BRF_PRG | BRF_ESS }, // 0 68K Code
- { "069eab02.18e", 0x040000, 0x6bb11c87, 1 | BRF_PRG | BRF_ESS }, // 1
- { "069a12.13e", 0x040000, 0x75a7585c, 1 | BRF_PRG | BRF_ESS }, // 2
- { "069a11.16e", 0x040000, 0x3153e788, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "069a01.7c", 0x010000, 0x74172b99, 2 | BRF_PRG | BRF_ESS }, // 4 Z80 Code
-
- { "069a10.18j", 0x100000, 0x4c6743ee, 3 | BRF_GRA }, // 5 K056832 Characters
- { "069a09.16j", 0x100000, 0xe6e36b05, 3 | BRF_GRA }, // 6
-
- { "069a08.6h", 0x100000, 0x325477d4, 4 | BRF_GRA }, // 7 K053247 Sprites
- { "069a05.1h", 0x100000, 0xc4ab07ed, 4 | BRF_GRA }, // 8
- { "069a07.4h", 0x100000, 0xccaa3971, 4 | BRF_GRA }, // 9
- { "069a06.2h", 0x100000, 0x63eba8e1, 4 | BRF_GRA }, // 10
-
- { "069a04.1e", 0x200000, 0x11d6dcd6, 5 | BRF_SND }, // 11 k054539
-
- { "er5911.7d", 0x000080, 0xa0d50a79, 6 | BRF_OPT }, // 12 eeprom data
-};
-
-STD_ROM_PICK(gijoe)
-STD_ROM_FN(gijoe)
-
-struct BurnDriver BurnDrvGijoe = {
- "gijoe", NULL, NULL, NULL, "1992",
- "G.I. Joe (World, EAB, set 1)\0", NULL, "Konami", "GX069",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_PREFIX_KONAMI, GBF_MISC, 0,
- NULL, gijoeRomInfo, gijoeRomName, NULL, NULL, GijoeInputInfo, GijoeDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 288, 224, 4, 3
-};
-
-
-// G.I. Joe (World, EB8, prototype?)
-
-static struct BurnRomInfo gijoeaRomDesc[] = {
- { "rom3.14e", 0x040000, 0x0a11f63a, 1 | BRF_PRG | BRF_ESS }, // 0 68K Code
- { "rom2.18e", 0x040000, 0x8313c559, 1 | BRF_PRG | BRF_ESS }, // 1
- { "069a12.13e", 0x040000, 0x75a7585c, 1 | BRF_PRG | BRF_ESS }, // 2
- { "069a11.16e", 0x040000, 0x3153e788, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "069a01.7c", 0x010000, 0x74172b99, 2 | BRF_PRG | BRF_ESS }, // 4 Z80 Code
-
- { "069a10.18j", 0x100000, 0x4c6743ee, 3 | BRF_GRA }, // 5 K056832 Characters
- { "069a09.16j", 0x100000, 0xe6e36b05, 3 | BRF_GRA }, // 6
-
- { "069a08.6h", 0x100000, 0x325477d4, 4 | BRF_GRA }, // 7 K053247 Sprites
- { "069a05.1h", 0x100000, 0xc4ab07ed, 4 | BRF_GRA }, // 8
- { "069a07.4h", 0x100000, 0xccaa3971, 4 | BRF_GRA }, // 9
- { "069a06.2h", 0x100000, 0x63eba8e1, 4 | BRF_GRA }, // 10
-
- { "069a04.1e", 0x200000, 0x11d6dcd6, 5 | BRF_SND }, // 11 k054539
-
- { "er5911.7d", 0x000080, 0x64f5c87b, 6 | BRF_OPT }, // 12 eeprom data
-};
-
-STD_ROM_PICK(gijoea)
-STD_ROM_FN(gijoea)
-
-struct BurnDriver BurnDrvGijoea = {
- "gijoea", "gijoe", NULL, NULL, "1992",
- "G.I. Joe (World, EB8, prototype?)\0", NULL, "Konami", "GX069",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_KONAMI, GBF_SHOOT, 0,
- NULL, gijoeaRomInfo, gijoeaRomName, NULL, NULL, GijoeInputInfo, GijoeDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 288, 224, 4, 3
-};
-
-
-// G.I. Joe (US, UAB)
-
-static struct BurnRomInfo gijoeuRomDesc[] = {
- { "069uab03.14e", 0x040000, 0x25ff77d2, 1 | BRF_PRG | BRF_ESS }, // 0 68K Code
- { "069uab02.18e", 0x040000, 0x31cced1c, 1 | BRF_PRG | BRF_ESS }, // 1
- { "069a12.13e", 0x040000, 0x75a7585c, 1 | BRF_PRG | BRF_ESS }, // 2
- { "069a11.16e", 0x040000, 0x3153e788, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "069a01.7c", 0x010000, 0x74172b99, 2 | BRF_PRG | BRF_ESS }, // 4 Z80 Code
-
- { "069a10.18j", 0x100000, 0x4c6743ee, 3 | BRF_GRA }, // 5 K056832 Characters
- { "069a09.16j", 0x100000, 0xe6e36b05, 3 | BRF_GRA }, // 6
-
- { "069a08.6h", 0x100000, 0x325477d4, 4 | BRF_GRA }, // 7 K053247 Sprites
- { "069a05.1h", 0x100000, 0xc4ab07ed, 4 | BRF_GRA }, // 8
- { "069a07.4h", 0x100000, 0xccaa3971, 4 | BRF_GRA }, // 9
- { "069a06.2h", 0x100000, 0x63eba8e1, 4 | BRF_GRA }, // 10
-
- { "069a04.1e", 0x200000, 0x11d6dcd6, 5 | BRF_SND }, // 11 k054539
-
- { "er5911.7d", 0x000080, 0xca966023, 6 | BRF_OPT }, // 12 eeprom data
-};
-
-STD_ROM_PICK(gijoeu)
-STD_ROM_FN(gijoeu)
-
-struct BurnDriver BurnDrvGijoeu = {
- "gijoeu", "gijoe", NULL, NULL, "1992",
- "G.I. Joe (US, UAB)\0", NULL, "Konami", "GX069",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_KONAMI, GBF_SHOOT, 0,
- NULL, gijoeuRomInfo, gijoeuRomName, NULL, NULL, GijoeInputInfo, GijoeDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 288, 224, 4, 3
-};
-
-
-// G.I. Joe (Japan, JAA)
-
-static struct BurnRomInfo gijoejRomDesc[] = {
- { "069jaa03.14e", 0x040000, 0x4b398901, 1 | BRF_PRG | BRF_ESS }, // 0 68K Code
- { "069jaa02.18e", 0x040000, 0x8bb22392, 1 | BRF_PRG | BRF_ESS }, // 1
- { "069a12.13e", 0x040000, 0x75a7585c, 1 | BRF_PRG | BRF_ESS }, // 2
- { "069a11.16e", 0x040000, 0x3153e788, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "069a01.7c", 0x010000, 0x74172b99, 2 | BRF_PRG | BRF_ESS }, // 4 Z80 Code
-
- { "069a10.18j", 0x100000, 0x4c6743ee, 3 | BRF_GRA }, // 5 K056832 Characters
- { "069a09.16j", 0x100000, 0xe6e36b05, 3 | BRF_GRA }, // 6
-
- { "069a08.6h", 0x100000, 0x325477d4, 4 | BRF_GRA }, // 7 K053247 Sprites
- { "069a05.1h", 0x100000, 0xc4ab07ed, 4 | BRF_GRA }, // 8
- { "069a07.4h", 0x100000, 0xccaa3971, 4 | BRF_GRA }, // 9
- { "069a06.2h", 0x100000, 0x63eba8e1, 4 | BRF_GRA }, // 10
-
- { "069a04.1e", 0x200000, 0x11d6dcd6, 5 | BRF_SND }, // 11 k054539
-
- { "er5911.7d", 0x000080, 0xc914fcf2, 6 | BRF_OPT }, // 12 eeprom data
-};
-
-STD_ROM_PICK(gijoej)
-STD_ROM_FN(gijoej)
-
-struct BurnDriver BurnDrvGijoej = {
- "gijoej", "gijoe", NULL, NULL, "1992",
- "G.I. Joe (Japan, JAA)\0", NULL, "Konami", "GX069",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_KONAMI, GBF_SHOOT, 0,
- NULL, gijoejRomInfo, gijoejRomName, NULL, NULL, GijoeInputInfo, GijoeDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 288, 224, 4, 3
-};
diff --git a/jan/src/burn/drv/konami/d_gradius3.cpp b/jan/src/burn/drv/konami/d_gradius3.cpp
deleted file mode 100644
index 993618157..000000000
--- a/jan/src/burn/drv/konami/d_gradius3.cpp
+++ /dev/null
@@ -1,1161 +0,0 @@
-// FB Alpha Gradius 3 driver module
-// Based on MAME driver by Nicola Salmoria
-
-#include "tiles_generic.h"
-#include "m68000_intf.h"
-#include "z80_intf.h"
-#include "konami_intf.h"
-#include "konamiic.h"
-#include "burn_ym2151.h"
-#include "k007232.h"
-
-static UINT8 *AllMem;
-static UINT8 *MemEnd;
-static UINT8 *AllRam;
-static UINT8 *RamEnd;
-static UINT8 *Drv68KROM0;
-static UINT8 *Drv68KROM1;
-static UINT8 *DrvZ80ROM;
-static UINT8 *DrvGfxROM1;
-static UINT8 *DrvGfxROMExp0;
-static UINT8 *DrvGfxROMExp1;
-static UINT8 *DrvSndROM;
-static UINT8 *Drv68KRAM0;
-static UINT8 *Drv68KRAM1;
-static UINT8 *DrvShareRAM;
-static UINT8 *DrvShareRAM2;
-static UINT8 *DrvPalRAM;
-static UINT8 *DrvZ80RAM;
-
-static UINT32 *DrvPalette;
-static UINT8 DrvRecalc;
-
-static UINT8 *soundlatch;
-
-static INT32 gradius3_priority;
-static INT32 gradius3_cpub_enable;
-static INT32 irqA_enable;
-static INT32 irqB_mask;
-
-static INT32 interrupt_triggered = 0;
-
-static UINT8 DrvJoy1[8];
-static UINT8 DrvJoy2[8];
-static UINT8 DrvJoy3[8];
-static UINT16 DrvInputs[3];
-static UINT8 DrvDips[3];
-static UINT8 DrvReset;
-
-static struct BurnInputInfo Gradius3InputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy1 + 0, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 3, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy2 + 2, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy2 + 3, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy2 + 0, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy2 + 1, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy2 + 4, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy2 + 5, "p1 fire 2" },
- {"P1 Button 3", BIT_DIGITAL, DrvJoy2 + 6, "p1 fire 3" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy1 + 1, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy1 + 4, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvJoy3 + 2, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy3 + 3, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy3 + 0, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy3 + 1, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy3 + 4, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy3 + 5, "p2 fire 2" },
- {"P2 Button 3", BIT_DIGITAL, DrvJoy3 + 6, "p2 fire 3" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service", BIT_DIGITAL, DrvJoy1 + 6, "service"},
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip" },
- {"Dip C", BIT_DIPSWITCH, DrvDips + 2, "dip" },
-};
-
-STDINPUTINFO(Gradius3)
-
-static struct BurnDIPInfo Gradius3DIPList[]=
-{
- {0x14, 0xff, 0xff, 0xff, NULL },
- {0x15, 0xff, 0xff, 0x5a, NULL },
- {0x16, 0xff, 0xff, 0xff, NULL },
-
- {0 , 0xfe, 0 , 16, "Coin A" },
- {0x14, 0x01, 0x0f, 0x02, "4 Coins 1 Credit" },
- {0x14, 0x01, 0x0f, 0x05, "3 Coins 1 Credit" },
- {0x14, 0x01, 0x0f, 0x08, "2 Coins 1 Credit" },
- {0x14, 0x01, 0x0f, 0x04, "3 Coins 2 Credits" },
- {0x14, 0x01, 0x0f, 0x01, "4 Coins 3 Credits" },
- {0x14, 0x01, 0x0f, 0x0f, "1 Coin 1 Credit" },
- {0x14, 0x01, 0x0f, 0x03, "3 Coins 4 Credits" },
- {0x14, 0x01, 0x0f, 0x07, "2 Coins 3 Credits" },
- {0x14, 0x01, 0x0f, 0x0e, "1 Coin 2 Credits" },
- {0x14, 0x01, 0x0f, 0x06, "2 Coins 5 Credits" },
- {0x14, 0x01, 0x0f, 0x0d, "1 Coin 3 Credits" },
- {0x14, 0x01, 0x0f, 0x0c, "1 Coin 4 Credits" },
- {0x14, 0x01, 0x0f, 0x0b, "1 Coin 5 Credits" },
- {0x14, 0x01, 0x0f, 0x0a, "1 Coin 6 Credits" },
- {0x14, 0x01, 0x0f, 0x09, "1 Coin 7 Credits" },
- {0x14, 0x01, 0x0f, 0x00, "Free Play" },
-
- {0 , 0xfe, 0 , 15, "Coin B" },
- {0x14, 0x01, 0xf0, 0x20, "4 Coins 1 Credit" },
- {0x14, 0x01, 0xf0, 0x50, "3 Coins 1 Credit" },
- {0x14, 0x01, 0xf0, 0x80, "2 Coins 1 Credit" },
- {0x14, 0x01, 0xf0, 0x40, "3 Coins 2 Credits" },
- {0x14, 0x01, 0xf0, 0x10, "4 Coins 3 Credits" },
- {0x14, 0x01, 0xf0, 0xf0, "1 Coin 1 Credit" },
- {0x14, 0x01, 0xf0, 0x30, "3 Coins 4 Credits" },
- {0x14, 0x01, 0xf0, 0x70, "2 Coins 3 Credits" },
- {0x14, 0x01, 0xf0, 0xe0, "1 Coin 2 Credits" },
- {0x14, 0x01, 0xf0, 0x60, "2 Coins 5 Credits" },
- {0x14, 0x01, 0xf0, 0xd0, "1 Coin 3 Credits" },
- {0x14, 0x01, 0xf0, 0xc0, "1 Coin 4 Credits" },
- {0x14, 0x01, 0xf0, 0xb0, "1 Coin 5 Credits" },
- {0x14, 0x01, 0xf0, 0xa0, "1 Coin 6 Credits" },
- {0x14, 0x01, 0xf0, 0x90, "1 Coin 7 Credits" },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x15, 0x01, 0x03, 0x03, "2" },
- {0x15, 0x01, 0x03, 0x02, "3" },
- {0x15, 0x01, 0x03, 0x01, "5" },
- {0x15, 0x01, 0x03, 0x00, "7" },
-
-// {0 , 0xfe, 0 , 2, "Cabinet" },
-// {0x15, 0x01, 0x04, 0x00, "Upright" },
-// {0x15, 0x01, 0x04, 0x04, "Cocktail" },
-
- {0 , 0xfe, 0 , 4, "Bonus Life" },
- {0x15, 0x01, 0x18, 0x18, "20000 and every 70000" },
- {0x15, 0x01, 0x18, 0x10, "100000 and every 100000" },
- {0x15, 0x01, 0x18, 0x08, "50000" },
- {0x15, 0x01, 0x18, 0x00, "100000" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x15, 0x01, 0x60, 0x60, "Easy" },
- {0x15, 0x01, 0x60, 0x40, "Normal" },
- {0x15, 0x01, 0x60, 0x20, "Hard" },
- {0x15, 0x01, 0x60, 0x00, "Hardest" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x15, 0x01, 0x80, 0x80, "Off" },
- {0x15, 0x01, 0x80, 0x00, "On" },
-
-// {0 , 0xfe, 0 , 2, "Flip Screen" },
-// {0x16, 0x01, 0x01, 0x01, "Off" },
-// {0x16, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Upright Controls" },
- {0x16, 0x01, 0x02, 0x02, "Single" },
- {0x16, 0x01, 0x02, 0x00, "Dual" },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x16, 0x01, 0x04, 0x04, "Off" },
- {0x16, 0x01, 0x04, 0x00, "On" },
-};
-
-STDDIPINFO(Gradius3)
-
-static void expand_graphics_single(INT32 offset)
-{
- offset &= 0x1fffe;
-
- INT32 t = DrvShareRAM2[offset+0];
-
- DrvGfxROMExp0[offset * 2 + 2] = t >> 4;
- DrvGfxROMExp0[offset * 2 + 3] = t & 0x0f;
-
- t = DrvShareRAM2[offset+1];
-
- DrvGfxROMExp0[offset * 2 + 0] = t >> 4;
- DrvGfxROMExp0[offset * 2 + 1] = t & 0x0f;
-}
-
-static void __fastcall gradius3_main_write_word(UINT32 address, UINT16 data)
-{
- if (address >= 0x14c000 && address <= 0x153fff) {
- address -= 0x14c000;
- K052109Write(address / 2, data);
- return;
- }
-
- if ((address & 0xfe0000) == 0x180000) {
- *((UINT16*)(DrvShareRAM2 + (address & 0x1fffe))) = data;
- expand_graphics_single(address);
- return;
- }
-}
-
-static void __fastcall gradius3_main_write_byte(UINT32 address, UINT8 data)
-{
- if ((address & 0xfe0000) == 0x180000) {
- DrvShareRAM2[(address & 0x1ffff)^1] = data;
- expand_graphics_single(address);
- return;
- }
-
- switch (address)
- {
- case 0x0c0000:
- case 0x0c0001:
- {
- // if enabling CPU B, burn off some cycles to keep things sync'd.
- if (gradius3_cpub_enable & 8 && ~data & 8) {
- INT32 cycles_to_burn = SekTotalCycles();
- SekClose();
- SekOpen(1);
- SekIdle(cycles_to_burn - SekTotalCycles());
- SekClose();
- SekOpen(0);
- }
-
- gradius3_priority =(data & 0x04)>>2;
- gradius3_cpub_enable = data & 0x08;
- irqA_enable = data & 0x20;
- }
- return;
-
- case 0x0d8000:
- case 0x0d8001:
- interrupt_triggered = irqB_mask & 0x04;
- return;
-
- case 0x0e0000:
- case 0x0e0001:
- // watchdog
- return;
-
- case 0x0e8000:
- *soundlatch = data;
- return;
-
- case 0x0f0000:
- ZetSetVector(0xff);
- ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
-
- return;
- }
-
- if (address >= 0x14c000 && address <= 0x153fff) {
- address -= 0x14c000;
- K052109Write(address / 2, data);
- return;
- }
-}
-
-static UINT16 __fastcall gradius3_main_read_word(UINT32 address)
-{
- if (address >= 0x14c000 && address <= 0x153fff) {
- address -= 0x14c000;
- return K052109Read(address / 2);
- }
-
- return 0;
-}
-
-static UINT8 __fastcall gradius3_main_read_byte(UINT32 address)
-{
- switch (address)
- {
- case 0x0c8000:
- case 0x0c8001:
- return DrvInputs[0];
-
- case 0x0c8002:
- case 0x0c8003:
- return DrvInputs[1];
-
- case 0x0c8004:
- case 0x0c8005:
- return DrvInputs[2];
-
- case 0x0c8006:
- case 0x0c8007:
- return DrvDips[2];
-
- case 0x0d0000:
- case 0x0d0001:
- return DrvDips[0];
-
- case 0x0d0002:
- case 0x0d0003:
- return DrvDips[1];
- }
-
- if (address >= 0x14c000 && address <= 0x153fff) {
- address -= 0x14c000;
- return K052109Read(address / 2);
- }
-
- return 0;
-}
-
-static void __fastcall gradius3_sub_write_word(UINT32 address, UINT16 data)
-{
- if ((address & 0xfffffe) == 0x140000) {
- irqB_mask = (data >> 8) & 0x07;
- return;
- }
-
- if (address >= 0x24c000 && address <= 0x253fff) {
- address -= 0x24c000;
- K052109Write(address / 2, data);
- return;
- }
-
- if ((address & 0xfe0000) == 0x280000) {
- *((UINT16*)(DrvShareRAM2 + (address & 0x1fffe))) = data;
- expand_graphics_single(address);
- return;
- }
-
- if ((address & 0xffffff0) == 0x2c0000) {
- address -= 0x2c0000;
- K051937Write(address / 2, data);
- return;
- }
-
- if ((address & 0xffff800) == 0x2c0800) {
- address -= 0x2c0800;
- K051960Write(address /2, data);
- return;
- }
-}
-
-static void __fastcall gradius3_sub_write_byte(UINT32 address, UINT8 data)
-{
- if ((address & 0xfffffe) == 0x140000) {
- irqB_mask = data & 0x07;
- return;
- }
-
- if (address >= 0x24c000 && address <= 0x253fff) {
- address -= 0x24c000;
- K052109Write(address / 2, data);
- return;
- }
-
- if ((address & 0xfe0000) == 0x280000) {
- DrvShareRAM2[(address & 0x1ffff)^1] = data;
- expand_graphics_single(address);
- return;
- }
-
- if ((address & 0xffffff0) == 0x2c0000) {
- address -= 0x2c0000;
- K051937Write(address / 2, data);
- return;
- }
-
- if ((address & 0xffff800) == 0x2c0800) {
- address -= 0x2c0800;
- K051960Write(address /2, data);
- return;
- }
-}
-
-static UINT16 __fastcall gradius3_sub_read_word(UINT32 address)
-{
- if (address >= 0x24c000 && address <= 0x253fff) {
- address -= 0x24c000;
- return K052109Read(address / 2);
- }
-
- if ((address & 0xffffff0) == 0x2c0000) {
- address -= 0x2c0000;
- return K051937Read(address / 2);
- }
-
- if ((address & 0xffff800) == 0x2c0800) {
- address -= 0x2c0800;
- return K051960Read(address / 2);
- }
-
- return 0;
-}
-
-static UINT8 __fastcall gradius3_sub_read_byte(UINT32 address)
-{
- if (address >= 0x24c000 && address <= 0x253fff) {
- address -= 0x24c000;
- return K052109Read(address / 2);
- }
-
- if ((address & 0xffffff0) == 0x2c0000) {
- address -= 0x2c0000;
- return K051937Read(address / 2);
- }
-
- if ((address & 0xffff800) == 0x2c0800) {
- address -= 0x2c0800;
- return K051960Read(address / 2);
- }
-
- return 0;
-}
-
-static void k007232_bank(INT32 , INT32 data)
-{
- INT32 bank_A = (data >> 0) & 0x03;
- INT32 bank_B = (data >> 2) & 0x03;
-
- k007232_set_bank(0, bank_A, bank_B);
-}
-
-static void __fastcall gradius3_sound_write(UINT16 address, UINT8 data)
-{
- if ((address & 0xfff0) == 0xf020) {
- K007232WriteReg(0, address & 0x0f, data);
- return;
- }
-
- switch (address)
- {
- case 0xf000:
- k007232_bank(0, data);
- return;
-
- case 0xf030:
- BurnYM2151SelectRegister(data);
- return;
-
- case 0xf031:
- BurnYM2151WriteRegister(data);
- return;
- }
-}
-
-static UINT8 __fastcall gradius3_sound_read(UINT16 address)
-{
- if ((address & 0xfff0) == 0xf020) {
- return K007232ReadReg(0, address & 0x0f);
- }
-
- switch (address)
- {
- case 0xf010:
- ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
- return *soundlatch;
-
- case 0xf031:
- return BurnYM2151ReadStatus();
- }
-
- return 0;
-}
-
-static void DrvK007232VolCallback(INT32 v)
-{
- K007232SetVolumeF(0, 0, (v >> 0x4) * 0x11, 0);
- K007232SetVolumeF(0, 1, 0, (v & 0x0f) * 0x11);
-}
-
-static void K052109Callback(INT32 layer, INT32, INT32 *code, INT32 *color, INT32 *, INT32 *)
-{
- INT32 layer_colorbase[3] = { 0, 32, 48 };
-
- *code |= ((*color & 0x01) << 8) | ((*color & 0x1c) << 7);
- *code &= 0xfff;
- *color = layer_colorbase[layer] + ((*color & 0xe0) >> 5);
-}
-
-static void K051960Callback(INT32 *code, INT32 *color, INT32 *priority, INT32 *)
-{
- static INT32 primask[2][4] = { { 0xfa, 0xaa, 0xfa, 0xfe }, { 0xfc, 0xf0, 0x00, 0xfe } };
-
- *priority = primask[gradius3_priority][((*color & 0x60) >> 5)];
-
- *code |= (*color & 0x01) << 13;
- *code &= 0x3fff;
- *color = 0x10 + ((*color & 0x1e) >> 1);
-}
-
-static INT32 DrvDoReset()
-{
- DrvReset = 0;
-
- memset (AllRam, 0, RamEnd - AllRam);
-
- SekOpen(0);
- SekReset();
- SekClose();
-
- SekOpen(1);
- SekReset();
- SekClose();
-
- ZetOpen(0);
- ZetReset();
- ZetClose();
-
- BurnYM2151Reset();
-
- KonamiICReset();
-
- gradius3_priority = 0;
- gradius3_cpub_enable = 0;
- irqA_enable = 0;
- irqB_mask = 0;
-
- return 0;
-}
-
-static INT32 MemIndex()
-{
- UINT8 *Next; Next = AllMem;
-
- Drv68KROM0 = Next; Next += 0x100000;
- Drv68KROM1 = Next; Next += 0x100000;
- DrvZ80ROM = Next; Next += 0x010000;
-
- DrvGfxROM1 = Next; Next += 0x200000;
- DrvGfxROMExp0 = Next; Next += 0x040000;
- DrvGfxROMExp1 = Next; Next += 0x400000;
-
- DrvSndROM = Next; Next += 0x080000;
-
- konami_palette32 = (UINT32*)Next;
- DrvPalette = (UINT32*)Next; Next += 0x800 * sizeof(UINT32);
-
- AllRam = Next;
-
- DrvZ80RAM = Next; Next += 0x000800;
-
- soundlatch = Next; Next += 0x000001;
-
- Drv68KRAM0 = Next; Next += 0x004000;
- Drv68KRAM1 = Next; Next += 0x004000;
- DrvShareRAM = Next; Next += 0x004000;
- DrvShareRAM2 = Next; Next += 0x020000;
- DrvPalRAM = Next; Next += 0x001000;
-
- RamEnd = Next;
- MemEnd = Next;
-
- return 0;
-}
-
-static INT32 DrvGfxDecode()
-{
- INT32 Plane[4] = { 0x000, 0x01, 0x002, 0x003 };
- INT32 XOffs[16] = { 2*4, 3*4, 0*4, 1*4, 6*4, 7*4, 4*4, 5*4,
- 32*8+2*4, 32*8+3*4, 32*8+0*4, 32*8+1*4, 32*8+6*4, 32*8+7*4, 32*8+4*4, 32*8+5*4 };
- INT32 YOffs[16] = { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32,
- 64*8+0*32, 64*8+1*32, 64*8+2*32, 64*8+3*32, 64*8+4*32, 64*8+5*32, 64*8+6*32, 64*8+7*32 };
-
- GfxDecode(0x04000, 4, 16, 16, Plane, XOffs, YOffs, 0x400, DrvGfxROM1, DrvGfxROMExp1);
-
- return 0;
-}
-
-static INT32 DrvInit()
-{
- GenericTilesInit();
-
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(Drv68KROM0 + 0x000001, 0, 2)) return 1;
- if (BurnLoadRom(Drv68KROM0 + 0x000000, 1, 2)) return 1;
-
- if (BurnLoadRom(Drv68KROM1 + 0x000001, 2, 2)) return 1;
- if (BurnLoadRom(Drv68KROM1 + 0x000000, 3, 2)) return 1;
- if (BurnLoadRom(Drv68KROM1 + 0x040001, 4, 2)) return 1;
- if (BurnLoadRom(Drv68KROM1 + 0x040000, 5, 2)) return 1;
- if (BurnLoadRom(Drv68KROM1 + 0x080001, 6, 2)) return 1;
- if (BurnLoadRom(Drv68KROM1 + 0x080000, 7, 2)) return 1;
- if (BurnLoadRom(Drv68KROM1 + 0x0c0001, 8, 2)) return 1;
- if (BurnLoadRom(Drv68KROM1 + 0x0c0000, 9, 2)) return 1;
-
- if (BurnLoadRom(DrvZ80ROM + 0x000000, 10, 1)) return 1;
-
- if (BurnLoadRomExt(DrvGfxROM1 + 0x000000, 11, 4, LD_GROUP(2))) return 1;
- if (BurnLoadRomExt(DrvGfxROM1 + 0x000002, 12, 4, LD_GROUP(2))) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x100000, 13, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x100001, 14, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x100002, 15, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x100003, 16, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x180000, 17, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x180001, 18, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x180002, 19, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x180003, 20, 4)) return 1;
-
- if (BurnLoadRom(DrvSndROM + 0x000000, 21, 1)) return 1;
- if (BurnLoadRom(DrvSndROM + 0x040000, 22, 1)) return 1;
- if (BurnLoadRom(DrvSndROM + 0x060000, 23, 1)) return 1;
-
- DrvGfxDecode();
- }
-
- SekInit(0, 0x68000);
- SekOpen(0);
- SekMapMemory(Drv68KROM0, 0x000000, 0x03ffff, MAP_ROM);
- SekMapMemory(Drv68KRAM0, 0x040000, 0x043fff, MAP_RAM);
- SekMapMemory(DrvPalRAM, 0x080000, 0x080fff, MAP_RAM);
- SekMapMemory(DrvShareRAM, 0x100000, 0x103fff, MAP_RAM);
- SekMapMemory(DrvShareRAM2, 0x180000, 0x19ffff, MAP_ROM);
- SekSetWriteWordHandler(0, gradius3_main_write_word);
- SekSetWriteByteHandler(0, gradius3_main_write_byte);
- SekSetReadWordHandler(0, gradius3_main_read_word);
- SekSetReadByteHandler(0, gradius3_main_read_byte);
- SekClose();
-
- SekInit(1, 0x68000);
- SekOpen(1);
- SekMapMemory(Drv68KROM1, 0x000000, 0x0fffff, MAP_ROM);
- SekMapMemory(Drv68KRAM1, 0x100000, 0x103fff, MAP_RAM);
- SekMapMemory(DrvShareRAM, 0x200000, 0x203fff, MAP_RAM);
- SekMapMemory(DrvShareRAM2, 0x280000, 0x29ffff, MAP_ROM);
- SekMapMemory(DrvGfxROM1, 0x400000, 0x5fffff, MAP_ROM);
- SekSetWriteWordHandler(0, gradius3_sub_write_word);
- SekSetWriteByteHandler(0, gradius3_sub_write_byte);
- SekSetReadWordHandler(0, gradius3_sub_read_word);
- SekSetReadByteHandler(0, gradius3_sub_read_byte);
- SekClose();
-
- ZetInit(0);
- ZetOpen(0);
- ZetMapArea(0x0000, 0xefff, 0, DrvZ80ROM);
- ZetMapArea(0x0000, 0xefff, 2, DrvZ80ROM);
- ZetMapArea(0xf800, 0xffff, 0, DrvZ80RAM);
- ZetMapArea(0xf800, 0xffff, 1, DrvZ80RAM);
- ZetMapArea(0xf800, 0xffff, 2, DrvZ80RAM);
- ZetSetWriteHandler(gradius3_sound_write);
- ZetSetReadHandler(gradius3_sound_read);
- ZetClose();
-
- BurnYM2151Init(3579545);
- BurnYM2151SetRoute(BURN_SND_YM2151_YM2151_ROUTE_1, 1.00, BURN_SND_ROUTE_LEFT);
- BurnYM2151SetRoute(BURN_SND_YM2151_YM2151_ROUTE_2, 1.00, BURN_SND_ROUTE_RIGHT);
-
- K007232Init(0, 3579545, DrvSndROM, 0x80000);
- K007232SetPortWriteHandler(0, DrvK007232VolCallback);
- K007232PCMSetAllRoutes(0, 0.20, BURN_SND_ROUTE_BOTH);
-
- K052109Init(DrvShareRAM2, DrvGfxROMExp0, 0x1ffff);
- K052109SetCallback(K052109Callback);
- K052109AdjustScroll(-8, 0);
-
- K051960Init(DrvGfxROM1, DrvGfxROMExp1, 0x1fffff);
- K051960SetCallback(K051960Callback);
- K051960SetSpriteOffset(-8, 0);
-
- DrvDoReset();
-
- return 0;
-}
-
-static INT32 DrvbInit()
-{
- GenericTilesInit();
-
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(Drv68KROM0 + 0x000001, 0, 2)) return 1;
- if (BurnLoadRom(Drv68KROM0 + 0x000000, 1, 2)) return 1;
-
- if (BurnLoadRom(Drv68KROM1 + 0x000001, 2, 2)) return 1;
- if (BurnLoadRom(Drv68KROM1 + 0x000000, 3, 2)) return 1;
- if (BurnLoadRom(Drv68KROM1 + 0x040001, 4, 2)) return 1;
- if (BurnLoadRom(Drv68KROM1 + 0x040000, 5, 2)) return 1;
- if (BurnLoadRom(Drv68KROM1 + 0x080001, 6, 2)) return 1;
- if (BurnLoadRom(Drv68KROM1 + 0x080000, 7, 2)) return 1;
- if (BurnLoadRom(Drv68KROM1 + 0x0c0001, 8, 2)) return 1;
- if (BurnLoadRom(Drv68KROM1 + 0x0c0000, 9, 2)) return 1;
-
- if (BurnLoadRom(DrvZ80ROM + 0x000000, 10, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM1 + 0x000000, 11, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x000001, 12, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x000002, 13, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x000003, 14, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x080000, 15, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x080001, 16, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x080002, 17, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x080003, 18, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x100000, 19, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x100001, 20, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x100002, 21, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x100003, 22, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x180000, 23, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x180001, 24, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x180002, 25, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x180003, 26, 4)) return 1;
-
- if (BurnLoadRom(DrvSndROM + 0x000000, 27, 1)) return 1;
- if (BurnLoadRom(DrvSndROM + 0x020000, 28, 1)) return 1;
- if (BurnLoadRom(DrvSndROM + 0x040000, 29, 1)) return 1;
- if (BurnLoadRom(DrvSndROM + 0x060000, 30, 1)) return 1;
-
- DrvGfxDecode();
- }
-
- SekInit(0, 0x68000);
- SekOpen(0);
- SekMapMemory(Drv68KROM0, 0x000000, 0x03ffff, MAP_ROM);
- SekMapMemory(Drv68KRAM0, 0x040000, 0x043fff, MAP_RAM);
- SekMapMemory(DrvPalRAM, 0x080000, 0x080fff, MAP_RAM);
- SekMapMemory(DrvShareRAM, 0x100000, 0x103fff, MAP_RAM);
- SekMapMemory(DrvShareRAM2, 0x180000, 0x19ffff, MAP_ROM);
- SekSetWriteWordHandler(0, gradius3_main_write_word);
- SekSetWriteByteHandler(0, gradius3_main_write_byte);
- SekSetReadWordHandler(0, gradius3_main_read_word);
- SekSetReadByteHandler(0, gradius3_main_read_byte);
- SekClose();
-
- SekInit(1, 0x68000);
- SekOpen(1);
- SekMapMemory(Drv68KROM1, 0x000000, 0x0fffff, MAP_ROM);
- SekMapMemory(Drv68KRAM1, 0x100000, 0x103fff, MAP_RAM);
- SekMapMemory(DrvShareRAM, 0x200000, 0x203fff, MAP_RAM);
- SekMapMemory(DrvShareRAM2, 0x280000, 0x29ffff, MAP_ROM);
- SekMapMemory(DrvGfxROM1, 0x400000, 0x5fffff, MAP_ROM);
- SekSetWriteWordHandler(0, gradius3_sub_write_word);
- SekSetWriteByteHandler(0, gradius3_sub_write_byte);
- SekSetReadWordHandler(0, gradius3_sub_read_word);
- SekSetReadByteHandler(0, gradius3_sub_read_byte);
- SekClose();
-
- ZetInit(0);
- ZetOpen(0);
- ZetMapArea(0x0000, 0xefff, 0, DrvZ80ROM);
- ZetMapArea(0x0000, 0xefff, 2, DrvZ80ROM);
- ZetMapArea(0xf800, 0xffff, 0, DrvZ80RAM);
- ZetMapArea(0xf800, 0xffff, 1, DrvZ80RAM);
- ZetMapArea(0xf800, 0xffff, 2, DrvZ80RAM);
- ZetSetWriteHandler(gradius3_sound_write);
- ZetSetReadHandler(gradius3_sound_read);
- ZetClose();
-
- BurnYM2151Init(3579545);
- BurnYM2151SetRoute(BURN_SND_YM2151_YM2151_ROUTE_1, 1.00, BURN_SND_ROUTE_LEFT);
- BurnYM2151SetRoute(BURN_SND_YM2151_YM2151_ROUTE_2, 1.00, BURN_SND_ROUTE_RIGHT);
-
- K007232Init(0, 3579545, DrvSndROM, 0x80000);
- K007232SetPortWriteHandler(0, DrvK007232VolCallback);
- K007232PCMSetAllRoutes(0, 0.20, BURN_SND_ROUTE_BOTH);
-
- K052109Init(DrvShareRAM2, DrvGfxROMExp0, 0x1ffff);
- K052109SetCallback(K052109Callback);
- K052109AdjustScroll(-8, 0);
-
- K051960Init(DrvGfxROM1, DrvGfxROMExp1, 0x1fffff);
- K051960SetCallback(K051960Callback);
- K051960SetSpriteOffset(-8, 0);
-
- DrvDoReset();
-
- return 0;
-}
-
-static INT32 DrvExit()
-{
- GenericTilesExit();
-
- KonamiICExit();
-
- SekExit();
- ZetExit();
-
- K007232Exit();
- BurnYM2151Exit();
-
- BurnFree (AllMem);
-
- return 0;
-}
-
-static inline void character_ram_decode()
-{
- for (INT32 i = 0; i < 0x20000; i++) {
-
- INT32 t = DrvShareRAM2[i ^ 1];
-
- DrvGfxROMExp0[i * 2 + 0] = t >> 4;
- DrvGfxROMExp0[i * 2 + 1] = t & 0x0f;
- }
-}
-
-static inline void DrvRecalcPalette()
-{
- UINT8 r,g,b;
- UINT16 *p = (UINT16*)DrvPalRAM;
- for (INT32 i = 0; i < 0x1000 / 2; i++) {
- r = (BURN_ENDIAN_SWAP_INT16(p[i]) >> 10) & 0x1f;
- g = (BURN_ENDIAN_SWAP_INT16(p[i]) >> 5) & 0x1f;
- b = (BURN_ENDIAN_SWAP_INT16(p[i]) >> 0) & 0x1f;
-
- r = (r << 3) | (r >> 2);
- g = (g << 3) | (g >> 2);
- b = (b << 3) | (b >> 2);
-
- DrvPalette[i] = (r<<16)+(g<<8)+b;
- }
-}
-
-static INT32 DrvDraw()
-{
- if (DrvRecalc) {
- DrvRecalcPalette();
- }
-
- K052109Write(0x1d80,0x10);
- K052109Write(0x1f00,0x32);
-
- K052109UpdateScroll();
-
- if (gradius3_priority == 0)
- {
- if (nSpriteEnable & 1) K052109RenderLayer(1, K052109_OPAQUE, 2);
- if (nSpriteEnable & 2) K052109RenderLayer(2, 0, 4);
- if (nSpriteEnable & 4) K052109RenderLayer(0, 0, 1);
- }
- else
- {
- if (nSpriteEnable & 1) K052109RenderLayer(0, K052109_OPAQUE, 1);
- if (nSpriteEnable & 2) K052109RenderLayer(1, 0, 2);
- if (nSpriteEnable & 4) K052109RenderLayer(2, 0, 4);
- }
-
- if (nBurnLayer & 8) K051960SpritesRender(-1, -1);
-
- KonamiBlendCopy(DrvPalette);
-
- return 0;
-}
-
-static INT32 DrvFrame()
-{
- if (DrvReset) {
- DrvDoReset();
- }
-
- {
- memset (DrvInputs, 0xff, 3 * sizeof(INT16));
- for (INT32 i = 0; i < 8; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- DrvInputs[2] ^= (DrvJoy3[i] & 1) << i;
- }
-
- // Clear opposites
- if ((DrvInputs[1] & 0x03) == 0) DrvInputs[1] |= 0x03;
- if ((DrvInputs[1] & 0x0c) == 0) DrvInputs[1] |= 0x0c;
- if ((DrvInputs[2] & 0x03) == 0) DrvInputs[2] |= 0x03;
- if ((DrvInputs[2] & 0x0c) == 0) DrvInputs[2] |= 0x0c;
- }
-
- SekNewFrame();
-
- INT32 nCycleSegment;
- INT32 nSoundBufferPos = 0;
- INT32 nInterleave = 256;
- INT32 nCyclesTotal[3] = { 10000000 / 60, 10000000 / 60, 3579545 / 60 };
- INT32 nCyclesDone[3] = { 0, 0, 0 };
-
- ZetOpen(0);
-
- for (INT32 i = 0; i < nInterleave; i++)
- {
- SekOpen(0);
- nCycleSegment = (nCyclesTotal[0] / nInterleave) * (i + 1);
- nCyclesDone[0] += SekRun(nCycleSegment - nCyclesDone[0]);
- if (i == 240 && irqA_enable) SekSetIRQLine(2, CPU_IRQSTATUS_AUTO);
- SekClose();
-
- if (gradius3_cpub_enable) {
- SekOpen(1);
- nCycleSegment = (nCyclesTotal[1] / nInterleave) * (i + 1);
- nCyclesDone[1] += SekRun(nCycleSegment - SekTotalCycles());
- if (interrupt_triggered) SekSetIRQLine(4, CPU_IRQSTATUS_AUTO);
- if (i == 240 && (irqB_mask & 1))
- SekSetIRQLine(1, CPU_IRQSTATUS_AUTO);
- if (i == 16 && (irqB_mask & 2))
- SekSetIRQLine(2, CPU_IRQSTATUS_AUTO);
- SekClose();
- }
-
- nCycleSegment = (nCyclesTotal[2] / nInterleave) * (i + 1);
- nCyclesDone[2] += ZetRun(nCycleSegment - nCyclesDone[2]);
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen / nInterleave;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- BurnYM2151Render(pSoundBuf, nSegmentLength);
- nSoundBufferPos += nSegmentLength;
- }
-
- interrupt_triggered = 0;
- }
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
- if (nSegmentLength) {
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- BurnYM2151Render(pSoundBuf, nSegmentLength);
- }
- K007232Update(0, pBurnSoundOut, nBurnSoundLen); // only update K007232 once per frame
- }
-
- ZetClose();
-
- if (pBurnDraw) {
- DrvDraw();
- }
-
- return 0;
-}
-
-static INT32 DrvScan(INT32 nAction,INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin) {
- *pnMin = 0x029704;
- }
-
- if (nAction & ACB_VOLATILE) {
- memset(&ba, 0, sizeof(ba));
-
- ba.Data = AllRam;
- ba.nLen = RamEnd - AllRam;
- ba.szName = "All Ram";
- BurnAcb(&ba);
-
- SekScan(nAction);
- ZetScan(nAction);
-
- BurnYM2151Scan(nAction);
- K007232Scan(nAction, pnMin);
-
- KonamiICScan(nAction);
-
- SCAN_VAR(gradius3_priority);
- SCAN_VAR(gradius3_cpub_enable);
- SCAN_VAR(irqA_enable);
- SCAN_VAR(irqB_mask);
- }
-
- if (nAction & ACB_WRITE) {
- character_ram_decode();
- }
-
- return 0;
-}
-
-
-// Gradius III (World, program code R)
-
-static struct BurnRomInfo grdius3RomDesc[] = {
- { "945_r13.f15", 0x20000, 0xcffd103f, 1 | BRF_PRG | BRF_ESS }, // 0 68k #0 Code
- { "945_r12.e15", 0x20000, 0x0b968ef6, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "945_m09.r17", 0x20000, 0xb4a6df25, 2 | BRF_PRG | BRF_ESS }, // 2 68k #1 Code
- { "945_m08.n17", 0x20000, 0x74e981d2, 2 | BRF_PRG | BRF_ESS }, // 3
- { "945_l06b.r11", 0x20000, 0x83772304, 2 | BRF_PRG | BRF_ESS }, // 4
- { "945_l06a.n11", 0x20000, 0xe1fd75b6, 2 | BRF_PRG | BRF_ESS }, // 5
- { "945_l07c.r15", 0x20000, 0xc1e399b6, 2 | BRF_PRG | BRF_ESS }, // 6
- { "945_l07a.n15", 0x20000, 0x96222d04, 2 | BRF_PRG | BRF_ESS }, // 7
- { "945_l07d.r13", 0x20000, 0x4c16d4bd, 2 | BRF_PRG | BRF_ESS }, // 8
- { "945_l07b.n13", 0x20000, 0x5e209d01, 2 | BRF_PRG | BRF_ESS }, // 9
-
- { "945_r05.d9", 0x10000, 0xc8c45365, 3 | BRF_PRG | BRF_ESS }, // 10 Z80 Code
-
- { "945_a02.l3", 0x80000, 0x4dfffd74, 4 | BRF_GRA }, // 11 Sprites
- { "945_a01.h3", 0x80000, 0x339d6dd2, 4 | BRF_GRA }, // 12
- { "945_l04a.k6", 0x20000, 0x884e21ee, 4 | BRF_GRA }, // 13
- { "945_l04c.m6", 0x20000, 0x45bcd921, 4 | BRF_GRA }, // 14
- { "945_l03a.e6", 0x20000, 0xa67ef087, 4 | BRF_GRA }, // 15
- { "945_l03c.h6", 0x20000, 0xa56be17a, 4 | BRF_GRA }, // 16
- { "945_l04b.k8", 0x20000, 0x843bc67d, 4 | BRF_GRA }, // 17
- { "945_l04d.m8", 0x20000, 0x0a98d08e, 4 | BRF_GRA }, // 18
- { "945_l03b.e8", 0x20000, 0x933e68b9, 4 | BRF_GRA }, // 19
- { "945_l03d.h8", 0x20000, 0xf375e87b, 4 | BRF_GRA }, // 20
-
- { "945_a10.b15", 0x40000, 0x1d083e10, 5 | BRF_SND }, // 21 K007232
- { "945_l11a.c18", 0x20000, 0x6043f4eb, 5 | BRF_SND }, // 22
- { "945_l11b.c20", 0x20000, 0x89ea3baf, 5 | BRF_SND }, // 23
-
- { "945l14.j28", 0x00100, 0xc778c189, 6 | BRF_OPT }, // 24 Prom
-};
-
-STD_ROM_PICK(grdius3)
-STD_ROM_FN(grdius3)
-
-struct BurnDriver BurnDrvGrdius3 = {
- "gradius3", NULL, NULL, NULL, "1989",
- "Gradius III (World, program code R)\0", NULL, "Konami", "GX945",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_PREFIX_KONAMI, GBF_HORSHOOT, 0,
- NULL, grdius3RomInfo, grdius3RomName, NULL, NULL, Gradius3InputInfo, Gradius3DIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 320, 224, 4, 3
-};
-
-
-// Gradius III (Japan, program code S)
-
-static struct BurnRomInfo gradius3jRomDesc[] = {
- { "945_s13.f15", 0x20000, 0x70c240a2, 1 | BRF_PRG | BRF_ESS }, // 0 68k #0 Code
- { "945_s12.e15", 0x20000, 0xbbc300d4, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "945_m09.r17", 0x20000, 0xb4a6df25, 2 | BRF_PRG | BRF_ESS }, // 2 68k #1 Code
- { "945_m08.n17", 0x20000, 0x74e981d2, 2 | BRF_PRG | BRF_ESS }, // 3
- { "945_l06b.r11", 0x20000, 0x83772304, 2 | BRF_PRG | BRF_ESS }, // 4
- { "945_l06a.n11", 0x20000, 0xe1fd75b6, 2 | BRF_PRG | BRF_ESS }, // 5
- { "945_l07c.r15", 0x20000, 0xc1e399b6, 2 | BRF_PRG | BRF_ESS }, // 6
- { "945_l07a.n15", 0x20000, 0x96222d04, 2 | BRF_PRG | BRF_ESS }, // 7
- { "945_l07d.r13", 0x20000, 0x4c16d4bd, 2 | BRF_PRG | BRF_ESS }, // 8
- { "945_l07b.n13", 0x20000, 0x5e209d01, 2 | BRF_PRG | BRF_ESS }, // 9
-
- { "945_m05.d9", 0x10000, 0xc8c45365, 3 | BRF_PRG | BRF_ESS }, // 10 Z80 Code
-
- { "945_a02.l3", 0x80000, 0x4dfffd74, 4 | BRF_GRA }, // 11 Sprites
- { "945_a01.h3", 0x80000, 0x339d6dd2, 4 | BRF_GRA }, // 12
- { "945_l04a.k6", 0x20000, 0x884e21ee, 4 | BRF_GRA }, // 13
- { "945_l04c.m6", 0x20000, 0x45bcd921, 4 | BRF_GRA }, // 14
- { "945_l03a.e6", 0x20000, 0xa67ef087, 4 | BRF_GRA }, // 15
- { "945_l03c.h6", 0x20000, 0xa56be17a, 4 | BRF_GRA }, // 16
- { "945_l04b.k8", 0x20000, 0x843bc67d, 4 | BRF_GRA }, // 17
- { "945_l04d.m8", 0x20000, 0x0a98d08e, 4 | BRF_GRA }, // 18
- { "945_l03b.e8", 0x20000, 0x933e68b9, 4 | BRF_GRA }, // 19
- { "945_l03d.h8", 0x20000, 0xf375e87b, 4 | BRF_GRA }, // 20
-
- { "945_a10.b15", 0x40000, 0x1d083e10, 5 | BRF_SND }, // 21 K007232
- { "945_l11a.c18", 0x20000, 0x6043f4eb, 5 | BRF_SND }, // 22
- { "945_l11b.c20", 0x20000, 0x89ea3baf, 5 | BRF_SND }, // 23
-
- { "945l14.j28", 0x00100, 0xc778c189, 6 | BRF_OPT }, // 24 Prom
-};
-
-STD_ROM_PICK(gradius3j)
-STD_ROM_FN(gradius3j)
-
-struct BurnDriver BurnDrvGradius3j = {
- "gradius3j", "gradius3", NULL, NULL, "1989",
- "Gradius III (Japan, program code S)\0", NULL, "Konami", "GX945",
- L"Gradius III \u4F1D\u8AAC\u304B\u3089\u795E\u8A71\u3078 (Japan, program code S)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_KONAMI, GBF_HORSHOOT, 0,
- NULL, gradius3jRomInfo, gradius3jRomName, NULL, NULL, Gradius3InputInfo, Gradius3DIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 320, 224, 4, 3
-};
-
-
-// Gradius III (Japan, program code S, split)
-// same as normal gradius3j set in content but with some ROMs split and populated differently.
-
-static struct BurnRomInfo gradius3jsRomDesc[] = {
- { "945_s13.f15", 0x20000, 0x70c240a2, 1 | BRF_PRG | BRF_ESS }, // 0 68k #0 Code
- { "945_s12.e15", 0x20000, 0xbbc300d4, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "945_m09.r17", 0x20000, 0xb4a6df25, 2 | BRF_PRG | BRF_ESS }, // 2 68k #1 Code
- { "945_m08.n17", 0x20000, 0x74e981d2, 2 | BRF_PRG | BRF_ESS }, // 3
- { "945_l06b.r11", 0x20000, 0x83772304, 2 | BRF_PRG | BRF_ESS }, // 4
- { "945_l06a.n11", 0x20000, 0xe1fd75b6, 2 | BRF_PRG | BRF_ESS }, // 5
- { "945_l07c.r15", 0x20000, 0xc1e399b6, 2 | BRF_PRG | BRF_ESS }, // 6
- { "945_l07a.n15", 0x20000, 0x96222d04, 2 | BRF_PRG | BRF_ESS }, // 7
- { "945_l07d.r13", 0x20000, 0x4c16d4bd, 2 | BRF_PRG | BRF_ESS }, // 8
- { "945_l07b.n13", 0x20000, 0x5e209d01, 2 | BRF_PRG | BRF_ESS }, // 9
-
- { "945_m05.d9", 0x10000, 0xc8c45365, 3 | BRF_PRG | BRF_ESS }, // 10 Z80 Code
-
- { "945_A02A.K2", 0x20000, 0xfbb81511, 4 | BRF_GRA }, // 11 Sprites
- { "945_A02C.M2", 0x20000, 0x031b55e8, 4 | BRF_GRA }, // 12
- { "945_A01A.E2", 0x20000, 0xbace5abb, 4 | BRF_GRA }, // 13
- { "945_A01C.H2", 0x20000, 0xd91b29a6, 4 | BRF_GRA }, // 14
- { "945_A02B.K4", 0x20000, 0xc0fed4ab, 4 | BRF_GRA }, // 15
- { "945_A02D.M4", 0x20000, 0xd462817c, 4 | BRF_GRA }, // 16
- { "945_A01B.E4", 0x20000, 0xb426090e, 4 | BRF_GRA }, // 17
- { "945_A01D.H4", 0x20000, 0x3990c09a, 4 | BRF_GRA }, // 18
- { "945_l04a.k6", 0x20000, 0x884e21ee, 4 | BRF_GRA }, // 19
- { "945_l04c.m6", 0x20000, 0x45bcd921, 4 | BRF_GRA }, // 20
- { "945_l03a.e6", 0x20000, 0xa67ef087, 4 | BRF_GRA }, // 21
- { "945_l03c.h6", 0x20000, 0xa56be17a, 4 | BRF_GRA }, // 22
- { "945_l04b.k8", 0x20000, 0x843bc67d, 4 | BRF_GRA }, // 23
- { "945_l04d.m8", 0x20000, 0x0a98d08e, 4 | BRF_GRA }, // 24
- { "945_l03b.e8", 0x20000, 0x933e68b9, 4 | BRF_GRA }, // 25
- { "945_l03d.h8", 0x20000, 0xf375e87b, 4 | BRF_GRA }, // 26
-
- { "945_A10A.C14", 0x20000, 0xec717414, 5 | BRF_SND }, // 27 K007232
- { "945_A10B.C16", 0x20000, 0x709e30e4, 5 | BRF_SND }, // 28
- { "945_l11a.c18", 0x20000, 0x6043f4eb, 5 | BRF_SND }, // 29
- { "945_l11b.c20", 0x20000, 0x89ea3baf, 5 | BRF_SND }, // 30
-
- { "945l14.j28", 0x00100, 0xc778c189, 6 | BRF_OPT }, // 31 Prom
-};
-
-STD_ROM_PICK(gradius3js)
-STD_ROM_FN(gradius3js)
-
-struct BurnDriver BurnDrvGradius3js = {
- "gradius3js", "gradius3", NULL, NULL, "1989",
- "Gradius III (Japan, program code S, split)\0", NULL, "Konami", "GX945",
- L"Gradius III \u4F1D\u8AAC\u304B\u3089\u795E\u8A71\u3078 (Japan, program code S, split)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_KONAMI, GBF_HORSHOOT, 0,
- NULL, gradius3jsRomInfo, gradius3jsRomName, NULL, NULL, Gradius3InputInfo, Gradius3DIPInfo,
- DrvbInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 320, 224, 4, 3
-};
-
-
-// Gradius III (Asia)
-
-static struct BurnRomInfo grdius3aRomDesc[] = {
- { "945_13.f15", 0x20000, 0x9974fe6b, 1 | BRF_PRG | BRF_ESS }, // 0 68k #0 Code
- { "945_12.e15", 0x20000, 0xe9771b91, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "945_m09.r17", 0x20000, 0xb4a6df25, 2 | BRF_PRG | BRF_ESS }, // 2 68k #1 Code
- { "945_m08.n17", 0x20000, 0x74e981d2, 2 | BRF_PRG | BRF_ESS }, // 3
- { "945_l06b.r11", 0x20000, 0x83772304, 2 | BRF_PRG | BRF_ESS }, // 4
- { "945_l06a.n11", 0x20000, 0xe1fd75b6, 2 | BRF_PRG | BRF_ESS }, // 5
- { "945_l07c.r15", 0x20000, 0xc1e399b6, 2 | BRF_PRG | BRF_ESS }, // 6
- { "945_l07a.n15", 0x20000, 0x96222d04, 2 | BRF_PRG | BRF_ESS }, // 7
- { "945_l07d.r13", 0x20000, 0x4c16d4bd, 2 | BRF_PRG | BRF_ESS }, // 8
- { "945_l07b.n13", 0x20000, 0x5e209d01, 2 | BRF_PRG | BRF_ESS }, // 9
-
- { "945_m05.d9", 0x10000, 0xc8c45365, 3 | BRF_PRG | BRF_ESS }, // 10 Z80 Code
-
- { "945_a02.l3", 0x80000, 0x4dfffd74, 4 | BRF_GRA }, // 11 Sprites
- { "945_a01.h3", 0x80000, 0x339d6dd2, 4 | BRF_GRA }, // 12
- { "945_l04a.k6", 0x20000, 0x884e21ee, 4 | BRF_GRA }, // 13
- { "945_l04c.m6", 0x20000, 0x45bcd921, 4 | BRF_GRA }, // 14
- { "945_l03a.e6", 0x20000, 0xa67ef087, 4 | BRF_GRA }, // 15
- { "945_l03c.h6", 0x20000, 0xa56be17a, 4 | BRF_GRA }, // 16
- { "945_l04b.k8", 0x20000, 0x843bc67d, 4 | BRF_GRA }, // 17
- { "945_l04d.m8", 0x20000, 0x0a98d08e, 4 | BRF_GRA }, // 18
- { "945_l03b.e8", 0x20000, 0x933e68b9, 4 | BRF_GRA }, // 19
- { "945_l03d.h8", 0x20000, 0xf375e87b, 4 | BRF_GRA }, // 20
-
- { "945_a10.b15", 0x40000, 0x1d083e10, 5 | BRF_SND }, // 21 K007232
- { "945_l11a.c18", 0x20000, 0x6043f4eb, 5 | BRF_SND }, // 22
- { "945_l11b.c20", 0x20000, 0x89ea3baf, 5 | BRF_SND }, // 23
-
- { "945l14.j28", 0x00100, 0xc778c189, 6 | BRF_OPT }, // 24 Prom
-};
-
-STD_ROM_PICK(grdius3a)
-STD_ROM_FN(grdius3a)
-
-struct BurnDriver BurnDrvGrdius3a = {
- "gradius3a", "gradius3", NULL, NULL, "1989",
- "Gradius III (Asia)\0", NULL, "Konami", "GX945",
- L"Gradius III \u4F1D\u8AAC\u304B\u3089\u795E\u8A71\u3078 (Asia)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_KONAMI, GBF_HORSHOOT, 0,
- NULL, grdius3aRomInfo, grdius3aRomName, NULL, NULL, Gradius3InputInfo, Gradius3DIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 320, 224, 4, 3
-};
diff --git a/jan/src/burn/drv/konami/d_gyruss.cpp b/jan/src/burn/drv/konami/d_gyruss.cpp
deleted file mode 100644
index bacc2ed00..000000000
--- a/jan/src/burn/drv/konami/d_gyruss.cpp
+++ /dev/null
@@ -1,1229 +0,0 @@
-// FB Alpha Gyruss driver module
-// Based on MAME driver by Mirko Buffoni, Michael Cuddy, and Nicola Salmoria
-//
-// Massive overhaul by dink on Feb. 9, 2015
-
-#include "tiles_generic.h"
-#include "z80_intf.h"
-#include "m6809_intf.h"
-#include "i8039.h"
-#include "driver.h"
-#include "flt_rc.h"
-#include "dac.h"
-extern "C" {
-#include "ay8910.h"
-}
-
-static UINT8 *AllMem;
-static UINT8 *MemEnd;
-static UINT8 *AllRam;
-static UINT8 *RamEnd;
-static UINT8 *DrvZ80ROM0;
-static UINT8 *DrvZ80ROM1;
-static UINT8 *DrvM6809ROM;
-static UINT8 *DrvM6809DecROM;
-static UINT8 *DrvI8039ROM;
-static UINT8 *DrvGfxROM0;
-static UINT8 *DrvGfxROM1;
-static UINT8 *DrvGfxROM2;
-static UINT8 *DrvColPROM;
-static UINT8 *DrvSprRAM;
-static UINT8 *DrvColRAM;
-static UINT8 *DrvVidRAM;
-static UINT8 *DrvZ80RAM0;
-static UINT8 *DrvZ80RAM1;
-static UINT8 *DrvShareRAM;
-static UINT8 *DrvM6809RAM;
-static UINT32 *DrvPalette;
-static UINT32 *Palette;
-static UINT8 DrvRecalc;
-
-static INT16 *pAY8910Buffer[15];
-
-static UINT8 DrvJoy1[8];
-static UINT8 DrvJoy2[8];
-static UINT8 DrvJoy3[8];
-static UINT8 DrvDips[3];
-static UINT8 DrvInputs[3];
-static UINT8 DrvReset;
-
-static UINT8 *soundlatch;
-static UINT8 *soundlatch2;
-static UINT8 *flipscreen;
-static UINT8 *interrupt_enable0;
-static UINT8 *interrupt_enable1;
-
-static INT32 scanline;
-
-static struct BurnInputInfo GyrussInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy1 + 0, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 3, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy2 + 2, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy2 + 3, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy2 + 0, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy2 + 1, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy2 + 4, "p1 fire 1" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy1 + 1, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy1 + 4, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvJoy3 + 2, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy3 + 3, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy3 + 0, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy3 + 1, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy3 + 4, "p2 fire 1" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service", BIT_DIGITAL, DrvJoy1 + 2, "service" },
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip" },
- {"Dip C", BIT_DIPSWITCH, DrvDips + 2, "dip" },
-};
-
-STDINPUTINFO(Gyruss)
-
-static struct BurnDIPInfo GyrussDIPList[]=
-{
- // Default Values
- {0x10, 0xff, 0xff, 0xff, NULL },
- {0x11, 0xff, 0xff, 0x3b, NULL },
- {0x12, 0xff, 0xff, 0x00, NULL },
-
- {0 , 0xfe, 0 , 16, "Coin A" },
- {0x10, 0x01, 0x0f, 0x02, "4 Coins 1 Credits " },
- {0x10, 0x01, 0x0f, 0x05, "3 Coins 1 Credits " },
- {0x10, 0x01, 0x0f, 0x08, "2 Coins 1 Credits " },
- {0x10, 0x01, 0x0f, 0x04, "3 Coins 2 Credits " },
- {0x10, 0x01, 0x0f, 0x01, "4 Coins 3 Credits " },
- {0x10, 0x01, 0x0f, 0x0f, "1 Coin 1 Credits " },
- {0x10, 0x01, 0x0f, 0x03, "3 Coins 4 Credits " },
- {0x10, 0x01, 0x0f, 0x07, "2 Coins 3 Credits " },
- {0x10, 0x01, 0x0f, 0x0e, "1 Coin 2 Credits " },
- {0x10, 0x01, 0x0f, 0x06, "2 Coins 5 Credits " },
- {0x10, 0x01, 0x0f, 0x0d, "1 Coin 3 Credits " },
- {0x10, 0x01, 0x0f, 0x0c, "1 Coin 4 Credits " },
- {0x10, 0x01, 0x0f, 0x0b, "1 Coin 5 Credits " },
- {0x10, 0x01, 0x0f, 0x0a, "1 Coin 6 Credits " },
- {0x10, 0x01, 0x0f, 0x09, "1 Coin 7 Credits " },
- {0x10, 0x01, 0x0f, 0x00, "Free Play" },
-
- {0 , 0xfe, 0 , 16, "Coin B" },
- {0x10, 0x01, 0xf0, 0x20, "4 Coins 1 Credits " },
- {0x10, 0x01, 0xf0, 0x50, "3 Coins 1 Credits " },
- {0x10, 0x01, 0xf0, 0x80, "2 Coins 1 Credits " },
- {0x10, 0x01, 0xf0, 0x40, "3 Coins 2 Credits " },
- {0x10, 0x01, 0xf0, 0x10, "4 Coins 3 Credits " },
- {0x10, 0x01, 0xf0, 0xf0, "1 Coin 1 Credits " },
- {0x10, 0x01, 0xf0, 0x30, "3 Coins 4 Credits " },
- {0x10, 0x01, 0xf0, 0x70, "2 Coins 3 Credits " },
- {0x10, 0x01, 0xf0, 0xe0, "1 Coin 2 Credits " },
- {0x10, 0x01, 0xf0, 0x60, "2 Coins 5 Credits " },
- {0x10, 0x01, 0xf0, 0xd0, "1 Coin 3 Credits " },
- {0x10, 0x01, 0xf0, 0xc0, "1 Coin 4 Credits " },
- {0x10, 0x01, 0xf0, 0xb0, "1 Coin 5 Credits " },
- {0x10, 0x01, 0xf0, 0xa0, "1 Coin 6 Credits " },
- {0x10, 0x01, 0xf0, 0x90, "1 Coin 7 Credits " },
- {0x10, 0x01, 0xf0, 0x00, "Free Play" },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x11, 0x01, 0x03, 0x03, "3" },
- {0x11, 0x01, 0x03, 0x02, "4" },
- {0x11, 0x01, 0x03, 0x01, "5" },
- {0x11, 0x01, 0x03, 0x00, "255 (Cheat)" },
-
- {0 , 0xfe, 0 , 2, "Cabinet" },
- {0x11, 0x01, 0x04, 0x00, "Upright" },
- {0x11, 0x01, 0x04, 0x04, "Cocktail" },
-
- {0 , 0xfe, 0 , 2, "Bonus Life" },
- {0x11, 0x01, 0x08, 0x08, "30k 90k 60k+" },
- {0x11, 0x01, 0x08, 0x00, "40k 110k 70k+" },
-
- {0 , 0xfe, 0 , 8, "Difficulty" },
- {0x11, 0x01, 0x70, 0x70, "1 (Easiest)" },
- {0x11, 0x01, 0x70, 0x60, "2" },
- {0x11, 0x01, 0x70, 0x50, "3" },
- {0x11, 0x01, 0x70, 0x40, "4" },
- {0x11, 0x01, 0x70, 0x30, "5 (Average)" },
- {0x11, 0x01, 0x70, 0x20, "6" },
- {0x11, 0x01, 0x70, 0x10, "7" },
- {0x11, 0x01, 0x70, 0x00, "8 (Hardest)" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x11, 0x01, 0x80, 0x80, "Off" },
- {0x11, 0x01, 0x80, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Demo Music" },
- {0x12, 0x01, 0x01, 0x01, "Off" },
- {0x12, 0x01, 0x01, 0x00, "On" },
-};
-
-STDDIPINFO(Gyruss)
-
-static struct BurnDIPInfo GyrussceDIPList[]=
-{
- {0x10, 0xff, 0xff, 0xff, NULL },
- {0x11, 0xff, 0xff, 0x3b, NULL },
- {0x12, 0xff, 0xff, 0x20, NULL },
-
- {0 , 0xfe, 0 , 16, "Coin A" },
- {0x10, 0x01, 0x0f, 0x02, "4 Coins 1 Credits " },
- {0x10, 0x01, 0x0f, 0x05, "3 Coins 1 Credits " },
- {0x10, 0x01, 0x0f, 0x08, "2 Coins 1 Credits " },
- {0x10, 0x01, 0x0f, 0x04, "3 Coins 2 Credits " },
- {0x10, 0x01, 0x0f, 0x01, "4 Coins 3 Credits " },
- {0x10, 0x01, 0x0f, 0x0f, "1 Coin 1 Credits " },
- {0x10, 0x01, 0x0f, 0x03, "3 Coins 4 Credits " },
- {0x10, 0x01, 0x0f, 0x07, "2 Coins 3 Credits " },
- {0x10, 0x01, 0x0f, 0x0e, "1 Coin 2 Credits " },
- {0x10, 0x01, 0x0f, 0x06, "2 Coins 5 Credits " },
- {0x10, 0x01, 0x0f, 0x0d, "1 Coin 3 Credits " },
- {0x10, 0x01, 0x0f, 0x0c, "1 Coin 4 Credits " },
- {0x10, 0x01, 0x0f, 0x0b, "1 Coin 5 Credits " },
- {0x10, 0x01, 0x0f, 0x0a, "1 Coin 6 Credits " },
- {0x10, 0x01, 0x0f, 0x09, "1 Coin 7 Credits " },
- {0x10, 0x01, 0x0f, 0x00, "Free Play" },
-
- {0 , 0xfe, 0 , 16, "Coin B" },
- {0x10, 0x01, 0xf0, 0x20, "4 Coins 1 Credits " },
- {0x10, 0x01, 0xf0, 0x50, "3 Coins 1 Credits " },
- {0x10, 0x01, 0xf0, 0x80, "2 Coins 1 Credits " },
- {0x10, 0x01, 0xf0, 0x40, "3 Coins 2 Credits " },
- {0x10, 0x01, 0xf0, 0x10, "4 Coins 3 Credits " },
- {0x10, 0x01, 0xf0, 0xf0, "1 Coin 1 Credits " },
- {0x10, 0x01, 0xf0, 0x30, "3 Coins 4 Credits " },
- {0x10, 0x01, 0xf0, 0x70, "2 Coins 3 Credits " },
- {0x10, 0x01, 0xf0, 0xe0, "1 Coin 2 Credits " },
- {0x10, 0x01, 0xf0, 0x60, "2 Coins 5 Credits " },
- {0x10, 0x01, 0xf0, 0xd0, "1 Coin 3 Credits " },
- {0x10, 0x01, 0xf0, 0xc0, "1 Coin 4 Credits " },
- {0x10, 0x01, 0xf0, 0xb0, "1 Coin 5 Credits " },
- {0x10, 0x01, 0xf0, 0xa0, "1 Coin 6 Credits " },
- {0x10, 0x01, 0xf0, 0x90, "1 Coin 7 Credits " },
- {0x10, 0x01, 0xf0, 0x00, "Free Play" },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x11, 0x01, 0x03, 0x03, "3" },
- {0x11, 0x01, 0x03, 0x02, "4" },
- {0x11, 0x01, 0x03, 0x01, "5" },
- {0x11, 0x01, 0x03, 0x00, "255 (Cheat)" },
-
- {0 , 0xfe, 0 , 2, "Cabinet" },
- {0x11, 0x01, 0x04, 0x00, "Upright" },
- {0x11, 0x01, 0x04, 0x04, "Cocktail" },
-
- {0 , 0xfe, 0 , 0, "Bonus Life" },
-
- {0 , 0xfe, 0 , 2, "Bonus Life" },
- {0x11, 0x01, 0x08, 0x08, "50k 120k 70k+" },
- {0x11, 0x01, 0x08, 0x00, "60k 140k 80k+" },
-
- {0 , 0xfe, 0 , 8, "Difficulty" },
- {0x11, 0x01, 0x70, 0x70, "1 (Easiest)" },
- {0x11, 0x01, 0x70, 0x60, "2" },
- {0x11, 0x01, 0x70, 0x50, "3" },
- {0x11, 0x01, 0x70, 0x40, "4" },
- {0x11, 0x01, 0x70, 0x30, "5 (Average)" },
- {0x11, 0x01, 0x70, 0x20, "6" },
- {0x11, 0x01, 0x70, 0x10, "7" },
- {0x11, 0x01, 0x70, 0x00, "8 (Hardest)" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x11, 0x01, 0x80, 0x80, "Off" },
- {0x11, 0x01, 0x80, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Demo Music" },
- {0x12, 0x01, 0x01, 0x01, "Off" },
- {0x12, 0x01, 0x01, 0x00, "On" },
-};
-
-STDDIPINFO(Gyrussce)
-
-static void __fastcall gyruss_main_write(UINT16 address, UINT8 data)
-{
- switch (address)
- {
- case 0xc000: // watchdog
- return;
-
- case 0xc080:
- ZetClose();
- ZetOpen(1);
- ZetSetVector(0xff);
- ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
- ZetClose();
- ZetOpen(0);
- return;
-
- case 0xc100:
- *soundlatch = data;
- return;
-
- case 0xc180:
- *interrupt_enable0 = data & 1;
- if (!*interrupt_enable0) {
- ZetSetIRQLine(Z80_INPUT_LINE_NMI, CPU_IRQSTATUS_NONE);
- }
- return;
-
- case 0xc185:
- *flipscreen = data & 1;
- return;
- }
-}
-
-static UINT8 __fastcall gyruss_main_read(UINT16 address)
-{
- switch (address)
- {
- case 0xc000:
- return DrvDips[1];
-
- case 0xc080:
- return DrvInputs[0];
-
- case 0xc0a0:
- return DrvInputs[1];
-
- case 0xc0c0:
- return DrvInputs[2];
-
- case 0xc0e0:
- return DrvDips[0];
-
- case 0xc100:
- return DrvDips[2];
- }
-
- return 0;
-}
-
-static void gyruss_sub_write(UINT16 address, UINT8 data)
-{
- switch (address)
- {
- case 0x2000:
- *interrupt_enable1 = data & 1;
- if (!*interrupt_enable1) {
- M6809SetIRQLine(0, CPU_IRQSTATUS_NONE);
- }
- return;
- }
-}
-
-static UINT8 gyruss_sub_read(UINT16 address)
-{
- switch (address)
- {
- case 0x0000:
- return (scanline/* & 0x7f*/);
- }
-
- return 0;
-}
-
-static UINT8 __fastcall gyruss_sound0_read(UINT16 address)
-{
- switch (address)
- {
- case 0x8000:
- ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
- return *soundlatch;
- }
-
- return 0;
-}
-
-static void filter_write(INT32 num, UINT8 d)
-{
- INT32 C = 0;
- if (d & 2) C += 220000; /* 220000pF = 0.220uF */
- if (d & 1) C += 47000; /* 47000pF = 0.047uF */
-
- filter_rc_set_RC(num, FLT_RC_LOWPASS, 1000, 5100, 0, CAP_P(C));
-}
-
-static void AY8910_0_portBwrite(UINT32 /*port*/, UINT32 data)
-{
- if (ZetGetActive() == -1) return;
-
- for (INT32 i = 0; i < 3; i++)
- {
- /* low bit: 47000pF = 0.047uF */
- /* high bit: 220000pF = 0.22uF */
-
- filter_write(i, data & 3);
- data >>= 2;
- }
-}
-
-static void AY8910_1_portBwrite(UINT32 /*port*/, UINT32 data)
-{
- if (ZetGetActive() == -1) return;
-
- for (INT32 i = 0; i < 3; i++)
- {
- /* low bit: 47000pF = 0.047uF */
- /* high bit: 220000pF = 0.22uF */
-
- filter_write(i + 3, data & 3);
- data >>= 2;
- }
-}
-
-static UINT8 __fastcall gyruss_sound0_in(UINT16 port)
-{
- switch (port & 0xff)
- {
- case 0x01:
- return AY8910Read(0);
-
- case 0x05:
- return AY8910Read(1);
-
- case 0x09:
- return AY8910Read(2);
-
- case 0x0d:
- return AY8910Read(3);
-
- case 0x11:
- return AY8910Read(4);
- }
-
- return 0;
-}
-
-static void __fastcall gyruss_sound0_out(UINT16 port, UINT8 data)
-{
- switch (port & 0xff)
- {
- case 0x00:
- AY8910Write(0, 0, data);
- return;
-
- case 0x02:
- AY8910Write(0, 1, data);
- return;
-
- case 0x04:
- AY8910Write(1, 0, data);
- return;
-
- case 0x06:
- AY8910Write(1, 1, data);
- return;
-
- case 0x08:
- AY8910Write(2, 0, data);
- return;
-
- case 0x0a:
- AY8910Write(2, 1, data);
- return;
-
- case 0x0c:
- AY8910Write(3, 0, data);
- return;
-
- case 0x0e:
- AY8910Write(3, 1, data);
- return;
-
- case 0x10:
- AY8910Write(4, 0, data);
- return;
-
- case 0x12:
- AY8910Write(4, 1, data);
- return;
-
- case 0x14:
- I8039SetIrqState(1);
- return;
-
- case 0x18:
- *soundlatch2 = data;
- return;
- }
-}
-
-static UINT8 AY8910_3_portA(UINT32)
-{
- static const INT32 gyruss_timer[10] =
- {
- 0x00, 0x01, 0x02, 0x03, 0x04, 0x09, 0x0a, 0x0b, 0x0a, 0x0d
- };
-
- return gyruss_timer[(ZetTotalCycles() / 1024) % 10];
-}
-
-static UINT8 __fastcall gyruss_i8039_read(UINT32 address)
-{
- return DrvI8039ROM[address & 0x0fff];
-}
-
-static void __fastcall gyruss_i8039_write_port(UINT32 port, UINT8 data)
-{
- switch (port & 0x1ff)
- {
- case I8039_p1:
- DACWrite(0, data);
- return;
-
- case I8039_p2:
- I8039SetIrqState(0);
- return;
- }
-}
-
-static UINT8 __fastcall gyruss_i8039_read_port(UINT32 port)
-{
- if ((port & 0x1ff) < 0x100) {
- return *soundlatch2;
- }
-
- return 0;
-}
-
-
-static INT32 DrvSyncDAC()
-{
- return (INT32)(float)(nBurnSoundLen * (ZetTotalCycles() / (3579545.0000 / (nBurnFPS / 100.0000))));
-}
-
-
-static INT32 MemIndex()
-{
- UINT8 *Next; Next = AllMem;
-
- DrvZ80ROM0 = Next; Next += 0x010000;
- DrvZ80ROM1 = Next; Next += 0x010000;
-
- DrvM6809ROM = Next; Next += 0x010000;
- DrvM6809DecROM = Next; Next += 0x010000;
-
- DrvI8039ROM = Next; Next += 0x001000;
-
- DrvGfxROM0 = Next; Next += 0x010000;
- DrvGfxROM1 = Next; Next += 0x010000;
- DrvGfxROM2 = Next; Next += 0x008000;
-
- DrvColPROM = Next; Next += 0x000300;
-
- Palette = (UINT32*)Next; Next += 0x0140 * sizeof(UINT32);
- DrvPalette = (UINT32*)Next; Next += 0x0140 * sizeof(UINT32);
-
- pAY8910Buffer[ 0] = (INT16*)Next; Next += nBurnSoundLen * sizeof(INT16);
- pAY8910Buffer[ 1] = (INT16*)Next; Next += nBurnSoundLen * sizeof(INT16);
- pAY8910Buffer[ 2] = (INT16*)Next; Next += nBurnSoundLen * sizeof(INT16);
- pAY8910Buffer[ 3] = (INT16*)Next; Next += nBurnSoundLen * sizeof(INT16);
- pAY8910Buffer[ 4] = (INT16*)Next; Next += nBurnSoundLen * sizeof(INT16);
- pAY8910Buffer[ 5] = (INT16*)Next; Next += nBurnSoundLen * sizeof(INT16);
- pAY8910Buffer[ 6] = (INT16*)Next; Next += nBurnSoundLen * sizeof(INT16);
- pAY8910Buffer[ 7] = (INT16*)Next; Next += nBurnSoundLen * sizeof(INT16);
- pAY8910Buffer[ 8] = (INT16*)Next; Next += nBurnSoundLen * sizeof(INT16);
- pAY8910Buffer[ 9] = (INT16*)Next; Next += nBurnSoundLen * sizeof(INT16);
- pAY8910Buffer[10] = (INT16*)Next; Next += nBurnSoundLen * sizeof(INT16);
- pAY8910Buffer[11] = (INT16*)Next; Next += nBurnSoundLen * sizeof(INT16);
- pAY8910Buffer[12] = (INT16*)Next; Next += nBurnSoundLen * sizeof(INT16);
- pAY8910Buffer[13] = (INT16*)Next; Next += nBurnSoundLen * sizeof(INT16);
- pAY8910Buffer[14] = (INT16*)Next; Next += nBurnSoundLen * sizeof(INT16);
-
- AllRam = Next;
-
- flipscreen = Next; Next += 0x000001;
- soundlatch = Next; Next += 0x000001;
- soundlatch2 = Next; Next += 0x000001;
-
- interrupt_enable0 = Next; Next += 0x000001;
- interrupt_enable1 = Next; Next += 0x000001;
-
- DrvShareRAM = Next; Next += 0x000800;
- DrvColRAM = Next; Next += 0x000400;
- DrvVidRAM = Next; Next += 0x000400;
- DrvZ80RAM0 = Next; Next += 0x001000;
- DrvZ80RAM1 = Next; Next += 0x000400;
-
- DrvM6809RAM = Next; Next += 0x000800;
-
- DrvSprRAM = DrvM6809RAM + 0x000040;
-
- RamEnd = Next;
-
- MemEnd = Next;
-
- return 0;
-}
-
-static INT32 DrvGfxDecode()
-{
- INT32 Plane[4] = { 0x20004, 0x20000, 4, 0 };
- INT32 XOffs[8] = { STEP4(0,1), STEP4(64, 1) };
- INT32 YOffs[16] = { STEP8(0, 8), STEP8(256, 8) };
-
- UINT8 *tmp = (UINT8*)BurnMalloc(0x10000);
- if (tmp == NULL) {
- return 1;
- }
-
- memcpy (tmp, DrvGfxROM0, 0x8000);
-
- GfxDecode(0x0200, 4, 8, 16, Plane , XOffs, YOffs, 0x200, tmp , DrvGfxROM0);
- GfxDecode(0x0200, 4, 8, 16, Plane , XOffs, YOffs, 0x200, tmp + 0x10, DrvGfxROM1);
-
- memcpy (tmp, DrvGfxROM2, 0x2000);
-
- GfxDecode(0x0200, 2, 8, 8, Plane + 2, XOffs, YOffs, 0x080, tmp , DrvGfxROM2);
-
- BurnFree (tmp);
-
- return 0;
-}
-
-static INT32 DrvPaletteInit()
-{
- UINT8 *color_prom = DrvColPROM;
- UINT32 *tmp = (UINT32*)BurnMalloc(32 * sizeof(UINT32));
- if (tmp == NULL) {
- return 1;
- }
-
- for (INT32 i = 0; i < 0x20; i++)
- {
- INT32 bit0, bit1, bit2;
- UINT8 r, g, b;
-
- bit0 = (color_prom[i] >> 0) & 0x01;
- bit1 = (color_prom[i] >> 1) & 0x01;
- bit2 = (color_prom[i] >> 2) & 0x01;
- r = (INT32)(double((bit0 * 33 + bit1 * 70 + bit2 * 151)+0.5));
-
- bit0 = (color_prom[i] >> 3) & 0x01;
- bit1 = (color_prom[i] >> 4) & 0x01;
- bit2 = (color_prom[i] >> 5) & 0x01;
- g = (INT32)(double((bit0 * 33 + bit1 * 70 + bit2 * 151)+0.5));
-
- bit0 = (color_prom[i] >> 6) & 0x01;
- bit1 = (color_prom[i] >> 7) & 0x01;
- b = (INT32)(double((bit0 * 78 + bit1 * 151)+0.5));
-
- tmp[i] = (r << 16) | (g << 8) | b;
- }
-
- color_prom += 32;
-
- for (INT32 i = 0; i < 0x140; i++) {
- UINT8 ctabentry = color_prom[i] & 0x0f;
- Palette[i] = tmp[ctabentry | ((i >> 4) & 0x10)];
- }
-
- BurnFree (tmp);
- return 0;
-}
-
-static void gyrussDecode()
-{
- for (INT32 i = 0xe000; i < 0x10000; i++)
- {
- UINT8 xor1 = 0;
-
- if ( i & 0x02) xor1 |= 0x80;
- else xor1 |= 0x20;
- if ( i & 0x08) xor1 |= 0x08;
- else xor1 |= 0x02;
-
- DrvM6809DecROM[i] = DrvM6809ROM[i] ^ xor1;
- }
-}
-
-static INT32 DrvDoReset()
-{
- DrvReset = 0;
-
- memset (AllRam, 0, RamEnd - AllRam);
-
- ZetOpen(0);
- ZetReset();
- ZetClose();
-
- M6809Open(0);
- M6809Reset();
- M6809Close();
-
- ZetOpen(1);
- ZetReset();
- ZetClose();
-
- I8039Reset();
-
- DACReset();
-
- AY8910Reset(0);
- AY8910Reset(1);
- AY8910Reset(2);
- AY8910Reset(3);
- AY8910Reset(4);
-
- HiscoreReset();
-
- return 0;
-}
-
-static INT32 DrvInit()
-{
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(DrvZ80ROM0 + 0x0000, 0, 1)) return 1;
- if (BurnLoadRom(DrvZ80ROM0 + 0x2000, 1, 1)) return 1;
- if (BurnLoadRom(DrvZ80ROM0 + 0x4000, 2, 1)) return 1;
-
- if (BurnLoadRom(DrvM6809ROM + 0xe000, 3, 1)) return 1;
-
- if (BurnLoadRom(DrvZ80ROM1 + 0x0000, 4, 1)) return 1;
- if (BurnLoadRom(DrvZ80ROM1 + 0x2000, 5, 1)) return 1;
-
- if (BurnLoadRom(DrvI8039ROM + 0x0000, 6, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x0000, 7, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x2000, 8, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x4000, 9, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x6000, 10, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM2 + 0x0000, 11, 1)) return 1;
-
- if (BurnLoadRom(DrvColPROM + 0x0000, 12, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x0020, 13, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x0120, 14, 1)) return 1;
-
- gyrussDecode();
- DrvGfxDecode();
- DrvPaletteInit();
- }
-
- ZetInit(0);
- ZetOpen(0);
- ZetMapMemory(DrvZ80ROM0, 0x0000, 0x7fff, MAP_ROM);
- ZetMapMemory(DrvColRAM, 0x8000, 0x83ff, MAP_RAM);
- ZetMapMemory(DrvVidRAM, 0x8400, 0x87ff, MAP_RAM);
- ZetMapMemory(DrvZ80RAM0, 0x9000, 0x9fff, MAP_RAM);
- ZetMapMemory(DrvShareRAM, 0xa000, 0xa7ff, MAP_RAM);
-
- ZetSetReadHandler(gyruss_main_read);
- ZetSetWriteHandler(gyruss_main_write);
- ZetClose();
-
- M6809Init(1);
- M6809Open(0);
- M6809MapMemory(DrvM6809RAM, 0x4000, 0x47ff, MAP_RAM);
- M6809MapMemory(DrvShareRAM, 0x6000, 0x67ff, MAP_RAM);
- M6809MapMemory(DrvM6809ROM + 0xe000, 0xe000, 0xffff, MAP_READ);
- M6809MapMemory(DrvM6809DecROM + 0xe000, 0xe000, 0xffff, MAP_FETCH);
- M6809SetReadHandler(gyruss_sub_read);
- M6809SetWriteHandler(gyruss_sub_write);
- M6809Close();
-
- ZetInit(1);
- ZetOpen(1);
- ZetMapMemory(DrvZ80ROM1, 0x0000, 0x5fff, MAP_ROM);
- ZetMapMemory(DrvZ80RAM1, 0x6000, 0x63ff, MAP_RAM);
- ZetSetReadHandler(gyruss_sound0_read);
- ZetSetOutHandler(gyruss_sound0_out);
- ZetSetInHandler(gyruss_sound0_in);
- ZetClose();
-
- I8039Init(NULL);
- I8039SetProgramReadHandler(gyruss_i8039_read);
- I8039SetCPUOpReadHandler(gyruss_i8039_read);
- I8039SetCPUOpReadArgHandler(gyruss_i8039_read);
- I8039SetIOReadHandler(gyruss_i8039_read_port);
- I8039SetIOWriteHandler(gyruss_i8039_write_port);
-
- DACInit(0, 0, 1, DrvSyncDAC);
- DACSetRoute(0, 0.15, BURN_SND_ROUTE_BOTH);
-
- AY8910Init(0, 1789750, nBurnSoundRate, NULL, NULL, NULL, &AY8910_0_portBwrite);
- AY8910Init(1, 1789750, nBurnSoundRate, NULL, NULL, NULL, &AY8910_1_portBwrite);
- AY8910Init(2, 1789750, nBurnSoundRate, AY8910_3_portA, NULL, NULL, NULL);
- AY8910Init(3, 1789750, nBurnSoundRate, NULL, NULL, NULL, NULL);
- AY8910Init(4, 1789750, nBurnSoundRate, NULL, NULL, NULL, NULL);
- AY8910SetAllRoutes(0, 0.25, BURN_SND_ROUTE_BOTH);
- AY8910SetAllRoutes(1, 0.25, BURN_SND_ROUTE_BOTH);
- AY8910SetAllRoutes(2, 0.25, BURN_SND_ROUTE_BOTH);
- AY8910SetAllRoutes(3, 0.25, BURN_SND_ROUTE_BOTH);
- AY8910SetAllRoutes(4, 0.25, BURN_SND_ROUTE_BOTH);
-
- filter_rc_init(0, FLT_RC_LOWPASS, 1000, 5100, 0, CAP_P(0), 0);
- filter_rc_init(1, FLT_RC_LOWPASS, 1000, 5100, 0, CAP_P(0), 1);
- filter_rc_init(2, FLT_RC_LOWPASS, 1000, 5100, 0, CAP_P(0), 1);
- filter_rc_init(3, FLT_RC_LOWPASS, 1000, 5100, 0, CAP_P(0), 1);
- filter_rc_init(4, FLT_RC_LOWPASS, 1000, 5100, 0, CAP_P(0), 1);
- filter_rc_init(5, FLT_RC_LOWPASS, 1000, 5100, 0, CAP_P(0), 1);
- filter_rc_init(6, FLT_RC_LOWPASS, 1000, 5100, 0, CAP_P(0), 1); // master out l
- filter_rc_init(7, FLT_RC_LOWPASS, 1000, 5100, 0, CAP_P(0), 1); // master out r
-
- filter_rc_set_src_gain(0, 0.70);
- filter_rc_set_src_gain(1, 0.60);
- filter_rc_set_src_gain(2, 0.45);
- filter_rc_set_src_gain(3, 0.70);
- filter_rc_set_src_gain(4, 0.60);
- filter_rc_set_src_gain(5, 0.45);
- filter_rc_set_src_gain(6, 1.00);
- filter_rc_set_src_gain(7, 1.00);
-
- filter_rc_set_route(0, 0.25, FLT_RC_PANNEDLEFT);
- filter_rc_set_route(1, 0.25, FLT_RC_PANNEDLEFT);
- filter_rc_set_route(2, 0.25, FLT_RC_PANNEDLEFT);
- filter_rc_set_route(3, 0.25, FLT_RC_PANNEDRIGHT);
- filter_rc_set_route(4, 0.25, FLT_RC_PANNEDRIGHT);
- filter_rc_set_route(5, 0.25, FLT_RC_PANNEDRIGHT);
- filter_rc_set_route(6, 0.25, BURN_SND_ROUTE_LEFT ); // master out l
- filter_rc_set_route(7, 0.25, BURN_SND_ROUTE_RIGHT); // master out r
-
- GenericTilesInit();
-
- DrvDoReset();
-
- return 0;
-}
-
-static INT32 DrvExit()
-{
- GenericTilesExit();
- ZetExit();
- M6809Exit();
-
- I8039Exit();
-
- DACExit();
-
- AY8910Exit(0);
- AY8910Exit(1);
- AY8910Exit(2);
- AY8910Exit(3);
- AY8910Exit(4);
- filter_rc_exit();
-
- BurnFree (AllMem);
-
- return 0;
-}
-
-static void draw_background(INT32 transp)
-{
- for (INT32 offs = 0x40; offs < 0x3c0; offs++)
- {
- INT32 sx = (offs & 0x1f) << 3;
- INT32 sy = (offs >> 5) << 3;
-
- INT32 attr = DrvColRAM[offs];
- INT32 code = ((attr & 0x20) << 3) | DrvVidRAM[offs];
- INT32 color = attr & 0x0f;
- INT32 flipx = (attr >> 6) & 1;
- INT32 flipy = attr >> 7;
-
- INT32 group = ((~DrvColRAM[offs] >> 4) & 1);
- if (transp && group == 0) continue;
-
- if (*flipscreen) {
- flipx ^= 1;
- flipy ^= 1;
- sx ^= 0xf8;
- sy ^= 0xf8;
- }
-
- sy -= 16;
-
- if (flipy) {
- if (flipx) {
- Render8x8Tile_Mask_FlipXY(pTransDraw, code, sx, sy, color, 2, transp, 0x100, DrvGfxROM2);
- } else {
- Render8x8Tile_Mask_FlipY(pTransDraw, code, sx, sy, color, 2, transp, 0x100, DrvGfxROM2);
- }
- } else {
- if (flipx) {
- Render8x8Tile_Mask_FlipX(pTransDraw, code, sx, sy, color, 2, transp, 0x100, DrvGfxROM2);
- } else {
- Render8x8Tile_Mask(pTransDraw, code, sx, sy, color, 2, transp, 0x100, DrvGfxROM2);
- }
- }
- }
-}
-
-static void draw_8x16_tile_line(INT32 sx, INT32 sy, INT32 color, UINT8 *gfx_base, INT32 code, INT32 flipx, INT32 flipy, INT32 line)
-{
- line -= 16;
-
- if (line < 0 || line >= nScreenHeight) return;
-
- INT32 y = line - sy; // right?
- if (y < 0 || y >= 16) return;
-
- if (flipy) flipy = 0x78;
-
- UINT8 *src = gfx_base + (code * 0x80) + ((y << 3) ^ flipy);
- color <<= 4;
-
- if (flipx) flipx = 0x07;
-
- for (INT32 x = 0; x < 8; x++, sx++)
- {
- INT32 pxl = src[x ^ flipx];
-
- if (sx < 8 || sx >= (nScreenWidth - 8) || !pxl) continue;
-
- pTransDraw[(line * nScreenWidth) + sx] = pxl | color;
- }
-}
-
-static void draw_sprites(INT32 line)
-{
- for (INT32 offs = 0xbc; offs >= 0; offs -= 4)
- {
- INT32 sx = DrvSprRAM[offs];
- INT32 sy = (241 - DrvSprRAM[offs + 3]);
-
- if (sy <= (line-16) || sy >= (line+16)) continue;
-
- INT32 bank = DrvSprRAM[offs + 1] & 0x01;
- INT32 code = ((DrvSprRAM[offs + 2] & 0x20) << 2) | (DrvSprRAM[offs + 1] >> 1);
- INT32 color = DrvSprRAM[offs + 2] & 0x0f;
- INT32 flipx = ~DrvSprRAM[offs + 2] & 0x40;
- INT32 flipy = DrvSprRAM[offs + 2] & 0x80;
-
- UINT8 *gfx_base = bank ? DrvGfxROM1 : DrvGfxROM0;
-
- draw_8x16_tile_line(sx, sy-16, color, gfx_base, code, flipx, flipy, line);
- }
-}
-
-static INT32 DrvDraw()
-{
- if (DrvRecalc) {
- for (INT32 i = 0; i < 0x140; i++) {
- INT32 rgb = Palette[i];
- DrvPalette[i] = BurnHighCol(rgb >> 16, rgb >> 8, rgb, 0);
- }
- DrvRecalc = 0;
- }
-
- BurnTransferClear();
-
- draw_background(0);
-
- return 0;
-}
-
-static INT32 DrvFrame()
-{
- if (DrvReset) {
- DrvDoReset();
- }
-
- {
- memset (DrvInputs, 0xff, 3);
- for (INT32 i = 0; i < 5; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- DrvInputs[2] ^= (DrvJoy3[i] & 1) << i;
- }
- }
-
- ZetNewFrame();
- I8039NewFrame();
-
- INT32 nCyclesSegment;
- INT32 nInterleave = 256;
- INT32 nCyclesTotal[4] = { 3072000 / 60, 2000000 / 60, 3579545 / 60, 8000000 / 15 / 60 };
- INT32 nCyclesDone[4] = { 0, 0, 0, 0 };
- INT32 nSoundBufferPos = 0;
-
- DrvDraw();
- memset (pBurnSoundOut,0,nBurnSoundLen*4);
-
- for (INT32 i = 0; i < nInterleave; i++)
- {
- INT32 nNext;
- scanline = i + 6;
-
- ZetOpen(0);
- nNext = (i + 1) * nCyclesTotal[0] / nInterleave;
- nCyclesSegment = nNext - nCyclesDone[0];
- nCyclesDone[0] += ZetRun(nCyclesSegment);
- if (i == (nInterleave - 248) && *interrupt_enable0) {
- ZetSetIRQLine(Z80_INPUT_LINE_NMI, CPU_IRQSTATUS_ACK);
- }
- ZetClose();
-
- M6809Open(0);
- nNext = (i + 1) * nCyclesTotal[1] / nInterleave;
- nCyclesSegment = nNext - nCyclesDone[1];
- nCyclesDone[1] += M6809Run(nCyclesSegment);
- if (i == (nInterleave - 248) && *interrupt_enable1) {
- M6809SetIRQLine(0, CPU_IRQSTATUS_ACK);
- }
- M6809Close();
-
- ZetOpen(1);
- nNext = (i + 1) * nCyclesTotal[2] / nInterleave;
- nCyclesSegment = nNext - nCyclesDone[2];
- nCyclesDone[2] += ZetRun(nCyclesSegment);
-
- nNext = (nCyclesTotal[3] * (i + 1)) / nInterleave;
- nCyclesDone[3] += I8039Run(nNext - nCyclesDone[3]);
- ZetClose(); // after I8039Run() for DrvSyncDAC()!
-
- if (scanline >= 16 && scanline < 240) {
- draw_sprites(scanline);
- }
- // Render Sound Segment
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen / nInterleave;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- AY8910Render(&pAY8910Buffer[0], pSoundBuf, nSegmentLength, 0);
- nSoundBufferPos += nSegmentLength;
-
- filter_rc_update(0, pAY8910Buffer[0], pSoundBuf, nSegmentLength);
- filter_rc_update(1, pAY8910Buffer[1], pSoundBuf, nSegmentLength);
- filter_rc_update(2, pAY8910Buffer[2], pSoundBuf, nSegmentLength);
- filter_rc_update(3, pAY8910Buffer[3], pSoundBuf, nSegmentLength);
- filter_rc_update(4, pAY8910Buffer[4], pSoundBuf, nSegmentLength);
- filter_rc_update(5, pAY8910Buffer[5], pSoundBuf, nSegmentLength);
- filter_rc_update(6, pAY8910Buffer[6], pSoundBuf, nSegmentLength);
- filter_rc_update(7, pAY8910Buffer[7], pSoundBuf, nSegmentLength);
- filter_rc_update(6, pAY8910Buffer[8], pSoundBuf, nSegmentLength);
- filter_rc_update(7, pAY8910Buffer[9], pSoundBuf, nSegmentLength);
- filter_rc_update(6, pAY8910Buffer[10], pSoundBuf, nSegmentLength);
- filter_rc_update(7, pAY8910Buffer[11], pSoundBuf, nSegmentLength);
- filter_rc_update(6, pAY8910Buffer[12], pSoundBuf, nSegmentLength);
- filter_rc_update(7, pAY8910Buffer[13], pSoundBuf, nSegmentLength);
- filter_rc_update(6, pAY8910Buffer[14], pSoundBuf, nSegmentLength);
- }
- }
-
- // Make sure the buffer is entirely filled.
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- if (nSegmentLength) {
- AY8910Render(&pAY8910Buffer[0], pSoundBuf, nSegmentLength, 0);
-
- filter_rc_update(0, pAY8910Buffer[0], pSoundBuf, nSegmentLength);
- filter_rc_update(1, pAY8910Buffer[1], pSoundBuf, nSegmentLength);
- filter_rc_update(2, pAY8910Buffer[2], pSoundBuf, nSegmentLength);
- filter_rc_update(3, pAY8910Buffer[3], pSoundBuf, nSegmentLength);
- filter_rc_update(4, pAY8910Buffer[4], pSoundBuf, nSegmentLength);
- filter_rc_update(5, pAY8910Buffer[5], pSoundBuf, nSegmentLength);
- filter_rc_update(6, pAY8910Buffer[6], pSoundBuf, nSegmentLength);
- filter_rc_update(7, pAY8910Buffer[7], pSoundBuf, nSegmentLength);
- filter_rc_update(6, pAY8910Buffer[8], pSoundBuf, nSegmentLength);
- filter_rc_update(7, pAY8910Buffer[9], pSoundBuf, nSegmentLength);
- filter_rc_update(6, pAY8910Buffer[10], pSoundBuf, nSegmentLength);
- filter_rc_update(7, pAY8910Buffer[11], pSoundBuf, nSegmentLength);
- filter_rc_update(6, pAY8910Buffer[12], pSoundBuf, nSegmentLength);
- filter_rc_update(7, pAY8910Buffer[13], pSoundBuf, nSegmentLength);
- filter_rc_update(6, pAY8910Buffer[14], pSoundBuf, nSegmentLength);
- }
- DACUpdate(pBurnSoundOut, nBurnSoundLen);
- }
-
- if (pBurnDraw) {
- BurnTransferCopy(DrvPalette);
- }
-
- return 0;
-}
-
-static INT32 DrvScan(INT32 nAction,INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin) {
- *pnMin = 0x029704;
- }
-
- if (nAction & ACB_VOLATILE) {
- memset(&ba, 0, sizeof(ba));
- ba.Data = AllRam;
- ba.nLen = RamEnd - AllRam;
- ba.szName = "All RAM";
- BurnAcb(&ba);
- }
-
- if (nAction & ACB_DRIVER_DATA) {
- ZetScan(nAction);
- M6809Scan(nAction);
- I8039Scan(nAction,pnMin);
-
- AY8910Scan(nAction, pnMin);
- DACScan(nAction, pnMin);
- }
-
- return 0;
-}
-
-
-// Gyruss (Konami)
-
-static struct BurnRomInfo gyrussRomDesc[] = {
- { "gyrussk.1", 0x2000, 0xc673b43d, 1 | BRF_PRG | BRF_ESS }, // 0 Main Z80 Code
- { "gyrussk.2", 0x2000, 0xa4ec03e4, 1 | BRF_PRG | BRF_ESS }, // 1
- { "gyrussk.3", 0x2000, 0x27454a98, 1 | BRF_PRG | BRF_ESS }, // 2
-
- { "gyrussk.9", 0x2000, 0x822bf27e, 2 | BRF_PRG | BRF_ESS }, // 3 Sub M6809 Code
-
- { "gyrussk.1a", 0x2000, 0xf4ae1c17, 3 | BRF_PRG | BRF_ESS }, // 4 Audio Z80 Code
- { "gyrussk.2a", 0x2000, 0xba498115, 3 | BRF_PRG | BRF_ESS }, // 5
-
- { "gyrussk.3a", 0x1000, 0x3f9b5dea, 4 | BRF_PRG | BRF_ESS }, // 6 Audio i8039
-
- { "gyrussk.6", 0x2000, 0xc949db10, 5 | BRF_GRA }, // 7 Sprites
- { "gyrussk.5", 0x2000, 0x4f22411a, 5 | BRF_GRA }, // 8
- { "gyrussk.8", 0x2000, 0x47cd1fbc, 5 | BRF_GRA }, // 9
- { "gyrussk.7", 0x2000, 0x8e8d388c, 5 | BRF_GRA }, // 10
-
- { "gyrussk.4", 0x2000, 0x27d8329b, 6 | BRF_GRA }, // 11 Background Tiles
-
- { "gyrussk.pr3", 0x0020, 0x98782db3, 7 | BRF_GRA }, // 12 Color Proms
- { "gyrussk.pr1", 0x0100, 0x7ed057de, 7 | BRF_GRA }, // 13
- { "gyrussk.pr2", 0x0100, 0xde823a81, 7 | BRF_GRA }, // 14
-};
-
-STD_ROM_PICK(gyruss)
-STD_ROM_FN(gyruss)
-
-struct BurnDriver BurnDrvGyruss = {
- "gyruss", NULL, NULL, NULL, "1983",
- "Gyruss (Konami)\0", NULL, "Konami", "GX347",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_KONAMI, GBF_SHOOT, 0,
- NULL, gyrussRomInfo, gyrussRomName, NULL, NULL, GyrussInputInfo, GyrussDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x140,
- 224, 256, 3, 4
-};
-
-
-// Gyruss (Centuri)
-
-static struct BurnRomInfo gyrussceRomDesc[] = {
- { "gya-1.bin", 0x2000, 0x85f8b7c2, 1 | BRF_PRG | BRF_ESS }, // 0 Main Z80 Code
- { "gya-2.bin", 0x2000, 0x1e1a970f, 1 | BRF_PRG | BRF_ESS }, // 1
- { "gya-3.bin", 0x2000, 0xf6dbb33b, 1 | BRF_PRG | BRF_ESS }, // 2
-
- { "gyrussk.9", 0x2000, 0x822bf27e, 2 | BRF_PRG | BRF_ESS }, // 3 Sub M6809 Code
-
- { "gyrussk.1a", 0x2000, 0xf4ae1c17, 3 | BRF_PRG | BRF_ESS }, // 4 Audio Z80 Code
- { "gyrussk.2a", 0x2000, 0xba498115, 3 | BRF_PRG | BRF_ESS }, // 5
-
- { "gyrussk.3a", 0x1000, 0x3f9b5dea, 4 | BRF_PRG | BRF_ESS }, // 6 Audio i8039
-
- { "gyrussk.6", 0x2000, 0xc949db10, 5 | BRF_GRA }, // 7 Sprites
- { "gyrussk.5", 0x2000, 0x4f22411a, 5 | BRF_GRA }, // 8
- { "gyrussk.8", 0x2000, 0x47cd1fbc, 5 | BRF_GRA }, // 9
- { "gyrussk.7", 0x2000, 0x8e8d388c, 5 | BRF_GRA }, // 10
-
- { "gyrussk.4", 0x2000, 0x27d8329b, 6 | BRF_GRA }, // 11 Background Tiles
-
- { "gyrussk.pr3", 0x0020, 0x98782db3, 7 | BRF_GRA }, // 12 Color Proms
- { "gyrussk.pr1", 0x0100, 0x7ed057de, 7 | BRF_GRA }, // 13
- { "gyrussk.pr2", 0x0100, 0xde823a81, 7 | BRF_GRA }, // 14
-};
-
-STD_ROM_PICK(gyrussce)
-STD_ROM_FN(gyrussce)
-
-struct BurnDriver BurnDrvGyrussce = {
- "gyrussce", "gyruss", NULL, NULL, "1983",
- "Gyruss (Centuri)\0", NULL, "Konami (Centuri license)", "GX347",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_KONAMI, GBF_SHOOT, 0,
- NULL, gyrussceRomInfo, gyrussceRomName, NULL, NULL, GyrussInputInfo, GyrussceDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x140,
- 224, 256, 3, 4
-};
-
-
-// Gyruss (bootleg)
-
-static struct BurnRomInfo gyrussbRomDesc[] = {
- { "1.bin", 0x2000, 0x6bc21c10, 1 | BRF_PRG | BRF_ESS }, // 0 Main Z80 Code
- { "gyrussk.2", 0x2000, 0xa4ec03e4, 1 | BRF_PRG | BRF_ESS }, // 1
- { "gyrussk.3", 0x2000, 0x27454a98, 1 | BRF_PRG | BRF_ESS }, // 2
-
- { "gyrussk.9", 0x2000, 0x822bf27e, 2 | BRF_PRG | BRF_ESS }, // 3 Sub M6809 Code
-
- { "gyrussk.1a", 0x2000, 0xf4ae1c17, 3 | BRF_PRG | BRF_ESS }, // 4 Audio Z80 Code
- { "gyrussk.2a", 0x2000, 0xba498115, 3 | BRF_PRG | BRF_ESS }, // 5
-
- { "gyrussk.3a", 0x1000, 0x3f9b5dea, 4 | BRF_PRG | BRF_ESS }, // 6 Audio i8039
-
- { "gyrussk.6", 0x2000, 0xc949db10, 5 | BRF_GRA }, // 7 Sprites
- { "gyrussk.5", 0x2000, 0x4f22411a, 5 | BRF_GRA }, // 8
- { "gyrussk.8", 0x2000, 0x47cd1fbc, 5 | BRF_GRA }, // 9
- { "gyrussk.7", 0x2000, 0x8e8d388c, 5 | BRF_GRA }, // 10
-
- { "gyrussk.4", 0x2000, 0x27d8329b, 6 | BRF_GRA }, // 11 Background Tiles
-
- { "gyrussk.pr3", 0x0020, 0x98782db3, 7 | BRF_GRA }, // 12 Color Proms
- { "gyrussk.pr1", 0x0100, 0x7ed057de, 7 | BRF_GRA }, // 13
- { "gyrussk.pr2", 0x0100, 0xde823a81, 7 | BRF_GRA }, // 14
-};
-
-STD_ROM_PICK(gyrussb)
-STD_ROM_FN(gyrussb)
-
-struct BurnDriver BurnDrvGyrussb = {
- "gyrussb", "gyruss", NULL, NULL, "1983",
- "Gyruss (bootleg)\0", NULL, "bootleg", "GX347",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_KONAMI, GBF_SHOOT, 0,
- NULL, gyrussbRomInfo, gyrussbRomName, NULL, NULL, GyrussInputInfo, GyrussDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x140,
- 224, 256, 3, 4
-};
-
-
-// Venus
-
-static struct BurnRomInfo venusRomDesc[] = {
- { "r1", 0x2000, 0xd030abb1, 1 | BRF_PRG | BRF_ESS }, // 0 Main Z80 Code
- { "r2", 0x2000, 0xdbf65d4d, 1 | BRF_PRG | BRF_ESS }, // 1
- { "r3", 0x2000, 0xdb246fcd, 1 | BRF_PRG | BRF_ESS }, // 2
-
- { "gyrussk.9", 0x2000, 0x822bf27e, 2 | BRF_PRG | BRF_ESS }, // 3 Sub M6809 Code
-
- { "gyrussk.1a", 0x2000, 0xf4ae1c17, 3 | BRF_PRG | BRF_ESS }, // 4 Audio Z80 Code
- { "gyrussk.2a", 0x2000, 0xba498115, 3 | BRF_PRG | BRF_ESS }, // 5
-
- { "gyrussk.3a", 0x1000, 0x3f9b5dea, 4 | BRF_PRG | BRF_ESS }, // 6 Audio i8039
-
- { "gyrussk.6", 0x2000, 0xc949db10, 5 | BRF_GRA }, // 7 Sprites
- { "gyrussk.5", 0x2000, 0x4f22411a, 5 | BRF_GRA }, // 8
- { "gyrussk.8", 0x2000, 0x47cd1fbc, 5 | BRF_GRA }, // 9
- { "gyrussk.7", 0x2000, 0x8e8d388c, 5 | BRF_GRA }, // 10
-
- { "gyrussk.4", 0x2000, 0x27d8329b, 6 | BRF_GRA }, // 11 Background Tiles
-
- { "gyrussk.pr3", 0x0020, 0x98782db3, 7 | BRF_GRA }, // 12 Color Proms
- { "gyrussk.pr1", 0x0100, 0x7ed057de, 7 | BRF_GRA }, // 13
- { "gyrussk.pr2", 0x0100, 0xde823a81, 7 | BRF_GRA }, // 14
-};
-
-STD_ROM_PICK(venus)
-STD_ROM_FN(venus)
-
-struct BurnDriver BurnDrvVenus = {
- "venus", "gyruss", NULL, NULL, "1983",
- "Venus\0", NULL, "bootleg", "GX347",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_KONAMI, GBF_SHOOT, 0,
- NULL, venusRomInfo, venusRomName, NULL, NULL, GyrussInputInfo, GyrussDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x140,
- 224, 256, 3, 4
-};
-
diff --git a/jan/src/burn/drv/konami/d_hcastle.cpp b/jan/src/burn/drv/konami/d_hcastle.cpp
deleted file mode 100644
index 399ea480f..000000000
--- a/jan/src/burn/drv/konami/d_hcastle.cpp
+++ /dev/null
@@ -1,1017 +0,0 @@
-// FB Alpha Haunted Castle / Akuma-Jou Dracula driver module
-// Based on MAME driver by Bryan McPhail
-//
-// Todo: figure out crash on game-exit when refresh rate is set @ 59 in DrvInit()
-
-#include "tiles_generic.h"
-#include "z80_intf.h"
-#include "konami_intf.h"
-#include "burn_ym3812.h"
-#include "k051649.h"
-#include "k007232.h"
-
-static UINT8 *AllMem;
-static UINT8 *MemEnd;
-static UINT8 *AllRam;
-static UINT8 *RamEnd;
-static UINT8 *DrvKonROM;
-static UINT8 *nDrvKonBank;
-static UINT8 *DrvZ80ROM;
-static UINT8 *DrvGfxROM0;
-static UINT8 *DrvGfxROM1;
-static UINT8 *DrvPalROM;
-static UINT8 *DrvSndROM;
-static UINT8 *DrvKonRAM0;
-static UINT8 *DrvKonRAM1;
-static UINT8 *DrvPalRAM;
-static UINT8 *DrvPf1RAM;
-static UINT8 *DrvPf2RAM;
-static UINT8 *DrvSprRAM1;
-static UINT8 *DrvSprRAM2;
-static UINT8 *DrvSprBuf1;
-static UINT8 *DrvSprBuf2;
-static UINT8 *DrvPf1Ctrl;
-static UINT8 *DrvPf2Ctrl;
-static UINT8 *DrvZ80RAM;
-static UINT8 *Palette;
-static UINT32 *DrvPalette;
-static UINT8 DrvRecalc;
-
-static UINT8 DrvJoy1[8];
-static UINT8 DrvJoy2[8];
-static UINT8 DrvJoy3[8];
-static UINT8 DrvDips[3];
-static UINT8 DrvInputs[3];
-static UINT8 DrvReset;
-
-static UINT8 *soundlatch;
-static UINT8 *gfxbank;
-
-static INT32 watchdog;
-
-static struct BurnInputInfo HcastleInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy1 + 0, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 3, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy2 + 2, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy2 + 3, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy2 + 0, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy2 + 1, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy2 + 4, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy2 + 5, "p1 fire 2" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy1 + 1, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy1 + 4, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvJoy3 + 2, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy3 + 3, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy3 + 0, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy3 + 1, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy3 + 4, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy3 + 5, "p2 fire 2" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service", BIT_DIGITAL, DrvJoy1 + 2, "service" },
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip" },
- {"Dip C", BIT_DIPSWITCH, DrvDips + 2, "dip" },
-};
-
-STDINPUTINFO(Hcastle)
-
-static struct BurnDIPInfo HcastleDIPList[]=
-{
- {0x12, 0xff, 0xff, 0x53, NULL },
- {0x13, 0xff, 0xff, 0xff, NULL },
- {0x14, 0xff, 0xff, 0xff, NULL },
-
- {0 , 0xfe, 0 , 2, "Cabinet" },
- {0x12, 0x01, 0x04, 0x00, "Upright" },
- {0x12, 0x01, 0x04, 0x04, "Cocktail" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x12, 0x01, 0x18, 0x18, "Easy" },
- {0x12, 0x01, 0x18, 0x10, "Normal" },
- {0x12, 0x01, 0x18, 0x08, "Hard" },
- {0x12, 0x01, 0x18, 0x00, "Hardest" },
-
- {0 , 0xfe, 0 , 4, "Strength of Player" },
- {0x12, 0x01, 0x60, 0x00, "Very Weak" },
- {0x12, 0x01, 0x60, 0x20, "Weak" },
- {0x12, 0x01, 0x60, 0x40, "Normal" },
- {0x12, 0x01, 0x60, 0x60, "Strong" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x12, 0x01, 0x80, 0x80, "Off" },
- {0x12, 0x01, 0x80, 0x00, "On" },
-
- {0 , 0xfe, 0 , 16, "Coin A" },
- {0x13, 0x01, 0x0f, 0x02, "4 Coins 1 Credit" },
- {0x13, 0x01, 0x0f, 0x05, "3 Coins 1 Credit" },
- {0x13, 0x01, 0x0f, 0x08, "2 Coins 1 Credit" },
- {0x13, 0x01, 0x0f, 0x04, "3 Coins 2 Credits" },
- {0x13, 0x01, 0x0f, 0x01, "4 Coins 3 Credits" },
- {0x13, 0x01, 0x0f, 0x0f, "1 Coin 1 Credit" },
- {0x13, 0x01, 0x0f, 0x03, "3 Coins 4 Credits" },
- {0x13, 0x01, 0x0f, 0x07, "2 Coins 3 Credits" },
- {0x13, 0x01, 0x0f, 0x0e, "1 Coin 2 Credits" },
- {0x13, 0x01, 0x0f, 0x06, "2 Coins 5 Credits" },
- {0x13, 0x01, 0x0f, 0x0d, "1 Coin 3 Credits" },
- {0x13, 0x01, 0x0f, 0x0c, "1 Coin 4 Credits" },
- {0x13, 0x01, 0x0f, 0x0b, "1 Coin 5 Credits" },
- {0x13, 0x01, 0x0f, 0x0a, "1 Coin 6 Credits" },
- {0x13, 0x01, 0x0f, 0x09, "1 Coin 7 Credits" },
- {0x13, 0x01, 0x0f, 0x00, "Free Play" },
-
- {0 , 0xfe, 0 , 15, "Coin B" },
- {0x13, 0x01, 0xf0, 0x20, "4 Coins 1 Credit" },
- {0x13, 0x01, 0xf0, 0x50, "3 Coins 1 Credit" },
- {0x13, 0x01, 0xf0, 0x80, "2 Coins 1 Credit" },
- {0x13, 0x01, 0xf0, 0x40, "3 Coins 2 Credits" },
- {0x13, 0x01, 0xf0, 0x10, "4 Coins 3 Credits" },
- {0x13, 0x01, 0xf0, 0xf0, "1 Coin 1 Credit" },
- {0x13, 0x01, 0xf0, 0x30, "3 Coins 4 Credits" },
- {0x13, 0x01, 0xf0, 0x70, "2 Coins 3 Credits" },
- {0x13, 0x01, 0xf0, 0xe0, "1 Coin 2 Credits" },
- {0x13, 0x01, 0xf0, 0x60, "2 Coins 5 Credits" },
- {0x13, 0x01, 0xf0, 0xd0, "1 Coin 3 Credits" },
- {0x13, 0x01, 0xf0, 0xc0, "1 Coin 4 Credits" },
- {0x13, 0x01, 0xf0, 0xb0, "1 Coin 5 Credits" },
- {0x13, 0x01, 0xf0, 0xa0, "1 Coin 6 Credits" },
- {0x13, 0x01, 0xf0, 0x90, "1 Coin 7 Credits" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x14, 0x01, 0x01, 0x01, "Off" },
- {0x14, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Upright Controls" },
- {0x14, 0x01, 0x02, 0x02, "Single" },
- {0x14, 0x01, 0x02, 0x00, "Dual" },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x14, 0x01, 0x04, 0x04, "Off" },
- {0x14, 0x01, 0x04, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Allow Continue" },
- {0x14, 0x01, 0x08, 0x08, "Yes" },
- {0x14, 0x01, 0x08, 0x00, "No" },
-};
-
-STDDIPINFO(Hcastle)
-
-static void bankswitch(INT32 data)
-{
- *nDrvKonBank = data & 0x0f;
- INT32 bankaddress = *nDrvKonBank * 0x2000;
-
- konamiMapMemory(DrvKonROM + 0x10000 + bankaddress, 0x6000, 0x7fff, MAP_ROM);
-}
-
-static void playfield_write(INT32 address, INT32 data, UINT8 *ctrl, UINT8 *spr, UINT8 *buf)
-{
- address &= 7;
-
- if (address == 3) { // buffer sprites
- memcpy (buf, spr + ((data & 8) << 8), 0x800);
- }
-
- ctrl[address & 7] = data;
-}
-
-void hcastle_write(UINT16 address, UINT8 data)
-{
- if ((address & 0xfff8) == 0x0000) {
- playfield_write(address, data, DrvPf1Ctrl, DrvSprRAM1, DrvSprBuf1);
- return;
- }
-
- if ((address & 0xfff8) == 0x0200) {
- playfield_write(address, data, DrvPf2Ctrl, DrvSprRAM2, DrvSprBuf2);
- return;
- }
-
- if ((address & 0xff00) == 0x0000) {
- DrvKonRAM0[address & 0xff] = data;
- return;
- }
-
- if ((address & 0xff00) == 0x0200) {
- DrvKonRAM1[address & 0xff] = data;
- return;
- }
-
- switch (address)
- {
- case 0x0400:
- bankswitch(data);
- return;
-
- case 0x0404:
- *soundlatch = data;
- return;
-
- case 0x0408:
- {
-// float t = konamiTotalCycles() * 1.19318167;
-// t -= ZetTotalCycles();
-// if (t > 1) ZetRun((INT32)t);
-
- ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
- }
- return;
-
- case 0x040c:
- watchdog = 0;
- return;
-
- case 0x0410:
-
- return;
-
- case 0x0418:
- *gfxbank = data;
- return;
- }
-}
-
-UINT8 hcastle_read(UINT16 address)
-{
- switch (address)
- {
- case 0x0410:
- case 0x0411:
- case 0x0412:
- return DrvInputs[address & 3];
-
- case 0x0413:
- return DrvDips[2];
-
- case 0x0414:
- return DrvDips[1];
-
- case 0x0415:
- return DrvDips[0];
-
- case 0x0418:
- return *gfxbank;
- }
-
- return 0;
-}
-
-static void sound_bankswitch(INT32 data)
-{
- INT32 bank_A=(data&0x3);
- INT32 bank_B=((data>>2)&0x3);
-
- k007232_set_bank(0, bank_A, bank_B );
-}
-
-void __fastcall hcastle_sound_write(UINT16 address, UINT8 data)
-{
- if ((address & 0xff80) == 0x9800) {
- K051649WaveformWrite(address & 0x7f, data);
- return;
- }
-
- if ((address & 0xfff0) == 0x9880) {
- address &= 0x000f;
-
- if (address <= 0x09) {
- K051649FrequencyWrite(address & 0x0f, data);
- return;
- }
-
- if (address == 0x0f) {
- K051649KeyonoffWrite(data);
- return;
- }
-
- if (address >= 0x0a) {
- K051649VolumeWrite(address - 0x988a, data);
- }
-
- return;
- }
-
- if (address >= 0xb000 && address <= 0xb00d) {
- K007232WriteReg(0, address & 0x0f, data);
- return;
- }
-
- switch (address)
- {
- case 0xa000:
- case 0xa001:
- BurnYM3812Write(0, address & 1, data);
- return;
-
- case 0xc000:
- sound_bankswitch(data);
- return;
- }
-}
-
-UINT8 __fastcall hcastle_sound_read(UINT16 address)
-{
- if (address >= 0xb000 && address <= 0xb00d) {
- return K007232ReadReg(0, address & 0x0f);
- }
-
- switch (address)
- {
- case 0xa000:
- case 0xa001:
- return BurnYM3812Read(0, address & 1);
-
- case 0xd000:
- ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
- return *soundlatch;
- }
-
- return 0;
-}
-
-static void DrvK007232VolCallback(INT32 v)
-{
- K007232SetVolume(0, 0, (v >> 0x4) * 0x11, 0);
- K007232SetVolume(0, 1, 0, (v & 0x0f) * 0x11);
-}
-
-inline static INT32 DrvSynchroniseStream(INT32 nSoundRate)
-{
- return (INT64)ZetTotalCycles() * nSoundRate / 3579545;
-}
-
-static INT32 DrvDoReset()
-{
- DrvReset = 0;
-
- memset (AllRam, 0, RamEnd - AllRam);
-
- konamiOpen(0);
- konamiReset();
- konamiClose();
-
- ZetOpen(0);
- ZetReset();
- ZetClose();
-
- K051649Reset();
- BurnYM3812Reset();
-
- watchdog = 0;
-
- return 0;
-}
-
-static INT32 MemIndex()
-{
- UINT8 *Next; Next = AllMem;
-
- DrvKonROM = Next; Next += 0x030000;
- DrvZ80ROM = Next; Next += 0x010000;
-
- DrvGfxROM0 = Next; Next += 0x200000;
- DrvGfxROM1 = Next; Next += 0x200000;
-
- DrvPalROM = Next; Next += 0x000400;
-
- DrvSndROM = Next; Next += 0x080000;
-
- Palette = Next; Next += 0x001000;
- DrvPalette = (UINT32*)Next; Next += 0x1000 * sizeof(UINT32);
-
- AllRam = Next;
-
- DrvKonRAM0 = Next; Next += 0x000100;
- DrvKonRAM1 = Next; Next += 0x000100;
- DrvPalRAM = Next; Next += 0x002000;
- DrvPf1RAM = Next; Next += 0x001000;
- DrvPf2RAM = Next; Next += 0x001000;
- DrvSprRAM1 = Next; Next += 0x001000;
- DrvSprRAM2 = Next; Next += 0x001000;
- DrvSprBuf1 = Next; Next += 0x000800;
- DrvSprBuf2 = Next; Next += 0x000800;
-
- DrvPf1Ctrl = Next; Next += 0x000008;
- DrvPf2Ctrl = Next; Next += 0x000008;
-
- DrvZ80RAM = Next; Next += 0x000800;
-
- nDrvKonBank = Next; Next += 0x000001;
- soundlatch = Next; Next += 0x000001;
- gfxbank = Next; Next += 0x000001;
-
- RamEnd = Next;
- MemEnd = Next;
-
- return 0;
-}
-
-static void DrvGfxExpand(UINT8 *src, INT32 len)
-{
- for (INT32 i = (len - 1) * 2; i >= 0; i-=2) {
- src[i+0] = src[i/2] >> 4;
- src[i+1] = src[i/2] & 0xf;
- }
-}
-
-static void DrvPaletteInit()
-{
- for (INT32 chip = 0; chip < 2; chip++)
- {
- for (INT32 pal = 0; pal < 8; pal++)
- {
- INT32 clut = (chip << 1) | (pal & 1);
-
- for (INT32 i = 0; i < 0x100; i++)
- {
- UINT8 ctabentry;
-
- if (((pal & 0x01) == 0) && (DrvPalROM[(clut << 8) | i] == 0))
- ctabentry = 0;
- else
- ctabentry = (pal << 4) | (DrvPalROM[(clut << 8) | i] & 0x0f);
-
- Palette[(chip << 11) | (pal << 8) | i] = ctabentry;
- }
- }
- }
-}
-
-static INT32 DrvInit()
-{
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(DrvKonROM + 0x00000, 0, 1)) return 1;
- if (BurnLoadRom(DrvKonROM + 0x10000, 1, 1)) return 1;
-
- if (BurnLoadRom(DrvZ80ROM + 0x00000, 2, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x00000, 3, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x80000, 4, 1)) return 1;
- BurnByteswap(DrvGfxROM0, 0x100000);
-
- if (BurnLoadRom(DrvGfxROM1 + 0x00000, 5, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x80000, 6, 1)) return 1;
- BurnByteswap(DrvGfxROM1, 0x100000);
-
- if (BurnLoadRom(DrvSndROM + 0x00000, 7, 1)) return 1;
-
- if (BurnLoadRom(DrvPalROM + 0x00000, 8, 1)) return 1;
- if (BurnLoadRom(DrvPalROM + 0x00100, 9, 1)) return 1;
- if (BurnLoadRom(DrvPalROM + 0x00200, 10, 1)) return 1;
- if (BurnLoadRom(DrvPalROM + 0x00300, 11, 1)) return 1;
-
- DrvPaletteInit();
- DrvGfxExpand(DrvGfxROM0, 0x100000);
- DrvGfxExpand(DrvGfxROM1, 0x100000);
- }
-
- konamiInit(0);
- konamiOpen(0);
- konamiMapMemory(DrvKonRAM0, 0x0000, 0x00ff, MAP_ROM); //020-03f
- konamiMapMemory(DrvKonRAM1, 0x0200, 0x02ff, MAP_ROM); //220-23f
- konamiMapMemory(DrvPalRAM, 0x0600, 0x1fff, MAP_RAM);
- konamiMapMemory(DrvPf1RAM, 0x2000, 0x2fff, MAP_RAM);
- konamiMapMemory(DrvSprRAM1, 0x3000, 0x3fff, MAP_RAM);
- konamiMapMemory(DrvPf2RAM, 0x4000, 0x4fff, MAP_RAM);
- konamiMapMemory(DrvSprRAM2, 0x5000, 0x5fff, MAP_RAM);
- konamiMapMemory(DrvKonROM + 0x10000, 0x6000, 0x7fff, MAP_ROM);
- konamiMapMemory(DrvKonROM, 0x8000, 0xffff, MAP_ROM);
- konamiSetWriteHandler(hcastle_write);
- konamiSetReadHandler(hcastle_read);
- konamiClose();
-
- ZetInit(0);
- ZetOpen(0);
- ZetMapArea(0x0000, 0x7fff, 0, DrvZ80ROM);
- ZetMapArea(0x0000, 0x7fff, 2, DrvZ80ROM);
- ZetMapArea(0x8000, 0x87ff, 0, DrvZ80RAM);
- ZetMapArea(0x8000, 0x87ff, 1, DrvZ80RAM);
- ZetMapArea(0x8000, 0x87ff, 2, DrvZ80RAM);
- ZetSetWriteHandler(hcastle_sound_write);
- ZetSetReadHandler(hcastle_sound_read);
- ZetClose();
-
- BurnYM3812Init(1, 3579545, NULL, DrvSynchroniseStream, 0);
- BurnTimerAttachZetYM3812(3579545);
- BurnYM3812SetRoute(0, BURN_SND_YM3812_ROUTE, 0.70, BURN_SND_ROUTE_BOTH);
-
- K007232Init(0, 3579545, DrvSndROM, 0x80000); // no idea...
- K007232SetPortWriteHandler(0, DrvK007232VolCallback);
- K007232SetRoute(0, BURN_SND_K007232_ROUTE_1, 0.44, BURN_SND_ROUTE_BOTH);
- K007232SetRoute(0, BURN_SND_K007232_ROUTE_2, 0.50, BURN_SND_ROUTE_BOTH);
-
- K051649Init(3579545/2);
- K051649SetRoute(0.45, BURN_SND_ROUTE_BOTH);
-
- //BurnSetRefreshRate(59); Causes crash-on-exit. weird? hmm.
-
- GenericTilesInit();
-
- DrvDoReset();
-
- return 0;
-}
-
-static INT32 DrvExit()
-{
- GenericTilesExit();
-
- konamiExit();
- ZetExit();
-
- K007232Exit();
- K051649Exit();
- BurnYM3812Exit();
-
- BurnFree (AllMem);
-
- return 0;
-}
-
-static void draw_layer(UINT8 *ram, UINT8 *ctrl, UINT8 *gfx, INT32 colbase, INT32 base, INT32 t)
-{
- INT32 bit0 = ((ctrl[0x05] >> 0) & 0x03) + 2;
- INT32 bit1 = ((ctrl[0x05] >> 2) & 0x03) + 1;
- INT32 bit2 = ((ctrl[0x05] >> 4) & 0x03) + 0;
- INT32 bit3 = ((ctrl[0x05] >> 6) & 0x03) - 1;
- INT32 col = ((ctrl[0x06] << 1) & 0x60) | colbase;
-
- if (ctrl[0x03] & 0x01) base += 0x2000;
-
- INT32 scrollx = ((ctrl[0x01] << 8) | ctrl[0x00]) & 0x1ff;
- INT32 scrolly = ctrl[0x02] & 0xff;
-
- INT32 tilemap_flip = ctrl[0x07] & 0x08;
-
- for (INT32 offs = 0; offs < 64 * 32; offs++)
- {
- INT32 sx = (offs & 0x3f) << 3;
- INT32 sy = (offs >> 6) << 3;
-
- sx -= scrollx;
- if (sx < -7) sx += 0x200;
- sy -= scrolly;
- if (sy < -7) sy += 0x100;
-
- // if (sx >= nScreenWidth || sy < 9 || sy > 240) continue;
-
- INT32 ofst = (offs & 0x1f) + ((offs >> 1) & 0x3e0) + ((offs & 0x20) << 6);
-
- INT32 attr = ram[ofst];
- INT32 code = ram[ofst + 0x400];
- INT32 color = (attr & 0x07) | col;
- INT32 bank = ((attr & 0x80) >> 7) | ((attr >> bit0) & 0x02) | ((attr >> bit1) & 0x04) | ((attr >> bit2) & 0x08) | ((attr >> bit3) & 0x10);
-
- code += (bank << 8) + base;
- sy -= 16; //offset
-
- if (tilemap_flip) {
- sx = 0xf8 - sx;
- sy = 0xf8 - sy;
-
- if (sx < -7 || sx >= nScreenWidth) continue;
- if (sy < -7 || sy >= nScreenHeight) continue;
-
- if (t) {
- Render8x8Tile_Mask_FlipXY_Clip(pTransDraw, code, sx, sy, color, 4, 0, 0, gfx);
- } else {
- Render8x8Tile_FlipXY_Clip(pTransDraw, code, sx, sy, color, 4, 0, gfx);
- }
- } else {
- if (sx < -7 || sx >= nScreenWidth) continue;
- if (sy < -7 || sy >= nScreenHeight) continue;
-
- if (t) {
- Render8x8Tile_Mask_Clip(pTransDraw, code, sx, sy, color, 4, 0, 0, gfx);
- } else {
- Render8x8Tile_Clip(pTransDraw, code, sx, sy, color, 4, 0, gfx);
- }
- }
- }
-}
-
-static void draw_sprites(INT32 bank, UINT8 *source, UINT8 *ctrl, UINT8 *gfx, INT32 col)
-{
- INT32 bank_base = (bank == 0) ? 0x4000 * (*gfxbank & 1) : 0;
-
- INT32 base_color = ((ctrl[6] & 0x30) << 1) + col;
- INT32 flipscreen = ctrl[7] & 0x08;
-
- static const INT32 x_offset[4] = { 0x00, 0x01, 0x04, 0x05 };
- static const INT32 y_offset[4] = { 0x00, 0x02, 0x08, 0x0a };
-
- for (INT32 i = 0; i < 0x40; i++)
- {
- INT32 number = source[0];
- INT32 sbank = source[1] & 0x0f;
- INT32 sy = source[2];
- INT32 sx = source[3];
- INT32 attr = source[4];
- INT32 xflip = source[4] & 0x10;
- INT32 yflip = source[4] & 0x20;
- INT32 color = base_color + ((source[1] & 0xf0) >> 4);
- INT32 width, height;
-
- if (attr & 0x01) sx -= 256;
- if (sy >= 240) sy -= 256;
-
- number += ((sbank & 3) << 8) + ((attr & 0xc0) << 4);
- number = (number << 2) | ((sbank >> 2) & 3);
- number += bank_base;
-
- switch (attr & 0x0e)
- {
- case 0x06: width = 1; height = 1; break;
- case 0x04: width = 1; height = 2; number &= (~2); break;
- case 0x02: width = 2; height = 1; number &= (~1); break;
- case 0x00: width = 2; height = 2; number &= (~3); break;
- case 0x08: width = 4; height = 4; number &= (~3); break;
- default: width = 1; height = 1;
- }
-
- for (INT32 y = 0; y < height; y++)
- {
- INT32 yy = sy + y * 8;
- INT32 ey = yflip ? (height-1-y) : y;
- yy -= 16; //offset
-
- for (INT32 x = 0; x < width; x++)
- {
- INT32 ex = xflip ? (width-1-x) : x;
- INT32 xx = sx + x * 8;
-
- INT32 code = number + x_offset[ex] + y_offset[ey];
- if (xx < -7 || xx >= nScreenWidth) continue;
- if (yy < -7 || yy >= nScreenHeight) continue;
-
- if (flipscreen) {
- if (yflip ^ 0x20) {
- if (xflip ^ 0x10) {
- Render8x8Tile_Mask_FlipXY_Clip(pTransDraw, code, 248-xx, (248-yy), color, 4, 0, 0, gfx);
- } else {
- Render8x8Tile_Mask_FlipY_Clip(pTransDraw, code, 248-xx, (248-yy), color, 4, 0, 0, gfx);
- }
- } else {
- if (xflip ^ 0x10) {
- Render8x8Tile_Mask_FlipX_Clip(pTransDraw, code, 248-xx, (248-yy), color, 4, 0, 0, gfx);
- } else {
- Render8x8Tile_Mask_Clip(pTransDraw, code, 248-xx, (248-yy), color, 4, 0, 0, gfx);
- }
- }
- } else {
- if (yflip) {
- if (xflip) {
- Render8x8Tile_Mask_FlipXY_Clip(pTransDraw, code, xx, yy, color, 4, 0, 0, gfx);
- } else {
- Render8x8Tile_Mask_FlipY_Clip(pTransDraw, code, xx, yy, color, 4, 0, 0, gfx);
- }
- } else {
- if (xflip) {
- Render8x8Tile_Mask_FlipX_Clip(pTransDraw, code, xx, yy, color, 4, 0, 0, gfx);
- } else {
- Render8x8Tile_Mask_Clip(pTransDraw, code, xx, yy, color, 4, 0, 0, gfx);
- }
- }
- }
- }
- }
-
- source += 5;
- }
-}
-
-static INT32 DrvDraw()
-{
- if (DrvRecalc) {
- UINT8 r,g,b;
- UINT32 tmp[0x80];
-
- for (INT32 i = 0; i < 0x100; i+=2) {
- UINT16 d = DrvPalRAM[i + 1] | (DrvPalRAM[i] << 8);
- r = (d >> 0) & 0x1f;
- g = (d >> 5) & 0x1f;
- b = (d >> 10) & 0x1f;
-
- r = (r << 3) | (r >> 2);
- g = (g << 3) | (g >> 2);
- b = (b << 3) | (b >> 2);
-
- tmp[i/2] = BurnHighCol(r, g, b, 0);
- }
-
- for (INT32 i = 0; i < 0x1000; i++) {
- DrvPalette[i] = tmp[Palette[i]];
- }
- }
-
- BurnTransferClear();
-
- if ((*gfxbank & 0x04) == 0)
- {
- if (nBurnLayer & 1) draw_layer(DrvPf2RAM, DrvPf2Ctrl, DrvGfxROM1, 0x90, ((*gfxbank & 2) >> 1) * 0x4000, 0);
- if (nSpriteEnable & 1) draw_sprites(0, DrvSprBuf1, DrvPf1Ctrl, DrvGfxROM0, 0x00);
- if (nSpriteEnable & 2) draw_sprites(1, DrvSprBuf2, DrvPf2Ctrl, DrvGfxROM1, 0x80);
- if (nBurnLayer & 2) draw_layer(DrvPf1RAM, DrvPf1Ctrl, DrvGfxROM0, 0x10, 0x0000, 1);
- }
- else
- {
- if (nBurnLayer & 1) draw_layer(DrvPf2RAM, DrvPf2Ctrl, DrvGfxROM1, 0x90, ((*gfxbank & 2) >> 1) * 0x4000, 0);
- if (nBurnLayer & 2) draw_layer(DrvPf1RAM, DrvPf1Ctrl, DrvGfxROM0, 0x10, 0x0000, 1);
- if (nSpriteEnable & 1) draw_sprites(0, DrvSprBuf1, DrvPf1Ctrl, DrvGfxROM0, 0x00);
- if (nSpriteEnable & 2) draw_sprites(1, DrvSprBuf2, DrvPf2Ctrl, DrvGfxROM1, 0x80);
- }
-
- BurnTransferCopy(DrvPalette);
-
- return 0;
-}
-
-static INT32 DrvFrame()
-{
- if (DrvReset) {
- DrvDoReset();
- }
-
- if (watchdog++ == 60) {
- DrvDoReset();
- }
-
- {
- memset (DrvInputs, 0xff, 3);
- for (INT32 i = 0; i < 8; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- DrvInputs[2] ^= (DrvJoy3[i] & 1) << i;
- }
-
- // Clear opposites
- if ((DrvInputs[1] & 0x03) == 0) DrvInputs[1] |= 0x03;
- if ((DrvInputs[1] & 0x0c) == 0) DrvInputs[1] |= 0x0c;
- if ((DrvInputs[2] & 0x03) == 0) DrvInputs[2] |= 0x03;
- if ((DrvInputs[2] & 0x0c) == 0) DrvInputs[2] |= 0x0c;
- }
-
- konamiNewFrame();
- ZetNewFrame();
-
- INT32 nCyclesTotal[2] = { 3000000 / 60, 3579545 / 60 };
- INT32 nInterleave = 30;
-
- ZetOpen(0);
- konamiOpen(0);
- for (INT32 i = 0; i < nInterleave; i++) {
- konamiRun(nCyclesTotal[0] / nInterleave);
- BurnTimerUpdateYM3812((i + 1) * (nCyclesTotal[1] / nInterleave));
- }
-
- konamiSetIrqLine(KONAMI_IRQ_LINE, CPU_IRQSTATUS_AUTO);
- BurnTimerEndFrameYM3812(nCyclesTotal[1]);
-
- if (pBurnSoundOut) {
- BurnYM3812Update(pBurnSoundOut, nBurnSoundLen);
- K007232Update(0, pBurnSoundOut, nBurnSoundLen);
- K051649Update(pBurnSoundOut, nBurnSoundLen);
- }
-
- konamiClose();
- ZetClose();
-
- if (pBurnDraw) {
- DrvDraw();
- }
-
- return 0;
-}
-
-static INT32 DrvScan(INT32 nAction,INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin) {
- *pnMin = 0x029702;
- }
-
- if (nAction & ACB_VOLATILE) {
- memset(&ba, 0, sizeof(ba));
-
- ba.Data = AllRam;
- ba.nLen = RamEnd - AllRam;
- ba.szName = "All Ram";
- BurnAcb(&ba);
-
- konamiCpuScan(nAction);
- ZetScan(nAction);
-
- BurnYM3812Scan(nAction, pnMin);
- K007232Scan(nAction, pnMin);
- K051649Scan(nAction, pnMin);
-
- SCAN_VAR(watchdog);
- }
-
- if (nAction & ACB_WRITE) {
- konamiOpen(0);
- bankswitch(*nDrvKonBank);
- konamiClose();
- }
-
- return 0;
-}
-
-
-// Haunted Castle (ver. M)
-
-static struct BurnRomInfo hcastleRomDesc[] = {
- { "m03.k12", 0x08000, 0xd85e743d, 1 | BRF_PRG | BRF_ESS }, // 0 Konami Custom Code
- { "b06.k8", 0x20000, 0xabd07866, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "768e01.e4", 0x08000, 0xb9fff184, 2 | BRF_PRG | BRF_ESS }, // 2 Z80 Code
-
- { "768c09.g21", 0x80000, 0xe3be3fdd, 3 | BRF_GRA }, // 3 Bank #0 Tiles
- { "768c08.g19", 0x80000, 0x9633db8b, 3 | BRF_GRA }, // 4
-
- { "768c04.j5", 0x80000, 0x2960680e, 4 | BRF_GRA }, // 5 Bank #1 Tiles
- { "768c05.j6", 0x80000, 0x65a2f227, 4 | BRF_GRA }, // 6
-
- { "768c07.e17", 0x80000, 0x01f9889c, 5 | BRF_SND }, // 7 K007232 Samples
-
- { "768c13.j21", 0x00100, 0xf5de80cb, 6 | BRF_GRA }, // 8 Color Proms
- { "768c14.j22", 0x00100, 0xb32071b7, 6 | BRF_GRA }, // 9
- { "768c11.i4", 0x00100, 0xf5de80cb, 6 | BRF_GRA }, // 10
- { "768c10.i3", 0x00100, 0xb32071b7, 6 | BRF_GRA }, // 11
-
- { "768b12.d20", 0x00100, 0x362544b8, 0 | BRF_GRA | BRF_OPT }, // 12 Priority Prom
-};
-
-STD_ROM_PICK(hcastle)
-STD_ROM_FN(hcastle)
-
-struct BurnDriver BurnDrvHcastle = {
- "hcastle", NULL, NULL, NULL, "1988",
- "Haunted Castle (ver. M)\0", NULL, "Konami", "GX768",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_PREFIX_KONAMI, GBF_SCRFIGHT | GBF_PLATFORM, 0,
- NULL, hcastleRomInfo, hcastleRomName, NULL, NULL, HcastleInputInfo, HcastleDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x1000,
- 256, 224, 4, 3
-};
-
-
-// Haunted Castle (ver. K)
-
-static struct BurnRomInfo hcastlekRomDesc[] = {
- { "768k03.k12", 0x08000, 0x40ce4f38, 1 | BRF_PRG | BRF_ESS }, // 0 Konami Custom Code
- { "768g06.k8", 0x20000, 0xcdade920, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "768e01.e4", 0x08000, 0xb9fff184, 2 | BRF_PRG | BRF_ESS }, // 2 Z80 Code
-
- { "768c09.g21", 0x80000, 0xe3be3fdd, 3 | BRF_GRA }, // 3 Bank #0 Tiles
- { "768c08.g19", 0x80000, 0x9633db8b, 3 | BRF_GRA }, // 4
-
- { "768c04.j5", 0x80000, 0x2960680e, 4 | BRF_GRA }, // 5 Bank #1 Tiles
- { "768c05.j6", 0x80000, 0x65a2f227, 4 | BRF_GRA }, // 6
-
- { "768c07.e17", 0x80000, 0x01f9889c, 5 | BRF_SND }, // 7 K007232 Samples
-
- { "768c13.j21", 0x00100, 0xf5de80cb, 6 | BRF_GRA }, // 8 Color Proms
- { "768c14.j22", 0x00100, 0xb32071b7, 6 | BRF_GRA }, // 9
- { "768c11.i4", 0x00100, 0xf5de80cb, 6 | BRF_GRA }, // 10
- { "768c10.i3", 0x00100, 0xb32071b7, 6 | BRF_GRA }, // 11
-
- { "768b12.d20", 0x00100, 0x362544b8, 0 | BRF_GRA | BRF_OPT }, // 12 Priority Prom
-};
-
-STD_ROM_PICK(hcastlek)
-STD_ROM_FN(hcastlek)
-
-struct BurnDriver BurnDrvHcastlek = {
- "hcastlek", "hcastle", NULL, NULL, "1988",
- "Haunted Castle (ver. K)\0", NULL, "Konami", "GX768",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_KONAMI, GBF_SCRFIGHT | GBF_PLATFORM, 0,
- NULL, hcastlekRomInfo, hcastlekRomName, NULL, NULL, HcastleInputInfo, HcastleDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x1000,
- 256, 224, 4, 3
-};
-
-
-// Haunted Castle (ver. E)
-
-static struct BurnRomInfo hcastleeRomDesc[] = {
- { "768e03.k12", 0x08000, 0x0b32619c, 1 | BRF_PRG | BRF_ESS }, // 0 Konami Custom Code
- { "768e06.k8", 0x20000, 0x0431b8c0, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "768e01.e4", 0x08000, 0xb9fff184, 2 | BRF_PRG | BRF_ESS }, // 2 Z80 Code
-
- { "768c09.g21", 0x80000, 0xe3be3fdd, 3 | BRF_GRA }, // 3 Bank #0 Tiles
- { "768c08.g19", 0x80000, 0x9633db8b, 3 | BRF_GRA }, // 4
-
- { "768c04.j5", 0x80000, 0x2960680e, 4 | BRF_GRA }, // 5 Bank #1 Tiles
- { "768c05.j6", 0x80000, 0x65a2f227, 4 | BRF_GRA }, // 6
-
- { "768c07.e17", 0x80000, 0x01f9889c, 5 | BRF_SND }, // 7 K007232 Samples
-
- { "768c13.j21", 0x00100, 0xf5de80cb, 6 | BRF_GRA }, // 8 Color Proms
- { "768c14.j22", 0x00100, 0xb32071b7, 6 | BRF_GRA }, // 9
- { "768c11.i4", 0x00100, 0xf5de80cb, 6 | BRF_GRA }, // 10
- { "768c10.i3", 0x00100, 0xb32071b7, 6 | BRF_GRA }, // 11
-
- { "768b12.d20", 0x00100, 0x362544b8, 0 | BRF_GRA | BRF_OPT }, // 12 Priority Prom
-};
-
-STD_ROM_PICK(hcastlee)
-STD_ROM_FN(hcastlee)
-
-struct BurnDriver BurnDrvHcastlee = {
- "hcastlee", "hcastle", NULL, NULL, "1988",
- "Haunted Castle (ver. E)\0", NULL, "Konami", "GX768",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_KONAMI, GBF_SCRFIGHT | GBF_PLATFORM, 0,
- NULL, hcastleeRomInfo, hcastleeRomName, NULL, NULL, HcastleInputInfo, HcastleDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x1000,
- 256, 224, 4, 3
-};
-
-
-// Akuma-Jou Dracula (Japan ver. P)
-
-static struct BurnRomInfo akumajouRomDesc[] = {
- { "768p03.k12", 0x08000, 0xd509e340, 1 | BRF_PRG | BRF_ESS }, // 0 Konami Custom Code
- { "768j06.k8", 0x20000, 0x42283c3e, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "768e01.e4", 0x08000, 0xb9fff184, 2 | BRF_PRG | BRF_ESS }, // 2 Z80 Code
-
- { "768c09.g21", 0x80000, 0xe3be3fdd, 3 | BRF_GRA }, // 3 Bank #0 Tiles
- { "768c08.g19", 0x80000, 0x9633db8b, 3 | BRF_GRA }, // 4
-
- { "768c04.j5", 0x80000, 0x2960680e, 4 | BRF_GRA }, // 5 Bank #1 Tiles
- { "768c05.j6", 0x80000, 0x65a2f227, 4 | BRF_GRA }, // 6
-
- { "768c07.e17", 0x80000, 0x01f9889c, 5 | BRF_SND }, // 7 K007232 Samples
-
- { "768c13.j21", 0x00100, 0xf5de80cb, 6 | BRF_GRA }, // 8 Color Proms
- { "768c14.j22", 0x00100, 0xb32071b7, 6 | BRF_GRA }, // 9
- { "768c11.i4", 0x00100, 0xf5de80cb, 6 | BRF_GRA }, // 10
- { "768c10.i3", 0x00100, 0xb32071b7, 6 | BRF_GRA }, // 11
-
- { "768b12.d20", 0x00100, 0x362544b8, 0 | BRF_GRA | BRF_OPT }, // 12 Priority Prom
-};
-
-STD_ROM_PICK(akumajou)
-STD_ROM_FN(akumajou)
-
-struct BurnDriver BurnDrvAkumajou = {
- "akumajou", "hcastle", NULL, NULL, "1988",
- "Akuma-Jou Dracula (Japan ver. P)\0", NULL, "Konami", "GX768",
- L"\u60AA\u9B54\u57CE \u30C9\u30E9\u30AD\u30E5\u30E9 (Japan ver. P)\0Akuma-Jou Dracula\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_KONAMI, GBF_SCRFIGHT | GBF_PLATFORM, 0,
- NULL, akumajouRomInfo, akumajouRomName, NULL, NULL, HcastleInputInfo, HcastleDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x1000,
- 256, 224, 4, 3
-};
-
-
-// Akuma-Jou Dracula (Japan ver. N)
-
-static struct BurnRomInfo akumajounRomDesc[] = {
- { "768n03.k12", 0x08000, 0x3e4dca2a, 1 | BRF_PRG | BRF_ESS }, // 0 Konami Custom Code
- { "768j06.k8", 0x20000, 0x42283c3e, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "768e01.e4", 0x08000, 0xb9fff184, 2 | BRF_PRG | BRF_ESS }, // 2 Z80 Code
-
- { "768c09.g21", 0x80000, 0xe3be3fdd, 3 | BRF_GRA }, // 3 Bank #0 Tiles
- { "768c08.g19", 0x80000, 0x9633db8b, 3 | BRF_GRA }, // 4
-
- { "768c04.j5", 0x80000, 0x2960680e, 4 | BRF_GRA }, // 5 Bank #1 Tiles
- { "768c05.j6", 0x80000, 0x65a2f227, 4 | BRF_GRA }, // 6
-
- { "768c07.e17", 0x80000, 0x01f9889c, 5 | BRF_SND }, // 7 K007232 Samples
-
- { "768c13.j21", 0x00100, 0xf5de80cb, 6 | BRF_GRA }, // 8 Color Proms
- { "768c14.j22", 0x00100, 0xb32071b7, 6 | BRF_GRA }, // 9
- { "768c11.i4", 0x00100, 0xf5de80cb, 6 | BRF_GRA }, // 10
- { "768c10.i3", 0x00100, 0xb32071b7, 6 | BRF_GRA }, // 11
-
- { "768b12.d20", 0x00100, 0x362544b8, 0 | BRF_GRA | BRF_OPT }, // 12 Priority Prom
-};
-
-STD_ROM_PICK(akumajoun)
-STD_ROM_FN(akumajoun)
-
-struct BurnDriver BurnDrvAkumajoun = {
- "akumajoun", "hcastle", NULL, NULL, "1988",
- "Akuma-Jou Dracula (Japan ver. N)\0", NULL, "Konami", "GX768",
- L"\u60AA\u9B54\u57CE \u30C9\u30E9\u30AD\u30E5\u30E9 (Japan ver. N)\0Akuma-Jou Dracula\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_KONAMI, GBF_SCRFIGHT | GBF_PLATFORM, 0,
- NULL, akumajounRomInfo, akumajounRomName, NULL, NULL, HcastleInputInfo, HcastleDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x1000,
- 256, 224, 4, 3
-};
diff --git a/jan/src/burn/drv/konami/d_hexion.cpp b/jan/src/burn/drv/konami/d_hexion.cpp
deleted file mode 100644
index 28693ba34..000000000
--- a/jan/src/burn/drv/konami/d_hexion.cpp
+++ /dev/null
@@ -1,677 +0,0 @@
-// FB Alpha Hexion driver module
-// Based on MAME driver by Nicola Salmoria
-
-#include "tiles_generic.h"
-#include "z80_intf.h"
-#include "k051649.h"
-#include "msm6295.h"
-
-static UINT8 *AllMem;
-static UINT8 *AllRam;
-static UINT8 *MemEnd;
-static UINT8 *RamEnd;
-static UINT8 *DrvZ80ROM;
-static UINT8 *DrvGfxROM;
-static UINT8 *DrvGfxROMExp;
-static UINT8 *DrvSndROM0;
-static UINT8 *DrvSndROM1;
-static UINT8 *DrvColPROM;
-static UINT8 *DrvUnkRAM;
-static UINT8 *DrvVidRAM;
-static UINT8 *DrvZ80RAM;
-static UINT8 *flipscreen;
-
-static UINT32 *DrvPalette;
-static UINT32 *Palette;
-static UINT8 DrvRecalc;
-
-static INT32 cpubank;
-static INT32 bankctrl;
-static INT32 rambank;
-static INT32 pmcbank;
-static INT32 gfxrom_select;
-
-static UINT8 DrvJoy1[8];
-static UINT8 DrvJoy2[8];
-static UINT8 DrvJoy3[8];
-static UINT8 DrvDips[3];
-static UINT8 DrvInputs[3];
-static UINT8 DrvReset;
-
-static INT32 is_bootleg = 0;
-
-static struct BurnInputInfo HexionInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy3 + 0, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 7, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy1 + 2, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy1 + 3, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy1 + 0, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy1 + 1, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy1 + 4, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy1 + 5, "p1 fire 2" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy3 + 1, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy2 + 7, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvJoy2 + 2, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy2 + 3, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy2 + 0, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy2 + 1, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy2 + 4, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy2 + 5, "p2 fire 2" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service", BIT_DIGITAL, DrvJoy3 + 2, "service" },
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip" },
- {"Dip C", BIT_DIPSWITCH, DrvDips + 2, "dip" },
-};
-
-STDINPUTINFO(Hexion)
-
-static struct BurnDIPInfo HexionDIPList[]=
-{
- {0x12, 0xff, 0xff, 0xff, NULL },
- {0x13, 0xff, 0xff, 0x4f, NULL },
- {0x14, 0xff, 0xff, 0xff, NULL },
-
- {0 , 0xfe, 0 , 16, "Coin A" },
- {0x12, 0x01, 0x0f, 0x02, "4 Coins 1 Credit" },
- {0x12, 0x01, 0x0f, 0x05, "3 Coins 1 Credit" },
- {0x12, 0x01, 0x0f, 0x08, "2 Coins 1 Credit" },
- {0x12, 0x01, 0x0f, 0x04, "3 Coins 2 Credits" },
- {0x12, 0x01, 0x0f, 0x01, "4 Coins 3 Credits" },
- {0x12, 0x01, 0x0f, 0x0f, "1 Coin 1 Credit" },
- {0x12, 0x01, 0x0f, 0x03, "3 Coins 4 Credits" },
- {0x12, 0x01, 0x0f, 0x07, "2 Coins 3 Credits" },
- {0x12, 0x01, 0x0f, 0x0e, "1 Coin 2 Credits" },
- {0x12, 0x01, 0x0f, 0x06, "2 Coins 5 Credits" },
- {0x12, 0x01, 0x0f, 0x0d, "1 Coin 3 Credits" },
- {0x12, 0x01, 0x0f, 0x0c, "1 Coin 4 Credits" },
- {0x12, 0x01, 0x0f, 0x0b, "1 Coin 5 Credits" },
- {0x12, 0x01, 0x0f, 0x0a, "1 Coin 6 Credits" },
- {0x12, 0x01, 0x0f, 0x09, "1 Coin 7 Credits" },
- {0x12, 0x01, 0x0f, 0x00, "Free Play" },
-
- {0 , 0xfe, 0 , 16, "Coin B" },
- {0x12, 0x01, 0xf0, 0x20, "4 Coins 1 Credit" },
- {0x12, 0x01, 0xf0, 0x50, "3 Coins 1 Credit" },
- {0x12, 0x01, 0xf0, 0x80, "2 Coins 1 Credit" },
- {0x12, 0x01, 0xf0, 0x40, "3 Coins 2 Credits" },
- {0x12, 0x01, 0xf0, 0x10, "4 Coins 3 Credits" },
- {0x12, 0x01, 0xf0, 0xf0, "1 Coin 1 Credit" },
- {0x12, 0x01, 0xf0, 0x30, "3 Coins 4 Credits" },
- {0x12, 0x01, 0xf0, 0x70, "2 Coins 3 Credits" },
- {0x12, 0x01, 0xf0, 0xe0, "1 Coin 2 Credits" },
- {0x12, 0x01, 0xf0, 0x60, "2 Coins 5 Credits" },
- {0x12, 0x01, 0xf0, 0xd0, "1 Coin 3 Credits" },
- {0x12, 0x01, 0xf0, 0xc0, "1 Coin 4 Credits" },
- {0x12, 0x01, 0xf0, 0xb0, "1 Coin 5 Credits" },
- {0x12, 0x01, 0xf0, 0xa0, "1 Coin 6 Credits" },
- {0x12, 0x01, 0xf0, 0x90, "1 Coin 7 Credits" },
- {0x12, 0x01, 0xf0, 0x00, "Free Play" },
-
- {0 , 0xfe, 0 , 8, "Difficulty" },
- {0x13, 0x01, 0x70, 0x70, "Easiest" },
- {0x13, 0x01, 0x70, 0x60, "Very Easy" },
- {0x13, 0x01, 0x70, 0x50, "Easy" },
- {0x13, 0x01, 0x70, 0x40, "Medium" },
- {0x13, 0x01, 0x70, 0x30, "Medium Hard" },
- {0x13, 0x01, 0x70, 0x20, "Hard" },
- {0x13, 0x01, 0x70, 0x10, "Very Hard" },
- {0x13, 0x01, 0x70, 0x00, "Hardest" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x13, 0x01, 0x80, 0x80, "Off" },
- {0x13, 0x01, 0x80, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x14, 0x01, 0x01, 0x01, "Off" },
- {0x14, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x14, 0x01, 0x04, 0x04, "Off" },
- {0x14, 0x01, 0x04, 0x00, "On" },
-};
-
-STDDIPINFO(Hexion)
-
-static void bankswitch(INT32 data)
-{
- cpubank = data & 0x0f;
-
- ZetMapMemory(DrvZ80ROM + (cpubank << 13), 0x8000, 0x9fff, MAP_ROM);
-}
-
-void __fastcall hexion_write(UINT16 address, UINT8 data)
-{
- switch (address)
- {
- case 0xdfff:
- bankctrl = data;
- return;
-
- case 0xf200:
- MSM6295Command(0, data);
- return;
-
- case 0xf480:
- {
- if (data & 0x40) {
- memset (DrvVidRAM + ((DrvUnkRAM[0] & 1) << 13), DrvUnkRAM[1], 0x2000);
- }
-
- pmcbank = data & 0x80;
-
- bankswitch(data);
- }
- return;
-
- case 0xf4c0:
- *flipscreen = data & 0x20;
- return;
-
- case 0xf500:
- gfxrom_select = data;
- return;
-
- case 0xf5c0:
- if (is_bootleg) {
- MSM6295Command(1, data);
- }
- return;
- }
-
- if ((address & 0xe000) == 0xc000) {
- if (bankctrl == 3 && address == 0xc000 && (data & 0xfe) == 0) {
- rambank = data & 1;
- return;
- }
- if (pmcbank) {
- if (bankctrl == 0) {
- DrvVidRAM[(rambank << 13) + (address & 0x1fff)] = data;
- return;
- }
- if (bankctrl == 2 && address < 0xc800) {
- DrvUnkRAM[address & 0x7ff] = data;
- return;
- }
- }
- return;
- }
-
- if ((address & 0xff80) == 0xe800) {
- K051649WaveformWrite(address & 0x7f, data);
- return;
- }
-
- if ((address & 0xfff0) == 0xe880) {
- if (address <= 0xe889) {
- K051649FrequencyWrite(address & 0x0f, data);
- return;
- }
-
- if (address == 0xe88f) {
- K051649KeyonoffWrite(data);
- return;
- }
-
- if (address >= 0xe88a) {
- K051649VolumeWrite(address - 0xe88a, data);
- return;
- }
-
- return;
- }
-}
-
-UINT8 __fastcall hexion_read(UINT16 address)
-{
- switch (address)
- {
- case 0xf400:
- return DrvDips[0];
-
- case 0xf401:
- return DrvDips[1];
-
- case 0xf402:
- return DrvInputs[0];
-
- case 0xf403:
- return DrvInputs[1];
-
- case 0xf440:
- return DrvDips[2];
-
- case 0xf441:
- return DrvInputs[2] & 0xf7;
-
- case 0xf540:
- return 0; // watchdog
- }
-
- if ((address & 0xe000) == 0xc000) {
- if (gfxrom_select && address < 0xd000)
- return DrvGfxROM[((gfxrom_select & 0x7f) << 12) + (address & 0xfff)];
-
- if (bankctrl == 0)
- return DrvVidRAM[(rambank << 13) + (address & 0x1fff)];
-
- if (bankctrl == 2 && address < 0xd800)
- return DrvUnkRAM[address & 0x7ff];
-
- return 0;
- }
-
- return 0;
-}
-
-static INT32 DrvDoReset()
-{
- DrvReset = 0;
-
- memset (AllRam, 0, RamEnd - AllRam);
-
- ZetOpen(0);
- ZetReset();
- bankswitch(4);
- ZetClose();
-
- K051649Reset();
-
- MSM6295Reset(0);
- MSM6295Reset(1);
-
- cpubank = 0;
- bankctrl = 0;
- rambank = 0;
- pmcbank = 0;
- gfxrom_select = 0;
-
- return 0;
-}
-
-static INT32 MemIndex()
-{
- UINT8 *Next; Next = AllMem;
-
- DrvZ80ROM = Next; Next += 0x020000;
-
- DrvGfxROM = Next; Next += 0x080000;
- DrvGfxROMExp = Next; Next += 0x100000;
-
- MSM6295ROM = Next;
- DrvSndROM0 = Next; Next += 0x100000;
- DrvSndROM1 = Next; Next += 0x040000;
-
- DrvColPROM = Next; Next += 0x000300;
-
- DrvPalette = (UINT32*)Next; Next += 0x0100 * sizeof(UINT32);
- Palette = (UINT32*)Next; Next += 0x0100 * sizeof(UINT32);
-
- AllRam = Next;
-
- DrvUnkRAM = Next; Next += 0x000800;
- DrvVidRAM = Next; Next += 0x006000;
- DrvZ80RAM = Next; Next += 0x002000;
-
- flipscreen = Next; Next += 0x000001;
-
- RamEnd = Next;
-
- MemEnd = Next;
-
- return 0;
-}
-
-static INT32 DrvGfxDecode()
-{
- INT32 Plane[4] = { STEP4(0,1) };
- INT32 XOffs[8] = { 0x200000, 0x200004, 0x000000, 0x000004, 0x200008, 0x20000c, 0x000008, 0x00000c };
- INT32 YOffs[8] = { STEP8(0,16) };
-
- UINT8 *tmp = (UINT8*)BurnMalloc(0x80000);
- if (tmp == NULL) {
- return 1;
- }
-
- memcpy (tmp, DrvGfxROM, 0x80000);
-
- GfxDecode(0x4000, 4, 8, 8, Plane, XOffs, YOffs, 0x080, tmp, DrvGfxROMExp);
-
- BurnFree (tmp);
-
- return 0;
-}
-
-static void DrvPaletteInit()
-{
- for (INT32 i = 0; i < 0x100; i++)
- {
- INT32 bit0,bit1,bit2,bit3,r,g,b;
-
- bit0 = (DrvColPROM[i + 0x000] >> 0) & 0x01;
- bit1 = (DrvColPROM[i + 0x000] >> 1) & 0x01;
- bit2 = (DrvColPROM[i + 0x000] >> 2) & 0x01;
- bit3 = (DrvColPROM[i + 0x000] >> 3) & 0x01;
- r = 0x0e * bit0 + 0x1f * bit1 + 0x43 * bit2 + 0x8f * bit3;
-
- bit0 = (DrvColPROM[i + 0x100] >> 0) & 0x01;
- bit1 = (DrvColPROM[i + 0x100] >> 1) & 0x01;
- bit2 = (DrvColPROM[i + 0x100] >> 2) & 0x01;
- bit3 = (DrvColPROM[i + 0x100] >> 3) & 0x01;
- g = 0x0e * bit0 + 0x1f * bit1 + 0x43 * bit2 + 0x8f * bit3;
-
- bit0 = (DrvColPROM[i + 0x200] >> 0) & 0x01;
- bit1 = (DrvColPROM[i + 0x200] >> 1) & 0x01;
- bit2 = (DrvColPROM[i + 0x200] >> 2) & 0x01;
- bit3 = (DrvColPROM[i + 0x200] >> 3) & 0x01;
- b = 0x0e * bit0 + 0x1f * bit1 + 0x43 * bit2 + 0x8f * bit3;
-
- Palette[i] = (r << 16) | (g << 8) | b;
- }
-}
-
-static INT32 DrvInit()
-{
- is_bootleg = (BurnDrvGetFlags() & BDF_BOOTLEG) ? 1 : 0;
-
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(DrvZ80ROM, 0, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM, 1, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM + 0x40000, 2, 1)) return 1;
-
- if (BurnLoadRom(DrvSndROM0, 3, 1)) return 1;
-
- if (BurnLoadRom(DrvColPROM + 0x000, 4, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x100, 5, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x200, 6, 1)) return 1;
-
- // bootleg
- if (BurnLoadRom(DrvSndROM1, 7, 1)) return 1;
-
- DrvGfxDecode();
- DrvPaletteInit();
- }
-
- ZetInit(0);
- ZetOpen(0);
- ZetMapMemory(DrvZ80ROM, 0x0000, 0x7fff, MAP_ROM);
- ZetMapMemory(DrvZ80RAM, 0xa000, 0xbfff, MAP_RAM);
- ZetSetWriteHandler(hexion_write);
- ZetSetReadHandler(hexion_read);
- ZetClose();
-
- MSM6295Init(0, 1056000 / 132, 0);
- MSM6295SetRoute(0, 0.50, BURN_SND_ROUTE_BOTH);
-
- MSM6295Init(1, 1056000 / 132, 1);
- MSM6295SetRoute(1, 0.50, BURN_SND_ROUTE_BOTH);
-
- K051649Init(1500000);
- K051649SetRoute(0.50, BURN_SND_ROUTE_BOTH);
-
- GenericTilesInit();
-
- DrvDoReset();
-
- return 0;
-}
-
-static INT32 DrvExit()
-{
- GenericTilesExit();
-
- MSM6295Exit(0);
- MSM6295Exit(1);
- K051649Exit();
-
- ZetExit();
-
- BurnFree (AllMem);
-
- MSM6295ROM = NULL;
-
- return 0;
-}
-
-static void draw_layer(INT32 offset, INT32 transparent, INT32 pos)
-{
- UINT8 *vram = DrvVidRAM + offset;
-
- for (INT32 offs = 0; offs < 64 * 32; offs++)
- {
- INT32 sx = (offs & 0x3f) << 3;
- INT32 sy = (offs >> 6) << 3;
-
- INT32 code = vram[0] | ((vram[1] & 0x3f) << 8);
- INT32 color = vram[2] & 0x0f;
- vram += 4;
-
- if (*flipscreen) {
- sx ^= 0x1f8;
- sy ^= 0x0f8;
-
- if (transparent) {
- Render8x8Tile_Mask_FlipXY_Clip(pTransDraw, code, sx-pos, sy+pos, color, 4, 0, 0, DrvGfxROMExp);
- } else {
- Render8x8Tile_FlipXY_Clip(pTransDraw, code, sx-pos, sy+pos, color, 4, 0, DrvGfxROMExp);
- }
-
- // wrap
- if (pos == 0) continue;
- if (sx == 0) Render8x8Tile_Clip(pTransDraw, code, sx + 508, sy, color, 4, 0, DrvGfxROMExp);
- if (sy == 252) Render8x8Tile_Clip(pTransDraw, code, sx, sy - 256, color, 4, 0, DrvGfxROMExp);
- } else {
- if (transparent) {
- Render8x8Tile_Mask_Clip(pTransDraw, code, sx+pos, sy-pos, color, 4, 0, 0, DrvGfxROMExp);
- } else {
- Render8x8Tile_Clip(pTransDraw, code, sx+pos, sy-pos, color, 4, 0, DrvGfxROMExp);
- }
-
- // wrap
- if (pos == 0) continue;
- if (sy == 0) Render8x8Tile_Clip(pTransDraw, code, sx, sy + 252, color, 4, 0, DrvGfxROMExp);
- if (sx == 504) Render8x8Tile_Clip(pTransDraw, code, sx - 508, sy, color, 4, 0, DrvGfxROMExp);
- }
- }
-}
-
-static INT32 DrvDraw()
-{
- if (DrvRecalc) {
- for (INT32 i = 0; i < 0x100; i++) {
- INT32 rgb = Palette[i];
- DrvPalette[i] = BurnHighCol(rgb >> 16, rgb >> 8, rgb, 0);
- }
- }
-
- draw_layer(0x2000, 0, 4);
- draw_layer(0x0000, 1, 0);
-
- BurnTransferCopy(DrvPalette);
-
- return 0;
-}
-
-static INT32 DrvFrame()
-{
- INT32 nInterleave = nBurnSoundLen;
- INT32 nSoundBufferPos = 0;
-
- if (DrvReset) {
- DrvDoReset();
- }
-
- {
- memset (DrvInputs, 0xff, 3);
- for (INT32 i = 0; i < 8; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- DrvInputs[2] ^= (DrvJoy3[i] & 1) << i;
- }
-
- // Clear opposites
- if ((DrvInputs[0] & 0x03) == 0) DrvInputs[0] |= 0x03;
- if ((DrvInputs[0] & 0x0c) == 0) DrvInputs[0] |= 0x0c;
- if ((DrvInputs[1] & 0x03) == 0) DrvInputs[1] |= 0x03;
- if ((DrvInputs[1] & 0x0c) == 0) DrvInputs[1] |= 0x0c;
- }
-
- ZetNewFrame();
-
- INT32 nCyclesTotal[1] = { 6000000 / 60 };
- INT32 nCyclesDone[1] = { 0 };
-
- ZetOpen(0);
- for (INT32 i = 0; i < nInterleave; i++) {
- INT32 nNext, nCyclesSegment;
-
- nNext = (i + 1) * nCyclesTotal[0] / nInterleave;
- nCyclesSegment = nNext - nCyclesDone[0];
- nCyclesSegment = ZetRun(nCyclesSegment);
- if (i == (nInterleave / 3)) ZetNmi();
- if (i == ((nInterleave / 3) * 2)) ZetNmi();
- if (i == nInterleave - 1) ZetSetIRQLine(0, CPU_IRQSTATUS_AUTO);
- nCyclesDone[0] += nCyclesSegment;
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen / nInterleave;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- memset (pSoundBuf, 0, nSegmentLength * 2 * 2);
- MSM6295Render(0, pSoundBuf, nSegmentLength);
- MSM6295Render(1, pSoundBuf, nSegmentLength);
- if (is_bootleg == 0) {
- K051649Update(pSoundBuf, nSegmentLength);
- }
- nSoundBufferPos += nSegmentLength;
- }
- }
- ZetClose();
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- if (nSegmentLength) {
- memset (pSoundBuf, 0, nSegmentLength * 2 * 2);
- MSM6295Render(0, pSoundBuf, nSegmentLength);
- MSM6295Render(1, pSoundBuf, nSegmentLength);
- if (is_bootleg == 0) {
- K051649Update(pSoundBuf, nSegmentLength);
- }
- }
- }
-
- if (pBurnDraw) {
- DrvDraw();
- }
-
- return 0;
-}
-
-static INT32 DrvScan(INT32 nAction, INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin != NULL) {
- *pnMin = 0x029705;
- }
-
- if (nAction & ACB_MEMORY_RAM) {
- memset(&ba, 0, sizeof(ba));
- ba.Data = AllRam;
- ba.nLen = RamEnd-AllRam;
- ba.szName = "All Ram";
- BurnAcb(&ba);
- }
-
- if (nAction & ACB_DRIVER_DATA) {
- ZetScan(nAction);
-
- MSM6295Scan(0, nAction);
- MSM6295Scan(1, nAction);
- K051649Scan(nAction, pnMin);
-
- SCAN_VAR(cpubank);
- SCAN_VAR(bankctrl);
- SCAN_VAR(rambank);
- SCAN_VAR(pmcbank);
- SCAN_VAR(gfxrom_select);
- }
-
- if (nAction & ACB_WRITE) {
- ZetOpen(0);
- bankswitch(cpubank);
- ZetClose();
- }
-
- return 0;
-}
-
-
-// Hexion (Japan ver. JAB)
-
-static struct BurnRomInfo hexionRomDesc[] = {
- { "122__j_a__b01.16f", 0x20000, 0xeabc6dd1, 1 | BRF_PRG | BRF_ESS }, // 0 Z80 Code
-
- { "122a07.1h", 0x40000, 0x22ae55e3, 2 | BRF_GRA }, // 1 Tiles
- { "122a06.1g", 0x40000, 0x438f4388, 2 | BRF_GRA }, // 2
-
- { "122a05.2f", 0x40000, 0xbcc831bf, 3 | BRF_SND }, // 3 M6296 #0 Samples
-
- { "122a04.10b", 0x00100, 0x506eb8c6, 4 | BRF_GRA }, // 4 Color PROMs
- { "122a03.11b", 0x00100, 0x590c4f64, 4 | BRF_GRA }, // 5
- { "122a02.13b", 0x00100, 0x5734305c, 4 | BRF_GRA }, // 6
-};
-
-STD_ROM_PICK(hexion)
-STD_ROM_FN(hexion)
-
-struct BurnDriver BurnDrvHexion = {
- "hexion", NULL, NULL, NULL, "1992",
- "Hexion (Japan ver. JAB)\0", NULL, "Konami", "GX122",
- L"Hexion (Japan ver. JAB)\0\u30D8\u30AF\u30B7\u30AA\u30F3 (Japan ver. JAB)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_PREFIX_KONAMI, GBF_PUZZLE, 0,
- NULL, hexionRomInfo, hexionRomName, NULL, NULL, HexionInputInfo, HexionDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x100,
- 512, 256, 4, 3
-};
-
-
-// Hexion (Bootleg, Asia ver. AAA)
-
-static struct BurnRomInfo hexionbRomDesc[] = {
- { "hexionb.u2", 0x20000, 0x93edc5d4, 1 | BRF_PRG | BRF_ESS }, // 0 Z80 Code
-
- { "hexionb.u30", 0x40000, 0x22ae55e3, 2 | BRF_GRA }, // 1 Tiles
- { "hexionb.u29", 0x40000, 0x438f4388, 2 | BRF_GRA }, // 2
-
- { "hexionb.u16", 0x40000, 0xbcc831bf, 3 | BRF_SND }, // 3 M6295 #0 Samples
-
- { "82s129.u36", 0x00100, 0x506eb8c6, 4 | BRF_GRA }, // 4 Color PROMs
- { "82s129.u37", 0x00100, 0x590c4f64, 4 | BRF_GRA }, // 5
- { "82s129.u38", 0x00100, 0x5734305c, 4 | BRF_GRA }, // 6
-
- { "hexionb.u18", 0x40000, 0xC179D315, 5 | BRF_SND }, // 7 M6295 #1 Samples
-};
-
-STD_ROM_PICK(hexionb)
-STD_ROM_FN(hexionb)
-
-struct BurnDriver BurnDrvHexionb = {
- "hexionb", "hexion", NULL, NULL, "1992",
- "Hexion (Bootleg, Asia ver. AAA)\0", NULL, "Bootleg", "GX122",
- L"Hexion (Bootleg, Asia ver. AAA)\0\u30D8\u30AF\u30B7\u30AA\u30F3 (Bootleg, Asia ver. AAA)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_PREFIX_KONAMI, GBF_PUZZLE, 0,
- NULL, hexionbRomInfo, hexionbRomName, NULL, NULL, HexionInputInfo, HexionDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x100,
- 512, 256, 4, 3
-};
diff --git a/jan/src/burn/drv/konami/d_hyperspt.cpp b/jan/src/burn/drv/konami/d_hyperspt.cpp
deleted file mode 100644
index dbb635d7d..000000000
--- a/jan/src/burn/drv/konami/d_hyperspt.cpp
+++ /dev/null
@@ -1,1139 +0,0 @@
-// FB Alpha Hyper Sports driver module
-// Based on MAME driver by Chris Hardy
-
-#include "tiles_generic.h"
-#include "m6809_intf.h"
-#include "z80_intf.h"
-#include "vlm5030.h"
-#include "sn76496.h"
-#include "dac.h"
-
-static UINT8 *AllMem;
-static UINT8 *MemEnd;
-static UINT8 *AllRam;
-static UINT8 *RamEnd;
-static UINT8 *DrvM6809ROM;
-static UINT8 *DrvM6809DecROM;
-static UINT8 *DrvZ80ROM;
-static UINT8 *DrvGfxROM0;
-static UINT8 *DrvGfxROM1;
-static UINT8 *DrvSndROM;
-static UINT8 *DrvColPROM;
-static UINT8 *DrvNVRAM;
-static UINT8 *DrvM6809RAM;
-static UINT8 *DrvSprRAM;
-static UINT8 *DrvVidRAM;
-static UINT8 *DrvColRAM;
-static UINT8 *DrvZ80RAM;
-static UINT8 *DrvTransTable;
-
-static UINT32 *DrvPalette;
-static UINT8 DrvRecalc;
-
-static UINT8 previous_sound_irq;
-static UINT8 flipscreen;
-static UINT8 irq_enable;
-static UINT8 soundlatch;
-static UINT16 last_sound_addr;
-static UINT8 sn76496_latch;
-static INT32 watchdog;
-static INT32 game_select = 0;
-
-static UINT8 DrvJoy1[8];
-static UINT8 DrvJoy2[9];
-static UINT8 DrvJoy3[8];
-static UINT8 DrvDips[2];
-static UINT8 DrvInputs[3];
-static UINT8 DrvReset;
-
-static struct BurnInputInfo HypersptInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy1 + 0, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 3, "p1 start" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy2 + 2, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy2 + 1, "p1 fire 2" },
- {"P1 Button 3", BIT_DIGITAL, DrvJoy2 + 0, "p1 fire 3" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy1 + 1, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy1 + 4, "p2 start" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy2 + 6, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy2 + 5, "p2 fire 2" },
- {"P2 Button 3", BIT_DIGITAL, DrvJoy2 + 4, "p2 fire 3" },
-
- {"P3 Coin", BIT_DIGITAL, DrvJoy1 + 2, "p3 coin" },
- {"P3 Start", BIT_DIGITAL, DrvJoy2 + 3, "p3 start" },
- {"P3 Button 1", BIT_DIGITAL, DrvJoy3 + 2, "p3 fire 1" },
- {"P3 Button 2", BIT_DIGITAL, DrvJoy3 + 1, "p3 fire 2" },
- {"P3 Button 3", BIT_DIGITAL, DrvJoy3 + 0, "p3 fire 3" },
-
- {"P4 Coin", BIT_DIGITAL, DrvJoy1 + 5, "p4 coin" },
- {"P4 Start", BIT_DIGITAL, DrvJoy3 + 3, "p4 start" },
- {"P4 Button 1", BIT_DIGITAL, DrvJoy3 + 6, "p4 fire 1" },
- {"P4 Button 2", BIT_DIGITAL, DrvJoy3 + 5, "p4 fire 2" },
- {"P4 Button 3", BIT_DIGITAL, DrvJoy3 + 4, "p4 fire 3" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip" },
-};
-
-STDINPUTINFO(Hyperspt)
-
-static struct BurnInputInfo RoadfInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy1 + 0, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 3, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy2 + 2, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy2 + 3, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy2 + 0, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy2 + 1, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy2 + 4, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy2 + 5, "p1 fire 2" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy1 + 1, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy1 + 4, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvJoy3 + 2, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy3 + 3, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy3 + 0, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy3 + 1, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy3 + 4, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy3 + 5, "p2 fire 2" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service", BIT_DIGITAL, DrvJoy1 + 2, "service" },
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip" },
-};
-
-STDINPUTINFO(Roadf)
-
-static struct BurnDIPInfo HypersptDIPList[]=
-{
- {0x15, 0xff, 0xff, 0xff, NULL },
- {0x16, 0xff, 0xff, 0x49, NULL },
-
- {0 , 0xfe, 0 , 16, "Coin A" },
- {0x15, 0x01, 0x0f, 0x02, "4 Coins 1 Credits" },
- {0x15, 0x01, 0x0f, 0x05, "3 Coins 1 Credits" },
- {0x15, 0x01, 0x0f, 0x08, "2 Coins 1 Credits" },
- {0x15, 0x01, 0x0f, 0x04, "3 Coins 2 Credits" },
- {0x15, 0x01, 0x0f, 0x01, "4 Coins 3 Credits" },
- {0x15, 0x01, 0x0f, 0x0f, "1 Coin 1 Credits" },
- {0x15, 0x01, 0x0f, 0x03, "3 Coins 4 Credits" },
- {0x15, 0x01, 0x0f, 0x07, "2 Coins 3 Credits" },
- {0x15, 0x01, 0x0f, 0x0e, "1 Coin 2 Credits" },
- {0x15, 0x01, 0x0f, 0x06, "2 Coins 5 Credits" },
- {0x15, 0x01, 0x0f, 0x0d, "1 Coin 3 Credits" },
- {0x15, 0x01, 0x0f, 0x0c, "1 Coin 4 Credits" },
- {0x15, 0x01, 0x0f, 0x0b, "1 Coin 5 Credits" },
- {0x15, 0x01, 0x0f, 0x0a, "1 Coin 6 Credits" },
- {0x15, 0x01, 0x0f, 0x09, "1 Coin 7 Credits" },
- {0x15, 0x01, 0x0f, 0x00, "Free Play" },
-
- {0 , 0xfe, 0 , 16, "Coin B" },
- {0x15, 0x01, 0xf0, 0x20, "4 Coins 1 Credits" },
- {0x15, 0x01, 0xf0, 0x50, "3 Coins 1 Credits" },
- {0x15, 0x01, 0xf0, 0x80, "2 Coins 1 Credits" },
- {0x15, 0x01, 0xf0, 0x40, "3 Coins 2 Credits" },
- {0x15, 0x01, 0xf0, 0x10, "4 Coins 3 Credits" },
- {0x15, 0x01, 0xf0, 0xf0, "1 Coin 1 Credits" },
- {0x15, 0x01, 0xf0, 0x30, "3 Coins 4 Credits" },
- {0x15, 0x01, 0xf0, 0x70, "2 Coins 3 Credits" },
- {0x15, 0x01, 0xf0, 0xe0, "1 Coin 2 Credits" },
- {0x15, 0x01, 0xf0, 0x60, "2 Coins 5 Credits" },
- {0x15, 0x01, 0xf0, 0xd0, "1 Coin 3 Credits" },
- {0x15, 0x01, 0xf0, 0xc0, "1 Coin 4 Credits" },
- {0x15, 0x01, 0xf0, 0xb0, "1 Coin 5 Credits" },
- {0x15, 0x01, 0xf0, 0xa0, "1 Coin 6 Credits" },
- {0x15, 0x01, 0xf0, 0x90, "1 Coin 7 Credits" },
- {0x15, 0x01, 0xf0, 0x00, "No Coin B" },
-
- {0 , 0xfe, 0 , 2, "After Last Event" },
- {0x16, 0x01, 0x01, 0x01, "Game Over" },
- {0x16, 0x01, 0x01, 0x00, "Game Continues" },
-
- {0 , 0xfe, 0 , 2, "Cabinet" },
- {0x16, 0x01, 0x02, 0x00, "Upright" },
- {0x16, 0x01, 0x02, 0x02, "Cocktail" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x16, 0x01, 0x04, 0x04, "Off" },
- {0x16, 0x01, 0x04, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "World Records" },
- {0x16, 0x01, 0x08, 0x08, "Don't Erase" },
- {0x16, 0x01, 0x08, 0x00, "Erase on Reset" },
-
- {0 , 0xfe, 0 , 16, "Difficulty" },
- {0x16, 0x01, 0xf0, 0xf0, "Easy 1" },
- {0x16, 0x01, 0xf0, 0xe0, "Easy 2" },
- {0x16, 0x01, 0xf0, 0xd0, "Easy 3" },
- {0x16, 0x01, 0xf0, 0xc0, "Easy 4" },
- {0x16, 0x01, 0xf0, 0xb0, "Normal 1" },
- {0x16, 0x01, 0xf0, 0xa0, "Normal 2" },
- {0x16, 0x01, 0xf0, 0x90, "Normal 3" },
- {0x16, 0x01, 0xf0, 0x80, "Normal 4" },
- {0x16, 0x01, 0xf0, 0x70, "Normal 5" },
- {0x16, 0x01, 0xf0, 0x60, "Normal 6" },
- {0x16, 0x01, 0xf0, 0x50, "Normal 7" },
- {0x16, 0x01, 0xf0, 0x40, "Normal 8" },
- {0x16, 0x01, 0xf0, 0x30, "Difficult 1" },
- {0x16, 0x01, 0xf0, 0x20, "Difficult 2" },
- {0x16, 0x01, 0xf0, 0x10, "Difficult 3" },
- {0x16, 0x01, 0xf0, 0x00, "Difficult 4" },
-};
-
-STDDIPINFO(Hyperspt)
-
-static struct BurnDIPInfo RoadfDIPList[]=
-{
- {0x12, 0xff, 0xff, 0xff, NULL },
- {0x13, 0xff, 0xff, 0x2d, NULL },
-
- {0 , 0xfe, 0 , 16, "Coin A" },
- {0x12, 0x01, 0x0f, 0x02, "4 Coins 1 Credits" },
- {0x12, 0x01, 0x0f, 0x05, "3 Coins 1 Credits" },
- {0x12, 0x01, 0x0f, 0x08, "2 Coins 1 Credits" },
- {0x12, 0x01, 0x0f, 0x04, "3 Coins 2 Credits" },
- {0x12, 0x01, 0x0f, 0x01, "4 Coins 3 Credits" },
- {0x12, 0x01, 0x0f, 0x0f, "1 Coin 1 Credits" },
- {0x12, 0x01, 0x0f, 0x03, "3 Coins 4 Credits" },
- {0x12, 0x01, 0x0f, 0x07, "2 Coins 3 Credits" },
- {0x12, 0x01, 0x0f, 0x0e, "1 Coin 2 Credits" },
- {0x12, 0x01, 0x0f, 0x06, "2 Coins 5 Credits" },
- {0x12, 0x01, 0x0f, 0x0d, "1 Coin 3 Credits" },
- {0x12, 0x01, 0x0f, 0x0c, "1 Coin 4 Credits" },
- {0x12, 0x01, 0x0f, 0x0b, "1 Coin 5 Credits" },
- {0x12, 0x01, 0x0f, 0x0a, "1 Coin 6 Credits" },
- {0x12, 0x01, 0x0f, 0x09, "1 Coin 7 Credits" },
- {0x12, 0x01, 0x0f, 0x00, "Free Play" },
-
- {0 , 0xfe, 0 , 16, "Coin B" },
- {0x12, 0x01, 0xf0, 0x20, "4 Coins 1 Credits" },
- {0x12, 0x01, 0xf0, 0x50, "3 Coins 1 Credits" },
- {0x12, 0x01, 0xf0, 0x80, "2 Coins 1 Credits" },
- {0x12, 0x01, 0xf0, 0x40, "3 Coins 2 Credits" },
- {0x12, 0x01, 0xf0, 0x10, "4 Coins 3 Credits" },
- {0x12, 0x01, 0xf0, 0xf0, "1 Coin 1 Credits" },
- {0x12, 0x01, 0xf0, 0x30, "3 Coins 4 Credits" },
- {0x12, 0x01, 0xf0, 0x70, "2 Coins 3 Credits" },
- {0x12, 0x01, 0xf0, 0xe0, "1 Coin 2 Credits" },
- {0x12, 0x01, 0xf0, 0x60, "2 Coins 5 Credits" },
- {0x12, 0x01, 0xf0, 0xd0, "1 Coin 3 Credits" },
- {0x12, 0x01, 0xf0, 0xc0, "1 Coin 4 Credits" },
- {0x12, 0x01, 0xf0, 0xb0, "1 Coin 5 Credits" },
- {0x12, 0x01, 0xf0, 0xa0, "1 Coin 6 Credits" },
- {0x12, 0x01, 0xf0, 0x90, "1 Coin 7 Credits" },
- {0x12, 0x01, 0xf0, 0x00, "No Coin B" },
-
- {0 , 0xfe, 0 , 2, "Allow Continue" },
- {0x13, 0x01, 0x01, 0x01, "No" },
- {0x13, 0x01, 0x01, 0x00, "Yes" },
-
- {0 , 0xfe, 0 , 4, "Number of Opponents" },
- {0x13, 0x01, 0x06, 0x06, "Few" },
- {0x13, 0x01, 0x06, 0x04, "Normal" },
- {0x13, 0x01, 0x06, 0x02, "Many" },
- {0x13, 0x01, 0x06, 0x00, "Great Many" },
-
- {0 , 0xfe, 0 , 2, "Speed of Opponents" },
- {0x13, 0x01, 0x08, 0x08, "Fast" },
- {0x13, 0x01, 0x08, 0x00, "Slow" },
-
- {0 , 0xfe, 0 , 4, "Fuel Consumption" },
- {0x13, 0x01, 0x30, 0x30, "Slow" },
- {0x13, 0x01, 0x30, 0x20, "Normal" },
- {0x13, 0x01, 0x30, 0x10, "Fast" },
- {0x13, 0x01, 0x30, 0x00, "Very Fast" },
-
- {0 , 0xfe, 0 , 2, "Cabinet" },
- {0x13, 0x01, 0x40, 0x00, "Upright" },
- {0x13, 0x01, 0x40, 0x40, "Cocktail" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x13, 0x01, 0x80, 0x80, "Off" },
- {0x13, 0x01, 0x80, 0x00, "On" },
-};
-
-STDDIPINFO(Roadf)
-
-static void hyperspt_main_write(UINT16 address, UINT8 data)
-{
- switch (address)
- {
- case 0x1400:
- watchdog = 0;
- return;
-
- case 0x1480:
- flipscreen = data & 1;
- return;
-
- case 0x1481:
- if (previous_sound_irq == 0 && data != 0) {
- ZetSetVector(0xff);
- ZetSetIRQLine(0, CPU_IRQSTATUS_HOLD);
- }
- previous_sound_irq = data;
- return;
-
- case 0x1483:
- // coin counter
- return;
-
- case 0x1487:
- irq_enable = data & 1;
- return;
-
- case 0x1500:
- soundlatch = data;
- return;
- }
-}
-
-static UINT8 hyperspt_main_read(UINT16 address)
-{
- switch (address)
- {
- case 0x1600:
- return DrvDips[1];
-
- case 0x1680:
- return DrvInputs[0];
-
- case 0x1681:
- return DrvInputs[1];
-
- case 0x1682:
- return DrvInputs[2] ^ ((game_select > 1) ? 0x40 : 0); // roadf needs this
-
- case 0x1683:
- return DrvDips[0];
- }
-
- return 0;
-}
-
-static void __fastcall hyperspt_sound_write(UINT16 address, UINT8 data)
-{
- if ((address & 0xe000) == 0xc000) {
- INT32 offset = address & 0x1fff;
- INT32 changes = offset ^ last_sound_addr;
- if (changes & 0x10) vlm5030_st(0, offset & 0x10);
- if (changes & 0x20) vlm5030_rst(0, offset & 0x20);
- last_sound_addr = offset;
- return;
- }
-
- switch (address)
- {
- case 0xa000:
- vlm5030_data_write(0, data);
- return;
-
- case 0xe000:
- DACWrite(0, data);
- return;
-
- case 0xe001:
- sn76496_latch = data;
- return;
-
- case 0xe002:
- SN76496Write(0, sn76496_latch);
- return;
- }
-}
-
-static UINT8 __fastcall hyperspt_sound_read(UINT16 address)
-{
- switch (address)
- {
- case 0x6000:
- return soundlatch;
-
- case 0x8000:
- return ((ZetTotalCycles() / 1024) & 0x3) | (vlm5030_bsy(0) ? 4 : 0);
- }
-
- return 0;
-}
-
-static tilemap_callback( hyperspt )
-{
- UINT8 attr = DrvColRAM[offs];
- INT32 code = DrvVidRAM[offs] + (((attr & 0x80) << 1) | ((attr & 0x40) << 3));
-
- TILE_SET_INFO(0, code, attr, TILE_FLIPXY(attr >> 4));
-}
-
-static tilemap_callback( roadf )
-{
- UINT8 attr = DrvColRAM[offs];
- INT32 code = DrvVidRAM[offs] + (((attr & 0x80) << 1) | ((attr & 0x60) << 4));
-
- TILE_SET_INFO(0, code, attr, (attr & 0x10) ? TILE_FLIPX : 0);
-}
-
-static INT32 DrvDACSync()
-{
- return (INT32)(float)(nBurnSoundLen * (ZetTotalCycles() / (3579545.000 / (nBurnFPS / 100.000))));
-}
-
-static UINT32 DrvVLMSync(INT32 samples_rate)
-{
- return (samples_rate * ZetTotalCycles()) / 59659;
-}
-
-static INT32 DrvDoReset(INT32 clear_mem)
-{
- if (clear_mem) {
- memset (AllRam, 0, RamEnd - AllRam);
-
- previous_sound_irq = 0;
- flipscreen = 0;
- irq_enable = 0;
- soundlatch = 0;
- last_sound_addr = 0;
- sn76496_latch = 0;
- }
-
- M6809Open(0);
- M6809Reset();
- M6809Close();
-
- ZetOpen(0);
- vlm5030Reset(0);
- DACReset();
- ZetReset();
- ZetClose();
- watchdog = 0;
-
- return 0;
-}
-
-static INT32 MemIndex()
-{
- UINT8 *Next; Next = AllMem;
-
- DrvM6809ROM = Next; Next += 0x010000;
- DrvM6809DecROM = Next; Next += 0x010000;
- DrvZ80ROM = Next; Next += 0x004000;
-
- DrvGfxROM0 = Next; Next += 0x020000;
- DrvGfxROM1 = Next; Next += 0x020000;
-
- DrvSndROM = Next; Next += 0x010000;
-
- DrvColPROM = Next; Next += 0x000220;
-
- DrvNVRAM = Next; Next += 0x000800;
-
- DrvTransTable = Next; Next += 0x000200;
-
- DrvPalette = (UINT32*)Next; Next += 0x200 * sizeof(UINT32);
-
- AllRam = Next;
-
- DrvM6809RAM = Next; Next += 0x000800;
- DrvSprRAM = Next; Next += 0x000100;
-
- DrvVidRAM = Next; Next += 0x000800;
- DrvColRAM = Next; Next += 0x000800;
-
- DrvZ80RAM = Next; Next += 0x001000;
-
- RamEnd = Next;
- MemEnd = Next;
-
- return 0;
-}
-
-static void DrvGfxDecode()
-{
- INT32 Plane[4] = { 0x8000*8+4, 0x8000*8+0, 4, 0 };
- INT32 XOffs[16] = { STEP4(0,1), STEP4(64,1), STEP4(128,1), STEP4(192,1) };
- INT32 YOffs[16] = { STEP8(0,8), STEP8(256,8) };
-
- UINT8 *tmp = (UINT8*)BurnMalloc(0x10000);
-
- memcpy (tmp, DrvGfxROM1, 0x10000);
-
- GfxDecode(0x800, 4, 8, 8, Plane, XOffs, YOffs, 0x080, tmp, DrvGfxROM1);
-
- memcpy (tmp, DrvGfxROM0, 0x10000);
-
- GfxDecode(0x200, 4, 16, 16, Plane, XOffs, YOffs, 0x200, tmp, DrvGfxROM0);
-
- BurnFree(tmp);
-}
-
-static void Konami1Decode()
-{
- for (INT32 i = 0; i < 0x10000; i++)
- {
- UINT8 xor1 = 0;
-
- if ( i & 0x02) xor1 |= 0x80;
- else xor1 |= 0x20;
- if ( i & 0x08) xor1 |= 0x08;
- else xor1 |= 0x02;
-
- DrvM6809DecROM[i] = DrvM6809ROM[i] ^ xor1;
- }
-}
-
-static INT32 DrvInit(INT32 select)
-{
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- game_select = select;
-
- if (select == 0) // hyperspt, hpolym84,
- {
- if (BurnLoadRom(DrvM6809ROM + 0x04000, 0, 1)) return 1;
- if (BurnLoadRom(DrvM6809ROM + 0x06000, 1, 1)) return 1;
- if (BurnLoadRom(DrvM6809ROM + 0x08000, 2, 1)) return 1;
- if (BurnLoadRom(DrvM6809ROM + 0x0a000, 3, 1)) return 1;
- if (BurnLoadRom(DrvM6809ROM + 0x0c000, 4, 1)) return 1;
- if (BurnLoadRom(DrvM6809ROM + 0x0e000, 5, 1)) return 1;
-
- if (BurnLoadRom(DrvZ80ROM + 0x00000, 6, 1)) return 1;
- if (BurnLoadRom(DrvZ80ROM + 0x02000, 7, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x00000, 8, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x02000, 9, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x04000, 10, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x06000, 11, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x08000, 12, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x0a000, 13, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x0c000, 14, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x0e000, 15, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM1 + 0x00000, 16, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x02000, 17, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x08000, 18, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x0a000, 19, 1)) return 1;
-
- if (BurnLoadRom(DrvColPROM + 0x00000, 20, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x00020, 21, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x00120, 22, 1)) return 1;
-
- if (BurnLoadRom(DrvSndROM + 0x00000, 23, 1)) return 1;
- }
- else if (select == 1) // hypersptb
- {
- if (BurnLoadRom(DrvM6809ROM + 0x06000, 1, 1)) return 1;
- if (BurnLoadRom(DrvM6809ROM + 0x08000, 2, 1)) return 1;
- if (BurnLoadRom(DrvM6809ROM + 0x0a000, 3, 1)) return 1;
- if (BurnLoadRom(DrvM6809ROM + 0x0c000, 4, 1)) return 1;
- if (BurnLoadRom(DrvM6809ROM + 0x0e000, 5, 1)) return 1;
-
- if (BurnLoadRom(DrvZ80ROM + 0x00000, 6, 1)) return 1;
- if (BurnLoadRom(DrvZ80ROM + 0x02000, 7, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x0c000, 8, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x00000, 9, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x02000, 10, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x04000, 11, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x06000, 12, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x08000, 13, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x0a000, 14, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x0c000, 15, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM1 + 0x00000, 16, 1)) return 1;
- memcpy (DrvGfxROM1, DrvGfxROM1 + 0x4000, 0x4000);
- memset (DrvGfxROM1 + 0x4000, 0, 0x4000);
- if (BurnLoadRom(DrvGfxROM1 + 0x02000, 17, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x08000, 18, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x0a000, 19, 1)) return 1;
-
- if (BurnLoadRom(DrvColPROM + 0x00000, 20, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x00020, 21, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x00120, 22, 1)) return 1;
-
- if (BurnLoadRom(DrvSndROM + 0x08000, 23, 1)) return 1;
- if (BurnLoadRom(DrvSndROM + 0x0a000, 24, 1)) return 1;
- if (BurnLoadRom(DrvSndROM + 0x0c000, 25, 1)) return 1;
- if (BurnLoadRom(DrvSndROM + 0x0e000, 26, 1)) return 1;
- }
- else if (select == 2) // roadf, roadf2
- {
- if (BurnLoadRom(DrvM6809ROM + 0x04000, 0, 1)) return 1;
- if (BurnLoadRom(DrvM6809ROM + 0x06000, 1, 1)) return 1;
- if (BurnLoadRom(DrvM6809ROM + 0x08000, 2, 1)) return 1;
- if (BurnLoadRom(DrvM6809ROM + 0x0a000, 3, 1)) return 1;
- if (BurnLoadRom(DrvM6809ROM + 0x0c000, 4, 1)) return 1;
- if (BurnLoadRom(DrvM6809ROM + 0x0e000, 5, 1)) return 1;
-
- if (BurnLoadRom(DrvZ80ROM + 0x00000, 6, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x00000, 7, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x08000, 8, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM1 + 0x00000, 9, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x04000, 10, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x08000, 11, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x0c000, 12, 1)) return 1;
-
- if (BurnLoadRom(DrvColPROM + 0x00000, 13, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x00020, 14, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x00120, 15, 1)) return 1;
- }
- else if (select == 3) // roadf3
- {
- if (BurnLoadRom(DrvM6809ROM + 0x04000, 0, 1)) return 1;
- if (BurnLoadRom(DrvM6809ROM + 0x08000, 1, 1)) return 1;
- if (BurnLoadRom(DrvM6809ROM + 0x0c000, 2, 1)) return 1;
-
- if (BurnLoadRom(DrvZ80ROM + 0x00000, 3, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x00000, 4, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x02000, 5, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x08000, 6, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x0A000, 7, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM1 + 0x00000, 8, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x02000, 9, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x04000, 10, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x08000, 11, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x0a000, 12, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x0c000, 13, 1)) return 1;
-
- if (BurnLoadRom(DrvColPROM + 0x00000, 14, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x00020, 15, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x00120, 16, 1)) return 1;
- }
-
- Konami1Decode();
- DrvGfxDecode();
-
- M6809Init(1);
- M6809Open(0);
- M6809MapMemory(DrvSprRAM, 0x1000, 0x10ff, MAP_RAM);
- M6809MapMemory(DrvVidRAM, 0x2000, 0x27ff, MAP_RAM);
- M6809MapMemory(DrvColRAM, 0x2800, 0x2fff, MAP_RAM);
- M6809MapMemory(DrvM6809RAM, 0x3000, 0x37ff, MAP_RAM);
- M6809MapMemory(DrvNVRAM, 0x3800, 0x3fff, MAP_RAM);
- M6809MapMemory(DrvM6809ROM + 0x4000, 0x4000, 0xffff, MAP_READ);
- M6809MapMemory(DrvM6809DecROM + 0x4000, 0x4000, 0xffff, MAP_FETCH);
- M6809SetWriteHandler(hyperspt_main_write);
- M6809SetReadHandler(hyperspt_main_read);
- M6809Close();
-
- ZetInit(0);
- ZetOpen(0);
- ZetMapMemory(DrvZ80ROM, 0x0000, 0x3fff, MAP_ROM);
- ZetMapMemory(DrvZ80RAM, 0x4000, 0x4fff, MAP_RAM);
- ZetSetWriteHandler(hyperspt_sound_write);
- ZetSetReadHandler(hyperspt_sound_read);
- ZetClose();
-
- SN76489AInit(0, 1789772, 0);
- SN76496SetRoute(0, 1.00, BURN_SND_ROUTE_BOTH);
-
- vlm5030Init(0, 3579545, DrvVLMSync, DrvSndROM, 0x2000, 1);
- vlm5030SetAllRoutes(0, (select != 0) ? 0 : 1.00, BURN_SND_ROUTE_BOTH);
-
- DACInit(0, 0, 1, DrvDACSync);
- DACSetRoute(0, 0.40, BURN_SND_ROUTE_BOTH);
-
- GenericTilesInit();
- GenericTilemapInit(0, TILEMAP_SCAN_ROWS, (select > 1) ? roadf_map_callback : hyperspt_map_callback, 8, 8, 64, 32);
- GenericTilemapSetGfx(0, DrvGfxROM1, 4, 8, 8, 0x20000, 0x100, 0xf);
- GenericTilemapSetScrollRows(0, 32);
- GenericTilemapSetOffsets(0, 0, -16);
-
- DrvDoReset(1);
-
- return 0;
-}
-
-static INT32 DrvExit()
-{
- GenericTilesExit();
-
- M6809Exit();
- ZetExit();
- vlm5030Exit();
- SN76496Exit();
- DACExit();
-
- BurnFree (AllMem);
-
- return 0;
-}
-
-static void DrvPaletteInit()
-{
- UINT32 pal[0x20];
-
- for (INT32 i = 0; i < 0x20; i++)
- {
- INT32 bit0 = (DrvColPROM[i] >> 0) & 0x01;
- INT32 bit1 = (DrvColPROM[i] >> 1) & 0x01;
- INT32 bit2 = (DrvColPROM[i] >> 2) & 0x01;
- INT32 r = bit0 * 33 + bit1 * 71 + bit2 * 151;
-
- bit0 = (DrvColPROM[i] >> 3) & 0x01;
- bit1 = (DrvColPROM[i] >> 4) & 0x01;
- bit2 = (DrvColPROM[i] >> 5) & 0x01;
- INT32 g = bit0 * 33 + bit1 * 71 + bit2 * 151;
-
- bit0 = (DrvColPROM[i] >> 6) & 0x01;
- bit1 = (DrvColPROM[i] >> 7) & 0x01;
- INT32 b = bit0 * 81 + bit1 * 174;
-
- pal[i] = BurnHighCol(r,g,b,0);
- }
-
- for (INT32 i = 0; i < 0x200; i++) {
- DrvPalette[i] = pal[(DrvColPROM[0x020 + i] & 0xf) + ((i&0x100)>>4)];
-
- DrvTransTable[i] = (DrvColPROM[0x20 + i] == 0) ? 0 : 1;
- }
-}
-
-static void draw_sprites()
-{
- for (INT32 offs = 0xc0 - 4;offs >= 0;offs -= 4)
- {
- INT32 sx = DrvSprRAM[offs + 3];
- INT32 sy = 240 - DrvSprRAM[offs + 1];
- INT32 code = DrvSprRAM[offs + 2] + 8 * (DrvSprRAM[offs] & 0x20);
- INT32 color = DrvSprRAM[offs] & 0x0f;
- INT32 flipx = ~DrvSprRAM[offs] & 0x40;
- INT32 flipy = DrvSprRAM[offs] & 0x80;
-
- if (flipscreen)
- {
- sy = 240 - sy;
- flipy = !flipy;
- }
-
- sy += 1 - 16;
-
- RenderTileTranstab(pTransDraw, DrvGfxROM0, code, color*16, 0, sx, sy, flipx, flipy, 16, 16, DrvTransTable);
- RenderTileTranstab(pTransDraw, DrvGfxROM0, code, color*16, 0, sx - 256, sy, flipx, flipy, 16, 16, DrvTransTable);
- }
-}
-
-static INT32 DrvDraw()
-{
- if (DrvRecalc) {
- DrvPaletteInit();
- DrvRecalc = 0;
- }
-
- UINT8 *scroll = DrvSprRAM + 0xc0;
-
- GenericTilemapSetFlip(0, (flipscreen) ? TMAP_FLIPXY : 0);
-
- for (INT32 row = 0; row < 32; row++)
- {
- INT32 scrollx = scroll[row * 2] + (scroll[(row * 2) + 1] & 0x01) * 256;
- if (flipscreen) scrollx = -scrollx;
- GenericTilemapSetScrollRow(0, row, scrollx);
- }
-
- if (~nBurnLayer & 1) BurnTransferClear();
- if ( nBurnLayer & 1) GenericTilemapDraw(0, pTransDraw, 0);
- if ( nBurnLayer & 2) draw_sprites();
-
- BurnTransferCopy(DrvPalette);
-
- return 0;
-}
-
-static INT32 DrvFrame()
-{
- watchdog++;
- if (watchdog >= 180) {
- DrvDoReset(0);
- }
-
- if (DrvReset) {
- DrvDoReset(1);
- }
-
- {
- memset (DrvInputs, 0xff, 3);
- for (INT32 i = 0; i < 8; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- DrvInputs[2] ^= (DrvJoy3[i] & 1) << i;
- }
- }
-
- ZetNewFrame();
-
- INT32 nInterleave = 256;
- INT32 nCyclesTotal[2] = { 1536000 / 60, 3579545 / 60 };
- INT32 nCyclesDone[2] = { 0, 0 };
- INT32 nSoundBufferPos = 0, nSegment = 0;
-
- ZetOpen(0);
- M6809Open(0);
-
- for (INT32 i = 0; i < nInterleave; i++)
- {
- nCyclesDone[0] += M6809Run(nCyclesTotal[0] / nInterleave);
-
- if (i == 255 && irq_enable) M6809SetIRQLine(0, CPU_IRQSTATUS_AUTO);
-
- nSegment = (i + 1) * nCyclesTotal[1] / nInterleave;
- nCyclesDone[1] += ZetRun(nSegment - nCyclesDone[1]);
-
- // Render Sound Segment
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen / nInterleave;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- SN76496Update(0, pSoundBuf, nSegmentLength);
- nSoundBufferPos += nSegmentLength;
- }
- }
-
- // Make sure the buffer is entirely filled.
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- if (nSegmentLength) {
- SN76496Update(0, pSoundBuf, nSegmentLength);
- }
- // vlm5030 won't interlace, so just run it at the end of the frame..
- if (game_select == 0) vlm5030Update(0, pBurnSoundOut, nBurnSoundLen);
- DACUpdate(pBurnSoundOut, nBurnSoundLen);
- }
-
- M6809Close();
- ZetClose();
-
- if (pBurnDraw) {
- DrvDraw();
- }
-
- return 0;
-}
-
-static INT32 DrvScan(INT32 nAction, INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin != NULL) {
- *pnMin = 0x029698;
- }
-
- if (nAction & ACB_MEMORY_RAM) {
- memset(&ba, 0, sizeof(ba));
- ba.Data = AllRam;
- ba.nLen = RamEnd-AllRam;
- ba.szName = "All Ram";
- BurnAcb(&ba);
- }
-
- if (nAction & ACB_DRIVER_DATA) {
- M6809Scan(nAction);
- ZetScan(nAction);
-
- vlm5030Scan(nAction);
- SN76496Scan(nAction, pnMin);
- DACScan(nAction, pnMin);
-
- SCAN_VAR(sn76496_latch);
- SCAN_VAR(previous_sound_irq);
- SCAN_VAR(flipscreen);
- SCAN_VAR(irq_enable);
- SCAN_VAR(soundlatch);
- SCAN_VAR(last_sound_addr);
- }
-
- return 0;
-}
-
-
-// Hyper Sports
-
-static struct BurnRomInfo hypersptRomDesc[] = {
- { "c01", 0x2000, 0x0c720eeb, 1 | BRF_PRG | BRF_ESS }, // 0 M6809 Code
- { "c02", 0x2000, 0x560258e0, 1 | BRF_PRG | BRF_ESS }, // 1
- { "c03", 0x2000, 0x9b01c7e6, 1 | BRF_PRG | BRF_ESS }, // 2
- { "c04", 0x2000, 0x10d7e9a2, 1 | BRF_PRG | BRF_ESS }, // 3
- { "c05", 0x2000, 0xb105a8cd, 1 | BRF_PRG | BRF_ESS }, // 4
- { "c06", 0x2000, 0x1a34a849, 1 | BRF_PRG | BRF_ESS }, // 5
-
- { "c10", 0x2000, 0x3dc1a6ff, 2 | BRF_PRG | BRF_ESS }, // 6 Z80 Code
- { "c09", 0x2000, 0x9b525c3e, 2 | BRF_PRG | BRF_ESS }, // 7
-
- { "c14", 0x2000, 0xc72d63be, 3 | BRF_GRA }, // 8 Background Tiles
- { "c13", 0x2000, 0x76565608, 3 | BRF_GRA }, // 9
- { "c12", 0x2000, 0x74d2cc69, 3 | BRF_GRA }, // 10
- { "c11", 0x2000, 0x66cbcb4d, 3 | BRF_GRA }, // 11
- { "c18", 0x2000, 0xed25e669, 3 | BRF_GRA }, // 12
- { "c17", 0x2000, 0xb145b39f, 3 | BRF_GRA }, // 13
- { "c16", 0x2000, 0xd7ff9f2b, 3 | BRF_GRA }, // 14
- { "c15", 0x2000, 0xf3d454e6, 3 | BRF_GRA }, // 15
-
- { "c26", 0x2000, 0xa6897eac, 4 | BRF_GRA }, // 16 Sprites
- { "c24", 0x2000, 0x5fb230c0, 4 | BRF_GRA }, // 17
- { "c22", 0x2000, 0xed9271a0, 4 | BRF_GRA }, // 18
- { "c20", 0x2000, 0x183f4324, 4 | BRF_GRA }, // 19
-
- { "c03_c27.bin", 0x0020, 0xbc8a5956, 5 | BRF_GRA }, // 20 Color Proms
- { "j12_c28.bin", 0x0100, 0x2c891d59, 5 | BRF_GRA }, // 21
- { "a09_c29.bin", 0x0100, 0x811a3f3f, 5 | BRF_GRA }, // 22
-
- { "c08", 0x2000, 0xe8f8ea78, 6 | BRF_GRA }, // 23 VLM Samples
-};
-
-STD_ROM_PICK(hyperspt)
-STD_ROM_FN(hyperspt)
-
-static INT32 HypersptInit()
-{
- return DrvInit(0);
-}
-
-struct BurnDriver BurnDrvHyperspt = {
- "hyperspt", NULL, NULL, NULL, "1984",
- "Hyper Sports\0", NULL, "Konami (Centuri license)", "GX330",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_PREFIX_KONAMI, GBF_SPORTSMISC, 0,
- NULL, hypersptRomInfo, hypersptRomName, NULL, NULL, HypersptInputInfo, HypersptDIPInfo,
- HypersptInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x200,
- 256, 224, 4, 3
-};
-
-
-// Hyper Sports (bootleg)
-
-static struct BurnRomInfo hypersptbRomDesc[] = {
- { "1.5g", 0x2000, 0x0cfc68a7, 1 | BRF_PRG | BRF_ESS }, // 0 M6809 Code
- { "2.7g", 0x2000, 0x560258e0, 1 | BRF_PRG | BRF_ESS }, // 1
- { "3.8g", 0x2000, 0x9b01c7e6, 1 | BRF_PRG | BRF_ESS }, // 2
- { "4.11g", 0x2000, 0x4ed32240, 1 | BRF_PRG | BRF_ESS }, // 3
- { "5.13g", 0x2000, 0xb105a8cd, 1 | BRF_PRG | BRF_ESS }, // 4
- { "6.15g", 0x2000, 0x1a34a849, 1 | BRF_PRG | BRF_ESS }, // 5
-
- { "12.17a", 0x2000, 0x3dc1a6ff, 2 | BRF_PRG | BRF_ESS }, // 6 Z80 Code
- { "11.15a", 0x2000, 0x9b525c3e, 2 | BRF_PRG | BRF_ESS }, // 7
-
- { "20.15g", 0x8000, 0x551d222f, 3 | BRF_GRA }, // 8 Background Tiles
- { "16.19j", 0x2000, 0xc72d63be, 3 | BRF_GRA }, // 9
- { "15.18j", 0x2000, 0x76565608, 3 | BRF_GRA }, // 10
- { "14.17j", 0x2000, 0x74d2cc69, 3 | BRF_GRA }, // 11
- { "13.15j", 0x2000, 0x66cbcb4d, 3 | BRF_GRA }, // 12
- { "17.19g", 0x2000, 0xed25e669, 3 | BRF_GRA }, // 13
- { "18.18g", 0x2000, 0xb145b39f, 3 | BRF_GRA }, // 14
- { "19.17g", 0x2000, 0xd7ff9f2b, 3 | BRF_GRA }, // 15
-
- { "b.14a", 0x8000, 0x8fd90bd2, 4 | BRF_GRA }, // 16 Sprites
- { "a.12a", 0x2000, 0xa3d422c6, 4 | BRF_GRA }, // 17
- { "d.14c", 0x2000, 0xed9271a0, 4 | BRF_GRA }, // 18
- { "c.12c", 0x2000, 0x0c8ed053, 4 | BRF_GRA }, // 19
-
- { "mmi6331-1.3c", 0x0020, 0xbc8a5956, 5 | BRF_GRA }, // 20 Color Proms
- { "j12_c28.bin", 0x0100, 0x2c891d59, 5 | BRF_GRA }, // 21
- { "a09_c29.bin", 0x0100, 0x811a3f3f, 5 | BRF_GRA }, // 22
-
- { "10.20c", 0x2000, 0xa4cddeb8, 6 | BRF_SND }, // 23 M6502 Code / Adpcm
- { "9.20cd", 0x2000, 0xe9919365, 6 | BRF_SND }, // 24
- { "8.20d", 0x2000, 0x49a06454, 6 | BRF_SND }, // 25
- { "7.20b", 0x2000, 0x607a36df, 6 | BRF_SND }, // 26
-};
-
-STD_ROM_PICK(hypersptb)
-STD_ROM_FN(hypersptb)
-
-static INT32 HypersptbInit()
-{
- return DrvInit(1);
-}
-
-struct BurnDriver BurnDrvHypersptb = {
- "hypersptb", "hyperspt", NULL, NULL, "1984",
- "Hyper Sports (bootleg)\0", "imcomplete sound", "bootleg", "GX330",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_PREFIX_KONAMI, GBF_SPORTSMISC, 0,
- NULL, hypersptbRomInfo, hypersptbRomName, NULL, NULL, HypersptInputInfo, HypersptDIPInfo,
- HypersptbInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x200,
- 256, 224, 4, 3
-};
-
-
-// Hyper Olympic '84
-
-static struct BurnRomInfo hpolym84RomDesc[] = {
- { "c01", 0x2000, 0x0c720eeb, 1 | BRF_PRG | BRF_ESS }, // 0 M6809 Code
- { "c02", 0x2000, 0x560258e0, 1 | BRF_PRG | BRF_ESS }, // 1
- { "c03", 0x2000, 0x9b01c7e6, 1 | BRF_PRG | BRF_ESS }, // 2
- { "330e04.bin", 0x2000, 0x9c5e2934, 1 | BRF_PRG | BRF_ESS }, // 3
- { "c05", 0x2000, 0xb105a8cd, 1 | BRF_PRG | BRF_ESS }, // 4
- { "c06", 0x2000, 0x1a34a849, 1 | BRF_PRG | BRF_ESS }, // 5
-
- { "c10", 0x2000, 0x3dc1a6ff, 2 | BRF_PRG | BRF_ESS }, // 6 Z80 Code
- { "c09", 0x2000, 0x9b525c3e, 2 | BRF_PRG | BRF_ESS }, // 7
-
- { "c14", 0x2000, 0xc72d63be, 3 | BRF_GRA }, // 8 Background Tiles
- { "c13", 0x2000, 0x76565608, 3 | BRF_GRA }, // 9
- { "c12", 0x2000, 0x74d2cc69, 3 | BRF_GRA }, // 10
- { "c11", 0x2000, 0x66cbcb4d, 3 | BRF_GRA }, // 11
- { "c18", 0x2000, 0xed25e669, 3 | BRF_GRA }, // 12
- { "c17", 0x2000, 0xb145b39f, 3 | BRF_GRA }, // 13
- { "c16", 0x2000, 0xd7ff9f2b, 3 | BRF_GRA }, // 14
- { "c15", 0x2000, 0xf3d454e6, 3 | BRF_GRA }, // 15
-
- { "c26", 0x2000, 0xa6897eac, 4 | BRF_GRA }, // 16 Sprites
- { "330e24.bin", 0x2000, 0xf9bbfe1d, 4 | BRF_GRA }, // 17
- { "c22", 0x2000, 0xed9271a0, 4 | BRF_GRA }, // 18
- { "330e20.bin", 0x2000, 0x29969b92, 4 | BRF_GRA }, // 19
-
- { "c03_c27.bin", 0x0020, 0xbc8a5956, 5 | BRF_GRA }, // 20 Color Proms
- { "j12_c28.bin", 0x0100, 0x2c891d59, 5 | BRF_GRA }, // 21
- { "a09_c29.bin", 0x0100, 0x811a3f3f, 5 | BRF_GRA }, // 22
-
- { "c08", 0x2000, 0xe8f8ea78, 6 | BRF_GRA }, // 23 VLM Samples
-};
-
-STD_ROM_PICK(hpolym84)
-STD_ROM_FN(hpolym84)
-
-struct BurnDriver BurnDrvHpolym84 = {
- "hpolym84", "hyperspt", NULL, NULL, "1984",
- "Hyper Olympic '84\0", NULL, "Konami", "GX330",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_KONAMI, GBF_SPORTSMISC, 0,
- NULL, hpolym84RomInfo, hpolym84RomName, NULL, NULL, HypersptInputInfo, HypersptDIPInfo,
- HypersptInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x200,
- 256, 224, 4, 3
-};
-
-
-// Road Fighter (set 1)
-
-static struct BurnRomInfo roadfRomDesc[] = {
- { "g05_g01.bin", 0x2000, 0xe2492a06, 1 | BRF_PRG | BRF_ESS }, // 0 M6809 Code
- { "g07_f02.bin", 0x2000, 0x0bf75165, 1 | BRF_PRG | BRF_ESS }, // 1
- { "g09_g03.bin", 0x2000, 0xdde401f8, 1 | BRF_PRG | BRF_ESS }, // 2
- { "g11_f04.bin", 0x2000, 0xb1283c77, 1 | BRF_PRG | BRF_ESS }, // 3
- { "g13_f05.bin", 0x2000, 0x0ad4d796, 1 | BRF_PRG | BRF_ESS }, // 4
- { "g15_f06.bin", 0x2000, 0xfa42e0ed, 1 | BRF_PRG | BRF_ESS }, // 5
-
- { "a17_d10.bin", 0x2000, 0xc33c927e, 2 | BRF_PRG | BRF_ESS }, // 6 Z80 Code
-
- { "j19_e14.bin", 0x4000, 0x16d2bcff, 3 | BRF_GRA }, // 7 Background Tiles
- { "g19_e18.bin", 0x4000, 0x490685ff, 3 | BRF_GRA }, // 8
-
- { "a14_e26.bin", 0x4000, 0xf5c738e2, 4 | BRF_GRA }, // 9 Sprites
- { "a12_d24.bin", 0x2000, 0x2d82c930, 4 | BRF_GRA }, // 10
- { "c14_e22.bin", 0x4000, 0xfbcfbeb9, 4 | BRF_GRA }, // 11
- { "c12_d20.bin", 0x2000, 0x5e0cf994, 4 | BRF_GRA }, // 12
-
- { "c03_c27.bin", 0x0020, 0x45d5e352, 5 | BRF_GRA }, // 13 Color Proms
- { "j12_c28.bin", 0x0100, 0x2955e01f, 5 | BRF_GRA }, // 14
- { "a09_c29.bin", 0x0100, 0x5b3b5f2a, 5 | BRF_GRA }, // 15
-};
-
-STD_ROM_PICK(roadf)
-STD_ROM_FN(roadf)
-
-static INT32 RoadfInit()
-{
- return DrvInit(2);
-}
-
-struct BurnDriver BurnDrvRoadf = {
- "roadf", NULL, NULL, NULL, "1984",
- "Road Fighter (set 1)\0", NULL, "Konami", "GX461",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED, 2, HARDWARE_PREFIX_KONAMI, GBF_RACING, 0,
- NULL, roadfRomInfo, roadfRomName, NULL, NULL, RoadfInputInfo, RoadfDIPInfo,
- RoadfInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x200,
- 224, 256, 3, 4
-};
-
-
-// Road Fighter (set 2)
-
-static struct BurnRomInfo roadf2RomDesc[] = {
- { "5g", 0x2000, 0xd8070d30, 1 | BRF_PRG | BRF_ESS }, // 0 M6809 Code
- { "6g", 0x2000, 0x8b661672, 1 | BRF_PRG | BRF_ESS }, // 1
- { "8g", 0x2000, 0x714929e8, 1 | BRF_PRG | BRF_ESS }, // 2
- { "11g", 0x2000, 0x0f2c6b94, 1 | BRF_PRG | BRF_ESS }, // 3
- { "g13_f05.bin", 0x2000, 0x0ad4d796, 1 | BRF_PRG | BRF_ESS }, // 4
- { "g15_f06.bin", 0x2000, 0xfa42e0ed, 1 | BRF_PRG | BRF_ESS }, // 5
-
- { "a17_d10.bin", 0x2000, 0xc33c927e, 2 | BRF_PRG | BRF_ESS }, // 6 Z80 Code
-
- { "j19_e14.bin", 0x4000, 0x16d2bcff, 3 | BRF_GRA }, // 7 Background Tiles
- { "g19_e18.bin", 0x4000, 0x490685ff, 3 | BRF_GRA }, // 8
-
- { "a14_e26.bin", 0x4000, 0xf5c738e2, 4 | BRF_GRA }, // 9 Sprites
- { "a12_d24.bin", 0x2000, 0x2d82c930, 4 | BRF_GRA }, // 10
- { "c14_e22.bin", 0x4000, 0xfbcfbeb9, 4 | BRF_GRA }, // 11
- { "c12_d20.bin", 0x2000, 0x5e0cf994, 4 | BRF_GRA }, // 12
-
- { "c03_c27.bin", 0x0020, 0x45d5e352, 5 | BRF_GRA }, // 13 Color Proms
- { "j12_c28.bin", 0x0100, 0x2955e01f, 5 | BRF_GRA }, // 14
- { "a09_c29.bin", 0x0100, 0x5b3b5f2a, 5 | BRF_GRA }, // 15
-};
-
-STD_ROM_PICK(roadf2)
-STD_ROM_FN(roadf2)
-
-struct BurnDriver BurnDrvRoadf2 = {
- "roadf2", "roadf", NULL, NULL, "1984",
- "Road Fighter (set 2)\0", NULL, "Konami", "GX461",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED, 2, HARDWARE_PREFIX_KONAMI, GBF_RACING, 0,
- NULL, roadf2RomInfo, roadf2RomName, NULL, NULL, RoadfInputInfo, RoadfDIPInfo,
- RoadfInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x200,
- 224, 256, 3, 4
-};
-
-
-// Road Fighter (set 3, conversion hack on Hyper Sports PCB)
-
-static struct BurnRomInfo roadf3RomDesc[] = {
- { "1-2.g7", 0x4000, 0x93b168f2, 1 | BRF_PRG | BRF_ESS }, // 0 M6809 Code
- { "3-4.g11", 0x4000, 0xb9ba77f0, 1 | BRF_PRG | BRF_ESS }, // 1
- { "5-6.g15", 0x4000, 0x91c1788b, 1 | BRF_PRG | BRF_ESS }, // 2
-
- { "sound7.a9", 0x2000, 0xc33c927e, 2 | BRF_PRG | BRF_ESS }, // 3 Z80 Code
-
- { "j19.bin", 0x2000, 0x5eeb0283, 3 | BRF_GRA }, // 4 Background Tiles
- { "j18.bin", 0x2000, 0x43c1590d, 3 | BRF_GRA }, // 5
- { "g19.bin", 0x2000, 0xf2819ef3, 3 | BRF_GRA }, // 6
- { "g18.bin", 0x2000, 0xdbd1d844, 3 | BRF_GRA }, // 7
-
- { "a14.bin", 0x2000, 0x0b595c1e, 4 | BRF_GRA }, // 8 Sprites
- { "a13.bin", 0x2000, 0x4f0acc76, 4 | BRF_GRA }, // 9
- { "a12.bin", 0x2000, 0x2d82c930, 4 | BRF_GRA }, // 10
- { "c14.bin", 0x2000, 0x412a9dda, 4 | BRF_GRA }, // 11
- { "c13.bin", 0x2000, 0x0c2d50ae, 4 | BRF_GRA }, // 12
- { "c12.bin", 0x2000, 0x5e0cf994, 4 | BRF_GRA }, // 13
-
- { "6331.c3", 0x0020, 0x45d5e352, 5 | BRF_GRA }, // 14 Color Proms
- { "82s129.j12", 0x0100, 0x2955e01f, 5 | BRF_GRA }, // 15
- { "82s129.a9", 0x0100, 0x5b3b5f2a, 5 | BRF_GRA }, // 16
-};
-
-STD_ROM_PICK(roadf3)
-STD_ROM_FN(roadf3)
-
-static INT32 Roadf3Init()
-{
- return DrvInit(3);
-}
-
-struct BurnDriver BurnDrvRoadf3 = {
- "roadf3", "roadf", NULL, NULL, "1984",
- "Road Fighter (set 3, conversion hack on Hyper Sports PCB)\0", NULL, "hack", "GX330",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED, 2, HARDWARE_PREFIX_KONAMI, GBF_RACING, 0,
- NULL, roadf3RomInfo, roadf3RomName, NULL, NULL, RoadfInputInfo, RoadfDIPInfo,
- Roadf3Init, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x200,
- 224, 256, 3, 4
-};
diff --git a/jan/src/burn/drv/konami/d_ironhors.cpp b/jan/src/burn/drv/konami/d_ironhors.cpp
deleted file mode 100644
index cdd215de9..000000000
--- a/jan/src/burn/drv/konami/d_ironhors.cpp
+++ /dev/null
@@ -1,766 +0,0 @@
-// FB Alpha IronHorse driver module
-// Based on MAME driver by Mirko Buffoni
-
-#include "tiles_generic.h"
-#include "m6809_intf.h"
-#include "z80_intf.h"
-#include "burn_ym2203.h"
-#include "konamiic.h"
-
-static UINT8 *AllMem;
-static UINT8 *MemEnd;
-static UINT8 *AllRam;
-static UINT8 *RamEnd;
-static UINT8 *DrvM6809ROM;
-static UINT8 *DrvZ80ROM;
-static UINT8 *DrvGfxROM;
-static UINT8 *DrvColPROM;
-static UINT8 *DrvM6809RAM0;
-static UINT8 *DrvColRAM;
-static UINT8 *DrvVidRAM;
-static UINT8 *DrvM6809RAM1;
-static UINT8 *DrvSprRAM0;
-static UINT8 *DrvSprRAM1;
-static UINT8 *DrvZ80RAM;
-static UINT8 *DrvCharBank;
-static UINT8 *DrvIRQEnable;
-static UINT8 *DrvScrollRAM;
-
-static UINT32 *DrvPalette;
-static UINT8 DrvRecalc;
-
-static UINT8 soundlatch;
-static UINT8 palettebank;
-
-static UINT8 DrvJoy1[8];
-static UINT8 DrvJoy2[8];
-static UINT8 DrvJoy3[8];
-static UINT8 DrvDips[3];
-static UINT8 DrvInputs[3];
-static UINT8 DrvReset;
-
-static struct BurnInputInfo DairesyaInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy1 + 0, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 3, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy2 + 2, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy2 + 3, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy2 + 0, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy2 + 1, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy2 + 4, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy2 + 5, "p1 fire 2" },
- {"P1 Button 3", BIT_DIGITAL, DrvJoy2 + 6, "p1 fire 3" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy1 + 1, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy1 + 4, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvJoy3 + 2, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy3 + 3, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy3 + 0, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy3 + 1, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy3 + 4, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy3 + 5, "p2 fire 2" },
- {"P2 Button 3", BIT_DIGITAL, DrvJoy3 + 6, "p2 fire 3" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service", BIT_DIGITAL, DrvJoy1 + 2, "service" },
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip" },
- {"Dip C", BIT_DIPSWITCH, DrvDips + 2, "dip" },
-};
-
-STDINPUTINFO(Dairesya)
-
-
-static struct BurnInputInfo IronhorsInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy1 + 0, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 3, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy2 + 2, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy2 + 3, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy2 + 0, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy2 + 1, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy2 + 4, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy2 + 5, "p1 fire 2" },
- {"P1 Button 3", BIT_DIGITAL, DrvJoy3 + 6, "p1 fire 3" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy1 + 1, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy1 + 4, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvJoy3 + 2, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy3 + 3, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy3 + 0, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy3 + 1, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy3 + 4, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy3 + 5, "p2 fire 2" },
- {"P2 Button 3", BIT_DIGITAL, DrvJoy2 + 6, "p2 fire 3" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service", BIT_DIGITAL, DrvJoy1 + 2, "service" },
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip" },
- {"Dip C", BIT_DIPSWITCH, DrvDips + 2, "dip" },
-};
-
-STDINPUTINFO(Ironhors)
-
-static struct BurnDIPInfo IronhorsDIPList[]=
-{
- {0x14, 0xff, 0xff, 0xff, NULL },
- {0x15, 0xff, 0xff, 0x5a, NULL },
- {0x16, 0xff, 0xff, 0xfe, NULL },
-
- {0 , 0xfe, 0 , 16, "Free Play" },
- {0x14, 0x01, 0x0f, 0x02, "4 Coins 1 Credits" },
- {0x14, 0x01, 0x0f, 0x05, "3 Coins 1 Credits" },
- {0x14, 0x01, 0x0f, 0x08, "2 Coins 1 Credits" },
- {0x14, 0x01, 0x0f, 0x04, "3 Coins 2 Credits" },
- {0x14, 0x01, 0x0f, 0x01, "4 Coins 3 Credits" },
- {0x14, 0x01, 0x0f, 0x0f, "1 Coin 1 Credits" },
- {0x14, 0x01, 0x0f, 0x03, "3 Coins 4 Credits" },
- {0x14, 0x01, 0x0f, 0x07, "2 Coins 3 Credits" },
- {0x14, 0x01, 0x0f, 0x0e, "1 Coin 2 Credits" },
- {0x14, 0x01, 0x0f, 0x06, "2 Coins 5 Credits" },
- {0x14, 0x01, 0x0f, 0x0d, "1 Coin 3 Credits" },
- {0x14, 0x01, 0x0f, 0x0c, "1 Coin 4 Credits" },
- {0x14, 0x01, 0x0f, 0x0b, "1 Coin 5 Credits" },
- {0x14, 0x01, 0x0f, 0x0a, "1 Coin 6 Credits" },
- {0x14, 0x01, 0x0f, 0x09, "1 Coin 7 Credits" },
- {0x14, 0x01, 0x0f, 0x00, ":1,2,3,4" },
-
- {0 , 0xfe, 0 , 16, "Coin B" },
- {0x14, 0x01, 0xf0, 0x20, "4 Coins 1 Credits" },
- {0x14, 0x01, 0xf0, 0x50, "3 Coins 1 Credits" },
- {0x14, 0x01, 0xf0, 0x80, "2 Coins 1 Credits" },
- {0x14, 0x01, 0xf0, 0x40, "3 Coins 2 Credits" },
- {0x14, 0x01, 0xf0, 0x10, "4 Coins 3 Credits" },
- {0x14, 0x01, 0xf0, 0xf0, "1 Coin 1 Credits" },
- {0x14, 0x01, 0xf0, 0x30, "3 Coins 4 Credits" },
- {0x14, 0x01, 0xf0, 0x70, "2 Coins 3 Credits" },
- {0x14, 0x01, 0xf0, 0xe0, "1 Coin 2 Credits" },
- {0x14, 0x01, 0xf0, 0x60, "2 Coins 5 Credits" },
- {0x14, 0x01, 0xf0, 0xd0, "1 Coin 3 Credits" },
- {0x14, 0x01, 0xf0, 0xc0, "1 Coin 4 Credits" },
- {0x14, 0x01, 0xf0, 0xb0, "1 Coin 5 Credits" },
- {0x14, 0x01, 0xf0, 0xa0, "1 Coin 6 Credits" },
- {0x14, 0x01, 0xf0, 0x90, "1 Coin 7 Credits" },
- {0x14, 0x01, 0xf0, 0x00, "No Coin B" },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x15, 0x01, 0x03, 0x03, "2" },
- {0x15, 0x01, 0x03, 0x02, "3" },
- {0x15, 0x01, 0x03, 0x01, "5" },
- {0x15, 0x01, 0x03, 0x00, "7" },
-
-// {0 , 0xfe, 0 , 2, "Cabinet" },
-// {0x15, 0x01, 0x04, 0x00, "Upright" },
-// {0x15, 0x01, 0x04, 0x04, "Cocktail" },
-
- {0 , 0xfe, 0 , 4, "Bonus Life" },
- {0x15, 0x01, 0x18, 0x18, "30K 70K+" },
- {0x15, 0x01, 0x18, 0x10, "40K 80K+" },
- {0x15, 0x01, 0x18, 0x08, "40K" },
- {0x15, 0x01, 0x18, 0x00, "50K" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x15, 0x01, 0x60, 0x60, "Easy" },
- {0x15, 0x01, 0x60, 0x40, "Normal" },
- {0x15, 0x01, 0x60, 0x20, "Hard" },
- {0x15, 0x01, 0x60, 0x00, "Very Hard" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x15, 0x01, 0x80, 0x80, "Off" },
- {0x15, 0x01, 0x80, 0x00, "On" },
-
-// {0 , 0xfe, 0 , 2, "Flip Screen" },
-// {0x16, 0x01, 0x01, 0x00, "Off" },
-// {0x16, 0x01, 0x01, 0x01, "On" },
-
- {0 , 0xfe, 0 , 2, "Upright Controls" },
- {0x16, 0x01, 0x02, 0x02, "Single" },
- {0x16, 0x01, 0x02, 0x00, "Dual" },
-
- {0 , 0xfe, 0 , 2, "Button Layout" },
- {0x16, 0x01, 0x04, 0x04, "Power Attack Squat" },
- {0x16, 0x01, 0x04, 0x00, "Squat Attack Power" },
-};
-
-STDDIPINFO(Ironhors)
-
-static void ironhors_main_write(UINT16 address, UINT8 data)
-{
- if (address & 0xf000) {
- return; // nop
- }
-
- switch (address)
- {
- case 0x0800:
- soundlatch = data;
- return;
-
- case 0x0900:
- ZetSetVector(0xff);
- ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
- return;
-
- case 0x0a00:
- palettebank = data & 0x07;
- return;
-
- case 0x0b00:
- // flipscreen = data & 0x08;
- return;
- }
-}
-
-static UINT8 ironhors_main_read(UINT16 address)
-{
- switch (address)
- {
- case 0x0900:
- return DrvDips[2];
-
- case 0x0a00:
- return DrvDips[1];
-
- case 0x0b00:
- return DrvDips[0];
-
- case 0x0b01:
- return DrvInputs[2];
-
- case 0x0b02:
- return DrvInputs[1];
-
- case 0x0b03:
- return DrvInputs[0];
- }
-
- return 0;
-}
-
-static UINT8 __fastcall ironhors_sound_read(UINT16 address)
-{
- switch (address)
- {
- case 0x8000:
- ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
- return soundlatch;
- }
-
- return 0;
-}
-
-static void __fastcall ironhors_sound_write_port(UINT16 port, UINT8 data)
-{
- switch (port & 0xff)
- {
- case 0x00:
- case 0x01:
- BurnYM2203Write(0, port & 1, data);
- return;
- }
-}
-
-static UINT8 __fastcall ironhors_sound_read_port(UINT16 port)
-{
- switch (port & 0xff)
- {
- case 0x00:
- case 0x01:
- return BurnYM2203Read(0, port & 1);
- }
-
- return 0;
-}
-
-static INT32 DrvSynchroniseStream(INT32 nSoundRate)
-{
- return (INT64)ZetTotalCycles() * nSoundRate / 3072000;
-}
-
-static double DrvGetTime()
-{
- return (double)ZetTotalCycles() / 3072000;
-}
-
-static INT32 DrvDoReset()
-{
- memset (AllRam, 0, RamEnd - AllRam);
-
- M6809Open(0);
- M6809Reset();
- M6809Close();
-
- ZetOpen(0);
- ZetReset();
- BurnYM2203Reset();
- ZetClose();
-
- soundlatch = 0;
- palettebank = 0;
-
- HiscoreReset();
-
- return 0;
-}
-
-static INT32 MemIndex()
-{
- UINT8 *Next; Next = AllMem;
-
- DrvM6809ROM = Next; Next += 0x00c000;
-
- DrvZ80ROM = Next; Next += 0x004000;
-
- DrvGfxROM = Next; Next += 0x040000;
-
- DrvColPROM = Next; Next += 0x000500;
-
- DrvPalette = (UINT32*)Next; Next += 0x1000 * sizeof(UINT32);
-
- AllRam = Next;
-
- DrvM6809RAM0 = Next; Next += 0x000100;
- DrvColRAM = Next; Next += 0x000400;
- DrvVidRAM = Next; Next += 0x000400;
- DrvM6809RAM1 = Next; Next += 0x000800;
- DrvSprRAM0 = Next; Next += 0x000800;
- DrvSprRAM1 = Next; Next += 0x000800;
-
- DrvZ80RAM = Next; Next += 0x000400;
-
- RamEnd = Next;
-
- DrvCharBank = DrvM6809RAM0 + 0x00003;
- DrvIRQEnable = DrvM6809RAM0 + 0x00004;
- DrvScrollRAM = DrvM6809RAM0 + 0x00020;
-
- MemEnd = Next;
-
- return 0;
-}
-
-static void DrvGfxExpand(UINT8 *src, INT32 len)
-{
- for (INT32 i = (len - 1) * 2; i >= 0; i-=2) {
- src[i+0] = src[i/2] >> 4;
- src[i+1] = src[i/2] & 0xf;
- }
-}
-
-static void DrvPaletteInit()
-{
- UINT32 pens[0x100];
-
- for (INT32 i = 0; i < 0x100; i++)
- {
- INT32 bit0 = (DrvColPROM[i + 0x000] >> 0) & 0x01;
- INT32 bit1 = (DrvColPROM[i + 0x000] >> 1) & 0x01;
- INT32 bit2 = (DrvColPROM[i + 0x000] >> 2) & 0x01;
- INT32 bit3 = (DrvColPROM[i + 0x000] >> 3) & 0x01;
- INT32 r = (bit3 * 138) + (bit2 * 69) + (bit1 * 33) + (bit0 * 15);
-
- bit0 = (DrvColPROM[i + 0x100] >> 0) & 0x01;
- bit1 = (DrvColPROM[i + 0x100] >> 1) & 0x01;
- bit2 = (DrvColPROM[i + 0x100] >> 2) & 0x01;
- bit3 = (DrvColPROM[i + 0x100] >> 3) & 0x01;
- INT32 g = (bit3 * 138) + (bit2 * 69) + (bit1 * 33) + (bit0 * 15);
-
- bit0 = (DrvColPROM[i + 0x200] >> 0) & 0x01;
- bit1 = (DrvColPROM[i + 0x200] >> 1) & 0x01;
- bit2 = (DrvColPROM[i + 0x200] >> 2) & 0x01;
- bit3 = (DrvColPROM[i + 0x200] >> 3) & 0x01;
- INT32 b = (bit3 * 138) + (bit2 * 69) + (bit1 * 33) + (bit0 * 15);
-
- pens[i] = BurnHighCol(r,g,b,0);
- }
-
- for (INT32 i = 0; i < 0x200; i++)
- {
- for (INT32 j = 0; j < 8; j++)
- {
- UINT8 ctabentry = (j << 5) | ((~i & 0x100) >> 4) | (DrvColPROM[i+0x300] & 0x0f);
- DrvPalette[((i & 0x100) << 3) | (j << 8) | (i & 0xff)] = pens[ctabentry];
- }
- }
-}
-
-static INT32 DrvInit()
-{
- BurnSetRefreshRate(30.0);
-
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(DrvM6809ROM + 0x00000, 0, 1)) return 1;
- if (BurnLoadRom(DrvM6809ROM + 0x08000, 1, 1)) return 1;
-
- if (BurnLoadRom(DrvZ80ROM + 0x00000, 2, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM + 0x00000, 3, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM + 0x00001, 4, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM + 0x10000, 5, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM + 0x10001, 6, 2)) return 1;
-
- if (BurnLoadRom(DrvColPROM + 0x00000, 7, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x00100, 8, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x00200, 9, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x00300, 10, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x00400, 11, 1)) return 1;
-
- DrvGfxExpand(DrvGfxROM, 0x20000);
- DrvPaletteInit();
- }
-
- M6809Init(1);
- M6809Open(0);
- M6809MapMemory(DrvM6809RAM0, 0x0000, 0x00ff, MAP_RAM);
- M6809MapMemory(DrvColRAM, 0x2000, 0x23ff, MAP_RAM);
- M6809MapMemory(DrvVidRAM, 0x2400, 0x27ff, MAP_RAM);
- M6809MapMemory(DrvM6809RAM1, 0x2800, 0x2fff, MAP_RAM);
- M6809MapMemory(DrvSprRAM1, 0x3000, 0x37ff, MAP_RAM);
- M6809MapMemory(DrvSprRAM0, 0x3800, 0x3fff, MAP_RAM);
- M6809MapMemory(DrvM6809ROM, 0x4000, 0xffff, MAP_RAM);
- M6809SetWriteHandler(ironhors_main_write);
- M6809SetReadHandler(ironhors_main_read);
- M6809Close();
-
- ZetInit(0);
- ZetOpen(0);
- ZetMapMemory(DrvZ80ROM, 0x0000, 0x3fff, MAP_ROM);
- ZetMapMemory(DrvZ80RAM, 0x4000, 0x43ff, MAP_RAM);
- ZetSetReadHandler(ironhors_sound_read);
- ZetSetOutHandler(ironhors_sound_write_port);
- ZetSetInHandler(ironhors_sound_read_port);
- ZetClose();
-
- BurnYM2203Init(1, 3072000, NULL, DrvSynchroniseStream, DrvGetTime, 0);
- BurnTimerAttachZet(3072000);
- BurnYM2203SetAllRoutes(0, 1.00, BURN_SND_ROUTE_BOTH);
- BurnYM2203SetPSGVolume(0, 1.00);
-
- GenericTilesInit();
-
- DrvDoReset();
-
- return 0;
-}
-
-static INT32 DrvExit()
-{
- BurnYM2203Exit();
-
- M6809Exit();
- ZetExit();
-
- GenericTilesExit();
-
- BurnFree (AllMem);
-
- return 0;
-}
-
-static void draw_layer()
-{
- INT32 bank = DrvCharBank[0] & 3;
-
- for (INT32 offs = 32*2; offs < (32 * 32) - (32 * 2); offs++)
- {
- INT32 sx = (offs & 0x1f) * 8;
- INT32 sy = (offs / 0x20) * 8;
-
- sx -= (DrvScrollRAM[(sy/8)] + 8) & 0xff;
- if (sx < -7) sx += 256;
-
- INT32 attr = DrvColRAM[offs];
- INT32 code = DrvVidRAM[offs] + ((attr & 0x40) << 2) + ((attr & 0x20) << 4) + (bank << 10);
- INT32 color = (attr & 0x0f) + (palettebank << 4);
- INT32 flipx = (attr & 0x10);
- INT32 flipy = (attr & 0x20);
-
- if (flipy) {
- if (flipx) {
- Render8x8Tile_FlipXY_Clip(pTransDraw, code, sx, sy - 16, color, 4, 0, DrvGfxROM);
- } else {
- Render8x8Tile_FlipY_Clip(pTransDraw, code, sx, sy - 16, color, 4, 0, DrvGfxROM);
- }
- } else {
- if (flipx) {
- Render8x8Tile_FlipX_Clip(pTransDraw, code, sx, sy - 16, color, 4, 0, DrvGfxROM);
- } else {
- Render8x8Tile_Clip(pTransDraw, code, sx, sy - 16, color, 4, 0, DrvGfxROM);
- }
- }
- }
-}
-
-static inline void draw_single_sprite(INT32 code, INT32 color, INT32 sx, INT32 sy, INT32 flipx, INT32 flipy)
-{
- sy -= 16;
- sx -= 8;
-
- if (sx < -7 || sy < -7 || sx >= nScreenWidth || sy >= nScreenHeight) return;
-
- if (flipy) {
- if (flipx) {
- Render8x8Tile_Mask_FlipXY_Clip(pTransDraw, code, sx, sy, color, 4, 0, 0x800, DrvGfxROM);
- } else {
- Render8x8Tile_Mask_FlipY_Clip(pTransDraw, code, sx, sy, color, 4, 0, 0x800, DrvGfxROM);
- }
- } else {
- if (flipx) {
- Render8x8Tile_Mask_FlipX_Clip(pTransDraw, code, sx, sy, color, 4, 0, 0x800, DrvGfxROM);
- } else {
- Render8x8Tile_Mask_Clip(pTransDraw, code, sx, sy, color, 4, 0, 0x800, DrvGfxROM);
- }
- }
-}
-
-static void draw_sprites()
-{
- UINT8 *spriteram = ((DrvCharBank[0] & 8) ? DrvSprRAM0 : DrvSprRAM1);
-
- for (INT32 offs = 0; offs < 0x100; offs += 5)
- {
- INT32 sx = spriteram[offs + 3];
- INT32 sy = spriteram[offs + 2];
- INT32 code = (spriteram[offs + 0] << 2) + ((spriteram[offs + 1] & 0x03) << 10) + ((spriteram[offs + 1] & 0x0c) >> 2);
- INT32 color = ((spriteram[offs + 1] & 0xf0) >> 4) + (palettebank << 4);
- INT32 flipx = spriteram[offs + 4] & 0x20;
- INT32 flipy = spriteram[offs + 4] & 0x40;
-
- switch (spriteram[offs + 4] & 0x0c)
- {
- case 0x00: // 16x16
- draw_single_sprite((code & ~3)|0, color, (flipx ? (sx + 8) : sx), (flipy ? (sy + 8) : sy), flipx, flipy);
- draw_single_sprite((code & ~3)|1, color, (flipx ? sx : (sx + 8)), (flipy ? (sy + 8) : sy), flipx, flipy);
- draw_single_sprite((code & ~3)|2, color, (flipx ? (sx + 8) : sx), (flipy ? sy : (sy + 8)), flipx, flipy);
- draw_single_sprite((code & ~3)|3, color, (flipx ? sx : (sx + 8)), (flipy ? sy : (sy + 8)), flipx, flipy);
- break;
-
- case 0x04: // 16x8
- draw_single_sprite(code & ~1, color, (flipx ? (sx + 8) : sx), sy, flipx, flipy);
- draw_single_sprite(code | 1, color, (flipx ? sx : (sx + 8)), sy, flipx, flipy);
- break;
-
- case 0x08: // 8x16
- draw_single_sprite(code & ~2, color, sx, (flipy ? (sy + 8) : sy), flipx, flipy);
- draw_single_sprite(code | 2, color, sx, (flipy ? sy : (sy + 8)), flipx, flipy);
- break;
-
- case 0x0c: // 8x8
- draw_single_sprite(code, color, sx, sy, flipx, flipy);
- break;
- }
- }
-}
-
-static INT32 DrvDraw()
-{
- if (DrvRecalc) {
- DrvPaletteInit();
- DrvRecalc = 0;
- }
-
- draw_layer();
- draw_sprites();
-
- BurnTransferCopy(DrvPalette);
-
- return 0;
-}
-
-static INT32 DrvFrame()
-{
- if (DrvReset) {
- DrvDoReset();
- }
-
- ZetNewFrame();
-
- {
- memset (DrvInputs, 0xff, 3);
- for (INT32 i = 0; i < 8; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- DrvInputs[2] ^= (DrvJoy3[i] & 1) << i;
- }
-
- // Clear opposites
- if ((DrvInputs[1] & 0x0c) == 0) DrvInputs[1] |= 0x0c;
- if ((DrvInputs[1] & 0x03) == 0) DrvInputs[1] |= 0x03;
- if ((DrvInputs[2] & 0x0c) == 0) DrvInputs[2] |= 0x0c;
- if ((DrvInputs[2] & 0x03) == 0) DrvInputs[2] |= 0x03;
- }
-
- INT32 nInterleave = 256;
- INT32 nCyclesTotal[2] = { 3072000 / 30, 3072000 / 30 };
-
- M6809Open(0);
- ZetOpen(0);
-
- for (INT32 i = 0; i < nInterleave; i++)
- {
- M6809Run(nCyclesTotal[0] / nInterleave);
-
- if (i == 240 && (DrvIRQEnable[0] & 0x04)) M6809SetIRQLine(1, CPU_IRQSTATUS_AUTO); // firq
- if ((i&0x3f)==0 && (DrvIRQEnable[0] & 0x01)) M6809SetIRQLine(0x20, CPU_IRQSTATUS_AUTO); // nmi
-
- BurnTimerUpdate((i+1) * (nCyclesTotal[1] / nInterleave));
- }
-
- BurnTimerEndFrame(nCyclesTotal[1]);
-
- if (pBurnSoundOut) {
- BurnYM2203Update(pBurnSoundOut, nBurnSoundLen);
- }
-
- ZetClose();
- M6809Close();
-
- if (pBurnDraw) {
- DrvDraw();
- }
-
- return 0;
-}
-
-static INT32 DrvScan(INT32 nAction,INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin) {
- *pnMin = 0x029704;
- }
-
- if (nAction & ACB_VOLATILE) {
- memset(&ba, 0, sizeof(ba));
- ba.Data = AllRam;
- ba.nLen = RamEnd - AllRam;
- ba.szName = "All RAM";
- BurnAcb(&ba);
- }
-
- if (nAction & ACB_DRIVER_DATA) {
- M6809Scan(nAction);
- ZetScan(nAction);
-
- ZetOpen(0);
- BurnYM2203Scan(nAction, pnMin);
- ZetClose();
-
- SCAN_VAR(soundlatch);
- SCAN_VAR(palettebank);
- }
-
- return 0;
-}
-
-
-// Iron Horse
-
-static struct BurnRomInfo ironhorsRomDesc[] = {
- { "13c_h03.bin", 0x8000, 0x24539af1, 1 | BRF_PRG | BRF_ESS }, // 0 M6809 Code
- { "12c_h02.bin", 0x4000, 0xfab07f86, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "10c_h01.bin", 0x4000, 0x2b17930f, 2 | BRF_PRG | BRF_ESS }, // 2 Z80 Code
-
- { "08f_h06.bin", 0x8000, 0xf21d8c93, 3 | BRF_GRA }, // 3 Graphics Tiles
- { "07f_h05.bin", 0x8000, 0x60107859, 3 | BRF_GRA }, // 4
- { "09f_h07.bin", 0x8000, 0xc761ec73, 3 | BRF_GRA }, // 5
- { "06f_h04.bin", 0x8000, 0xc1486f61, 3 | BRF_GRA }, // 6
-
- { "03f_h08.bin", 0x0100, 0x9f6ddf83, 4 | BRF_GRA }, // 7 Color PROMs
- { "04f_h09.bin", 0x0100, 0xe6773825, 4 | BRF_GRA }, // 8
- { "05f_h10.bin", 0x0100, 0x30a57860, 4 | BRF_GRA }, // 9
- { "10f_h12.bin", 0x0100, 0x5eb33e73, 4 | BRF_GRA }, // 10
- { "10f_h11.bin", 0x0100, 0xa63e37d8, 4 | BRF_GRA }, // 11
-};
-
-STD_ROM_PICK(ironhors)
-STD_ROM_FN(ironhors)
-
-struct BurnDriver BurnDrvIronhors = {
- "ironhors", NULL, NULL, NULL, "1986",
- "Iron Horse\0", NULL, "Konami", "GX560",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_KONAMI, GBF_HORSHOOT, 0,
- NULL, ironhorsRomInfo, ironhorsRomName, NULL, NULL, IronhorsInputInfo, IronhorsDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x1000,
- 240, 224, 4, 3
-};
-
-
-// Dai Ressya Goutou (Japan)
-
-static struct BurnRomInfo dairesyaRomDesc[] = {
- { "560-k03.13c", 0x8000, 0x2ac6103b, 1 | BRF_PRG | BRF_ESS }, // 0 M6809 Code
- { "560-k02.12c", 0x4000, 0x07bc13a9, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "560-j01.10c", 0x4000, 0xa203b223, 2 | BRF_PRG | BRF_ESS }, // 2 Z80 Code
-
- { "560-j06.8f", 0x8000, 0xa6e8248d, 3 | BRF_GRA }, // 3 Graphics Tiles
- { "560-j05.7f", 0x8000, 0xf75893d4, 3 | BRF_GRA }, // 4
- { "560-k07.9f", 0x8000, 0xc8a1b840, 3 | BRF_GRA }, // 5
- { "560-k04.6f", 0x8000, 0xc883d856, 3 | BRF_GRA }, // 6
-
- { "03f_h08.bin", 0x0100, 0x9f6ddf83, 4 | BRF_GRA }, // 7 Color PROMs
- { "04f_h09.bin", 0x0100, 0xe6773825, 4 | BRF_GRA }, // 8
- { "05f_h10.bin", 0x0100, 0x30a57860, 4 | BRF_GRA }, // 9
- { "10f_h12.bin", 0x0100, 0x5eb33e73, 4 | BRF_GRA }, // 10
- { "10f_h11.bin", 0x0100, 0xa63e37d8, 4 | BRF_GRA }, // 11
-};
-
-STD_ROM_PICK(dairesya)
-STD_ROM_FN(dairesya)
-
-struct BurnDriver BurnDrvDairesya = {
- "dairesya", "ironhors", NULL, NULL, "1986",
- "Dai Ressya Goutou (Japan)\0", NULL, "Konami (Kawakusu license)", "GX560",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_KONAMI, GBF_HORSHOOT, 0,
- NULL, dairesyaRomInfo, dairesyaRomName, NULL, NULL, DairesyaInputInfo, IronhorsDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x1000,
- 240, 224, 4, 3
-};
-
-
-// Far West
-
-static struct BurnRomInfo farwestRomDesc[] = {
- { "ironhors.008", 0x4000, 0xb1c8246c, 1 | BRF_PRG | BRF_ESS }, // 0 M6809 Code
- { "ironhors.009", 0x8000, 0xea34ecfc, 1 | BRF_PRG | BRF_ESS }, // 1
- { "ironhors.007", 0x2000, 0x471182b7, 1 | BRF_PRG | BRF_ESS }, // 2
-
- { "ironhors.010", 0x4000, 0xa28231a6, 2 | BRF_PRG | BRF_ESS }, // 3 Z80 Code
-
- { "ironhors.005", 0x8000, 0xf77e5b83, 3 | BRF_GRA }, // 4 Background Tiles
- { "ironhors.006", 0x8000, 0x7bbc0b51, 3 | BRF_GRA }, // 5
-
- { "ironhors.001", 0x4000, 0xa8fc21d3, 4 | BRF_GRA }, // 6 Sprites
- { "ironhors.002", 0x4000, 0x9c1e5593, 4 | BRF_GRA }, // 7
- { "ironhors.003", 0x4000, 0x3a0bf799, 4 | BRF_GRA }, // 8
- { "ironhors.004", 0x4000, 0x1fab18a3, 4 | BRF_GRA }, // 9
-
- { "ironcol.003", 0x0100, 0x3e3fca11, 5 | BRF_GRA }, // 10 Color PROMs
- { "ironcol.001", 0x0100, 0xdfb13014, 5 | BRF_GRA }, // 11
- { "ironcol.002", 0x0100, 0x77c88430, 5 | BRF_GRA }, // 12
- { "10f_h12.bin", 0x0100, 0x5eb33e73, 5 | BRF_GRA }, // 13
- { "ironcol.005", 0x0100, 0x15077b9c, 5 | BRF_GRA }, // 14
-};
-
-STD_ROM_PICK(farwest)
-STD_ROM_FN(farwest)
-
-struct BurnDriverD BurnDrvFarwest = {
- "farwest", "ironhors", NULL, NULL, "1986",
- "Far West\0", NULL, "bootleg?", "GX560",
- NULL, NULL, NULL, NULL,
- BDF_CLONE | BDF_BOOTLEG | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_KONAMI, GBF_HORSHOOT, 0,
- NULL, farwestRomInfo, farwestRomName, NULL, NULL, IronhorsInputInfo, IronhorsDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x1000,
- 240, 224, 4, 3
-};
diff --git a/jan/src/burn/drv/konami/d_jackal.cpp b/jan/src/burn/drv/konami/d_jackal.cpp
deleted file mode 100644
index 96361fde6..000000000
--- a/jan/src/burn/drv/konami/d_jackal.cpp
+++ /dev/null
@@ -1,1312 +0,0 @@
-// FB Alpha Jackal driver module
-// Based on MAME driver by Kenneth Lin
-
-#include "tiles_generic.h"
-#include "m6809_intf.h"
-#include "burn_ym2151.h"
-
-static UINT8 *AllMem;
-static UINT8 *DrvM6809ROM0;
-static UINT8 *DrvM6809ROM1;
-static UINT8 *DrvGfxROM0;
-static UINT8 *DrvGfxROM1;
-static UINT8 *DrvGfxROM2;
-static UINT8 *DrvColPROM;
-static UINT8 *DrvPalRAM;
-static UINT32 *DrvPaletteTab;
-static UINT32 *DrvPalette;
-static UINT8 DrvRecalc;
-static UINT8 *AllRam;
-static UINT8 *DrvShareRAM;
-static UINT8 *DrvSprRAM;
-static UINT8 *DrvZRAM;
-static UINT8 *DrvVORAM;
-static UINT8 *DrvVidControl;
-static UINT8 *RamEnd;
-static UINT8 *MemEnd;
-
-static INT32 DrvZRAMBank;
-static INT32 DrvVORAMBank;
-static INT32 DrvSprRAMBank;
-static INT32 DrvROMBank;
-static INT32 DrvIRQEnable;
-static INT32 flipscreen;
-
-static UINT8 DrvJoy1[8];
-static UINT8 DrvJoy2[8];
-static UINT8 DrvJoy3[8];
-static UINT8 DrvInputs[3];
-static UINT8 DrvDips[3];
-static UINT8 DrvReset;
-
-static INT32 watchdog;
-static INT32 layer_offset_x = 8;
-static INT32 layer_offset_y = 16;
-
-static INT32 bootleg = 0;
-
-//static INT32 nRotate[2] = { 0, 0 };
-//static UINT32 nRotateTime[2] = { 0, 0 };
-//static UINT8 DrvFakeInput[4] = { 0, 0, 0, 0 };
-// Rotation stuff! -dink
-static UINT8 DrvFakeInput[6] = {0, 0, 0, 0, 0, 0};
-static UINT8 nRotateHoldInput[2] = {0, 0};
-static INT32 nRotate[2] = {0, 0};
-static INT32 nRotateTarget[2] = {0, 0};
-static INT32 nRotateTry[2] = {0, 0};
-static UINT32 nRotateTime[2] = {0, 0};
-static UINT8 game_rotates = 0;
-
-static struct BurnInputInfo DrvInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy3 + 0, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy3 + 3, "p1 start" },
- {"P1 Left", BIT_DIGITAL, DrvJoy1 + 0, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy1 + 1, "p1 right" },
- {"P1 Up", BIT_DIGITAL, DrvJoy1 + 2, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy1 + 3, "p1 down" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy1 + 4, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy1 + 5, "p1 fire 2" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy3 + 1, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy3 + 4, "p2 start" },
- {"P2 Left", BIT_DIGITAL, DrvJoy2 + 0, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy2 + 1, "p2 right" },
- {"P2 Up", BIT_DIGITAL, DrvJoy2 + 2, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy2 + 3, "p2 down" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy2 + 4, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy2 + 5, "p2 fire 2" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service", BIT_DIGITAL, DrvJoy3 + 2, "service" },
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip" },
- {"Dip C", BIT_DIPSWITCH, DrvDips + 2, "dip" },
-};
-
-STDINPUTINFO(Drv)
-
-static struct BurnInputInfo DrvrotateInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy3 + 0, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy3 + 3, "p1 start" },
- {"P1 Left", BIT_DIGITAL, DrvJoy1 + 0, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy1 + 1, "p1 right" },
- {"P1 Up", BIT_DIGITAL, DrvJoy1 + 2, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy1 + 3, "p1 down" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy1 + 4, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy1 + 5, "p1 fire 2" },
- {"P1 Rotate Left", BIT_DIGITAL, DrvFakeInput + 0, "p1 rotate left" },
- {"P1 Rotate Right", BIT_DIGITAL, DrvFakeInput + 1, "p1 rotate right" },
- {"P1 Button 3 (rotate)" , BIT_DIGITAL , DrvFakeInput + 4, "p1 fire 3" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy3 + 1, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy3 + 4, "p2 start" },
- {"P2 Left", BIT_DIGITAL, DrvJoy2 + 0, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy2 + 1, "p2 right" },
- {"P2 Up", BIT_DIGITAL, DrvJoy2 + 2, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy2 + 3, "p2 down" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy2 + 4, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy2 + 5, "p2 fire 2" },
- {"P2 Rotate Left", BIT_DIGITAL, DrvFakeInput + 2, "p2 rotate left" },
- {"P2 Rotate Right", BIT_DIGITAL, DrvFakeInput + 3, "p2 rotate right" },
- {"P2 Button 3 (rotate)" , BIT_DIGITAL , DrvFakeInput + 5, "p2 fire 3" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service", BIT_DIGITAL, DrvJoy3 + 2, "service" },
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip" },
- {"Dip C", BIT_DIPSWITCH, DrvDips + 2, "dip" },
-};
-
-STDINPUTINFO(Drvrotate)
-
-static struct BurnDIPInfo DrvDIPList[]=
-{
- {0x12, 0xff, 0xff, 0xff, NULL },
- {0x13, 0xff, 0xff, 0xff, NULL },
- {0x14, 0xff, 0xff, 0x20, NULL },
-
- {0 , 0xfe, 0 , 16, "Coin A" },
- {0x12, 0x01, 0x0f, 0x02, "4 Coins 1 Credit" },
- {0x12, 0x01, 0x0f, 0x05, "3 Coins 1 Credit" },
- {0x12, 0x01, 0x0f, 0x06, "2 Coins 1 Credit" },
- {0x12, 0x01, 0x0f, 0x04, "3 Coins 2 Credits" },
- {0x12, 0x01, 0x0f, 0x01, "4 Coins 3 Credits" },
- {0x12, 0x01, 0x0f, 0x0f, "1 Coin 1 Credit" },
- {0x12, 0x01, 0x0f, 0x03, "3 Coins 4 Credits" },
- {0x12, 0x01, 0x0f, 0x07, "2 Coins 3 Credits" },
- {0x12, 0x01, 0x0f, 0x0e, "1 Coin 2 Credits" },
- {0x12, 0x01, 0x0f, 0x06, "2 Coins 5 Credits" },
- {0x12, 0x01, 0x0f, 0x0d, "1 Coin 3 Credits" },
- {0x12, 0x01, 0x0f, 0x0c, "1 Coin 4 Credits" },
- {0x12, 0x01, 0x0f, 0x0b, "1 Coin 5 Credits" },
- {0x12, 0x01, 0x0f, 0x0a, "1 Coin 6 Credits" },
- {0x12, 0x01, 0x0f, 0x09, "1 Coin 7 Credits" },
- {0x12, 0x01, 0x0f, 0x00, "Free Play" },
-
- {0 , 0xfe, 0 , 16, "Coin B" },
- {0x12, 0x01, 0xf0, 0x20, "4 Coins 1 Credit" },
- {0x12, 0x01, 0xf0, 0x50, "3 Coins 1 Credit" },
- {0x12, 0x01, 0xf0, 0x60, "2 Coins 1 Credit" },
- {0x12, 0x01, 0xf0, 0x40, "3 Coins 2 Credits" },
- {0x12, 0x01, 0xf0, 0x10, "4 Coins 3 Credits" },
- {0x12, 0x01, 0xf0, 0xf0, "1 Coin 1 Credit" },
- {0x12, 0x01, 0xf0, 0x30, "3 Coins 4 Credits" },
- {0x12, 0x01, 0xf0, 0x70, "2 Coins 3 Credits" },
- {0x12, 0x01, 0xf0, 0xe0, "1 Coin 2 Credits" },
- {0x12, 0x01, 0xf0, 0x60, "2 Coins 5 Credits" },
- {0x12, 0x01, 0xf0, 0xd0, "1 Coin 3 Credits" },
- {0x12, 0x01, 0xf0, 0xc0, "1 Coin 4 Credits" },
- {0x12, 0x01, 0xf0, 0xb0, "1 Coin 5 Credits" },
- {0x12, 0x01, 0xf0, 0xa0, "1 Coin 6 Credits" },
- {0x12, 0x01, 0xf0, 0x90, "1 Coin 7 Credits" },
- {0x12, 0x01, 0xf0, 0x00, "No Coin B" },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x13, 0x01, 0x03, 0x03, "2" },
- {0x13, 0x01, 0x03, 0x02, "3" },
- {0x13, 0x01, 0x03, 0x01, "4" },
- {0x13, 0x01, 0x03, 0x00, "7" },
-
- {0 , 0xfe, 0 , 4, "Bonus Life" },
- {0x13, 0x01, 0x18, 0x18, "30k 150k" },
- {0x13, 0x01, 0x18, 0x10, "50k 200k" },
- {0x13, 0x01, 0x18, 0x08, "30k" },
- {0x13, 0x01, 0x18, 0x00, "50k" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x13, 0x01, 0x60, 0x60, "Easy" },
- {0x13, 0x01, 0x60, 0x40, "Normal" },
- {0x13, 0x01, 0x60, 0x20, "Difficult" },
- {0x13, 0x01, 0x60, 0x00, "Very Difficult" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x13, 0x01, 0x80, 0x80, "Off" },
- {0x13, 0x01, 0x80, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x14, 0x01, 0x20, 0x20, "Off" },
- {0x14, 0x01, 0x20, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Sound Adjustment" },
- {0x14, 0x01, 0x40, 0x00, "Upright" },
- {0x14, 0x01, 0x40, 0x40, "Cocktail" },
-
- {0 , 0xfe, 0 , 2, "Sound Mode" },
- {0x14, 0x01, 0x80, 0x00, "Stereo" },
- {0x14, 0x01, 0x80, 0x80, "Mono" },
-};
-
-STDDIPINFO(Drv)
-
-static struct BurnDIPInfo DrvrotateDIPList[]=
-{
- {0x18, 0xff, 0xff, 0xff, NULL },
- {0x19, 0xff, 0xff, 0xff, NULL },
- {0x1a, 0xff, 0xff, 0x20, NULL },
-
- {0 , 0xfe, 0 , 16, "Coin A" },
- {0x18, 0x01, 0x0f, 0x02, "4 Coins 1 Credit" },
- {0x18, 0x01, 0x0f, 0x05, "3 Coins 1 Credit" },
- {0x18, 0x01, 0x0f, 0x06, "2 Coins 1 Credit" },
- {0x18, 0x01, 0x0f, 0x04, "3 Coins 2 Credits" },
- {0x18, 0x01, 0x0f, 0x01, "4 Coins 3 Credits" },
- {0x18, 0x01, 0x0f, 0x0f, "1 Coin 1 Credit" },
- {0x18, 0x01, 0x0f, 0x03, "3 Coins 4 Credits" },
- {0x18, 0x01, 0x0f, 0x07, "2 Coins 3 Credits" },
- {0x18, 0x01, 0x0f, 0x0e, "1 Coin 2 Credits" },
- {0x18, 0x01, 0x0f, 0x06, "2 Coins 5 Credits" },
- {0x18, 0x01, 0x0f, 0x0d, "1 Coin 3 Credits" },
- {0x18, 0x01, 0x0f, 0x0c, "1 Coin 4 Credits" },
- {0x18, 0x01, 0x0f, 0x0b, "1 Coin 5 Credits" },
- {0x18, 0x01, 0x0f, 0x0a, "1 Coin 6 Credits" },
- {0x18, 0x01, 0x0f, 0x09, "1 Coin 7 Credits" },
- {0x18, 0x01, 0x0f, 0x00, "Free Play" },
-
- {0 , 0xfe, 0 , 16, "Coin B" },
- {0x18, 0x01, 0xf0, 0x20, "4 Coins 1 Credit" },
- {0x18, 0x01, 0xf0, 0x50, "3 Coins 1 Credit" },
- {0x18, 0x01, 0xf0, 0x60, "2 Coins 1 Credit" },
- {0x18, 0x01, 0xf0, 0x40, "3 Coins 2 Credits" },
- {0x18, 0x01, 0xf0, 0x10, "4 Coins 3 Credits" },
- {0x18, 0x01, 0xf0, 0xf0, "1 Coin 1 Credit" },
- {0x18, 0x01, 0xf0, 0x30, "3 Coins 4 Credits" },
- {0x18, 0x01, 0xf0, 0x70, "2 Coins 3 Credits" },
- {0x18, 0x01, 0xf0, 0xe0, "1 Coin 2 Credits" },
- {0x18, 0x01, 0xf0, 0x60, "2 Coins 5 Credits" },
- {0x18, 0x01, 0xf0, 0xd0, "1 Coin 3 Credits" },
- {0x18, 0x01, 0xf0, 0xc0, "1 Coin 4 Credits" },
- {0x18, 0x01, 0xf0, 0xb0, "1 Coin 5 Credits" },
- {0x18, 0x01, 0xf0, 0xa0, "1 Coin 6 Credits" },
- {0x18, 0x01, 0xf0, 0x90, "1 Coin 7 Credits" },
- {0x18, 0x01, 0xf0, 0x00, "No Coin B" },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x19, 0x01, 0x03, 0x03, "2" },
- {0x19, 0x01, 0x03, 0x02, "3" },
- {0x19, 0x01, 0x03, 0x01, "4" },
- {0x19, 0x01, 0x03, 0x00, "7" },
-
- {0 , 0xfe, 0 , 4, "Bonus Life" },
- {0x19, 0x01, 0x18, 0x18, "30k 150k" },
- {0x19, 0x01, 0x18, 0x10, "50k 200k" },
- {0x19, 0x01, 0x18, 0x08, "30k" },
- {0x19, 0x01, 0x18, 0x00, "50k" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x19, 0x01, 0x60, 0x60, "Easy" },
- {0x19, 0x01, 0x60, 0x40, "Normal" },
- {0x19, 0x01, 0x60, 0x20, "Difficult" },
- {0x19, 0x01, 0x60, 0x00, "Very Difficult" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x19, 0x01, 0x80, 0x80, "Off" },
- {0x19, 0x01, 0x80, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x1a, 0x01, 0x20, 0x20, "Off" },
- {0x1a, 0x01, 0x20, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Sound Adjustment" },
- {0x1a, 0x01, 0x40, 0x00, "Upright" },
- {0x1a, 0x01, 0x40, 0x40, "Cocktail" },
-
- {0 , 0xfe, 0 , 2, "Sound Mode" },
- {0x1a, 0x01, 0x80, 0x00, "Stereo" },
- {0x1a, 0x01, 0x80, 0x80, "Mono" },
-};
-
-STDDIPINFO(Drvrotate)
-
-// Rotation-handler code
-
-static void RotateReset() {
- for (INT32 playernum = 0; playernum < 2; playernum++) {
- nRotate[playernum] = 0; // start out pointing straight up (0=up)
- nRotateTarget[playernum] = -1;
- nRotateTime[playernum] = 0;
- nRotateHoldInput[0] = nRotateHoldInput[1] = 0;
- }
-}
-
-static UINT32 RotationTimer(void) {
- return nCurrentFrame;
-}
-
-static void RotateRight(INT32 *v) {
- (*v)++;
- if (*v > 7) *v = 0;
-}
-
-static void RotateLeft(INT32 *v) {
- (*v)--;
- if (*v < 0) *v = 7;
-}
-
-static UINT8 Joy2Rotate(UINT8 *joy) { // ugly code, but the effect is awesome. -dink
- if (joy[2] && joy[0]) return 7; // up left
- if (joy[2] && joy[1]) return 1; // up right
-
- if (joy[3] && joy[0]) return 5; // down left
- if (joy[3] && joy[1]) return 3; // down right
-
- if (joy[2]) return 0; // up
- if (joy[3]) return 4; // down
- if (joy[0]) return 6; // left
- if (joy[1]) return 2; // right
-
- return 0xff;
-}
-
-static int dialRotation(INT32 playernum) {
- // p1 = 0, p2 = 1
- UINT8 player[2] = { 0, 0 };
- static UINT8 lastplayer[2][2] = { { 0, 0 }, { 0, 0 } };
-
- if ((playernum != 0) && (playernum != 1)) {
- bprintf(PRINT_NORMAL, _T("Strange Rotation address => %06X\n"), playernum);
- return 0;
- }
- if (playernum == 0) {
- player[0] = DrvFakeInput[0]; player[1] = DrvFakeInput[1];
- }
- if (playernum == 1) {
- player[0] = DrvFakeInput[2]; player[1] = DrvFakeInput[3];
- }
-
- if (player[0] && (player[0] != lastplayer[playernum][0] || (RotationTimer() > nRotateTime[playernum]+0xf))) {
- RotateLeft(&nRotate[playernum]);
- //bprintf(PRINT_NORMAL, _T("Player %d Rotate Left => %06X\n"), playernum+1, nRotate[playernum]);
- nRotateTime[playernum] = RotationTimer();
- nRotateTarget[playernum] = -1;
- }
-
- if (player[1] && (player[1] != lastplayer[playernum][1] || (RotationTimer() > nRotateTime[playernum]+0xf))) {
- RotateRight(&nRotate[playernum]);
- //bprintf(PRINT_NORMAL, _T("Player %d Rotate Right => %06X\n"), playernum+1, nRotate[playernum]);
- nRotateTime[playernum] = RotationTimer();
- nRotateTarget[playernum] = -1;
- }
-
- lastplayer[playernum][0] = player[0];
- lastplayer[playernum][1] = player[1];
-
- return ~(1 << nRotate[playernum]);
-}
-
-static UINT8 *rotate_gunpos[2] = {NULL, NULL};
-static UINT8 rotate_gunpos_multiplier = 1;
-
-// Gun-rotation memory locations - do not remove this tag. - dink :)
-// game p1 p2 clockwise value in memory multiplier
-// jackal 0xbd8 0xc00 0 1 2 3 4 5 6 7 1
-// topgunbl SAME
-
-static void RotateSetGunPosRAM(UINT8 *p1, UINT8 *p2, UINT8 multiplier) {
- rotate_gunpos[0] = p1;
- rotate_gunpos[1] = p2;
- rotate_gunpos_multiplier = multiplier;
-}
-
-static INT32 get_distance(INT32 from, INT32 to) {
-// this function finds the easiest way to get from "from" to "to", wrapping at 0 and 7
- INT32 countA = 0;
- INT32 countB = 0;
- INT32 fromtmp = from / rotate_gunpos_multiplier;
- INT32 totmp = to / rotate_gunpos_multiplier;
-
- while (1) {
- fromtmp++;
- countA++;
- if(fromtmp>7) fromtmp = 0;
- if(fromtmp == totmp || countA > 32) break;
- }
-
- fromtmp = from / rotate_gunpos_multiplier;
- totmp = to / rotate_gunpos_multiplier;
-
- while (1) {
- fromtmp--;
- countB++;
- if(fromtmp<0) fromtmp = 7;
- if(fromtmp == totmp || countB > 32) break;
- }
-
- if (countA > countB) {
- return 1; // go negative
- } else {
- return 0; // go positive
- }
-}
-
-static void RotateDoTick() {
- // since the game only allows for 1 rotation every other frame, we have to
- // do this.
- if (nCurrentFrame&1) return;
-
- for (INT32 i = 0; i < 2; i++) {
- if (rotate_gunpos[i] && (nRotateTarget[i] != -1) && (nRotateTarget[i] != (*rotate_gunpos[i] & 0xff))) {
- if (get_distance(nRotateTarget[i], *rotate_gunpos[i] & 0xff)) {
- RotateRight(&nRotate[i]); // --
- } else {
- RotateLeft(&nRotate[i]); // ++
- }
- bprintf(0, _T("p%X target %X mempos %X nRotate %X.\n"), i, nRotateTarget[i], *rotate_gunpos[i] & 0xff, nRotate[i]);
- nRotateTry[i]++;
- if (nRotateTry[i] > 10) nRotateTarget[i] = -1; // don't get stuck in a loop if something goes horribly wrong here.
- } else {
- nRotateTarget[i] = -1;
- }
- }
-}
-
-static void SuperJoy2Rotate() {
- for (INT32 i = 0; i < 2; i++) { // p1 = 0, p2 = 1
- if (DrvFakeInput[4 + i]) { // rotate-button had been pressed
- UINT8 rot = Joy2Rotate(((!i) ? &DrvJoy1[0] : &DrvJoy2[0]));
- if (rot != 0xff) {
- nRotateTarget[i] = rot * rotate_gunpos_multiplier;
- }
- //DrvInput[i] &= ~0xf; // cancel out directionals since they are used to rotate here.
- DrvInputs[i] = (DrvInputs[i] & ~0xf) | (nRotateHoldInput[i] & 0xf); // for midnight resistance! be able to duck + change direction of gun.
- nRotateTry[i] = 0;
- } else { // cache joystick UDLR if the rotate button isn't pressed.
- // This feature is for Midnight Resistance, if you are crawling on the
- // ground and need to rotate your gun WITHOUT getting up.
- nRotateHoldInput[i] = DrvInputs[i];
- }
- }
-
- RotateDoTick();
-}
-
-// end Rotation-handler
-
-static void bankswitch()
-{
- INT32 banks[3] = { DrvVORAMBank * 0x1000, DrvSprRAMBank * 0x1000, DrvROMBank * 0x8000 };
-
- M6809MapMemory(DrvVORAM + banks[0], 0x2000, 0x2fff, MAP_RAM);
- M6809MapMemory(DrvSprRAM + banks[1], 0x3000, 0x3fff, MAP_RAM);
- M6809MapMemory(DrvM6809ROM0 + 0x10000 + banks[2], 0x4000, 0xbfff, MAP_ROM);
-}
-
-static void jackal_main_write(UINT16 address, UINT8 data)
-{
- if (address >= 0x0020 && address <= 0x005f) {
- DrvZRAM[(address - 0x20) + DrvZRAMBank] = data;
- return;
- }
-
- if (address >= 0x0060 && address <= 0x1fff) {
- DrvShareRAM[address] = data;
- return;
- }
-
- switch (address)
- {
- case 0x0000:
- case 0x0001:
- case 0x0002:
- case 0x0003:
- DrvVidControl[address] = data;
- return;
-
- case 0x0004:
- flipscreen = data & 0x08;
- DrvIRQEnable = data & 0x02;
- return;
-
- case 0x0019:
- watchdog = 0;
- return;
-
- case 0x001c:
- DrvSprRAMBank = (data & 0x08) >> 3;
- DrvZRAMBank = (data & 0x10) << 2; // 0x40
- DrvROMBank = (data & 0x20) >> 5;
- DrvVORAMBank = (data & 0x10) >> 4;
- bankswitch();
- return;
- }
-}
-
-static UINT8 jackal_main_read(UINT16 address)
-{
- if (address >= 0x0020 && address <= 0x005f) {
- return DrvZRAM[(address - 0x20) + DrvZRAMBank];
- }
-
- if (address >= 0x0060 && address <= 0x1fff) {
- return DrvShareRAM[address];
- }
-
- switch (address)
- {
- case 0x0000: // actually read?
- case 0x0001:
- case 0x0002:
- case 0x0003:
- return DrvVidControl[address];
-
- case 0x0010:
- return DrvDips[0];
-
- case 0x0011:
- return DrvInputs[0];
-
- case 0x0012:
- return DrvInputs[1];
-
- case 0x0013:
- return (DrvInputs[2] & 0x1f) | (DrvDips[2] & 0xe0);
-
- case 0x0014:
- case 0x0015:
- return dialRotation(address - 0x14); // rotary
-
- case 0x0018:
- return DrvDips[1];
- }
-
- return 0;
-}
-
-static void jackal_sub_write(UINT16 address, UINT8 data)
-{
- switch (address)
- {
- case 0x2000:
- BurnYM2151SelectRegister(data);
- return;
-
- case 0x2001:
- BurnYM2151WriteRegister(data);
- return;
- }
-}
-
-static UINT8 jackal_sub_read(UINT16 address)
-{
- switch (address)
- {
- case 0x2000:
- case 0x2001:
- return BurnYM2151ReadStatus();
- }
-
- return 0;
-}
-
-static INT32 DrvDoReset(INT32 clear_mem)
-{
- if (clear_mem) {
- memset (AllRam, 0, RamEnd - AllRam);
- }
-
- DrvZRAMBank = 0;
- DrvVORAMBank = 0;
- DrvSprRAMBank = 0;
- DrvROMBank = 0;
- DrvIRQEnable = 0;
- flipscreen = 0;
-
- M6809Open(0);
- bankswitch();
- M6809Reset();
- M6809Close();
-
- M6809Open(1);
- M6809Reset();
- M6809Close();
-
- BurnYM2151Reset();
-
- RotateReset();
-
- watchdog = 0;
-
- HiscoreReset();
-
- return 0;
-}
-
-static INT32 MemIndex()
-{
- UINT8 *Next; Next = AllMem;
-
- DrvM6809ROM0 = Next; Next += 0x020000;
- DrvM6809ROM1 = Next; Next += 0x010000;
-
- DrvGfxROM0 = Next; Next += 0x140000;
- DrvGfxROM1 = Next; Next += 0x180000;
- DrvGfxROM2 = Next; Next += 0x180000;
-
- DrvColPROM = Next; Next += 0x000200;
-
- DrvPaletteTab = (UINT32*)Next; Next += 0x0300 * sizeof(UINT32);
- DrvPalette = (UINT32*)Next; Next += 0x0300 * sizeof(UINT32);
-
- AllRam = Next;
-
- DrvShareRAM = Next; Next += 0x002000;
- DrvSprRAM = Next; Next += 0x004000;
- DrvZRAM = Next; Next += 0x000080;
- DrvVORAM = Next; Next += 0x002000;
- DrvPalRAM = Next; Next += 0x000400;
-
- DrvVidControl = Next; Next += 0x000004;
-
- RamEnd = Next;
-
- MemEnd = Next;
-
- return 0;
-}
-
-static INT32 DrvGfxDecode()
-{
- INT32 Planes[8] = { STEP4(0,1), STEP4(0x40000*8, 1) };
- INT32 XOffs[16] = { 0*4, 1*4, 2*4, 3*4, 4*4, 5*4, 6*4, 7*4, 32*8+0*4, 32*8+1*4, 32*8+2*4, 32*8+3*4, 32*8+4*4, 32*8+5*4, 32*8+6*4, 32*8+7*4 };
- //STEP8(0,4), STEP8(32*8, ??)
- INT32 YOffs[16] = { STEP8(0,32), STEP8(16*32,32) };
-
- UINT8 *tmp = (UINT8*)BurnMalloc(0x80000);
- if (tmp == NULL) {
- return 1;
- }
-
- memcpy (tmp, DrvGfxROM2, 0x80000);
-
- GfxDecode(0x1000, 8, 8, 8, Planes, XOffs, YOffs, 0x100, tmp, DrvGfxROM0);
-
- memcpy (tmp + 0x00000, tmp + 0x20000, 0x20000);
- memcpy (tmp + 0x20000, tmp + 0x60000, 0x20000);
-
- GfxDecode(0x0800, 4, 16, 16, Planes, XOffs, YOffs, 0x400, tmp, DrvGfxROM1);
- GfxDecode(0x2000, 4, 8, 8, Planes, XOffs, YOffs, 0x100, tmp, DrvGfxROM2);
-
- BurnFree(tmp);
-
- return 0;
-}
-
-static void DrvPaletteInit()
-{
- for (INT32 i = 0; i < 0x100; i++) {
- DrvPaletteTab[0x000 + i] = i + 0x100;
- DrvPaletteTab[0x100 + i] = DrvColPROM[0x000 + i] & 0xf;
- DrvPaletteTab[0x200 + i] = (DrvColPROM[0x100 + i] & 0xf) + 0x10;
- }
-}
-
-static INT32 DrvInit()
-{
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- if (!bootleg) {
- // Jackal
- if (BurnLoadRom(DrvM6809ROM0 + 0x10000, 0, 1)) return 1;
- if (BurnLoadRom(DrvM6809ROM0 + 0x0c000, 1, 1)) return 1;
-
- if (BurnLoadRom(DrvM6809ROM1 + 0x08000, 2, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM2 + 0x00000, 3, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x00001, 4, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x40000, 5, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x40001, 6, 2)) return 1;
-
- if (BurnLoadRom(DrvColPROM + 0x00000, 7, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x00100, 8, 1)) return 1;
- } else {
- // Bootleg
- if (BurnLoadRom(DrvM6809ROM0 + 0x10000, 0, 1)) return 1;
- if (BurnLoadRom(DrvM6809ROM0 + 0x18000, 1, 1)) return 1;
- if (BurnLoadRom(DrvM6809ROM0 + 0x0c000, 2, 1)) return 1;
-
- if (BurnLoadRom(DrvM6809ROM1 + 0x08000, 3, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM2 + 0x00000, 4, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x08000, 5, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x10000, 6, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x18000, 7, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x20000, 8, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x28000, 9, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x30000, 10, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x38000, 11, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x40000, 12, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x48000, 13, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x50000, 14, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x58000, 15, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x60000, 16, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x68000, 17, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x70000, 18, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x78000, 19, 1)) return 1;
-
- if (BurnLoadRom(DrvColPROM + 0x00000, 20, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x00100, 21, 1)) return 1;
- BurnByteswap(DrvGfxROM2, 0x80000);
- }
-
- DrvGfxDecode();
- DrvPaletteInit();
-
- M6809Init(2);
- M6809Open(0);
- M6809MapMemory(DrvShareRAM + 0x100, 0x0100, 0x1fff, MAP_RAM);
- M6809MapMemory(DrvVORAM, 0x2000, 0x2fff, MAP_RAM);
- M6809MapMemory(DrvSprRAM, 0x3000, 0x3fff, MAP_RAM);
- M6809MapMemory(DrvM6809ROM0 + 0x0c000, 0xc000, 0xffff, MAP_ROM);
- M6809SetWriteHandler(jackal_main_write);
- M6809SetReadHandler(jackal_main_read);
- M6809Close();
-
- M6809Open(1);
- M6809MapMemory(DrvPalRAM, 0x4000, 0x43ff, MAP_RAM);
- M6809MapMemory(DrvShareRAM, 0x6000, 0x7fff, MAP_RAM);
- M6809MapMemory(DrvM6809ROM1 + 0x08000, 0x8000, 0xffff, MAP_ROM);
- M6809SetWriteHandler(jackal_sub_write);
- M6809SetReadHandler(jackal_sub_read);
- M6809Close();
-
- BurnYM2151Init(3580000);
- BurnYM2151SetRoute(BURN_SND_YM2151_YM2151_ROUTE_1, 0.50, BURN_SND_ROUTE_LEFT);
- BurnYM2151SetRoute(BURN_SND_YM2151_YM2151_ROUTE_2, 0.50, BURN_SND_ROUTE_RIGHT);
-
- GenericTilesInit();
- if (game_rotates)
- RotateSetGunPosRAM(DrvShareRAM + 0xbd8, DrvShareRAM + 0xc00, 1);
- DrvDoReset(1);
-
- return 0;
-}
-
-static INT32 DrvExit()
-{
- M6809Exit();
-
- BurnYM2151Exit();
-
- GenericTilesExit();
-
- BurnFree(AllMem);
-
- bootleg = 0;
- game_rotates = 1;
-
- return 0;
-}
-
-static void DrvPaletteUpdate()
-{
- UINT32 pens[0x200];
-
- for (INT32 i = 0; i < 0x200; i++) {
- if (i >= 0x20 && i < 0x100) continue; // not used, save cycles
-
- UINT16 p = (DrvPalRAM[(i * 2)] | (DrvPalRAM[(i * 2) + 1] << 8));
-
- UINT8 r = (p >> 0) & 0x1f;
- UINT8 g = (p >> 5) & 0x1f;
- UINT8 b = (p >> 10) & 0x1f;
-
- r = (r << 3) | (r >> 2);
- g = (g << 3) | (g >> 2);
- b = (b << 3) | (b >> 2);
-
- pens[i] = BurnHighCol(r,g,b,0);
- }
-
- for (INT32 i = 0; i < 0x300; i++) {
- DrvPalette[i] = pens[DrvPaletteTab[i]];
- }
-}
-
-static void draw_layer()
-{
- INT32 layer_control = DrvVidControl[2];
-
- INT32 xscroll = DrvVidControl[1];
- INT32 yscroll = DrvVidControl[0];
-
- UINT8 *scrollram = DrvZRAM;
-
- for (INT32 offs = 0; offs < 32 * 32; offs++)
- {
- INT32 attr = DrvVORAM[0x0000 + offs];
- INT32 code = DrvVORAM[0x0400 + offs] + ((attr & 0xc0) << 2) + ((attr & 0x30) << 6);
-
- INT32 flipx = attr & 0x10;
- INT32 flipy = attr & 0x20;
-
- INT32 sy = (((offs / 0x20) & 0x1f) * 8) - layer_offset_y;
- INT32 sx = ((offs & 0x1f) * 8) - layer_offset_x;
-
- if (layer_control & 0x02) {
- if (layer_control & 0x08) {
- sx -= scrollram[(sy + layer_offset_y)/8]; // maybe apply the offset here? I guess we'll know for sure after playtesting. -dink
- sy -= yscroll;
- }
- else if (layer_control & 0x04) {
- sy -= scrollram[(sx + layer_offset_x)/8]; // offset applied here fixes the konami logo on the titlescreen. -dink
- sx -= xscroll;
- }
- } else {
- sy -= yscroll;
- sx -= xscroll;
- }
- if (sy < -7) sy += 256;
- if (sx < -7) sx += 256;
-
- if (flipy) {
- if (flipx) {
- Render8x8Tile_FlipXY_Clip(pTransDraw, code, sx, sy, 0, 8, 0, DrvGfxROM0);
- } else {
- Render8x8Tile_FlipY_Clip(pTransDraw, code, sx, sy, 0, 8, 0, DrvGfxROM0);
- }
- } else {
- if (flipx) {
- Render8x8Tile_FlipX_Clip(pTransDraw, code, sx, sy, 0, 8, 0, DrvGfxROM0);
- } else {
- Render8x8Tile_Clip(pTransDraw, code, sx, sy, 0, 8, 0, DrvGfxROM0);
- }
- }
- }
-}
-
-static void draw_sprite(INT32 bank, INT32 code, INT32 color, INT32 sx, INT32 sy, INT32 flipx, INT32 flipy)
-{
- sx -= layer_offset_x;
- sy -= layer_offset_y;
- color += (bank & 2) ? 0x20 : 0x10;
-
- if (bank & 8) // 8x8
- {
- if (flipy) {
- if (flipx) {
- Render8x8Tile_Mask_FlipXY_Clip(pTransDraw, code, sx, sy, color, 4, 0, 0, DrvGfxROM2);
- } else {
- Render8x8Tile_Mask_FlipY_Clip(pTransDraw, code, sx, sy, color, 4, 0, 0, DrvGfxROM2);
- }
- } else {
- if (flipx) {
- Render8x8Tile_Mask_FlipX_Clip(pTransDraw, code, sx, sy, color, 4, 0, 0, DrvGfxROM2);
- } else {
- Render8x8Tile_Mask_Clip(pTransDraw, code, sx, sy, color, 4, 0, 0, DrvGfxROM2);
- }
- }
- }
- else // 16x16
- {
- if (flipy) {
- if (flipx) {
- Render16x16Tile_Mask_FlipXY_Clip(pTransDraw, code, sx, sy, color, 4, 0, 0, DrvGfxROM1);
- } else {
- Render16x16Tile_Mask_FlipY_Clip(pTransDraw, code, sx, sy, color, 4, 0, 0, DrvGfxROM1);
- }
- } else {
- if (flipx) {
- Render16x16Tile_Mask_FlipX_Clip(pTransDraw, code, sx, sy, color, 4, 0, 0, DrvGfxROM1);
- } else {
- Render16x16Tile_Mask_Clip(pTransDraw, code, sx, sy, color, 4, 0, 0, DrvGfxROM1);
- }
- }
- }
-}
-
-static void draw_sprites(INT32 rambase, INT32 length, INT32 bank)
-{
- const UINT8 *sram = DrvSprRAM + rambase + ((DrvVidControl[3] & 0x08) ? 0x0800 : 0);
-
- for (INT32 offs = 0; offs < length; offs += 5)
- {
- INT32 attr = sram[offs + 4];
- INT32 sn1 = sram[offs];
- INT32 sn2 = sram[offs + 1];
- INT32 sy = sram[offs + 2];
- INT32 sx = sram[offs + 3] - ((attr & 1) << 8);
- INT32 flipx = attr & 0x20;
- INT32 flipy = attr & 0x40;
- INT32 color = sn2 >> 4;
-
- if (sy > 0xf0) sy -= 256;
-
- if (flipscreen)
- {
- sx = 240 - sx;
- sy = 240 - sy;
- flipx = !flipx;
- flipy = !flipy;
- }
-
- if (attr & 0x0c)
- {
- INT32 spritenum = sn1 * 4 + ((sn2 & 0x0c) >> 2) + ((sn2 & 3) << 10) + ((bank & 2) << 11); // was << 12 -dink
-
- INT32 mod = -8;
-
- if (flipscreen)
- {
- sx += 8;
- sy -= 8;
- mod = 8;
- }
-
- if ((attr & 0x0c) == 0x0C) // 1x1
- {
- if (flipscreen) sy += 16;
- draw_sprite(bank+8, spritenum, color, sx, sy, flipx, flipy);
- }
-
- if ((attr & 0x0c) == 0x08) // 1x2
- {
- sy += 8;
- draw_sprite(bank+8, spritenum, color, sx, sy, flipx, flipy);
- draw_sprite(bank+8, spritenum - 2, color, sx, sy + mod, flipx, flipy);
- }
-
- if ((attr & 0x0c) == 0x04) // 2x1
- {
- draw_sprite(bank+8, spritenum, color, sx, sy, flipx, flipy);
- draw_sprite(bank+8, spritenum + 1, color, sx + mod, sy, flipx, flipy);
- }
- }
- else
- {
- INT32 spritenum = sn1 + (((sn2 & 0x03) << 8) + ((bank & 2) << 9));
-
- if (attr & 0x10) // 2x2
- {
- if (flipscreen)
- {
- sx -= 16;
- sy -= 16;
- }
-
- draw_sprite(bank, spritenum, color, flipx ? sx+16 : sx, flipy ? sy+16 : sy, flipx, flipy);
- draw_sprite(bank, spritenum + 1, color, flipx ? sx : sx+16, flipy ? sy+16 : sy, flipx, flipy);
- draw_sprite(bank, spritenum + 2, color, flipx ? sx+16 : sx, flipy ? sy : sy+16, flipx, flipy);
- draw_sprite(bank, spritenum + 3, color, flipx ? sx : sx+16, flipy ? sy : sy+16, flipx, flipy);
- }
- else // 1x1
- {
- draw_sprite(bank, spritenum, color, sx, sy, flipx, flipy);
- }
- }
- }
-}
-
-static INT32 DrvDraw()
-{
- //if (DrvRecalc) {
- DrvPaletteUpdate();
- DrvRecalc = 0;
- //}
- BurnTransferClear();
- if (nBurnLayer & 2) draw_layer();
-
- if (nBurnLayer & 4) draw_sprites(0x1000, 0x0f5, 2);
- if (nBurnLayer & 8) draw_sprites(0x0000, 0x500, 0);
-
- BurnTransferCopy(DrvPalette);
-
- return 0;
-}
-
-static INT32 DrvFrame()
-{
- watchdog++;
- if (watchdog >= 180) {
- DrvDoReset(0);
- }
-
- if (DrvReset) {
- DrvDoReset(1);
- }
-
- {
- memset (DrvInputs, 0xff, 3);
- for (INT32 i = 0; i < 8; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- DrvInputs[2] ^= (DrvJoy3[i] & 1) << i;
- }
-
- if (game_rotates) {
- SuperJoy2Rotate();
- }
- }
-
- INT32 nInterleave = 100;
- INT32 nCyclesTotal[2] = { 1536000 / 60, ((1536000 * 12) / 10) / 60 };
- INT32 nSoundBufferPos = 0;
-
- M6809NewFrame();
-
- for (INT32 i = 0; i < nInterleave; i++)
- {
- M6809Open(0);
- M6809Run(nCyclesTotal[0] / nInterleave);
- if (i == (nInterleave - 1) && DrvIRQEnable)
- M6809SetIRQLine(0x00, CPU_IRQSTATUS_AUTO);
- M6809Close();
-
- M6809Open(1);
- M6809Run(nCyclesTotal[1] / nInterleave);
- if (i == (nInterleave - 1) && DrvIRQEnable)
- M6809SetIRQLine(0x20, CPU_IRQSTATUS_AUTO); // nmi
- M6809Close();
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen / nInterleave;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- BurnYM2151Render(pSoundBuf, nSegmentLength);
- nSoundBufferPos += nSegmentLength;
- }
- }
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
- if (nSegmentLength) {
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- BurnYM2151Render(pSoundBuf, nSegmentLength);
- }
- }
-
- if (pBurnDraw) {
- DrvDraw();
- }
-
- return 0;
-}
-
-static INT32 DrvScan(INT32 nAction, INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin) {
- *pnMin = 0x029737;
- }
-
- if (nAction & ACB_VOLATILE) {
- memset(&ba, 0, sizeof(ba));
- ba.Data = AllRam;
- ba.nLen = RamEnd - AllRam;
- ba.szName = "All Ram";
- BurnAcb(&ba);
-
- M6809Scan(nAction);
-
- BurnYM2151Scan(nAction);
-
- SCAN_VAR(DrvZRAMBank);
- SCAN_VAR(DrvVORAMBank);
- SCAN_VAR(DrvSprRAMBank);
- SCAN_VAR(DrvROMBank);
- SCAN_VAR(DrvIRQEnable);
- }
-
- if (nAction & ACB_WRITE) {
- M6809Open(0);
- bankswitch();
- M6809Close();
- }
-
- return 0;
-}
-
-// Jackal (World, 8-way Joystick)
-
-static struct BurnRomInfo jackalRomDesc[] = {
- { "631_v02.15d", 0x10000, 0x0b7e0584, 0 | BRF_PRG | BRF_ESS }, // 0 - M6809 #0 Code
- { "631_v03.16d", 0x04000, 0x3e0dfb83, 0 | BRF_PRG | BRF_ESS }, // 1
-
- { "631_t01.11d", 0x08000, 0xb189af6a, 1 | BRF_PRG | BRF_ESS }, // 2 - M6809 #1 Code
-
- { "631t04.7h", 0x20000, 0x457f42f0, 2 | BRF_GRA }, // 3 - Graphics Tiles
- { "631t05.8h", 0x20000, 0x732b3fc1, 2 | BRF_GRA }, // 4
- { "631t06.12h", 0x20000, 0x2d10e56e, 2 | BRF_GRA }, // 5
- { "631t07.13h", 0x20000, 0x4961c397, 2 | BRF_GRA }, // 6
-
- { "631r08.9h", 0x00100, 0x7553a172, 3 | BRF_GRA }, // 7 - Color PROMs
- { "631r09.14h", 0x00100, 0xa74dd86c, 3 | BRF_GRA }, // 8
-};
-
-STD_ROM_PICK(jackal)
-STD_ROM_FN(jackal)
-
-// Jackal (World, Rotary Joystick)
-
-static struct BurnRomInfo jackalrRomDesc[] = {
- { "631_q02.15d", 0x10000, 0xed2a7d66, 0 | BRF_PRG | BRF_ESS }, // 0 - M6809 #0 Code
- { "631_q03.16d", 0x04000, 0xb9d34836, 0 | BRF_PRG | BRF_ESS }, // 1
-
- { "631_q01.11d", 0x08000, 0x54aa2d29, 1 | BRF_PRG | BRF_ESS }, // 2 - M6809 #1 Code
-
- { "631t04.7h", 0x20000, 0x457f42f0, 2 | BRF_GRA }, // 3 - Graphics Tiles
- { "631t05.8h", 0x20000, 0x732b3fc1, 2 | BRF_GRA }, // 4
- { "631t06.12h", 0x20000, 0x2d10e56e, 2 | BRF_GRA }, // 5
- { "631t07.13h", 0x20000, 0x4961c397, 2 | BRF_GRA }, // 6
-
- { "631r08.9h", 0x00100, 0x7553a172, 3 | BRF_GRA }, // 7 - Color PROMs
- { "631r09.14h", 0x00100, 0xa74dd86c, 3 | BRF_GRA }, // 7 - Color PROMs
-};
-
-STD_ROM_PICK(jackalr)
-STD_ROM_FN(jackalr)
-
-// Tokushu Butai Jackal (Japan, 8-way Joystick)
-
-static struct BurnRomInfo jackaljRomDesc[] = {
- { "631_t02.15d", 0x10000, 0x14db6b1a, 0 | BRF_PRG | BRF_ESS }, // 0 - M6809 #0 Code
- { "631_t03.16d", 0x04000, 0xfd5f9624, 0 | BRF_PRG | BRF_ESS }, // 1
-
- { "631_t01.11d", 0x08000, 0xb189af6a, 1 | BRF_PRG | BRF_ESS }, // 2 - M6809 #1 Code
-
- { "631t04.7h", 0x20000, 0x457f42f0, 2 | BRF_GRA }, // 3 - Graphics Tiles
- { "631t05.8h", 0x20000, 0x732b3fc1, 2 | BRF_GRA }, // 4
- { "631t06.12h", 0x20000, 0x2d10e56e, 2 | BRF_GRA }, // 5
- { "631t07.13h", 0x20000, 0x4961c397, 2 | BRF_GRA }, // 6
-
- { "631r08.9h", 0x00100, 0x7553a172, 3 | BRF_GRA }, // 7 - Color PROMs
- { "631r09.14h", 0x00100, 0xa74dd86c, 3 | BRF_GRA }, // 8
-};
-
-STD_ROM_PICK(jackalj)
-STD_ROM_FN(jackalj)
-
-// Jackal (bootleg, Rotary Joystick)
-// This is based on jackalr. Was dumped from 2 different PCBs.
-
-static struct BurnRomInfo jackalblRomDesc[] = {
- { "EPR-A-3.BIN", 0x8000, 0x5fffee27, 0 | BRF_PRG | BRF_ESS }, // 0 - M6809 #0 Code
- { "EPR-A-4.BIN", 0x8000, 0x976c8431, 0 | BRF_PRG | BRF_ESS }, // 1
- { "EPR-A-2.BIN", 0x4000, 0xae2a290a, 0 | BRF_PRG | BRF_ESS }, // 2
-
- { "EPR-A-1.BIN", 0x8000, 0x54aa2d29, 1 | BRF_PRG | BRF_ESS }, // 3 - M6809 #1 Code
-
- { "EPR-A-17.BIN", 0x8000, 0xa96720b6, 2 | BRF_GRA }, // 4 - Graphics Tiles
- { "EPR-A-18.BIN", 0x8000, 0x932d0ecb, 2 | BRF_GRA }, // 5
- { "EPR-A-19.BIN", 0x8000, 0x1e3412e7, 2 | BRF_GRA }, // 6
- { "EPR-A-20.BIN", 0x8000, 0x4b0d15be, 2 | BRF_GRA }, // 7
- { "EPR-A-6.BIN", 0x8000, 0xec7141ad, 2 | BRF_GRA }, // 8
- { "EPR-A-5.BIN", 0x8000, 0xc6375c74, 2 | BRF_GRA }, // 9
- { "EPR-A-7.BIN", 0x8000, 0x03e1de04, 2 | BRF_GRA }, // 10
- { "EPR-A-8.BIN", 0x8000, 0xf946ada7, 2 | BRF_GRA }, // 11
- { "EPR-A-13.BIN", 0x8000, 0x7c29c59e, 2 | BRF_GRA }, // 12
- { "EPR-A-14.BIN", 0x8000, 0xf2bbff39, 2 | BRF_GRA }, // 13
- { "EPR-A-15.BIN", 0x8000, 0x594dbaaf, 2 | BRF_GRA }, // 14
- { "EPR-A-16.BIN", 0x8000, 0x069bf945, 2 | BRF_GRA }, // 15
- { "EPR-A-9.BIN", 0x8000, 0xc00cef79, 2 | BRF_GRA }, // 16
- { "EPR-A-10.BIN", 0x8000, 0x0aed6cd7, 2 | BRF_GRA }, // 17
- { "EPR-A-11.BIN", 0x8000, 0xa48e9f60, 2 | BRF_GRA }, // 18
- { "EPR-A-12.BIN", 0x8000, 0x79b7c71c, 2 | BRF_GRA }, // 19
-
- { "n82s129n.prom2", 0x0100, 0x7553a172, 3 | BRF_GRA }, // 20 - Color PROMs
- { "n82s129n.prom1", 0x0100, 0xa74dd86c, 3 | BRF_GRA }, // 21
-
- /* currently not used by the emulation */
- { "pal16r6cn.pal1", 0x0104, 0x9bba948f, 4 | BRF_OPT }, // 22 - Pals
- { "ampal16l8pc.pal2", 0x0104, 0x17c9de2f, 4 | BRF_OPT }, // 23
- { "ampal16r4pc.pal3", 0x0104, 0xe54cd288, 4 | BRF_OPT }, // 24
- { "pal16r8acn.pal4", 0x0104, 0x5cc45e00, 4 | BRF_OPT }, // 25
- { "pal20l8a-2cns.pal5", 0x0144, 0x00000000, 4 | BRF_OPT | BRF_NODUMP }, // 26
- { "pal20l8acns.pal6", 0x0144, 0x00000000, 4 | BRF_OPT | BRF_NODUMP }, // 27
- { "pal16l8pc.pal7", 0x0104, 0xe8cdc259, 4 | BRF_OPT }, // 28
- { "d5c121.ep1200", 0x0200, 0x00000000, 4 | BRF_OPT | BRF_NODUMP }, // 29
-};
-
-STD_ROM_PICK(jackalbl)
-STD_ROM_FN(jackalbl)
-
-// Top Gunner (US, 8-way Joystick)
-
-static struct BurnRomInfo topgunrRomDesc[] = {
- { "631_u02.15d", 0x10000, 0xf7e28426, 0 | BRF_PRG | BRF_ESS }, // 0 - M6809 #0 Code
- { "631_u03.16d", 0x04000, 0xc086844e, 0 | BRF_PRG | BRF_ESS }, // 1
-
- { "631_t01.11d", 0x08000, 0xb189af6a, 1 | BRF_PRG | BRF_ESS }, // 2 - M6809 #1 Code
-
- { "631u04.7h", 0x20000, 0x50122a12, 2 | BRF_GRA }, // 3 - Graphics Tiles
- { "631u05.8h", 0x20000, 0x6943b1a4, 2 | BRF_GRA }, // 4
- { "631u06.12h", 0x20000, 0x37dbbdb0, 2 | BRF_GRA }, // 5
- { "631u07.13h", 0x20000, 0x22effcc8, 2 | BRF_GRA }, // 6
-
- { "631r08.9h", 0x00100, 0x7553a172, 3 | BRF_GRA }, // 7 - Color PROMs
- { "631r09.14h", 0x00100, 0xa74dd86c, 3 | BRF_GRA }, // 8
-};
-
-STD_ROM_PICK(topgunr)
-STD_ROM_FN(topgunr)
-
-// Top Gunner (bootleg, Rotary Joystick)
-
-static struct BurnRomInfo topgunblRomDesc[] = {
- { "t-3.c5", 0x8000, 0x7826ad38, 0 | BRF_PRG | BRF_ESS }, // 0 - M6809 #0 Code
- { "t-4.c4", 0x8000, 0x976c8431, 0 | BRF_PRG | BRF_ESS }, // 1
- { "t-2.c6", 0x4000, 0xd53172e5, 0 | BRF_PRG | BRF_ESS }, // 2
-
- { "t-1.c14", 0x8000, 0x54aa2d29, 1 | BRF_PRG | BRF_ESS }, // 3 - M6809 #1 Code
-
- { "t-17.n12", 0x8000, 0xe8875110, 2 | BRF_GRA }, // 4 - Graphics Tiles
- { "t-18.n13", 0x8000, 0xcf14471d, 2 | BRF_GRA }, // 5
- { "t-19.n14", 0x8000, 0x46ee5dd2, 2 | BRF_GRA }, // 6
- { "t-20.n15", 0x8000, 0x3f472344, 2 | BRF_GRA }, // 7
- { "t-6.n1", 0x8000, 0x539cc48c, 2 | BRF_GRA }, // 8
- { "t-5.m1", 0x8000, 0xdbc26afe, 2 | BRF_GRA }, // 9
- { "t-7.n2", 0x8000, 0x0ecd31b1, 2 | BRF_GRA }, // 10
- { "t-8.n3", 0x8000, 0xf946ada7, 2 | BRF_GRA }, // 11
- { "t-13.n8", 0x8000, 0x5d669abb, 2 | BRF_GRA }, // 12
- { "t-14.n9", 0x8000, 0xf349369b, 2 | BRF_GRA }, // 13
- { "t-15.n10", 0x8000, 0x7c5a91dd, 2 | BRF_GRA }, // 14
- { "t-16.n11", 0x8000, 0x5ec46d8e, 2 | BRF_GRA }, // 15
- { "t-9.n4", 0x8000, 0x8269caca, 2 | BRF_GRA }, // 16
- { "t-10.n5", 0x8000, 0x25393e4f, 2 | BRF_GRA }, // 17
- { "t-11.n6", 0x8000, 0x7895c22d, 2 | BRF_GRA }, // 18
- { "t-12.n7", 0x8000, 0x15606dfc, 2 | BRF_GRA }, // 19
-
- { "631r08.bpr", 0x0100, 0x7553a172, 3 | BRF_GRA }, // 20 - Color PROMs
- { "631r09.bpr", 0x0100, 0xa74dd86c, 3 | BRF_GRA }, // 21
-};
-
-STD_ROM_PICK(topgunbl)
-STD_ROM_FN(topgunbl)
-
-INT32 DrvInitbl()
-{
- bootleg = 1;
- game_rotates = 1;
-
- return DrvInit();
-}
-
-INT32 DrvInitRo()
-{
- game_rotates = 1;
-
- return DrvInit();
-}
-
-struct BurnDriver BurnDrvJackal = {
- "jackal", NULL, NULL, NULL, "1986",
- "Jackal (World, 8-way Joystick)\0", NULL, "Konami", "Miscellaneous",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_KONAMI, GBF_VERSHOOT, 0,
- NULL, jackalRomInfo, jackalRomName, NULL, NULL, DrvInputInfo, DrvDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x300,
- 224, 240, 3, 4
-};
-
-struct BurnDriver BurnDrvJackalr = {
- "jackalr", "jackal", NULL, NULL, "1986",
- "Jackal (World, Rotary Joystick)\0", NULL, "Konami", "Miscellaneous",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_KONAMI, GBF_VERSHOOT, 0,
- NULL, jackalrRomInfo, jackalrRomName, NULL, NULL, DrvrotateInputInfo, DrvrotateDIPInfo,
- DrvInitRo, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x300,
- 224, 240, 3, 4
-};
-
-struct BurnDriver BurnDrvJackalj = {
- "jackalj", "jackal", NULL, NULL, "1986",
- "Tokushu Butai Jackal (Japan, 8-way Joystick)\0", NULL, "Konami", "Miscellaneous",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_KONAMI, GBF_VERSHOOT, 0,
- NULL, jackaljRomInfo, jackaljRomName, NULL, NULL, DrvInputInfo, DrvDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x300,
- 224, 240, 3, 4
-};
-
-struct BurnDriver BurnDrvJackalbl = {
- "jackalbl", "jackal", NULL, NULL, "1986",
- "Jackal (bootleg, Rotary Joystick)\0", NULL, "bootleg", "Miscellaneous",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_KONAMI, GBF_VERSHOOT, 0,
- NULL, jackalblRomInfo, jackalblRomName, NULL, NULL, DrvrotateInputInfo, DrvrotateDIPInfo,
- DrvInitbl, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x300,
- 224, 240, 3, 4
-};
-
-struct BurnDriver BurnDrvTopgunr = {
- "topgunr", "jackal", NULL, NULL, "1986",
- "Top Gunner (US, 8-way Joystick)\0", NULL, "Konami", "Miscellaneous",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_KONAMI, GBF_VERSHOOT, 0,
- NULL, topgunrRomInfo, topgunrRomName, NULL, NULL, DrvInputInfo, DrvDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x300,
- 224, 240, 3, 4
-};
-
-struct BurnDriver BurnDrvTopgunbl = {
- "topgunbl", "jackal", NULL, NULL, "1986",
- "Top Gunner (bootleg, Rotary Joystick)\0", NULL, "bootleg", "Miscellaneous",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_KONAMI, GBF_VERSHOOT, 0,
- NULL, topgunblRomInfo, topgunblRomName, NULL, NULL, DrvrotateInputInfo, DrvrotateDIPInfo,
- DrvInitbl, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x300,
- 224, 240, 3, 4
-};
diff --git a/jan/src/burn/drv/konami/d_jailbrek.cpp b/jan/src/burn/drv/konami/d_jailbrek.cpp
deleted file mode 100644
index 639013785..000000000
--- a/jan/src/burn/drv/konami/d_jailbrek.cpp
+++ /dev/null
@@ -1,721 +0,0 @@
-// FB Alpha Jailbreak driver module
-// Based on MAME driver by Ernesto Corvi
-
-#include "tiles_generic.h"
-#include "m6809_intf.h"
-#include "vlm5030.h"
-#include "sn76496.h"
-
-static UINT8 *AllMem;
-static UINT8 *AllRam;
-static UINT8 *RamEnd;
-static UINT8 *MemEnd;
-static UINT8 *DrvM6809ROM;
-static UINT8 *DrvM6809DecROM;
-static UINT8 *DrvGfxROM0;
-static UINT8 *DrvGfxROM1;
-static UINT8 *DrvVLMROM;
-static UINT8 *DrvColPROM;
-static UINT8 *DrvColRAM;
-static UINT8 *DrvVidRAM;
-static UINT8 *DrvSprRAM;
-static UINT8 *DrvM6809RAM0;
-static UINT8 *DrvM6809RAM1;
-static UINT8 *DrvScrxRAM;
-static UINT8 *DrvTransLut;
-
-static UINT32 *DrvPalette;
-static UINT8 DrvRecalc;
-
-static UINT8 scrolldirection;
-static UINT8 nmi_enable;
-static UINT8 irq_enable;
-static UINT8 flipscreen;
-
-static UINT8 DrvJoy1[8];
-static UINT8 DrvJoy2[8];
-static UINT8 DrvJoy3[8];
-static UINT8 DrvDips[3];
-static UINT8 DrvInputs[3];
-static UINT8 DrvReset;
-
-static INT32 watchdog;
-
-static struct BurnInputInfo JailbrekInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy1 + 0, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 3, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy2 + 2, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy2 + 3, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy2 + 0, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy2 + 1, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy2 + 4, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy2 + 5, "p1 fire 2" },
- {"P1 Button 3", BIT_DIGITAL, DrvJoy2 + 6, "p1 fire 3" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy1 + 1, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy1 + 4, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvJoy3 + 2, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy3 + 3, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy3 + 0, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy3 + 1, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy3 + 4, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy3 + 5, "p2 fire 2" },
- {"P2 Button 3", BIT_DIGITAL, DrvJoy3 + 6, "p2 fire 3" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service", BIT_DIGITAL, DrvJoy1 + 2, "service" },
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip" },
- {"Dip C", BIT_DIPSWITCH, DrvDips + 2, "dip" },
-};
-
-STDINPUTINFO(Jailbrek)
-
-static struct BurnDIPInfo JailbrekDIPList[]=
-{
- {0x14, 0xff, 0xff, 0xff, NULL },
- {0x15, 0xff, 0xff, 0x59, NULL },
- {0x16, 0xff, 0xff, 0x0f, NULL },
-
- {0 , 0xfe, 0 , 16, "Coin A" },
- {0x14, 0x01, 0x0f, 0x02, "4 Coins 1 Credits" },
- {0x14, 0x01, 0x0f, 0x05, "3 Coins 1 Credits" },
- {0x14, 0x01, 0x0f, 0x08, "2 Coins 1 Credits" },
- {0x14, 0x01, 0x0f, 0x04, "3 Coins 2 Credits" },
- {0x14, 0x01, 0x0f, 0x01, "4 Coins 3 Credits" },
- {0x14, 0x01, 0x0f, 0x0f, "1 Coin 1 Credits" },
- {0x14, 0x01, 0x0f, 0x03, "3 Coins 4 Credits" },
- {0x14, 0x01, 0x0f, 0x07, "2 Coins 3 Credits" },
- {0x14, 0x01, 0x0f, 0x0e, "1 Coin 2 Credits" },
- {0x14, 0x01, 0x0f, 0x06, "2 Coins 5 Credits" },
- {0x14, 0x01, 0x0f, 0x0d, "1 Coin 3 Credits" },
- {0x14, 0x01, 0x0f, 0x0c, "1 Coin 4 Credits" },
- {0x14, 0x01, 0x0f, 0x0b, "1 Coin 5 Credits" },
- {0x14, 0x01, 0x0f, 0x0a, "1 Coin 6 Credits" },
- {0x14, 0x01, 0x0f, 0x09, "1 Coin 7 Credits" },
- {0x14, 0x01, 0x0f, 0x00, "Free Play" },
-
- {0 , 0xfe, 0 , 16, "Coin B" },
- {0x14, 0x01, 0xf0, 0x20, "4 Coins 1 Credits" },
- {0x14, 0x01, 0xf0, 0x50, "3 Coins 1 Credits" },
- {0x14, 0x01, 0xf0, 0x80, "2 Coins 1 Credits" },
- {0x14, 0x01, 0xf0, 0x40, "3 Coins 2 Credits" },
- {0x14, 0x01, 0xf0, 0x10, "4 Coins 3 Credits" },
- {0x14, 0x01, 0xf0, 0xf0, "1 Coin 1 Credits" },
- {0x14, 0x01, 0xf0, 0x30, "3 Coins 4 Credits" },
- {0x14, 0x01, 0xf0, 0x70, "2 Coins 3 Credits" },
- {0x14, 0x01, 0xf0, 0xe0, "1 Coin 2 Credits" },
- {0x14, 0x01, 0xf0, 0x60, "2 Coins 5 Credits" },
- {0x14, 0x01, 0xf0, 0xd0, "1 Coin 3 Credits" },
- {0x14, 0x01, 0xf0, 0xc0, "1 Coin 4 Credits" },
- {0x14, 0x01, 0xf0, 0xb0, "1 Coin 5 Credits" },
- {0x14, 0x01, 0xf0, 0xa0, "1 Coin 6 Credits" },
- {0x14, 0x01, 0xf0, 0x90, "1 Coin 7 Credits" },
- {0x14, 0x01, 0xf0, 0x00, "Invalid" },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x15, 0x01, 0x03, 0x03, "1" },
- {0x15, 0x01, 0x03, 0x02, "2" },
- {0x15, 0x01, 0x03, 0x01, "3" },
- {0x15, 0x01, 0x03, 0x00, "5" },
-
- {0 , 0xfe, 0 , 2, "Cabinet" },
- {0x15, 0x01, 0x04, 0x00, "Upright" },
- {0x15, 0x01, 0x04, 0x04, "Cocktail" },
-
- {0 , 0xfe, 0 , 2, "Bonus Life" },
- {0x15, 0x01, 0x08, 0x08, "30K 70K+" },
- {0x15, 0x01, 0x08, 0x00, "40K 80K+" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x15, 0x01, 0x30, 0x30, "Easy" },
- {0x15, 0x01, 0x30, 0x20, "Normal" },
- {0x15, 0x01, 0x30, 0x10, "Difficult" },
- {0x15, 0x01, 0x30, 0x00, "Very Difficult" },
-
- {0 , 0xfe, 0 , 0, "Demo Sounds" },
- {0x15, 0x01, 0x80, 0x80, "Off" },
- {0x15, 0x01, 0x80, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x16, 0x01, 0x01, 0x01, "Off" },
- {0x16, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Upright Controls" },
- {0x16, 0x01, 0x02, 0x02, "Single" },
- {0x16, 0x01, 0x02, 0x00, "Dual" },
-};
-
-STDDIPINFO(Jailbrek)
-
-static void jailbrek_write(UINT16 address, UINT8 data)
-{
- if ((address & 0xffc0) == 0x2000) {
- DrvScrxRAM[address & 0x3f] = data;
- return;
- }
-
- switch (address)
- {
- case 0x2040:
- case 0x2041: // nop
- return;
-
- case 0x2042:
- scrolldirection = data & 4;
- return;
-
- case 0x2043: // nop
- return;
-
- case 0x2044:
- nmi_enable = data & 0x01;
- irq_enable = data & 0x02;
- // flipscreen = data & 0x08;
- return;
-
- case 0x3100:
- SN76496Write(0, data);
- return;
-
- case 0x3200:
- return; // nop
-
- case 0x3300:
- watchdog = 0;
- return;
-
- case 0x4000:
- vlm5030_st(0, (data >> 1) & 1);
- vlm5030_rst(0, (data >> 2) & 1);
- return;
-
- case 0x5000:
- vlm5030_data_write(0, data);
- return;
- }
-}
-
-static UINT8 jailbrek_read(UINT16 address)
-{
- if ((address & 0xffc0) == 0x2000) {
- return DrvScrxRAM[address & 0x3f];
- }
-
- switch (address)
- {
- case 0x3100:
- return DrvDips[1];
-
- case 0x3200:
- return DrvDips[2];
-
- case 0x3300:
- case 0x3301:
- case 0x3302:
- return DrvInputs[address & 3];
-
- case 0x3303:
- return DrvDips[0];
-
- case 0x6000:
- return (vlm5030_bsy(0) ? 1 : 0);
- }
-
- return 0;
-}
-
-static UINT32 DrvVLM5030Sync(INT32 samples_rate)
-{
- return (samples_rate * M6809TotalCycles()) / 25600;
-}
-
-static INT32 DrvDoReset(INT32 clear_mem)
-{
- if (clear_mem) {
- memset (AllRam, 0, RamEnd - AllRam);
- }
-
- M6809Open(0);
- M6809Reset();
- M6809Close();
-
- vlm5030Reset(0);
-
- watchdog = 0;
- irq_enable = 0;
- nmi_enable = 0;
- flipscreen = 0;
- scrolldirection = 0;
-
- HiscoreReset();
-
- return 0;
-}
-
-static INT32 MemIndex()
-{
- UINT8 *Next; Next = AllMem;
-
- DrvM6809ROM = Next; Next += 0x008000;
- DrvM6809DecROM = Next; Next += 0x008000;
-
- DrvGfxROM0 = Next; Next += 0x010000;
- DrvGfxROM1 = Next; Next += 0x020000;
-
- DrvVLMROM = Next; Next += 0x004000;
-
- DrvColPROM = Next; Next += 0x000240;
-
- DrvTransLut = Next; Next += 0x000100;
-
- DrvPalette = (UINT32*)Next; Next += 0x200 * sizeof(UINT32);
-
- AllRam = Next;
-
- DrvColRAM = Next; Next += 0x000800;
- DrvVidRAM = Next; Next += 0x000800;
- DrvSprRAM = Next; Next += 0x000100;
-
- DrvM6809RAM0 = Next; Next += 0x000f00;
- DrvM6809RAM1 = Next; Next += 0x000100;
-
- DrvScrxRAM = Next; Next += 0x000040;
-
- RamEnd = Next;
- MemEnd = Next;
-
- return 0;
-}
-
-static void DrvGfxExpand(UINT8 *src, INT32 len) // 64, 32
-{
- for (INT32 i = (len - 1) * 2; i >= 0; i-=2) {
- src[i+0] = src[i/2] >> 4;
- src[i+1] = src[i/2] & 0xf;
- }
-}
-
-static void DrvPaletteInit()
-{
- UINT32 pens[32];
-
- for (INT32 i = 0; i < 32; i++)
- {
- INT32 r = DrvColPROM[i + 0x00] & 0xf;
- INT32 g = DrvColPROM[i + 0x00] >> 4;
- INT32 b = DrvColPROM[i + 0x20] & 0xf;
-
- pens[i] = BurnHighCol(r+(r*16), g+(g*16), b+(b*16), 0);
- }
-
- for (INT32 i = 0; i < 0x200; i++) {
- DrvPalette[i] = pens[(DrvColPROM[i+0x40] & 0xf) | ((~i & 0x100) >> 4)];
- }
-}
-
-static void M6809Decode()
-{
- for (INT32 i = 0; i < 0x8000; i++) {
- DrvM6809DecROM[i] = DrvM6809ROM[i] ^ (((i&2)?0x80:0x20)|((i&8)?0x08:0x02));
- }
-}
-
-static INT32 DrvInit()
-{
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnDrvGetFlags() & BDF_BOOTLEG)
- {
- if (BurnLoadRom(DrvM6809ROM + 0x00000, 0, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x00000, 1, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM1 + 0x00000, 2, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x08000, 3, 1)) return 1;
-
- if (BurnLoadRom(DrvColPROM + 0x00000, 4, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x00020, 5, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x00040, 6, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x00140, 7, 1)) return 1;
-
- if (BurnLoadRom(DrvVLMROM + 0x00000, 8, 1)) return 1;
- }
- else
- {
- if (BurnLoadRom(DrvM6809ROM + 0x00000, 0, 1)) return 1;
- if (BurnLoadRom(DrvM6809ROM + 0x04000, 1, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x00000, 2, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x04000, 3, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM1 + 0x00000, 4, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x04000, 5, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x08000, 6, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x0c000, 7, 1)) return 1;
-
- if (BurnLoadRom(DrvColPROM + 0x00000, 8, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x00020, 9, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x00040, 10, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x00140, 11, 1)) return 1;
-
- if (BurnLoadRom(DrvVLMROM + 0x00000, 12, 1)) return 1;
- memcpy (DrvVLMROM, DrvVLMROM + 0x2000, 0x2000);
- }
-
- M6809Decode();
- DrvGfxExpand(DrvGfxROM0, 0x08000);
- DrvGfxExpand(DrvGfxROM1, 0x10000);
- DrvPaletteInit();
- }
-
- M6809Init(1);
- M6809Open(0);
- M6809MapMemory(DrvColRAM, 0x0000, 0x07ff, MAP_RAM);
- M6809MapMemory(DrvVidRAM, 0x0800, 0x0fff, MAP_RAM);
- M6809MapMemory(DrvSprRAM, 0x1000, 0x10ff, MAP_RAM);
- M6809MapMemory(DrvM6809RAM0, 0x1100, 0x1fff, MAP_RAM);
- M6809MapMemory(DrvM6809RAM1, 0x3000, 0x30ff, MAP_RAM);
- M6809MapMemory(DrvM6809ROM, 0x8000, 0xffff, MAP_READ);
- M6809MapMemory(DrvM6809DecROM, 0x8000, 0xffff, MAP_FETCH);
- M6809SetWriteHandler(jailbrek_write);
- M6809SetReadHandler(jailbrek_read);
- M6809Close();
-
- SN76489AInit(0, 1536000, 0);
- SN76496SetRoute(0, 1.00, BURN_SND_ROUTE_BOTH);
-
- vlm5030Init(0, 3579545, DrvVLM5030Sync, DrvVLMROM, 0x2000, 1);
- vlm5030SetAllRoutes(0, 1.00, BURN_SND_ROUTE_BOTH);
-
- GenericTilesInit();
-
- DrvDoReset(1);
-
- return 0;
-}
-
-static INT32 DrvExit()
-{
- GenericTilesExit();
-
- M6809Exit();
-
- vlm5030Exit();
- SN76496Exit();
-
- BurnFree (AllMem);
-
- return 0;
-}
-
-static void draw_layer()
-{
- for (INT32 y = 0; y < 32; y ++)
- {
- for (INT32 x = 0; x < 32; x++)
- {
- INT32 sy, sx;
-
- if (scrolldirection) { // column scroll
- sy = (y * 8) + DrvScrxRAM[x];
- sx = (x * 8);
- } else { // row scroll
- sy = (y * 8);
- sx = (x * 8) + (DrvScrxRAM[y] + ((DrvScrxRAM[y+0x20]&1)*256));
- }
-
- INT32 offs = ((sx/8)&0x3f)+(((sy/8)&0x1f)*0x40);
-
- INT32 attr = DrvColRAM[offs];
- INT32 code = DrvVidRAM[offs] + ((attr & 0xc0) << 2);
- INT32 color = attr & 0x0f;
-
- INT32 syy = ((y*8)-(sy&7))-16;
- if (syy < -7 || syy >= nScreenHeight) continue;
- INT32 sxx = ((x*8)-(sx&7))-8;
- if (sxx < -7 || sxx >= nScreenWidth) continue;
-
- Render8x8Tile_Clip(pTransDraw, code, sxx, syy, color, 4, 0, DrvGfxROM0);
- }
- }
-}
-
-static void draw_sprites()
-{
- for (INT32 i = 0; i < 0xc0; i += 4)
- {
- INT32 attr = DrvSprRAM[i + 1];
- INT32 code = DrvSprRAM[i] + ((attr & 0x40) << 2);
- INT32 color =((attr & 0x0f) * 16) | 0x100;
- INT32 flipx = attr & 0x10;
- INT32 flipy = attr & 0x20;
- INT32 sx = DrvSprRAM[i + 2] - ((attr & 0x80) << 1);
- INT32 sy = DrvSprRAM[i + 3];
-
- if (flipscreen)
- {
- sx = 240 - sx;
- sy = 240 - sy;
- flipx = !flipx;
- flipy = !flipy;
- }
-
- sy -= 16;
- sx -= 8;
-
- if (sx >= nScreenWidth || sy >= nScreenHeight) continue;
-
- if (flipy) {
- if (flipx) {
- RenderTileTranstab(pTransDraw, DrvGfxROM1, code * 4 + 3, color, 0, sx + 0, sy + 0, flipx, flipy, 8, 8, DrvColPROM + 0x40);
- RenderTileTranstab(pTransDraw, DrvGfxROM1, code * 4 + 2, color, 0, sx + 8, sy + 0, flipx, flipy, 8, 8, DrvColPROM + 0x40);
- RenderTileTranstab(pTransDraw, DrvGfxROM1, code * 4 + 1, color, 0, sx + 0, sy + 8, flipx, flipy, 8, 8, DrvColPROM + 0x40);
- RenderTileTranstab(pTransDraw, DrvGfxROM1, code * 4 + 0, color, 0, sx + 8, sy + 8, flipx, flipy, 8, 8, DrvColPROM + 0x40);
- } else {
- RenderTileTranstab(pTransDraw, DrvGfxROM1, code * 4 + 2, color, 0, sx + 0, sy + 0, flipx, flipy, 8, 8, DrvColPROM + 0x40);
- RenderTileTranstab(pTransDraw, DrvGfxROM1, code * 4 + 3, color, 0, sx + 8, sy + 0, flipx, flipy, 8, 8, DrvColPROM + 0x40);
- RenderTileTranstab(pTransDraw, DrvGfxROM1, code * 4 + 0, color, 0, sx + 0, sy + 8, flipx, flipy, 8, 8, DrvColPROM + 0x40);
- RenderTileTranstab(pTransDraw, DrvGfxROM1, code * 4 + 1, color, 0, sx + 8, sy + 8, flipx, flipy, 8, 8, DrvColPROM + 0x40);
- }
- } else {
- if (flipx) {
- RenderTileTranstab(pTransDraw, DrvGfxROM1, code * 4 + 1, color, 0, sx + 0, sy + 0, flipx, flipy, 8, 8, DrvColPROM + 0x40);
- RenderTileTranstab(pTransDraw, DrvGfxROM1, code * 4 + 0, color, 0, sx + 8, sy + 0, flipx, flipy, 8, 8, DrvColPROM + 0x40);
- RenderTileTranstab(pTransDraw, DrvGfxROM1, code * 4 + 3, color, 0, sx + 0, sy + 8, flipx, flipy, 8, 8, DrvColPROM + 0x40);
- RenderTileTranstab(pTransDraw, DrvGfxROM1, code * 4 + 2, color, 0, sx + 8, sy + 8, flipx, flipy, 8, 8, DrvColPROM + 0x40);
- } else {
- RenderTileTranstab(pTransDraw, DrvGfxROM1, code * 4 + 0, color, 0, sx + 0, sy + 0, flipx, flipy, 8, 8, DrvColPROM + 0x40);
- RenderTileTranstab(pTransDraw, DrvGfxROM1, code * 4 + 1, color, 0, sx + 8, sy + 0, flipx, flipy, 8, 8, DrvColPROM + 0x40);
- RenderTileTranstab(pTransDraw, DrvGfxROM1, code * 4 + 2, color, 0, sx + 0, sy + 8, flipx, flipy, 8, 8, DrvColPROM + 0x40);
- RenderTileTranstab(pTransDraw, DrvGfxROM1, code * 4 + 3, color, 0, sx + 8, sy + 8, flipx, flipy, 8, 8, DrvColPROM + 0x40);
- }
- }
- }
-}
-
-static INT32 DrvDraw()
-{
- if (DrvRecalc) {
- DrvPaletteInit();
- DrvRecalc = 0;
- }
-
- if (~nBurnLayer & 1) BurnTransferClear();
-
- if (nBurnLayer & 1) draw_layer();
- if (nSpriteEnable & 1) draw_sprites();
-
- BurnTransferCopy(DrvPalette);
-
- return 0;
-}
-
-static INT32 DrvFrame()
-{
- watchdog++;
- if (watchdog >= 120) {
- DrvDoReset(0);
- }
-
- if (DrvReset) {
- DrvDoReset(1);
- }
-
- M6809NewFrame();
-
- {
- memset (DrvInputs, 0xff, 3);
- for (INT32 i = 0; i < 8; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- DrvInputs[2] ^= (DrvJoy3[i] & 1) << i;
- }
- }
-
- INT32 nInterleave = 9;
- INT32 nCyclesTotal[1] = { 1536000 / 60 };
- INT32 nCyclesDone[1] = { 0 };
- INT32 nSoundBufferPos = 0;
-
- M6809Open(0);
-
- for (INT32 i = 0; i < nInterleave; i++)
- {
- nCyclesDone[0] += M6809Run(nCyclesTotal[0] / nInterleave);
-
- if (i < 8 && nmi_enable) M6809SetIRQLine(0x20, CPU_IRQSTATUS_AUTO);
-
- if (i == 8 && irq_enable) M6809SetIRQLine(0, CPU_IRQSTATUS_AUTO);
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen / nInterleave;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- SN76496Update(0, pSoundBuf, nSegmentLength);
- nSoundBufferPos += nSegmentLength;
- }
- }
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
- if (nSegmentLength) {
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- SN76496Update(0, pSoundBuf, nSegmentLength);
- }
- vlm5030Update(0, pBurnSoundOut, nBurnSoundLen);
- }
-
- M6809Close();
-
- if (pBurnDraw) {
- DrvDraw();
- }
-
- return 0;
-}
-
-static INT32 DrvScan(INT32 nAction,INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin) {
- *pnMin = 0x029704;
- }
-
- if (nAction & ACB_VOLATILE) {
- memset(&ba, 0, sizeof(ba));
- ba.Data = AllRam;
- ba.nLen = RamEnd - AllRam;
- ba.szName = "All RAM";
- BurnAcb(&ba);
- }
-
- if (nAction & ACB_DRIVER_DATA) {
- M6809Scan(nAction);
-
- vlm5030Scan(nAction);
- SN76496Scan(nAction,pnMin);
-
- SCAN_VAR(scrolldirection);
- SCAN_VAR(nmi_enable);
- SCAN_VAR(irq_enable);
- SCAN_VAR(flipscreen);
- }
-
- return 0;
-}
-
-
-// Jail Break
-
-static struct BurnRomInfo jailbrekRomDesc[] = {
- { "507p03.11d", 0x4000, 0xa0b88dfd, 1 | BRF_PRG | BRF_ESS }, // 0 M6809 Code
- { "507p02.9d", 0x4000, 0x444b7d8e, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "507l08.4f", 0x4000, 0xe3b7a226, 2 | BRF_GRA }, // 2 Tiles
- { "507j09.5f", 0x4000, 0x504f0912, 2 | BRF_GRA }, // 3
-
- { "507j04.3e", 0x4000, 0x0d269524, 3 | BRF_GRA }, // 4 Sprites
- { "507j05.4e", 0x4000, 0x27d4f6f4, 3 | BRF_GRA }, // 5
- { "507j06.5e", 0x4000, 0x717485cb, 3 | BRF_GRA }, // 6
- { "507j07.3f", 0x4000, 0xe933086f, 3 | BRF_GRA }, // 7
-
- { "507j10.1f", 0x0020, 0xf1909605, 4 | BRF_GRA }, // 8 Color Proms
- { "507j11.2f", 0x0020, 0xf70bb122, 4 | BRF_GRA }, // 9
- { "507j13.7f", 0x0100, 0xd4fe5c97, 4 | BRF_GRA }, // 10
- { "507j12.6f", 0x0100, 0x0266c7db, 4 | BRF_GRA }, // 11
-
- { "507l01.8c", 0x4000, 0x0c8a3605, 5 | BRF_SND }, // 12 VLM5030 Samples
-};
-
-STD_ROM_PICK(jailbrek)
-STD_ROM_FN(jailbrek)
-
-struct BurnDriver BurnDrvJailbrek = {
- "jailbrek", NULL, NULL, NULL, "1986",
- "Jail Break\0", NULL, "Konami", "GX507",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_KONAMI, GBF_SCRFIGHT, 0,
- NULL, jailbrekRomInfo, jailbrekRomName, NULL, NULL, JailbrekInputInfo, JailbrekDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x200,
- 240, 224, 4, 3
-};
-
-
-// Manhattan 24 Bunsyo (Japan)
-
-static struct BurnRomInfo manhatanRomDesc[] = {
- { "507n03.11d", 0x4000, 0xe5039f7e, 1 | BRF_PRG | BRF_ESS }, // 0 M6809 Code
- { "507n02.9d", 0x4000, 0x143cc62c, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "507j08.4f", 0x4000, 0x175e1b49, 2 | BRF_GRA }, // 2 Tiles
- { "507j09.5f", 0x4000, 0x504f0912, 2 | BRF_GRA }, // 3
-
- { "507j04.3e", 0x4000, 0x0d269524, 3 | BRF_GRA }, // 4 Sprites
- { "507j05.4e", 0x4000, 0x27d4f6f4, 3 | BRF_GRA }, // 5
- { "507j06.5e", 0x4000, 0x717485cb, 3 | BRF_GRA }, // 6
- { "507j07.3f", 0x4000, 0xe933086f, 3 | BRF_GRA }, // 7
-
- { "507j10.1f", 0x0020, 0xf1909605, 4 | BRF_GRA }, // 8 Color Proms
- { "507j11.2f", 0x0020, 0xf70bb122, 4 | BRF_GRA }, // 9
- { "507j13.7f", 0x0100, 0xd4fe5c97, 4 | BRF_GRA }, // 10
- { "507j12.6f", 0x0100, 0x0266c7db, 4 | BRF_GRA }, // 11
-
- { "507p01.8c", 0x4000, 0x973fa351, 5 | BRF_SND }, // 12 VLM5030 Samples
-};
-
-STD_ROM_PICK(manhatan)
-STD_ROM_FN(manhatan)
-
-struct BurnDriver BurnDrvManhatan = {
- "manhatan", "jailbrek", NULL, NULL, "1986",
- "Manhattan 24 Bunsyo (Japan)\0", NULL, "Konami", "GX507",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_KONAMI, GBF_SCRFIGHT, 0,
- NULL, manhatanRomInfo, manhatanRomName, NULL, NULL, JailbrekInputInfo, JailbrekDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x200,
- 240, 224, 4, 3
-};
-
-
-// Jail Break (bootleg)
-
-static struct BurnRomInfo jailbrekbRomDesc[] = {
- { "1.k6", 0x8000, 0xdf0e8fc7, 1 | BRF_PRG | BRF_ESS }, // 0 M6809 Code
-
- { "3.h6", 0x8000, 0xbf67a8ff, 2 | BRF_GRA }, // 1 Tiles
-
- { "5.f6", 0x8000, 0x081d2eea, 3 | BRF_GRA }, // 2 Sprites
- { "4.g6", 0x8000, 0xe34b93b8, 3 | BRF_GRA }, // 3
-
- { "prom.j2", 0x0020, 0xf1909605, 4 | BRF_GRA }, // 4 Color Proms
- { "prom.i2", 0x0020, 0xf70bb122, 4 | BRF_GRA }, // 5
- { "prom.d6", 0x0100, 0xd4fe5c97, 4 | BRF_GRA }, // 6
- { "prom.e6", 0x0100, 0x0266c7db, 4 | BRF_GRA }, // 7
-
- { "2.i6", 0x2000, 0xd91d15e3, 5 | BRF_SND }, // 8 VLM5030 Samples
-
- { "k4.bin", 0x0001, 0x00000000, 6 | BRF_NODUMP }, // 9 plds
- { "a7.bin", 0x0001, 0x00000000, 6 | BRF_NODUMP }, // 10
- { "g9.bin", 0x0001, 0x00000000, 6 | BRF_NODUMP }, // 11
- { "k8.bin", 0x0001, 0x00000000, 6 | BRF_NODUMP }, // 12
-};
-
-STD_ROM_PICK(jailbrekb)
-STD_ROM_FN(jailbrekb)
-
-struct BurnDriver BurnDrvJailbrekb = {
- "jailbrekb", "jailbrek", NULL, NULL, "1986",
- "Jail Break (bootleg)\0", NULL, "bootleg", "GX507",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_KONAMI, GBF_SCRFIGHT, 0,
- NULL, jailbrekbRomInfo, jailbrekbRomName, NULL, NULL, JailbrekInputInfo, JailbrekDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x200,
- 240, 224, 4, 3
-};
diff --git a/jan/src/burn/drv/konami/d_junofrst.cpp b/jan/src/burn/drv/konami/d_junofrst.cpp
deleted file mode 100644
index 04ab2a282..000000000
--- a/jan/src/burn/drv/konami/d_junofrst.cpp
+++ /dev/null
@@ -1,793 +0,0 @@
-// FB Alpha Juno First driver module
-// Based on MAME driver by Chris Hardy
-
-#include "tiles_generic.h"
-#include "z80_intf.h"
-#include "m6809_intf.h"
-#include "i8039.h"
-#include "driver.h"
-#include "flt_rc.h"
-#include "dac.h"
-extern "C" {
-#include "ay8910.h"
-}
-
-static UINT8 *AllMem;
-static UINT8 *MemEnd;
-static UINT8 *RamEnd;
-static UINT8 *AllRam;
-static UINT8 *DrvM6809ROM;
-static UINT8 *DrvM6809Dec;
-static UINT8 *DrvZ80ROM;
-static UINT8 *DrvI8039ROM;
-static UINT8 *DrvGfxROM0;
-static UINT8 *DrvVidRAM;
-static UINT8 *DrvZ80RAM;
-static UINT8 *DrvM6809RAM;
-static UINT8 *DrvPalRAM;
-
-static UINT8 *blitterdata;
-
-static UINT32 *DrvPalette;
-static UINT8 DrvRecalc;
-
-static INT16 *pAY8910Buffer[3];
-
-static UINT8 soundlatch;
-static UINT8 soundlatch2;
-static UINT8 i8039_status;
-static UINT8 irq_enable;
-static UINT8 irq_toggle;
-static UINT8 scroll;
-static UINT8 flipscreen;
-static UINT8 previous_sound_irq;
-static UINT8 bankdata;
-
-static UINT8 DrvJoy1[8];
-static UINT8 DrvJoy2[8];
-static UINT8 DrvJoy3[8];
-static UINT8 DrvDips[2];
-static UINT8 DrvInputs[3];
-static UINT8 DrvReset;
-static INT32 watchdog;
-
-static struct BurnInputInfo JunofrstInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy1 + 0, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 3, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy2 + 2, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy2 + 3, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy2 + 0, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy2 + 1, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy2 + 5, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy2 + 4, "p1 fire 2" },
- {"P1 Button 3", BIT_DIGITAL, DrvJoy2 + 6, "p1 fire 3" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy1 + 1, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy1 + 4, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvJoy3 + 2, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy3 + 3, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy3 + 0, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy3 + 1, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy3 + 5, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy3 + 4, "p2 fire 2" },
- {"P2 Button 3", BIT_DIGITAL, DrvJoy3 + 6, "p2 fire 3" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service", BIT_DIGITAL, DrvJoy1 + 2, "service" },
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip" },
-};
-
-STDINPUTINFO(Junofrst)
-
-static struct BurnDIPInfo JunofrstDIPList[]=
-{
- {0x14, 0xff, 0xff, 0xff, NULL },
- {0x15, 0xff, 0xff, 0x7b, NULL },
-
- {0 , 0xfe, 0 , 16, "Coin A" },
- {0x14, 0x01, 0x0f, 0x02, "4 Coins 1 Credits" },
- {0x14, 0x01, 0x0f, 0x05, "3 Coins 1 Credits" },
- {0x14, 0x01, 0x0f, 0x08, "2 Coins 1 Credits" },
- {0x14, 0x01, 0x0f, 0x04, "3 Coins 2 Credits" },
- {0x14, 0x01, 0x0f, 0x01, "4 Coins 3 Credits" },
- {0x14, 0x01, 0x0f, 0x0f, "1 Coin 1 Credits" },
- {0x14, 0x01, 0x0f, 0x03, "3 Coins 4 Credits" },
- {0x14, 0x01, 0x0f, 0x07, "2 Coins 3 Credits" },
- {0x14, 0x01, 0x0f, 0x0e, "1 Coin 2 Credits" },
- {0x14, 0x01, 0x0f, 0x06, "2 Coins 5 Credits" },
- {0x14, 0x01, 0x0f, 0x0d, "1 Coin 3 Credits" },
- {0x14, 0x01, 0x0f, 0x0c, "1 Coin 4 Credits" },
- {0x14, 0x01, 0x0f, 0x0b, "1 Coin 5 Credits" },
- {0x14, 0x01, 0x0f, 0x0a, "1 Coin 6 Credits" },
- {0x14, 0x01, 0x0f, 0x09, "1 Coin 7 Credits" },
- {0x14, 0x01, 0x0f, 0x00, "Free Play" },
-
- {0 , 0xfe, 0 , 16, "Coin B" },
- {0x14, 0x01, 0xf0, 0x20, "4 Coins 1 Credits" },
- {0x14, 0x01, 0xf0, 0x50, "3 Coins 1 Credits" },
- {0x14, 0x01, 0xf0, 0x80, "2 Coins 1 Credits" },
- {0x14, 0x01, 0xf0, 0x40, "3 Coins 2 Credits" },
- {0x14, 0x01, 0xf0, 0x10, "4 Coins 3 Credits" },
- {0x14, 0x01, 0xf0, 0xf0, "1 Coin 1 Credits" },
- {0x14, 0x01, 0xf0, 0x30, "3 Coins 4 Credits" },
- {0x14, 0x01, 0xf0, 0x70, "2 Coins 3 Credits" },
- {0x14, 0x01, 0xf0, 0xe0, "1 Coin 2 Credits" },
- {0x14, 0x01, 0xf0, 0x60, "2 Coins 5 Credits" },
- {0x14, 0x01, 0xf0, 0xd0, "1 Coin 3 Credits" },
- {0x14, 0x01, 0xf0, 0xc0, "1 Coin 4 Credits" },
- {0x14, 0x01, 0xf0, 0xb0, "1 Coin 5 Credits" },
- {0x14, 0x01, 0xf0, 0xa0, "1 Coin 6 Credits" },
- {0x14, 0x01, 0xf0, 0x90, "1 Coin 7 Credits" },
- {0x14, 0x01, 0xf0, 0x00, "No Coin B" },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x15, 0x01, 0x03, 0x03, "3" },
- {0x15, 0x01, 0x03, 0x02, "4" },
- {0x15, 0x01, 0x03, 0x01, "5" },
- {0x15, 0x01, 0x03, 0x00, "256 (Cheat)" },
-
- {0 , 0xfe, 0 , 2, "Cabinet" },
- {0x15, 0x01, 0x04, 0x00, "Upright" },
- {0x15, 0x01, 0x04, 0x04, "Cocktail" },
-
- {0 , 0xfe, 0 , 8, "Difficulty" },
- {0x15, 0x01, 0x70, 0x70, "1 (Easiest)" },
- {0x15, 0x01, 0x70, 0x60, "2" },
- {0x15, 0x01, 0x70, 0x50, "3" },
- {0x15, 0x01, 0x70, 0x40, "4" },
- {0x15, 0x01, 0x70, 0x30, "5" },
- {0x15, 0x01, 0x70, 0x20, "6" },
- {0x15, 0x01, 0x70, 0x10, "7" },
- {0x15, 0x01, 0x70, 0x00, "8 (Hardest)" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x15, 0x01, 0x80, 0x80, "Off" },
- {0x15, 0x01, 0x80, 0x00, "On" }
-};
-
-STDDIPINFO(Junofrst)
-
-static void blitter_write(INT32 offset, UINT8 data)
-{
- blitterdata[offset] = data;
-
- if (offset == 3)
- {
- UINT8 *gfx_rom = DrvGfxROM0;
-
- UINT16 src = ((blitterdata[2] << 8) | blitterdata[3]) & 0xfffc;
- UINT16 dest = (blitterdata[0] << 8) | blitterdata[1];
-
- INT32 copy = blitterdata[3] & 0x01;
-
- for (INT32 i = 0; i < 16; i++)
- {
- for (INT32 j = 0; j < 16; j++)
- {
- UINT8 gfxdata = (gfx_rom[src / 2] >> ((~src & 1) * 4)) & 0xf;
-
- src += 1;
-
- if (gfxdata)
- {
- if (copy == 0) gfxdata = 0;
-
- if (dest & 1)
- DrvVidRAM[dest / 2] = (DrvVidRAM[dest / 2] & 0x0f) + (gfxdata << 4);
- else
- DrvVidRAM[dest / 2] = (DrvVidRAM[dest / 2] & 0xf0) + (gfxdata);
- }
-
- dest += 1;
- }
-
- dest += 240;
- }
- }
-}
-
-static void bankswitch(INT32 data)
-{
- bankdata = data;
-
- M6809MapMemory(DrvM6809ROM + 0x10000 + ((data & 0xf) * 0x1000), 0x9000, 0x9fff, MAP_READ);
- M6809MapMemory(DrvM6809Dec + 0x10000 + ((data & 0xf) * 0x1000), 0x9000, 0x9fff, MAP_FETCH);
-}
-
-static void junofrst_main_write(UINT16 address, UINT8 data)
-{
- if ((address & 0xfff0) == 0x8000) {
- DrvPalRAM[address & 0xf] = data;
- return;
- }
-
- switch (address)
- {
- case 0x8030:
- irq_enable = data & 1;
- if (irq_enable == 0) M6809SetIRQLine(0, CPU_IRQSTATUS_NONE);
- return;
-
- case 0x8031:
- case 0x8032:
- // coin counter
- return;
-
- case 0x8033:
- scroll = data;
- return;
-
- case 0x8034:
- case 0x8035:
- flipscreen = data & 1;
- return;
-
- case 0x8040:
- if (previous_sound_irq == 0 && data == 1) {
- ZetSetVector(0xff);
- ZetSetIRQLine(0, CPU_IRQSTATUS_HOLD);
- }
- previous_sound_irq = data;
- return;
-
- case 0x8050:
- soundlatch = data;
- return;
-
- case 0x8060:
- bankswitch(data);
- return;
-
- case 0x8070:
- case 0x8071:
- case 0x8072:
- case 0x8073:
- blitter_write(address & 3, data);
- return;
- }
-}
-
-static UINT8 junofrst_main_read(UINT16 address)
-{
- switch (address)
- {
- case 0x8010:
- return DrvDips[1];
-
- case 0x801c:
- watchdog = 0;
- return 0;
-
- case 0x8020:
- return DrvInputs[0];
-
- case 0x8024:
- return DrvInputs[1];
-
- case 0x8028:
- return DrvInputs[2];
-
- case 0x802c:
- return DrvDips[0];
- }
-
- return 0;
-}
-
-static void __fastcall junofrst_sound_write(UINT16 address, UINT8 data)
-{
- switch (address)
- {
- case 0x4000:
- AY8910Write(0, 0, data);
- return;
-
- case 0x4002:
- AY8910Write(0, 1, data);
- return;
-
- case 0x5000:
- soundlatch2 = data;
- return;
-
- case 0x6000:
- I8039SetIrqState(1);
- return;
- }
-}
-
-static UINT8 __fastcall junofrst_sound_read(UINT16 address)
-{
- switch (address)
- {
- case 0x3000:
- return soundlatch;
-
- case 0x4001:
- return AY8910Read(0);
- }
-
- return 0;
-}
-
-static UINT8 __fastcall junofrst_i8039_read(UINT32 address)
-{
- return DrvI8039ROM[address & 0x0fff];
-}
-
-static void __fastcall junofrst_i8039_write_port(UINT32 port, UINT8 data)
-{
- switch (port & 0x1ff)
- {
- case I8039_p1:
- DACWrite(0, data);
- return;
-
- case I8039_p2:
- if ((data & 0x80) == 0)
- I8039SetIrqState(0);
- i8039_status = (data & 0x70) >> 4;
- return;
- }
-}
-
-static UINT8 __fastcall junofrst_i8039_read_port(UINT32 port)
-{
- if ((port & 0x1ff) < 0x100) {
- return soundlatch2;
- }
-
- return 0;
-}
-
-static UINT8 AY8910_0_portA(UINT32)
-{
- return (((ZetTotalCycles() / 512) & 0xf) * 0x10) + i8039_status;
-}
-
-static void filter_write(INT32 num, UINT8 d)
-{
- INT32 C = 0;
- if (d & 2) C += 220000;
- if (d & 1) C += 47000;
-
- filter_rc_set_RC(num, FLT_RC_LOWPASS, 1000, 2200, 200, CAP_P(C));
-}
-
-static void AY8910_0_portBwrite(UINT32 /*port*/, UINT32 data)
-{
- if (ZetGetActive() == -1) return;
-
- filter_write(0, (data >> 0) & 3);
- filter_write(1, (data >> 2) & 3);
- filter_write(2, (data >> 4) & 3);
-}
-
-static INT32 DrvSyncDAC()
-{
- return (INT32)(float)(nBurnSoundLen * (ZetTotalCycles() / (1789750.0000 / (nBurnFPS / 100.0000))));
-}
-
-static INT32 DrvDoReset(INT32 clear_mem)
-{
- if (clear_mem) {
- memset (AllRam, 0, RamEnd - AllRam);
-
- soundlatch = 0;
- soundlatch2 = 0;
- i8039_status = 0;
- irq_enable = 0;
- irq_toggle = 0;
- scroll = 0;
- flipscreen = 0;
- previous_sound_irq = 0;
- }
-
- M6809Open(0);
- bankswitch(0);
- M6809Reset();
- M6809Close();
-
- ZetOpen(0);
- ZetReset();
- ZetClose();
-
- I8039Reset();
-
- DACReset();
-
- AY8910Reset(0);
-
- watchdog = 0;
-
- return 0;
-}
-
-static INT32 MemIndex()
-{
- UINT8 *Next; Next = AllMem;
-
- DrvM6809ROM = Next; Next += 0x020000;
- DrvM6809Dec = Next; Next += 0x020000;
-
- DrvZ80ROM = Next; Next += 0x001000;
-
- DrvI8039ROM = Next; Next += 0x001000;
-
- DrvGfxROM0 = Next; Next += 0x008000;
-
- DrvPalette = (UINT32*)Next; Next += 0x0010 * sizeof(UINT32);
-
- AllRam = Next;
-
- DrvVidRAM = Next; Next += 0x008000;
- DrvZ80RAM = Next; Next += 0x000400;
- DrvPalRAM = Next; Next += 0x000010;
-
- DrvM6809RAM = Next; Next += 0x000f00;
-
- blitterdata = Next; Next += 0x000004;
-
- RamEnd = Next;
-
- pAY8910Buffer[0] = (INT16*)Next; Next += nBurnSoundLen * sizeof(INT16);
- pAY8910Buffer[1] = (INT16*)Next; Next += nBurnSoundLen * sizeof(INT16);
- pAY8910Buffer[2] = (INT16*)Next; Next += nBurnSoundLen * sizeof(INT16);
-
- MemEnd = Next;
-
- return 0;
-}
-
-static void M6809Decode()
-{
- for (INT32 i = 0; i < 0x20000; i++)
- {
- DrvM6809Dec[i] = DrvM6809ROM[i] ^ ((i & 2) ? 0x80 : 0x20) ^ ((i & 8) ? 0x08 : 0x02);
- }
-}
-
-static INT32 DrvInit()
-{
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(DrvM6809ROM + 0x0a000, 0, 1)) return 1;
- if (BurnLoadRom(DrvM6809ROM + 0x0c000, 1, 1)) return 1;
- if (BurnLoadRom(DrvM6809ROM + 0x0e000, 2, 1)) return 1;
- if (BurnLoadRom(DrvM6809ROM + 0x10000, 3, 1)) return 1;
- if (BurnLoadRom(DrvM6809ROM + 0x12000, 4, 1)) return 1;
- if (BurnLoadRom(DrvM6809ROM + 0x14000, 5, 1)) return 1;
- if (BurnLoadRom(DrvM6809ROM + 0x16000, 6, 1)) return 1;
- if (BurnLoadRom(DrvM6809ROM + 0x18000, 7, 1)) return 1;
- if (BurnLoadRom(DrvM6809ROM + 0x1a000, 8, 1)) return 1;
-
- if (BurnLoadRom(DrvZ80ROM + 0x00000, 9, 1)) return 1;
-
- if (BurnLoadRom(DrvI8039ROM + 0x00000, 10, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x00000, 11, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x02000, 12, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x04000, 13, 1)) return 1;
-
- M6809Decode();
- }
-
- M6809Init(1);
- M6809Open(0);
- M6809MapMemory(DrvVidRAM, 0x0000, 0x7fff, MAP_RAM);
- M6809MapMemory(DrvM6809RAM, 0x8100, 0x8fff, MAP_RAM);
- M6809MapMemory(DrvM6809ROM + 0xa000, 0xa000, 0xffff, MAP_READ);
- M6809MapMemory(DrvM6809Dec + 0xa000, 0xa000, 0xffff, MAP_FETCH);
- M6809SetWriteHandler(junofrst_main_write);
- M6809SetReadHandler(junofrst_main_read);
- M6809Close();
-
- ZetInit(0);
- ZetOpen(0);
- ZetMapMemory(DrvZ80ROM, 0x0000, 0x0fff, MAP_ROM);
- ZetMapMemory(DrvZ80RAM, 0x2000, 0x23ff, MAP_RAM);
- ZetSetWriteHandler(junofrst_sound_write);
- ZetSetReadHandler(junofrst_sound_read);
- ZetClose();
-
- I8039Init(NULL);
- I8039SetProgramReadHandler(junofrst_i8039_read);
- I8039SetCPUOpReadHandler(junofrst_i8039_read);
- I8039SetCPUOpReadArgHandler(junofrst_i8039_read);
- I8039SetIOReadHandler(junofrst_i8039_read_port);
- I8039SetIOWriteHandler(junofrst_i8039_write_port);
-
- DACInit(0, 0, 1, DrvSyncDAC);
- DACSetRoute(0, 0.50, BURN_SND_ROUTE_BOTH);
-
- AY8910Init(0, 1789750, nBurnSoundRate, AY8910_0_portA, NULL, NULL, &AY8910_0_portBwrite);
- AY8910SetAllRoutes(0, 0.15, BURN_SND_ROUTE_BOTH);
-
- filter_rc_init(0, FLT_RC_LOWPASS, 1000, 2200, 200, CAP_P(0), 0);
- filter_rc_init(1, FLT_RC_LOWPASS, 1000, 2200, 200, CAP_P(0), 1);
- filter_rc_init(2, FLT_RC_LOWPASS, 1000, 2200, 200, CAP_P(0), 1);
- filter_rc_set_src_gain(0, 1.00);
- filter_rc_set_src_gain(1, 1.00);
- filter_rc_set_src_gain(2, 1.00);
- filter_rc_set_route(0, 0.30, BURN_SND_ROUTE_BOTH);
- filter_rc_set_route(1, 0.30, BURN_SND_ROUTE_BOTH);
- filter_rc_set_route(2, 0.30, BURN_SND_ROUTE_BOTH);
-
- GenericTilesInit();
-
- DrvDoReset(1);
-
- return 0;
-}
-
-static INT32 DrvExit()
-{
- GenericTilesExit();
-
- M6809Exit();
- ZetExit();
- I8039Exit();
-
- DACExit();
-
- AY8910Exit(0);
- filter_rc_exit();
-
- BurnFree (AllMem);
-
- return 0;
-}
-
-static void DrvPaletteUpdate()
-{
- for (INT32 i = 0; i < 16; i++) // BBGGGRRR
- {
- INT32 r = (DrvPalRAM[i] & 0x07);
- INT32 g = (DrvPalRAM[i] & 0x38) >> 3;
- INT32 b = (DrvPalRAM[i] & 0xc0) >> 6;
-
- r = (r << 5) + (r << 2) + (r >> 1);
- g = (g << 5) + (g << 2) + (g >> 1);
- b += (b << 2) + (b << 4) + (b << 6);
-
- DrvPalette[i] = BurnHighCol(r,g,b,0);
- }
-}
-
-static void draw_bitmap()
-{
- int xorx = flipscreen ? 255 : 0;
- int xory = flipscreen ? 255 : 0;
-
- for (int y = 16; y < 240; y++)
- {
- UINT16 *dst = pTransDraw + ((y - 16) * nScreenWidth);
-
- for (int x = 0; x < 256; x++)
- {
- UINT8 effx = x ^ xorx;
- UINT8 effy = (y ^ xory) + ((effx < 192) ? scroll : 0);
-
- dst[x] = (DrvVidRAM[effy * 128 + effx / 2] >> (4 * (effx % 2))) & 0xf;
- }
- }
-}
-
-static INT32 DrvDraw()
-{
- if (DrvRecalc) {
- DrvPaletteUpdate();
- DrvRecalc = 1;
- }
-
- draw_bitmap();
-
- BurnTransferCopy(DrvPalette);
-
- return 0;
-}
-
-static INT32 DrvFrame()
-{
- watchdog++;
- if (watchdog >= 180) {
- DrvDoReset(0);
- }
-
- if (DrvReset) {
- DrvDoReset(1);
- }
-
- {
- memset (DrvInputs, 0xff, 3);
- for (INT32 i = 0; i < 8; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- DrvInputs[2] ^= (DrvJoy3[i] & 1) << i;
- }
- }
-
- ZetNewFrame();
- I8039NewFrame();
-
- INT32 nInterleave = 256;
- INT32 nCyclesTotal[3] = { 1536000 / 60, 1789750 / 60, 8000000 / 15 / 60 };
- INT32 nCyclesDone[3] = { 0, 0, 0 };
- INT32 nSoundBufferPos = 0;
-
- M6809Open(0);
- ZetOpen(0);
-
- for (INT32 i = 0; i < nInterleave; i++)
- {
- INT32 nNext;
-
- nNext = (nCyclesTotal[0] * (i + 1)) / nInterleave;
- nCyclesDone[0] += M6809Run(nNext - nCyclesDone[0]);
- if (i == 240-1 && (irq_toggle ^= 1) && irq_enable) {
- M6809SetIRQLine(0, CPU_IRQSTATUS_ACK);
- }
-
- nNext = (nCyclesTotal[1] * (i + 1)) / nInterleave;
- nCyclesDone[1] += ZetRun(nNext - nCyclesDone[1]);
-
- nNext = (nCyclesTotal[2] * (i + 1)) / nInterleave;
- nCyclesDone[2] += I8039Run(nNext - nCyclesDone[2]);
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen / nInterleave;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- AY8910Render(&pAY8910Buffer[0], pSoundBuf, nSegmentLength, 0);
- nSoundBufferPos += nSegmentLength;
- filter_rc_update(0, pAY8910Buffer[0], pSoundBuf, nSegmentLength);
- filter_rc_update(1, pAY8910Buffer[1], pSoundBuf, nSegmentLength);
- filter_rc_update(2, pAY8910Buffer[2], pSoundBuf, nSegmentLength);
- }
- }
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- if (nSegmentLength) {
- AY8910Render(&pAY8910Buffer[0], pSoundBuf, nSegmentLength, 0);
-
- filter_rc_update(0, pAY8910Buffer[0], pSoundBuf, nSegmentLength);
- filter_rc_update(1, pAY8910Buffer[1], pSoundBuf, nSegmentLength);
- filter_rc_update(2, pAY8910Buffer[2], pSoundBuf, nSegmentLength);
- }
- DACUpdate(pBurnSoundOut, nBurnSoundLen);
- }
-
- M6809Close();
- ZetClose();
-
- if (pBurnDraw) {
- DrvDraw();
- }
-
- return 0;
-}
-
-static INT32 DrvScan(INT32 nAction, INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin) {
- *pnMin = 0x029704;
- }
-
- if (nAction & ACB_VOLATILE) {
- memset(&ba, 0, sizeof(ba));
- ba.Data = AllRam;
- ba.nLen = RamEnd - AllRam;
- ba.szName = "All RAM";
- BurnAcb(&ba);
- }
-
- if (nAction & ACB_DRIVER_DATA) {
- ZetScan(nAction);
- M6809Scan(nAction);
- I8039Scan(nAction,pnMin);
-
- AY8910Scan(nAction, pnMin);
- DACScan(nAction, pnMin);
-
- SCAN_VAR(soundlatch);
- SCAN_VAR(soundlatch2);
- SCAN_VAR(i8039_status);
- SCAN_VAR(irq_enable);
- SCAN_VAR(irq_toggle);
- SCAN_VAR(scroll);
- SCAN_VAR(flipscreen);
- SCAN_VAR(previous_sound_irq);
- SCAN_VAR(bankdata);
- }
-
- if (nAction & ACB_WRITE) {
- M6809Open(0);
- bankswitch(bankdata);
- M6809Close();
- }
-
- return 0;
-}
-
-
-// Juno First
-
-static struct BurnRomInfo junofrstRomDesc[] = {
- { "jfa_b9.bin", 0x2000, 0xf5a7ab9d, 1 | BRF_PRG | BRF_ESS }, // 0 M6809 Code
- { "jfb_b10.bin", 0x2000, 0xf20626e0, 1 | BRF_PRG | BRF_ESS }, // 1
- { "jfc_a10.bin", 0x2000, 0x1e7744a7, 1 | BRF_PRG | BRF_ESS }, // 2
- { "jfc1_a4.bin", 0x2000, 0x03ccbf1d, 1 | BRF_PRG | BRF_ESS }, // 3
- { "jfc2_a5.bin", 0x2000, 0xcb372372, 1 | BRF_PRG | BRF_ESS }, // 4
- { "jfc3_a6.bin", 0x2000, 0x879d194b, 1 | BRF_PRG | BRF_ESS }, // 5
- { "jfc4_a7.bin", 0x2000, 0xf28af80b, 1 | BRF_PRG | BRF_ESS }, // 6
- { "jfc5_a8.bin", 0x2000, 0x0539f328, 1 | BRF_PRG | BRF_ESS }, // 7
- { "jfc6_a9.bin", 0x2000, 0x1da2ad6e, 1 | BRF_PRG | BRF_ESS }, // 8
-
- { "jfs1_j3.bin", 0x1000, 0x235a2893, 2 | BRF_PRG | BRF_ESS }, // 9 Z80 Code
-
- { "jfs2_p4.bin", 0x1000, 0xd0fa5d5f, 3 | BRF_PRG | BRF_ESS }, // 10 I8039 Code
-
- { "jfs3_c7.bin", 0x2000, 0xaeacf6db, 4 | BRF_GRA }, // 11 Blitter data
- { "jfs4_d7.bin", 0x2000, 0x206d954c, 4 | BRF_GRA }, // 12
- { "jfs5_e7.bin", 0x2000, 0x1eb87a6e, 4 | BRF_GRA }, // 13
-};
-
-STD_ROM_PICK(junofrst)
-STD_ROM_FN(junofrst)
-
-struct BurnDriver BurnDrvJunofrst = {
- "junofrst", NULL, NULL, NULL, "1983",
- "Juno First\0", NULL, "Konami", "GX310",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED, 2, HARDWARE_PREFIX_KONAMI, GBF_VERSHOOT, 0,
- NULL, junofrstRomInfo, junofrstRomName, NULL, NULL, JunofrstInputInfo, JunofrstDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x10,
- 224, 256, 3, 4
-};
-
-
-// Juno First (Gottlieb)
-
-static struct BurnRomInfo junofrstgRomDesc[] = {
- { "jfg_a.9b", 0x2000, 0x8f77d1c5, 1 | BRF_PRG | BRF_ESS }, // 0 M6809 Code
- { "jfg_b.10b", 0x2000, 0xcd645673, 1 | BRF_PRG | BRF_ESS }, // 1
- { "jfg_c.10a", 0x2000, 0x47852761, 1 | BRF_PRG | BRF_ESS }, // 2
- { "jfgc1.4a", 0x2000, 0x90a05ae6, 1 | BRF_PRG | BRF_ESS }, // 3
- { "jfc2_a5.bin", 0x2000, 0xcb372372, 1 | BRF_PRG | BRF_ESS }, // 4
- { "jfc3_a6.bin", 0x2000, 0x879d194b, 1 | BRF_PRG | BRF_ESS }, // 5
- { "jfgc4.7a", 0x2000, 0xe8864a43, 1 | BRF_PRG | BRF_ESS }, // 6
- { "jfc5_a8.bin", 0x2000, 0x0539f328, 1 | BRF_PRG | BRF_ESS }, // 7
- { "jfc6_a9.bin", 0x2000, 0x1da2ad6e, 1 | BRF_PRG | BRF_ESS }, // 8
-
- { "jfs1_j3.bin", 0x1000, 0x235a2893, 2 | BRF_PRG | BRF_ESS }, // 9 Z80 Code
-
- { "jfs2_p4.bin", 0x1000, 0xd0fa5d5f, 3 | BRF_PRG | BRF_ESS }, // 10 I8039 Code
-
- { "jfs3_c7.bin", 0x2000, 0xaeacf6db, 4 | BRF_GRA }, // 11 Blitter data
- { "jfs4_d7.bin", 0x2000, 0x206d954c, 4 | BRF_GRA }, // 12
- { "jfs5_e7.bin", 0x2000, 0x1eb87a6e, 4 | BRF_GRA }, // 13
-};
-
-STD_ROM_PICK(junofrstg)
-STD_ROM_FN(junofrstg)
-
-struct BurnDriver BurnDrvJunofrstg = {
- "junofrstg", "junofrst", NULL, NULL, "1983",
- "Juno First (Gottlieb)\0", NULL, "Konami (Gottlieb license)", "GX310",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED, 2, HARDWARE_PREFIX_KONAMI, GBF_VERSHOOT, 0,
- NULL, junofrstgRomInfo, junofrstgRomName, NULL, NULL, JunofrstInputInfo, JunofrstDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x10,
- 224, 256, 3, 4
-};
-
diff --git a/jan/src/burn/drv/konami/d_kontest.cpp b/jan/src/burn/drv/konami/d_kontest.cpp
deleted file mode 100644
index 0793eb2e9..000000000
--- a/jan/src/burn/drv/konami/d_kontest.cpp
+++ /dev/null
@@ -1,360 +0,0 @@
-// FB Alpha Konami Test Board (GX800) driver module
-// Based on MAME driver by Angelo Salese
-
-#include "tiles_generic.h"
-#include "z80_intf.h"
-#include "sn76496.h"
-
-static UINT8 *AllMem;
-static UINT8 *MemEnd;
-static UINT8 *AllRam;
-static UINT8 *RamEnd;
-static UINT8 *DrvZ80ROM;
-static UINT8 *DrvColPROM;
-static UINT8 *DrvColRAM;
-static UINT8 *DrvVidRAM;
-static UINT8 *DrvTileRAM;
-static UINT8 *DrvTileRAMExp;
-
-static UINT8 *irq_enable;
-
-static UINT32 *DrvPalette;
-static UINT8 DrvRecalc;
-
-static UINT8 DrvJoy1[8];
-static UINT8 DrvJoy2[8];
-static UINT8 DrvJoy3[8];
-static UINT8 DrvJoy4[8];
-static UINT8 DrvInputs[4];
-static UINT8 DrvDips[1];
-static UINT8 DrvReset;
-
-static struct BurnInputInfo DrvInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy3 + 4, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy3 + 3, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy1 + 0, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy1 + 1, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy1 + 2, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy1 + 3, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy3 + 0, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy3 + 1, "p1 fire 2" },
- {"P1 Button 3", BIT_DIGITAL, DrvJoy3 + 2, "p1 fire 3" },
-
- {"P2 Start", BIT_DIGITAL, DrvJoy4 + 3, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvJoy2 + 0, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy2 + 1, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy2 + 2, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy2 + 3, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy4 + 0, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy4 + 1, "p2 fire 2" },
- {"P2 Button 3", BIT_DIGITAL, DrvJoy4 + 2, "p2 fire 3" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service 1", BIT_DIGITAL, DrvJoy3 + 6, "service" },
- {"Service 2", BIT_DIGITAL, DrvJoy3 + 7, "service" },
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
-};
-
-STDINPUTINFO(Drv)
-
-static struct BurnDIPInfo DrvDIPList[]=
-{
- {0x14, 0xff, 0xff, 0x80, NULL },
-
- {0 , 0xfe, 0 , 2, "Orientation" },
- {0x14, 0x01, 0x80, 0x80, "Horizontal" },
- {0x14, 0x01, 0x80, 0x00, "Vertical" },
-};
-
-STDDIPINFO(Drv)
-
-static inline void DrvExpandTile(INT32 offset, UINT8 data)
-{
- DrvTileRAMExp[offset * 4 + 0] = ((data >> 3) & 0x01) | ((data >> 6) & 0x02);
- DrvTileRAMExp[offset * 4 + 1] = ((data >> 2) & 0x01) | ((data >> 5) & 0x02);
- DrvTileRAMExp[offset * 4 + 2] = ((data >> 1) & 0x01) | ((data >> 4) & 0x02);
- DrvTileRAMExp[offset * 4 + 3] = ((data >> 0) & 0x01) | ((data >> 3) & 0x02);
-}
-
-static void __fastcall kontest_write(UINT16 address, UINT8 data)
-{
- if ((address & 0xf000) == 0xf000) {
- DrvTileRAM[address & 0x0fff] = data;
- DrvExpandTile(address & 0x0fff, data);
- return;
- }
-}
-
-static void __fastcall kontest_write_port(UINT16 port, UINT8 data)
-{
- switch (port & 0xff)
- {
- case 0x00:
- SN76496Write(0, data);
- return;
-
- case 0x04:
- SN76496Write(1, data);
- return;
-
- case 0x08:
- *irq_enable = data & 0x08;
- ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
- return;
- }
-}
-
-static UINT8 __fastcall kontest_read_port(UINT16 port)
-{
- switch (port & 0xff)
- {
- case 0x0c:
- case 0x0d:
- case 0x0e:
- case 0x0f:
- return DrvInputs[port & 0x03];
- }
-
- return 0;
-}
-
-static INT32 MemIndex()
-{
- UINT8 *Next; Next = AllMem;
-
- DrvZ80ROM = Next; Next += 0x008000;
-
- DrvColPROM = Next; Next += 0x000020;
-
- DrvPalette = (UINT32*)Next; Next += 0x0020 * sizeof(UINT32);
-
- DrvTileRAMExp = Next; Next += 0x004000;
-
- AllRam = Next;
-
- DrvColRAM = Next; Next += 0x000800;
- DrvVidRAM = Next; Next += 0x000800;
- DrvTileRAM = Next; Next += 0x001000;
-
- irq_enable = Next; Next += 0x000001;
-
- RamEnd = Next;
-
- MemEnd = Next;
-
- return 0;
-}
-
-static INT32 DrvDoReset()
-{
- memset (AllRam, 0, RamEnd - AllRam);
-
- ZetOpen(0);
- ZetReset();
- ZetClose();
-
- return 0;
-}
-
-static void DrvPaletteInit()
-{
- for (INT32 i = 0; i < 0x20; i++)
- {
- INT32 bit0 = 0;
- INT32 bit1 = (DrvColPROM[i] >> 6) & 0x01;
- INT32 bit2 = (DrvColPROM[i] >> 7) & 0x01;
- INT32 b = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
-
- bit0 = (DrvColPROM[i] >> 3) & 0x01;
- bit1 = (DrvColPROM[i] >> 4) & 0x01;
- bit2 = (DrvColPROM[i] >> 5) & 0x01;
- INT32 g = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
-
- bit0 = (DrvColPROM[i] >> 0) & 0x01;
- bit1 = (DrvColPROM[i] >> 1) & 0x01;
- bit2 = (DrvColPROM[i] >> 2) & 0x01;
- INT32 r = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
-
- DrvPalette[i] = BurnHighCol(r, g, b, 0);
- }
-}
-
-static INT32 DrvInit()
-{
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(DrvZ80ROM , 0, 1)) return 1;
-
- if (BurnLoadRom(DrvColPROM, 1, 1)) return 1;
-
- DrvPaletteInit();
- }
-
- ZetInit(0);
- ZetOpen(0);
- ZetMapArea(0x0000, 0x7fff, 0, DrvZ80ROM);
- ZetMapArea(0x0000, 0x7fff, 2, DrvZ80ROM);
- ZetMapArea(0xe000, 0xe7ff, 0, DrvColRAM);
- ZetMapArea(0xe000, 0xe7ff, 1, DrvColRAM);
- ZetMapArea(0xe000, 0xe7ff, 2, DrvColRAM);
- ZetMapArea(0xe800, 0xefff, 0, DrvVidRAM);
- ZetMapArea(0xe800, 0xefff, 1, DrvVidRAM);
- ZetMapArea(0xe800, 0xefff, 2, DrvVidRAM);
- ZetMapArea(0xf000, 0xffff, 0, DrvTileRAM);
-// ZetMapArea(0xf000, 0xffff, 1, DrvTileRAM);
- ZetMapArea(0xf000, 0xffff, 2, DrvTileRAM);
- ZetSetWriteHandler(kontest_write);
- ZetSetOutHandler(kontest_write_port);
- ZetSetInHandler(kontest_read_port);
- ZetClose();
-
- SN76489AInit(0, 1500000, 0);
- SN76489AInit(1, 1500000, 1);
-
- SN76496SetRoute(0, 0.60, BURN_SND_ROUTE_RIGHT);
- SN76496SetRoute(1, 0.50, BURN_SND_ROUTE_LEFT);
-
- GenericTilesInit();
-
- DrvDoReset();
-
- return 0;
-}
-
-static INT32 DrvExit()
-{
- GenericTilesExit();
-
- ZetExit();
- SN76496Exit();
-
- BurnFree(AllMem);
-
- return 0;
-}
-
-static void DrawLayer()
-{
- for (INT32 offs = 0; offs < 32 * 64; offs++)
- {
- INT32 sx = (offs & 0x3f) * 8;
- INT32 sy = (offs / 0x40) * 8;
-
- INT32 code = DrvVidRAM[offs];
- INT32 color = DrvColRAM[(offs & 0x3f) + ((offs & 0x780) / 2)] & 0x07;
-
- if (sx < 256 || sy < 16 || sy >= 240) continue;
-
- Render8x8Tile(pTransDraw, code, sx - 256, sy - 16, color, 2, 0, DrvTileRAMExp);
- }
-}
-
-static INT32 DrvDraw()
-{
- if (DrvRecalc) {
- DrvPaletteInit();
- DrvRecalc = 0;
- }
-
- DrawLayer();
-
- BurnTransferCopy(DrvPalette);
-
- return 0;
-}
-
-static INT32 DrvFrame()
-{
- if (DrvReset) {
- DrvDoReset();
- }
-
- {
- memset (DrvInputs, 0xff, 4 * sizeof(UINT8));
-
- for (INT32 i = 0; i < 8; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- DrvInputs[2] ^= (DrvJoy3[i] & 1) << i;
- DrvInputs[3] ^= (DrvJoy4[i] & 1) << i;
- }
-
- DrvInputs[2] = (DrvInputs[2] & 0x7f) | (DrvDips[0] & 0x80);
- }
-
- ZetOpen(0);
- ZetRun(3000000 / 60);
-
- if (*irq_enable)
- ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
-
- ZetClose();
-
- if (pBurnSoundOut) {
- SN76496Update(0, pBurnSoundOut, nBurnSoundLen);
- SN76496Update(1, pBurnSoundOut, nBurnSoundLen);
- }
-
- if (pBurnDraw) {
- DrvDraw();
- }
-
- return 0;
-}
-
-static INT32 DrvScan(INT32 nAction, INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin) {
- *pnMin = 0x029521;
- }
-
- if (nAction & ACB_VOLATILE) {
- memset(&ba, 0, sizeof(ba));
-
- ba.Data = AllRam;
- ba.nLen = RamEnd - AllRam;
- ba.szName = "All Ram";
- BurnAcb(&ba);
-
- ZetScan(nAction);
- SN76496Scan(nAction, pnMin);
- }
-
- if (nAction & ACB_WRITE) {
- for (INT32 i = 0; i < 0x1000; i++) {
- DrvExpandTile(i, DrvTileRAM[i]);
- }
- }
-
- return 0;
-}
-
-
-// Konami Test Board (GX800, Japan)
-
-static struct BurnRomInfo kontestRomDesc[] = {
- { "800b01.10d", 0x8000, 0x520f83dc, 1 | BRF_PRG | BRF_ESS }, // 0 Z80 Code
-
- { "800a02.4f", 0x0020, 0x6d604171, 2 | BRF_GRA }, // 1 Color PROM
-};
-
-STD_ROM_PICK(kontest)
-STD_ROM_FN(kontest)
-
-struct BurnDriver BurnDrvKontest = {
- "kontest", NULL, NULL, NULL, "1987?",
- "Konami Test Board (GX800, Japan)\0", NULL, "Konami", "GX800",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_PREFIX_KONAMI, GBF_MISC, 0,
- NULL, kontestRomInfo, kontestRomName, NULL, NULL, DrvInputInfo, DrvDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x20,
- 256, 224, 4, 3
-};
diff --git a/jan/src/burn/drv/konami/d_labyrunr.cpp b/jan/src/burn/drv/konami/d_labyrunr.cpp
deleted file mode 100644
index 2aee3399c..000000000
--- a/jan/src/burn/drv/konami/d_labyrunr.cpp
+++ /dev/null
@@ -1,885 +0,0 @@
-// FB Alpha Labyrinth Runner driver module
-// Based on MAME driver by Nicola Salmoria
-
-/*
- To do:
- Timing seems a bit off (can hear some gaps in sound due to this)
- Some graphics modes may be incomplete. Need save states to fix these.
-*/
-
-#include "tiles_generic.h"
-#include "hd6309_intf.h"
-#include "burn_ym2203.h"
-#include "konamiic.h"
-
-static UINT8 *AllMem;
-static UINT8 *MemEnd;
-static UINT8 *AllRam;
-static UINT8 *RamEnd;
-static UINT8 *DrvHD6309ROM;
-static UINT8 *DrvGfxROM;
-static UINT8 *DrvLutPROM;
-static UINT8 *DrvLookUpTable;
-static UINT8 *DrvSprTranspLut;
-static UINT8 *DrvHD6309RAM;
-static UINT8 *DrvPalRAM;
-static UINT8 *DrvSprRAM;
-static UINT8 *DrvVidRAM0;
-static UINT8 *DrvVidRAM1;
-static UINT8 *DrvScrollRAM;
-static UINT8 *K007121CtrlRAM;
-static UINT8 *DrvTransTab;
-
-static UINT32 *DrvPalette;
-static UINT8 DrvRecalc;
-
-static INT32 HD6309Bank;
-
-static UINT8 DrvJoy1[8];
-static UINT8 DrvJoy2[8];
-static UINT8 DrvJoy3[8];
-static UINT8 DrvDips[3];
-static UINT8 DrvInputs[3];
-static UINT8 DrvReset;
-
-static INT32 DrvPalWritten = 0;
-static INT32 watchdog = 0;
-
-static struct BurnInputInfo LabyrunrInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy3 + 0, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 7, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy1 + 2, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy1 + 3, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy1 + 0, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy1 + 1, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy1 + 4, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy1 + 5, "p1 fire 2" },
- {"P1 Button 3", BIT_DIGITAL, DrvJoy1 + 6, "p1 fire 3" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy3 + 1, "p2 coin" },
- {"P2 Up", BIT_DIGITAL, DrvJoy2 + 2, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy2 + 3, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy2 + 0, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy2 + 1, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy2 + 4, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy2 + 5, "p2 fire 2" },
- {"P2 Button 3", BIT_DIGITAL, DrvJoy2 + 6, "p2 fire 3" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service", BIT_DIGITAL, DrvJoy3 + 2, "service" },
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip" },
- {"Dip C", BIT_DIPSWITCH, DrvDips + 2, "dip" },
-};
-
-STDINPUTINFO(Labyrunr)
-
-static struct BurnDIPInfo LabyrunrDIPList[]=
-{
- {0x13, 0xff, 0xff, 0xff, NULL },
- {0x14, 0xff, 0xff, 0x5a, NULL },
- {0x15, 0xff, 0xff, 0xf7, NULL },
-
- {0 , 0xfe, 0 , 16, "Coin A" },
- {0x13, 0x01, 0x0f, 0x02, "4 Coins 1 Credits" },
- {0x13, 0x01, 0x0f, 0x05, "3 Coins 1 Credits" },
- {0x13, 0x01, 0x0f, 0x08, "2 Coins 1 Credits" },
- {0x13, 0x01, 0x0f, 0x04, "3 Coins 2 Credits" },
- {0x13, 0x01, 0x0f, 0x01, "4 Coins 3 Credits" },
- {0x13, 0x01, 0x0f, 0x0f, "1 Coin 1 Credits" },
- {0x13, 0x01, 0x0f, 0x03, "3 Coins 4 Credits" },
- {0x13, 0x01, 0x0f, 0x07, "2 Coins 3 Credits" },
- {0x13, 0x01, 0x0f, 0x0e, "1 Coin 2 Credits" },
- {0x13, 0x01, 0x0f, 0x06, "2 Coins 5 Credits" },
- {0x13, 0x01, 0x0f, 0x0d, "1 Coin 3 Credits" },
- {0x13, 0x01, 0x0f, 0x0c, "1 Coin 4 Credits" },
- {0x13, 0x01, 0x0f, 0x0b, "1 Coin 5 Credits" },
- {0x13, 0x01, 0x0f, 0x0a, "1 Coin 6 Credits" },
- {0x13, 0x01, 0x0f, 0x09, "1 Coin 7 Credits" },
- {0x13, 0x01, 0x0f, 0x00, "Free Play" },
-
- {0 , 0xfe, 0 , 16, "Coin B" },
- {0x13, 0x01, 0xf0, 0x20, "4 Coins 1 Credits" },
- {0x13, 0x01, 0xf0, 0x50, "3 Coins 1 Credits" },
- {0x13, 0x01, 0xf0, 0x80, "2 Coins 1 Credits" },
- {0x13, 0x01, 0xf0, 0x40, "3 Coins 2 Credits" },
- {0x13, 0x01, 0xf0, 0x10, "4 Coins 3 Credits" },
- {0x13, 0x01, 0xf0, 0xf0, "1 Coin 1 Credits" },
- {0x13, 0x01, 0xf0, 0x30, "3 Coins 4 Credits" },
- {0x13, 0x01, 0xf0, 0x70, "2 Coins 3 Credits" },
- {0x13, 0x01, 0xf0, 0xe0, "1 Coin 2 Credits" },
- {0x13, 0x01, 0xf0, 0x60, "2 Coins 5 Credits" },
- {0x13, 0x01, 0xf0, 0xd0, "1 Coin 3 Credits" },
- {0x13, 0x01, 0xf0, 0xc0, "1 Coin 4 Credits" },
- {0x13, 0x01, 0xf0, 0xb0, "1 Coin 5 Credits" },
- {0x13, 0x01, 0xf0, 0xa0, "1 Coin 6 Credits" },
- {0x13, 0x01, 0xf0, 0x90, "1 Coin 7 Credits" },
- {0x13, 0x01, 0xf0, 0x00, "None" },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x14, 0x01, 0x03, 0x03, "2" },
- {0x14, 0x01, 0x03, 0x02, "3" },
- {0x14, 0x01, 0x03, 0x01, "5" },
- {0x14, 0x01, 0x03, 0x00, "7" },
-
- {0 , 0xfe, 0 , 2, "Cabinet" },
- {0x14, 0x01, 0x04, 0x00, "Upright" },
- {0x14, 0x01, 0x04, 0x04, "Cocktail" },
-
- {0 , 0xfe, 0 , 4, "Bonus Life" },
- {0x14, 0x01, 0x18, 0x18, "30000 70000" },
- {0x14, 0x01, 0x18, 0x10, "40000 80000" },
- {0x14, 0x01, 0x18, 0x08, "40000" },
- {0x14, 0x01, 0x18, 0x00, "50000" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x14, 0x01, 0x60, 0x60, "Easy" },
- {0x14, 0x01, 0x60, 0x40, "Normal" },
- {0x14, 0x01, 0x60, 0x20, "Hard" },
- {0x14, 0x01, 0x60, 0x00, "Hardest" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x14, 0x01, 0x80, 0x80, "Off" },
- {0x14, 0x01, 0x80, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x15, 0x01, 0x01, 0x01, "Off" },
- {0x15, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Upright Controls" },
- {0x15, 0x01, 0x02, 0x02, "Single" },
- {0x15, 0x01, 0x02, 0x00, "Dual" },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x15, 0x01, 0x04, 0x04, "Off" },
- {0x15, 0x01, 0x04, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Allow Continue" },
- {0x15, 0x01, 0x08, 0x08, "3 Times" },
- {0x15, 0x01, 0x08, 0x00, "5 Times" },
-};
-
-STDDIPINFO(Labyrunr)
-
-static void bankswitch(INT32 data)
-{
- if (data != HD6309Bank) {
- HD6309Bank = data;
- HD6309MapMemory(DrvHD6309ROM + 0x10000 + ((HD6309Bank & 7) * 0x4000), 0x4000, 0x7fff, MAP_ROM);
- }
-}
-
-static void labyrunr_write(UINT16 address, UINT8 data)
-{
- if ((address & 0xfff8) == 0x0000) {
- K007121CtrlRAM[address & 7] = data;
- return;
- }
-
- if (address >= 0x0020 && address <= 0x005f) {
- DrvScrollRAM[address - 0x0020] = data;
- return;
- }
-
- if ((address & 0xffe0) == 0x0d00) {
- K051733Write(address & 0x1f, data);
- return;
- }
-
- if ((address & 0xff00) == 0x1000) { // Speed-up
- if (data != DrvPalRAM[address & 0xff]) {
- DrvPalRAM[address & 0xff] = data;
- DrvPalWritten = 1;
- }
- return;
- }
-
- switch (address)
- {
- case 0x0800:
- BurnYM2203Write(0, 1, data);
- return;
-
- case 0x0801:
- BurnYM2203Write(0, 0, data);
- return;
-
- case 0x0900:
- BurnYM2203Write(1, 1, data);
- return;
-
- case 0x0901:
- BurnYM2203Write(1, 0, data);
- return;
-
- case 0x0c00:
- bankswitch(data);
- return;
-
- case 0x0e00:
- watchdog = 0;
- return;
- }
-}
-
-static UINT8 labyrunr_read(UINT16 address)
-{
- if ((address & 0xfff8) == 0x0000) {
- return K007121CtrlRAM[address & 7];
- }
-
- if (address >= 0x0020 && address <= 0x005f) {
- return DrvScrollRAM[address - 0x0020];
- }
-
- if ((address & 0xffe0) == 0x0d00) {
- return K051733Read(address & 0x1f);
- }
-
- switch (address)
- {
- case 0x0800:
- return BurnYM2203Read(0, 1);
-
- case 0x0801:
- return BurnYM2203Read(0, 0);
-
- case 0x0900:
- return BurnYM2203Read(1, 1);
-
- case 0x0901:
- return BurnYM2203Read(1, 0);
-
- case 0x0a00:
- return DrvInputs[1];
-
- case 0x0a01:
- return DrvInputs[0];
-
- case 0x0b00:
- return DrvInputs[2];
- }
-
- return 0;
-}
-
-static UINT8 ym2203_0_read_portA(UINT32 )
-{
- return DrvDips[0];
-}
-
-static UINT8 ym2203_0_read_portB(UINT32 )
-{
- return DrvDips[1];
-}
-
-static UINT8 ym2203_1_read_portB(UINT32 )
-{
- return DrvDips[2];
-}
-
-static INT32 DrvSynchroniseStream(INT32 nSoundRate)
-{
- return (INT64)HD6309TotalCycles() * nSoundRate / 3000000;
-}
-
-static double DrvGetTime()
-{
- return (double)HD6309TotalCycles() / 3000000;
-}
-
-static INT32 DrvDoReset(INT32 full_reset)
-{
- if (full_reset) {
- memset (AllRam, 0, RamEnd - AllRam);
- }
-
- HD6309Open(0);
- HD6309Reset();
- HD6309Bank = -1;
- bankswitch(0);
- BurnYM2203Reset();
- HD6309Close();
-
- K051733Reset();
-
- DrvPalWritten = 1;
- watchdog = 0;
-
- HiscoreReset();
-
- return 0;
-}
-
-static INT32 MemIndex()
-{
- UINT8 *Next; Next = AllMem;
-
- DrvHD6309ROM = Next; Next += 0x028000;
-
- DrvGfxROM = Next; Next += 0x080000;
-
- DrvLutPROM = Next; Next += 0x000100;
-
- DrvLookUpTable = Next; Next += 0x000800;
- DrvSprTranspLut = Next; Next += 0x000800;
- DrvTransTab = Next; Next += 0x002000;
-
- DrvPalette = (UINT32*)Next; Next += 0x801 * sizeof(UINT32);
-
- AllRam = Next;
-
- DrvHD6309RAM = Next; Next += 0x000800;
- DrvPalRAM = Next; Next += 0x000100;
-
- DrvSprRAM = Next; Next += 0x001000;
- DrvVidRAM1 = Next; Next += 0x000800;
- DrvVidRAM0 = Next; Next += 0x000800;
- DrvScrollRAM = Next; Next += 0x000040;
-
- K007121CtrlRAM = Next; Next += 0x000008;
-
- RamEnd = Next;
- MemEnd = Next;
-
- return 0;
-}
-
-static void DrvGfxExpand(UINT8 *src, INT32 len)
-{
- for (INT32 i = (len - 1) * 2; i >= 0; i-=2) {
- src[i+0] = src[i/2] >> 4;
- src[i+1] = src[i/2] & 0xf;
- }
-
- for (INT32 i = 0; i < len * 2; i+=0x40) {
- DrvTransTab[i/0x40] = 1;
- for (INT32 j = 0; j < 0x40; j++) {
- if (src[i+j]) {
- DrvTransTab[i/0x40] = 0;
- break;
- }
- }
- }
-}
-
-static void DrvExpandLookupTable()
-{
- // Calculate color lookup tables
- for (INT32 pal = 0; pal < 8; pal+=2)
- {
- for (INT32 i = 0; i < 0x100; i++)
- {
- DrvLookUpTable[((pal+1) << 8) | i] = ((pal+1) << 4) | (i & 0xf);
- DrvLookUpTable[((pal+0) << 8) | i] = ((DrvLutPROM[i] == 0) ? 0 : ((pal << 4) | (DrvLutPROM[i] & 0x0f)));
- }
- }
-
- // Calculate sprite transparency lookups
- for (INT32 i = 0; i < 0x800; i++) {
- DrvSprTranspLut[i] = DrvLookUpTable[i] & 0xf;
- }
-}
-
-static INT32 CommonInit(INT32 nLoadType)
-{
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(DrvHD6309ROM + 0x10000, 0, 1)) return 1;
- memcpy (DrvHD6309ROM, DrvHD6309ROM + 0x18000, 0x08000);
- if (BurnLoadRom(DrvHD6309ROM + 0x18000, 1, 1)) return 1;
-
- if (nLoadType == 0) {
- if (BurnLoadRom(DrvGfxROM + 0x00001, 2, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM + 0x00000, 3, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM + 0x20001, 4, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM + 0x20000, 5, 2)) return 1;
-
- if (BurnLoadRom(DrvLutPROM, 6, 1)) return 1;
- } else {
- if (BurnLoadRom(DrvGfxROM + 0x00000, 2, 1)) return 1;
- BurnByteswap(DrvGfxROM, 0x40000);
-
- if (BurnLoadRom(DrvLutPROM, 3, 1)) return 1;
- }
-
- DrvGfxExpand(DrvGfxROM, 0x40000);
- DrvExpandLookupTable();
- }
-
- HD6309Init(0);
- HD6309Open(0);
- HD6309MapMemory(DrvPalRAM, 0x1000, 0x10ff, MAP_ROM);
- HD6309MapMemory(DrvHD6309RAM, 0x1800, 0x1fff, MAP_RAM);
- HD6309MapMemory(DrvSprRAM, 0x2000, 0x2fff, MAP_RAM);
- HD6309MapMemory(DrvVidRAM0, 0x3000, 0x37ff, MAP_RAM);
- HD6309MapMemory(DrvVidRAM1, 0x3800, 0x3fff, MAP_RAM);
- HD6309MapMemory(DrvHD6309ROM, 0x8000, 0xffff, MAP_ROM);
- HD6309SetWriteHandler(labyrunr_write);
- HD6309SetReadHandler(labyrunr_read);
- HD6309Close();
-
- BurnYM2203Init(2, 3000000, NULL, DrvSynchroniseStream, DrvGetTime, 0);
- BurnYM2203SetPorts(0, &ym2203_0_read_portA, &ym2203_0_read_portB, NULL, NULL);
- BurnYM2203SetPorts(1, NULL, &ym2203_1_read_portB, NULL, NULL);
- BurnTimerAttachHD6309(3000000);
- BurnYM2203SetAllRoutes(0, 0.80, BURN_SND_ROUTE_BOTH);
- BurnYM2203SetAllRoutes(1, 0.80, BURN_SND_ROUTE_BOTH);
- BurnYM2203SetPSGVolume(0, 0.80);
- BurnYM2203SetPSGVolume(1, 0.80);
-
- GenericTilesInit();
-
- DrvDoReset(1);
-
- return 0;
-}
-
-static INT32 DrvInit() { return CommonInit(0); }
-static INT32 DrvInit2() { return CommonInit(1); }
-
-static INT32 DrvExit()
-{
- BurnYM2203Exit();
-
- HD6309Exit();
-
- GenericTilesExit();
-
- BurnFree (AllMem);
-
- return 0;
-}
-
-static void draw_layer(INT32 layer)
-{
- UINT8 *vidram;
-
- INT32 c1 = K007121CtrlRAM[1];
- INT32 c3 = K007121CtrlRAM[3];
- INT32 c4 = K007121CtrlRAM[4];
- INT32 c5 = K007121CtrlRAM[5];
- INT32 c6 = K007121CtrlRAM[6];
-
- INT32 b0 = ((c5 >> 0) & 3) + 2;
- INT32 b1 = ((c5 >> 2) & 3) + 1;
- INT32 b2 = ((c5 >> 4) & 3) + 0;
- INT32 b3 = ((c5 >> 6) & 3) - 1;
-
- INT32 xscroll_enable = 1;
- INT32 yscroll_enable = ~c3 & 0x20;
-
- INT32 scrollx = K007121CtrlRAM[0];
- INT32 scrolly = K007121CtrlRAM[2];
-
- INT32 mask = c4 >> 4;
-
- INT32 opaque = 0;
- INT32 min_x = 0;
- INT32 max_x = nScreenWidth;
- INT32 x_offset = 0;
-
- if (layer == 1)
- {
- vidram = DrvVidRAM1;
-
- if (yscroll_enable)
- {
- opaque = 1;
- yscroll_enable = xscroll_enable = 0;
- max_x = 40;
- }
- else
- {
- scrollx -= 40;
-
- if (c1 & 0x01)
- {
- if (scrollx < 40) min_x = (40 - scrollx) - 1;
- max_x = nScreenWidth - scrollx + 8;
- }
- else
- {
- min_x = nScreenWidth - scrollx + 8;
- max_x = nScreenWidth;
- }
- }
- }
- else
- {
- x_offset = 40;
- min_x = 40;
- vidram = DrvVidRAM0;
-
- if (yscroll_enable) {
- opaque = 1;
- max_x = 264; // ?? why?
- }
- else
- {
- if (c1 & 0x01)
- {
- min_x = (nScreenWidth - scrollx + 8) - 1;
- max_x = nScreenWidth;
-
- }
- else
- {
- if (scrollx < 40) min_x = (40 - scrollx) - 1;
- max_x = nScreenWidth - scrollx + 8;
- }
- }
- }
-
- for (INT32 offs = 0; offs < 32 * 32; offs++)
- {
- INT32 sx = (offs & 0x1f) * 8;
- INT32 sy = (offs / 0x20) * 8;
-
- if (yscroll_enable) {
- sy -= scrolly;
- if (sy < -7) sy += 256;
- }
-
- if (xscroll_enable) {
- sx -= scrollx;
- if (sx < -7) sx += 256;
- }
-
- sx += x_offset;
- sy -= 16;
-
- if (sx <= (min_x-8) || sx >= max_x) continue;
-
- INT32 attr = vidram[offs];
- INT32 code = vidram[offs + 0x400];
-
- INT32 bank = ((attr >> 7) & 1) | ((attr >> b0) & 2) | ((attr >> b1) & 4) | ((attr >> b2) & 8) | ((attr >> b3) & 0x10) | ((c3 & 1) << 5);
-
- code += ((bank & ~(mask << 1)) | ((c4 & mask) << 1)) << 8;
-
- INT32 color = ((c6 & 0x30) << 1) | (attr & 7) | 0x10;
-
- {
- if (DrvTransTab[code&0x1fff] && !opaque) continue;
-
- UINT8 *gfx = DrvGfxROM + (code & 0x1fff) * 0x40;
- color<<=4;
-
- for (INT32 y = 0; y < 8; y++) {
- for (INT32 x = 0; x < 8; x++) {
- if ((sy+y) < 0 || (sy+y) >= nScreenHeight || (sx+x) < min_x || (sx+x) >= max_x) continue;
-
- INT32 pxl = gfx[(y*8)+x];
-
- if (pxl || opaque) {
- pTransDraw[(sy+y)*nScreenWidth+(sx+x)] = pxl+color;
- }
- }
- }
- }
- }
-}
-
-static void k007121_sprites_draw(UINT8 *gfx, UINT32 */*palette*/, UINT8 *source, int base_color, int global_x_offset, int bank_base, UINT32 /*pri_mask*/)
-{
- INT32 flipscreen = K007121CtrlRAM[7] & 0x08;
-
- for (INT32 i = 0; i < 0x40; i++)
- {
- int number = source[0];
- int sprite_bank = source[1] & 0x0f;
- int sx = source[3];
- int sy = source[2];
- int attr = source[4];
- int xflip = source[4] & 0x10;
- int yflip = source[4] & 0x20;
- int color = base_color + ((source[1] & 0xf0) >> 4);
- int width, height;
- static const int x_offset[4] = {0x0,0x1,0x4,0x5};
- static const int y_offset[4] = {0x0,0x2,0x8,0xa};
- int x,y, ex, ey, flipx, flipy, destx, desty;
-
- if (attr & 0x01) sx -= 256;
- if (sy >= 240) sy -= 256;
-
- number += ((sprite_bank & 0x3) << 8) + ((attr & 0xc0) << 4);
- number = number << 2;
- number += (sprite_bank >> 2) & 3;
-
- {
- number += bank_base;
-
- switch (attr & 0xe)
- {
- case 0x06: width = height = 1; break;
- case 0x04: width = 1; height = 2; number &= (~2); break;
- case 0x02: width = 2; height = 1; number &= (~1); break;
- case 0x00: width = height = 2; number &= (~3); break;
- case 0x08: width = height = 4; number &= (~3); break;
- default: width = 1; height = 1;
- }
-
- for (y = 0; y < height; y++)
- {
- for (x = 0; x < width; x++)
- {
- ex = xflip ? (width - 1 - x) : x;
- ey = yflip ? (height - 1 - y) : y;
-
- if (flipscreen)
- {
- flipx = !xflip;
- flipy = !yflip;
- destx = 248 - (sx + x * 8);
- desty = 248 - (sy + y * 8);
- }
- else
- {
- flipx = xflip;
- flipy = yflip;
- destx = global_x_offset + sx + x * 8;
- desty = sy + y * 8;
- }
-
- if (!DrvTransTab[(number + x_offset[ex] + y_offset[ey])&0x1fff])
- RenderTileTranstab(pTransDraw, gfx, (number + x_offset[ex] + y_offset[ey])&0x1fff, color<<4, 0, destx, desty - 16, flipx, flipy, 8, 8, DrvSprTranspLut);
- }
- }
- }
-
- source += 5;
- }
-}
-
-static void DrvPaletteInit()
-{
- UINT32 pens[0x80];
-
- UINT16 *pal = (UINT16*)DrvPalRAM;
-
- for (INT32 i = 0; i < 0x100/2; i++) {
- UINT16 p = (pal[i] << 8) | (pal[i] >> 8);
-
- INT32 b = (p >> 10) & 0x1f;
- INT32 g = (p >> 5) & 0x1f;
- INT32 r = (p >> 0) & 0x1f;
-
- r = (r << 3) | (r >> 2);
- g = (g << 3) | (g >> 2);
- b = (b << 3) | (b >> 2);
-
- pens[i] = BurnHighCol(r,g,b,0);
- }
-
- for (INT32 i = 0; i < 0x800; i++) {
- DrvPalette[i] = pens[DrvLookUpTable[i]];
- }
-
- DrvPalette[0x800] = BurnHighCol(0,0,0,0); // black
-}
-
-static INT32 DrvDraw()
-{
- if (DrvPalWritten || DrvRecalc) {
- DrvRecalc = 0;
- DrvPalWritten = 0;
- DrvPaletteInit();
- }
-
- for (INT32 i = 0; i < nScreenWidth * nScreenHeight; i++) {
- pTransDraw[i] = 0x800;
- }
-
- INT32 c3 = K007121CtrlRAM[3] & 0x40;
-
- if (nBurnLayer & 1) draw_layer(0);
- if (nSpriteEnable & 1 && c3) k007121_sprites_draw(DrvGfxROM, DrvPalette, DrvSprRAM, (K007121CtrlRAM[6] & 0x30) * 2, 40,0, (K007121CtrlRAM[3] & 0x40) >> 5);
- if (nBurnLayer & 2) draw_layer(1);
- if (nSpriteEnable & 1 && !c3) k007121_sprites_draw(DrvGfxROM, DrvPalette, DrvSprRAM, (K007121CtrlRAM[6] & 0x30) * 2, 40,0, (K007121CtrlRAM[3] & 0x40) >> 5);
-
- BurnTransferCopy(DrvPalette);
-
- return 0;
-}
-
-static INT32 DrvFrame()
-{
- watchdog++;
- if (watchdog >= 180) {
- DrvDoReset(0);
- }
-
- if (DrvReset) {
- DrvDoReset(1);
- }
-
- HD6309NewFrame();
-
- {
- memset (DrvInputs, 0xff, 3);
- for (INT32 i = 0; i < 8; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- DrvInputs[2] ^= (DrvJoy3[i] & 1) << i;
- }
-
- // Clear opposites
- if ((DrvInputs[0] & 0x0c) == 0) DrvInputs[0] |= 0x0c;
- if ((DrvInputs[0] & 0x03) == 0) DrvInputs[0] |= 0x03;
- if ((DrvInputs[1] & 0x0c) == 0) DrvInputs[1] |= 0x0c;
- if ((DrvInputs[1] & 0x03) == 0) DrvInputs[1] |= 0x03;
- }
-
- INT32 nInterleave = 256;
- INT32 nCyclesTotal = 3000000 / 60;
-
- HD6309Open(0);
-
- for (INT32 i = 0; i < nInterleave; i++)
- {
- BurnTimerUpdate((i+1) * (nCyclesTotal / nInterleave));
-
- // the timings of these is extremely important.. and currently wrong.
- if ((i & 0x3f) == 0x3f && (K007121CtrlRAM[7] & 0x01)) HD6309SetIRQLine(0x20, CPU_IRQSTATUS_AUTO);
-
- if (i == 253 && (K007121CtrlRAM[7] & 0x02)) HD6309SetIRQLine(0x00, CPU_IRQSTATUS_AUTO);
- }
-
- BurnTimerEndFrame(nCyclesTotal);
-
- if (pBurnSoundOut) {
- BurnYM2203Update(pBurnSoundOut, nBurnSoundLen);
- }
-
- HD6309Close();
-
- if (pBurnDraw) {
- DrvDraw();
- }
-
- return 0;
-}
-
-static INT32 DrvScan(INT32 nAction,INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin) {
- *pnMin = 0x029704;
- }
-
- if (nAction & ACB_VOLATILE) {
- memset(&ba, 0, sizeof(ba));
- ba.Data = AllRam;
- ba.nLen = RamEnd - AllRam;
- ba.szName = "All RAM";
- BurnAcb(&ba);
- }
-
- if (nAction & ACB_DRIVER_DATA) {
- HD6309Scan(nAction);
-
- BurnYM2203Scan(nAction, pnMin);
-
- SCAN_VAR(HD6309Bank);
- }
-
- if (nAction & ACB_WRITE) {
- INT32 bank = HD6309Bank;
- HD6309Bank = -1;
-
- HD6309Open(0);
- bankswitch(bank);
- HD6309Close();
- }
-
- return 0;
-}
-
-
-// Trick Trap (World?)
-
-static struct BurnRomInfo tricktrpRomDesc[] = {
- { "771e04", 0x10000, 0xba2c7e20, 1 | BRF_PRG | BRF_ESS }, // 0 HD6309 Code
- { "771e03", 0x10000, 0xd0d68036, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "771e01a", 0x10000, 0x103ffa0d, 2 | BRF_GRA }, // 2 Graphics Tiles
- { "771e01c", 0x10000, 0xcfec5be9, 2 | BRF_GRA }, // 3
- { "771d01b", 0x10000, 0x07f2a71c, 2 | BRF_GRA }, // 4
- { "771d01d", 0x10000, 0xf6810a49, 2 | BRF_GRA }, // 5
-
- { "771d02.08d", 0x00100, 0x3d34bb5a, 3 | BRF_GRA }, /// 6 Sprite Color Lookup Tables
-};
-
-STD_ROM_PICK(tricktrp)
-STD_ROM_FN(tricktrp)
-
-struct BurnDriver BurnDrvTricktrp = {
- "tricktrp", NULL, NULL, NULL, "1987",
- "Trick Trap (World?)\0", "Graphics issues in the ending credits.", "Konami", "GX771",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_KONAMI, GBF_SHOOT, 0,
- NULL, tricktrpRomInfo, tricktrpRomName, NULL, NULL, LabyrunrInputInfo, LabyrunrDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 224, 280, 3, 4
-};
-
-
-// Labyrinth Runner (Japan)
-
-static struct BurnRomInfo labyrunrRomDesc[] = {
- { "771j04.10f", 0x10000, 0x354a41d0, 1 | BRF_PRG | BRF_ESS }, // 0 HD6309 Code
- { "771j03.08f", 0x10000, 0x12b49044, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "771d01.14a", 0x40000, 0x15c8f5f9, 2 | BRF_GRA }, // 2 Graphics Tiles
-
- { "771d02.08d", 0x00100, 0x3d34bb5a, 3 | BRF_GRA }, // 3 Sprite Color Lookup Tables
-};
-
-STD_ROM_PICK(labyrunr)
-STD_ROM_FN(labyrunr)
-
-struct BurnDriver BurnDrvLabyrunr = {
- "labyrunr", "tricktrp", NULL, NULL, "1987",
- "Labyrinth Runner (Japan)\0", "Graphics issues in the ending credits.", "Konami", "GX771",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_KONAMI, GBF_SHOOT, 0,
- NULL, labyrunrRomInfo, labyrunrRomName, NULL, NULL, LabyrunrInputInfo, LabyrunrDIPInfo,
- DrvInit2, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 224, 280, 3, 4
-};
-
-
-// Labyrinth Runner (World Ver. K)
-
-static struct BurnRomInfo labyrunrkRomDesc[] = {
- { "771k04.10f", 0x10000, 0x9816ab35, 1 | BRF_PRG | BRF_ESS }, // 0 HD6309 Code
- { "771k03.8f", 0x10000, 0x48d732ae, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "771d01a.13a", 0x10000, 0x0cd1ed1a, 2 | BRF_GRA }, // 2 Graphics Tiles
- { "771d01c.13a", 0x10000, 0xd75521fe, 2 | BRF_GRA }, // 3
- { "771d01b", 0x10000, 0x07f2a71c, 2 | BRF_GRA }, // 4
- { "771d01d", 0x10000, 0xf6810a49, 2 | BRF_GRA }, // 5
-
- { "771d02.08d", 0x00100, 0x3d34bb5a, 3 | BRF_GRA }, // 6 Sprite Color Lookup Tables
-};
-
-STD_ROM_PICK(labyrunrk)
-STD_ROM_FN(labyrunrk)
-
-struct BurnDriver BurnDrvLabyrunrk = {
- "labyrunrk", "tricktrp", NULL, NULL, "1987",
- "Labyrinth Runner (World Ver. K)\0", "Graphics issues in the ending credits.", "Konami", "GX771",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_KONAMI, GBF_SHOOT, 0,
- NULL, labyrunrkRomInfo, labyrunrkRomName, NULL, NULL, LabyrunrInputInfo, LabyrunrDIPInfo,
- DrvInit, DrvExit, DrvFrame,DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 224, 280, 3, 4
-};
diff --git a/jan/src/burn/drv/konami/d_lethal.cpp b/jan/src/burn/drv/konami/d_lethal.cpp
deleted file mode 100644
index fa89479d8..000000000
--- a/jan/src/burn/drv/konami/d_lethal.cpp
+++ /dev/null
@@ -1,1041 +0,0 @@
-// FB Alpha Lethal Enforcers driver module
-// Based on MAME driver by R. Belmont and Nicola Salmoria
-// Notes:
-// japan version needs sprites fixed (x flipped not y flipped)
-//
-
-#include "tiles_generic.h"
-#include "hd6309_intf.h"
-#include "z80_intf.h"
-#include "konamiic.h"
-#include "burn_ym2151.h"
-#include "k054539.h"
-#include "eeprom.h"
-#include "burn_gun.h"
-
-static UINT8 *AllMem;
-static UINT8 *DrvMainROM;
-static UINT8 *DrvZ80ROM;
-static UINT8 *DrvGfxROM0;
-static UINT8 *DrvGfxROM1;
-static UINT8 *DrvGfxROMExp0;
-static UINT8 *DrvGfxROMExp1;
-static UINT8 *DrvSndROM;
-static UINT8 *DrvEeprom;
-static UINT8 *AllRam;
-static UINT8 *DrvMainRAM;
-static UINT8 *DrvZ80RAM;
-static UINT8 *DrvPalRAM;
-static UINT8 *RamEnd;
-static UINT8 *MemEnd;
-
-static UINT8 *soundlatch;
-static UINT8 *soundlatch2;
-
-static UINT32 *DrvPalette;
-static UINT8 DrvRecalc;
-
-static INT32 current_4800_bank = 0;
-static INT32 layer_colorbase[4];
-static INT32 sprite_colorbase = 0;
-static INT32 sound_nmi_enable = 0;
-static INT32 screen_flip = 0;
-
-static UINT8 DrvJoy1[8];
-static UINT8 DrvReset;
-static UINT8 DrvInputs[1];
-static UINT8 DrvDips[1];
-
-static INT32 LethalGun0 = 0;
-static INT32 LethalGun1 = 0;
-static INT32 LethalGun2 = 0;
-static INT32 LethalGun3 = 0;
-static UINT8 ReloadGun0 = 0;
-static UINT8 ReloadGun1 = 0;
-
-#define A(a, b, c, d) {a, b, (UINT8*)(c), d}
-static struct BurnInputInfo LethalenInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy1 + 0, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 6, "p1 start" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy1 + 4, "mouse button 1" },
- {"P1 Button 2", BIT_DIGITAL, &ReloadGun0 , "mouse button 2" },
- A("P1 Gun X", BIT_ANALOG_REL, &LethalGun0 , "mouse x-axis" ),
- A("P1 Gun Y", BIT_ANALOG_REL, &LethalGun1 , "mouse y-axis" ),
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy1 + 1, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy1 + 7, "p2 start" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy1 + 5, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, &ReloadGun1 , "p2 fire 2" },
- A("P2 Gun X", BIT_ANALOG_REL, &LethalGun2 , "p2 x-axis" ),
- A("P2 Gun Y", BIT_ANALOG_REL, &LethalGun3 , "p2 y-axis" ),
-
- {"Reset", BIT_DIGITAL, &DrvReset , "reset" },
- {"Service", BIT_DIGITAL, DrvJoy1 + 2, "service" },
- {"Dips", BIT_DIPSWITCH, DrvDips + 0, "dip" },
-};
-
-STDINPUTINFO(Lethalen)
-
-static struct BurnDIPInfo LethalenDIPList[]=
-{
- {0x0c, 0xff, 0xff, 0xd8, NULL },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x0c, 0x01, 0x08, 0x08, "Off" },
- {0x0c, 0x01, 0x08, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Language" },
- {0x0c, 0x01, 0x10, 0x10, "English" },
- {0x0c, 0x01, 0x10, 0x00, "Spanish" },
-
- {0 , 0xfe, 0 , 2, "Game Type" },
- {0x0c, 0x01, 0x20, 0x20, "Street" },
- {0x0c, 0x01, 0x20, 0x00, "Arcade" },
-
- {0 , 0xfe, 0 , 2, "Coin Mechanism" },
- {0x0c, 0x01, 0x40, 0x40, "Common" },
- {0x0c, 0x01, 0x40, 0x00, "Independent" },
-
- {0 , 0xfe, 0 , 2, "Sound Output" },
- {0x0c, 0x01, 0x80, 0x00, "Mono" },
- {0x0c, 0x01, 0x80, 0x80, "Stereo" },
-};
-
-STDDIPINFO(Lethalen)
-
-#define GUNX(a) (( ( BurnGunReturnX(a - 1) * 287 ) / 0xff ) + 16)
-#define GUNY(a) (( ( BurnGunReturnY(a - 1) * 223 ) / 0xff ) + 10)
-
-static UINT8 guns_r(UINT16 address)
-{
- switch (address)
- {
- case 0:
- return (ReloadGun0) ? 16 >> 1: GUNX(1) >> 1;
- case 1:
- if ((GUNY(1)<=0x0b) || (GUNY(1)>=0xe8))
- return 0;
- else
- return (ReloadGun0) ? 0 : (232 - GUNY(1));
- case 2:
- return (ReloadGun1) ? 16 >> 1: GUNX(2) >> 1;
- case 3:
- if ((GUNY(2)<=0x0b) || (GUNY(2)>=0xe8))
- return 0;
- else
- return (ReloadGun1) ? 0 : (232 - GUNY(2));
- }
-
- return 0;
-}
-
-static UINT8 gunsaux_r()
-{
- int res = 0;
-
- if (ReloadGun0) return 0;
-
- if (GUNX(1) & 1) res |= 0x80;
- if (GUNX(2) & 1) res |= 0x40;
-
- return res;
-}
-
-#undef GUNX
-#undef GUNY
-
-static void bankswitch(INT32 bank)
-{
- bank = (bank & 0x1f) * 0x2000;
-
- HD6309MapMemory(DrvMainROM + bank, 0x0000, 0x1fff, MAP_ROM);
-}
-
-static void lethal_main_write(UINT16 address, UINT8 data)
-{
- if ((address & 0xffc0) == 0x4000) {
- K056832ByteWrite(address, data);
- return;
- }
-
- if ((address & 0xfff0) == 0x4040) {
- // K056832_regb
- return;
- }
-
- switch (address)
- {
- case 0x40c4:
- EEPROMWrite((data & 0x04), (data & 0x02), (data & 0x01));
- current_4800_bank = (data >> 4) & 1;
- return;
-
- case 0x40c5:
- case 0x40c6:
- case 0x40c7:
- return;
-
- case 0x40c8:
- layer_colorbase[0] = ((data & 0x7) - 1) * 0x40;
- layer_colorbase[1] = (((data >> 4) & 0x7) - 1) * 0x40;
- break;
-
- case 0x40c9:
- case 0x40ca:
- case 0x40cb:
- return;
-
- case 0x40cc:
- layer_colorbase[2] = ((data & 0x7) - 1) * 0x40;
- layer_colorbase[3] = (((data >> 4) & 0x7) - 1) * 0x40;
- return;
-
- case 0x40cd:
- case 0x40ce:
- case 0x40cf:
- break;
-
- case 0x40d0:
- sprite_colorbase = ((data & 0x7) - 1) * 0x40;
- return;
-
- case 0x40dc:
- bankswitch(data);
- return;
-
- case 0x47fe:
- case 0x47ff:
- DrvPalRAM[0x3800 + (address & 1)] = data;
- return;
- }
-
- if (address < 0x4800 || address >= 0x8000) return;
-
- address = (address - 0x4800) + (0x3800 * current_4800_bank);
-
- if (address >= 0x3800 && address < 0x8000) {
- DrvPalRAM[(address - 0x3800)] = data;
- return;
- }
-
- if ((address & 0xfff0) == 0x0040) {
- K053244Write(0, (address & 0x0f), data);
- return;
- }
-
- if ((address & 0xffe0) == 0x0080) {
- K054000Write(address, data);
- return;
- }
-
- if (address >= 0x0800 && address <= 0x17ff) {
- K053245Write(0, address & 0x7ff, data);
- return;
- }
-
- if (address >= 0x1800 && address < 0x3800) {
- address -= 0x1800;
- INT32 offset = (((address & 0x1800) ^ 0x1000) >> 11) | ((address & 0x07ff) << 2);
- K056832RamWriteByte(offset^1, data);
- return;
- }
-
- switch (address)
- {
- case 0x00c6:
- *soundlatch = data;
- return;
-
- case 0x00c7:
- ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
- return;
- }
-}
-
-static UINT8 lethal_main_read(UINT16 address)
-{
- switch (address)
- {
- case 0x40d4:
- case 0x40d5:
- case 0x40d6:
- case 0x40d7:
- return guns_r(address-0x40d4);
-
- case 0x40d8:
- return (DrvDips[0] & 0xfc) | 2 | (EEPROMRead() ? 0x01 : 0);
-
- case 0x40d9:
- return DrvInputs[0];
-
- case 0x40db:
- case 0x40dc:
- case 0x40de:
- case 0x40dd:
- return gunsaux_r();
- }
-
- if (address < 0x4800 || address >= 0x8000) return 0;
-
- address = (address - 0x4800) + (0x3800 * current_4800_bank);
-
- if (address >= 0x3800 && address < 0x8000) {
- return DrvPalRAM[(address - 0x3800)];
- }
-
- if ((address & 0xfff0) == 0x0040) {
- return K053244Read(0, address & 0xf);
- }
-
- if ((address & 0xffe0) == 0x0080) {
- return K054000Read(address);
- }
-
- if (address >= 0x0800 && address <= 0x17ff) {
- return K053245Read(0, address & 0x7ff);
- }
-
- if (address >= 0x1800 && address < 0x3800) {
- address -= 0x1800;
-
- INT32 offset = (((address & 0x1800) ^ 0x1000) >> 11) | ((address & 0x07ff) << 2);
- return K056832RamReadByte(offset^1);
- }
-
- switch (address)
- {
- case 0x00ca:
- return 0x0f;
- }
-
- return 0;
-}
-
-static void __fastcall lethal_sound_write(UINT16 address, UINT8 data)
-{
- if (address >= 0xf800 && address <= 0xfa2f) {
- if (address == 0xfa2f) sound_nmi_enable = data & 0x20;
- K054539Write(0, address & 0x3ff, data);
- return;
- }
-
- switch (address)
- {
- case 0xfc00:
- *soundlatch2 = data;
- return;
- }
-}
-
-static UINT8 __fastcall lethal_sound_read(UINT16 address)
-{
- if (address >= 0xf800 && address <= 0xfa2f) {
- return K054539Read(0, address & 0x3ff);
- }
-
- switch (address)
- {
- case 0xfc02:
- ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
- return *soundlatch;
-
- case 0xfc03:
- return 0; // soundlatch2?
- }
-
- return 0;
-}
-
-static const eeprom_interface lethalen_eeprom_interface =
-{
- 7,
- 8,
- "011000",
- "011100",
- "0100100000000",
- "0100000000000",
- "0100110000000",
- 0,
- 0
-};
-
-static void lethal_sprite_callback(INT32 *code, INT32 *color, INT32 *priority)
-{
- INT32 pri = (*color & 0xfff0);
- *color = *color & 0x000f;
- *color += 0x400 / 64;
-
- if (pri == 0x10) *priority = 0xf0;
- else if (pri == 0x90) *priority = 0xf0;
- else if (pri == 0x20) *priority = 0xfc;
- else if (pri == 0xa0) *priority = 0xfc;
- else if (pri == 0x40) *priority = 0;
- else if (pri == 0x00) *priority = 0;
- else if (pri == 0x30) *priority = 0xfe;
- else *priority = 0;
-
- *code = (*code & 0x3fff);
-}
-
-static void lethal_tile_callback(INT32 layer, INT32 *code, INT32 *color, INT32 */*flags*/)
-{
- *color = layer_colorbase[layer] + ((*color & 0x3c) << 2);
- *code &= 0xffff;
-}
-
-static INT32 DrvDoReset()
-{
- memset (AllRam, 0, RamEnd - AllRam);
-
- HD6309Open(0);
- HD6309Reset();
- HD6309Close();
-
- ZetOpen(0);
- ZetReset();
- ZetClose();
-
- KonamiICReset();
-
- K054539Reset(0);
-
- EEPROMReset();
-
- if (EEPROMAvailable() == 0) {
- EEPROMFill(DrvEeprom, 0, 128);
- }
-
- layer_colorbase[0] = 0x00;
- layer_colorbase[1] = 0x40;
- layer_colorbase[2] = 0x80;
- layer_colorbase[3] = 0xc0;
-
- sound_nmi_enable = 0;
-
- HiscoreReset();
-
- return 0;
-}
-
-static INT32 MemIndex()
-{
- UINT8 *Next; Next = AllMem;
-
- DrvMainROM = Next; Next += 0x040000;
- DrvZ80ROM = Next; Next += 0x010000;
-
- DrvGfxROM0 = Next; Next += 0x400000;
- DrvGfxROMExp0 = Next; Next += 0x400000;
- DrvGfxROM1 = Next; Next += 0x400000;
- DrvGfxROMExp1 = Next; Next += 0x800000;
-
- DrvSndROM = Next; Next += 0x200000;
-
- DrvEeprom = Next; Next += 0x000080;
-
- konami_palette32 = (UINT32*)Next;
- DrvPalette = (UINT32*)Next; Next += 0x2000 * sizeof(UINT32);
-
- AllRam = Next;
-
- DrvMainRAM = Next; Next += 0x002000;
- DrvPalRAM = Next; Next += 0x004000;
-
- DrvZ80RAM = Next; Next += 0x000800;
-
- soundlatch = Next; Next += 0x000001;
- soundlatch2 = Next; Next += 0x000001;
-
- RamEnd = Next;
- MemEnd = Next;
-
- return 0;
-}
-
-static INT32 DrvGfxDecode()
-{
-#if 0
- INT32 Plane0[8] = { STEP4((0x200000*8), 1), STEP4(0,1) };
- INT32 XOffs0[8] = { STEP8(0,4) };
- INT32 YOffs0[8] = { STEP8(0,32) };
-
- INT32 Plane1[6] = { (0x200000*8)+8, (0x200000*8)+0, STEP4(24, -8) };
- INT32 XOffs1[16] = { STEP8(0,7), STEP8(256, 1) };
- INT32 YOffs1[16] = { STEP8(0,32), STEP8(512,32) };
-#endif
- INT32 Plane0[8] = { 0+(0x200000*8), 1+(0x200000*8), 2+(0x200000*8), 3+(0x200000*8), 0, 1, 2, 3 };
- INT32 XOffs0[8] = { 2*4, 3*4, 0*4, 1*4, 6*4, 7*4, 4*4, 5*4 };
- INT32 YOffs0[8] = { 0*8*4, 1*8*4, 2*8*4, 3*8*4, 4*8*4, 5*8*4, 6*8*4, 7*8*4 };
-
- INT32 Plane1[6] = { (0x200000*8)+8, (0x200000*8)+0, 24, 16, 8, 0 };
- INT32 XOffs1[16] = { 0, 1, 2, 3, 4, 5, 6, 7,8*32+0, 8*32+1, 8*32+2, 8*32+3, 8*32+4, 8*32+5, 8*32+6, 8*32+7 };
- INT32 YOffs1[16] = { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32, 16*32, 17*32, 18*32, 19*32, 20*32, 21*32, 22*32, 23*32 };
-
- GfxDecode(0x10000, 8, 8, 8, Plane0, XOffs0, YOffs0, 8*8*4, DrvGfxROM0, DrvGfxROMExp0);
- GfxDecode(0x04000, 6, 16, 16, Plane1, XOffs1, YOffs1, 128*8, DrvGfxROM1, DrvGfxROMExp1);
-
- return 0;
-}
-
-static INT32 DrvInit(INT32 flipy)
-{
- screen_flip = (flipy) ? 0 : 1;
-
- GenericTilesInit();
-
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(DrvMainROM + 0x000000, 0, 1)) return 1;
-
- if (BurnLoadRom(DrvZ80ROM + 0x000000, 1, 1)) return 1;
-
- if (BurnLoadRomExt(DrvGfxROM0 + 0x000002, 2, 4, 2)) return 1;
- if (BurnLoadRomExt(DrvGfxROM0 + 0x000000, 3, 4, 2)) return 1;
- if (BurnLoadRomExt(DrvGfxROM0 + 0x200002, 4, 4, 2)) return 1;
- if (BurnLoadRomExt(DrvGfxROM0 + 0x200000, 5, 4, 2)) return 1;
-
- if (BurnLoadRomExt(DrvGfxROM1 + 0x000000, 6, 4, 2)) return 1;
- if (BurnLoadRomExt(DrvGfxROM1 + 0x000002, 7, 4, 2)) return 1;
- if (BurnLoadRomExt(DrvGfxROM1 + 0x200000, 8, 4, 2)) return 1;
-
- if (BurnLoadRom(DrvSndROM + 0x000000, 9, 1)) return 1;
-
- if (BurnLoadRom(DrvEeprom + 0x000000, 10, 1)) return 1;
-
- DrvGfxDecode();
- }
-
- HD6309Init(0);
- HD6309Open(0);
- HD6309MapMemory(DrvMainROM + 0x00000, 0x0000, 0x1fff, MAP_ROM);
- HD6309MapMemory(DrvMainRAM, 0x2000, 0x3fff, MAP_RAM);
- HD6309MapMemory(DrvMainROM + 0x38000, 0x8000, 0xffff, MAP_ROM);
- HD6309SetReadHandler(lethal_main_read);
- HD6309SetWriteHandler(lethal_main_write);
- HD6309Close();
-
- ZetInit(0);
- ZetOpen(0);
- ZetMapMemory(DrvZ80ROM, 0x0000, 0xefff, MAP_ROM);
- ZetMapMemory(DrvZ80RAM, 0xf000, 0xf7ff, MAP_RAM);
- ZetSetWriteHandler(lethal_sound_write);
- ZetSetReadHandler(lethal_sound_read);
- ZetClose();
-
- EEPROMInit(&lethalen_eeprom_interface);
-
- K056832Init(DrvGfxROM0, DrvGfxROMExp0, 0x400000, lethal_tile_callback);
- K056832SetGlobalOffsets((flipy) ? 216 : 224, 16);
- K056832SetExtLinescroll();
-
- K053245Init(0, DrvGfxROM1, DrvGfxROMExp1, 0x3fffff, lethal_sprite_callback);
- K053245SetSpriteOffset(0, (flipy) ? (-216+96) : (-224-105), -15);
- K053245SetBpp(0, 6);
-
- K054539Init(0, 48000, DrvSndROM, 0x200000);
- K054539SetRoute(0, BURN_SND_K054539_ROUTE_1, 1.00, BURN_SND_ROUTE_LEFT);
- K054539SetRoute(0, BURN_SND_K054539_ROUTE_2, 1.00, BURN_SND_ROUTE_RIGHT);
-
- DrvDoReset();
-
- BurnGunInit(2, true);
-
- return 0;
-}
-
-static INT32 LethalenInit()
-{
- return DrvInit(1);
-}
-
-static INT32 LethalenjInit()
-{
- return DrvInit(0);
-}
-
-static INT32 DrvExit()
-{
- GenericTilesExit();
-
- KonamiICExit();
-
- HD6309Exit();
- ZetExit();
-
- EEPROMExit();
-
- K054539Exit();
-
- BurnGunExit();
-
- BurnFree (AllMem);
-
- return 0;
-}
-
-static void DrvPaletteRecalc()
-{
- UINT16 *pal = (UINT16*)DrvPalRAM;
-
- for (INT32 i = 0; i < 0x3802/2; i++)
- {
- UINT16 p = (pal[i] >> 8) | (pal[i] << 8);
-
- INT32 r = (p & 0x1f);
- INT32 g = (p >> 5) & 0x1f;
- INT32 b = (p >> 10) & 0x1f;
-
- r = (r << 3) | (r >> 2);
- g = (g << 3) | (g >> 2);
- b = (b << 3) | (b >> 2);
-
- DrvPalette[i] = (r << 16) + (g << 8) + b;
- }
-}
-
-static INT32 DrvDraw()
-{
- DrvPaletteRecalc();
-
- if (screen_flip) { // x
- K056832SetLayerOffsets(0, -195, 0);
- K056832SetLayerOffsets(1, -193, 0);
- K056832SetLayerOffsets(2, -191, 0);
- K056832SetLayerOffsets(3, -189, 0);
- } else {
- K056832SetLayerOffsets(0, 188, 0);
- K056832SetLayerOffsets(1, 190, 0);
- K056832SetLayerOffsets(2, 192, 0);
- K056832SetLayerOffsets(3, 194, 0);
- }
-
- KonamiClearBitmaps(DrvPalette[0x1c00]);
-
- if (nBurnLayer & 1) K056832Draw(3, K056832_DRAW_FLAG_MIRROR, 1);
- if (nBurnLayer & 2) K056832Draw(2, K056832_DRAW_FLAG_MIRROR, 2);
- if (nBurnLayer & 4) K056832Draw(1, K056832_DRAW_FLAG_MIRROR, 4);
-
- if (nSpriteEnable & 1) K053245SpritesRender(0);
-
- if (nBurnLayer & 8) K056832Draw(0, K056832_DRAW_FLAG_MIRROR, 0);
-
-#if 1
- if (screen_flip) // flip horizontally
- {
- UINT32 tmp;
- for (INT32 y = 0; y < nScreenHeight; y++) {
- UINT32 *src = konami_bitmap32 + (y * nScreenWidth);
- for (INT32 x = 0; x < (nScreenWidth / 2); x++) {
- tmp = src[x];
- src[x] = src[((nScreenWidth - 1) - x)];
- src[((nScreenWidth - 1) - x)] = tmp;
- }
- }
- }
- else // flip vertically..
- {
- UINT32 tmp[512];
- for (INT32 y = 0; y < (nScreenHeight / 2); y++) {
- UINT32 *src = konami_bitmap32 + (y * nScreenWidth);
- UINT32 *dst = konami_bitmap32 + ((nScreenHeight - 1) - y) * nScreenWidth;
- memcpy (tmp, src, nScreenWidth * 4);
- memcpy (src, dst, nScreenWidth * 4);
- memcpy (dst, tmp, nScreenWidth * 4);
- }
- }
-#endif
- KonamiBlendCopy(DrvPalette);
- for (INT32 i = 0; i < nBurnGunNumPlayers; i++) {
- BurnGunDrawTarget(i, BurnGunX[i] >> 8, BurnGunY[i] >> 8);
- }
-
- return 0;
-}
-
-static INT32 DrvFrame()
-{
- if (DrvReset) {
- DrvDoReset();
- }
-
- {
- DrvInputs[0] = 0xff;
-
- if (ReloadGun0) { // for simulated reload-gun button
- DrvJoy1[4] = 1;
- }
- if (ReloadGun1) {
- DrvJoy1[5] = 1;
- }
-
- for (INT32 i = 0; i < 8; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- }
-
- if (!ReloadGun0)
- BurnGunMakeInputs(0, (INT16)LethalGun0, (INT16)LethalGun1);
- if (!ReloadGun1)
- BurnGunMakeInputs(1, (INT16)LethalGun2, (INT16)LethalGun3);
- }
-
- INT32 nInterleave = nBurnSoundLen;
- INT32 nCyclesTotal[2] = { 3000000 / 60, 6000000 / 60 };
- INT32 nCyclesDone[2] = { 0, 0 };
-
- HD6309Open(0);
- ZetOpen(0);
-
- for (INT32 i = 0; i < nInterleave; i++) {
- INT32 nNext, nCyclesSegment;
-
- nNext = (i + 1) * nCyclesTotal[0] / nInterleave;
- nCyclesSegment = nNext - nCyclesDone[0];
- nCyclesSegment = HD6309Run(nCyclesSegment);
- nCyclesDone[0] += nCyclesSegment;
-
- nNext = (i + 1) * nCyclesTotal[1] / nInterleave;
- nCyclesSegment = nNext - nCyclesDone[1];
- nCyclesSegment = ZetRun(nCyclesSegment);
- nCyclesDone[1] += nCyclesSegment;
- if ((i % (nInterleave / 8)) == ((nInterleave / 8) - 1) && sound_nmi_enable) {
- ZetNmi();
- }
- }
-
- if (K056832IsIrqEnabled()) {
- HD6309SetIRQLine(0, CPU_IRQSTATUS_AUTO);
- }
-
- if (pBurnSoundOut) {
- memset (pBurnSoundOut, 0, nBurnSoundLen * 2 * 2);
- K054539Update(0, pBurnSoundOut, nBurnSoundLen);
- }
-
- ZetClose();
- HD6309Close();
-
- if (pBurnDraw) {
- DrvDraw();
- }
-
- return 0;
-}
-
-static INT32 DrvScan(INT32 nAction, INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin) {
- *pnMin = 0x029732;
- }
-
- if (nAction & ACB_VOLATILE) {
- memset(&ba, 0, sizeof(ba));
-
- ba.Data = AllRam;
- ba.nLen = RamEnd - AllRam;
- ba.szName = "All Ram";
- BurnAcb(&ba);
-
- HD6309Scan(nAction);
- ZetScan(nAction);
-
- K054539Scan(nAction);
-
- KonamiICScan(nAction);
- BurnGunScan();
-
- SCAN_VAR(current_4800_bank);
- SCAN_VAR(sound_nmi_enable);
- SCAN_VAR(layer_colorbase);
- SCAN_VAR(sprite_colorbase);
- }
-
- return 0;
-}
-
-
-// Lethal Enforcers (ver UAE, 11/19/92 15:04)
-
-static struct BurnRomInfo lethalenRomDesc[] = {
- { "191uae01.u4", 0x040000, 0xdca340e3, 1 | BRF_PRG | BRF_ESS }, // 0 HD6309 Code
-
- { "191a02.f4", 0x010000, 0x72b843cc, 2 | BRF_PRG | BRF_ESS }, // 1 Z80 Code
-
- { "191a08", 0x100000, 0x555bd4db, 3 | BRF_GRA }, // 2 K056832 Characters
- { "191a10", 0x100000, 0x2fa9bf51, 3 | BRF_GRA }, // 3
- { "191a07", 0x100000, 0x1dad184c, 3 | BRF_GRA }, // 4
- { "191a09", 0x100000, 0xe2028531, 3 | BRF_GRA }, // 5
-
- { "191a05", 0x100000, 0xf2e3b58b, 4 | BRF_GRA }, // 6 K053244 Sprites
- { "191a04", 0x100000, 0x5c3eeb2b, 4 | BRF_GRA }, // 7
- { "191a06", 0x100000, 0xee11fc08, 4 | BRF_GRA }, // 8
-
- { "191a03", 0x200000, 0x9b13fbe8, 5 | BRF_SND }, // 9 K054539 Samples
-
- { "lethalenue.nv", 0x000080, 0x6e7224e6, 6 | BRF_OPT }, // 10 eeprom data
-};
-
-STD_ROM_PICK(lethalen)
-STD_ROM_FN(lethalen)
-
-struct BurnDriver BurnDrvLethalen = {
- "lethalen", NULL, NULL, NULL, "1992",
- "Lethal Enforcers (ver UAE, 11/19/92 15:04)\0", NULL, "Konami", "GX191",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_KONAMI, GBF_SHOOT, 0,
- NULL, lethalenRomInfo, lethalenRomName, NULL, NULL, LethalenInputInfo, LethalenDIPInfo,
- LethalenInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x2000,
- 288, 224, 4, 3
-};
-
-
-// Lethal Enforcers (ver UAB, 09/01/92 11:12)
-
-static struct BurnRomInfo lethalenubRomDesc[] = {
- { "191uab01.u4", 0x040000, 0x2afd7528, 1 | BRF_PRG | BRF_ESS }, // 0 HD6309 Code
-
- { "191a02.f4", 0x010000, 0x72b843cc, 2 | BRF_PRG | BRF_ESS }, // 1 Z80 Code
-
- { "191a08", 0x100000, 0x555bd4db, 3 | BRF_GRA }, // 2 K056832 Characters
- { "191a10", 0x100000, 0x2fa9bf51, 3 | BRF_GRA }, // 3
- { "191a07", 0x100000, 0x1dad184c, 3 | BRF_GRA }, // 4
- { "191a09", 0x100000, 0xe2028531, 3 | BRF_GRA }, // 5
-
- { "191a05", 0x100000, 0xf2e3b58b, 4 | BRF_GRA }, // 6 K053244 Sprites
- { "191a04", 0x100000, 0x5c3eeb2b, 4 | BRF_GRA }, // 7
- { "191a06", 0x100000, 0xee11fc08, 4 | BRF_GRA }, // 8
-
- { "191a03", 0x200000, 0x9b13fbe8, 5 | BRF_SND }, // 9 K054539 Samples
-
- { "lethalenub.nv", 0x000080, 0x14c6c6e5, 6 | BRF_OPT }, // 10 eeprom data
-};
-
-STD_ROM_PICK(lethalenub)
-STD_ROM_FN(lethalenub)
-
-struct BurnDriver BurnDrvLethalenub = {
- "lethalenub", "lethalen", NULL, NULL, "1992",
- "Lethal Enforcers (ver UAB, 09/01/92 11:12)\0", NULL, "Konami", "GX191",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_KONAMI, GBF_SHOOT, 0,
- NULL, lethalenubRomInfo, lethalenubRomName, NULL, NULL, LethalenInputInfo, LethalenDIPInfo,
- LethalenInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x2000,
- 288, 224, 4, 3
-};
-
-
-// Lethal Enforcers (ver UAA, 08/17/92 21:38)
-
-static struct BurnRomInfo lethalenuaRomDesc[] = {
- { "191uaa01.u4", 0x040000, 0xab6b8f16, 1 | BRF_PRG | BRF_ESS }, // 0 HD6309 Code
-
- { "191a02.f4", 0x010000, 0x72b843cc, 2 | BRF_PRG | BRF_ESS }, // 1 Z80 Code
-
- { "191a08", 0x100000, 0x555bd4db, 3 | BRF_GRA }, // 2 K056832 Characters
- { "191a10", 0x100000, 0x2fa9bf51, 3 | BRF_GRA }, // 3
- { "191a07", 0x100000, 0x1dad184c, 3 | BRF_GRA }, // 4
- { "191a09", 0x100000, 0xe2028531, 3 | BRF_GRA }, // 5
-
- { "191a05", 0x100000, 0xf2e3b58b, 4 | BRF_GRA }, // 6 K053244 Sprites
- { "191a04", 0x100000, 0x5c3eeb2b, 4 | BRF_GRA }, // 7
- { "191a06", 0x100000, 0xee11fc08, 4 | BRF_GRA }, // 8
-
- { "191a03", 0x200000, 0x9b13fbe8, 5 | BRF_SND }, // 9 K054539 Samples
-
- { "lethalenua.nv", 0x000080, 0xf71ad1c3, 6 | BRF_OPT }, // 10 eeprom data
-};
-
-STD_ROM_PICK(lethalenua)
-STD_ROM_FN(lethalenua)
-
-struct BurnDriver BurnDrvLethalenua = {
- "lethalenua", "lethalen", NULL, NULL, "1992",
- "Lethal Enforcers (ver UAA, 08/17/92 21:38)\0", NULL, "Konami", "GX191",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_KONAMI, GBF_SHOOT, 0,
- NULL, lethalenuaRomInfo, lethalenuaRomName, NULL, NULL, LethalenInputInfo, LethalenDIPInfo,
- LethalenInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x2000,
- 288, 224, 4, 3
-};
-
-
-// Lethal Enforcers (ver unknown, US, 08/06/92 15:11, hacked/proto?)
-
-static struct BurnRomInfo lethalenuxRomDesc[] = {
- { "191xxx01.u4", 0x040000, 0xa3b9e790, 1 | BRF_PRG | BRF_ESS }, // 0 HD6309 Code
-
- { "191a02.f4", 0x010000, 0x72b843cc, 2 | BRF_PRG | BRF_ESS }, // 1 Z80 Code
-
- { "191a08", 0x100000, 0x555bd4db, 3 | BRF_GRA }, // 2 K056832 Characters
- { "191a10", 0x100000, 0x2fa9bf51, 3 | BRF_GRA }, // 3
- { "191a07", 0x100000, 0x1dad184c, 3 | BRF_GRA }, // 4
- { "191a09", 0x100000, 0xe2028531, 3 | BRF_GRA }, // 5
-
- { "191a05", 0x100000, 0xf2e3b58b, 4 | BRF_GRA }, // 6 K053244 Sprites
- { "191a04", 0x100000, 0x5c3eeb2b, 4 | BRF_GRA }, // 7
- { "191a06", 0x100000, 0xee11fc08, 4 | BRF_GRA }, // 8
-
- { "191a03", 0x200000, 0x9b13fbe8, 5 | BRF_SND }, // 9 K054539 Samples
-
- { "lethalenux.nv", 0x000080, 0x5d69c39d, 6 | BRF_OPT }, // 10 eeprom data
-};
-
-STD_ROM_PICK(lethalenux)
-STD_ROM_FN(lethalenux)
-
-struct BurnDriver BurnDrvLethalenux = {
- "lethalenux", "lethalen", NULL, NULL, "1992",
- "Lethal Enforcers (ver unknown, US, 08/06/92 15:11, hacked/proto?)\0", NULL, "Konami", "GX191",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_KONAMI, GBF_SHOOT, 0,
- NULL, lethalenuxRomInfo, lethalenuxRomName, NULL, NULL, LethalenInputInfo, LethalenDIPInfo,
- LethalenInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x2000,
- 288, 224, 4, 3
-};
-
-
-// Lethal Enforcers (ver EAA, 09/09/92 09:44)
-
-static struct BurnRomInfo lethaleneaaRomDesc[] = {
- { "191_a01.u4", 0x040000, 0xc6f4d712, 1 | BRF_PRG | BRF_ESS }, // 0 HD6309 Code
-
- { "191a02.f4", 0x010000, 0x72b843cc, 2 | BRF_PRG | BRF_ESS }, // 1 Z80 Code
-
- { "191a08", 0x100000, 0x555bd4db, 3 | BRF_GRA }, // 2 K056832 Characters
- { "191a10", 0x100000, 0x2fa9bf51, 3 | BRF_GRA }, // 3
- { "191a07", 0x100000, 0x1dad184c, 3 | BRF_GRA }, // 4
- { "191a09", 0x100000, 0xe2028531, 3 | BRF_GRA }, // 5
-
- { "191a05", 0x100000, 0xf2e3b58b, 4 | BRF_GRA }, // 6 K053244 Sprites
- { "191a04", 0x100000, 0x5c3eeb2b, 4 | BRF_GRA }, // 7
- { "191a06", 0x100000, 0xee11fc08, 4 | BRF_GRA }, // 8
-
- { "191a03", 0x200000, 0x9b13fbe8, 5 | BRF_SND }, // 9 K054539 Samples
-
- { "lethaleneaa.nv", 0x000080, 0xa85d64ee, 6 | BRF_OPT }, // 10 eeprom data
-};
-
-STD_ROM_PICK(lethaleneaa)
-STD_ROM_FN(lethaleneaa)
-
-struct BurnDriver BurnDrvLethaleneaa = {
- "lethaleneaa", "lethalen", NULL, NULL, "1992",
- "Lethal Enforcers (ver EAA, 09/09/92 09:44)\0", NULL, "Konami", "GX191",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_KONAMI, GBF_SHOOT, 0,
- NULL, lethaleneaaRomInfo, lethaleneaaRomName, NULL, NULL, LethalenInputInfo, LethalenDIPInfo,
- LethalenInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x2000,
- 288, 224, 4, 3
-};
-
-
-// Lethal Enforcers (ver EAB, 10/14/92 19:53)
-
-static struct BurnRomInfo lethaleneabRomDesc[] = {
- { "191eab01.u4", 0x040000, 0xd7ce111e, 1 | BRF_PRG | BRF_ESS }, // 0 HD6309 Code
-
- { "191a02.f4", 0x010000, 0x72b843cc, 2 | BRF_PRG | BRF_ESS }, // 1 Z80 Code
-
- { "191a08", 0x100000, 0x555bd4db, 3 | BRF_GRA }, // 2 K056832 Characters
- { "191a10", 0x100000, 0x2fa9bf51, 3 | BRF_GRA }, // 3
- { "191a07", 0x100000, 0x1dad184c, 3 | BRF_GRA }, // 4
- { "191a09", 0x100000, 0xe2028531, 3 | BRF_GRA }, // 5
-
- { "191a05", 0x100000, 0xf2e3b58b, 4 | BRF_GRA }, // 6 K053244 Sprites
- { "191a04", 0x100000, 0x5c3eeb2b, 4 | BRF_GRA }, // 7
- { "191a06", 0x100000, 0xee11fc08, 4 | BRF_GRA }, // 8
-
- { "191a03", 0x200000, 0x9b13fbe8, 5 | BRF_SND }, // 9 K054539 Samples
-
- { "lethaleneab.nv", 0x000080, 0x4e9bb34d, 6 | BRF_OPT }, // 10 eeprom data
-};
-
-STD_ROM_PICK(lethaleneab)
-STD_ROM_FN(lethaleneab)
-
-struct BurnDriver BurnDrvLethaleneab = {
- "lethaleneab", "lethalen", NULL, NULL, "1992",
- "Lethal Enforcers (ver EAB, 10/14/92 19:53)\0", NULL, "Konami", "GX191",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_KONAMI, GBF_SHOOT, 0,
- NULL, lethaleneabRomInfo, lethaleneabRomName, NULL, NULL, LethalenInputInfo, LethalenDIPInfo,
- LethalenInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x2000,
- 288, 224, 4, 3
-};
-
-
-// Lethal Enforcers (ver EAE, 11/19/92 16:24)
-
-static struct BurnRomInfo lethaleneaeRomDesc[] = {
- { "191eae01.u4", 0x040000, 0xc6a3c6ac, 1 | BRF_PRG | BRF_ESS }, // 0 HD6309 Code
-
- { "191a02.f4", 0x010000, 0x72b843cc, 2 | BRF_PRG | BRF_ESS }, // 1 Z80 Code
-
- { "191a08", 0x100000, 0x555bd4db, 3 | BRF_GRA }, // 2 K056832 Characters
- { "191a10", 0x100000, 0x2fa9bf51, 3 | BRF_GRA }, // 3
- { "191a07", 0x100000, 0x1dad184c, 3 | BRF_GRA }, // 4
- { "191a09", 0x100000, 0xe2028531, 3 | BRF_GRA }, // 5
-
- { "191a05", 0x100000, 0xf2e3b58b, 4 | BRF_GRA }, // 6 K053244 Sprites
- { "191a04", 0x100000, 0x5c3eeb2b, 4 | BRF_GRA }, // 7
- { "191a06", 0x100000, 0xee11fc08, 4 | BRF_GRA }, // 8
-
- { "191a03", 0x200000, 0x9b13fbe8, 5 | BRF_SND }, // 9 K054539 Samples
-
- { "lethaleneae.nv", 0x000080, 0xeb369a67, 6 | BRF_OPT }, // 10 eeprom data
-};
-
-STD_ROM_PICK(lethaleneae)
-STD_ROM_FN(lethaleneae)
-
-struct BurnDriver BurnDrvLethaleneae = {
- "lethaleneae", "lethalen", NULL, NULL, "1992",
- "Lethal Enforcers (ver EAE, 11/19/92 16:24)\0", NULL, "Konami", "GX191",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_KONAMI, GBF_SHOOT, 0,
- NULL, lethaleneaeRomInfo, lethaleneaeRomName, NULL, NULL, LethalenInputInfo, LethalenDIPInfo,
- LethalenInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x2000,
- 288, 224, 4, 3
-};
-
-
-// Lethal Enforcers (ver JAD, 12/04/92 17:16)
-
-static struct BurnRomInfo lethalenjRomDesc[] = {
- { "191jad01.u4", 0x040000, 0x160a25c0, 1 | BRF_PRG | BRF_ESS }, // 0 HD6309 Code
-
- { "191a02.f4", 0x010000, 0x72b843cc, 2 | BRF_PRG | BRF_ESS }, // 1 Z80 Code
-
- { "191a08", 0x100000, 0x555bd4db, 3 | BRF_GRA }, // 2 K056832 Characters
- { "191a10", 0x100000, 0x2fa9bf51, 3 | BRF_GRA }, // 3
- { "191a07", 0x100000, 0x1dad184c, 3 | BRF_GRA }, // 4
- { "191a09", 0x100000, 0xe2028531, 3 | BRF_GRA }, // 5
-
- { "191a05", 0x100000, 0xf2e3b58b, 4 | BRF_GRA }, // 6 K053244 Sprites
- { "191a04", 0x100000, 0x5c3eeb2b, 4 | BRF_GRA }, // 7
- { "191a06", 0x100000, 0xee11fc08, 4 | BRF_GRA }, // 8
-
- { "191a03", 0x200000, 0x9b13fbe8, 5 | BRF_SND }, // 9 K054539 Samples
-
- { "lethalenj.nv", 0x000080, 0x20b28f2f, 6 | BRF_OPT }, // 10 eeprom data
-};
-
-STD_ROM_PICK(lethalenj)
-STD_ROM_FN(lethalenj)
-
-struct BurnDriverD BurnDrvLethalenj = {
- "lethalenj", "lethalen", NULL, NULL, "1992",
- "Lethal Enforcers (ver JAD, 12/04/92 17:16)\0", "no sprites!", "Konami", "GX191",
- NULL, NULL, NULL, NULL,
- BDF_CLONE | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_KONAMI, GBF_SHOOT, 0,
- NULL, lethalenjRomInfo, lethalenjRomName, NULL, NULL, LethalenInputInfo, LethalenDIPInfo,
- LethalenjInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x2000,
- 288, 224, 4, 3
-};
diff --git a/jan/src/burn/drv/konami/d_mainevt.cpp b/jan/src/burn/drv/konami/d_mainevt.cpp
deleted file mode 100644
index 28b1729b1..000000000
--- a/jan/src/burn/drv/konami/d_mainevt.cpp
+++ /dev/null
@@ -1,1220 +0,0 @@
-// FB Alpha The Main Event / Devastators driver module
-// Based on MAME driver by Bryan McPhail
-
-#include "tiles_generic.h"
-#include "z80_intf.h"
-#include "hd6309_intf.h"
-#include "konamiic.h"
-#include "burn_ym2151.h"
-#include "upd7759.h"
-#include "k007232.h"
-
-static UINT8 *AllMem;
-static UINT8 *AllRam;
-static UINT8 *RamEnd;
-static UINT8 *MemEnd;
-static UINT8 *DrvHD6309ROM;
-static UINT8 *DrvZ80ROM;
-static UINT8 *DrvGfxROM0;
-static UINT8 *DrvGfxROM1;
-static UINT8 *DrvGfxROMExp0;
-static UINT8 *DrvGfxROMExp1;
-static UINT8 *DrvSndROM0;
-static UINT8 *DrvSndROM1;
-static UINT8 *DrvHD6309RAM;
-static UINT8 *DrvZ80RAM;
-static UINT8 *soundlatch;
-static UINT8 *irq_enable;
-static UINT8 *nmi_enable;
-
-static UINT8 *nDrvBank;
-
-static UINT32 *DrvPalette;
-static UINT8 DrvRecalc;
-
-static UINT8 DrvJoy1[8];
-static UINT8 DrvJoy2[8];
-static UINT8 DrvJoy3[8];
-static UINT8 DrvJoy4[8];
-static UINT8 DrvJoy5[8];
-static UINT8 DrvDips[3];
-static UINT8 DrvInputs[5];
-static UINT8 DrvReset;
-
-static INT32 nGame;
-
-static struct BurnInputInfo MainevtInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy1 + 0, "p1 coin" },
- {"P1 Up", BIT_DIGITAL, DrvJoy2 + 2, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy2 + 3, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy2 + 0, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy2 + 1, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy2 + 5, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy2 + 4, "p1 fire 2" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy1 + 1, "p2 coin" },
- {"P2 Up", BIT_DIGITAL, DrvJoy3 + 2, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy3 + 3, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy3 + 0, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy3 + 1, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy3 + 5, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy3 + 4, "p2 fire 2" },
-
- {"P3 Coin", BIT_DIGITAL, DrvJoy1 + 2, "p3 coin" },
- {"P3 Up", BIT_DIGITAL, DrvJoy4 + 2, "p3 up" },
- {"P3 Down", BIT_DIGITAL, DrvJoy4 + 3, "p3 down" },
- {"P3 Left", BIT_DIGITAL, DrvJoy4 + 0, "p3 left" },
- {"P3 Right", BIT_DIGITAL, DrvJoy4 + 1, "p3 right" },
- {"P3 Button 1", BIT_DIGITAL, DrvJoy4 + 5, "p3 fire 1" },
- {"P3 Button 2", BIT_DIGITAL, DrvJoy4 + 4, "p3 fire 2" },
-
- {"P4 Coin", BIT_DIGITAL, DrvJoy1 + 3, "p4 coin" },
- {"P4 Up", BIT_DIGITAL, DrvJoy5 + 2, "p4 up" },
- {"P4 Down", BIT_DIGITAL, DrvJoy5 + 3, "p4 down" },
- {"P4 Left", BIT_DIGITAL, DrvJoy5 + 0, "p4 left" },
- {"P4 Right", BIT_DIGITAL, DrvJoy5 + 1, "p4 right" },
- {"P4 Button 1", BIT_DIGITAL, DrvJoy5 + 5, "p4 fire 1" },
- {"P4 Button 2", BIT_DIGITAL, DrvJoy5 + 4, "p4 fire 2" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service 1", BIT_DIGITAL, DrvJoy1 + 4, "service" },
- {"Service 2", BIT_DIGITAL, DrvJoy1 + 5, "service2" },
- {"Service 3", BIT_DIGITAL, DrvJoy1 + 6, "service3" },
- {"Service 4", BIT_DIGITAL, DrvJoy1 + 7, "service4" },
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip" },
- {"Dip C", BIT_DIPSWITCH, DrvDips + 2, "dip" },
-};
-
-STDINPUTINFO(Mainevt)
-
-static struct BurnInputInfo Mainevt2pInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy1 + 0, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy2 + 7, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy2 + 2, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy2 + 3, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy2 + 0, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy2 + 1, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy2 + 5, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy2 + 4, "p1 fire 2" },
- {"P1 Button 3", BIT_DIGITAL, DrvJoy2 + 6, "p1 fire 3" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy1 + 1, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy3 + 7, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvJoy3 + 2, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy3 + 3, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy3 + 0, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy3 + 1, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy3 + 5, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy3 + 4, "p2 fire 2" },
- {"P2 Button 3", BIT_DIGITAL, DrvJoy3 + 6, "p2 fire 3" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service 1", BIT_DIGITAL, DrvJoy1 + 4, "service" },
- {"Service 2", BIT_DIGITAL, DrvJoy1 + 5, "service2" },
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip" },
- {"Dip C", BIT_DIPSWITCH, DrvDips + 2, "dip" },
-};
-
-STDINPUTINFO(Mainevt2p)
-
-static struct BurnInputInfo DevstorsInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy1 + 0, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy2 + 7, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy2 + 2, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy2 + 3, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy2 + 0, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy2 + 1, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy2 + 4, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy2 + 5, "p1 fire 2" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy1 + 1, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy3 + 7, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvJoy3 + 2, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy3 + 3, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy3 + 0, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy3 + 1, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy3 + 4, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy3 + 5, "p2 fire 2" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service", BIT_DIGITAL, DrvJoy1 + 4, "service" },
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip" },
- {"Dip C", BIT_DIPSWITCH, DrvDips + 2, "dip" },
-};
-
-STDINPUTINFO(Devstors)
-
-static struct BurnDIPInfo MainevtDIPList[]=
-{
- {0x21, 0xff, 0xff, 0xff, NULL },
- {0x22, 0xff, 0xff, 0x57, NULL },
- {0x23, 0xff, 0xff, 0xff, NULL },
-
- {0 , 0xfe, 0 , 16, "Coinage" },
- {0x21, 0x01, 0x0f, 0x02, "4 Coins 1 Credit" },
- {0x21, 0x01, 0x0f, 0x05, "3 Coins 1 Credit" },
- {0x21, 0x01, 0x0f, 0x08, "2 Coins 1 Credit" },
- {0x21, 0x01, 0x0f, 0x04, "3 Coins 2 Credits" },
- {0x21, 0x01, 0x0f, 0x01, "4 Coins 3 Credits" },
- {0x21, 0x01, 0x0f, 0x0f, "1 Coin 1 Credit" },
- {0x21, 0x01, 0x0f, 0x00, "4 Coins 5 Credits" },
- {0x21, 0x01, 0x0f, 0x03, "3 Coins 4 Credits" },
- {0x21, 0x01, 0x0f, 0x07, "2 Coins 3 Credits" },
- {0x21, 0x01, 0x0f, 0x0e, "1 Coin 2 Credits" },
- {0x21, 0x01, 0x0f, 0x06, "2 Coins 5 Credits" },
- {0x21, 0x01, 0x0f, 0x0d, "1 Coin 3 Credits" },
- {0x21, 0x01, 0x0f, 0x0c, "1 Coin 4 Credits" },
- {0x21, 0x01, 0x0f, 0x0b, "1 Coin 5 Credits" },
- {0x21, 0x01, 0x0f, 0x0a, "1 Coin 6 Credits" },
- {0x21, 0x01, 0x0f, 0x09, "1 Coin 7 Credits" },
-
- {0 , 0xfe, 0 , 4, "Bonus Energy" },
- {0x22, 0x01, 0x18, 0x00, "60" },
- {0x22, 0x01, 0x18, 0x08, "70" },
- {0x22, 0x01, 0x18, 0x10, "80" },
- {0x22, 0x01, 0x18, 0x18, "90" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x22, 0x01, 0x60, 0x60, "Easy" },
- {0x22, 0x01, 0x60, 0x40, "Normal" },
- {0x22, 0x01, 0x60, 0x20, "Hard" },
- {0x22, 0x01, 0x60, 0x00, "Very Hard" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x22, 0x01, 0x80, 0x80, "Off" },
- {0x22, 0x01, 0x80, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x23, 0x01, 0x01, 0x01, "Off" },
- {0x23, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x23, 0x01, 0x04, 0x04, "Off" },
- {0x23, 0x01, 0x04, 0x00, "On" },
-};
-
-STDDIPINFO(Mainevt)
-
-static struct BurnDIPInfo Mainevt2pDIPList[]=
-{
- {0x15, 0xff, 0xff, 0xff, NULL },
- {0x16, 0xff, 0xff, 0x57, NULL },
- {0x17, 0xff, 0xff, 0xff, NULL },
-
- {0 , 0xfe, 0 , 16, "Coinage" },
- {0x15, 0x01, 0x0f, 0x02, "4 Coins 1 Credit" },
- {0x15, 0x01, 0x0f, 0x05, "3 Coins 1 Credit" },
- {0x15, 0x01, 0x0f, 0x08, "2 Coins 1 Credit" },
- {0x15, 0x01, 0x0f, 0x04, "3 Coins 2 Credits" },
- {0x15, 0x01, 0x0f, 0x01, "4 Coins 3 Credits" },
- {0x15, 0x01, 0x0f, 0x0f, "1 Coin 1 Credit" },
- {0x15, 0x01, 0x0f, 0x00, "4 Coins 5 Credits" },
- {0x15, 0x01, 0x0f, 0x03, "3 Coins 4 Credits" },
- {0x15, 0x01, 0x0f, 0x07, "2 Coins 3 Credits" },
- {0x15, 0x01, 0x0f, 0x0e, "1 Coin 2 Credits" },
- {0x15, 0x01, 0x0f, 0x06, "2 Coins 5 Credits" },
- {0x15, 0x01, 0x0f, 0x0d, "1 Coin 3 Credits" },
- {0x15, 0x01, 0x0f, 0x0c, "1 Coin 4 Credits" },
- {0x15, 0x01, 0x0f, 0x0b, "1 Coin 5 Credits" },
- {0x15, 0x01, 0x0f, 0x0a, "1 Coin 6 Credits" },
- {0x15, 0x01, 0x0f, 0x09, "1 Coin 7 Credits" },
-
- {0 , 0xfe, 0 , 16, "Coin B" },
- {0x15, 0x01, 0xf0, 0x20, "4 Coins 1 Credit" },
- {0x15, 0x01, 0xf0, 0x50, "3 Coins 1 Credit" },
- {0x15, 0x01, 0xf0, 0x80, "2 Coins 1 Credit" },
- {0x15, 0x01, 0xf0, 0x40, "3 Coins 2 Credits" },
- {0x15, 0x01, 0xf0, 0x10, "4 Coins 3 Credits" },
- {0x15, 0x01, 0xf0, 0xf0, "1 Coin 1 Credit" },
- {0x15, 0x01, 0xf0, 0x00, "4 Coins 5 Credits" },
- {0x15, 0x01, 0xf0, 0x30, "3 Coins 4 Credits" },
- {0x15, 0x01, 0xf0, 0x70, "2 Coins 3 Credits" },
- {0x15, 0x01, 0xf0, 0xe0, "1 Coin 2 Credits" },
- {0x15, 0x01, 0xf0, 0x60, "2 Coins 5 Credits" },
- {0x15, 0x01, 0xf0, 0xd0, "1 Coin 3 Credits" },
- {0x15, 0x01, 0xf0, 0xc0, "1 Coin 4 Credits" },
- {0x15, 0x01, 0xf0, 0xb0, "1 Coin 5 Credits" },
- {0x15, 0x01, 0xf0, 0xa0, "1 Coin 6 Credits" },
- {0x15, 0x01, 0xf0, 0x90, "1 Coin 7 Credits" },
-
- {0 , 0xfe, 0 , 4, "Bonus Energy" },
- {0x16, 0x01, 0x18, 0x00, "60" },
- {0x16, 0x01, 0x18, 0x08, "70" },
- {0x16, 0x01, 0x18, 0x10, "80" },
- {0x16, 0x01, 0x18, 0x18, "90" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x16, 0x01, 0x60, 0x60, "Easy" },
- {0x16, 0x01, 0x60, 0x40, "Normal" },
- {0x16, 0x01, 0x60, 0x20, "Hard" },
- {0x16, 0x01, 0x60, 0x00, "Very Hard" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x16, 0x01, 0x80, 0x80, "Off" },
- {0x16, 0x01, 0x80, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x17, 0x01, 0x01, 0x01, "Off" },
- {0x17, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x17, 0x01, 0x04, 0x04, "Off" },
- {0x17, 0x01, 0x04, 0x00, "On" },
-};
-
-STDDIPINFO(Mainevt2p)
-
-static struct BurnDIPInfo DevstorsDIPList[]=
-{
- {0x12, 0xff, 0xff, 0xff, NULL },
- {0x13, 0xff, 0xff, 0x5e, NULL },
- {0x14, 0xff, 0xff, 0xff, NULL },
-
- {0 , 0xfe, 0 , 16, "Coin A" },
- {0x12, 0x01, 0x0f, 0x02, "4 Coins 1 Credit" },
- {0x12, 0x01, 0x0f, 0x05, "3 Coins 1 Credit" },
- {0x12, 0x01, 0x0f, 0x08, "2 Coins 1 Credit" },
- {0x12, 0x01, 0x0f, 0x04, "3 Coins 2 Credits" },
- {0x12, 0x01, 0x0f, 0x01, "4 Coins 3 Credits" },
- {0x12, 0x01, 0x0f, 0x0f, "1 Coin 1 Credit" },
- {0x12, 0x01, 0x0f, 0x03, "3 Coins 4 Credits" },
- {0x12, 0x01, 0x0f, 0x07, "2 Coins 3 Credits" },
- {0x12, 0x01, 0x0f, 0x0e, "1 Coin 2 Credits" },
- {0x12, 0x01, 0x0f, 0x06, "2 Coins 5 Credits" },
- {0x12, 0x01, 0x0f, 0x0d, "1 Coin 3 Credits" },
- {0x12, 0x01, 0x0f, 0x0c, "1 Coin 4 Credits" },
- {0x12, 0x01, 0x0f, 0x0b, "1 Coin 5 Credits" },
- {0x12, 0x01, 0x0f, 0x0a, "1 Coin 6 Credits" },
- {0x12, 0x01, 0x0f, 0x09, "1 Coin 7 Credits" },
- {0x12, 0x01, 0x0f, 0x00, "Free Play" },
-
- {0 , 0xfe, 0 , 15, "Coin B" },
- {0x12, 0x01, 0xf0, 0x20, "4 Coins 1 Credit" },
- {0x12, 0x01, 0xf0, 0x50, "3 Coins 1 Credit" },
- {0x12, 0x01, 0xf0, 0x80, "2 Coins 1 Credit" },
- {0x12, 0x01, 0xf0, 0x40, "3 Coins 2 Credits" },
- {0x12, 0x01, 0xf0, 0x10, "4 Coins 3 Credits" },
- {0x12, 0x01, 0xf0, 0xf0, "1 Coin 1 Credit" },
- {0x12, 0x01, 0xf0, 0x30, "3 Coins 4 Credits" },
- {0x12, 0x01, 0xf0, 0x70, "2 Coins 3 Credits" },
- {0x12, 0x01, 0xf0, 0xe0, "1 Coin 2 Credits" },
- {0x12, 0x01, 0xf0, 0x60, "2 Coins 5 Credits" },
- {0x12, 0x01, 0xf0, 0xd0, "1 Coin 3 Credits" },
- {0x12, 0x01, 0xf0, 0xc0, "1 Coin 4 Credits" },
- {0x12, 0x01, 0xf0, 0xb0, "1 Coin 5 Credits" },
- {0x12, 0x01, 0xf0, 0xa0, "1 Coin 6 Credits" },
- {0x12, 0x01, 0xf0, 0x90, "1 Coin 7 Credits" },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x13, 0x01, 0x03, 0x03, "2" },
- {0x13, 0x01, 0x03, 0x02, "3" },
- {0x13, 0x01, 0x03, 0x01, "5" },
- {0x13, 0x01, 0x03, 0x00, "7" },
-
- {0 , 0xfe, 0 , 4, "Bonus Life" },
- {0x13, 0x01, 0x18, 0x18, "150 and every 200" },
- {0x13, 0x01, 0x18, 0x10, "150 and every 250" },
- {0x13, 0x01, 0x18, 0x08, "150 Only" },
- {0x13, 0x01, 0x18, 0x00, "200 Only" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x13, 0x01, 0x60, 0x60, "Easy" },
- {0x13, 0x01, 0x60, 0x40, "Normal" },
- {0x13, 0x01, 0x60, 0x20, "Hard" },
- {0x13, 0x01, 0x60, 0x00, "Very Hard" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x13, 0x01, 0x80, 0x80, "Off" },
- {0x13, 0x01, 0x80, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x14, 0x01, 0x01, 0x01, "Off" },
- {0x14, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x14, 0x01, 0x04, 0x04, "Off" },
- {0x14, 0x01, 0x04, 0x00, "On" },
-};
-
-STDDIPINFO(Devstors)
-
-static struct BurnDIPInfo Devstors2DIPList[]=
-{
- {0x12, 0xff, 0xff, 0xff, NULL },
- {0x13, 0xff, 0xff, 0x52, NULL },
- {0x14, 0xff, 0xff, 0xff, NULL },
-
- {0 , 0xfe, 0 , 16, "Coin A" },
- {0x12, 0x01, 0x0f, 0x02, "4 Coins 1 Credit" },
- {0x12, 0x01, 0x0f, 0x05, "3 Coins 1 Credit" },
- {0x12, 0x01, 0x0f, 0x08, "2 Coins 1 Credit" },
- {0x12, 0x01, 0x0f, 0x04, "3 Coins 2 Credits" },
- {0x12, 0x01, 0x0f, 0x01, "4 Coins 3 Credits" },
- {0x12, 0x01, 0x0f, 0x0f, "1 Coin 1 Credit" },
- {0x12, 0x01, 0x0f, 0x03, "3 Coins 4 Credits" },
- {0x12, 0x01, 0x0f, 0x07, "2 Coins 3 Credits" },
- {0x12, 0x01, 0x0f, 0x0e, "1 Coin 2 Credits" },
- {0x12, 0x01, 0x0f, 0x06, "2 Coins 5 Credits" },
- {0x12, 0x01, 0x0f, 0x0d, "1 Coin 3 Credits" },
- {0x12, 0x01, 0x0f, 0x0c, "1 Coin 4 Credits" },
- {0x12, 0x01, 0x0f, 0x0b, "1 Coin 5 Credits" },
- {0x12, 0x01, 0x0f, 0x0a, "1 Coin 6 Credits" },
- {0x12, 0x01, 0x0f, 0x09, "1 Coin 7 Credits" },
- {0x12, 0x01, 0x0f, 0x00, "Free Play" },
-
- {0 , 0xfe, 0 , 15, "Coin B" },
- {0x12, 0x01, 0xf0, 0x20, "4 Coins 1 Credit" },
- {0x12, 0x01, 0xf0, 0x50, "3 Coins 1 Credit" },
- {0x12, 0x01, 0xf0, 0x80, "2 Coins 1 Credit" },
- {0x12, 0x01, 0xf0, 0x40, "3 Coins 2 Credits" },
- {0x12, 0x01, 0xf0, 0x10, "4 Coins 3 Credits" },
- {0x12, 0x01, 0xf0, 0xf0, "1 Coin 1 Credit" },
- {0x12, 0x01, 0xf0, 0x30, "3 Coins 4 Credits" },
- {0x12, 0x01, 0xf0, 0x70, "2 Coins 3 Credits" },
- {0x12, 0x01, 0xf0, 0xe0, "1 Coin 2 Credits" },
- {0x12, 0x01, 0xf0, 0x60, "2 Coins 5 Credits" },
- {0x12, 0x01, 0xf0, 0xd0, "1 Coin 3 Credits" },
- {0x12, 0x01, 0xf0, 0xc0, "1 Coin 4 Credits" },
- {0x12, 0x01, 0xf0, 0xb0, "1 Coin 5 Credits" },
- {0x12, 0x01, 0xf0, 0xa0, "1 Coin 6 Credits" },
- {0x12, 0x01, 0xf0, 0x90, "1 Coin 7 Credits" },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x13, 0x01, 0x03, 0x03, "2" },
- {0x13, 0x01, 0x03, 0x02, "3" },
- {0x13, 0x01, 0x03, 0x01, "5" },
- {0x13, 0x01, 0x03, 0x00, "7" },
-
- {0 , 0xfe, 0 , 2, "Cabinet" },
- {0x13, 0x01, 0x04, 0x00, "Upright" },
- {0x13, 0x01, 0x04, 0x04, "Cocktail" },
-
- {0 , 0xfe, 0 , 4, "Bonus Life" },
- {0x13, 0x01, 0x18, 0x18, "150 and every 200" },
- {0x13, 0x01, 0x18, 0x10, "150 and every 250" },
- {0x13, 0x01, 0x18, 0x08, "150 Only" },
- {0x13, 0x01, 0x18, 0x00, "200 Only" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x13, 0x01, 0x60, 0x60, "Easy" },
- {0x13, 0x01, 0x60, 0x40, "Normal" },
- {0x13, 0x01, 0x60, 0x20, "Hard" },
- {0x13, 0x01, 0x60, 0x00, "Very Hard" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x13, 0x01, 0x80, 0x80, "Off" },
- {0x13, 0x01, 0x80, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x14, 0x01, 0x01, 0x01, "Off" },
- {0x14, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x14, 0x01, 0x04, 0x04, "Off" },
- {0x14, 0x01, 0x04, 0x00, "On" },
-};
-
-STDDIPINFO(Devstors2)
-
-static void bankswitch(INT32 data)
-{
- nDrvBank[0] = data & 3;
-
- INT32 nBank = 0x10000 + nDrvBank[0] * 0x2000;
-
- HD6309MapMemory(DrvHD6309ROM + nBank, 0x6000, 0x7fff, MAP_ROM);
-
- K052109RMRDLine = data & 0x40;
-}
-
-UINT8 mainevt_main_read(UINT16 address)
-{
- switch (address)
- {
- case 0x1f94:
- return DrvInputs[0];
-
- case 0x1f95:
- return DrvInputs[1];
-
- case 0x1f96:
- return DrvInputs[2];
-
- case 0x1f97:
- return DrvDips[0];
-
- case 0x1f98:
- return DrvDips[2];
-
- case 0x1f99:
- return DrvInputs[3];
-
- case 0x1f9a:
- return DrvInputs[4];
-
- case 0x1f9b:
- return DrvDips[1];
- }
-
- if ((address & 0xffe0) == 0x1fa0 && nGame) {
- return K051733Read(address);
- }
-
- if ((address & 0xc000) == 0x0000) {
- return K052109_051960_r(address & 0x3fff);
- }
-
- return 0;
-}
-
-void mainevt_main_write(UINT16 address, UINT8 data)
-{
- switch (address)
- {
- case 0x1f80:
- bankswitch(data);
- return;
-
- case 0x1f84:
- *soundlatch = data;
- return;
-
- case 0x1f88:
- ZetSetVector(0xff);
- ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
- return;
-
- case 0x1f90:
- return;
-
- case 0x1fb2:
- *nmi_enable = data;
- return;
- }
-
- if ((address & 0xffe0) == 0x1fa0 && nGame) {
- K051733Write(address, data);
- return;
- }
-
- if ((address & 0xc000) == 0x0000) {
- K052109_051960_w(address & 0x3fff, data);
- return;
- }
-}
-
-static void soundbankswitch(INT32 data)
-{
- INT32 bank_A,bank_B,bank_C;
-
- nDrvBank[1] = data;
-
- bank_A = data & 3;
- bank_B = (data >> 2) & 3;
- bank_C = 0x20000 + ((data >> 4) & 0x03) * 0x20000;
-
- k007232_set_bank(0, bank_A, bank_B );
-
- memcpy (DrvSndROM1, DrvSndROM1 + bank_C, 0x20000);
-}
-
-void __fastcall mainevt_sound_write(UINT16 address, UINT8 data)
-{
- switch (address)
- {
- case 0x9000:
- UPD7759PortWrite(0, data);
- return;
-
- case 0xc000:
- BurnYM2151SelectRegister(data);
- return;
-
- case 0xc001:
- BurnYM2151WriteRegister(data);
- return;
-
- case 0xe000:
- UPD7759ResetWrite(0, data & 2);
- UPD7759StartWrite(0, data & 1);
-
- *irq_enable = data & 4;
- return;
-
- case 0xf000:
- soundbankswitch(data);
- return;
- }
-
- if ((address & 0xfff0) == 0xb000) {
- K007232WriteReg(0, address & 0x0f, data);
- return;
- }
-}
-
-UINT8 __fastcall mainevt_sound_read(UINT16 address)
-{
- switch (address)
- {
- case 0xa000:
- ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
- return *soundlatch;
-
- case 0xc000:
- case 0xc001:
- return BurnYM2151ReadStatus();
-
- case 0xd000:
- return UPD7759BusyRead(0);
-
- }
-
- if ((address & 0xfff0) == 0xb000) {
- return K007232ReadReg(0, address & 0x0f);
- }
-
- return 0;
-}
-
-static void K052109Callback(INT32 layer, INT32 /*bank*/, INT32 *code, INT32 *color, INT32 *flipx, INT32 *priority)
-{
- INT32 colorbase[3] = { 0, 8, 4 };
-
- *flipx = *color & 0x02;
-
- *priority = ((layer == 2) ? ((*color & 0x20) >> 5) : 0);
-
- *code |= ((*color & 0x01) << 8) | ((*color & 0x1c) << 7);
- *color = colorbase[layer] + ((*color & 0xc0) >> 6);
-}
-
-static void DvK052109Callback(INT32 layer, INT32, INT32 *code, INT32 *color, INT32 *, INT32 *)
-{
- *code |= ((*color & 0x01) << 8) | ((*color & 0x3c) << 7);
- *color = ((layer & 2) << 1) + ((*color & 0xc0) >> 6);
-}
-
-static void K051960Callback(INT32 *, INT32 *color, INT32 *priority, INT32 *)
-{
- if (*color & 0x20) *priority = 0xff00;
- else if (*color & 0x40) *priority = 0xfff0;
- else *priority = 0xfffc;
-
- *color = 0x0c + (*color & 0x03);
-}
-
-static void DvK051960Callback(INT32 *, INT32 *color, INT32 *, INT32 *)
-{
- *color = 0x08 + (*color & 0x07);
-}
-
-static void DrvK007232VolCallback(INT32 v)
-{
- K007232SetVolume(0, 0, (v >> 0x4) * 0x11, 0);
- K007232SetVolume(0, 1, 0, (v & 0x0f) * 0x11);
-}
-
-static INT32 DrvDoReset()
-{
- memset (AllRam, 0, RamEnd - AllRam);
-
- HD6309Open(0);
- HD6309Reset();
- bankswitch(0);
- HD6309Close();
-
- ZetOpen(0);
- ZetReset();
- ZetClose();
-
- BurnYM2151Reset();
-
- UPD7759Reset();
-
- KonamiICReset();
-
- return 0;
-}
-
-static INT32 MemIndex()
-{
- UINT8 *Next; Next = AllMem;
-
- DrvHD6309ROM = Next; Next += 0x020000;
- DrvZ80ROM = Next; Next += 0x010000;
-
- DrvGfxROM0 = Next; Next += 0x040000;
- DrvGfxROMExp0 = Next; Next += 0x080000;
- DrvGfxROM1 = Next; Next += 0x100000;
- DrvGfxROMExp1 = Next; Next += 0x200000;
-
- DrvSndROM0 = Next; Next += 0x080000;
- DrvSndROM1 = Next; Next += 0x0a0000;
-
- DrvPalette = (UINT32*)Next; Next += 0x100 * sizeof(UINT32);
-
- AllRam = Next;
-
- DrvHD6309RAM = Next; Next += 0x002000;
- DrvZ80RAM = Next; Next += 0x000400;
-
- soundlatch = Next; Next += 0x000001;
-
- irq_enable = Next; Next += 0x000001;
- nmi_enable = Next; Next += 0x000001;
-
- nDrvBank = Next; Next += 0x000002;
-
- RamEnd = Next;
- MemEnd = Next;
-
- return 0;
-}
-
-static INT32 DrvInit(INT32 type)
-{
- GenericTilesInit();
-
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- nGame = type;
-
- {
- if (BurnLoadRom(DrvHD6309ROM + 0x010000, 0, 1)) return 1;
- memcpy (DrvHD6309ROM + 0x08000, DrvHD6309ROM + 0x18000, 0x8000);
-
- if (BurnLoadRom(DrvZ80ROM + 0x000000, 1, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x000000, 2, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x000001, 3, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x000002, 4, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x000003, 5, 4)) return 1;
-
- if (BurnLoadRomExt(DrvGfxROM1 + 0x000000, 6, 4, LD_GROUP(2))) return 1;
- if (BurnLoadRomExt(DrvGfxROM1 + 0x000002, 7, 4, LD_GROUP(2))) return 1;
-
- if (BurnLoadRom(DrvSndROM0 + 0x000000, 8, 1)) return 1;
-
- if (BurnLoadRom(DrvSndROM1 + 0x020000, 9, 1)) return 1;
- memcpy (DrvSndROM1, DrvSndROM1 + 0x20000, 0x20000);
-
- K052109GfxDecode(DrvGfxROM0, DrvGfxROMExp0, 0x020000 << nGame);
- K051960GfxDecode(DrvGfxROM1, DrvGfxROMExp1, 0x100000);
- }
-
- HD6309Init(0);
- HD6309Open(0);
- HD6309MapMemory(DrvHD6309RAM, 0x4000, 0x5fff, MAP_RAM);
- HD6309MapMemory(DrvHD6309ROM + 0x10000, 0x6000, 0x7fff, MAP_ROM);
- HD6309MapMemory(DrvHD6309ROM + 0x08000, 0x8000, 0xffff, MAP_ROM);
- HD6309SetWriteHandler(mainevt_main_write);
- HD6309SetReadHandler(mainevt_main_read);
- HD6309Close();
-
- ZetInit(0);
- ZetOpen(0);
- ZetMapArea(0x0000, 0x7fff, 0, DrvZ80ROM);
- ZetMapArea(0x0000, 0x7fff, 2, DrvZ80ROM);
- ZetMapArea(0x8000, 0x83ff, 0, DrvZ80RAM);
- ZetMapArea(0x8000, 0x83ff, 1, DrvZ80RAM);
- ZetMapArea(0x8000, 0x83ff, 2, DrvZ80RAM);
- ZetSetWriteHandler(mainevt_sound_write);
- ZetSetReadHandler(mainevt_sound_read);
- ZetClose();
-
- K052109Init(DrvGfxROM0, DrvGfxROMExp0, (0x40000 << type) - 1);
- K052109SetCallback(nGame ? DvK052109Callback : K052109Callback);
- K052109AdjustScroll(nGame ? 0 : 8, 0);
-
- K051960Init(DrvGfxROM1, DrvGfxROMExp1, 0xfffff);
- K051960SetCallback(nGame ? DvK051960Callback : K051960Callback);
- K051960SetSpriteOffset(nGame ? 0 : 8, 0);
-
- K007232Init(0, 3579545, DrvSndROM0, 0x80000);
- K007232SetPortWriteHandler(0, DrvK007232VolCallback);
- K007232PCMSetAllRoutes(0, 0.20, BURN_SND_ROUTE_BOTH);
-
- BurnYM2151Init(3579545);
- BurnYM2151SetAllRoutes(0.30, BURN_SND_ROUTE_BOTH);
-
- UPD7759Init(0, UPD7759_STANDARD_CLOCK, DrvSndROM1);
- UPD7759SetRoute(0, 0.50, BURN_SND_ROUTE_BOTH);
-
- DrvDoReset();
-
- return 0;
-}
-
-static INT32 DrvExit()
-{
- GenericTilesExit();
-
- KonamiICExit();
-
- HD6309Exit();
- ZetExit();
-
- K007232Exit();
- UPD7759Exit();
- BurnYM2151Exit();
-
- BurnFree (AllMem);
-
- return 0;
-}
-
-static INT32 DrvDraw()
-{
- KonamiRecalcPalette(DrvHD6309RAM + 0x1e00, DrvPalette, 0x200);
-
- K052109UpdateScroll();
- KonamiClearBitmaps(0);
-
- if (nGame)
- {
- if (nBurnLayer & 1) K052109RenderLayer(1, K052109_OPAQUE, 0);
- if (nBurnLayer & 2) K052109RenderLayer(2, 0, 0);
- if (nSpriteEnable & 1) K051960SpritesRender(0, 0);
- if (nBurnLayer & 4) K052109RenderLayer(0, 0, 0);
- }
- else
- {
- if (nBurnLayer & 1) K052109RenderLayer(1, K052109_OPAQUE, 1);
- if (nBurnLayer & 4) K052109RenderLayer(2, K052109_CATEGORY(1), 2);
- if (nBurnLayer & 2) K052109RenderLayer(2, K052109_CATEGORY(0), 4);
- if (nBurnLayer & 8) K052109RenderLayer(0, 0, 8);
-
- if (nSpriteEnable & 1) K051960SpritesRender(-1, -1);
- }
-
- KonamiBlendCopy(DrvPalette);
-
- return 0;
-}
-
-static INT32 DrvFrame()
-{
- if (DrvReset) {
- DrvDoReset();
- }
-
- {
- memset (DrvInputs, 0xff, 5);
- for (INT32 i = 0; i < 8; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- DrvInputs[2] ^= (DrvJoy3[i] & 1) << i;
- DrvInputs[3] ^= (DrvJoy4[i] & 1) << i;
- DrvInputs[4] ^= (DrvJoy5[i] & 1) << i;
- }
-
- // Clear Opposites
- if ((DrvInputs[1] & 0x0c) == 0) DrvInputs[1] |= 0x0c;
- if ((DrvInputs[1] & 0x03) == 0) DrvInputs[1] |= 0x03;
- if ((DrvInputs[2] & 0x0c) == 0) DrvInputs[2] |= 0x0c;
- if ((DrvInputs[2] & 0x03) == 0) DrvInputs[2] |= 0x03;
- if ((DrvInputs[3] & 0x0c) == 0) DrvInputs[3] |= 0x0c;
- if ((DrvInputs[3] & 0x03) == 0) DrvInputs[3] |= 0x03;
- if ((DrvInputs[4] & 0x0c) == 0) DrvInputs[4] |= 0x0c;
- if ((DrvInputs[4] & 0x03) == 0) DrvInputs[4] |= 0x03;
- }
-
- INT32 nSoundBufferPos = 0;
- INT32 nInterleave = nBurnSoundLen;
- INT32 nCyclesTotal[2] = { 12000000 / 60, 3579545 / 60 };
- INT32 nCyclesDone[2] = { 0, 0 };
-
- ZetOpen(0);
- HD6309Open(0);
-
- INT32 nCyclesSoundIrq = nInterleave / (8 >> nGame);
- INT32 nCyclesSoundIrqTrigger = nCyclesSoundIrq;
-
- for (INT32 i = 0; i < nInterleave; i++)
- {
- INT32 nSegment = (nCyclesTotal[0] / nInterleave) * (i + 1);
-
- nCyclesDone[0] += HD6309Run(nSegment - nCyclesDone[0]);
-
- nSegment = (nCyclesTotal[1] / nInterleave) * (i + 1);
-
- nCyclesDone[1] += ZetRun(nSegment - nCyclesDone[1]);
-
- if (i == nCyclesSoundIrqTrigger-1) {
- nCyclesSoundIrqTrigger+=nCyclesSoundIrq;
- if (*irq_enable) {
- if (nGame) ZetSetIRQLine(0, CPU_IRQSTATUS_AUTO);
- else ZetNmi();
- }
- }
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen / nInterleave;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- BurnYM2151Render(pSoundBuf, nSegmentLength);
- UPD7759Update(0, pSoundBuf, nSegmentLength);
- K007232Update(0, pSoundBuf, nSegmentLength);
- nSoundBufferPos += nSegmentLength;
- }
- }
-
- if (nGame) {
- if (nmi_enable[0]) HD6309SetIRQLine(0x20, CPU_IRQSTATUS_AUTO); // nmi
- } else {
- if (K052109_irq_enabled) HD6309SetIRQLine(HD6309_IRQ_LINE, CPU_IRQSTATUS_AUTO);
- }
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
- if (nSegmentLength) {
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- BurnYM2151Render(pSoundBuf, nSegmentLength);
- UPD7759Update(0, pSoundBuf, nSegmentLength);
- K007232Update(0, pSoundBuf, nSegmentLength);
- }
- }
-
- HD6309Close();
- ZetClose();
-
- if (pBurnDraw) {
- DrvDraw();
- }
-
- return 0;
-}
-
-static INT32 DrvScan(INT32 nAction,INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin) {
- *pnMin = 0x029704;
- }
-
- if (nAction & ACB_VOLATILE) {
- memset(&ba, 0, sizeof(ba));
-
- ba.Data = AllRam;
- ba.nLen = RamEnd - AllRam;
- ba.szName = "All Ram";
- BurnAcb(&ba);
-
- HD6309Scan(nAction);
- ZetScan(nAction);
-
- UPD7759Scan(0, nAction, pnMin);
- BurnYM2151Scan(nAction);
- K007232Scan(nAction, pnMin);
-
- KonamiICScan(nAction);
- }
-
- if (nAction & ACB_WRITE) {
- HD6309Open(0);
- bankswitch(nDrvBank[0]);
- HD6309Close();
-
- soundbankswitch(nDrvBank[1]);
- }
-
- return 0;
-}
-
-
-// The Main Event (4 Players ver. Y)
-
-static struct BurnRomInfo mainevtRomDesc[] = {
- { "799y02.k11", 0x10000, 0xe2e7dbd5, 1 | BRF_PRG | BRF_ESS }, // 0 HD6309 Code
-
- { "799c01.f7", 0x08000, 0x447c4c5c, 2 | BRF_PRG | BRF_ESS }, // 1 Z80 Code
-
- { "799c06.f22", 0x08000, 0xf839cb58, 3 | BRF_GRA }, // 2 K052109 Tiles
- { "799c07.h22", 0x08000, 0x176df538, 3 | BRF_GRA }, // 3
- { "799c08.j22", 0x08000, 0xd01e0078, 3 | BRF_GRA }, // 4
- { "799c09.k22", 0x08000, 0x9baec75e, 3 | BRF_GRA }, // 5
-
- { "799b04.h4", 0x80000, 0x323e0c2b, 4 | BRF_GRA }, // 6 K051960 Tiles
- { "799b05.k4", 0x80000, 0x571c5831, 4 | BRF_GRA }, // 7
-
- { "799b03.d4", 0x80000, 0xf1cfd342, 5 | BRF_SND }, // 8 K007232 Samples
-
- { "799b06.c22", 0x80000, 0x2c8c47d7, 6 | BRF_GRA }, // 9 UPD7759
-
- { "63s141n.k14", 0x00100, 0x61f6c8d1, 7 | BRF_OPT }, // 10 Priority Prom
-};
-
-STD_ROM_PICK(mainevt)
-STD_ROM_FN(mainevt)
-
-static INT32 mainevtInit()
-{
- return DrvInit(0);
-}
-
-struct BurnDriver BurnDrvMainevt = {
- "mainevt", NULL, NULL, NULL, "1988",
- "The Main Event (4 Players ver. Y)\0", NULL, "Konami", "GX799",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 4, HARDWARE_PREFIX_KONAMI, GBF_SPORTSMISC, 0,
- NULL, mainevtRomInfo, mainevtRomName, NULL, NULL, MainevtInputInfo, MainevtDIPInfo,
- mainevtInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x100,
- 288, 224, 4, 3
-};
-
-
-// The Main Event (4 Players ver. F)
-
-static struct BurnRomInfo mainevtoRomDesc[] = {
- { "799f02.k11", 0x10000, 0xc143596b, 1 | BRF_PRG | BRF_ESS }, // 0 HD6309 Code
-
- { "799c01.f7", 0x08000, 0x447c4c5c, 2 | BRF_PRG | BRF_ESS }, // 1 Z80 Code
-
- { "799c06.f22", 0x08000, 0xf839cb58, 3 | BRF_GRA }, // 2 K052109 Tiles
- { "799c07.h22", 0x08000, 0x176df538, 3 | BRF_GRA }, // 3
- { "799c08.j22", 0x08000, 0xd01e0078, 3 | BRF_GRA }, // 4
- { "799c09.k22", 0x08000, 0x9baec75e, 3 | BRF_GRA }, // 5
-
- { "799b04.h4", 0x80000, 0x323e0c2b, 4 | BRF_GRA }, // 6 K051960 Tiles
- { "799b05.k4", 0x80000, 0x571c5831, 4 | BRF_GRA }, // 7
-
- { "799b03.d4", 0x80000, 0xf1cfd342, 5 | BRF_SND }, // 8 K007232 Samples
-
- { "799b06.c22", 0x80000, 0x2c8c47d7, 6 | BRF_GRA }, // 9 UPD7759
-
- { "63s141n.k14", 0x00100, 0x61f6c8d1, 7 | BRF_OPT }, // 10 Priority Prom
-};
-
-STD_ROM_PICK(mainevto)
-STD_ROM_FN(mainevto)
-
-struct BurnDriver BurnDrvMainevto = {
- "mainevto", "mainevt", NULL, NULL, "1988",
- "The Main Event (4 Players ver. F)\0", NULL, "Konami", "GX799",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 4, HARDWARE_PREFIX_KONAMI, GBF_SPORTSMISC, 0,
- NULL, mainevtoRomInfo, mainevtoRomName, NULL, NULL, MainevtInputInfo, MainevtDIPInfo,
- mainevtInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x100,
- 288, 224, 4, 3
-};
-
-
-// The Main Event (2 Players ver. X)
-
-static struct BurnRomInfo mainevt2pRomDesc[] = {
- { "799x02.k11", 0x10000, 0x42cfc650, 1 | BRF_PRG | BRF_ESS }, // 0 HD6309 Code
-
- { "799c01.f7", 0x08000, 0x447c4c5c, 2 | BRF_PRG | BRF_ESS }, // 1 Z80 Code
-
- { "799c06.f22", 0x08000, 0xf839cb58, 3 | BRF_GRA }, // 2 K052109 Tiles
- { "799c07.h22", 0x08000, 0x176df538, 3 | BRF_GRA }, // 3
- { "799c08.j22", 0x08000, 0xd01e0078, 3 | BRF_GRA }, // 4
- { "799c09.k22", 0x08000, 0x9baec75e, 3 | BRF_GRA }, // 5
-
- { "799b04.h4", 0x80000, 0x323e0c2b, 4 | BRF_GRA }, // 6 K051960 Tiles
- { "799b05.k4", 0x80000, 0x571c5831, 4 | BRF_GRA }, // 7
-
- { "799b03.d4", 0x80000, 0xf1cfd342, 5 | BRF_SND }, // 8 K007232 Samples
-
- { "799b06.c22", 0x80000, 0x2c8c47d7, 6 | BRF_GRA }, // 9 UPD7759
-
- { "63s141n.k14", 0x00100, 0x61f6c8d1, 7 | BRF_OPT }, // 10 Priority Prom
-};
-
-STD_ROM_PICK(mainevt2p)
-STD_ROM_FN(mainevt2p)
-
-struct BurnDriver BurnDrvMainevt2p = {
- "mainevt2p", "mainevt", NULL, NULL, "1988",
- "The Main Event (2 Players ver. X)\0", NULL, "Konami", "GX799",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_KONAMI, GBF_SPORTSMISC, 0,
- NULL, mainevt2pRomInfo, mainevt2pRomName, NULL, NULL, Mainevt2pInputInfo, Mainevt2pDIPInfo,
- mainevtInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x100,
- 288, 224, 4, 3
-};
-
-
-// Ring no Ohja (Japan 2 Players ver. N)
-
-static struct BurnRomInfo ringohjaRomDesc[] = {
- { "799n02.k11", 0x10000, 0xf9305dd0, 1 | BRF_PRG | BRF_ESS }, // 0 HD6309 Code
-
- { "799c01.f7", 0x08000, 0x447c4c5c, 2 | BRF_PRG | BRF_ESS }, // 1 Z80 Code
-
- { "799c06.f22", 0x08000, 0xf839cb58, 3 | BRF_GRA }, // 2 K052109 Tiles
- { "799c07.h22", 0x08000, 0x176df538, 3 | BRF_GRA }, // 3
- { "799c08.j22", 0x08000, 0xd01e0078, 3 | BRF_GRA }, // 4
- { "799c09.k22", 0x08000, 0x9baec75e, 3 | BRF_GRA }, // 5
-
- { "799b04.h4", 0x80000, 0x323e0c2b, 4 | BRF_GRA }, // 6 K051960 Tiles
- { "799b05.k4", 0x80000, 0x571c5831, 4 | BRF_GRA }, // 7
-
- { "799b03.d4", 0x80000, 0xf1cfd342, 5 | BRF_SND }, // 8 K007232 Samples
-
- { "799b06.c22", 0x80000, 0x2c8c47d7, 6 | BRF_GRA }, // 9 UPD7759
-
- { "63s141n.k14", 0x00100, 0x61f6c8d1, 7 | BRF_OPT }, // 10 Priority Prom
-};
-
-STD_ROM_PICK(ringohja)
-STD_ROM_FN(ringohja)
-
-struct BurnDriver BurnDrvRingohja = {
- "ringohja", "mainevt", NULL, NULL, "1988",
- "Ring no Ohja (Japan 2 Players ver. N)\0", NULL, "Konami", "GX799",
- L"\u30EA\u30F3\u30B0\u306E \u738B\u8005 (Japan 2 Players ver. N)\0Ring no Ohja\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_KONAMI, GBF_SPORTSMISC, 0,
- NULL, ringohjaRomInfo, ringohjaRomName, NULL, NULL, Mainevt2pInputInfo, Mainevt2pDIPInfo,
- mainevtInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x100,
- 288, 224, 4, 3
-};
-
-
-// Devastators (ver. Z)
-
-static struct BurnRomInfo devstorsRomDesc[] = {
- { "890z02.k11", 0x10000, 0xebeb306f, 1 | BRF_PRG | BRF_ESS }, // 0 HD6309 Code
-
- { "890k01.f7", 0x08000, 0xd44b3eb0, 2 | BRF_PRG | BRF_ESS }, // 1 Z80 Code
-
- { "890f06.f22", 0x10000, 0x26592155, 3 | BRF_GRA }, // 2 K052109 Tiles
- { "890f07.h22", 0x10000, 0x6c74fa2e, 3 | BRF_GRA }, // 3
- { "890f08.j22", 0x10000, 0x29e12e80, 3 | BRF_GRA }, // 4
- { "890f09.k22", 0x10000, 0x67ca40d5, 3 | BRF_GRA }, // 5
-
- { "890f04.h4", 0x80000, 0xf16cd1fa, 4 | BRF_GRA }, // 6 K051960 Tiles
- { "890f05.k4", 0x80000, 0xda37db05, 4 | BRF_GRA }, // 7
-
- { "890f03.d4", 0x80000, 0x19065031, 6 | BRF_GRA }, // 8 K007232 Samples
-
- { "63s141n.k14", 0x00100, 0xd3620106, 5 | BRF_OPT }, // 9 Priority Prom
-};
-
-STD_ROM_PICK(devstors)
-STD_ROM_FN(devstors)
-
-static INT32 devstorsInit()
-{
- return DrvInit(1);
-}
-
-struct BurnDriver BurnDrvDevstors = {
- "devstors", NULL, NULL, NULL, "1988",
- "Devastators (ver. Z)\0", "Minor Video glitches in level 2.", "Konami", "GX890",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED, 2, HARDWARE_PREFIX_KONAMI, GBF_SHOOT, 0,
- NULL, devstorsRomInfo, devstorsRomName, NULL, NULL, DevstorsInputInfo, DevstorsDIPInfo,
- devstorsInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x100,
- 224, 304, 3, 4
-};
-
-
-// Devastators (ver. X)
-
-static struct BurnRomInfo devstors2RomDesc[] = {
- { "890x02.k11", 0x10000, 0xe58ebb35, 1 | BRF_PRG | BRF_ESS }, // 0 HD6309 Code
-
- { "890k01.f7", 0x08000, 0xd44b3eb0, 2 | BRF_PRG | BRF_ESS }, // 1 Z80 Code
-
- { "890f06.f22", 0x10000, 0x26592155, 3 | BRF_GRA }, // 2 K052109 Tiles
- { "890f07.h22", 0x10000, 0x6c74fa2e, 3 | BRF_GRA }, // 3
- { "890f08.j22", 0x10000, 0x29e12e80, 3 | BRF_GRA }, // 4
- { "890f09.k22", 0x10000, 0x67ca40d5, 3 | BRF_GRA }, // 5
-
- { "890f04.h4", 0x80000, 0xf16cd1fa, 4 | BRF_GRA }, // 6 K051960 Tiles
- { "890f05.k4", 0x80000, 0xda37db05, 4 | BRF_GRA }, // 7
-
- { "890f03.d4", 0x80000, 0x19065031, 6 | BRF_GRA }, // 8 K007232 Samples
-
- { "63s141n.k14", 0x00100, 0xd3620106, 5 | BRF_OPT }, // 9 Priority Prom
-};
-
-STD_ROM_PICK(devstors2)
-STD_ROM_FN(devstors2)
-
-struct BurnDriver BurnDrvDevstors2 = {
- "devstors2", "devstors", NULL, NULL, "1988",
- "Devastators (ver. X)\0", "Minor Video glitches in level 2.", "Konami", "GX890",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED, 2, HARDWARE_PREFIX_KONAMI, GBF_SHOOT, 0,
- NULL, devstors2RomInfo, devstors2RomName, NULL, NULL, DevstorsInputInfo, Devstors2DIPInfo,
- devstorsInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x100,
- 224, 304, 3, 4
-};
-
-
-// Devastators (ver. V)
-
-static struct BurnRomInfo devstors3RomDesc[] = {
- { "890v02.k11", 0x10000, 0x52f4ccdd, 1 | BRF_PRG | BRF_ESS }, // 0 HD6309 Code
-
- { "890k01.f7", 0x08000, 0xd44b3eb0, 2 | BRF_PRG | BRF_ESS }, // 1 Z80 Code
-
- { "890f06.f22", 0x10000, 0x26592155, 3 | BRF_GRA }, // 2 K052109 Tiles
- { "890f07.h22", 0x10000, 0x6c74fa2e, 3 | BRF_GRA }, // 3
- { "890f08.j22", 0x10000, 0x29e12e80, 3 | BRF_GRA }, // 4
- { "890f09.k22", 0x10000, 0x67ca40d5, 3 | BRF_GRA }, // 5
-
- { "890f04.h4", 0x80000, 0xf16cd1fa, 4 | BRF_GRA }, // 6 K051960 Tiles
- { "890f05.k4", 0x80000, 0xda37db05, 4 | BRF_GRA }, // 7
-
- { "890f03.d4", 0x80000, 0x19065031, 6 | BRF_GRA }, // 8 K007232 Samples
-
- { "63s141n.k14", 0x00100, 0xd3620106, 5 | BRF_OPT }, // 9 Priority Prom
-};
-
-STD_ROM_PICK(devstors3)
-STD_ROM_FN(devstors3)
-
-struct BurnDriver BurnDrvDevstors3 = {
- "devstors3", "devstors", NULL, NULL, "1988",
- "Devastators (ver. V)\0", "Minor Video glitches in level 2.", "Konami", "GX890",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED, 2, HARDWARE_PREFIX_KONAMI, GBF_SHOOT, 0,
- NULL, devstors3RomInfo, devstors3RomName, NULL, NULL, DevstorsInputInfo, DevstorsDIPInfo,
- devstorsInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x100,
- 224, 304, 3, 4
-};
-
-
-// Garuka (Japan ver. W)
-
-static struct BurnRomInfo garukaRomDesc[] = {
- { "890w02.k11", 0x10000, 0xb2f6f538, 1 | BRF_PRG | BRF_ESS }, // 0 HD6309 Code
-
- { "890k01.f7", 0x08000, 0xd44b3eb0, 2 | BRF_PRG | BRF_ESS }, // 1 Z80 Code
-
- { "890f06.f22", 0x10000, 0x26592155, 3 | BRF_GRA }, // 2 K052109 Tiles
- { "890f07.h22", 0x10000, 0x6c74fa2e, 3 | BRF_GRA }, // 3
- { "890f08.j22", 0x10000, 0x29e12e80, 3 | BRF_GRA }, // 4
- { "890f09.k22", 0x10000, 0x67ca40d5, 3 | BRF_GRA }, // 5
-
- { "890f04.h4", 0x80000, 0xf16cd1fa, 4 | BRF_GRA }, // 6 K051960 Tiles
- { "890f05.k4", 0x80000, 0xda37db05, 4 | BRF_GRA }, // 7
-
- { "890f03.d4", 0x80000, 0x19065031, 6 | BRF_GRA }, // 8 K007232 Samples
-
- { "63s141n.k14", 0x00100, 0xd3620106, 5 | BRF_OPT }, // 9 Priority Prom
-};
-
-STD_ROM_PICK(garuka)
-STD_ROM_FN(garuka)
-
-struct BurnDriver BurnDrvGaruka = {
- "garuka", "devstors", NULL, NULL, "1988",
- "Garuka (Japan ver. W)\0", "Minor Video glitches in level 2.", "Konami", "GX890",
- L"\u9913\u6D41\u798D (Japan ver. W)\0Garuka\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED, 2, HARDWARE_PREFIX_KONAMI, GBF_SHOOT, 0,
- NULL, garukaRomInfo, garukaRomName, NULL, NULL, DevstorsInputInfo, Devstors2DIPInfo,
- devstorsInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x100,
- 224, 304, 3, 4
-};
diff --git a/jan/src/burn/drv/konami/d_megazone.cpp b/jan/src/burn/drv/konami/d_megazone.cpp
deleted file mode 100644
index 27e02dc16..000000000
--- a/jan/src/burn/drv/konami/d_megazone.cpp
+++ /dev/null
@@ -1,1031 +0,0 @@
-// FB Alpha Mega Zone driver module
-// Based on MAME driver by Chris Hardy
-
-#include "tiles_generic.h"
-#include "m6809_intf.h"
-#include "z80_intf.h"
-#include "i8039.h"
-#include "flt_rc.h"
-#include "driver.h"
-extern "C" {
-#include "ay8910.h"
-}
-#include "dac.h"
-
-static UINT8 *AllMem;
-static UINT8 *MemEnd;
-static UINT8 *AllRam;
-static UINT8 *RamEnd;
-static UINT8 *DrvM6809ROM;
-static UINT8 *DrvM6809DecROM;
-static UINT8 *DrvZ80ROM;
-static UINT8 *DrvI8039ROM;
-static UINT8 *DrvGfxROM0;
-static UINT8 *DrvGfxROM1;
-static UINT8 *DrvColPROM;
-static UINT8 *DrvColRAM0;
-static UINT8 *DrvVidRAM0;
-static UINT8 *DrvColRAM1;
-static UINT8 *DrvVidRAM1;
-static UINT8 *DrvSprRAM;
-static UINT8 *DrvShareRAM;
-
-static UINT32 *DrvPalette;
-static UINT8 DrvRecalc;
-
-static INT16 *pAY8910Buffer[15];
-
-static UINT8 scrollx;
-static UINT8 scrolly;
-static UINT8 irq_enable;
-static UINT8 soundlatch;
-static UINT8 i8039_status;
-
-static INT32 watchdog;
-
-static UINT8 DrvJoy1[8];
-static UINT8 DrvJoy2[8];
-static UINT8 DrvJoy3[8];
-static UINT8 DrvDips[3];
-static UINT8 DrvInputs[3];
-static UINT8 DrvReset;
-
-static struct BurnInputInfo MegazoneInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy1 + 0, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 3, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy2 + 2, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy2 + 3, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy2 + 0, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy2 + 1, "p1 right" },
- {"P1 Button", BIT_DIGITAL, DrvJoy2 + 4, "p1 fire 1" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy1 + 1, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy1 + 4, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvJoy3 + 2, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy3 + 3, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy3 + 0, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy3 + 1, "p2 right" },
- {"P2 Button", BIT_DIGITAL, DrvJoy3 + 4, "p2 fire 1" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service", BIT_DIGITAL, DrvJoy1 + 2, "service" },
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip" },
-};
-
-STDINPUTINFO(Megazone)
-
-static struct BurnDIPInfo MegazoneDIPList[]=
-{
- {0x10, 0xff, 0xff, 0xff, NULL },
- {0x11, 0xff, 0xff, 0x5b, NULL },
-
- {0 , 0xfe, 0 , 16, "Coin A" },
- {0x10, 0x01, 0x0f, 0x02, "4 Coins 1 Credits" },
- {0x10, 0x01, 0x0f, 0x05, "3 Coins 1 Credits" },
- {0x10, 0x01, 0x0f, 0x08, "2 Coins 1 Credits" },
- {0x10, 0x01, 0x0f, 0x04, "3 Coins 2 Credits" },
- {0x10, 0x01, 0x0f, 0x01, "4 Coins 3 Credits" },
- {0x10, 0x01, 0x0f, 0x0f, "1 Coin 1 Credits" },
- {0x10, 0x01, 0x0f, 0x03, "3 Coins 4 Credits" },
- {0x10, 0x01, 0x0f, 0x07, "2 Coins 3 Credits" },
- {0x10, 0x01, 0x0f, 0x0e, "1 Coin 2 Credits" },
- {0x10, 0x01, 0x0f, 0x06, "2 Coins 5 Credits" },
- {0x10, 0x01, 0x0f, 0x0d, "1 Coin 3 Credits" },
- {0x10, 0x01, 0x0f, 0x0c, "1 Coin 4 Credits" },
- {0x10, 0x01, 0x0f, 0x0b, "1 Coin 5 Credits" },
- {0x10, 0x01, 0x0f, 0x0a, "1 Coin 6 Credits" },
- {0x10, 0x01, 0x0f, 0x09, "1 Coin 7 Credits" },
- {0x10, 0x01, 0x0f, 0x00, "Free Play" },
-
- {0 , 0xfe, 0 , 16, "Coin B" },
- {0x10, 0x01, 0xf0, 0x20, "4 Coins 1 Credits" },
- {0x10, 0x01, 0xf0, 0x50, "3 Coins 1 Credits" },
- {0x10, 0x01, 0xf0, 0x80, "2 Coins 1 Credits" },
- {0x10, 0x01, 0xf0, 0x40, "3 Coins 2 Credits" },
- {0x10, 0x01, 0xf0, 0x10, "4 Coins 3 Credits" },
- {0x10, 0x01, 0xf0, 0xf0, "1 Coin 1 Credits" },
- {0x10, 0x01, 0xf0, 0x30, "3 Coins 4 Credits" },
- {0x10, 0x01, 0xf0, 0x70, "2 Coins 3 Credits" },
- {0x10, 0x01, 0xf0, 0xe0, "1 Coin 2 Credits" },
- {0x10, 0x01, 0xf0, 0x60, "2 Coins 5 Credits" },
- {0x10, 0x01, 0xf0, 0xd0, "1 Coin 3 Credits" },
- {0x10, 0x01, 0xf0, 0xc0, "1 Coin 4 Credits" },
- {0x10, 0x01, 0xf0, 0xb0, "1 Coin 5 Credits" },
- {0x10, 0x01, 0xf0, 0xa0, "1 Coin 6 Credits" },
- {0x10, 0x01, 0xf0, 0x90, "1 Coin 7 Credits" },
- {0x10, 0x01, 0xf0, 0x00, "No Coin B" },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x11, 0x01, 0x03, 0x03, "3" },
- {0x11, 0x01, 0x03, 0x02, "4" },
- {0x11, 0x01, 0x03, 0x01, "5" },
- {0x11, 0x01, 0x03, 0x00, "7" },
-
-// {0 , 0xfe, 0 , 2, "Cabinet" },
-// {0x11, 0x01, 0x04, 0x00, "Upright" },
-// {0x11, 0x01, 0x04, 0x04, "Cocktail" },
-
- {0 , 0xfe, 0 , 4, "Bonus Life" },
- {0x11, 0x01, 0x18, 0x18, "20k 70k 70k+" },
- {0x11, 0x01, 0x18, 0x10, "20k 80k 80k+" },
- {0x11, 0x01, 0x18, 0x08, "30k 90k 90k+" },
- {0x11, 0x01, 0x18, 0x00, "30k 100k 100k+" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x11, 0x01, 0x60, 0x60, "Easy" },
- {0x11, 0x01, 0x60, 0x40, "Normal" },
- {0x11, 0x01, 0x60, 0x20, "Hard" },
- {0x11, 0x01, 0x60, 0x00, "Hardest" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x11, 0x01, 0x80, 0x80, "Off" },
- {0x11, 0x01, 0x80, 0x00, "On" },
-};
-
-STDDIPINFO(Megazone)
-
-static struct BurnDIPInfo MegazonaDIPList[]=
-{
- {0x10, 0xff, 0xff, 0xff, NULL },
- {0x11, 0xff, 0xff, 0x5b, NULL },
-
- {0 , 0xfe, 0 , 16, "Coin A" },
- {0x10, 0x01, 0x0f, 0x02, "4 Coins 1 Credits" },
- {0x10, 0x01, 0x0f, 0x05, "3 Coins 1 Credits" },
- {0x10, 0x01, 0x0f, 0x08, "2 Coins 1 Credits" },
- {0x10, 0x01, 0x0f, 0x04, "3 Coins 2 Credits" },
- {0x10, 0x01, 0x0f, 0x01, "4 Coins 3 Credits" },
- {0x10, 0x01, 0x0f, 0x0f, "1 Coin 1 Credits" },
- {0x10, 0x01, 0x0f, 0x03, "3 Coins 4 Credits" },
- {0x10, 0x01, 0x0f, 0x07, "2 Coins 3 Credits" },
- {0x10, 0x01, 0x0f, 0x0e, "1 Coin 2 Credits" },
- {0x10, 0x01, 0x0f, 0x06, "2 Coins 5 Credits" },
- {0x10, 0x01, 0x0f, 0x0d, "1 Coin 3 Credits" },
- {0x10, 0x01, 0x0f, 0x0c, "1 Coin 4 Credits" },
- {0x10, 0x01, 0x0f, 0x0b, "1 Coin 5 Credits" },
- {0x10, 0x01, 0x0f, 0x0a, "1 Coin 6 Credits" },
- {0x10, 0x01, 0x0f, 0x09, "1 Coin 7 Credits" },
- {0x10, 0x01, 0x0f, 0x00, "Free Play" },
-
- {0 , 0xfe, 0 , 16, "Coin B" },
- {0x10, 0x01, 0xf0, 0x20, "4 Coins 1 Credits" },
- {0x10, 0x01, 0xf0, 0x50, "3 Coins 1 Credits" },
- {0x10, 0x01, 0xf0, 0x80, "2 Coins 1 Credits" },
- {0x10, 0x01, 0xf0, 0x40, "3 Coins 2 Credits" },
- {0x10, 0x01, 0xf0, 0x10, "4 Coins 3 Credits" },
- {0x10, 0x01, 0xf0, 0xf0, "1 Coin 1 Credits" },
- {0x10, 0x01, 0xf0, 0x30, "3 Coins 4 Credits" },
- {0x10, 0x01, 0xf0, 0x70, "2 Coins 3 Credits" },
- {0x10, 0x01, 0xf0, 0xe0, "1 Coin 2 Credits" },
- {0x10, 0x01, 0xf0, 0x60, "2 Coins 5 Credits" },
- {0x10, 0x01, 0xf0, 0xd0, "1 Coin 3 Credits" },
- {0x10, 0x01, 0xf0, 0xc0, "1 Coin 4 Credits" },
- {0x10, 0x01, 0xf0, 0xb0, "1 Coin 5 Credits" },
- {0x10, 0x01, 0xf0, 0xa0, "1 Coin 6 Credits" },
- {0x10, 0x01, 0xf0, 0x90, "1 Coin 7 Credits" },
- {0x10, 0x01, 0xf0, 0x00, "No Coin B" },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x11, 0x01, 0x03, 0x03, "2" },
- {0x11, 0x01, 0x03, 0x02, "3" },
- {0x11, 0x01, 0x03, 0x01, "4" },
- {0x11, 0x01, 0x03, 0x00, "7" },
-
-// {0 , 0xfe, 0 , 2, "Cabinet" },
-// {0x11, 0x01, 0x04, 0x00, "Upright" },
-// {0x11, 0x01, 0x04, 0x04, "Cocktail" },
-
- {0 , 0xfe, 0 , 4, "Bonus Life" },
- {0x11, 0x01, 0x18, 0x18, "20k 70k 70k+" },
- {0x11, 0x01, 0x18, 0x10, "20k 80k 80k+" },
- {0x11, 0x01, 0x18, 0x08, "30k 90k 90k+" },
- {0x11, 0x01, 0x18, 0x00, "30k 100k 100k+" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x11, 0x01, 0x60, 0x60, "Easy" },
- {0x11, 0x01, 0x60, 0x40, "Normal" },
- {0x11, 0x01, 0x60, 0x20, "Hard" },
- {0x11, 0x01, 0x60, 0x00, "Hardest" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x11, 0x01, 0x80, 0x80, "Off" },
- {0x11, 0x01, 0x80, 0x00, "On" },
-};
-
-STDDIPINFO(Megazona)
-
-static void megazone_main_write(UINT16 address, UINT8 data)
-{
- switch (address)
- {
- case 0x0000:
- case 0x0001: // coin counter
- return;
-
- case 0x0005: // flipscreen
- return;
-
- case 0x0007:
- irq_enable = data & 0x01;
- return;
-
- case 0x0800:
- watchdog = 0;
- return;
-
- case 0x1000:
- scrollx = data;
- return;
-
- case 0x1800:
- scrolly = data;
- return;
- }
-}
-
-static void __fastcall megazone_sound_write(UINT16 address, UINT8 data)
-{
- switch (address)
- {
- case 0x2000:
- I8039SetIrqState(1);
- return;
-
- case 0x4000:
- soundlatch = data;
- return;
-
- case 0xa000:
- case 0xc000:
- return;
-
- case 0xc001:
- watchdog = 0;
- return;
- }
-}
-
-static UINT8 __fastcall megazone_sound_read(UINT16 address)
-{
- switch (address)
- {
- case 0x6000:
- return DrvInputs[0];
-
- case 0x6001:
- return DrvInputs[1];
-
- case 0x6002:
- return DrvInputs[2];
-
- case 0x8000:
- return DrvDips[1];
-
- case 0x8001:
- return DrvDips[0];
- }
-
- return 0;
-}
-
-static void __fastcall megazone_sound_write_port(UINT16 port, UINT8 data)
-{
- switch (port & 0xff)
- {
- case 0x00:
- AY8910Write(0, 0, data);
- return;
-
- case 0x02:
- AY8910Write(0, 1, data);
- return;
- }
-}
-
-static UINT8 __fastcall megazone_sound_read_port(UINT16 port)
-{
- switch (port & 0xff)
- {
- case 0x00:
- case 0x01:
- case 0x02:
- return AY8910Read(0);
- }
-
- return 0;
-}
-
-static UINT8 __fastcall megazone_i8039_read(UINT32 address)
-{
- return DrvI8039ROM[address & 0x0fff];
-}
-
-static void __fastcall megazone_i8039_write_port(UINT32 port, UINT8 data)
-{
- switch (port & 0x1ff)
- {
- case I8039_p1:
- DACWrite(0, data);
- return;
-
- case I8039_p2:
- if ((data & 0x80) == 0) {
- I8039SetIrqState(0);
- }
- i8039_status = (data >> 4) & 0x07;
- return;
- }
-}
-
-static UINT8 __fastcall megazone_i8039_read_port(UINT32 port)
-{
- if ((port & 0x1ff) < 0x100) {
- return soundlatch;
- }
-
- return 0;
-}
-
-static UINT8 AY8910_0_port_A_Read(UINT32)
-{
- if (ZetGetActive() == -1) return i8039_status;
-
- UINT8 timer = (((ZetTotalCycles() * 7159) / 12288) / 512) & 0x0f;
-
- return (timer << 4) | i8039_status;
-}
-
-static void AY8910_0_port_A_Write(UINT32, UINT32 data)
-{
- if (ZetGetActive() == -1) return;
-
- for (INT32 i = 0; i < 3; i++, data>>=2)
- {
- INT32 C = 0;
- if (data & 1) C += 10000; // 10000pF = 0.01uF
- if (data & 2) C += 220000; // 220000pF = 0.22uF
-
- filter_rc_set_RC(i, FLT_RC_LOWPASS, 1000, 2200, 200, CAP_P(C));
- }
-}
-
-static INT32 DrvSyncDAC()
-{
- return (INT32)(float)(nBurnSoundLen * (ZetTotalCycles() / (3072000.0000 / (nBurnFPS / 100.0000))));
-}
-
-static INT32 DrvDoReset(INT32 clear_ram)
-{
- if (clear_ram) {
- memset (AllRam, 0, RamEnd - AllRam);
- }
-
- M6809Open(0);
- M6809Reset();
- M6809Close();
-
- ZetOpen(0);
- ZetReset();
- AY8910Reset(0);
- ZetClose();
-
- I8039Reset();
-
- DACReset();
-
- scrollx = 0;
- scrolly = 0;
- irq_enable = 0;
- soundlatch = 0;
- i8039_status = 0;
-
- watchdog = 0;
-
- return 0;
-}
-
-static INT32 MemIndex()
-{
- UINT8 *Next; Next = AllMem;
-
- DrvM6809ROM = Next; Next += 0x010000;
- DrvM6809DecROM = Next; Next += 0x010000;
-
- DrvZ80ROM = Next; Next += 0x002000;
-
- DrvI8039ROM = Next; Next += 0x001000;
-
- DrvGfxROM0 = Next; Next += 0x010000;
- DrvGfxROM1 = Next; Next += 0x008000;
-
- DrvColPROM = Next; Next += 0x000260;
-
- DrvPalette = (UINT32*)Next; Next += 0x0200 * sizeof(UINT32);
-
- AllRam = Next;
-
- DrvColRAM0 = Next; Next += 0x000400;
- DrvVidRAM0 = Next; Next += 0x000400;
- DrvColRAM1 = Next; Next += 0x000400;
- DrvVidRAM1 = Next; Next += 0x000400;
-
- DrvSprRAM = Next; Next += 0x000800;
- DrvShareRAM = Next; Next += 0x000800;
-
- RamEnd = Next;
-
- pAY8910Buffer[ 0] = (INT16*)Next; Next += nBurnSoundLen * sizeof(INT16);
- pAY8910Buffer[ 1] = (INT16*)Next; Next += nBurnSoundLen * sizeof(INT16);
- pAY8910Buffer[ 2] = (INT16*)Next; Next += nBurnSoundLen * sizeof(INT16);
- pAY8910Buffer[ 3] = (INT16*)Next; Next += nBurnSoundLen * sizeof(INT16);
- pAY8910Buffer[ 4] = (INT16*)Next; Next += nBurnSoundLen * sizeof(INT16);
- pAY8910Buffer[ 5] = (INT16*)Next; Next += nBurnSoundLen * sizeof(INT16);
-
- MemEnd = Next;
-
- return 0;
-}
-
-static void DrvProgramDecode()
-{
- for (INT32 i = 0x4000; i < 0x10000; i++) {
- DrvM6809DecROM[i] = DrvM6809ROM[i] ^ (((i&2)?0x80:0x20)|((i&8)?0x08:0x02));
- }
-}
-
-static INT32 DrvGfxDecode() // 0, 100
-{
- INT32 Plane0[4] = { STEP4(0,1) };
- INT32 Plane1[4] = { 0x4000*8+4, 0x4000*8+0, 4, 0 };
- INT32 XOffs0[8] = { STEP8(0,4) };
- INT32 YOffs0[8] = { STEP8(0,32) };
- INT32 XOffs1[16] = { STEP4(0,1), STEP4(64,1), STEP4(128,1), STEP4(192,1) };
- INT32 YOffs1[16] = { STEP8(0,8), STEP8(256,8) };
-
- UINT8 *tmp = (UINT8*)BurnMalloc(0x8000);
- if (tmp == NULL) {
- return 1;
- }
-
- memcpy (tmp, DrvGfxROM0, 0x8000);
-
- GfxDecode(0x0100, 4, 16, 16, Plane1, XOffs1, YOffs1, 0x200, tmp, DrvGfxROM0);
-
- memcpy (tmp, DrvGfxROM1, 0x4000);
-
- GfxDecode(0x0200, 4, 8, 8, Plane0, XOffs0, YOffs0, 0x100, tmp, DrvGfxROM1);
-
- BurnFree (tmp);
-
- return 0;
-}
-
-static INT32 DrvInit()
-{
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(DrvM6809ROM + 0x06000, 0, 1)) return 1;
- if (BurnLoadRom(DrvM6809ROM + 0x08000, 1, 1)) return 1;
- if (BurnLoadRom(DrvM6809ROM + 0x0a000, 2, 1)) return 1;
- if (BurnLoadRom(DrvM6809ROM + 0x0c000, 3, 1)) return 1;
- if (BurnLoadRom(DrvM6809ROM + 0x0e000, 4, 1)) return 1;
-
- if (BurnLoadRom(DrvZ80ROM + 0x00000, 5, 1)) return 1;
-
- if (BurnLoadRom(DrvI8039ROM + 0x00000, 6, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x00000, 7, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x02000, 8, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x04000, 9, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x06000, 10, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM1 + 0x00000, 11, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x02000, 12, 1)) return 1;
-
- if (BurnLoadRom(DrvColPROM + 0x00000, 13, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x00020, 14, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x00120, 15, 1)) return 1;
-
- DrvProgramDecode();
- DrvGfxDecode();
-
- for (INT32 i = 0; i < 0x200; i++) {
- DrvColPROM[i+0x20] &= 0xf;
- }
- }
-
- M6809Init(1);
- M6809Open(0);
- M6809MapMemory(DrvVidRAM0, 0x2000, 0x23ff, MAP_RAM);
- M6809MapMemory(DrvVidRAM1, 0x2400, 0x27ff, MAP_RAM);
- M6809MapMemory(DrvColRAM0, 0x2800, 0x2bff, MAP_RAM);
- M6809MapMemory(DrvColRAM1, 0x2c00, 0x2fff, MAP_RAM);
- M6809MapMemory(DrvSprRAM, 0x3000, 0x37ff, MAP_RAM);
- M6809MapMemory(DrvShareRAM, 0x3800, 0x3fff, MAP_RAM);
- M6809MapMemory(DrvM6809ROM + 0x4000, 0x4000, 0xffff, MAP_READ);
- M6809MapMemory(DrvM6809DecROM + 0x4000, 0x4000, 0xffff, MAP_FETCH);
- M6809SetWriteHandler(megazone_main_write);
-// M6809SetReadHandler(megazone_main_read);
- M6809Close();
-
- ZetInit(0);
- ZetOpen(0);
- ZetMapMemory(DrvZ80ROM, 0x0000, 0x1fff, MAP_ROM);
- ZetMapMemory(DrvShareRAM, 0xe000, 0xe7ff, MAP_RAM);
- ZetSetWriteHandler(megazone_sound_write);
- ZetSetReadHandler(megazone_sound_read);
- ZetSetOutHandler(megazone_sound_write_port);
- ZetSetInHandler(megazone_sound_read_port);
- ZetClose();
-
- I8039Init(NULL);
- I8039SetProgramReadHandler(megazone_i8039_read);
- I8039SetCPUOpReadHandler(megazone_i8039_read);
- I8039SetCPUOpReadArgHandler(megazone_i8039_read);
- I8039SetIOReadHandler(megazone_i8039_read_port);
- I8039SetIOWriteHandler(megazone_i8039_write_port);
-
- AY8910Init(0, 1789750, nBurnSoundRate, &AY8910_0_port_A_Read, NULL, &AY8910_0_port_A_Write, NULL);
- AY8910SetAllRoutes(0, 0.25, BURN_SND_ROUTE_BOTH);
-
- DACInit(0, 0, 1, DrvSyncDAC);
- DACSetRoute(0, 0.50, BURN_SND_ROUTE_BOTH);
-
- filter_rc_init(0, FLT_RC_LOWPASS, 1000, 2200, 200, CAP_P(0), 0);
- filter_rc_init(1, FLT_RC_LOWPASS, 1000, 2200, 200, CAP_P(0), 1);
- filter_rc_init(2, FLT_RC_LOWPASS, 1000, 2200, 200, CAP_P(0), 1);
- filter_rc_set_route(0, 1.00, BURN_SND_ROUTE_BOTH);
- filter_rc_set_route(1, 1.00, BURN_SND_ROUTE_BOTH);
- filter_rc_set_route(2, 1.00, BURN_SND_ROUTE_BOTH);
-
- GenericTilesInit();
-
- DrvDoReset(1);
-
- return 0;
-}
-
-static INT32 DrvExit()
-{
- GenericTilesExit();
-
- M6809Exit();
- ZetExit();
- I8039Exit();
-
- AY8910Exit(0);
- DACExit();
- filter_rc_exit();
-
- BurnFree (AllMem);
-
- return 0;
-}
-
-static void DrvPaletteInit()
-{
- UINT32 pens[32];
-
- for (INT32 i = 0; i < 32; i++)
- {
- INT32 bit0 = (DrvColPROM[i] >> 0) & 0x01;
- INT32 bit1 = (DrvColPROM[i] >> 1) & 0x01;
- INT32 bit2 = (DrvColPROM[i] >> 2) & 0x01;
- INT32 r = bit2 * 151 + bit1 * 71 + bit0 * 33;
-
- bit0 = (DrvColPROM[i] >> 3) & 0x01;
- bit1 = (DrvColPROM[i] >> 4) & 0x01;
- bit2 = (DrvColPROM[i] >> 5) & 0x01;
- INT32 g = bit2 * 151 + bit1 * 71 + bit0 * 33;
-
- bit0 = (DrvColPROM[i] >> 6) & 0x01;
- bit1 = (DrvColPROM[i] >> 7) & 0x01;
- INT32 b = bit1 * 174 + bit0 * 81;
-
- pens[i] = BurnHighCol(r,g,b,0);
- }
-
- for (INT32 i = 0; i < 0x200; i++) {
- DrvPalette[i] = pens[DrvColPROM[i+0x20] | ((i >> 4) & 0x10)];
- }
-}
-
-static void draw_layer(UINT8 *cram, UINT8 *vram, INT32 xscroll, UINT8 yscroll, INT32 limit, INT32 offset)
-{
- for (INT32 offs = 0; offs < 32 * 32; offs++)
- {
- INT32 sx = (offs & 0x1f) * 8;
- INT32 sy = (offs / 0x20) * 8;
-
- if ((offs & 0x1f) > limit && limit != 0) continue;
-
- sx -= xscroll;
- if (sx < -7) sx += 256;
- sx += offset;
-
- sy -= yscroll;
- if (sy < -7) sy += 256;
-
- INT32 attr = cram[offs];
- INT32 code = vram[offs] + ((attr & 0x80) << 1);
- INT32 color =(attr & 0x0f) + 0x10;
- INT32 flipx = attr & 0x40;
- INT32 flipy = attr & 0x20;
-
- if (flipy) {
- if (flipx) {
- Render8x8Tile_FlipXY_Clip(pTransDraw, code, sx, sy, color, 4, 0x100, DrvGfxROM1);
- } else {
- Render8x8Tile_FlipY_Clip(pTransDraw, code, sx, sy, color, 4, 0x100, DrvGfxROM1);
- }
- } else {
- if (flipx) {
- Render8x8Tile_FlipX_Clip(pTransDraw, code, sx, sy, color, 4, 0x100, DrvGfxROM1);
- } else {
- Render8x8Tile_Clip(pTransDraw, code, sx, sy, color, 4, 0x100, DrvGfxROM1);
- }
- }
-
- if (sx >= 32 || limit) continue;
-
- if (flipy) {
- if (flipx) {
- Render8x8Tile_FlipXY_Clip(pTransDraw, code, sx+256, sy, color, 4, 0x100, DrvGfxROM1);
- } else {
- Render8x8Tile_FlipY_Clip(pTransDraw, code, sx+256, sy, color, 4, 0x100, DrvGfxROM1);
- }
- } else {
- if (flipx) {
- Render8x8Tile_FlipX_Clip(pTransDraw, code, sx+256, sy, color, 4, 0x100, DrvGfxROM1);
- } else {
- Render8x8Tile_Clip(pTransDraw, code, sx+256, sy, color, 4, 0x100, DrvGfxROM1);
- }
- }
- }
-}
-
-static void draw_sprites()
-{
- for (INT32 offs = 0x800 - 4; offs >= 0; offs -= 4)
- {
- INT32 sx = DrvSprRAM[offs + 3] + 32;
- INT32 sy = 255 - ((DrvSprRAM[offs + 1] + 16) & 0xff);
- INT32 code = DrvSprRAM[offs + 2];
- INT32 color = DrvSprRAM[offs + 0] & 0x0f;
- INT32 flipx = ~DrvSprRAM[offs + 0] & 0x40;
- INT32 flipy = DrvSprRAM[offs + 0] & 0x80;
-
- RenderTileTranstab(pTransDraw, DrvGfxROM0, code, color * 16, 0, sx, sy - 16, flipx, flipy, 16, 16, DrvColPROM + 0x20);
- }
-}
-
-static INT32 DrvDraw()
-{
- if (DrvRecalc) {
- DrvPaletteInit();
- DrvRecalc = 0;
- }
-
- draw_layer(DrvColRAM0, DrvVidRAM0, scrollx, scrolly+16, 0, 32);
- draw_sprites();
- draw_layer(DrvColRAM1, DrvVidRAM1, 0, 16, 5, 0);
-
- BurnTransferCopy(DrvPalette);
-
- return 0;
-}
-
-static INT32 DrvFrame()
-{
- watchdog++;
- if (watchdog >= 180) {
- DrvDoReset(0);
- bprintf (0, _T("Watchdog triggered!\n"));
- }
-
- if (DrvReset) {
- DrvDoReset(1);
- }
-
- M6809NewFrame();
- ZetNewFrame();
- I8039NewFrame();
-
- {
- memset (DrvInputs, 0xff, 3);
- for (INT32 i = 0; i < 5; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- DrvInputs[2] ^= (DrvJoy3[i] & 1) << i;
- }
- }
-
- INT32 nSoundBufferPos = 0;
- INT32 nInterleave = 200;
- INT32 nCyclesTotal[3] = { 2048000 / 60, 3072000 / 60, 477266 / 60 };
- INT32 nCyclesDone[3] = { 0, 0, 0 };
-
- M6809Open(0);
- ZetOpen(0);
-
- for (INT32 i = 0; i < nInterleave; i++)
- {
- INT32 nSegment = (nCyclesTotal[0] * (i + 1)) / nInterleave;
- nCyclesDone[0] += M6809Run(nSegment - nCyclesDone[0]);
- if (i == (nInterleave - 1) && irq_enable) M6809SetIRQLine(0, CPU_IRQSTATUS_AUTO);
-
- nSegment = (nCyclesTotal[1] * (i + 1)) / nInterleave;
- nCyclesDone[1] += ZetRun(nSegment - nCyclesDone[1]);
- if (i == (nInterleave - 2)) ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
- if (i == (nInterleave - 1)) ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
-
- nSegment = (nCyclesTotal[2] * (i + 1)) / nInterleave;
- nCyclesDone[2] += I8039Run(nSegment - nCyclesDone[2]);
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen / nInterleave;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- AY8910Render(&pAY8910Buffer[0], pSoundBuf, nSegmentLength, 0);
- filter_rc_update(0, pAY8910Buffer[0], pSoundBuf, nSegmentLength);
- filter_rc_update(1, pAY8910Buffer[1], pSoundBuf, nSegmentLength);
- filter_rc_update(2, pAY8910Buffer[2], pSoundBuf, nSegmentLength);
- nSoundBufferPos += nSegmentLength;
- }
- }
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- if (nSegmentLength) {
- AY8910Render(&pAY8910Buffer[0], pSoundBuf, nSegmentLength, 0);
- filter_rc_update(0, pAY8910Buffer[0], pSoundBuf, nSegmentLength);
- filter_rc_update(1, pAY8910Buffer[1], pSoundBuf, nSegmentLength);
- filter_rc_update(2, pAY8910Buffer[2], pSoundBuf, nSegmentLength);
- }
-
- DACUpdate(pBurnSoundOut, nBurnSoundLen);
- }
-
- ZetClose();
- M6809Close();
-
- if (pBurnDraw) {
- DrvDraw();
- }
-
- return 0;
-}
-
-static INT32 DrvScan(INT32 nAction,INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin) {
- *pnMin = 0x029704;
- }
-
- if (nAction & ACB_VOLATILE) {
- memset(&ba, 0, sizeof(ba));
- ba.Data = AllRam;
- ba.nLen = RamEnd - AllRam;
- ba.szName = "All RAM";
- BurnAcb(&ba);
- }
-
- if (nAction & ACB_DRIVER_DATA) {
- ZetScan(nAction);
- M6809Scan(nAction);
- I8039Scan(nAction,pnMin);
-
- ZetOpen(0);
- AY8910Scan(nAction, pnMin);
- ZetClose();
-
- DACScan(nAction, pnMin);
-
- SCAN_VAR(scrollx);
- SCAN_VAR(scrolly);
- SCAN_VAR(irq_enable);
- SCAN_VAR(soundlatch);
- SCAN_VAR(i8039_status);
- }
-
- return 0;
-}
-
-
-// Mega Zone (Konami set 1)
-
-static struct BurnRomInfo megazoneRomDesc[] = {
- { "319i07.bin", 0x2000, 0x94b22ea8, 1 | BRF_PRG | BRF_ESS }, // 0 M6809 Code
- { "319i06.bin", 0x2000, 0x0468b619, 1 | BRF_PRG | BRF_ESS }, // 1
- { "319i05.bin", 0x2000, 0xac59000c, 1 | BRF_PRG | BRF_ESS }, // 2
- { "319i04.bin", 0x2000, 0x1e968603, 1 | BRF_PRG | BRF_ESS }, // 3
- { "319i03.bin", 0x2000, 0x0888b803, 1 | BRF_PRG | BRF_ESS }, // 4
-
- { "319e02.bin", 0x2000, 0xd5d45edb, 2 | BRF_PRG | BRF_ESS }, // 5 Z80 Code
-
- { "319e01.bin", 0x1000, 0xed5725a0, 3 | BRF_PRG | BRF_ESS }, // 6 I8039 Code
-
- { "319e11.bin", 0x2000, 0x965a7ff6, 4 | BRF_GRA }, // 7 Sprites
- { "319e09.bin", 0x2000, 0x5eaa7f3e, 4 | BRF_GRA }, // 8
- { "319e10.bin", 0x2000, 0x7bb1aeee, 4 | BRF_GRA }, // 9
- { "319e08.bin", 0x2000, 0x6add71b1, 4 | BRF_GRA }, // 10
-
- { "319e12.bin", 0x2000, 0xe0fb7835, 5 | BRF_GRA }, // 11 Characters
- { "319e13.bin", 0x2000, 0x3d8f3743, 5 | BRF_GRA }, // 12
-
- { "319b18.a16", 0x0020, 0x23cb02af, 6 | BRF_GRA }, // 13 Color PROMs
- { "319b16.c6", 0x0100, 0x5748e933, 6 | BRF_GRA }, // 14
- { "319b17.a11", 0x0100, 0x1fbfce73, 6 | BRF_GRA }, // 15
- { "319b14.e7", 0x0020, 0x55044268, 6 | BRF_OPT }, // 16
- { "319b15.e8", 0x0020, 0x31fd7ab9, 6 | BRF_OPT }, // 17
-};
-
-STD_ROM_PICK(megazone)
-STD_ROM_FN(megazone)
-
-struct BurnDriver BurnDrvMegazone = {
- "megazone", NULL, NULL, NULL, "1983",
- "Mega Zone (Konami set 1)\0", NULL, "Konami", "GX319",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED, 2, HARDWARE_PREFIX_KONAMI, GBF_VERSHOOT, 0,
- NULL, megazoneRomInfo, megazoneRomName, NULL, NULL, MegazoneInputInfo, MegazoneDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x200,
- 224, 288, 3, 4
-};
-
-
-// Mega Zone (Interlogic)
-
-static struct BurnRomInfo megazoneiRomDesc[] = {
- { "ic59_cpu.bin", 0x2000, 0xf41922a0, 1 | BRF_PRG | BRF_ESS }, // 0 M6809 Code
- { "ic58_cpu.bin", 0x2000, 0x7fd7277b, 1 | BRF_PRG | BRF_ESS }, // 1
- { "ic57_cpu.bin", 0x2000, 0xa4b33b51, 1 | BRF_PRG | BRF_ESS }, // 2
- { "ic56_cpu.bin", 0x2000, 0x2aabcfbf, 1 | BRF_PRG | BRF_ESS }, // 3
- { "ic55_cpu.bin", 0x2000, 0xb33a3c37, 1 | BRF_PRG | BRF_ESS }, // 4
-
- { "319e02.bin", 0x2000, 0xd5d45edb, 2 | BRF_PRG | BRF_ESS }, // 5 Z80 Code
-
- { "319e01.bin", 0x1000, 0xed5725a0, 3 | BRF_PRG | BRF_ESS }, // 6 I8039 Code
-
- { "319e11.bin", 0x2000, 0x965a7ff6, 4 | BRF_GRA }, // 7 Sprites
- { "319e09.bin", 0x2000, 0x5eaa7f3e, 4 | BRF_GRA }, // 8
- { "319e10.bin", 0x2000, 0x7bb1aeee, 4 | BRF_GRA }, // 9
- { "319e08.bin", 0x2000, 0x6add71b1, 4 | BRF_GRA }, // 10
-
- { "ic40_vid.bin", 0x2000, 0x07b8b24b, 5 | BRF_GRA }, // 11 Characters
- { "319e13.bin", 0x2000, 0x3d8f3743, 5 | BRF_GRA }, // 12
-
- { "319b18.a16", 0x0020, 0x23cb02af, 6 | BRF_GRA }, // 13 Color PROMs
- { "319b16.c6", 0x0100, 0x5748e933, 6 | BRF_GRA }, // 14
- { "319b17.a11", 0x0100, 0x1fbfce73, 6 | BRF_GRA }, // 15
- { "319b14.e7", 0x0020, 0x55044268, 6 | BRF_OPT }, // 16
- { "319b15.e8", 0x0020, 0x31fd7ab9, 6 | BRF_OPT }, // 17
-};
-
-STD_ROM_PICK(megazonei)
-STD_ROM_FN(megazonei)
-
-struct BurnDriver BurnDrvMegazonei = {
- "megazonei", "megazone", NULL, NULL, "1983",
- "Mega Zone (Interlogic)\0", NULL, "Konami (Interlogic license)", "GX319",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED, 2, HARDWARE_PREFIX_KONAMI, GBF_VERSHOOT, 0,
- NULL, megazoneiRomInfo, megazoneiRomName, NULL, NULL, MegazoneInputInfo, MegazoneDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x200,
- 224, 288, 3, 4
-};
-
-
-// Mega Zone (Konami set 2)
-
-static struct BurnRomInfo megazoneaRomDesc[] = {
- { "7.12g", 0x2000, 0xd42d67bf, 1 | BRF_PRG | BRF_ESS }, // 0 M6809 Code
- { "6.10g", 0x2000, 0x692398eb, 1 | BRF_PRG | BRF_ESS }, // 1
- { "5.9g", 0x2000, 0x620ffec3, 1 | BRF_PRG | BRF_ESS }, // 2
- { "4.8g", 0x2000, 0x28650971, 1 | BRF_PRG | BRF_ESS }, // 3
- { "3.6g", 0x2000, 0xf264018f, 1 | BRF_PRG | BRF_ESS }, // 4
-
- { "319-h02", 0x2000, 0xd5d45edb, 2 | BRF_PRG | BRF_ESS }, // 5 Z80 Code
-
- { "319-h01", 0x1000, 0xed5725a0, 3 | BRF_PRG | BRF_ESS }, // 6 I8039 Code
-
- { "319e11.bin", 0x2000, 0x965a7ff6, 4 | BRF_GRA }, // 7 Sprites
- { "319e09.bin", 0x2000, 0x5eaa7f3e, 4 | BRF_GRA }, // 8
- { "319e10.bin", 0x2000, 0x7bb1aeee, 4 | BRF_GRA }, // 9
- { "319e08.bin", 0x2000, 0x6add71b1, 4 | BRF_GRA }, // 10
-
- { "319e12.bin", 0x2000, 0xe0fb7835, 5 | BRF_GRA }, // 11 Characters
- { "319-g13", 0x2000, 0x3d8f3743, 5 | BRF_GRA }, // 12
-
- { "319b18.a16", 0x0020, 0x23cb02af, 6 | BRF_GRA }, // 13 Color PROMs
- { "319b16.c6", 0x0100, 0x5748e933, 6 | BRF_GRA }, // 14
- { "319b17.a11", 0x0100, 0x1fbfce73, 6 | BRF_GRA }, // 15
- { "319b14.e7", 0x0020, 0x55044268, 6 | BRF_OPT }, // 16
- { "319b15.e8", 0x0020, 0x31fd7ab9, 6 | BRF_OPT }, // 17
-};
-
-STD_ROM_PICK(megazonea)
-STD_ROM_FN(megazonea)
-
-struct BurnDriver BurnDrvMegazonea = {
- "megazonea", "megazone", NULL, NULL, "1983",
- "Mega Zone (Konami set 2)\0", NULL, "Konami", "GX319",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED, 2, HARDWARE_PREFIX_KONAMI, GBF_VERSHOOT, 0,
- NULL, megazoneaRomInfo, megazoneaRomName, NULL, NULL, MegazoneInputInfo, MegazonaDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x200,
- 224, 288, 3, 4
-};
-
-
-// Mega Zone (Kosuka set 1)
-
-static struct BurnRomInfo megazonebRomDesc[] = {
- { "319-j07", 0x2000, 0x5161a523, 1 | BRF_PRG | BRF_ESS }, // 0 M6809 Code
- { "319-j06", 0x2000, 0x7344c3de, 1 | BRF_PRG | BRF_ESS }, // 1
- { "319-j05", 0x2000, 0xaffa492b, 1 | BRF_PRG | BRF_ESS }, // 2
- { "319-j04", 0x2000, 0x03544ab3, 1 | BRF_PRG | BRF_ESS }, // 3
- { "319-j03", 0x2000, 0x0d95cc0a, 1 | BRF_PRG | BRF_ESS }, // 4
-
- { "319-h02", 0x2000, 0xd5d45edb, 2 | BRF_PRG | BRF_ESS }, // 5 Z80 Code
-
- { "319-h01", 0x1000, 0xed5725a0, 3 | BRF_PRG | BRF_ESS }, // 6 I8039 Code
-
- { "319e11.bin", 0x2000, 0x965a7ff6, 4 | BRF_GRA }, // 7 Sprites
- { "319e09.bin", 0x2000, 0x5eaa7f3e, 4 | BRF_GRA }, // 8
- { "319e10.bin", 0x2000, 0x7bb1aeee, 4 | BRF_GRA }, // 9
- { "319e08.bin", 0x2000, 0x6add71b1, 4 | BRF_GRA }, // 10
-
- { "319e12.bin", 0x2000, 0xe0fb7835, 5 | BRF_GRA }, // 11 Characters
- { "319-g13", 0x2000, 0x3d8f3743, 5 | BRF_GRA }, // 12
-
- { "319b18.a16", 0x0020, 0x23cb02af, 6 | BRF_GRA }, // 13 Color PROMs
- { "319b16.c6", 0x0100, 0x5748e933, 6 | BRF_GRA }, // 14
- { "319b17.a11", 0x0100, 0x1fbfce73, 6 | BRF_GRA }, // 15
- { "319b14.e7", 0x0020, 0x55044268, 6 | BRF_OPT }, // 16
- { "319b15.e8", 0x0020, 0x31fd7ab9, 6 | BRF_OPT }, // 17
-};
-
-STD_ROM_PICK(megazoneb)
-STD_ROM_FN(megazoneb)
-
-struct BurnDriver BurnDrvMegazoneb = {
- "megazoneb", "megazone", NULL, NULL, "1983",
- "Mega Zone (Kosuka set 1)\0", NULL, "Konami (Kosuka license)", "GX319",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED, 2, HARDWARE_PREFIX_KONAMI, GBF_VERSHOOT, 0,
- NULL, megazonebRomInfo, megazonebRomName, NULL, NULL, MegazoneInputInfo, MegazoneDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x200,
- 224, 288, 3, 4
-};
-
-
-// Mega Zone (Kosuka set 2)
-
-static struct BurnRomInfo megazonecRomDesc[] = {
- { "319-h07", 0x2000, 0x8ca47f64, 1 | BRF_PRG | BRF_ESS }, // 0 M6809 Code
- { "319-h06", 0x2000, 0xed35b12e, 1 | BRF_PRG | BRF_ESS }, // 1
- { "319-h05", 0x2000, 0xc3655ccd, 1 | BRF_PRG | BRF_ESS }, // 2
- { "319-h04", 0x2000, 0x9e221177, 1 | BRF_PRG | BRF_ESS }, // 3
- { "319-h03", 0x2000, 0x9048955b, 1 | BRF_PRG | BRF_ESS }, // 4
-
- { "319-h02", 0x2000, 0xd5d45edb, 2 | BRF_PRG | BRF_ESS }, // 5 Z80 Code
-
- { "319-h01", 0x1000, 0xed5725a0, 3 | BRF_PRG | BRF_ESS }, // 6 I8039 Code
-
- { "319e11.bin", 0x2000, 0x965a7ff6, 4 | BRF_GRA }, // 7 Sprites
- { "319e09.bin", 0x2000, 0x5eaa7f3e, 4 | BRF_GRA }, // 8
- { "319e10.bin", 0x2000, 0x7bb1aeee, 4 | BRF_GRA }, // 9
- { "319e08.bin", 0x2000, 0x6add71b1, 4 | BRF_GRA }, // 10
-
- { "319e12.bin", 0x2000, 0xe0fb7835, 5 | BRF_GRA }, // 11 Characters
- { "319-g13", 0x2000, 0x3d8f3743, 5 | BRF_GRA }, // 12
-
- { "319b18.a16", 0x0020, 0x23cb02af, 6 | BRF_GRA }, // 13 Color PROMs
- { "319b16.c6", 0x0100, 0x5748e933, 6 | BRF_GRA }, // 14
- { "319b17.a11", 0x0100, 0x1fbfce73, 6 | BRF_GRA }, // 15
- { "319b14.e7", 0x0020, 0x55044268, 6 | BRF_OPT }, // 16
- { "prom.48", 0x0020, 0x796dea94, 6 | BRF_OPT }, // 17
-};
-
-STD_ROM_PICK(megazonec)
-STD_ROM_FN(megazonec)
-
-struct BurnDriver BurnDrvMegazonec = {
- "megazonec", "megazone", NULL, NULL, "1983",
- "Mega Zone (Kosuka set 2)\0", NULL, "Konami (Kosuka license)", "GX319",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED, 2, HARDWARE_PREFIX_KONAMI, GBF_VERSHOOT, 0,
- NULL, megazonecRomInfo, megazonecRomName, NULL, NULL, MegazoneInputInfo, MegazoneDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x200,
- 224, 288, 3, 4
-};
diff --git a/jan/src/burn/drv/konami/d_mikie.cpp b/jan/src/burn/drv/konami/d_mikie.cpp
deleted file mode 100644
index efd15973d..000000000
--- a/jan/src/burn/drv/konami/d_mikie.cpp
+++ /dev/null
@@ -1,723 +0,0 @@
-// FB Alpha Mikie driver module
-// Based on MAME driver by Allard Van Der Bas
-
-#include "tiles_generic.h"
-#include "z80_intf.h"
-#include "m6809_intf.h"
-#include "sn76496.h"
-
-static UINT8 *AllMem;
-static UINT8 *MemEnd;
-static UINT8 *AllRam;
-static UINT8 *RamEnd;
-static UINT8 *DrvM6809ROM;
-static UINT8 *DrvZ80ROM;
-static UINT8 *DrvGfxROM0;
-static UINT8 *DrvGfxROM1;
-static UINT8 *DrvColPROM;
-static UINT8 *DrvM6809RAM;
-static UINT8 *DrvSprRAM;
-static UINT8 *DrvColRAM;
-static UINT8 *DrvVidRAM;
-static UINT8 *DrvZ80RAM;
-
-static UINT32 *DrvPalette;
-static UINT8 DrvRecalc;
-
-static UINT8 *soundlatch;
-static UINT8 *flipscreen;
-static UINT8 *palette_bank;
-static UINT8 *irq_mask;
-static UINT8 *sound_irq;
-
-static int watchdog;
-
-static UINT8 DrvJoy1[8];
-static UINT8 DrvJoy2[8];
-static UINT8 DrvJoy3[8];
-static UINT8 DrvDips[3];
-static UINT8 DrvInputs[3];
-static UINT8 DrvReset;
-
-static struct BurnInputInfo MikieInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy1 + 0, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 3, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy2 + 2, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy2 + 3, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy2 + 0, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy2 + 1, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy2 + 4, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy2 + 5, "p1 fire 2" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy1 + 1, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy1 + 4, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvJoy3 + 2, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy3 + 3, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy3 + 0, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy3 + 1, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy3 + 4, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy3 + 5, "p2 fire 2" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service", BIT_DIGITAL, DrvJoy1 + 2, "service" },
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip" },
- {"Dip C", BIT_DIPSWITCH, DrvDips + 2, "dip" },
-};
-
-STDINPUTINFO(Mikie)
-
-static struct BurnDIPInfo MikieDIPList[]=
-{
- {0x12, 0xff, 0xff, 0xff, NULL },
- {0x13, 0xff, 0xff, 0x7b, NULL },
- {0x14, 0xff, 0xff, 0xfe, NULL },
-
- {0 , 0xfe, 0 , 16, "Coin A" },
- {0x12, 0x01, 0x0f, 0x02, "4 Coins 1 Credits" },
- {0x12, 0x01, 0x0f, 0x05, "3 Coins 1 Credits" },
- {0x12, 0x01, 0x0f, 0x08, "2 Coins 1 Credits" },
- {0x12, 0x01, 0x0f, 0x04, "3 Coins 2 Credits" },
- {0x12, 0x01, 0x0f, 0x01, "4 Coins 3 Credits" },
- {0x12, 0x01, 0x0f, 0x0f, "1 Coin 1 Credits" },
- {0x12, 0x01, 0x0f, 0x03, "3 Coins 4 Credits" },
- {0x12, 0x01, 0x0f, 0x07, "2 Coins 3 Credits" },
- {0x12, 0x01, 0x0f, 0x0e, "1 Coin 2 Credits" },
- {0x12, 0x01, 0x0f, 0x06, "2 Coins 5 Credits" },
- {0x12, 0x01, 0x0f, 0x0d, "1 Coin 3 Credits" },
- {0x12, 0x01, 0x0f, 0x0c, "1 Coin 4 Credits" },
- {0x12, 0x01, 0x0f, 0x0b, "1 Coin 5 Credits" },
- {0x12, 0x01, 0x0f, 0x0a, "1 Coin 6 Credits" },
- {0x12, 0x01, 0x0f, 0x09, "1 Coin 7 Credits" },
- {0x12, 0x01, 0x0f, 0x00, "Free Play" },
-
- {0 , 0xfe, 0 , 16, "Coin B" },
- {0x12, 0x01, 0xf0, 0x20, "4 Coins 1 Credits" },
- {0x12, 0x01, 0xf0, 0x50, "3 Coins 1 Credits" },
- {0x12, 0x01, 0xf0, 0x80, "2 Coins 1 Credits" },
- {0x12, 0x01, 0xf0, 0x40, "3 Coins 2 Credits" },
- {0x12, 0x01, 0xf0, 0x10, "4 Coins 3 Credits" },
- {0x12, 0x01, 0xf0, 0xf0, "1 Coin 1 Credits" },
- {0x12, 0x01, 0xf0, 0x30, "3 Coins 4 Credits" },
- {0x12, 0x01, 0xf0, 0x70, "2 Coins 3 Credits" },
- {0x12, 0x01, 0xf0, 0xe0, "1 Coin 2 Credits" },
- {0x12, 0x01, 0xf0, 0x60, "2 Coins 5 Credits" },
- {0x12, 0x01, 0xf0, 0xd0, "1 Coin 3 Credits" },
- {0x12, 0x01, 0xf0, 0xc0, "1 Coin 4 Credits" },
- {0x12, 0x01, 0xf0, 0xb0, "1 Coin 5 Credits" },
- {0x12, 0x01, 0xf0, 0xa0, "1 Coin 6 Credits" },
- {0x12, 0x01, 0xf0, 0x90, "1 Coin 7 Credits" },
- {0x12, 0x01, 0xf0, 0x00, "No Coin B" },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x13, 0x01, 0x03, 0x03, "3" },
- {0x13, 0x01, 0x03, 0x02, "4" },
- {0x13, 0x01, 0x03, 0x01, "5" },
- {0x13, 0x01, 0x03, 0x00, "7" },
-
-// flipscreen not implimented
-// {0 , 0xfe, 0 , 2, "Cabinet" },
-// {0x13, 0x01, 0x04, 0x00, "Upright" },
-// {0x13, 0x01, 0x04, 0x04, "Cocktail" },
-
- {0 , 0xfe, 0 , 4, "Bonus Life" },
- {0x13, 0x01, 0x18, 0x18, "20k 70k 50k+" },
- {0x13, 0x01, 0x18, 0x10, "30K 90k 60k+" },
- {0x13, 0x01, 0x18, 0x08, "30k only" },
- {0x13, 0x01, 0x18, 0x00, "40K only" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x13, 0x01, 0x60, 0x60, "Easy" },
- {0x13, 0x01, 0x60, 0x40, "Medium" },
- {0x13, 0x01, 0x60, 0x20, "Hard" },
- {0x13, 0x01, 0x60, 0x00, "Hardest" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x13, 0x01, 0x80, 0x80, "Off" },
- {0x13, 0x01, 0x80, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x14, 0x01, 0x01, 0x00, "Off" },
- {0x14, 0x01, 0x01, 0x01, "On" },
-
- {0 , 0xfe, 0 , 2, "Upright Controls" },
- {0x14, 0x01, 0x02, 0x02, "Single" },
- {0x14, 0x01, 0x02, 0x00, "Dual" },
-};
-
-STDDIPINFO(Mikie)
-
-static void mikie_main_write(UINT16 a, UINT8 d)
-{
- switch (a)
- {
- case 0x2000:
- case 0x2001:
- // coin_counter
- return;
-
- case 0x2002:
- if (*sound_irq == 0 && d == 1) {
- ZetSetVector(0xff);
- ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
- }
- *sound_irq = d;
- return;
-
- case 0x2006:
- *flipscreen = d & 1;
- return;
-
- case 0x2007:
- *irq_mask = d & 1;
- return;
-
- case 0x2100:
- watchdog = 0;
- return;
-
- case 0x2200:
- *palette_bank = (d & 0x07) << 4;
- return;
-
- case 0x2300:
- return; // nop
-
- case 0x2400:
- *soundlatch = d;
- return;
- }
-}
-
-static UINT8 mikie_main_read(UINT16 a)
-{
- switch (a)
- {
- case 0x2400:
- case 0x2401:
- case 0x2402:
- return DrvInputs[a & 3];
-
- case 0x2403:
- return DrvDips[2];
-
- case 0x2500:
- case 0x2501:
- return DrvDips[a & 1];
- }
-
- return 0;
-}
-
-static void __fastcall mikie_sound_write(UINT16 a, UINT8 d)
-{
- switch (a)
- {
- case 0x8000:
- case 0x8001:
- return; // nop
-
- case 0x8002:
- case 0x8004:
- SN76496Write((a / 4) & 1, d);
- return;
-
- case 0x8079:
- case 0xa003:
- return; // nop
- }
-}
-
-static UINT8 __fastcall mikie_sound_read(UINT16 a)
-{
- switch (a)
- {
- case 0x8003:
- ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
- return *soundlatch;
-
- case 0x8005:
- return ZetTotalCycles() / 512;
- }
-
- return 0;
-}
-
-static INT32 DrvDoReset(INT32 clear_mem)
-{
- if (clear_mem) {
- memset (AllRam, 0, RamEnd - AllRam);
- }
-
- M6809Open(0);
- M6809Reset();
- M6809Close();
-
- ZetOpen(0);
- ZetReset();
- ZetClose();
-
- watchdog = 0;
-
- HiscoreReset();
-
- return 0;
-}
-
-static void DrvPaletteInit()
-{
- UINT32 pal[0x100];
-
- for (INT32 i = 0; i < 0x100; i++)
- {
- INT32 bit0 = (DrvColPROM[i + 0x000] >> 0) & 0x01;
- INT32 bit1 = (DrvColPROM[i + 0x000] >> 1) & 0x01;
- INT32 bit2 = (DrvColPROM[i + 0x000] >> 2) & 0x01;
- INT32 bit3 = (DrvColPROM[i + 0x000] >> 3) & 0x01;
- INT32 r = bit0 * 14 + bit1 * 31 + bit2 * 66 + bit3 * 144;
-
- bit0 = (DrvColPROM[i + 0x100] >> 0) & 0x01;
- bit1 = (DrvColPROM[i + 0x100] >> 1) & 0x01;
- bit2 = (DrvColPROM[i + 0x100] >> 2) & 0x01;
- bit3 = (DrvColPROM[i + 0x100] >> 3) & 0x01;
- INT32 g = bit0 * 14 + bit1 * 31 + bit2 * 66 + bit3 * 144;
-
- bit0 = (DrvColPROM[i + 0x200] >> 0) & 0x01;
- bit1 = (DrvColPROM[i + 0x200] >> 1) & 0x01;
- bit2 = (DrvColPROM[i + 0x200] >> 2) & 0x01;
- bit3 = (DrvColPROM[i + 0x200] >> 3) & 0x01;
- INT32 b = bit0 * 14 + bit1 * 31 + bit2 * 66 + bit3 * 144;
-
- pal[i] = BurnHighCol(r,g,b, 0);
- }
-
- for (INT32 i = 0; i < 0x200; i++)
- {
- for (INT32 j = 0; j < 8; j++)
- {
- UINT8 ctabentry = (j << 5) | ((~i & 0x100) >> 4) | (DrvColPROM[0x300+i] & 0x0f);
- DrvPalette[((i & 0x100) << 3) | (j << 8) | (i & 0xff)] = pal[ctabentry];
- }
- }
-
- DrvRecalc = 1;
-}
-static INT32 DrvGfxDecode()
-{
- INT32 Plane0[4] = { STEP4(0,1) };
- INT32 Plane1[4] = { STEP2(0,4), STEP2(256*128*8, 4) };
- INT32 XOffs0[8] = { STEP8(0,4) };
- INT32 YOffs0[8] = { STEP8(0,32) };
- INT32 XOffs1[16] = { STEP4(256, 1), STEP4(128, 1), STEP4(0, 1), STEP4(384,1) };
- INT32 YOffs1[16] = { STEP8(0,16), STEP8(512, 16) };
-
- UINT8 *buf = (UINT8*)BurnMalloc(0x10000);
-
- memcpy (buf, DrvGfxROM0, 0x4000);
-
- GfxDecode(0x00200, 4, 8, 8, Plane0, XOffs0, YOffs0, 0x100, buf, DrvGfxROM0);
-
- memcpy (buf, DrvGfxROM1, 0x10000);
-
- GfxDecode(0x00100, 4, 16, 16, Plane1, XOffs1, YOffs1, 0x400, buf+0, DrvGfxROM1);
- GfxDecode(0x00100, 4, 16, 16, Plane1, XOffs1, YOffs1, 0x400, buf+1, DrvGfxROM1 + 0x10000);
-
- BurnFree(buf);
-
- return 0;
-}
-
-static INT32 MemIndex()
-{
- UINT8 *Next; Next = AllMem;
-
- DrvM6809ROM = Next; Next += 0x010000;
- DrvZ80ROM = Next; Next += 0x004000;
-
- DrvGfxROM0 = Next; Next += 0x008000;
- DrvGfxROM1 = Next; Next += 0x020000;
-
- DrvColPROM = Next; Next += 0x000500;
-
- DrvPalette = (UINT32*)Next; Next += 0x1000 * sizeof(UINT32);
-
- AllRam = Next;
-
- DrvM6809RAM = Next; Next += 0x000100;
- DrvSprRAM = Next; Next += 0x001000;
- DrvColRAM = Next; Next += 0x000400;
- DrvVidRAM = Next; Next += 0x000400;
-
- DrvZ80RAM = Next; Next += 0x000400;
-
- soundlatch = Next; Next += 0x000001;
- flipscreen = Next; Next += 0x000001;
- palette_bank = Next; Next += 0x000001;
- irq_mask = Next; Next += 0x000001;
- sound_irq = Next; Next += 0x000001;
-
- RamEnd = Next;
- MemEnd = Next;
-
- return 0;
-}
-
-static INT32 DrvInit()
-{
- // Refresh Rate 60.59
-
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(DrvM6809ROM + 0x0000, 0, 1)) return 1;
- if (BurnLoadRom(DrvM6809ROM + 0x2000, 1, 1)) return 1;
- if (BurnLoadRom(DrvM6809ROM + 0x6000, 2, 1)) return 1;
-
- if (BurnLoadRom(DrvZ80ROM + 0x0000, 3, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x0000, 4, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM1 + 0x0000, 5, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x4000, 6, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x8000, 7, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0xc000, 8, 1)) return 1;
-
- if (BurnLoadRom(DrvColPROM + 0x0000, 9, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x0100, 10, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x0200, 11, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x0300, 12, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x0400, 13, 1)) return 1;
-
- DrvGfxDecode();
- DrvPaletteInit();
- }
-
- M6809Init(1);
- M6809Open(0);
- M6809MapMemory(DrvM6809RAM, 0x0000, 0x00ff, MAP_RAM);
- M6809MapMemory(DrvSprRAM, 0x2800, 0x37ff, MAP_RAM);
- M6809MapMemory(DrvColRAM, 0x3800, 0x3bff, MAP_RAM);
- M6809MapMemory(DrvVidRAM, 0x3c00, 0x3fff, MAP_RAM);
- M6809MapMemory(DrvM6809ROM, 0x6000, 0xffff, MAP_ROM);
- M6809SetWriteHandler(mikie_main_write);
- M6809SetReadHandler(mikie_main_read);
- M6809Close();
-
- ZetInit(0);
- ZetOpen(0);
- ZetMapMemory(DrvZ80ROM, 0x0000, 0x3fff, MAP_ROM);
- ZetMapMemory(DrvZ80RAM, 0x4000, 0x43ff, MAP_RAM);
- ZetSetWriteHandler(mikie_sound_write);
- ZetSetReadHandler(mikie_sound_read);
- ZetClose();
-
- SN76489AInit(0, 14318180 / 8, 0);
- SN76489AInit(1, 14318180 / 4, 1);
- SN76496SetRoute(0, 0.60, BURN_SND_ROUTE_BOTH);
- SN76496SetRoute(1, 0.60, BURN_SND_ROUTE_BOTH);
-
- GenericTilesInit();
-
- DrvDoReset(1);
-
- return 0;
-}
-
-static INT32 DrvExit()
-{
- GenericTilesExit();
-
- M6809Exit();
- ZetExit();
- SN76496Exit();
-
- BurnFree (AllMem);
-
- return 0;
-}
-
-static void draw_layer(INT32 prio)
-{
- for (INT32 offs = 2 * 32; offs < (32 * 32) - (2 * 32); offs++)
- {
- if ((DrvColRAM[offs] & 0x10) != prio) continue;
-
- INT32 sx = (offs & 0x1f) * 8;
- INT32 sy = (offs / 0x20) * 8;
-
- INT32 attr = DrvColRAM[offs];
- INT32 code = DrvVidRAM[offs] + ((attr & 0x20) << 3);
- INT32 color = (attr & 0x0f) + *palette_bank;
- INT32 flipx = attr & 0x40;
- INT32 flipy = attr & 0x80;
-
- if (flipy) {
- if (flipx) {
- Render8x8Tile_FlipXY(pTransDraw, code, sx, sy - 16, color, 4, 0, DrvGfxROM0);
- } else {
- Render8x8Tile_FlipY(pTransDraw, code, sx, sy - 16, color, 4, 0, DrvGfxROM0);
- }
- } else {
- if (flipx) {
- Render8x8Tile_FlipX(pTransDraw, code, sx, sy - 16, color, 4, 0, DrvGfxROM0);
- } else {
- Render8x8Tile(pTransDraw, code, sx, sy - 16, color, 4, 0, DrvGfxROM0);
- }
- }
- }
-}
-
-static void draw_sprites()
-{
- for (INT32 offs = 0; offs < 0x90; offs += 4)
- {
- int attr = DrvSprRAM[offs];
- int code = (DrvSprRAM[offs + 2] & 0x3f) + ((DrvSprRAM[offs + 2] & 0x80) >> 1) + ((DrvSprRAM[offs + 2] & 0x40) << 2) + ((attr & 0x40) << 1);
- int color = (attr & 0x0f) + *palette_bank;
- int sx = DrvSprRAM[offs + 3];
- int sy = 244 - DrvSprRAM[offs + 1];
- int flipx = ~attr & 0x10;
- int flipy = attr & 0x20;
-
- if (*flipscreen)
- {
- sy = 242 - sy;
- flipy = !flipy;
- }
-
- if (flipy) {
- if (flipx) {
- Render16x16Tile_Mask_FlipXY_Clip(pTransDraw, code, sx, sy - 16, color, 4, 0, 0x800, DrvGfxROM1);
- } else {
- Render16x16Tile_Mask_FlipY_Clip(pTransDraw, code, sx, sy - 16, color, 4, 0, 0x800, DrvGfxROM1);
- }
- } else {
- if (flipx) {
- Render16x16Tile_Mask_FlipX_Clip(pTransDraw, code, sx, sy - 16, color, 4, 0, 0x800, DrvGfxROM1);
- } else {
- Render16x16Tile_Mask_Clip(pTransDraw, code, sx, sy - 16, color, 4, 0, 0x800, DrvGfxROM1);
- }
- }
- }
-}
-
-static INT32 DrvDraw()
-{
- if (DrvRecalc) {
- DrvPaletteInit();
- DrvRecalc = 0;
- }
-
- draw_layer(0x00);
- draw_sprites();
- draw_layer(0x10);
-
- BurnTransferCopy(DrvPalette);
-
- return 0;
-}
-
-static INT32 DrvFrame()
-{
- watchdog++;
- if (watchdog == 120) {
- DrvDoReset(0);
- }
-
- if (DrvReset) {
- DrvDoReset(1);
- }
-
- {
- memset (DrvInputs, 0xff, 3);
-
- for (INT32 i = 0; i < 8; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- DrvInputs[2] ^= (DrvJoy3[i] & 1) << i;
- }
- }
-
- INT32 nInterleave = 256;
- INT32 nCyclesTotal[2] = { 18432000 / 12 / 60, 14318180 / 4 / 60 };
- INT32 nCyclesDone[2] = { 0, 0 };
- INT32 nSoundBufferPos = 0;
-
- M6809Open(0);
- ZetOpen(0);
-
- for (INT32 i = 0; i < nInterleave; i++) {
- nCyclesDone[0] += M6809Run(nCyclesTotal[0] / nInterleave);
- nCyclesDone[1] += ZetRun(nCyclesTotal[1] / nInterleave);
-
- if (i == 240 && *irq_mask) M6809SetIRQLine(0, CPU_IRQSTATUS_AUTO);
-
- // Render Sound Segment
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen / nInterleave;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- SN76496Update(0, pSoundBuf, nSegmentLength);
- SN76496Update(1, pSoundBuf, nSegmentLength);
- nSoundBufferPos += nSegmentLength;
- }
-
- }
-
- ZetClose();
- M6809Close();
-
- // Make sure the buffer is entirely filled.
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- if (nSegmentLength) {
- SN76496Update(0, pSoundBuf, nSegmentLength);
- SN76496Update(1, pSoundBuf, nSegmentLength);
- }
- }
-
- if (pBurnDraw) {
- DrvDraw();
- }
-
- return 0;
-}
-
-static INT32 DrvScan(INT32 nAction,INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin) {
- *pnMin = 0x029705;
- }
-
- if (nAction & ACB_VOLATILE) {
- memset(&ba, 0, sizeof(ba));
- ba.Data = AllRam;
- ba.nLen = RamEnd - AllRam;
- ba.szName = "All Ram";
- BurnAcb(&ba);
-
- M6809Scan(nAction);
- ZetScan(nAction);
-
- SN76496Scan(nAction, pnMin);
- }
-
- return 0;
-}
-
-// Mikie
-
-static struct BurnRomInfo mikieRomDesc[] = {
- { "n14.11c", 0x2000, 0xf698e6dd, 1 | BRF_PRG | BRF_ESS }, // 0 M6809 Code
- { "o13.12a", 0x4000, 0x826e7035, 1 | BRF_PRG | BRF_ESS }, // 1
- { "o17.12d", 0x4000, 0x161c25c8, 1 | BRF_PRG | BRF_ESS }, // 2
-
- { "n10.6e", 0x2000, 0x2cf9d670, 2 | BRF_PRG | BRF_ESS }, // 3 Z80 Code
-
- { "o11.8i", 0x4000, 0x3c82aaf3, 3 | BRF_GRA }, // 4 Characters
-
- { "001.f1", 0x4000, 0xa2ba0df5, 4 | BRF_GRA }, // 5 Sprites
- { "003.f3", 0x4000, 0x9775ab32, 4 | BRF_GRA }, // 6
- { "005.h1", 0x4000, 0xba44aeef, 4 | BRF_GRA }, // 7
- { "007.h3", 0x4000, 0x31afc153, 4 | BRF_GRA }, // 8
-
- { "d19.1i", 0x0100, 0x8b83e7cf, 5 | BRF_GRA }, // 9 Color Proms
- { "d21.3i", 0x0100, 0x3556304a, 5 | BRF_GRA }, // 10
- { "d20.2i", 0x0100, 0x676a0669, 5 | BRF_GRA }, // 11
- { "d22.12h", 0x0100, 0x872be05c, 5 | BRF_GRA }, // 12
- { "d18.f9", 0x0100, 0x7396b374, 5 | BRF_GRA }, // 13
-};
-
-STD_ROM_PICK(mikie)
-STD_ROM_FN(mikie)
-
-struct BurnDriver BurnDrvMikie = {
- "mikie", NULL, NULL, NULL, "1984",
- "Mikie\0", NULL, "Konami", "GX469",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_KONAMI, GBF_PLATFORM, 0,
- NULL, mikieRomInfo, mikieRomName, NULL, NULL, MikieInputInfo, MikieDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x1000,
- 224, 256, 3, 4
-};
-
-
-// Shinnyuushain Tooru-kun
-
-static struct BurnRomInfo mikiejRomDesc[] = {
- { "n14.11c", 0x2000, 0xf698e6dd, 1 | BRF_PRG | BRF_ESS }, // 0 M6809 Code
- { "o13.12a", 0x4000, 0x826e7035, 1 | BRF_PRG | BRF_ESS }, // 1
- { "o17.12d", 0x4000, 0x161c25c8, 1 | BRF_PRG | BRF_ESS }, // 2
-
- { "n10.6e", 0x2000, 0x2cf9d670, 2 | BRF_PRG | BRF_ESS }, // 3 Z80 Code
-
- { "q11.8i", 0x4000, 0xc48b269b, 3 | BRF_GRA }, // 4 Characters
-
- { "q01.f1", 0x4000, 0x31551987, 4 | BRF_GRA }, // 5 Sprites
- { "q03.f3", 0x4000, 0x34414df0, 4 | BRF_GRA }, // 6
- { "q05.h1", 0x4000, 0xf9e1ebb1, 4 | BRF_GRA }, // 7
- { "q07.h3", 0x4000, 0x15dc093b, 4 | BRF_GRA }, // 8
-
- { "d19.1i", 0x0100, 0x8b83e7cf, 5 | BRF_GRA }, // 9 Color Proms
- { "d21.3i", 0x0100, 0x3556304a, 5 | BRF_GRA }, // 10
- { "d20.2i", 0x0100, 0x676a0669, 5 | BRF_GRA }, // 11
- { "d22.12h", 0x0100, 0x872be05c, 5 | BRF_GRA }, // 12
- { "d18.f9", 0x0100, 0x7396b374, 5 | BRF_GRA }, // 13
-};
-
-STD_ROM_PICK(mikiej)
-STD_ROM_FN(mikiej)
-
-struct BurnDriver BurnDrvMikiej = {
- "mikiej", "mikie", NULL, NULL, "1984",
- "Shinnyuushain Tooru-kun\0", NULL, "Konami", "GX469",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_KONAMI, GBF_PLATFORM, 0,
- NULL, mikiejRomInfo, mikiejRomName, NULL, NULL, MikieInputInfo, MikieDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x1000,
- 224, 256, 3, 4
-};
-
-
-// Mikie (High School Graffiti)
-
-static struct BurnRomInfo mikiehsRomDesc[] = {
- { "l14.11c", 0x2000, 0x633f3a6d, 1 | BRF_PRG | BRF_ESS }, // 0 M6809 Code
- { "m13.12a", 0x4000, 0x9c42d715, 1 | BRF_PRG | BRF_ESS }, // 1
- { "m17.12d", 0x4000, 0xcb5c03c9, 1 | BRF_PRG | BRF_ESS }, // 2
-
- { "h10.6e", 0x2000, 0x4ed887d2, 2 | BRF_PRG | BRF_ESS }, // 3 Z80 Code
-
- { "l11.8i", 0x4000, 0x5ba9d86b, 3 | BRF_GRA }, // 4 Characters
-
- { "i01.f1", 0x4000, 0x0c0cab5f, 4 | BRF_GRA }, // 5 Sprites
- { "i03.f3", 0x4000, 0x694da32f, 4 | BRF_GRA }, // 6
- { "i05.h1", 0x4000, 0x00e357e1, 4 | BRF_GRA }, // 7
- { "i07.h3", 0x4000, 0xceeba6ac, 4 | BRF_GRA }, // 8
-
- { "d19.1i", 0x0100, 0x8b83e7cf, 5 | BRF_GRA }, // 9 Color Proms
- { "d21.3i", 0x0100, 0x3556304a, 5 | BRF_GRA }, // 10
- { "d20.2i", 0x0100, 0x676a0669, 5 | BRF_GRA }, // 11
- { "d22.12h", 0x0100, 0x872be05c, 5 | BRF_GRA }, // 12
- { "d18.f9", 0x0100, 0x7396b374, 5 | BRF_GRA }, // 13
-};
-
-STD_ROM_PICK(mikiehs)
-STD_ROM_FN(mikiehs)
-
-struct BurnDriver BurnDrvMikiehs = {
- "mikiehs", "mikie", NULL, NULL, "1984",
- "Mikie (High School Graffiti)\0", NULL, "Konami", "GX469",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_KONAMI, GBF_PLATFORM, 0,
- NULL, mikiehsRomInfo, mikiehsRomName, NULL, NULL, MikieInputInfo, MikieDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x1000,
- 224, 256, 3, 4
-};
diff --git a/jan/src/burn/drv/konami/d_mogura.cpp b/jan/src/burn/drv/konami/d_mogura.cpp
deleted file mode 100644
index 223939f75..000000000
--- a/jan/src/burn/drv/konami/d_mogura.cpp
+++ /dev/null
@@ -1,398 +0,0 @@
-// FB Alpha Mogura Desse driver module
-// Based on MAME driver by David Haywood
-
-#include "tiles_generic.h"
-#include "z80_intf.h"
-#include "dac.h"
-
-static UINT8 *AllMem;
-static UINT8 *MemEnd;
-static UINT8 *AllRam;
-static UINT8 *RamEnd;
-static UINT8 *DrvZ80ROM;
-static UINT8 *DrvColPROM;
-static UINT8 *DrvZ80RAM;
-static UINT8 *DrvGfxRAM;
-static UINT8 *DrvVidRAM;
-static UINT8 *DrvGfxROM;
-
-static UINT32 *DrvPalette;
-static UINT8 DrvRecalc;
-
-static UINT8 DrvJoy1[8] = {0, };
-static UINT8 DrvJoy2[8] = {0, };
-static UINT8 DrvJoy3[8] = {0, };
-static UINT8 DrvJoy4[8] = {0, };
-static UINT8 DrvJoy5[8] = {0, };
-static UINT8 DrvDiag[1] = { 0 };
-static UINT8 DrvReset;
-static UINT8 DrvInputs[6] = {0, };
-
-static struct BurnInputInfo MoguraInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy1 + 0, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy2 + 7, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy2 + 2, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy2 + 3, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy2 + 0, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy2 + 1, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy2 + 4, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy2 + 5, "p1 fire 2" },
- {"P1 Button 3", BIT_DIGITAL, DrvJoy2 + 6, "p1 fire 3" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy1 + 1, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy3 + 7, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvJoy3 + 2, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy3 + 3, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy3 + 0, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy3 + 1, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy3 + 4, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy3 + 5, "p2 fire 2" },
- {"P2 Button 3", BIT_DIGITAL, DrvJoy3 + 6, "p2 fire 3" },
-
- {"P3 Coin", BIT_DIGITAL, DrvJoy1 + 2, "p3 coin" },
- {"P3 Start", BIT_DIGITAL, DrvJoy4 + 7, "p3 start" },
- {"P3 Up", BIT_DIGITAL, DrvJoy4 + 2, "p3 up" },
- {"P3 Down", BIT_DIGITAL, DrvJoy4 + 3, "p3 down" },
- {"P3 Left", BIT_DIGITAL, DrvJoy4 + 0, "p3 left" },
- {"P3 Right", BIT_DIGITAL, DrvJoy4 + 1, "p3 right" },
- {"P3 Button 1", BIT_DIGITAL, DrvJoy4 + 4, "p3 fire 1" },
- {"P3 Button 2", BIT_DIGITAL, DrvJoy4 + 5, "p3 fire 2" },
- {"P3 Button 3", BIT_DIGITAL, DrvJoy4 + 6, "p3 fire 3" },
-
- {"P4 Coin", BIT_DIGITAL, DrvJoy1 + 3, "p4 coin" },
- {"P4 Start", BIT_DIGITAL, DrvJoy5 + 7, "p4 start" },
- {"P4 Up", BIT_DIGITAL, DrvJoy5 + 2, "p4 up" },
- {"P4 Down", BIT_DIGITAL, DrvJoy5 + 3, "p4 down" },
- {"P4 Left", BIT_DIGITAL, DrvJoy5 + 0, "p4 left" },
- {"P4 Right", BIT_DIGITAL, DrvJoy5 + 1, "p4 right" },
- {"P4 Button 1", BIT_DIGITAL, DrvJoy5 + 4, "p4 fire 1" },
- {"P4 Button 2", BIT_DIGITAL, DrvJoy5 + 5, "p4 fire 2" },
- {"P4 Button 3", BIT_DIGITAL, DrvJoy5 + 6, "p4 fire 3" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Diagnostics", BIT_DIGITAL, DrvDiag + 0, "diag" },
- {"Service 1", BIT_DIGITAL, DrvJoy1 + 4, "service" },
- {"Service 2", BIT_DIGITAL, DrvJoy1 + 5, "service2" },
- {"Service 3", BIT_DIGITAL, DrvJoy1 + 6, "service3" },
- {"Service 4", BIT_DIGITAL, DrvJoy1 + 7, "service4" },
-};
-
-STDINPUTINFO(Mogura)
-
-inline void MoguraClearOpposites(UINT8* nJoystickInputs)
-{
- if ((*nJoystickInputs & 0x03) == 0x03) {
- *nJoystickInputs &= ~0x03;
- }
- if ((*nJoystickInputs & 0x0c) == 0x0c) {
- *nJoystickInputs &= ~0x0c;
- }
-}
-
-static inline void DrvTileDecode(INT32 offset, INT32 data)
-{
- UINT8 *tile = DrvGfxROM + (offset << 2);
-
- tile[0] = (data >> 6) & 3;
- tile[1] = (data >> 4) & 3;
- tile[2] = (data >> 2) & 3;
- tile[3] = (data >> 0) & 3;
-}
-
-void __fastcall mogura_write(UINT16 address, UINT8 data)
-{
- if ((address & 0xf000) == 0xe000) {
- DrvGfxRAM[address & 0xfff] = data;
- DrvTileDecode(address & 0xfff, data);
- return;
- }
-}
-
-void __fastcall mogura_write_port(UINT16 port, UINT8 data)
-{
- switch (port & 0xff)
- {
- case 0x14:
- DACWrite(0, (data & 0xf0));
- DACWrite(1, (data & 0x0f) << 4);
- return;
- }
-}
-
-UINT8 __fastcall mogura_read_port(UINT16 port)
-{
- switch (port & 0xff)
- {
- case 0x08:
- return DrvInputs[0];
-
- case 0x0c:
- return ~DrvInputs[1];
-
- case 0x0d:
- return ~DrvInputs[2];
-
- case 0x0e:
- return ~DrvInputs[3];
-
- case 0x0f:
- return ~DrvInputs[4];
-
- case 0x10:
- return ~DrvInputs[5];
- }
-
- return 0;
-}
-
-static void DrvPaletteInit()
-{
- for (INT32 i = 0; i < 0x20; i++)
- {
- INT32 bit0,bit1,bit2,r,g,b;
-
- bit0 = (DrvColPROM[i] >> 0) & 0x01;
- bit1 = (DrvColPROM[i] >> 1) & 0x01;
- bit2 = (DrvColPROM[i] >> 2) & 0x01;
- r = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
-
- bit0 = (DrvColPROM[i] >> 3) & 0x01;
- bit1 = (DrvColPROM[i] >> 4) & 0x01;
- bit2 = (DrvColPROM[i] >> 5) & 0x01;
- g = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
-
- bit0 = 0;
- bit1 = (DrvColPROM[i] >> 6) & 0x01;
- bit2 = (DrvColPROM[i] >> 7) & 0x01;
- b = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
-
- DrvPalette[((i & 7) << 2) | ((i >> 3) & 3)] = BurnHighCol(r, g, b, 0);
- }
-}
-
-static INT32 moguraDACSync()
-{
- return (INT32)(float)(nBurnSoundLen * (ZetTotalCycles() / (3000000.0000 / (nBurnFPS / 100.0000))));
-}
-
-static INT32 DrvDoReset()
-{
- memset (AllRam, 0, RamEnd - AllRam);
-
- ZetOpen(0);
- ZetReset();
- ZetClose();
-
- DACReset();
-
- return 0;
-}
-
-static INT32 MemIndex()
-{
- UINT8 *Next; Next = AllMem;
-
- DrvZ80ROM = Next; Next += 0x008000;
- DrvColPROM = Next; Next += 0x000020;
-
- DrvPalette = (UINT32*)Next; Next += 0x0020 * sizeof(UINT32);
-
- AllRam = Next;
-
- DrvGfxROM = Next; Next += 0x004000;
- DrvGfxRAM = Next; Next += 0x001000;
-
- DrvVidRAM = Next; Next += 0x001000;
-
- DrvZ80RAM = Next; Next += 0x002000;
-
- RamEnd = Next;
-
- MemEnd = Next;
-
- return 0;
-}
-
-static INT32 DrvInit()
-{
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(DrvZ80ROM, 0, 1)) return 1;
-
- if (BurnLoadRom(DrvColPROM, 1, 1)) return 1;
- }
-
- ZetInit(0);
- ZetOpen(0);
- ZetMapArea(0x0000, 0x7fff, 0, DrvZ80ROM);
- ZetMapArea(0x0000, 0x7fff, 2, DrvZ80ROM);
- ZetMapArea(0xc000, 0xdfff, 0, DrvZ80RAM);
- ZetMapArea(0xc000, 0xdfff, 1, DrvZ80RAM);
- ZetMapArea(0xc000, 0xdfff, 2, DrvZ80RAM);
- ZetMapArea(0xe000, 0xefff, 0, DrvGfxRAM);
-// ZetMapArea(0xe000, 0xefff, 1, DrvGfxRAM);
- ZetMapArea(0xe000, 0xefff, 2, DrvGfxRAM);
- ZetMapArea(0xf000, 0xffff, 0, DrvVidRAM);
- ZetMapArea(0xf000, 0xffff, 1, DrvVidRAM);
- ZetMapArea(0xf000, 0xffff, 2, DrvVidRAM);
- ZetSetWriteHandler(mogura_write);
- ZetSetOutHandler(mogura_write_port);
- ZetSetInHandler(mogura_read_port);
- ZetClose();
-
- DACInit(0, 0, 0, moguraDACSync);
- DACInit(1, 0, 0, moguraDACSync);
- DACSetRoute(0, 0.50, BURN_SND_ROUTE_LEFT);
- DACSetRoute(1, 0.50, BURN_SND_ROUTE_RIGHT);
-
- GenericTilesInit();
-
- DrvDoReset();
-
- return 0;
-}
-
-static INT32 DrvExit()
-{
- GenericTilesExit();
-
- ZetExit();
- DACExit();
-
- BurnFree (AllMem);
-
- return 0;
-}
-
-static void draw_background()
-{
- for (INT32 offs = 0; offs < 64 * 32; offs++)
- {
- INT32 sx = ((offs ^ 0x20) & 0x3f) << 3;
- INT32 sy = (offs >> 6) << 3;
-
- if (sx >= 256) sx ^= 128;
- if (sx >= 320) continue;
-
- INT32 code = DrvVidRAM[offs];
- INT32 color = (DrvVidRAM[offs + 0x800] >> 1) & 7;
-
- Render8x8Tile(pTransDraw, code, sx, sy, color, 2, 0, DrvGfxROM);
- }
-}
-
-static INT32 DrvDraw()
-{
- if (DrvRecalc) {
- DrvPaletteInit();
- DrvRecalc = 0;
- }
-
- draw_background();
-
- BurnTransferCopy(DrvPalette);
-
- return 0;
-}
-
-static INT32 DrvFrame()
-{
- if (DrvReset) {
- DrvDoReset();
- }
-
- ZetNewFrame();
-
- {
- DrvInputs[0] = 0xff;
- DrvInputs[1] = 0x00;
- DrvInputs[2] = 0x00;
- DrvInputs[3] = 0x00;
- DrvInputs[4] = 0x00;
-
- for (INT32 i = 0; i < 8; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] |= (DrvJoy2[i] & 1) << i;
- DrvInputs[2] |= (DrvJoy3[i] & 1) << i;
- DrvInputs[3] |= (DrvJoy4[i] & 1) << i;
- DrvInputs[4] |= (DrvJoy5[i] & 1) << i;
- }
-
- DrvInputs[5] = DrvDiag[0] & 1;
- }
-
- // Clear Opposites
- MoguraClearOpposites(&DrvInputs[1]);
- MoguraClearOpposites(&DrvInputs[2]);
- MoguraClearOpposites(&DrvInputs[3]);
- MoguraClearOpposites(&DrvInputs[4]);
-
- ZetOpen(0);
- ZetRun(3000000 / 60);
- ZetSetIRQLine(0, CPU_IRQSTATUS_AUTO);
-
- if (pBurnSoundOut) {
- DACUpdate(pBurnSoundOut, nBurnSoundLen);
- }
-
- ZetClose();
-
- if (pBurnDraw) {
- DrvDraw();
- }
-
- return 0;
-}
-
-static INT32 DrvScan(INT32 nAction, INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin != NULL) {
- *pnMin = 0x029698;
- }
-
- if (nAction & ACB_MEMORY_RAM) {
- memset(&ba, 0, sizeof(ba));
- ba.Data = AllRam;
- ba.nLen = RamEnd-AllRam;
- ba.szName = "All Ram";
- BurnAcb(&ba);
- }
-
- if (nAction & ACB_DRIVER_DATA) {
- ZetScan(nAction);
-
- DACScan(nAction, pnMin);
- }
-
- return 0;
-}
-
-
-// Mogura Desse
-
-static struct BurnRomInfo moguraRomDesc[] = {
- { "gx141.5n", 0x8000, 0x98e6120d, 1 | BRF_PRG | BRF_ESS }, // 0 Z80 Code
-
- { "gx141.7j", 0x0020, 0xb21c5d5f, 2 | BRF_GRA }, // 1 Color Prom
-};
-
-STD_ROM_PICK(mogura)
-STD_ROM_FN(mogura)
-
-struct BurnDriver BurnDrvMogura = {
- "mogura", NULL, NULL, NULL, "1991",
- "Mogura Desse\0", "Konami test board", "Konami", "Miscellaneous",
- L"\u30E2\u30B0\u30E9\u30C7\u30C3\u30BB\0Mogura Desse\0", NULL, NULL, NULL,
- BDF_GAME_WORKING, 4, HARDWARE_PREFIX_KONAMI, GBF_MISC, 0,
- NULL, moguraRomInfo, moguraRomName, NULL, NULL, MoguraInputInfo, NULL,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x20,
- 320, 256, 4, 3
-};
diff --git a/jan/src/burn/drv/konami/d_moo.cpp b/jan/src/burn/drv/konami/d_moo.cpp
deleted file mode 100644
index 2bea2b9a5..000000000
--- a/jan/src/burn/drv/konami/d_moo.cpp
+++ /dev/null
@@ -1,1603 +0,0 @@
-// FB Alpha Wild West C.O.W.-Boys of Moo Mesa / Bucky O'Hare driver module
-// Based on MAME driver by R. Belmont, Acho A. Tang
-
-#include "tiles_generic.h"
-#include "m68000_intf.h"
-#include "z80_intf.h"
-#include "konamiic.h"
-#include "burn_ym2151.h"
-#include "k054539.h"
-#include "eeprom.h"
-
-static UINT8 *AllMem;
-static UINT8 *Drv68KROM;
-static UINT8 *DrvZ80ROM;
-static UINT8 *DrvGfxROM0;
-static UINT8 *DrvGfxROM1;
-static UINT8 *DrvGfxROMExp0;
-static UINT8 *DrvGfxROMExp1;
-static UINT8 *DrvSndROM;
-static UINT8 *DrvEeprom;
-static UINT8 *AllRam;
-static UINT8 *Drv68KRAM;
-static UINT8 *Drv68KRAM2;
-static UINT8 *Drv68KRAM3;
-static UINT8 *DrvZ80RAM;
-static UINT8 *DrvSprRAM;
-static UINT8 *DrvPalRAM;
-static UINT8 *DrvProtRAM;
-static UINT8 *RamEnd;
-static UINT8 *MemEnd;
-
-static UINT8 *soundlatch;
-static UINT8 *soundlatch2;
-static UINT8 *soundlatch3;
-
-static UINT32 *DrvPalette;
-static UINT8 DrvRecalc;
-
-static INT32 layerpri[4];
-static INT32 layer_colorbase[4];
-static INT32 sprite_colorbase = 0;
-
-static UINT8 DrvJoy1[16];
-static UINT8 DrvJoy2[16];
-static UINT8 DrvJoy3[16];
-static UINT8 DrvJoy4[16];
-static UINT8 DrvJoy5[16];
-static UINT8 DrvReset;
-static UINT16 DrvInputs[4];
-static UINT8 DrvDips[1];
-
-static INT32 sound_nmi_enable = 0;
-static INT32 irq5_timer = 0;
-static UINT16 control_data = 0;
-static INT32 enable_alpha = 0;
-static UINT8 z80_bank;
-
-static UINT16 zmask;
-
-static struct BurnInputInfo MooInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy1 + 0, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy3 + 7, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy3 + 2, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy3 + 3, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy3 + 0, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy3 + 1, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy3 + 4, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy3 + 5, "p1 fire 2" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy1 + 1, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy4 + 7, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvJoy4 + 2, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy4 + 3, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy4 + 0, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy4 + 1, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy4 + 4, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy4 + 5, "p2 fire 2" },
-
- {"P3 Coin", BIT_DIGITAL, DrvJoy1 + 2, "p3 coin" },
- {"P3 Start", BIT_DIGITAL, DrvJoy3 + 15, "p3 start" },
- {"P3 Up", BIT_DIGITAL, DrvJoy3 + 10, "p3 up" },
- {"P3 Down", BIT_DIGITAL, DrvJoy3 + 11, "p3 down" },
- {"P3 Left", BIT_DIGITAL, DrvJoy3 + 8, "p3 left" },
- {"P3 Right", BIT_DIGITAL, DrvJoy3 + 9, "p3 right" },
- {"P3 Button 1", BIT_DIGITAL, DrvJoy3 + 12, "p3 fire 1" },
- {"P3 Button 2", BIT_DIGITAL, DrvJoy3 + 13, "p3 fire 2" },
-
- {"P4 Coin", BIT_DIGITAL, DrvJoy1 + 3, "p4 coin" },
- {"P4 Start", BIT_DIGITAL, DrvJoy4 + 15, "p4 start" },
- {"P4 Up", BIT_DIGITAL, DrvJoy4 + 10, "p4 up" },
- {"P4 Down", BIT_DIGITAL, DrvJoy4 + 11, "p4 down" },
- {"P4 Left", BIT_DIGITAL, DrvJoy4 + 8, "p4 left" },
- {"P4 Right", BIT_DIGITAL, DrvJoy4 + 9, "p4 right" },
- {"P4 Button 1", BIT_DIGITAL, DrvJoy4 + 12, "p4 fire 1" },
- {"P4 Button 2", BIT_DIGITAL, DrvJoy4 + 13, "p4 fire 2" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service 1", BIT_DIGITAL, DrvJoy1 + 4, "service" },
- {"Service 2", BIT_DIGITAL, DrvJoy1 + 5, "service" },
- {"Service 3", BIT_DIGITAL, DrvJoy1 + 6, "service" },
- {"Service 4", BIT_DIGITAL, DrvJoy1 + 7, "service" },
- {"Service Mode", BIT_DIGITAL, DrvJoy5 + 3, "diagnostics" },
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
-};
-
-STDINPUTINFO(Moo)
-
-static struct BurnInputInfo BuckyInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy1 + 0, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy3 + 7, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy3 + 2, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy3 + 3, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy3 + 0, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy3 + 1, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy3 + 4, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy3 + 5, "p1 fire 2" },
- {"P1 Button 3", BIT_DIGITAL, DrvJoy3 + 6, "p1 fire 3" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy1 + 1, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy4 + 7, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvJoy4 + 2, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy4 + 3, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy4 + 0, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy4 + 1, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy4 + 4, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy4 + 5, "p2 fire 2" },
- {"P2 Button 3", BIT_DIGITAL, DrvJoy4 + 6, "p2 fire 3" },
-
- {"P3 Coin", BIT_DIGITAL, DrvJoy1 + 2, "p3 coin" },
- {"P3 Start", BIT_DIGITAL, DrvJoy3 + 15, "p3 start" },
- {"P3 Up", BIT_DIGITAL, DrvJoy3 + 10, "p3 up" },
- {"P3 Down", BIT_DIGITAL, DrvJoy3 + 11, "p3 down" },
- {"P3 Left", BIT_DIGITAL, DrvJoy3 + 8, "p3 left" },
- {"P3 Right", BIT_DIGITAL, DrvJoy3 + 9, "p3 right" },
- {"P3 Button 1", BIT_DIGITAL, DrvJoy3 + 12, "p3 fire 1" },
- {"P3 Button 2", BIT_DIGITAL, DrvJoy3 + 13, "p3 fire 2" },
- {"P3 Button 3", BIT_DIGITAL, DrvJoy3 + 14, "p3 fire 3" },
-
- {"P4 Coin", BIT_DIGITAL, DrvJoy1 + 3, "p4 coin" },
- {"P4 Start", BIT_DIGITAL, DrvJoy4 + 15, "p4 start" },
- {"P4 Up", BIT_DIGITAL, DrvJoy4 + 10, "p4 up" },
- {"P4 Down", BIT_DIGITAL, DrvJoy4 + 11, "p4 down" },
- {"P4 Left", BIT_DIGITAL, DrvJoy4 + 8, "p4 left" },
- {"P4 Right", BIT_DIGITAL, DrvJoy4 + 9, "p4 right" },
- {"P4 Button 1", BIT_DIGITAL, DrvJoy4 + 12, "p4 fire 1" },
- {"P4 Button 2", BIT_DIGITAL, DrvJoy4 + 13, "p4 fire 2" },
- {"P4 Button 3", BIT_DIGITAL, DrvJoy4 + 14, "p4 fire 3" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service 1", BIT_DIGITAL, DrvJoy1 + 4, "service" },
- {"Service 2", BIT_DIGITAL, DrvJoy1 + 5, "service" },
- {"Service 3", BIT_DIGITAL, DrvJoy1 + 6, "service" },
- {"Service 4", BIT_DIGITAL, DrvJoy1 + 7, "service" },
- {"Service Mode", BIT_DIGITAL, DrvJoy5 + 3, "diagnostics" },
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
-};
-
-STDINPUTINFO(Bucky)
-
-static struct BurnDIPInfo MooDIPList[]=
-{
- {0x26, 0xff, 0xff, 0x60, NULL },
-
- {0 , 0xfe, 0 , 2, "Sound Output" },
- {0x26, 0x01, 0x10, 0x10, "Mono" },
- {0x26, 0x01, 0x10, 0x00, "Stereo" },
-
- {0 , 0xfe, 0 , 2, "Coin Mechanism" },
- {0x26, 0x01, 0x20, 0x20, "Common" },
- {0x26, 0x01, 0x20, 0x00, "Independent" },
-
- {0 , 0xfe, 0 , 3, "Number of Players" },
- {0x26, 0x01, 0xc0, 0xc0, "2" },
- {0x26, 0x01, 0xc0, 0x40, "3" },
- {0x26, 0x01, 0xc0, 0x80, "4" },
-};
-
-STDDIPINFO(Moo)
-
-static struct BurnDIPInfo BuckyDIPList[]=
-{
- {0x2a, 0xff, 0xff, 0x60, NULL },
-
- {0 , 0xfe, 0 , 2, "Sound Output" },
- {0x2a, 0x01, 0x10, 0x10, "Mono" },
- {0x2a, 0x01, 0x10, 0x00, "Stereo" },
-
- {0 , 0xfe, 0 , 2, "Coin Mechanism" },
- {0x2a, 0x01, 0x20, 0x20, "Common" },
- {0x2a, 0x01, 0x20, 0x00, "Independent" },
-
- {0 , 0xfe, 0 , 3, "Number of Players" },
- {0x2a, 0x01, 0xc0, 0xc0, "2" },
- {0x2a, 0x01, 0xc0, 0x40, "3" },
- {0x2a, 0x01, 0xc0, 0x80, "4" },
-};
-
-STDDIPINFO(Bucky)
-
-static void moo_objdma()
-{
- INT32 num_inactive;
- UINT16 *dst = (UINT16*)K053247Ram;
- UINT16 *src = (UINT16*)DrvSprRAM;
-
- INT32 counter = 23;
-
- num_inactive = counter = 256;
-
- do
- {
- if ((*src & 0x8000) && (*src & zmask))
- {
- memcpy(dst, src, 0x10);
- dst += 8;
- num_inactive--;
- }
- src += 0x80;
- }
- while (--counter);
-
- if (num_inactive)
- {
- do
- {
- *dst = 0;
- dst += 8;
- }
- while (--num_inactive);
- }
-}
-
-static void moo_prot_write(INT32 offset)
-{
- UINT16 *m_protram = (UINT16*)DrvProtRAM;
-
- if ((offset & 0x1e) == 0x18) // trigger operation
- {
- UINT32 src1 = (m_protram[1] & 0xff) << 16 | m_protram[0];
- UINT32 src2 = (m_protram[3] & 0xff) << 16 | m_protram[2];
- UINT32 dst = (m_protram[5] & 0xff) << 16 | m_protram[4];
- UINT32 length = m_protram[0xf];
-
- while (length)
- {
- UINT32 a = SekReadWord(src1);
- UINT32 b = SekReadWord(src2);
-
- SekWriteWord(dst, a + 2 * b);
-
- src1 += 2;
- src2 += 2;
- dst += 2;
- length--;
- }
- }
-}
-
-static inline void sync_sound()
-{
- INT32 cycles = (SekTotalCycles() / 2) - ZetTotalCycles();
- if (cycles > 0) {
- ZetRun(cycles);
- }
-}
-
-static void __fastcall moo_main_write_word(UINT32 address, UINT16 data)
-{
- if ((address & 0xffc000) == 0x1a0000) {
- K056832RamWriteWord(address & 0x1fff, data);
- return;
- }
-
- if ((address & 0xfffff8) == 0x0c2000) {
- K053246Write((address & 0x06) + 0, data >> 8);
- K053246Write((address & 0x06) + 1, data&0xff);
- return;
- }
-
- if ((address & 0xffffc0) == 0x0c0000) {
- K056832WordWrite(address & 0x3e, data);
- return;
- }
-
- if ((address & 0xffffe0) == 0x0ca000) {
- K054338WriteWord(address, data);
- return;
- }
-
- if ((address & 0xffffe0) == 0x0ce000) {
- *((UINT16*)(DrvProtRAM + (address & 0x1e))) = data;
- moo_prot_write(address);
- return;
- }
-
- if ((address & 0xfffff8) == 0x0d8000) {
- return; // regb
- }
- switch (address)
- {
- case 0x0de000:
- control_data = data;
- K053246_set_OBJCHA_line((data & 0x100) >> 8);
- EEPROMWrite((data & 0x04), (data & 0x02), (data & 0x01));
- return;
- }
-}
-
-static void __fastcall moo_main_write_byte(UINT32 address, UINT8 data)
-{
- if ((address & 0xffc000) == 0x1a0000) {
- K056832RamWriteByte(address & 0x1fff, data);
- return;
- }
-
- if ((address & 0xffffc0) == 0x0c0000) {
- K056832ByteWrite(address, data);
- return;
- }
-
- if ((address & 0xfffff8) == 0x0c2000) {
- K053246Write((address & 0x07) ^ 0, data);
- return;
- }
-
- if ((address & 0xffffe1) == 0x0cc001) {
- K053251Write((address / 2) & 0xf, data);
- return;
- }
-
- if ((address & 0xffffe0) == 0x0d0000) {
- // k053252 unimplemented
- return;
- }
-
- if ((address & 0xfffff8) == 0x0d8000) {
- return; // regb
- }
-
- switch (address)
- {
- case 0x0d4000:
- case 0x0d4001:
- ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
- return;
-
- case 0x0d600c:
- case 0x0d600d:
- sync_sound();
- *soundlatch = data;
- return;
-
- case 0x0d600e:
- case 0x0d600f:
- sync_sound();
- *soundlatch2 = data;
- return;
-
- case 0x0de000:
- control_data = (control_data & 0x00ff) + (data << 8);
- return;
-
- case 0x0de001:
- EEPROMWrite((data & 0x04), (data & 0x02), (data & 0x01));
- control_data = (control_data & 0xff00) + data;
- return;
- }
-}
-
-static UINT16 __fastcall moo_main_read_word(UINT32 address)
-{
-//bprintf (0, _T("MRW: %5.5x\n"), address);
-
- if ((address & 0xffc000) == 0x1a0000) {
- return K056832RamReadWord(address & 0x1fff);
- }
-
- if ((address & 0xffe000) == 0x1b0000) {
- return K056832RomWordRead(address);
- }
-
- switch (address)
- {
- case 0x0c4000:
- sync_sound();
- return K053246Read(1) + (K053246Read(0) << 8);
-
- case 0x0da000:
- return DrvInputs[2];
-
- case 0x0da002:
- return DrvInputs[3];
-
- case 0x0dc000:
- return DrvInputs[0] & 0xff;
-
- case 0x0dc002:
- return (DrvInputs[1] & 0xf8) | 2 | (EEPROMRead() ? 0x01 : 0);
-
- case 0x0de000:
- return control_data;
- }
-
- return 0;
-}
-
-static UINT8 __fastcall moo_main_read_byte(UINT32 address)
-{
-//bprintf (0, _T("MRB: %5.5x\n"), address);
-
- if ((address & 0xffc000) == 0x1a0000) {
- return K056832RamReadByte(address & 0x1fff);
- }
-
- if ((address & 0xffe000) == 0x1b0000) {
- return K056832RomWordRead(address) >> ((~address & 1) * 8);
- }
-
- switch (address)
- {
- case 0x0c4000:
- case 0x0c4001:
- sync_sound();
- return K053246Read(address & 1);
-
- case 0x0da000:
- return DrvInputs[2] >> 8;
-
- case 0x0da001:
- return DrvInputs[2];
-
- case 0x0da002:
- return DrvInputs[3] >> 8;
-
- case 0x0da003:
- return DrvInputs[3];
-
- case 0x0dc000:
- return DrvInputs[0] >> 8;
-
- case 0x0dc001:
- return DrvInputs[0];
-
- case 0x0dc002:
- return 0;
-
- case 0x0dc003:
- return ((DrvInputs[1]) & 0xf8) | 2 | (EEPROMRead() ? 0x01 : 0);
-
- case 0x0d6015:
- return *soundlatch3;
-
- case 0x0de000:
- case 0x0de001:
- return control_data >> ((~address & 1) * 8);
- }
-
- return 0;
-}
-
-static void __fastcall bucky_main_write_word(UINT32 address, UINT16 data)
-{
- if ((address & 0xffc000) == 0x180000) {
- K056832RamWriteWord(address & 0x1fff, data);
- return;
- }
-
- if ((address & 0xfffff8) == 0x0c2000) {
- K053246Write((address & 0x06) + 0, data >> 8);
- K053246Write((address & 0x06) + 1, data&0xff);
- return;
- }
-
- if ((address & 0xffffc0) == 0x0c0000) {
- K056832WordWrite(address & 0x3e, data);
- return;
- }
-
- if ((address & 0xffffe0) == 0x0ca000) {
- K054338WriteWord(address, data);
- return;
- }
-
- if ((address & 0xffffe0) == 0x0ce000) {
- *((UINT16*)(DrvProtRAM + (address & 0x1e))) = data;
- moo_prot_write(address);
- return;
- }
-
- if ((address & 0xffff00) == 0x0d2000) {
- K054000Write((address/2)&0xff, data);
- return;
- }
-
- if ((address & 0xfffff8) == 0x0d8000) {
- return; // regb
- }
-
- switch (address)
- {
- case 0x0de000:
- control_data = data;
- K053246_set_OBJCHA_line((data & 0x100) >> 8);
- EEPROMWrite((data & 0x04), (data & 0x02), (data & 0x01));
- return;
-
- }
-}
-
-static void __fastcall bucky_main_write_byte(UINT32 address, UINT8 data)
-{
- if ((address & 0xffc000) == 0x180000) {
- K056832RamWriteByte(address & 0x1fff, data);
- return;
- }
-
- if ((address & 0xffffc0) == 0x0c0000) {
- K056832ByteWrite(address, data);
- return;
- }
-
- if ((address & 0xfffff8) == 0x0c2000) {
- K053246Write((address & 0x07) ^ 0, data);
- return;
- }
-
- if ((address & 0xffffe1) == 0x0cc001) {
- K053251Write((address / 2) & 0xf, data);
- return;
- }
-
- if ((address & 0xffffe0) == 0x0d0000) {
- // k053252 unimplemented
- return;
- }
-
- if ((address & 0xffff00) == 0x0d2000) {
- K054000Write((address/2)&0xff, data);
- return;
- }
-
- if ((address & 0xfffff8) == 0x0d8000) {
- return; // regb
- }
-
- switch (address)
- {
- case 0x0d4000:
- case 0x0d4001:
- ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
- return;
-
- case 0x0d600c:
- case 0x0d600d:
- sync_sound();
- *soundlatch = data;
- return;
-
- case 0x0d600e:
- case 0x0d600f:
- sync_sound();
- *soundlatch2 = data;
- return;
-
- case 0x0de000:
- control_data = (control_data & 0x00ff) + (data << 8);
- return;
-
- case 0x0de001:
- EEPROMWrite((data & 0x04), (data & 0x02), (data & 0x01));
- control_data = (control_data & 0xff00) + data;
- return;
- }
-}
-
-static UINT16 __fastcall bucky_main_read_word(UINT32 address)
-{
-//bprintf (0, _T("MRW: %5.5x\n"), address);
-
- if ((address & 0xffff00) == 0x0d2000) {
- return K054000Read((address/2)&0xff);
- }
-
- if ((address & 0xffc000) == 0x180000) {
- return K056832RamReadWord(address & 0x1fff);
- }
-
- if ((address & 0xffe000) == 0x190000) {
- return K056832RomWordRead(address);
- }
-
- switch (address)
- {
- case 0x0c4000:
- sync_sound();
- return K053246Read(1) + (K053246Read(0) << 8);
-
- case 0x0da000:
- return DrvInputs[2];
-
- case 0x0da002:
- return DrvInputs[3];
-
- case 0x0dc000:
- return DrvInputs[0] & 0xff;
-
- case 0x0dc002:
- return (DrvInputs[1] & 0xf8) | 2 | (EEPROMRead() ? 0x01 : 0);
-
- case 0x0de000:
- return control_data;
- }
-
- return 0;
-}
-
-static UINT8 __fastcall bucky_main_read_byte(UINT32 address)
-{
-//bprintf (0, _T("MRB: %5.5x\n"), address);
-
- if ((address & 0xffff00) == 0x0d2000) {
- return K054000Read((address/2)&0xff);
- }
-
- if ((address & 0xffc000) == 0x180000) {
- return K056832RamReadByte(address & 0x1fff);
- }
-
- if ((address & 0xffe000) == 0x190000) {
- return K056832RomWordRead(address) >> ((~address & 1) * 8);
- }
-
- switch (address)
- {
- case 0x0c4000:
- case 0x0c4001:
- sync_sound();
- return K053246Read(address & 1);
-
- case 0x0da000:
- return DrvInputs[2] >> 8;
-
- case 0x0da001:
- return DrvInputs[2];
-
- case 0x0da002:
- return DrvInputs[3] >> 8;
-
- case 0x0da003:
- return DrvInputs[3];
-
- case 0x0dc000:
- return DrvInputs[0] >> 8;
-
- case 0x0dc001:
- return DrvInputs[0];
-
- case 0x0dc002:
- return 0;
-
- case 0x0dc003:
- return ((DrvInputs[1]) & 0xf8) | 2 | (EEPROMRead() ? 0x01 : 0);
-
- case 0x0d6015:
- return *soundlatch3;
-
- case 0x0de000:
- case 0x0de001:
- return control_data >> ((~address & 1) * 8);
- }
-
- return 0;
-}
-
-static void bankswitch(INT32 data)
-{
- z80_bank = data;
- ZetMapMemory(DrvZ80ROM + ((data & 0x0f) * 0x4000), 0x8000, 0xbfff, MAP_ROM);
-}
-
-static void __fastcall moo_sound_write(UINT16 address, UINT8 data)
-{
- switch (address)
- {
- case 0xec00:
- BurnYM2151SelectRegister(data);
- return;
-
- case 0xec01:
- BurnYM2151WriteRegister(data);
- return;
-
- case 0xf000:
- *soundlatch3 = data;
- return;
-
- case 0xf800:
- bankswitch(data);
- return;
- }
-
- if (address >= 0xe000 && address <= 0xe22f) {
- return K054539Write(0, address & 0x3ff, data);
- }
-}
-
-static UINT8 __fastcall moo_sound_read(UINT16 address)
-{
- if (address >= 0xe000 && address <= 0xe22f) {
- return K054539Read(0, address & 0x3ff);
- }
-
- switch (address)
- {
- case 0xec00:
- case 0xec01:
- return BurnYM2151ReadStatus();
-
- case 0xf002:
- ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
- return *soundlatch;
-
- case 0xf003:
- return *soundlatch2;
- }
-
- return 0;
-}
-
-static const eeprom_interface moo_eeprom_interface =
-{
- 7, /* address bits */
- 8, /* data bits */
- "011000", /* read command */
- "011100", /* write command */
- "0100100000000", /* erase command */
- "0100000000000", /* lock command */
- "0100110000000", /* unlock command */
- 0,
- 0
-};
-
-static void moo_sprite_callback(INT32 */*code*/, INT32 *color, INT32 *priority)
-{
- INT32 pri = (*color & 0x03e0) >> 4;
-
- if (pri <= layerpri[2]) *priority = 0x00;
- else if (pri <= layerpri[1]) *priority = 0xf0;
- else if (pri <= layerpri[0]) *priority = 0xfc;
- else *priority = 0xfe;
-
- *color = sprite_colorbase | (*color & 0x001f);
-}
-
-static void moo_tile_callback(INT32 layer, INT32 */*code*/, INT32 *color, INT32 */*flags*/)
-{
- *color = layer_colorbase[layer] | (*color >> 2 & 0x0f);
-}
-
-static INT32 DrvDoReset()
-{
- memset (AllRam, 0, RamEnd - AllRam);
-
- SekOpen(0);
- SekReset();
- SekClose();
-
- ZetOpen(0);
- ZetReset();
- bankswitch(2);
- ZetClose();
-
- KonamiICReset();
-
- BurnYM2151Reset();
- K054539Reset(0);
-
- EEPROMReset();
-
- if (EEPROMAvailable() == 0) {
- EEPROMFill(DrvEeprom, 0, 128);
- }
-
- control_data = 0;
- irq5_timer = 0;
-
- for (INT32 i = 0; i < 4; i++)
- {
- layer_colorbase[i] = 0;
- layerpri[i] = 0;
- }
-
- sound_nmi_enable = 0;
- z80_bank = 0;
-
- return 0;
-}
-
-static INT32 MemIndex()
-{
- UINT8 *Next; Next = AllMem;
-
- Drv68KROM = Next; Next += 0x100000;
- DrvZ80ROM = Next; Next += 0x040000;
-
- DrvGfxROM0 = Next; Next += 0x200000;
- DrvGfxROMExp0 = Next; Next += 0x400000;
- DrvGfxROM1 = Next; Next += 0x800000;
- DrvGfxROMExp1 = Next; Next += 0x1000000;
-
- DrvSndROM = Next; Next += 0x400000;
-
- DrvEeprom = Next; Next += 0x000080;
-
- konami_palette32 = (UINT32*)Next;
- DrvPalette = (UINT32*)Next; Next += 0x1000 * sizeof(UINT32);
-
- AllRam = Next;
-
- Drv68KRAM = Next; Next += 0x010000;
- Drv68KRAM2 = Next; Next += 0x010000;
- Drv68KRAM3 = Next; Next += 0x004000;
- DrvSprRAM = Next; Next += 0x010000;
- DrvPalRAM = Next; Next += 0x005000;
-
- DrvZ80RAM = Next; Next += 0x002000;
-
- DrvProtRAM = Next; Next += 0x000020;
-
- soundlatch = Next; Next += 0x000001;
- soundlatch2 = Next; Next += 0x000001;
- soundlatch3 = Next; Next += 0x000001;
-
- RamEnd = Next;
- MemEnd = Next;
-
- return 0;
-}
-
-static INT32 MooInit()
-{
- GenericTilesInit();
-
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(Drv68KROM + 0x000001, 0, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x000000, 1, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x080001, 2, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x080000, 3, 2)) return 1;
-
- if (BurnLoadRom(DrvZ80ROM + 0x000000, 4, 1)) return 1;
-
- if (BurnLoadRomExt(DrvGfxROM0 + 0x000000, 5, 4, 2)) return 1;
- if (BurnLoadRomExt(DrvGfxROM0 + 0x000002, 6, 4, 2)) return 1;
-
- if (BurnLoadRomExt(DrvGfxROM1 + 0x000000, 7, 8, 2)) return 1;
- if (BurnLoadRomExt(DrvGfxROM1 + 0x000002, 8, 8, 2)) return 1;
- if (BurnLoadRomExt(DrvGfxROM1 + 0x000004, 9, 8, 2)) return 1;
- if (BurnLoadRomExt(DrvGfxROM1 + 0x000006, 10, 8, 2)) return 1;
-
- if (BurnLoadRom(DrvSndROM + 0x000000, 11, 1)) return 1;
-
- if (BurnLoadRom(DrvEeprom + 0x000000, 12, 1)) return 1;
-
- K053247GfxDecode(DrvGfxROM0, DrvGfxROMExp0, 0x200000);
- K053247GfxDecode(DrvGfxROM1, DrvGfxROMExp1, 0x800000);
- }
-
- K054338Init();
-
- K056832Init(DrvGfxROM0, DrvGfxROMExp0, 0x200000, moo_tile_callback);
- K056832SetGlobalOffsets(40, 16);
- K056832SetLayerOffsets(0, -1, 0);
- K056832SetLayerOffsets(1, 3, 0);
- K056832SetLayerOffsets(2, 5, 0);
- K056832SetLayerOffsets(3, 7, 0);
-
- K053247Init(DrvGfxROM1, DrvGfxROMExp1, 0x7fffff, moo_sprite_callback, 1);
- K053247SetSpriteOffset(-88, -39);
-
- zmask = 0xffff;
-
- SekInit(0, 0x68000);
- SekOpen(0);
- SekMapMemory(Drv68KROM, 0x000000, 0x07ffff, MAP_ROM);
- SekMapMemory(Drv68KROM + 0x080000, 0x100000, 0x17ffff, MAP_ROM);
- SekMapMemory(Drv68KRAM, 0x180000, 0x18ffff, MAP_RAM);
- SekMapMemory(DrvSprRAM, 0x190000, 0x19ffff, MAP_RAM);
- SekMapMemory(DrvPalRAM, 0x1c0000, 0x1c1fff, MAP_RAM);
- SekSetWriteWordHandler(0, moo_main_write_word);
- SekSetWriteByteHandler(0, moo_main_write_byte);
- SekSetReadWordHandler(0, moo_main_read_word);
- SekSetReadByteHandler(0, moo_main_read_byte);
- SekClose();
-
- ZetInit(0);
- ZetOpen(0);
- ZetMapMemory(DrvZ80ROM, 0x0000, 0x7fff, MAP_ROM);
- ZetMapMemory(DrvZ80RAM, 0xc000, 0xdfff, MAP_RAM);
- ZetSetWriteHandler(moo_sound_write);
- ZetSetReadHandler(moo_sound_read);
- ZetClose();
-
- EEPROMInit(&moo_eeprom_interface);
-
- BurnYM2151Init(4000000);
- BurnYM2151SetRoute(BURN_SND_YM2151_YM2151_ROUTE_1, 0.50, BURN_SND_ROUTE_LEFT);
- BurnYM2151SetRoute(BURN_SND_YM2151_YM2151_ROUTE_2, 0.50, BURN_SND_ROUTE_RIGHT);
-
- K054539Init(0, 48000, DrvSndROM, 0x200000);
- K054539SetRoute(0, BURN_SND_K054539_ROUTE_1, 0.75, BURN_SND_ROUTE_LEFT);
- K054539SetRoute(0, BURN_SND_K054539_ROUTE_2, 0.75, BURN_SND_ROUTE_RIGHT);
-
- DrvDoReset();
-
- return 0;
-}
-
-static INT32 BuckyInit()
-{
- GenericTilesInit();
-
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(Drv68KROM + 0x000001, 0, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x000000, 1, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x080001, 2, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x080000, 3, 2)) return 1;
-
- if (BurnLoadRom(DrvZ80ROM + 0x000000, 4, 1)) return 1;
-
- if (BurnLoadRomExt(DrvGfxROM0 + 0x000000, 5, 4, 2)) return 1;
- if (BurnLoadRomExt(DrvGfxROM0 + 0x000002, 6, 4, 2)) return 1;
-
- if (BurnLoadRomExt(DrvGfxROM1 + 0x000000, 7, 8, 2)) return 1;
- if (BurnLoadRomExt(DrvGfxROM1 + 0x000002, 8, 8, 2)) return 1;
- if (BurnLoadRomExt(DrvGfxROM1 + 0x000004, 9, 8, 2)) return 1;
- if (BurnLoadRomExt(DrvGfxROM1 + 0x000006, 10, 8, 2)) return 1;
-
- if (BurnLoadRom(DrvSndROM + 0x000000, 11, 1)) return 1;
- if (BurnLoadRom(DrvSndROM + 0x200000, 12, 1)) return 1;
-
- if (BurnLoadRom(DrvEeprom + 0x000000, 13, 1)) return 1;
-
- K053247GfxDecode(DrvGfxROM0, DrvGfxROMExp0, 0x200000);
- K053247GfxDecode(DrvGfxROM1, DrvGfxROMExp1, 0x800000);
- }
-
- K054338Init();
-
- K056832Init(DrvGfxROM0, DrvGfxROMExp0, 0x200000, moo_tile_callback);
- K056832SetGlobalOffsets(40, 16);
- K056832SetLayerOffsets(0, -2, 0);
- K056832SetLayerOffsets(1, 2, 0);
- K056832SetLayerOffsets(2, 4, 0);
- K056832SetLayerOffsets(3, 6, 0);
-
- K053247Init(DrvGfxROM1, DrvGfxROMExp1, 0x7fffff, moo_sprite_callback, 1);
- K053247SetSpriteOffset(-88, -39);
-
- zmask = 0x00ff;
-
- SekInit(0, 0x68000);
- SekOpen(0);
- SekMapMemory(Drv68KROM, 0x000000, 0x07ffff, MAP_ROM);
- SekMapMemory(Drv68KROM + 0x080000, 0x200000, 0x23ffff, MAP_ROM);
- SekMapMemory(Drv68KRAM, 0x080000, 0x08ffff, MAP_RAM);
- SekMapMemory(DrvSprRAM, 0x090000, 0x09ffff, MAP_RAM);
- SekMapMemory(Drv68KRAM2, 0x0a0000, 0x0affff, MAP_RAM);
- SekMapMemory(Drv68KRAM3, 0x184000, 0x187fff, MAP_RAM);
- SekMapMemory(DrvPalRAM, 0x1b0000, 0x1b3fff, MAP_RAM);
- SekSetWriteWordHandler(0, bucky_main_write_word);
- SekSetWriteByteHandler(0, bucky_main_write_byte);
- SekSetReadWordHandler(0, bucky_main_read_word);
- SekSetReadByteHandler(0, bucky_main_read_byte);
- SekClose();
-
- ZetInit(0);
- ZetOpen(0);
- ZetMapMemory(DrvZ80ROM, 0x0000, 0x7fff, MAP_ROM);
- ZetMapMemory(DrvZ80RAM, 0xc000, 0xdfff, MAP_RAM);
- ZetSetWriteHandler(moo_sound_write);
- ZetSetReadHandler(moo_sound_read);
- ZetClose();
-
- EEPROMInit(&moo_eeprom_interface);
-
- BurnYM2151Init(4000000);
- BurnYM2151SetRoute(BURN_SND_YM2151_YM2151_ROUTE_1, 0.50, BURN_SND_ROUTE_LEFT);
- BurnYM2151SetRoute(BURN_SND_YM2151_YM2151_ROUTE_2, 0.50, BURN_SND_ROUTE_RIGHT);
-
- K054539Init(0, 48000, DrvSndROM, 0x400000);
- K054539SetRoute(0, BURN_SND_K054539_ROUTE_1, 0.75, BURN_SND_ROUTE_LEFT);
- K054539SetRoute(0, BURN_SND_K054539_ROUTE_2, 0.75, BURN_SND_ROUTE_RIGHT);
-
- DrvDoReset();
-
- return 0;
-}
-
-static INT32 DrvExit()
-{
- GenericTilesExit();
-
- KonamiICExit();
-
- SekExit();
- ZetExit();
-
- EEPROMExit();
-
- BurnYM2151Exit();
- K054539Exit();
-
- BurnFree (AllMem);
-
- return 0;
-}
-
-static void DrvPaletteRecalc()
-{
- UINT16 *pal = (UINT16*)DrvPalRAM;
-
- for (INT32 i = 0; i < 0x2000/2; i+=2)
- {
- INT32 r = pal[i+0] & 0xff;
- INT32 g = pal[i+1] >> 8;
- INT32 b = pal[i+1] & 0xff;
-
- DrvPalette[i/2] = (r << 16) + (g << 8) + b;
- }
-}
-
-static INT32 DrvDraw()
-{
- DrvPaletteRecalc();
-
- KonamiClearBitmaps(0);
-
- static const INT32 K053251_CI[4] = { 1, 2, 3, 4 };
- INT32 layers[3];
- INT32 plane, alpha = 0xff;
-
- sprite_colorbase = K053251GetPaletteIndex(0);
- layer_colorbase[0] = 0x70;
-
- for (plane = 1; plane < 4; plane++)
- {
- layer_colorbase[plane] = K053251GetPaletteIndex(K053251_CI[plane]);
- }
-
- layers[0] = 1;
- layerpri[0] = K053251GetPriority(2);
- layers[1] = 2;
- layerpri[1] = K053251GetPriority(3);
- layers[2] = 3;
- layerpri[2] = K053251GetPriority(4);
-
- konami_sortlayers3(layers, layerpri);
-
- if (layerpri[0] < K053251GetPriority(1))
- if (nBurnLayer & (1< 0)
- if (nBurnLayer & (1< 0) {
- irq5_timer--;
- if (control_data & 0x800 && (irq5_timer == 0)) {
- SekSetIRQLine(4, CPU_IRQSTATUS_AUTO);
- }
- }
- }
-
- nCyclesSegment = (SekTotalCycles() / 2) - ZetTotalCycles();
- if (nCyclesSegment > 0) nCyclesDone[1] += ZetRun(nCyclesSegment); // sync sound cpu to main cpu
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen / nInterleave;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- BurnYM2151Render(pSoundBuf, nSegmentLength);
- nSoundBufferPos += nSegmentLength;
- }
- }
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- if (nSegmentLength) {
- BurnYM2151Render(pSoundBuf, nSegmentLength);
- }
- K054539Update(0, pBurnSoundOut, nBurnSoundLen);
- }
-
- ZetClose();
- SekClose();
-
- if (pBurnDraw) {
- DrvDraw();
- }
-
- return 0;
-}
-
-static INT32 DrvScan(INT32 nAction,INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin) {
- *pnMin = 0x029732;
- }
-
- if (nAction & ACB_VOLATILE) {
- memset(&ba, 0, sizeof(ba));
-
- ba.Data = AllRam;
- ba.nLen = RamEnd - AllRam;
- ba.szName = "All Ram";
- BurnAcb(&ba);
-
- SekScan(nAction);
- ZetScan(nAction);
-
- BurnYM2151Scan(nAction);
- K054539Scan(nAction);
-
- KonamiICScan(nAction);
-
- SCAN_VAR(z80_bank);
- SCAN_VAR(sound_nmi_enable);
-
- SCAN_VAR(irq5_timer);
-
- SCAN_VAR(control_data);
- SCAN_VAR(enable_alpha);
- }
-
- if (nAction & ACB_WRITE) {
- ZetOpen(0);
- bankswitch(z80_bank);
- ZetClose();
- }
-
- EEPROMScan(nAction, pnMin);
-
- return 0;
-}
-
-
-
-// Wild West C.O.W.-Boys of Moo Mesa (ver EAB)
-
-static struct BurnRomInfo moomesaRomDesc[] = {
- { "151b01.q5", 0x040000, 0xfb2fa298, 1 | BRF_PRG | BRF_ESS }, // 0 68K Code
- { "151eab02.q6", 0x040000, 0x37b30c01, 1 | BRF_PRG | BRF_ESS }, // 1
- { "151a03.t5", 0x040000, 0xc896d3ea, 1 | BRF_PRG | BRF_ESS }, // 2
- { "151a04.t6", 0x040000, 0x3b24706a, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "151a07.f5", 0x040000, 0xcde247fc, 2 | BRF_PRG | BRF_ESS }, // 4 Z80 Code
-
- { "151a05.t8", 0x100000, 0xbc616249, 3 | BRF_GRA }, // 5 K056832 Characters
- { "151a06.t10", 0x100000, 0x38dbcac1, 3 | BRF_GRA }, // 6
-
- { "151a10.b8", 0x200000, 0x376c64f1, 4 | BRF_GRA }, // 7 K053247 Sprites
- { "151a11.a8", 0x200000, 0xe7f49225, 4 | BRF_GRA }, // 8
- { "151a12.b10", 0x200000, 0x4978555f, 4 | BRF_GRA }, // 9
- { "151a13.a10", 0x200000, 0x4771f525, 4 | BRF_GRA }, // 10
-
- { "151a08.b6", 0x200000, 0x962251d7, 5 | BRF_SND }, // 11 K054539 Samples
-
- { "moomesa.nv", 0x000080, 0x7bd904a8, 6 | BRF_OPT }, // 12 eeprom data
-};
-
-STD_ROM_PICK(moomesa)
-STD_ROM_FN(moomesa)
-
-struct BurnDriver BurnDrvMoomesa = {
- "moomesa", NULL, NULL, NULL, "1992",
- "Wild West C.O.W.-Boys of Moo Mesa (ver EAB)\0", NULL, "Konami", "GX151",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 4, HARDWARE_PREFIX_KONAMI, GBF_SCRFIGHT, 0,
- NULL, moomesaRomInfo, moomesaRomName, NULL, NULL, MooInputInfo, MooDIPInfo,
- MooInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 384, 224, 4, 3
-};
-
-
-// Wild West C.O.W.-Boys of Moo Mesa (ver UAC)
-
-static struct BurnRomInfo moomesauacRomDesc[] = {
- { "151c01.q5", 0x040000, 0x10555732, 1 | BRF_PRG | BRF_ESS }, // 0 68K Code
- { "151uac02.q6", 0x040000, 0x52ae87b0, 1 | BRF_PRG | BRF_ESS }, // 1
- { "151a03.t5", 0x040000, 0xc896d3ea, 1 | BRF_PRG | BRF_ESS }, // 2
- { "151a04.t6", 0x040000, 0x3b24706a, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "151a07.f5", 0x040000, 0xcde247fc, 2 | BRF_PRG | BRF_ESS }, // 4 Z80 Code
-
- { "151a05.t8", 0x100000, 0xbc616249, 3 | BRF_GRA }, // 5 K056832 Characters
- { "151a06.t10", 0x100000, 0x38dbcac1, 3 | BRF_GRA }, // 6
-
- { "151a10.b8", 0x200000, 0x376c64f1, 4 | BRF_GRA }, // 7 K053247 Sprites
- { "151a11.a8", 0x200000, 0xe7f49225, 4 | BRF_GRA }, // 8
- { "151a12.b10", 0x200000, 0x4978555f, 4 | BRF_GRA }, // 9
- { "151a13.a10", 0x200000, 0x4771f525, 4 | BRF_GRA }, // 10
-
- { "151a08.b6", 0x200000, 0x962251d7, 5 | BRF_SND }, // 11 K054539 Samples
-
- { "moomesauac.nv", 0x000080, 0xa5cb137a, 6 | BRF_OPT }, // 12 eeprom data
-};
-
-STD_ROM_PICK(moomesauac)
-STD_ROM_FN(moomesauac)
-
-struct BurnDriver BurnDrvMoomesauac = {
- "moomesauac", "moomesa", NULL, NULL, "1992",
- "Wild West C.O.W.-Boys of Moo Mesa (ver UAC)\0", NULL, "Konami", "GX151",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 4, HARDWARE_PREFIX_KONAMI, GBF_SCRFIGHT, 0,
- NULL, moomesauacRomInfo, moomesauacRomName, NULL, NULL, MooInputInfo, MooDIPInfo,
- MooInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 384, 224, 4, 3
-};
-
-
-// Wild West C.O.W.-Boys of Moo Mesa (ver UAB)
-
-static struct BurnRomInfo moomesauabRomDesc[] = {
- { "151b01.q5", 0x040000, 0xfb2fa298, 1 | BRF_PRG | BRF_ESS }, // 0 68K Code
- { "151uab02.q6", 0x040000, 0x3d9f4d59, 1 | BRF_PRG | BRF_ESS }, // 1
- { "151a03.t5", 0x040000, 0xc896d3ea, 1 | BRF_PRG | BRF_ESS }, // 2
- { "151a04.t6", 0x040000, 0x3b24706a, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "151a07.f5", 0x040000, 0xcde247fc, 2 | BRF_PRG | BRF_ESS }, // 4 Z80 Code
-
- { "151a05.t8", 0x100000, 0xbc616249, 3 | BRF_GRA }, // 5 K056832 Characters
- { "151a06.t10", 0x100000, 0x38dbcac1, 3 | BRF_GRA }, // 6
-
- { "151a10.b8", 0x200000, 0x376c64f1, 4 | BRF_GRA }, // 7 K053247 Sprites
- { "151a11.a8", 0x200000, 0xe7f49225, 4 | BRF_GRA }, // 8
- { "151a12.b10", 0x200000, 0x4978555f, 4 | BRF_GRA }, // 9
- { "151a13.a10", 0x200000, 0x4771f525, 4 | BRF_GRA }, // 10
-
- { "151a08.b6", 0x200000, 0x962251d7, 5 | BRF_SND }, // 11 K054539 Samples
-
- { "moomesauab.nv", 0x000080, 0xa5cb137a, 6 | BRF_OPT }, // 12 eeprom data
-};
-
-STD_ROM_PICK(moomesauab)
-STD_ROM_FN(moomesauab)
-
-struct BurnDriver BurnDrvMoomesauab = {
- "moomesauab", "moomesa", NULL, NULL, "1992",
- "Wild West C.O.W.-Boys of Moo Mesa (ver UAB)\0", NULL, "Konami", "GX151",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 4, HARDWARE_PREFIX_KONAMI, GBF_SCRFIGHT, 0,
- NULL, moomesauabRomInfo, moomesauabRomName, NULL, NULL, MooInputInfo, MooDIPInfo,
- MooInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 384, 224, 4, 3
-};
-
-
-// Wild West C.O.W.-Boys of Moo Mesa (ver AAB)
-
-static struct BurnRomInfo moomesaaabRomDesc[] = {
- { "151b01.q5", 0x040000, 0xfb2fa298, 1 | BRF_PRG | BRF_ESS }, // 0 68K Code
- { "151aab02.q6", 0x040000, 0x2162d593, 1 | BRF_PRG | BRF_ESS }, // 1
- { "151a03.t5", 0x040000, 0xc896d3ea, 1 | BRF_PRG | BRF_ESS }, // 2
- { "151a04.t6", 0x040000, 0x3b24706a, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "151a07.f5", 0x040000, 0xcde247fc, 2 | BRF_PRG | BRF_ESS }, // 4 Z80 Code
-
- { "151a05.t8", 0x100000, 0xbc616249, 3 | BRF_GRA }, // 5 K056832 Characters
- { "151a06.t10", 0x100000, 0x38dbcac1, 3 | BRF_GRA }, // 6
-
- { "151a10.b8", 0x200000, 0x376c64f1, 4 | BRF_GRA }, // 7 K053247 Sprites
- { "151a11.a8", 0x200000, 0xe7f49225, 4 | BRF_GRA }, // 8
- { "151a12.b10", 0x200000, 0x4978555f, 4 | BRF_GRA }, // 9
- { "151a13.a10", 0x200000, 0x4771f525, 4 | BRF_GRA }, // 10
-
- { "151a08.b6", 0x200000, 0x962251d7, 5 | BRF_SND }, // 11 K054539 Samples
-
- { "moomesaaab.nv", 0x000080, 0x7bd904a8, 6 | BRF_OPT }, // 12 eeprom data
-};
-
-STD_ROM_PICK(moomesaaab)
-STD_ROM_FN(moomesaaab)
-
-struct BurnDriver BurnDrvMoomesaaab = {
- "moomesaaab", "moomesa", NULL, NULL, "1992",
- "Wild West C.O.W.-Boys of Moo Mesa (ver AAB)\0", NULL, "Konami", "GX151",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 4, HARDWARE_PREFIX_KONAMI, GBF_SCRFIGHT, 0,
- NULL, moomesaaabRomInfo, moomesaaabRomName, NULL, NULL, MooInputInfo, MooDIPInfo,
- MooInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 384, 224, 4, 3
-};
-
-
-// Wild West C.O.W.-Boys of Moo Mesa (bootleg)
-
-static struct BurnRomInfo moomesablRomDesc[] = {
- { "moo03.rom", 0x080000, 0xfed6a1cb, 1 | BRF_PRG | BRF_ESS }, // 0 68K Code
- { "moo04.rom", 0x080000, 0xec45892a, 1 | BRF_PRG | BRF_ESS }, // 1
- { "moo03.rom", 0x080000, 0xfed6a1cb, 1 | BRF_PRG | BRF_ESS }, // 2
- { "moo04.rom", 0x080000, 0xec45892a, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "moo05.rom", 0x080000, 0x8c045f9c, 3 | BRF_GRA }, // 4 K056832 Characters
- { "moo07.rom", 0x080000, 0xb9e29f50, 3 | BRF_GRA }, // 5
- { "moo06.rom", 0x080000, 0x1261aa89, 3 | BRF_GRA }, // 6
- { "moo08.rom", 0x080000, 0xe6937229, 3 | BRF_GRA }, // 7
-
- { "151a10", 0x200000, 0x376c64f1, 4 | BRF_GRA }, // 8 K053247 Sprites
- { "151a11", 0x200000, 0xe7f49225, 4 | BRF_GRA }, // 9
- { "151a12", 0x200000, 0x4978555f, 4 | BRF_GRA }, // 10
- { "151a13", 0x200000, 0x4771f525, 4 | BRF_GRA }, // 11
-
- { "moo01.rom", 0x080000, 0x3311338a, 5 | BRF_SND }, // 12 MSM6295 Samples
- { "moo02.rom", 0x080000, 0x2cf3a7c6, 5 | BRF_SND }, // 13
-
- { "moo.nv", 0x000080, 0x7bd904a8, 6 | BRF_OPT }, // 14 eeprom data
-};
-
-STD_ROM_PICK(moomesabl)
-STD_ROM_FN(moomesabl)
-
-static INT32 moomesablInit()
-{
- return 1;
-}
-
-struct BurnDriverD BurnDrvMoomesabl = {
- "moomesabl", "moomesa", NULL, NULL, "1992",
- "Wild West C.O.W.-Boys of Moo Mesa (bootleg)\0", NULL, "bootleg", "GX151",
- NULL, NULL, NULL, NULL,
- BDF_CLONE | BDF_BOOTLEG, 4, HARDWARE_PREFIX_KONAMI, GBF_SCRFIGHT, 0,
- NULL, moomesablRomInfo, moomesablRomName, NULL, NULL, MooInputInfo, MooDIPInfo,
- moomesablInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 384, 224, 4, 3
-};
-
-
-// Bucky O'Hare (ver EAB)
-
-static struct BurnRomInfo buckyRomDesc[] = {
- { "173eab01.q5", 0x040000, 0x7785ac8a, 1 | BRF_PRG | BRF_ESS }, // 0 68K Code
- { "173eab02.q6", 0x040000, 0x9b45f122, 1 | BRF_PRG | BRF_ESS }, // 1
- { "173a03.t5", 0x020000, 0xcd724026, 1 | BRF_PRG | BRF_ESS }, // 2
- { "173a04.t6", 0x020000, 0x7dd54d6f, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "173a07.f5", 0x040000, 0x4cdaee71, 2 | BRF_PRG | BRF_ESS }, // 4 Z80 Code
-
- { "173a05.t8", 0x100000, 0xd14333b4, 3 | BRF_GRA }, // 5 K056832 Characters
- { "173a06.t10", 0x100000, 0x6541a34f, 3 | BRF_GRA }, // 6
-
- { "173a10.b8", 0x200000, 0x42fb0a0c, 4 | BRF_GRA }, // 7 K053247 Sprites
- { "173a11.a8", 0x200000, 0xb0d747c4, 4 | BRF_GRA }, // 8
- { "173a12.b10", 0x200000, 0x0fc2ad24, 4 | BRF_GRA }, // 9
- { "173a13.a10", 0x200000, 0x4cf85439, 4 | BRF_GRA }, // 10
-
- { "173a08.b6", 0x200000, 0xdcdded95, 5 | BRF_SND }, // 11 K054539 Samples
- { "173a09.a6", 0x200000, 0xc93697c4, 5 | BRF_SND }, // 12
-
- { "bucky.nv", 0x000080, 0x6a5986f3, 6 | BRF_OPT }, // 13 eeprom data
-};
-
-STD_ROM_PICK(bucky)
-STD_ROM_FN(bucky)
-
-struct BurnDriver BurnDrvBucky = {
- "bucky", NULL, NULL, NULL, "1992",
- "Bucky O'Hare (ver EAB)\0", NULL, "Konami", "GX173",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 4, HARDWARE_PREFIX_KONAMI, GBF_SCRFIGHT, 0,
- NULL, buckyRomInfo, buckyRomName, NULL, NULL, BuckyInputInfo, BuckyDIPInfo,
- BuckyInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x1000,
- 384, 224, 4, 3
-};
-
-
-// Bucky O'Hare (ver EA)
-
-static struct BurnRomInfo buckyeaRomDesc[] = {
- { "2.d5", 0x040000, 0xe18518a6, 1 | BRF_PRG | BRF_ESS }, // 0 68K Code
- { "3.d6", 0x040000, 0x45ef9545, 1 | BRF_PRG | BRF_ESS }, // 1
- { "173a03.t5", 0x020000, 0xcd724026, 1 | BRF_PRG | BRF_ESS }, // 2
- { "173a04.t6", 0x020000, 0x7dd54d6f, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "173a07.f5", 0x040000, 0x4cdaee71, 2 | BRF_PRG | BRF_ESS }, // 4 Z80 Code
-
- { "173a05.t8", 0x100000, 0xd14333b4, 3 | BRF_GRA }, // 5 K056832 Characters
- { "173a06.t10", 0x100000, 0x6541a34f, 3 | BRF_GRA }, // 6
-
- { "173a10.b8", 0x200000, 0x42fb0a0c, 4 | BRF_GRA }, // 7 K053247 Sprites
- { "173a11.a8", 0x200000, 0xb0d747c4, 4 | BRF_GRA }, // 8
- { "173a12.b10", 0x200000, 0x0fc2ad24, 4 | BRF_GRA }, // 9
- { "173a13.a10", 0x200000, 0x4cf85439, 4 | BRF_GRA }, // 10
-
- { "173a08.b6", 0x200000, 0xdcdded95, 5 | BRF_SND }, // 11 K054539 Samples
- { "173a09.a6", 0x200000, 0xc93697c4, 5 | BRF_SND }, // 12
-
- { "bucky.nv", 0x000080, 0x6a5986f3, 6 | BRF_OPT }, // 13 eeprom data
-};
-
-STD_ROM_PICK(buckyea)
-STD_ROM_FN(buckyea)
-
-struct BurnDriver BurnDrvBuckyea = {
- "buckyea", "bucky", NULL, NULL, "1992",
- "Bucky O'Hare (ver EA)\0", NULL, "Konami", "GX173",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 4, HARDWARE_PREFIX_KONAMI, GBF_SCRFIGHT, 0,
- NULL, buckyeaRomInfo, buckyeaRomName, NULL, NULL, BuckyInputInfo, BuckyDIPInfo,
- BuckyInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x1000,
- 384, 224, 4, 3
-};
-
-
-// Bucky O'Hare (ver JAA)
-
-static struct BurnRomInfo buckyjaaRomDesc[] = {
- { "173_ja_a01.05", 0x040000, 0x0a32bde7, 1 | BRF_PRG | BRF_ESS }, // 0 68K Code
- { "173_ja_a02.06", 0x040000, 0x3e6f3955, 1 | BRF_PRG | BRF_ESS }, // 1
- { "173a03.t5", 0x020000, 0xcd724026, 1 | BRF_PRG | BRF_ESS }, // 2
- { "173a04.t6", 0x020000, 0x7dd54d6f, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "173a07.f5", 0x040000, 0x4cdaee71, 2 | BRF_PRG | BRF_ESS }, // 4 Z80 Code
-
- { "173a05.t8", 0x100000, 0xd14333b4, 3 | BRF_GRA }, // 5 K056832 Characters
- { "173a06.t10", 0x100000, 0x6541a34f, 3 | BRF_GRA }, // 6
-
- { "173a10.b8", 0x200000, 0x42fb0a0c, 4 | BRF_GRA }, // 7 K053247 Sprites
- { "173a11.a8", 0x200000, 0xb0d747c4, 4 | BRF_GRA }, // 8
- { "173a12.b10", 0x200000, 0x0fc2ad24, 4 | BRF_GRA }, // 9
- { "173a13.a10", 0x200000, 0x4cf85439, 4 | BRF_GRA }, // 10
-
- { "173a08.b6", 0x200000, 0xdcdded95, 5 | BRF_SND }, // 11 K054539 Samples
- { "173a09.a6", 0x200000, 0xc93697c4, 5 | BRF_SND }, // 12
-
- { "buckyja.nv", 0x000080, 0x2f280a74, 6 | BRF_OPT }, // 13 eeprom data
-};
-
-STD_ROM_PICK(buckyjaa)
-STD_ROM_FN(buckyjaa)
-
-struct BurnDriver BurnDrvBuckyjaa = {
- "buckyjaa", "bucky", NULL, NULL, "1992",
- "Bucky O'Hare (ver JAA)\0", NULL, "Konami", "GX173",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 4, HARDWARE_PREFIX_KONAMI, GBF_SCRFIGHT, 0,
- NULL, buckyjaaRomInfo, buckyjaaRomName, NULL, NULL, BuckyInputInfo, BuckyDIPInfo,
- BuckyInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x1000,
- 384, 224, 4, 3
-};
-
-
-// Bucky O'Hare (ver UAB)
-
-static struct BurnRomInfo buckyuabRomDesc[] = {
- { "173uab01.q5", 0x040000, 0xdcaecca0, 1 | BRF_PRG | BRF_ESS }, // 0 68K Code
- { "173uab02.q6", 0x040000, 0xe3c856a6, 1 | BRF_PRG | BRF_ESS }, // 1
- { "173a03.t5", 0x020000, 0xcd724026, 1 | BRF_PRG | BRF_ESS }, // 2
- { "173a04.t6", 0x020000, 0x7dd54d6f, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "173a07.f5", 0x040000, 0x4cdaee71, 2 | BRF_PRG | BRF_ESS }, // 4 Z80 Code
-
- { "173a05.t8", 0x100000, 0xd14333b4, 3 | BRF_GRA }, // 5 K056832 Characters
- { "173a06.t10", 0x100000, 0x6541a34f, 3 | BRF_GRA }, // 6
-
- { "173a10.b8", 0x200000, 0x42fb0a0c, 4 | BRF_GRA }, // 7 K053247 Sprites
- { "173a11.a8", 0x200000, 0xb0d747c4, 4 | BRF_GRA }, // 8
- { "173a12.b10", 0x200000, 0x0fc2ad24, 4 | BRF_GRA }, // 9
- { "173a13.a10", 0x200000, 0x4cf85439, 4 | BRF_GRA }, // 10
-
- { "173a08.b6", 0x200000, 0xdcdded95, 5 | BRF_SND }, // 11 K054539 Samples
- { "173a09.a6", 0x200000, 0xc93697c4, 5 | BRF_SND }, // 12
-
- { "buckyuab.nv", 0x000080, 0xa5cb137a, 6 | BRF_OPT }, // 13 eeprom data
-};
-
-STD_ROM_PICK(buckyuab)
-STD_ROM_FN(buckyuab)
-
-struct BurnDriver BurnDrvBuckyuab = {
- "buckyuab", "bucky", NULL, NULL, "1992",
- "Bucky O'Hare (ver UAB)\0", NULL, "Konami", "GX173",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 4, HARDWARE_PREFIX_KONAMI, GBF_SCRFIGHT, 0,
- NULL, buckyuabRomInfo, buckyuabRomName, NULL, NULL, BuckyInputInfo, BuckyDIPInfo,
- BuckyInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x1000,
- 384, 224, 4, 3
-};
-
-
-// Bucky O'Hare (ver AAB)
-
-static struct BurnRomInfo buckyaabRomDesc[] = {
- { "173aab01.q5", 0x040000, 0x9193e89f, 1 | BRF_PRG | BRF_ESS }, // 0 68K Code
- { "173aab02.q6", 0x040000, 0x2567f3eb, 1 | BRF_PRG | BRF_ESS }, // 1
- { "173a03.t5", 0x020000, 0xcd724026, 1 | BRF_PRG | BRF_ESS }, // 2
- { "173a04.t6", 0x020000, 0x7dd54d6f, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "173a07.f5", 0x040000, 0x4cdaee71, 2 | BRF_PRG | BRF_ESS }, // 4 Z80 Code
-
- { "173a05.t8", 0x100000, 0xd14333b4, 3 | BRF_GRA }, // 5 K056832 Characters
- { "173a06.t10", 0x100000, 0x6541a34f, 3 | BRF_GRA }, // 6
-
- { "173a10.b8", 0x200000, 0x42fb0a0c, 4 | BRF_GRA }, // 7 K053247 Sprites
- { "173a11.a8", 0x200000, 0xb0d747c4, 4 | BRF_GRA }, // 8
- { "173a12.b10", 0x200000, 0x0fc2ad24, 4 | BRF_GRA }, // 9
- { "173a13.a10", 0x200000, 0x4cf85439, 4 | BRF_GRA }, // 10
-
- { "173a08.b6", 0x200000, 0xdcdded95, 5 | BRF_SND }, // 11 K054539 Samples
- { "173a09.a6", 0x200000, 0xc93697c4, 5 | BRF_SND }, // 12
-
- { "buckyaab.nv", 0x000080, 0x6a5986f3, 6 | BRF_OPT }, // 13 eeprom data
-};
-
-STD_ROM_PICK(buckyaab)
-STD_ROM_FN(buckyaab)
-
-struct BurnDriver BurnDrvBuckyaab = {
- "buckyaab", "bucky", NULL, NULL, "1992",
- "Bucky O'Hare (ver AAB)\0", NULL, "Konami", "GX173",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 4, HARDWARE_PREFIX_KONAMI, GBF_SCRFIGHT, 0,
- NULL, buckyaabRomInfo, buckyaabRomName, NULL, NULL, BuckyInputInfo, BuckyDIPInfo,
- BuckyInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x1000,
- 384, 224, 4, 3
-};
diff --git a/jan/src/burn/drv/konami/d_mystwarr.cpp b/jan/src/burn/drv/konami/d_mystwarr.cpp
deleted file mode 100644
index ec0904ed9..000000000
--- a/jan/src/burn/drv/konami/d_mystwarr.cpp
+++ /dev/null
@@ -1,4067 +0,0 @@
-// FB Alpha Pre-Gx driver module
-// based on MAME driver by R. Belmont, Phil Stroffolino, Acho A. Tang, Nicola Salmoria
-
-/*
- known bugs:
- violent storm:
- background layer #2 on intro (bad guy on motorcycle), bottom clipped??
-
- metamorphic force
- background in lava level is too fast. (irq?)
-
- martial champ
- 1: missing graphics in intro & title screens. On blank screens
- disable layer#2 to see what it should look like.
- 2: missing some sounds. (watch the first attract mode)
-
- unkown bugs.
- probably a lot! go ahead and fix it!
-
- to do:
- fix bugs
- clean up
- optimize
-*/
-
-#include "tiles_generic.h"
-#include "m68000_intf.h"
-#include "z80_intf.h"
-#include "konamiic.h"
-#include "burn_ym2151.h"
-#include "k054539.h"
-#include "eeprom.h"
-
-#if defined _MSC_VER
- #define _USE_MATH_DEFINES
- #include
-#endif
-
-static UINT8 *AllMem;
-static UINT8 *Drv68KROM;
-static UINT8 *DrvZ80ROM;
-static UINT8 *DrvGfxROM0;
-static UINT8 *DrvGfxROM1;
-static UINT8 *DrvGfxROM2;
-static UINT8 *DrvGfxROM3;
-static UINT8 *DrvGfxROMExp0;
-static UINT8 *DrvGfxROMExp1;
-static UINT8 *DrvGfxROMExp2;
-static UINT8 *DrvSndROM;
-static UINT8 *DrvEeprom;
-static UINT8 *AllRam;
-static UINT8 *Drv68KRAM;
-static UINT8 *DrvSpriteRam;
-static UINT8 *DrvZ80RAM;
-static UINT8 *DrvPalRAM;
-static UINT8 *DrvK053936Ctrl;
-static UINT8 *DrvK053936RAM;
-static UINT8 *RamEnd;
-static UINT8 *MemEnd;
-
-static UINT16 *pMystwarrRozBitmap = NULL;
-
-static UINT8 *soundlatch;
-static UINT8 *soundlatch2;
-static UINT8 *soundlatch3;
-
-static UINT32 *DrvPalette;
-static UINT8 DrvRecalc;
-
-static INT32 layer_colorbase[4];
-static INT32 sprite_colorbase = 0;
-static INT32 sub1_colorbase;
-static INT32 cbparam;
-static INT32 oinprion;
-
-static UINT8 DrvJoy1[16];
-static UINT8 DrvJoy2[16];
-static UINT8 DrvJoy3[16];
-static UINT8 DrvJoy4[16];
-static UINT8 DrvJoy5[16];
-static UINT8 DrvReset;
-static UINT16 DrvInputs[6];
-static UINT8 DrvDips[1];
-
-static INT32 sound_nmi_enable = 0;
-static UINT8 sound_control = 0;
-static UINT16 control_data = 0;
-static UINT8 mw_irq_control = 0;
-static INT32 z80_bank;
-
-static INT32 nGame = 0;
-
-static struct BurnInputInfo MystwarrInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy1 + 0, "p1 coin"},
- {"P1 Start", BIT_DIGITAL, DrvJoy3 + 7, "p1 start"},
- {"P1 Up", BIT_DIGITAL, DrvJoy3 + 2, "p1 up"},
- {"P1 Down", BIT_DIGITAL, DrvJoy3 + 3, "p1 down"},
- {"P1 Left", BIT_DIGITAL, DrvJoy3 + 0, "p1 left"},
- {"P1 Right", BIT_DIGITAL, DrvJoy3 + 1, "p1 right"},
- {"P1 Button 1", BIT_DIGITAL, DrvJoy3 + 4, "p1 fire 1"},
- {"P1 Button 2", BIT_DIGITAL, DrvJoy3 + 5, "p1 fire 2"},
- {"P1 Button 3", BIT_DIGITAL, DrvJoy3 + 6, "p1 fire 3"},
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy1 + 2, "p2 coin"},
- {"P2 Start", BIT_DIGITAL, DrvJoy3 + 15, "p2 start"},
- {"P2 Up", BIT_DIGITAL, DrvJoy3 + 10, "p2 up"},
- {"P2 Down", BIT_DIGITAL, DrvJoy3 + 11, "p2 down"},
- {"P2 Left", BIT_DIGITAL, DrvJoy3 + 8, "p2 left"},
- {"P2 Right", BIT_DIGITAL, DrvJoy3 + 9, "p2 right"},
- {"P2 Button 1", BIT_DIGITAL, DrvJoy3 + 12, "p2 fire 1"},
- {"P2 Button 2", BIT_DIGITAL, DrvJoy3 + 13, "p2 fire 2"},
- {"P2 Button 3", BIT_DIGITAL, DrvJoy3 + 14, "p2 fire 3"},
-
- {"P3 Coin", BIT_DIGITAL, DrvJoy1 + 1, "p3 coin"},
- {"P3 Start", BIT_DIGITAL, DrvJoy4 + 7, "p3 start"},
- {"P3 Up", BIT_DIGITAL, DrvJoy4 + 2, "p3 up"},
- {"P3 Down", BIT_DIGITAL, DrvJoy4 + 3, "p3 down"},
- {"P3 Left", BIT_DIGITAL, DrvJoy4 + 0, "p3 left"},
- {"P3 Right", BIT_DIGITAL, DrvJoy4 + 1, "p3 right"},
- {"P3 Button 1", BIT_DIGITAL, DrvJoy4 + 4, "p3 fire 1"},
- {"P3 Button 2", BIT_DIGITAL, DrvJoy4 + 5, "p3 fire 2"},
- {"P3 Button 3", BIT_DIGITAL, DrvJoy4 + 6, "p3 fire 3"},
-
- {"P4 Coin", BIT_DIGITAL, DrvJoy1 + 3, "p4 coin"},
- {"P4 Start", BIT_DIGITAL, DrvJoy4 + 15, "p4 start"},
- {"P4 Up", BIT_DIGITAL, DrvJoy4 + 10, "p4 up"},
- {"P4 Down", BIT_DIGITAL, DrvJoy4 + 11, "p4 down"},
- {"P4 Left", BIT_DIGITAL, DrvJoy4 + 8, "p4 left"},
- {"P4 Right", BIT_DIGITAL, DrvJoy4 + 9, "p4 right"},
- {"P4 Button 1", BIT_DIGITAL, DrvJoy4 + 12, "p4 fire 1"},
- {"P4 Button 2", BIT_DIGITAL, DrvJoy4 + 13, "p4 fire 2"},
- {"P4 Button 3", BIT_DIGITAL, DrvJoy4 + 14, "p4 fire 3"},
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset"},
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip"},
-};
-
-STDINPUTINFO(Mystwarr)
-
-static struct BurnInputInfo MetamrphInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy1 + 0, "p1 coin"},
- {"P1 Start", BIT_DIGITAL, DrvJoy3 + 7, "p1 start"},
- {"P1 Up", BIT_DIGITAL, DrvJoy3 + 2, "p1 up"},
- {"P1 Down", BIT_DIGITAL, DrvJoy3 + 3, "p1 down"},
- {"P1 Left", BIT_DIGITAL, DrvJoy3 + 0, "p1 left"},
- {"P1 Right", BIT_DIGITAL, DrvJoy3 + 1, "p1 right"},
- {"P1 Button 1", BIT_DIGITAL, DrvJoy3 + 4, "p1 fire 1"},
- {"P1 Button 2", BIT_DIGITAL, DrvJoy3 + 5, "p1 fire 2"},
- {"P1 Button 3", BIT_DIGITAL, DrvJoy3 + 6, "p1 fire 3"},
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy1 + 1, "p2 coin"},
- {"P2 Start", BIT_DIGITAL, DrvJoy4 + 7, "p2 start"},
- {"P2 Up", BIT_DIGITAL, DrvJoy4 + 2, "p2 up"},
- {"P2 Down", BIT_DIGITAL, DrvJoy4 + 3, "p2 down"},
- {"P2 Left", BIT_DIGITAL, DrvJoy4 + 0, "p2 left"},
- {"P2 Right", BIT_DIGITAL, DrvJoy4 + 1, "p2 right"},
- {"P2 Button 1", BIT_DIGITAL, DrvJoy4 + 4, "p2 fire 1"},
- {"P2 Button 2", BIT_DIGITAL, DrvJoy4 + 5, "p2 fire 2"},
- {"P2 Button 3", BIT_DIGITAL, DrvJoy4 + 6, "p2 fire 3"},
-
- {"P3 Start", BIT_DIGITAL, DrvJoy3 + 15, "p3 start"},
- {"P3 Up", BIT_DIGITAL, DrvJoy3 + 10, "p3 up"},
- {"P3 Down", BIT_DIGITAL, DrvJoy3 + 11, "p3 down"},
- {"P3 Left", BIT_DIGITAL, DrvJoy3 + 8, "p3 left"},
- {"P3 Right", BIT_DIGITAL, DrvJoy3 + 9, "p3 right"},
- {"P3 Button 1", BIT_DIGITAL, DrvJoy3 + 12, "p3 fire 1"},
- {"P3 Button 2", BIT_DIGITAL, DrvJoy3 + 13, "p3 fire 2"},
- {"P3 Button 3", BIT_DIGITAL, DrvJoy3 + 14, "p3 fire 3"},
-
- {"P4 Start", BIT_DIGITAL, DrvJoy4 + 15, "p4 start"},
- {"P4 Up", BIT_DIGITAL, DrvJoy4 + 10, "p4 up"},
- {"P4 Down", BIT_DIGITAL, DrvJoy4 + 11, "p4 down"},
- {"P4 Left", BIT_DIGITAL, DrvJoy4 + 8, "p4 left"},
- {"P4 Right", BIT_DIGITAL, DrvJoy4 + 9, "p4 right"},
- {"P4 Button 1", BIT_DIGITAL, DrvJoy4 + 12, "p4 fire 1"},
- {"P4 Button 2", BIT_DIGITAL, DrvJoy4 + 13, "p4 fire 2"},
- {"P4 Button 3", BIT_DIGITAL, DrvJoy4 + 14, "p4 fire 3"},
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset"},
- {"Service 1", BIT_DIGITAL, DrvJoy1 + 4, "service"},
- {"Service 2", BIT_DIGITAL, DrvJoy1 + 5, "service"},
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip"},
-};
-
-STDINPUTINFO(Metamrph)
-
-static struct BurnInputInfo ViostormInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy1 + 0, "p1 coin"},
- {"P1 Start", BIT_DIGITAL, DrvJoy3 + 7, "p1 start"},
- {"P1 Up", BIT_DIGITAL, DrvJoy3 + 2, "p1 up"},
- {"P1 Down", BIT_DIGITAL, DrvJoy3 + 3, "p1 down"},
- {"P1 Left", BIT_DIGITAL, DrvJoy3 + 0, "p1 left"},
- {"P1 Right", BIT_DIGITAL, DrvJoy3 + 1, "p1 right"},
- {"P1 Button 1", BIT_DIGITAL, DrvJoy3 + 4, "p1 fire 1"},
- {"P1 Button 2", BIT_DIGITAL, DrvJoy3 + 5, "p1 fire 2"},
- {"P1 Button 3", BIT_DIGITAL, DrvJoy3 + 6, "p1 fire 3"},
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy1 + 1, "p2 coin"},
- {"P2 Start", BIT_DIGITAL, DrvJoy4 + 7, "p2 start"},
- {"P2 Up", BIT_DIGITAL, DrvJoy4 + 2, "p2 up"},
- {"P2 Down", BIT_DIGITAL, DrvJoy4 + 3, "p2 down"},
- {"P2 Left", BIT_DIGITAL, DrvJoy4 + 0, "p2 left"},
- {"P2 Right", BIT_DIGITAL, DrvJoy4 + 1, "p2 right"},
- {"P2 Button 1", BIT_DIGITAL, DrvJoy4 + 4, "p2 fire 1"},
- {"P2 Button 2", BIT_DIGITAL, DrvJoy4 + 5, "p2 fire 2"},
- {"P2 Button 3", BIT_DIGITAL, DrvJoy4 + 6, "p2 fire 3"},
-
- {"P3 Start", BIT_DIGITAL, DrvJoy3 + 15, "p3 start"},
- {"P3 Up", BIT_DIGITAL, DrvJoy3 + 10, "p3 up"},
- {"P3 Down", BIT_DIGITAL, DrvJoy3 + 11, "p3 down"},
- {"P3 Left", BIT_DIGITAL, DrvJoy3 + 8, "p3 left"},
- {"P3 Right", BIT_DIGITAL, DrvJoy3 + 9, "p3 right"},
- {"P3 Button 1", BIT_DIGITAL, DrvJoy3 + 12, "p3 fire 1"},
- {"P3 Button 2", BIT_DIGITAL, DrvJoy3 + 13, "p3 fire 2"},
- {"P3 Button 3", BIT_DIGITAL, DrvJoy3 + 14, "p3 fire 3"},
-
- {"P4 Start", BIT_DIGITAL, DrvJoy4 + 15, "p4 start"},
- {"P4 Up", BIT_DIGITAL, DrvJoy4 + 10, "p4 up"},
- {"P4 Down", BIT_DIGITAL, DrvJoy4 + 11, "p4 down"},
- {"P4 Left", BIT_DIGITAL, DrvJoy4 + 8, "p4 left"},
- {"P4 Right", BIT_DIGITAL, DrvJoy4 + 9, "p4 right"},
- {"P4 Button 1", BIT_DIGITAL, DrvJoy4 + 12, "p4 fire 1"},
- {"P4 Button 2", BIT_DIGITAL, DrvJoy4 + 13, "p4 fire 2"},
- {"P4 Button 3", BIT_DIGITAL, DrvJoy4 + 14, "p4 fire 3"},
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset"},
- {"Service 1", BIT_DIGITAL, DrvJoy1 + 4, "service"},
- {"Service 2", BIT_DIGITAL, DrvJoy1 + 5, "service"},
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip"},
-};
-
-STDINPUTINFO(Viostorm)
-
-static struct BurnInputInfo DadandrnInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy1 + 8, "p1 coin"},
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 7, "p1 start"},
- {"P1 Up", BIT_DIGITAL, DrvJoy1 + 2, "p1 up"},
- {"P1 Down", BIT_DIGITAL, DrvJoy1 + 3, "p1 down"},
- {"P1 Left", BIT_DIGITAL, DrvJoy1 + 0, "p1 left"},
- {"P1 Right", BIT_DIGITAL, DrvJoy1 + 1, "p1 right"},
- {"P1 Button 1", BIT_DIGITAL, DrvJoy1 + 4, "p1 fire 1"},
- {"P1 Button 2", BIT_DIGITAL, DrvJoy1 + 5, "p1 fire 2"},
- {"P1 Button 3", BIT_DIGITAL, DrvJoy1 + 6, "p1 fire 3"},
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy1 + 9, "p2 coin"},
- {"P2 Start", BIT_DIGITAL, DrvJoy3 + 7, "p2 start"},
- {"P2 Up", BIT_DIGITAL, DrvJoy3 + 2, "p2 up"},
- {"P2 Down", BIT_DIGITAL, DrvJoy3 + 3, "p2 down"},
- {"P2 Left", BIT_DIGITAL, DrvJoy3 + 0, "p2 left"},
- {"P2 Right", BIT_DIGITAL, DrvJoy3 + 1, "p2 right"},
- {"P2 Button 1", BIT_DIGITAL, DrvJoy3 + 4, "p2 fire 1"},
- {"P2 Button 2", BIT_DIGITAL, DrvJoy3 + 5, "p2 fire 2"},
- {"P2 Button 3", BIT_DIGITAL, DrvJoy3 + 6, "p2 fire 3"},
-
- {"P3 Start", BIT_DIGITAL, DrvJoy4 + 7, "p3 start"},
- {"P3 Up", BIT_DIGITAL, DrvJoy4 + 2, "p3 up"},
- {"P3 Down", BIT_DIGITAL, DrvJoy4 + 3, "p3 down"},
- {"P3 Left", BIT_DIGITAL, DrvJoy4 + 0, "p3 left"},
- {"P3 Right", BIT_DIGITAL, DrvJoy4 + 1, "p3 right"},
- {"P3 Button 1", BIT_DIGITAL, DrvJoy4 + 4, "p3 fire 1"},
- {"P3 Button 2", BIT_DIGITAL, DrvJoy4 + 5, "p3 fire 2"},
- {"P3 Button 3", BIT_DIGITAL, DrvJoy4 + 6, "p3 fire 3"},
-
- {"P4 Start", BIT_DIGITAL, DrvJoy5 + 7, "p4 start"},
- {"P4 Up", BIT_DIGITAL, DrvJoy5 + 2, "p4 up"},
- {"P4 Down", BIT_DIGITAL, DrvJoy5 + 3, "p4 down"},
- {"P4 Left", BIT_DIGITAL, DrvJoy5 + 0, "p4 left"},
- {"P4 Right", BIT_DIGITAL, DrvJoy5 + 1, "p4 right"},
- {"P4 Button 1", BIT_DIGITAL, DrvJoy5 + 4, "p4 fire 1"},
- {"P4 Button 2", BIT_DIGITAL, DrvJoy5 + 5, "p4 fire 2"},
- {"P4 Button 3", BIT_DIGITAL, DrvJoy5 + 6, "p4 fire 3"},
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset"},
- {"Service 1", BIT_DIGITAL, DrvJoy1 + 12, "service"},
- {"Service 2", BIT_DIGITAL, DrvJoy1 + 13, "service"},
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip"},
-};
-
-STDINPUTINFO(Dadandrn)
-
-static struct BurnInputInfo MartchmpInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy1 + 0, "p1 coin"},
- {"P1 Start", BIT_DIGITAL, DrvJoy3 + 7, "p1 start"},
- {"P1 Up", BIT_DIGITAL, DrvJoy3 + 2, "p1 up"},
- {"P1 Down", BIT_DIGITAL, DrvJoy3 + 3, "p1 down"},
- {"P1 Left", BIT_DIGITAL, DrvJoy3 + 0, "p1 left"},
- {"P1 Right", BIT_DIGITAL, DrvJoy3 + 1, "p1 right"},
- {"P1 Button 1", BIT_DIGITAL, DrvJoy3 + 4, "p1 fire 1"},
- {"P1 Button 2", BIT_DIGITAL, DrvJoy3 + 5, "p1 fire 2"},
- {"P1 Button 3", BIT_DIGITAL, DrvJoy3 + 6, "p1 fire 3"},
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy1 + 1, "p2 coin"},
- {"P2 Start", BIT_DIGITAL, DrvJoy4 + 7, "p2 start"},
- {"P2 Up", BIT_DIGITAL, DrvJoy4 + 2, "p2 up"},
- {"P2 Down", BIT_DIGITAL, DrvJoy4 + 3, "p2 down"},
- {"P2 Left", BIT_DIGITAL, DrvJoy4 + 0, "p2 left"},
- {"P2 Right", BIT_DIGITAL, DrvJoy4 + 1, "p2 right"},
- {"P2 Button 1", BIT_DIGITAL, DrvJoy4 + 4, "p2 fire 1"},
- {"P2 Button 2", BIT_DIGITAL, DrvJoy4 + 5, "p2 fire 2"},
- {"P2 Button 3", BIT_DIGITAL, DrvJoy4 + 6, "p2 fire 3"},
-
- {"P3 Start", BIT_DIGITAL, DrvJoy3 + 15, "p3 start"},
- {"P3 Up", BIT_DIGITAL, DrvJoy3 + 10, "p3 up"},
- {"P3 Down", BIT_DIGITAL, DrvJoy3 + 11, "p3 down"},
- {"P3 Left", BIT_DIGITAL, DrvJoy3 + 8, "p3 left"},
- {"P3 Right", BIT_DIGITAL, DrvJoy3 + 9, "p3 right"},
- {"P3 Button 1", BIT_DIGITAL, DrvJoy3 + 12, "p3 fire 1"},
- {"P3 Button 2", BIT_DIGITAL, DrvJoy3 + 13, "p3 fire 2"},
- {"P3 Button 3", BIT_DIGITAL, DrvJoy3 + 14, "p3 fire 3"},
-
- {"P4 Start", BIT_DIGITAL, DrvJoy4 + 15, "p4 start"},
- {"P4 Up", BIT_DIGITAL, DrvJoy4 + 10, "p4 up"},
- {"P4 Down", BIT_DIGITAL, DrvJoy4 + 11, "p4 down"},
- {"P4 Left", BIT_DIGITAL, DrvJoy4 + 8, "p4 left"},
- {"P4 Right", BIT_DIGITAL, DrvJoy4 + 9, "p4 right"},
- {"P4 Button 1", BIT_DIGITAL, DrvJoy4 + 12, "p4 fire 1"},
- {"P4 Button 2", BIT_DIGITAL, DrvJoy4 + 13, "p4 fire 2"},
- {"P4 Button 3", BIT_DIGITAL, DrvJoy4 + 14, "p4 fire 3"},
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset"},
- {"Service 1", BIT_DIGITAL, DrvJoy1 + 4, "service"},
- {"Service 2", BIT_DIGITAL, DrvJoy1 + 5, "service"},
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip"},
-};
-
-STDINPUTINFO(Martchmp)
-
-static struct BurnDIPInfo MystwarrDIPList[]=
-{
- {0x25, 0xff, 0xff, 0xe4, NULL },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x25, 0x01, 0x04, 0x04, "Off" },
- {0x25, 0x01, 0x04, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Sound Output" },
- {0x25, 0x01, 0x10, 0x10, "Mono" },
- {0x25, 0x01, 0x10, 0x00, "Stereo" },
-
- {0 , 0xfe, 0 , 2, "Coin Mechanism" },
- {0x25, 0x01, 0x20, 0x20, "Common" },
- {0x25, 0x01, 0x20, 0x00, "Independent" },
-
- {0 , 0xfe, 0 , 2, "Number of Players" },
- {0x25, 0x01, 0x40, 0x00, "4" },
- {0x25, 0x01, 0x40, 0x40, "2" },
-};
-
-STDDIPINFO(Mystwarr)
-
-static struct BurnDIPInfo MetamrphDIPList[]=
-{
- {0x25, 0xff, 0xff, 0xe8, NULL },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x25, 0x01, 0x08, 0x08, "Off" },
- {0x25, 0x01, 0x08, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Sound Output" },
- {0x25, 0x01, 0x10, 0x10, "Mono" },
- {0x25, 0x01, 0x10, 0x00, "Stereo" },
-
- {0 , 0xfe, 0 , 2, "Coin Mechanism" },
- {0x25, 0x01, 0x20, 0x20, "Common" },
- {0x25, 0x01, 0x20, 0x00, "Independent" },
-
- {0 , 0xfe, 0 , 2, "Number of Players" },
- {0x25, 0x01, 0x40, 0x00, "4" },
- {0x25, 0x01, 0x40, 0x40, "2" },
-
- {0 , 0xfe, 0 , 2, "Continuous Energy Increment" },
- {0x25, 0x01, 0x80, 0x80, "No" },
- {0x25, 0x01, 0x80, 0x00, "Yes" },
-};
-
-STDDIPINFO(Metamrph)
-
-
-static struct BurnDIPInfo ViostormDIPList[]=
-{
- {0x25, 0xff, 0xff, 0xe8, NULL },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x25, 0x01, 0x08, 0x08, "Off" },
- {0x25, 0x01, 0x08, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Sound Output" },
- {0x25, 0x01, 0x10, 0x10, "Mono" },
- {0x25, 0x01, 0x10, 0x00, "Stereo" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x25, 0x01, 0x20, 0x20, "Off" },
- {0x25, 0x01, 0x20, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Coin Mechanism" },
- {0x25, 0x01, 0x40, 0x40, "Common" },
- {0x25, 0x01, 0x40, 0x00, "Independent" },
-
- {0 , 0xfe, 0 , 2, "Number of Players" },
- {0x25, 0x01, 0x80, 0x00, "3" },
- {0x25, 0x01, 0x80, 0x80, "2" },
-};
-
-STDDIPINFO(Viostorm)
-
-static struct BurnDIPInfo DadandrnDIPList[]=
-{
- {0x25, 0xff, 0xff, 0xe8, NULL },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x25, 0x01, 0x08, 0x08, "Off" },
- {0x25, 0x01, 0x08, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Sound Output" },
- {0x25, 0x01, 0x10, 0x10, "Mono" },
- {0x25, 0x01, 0x10, 0x00, "Stereo" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x25, 0x01, 0x20, 0x20, "Off" },
- {0x25, 0x01, 0x20, 0x00, "On" },
-};
-
-STDDIPINFO(Dadandrn)
-
-static struct BurnDIPInfo MartchmpDIPList[]=
-{
- {0x25, 0xff, 0xff, 0xe4, NULL },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x25, 0x01, 0x04, 0x04, "Off" },
- {0x25, 0x01, 0x04, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Sound Output" },
- {0x25, 0x01, 0x10, 0x10, "Mono" },
- {0x25, 0x01, 0x10, 0x00, "Stereo" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x25, 0x01, 0x20, 0x20, "Off" },
- {0x25, 0x01, 0x20, 0x00, "On" },
-};
-
-STDDIPINFO(Martchmp)
-
-static void __fastcall mystwarr_main_write_word(UINT32 address, UINT16 data)
-{
- if ((address & 0xff0000) == 0x400000) {
- if ((address & 0xf0) == 0)
- K053247WriteWord(((address & 0x000e) | ((address & 0xff00) >> 4)), data);
-
- *((UINT16*)(DrvSpriteRam + (address & 0xfffe))) = data;
- return;
- }
-
- if ((address & 0xffff00) == 0x480000) {
- K055555WordWrite(address, data >> 8);
- return;
- }
-
- if ((address & 0xfffff0) == 0x482010) {
- K053247WriteRegsWord(address, data);
- return;
- }
-
- if ((address & 0xfffff8) == 0x484000) {
- K053246Write((address & 0x06) + 0, data >> 8);
- K053246Write((address & 0x06) + 1, data&0xff);
- return;
- }
-
- if ((address & 0xffffe0) == 0x48a000) {
- K054338WriteWord(address, data);
- return;
- }
-
- if ((address & 0xffffc0) == 0x48c000) {
- K056832WordWrite(address & 0x3e, data);
- return;
- }
-
- if ((address & 0xffff00) == 0x49c000) {
- // k053252
- return;
- }
-
- if ((address & 0xffc000) == 0x600000) {
- K056832RamWriteWord(address, data);
- return;
- }
-
- switch (address)
- {
- case 0x49e004: // rom read enable
- K056832WritebRegsWord(address & 0x0f, data);
- break;
- }
-}
-
-static void __fastcall mystwarr_main_write_byte(UINT32 address, UINT8 data)
-{
- if ((address & 0xff0000) == 0x400000) {
- if ((address & 0xf0) == 0)
- K053247Write(((address & 0x000e) | ((address & 0xff00) >> 4) | (address & 1))^1, data);
-
- DrvSpriteRam[(address & 0xffff)^1] = data;
- return;
- }
-
- if ((address & 0xffff00) == 0x480000) {
- K055555ByteWrite(address, data);
- return;
- }
-
- if ((address & 0xfffff0) == 0x482010) {
- K053247WriteRegsByte(address, data);
- return;
- }
-
- if ((address & 0xfffff8) == 0x484000) {
- K053246Write((address & 0x7)^0, data);
- return;
- }
-
- if ((address & 0xffffe0) == 0x48a000) {
- K054338WriteByte(address, data);
- return;
- }
-
- if ((address & 0xffffc0) == 0x48c000) {
- K056832ByteWrite(address, data);
- return;
- }
-
- if ((address & 0xffff00) == 0x49c000) {
- // k053252
- return;
- }
-
- if ((address & 0xffc000) == 0x600000) {
- K056832RamWriteByte(address, data);
- return;
- }
-
- switch (address)
- {
- case 0x490000:
- EEPROMWrite((data & 0x04), (data & 0x02), (data & 0x01));
- return;
-
- case 0x492000:
- return; // watchdog
-
- case 0x49800c:
- case 0x49800d:
- *soundlatch = data;
- return;
-
- case 0x49800e:
- case 0x49800f:
- *soundlatch2 = data;
- return;
-
- case 0x49a000:
- case 0x49a001:
- ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
- return;
-
- case 0x49e004:
- case 0x49e005: // rom read enable
- K056832WritebRegsByte(address & 0x0f, data);
- break;
-
- case 0x49e007:
- mw_irq_control = data; // correct!
- return;
- }
-}
-
-static UINT16 __fastcall mystwarr_main_read_word(UINT32 address)
-{
- if ((address & 0xffc000) == 0x600000) {
- return K056832RamReadWord(address);
- }
-
- switch (address)
- {
- case 0x494000:
- return DrvInputs[2];
-
- case 0x494002:
- return DrvInputs[3];
-
- case 0x496000:
- return DrvInputs[0] & 0xff;
-
- case 0x496002:
- return (DrvInputs[1] & 0xf4) | 2 | (EEPROMRead() ? 0x01 : 0);
- }
-
- return 0;
-}
-
-
-static UINT8 __fastcall mystwarr_main_read_byte(UINT32 address)
-{
- if ((address & 0xffc000) == 0x600000) {
- return K056832RamReadByte(address);
- }
-
- switch (address)
- {
- case 0x494000:
- return DrvInputs[2] >> 8;
-
- case 0x494001:
- return DrvInputs[2];
-
- case 0x494002:
- return DrvInputs[3] >> 8;
-
- case 0x494003:
- return DrvInputs[3];
-
- case 0x496000:
- return DrvInputs[0] >> 8;
-
- case 0x496001:
- return DrvInputs[0];
-
- case 0x496002:
- return DrvInputs[1] >> 8;
-
- case 0x496003:
- return ((DrvInputs[1]) & 0xf4) | 2 | (EEPROMRead() ? 0x01 : 0);
-
- case 0x498015:
- if ((*soundlatch3 & 0xf) == 0xe) return *soundlatch3 | 1;
- return *soundlatch3;
- }
-
- return 0;
-}
-
-
-//--------------------------------------------------------------------------------------------------------------
-
-
-static UINT16 prot_data[0x20];
-
-static UINT16 K055550_word_read(INT32 offset)
-{
- return prot_data[(offset/2)&0x1f];
-}
-
-static void K055550_word_write(INT32 offset, UINT16 data, UINT16 mask)
-{
- offset = (offset & 0x3e) / 2;
-
- UINT32 adr, bsize, count, i, lim;
- INT32 src, tgt, srcend, tgtend, skip, cx1, sx1, wx1, cy1, sy1, wy1, cz1, sz1, wz1, c2, s2, w2;
- INT32 dx, dy, angle;
-
- if (offset == 0 && (mask & 0x00ff))
- {
- if (mask == 0xffff) data >>= 8;
-
- switch (data)
- {
- case 0x97: // memset() (Dadandarn at 0x639dc)
- case 0x9f: // memset() (Violent Storm at 0x989c)
- adr = (prot_data[7] << 16) | prot_data[8];
- bsize = (prot_data[10] << 16) | prot_data[11];
- count = (prot_data[0] & 0xff) + 1;
-
- lim = adr+bsize*count;
-
- for(i=adr; i>(8-1); // words to skip in each entry to reach the "hit list"
- adr = prot_data[2]<<16 | prot_data[3]; // where the table is located
- bsize = prot_data[5]<<16 | prot_data[6]; // object entry size in bytes
-
- srcend = adr + bsize * count;
- tgtend = srcend + bsize;
-
- // let's hope GCC will inline the mem24bew calls
- for (src=adr; src=wx1+w2) continue; // X rejection
-
- c2 = (INT16)SekReadWord(tgt + 6);
- s2 = (INT16)SekReadWord(tgt + 8);
- w2 = (INT16)SekReadWord(tgt +10);
- if (abs((cy1+sy1)-(c2+s2))>=wy1+w2) continue; // Y rejection
-
- c2 = (INT16)SekReadWord(tgt +12);
- s2 = (INT16)SekReadWord(tgt +14);
- w2 = (INT16)SekReadWord(tgt +16);
- if (abs((cz1+sz1)-(c2+s2))>=wz1+w2) continue; // Z rejection
-
- SekWriteByte(i, 0x80); // collision confirmed
- }
- }
- break;
-
- case 0xc0: // calculate object "homes-in" vector (Violent Storm at 0x03da9e)
- dx = (INT16)prot_data[0xc];
- dy = (INT16)prot_data[0xd];
-
- // it's not necessary to use lookup tables because Violent Storm
- // only calls the service once per enemy per frame.
- if (dx)
- {
- if (dy)
- {
- angle = (INT32)((atan((double)dy / dx) * 128.0) / M_PI);
- if (dx < 0) angle += 128;
- i = (angle - 0x40) & 0xff;
- }
- else
- i = (dx > 0) ? 0xc0 : 0x40;
- }
- else
- if (dy > 0) i = 0;
- else
- if (dy < 0) i = 0x80;
- else
- i = BurnRandom() & 0xff; // vector direction indeterminate
-
- prot_data[0x10] = i;
- break;
- }
- }
-}
-
-static void __fastcall metamrph_main_write_word(UINT32 address, UINT16 data)
-{
- if ((address & 0xfff000) == 0x210000) {
- K053247Write(address & 0xffe, data | (1<<16));
- return;
- }
-
- if ((address & 0xfffff8) == 0x240000) {
- K053246Write((address & 0x06) + 0, data >> 8);
- K053246Write((address & 0x06) + 1, data&0xff);
- return;
- }
-
- if ((address & 0xfffff0) == 0x244010) {
- K053247WriteRegsWord(address, data);
- return;
- }
-
- if ((address & 0xfffff0) == 0x250000) {
- K053250RegWrite(0, address, data);
- return;
- }
-
- if ((address & 0xffffe0) == 0x254000) {
- K054338WriteWord(address, data);
- return;
- }
-
- if ((address & 0xffff00) == 0x258000) {
- // bprintf (0, _T("WW %5.5x, %2.2x\n"), address, data);
- K055555WordWrite(address, data >> 8);
- return;
- }
-
- if ((address & 0xffffe0) == 0x260000) {
- // bprintf (0, _T("k053252 word wo: %5.5x, %4.4x\n"), address, data);
- return;
- }
-
- if ((address & 0xfffff8) == 0x26c000) {
- // AM_RANGE(0x26c000, 0x26c007) AM_DEVWRITE("k056832", k056832_device,b_word_w)
- return;
- }
-
- if ((address & 0xffffc0) == 0x270000) {
- K056832WordWrite(address & 0x3e, data);
- return;
- }
-
- if ((address & 0xffc000) == 0x300000) {
- K056832RamWriteWord(address & 0x1fff, data);
- return;
- }
-
- if ((address & 0xffffc0) == 0x25c000) {
- prot_data[(address & 0x3f)/2] = data;
- K055550_word_write(address, data, 0xffff);
- return;
- }
-
- switch (address)
- {
- case 0x264000:
- case 0x264001:
- ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
- return;
-
- case 0x26800c:
- case 0x26800d:
- *soundlatch = data;
- return;
-
- case 0x26800e:
- case 0x26800f:
- *soundlatch2 = data;
- return;
-
- case 0x27c000:
- case 0x27c001:
- EEPROMWrite((data & 0x04), (data & 0x02), (data & 0x01));
- return;
- }
-}
-
-static void __fastcall metamrph_main_write_byte(UINT32 address, UINT8 data)
-{
- if ((address & 0xfff000) == 0x210000) {
- K053247Write((address & 0xfff) ^ 1, data);
- return;
- }
-
- if ((address & 0xfffff8) == 0x240000) {
- K053246Write((address & 0x07) ^ 0, data);
- return;
- }
-
- if ((address & 0xfffff0) == 0x244010) {
- K053247WriteRegsByte(address, data);
- return;
- }
-
- if ((address & 0xfffff0) == 0x250000) {
- K053250RegWrite(0, address, data);
- return;
- }
-
- if ((address & 0xffffe0) == 0x254000) {
- K054338WriteByte(address, data);
- return;
- }
-
- if ((address & 0xffff00) == 0x258000) {
- K055555ByteWrite(address, data);
- return;
- }
-
- if ((address & 0xffffe0) == 0x260000) {
- //bprintf (0, _T("k053252 byte wo: %5.5x, %4.4x\n"), address, data);
- return;
- }
-
- if ((address & 0xfffff8) == 0x26c000) {
- // AM_RANGE(0x26c000, 0x26c007) AM_DEVWRITE("k056832", k056832_device,b_word_w)
- return;
- }
-
- if ((address & 0xffffc0) == 0x270000) {
- K056832ByteWrite(address & 0x3f, data);
- return;
- }
-
- if ((address & 0xffc000) == 0x300000) {
- K056832RamWriteByte(address & 0x1fff, data);
- return;
- }
-
- if ((address & 0xffffc0) == 0x25c000) {
- UINT8 *prot = (UINT8*)&prot_data;
- prot[(address & 0x3f) ^ 1] = data;
- K055550_word_write(address, data, 0xff << ((address & 1) * 8));
- return;
- }
-
- switch (address)
- {
- case 0x264000:
- case 0x264001:
- ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
- return;
-
- case 0x26800c:
- case 0x26800d:
- *soundlatch = data;
- return;
-
- case 0x26800e:
- case 0x26800f:
- *soundlatch2 = data;
- return;
-
- case 0x27c001:
- EEPROMWrite((data & 0x04), (data & 0x02), (data & 0x01));
- return;
- }
-}
-
-static UINT16 __fastcall metamrph_main_read_word(UINT32 address)
-{
- if ((address & 0xfff000) == 0x210000) {
- return K053247Read((address & 0xffe)|1)*256+K053247Read((address & 0xffe)|0);
- }
-
- if ((address & 0xfffff0) == 0x250000) {
- return K053250RegRead(0, address);
- }
-
- if ((address & 0xffffe0) == 0x260000) {
- // bprintf (0, _T("k053252 word ro: %5.5x\n"), address);
- return 0;
- }
-
- if ((address & 0xffc000) == 0x300000) {
- return K056832RamReadWord(address & 0x1fff);
- }
-
- if ((address & 0xffe000) == 0x310000) {
- return 0; // mw_rom_word_r
- }
-
- if ((address & 0xffe000) == 0x320000) {
- return K053250RomRead(0, address);
- }
-
- if ((address & 0xffffc0) == 0x25c000) {
- return K055550_word_read(address);
- }
-
- switch (address)
- {
- case 0x274000:
- case 0x274001:
- return DrvInputs[2];
-
- case 0x274002:
- case 0x274003:
- return DrvInputs[3];
-
- case 0x278000:
- case 0x278001:
- return DrvInputs[0];
-
- case 0x278002:
- case 0x278003:
- return (DrvInputs[1] & 0xfff8) | 2 | (EEPROMRead() ? 0x0001 : 0);
- }
-
- return 0;
-}
-
-static UINT8 __fastcall metamrph_main_read_byte(UINT32 address)
-{
- if ((address & 0xfff000) == 0x210000) {
- return K053247Read((address & 0xfff)^1);
- }
-
- if ((address & 0xfffff0) == 0x250000) {
- return K053250RegRead(0, address) >> ((~address & 1) * 8);
- }
-
- if ((address & 0xffffe0) == 0x260000) {
- bprintf (0, _T("k053252 word ro: %5.5x\n"), address);
- return 0;
- }
-
- if ((address & 0xffc000) == 0x300000) {
- return K056832RamReadByte(address & 0x1fff);
- }
-
- if ((address & 0xffe000) == 0x310000) {
- return 0; // mw_rom_word_r
- }
-
- if ((address & 0xffe000) == 0x320000) {
- return K053250RomRead(0, address) >> ((~address & 1) * 8);
- }
-
- if ((address & 0xffffc0) == 0x25c000) {
- return K055550_word_read(address) >> ((~address & 1) * 8);
- }
-
- switch (address)
- {
- case 0x268014:
- case 0x268015:
- if ((*soundlatch3 & 0xf)==0xe) return *soundlatch3|1;
- return *soundlatch3;
-
- case 0x274000:
- return DrvInputs[2] >> 8;
-
- case 0x274001:
- return DrvInputs[2];
-
- case 0x274002:
- return DrvInputs[3] >> 8;
-
- case 0x274003:
- return DrvInputs[3];
-
- case 0x278000:
- return DrvInputs[0] >> 8;
-
- case 0x278001:
- return DrvInputs[0];
-
- case 0x278002:
- return DrvInputs[1] >> 8;
-
- case 0x278003:
- return (DrvInputs[1] & 0xfff8) | 2 | (EEPROMRead() ? 0x01 : 0);
- }
-
- return 0;
-}
-
-//--------------------------------------------------------------------------------------------------------------
-
-static void K053990_word_write(INT32 offset, UINT16 /*data*/, UINT16 mask)
-{
- offset = (offset & 0x3e) / 2;
-
- INT32 src_addr, src_count, src_skip;
- INT32 dst_addr, /*dst_count,*/ dst_skip;
- INT32 mod_addr, mod_count, mod_skip, mod_offs;
- INT32 mode, i, element_size = 1;
- UINT16 mod_val, mod_data;
-
- if (offset == 0x0c && (mask & 0x00ff))
- {
- mode = ((prot_data[0x0d]<<8) & 0xff00) | (prot_data[0x0f] & 0xff);
-
- switch (mode)
- {
- case 0xffff: // word copy
- element_size = 2;
- case 0xff00: // byte copy
- src_addr = prot_data[0x0];
- src_addr |= prot_data[0x1]<<16 & 0xff0000;
- dst_addr = prot_data[0x2];
- dst_addr |= prot_data[0x3]<<16 & 0xff0000;
- src_count = prot_data[0x8]>>8;
- //dst_count = prot_data[0x9]>>8;
- src_skip = prot_data[0xa] & 0xff;
- dst_skip = prot_data[0xb] & 0xff;
-
- if ((prot_data[0x8] & 0xff) == 2) src_count <<= 1;
- src_skip += element_size;
- dst_skip += element_size;
-
- if (element_size == 1)
- for (i=src_count; i; i--)
- {
- SekWriteByte(dst_addr, SekReadByte(src_addr));
- src_addr += src_skip;
- dst_addr += dst_skip;
- }
- else for (i=src_count; i; i--)
- {
- SekWriteWord(dst_addr, SekReadWord(src_addr));
- src_addr += src_skip;
- dst_addr += dst_skip;
- }
- break;
-
- case 0x00ff: // sprite list modifier
- src_addr = prot_data[0x0];
- src_addr |= prot_data[0x1]<<16 & 0xff0000;
- src_skip = prot_data[0x1]>>8;
- dst_addr = prot_data[0x2];
- dst_addr |= prot_data[0x3]<<16 & 0xff0000;
- dst_skip = prot_data[0x3]>>8;
- mod_addr = prot_data[0x4];
- mod_addr |= prot_data[0x5]<<16 & 0xff0000;
- mod_skip = prot_data[0x5]>>8;
- mod_offs = prot_data[0x8] & 0xff;
- mod_offs<<= 1;
- mod_count = 0x100;
-
- src_addr += mod_offs;
- dst_addr += mod_offs;
-
- for (i=mod_count; i; i--)
- {
- mod_val = SekReadWord(mod_addr);
- mod_addr += mod_skip;
-
- mod_data = SekReadWord(src_addr);
- src_addr += src_skip;
-
- mod_data += mod_val;
-
- SekWriteWord(dst_addr, mod_data);
- dst_addr += dst_skip;
- }
- break;
- }
- }
-}
-
-//--------------------------------------------------------------------------------------------------------------
-
-static void __fastcall martchmp_main_write_word(UINT32 address, UINT16 data)
-{
- if ((address & 0xffff00) == 0x400000) {
- K055555WordWrite(address, data >> 8);
- return;
- }
-
- if ((address & 0xfffff0) == 0x402010) {
- K053247WriteRegsWord(address&0xf, data);
- return;
- }
-
- if ((address & 0xfffff8) == 0x404000) {
- K053246Write((address & 0x06) + 0, data >> 8);
- K053246Write((address & 0x06) + 1, data&0xff);
- return;
- }
-
- if ((address & 0xffffe0) == 0x40a000) {
- K054338WriteWord(address, data);
- return;
- }
-
- if ((address & 0xffffc0) == 0x40c000) {
- K056832WordWrite(address & 0x3e, data);
- return;
- }
-
- if ((address & 0xffffc0) == 0x40e000) {
- prot_data[(address & 0x3e)/2] = data;
- K053990_word_write(address, data, 0xffff);
- return;
- }
-
- if ((address & 0xffffe0) == 0x41c000) {
- // k053252
- return;
- }
-
- if ((address & 0xfffff8) == 0x41e000) {
- // k056832 b_word_w
- return;
- }
-
- if ((address & 0xffc000) == 0x480000) {
- if ((address & 0x30) == 0)
- K053247WriteWord(((address & 0x000e) | ((address & 0x3FC0) >> 2)), data);
-
- *((UINT16*)(DrvSpriteRam + (address & 0x3ffe))) = data;
- return;
- }
-
- if ((address & 0xffc000) == 0x680000) {
- K056832RamWriteWord(address & 0x1fff, data);
- return;
- }
-}
-
-static void __fastcall martchmp_main_write_byte(UINT32 address, UINT8 data)
-{
- if ((address & 0xffff00) == 0x400000) {
- K055555ByteWrite(address, data);
- return;
- }
-
- if ((address & 0xfffff0) == 0x402010) {
- K053247WriteRegsByte(address&0xf, data);
- return;
- }
-
- if ((address & 0xfffff8) == 0x404000) {
- K053246Write((address & 0x07) ^ 0, data);
- return;
- }
-
- if ((address & 0xffffe0) == 0x40a000) {
- K054338WriteByte(address, data);
- return;
- }
-
- if ((address & 0xffffc0) == 0x40c000) {
- K056832ByteWrite(address & 0x3f, data);
- return;
- }
-
- if ((address & 0xffffc0) == 0x40e000) {
- UINT8 *prot = (UINT8*)&prot_data;
- prot[(address & 0x3f) ^ 1] = data;
- K053990_word_write(address, data, 0xff << ((address & 1) * 8));
- return;
- }
-
- if ((address & 0xffffe0) == 0x41c000) {
- // k053252
- return;
- }
-
- if ((address & 0xfffff8) == 0x41e000) {
- // k056832 b_word_w
- return;
- }
-
- if ((address & 0xffc000) == 0x480000) {
- if ((address & 0x30) == 0)
- K053247Write(((address & 0x000e) | ((address & 0x3FC0) >> 2) | (address & 1))^1, data);
-
- DrvSpriteRam[(address & 0x3fff)^1] = data;
- return;
- }
-
- if ((address & 0xffc000) == 0x680000) {
- K056832RamWriteByte(address & 0x1fff, data);
- return;
- }
-
- switch (address)
- {
- case 0x410000:
- EEPROMWrite((data & 0x04), (data & 0x02), (data & 0x01));
- return;
-
- case 0x412000:
- mw_irq_control = data;
- return;
-
- case 0x412001:
- K053246_set_OBJCHA_line(data & 0x04);
- return;
-
- case 0x41800c:
- case 0x41800d:
- *soundlatch = data;
- return;
-
- case 0x41800e:
- case 0x41800f:
- *soundlatch2 = data;
- return;
-
- case 0x41a000:
- case 0x41a001:
- ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
- return;
- }
-}
-
-static UINT16 __fastcall martchmp_main_read_word(UINT32 address)
-{
- if ((address & 0xffc000) == 0x680000) {
- return K056832RamReadWord(address);
- }
-
- switch (address)
- {
- case 0x414000:
- return DrvInputs[2];
-
- case 0x414002:
- return DrvInputs[3];
-
- case 0x416000:
- return DrvInputs[0] & 0xff;
-
- case 0x416002:
- return (DrvInputs[1] & 0xf4) | 2 | (EEPROMRead() ? 0x01 : 0);
- }
-
- return 0;
-}
-
-static UINT8 __fastcall martchmp_main_read_byte(UINT32 address)
-{
- if ((address & 0xffc000) == 0x680000) {
- return K056832RamReadByte(address);
- }
-
- switch (address)
- {
- case 0x412000:
- return mw_irq_control;
-
- case 0x414000:
- return DrvInputs[2] >> 8;
-
- case 0x414001:
- return DrvInputs[2];
-
- case 0x414002:
- return DrvInputs[3] >> 8;
-
- case 0x414003:
- return DrvInputs[3];
-
- case 0x416000:
- return DrvInputs[0] >> 8;
-
- case 0x416001:
- return DrvInputs[0];
-
- case 0x416002:
- return DrvInputs[1] >> 8;
-
- case 0x416003:
- return ((DrvInputs[1]) & 0xf4) | 2 | (EEPROMRead() ? 0x01 : 0);
-
- case 0x418015:
- if ((*soundlatch3 & 0xf) == 0xe) return *soundlatch3 | 1;
- return *soundlatch3;
- }
-
- return 0;
-}
-
-//--------------------------------------------------------------------------------------------------------------
-
-static void __fastcall dadandrn_main_write_word(UINT32 address, UINT16 data)
-{
- if ((address & 0xff0000) == 0x400000) {
- if ((address & 0xf0) == 0)
- K053247WriteWord(((address & 0x000e) | ((address & 0xff00) >> 4)), data);
-
- *((UINT16*)(DrvSpriteRam + (address & 0xfffe))) = data;
- return;
- }
-
- if ((address & 0xffc000) == 0x410000) {
- K056832RamWriteWord(address, data);
- return;
- }
-
- if ((address & 0xfffff8) == 0x430000) {
- K053246Write((address & 0x06) + 0, data >> 8);
- K053246Write((address & 0x06) + 1, data&0xff);
- return;
- }
-
- if ((address & 0xfffff0) == 0x450010) {
- K053247WriteRegsWord(address, data);
- return;
- }
-
- if ((address & 0xffffc0) == 0x480000) {
- K056832WordWrite(address & 0x3e, data);
- return;
- }
-
- if ((address & 0xfffff8) == 0x482000) {
- // k056832 b regs
- return;
- }
-
- if ((address & 0xfffffe) == 0x484000) {
- INT32 sizetab[4] = { 4, 4, 2, 1 };
- INT32 clip[4] = { 0, 0, 0, 0 };
-
- clip[0] = (data >> 0) & 0x3f; // min (clip) x
- clip[1] = (data >> 6) & 0x3f; // min (clip) y
- clip[2] = sizetab[(data >> 12) & 0x03]; // size x
- clip[3] = sizetab[(data >> 14) & 0x03]; // size y
-
- clip[2] = ((clip[0] + clip[2]) << 7) - 1;
- clip[3] = ((clip[1] + clip[3]) << 7) - 1;
- clip[0] <<= 7;
- clip[1] <<= 7;
-
- K053936GP_set_cliprect(0, clip[0], clip[2], clip[1], clip[3]);
- return;
- }
-
- if ((address & 0xfffffe) == 0x484002) {
- K053936GP_clip_enable(0, (data >> 8) & 1);
- return;
- }
-
- if ((address & 0xffffe0) == 0x486000) {
- // k053252
- return;
- }
-
- if ((address & 0xffff00) == 0x488000) {
- K055555WordWrite(address, data >> 8);
- return;
- }
-
- if ((address & 0xffffe0) == 0x48c000) {
- K054338WriteWord(address, data);
- return;
- }
-
- if ((address & 0xffffc0) == 0x660000) {
- K054000Write((address/2)&0x1f, data);
- return;
- }
-
- if ((address & 0xffffc0) == 0x680000) {
- prot_data[(address & 0x3f)/2] = data;
- K055550_word_write(address, data, 0xffff);
- return;
- }
-}
-
-static void __fastcall dadandrn_main_write_byte(UINT32 address, UINT8 data)
-{
- if ((address & 0xff0000) == 0x400000) {
- if ((address & 0xf0) == 0)
- K053247Write(((address & 0x000e) | ((address & 0xff00) >> 4) | (address & 1))^1, data);
-
- DrvSpriteRam[(address & 0xffff)^1] = data;
- return;
- }
-
- if ((address & 0xffc000) == 0x410000) {
- K056832RamWriteByte(address, data);
- return;
- }
-
- if ((address & 0xfffff8) == 0x430000) {
- K053246Write((address & 0x7)^0, data);
- return;
- }
-
- if ((address & 0xfffff0) == 0x450010) {
- K053247WriteRegsByte(address, data);
- return;
- }
-
- if ((address & 0xffffc0) == 0x480000) {
- K056832ByteWrite(address, data);
- return;
- }
-
- if ((address & 0xfffff8) == 0x482000) {
- // k056832 b regs
- return;
- }
-
- //if ((address & 0xfffffc) == 0x484000) {
- // bprintf (0, _T("ClipB: %2.2x, %4.4x\n"), address & 3, data);
- // return;
- //}
-
- if ((address & 0xffffe0) == 0x486000) {
- // k053252
- return;
- }
-
- if ((address & 0xffff00) == 0x488000) {
- K055555ByteWrite(address, data);
- return;
- }
-
- if ((address & 0xffffe0) == 0x48c000) {
- K054338WriteByte(address, data);
- return;
- }
-
- if ((address & 0xffffc0) == 0x660000) {
- K054000Write((address/2)&0x1f, data);
- return;
- }
-
- if ((address & 0xffffc0) == 0x680000) {
- UINT8 *prot = (UINT8*)&prot_data;
- prot[(address & 0x3f) ^ 1] = data;
- K055550_word_write(address, data, 0xff << ((address & 1) * 8));
- return;
- }
-
- switch (address)
- {
- case 0x484002:
- //bprintf (0, _T("clipb enable %2.2x\n"), data);
- K053936GP_clip_enable(0, data & 0x01);
- return;
-
- case 0x48a00c:
- *soundlatch = data;
- return;
-
- case 0x48a00e:
- *soundlatch2 = data;
- return;
-
- case 0x6a0001:
- EEPROMWrite((data & 0x04), (data & 0x02), (data & 0x01));
- return;
-
- case 0x6c0000:
- case 0x6c0001:
- K053936GP_enable(0, data & 0x01);
- // 053936_enable
- // bprintf (0, _T("'936b enable %2.2x\n"), data);
- return;
-
- case 0x6e0000:
- ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
- return;
-
- case 0xe00000:
- return; // watchdog
- }
-}
-
-static UINT16 __fastcall dadandrn_main_read_word(UINT32 address)
-{
- if ((address & 0xffc000) == 0x410000) {
- return K056832RamReadWord(address & 0x1fff);
- }
-
- if ((address & 0xffffc0) == 0x680000) {
- return K055550_word_read(address);
- }
-
- if ((address & 0xffff00) == 0x660000) {
- return K054000Read((address / 2) & 0x1f);
- }
-
- switch (address)
- {
- case 0x480a14:
- if ((*soundlatch3 & 0xf)==0xe) return *soundlatch3|1;
- return *soundlatch3;
-
- case 0x48e000:
- return DrvInputs[0];
-
- case 0x48e020:
- return (DrvInputs[1] << 8) | (DrvInputs[2] & 0xff); // ????
- }
-
- return 0;
-}
-
-static UINT8 __fastcall dadandrn_main_read_byte(UINT32 address)
-{
- if ((address & 0xffc000) == 0x410000) {
- return K056832RamReadByte(address & 0x1fff);
- }
-
- if ((address & 0xffffc0) == 0x680000) {
- return K055550_word_read(address) >> ((~address & 1) * 8);
- }
-
- if ((address & 0xffffc0) == 0x660000) {
- return K054000Read((address / 2) & 0x1f);
- }
-
- switch (address)
- {
- case 0x480a14:
- case 0x48a014:
- if ((*soundlatch3 & 0xf)==0xe) return *soundlatch3|1;
- return *soundlatch3;
-
- case 0x48e000:
- return DrvInputs[0] >> 8;
-
- case 0x48e001:
- return DrvInputs[0];
-
- case 0x48e020:
- return (DrvInputs[1] & 0xf8) | 2 | (EEPROMRead() ? 0x0001 : 0);
-
- case 0x48e021:
- return (DrvInputs[2] >> 8);
- }
-
- return 0;
-}
-
-//--------------------------------------------------------------------------------------------------------------
-
-static void bankswitch(INT32 data)
-{
- z80_bank = data;
- ZetMapMemory(DrvZ80ROM + ((data & 0x0f) * 0x4000), 0x8000, 0xbfff, MAP_ROM);
-}
-
-static void __fastcall mystwarr_sound_write(UINT16 address, UINT8 data)
-{
- switch (address)
- {
- case 0xf000:
- *soundlatch3 = data;
- return;
-
- case 0xf800:
- sound_control = data & 0x10;
- bankswitch(data);
- // if (!sound_control) ZetSetIRQLine(0x20, CPU_IRQSTATUS_NONE); // CLEAR NMI LINE!
- return;
- }
-
- if (address >= 0xe000 && address <= 0xe22f) {
- K054539Write(0, address - 0xe000, data);
- }
-
- if (address >= 0xe400 && address <= 0xe62f) {
- K054539Write(1, address - 0xe400, data);
- }
-
- if (address >= 0xe000 && address <= 0xe7ff) {
- DrvZ80RAM[0x2000 + (address & 0x7ff)] = data;
- }
-
-}
-
-static UINT8 __fastcall mystwarr_sound_read(UINT16 address)
-{
- if (address >= 0xe000 && address <= 0xe22f) {
- return K054539Read(0, address - 0xe000);
- }
-
- if (address >= 0xe400 && address <= 0xe62f) {
- return K054539Read(1, address - 0xe400);
- }
-
- if (address >= 0xe000 && address <= 0xe7ff) {
- return DrvZ80RAM[0x2000 + (address & 0x7ff)];
- }
-
- switch (address)
- {
- case 0xf002:
- ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
- return *soundlatch;
-
- case 0xf003:
- ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
- return *soundlatch2;
- }
-
- return 0;
-}
-
-//--------------------------------------------------------------------------------------------------------------
-
-static void mystwarr_tile_callback(INT32 layer, INT32 *code, INT32 *color, INT32 *flags)
-{
- if (layer == 1 && (*code & 0xff00) + (*color) == 0x4101) *flags = (*flags)|(0x808000); //* water hack
-
- *color = layer_colorbase[layer] | ((*color >> 1) & 0x1e);
-}
-
-static void metamrph_tile_callback(INT32 layer, INT32 */*code*/, INT32 *color, INT32 */*flags*/)
-{
- *color = layer_colorbase[layer] | (*color >> 2 & 0x0f);
-}
-
-static void game5bpp_tile_callback(INT32 layer, INT32 */*code*/, INT32 *color, INT32 */*flags*/)
-{
- *color = layer_colorbase[layer] | ((*color >> 1) & 0x1e);
-}
-static void mystwarr_sprite_callback(INT32 */*code*/, INT32 *color, INT32 *priority)
-{
- INT32 c = *color;
- *color = sprite_colorbase | (c & 0x001f);
- *priority = c & 0x00f0;
-}
-
-static void metamrph_sprite_callback(INT32 */*code*/, INT32 *color, INT32 *priority)
-{
- INT32 c = *color;
- INT32 attr = c;
-
- c = (c & 0x1f) | sprite_colorbase;
-
- if ((attr & 0x300) != 0x300)
- {
- *color = c;
- *priority = (attr & 0xe0) >> 2;
- }
- else
- {
- *color = c | 3<>4 & 0x20) | (c & 0x001f);
- *priority = c & 0x00e0;
-}
-
-static const eeprom_interface mystwarr_eeprom_interface =
-{
- 7, /* address bits */
- 8, /* data bits */
- "011000", /* read command */
- "011100", /* write command */
- "0100100000000",/* erase command */
- "0100000000000",/* lock command */
- "0100110000000", /* unlock command */
- 0,
- 0
-};
-
-static const eeprom_interface gaiapolis_eeprom_interface =
-{
- 7, /* address bits */
- 8, /* data bits */
- "011000", /* read command */
- "010100", /* write command */
- "0100100000000",/* erase command */
- "0100000000000",/* lock command */
- "0100110000000",/* unlock command */
- 0,
- 0
-};
-
-static INT32 DrvDoReset()
-{
- memset (AllRam, 0, RamEnd - AllRam);
-
- SekOpen(0);
- SekReset();
- SekClose();
-
- ZetOpen(0);
- ZetReset();
- bankswitch(2);
- ZetClose();
-
- KonamiICReset();
-
- K054539Reset(0);
- K054539Reset(1);
-
- EEPROMReset();
-
- if (EEPROMAvailable() == 0) {
- EEPROMFill(DrvEeprom, 0, 128);
- }
-
- control_data = 0;
-
- for (INT32 i = 0; i < 4; i++)
- {
- layer_colorbase[i] = 0;
- }
-
- sprite_colorbase = 0;
- cbparam = 0;
- oinprion = 0;
- sound_nmi_enable = 0;
-
- return 0;
-}
-
-static INT32 MemIndex()
-{
- UINT8 *Next; Next = AllMem;
-
- Drv68KROM = Next; Next += 0x300000;
- DrvZ80ROM = Next; Next += 0x040000;
-
- DrvGfxROM0 = Next; Next += 0x600000;
- DrvGfxROM1 = Next; Next += 0xa00000;
- DrvGfxROM2 = Next; Next += 0x500000;
- DrvGfxROM3 = Next; Next += 0x100000;
-
- DrvGfxROMExp0 = Next; Next += 0xc00000;
- DrvGfxROMExp1 = Next; Next += 0x1000000;
- DrvGfxROMExp2 = Next; Next += 0x800000;
-
- DrvSndROM = Next; Next += 0x400000;
-
- DrvEeprom = Next; Next += 0x000080;
-
- konami_palette32 = (UINT32*)Next;
- DrvPalette = (UINT32*)Next; Next += 0x0800 * sizeof(UINT32);
-
- AllRam = Next;
-
- Drv68KRAM = Next; Next += 0x010000;
- DrvSpriteRam = Next; Next += 0x010000;
- DrvPalRAM = Next; Next += 0x002000;
-
- DrvK053936Ctrl = Next; Next += 0x000400;
- DrvK053936RAM = Next; Next += 0x001000;
-
- DrvZ80RAM = Next; Next += 0x002800;
-
- soundlatch = Next; Next += 0x000001;
- soundlatch2 = Next; Next += 0x000001;
- soundlatch3 = Next; Next += 0x000001;
-
- RamEnd = Next;
- MemEnd = Next;
-
- return 0;
-}
-
-static void decode_gfx1(UINT8 *src, UINT8 *d, INT32 len)
-{
- UINT8 *s = src;
- UINT8 *pFinish = s+len-3;
-
- while (s < pFinish)
- {
- INT32 d0 = ((s[0]&0x80)<<0)|((s[0]&0x08)<<3)|((s[1]&0x80)>>2)|((s[1]&0x08)<<1)|((s[2]&0x80)>>4)|((s[2]&0x08)>>1)|((s[3]&0x80)>>6)|((s[3]&0x08)>>3);
- INT32 d1 = ((s[0]&0x40)<<1)|((s[0]&0x04)<<4)|((s[1]&0x40)>>1)|((s[1]&0x04)<<2)|((s[2]&0x40)>>3)|((s[2]&0x04)>>0)|((s[3]&0x40)>>5)|((s[3]&0x04)>>2);
- INT32 d2 = ((s[0]&0x20)<<2)|((s[0]&0x02)<<5)|((s[1]&0x20)<<0)|((s[1]&0x02)<<3)|((s[2]&0x20)>>2)|((s[2]&0x02)<<1)|((s[3]&0x20)>>4)|((s[3]&0x02)>>1);
- INT32 d3 = ((s[0]&0x10)<<3)|((s[0]&0x01)<<6)|((s[1]&0x10)<<1)|((s[1]&0x01)<<4)|((s[2]&0x10)>>1)|((s[2]&0x01)<<2)|((s[3]&0x10)>>3)|((s[3]&0x01)>>0);
-
- d[0] = d3;
- d[1] = d1;
- d[2] = d2;
- d[3] = d0;
- d[4] = s[4];
-
- s += 5;
- d += 5;
- }
-
- INT32 nLen = len;
- INT32 Plane[5] = { 32, 24, 8, 16, 0 };
- INT32 XOffs[8] = { 0, 1, 2, 3, 4, 5, 6, 7 };
- INT32 YOffs[8] = { 0, 5*8, 5*8*2, 5*8*3, 5*8*4, 5*8*5, 5*8*6, 5*8*7 };
-
- UINT8 *tmp = (UINT8*)BurnMalloc(nLen);
-
- memcpy (tmp, DrvGfxROMExp0, nLen);
-
- GfxDecode(((nLen * 8) / 5) / 0x40, 5, 8, 8, Plane, XOffs, YOffs, 8*8*5, tmp, DrvGfxROMExp0);
-
- BurnFree (tmp);
-}
-
-static void DecodeSprites(UINT8 *rom, UINT8 *exprom, INT32 len)
-{
- INT32 Plane[5] = { 32, 24, 16, 8, 0 };
- INT32 XOffs[16] = { 0, 1, 2, 3, 4, 5, 6, 7, 40, 41, 42, 43, 44, 45, 46, 47 };
- INT32 YOffs[16] = { 0, 10*8, 10*8*2, 10*8*3, 10*8*4, 10*8*5, 10*8*6, 10*8*7, 10*8*8,
- 10*8*9, 10*8*10, 10*8*11, 10*8*12, 10*8*13, 10*8*14, 10*8*15 };
-
- INT32 size4 = (len/(1024*1024))/5;
- size4 *= 4*1024*1024;
-
- UINT8 *tmp = (UINT8*)BurnMalloc(size4 * 5);
-
- UINT8 *d = tmp;
- UINT8 *s1 = rom;
- UINT8 *s2 = rom + (size4);
-
- for (INT32 i = 0; i < size4; i+=4)
- {
- *d++ = *s1++;
- *d++ = *s1++;
- *d++ = *s1++;
- *d++ = *s1++;
- *d++ = *s2++;
- }
-
- GfxDecode(size4 / 128, 5, 16, 16, Plane, XOffs, YOffs, 16*16*5, tmp, exprom);
-
- BurnFree (tmp);
-}
-
-static void Metamrph_sprite_decode()
-{
- INT32 Plane[4] = { 24, 16, 8, 0 };
- INT32 XOffs[16] = { 0, 1, 2, 3, 4, 5, 6, 7, 32, 33, 34, 35, 36, 37, 38, 39 };
- INT32 YOffs[16] = { 0, 64, 128, 192, 256, 320, 384, 448, 512, 576, 640, 704, 768, 832, 896, 960 };
-
- GfxDecode(0x10000, 4, 16, 16, Plane, XOffs, YOffs, 16*16*4, DrvGfxROM1, DrvGfxROMExp1);
-}
-
-static INT32 MystwarrInit()
-{
- nGame = 1;
-
- GenericTilesInit();
-
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(Drv68KROM + 0x000001, 0, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x000000, 1, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x100001, 2, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x100000, 3, 2)) return 1;
-
- if (BurnLoadRom(DrvZ80ROM + 0x000000, 4, 1)) return 1;
-
- if (BurnLoadRomExt(DrvGfxROM0 + 0x000000, 5, 5, LD_GROUP(2) | LD_REVERSE)) return 1;
- if (BurnLoadRomExt(DrvGfxROM0 + 0x000002, 6, 5, LD_GROUP(2) | LD_REVERSE)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x000004, 7, 5)) return 1;
-
- if (BurnLoadRomExt(DrvGfxROM1 + 0x000000, 8, 8, 2)) return 1;
- if (BurnLoadRomExt(DrvGfxROM1 + 0x000002, 9, 8, 2)) return 1;
- if (BurnLoadRomExt(DrvGfxROM1 + 0x000004, 10, 8, 2)) return 1;
- if (BurnLoadRomExt(DrvGfxROM1 + 0x000006, 11, 8, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x400000, 12, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x400001, 13, 2)) return 1;
-
- if (BurnLoadRom(DrvSndROM + 0x000000, 14, 1)) return 1;
- if (BurnLoadRom(DrvSndROM + 0x200000, 15, 1)) return 1;
-
- if (BurnLoadRom(DrvEeprom + 0x000000, 16, 1)) return 1;
-
- decode_gfx1(DrvGfxROM0, DrvGfxROMExp0, 0x500000);
- DecodeSprites(DrvGfxROM1, DrvGfxROMExp1, 0x500000);
- }
-
- K055555Init();
- K054338Init();
-
- K056832Init(DrvGfxROM0, DrvGfxROMExp0, 0x400000, mystwarr_tile_callback);
- K056832SetGlobalOffsets(24, 16);
- K056832SetLayerOffsets(0, -2-4, 0);
- K056832SetLayerOffsets(1, 0-4, 0);
- K056832SetLayerOffsets(2, 2-4, 0);
- K056832SetLayerOffsets(3, 3-4, 0);
-
- K053247Init(DrvGfxROM1, DrvGfxROMExp1, 0x7fffff, mystwarr_sprite_callback, 3);
- K053247SetSpriteOffset(-24-48, -16-24);
- K053247SetBpp(5);
-
- konamigx_mixer_init(0);
-
- SekInit(0, 0x68000);
- SekOpen(0);
- SekMapMemory(Drv68KROM, 0x000000, 0x1fffff, MAP_ROM);
- SekMapMemory(Drv68KRAM, 0x200000, 0x20ffff, MAP_RAM);
- SekMapMemory(DrvSpriteRam, 0x400000, 0x40ffff, MAP_ROM);
- SekMapMemory(DrvPalRAM, 0x700000, 0x701fff, MAP_RAM);
- SekSetWriteWordHandler(0, mystwarr_main_write_word);
- SekSetWriteByteHandler(0, mystwarr_main_write_byte);
- SekSetReadWordHandler(0, mystwarr_main_read_word);
- SekSetReadByteHandler(0, mystwarr_main_read_byte);
- SekClose();
-
- ZetInit(0);
- ZetOpen(0);
- ZetMapMemory(DrvZ80ROM, 0x0000, 0x7fff, MAP_ROM);
- ZetMapMemory(DrvZ80RAM, 0xc000, 0xdfff, MAP_RAM);
- ZetSetWriteHandler(mystwarr_sound_write);
- ZetSetReadHandler(mystwarr_sound_read);
- ZetClose();
-
- EEPROMInit(&mystwarr_eeprom_interface);
-
- K054539Init(0, 48000, DrvSndROM, 0x400000);
- K054539SetRoute(0, BURN_SND_K054539_ROUTE_1, 1.00, BURN_SND_ROUTE_LEFT);
- K054539SetRoute(0, BURN_SND_K054539_ROUTE_2, 1.00, BURN_SND_ROUTE_RIGHT);
- K054539_set_gain(0, 0, 0.80);
- K054539_set_gain(0, 1, 0.80);
- K054539_set_gain(0, 2, 0.80);
- K054539_set_gain(0, 3, 0.80);
- K054539_set_gain(0, 4, 2.00);
- K054539_set_gain(0, 5, 2.00);
- K054539_set_gain(0, 6, 2.00);
- K054539_set_gain(0, 7, 2.00);
-
- K054539Init(1, 48000, DrvSndROM, 0x400000);
- K054539SetRoute(1, BURN_SND_K054539_ROUTE_1, 1.00, BURN_SND_ROUTE_LEFT);
- K054539SetRoute(1, BURN_SND_K054539_ROUTE_2, 1.00, BURN_SND_ROUTE_RIGHT);
- K054539_set_gain(1, 0, 0.50);
- K054539_set_gain(1, 1, 0.50);
- K054539_set_gain(1, 2, 0.50);
- K054539_set_gain(1, 3, 0.50);
- K054539_set_gain(1, 4, 0.50);
- K054539_set_gain(1, 5, 0.50);
- K054539_set_gain(1, 6, 0.50);
- K054539_set_gain(1, 7, 0.50);
-
- DrvDoReset();
-
- return 0;
-}
-
-static INT32 MetamrphInit()
-{
- nGame = 2;
-
- GenericTilesInit();
-
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(Drv68KROM + 0x000000, 0, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x000001, 1, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x100000, 2, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x100001, 3, 2)) return 1;
-
- if (BurnLoadRom(DrvZ80ROM + 0x000000, 4, 1)) return 1;
-
- if (BurnLoadRomExt(DrvGfxROM0 + 0x000000, 5, 5, LD_GROUP(2) | LD_REVERSE)) return 1;
- if (BurnLoadRomExt(DrvGfxROM0 + 0x000002, 6, 5, LD_GROUP(2) | LD_REVERSE)) return 1;
-
- if (BurnLoadRomExt(DrvGfxROM1 + 0x000000, 7, 8, 2)) return 1;
- if (BurnLoadRomExt(DrvGfxROM1 + 0x000002, 8, 8, 2)) return 1;
- if (BurnLoadRomExt(DrvGfxROM1 + 0x000004, 9, 8, 2)) return 1;
- if (BurnLoadRomExt(DrvGfxROM1 + 0x000006, 10, 8, 2)) return 1;
-
- if (BurnLoadRom(DrvGfxROM2 + 0x000000, 11, 1)) return 1;
-
- if (BurnLoadRom(DrvSndROM + 0x000000, 12, 1)) return 1;
- if (BurnLoadRom(DrvSndROM + 0x200000, 13, 1)) return 1;
-
- if (BurnLoadRom(DrvEeprom + 0x000000, 14, 1)) return 1;
-
- decode_gfx1(DrvGfxROM0, DrvGfxROMExp0, 0x500000);
-
- Metamrph_sprite_decode();
- }
-
- K055555Init();
- K054338Init();
-
- K056832Init(DrvGfxROM0, DrvGfxROMExp0, 0x200000, metamrph_tile_callback);
- K056832SetGlobalOffsets(24, 15);
- K056832SetLayerOffsets(0, -2+4, 2);
- K056832SetLayerOffsets(1, 0+4, 2);
- K056832SetLayerOffsets(2, 2+4, 2);
- K056832SetLayerOffsets(3, 3+4, 2);
- K056832Metamorphic_Fixup();
-
- K053247Init(DrvGfxROM1, DrvGfxROMExp1, 0x7fffff, metamrph_sprite_callback, 1);
- K053247SetSpriteOffset(-51-24, -24-15+0);
-
- K053250Init(0, DrvGfxROM2, DrvGfxROMExp2, 0x40000);
- K053250SetOffsets(0, -60+29, -16); // verify
-
- konamigx_mixer_init(0);
-
- SekInit(0, 0x68000);
- SekOpen(0);
- SekMapMemory(Drv68KROM, 0x000000, 0x1fffff, MAP_ROM);
- SekMapMemory(Drv68KRAM, 0x200000, 0x20ffff, MAP_RAM);
- SekMapMemory(DrvSpriteRam, 0x211000, 0x21ffff, MAP_RAM);
- SekMapMemory((UINT8*)K053250Ram, 0x24c000, 0x24ffff, MAP_RAM);
- SekMapMemory(DrvPalRAM, 0x330000, 0x331fff, MAP_RAM);
- SekSetWriteWordHandler(0, metamrph_main_write_word);
- SekSetWriteByteHandler(0, metamrph_main_write_byte);
- SekSetReadWordHandler(0, metamrph_main_read_word);
- SekSetReadByteHandler(0, metamrph_main_read_byte);
- SekClose();
-
- ZetInit(0);
- ZetOpen(0);
- ZetMapMemory(DrvZ80ROM, 0x0000, 0x7fff, MAP_ROM);
- ZetMapMemory(DrvZ80RAM, 0xc000, 0xdfff, MAP_RAM);
- ZetSetWriteHandler(mystwarr_sound_write);
- ZetSetReadHandler(mystwarr_sound_read);
- ZetClose();
-
- EEPROMInit(&mystwarr_eeprom_interface);
-
- K054539Init(0, 48000, DrvSndROM, 0x400000);
- K054539SetRoute(0, BURN_SND_K054539_ROUTE_1, 1.00, BURN_SND_ROUTE_LEFT);
- K054539SetRoute(0, BURN_SND_K054539_ROUTE_2, 1.00, BURN_SND_ROUTE_RIGHT);
- K054539_set_gain(0, 0, 0.80);
- K054539_set_gain(0, 1, 0.80);
- K054539_set_gain(0, 2, 0.80);
- K054539_set_gain(0, 3, 0.80);
- K054539_set_gain(0, 4, 1.80);
- K054539_set_gain(0, 5, 1.80);
- K054539_set_gain(0, 6, 1.80);
- K054539_set_gain(0, 7, 1.80);
-
- K054539Init(1, 48000, DrvSndROM, 0x400000);
- K054539SetRoute(1, BURN_SND_K054539_ROUTE_1, 1.00, BURN_SND_ROUTE_LEFT);
- K054539SetRoute(1, BURN_SND_K054539_ROUTE_2, 1.00, BURN_SND_ROUTE_RIGHT);
- K054539_set_gain(1, 0, 0.80);
- K054539_set_gain(1, 1, 0.80);
- K054539_set_gain(1, 2, 0.80);
- K054539_set_gain(1, 3, 0.80);
- K054539_set_gain(1, 4, 0.80);
- K054539_set_gain(1, 5, 0.80);
- K054539_set_gain(1, 6, 0.80);
- K054539_set_gain(1, 7, 0.80);
-
- DrvDoReset();
-
- return 0;
-}
-
-static INT32 ViostormInit()
-{
- nGame = 3;
-
- GenericTilesInit();
-
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(Drv68KROM + 0x000000, 0, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x000001, 1, 2)) return 1;
-
- if (BurnLoadRom(DrvZ80ROM + 0x000000, 2, 1)) return 1;
-
- if (BurnLoadRomExt(DrvGfxROM0 + 0x000000, 3, 5, LD_GROUP(2) | LD_REVERSE)) return 1;
- if (BurnLoadRomExt(DrvGfxROM0 + 0x000002, 4, 5, LD_GROUP(2) | LD_REVERSE)) return 1;
-
- if (BurnLoadRomExt(DrvGfxROM1 + 0x000000, 5, 8, 2)) return 1;
- if (BurnLoadRomExt(DrvGfxROM1 + 0x000002, 6, 8, 2)) return 1;
- if (BurnLoadRomExt(DrvGfxROM1 + 0x000004, 7, 8, 2)) return 1;
- if (BurnLoadRomExt(DrvGfxROM1 + 0x000006, 8, 8, 2)) return 1;
-
- if (BurnLoadRom(DrvSndROM + 0x000000, 9, 1)) return 1;
- if (BurnLoadRom(DrvSndROM + 0x200000, 10, 1)) return 1;
-
- if (BurnLoadRom(DrvEeprom + 0x000000, 11, 1)) return 1;
-
- decode_gfx1(DrvGfxROM0, DrvGfxROMExp0, 0x600000);
-
- Metamrph_sprite_decode();
- }
-
- K055555Init();
- K054338Init();
-
- K056832Init(DrvGfxROM0, DrvGfxROMExp0, 0x200000, metamrph_tile_callback);
- K056832SetGlobalOffsets(40, 16);
- K056832SetLayerOffsets(0, -2+1, 0);
- K056832SetLayerOffsets(1, 0+1, 0);
- K056832SetLayerOffsets(2, 2+1, 0);
- K056832SetLayerOffsets(3, 3+1, 0);
-
- K053247Init(DrvGfxROM1, DrvGfxROMExp1, 0x7fffff, metamrph_sprite_callback, 3);
- K053247SetSpriteOffset(-62-40, -23-16);
-
- K053250Init(0, DrvGfxROM2, DrvGfxROMExp2, 1); // doesn't exist on this hardware
-
- konamigx_mixer_init(0);
-
- SekInit(0, 0x68000);
- SekOpen(0);
- SekMapMemory(Drv68KROM, 0x000000, 0x1fffff, MAP_ROM);
- SekMapMemory(Drv68KRAM, 0x200000, 0x20ffff, MAP_RAM);
- SekMapMemory(DrvSpriteRam, 0x211000, 0x21ffff, MAP_RAM);
- SekMapMemory((UINT8*)K053250Ram, 0x24c000, 0x24ffff, MAP_RAM);
- SekMapMemory(DrvPalRAM, 0x330000, 0x331fff, MAP_RAM);
- SekSetWriteWordHandler(0, metamrph_main_write_word);
- SekSetWriteByteHandler(0, metamrph_main_write_byte);
- SekSetReadWordHandler(0, metamrph_main_read_word);
- SekSetReadByteHandler(0, metamrph_main_read_byte);
- SekClose();
-
- ZetInit(0);
- ZetOpen(0);
- ZetMapMemory(DrvZ80ROM, 0x0000, 0x7fff, MAP_ROM);
- ZetMapMemory(DrvZ80RAM, 0xc000, 0xdfff, MAP_RAM);
- ZetSetWriteHandler(mystwarr_sound_write);
- ZetSetReadHandler(mystwarr_sound_read);
- ZetClose();
-
- EEPROMInit(&mystwarr_eeprom_interface);
-
- K054539Init(0, 48000, DrvSndROM, 0x400000);
- K054539SetRoute(0, BURN_SND_K054539_ROUTE_1, 1.00, BURN_SND_ROUTE_LEFT);
- K054539SetRoute(0, BURN_SND_K054539_ROUTE_2, 1.00, BURN_SND_ROUTE_RIGHT);
- K054539_set_gain(0, 0, 2.00);
- K054539_set_gain(0, 1, 2.00);
- K054539_set_gain(0, 2, 2.00);
- K054539_set_gain(0, 3, 2.00);
- K054539_set_gain(0, 4, 2.00);
- K054539_set_gain(0, 5, 2.00);
- K054539_set_gain(0, 6, 2.00);
- K054539_set_gain(0, 7, 2.00);
-
- K054539Init(1, 48000, DrvSndROM, 0x400000);
- K054539SetRoute(1, BURN_SND_K054539_ROUTE_1, 1.00, BURN_SND_ROUTE_LEFT);
- K054539SetRoute(1, BURN_SND_K054539_ROUTE_2, 1.00, BURN_SND_ROUTE_RIGHT);
-
- DrvDoReset();
-
- return 0;
-}
-
-static INT32 MartchmpInit()
-{
- nGame = 4;
-
- GenericTilesInit();
-
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(Drv68KROM + 0x000001, 0, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x000000, 1, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x100001, 2, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x100000, 3, 2)) return 1;
-
- if (BurnLoadRom(DrvZ80ROM + 0x000000, 4, 1)) return 1;
-
- if (BurnLoadRomExt(DrvGfxROM0 + 0x000000, 5, 5, LD_GROUP(2) | LD_REVERSE)) return 1;
- if (BurnLoadRomExt(DrvGfxROM0 + 0x000002, 6, 5, LD_GROUP(2) | LD_REVERSE)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x000004, 7, 5)) return 1;
-
- if (BurnLoadRomExt(DrvGfxROM1 + 0x000000, 8, 8, 2)) return 1;
- if (BurnLoadRomExt(DrvGfxROM1 + 0x000002, 9, 8, 2)) return 1;
- if (BurnLoadRomExt(DrvGfxROM1 + 0x000004, 10, 8, 2)) return 1;
- if (BurnLoadRomExt(DrvGfxROM1 + 0x000006, 11, 8, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x800000, 12, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x800001, 13, 2)) return 1;
-
- if (BurnLoadRom(DrvSndROM + 0x000000, 14, 1)) return 1;
- if (BurnLoadRom(DrvSndROM + 0x200000, 15, 1)) return 1;
-
- if (BurnLoadRom(DrvEeprom + 0x000000, 16, 1)) return 1;
-
- decode_gfx1(DrvGfxROM0, DrvGfxROMExp0, 0x500000);
-
- DecodeSprites(DrvGfxROM1, DrvGfxROMExp1, 0xa00000);
- }
-
- K055555Init();
- K054338Init();
-
- K056832Init(DrvGfxROM0, DrvGfxROMExp0, 0x400000, game5bpp_tile_callback);
- K056832SetGlobalOffsets(32, 16);
- K056832SetLayerOffsets(0, -2-4, 0);
- K056832SetLayerOffsets(1, 0-4, 0);
- K056832SetLayerOffsets(2, 2-4, 0);
- K056832SetLayerOffsets(3, 3-4, 0);
-
- K053247Init(DrvGfxROM1, DrvGfxROMExp1, 0x7fffff, martchmp_sprite_callback, 3);
- K053247SetSpriteOffset((-23-58-9), (-16-23-14));
- K053247SetBpp(5);
-
- konamigx_mixer_init(0);
-
- SekInit(0, 0x68000);
- SekOpen(0);
- SekMapMemory(Drv68KROM + 0x000000, 0x000000, 0x0fffff, MAP_ROM);
- SekMapMemory(Drv68KRAM, 0x100000, 0x10ffff, MAP_RAM);
- SekMapMemory(Drv68KROM + 0x100000, 0x300000, 0x3fffff, MAP_ROM);
- SekMapMemory(DrvSpriteRam, 0x480000, 0x483fff, MAP_ROM); // should be written through handler
- SekMapMemory(DrvPalRAM, 0x600000, 0x601fff, MAP_RAM);
- SekSetWriteWordHandler(0, martchmp_main_write_word);
- SekSetWriteByteHandler(0, martchmp_main_write_byte);
- SekSetReadWordHandler(0, martchmp_main_read_word);
- SekSetReadByteHandler(0, martchmp_main_read_byte);
- SekClose();
-
- ZetInit(0);
- ZetOpen(0);
- ZetMapMemory(DrvZ80ROM, 0x0000, 0x7fff, MAP_ROM);
- ZetMapMemory(DrvZ80RAM, 0xc000, 0xdfff, MAP_RAM);
- ZetSetWriteHandler(mystwarr_sound_write);
- ZetSetReadHandler(mystwarr_sound_read);
- ZetClose();
-
- EEPROMInit(&mystwarr_eeprom_interface);
-
- K054539Init(0, 48000, DrvSndROM, 0x400000);
- K054539SetRoute(0, BURN_SND_K054539_ROUTE_1, 1.00, BURN_SND_ROUTE_LEFT);
- K054539SetRoute(0, BURN_SND_K054539_ROUTE_2, 1.00, BURN_SND_ROUTE_RIGHT);
- K054539_set_gain(0, 0, 1.40);
- K054539_set_gain(0, 1, 1.40);
- K054539_set_gain(0, 2, 1.40);
- K054539_set_gain(0, 3, 1.40);
- K054539_set_gain(0, 4, 1.40);
- K054539_set_gain(0, 5, 1.40);
- K054539_set_gain(0, 6, 1.40);
- K054539_set_gain(0, 7, 1.40);
-
- K054539Init(1, 48000, DrvSndROM, 0x400000);
- K054539SetRoute(1, BURN_SND_K054539_ROUTE_1, 1.00, BURN_SND_ROUTE_LEFT);
- K054539SetRoute(1, BURN_SND_K054539_ROUTE_2, 1.00, BURN_SND_ROUTE_RIGHT);
-
- DrvDoReset();
-
- return 0;
-}
-
-static void DrvGfxExpand(UINT8 *src, INT32 nLen)
-{
- for (INT32 i = (nLen - 1) * 2; i >= 0; i-=2) {
- src[i+0] = src[(i/2)] >> 4;
- src[i+1] = src[(i/2)] & 0xf;
- }
-}
-
-// pre-draw the whole roz tilemap... needs a ton of ram!
-static void GaiapolisRozTilemapdraw()
-{
- UINT8 *dat1 = DrvGfxROM3;
- UINT8 *dat2 = DrvGfxROM3 + 0x20000;
- UINT8 *dat3 = DrvGfxROM3 + 0x60000;
-
- K053936_external_bitmap = pMystwarrRozBitmap;
-
- for (INT32 offs = 0; offs < 512 * 512; offs++)
- {
- INT32 sx = (offs & 0x1ff) * 16;
- INT32 sy = (offs / 0x200) * 16;
-
- INT32 code = dat3[offs] | ((dat2[offs]&0x3f)<<8);
- INT32 color = 0;
-
- if (offs & 1)
- color = dat1[offs>>1]&0xf;
- else
- color = dat1[offs>>1]>>4;
-
- if (dat2[offs] & 0x80) color |= 0x10;
-
- UINT8 *gfx = DrvGfxROM2 + (code * 0x100);
- color <<= 4;
-
- UINT16 *dst = pMystwarrRozBitmap + sy * 0x2000 + sx;
-
- for (INT32 y = 0; y < 16; y++) {
- for (INT32 x = 0; x < 16; x++, gfx++) {
- dst[x] = gfx[0] + color;
- }
- dst += 0x2000;
- }
- }
-}
-
-static INT32 GaiapolisInit()
-{
- nGame = 5;
-
- GenericTilesInit();
-
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(Drv68KROM + 0x000001, 0, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x000000, 1, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x200001, 2, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x200000, 3, 2)) return 1;
-
- if (BurnLoadRom(DrvZ80ROM + 0x000000, 4, 1)) return 1;
-
- if (BurnLoadRomExt(DrvGfxROM0 + 0x000000, 5, 5, LD_GROUP(2) | LD_REVERSE)) return 1;
- if (BurnLoadRomExt(DrvGfxROM0 + 0x000002, 6, 5, LD_GROUP(2) | LD_REVERSE)) return 1;
-
- if (BurnLoadRomExt(DrvGfxROM1 + 0x000000, 7, 8, 2)) return 1;
- if (BurnLoadRomExt(DrvGfxROM1 + 0x000002, 8, 8, 2)) return 1;
- if (BurnLoadRomExt(DrvGfxROM1 + 0x000004, 9, 8, 2)) return 1;
- if (BurnLoadRomExt(DrvGfxROM1 + 0x000006, 10, 8, 2)) return 1;
-
- if (BurnLoadRom(DrvGfxROM2 + 0x000000, 11, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x080000, 12, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x100000, 13, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM3 + 0x000000, 14, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM3 + 0x020000, 15, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM3 + 0x060000, 16, 1)) return 1;
-
- if (BurnLoadRom(DrvSndROM + 0x000000, 17, 1)) return 1;
- if (BurnLoadRom(DrvSndROM + 0x200000, 18, 1)) return 1;
-
- if (BurnLoadRom(DrvEeprom + 0x000000, 19, 1)) return 1;
-
- decode_gfx1(DrvGfxROM0, DrvGfxROMExp0, 0x500000);
-
- Metamrph_sprite_decode();
- }
-
- K055555Init();
- K054338Init();
-
- K056832Init(DrvGfxROM0, DrvGfxROMExp0, 0x400000, metamrph_tile_callback);
- K056832SetGlobalOffsets(32, 16);
- K056832SetLayerOffsets(0, -2, 0);
- K056832SetLayerOffsets(1, 0, 0);
- K056832SetLayerOffsets(2, 2, 0);
- K056832SetLayerOffsets(3, 2, 0);
-
- K053247Init(DrvGfxROM1, DrvGfxROMExp1, 0x7fffff, gaiapolis_sprite_callback, 1);
- K053247SetSpriteOffset(7+(-24-79), -16-24);
-
- konamigx_mixer_init(0);
-// K054338_invert_alpha(0); // otherwise alpha blended roz is too light - sept.2.2016 - this breaks the "elevator/going down" level
-
- SekInit(0, 0x68000);
- SekOpen(0);
- SekMapMemory(Drv68KROM, 0x000000, 0x2fffff, MAP_ROM);
- SekMapMemory(DrvSpriteRam, 0x400000, 0x40ffff, MAP_ROM);
- SekMapMemory(DrvPalRAM, 0x420000, 0x421fff, MAP_RAM);
- SekMapMemory(DrvK053936Ctrl, 0x460000, 0x46001f, MAP_RAM);
- SekMapMemory(DrvK053936RAM, 0x470000, 0x470fff, MAP_RAM);
- SekMapMemory(Drv68KRAM, 0x600000, 0x60ffff, MAP_RAM);
- SekSetWriteWordHandler(0, dadandrn_main_write_word);
- SekSetWriteByteHandler(0, dadandrn_main_write_byte);
- SekSetReadWordHandler(0, dadandrn_main_read_word);
- SekSetReadByteHandler(0, dadandrn_main_read_byte);
- SekClose();
-
- ZetInit(0);
- ZetOpen(0);
- ZetMapMemory(DrvZ80ROM, 0x0000, 0x7fff, MAP_ROM);
- ZetMapMemory(DrvZ80RAM, 0xc000, 0xdfff, MAP_RAM);
- ZetSetWriteHandler(mystwarr_sound_write);
- ZetSetReadHandler(mystwarr_sound_read);
- ZetClose();
-
- EEPROMInit(&gaiapolis_eeprom_interface);
-
- {
- DrvGfxExpand(DrvGfxROM2 , 0x180000);
- pMystwarrRozBitmap = (UINT16*)BurnMalloc(((512 * 16) * 2) * (512 * 16) * 2);
- GaiapolisRozTilemapdraw();
-
- m_k053936_0_ctrl = (UINT16*)DrvK053936Ctrl;
- m_k053936_0_linectrl = (UINT16*)DrvK053936RAM;
- K053936GP_set_offset(0, -44, -17);
- }
-
- K054539Init(0, 48000, DrvSndROM, 0x400000);
- K054539SetRoute(0, BURN_SND_K054539_ROUTE_1, 1.00, BURN_SND_ROUTE_LEFT);
- K054539SetRoute(0, BURN_SND_K054539_ROUTE_2, 1.00, BURN_SND_ROUTE_RIGHT);
- K054539_set_gain(0, 0, 0.80);
- K054539_set_gain(0, 1, 0.80);
- K054539_set_gain(0, 2, 0.80);
- K054539_set_gain(0, 3, 0.80);
- K054539_set_gain(0, 4, 2.00);
- K054539_set_gain(0, 5, 2.00);
- K054539_set_gain(0, 6, 2.00);
- K054539_set_gain(0, 7, 2.00);
-
- K054539Init(1, 48000, DrvSndROM, 0x400000);
- K054539SetRoute(0, BURN_SND_K054539_ROUTE_1, 1.00, BURN_SND_ROUTE_LEFT);
- K054539SetRoute(0, BURN_SND_K054539_ROUTE_2, 1.00, BURN_SND_ROUTE_RIGHT);
- K054539_set_gain(1, 0, 0.50);
- K054539_set_gain(1, 1, 0.50);
- K054539_set_gain(1, 2, 0.50);
- K054539_set_gain(1, 3, 0.50);
- K054539_set_gain(1, 4, 0.50);
- K054539_set_gain(1, 5, 0.50);
- K054539_set_gain(1, 6, 0.50);
- K054539_set_gain(1, 7, 0.50);
-
- DrvDoReset();
-
- return 0;
-}
-
-// pre-draw the whole roz tilemap... needs a ton of ram!
-static void DadandrnRozTilemapdraw()
-{
- UINT8 *dat1 = DrvGfxROM3;
- UINT8 *dat2 = DrvGfxROM3 + 0x40000;
-
- K053936_external_bitmap = pMystwarrRozBitmap;
-
- for (INT32 offs = 0; offs < 512 * 512; offs++)
- {
- INT32 sx = (offs & 0x1ff) * 16;
- INT32 sy = (offs / 0x200) * 16;
-
- INT32 code = dat2[offs] | ((dat1[offs]&0x1f)<<8);
- INT32 flipx = (dat1[offs] & 0x40) ? 0x0f : 0;
-
- UINT8 *gfx = DrvGfxROM2 + (code * 0x100);
-
- UINT16 *dst = pMystwarrRozBitmap + sy * 0x2000 + sx;
-
- for (INT32 y = 0; y < 16; y++) {
- for (INT32 x = 0; x < 16; x++, gfx++) {
- dst[x^flipx] = gfx[0];
- }
- dst += 0x2000;
- }
- }
-}
-
-static INT32 DadandrnInit()
-{
- nGame = 6;
-
- GenericTilesInit();
-
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(Drv68KROM + 0x000001, 0, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x000000, 1, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x100001, 2, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x100000, 3, 2)) return 1;
-
- if (BurnLoadRom(DrvZ80ROM + 0x000000, 4, 1)) return 1;
-
- if (BurnLoadRomExt(DrvGfxROM0 + 0x000000, 5, 5, LD_GROUP(2) | LD_REVERSE)) return 1;
- if (BurnLoadRomExt(DrvGfxROM0 + 0x000002, 6, 5, LD_GROUP(2) | LD_REVERSE)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x000004, 7, 5)) return 1;
-
- if (BurnLoadRomExt(DrvGfxROM1 + 0x000000, 8, 8, 2)) return 1;
- if (BurnLoadRomExt(DrvGfxROM1 + 0x000002, 9, 8, 2)) return 1;
- if (BurnLoadRomExt(DrvGfxROM1 + 0x000004, 10, 8, 2)) return 1;
- if (BurnLoadRomExt(DrvGfxROM1 + 0x000006, 11, 8, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x800000, 12, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x800001, 13, 2)) return 1;
-
- if (BurnLoadRom(DrvGfxROM2 + 0x000000, 14, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x080000, 15, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x100000, 16, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM3 + 0x000000, 17, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM3 + 0x040000, 18, 1)) return 1;
-
- if (BurnLoadRom(DrvSndROM + 0x000000, 19, 1)) return 1;
- if (BurnLoadRom(DrvSndROM + 0x200000, 20, 1)) return 1;
-
- if (BurnLoadRom(DrvEeprom + 0x000000, 21, 1)) return 1;
-
- decode_gfx1(DrvGfxROM0, DrvGfxROMExp0, 0x500000);
-
- DecodeSprites(DrvGfxROM1, DrvGfxROMExp1, 0xa00000);
- }
-
- K055555Init();
- K054338Init();
-
- K056832Init(DrvGfxROM0, DrvGfxROMExp0, 0x400000, game5bpp_tile_callback);
- K056832SetGlobalOffsets(24, 17);
- K056832SetLayerOffsets(0, -2+4, 0);
- K056832SetLayerOffsets(1, 0+4, 0);
- K056832SetLayerOffsets(2, 2+4, 0);
- K056832SetLayerOffsets(3, 3+4, 0);
-
- K053247Init(DrvGfxROM1, DrvGfxROMExp1, 0x7fffff, gaiapolis_sprite_callback, 1);
- K053247SetSpriteOffset(-24-42, -17-22);
- K053247SetBpp(5);
-
- konamigx_mixer_init(0);
- konamigx_mixer_primode(1);
-
- SekInit(0, 0x68000);
- SekOpen(0);
- SekMapMemory(Drv68KROM, 0x000000, 0x1fffff, MAP_ROM);
- SekMapMemory(DrvSpriteRam, 0x400000, 0x40ffff, MAP_ROM);
- SekMapMemory(DrvPalRAM, 0x420000, 0x421fff, MAP_RAM);
- SekMapMemory(DrvK053936Ctrl, 0x460000, 0x46001f, MAP_RAM);
- SekMapMemory(DrvK053936RAM, 0x470000, 0x470fff, MAP_RAM);
- SekMapMemory(Drv68KRAM, 0x600000, 0x60ffff, MAP_RAM);
- SekSetWriteWordHandler(0, dadandrn_main_write_word);
- SekSetWriteByteHandler(0, dadandrn_main_write_byte);
- SekSetReadWordHandler(0, dadandrn_main_read_word);
- SekSetReadByteHandler(0, dadandrn_main_read_byte);
- SekClose();
-
- ZetInit(0);
- ZetOpen(0);
- ZetMapMemory(DrvZ80ROM, 0x0000, 0x7fff, MAP_ROM);
- ZetMapMemory(DrvZ80RAM, 0xc000, 0xdfff, MAP_RAM);
- ZetSetWriteHandler(mystwarr_sound_write);
- ZetSetReadHandler(mystwarr_sound_read);
- ZetClose();
-
- EEPROMInit(&mystwarr_eeprom_interface);
-
- {
- pMystwarrRozBitmap = (UINT16*)BurnMalloc(((512 * 16) * 2) * (512 * 16) * 2);
- DadandrnRozTilemapdraw();
-
- m_k053936_0_ctrl = (UINT16*)DrvK053936Ctrl;
- m_k053936_0_linectrl = (UINT16*)DrvK053936RAM;
- K053936GP_set_offset(0, -24-8, -17);
- }
-
- K054539Init(0, 48000, DrvSndROM, 0x400000);
- K054539SetRoute(0, BURN_SND_K054539_ROUTE_1, 1.00, BURN_SND_ROUTE_LEFT);
- K054539SetRoute(0, BURN_SND_K054539_ROUTE_2, 1.00, BURN_SND_ROUTE_RIGHT);
- K054539_set_gain(0, 0, 1.00);
- K054539_set_gain(0, 1, 1.00);
- K054539_set_gain(0, 2, 1.00);
- K054539_set_gain(0, 3, 1.00);
- K054539_set_gain(0, 4, 2.00);
- K054539_set_gain(0, 5, 2.00);
- K054539_set_gain(0, 6, 2.00);
- K054539_set_gain(0, 7, 2.00);
-
- K054539Init(1, 48000, DrvSndROM, 0x400000);
- K054539SetRoute(0, BURN_SND_K054539_ROUTE_1, 1.00, BURN_SND_ROUTE_LEFT);
- K054539SetRoute(0, BURN_SND_K054539_ROUTE_2, 1.00, BURN_SND_ROUTE_RIGHT);
- K054539_set_gain(1, 0, 1.00);
- K054539_set_gain(1, 1, 1.00);
- K054539_set_gain(1, 2, 1.00);
- K054539_set_gain(1, 3, 1.00);
- K054539_set_gain(1, 4, 1.00);
- K054539_set_gain(1, 5, 1.00);
- K054539_set_gain(1, 6, 1.00);
- K054539_set_gain(1, 7, 1.00);
-
- DrvDoReset();
-
- return 0;
-}
-
-static INT32 DrvExit()
-{
- GenericTilesExit();
-
- KonamiICExit();
-
- konamigx_mixer_exit();
-
- SekExit();
- ZetExit();
-
- EEPROMExit();
-
- K054539Exit();
-
- BurnFree (AllMem);
- if (pMystwarrRozBitmap) {
- BurnFree (pMystwarrRozBitmap);
- pMystwarrRozBitmap = NULL;
- }
- return 0;
-}
-
-static void DrvPaletteRecalc()
-{
- UINT16 *pal = (UINT16*)DrvPalRAM;
-
- for (INT32 i = 0; i < 0x2000/2; i+=2)
- {
- INT32 r = pal[i+0] & 0xff;
- INT32 g = pal[i+1] >> 8;
- INT32 b = pal[i+1] & 0xff;
-
- DrvPalette[i/2] = (r << 16) + (g << 8) + b;
- }
-}
-
-static INT32 DrvDraw()
-{
- DrvPaletteRecalc();
-
- KonamiClearBitmaps(0);
-
- for (INT32 i = 0; i < 4; i++) {
- layer_colorbase[i] = K055555GetPaletteIndex(i)<<4;
- }
-
- INT32 blendmode = 0, enable_sub = 0;
-
- if (nGame == 1) { // mystwarr
- blendmode = 0;
- cbparam = 0; // ?
- sprite_colorbase = K055555GetPaletteIndex(4)<<5;
- }
-
- if (nGame == 2 || nGame == 3) { // viostorm / metamrph
- blendmode = GXSUB_K053250 | GXSUB_4BPP;
- sprite_colorbase = K055555GetPaletteIndex(4)<<4;
- }
-
- if (nGame == 4) { // mtlchamp
- cbparam = K055555ReadRegister(K55_PRIINP_8);
- oinprion = K055555ReadRegister(K55_OINPRI_ON);
-
- blendmode = (oinprion==0xef && K054338_read_register(K338_REG_PBLEND)) ? ((1<<16|GXMIX_BLEND_FORCE)<<2) : 0;
- sprite_colorbase = K055555GetPaletteIndex(4)<<5;
- }
-
- if (nGame == 5) // gaiapolis
- {
- sprite_colorbase = (K055555GetPaletteIndex(4)<<4)&0x7f;
- sub1_colorbase = (K055555GetPaletteIndex(5)<<8)&0x700;
- blendmode = GXSUB_4BPP;
- K053936GP_set_colorbase(0, sub1_colorbase);
- enable_sub = 1;
- }
-
- if (nGame == 6) // dadandrn
- {
- sprite_colorbase = (K055555GetPaletteIndex(4)<<3)&0x7f;
- sub1_colorbase = (K055555GetPaletteIndex(5)<<8)&0x700;
- blendmode = GXSUB_8BPP;
- K053936GP_set_colorbase(0, sub1_colorbase);
- enable_sub = 1;
- }
-
- konamigx_mixer(enable_sub, blendmode, 0, 0, 0, 0, 0);
-
- KonamiBlendCopy(DrvPalette);
-
- return 0;
-}
-
-static INT32 DrvFrame()
-{
- if (DrvReset) {
- DrvDoReset();
- }
-
- {
- memset (DrvInputs, 0xff, 5 * sizeof(INT16));
- for (INT32 i = 0; i < 16; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- DrvInputs[2] ^= (DrvJoy3[i] & 1) << i;
- DrvInputs[3] ^= (DrvJoy4[i] & 1) << i;
- DrvInputs[4] ^= (DrvJoy5[i] & 1) << i;
- }
-
- DrvInputs[1] = DrvDips[0] | (DrvInputs[1] & 0xff00) | 2;
- }
-
- SekNewFrame();
- ZetNewFrame();
-
- INT32 nInterleave = 60;
- INT32 nCyclesTotal[2] = { 16000000 / 60, 8000000 / 60 };
- INT32 nCyclesDone[2] = { 0, 0 };
-
- SekOpen(0);
- ZetOpen(0);
-
- for (INT32 i = 0; i < nInterleave; i++) {
- INT32 nNext, nCyclesSegment;
-
- if (nGame == 1)
- {
- if (mw_irq_control & 1)
- {
- if (i == 0)
- SekSetIRQLine(4, CPU_IRQSTATUS_AUTO);
-
- if (i == ((nInterleave * (240+10))/256)) // +10 otherwise flickers on char.selection screen (mystwarr)
- SekSetIRQLine(2, CPU_IRQSTATUS_AUTO);
- }
- }
-
- if (nGame == 2 || nGame == 3)
- {
- if (i == 0) // otherwise service mode doesn't work!
- SekSetIRQLine(4, CPU_IRQSTATUS_AUTO);
-
- if (i == ((nInterleave * 24) / 256))
- SekSetIRQLine(6, CPU_IRQSTATUS_AUTO);
-
- if (i == ((nInterleave * 248) / 256) && K053246_is_IRQ_enabled())
- SekSetIRQLine(5, CPU_IRQSTATUS_AUTO);
- }
-
- if (nGame == 4) // martchmp
- {
- if (mw_irq_control & 2)
- {
- if (i == ((nInterleave * 23) / 256))
- SekSetIRQLine(2, CPU_IRQSTATUS_AUTO);
-
- if (i == ((nInterleave * 47) / 256) && K053246_is_IRQ_enabled())
- SekSetIRQLine(6, CPU_IRQSTATUS_AUTO);
- }
- }
-
- if (nGame == 5 || nGame == 6)
- {
- if (i == (nInterleave - 1))
- SekSetIRQLine(5, CPU_IRQSTATUS_AUTO);
- }
-
- nNext = (i + 1) * nCyclesTotal[0] / nInterleave;
- nCyclesSegment = nNext - nCyclesDone[0];
- nCyclesSegment = SekRun(nCyclesSegment);
- nCyclesDone[0] += nCyclesSegment;
-
-
- nNext = (i + 1) * nCyclesTotal[1] / nInterleave;
- nCyclesSegment = nNext - nCyclesDone[1];
- nCyclesSegment = ZetRun(nCyclesSegment);
- nCyclesDone[1] += nCyclesSegment;
-
- if ((i % (nInterleave / 8)) == ((nInterleave / 8) - 1)) {// && sound_nmi_enable && sound_control) { // iq_132
- ZetNmi();
- }
- }
-
- if (pBurnSoundOut) {
- memset (pBurnSoundOut, 0, nBurnSoundLen * 2 * 2);
- K054539Update(0, pBurnSoundOut, nBurnSoundLen);
- K054539Update(1, pBurnSoundOut, nBurnSoundLen);
- }
-
- ZetClose();
- SekClose();
-
- if (pBurnDraw) {
- DrvDraw();
- }
-
- return 0;
-}
-
-static INT32 DrvScan(INT32 nAction, INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin) {
- *pnMin = 0x029732;
- }
-
- if (nAction & ACB_VOLATILE) {
- memset(&ba, 0, sizeof(ba));
-
- ba.Data = AllRam;
- ba.nLen = RamEnd - AllRam;
- ba.szName = "All Ram";
- BurnAcb(&ba);
-
- SekScan(nAction);
- ZetScan(nAction);
-
- K054539Scan(nAction);
- KonamiICScan(nAction);
-
- SCAN_VAR(sound_nmi_enable);
- SCAN_VAR(sound_control);
- SCAN_VAR(control_data);
- SCAN_VAR(mw_irq_control);
- SCAN_VAR(prot_data);
- SCAN_VAR(layer_colorbase);
- SCAN_VAR(sprite_colorbase);
- SCAN_VAR(sub1_colorbase);
- SCAN_VAR(cbparam);
- SCAN_VAR(oinprion);
- SCAN_VAR(z80_bank);
-
- BurnRandomScan(nAction);
- }
-
- if (nAction & ACB_WRITE) {
- ZetOpen(0);
- bankswitch(z80_bank);
- ZetClose();
- }
-
- EEPROMScan(nAction, pnMin);
-
- return 0;
-}
-
-
-// Mystic Warriors (ver EAA)
-
-static struct BurnRomInfo mystwarrRomDesc[] = {
- { "128eaa01.20f", 0x040000, 0x508f249c, 1 }, // 0 maincpu
- { "128eaa02.20g", 0x040000, 0xf8ffa352, 1 }, // 1
- { "128a03.19f", 0x080000, 0xe98094f3, 1 }, // 2
- { "128a04.19g", 0x080000, 0x88c6a3e4, 1 }, // 3
-
- { "128a05.6b", 0x020000, 0x0e5194e0, 2 }, // 4 soundcpu
-
- { "128a08.1h", 0x100000, 0x63d6cfa0, 3 }, // 5 gfx1
- { "128a09.1k", 0x100000, 0x573a7725, 3 }, // 6
- { "128a10.3h", 0x080000, 0x558e545a, 3 }, // 7
-
- { "128a16.22k", 0x100000, 0x459b6407, 4 }, // 8 gfx2
- { "128a15.20k", 0x100000, 0x6bbfedf4, 4 }, // 9
- { "128a14.19k", 0x100000, 0xf7bd89dd, 4 }, // 10
- { "128a13.17k", 0x100000, 0xe89b66a2, 4 }, // 11
- { "128a12.12k", 0x080000, 0x63de93e2, 4 }, // 12
- { "128a11.10k", 0x080000, 0x4eac941a, 4 }, // 13
-
- { "128a06.2d", 0x200000, 0x88ed598c, 5 }, // 14 shared
- { "128a07.1d", 0x200000, 0xdb79a66e, 5 }, // 15
-
- { "mystwarr.nv", 0x000080, 0x28df2269, 6 }, // 16 eeprom
-};
-
-STD_ROM_PICK(mystwarr)
-STD_ROM_FN(mystwarr)
-
-struct BurnDriver BurnDrvMystwarr = {
- "mystwarr", NULL, NULL, NULL, "1993",
- "Mystic Warriors (ver EAA)\0", NULL, "Konami", "GX128",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_PREFIX_KONAMI, GBF_SCRFIGHT, 0,
- NULL, mystwarrRomInfo, mystwarrRomName, NULL, NULL, MystwarrInputInfo, MystwarrDIPInfo,
- MystwarrInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x0800,
- 288, 224, 4, 3
-};
-
-
-// Mystic Warriors (ver UAA)
-
-static struct BurnRomInfo mystwarruRomDesc[] = {
- { "128uaa01.20f", 0x040000, 0x3a89aafd, 1 }, // 0 maincpu
- { "128uaa02.20g", 0x040000, 0xde07410f, 1 }, // 1
- { "128a03.19f", 0x080000, 0xe98094f3, 1 }, // 2
- { "128a04.19g", 0x080000, 0x88c6a3e4, 1 }, // 3
-
- { "128a05.6b", 0x020000, 0x0e5194e0, 2 }, // 4 soundcpu
-
- { "128a08.1h", 0x100000, 0x63d6cfa0, 3 }, // 5 gfx1
- { "128a09.1k", 0x100000, 0x573a7725, 3 }, // 6
- { "128a10.3h", 0x080000, 0x558e545a, 3 }, // 7
-
- { "128a16.22k", 0x100000, 0x459b6407, 4 }, // 8 gfx2
- { "128a15.20k", 0x100000, 0x6bbfedf4, 4 }, // 9
- { "128a14.19k", 0x100000, 0xf7bd89dd, 4 }, // 10
- { "128a13.17k", 0x100000, 0xe89b66a2, 4 }, // 11
- { "128a12.12k", 0x080000, 0x63de93e2, 4 }, // 12
- { "128a11.10k", 0x080000, 0x4eac941a, 4 }, // 13
-
- { "128a06.2d", 0x200000, 0x88ed598c, 5 }, // 14 shared
- { "128a07.1d", 0x200000, 0xdb79a66e, 5 }, // 15
-
- { "mystwarru.nv", 0x000080, 0x1a2597c7, 6 }, // 16 eeprom
-};
-
-STD_ROM_PICK(mystwarru)
-STD_ROM_FN(mystwarru)
-
-struct BurnDriver BurnDrvMystwarru = {
- "mystwarru", "mystwarr", NULL, NULL, "1993",
- "Mystic Warriors (ver UAA)\0", NULL, "Konami", "GX128",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_KONAMI, GBF_SCRFIGHT, 0,
- NULL, mystwarruRomInfo, mystwarruRomName, NULL, NULL, MystwarrInputInfo, MystwarrDIPInfo,
- MystwarrInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x0800,
- 288, 224, 4, 3
-};
-
-
-// Mystic Warriors (ver JAA)
-
-static struct BurnRomInfo mystwarrjRomDesc[] = {
- { "128jaa01.20f", 0x040000, 0x49c37bfe, 1 }, // 0 maincpu
- { "128jaa02.20g", 0x040000, 0xe39fb3bb, 1 }, // 1
- { "128a03.19f", 0x080000, 0xe98094f3, 1 }, // 2
- { "128a04.19g", 0x080000, 0x88c6a3e4, 1 }, // 3
-
- { "128a05.6b", 0x020000, 0x0e5194e0, 2 }, // 4 soundcpu
-
- { "128a08.1h", 0x100000, 0x63d6cfa0, 3 }, // 5 gfx1
- { "128a09.1k", 0x100000, 0x573a7725, 3 }, // 6
- { "128a10.3h", 0x080000, 0x558e545a, 3 }, // 7
-
- { "128a16.22k", 0x100000, 0x459b6407, 4 }, // 8 gfx2
- { "128a15.20k", 0x100000, 0x6bbfedf4, 4 }, // 9
- { "128a14.19k", 0x100000, 0xf7bd89dd, 4 }, // 10
- { "128a13.17k", 0x100000, 0xe89b66a2, 4 }, // 11
- { "128a12.12k", 0x080000, 0x63de93e2, 4 }, // 12
- { "128a11.10k", 0x080000, 0x4eac941a, 4 }, // 13
-
- { "128a06.2d", 0x200000, 0x88ed598c, 5 }, // 14 shared
- { "128a07.1d", 0x200000, 0xdb79a66e, 5 }, // 15
-
- { "mystwarrj.nv", 0x000080, 0x8e259918, 6 }, // 16 eeprom
-};
-
-STD_ROM_PICK(mystwarrj)
-STD_ROM_FN(mystwarrj)
-
-struct BurnDriver BurnDrvMystwarrj = {
- "mystwarrj", "mystwarr", NULL, NULL, "1993",
- "Mystic Warriors (ver JAA)\0", NULL, "Konami", "GX128",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_KONAMI, GBF_SCRFIGHT, 0,
- NULL, mystwarrjRomInfo, mystwarrjRomName, NULL, NULL, MystwarrInputInfo, MystwarrDIPInfo,
- MystwarrInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x0800,
- 288, 224, 4, 3
-};
-
-
-// Mystic Warriors (ver AAB)
-
-static struct BurnRomInfo mystwarraRomDesc[] = {
- { "128aab01.20f", 0x040000, 0x3dc89153, 1 }, // 0 maincpu
- { "128aab02.20g", 0x040000, 0x8fe92ad2, 1 }, // 1
- { "128a03.19f", 0x080000, 0xe98094f3, 1 }, // 2
- { "128a04.19g", 0x080000, 0x88c6a3e4, 1 }, // 3
-
- { "128a05.6b", 0x020000, 0x0e5194e0, 2 }, // 4 soundcpu
-
- { "128a08.1h", 0x100000, 0x63d6cfa0, 3 }, // 5 gfx1
- { "128a09.1k", 0x100000, 0x573a7725, 3 }, // 6
- { "128a10.3h", 0x080000, 0x558e545a, 3 }, // 7
-
- { "128a16.22k", 0x100000, 0x459b6407, 4 }, // 8 gfx2
- { "128a15.20k", 0x100000, 0x6bbfedf4, 4 }, // 9
- { "128a14.19k", 0x100000, 0xf7bd89dd, 4 }, // 10
- { "128a13.17k", 0x100000, 0xe89b66a2, 4 }, // 11
- { "128a12.12k", 0x080000, 0x63de93e2, 4 }, // 12
- { "128a11.10k", 0x080000, 0x4eac941a, 4 }, // 13
-
- { "128a06.2d", 0x200000, 0x88ed598c, 5 }, // 14 shared
- { "128a07.1d", 0x200000, 0xdb79a66e, 5 }, // 15
-
- { "eeprom", 0x000080, 0xfd6a25b4, 6 }, // 16 eeprom
-};
-
-STD_ROM_PICK(mystwarra)
-STD_ROM_FN(mystwarra)
-
-struct BurnDriver BurnDrvMystwarra = {
- "mystwarra", "mystwarr", NULL, NULL, "1993",
- "Mystic Warriors (ver AAB)\0", NULL, "Konami", "GX128",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_KONAMI, GBF_SCRFIGHT, 0,
- NULL, mystwarraRomInfo, mystwarraRomName, NULL, NULL, MystwarrInputInfo, MystwarrDIPInfo,
- MystwarrInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x0800,
- 288, 224, 4, 3
-};
-
-
-// Mystic Warriors (ver AAA)
-
-static struct BurnRomInfo mystwarraaRomDesc[] = {
- { "128aaa01.20f", 0x040000, 0x633ead86, 1 }, // 0 maincpu
- { "128aaa02.20g", 0x040000, 0x69ab81a2, 1 }, // 1
- { "128a03.19f", 0x080000, 0xe98094f3, 1 }, // 2
- { "128a04.19g", 0x080000, 0x88c6a3e4, 1 }, // 3
-
- { "128a05.6b", 0x020000, 0x0e5194e0, 2 }, // 4 soundcpu
-
- { "128a08.1h", 0x100000, 0x63d6cfa0, 3 }, // 5 gfx1
- { "128a09.1k", 0x100000, 0x573a7725, 3 }, // 6
- { "128a10.3h", 0x080000, 0x558e545a, 3 }, // 7
-
- { "128a16.22k", 0x100000, 0x459b6407, 4 }, // 8 gfx2
- { "128a15.20k", 0x100000, 0x6bbfedf4, 4 }, // 9
- { "128a14.19k", 0x100000, 0xf7bd89dd, 4 }, // 10
- { "128a13.17k", 0x100000, 0xe89b66a2, 4 }, // 11
- { "128a12.12k", 0x080000, 0x63de93e2, 4 }, // 12
- { "128a11.10k", 0x080000, 0x4eac941a, 4 }, // 13
-
- { "128a06.2d", 0x200000, 0x88ed598c, 5 }, // 14 shared
- { "128a07.1d", 0x200000, 0xdb79a66e, 5 }, // 15
-
- { "mystwarra.nv", 0x000080, 0x38951263, 6 }, // 16 eeprom
-};
-
-STD_ROM_PICK(mystwarraa)
-STD_ROM_FN(mystwarraa)
-
-struct BurnDriver BurnDrvMystwarraa = {
- "mystwarraa", "mystwarr", NULL, NULL, "1993",
- "Mystic Warriors (ver AAA)\0", NULL, "Konami", "GX128",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_KONAMI, GBF_SCRFIGHT, 0,
- NULL, mystwarraaRomInfo, mystwarraaRomName, NULL, NULL, MystwarrInputInfo, MystwarrDIPInfo,
- MystwarrInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x0800,
- 288, 224, 4, 3
-};
-
-
-// Violent Storm (ver EAC)
-
-static struct BurnRomInfo viostormRomDesc[] = {
- { "168eac01.15h", 0x080000, 0x9f6b5c81, 1 }, // 0 maincpu
- { "168eac02.15f", 0x080000, 0x126ecf03, 1 }, // 1
-
- { "168a05.7c", 0x020000, 0x507fb3eb, 2 }, // 2 soundcpu
-
- { "168a09.1h", 0x200000, 0x1b34a881, 3 }, // 3 gfx1
- { "168a08.1k", 0x200000, 0xdb0ce743, 3 }, // 4
-
- { "168a10.22k", 0x200000, 0xbd2bbdea, 4 }, // 5 gfx2
- { "168a11.19k", 0x200000, 0x7a57c9e7, 4 }, // 6
- { "168a12.20k", 0x200000, 0xb6b1c4ef, 4 }, // 7
- { "168a13.17k", 0x200000, 0xcdec3650, 4 }, // 8
-
- { "168a06.1c", 0x200000, 0x25404fd7, 5 }, // 9 shared
- { "168a07.1e", 0x200000, 0xfdbbf8cc, 5 }, // 10
-
- { "viostorm.nv", 0x000080, 0x3cb1c96c, 6 }, // 11 eeprom
-};
-
-STD_ROM_PICK(viostorm)
-STD_ROM_FN(viostorm)
-
-struct BurnDriver BurnDrvViostorm = {
- "viostorm", NULL, NULL, NULL, "1993",
- "Violent Storm (ver EAC)\0", NULL, "Konami", "GX224",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_PREFIX_KONAMI, GBF_SCRFIGHT, 0,
- NULL, viostormRomInfo, viostormRomName, NULL, NULL, ViostormInputInfo, ViostormDIPInfo,
- ViostormInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 384, 224, 4, 3
-};
-
-
-// Violent Storm (ver EAB)
-
-static struct BurnRomInfo viostormebRomDesc[] = {
- { "168eab01.15h", 0x080000, 0x4eee6a8e, 1 }, // 0 maincpu
- { "168eab02.15f", 0x080000, 0x8dd8aa4c, 1 }, // 1
-
- { "168a05.7c", 0x020000, 0x507fb3eb, 2 }, // 2 soundcpu
-
- { "168a09.1h", 0x200000, 0x1b34a881, 3 }, // 3 gfx1
- { "168a08.1k", 0x200000, 0xdb0ce743, 3 }, // 4
-
- { "168a10.22k", 0x200000, 0xbd2bbdea, 4 }, // 5 gfx2
- { "168a11.19k", 0x200000, 0x7a57c9e7, 4 }, // 6
- { "168a12.20k", 0x200000, 0xb6b1c4ef, 4 }, // 7
- { "168a13.17k", 0x200000, 0xcdec3650, 4 }, // 8
-
- { "168a06.1c", 0x200000, 0x25404fd7, 5 }, // 9 shared
- { "168a07.1e", 0x200000, 0xfdbbf8cc, 5 }, // 10
-
- { "viostormeb.nv", 0x000080, 0x28b5fe49, 6 }, // 11 eeprom
-};
-
-STD_ROM_PICK(viostormeb)
-STD_ROM_FN(viostormeb)
-
-struct BurnDriver BurnDrvViostormeb = {
- "viostormeb", "viostorm", NULL, NULL, "1993",
- "Violent Storm (ver EAB)\0", NULL, "Konami", "GX168",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_KONAMI, GBF_SCRFIGHT, 0,
- NULL, viostormebRomInfo, viostormebRomName, NULL, NULL, ViostormInputInfo, ViostormDIPInfo,
- ViostormInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 384, 224, 4, 3
-};
-
-
-// Violent Storm (ver UAC)
-
-static struct BurnRomInfo viostormuRomDesc[] = {
- { "168uac01.15h", 0x080000, 0x49853530, 1 }, // 0 maincpu
- { "168uac02.15f", 0x080000, 0x055ca6fe, 1 }, // 1
-
- { "168a05.7c", 0x020000, 0x507fb3eb, 2 }, // 2 soundcpu
-
- { "168a09.1h", 0x200000, 0x1b34a881, 3 }, // 3 gfx1
- { "168a08.1k", 0x200000, 0xdb0ce743, 3 }, // 4
-
- { "168a10.22k", 0x200000, 0xbd2bbdea, 4 }, // 5 gfx2
- { "168a11.19k", 0x200000, 0x7a57c9e7, 4 }, // 6
- { "168a12.20k", 0x200000, 0xb6b1c4ef, 4 }, // 7
- { "168a13.17k", 0x200000, 0xcdec3650, 4 }, // 8
-
- { "168a06.1c", 0x200000, 0x25404fd7, 5 }, // 9 shared
- { "168a07.1e", 0x200000, 0xfdbbf8cc, 5 }, // 10
-
- { "viostormu.nv", 0x000080, 0x797042a1, 6 }, // 11 eeprom
-};
-
-STD_ROM_PICK(viostormu)
-STD_ROM_FN(viostormu)
-
-struct BurnDriver BurnDrvViostormu = {
- "viostormu", "viostorm", NULL, NULL, "1993",
- "Violent Storm (ver UAC)\0", NULL, "Konami", "GX168",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_KONAMI, GBF_SCRFIGHT, 0,
- NULL, viostormuRomInfo, viostormuRomName, NULL, NULL, ViostormInputInfo, ViostormDIPInfo,
- ViostormInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 384, 224, 4, 3
-};
-
-
-// Violent Storm (ver UAB)
-
-static struct BurnRomInfo viostormubRomDesc[] = {
- { "168uab01.15h", 0x080000, 0x2d6a9fa3, 1 }, // 0 maincpu
- { "168uab02.15f", 0x080000, 0x0e75f7cc, 1 }, // 1
-
- { "168a05.7c", 0x020000, 0x507fb3eb, 2 }, // 2 soundcpu
-
- { "168a09.1h", 0x200000, 0x1b34a881, 3 }, // 3 gfx1
- { "168a08.1k", 0x200000, 0xdb0ce743, 3 }, // 4
-
- { "168a10.22k", 0x200000, 0xbd2bbdea, 4 }, // 5 gfx2
- { "168a11.19k", 0x200000, 0x7a57c9e7, 4 }, // 6
- { "168a12.20k", 0x200000, 0xb6b1c4ef, 4 }, // 7
- { "168a13.17k", 0x200000, 0xcdec3650, 4 }, // 8
-
- { "168a06.1c", 0x200000, 0x25404fd7, 5 }, // 9 shared
- { "168a07.1e", 0x200000, 0xfdbbf8cc, 5 }, // 10
-
- { "viostormub.nv", 0x000080, 0xb6937413, 6 }, // 11 eeprom
-};
-
-STD_ROM_PICK(viostormub)
-STD_ROM_FN(viostormub)
-
-struct BurnDriver BurnDrvViostormub = {
- "viostormub", "viostorm", NULL, NULL, "1993",
- "Violent Storm (ver UAB)\0", NULL, "Konami", "GX168",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_KONAMI, GBF_SCRFIGHT, 0,
- NULL, viostormubRomInfo, viostormubRomName, NULL, NULL, ViostormInputInfo, ViostormDIPInfo,
- ViostormInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 384, 224, 4, 3
-};
-
-
-// Violent Storm (ver AAC)
-
-static struct BurnRomInfo viostormaRomDesc[] = {
- { "168aac01.15h", 0x080000, 0x3620635c, 1 }, // 0 maincpu
- { "168aac02.15f", 0x080000, 0xdb679aec, 1 }, // 1
-
- { "168a05.7c", 0x020000, 0x507fb3eb, 2 }, // 2 soundcpu
-
- { "168a09.1h", 0x200000, 0x1b34a881, 3 }, // 3 gfx1
- { "168a08.1k", 0x200000, 0xdb0ce743, 3 }, // 4
-
- { "168a10.22k", 0x200000, 0xbd2bbdea, 4 }, // 5 gfx2
- { "168a11.19k", 0x200000, 0x7a57c9e7, 4 }, // 6
- { "168a12.20k", 0x200000, 0xb6b1c4ef, 4 }, // 7
- { "168a13.17k", 0x200000, 0xcdec3650, 4 }, // 8
-
- { "168a06.1c", 0x200000, 0x25404fd7, 5 }, // 9 shared
- { "168a07.1e", 0x200000, 0xfdbbf8cc, 5 }, // 10
-
- { "viostorma.nv", 0x000080, 0x2cfbf966, 6 }, // 11 eeprom
-};
-
-STD_ROM_PICK(viostorma)
-STD_ROM_FN(viostorma)
-
-struct BurnDriver BurnDrvViostorma = {
- "viostorma", "viostorm", NULL, NULL, "1993",
- "Violent Storm (ver AAC)\0", NULL, "Konami", "GX168",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_KONAMI, GBF_SCRFIGHT, 0,
- NULL, viostormaRomInfo, viostormaRomName, NULL, NULL, ViostormInputInfo, ViostormDIPInfo,
- ViostormInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 384, 224, 4, 3
-};
-
-
-// Violent Storm (ver AAB)
-
-static struct BurnRomInfo viostormabRomDesc[] = {
- { "168aab01.15h", 0x080000, 0x14f78423, 1 }, // 0 maincpu
- { "168aab02.15f", 0x080000, 0x3dd1cc83, 1 }, // 1
-
- { "168a05.7c", 0x020000, 0x507fb3eb, 2 }, // 2 soundcpu
-
- { "168a09.1h", 0x200000, 0x1b34a881, 3 }, // 3 gfx1
- { "168a08.1k", 0x200000, 0xdb0ce743, 3 }, // 4
-
- { "168a10.22k", 0x200000, 0xbd2bbdea, 4 }, // 5 gfx2
- { "168a11.19k", 0x200000, 0x7a57c9e7, 4 }, // 6
- { "168a12.20k", 0x200000, 0xb6b1c4ef, 4 }, // 7
- { "168a13.17k", 0x200000, 0xcdec3650, 4 }, // 8
-
- { "168a06.1c", 0x200000, 0x25404fd7, 5 }, // 9 shared
- { "168a07.1e", 0x200000, 0xfdbbf8cc, 5 }, // 10
-
- { "viostormab.nv", 0x000080, 0x38ffce43, 6 }, // 11 eeprom
-};
-
-STD_ROM_PICK(viostormab)
-STD_ROM_FN(viostormab)
-
-struct BurnDriver BurnDrvViostormab = {
- "viostormab", "viostorm", NULL, NULL, "1993",
- "Violent Storm (ver AAB)\0", NULL, "Konami", "GX168",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_KONAMI, GBF_SCRFIGHT, 0,
- NULL, viostormabRomInfo, viostormabRomName, NULL, NULL, ViostormInputInfo, ViostormDIPInfo,
- ViostormInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 384, 224, 4, 3
-};
-
-
-// Violent Storm (ver JAC)
-
-static struct BurnRomInfo viostormjRomDesc[] = {
- { "168jac01.b01", 0x080000, 0xf8be1225, 1 }, // 0 maincpu
- { "168jac02.b02", 0x080000, 0xf42fd1e5, 1 }, // 1
-
- { "168a05.7c", 0x020000, 0x507fb3eb, 2 }, // 2 soundcpu
-
- { "168a09.1h", 0x200000, 0x1b34a881, 3 }, // 3 gfx1
- { "168a08.1k", 0x200000, 0xdb0ce743, 3 }, // 4
-
- { "168a10.22k", 0x200000, 0xbd2bbdea, 4 }, // 5 gfx2
- { "168a11.19k", 0x200000, 0x7a57c9e7, 4 }, // 6
- { "168a12.20k", 0x200000, 0xb6b1c4ef, 4 }, // 7
- { "168a13.17k", 0x200000, 0xcdec3650, 4 }, // 8
-
- { "168a06.1c", 0x200000, 0x25404fd7, 5 }, // 9 shared
- { "168a07.1e", 0x200000, 0xfdbbf8cc, 5 }, // 10
-
- { "viostormj.nv", 0x000080, 0x32f5d8bc, 6 }, // 11 eeprom
-};
-
-STD_ROM_PICK(viostormj)
-STD_ROM_FN(viostormj)
-
-struct BurnDriver BurnDrvViostormj = {
- "viostormj", "viostorm", NULL, NULL, "1993",
- "Violent Storm (ver JAC)\0", NULL, "Konami", "GX168",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_KONAMI, GBF_SCRFIGHT, 0,
- NULL, viostormjRomInfo, viostormjRomName, NULL, NULL, ViostormInputInfo, ViostormDIPInfo,
- ViostormInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 384, 224, 4, 3
-};
-
-
-// Metamorphic Force (ver EAA)
-
-static struct BurnRomInfo metamrphRomDesc[] = {
- { "224eaa01.15h", 0x040000, 0x30962c2b, 1 }, // 0 maincpu
- { "224eaa02.15f", 0x040000, 0xe314330a, 1 }, // 1
- { "224a03", 0x080000, 0xa5bedb01, 1 }, // 2
- { "224a04", 0x080000, 0xada53ba4, 1 }, // 3
-
- { "224a05", 0x040000, 0x4b4c985c, 2 }, // 4 soundcpu
-
- { "224a09", 0x100000, 0x1931afce, 3 }, // 5 gfx1
- { "224a08", 0x100000, 0xdc94d53a, 3 }, // 6
-
- { "224a10", 0x200000, 0x161287f0, 4 }, // 7 gfx2
- { "224a11", 0x200000, 0xdf5960e1, 4 }, // 8
- { "224a12", 0x200000, 0xca72a4b3, 4 }, // 9
- { "224a13", 0x200000, 0x86b58feb, 4 }, // 10
-
- { "224a14", 0x040000, 0x3c79b404, 5 }, // 11 k053250_1
-
- { "224a06", 0x200000, 0x972f6abe, 6 }, // 12 shared
- { "224a07", 0x100000, 0x61b2f97a, 6 }, // 13
-
- { "metamrph.nv", 0x000080, 0x2c51229a, 7 }, // 14 eeprom
-};
-
-STD_ROM_PICK(metamrph)
-STD_ROM_FN(metamrph)
-
-struct BurnDriver BurnDrvMetamrph = {
- "metamrph", NULL, NULL, NULL, "1993",
- "Metamorphic Force (ver EAA)\0", NULL, "Konami", "GX224",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_PREFIX_KONAMI, GBF_SCRFIGHT, 0,
- NULL, metamrphRomInfo, metamrphRomName, NULL, NULL, MetamrphInputInfo, MetamrphDIPInfo,
- MetamrphInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x0800,
- 288, 224, 4, 3
-};
-
-
-// Metamorphic Force (ver EAA - alternate)
-/* alternate set - possibly a bugfix version. Only 2 adjusted bytes causing a swap in commands */
-
-static struct BurnRomInfo metamrpheRomDesc[] = {
- { "3.15h", 0x040000, 0x8b9f1ba3, 1 }, // 0 maincpu
- { "224eaa02.15f", 0x040000, 0xe314330a, 1 }, // 1
- { "224a03", 0x080000, 0xa5bedb01, 1 }, // 2
- { "224a04", 0x080000, 0xada53ba4, 1 }, // 3
-
- { "224a05", 0x040000, 0x4b4c985c, 2 }, // 4 soundcpu
-
- { "224a09", 0x100000, 0x1931afce, 3 }, // 5 gfx1
- { "224a08", 0x100000, 0xdc94d53a, 3 }, // 6
-
- { "224a10", 0x200000, 0x161287f0, 4 }, // 7 gfx2
- { "224a11", 0x200000, 0xdf5960e1, 4 }, // 8
- { "224a12", 0x200000, 0xca72a4b3, 4 }, // 9
- { "224a13", 0x200000, 0x86b58feb, 4 }, // 10
-
- { "224a14", 0x040000, 0x3c79b404, 5 }, // 11 k053250_1
-
- { "224a06", 0x200000, 0x972f6abe, 6 }, // 12 shared
- { "224a07", 0x100000, 0x61b2f97a, 6 }, // 13
-
- { "metamrph.nv", 0x000080, 0x2c51229a, 7 }, // 14 eeprom
-};
-
-STD_ROM_PICK(metamrphe)
-STD_ROM_FN(metamrphe)
-
-struct BurnDriver BurnDrvMetamrphe = {
- "metamrphe", "metamrph", NULL, NULL, "1993",
- "Metamorphic Force (ver EAA - alternate)\0", NULL, "Konami", "GX224",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_KONAMI, GBF_SCRFIGHT, 0,
- NULL, metamrpheRomInfo, metamrpheRomName, NULL, NULL, MetamrphInputInfo, MetamrphDIPInfo,
- MetamrphInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x0800,
- 288, 224, 4, 3
-};
-
-
-// Metamorphic Force (ver AAA)
-
-static struct BurnRomInfo metamrphaRomDesc[] = {
- { "224aaa01.15h", 0x040000, 0x12515518, 1 }, // 0 maincpu
- { "224aaa02.15f", 0x040000, 0x04ed41df, 1 }, // 1
- { "224a03", 0x080000, 0xa5bedb01, 1 }, // 2
- { "224a04", 0x080000, 0xada53ba4, 1 }, // 3
-
- { "224a05", 0x040000, 0x4b4c985c, 2 }, // 4 soundcpu
-
- { "224a09", 0x100000, 0x1931afce, 3 }, // 5 gfx1
- { "224a08", 0x100000, 0xdc94d53a, 3 }, // 6
-
- { "224a10", 0x200000, 0x161287f0, 4 }, // 7 gfx2
- { "224a11", 0x200000, 0xdf5960e1, 4 }, // 8
- { "224a12", 0x200000, 0xca72a4b3, 4 }, // 9
- { "224a13", 0x200000, 0x86b58feb, 4 }, // 10
-
- { "224a14", 0x040000, 0x3c79b404, 5 }, // 11 k053250_1
-
- { "224a06", 0x200000, 0x972f6abe, 6 }, // 12 shared
- { "224a07", 0x100000, 0x61b2f97a, 6 }, // 13
-
- // default eeprom to prevent game booting upside down with error
- { "metamrpha.nv", 0x000080, 0x6d34a4f2, 7 }, // 14 eeprom
-};
-
-STD_ROM_PICK(metamrpha)
-STD_ROM_FN(metamrpha)
-
-struct BurnDriver BurnDrvMetamrpha = {
- "metamrpha", "metamrph", NULL, NULL, "1993",
- "Metamorphic Force (ver AAA)\0", NULL, "Konami", "GX224",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_KONAMI, GBF_SCRFIGHT, 0,
- NULL, metamrphaRomInfo, metamrphaRomName, NULL, NULL, MetamrphInputInfo, MetamrphDIPInfo,
- MetamrphInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x0800,
- 288, 224, 4, 3
-};
-
-
-// Metamorphic Force (ver UAA)
-
-static struct BurnRomInfo metamrphuRomDesc[] = {
- { "224uaa01.15h", 0x040000, 0xe1d9b516, 1 }, // 0 maincpu
- { "224uaa02.15f", 0x040000, 0x289c926b, 1 }, // 1
- { "224a03", 0x080000, 0xa5bedb01, 1 }, // 2
- { "224a04", 0x080000, 0xada53ba4, 1 }, // 3
-
- { "224a05", 0x040000, 0x4b4c985c, 2 }, // 4 soundcpu
-
- { "224a09", 0x100000, 0x1931afce, 3 }, // 5 gfx1
- { "224a08", 0x100000, 0xdc94d53a, 3 }, // 6
-
- { "224a10", 0x200000, 0x161287f0, 4 }, // 7 gfx2
- { "224a11", 0x200000, 0xdf5960e1, 4 }, // 8
- { "224a12", 0x200000, 0xca72a4b3, 4 }, // 9
- { "224a13", 0x200000, 0x86b58feb, 4 }, // 10
-
- { "224a14", 0x040000, 0x3c79b404, 5 }, // 11 k053250_1
-
- { "224a06", 0x200000, 0x972f6abe, 6 }, // 12 shared
- { "224a07", 0x100000, 0x61b2f97a, 6 }, // 13
-
- { "metamrphu.nv", 0x000080, 0x1af2f855, 7 }, // 14 eeprom
-};
-
-STD_ROM_PICK(metamrphu)
-STD_ROM_FN(metamrphu)
-
-struct BurnDriver BurnDrvMetamrphu = {
- "metamrphu", "metamrph", NULL, NULL, "1993",
- "Metamorphic Force (ver UAA)\0", NULL, "Konami", "GX224",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_KONAMI, GBF_SCRFIGHT, 0,
- NULL, metamrphuRomInfo, metamrphuRomName, NULL, NULL, MetamrphInputInfo, MetamrphDIPInfo,
- MetamrphInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x0800,
- 288, 224, 4, 3
-};
-
-
-// Metamorphic Force (ver JAA)
-
-static struct BurnRomInfo metamrphjRomDesc[] = {
- { "224jaa01.15h", 0x040000, 0x558d2602, 1 }, // 0 maincpu
- { "224jaa02.15f", 0x040000, 0x9b252ace, 1 }, // 1
- { "224a03", 0x080000, 0xa5bedb01, 1 }, // 2
- { "224a04", 0x080000, 0xada53ba4, 1 }, // 3
-
- { "224a05", 0x040000, 0x4b4c985c, 2 }, // 4 soundcpu
-
- { "224a09", 0x100000, 0x1931afce, 3 }, // 5 gfx1
- { "224a08", 0x100000, 0xdc94d53a, 3 }, // 6
-
- { "224a10", 0x200000, 0x161287f0, 4 }, // 7 gfx2
- { "224a11", 0x200000, 0xdf5960e1, 4 }, // 8
- { "224a12", 0x200000, 0xca72a4b3, 4 }, // 9
- { "224a13", 0x200000, 0x86b58feb, 4 }, // 10
-
- { "224a14", 0x040000, 0x3c79b404, 5 }, // 11 k053250_1
-
- { "224a06", 0x200000, 0x972f6abe, 6 }, // 12 shared
- { "224a07", 0x100000, 0x61b2f97a, 6 }, // 13
-
- { "metamrphj.nv", 0x000080, 0x30497478, 7 }, // 14 eeprom
-};
-
-STD_ROM_PICK(metamrphj)
-STD_ROM_FN(metamrphj)
-
-struct BurnDriver BurnDrvMetamrphj = {
- "metamrphj", "metamrph", NULL, NULL, "1993",
- "Metamorphic Force (ver JAA)\0", NULL, "Konami", "GX224",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_KONAMI, GBF_SCRFIGHT, 0,
- NULL, metamrphjRomInfo, metamrphjRomName, NULL, NULL, MetamrphInputInfo, MetamrphDIPInfo,
- MetamrphInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x0800,
- 288, 224, 4, 3
-};
-
-
-// Martial Champion (ver EAB)
-
-static struct BurnRomInfo mtlchampRomDesc[] = {
- { "234eab01.20f", 0x040000, 0x7c4d1e50, 1 }, // 0 maincpu
- { "234eab02.20g", 0x040000, 0xd8bc85c9, 1 }, // 1
- { "234_d03.19f", 0x080000, 0xabb577c6, 1 }, // 2
- { "234_d04.19g", 0x080000, 0x030a1925, 1 }, // 3
-
- { "234_d05.6b", 0x020000, 0xefb6bcaa, 2 }, // 4 soundcpu
-
- { "234a08.1h", 0x100000, 0x27e94288, 3 }, // 5 gfx1
- { "234a09.1k", 0x100000, 0x03aad28f, 3 }, // 6
- { "234a10.3h", 0x080000, 0x51f50fe2, 3 }, // 7
-
- { "234a16.22k", 0x200000, 0x14d909a5, 4 }, // 8 gfx2
- { "234a15.20k", 0x200000, 0xa5028418, 4 }, // 9
- { "234a14.19k", 0x200000, 0xd7921f47, 4 }, // 10
- { "234a13.17k", 0x200000, 0x5974392e, 4 }, // 11
- { "234a12.12k", 0x100000, 0xc7f2b099, 4 }, // 12
- { "234a11.10k", 0x100000, 0x82923713, 4 }, // 13
-
- { "234a06.2d", 0x200000, 0x12d32384, 5 }, // 14 shared
- { "234a07.1d", 0x200000, 0x05ee239f, 5 }, // 15
-
- { "mtlchamp.nv", 0x000080, 0xcd47858e, 6 }, // 16 eeprom
-};
-
-STD_ROM_PICK(mtlchamp)
-STD_ROM_FN(mtlchamp)
-
-struct BurnDriver BurnDrvMtlchamp = {
- "mtlchamp", NULL, NULL, NULL, "1993",
- "Martial Champion (ver EAB)\0", "Missing Graphics on Intro/Title screens", "Konami", "GX234",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_PREFIX_KONAMI, GBF_VSFIGHT, 0,
- NULL, mtlchampRomInfo, mtlchampRomName, NULL, NULL, MartchmpInputInfo, MartchmpDIPInfo,
- MartchmpInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 384, 224, 4, 3
-};
-
-
-// Martial Champion (ver EAA)
-
-static struct BurnRomInfo mtlchamp1RomDesc[] = {
- { "234eaa01.20f", 0x040000, 0x8fa731db, 1 }, // 0 maincpu
- { "234eaa02.20g", 0x040000, 0xe7b50b54, 1 }, // 1
- { "234_d03.19f", 0x080000, 0xabb577c6, 1 }, // 2
- { "234_d04.19g", 0x080000, 0x030a1925, 1 }, // 3
-
- { "234_d05.6b", 0x020000, 0xefb6bcaa, 2 }, // 4 soundcpu
-
- { "234a08.1h", 0x100000, 0x27e94288, 3 }, // 5 gfx1
- { "234a09.1k", 0x100000, 0x03aad28f, 3 }, // 6
- { "234a10.3h", 0x080000, 0x51f50fe2, 3 }, // 7
-
- { "234a16.22k", 0x200000, 0x14d909a5, 4 }, // 8 gfx2
- { "234a15.20k", 0x200000, 0xa5028418, 4 }, // 9
- { "234a14.19k", 0x200000, 0xd7921f47, 4 }, // 10
- { "234a13.17k", 0x200000, 0x5974392e, 4 }, // 11
- { "234a12.12k", 0x100000, 0xc7f2b099, 4 }, // 12
- { "234a11.10k", 0x100000, 0x82923713, 4 }, // 13
-
- { "234a06.2d", 0x200000, 0x12d32384, 5 }, // 14 shared
- { "234a07.1d", 0x200000, 0x05ee239f, 5 }, // 15
-
- { "mtlchamp1.nv", 0x000080, 0x202f6968, 6 }, // 16 eeprom
-};
-
-STD_ROM_PICK(mtlchamp1)
-STD_ROM_FN(mtlchamp1)
-
-struct BurnDriver BurnDrvMtlchamp1 = {
- "mtlchamp1", "mtlchamp", NULL, NULL, "1993",
- "Martial Champion (ver EAA)\0", "Missing Graphics on Intro/Title screens", "Konami", "GX234",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_KONAMI, GBF_VSFIGHT, 0,
- NULL, mtlchamp1RomInfo, mtlchamp1RomName, NULL, NULL, MartchmpInputInfo, MartchmpDIPInfo,
- MartchmpInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 384, 224, 4, 3
-};
-
-
-// Martial Champion (ver AAA)
-
-static struct BurnRomInfo mtlchampaRomDesc[] = {
- { "234aaa01.20f", 0x040000, 0x32c70e65, 1 }, // 0 maincpu
- { "234aaa02.20g", 0x040000, 0x2f666d52, 1 }, // 1
- { "234_d03.19f", 0x080000, 0xabb577c6, 1 }, // 2
- { "234_d04.19g", 0x080000, 0x030a1925, 1 }, // 3
-
- { "234_d05.6b", 0x020000, 0xefb6bcaa, 2 }, // 4 soundcpu
-
- { "234a08.1h", 0x100000, 0x27e94288, 3 }, // 5 gfx1
- { "234a09.1k", 0x100000, 0x03aad28f, 3 }, // 6
- { "234a10.3h", 0x080000, 0x51f50fe2, 3 }, // 7
-
- { "234a16.22k", 0x200000, 0x14d909a5, 4 }, // 8 gfx2
- { "234a15.20k", 0x200000, 0xa5028418, 4 }, // 9
- { "234a14.19k", 0x200000, 0xd7921f47, 4 }, // 10
- { "234a13.17k", 0x200000, 0x5974392e, 4 }, // 11
- { "234a12.12k", 0x100000, 0xc7f2b099, 4 }, // 12
- { "234a11.10k", 0x100000, 0x82923713, 4 }, // 13
-
- { "234a06.2d", 0x200000, 0x12d32384, 5 }, // 14 shared
- { "234a07.1d", 0x200000, 0x05ee239f, 5 }, // 15
-
- { "mtlchampa.nv", 0x000080, 0x79a6f420, 6 }, // 16 eeprom
-};
-
-STD_ROM_PICK(mtlchampa)
-STD_ROM_FN(mtlchampa)
-
-struct BurnDriver BurnDrvMtlchampa = {
- "mtlchampa", "mtlchamp", NULL, NULL, "1993",
- "Martial Champion (ver AAA)\0", "Missing Graphics on Intro/Title screens", "Konami", "GX234",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_KONAMI, GBF_VSFIGHT, 0,
- NULL, mtlchampaRomInfo, mtlchampaRomName, NULL, NULL, MartchmpInputInfo, MartchmpDIPInfo,
- MartchmpInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 384, 224, 4, 3
-};
-
-
-// Martial Champion (ver JAA)
-
-static struct BurnRomInfo mtlchampjRomDesc[] = {
- { "234jaa01.20f", 0x040000, 0x76c3c568, 1 }, // 0 maincpu
- { "234jaa02.20g", 0x040000, 0x95eec0aa, 1 }, // 1
- { "234_d03.19f", 0x080000, 0xabb577c6, 1 }, // 2
- { "234_d04.19g", 0x080000, 0x030a1925, 1 }, // 3
-
- { "234_d05.6b", 0x020000, 0xefb6bcaa, 2 }, // 4 soundcpu
-
- { "234a08.1h", 0x100000, 0x27e94288, 3 }, // 5 gfx1
- { "234a09.1k", 0x100000, 0x03aad28f, 3 }, // 6
- { "234a10.3h", 0x080000, 0x51f50fe2, 3 }, // 7
-
- { "234a16.22k", 0x200000, 0x14d909a5, 4 }, // 8 gfx2
- { "234a15.20k", 0x200000, 0xa5028418, 4 }, // 9
- { "234a14.19k", 0x200000, 0xd7921f47, 4 }, // 10
- { "234a13.17k", 0x200000, 0x5974392e, 4 }, // 11
- { "234a12.12k", 0x100000, 0xc7f2b099, 4 }, // 12
- { "234a11.10k", 0x100000, 0x82923713, 4 }, // 13
-
- { "234a06.2d", 0x200000, 0x12d32384, 5 }, // 14 shared
- { "234a07.1d", 0x200000, 0x05ee239f, 5 }, // 15
-
- { "mtlchampj.nv", 0x000080, 0xe311816f, 6 }, // 16 eeprom
-};
-
-STD_ROM_PICK(mtlchampj)
-STD_ROM_FN(mtlchampj)
-
-struct BurnDriver BurnDrvMtlchampj = {
- "mtlchampj", "mtlchamp", NULL, NULL, "1993",
- "Martial Champion (ver JAA)\0", "Missing Graphics on Intro/Title screens", "Konami", "GX234",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_KONAMI, GBF_VSFIGHT, 0,
- NULL, mtlchampjRomInfo, mtlchampjRomName, NULL, NULL, MartchmpInputInfo, MartchmpDIPInfo,
- MartchmpInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 384, 224, 4, 3
-};
-
-
-// Martial Champion (ver UAE)
-
-static struct BurnRomInfo mtlchampuRomDesc[] = {
- { "234uae01.20f", 0x040000, 0xacecfec9, 1 }, // 0 maincpu
- { "234uae02.20g", 0x040000, 0xc54ccf65, 1 }, // 1
- { "234_d03.19f", 0x080000, 0xabb577c6, 1 }, // 2
- { "234_d04.19g", 0x080000, 0x030a1925, 1 }, // 3
-
- { "234_d05.6b", 0x020000, 0xefb6bcaa, 2 }, // 4 soundcpu
-
- { "234a08.1h", 0x100000, 0x27e94288, 3 }, // 5 gfx1
- { "234a09.1k", 0x100000, 0x03aad28f, 3 }, // 6
- { "234a10.3h", 0x080000, 0x51f50fe2, 3 }, // 7
-
- { "234a16.22k", 0x200000, 0x14d909a5, 4 }, // 8 gfx2
- { "234a15.20k", 0x200000, 0xa5028418, 4 }, // 9
- { "234a14.19k", 0x200000, 0xd7921f47, 4 }, // 10
- { "234a13.17k", 0x200000, 0x5974392e, 4 }, // 11
- { "234a12.12k", 0x100000, 0xc7f2b099, 4 }, // 12
- { "234a11.10k", 0x100000, 0x82923713, 4 }, // 13
-
- { "234a06.2d", 0x200000, 0x12d32384, 5 }, // 14 shared
- { "234a07.1d", 0x200000, 0x05ee239f, 5 }, // 15
-
- { "mtlchampu.nv", 0x000080, 0x182f146a, 6 }, // 16 eeprom
-};
-
-STD_ROM_PICK(mtlchampu)
-STD_ROM_FN(mtlchampu)
-
-struct BurnDriver BurnDrvMtlchampu = {
- "mtlchampu", "mtlchamp", NULL, NULL, "1993",
- "Martial Champion (ver UAE)\0", "Missing Graphics on Intro/Title screens", "Konami", "GX234",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_KONAMI, GBF_VSFIGHT, 0,
- NULL, mtlchampuRomInfo, mtlchampuRomName, NULL, NULL, MartchmpInputInfo, MartchmpDIPInfo,
- MartchmpInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 384, 224, 4, 3
-};
-
-
-// Martial Champion (ver UAD)
-
-static struct BurnRomInfo mtlchampu1RomDesc[] = {
- { "234uad01.20f", 0x040000, 0x5f6c8d09, 1 }, // 0 maincpu
- { "234uad02.20g", 0x040000, 0x15ca4fb2, 1 }, // 1
- { "234_d03.19f", 0x080000, 0xabb577c6, 1 }, // 2
- { "234_d04.19g", 0x080000, 0x030a1925, 1 }, // 3
-
- { "234_d05.6b", 0x020000, 0xefb6bcaa, 2 }, // 4 soundcpu
-
- { "234a08.1h", 0x100000, 0x27e94288, 3 }, // 5 gfx1
- { "234a09.1k", 0x100000, 0x03aad28f, 3 }, // 6
- { "234a10.3h", 0x080000, 0x51f50fe2, 3 }, // 7
-
- { "234a16.22k", 0x200000, 0x14d909a5, 4 }, // 8 gfx2
- { "234a15.20k", 0x200000, 0xa5028418, 4 }, // 9
- { "234a14.19k", 0x200000, 0xd7921f47, 4 }, // 10
- { "234a13.17k", 0x200000, 0x5974392e, 4 }, // 11
- { "234a12.12k", 0x100000, 0xc7f2b099, 4 }, // 12
- { "234a11.10k", 0x100000, 0x82923713, 4 }, // 13
-
- { "234a06.2d", 0x200000, 0x12d32384, 5 }, // 14 shared
- { "234a07.1d", 0x200000, 0x05ee239f, 5 }, // 15
-
- { "mtlchampu1.nv", 0x000080, 0xf5d84df7, 6 }, // 16 eeprom
-};
-
-STD_ROM_PICK(mtlchampu1)
-STD_ROM_FN(mtlchampu1)
-
-struct BurnDriver BurnDrvMtlchampu1 = {
- "mtlchampu1", "mtlchamp", NULL, NULL, "1993",
- "Martial Champion (ver UAD)\0", "Missing Graphics on Intro/Title screens", "Konami", "GX234",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_KONAMI, GBF_VSFIGHT, 0,
- NULL, mtlchampu1RomInfo, mtlchampu1RomName, NULL, NULL, MartchmpInputInfo, MartchmpDIPInfo,
- MartchmpInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 384, 224, 4, 3
-};
-
-
-// Gaiapolis (ver EAF)
-
-static struct BurnRomInfo gaiapolsRomDesc[] = {
- { "123e07.24m", 0x100000, 0xf1a1db0f, 1 }, // 0 maincpu
- { "123e09.19l", 0x100000, 0x4b3b57e7, 1 }, // 1
- { "123eaf11.19p", 0x040000, 0x9c324ade, 1 }, // 2
- { "123eaf12.17p", 0x040000, 0x1dfa14c5, 1 }, // 3
-
- { "123e13.9c", 0x040000, 0xe772f822, 2 }, // 4 soundcpu
-
- { "123e16.2t", 0x100000, 0xa3238200, 3 }, // 5 gfx1
- { "123e17.2x", 0x100000, 0xbd0b9fb9, 3 }, // 6
-
- { "123e19.34u", 0x200000, 0x219a7c26, 4 }, // 7 gfx2
- { "123e21.34y", 0x200000, 0x1888947b, 4 }, // 8
- { "123e18.36u", 0x200000, 0x3719b6d4, 4 }, // 9
- { "123e20.36y", 0x200000, 0x490a6f64, 4 }, // 10
-
- { "123e04.32n", 0x080000, 0x0d4d5b8b, 5 }, // 11 gfx3
- { "123e05.29n", 0x080000, 0x7d123f3e, 5 }, // 12
- { "123e06.26n", 0x080000, 0xfa50121e, 5 }, // 13
-
- { "123e01.36j", 0x020000, 0x9dbc9678, 6 }, // 14 gfx4
- { "123e02.34j", 0x040000, 0xb8e3f500, 6 }, // 15
- { "123e03.36m", 0x040000, 0xfde4749f, 6 }, // 16
-
- { "123e14.2g", 0x200000, 0x65dfd3ff, 7 }, // 17 shared
- { "123e15.2m", 0x200000, 0x7017ff07, 7 }, // 18
-
- { "gaiapols.nv", 0x000080, 0x44c78184, 8 }, // 19 eeprom
-};
-
-STD_ROM_PICK(gaiapols)
-STD_ROM_FN(gaiapols)
-
-struct BurnDriver BurnDrvGaiapols = {
- "gaiapols", NULL, NULL, NULL, "1993",
- "Gaiapolis (ver EAF)\0", NULL, "Konami", "GX123",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED, 2, HARDWARE_PREFIX_KONAMI, GBF_SCRFIGHT, 0,
- NULL, gaiapolsRomInfo, gaiapolsRomName, NULL, NULL, DadandrnInputInfo, DadandrnDIPInfo,
- GaiapolisInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 224, 376, 3, 4
-};
-
-
-// Gaiapolis (ver UAF)
-
-static struct BurnRomInfo gaiapolsuRomDesc[] = {
- { "123e07.24m", 0x100000, 0xf1a1db0f, 1 }, // 0 maincpu
- { "123e09.19l", 0x100000, 0x4b3b57e7, 1 }, // 1
- { "123uaf11.19p", 0x040000, 0x39dc1298, 1 }, // 2
- { "123uaf12.17p", 0x040000, 0xc633cf52, 1 }, // 3
-
- { "123e13.9c", 0x040000, 0xe772f822, 2 }, // 4 soundcpu
-
- { "123e16.2t", 0x100000, 0xa3238200, 3 }, // 5 gfx1
- { "123e17.2x", 0x100000, 0xbd0b9fb9, 3 }, // 6
-
- { "123e19.34u", 0x200000, 0x219a7c26, 4 }, // 7 gfx2
- { "123e21.34y", 0x200000, 0x1888947b, 4 }, // 8
- { "123e18.36u", 0x200000, 0x3719b6d4, 4 }, // 9
- { "123e20.36y", 0x200000, 0x490a6f64, 4 }, // 10
-
- { "123e04.32n", 0x080000, 0x0d4d5b8b, 5 }, // 11 gfx3
- { "123e05.29n", 0x080000, 0x7d123f3e, 5 }, // 12
- { "123e06.26n", 0x080000, 0xfa50121e, 5 }, // 13
-
- { "123e01.36j", 0x020000, 0x9dbc9678, 6 }, // 14 gfx4
- { "123e02.34j", 0x040000, 0xb8e3f500, 6 }, // 15
- { "123e03.36m", 0x040000, 0xfde4749f, 6 }, // 16
-
- { "123e14.2g", 0x200000, 0x65dfd3ff, 7 }, // 17 shared
- { "123e15.2m", 0x200000, 0x7017ff07, 7 }, // 18
-
- { "gaiapolsu.nv", 0x000080, 0x7ece27b6, 8 }, // 19 eeprom
-};
-
-STD_ROM_PICK(gaiapolsu)
-STD_ROM_FN(gaiapolsu)
-
-struct BurnDriver BurnDrvGaiapolsu = {
- "gaiapolsu", "gaiapols", NULL, NULL, "1993",
- "Gaiapolis (ver UAF)\0", NULL, "Konami", "GX123",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED, 2, HARDWARE_PREFIX_KONAMI, GBF_SCRFIGHT, 0,
- NULL, gaiapolsuRomInfo, gaiapolsuRomName, NULL, NULL, DadandrnInputInfo, DadandrnDIPInfo,
- GaiapolisInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 224, 376, 3, 4
-};
-
-
-// Gaiapolis (ver JAF)
-
-static struct BurnRomInfo gaiapolsjRomDesc[] = {
- { "123e07.24m", 0x100000, 0xf1a1db0f, 1 }, // 0 maincpu
- { "123e09.19l", 0x100000, 0x4b3b57e7, 1 }, // 1
- { "123jaf11.19p", 0x040000, 0x19919571, 1 }, // 2
- { "123jaf12.17p", 0x040000, 0x4246e595, 1 }, // 3
-
- { "123e13.9c", 0x040000, 0xe772f822, 2 }, // 4 soundcpu
-
- { "123e16.2t", 0x100000, 0xa3238200, 3 }, // 5 gfx1
- { "123e17.2x", 0x100000, 0xbd0b9fb9, 3 }, // 6
-
- { "123e19.34u", 0x200000, 0x219a7c26, 4 }, // 7 gfx2
- { "123e21.34y", 0x200000, 0x1888947b, 4 }, // 8
- { "123e18.36u", 0x200000, 0x3719b6d4, 4 }, // 9
- { "123e20.36y", 0x200000, 0x490a6f64, 4 }, // 10
-
- { "123e04.32n", 0x080000, 0x0d4d5b8b, 5 }, // 11 gfx3
- { "123e05.29n", 0x080000, 0x7d123f3e, 5 }, // 12
- { "123e06.26n", 0x080000, 0xfa50121e, 5 }, // 13
-
- { "123e01.36j", 0x020000, 0x9dbc9678, 6 }, // 14 gfx4
- { "123e02.34j", 0x040000, 0xb8e3f500, 6 }, // 15
- { "123e03.36m", 0x040000, 0xfde4749f, 6 }, // 16
-
- { "123e14.2g", 0x200000, 0x65dfd3ff, 7 }, // 17 shared
- { "123e15.2m", 0x200000, 0x7017ff07, 7 }, // 18
-
- { "gaiapolsj.nv", 0x000080, 0xc4b970df, 8 }, // 19 eeprom
-};
-
-STD_ROM_PICK(gaiapolsj)
-STD_ROM_FN(gaiapolsj)
-
-struct BurnDriver BurnDrvGaiapolsj = {
- "gaiapolsj", "gaiapols", NULL, NULL, "1993",
- "Gaiapolis (ver JAF)\0", NULL, "Konami", "GX123",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED, 2, HARDWARE_PREFIX_KONAMI, GBF_SCRFIGHT, 0,
- NULL, gaiapolsjRomInfo, gaiapolsjRomName, NULL, NULL, DadandrnInputInfo, DadandrnDIPInfo,
- GaiapolisInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 224, 376, 3, 4
-};
-
-
-// Monster Maulers (ver EAA)
-
-static struct BurnRomInfo mmaulersRomDesc[] = {
- { "170eaa07.24m", 0x080000, 0x5458bd93, 1 }, // 0 maincpu
- { "170eaa09.19l", 0x080000, 0x99c95c7b, 1 }, // 1
- { "170a08.21m", 0x040000, 0x03c59ba2, 1 }, // 2
- { "170a10.17l", 0x040000, 0x8a340909, 1 }, // 3
-
- { "170a13.9c", 0x040000, 0x2ebf4d1c, 2 }, // 4 soundcpu
-
- { "170a16.2t", 0x100000, 0x41fee912, 3 }, // 5 gfx1
- { "170a17.2x", 0x100000, 0x96957c91, 3 }, // 6
- { "170a24.5r", 0x080000, 0x562ad4bd, 3 }, // 7
-
- { "170a19.34u", 0x200000, 0xbe835141, 4 }, // 8 gfx2
- { "170a21.34y", 0x200000, 0xbcb68136, 4 }, // 9
- { "170a18.36u", 0x200000, 0xe1e3c8d2, 4 }, // 10
- { "170a20.36y", 0x200000, 0xccb4d88c, 4 }, // 11
- { "170a23.29y", 0x100000, 0x6b5390e4, 4 }, // 12
- { "170a22.32y", 0x100000, 0x21628106, 4 }, // 13
-
- { "170a04.33n", 0x080000, 0x64b9a73b, 5 }, // 14 gfx3
- { "170a05.30n", 0x080000, 0xf2c101d0, 5 }, // 15
- { "170a06.27n", 0x080000, 0xb032e59b, 5 }, // 16
-
- { "170a02.34j", 0x040000, 0xb040cebf, 6 }, // 17 gfx4
- { "170a03.36m", 0x040000, 0x7fb412b2, 6 }, // 18
-
- { "170a14.2g", 0x200000, 0x83317cda, 7 }, // 19 shared
- { "170a15.2m", 0x200000, 0xd4113ae9, 7 }, // 20
-
- { "mmaulers.nv", 0x000080, 0x8324f517, 8 }, // 21 eeprom
-};
-
-STD_ROM_PICK(mmaulers)
-STD_ROM_FN(mmaulers)
-
-struct BurnDriver BurnDrvMmaulers = {
- "mmaulers", NULL, NULL, NULL, "1993",
- "Monster Maulers (ver EAA)\0", NULL, "Konami", "GX170",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_PREFIX_KONAMI, GBF_SCRFIGHT, 0,
- NULL, mmaulersRomInfo, mmaulersRomName, NULL, NULL, DadandrnInputInfo, DadandrnDIPInfo,
- DadandrnInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 288, 224, 4, 3
-};
-
-
-// Kyukyoku Sentai Dadandarn (ver JAA)
-
-static struct BurnRomInfo dadandrnRomDesc[] = {
- { "170jaa07.24m", 0x080000, 0x6a55e828, 1 }, // 0 maincpu
- { "170jaa09.19l", 0x080000, 0x9e821cd8, 1 }, // 1
- { "170a08.21m", 0x040000, 0x03c59ba2, 1 }, // 2
- { "170a10.17l", 0x040000, 0x8a340909, 1 }, // 3
-
- { "170a13.9c", 0x040000, 0x2ebf4d1c, 2 }, // 4 soundcpu
-
- { "170a16.2t", 0x100000, 0x41fee912, 3 }, // 5 gfx1
- { "170a17.2x", 0x100000, 0x96957c91, 3 }, // 6
- { "170a24.5r", 0x080000, 0x562ad4bd, 3 }, // 7
-
- { "170a19.34u", 0x200000, 0xbe835141, 4 }, // 8 gfx2
- { "170a21.34y", 0x200000, 0xbcb68136, 4 }, // 9
- { "170a18.36u", 0x200000, 0xe1e3c8d2, 4 }, // 10
- { "170a20.36y", 0x200000, 0xccb4d88c, 4 }, // 11
- { "170a23.29y", 0x100000, 0x6b5390e4, 4 }, // 12
- { "170a22.32y", 0x100000, 0x21628106, 4 }, // 13
-
- { "170a04.33n", 0x080000, 0x64b9a73b, 5 }, // 14 gfx3
- { "170a05.30n", 0x080000, 0xf2c101d0, 5 }, // 15
- { "170a06.27n", 0x080000, 0xb032e59b, 5 }, // 16
-
- { "170a02.34j", 0x040000, 0xb040cebf, 6 }, // 17 gfx4
- { "170a03.36m", 0x040000, 0x7fb412b2, 6 }, // 18
-
- { "170a14.2g", 0x200000, 0x83317cda, 7 }, // 19 shared
- { "170a15.2m", 0x200000, 0xd4113ae9, 7 }, // 20
-
- { "dadandrn.nv", 0x000080, 0x346ae0cf, 8 }, // 21 eeprom
-};
-
-STD_ROM_PICK(dadandrn)
-STD_ROM_FN(dadandrn)
-
-struct BurnDriver BurnDrvDadandrn = {
- "dadandrn", "mmaulers", NULL, NULL, "1993",
- "Kyukyoku Sentai Dadandarn (ver JAA)\0", NULL, "Konami", "GX170",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_KONAMI, GBF_SCRFIGHT, 0,
- NULL, dadandrnRomInfo, dadandrnRomName, NULL, NULL, DadandrnInputInfo, DadandrnDIPInfo,
- DadandrnInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 288, 224, 4, 3
-};
diff --git a/jan/src/burn/drv/konami/d_nemesis.cpp b/jan/src/burn/drv/konami/d_nemesis.cpp
deleted file mode 100644
index 51fafc29f..000000000
--- a/jan/src/burn/drv/konami/d_nemesis.cpp
+++ /dev/null
@@ -1,4213 +0,0 @@
-// FB Alpha Nemesis driver module
-// Based on MAME driver by Bryan McPhail w/additions by Hau, hap, and likely othes
-
-#include "tiles_generic.h"
-#include "m68000_intf.h"
-#include "z80_intf.h"
-#include "burn_ym3812.h"
-#include "k051649.h"
-#include "k007232.h"
-#include "k005289.h"
-#include "vlm5030.h"
-#include "burn_ym2151.h"
-#include "flt_rc.h"
-#include "driver.h"
-extern "C" {
-#include "ay8910.h"
-}
-#include "burn_shift.h"
-
-static UINT8 *AllMem;
-static UINT8 *MemEnd;
-static UINT8 *AllRam;
-static UINT8 *RamEnd;
-static UINT8 *Drv68KROM;
-static UINT8 *DrvZ80ROM;
-static UINT8 *K005289ROM;
-static UINT8 *DrvVLMROM;
-static UINT8 *K007232ROM;
-static UINT8 *Drv68KRAM0;
-static UINT8 *Drv68KRAM1;
-static UINT8 *Drv68KRAM2;
-static UINT8 *DrvPalRAM;
-static UINT8 *DrvSprRAM;
-static UINT8 *DrvVidRAM0;
-static UINT8 *DrvVidRAM1;
-static UINT8 *DrvColRAM0;
-static UINT8 *DrvColRAM1;
-static UINT8 *DrvCharRAM;
-static UINT8 *DrvCharRAMExp;
-static UINT8 *DrvScrollRAM;
-static UINT8 *DrvShareRAM;
-static UINT8 *DrvZ80RAM;
-
-static INT16 *pAY8910Buffer[6];
-
-static UINT32 *DrvPalette;
-static UINT8 DrvRecalc;
-
-static UINT8 *soundlatch;
-static UINT8 *flipscreen;
-static UINT8 *m68k_irq_enable;
-static UINT8 *m68k_irq_enable2;
-static UINT8 *m68k_irq_enable4;
-static UINT8 *tilemap_flip_x;
-static UINT8 *tilemap_flip_y;
-
-static UINT16 *xscroll1;
-static UINT16 *yscroll1;
-static UINT16 *xscroll2;
-static UINT16 *yscroll2;
-
-static UINT8 selected_ip;
-
-static INT32 watchdog;
-static void (*palette_write)(INT32) = NULL;
-
-static UINT8 DrvJoy1[16];
-static UINT8 DrvJoy2[16];
-static UINT8 DrvJoy3[16];
-static UINT8 DrvJoy4[16];
-static UINT8 DrvDips[4];
-static UINT8 DrvReset;
-static UINT16 DrvInputs[4];
-static INT32 DrvAnalogPort0 = 0;
-static INT16 DrvDial1;
-
-static INT32 ay8910_enable = 0;
-static INT32 ym2151_enable = 0;
-static INT32 ym3812_enable = 0;
-static INT32 k005289_enable = 0;
-static INT32 k007232_enable = 0;
-static INT32 k051649_enable = 0;
-static INT32 vlm5030_enable = 0;
-static INT32 rcflt_enable = 0;
-static INT32 hcrash_mode = 0;
-static INT32 gearboxmode = 0;
-static INT32 bUseShifter = 0;
-
-#define A(a, b, c, d) {a, b, (UINT8*)(c), d}
-
-static struct BurnInputInfo NemesisInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy1 + 0, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 3, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy2 + 2, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy2 + 3, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy2 + 0, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy2 + 1, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy2 + 4, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy2 + 6, "p1 fire 2" },
- {"P1 Button 3", BIT_DIGITAL, DrvJoy2 + 5, "p1 fire 3" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy1 + 1, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy1 + 4, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvJoy3 + 2, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy3 + 3, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy3 + 0, "p2 left"},
- {"P2 Right", BIT_DIGITAL, DrvJoy3 + 1, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy3 + 4, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy3 + 6, "p2 fire 2" },
- {"P2 Button 3", BIT_DIGITAL, DrvJoy3 + 5, "p2 fire 3" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service", BIT_DIGITAL, DrvJoy1 + 2, "service" },
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip" },
- {"Dip C", BIT_DIPSWITCH, DrvDips + 2, "dip" },
- {"Dip D", BIT_DIPSWITCH, DrvDips + 3, "dip" },
-};
-
-STDINPUTINFO(Nemesis)
-
-static struct BurnInputInfo SalamandInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy1 + 0, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 3, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy2 + 2, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy2 + 3, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy2 + 0, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy2 + 1, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy2 + 4, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy2 + 5, "p1 fire 2" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy1 + 1, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy1 + 4, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvJoy3 + 2, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy3 + 3, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy3 + 0, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy3 + 1, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy3 + 4, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy3 + 5, "p2 fire 2" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service", BIT_DIGITAL, DrvJoy1 + 2, "service" },
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip" },
- {"Dip C", BIT_DIPSWITCH, DrvDips + 2, "dip" },
-};
-
-STDINPUTINFO(Salamand)
-
-static struct BurnInputInfo TwinbeeInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy1 + 0, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 3, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy2 + 2, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy2 + 3, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy2 + 0, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy2 + 1, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy2 + 4, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy2 + 5, "p1 fire 2" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy1 + 1, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy1 + 4, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvJoy3 + 2, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy3 + 3, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy3 + 0, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy3 + 1, "p2 right"} ,
- {"P2 Button 1", BIT_DIGITAL, DrvJoy3 + 4, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy3 + 5, "p2 fire 2" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service", BIT_DIGITAL, DrvJoy1 + 2, "service" },
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip" },
- {"Dip C", BIT_DIPSWITCH, DrvDips + 2, "dip" },
- {"Dip D", BIT_DIPSWITCH, DrvDips + 3, "dip" },
-};
-
-STDINPUTINFO(Twinbee)
-
-static struct BurnInputInfo GradiusInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy1 + 0, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 3, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy2 + 2, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy2 + 3, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy2 + 0, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy2 + 1, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy2 + 4, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy2 + 6, "p1 fire 2" },
- {"P1 Button 3", BIT_DIGITAL, DrvJoy2 + 5, "p1 fire 3" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy1 + 1, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy1 + 4, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvJoy3 + 2, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy3 + 3, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy3 + 0, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy3 + 1, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy3 + 4, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy3 + 6, "p2 fire 2" },
- {"P2 Button 3", BIT_DIGITAL, DrvJoy3 + 5, "p2 fire 3" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service", BIT_DIGITAL, DrvJoy1 + 2, "service" },
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip" },
- {"Dip C", BIT_DIPSWITCH, DrvDips + 2, "dip" },
- {"Dip D", BIT_DIPSWITCH, DrvDips + 3, "dip" },
-};
-
-STDINPUTINFO(Gradius)
-
-static struct BurnInputInfo GwarriorInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy1 + 0, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 3, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy2 + 2, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy2 + 3, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy2 + 0, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy2 + 1, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy2 + 4, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy2 + 5, "p1 fire 2" },
- {"P1 Button 3", BIT_DIGITAL, DrvJoy2 + 6, "p1 fire 3" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy1 + 1, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy1 + 4, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvJoy3 + 2, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy3 + 3, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy3 + 0, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy3 + 1, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy3 + 4, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy3 + 5, "p2 fire 2" },
- {"P2 Button 3", BIT_DIGITAL, DrvJoy3 + 6, "p2 fire 3" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service", BIT_DIGITAL, DrvJoy1 + 2, "service" },
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip" },
- {"Dip C", BIT_DIPSWITCH, DrvDips + 2, "dip" },
- {"Dip D", BIT_DIPSWITCH, DrvDips + 3, "dip" },
-};
-
-STDINPUTINFO(Gwarrior)
-
-static struct BurnInputInfo NyanpaniInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy1 + 0, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 3, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy2 + 2, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy2 + 3, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy2 + 0, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy2 + 1, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy2 + 4, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy2 + 5, "p1 fire 2" },
- {"P1 Button 3", BIT_DIGITAL, DrvJoy2 + 6, "p1 fire 3" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy1 + 1, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy1 + 4, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvJoy3 + 2, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy3 + 3, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy3 + 0, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy3 + 1, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy3 + 4, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy3 + 5, "p2 fire 2" },
- {"P2 Button 3", BIT_DIGITAL, DrvJoy3 + 6, "p2 fire 3" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service", BIT_DIGITAL, DrvJoy1 + 2, "service" },
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip" },
- {"Dip C", BIT_DIPSWITCH, DrvDips + 2, "dip" },
-};
-
-STDINPUTINFO(Nyanpani)
-
-static struct BurnInputInfo BlkpnthrInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy1 + 0, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 3, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy2 + 2, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy2 + 3, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy2 + 0, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy2 + 1, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy2 + 4, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy2 + 5, "p1 fire 2" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy1 + 1, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy1 + 4, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvJoy3 + 2, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy3 + 3, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy3 + 0, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy3 + 1, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy3 + 4, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy3 + 5, "p2 fire 2" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service", BIT_DIGITAL, DrvJoy1 + 2, "service" },
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip" },
- {"Dip C", BIT_DIPSWITCH, DrvDips + 2, "dip" },
-};
-
-STDINPUTINFO(Blkpnthr)
-
-static struct BurnInputInfo CitybombInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy1 + 0, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 3, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy2 + 2, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy2 + 3, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy2 + 0, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy2 + 1, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy2 + 4, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy2 + 5, "p1 fire 2" },
- {"P1 Button 3", BIT_DIGITAL, DrvJoy2 + 6, "p1 fire 3" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy1 + 1, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy1 + 4, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvJoy3 + 2, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy3 + 3, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy3 + 0, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy3 + 1, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy3 + 4, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy3 + 5, "p2 fire 2" },
- {"P2 Button 3", BIT_DIGITAL, DrvJoy3 + 6, "p2 fire 3" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service", BIT_DIGITAL, DrvJoy1 + 2, "service" },
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip" },
- {"Dip C", BIT_DIPSWITCH, DrvDips + 2, "dip" },
-};
-
-STDINPUTINFO(Citybomb)
-
-static struct BurnInputInfo KonamigtInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy1 + 0, "p1 coin" },
- {"Accelerator", BIT_DIGITAL, DrvJoy4 + 6, "p1 fire 1" },
- {"Brake", BIT_DIGITAL, DrvJoy4 + 5, "p1 fire 2" },
- {"Gear Shift", BIT_DIGITAL, DrvJoy2 + 4, "p1 fire 3" },
-
- A("Wheel" , BIT_ANALOG_REL, &DrvAnalogPort0 , "mouse x-axis"),
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service", BIT_DIGITAL, DrvJoy1 + 2, "service" },
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip" },
- {"Dip C", BIT_DIPSWITCH, DrvDips + 2, "dip" },
- {"Dip D", BIT_DIPSWITCH, DrvDips + 3, "dip" },
-};
-
-STDINPUTINFO(Konamigt)
-
-static struct BurnInputInfo HcrashInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy1 + 4, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 3, "p1 start" },
- {"Accelerator", BIT_DIGITAL, DrvJoy4 + 6, "p1 fire 1" },
- {"Brake", BIT_DIGITAL, DrvJoy4 + 5, "p1 fire 2" },
- {"Jump", BIT_DIGITAL, DrvJoy4 + 4, "p1 fire 3" },
-
- A("Wheel" , BIT_ANALOG_REL, &DrvAnalogPort0 , "mouse x-axis"),
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service", BIT_DIGITAL, DrvJoy1 + 2, "service" },
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip" },
- {"Dip C", BIT_DIPSWITCH, DrvDips + 2, "dip" },
-};
-
-STDINPUTINFO(Hcrash)
-
-static struct BurnDIPInfo NemesisDIPList[]=
-{
- {0x14, 0xff, 0xff, 0xff, NULL },
- {0x15, 0xff, 0xff, 0x5b, NULL },
- {0x16, 0xff, 0xff, 0xff, NULL },
- {0x17, 0xff, 0xff, 0x00, NULL },
-
- {0 , 0xfe, 0 , 16, "Coin A" },
- {0x14, 0x01, 0x0f, 0x02, "4 Coins 1 Credits" },
- {0x14, 0x01, 0x0f, 0x05, "3 Coins 1 Credits" },
- {0x14, 0x01, 0x0f, 0x08, "2 Coins 1 Credits" },
- {0x14, 0x01, 0x0f, 0x04, "3 Coins 2 Credits" },
- {0x14, 0x01, 0x0f, 0x01, "4 Coins 3 Credits" },
- {0x14, 0x01, 0x0f, 0x0f, "1 Coin 1 Credits" },
- {0x14, 0x01, 0x0f, 0x03, "3 Coins 4 Credits" },
- {0x14, 0x01, 0x0f, 0x07, "2 Coins 3 Credits" },
- {0x14, 0x01, 0x0f, 0x0e, "1 Coin 2 Credits" },
- {0x14, 0x01, 0x0f, 0x06, "2 Coins 5 Credits" },
- {0x14, 0x01, 0x0f, 0x0d, "1 Coin 3 Credits" },
- {0x14, 0x01, 0x0f, 0x0c, "1 Coin 4 Credits" },
- {0x14, 0x01, 0x0f, 0x0b, "1 Coin 5 Credits" },
- {0x14, 0x01, 0x0f, 0x0a, "1 Coin 6 Credits" },
- {0x14, 0x01, 0x0f, 0x09, "1 Coin 7 Credits" },
- {0x14, 0x01, 0x0f, 0x00, "Free Play" },
-
- {0 , 0xfe, 0 , 16, "Coin B" },
- {0x14, 0x01, 0xf0, 0x20, "4 Coins 1 Credits" },
- {0x14, 0x01, 0xf0, 0x50, "3 Coins 1 Credits" },
- {0x14, 0x01, 0xf0, 0x80, "2 Coins 1 Credits" },
- {0x14, 0x01, 0xf0, 0x40, "3 Coins 2 Credits" },
- {0x14, 0x01, 0xf0, 0x10, "4 Coins 3 Credits" },
- {0x14, 0x01, 0xf0, 0xf0, "1 Coin 1 Credits" },
- {0x14, 0x01, 0xf0, 0x30, "3 Coins 4 Credits" },
- {0x14, 0x01, 0xf0, 0x70, "2 Coins 3 Credits" },
- {0x14, 0x01, 0xf0, 0xe0, "1 Coin 2 Credits" },
- {0x14, 0x01, 0xf0, 0x60, "2 Coins 5 Credits" },
- {0x14, 0x01, 0xf0, 0xd0, "1 Coin 3 Credits" },
- {0x14, 0x01, 0xf0, 0xc0, "1 Coin 4 Credits" },
- {0x14, 0x01, 0xf0, 0xb0, "1 Coin 5 Credits" },
- {0x14, 0x01, 0xf0, 0xa0, "1 Coin 6 Credits" },
- {0x14, 0x01, 0xf0, 0x90, "1 Coin 7 Credits" },
- {0x14, 0x01, 0xf0, 0x00, "None" },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x15, 0x01, 0x03, 0x03, "3" },
- {0x15, 0x01, 0x03, 0x02, "4" },
- {0x15, 0x01, 0x03, 0x01, "5" },
- {0x15, 0x01, 0x03, 0x00, "7" },
-
- {0 , 0xfe, 0 , 2, "Cabinet" },
- {0x15, 0x01, 0x04, 0x00, "Upright" },
- {0x15, 0x01, 0x04, 0x04, "Cocktail" },
-
- {0 , 0xfe, 0 , 4, "Bonus Life" },
- {0x15, 0x01, 0x18, 0x18, "50k and every 100k" },
- {0x15, 0x01, 0x18, 0x10, "30k" },
- {0x15, 0x01, 0x18, 0x08, "50k" },
- {0x15, 0x01, 0x18, 0x00, "100k" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x15, 0x01, 0x60, 0x60, "Easy" },
- {0x15, 0x01, 0x60, 0x40, "Normal" },
- {0x15, 0x01, 0x60, 0x20, "Hard" },
- {0x15, 0x01, 0x60, 0x00, "Hardest" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x15, 0x01, 0x80, 0x80, "Off" },
- {0x15, 0x01, 0x80, 0x00, "On" },
-
-// {0 , 0xfe, 0 , 2, "Flip Screen" },
-// {0x16, 0x01, 0x01, 0x01, "Off" },
-// {0x16, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Upright Controls" },
- {0x16, 0x01, 0x02, 0x02, "Single" },
- {0x16, 0x01, 0x02, 0x00, "Dual" },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x16, 0x01, 0x04, 0x04, "Off" },
- {0x16, 0x01, 0x04, 0x00, "On" },
-
- {0, 0xfe, 0, 3, "Color Settings" },
- {0x17, 0x01, 0x03, 0x00, "Proper Colors (Dark)" },
- {0x17, 0x01, 0x03, 0x01, "Light Colors" },
- {0x17, 0x01, 0x03, 0x02, "MAMEUIFx Colors (Mid)"},
-};
-
-STDDIPINFO(Nemesis)
-
-static struct BurnDIPInfo SalamandDIPList[]=
-{
- {0x12, 0xff, 0xff, 0xff, NULL },
- {0x13, 0xff, 0xff, 0x42, NULL },
- {0x14, 0xff, 0xff, 0x0e, NULL },
-
- {0 , 0xfe, 0 , 16, "Coinage" },
- {0x12, 0x01, 0x0f, 0x02, "4 Coins 1 Credits" },
- {0x12, 0x01, 0x0f, 0x05, "3 Coins 1 Credits" },
- {0x12, 0x01, 0x0f, 0x08, "2 Coins 1 Credits" },
- {0x12, 0x01, 0x0f, 0x04, "3 Coins 2 Credits" },
- {0x12, 0x01, 0x0f, 0x01, "4 Coins 3 Credits" },
- {0x12, 0x01, 0x0f, 0x0f, "1 Coin 1 Credits" },
- {0x12, 0x01, 0x0f, 0x03, "3 Coins 4 Credits" },
- {0x12, 0x01, 0x0f, 0x07, "2 Coins 3 Credits" },
- {0x12, 0x01, 0x0f, 0x0e, "1 Coin 2 Credits" },
- {0x12, 0x01, 0x0f, 0x06, "2 Coins 5 Credits" },
- {0x12, 0x01, 0x0f, 0x0d, "1 Coin 3 Credits" },
- {0x12, 0x01, 0x0f, 0x0c, "1 Coin 4 Credits" },
- {0x12, 0x01, 0x0f, 0x0b, "1 Coin 5 Credits" },
- {0x12, 0x01, 0x0f, 0x0a, "1 Coin 6 Credits" },
- {0x12, 0x01, 0x0f, 0x09, "1 Coin 7 Credits" },
- {0x12, 0x01, 0x0f, 0x00, "Disabled" },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x13, 0x01, 0x03, 0x03, "2" },
- {0x13, 0x01, 0x03, 0x02, "3" },
- {0x13, 0x01, 0x03, 0x01, "5" },
- {0x13, 0x01, 0x03, 0x00, "7" },
-
- {0 , 0xfe, 0 , 2, "Coin Slot(s)" },
- {0x13, 0x01, 0x04, 0x04, "1" },
- {0x13, 0x01, 0x04, 0x00, "2" },
-
- {0 , 0xfe, 0 , 4, "Max Credit(s)" },
- {0x13, 0x01, 0x18, 0x18, "1" },
- {0x13, 0x01, 0x18, 0x10, "3" },
- {0x13, 0x01, 0x18, 0x08, "5" },
- {0x13, 0x01, 0x18, 0x00, "9" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x13, 0x01, 0x60, 0x60, "Easy" },
- {0x13, 0x01, 0x60, 0x40, "Normal" },
- {0x13, 0x01, 0x60, 0x20, "Hard" },
- {0x13, 0x01, 0x60, 0x00, "Hardest" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x13, 0x01, 0x80, 0x80, "Off" },
- {0x13, 0x01, 0x80, 0x00, "On" },
-
-// {0 , 0xfe, 0 , 2, "Flip Screen" },
-// {0x14, 0x01, 0x02, 0x02, "Off" },
-// {0x14, 0x01, 0x02, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x14, 0x01, 0x08, 0x08, "Off" },
- {0x14, 0x01, 0x08, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Cabinet" },
- {0x14, 0x01, 0x80, 0x00, "Upright" },
- {0x14, 0x01, 0x80, 0x80, "Cocktail" },
-};
-
-STDDIPINFO(Salamand)
-
-static struct BurnDIPInfo LifefrcjDIPList[]=
-{
- {0x12, 0xff, 0xff, 0xff, NULL },
- {0x13, 0xff, 0xff, 0x42, NULL },
- {0x14, 0xff, 0xff, 0x0e, NULL },
-
- {0 , 0xfe, 0 , 16, "Coinage" },
- {0x12, 0x01, 0x0f, 0x02, "4 Coins 1 Credits" },
- {0x12, 0x01, 0x0f, 0x05, "3 Coins 1 Credits" },
- {0x12, 0x01, 0x0f, 0x08, "2 Coins 1 Credits" },
- {0x12, 0x01, 0x0f, 0x04, "3 Coins 2 Credits" },
- {0x12, 0x01, 0x0f, 0x01, "4 Coins 3 Credits" },
- {0x12, 0x01, 0x0f, 0x0f, "1 Coin 1 Credits" },
- {0x12, 0x01, 0x0f, 0x03, "3 Coins 4 Credits" },
- {0x12, 0x01, 0x0f, 0x07, "2 Coins 3 Credits" },
- {0x12, 0x01, 0x0f, 0x0e, "1 Coin 2 Credits" },
- {0x12, 0x01, 0x0f, 0x06, "2 Coins 5 Credits" },
- {0x12, 0x01, 0x0f, 0x0d, "1 Coin 3 Credits" },
- {0x12, 0x01, 0x0f, 0x0c, "1 Coin 4 Credits" },
- {0x12, 0x01, 0x0f, 0x0b, "1 Coin 5 Credits" },
- {0x12, 0x01, 0x0f, 0x0a, "1 Coin 6 Credits" },
- {0x12, 0x01, 0x0f, 0x09, "1 Coin 7 Credits" },
- {0x12, 0x01, 0x0f, 0x00, "Disabled" },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x13, 0x01, 0x03, 0x03, "2" },
- {0x13, 0x01, 0x03, 0x02, "3" },
- {0x13, 0x01, 0x03, 0x01, "5" },
- {0x13, 0x01, 0x03, 0x00, "7" },
-
- {0 , 0xfe, 0 , 2, "Coin Slot(s)" },
- {0x13, 0x01, 0x04, 0x04, "1" },
- {0x13, 0x01, 0x04, 0x00, "2" },
-
- {0 , 0xfe, 0 , 4, "Max Credit(s)" },
- {0x13, 0x01, 0x18, 0x18, "1" },
- {0x13, 0x01, 0x18, 0x10, "3" },
- {0x13, 0x01, 0x18, 0x08, "5" },
- {0x13, 0x01, 0x18, 0x00, "9" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x13, 0x01, 0x60, 0x60, "Easy" },
- {0x13, 0x01, 0x60, 0x40, "Normal" },
- {0x13, 0x01, 0x60, 0x20, "Hard" },
- {0x13, 0x01, 0x60, 0x00, "Hardest" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x13, 0x01, 0x80, 0x80, "Off" },
- {0x13, 0x01, 0x80, 0x00, "On" },
-
-// {0 , 0xfe, 0 , 2, "Flip Screen" },
-// {0x14, 0x01, 0x02, 0x02, "Off" },
-// {0x14, 0x01, 0x02, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x14, 0x01, 0x08, 0x08, "Off" },
- {0x14, 0x01, 0x08, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Cabinet" },
- {0x14, 0x01, 0x80, 0x00, "Upright" },
- {0x14, 0x01, 0x80, 0x80, "Cocktail" },
-};
-
-STDDIPINFO(Lifefrcj)
-
-static struct BurnDIPInfo TwinbeeDIPList[]=
-{
- {0x12, 0xff, 0xff, 0xff, NULL },
- {0x13, 0xff, 0xff, 0x56, NULL },
- {0x14, 0xff, 0xff, 0xfd, NULL },
- {0x15, 0xff, 0xff, 0x00, NULL },
-
- {0 , 0xfe, 0 , 16, "Coin A" },
- {0x12, 0x01, 0x0f, 0x02, "4 Coins 1 Credits" },
- {0x12, 0x01, 0x0f, 0x05, "3 Coins 1 Credits" },
- {0x12, 0x01, 0x0f, 0x08, "2 Coins 1 Credits" },
- {0x12, 0x01, 0x0f, 0x04, "3 Coins 2 Credits" },
- {0x12, 0x01, 0x0f, 0x01, "4 Coins 3 Credits" },
- {0x12, 0x01, 0x0f, 0x0f, "1 Coin 1 Credits" },
- {0x12, 0x01, 0x0f, 0x03, "3 Coins 4 Credits" },
- {0x12, 0x01, 0x0f, 0x07, "2 Coins 3 Credits" },
- {0x12, 0x01, 0x0f, 0x0e, "1 Coin 2 Credits" },
- {0x12, 0x01, 0x0f, 0x06, "2 Coins 5 Credits" },
- {0x12, 0x01, 0x0f, 0x0d, "1 Coin 3 Credits" },
- {0x12, 0x01, 0x0f, 0x0c, "1 Coin 4 Credits" },
- {0x12, 0x01, 0x0f, 0x0b, "1 Coin 5 Credits" },
- {0x12, 0x01, 0x0f, 0x0a, "1 Coin 6 Credits" },
- {0x12, 0x01, 0x0f, 0x09, "1 Coin 7 Credits" },
- {0x12, 0x01, 0x0f, 0x00, "Free Play" },
-
- {0 , 0xfe, 0 , 16, "Coin B" },
- {0x12, 0x01, 0xf0, 0x20, "4 Coins 1 Credits" },
- {0x12, 0x01, 0xf0, 0x50, "3 Coins 1 Credits" },
- {0x12, 0x01, 0xf0, 0x80, "2 Coins 1 Credits" },
- {0x12, 0x01, 0xf0, 0x40, "3 Coins 2 Credits" },
- {0x12, 0x01, 0xf0, 0x10, "4 Coins 3 Credits" },
- {0x12, 0x01, 0xf0, 0xf0, "1 Coin 1 Credits" },
- {0x12, 0x01, 0xf0, 0x30, "3 Coins 4 Credits" },
- {0x12, 0x01, 0xf0, 0x70, "2 Coins 3 Credits" },
- {0x12, 0x01, 0xf0, 0xe0, "1 Coin 2 Credits" },
- {0x12, 0x01, 0xf0, 0x60, "2 Coins 5 Credits" },
- {0x12, 0x01, 0xf0, 0xd0, "1 Coin 3 Credits" },
- {0x12, 0x01, 0xf0, 0xc0, "1 Coin 4 Credits" },
- {0x12, 0x01, 0xf0, 0xb0, "1 Coin 5 Credits" },
- {0x12, 0x01, 0xf0, 0xa0, "1 Coin 6 Credits" },
- {0x12, 0x01, 0xf0, 0x90, "1 Coin 7 Credits" },
- {0x12, 0x01, 0xf0, 0x00, "No Coin B" },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x13, 0x01, 0x03, 0x03, "2" },
- {0x13, 0x01, 0x03, 0x02, "3" },
- {0x13, 0x01, 0x03, 0x01, "4" },
- {0x13, 0x01, 0x03, 0x00, "7" },
-
- {0 , 0xfe, 0 , 4, "Bonus Life" },
- {0x13, 0x01, 0x18, 0x18, "20k 100k" },
- {0x13, 0x01, 0x18, 0x10, "30k 120k" },
- {0x13, 0x01, 0x18, 0x08, "40k 140k" },
- {0x13, 0x01, 0x18, 0x00, "50k 160k" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x13, 0x01, 0x60, 0x60, "Easy" },
- {0x13, 0x01, 0x60, 0x40, "Normal" },
- {0x13, 0x01, 0x60, 0x20, "Hard" },
- {0x13, 0x01, 0x60, 0x00, "Hardest" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x13, 0x01, 0x80, 0x80, "Off" },
- {0x13, 0x01, 0x80, 0x00, "On" },
-
-// {0 , 0xfe, 0 , 2, "Flip Screen" },
-// {0x14, 0x01, 0x01, 0x01, "Off" },
-// {0x14, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Players" },
- {0x14, 0x01, 0x02, 0x02, "1" },
- {0x14, 0x01, 0x02, 0x00, "2" },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x14, 0x01, 0x04, 0x04, "Off" },
- {0x14, 0x01, 0x04, 0x00, "On" },
-
- {0, 0xfe, 0, 3, "Color Settings" },
- {0x15, 0x01, 0x03, 0x00, "Proper Colors (Dark)" },
- {0x15, 0x01, 0x03, 0x01, "Light Colors" },
- {0x15, 0x01, 0x03, 0x02, "MAMEUIFx Colors (Mid)"},
-};
-
-STDDIPINFO(Twinbee)
-
-static struct BurnDIPInfo GradiusDIPList[]=
-{
- {0x14, 0xff, 0xff, 0xff, NULL },
- {0x15, 0xff, 0xff, 0x53, NULL },
- {0x16, 0xff, 0xff, 0xff, NULL },
- {0x17, 0xff, 0xff, 0x00, NULL },
-
- {0 , 0xfe, 0 , 16, "Coin A" },
- {0x14, 0x01, 0x0f, 0x02, "4 Coins 1 Credits" },
- {0x14, 0x01, 0x0f, 0x05, "3 Coins 1 Credits" },
- {0x14, 0x01, 0x0f, 0x08, "2 Coins 1 Credits" },
- {0x14, 0x01, 0x0f, 0x04, "3 Coins 2 Credits" },
- {0x14, 0x01, 0x0f, 0x01, "4 Coins 3 Credits" },
- {0x14, 0x01, 0x0f, 0x0f, "1 Coin 1 Credits" },
- {0x14, 0x01, 0x0f, 0x03, "3 Coins 4 Credits" },
- {0x14, 0x01, 0x0f, 0x07, "2 Coins 3 Credits" },
- {0x14, 0x01, 0x0f, 0x0e, "1 Coin 2 Credits" },
- {0x14, 0x01, 0x0f, 0x06, "2 Coins 5 Credits" },
- {0x14, 0x01, 0x0f, 0x0d, "1 Coin 3 Credits" },
- {0x14, 0x01, 0x0f, 0x0c, "1 Coin 4 Credits" },
- {0x14, 0x01, 0x0f, 0x0b, "1 Coin 5 Credits" },
- {0x14, 0x01, 0x0f, 0x0a, "1 Coin 6 Credits" },
- {0x14, 0x01, 0x0f, 0x09, "1 Coin 7 Credits" },
- {0x14, 0x01, 0x0f, 0x00, "Free Play" },
-
- {0 , 0xfe, 0 , 16, "Coin B" },
- {0x14, 0x01, 0xf0, 0x20, "4 Coins 1 Credits" },
- {0x14, 0x01, 0xf0, 0x50, "3 Coins 1 Credits" },
- {0x14, 0x01, 0xf0, 0x80, "2 Coins 1 Credits" },
- {0x14, 0x01, 0xf0, 0x40, "3 Coins 2 Credits" },
- {0x14, 0x01, 0xf0, 0x10, "4 Coins 3 Credits" },
- {0x14, 0x01, 0xf0, 0xf0, "1 Coin 1 Credits" },
- {0x14, 0x01, 0xf0, 0x30, "3 Coins 4 Credits" },
- {0x14, 0x01, 0xf0, 0x70, "2 Coins 3 Credits" },
- {0x14, 0x01, 0xf0, 0xe0, "1 Coin 2 Credits" },
- {0x14, 0x01, 0xf0, 0x60, "2 Coins 5 Credits" },
- {0x14, 0x01, 0xf0, 0xd0, "1 Coin 3 Credits" },
- {0x14, 0x01, 0xf0, 0xc0, "1 Coin 4 Credits" },
- {0x14, 0x01, 0xf0, 0xb0, "1 Coin 5 Credits" },
- {0x14, 0x01, 0xf0, 0xa0, "1 Coin 6 Credits" },
- {0x14, 0x01, 0xf0, 0x90, "1 Coin 7 Credits" },
- {0x14, 0x01, 0xf0, 0x00, "None" },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x15, 0x01, 0x03, 0x03, "3" },
- {0x15, 0x01, 0x03, 0x02, "4" },
- {0x15, 0x01, 0x03, 0x01, "5" },
- {0x15, 0x01, 0x03, 0x00, "7" },
-
- {0 , 0xfe, 0 , 2, "Cabinet" },
- {0x15, 0x01, 0x04, 0x00, "Upright" },
- {0x15, 0x01, 0x04, 0x04, "Cocktail" },
-
- {0 , 0xfe, 0 , 4, "Bonus Life" },
- {0x15, 0x01, 0x18, 0x18, "20k and every 70k" },
- {0x15, 0x01, 0x18, 0x10, "30k and every 80k" },
- {0x15, 0x01, 0x18, 0x08, "20k only" },
- {0x15, 0x01, 0x18, 0x00, "30k only" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x15, 0x01, 0x60, 0x60, "Easy" },
- {0x15, 0x01, 0x60, 0x40, "Normal" },
- {0x15, 0x01, 0x60, 0x20, "Hard" },
- {0x15, 0x01, 0x60, 0x00, "Hardest" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x15, 0x01, 0x80, 0x80, "Off" },
- {0x15, 0x01, 0x80, 0x00, "On" },
-
-// {0 , 0xfe, 0 , 2, "Flip Screen" },
-// {0x16, 0x01, 0x01, 0x01, "Off" },
-// {0x16, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Upright Controls" },
- {0x16, 0x01, 0x02, 0x02, "Single" },
- {0x16, 0x01, 0x02, 0x00, "Dual" },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x16, 0x01, 0x04, 0x04, "Off" },
- {0x16, 0x01, 0x04, 0x00, "On" },
-
- {0, 0xfe, 0, 3, "Color Settings" },
- {0x17, 0x01, 0x03, 0x00, "Proper Colors (Dark)" },
- {0x17, 0x01, 0x03, 0x01, "Light Colors" },
- {0x17, 0x01, 0x03, 0x02, "MAMEUIFx Colors (Mid)"},
-};
-
-STDDIPINFO(Gradius)
-
-static struct BurnDIPInfo GwarriorDIPList[]=
-{
- {0x14, 0xff, 0xff, 0xff, NULL },
- {0x15, 0xff, 0xff, 0x5d, NULL },
- {0x16, 0xff, 0xff, 0xfd, NULL },
- {0x17, 0xff, 0xff, 0x00, NULL },
-
- {0 , 0xfe, 0 , 16, "Coin A" },
- {0x14, 0x01, 0x0f, 0x02, "4 Coins 1 Credits" },
- {0x14, 0x01, 0x0f, 0x05, "3 Coins 1 Credits" },
- {0x14, 0x01, 0x0f, 0x08, "2 Coins 1 Credits" },
- {0x14, 0x01, 0x0f, 0x04, "3 Coins 2 Credits" },
- {0x14, 0x01, 0x0f, 0x01, "4 Coins 3 Credits" },
- {0x14, 0x01, 0x0f, 0x0f, "1 Coin 1 Credits" },
- {0x14, 0x01, 0x0f, 0x03, "3 Coins 4 Credits" },
- {0x14, 0x01, 0x0f, 0x07, "2 Coins 3 Credits" },
- {0x14, 0x01, 0x0f, 0x0e, "1 Coin 2 Credits" },
- {0x14, 0x01, 0x0f, 0x06, "2 Coins 5 Credits" },
- {0x14, 0x01, 0x0f, 0x0d, "1 Coin 3 Credits" },
- {0x14, 0x01, 0x0f, 0x0c, "1 Coin 4 Credits" },
- {0x14, 0x01, 0x0f, 0x0b, "1 Coin 5 Credits" },
- {0x14, 0x01, 0x0f, 0x0a, "1 Coin 6 Credits" },
- {0x14, 0x01, 0x0f, 0x09, "1 Coin 7 Credits" },
- {0x14, 0x01, 0x0f, 0x00, "Free Play" },
-
- {0 , 0xfe, 0 , 16, "No Coin B" },
- {0x14, 0x01, 0xf0, 0x20, "4 Coins 1 Credits" },
- {0x14, 0x01, 0xf0, 0x50, "3 Coins 1 Credits" },
- {0x14, 0x01, 0xf0, 0x80, "2 Coins 1 Credits" },
- {0x14, 0x01, 0xf0, 0x40, "3 Coins 2 Credits" },
- {0x14, 0x01, 0xf0, 0x10, "4 Coins 3 Credits" },
- {0x14, 0x01, 0xf0, 0xf0, "1 Coin 1 Credits" },
- {0x14, 0x01, 0xf0, 0x30, "3 Coins 4 Credits" },
- {0x14, 0x01, 0xf0, 0x70, "2 Coins 3 Credits" },
- {0x14, 0x01, 0xf0, 0xe0, "1 Coin 2 Credits" },
- {0x14, 0x01, 0xf0, 0x60, "2 Coins 5 Credits" },
- {0x14, 0x01, 0xf0, 0xd0, "1 Coin 3 Credits" },
- {0x14, 0x01, 0xf0, 0xc0, "1 Coin 4 Credits" },
- {0x14, 0x01, 0xf0, 0xb0, "1 Coin 5 Credits" },
- {0x14, 0x01, 0xf0, 0xa0, "1 Coin 6 Credits" },
- {0x14, 0x01, 0xf0, 0x90, "1 Coin 7 Credits" },
- {0x14, 0x01, 0xf0, 0x00, "None" },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x15, 0x01, 0x03, 0x03, "1" },
- {0x15, 0x01, 0x03, 0x02, "2" },
- {0x15, 0x01, 0x03, 0x01, "3" },
- {0x15, 0x01, 0x03, 0x00, "7" },
-
- {0 , 0xfe, 0 , 4, "Bonus Life" },
- {0x15, 0x01, 0x18, 0x18, "30k 100k 200k 400k" },
- {0x15, 0x01, 0x18, 0x10, "40k 120k 240k 480k" },
- {0x15, 0x01, 0x18, 0x08, "50k 150k 300k 600k" },
- {0x15, 0x01, 0x18, 0x00, "100k 200k 400k 800k" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x15, 0x01, 0x60, 0x60, "Easy" },
- {0x15, 0x01, 0x60, 0x40, "Normal" },
- {0x15, 0x01, 0x60, 0x20, "Hard" },
- {0x15, 0x01, 0x60, 0x00, "Hardest" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x15, 0x01, 0x80, 0x80, "Off" },
- {0x15, 0x01, 0x80, 0x00, "On" },
-
-// {0 , 0xfe, 0 , 2, "Flip Screen" },
-// {0x16, 0x01, 0x01, 0x01, "Off" },
-// {0x16, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Players" },
- {0x16, 0x01, 0x02, 0x02, "1" },
- {0x16, 0x01, 0x02, 0x00, "2" },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x16, 0x01, 0x04, 0x04, "Off" },
- {0x16, 0x01, 0x04, 0x00, "On" },
-
- {0, 0xfe, 0, 3, "Color Settings" },
- {0x17, 0x01, 0x03, 0x00, "Proper Colors (Dark)" },
- {0x17, 0x01, 0x03, 0x01, "Light Colors" },
- {0x17, 0x01, 0x03, 0x02, "MAMEUIFx Colors (Mid)"},
-};
-
-STDDIPINFO(Gwarrior)
-
-static struct BurnDIPInfo NyanpaniDIPList[]=
-{
- {0x14, 0xff, 0xff, 0xff, NULL },
- {0x15, 0xff, 0xff, 0x42, NULL },
- {0x16, 0xff, 0xff, 0x8e, NULL },
-
- {0 , 0xfe, 0 , 16, "Coin A" },
- {0x14, 0x01, 0x0f, 0x02, "4 Coins 1 Credits" },
- {0x14, 0x01, 0x0f, 0x05, "3 Coins 1 Credits" },
- {0x14, 0x01, 0x0f, 0x08, "2 Coins 1 Credits" },
- {0x14, 0x01, 0x0f, 0x04, "3 Coins 2 Credits" },
- {0x14, 0x01, 0x0f, 0x01, "4 Coins 3 Credits" },
- {0x14, 0x01, 0x0f, 0x0f, "1 Coin 1 Credits" },
- {0x14, 0x01, 0x0f, 0x03, "3 Coins 4 Credits" },
- {0x14, 0x01, 0x0f, 0x07, "2 Coins 3 Credits" },
- {0x14, 0x01, 0x0f, 0x0e, "1 Coin 2 Credits" },
- {0x14, 0x01, 0x0f, 0x06, "2 Coins 5 Credits" },
- {0x14, 0x01, 0x0f, 0x0d, "1 Coin 3 Credits" },
- {0x14, 0x01, 0x0f, 0x0c, "1 Coin 4 Credits" },
- {0x14, 0x01, 0x0f, 0x0b, "1 Coin 5 Credits" },
- {0x14, 0x01, 0x0f, 0x0a, "1 Coin 6 Credits" },
- {0x14, 0x01, 0x0f, 0x09, "1 Coin 7 Credits" },
- {0x14, 0x01, 0x0f, 0x00, "Free Play" },
-
- {0 , 0xfe, 0 , 16, "No Coin B" },
- {0x14, 0x01, 0xf0, 0x20, "4 Coins 1 Credits" },
- {0x14, 0x01, 0xf0, 0x50, "3 Coins 1 Credits" },
- {0x14, 0x01, 0xf0, 0x80, "2 Coins 1 Credits" },
- {0x14, 0x01, 0xf0, 0x40, "3 Coins 2 Credits" },
- {0x14, 0x01, 0xf0, 0x10, "4 Coins 3 Credits" },
- {0x14, 0x01, 0xf0, 0xf0, "1 Coin 1 Credits" },
- {0x14, 0x01, 0xf0, 0x30, "3 Coins 4 Credits" },
- {0x14, 0x01, 0xf0, 0x70, "2 Coins 3 Credits" },
- {0x14, 0x01, 0xf0, 0xe0, "1 Coin 2 Credits" },
- {0x14, 0x01, 0xf0, 0x60, "2 Coins 5 Credits" },
- {0x14, 0x01, 0xf0, 0xd0, "1 Coin 3 Credits" },
- {0x14, 0x01, 0xf0, 0xc0, "1 Coin 4 Credits" },
- {0x14, 0x01, 0xf0, 0xb0, "1 Coin 5 Credits" },
- {0x14, 0x01, 0xf0, 0xa0, "1 Coin 6 Credits" },
- {0x14, 0x01, 0xf0, 0x90, "1 Coin 7 Credits" },
- {0x14, 0x01, 0xf0, 0x00, "Invalid" },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x15, 0x01, 0x03, 0x03, "2" },
- {0x15, 0x01, 0x03, 0x02, "3" },
- {0x15, 0x01, 0x03, 0x01, "5" },
- {0x15, 0x01, 0x03, 0x00, "7" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x15, 0x01, 0x60, 0x60, "Easy" },
- {0x15, 0x01, 0x60, 0x40, "Normal" },
- {0x15, 0x01, 0x60, 0x20, "Hard" },
- {0x15, 0x01, 0x60, 0x00, "Hardest" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x15, 0x01, 0x80, 0x80, "Off" },
- {0x15, 0x01, 0x80, 0x00, "On" },
-
-// {0 , 0xfe, 0 , 2, "Flip Screen" },
-// {0x16, 0x01, 0x02, 0x02, "Off" },
-// {0x16, 0x01, 0x02, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x16, 0x01, 0x08, 0x08, "Off" },
- {0x16, 0x01, 0x08, 0x00, "On" },
-};
-
-STDDIPINFO(Nyanpani)
-
-static struct BurnDIPInfo BlkpnthrDIPList[]=
-{
- {0x12, 0xff, 0xff, 0xff, NULL },
- {0x13, 0xff, 0xff, 0x53, NULL },
- {0x14, 0xff, 0xff, 0xa8, NULL },
-
- {0 , 0xfe, 0 , 16, "Coin A" },
- {0x12, 0x01, 0x0f, 0x02, "4 Coins 1 Credits" },
- {0x12, 0x01, 0x0f, 0x05, "3 Coins 1 Credits" },
- {0x12, 0x01, 0x0f, 0x08, "2 Coins 1 Credits" },
- {0x12, 0x01, 0x0f, 0x04, "3 Coins 2 Credits" },
- {0x12, 0x01, 0x0f, 0x01, "4 Coins 3 Credits" },
- {0x12, 0x01, 0x0f, 0x0f, "1 Coin 1 Credits" },
- {0x12, 0x01, 0x0f, 0x03, "3 Coins 4 Credits" },
- {0x12, 0x01, 0x0f, 0x07, "2 Coins 3 Credits" },
- {0x12, 0x01, 0x0f, 0x0e, "1 Coin 2 Credits" },
- {0x12, 0x01, 0x0f, 0x06, "2 Coins 5 Credits" },
- {0x12, 0x01, 0x0f, 0x0d, "1 Coin 3 Credits" },
- {0x12, 0x01, 0x0f, 0x0c, "1 Coin 4 Credits" },
- {0x12, 0x01, 0x0f, 0x0b, "1 Coin 5 Credits" },
- {0x12, 0x01, 0x0f, 0x0a, "1 Coin 6 Credits" },
- {0x12, 0x01, 0x0f, 0x09, "1 Coin 7 Credits" },
- {0x12, 0x01, 0x0f, 0x00, "Free Play" },
-
- {0 , 0xfe, 0 , 16, "Coin B" },
- {0x12, 0x01, 0xf0, 0x20, "4 Coins 1 Credits" },
- {0x12, 0x01, 0xf0, 0x50, "3 Coins 1 Credits" },
- {0x12, 0x01, 0xf0, 0x80, "2 Coins 1 Credits" },
- {0x12, 0x01, 0xf0, 0x40, "3 Coins 2 Credits" },
- {0x12, 0x01, 0xf0, 0x10, "4 Coins 3 Credits" },
- {0x12, 0x01, 0xf0, 0xf0, "1 Coin 1 Credits" },
- {0x12, 0x01, 0xf0, 0x30, "3 Coins 4 Credits" },
- {0x12, 0x01, 0xf0, 0x70, "2 Coins 3 Credits" },
- {0x12, 0x01, 0xf0, 0xe0, "1 Coin 2 Credits" },
- {0x12, 0x01, 0xf0, 0x60, "2 Coins 5 Credits" },
- {0x12, 0x01, 0xf0, 0xd0, "1 Coin 3 Credits" },
- {0x12, 0x01, 0xf0, 0xc0, "1 Coin 4 Credits" },
- {0x12, 0x01, 0xf0, 0xb0, "1 Coin 5 Credits" },
- {0x12, 0x01, 0xf0, 0xa0, "1 Coin 6 Credits" },
- {0x12, 0x01, 0xf0, 0x90, "1 Coin 7 Credits" },
- {0x12, 0x01, 0xf0, 0x00, "None" },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x13, 0x01, 0x03, 0x03, "3" },
- {0x13, 0x01, 0x03, 0x02, "4" },
- {0x13, 0x01, 0x03, 0x01, "5" },
- {0x13, 0x01, 0x03, 0x00, "7" },
-
- {0 , 0xfe, 0 , 2, "Cabinet" },
- {0x13, 0x01, 0x04, 0x00, "Upright" },
- {0x13, 0x01, 0x04, 0x04, "Cocktail" },
-
- {0 , 0xfe, 0 , 4, "Bonus Life" },
- {0x13, 0x01, 0x18, 0x18, "50k 100k" },
- {0x13, 0x01, 0x18, 0x10, "20k 50k" },
- {0x13, 0x01, 0x18, 0x08, "30k 70k" },
- {0x13, 0x01, 0x18, 0x00, "80k 150k" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x13, 0x01, 0x60, 0x60, "Easy" },
- {0x13, 0x01, 0x60, 0x40, "Normal" },
- {0x13, 0x01, 0x60, 0x20, "Hard" },
- {0x13, 0x01, 0x60, 0x00, "Hardest" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x13, 0x01, 0x80, 0x80, "Off" },
- {0x13, 0x01, 0x80, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x14, 0x01, 0x08, 0x08, "Off" },
- {0x14, 0x01, 0x08, 0x00, "On" },
-
-// {0 , 0xfe, 0 , 2, "Flip Screen" },
-// {0x14, 0x01, 0x20, 0x20, "Off" },
-// {0x14, 0x01, 0x20, 0x00, "On" },
-
- {0 , 0xfe, 0 , 4, "Continue" },
- {0x14, 0x01, 0xc0, 0xc0, "Off" },
- {0x14, 0x01, 0xc0, 0x80, "2 Areas" },
- {0x14, 0x01, 0xc0, 0x40, "3 Areas" },
- {0x14, 0x01, 0xc0, 0x00, "4 Areas" },
-};
-
-STDDIPINFO(Blkpnthr)
-
-static struct BurnDIPInfo CitybombDIPList[]=
-{
- {0x14, 0xff, 0xff, 0xff, NULL },
- {0x15, 0xff, 0xff, 0x53, NULL },
- {0x16, 0xff, 0xff, 0x8c, NULL },
-
- {0 , 0xfe, 0 , 16, "Coin A" },
- {0x14, 0x01, 0x0f, 0x02, "4 Coins 1 Credits" },
- {0x14, 0x01, 0x0f, 0x05, "3 Coins 1 Credits" },
- {0x14, 0x01, 0x0f, 0x08, "2 Coins 1 Credits" },
- {0x14, 0x01, 0x0f, 0x04, "3 Coins 2 Credits" },
- {0x14, 0x01, 0x0f, 0x01, "4 Coins 3 Credits" },
- {0x14, 0x01, 0x0f, 0x0f, "1 Coin 1 Credits" },
- {0x14, 0x01, 0x0f, 0x03, "3 Coins 4 Credits" },
- {0x14, 0x01, 0x0f, 0x07, "2 Coins 3 Credits" },
- {0x14, 0x01, 0x0f, 0x0e, "1 Coin 2 Credits" },
- {0x14, 0x01, 0x0f, 0x06, "2 Coins 5 Credits" },
- {0x14, 0x01, 0x0f, 0x0d, "1 Coin 3 Credits" },
- {0x14, 0x01, 0x0f, 0x0c, "1 Coin 4 Credits" },
- {0x14, 0x01, 0x0f, 0x0b, "1 Coin 5 Credits" },
- {0x14, 0x01, 0x0f, 0x0a, "1 Coin 6 Credits" },
- {0x14, 0x01, 0x0f, 0x09, "1 Coin 7 Credits" },
- {0x14, 0x01, 0x0f, 0x00, "Free Play" },
-
- {0 , 0xfe, 0 , 16, "Coin B" },
- {0x14, 0x01, 0xf0, 0x20, "4 Coins 1 Credits" },
- {0x14, 0x01, 0xf0, 0x50, "3 Coins 1 Credits" },
- {0x14, 0x01, 0xf0, 0x80, "2 Coins 1 Credits" },
- {0x14, 0x01, 0xf0, 0x40, "3 Coins 2 Credits" },
- {0x14, 0x01, 0xf0, 0x10, "4 Coins 3 Credits" },
- {0x14, 0x01, 0xf0, 0xf0, "1 Coin 1 Credits" },
- {0x14, 0x01, 0xf0, 0x30, "3 Coins 4 Credits" },
- {0x14, 0x01, 0xf0, 0x70, "2 Coins 3 Credits" },
- {0x14, 0x01, 0xf0, 0xe0, "1 Coin 2 Credits" },
- {0x14, 0x01, 0xf0, 0x60, "2 Coins 5 Credits" },
- {0x14, 0x01, 0xf0, 0xd0, "1 Coin 3 Credits" },
- {0x14, 0x01, 0xf0, 0xc0, "1 Coin 4 Credits" },
- {0x14, 0x01, 0xf0, 0xb0, "1 Coin 5 Credits" },
- {0x14, 0x01, 0xf0, 0xa0, "1 Coin 6 Credits" },
- {0x14, 0x01, 0xf0, 0x90, "1 Coin 7 Credits" },
- {0x14, 0x01, 0xf0, 0x00, "Invalid" },
-
-// {0 , 0xfe, 0 , 2, "Cabinet" },
-// {0x15, 0x01, 0x04, 0x00, "Upright" },
-// {0x15, 0x01, 0x04, 0x04, "Cocktail" },
-
- {0 , 0xfe, 0 , 4, "Qualify" },
- {0x15, 0x01, 0x18, 0x18, "Long" },
- {0x15, 0x01, 0x18, 0x10, "Normal" },
- {0x15, 0x01, 0x18, 0x08, "Short" },
- {0x15, 0x01, 0x18, 0x00, "Very Short" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x15, 0x01, 0x60, 0x60, "Easy" },
- {0x15, 0x01, 0x60, 0x40, "Normal" },
- {0x15, 0x01, 0x60, 0x20, "Hard" },
- {0x15, 0x01, 0x60, 0x00, "Hardest" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x15, 0x01, 0x80, 0x80, "Off" },
- {0x15, 0x01, 0x80, 0x00, "On" },
-
-// {0 , 0xfe, 0 , 2, "Flip Screen" },
-// {0x16, 0x01, 0x02, 0x00, "Off" },
-// {0x16, 0x01, 0x02, 0x02, "On" },
-
- {0 , 0xfe, 0 , 2, "Upright Controls" },
- {0x16, 0x01, 0x04, 0x04, "Single" },
- {0x16, 0x01, 0x04, 0x00, "Dual" },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x16, 0x01, 0x08, 0x08, "Off" },
- {0x16, 0x01, 0x08, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Device Type" },
- {0x16, 0x01, 0x80, 0x00, "Handle (broken!)" },
- {0x16, 0x01, 0x80, 0x80, "Joystick" },
-};
-
-STDDIPINFO(Citybomb)
-
-static struct BurnDIPInfo KonamigtDIPList[]=
-{
- {0x07, 0xff, 0xff, 0xff, NULL },
- {0x08, 0xff, 0xff, 0x20, NULL },
- {0x09, 0xff, 0xff, 0xff, NULL },
- {0x0a, 0xff, 0xff, 0x00, NULL },
-
- {0 , 0xfe, 0 , 16, "Coin A" },
- {0x07, 0x01, 0x0f, 0x02, "4 Coins 1 Credits" },
- {0x07, 0x01, 0x0f, 0x05, "3 Coins 1 Credits" },
- {0x07, 0x01, 0x0f, 0x08, "2 Coins 1 Credits" },
- {0x07, 0x01, 0x0f, 0x04, "3 Coins 2 Credits" },
- {0x07, 0x01, 0x0f, 0x01, "4 Coins 3 Credits" },
- {0x07, 0x01, 0x0f, 0x0f, "1 Coin 1 Credits" },
- {0x07, 0x01, 0x0f, 0x03, "3 Coins 4 Credits" },
- {0x07, 0x01, 0x0f, 0x07, "2 Coins 3 Credits" },
- {0x07, 0x01, 0x0f, 0x0e, "1 Coin 2 Credits" },
- {0x07, 0x01, 0x0f, 0x06, "2 Coins 5 Credits" },
- {0x07, 0x01, 0x0f, 0x0d, "1 Coin 3 Credits" },
- {0x07, 0x01, 0x0f, 0x0c, "1 Coin 4 Credits" },
- {0x07, 0x01, 0x0f, 0x0b, "1 Coin 5 Credits" },
- {0x07, 0x01, 0x0f, 0x0a, "1 Coin 6 Credits" },
- {0x07, 0x01, 0x0f, 0x09, "1 Coin 7 Credits" },
- {0x07, 0x01, 0x0f, 0x00, "Free Play" },
-
- {0 , 0xfe, 0 , 16, "Coin B" },
- {0x07, 0x01, 0xf0, 0x20, "4 Coins 1 Credits" },
- {0x07, 0x01, 0xf0, 0x50, "3 Coins 1 Credits" },
- {0x07, 0x01, 0xf0, 0x80, "2 Coins 1 Credits" },
- {0x07, 0x01, 0xf0, 0x40, "3 Coins 2 Credits" },
- {0x07, 0x01, 0xf0, 0x10, "4 Coins 3 Credits" },
- {0x07, 0x01, 0xf0, 0xf0, "1 Coin 1 Credits" },
- {0x07, 0x01, 0xf0, 0x30, "3 Coins 4 Credits" },
- {0x07, 0x01, 0xf0, 0x70, "2 Coins 3 Credits" },
- {0x07, 0x01, 0xf0, 0xe0, "1 Coin 2 Credits" },
- {0x07, 0x01, 0xf0, 0x60, "2 Coins 5 Credits" },
- {0x07, 0x01, 0xf0, 0xd0, "1 Coin 3 Credits" },
- {0x07, 0x01, 0xf0, 0xc0, "1 Coin 4 Credits" },
- {0x07, 0x01, 0xf0, 0xb0, "1 Coin 5 Credits" },
- {0x07, 0x01, 0xf0, 0xa0, "1 Coin 6 Credits" },
- {0x07, 0x01, 0xf0, 0x90, "1 Coin 7 Credits" },
- {0x07, 0x01, 0xf0, 0x00, "No Coin B" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x08, 0x01, 0x30, 0x30, "Easy" },
- {0x08, 0x01, 0x30, 0x20, "Normal" },
- {0x08, 0x01, 0x30, 0x10, "Hard" },
- {0x08, 0x01, 0x30, 0x00, "Hardest" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x08, 0x01, 0x80, 0x80, "Off" },
- {0x08, 0x01, 0x80, 0x00, "On" },
-
-// {0 , 0xfe, 0 , 2, "Flip Screen" },
-// {0x09, 0x01, 0x01, 0x01, "Off" },
-// {0x09, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x09, 0x01, 0x04, 0x04, "Off" },
- {0x09, 0x01, 0x04, 0x00, "On" },
-
- {0, 0xfe, 0, 3, "Color Settings" },
- {0x0a, 0x01, 0x03, 0x00, "Proper Colors (Dark)" },
- {0x0a, 0x01, 0x03, 0x01, "Light Colors" },
- {0x0a, 0x01, 0x03, 0x02, "MAMEUIFx Colors (Mid)"},
-};
-
-STDDIPINFO(Konamigt)
-
-static struct BurnDIPInfo HcrashDIPList[]=
-{
- {0x08, 0xff, 0xff, 0xff, NULL },
- {0x09, 0xff, 0xff, 0x41, NULL },
- {0x0a, 0xff, 0xff, 0x0d, NULL },
-
- {0 , 0xfe, 0 , 16, "Coin A" },
- {0x08, 0x01, 0x0f, 0x02, "4 Coins 1 Credits" },
- {0x08, 0x01, 0x0f, 0x05, "3 Coins 1 Credits" },
- {0x08, 0x01, 0x0f, 0x08, "2 Coins 1 Credits" },
- {0x08, 0x01, 0x0f, 0x04, "3 Coins 2 Credits" },
- {0x08, 0x01, 0x0f, 0x01, "4 Coins 3 Credits" },
- {0x08, 0x01, 0x0f, 0x0f, "1 Coin 1 Credits" },
- {0x08, 0x01, 0x0f, 0x03, "3 Coins 4 Credits" },
- {0x08, 0x01, 0x0f, 0x07, "2 Coins 3 Credits" },
- {0x08, 0x01, 0x0f, 0x0e, "1 Coin 2 Credits" },
- {0x08, 0x01, 0x0f, 0x06, "2 Coins 5 Credits" },
- {0x08, 0x01, 0x0f, 0x0d, "1 Coin 3 Credits" },
- {0x08, 0x01, 0x0f, 0x0c, "1 Coin 4 Credits" },
- {0x08, 0x01, 0x0f, 0x0b, "1 Coin 5 Credits" },
- {0x08, 0x01, 0x0f, 0x0a, "1 Coin 6 Credits" },
- {0x08, 0x01, 0x0f, 0x09, "1 Coin 7 Credits" },
- {0x08, 0x01, 0x0f, 0x00, "Free Play" },
-
- {0 , 0xfe, 0 , 16, "Coin B" },
- {0x08, 0x01, 0xf0, 0x20, "4 Coins 1 Credits" },
- {0x08, 0x01, 0xf0, 0x50, "3 Coins 1 Credits" },
- {0x08, 0x01, 0xf0, 0x80, "2 Coins 1 Credits" },
- {0x08, 0x01, 0xf0, 0x40, "3 Coins 2 Credits" },
- {0x08, 0x01, 0xf0, 0x10, "4 Coins 3 Credits" },
- {0x08, 0x01, 0xf0, 0xf0, "1 Coin 1 Credits" },
- {0x08, 0x01, 0xf0, 0x30, "3 Coins 4 Credits" },
- {0x08, 0x01, 0xf0, 0x70, "2 Coins 3 Credits" },
- {0x08, 0x01, 0xf0, 0xe0, "1 Coin 2 Credits" },
- {0x08, 0x01, 0xf0, 0x60, "2 Coins 5 Credits" },
- {0x08, 0x01, 0xf0, 0xd0, "1 Coin 3 Credits" },
- {0x08, 0x01, 0xf0, 0xc0, "1 Coin 4 Credits" },
- {0x08, 0x01, 0xf0, 0xb0, "1 Coin 5 Credits" },
- {0x08, 0x01, 0xf0, 0xa0, "1 Coin 6 Credits" },
- {0x08, 0x01, 0xf0, 0x90, "1 Coin 7 Credits" },
- {0x08, 0x01, 0xf0, 0x00, "Invalid" },
-
- {0 , 0xfe, 0 , 1, "Cabinet" },
- {0x09, 0x01, 0x03, 0x01, "Konami GT with brake" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x09, 0x01, 0x60, 0x60, "Easy" },
- {0x09, 0x01, 0x60, 0x40, "Normal" },
- {0x09, 0x01, 0x60, 0x20, "Hard" },
- {0x09, 0x01, 0x60, 0x00, "Hardest" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x09, 0x01, 0x80, 0x80, "Off" },
- {0x09, 0x01, 0x80, 0x00, "On" },
-
-// {0 , 0xfe, 0 , 2, "Flip Screen" },
-// {0x0a, 0x01, 0x01, 0x01, "Off" },
-// {0x0a, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Quantity of Initials" },
- {0x0a, 0x01, 0x02, 0x00, "3" },
- {0x0a, 0x01, 0x02, 0x02, "7" },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x0a, 0x01, 0x04, 0x04, "Off" },
- {0x0a, 0x01, 0x04, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Speed Unit" },
- {0x0a, 0x01, 0x08, 0x08, "km/h" },
- {0x0a, 0x01, 0x08, 0x00, "M.P.H." },
-};
-
-STDDIPINFO(Hcrash)
-
-static UINT32 scalerange(UINT32 x, UINT32 in_min, UINT32 in_max, UINT32 out_min, UINT32 out_max) {
- return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
-}
-
-static UINT8 konamigt_read_wheel()
-{
- UINT8 Temp = 0x7f + (DrvAnalogPort0 >> 4);
- UINT8 Temp2 = 0;
-
- Temp2 = scalerange(Temp, 0x3f, 0xc0, 0x00, 0x7f); // konami gt scalings
- //bprintf(0, _T("Port0-temp[%X] scaled[%X]\n"), Temp, Temp2); // debug, do not remove.
- return Temp2;
-}
-
-static UINT16 konamigt_read_analog(int /*Offset*/)
-{
- UINT16 nRet = 0;
-
- if (DrvInputs[3] & 0x20) nRet |= 0x0300; // break
- if (DrvInputs[3] & 0x40) nRet |= 0xf000; // accel
-
- nRet |= DrvDial1 & 0x7f;
-
- return nRet;
-}
-
-static void __fastcall nemesis_main_write_byte(UINT32 address, UINT8 data)
-{
- switch (address)
- {
- case 0x05c001:
- *soundlatch = data;
- return;
-
- case 0x05c801:
- watchdog = 0;
- return;
-
- case 0x05e000:
- // coin counter
- return;
-
- case 0x05e001:
- *m68k_irq_enable = data;
- return;
-
- case 0x05e004:
- if (data & 1) {
- ZetSetVector(0xff);
- ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
- }
- return;
-
- case 0x05e005:
- *flipscreen = data & 0x01;
- *tilemap_flip_x = data & 0x01;
- return;
-
- case 0x05e007:
- *tilemap_flip_y = data & 0x01;
- return;
- }
-
-// bprintf (0, _T("WB %5.5x, %2.2x\n"), address, data);
-}
-
-static void __fastcall nemesis_main_write_word(UINT32 address, UINT16 data)
-{
- if (address && data) return; // kill warnings
-
-// bprintf (0, _T("WW %5.5x, %4.4x\n"), address, data);
-}
-
-static UINT8 __fastcall nemesis_main_read_byte(UINT32 address)
-{
-
- switch (address)
- {
- case 0x05c401:
- return DrvDips[0];
-
- case 0x05c403:
- return DrvDips[1];
-
- case 0x05cc01:
- return DrvInputs[0];
-
- case 0x05cc03:
- return DrvInputs[1];
-
- case 0x05cc05:
- return DrvInputs[2];
-
- case 0x05cc07:
- return DrvDips[2];
-
- case 0x070000:
- return konamigt_read_analog(0) >> 8;
-
- case 0x070001:
- return konamigt_read_analog(1) & 0xff;
- }
-
-// bprintf (0, _T("RB %5.5x\n"), address);
-
- return 0;
-}
-
-static UINT16 __fastcall nemesis_main_read_word(UINT32 address)
-{
- switch (address)
- {
- case 0x070000:
- case 0x0c2000:
- return konamigt_read_analog(0);
- }
-
-// bprintf (0, _T("RW %5.5x\n"), address);
-
- return 0;
-}
-
-static void __fastcall konamigt_main_write_byte(UINT32 address, UINT8 data)
-{
- switch (address)
- {
- case 0x05e001:
- *m68k_irq_enable2 = data;
- return;
-
- case 0x05e003:
- *m68k_irq_enable = data;
- return;
- }
-
- nemesis_main_write_byte(address, data);
-}
-
-static void __fastcall salamand_main_write_byte(UINT32 address, UINT8 data)
-{
- switch (address)
- {
- case 0x0a0000:
- if (data & 0x08) ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
- return;
-
- case 0x0a0001:
- {
- *m68k_irq_enable = data & 0x01;
- *m68k_irq_enable2 = data & 0x02;
- *flipscreen = data & 0x04;
- *tilemap_flip_x = data & 0x04;
- *tilemap_flip_y = data & 0x08;
- }
- return;
-
- case 0x0c0001:
- *soundlatch = data;
- return;
-
- case 0x0c0005:
- case 0x0c0008:
- case 0x0c0009:
- watchdog = 0;
- return;
- }
-
-// bprintf (0, _T("WB %5.5x, %2.2x\n"), address, data);
-}
-
-static void __fastcall salamand_main_write_word(UINT32 address, UINT16 data)
-{
- switch (address)
- {
- case 0x0a0000:
- {
- *m68k_irq_enable = data & 0x01;
- *m68k_irq_enable2 = data & 0x02;
- *flipscreen = data & 0x04;
- *tilemap_flip_x = data & 0x04;
- *tilemap_flip_y = data & 0x08;
- if (data & 0x0800) ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
- }
- return;
- }
-
-// bprintf (0, _T("WW %5.5x, %4.4x\n"), address, data);
-}
-
-static UINT8 __fastcall salamand_main_read_byte(UINT32 address)
-{
- switch (address)
- {
- case 0x0c0003:
- return DrvDips[0];
-
- case 0x0c2001:
- return DrvInputs[0];
-
- case 0x0c2003:
- return DrvInputs[1];
-
- case 0x0c2005:
- return DrvInputs[2];
-
- case 0x0c2007:
- return DrvDips[1];
- }
-
-// bprintf (0, _T("RB %5.5x\n"), address);
-
- return 0;
-}
-
-static UINT8 __fastcall hcrash_main_read_byte(UINT32 address)
-{
- switch (address)
- {
- case 0x0c0003:
- return DrvDips[0];
-
- case 0x0c0005:
- return DrvDips[1];
-
- case 0x0c0007:
- return DrvDips[2]; //DrvInputs[2];
-
- case 0x0c000b:
- return DrvInputs[0];
-
- case 0x0c2000:
- return konamigt_read_analog(0) >> 8;
-
- case 0x0c2001:
- return konamigt_read_analog(1) & 0xff;
-
- case 0x0c4001:
- return DrvInputs[3];
-
- case 0x0c4002:
- case 0x0c4003:
- switch (selected_ip & 0xf)
- { // From WEC Le Mans Schems:
- case 0xc: return (DrvInputs[3] & 0x40); // Accel - Schems: Accelevr
- case 0: return (DrvInputs[3] & 0x40);
- case 0xd: return konamigt_read_wheel(); // Wheel - Schems: Handlevr
- case 1: return konamigt_read_wheel();
-
- default: return ~0;
- }
- }
-
-// bprintf (0, _T("RB %5.5x\n"), address);
-
- return 0;
-}
-
-static void __fastcall hcrash_main_write_byte(UINT32 address, UINT8 data)
-{
- switch (address)
- {
- case 0x0a0000:
- if (data & 0x08) ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
- return;
-
- case 0x0a0001:
- {
- *m68k_irq_enable = data & 0x01;
- *m68k_irq_enable2 = data & 0x02;
- *flipscreen = data & 0x04;
- *tilemap_flip_x = data & 0x04;
- *tilemap_flip_y = data & 0x08;
- }
- return;
-
- case 0x0c0001:
- *soundlatch = data;
- return;
-
- case 0x0c0005:
- case 0x0c0008:
- case 0x0c0009:
- watchdog = 0;
- return;
-
- case 0x0c2801:
- return;
-
- case 0x0c2802:
- return;
-
- case 0x0c2803:
- *m68k_irq_enable2 = data & 1;
- return;
-
- case 0x0c2805:
- return;
-
- case 0x0c4000:
- case 0x0c4001: //bprintf(0, _T("s_ip ad[%X:%X]"), address & 1, data);
- selected_ip = data;
- return;
- }
-
-// bprintf (0, _T("WB %5.5x, %2.2x\n"), address, data);
-}
-
-static void __fastcall gx400_main_write_byte(UINT32 address, UINT8 data)
-{
- if ((address & 0xff8001) == 0x020001) {
- DrvShareRAM[(address & 0x7ffe)/2] = data & 0xff;
- return;
- }
-
- switch (address)
- {
- case 0x05c001:
- *soundlatch = data;
- return;
-
- case 0x05c801: // doesn't actually seem to work well as watchdog, use $5e008 instead?
- watchdog = 0;
- return;
-
- case 0x05e000:
- // coin counter
- return;
-
- case 0x05e001:
- *m68k_irq_enable2 = data & 1;
- return;
-
- case 0x05e003:
- *m68k_irq_enable = data & 1;
- return;
-
- case 0x05e004:
- if (data & 1) {
- ZetSetVector(0xff);
- ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
- }
- return;
-
- case 0x05e005:
- *flipscreen = data & 0x01;
- *tilemap_flip_x = data & 0x01;
- return;
-
- case 0x05e007:
- *tilemap_flip_y = data & 0x01;
- return;
-
- case 0x05e008: // nop
- watchdog = 0; // ?
- return;
-
- case 0x05e00e:
- *m68k_irq_enable4 = data & 0x01;
- return;
- }
-
-// bprintf (0, _T("WB %5.5x, %2.2x\n"), address, data);
-}
-
-static UINT8 __fastcall gx400_main_read_byte(UINT32 address)
-{
- if ((address & 0xff8001) == 0x020001) {
- return DrvShareRAM[(address & 0x7ffe)/2];
- }
-
- switch (address)
- {
- case 0x05c403:
- return DrvDips[0];
-
- case 0x05c405:
- return DrvDips[1];
-
- case 0x05c407:
- return DrvDips[2];
-
- case 0x05cc01:
- return DrvInputs[0];
-
- case 0x05cc03:
- return DrvInputs[1];
-
- case 0x05cc05:
- return DrvInputs[2];
-
- case 0x070000:
- return konamigt_read_analog(0) >> 8;
-
- case 0x070001:
- return konamigt_read_analog(1) & 0xff;
- }
-
-// bprintf (0, _T("RB %5.5x\n"), address);
-
- return 0;
-}
-
-static void __fastcall citybomb_main_write_byte(UINT32 address, UINT8 data)
-{
- switch (address)
- {
- case 0x070011:
- case 0x0f0011:
- *soundlatch = data;
- return;
-
- case 0x070019:
- case 0x0f0019:
- watchdog = 0;
- return;
-
- case 0x078000:
- case 0x0f8000:
- // coin counters
- if (data & 0x08) ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
- selected_ip = (~data & 0x10) >> 4;
- return;
-
- case 0x078001:
- case 0x0f8001:
- {
- if (data & 0x0c) bprintf (0, _T("WW %5.5x, %4.4x\n"), address, data);
- *m68k_irq_enable = data & 0x01;
- *m68k_irq_enable2 = data & 0x02;
- *flipscreen = data & 0x04;
- *tilemap_flip_x = data & 0x04;
- *tilemap_flip_y = data & 0x08;
- }
- return;
- }
-
-// bprintf (0, _T("WB %5.5x, %2.2x\n"), address, data);
-}
-
-static void __fastcall citybomb_main_write_word(UINT32 address, UINT16 data)
-{
- switch (address)
- {
- case 0x078000:
- case 0x0f8000:
- {
- *m68k_irq_enable = data & 0x01;
- *m68k_irq_enable2 = data & 0x02;
- *flipscreen = data & 0x04;
- *tilemap_flip_x = data & 0x04;
- *tilemap_flip_y = data & 0x08;
- if (data & 0x0800) ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
- selected_ip = (~data & 0x1000) >> 12;
- }
- return;
- }
-
-// bprintf (0, _T("WW %5.5x, %4.4x\n"), address, data);
-}
-
-static UINT8 __fastcall citybomb_main_read_byte(UINT32 address)
-{
- switch (address)
- {
- case 0x0c2000:
- return konamigt_read_analog(0) >> 8;
-
- case 0x0c2001:
- return konamigt_read_analog(1) & 0xff;
-
- case 0x070001:
- case 0x0f0001:
- return DrvDips[1];
-
- case 0x070003:
- case 0x0f0003:
- return DrvInputs[2];
-
- case 0x070005:
- case 0x0f0005:
- return DrvInputs[1];
-
- case 0x070007:
- case 0x0f0007:
- return DrvInputs[0];
-
- case 0x070009:
- case 0x0f0009:
- return DrvDips[0];
-
- case 0x0f0021: // WEC Le Mans inputs...
- return 0;
- }
-
-// bprintf (0, _T("RB %5.5x\n"), address);
-
- return 0;
-}
-
-static void nemesis_filter_w(UINT16 /*offset*/)
-{
-#if 0
- // not used right now..
- INT32 C1 = /* offset & 0x1000 ? 4700 : */ 0; // is this right? 4.7uF seems too large
- INT32 C2 = offset & 0x0800 ? 33 : 0; // 0.033uF = 33 nF
- INT32 AY8910_INTERNAL_RESISTANCE = 356;
-
- filter_rc_set_RC(0, FLT_RC_LOWPASS, (AY8910_INTERNAL_RESISTANCE + 12000) / 3, 0, 0, CAP_N(C1)); // unused?
- filter_rc_set_RC(1, FLT_RC_LOWPASS, (AY8910_INTERNAL_RESISTANCE + 12000) / 3, 0, 0, CAP_N(C1)); // unused?
- filter_rc_set_RC(2, FLT_RC_LOWPASS, (AY8910_INTERNAL_RESISTANCE + 12000) / 3, 0, 0, CAP_N(C1)); // unused?
-
- filter_rc_set_RC(3, FLT_RC_LOWPASS, AY8910_INTERNAL_RESISTANCE + 1000, 10000, 0, CAP_N(C2));
- filter_rc_set_RC(4, FLT_RC_LOWPASS, AY8910_INTERNAL_RESISTANCE + 1000, 10000, 0, CAP_N(C2));
- filter_rc_set_RC(5, FLT_RC_LOWPASS, AY8910_INTERNAL_RESISTANCE + 1000, 10000, 0, CAP_N(C2));
-#endif
-}
-
-static void __fastcall nemesis_sound_write(UINT16 address, UINT8 data)
-{
- if ((address & 0xf000) == 0xa000) {
- K005289Ld1Write(address);
- return;
- }
-
- if ((address & 0xf000) == 0xc000) {
- K005289Ld2Write(address);
- return;
- }
-
- switch (address)
- {
- case 0xe000:
- if (vlm5030_enable) {
- vlm5030_data_write(0, data);
- }
- return;
-
- case 0xe003:
- K005289Tg1Write();
- return;
-
- case 0xe004:
- K005289Tg2Write();
- return;
-
- case 0xe005:
- AY8910Write(1, 0, data);
- return;
-
- case 0xe006:
- AY8910Write(0, 0, data);
- return;
-
- case 0xe007:
- case 0xe007+0x1ff8:
- nemesis_filter_w(address);
- return;
-
- case 0xe030:
- if (vlm5030_enable) {
- vlm5030_st(0,1);
- vlm5030_st(0,0);
- }
- return;
-
- case 0xe106:
- AY8910Write(0, 1, data);
- return;
-
- case 0xe405:
- AY8910Write(1, 1, data);
- return;
- }
- //bprintf(0, _T("sw(%X, %X);.."), address, data);
-}
-
-static UINT8 __fastcall nemesis_sound_read(UINT16 address)
-{
- switch (address)
- {
- case 0xe001:
- ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
- return *soundlatch;
-
- case 0xe086:
- return AY8910Read(0);
-
- case 0xe205:
- return AY8910Read(1);
- }
-
- return 0;
-}
-
-static void __fastcall salamand_sound_write(UINT16 address, UINT8 data)
-{
- if ((address & 0xfff0) == 0xb000) {
- K007232WriteReg(0, address & 0x0f, data);
- return;
- }
-
- switch (address)
- {
- case 0xc000:
- BurnYM2151SelectRegister(data);
- return;
-
- case 0xc001:
- BurnYM2151WriteRegister(data);
- return;
-
- case 0xd000:
- if (vlm5030_enable) {
- vlm5030_data_write(0, data);
- }
- return;
-
- case 0xf000:
- if (vlm5030_enable) {
- vlm5030_st(0,1);
- vlm5030_st(0,0);
- }
- return;
- }
-}
-
-static UINT8 __fastcall salamand_sound_read(UINT16 address)
-{
- if ((address & 0xfff0) == 0xb000) {
- return K007232ReadReg(0, address & 0x0f);
- }
-
- switch (address)
- {
- case 0xa000:
- ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
- return *soundlatch;
-
- case 0xc000:
- case 0xc001:
- return BurnYM2151ReadStatus();
-
- case 0xe000:
- static int flipper;
- flipper^=1;
- return flipper & 1;
- }
-
- return 0;
-}
-
-static void sound_bankswitch(INT32 data)
-{
- INT32 bank_A = (data >> 0) & 3;
- INT32 bank_B = (data >> 2) & 3;
-
- k007232_set_bank(0, bank_A, bank_B);
-}
-
-static void __fastcall citybomb_sound_write(UINT16 address, UINT8 data)
-{
- if ((address & 0xff80) == 0x9800) {
- K051649WaveformWrite(address & 0x7f, data);
- return;
- }
-
- if ((address & 0xfff0) == 0x9880) {
- if (address <= 0x9889)
- K051649FrequencyWrite(address & 0x0f, data);
- else if (address <= 0x988e)
- K051649VolumeWrite(address - 0x988a, data);
- else if (address == 0x988f)
- K051649KeyonoffWrite(data);
- return;
- }
-
- if ((address & 0xffe0) == 0x98e0) {
- // k051649_test_w
- return;
- }
-
- if ((address & 0xfff0) == 0xb000) {
- K007232WriteReg(0, address & 0x0f, data);
- return;
- }
-
- switch (address)
- {
- case 0xa000:
- case 0xa001:
- BurnYM3812Write(0, address & 1, data);
- return;
-
- case 0xc000:
- sound_bankswitch(data);
- return;
- }
-}
-
-static UINT8 __fastcall citybomb_sound_read(UINT16 address)
-{
- if ((address & 0xff80) == 0x9800) {
- return K051649WaveformRead(address & 0x7f);
- }
-
- if ((address & 0xffe0) == 0x98e0) {
- // k051649_test_r
- return 0;
- }
-
- if ((address & 0xfff0) == 0xb000) {
- K007232ReadReg(0, address & 0x0f);
- }
-
- switch (address)
- {
- case 0xa000:
- case 0xa001:
- return BurnYM3812Read(0, address & 1);
-
- case 0xd000:
- ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
- return *soundlatch;
- }
-
- return 0;
-}
-
-static UINT8 nemesis_AY8910_0_portA(UINT32)
-{
- INT32 ret = (ZetTotalCycles() >> 10) & 0x2f;
-
- if (vlm5030_enable) {
- if (vlm5030_bsy(0)) {
- ret |= 0x20;
- }
- }
-
- return ret | 0xd0;
-}
-
-static void k005289_control_A_write(UINT32, UINT32 data)
-{
- K005289ControlAWrite(data);
-}
-
-static void k005289_control_B_write(UINT32, UINT32 data)
-{
- K005289ControlBWrite(data);
-}
-
-static UINT32 salamand_vlm_sync(INT32 samples_rate)
-{
- if (ZetGetActive() == -1) return 0;
-
- return (samples_rate * ZetTotalCycles()) / 1789772;
-}
-
-static void DrvK007232VolCallback(INT32 v)
-{
- K007232SetVolume(0, 0, (v >> 0x4) * 0x11, 0);
- K007232SetVolume(0, 1, 0, (v & 0x0f) * 0x11);
-}
-
-inline static INT32 DrvSynchroniseStream(INT32 nSoundRate)
-{
- if (ZetGetActive() == -1) return 0;
-
- return (INT64)ZetTotalCycles() * nSoundRate / 3579545;
-}
-
-static inline void update_char_tiles(UINT32 offset)
-{
- offset &= 0xfffe;
-
- INT32 data = *((UINT16*)(DrvCharRAM + offset));
-
- offset *= 2;
-
- DrvCharRAMExp[offset + 0] = (data >> 12);
- DrvCharRAMExp[offset + 1] = (data >> 8) & 0xf;
- DrvCharRAMExp[offset + 2] = (data >> 4) & 0xf;
- DrvCharRAMExp[offset + 3] = (data & 0x0f);
-}
-
-static void __fastcall nemesis_charram_write_word(UINT32 address, UINT16 data)
-{
- *((UINT16*)(DrvCharRAM + (address & 0xfffe))) = data;
-
- update_char_tiles(address);
-}
-
-static void __fastcall nemesis_charram_write_byte(UINT32 address, UINT8 data)
-{
- DrvCharRAM[(address & 0xffff)^1] = data;
-
- update_char_tiles(address);
-}
-
-static void nemesis_palette_update(INT32 i)
-{
- static const UINT8 color_table[3][32] =
- {
- { // correct colors (calculated by resnet system in MAME)
- 0x00, 0x01, 0x02, 0x04, 0x05, 0x06, 0x08, 0x09, 0x0b, 0x0d, 0x0f, 0x12, 0x14, 0x16, 0x19, 0x1c,
- 0x21, 0x24, 0x29, 0x2e, 0x33, 0x39, 0x40, 0x49, 0x50, 0x5b, 0x68, 0x78, 0x8e, 0xa8, 0xcc, 0xff
- },
- { // previous, incorrect (lighter) colors
- 0x00, 0x08, 0x11, 0x19, 0x21, 0x29, 0x32, 0x3a, 0x40, 0x48, 0x51, 0x59, 0x61, 0x69, 0x72, 0x7a,
- 0x85, 0x8d, 0x96, 0x9e, 0xa6, 0xae, 0xb7, 0xbf, 0xc5, 0xcd, 0xd6, 0xde, 0xe6, 0xee, 0xf7, 0xff
- },
- { // MAMEUIFX colors (mid)
- 0x00, 0x00, 0x01, 0x02, 0x04, 0x06, 0x09, 0x0d, 0x10, 0x14, 0x19, 0x1f, 0x24, 0x2b, 0x32, 0x3a,
- 0x45, 0x4d, 0x58, 0x61, 0x6c, 0x76, 0x83, 0x8f, 0x98, 0xa4, 0xb3, 0xc1, 0xcf, 0xde, 0xef, 0xff
- }
- };
-
- i &= 0xffe;
-
- INT32 p = (DrvPalRAM[i+1] << 8) | DrvPalRAM[i];
-
- INT32 b = color_table[DrvDips[3]&3][(p >> 10) & 0x1f];
- INT32 g = color_table[DrvDips[3]&3][(p >> 5) & 0x1f];
- INT32 r = color_table[DrvDips[3]&3][(p >> 0) & 0x1f];
-
- DrvPalette[i/2] = BurnHighCol(r,g,b,0);
-}
-
-static void salamand_palette_update(INT32 i)
-{
- i &= 0x1ffc;
-
- INT32 p = (DrvPalRAM[i+0] << 8) | DrvPalRAM[i+2];
-
- INT32 b = (p >> 10) & 0x1f;
- INT32 g = (p >> 5) & 0x1f;
- INT32 r = (p >> 0) & 0x1f;
-
- r = (r << 3) | (r >> 2);
- g = (g << 3) | (g >> 2);
- b = (b << 3) | (b >> 2);
-
- DrvPalette[i/4] = BurnHighCol(r,g,b,0);
-}
-
-static void __fastcall nemesis_palette_write_word(UINT32 address, UINT16 data)
-{
- *((UINT16*)(DrvPalRAM + (address & 0x1ffe))) = data;
-
- palette_write(address);
-}
-
-static void __fastcall nemesis_palette_write_byte(UINT32 address, UINT8 data)
-{
- DrvPalRAM[(address & 0x1fff) ^ 1] = data;
-
- palette_write(address);
-}
-
-static INT32 MemIndex()
-{
- UINT8 *Next; Next = AllMem;
-
- Drv68KROM = Next; Next += 0x100000;
- DrvZ80ROM = Next; Next += 0x010000;
-
- K005289ROM = Next; Next += 0x000200;
- DrvVLMROM = Next; Next += 0x004000;
- K007232ROM = Next; Next += 0x080000;
-
- DrvCharRAMExp = Next; Next += 0x020000;
-
- DrvPalette = (UINT32*)Next; Next += 0x1000 * sizeof(UINT32);
-
- AllRam = Next;
-
- Drv68KRAM0 = Next; Next += 0x010000;
- Drv68KRAM1 = Next; Next += 0x020000;
- Drv68KRAM2 = Next; Next += 0x001000;
- DrvPalRAM = Next; Next += 0x002000;
- DrvSprRAM = Next; Next += 0x001000;
- DrvVidRAM0 = Next; Next += 0x001000;
- DrvVidRAM1 = Next; Next += 0x001000;
- DrvColRAM0 = Next; Next += 0x001000;
- DrvColRAM1 = Next; Next += 0x001000;
- DrvCharRAM = Next; Next += 0x010000;
- DrvScrollRAM = Next; Next += 0x002000;
-
- DrvZ80RAM = Next; Next += 0x000800;
- DrvShareRAM = Next; Next += 0x004000;
-
- soundlatch = Next; Next += 0x000001;
- flipscreen = Next; Next += 0x000001;
-
- m68k_irq_enable = Next; Next += 0x000001;
- m68k_irq_enable2 = Next; Next += 0x000001;
- m68k_irq_enable4 = Next; Next += 0x000001;
- tilemap_flip_x = Next; Next += 0x000001;
- tilemap_flip_y = Next; Next += 0x000001;
-
- RamEnd = Next;
-
- pAY8910Buffer[0] = (INT16 *)Next; Next += nBurnSoundLen * sizeof(INT16);
- pAY8910Buffer[1] = (INT16 *)Next; Next += nBurnSoundLen * sizeof(INT16);
- pAY8910Buffer[2] = (INT16 *)Next; Next += nBurnSoundLen * sizeof(INT16);
- pAY8910Buffer[3] = (INT16 *)Next; Next += nBurnSoundLen * sizeof(INT16);
- pAY8910Buffer[4] = (INT16 *)Next; Next += nBurnSoundLen * sizeof(INT16);
- pAY8910Buffer[5] = (INT16 *)Next; Next += nBurnSoundLen * sizeof(INT16);
-
- MemEnd = Next;
-
- return 0;
-}
-
-static INT32 DrvDoReset()
-{
- memset (AllRam, 0, RamEnd - AllRam);
-
- SekOpen(0);
- SekReset();
- SekClose();
-
- ZetOpen(0);
- ZetReset();
- ZetClose();
-
- ZetOpen(0);
- if (ay8910_enable) AY8910Reset(0);
- if (ay8910_enable) AY8910Reset(1);
- if (ym2151_enable) BurnYM2151Reset();
- if (ym3812_enable) BurnYM3812Reset();
- if (vlm5030_enable) vlm5030Reset(0);
-// if (k007232_enable) K007232Reset();
- if (k005289_enable) K005289Reset();
- if (k051649_enable) K051649Reset();
- ZetClose();
-
- watchdog = 0;
- selected_ip = 0;
-
- if (bUseShifter)
- BurnShiftReset();
-
- DrvDial1 = 0x3f;
-
- return 0;
-}
-
-static void NemesisSoundInit(INT32 konamigtmode)
-{
- ZetInit(0);
- ZetOpen(0);
- ZetMapMemory(DrvZ80ROM, 0x0000, 0x3fff, MAP_ROM);
- ZetMapMemory(DrvZ80RAM, 0x4000, 0x47ff, MAP_RAM);
- ZetSetWriteHandler(nemesis_sound_write);
- ZetSetReadHandler(nemesis_sound_read);
- ZetClose();
-
- K005289Init(3579545, K005289ROM);
- K005289SetRoute(BURN_SND_K005289_ROUTE_1, 0.35, BURN_SND_ROUTE_BOTH);
-
- AY8910Init(0, 14318180/8, nBurnSoundRate, &nemesis_AY8910_0_portA, NULL, NULL, NULL);
- AY8910Init(1, 14318180/8, nBurnSoundRate, NULL, NULL, &k005289_control_A_write, &k005289_control_B_write);
- AY8910SetAllRoutes(0, 0.35, BURN_SND_ROUTE_BOTH);
- AY8910SetAllRoutes(1, (konamigtmode) ? 0.20 : 1.00, BURN_SND_ROUTE_BOTH);
-
-#if 0
- filter_rc_init(0, FLT_RC_LOWPASS, 1000, 5100, 0, CAP_P(0), 0); // ay 0
- filter_rc_init(1, FLT_RC_LOWPASS, 1000, 5100, 0, CAP_P(0), 1);
- filter_rc_init(2, FLT_RC_LOWPASS, 1000, 5100, 0, CAP_P(0), 1);
-
- filter_rc_init(3, FLT_RC_LOWPASS, 1000, 5100, 0, CAP_P(0), 1); // ay 1
- filter_rc_init(4, FLT_RC_LOWPASS, 1000, 5100, 0, CAP_P(0), 1);
- filter_rc_init(5, FLT_RC_LOWPASS, 1000, 5100, 0, CAP_P(0), 1);
-
- filter_rc_set_src_gain(0, 0.35);
- filter_rc_set_src_gain(1, 0.35);
- filter_rc_set_src_gain(2, 0.35);
- filter_rc_set_src_gain(3, 1.00);
- filter_rc_set_src_gain(4, 1.00);
- filter_rc_set_src_gain(5, 1.00);
- rcflt_enable = 1;
-#endif
-
- ay8910_enable = 1;
- k005289_enable = 1;
-}
-
-static void Gx400SoundInit(INT32 rf2mode)
-{
- ZetInit(0);
- ZetOpen(0);
- ZetMapMemory(DrvZ80ROM, 0x0000, 0x1fff, MAP_ROM);
- ZetMapMemory(DrvShareRAM, 0x4000, 0x7fff, MAP_RAM);
- ZetMapMemory(DrvVLMROM, 0x8000, 0x87ff, MAP_RAM);
- ZetSetWriteHandler(nemesis_sound_write);
- ZetSetReadHandler(nemesis_sound_read);
- ZetClose();
-
- K005289Init(3579545, K005289ROM);
- K005289SetRoute(BURN_SND_K005289_ROUTE_1, (rf2mode) ? 0.60 : 0.35, BURN_SND_ROUTE_BOTH);
-
- AY8910Init(0, 14318180/8, nBurnSoundRate, &nemesis_AY8910_0_portA, NULL, NULL, NULL);
- AY8910Init(1, 14318180/8, nBurnSoundRate, NULL, NULL, &k005289_control_A_write, &k005289_control_B_write);
- AY8910SetAllRoutes(0, (rf2mode) ? 0.80 : 0.20, BURN_SND_ROUTE_BOTH);
- AY8910SetAllRoutes(1, (rf2mode) ? 0.40 : 1.00, BURN_SND_ROUTE_BOTH);
-
- vlm5030Init(0, 3579545, salamand_vlm_sync, DrvVLMROM, 0x0800, 1);
- vlm5030SetAllRoutes(0, 0.70, BURN_SND_ROUTE_BOTH);
-
- ay8910_enable = 1;
- k005289_enable = 1;
- vlm5030_enable = 1;
-}
-
-static void TwinbeeGx400SoundInit()
-{
- ZetInit(0);
- ZetOpen(0);
- ZetMapMemory(DrvZ80ROM, 0x0000, 0x1fff, MAP_ROM);
- ZetMapMemory(DrvShareRAM, 0x4000, 0x7fff, MAP_RAM);
- ZetMapMemory(DrvVLMROM, 0x8000, 0x87ff, MAP_RAM);
- ZetSetWriteHandler(nemesis_sound_write);
- ZetSetReadHandler(nemesis_sound_read);
- ZetClose();
-
- K005289Init(3579545, K005289ROM);
- K005289SetRoute(BURN_SND_K005289_ROUTE_1, 0.20, BURN_SND_ROUTE_BOTH);
-
- AY8910Init(0, 14318180/8, nBurnSoundRate, &nemesis_AY8910_0_portA, NULL, NULL, NULL);
- AY8910Init(1, 14318180/8, nBurnSoundRate, NULL, NULL, &k005289_control_A_write, &k005289_control_B_write);
- AY8910SetAllRoutes(0, 0.50, BURN_SND_ROUTE_BOTH); // melody & hat
- AY8910SetAllRoutes(1, 1.00, BURN_SND_ROUTE_BOTH); // drums, explosions
-
- vlm5030Init(0, 3579545, salamand_vlm_sync, DrvVLMROM, 0x0800, 1);
- vlm5030SetAllRoutes(0, 3.10, BURN_SND_ROUTE_BOTH);
-
- ay8910_enable = 1;
- k005289_enable = 1;
- vlm5030_enable = 1;
-}
-
-static void SalamandSoundInit()
-{
- ZetInit(0);
- ZetOpen(0);
- ZetMapMemory(DrvZ80ROM, 0x0000, 0x7fff, MAP_ROM);
- ZetMapMemory(DrvZ80RAM, 0x8000, 0x87ff, MAP_RAM);
- ZetSetWriteHandler(salamand_sound_write);
- ZetSetReadHandler(salamand_sound_read);
- ZetClose();
-
- BurnYM2151Init(3579545);
- BurnYM2151SetRoute(BURN_SND_YM2151_YM2151_ROUTE_1, 1.20, BURN_SND_ROUTE_LEFT);
- BurnYM2151SetRoute(BURN_SND_YM2151_YM2151_ROUTE_2, 1.20, BURN_SND_ROUTE_RIGHT);
-
- K007232Init(0, 3579545, K007232ROM, 0x20000);
- K007232SetPortWriteHandler(0, DrvK007232VolCallback);
- K007232PCMSetAllRoutes(0, (hcrash_mode) ? 0.10 : 0.08, BURN_SND_ROUTE_BOTH);
-
- if (DrvVLMROM[1] || DrvVLMROM[2]) {
- vlm5030Init(0, 3579545, salamand_vlm_sync, DrvVLMROM, 0x4000, 1);
- vlm5030SetAllRoutes(0, (hcrash_mode) ? 0.80 : 2.50, BURN_SND_ROUTE_BOTH);
- vlm5030_enable = 1;
- }
-
- ym2151_enable = 1;
- k007232_enable = 1;
-}
-
-static void CitybombSoundInit()
-{
- ZetInit(0);
- ZetOpen(0);
- ZetMapMemory(DrvZ80ROM, 0x0000, 0x7fff, MAP_ROM);
- ZetMapMemory(DrvZ80RAM, 0x8000, 0x87ff, MAP_RAM);
- ZetSetWriteHandler(citybomb_sound_write);
- ZetSetReadHandler(citybomb_sound_read);
- ZetClose();
-
- BurnYM3812Init(1, 3579545, NULL, DrvSynchroniseStream, 0);
- BurnTimerAttachZetYM3812(3579545);
- BurnYM3812SetRoute(0, BURN_SND_YM3812_ROUTE, 1.00, BURN_SND_ROUTE_BOTH);
-
- K007232Init(0, 3579545, K007232ROM, 0x80000);
- K007232SetPortWriteHandler(0, DrvK007232VolCallback);
- K007232PCMSetAllRoutes(0, 0.30, BURN_SND_ROUTE_BOTH);
-
- K051649Init(3579545/2);
- K051649SetRoute(0.38, BURN_SND_ROUTE_BOTH);
-
- ym3812_enable = 1;
- k007232_enable = 1;
- k051649_enable = 1;
-}
-
-static INT32 NemesisInit()
-{
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(Drv68KROM + 0x000001, 0, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x000000, 1, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x010001, 2, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x010000, 3, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x020001, 4, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x020000, 5, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x030001, 6, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x030000, 7, 2)) return 1;
-
- if (BurnLoadRom(DrvZ80ROM + 0x000000, 8, 1)) return 1;
-
- if (BurnLoadRom(K005289ROM + 0x00000, 9, 1)) return 1;
- if (BurnLoadRom(K005289ROM + 0x00100, 10, 1)) return 1;
- }
-
- SekInit(0, 0x68000);
- SekOpen(0);
- SekMapMemory(Drv68KROM, 0x000000, 0x03ffff, MAP_ROM);
- SekMapMemory(DrvCharRAM, 0x040000, 0x04ffff, MAP_RAM);
- SekMapMemory(DrvScrollRAM, 0x050000, 0x051fff, MAP_RAM);
- xscroll1 = (UINT16*)(DrvScrollRAM + 0x00000);
- xscroll2 = (UINT16*)(DrvScrollRAM + 0x00400);
- yscroll2 = (UINT16*)(DrvScrollRAM + 0x00f00);
- yscroll1 = (UINT16*)(DrvScrollRAM + 0x00f80);
- SekMapMemory(DrvVidRAM0, 0x052000, 0x052fff, MAP_RAM);
- SekMapMemory(DrvVidRAM1, 0x053000, 0x053fff, MAP_RAM);
- SekMapMemory(DrvColRAM0, 0x054000, 0x054fff, MAP_RAM);
- SekMapMemory(DrvColRAM1, 0x055000, 0x055fff, MAP_RAM);
- SekMapMemory(DrvSprRAM, 0x056000, 0x056fff, MAP_RAM);
- SekMapMemory(DrvPalRAM, 0x05a000, 0x05afff, MAP_RAM);
- SekMapMemory(Drv68KRAM0, 0x060000, 0x067fff, MAP_RAM);
- SekSetWriteWordHandler(0, nemesis_main_write_word);
- SekSetWriteByteHandler(0, nemesis_main_write_byte);
- SekSetReadWordHandler(0, nemesis_main_read_word);
- SekSetReadByteHandler(0, nemesis_main_read_byte);
- SekMapHandler(1, 0x040000, 0x04ffff, MAP_WRITE);
- SekSetWriteWordHandler(1, nemesis_charram_write_word);
- SekSetWriteByteHandler(1, nemesis_charram_write_byte);
- SekMapHandler(2, 0x05a000, 0x05afff, MAP_WRITE);
- SekSetWriteWordHandler(2, nemesis_palette_write_word);
- SekSetWriteByteHandler(2, nemesis_palette_write_byte);
- SekClose();
-
- NemesisSoundInit(0);
-
- palette_write = nemesis_palette_update;
-
- GenericTilesInit();
-
- DrvDoReset();
-
- return 0;
-}
-
-static void ShifterSetup()
-{
- BurnShiftInit(SHIFT_POSITION_BOTTOM_RIGHT, SHIFT_COLOR_GREEN, 80);
- bUseShifter = 1;
-}
-
-static INT32 KonamigtInit()
-{
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(Drv68KROM + 0x000001, 0, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x000000, 1, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x010001, 2, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x010000, 3, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x020001, 4, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x020000, 5, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x030001, 6, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x030000, 7, 2)) return 1;
-
- if (BurnLoadRom(DrvZ80ROM + 0x000000, 8, 1)) return 1;
-
- if (BurnLoadRom(K005289ROM + 0x00000, 9, 1)) return 1;
- if (BurnLoadRom(K005289ROM + 0x00100, 10, 1)) return 1;
- }
-
- SekInit(0, 0x68000);
- SekOpen(0);
- SekMapMemory(Drv68KROM, 0x000000, 0x03ffff, MAP_ROM);
- SekMapMemory(DrvCharRAM, 0x040000, 0x04ffff, MAP_RAM);
- SekMapMemory(DrvScrollRAM, 0x050000, 0x051fff, MAP_RAM);
- xscroll1 = (UINT16*)(DrvScrollRAM + 0x00000);
- xscroll2 = (UINT16*)(DrvScrollRAM + 0x00400);
- yscroll2 = (UINT16*)(DrvScrollRAM + 0x00f00);
- yscroll1 = (UINT16*)(DrvScrollRAM + 0x00f80);
- SekMapMemory(DrvVidRAM0, 0x052000, 0x052fff, MAP_RAM);
- SekMapMemory(DrvVidRAM1, 0x053000, 0x053fff, MAP_RAM);
- SekMapMemory(DrvColRAM0, 0x054000, 0x054fff, MAP_RAM);
- SekMapMemory(DrvColRAM1, 0x055000, 0x055fff, MAP_RAM);
- SekMapMemory(DrvSprRAM, 0x056000, 0x056fff, MAP_RAM);
- SekMapMemory(DrvPalRAM, 0x05a000, 0x05afff, MAP_RAM);
- SekMapMemory(Drv68KRAM0, 0x060000, 0x067fff, MAP_RAM);
- SekSetWriteWordHandler(0, nemesis_main_write_word);
- SekSetWriteByteHandler(0, konamigt_main_write_byte);
- SekSetReadWordHandler(0, nemesis_main_read_word);
- SekSetReadByteHandler(0, nemesis_main_read_byte);
- SekMapHandler(1, 0x040000, 0x04ffff, MAP_WRITE);
- SekSetWriteWordHandler(1, nemesis_charram_write_word);
- SekSetWriteByteHandler(1, nemesis_charram_write_byte);
- SekMapHandler(2, 0x05a000, 0x05afff, MAP_WRITE);
- SekSetWriteWordHandler(2, nemesis_palette_write_word);
- SekSetWriteByteHandler(2, nemesis_palette_write_byte);
- SekClose();
-
- NemesisSoundInit(1);
-
- palette_write = nemesis_palette_update;
-
- GenericTilesInit();
-
- ShifterSetup();
-
- DrvDoReset();
-
- gearboxmode = 1;
-
- return 0;
-}
-
-static INT32 SalamandInit()
-{
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(Drv68KROM + 0x000001, 0, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x000000, 1, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x040001, 2, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x040000, 3, 2)) return 1;
-
- if (BurnLoadRom(DrvZ80ROM + 0x000000, 4, 1)) return 1;
-
- if (BurnLoadRom(DrvVLMROM + 0x000000, 5, 1)) return 1;
-
- if (BurnLoadRom(K007232ROM + 0x00000, 6, 1)) return 1;
- }
-
- SekInit(0, 0x68000);
- SekOpen(0);
- SekMapMemory(Drv68KROM, 0x000000, 0x07ffff, MAP_ROM);
- SekMapMemory(Drv68KRAM0, 0x080000, 0x087fff, MAP_RAM);
- SekMapMemory(DrvPalRAM, 0x090000, 0x091fff, MAP_RAM);
- SekMapMemory(DrvVidRAM1, 0x100000, 0x100fff, MAP_RAM);
- SekMapMemory(DrvVidRAM0, 0x101000, 0x101fff, MAP_RAM);
- SekMapMemory(DrvColRAM1, 0x102000, 0x102fff, MAP_RAM);
- SekMapMemory(DrvColRAM0, 0x103000, 0x103fff, MAP_RAM);
- SekMapMemory(DrvCharRAM, 0x120000, 0x12ffff, MAP_RAM);
- SekMapMemory(DrvSprRAM, 0x180000, 0x180fff, MAP_RAM);
- SekMapMemory(DrvScrollRAM, 0x190000, 0x191fff, MAP_RAM);
- xscroll2 = (UINT16*)(DrvScrollRAM + 0x00000);
- xscroll1 = (UINT16*)(DrvScrollRAM + 0x00400);
- yscroll1 = (UINT16*)(DrvScrollRAM + 0x00f00);
- yscroll2 = (UINT16*)(DrvScrollRAM + 0x00f80);
- SekSetWriteWordHandler(0, salamand_main_write_word);
- SekSetWriteByteHandler(0, salamand_main_write_byte);
- SekSetReadWordHandler(0, nemesis_main_read_word);
- SekSetReadByteHandler(0, salamand_main_read_byte);
- SekMapHandler(1, 0x120000, 0x12ffff, MAP_WRITE);
- SekSetWriteWordHandler(1, nemesis_charram_write_word);
- SekSetWriteByteHandler(1, nemesis_charram_write_byte);
- SekMapHandler(2, 0x090000, 0x091fff, MAP_WRITE);
- SekSetWriteWordHandler(2, nemesis_palette_write_word);
- SekSetWriteByteHandler(2, nemesis_palette_write_byte);
- SekClose();
-
- SalamandSoundInit();
-
- palette_write = salamand_palette_update;
-
- GenericTilesInit();
-
- DrvDoReset();
-
- return 0;
-}
-
-static INT32 BlkpnthrInit()
-{
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(Drv68KROM + 0x000001, 0, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x000000, 1, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x040001, 2, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x040000, 3, 2)) return 1;
-
- if (BurnLoadRom(DrvZ80ROM + 0x000000, 4, 1)) return 1;
-
- if (BurnLoadRom(K007232ROM + 0x00000, 5, 1)) return 1;
- }
-
- SekInit(0, 0x68000);
- SekOpen(0);
- SekMapMemory(Drv68KROM, 0x000000, 0x07ffff, MAP_ROM);
- SekMapMemory(DrvPalRAM, 0x080000, 0x081fff, MAP_RAM);
- SekMapMemory(Drv68KRAM0, 0x090000, 0x097fff, MAP_RAM);
- SekMapMemory(DrvColRAM0, 0x100000, 0x100fff, MAP_RAM);
- SekMapMemory(DrvColRAM1, 0x101000, 0x101fff, MAP_RAM);
- SekMapMemory(DrvVidRAM0, 0x102000, 0x102fff, MAP_RAM);
- SekMapMemory(DrvVidRAM1, 0x103000, 0x103fff, MAP_RAM);
- SekMapMemory(DrvCharRAM, 0x120000, 0x12ffff, MAP_RAM);
- SekMapMemory(DrvScrollRAM, 0x180000, 0x181fff, MAP_RAM);
- xscroll1 = (UINT16*)(DrvScrollRAM + 0x00000);
- xscroll2 = (UINT16*)(DrvScrollRAM + 0x00400);
- yscroll2 = (UINT16*)(DrvScrollRAM + 0x00f00);
- yscroll1 = (UINT16*)(DrvScrollRAM + 0x00f80);
- SekMapMemory(DrvSprRAM, 0x190000, 0x190fff, MAP_RAM);
- SekSetWriteWordHandler(0, salamand_main_write_word);
- SekSetWriteByteHandler(0, salamand_main_write_byte);
- SekSetReadWordHandler(0, nemesis_main_read_word);
- SekSetReadByteHandler(0, salamand_main_read_byte);
- SekMapHandler(1, 0x120000, 0x12ffff, MAP_WRITE);
- SekSetWriteWordHandler(1, nemesis_charram_write_word);
- SekSetWriteByteHandler(1, nemesis_charram_write_byte);
- SekMapHandler(2, 0x080000, 0x081fff, MAP_WRITE);
- SekSetWriteWordHandler(2, nemesis_palette_write_word);
- SekSetWriteByteHandler(2, nemesis_palette_write_byte);
- SekClose();
-
- SalamandSoundInit();
-
- palette_write = salamand_palette_update;
-
- GenericTilesInit();
-
- DrvDoReset();
-
- return 0;
-}
-
-static INT32 HcrashInit()
-{
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(Drv68KROM + 0x000001, 0, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x000000, 1, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x040001, 2, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x040000, 3, 2)) return 1;
-
- if (BurnLoadRom(DrvZ80ROM + 0x000000, 4, 1)) return 1;
-
- if (BurnLoadRom(DrvVLMROM + 0x004000, 5, 1)) return 1;
- memmove(DrvVLMROM, DrvVLMROM + 0x08000, 0x4000);
- memset(DrvVLMROM + 0x08000, 0, 0x4000);
-
- if (BurnLoadRom(K007232ROM + 0x00000, 6, 1)) return 1;
- }
-
- SekInit(0, 0x68000);
- SekOpen(0);
- SekMapMemory(Drv68KROM, 0x000000, 0x07ffff, MAP_ROM);
- SekMapMemory(Drv68KRAM0, 0x080000, 0x087fff, MAP_RAM);
- SekMapMemory(DrvPalRAM, 0x090000, 0x091fff, MAP_RAM);
- SekMapMemory(DrvVidRAM1, 0x100000, 0x100fff, MAP_RAM);
- SekMapMemory(DrvVidRAM0, 0x101000, 0x101fff, MAP_RAM);
- SekMapMemory(DrvColRAM1, 0x102000, 0x102fff, MAP_RAM);
- SekMapMemory(DrvColRAM0, 0x103000, 0x103fff, MAP_RAM);
- SekMapMemory(DrvCharRAM, 0x120000, 0x12ffff, MAP_RAM);
- SekMapMemory(DrvSprRAM, 0x180000, 0x180fff, MAP_RAM);
- SekMapMemory(DrvScrollRAM, 0x190000, 0x191fff, MAP_RAM);
- xscroll2 = (UINT16*)(DrvScrollRAM + 0x00000);
- xscroll1 = (UINT16*)(DrvScrollRAM + 0x00400);
- yscroll1 = (UINT16*)(DrvScrollRAM + 0x00f00);
- yscroll2 = (UINT16*)(DrvScrollRAM + 0x00f80);
- SekSetWriteWordHandler(0, salamand_main_write_word);
- SekSetWriteByteHandler(0, hcrash_main_write_byte);
- SekSetReadWordHandler(0, nemesis_main_read_word);
- SekSetReadByteHandler(0, hcrash_main_read_byte);
- SekMapHandler(1, 0x120000, 0x12ffff, MAP_WRITE);
- SekSetWriteWordHandler(1, nemesis_charram_write_word);
- SekSetWriteByteHandler(1, nemesis_charram_write_byte);
- SekMapHandler(2, 0x090000, 0x091fff, MAP_WRITE);
- SekSetWriteWordHandler(2, nemesis_palette_write_word);
- SekSetWriteByteHandler(2, nemesis_palette_write_byte);
- SekClose();
-
- hcrash_mode = 1;
- SalamandSoundInit();
-
- palette_write = salamand_palette_update;
-
- GenericTilesInit();
-
- DrvDoReset();
-
- return 0;
-}
-
-static INT32 Gx400Init()
-{
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(Drv68KROM + 0x000001, 0, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x000000, 1, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x010001, 2, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x010000, 3, 2)) return 1;
-
- if (BurnLoadRom(DrvZ80ROM + 0x000000, 4, 1)) return 1;
-
- if (BurnLoadRom(K005289ROM + 0x00000, 5, 1)) return 1;
- if (BurnLoadRom(K005289ROM + 0x00100, 6, 1)) return 1;
- }
-
- SekInit(0, 0x68000);
- SekOpen(0);
- SekMapMemory(Drv68KROM, 0x000000, 0x00ffff, MAP_ROM);
- SekMapMemory(Drv68KRAM0, 0x010000, 0x01ffff, MAP_RAM);
- SekMapMemory(DrvCharRAM, 0x030000, 0x03ffff, MAP_RAM);
- SekMapMemory(DrvScrollRAM, 0x050000, 0x051fff, MAP_RAM);
- xscroll1 = (UINT16*)(DrvScrollRAM + 0x00000);
- xscroll2 = (UINT16*)(DrvScrollRAM + 0x00400);
- yscroll2 = (UINT16*)(DrvScrollRAM + 0x00f00);
- yscroll1 = (UINT16*)(DrvScrollRAM + 0x00f80);
- SekMapMemory(DrvVidRAM0, 0x052000, 0x052fff, MAP_RAM);
- SekMapMemory(DrvVidRAM1, 0x053000, 0x053fff, MAP_RAM);
- SekMapMemory(DrvColRAM0, 0x054000, 0x054fff, MAP_RAM);
- SekMapMemory(DrvColRAM1, 0x055000, 0x055fff, MAP_RAM);
- SekMapMemory(DrvSprRAM, 0x056000, 0x056fff, MAP_RAM);
- SekMapMemory(Drv68KRAM2, 0x057000, 0x057fff, MAP_RAM);
- SekMapMemory(DrvPalRAM, 0x05a000, 0x05afff, MAP_RAM);
- SekMapMemory(Drv68KRAM1, 0x060000, 0x07ffff, MAP_RAM);
- SekMapMemory(Drv68KROM + 0x10000, 0x080000, 0x0bffff, MAP_ROM);
- SekSetWriteWordHandler(0, nemesis_main_write_word);
- SekSetWriteByteHandler(0, gx400_main_write_byte);
- SekSetReadWordHandler(0, nemesis_main_read_word);
- SekSetReadByteHandler(0, gx400_main_read_byte);
- SekMapHandler(1, 0x030000, 0x03ffff, MAP_WRITE);
- SekSetWriteWordHandler(1, nemesis_charram_write_word);
- SekSetWriteByteHandler(1, nemesis_charram_write_byte);
- SekMapHandler(2, 0x05a000, 0x05afff, MAP_WRITE);
- SekSetWriteWordHandler(2, nemesis_palette_write_word);
- SekSetWriteByteHandler(2, nemesis_palette_write_byte);
- SekClose();
- if (strstr(BurnDrvGetTextA(DRV_NAME), "twin")) {
- TwinbeeGx400SoundInit();
- } else {
- Gx400SoundInit((strstr(BurnDrvGetTextA(DRV_NAME), "gwarr")) ? 1 : 0);
- }
-
- palette_write = nemesis_palette_update;
-
- ay8910_enable = 1;
- k005289_enable = 1;
- vlm5030_enable = 1;
-
- GenericTilesInit();
-
- DrvDoReset();
-
- return 0;
-}
-
-static INT32 Rf2_gx400Init()
-{
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(Drv68KROM + 0x000001, 0, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x000000, 1, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x010001, 2, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x010000, 3, 2)) return 1;
-
- if (BurnLoadRom(DrvZ80ROM + 0x000000, 4, 1)) return 1;
-
- if (BurnLoadRom(K005289ROM + 0x00000, 5, 1)) return 1;
- if (BurnLoadRom(K005289ROM + 0x00100, 6, 1)) return 1;
- }
-
- SekInit(0, 0x68000);
- SekOpen(0);
- SekMapMemory(Drv68KROM, 0x000000, 0x00ffff, MAP_ROM);
- SekMapMemory(Drv68KRAM0, 0x010000, 0x01ffff, MAP_RAM);
- SekMapMemory(DrvCharRAM, 0x030000, 0x03ffff, MAP_RAM);
- SekMapMemory(DrvScrollRAM, 0x050000, 0x051fff, MAP_RAM);
- xscroll1 = (UINT16*)(DrvScrollRAM + 0x00000);
- xscroll2 = (UINT16*)(DrvScrollRAM + 0x00400);
- yscroll2 = (UINT16*)(DrvScrollRAM + 0x00f00);
- yscroll1 = (UINT16*)(DrvScrollRAM + 0x00f80);
- SekMapMemory(DrvVidRAM0, 0x052000, 0x052fff, MAP_RAM);
- SekMapMemory(DrvVidRAM1, 0x053000, 0x053fff, MAP_RAM);
- SekMapMemory(DrvColRAM0, 0x054000, 0x054fff, MAP_RAM);
- SekMapMemory(DrvColRAM1, 0x055000, 0x055fff, MAP_RAM);
- SekMapMemory(DrvSprRAM, 0x056000, 0x056fff, MAP_RAM);
- SekMapMemory(DrvPalRAM, 0x05a000, 0x05afff, MAP_RAM);
- SekMapMemory(Drv68KRAM1, 0x060000, 0x067fff, MAP_RAM);
- SekMapMemory(Drv68KROM + 0x10000, 0x080000, 0x0bffff, MAP_ROM);
- SekSetWriteWordHandler(0, nemesis_main_write_word);
- SekSetWriteByteHandler(0, gx400_main_write_byte);
- SekSetReadWordHandler(0, nemesis_main_read_word);
- SekSetReadByteHandler(0, gx400_main_read_byte);
- SekMapHandler(1, 0x030000, 0x03ffff, MAP_WRITE);
- SekSetWriteWordHandler(1, nemesis_charram_write_word);
- SekSetWriteByteHandler(1, nemesis_charram_write_byte);
- SekMapHandler(2, 0x05a000, 0x05afff, MAP_WRITE);
- SekSetWriteWordHandler(2, nemesis_palette_write_word);
- SekSetWriteByteHandler(2, nemesis_palette_write_byte);
- SekClose();
-
- Gx400SoundInit(1);
-
- palette_write = nemesis_palette_update;
-
- GenericTilesInit();
-
- ShifterSetup();
-
- DrvDoReset();
-
- gearboxmode = 1;
-
- return 0;
-}
-
-static INT32 CitybombInit()
-{
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(Drv68KROM + 0x000001, 0, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x000000, 1, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x040001, 2, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x040000, 3, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x080001, 4, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x080000, 5, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x0c0001, 6, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x0c0000, 7, 2)) return 1;
-
- if (BurnLoadRom(DrvZ80ROM + 0x000000, 8, 1)) return 1;
-
- if (BurnLoadRom(K007232ROM + 0x00000, 9, 1)) return 1;
- }
-
- SekInit(0, 0x68000);
- SekOpen(0);
- SekMapMemory(Drv68KROM, 0x000000, 0x01ffff, MAP_ROM);
- SekMapMemory(Drv68KRAM0, 0x080000, 0x087fff, MAP_RAM);
- SekMapMemory(DrvPalRAM, 0x0e0000, 0x0e1fff, MAP_RAM);
- SekMapMemory(Drv68KROM + 0x40000, 0x100000, 0x1bffff, MAP_ROM);
- SekMapMemory(DrvCharRAM, 0x200000, 0x20ffff, MAP_RAM);
- SekMapMemory(DrvVidRAM0, 0x210000, 0x210fff, MAP_RAM);
- SekMapMemory(DrvVidRAM1, 0x211000, 0x211fff, MAP_RAM);
- SekMapMemory(DrvColRAM0, 0x212000, 0x212fff, MAP_RAM);
- SekMapMemory(DrvColRAM1, 0x213000, 0x213fff, MAP_RAM);
- SekMapMemory(DrvScrollRAM, 0x300000, 0x301fff, MAP_RAM);
- xscroll1 = (UINT16*)(DrvScrollRAM + 0x00000);
- xscroll2 = (UINT16*)(DrvScrollRAM + 0x00400);
- yscroll2 = (UINT16*)(DrvScrollRAM + 0x00f00);
- yscroll1 = (UINT16*)(DrvScrollRAM + 0x00f80);
- SekMapMemory(DrvSprRAM, 0x310000, 0x310fff, MAP_RAM);
- SekSetWriteWordHandler(0, citybomb_main_write_word);
- SekSetWriteByteHandler(0, citybomb_main_write_byte);
- SekSetReadWordHandler(0, nemesis_main_read_word);
- SekSetReadByteHandler(0, citybomb_main_read_byte);
- SekMapHandler(2, 0x0e0000, 0x0e1fff, MAP_WRITE);
- SekSetWriteWordHandler(2, nemesis_palette_write_word);
- SekSetWriteByteHandler(2, nemesis_palette_write_byte);
- SekMapHandler(1, 0x200000, 0x20ffff, MAP_WRITE);
- SekSetWriteWordHandler(1, nemesis_charram_write_word);
- SekSetWriteByteHandler(1, nemesis_charram_write_byte);
- SekClose();
-
- CitybombSoundInit();
-
- palette_write = salamand_palette_update;
-
- GenericTilesInit();
-
- DrvDoReset();
-
- return 0;
-}
-
-static INT32 NyanpaniInit()
-{
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(Drv68KROM + 0x000001, 0, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x000000, 1, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x040001, 2, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x040000, 3, 2)) return 1;
-
- if (BurnLoadRom(DrvZ80ROM + 0x000000, 4, 1)) return 1;
-
- if (BurnLoadRom(K007232ROM + 0x00000, 5, 1)) return 1;
- }
-
- SekInit(0, 0x68000);
- SekOpen(0);
- SekMapMemory(Drv68KROM, 0x000000, 0x01ffff, MAP_ROM);
- SekMapMemory(Drv68KRAM0, 0x040000, 0x047fff, MAP_RAM);
- SekMapMemory(DrvPalRAM, 0x060000, 0x061fff, MAP_RAM);
- SekMapMemory(Drv68KROM + 0x40000, 0x100000, 0x13ffff, MAP_ROM);
- SekMapMemory(DrvVidRAM0, 0x200000, 0x200fff, MAP_RAM);
- SekMapMemory(DrvVidRAM1, 0x201000, 0x201fff, MAP_RAM);
- SekMapMemory(DrvColRAM0, 0x202000, 0x202fff, MAP_RAM);
- SekMapMemory(DrvColRAM1, 0x203000, 0x203fff, MAP_RAM);
- SekMapMemory(DrvCharRAM, 0x210000, 0x21ffff, MAP_RAM);
- SekMapMemory(DrvSprRAM, 0x300000, 0x300fff, MAP_RAM);
- SekMapMemory(DrvScrollRAM, 0x310000, 0x311fff, MAP_RAM);
- xscroll1 = (UINT16*)(DrvScrollRAM + 0x00000);
- xscroll2 = (UINT16*)(DrvScrollRAM + 0x00400);
- yscroll2 = (UINT16*)(DrvScrollRAM + 0x00f00);
- yscroll1 = (UINT16*)(DrvScrollRAM + 0x00f80);
- SekSetWriteWordHandler(0, citybomb_main_write_word);
- SekSetWriteByteHandler(0, citybomb_main_write_byte);
- SekSetReadWordHandler(0, nemesis_main_read_word);
- SekSetReadByteHandler(0, citybomb_main_read_byte);
- SekMapHandler(2, 0x060000, 0x061fff, MAP_WRITE);
- SekSetWriteWordHandler(2, nemesis_palette_write_word);
- SekSetWriteByteHandler(2, nemesis_palette_write_byte);
- SekMapHandler(1, 0x210000, 0x21ffff, MAP_WRITE);
- SekSetWriteWordHandler(1, nemesis_charram_write_word);
- SekSetWriteByteHandler(1, nemesis_charram_write_byte);
- SekClose();
-
- CitybombSoundInit();
-
- palette_write = salamand_palette_update;
-
- GenericTilesInit();
-
- DrvDoReset();
-
- return 0;
-}
-
-static INT32 DrvExit()
-{
- GenericTilesExit();
-
- SekExit();
- ZetExit();
-
- if (ay8910_enable) AY8910Exit(0);
- if (ay8910_enable) AY8910Exit(1);
- if (ym2151_enable) BurnYM2151Exit();
- if (ym3812_enable) BurnYM3812Exit();
- if (vlm5030_enable) vlm5030Exit();
- if (k007232_enable) K007232Exit();
- if (k005289_enable) K005289Exit();
- if (k051649_enable) K051649Exit();
- if (rcflt_enable) filter_rc_exit();
- if (bUseShifter) BurnShiftExit();
- bUseShifter = 0;
-
- BurnFree (AllMem);
-
- palette_write = NULL;
-
- ay8910_enable = 0;
- ym2151_enable = 0;
- ym3812_enable = 0;
- k005289_enable = 0;
- k007232_enable = 0;
- k051649_enable = 0;
- vlm5030_enable = 0;
- hcrash_mode = 0;
- gearboxmode = 0;
-
- return 0;
-}
-
-static void draw_layer(UINT8 *vidram, UINT8 *colram, UINT16 *scrollx, UINT16 *scrolly, INT32 priority, INT32)
-{
- UINT16 *vram = (UINT16*)vidram;
- UINT16 *cram = (UINT16*)colram;
-
- for (INT32 y = 0; y < 256; y++)
- {
- INT32 xscroll = (scrollx[y] & 0xff) | ((scrollx[y+0x100] & 1) * 256);
-
- INT32 sx_off = xscroll & 0x07;
-
- for (INT32 x = 0; x < nScreenWidth + (sx_off); x+=8)
- {
- INT32 scry = scrolly[x/8] & 0xff;
-
- INT32 offs = ((((scry/8)+(y/8)) & 0x1f) * 64) + (((x/8)+(xscroll/8)) & 0x3f);
-
- INT32 sy = y - (scry & 0x07);
-
- INT32 dy = sy;
- dy -= 16;
- if (dy < 0 || dy >= nScreenHeight) continue;
-
- if (*tilemap_flip_y) dy = (nScreenHeight - 1) - dy;
-
- INT32 code = vram[offs];
- INT32 color = cram[offs];
- INT32 flipx = (color & 0x0080) ? 0x07 : 0;
- INT32 flipy = (code & 0x0800) ? 0x38 : 0;
- INT32 mask = (code & 0x1000) >> 12;
- INT32 layer = (code & 0x4000) >> 14;
-
- INT32 transparency = 0;
-
- if (mask && layer == 0) layer = 1;
- if ((code & 0x2000) == 0 && (code & 0xc000) == 0x4000) { transparency = 0xff; }
-
- if (priority != mask) continue;
-
- if (code & 0xf800)
- {
- code = (code & 0x7ff) * 0x40;
- color = (color & 0x7f) * 0x10;
-
- UINT8 *rom = DrvCharRAMExp + code + (((y & 0x7)*8) ^ flipy);
-
- for (INT32 xx = 0; xx < 8; xx++)
- {
- int xxx = (xx + x) - sx_off;
-
- if (xxx >= 0 && xxx < nScreenWidth)
- {
- INT32 pxl = (rom[xx^flipx] & 0x0f);
-
- if (pxl!=transparency) {
- pTransDraw[dy * nScreenWidth + xxx] = color + pxl;
- }
- }
- }
- }
- else
- {
- if (transparency == 0xff) {
- for (INT32 xx = 0; xx < 8; xx++) {
- if ((xx + x) > 0 && (xx + x) < nScreenWidth) {
- pTransDraw[dy * nScreenWidth + (xx+x)] = 0;
- }
- }
- }
- }
- }
- }
-}
-
-static void draw_sprites()
-{
- static INT32 table[8][2] = {
- { 32, 32 }, { 16, 32 }, { 32, 16 }, { 64, 64 }, { 8, 8 }, { 16, 8 }, { 8, 16 }, { 16, 16 }
- };
-
- UINT16 *spriteram = (UINT16*)DrvSprRAM;
-
- for (INT32 priority = 0; priority < 256; priority++)
- {
- for (INT32 address = (0x1000/2) - 8; address >= 0; address -= 8)
- {
- if((spriteram[address] & 0xff) != priority)
- continue;
-
- INT32 zoom = spriteram[address + 2] & 0xff;
-
- INT32 code;
- if (!(spriteram[address + 2] & 0xff00) && ((spriteram[address + 3] & 0xff00) != 0xff00))
- code = spriteram[address + 3] + ((spriteram[address + 4] & 0xc0) << 2);
- else
- code = (spriteram[address + 3] & 0xff) + ((spriteram[address + 4] & 0xc0) << 2);
-
- if (zoom != 0xff || code != 0)
- {
-
- INT32 size = spriteram[address + 1];
- zoom += (size & 0xc0) << 2;
-
- if (zoom == 0) continue;
-
- INT32 sx = spriteram[address + 5] & 0xff;
- INT32 sy = spriteram[address + 6] & 0xff;
- if (spriteram[address + 4] & 0x01)
- sx-=0x100;
-
- INT32 color = (spriteram[address + 4] & 0x1e) >> 1;
- INT32 flipx = spriteram[address + 1] & 0x01;
- INT32 flipy = spriteram[address + 4] & 0x20;
-
- INT32 w = table[(size >> 3) & 7][0];
- INT32 h = table[(size >> 3) & 7][1];
- code = code * 8 * 16 / (w * h);
-
- zoom = ((1 << 16) * 0x80 / zoom) + 0x02ab;
-
- if (*flipscreen)
- {
- sx = 256 - ((zoom * w) >> 16) - sx;
- sy = 256 - ((zoom * h) >> 16) - sy;
- flipx = !flipx;
- flipy = !flipy;
- }
-
- RenderZoomedTile(pTransDraw, DrvCharRAMExp, code, color*16, 0, sx, sy - 16, flipx, flipy, w, h, zoom, zoom);
- }
- }
- }
-}
-
-static INT32 DrvDraw()
-{
- if (DrvRecalc) {
- if (palette_write != NULL) {
- for (INT32 i = 0; i < 0x2000; i+=2) { // a little hackish, but works for salamander & nemesis palette types
- palette_write(i);
- }
-
- DrvRecalc = 0;
- }
- }
-
- BurnTransferClear();
-
- if (nBurnLayer & 1) draw_layer(DrvVidRAM1, DrvColRAM1, xscroll2, yscroll2, 0, 1);
- if (nBurnLayer & 2) draw_layer(DrvVidRAM0, DrvColRAM0, xscroll1, yscroll1, 0, 2);
- if (nSpriteEnable & 1) draw_sprites();
- if (nBurnLayer & 4) draw_layer(DrvVidRAM1, DrvColRAM1, xscroll2, yscroll2, 1, 4);
- if (nBurnLayer & 8) draw_layer(DrvVidRAM0, DrvColRAM0, xscroll1, yscroll1, 1, 8);
-
- BurnTransferCopy(DrvPalette);
- if (bUseShifter)
- BurnShiftRender();
-
- return 0;
-}
-
-static INT32 NemesisFrame()
-{
- watchdog++;
- if (watchdog > 180) {
- DrvDoReset();
- }
-
- if (DrvReset) {
- DrvDoReset();
- }
-
- {
- memset (DrvInputs, 0, 4 * sizeof(INT16));
- for (INT32 i = 0; i < 16; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- DrvInputs[2] ^= (DrvJoy3[i] & 1) << i;
- DrvInputs[3] ^= (DrvJoy4[i] & 1) << i;
- }
- }
-
- INT32 nInterleave = 256;
- INT32 nCyclesTotal[2] = { 9216000 / 60, 3579545 / 60 };
- INT32 nCyclesDone[2] = { 0, 0 };
- INT32 nSoundBufferPos = 0;
-
- SekOpen(0);
- ZetOpen(0);
-
- for (INT32 i = 0; i < nInterleave; i++)
- {
- INT32 segment;
-
- segment = nCyclesTotal[0] / nInterleave;
- nCyclesDone[0] += SekRun(segment);
- if (i == 240 && *m68k_irq_enable)
- SekSetIRQLine(1, CPU_IRQSTATUS_AUTO);
-
- segment = nCyclesTotal[1] / nInterleave;
- nCyclesDone[1] += ZetRun(segment);
-
- // Render Sound Segment
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen / nInterleave;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- AY8910Render(&pAY8910Buffer[0], pSoundBuf, nSegmentLength, 0);
- nSoundBufferPos += nSegmentLength;
-
-#if 0
- filter_rc_update(0, pAY8910Buffer[0], pSoundBuf, nSegmentLength);
- filter_rc_update(1, pAY8910Buffer[1], pSoundBuf, nSegmentLength);
- filter_rc_update(2, pAY8910Buffer[2], pSoundBuf, nSegmentLength);
- filter_rc_update(3, pAY8910Buffer[3], pSoundBuf, nSegmentLength);
- filter_rc_update(4, pAY8910Buffer[4], pSoundBuf, nSegmentLength);
- filter_rc_update(5, pAY8910Buffer[5], pSoundBuf, nSegmentLength);
-#endif
-
- }
- }
-
- ZetClose();
- SekClose();
-
- // Make sure the buffer is entirely filled.
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- if (nSegmentLength) {
- AY8910Render(&pAY8910Buffer[0], pSoundBuf, nSegmentLength, 0);
-#if 0
- filter_rc_update(0, pAY8910Buffer[0], pSoundBuf, nSegmentLength);
- filter_rc_update(1, pAY8910Buffer[1], pSoundBuf, nSegmentLength);
- filter_rc_update(2, pAY8910Buffer[2], pSoundBuf, nSegmentLength);
- filter_rc_update(3, pAY8910Buffer[3], pSoundBuf, nSegmentLength);
- filter_rc_update(4, pAY8910Buffer[4], pSoundBuf, nSegmentLength);
- filter_rc_update(5, pAY8910Buffer[5], pSoundBuf, nSegmentLength);
-#endif
- }
- K005289Update(pBurnSoundOut, nBurnSoundLen);
- }
-
- if (pBurnDraw) {
- DrvDraw();
- }
-
- return 0;
-}
-
-static void spinner_update()
-{ // spinner calculation stuff. (wheel) for rf2 / konamigt & hcrash
- UINT8 INCREMENT = 0x02;
- UINT8 target = konamigt_read_wheel();
- if (DrvDial1+INCREMENT < target) { // go "right" in blocks of "INCREMENT"
- DrvDial1 += INCREMENT;
- }
- else
- if (DrvDial1 < target) { // take care of remainder
- DrvDial1++;
- }
-
- if (DrvDial1-INCREMENT > target) { // go "left" in blocks of "INCREMENT"
- DrvDial1 -= INCREMENT;
- }
- else
- if (DrvDial1 > target) { // take care of remainder
- DrvDial1--;
- }
-}
-
-static INT32 KonamigtFrame()
-{
- watchdog++;
- if (watchdog > 180) {
- DrvDoReset();
- }
-
- if (DrvReset) {
- DrvDoReset();
- }
-
- {
- memset (DrvInputs, 0, 4 * sizeof(INT16));
- for (INT32 i = 0; i < 16; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- DrvInputs[2] ^= (DrvJoy3[i] & 1) << i;
- DrvInputs[3] ^= (DrvJoy4[i] & 1) << i;
- }
-
- DrvInputs[1] = DrvInputs[1] & ~0x10;
- DrvInputs[1] |= ((BurnShiftInputCheckToggle(DrvJoy2[4])) ? 0x10 : 0x00);
- }
-
- spinner_update();
-
- INT32 nInterleave = 256;
- INT32 nCyclesTotal[2] = { 9216000 / 60, 3579545 / 60 };
- INT32 nCyclesDone[2] = { 0, 0 };
-
- SekOpen(0);
- ZetOpen(0);
-
- for (INT32 i = 0; i < nInterleave; i++)
- {
- INT32 segment;
-
- segment = nCyclesTotal[0] / nInterleave;
- nCyclesDone[0] += SekRun(segment);
-
- if (*m68k_irq_enable && i == 240 && (nCurrentFrame & 1) == 0)
- SekSetIRQLine(1, CPU_IRQSTATUS_AUTO);
-
- if (*m68k_irq_enable2 && i == 0)
- SekSetIRQLine(2, CPU_IRQSTATUS_AUTO);
-
- segment = nCyclesTotal[1] / nInterleave;
- nCyclesDone[1] += ZetRun(segment);
- }
-
- ZetClose();
- SekClose();
-
- if (pBurnSoundOut) {
- AY8910Render(&pAY8910Buffer[0], pBurnSoundOut, nBurnSoundLen, 0);
- K005289Update(pBurnSoundOut, nBurnSoundLen);
- }
-
- if (pBurnDraw) {
- DrvDraw();
- }
-
- return 0;
-}
-
-static INT32 SalamandFrame()
-{
- watchdog++;
- if (watchdog > 180) {
- DrvDoReset();
- }
-
- if (DrvReset) {
- DrvDoReset();
- }
-
- ZetNewFrame();
-
- {
- memset (DrvInputs, 0, 4 * sizeof(INT16));
- for (INT32 i = 0; i < 16; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- DrvInputs[2] ^= (DrvJoy3[i] & 1) << i;
- DrvInputs[3] ^= (DrvJoy4[i] & 1) << i;
- }
-
- DrvInputs[0] |= (DrvDips[2] & 0x0a) << 4;
- // DrvInputs[0] ^= 0x80; // service mode low
- DrvInputs[1] |= (DrvDips[2] & 0x80);
- }
-
- INT32 nSoundBufferPos = 0;
- INT32 nInterleave = (nBurnSoundLen) ? nBurnSoundLen : 256;
- INT32 nCyclesTotal[2] = { 9216000 / 60, 3579545 / 60 };
- INT32 nCyclesDone[2] = { 0, 0 };
-
- SekOpen(0);
- ZetOpen(0);
-
- for (INT32 i = 0; i < nInterleave; i++)
- {
- INT32 segment;
-
- segment = nCyclesTotal[0] / nInterleave;
- nCyclesDone[0] += SekRun(segment);
- if (i == (nInterleave - 4) && *m68k_irq_enable) // should be 2500...
- SekSetIRQLine(1, CPU_IRQSTATUS_AUTO);
-
- segment = nCyclesTotal[1] / nInterleave;
- nCyclesDone[1] += ZetRun(segment);
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen / nInterleave;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
-
- BurnYM2151Render(pSoundBuf, nSegmentLength);
- nSoundBufferPos += nSegmentLength;
- }
- }
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
- if (nSegmentLength) {
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- BurnYM2151Render(pSoundBuf, nSegmentLength);
- }
- vlm5030Update(0, pBurnSoundOut, nBurnSoundLen);
- K007232Update(0, pBurnSoundOut, nBurnSoundLen);
- }
-
- ZetClose();
- SekClose();
-
- if (pBurnDraw) {
- DrvDraw();
- }
-
- return 0;
-}
-
-static INT32 HcrashFrame()
-{
- watchdog++;
- if (watchdog > 180) {
- DrvDoReset();
- }
-
- if (DrvReset) {
- DrvDoReset();
- }
-
- ZetNewFrame();
-
- {
- memset (DrvInputs, 0, 4 * sizeof(INT16));
- for (INT32 i = 0; i < 16; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- DrvInputs[2] |= 1 << i;
- DrvInputs[3] ^= (DrvJoy4[i] & 1) << i;
- }
-
- spinner_update();
-
- }
-
- INT32 nSoundBufferPos = 0;
- INT32 nInterleave = 256; // should be nBurnSoundLen, but we need scanlines!
- INT32 nCyclesTotal[2] = { 6144000 / 60, 3579545 / 60 };
- INT32 nCyclesDone[2] = { 0, 0 };
-
- SekOpen(0);
- ZetOpen(0);
-
- for (INT32 i = 0; i < nInterleave; i++)
- {
- INT32 segment;
-
- segment = nCyclesTotal[0] / nInterleave;
- nCyclesDone[0] += SekRun(segment);
-
- if (*m68k_irq_enable && i == 240 && (nCurrentFrame & 1) == 0)
- SekSetIRQLine(1, CPU_IRQSTATUS_AUTO);
-
- if (*m68k_irq_enable2 && i == 0)
- SekSetIRQLine(2, CPU_IRQSTATUS_AUTO);
-
- segment = nCyclesTotal[1] / nInterleave;
- nCyclesDone[1] += ZetRun(segment);
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen / nInterleave;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
-
- BurnYM2151Render(pSoundBuf, nSegmentLength);
- nSoundBufferPos += nSegmentLength;
- }
- }
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
- if (nSegmentLength) {
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- BurnYM2151Render(pSoundBuf, nSegmentLength);
- }
- vlm5030Update(0, pBurnSoundOut, nBurnSoundLen);
- K007232Update(0, pBurnSoundOut, nBurnSoundLen);
- }
-
- ZetClose();
- SekClose();
-
- if (pBurnDraw) {
- DrvDraw();
- }
-
- return 0;
-}
-
-static INT32 BlkpnthrFrame()
-{
- watchdog++;
- if (watchdog > 180) {
- DrvDoReset();
- }
-
- if (DrvReset) {
- DrvDoReset();
- }
-
- ZetNewFrame();
-
- {
- memset (DrvInputs, 0, 4 * sizeof(INT16));
- for (INT32 i = 0; i < 16; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- DrvInputs[2] ^= (DrvJoy3[i] & 1) << i;
- DrvInputs[3] ^= (DrvJoy4[i] & 1) << i;
- }
-
- DrvInputs[0] |= (DrvDips[2] & 0xe0);
- DrvInputs[1] |= (DrvDips[2] & 0x08) << 4;
- }
-
- INT32 nSoundBufferPos = 0;
- INT32 nInterleave = (nBurnSoundLen) ? nBurnSoundLen : 256;
- INT32 nCyclesTotal[2] = { 9216000 / 60, 3579545 / 60 };
- INT32 nCyclesDone[2] = { 0, 0 };
-
- SekOpen(0);
- ZetOpen(0);
-
- for (INT32 i = 0; i < nInterleave; i++)
- {
- INT32 segment;
-
- segment = nCyclesTotal[0] / nInterleave;
- nCyclesDone[0] += SekRun(segment);
- if (i == (nInterleave - 4) && *m68k_irq_enable)
- SekSetIRQLine(2, CPU_IRQSTATUS_AUTO);
-
- segment = nCyclesTotal[1] / nInterleave;
- nCyclesDone[1] += ZetRun(segment);
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen / nInterleave;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
-
- BurnYM2151Render(pSoundBuf, nSegmentLength);
- nSoundBufferPos += nSegmentLength;
- }
- }
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
- if (nSegmentLength) {
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- BurnYM2151Render(pSoundBuf, nSegmentLength);
- }
-
- K007232Update(0, pBurnSoundOut, nBurnSoundLen);
- }
-
- ZetClose();
- SekClose();
-
- if (pBurnDraw) {
- DrvDraw();
- }
-
- return 0;
-}
-
-static INT32 Gx400Frame()
-{
- watchdog++;
- if (watchdog > 180) {
- DrvDoReset();
- }
-
- if (DrvReset) {
- DrvDoReset();
- }
-
- ZetNewFrame();
-
- {
- memset (DrvInputs, 0xff, 3 * sizeof(INT16));
- DrvInputs[3] = 0;
- for (INT32 i = 0; i < 16; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- DrvInputs[2] ^= (DrvJoy3[i] & 1) << i;
- DrvInputs[3] ^= (DrvJoy4[i] & 1) << i;
- }
-
- if (gearboxmode) { // rf2
- DrvInputs[1] = DrvInputs[1] & ~0x10;
- DrvInputs[1] |= ((BurnShiftInputCheckToggle(DrvJoy2[4])) ? 0x00 : 0x10); // different from the rest.
-
- spinner_update();
- }
- }
-
- INT32 nInterleave = 256;
- INT32 nCyclesTotal[2] = { 9216000 / 60, 3579545 / 60 };
- INT32 nCyclesDone[2] = { 0, 0 };
- INT32 nSoundBufferPos = 0;
-
- SekOpen(0);
- ZetOpen(0);
-
- for (INT32 i = 0; i < nInterleave; i++)
- {
- INT32 segment;
-
- segment = nCyclesTotal[0] / nInterleave;
- nCyclesDone[0] += SekRun(segment);
-
- if (*m68k_irq_enable && (i == 240) && (nCurrentFrame & 1) == 0)
- SekSetIRQLine(1, CPU_IRQSTATUS_AUTO);
-
- if (*m68k_irq_enable2 && (i == 0))
- SekSetIRQLine(2, CPU_IRQSTATUS_AUTO);
-
- if (*m68k_irq_enable4 && (i == 120))
- SekSetIRQLine(4, CPU_IRQSTATUS_AUTO);
-
- segment = nCyclesTotal[1] / nInterleave;
- nCyclesDone[1] += ZetRun(segment);
- if (i == (nInterleave - 1)) ZetNmi();
-
- // Render Sound Segment
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen / nInterleave;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- AY8910Render(&pAY8910Buffer[0], pSoundBuf, nSegmentLength, 0);
- nSoundBufferPos += nSegmentLength;
- }
- }
-
- ZetClose();
- SekClose();
-
- // Make sure the buffer is entirely filled.
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- if (nSegmentLength) {
- AY8910Render(&pAY8910Buffer[0], pSoundBuf, nSegmentLength, 0);
- }
- vlm5030Update(0, pBurnSoundOut, nBurnSoundLen);
- K005289Update(pBurnSoundOut, nBurnSoundLen);
- }
-
- if (pBurnDraw) {
- DrvDraw();
- }
-
- return 0;
-}
-
-static INT32 CitybombFrame()
-{
- watchdog++;
- if (watchdog > 180) {
- DrvDoReset();
- }
-
- if (DrvReset) {
- DrvDoReset();
- }
-
- ZetNewFrame();
-
- {
- memset (DrvInputs, 0xff, 4 * sizeof(INT16));
- DrvInputs[3] = 0;
- for (INT32 i = 0; i < 16; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- DrvInputs[2] ^= (DrvJoy3[i] & 1) << i;
- DrvInputs[3] ^= (DrvJoy4[i] & 1) << i;
- }
-
- DrvInputs[0] = (DrvInputs[0] & 0x1f) | ((DrvDips[2] & 0x0e)<<4);
- DrvInputs[1] = (DrvInputs[1] & 0x7f) | (DrvDips[2] & 0x80);
- }
-
- INT32 nCyclesTotal[2] = { 9216000 / 60, 3579545 / 60 };
- INT32 nCyclesDone[2] = { 0, 0 };
-
- SekOpen(0);
- ZetOpen(0);
-
- nCyclesDone[0] += SekRun(nCyclesTotal[0]);
-
- if (*m68k_irq_enable) // 2500...
- SekSetIRQLine(1, CPU_IRQSTATUS_AUTO);
-
- BurnTimerEndFrameYM3812(nCyclesTotal[1]);
-
- if (pBurnSoundOut) {
- BurnYM3812Update(pBurnSoundOut, nBurnSoundLen);
- K007232Update(0, pBurnSoundOut, nBurnSoundLen);
- K051649Update(pBurnSoundOut, nBurnSoundLen);
- }
-
- SekClose();
- ZetClose();
-
- if (pBurnDraw) {
- DrvDraw();
- }
-
- return 0;
-}
-
-
-static INT32 DrvScan(INT32 nAction, INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin != NULL) {
- *pnMin = 0x029698;
- }
-
- if (nAction & ACB_MEMORY_RAM) {
- memset(&ba, 0, sizeof(ba));
- ba.Data = AllRam;
- ba.nLen = RamEnd-AllRam;
- ba.szName = "All Ram";
- BurnAcb(&ba);
- }
-
- if (nAction & ACB_DRIVER_DATA) {
- SekScan(nAction);
- ZetScan(nAction);
-
- if (ym2151_enable) BurnYM2151Scan(nAction);
- if (ym3812_enable) BurnYM3812Scan(nAction, pnMin);
- if (ay8910_enable) AY8910Scan(nAction, pnMin);
- if (k005289_enable) K005289Scan(nAction, pnMin);
- if (k007232_enable) K007232Scan(nAction, pnMin);
- if (k051649_enable) K051649Scan(nAction, pnMin);
- if (vlm5030_enable) vlm5030Scan(nAction);
- if (bUseShifter) BurnShiftScan(nAction);
-
- SCAN_VAR(selected_ip);
- SCAN_VAR(DrvDial1);
- }
-
- if (nAction & ACB_WRITE) {
- for (INT32 i = 0; i < 0x10000; i+=2) {
- update_char_tiles(i);
- }
-
- DrvRecalc = 1;
- }
-
- return 0;
-}
-
-
-// Nemesis (ROM version)
-
-static struct BurnRomInfo nemesisRomDesc[] = {
- { "456-d01.12a", 0x08000, 0x35ff1aaa, 1 | BRF_PRG | BRF_ESS }, // 0 m68000 Code
- { "456-d05.12c", 0x08000, 0x23155faa, 1 | BRF_PRG | BRF_ESS }, // 1
- { "456-d02.13a", 0x08000, 0xac0cf163, 1 | BRF_PRG | BRF_ESS }, // 2
- { "456-d06.13c", 0x08000, 0x023f22a9, 1 | BRF_PRG | BRF_ESS }, // 3
- { "456-d03.14a", 0x08000, 0x8cefb25f, 1 | BRF_PRG | BRF_ESS }, // 4
- { "456-d07.14c", 0x08000, 0xd50b82cb, 1 | BRF_PRG | BRF_ESS }, // 5
- { "456-d04.15a", 0x08000, 0x9ca75592, 1 | BRF_PRG | BRF_ESS }, // 6
- { "456-d08.15c", 0x08000, 0x03c0b7f5, 1 | BRF_PRG | BRF_ESS }, // 7
-
- { "456-d09.9c", 0x04000, 0x26bf9636, 2 | BRF_PRG | BRF_ESS }, // 8 Z80 Code
-
- { "400-a01.fse", 0x00100, 0x5827b1e8, 3 | BRF_SND }, // 9 K005289 Samples
- { "400-a02.fse", 0x00100, 0x2f44f970, 3 | BRF_SND }, // 10
-};
-
-STD_ROM_PICK(nemesis)
-STD_ROM_FN(nemesis)
-
-struct BurnDriver BurnDrvNemesis = {
- "nemesis", NULL, NULL, NULL, "1985",
- "Nemesis (ROM version)\0", NULL, "Konami", "GX400",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_KONAMI_68K_Z80, GBF_HORSHOOT, 0,
- NULL, nemesisRomInfo, nemesisRomName, NULL, NULL, NemesisInputInfo, NemesisDIPInfo,
- NemesisInit, DrvExit, NemesisFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 256, 224, 4, 3
-};
-
-
-// Nemesis (World?, ROM version)
-
-static struct BurnRomInfo nemesisukRomDesc[] = {
- { "456-e01.12a", 0x08000, 0xe1993f91, 1 | BRF_PRG | BRF_ESS }, // 0 m68000 Code
- { "456-e05.12c", 0x08000, 0xc9761c78, 1 | BRF_PRG | BRF_ESS }, // 1
- { "456-e02.13a", 0x08000, 0xf6169c4b, 1 | BRF_PRG | BRF_ESS }, // 2
- { "456-e06.13c", 0x08000, 0xaf58c548, 1 | BRF_PRG | BRF_ESS }, // 3
- { "456-e03.14a", 0x08000, 0x8cefb25f, 1 | BRF_PRG | BRF_ESS }, // 4
- { "456-e07.14c", 0x08000, 0xd50b82cb, 1 | BRF_PRG | BRF_ESS }, // 5
- { "456-e04.15a", 0x08000, 0x322423d0, 1 | BRF_PRG | BRF_ESS }, // 6
- { "456-e08.15c", 0x08000, 0xeb656266, 1 | BRF_PRG | BRF_ESS }, // 7
-
- { "456-b09.9c", 0x04000, 0x26bf9636, 2 | BRF_PRG | BRF_ESS }, // 8 Z80 Code
-
- { "400-a01.fse", 0x00100, 0x5827b1e8, 3 | BRF_SND }, // 9 K005289 Samples
- { "400-a02.fse", 0x00100, 0x2f44f970, 3 | BRF_SND }, // 10
-};
-
-STD_ROM_PICK(nemesisuk)
-STD_ROM_FN(nemesisuk)
-
-struct BurnDriver BurnDrvNemesisuk = {
- "nemesisuk", "nemesis", NULL, NULL, "1985",
- "Nemesis (World?, ROM version)\0", NULL, "Konami", "GX400",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_KONAMI_68K_Z80, GBF_HORSHOOT, 0,
- NULL, nemesisukRomInfo, nemesisukRomName, NULL, NULL, NemesisInputInfo, NemesisDIPInfo,
- NemesisInit, DrvExit, NemesisFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 256, 224, 4, 3
-};
-
-
-// Konami GT
-
-static struct BurnRomInfo konamigtRomDesc[] = {
- { "561-c01.12a", 0x08000, 0x56245bfd, 1 | BRF_PRG | BRF_ESS }, // 0 m68000 Code
- { "561-c05.12c", 0x08000, 0x8d651f44, 1 | BRF_PRG | BRF_ESS }, // 1
- { "561-c02.13a", 0x08000, 0x3407b7cb, 1 | BRF_PRG | BRF_ESS }, // 2
- { "561-c06.13c", 0x08000, 0x209942d4, 1 | BRF_PRG | BRF_ESS }, // 3
- { "561-b03.14a", 0x08000, 0xaef7df48, 1 | BRF_PRG | BRF_ESS }, // 4
- { "561-b07.14c", 0x08000, 0xe9bd6250, 1 | BRF_PRG | BRF_ESS }, // 5
- { "561-b04.15a", 0x08000, 0x94bd4bd7, 1 | BRF_PRG | BRF_ESS }, // 6
- { "561-b08.15c", 0x08000, 0xb7236567, 1 | BRF_PRG | BRF_ESS }, // 7
-
- { "561-b09.9c", 0x04000, 0x539d0c49, 2 | BRF_PRG | BRF_ESS }, // 8 Z80 Code
-
- { "400-a01.fse", 0x00100, 0x5827b1e8, 3 | BRF_SND }, // 9 K005289 Samples
- { "400-a02.fse", 0x00100, 0x2f44f970, 3 | BRF_SND }, // 10
-};
-
-STD_ROM_PICK(konamigt)
-STD_ROM_FN(konamigt)
-
-struct BurnDriver BurnDrvKonamigt = {
- "konamigt", NULL, NULL, NULL, "1985",
- "Konami GT\0", NULL, "Konami", "GX561",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_KONAMI_68K_Z80, GBF_RACING, 0,
- NULL, konamigtRomInfo, konamigtRomName, NULL, NULL, KonamigtInputInfo, KonamigtDIPInfo,
- KonamigtInit, DrvExit, KonamigtFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 256, 224, 4, 3
-};
-
-
-// Salamander (version D)
-
-static struct BurnRomInfo salamandRomDesc[] = {
- { "587-d02.18b", 0x10000, 0xa42297f9, 1 | BRF_PRG | BRF_ESS }, // 0 m68000 Code
- { "587-d05.18c", 0x10000, 0xf9130b0a, 1 | BRF_PRG | BRF_ESS }, // 1
- { "587-c03.17b", 0x20000, 0xe5caf6e6, 1 | BRF_PRG | BRF_ESS }, // 2
- { "587-c06.17c", 0x20000, 0xc2f567ea, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "587-d09.11j", 0x08000, 0x5020972c, 2 | BRF_PRG | BRF_ESS }, // 4 Z80 Code
-
- { "587-d08.8g", 0x04000, 0xf9ac6b82, 4 | BRF_SND }, // 5 VLM5030 Samples
-
- { "587-c01.10a", 0x20000, 0x09fe0632, 5 | BRF_SND }, // 6 K007232 Samples
-};
-
-STD_ROM_PICK(salamand)
-STD_ROM_FN(salamand)
-
-struct BurnDriver BurnDrvSalamand = {
- "salamand", NULL, NULL, NULL, "1986",
- "Salamander (version D)\0", NULL, "Konami", "GX587",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_KONAMI_68K_Z80, GBF_HORSHOOT, 0,
- NULL, salamandRomInfo, salamandRomName, NULL, NULL, SalamandInputInfo, SalamandDIPInfo,
- SalamandInit, DrvExit, SalamandFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 256, 224, 4, 3
-};
-
-
-// Salamander (version J)
-
-static struct BurnRomInfo salamandjRomDesc[] = {
- { "587-j02.18b", 0x10000, 0xf68ee99a, 1 | BRF_PRG | BRF_ESS }, // 0 m68000 Code
- { "587-j05.18c", 0x10000, 0x72c16128, 1 | BRF_PRG | BRF_ESS }, // 1
- { "587-c03.17b", 0x20000, 0xe5caf6e6, 1 | BRF_PRG | BRF_ESS }, // 2
- { "587-c06.17c", 0x20000, 0xc2f567ea, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "587-d09.11j", 0x08000, 0x5020972c, 2 | BRF_PRG | BRF_ESS }, // 4 Z80 Code
-
- { "587-d08.8g", 0x04000, 0xf9ac6b82, 4 | BRF_SND }, // 5 VLM5030 Samples
-
- { "587-c01.10a", 0x20000, 0x09fe0632, 5 | BRF_SND }, // 6 K007232 Samples
-};
-
-STD_ROM_PICK(salamandj)
-STD_ROM_FN(salamandj)
-
-struct BurnDriver BurnDrvSalamandj = {
- "salamandj", "salamand", NULL, NULL, "1986",
- "Salamander (version J)\0", NULL, "Konami", "GX587",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_KONAMI_68K_Z80, GBF_HORSHOOT, 0,
- NULL, salamandjRomInfo, salamandjRomName, NULL, NULL, SalamandInputInfo, SalamandDIPInfo,
- SalamandInit, DrvExit, SalamandFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 256, 224, 4, 3
-};
-
-
-// Lifeforce (US)
-
-static struct BurnRomInfo lifefrceRomDesc[] = {
- { "587-k02.18b", 0x10000, 0x4a44da18, 1 | BRF_PRG | BRF_ESS }, // 0 m68000 Code
- { "587-k05.18c", 0x10000, 0x2f8c1cbd, 1 | BRF_PRG | BRF_ESS }, // 1
- { "587-c03.17b", 0x20000, 0xe5caf6e6, 1 | BRF_PRG | BRF_ESS }, // 2
- { "587-c06.17c", 0x20000, 0xc2f567ea, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "587-k09.11j", 0x08000, 0x2255fe8c, 2 | BRF_PRG | BRF_ESS }, // 4 Z80 Code
-
- { "587-k08.8g", 0x04000, 0x7f0e9b41, 4 | BRF_SND }, // 5 VLM5030 Samples
-
- { "587-c01.10a", 0x20000, 0x09fe0632, 5 | BRF_SND }, // 6 K007232 Samples
-};
-
-STD_ROM_PICK(lifefrce)
-STD_ROM_FN(lifefrce)
-
-struct BurnDriver BurnDrvLifefrce = {
- "lifefrce", "salamand", NULL, NULL, "1986",
- "Lifeforce (US)\0", NULL, "Konami", "GX587",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_KONAMI_68K_Z80, GBF_HORSHOOT, 0,
- NULL, lifefrceRomInfo, lifefrceRomName, NULL, NULL, SalamandInputInfo, SalamandDIPInfo,
- SalamandInit, DrvExit, SalamandFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 256, 224, 4, 3
-};
-
-
-// Lifeforce (Japan)
-
-static struct BurnRomInfo lifefrcejRomDesc[] = {
- { "587-n02.18b", 0x10000, 0x235dba71, 1 | BRF_PRG | BRF_ESS }, // 0 m68000 Code
- { "587-n05.18c", 0x10000, 0x054e569f, 1 | BRF_PRG | BRF_ESS }, // 1
- { "587-n03.17b", 0x20000, 0x9041f850, 1 | BRF_PRG | BRF_ESS }, // 2
- { "587-n06.17c", 0x20000, 0xfba8b6aa, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "587-n09.11j", 0x08000, 0xe8496150, 2 | BRF_PRG | BRF_ESS }, // 4 Z80 Code
-
- { "587-k08.8g", 0x04000, 0x7f0e9b41, 4 | BRF_SND }, // 5 VLM5030 Samples
-
- { "587-c01.10a", 0x20000, 0x09fe0632, 5 | BRF_SND }, // 6 K007232 Samples
-};
-
-STD_ROM_PICK(lifefrcej)
-STD_ROM_FN(lifefrcej)
-
-struct BurnDriver BurnDrvLifefrcej = {
- "lifefrcej", "salamand", NULL, NULL, "1987",
- "Lifeforce (Japan)\0", NULL, "Konami", "GX587",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_KONAMI_68K_Z80, GBF_HORSHOOT, 0,
- NULL, lifefrcejRomInfo, lifefrcejRomName, NULL, NULL, SalamandInputInfo, LifefrcjDIPInfo,
- SalamandInit, DrvExit, SalamandFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 256, 224, 4, 3
-};
-
-
-// TwinBee (ROM version)
-
-static struct BurnRomInfo twinbeeRomDesc[] = {
- { "400-a06.15l", 0x08000, 0xb99d8cff, 1 | BRF_PRG | BRF_ESS }, // 0 m68000 Code
- { "400-a04.10l", 0x08000, 0xd02c9552, 1 | BRF_PRG | BRF_ESS }, // 1
- { "412-a07.17l", 0x20000, 0xd93c5499, 1 | BRF_PRG | BRF_ESS }, // 2
- { "412-a05.12l", 0x20000, 0x2b357069, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "400-e03.5l", 0x02000, 0xa5a8e57d, 2 | BRF_PRG | BRF_ESS }, // 4 Z80 Code
-
- { "400-a01.fse", 0x00100, 0x5827b1e8, 3 | BRF_SND }, // 5 K005289 Samples
- { "400-a02.fse", 0x00100, 0x2f44f970, 3 | BRF_SND }, // 6
-};
-
-STD_ROM_PICK(twinbee)
-STD_ROM_FN(twinbee)
-
-struct BurnDriver BurnDrvTwinbee = {
- "twinbee", NULL, NULL, NULL, "1985",
- "TwinBee (ROM version)\0", NULL, "Konami", "GX412",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED, 2, HARDWARE_KONAMI_68K_Z80, GBF_VERSHOOT, 0,
- NULL, twinbeeRomInfo, twinbeeRomName, NULL, NULL, TwinbeeInputInfo, TwinbeeDIPInfo,
- Gx400Init, DrvExit, Gx400Frame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 224, 256, 3, 4
-};
-
-
-// Gradius (Japan, ROM version)
-
-static struct BurnRomInfo gradiusRomDesc[] = {
- { "400-a06.15l", 0x08000, 0xb99d8cff, 1 | BRF_PRG | BRF_ESS }, // 0 m68000 Code
- { "400-a04.10l", 0x08000, 0xd02c9552, 1 | BRF_PRG | BRF_ESS }, // 1
- { "456-a07.17l", 0x20000, 0x92df792c, 1 | BRF_PRG | BRF_ESS }, // 2
- { "456-a05.12l", 0x20000, 0x5cafb263, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "400-e03.5l", 0x02000, 0xa5a8e57d, 2 | BRF_PRG | BRF_ESS }, // 4 Z80 Code
-
- { "400-a01.fse", 0x00100, 0x5827b1e8, 3 | BRF_SND }, // 5 K005289 Samples
- { "400-a02.fse", 0x00100, 0x2f44f970, 3 | BRF_SND }, // 6
-};
-
-STD_ROM_PICK(gradius)
-STD_ROM_FN(gradius)
-
-struct BurnDriver BurnDrvGradius = {
- "gradius", "nemesis", NULL, NULL, "1985",
- "Gradius (Japan, ROM version)\0", NULL, "Konami", "GX456",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_KONAMI_68K_Z80, GBF_HORSHOOT, 0,
- NULL, gradiusRomInfo, gradiusRomName, NULL, NULL, GradiusInputInfo, GradiusDIPInfo,
- Gx400Init, DrvExit, Gx400Frame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 256, 224, 4, 3
-};
-
-
-// Galactic Warriors
-
-static struct BurnRomInfo gwarriorRomDesc[] = {
- { "400-a06.15l", 0x08000, 0xb99d8cff, 1 | BRF_PRG | BRF_ESS }, // 0 m68000 Code
- { "400-a04.10l", 0x08000, 0xd02c9552, 1 | BRF_PRG | BRF_ESS }, // 1
- { "578-a07.17l", 0x20000, 0x0aedacb5, 1 | BRF_PRG | BRF_ESS }, // 2
- { "578-a05.12l", 0x20000, 0x76240e2e, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "400-e03.5l", 0x02000, 0xa5a8e57d, 2 | BRF_PRG | BRF_ESS }, // 4 Z80 Code
-
- { "400-a01.fse", 0x00100, 0x5827b1e8, 3 | BRF_SND }, // 5 K005289 Samples
- { "400-a02.fse", 0x00100, 0x2f44f970, 3 | BRF_SND }, // 6
-};
-
-STD_ROM_PICK(gwarrior)
-STD_ROM_FN(gwarrior)
-
-struct BurnDriver BurnDrvGwarrior = {
- "gwarrior", NULL, NULL, NULL, "1985",
- "Galactic Warriors\0", NULL, "Konami", "GX578",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_KONAMI_68K_Z80, GBF_VSFIGHT, 0,
- NULL, gwarriorRomInfo, gwarriorRomName, NULL, NULL, GwarriorInputInfo, GwarriorDIPInfo,
- Gx400Init, DrvExit, Gx400Frame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 256, 224, 4, 3
-};
-
-
-// Konami RF2 - Red Fighter
-
-static struct BurnRomInfo rf2RomDesc[] = {
- { "400-a06.15l", 0x08000, 0xb99d8cff, 1 | BRF_PRG | BRF_ESS }, // 0 m68000 Code
- { "400-a04.10l", 0x08000, 0xd02c9552, 1 | BRF_PRG | BRF_ESS }, // 1
- { "561-a07.17l", 0x20000, 0xed6e7098, 1 | BRF_PRG | BRF_ESS }, // 2
- { "561-a05.12l", 0x20000, 0xdfe04425, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "400-e03.5l", 0x02000, 0xa5a8e57d, 2 | BRF_PRG | BRF_ESS }, // 4 Z80 Code
-
- { "400-a01.fse", 0x00100, 0x5827b1e8, 3 | BRF_SND }, // 5 K005289 Samples
- { "400-a02.fse", 0x00100, 0x2f44f970, 3 | BRF_SND }, // 6
-};
-
-STD_ROM_PICK(rf2)
-STD_ROM_FN(rf2)
-
-struct BurnDriver BurnDrvRf2 = {
- "rf2", "konamigt", NULL, NULL, "1985",
- "Konami RF2 - Red Fighter\0", NULL, "Konami", "GX561",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_KONAMI_68K_Z80, GBF_RACING, 0,
- NULL, rf2RomInfo, rf2RomName, NULL, NULL, KonamigtInputInfo, KonamigtDIPInfo,
- Rf2_gx400Init, DrvExit, Gx400Frame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 256, 224, 4, 3
-};
-
-
-// Black Panther
-
-static struct BurnRomInfo blkpnthrRomDesc[] = {
- { "604-f02.18b", 0x10000, 0x487bf8da, 1 | BRF_PRG | BRF_ESS }, // 0 m68000 Code
- { "604-f05.18c", 0x10000, 0xb08f8ca2, 1 | BRF_PRG | BRF_ESS }, // 1
- { "604-c03.17b", 0x20000, 0x815bc3b0, 1 | BRF_PRG | BRF_ESS }, // 2
- { "604-c06.17c", 0x20000, 0x4af6bf7f, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "604-a08.11j", 0x08000, 0xaff88a2b, 2 | BRF_PRG | BRF_ESS }, // 4 Z80 Code
-
- { "604-a01.10a", 0x20000, 0xeceb64a6, 5 | BRF_SND }, // 5 K007232 Samples
-};
-
-STD_ROM_PICK(blkpnthr)
-STD_ROM_FN(blkpnthr)
-
-struct BurnDriver BurnDrvBlkpnthr = {
- "blkpnthr", NULL, NULL, NULL, "1987",
- "Black Panther\0", NULL, "Konami", "GX604",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_KONAMI_68K_Z80, GBF_SCRFIGHT, 0,
- NULL, blkpnthrRomInfo, blkpnthrRomName, NULL, NULL, BlkpnthrInputInfo, BlkpnthrDIPInfo,
- BlkpnthrInit, DrvExit, BlkpnthrFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 256, 224, 4, 3
-};
-
-
-// City Bomber (World)
-
-static struct BurnRomInfo citybombRomDesc[] = {
- { "787-g10.15k", 0x10000, 0x26207530, 1 | BRF_PRG | BRF_ESS }, // 0 m68000 Code
- { "787-g09.15h", 0x10000, 0xce7de262, 1 | BRF_PRG | BRF_ESS }, // 1
- { "787-g08.15f", 0x20000, 0x6242ef35, 1 | BRF_PRG | BRF_ESS }, // 2
- { "787-g07.15d", 0x20000, 0x21be5e9e, 1 | BRF_PRG | BRF_ESS }, // 3
- { "787-e06.14f", 0x20000, 0xc251154a, 1 | BRF_PRG | BRF_ESS }, // 4
- { "787-e05.14d", 0x20000, 0x0781e22d, 1 | BRF_PRG | BRF_ESS }, // 5
- { "787-g04.13f", 0x20000, 0x137cf39f, 1 | BRF_PRG | BRF_ESS }, // 6
- { "787-g03.13d", 0x20000, 0x0cc704dc, 1 | BRF_PRG | BRF_ESS }, // 7
-
- { "787-e02.4h", 0x08000, 0xf4591e46, 2 | BRF_PRG | BRF_ESS }, // 8 Z80 Code
-
- { "787-e01.1k", 0x80000, 0xedc34d01, 5 | BRF_SND }, // 9 K007232 Samples
-};
-
-STD_ROM_PICK(citybomb)
-STD_ROM_FN(citybomb)
-
-struct BurnDriver BurnDrvCitybomb = {
- "citybomb", NULL, NULL, NULL, "1987",
- "City Bomber (World)\0", NULL, "Konami", "GX787",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL, 2, HARDWARE_KONAMI_68K_Z80, GBF_SHOOT, 0,
- NULL, citybombRomInfo, citybombRomName, NULL, NULL, CitybombInputInfo, CitybombDIPInfo,
- CitybombInit, DrvExit, CitybombFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 224, 256, 3, 4
-};
-
-
-// City Bomber (Japan)
-
-static struct BurnRomInfo citybombjRomDesc[] = {
- { "787-h10.15k", 0x10000, 0x66fecf69, 1 | BRF_PRG | BRF_ESS }, // 0 m68000 Code
- { "787-h09.15h", 0x10000, 0xa0e29468, 1 | BRF_PRG | BRF_ESS }, // 1
- { "787-g08.15f", 0x20000, 0x6242ef35, 1 | BRF_PRG | BRF_ESS }, // 2
- { "787-g07.15d", 0x20000, 0x21be5e9e, 1 | BRF_PRG | BRF_ESS }, // 3
- { "787-e06.14f", 0x20000, 0xc251154a, 1 | BRF_PRG | BRF_ESS }, // 4
- { "787-e05.14d", 0x20000, 0x0781e22d, 1 | BRF_PRG | BRF_ESS }, // 5
- { "787-g04.13f", 0x20000, 0x137cf39f, 1 | BRF_PRG | BRF_ESS }, // 6
- { "787-g03.13d", 0x20000, 0x0cc704dc, 1 | BRF_PRG | BRF_ESS }, // 7
-
- { "787-e02.4h", 0x08000, 0xf4591e46, 2 | BRF_PRG | BRF_ESS }, // 8 Z80 Code
-
- { "787-e01.1k", 0x80000, 0xedc34d01, 5 | BRF_SND }, // 9 K007232 Samples
-};
-
-STD_ROM_PICK(citybombj)
-STD_ROM_FN(citybombj)
-
-struct BurnDriver BurnDrvCitybombj = {
- "citybombj", "citybomb", NULL, NULL, "1987",
- "City Bomber (Japan)\0", NULL, "Konami", "GX787",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL, 2, HARDWARE_KONAMI_68K_Z80, GBF_SHOOT, 0,
- NULL, citybombjRomInfo, citybombjRomName, NULL, NULL, CitybombInputInfo, CitybombDIPInfo,
- CitybombInit, DrvExit, CitybombFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 224, 256, 3, 4
-};
-
-
-// Kitten Kaboodle
-
-static struct BurnRomInfo kittenkRomDesc[] = {
- { "kitten.15k", 0x10000, 0x8267cb2b, 1 | BRF_PRG | BRF_ESS }, // 0 m68000 Code
- { "kitten.15h", 0x10000, 0xeb41cfa5, 1 | BRF_PRG | BRF_ESS }, // 1
- { "712-b08.15f", 0x20000, 0xe6d71611, 1 | BRF_PRG | BRF_ESS }, // 2
- { "712-b07.15d", 0x20000, 0x30f75c9f, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "712-e02.4h", 0x08000, 0xba76f310, 2 | BRF_PRG | BRF_ESS }, // 4 Z80 Code
-
- { "712-b01.1k", 0x80000, 0xf65b5d95, 5 | BRF_SND }, // 5 K007232 Samples
-};
-
-STD_ROM_PICK(kittenk)
-STD_ROM_FN(kittenk)
-
-struct BurnDriver BurnDrvKittenk = {
- "kittenk", NULL, NULL, NULL, "1988",
- "Kitten Kaboodle\0", NULL, "Konami", "GX712",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_KONAMI_68K_Z80, GBF_PUZZLE, 0,
- NULL, kittenkRomInfo, kittenkRomName, NULL, NULL, NyanpaniInputInfo, NyanpaniDIPInfo,
- NyanpaniInit, DrvExit, CitybombFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 256, 224, 4, 3
-};
-
-
-// Nyan Nyan Panic (Japan)
-
-static struct BurnRomInfo nyanpaniRomDesc[] = {
- { "712-j10.15k", 0x10000, 0x924b27ec, 1 | BRF_PRG | BRF_ESS }, // 0 m68000 Code
- { "712-j09.15h", 0x10000, 0xa9862ea1, 1 | BRF_PRG | BRF_ESS }, // 1
- { "712-b08.15f", 0x20000, 0xe6d71611, 1 | BRF_PRG | BRF_ESS }, // 2
- { "712-b07.15d", 0x20000, 0x30f75c9f, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "712-e02.4h", 0x08000, 0xba76f310, 2 | BRF_PRG | BRF_ESS }, // 4 Z80 Code
-
- { "712-b01.1k", 0x80000, 0xf65b5d95, 5 | BRF_SND }, // 5 K007232 Samples
-};
-
-STD_ROM_PICK(nyanpani)
-STD_ROM_FN(nyanpani)
-
-struct BurnDriver BurnDrvNyanpani = {
- "nyanpani", "kittenk", NULL, NULL, "1988",
- "Nyan Nyan Panic (Japan)\0", NULL, "Konami", "GX712",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_KONAMI_68K_Z80, GBF_PUZZLE, 0,
- NULL, nyanpaniRomInfo, nyanpaniRomName, NULL, NULL, NyanpaniInputInfo, NyanpaniDIPInfo,
- NyanpaniInit, DrvExit, CitybombFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 256, 224, 4, 3
-};
-
-
-// Hyper Crash (version D)
-
-static struct BurnRomInfo hcrashRomDesc[] = {
- { "790-d03.t9", 0x08000, 0x10177dce, 1 | BRF_PRG | BRF_ESS }, // 0 m68000 Code
- { "790-d06.t7", 0x08000, 0xfca5ab3e, 1 | BRF_PRG | BRF_ESS }, // 1
- { "790-c02.s9", 0x10000, 0x8ae6318f, 1 | BRF_PRG | BRF_ESS }, // 2
- { "790-c05.s7", 0x10000, 0xc214f77b, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "790-c09.n2", 0x08000, 0xa68a8cce, 2 | BRF_PRG | BRF_ESS }, // 4 Z80 Code
-
- { "790-c08.j4", 0x08000, 0xcfb844bc, 4 | BRF_SND }, // 5 VLM5030 Samples
-
- { "790-c01.m10", 0x20000, 0x07976bc3, 5 | BRF_SND }, // 6 K007232 Samples
-};
-
-STD_ROM_PICK(hcrash)
-STD_ROM_FN(hcrash)
-
-struct BurnDriver BurnDrvHcrash = {
- "hcrash", NULL, NULL, NULL, "1987",
- "Hyper Crash (version D)\0", NULL, "Konami", "GX790",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_KONAMI_68K_Z80, GBF_RACING, 0,
- NULL, hcrashRomInfo, hcrashRomName, NULL, NULL, HcrashInputInfo, HcrashDIPInfo,
- HcrashInit, DrvExit, HcrashFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 256, 224, 4, 3
-};
-
-
-// Hyper Crash (version C)
-
-static struct BurnRomInfo hcrashcRomDesc[] = {
- { "790-c03.t9", 0x08000, 0xd98ec625, 1 | BRF_PRG | BRF_ESS }, // 0 m68000 Code
- { "790-c06.t7", 0x08000, 0x1d641a86, 1 | BRF_PRG | BRF_ESS }, // 1
- { "790-c02.s9", 0x10000, 0x8ae6318f, 1 | BRF_PRG | BRF_ESS }, // 2
- { "790-c05.s7", 0x10000, 0xc214f77b, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "790-c09.n2", 0x08000, 0xa68a8cce, 2 | BRF_PRG | BRF_ESS }, // 4 Z80 Code
-
- { "790-c08.j4", 0x08000, 0xcfb844bc, 4 | BRF_SND }, // 5 VLM5030 Samples
-
- { "790-c01.m10", 0x20000, 0x07976bc3, 5 | BRF_SND }, // 6 K007232 Samples
-};
-
-STD_ROM_PICK(hcrashc)
-STD_ROM_FN(hcrashc)
-
-struct BurnDriver BurnDrvHcrashc = {
- "hcrashc", "hcrash", NULL, NULL, "1987",
- "Hyper Crash (version C)\0", NULL, "Konami", "GX790",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_KONAMI_68K_Z80, GBF_RACING, 0,
- NULL, hcrashcRomInfo, hcrashcRomName, NULL, NULL, HcrashInputInfo, HcrashDIPInfo,
- HcrashInit, DrvExit, HcrashFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 256, 224, 4, 3
-};
diff --git a/jan/src/burn/drv/konami/d_pandoras.cpp b/jan/src/burn/drv/konami/d_pandoras.cpp
deleted file mode 100644
index f69bf7b8c..000000000
--- a/jan/src/burn/drv/konami/d_pandoras.cpp
+++ /dev/null
@@ -1,827 +0,0 @@
-// FB Alpha Pandora's Palace driver module
-// Based on MAME driver by Manuel Abadia
-
-#include "tiles_generic.h"
-#include "m6809_intf.h"
-#include "z80_intf.h"
-#include "i8039.h"
-#include "driver.h"
-extern "C" {
-#include "ay8910.h"
-}
-#include "dac.h"
-
-static UINT8 *AllMem;
-static UINT8 *MemEnd;
-static UINT8 *AllRam;
-static UINT8 *RamEnd;
-static UINT8 *DrvMainROM;
-static UINT8 *DrvSubROM;
-static UINT8 *DrvZ80ROM;
-static UINT8 *DrvI8039ROM;
-static UINT8 *DrvGfxROM0;
-static UINT8 *DrvGfxROM1;
-static UINT8 *DrvColPROM;
-static UINT8 *DrvVidRAM;
-static UINT8 *DrvColRAM;
-static UINT8 *DrvShareRAM;
-static UINT8 *DrvZ80RAM;
-static UINT8 *DrvSprRAM;
-
-static INT16 *pAY8910Buffer[6];
-
-static UINT32 *DrvPalette;
-static UINT8 DrvRecalc;
-
-static UINT8 soundlatch;
-static UINT8 soundlatch2;
-static UINT8 i8039_status;
-
-static UINT8 flipscreen;
-static UINT8 scrolly;
-
-static UINT8 irq_enable[2];
-static UINT8 firq_trigger[2];
-
-static UINT8 DrvJoy1[8];
-static UINT8 DrvJoy2[8];
-static UINT8 DrvJoy3[8];
-static UINT8 DrvDips[3];
-static UINT8 DrvInputs[3];
-static UINT8 DrvReset;
-
-static INT32 watchdog;
-
-static struct BurnInputInfo PandorasInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy1 + 0, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 3, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy2 + 2, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy2 + 3, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy2 + 0, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy2 + 1, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy2 + 4, "p1 fire 1" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy1 + 1, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy1 + 4, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvJoy3 + 2, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy3 + 3, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy3 + 0, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy3 + 1, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy3 + 4, "p2 fire 1" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service", BIT_DIGITAL, DrvJoy1 + 2, "service" },
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip" },
- {"Dip C", BIT_DIPSWITCH, DrvDips + 2, "dip" },
-};
-
-STDINPUTINFO(Pandoras)
-
-static struct BurnDIPInfo PandorasDIPList[]=
-{
- {0x10, 0xff, 0xff, 0xff, NULL },
- {0x11, 0xff, 0xff, 0x5b, NULL },
- {0x12, 0xff, 0xff, 0xff, NULL },
-
- {0 , 0xfe, 0 , 16, "Coin A" },
- {0x10, 0x01, 0x0f, 0x02, "4 Coins 1 Credits" },
- {0x10, 0x01, 0x0f, 0x05, "3 Coins 1 Credits" },
- {0x10, 0x01, 0x0f, 0x08, "2 Coins 1 Credits" },
- {0x10, 0x01, 0x0f, 0x04, "3 Coins 2 Credits" },
- {0x10, 0x01, 0x0f, 0x01, "4 Coins 3 Credits" },
- {0x10, 0x01, 0x0f, 0x0f, "1 Coin 1 Credits" },
- {0x10, 0x01, 0x0f, 0x03, "3 Coins 4 Credits" },
- {0x10, 0x01, 0x0f, 0x07, "2 Coins 3 Credits" },
- {0x10, 0x01, 0x0f, 0x0e, "1 Coin 2 Credits" },
- {0x10, 0x01, 0x0f, 0x06, "2 Coins 5 Credits" },
- {0x10, 0x01, 0x0f, 0x0d, "1 Coin 3 Credits" },
- {0x10, 0x01, 0x0f, 0x0c, "1 Coin 4 Credits" },
- {0x10, 0x01, 0x0f, 0x0b, "1 Coin 5 Credits" },
- {0x10, 0x01, 0x0f, 0x0a, "1 Coin 6 Credits" },
- {0x10, 0x01, 0x0f, 0x09, "1 Coin 7 Credits" },
- {0x10, 0x01, 0x0f, 0x00, "Free Play" },
-
- {0 , 0xfe, 0 , 16, "Coin B" },
- {0x10, 0x01, 0xf0, 0x20, "4 Coins 1 Credits" },
- {0x10, 0x01, 0xf0, 0x50, "3 Coins 1 Credits" },
- {0x10, 0x01, 0xf0, 0x80, "2 Coins 1 Credits" },
- {0x10, 0x01, 0xf0, 0x40, "3 Coins 2 Credits" },
- {0x10, 0x01, 0xf0, 0x10, "4 Coins 3 Credits" },
- {0x10, 0x01, 0xf0, 0xf0, "1 Coin 1 Credits" },
- {0x10, 0x01, 0xf0, 0x30, "3 Coins 4 Credits" },
- {0x10, 0x01, 0xf0, 0x70, "2 Coins 3 Credits" },
- {0x10, 0x01, 0xf0, 0xe0, "1 Coin 2 Credits" },
- {0x10, 0x01, 0xf0, 0x60, "2 Coins 5 Credits" },
- {0x10, 0x01, 0xf0, 0xd0, "1 Coin 3 Credits" },
- {0x10, 0x01, 0xf0, 0xc0, "1 Coin 4 Credits" },
- {0x10, 0x01, 0xf0, 0xb0, "1 Coin 5 Credits" },
- {0x10, 0x01, 0xf0, 0xa0, "1 Coin 6 Credits" },
- {0x10, 0x01, 0xf0, 0x90, "1 Coin 7 Credits" },
- {0x10, 0x01, 0xf0, 0x00, "No Coin B" },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x11, 0x01, 0x03, 0x03, "3" },
- {0x11, 0x01, 0x03, 0x02, "4" },
- {0x11, 0x01, 0x03, 0x01, "5" },
- {0x11, 0x01, 0x03, 0x00, "7" },
-
- {0 , 0xfe, 0 , 2, "Cabinet" },
- {0x11, 0x01, 0x04, 0x00, "Upright" },
- {0x11, 0x01, 0x04, 0x04, "Cocktail" },
-
- {0 , 0xfe, 0 , 4, "Bonus Life" },
- {0x11, 0x01, 0x18, 0x18, "20k and every 60k" },
- {0x11, 0x01, 0x18, 0x10, "30k and every 70k" },
- {0x11, 0x01, 0x18, 0x08, "20k" },
- {0x11, 0x01, 0x18, 0x00, "30k" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x11, 0x01, 0x60, 0x60, "Easy" },
- {0x11, 0x01, 0x60, 0x40, "Normal" },
- {0x11, 0x01, 0x60, 0x20, "Difficult" },
- {0x11, 0x01, 0x60, 0x00, "Very Difficult" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x11, 0x01, 0x80, 0x80, "Off" },
- {0x11, 0x01, 0x80, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Freeze" },
- {0x12, 0x01, 0x01, 0x01, "Off" },
- {0x12, 0x01, 0x01, 0x00, "On" },
-};
-
-STDDIPINFO(Pandoras)
-
-static void interrupt_control(INT32 offset, UINT8 data, INT32 cpu)
-{
- switch (offset & 0x07)
- {
- case 0x00:
- {
- if (data == 0) {
- M6809Close();
- M6809Open(0);
- M6809SetIRQLine(CPU_IRQLINE_IRQ, CPU_IRQSTATUS_NONE);
- M6809Close();
- M6809Open(cpu);
- }
- irq_enable[0] = data;
- }
- return;
-
- case 0x02:
- case 0x03:
- // coin counters, data & 0x01
- return;
-
- case 0x05:
- flipscreen = data;
- return;
-
- case 0x06:
- {
- if (data == 0) {
- M6809Close();
- M6809Open(1);
- M6809SetIRQLine(CPU_IRQLINE_IRQ, CPU_IRQSTATUS_NONE);
- M6809Close();
- M6809Open(cpu);
- }
- irq_enable[1] = data;
- }
-
- case 0x07:
- {
- return; // disable NMI. Why???
-
- M6809Close();
- M6809Open(1);
- M6809SetIRQLine(0x20, CPU_IRQSTATUS_AUTO);
- M6809Close();
- M6809Open(cpu);
- }
- return;
- }
-}
-
-static void pandoras_main_write(UINT16 address, UINT8 data)
-{
- if ((address & 0xfff8) == 0x1800) {
- interrupt_control(address, data, 0);
- return;
- }
-
- switch (address)
- {
- case 0x1a00:
- scrolly = data;
- return;
-
- case 0x1c00:
- ZetSetVector(0xff);
- ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
- return;
-
- case 0x1e00:
- soundlatch = data;
- return;
-
- case 0x2000:
- if (!firq_trigger[1] && data) {
- M6809Close();
- M6809Open(1);
- M6809SetIRQLine(CPU_IRQLINE_FIRQ, CPU_IRQSTATUS_AUTO);
- M6809Close();
- M6809Open(0);
- }
- firq_trigger[1] = data;
- return;
-
- case 0x2001:
- watchdog = 0;
- return;
- }
-}
-
-static void pandoras_sub_write(UINT16 address, UINT8 data)
-{
- if ((address & 0xfff8) == 0x1800) {
- interrupt_control(address, data, 1);
- return;
- }
-
- switch (address)
- {
- case 0x8000:
- watchdog = 0;
- return;
-
- case 0xa000:
- if (!firq_trigger[0] && data) {
- M6809Close();
- M6809Open(0);
- M6809SetIRQLine(CPU_IRQLINE_FIRQ, CPU_IRQSTATUS_AUTO);
- M6809Close();
- M6809Open(1);
- }
- firq_trigger[0] = data;
- return;
- }
-}
-
-static UINT8 pandoras_sub_read(UINT16 address)
-{
- switch (address)
- {
- case 0x1800:
- return DrvDips[0];
-
- case 0x1a00:
- case 0x1a01:
- case 0x1a02:
- return DrvInputs[address & 3];
-
- case 0x1a03:
- return DrvDips[2];
-
- case 0x1c00:
- return DrvDips[1];
-
- case 0x1e00:
- return 0;
- }
-
- return 0;
-}
-
-static void __fastcall pandoras_sound_write(UINT16 address, UINT8 data)
-{
- switch (address)
- {
- case 0x6000:
- case 0x6002:
- AY8910Write(0, (address / 2) & 1, data);
- return;
-
- case 0x8000:
- I8039SetIrqState(CPU_IRQSTATUS_ACK);
- return;
-
- case 0xa000:
- soundlatch2 = data;
- return;
- }
-}
-
-static UINT8 __fastcall pandoras_sound_read(UINT16 address)
-{
- switch (address)
- {
- case 0x4000:
- ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
- return soundlatch;
-
- case 0x6001:
- return AY8910Read(0);
- }
-
- return 0;
-}
-
-static UINT8 __fastcall pandoras_i8039_read(UINT32 address)
-{
- return DrvI8039ROM[address & 0x0fff];
-}
-
-static UINT8 __fastcall pandoras_i8039_read_port(UINT32 port)
-{
- if ((port & 0x1ff) < 0x100) {
- return soundlatch2;
- }
-
- return 0;
-}
-
-static void __fastcall pandoras_i8039_write_port(UINT32 port, UINT8 data)
-{
- switch (port & 0x1ff)
- {
- case I8039_p1:
- DACWrite(0, data);
- return;
-
- case I8039_p2:
- if ((data & 0x80) == 0) {
- I8039SetIrqState(CPU_IRQSTATUS_NONE);
- }
- i8039_status = (data >> 5) & 1;
- return;
- }
-}
-
-static UINT8 AY8910_0_port_A_Read(UINT32)
-{
- return i8039_status;
-}
-
-static UINT8 AY8910_0_port_B_Read(UINT32)
-{
- if (ZetGetActive() == -1) return 0;
-
- return (ZetTotalCycles() / 512) & 0xf;
-}
-
-static INT32 DrvSyncDAC()
-{
- return (INT32)(float)(nBurnSoundLen * (ZetTotalCycles() / (1789772.0000 / (nBurnFPS / 100.0000))));
-}
-
-static INT32 DrvDoReset(INT32 clear_ram)
-{
- if (clear_ram) {
- memset (AllRam, 0, RamEnd - AllRam);
- }
-
- M6809Open(0);
- M6809Reset();
- M6809Close();
-
- M6809Open(1);
- M6809Reset();
- M6809Close();
-
- ZetOpen(0);
- ZetReset();
- AY8910Reset(0);
- ZetClose();
-
- I8039Reset();
-
- DACReset();
-
- scrolly = 0;
- flipscreen = 0;
-
- irq_enable[0] = 0;
- irq_enable[1] = 0;
- firq_trigger[0] = 0;
- firq_trigger[1] = 0;
-
- soundlatch = 0;
- soundlatch2 = 0;
- i8039_status = 0;
-
- watchdog = 0;
-
- HiscoreReset();
-
- return 0;
-}
-
-static INT32 MemIndex()
-{
- UINT8 *Next; Next = AllMem;
-
- DrvMainROM = Next; Next += 0x008000;
- DrvSubROM = Next; Next += 0x002000;
- DrvZ80ROM = Next; Next += 0x002000;
- DrvI8039ROM = Next; Next += 0x002000;
-
- DrvGfxROM0 = Next; Next += 0x00c000;
- DrvGfxROM1 = Next; Next += 0x008000;
-
- DrvColPROM = Next; Next += 0x000220;
-
- DrvPalette = (UINT32*)Next; Next += 0x0200 * sizeof(UINT32);
-
- AllRam = Next;
-
- DrvShareRAM = Next; Next += 0x000800;
- DrvSprRAM = Next; Next += 0x001000;
- DrvColRAM = Next; Next += 0x000400;
- DrvVidRAM = Next; Next += 0x000400;
- DrvZ80RAM = Next; Next += 0x000400;
-
- RamEnd = Next;
-
- pAY8910Buffer[0] = (INT16*)Next; Next += nBurnSoundLen * sizeof(INT16);
- pAY8910Buffer[1] = (INT16*)Next; Next += nBurnSoundLen * sizeof(INT16);
- pAY8910Buffer[2] = (INT16*)Next; Next += nBurnSoundLen * sizeof(INT16);
- pAY8910Buffer[3] = (INT16*)Next; Next += nBurnSoundLen * sizeof(INT16);
- pAY8910Buffer[4] = (INT16*)Next; Next += nBurnSoundLen * sizeof(INT16);
- pAY8910Buffer[5] = (INT16*)Next; Next += nBurnSoundLen * sizeof(INT16);
-
- MemEnd = Next;
-
- return 0;
-}
-
-static void DrvPaletteInit()
-{
- UINT32 pens[32];
-
- for (INT32 i = 0; i < 0x20; i++)
- {
- INT32 bit0 = (DrvColPROM[i] >> 0) & 0x01;
- INT32 bit1 = (DrvColPROM[i] >> 1) & 0x01;
- INT32 bit2 = (DrvColPROM[i] >> 2) & 0x01;
- INT32 r = bit2 * 151 + bit1 * 71 + bit0 * 33;
-
- bit0 = (DrvColPROM[i] >> 3) & 0x01;
- bit1 = (DrvColPROM[i] >> 4) & 0x01;
- bit2 = (DrvColPROM[i] >> 5) & 0x01;
- INT32 g = bit2 * 151 + bit1 * 71 + bit0 * 33;
-
- bit0 = (DrvColPROM[i] >> 6) & 0x01;
- bit1 = (DrvColPROM[i] >> 7) & 0x01;
- INT32 b = bit1 * 174 + bit0 * 81;
-
- pens[i] = BurnHighCol(r,g,b,0);
- }
-
- for (INT32 i = 0; i < 0x200; i++) {
- DrvPalette[i] = pens[(DrvColPROM[i+0x020] & 0x0f) | ((i&0x100)>>4)];
- }
-}
-
-static void DrvGfxExpand(UINT8 *rom, UINT32 len)
-{
- for (INT32 i = len-1; i >= 0; i--) {
- rom[i*2+0] = rom[i] >> 4;
- rom[i*2+1] = rom[i] & 0xf;
- }
-}
-
-static INT32 DrvInit()
-{
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(DrvMainROM + 0x0000, 0, 1)) return 1;
- if (BurnLoadRom(DrvMainROM + 0x2000, 1, 1)) return 1;
- if (BurnLoadRom(DrvMainROM + 0x4000, 2, 1)) return 1;
- if (BurnLoadRom(DrvMainROM + 0x6000, 3, 1)) return 1;
-
- if (BurnLoadRom(DrvSubROM + 0x0000, 4, 1)) return 1;
-
- if (BurnLoadRom(DrvZ80ROM + 0x0000, 5, 1)) return 1;
-
- if (BurnLoadRom(DrvI8039ROM + 0x0000, 6, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x0000, 7, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x2000, 8, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x4000, 9, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM1 + 0x0000, 10, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x2000, 11, 1)) return 1;
-
- if (BurnLoadRom(DrvColPROM + 0x0000, 12, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x0020, 13, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x0120, 14, 1)) return 1;
-
- DrvGfxExpand(DrvGfxROM0, 0x6000);
- DrvGfxExpand(DrvGfxROM1, 0x4000);
- DrvPaletteInit();
- }
-
- M6809Init(2);
- M6809Open(0);
- M6809MapMemory(DrvSprRAM, 0x0000, 0x0fff, MAP_RAM);
- M6809MapMemory(DrvColRAM, 0x1000, 0x13ff, MAP_RAM);
- M6809MapMemory(DrvVidRAM, 0x1400, 0x17ff, MAP_RAM);
-// M6809MapMemory(DrvMainROM + 0x8000, 0x4000, 0x5fff, MAP_ROM);
- M6809MapMemory(DrvShareRAM, 0x6000, 0x67ff, MAP_RAM);
- M6809MapMemory(DrvMainROM, 0x8000, 0xffff, MAP_ROM);
- M6809SetWriteHandler(pandoras_main_write);
-// M6809SetReadHandler(pandoras_main_read);
- M6809Close();
-
- M6809Open(1);
- M6809MapMemory(DrvSprRAM, 0x0000, 0x0fff, MAP_RAM);
- M6809MapMemory(DrvColRAM, 0x1000, 0x13ff, MAP_RAM);
- M6809MapMemory(DrvVidRAM, 0x1400, 0x17ff, MAP_RAM);
- M6809MapMemory(DrvShareRAM, 0xc000, 0xc7ff, MAP_RAM);
- M6809MapMemory(DrvSubROM, 0xe000, 0xffff, MAP_ROM);
- M6809SetWriteHandler(pandoras_sub_write);
- M6809SetReadHandler(pandoras_sub_read);
- M6809Close();
-
- ZetInit(0);
- ZetOpen(0);
- ZetMapMemory(DrvZ80ROM, 0x0000, 0x1fff, MAP_ROM);
- ZetMapMemory(DrvZ80RAM, 0x2000, 0x23ff, MAP_RAM);
- ZetSetWriteHandler(pandoras_sound_write);
- ZetSetReadHandler(pandoras_sound_read);
- ZetClose();
-
- I8039Init(NULL);
- I8039SetProgramReadHandler(pandoras_i8039_read);
- I8039SetCPUOpReadHandler(pandoras_i8039_read);
- I8039SetCPUOpReadArgHandler(pandoras_i8039_read);
- I8039SetIOReadHandler(pandoras_i8039_read_port);
- I8039SetIOWriteHandler(pandoras_i8039_write_port);
-
- AY8910Init(0, 1789772, nBurnSoundRate, &AY8910_0_port_A_Read, &AY8910_0_port_B_Read, NULL, NULL);
- AY8910SetAllRoutes(0, 0.40, BURN_SND_ROUTE_BOTH);
-
- DACInit(0, 0, 1, DrvSyncDAC);
- DACSetRoute(0, 0.25, BURN_SND_ROUTE_BOTH);
-
- GenericTilesInit();
-
- DrvDoReset(1);
-
- return 0;
-}
-
-static INT32 DrvExit()
-{
- GenericTilesExit();
-
- M6809Exit();
- ZetExit();
- I8039Exit();
-
- AY8910Exit(0);
- DACExit();
-
- BurnFree (AllMem);
-
- return 0;
-}
-
-static void draw_layer(INT32 priority)
-{
- for (INT32 offs = 0; offs < 32 * 32; offs++)
- {
- INT32 attr = DrvColRAM[offs];
- INT32 prio = (attr >> 5) & 1;
- if (prio != priority) continue;
-
- INT32 code = DrvVidRAM[offs] + ((attr & 0x10) << 4);
- INT32 color = attr & 0x0f;
- INT32 flipy = attr & 0x80;
- INT32 flipx = attr & 0x40;
-
- INT32 sx = (offs & 0x1f) * 8;
- INT32 sy = ((offs / 32) * 8) - scrolly;
-
- if (sy < -7) sy += 256;
-
- if (flipscreen)
- {
- sy = 248 - sy;
- sx = 248 - sx;
- flipx = !flipx;
- flipy = !flipy;
- }
-
- if (flipy) {
- if (flipx) {
- Render8x8Tile_FlipXY_Clip(pTransDraw, code, sx, sy - 16, color, 4, 0x100, DrvGfxROM1);
- } else {
- Render8x8Tile_FlipY_Clip(pTransDraw, code, sx, sy - 16, color, 4, 0x100, DrvGfxROM1);
- }
- } else {
- if (flipx) {
- Render8x8Tile_FlipX_Clip(pTransDraw, code, sx, sy - 16, color, 4, 0x100, DrvGfxROM1);
- } else {
- Render8x8Tile_Clip(pTransDraw, code, sx, sy - 16, color, 4, 0x100, DrvGfxROM1);
- }
- }
- }
-}
-
-static void draw_sprites()
-{
- for (INT32 offs = 0; offs < 0x100; offs += 4)
- {
- INT32 sx = DrvSprRAM[0x800 + offs + 1];
- INT32 sy = 240 - DrvSprRAM[0x800 + offs];
- INT32 color = DrvSprRAM[0x800 + offs + 3] & 0x0f;
- INT32 flipx = DrvSprRAM[0x800 + offs + 3] & 0x40;
- INT32 flipy = DrvSprRAM[0x800 + offs + 3] & 0x80;
- INT32 code = DrvSprRAM[0x800 + offs + 2];
-
- RenderTileTranstab(pTransDraw, DrvGfxROM0, code, color * 16, 0, sx, sy - 16, flipx, flipy, 16, 16, DrvColPROM + 0x020);
- }
-}
-
-static INT32 DrvDraw()
-{
- if (DrvRecalc) {
- DrvPaletteInit();
- DrvRecalc = 0;
- }
-
- draw_layer(1);
- draw_sprites();
- draw_layer(0);
-
- BurnTransferCopy(DrvPalette);
-
- return 0;
-}
-
-static INT32 DrvFrame()
-{
- watchdog++;
- if (watchdog >= 180) {
- DrvDoReset(0);
- // bprintf (0, _T("Watchdog triggered!\n"));
- }
-
- if (DrvReset) {
- DrvDoReset(1);
- }
-
- M6809NewFrame();
- ZetNewFrame();
- I8039NewFrame();
-
- {
- memset (DrvInputs, 0xff, 3);
- for (INT32 i = 0; i < 8; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- DrvInputs[2] ^= (DrvJoy3[i] & 1) << i;
- }
- }
-
- INT32 nSoundBufferPos = 0;
- INT32 nInterleave = 100;
- INT32 nCyclesTotal[4] = { 3072000 / 60, 3072000 / 60, 1789772 / 60, 477272 / 60 };
- INT32 nCyclesDone[4] = { 0, 0, 0, 0 };
-
- ZetOpen(0);
-
- for (INT32 i = 0; i < nInterleave; i++)
- {
- M6809Open(0);
- INT32 nSegment = (nCyclesTotal[0] * (i + 1)) / nInterleave;
- nCyclesDone[0] += M6809Run(nSegment - nCyclesDone[0]);
- if (i == (nInterleave - 1) && irq_enable[0]) M6809SetIRQLine(0, CPU_IRQSTATUS_ACK);
- nSegment = M6809TotalCycles();
- M6809Close();
-
- M6809Open(1);
- nCyclesDone[1] += M6809Run(nSegment - M6809TotalCycles());
- if (i == (nInterleave - 1) && irq_enable[1]) M6809SetIRQLine(0, CPU_IRQSTATUS_ACK);
- M6809Close();
-
- nSegment = (nCyclesTotal[2] * (i + 1)) / nInterleave;
- nCyclesDone[2] += ZetRun(nSegment - nCyclesDone[2]);
-
- nSegment = (nCyclesTotal[3] * (i + 1)) / nInterleave;
- nCyclesDone[3] += I8039Run(nSegment - nCyclesDone[3]);
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen / nInterleave;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- AY8910Render(&pAY8910Buffer[0], pSoundBuf, nSegmentLength, 0);
- nSoundBufferPos += nSegmentLength;
- }
- }
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- if (nSegmentLength) {
- AY8910Render(&pAY8910Buffer[0], pSoundBuf, nSegmentLength, 0);
- }
-
- DACUpdate(pBurnSoundOut, nBurnSoundLen);
- }
-
- ZetClose();
-
- if (pBurnDraw) {
- DrvDraw();
- }
-
- return 0;
-}
-
-static INT32 DrvScan(INT32 nAction,INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin) {
- *pnMin = 0x029704;
- }
-
- if (nAction & ACB_VOLATILE) {
- memset(&ba, 0, sizeof(ba));
- ba.Data = AllRam;
- ba.nLen = RamEnd - AllRam;
- ba.szName = "All RAM";
- BurnAcb(&ba);
- }
-
- if (nAction & ACB_DRIVER_DATA) {
- M6809Scan(nAction);
- ZetScan(nAction);
- I8039Scan(nAction,pnMin);
-
- AY8910Scan(nAction, pnMin);
- DACScan(nAction, pnMin);
-
- SCAN_VAR(soundlatch);
- SCAN_VAR(soundlatch2);
- SCAN_VAR(flipscreen);
- SCAN_VAR(scrolly);
-
- SCAN_VAR(irq_enable[0]);
- SCAN_VAR(irq_enable[1]);
- SCAN_VAR(firq_trigger[0]);
- SCAN_VAR(firq_trigger[1]);
- }
-
- return 0;
-}
-
-
-// Pandora's Palace
-
-static struct BurnRomInfo pandorasRomDesc[] = {
- { "pand_j13.cpu", 0x2000, 0x7a0fe9c5, 1 | BRF_PRG | BRF_ESS }, // 0 M6809 #0 Code
- { "pand_j12.cpu", 0x2000, 0x7dc4bfe1, 1 | BRF_PRG | BRF_ESS }, // 1
- { "pand_j10.cpu", 0x2000, 0xbe3af3b7, 1 | BRF_PRG | BRF_ESS }, // 2
- { "pand_j9.cpu", 0x2000, 0xe674a17a, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "pand_j5.cpu", 0x2000, 0x4aab190b, 2 | BRF_PRG | BRF_ESS }, // 4 M6809 #1 Code
-
- { "pand_6c.snd", 0x2000, 0x0c1f109d, 3 | BRF_PRG | BRF_ESS }, // 5 Z80 Code
-
- { "pand_7e.snd", 0x2000, 0x1071c1ba, 4 | BRF_GRA }, // 6 i8039 Code
-
- { "pand_j18.cpu", 0x2000, 0x99a696c5, 5 | BRF_GRA }, // 7 Sprites
- { "pand_j17.cpu", 0x2000, 0x38a03c21, 5 | BRF_GRA }, // 8
- { "pand_j16.cpu", 0x2000, 0xe0708a78, 5 | BRF_GRA }, // 9
-
- { "pand_a18.cpu", 0x2000, 0x23706d4a, 6 | BRF_GRA }, // 10 Characters
- { "pand_a19.cpu", 0x2000, 0xa463b3f9, 6 | BRF_GRA }, // 11
-
- { "pandora.2a", 0x0020, 0x4d56f939, 7 | BRF_GRA }, // 12 Color PROMs
- { "pandora.17g", 0x0100, 0xc1a90cfc, 7 | BRF_GRA }, // 13
- { "pandora.16b", 0x0100, 0xc89af0c3, 7 | BRF_GRA }, // 14
-};
-
-STD_ROM_PICK(pandoras)
-STD_ROM_FN(pandoras)
-
-struct BurnDriver BurnDrvPandoras = {
- "pandoras", NULL, NULL, NULL, "1984",
- "Pandora's Palace\0", NULL, "Konami / Interlogic", "GX328",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_KONAMI, GBF_PLATFORM, 0,
- NULL, pandorasRomInfo, pandorasRomName, NULL, NULL, PandorasInputInfo, PandorasDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x200,
- 224, 256, 3, 4
-};
diff --git a/jan/src/burn/drv/konami/d_parodius.cpp b/jan/src/burn/drv/konami/d_parodius.cpp
deleted file mode 100644
index c27207625..000000000
--- a/jan/src/burn/drv/konami/d_parodius.cpp
+++ /dev/null
@@ -1,741 +0,0 @@
-// FB Alpha Parodius Da! driver module
-// Based on MAME driver by Nicola Salmoria
-
-#include "tiles_generic.h"
-#include "z80_intf.h"
-#include "burn_ym2151.h"
-#include "konami_intf.h"
-#include "konamiic.h"
-#include "k053260.h"
-
-static UINT8 *AllMem;
-static UINT8 *MemEnd;
-static UINT8 *AllRam;
-static UINT8 *RamEnd;
-static UINT8 *DrvKonROM;
-static UINT8 *DrvZ80ROM;
-static UINT8 *DrvGfxROM0;
-static UINT8 *DrvGfxROM1;
-static UINT8 *DrvGfxROMExp0;
-static UINT8 *DrvGfxROMExp1;
-static UINT8 *DrvSndROM;
-static UINT8 *DrvBankRAM;
-static UINT8 *DrvKonRAM;
-static UINT8 *DrvPalRAM;
-static UINT8 *DrvZ80RAM;
-
-static UINT32 *DrvPalette;
-static UINT8 DrvRecalc;
-
-static UINT8 *nDrvRomBank;
-
-static INT32 layer_colorbase[3];
-static INT32 sprite_colorbase;
-static INT32 layerpri[3];
-
-static UINT8 DrvJoy1[8];
-static UINT8 DrvJoy2[8];
-static UINT8 DrvJoy3[8];
-static UINT8 DrvDips[3];
-static UINT8 DrvReset;
-static UINT8 DrvInputs[3];
-
-static INT32 nCyclesDone[2];
-
-static struct BurnInputInfo ParodiusInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy3 + 2, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 0, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy1 + 1, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy1 + 2, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy1 + 3, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy1 + 4, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy1 + 5, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy1 + 6, "p1 fire 2" },
- {"P1 Button 3", BIT_DIGITAL, DrvJoy1 + 7, "p1 fire 3" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy3 + 3, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy2 + 0, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvJoy2 + 1, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy2 + 2, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy2 + 3, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy2 + 4, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy2 + 5, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy2 + 6, "p2 fire 2" },
- {"P2 Button 3", BIT_DIGITAL, DrvJoy2 + 7, "p2 fire 3" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Diagnostics", BIT_DIGITAL, DrvJoy3 + 1, "diag" },
- {"Service", BIT_DIGITAL, DrvJoy3 + 0, "service" },
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip" },
- {"Dip C", BIT_DIPSWITCH, DrvDips + 2, "dip" },
-};
-
-STDINPUTINFO(Parodius)
-
-static struct BurnDIPInfo ParodiusDIPList[]=
-{
- {0x15, 0xff, 0xff, 0xff, NULL },
- {0x16, 0xff, 0xff, 0x5a, NULL },
- {0x17, 0xff, 0xff, 0xf0, NULL },
-
- {0 , 0xfe, 0 , 16, "Coin A" },
- {0x15, 0x01, 0x0f, 0x02, "4 Coins 1 Credit" },
- {0x15, 0x01, 0x0f, 0x05, "3 Coins 1 Credit" },
- {0x15, 0x01, 0x0f, 0x08, "2 Coins 1 Credit" },
- {0x15, 0x01, 0x0f, 0x04, "3 Coins 2 Credits" },
- {0x15, 0x01, 0x0f, 0x01, "4 Coins 3 Credits" },
- {0x15, 0x01, 0x0f, 0x0f, "1 Coin 1 Credit" },
- {0x15, 0x01, 0x0f, 0x03, "3 Coins 4 Credits" },
- {0x15, 0x01, 0x0f, 0x07, "2 Coins 3 Credits" },
- {0x15, 0x01, 0x0f, 0x0e, "1 Coin 2 Credits" },
- {0x15, 0x01, 0x0f, 0x06, "2 Coins 5 Credits" },
- {0x15, 0x01, 0x0f, 0x0d, "1 Coin 3 Credits" },
- {0x15, 0x01, 0x0f, 0x0c, "1 Coin 4 Credits" },
- {0x15, 0x01, 0x0f, 0x0b, "1 Coin 5 Credits" },
- {0x15, 0x01, 0x0f, 0x0a, "1 Coin 6 Credits" },
- {0x15, 0x01, 0x0f, 0x09, "1 Coin 7 Credits" },
- {0x15, 0x01, 0x0f, 0x00, "Free Play" },
-
- {0 , 0xfe, 0 , 15, "Coin B" },
- {0x15, 0x01, 0xf0, 0x20, "4 Coins 1 Credit" },
- {0x15, 0x01, 0xf0, 0x50, "3 Coins 1 Credit" },
- {0x15, 0x01, 0xf0, 0x80, "2 Coins 1 Credit" },
- {0x15, 0x01, 0xf0, 0x40, "3 Coins 2 Credits" },
- {0x15, 0x01, 0xf0, 0x10, "4 Coins 3 Credits" },
- {0x15, 0x01, 0xf0, 0xf0, "1 Coin 1 Credit" },
- {0x15, 0x01, 0xf0, 0x30, "3 Coins 4 Credits" },
- {0x15, 0x01, 0xf0, 0x70, "2 Coins 3 Credits" },
- {0x15, 0x01, 0xf0, 0xe0, "1 Coin 2 Credits" },
- {0x15, 0x01, 0xf0, 0x60, "2 Coins 5 Credits" },
- {0x15, 0x01, 0xf0, 0xd0, "1 Coin 3 Credits" },
- {0x15, 0x01, 0xf0, 0xc0, "1 Coin 4 Credits" },
- {0x15, 0x01, 0xf0, 0xb0, "1 Coin 5 Credits" },
- {0x15, 0x01, 0xf0, 0xa0, "1 Coin 6 Credits" },
- {0x15, 0x01, 0xf0, 0x90, "1 Coin 7 Credits" },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x16, 0x01, 0x03, 0x03, "2" },
- {0x16, 0x01, 0x03, 0x02, "3" },
- {0x16, 0x01, 0x03, 0x01, "4" },
- {0x16, 0x01, 0x03, 0x00, "7" },
-
-// {0 , 0xfe, 0 , 2, "Cabinet" },
-// {0x16, 0x01, 0x04, 0x00, "Upright" },
-// {0x16, 0x01, 0x04, 0x04, "Cocktail" },
-
- {0 , 0xfe, 0 , 4, "Bonus Life" },
- {0x16, 0x01, 0x18, 0x18, "20000 80000" },
- {0x16, 0x01, 0x18, 0x10, "30000 100000" },
- {0x16, 0x01, 0x18, 0x08, "20000" },
- {0x16, 0x01, 0x18, 0x00, "70000" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x16, 0x01, 0x60, 0x60, "Easy" },
- {0x16, 0x01, 0x60, 0x40, "Normal" },
- {0x16, 0x01, 0x60, 0x20, "Difficult" },
- {0x16, 0x01, 0x60, 0x00, "Very Difficult" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x16, 0x01, 0x80, 0x80, "Off" },
- {0x16, 0x01, 0x80, 0x00, "On" },
-
-// {0 , 0xfe, 0 , 2, "Flip Screen" },
-// {0x17, 0x01, 0x10, 0x10, "Off" },
-// {0x17, 0x01, 0x10, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Upright Controls" },
- {0x17, 0x01, 0x20, 0x20, "Single" },
- {0x17, 0x01, 0x20, 0x00, "Dual" },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x17, 0x01, 0x40, 0x40, "Off" },
- {0x17, 0x01, 0x40, 0x00, "On" },
-};
-
-STDDIPINFO(Parodius)
-
-void parodius_main_write(UINT16 address, UINT8 data)
-{
- switch (address)
- {
- case 0x3fc0:
- K052109RMRDLine = data & 0x08;
- return;
-
- case 0x3fc4:
- nDrvRomBank[1] = data;
- return;
-
- case 0x3fc8:
- ZetSetVector(0xff);
- ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
- return;
-
- case 0x3fcc:
- case 0x3fcd:
- K053260Write(0, address & 1, data);
- return;
- }
-
- if ((address & 0xf800) == 0x0000) {
- if (nDrvRomBank[1] & 1) {
- DrvPalRAM[((nDrvRomBank[1] & 0x04) << 9) + address] = data;
- } else {
- DrvBankRAM[address] = data;
- }
- return;
- }
-
- if ((address & 0xfff0) == 0x3fa0) {
- K053244Write(0, address & 0x0f, data);
- return;
- }
-
- if ((address & 0xfff0) == 0x3fb0) {
- K053251Write(address & 0x0f, data);
- return;
- }
-
- if ((address & 0xf800) == 0x2000) {
- if (nDrvRomBank[1] & 0x02) {
- K053245Write(0, address & 0x7ff, data);
- return;
- }
- }
-
- if (address >= 0x2000 && address <= 0x5fff) {
- K052109Write(address - 0x2000, data);
- }
-}
-
-UINT8 parodius_main_read(UINT16 address)
-{
- switch (address)
- {
- case 0x3f8c:
- return DrvInputs[0];
-
- case 0x3f8d:
- return DrvInputs[1];
-
- case 0x3f8e:
- return (DrvDips[2] & 0xf0) | (DrvInputs[2] & 0x0f);
-
- case 0x3f8f:
- return DrvDips[0];
-
- case 0x3f90:
- return DrvDips[1];
-
- case 0x3fc0: // watchdog
- return 0;
-
- case 0x3fcc:
- case 0x3fcd:
- return K053260Read(0, (address & 1)+2);
- }
-
- if ((address & 0xf800) == 0x0000) {
- if (nDrvRomBank[1] & 1) {
- return DrvPalRAM[((nDrvRomBank[1] & 0x04) << 9) + address];
- } else {
- return DrvBankRAM[address];
- }
- }
-
- if ((address & 0xfff0) == 0x3fa0) {
- return K053244Read(0, address & 0x0f);
- }
-
- if ((address & 0xf800) == 0x2000) {
- if (nDrvRomBank[1] & 0x02) {
- return K053245Read(0, address & 0x7ff);
- }
- }
-
- if (address >= 0x2000 && address <= 0x5fff) {
- return K052109Read(address - 0x2000);
- }
-
- return 0;
-}
-
-void __fastcall parodius_sound_write(UINT16 address, UINT8 data)
-{
- switch (address)
- {
- case 0xf800:
- BurnYM2151SelectRegister(data);
- return;
-
- case 0xf801:
- BurnYM2151WriteRegister(data);
- return;
-
- case 0xfa00:
- nCyclesDone[1] += ZetRun(100);
- ZetNmi();
- return;
- }
-
- if (address >= 0xfc00 && address <= 0xfc2f) {
- K053260Write(0, address & 0x3f, data);
- }
-}
-
-UINT8 __fastcall parodius_sound_read(UINT16 address)
-{
- switch (address)
- {
- case 0xf800:
- return 0xff;
- case 0xf801:
- return BurnYM2151ReadStatus();
- }
-
- if (address >= 0xfc00 && address <= 0xfc2f) {
- if ((address & 0x3e) == 0x00) ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
-
- return K053260Read(0, address & 0x3f);
- }
-
- return 0;
-}
-
-static void K052109Callback(INT32 layer, INT32 bank, INT32 *code, INT32 *color, INT32 *flags, INT32 *)
-{
- *flags = (*color & 0x80) >> 7;
- *code |= ((*color & 0x03) << 8) | ((*color & 0x10) << 6) | ((*color & 0x0c) << 9) | (bank << 13);
- *color = layer_colorbase[layer] + ((*color & 0xe0) >> 5);
-}
-
-static void K053245Callback(INT32 *code, INT32 *color, INT32 *priority)
-{
- INT32 pri = 0x20 | ((*color & 0x60) >> 2);
- if (pri <= layerpri[2]) *priority = 0x00;
- else if (pri > layerpri[2] && pri <= layerpri[1]) *priority = 0xf0;
- else if (pri > layerpri[1] && pri <= layerpri[0]) *priority = 0xfc;
- else *priority = 0xfe;
-
- *code &= 0x1fff;
- *color = sprite_colorbase + (*color & 0x1f);
-}
-
-static void parodius_set_lines(INT32 lines)
-{
- nDrvRomBank[0] = lines;
-
- konamiMapMemory(DrvKonROM + 0x10000 + ((~lines & 0x0f) * 0x4000), 0x6000, 0x9fff, MAP_ROM);
-}
-
-static INT32 DrvDoReset()
-{
- DrvReset = 0;
-
- memset (AllRam, 0, RamEnd - AllRam);
-
- konamiOpen(0);
- konamiReset();
- konamiClose();
-
- ZetOpen(0);
- ZetReset();
- ZetClose();
-
- BurnYM2151Reset();
-
- KonamiICReset();
-
- K053260Reset(0);
-
- return 0;
-}
-
-static INT32 MemIndex()
-{
- UINT8 *Next; Next = AllMem;
-
- DrvKonROM = Next; Next += 0x050000;
- DrvZ80ROM = Next; Next += 0x010000;
-
- DrvGfxROM0 = Next; Next += 0x100000;
- DrvGfxROMExp0 = Next; Next += 0x200000;
- DrvGfxROM1 = Next; Next += 0x100000;
- DrvGfxROMExp1 = Next; Next += 0x200000;
-
- DrvSndROM = Next; Next += 0x080000;
-
- DrvPalette = (UINT32*)Next; Next += 0x800 * sizeof(UINT32);
-
- AllRam = Next;
-
- DrvBankRAM = Next; Next += 0x000800;
- DrvKonRAM = Next; Next += 0x001800;
- DrvPalRAM = Next; Next += 0x001000;
-
- DrvZ80RAM = Next; Next += 0x000800;
-
- nDrvRomBank = Next; Next += 0x000002;
-
- RamEnd = Next;
- MemEnd = Next;
-
- return 0;
-}
-
-static INT32 DrvInit()
-{
- GenericTilesInit();
-
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(DrvKonROM + 0x010000, 0, 1)) return 1;
- if (BurnLoadRom(DrvKonROM + 0x030000, 1, 1)) return 1;
- memcpy (DrvKonROM + 0x08000, DrvKonROM + 0x48000, 0x8000);
-
- if (BurnLoadRom(DrvZ80ROM + 0x000000, 2, 1)) return 1;
-
- if (BurnLoadRomExt(DrvGfxROM0 + 0x000000, 3, 4, 2)) return 1;
- if (BurnLoadRomExt(DrvGfxROM0 + 0x000002, 4, 4, 2)) return 1;
-
- if (BurnLoadRomExt(DrvGfxROM1 + 0x000000, 5, 4, 2)) return 1;
- if (BurnLoadRomExt(DrvGfxROM1 + 0x000002, 6, 4, 2)) return 1;
-
- if (BurnLoadRom(DrvSndROM + 0x000000, 7, 1)) return 1;
-
- K052109GfxDecode(DrvGfxROM0, DrvGfxROMExp0, 0x100000);
- K053245GfxDecode(DrvGfxROM1, DrvGfxROMExp1, 0x100000);
- }
-
- konamiInit(0);
- konamiOpen(0);
- konamiMapMemory(DrvKonRAM, 0x0800, 0x1fff, MAP_RAM);
- konamiMapMemory(DrvKonROM + 0x10000, 0x6000, 0x9fff, MAP_ROM);
- konamiMapMemory(DrvKonROM + 0x0a000, 0xa000, 0xffff, MAP_ROM);
- konamiSetWriteHandler(parodius_main_write);
- konamiSetReadHandler(parodius_main_read);
- konamiSetlinesCallback(parodius_set_lines);
- konamiClose();
-
- ZetInit(0);
- ZetOpen(0);
- ZetMapArea(0x0000, 0xefff, 0, DrvZ80ROM);
- ZetMapArea(0x0000, 0xefff, 2, DrvZ80ROM);
- ZetMapArea(0xf000, 0xf7ff, 0, DrvZ80RAM);
- ZetMapArea(0xf000, 0xf7ff, 1, DrvZ80RAM);
- ZetMapArea(0xf000, 0xf7ff, 2, DrvZ80RAM);
- ZetSetWriteHandler(parodius_sound_write);
- ZetSetReadHandler(parodius_sound_read);
- ZetClose();
-
- K052109Init(DrvGfxROM0, DrvGfxROMExp0, 0xfffff);
- K052109SetCallback(K052109Callback);
- K052109AdjustScroll(8, 0);
-
- K053245Init(0, DrvGfxROM1, DrvGfxROMExp1, 0xfffff, K053245Callback);
- K053245SetSpriteOffset(0, -112, -16);
-
- BurnYM2151Init(3579545);
- BurnYM2151SetRoute(BURN_SND_YM2151_YM2151_ROUTE_1, 1.00, BURN_SND_ROUTE_LEFT);
- BurnYM2151SetRoute(BURN_SND_YM2151_YM2151_ROUTE_2, 1.00, BURN_SND_ROUTE_RIGHT);
-
- K053260Init(0, 3579545, DrvSndROM, 0x80000);
- K053260SetRoute(0, BURN_SND_K053260_ROUTE_1, 0.70, BURN_SND_ROUTE_LEFT);
- K053260SetRoute(0, BURN_SND_K053260_ROUTE_2, 0.70, BURN_SND_ROUTE_RIGHT);
-
- DrvDoReset();
-
- return 0;
-}
-
-static INT32 DrvExit()
-{
- GenericTilesExit();
-
- KonamiICExit();
-
- konamiExit();
- ZetExit();
-
- BurnYM2151Exit();
- K053260Exit();
-
- BurnFree (AllMem);
-
- return 0;
-}
-
-static INT32 DrvDraw()
-{
- KonamiRecalcPalette(DrvPalRAM, DrvPalette, 0x1000);
-
- K052109UpdateScroll();
-
- INT32 bg_colorbase, layer[3];
-
- bg_colorbase = K053251GetPaletteIndex(0);
- sprite_colorbase = K053251GetPaletteIndex(1);
- layer_colorbase[0] = K053251GetPaletteIndex(2);
- layer_colorbase[1] = K053251GetPaletteIndex(4);
- layer_colorbase[2] = K053251GetPaletteIndex(3);
-
- layerpri[0] = K053251GetPriority(2);
- layerpri[1] = K053251GetPriority(4);
- layerpri[2] = K053251GetPriority(3);
- layer[0] = 0;
- layer[1] = 1;
- layer[2] = 2;
-
- konami_sortlayers3(layer,layerpri);
-
- KonamiClearBitmaps(DrvPalette[16 * bg_colorbase]);
-
- if (nBurnLayer & 1) K052109RenderLayer(layer[0], 0, 1);
- if (nBurnLayer & 2) K052109RenderLayer(layer[1], 0, 2);
- if (nBurnLayer & 4) K052109RenderLayer(layer[2], 0, 4);
-
- if (nSpriteEnable & 1) K053245SpritesRender(0);
-
- KonamiBlendCopy(DrvPalette);
-
- return 0;
-}
-
-static INT32 DrvFrame()
-{
- if (DrvReset) {
- DrvDoReset();
- }
-
- ZetNewFrame();
- konamiNewFrame();
-
- {
- memset (DrvInputs, 0xff, 3);
- for (INT32 i = 0; i < 8; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- DrvInputs[2] ^= (DrvJoy3[i] & 1) << i;
- }
-
- // Clear opposites
- if ((DrvInputs[0] & 0x06) == 0) DrvInputs[0] |= 0x06;
- if ((DrvInputs[0] & 0x18) == 0) DrvInputs[0] |= 0x18;
- if ((DrvInputs[1] & 0x06) == 0) DrvInputs[1] |= 0x06;
- if ((DrvInputs[1] & 0x18) == 0) DrvInputs[1] |= 0x18;
- }
-
- INT32 nInterleave = nBurnSoundLen;
- INT32 nSoundBufferPos = 0;
- INT32 nCyclesTotal[2] = { 3000000 / 60, 3579545 / 60 };
- nCyclesDone[0] = nCyclesDone[1] = 0;
-
- ZetOpen(0);
- konamiOpen(0);
-
- for (INT32 i = 0; i < nInterleave; i++) {
- INT32 nNext, nCyclesSegment;
-
- nNext = (i + 1) * nCyclesTotal[0] / nInterleave;
- nCyclesSegment = nNext - nCyclesDone[0];
- nCyclesSegment = konamiRun(nCyclesSegment);
- nCyclesDone[0] += nCyclesSegment;
-
- nNext = (i + 1) * nCyclesTotal[1] / nInterleave;
- nCyclesSegment = nNext - nCyclesDone[1];
- nCyclesSegment = ZetRun(nCyclesSegment);
- nCyclesDone[1] += nCyclesSegment;
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen / nInterleave;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- BurnYM2151Render(pSoundBuf, nSegmentLength);
- K053260Update(0, pSoundBuf, nSegmentLength);
- nSoundBufferPos += nSegmentLength;
- }
- }
-
- if (K052109_irq_enabled) konamiSetIrqLine(KONAMI_IRQ_LINE, CPU_IRQSTATUS_AUTO);
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- if (nSegmentLength) {
- BurnYM2151Render(pSoundBuf, nSegmentLength);
- K053260Update(0, pSoundBuf, nSegmentLength);
- }
- }
-
- konamiClose();
- ZetClose();
-
- if (pBurnDraw) {
- DrvDraw();
- }
-
- return 0;
-}
-
-static INT32 DrvScan(INT32 nAction,INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin) {
- *pnMin = 0x029705;
- }
-
- if (nAction & ACB_VOLATILE) {
- memset(&ba, 0, sizeof(ba));
-
- ba.Data = AllRam;
- ba.nLen = RamEnd - AllRam;
- ba.szName = "All Ram";
- BurnAcb(&ba);
-
- konamiCpuScan(nAction);
- ZetScan(nAction);
-
- BurnYM2151Scan(nAction);
-
- KonamiICScan(nAction);
- }
-
- if (nAction & ACB_WRITE) {
- konamiOpen(0);
- parodius_set_lines(nDrvRomBank[0]);
- konamiClose();
- }
-
- return 0;
-}
-
-
-// Parodius DA! (World, set 1)
-
-static struct BurnRomInfo parodiusRomDesc[] = {
- { "955l01.f5", 0x20000, 0x49a658eb, 1 | BRF_PRG | BRF_ESS }, // 0 Konami Custom Code
- { "955l02.h5", 0x20000, 0x161d7322, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "955e03.d14", 0x10000, 0x940aa356, 2 | BRF_PRG | BRF_ESS }, // 2 Z80 Code
-
- { "955d07.k19", 0x80000, 0x89473fec, 3 | BRF_GRA }, // 3 Background Tiles
- { "955d08.k24", 0x80000, 0x43d5cda1, 3 | BRF_GRA }, // 4
-
- { "955d05.k13", 0x80000, 0x7a1e55e0, 4 | BRF_GRA }, // 5 Sprites
- { "955d06.k8", 0x80000, 0xf4252875, 4 | BRF_GRA }, // 6
-
- { "955d04.c5", 0x80000, 0xe671491a, 5 | BRF_SND }, // 7 K053260 Samples
-};
-
-STD_ROM_PICK(parodius)
-STD_ROM_FN(parodius)
-
-struct BurnDriver BurnDrvParodius = {
- "parodius", NULL, NULL, NULL, "1990",
- "Parodius DA! (World, set 1)\0", NULL, "Konami", "GX955",
- L"Parodius \u30D1\u30ED\u30C7\u30A3\u30A6\u30B9\u3060\uFF01 \uFF0D\u795E\u8A71\u304B\u3089\u304A\u7B11\u3044\u3078\uFF0D (World, set 1)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_PREFIX_KONAMI, GBF_HORSHOOT, 0,
- NULL, parodiusRomInfo, parodiusRomName, NULL, NULL, ParodiusInputInfo, ParodiusDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 288, 224, 4, 3
-};
-
-
-// Parodius DA! (World, set 2)
-
-static struct BurnRomInfo parodiuseRomDesc[] = {
- { "2.f5", 0x20000, 0x26a6410b, 1 | BRF_PRG | BRF_ESS }, // 0 Konami Custom Code
- { "3.h5", 0x20000, 0x9410dbf2, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "955e03.d14", 0x10000, 0x940aa356, 2 | BRF_PRG | BRF_ESS }, // 2 Z80 Code
-
- { "955d07.k19", 0x80000, 0x89473fec, 3 | BRF_GRA }, // 3 Background Tiles
- { "955d08.k24", 0x80000, 0x43d5cda1, 3 | BRF_GRA }, // 4
-
- { "955d05.k13", 0x80000, 0x7a1e55e0, 4 | BRF_GRA }, // 5 Sprites
- { "955d06.k8", 0x80000, 0xf4252875, 4 | BRF_GRA }, // 6
-
- { "955d04.c5", 0x80000, 0xe671491a, 5 | BRF_SND }, // 7 K053260 Samples
-};
-
-STD_ROM_PICK(parodiuse)
-STD_ROM_FN(parodiuse)
-
-struct BurnDriver BurnDrvParodiuse = {
- "parodiuse", "parodius", NULL, NULL, "1990",
- "Parodius DA! (World, set 2)\0", NULL, "Konami", "GX955",
- L"Parodius \u30D1\u30ED\u30C7\u30A3\u30A6\u30B9\u3060\uFF01 \uFF0D\u795E\u8A71\u304B\u3089\u304A\u7B11\u3044\u3078\uFF0D (World, set 2)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_KONAMI, GBF_HORSHOOT, 0,
- NULL, parodiuseRomInfo, parodiuseRomName, NULL, NULL, ParodiusInputInfo, ParodiusDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 288, 224, 4, 3
-};
-
-
-// Parodius DA! (Japan)
-
-static struct BurnRomInfo parodiusjRomDesc[] = {
- { "955e01.f5", 0x20000, 0x49baa334, 1 | BRF_PRG | BRF_ESS }, // 0 Konami Custom Code
- { "955e02.h5", 0x20000, 0x14010d6f, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "955e03.d14", 0x10000, 0x940aa356, 2 | BRF_PRG | BRF_ESS }, // 2 Z80 Code
-
- { "955d07.k19", 0x80000, 0x89473fec, 3 | BRF_GRA }, // 3 Background Tiles
- { "955d08.k24", 0x80000, 0x43d5cda1, 3 | BRF_GRA }, // 4
-
- { "955d05.k13", 0x80000, 0x7a1e55e0, 4 | BRF_GRA }, // 5 Sprites
- { "955d06.k8", 0x80000, 0xf4252875, 4 | BRF_GRA }, // 6
-
- { "955d04.c5", 0x80000, 0xe671491a, 5 | BRF_SND }, // 7 K053260 Samples
-};
-
-STD_ROM_PICK(parodiusj)
-STD_ROM_FN(parodiusj)
-
-struct BurnDriver BurnDrvParodiusj = {
- "parodiusj", "parodius", NULL, NULL, "1990",
- "Parodius DA! (Japan)\0", NULL, "Konami", "GX955",
- L"Parodius \u30D1\u30ED\u30C7\u30A3\u30A6\u30B9\u3060\uFF01 \uFF0D\u795E\u8A71\u304B\u3089\u304A\u7B11\u3044\u3078\uFF0D (Japan)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_KONAMI, GBF_HORSHOOT, 0,
- NULL, parodiusjRomInfo, parodiusjRomName, NULL, NULL, ParodiusInputInfo, ParodiusDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 288, 224, 4, 3
-};
-
-
-// Parodius DA! (Asia)
-
-static struct BurnRomInfo parodiusaRomDesc[] = {
- { "b-18.f5", 0x20000, 0x006356cd, 1 | BRF_PRG | BRF_ESS }, // 0 Konami Custom Code
- { "b-19.h5", 0x20000, 0xe5a16417, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "955e03.d14", 0x10000, 0x940aa356, 2 | BRF_PRG | BRF_ESS }, // 2 Z80 Code
-
- { "955d07.k19", 0x80000, 0x89473fec, 3 | BRF_GRA }, // 3 Background Tiles
- { "955d08.k24", 0x80000, 0x43d5cda1, 3 | BRF_GRA }, // 4
-
- { "955d05.k13", 0x80000, 0x7a1e55e0, 4 | BRF_GRA }, // 5 Sprites
- { "955d06.k8", 0x80000, 0xf4252875, 4 | BRF_GRA }, // 6
-
- { "955d04.c5", 0x80000, 0xe671491a, 5 | BRF_SND }, // 7 K053260 Samples
-};
-
-STD_ROM_PICK(parodiusa)
-STD_ROM_FN(parodiusa)
-
-struct BurnDriver BurnDrvParodiusa = {
- "parodiusa", "parodius", NULL, NULL, "1990",
- "Parodius DA! (Asia)\0", NULL, "Konami", "GX955",
- L"Parodius \u30D1\u30ED\u30C7\u30A3\u30A6\u30B9\u3060\uFF01 \uFF0D\u795E\u8A71\u304B\u3089\u304A\u7B11\u3044\u3078\uFF0D (Asia)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_KONAMI, GBF_HORSHOOT, 0,
- NULL, parodiusaRomInfo, parodiusaRomName, NULL, NULL, ParodiusInputInfo, ParodiusDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 288, 224, 4, 3
-};
diff --git a/jan/src/burn/drv/konami/d_pingpong.cpp b/jan/src/burn/drv/konami/d_pingpong.cpp
deleted file mode 100644
index 2ac7e0623..000000000
--- a/jan/src/burn/drv/konami/d_pingpong.cpp
+++ /dev/null
@@ -1,916 +0,0 @@
-// FB Alpha Ping Pong driver module
-// Based on MAME driver by Jarek Parchanski
-
-#include "tiles_generic.h"
-#include "z80_intf.h"
-#include "bitswap.h"
-#include "sn76496.h"
-
-static UINT8 *AllMem;
-static UINT8 *MemEnd;
-static UINT8 *AllRam;
-static UINT8 *RamEnd;
-static UINT8 *DrvZ80ROM;
-static UINT8 *DrvBankROM;
-static UINT8 *DrvGfxROM0;
-static UINT8 *DrvGfxROM1;
-static UINT8 *DrvColPROM;
-static UINT8 *DrvTransTab;
-static UINT8 *DrvZ80RAM;
-static UINT8 *DrvColRAM;
-static UINT8 *DrvVidRAM;
-static UINT8 *DrvSprRAM;
-static UINT8 *DrvNVRAM;
-
-static UINT32 *DrvPalette;
-static UINT8 DrvRecalc;
-
-static UINT8 nmi_enable;
-static UINT8 irq_enable;
-static UINT8 question_addr_low_data;
-static UINT8 question_addr_high_data;
-static UINT32 question_addr_high;
-
-static UINT8 DrvJoy1[8];
-static UINT8 DrvJoy2[8];
-static UINT8 DrvJoy3[8];
-static UINT8 DrvJoy4[8];
-static UINT8 DrvJoy5[8];
-
-static UINT8 DrvInp[5];
-static UINT8 DrvInputs[5];
-static UINT8 DrvReset;
-
-static INT32 watchdog;
-static INT32 nNMIMask;
-static INT32 cashquiz = 0;
-
-static struct BurnInputInfo PingpongInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy1 + 7, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 4, "p1 start" },
- {"P1 Left", BIT_DIGITAL, DrvJoy2 + 5, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy2 + 6, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy2 + 7, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy2 + 4, "p1 fire 2" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy1 + 6, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy1 + 3, "p2 start" },
- {"P2 Left", BIT_DIGITAL, DrvJoy2 + 1, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy2 + 2, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy2 + 3, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy2 + 0, "p2 fire 2" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service", BIT_DIGITAL, DrvJoy1 + 5, "service" },
- {"Dip A", BIT_DIPSWITCH, DrvInputs + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvInputs + 1, "dip" },
- {"Dip C", BIT_DIPSWITCH, DrvInputs + 2, "dip" },
- {"Dip D", BIT_DIPSWITCH, DrvInputs + 3, "dip" },
-};
-
-STDINPUTINFO(Pingpong)
-
-static struct BurnInputInfo MerlinmmInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy5 + 4, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy2 + 4, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy2 + 5, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy2 + 3, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy2 + 7, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy2 + 6, "p1 right" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Dip A", BIT_DIPSWITCH, DrvInputs + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvInputs + 1, "dip" },
- {"Dip C", BIT_DIPSWITCH, DrvInputs + 2, "dip" },
- {"Dip D", BIT_DIPSWITCH, DrvInputs + 3, "dip" },
- {"Dip E", BIT_DIPSWITCH, DrvInputs + 4, "dip" },
-};
-
-STDINPUTINFO(Merlinmm)
-
-static struct BurnInputInfo CashquizInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy5 + 4, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 4, "p1 start" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy1 + 7, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy2 + 1, "p1 fire 2" },
- {"P1 Button 3", BIT_DIGITAL, DrvJoy2 + 4, "p1 fire 3" },
- {"P1 Button 4", BIT_DIGITAL, DrvJoy2 + 3, "p1 fire 4" },
- {"P1 Button 5", BIT_DIGITAL, DrvJoy2 + 0, "p1 fire 5" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy5 + 5, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy1 + 3, "p2 start" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy2 + 5, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy2 + 6, "p2 fire 2" },
- {"P2 Button 3", BIT_DIGITAL, DrvJoy2 + 7, "p2 fire 3" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Dip A", BIT_DIPSWITCH, DrvInputs + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvInputs + 1, "dip" },
- {"Dip C", BIT_DIPSWITCH, DrvInputs + 2, "dip" },
- {"Dip D", BIT_DIPSWITCH, DrvInputs + 3, "dip" },
- {"Dip E", BIT_DIPSWITCH, DrvInputs + 4, "dip" },
-};
-
-STDINPUTINFO(Cashquiz)
-
-static struct BurnDIPInfo PingpongDIPList[]=
-{
- {0x0e, 0xff, 0xff, 0xff, NULL },
- {0x0f, 0xff, 0xff, 0xff, NULL },
- {0x10, 0xff, 0xff, 0xff, NULL },
- {0x11, 0xff, 0xff, 0xfa, NULL },
-
- {0 , 0xfe, 0 , 16, "Coin B" },
- {0x10, 0x01, 0x0f, 0x04, "4 Coins 1 Credits" },
- {0x10, 0x01, 0x0f, 0x0a, "3 Coins 1 Credits" },
- {0x10, 0x01, 0x0f, 0x01, "2 Coins 1 Credits" },
- {0x10, 0x01, 0x0f, 0x02, "3 Coins 2 Credits" },
- {0x10, 0x01, 0x0f, 0x08, "4 Coins 3 Credits" },
- {0x10, 0x01, 0x0f, 0x0f, "1 Coin 1 Credits" },
- {0x10, 0x01, 0x0f, 0x0c, "3 Coins 4 Credits" },
- {0x10, 0x01, 0x0f, 0x0e, "2 Coins 3 Credits" },
- {0x10, 0x01, 0x0f, 0x07, "1 Coin 2 Credits" },
- {0x10, 0x01, 0x0f, 0x06, "2 Coins 5 Credits" },
- {0x10, 0x01, 0x0f, 0x0b, "1 Coin 3 Credits" },
- {0x10, 0x01, 0x0f, 0x03, "1 Coin 4 Credits" },
- {0x10, 0x01, 0x0f, 0x0d, "1 Coin 5 Credits" },
- {0x10, 0x01, 0x0f, 0x05, "1 Coin 6 Credits" },
- {0x10, 0x01, 0x0f, 0x09, "1 Coin 7 Credits" },
- {0x10, 0x01, 0x0f, 0x00, "Free Play" },
-
- {0 , 0xfe, 0 , 16, "Coin A" },
- {0x10, 0x01, 0xf0, 0x40, "4 Coins 1 Credits" },
- {0x10, 0x01, 0xf0, 0xa0, "3 Coins 1 Credits" },
- {0x10, 0x01, 0xf0, 0x10, "2 Coins 1 Credits" },
- {0x10, 0x01, 0xf0, 0x20, "3 Coins 2 Credits" },
- {0x10, 0x01, 0xf0, 0x80, "4 Coins 3 Credits" },
- {0x10, 0x01, 0xf0, 0xf0, "1 Coin 1 Credits" },
- {0x10, 0x01, 0xf0, 0xc0, "3 Coins 4 Credits" },
- {0x10, 0x01, 0xf0, 0xe0, "2 Coins 3 Credits" },
- {0x10, 0x01, 0xf0, 0x70, "1 Coin 2 Credits" },
- {0x10, 0x01, 0xf0, 0x60, "2 Coins 5 Credits" },
- {0x10, 0x01, 0xf0, 0xb0, "1 Coin 3 Credits" },
- {0x10, 0x01, 0xf0, 0x30, "1 Coin 4 Credits" },
- {0x10, 0x01, 0xf0, 0xd0, "1 Coin 5 Credits" },
- {0x10, 0x01, 0xf0, 0x50, "1 Coin 6 Credits" },
- {0x10, 0x01, 0xf0, 0x90, "1 Coin 7 Credits" },
- {0x10, 0x01, 0xf0, 0x00, "Free Play" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x11, 0x01, 0x01, 0x01, "Off" },
- {0x11, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x11, 0x01, 0x06, 0x06, "Easy" },
- {0x11, 0x01, 0x06, 0x02, "Normal" },
- {0x11, 0x01, 0x06, 0x04, "Difficult" },
- {0x11, 0x01, 0x06, 0x00, "Very Difficult" },
-};
-
-STDDIPINFO(Pingpong)
-
-static struct BurnDIPInfo MerlinmmDIPList[]=
-{
- {0x07, 0xff, 0xff, 0xff, NULL },
- {0x08, 0xff, 0xff, 0xff, NULL },
- {0x09, 0xff, 0xff, 0xff, NULL },
- {0x0a, 0xff, 0xff, 0xff, NULL },
- {0x0b, 0xff, 0xff, 0xff, NULL },
-
- {0 , 0xfe, 0 , 2, "Bank 3-3" },
- {0x07, 0x01, 0x01, 0x01, "Off" },
- {0x07, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Bank 3-2" },
- {0x07, 0x01, 0x02, 0x02, "Off" },
- {0x07, 0x01, 0x02, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Bank 3-1" },
- {0x07, 0x01, 0x04, 0x04, "Off" },
- {0x07, 0x01, 0x04, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Door Close" },
- {0x07, 0x01, 0x10, 0x10, "Off" },
- {0x07, 0x01, 0x10, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Door Open" },
- {0x07, 0x01, 0x20, 0x20, "Off" },
- {0x07, 0x01, 0x20, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Stake" },
- {0x09, 0x01, 0x02, 0x02, "10p" },
- {0x09, 0x01, 0x02, 0x00, "20p" },
-
- {0 , 0xfe, 0 , 2, "Bank 1-6" },
- {0x09, 0x01, 0x04, 0x04, "Off" },
- {0x09, 0x01, 0x04, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Bank 1-5" },
- {0x09, 0x01, 0x08, 0x08, "Off" },
- {0x09, 0x01, 0x08, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "10p Enabled" },
- {0x09, 0x01, 0x10, 0x10, "No" },
- {0x09, 0x01, 0x10, 0x00, "Yes" },
-
- {0 , 0xfe, 0 , 2, "20p Enabled" },
- {0x09, 0x01, 0x20, 0x20, "No" },
- {0x09, 0x01, 0x20, 0x00, "Yes" },
-
- {0 , 0xfe, 0 , 2, "50p Enabled" },
- {0x09, 0x01, 0x40, 0x40, "No" },
- {0x09, 0x01, 0x40, 0x00, "Yes" },
-
- {0 , 0xfe, 0 , 2, "100p Enabled" },
- {0x09, 0x01, 0x80, 0x80, "No" },
- {0x09, 0x01, 0x80, 0x00, "Yes" },
-
- {0 , 0xfe, 0 , 2, "Bank 2-8" },
- {0x0a, 0x01, 0x01, 0x01, "Off" },
- {0x0a, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Bank 2-7" },
- {0x0a, 0x01, 0x02, 0x02, "Off" },
- {0x0a, 0x01, 0x02, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Bank 2-6" },
- {0x0a, 0x01, 0x04, 0x04, "Off" },
- {0x0a, 0x01, 0x04, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Bank 2-5" },
- {0x0a, 0x01, 0x08, 0x08, "Off" },
- {0x0a, 0x01, 0x08, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Bank 2-4" },
- {0x0a, 0x01, 0x10, 0x10, "Off" },
- {0x0a, 0x01, 0x10, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Bank 2-3" },
- {0x0a, 0x01, 0x20, 0x20, "Off" },
- {0x0a, 0x01, 0x20, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Bank 2-2" },
- {0x0a, 0x01, 0x40, 0x40, "Off" },
- {0x0a, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Bank 2-1" },
- {0x0a, 0x01, 0x80, 0x80, "Off" },
- {0x0a, 0x01, 0x80, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "10P Level" },
- {0x0b, 0x01, 0x01, 0x01, "Low" },
- {0x0b, 0x01, 0x01, 0x00, "High" },
-
- {0 , 0xfe, 0 , 2, "20P Level" },
- {0x0b, 0x01, 0x02, 0x02, "Low" },
- {0x0b, 0x01, 0x02, 0x00, "High" },
-
- {0 , 0xfe, 0 , 2, "50P Level" },
- {0x0b, 0x01, 0x04, 0x04, "Low" },
- {0x0b, 0x01, 0x04, 0x00, "High" },
-
- {0 , 0xfe, 0 , 2, "100P Level" },
- {0x0b, 0x01, 0x08, 0x08, "Low" },
- {0x0b, 0x01, 0x08, 0x00, "High" },
-};
-
-STDDIPINFO(Merlinmm)
-
-static struct BurnDIPInfo CashquizDIPList[]=
-{
- {0x0d, 0xff, 0xff, 0xff, NULL },
- {0x0e, 0xff, 0xff, 0xff, NULL },
- {0x0f, 0xff, 0xff, 0xff, NULL },
- {0x10, 0xff, 0xff, 0xff, NULL },
- {0x11, 0xff, 0xff, 0xff, NULL },
-};
-
-STDDIPINFO(Cashquiz)
-
-static void cashquiz_question_bank_high_write(UINT8 data)
-{
- if (data != 0xff)
- {
- question_addr_high_data = data;
-
- for (INT32 i = 0; i < 8; i++)
- {
- if ((data ^ 0xff) == (1 << i))
- {
- question_addr_high = i * 0x8000;
- return;
- }
- }
- }
-}
-
-static void cashquiz_question_bank_low_write(UINT8 data)
-{
- if (data >= 0x60 && data <= 0xdf)
- {
- question_addr_low_data = data;
-
- INT32 bank = (question_addr_low_data & 7) * 0x100;
- INT32 bankaddr = question_addr_high + (question_addr_low_data - 0x60) * 0x100;
-
- ZetMapMemory(DrvBankROM + bankaddr, 0x5000 + bank, 0x50ff + bank, MAP_ROM);
- }
-}
-
-static void __fastcall pingpong_write(UINT16 address, UINT8 data)
-{
- switch (address)
- {
- case 0x4000:
- if (cashquiz) cashquiz_question_bank_high_write(data);
- return;
-
- case 0x4001:
- if (cashquiz) cashquiz_question_bank_low_write(data);
- return;
-
- case 0xa000:
- irq_enable = data & 0x04;
- nmi_enable = data & 0x08;
- // coin counter 1 and 2 - data & 1, data & 2
- return;
-
- case 0xa200:
- return; // nop
-
- case 0xa400:
- SN76496Write(0, data);
- return;
-
- case 0xa600:
- watchdog = 0;
- return;
- }
-}
-
-static UINT8 __fastcall pingpong_read(UINT16 address)
-{
- switch (address & ~0x800)
- {
- case 0x7000: // merlinmm
- return DrvInp[4];
-
- case 0xa000:
- case 0xa080:
- case 0xa100:
- case 0xa180:
- return DrvInp[(address >> 7) & 3];
- }
-
- return 0;
-}
-
-static INT32 DrvDoReset(INT32 full_reset)
-{
- if (full_reset) {
- memset (AllRam, 0, RamEnd - AllRam);
- }
-
- ZetOpen(0);
- ZetReset();
- if (cashquiz) ZetMapMemory(DrvBankROM, 0x5000, 0x57ff, MAP_ROM);
- ZetClose();
-
- question_addr_low_data = 0;
- question_addr_high_data = 0;
- question_addr_high = 0;
-
- irq_enable = 0;
- nmi_enable = 0;
-
- watchdog = 0;
-
- return 0;
-}
-
-static INT32 MemIndex()
-{
- UINT8 *Next; Next = AllMem;
-
- DrvZ80ROM = Next; Next += 0x008000;
-
- if (cashquiz) {
- DrvBankROM = Next; Next += 0x040000;
- }
-
- DrvGfxROM0 = Next; Next += 0x008000;
- DrvGfxROM1 = Next; Next += 0x008000;
-
- DrvColPROM = Next; Next += 0x000220;
-
- DrvTransTab = Next; Next += 0x000200;
-
- DrvPalette = (UINT32*)Next; Next += 0x00200 * sizeof(UINT32);
-
- DrvNVRAM = Next; Next += 0x000400;
-
- AllRam = Next;
-
- DrvColRAM = Next; Next += 0x000400;
- DrvVidRAM = Next; Next += 0x000400;
- DrvSprRAM = Next; Next += 0x000800;
- DrvZ80RAM = Next; Next += 0x000400;
-
- RamEnd = Next;
-
- MemEnd = Next;
-
- return 0;
-}
-
-static INT32 DrvGfxDecode()
-{
- INT32 Planes[2] = { 4, 0 };
- INT32 XOffs0[8] = { STEP4(3,-1), STEP4(8*8+3,-1) };
- INT32 XOffs1[16]= { STEP4(12*16+3,-1), STEP4(8*16+3,-1), STEP4(4*16+3,-1), STEP4(0*16+3,-1) };
- INT32 YOffs[16] = { STEP8(0,8), STEP8(32*8,8) };
-
- UINT8 *tmp = (UINT8*)BurnMalloc(0x2000);
- if (tmp == NULL) {
- return 1;
- }
-
- memcpy (tmp, DrvGfxROM0, 0x2000);
-
- GfxDecode(0x0200, 2, 8, 8, Planes, XOffs0, YOffs, 0x080, tmp, DrvGfxROM0);
-
- memcpy (tmp, DrvGfxROM1, 0x2000);
-
- GfxDecode(0x0080, 2, 16, 16, Planes, XOffs1, YOffs, 0x200, tmp, DrvGfxROM1);
-
- BurnFree(tmp);
-
- return 0;
-}
-
-static void DrvPrgDecode(UINT8 *ROM, INT32 len)
-{
- for (INT32 i = 0; i < len; i++) {
- ROM[i] = BITSWAP08(ROM[i],0,1,2,3,4,5,6,7);
- }
-}
-
-static INT32 PingpongInit()
-{
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(DrvZ80ROM + 0x0000, 0, 1)) return 1;
- if (BurnLoadRom(DrvZ80ROM + 0x4000, 1, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x0000, 2, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM1 + 0x0000, 3, 1)) return 1;
-
- if (BurnLoadRom(DrvColPROM + 0x0000, 4, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x0020, 5, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x0120, 6, 1)) return 1;
-
- DrvGfxDecode();
- }
-
- ZetInit(0);
- ZetOpen(0);
- ZetMapMemory(DrvZ80ROM, 0x0000, 0x7fff, MAP_ROM);
- ZetMapMemory(DrvColRAM, 0x8000, 0x83ff, MAP_RAM);
- ZetMapMemory(DrvVidRAM, 0x8400, 0x87ff, MAP_RAM);
- ZetMapMemory(DrvSprRAM, 0x9000, 0x97ff, MAP_RAM);
- ZetSetWriteHandler(pingpong_write);
- ZetSetReadHandler(pingpong_read);
- ZetClose();
-
- SN76496Init(0, 18432000/8, 0);
- SN76496SetRoute(0, 1.00, BURN_SND_ROUTE_BOTH);
-
- nNMIMask = 0x1f;
-
- GenericTilesInit();
-
- DrvDoReset(1);
-
- return 0;
-}
-
-static INT32 MerlinmmInit()
-{
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(DrvZ80ROM + 0x0000, 0, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x0000, 1, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM1 + 0x0000, 2, 1)) return 1;
-
- if (BurnLoadRom(DrvColPROM + 0x0000, 3, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x0020, 4, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x0120, 5, 1)) return 1;
-
- DrvPrgDecode(DrvZ80ROM, 0x04000);
- DrvGfxDecode();
- }
-
- ZetInit(0);
- ZetOpen(0);
- ZetMapMemory(DrvZ80ROM, 0x0000, 0x3fff, MAP_ROM);
- ZetMapMemory(DrvNVRAM, 0x5000, 0x53ff, MAP_RAM);
- ZetMapMemory(DrvZ80RAM, 0x5400, 0x57ff, MAP_RAM);
- ZetMapMemory(DrvColRAM, 0x8000, 0x83ff, MAP_RAM);
- ZetMapMemory(DrvVidRAM, 0x8400, 0x87ff, MAP_RAM);
- ZetMapMemory(DrvSprRAM, 0x9000, 0x97ff, MAP_RAM);
- ZetSetWriteHandler(pingpong_write);
- ZetSetReadHandler(pingpong_read);
- ZetClose();
-
- SN76496Init(0, 18432000/8, 0);
- SN76496SetRoute(0, 1.00, BURN_SND_ROUTE_BOTH);
-
- nNMIMask = 0x1ff;
-
- GenericTilesInit();
-
- DrvDoReset(1);
-
- return 0;
-}
-
-static INT32 CashquizInit()
-{
- cashquiz = 1;
-
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(DrvZ80ROM + 0x0000, 0, 1)) return 1;
-
- UINT8 *tmp = (UINT8*)BurnMalloc(0x8000);
-
- for (INT32 i = 0; i < 8; i++) {
- if (BurnLoadRom(tmp, i+1, 1)) return 1;
- memcpy (DrvBankROM + i * 0x8000 + 0x2000, tmp + 0x0000, 0x6000);
- memcpy (DrvBankROM + i * 0x8000 + 0x0000, tmp + 0x6000, 0x2000);
- }
-
- BurnFree(tmp);
-
- if (BurnLoadRom(DrvGfxROM0 + 0x0000, 9, 1)) return 1;
- memcpy (DrvGfxROM0, DrvGfxROM0 + 0x2000, 0x2000);
-
- // if (BurnLoadRom(DrvGfxROM1 + 0x0000, 10, 1)) return 1;
-
- if (BurnLoadRom(DrvColPROM + 0x0000, 11, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x0020, 12, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x0120, 13, 1)) return 1;
-
- DrvPrgDecode(DrvZ80ROM, 0x04000);
- DrvPrgDecode(DrvBankROM, 0x40000);
-
- DrvGfxDecode();
- }
-
- ZetInit(0);
- ZetOpen(0);
- ZetMapMemory(DrvZ80ROM, 0x0000, 0x3fff, MAP_ROM);
- ZetMapMemory(DrvBankROM, 0x5000, 0x57ff, MAP_ROM);
- ZetMapMemory(DrvColRAM, 0x8000, 0x83ff, MAP_RAM);
- ZetMapMemory(DrvVidRAM, 0x8400, 0x87ff, MAP_RAM);
- ZetMapMemory(DrvSprRAM, 0x9000, 0x97ff, MAP_RAM);
- ZetSetWriteHandler(pingpong_write);
- ZetSetReadHandler(pingpong_read);
- ZetClose();
-
- SN76496Init(0, 18432000/8, 0);
- SN76496SetRoute(0, 1.00, BURN_SND_ROUTE_BOTH);
-
- nNMIMask = 0x1ff;
-
- GenericTilesInit();
-
- DrvDoReset(1);
-
- return 0;
-}
-
-static INT32 DrvExit()
-{
- GenericTilesExit();
-
- ZetExit();
-
- SN76496Exit();
-
- BurnFree(AllMem);
-
- cashquiz = 0;
-
- return 0;
-}
-
-static void DrvPaletteInit()
-{
- UINT32 t[0x20];
-
- for (INT32 i = 0; i < 0x20; i++)
- {
- INT32 bit0 = (DrvColPROM[i] >> 0) & 0x01;
- INT32 bit1 = (DrvColPROM[i] >> 1) & 0x01;
- INT32 bit2 = (DrvColPROM[i] >> 2) & 0x01;
- INT32 r = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
-
- bit0 = (DrvColPROM[i] >> 3) & 0x01;
- bit1 = (DrvColPROM[i] >> 4) & 0x01;
- bit2 = (DrvColPROM[i] >> 5) & 0x01;
- INT32 g = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
-
- bit0 = 0;
- bit1 = (DrvColPROM[i] >> 6) & 0x01;
- bit2 = (DrvColPROM[i] >> 7) & 0x01;
- INT32 b = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
-
- t[i] = BurnHighCol(r,g,b,0);
- }
-
- for (INT32 i = 0; i < 0x100; i++)
- {
- DrvPalette[i+0x000] = t[(DrvColPROM[i+0x020] & 0x0f) | 0x10];
- DrvPalette[i+0x100] = t[BITSWAP08(DrvColPROM[i+0x120], 7,6,5,4,0,1,2,3)];
- }
-
- for (INT32 i = 0; i < 0x200; i++)
- {
- DrvTransTab[i] = DrvPalette[i] ? 1 : 0;
- }
-}
-
-static void draw_layer()
-{
- for (INT32 offs = 2 * 32; offs < 32 * 32 - 2 * 32; offs++)
- {
- INT32 sx = (offs & 0x1f) * 8;
- INT32 sy =((offs / 0x20) * 8) - 16;
-
- INT32 attr = DrvColRAM[offs];
- INT32 code = DrvVidRAM[offs] + ((attr & 0x20) * 8);
- INT32 color = attr & 0x1f;
- INT32 flipx = attr & 0x40;
- INT32 flipy = attr & 0x80;
-
- if (flipy) {
- if (flipx) {
- Render8x8Tile_FlipXY(pTransDraw, code, sx, sy, color, 2, 0, DrvGfxROM0);
- } else {
- Render8x8Tile_FlipY(pTransDraw, code, sx, sy, color, 2, 0, DrvGfxROM0);
- }
- } else {
- if (flipx) {
- Render8x8Tile_FlipX(pTransDraw, code, sx, sy, color, 2, 0, DrvGfxROM0);
- } else {
- Render8x8Tile(pTransDraw, code, sx, sy, color, 2, 0, DrvGfxROM0);
- }
- }
- }
-}
-
-static void draw_sprites()
-{
- GenericTilesSetClip(0, 256, 32 - 16, 232 - 16);
-
- UINT8 *spr = DrvSprRAM + 3;
-
- for (INT32 offs = 0x50; offs >= 0; offs -= 4)
- {
- INT32 attr = spr[offs + 0];
- INT32 sx = spr[offs + 3];
- INT32 sy = 241 - spr[offs + 1];
- INT32 code = spr[offs + 2] & 0x7f;
-
- INT32 flipx = attr & 0x40;
- INT32 flipy = attr & 0x80;
- INT32 color = attr & 0x1f;
-
- RenderTileTranstab(pTransDraw, DrvGfxROM1, code, color*4+0x100, 0, sx, sy - 16, flipx, flipy, 16, 16, DrvTransTab);
- }
-
- GenericTilesClearClip();
-}
-
-static INT32 DrvDraw()
-{
- if (DrvRecalc) {
- DrvPaletteInit();
- DrvRecalc = 0;
- }
-
- draw_layer();
- draw_sprites();
-
- BurnTransferCopy(DrvPalette);
-
- return 0;
-}
-
-static INT32 DrvFrame()
-{
- watchdog++;
- if (watchdog > 180) {
- DrvDoReset(0);
- }
-
- if (DrvReset) {
- DrvDoReset(1);
- }
-
- {
- memcpy (DrvInp, DrvInputs, 5);
-
- for (INT32 i = 0; i < 8; i++) {
- DrvInp[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInp[1] ^= (DrvJoy2[i] & 1) << i;
- DrvInp[2] ^= (DrvJoy3[i] & 1) << i;
- DrvInp[3] ^= (DrvJoy4[i] & 1) << i;
- DrvInp[4] ^= (DrvJoy5[i] & 1) << i;
- }
- }
-
- INT32 nInterleave = 262;
- INT32 nCyclesTotal = 18432000 / 6 / 60;
- INT32 nCyclesDone = 0;
-
- ZetOpen(0);
-
- for (INT32 i = 0; i < nInterleave; i++)
- {
- nCyclesDone += ZetRun(nCyclesTotal / nInterleave);
-
- if (i == 240 && irq_enable) ZetSetIRQLine(0, CPU_IRQSTATUS_HOLD);
- if ((i & nNMIMask) == 0 && nmi_enable) ZetNmi();
- }
-
- ZetClose();
-
- if (pBurnSoundOut) {
- SN76496Update(0, pBurnSoundOut, nBurnSoundLen);
- }
-
- if (pBurnDraw) {
- DrvDraw();
- }
-
- return 0;
-}
-
-static INT32 DrvScan(INT32 nAction,INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin) {
- *pnMin = 0x029698;
- }
-
- if (nAction & ACB_VOLATILE) {
- memset(&ba, 0, sizeof(ba));
-
- ba.Data = AllRam;
- ba.nLen = RamEnd - AllRam;
- ba.szName = "All Ram";
- BurnAcb(&ba);
-
- ZetScan(nAction);
-
- SN76496Scan(nAction, pnMin);
-
- SCAN_VAR(irq_enable);
- SCAN_VAR(nmi_enable);
- }
-
- if (nAction & ACB_NVRAM) {
- ba.Data = DrvNVRAM;
- ba.nLen = 0x00400;
- ba.nAddress = 0;
- ba.szName = "NV RAM";
- BurnAcb(&ba);
- }
-
- if ((nAction & ACB_WRITE) && cashquiz) {
- ZetOpen(0);
- cashquiz_question_bank_high_write(question_addr_high_data);
- cashquiz_question_bank_low_write(question_addr_low_data);
- ZetClose();
- }
-
- return 0;
-}
-
-
-// Konami's Ping-Pong
-
-static struct BurnRomInfo pingpongRomDesc[] = {
- { "pp_e04.rom", 0x4000, 0x18552f8f, 1 | BRF_PRG | BRF_ESS }, // 0 Z80 code
- { "pp_e03.rom", 0x4000, 0xae5f01e8, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "pp_e01.rom", 0x2000, 0xd1d6f090, 2 | BRF_GRA }, // 2 Background tiles
-
- { "pp_e02.rom", 0x2000, 0x33c687e0, 3 | BRF_GRA }, // 3 Sprites
-
- { "pingpong.3j", 0x0020, 0x3e04f06e, 4 | BRF_GRA }, // 4 Color data
- { "pingpong.5h", 0x0100, 0x8456046a, 4 | BRF_GRA }, // 5
- { "pingpong.11j", 0x0100, 0x09d96b08, 4 | BRF_GRA }, // 6
-};
-
-STD_ROM_PICK(pingpong)
-STD_ROM_FN(pingpong)
-
-struct BurnDriver BurnDrvPingpong = {
- "pingpong", NULL, NULL, NULL, "1985",
- "Konami's Ping-Pong\0", NULL, "Konami", "GX555",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_PREFIX_KONAMI, GBF_MISC, 0,
- NULL, pingpongRomInfo, pingpongRomName, NULL, NULL, PingpongInputInfo, PingpongDIPInfo,
- PingpongInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x200,
- 256, 224, 4, 3
-};
-
-
-// Merlins Money Maze
-
-static struct BurnRomInfo merlinmmRomDesc[] = {
- { "merlinmm.ic2", 0x4000, 0xea5b6590, 1 | BRF_PRG | BRF_ESS }, // 0 Z80 code
-
- { "merlinmm.7h", 0x2000, 0xf7d535aa, 2 | BRF_GRA }, // 1 Background tiles
-
- { "merl_sp.12c", 0x2000, 0x517ecd57, 3 | BRF_GRA }, // 2 Sprites
-
- { "merlinmm.3j", 0x0020, 0xd56e91f4, 4 | BRF_GRA }, // 3 Color data
- { "pingpong.5h", 0x0100, 0x8456046a, 4 | BRF_GRA }, // 4
- { "pingpong.11j", 0x0100, 0x09d96b08, 4 | BRF_GRA }, // 5
-};
-
-STD_ROM_PICK(merlinmm)
-STD_ROM_FN(merlinmm)
-
-struct BurnDriver BurnDrvMerlinmm = {
- "merlinmm", NULL, NULL, NULL, "1986",
- "Merlins Money Maze\0", NULL, "Zilec-Zenitone", "Miscellaneous",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED, 1, HARDWARE_PREFIX_KONAMI, GBF_MISC, 0,
- NULL, merlinmmRomInfo, merlinmmRomName, NULL, NULL, MerlinmmInputInfo, MerlinmmDIPInfo,
- MerlinmmInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x200,
- 224, 256, 3, 4
-};
-
-
-// Cash Quiz (Type B, Version 5)
-
-static struct BurnRomInfo cashquizRomDesc[] = {
- { "cashqcv5.ic3", 0x4000, 0x8e9e2bed, 1 | BRF_PRG | BRF_ESS }, // 0 Z80 code
-
- { "q30_soaps.ic1", 0x8000, 0xb35a30ac, 2 | BRF_GRA }, // 1 Question data
- { "q10.ic2", 0x8000, 0x54962e11, 2 | BRF_GRA }, // 2
- { "q29_newsoccrick.ic3",0x8000, 0x03d47262, 2 | BRF_GRA }, // 3
- { "q28_sportstime.ic4", 0x8000, 0x2bd00476, 2 | BRF_GRA }, // 4
- { "q20_mot.ic5", 0x8000, 0x17a38baf, 2 | BRF_GRA }, // 5
- { "q14_popmusic2.ic6", 0x8000, 0xe486d6ee, 2 | BRF_GRA }, // 6
- { "q26_screenent.ic7", 0x8000, 0x9d130515, 2 | BRF_GRA }, // 7
- { "q19.ic8", 0x8000, 0x9f3f77e6, 2 | BRF_GRA }, // 8
-
- { "cashq.7h", 0x4000, 0x44b72a4f, 3 | BRF_GRA }, // 9 Background tiles
-
- { "cashq.12c", 0x2000, 0x00000000, 4 | BRF_NODUMP }, // 10 Sprites
-
- { "cashquiz.3j", 0x0020, 0xdc70e23b, 5 | BRF_GRA }, // 11 Color data
- { "pingpong.5h", 0x0100, 0x8456046a, 5 | BRF_GRA }, // 12
- { "pingpong.11j", 0x0100, 0x09d96b08, 5 | BRF_GRA }, // 13
-};
-
-STD_ROM_PICK(cashquiz)
-STD_ROM_FN(cashquiz)
-
-struct BurnDriver BurnDrvCashquiz = {
- "cashquiz", NULL, NULL, NULL, "1986",
- "Cash Quiz (Type B, Version 5)\0", "Missing graphics due to undumped ROM!", "Zilec-Zenitone", "Miscellaneous",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_PREFIX_KONAMI, GBF_QUIZ, 0,
- NULL, cashquizRomInfo, cashquizRomName, NULL, NULL, CashquizInputInfo, CashquizDIPInfo,
- CashquizInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x200,
- 256, 224, 4, 3
-};
diff --git a/jan/src/burn/drv/konami/d_pooyan.cpp b/jan/src/burn/drv/konami/d_pooyan.cpp
deleted file mode 100644
index 62eeba2e9..000000000
--- a/jan/src/burn/drv/konami/d_pooyan.cpp
+++ /dev/null
@@ -1,822 +0,0 @@
-// FB Alpha Pooyan Driver Module
-// Based on MAME driver by Allard van der Bas, Mike Cuddy, Nicola Salmoria, Martin Binder, and Marco Cassili
-
-#include "tiles_generic.h"
-#include "z80_intf.h"
-#include "timeplt_snd.h"
-
-static UINT8 *AllMem;
-static UINT8 *MemEnd;
-static UINT8 *AllRam;
-static UINT8 *RamEnd;
-static UINT8 *DrvZ80ROM0;
-static UINT8 *DrvZ80ROM1;
-static UINT8 *DrvGfxROM0;
-static UINT8 *DrvGfxROM1;
-static UINT8 *DrvColPROM;
-static UINT8 *DrvZ80RAM0;
-static UINT8 *DrvZ80RAM1;
-static UINT8 *DrvSprRAM0;
-static UINT8 *DrvSprRAM1;
-static UINT8 *DrvVidRAM;
-
-static UINT32 *DrvPalette;
-static UINT8 DrvRecalc;
-
-static INT16 *pFMBuffer;
-static INT16 *pAY8910Buffer[6];
-
-static UINT8 irqtrigger;
-static UINT8 irq_enable;
-static UINT8 flipscreen;
-
-static UINT8 DrvJoy1[8];
-static UINT8 DrvJoy2[8];
-static UINT8 DrvJoy3[8];
-static UINT8 DrvDips[2];
-static UINT8 DrvInputs[3];
-static UINT8 DrvReset;
-
-static struct BurnInputInfo DrvInputList[] = {
- {"P1 Coin", BIT_DIGITAL , DrvJoy1 + 0, "p1 coin" },
- {"P1 Start", BIT_DIGITAL , DrvJoy1 + 3, "p1 start" },
- {"P1 Up", BIT_DIGITAL , DrvJoy2 + 2, "p1 up" },
- {"P1 Down", BIT_DIGITAL , DrvJoy2 + 3, "p1 down" },
- {"P1 Button", BIT_DIGITAL , DrvJoy2 + 4, "p1 fire 1" },
-
- {"P2 Coin", BIT_DIGITAL , DrvJoy1 + 1, "p2 coin" },
- {"P2 Start", BIT_DIGITAL , DrvJoy1 + 4, "p2 start" },
- {"P2 Up", BIT_DIGITAL , DrvJoy3 + 2, "p2 up" },
- {"P2 Down", BIT_DIGITAL , DrvJoy3 + 3, "p2 down" },
- {"P2 Button", BIT_DIGITAL , DrvJoy3 + 4, "p2 fire 1" },
-
- {"Service", BIT_DIGITAL , DrvJoy1 + 2, "service" },
-
- {"Reset", BIT_DIGITAL , &DrvReset , "reset" },
- {"Dip 1", BIT_DIPSWITCH, DrvDips + 0, "dip" },
- {"Dip 2", BIT_DIPSWITCH, DrvDips + 1, "dip" },
-};
-
-STDINPUTINFO(Drv)
-
-static struct BurnDIPInfo DrvDIPList[]=
-{
- {0x0c, 0xff, 0xff, 0xff, NULL },
- {0x0d, 0xff, 0xff, 0x7b, NULL },
-
- {0 , 0xfe, 0 , 16 , "Coin A" },
- {0x0c, 0x01, 0x0f, 0x02, "4 Coins 1 Credit" },
- {0x0c, 0x01, 0x0f, 0x05, "3 Coins 1 Credit" },
- {0x0c, 0x01, 0x0f, 0x08, "2 Coins 1 Credit" },
- {0x0c, 0x01, 0x0f, 0x04, "3 Coins 2 Credits" },
- {0x0c, 0x01, 0x0f, 0x01, "4 Coins 3 Credits" },
- {0x0c, 0x01, 0x0f, 0x0f, "1 Coin 1 Credit" },
- {0x0c, 0x01, 0x0f, 0x03, "3 Coins 4 Credits" },
- {0x0c, 0x01, 0x0f, 0x07, "2 Coins 3 Credits" },
- {0x0c, 0x01, 0x0f, 0x0e, "1 Coin 2 Credits" },
- {0x0c, 0x01, 0x0f, 0x06, "2 Coins 5 Credits" },
- {0x0c, 0x01, 0x0f, 0x0d, "1 Coin 3 Credits" },
- {0x0c, 0x01, 0x0f, 0x0c, "1 Coin 4 Credits" },
- {0x0c, 0x01, 0x0f, 0x0b, "1 Coin 5 Credits" },
- {0x0c, 0x01, 0x0f, 0x0a, "1 Coin 6 Credits" },
- {0x0c, 0x01, 0x0f, 0x09, "1 Coin 7 Credits" },
- {0x0c, 0x01, 0x0f, 0x00, "Free Play" },
-
- {0 , 0xfe, 0 , 15 , "Coin B" },
- {0x0c, 0x82, 0xf0, 0x20, "4 Coins 1 Credit" },
- {0x0c, 0x82, 0xf0, 0x50, "3 Coins 1 Credit" },
- {0x0c, 0x82, 0xf0, 0x80, "2 Coins 1 Credit" },
- {0x0c, 0x82, 0xf0, 0x40, "3 Coins 2 Credits" },
- {0x0c, 0x82, 0xf0, 0x10, "4 Coins 3 Credits" },
- {0x0c, 0x82, 0xf0, 0xf0, "1 Coin 1 Credit" },
- {0x0c, 0x82, 0xf0, 0x30, "3 Coins 4 Credits" },
- {0x0c, 0x82, 0xf0, 0x70, "2 Coins 3 Credits" },
- {0x0c, 0x82, 0xf0, 0xe0, "1 Coin 2 Credits" },
- {0x0c, 0x82, 0xf0, 0x60, "2 Coins 5 Credits" },
- {0x0c, 0x82, 0xf0, 0xd0, "1 Coin 3 Credits" },
- {0x0c, 0x82, 0xf0, 0xc0, "1 Coin 4 Credits" },
- {0x0c, 0x82, 0xf0, 0xb0, "1 Coin 5 Credits" },
- {0x0c, 0x82, 0xf0, 0xa0, "1 Coin 6 Credits" },
- {0x0c, 0x82, 0xf0, 0x90, "1 Coin 7 Credits" },
-
- {0 , 0xfe, 0 , 4 , "Lives" },
- {0x0d, 0x01, 0x03, 0x03, "3" },
- {0x0d, 0x01, 0x03, 0x02, "4" },
- {0x0d, 0x01, 0x03, 0x01, "5" },
- {0x0d, 0x01, 0x03, 0x00, "256" },
-
- {0 , 0xfe, 0 , 1 , "Cabinet" },
- {0x0d, 0x01, 0x04, 0x00, "Upright" },
-// {0x0d, 0x01, 0x04, 0x04, "Cocktail" },
-
- {0 , 0xfe, 0 , 2 , "Bonus Life" },
- {0x0d, 0x01, 0x08, 0x08, "50K 80K+" },
- {0x0d, 0x01, 0x08, 0x00, "30K 70K+" },
-
- {0 , 0xfe, 0 , 8 , "Difficulty" },
- {0x0d, 0x01, 0x70, 0x70, "1 (Easy)" },
- {0x0d, 0x01, 0x70, 0x60, "2" },
- {0x0d, 0x01, 0x70, 0x50, "3" },
- {0x0d, 0x01, 0x70, 0x40, "4" },
- {0x0d, 0x01, 0x70, 0x30, "5" },
- {0x0d, 0x01, 0x70, 0x20, "6" },
- {0x0d, 0x01, 0x70, 0x10, "7" },
- {0x0d, 0x01, 0x70, 0x00, "8 (Hard)" },
-
- {0 , 0xfe, 0 , 2 , "Demo Sounds" },
- {0x0d, 0x01, 0x80, 0x80, "Off" },
- {0x0d, 0x01, 0x80, 0x00, "On" },
-};
-
-STDDIPINFO(Drv)
-
-static UINT8 __fastcall pooyan_main_read(UINT16 address)
-{
- switch (address)
- {
- case 0xa000:
- return DrvDips[1];
-
- case 0xa080:
- return DrvInputs[0];
-
- case 0xa0a0:
- return DrvInputs[1];
-
- case 0xa0c0:
- return DrvInputs[2];
-
- case 0xa0e0:
- return DrvDips[0];
- }
-
- return 0;
-}
-
-static void __fastcall pooyan_main_write(UINT16 address, UINT8 data)
-{
- switch (address)
- {
- case 0xa000:
- // watchdog
- break;
-
- case 0xa100:
- TimepltSndSoundlatch(data);
- break;
-
- case 0xa180:
- irq_enable = data & 1;
- if (!irq_enable)
- ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
- break;
-
- case 0xa181:
- {
- if (irqtrigger == 0 && data) {
- ZetClose();
- ZetOpen(1);
- ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
- ZetClose();
- ZetOpen(0);
- }
-
- irqtrigger = data;
- }
- break;
-
- case 0xa183:
- break;
-
- case 0xa187:
- flipscreen = ~data & 1;
- break;
- }
-}
-
-static INT32 DrvDoReset()
-{
- memset (AllRam, 0, RamEnd - AllRam);
-
- ZetOpen(0);
- ZetReset();
- ZetClose();
-
- TimepltSndReset();
-
- irqtrigger = 0;
- flipscreen = 0;
- irq_enable = 0;
-
- HiscoreReset();
-
- return 0;
-}
-
-#define MAX_NETS 3
-#define MAX_RES_PER_NET 18
-#define Combine2Weights(tab,w0,w1) ((int)(((tab)[0]*(w0) + (tab)[1]*(w1)) + 0.5))
-#define Combine3Weights(tab,w0,w1,w2) ((int)(((tab)[0]*(w0) + (tab)[1]*(w1) + (tab)[2]*(w2)) + 0.5))
-
-static double ComputeResistorWeights(INT32 MinVal, INT32 MaxVal, double Scaler, INT32 Count1, const INT32 *Resistances1, double *Weights1, INT32 PullDown1, INT32 PullUp1, INT32 Count2, const INT32 *Resistances2, double *Weights2, INT32 PullDown2, INT32 PullUp2, INT32 Count3, const INT32 *Resistances3, double *Weights3, INT32 PullDown3, INT32 PullUp3)
-{
- INT32 NetworksNum;
-
- INT32 ResCount[MAX_NETS];
- double r[MAX_NETS][MAX_RES_PER_NET];
- double w[MAX_NETS][MAX_RES_PER_NET];
- double ws[MAX_NETS][MAX_RES_PER_NET];
- INT32 r_pd[MAX_NETS];
- INT32 r_pu[MAX_NETS];
-
- double MaxOut[MAX_NETS];
- double *Out[MAX_NETS];
-
- INT32 i, j, n;
- double Scale;
- double Max;
-
- NetworksNum = 0;
- for (n = 0; n < MAX_NETS; n++) {
- INT32 Count, pd, pu;
- const INT32 *Resistances;
- double *Weights;
-
- switch (n) {
- case 0: {
- Count = Count1;
- Resistances = Resistances1;
- Weights = Weights1;
- pd = PullDown1;
- pu = PullUp1;
- break;
- }
-
- case 1: {
- Count = Count2;
- Resistances = Resistances2;
- Weights = Weights2;
- pd = PullDown2;
- pu = PullUp2;
- break;
- }
-
- case 2:
- default: {
- Count = Count3;
- Resistances = Resistances3;
- Weights = Weights3;
- pd = PullDown3;
- pu = PullUp3;
- break;
- }
- }
-
- if (Count > 0) {
- ResCount[NetworksNum] = Count;
- for (i = 0; i < Count; i++) {
- r[NetworksNum][i] = 1.0 * Resistances[i];
- }
- Out[NetworksNum] = Weights;
- r_pd[NetworksNum] = pd;
- r_pu[NetworksNum] = pu;
- NetworksNum++;
- }
- }
-
- for (i = 0; i < NetworksNum; i++) {
- double R0, R1, Vout, Dst;
-
- for (n = 0; n < ResCount[i]; n++) {
- R0 = (r_pd[i] == 0) ? 1.0 / 1e12 : 1.0 / r_pd[i];
- R1 = (r_pu[i] == 0) ? 1.0 / 1e12 : 1.0 / r_pu[i];
-
- for (j = 0; j < ResCount[i]; j++) {
- if (j == n) {
- if (r[i][j] != 0.0) R1 += 1.0 / r[i][j];
- } else {
- if (r[i][j] != 0.0) R0 += 1.0 / r[i][j];
- }
- }
-
- R0 = 1.0/R0;
- R1 = 1.0/R1;
- Vout = (MaxVal - MinVal) * R0 / (R1 + R0) + MinVal;
-
- Dst = (Vout < MinVal) ? MinVal : (Vout > MaxVal) ? MaxVal : Vout;
-
- w[i][n] = Dst;
- }
- }
-
- j = 0;
- Max = 0.0;
- for (i = 0; i < NetworksNum; i++) {
- double Sum = 0.0;
-
- for (n = 0; n < ResCount[i]; n++) Sum += w[i][n];
-
- MaxOut[i] = Sum;
- if (Max < Sum) {
- Max = Sum;
- j = i;
- }
- }
-
- if (Scaler < 0.0) {
- Scale = ((double)MaxVal) / MaxOut[j];
- } else {
- Scale = Scaler;
- }
-
- for (i = 0; i < NetworksNum; i++) {
- for (n = 0; n < ResCount[i]; n++) {
- ws[i][n] = w[i][n] * Scale;
- (Out[i])[n] = ws[i][n];
- }
- }
-
- return Scale;
-}
-
-static void DrvPaletteInit()
-{
- UINT32 pal[0x20];
-
- static const INT32 resistances_rg[3] = { 1000, 470, 220 };
- static const INT32 resistances_b[2] = { 470, 220 };
-
- double rweights[3], gweights[3], bweights[2];
-
- ComputeResistorWeights(0, 0xff, -1.0,
- 3, &resistances_rg[0], rweights, 1000, 0,
- 3, &resistances_rg[0], gweights, 1000, 0,
- 2, &resistances_b[0], bweights, 1000, 0);
-
- for (INT32 i = 0; i < 0x20; i++)
- {
- INT32 r, g, b;
- INT32 bit0, bit1, bit2;
-
- bit0 = (DrvColPROM[i] >> 0) & 0x01;
- bit1 = (DrvColPROM[i] >> 1) & 0x01;
- bit2 = (DrvColPROM[i] >> 2) & 0x01;
- r = Combine3Weights(rweights, bit0, bit1, bit2);
-
- bit0 = (DrvColPROM[i] >> 3) & 0x01;
- bit1 = (DrvColPROM[i] >> 4) & 0x01;
- bit2 = (DrvColPROM[i] >> 5) & 0x01;
- g = Combine3Weights(gweights, bit0, bit1, bit2);
-
- bit0 = (DrvColPROM[i] >> 6) & 0x01;
- bit1 = (DrvColPROM[i] >> 7) & 0x01;
- b = Combine2Weights(bweights, bit0, bit1);
-
- pal[i] = BurnHighCol(r, g, b, 0);
- }
-
- for (INT32 i = 0; i < 0x100; i++)
- {
- DrvPalette[i + 0x000] = pal[(DrvColPROM[i + 0x020] & 0x0f) | 0x10];
- DrvPalette[i + 0x100] = pal[(DrvColPROM[i + 0x120] & 0x0f) | 0x00];
- }
-}
-
-#undef MAX_NETS
-#undef MAX_RES_PER_NET
-#undef Combine2Weights
-#undef Combine3Weights
-
-static INT32 DrvGfxDecode()
-{
- INT32 Planes[4] = { 0x8004, 0x8000, 4, 0 };
- INT32 XOffs[16] = { STEP4(0,1), STEP4(64,1), STEP4(128,1), STEP4(192,1) };
- INT32 YOffs[16] = { STEP8(0,8), STEP8(256, 8) };
-
- UINT8 *tmp = (UINT8*)BurnMalloc(0x2000);
- if (tmp == NULL) {
- return 1;
- }
-
- memcpy (tmp, DrvGfxROM0, 0x2000);
-
- GfxDecode(0x100, 4, 8, 8, Planes, XOffs, YOffs, 0x080, tmp, DrvGfxROM0);
-
- memcpy (tmp, DrvGfxROM1, 0x2000);
-
- GfxDecode(0x40, 4, 16, 16, Planes, XOffs, YOffs, 0x200, tmp, DrvGfxROM1);
-
- BurnFree(tmp);
-
- return 0;
-}
-
-static INT32 MemIndex()
-{
- UINT8 *Next; Next = AllMem;
-
- DrvZ80ROM0 = Next; Next += 0x08000;
- DrvZ80ROM1 = Next; Next += 0x02000;
-
- DrvGfxROM0 = Next; Next += 0x04000;
- DrvGfxROM1 = Next; Next += 0x04000;
-
- DrvColPROM = Next; Next += 0x00220;
-
- DrvPalette = (UINT32*)Next; Next += 0x00200 * sizeof(UINT32);
-
- AllRam = Next;
-
- DrvSprRAM0 = Next; Next += 0x000100;
- DrvSprRAM1 = Next; Next += 0x000100;
- DrvZ80RAM0 = Next; Next += 0x000800;
- DrvZ80RAM1 = Next; Next += 0x000400;
- DrvVidRAM = Next; Next += 0x000800;
-
- RamEnd = Next;
-
- pFMBuffer = (INT16 *)Next; Next += nBurnSoundLen * 6 * sizeof(INT16);
-
- pAY8910Buffer[0] = pFMBuffer + nBurnSoundLen * 0;
- pAY8910Buffer[1] = pFMBuffer + nBurnSoundLen * 1;
- pAY8910Buffer[2] = pFMBuffer + nBurnSoundLen * 2;
- pAY8910Buffer[3] = pFMBuffer + nBurnSoundLen * 3;
- pAY8910Buffer[4] = pFMBuffer + nBurnSoundLen * 4;
- pAY8910Buffer[5] = pFMBuffer + nBurnSoundLen * 5;
-
- MemEnd = Next;
-
- return 0;
-}
-
-static INT32 DrvInit()
-{
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(DrvZ80ROM0 + 0x0000, 0, 1)) return 1;
- if (BurnLoadRom(DrvZ80ROM0 + 0x2000, 1, 1)) return 1;
- if (BurnLoadRom(DrvZ80ROM0 + 0x4000, 2, 1)) return 1;
- if (BurnLoadRom(DrvZ80ROM0 + 0x6000, 3, 1)) return 1;
-
- if (BurnLoadRom(DrvZ80ROM1 + 0x0000, 4, 1)) return 1;
- if (BurnLoadRom(DrvZ80ROM1 + 0x1000, 5, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x0000, 6, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x1000, 7, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM1 + 0x0000, 8, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x1000, 9, 1)) return 1;
-
- if (BurnLoadRom(DrvColPROM + 0x0000, 10, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x0020, 11, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x0120, 12, 1)) return 1;
-
- DrvGfxDecode();
- DrvPaletteInit();
- }
-
- ZetInit(0);
- ZetOpen(0);
- ZetMapArea(0x0000, 0x7fff, 0, DrvZ80ROM0);
- ZetMapArea(0x0000, 0x7fff, 2, DrvZ80ROM0);
- ZetMapArea(0x8000, 0x87ff, 0, DrvVidRAM);
- ZetMapArea(0x8000, 0x87ff, 1, DrvVidRAM);
- ZetMapArea(0x8000, 0x87ff, 2, DrvVidRAM);
- ZetMapArea(0x8800, 0x8fff, 0, DrvZ80RAM0);
- ZetMapArea(0x8800, 0x8fff, 1, DrvZ80RAM0);
- ZetMapArea(0x8800, 0x8fff, 2, DrvZ80RAM0);
- ZetMapArea(0x9000, 0x90ff, 0, DrvSprRAM0);
- ZetMapArea(0x9000, 0x90ff, 1, DrvSprRAM0);
- ZetMapArea(0x9000, 0x90ff, 2, DrvSprRAM0);
- ZetMapArea(0x9400, 0x94ff, 0, DrvSprRAM1);
- ZetMapArea(0x9400, 0x94ff, 1, DrvSprRAM1);
- ZetMapArea(0x9400, 0x94ff, 2, DrvSprRAM1);
- ZetSetWriteHandler(pooyan_main_write);
- ZetSetReadHandler(pooyan_main_read);
- ZetClose();
-
- TimepltSndInit(DrvZ80ROM1, DrvZ80RAM1, 1);
-
- GenericTilesInit();
-
- DrvDoReset();
-
- return 0;
-}
-
-static INT32 DrvExit()
-{
- ZetExit();
- TimepltSndExit();
-
- GenericTilesExit();
-
- BurnFree (AllMem);
- AllMem = NULL;
-
- return 0;
-}
-
-static void draw_layer()
-{
- for (INT32 i = 0; i < 0x0400; i++)
- {
- INT32 attr = DrvVidRAM[0x000 + i];
- INT32 code = DrvVidRAM[0x400 + i];
- INT32 color = attr & 0x0f;
- INT32 flipx = (attr >> 6) & 1;
- INT32 flipy = (attr >> 7) & 1;
-
- INT32 sx = (i << 3) & 0xf8;
- INT32 sy = (i >> 2) & 0xf8;
-
- if (flipscreen) {
- sx ^= 0xf8;
- sy ^= 0xf8;
- flipx ^= 1;
- flipy ^= 1;
- }
-
- if (sy > 239 || sy < 16) continue;
- sy -= 16;
-
- if (flipy) {
- if (flipx) {
- Render8x8Tile_FlipXY(pTransDraw, code, sx, sy, color, 4, 0, DrvGfxROM0);
- } else {
- Render8x8Tile_FlipY(pTransDraw, code, sx, sy, color, 4, 0, DrvGfxROM0);
- }
- } else {
- if (flipx) {
- Render8x8Tile_FlipX(pTransDraw, code, sx, sy, color, 4, 0, DrvGfxROM0);
- } else {
- Render8x8Tile(pTransDraw, code, sx, sy, color, 4, 0, DrvGfxROM0);
- }
- }
- }
-} extern int counter;
-
-static void RenderTileCPMP(INT32 code, INT32 color, INT32 sx, INT32 sy, INT32 flipx, INT32 flipy, INT32 width, INT32 height)
-{
- UINT16 *dest = pTransDraw;
- UINT8 *gfx = DrvGfxROM1;
-
- INT32 flip = 0;
- if (flipy) flip |= (height - 1) * width;
- if (flipx) flip |= width - 1;
-
- gfx += code * width * height;
-
- for (INT32 y = 0; y < height; y++, sy++) {
- if (sy < 0 || sy >= nScreenHeight) continue;
-
- for (INT32 x = 0; x < width; x++, sx++) {
- if (sx < 0 || sx >= nScreenWidth) continue;
-
- INT32 pxl = gfx[((y * width) + x) ^ flip];
-
- if (DrvPalette[pxl | (color << 4) | 0x100] == 0) continue; // 0 and 0x10 is transparent
- dest[sy * nScreenWidth + sx] = pxl | (color << 4) | 0x100;
- }
- sx -= width;
- }
-}
-
-
-static void draw_sprites()
-{
- for (INT32 i = 0x10; i < 0x40; i += 2)
- {
- INT32 sx = DrvSprRAM0[i];
- INT32 sy = 240 - DrvSprRAM1[1 + i];
-
- INT32 code = DrvSprRAM0[i + 1] & 0x3f;
- INT32 color = (DrvSprRAM1[i] & 0x0f);// | 0x10;
- INT32 flipx = ~DrvSprRAM1[i] & 0x40;
- INT32 flipy = DrvSprRAM1[i] & 0x80;
-
- if (sy == 0 || sy >= 240) continue;
-
- sy -= 16;
-
- RenderTileCPMP(code, color, sx, sy, flipx, flipy, 16, 16);
- }
-}
-
-static INT32 DrvDraw()
-{
- if (DrvRecalc) {
- DrvPaletteInit();
- }
-
- if (nBurnLayer & 1) draw_layer();
- if (nBurnLayer & 2) draw_sprites();
-
- BurnTransferCopy(DrvPalette);
-
- return 0;
-}
-
-static INT32 DrvFrame()
-{
- if (DrvReset) {
- DrvDoReset();
- }
-
- {
- memset (DrvInputs, 0xff, 3);
- for (INT32 i = 0; i < 8; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- DrvInputs[2] ^= (DrvJoy3[i] & 1) << i;
- }
- }
-
- INT32 nInterleave = 256;
- INT32 nCyclesTotal[2] = { 3072000 / 60, 1789772 / 60 };
- INT32 nCyclesDone[2] = { 0, 0 };
- INT32 nSoundBufferPos = 0;
-
- for (INT32 i = 0; i < nInterleave; i++)
- {
- INT32 nCurrentCPU, nNext, nCyclesSegment;
-
- nCurrentCPU = 0;
- ZetOpen(nCurrentCPU);
- nNext = (i + 1) * nCyclesTotal[nCurrentCPU] / nInterleave;
- nCyclesSegment = nNext - nCyclesDone[nCurrentCPU];
- nCyclesDone[nCurrentCPU] += ZetRun(nCyclesSegment);
- if (irq_enable && i == (nInterleave - 1)) ZetNmi();
- ZetClose();
-
- nCurrentCPU = 1;
- ZetOpen(nCurrentCPU);
- nNext = (i + 1) * nCyclesTotal[nCurrentCPU] / nInterleave;
- nCyclesSegment = nNext - nCyclesDone[nCurrentCPU];
- nCyclesDone[nCurrentCPU] += ZetRun(nCyclesSegment);
- ZetClose();
-
- // Render Sound Segment
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen / nInterleave;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- TimepltSndUpdate(pAY8910Buffer, pSoundBuf, nSegmentLength);
- nSoundBufferPos += nSegmentLength;
- }
- }
-
- // Make sure the buffer is entirely filled.
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- TimepltSndUpdate(pAY8910Buffer, pSoundBuf, nSegmentLength);
- }
-
- if (pBurnDraw) {
- DrvDraw();
- }
-
- return 0;
-}
-
-static INT32 DrvScan(INT32 nAction, INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin) {
- *pnMin = 0x029521;
- }
-
- if (nAction & ACB_VOLATILE) {
- memset(&ba, 0, sizeof(ba));
-
- ba.Data = AllRam;
- ba.nLen = RamEnd - AllRam;
- ba.szName = "All Ram";
- BurnAcb(&ba);
-
- ZetScan(nAction);
- TimepltSndScan(nAction, pnMin);
-
- SCAN_VAR(irqtrigger);
- SCAN_VAR(irq_enable);
- SCAN_VAR(flipscreen);
- }
-
- return 0;
-}
-
-
-// Pooyan
-
-static struct BurnRomInfo pooyanRomDesc[] = {
- { "1.4a", 0x2000, 0xbb319c63, 1 | BRF_PRG | BRF_ESS }, // 0 Z80 #0 Code
- { "2.5a", 0x2000, 0xa1463d98, 1 | BRF_PRG | BRF_ESS }, // 1
- { "3.6a", 0x2000, 0xfe1a9e08, 1 | BRF_PRG | BRF_ESS }, // 2
- { "4.7a", 0x2000, 0x9e0f9bcc, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "xx.7a", 0x1000, 0xfbe2b368, 2 | BRF_PRG | BRF_ESS }, // 4 Z80 #1 Code
- { "xx.8a", 0x1000, 0xe1795b3d, 2 | BRF_PRG | BRF_ESS }, // 5
-
- { "8.10g", 0x1000, 0x931b29eb, 3 | BRF_GRA }, // 6 Characters
- { "7.9g", 0x1000, 0xbbe6d6e4, 3 | BRF_GRA }, // 7
-
- { "6.9a", 0x1000, 0xb2d8c121, 4 | BRF_GRA }, // 8 Sprites
- { "5.8a", 0x1000, 0x1097c2b6, 4 | BRF_GRA }, // 9
-
- { "pooyan.pr1", 0x0020, 0xa06a6d0e, 5 | BRF_GRA }, // 10 Color Proms
- { "pooyan.pr3", 0x0100, 0x8cd4cd60, 5 | BRF_GRA }, // 11
- { "pooyan.pr2", 0x0100, 0x82748c0b, 5 | BRF_GRA }, // 12
-};
-
-STD_ROM_PICK(pooyan)
-STD_ROM_FN(pooyan)
-
-struct BurnDriver BurnDrvPooyan = {
- "pooyan", NULL, NULL, NULL, "1982",
- "Pooyan\0", NULL, "Konami", "GX320",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_KONAMI, GBF_SHOOT, 0,
- NULL, pooyanRomInfo, pooyanRomName, NULL, NULL, DrvInputInfo, DrvDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x200,
- 224, 256, 3, 4
-};
-
-
-// Pooyan (Stern)
-
-static struct BurnRomInfo pooyansRomDesc[] = {
- { "ic22_a4.cpu", 0x2000, 0x916ae7d7, 1 | BRF_PRG | BRF_ESS }, // 0 Z80 #0 Code
- { "ic23_a5.cpu", 0x2000, 0x8fe38c61, 1 | BRF_PRG | BRF_ESS }, // 1
- { "ic24_a6.cpu", 0x2000, 0x2660218a, 1 | BRF_PRG | BRF_ESS }, // 2
- { "ic25_a7.cpu", 0x2000, 0x3d2a10ad, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "xx.7a", 0x1000, 0xfbe2b368, 2 | BRF_PRG | BRF_ESS }, // 4 Z80 #1 Code
- { "xx.8a", 0x1000, 0xe1795b3d, 2 | BRF_PRG | BRF_ESS }, // 5
-
- { "ic13_g10.cpu", 0x1000, 0x7433aea9, 3 | BRF_GRA }, // 6 Characters
- { "ic14_g9.cpu", 0x1000, 0x87c1789e, 3 | BRF_GRA }, // 7
-
- { "6.9a", 0x1000, 0xb2d8c121, 4 | BRF_GRA }, // 8 Sprites
- { "5.8a", 0x1000, 0x1097c2b6, 4 | BRF_GRA }, // 9
-
- { "pooyan.pr1", 0x0020, 0xa06a6d0e, 5 | BRF_GRA }, // 10 Color Proms
- { "pooyan.pr3", 0x0100, 0x8cd4cd60, 5 | BRF_GRA }, // 11
- { "pooyan.pr2", 0x0100, 0x82748c0b, 5 | BRF_GRA }, // 12
-};
-
-STD_ROM_PICK(pooyans)
-STD_ROM_FN(pooyans)
-
-struct BurnDriver BurnDrvPooyans = {
- "pooyans", "pooyan", NULL, NULL, "1982",
- "Pooyan (Stern)\0", NULL, "[Konami] (Stern license)", "GX320",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_KONAMI, GBF_SHOOT, 0,
- NULL, pooyansRomInfo, pooyansRomName, NULL, NULL, DrvInputInfo, DrvDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x200,
- 224, 256, 3, 4
-};
-
-
-// Pootan
-
-static struct BurnRomInfo pootanRomDesc[] = {
- { "poo_ic22.bin", 0x2000, 0x41b23a24, 1 | BRF_PRG | BRF_ESS }, // 0 Z80 #0 Code
- { "poo_ic23.bin", 0x2000, 0xc9d94661, 1 | BRF_PRG | BRF_ESS }, // 1
- { "3.6a", 0x2000, 0xfe1a9e08, 1 | BRF_PRG | BRF_ESS }, // 2
- { "poo_ic25.bin", 0x2000, 0x8ae459ef, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "xx.7a", 0x1000, 0xfbe2b368, 2 | BRF_PRG | BRF_ESS }, // 4 Z80 #1 Code
- { "xx.8a", 0x1000, 0xe1795b3d, 2 | BRF_PRG | BRF_ESS }, // 5
-
- { "poo_ic13.bin", 0x1000, 0x0be802e4, 3 | BRF_GRA }, // 6 Characters
- { "poo_ic14.bin", 0x1000, 0xcba29096, 3 | BRF_GRA }, // 7
-
- { "6.9a", 0x1000, 0xb2d8c121, 4 | BRF_GRA }, // 8 Sprites
- { "5.8a", 0x1000, 0x1097c2b6, 4 | BRF_GRA }, // 9
-
- { "pooyan.pr1", 0x0020, 0xa06a6d0e, 5 | BRF_GRA }, // 10 Color Proms
- { "pooyan.pr3", 0x0100, 0x8cd4cd60, 5 | BRF_GRA }, // 11
- { "pooyan.pr2", 0x0100, 0x82748c0b, 5 | BRF_GRA }, // 12
-};
-
-STD_ROM_PICK(pootan)
-STD_ROM_FN(pootan)
-
-struct BurnDriver BurnDrvPootan = {
- "pootan", "pooyan", NULL, NULL, "1982",
- "Pootan\0", NULL, "bootleg", "GX320",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_KONAMI, GBF_SHOOT, 0,
- NULL, pootanRomInfo, pootanRomName, NULL, NULL, DrvInputInfo, DrvDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x200,
- 224, 256, 3, 4
-};
-
diff --git a/jan/src/burn/drv/konami/d_rockrage.cpp b/jan/src/burn/drv/konami/d_rockrage.cpp
deleted file mode 100644
index bc2619285..000000000
--- a/jan/src/burn/drv/konami/d_rockrage.cpp
+++ /dev/null
@@ -1,695 +0,0 @@
-// FB ALpha Rock'n Rage driver module
-// Based on MAME driver by Manuel Abadia
-
-#include "tiles_generic.h"
-#include "m6809_intf.h"
-#include "hd6309_intf.h"
-#include "burn_ym2151.h"
-#include "vlm5030.h"
-#include "k007342_k007420.h"
-
-static UINT8 *AllMem;
-static UINT8 *MemEnd;
-static UINT8 *AllRam;
-static UINT8 *RamEnd;
-static UINT8 *DrvHD6309ROM;
-static UINT8 *DrvM6809ROM;
-static UINT8 *DrvGfxROM0;
-static UINT8 *DrvGfxROM1;
-static UINT8 *DrvVLMROM;
-static UINT8 *DrvLutPROM;
-
-static UINT32 *DrvPalette;
-static UINT8 DrvRecalc;
-
-static UINT8 *DrvHD6309RAM;
-static UINT8 *DrvM6809RAM;
-static UINT8 *DrvPalRAM;
-
-static UINT8 HD6309Bank;
-static UINT8 soundlatch;
-static UINT8 videoregs;
-
-static UINT8 DrvJoy1[8];
-static UINT8 DrvJoy2[8];
-static UINT8 DrvJoy3[8];
-static UINT8 DrvDips[3];
-static UINT8 DrvInputs[3];
-static UINT8 DrvReset;
-
-static INT32 watchdog;
-
-static struct BurnInputInfo RockrageInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy1 + 0, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 3, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy2 + 2, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy2 + 3, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy2 + 0, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy2 + 1, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy2 + 4, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy2 + 5, "p1 fire 2" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy1 + 1, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy1 + 4, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvJoy3 + 2, "p2 up"} ,
- {"P2 Down", BIT_DIGITAL, DrvJoy3 + 3, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy3 + 0, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy3 + 1, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy3 + 4, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy3 + 5, "p2 fire 2" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service", BIT_DIGITAL, DrvJoy1 + 2, "service" },
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip" },
- {"Dip C", BIT_DIPSWITCH, DrvDips + 2, "dip" },
-};
-
-STDINPUTINFO(Rockrage)
-
-static struct BurnDIPInfo RockrageDIPList[]=
-{
- {0x12, 0xff, 0xff, 0xe0, NULL },
- {0x13, 0xff, 0xff, 0xff, NULL },
- {0x14, 0xff, 0xff, 0x5d, NULL },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x12, 0x01, 0x20, 0x20, "Off" },
- {0x12, 0x01, 0x20, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x12, 0x01, 0x80, 0x80, "Off" },
- {0x12, 0x01, 0x80, 0x00, "On" },
-
- {0 , 0xfe, 0 , 16, "Coin A" },
- {0x13, 0x01, 0x0f, 0x02, "4 Coins 1 Credits" },
- {0x13, 0x01, 0x0f, 0x05, "3 Coins 1 Credits" },
- {0x13, 0x01, 0x0f, 0x08, "2 Coins 1 Credits" },
- {0x13, 0x01, 0x0f, 0x04, "3 Coins 2 Credits" },
- {0x13, 0x01, 0x0f, 0x01, "4 Coins 3 Credits" },
- {0x13, 0x01, 0x0f, 0x0f, "1 Coin 1 Credits" },
- {0x13, 0x01, 0x0f, 0x03, "3 Coins 4 Credits" },
- {0x13, 0x01, 0x0f, 0x07, "2 Coins 3 Credits" },
- {0x13, 0x01, 0x0f, 0x0e, "1 Coin 2 Credits" },
- {0x13, 0x01, 0x0f, 0x06, "2 Coins 5 Credits" },
- {0x13, 0x01, 0x0f, 0x0d, "1 Coin 3 Credits" },
- {0x13, 0x01, 0x0f, 0x0c, "1 Coin 4 Credits" },
- {0x13, 0x01, 0x0f, 0x0b, "1 Coin 5 Credits" },
- {0x13, 0x01, 0x0f, 0x0a, "1 Coin 6 Credits" },
- {0x13, 0x01, 0x0f, 0x09, "1 Coin 7 Credits" },
- {0x13, 0x01, 0x0f, 0x00, "Free Play" },
-
- {0 , 0xfe, 0 , 16, "Coin B" },
- {0x13, 0x01, 0xf0, 0x20, "4 Coins 1 Credits" },
- {0x13, 0x01, 0xf0, 0x50, "3 Coins 1 Credits" },
- {0x13, 0x01, 0xf0, 0x80, "2 Coins 1 Credits" },
- {0x13, 0x01, 0xf0, 0x40, "3 Coins 2 Credits" },
- {0x13, 0x01, 0xf0, 0x10, "4 Coins 3 Credits" },
- {0x13, 0x01, 0xf0, 0xf0, "1 Coin 1 Credits" },
- {0x13, 0x01, 0xf0, 0x30, "3 Coins 4 Credits" },
- {0x13, 0x01, 0xf0, 0x70, "2 Coins 3 Credits" },
- {0x13, 0x01, 0xf0, 0xe0, "1 Coin 2 Credits" },
- {0x13, 0x01, 0xf0, 0x60, "2 Coins 5 Credits" },
- {0x13, 0x01, 0xf0, 0xd0, "1 Coin 3 Credits" },
- {0x13, 0x01, 0xf0, 0xc0, "1 Coin 4 Credits" },
- {0x13, 0x01, 0xf0, 0xb0, "1 Coin 5 Credits" },
- {0x13, 0x01, 0xf0, 0xa0, "1 Coin 6 Credits" },
- {0x13, 0x01, 0xf0, 0x90, "1 Coin 7 Credits" },
- {0x13, 0x01, 0xf0, 0x00, "Invalid" },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x14, 0x01, 0x03, 0x03, "1" },
- {0x14, 0x01, 0x03, 0x02, "2" },
- {0x14, 0x01, 0x03, 0x01, "3" },
- {0x14, 0x01, 0x03, 0x00, "5" },
-
- {0 , 0xfe, 0 , 2, "Bonus Life" },
- {0x14, 0x01, 0x08, 0x08, "30k & Every 70k" },
- {0x14, 0x01, 0x08, 0x00, "40k & Every 80k" },
-
- {0 , 0xfe, 0 , 2, "Freeze Screen" },
- {0x14, 0x01, 0x10, 0x10, "Off" },
- {0x14, 0x01, 0x10, 0x00, "On" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x14, 0x01, 0x60, 0x60, "Easy" },
- {0x14, 0x01, 0x60, 0x40, "Medium" },
- {0x14, 0x01, 0x60, 0x20, "Hard" },
- {0x14, 0x01, 0x60, 0x00, "Hardest" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x14, 0x01, 0x80, 0x80, "Off" },
- {0x14, 0x01, 0x80, 0x00, "On" },
-};
-
-STDDIPINFO(Rockrage)
-
-static void bankswitch(INT32 bank)
-{
- HD6309Bank = bank;
- HD6309MapMemory(DrvHD6309ROM + 0x10000 + (((bank & 0x70) >> 4) * 0x2000), 0x6000, 0x7fff, MAP_ROM);
-}
-
-static void rockrage_main_write(UINT16 address, UINT8 data)
-{
- if ((address & 0xfff8) == 0x2600) {
- K007342Regs[0][address & 7] = data;
- return;
- }
-
- switch (address)
- {
- case 0x2e80:
- soundlatch = data;
- M6809SetIRQLine(0, CPU_IRQSTATUS_ACK);
- return;
-
- case 0x2ec0:
- watchdog = 0;
- return;
-
- case 0x2f00:
- videoregs = data;
- return;
-
- case 0x2f40:
- bankswitch(data);
- return;
- }
-}
-
-static UINT8 rockrage_main_read(UINT16 address)
-{
- switch (address)
- {
- case 0x2e00:
- case 0x2e01:
- case 0x2e02:
- return DrvInputs[address & 3];
-
- case 0x2e03:
- return DrvDips[2];
-
- case 0x2e40:
- return DrvDips[1];
- }
-
- return 0;
-}
-
-static void rockrage_sound_write(UINT16 address, UINT8 data)
-{
- switch (address)
- {
- case 0x2000:
- vlm5030_data_write(0, data);
- return;
-
- case 0x4000:
- vlm5030_rst(0, (data >> 1) & 1);
- vlm5030_st(0, (data >> 0) & 1);
- return;
-
- case 0x6000:
- BurnYM2151SelectRegister(data);
- return;
-
- case 0x6001:
- BurnYM2151WriteRegister(data);
- return;
- }
-}
-
-static UINT8 rockrage_sound_read(UINT16 address)
-{
- switch (address)
- {
- case 0x3000:
- return (vlm5030_bsy(0) ? 1 : 0);
-
- case 0x5000:
- M6809SetIRQLine(0, CPU_IRQSTATUS_NONE);
- return soundlatch;
-
- case 0x6000:
- case 0x6001:
- return BurnYM2151ReadStatus();
- }
-
- return 0;
-}
-
-static UINT32 DrvVLM5030Sync(INT32 samples_rate)
-{
- return (samples_rate * M6809TotalCycles()) / 25000;
-}
-
-static void rockrage_tile_callback(INT32 layer, INT32 bank, INT32 *code, INT32 *color, INT32 */*flags*/)
-{
- if (layer == 1) {
- *code |= ((*color & 0x40) << 2) | ((bank & 0x01) << 9);
- } else {
- *code |= ((*color & 0x40) << 2) | ((bank & 0x03) << 10) | ((videoregs & 0x04) << 7) | ((videoregs & 0x08) << 9);
- }
-
- *color = (layer * 0x10) + (*color & 0xf);
-}
-
-static void rockrage_sprite_callback(INT32 *code, INT32 *color)
-{
- *code |= ((*color & 0x40) << 2) | ((*color & 0x80) << 1) * ((videoregs & 0x03) << 1);
- *code = (*code << 2) | ((*color & 0x30) >> 4);
- *color = 0x20 + (*color & 0x0f);
-}
-
-static INT32 DrvDoReset(INT32 clear_ram)
-{
- if (clear_ram) {
- memset (AllRam, 0, RamEnd - AllRam);
- }
-
- HD6309Open(0);
- HD6309Reset();
- HD6309Close();
-
- M6809Open(0);
- M6809Reset();
- M6809Close();
-
- BurnYM2151Reset();
- vlm5030Reset(0);
-
- K007342Reset();
-
- HD6309Bank = 0;
- soundlatch = 0;
- videoregs = 0;
-
- HiscoreReset();
-
- return 0;
-}
-
-static INT32 MemIndex()
-{
- UINT8 *Next; Next = AllMem;
-
- DrvHD6309ROM = Next; Next += 0x020000;
- DrvM6809ROM = Next; Next += 0x010000;
-
- DrvGfxROM0 = Next; Next += 0x080000;
- DrvGfxROM1 = Next; Next += 0x080000;
-
- DrvVLMROM = Next; Next += 0x008000;
-
- DrvLutPROM = Next; Next += 0x000300;
-;
- DrvPalette = (UINT32*)Next; Next += 0x300 * sizeof(UINT32);
-
- AllRam = Next;
-
- DrvHD6309RAM = Next; Next += 0x002000;
- DrvM6809RAM = Next; Next += 0x000800;
- DrvPalRAM = Next; Next += 0x000100;
-
- K007342VidRAM[0] = Next; Next += 0x002000;
- K007342ScrRAM[0] = Next; Next += 0x000200;
-
- K007420RAM[0] = Next; Next += 0x000200;
-
- RamEnd = Next;
- MemEnd = Next;
-
- return 0;
-}
-
-static void DrvGfxExpand(UINT8 *src, INT32 len) // 64, 32
-{
- for (INT32 i = (len - 1) * 2; i >= 0; i-=2) {
- src[i+0] = src[i/2] >> 4;
- src[i+1] = src[i/2] & 0xf;
- }
-}
-
-static INT32 DrvInit()
-{
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(DrvHD6309ROM + 0x08000, 0, 1)) return 1;
- if (BurnLoadRom(DrvHD6309ROM + 0x10000, 1, 1)) return 1;
-
- if (BurnLoadRom(DrvM6809ROM + 0x08000, 2, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x00001, 3, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x00000, 4, 2)) return 1;
-
- if (BurnDrvGetFlags() & BDF_PROTOTYPE)
- {
- if (BurnLoadRom(DrvGfxROM0 + 0x20001, 5, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x20000, 6, 2)) return 1;
-
- if (BurnLoadRom(DrvGfxROM1 + 0x00000, 7, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x10000, 8, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x20000, 9, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x30000, 10, 1)) return 1;
-
- if (BurnLoadRom(DrvLutPROM + 0x00000, 11, 1)) return 1;
- if (BurnLoadRom(DrvLutPROM + 0x00100, 12, 1)) return 1;
- if (BurnLoadRom(DrvLutPROM + 0x00200, 13, 1)) return 1;
-
- if (BurnLoadRom(DrvVLMROM + 0x00000, 14, 1)) return 1;
- }
- else
- {
- if (BurnLoadRom(DrvGfxROM1 + 0x00000, 5, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x20000, 6, 1)) return 1;
-
- if (BurnLoadRom(DrvLutPROM + 0x00000, 7, 1)) return 1;
- if (BurnLoadRom(DrvLutPROM + 0x00100, 8, 1)) return 1;
- if (BurnLoadRom(DrvLutPROM + 0x00200, 9, 1)) return 1;
-
- if (BurnLoadRom(DrvVLMROM + 0x00000, 10, 1)) return 1;
- }
-
- DrvGfxExpand(DrvGfxROM0, 0x40000);
- DrvGfxExpand(DrvGfxROM1, 0x40000);
- }
-
- HD6309Init(0);
- HD6309Open(0);
- HD6309MapMemory(K007342VidRAM[0], 0x0000, 0x1fff, MAP_RAM);
- HD6309MapMemory(K007420RAM[0], 0x2000, 0x21ff, MAP_RAM);
- HD6309MapMemory(K007342ScrRAM[0], 0x2200, 0x23ff, MAP_RAM);
- HD6309MapMemory(DrvPalRAM, 0x2400, 0x24ff, MAP_RAM);
- HD6309MapMemory(DrvHD6309RAM, 0x4000, 0x5fff, MAP_RAM);
- HD6309MapMemory(DrvHD6309ROM + 0x08000, 0x8000, 0xffff, MAP_ROM);
- HD6309SetWriteHandler(rockrage_main_write);
- HD6309SetReadHandler(rockrage_main_read);
- HD6309Close();
-
- M6809Init(1);
- M6809Open(0);
- M6809MapMemory(DrvM6809RAM, 0x7000, 0x77ff, MAP_RAM);
- M6809MapMemory(DrvM6809ROM + 0x08000, 0x8000, 0xffff, MAP_ROM);
- M6809SetWriteHandler(rockrage_sound_write);
- M6809SetReadHandler(rockrage_sound_read);
- M6809Close();
-
- BurnYM2151Init(3579545);
- BurnYM2151SetRoute(BURN_SND_YM2151_YM2151_ROUTE_1, 0.60, BURN_SND_ROUTE_LEFT);
- BurnYM2151SetRoute(BURN_SND_YM2151_YM2151_ROUTE_2, 0.60, BURN_SND_ROUTE_RIGHT);
-
- vlm5030Init(0, 3579545, DrvVLM5030Sync, DrvVLMROM, 0x8000, 1);
- vlm5030SetAllRoutes(0, 1.20, BURN_SND_ROUTE_BOTH);
-
- K007342Init(DrvGfxROM0, rockrage_tile_callback);
- K007342SetOffsets(0, 16);
-
- K007420Init(0x3ff, rockrage_sprite_callback);
- K007420SetOffsets(0, 16);
-
- GenericTilesInit();
-
- DrvDoReset(1);
-
- return 0;
-}
-
-static INT32 DrvExit()
-{
- GenericTilesExit();
-
- M6809Exit();
- HD6309Exit();
-
- vlm5030Exit();
- BurnYM2151Exit();
-
- BurnFree (AllMem);
-
- return 0;
-}
-
-static void DrvPaletteInit()
-{
- UINT32 pens[0x40];
- UINT16 *p = (UINT16*)DrvPalRAM;
-
- for (INT32 i = 0; i < 0x80 / 2; i++) {
- INT32 r = (p[i] & 0x1f);
- INT32 g = (p[i] >> 5) & 0x1f;
- INT32 b = (p[i] >> 10) & 0x1f;
-
- r = (r << 3) | (r >> 2);
- g = (g << 3) | (g >> 2);
- b = (b << 3) | (b >> 2);
-
- pens[i] = BurnHighCol(r,g,b,0);
- }
-
- for (INT32 i = 0; i < 0x300; i++) {
- DrvPalette[i] = pens[((i&0x300)/0x10)+(DrvLutPROM[i]&0xf)];
- }
-}
-
-static INT32 DrvDraw()
-{
- if (DrvRecalc) {
- DrvPaletteInit();
- DrvRecalc = 1;
- }
-
- if (~nBurnLayer & 1) BurnTransferClear();
-
- if (nBurnLayer & 1) K007342DrawLayer(0, 0 | K007342_OPAQUE, 0);
- if (nSpriteEnable & 1) K007420DrawSprites(DrvGfxROM1);
- if (nBurnLayer & 2) K007342DrawLayer(0, 1 | K007342_OPAQUE, 0);
- if (nBurnLayer & 4) K007342DrawLayer(1, 0, 0);
- if (nBurnLayer & 8) K007342DrawLayer(1, 1, 0);
-
- BurnTransferCopy(DrvPalette);
-
- return 0;
-}
-
-static INT32 DrvFrame()
-{
- watchdog++;
- if (watchdog >= 120) {
- DrvDoReset(0);
- }
-
- if (DrvReset) {
- DrvDoReset(1);
- }
-
- HD6309NewFrame();
- M6809NewFrame();
-
- {
- memset (DrvInputs, 0, 3);
- for (INT32 i = 0; i < 8; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- DrvInputs[2] ^= (DrvJoy3[i] & 1) << i;
- }
-
- DrvInputs[0] = (DrvInputs[0] & 0x1f) | (DrvDips[0] & 0xe0);
- }
-
- INT32 nInterleave = ((nBurnSoundLen) ? nBurnSoundLen : 1);
- INT32 nCyclesTotal[2] = { 3000000 / 60, 1500000 / 60 };
- INT32 nCyclesDone[2] = { 0, 0 };
- INT32 nSoundBufferPos = 0;
-
- HD6309Open(0);
- M6809Open(0);
-
- for (INT32 i = 0; i < nInterleave; i++)
- {
- nCyclesDone[0] += HD6309Run(nCyclesTotal[0] / nInterleave);
-
- nCyclesDone[1] += M6809Run(nCyclesTotal[1] / nInterleave);
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen / nInterleave;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- BurnYM2151Render(pSoundBuf, nSegmentLength);
- nSoundBufferPos += nSegmentLength;
- }
- }
-
- if (K007342_irq_enabled()) HD6309SetIRQLine(0, CPU_IRQSTATUS_AUTO);
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
- if (nSegmentLength) {
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- BurnYM2151Render(pSoundBuf, nSegmentLength);
- }
- vlm5030Update(0, pBurnSoundOut, nBurnSoundLen);
- }
-
- HD6309Close();
- M6809Close();
-
- if (pBurnDraw) {
- DrvDraw();
- }
-
- return 0;
-}
-
-static INT32 DrvScan(INT32 nAction,INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin) {
- *pnMin = 0x029704;
- }
-
- if (nAction & ACB_VOLATILE) {
- memset(&ba, 0, sizeof(ba));
- ba.Data = AllRam;
- ba.nLen = RamEnd - AllRam;
- ba.szName = "All RAM";
- BurnAcb(&ba);
- }
-
- if (nAction & ACB_DRIVER_DATA) {
- HD6309Scan(nAction);
- M6809Scan(nAction);
-
- BurnYM2151Scan(nAction);
- vlm5030Scan(nAction);
-
- K007342Scan(nAction);
-
- SCAN_VAR(HD6309Bank);
- SCAN_VAR(soundlatch);
- SCAN_VAR(videoregs);
- }
-
- if (nAction & ACB_WRITE) {
- HD6309Open(0);
- bankswitch(HD6309Bank);
- HD6309Close();
- }
-
- return 0;
-}
-
-
-// Rock'n Rage (World)
-
-static struct BurnRomInfo rockrageRomDesc[] = {
- { "620q01.16c", 0x08000, 0x0ddb5ef5, 1 | BRF_PRG | BRF_ESS }, // 0 HD6309 Code
- { "620q02.15c", 0x10000, 0xb4f6e346, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "620k03.11c", 0x08000, 0x9fbefe82, 2 | BRF_PRG | BRF_ESS }, // 2 M6809 Code
-
- { "620k05.rom", 0x20000, 0x145d387c, 3 | BRF_GRA }, // 3 Tiles
- { "620k06.rom", 0x20000, 0x7fa2c57c, 3 | BRF_GRA }, // 4
-
- { "620k11.rom", 0x20000, 0x70449239, 4 | BRF_GRA }, // 5 Sprites
- { "620l10.8g", 0x20000, 0x06d108e0, 4 | BRF_GRA }, // 6
-
- { "620k07.13g", 0x00100, 0xb6135ee0, 5 | BRF_GRA }, // 7 Color Lookup Tables
- { "620k08.12g", 0x00100, 0xb499800c, 5 | BRF_GRA }, // 8
- { "620k09.11g", 0x00100, 0x9f0e0608, 5 | BRF_GRA }, // 9
-
- { "620k04.6e", 0x08000, 0x8be969f3, 6 | BRF_GRA }, // 10 VLM5030 Samples
-};
-
-STD_ROM_PICK(rockrage)
-STD_ROM_FN(rockrage)
-
-struct BurnDriver BurnDrvRockrage = {
- "rockrage", NULL, NULL, NULL, "1986",
- "Rock'n Rage (World)\0", NULL, "Konami", "GX620",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_KONAMI, GBF_SCRFIGHT, 0,
- NULL, rockrageRomInfo, rockrageRomName, NULL, NULL, RockrageInputInfo, RockrageDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x300,
- 256, 224, 4, 3
-};
-
-
-// Rock'n Rage (prototype?)
-
-static struct BurnRomInfo rockrageaRomDesc[] = {
- { "620n01.16c", 0x10000, 0xf89f56ea, 1 | BRF_PRG | BRF_ESS }, // 0 HD6309 Code
- { "620n02.15c", 0x10000, 0x5bc1f1cf, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "620k03.11c", 0x08000, 0x9fbefe82, 2 | BRF_PRG | BRF_ESS }, // 2 M6809 Code
-
- { "620d05a.16g", 0x10000, 0x4d53fde9, 3 | BRF_GRA }, // 3 Tiles
- { "620d06a.15g", 0x10000, 0x8cc05d4b, 3 | BRF_GRA }, // 4
- { "620d05b.16f", 0x10000, 0x69f4599f, 3 | BRF_GRA }, // 5
- { "620d06b.15f", 0x10000, 0x3892d41d, 3 | BRF_GRA }, // 6
-
- { "620g11a.7g", 0x10000, 0x0ef40c2c, 4 | BRF_GRA }, // 7 Sprites
- { "620d11b.7f", 0x10000, 0x8f116cbf, 4 | BRF_GRA }, // 8
- { "620d10a.8g", 0x10000, 0x4789ae7b, 4 | BRF_GRA }, // 9
- { "620g10b.8f", 0x10000, 0x1618854a, 4 | BRF_GRA }, // 10
-
- { "620k07.13g", 0x00100, 0xb6135ee0, 5 | BRF_GRA }, // 11 Color Lookup Tables
- { "620k08.12g", 0x00100, 0xb499800c, 5 | BRF_GRA }, // 12
- { "620k09.11g", 0x00100, 0x9f0e0608, 5 | BRF_GRA }, // 13
-
- { "620k04.6e", 0x08000, 0x8be969f3, 6 | BRF_GRA }, // 14 VLM5030 Samples
-};
-
-STD_ROM_PICK(rockragea)
-STD_ROM_FN(rockragea)
-
-struct BurnDriver BurnDrvRockragea = {
- "rockragea", "rockrage", NULL, NULL, "1986",
- "Rock'n Rage (prototype?)\0", NULL, "Konami", "GX620",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_PROTOTYPE | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_KONAMI, GBF_SCRFIGHT, 0,
- NULL, rockrageaRomInfo, rockrageaRomName, NULL, NULL, RockrageInputInfo, RockrageDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x300,
- 256, 224, 4, 3
-};
-
-
-// Koi no Hotrock (Japan)
-
-static struct BurnRomInfo rockragejRomDesc[] = {
- { "620k01.16c", 0x08000, 0x4f5171f7, 1 | BRF_PRG | BRF_ESS }, // 0 HD6309 Code
- { "620k02.15c", 0x10000, 0x04c4d8f7, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "620k03.11c", 0x08000, 0x9fbefe82, 2 | BRF_PRG | BRF_ESS }, // 2 M6809 Code
-
- { "620k05.16g", 0x20000, 0xca9d9346, 3 | BRF_GRA }, // 3 Tiles
- { "620k06.15g", 0x20000, 0xc0e2b35c, 3 | BRF_GRA }, // 4
-
- { "620k11.7g", 0x20000, 0x7430f6e9, 4 | BRF_GRA }, // 5 Sprites
- { "620k10.8g", 0x20000, 0x0d1a95ab, 4 | BRF_GRA }, // 6
-
- { "620k07.13g", 0x00100, 0xb6135ee0, 5 | BRF_GRA }, // 7 Color Lookup Tables
- { "620k08.12g", 0x00100, 0xb499800c, 5 | BRF_GRA }, // 8
- { "620k09.11g", 0x00100, 0x9f0e0608, 5 | BRF_GRA }, // 9
-
- { "620k04.6e", 0x08000, 0x8be969f3, 6 | BRF_GRA }, // 10 VLM5030 Samples
-};
-
-STD_ROM_PICK(rockragej)
-STD_ROM_FN(rockragej)
-
-struct BurnDriver BurnDrvRockragej = {
- "rockragej", "rockrage", NULL, NULL, "1986",
- "Koi no Hotrock (Japan)\0", NULL, "Konami", "GX620",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_KONAMI, GBF_SCRFIGHT, 0,
- NULL, rockragejRomInfo, rockragejRomName, NULL, NULL, RockrageInputInfo, RockrageDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x300,
- 256, 224, 4, 3
-};
diff --git a/jan/src/burn/drv/konami/d_rocnrope.cpp b/jan/src/burn/drv/konami/d_rocnrope.cpp
deleted file mode 100644
index 3d99f332a..000000000
--- a/jan/src/burn/drv/konami/d_rocnrope.cpp
+++ /dev/null
@@ -1,723 +0,0 @@
-// FB Alpha Rock'n Rope driver module
-// Based on MAME driver by Chris Hardy
-
-#include "tiles_generic.h"
-#include "m6809_intf.h"
-#include "z80_intf.h"
-#include "timeplt_snd.h"
-
-static UINT8 *AllMem;
-static UINT8 *MemEnd;
-static UINT8 *AllRam;
-static UINT8 *RamEnd;
-static UINT8 *DrvM6809ROM;
-static UINT8 *DrvM6809ROMDec;
-static UINT8 *DrvZ80ROM;
-static UINT8 *DrvGfxROM0;
-static UINT8 *DrvGfxROM1;
-static UINT8 *DrvColPROM;
-static UINT8 *DrvVidRAM;
-static UINT8 *DrvColRAM;
-static UINT8 *DrvM6809RAM;
-static UINT8 *DrvZ80RAM;
-static UINT8 *DrvSprRAM;
-
-static INT16 *pAY8910Buffer[6];
-
-static UINT32 *DrvPalette;
-static UINT8 DrvRecalc;
-
-static UINT8 irq_enable;
-
-static UINT8 DrvJoy1[8];
-static UINT8 DrvJoy2[8];
-static UINT8 DrvJoy3[8];
-static UINT8 DrvDips[3];
-static UINT8 DrvInputs[3];
-static UINT8 DrvReset;
-
-static INT32 watchdog;
-
-static struct BurnInputInfo RocnropeInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy1 + 0, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 3, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy2 + 2, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy2 + 3, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy2 + 0, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy2 + 1, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy2 + 4, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy2 + 5, "p1 fire 2" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy1 + 1, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy1 + 4, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvJoy3 + 2, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy3 + 3, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy3 + 0, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy3 + 1, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy3 + 4, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy3 + 5, "p2 fire 2" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service", BIT_DIGITAL, DrvJoy1 + 2, "service" },
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip" },
- {"Dip C", BIT_DIPSWITCH, DrvDips + 2, "dip" },
-};
-
-STDINPUTINFO(Rocnrope)
-
-static struct BurnDIPInfo RocnropeDIPList[]=
-{
- {0x12, 0xff, 0xff, 0xff, NULL },
- {0x13, 0xff, 0xff, 0x5b, NULL },
- {0x14, 0xff, 0xff, 0x96, NULL },
-
- {0 , 0xfe, 0 , 16, "Coin A" },
- {0x12, 0x01, 0x0f, 0x02, "4 Coins 1 Credits" },
- {0x12, 0x01, 0x0f, 0x05, "3 Coins 1 Credits" },
- {0x12, 0x01, 0x0f, 0x08, "2 Coins 1 Credits" },
- {0x12, 0x01, 0x0f, 0x04, "3 Coins 2 Credits" },
- {0x12, 0x01, 0x0f, 0x01, "4 Coins 3 Credits" },
- {0x12, 0x01, 0x0f, 0x0f, "1 Coin 1 Credits" },
- {0x12, 0x01, 0x0f, 0x03, "3 Coins 4 Credits" },
- {0x12, 0x01, 0x0f, 0x07, "2 Coins 3 Credits" },
- {0x12, 0x01, 0x0f, 0x0e, "1 Coin 2 Credits" },
- {0x12, 0x01, 0x0f, 0x06, "2 Coins 5 Credits" },
- {0x12, 0x01, 0x0f, 0x0d, "1 Coin 3 Credits" },
- {0x12, 0x01, 0x0f, 0x0c, "1 Coin 4 Credits" },
- {0x12, 0x01, 0x0f, 0x0b, "1 Coin 5 Credits" },
- {0x12, 0x01, 0x0f, 0x0a, "1 Coin 6 Credits" },
- {0x12, 0x01, 0x0f, 0x09, "1 Coin 7 Credits" },
- {0x12, 0x01, 0x0f, 0x00, "Free Play" },
-
- {0 , 0xfe, 0 , 16, "Coin B" },
- {0x12, 0x01, 0xf0, 0x20, "4 Coins 1 Credits" },
- {0x12, 0x01, 0xf0, 0x50, "3 Coins 1 Credits" },
- {0x12, 0x01, 0xf0, 0x80, "2 Coins 1 Credits" },
- {0x12, 0x01, 0xf0, 0x40, "3 Coins 2 Credits" },
- {0x12, 0x01, 0xf0, 0x10, "4 Coins 3 Credits" },
- {0x12, 0x01, 0xf0, 0xf0, "1 Coin 1 Credits" },
- {0x12, 0x01, 0xf0, 0x30, "3 Coins 4 Credits" },
- {0x12, 0x01, 0xf0, 0x70, "2 Coins 3 Credits" },
- {0x12, 0x01, 0xf0, 0xe0, "1 Coin 2 Credits" },
- {0x12, 0x01, 0xf0, 0x60, "2 Coins 5 Credits" },
- {0x12, 0x01, 0xf0, 0xd0, "1 Coin 3 Credits" },
- {0x12, 0x01, 0xf0, 0xc0, "1 Coin 4 Credits" },
- {0x12, 0x01, 0xf0, 0xb0, "1 Coin 5 Credits" },
- {0x12, 0x01, 0xf0, 0xa0, "1 Coin 6 Credits" },
- {0x12, 0x01, 0xf0, 0x90, "1 Coin 7 Credits" },
- {0x12, 0x01, 0xf0, 0x00, "No Coin B" },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x13, 0x01, 0x03, 0x03, "3" },
- {0x13, 0x01, 0x03, 0x02, "4" },
- {0x13, 0x01, 0x03, 0x01, "5" },
- {0x13, 0x01, 0x03, 0x00, "255 (Cheat)" },
-
- {0 , 0xfe, 0 , 2, "Cabinet" },
- {0x13, 0x01, 0x04, 0x00, "Upright" },
- {0x13, 0x01, 0x04, 0x04, "Cocktail" },
-
- {0 , 0xfe, 0 , 16, "Difficulty" },
- {0x13, 0x01, 0x78, 0x78, "1 (Easy)" },
- {0x13, 0x01, 0x78, 0x70, "2" },
- {0x13, 0x01, 0x78, 0x68, "3" },
- {0x13, 0x01, 0x78, 0x60, "4" },
- {0x13, 0x01, 0x78, 0x58, "5" },
- {0x13, 0x01, 0x78, 0x50, "6" },
- {0x13, 0x01, 0x78, 0x48, "7" },
- {0x13, 0x01, 0x78, 0x40, "8" },
- {0x13, 0x01, 0x78, 0x38, "9" },
- {0x13, 0x01, 0x78, 0x30, "10" },
- {0x13, 0x01, 0x78, 0x28, "11" },
- {0x13, 0x01, 0x78, 0x20, "12" },
- {0x13, 0x01, 0x78, 0x18, "13" },
- {0x13, 0x01, 0x78, 0x10, "14" },
- {0x13, 0x01, 0x78, 0x08, "15" },
- {0x13, 0x01, 0x78, 0x00, "16 (Difficult)" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x13, 0x01, 0x80, 0x80, "Off" },
- {0x13, 0x01, 0x80, 0x00, "On" },
-
- {0 , 0xfe, 0 , 7, "First Bonus" },
- {0x14, 0x01, 0x07, 0x06, "20000" },
- {0x14, 0x01, 0x07, 0x05, "30000" },
- {0x14, 0x01, 0x07, 0x04, "40000" },
- {0x14, 0x01, 0x07, 0x03, "50000" },
- {0x14, 0x01, 0x07, 0x02, "60000" },
- {0x14, 0x01, 0x07, 0x01, "70000" },
- {0x14, 0x01, 0x07, 0x00, "80000" },
-
- {0 , 0xfe, 0 , 5, "Repeated Bonus" },
- {0x14, 0x01, 0x38, 0x20, "40000" },
- {0x14, 0x01, 0x38, 0x18, "50000" },
- {0x14, 0x01, 0x38, 0x10, "60000" },
- {0x14, 0x01, 0x38, 0x08, "70000" },
- {0x14, 0x01, 0x38, 0x00, "80000" },
-
- {0 , 0xfe, 0 , 2, "Grant Repeated Bonus" },
- {0x14, 0x01, 0x40, 0x40, "No" },
- {0x14, 0x01, 0x40, 0x00, "Yes" },
-};
-
-STDDIPINFO(Rocnrope)
-
-static UINT8 rocnrope_read(UINT16 address)
-{
- switch (address)
- {
- case 0x3080:
- return DrvInputs[0];
-
- case 0x3081:
- return DrvInputs[1];
-
- case 0x3082:
- return DrvInputs[2];
-
- case 0x3083:
- return DrvDips[0];
-
- case 0x3000:
- return DrvDips[1];
-
- case 0x3100:
- return DrvDips[2];
- }
-
- return 0;
-}
-
-static void rocnrope_write(UINT16 address, UINT8 data)
-{
- switch (address)
- {
- case 0x8000:
- watchdog = 0;
- return;
-
- case 0x8080:
- // flipscreen = ~data & 0x01;
- return;
-
- case 0x8081:
- ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
- return;
-
- case 0x8082:
- case 0x8083:
- case 0x8084:
- return;
-
- case 0x8087:
- irq_enable = data & 0x01;
- if (!irq_enable) {
- M6809SetIRQLine(0, CPU_IRQSTATUS_NONE);
- }
- return;
-
- case 0x8100:
- TimepltSndSoundlatch(data);
- return;
-
- case 0x8182: // write irq vectors!
- case 0x8183:
- case 0x8184:
- case 0x8185:
- case 0x8186:
- case 0x8187:
- case 0x8188:
- case 0x8189:
- case 0x818a:
- case 0x818b:
- case 0x818c:
- case 0x818d:
- DrvM6809ROM[0xfff0 + (address & 0xf)] = data;
- return;
- }
-}
-
-static INT32 DrvDoReset(INT32 clear_ram)
-{
- if (clear_ram) {
- memset(AllRam, 0, RamEnd - AllRam);
- }
-
- M6809Open(0);
- M6809Reset();
- M6809Close();
-
- TimepltSndReset();
-
- irq_enable = 0;
- watchdog = 0;
-
- HiscoreReset();
-
- return 0;
-}
-
-static INT32 MemIndex()
-{
- UINT8 *Next; Next = AllMem;
-
- DrvM6809ROM = Next; Next += 0x010000;
- DrvM6809ROMDec = Next; Next += 0x010000;
- DrvZ80ROM = Next; Next += 0x003000;
-
- DrvGfxROM0 = Next; Next += 0x010000;
- DrvGfxROM1 = Next; Next += 0x008000;
-
- DrvColPROM = Next; Next += 0x000220;
-
- DrvPalette = (UINT32*)Next; Next += 0x0200 * sizeof(UINT32);
-
- AllRam = Next;
-
- DrvM6809RAM = Next; Next += 0x001010;
- DrvSprRAM = Next; Next += 0x000800;
- DrvColRAM = Next; Next += 0x000400;
- DrvVidRAM = Next; Next += 0x000400;
- DrvZ80RAM = Next; Next += 0x000400;
-
- RamEnd = Next;
-
- pAY8910Buffer[0] = (INT16*)Next; Next += nBurnSoundLen * sizeof(INT16);
- pAY8910Buffer[1] = (INT16*)Next; Next += nBurnSoundLen * sizeof(INT16);
- pAY8910Buffer[2] = (INT16*)Next; Next += nBurnSoundLen * sizeof(INT16);
- pAY8910Buffer[3] = (INT16*)Next; Next += nBurnSoundLen * sizeof(INT16);
- pAY8910Buffer[4] = (INT16*)Next; Next += nBurnSoundLen * sizeof(INT16);
- pAY8910Buffer[5] = (INT16*)Next; Next += nBurnSoundLen * sizeof(INT16);
-
- MemEnd = Next;
-
- return 0;
-}
-
-static INT32 DrvGfxDecode()
-{
- INT32 Plane0[4] = { 0x10004, 0x10000, 4, 0 };
- INT32 Plane1[4] = { 0x20004, 0x20000, 4, 0 };
- INT32 XOffs[16] = { STEP4(0,1), STEP4(64,1), STEP4(128,1), STEP4(192,1) };
- INT32 YOffs[16] = { STEP8(0,8), STEP8(256,8) };
-
- UINT8 *tmp = (UINT8*)BurnMalloc(0x8000);
- if (tmp == NULL) {
- return 1;
- }
-
- memcpy (tmp, DrvGfxROM0, 0x8000);
-
- GfxDecode(0x100, 4, 16, 16, Plane1, XOffs, YOffs, 0x200, tmp, DrvGfxROM0);
-
- memcpy (tmp, DrvGfxROM1, 0x4000);
-
- GfxDecode(0x200, 4, 8, 8, Plane0, XOffs, YOffs, 0x080, tmp, DrvGfxROM1);
-
- BurnFree (tmp);
-
- return 0;
-}
-
-static void M6809Decode()
-{
- for (INT32 i = 0x6000; i < 0x10000; i++) {
- DrvM6809ROMDec[i] = DrvM6809ROM[i] ^ (((i&2)?0x80:0x20)|((i&8)?0x08:0x02));
- }
-}
-
-static INT32 DrvInit()
-{
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(DrvM6809ROM + 0x06000, 0, 1)) return 1;
- if (BurnLoadRom(DrvM6809ROM + 0x08000, 1, 1)) return 1;
- if (BurnLoadRom(DrvM6809ROM + 0x0a000, 2, 1)) return 1;
- if (BurnLoadRom(DrvM6809ROM + 0x0c000, 3, 1)) return 1;
- if (BurnLoadRom(DrvM6809ROM + 0x0e000, 4, 1)) return 1;
-
- if (BurnLoadRom(DrvZ80ROM + 0x00000, 5, 1)) return 1;
- if (BurnLoadRom(DrvZ80ROM + 0x01000, 6, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x00000, 7, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x02000, 8, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x04000, 9, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x06000, 10, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM1 + 0x00000, 11, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x02000, 12, 1)) return 1;
-
- if (BurnLoadRom(DrvColPROM + 0x00000, 13, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x00020, 14, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x00120, 15, 1)) return 1;
-
- M6809Decode();
- DrvGfxDecode();
-
- DrvM6809ROMDec[0x703d] = 0x98; // Patch bad opcode
-
- // allow us to use Color Prom data as transparency table for sprites
- for (INT32 i = 0; i < 0x200; i++) {
- DrvColPROM[0x20 + i] &= 0xf;
- }
- }
-
- M6809Init(1);
- M6809Open(0);
- M6809MapMemory(DrvSprRAM, 0x4000, 0x47ff, MAP_RAM);
- M6809MapMemory(DrvColRAM, 0x4800, 0x4bff, MAP_RAM);
- M6809MapMemory(DrvVidRAM, 0x4c00, 0x4fff, MAP_RAM);
- M6809MapMemory(DrvM6809RAM, 0x5000, 0x5fff, MAP_RAM);
- M6809MapMemory(DrvM6809ROM + 0x6000, 0x6000, 0xffff, MAP_READ);
- M6809MapMemory(DrvM6809ROMDec + 0x6000, 0x6000, 0xffff, MAP_FETCH);
- M6809SetWriteHandler(rocnrope_write);
- M6809SetReadHandler(rocnrope_read);
- M6809Close();
-
- TimepltSndInit(DrvZ80ROM, DrvZ80RAM, 0);
-
- GenericTilesInit();
-
- DrvDoReset(1);
-
- return 0;
-}
-
-static INT32 DrvExit()
-{
- GenericTilesExit();
-
- M6809Exit();
-
- TimepltSndExit();
-
- BurnFree (AllMem);
-
- return 0;
-}
-
-static void DrvPaletteInit()
-{
- UINT32 pens[16];
-
- for (INT32 i = 0; i < 16; i++)
- {
- INT32 bit0 = (DrvColPROM[i] >> 0) & 0x01;
- INT32 bit1 = (DrvColPROM[i] >> 1) & 0x01;
- INT32 bit2 = (DrvColPROM[i] >> 2) & 0x01;
- INT32 r = bit2 * 151 + bit1 * 71 + bit0 * 33;
-
- bit0 = (DrvColPROM[i] >> 3) & 0x01;
- bit1 = (DrvColPROM[i] >> 4) & 0x01;
- bit2 = (DrvColPROM[i] >> 5) & 0x01;
- INT32 g = bit2 * 151 + bit1 * 71 + bit0 * 33;
-
- bit0 = (DrvColPROM[i] >> 6) & 0x01;
- bit1 = (DrvColPROM[i] >> 7) & 0x01;
- INT32 b = bit1 * 174 + bit0 * 81;
-
- pens[i] = BurnHighCol(r,g,b,0);
- }
-
- for (INT32 i = 0; i < 0x200; i++)
- {
- DrvPalette[i] = pens[DrvColPROM[0x20 + i]];
- }
-}
-
-static void draw_layer()
-{
- for (INT32 offs = (32 * 2); offs < (32 * 32) - (2 * 32); offs++)
- {
- INT32 sx = (offs & 0x1f) * 8;
- INT32 sy = (offs / 0x20) * 8;
-
- INT32 attr = DrvColRAM[offs];
- INT32 code = DrvVidRAM[offs] + ((attr & 0x80) << 1);
- INT32 color = attr & 0x0f;
- INT32 flipx = attr & 0x40;
- INT32 flipy = attr & 0x20;
-
- if (flipy) {
- if (flipx) {
- Render8x8Tile_FlipXY(pTransDraw, code, sx, sy - 16, color, 4, 0x100, DrvGfxROM1);
- } else {
- Render8x8Tile_FlipY(pTransDraw, code, sx, sy - 16, color, 4, 0x100, DrvGfxROM1);
- }
- } else {
- if (flipx) {
- Render8x8Tile_FlipX(pTransDraw, code, sx, sy - 16, color, 4, 0x100, DrvGfxROM1);
- } else {
- Render8x8Tile(pTransDraw, code, sx, sy - 16, color, 4, 0x100, DrvGfxROM1);
- }
- }
- }
-}
-
-static void draw_sprites()
-{
- for (INT32 offs = 0x30 - 2; offs >= 0; offs -= 2)
- {
- INT32 attr = DrvSprRAM[0x000 + offs + 0];
- INT32 code = DrvSprRAM[0x400 + offs + 1];
- INT32 sx = DrvSprRAM[0x400 + offs + 0];
- INT32 sy = DrvSprRAM[0x000 + offs + 1];
- INT32 color = attr & 0x0f;
- INT32 flipx = attr & 0x40;
- INT32 flipy =~attr & 0x80;
-
- RenderTileTranstab(pTransDraw, DrvGfxROM0, code, color * 16, 0, 240 - sx, sy - 16, flipx, flipy, 16, 16, DrvColPROM + 0x20);
- }
-}
-
-static INT32 DrvDraw()
-{
- if (DrvRecalc) {
- DrvPaletteInit();
- DrvRecalc = 0;
- }
-
- draw_layer();
- draw_sprites();
-
- BurnTransferCopy(DrvPalette);
-
- return 0;
-}
-
-static INT32 DrvFrame()
-{
- watchdog++;
- if (watchdog >= 180) {
- DrvDoReset(0);
- }
-
- if (DrvReset) {
- DrvDoReset(1);
- }
-
- ZetNewFrame();
-
- {
- memset (DrvInputs, 0xff, 3);
- for (INT32 i = 0; i < 8; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- DrvInputs[2] ^= (DrvJoy3[i] & 1) << i;
- }
-
- // Clear opposites
- if ((DrvInputs[1] & 0x0c) == 0) DrvInputs[1] |= 0x0c;
- if ((DrvInputs[1] & 0x03) == 0) DrvInputs[1] |= 0x03;
- if ((DrvInputs[2] & 0x0c) == 0) DrvInputs[2] |= 0x0c;
- if ((DrvInputs[2] & 0x03) == 0) DrvInputs[2] |= 0x03;
- }
-
- INT32 nInterleave = 256;
- INT32 nCyclesTotal[2] = { 1536000 / 60, 1789772 / 60 };
- INT32 nCyclesDone[2] = { 0, 0 };
- INT32 nSoundBufferPos = 0;
-
- M6809Open(0);
- ZetOpen(0);
-
- for (INT32 i = 0; i < nInterleave; i++)
- {
- INT32 nSegment = (nCyclesTotal[0] * (i + 1)) / nInterleave;
- nCyclesDone[0] += M6809Run(nSegment - nCyclesDone[0]);
- if (i == (nInterleave - 1) && irq_enable) M6809SetIRQLine(0, CPU_IRQSTATUS_ACK);
-
- nSegment = (nCyclesTotal[1] * i) / nInterleave;
- nCyclesDone[1] += ZetRun(nSegment - nCyclesDone[1]);
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen / nInterleave;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- TimepltSndUpdate(pAY8910Buffer, pSoundBuf, nSegmentLength);
- nSoundBufferPos += nSegmentLength;
- }
- }
-
- ZetClose();
- M6809Close();
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- TimepltSndUpdate(pAY8910Buffer, pSoundBuf, nSegmentLength);
- }
-
- if (pBurnDraw) {
- DrvDraw();
- }
-
- return 0;
-}
-
-static INT32 DrvScan(INT32 nAction,INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin) {
- *pnMin = 0x029521;
- }
-
- if (nAction & ACB_VOLATILE) {
- memset(&ba, 0, sizeof(ba));
-
- ba.Data = AllRam;
- ba.nLen = RamEnd - AllRam;
- ba.szName = "All Ram";
- BurnAcb(&ba);
-
- M6809Scan(nAction);
- ZetScan(nAction);
-
- TimepltSndScan(nAction, pnMin);
-
- SCAN_VAR(irq_enable);
- }
-
- // Read and write irq vectors
- if (nAction & ACB_READ) {
- memcpy (DrvM6809RAM + 0x1000, DrvM6809ROM + 0xfff2, 0x0c);
- }
-
- if (nAction & ACB_WRITE) {
- memcpy (DrvM6809ROM + 0xfff2, DrvM6809RAM + 0x1000, 0x0c);
- }
-
- return 0;
-}
-
-
-// Roc'n Rope
-
-static struct BurnRomInfo rocnropeRomDesc[] = {
- { "rr1.1h", 0x2000, 0x83093134, 1 | BRF_PRG | BRF_ESS }, // 0 M6809 Code
- { "rr2.2h", 0x2000, 0x75af8697, 1 | BRF_PRG | BRF_ESS }, // 1
- { "rr3.3h", 0x2000, 0xb21372b1, 1 | BRF_PRG | BRF_ESS }, // 2
- { "rr4.4h", 0x2000, 0x7acb2a05, 1 | BRF_PRG | BRF_ESS }, // 3
- { "rnr_h5.vid", 0x2000, 0x150a6264, 1 | BRF_PRG | BRF_ESS }, // 4
-
- { "rnr_7a.snd", 0x1000, 0x75d2c4e2, 2 | BRF_PRG | BRF_ESS }, // 5 Z80 Code
- { "rnr_8a.snd", 0x1000, 0xca4325ae, 2 | BRF_PRG | BRF_ESS }, // 6
-
- { "rnr_a11.vid", 0x2000, 0xafdaba5e, 3 | BRF_GRA }, // 7 Sprites
- { "rnr_a12.vid", 0x2000, 0x054cafeb, 3 | BRF_GRA }, // 8
- { "rnr_a9.vid", 0x2000, 0x9d2166b2, 3 | BRF_GRA }, // 9
- { "rnr_a10.vid", 0x2000, 0xaff6e22f, 3 | BRF_GRA }, // 10
-
- { "rnr_h12.vid", 0x2000, 0xe2114539, 4 | BRF_GRA }, // 11 Characters
- { "rnr_h11.vid", 0x2000, 0x169a8f3f, 4 | BRF_GRA }, // 12
-
- { "a17_prom.bin", 0x0020, 0x22ad2c3e, 5 | BRF_GRA }, // 13 Color PROMs
- { "b16_prom.bin", 0x0100, 0x750a9677, 5 | BRF_GRA }, // 14
- { "rocnrope.pr3", 0x0100, 0xb5c75a27, 5 | BRF_GRA }, // 15
-
- { "h100.6g", 0x0001, 0x00000000, 6 | BRF_OPT | BRF_NODUMP }, // 16 PALs
-};
-
-STD_ROM_PICK(rocnrope)
-STD_ROM_FN(rocnrope)
-
-struct BurnDriver BurnDrvRocnrope = {
- "rocnrope", NULL, NULL, NULL, "1983",
- "Roc'n Rope\0", NULL, "Konami", "GX364",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_KONAMI, GBF_PLATFORM, 0,
- NULL, rocnropeRomInfo, rocnropeRomName, NULL, NULL, RocnropeInputInfo, RocnropeDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x200,
- 224, 256, 3, 4
-};
-
-
-// Roc'n Rope (Kosuka)
-
-static struct BurnRomInfo rocnropekRomDesc[] = {
- { "rnr_h1.vid", 0x2000, 0x0fddc1f6, 1 | BRF_PRG | BRF_ESS }, // 0 M6809 Code
- { "rnr_h2.vid", 0x2000, 0xce9db49a, 1 | BRF_PRG | BRF_ESS }, // 1
- { "rnr_h3.vid", 0x2000, 0x6d278459, 1 | BRF_PRG | BRF_ESS }, // 2
- { "rnr_h4.vid", 0x2000, 0x9b2e5f2a, 1 | BRF_PRG | BRF_ESS }, // 3
- { "rnr_h5.vid", 0x2000, 0x150a6264, 1 | BRF_PRG | BRF_ESS }, // 4
-
- { "rnr_7a.snd", 0x1000, 0x75d2c4e2, 2 | BRF_PRG | BRF_ESS }, // 5 Z80 Code
- { "rnr_8a.snd", 0x1000, 0xca4325ae, 2 | BRF_PRG | BRF_ESS }, // 6
-
- { "rnr_a11.vid", 0x2000, 0xafdaba5e, 3 | BRF_GRA }, // 7 Sprites
- { "rnr_a12.vid", 0x2000, 0x054cafeb, 3 | BRF_GRA }, // 8
- { "rnr_a9.vid", 0x2000, 0x9d2166b2, 3 | BRF_GRA }, // 9
- { "rnr_a10.vid", 0x2000, 0xaff6e22f, 3 | BRF_GRA }, // 10
-
- { "rnr_h12.vid", 0x2000, 0xe2114539, 4 | BRF_GRA }, // 11 Characters
- { "rnr_h11.vid", 0x2000, 0x169a8f3f, 4 | BRF_GRA }, // 12
-
- { "a17_prom.bin", 0x0020, 0x22ad2c3e, 5 | BRF_GRA }, // 13 Color PROMs
- { "b16_prom.bin", 0x0100, 0x750a9677, 5 | BRF_GRA }, // 14
- { "rocnrope.pr3", 0x0100, 0xb5c75a27, 5 | BRF_GRA }, // 15
-
- { "h100.6g", 0x0001, 0x00000000, 6 | BRF_OPT | BRF_NODUMP }, // 16 PALs
-};
-
-STD_ROM_PICK(rocnropek)
-STD_ROM_FN(rocnropek)
-
-struct BurnDriver BurnDrvRocnropek = {
- "rocnropek", "rocnrope", NULL, NULL, "1983",
- "Roc'n Rope (Kosuka)\0", NULL, "Konami / Kosuka", "GX364",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_KONAMI, GBF_PLATFORM, 0,
- NULL, rocnropekRomInfo, rocnropekRomName, NULL, NULL, RocnropeInputInfo, RocnropeDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x200,
- 224, 256, 3, 4
-};
-
-
-// Ropeman (bootleg of Roc'n Rope)
-
-static struct BurnRomInfo ropemanRomDesc[] = {
- { "r1.1j", 0x2000, 0x6310a1fe, 1 | BRF_PRG | BRF_ESS }, // 0 M6809 Code
- { "r2.2j", 0x2000, 0x75af8697, 1 | BRF_PRG | BRF_ESS }, // 1
- { "r3.3j", 0x2000, 0xb21372b1, 1 | BRF_PRG | BRF_ESS }, // 2
- { "r4.4j", 0x2000, 0x7acb2a05, 1 | BRF_PRG | BRF_ESS }, // 3
- { "r5.5j", 0x2000, 0x150a6264, 1 | BRF_PRG | BRF_ESS }, // 4
-
- { "r12.7a", 0x1000, 0x75d2c4e2, 2 | BRF_PRG | BRF_ESS }, // 5 Z80 Code
- { "r13.8a", 0x1000, 0xca4325ae, 2 | BRF_PRG | BRF_ESS }, // 6
-
- { "r10.11a", 0x2000, 0xafdaba5e, 3 | BRF_GRA }, // 7 Sprites
- { "r11.12a", 0x2000, 0x054cafeb, 3 | BRF_GRA }, // 8
- { "r8.9a", 0x2000, 0x9d2166b2, 3 | BRF_GRA }, // 9
- { "r9.10a", 0x2000, 0xaff6e22f, 3 | BRF_GRA }, // 10
-
- { "r7.12j", 0x2000, 0xcd8ac4bf, 4 | BRF_GRA }, // 11 Characters
- { "r6.11j", 0x2000, 0x35891835, 4 | BRF_GRA }, // 12
-
- { "1.17a", 0x0020, 0x22ad2c3e, 5 | BRF_GRA }, // 13 Color PROMs
- { "2.16b", 0x0100, 0x750a9677, 5 | BRF_GRA }, // 14
- { "3.16g", 0x0100, 0xb5c75a27, 5 | BRF_GRA }, // 15
-
- { "pal10l8.6g", 0x0001, 0x00000000, 6 | BRF_OPT | BRF_NODUMP }, // 16 PALs
- { "n82s153.pal1.bin", 0x00eb, 0xbaebe804, 6 | BRF_OPT }, // 17
- { "n82s153.pal2.bin", 0x00eb, 0xa0e1b7a0, 6 | BRF_OPT }, // 18
-};
-
-STD_ROM_PICK(ropeman)
-STD_ROM_FN(ropeman)
-
-struct BurnDriver BurnDrvRopeman = {
- "ropeman", "rocnrope", NULL, NULL, "1983",
- "Ropeman (bootleg of Roc'n Rope)\0", NULL, "bootleg", "GX364",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG | BDF_ORIENTATION_VERTICAL | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_KONAMI, GBF_PLATFORM, 0,
- NULL, ropemanRomInfo, ropemanRomName, NULL, NULL, RocnropeInputInfo, RocnropeDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x200,
- 224, 256, 3, 4
-};
diff --git a/jan/src/burn/drv/konami/d_rollerg.cpp b/jan/src/burn/drv/konami/d_rollerg.cpp
deleted file mode 100644
index 1c7e625bf..000000000
--- a/jan/src/burn/drv/konami/d_rollerg.cpp
+++ /dev/null
@@ -1,611 +0,0 @@
-// FB Alpha Roller Games driver module
-// Based on MAME driver by Nicola Salmoria
-
-#include "tiles_generic.h"
-#include "z80_intf.h"
-#include "burn_ym3812.h"
-#include "konami_intf.h"
-#include "konamiic.h"
-#include "k053260.h"
-
-static UINT8 *AllMem;
-static UINT8 *AllRam;
-static UINT8 *RamEnd;
-static UINT8 *MemEnd;
-static UINT8 *DrvKonROM;
-static UINT8 *DrvZ80ROM;
-static UINT8 *DrvGfxROM0;
-static UINT8 *DrvGfxROM1;
-static UINT8 *DrvGfxROMExp0;
-static UINT8 *DrvGfxROMExp1;
-static UINT8 *DrvSndROM;
-static UINT8 *DrvKonRAM;
-static UINT8 *DrvPalRAM;
-static UINT8 *DrvZ80RAM;
-
-static UINT32 *DrvPalette;
-static UINT8 DrvRecalc;
-
-static INT32 readzoomroms;
-static UINT8 *nDrvBank;
-
-static UINT8 DrvJoy1[8];
-static UINT8 DrvJoy2[8];
-static UINT8 DrvJoy3[8];
-static UINT8 DrvDips[3];
-static UINT8 DrvInputs[3];
-static UINT8 DrvReset;
-
-static struct BurnInputInfo RollergInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy3 + 5, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 7, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy1 + 6, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy1 + 5, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy1 + 4, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy1 + 3, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy1 + 2, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy1 + 1, "p1 fire 2" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy3 + 4, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy2 + 7, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvJoy2 + 6, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy2 + 5, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy2 + 4, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy2 + 3, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy2 + 2, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy2 + 1, "p2 fire 2" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service", BIT_DIGITAL, DrvJoy3 + 7, "service" },
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip" },
- {"Dip C", BIT_DIPSWITCH, DrvDips + 2, "dip" },
-};
-
-STDINPUTINFO(Rollerg)
-
-static struct BurnDIPInfo RollergDIPList[]=
-{
- {0x12, 0xff, 0xff, 0xff, NULL },
- {0x13, 0xff, 0xff, 0x56, NULL },
- {0x14, 0xff, 0xff, 0x0f, NULL },
-
- {0 , 0xfe, 0 , 16, "Coin A" },
- {0x12, 0x01, 0x0f, 0x02, "4 Coins 1 Credit" },
- {0x12, 0x01, 0x0f, 0x05, "3 Coins 1 Credit" },
- {0x12, 0x01, 0x0f, 0x08, "2 Coins 1 Credit" },
- {0x12, 0x01, 0x0f, 0x04, "3 Coins 2 Credits" },
- {0x12, 0x01, 0x0f, 0x01, "4 Coins 3 Credits" },
- {0x12, 0x01, 0x0f, 0x0f, "1 Coin 1 Credit" },
- {0x12, 0x01, 0x0f, 0x03, "3 Coins 4 Credits" },
- {0x12, 0x01, 0x0f, 0x07, "2 Coins 3 Credits" },
- {0x12, 0x01, 0x0f, 0x0e, "1 Coin 2 Credits" },
- {0x12, 0x01, 0x0f, 0x06, "2 Coins 5 Credits" },
- {0x12, 0x01, 0x0f, 0x0d, "1 Coin 3 Credits" },
- {0x12, 0x01, 0x0f, 0x0c, "1 Coin 4 Credits" },
- {0x12, 0x01, 0x0f, 0x0b, "1 Coin 5 Credits" },
- {0x12, 0x01, 0x0f, 0x0a, "1 Coin 6 Credits" },
- {0x12, 0x01, 0x0f, 0x09, "1 Coin 7 Credits" },
- {0x12, 0x01, 0x0f, 0x00, "Free Play" },
-
- {0 , 0xfe, 0 , 16, "Coin B" },
- {0x12, 0x01, 0xf0, 0x20, "4 Coins 1 Credit" },
- {0x12, 0x01, 0xf0, 0x50, "3 Coins 1 Credit" },
- {0x12, 0x01, 0xf0, 0x80, "2 Coins 1 Credit" },
- {0x12, 0x01, 0xf0, 0x40, "3 Coins 2 Credits" },
- {0x12, 0x01, 0xf0, 0x10, "4 Coins 3 Credits" },
- {0x12, 0x01, 0xf0, 0xf0, "1 Coin 1 Credit" },
- {0x12, 0x01, 0xf0, 0x30, "3 Coins 4 Credits" },
- {0x12, 0x01, 0xf0, 0x70, "2 Coins 3 Credits" },
- {0x12, 0x01, 0xf0, 0xe0, "1 Coin 2 Credits" },
- {0x12, 0x01, 0xf0, 0x60, "2 Coins 5 Credits" },
- {0x12, 0x01, 0xf0, 0xd0, "1 Coin 3 Credits" },
- {0x12, 0x01, 0xf0, 0xc0, "1 Coin 4 Credits" },
- {0x12, 0x01, 0xf0, 0xb0, "1 Coin 5 Credits" },
- {0x12, 0x01, 0xf0, 0xa0, "1 Coin 6 Credits" },
- {0x12, 0x01, 0xf0, 0x90, "1 Coin 7 Credits" },
- {0x12, 0x01, 0xf0, 0x00, "No Credits" },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x13, 0x01, 0x03, 0x03, "1" },
- {0x13, 0x01, 0x03, 0x02, "2" },
- {0x13, 0x01, 0x03, 0x01, "3" },
- {0x13, 0x01, 0x03, 0x00, "5" },
-
- {0 , 0xfe, 0 , 4, "Bonus Energy" },
- {0x13, 0x01, 0x18, 0x00, "1/2 for Stage Winner" },
- {0x13, 0x01, 0x18, 0x08, "1/4 for Stage Winner" },
- {0x13, 0x01, 0x18, 0x10, "1/4 for Cycle Winner" },
- {0x13, 0x01, 0x18, 0x18, "None" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x13, 0x01, 0x60, 0x60, "Easy" },
- {0x13, 0x01, 0x60, 0x40, "Normal" },
- {0x13, 0x01, 0x60, 0x20, "Hard" },
- {0x13, 0x01, 0x60, 0x00, "Hardest" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x13, 0x01, 0x80, 0x80, "Off" },
- {0x13, 0x01, 0x80, 0x00, "On" },
-
-// {0 , 0xfe, 0 , 2, "Flip Screen" },
-// {0x14, 0x01, 0x01, 0x01, "Off" },
-// {0x14, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x14, 0x01, 0x04, 0x04, "Off" },
- {0x14, 0x01, 0x04, 0x00, "On" },
-};
-
-STDDIPINFO(Rollerg)
-
-void rollerg_main_write(UINT16 address, UINT8 data)
-{
- switch (address)
- {
- case 0x0010:
- readzoomroms = data & 0x04;
- K051316WrapEnable(0, data & 0x20);
- return;
-
- case 0x0020:
- // watchdog
- return;
-
- case 0x0030:
- case 0x0031:
- K053260Write(0, address & 1, data);
- return;
-
- case 0x0040:
- ZetSetVector(0xff);
- ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
- return;
- }
-
- if ((address & 0xfff0) == 0x0200) {
- K051316WriteCtrl(0, address & 0x0f, data);
- return;
- }
-
- if ((address & 0xfff0) == 0x0300) {
- K053244Write(0, address & 0x0f, data);
- return;
- }
-
- if ((address & 0xf800) == 0x0800) {
- K051316Write(0, address & 0x7ff, data);
- return;
- }
-
- if ((address & 0xf800) == 0x1000) {
- K053245Write(0, address & 0x7ff, data);
- return;
- }
-}
-
-UINT8 rollerg_main_read(UINT16 address)
-{
- switch (address)
- {
- case 0x0020: // watchdog
- return 0;
-
- case 0x0030:
- case 0x0031:
- return K053260Read(0, (address & 1)+2);
-
- case 0x0050:
- return DrvInputs[0];
-
- case 0x0051:
- return DrvInputs[1];
-
- case 0x0052:
- return (DrvInputs[2] & 0xf0) | (DrvDips[2] & 0x0f);
-
- case 0x0053:
- return DrvDips[0];
-
- case 0x0060:
- return DrvDips[1];
-
- case 0x0061:
- return 0x7f;
- }
-
- if ((address & 0xfff0) == 0x0300) {
- return K053244Read(0, address & 0x0f);
- }
-
- if ((address & 0xf800) == 0x0800) {
- if (readzoomroms)
- return K051316ReadRom(0, address & 0x7ff);
- else
- return K051316Read(0, address & 0x7ff);
- }
-
- if ((address & 0xf800) == 0x1000) {
- return K053245Read(0, address & 0x7ff);
- }
-
- return 0;
-}
-
-void __fastcall rollerg_sound_write(UINT16 address, UINT8 data)
-{
- switch (address)
- {
- case 0xc000:
- case 0xc001:
- BurnYM3812Write(0, address & 1, data);
- return;
-
- case 0xfc00:
- ZetRun(100);
- ZetNmi();
- return;
- }
-
- if (address >= 0xa000 && address <= 0xa02f) {
- K053260Write(0, address & 0x3f, data);
- return;
- }
-}
-
-UINT8 __fastcall rollerg_sound_read(UINT16 address)
-{
- switch (address)
- {
- case 0xc000:
- case 0xc001:
- return BurnYM3812Read(0, address & 1);
- }
-
- if (address >= 0xa000 && address <= 0xa02f) {
- // not sure...
- if ((address & 0x3e) == 0x00) ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
-
- return K053260Read(0, address & 0x3f);
- }
-
- return 0;
-}
-
-static void rollerg_set_lines(INT32 lines)
-{
- nDrvBank[0] = lines;
-
- INT32 offs = 0x10000 + ((lines & 0x07) * 0x4000);
-
- konamiMapMemory(DrvKonROM + offs, 0x4000, 0x7fff, MAP_ROM);
-}
-
-static void K053245Callback(INT32 *, INT32 *color, INT32 *priority)
-{
- *priority = (*color & 0x10) ? 0 : 0x02;
- *color = 16 + (*color & 0x0f);
-}
-
-static void K051316Callback(INT32 *code, INT32 *color, INT32 *flags)
-{
- *flags = (*color & 0xc0) >> 6;
- *code |= ((*color & 0x0f) << 8);
- *color = ((*color & 0x30) >> 4);
-}
-
-inline static INT32 DrvSynchroniseStream(INT32 nSoundRate)
-{
- return (INT64)ZetTotalCycles() * nSoundRate / 3579545;
-}
-
-static INT32 DrvDoReset()
-{
- DrvReset = 0;
-
- memset (AllRam, 0, RamEnd - AllRam);
-
- konamiOpen(0);
- konamiReset();
- konamiClose();
-
- ZetOpen(0);
- ZetReset();
- ZetClose();
-
- K053260Reset(0);
- BurnYM3812Reset();
-
- KonamiICReset();
-
- readzoomroms = 0;
-
- return 0;
-}
-
-static INT32 MemIndex()
-{
- UINT8 *Next; Next = AllMem;
-
- DrvKonROM = Next; Next += 0x030000;
- DrvZ80ROM = Next; Next += 0x010000;
-
- DrvGfxROM0 = Next; Next += 0x200000;
- DrvGfxROM1 = Next; Next += 0x080000;
- DrvGfxROMExp0 = Next; Next += 0x400000;
- DrvGfxROMExp1 = Next; Next += 0x100000;
-
- DrvSndROM = Next; Next += 0x080000;
-
- DrvPalette = (UINT32*)Next; Next += 0x400 * sizeof(UINT32);
-
- AllRam = Next;
-
- DrvKonRAM = Next; Next += 0x001b00;
- DrvPalRAM = Next; Next += 0x000800;
-
- DrvZ80RAM = Next; Next += 0x000800;
-
- nDrvBank = Next; Next += 0x000001;
-
- RamEnd = Next;
- MemEnd = Next;
-
- return 0;
-}
-
-static INT32 DrvInit()
-{
- GenericTilesInit();
-
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(DrvKonROM + 0x010000, 0, 1)) return 1;
- memcpy (DrvKonROM + 0x08000, DrvKonROM + 0x28000, 0x8000);
-
- if (BurnLoadRom(DrvZ80ROM + 0x000000, 1, 1)) return 1;
-
- if (BurnLoadRomExt(DrvGfxROM0 + 0x000000, 2, 4, 2)) return 1;
- if (BurnLoadRomExt(DrvGfxROM0 + 0x000002, 3, 4, 2)) return 1;
-
- if (BurnLoadRom(DrvGfxROM1 + 0x000000, 4, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x040000, 5, 1)) return 1;
-
- if (BurnLoadRom(DrvSndROM + 0x000000, 6, 1)) return 1;
-
- K053245GfxDecode(DrvGfxROM0, DrvGfxROMExp0, 0x200000);
- }
-
- konamiInit(0);
- konamiOpen(0);
- konamiMapMemory(DrvPalRAM, 0x1800, 0x1fff, MAP_RAM);
- konamiMapMemory(DrvKonRAM, 0x2000, 0x3aff, MAP_RAM);
- konamiMapMemory(DrvKonROM + 0x4000, 0x4000, 0x7fff, MAP_ROM);
- konamiMapMemory(DrvKonROM + 0x8000, 0x8000, 0xffff, MAP_ROM);
- konamiSetWriteHandler(rollerg_main_write);
- konamiSetReadHandler(rollerg_main_read);
- konamiSetlinesCallback(rollerg_set_lines);
- konamiClose();
-
- ZetInit(0);
- ZetOpen(0);
- ZetMapArea(0x0000, 0x7fff, 0, DrvZ80ROM);
- ZetMapArea(0x0000, 0x7fff, 2, DrvZ80ROM);
- ZetMapArea(0x8000, 0x87ff, 0, DrvZ80RAM);
- ZetMapArea(0x8000, 0x87ff, 1, DrvZ80RAM);
- ZetMapArea(0x8000, 0x87ff, 2, DrvZ80RAM);
- ZetSetWriteHandler(rollerg_sound_write);
- ZetSetReadHandler(rollerg_sound_read);
- ZetClose();
-
- K053245Init(0, DrvGfxROM0, DrvGfxROMExp0, 0x1fffff, K053245Callback);
- K053245SetSpriteOffset(0, -112, 16);
-
- K051316Init(0, DrvGfxROM1, DrvGfxROMExp1, 0x07ffff, K051316Callback, 4, 0);
- K051316SetOffset(0, -90, -15);
-
- BurnYM3812Init(1, 3579545, NULL, DrvSynchroniseStream, 0);
- BurnTimerAttachZetYM3812(3579545);
- BurnYM3812SetRoute(0, BURN_SND_YM3812_ROUTE, 1.00, BURN_SND_ROUTE_BOTH);
-
- K053260Init(0, 3579545, DrvSndROM, 0x80000);
- K053260PCMSetAllRoutes(0, 0.70, BURN_SND_ROUTE_BOTH);
-
- DrvDoReset();
-
- return 0;
-}
-
-static INT32 DrvExit()
-{
- GenericTilesExit();
-
- KonamiICExit();
-
- konamiExit();
- ZetExit();
-
- BurnYM3812Exit();
- K053260Exit();
-
- BurnFree (AllMem);
-
- return 0;
-}
-
-static INT32 DrvDraw()
-{
- KonamiRecalcPalette(DrvPalRAM, DrvPalette, 0x800);
-
- KonamiClearBitmaps(DrvPalette[0x100]);
-
- K051316_zoom_draw(0, 1);
- K053245SpritesRender(0);
-
- KonamiBlendCopy(DrvPalette);
-
- return 0;
-}
-
-static INT32 DrvFrame()
-{
- if (DrvReset) {
- DrvDoReset();
- }
-
- ZetNewFrame();
- konamiNewFrame();
-
- {
- memset (DrvInputs, 0xff, 3);
- for (INT32 i = 0; i < 8; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- DrvInputs[2] ^= (DrvJoy3[i] & 1) << i;
- }
-
- // Clear opposites
- if ((DrvInputs[0] & 0x18) == 0) DrvInputs[0] |= 0x18;
- if ((DrvInputs[0] & 0x60) == 0) DrvInputs[0] |= 0x60;
- if ((DrvInputs[1] & 0x18) == 0) DrvInputs[1] |= 0x18;
- if ((DrvInputs[1] & 0x60) == 0) DrvInputs[1] |= 0x60;
- }
-
- INT32 nInterleave = nBurnSoundLen;
- INT32 nCyclesTotal[2] = { 3000000 / 60, 3579545 / 60 };
- INT32 nCyclesDone[2] = { 0, 0 };
-
- ZetOpen(0);
- konamiOpen(0);
-
- for (INT32 i = 0; i < nInterleave; i++) {
- INT32 nNext, nCyclesSegment;
-
- nNext = (i + 1) * nCyclesTotal[0] / nInterleave;
- nCyclesSegment = nNext - nCyclesDone[0];
- nCyclesSegment = konamiRun(nCyclesSegment);
- nCyclesDone[0] += nCyclesSegment;
-
- BurnTimerUpdateYM3812(i * (nCyclesTotal[1] / nInterleave));
- }
-
- konamiSetIrqLine(KONAMI_IRQ_LINE, CPU_IRQSTATUS_AUTO);
-
- BurnTimerEndFrameYM3812(nCyclesTotal[1]);
-
- if (pBurnSoundOut) {
- BurnYM3812Update(pBurnSoundOut, nBurnSoundLen);
- K053260Update(0, pBurnSoundOut, nBurnSoundLen);
- }
-
- konamiClose();
- ZetClose();
-
- if (pBurnDraw) {
- DrvDraw();
- }
-
- return 0;
-}
-
-static INT32 DrvScan(INT32 nAction,INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin) {
- *pnMin = 0x029705;
- }
-
- if (nAction & ACB_VOLATILE) {
- memset(&ba, 0, sizeof(ba));
-
- ba.Data = AllRam;
- ba.nLen = RamEnd - AllRam;
- ba.szName = "All Ram";
- BurnAcb(&ba);
-
- konamiCpuScan(nAction);
- ZetScan(nAction);
-
- BurnYM3812Scan(nAction, pnMin);
- K053260Scan(nAction);
-
- KonamiICScan(nAction);
-
- SCAN_VAR(readzoomroms);
- }
-
- if (nAction & ACB_WRITE) {
- konamiOpen(0);
- rollerg_set_lines(nDrvBank[0]);
- konamiClose();
- }
-
- return 0;
-}
-
-
-// Rollergames (US)
-
-static struct BurnRomInfo rollergRomDesc[] = {
- { "999m02.g7", 0x020000, 0x3df8db93, 1 | BRF_PRG | BRF_ESS }, // 0 Konami Custom Code
-
- { "999m01.e11", 0x008000, 0x1fcfb22f, 2 | BRF_PRG | BRF_ESS }, // 1 Z80 Code
-
- { "999h06.k2", 0x100000, 0xeda05130, 3 | BRF_GRA }, // 2 K053245 Tiles
- { "999h05.k8", 0x100000, 0x5f321c7d, 3 | BRF_GRA }, // 3
-
- { "999h03.d23", 0x040000, 0xea1edbd2, 4 | BRF_GRA }, // 4 K051316 Tiles
- { "999h04.f23", 0x040000, 0xc1a35355, 4 | BRF_GRA }, // 5
-
- { "999h09.c5", 0x080000, 0xc5188783, 5 | BRF_SND }, // 6 K053260 Samples
-};
-
-STD_ROM_PICK(rollerg)
-STD_ROM_FN(rollerg)
-
-struct BurnDriver BurnDrvRollerg = {
- "rollerg", NULL, NULL, NULL, "1991",
- "Rollergames (US)\0", NULL, "Konami", "GX999",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_PREFIX_KONAMI, GBF_SPORTSMISC, 0,
- NULL, rollergRomInfo, rollergRomName, NULL, NULL, RollergInputInfo, RollergDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x400,
- 288, 224, 4, 3
-};
-
-
-// Rollergames (Japan)
-
-static struct BurnRomInfo rollergjRomDesc[] = {
- { "999v02.bin", 0x020000, 0x0dd8c3ac, 1 | BRF_PRG | BRF_ESS }, // 0 Konami Custom Code
-
- { "999m01.e11", 0x008000, 0x1fcfb22f, 2 | BRF_PRG | BRF_ESS }, // 1 Z80 Code
-
- { "999h06.k2", 0x100000, 0xeda05130, 3 | BRF_GRA }, // 2 K053245 Tiles
- { "999h05.k8", 0x100000, 0x5f321c7d, 3 | BRF_GRA }, // 3
-
- { "999h03.d23", 0x040000, 0xea1edbd2, 4 | BRF_GRA }, // 4 K051316 Tiles
- { "999h04.f23", 0x040000, 0xc1a35355, 4 | BRF_GRA }, // 5
-
- { "999h09.c5", 0x080000, 0xc5188783, 5 | BRF_SND }, // 6 K053260 Samples
-};
-
-STD_ROM_PICK(rollergj)
-STD_ROM_FN(rollergj)
-
-struct BurnDriver BurnDrvRollergj = {
- "rollergj", "rollerg", NULL, NULL, "1991",
- "Rollergames (Japan)\0", NULL, "Konami", "GX999",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_KONAMI, GBF_SPORTSMISC, 0,
- NULL, rollergjRomInfo, rollergjRomName, NULL, NULL, RollergInputInfo, RollergDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x400,
- 288, 224, 4, 3
-};
diff --git a/jan/src/burn/drv/konami/d_scotrsht.cpp b/jan/src/burn/drv/konami/d_scotrsht.cpp
deleted file mode 100644
index 7e7e0e4b2..000000000
--- a/jan/src/burn/drv/konami/d_scotrsht.cpp
+++ /dev/null
@@ -1,648 +0,0 @@
-// FB Alpha Scooter Shooter driver module
-// Based on MAME driver by Pierpaolo Prazzoli
-
-#include "tiles_generic.h"
-#include "z80_intf.h"
-#include "m6809_intf.h"
-#include "burn_ym2203.h"
-
-static UINT8 *AllMem;
-static UINT8 *RamEnd;
-static UINT8 *MemEnd;
-static UINT8 *AllRam;
-static UINT8 *DrvM6809ROM;
-static UINT8 *DrvZ80ROM;
-static UINT8 *DrvGfxROM0;
-static UINT8 *DrvGfxROM1;
-static UINT8 *DrvColPROM;
-static UINT8 *DrvSprRAM;
-static UINT8 *DrvColRAM;
-static UINT8 *DrvVidRAM;
-static UINT8 *DrvZ80RAM;
-
-static UINT32 *DrvPalette;
-static UINT32 *Palette;
-static UINT8 DrvRecalc;
-
-static UINT8 *scroll;
-
-static UINT8 *soundlatch;
-static UINT8 *charbank;
-static UINT8 *irq_enable;
-static UINT8 *flipscreen;
-static UINT8 *palbank;
-
-static UINT8 DrvJoy1[8];
-static UINT8 DrvJoy2[8];
-static UINT8 DrvJoy3[8];
-static UINT8 DrvReset;
-static UINT8 DrvDips[3];
-static UINT8 DrvInputs[3];
-
-static struct BurnInputInfo ScotrshtInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy1 + 0, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 3, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy2 + 2, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy2 + 3, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy2 + 0, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy2 + 1, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy2 + 4, "p1 fire 1" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy1 + 1, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy1 + 4, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvJoy3 + 2, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy3 + 3, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy3 + 0, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy3 + 1, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy3 + 4, "p2 fire 1" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service", BIT_DIGITAL, DrvJoy1 + 2, "service" },
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip" },
- {"Dip C", BIT_DIPSWITCH, DrvDips + 2, "dip" },
-};
-
-STDINPUTINFO(Scotrsht)
-
-static struct BurnDIPInfo ScotrshtDIPList[]=
-{
- {0x10, 0xff, 0xff, 0xff, NULL },
- {0x11, 0xff, 0xff, 0x5d, NULL },
- {0x12, 0xff, 0xff, 0xff, NULL },
-
- {0 , 0xfe, 0 , 16, "Coin A" },
- {0x10, 0x01, 0x0f, 0x02, "4 Coins 1 Credits" },
- {0x10, 0x01, 0x0f, 0x05, "3 Coins 1 Credits" },
- {0x10, 0x01, 0x0f, 0x08, "2 Coins 1 Credits" },
- {0x10, 0x01, 0x0f, 0x04, "3 Coins 2 Credits" },
- {0x10, 0x01, 0x0f, 0x01, "4 Coins 3 Credits" },
- {0x10, 0x01, 0x0f, 0x0f, "1 Coin 1 Credits" },
- {0x10, 0x01, 0x0f, 0x03, "3 Coins 4 Credits" },
- {0x10, 0x01, 0x0f, 0x07, "2 Coins 3 Credits" },
- {0x10, 0x01, 0x0f, 0x0e, "1 Coin 2 Credits" },
- {0x10, 0x01, 0x0f, 0x06, "2 Coins 5 Credits" },
- {0x10, 0x01, 0x0f, 0x0d, "1 Coin 3 Credits" },
- {0x10, 0x01, 0x0f, 0x0c, "1 Coin 4 Credits" },
- {0x10, 0x01, 0x0f, 0x0b, "1 Coin 5 Credits" },
- {0x10, 0x01, 0x0f, 0x0a, "1 Coin 6 Credits" },
- {0x10, 0x01, 0x0f, 0x09, "1 Coin 7 Credits" },
- {0x10, 0x01, 0x0f, 0x00, "Invalid" },
-
- {0 , 0xfe, 0 , 16, "Coin B" },
- {0x10, 0x01, 0xf0, 0x20, "4 Coins 1 Credits" },
- {0x10, 0x01, 0xf0, 0x50, "3 Coins 1 Credits" },
- {0x10, 0x01, 0xf0, 0x80, "2 Coins 1 Credits" },
- {0x10, 0x01, 0xf0, 0x40, "3 Coins 2 Credits" },
- {0x10, 0x01, 0xf0, 0x10, "4 Coins 3 Credits" },
- {0x10, 0x01, 0xf0, 0xf0, "1 Coin 1 Credits" },
- {0x10, 0x01, 0xf0, 0x30, "3 Coins 4 Credits" },
- {0x10, 0x01, 0xf0, 0x70, "2 Coins 3 Credits" },
- {0x10, 0x01, 0xf0, 0xe0, "1 Coin 2 Credits" },
- {0x10, 0x01, 0xf0, 0x60, "2 Coins 5 Credits" },
- {0x10, 0x01, 0xf0, 0xd0, "1 Coin 3 Credits" },
- {0x10, 0x01, 0xf0, 0xc0, "1 Coin 4 Credits" },
- {0x10, 0x01, 0xf0, 0xb0, "1 Coin 5 Credits" },
- {0x10, 0x01, 0xf0, 0xa0, "1 Coin 6 Credits" },
- {0x10, 0x01, 0xf0, 0x90, "1 Coin 7 Credits" },
- {0x10, 0x01, 0xf0, 0x00, "Invalid" },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x11, 0x01, 0x03, 0x03, "2" },
- {0x11, 0x01, 0x03, 0x02, "3" },
- {0x11, 0x01, 0x03, 0x01, "4" },
- {0x11, 0x01, 0x03, 0x00, "5" },
-
- {0 , 0xfe, 0 , 2, "Bonus Life" },
- {0x11, 0x01, 0x08, 0x08, "30K 80K" },
- {0x11, 0x01, 0x08, 0x00, "40K 90K" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x11, 0x01, 0x30, 0x30, "Easy" },
- {0x11, 0x01, 0x30, 0x20, "Normal" },
- {0x11, 0x01, 0x30, 0x10, "Difficult" },
- {0x11, 0x01, 0x30, 0x00, "Very Difficult" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x11, 0x01, 0x80, 0x80, "Off" },
- {0x11, 0x01, 0x80, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x12, 0x01, 0x01, 0x01, "Off" },
- {0x12, 0x01, 0x01, 0x00, "On" },
-};
-
-STDDIPINFO(Scotrsht)
-
-void scotrsht_main_write(UINT16 address, UINT8 data)
-{
- switch (address)
- {
- case 0x2043:
- *charbank = data & 1;
- return;
-
- case 0x2044:
- *irq_enable = data & 2;
- *flipscreen = data & 8;
- return;
-
- case 0x3000:
- *palbank = (data & 0x70) >> 4;
- return;
-
- case 0x3100:
- *soundlatch = data;
- ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
- return;
-
- case 0x3300:
- // watchdog
- return;
- }
-
- if ((address & 0xffe0) == 0x2000) {
- scroll[address & 0x1f] = data;
- return;
- }
-}
-
-UINT8 scotrsht_main_read(UINT16 address)
-{
- switch (address)
- {
- case 0x3100:
- return DrvDips[1];
-
- case 0x3200:
- return DrvDips[2];
-
- case 0x3300:
- return DrvInputs[0];
-
- case 0x3301:
- return DrvInputs[1];
-
- case 0x3302:
- return DrvInputs[2];
-
- case 0x3303:
- return DrvDips[0];
- }
-
- if ((address & 0xffe0) == 0x2000) {
- return scroll[address & 0x1f];
- }
-
- return 0;
-}
-
-UINT8 __fastcall scotrsht_sound_read(UINT16 address)
-{
- if (address == 0x8000) {
- ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
- return *soundlatch;
- }
-
- return 0;
-}
-
-void __fastcall scotrsht_sound_out(UINT16 port, UINT8 data)
-{
- switch (port & 0xff)
- {
- case 0x00:
- case 0x01:
- BurnYM2203Write(0, port & 1, data);
- return;
- }
-}
-
-UINT8 __fastcall scotrsht_sound_in(UINT16 port)
-{
- switch (port & 0xff)
- {
- case 0x00:
- case 0x01:
- return BurnYM2203Read(0, port & 1);
- }
-
- return 0;
-}
-
-inline static INT32 DrvSynchroniseStream(INT32 nSoundRate)
-{
- return (INT64)ZetTotalCycles() * nSoundRate / 3072000;
-}
-
-inline static double DrvGetTime()
-{
- return (double)ZetTotalCycles() / 3072000.0;
-}
-
-static INT32 DrvDoReset()
-{
- DrvReset = 0;
-
- memset (AllRam, 0, RamEnd - AllRam);
-
- M6809Open(0);
- M6809Reset();
- M6809Close();
-
- ZetOpen(0);
- ZetReset();
- ZetClose();
-
- BurnYM2203Reset();
-
- return 0;
-}
-
-static INT32 MemIndex()
-{
- UINT8 *Next; Next = AllMem;
-
- DrvM6809ROM = Next; Next += 0x010000;
- DrvZ80ROM = Next; Next += 0x010000;
-
- DrvGfxROM0 = Next; Next += 0x010000;
- DrvGfxROM1 = Next; Next += 0x020000;
-
- DrvColPROM = Next; Next += 0x000500;
-
- DrvPalette = (UINT32*)Next; Next += 0x01000 * sizeof(UINT32);
- Palette = (UINT32*)Next; Next += 0x01000 * sizeof(UINT32);
-
- AllRam = Next;
-
- scroll = Next; Next += 0x000020;
-
- DrvSprRAM = Next; Next += 0x001000;
- DrvColRAM = Next; Next += 0x000800;
- DrvVidRAM = Next; Next += 0x000800;
-
- DrvZ80RAM = Next; Next += 0x000400;
-
- soundlatch = Next; Next += 0x000001;
- charbank = Next; Next += 0x000001;
- irq_enable = Next; Next += 0x000001;
- flipscreen = Next; Next += 0x000001;
- palbank = Next; Next += 0x000001;
-
- RamEnd = Next;
-
- MemEnd = Next;
-
- return 0;
-}
-
-static void DrvPaletteInit()
-{
- for (INT32 i = 0; i < 0x100; i++)
- {
- INT32 r = DrvColPROM[i + 0x000] & 0x0f;
- INT32 g = DrvColPROM[i + 0x100] & 0x0f;
- INT32 b = DrvColPROM[i + 0x200] & 0x0f;
-
- DrvPalette[i] = (r << 20) | (r << 16) | (g << 12) | (g << 8) | (b << 4) | (b << 0);
- }
-
- for (INT32 i = 0; i < 0x200; i++) {
- for (INT32 j = 0; j < 8; j++) {
- INT32 col = ((~i & 0x100) >> 1) | (j << 4) | (DrvColPROM[i + 0x300] & 0x0f);
- Palette[((i & 0x100) << 3) | (j << 8) | (i & 0xff)] = DrvPalette[col];
- }
- }
-}
-
-static INT32 DrvGfxDecode()
-{
- INT32 Plane[4] = { STEP4(0,1) };
- INT32 XOffs[16] = { STEP8(0,4), STEP8(256,4) };
- INT32 YOffs[16] = { STEP8(0,32), STEP8(512,32) };
-
- UINT8 *tmp = (UINT8*)BurnMalloc(0x10000);
- if (tmp == NULL) {
- return 1;
- }
-
- memcpy (tmp, DrvGfxROM0, 0x08000);
-
- GfxDecode(0x0400, 4, 8, 8, Plane, XOffs, YOffs, 0x100, tmp, DrvGfxROM0);
-
- memcpy (tmp, DrvGfxROM1, 0x10000);
-
- GfxDecode(0x0200, 4, 16, 16, Plane, XOffs, YOffs, 0x400, tmp, DrvGfxROM1);
-
- BurnFree (tmp);
-
- return 0;
-}
-
-static INT32 DrvInit()
-{
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(DrvM6809ROM + 0x08000, 0, 1)) return 1;
- memcpy (DrvM6809ROM + 0x4000, DrvM6809ROM + 0xc000, 0x4000);
- if (BurnLoadRom(DrvM6809ROM + 0x0c000, 1, 1)) return 1;
-
- if (BurnLoadRom(DrvZ80ROM + 0x00000, 2, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x00000, 3, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM1 + 0x00000, 4, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x08000, 5, 1)) return 1;
-
- if (BurnLoadRom(DrvColPROM + 0x00000, 6, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x00100, 7, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x00200, 8, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x00300, 9, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x00400, 10, 1)) return 1;
-
- DrvPaletteInit();
- DrvGfxDecode();
- }
-
- M6809Init(1);
- M6809Open(0);
- M6809MapMemory(DrvColRAM, 0x0000, 0x07ff, MAP_RAM);
- M6809MapMemory(DrvVidRAM, 0x0800, 0x0fff, MAP_RAM);
- M6809MapMemory(DrvSprRAM, 0x1000, 0x1fff, MAP_RAM);
- M6809MapMemory(DrvM6809ROM + 0x04000, 0x4000, 0xffff, MAP_ROM);
- M6809SetWriteHandler(scotrsht_main_write);
- M6809SetReadHandler(scotrsht_main_read);
- M6809Close();
-
- ZetInit(0);
- ZetOpen(0);
- ZetMapArea(0x0000, 0x3fff, 0, DrvZ80ROM);
- ZetMapArea(0x0000, 0x3fff, 2, DrvZ80ROM);
- ZetMapArea(0x4000, 0x43ff, 0, DrvZ80RAM);
- ZetMapArea(0x4000, 0x43ff, 1, DrvZ80RAM);
- ZetMapArea(0x4000, 0x43ff, 2, DrvZ80RAM);
- ZetSetReadHandler(scotrsht_sound_read);
- ZetSetOutHandler(scotrsht_sound_out);
- ZetSetInHandler(scotrsht_sound_in);
- ZetClose();
-
- BurnYM2203Init(1, 3072000, NULL, DrvSynchroniseStream, DrvGetTime, 0);
- BurnTimerAttachZet(3072000);
- BurnYM2203SetAllRoutes(0, 0.40, BURN_SND_ROUTE_BOTH);
-
- DrvDoReset();
-
- GenericTilesInit();
-
- return 0;
-}
-
-static INT32 DrvExit()
-{
- GenericTilesExit();
-
- M6809Exit();
- ZetExit();
-
- BurnYM2203Exit();
-
- BurnFree (AllMem);
-
- return 0;
-}
-
-static void draw_layer()
-{
- for (INT32 offs = 0x0000; offs < 0x0800; offs++)
- {
- INT32 sx = (offs & 0x3f) << 3;
- INT32 sy = (offs >> 6) << 3;
-
- if (sx & 0x100) continue;
-
- sy -= scroll[offs & 0x1f];
- if (sy < -7) sy += 256;
-
- INT32 attr = DrvColRAM[offs];
- INT32 code = DrvVidRAM[offs] | (*charbank << 9) | ((attr & 0x40) << 2);
- INT32 color= (attr & 0x0f) | (*palbank << 4);
- INT32 flipx = attr & 0x10;
- INT32 flipy = attr & 0x20;
-
- if (*flipscreen)
- {
- flipx = !flipx;
- flipy = !flipy;
- sy = 248 - sy;
- sx = 248 - sx;
- }
-
- sy -= 16;
-
- if (flipy) {
- if (flipx) {
- Render8x8Tile_FlipXY_Clip(pTransDraw, code, sx, sy, color, 4, 0, DrvGfxROM0);
- } else {
- Render8x8Tile_FlipY_Clip(pTransDraw, code, sx, sy, color, 4, 0, DrvGfxROM0);
- }
- } else {
- if (flipx) {
- Render8x8Tile_FlipX_Clip(pTransDraw, code, sx, sy, color, 4, 0, DrvGfxROM0);
- } else {
- Render8x8Tile_Clip(pTransDraw, code, sx, sy, color, 4, 0, DrvGfxROM0);
- }
- }
- }
-}
-
-static void draw_sprites()
-{
- for (INT32 i = 0; i < 0xc0; i += 4)
- {
- INT32 attr = DrvSprRAM[i + 1];
- INT32 code = DrvSprRAM[i + 0] + ((attr & 0x40) << 2);
- INT32 sx = DrvSprRAM[i + 2] - ((attr & 0x80) << 1);
- INT32 sy = DrvSprRAM[i + 3];
- INT32 color = (attr & 0x0f) | (*palbank << 4);
- INT32 flipx = attr & 0x10;
- INT32 flipy = attr & 0x20;
-
- if (*flipscreen)
- {
- sx = 240 - sx;
- sy = 240 - sy;
- flipx = !flipx;
- flipy = !flipy;
- }
-
- sy -= 16;
-
- {
- if (flipx) flipx = 0x0f;
- if (flipy) flipx |= 0xf0;
-
- color = (color << 4) | 0x800;
-
- UINT8 *src = DrvGfxROM1 + (code << 8);
-
- for (INT32 y = 0; y < 16; y++, sy++)
- {
- if (sy < 0 || sy >= nScreenHeight) continue;
-
- INT32 xx = sx;
-
- for (INT32 x = 0; x < 16; x++, xx++)
- {
- if (xx < 0 || xx >= nScreenWidth) continue;
-
- INT32 pxl = src[((y << 4) | x) ^ flipx] | color;
- INT32 trans = DrvPalette[pxl & 0xfff];
-
- if (trans) {
- pTransDraw[(sy * nScreenWidth) + xx] = pxl;
- }
- }
- }
- }
- }
-}
-
-static INT32 DrvDraw()
-{
- if (DrvRecalc) {
- for (INT32 i = 0; i < 0x1000; i++) {
- UINT32 rgb = Palette[i];
- DrvPalette[i] = BurnHighCol((rgb >> 16)&0xff, (rgb >> 8)&0xff, rgb&0xff, 0);
- }
- }
-
- BurnTransferClear();
- draw_layer();
-
- draw_sprites();
-
- BurnTransferCopy(DrvPalette);
-
- return 0;
-}
-
-static INT32 DrvFrame()
-{
- if (DrvReset) {
- DrvDoReset();
- }
-
- ZetNewFrame();
-
- {
- memset (DrvInputs, 0xff, 3);
- for (INT32 i = 0; i < 8; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- DrvInputs[2] ^= (DrvJoy3[i] & 1) << i;
- }
-
- // Clear opposites
- if ((DrvInputs[1] & 0x03) == 0) DrvInputs[1] |= 0x03;
- if ((DrvInputs[1] & 0x0c) == 0) DrvInputs[1] |= 0x0c;
- if ((DrvInputs[2] & 0x03) == 0) DrvInputs[2] |= 0x03;
- if ((DrvInputs[2] & 0x0c) == 0) DrvInputs[2] |= 0x0c;
- }
-
- INT32 nInterleave = 100;
- INT32 nCyclesTotal[2] = { 3072000 / 60, 3072000 / 60 };
-
- M6809Open(0);
- ZetOpen(0);
-
- for (INT32 i = 0; i < nInterleave; i++) {
-
- M6809Run(nCyclesTotal[0] / nInterleave);
-
- BurnTimerUpdate(i * (nCyclesTotal[1] / nInterleave));
- }
-
- BurnTimerEndFrame(nCyclesTotal[1]);
-
- if (*irq_enable) M6809SetIRQLine(0, CPU_IRQSTATUS_AUTO);
-
- if (pBurnSoundOut) {
- BurnYM2203Update(pBurnSoundOut, nBurnSoundLen);
- }
-
- ZetClose();
- M6809Close();
-
- if (pBurnDraw) {
- DrvDraw();
- }
-
- return 0;
-}
-
-static INT32 DrvScan(INT32 nAction,INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin) {
- *pnMin = 0x029706;
- }
-
- if (nAction & ACB_VOLATILE) {
- memset(&ba, 0, sizeof(ba));
- ba.Data = AllRam;
- ba.nLen = RamEnd - AllRam;
- ba.szName = "All RAM";
- BurnAcb(&ba);
- }
-
- if (nAction & ACB_DRIVER_DATA) {
- M6809Scan(nAction);
- ZetScan(nAction);
-
- BurnYM2203Scan(nAction, pnMin);
- }
-
- return 0;
-}
-
-
-// Scooter Shooter
-
-static struct BurnRomInfo scotrshtRomDesc[] = {
- { "gx545_g03_12c.bin", 0x8000, 0xb808e0d3, 1 | BRF_PRG | BRF_ESS }, // 0 M6809 Code
- { "gx545_g02_10c.bin", 0x4000, 0xb22c0586, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "gx545_g01_8c.bin", 0x4000, 0x46a7cc65, 2 | BRF_PRG | BRF_ESS }, // 2 Z80 Code
-
- { "gx545_g05_5f.bin", 0x8000, 0x856c349c, 3 | BRF_GRA }, // 3 Characters
-
- { "gx545_g06_6f.bin", 0x8000, 0x14ad7601, 4 | BRF_GRA }, // 4 Sprites
- { "gx545_h04_4f.bin", 0x8000, 0xc06c11a3, 4 | BRF_GRA }, // 5
-
- { "gx545_6301_1f.bin", 0x0100, 0xf584586f, 5 | BRF_GRA }, // 6 Color Proms
- { "gx545_6301_2f.bin", 0x0100, 0xad464db1, 5 | BRF_GRA }, // 7
- { "gx545_6301_3f.bin", 0x0100, 0xbd475d23, 5 | BRF_GRA }, // 8
- { "gx545_6301_7f.bin", 0x0100, 0x2b0cd233, 5 | BRF_GRA }, // 9
- { "gx545_6301_8f.bin", 0x0100, 0xc1c7cf58, 5 | BRF_GRA }, // 10
-};
-
-STD_ROM_PICK(scotrsht)
-STD_ROM_FN(scotrsht)
-
-struct BurnDriver BurnDrvScotrsht = {
- "scotrsht", NULL, NULL, NULL, "1985",
- "Scooter Shooter\0", NULL, "Konami", "Miscellaneous",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED, 2, HARDWARE_PREFIX_KONAMI, GBF_HORSHOOT, 0,
- NULL, scotrshtRomInfo, scotrshtRomName, NULL, NULL, ScotrshtInputInfo, ScotrshtDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x1000,
- 224, 256, 3, 4
-};
diff --git a/jan/src/burn/drv/konami/d_shaolins.cpp b/jan/src/burn/drv/konami/d_shaolins.cpp
deleted file mode 100644
index 273d6fdc6..000000000
--- a/jan/src/burn/drv/konami/d_shaolins.cpp
+++ /dev/null
@@ -1,657 +0,0 @@
-// FB Alpha Shaolin's Road driver module
-// Based on MAME driver by Allard Van Der Bas
-
-#include "tiles_generic.h"
-#include "m6809_intf.h"
-#include "sn76496.h"
-
-static UINT8 *AllMem;
-static UINT8 *AllRam;
-static UINT8 *RamEnd;
-static UINT8 *MemEnd;
-static UINT8 *DrvM6809ROM;
-static UINT8 *DrvGfxROM0;
-static UINT8 *DrvGfxROM1;
-static UINT8 *DrvColPROM;
-static UINT8 *DrvM6809RAM;
-static UINT8 *DrvVidRAM;
-static UINT8 *DrvSprRAM;
-static UINT8 *DrvColRAM;
-
-static UINT8 *flipscreen;
-static UINT8 *nmi_enable;
-static UINT8 *palette_bank;
-static UINT16 *scroll;
-
-static UINT32 *DrvPalette;
-static UINT8 DrvRecalc;
-
-static UINT8 DrvJoy1[8];
-static UINT8 DrvJoy2[8];
-static UINT8 DrvJoy3[8];
-static UINT8 DrvInputs[3];
-static UINT8 DrvDips[3];
-static UINT8 DrvReset;
-
-static INT32 watchdog;
-
-static struct BurnInputInfo ShaolinsInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy1 + 0, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 3, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy2 + 2, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy2 + 3, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy2 + 0, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy2 + 1, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy2 + 4, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy2 + 5, "p1 fire 2" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy1 + 1, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy1 + 4, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvJoy3 + 2, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy3 + 3, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy3 + 0, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy3 + 1, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy3 + 4, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy3 + 5, "p2 fire 2" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service", BIT_DIGITAL, DrvJoy1 + 2, "service" },
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip" },
- {"Dip C", BIT_DIPSWITCH, DrvDips + 2, "dip" },
-};
-
-STDINPUTINFO(Shaolins)
-
-static struct BurnDIPInfo ShaolinsDIPList[]=
-{
- {0x12, 0xff, 0xff, 0x5a, NULL },
- {0x13, 0xff, 0xff, 0xff, NULL },
- {0x14, 0xff, 0xff, 0xff, NULL },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x12, 0x01, 0x03, 0x03, "2" },
- {0x12, 0x01, 0x03, 0x02, "3" },
- {0x12, 0x01, 0x03, 0x01, "5" },
- {0x12, 0x01, 0x03, 0x00, "7" },
-
- {0 , 0xfe, 0 , 2, "Cabinet" },
- {0x12, 0x01, 0x04, 0x00, "Upright" },
- {0x12, 0x01, 0x04, 0x04, "Cocktail" },
-
- {0 , 0xfe, 0 , 4, "Bonus Life" },
- {0x12, 0x01, 0x18, 0x18, "30000 and every 70000" },
- {0x12, 0x01, 0x18, 0x10, "40000 and every 80000" },
- {0x12, 0x01, 0x18, 0x08, "40000" },
- {0x12, 0x01, 0x18, 0x00, "50000" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x12, 0x01, 0x60, 0x60, "Easy" },
- {0x12, 0x01, 0x60, 0x40, "Medium" },
- {0x12, 0x01, 0x60, 0x20, "Hard" },
- {0x12, 0x01, 0x60, 0x00, "Hardest" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x12, 0x01, 0x80, 0x80, "Off" },
- {0x12, 0x01, 0x80, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x13, 0x01, 0x01, 0x01, "Off" },
- {0x13, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Upright Controls" },
- {0x13, 0x01, 0x02, 0x02, "Single" },
- {0x13, 0x01, 0x02, 0x00, "Dual" },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x13, 0x01, 0x04, 0x04, "Off" },
- {0x13, 0x01, 0x04, 0x00, "On" },
-
- {0 , 0xfe, 0 , 16, "Coin A" },
- {0x14, 0x01, 0x0f, 0x02, "4 Coins 1 Credits" },
- {0x14, 0x01, 0x0f, 0x05, "3 Coins 1 Credits" },
- {0x14, 0x01, 0x0f, 0x08, "2 Coins 1 Credits" },
- {0x14, 0x01, 0x0f, 0x04, "3 Coins 2 Credits" },
- {0x14, 0x01, 0x0f, 0x01, "4 Coins 3 Credits" },
- {0x14, 0x01, 0x0f, 0x0f, "1 Coin 1 Credits" },
- {0x14, 0x01, 0x0f, 0x03, "3 Coins 4 Credits" },
- {0x14, 0x01, 0x0f, 0x07, "2 Coins 3 Credits" },
- {0x14, 0x01, 0x0f, 0x0e, "1 Coin 2 Credits" },
- {0x14, 0x01, 0x0f, 0x06, "2 Coins 5 Credits" },
- {0x14, 0x01, 0x0f, 0x0d, "1 Coin 3 Credits" },
- {0x14, 0x01, 0x0f, 0x0c, "1 Coin 4 Credits" },
- {0x14, 0x01, 0x0f, 0x0b, "1 Coin 5 Credits" },
- {0x14, 0x01, 0x0f, 0x0a, "1 Coin 6 Credits" },
- {0x14, 0x01, 0x0f, 0x09, "1 Coin 7 Credits" },
- {0x14, 0x01, 0x0f, 0x00, "Free Play" },
-
- {0 , 0xfe, 0 , 15, "Coin B" },
- {0x14, 0x01, 0xf0, 0x20, "4 Coins 1 Credits" },
- {0x14, 0x01, 0xf0, 0x50, "3 Coins 1 Credits" },
- {0x14, 0x01, 0xf0, 0x80, "2 Coins 1 Credits" },
- {0x14, 0x01, 0xf0, 0x40, "3 Coins 2 Credits" },
- {0x14, 0x01, 0xf0, 0x10, "4 Coins 3 Credits" },
- {0x14, 0x01, 0xf0, 0xf0, "1 Coin 1 Credits" },
- {0x14, 0x01, 0xf0, 0x30, "3 Coins 4 Credits" },
- {0x14, 0x01, 0xf0, 0x70, "2 Coins 3 Credits" },
- {0x14, 0x01, 0xf0, 0xe0, "1 Coin 2 Credits" },
- {0x14, 0x01, 0xf0, 0x60, "2 Coins 5 Credits" },
- {0x14, 0x01, 0xf0, 0xd0, "1 Coin 3 Credits" },
- {0x14, 0x01, 0xf0, 0xc0, "1 Coin 4 Credits" },
- {0x14, 0x01, 0xf0, 0xb0, "1 Coin 5 Credits" },
- {0x14, 0x01, 0xf0, 0xa0, "1 Coin 6 Credits" },
- {0x14, 0x01, 0xf0, 0x90, "1 Coin 7 Credits" },
-};
-
-STDDIPINFO(Shaolins)
-
-static void shaolins_write(UINT16 address, UINT8 data)
-{
- switch (address)
- {
- case 0x0000:
- // *flipscreen = data & 0x01;
- *nmi_enable = data & 0x02;
- return;
-
- case 0x0100:
- watchdog = 0;
- return;
-
- case 0x0300:
- SN76496Write(0, data);
- return;
-
- case 0x0400:
- SN76496Write(1, data);
- return;
-
- case 0x0800:
- case 0x1000:
- return; // nop
-
- case 0x1800:
- *palette_bank = data & 0x07;
- return;
-
- case 0x2000:
- scroll[0] = data + 1;
- return;
- }
-}
-
-static UINT8 shaolins_read(UINT16 address)
-{
- switch (address)
- {
- case 0x0500:
- return DrvDips[0];
-
- case 0x0600:
- return DrvDips[1];
-
- case 0x0700:
- case 0x0701:
- case 0x0702:
- return DrvInputs[address & 3];
-
- case 0x0703:
- return DrvDips[2];
- }
-
- return 0;
-}
-
-static INT32 DrvDoReset(INT32 clear_ram)
-{
- if (clear_ram) {
- memset (AllRam, 0, RamEnd - AllRam);
- }
-
- M6809Open(0);
- M6809Reset();
- M6809Close();
-
- watchdog = 0;
-
- HiscoreReset();
-
- return 0;
-}
-
-static INT32 MemIndex()
-{
- UINT8 *Next; Next = AllMem;
-
- DrvM6809ROM = Next; Next += 0x00c0000;
-
- DrvGfxROM0 = Next; Next += 0x0080000;
- DrvGfxROM1 = Next; Next += 0x0100000;
-
- DrvColPROM = Next; Next += 0x0005000;
-;
- DrvPalette = (UINT32*)Next; Next += 0x10000 * sizeof(UINT32);
-
- AllRam = Next;
-
- DrvM6809RAM = Next; Next += 0x0009000;
- DrvSprRAM = Next; Next += 0x0003000;
- DrvColRAM = Next; Next += 0x0004000;
- DrvVidRAM = Next; Next += 0x0004000;
-
- scroll = (UINT16*)Next; Next += 0x000001 * sizeof(UINT16);
- flipscreen = Next; Next += 0x000001;
- palette_bank = Next; Next += 0x000001;
- nmi_enable = Next; Next += 0x000001;
-
- RamEnd = Next;
- MemEnd = Next;
-
- return 0;
-}
-
-static void DrvGfxDecode()
-{
- INT32 Plane0[4] = { 512*16*8+4, 512*16*8+0, 4, 0 };
- INT32 Plane1[4] = { 256*64*8+4, 256*64*8+0, 4, 0 };
- INT32 XOffs[16] = { STEP4(0,1), STEP4(64,1), STEP4(128,1), STEP4(192,1) };
- INT32 YOffs[16] = { STEP8(0,8), STEP8(256,8) };
-
- UINT8 *tmp = (UINT8*)BurnMalloc(0x8000);
-
- memcpy (tmp, DrvGfxROM0, 0x04000);
-
- GfxDecode(0x200, 4, 8, 8, Plane0, XOffs, YOffs, 0x080, tmp, DrvGfxROM0);
-
- memcpy (tmp, DrvGfxROM1, 0x8000);
-
- GfxDecode(0x100, 4, 16, 16, Plane1, XOffs, YOffs, 0x200, tmp, DrvGfxROM1);
-
- BurnFree(tmp);
-}
-
-static void DrvPaletteInit()
-{
- UINT32 pens[0x100];
-
- INT32 weights[4] = { 2200,1000,470,220 };
-
- {
- INT32 total = 0;
- for (INT32 i = 0; i < 4; i++) {
- total += weights[i];
- }
-
- for (INT32 i = 0; i < 4; i++) {
- weights[i] = (((((INT32)weights[i] * 10000) / total) * 255) + 5000) / 10000;
- }
- }
-
- for (INT32 i = 0; i < 0x100; i++)
- {
- INT32 bit0 = (DrvColPROM[i + 0x000] >> 0) & 0x01;
- INT32 bit1 = (DrvColPROM[i + 0x000] >> 1) & 0x01;
- INT32 bit2 = (DrvColPROM[i + 0x000] >> 2) & 0x01;
- INT32 bit3 = (DrvColPROM[i + 0x000] >> 3) & 0x01;
- INT32 r = (weights[3] * bit0) + (weights[2] * bit1) + (weights[1] * bit2) + (weights[0] * bit3);
-
- bit0 = (DrvColPROM[i + 0x100] >> 0) & 0x01;
- bit1 = (DrvColPROM[i + 0x100] >> 1) & 0x01;
- bit2 = (DrvColPROM[i + 0x100] >> 2) & 0x01;
- bit3 = (DrvColPROM[i + 0x100] >> 3) & 0x01;
- INT32 g = (weights[3] * bit0) + (weights[2] * bit1) + (weights[1] * bit2) + (weights[0] * bit3);
-
- bit0 = (DrvColPROM[i + 0x200] >> 0) & 0x01;
- bit1 = (DrvColPROM[i + 0x200] >> 1) & 0x01;
- bit2 = (DrvColPROM[i + 0x200] >> 2) & 0x01;
- bit3 = (DrvColPROM[i + 0x200] >> 3) & 0x01;
- INT32 b = (weights[3] * bit0) + (weights[2] * bit1) + (weights[1] * bit2) + (weights[0] * bit3);
-
- pens[i] = BurnHighCol(r,g,b,0);
- }
-
- for (INT32 i = 0; i < 0x200; i++)
- {
- for (INT32 j = 0; j < 8; j++)
- {
- UINT8 ctabentry = (j << 5) | ((~i & 0x100) >> 4) | (DrvColPROM[0x300+i] & 0x0f);
- DrvPalette[((i & 0x100) << 3) | (j << 8) | (i & 0xff)] = pens[ctabentry];
- }
- }
-}
-
-static INT32 DrvInit()
-{
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(DrvM6809ROM + 0x2000, 0, 1)) return 1;
- if (BurnLoadRom(DrvM6809ROM + 0x4000, 1, 1)) return 1;
- if (BurnLoadRom(DrvM6809ROM + 0x8000, 2, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x0000, 3, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x2000, 4, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM1 + 0x0000, 5, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x4000, 6, 1)) return 1;
-
- if (BurnLoadRom(DrvColPROM + 0x0000, 7, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x0100, 8, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x0200, 9, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x0300, 10, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x0400, 11, 1)) return 1;
-
- DrvGfxDecode();
- DrvPaletteInit();
- }
-
- M6809Init(1);
- M6809Open(0);
- M6809MapMemory(DrvM6809RAM, 0x2800, 0x30ff, MAP_RAM);
- M6809MapMemory(DrvSprRAM, 0x3100, 0x33ff, MAP_RAM);
- M6809MapMemory(DrvColRAM, 0x3800, 0x3bff, MAP_RAM);
- M6809MapMemory(DrvVidRAM, 0x3c00, 0x3fff, MAP_RAM);
-
- M6809MapMemory(DrvM6809ROM, 0x4000, 0xffff, MAP_ROM);
- M6809SetWriteHandler(shaolins_write);
- M6809SetReadHandler(shaolins_read);
- M6809Close();
-
- SN76489AInit(0, 1536000, 0);
- SN76496SetRoute(0, 1.00, BURN_SND_ROUTE_BOTH);
-
- SN76489AInit(1, 3072000, 1);
- SN76496SetRoute(1, 1.00, BURN_SND_ROUTE_BOTH);
-
- GenericTilesInit();
-
- DrvDoReset(1);
-
- return 0;
-}
-
-static INT32 DrvExit()
-{
- GenericTilesExit();
-
- M6809Exit();
- SN76496Exit();
-
- BurnFree (AllMem);
-
- return 0;
-}
-
-static void draw_layer()
-{
- for (INT32 offs = 0; offs < 32 * 32; offs++)
- {
- INT32 sx = (offs & 0x1f) * 8;
- INT32 sy = ((offs / 0x20) * 8);
-
- if (sx >= 32) sy -= scroll[0] & 0xff;
- if (sy < -7) sy += 256;
- sy -= 16;
-
- INT32 attr = DrvColRAM[offs];
- INT32 code = DrvVidRAM[offs] | ((attr & 0x40) << 2);
- INT32 color =(attr & 0x0f) + (*palette_bank << 4);
- INT32 flipy = attr & 0x20;
-
- if (flipy) {
- Render8x8Tile_FlipY_Clip(pTransDraw, code, sx, sy, color, 4, 0, DrvGfxROM0);
- } else {
- Render8x8Tile_Clip(pTransDraw, code, sx, sy, color, 4, 0, DrvGfxROM0);
- }
- }
-}
-
-static void draw_sprites()
-{
- for (INT32 offs = 0x300 - 0x20; offs >= 0; offs -= 0x20)
- {
- if (!DrvSprRAM[offs] || !DrvSprRAM[offs + 6]) continue;
-
- INT32 sy = 248 - DrvSprRAM[offs + 4];
- INT32 sx = 240 - DrvSprRAM[offs + 6];
- INT32 code = DrvSprRAM[offs + 8];
- INT32 attr = DrvSprRAM[offs + 9];
- INT32 color = (attr & 0x0f) + (*palette_bank << 4);
- INT32 flipx = ~attr & 0x40;
- INT32 flipy = attr & 0x80;
-
- if (*flipscreen)
- {
- sx = 240 - sx;
- sy = 248 - sy;
- flipx = !flipx;
- flipy = !flipy;
- }
-
- if (flipy) {
- if (flipx) {
- Render16x16Tile_Mask_FlipXY_Clip(pTransDraw, code, sx, sy - 16, color, 4, 0, 0x800, DrvGfxROM1);
- } else {
- Render16x16Tile_Mask_FlipY_Clip(pTransDraw, code, sx, sy - 16, color, 4, 0, 0x800, DrvGfxROM1);
- }
- } else {
- if (flipx) {
- Render16x16Tile_Mask_FlipX_Clip(pTransDraw, code, sx, sy - 16, color, 4, 0, 0x800, DrvGfxROM1);
- } else {
- Render16x16Tile_Mask_Clip(pTransDraw, code, sx, sy - 16, color, 4, 0, 0x800, DrvGfxROM1);
- }
- }
- }
-}
-
-static INT32 DrvDraw()
-{
- if (DrvRecalc) {
- DrvPaletteInit();
- DrvRecalc = 0;
- }
-
- draw_layer();
- draw_sprites();
-
- BurnTransferCopy(DrvPalette);
-
- return 0;
-}
-
-static INT32 DrvFrame()
-{
- watchdog++;
- if (watchdog >= 180) {
- DrvDoReset(0);
- }
-
- if (DrvReset) {
- DrvDoReset(1);
- }
-
- {
- memset (DrvInputs, 0xff, 3);
- for (INT32 i = 0; i < 8; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- DrvInputs[2] ^= (DrvJoy3[i] & 1) << i;
- }
- }
-
- M6809NewFrame();
-
- INT32 nInterleave = 256;
- INT32 nCyclesTotal[1] = { 1536000 / 60 };
- INT32 nCyclesDone[1] = { 0 };
- INT32 nSoundBufferPos = 0;
-
- M6809Open(0);
-
- for (INT32 i = 0; i < nInterleave; i++)
- {
- nCyclesDone[0] += M6809Run(nCyclesTotal[0] / nInterleave);
-
- if (*nmi_enable && (i & 0x1f) == 0)
- M6809SetIRQLine(0x20, CPU_IRQSTATUS_AUTO); // 480x/second (8x/frame)
-
- if (i == 240) M6809SetIRQLine(0, CPU_IRQSTATUS_AUTO);
-
- // Render Sound Segment
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen / nInterleave;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- SN76496Update(0, pSoundBuf, nSegmentLength);
- SN76496Update(1, pSoundBuf, nSegmentLength);
- nSoundBufferPos += nSegmentLength;
- }
- }
-
- // Make sure the buffer is entirely filled.
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- if (nSegmentLength) {
- SN76496Update(0, pSoundBuf, nSegmentLength);
- SN76496Update(1, pSoundBuf, nSegmentLength);
- }
- }
-
- M6809Close();
-
- if (pBurnDraw) {
- DrvDraw();
- }
-
- return 0;
-}
-
-static INT32 DrvScan(INT32 nAction,INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin) {
- *pnMin = 0x029705;
- }
-
- if (nAction & ACB_VOLATILE) {
- memset(&ba, 0, sizeof(ba));
- ba.Data = AllRam;
- ba.nLen = RamEnd - AllRam;
- ba.szName = "All Ram";
- BurnAcb(&ba);
-
- M6809Scan(nAction);
-
- SN76496Scan(nAction, pnMin);
- }
-
- return 0;
-}
-
-
-// Kicker
-
-static struct BurnRomInfo kickerRomDesc[] = {
- { "477-l03.d9", 0x2000, 0x2598dfdd, 1 | BRF_PRG | BRF_ESS }, // 0 M6809 Code
- { "477-l04.d10", 0x4000, 0x0cf0351a, 1 | BRF_PRG | BRF_ESS }, // 1
- { "477-l05.d11", 0x4000, 0x654037f8, 1 | BRF_PRG | BRF_ESS }, // 2
-
- { "477-k06.a10", 0x2000, 0x4d156afc, 2 | BRF_GRA | BRF_ESS }, // 3 Characters
- { "477-k07.a11", 0x2000, 0xff6ca5df, 2 | BRF_GRA | BRF_ESS }, // 4
-
- { "477-k02.h15", 0x4000, 0xb94e645b, 3 | BRF_GRA | BRF_ESS }, // 5 Sprites
- { "477-k01.h14", 0x4000, 0x61bbf797, 3 | BRF_GRA | BRF_ESS }, // 6
-
- { "477j10.a12", 0x0100, 0xb09db4b4, 4 | BRF_GRA | BRF_ESS }, // 7 Color PROMs
- { "477j11.a13", 0x0100, 0x270a2bf3, 4 | BRF_GRA | BRF_ESS }, // 8
- { "477j12.a14", 0x0100, 0x83e95ea8, 4 | BRF_GRA | BRF_ESS }, // 9
- { "477j09.b8", 0x0100, 0xaa900724, 4 | BRF_GRA | BRF_ESS }, // 10
- { "477j08.f16", 0x0100, 0x80009cf5, 4 | BRF_GRA | BRF_ESS }, // 11
-};
-
-STD_ROM_PICK(kicker)
-STD_ROM_FN(kicker)
-
-struct BurnDriver BurnDrvKicker = {
- "kicker", NULL, NULL, NULL, "1985",
- "Kicker\0", NULL, "Konami", "GX477",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_KONAMI, GBF_SCRFIGHT, 0,
- NULL, kickerRomInfo, kickerRomName, NULL, NULL, ShaolinsInputInfo, ShaolinsDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x1000,
- 224, 256, 3, 4
-};
-
-
-// Shao-lin's Road (set 1)
-
-static struct BurnRomInfo shaolinsRomDesc[] = {
- { "477-l03.d9", 0x2000, 0x2598dfdd, 1 | BRF_PRG | BRF_ESS }, // 0 M6809 Code
- { "477-l04.d10", 0x4000, 0x0cf0351a, 1 | BRF_PRG | BRF_ESS }, // 1
- { "477-l05.d11", 0x4000, 0x654037f8, 1 | BRF_PRG | BRF_ESS }, // 2
-
- { "shaolins.a10", 0x2000, 0xff18a7ed, 2 | BRF_GRA | BRF_ESS }, // 3 Characters
- { "shaolins.a11", 0x2000, 0x5f53ae61, 2 | BRF_GRA | BRF_ESS }, // 4
-
- { "477-k02.h15", 0x4000, 0xb94e645b, 3 | BRF_GRA | BRF_ESS }, // 5 Sprites
- { "477-k01.h14", 0x4000, 0x61bbf797, 3 | BRF_GRA | BRF_ESS }, // 6
-
- { "477j10.a12", 0x0100, 0xb09db4b4, 4 | BRF_GRA | BRF_ESS }, // 7 Color PROMs
- { "477j11.a13", 0x0100, 0x270a2bf3, 4 | BRF_GRA | BRF_ESS }, // 8
- { "477j12.a14", 0x0100, 0x83e95ea8, 4 | BRF_GRA | BRF_ESS }, // 9
- { "477j09.b8", 0x0100, 0xaa900724, 4 | BRF_GRA | BRF_ESS }, // 10
- { "477j08.f16", 0x0100, 0x80009cf5, 4 | BRF_GRA | BRF_ESS }, // 11
-};
-
-STD_ROM_PICK(shaolins)
-STD_ROM_FN(shaolins)
-
-struct BurnDriver BurnDrvShaolins = {
- "shaolins", "kicker", NULL, NULL, "1985",
- "Shao-lin's Road (set 1)\0", NULL, "Konami", "GX477",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_KONAMI, GBF_SCRFIGHT, 0,
- NULL, shaolinsRomInfo, shaolinsRomName, NULL, NULL, ShaolinsInputInfo, ShaolinsDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x1000,
- 224, 256, 3, 4
-};
-
-
-// Shao-lin's Road (set 2)
-
-static struct BurnRomInfo shaolinbRomDesc[] = {
- { "3.h4", 0x2000, 0x2598dfdd, 1 | BRF_PRG | BRF_ESS }, // 0 M6809 Code
- { "4.i4", 0x4000, 0x0cf0351a, 1 | BRF_PRG | BRF_ESS }, // 1
- { "5.j4", 0x4000, 0x654037f8, 1 | BRF_PRG | BRF_ESS }, // 2
-
- { "6.i1", 0x2000, 0xff18a7ed, 2 | BRF_GRA | BRF_ESS }, // 3 Characters
- { "7.j1", 0x4000, 0xd9a7cff6, 2 | BRF_GRA | BRF_ESS }, // 4
-
- { "2.m8", 0x4000, 0x560521c7, 3 | BRF_GRA | BRF_ESS }, // 5 Sprites
- { "1.l8", 0x4000, 0xa79959b2, 3 | BRF_GRA | BRF_ESS }, // 6
-
- { "3.k1", 0x0100, 0xb09db4b4, 4 | BRF_GRA | BRF_ESS }, // 7 Color PROMs
- { "4.l1", 0x0100, 0x270a2bf3, 4 | BRF_GRA | BRF_ESS }, // 8
- { "5.m1", 0x0100, 0x83e95ea8, 4 | BRF_GRA | BRF_ESS }, // 9
- { "2.g2", 0x0100, 0xaa900724, 4 | BRF_GRA | BRF_ESS }, // 10
- { "1.o6", 0x0100, 0x80009cf5, 4 | BRF_GRA | BRF_ESS }, // 11
-};
-
-STD_ROM_PICK(shaolinb)
-STD_ROM_FN(shaolinb)
-
-struct BurnDriver BurnDrvShaolinb = {
- "shaolinb", "kicker", NULL, NULL, "1985",
- "Shao-lin's Road (set 2)\0", NULL, "Konami", "GX477",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_KONAMI, GBF_SCRFIGHT, 0,
- NULL, shaolinbRomInfo, shaolinbRomName, NULL, NULL, ShaolinsInputInfo, ShaolinsDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x1000,
- 224, 256, 3, 4
-};
diff --git a/jan/src/burn/drv/konami/d_simpsons.cpp b/jan/src/burn/drv/konami/d_simpsons.cpp
deleted file mode 100644
index dd974db3d..000000000
--- a/jan/src/burn/drv/konami/d_simpsons.cpp
+++ /dev/null
@@ -1,981 +0,0 @@
-// FB Alpha The Simpsons driver module
-// Based on MAME driver by Ernesto Corvi and various others
-
-#include "tiles_generic.h"
-#include "z80_intf.h"
-#include "burn_ym2151.h"
-#include "konami_intf.h"
-#include "konamiic.h"
-#include "k053260.h"
-#include "eeprom.h"
-
-static UINT8 *AllMem;
-static UINT8 *MemEnd;
-static UINT8 *AllRam;
-static UINT8 *RamEnd;
-static UINT8 *DrvKonROM;
-static UINT8 *DrvZ80ROM;
-static UINT8 *DrvGfxROM0;
-static UINT8 *DrvGfxROMExp0;
-static UINT8 *DrvGfxROM1;
-static UINT8 *DrvGfxROMExp1;
-static UINT8 *DrvSndROM;
-static UINT8 *DrvKonRAM;
-static UINT8 *DrvPalRAM;
-static UINT8 *DrvSprRAM;
-static UINT8 *DrvZ80RAM;
-
-static UINT32 *DrvPalette;
-static UINT8 DrvRecalc;
-
-static UINT8 *nDrvBank;
-
-static INT32 videobank;
-static INT32 init_eeprom_count;
-static INT32 simpsons_firq_enabled;
-static INT32 K053246Irq;
-
-static INT32 bg_colorbase;
-static INT32 sprite_colorbase;
-static INT32 layer_colorbase[3];
-static INT32 layerpri[3];
-
-static UINT8 DrvJoy1[8];
-static UINT8 DrvJoy2[8];
-static UINT8 DrvJoy3[8];
-static UINT8 DrvJoy4[8];
-static UINT8 DrvJoy5[8];
-static UINT8 DrvDiag;
-static UINT8 DrvReset;
-static UINT8 DrvInputs[5];
-
-static INT32 nCyclesDone[2];
-
-static struct BurnInputInfo SimpsonsInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy5 + 0, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 7, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy1 + 2, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy1 + 3, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy1 + 0, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy1 + 1, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy1 + 4, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy1 + 5, "p1 fire 2" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy5 + 1, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy2 + 7, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvJoy2 + 2, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy2 + 3, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy2 + 0, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy2 + 1, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy2 + 4, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy2 + 5, "p2 fire 2" },
-
- {"P3 Coin", BIT_DIGITAL, DrvJoy5 + 2, "p3 coin" },
- {"P3 Start", BIT_DIGITAL, DrvJoy3 + 7, "p3 start" },
- {"P3 Up", BIT_DIGITAL, DrvJoy3 + 2, "p3 up" },
- {"P3 Down", BIT_DIGITAL, DrvJoy3 + 3, "p3 down" },
- {"P3 Left", BIT_DIGITAL, DrvJoy3 + 0, "p3 left" },
- {"P3 Right", BIT_DIGITAL, DrvJoy3 + 1, "p3 right" },
- {"P3 Button 1", BIT_DIGITAL, DrvJoy3 + 4, "p3 fire 1" },
- {"P3 Button 2", BIT_DIGITAL, DrvJoy3 + 5, "p3 fire 2" },
-
- {"P4 Coin", BIT_DIGITAL, DrvJoy5 + 3, "p4 coin" },
- {"P4 Start", BIT_DIGITAL, DrvJoy4 + 7, "p4 start" },
- {"P4 Up", BIT_DIGITAL, DrvJoy4 + 2, "p4 up" },
- {"P4 Down", BIT_DIGITAL, DrvJoy4 + 3, "p4 down" },
- {"P4 Left", BIT_DIGITAL, DrvJoy4 + 0, "p4 left" },
- {"P4 Right", BIT_DIGITAL, DrvJoy4 + 1, "p4 right" },
- {"P4 Button 1", BIT_DIGITAL, DrvJoy4 + 4, "p4 fire 1" },
- {"P4 Button 2", BIT_DIGITAL, DrvJoy4 + 5, "p4 fire 2" },
-
- {"Diagnostics", BIT_DIGITAL, &DrvDiag, "diag" },
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
-};
-
-STDINPUTINFO(Simpsons)
-
-static struct BurnInputInfo Simpsons2pInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy5 + 0, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 7, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy1 + 2, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy1 + 3, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy1 + 0, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy1 + 1, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy1 + 4, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy1 + 5, "p1 fire 2" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy5 + 1, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy2 + 7, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvJoy2 + 2, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy2 + 3, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy2 + 0, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy2 + 1, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy2 + 4, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy2 + 5, "p2 fire 2" },
-
- {"Diagnostics", BIT_DIGITAL, &DrvDiag, "diag" },
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
-};
-
-STDINPUTINFO(Simpsons2p)
-
-void simpsons_main_write(UINT16 address, UINT8 data)
-{
- switch (address)
- {
- case 0x1fa0:
- case 0x1fa1:
- case 0x1fa2:
- case 0x1fa3:
- case 0x1fa4:
- case 0x1fa5:
- case 0x1fa6:
- case 0x1fa7:
- K053246Write(address & 7, data);
- return;
-
- case 0x1fc0:
- K052109RMRDLine = data & 0x08;
- K053246_set_OBJCHA_line(~data & 0x20);
- return;
-
- case 0x1fc2:
- {
- if (data == 0xff) return; // ok?
-
- EEPROMWrite((data & 0x10) >> 3, (data & 0x08) >> 3, (data & 0x80) >> 7);
-
- videobank = data & 3;
- simpsons_firq_enabled = data & 0x04;
- }
- return;
-
- case 0x1fc6:
- case 0x1fc7:
- K053260Write(0, address & 1, data);
- return;
- }
-
- if ((address & 0xf000) == 0x0000) {
- if (videobank & 1) {
- DrvPalRAM[address & 0x0fff] = data;
- return;
- }
- }
-
- if ((address & 0xfff0) == 0x1fb0) {
- K053251Write(address & 0x0f, data);
- return;
- }
-
- if ((address & 0xe000) == 0x2000) {
- if (videobank & 2) {
- address ^= 1;
- DrvSprRAM[address & 0x1fff] = data;
- return;
- }
- }
-
- if ((address & 0xc000) == 0x0000) {
- K052109Write(address & 0x3fff, data);
- return;
- }
-}
-
-UINT8 simpsons_main_read(UINT16 address)
-{
- switch (address)
- {
- case 0x1f81:
- {
- INT32 res = ((EEPROMRead() & 1) << 4) | 0x20 | (~DrvDiag & 1);
-
- if (init_eeprom_count > 0)
- {
- init_eeprom_count--;
- res &= 0xfe;
- }
- return res;
- }
-
- case 0x1f80:
- return DrvInputs[4];
-
- case 0x1f90:
- return DrvInputs[0];
-
- case 0x1f91:
- return DrvInputs[1];
-
- case 0x1f92:
- return DrvInputs[2];
-
- case 0x1f93:
- return DrvInputs[3];
-
- case 0x1fc4:
- ZetSetVector(0xff);
- ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
- return 0;
-
- case 0x1fc6:
- case 0x1fc7:
- return K053260Read(0, (address & 1)+2);
-
- case 0x1fc8:
- case 0x1fc9:
- return K053246Read(address & 1);
-
- case 0x1fca:
- return 0; // watchdog
- }
-
- if ((address & 0xf000) == 0x0000) {
- if (videobank & 1) {
- return DrvPalRAM[address & 0x0fff];
- }
- }
-
- if ((address & 0xe000) == 0x2000) {
- if (videobank & 2) {
- address ^= 1;
- return DrvSprRAM[address & 0x1fff];
- }
- }
-
- if ((address & 0xc000) == 0x0000) {
- return K052109Read(address & 0x3fff);
- }
-
- return 0;
-}
-
-static void DrvZ80Bankswitch(INT32 data)
-{
- data &= 0x07;
- if (data < 2) return;
-
- INT32 nBank = (data & 7) * 0x4000;
-
- nDrvBank[1] = data;
-
- ZetMapArea(0x8000, 0xbfff, 0, DrvZ80ROM + nBank);
- ZetMapArea(0x8000, 0xbfff, 2, DrvZ80ROM + nBank);
-}
-
-void __fastcall simpsons_sound_write(UINT16 address, UINT8 data)
-{
- switch (address)
- {
- case 0xf800:
- BurnYM2151SelectRegister(data);
- return;
-
- case 0xf801:
- BurnYM2151WriteRegister(data);
- return;
-
- case 0xfa00:
- nCyclesDone[1] += ZetRun(100);
- ZetNmi();
- return;
-
- case 0xfe00:
- DrvZ80Bankswitch(data);
- return;
- }
-
- if (address >= 0xfc00 && address < 0xfc30) {
- K053260Write(0, address & 0xff, data);
- return;
- }
-}
-
-UINT8 __fastcall simpsons_sound_read(UINT16 address)
-{
- switch (address)
- {
- case 0xf800:
- return 0xff;
- case 0xf801:
- return BurnYM2151ReadStatus();
- }
-
- if (address >= 0xfc00 && address < 0xfc30) {
- if ((address & 0x3f) == 0x01) ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
-
- return K053260Read(0, address & 0xff);
- }
-
- return 0;
-}
-
-static void simpsons_set_lines(INT32 lines)
-{
- nDrvBank[0] = lines;
-
- INT32 nBank = (lines & 0x3f) * 0x2000;
-
- konamiMapMemory(DrvKonROM + 0x10000 + nBank, 0x6000, 0x7fff, MAP_ROM);
-}
-
-static void K052109Callback(INT32 layer, INT32 bank, INT32 *code, INT32 *color, INT32 *, INT32 *)
-{
- *code |= ((*color & 0x3f) << 8) | (bank << 14);
- *color = layer_colorbase[layer] + ((*color & 0xc0) >> 6);
- *code &= 0x7fff;
-}
-
-static void DrvK053247Callback(INT32 *code, INT32 *color, INT32 *priority)
-{
- INT32 pri = (*color & 0x0f80) >> 6;
- if (pri <= layerpri[2]) *priority = 0x00;
- else if (pri > layerpri[2] && pri <= layerpri[1]) *priority = 0xf0;
- else if (pri > layerpri[1] && pri <= layerpri[0]) *priority = 0xfc;
- else *priority = 0xfe;
-
- *color = sprite_colorbase + (*color & 0x001f);
-
- *code &= 0x7fff;
-}
-
-static INT32 DrvDoReset()
-{
- DrvReset = 0;
-
- memset (AllRam, 0, RamEnd - AllRam);
-
- konamiOpen(0);
- konamiReset();
- konamiClose();
-
- ZetOpen(0);
- ZetReset();
- ZetClose();
-
- BurnYM2151Reset();
-
- KonamiICReset();
-
- K053260Reset(0);
-
- EEPROMReset();
-
- videobank = 0;
-
- if (EEPROMAvailable()) {
- init_eeprom_count = 0;
- } else {
- init_eeprom_count = 10;
- }
-
- simpsons_firq_enabled = 0;
- K053246Irq = 0;
-
- return 0;
-}
-
-static INT32 MemIndex()
-{
- UINT8 *Next; Next = AllMem;
-
- DrvKonROM = Next; Next += 0x090000;
- DrvZ80ROM = Next; Next += 0x020000;
-
- DrvGfxROM0 = Next; Next += 0x100000;
- DrvGfxROMExp0 = Next; Next += 0x200000;
- DrvGfxROM1 = Next; Next += 0x400000;
- DrvGfxROMExp1 = Next; Next += 0x800000;
-
- DrvSndROM = Next; Next += 0x200000;
-
- DrvPalette = (UINT32*)Next; Next += 0x800 * sizeof(UINT32);
-
- AllRam = Next;
-
- DrvZ80RAM = Next; Next += 0x000800;
-
- DrvKonRAM = Next; Next += 0x002000;
- DrvPalRAM = Next; Next += 0x001000;
- DrvSprRAM = Next; Next += 0x002000;
-
- nDrvBank = Next; Next += 0x000002;
-
- RamEnd = Next;
- MemEnd = Next;
-
- return 0;
-}
-
-static const eeprom_interface simpsons_eeprom_intf =
-{
- 7, // address bits
- 8, // data bits
- "011000", // read command
- "011100", // write command
- 0, // erase command
- "0100000000000", // lock command
- "0100110000000", // unlock command
- 0,
- 0
-};
-
-static INT32 DrvInit()
-{
- GenericTilesInit();
-
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(DrvKonROM + 0x010000, 0, 1)) return 1;
- if (BurnLoadRom(DrvKonROM + 0x030000, 1, 1)) return 1;
- if (BurnLoadRom(DrvKonROM + 0x050000, 2, 1)) return 1;
- if (BurnLoadRom(DrvKonROM + 0x070000, 3, 1)) return 1;
- memcpy (DrvKonROM + 0x08000, DrvKonROM + 0x88000, 0x8000);
-
- if (BurnLoadRom(DrvZ80ROM + 0x000000, 4, 1)) return 1;
-
- if (BurnLoadRomExt(DrvGfxROM0 + 0x000000, 5, 4, 2)) return 1;
- if (BurnLoadRomExt(DrvGfxROM0 + 0x000002, 6, 4, 2)) return 1;
-
- if (BurnLoadRomExt(DrvGfxROM1 + 0x000000, 7, 8, 2)) return 1;
- if (BurnLoadRomExt(DrvGfxROM1 + 0x000002, 8, 8, 2)) return 1;
- if (BurnLoadRomExt(DrvGfxROM1 + 0x000004, 9, 8, 2)) return 1;
- if (BurnLoadRomExt(DrvGfxROM1 + 0x000006, 10, 8, 2)) return 1;
-
- if (BurnLoadRom(DrvSndROM + 0x000000, 11, 1)) return 1;
- if (BurnLoadRom(DrvSndROM + 0x100000, 12, 1)) return 1;
-
- K052109GfxDecode(DrvGfxROM0, DrvGfxROMExp0, 0x100000);
- K053247GfxDecode(DrvGfxROM1, DrvGfxROMExp1, 0x400000);
- }
-
- konamiInit(0);
- konamiOpen(0);
- konamiMapMemory(DrvKonRAM, 0x4000, 0x5fff, MAP_RAM);
- konamiMapMemory(DrvKonROM + 0x10000, 0x6000, 0x7fff, MAP_ROM);
- konamiMapMemory(DrvKonROM + 0x08000, 0x8000, 0xffff, MAP_ROM);
- konamiSetWriteHandler(simpsons_main_write);
- konamiSetReadHandler(simpsons_main_read);
- konamiSetlinesCallback(simpsons_set_lines);
- konamiClose();
-
- ZetInit(0);
- ZetOpen(0);
- ZetMapArea(0x0000, 0x7fff, 0, DrvZ80ROM);
- ZetMapArea(0x0000, 0x7fff, 2, DrvZ80ROM);
- ZetMapArea(0x8000, 0xbfff, 0, DrvZ80ROM + 0x08000);
- ZetMapArea(0x8000, 0xbfff, 2, DrvZ80ROM + 0x08000);
- ZetMapArea(0xf000, 0xf7ff, 0, DrvZ80RAM);
- ZetMapArea(0xf000, 0xf7ff, 1, DrvZ80RAM);
- ZetMapArea(0xf000, 0xf7ff, 2, DrvZ80RAM);
- ZetSetWriteHandler(simpsons_sound_write);
- ZetSetReadHandler(simpsons_sound_read);
- ZetClose();
-
- EEPROMInit(&simpsons_eeprom_intf);
-
- K052109Init(DrvGfxROM0, DrvGfxROMExp0, 0x0fffff);
- K052109SetCallback(K052109Callback);
- K052109AdjustScroll(8, 0);
-
- K053247Init(DrvGfxROM1, DrvGfxROMExp1, 0x3fffff, DrvK053247Callback, 0x03 /* shadows & highlights */);
- K053247SetSpriteOffset(-59, -39);
-
- BurnYM2151Init(3579545);
- BurnYM2151SetRoute(BURN_SND_YM2151_YM2151_ROUTE_1, 1.00, BURN_SND_ROUTE_BOTH);
- BurnYM2151SetRoute(BURN_SND_YM2151_YM2151_ROUTE_2, 0.00, BURN_SND_ROUTE_BOTH); // not connected
-
- K053260Init(0, 3579545, DrvSndROM, 0x140000);
- K053260SetRoute(0, BURN_SND_K053260_ROUTE_1, 0.75, BURN_SND_ROUTE_RIGHT);
- K053260SetRoute(0, BURN_SND_K053260_ROUTE_2, 0.75, BURN_SND_ROUTE_LEFT);
-
- DrvDoReset();
-
- return 0;
-}
-
-static INT32 DrvExit()
-{
- GenericTilesExit();
-
- KonamiICExit();
-
- konamiExit();
- ZetExit();
-
- EEPROMExit();
-
- BurnYM2151Exit();
- K053260Exit();
-
- BurnFree (AllMem);
-
- return 0;
-}
-
-static void simpsons_objdma()
-{
- INT32 counter, num_inactive;
- UINT8 *dstptr;
- UINT16 *src, *dst;
-
- K053247Export(&dstptr, 0, 0, 0, &counter);
- src = (UINT16*)DrvSprRAM;
- dst = (UINT16*)dstptr;
- num_inactive = counter = 256;
-
- do {
- if ((*src & BURN_ENDIAN_SWAP_INT16(0x8000)) && (*src & BURN_ENDIAN_SWAP_INT16(0xff)))
- {
- memcpy(dst, src, 0x10);
- dst += 8;
- num_inactive--;
- }
- src += 8;
- }
- while (--counter);
-
- if (num_inactive) do { *dst = 0; dst += 8; } while (--num_inactive);
-}
-
-static INT32 DrvDraw()
-{
- KonamiRecalcPalette(DrvPalRAM, DrvPalette, 0x1000);
-
- K052109UpdateScroll();
-
- INT32 layer[3];
-
- bg_colorbase = K053251GetPaletteIndex(0);
- sprite_colorbase = K053251GetPaletteIndex(1);
- layer_colorbase[0] = K053251GetPaletteIndex(2);
- layer_colorbase[1] = K053251GetPaletteIndex(3);
- layer_colorbase[2] = K053251GetPaletteIndex(4);
-
- layerpri[0] = K053251GetPriority(2);
- layerpri[1] = K053251GetPriority(3);
- layerpri[2] = K053251GetPriority(4);
- layer[0] = 0;
- layer[1] = 1;
- layer[2] = 2;
-
- konami_sortlayers3(layer,layerpri);
-
- KonamiClearBitmaps(DrvPalette[16 * bg_colorbase]);
-
- if (nBurnLayer & 1) K052109RenderLayer(layer[0], 0, 1);
- if (nBurnLayer & 2) K052109RenderLayer(layer[1], 0, 2);
- if (nBurnLayer & 4) K052109RenderLayer(layer[2], 0, 4);
-
- if (nSpriteEnable & 1) K053247SpritesRender();
-
- KonamiBlendCopy(DrvPalette);
-
- return 0;
-}
-
-static INT32 DrvFrame()
-{
- if (DrvReset) {
- DrvDoReset();
- }
-
- ZetNewFrame();
- konamiNewFrame();
-
- {
- memset (DrvInputs, 0xff, 5);
- for (INT32 i = 0; i < 8; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- DrvInputs[2] ^= (DrvJoy3[i] & 1) << i;
- DrvInputs[3] ^= (DrvJoy4[i] & 1) << i;
- DrvInputs[4] ^= (DrvJoy5[i] & 1) << i;
- }
-
- // Clear Opposites
- if ((DrvInputs[0] & 0x0c) == 0) DrvInputs[0] |= 0x0c;
- if ((DrvInputs[0] & 0x03) == 0) DrvInputs[0] |= 0x03;
- if ((DrvInputs[1] & 0x0c) == 0) DrvInputs[1] |= 0x0c;
- if ((DrvInputs[1] & 0x03) == 0) DrvInputs[1] |= 0x03;
- if ((DrvInputs[2] & 0x0c) == 0) DrvInputs[2] |= 0x0c;
- if ((DrvInputs[2] & 0x03) == 0) DrvInputs[2] |= 0x03;
- if ((DrvInputs[3] & 0x0c) == 0) DrvInputs[3] |= 0x0c;
- if ((DrvInputs[3] & 0x03) == 0) DrvInputs[3] |= 0x03;
- }
-
- INT32 nInterleave = nBurnSoundLen;
- INT32 nSoundBufferPos = 0;
- INT32 nCyclesTotal[2] = { 3000000 / 60, 3579545 / 60 };
-
- nCyclesDone[0] = nCyclesDone[1] = 0;
-
- ZetOpen(0);
- konamiOpen(0);
-
- for (INT32 i = 0; i < nInterleave; i++) {
- INT32 nNext, nCyclesSegment;
-
- nNext = (i + 1) * nCyclesTotal[0] / nInterleave;
- nCyclesSegment = nNext - nCyclesDone[0];
- nCyclesSegment = konamiRun(nCyclesSegment);
- nCyclesDone[0] += nCyclesSegment;
-
- if (i == 1 && K053246Irq && simpsons_firq_enabled) {
- konamiSetIrqLine(KONAMI_FIRQ_LINE, CPU_IRQSTATUS_AUTO);
- }
-
- K053246Irq = K053246_is_IRQ_enabled();
-
- nNext = (i + 1) * nCyclesTotal[1] / nInterleave;
- nCyclesSegment = nNext - nCyclesDone[1];
- nCyclesSegment = ZetRun(nCyclesSegment);
- nCyclesDone[1] += nCyclesSegment;
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen / nInterleave;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- BurnYM2151Render(pSoundBuf, nSegmentLength);
- K053260Update(0, pSoundBuf, nSegmentLength);
- nSoundBufferPos += nSegmentLength;
- }
- }
-
- if (K053246Irq) simpsons_objdma();
- if (K052109_irq_enabled) konamiSetIrqLine(KONAMI_IRQ_LINE, CPU_IRQSTATUS_AUTO);
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- if (nSegmentLength) {
- BurnYM2151Render(pSoundBuf, nSegmentLength);
- K053260Update(0, pSoundBuf, nSegmentLength);
- }
- }
-
- konamiClose();
- ZetClose();
-
- if (pBurnDraw) {
- DrvDraw();
- }
-
- return 0;
-}
-
-static INT32 DrvScan(INT32 nAction,INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin) {
- *pnMin = 0x029705;
- }
-
- if (nAction & ACB_VOLATILE) {
- memset(&ba, 0, sizeof(ba));
-
- ba.Data = AllRam;
- ba.nLen = RamEnd - AllRam;
- ba.szName = "All Ram";
- BurnAcb(&ba);
-
- konamiCpuScan(nAction);
- ZetScan(nAction);
-
- BurnYM2151Scan(nAction);
- K053260Scan(nAction);
-
- KonamiICScan(nAction);
-
- EEPROMScan(nAction, pnMin);
-
- SCAN_VAR(videobank);
- SCAN_VAR(init_eeprom_count);
- SCAN_VAR(simpsons_firq_enabled);
- SCAN_VAR(K053246Irq);
- }
-
- if (nAction & ACB_WRITE) {
- konamiOpen(0);
- simpsons_set_lines(nDrvBank[0]);
- konamiClose();
-
- ZetOpen(0);
- DrvZ80Bankswitch(nDrvBank[1]);
- ZetClose();
- }
-
- return 0;
-}
-
-
-// The Simpsons (4 Players World, set 1)
-
-static struct BurnRomInfo simpsonsRomDesc[] = {
- { "072-g02.16c", 0x020000, 0x580ce1d6, 1 | BRF_PRG | BRF_ESS }, // 0 Konami Custom Code
- { "072-g01.17c", 0x020000, 0x9f843def, 1 | BRF_PRG | BRF_ESS }, // 1
- { "072-j13.13c", 0x020000, 0xaade2abd, 1 | BRF_PRG | BRF_ESS }, // 2
- { "072-j12.15c", 0x020000, 0x479e12f2, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "072-e03.6g", 0x020000, 0x866b7a35, 2 | BRF_PRG | BRF_ESS }, // 4 Z80 Code
-
- { "072-b07.18h", 0x080000, 0xba1ec910, 3 | BRF_GRA }, // 5 K052109 Tiles
- { "072-b06.16h", 0x080000, 0xcf2bbcab, 3 | BRF_GRA }, // 6
-
- { "072-b08.3n", 0x100000, 0x7de500ad, 4 | BRF_GRA }, // 7 K053247 Tiles
- { "072-b09.8n", 0x100000, 0xaa085093, 4 | BRF_GRA }, // 8
- { "072-b10.12n", 0x100000, 0x577dbd53, 4 | BRF_GRA }, // 9
- { "072-b11.16l", 0x100000, 0x55fab05d, 4 | BRF_GRA }, // 10
-
- { "072-d05.1f", 0x100000, 0x1397a73b, 5 | BRF_SND }, // 11 K053260 Samples
- { "072-d04.1d", 0x040000, 0x78778013, 5 | BRF_SND }, // 12
-
- { "simpsons.12c.nv", 0x000080, 0xec3f0449, BRF_OPT },
-};
-
-STD_ROM_PICK(simpsons)
-STD_ROM_FN(simpsons)
-
-struct BurnDriver BurnDrvSimpsons = {
- "simpsons", NULL, NULL, NULL, "1991",
- "The Simpsons (4 Players World, set 1)\0", NULL, "Konami", "GX072",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 4, HARDWARE_PREFIX_KONAMI, GBF_SCRFIGHT, 0,
- NULL, simpsonsRomInfo, simpsonsRomName, NULL, NULL, SimpsonsInputInfo, NULL,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 288, 224, 4, 3
-};
-
-
-// The Simpsons (4 Players World, set 2)
-
-static struct BurnRomInfo simpsons4paRomDesc[] = {
- { "072-g02.16c", 0x020000, 0x580ce1d6, 1 | BRF_PRG | BRF_ESS }, // 0 Konami Custom Code
- { "072-g01.17c", 0x020000, 0x9f843def, 1 | BRF_PRG | BRF_ESS }, // 1
- { "072-m13.13c", 0x020000, 0xf36c9423, 1 | BRF_PRG | BRF_ESS }, // 2
- { "072-l12.15c", 0x020000, 0x84f9d9ba, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "072-e03.6g", 0x020000, 0x866b7a35, 2 | BRF_PRG | BRF_ESS }, // 4 Z80 Code
-
- { "072-b07.18h", 0x080000, 0xba1ec910, 3 | BRF_GRA }, // 5 K052109 Tiles
- { "072-b06.16h", 0x080000, 0xcf2bbcab, 3 | BRF_GRA }, // 6
-
- { "072-b08.3n", 0x100000, 0x7de500ad, 4 | BRF_GRA }, // 7 K053247 Tiles
- { "072-b09.8n", 0x100000, 0xaa085093, 4 | BRF_GRA }, // 8
- { "072-b10.12n", 0x100000, 0x577dbd53, 4 | BRF_GRA }, // 9
- { "072-b11.16l", 0x100000, 0x55fab05d, 4 | BRF_GRA }, // 10
-
- { "072-d05.1f", 0x100000, 0x1397a73b, 5 | BRF_SND }, // 11 K053260 Samples
- { "072-d04.1d", 0x040000, 0x78778013, 5 | BRF_SND }, // 12
-
- { "simpsons4pa.12c.nv", 0x000080, 0xec3f0449, BRF_OPT },
-};
-
-STD_ROM_PICK(simpsons4pa)
-STD_ROM_FN(simpsons4pa)
-
-struct BurnDriver BurnDrvSimpsons4pa = {
- "simpsons4pa", "simpsons", NULL, NULL, "1991",
- "The Simpsons (4 Players World, set 2)\0", NULL, "Konami", "GX072",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 4, HARDWARE_PREFIX_KONAMI, GBF_SCRFIGHT, 0,
- NULL, simpsons4paRomInfo, simpsons4paRomName, NULL, NULL, SimpsonsInputInfo, NULL,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 288, 224, 4, 3
-};
-
-
-// The Simpsons (2 Players World, set 1)
-
-static struct BurnRomInfo simpsons2pRomDesc[] = {
- { "072-g02.16c", 0x020000, 0x580ce1d6, 1 | BRF_PRG | BRF_ESS }, // 0 Konami Custom Code
- { "072-p01.17c", 0x020000, 0x07ceeaea, 1 | BRF_PRG | BRF_ESS }, // 1
- { "072-013.13c", 0x020000, 0x8781105a, 1 | BRF_PRG | BRF_ESS }, // 2
- { "072-012.15c", 0x020000, 0x244f9289, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "072-g03.6g", 0x020000, 0x76c1850c, 2 | BRF_PRG | BRF_ESS }, // 4 Z80 Code
-
- { "072-b07.18h", 0x080000, 0xba1ec910, 3 | BRF_GRA }, // 5 K052109 Tiles
- { "072-b06.16h", 0x080000, 0xcf2bbcab, 3 | BRF_GRA }, // 6
-
- { "072-b08.3n", 0x100000, 0x7de500ad, 4 | BRF_GRA }, // 7 K053247 Tiles
- { "072-b09.8n", 0x100000, 0xaa085093, 4 | BRF_GRA }, // 8
- { "072-b10.12n", 0x100000, 0x577dbd53, 4 | BRF_GRA }, // 9
- { "072-b11.16l", 0x100000, 0x55fab05d, 4 | BRF_GRA }, // 10
-
- { "072-d05.1f", 0x100000, 0x1397a73b, 5 | BRF_SND }, // 11 K053260 Samples
- { "072-d04.1d", 0x040000, 0x78778013, 5 | BRF_SND }, // 12
-
- { "simpsons2p.12c.nv", 0x000080, 0xfbac4e30, BRF_OPT },
-};
-
-STD_ROM_PICK(simpsons2p)
-STD_ROM_FN(simpsons2p)
-
-struct BurnDriver BurnDrvSimpsons2p = {
- "simpsons2p", "simpsons", NULL, NULL, "1991",
- "The Simpsons (2 Players World, set 1)\0", NULL, "Konami", "GX072",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_KONAMI, GBF_SCRFIGHT, 0,
- NULL, simpsons2pRomInfo, simpsons2pRomName, NULL, NULL, Simpsons2pInputInfo, NULL,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 288, 224, 4, 3
-};
-
-
-// The Simpsons (2 Players World, set 2)
-
-static struct BurnRomInfo simpsons2p2RomDesc[] = {
- { "072-g02.16c", 0x020000, 0x580ce1d6, 1 | BRF_PRG | BRF_ESS }, // 0 Konami Custom Code
- { "072-p01.17c", 0x020000, 0x07ceeaea, 1 | BRF_PRG | BRF_ESS }, // 1
- { "072-_13.13c", 0x020000, 0x54e6df66, 1 | BRF_PRG | BRF_ESS }, // 2
- { "072-_12.15c", 0x020000, 0x96636225, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "072-g03.6g", 0x020000, 0x76c1850c, 2 | BRF_PRG | BRF_ESS }, // 4 Z80 Code
-
- { "072-b07.18h", 0x080000, 0xba1ec910, 3 | BRF_GRA }, // 5 K052109 Tiles
- { "072-b06.16h", 0x080000, 0xcf2bbcab, 3 | BRF_GRA }, // 6
-
- { "072-b08.3n", 0x100000, 0x7de500ad, 4 | BRF_GRA }, // 7 K053247 Tiles
- { "072-b09.8n", 0x100000, 0xaa085093, 4 | BRF_GRA }, // 8
- { "072-b10.12n", 0x100000, 0x577dbd53, 4 | BRF_GRA }, // 9
- { "072-b11.16l", 0x100000, 0x55fab05d, 4 | BRF_GRA }, // 10
-
- { "072-d05.1f", 0x100000, 0x1397a73b, 5 | BRF_SND }, // 11 K053260 Samples
- { "072-d04.1d", 0x040000, 0x78778013, 5 | BRF_SND }, // 12
-
- { "simpsons2p2.12c.nv", 0x000080, 0xfbac4e30, BRF_OPT },
-};
-
-STD_ROM_PICK(simpsons2p2)
-STD_ROM_FN(simpsons2p2)
-
-struct BurnDriver BurnDrvSimpsons2p2 = {
- "simpsons2p2", "simpsons", NULL, NULL, "1991",
- "The Simpsons (2 Players World, set 2)\0", NULL, "Konami", "GX072",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_KONAMI, GBF_SCRFIGHT, 0,
- NULL, simpsons2p2RomInfo, simpsons2p2RomName, NULL, NULL, SimpsonsInputInfo, NULL,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 288, 224, 4, 3
-};
-
-
-// The Simpsons (2 Players World, set 3) // no rom labels
-
-static struct BurnRomInfo simpsons2p3RomDesc[] = {
- { "072-g02.16c", 0x020000, 0x580ce1d6, 1 | BRF_PRG | BRF_ESS }, // 0 Konami Custom Code
- { "072-p01.17c", 0x020000, 0x07ceeaea, 1 | BRF_PRG | BRF_ESS }, // 1
- { "4.13c", 0x020000, 0xc3040e4f, 1 | BRF_PRG | BRF_ESS }, // 2
- { "3.15c", 0x020000, 0xeb4f5781, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "072-g03.6g", 0x020000, 0x76c1850c, 2 | BRF_PRG | BRF_ESS }, // 4 Z80 Code
-
- { "072-b07.18h", 0x080000, 0xba1ec910, 3 | BRF_GRA }, // 5 K052109 Tiles
- { "072-b06.16h", 0x080000, 0xcf2bbcab, 3 | BRF_GRA }, // 6
-
- { "072-b08.3n", 0x100000, 0x7de500ad, 4 | BRF_GRA }, // 7 K053247 Tiles
- { "072-b09.8n", 0x100000, 0xaa085093, 4 | BRF_GRA }, // 8
- { "072-b10.12n", 0x100000, 0x577dbd53, 4 | BRF_GRA }, // 9
- { "072-b11.16l", 0x100000, 0x55fab05d, 4 | BRF_GRA }, // 10
-
- { "072-d05.1f", 0x100000, 0x1397a73b, 5 | BRF_SND }, // 11 K053260 Samples
- { "072-d04.1d", 0x040000, 0x78778013, 5 | BRF_SND }, // 12
-
- { "simpsons2p.12c.nv", 0x000080, 0xfbac4e30, BRF_OPT },
-};
-
-STD_ROM_PICK(simpsons2p3)
-STD_ROM_FN(simpsons2p3)
-
-struct BurnDriver BurnDrvSimpsons2p3 = {
- "simpsons2p3", "simpsons", NULL, NULL, "1991",
- "The Simpsons (2 Players World, set 3)\0", NULL, "Konami", "GX072",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_KONAMI, GBF_SCRFIGHT, 0,
- NULL, simpsons2p3RomInfo, simpsons2p3RomName, NULL, NULL, SimpsonsInputInfo, NULL,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 288, 224, 4, 3
-};
-
-
-// The Simpsons (2 Players Asia)
-
-static struct BurnRomInfo simpsons2paRomDesc[] = {
- { "072-g02.16c", 0x020000, 0x580ce1d6, 1 | BRF_PRG | BRF_ESS }, // 0 Konami Custom Code
- { "072-p01.17c", 0x020000, 0x07ceeaea, 1 | BRF_PRG | BRF_ESS }, // 1
- { "072-113.13c", 0x020000, 0x8781105a, 1 | BRF_PRG | BRF_ESS }, // 2
- { "072-112.15c", 0x020000, 0x3bd69404, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "072-e03.6g", 0x020000, 0x866b7a35, 2 | BRF_PRG | BRF_ESS }, // 4 Z80 Code
-
- { "072-b07.18h", 0x080000, 0xba1ec910, 3 | BRF_GRA }, // 5 K052109 Tiles
- { "072-b06.16h", 0x080000, 0xcf2bbcab, 3 | BRF_GRA }, // 6
-
- { "072-b08.3n", 0x100000, 0x7de500ad, 4 | BRF_GRA }, // 7 K053247 Tiles
- { "072-b09.8n", 0x100000, 0xaa085093, 4 | BRF_GRA }, // 8
- { "072-b10.12n", 0x100000, 0x577dbd53, 4 | BRF_GRA }, // 9
- { "072-b11.16l", 0x100000, 0x55fab05d, 4 | BRF_GRA }, // 10
-
- { "072-d05.1f", 0x100000, 0x1397a73b, 5 | BRF_SND }, // 11 K053260 Samples
- { "072-d04.1d", 0x040000, 0x78778013, 5 | BRF_SND }, // 12
-
- { "simpsons2pa.12c.nv", 0x000080, 0xfbac4e30, BRF_OPT },
-};
-
-STD_ROM_PICK(simpsons2pa)
-STD_ROM_FN(simpsons2pa)
-
-struct BurnDriver BurnDrvSimpsons2pa = {
- "simpsons2pa", "simpsons", NULL, NULL, "1991",
- "The Simpsons (2 Players Asia)\0", NULL, "Konami", "GX072",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_KONAMI, GBF_SCRFIGHT, 0,
- NULL, simpsons2paRomInfo, simpsons2paRomName, NULL, NULL, Simpsons2pInputInfo, NULL,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 288, 224, 4, 3
-};
-
-
-// The Simpsons (2 Players Japan)
-
-static struct BurnRomInfo simpsons2pjRomDesc[] = {
- { "072-s02.16c", 0x020000, 0x265f7a47, 1 | BRF_PRG | BRF_ESS }, // 0 Konami Custom Code
- { "072-t01.17c", 0x020000, 0x91de5c2d, 1 | BRF_PRG | BRF_ESS }, // 1
- { "072-213.13c", 0x020000, 0xb326a9ae, 1 | BRF_PRG | BRF_ESS }, // 2
- { "072-212.15c", 0x020000, 0x584d9d37, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "072-g03.6g", 0x020000, 0x76c1850c, 2 | BRF_PRG | BRF_ESS }, // 4 Z80 Code
-
- { "072-b07.18h", 0x080000, 0xba1ec910, 3 | BRF_GRA }, // 5 K052109 Tiles
- { "072-b06.16h", 0x080000, 0xcf2bbcab, 3 | BRF_GRA }, // 6
-
- { "072-b08.3n", 0x100000, 0x7de500ad, 4 | BRF_GRA }, // 7 K053247 Tiles
- { "072-b09.8n", 0x100000, 0xaa085093, 4 | BRF_GRA }, // 8
- { "072-b10.12n", 0x100000, 0x577dbd53, 4 | BRF_GRA }, // 9
- { "072-b11.16l", 0x100000, 0x55fab05d, 4 | BRF_GRA }, // 10
-
- { "072-d05.1f", 0x100000, 0x1397a73b, 5 | BRF_SND }, // 11 K053260 Samples
- { "072-d04.1d", 0x040000, 0x78778013, 5 | BRF_SND }, // 12
-
- { "simpsons2pj.12c.nv", 0x000080, 0x3550a54e, BRF_OPT },
-};
-
-STD_ROM_PICK(simpsons2pj)
-STD_ROM_FN(simpsons2pj)
-
-struct BurnDriver BurnDrvSimpsons2pj = {
- "simpsons2pj", "simpsons", NULL, NULL, "1991",
- "The Simpsons (2 Players Japan)\0", NULL, "Konami", "GX072",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_KONAMI, GBF_SCRFIGHT, 0,
- NULL, simpsons2pjRomInfo, simpsons2pjRomName, NULL, NULL, Simpsons2pInputInfo, NULL,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 288, 224, 4, 3
-};
diff --git a/jan/src/burn/drv/konami/d_spy.cpp b/jan/src/burn/drv/konami/d_spy.cpp
deleted file mode 100644
index 5193f65f5..000000000
--- a/jan/src/burn/drv/konami/d_spy.cpp
+++ /dev/null
@@ -1,789 +0,0 @@
-// FB Alpha S.P.Y. driver module
-// Based on MAME driver by Nicola Salmoria and Acho A. Tang
-
-#include "tiles_generic.h"
-#include "z80_intf.h"
-#include "m6809_intf.h"
-#include "burn_ym3812.h"
-#include "konamiic.h"
-#include "k007232.h"
-
-static UINT8 *AllMem;
-static UINT8 *MemEnd;
-static UINT8 *AllRam;
-static UINT8 *RamEnd;
-static UINT8 *DrvM6809ROM;
-static UINT8 *DrvZ80ROM;
-static UINT8 *DrvGfxROM0;
-static UINT8 *DrvGfxROM1;
-static UINT8 *DrvGfxROMExp0;
-static UINT8 *DrvGfxROMExp1;
-static UINT8 *DrvSndROM0;
-static UINT8 *DrvSndROM1;
-static UINT8 *DrvBankRAM;
-static UINT8 *DrvPalRAM;
-static UINT8 *DrvPMCRAM;
-static UINT8 *DrvM6809RAM;
-static UINT8 *DrvZ80RAM;
-
-static UINT32 *DrvPalette;
-static UINT8 DrvRecalc;
-
-static UINT8 *soundlatch;
-
-static UINT8 *nDrvRomBank;
-
-static INT32 spy_video_enable;
-static INT32 Drv3f90old;
-static INT32 nRamBank;
-
-static UINT8 DrvJoy1[8];
-static UINT8 DrvJoy2[8];
-static UINT8 DrvJoy3[8];
-static UINT8 DrvDips[8];
-static UINT8 DrvReset;
-static UINT8 DrvInputs[3];
-
-static struct BurnInputInfo SpyInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy3 + 0, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 0, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy1 + 1, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy1 + 2, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy1 + 3, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy1 + 4, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy1 + 6, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy1 + 5, "p1 fire 2" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy3 + 1, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy2 + 0, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvJoy2 + 1, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy2 + 2, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy2 + 3, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy2 + 4, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy2 + 6, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy2 + 5, "p2 fire 2" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service", BIT_DIGITAL, DrvJoy3 + 2, "service" },
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip" },
- {"Dip C", BIT_DIPSWITCH, DrvDips + 2, "dip" },
-};
-
-STDINPUTINFO(Spy)
-
-static struct BurnDIPInfo SpyDIPList[]=
-{
- {0x12, 0xff, 0xff, 0xff, NULL },
- {0x13, 0xff, 0xff, 0x5e, NULL },
- {0x14, 0xff, 0xff, 0xf0, NULL },
-
- {0 , 0xfe, 0 , 16, "Coin A" },
- {0x12, 0x01, 0x0f, 0x02, "4 Coins 1 Credit" },
- {0x12, 0x01, 0x0f, 0x05, "3 Coins 1 Credit" },
- {0x12, 0x01, 0x0f, 0x08, "2 Coins 1 Credit" },
- {0x12, 0x01, 0x0f, 0x04, "3 Coins 2 Credits" },
- {0x12, 0x01, 0x0f, 0x01, "4 Coins 3 Credits" },
- {0x12, 0x01, 0x0f, 0x0f, "1 Coin 1 Credit" },
- {0x12, 0x01, 0x0f, 0x03, "3 Coins 4 Credits" },
- {0x12, 0x01, 0x0f, 0x07, "2 Coins 3 Credits" },
- {0x12, 0x01, 0x0f, 0x0e, "1 Coin 2 Credits" },
- {0x12, 0x01, 0x0f, 0x06, "2 Coins 5 Credits" },
- {0x12, 0x01, 0x0f, 0x0d, "1 Coin 3 Credits" },
- {0x12, 0x01, 0x0f, 0x0c, "1 Coin 4 Credits" },
- {0x12, 0x01, 0x0f, 0x0b, "1 Coin 5 Credits" },
- {0x12, 0x01, 0x0f, 0x0a, "1 Coin 6 Credits" },
- {0x12, 0x01, 0x0f, 0x09, "1 Coin 7 Credits" },
- {0x12, 0x01, 0x0f, 0x00, "Free Play" },
-
- {0 , 0xfe, 0 , 15, "Coin B" },
- {0x12, 0x01, 0xf0, 0x20, "4 Coins 1 Credit" },
- {0x12, 0x01, 0xf0, 0x50, "3 Coins 1 Credit" },
- {0x12, 0x01, 0xf0, 0x80, "2 Coins 1 Credit" },
- {0x12, 0x01, 0xf0, 0x40, "3 Coins 2 Credits" },
- {0x12, 0x01, 0xf0, 0x10, "4 Coins 3 Credits" },
- {0x12, 0x01, 0xf0, 0xf0, "1 Coin 1 Credit" },
- {0x12, 0x01, 0xf0, 0x30, "3 Coins 4 Credits" },
- {0x12, 0x01, 0xf0, 0x70, "2 Coins 3 Credits" },
- {0x12, 0x01, 0xf0, 0xe0, "1 Coin 2 Credits" },
- {0x12, 0x01, 0xf0, 0x60, "2 Coins 5 Credits" },
- {0x12, 0x01, 0xf0, 0xd0, "1 Coin 3 Credits" },
- {0x12, 0x01, 0xf0, 0xc0, "1 Coin 4 Credits" },
- {0x12, 0x01, 0xf0, 0xb0, "1 Coin 5 Credits" },
- {0x12, 0x01, 0xf0, 0xa0, "1 Coin 6 Credits" },
- {0x12, 0x01, 0xf0, 0x90, "1 Coin 7 Credits" },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x13, 0x01, 0x03, 0x03, "2" },
- {0x13, 0x01, 0x03, 0x02, "3" },
- {0x13, 0x01, 0x03, 0x01, "5" },
- {0x13, 0x01, 0x03, 0x00, "7" },
-
- {0 , 0xfe, 0 , 4, "Bonus Life" },
- {0x13, 0x01, 0x18, 0x18, "10k and every 20k" },
- {0x13, 0x01, 0x18, 0x10, "20k and every 30k" },
- {0x13, 0x01, 0x18, 0x08, "20k only" },
- {0x13, 0x01, 0x18, 0x00, "30k only" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x13, 0x01, 0x60, 0x60, "Easy" },
- {0x13, 0x01, 0x60, 0x40, "Normal" },
- {0x13, 0x01, 0x60, 0x20, "Difficult" },
- {0x13, 0x01, 0x60, 0x00, "Very Difficult" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x13, 0x01, 0x80, 0x80, "Off" },
- {0x13, 0x01, 0x80, 0x00, "On" },
-
-// {0 , 0xfe, 0 , 2, "Flip Screen" },
-// {0x14, 0x01, 0x10, 0x10, "Off" },
-// {0x14, 0x01, 0x10, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Power" },
- {0x14, 0x01, 0x20, 0x20, "Normal" },
- {0x14, 0x01, 0x20, 0x00, "Strong" },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x14, 0x01, 0x40, 0x40, "Off" },
- {0x14, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Continues" },
- {0x14, 0x01, 0x80, 0x80, "Unlimited" },
- {0x14, 0x01, 0x80, 0x00, "5 Times" },
-};
-
-STDDIPINFO(Spy)
-
-static void DrvSetRAMBank(UINT8 bank, UINT8 data)
-{
- nDrvRomBank[1] = bank;
- nDrvRomBank[2] = data;
-
- if (data & 0x10) {
- M6809MapMemory(DrvPalRAM, 0x0000, 0x07ff, MAP_RAM);
- } else if (data & 0x20) {
- if (bank & 0x80) {
- M6809MapMemory(DrvPMCRAM, 0x0000, 0x07ff, MAP_RAM);
- } else {
- // unmap
- M6809MapMemory(DrvM6809ROM + 0x800, 0x0000, 0x07ff, MAP_ROM);
- M6809MapMemory(DrvM6809ROM + 0x000, 0x0000, 0x07ff, MAP_WRITE);
- }
- } else {
- M6809MapMemory(DrvBankRAM, 0x0000, 0x07ff, MAP_RAM);
- }
-}
-
-static void spy_collision()
-{
-#define MAX_SPRITES 64
-#define DEF_NEAR_PLANE 0x6400
-#define NEAR_PLANE_ZOOM 0x0100
-#define FAR_PLANE_ZOOM 0x0000
-#define pmcram DrvPMCRAM
-
- INT32 op1, x1, w1, z1, d1, y1, h1;
- INT32 op2, x2, w2, z2, d2, y2, h2;
- INT32 mode, i, loopend, nearplane;
-
- mode = pmcram[0x1];
- op1 = pmcram[0x2];
- if (op1 == 1)
- {
- x1 = (pmcram[0x3]<<8) + pmcram[0x4];
- w1 = (pmcram[0x5]<<8) + pmcram[0x6];
- z1 = (pmcram[0x7]<<8) + pmcram[0x8];
- d1 = (pmcram[0x9]<<8) + pmcram[0xa];
- y1 = (pmcram[0xb]<<8) + pmcram[0xc];
- h1 = (pmcram[0xd]<<8) + pmcram[0xe];
-
- for (i=16; i<14*MAX_SPRITES + 2; i+=14)
- {
- op2 = pmcram[i];
- if (op2 || mode==0x0c)
- {
- x2 = (pmcram[i+0x1]<<8) + pmcram[i+0x2];
- w2 = (pmcram[i+0x3]<<8) + pmcram[i+0x4];
- z2 = (pmcram[i+0x5]<<8) + pmcram[i+0x6];
- d2 = (pmcram[i+0x7]<<8) + pmcram[i+0x8];
- y2 = (pmcram[i+0x9]<<8) + pmcram[i+0xa];
- h2 = (pmcram[i+0xb]<<8) + pmcram[i+0xc];
-
- if (w2==0x58 && d2==0x04 && h2==0x10 && y2==0x30) h2 = y2;
-
- if ( (abs(x1-x2) 1)
- {
- loopend = (pmcram[0]<<8) + pmcram[1];
- nearplane = (pmcram[2]<<8) + pmcram[3];
-
- if (loopend > MAX_SPRITES) loopend = MAX_SPRITES;
- if (!nearplane) nearplane = DEF_NEAR_PLANE;
-
- loopend = (loopend<<1) + 4;
-
- for (i=4; i> 8;
- pmcram[i+1] = op2 & 0xff;
- }
-
- memset(pmcram+loopend, 0, 0x800-loopend);
- }
-}
-
-static void spy_3f90_w(INT32 data)
-{
- K052109RMRDLine = data & 0x04;
-
- spy_video_enable = (~data & 0x08);
-
- nRamBank = data & 0xb0;
-
- DrvSetRAMBank(data & 0x80, data & 0x30);
-
- if ((data & 0x40) && (~Drv3f90old & 0x40))
- {
- spy_collision();
-
- M6809SetIRQLine(1 /*FIRQ*/, CPU_IRQSTATUS_ACK);
- M6809Run(105); // delay or the M6809 won't read it...
- M6809SetIRQLine(1 /*FIRQ*/, CPU_IRQSTATUS_NONE);
- }
-
- Drv3f90old = data;
-}
-
-static void bankswitch(INT32 data)
-{
- nDrvRomBank[0] = data;
-
- INT32 nBank;
- if (data & 0x10) {
- nBank = 0x20000 + (data & 0x06) * 0x1000;
- } else {
- nBank = 0x10000 + (data & 0x0e) * 0x1000;
- }
-
- M6809MapMemory(DrvM6809ROM + nBank, 0x6000, 0x7fff, MAP_ROM);
-}
-
-void spy_main_write(UINT16 address, UINT8 data)
-{
- switch (address)
- {
- case 0x3f80:
- bankswitch(data);
- return;
-
- case 0x3f90:
- spy_3f90_w(data);
- return;
-
- case 0x3fa0:
- // watchdog
- return;
-
- case 0x3fb0:
- *soundlatch = data;
- return;
-
- case 0x3fc0:
- ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
- return;
- }
-
- if (address >= 0x2000 && address <= 0x5fff) {
- K052109_051960_w(address - 0x2000, data);
- return;
- }
-}
-
-UINT8 spy_main_read(UINT16 address)
-{
- switch (address)
- {
- case 0x3fd0:
- return (DrvInputs[2] & 0x0f) | (DrvDips[2] & 0xf0);
-
- case 0x3fd1:
- return DrvInputs[0];
-
- case 0x3fd2:
- return DrvInputs[1];
-
- case 0x3fd3:
- return DrvDips[0];
-
- case 0x3fe0:
- return DrvDips[1];
- }
-
- if (address >= 0x2000 && address <= 0x5fff) {
- return K052109_051960_r(address - 0x2000);
- }
-
- return 0;
-}
-
-static void sound_bankswitch(INT32 data)
-{
- INT32 bank_A,bank_B;
-
- bank_A = (data >> 0) & 0x03;
- bank_B = (data >> 2) & 0x03;
- k007232_set_bank(0,bank_A,bank_B);
-
- bank_A = (data >> 4) & 0x03;
- bank_B = (data >> 6) & 0x03;
- k007232_set_bank(1,bank_A,bank_B);
-}
-
-void __fastcall spy_sound_write(UINT16 address, UINT8 data)
-{
- if ((address & 0xfff0) == 0xa000) {
- K007232WriteReg(0, address & 0x0f, data);
- return;
- }
-
- if ((address & 0xfff0) == 0xb000) {
- K007232WriteReg(1, address & 0x0f, data);
- return;
- }
-
- switch (address)
- {
- case 0x9000:
- sound_bankswitch(data);
- return;
-
- case 0xc000:
- case 0xc001:
- BurnYM3812Write(0, address & 1, data);
- return;
- }
-}
-
-UINT8 __fastcall spy_sound_read(UINT16 address)
-{
- if ((address & 0xfff0) == 0xa000) {
- return K007232ReadReg(0, address & 0x0f);
- }
-
- if ((address & 0xfff0) == 0xb000) {
- return K007232ReadReg(1, address & 0x0f);
- }
-
- switch (address)
- {
- case 0xc000:
- case 0xc001:
- return BurnYM3812Read(0, address & 1);
-
- case 0xd000:
- ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
- return *soundlatch;
- }
-
- return 0;
-}
-
-static void K052109Callback(INT32 layer, INT32 bank, INT32 *code, INT32 *color, INT32 *flags, INT32 *)
-{
- INT32 colorbase[3] = { 0x30, 0, 0x10 };
-
- *flags = *color & 0x20;
- *code |= ((*color & 0x03) << 8) | ((*color & 0x10) << 6) | ((*color & 0x0c) << 9) | (bank << 13);
- *color = colorbase[layer] + ((*color & 0xc0) >> 6);
-}
-
-static void K051960Callback(INT32 *code, INT32 *color, INT32 *priority, INT32 *)
-{
- *priority = 0x00;
- if ( *color & 0x10) *priority = 0x0a;
- if (~*color & 0x20) *priority = 0x0c;
-
- *color = 0x20 | (*color & 0x0f);
-
- *code = *code & 0x1fff;
-}
-
-static void DrvFMIRQHandler(INT32, INT32 nStatus)
-{
- if (nStatus) ZetNmi();
-}
-
-inline static INT32 DrvSynchroniseStream(INT32 nSoundRate)
-{
- return (INT64)ZetTotalCycles() * nSoundRate / 3579545;
-}
-
-static void DrvK007232VolCallback0(INT32 v)
-{
- K007232SetVolume(0, 0, (v >> 4) * 0x11, 0);
- K007232SetVolume(0, 1, 0, (v & 0x0f) * 0x11);
-}
-
-static void DrvK007232VolCallback1(INT32 v)
-{
- K007232SetVolume(1, 0, (v >> 4) * 0x11, 0);
- K007232SetVolume(1, 1, 0, (v & 0x0f) * 0x11);
-}
-
-static int DrvDoReset()
-{
- DrvReset = 0;
-
- memset (AllRam, 0, RamEnd - AllRam);
-
- M6809Open(0);
- M6809Reset();
- M6809Close();
-
- ZetOpen(0);
- ZetReset();
- ZetClose();
-
- KonamiICReset();
-
- BurnYM3812Reset();
-
- spy_video_enable = 0;
- Drv3f90old = 0;
- nRamBank = 0;
-
- return 0;
-}
-
-static INT32 MemIndex()
-{
- UINT8 *Next; Next = AllMem;
-
- DrvM6809ROM = Next; Next += 0x030000;
- DrvZ80ROM = Next; Next += 0x010000;
-
- DrvGfxROM0 = Next; Next += 0x080000;
- DrvGfxROM1 = Next; Next += 0x100000;
- DrvGfxROMExp0 = Next; Next += 0x100000;
- DrvGfxROMExp1 = Next; Next += 0x200000;
-
- DrvSndROM0 = Next; Next += 0x040000;
- DrvSndROM1 = Next; Next += 0x040000;
-
- DrvPalette = (UINT32*)Next; Next += 0x400 * sizeof(UINT32);
-
- AllRam = Next;
-
- DrvPMCRAM = Next; Next += 0x000800;
- DrvBankRAM = Next; Next += 0x000800;
- DrvPalRAM = Next; Next += 0x000800;
- DrvM6809RAM = Next; Next += 0x001800;
-
- DrvZ80RAM = Next; Next += 0x000800;
-
- soundlatch = Next; Next += 0x000001;
-
- nDrvRomBank = Next; Next += 0x000003;
-
- RamEnd = Next;
- MemEnd = Next;
-
- return 0;
-}
-
-static INT32 DrvInit()
-{
- GenericTilesInit();
-
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(DrvM6809ROM + 0x010000, 0, 1)) return 1;
- if (BurnLoadRom(DrvM6809ROM + 0x020000, 1, 1)) return 1;
- memcpy (DrvM6809ROM + 0x08000, DrvM6809ROM + 0x28000, 0x8000);
-
- if (BurnLoadRom(DrvZ80ROM + 0x000000, 2, 1)) return 1;
-
- if (BurnLoadRomExt(DrvGfxROM0 + 0x000000, 3, 4, 2)) return 1;
- if (BurnLoadRomExt(DrvGfxROM0 + 0x000002, 4, 4, 2)) return 1;
-
- if (BurnLoadRomExt(DrvGfxROM1 + 0x000000, 5, 4, 2)) return 1;
- if (BurnLoadRomExt(DrvGfxROM1 + 0x000002, 6, 4, 2)) return 1;
-
- if (BurnLoadRom(DrvSndROM0 + 0x000000, 7, 1)) return 1;
-
- if (BurnLoadRom(DrvSndROM1 + 0x000000, 8, 1)) return 1;
-
- K052109GfxDecode(DrvGfxROM0, DrvGfxROMExp0, 0x080000);
- K051960GfxDecode(DrvGfxROM1, DrvGfxROMExp1, 0x100000);
- }
-
- M6809Init(1);
- M6809Open(0);
- M6809MapMemory(DrvM6809RAM, 0x0800, 0x1aff, MAP_RAM);
- M6809MapMemory(DrvM6809ROM + 0x10000, 0x6000, 0x7fff, MAP_ROM);
- M6809MapMemory(DrvM6809ROM + 0x08000, 0x8000, 0xffff, MAP_ROM);
- M6809SetWriteHandler(spy_main_write);
- M6809SetReadHandler(spy_main_read);
- M6809Close();
-
- ZetInit(0);
- ZetOpen(0);
- ZetMapArea(0x0000, 0x7fff, 0, DrvZ80ROM);
- ZetMapArea(0x0000, 0x7fff, 2, DrvZ80ROM);
- ZetMapArea(0x8000, 0x87ff, 0, DrvZ80RAM);
- ZetMapArea(0x8000, 0x87ff, 1, DrvZ80RAM);
- ZetMapArea(0x8000, 0x87ff, 2, DrvZ80RAM);
- ZetSetWriteHandler(spy_sound_write);
- ZetSetReadHandler(spy_sound_read);
- ZetClose();
-
- K052109Init(DrvGfxROM0, DrvGfxROMExp0, 0x07ffff);
- K052109SetCallback(K052109Callback);
- K052109AdjustScroll(-2, 0);
-
- K051960Init(DrvGfxROM1, DrvGfxROMExp1, 0x0fffff);
- K051960SetCallback(K051960Callback);
- K051960SetSpriteOffset(0, 0);
-
- BurnYM3812Init(1, 3579545, &DrvFMIRQHandler, DrvSynchroniseStream, 0);
- BurnTimerAttachZetYM3812(3579545);
- BurnYM3812SetRoute(0, BURN_SND_YM3812_ROUTE, 1.00, BURN_SND_ROUTE_BOTH);
-
- K007232Init(0, 3579545, DrvSndROM0, 0x40000);
- K007232SetPortWriteHandler(0, DrvK007232VolCallback0);
- K007232PCMSetAllRoutes(0, 0.20, BURN_SND_ROUTE_BOTH);
-
- K007232Init(1, 3579545, DrvSndROM1, 0x40000);
- K007232SetPortWriteHandler(1, DrvK007232VolCallback1);
- K007232PCMSetAllRoutes(1, 0.20, BURN_SND_ROUTE_BOTH);
-
- DrvDoReset();
-
- return 0;
-}
-
-static INT32 DrvExit()
-{
- GenericTilesExit();
-
- KonamiICExit();
-
- M6809Exit();
- ZetExit();
-
- BurnYM3812Exit();
-
- K007232Exit();
-
- BurnFree (AllMem);
-
- return 0;
-}
-
-static INT32 DrvDraw()
-{
- KonamiRecalcPalette(DrvPalRAM, DrvPalette, 0x800);
-
- K052109UpdateScroll();
-
- if (spy_video_enable) {
- K052109RenderLayer(1, K052109_OPAQUE, 1);
- K052109RenderLayer(2, 0, 2);
- K051960SpritesRender(-1, -1);
- K052109RenderLayer(0, 0, 0);
- } else {
- KonamiClearBitmaps(DrvPalette[0x300]);
- }
-
- KonamiBlendCopy(DrvPalette);
-
- return 0;
-}
-
-static INT32 DrvFrame()
-{
-
- if (DrvReset) {
- DrvDoReset();
- }
-
- ZetNewFrame();
-
- {
- memset (DrvInputs, 0xff, 3);
-
- for (INT32 i = 0 ; i < 8; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- DrvInputs[2] ^= (DrvJoy3[i] & 1) << i;
- }
-
- if ((DrvInputs[0] & 0x06) == 0) DrvInputs[0] |= 0x06;
- if ((DrvInputs[0] & 0x18) == 0) DrvInputs[0] |= 0x18;
- if ((DrvInputs[1] & 0x06) == 0) DrvInputs[1] |= 0x06;
- if ((DrvInputs[1] & 0x18) == 0) DrvInputs[1] |= 0x18;
- }
-
- INT32 nCyclesSegment;
- INT32 nInterleave = 100;
- INT32 nCyclesTotal[2] = { (((3000000 / 60) * 133) / 100) /* 33% overclock */, 3579545 / 60 };
- INT32 nCyclesDone[2] = { 0, 0 };
-
- M6809Open(0);
- ZetOpen(0);
-
- for (INT32 i = 0; i < nInterleave; i++) {
- nCyclesSegment = (nCyclesTotal[0] / nInterleave) * (i + 1);
- nCyclesDone[0] += M6809Run(nCyclesSegment - nCyclesDone[0]);
-
- nCyclesSegment = (nCyclesTotal[1] / nInterleave) * (i + 1);
- nCyclesDone[1] += BurnTimerUpdateYM3812(nCyclesSegment - nCyclesDone[1]);
- }
-
- if (K052109_irq_enabled) M6809SetIRQLine(0, CPU_IRQSTATUS_AUTO);
-
- BurnTimerEndFrameYM3812(nCyclesTotal[1]);
-
- if (pBurnSoundOut) {
- BurnYM3812Update(pBurnSoundOut, nBurnSoundLen);
- K007232Update(0, pBurnSoundOut, nBurnSoundLen);
- K007232Update(1, pBurnSoundOut, nBurnSoundLen);
- }
-
- ZetClose();
- M6809Close();
-
- if (pBurnDraw) {
- DrvDraw();
- }
-
- return 0;
-}
-
-static INT32 DrvScan(INT32 nAction,INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin) {
- *pnMin = 0x029705;
- }
-
- if (nAction & ACB_VOLATILE) {
- memset(&ba, 0, sizeof(ba));
-
- ba.Data = AllRam;
- ba.nLen = RamEnd - AllRam;
- ba.szName = "All Ram";
- BurnAcb(&ba);
-
- M6809Scan(nAction);
- ZetScan(nAction);
-
- BurnYM3812Scan(nAction, pnMin);
- K007232Scan(nAction, pnMin);
-
- KonamiICScan(nAction);
- }
-
- if (nAction & ACB_DRIVER_DATA) {
- SCAN_VAR(spy_video_enable);
- SCAN_VAR(Drv3f90old);
- SCAN_VAR(nRamBank);
- }
-
- if (nAction & ACB_WRITE) {
- M6809Open(0);
- bankswitch(nDrvRomBank[0]);
- DrvSetRAMBank(nDrvRomBank[1], nDrvRomBank[2]);
- M6809Close();
- }
-
- return 0;
-}
-
-
-// S.P.Y. - Special Project Y (World ver. N)
-
-static struct BurnRomInfo spyRomDesc[] = {
- { "857n03.bin", 0x10000, 0x97993b38, 1 | BRF_PRG | BRF_ESS }, // 0 Konami Custom Code
- { "857n02.bin", 0x10000, 0x31a97efe, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "857d01.bin", 0x08000, 0xaad4210f, 2 | BRF_PRG | BRF_ESS }, // 2 Z80 Code
-
- { "857b09.bin", 0x40000, 0xb8780966, 3 | BRF_GRA }, // 3 Background Tiles
- { "857b08.bin", 0x40000, 0x3e4d8d50, 3 | BRF_GRA }, // 4
-
- { "857b06.bin", 0x80000, 0x7b515fb1, 4 | BRF_GRA }, // 5 Sprites
- { "857b05.bin", 0x80000, 0x27b0f73b, 4 | BRF_GRA }, // 6
-
- { "857b07.bin", 0x40000, 0xce3512d4, 5 | BRF_SND }, // 7 K007232 #0 Samples
-
- { "857b04.bin", 0x40000, 0x20b83c13, 6 | BRF_SND }, // 8 K007232 #1 Samples
-
- { "857a10.bin", 0x00100, 0x32758507, 7 | BRF_OPT }, // 9 Proms
-};
-
-STD_ROM_PICK(spy)
-STD_ROM_FN(spy)
-
-struct BurnDriver BurnDrvSpy = {
- "spy", NULL, NULL, NULL, "1989",
- "S.P.Y. - Special Project Y (World ver. N)\0", NULL, "Konami", "GX857",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_PREFIX_KONAMI, GBF_SCRFIGHT, 0,
- NULL, spyRomInfo, spyRomName, NULL, NULL, SpyInputInfo, SpyDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x400,
- 304, 216, 4, 3
-};
-
-
-// S.P.Y. - Special Project Y (US ver. M)
-
-static struct BurnRomInfo spyuRomDesc[] = {
- { "857m03.bin", 0x10000, 0x3bd87fa4, 1 | BRF_PRG | BRF_ESS }, // 0 Konami Custom Code
- { "857m02.bin", 0x10000, 0x306cc659, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "857d01.bin", 0x08000, 0xaad4210f, 2 | BRF_PRG | BRF_ESS }, // 2 Z80 Code
-
- { "857b09.bin", 0x40000, 0xb8780966, 3 | BRF_GRA }, // 3 Background Tiles
- { "857b08.bin", 0x40000, 0x3e4d8d50, 3 | BRF_GRA }, // 4
-
- { "857b06.bin", 0x80000, 0x7b515fb1, 4 | BRF_GRA }, // 5 Sprites
- { "857b05.bin", 0x80000, 0x27b0f73b, 4 | BRF_GRA }, // 6
-
- { "857b07.bin", 0x40000, 0xce3512d4, 5 | BRF_SND }, // 7 K007232 #0 Samples
-
- { "857b04.bin", 0x40000, 0x20b83c13, 6 | BRF_SND }, // 8 K007232 #1 Samples
-
- { "857a10.bin", 0x00100, 0x32758507, 7 | BRF_OPT }, // 9 Proms
-};
-
-STD_ROM_PICK(spyu)
-STD_ROM_FN(spyu)
-
-struct BurnDriver BurnDrvSpyu = {
- "spyu", "spy", NULL, NULL, "1989",
- "S.P.Y. - Special Project Y (US ver. M)\0", NULL, "Konami", "GX857",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_KONAMI, GBF_SCRFIGHT, 0,
- NULL, spyuRomInfo, spyuRomName, NULL, NULL, SpyInputInfo, SpyDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x400,
- 304, 216, 4, 3
-};
diff --git a/jan/src/burn/drv/konami/d_surpratk.cpp b/jan/src/burn/drv/konami/d_surpratk.cpp
deleted file mode 100644
index a792cf4d8..000000000
--- a/jan/src/burn/drv/konami/d_surpratk.cpp
+++ /dev/null
@@ -1,608 +0,0 @@
-// FB Alpha Surprise Attack driver module
-// Based on MAME driver by Nicola Salmoria
-
-#include "tiles_generic.h"
-#include "burn_ym2151.h"
-#include "konami_intf.h"
-#include "konamiic.h"
-
-static UINT8 *AllMem;
-static UINT8 *MemEnd;
-static UINT8 *AllRam;
-static UINT8 *RamEnd;
-static UINT8 *DrvKonROM;
-static UINT8 *DrvGfxROM0;
-static UINT8 *DrvGfxROM1;
-static UINT8 *DrvGfxROMExp0;
-static UINT8 *DrvGfxROMExp1;
-static UINT8 *DrvBankRAM;
-static UINT8 *DrvKonRAM;
-static UINT8 *DrvPalRAM;
-
-static UINT32 *DrvPalette;
-static UINT8 DrvRecalc;
-
-static UINT8 *nDrvRomBank;
-static INT32 videobank;
-
-static INT32 layer_colorbase[3];
-static INT32 sprite_colorbase;
-static INT32 layerpri[3];
-
-static UINT8 DrvJoy1[8];
-static UINT8 DrvJoy2[8];
-static UINT8 DrvJoy3[8];
-static UINT8 DrvDips[3];
-static UINT8 DrvReset;
-static UINT8 DrvInputs[3];
-
-static struct BurnInputInfo SurpratkInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy3 + 2, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 0, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy1 + 1, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy1 + 2, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy1 + 3, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy1 + 4, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy1 + 5, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy1 + 6, "p1 fire 2" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy3 + 3, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy2 + 0, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvJoy2 + 1, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy2 + 2, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy2 + 3, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy2 + 4, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy2 + 5, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy2 + 6, "p2 fire 2" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service", BIT_DIGITAL, DrvJoy3 + 0, "service" },
- {"Test", BIT_DIGITAL, DrvJoy3 + 1, "diag" },
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip" },
- {"Dip C", BIT_DIPSWITCH, DrvDips + 2, "dip" },
-};
-
-STDINPUTINFO(Surpratk)
-
-static struct BurnDIPInfo SuratkjDIPList[]=
-{
- {0x13, 0xff, 0xff, 0xff, NULL },
- {0x14, 0xff, 0xff, 0x5a, NULL },
- {0x15, 0xff, 0xff, 0xf0, NULL },
-
- {0 , 0xfe, 0 , 16, "Coin A" },
- {0x13, 0x01, 0x0f, 0x02, "4 Coins 1 Credit" },
- {0x13, 0x01, 0x0f, 0x05, "3 Coins 1 Credit" },
- {0x13, 0x01, 0x0f, 0x08, "2 Coins 1 Credit" },
- {0x13, 0x01, 0x0f, 0x04, "3 Coins 2 Credits" },
- {0x13, 0x01, 0x0f, 0x01, "4 Coins 3 Credits" },
- {0x13, 0x01, 0x0f, 0x0f, "1 Coin 1 Credit" },
- {0x13, 0x01, 0x0f, 0x03, "3 Coins 4 Credits" },
- {0x13, 0x01, 0x0f, 0x07, "2 Coins 3 Credits" },
- {0x13, 0x01, 0x0f, 0x0e, "1 Coin 2 Credits" },
- {0x13, 0x01, 0x0f, 0x06, "2 Coins 5 Credits" },
- {0x13, 0x01, 0x0f, 0x0d, "1 Coin 3 Credits" },
- {0x13, 0x01, 0x0f, 0x0c, "1 Coin 4 Credits" },
- {0x13, 0x01, 0x0f, 0x0b, "1 Coin 5 Credits" },
- {0x13, 0x01, 0x0f, 0x0a, "1 Coin 6 Credits" },
- {0x13, 0x01, 0x0f, 0x09, "1 Coin 7 Credits" },
- {0x13, 0x01, 0x0f, 0x00, "Free Play" },
-
- {0 , 0xfe, 0 , 15, "Coin B" },
- {0x13, 0x01, 0xf0, 0x20, "4 Coins 1 Credit" },
- {0x13, 0x01, 0xf0, 0x50, "3 Coins 1 Credit" },
- {0x13, 0x01, 0xf0, 0x80, "2 Coins 1 Credit" },
- {0x13, 0x01, 0xf0, 0x40, "3 Coins 2 Credits" },
- {0x13, 0x01, 0xf0, 0x10, "4 Coins 3 Credits" },
- {0x13, 0x01, 0xf0, 0xf0, "1 Coin 1 Credit" },
- {0x13, 0x01, 0xf0, 0x30, "3 Coins 4 Credits" },
- {0x13, 0x01, 0xf0, 0x70, "2 Coins 3 Credits" },
- {0x13, 0x01, 0xf0, 0xe0, "1 Coin 2 Credits" },
- {0x13, 0x01, 0xf0, 0x60, "2 Coins 5 Credits" },
- {0x13, 0x01, 0xf0, 0xd0, "1 Coin 3 Credits" },
- {0x13, 0x01, 0xf0, 0xc0, "1 Coin 4 Credits" },
- {0x13, 0x01, 0xf0, 0xb0, "1 Coin 5 Credits" },
- {0x13, 0x01, 0xf0, 0xa0, "1 Coin 6 Credits" },
- {0x13, 0x01, 0xf0, 0x90, "1 Coin 7 Credits" },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x14, 0x01, 0x03, 0x03, "2" },
- {0x14, 0x01, 0x03, 0x02, "3" },
- {0x14, 0x01, 0x03, 0x01, "5" },
- {0x14, 0x01, 0x03, 0x00, "7" },
-
-// {0 , 0xfe, 0 , 2, "Cabinet" },
-// {0x14, 0x01, 0x04, 0x00, "Upright" },
-// {0x14, 0x01, 0x04, 0x04, "Cocktail" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x14, 0x01, 0x60, 0x60, "Easy" },
- {0x14, 0x01, 0x60, 0x40, "Normal" },
- {0x14, 0x01, 0x60, 0x20, "Difficult" },
- {0x14, 0x01, 0x60, 0x00, "Very Difficult" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x14, 0x01, 0x80, 0x80, "Off" },
- {0x14, 0x01, 0x80, 0x00, "On" },
-
-// {0 , 0xfe, 0 , 2, "Flip Screen" },
-// {0x15, 0x01, 0x10, 0x10, "Off" },
-// {0x15, 0x01, 0x10, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Upright Controls" },
- {0x15, 0x01, 0x20, 0x20, "Single" },
- {0x15, 0x01, 0x20, 0x00, "Dual" },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x15, 0x01, 0x40, 0x40, "Off" },
- {0x15, 0x01, 0x40, 0x00, "On" },
-};
-
-static struct BurnDIPInfo BonusQuizDIPList[]=
-{
- {0 , 0xfe, 0 , 2, "Bonus Quiz" },
- {0x15, 0x01, 0x80, 0x80, "Include" },
- {0x15, 0x01, 0x80, 0x00, "Except" },
-};
-
-STDDIPINFO(Suratkj)
-STDDIPINFOEXT(Surpratk, Suratkj, BonusQuiz)
-
-UINT8 supratk_read(UINT16 address)
-{
- switch (address)
- {
- case 0x5f8c:
- return DrvInputs[0];
-
- case 0x5f8d:
- return DrvInputs[1];
-
- case 0x5f8e:
- return (DrvInputs[2] & 0x0f) | (DrvDips[2] & 0xf0);
-
- case 0x5f8f:
- return DrvDips[0];
-
- case 0x5f90:
- return DrvDips[1];
-
- case 0x5fc0:
- // watchdog
- return 0;
- }
-
- if ((address & 0xf800) == 0x0000) {
- if (videobank & 0x02) {
- return DrvPalRAM[((videobank & 4) << 9) + address];
- } else if (videobank & 0x01) {
- return K053245Read(0, address);
- }
- return DrvBankRAM[address];
- }
-
- if ((address & 0xfff0) == 0x5fa0) {
- return K053244Read(0, address & 0x0f);
- }
-
- if ((address & 0xc000) == 0x4000) {
- return K052109Read(address & 0x3fff);
- }
-
- return 0;
-}
-
-void supratk_write(UINT16 address, UINT8 data)
-{
- switch (address)
- {
- case 0x5fc0:
- K052109RMRDLine = data & 0x08;
- return;
-
- case 0x5fc4:
- videobank = data;
- return;
-
- case 0x5fd0:
- BurnYM2151SelectRegister(data);
- return;
-
- case 0x5fd1:
- BurnYM2151WriteRegister(data);
- return;
- }
-
- if ((address & 0xf800) == 0x0000) {
- if (videobank & 0x02) {
- DrvPalRAM[((videobank & 4) << 9) + address] = data;
- return;
- } else if (videobank & 0x01) {
- K053245Write(0, address, data);
- return;
- }
- DrvBankRAM[address] = data;
- return;
- }
-
- if ((address & 0xfff0) == 0x5fa0) {
- K053244Write(0, address & 0x0f, data);
- return;
- }
-
- if ((address & 0xfff0) == 0x5fb0) {
- K053251Write(address & 0x0f, data);
- return;
- }
-
- if ((address & 0xc000) == 0x4000) {
- K052109Write(address & 0x3fff, data);
- return;
- }
-}
-
-static void K052109Callback(INT32 layer, INT32 bank, INT32 *code, INT32 *color, INT32 *flags, INT32 *)
-{
- *flags = (*color & 0x80) >> 7;
- *code |= ((*color & 0x03) << 8) | ((*color & 0x10) << 6) | ((*color & 0x0c) << 9) | (bank << 13);
- *color = layer_colorbase[layer] + ((*color & 0x60) >> 5);
-}
-
-static void K053245Callback(INT32 *code, INT32 *color, INT32 *priority)
-{
- INT32 pri = 0x20 | ((*color & 0x60) >> 2);
- if (pri <= layerpri[2]) *priority = 0x00;
- else if (pri > layerpri[2] && pri <= layerpri[1]) *priority = 0xf0;
- else if (pri > layerpri[1] && pri <= layerpri[0]) *priority = 0xfc;
- else *priority = 0xfe;
-
- *code &= 0xfff;
- *color = sprite_colorbase + (*color & 0x1f);
-}
-
-static void supratk_set_lines(INT32 lines)
-{
- nDrvRomBank[0] = lines;
- konamiMapMemory(DrvKonROM + 0x10000 + ((lines & 0x1f) * 0x2000), 0x2000, 0x3fff, MAP_ROM);
-}
-
-static void DrvYM2151IRQHandler(INT32 nStatus)
-{
- konamiSetIrqLine(KONAMI_FIRQ_LINE, nStatus ? 3 /* use 3 as ACK */ : 0);
-}
-
-static INT32 DrvDoReset()
-{
- DrvReset = 0;
-
- memset (AllRam, 0, RamEnd - AllRam);
-
- konamiOpen(0);
- konamiReset();
- konamiClose();
-
- BurnYM2151Reset();
-
- KonamiICReset();
-
- videobank = 0;
-
- return 0;
-}
-
-static INT32 MemIndex()
-{
- UINT8 *Next; Next = AllMem;
-
- DrvGfxROM0 = Next; Next += 0x080000;
- DrvGfxROMExp0 = Next; Next += 0x100000;
- DrvGfxROM1 = Next; Next += 0x080000;
- DrvGfxROMExp1 = Next; Next += 0x100000;
-
- DrvKonROM = Next; Next += 0x050000;
-
- DrvPalette = (UINT32*)Next; Next += 0x800 * sizeof(UINT32);
-
- AllRam = Next;
-
- DrvBankRAM = Next; Next += 0x000800;
- DrvKonRAM = Next; Next += 0x001800;
- DrvPalRAM = Next; Next += 0x001000;
-
- nDrvRomBank = Next; Next += 0x000001;
-
- RamEnd = Next;
- MemEnd = Next;
-
- return 0;
-}
-
-static INT32 DrvInit()
-{
- GenericTilesInit();
-
- AllMem = NULL;
- MemIndex();
- int nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(DrvKonROM + 0x010000, 0, 1)) return 1;
- if (BurnLoadRom(DrvKonROM + 0x030000, 1, 1)) return 1;
- memcpy (DrvKonROM + 0x08000, DrvKonROM + 0x48000, 0x8000);
-
- if (BurnLoadRomExt(DrvGfxROM0 + 0x000000, 2, 4, 2)) return 1;
- if (BurnLoadRomExt(DrvGfxROM0 + 0x000002, 3, 4, 2)) return 1;
-
- if (BurnLoadRomExt(DrvGfxROM1 + 0x000000, 4, 4, 2)) return 1;
- if (BurnLoadRomExt(DrvGfxROM1 + 0x000002, 5, 4, 2)) return 1;
-
- K052109GfxDecode(DrvGfxROM0, DrvGfxROMExp0, 0x080000);
- K053245GfxDecode(DrvGfxROM1, DrvGfxROMExp1, 0x080000);
- }
-
- konamiInit(0);
- konamiOpen(0);
- konamiMapMemory(DrvKonRAM, 0x0800, 0x1fff, MAP_RAM);
- konamiMapMemory(DrvKonROM + 0x10000, 0x2000, 0x3fff, MAP_ROM);
- konamiMapMemory(DrvKonROM + 0x08000, 0x8000, 0xffff, MAP_ROM);
- konamiSetWriteHandler(supratk_write);
- konamiSetReadHandler(supratk_read);
- konamiSetlinesCallback(supratk_set_lines);
- konamiClose();
-
- K052109Init(DrvGfxROM0, DrvGfxROMExp0, 0x7ffff);
- K052109SetCallback(K052109Callback);
- K052109AdjustScroll(8, 0);
-
- K053245Init(0, DrvGfxROM1, DrvGfxROMExp1, 0x7ffff, K053245Callback);
- K053245SetSpriteOffset(0, -112, 16);
-
- BurnYM2151Init(3579545);
- YM2151SetIrqHandler(0, &DrvYM2151IRQHandler);
- BurnYM2151SetRoute(BURN_SND_YM2151_YM2151_ROUTE_1, 1.00, BURN_SND_ROUTE_LEFT);
- BurnYM2151SetRoute(BURN_SND_YM2151_YM2151_ROUTE_2, 1.00, BURN_SND_ROUTE_RIGHT);
-
- DrvDoReset();
- konami_set_highlight_over_sprites_mode(1);
-
- return 0;
-}
-
-static INT32 DrvExit()
-{
- GenericTilesExit();
-
- KonamiICExit();
- K053245Exit();
-
- konamiExit();
-
- BurnYM2151Exit();
-
- BurnFree (AllMem);
-
- return 0;
-}
-
-static INT32 DrvDraw()
-{
- KonamiRecalcPalette(DrvPalRAM, DrvPalette, 0x1000);
-
- K052109UpdateScroll();
-
- INT32 bg_colorbase, layer[3];
-
- bg_colorbase = K053251GetPaletteIndex(0);
- sprite_colorbase = K053251GetPaletteIndex(1);
- layer_colorbase[0] = K053251GetPaletteIndex(2);
- layer_colorbase[1] = K053251GetPaletteIndex(4);
- layer_colorbase[2] = K053251GetPaletteIndex(3);
-
- layerpri[0] = K053251GetPriority(2);
- layerpri[1] = K053251GetPriority(4);
- layerpri[2] = K053251GetPriority(3);
- layer[0] = 0;
- layer[1] = 1;
- layer[2] = 2;
-
- konami_sortlayers3(layer,layerpri);
-
- KonamiClearBitmaps(DrvPalette[16 * bg_colorbase]);
-
- if (nBurnLayer & 1) K052109RenderLayer(layer[0], 0, 1);
- if (nBurnLayer & 2) K052109RenderLayer(layer[1], 0, 2);
- if (nBurnLayer & 4) K052109RenderLayer(layer[2], 0, 4);
-
- if (nSpriteEnable & 1) K053245SpritesRender(0);
-
- KonamiBlendCopy(DrvPalette);
-
- return 0;
-}
-
-static INT32 DrvFrame()
-{
- if (DrvReset) {
- DrvDoReset();
- }
-
- {
- memset (DrvInputs, 0xff, 3);
- for (INT32 i = 0; i < 8; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- DrvInputs[2] ^= (DrvJoy3[i] & 1) << i;
- }
-
- // Clear Opposites
- if ((DrvInputs[0] & 0x18) == 0) DrvInputs[0] |= 0x18;
- if ((DrvInputs[0] & 0x06) == 0) DrvInputs[0] |= 0x06;
- if ((DrvInputs[1] & 0x18) == 0) DrvInputs[1] |= 0x18;
- if ((DrvInputs[1] & 0x06) == 0) DrvInputs[1] |= 0x06;
- }
-
- INT32 nSoundBufferPos = 0;
- INT32 nInterleave = 256;
- INT32 nCyclesTotal = (((3000000 / 60) * 133) / 100); // 33% overclock
- INT32 nCyclesDone = 0;
-
- konamiOpen(0);
-
- for (INT32 i = 0; i < nInterleave; i++) {
- INT32 nSegment = (nCyclesTotal / nInterleave) * (i + 1);
-
- if (i == 240) {
- if (K052109_irq_enabled) {
- nCyclesDone += konamiRun(10); // avoid irq masking from ym2151-generated irq's
- konamiSetIrqLine(KONAMI_IRQ_LINE, CPU_IRQSTATUS_HOLD);
- nCyclesDone += konamiRun(10);
- }
- }
-
- nCyclesDone += konamiRun(nSegment - nCyclesDone);
-
- if (pBurnSoundOut && i%8 == 7) {
- INT32 nSegmentLength = nBurnSoundLen / (nInterleave / 8);
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- BurnYM2151Render(pSoundBuf, nSegmentLength);
- nSoundBufferPos += nSegmentLength;
- }
- }
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
- if (nSegmentLength) {
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- BurnYM2151Render(pSoundBuf, nSegmentLength);
- }
- }
-
- konamiClose();
-
- if (pBurnDraw) {
- DrvDraw();
- }
-
- return 0;
-}
-
-static INT32 DrvScan(INT32 nAction, INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin) {
- *pnMin = 0x029705;
- }
-
- if (nAction & ACB_VOLATILE) {
- memset(&ba, 0, sizeof(ba));
-
- ba.Data = AllRam;
- ba.nLen = RamEnd - AllRam;
- ba.szName = "All Ram";
- BurnAcb(&ba);
-
- konamiCpuScan(nAction);
-
- BurnYM2151Scan(nAction);
-
- KonamiICScan(nAction);
- }
-
- if (nAction & ACB_DRIVER_DATA) {
- SCAN_VAR(videobank);
- }
-
- if (nAction & ACB_WRITE) {
- konamiOpen(0);
- supratk_set_lines(nDrvRomBank[0]);
- konamiClose();
- }
-
- return 0;
-}
-
-
-// Surprise Attack (World ver. K)
-
-static struct BurnRomInfo suratkRomDesc[] = {
- { "911j01.f5", 0x20000, 0x1e647881, 1 | BRF_PRG | BRF_ESS }, // 0 Konami Custom Code
- { "911k02.h5", 0x20000, 0xef10e7b6, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "911d05.bin", 0x40000, 0x308d2319, 2 | BRF_GRA }, // 2 Background Tiles
- { "911d06.bin", 0x40000, 0x91cc9b32, 2 | BRF_GRA }, // 3
-
- { "911d03.bin", 0x40000, 0xe34ff182, 3 | BRF_GRA }, // 4 Sprites
- { "911d04.bin", 0x40000, 0x20700bd2, 3 | BRF_GRA }, // 5
-};
-
-STD_ROM_PICK(suratk)
-STD_ROM_FN(suratk)
-
-struct BurnDriver BurnDrvSuratk = {
- "suratk", NULL, NULL, NULL, "1990",
- "Surprise Attack (World ver. K)\0", NULL, "Konami", "GX911",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_PREFIX_KONAMI, GBF_HORSHOOT | GBF_SCRFIGHT | GBF_PLATFORM, 0,
- NULL, suratkRomInfo, suratkRomName, NULL, NULL, SurpratkInputInfo, SurpratkDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 304, 224, 4, 3
-};
-
-
-// Surprise Attack (Asia ver. L)
-
-static struct BurnRomInfo suratkaRomDesc[] = {
- { "911j01.f5", 0x20000, 0x1e647881, 1 | BRF_PRG | BRF_ESS }, // 0 Konami Custom Code
- { "911l02.h5", 0x20000, 0x11db8288, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "911d05.bin", 0x40000, 0x308d2319, 2 | BRF_GRA }, // 2 Background Tiles
- { "911d06.bin", 0x40000, 0x91cc9b32, 2 | BRF_GRA }, // 3
-
- { "911d03.bin", 0x40000, 0xe34ff182, 3 | BRF_GRA }, // 4 Sprites
- { "911d04.bin", 0x40000, 0x20700bd2, 3 | BRF_GRA }, // 5
-};
-
-STD_ROM_PICK(suratka)
-STD_ROM_FN(suratka)
-
-struct BurnDriver BurnDrvSuratka = {
- "suratka", "suratk", NULL, NULL, "1990",
- "Surprise Attack (Asia ver. L)\0", NULL, "Konami", "GX911",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_KONAMI, GBF_HORSHOOT | GBF_SCRFIGHT | GBF_PLATFORM, 0,
- NULL, suratkaRomInfo, suratkaRomName, NULL, NULL, SurpratkInputInfo, SurpratkDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 304, 224, 4, 3
-};
-
-
-// Surprise Attack (Japan ver. M)
-
-static struct BurnRomInfo suratkjRomDesc[] = {
- { "911m01.f5", 0x20000, 0xee5b2cc8, 1 | BRF_PRG | BRF_ESS }, // 0 Konami Custom Code
- { "911m02.h5", 0x20000, 0x5d4148a8, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "911d05.bin", 0x40000, 0x308d2319, 2 | BRF_GRA }, // 2 Background Tiles
- { "911d06.bin", 0x40000, 0x91cc9b32, 2 | BRF_GRA }, // 3
-
- { "911d03.bin", 0x40000, 0xe34ff182, 3 | BRF_GRA }, // 4 Sprites
- { "911d04.bin", 0x40000, 0x20700bd2, 3 | BRF_GRA }, // 5
-};
-
-STD_ROM_PICK(suratkj)
-STD_ROM_FN(suratkj)
-
-struct BurnDriver BurnDrvSuratkj = {
- "suratkj", "suratk", NULL, NULL, "1990",
- "Surprise Attack (Japan ver. M)\0", NULL, "Konami", "GX911",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_KONAMI, GBF_HORSHOOT | GBF_SCRFIGHT | GBF_PLATFORM, 0,
- NULL, suratkjRomInfo, suratkjRomName, NULL, NULL, SurpratkInputInfo, SuratkjDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 304, 224, 4, 3
-};
diff --git a/jan/src/burn/drv/konami/d_thunderx.cpp b/jan/src/burn/drv/konami/d_thunderx.cpp
deleted file mode 100644
index 9b2ae0fad..000000000
--- a/jan/src/burn/drv/konami/d_thunderx.cpp
+++ /dev/null
@@ -1,1173 +0,0 @@
-// FB Alpha Thunder X / Super Contra driver module
-// Based on MAME driver by by Bryan McPhail, Manuel Abadia, and Eddie Edwards
-
-#include "tiles_generic.h"
-#include "z80_intf.h"
-#include "konami_intf.h"
-#include "konamiic.h"
-#include "burn_ym2151.h"
-#include "k007232.h"
-
-static UINT8 *AllMem;
-static UINT8 *MemEnd;
-static UINT8 *AllRam;
-static UINT8 *RamEnd;
-static UINT8 *DrvKonROM;
-static UINT8 *DrvZ80ROM;
-static UINT8 *DrvGfxROM0;
-static UINT8 *DrvGfxROM1;
-static UINT8 *DrvGfxROMExp0;
-static UINT8 *DrvGfxROMExp1;
-static UINT8 *DrvSndROM;
-static UINT8 *DrvBankRAM;
-static UINT8 *DrvKonRAM;
-static UINT8 *DrvPalRAM;
-static UINT8 *DrvZ80RAM;
-static UINT32 *DrvPalette;
-static UINT8 DrvRecalc;
-
-static UINT8 *soundlatch;
-static UINT8 *nDrvKonamiBank;
-
-static UINT8 *pmcram;
-static UINT8 thunderx_1f98_data;
-static UINT8 layer_priority;
-
-static UINT8 DrvJoy1[8];
-static UINT8 DrvJoy2[8];
-static UINT8 DrvJoy3[8];
-static UINT8 DrvDips[3];
-static UINT8 DrvInputs[3];
-static UINT8 DrvReset;
-
-static INT32 thunderx = 0;
-
-static struct BurnInputInfo ThunderxInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy1 + 0, "p1 coin"},
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 3, "p1 start"},
- {"P1 Up", BIT_DIGITAL, DrvJoy2 + 2, "p1 up"},
- {"P1 Down", BIT_DIGITAL, DrvJoy2 + 3, "p1 down"},
- {"P1 Left", BIT_DIGITAL, DrvJoy2 + 0, "p1 left"},
- {"P1 Right", BIT_DIGITAL, DrvJoy2 + 1, "p1 right"},
- {"P1 Button 1", BIT_DIGITAL, DrvJoy2 + 4, "p1 fire 1"},
- {"P1 Button 2", BIT_DIGITAL, DrvJoy2 + 5, "p1 fire 2"},
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy1 + 1, "p2 coin"},
- {"P2 Start", BIT_DIGITAL, DrvJoy1 + 4, "p2 start"},
- {"P2 Up", BIT_DIGITAL, DrvJoy3 + 2, "p2 up"},
- {"P2 Down", BIT_DIGITAL, DrvJoy3 + 3, "p2 down"},
- {"P2 Left", BIT_DIGITAL, DrvJoy3 + 0, "p2 left"},
- {"P2 Right", BIT_DIGITAL, DrvJoy3 + 1, "p2 right"},
- {"P2 Button 1", BIT_DIGITAL, DrvJoy3 + 4, "p2 fire 1"},
- {"P2 Button 2", BIT_DIGITAL, DrvJoy3 + 5, "p2 fire 2"},
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset"},
- {"Service", BIT_DIGITAL, DrvJoy1 + 2, "service"},
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip"},
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip"},
- {"Dip C", BIT_DIPSWITCH, DrvDips + 2, "dip"},
-};
-
-STDINPUTINFO(Thunderx)
-
-static struct BurnDIPInfo ScontraDIPList[]=
-{
- {0x12, 0xff, 0xff, 0xff, NULL },
- {0x13, 0xff, 0xff, 0x5a, NULL },
- {0x14, 0xff, 0xff, 0xff, NULL },
-
- {0 , 0xfe, 0 , 16, "Coin A" },
- {0x12, 0x01, 0x0f, 0x02, "4 Coins 1 Credit" },
- {0x12, 0x01, 0x0f, 0x05, "3 Coins 1 Credit" },
- {0x12, 0x01, 0x0f, 0x08, "2 Coins 1 Credit" },
- {0x12, 0x01, 0x0f, 0x04, "3 Coins 2 Credits" },
- {0x12, 0x01, 0x0f, 0x01, "4 Coins 3 Credits" },
- {0x12, 0x01, 0x0f, 0x0f, "1 Coin 1 Credit" },
- {0x12, 0x01, 0x0f, 0x03, "3 Coins 4 Credits" },
- {0x12, 0x01, 0x0f, 0x07, "2 Coins 3 Credits" },
- {0x12, 0x01, 0x0f, 0x0e, "1 Coin 2 Credits" },
- {0x12, 0x01, 0x0f, 0x06, "2 Coins 5 Credits" },
- {0x12, 0x01, 0x0f, 0x0d, "1 Coin 3 Credits" },
- {0x12, 0x01, 0x0f, 0x0c, "1 Coin 4 Credits" },
- {0x12, 0x01, 0x0f, 0x0b, "1 Coin 5 Credits" },
- {0x12, 0x01, 0x0f, 0x0a, "1 Coin 6 Credits" },
- {0x12, 0x01, 0x0f, 0x09, "1 Coin 7 Credits" },
- {0x12, 0x01, 0x0f, 0x00, "Free Play" },
-
- {0 , 0xfe, 0 , 15, "Coin B" },
- {0x12, 0x01, 0xf0, 0x20, "4 Coins 1 Credit" },
- {0x12, 0x01, 0xf0, 0x50, "3 Coins 1 Credit" },
- {0x12, 0x01, 0xf0, 0x80, "2 Coins 1 Credit" },
- {0x12, 0x01, 0xf0, 0x40, "3 Coins 2 Credits" },
- {0x12, 0x01, 0xf0, 0x10, "4 Coins 3 Credits" },
- {0x12, 0x01, 0xf0, 0xf0, "1 Coin 1 Credit" },
- {0x12, 0x01, 0xf0, 0x30, "3 Coins 4 Credits" },
- {0x12, 0x01, 0xf0, 0x70, "2 Coins 3 Credits" },
- {0x12, 0x01, 0xf0, 0xe0, "1 Coin 2 Credits" },
- {0x12, 0x01, 0xf0, 0x60, "2 Coins 5 Credits" },
- {0x12, 0x01, 0xf0, 0xd0, "1 Coin 3 Credits" },
- {0x12, 0x01, 0xf0, 0xc0, "1 Coin 4 Credits" },
- {0x12, 0x01, 0xf0, 0xb0, "1 Coin 5 Credits" },
- {0x12, 0x01, 0xf0, 0xa0, "1 Coin 6 Credits" },
- {0x12, 0x01, 0xf0, 0x90, "1 Coin 7 Credits" },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x13, 0x01, 0x03, 0x03, "2" },
- {0x13, 0x01, 0x03, 0x02, "3" },
- {0x13, 0x01, 0x03, 0x01, "5" },
- {0x13, 0x01, 0x03, 0x00, "7" },
-
- {0 , 0xfe, 0 , 4, "Bonus Life" },
- {0x13, 0x01, 0x18, 0x18, "30000 200000" },
- {0x13, 0x01, 0x18, 0x10, "50000 300000" },
- {0x13, 0x01, 0x18, 0x08, "30000" },
- {0x13, 0x01, 0x18, 0x00, "50000" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x13, 0x01, 0x60, 0x60, "Easy" },
- {0x13, 0x01, 0x60, 0x40, "Normal" },
- {0x13, 0x01, 0x60, 0x20, "Difficult" },
- {0x13, 0x01, 0x60, 0x00, "Very Difficult" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x13, 0x01, 0x80, 0x80, "Off" },
- {0x13, 0x01, 0x80, 0x00, "On" },
-
-// {0 , 0xfe, 0 , 2, "Flip Screen" },
-// {0x14, 0x01, 0x01, 0x01, "Off" },
-// {0x14, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x14, 0x01, 0x04, 0x04, "Off" },
- {0x14, 0x01, 0x04, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Continue Limit" },
- {0x14, 0x01, 0x08, 0x08, "3" },
- {0x14, 0x01, 0x08, 0x00, "5" },
-};
-
-STDDIPINFO(Scontra)
-
-static struct BurnDIPInfo ThunderxDIPList[]=
-{
- {0x12, 0xff, 0xff, 0xff, NULL },
- {0x13, 0xff, 0xff, 0x52, NULL },
- {0x14, 0xff, 0xff, 0xff, NULL },
-
- {0 , 0xfe, 0 , 16, "Coin A" },
- {0x12, 0x01, 0x0f, 0x02, "4 Coins 1 Credit" },
- {0x12, 0x01, 0x0f, 0x05, "3 Coins 1 Credit" },
- {0x12, 0x01, 0x0f, 0x08, "2 Coins 1 Credit" },
- {0x12, 0x01, 0x0f, 0x04, "3 Coins 2 Credits" },
- {0x12, 0x01, 0x0f, 0x01, "4 Coins 3 Credits" },
- {0x12, 0x01, 0x0f, 0x0f, "1 Coin 1 Credit" },
- {0x12, 0x01, 0x0f, 0x03, "3 Coins 4 Credits" },
- {0x12, 0x01, 0x0f, 0x07, "2 Coins 3 Credits" },
- {0x12, 0x01, 0x0f, 0x0e, "1 Coin 2 Credits" },
- {0x12, 0x01, 0x0f, 0x06, "2 Coins 5 Credits" },
- {0x12, 0x01, 0x0f, 0x0d, "1 Coin 3 Credits" },
- {0x12, 0x01, 0x0f, 0x0c, "1 Coin 4 Credits" },
- {0x12, 0x01, 0x0f, 0x0b, "1 Coin 5 Credits" },
- {0x12, 0x01, 0x0f, 0x0a, "1 Coin 6 Credits" },
- {0x12, 0x01, 0x0f, 0x09, "1 Coin 7 Credits" },
- {0x12, 0x01, 0x0f, 0x00, "Free Play" },
-
- {0 , 0xfe, 0 , 15, "Coin B" },
- {0x12, 0x01, 0xf0, 0x20, "4 Coins 1 Credit" },
- {0x12, 0x01, 0xf0, 0x50, "3 Coins 1 Credit" },
- {0x12, 0x01, 0xf0, 0x80, "2 Coins 1 Credit" },
- {0x12, 0x01, 0xf0, 0x40, "3 Coins 2 Credits" },
- {0x12, 0x01, 0xf0, 0x10, "4 Coins 3 Credits" },
- {0x12, 0x01, 0xf0, 0xf0, "1 Coin 1 Credit" },
- {0x12, 0x01, 0xf0, 0x30, "3 Coins 4 Credits" },
- {0x12, 0x01, 0xf0, 0x70, "2 Coins 3 Credits" },
- {0x12, 0x01, 0xf0, 0xe0, "1 Coin 2 Credits" },
- {0x12, 0x01, 0xf0, 0x60, "2 Coins 5 Credits" },
- {0x12, 0x01, 0xf0, 0xd0, "1 Coin 3 Credits" },
- {0x12, 0x01, 0xf0, 0xc0, "1 Coin 4 Credits" },
- {0x12, 0x01, 0xf0, 0xb0, "1 Coin 5 Credits" },
- {0x12, 0x01, 0xf0, 0xa0, "1 Coin 6 Credits" },
- {0x12, 0x01, 0xf0, 0x90, "1 Coin 7 Credits" },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x13, 0x01, 0x03, 0x03, "2" },
- {0x13, 0x01, 0x03, 0x02, "3" },
- {0x13, 0x01, 0x03, 0x01, "5" },
- {0x13, 0x01, 0x03, 0x00, "7" },
-
- {0 , 0xfe, 0 , 2, "Award Bonus Life" },
- {0x13, 0x01, 0x04, 0x04, "No" },
- {0x13, 0x01, 0x04, 0x00, "Yes" },
-
- {0 , 0xfe, 0 , 4, "Bonus Life" },
- {0x13, 0x01, 0x18, 0x18, "30000 200000" },
- {0x13, 0x01, 0x18, 0x10, "50000 300000" },
- {0x13, 0x01, 0x18, 0x08, "30000" },
- {0x13, 0x01, 0x18, 0x00, "50000" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x13, 0x01, 0x60, 0x60, "Easy" },
- {0x13, 0x01, 0x60, 0x40, "Normal" },
- {0x13, 0x01, 0x60, 0x20, "Difficult" },
- {0x13, 0x01, 0x60, 0x00, "Very Difficult" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x13, 0x01, 0x80, 0x80, "Off" },
- {0x13, 0x01, 0x80, 0x00, "On" },
-
-// {0 , 0xfe, 0 , 2, "Flip Screen" },
-// {0x14, 0x01, 0x01, 0x01, "Off" },
-// {0x14, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x14, 0x01, 0x04, 0x04, "Off" },
- {0x14, 0x01, 0x04, 0x00, "On" },
-};
-
-STDDIPINFO(Thunderx)
-
-static void run_collisions(INT32 s0, INT32 e0, INT32 s1, INT32 e1, INT32 cm, INT32 hm)
-{
- INT32 ii, jj;
- UINT8 *p0, *p1;
-
- p0 = &pmcram[16 + 5*s0];
- for (ii = s0; ii < e0; ii++, p0 += 5)
- {
- INT32 l0,r0,b0,t0;
-
- // check valid
- if (!(p0[0] & cm)) continue;
-
- // get area
- l0 = p0[3] - p0[1];
- r0 = p0[3] + p0[1];
- t0 = p0[4] - p0[2];
- b0 = p0[4] + p0[2];
-
- p1 = &pmcram[16 + 5*s1];
- for (jj = s1; jj < e1; jj++,p1 += 5)
- {
- INT32 l1,r1,b1,t1;
-
- // check valid
- if (!(p1[0] & hm)) continue;
-
- // get area
- l1 = p1[3] - p1[1];
- r1 = p1[3] + p1[1];
- t1 = p1[4] - p1[2];
- b1 = p1[4] + p1[2];
-
- // overlap check
- if (l1 >= r0) continue;
- if (l0 >= r1) continue;
- if (t1 >= b0) continue;
- if (t0 >= b1) continue;
-
- // set flags
- p0[0] = (p0[0] & 0x9f) | (p1[0] & 0x04) | 0x10;
- p1[0] = (p1[0] & 0x9f) | 0x10;
- }
- }
-}
-
-static void calculate_collisions()
-{
- INT32 X0,Y0;
- INT32 X1,Y1;
- INT32 CM,HM;
-
- Y0 = pmcram[0];
- Y0 = (Y0 << 8) + pmcram[1];
- Y0 = (Y0 - 15) / 5;
- Y1 = (pmcram[2] - 15) / 5;
-
- if (pmcram[5] < 16)
- {
- // US Thunder Cross uses this form
- X0 = pmcram[5];
- X0 = (X0 << 8) + pmcram[6];
- X0 = (X0 - 16) / 5;
- X1 = (pmcram[7] - 16) / 5;
- }
- else
- {
- // Japan Thunder Cross uses this form
- X0 = (pmcram[5] - 16) / 5;
- X1 = (pmcram[6] - 16) / 5;
- }
-
- CM = pmcram[3];
- HM = pmcram[4];
-
- run_collisions(X0,Y0,X1,Y1,CM,HM);
-}
-
-static void thunderx_1f98_w(UINT8 data)
-{
- K052109RMRDLine = data & 0x01;
-
- if ((data & 4) && !(thunderx_1f98_data & 4))
- {
- calculate_collisions();
-
- konamiRun(10);
-
- konamiSetIrqLine(KONAMI_FIRQ_LINE, CPU_IRQSTATUS_AUTO); // must be delayed
- }
-
- thunderx_1f98_data = data;
-}
-
-static void scontra_bankswitch(INT32 data)
-{
- nDrvKonamiBank[0] = data;
- layer_priority = data & 0x80;
-
- if (~data & 0x10) {
- konamiMapMemory(DrvPalRAM, 0x5800, 0x5fff, MAP_RAM);
- } else {
- konamiMapMemory(DrvBankRAM, 0x5800, 0x5fff, MAP_RAM);
- }
-
- INT32 nBank = 0x10000 + (data & 0x0f) * 0x2000;
-
- konamiMapMemory(DrvKonROM + nBank, 0x6000, 0x7fff, MAP_ROM);
-}
-
-static void thunderx_videobank(INT32 data)
-{
- nDrvKonamiBank[0] = data;
- layer_priority = data & 0x08;
-
- if (data & 0x01) {
- konamiMapMemory(DrvBankRAM, 0x5800, 0x5fff, MAP_RAM);
- } else if (data & 0x10) {
- if (thunderx_1f98_data & 2) {
- konamiMapMemory(pmcram + 0x800, 0x5800, 0x5fff, MAP_RAM);
- } else {
- konamiMapMemory(pmcram, 0x5800, 0x5fff, MAP_RAM); // junk?
- }
- } else {
- konamiMapMemory(DrvPalRAM, 0x5800, 0x5fff, MAP_RAM);
- }
-}
-
-void scontra_main_write(UINT16 address, UINT8 data)
-{
- switch (address)
- {
- case 0x1f80:
- if (thunderx) {
- thunderx_videobank(data);
- } else {
- scontra_bankswitch(data);
- }
- return;
-
- case 0x1f84:
- *soundlatch = data;
- return;
-
- case 0x1f88:
- ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
- return;
-
- case 0x1f8c:
- // watchdog
- return;
-
- case 0x1f98:
- thunderx_1f98_w(data);
- return;
- }
-
- if (address < 0x4000) {
- K052109_051960_w(address & 0x3fff, data);
- return;
- }
-}
-
-UINT8 scontra_main_read(UINT16 address)
-{
- switch (address)
- {
- case 0x1f90:
- return DrvInputs[0];
-
- case 0x1f91:
- return DrvInputs[1];
-
- case 0x1f92:
- return DrvInputs[2];
-
- case 0x1f93:
- return DrvDips[2];
-
- case 0x1f94:
- return DrvDips[0];
-
- case 0x1f95:
- return DrvDips[1];
-
- case 0x1f98:
- return thunderx_1f98_data;
- }
-
- if (address < 0x4000) {
- return K052109_051960_r(address & 0x3fff);
- }
-
- return 0;
-}
-
-static void scontra_snd_bankswitch_w(INT32 data)
-{
- INT32 bank_A = (data & 0x03);
- INT32 bank_B = ((data >> 2) & 0x03);
- k007232_set_bank(0, bank_A, bank_B );
-}
-
-void __fastcall scontra_sound_write(UINT16 address, UINT8 data)
-{
- if ((address & 0xfff0) == 0xb000) {
- K007232WriteReg(0, address & 0x0f, data);
- return;
- }
-
- switch (address)
- {
- case 0xc000:
- BurnYM2151SelectRegister(data);
- return;
-
- case 0xc001:
- BurnYM2151WriteRegister(data);
- return;
-
- case 0xf000:
- scontra_snd_bankswitch_w(data);
- return;
- }
-}
-
-UINT8 __fastcall scontra_sound_read(UINT16 address)
-{
- if ((address & 0xfff0) == 0xb000) {
- return K007232ReadReg(0, address & 0x0f);
- }
-
- switch (address)
- {
- case 0xa000:
- ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
- return *soundlatch;
-
- case 0xc001:
- return BurnYM2151ReadStatus();
- }
-
- return 0;
-}
-
-static void DrvK007232VolCallback(INT32 v)
-{
- K007232SetVolume(0, 0, (v >> 0x4) * 0x11, 0);
- K007232SetVolume(0, 1, 0, (v & 0x0f) * 0x11);
-}
-
-static void K052109Callback(INT32 layer, INT32 bank, INT32 *code, INT32 *color, INT32 *, INT32 *)
-{
- INT32 layer_colorbase[3] = { 48, 0, 16 };
-
- *code |= ((*color & 0x1f) << 8) | (bank << 13);
- *color = layer_colorbase[layer] + ((*color & 0xe0) >> 5);
-}
-
-static void K051960Callback(INT32 *, INT32 *color,INT32 *priority, INT32 *)
-{
- switch (*color & 0x30)
- {
- case 0x00: *priority = 0xf0; break;
- case 0x10: *priority = 0xfe; break;
- case 0x20: *priority = 0xfc; break;
- case 0x30: *priority = 0xffff; break;
- }
-
- *color = 0x20 + (*color & 0x0f);
-}
-
-static void thunderx_set_lines(INT32 lines)
-{
- nDrvKonamiBank[0] = lines;
-
- INT32 nBank = 0x10000 + (((lines & 0x0f) ^ 0x08) * 0x2000);
- if (nBank >= 0x28000) nBank -= 0x20000;
-
- konamiMapMemory(DrvKonROM + nBank, 0x6000, 0x7fff, MAP_ROM);
-}
-
-static INT32 DrvDoReset()
-{
- DrvReset = 0;
-
- memset (AllRam, 0, RamEnd - AllRam);
-
- konamiOpen(0);
- konamiReset();
- konamiClose();
-
- ZetOpen(0);
- ZetReset();
- ZetClose();
-
- BurnYM2151Reset();
-
- KonamiICReset();
-
- layer_priority = 0;
-
- HiscoreReset();
-
- return 0;
-}
-
-static INT32 MemIndex()
-{
- UINT8 *Next; Next = AllMem;
-
- DrvKonROM = Next; Next += 0x040000;
- DrvZ80ROM = Next; Next += 0x010000;
-
- DrvGfxROM0 = Next; Next += 0x100000;
- DrvGfxROM1 = Next; Next += 0x100000;
- DrvGfxROMExp0 = Next; Next += 0x200000;
- DrvGfxROMExp1 = Next; Next += 0x200000;
-
- DrvSndROM = Next; Next += 0x080000;
-
- DrvPalette = (UINT32*)Next; Next += 0x400 * sizeof(UINT32);
-
- AllRam = Next;
-
- DrvBankRAM = Next; Next += 0x000800;
- DrvKonRAM = Next; Next += 0x001800;
- DrvPalRAM = Next; Next += 0x000800;
-
- DrvZ80RAM = Next; Next += 0x000800;
-
- soundlatch = Next; Next += 0x000001;
-
- nDrvKonamiBank = Next; Next += 0x000002;
-
- pmcram = Next; Next += 0x001000;
-
- RamEnd = Next;
- MemEnd = Next;
-
- return 0;
-}
-
-static INT32 DrvInit(INT32 type)
-{
- GenericTilesInit();
-
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (type) {
- if (BurnLoadRom(DrvKonROM + 0x010000, 0, 1)) return 1;
- if (BurnLoadRom(DrvKonROM + 0x020000, 1, 1)) return 1;
- memcpy (DrvKonROM + 0x08000, DrvKonROM + 0x18000, 0x8000);
-
- if (BurnLoadRom(DrvZ80ROM + 0x000000, 2, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x000000, 3, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x000001, 4, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x000002, 5, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x000003, 6, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x080000, 7, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x080001, 8, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x080002, 9, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x080003, 10, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x0c0000, 11, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x0c0001, 12, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x0c0002, 13, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x0c0003, 14, 4)) return 1;
-
- if (BurnLoadRom(DrvGfxROM1 + 0x000000, 15, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x000001, 16, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x000002, 17, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x000003, 18, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x040000, 19, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x040001, 20, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x040002, 21, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x040003, 22, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x080000, 23, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x080001, 24, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x080002, 25, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x080003, 26, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x0c0000, 27, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x0c0001, 28, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x0c0002, 29, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x0c0003, 30, 4)) return 1;
-
- if (BurnLoadRom(DrvSndROM + 0x000000, 31, 1)) return 1;
- if (BurnLoadRom(DrvSndROM + 0x010000, 32, 1)) return 1;
- if (BurnLoadRom(DrvSndROM + 0x020000, 33, 1)) return 1;
- if (BurnLoadRom(DrvSndROM + 0x030000, 34, 1)) return 1;
- if (BurnLoadRom(DrvSndROM + 0x040000, 35, 1)) return 1;
- if (BurnLoadRom(DrvSndROM + 0x050000, 36, 1)) return 1;
- if (BurnLoadRom(DrvSndROM + 0x060000, 37, 1)) return 1;
- if (BurnLoadRom(DrvSndROM + 0x070000, 38, 1)) return 1;
- } else {
- if (BurnLoadRom(DrvKonROM + 0x010000, 0, 1)) return 1;
- if (BurnLoadRom(DrvKonROM + 0x020000, 1, 1)) return 1;
- memcpy (DrvKonROM + 0x8000, DrvKonROM + 0x28000, 0x8000);
-
- if (BurnLoadRom(DrvZ80ROM + 0x000000, 2, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x000000, 3, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x000001, 4, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x000002, 5, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x000003, 6, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x040000, 7, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x040001, 8, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x040002, 9, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x040003, 10, 4)) return 1;
-
- if (BurnLoadRom(DrvGfxROM1 + 0x000000, 11, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x000001, 12, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x000002, 13, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x000003, 14, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x040000, 15, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x040001, 16, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x040002, 17, 4)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x040003, 18, 4)) return 1;
-
- thunderx = 1;
- }
-
- K052109GfxDecode(DrvGfxROM0, DrvGfxROMExp0, 0x100000);
- K051960GfxDecode(DrvGfxROM1, DrvGfxROMExp1, 0x100000);
- }
-
- konamiInit(0);
- konamiOpen(0);
- konamiMapMemory(DrvKonRAM, 0x4000, 0x57ff, MAP_RAM);
- konamiMapMemory(DrvBankRAM, 0x5800, 0x5fff, MAP_RAM);
- konamiMapMemory(DrvKonROM + 0x10000, 0x6000, 0x7fff, MAP_ROM);
- konamiMapMemory(DrvKonROM + 0x08000, 0x8000, 0xffff, MAP_ROM);
- konamiSetWriteHandler(scontra_main_write);
- konamiSetReadHandler(scontra_main_read);
- konamiSetlinesCallback(thunderx_set_lines);
- konamiClose();
-
- ZetInit(0);
- ZetOpen(0);
- ZetMapArea(0x0000, 0x7fff, 0, DrvZ80ROM);
- ZetMapArea(0x0000, 0x7fff, 2, DrvZ80ROM);
- ZetMapArea(0x8000, 0x87ff, 0, DrvZ80RAM);
- ZetMapArea(0x8000, 0x87ff, 1, DrvZ80RAM);
- ZetMapArea(0x8000, 0x87ff, 2, DrvZ80RAM);
- ZetSetWriteHandler(scontra_sound_write);
- ZetSetReadHandler(scontra_sound_read);
- ZetClose();
-
- BurnYM2151Init(3579545);
- BurnYM2151SetAllRoutes(1.00, BURN_SND_ROUTE_BOTH);
-
- K007232Init(0, 3579545, DrvSndROM, 0x80000);
- K007232SetPortWriteHandler(0, DrvK007232VolCallback);
- K007232PCMSetAllRoutes(0, 0.20, BURN_SND_ROUTE_BOTH);
-
- K052109Init(DrvGfxROM0, DrvGfxROMExp0, 0x0fffff >> thunderx);
- K052109SetCallback(K052109Callback);
- K052109AdjustScroll(8, 0);
-
- K051960Init(DrvGfxROM1, DrvGfxROMExp1, 0x0fffff >> thunderx);
- K051960SetCallback(K051960Callback);
- K051960SetSpriteOffset(8, 0);
-
- DrvDoReset();
-
- return 0;
-}
-
-static INT32 DrvExit()
-{
- thunderx = 0;
-
- GenericTilesExit();
-
- KonamiICExit();
-
- konamiExit();
- ZetExit();
-
- K007232Exit();
- BurnYM2151Exit();
-
- BurnFree (AllMem);
-
- return 0;
-}
-
-static INT32 DrvDraw()
-{
- KonamiRecalcPalette(DrvPalRAM, DrvPalette, 0x800);
-
- K052109UpdateScroll();
-
- if (layer_priority)
- {
- if (nBurnLayer & 1) K052109RenderLayer(2, K052109_OPAQUE, 1);
- if (nBurnLayer & 2) K052109RenderLayer(1, 0, 2);
- }
- else
- {
- if (nBurnLayer & 1) K052109RenderLayer(1, K052109_OPAQUE, 1);
- if (nBurnLayer & 2) K052109RenderLayer(2, 0, 2);
- }
-
- if (nBurnLayer & 4) K052109RenderLayer(0, 0, 4);
-
- if (nSpriteEnable & 1) K051960SpritesRender(-1, -1);
-
- KonamiBlendCopy(DrvPalette);
-
- return 0;
-}
-
-static INT32 DrvFrame()
-{
- if (DrvReset) {
- DrvDoReset();
- }
-
- {
- memset (DrvInputs, 0xff, 3);
- for (INT32 i = 0; i < 8; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- DrvInputs[2] ^= (DrvJoy3[i] & 1) << i;
- }
-
- // Clear opposites
- if ((DrvInputs[1] & 0x03) == 0) DrvInputs[1] |= 0x03;
- if ((DrvInputs[1] & 0x0c) == 0) DrvInputs[1] |= 0x0c;
- if ((DrvInputs[2] & 0x03) == 0) DrvInputs[2] |= 0x03;
- if ((DrvInputs[2] & 0x0c) == 0) DrvInputs[2] |= 0x0c;
- }
-
- konamiNewFrame();
- ZetNewFrame();
-
- INT32 nSoundBufferPos = 0;
- INT32 nInterleave = 100;
- INT32 nCyclesTotal[2] = { 3000000 / 60, 3579545 / 60 };
- INT32 nCyclesDone[2] = { 0, 0 };
-
- ZetOpen(0);
- konamiOpen(0);
-
- for (INT32 i = 0; i < nInterleave; i++)
- {
- INT32 nSegment = (nCyclesTotal[0] / nInterleave) * (i + 1);
-
- nCyclesDone[0] += konamiRun(nSegment - nCyclesDone[0]);
-
- nSegment = (nCyclesTotal[1] / nInterleave) * (i + 1);
-
- nCyclesDone[1] += ZetRun(nSegment - nCyclesDone[1]);
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen / nInterleave;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- BurnYM2151Render(pSoundBuf, nSegmentLength);
- K007232Update(0, pSoundBuf, nSegmentLength);
- nSoundBufferPos += nSegmentLength;
- }
- }
-
- if (K052109_irq_enabled) konamiSetIrqLine(KONAMI_IRQ_LINE, CPU_IRQSTATUS_AUTO);
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
- if (nSegmentLength) {
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- BurnYM2151Render(pSoundBuf, nSegmentLength);
- K007232Update(0, pSoundBuf, nSegmentLength);
- }
- }
-
- konamiClose();
- ZetClose();
-
- if (pBurnDraw) {
- DrvDraw();
- }
-
- return 0;
-}
-
-static INT32 DrvScan(INT32 nAction,INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin) {
- *pnMin = 0x029705;
- }
-
- if (nAction & ACB_VOLATILE) {
- memset(&ba, 0, sizeof(ba));
-
- ba.Data = AllRam;
- ba.nLen = RamEnd - AllRam;
- ba.szName = "All Ram";
- BurnAcb(&ba);
-
- konamiCpuScan(nAction);
- ZetScan(nAction);
-
- BurnYM2151Scan(nAction);
- K007232Scan(nAction, pnMin);
-
- KonamiICScan(nAction);
- }
-
- if (nAction & ACB_DRIVER_DATA) {
- SCAN_VAR(thunderx_1f98_data);
-
- SCAN_VAR(layer_priority);
- }
-
- if (nAction & ACB_WRITE) {
- konamiOpen(0);
- if (thunderx) {
- thunderx_videobank(nDrvKonamiBank[0]);
- thunderx_set_lines(nDrvKonamiBank[1]);
- } else {
- scontra_bankswitch(nDrvKonamiBank[0]);
- }
- konamiClose();
- }
-
- return 0;
-}
-
-
-// Super Contra
-
-static struct BurnRomInfo scontraRomDesc[] = {
- { "775-e02.k11", 0x10000, 0xa61c0ead, 1 | BRF_PRG | BRF_ESS }, // 0 Konami Custom Code
- { "775-e03.k13", 0x10000, 0x00b02622, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "775-c01.bin", 0x08000, 0x0ced785a, 2 | BRF_PRG | BRF_ESS }, // 2 Z80 Code
-
- { "775-a07a.bin", 0x20000, 0xe716bdf3, 3 | BRF_GRA }, // 3 Background Tiles
- { "775-a07e.bin", 0x20000, 0x0986e3a5, 3 | BRF_GRA }, // 4
- { "775-a08a.bin", 0x20000, 0x3ddd11a4, 3 | BRF_GRA }, // 5
- { "775-a08e.bin", 0x20000, 0x1007d963, 3 | BRF_GRA }, // 6
- { "775-f07c.bin", 0x10000, 0xb0b30915, 3 | BRF_GRA }, // 7
- { "775-f07g.bin", 0x10000, 0xfbed827d, 3 | BRF_GRA }, // 8
- { "775-f08c.bin", 0x10000, 0x53abdaec, 3 | BRF_GRA }, // 9
- { "775-f08g.bin", 0x10000, 0x3df85a6e, 3 | BRF_GRA }, // 10
- { "775-f07d.bin", 0x10000, 0xf184be8e, 3 | BRF_GRA }, // 11
- { "775-f07h.bin", 0x10000, 0x7b56c348, 3 | BRF_GRA }, // 12
- { "775-f08d.bin", 0x10000, 0x102dcace, 3 | BRF_GRA }, // 13
- { "775-f08h.bin", 0x10000, 0xad9d7016, 3 | BRF_GRA }, // 14
-
- { "775-a05a.bin", 0x10000, 0xa0767045, 4 | BRF_GRA }, // 15 Sprites
- { "775-a05e.bin", 0x10000, 0x2f656f08, 4 | BRF_GRA }, // 16
- { "775-a06a.bin", 0x10000, 0x77a34ad0, 4 | BRF_GRA }, // 17
- { "775-a06e.bin", 0x10000, 0x8a910c94, 4 | BRF_GRA }, // 18
- { "775-a05b.bin", 0x10000, 0xab8ad4fd, 4 | BRF_GRA }, // 19
- { "775-a05f.bin", 0x10000, 0x1c0eb1b6, 4 | BRF_GRA }, // 20
- { "775-a06b.bin", 0x10000, 0x563fb565, 4 | BRF_GRA }, // 21
- { "775-a06f.bin", 0x10000, 0xe14995c0, 4 | BRF_GRA }, // 22
- { "775-f05c.bin", 0x10000, 0x5647761e, 4 | BRF_GRA }, // 23
- { "775-f05g.bin", 0x10000, 0xa1692cca, 4 | BRF_GRA }, // 24
- { "775-f06c.bin", 0x10000, 0x5ee6f3c1, 4 | BRF_GRA }, // 25
- { "775-f06g.bin", 0x10000, 0x2645274d, 4 | BRF_GRA }, // 26
- { "775-f05d.bin", 0x10000, 0xad676a6f, 4 | BRF_GRA }, // 27
- { "775-f05h.bin", 0x10000, 0x3f925bcf, 4 | BRF_GRA }, // 28
- { "775-f06d.bin", 0x10000, 0xc8b764fa, 4 | BRF_GRA }, // 29
- { "775-f06h.bin", 0x10000, 0xd6595f59, 4 | BRF_GRA }, // 30
-
- { "775-a04a.bin", 0x10000, 0x7efb2e0f, 5 | BRF_SND }, // 31 K007232 Samples
- { "775-a04b.bin", 0x10000, 0xf41a2b33, 5 | BRF_SND }, // 32
- { "775-a04c.bin", 0x10000, 0xe4e58f14, 5 | BRF_SND }, // 33
- { "775-a04d.bin", 0x10000, 0xd46736f6, 5 | BRF_SND }, // 34
- { "775-f04e.bin", 0x10000, 0xfbf7e363, 5 | BRF_SND }, // 35
- { "775-f04f.bin", 0x10000, 0xb031ef2d, 5 | BRF_SND }, // 36
- { "775-f04g.bin", 0x10000, 0xee107bbb, 5 | BRF_SND }, // 37
- { "775-f04h.bin", 0x10000, 0xfb0fab46, 5 | BRF_SND }, // 38
-
- { "775a09.b19", 0x00100, 0x46d1e0df, 6 | BRF_OPT }, // 39 Proms
-};
-
-STD_ROM_PICK(scontra)
-STD_ROM_FN(scontra)
-
-static INT32 scontraInit()
-{
- return DrvInit(1);
-}
-
-struct BurnDriver BurnDrvScontra = {
- "scontra", NULL, NULL, NULL, "1988",
- "Super Contra\0", NULL, "Konami", "GX775",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_KONAMI, GBF_SCRFIGHT | GBF_HORSHOOT, 0,
- NULL, scontraRomInfo, scontraRomName, NULL, NULL, ThunderxInputInfo, ScontraDIPInfo,
- scontraInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x400,
- 224, 304, 3, 4
-};
-
-
-// Super Contra (Japan)
-
-static struct BurnRomInfo scontrajRomDesc[] = {
- { "775-f02.bin", 0x10000, 0x8d5933a7, 1 | BRF_PRG | BRF_ESS }, // 0 Konami Custom Code
- { "775-f03.bin", 0x10000, 0x1ef63d80, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "775-c01.bin", 0x08000, 0x0ced785a, 2 | BRF_PRG | BRF_ESS }, // 2 Z80 code
-
- { "775-a07a.bin", 0x20000, 0xe716bdf3, 3 | BRF_GRA }, // 3 Background Tiles
- { "775-a07e.bin", 0x20000, 0x0986e3a5, 3 | BRF_GRA }, // 4
- { "775-a08a.bin", 0x20000, 0x3ddd11a4, 3 | BRF_GRA }, // 5
- { "775-a08e.bin", 0x20000, 0x1007d963, 3 | BRF_GRA }, // 6
- { "775-f07c.bin", 0x10000, 0xb0b30915, 3 | BRF_GRA }, // 7
- { "775-f07g.bin", 0x10000, 0xfbed827d, 3 | BRF_GRA }, // 8
- { "775-f08c.bin", 0x10000, 0x53abdaec, 3 | BRF_GRA }, // 9
- { "775-f08g.bin", 0x10000, 0x3df85a6e, 3 | BRF_GRA }, // 10
- { "775-f07d.bin", 0x10000, 0xf184be8e, 3 | BRF_GRA }, // 11
- { "775-f07h.bin", 0x10000, 0x7b56c348, 3 | BRF_GRA }, // 12
- { "775-f08d.bin", 0x10000, 0x102dcace, 3 | BRF_GRA }, // 13
- { "775-f08h.bin", 0x10000, 0xad9d7016, 3 | BRF_GRA }, // 14
-
- { "775-a05a.bin", 0x10000, 0xa0767045, 4 | BRF_GRA }, // 15 Sprites
- { "775-a05e.bin", 0x10000, 0x2f656f08, 4 | BRF_GRA }, // 16
- { "775-a06a.bin", 0x10000, 0x77a34ad0, 4 | BRF_GRA }, // 17
- { "775-a06e.bin", 0x10000, 0x8a910c94, 4 | BRF_GRA }, // 18
- { "775-a05b.bin", 0x10000, 0xab8ad4fd, 4 | BRF_GRA }, // 19
- { "775-a05f.bin", 0x10000, 0x1c0eb1b6, 4 | BRF_GRA }, // 20
- { "775-a06b.bin", 0x10000, 0x563fb565, 4 | BRF_GRA }, // 21
- { "775-a06f.bin", 0x10000, 0xe14995c0, 4 | BRF_GRA }, // 22
- { "775-f05c.bin", 0x10000, 0x5647761e, 4 | BRF_GRA }, // 23
- { "775-f05g.bin", 0x10000, 0xa1692cca, 4 | BRF_GRA }, // 24
- { "775-f06c.bin", 0x10000, 0x5ee6f3c1, 4 | BRF_GRA }, // 25
- { "775-f06g.bin", 0x10000, 0x2645274d, 4 | BRF_GRA }, // 26
- { "775-f05d.bin", 0x10000, 0xad676a6f, 4 | BRF_GRA }, // 27
- { "775-f05h.bin", 0x10000, 0x3f925bcf, 4 | BRF_GRA }, // 28
- { "775-f06d.bin", 0x10000, 0xc8b764fa, 4 | BRF_GRA }, // 29
- { "775-f06h.bin", 0x10000, 0xd6595f59, 4 | BRF_GRA }, // 30
-
- { "775-a04a.bin", 0x10000, 0x7efb2e0f, 5 | BRF_SND }, // 31 K007232 Samples
- { "775-a04b.bin", 0x10000, 0xf41a2b33, 5 | BRF_SND }, // 32
- { "775-a04c.bin", 0x10000, 0xe4e58f14, 5 | BRF_SND }, // 33
- { "775-a04d.bin", 0x10000, 0xd46736f6, 5 | BRF_SND }, // 34
- { "775-f04e.bin", 0x10000, 0xfbf7e363, 5 | BRF_SND }, // 35
- { "775-f04f.bin", 0x10000, 0xb031ef2d, 5 | BRF_SND }, // 36
- { "775-f04g.bin", 0x10000, 0xee107bbb, 5 | BRF_SND }, // 37
- { "775-f04h.bin", 0x10000, 0xfb0fab46, 5 | BRF_SND }, // 38
-
- { "775a09.b19", 0x00100, 0x46d1e0df, 6 | BRF_OPT }, // 39 Proms
-};
-
-STD_ROM_PICK(scontraj)
-STD_ROM_FN(scontraj)
-
-struct BurnDriver BurnDrvScontraj = {
- "scontraj", "scontra", NULL, NULL, "1988",
- "Super Contra (Japan)\0", NULL, "Konami", "GX775",
- L"Super \u9B42\u6597\u7F85 \u30A8\u30A4\u30EA\u30A2\u30F3 \u306E\u9006\u8972 (Japan)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_KONAMI, GBF_SCRFIGHT | GBF_HORSHOOT, 0,
- NULL, scontrajRomInfo, scontrajRomName, NULL, NULL, ThunderxInputInfo, ScontraDIPInfo,
- scontraInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x400,
- 224, 304, 3, 4
-};
-
-
-// Thunder Cross (set 1)
-
-static struct BurnRomInfo thunderxRomDesc[] = {
- { "873-s03.k15", 0x10000, 0x2aec2699, 1 | BRF_PRG | BRF_ESS }, // 0 Konami Custom Code
- { "873-s02.k13", 0x10000, 0x6619333a, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "873-f01.f8", 0x08000, 0xea35ffa3, 2 | BRF_PRG | BRF_ESS }, // 2 Z80 code
-
- { "873c06a.f6", 0x10000, 0x0e340b67, 3 | BRF_GRA }, // 3 Background Tiles
- { "873c06c.f5", 0x10000, 0xef0e72cd, 3 | BRF_GRA }, // 4
- { "873c07a.f4", 0x10000, 0xa8aab84f, 3 | BRF_GRA }, // 5
- { "873c07c.f3", 0x10000, 0x2521009a, 3 | BRF_GRA }, // 6
- { "873c06b.e6", 0x10000, 0x97ad202e, 3 | BRF_GRA }, // 7
- { "873c06d.e5", 0x10000, 0x8393d42e, 3 | BRF_GRA }, // 8
- { "873c07b.e4", 0x10000, 0x12a2b8ba, 3 | BRF_GRA }, // 9
- { "873c07d.e3", 0x10000, 0xfae9f965, 3 | BRF_GRA }, // 10
-
- { "873c04a.f11", 0x10000, 0xf7740bf3, 4 | BRF_GRA }, // 11 Sprites
- { "873c04c.f10", 0x10000, 0x5dacbd2b, 4 | BRF_GRA }, // 12
- { "873c05a.f9", 0x10000, 0xd73e107d, 4 | BRF_GRA }, // 13
- { "873c05c.f8", 0x10000, 0x59903200, 4 | BRF_GRA }, // 14
- { "873c04b.e11", 0x10000, 0x9ac581da, 4 | BRF_GRA }, // 15
- { "873c04d.e10", 0x10000, 0x44a4668c, 4 | BRF_GRA }, // 16
- { "873c05b.e9", 0x10000, 0x81059b99, 4 | BRF_GRA }, // 17
- { "873c05d.e8", 0x10000, 0x7fa3d7df, 4 | BRF_GRA }, // 18
-
- { "873a08.f20", 0x00100, 0xe2d09a1b, 6 | BRF_OPT }, // 19 Proms
-};
-
-STD_ROM_PICK(thunderx)
-STD_ROM_FN(thunderx)
-
-static INT32 thunderxInit()
-{
- return DrvInit(0);
-}
-
-struct BurnDriver BurnDrvThunderx = {
- "thunderx", NULL, NULL, NULL, "1988",
- "Thunder Cross (set 1)\0", NULL, "Konami", "GX873",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_KONAMI, GBF_HORSHOOT, 0,
- NULL, thunderxRomInfo, thunderxRomName, NULL, NULL, ThunderxInputInfo, ThunderxDIPInfo,
- thunderxInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x400,
- 288, 224, 4, 3
-};
-
-
-// Thunder Cross (set 2)
-
-static struct BurnRomInfo thunderxaRomDesc[] = {
- { "873-k03.k15", 0x10000, 0x276817ad, 1 | BRF_PRG | BRF_ESS }, // 0 Konami Custom Code
- { "873-k02.k13", 0x10000, 0x80cc1c45, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "873-h01.f8", 0x08000, 0x990b7a7c, 2 | BRF_PRG | BRF_ESS }, // 2 Z80 code
-
- { "873c06a.f6", 0x10000, 0x0e340b67, 3 | BRF_GRA }, // 3 Background Tiles
- { "873c06c.f5", 0x10000, 0xef0e72cd, 3 | BRF_GRA }, // 4
- { "873c07a.f4", 0x10000, 0xa8aab84f, 3 | BRF_GRA }, // 5
- { "873c07c.f3", 0x10000, 0x2521009a, 3 | BRF_GRA }, // 6
- { "873c06b.e6", 0x10000, 0x97ad202e, 3 | BRF_GRA }, // 7
- { "873c06d.e5", 0x10000, 0x8393d42e, 3 | BRF_GRA }, // 8
- { "873c07b.e4", 0x10000, 0x12a2b8ba, 3 | BRF_GRA }, // 9
- { "873c07d.e3", 0x10000, 0xfae9f965, 3 | BRF_GRA }, // 10
-
- { "873c04a.f11", 0x10000, 0xf7740bf3, 4 | BRF_GRA }, // 11 Sprites
- { "873c04c.f10", 0x10000, 0x5dacbd2b, 4 | BRF_GRA }, // 12
- { "873c05a.f9", 0x10000, 0xd73e107d, 4 | BRF_GRA }, // 13
- { "873c05c.f8", 0x10000, 0x59903200, 4 | BRF_GRA }, // 14
- { "873c04b.e11", 0x10000, 0x9ac581da, 4 | BRF_GRA }, // 15
- { "873c04d.e10", 0x10000, 0x44a4668c, 4 | BRF_GRA }, // 16
- { "873c05b.e9", 0x10000, 0x81059b99, 4 | BRF_GRA }, // 17
- { "873c05d.e8", 0x10000, 0x7fa3d7df, 4 | BRF_GRA }, // 18
-
- { "873a08.f20", 0x00100, 0xe2d09a1b, 6 | BRF_OPT }, // 19 Proms
-};
-
-STD_ROM_PICK(thunderxa)
-STD_ROM_FN(thunderxa)
-
-struct BurnDriver BurnDrvThunderxa = {
- "thunderxa", "thunderx", NULL, NULL, "1988",
- "Thunder Cross (set 2)\0", NULL, "Konami", "GX873",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_KONAMI, GBF_HORSHOOT, 0,
- NULL, thunderxaRomInfo, thunderxaRomName, NULL, NULL, ThunderxInputInfo, ThunderxDIPInfo,
- thunderxInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x400,
- 288, 224, 4, 3
-};
-
-
-// Thunder Cross (set 3)
-
-static struct BurnRomInfo thunderxbRomDesc[] = {
- { "873-03.k15", 0x10000, 0x36680a4e, 1 | BRF_PRG | BRF_ESS }, // 0 Konami Custom Code
- { "873-02.k13", 0x10000, 0xc58b2c34, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "873-f01.f8", 0x08000, 0xea35ffa3, 2 | BRF_PRG | BRF_ESS }, // 2 Z80 code
-
- { "873c06a.f6", 0x10000, 0x0e340b67, 3 | BRF_GRA }, // 3 Background Tiles
- { "873c06c.f5", 0x10000, 0xef0e72cd, 3 | BRF_GRA }, // 4
- { "873c07a.f4", 0x10000, 0xa8aab84f, 3 | BRF_GRA }, // 5
- { "873c07c.f3", 0x10000, 0x2521009a, 3 | BRF_GRA }, // 6
- { "873c06b.e6", 0x10000, 0x97ad202e, 3 | BRF_GRA }, // 7
- { "873c06d.e5", 0x10000, 0x8393d42e, 3 | BRF_GRA }, // 8
- { "873c07b.e4", 0x10000, 0x12a2b8ba, 3 | BRF_GRA }, // 9
- { "873c07d.e3", 0x10000, 0xfae9f965, 3 | BRF_GRA }, // 10
-
- { "873c04a.f11", 0x10000, 0xf7740bf3, 4 | BRF_GRA }, // 11 Sprites
- { "873c04c.f10", 0x10000, 0x5dacbd2b, 4 | BRF_GRA }, // 12
- { "873c05a.f9", 0x10000, 0xd73e107d, 4 | BRF_GRA }, // 13
- { "873c05c.f8", 0x10000, 0x59903200, 4 | BRF_GRA }, // 14
- { "873c04b.e11", 0x10000, 0x9ac581da, 4 | BRF_GRA }, // 15
- { "873c04d.e10", 0x10000, 0x44a4668c, 4 | BRF_GRA }, // 16
- { "873c05b.e9", 0x10000, 0x81059b99, 4 | BRF_GRA }, // 17
- { "873c05d.e8", 0x10000, 0x7fa3d7df, 4 | BRF_GRA }, // 18
-
- { "873a08.f20", 0x00100, 0xe2d09a1b, 6 | BRF_OPT }, // 19 Proms
-};
-
-STD_ROM_PICK(thunderxb)
-STD_ROM_FN(thunderxb)
-
-struct BurnDriver BurnDrvThunderxb = {
- "thunderxb", "thunderx", NULL, NULL, "1988",
- "Thunder Cross (set 3)\0", NULL, "Konami", "GX873",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_KONAMI, GBF_HORSHOOT, 0,
- NULL, thunderxbRomInfo, thunderxbRomName, NULL, NULL, ThunderxInputInfo, ThunderxDIPInfo,
- thunderxInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x400,
- 288, 224, 4, 3
-};
-
-
-// Thunder Cross (Japan)
-
-static struct BurnRomInfo thunderxjRomDesc[] = {
- { "873-n03.k15", 0x10000, 0xa01e2e3e, 1 | BRF_PRG | BRF_ESS }, // 0 Konami Custom Code
- { "873-n02.k13", 0x10000, 0x55afa2cc, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "873-f01.f8", 0x08000, 0xea35ffa3, 2 | BRF_PRG | BRF_ESS }, // 2 Z80 code
-
- { "873c06a.f6", 0x10000, 0x0e340b67, 3 | BRF_GRA }, // 3 Background Tiles
- { "873c06c.f5", 0x10000, 0xef0e72cd, 3 | BRF_GRA }, // 4
- { "873c07a.f4", 0x10000, 0xa8aab84f, 3 | BRF_GRA }, // 5
- { "873c07c.f3", 0x10000, 0x2521009a, 3 | BRF_GRA }, // 6
- { "873c06b.e6", 0x10000, 0x97ad202e, 3 | BRF_GRA }, // 7
- { "873c06d.e5", 0x10000, 0x8393d42e, 3 | BRF_GRA }, // 8
- { "873c07b.e4", 0x10000, 0x12a2b8ba, 3 | BRF_GRA }, // 9
- { "873c07d.e3", 0x10000, 0xfae9f965, 3 | BRF_GRA }, // 10
-
- { "873c04a.f11", 0x10000, 0xf7740bf3, 4 | BRF_GRA }, // 11 Sprites
- { "873c04c.f10", 0x10000, 0x5dacbd2b, 4 | BRF_GRA }, // 12
- { "873c05a.f9", 0x10000, 0xd73e107d, 4 | BRF_GRA }, // 13
- { "873c05c.f8", 0x10000, 0x59903200, 4 | BRF_GRA }, // 14
- { "873c04b.e11", 0x10000, 0x9ac581da, 4 | BRF_GRA }, // 15
- { "873c04d.e10", 0x10000, 0x44a4668c, 4 | BRF_GRA }, // 16
- { "873c05b.e9", 0x10000, 0x81059b99, 4 | BRF_GRA }, // 17
- { "873c05d.e8", 0x10000, 0x7fa3d7df, 4 | BRF_GRA }, // 18
-
- { "873a08.f20", 0x00100, 0xe2d09a1b, 6 | BRF_OPT }, // 19 Proms
-};
-
-STD_ROM_PICK(thunderxj)
-STD_ROM_FN(thunderxj)
-
-struct BurnDriver BurnDrvThunderxj = {
- "thunderxj", "thunderx", NULL, NULL, "1988",
- "Thunder Cross (Japan)\0", NULL, "Konami", "GX873",
- L"Thunder Cross\0\u30B5\u30F3\u30C0\u30FC\u30AF\u30ED\u30B9 (Japan)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_KONAMI, GBF_HORSHOOT, 0,
- NULL, thunderxjRomInfo, thunderxjRomName, NULL, NULL, ThunderxInputInfo, ThunderxDIPInfo,
- thunderxInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x400,
- 288, 224, 4, 3
-};
diff --git a/jan/src/burn/drv/konami/d_timeplt.cpp b/jan/src/burn/drv/konami/d_timeplt.cpp
deleted file mode 100644
index 98da0f163..000000000
--- a/jan/src/burn/drv/konami/d_timeplt.cpp
+++ /dev/null
@@ -1,1073 +0,0 @@
-// FB Alpha Time Pilot driver module
-// Based on MAME driver by Nicola Salmoria
-
-/*
- To do:
- tc8830f sound core (only for chkun - *very* low priority)
-*/
-
-
-#include "tiles_generic.h"
-#include "z80_intf.h"
-#include "timeplt_snd.h"
-//#include "tc8830f.h"
-
-static UINT8 *AllMem;
-static UINT8 *MemEnd;
-static UINT8 *AllRam;
-static UINT8 *RamEnd;
-static UINT8 *DrvZ80ROM0;
-static UINT8 *DrvZ80ROM1;
-static UINT8 *DrvGfxROM0;
-static UINT8 *DrvGfxROM1;
-static UINT8 *DrvColPROM;
-static UINT8 *DrvSndROM;
-static UINT8 *DrvZ80RAM0;
-static UINT8 *DrvZ80RAM1;
-static UINT8 *DrvVidRAM;
-static UINT8 *DrvColRAM;
-static UINT8 *DrvSprRAM;
-static UINT8 *DrvSprTmp;
-
-static UINT32 *DrvPalette;
-static UINT8 DrvRecalc;
-
-static INT16 *pAY8910Buffer[6];
-
-static UINT8 nmi_enable;
-static UINT8 last_sound_irq;
-
-static UINT8 DrvJoy1[8];
-static UINT8 DrvJoy2[8];
-static UINT8 DrvJoy3[8];
-static UINT8 DrvDips[2];
-static UINT8 DrvInputs[3];
-static UINT8 DrvReset;
-
-static INT32 game_select;
-static INT32 watchdog;
-
-static struct BurnInputInfo TimepltInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy1 + 0, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 3, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy2 + 2, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy2 + 3, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy2 + 0, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy2 + 1, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy2 + 4, "p1 fire 1" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy1 + 1, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy1 + 4, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvJoy3 + 2, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy3 + 3, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy3 + 0, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy3 + 1, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy3 + 4, "p2 fire 1" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service", BIT_DIGITAL, DrvJoy1 + 2, "service" },
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip" },
-};
-
-STDINPUTINFO(Timeplt)
-
-static struct BurnInputInfo ChkunInputList[] = {
- {"Coin 1", BIT_DIGITAL, DrvJoy1 + 0, "p1 coin" },
- {"Coin 2", BIT_DIGITAL, DrvJoy1 + 1, "p2 coin" },
- {"Start", BIT_DIGITAL, DrvJoy1 + 3, "p1 start" },
- {"Button 1", BIT_DIGITAL, DrvJoy2 + 4, "p1 fire 1" },
- {"Bet 1B", BIT_DIGITAL, DrvJoy2 + 2, "p1 fire 2" },
- {"Bet 2B", BIT_DIGITAL, DrvJoy2 + 3, "p1 fire 3" },
- {"Bet 3B", BIT_DIGITAL, DrvJoy2 + 0, "p1 fire 4" },
- {"Bet HR", BIT_DIGITAL, DrvJoy2 + 5, "p1 fire 5" },
- {"Keyout", BIT_DIGITAL, DrvJoy1 + 2, "p1 fire 6" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip" },
-};
-
-STDINPUTINFO(Chkun)
-
-static struct BurnInputInfo BikkuricInputList[] = {
- {"Coin 1", BIT_DIGITAL, DrvJoy1 + 0, "p1 coin" },
- {"Coin 2", BIT_DIGITAL, DrvJoy1 + 1, "p1 coin" },
- {"Up", BIT_DIGITAL, DrvJoy2 + 2, "p1 up" },
- {"Down", BIT_DIGITAL, DrvJoy2 + 3, "p1 down" },
- {"Left", BIT_DIGITAL, DrvJoy2 + 0, "p1 left" },
- {"Right", BIT_DIGITAL, DrvJoy2 + 5, "p1 right" },
- {"Button 1", BIT_DIGITAL, DrvJoy2 + 4, "p1 fire 1" },
- {"Keyout", BIT_DIGITAL, DrvJoy1 + 2, "p1 fire 2" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip" },
-};
-
-STDINPUTINFO(Bikkuric)
-
-static struct BurnDIPInfo TimepltDIPList[]=
-{
- {0x10, 0xff, 0xff, 0xff, NULL },
- {0x11, 0xff, 0xff, 0x4b, NULL },
-
- {0 , 0xfe, 0 , 16, "Coin A" },
- {0x10, 0x01, 0x0f, 0x02, "4 Coins 1 Credits" },
- {0x10, 0x01, 0x0f, 0x05, "3 Coins 1 Credits" },
- {0x10, 0x01, 0x0f, 0x08, "2 Coins 1 Credits" },
- {0x10, 0x01, 0x0f, 0x04, "3 Coins 2 Credits" },
- {0x10, 0x01, 0x0f, 0x01, "4 Coins 3 Credits" },
- {0x10, 0x01, 0x0f, 0x0f, "1 Coin 1 Credits" },
- {0x10, 0x01, 0x0f, 0x03, "3 Coins 4 Credits" },
- {0x10, 0x01, 0x0f, 0x07, "2 Coins 3 Credits" },
- {0x10, 0x01, 0x0f, 0x0e, "1 Coin 2 Credits" },
- {0x10, 0x01, 0x0f, 0x06, "2 Coins 5 Credits" },
- {0x10, 0x01, 0x0f, 0x0d, "1 Coin 3 Credits" },
- {0x10, 0x01, 0x0f, 0x0c, "1 Coin 4 Credits" },
- {0x10, 0x01, 0x0f, 0x0b, "1 Coin 5 Credits" },
- {0x10, 0x01, 0x0f, 0x0a, "1 Coin 6 Credits" },
- {0x10, 0x01, 0x0f, 0x09, "1 Coin 7 Credits" },
- {0x10, 0x01, 0x0f, 0x00, "Free Play" },
-
- {0 , 0xfe, 0 , 16, "Coin B" },
- {0x10, 0x01, 0xf0, 0x20, "4 Coins 1 Credits" },
- {0x10, 0x01, 0xf0, 0x50, "3 Coins 1 Credits" },
- {0x10, 0x01, 0xf0, 0x80, "2 Coins 1 Credits" },
- {0x10, 0x01, 0xf0, 0x40, "3 Coins 2 Credits" },
- {0x10, 0x01, 0xf0, 0x10, "4 Coins 3 Credits" },
- {0x10, 0x01, 0xf0, 0xf0, "1 Coin 1 Credits" },
- {0x10, 0x01, 0xf0, 0x30, "3 Coins 4 Credits" },
- {0x10, 0x01, 0xf0, 0x70, "2 Coins 3 Credits" },
- {0x10, 0x01, 0xf0, 0xe0, "1 Coin 2 Credits" },
- {0x10, 0x01, 0xf0, 0x60, "2 Coins 5 Credits" },
- {0x10, 0x01, 0xf0, 0xd0, "1 Coin 3 Credits" },
- {0x10, 0x01, 0xf0, 0xc0, "1 Coin 4 Credits" },
- {0x10, 0x01, 0xf0, 0xb0, "1 Coin 5 Credits" },
- {0x10, 0x01, 0xf0, 0xa0, "1 Coin 6 Credits" },
- {0x10, 0x01, 0xf0, 0x90, "1 Coin 7 Credits" },
- {0x10, 0x01, 0xf0, 0x00, "Free Play" },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x11, 0x01, 0x03, 0x03, "3" },
- {0x11, 0x01, 0x03, 0x02, "4" },
- {0x11, 0x01, 0x03, 0x01, "5" },
- {0x11, 0x01, 0x03, 0x00, "255 (Cheat)" },
-
- {0 , 0xfe, 0 , 2, "Cabinet" },
- {0x11, 0x01, 0x04, 0x00, "Upright" },
- {0x11, 0x01, 0x04, 0x04, "Cocktail" },
-
- {0 , 0xfe, 0 , 2, "Bonus Life" },
- {0x11, 0x01, 0x08, 0x08, "10000 50000" },
- {0x11, 0x01, 0x08, 0x00, "20000 60000" },
-
- {0 , 0xfe, 0 , 8, "Difficulty" },
- {0x11, 0x01, 0x70, 0x70, "1 (Easiest)" },
- {0x11, 0x01, 0x70, 0x60, "2" },
- {0x11, 0x01, 0x70, 0x50, "3" },
- {0x11, 0x01, 0x70, 0x40, "4" },
- {0x11, 0x01, 0x70, 0x30, "5" },
- {0x11, 0x01, 0x70, 0x20, "6" },
- {0x11, 0x01, 0x70, 0x10, "7" },
- {0x11, 0x01, 0x70, 0x00, "8 (Difficult)" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x11, 0x01, 0x80, 0x80, "Off" },
- {0x11, 0x01, 0x80, 0x00, "On" },
-};
-
-STDDIPINFO(Timeplt)
-
-static struct BurnDIPInfo PsurgeDIPList[]=
-{
- {0x10, 0xff, 0xff, 0xff, NULL },
- {0x11, 0xff, 0xff, 0x7f, NULL },
-
- {0 , 0xfe, 0 , 2, "Initial Energy" },
- {0x10, 0x01, 0x08, 0x00, "4" },
- {0x10, 0x01, 0x08, 0x08, "6" },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x10, 0x01, 0x30, 0x30, "3" },
- {0x10, 0x01, 0x30, 0x20, "4" },
- {0x10, 0x01, 0x30, 0x10, "5" },
- {0x10, 0x01, 0x30, 0x00, "6" },
-
- {0 , 0xfe, 0 , 2, "Cabinet" },
- {0x10, 0x01, 0x80, 0x80, "Upright" },
- {0x10, 0x01, 0x80, 0x00, "Cocktail" },
-
- {0 , 0xfe, 0 , 4, "Coin A" },
- {0x11, 0x01, 0x03, 0x02, "2 Coins 1 Credits" },
- {0x11, 0x01, 0x03, 0x03, "1 Coin 1 Credits" },
- {0x11, 0x01, 0x03, 0x01, "1 Coin 3 Credits" },
- {0x11, 0x01, 0x03, 0x00, "1 Coin 5 Credits" },
-
- {0 , 0xfe, 0 , 4, "Coin B" },
- {0x11, 0x01, 0x0c, 0x08, "2 Coins 1 Credits" },
- {0x11, 0x01, 0x0c, 0x0c, "1 Coin 1 Credits" },
- {0x11, 0x01, 0x0c, 0x04, "1 Coin 3 Credits" },
- {0x11, 0x01, 0x0c, 0x00, "1 Coin 5 Credits" },
-
- {0 , 0xfe, 0 , 2, "Infinite Shots (Cheat)" },
- {0x11, 0x01, 0x10, 0x10, "Off" },
- {0x11, 0x01, 0x10, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Stop at Junctions" },
- {0x11, 0x01, 0x80, 0x80, "No" },
- {0x11, 0x01, 0x80, 0x00, "Yes" },
-};
-
-STDDIPINFO(Psurge)
-
-static struct BurnDIPInfo ChkunDIPList[]=
-{
- {0x0a, 0xff, 0xff, 0x7f, NULL },
- {0x0b, 0xff, 0xff, 0xff, NULL },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x0a, 0x01, 0x40, 0x40, "Off" },
- {0x0a, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Freeze" },
- {0x0a, 0x01, 0x80, 0x00, "Off" },
- {0x0a, 0x01, 0x80, 0x80, "On" },
-
- {0 , 0xfe, 0 , 2, "Coin A" },
- {0x0b, 0x01, 0x01, 0x01, "2 Coins 1 Credits" },
- {0x0b, 0x01, 0x01, 0x00, "1 Coin 1 Credits" },
-};
-
-STDDIPINFO(Chkun)
-
-static struct BurnDIPInfo BikkuricDIPList[]=
-{
- {0x09, 0xff, 0xff, 0xff, NULL },
-
- {0 , 0xfe, 0 , 2, "Coin A" },
- {0x09, 0x01, 0x01, 0x01, "2 Coins 1 Credits" },
- {0x09, 0x01, 0x01, 0x00, "1 Coin 1 Credits" },
-};
-
-STDDIPINFO(Bikkuric)
-
-static void __fastcall timeplt_main_write(UINT16 address, UINT8 data)
-{
- switch (address)
- {
- case 0xc000:
- TimepltSndSoundlatch(data);
- return;
-
- case 0xc200:
- watchdog = 0;
- return;
-
- case 0xc300:
- if (game_select != 2) { // psurge doesn't use this
- nmi_enable = data & 1;
- if (!nmi_enable) ZetSetIRQLine(0x20, CPU_IRQSTATUS_NONE);
- }
- return;
-
- case 0xc302:
- // flipscreen = ~data & 1;
- return;
-
- case 0xc304:
- if (last_sound_irq == 0 && data) {
- ZetClose();
- ZetOpen(1);
- ZetSetVector(0xff);
- ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
- ZetClose();
- ZetOpen(0);
- }
- last_sound_irq = data;
- return;
-
- case 0xc30a:
- // coin counter
- return;
- }
-}
-
-static UINT8 __fastcall timeplt_main_read(UINT16 address)
-{
- switch (address)
- {
- case 0x6004:
- return 0x80; // psurge protection
-
- case 0xc000:
- return ZetTotalCycles() / 200; // vpos
-
- case 0xc200:
- return DrvDips[1];
-
- case 0xc300:
- return DrvInputs[0];
-
- case 0xc320:
- if (game_select > 2) return (DrvInputs[1] & ~0x02) | (ZetTotalCycles() & 0x02);
- return DrvInputs[1];
-
- case 0xc340:
- return DrvInputs[2];
-
- case 0xc360:
- return DrvDips[0];
- }
-
- return 0;
-}
-
-#if 0
-static void AY8910_1_portA_w(UINT32, UINT32 /*data*/)
-{
-// if (~data & 0x40) tc8830fWrite(data & 0xf);
-// if (~data & 0x10) tc8830fReset();
-}
-#endif
-
-static INT32 DrvDoReset(INT32 clear_ram)
-{
- if (clear_ram) {
- memset(AllRam, 0, RamEnd - AllRam);
- }
-
- ZetOpen(0);
- ZetReset();
- ZetClose();
-
- TimepltSndReset();
-
-// tc8830fReset();
-
- last_sound_irq = 0;
- nmi_enable = 0;
-
- watchdog = 0;
-
- HiscoreReset();
-
- return 0;
-}
-
-static INT32 MemIndex()
-{
- UINT8 *Next; Next = AllMem;
-
- DrvZ80ROM0 = Next; Next += 0x006000;
- DrvZ80ROM1 = Next; Next += 0x002000;
-
- DrvGfxROM0 = Next; Next += 0x020000;
- DrvGfxROM1 = Next; Next += 0x010000;
-
- DrvColPROM = Next; Next += 0x000240;
-
- DrvSndROM = Next; Next += 0x020000;
-
- DrvPalette = (UINT32*)Next; Next += 0x0180 * sizeof(UINT32);
-
- DrvSprTmp = Next; Next += 0x6000;
-
- AllRam = Next;
-
- DrvZ80RAM0 = Next; Next += 0x001000;
- DrvZ80RAM1 = Next; Next += 0x000400;
- DrvVidRAM = Next; Next += 0x000400;
- DrvColRAM = Next; Next += 0x000400;
- DrvSprRAM = Next; Next += 0x000200;
-
- RamEnd = Next;
-
- pAY8910Buffer[0] = (INT16*)Next; Next += nBurnSoundLen * sizeof(INT16);
- pAY8910Buffer[1] = (INT16*)Next; Next += nBurnSoundLen * sizeof(INT16);
- pAY8910Buffer[2] = (INT16*)Next; Next += nBurnSoundLen * sizeof(INT16);
- pAY8910Buffer[3] = (INT16*)Next; Next += nBurnSoundLen * sizeof(INT16);
- pAY8910Buffer[4] = (INT16*)Next; Next += nBurnSoundLen * sizeof(INT16);
- pAY8910Buffer[5] = (INT16*)Next; Next += nBurnSoundLen * sizeof(INT16);
-
- MemEnd = Next;
-
- return 0;
-}
-
-static INT32 DrvGfxDecode(INT32 mode)
-{
- INT32 Plane[3] = { 4, 0, 4 };
- INT32 XOffs[16] = { STEP4(0,1), STEP4(8*8,1), STEP4(16*8,1), STEP4(24*8,1) };
- INT32 YOffs[16] = { STEP8(0,8), STEP8(32*8,8) };
-
- UINT8 *tmp = (UINT8*)BurnMalloc(0x8000);
- if (tmp == NULL) {
- return 1;
- }
-
- memcpy (tmp, DrvGfxROM0, 0x8000);
-
- GfxDecode(0x0800, 2, 8, 8, Plane, XOffs, YOffs, 0x080, tmp, DrvGfxROM0);
-
- memcpy (tmp, DrvGfxROM1, 0x4000);
-
- GfxDecode(0x0100, 2, 16, 16, Plane + mode, XOffs, YOffs, 0x200, tmp, DrvGfxROM1);
-
- BurnFree(tmp);
-
- return 0;
-}
-
-static INT32 DrvInit(INT32 game)
-{
- game_select = game;
-
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- if (game_select == 1) // timeplt
- {
- if (BurnLoadRom(DrvZ80ROM0 + 0x00000, 0, 1)) return 1;
- if (BurnLoadRom(DrvZ80ROM0 + 0x02000, 1, 1)) return 1;
- if (BurnLoadRom(DrvZ80ROM0 + 0x04000, 2, 1)) return 1;
-
- if (BurnLoadRom(DrvZ80ROM1 + 0x00000, 3, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x00000, 4, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM1 + 0x00000, 5, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x02000, 6, 1)) return 1;
-
- if (BurnLoadRom(DrvColPROM + 0x00000, 7, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x00020, 8, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x00040, 9, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x00140, 10, 1)) return 1;
-
- DrvGfxDecode(0);
- }
-
- if (game_select == 2) // psurge
- {
- if (BurnLoadRom(DrvZ80ROM0 + 0x00000, 0, 1)) return 1;
- if (BurnLoadRom(DrvZ80ROM0 + 0x02000, 1, 1)) return 1;
- if (BurnLoadRom(DrvZ80ROM0 + 0x04000, 2, 1)) return 1;
-
- if (BurnLoadRom(DrvZ80ROM1 + 0x00000, 3, 1)) return 1;
- if (BurnLoadRom(DrvZ80ROM1 + 0x01000, 4, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x00000, 5, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM1 + 0x00000, 6, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x02000, 7, 1)) return 1;
-
- if (BurnLoadRom(DrvColPROM + 0x00000, 8, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x00020, 9, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x00040, 10, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x00140, 11, 1)) return 1;
-
- DrvGfxDecode(0);
- }
-
- if (game_select == 3) // chkun
- {
- if (BurnLoadRom(DrvZ80ROM0 + 0x00000, 0, 1)) return 1;
- if (BurnLoadRom(DrvZ80ROM0 + 0x04000, 1, 1)) return 1;
-
- if (BurnLoadRom(DrvZ80ROM1 + 0x00000, 2, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x00000, 3, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM1 + 0x00000, 4, 1)) return 1;
-
- if (BurnLoadRom(DrvColPROM + 0x00000, 5, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x00020, 6, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x00040, 7, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x00140, 8, 1)) return 1;
-
- if (BurnLoadRom(DrvSndROM + 0x00000, 9, 1)) return 1;
- if (BurnLoadRom(DrvSndROM + 0x10000, 10, 1)) return 1;
-
- DrvGfxDecode(1);
- }
-
- if (game_select == 4) // bikkuric
- {
- if (BurnLoadRom(DrvZ80ROM0 + 0x00000, 0, 1)) return 1;
- if (BurnLoadRom(DrvZ80ROM0 + 0x04000, 1, 1)) return 1;
-
- if (BurnLoadRom(DrvZ80ROM1 + 0x00000, 2, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x00000, 3, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM1 + 0x00000, 4, 1)) return 1;
-
- if (BurnLoadRom(DrvColPROM + 0x00000, 5, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x00020, 6, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x00040, 7, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x00140, 8, 1)) return 1;
-
- DrvGfxDecode(1);
- }
-
- ZetInit(0);
- ZetOpen(0);
- ZetMapMemory(DrvZ80ROM0, 0x0000, 0x5fff, MAP_ROM);
- if (game_select >= 3) {
- ZetMapMemory(DrvZ80RAM0 + 0x0800,0x6000, 0x67ff, MAP_RAM);
- }
- ZetMapMemory(DrvColRAM, 0xa000, 0xa3ff, MAP_RAM);
- ZetMapMemory(DrvVidRAM, 0xa400, 0xa7ff, MAP_RAM);
- ZetMapMemory(DrvZ80RAM0, 0xa800, 0xafff, MAP_RAM);
- ZetMapMemory(DrvSprRAM + 0x0000,0xb000, 0xb0ff, MAP_RAM);
- ZetMapMemory(DrvSprRAM + 0x0000,0xb100, 0xb1ff, MAP_RAM);
- ZetMapMemory(DrvSprRAM + 0x0000,0xb200, 0xb2ff, MAP_RAM);
- ZetMapMemory(DrvSprRAM + 0x0000,0xb300, 0xb3ff, MAP_RAM);
- ZetMapMemory(DrvSprRAM + 0x0100,0xb400, 0xb4ff, MAP_RAM);
- ZetMapMemory(DrvSprRAM + 0x0100,0xb500, 0xb5ff, MAP_RAM);
- ZetMapMemory(DrvSprRAM + 0x0100,0xb600, 0xb6ff, MAP_RAM);
- ZetMapMemory(DrvSprRAM + 0x0100,0xb700, 0xb7ff, MAP_RAM);
- ZetMapMemory(DrvSprRAM + 0x0000,0xb800, 0xb8ff, MAP_RAM);
- ZetMapMemory(DrvSprRAM + 0x0000,0xb900, 0xb9ff, MAP_RAM);
- ZetMapMemory(DrvSprRAM + 0x0000,0xba00, 0xbaff, MAP_RAM);
- ZetMapMemory(DrvSprRAM + 0x0000,0xbb00, 0xbbff, MAP_RAM);
- ZetMapMemory(DrvSprRAM + 0x0100,0xbc00, 0xbcff, MAP_RAM);
- ZetMapMemory(DrvSprRAM + 0x0100,0xbd00, 0xbdff, MAP_RAM);
- ZetMapMemory(DrvSprRAM + 0x0100,0xbe00, 0xbeff, MAP_RAM);
- ZetMapMemory(DrvSprRAM + 0x0100,0xbf00, 0xbfff, MAP_RAM);
- ZetSetWriteHandler(timeplt_main_write);
- ZetSetReadHandler(timeplt_main_read);
- ZetClose();
-
- TimepltSndInit(DrvZ80ROM1, DrvZ80RAM1, 1);
-
-// tc8830fInit(512000, DrvSndROM, 0x20000, 1);
-// tc8830fSetAllRoutes(0.60, BURN_SND_ROUTE_BOTH);
-
- GenericTilesInit();
-
- DrvDoReset(1);
-
- return 0;
-}
-
-static INT32 DrvExit()
-{
- GenericTilesExit();
-
- ZetExit();
-
- TimepltSndExit();
-
-// tc8830fInit();
-
- BurnFree (AllMem);
-
- return 0;
-}
-
-static void DrvPaletteInit()
-{
- UINT32 pens[32];
-
- for (INT32 i = 0; i < 32; i++)
- {
- INT32 bit0 = (DrvColPROM[i + 1 * 32] >> 1) & 0x01;
- INT32 bit1 = (DrvColPROM[i + 1 * 32] >> 2) & 0x01;
- INT32 bit2 = (DrvColPROM[i + 1 * 32] >> 3) & 0x01;
- INT32 bit3 = (DrvColPROM[i + 1 * 32] >> 4) & 0x01;
- INT32 bit4 = (DrvColPROM[i + 1 * 32] >> 5) & 0x01;
- INT32 r = 0x19 * bit0 + 0x24 * bit1 + 0x35 * bit2 + 0x40 * bit3 + 0x4d * bit4;
- bit0 = (DrvColPROM[i + 1 * 32] >> 6) & 0x01;
- bit1 = (DrvColPROM[i + 1 * 32] >> 7) & 0x01;
- bit2 = (DrvColPROM[i + 0 * 32] >> 0) & 0x01;
- bit3 = (DrvColPROM[i + 0 * 32] >> 1) & 0x01;
- bit4 = (DrvColPROM[i + 0 * 32] >> 2) & 0x01;
- INT32 g = 0x19 * bit0 + 0x24 * bit1 + 0x35 * bit2 + 0x40 * bit3 + 0x4d * bit4;
- bit0 = (DrvColPROM[i + 0 * 32] >> 3) & 0x01;
- bit1 = (DrvColPROM[i + 0 * 32] >> 4) & 0x01;
- bit2 = (DrvColPROM[i + 0 * 32] >> 5) & 0x01;
- bit3 = (DrvColPROM[i + 0 * 32] >> 6) & 0x01;
- bit4 = (DrvColPROM[i + 0 * 32] >> 7) & 0x01;
- INT32 b = 0x19 * bit0 + 0x24 * bit1 + 0x35 * bit2 + 0x40 * bit3 + 0x4d * bit4;
-
- pens[i] = BurnHighCol(r,g,b,0);
- }
-
- for (INT32 i = 0; i < 256; i++) {
- DrvPalette[i + 0x80] = pens[DrvColPROM[i+0x040] & 0x0f];
- }
-
- for (INT32 i = 0; i < 128; i++) {
- DrvPalette[i + 0x00] = pens[(DrvColPROM[i+0x140] & 0x0f) + 0x10];
- }
-}
-
-static void draw_layer(INT32 priority)
-{
- INT32 global_flip = (game_select == 2) ? ((32*32)-1) : 0;
-
- for (INT32 offs = (32 * 2); offs < (32 * 32) - (32 * 2); offs++)
- {
- INT32 sx = (offs & 0x1f) * 8;
- INT32 sy = (offs / 0x20) * 8;
-
- INT32 attr = DrvColRAM[offs^global_flip];
- INT32 code =(DrvVidRAM[offs^global_flip] + ((attr & 0x60) << 3));
- INT32 color = attr & 0x1f;
- INT32 category, flipx, flipy;
-
- if (game_select > 2) {
- flipx = flipy = 0;
- category = attr >> 7;
- } else {
- flipx = attr & 0x40;
- flipy = attr & 0x80;
- category = (attr >> 4) & 1;
- code &= 0x1ff;
- }
-
- if (game_select == 2) {
- flipx = !flipx;
- flipy = !flipy;
- }
-
- if (priority != category) continue;
-
- if (flipy) {
- if (flipx) {
- Render8x8Tile_FlipXY(pTransDraw, code, sx, sy - 16, color, 2, 0, DrvGfxROM0);
- } else {
- Render8x8Tile_FlipY(pTransDraw, code, sx, sy - 16, color, 2, 0, DrvGfxROM0);
- }
- } else {
- if (flipx) {
- Render8x8Tile_FlipX(pTransDraw, code, sx, sy - 16, color, 2, 0, DrvGfxROM0);
- } else {
- Render8x8Tile(pTransDraw, code, sx, sy - 16, color, 2, 0, DrvGfxROM0);
- }
- }
- }
-}
-
-static void draw_sprites()
-{
- for (INT32 line = 16; line < 240; line++)
- {
- UINT8 *ram = DrvSprTmp + (line * 0x60);
- UINT16 *dst = pTransDraw + ((line - 16) * nScreenWidth);
-
- for (INT32 offs = 0x2e; offs >= 0; offs -= 2)
- {
- INT32 sy = 241 - ram[offs + 0x31];
- if (sy < (line-15) || sy > line) continue;
-
- INT32 sx = ram[offs + 0x00];
- INT32 code = ram[offs + 0x01];
- INT32 color = ram[offs + 0x30] & 0x3f;
- INT32 flipx =~ram[offs + 0x30] & 0x40;
- INT32 flipy = ram[offs + 0x30] & 0x80;
-
- {
- UINT8 *gfx = DrvGfxROM1 + (code * 0x100);
- color = (color << 2) + 0x80;
- flipx = (flipx ? 0x0f : 0);
- flipy = (flipy ? 0xf0 : 0);
- gfx += (((line - sy) * 0x10) ^ flipy);
-
- for (INT32 x = 0; x < 16; x++, sx++)
- {
- if (sx < 0 || sx >= nScreenWidth) continue;
-
- INT32 pxl = gfx[x^flipx];
-
- if (pxl) {
- dst[sx] = pxl + color;
- }
- }
- }
- }
- }
-}
-
-static INT32 DrvDraw()
-{
- if (DrvRecalc) {
- DrvPaletteInit();
- DrvRecalc = 0;
- }
-
- draw_layer(0);
- draw_sprites();
- draw_layer(1);
-
- BurnTransferCopy(DrvPalette);
-
- return 0;
-}
-
-static INT32 DrvFrame()
-{
- watchdog++;
- if (watchdog >= 180) {
- DrvDoReset(0);
- }
-
- if (DrvReset) {
- DrvDoReset(1);
- }
-
- ZetNewFrame();
-
- {
- memset (DrvInputs, 0xff, 3);
- for (INT32 i = 0; i < 8; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- DrvInputs[2] ^= (DrvJoy3[i] & 1) << i;
- }
- }
-
- INT32 nInterleave = 256;
- INT32 nCyclesTotal[2] = { 3072000 / 60, 1789772 / 60 };
- INT32 nCyclesDone[2] = { 0, 0 };
- INT32 nSoundBufferPos = 0;
- INT32 scanline = 0;
-
- for (INT32 i = 0; i < nInterleave; i++)
- {
- ZetOpen(0);
- INT32 nSegment = (nCyclesTotal[0] * (i + 1)) / nInterleave;
- nCyclesDone[0] += ZetRun(nSegment - nCyclesDone[0]);
- if (i == (nInterleave - 1) && nmi_enable) ZetSetIRQLine(0x20, CPU_IRQSTATUS_ACK);
- if (i == (nInterleave - 1) && game_select == 2) ZetNmi();
- ZetClose();
-
- scanline = i + 5;
- if (scanline >= 16 && scanline < 240) {
- memcpy (DrvSprTmp + scanline * 0x60 + 0x00, DrvSprRAM + 0x010, 0x30);
- memcpy (DrvSprTmp + scanline * 0x60 + 0x30, DrvSprRAM + 0x110, 0x30);
- }
-
- ZetOpen(1);
- nSegment = (nCyclesTotal[1] * i) / nInterleave;
- nCyclesDone[1] += ZetRun(nSegment - nCyclesDone[1]);
- ZetClose();
-
- // Render Sound Segment
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen / nInterleave;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- TimepltSndUpdate(pAY8910Buffer, pSoundBuf, nSegmentLength);
- nSoundBufferPos += nSegmentLength;
- }
- }
-
- // Make sure the buffer is entirely filled.
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- TimepltSndUpdate(pAY8910Buffer, pSoundBuf, nSegmentLength);
-// tc8830fUpdate(pBurnSoundOut, nBurnSoundLen);
- }
-
- if (pBurnDraw) {
- DrvDraw();
- }
-
- return 0;
-}
-
-static INT32 DrvScan(INT32 nAction,INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin) {
- *pnMin = 0x029521;
- }
-
- if (nAction & ACB_VOLATILE) {
- memset(&ba, 0, sizeof(ba));
-
- ba.Data = AllRam;
- ba.nLen = RamEnd - AllRam;
- ba.szName = "All Ram";
- BurnAcb(&ba);
-
- ZetScan(nAction);
- TimepltSndScan(nAction, pnMin);
-
- SCAN_VAR(nmi_enable);
- SCAN_VAR(last_sound_irq);
- }
-
- return 0;
-}
-
-
-// Time Pilot
-
-static struct BurnRomInfo timepltRomDesc[] = {
- { "tm1", 0x2000, 0x1551f1b9, 1 | BRF_PRG | BRF_ESS }, // 0 Z80 #0 Code
- { "tm2", 0x2000, 0x58636cb5, 1 | BRF_PRG | BRF_ESS }, // 1
- { "tm3", 0x2000, 0xff4e0d83, 1 | BRF_PRG | BRF_ESS }, // 2
-
- { "tm7", 0x1000, 0xd66da813, 2 | BRF_PRG | BRF_ESS }, // 3 Z80 #1 Code
-
- { "tm6", 0x2000, 0xc2507f40, 3 | BRF_GRA }, // 4 Characters
-
- { "tm4", 0x2000, 0x7e437c3e, 4 | BRF_GRA }, // 5 Sprites
- { "tm5", 0x2000, 0xe8ca87b9, 4 | BRF_GRA }, // 6
-
- { "timeplt.b4", 0x0020, 0x34c91839, 5 | BRF_GRA }, // 7 Color PROMs
- { "timeplt.b5", 0x0020, 0x463b2b07, 5 | BRF_GRA }, // 8
- { "timeplt.e9", 0x0100, 0x4bbb2150, 5 | BRF_GRA }, // 9
- { "timeplt.e12", 0x0100, 0xf7b7663e, 5 | BRF_GRA }, // 10
-};
-
-STD_ROM_PICK(timeplt)
-STD_ROM_FN(timeplt)
-
-static INT32 timepltInit()
-{
- return DrvInit(1);
-}
-
-struct BurnDriver BurnDrvTimeplt = {
- "timeplt", NULL, NULL, NULL, "1982",
- "Time Pilot\0", NULL, "Konami", "GX393",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_KONAMI, GBF_VERSHOOT, 0,
- NULL, timepltRomInfo, timepltRomName, NULL, NULL, TimepltInputInfo, TimepltDIPInfo,
- timepltInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x180,
- 224, 256, 3, 4
-};
-
-
-// Time Pilot (Atari)
-
-static struct BurnRomInfo timepltaRomDesc[] = {
- { "cd_e1.bin", 0x2000, 0xa4513b35, 1 | BRF_PRG | BRF_ESS }, // 0 Z80 #0 Code
- { "cd_e2.bin", 0x2000, 0x38b0c72a, 1 | BRF_PRG | BRF_ESS }, // 1
- { "cd_e3.bin", 0x2000, 0x83846870, 1 | BRF_PRG | BRF_ESS }, // 2
-
- { "tm7", 0x1000, 0xd66da813, 2 | BRF_PRG | BRF_ESS }, // 3 Z80 #1 Code
-
- { "tm6", 0x2000, 0xc2507f40, 3 | BRF_GRA }, // 4 Characters
-
- { "tm4", 0x2000, 0x7e437c3e, 4 | BRF_GRA }, // 5 Sprites
- { "tm5", 0x2000, 0xe8ca87b9, 4 | BRF_GRA }, // 6
-
- { "timeplt.b4", 0x0020, 0x34c91839, 5 | BRF_GRA }, // 7 Color PROMs
- { "timeplt.b5", 0x0020, 0x463b2b07, 5 | BRF_GRA }, // 8
- { "timeplt.e9", 0x0100, 0x4bbb2150, 5 | BRF_GRA }, // 9
- { "timeplt.e12", 0x0100, 0xf7b7663e, 5 | BRF_GRA }, // 10
-};
-
-STD_ROM_PICK(timeplta)
-STD_ROM_FN(timeplta)
-
-struct BurnDriver BurnDrvTimeplta = {
- "timeplta", "timeplt", NULL, NULL, "1982",
- "Time Pilot (Atari)\0", NULL, "Konami (Atari license)", "GX393",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_KONAMI, GBF_VERSHOOT, 0,
- NULL, timepltaRomInfo, timepltaRomName, NULL, NULL, TimepltInputInfo, TimepltDIPInfo,
- timepltInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x180,
- 224, 256, 3, 4
-};
-
-
-// Time Pilot (Centuri)
-
-static struct BurnRomInfo timepltcRomDesc[] = {
- { "cd1y", 0x2000, 0x83ec72c2, 1 | BRF_PRG | BRF_ESS }, // 0 Z80 #0 Code
- { "cd2y", 0x2000, 0x0dcf5287, 1 | BRF_PRG | BRF_ESS }, // 1
- { "cd3y", 0x2000, 0xc789b912, 1 | BRF_PRG | BRF_ESS }, // 2
-
- { "tm7", 0x1000, 0xd66da813, 2 | BRF_PRG | BRF_ESS }, // 3 Z80 #1 Code
-
- { "tm6", 0x2000, 0xc2507f40, 3 | BRF_GRA }, // 4 Characters
-
- { "tm4", 0x2000, 0x7e437c3e, 4 | BRF_GRA }, // 5 Sprites
- { "tm5", 0x2000, 0xe8ca87b9, 4 | BRF_GRA }, // 6
-
- { "timeplt.b4", 0x0020, 0x34c91839, 5 | BRF_GRA }, // 7 Color PROMs
- { "timeplt.b5", 0x0020, 0x463b2b07, 5 | BRF_GRA }, // 8
- { "timeplt.e9", 0x0100, 0x4bbb2150, 5 | BRF_GRA }, // 9
- { "timeplt.e12", 0x0100, 0xf7b7663e, 5 | BRF_GRA }, // 10
-};
-
-STD_ROM_PICK(timepltc)
-STD_ROM_FN(timepltc)
-
-struct BurnDriver BurnDrvTimepltc = {
- "timepltc", "timeplt", NULL, NULL, "1982",
- "Time Pilot (Centuri)\0", NULL, "Konami (Centuri license)", "GX393",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_KONAMI, GBF_VERSHOOT, 0,
- NULL, timepltcRomInfo, timepltcRomName, NULL, NULL, TimepltInputInfo, TimepltDIPInfo,
- timepltInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x180,
- 224, 256, 3, 4
-};
-
-
-// Space Pilot
-
-static struct BurnRomInfo spacepltRomDesc[] = {
- { "sp1", 0x2000, 0xac8ca3ae, 1 | BRF_PRG | BRF_ESS }, // 0 Z80 #0 Code
- { "sp2", 0x2000, 0x1f0308ef, 1 | BRF_PRG | BRF_ESS }, // 1
- { "sp3", 0x2000, 0x90aeca50, 1 | BRF_PRG | BRF_ESS }, // 2
-
- { "tm7", 0x1000, 0xd66da813, 2 | BRF_PRG | BRF_ESS }, // 3 Z80 #1 Code
-
- { "sp6", 0x2000, 0x76caa8af, 3 | BRF_GRA }, // 4 Characters
-
- { "sp4", 0x2000, 0x3781ce7a, 4 | BRF_GRA }, // 5 Sprites
- { "tm5", 0x2000, 0xe8ca87b9, 4 | BRF_GRA }, // 6
-
- { "timeplt.b4", 0x0020, 0x34c91839, 5 | BRF_GRA }, // 7 Color PROMs
- { "timeplt.b5", 0x0020, 0x463b2b07, 5 | BRF_GRA }, // 8
- { "timeplt.e9", 0x0100, 0x4bbb2150, 5 | BRF_GRA }, // 9
- { "timeplt.e12", 0x0100, 0xf7b7663e, 5 | BRF_GRA }, // 10
-};
-
-STD_ROM_PICK(spaceplt)
-STD_ROM_FN(spaceplt)
-
-struct BurnDriver BurnDrvSpaceplt = {
- "spaceplt", "timeplt", NULL, NULL, "1982",
- "Space Pilot\0", NULL, "bootleg", "GX393",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_KONAMI, GBF_VERSHOOT, 0,
- NULL, spacepltRomInfo, spacepltRomName, NULL, NULL, TimepltInputInfo, TimepltDIPInfo,
- timepltInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x180,
- 224, 256, 3, 4
-};
-
-
-// Power Surge
-
-static struct BurnRomInfo psurgeRomDesc[] = {
- { "p1", 0x2000, 0x05f9ba12, 1 | BRF_PRG | BRF_ESS }, // 0 Z80 #0 Code
- { "p2", 0x2000, 0x3ff41576, 1 | BRF_PRG | BRF_ESS }, // 1
- { "p3", 0x2000, 0xe8fe120a, 1 | BRF_PRG | BRF_ESS }, // 2
-
- { "p6", 0x1000, 0xb52d01fa, 2 | BRF_PRG | BRF_ESS }, // 3 Z80 #1 Code
- { "p7", 0x1000, 0x9db5c0ce, 2 | BRF_PRG | BRF_ESS }, // 4
-
- { "p4", 0x2000, 0x26fd7f81, 3 | BRF_GRA }, // 5 Characters
-
- { "p5", 0x2000, 0x6066ec8e, 4 | BRF_GRA }, // 6 Sprites
- { "tm5", 0x2000, 0xe8ca87b9, 4 | BRF_GRA }, // 7
-
- { "timeplt.b4", 0x0020, 0x34c91839, 5 | BRF_GRA }, // 8 Color PROMs
- { "timeplt.b5", 0x0020, 0x463b2b07, 5 | BRF_GRA }, // 9
- { "timeplt.e9", 0x0100, 0x4bbb2150, 5 | BRF_GRA }, // 10
- { "timeplt.e12", 0x0100, 0xf7b7663e, 5 | BRF_GRA }, // 11
-};
-
-STD_ROM_PICK(psurge)
-STD_ROM_FN(psurge)
-
-static INT32 psurgeInit()
-{
- return DrvInit(2);
-}
-
-struct BurnDriver BurnDrvPsurge = {
- "psurge", NULL, NULL, NULL, "1988",
- "Power Surge\0", NULL, "Vision Electronics", "Miscellaneous",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_KONAMI, GBF_MAZE, 0,
- NULL, psurgeRomInfo, psurgeRomName, NULL, NULL, TimepltInputInfo, PsurgeDIPInfo,
- psurgeInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x180,
- 224, 256, 3, 4
-};
-
-
-// Chance Kun (Japan)
-
-static struct BurnRomInfo chkunRomDesc[] = {
- { "n1.16a", 0x04000, 0xc5879f9b, 1 | BRF_PRG | BRF_ESS }, // 0 Z80 #0 Code
- { "12.14a", 0x02000, 0x80cc55da, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "15.3l", 0x02000, 0x1f1463ca, 2 | BRF_PRG | BRF_ESS }, // 2 Z80 #1 Code
-
- { "13.4d", 0x04000, 0x776427c0, 3 | BRF_GRA }, // 3 Characters
-
- { "14.8h", 0x04000, 0x0cb76a48, 4 | BRF_GRA }, // 4 Sprites
-
- { "3.2j", 0x00020, 0x34c91839, 5 | BRF_GRA }, // 5 Color PROMs
- { "2.1h", 0x00020, 0x463b2b07, 5 | BRF_GRA }, // 6
- { "4.10h", 0x00100, 0x4bbb2150, 5 | BRF_GRA }, // 7
- { "mb7114e.2b", 0x00100, 0xadfa399a, 5 | BRF_GRA }, // 8
-
- { "v1.8k", 0x10000, 0xd5ca802d, 6 | BRF_GRA }, // 9 tc8830f Samples
- { "v2.9k", 0x10000, 0x70e902eb, 6 | BRF_GRA }, // 10
-
- { "a.16c", 0x000eb, 0xe0d54999, 7 | BRF_GRA }, // 11 PLDs
- { "b.9f", 0x000eb, 0xe3857f83, 7 | BRF_GRA }, // 12
-};
-
-STD_ROM_PICK(chkun)
-STD_ROM_FN(chkun)
-
-static INT32 chkunInit()
-{
- return DrvInit(3);
-}
-
-struct BurnDriver BurnDrvChkun = {
- "chkun", NULL, NULL, NULL, "1988",
- "Chance Kun (Japan)\0", NULL, "Peni Soft", "Miscellaneous",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_KONAMI, GBF_CASINO, 0,
- NULL, chkunRomInfo, chkunRomName, NULL, NULL, ChkunInputInfo, ChkunDIPInfo,
- chkunInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x180,
- 224, 256, 3, 4
-};
-
-
-// Bikkuri Card (Japan)
-
-static struct BurnRomInfo bikkuricRomDesc[] = {
- { "1.a16", 0x4000, 0xe8d595ab, 1 | BRF_PRG | BRF_ESS }, // 0 Z80 #0 Code
- { "2.a14", 0x2000, 0x63fd7d53, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "5.l3", 0x2000, 0xbc438531, 2 | BRF_PRG | BRF_ESS }, // 2 Z80 #1 Code
-
- { "3.d4", 0x8000, 0x74e8a64b, 3 | BRF_GRA }, // 3 Characters
-
- { "4.h8", 0x2000, 0xd303942d, 4 | BRF_GRA }, // 4 Sprites
-
- { "3.2j", 0x0020, 0x34c91839, 5 | BRF_GRA }, // 5 Color PROMs
- { "2.1h", 0x0020, 0x463b2b07, 5 | BRF_GRA }, // 6
- { "4.10h", 0x0100, 0x4bbb2150, 5 | BRF_GRA }, // 7
- { "1.2b", 0x0100, 0xf7b7663e, 5 | BRF_GRA }, // 8
-
- { "a.16c", 0x00eb, 0x00000000, 6 | BRF_NODUMP }, // 9 PLDs
- { "b.9f", 0x00eb, 0x00000000, 6 | BRF_NODUMP }, // 10
-};
-
-STD_ROM_PICK(bikkuric)
-STD_ROM_FN(bikkuric)
-
-static INT32 bikkuricInit()
-{
- return DrvInit(4);
-}
-
-struct BurnDriver BurnDrvBikkuric = {
- "bikkuric", NULL, NULL, NULL, "1987",
- "Bikkuri Card (Japan)\0", NULL, "Peni Soft", "Miscellaneous",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_KONAMI, GBF_CASINO, 0,
- NULL, bikkuricRomInfo, bikkuricRomName, NULL, NULL, BikkuricInputInfo, BikkuricDIPInfo,
- bikkuricInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x180,
- 224, 256, 3, 4
-};
diff --git a/jan/src/burn/drv/konami/d_tmnt.cpp b/jan/src/burn/drv/konami/d_tmnt.cpp
deleted file mode 100644
index d98c43837..000000000
--- a/jan/src/burn/drv/konami/d_tmnt.cpp
+++ /dev/null
@@ -1,6940 +0,0 @@
-// FB Alpha Teenage Mutant Ninja Turtle driver module
-// Based on MAME driver by Nicola Salmoria
-
-#include "tiles_generic.h"
-#include "m68000_intf.h"
-#include "z80_intf.h"
-#include "konamiic.h"
-#include "burn_ym2151.h"
-#include "upd7759.h"
-#include "k007232.h"
-#include "k053260.h"
-#include "eeprom.h"
-
-static UINT8 DrvInputPort0[8] = {0, 0, 0, 0, 0, 0, 0, 0};
-static UINT8 DrvInputPort1[8] = {0, 0, 0, 0, 0, 0, 0, 0};
-static UINT8 DrvInputPort2[8] = {0, 0, 0, 0, 0, 0, 0, 0};
-static UINT8 DrvInputPort3[8] = {0, 0, 0, 0, 0, 0, 0, 0};
-static UINT8 DrvInputPort4[8] = {0, 0, 0, 0, 0, 0, 0, 0};
-static UINT8 DrvInputPort5[8] = {0, 0, 0, 0, 0, 0, 0, 0};
-static UINT8 DrvDip[3] = {0, 0, 0};
-static UINT8 DrvInput[6] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
-static UINT8 DrvReset = 0;
-
-static UINT8 *Mem = NULL;
-static UINT8 *MemEnd = NULL;
-static UINT8 *RamStart = NULL;
-static UINT8 *RamEnd = NULL;
-static UINT8 *Drv68KRom = NULL;
-static UINT8 *Drv68KRam = NULL;
-static UINT8 *DrvZ80Rom = NULL;
-static UINT8 *DrvZ80Ram = NULL;
-static UINT8 *DrvSoundRom = NULL;
-static UINT8 *DrvUPD7759CRom = NULL;
-static UINT8 *DrvTileRom = NULL;
-static UINT8 *DrvSpriteRom = NULL;
-static UINT8 *DrvSpriteRam = NULL;
-static UINT8 *DrvPaletteRam = NULL;
-static UINT8 *DrvNvRam = NULL;
-static UINT8 *DrvTiles = NULL;
-static UINT8 *DrvSprites = NULL;
-static UINT8 *DrvTempRom = NULL;
-static UINT32 *DrvPalette = NULL;
-static INT16 *DrvTitleSample = NULL;
-
-static INT32 nCyclesDone[2], nCyclesTotal[2];
-static INT32 nCyclesSegment;
-
-static UINT8 bIrqEnable;
-static INT32 LayerColourBase[3];
-static INT32 SpriteColourBase;
-static INT32 LayerPri[3];
-static UINT8 DrvSoundLatch;
-static INT32 PriorityFlag;
-
-static INT32 dim_c, dim_v;
-static INT32 NoDim = 0;
-
-static INT32 DrvNvRamBank;
-static INT32 CuebrickSndIrqFire;
-static INT32 BlswhstlTileRomBank;
-
-static INT32 TitleSoundLatch;
-static INT32 PlayTitleSample;
-static double TitleSamplePos = 0;
-static double TitleSampleGain;
-static INT32 TitleSampleOutputDir;
-
-static UINT8 DrvVBlank;
-
-static INT32 InitEEPROMCount;
-
-static const eeprom_interface BlswhstlEEPROMInterface =
-{
- 7,
- 8,
- "011000",
- "011100",
- 0,
- "0100000000000",
- "0100110000000",
- 0,
- 0
-};
-
-static const eeprom_interface thndrx2_eeprom_interface =
-{
- 7,
- 8,
- "011000",
- "010100",
- 0,
- "0100000000000",
- "0100110000000",
- 0,
- 0
-};
-
-static struct BurnInputInfo TmntInputList[] =
-{
- {"P1 Coin" , BIT_DIGITAL , DrvInputPort0 + 0, "p1 coin" },
- {"P1 Up" , BIT_DIGITAL , DrvInputPort1 + 2, "p1 up" },
- {"P1 Down" , BIT_DIGITAL , DrvInputPort1 + 3, "p1 down" },
- {"P1 Left" , BIT_DIGITAL , DrvInputPort1 + 0, "p1 left" },
- {"P1 Right" , BIT_DIGITAL , DrvInputPort1 + 1, "p1 right" },
- {"P1 Fire 1" , BIT_DIGITAL , DrvInputPort1 + 4, "p1 fire 1" },
- {"P1 Fire 2" , BIT_DIGITAL , DrvInputPort1 + 5, "p1 fire 2" },
-
- {"P2 Coin" , BIT_DIGITAL , DrvInputPort0 + 1, "p2 coin" },
- {"P2 Up" , BIT_DIGITAL , DrvInputPort2 + 2, "p2 up" },
- {"P2 Down" , BIT_DIGITAL , DrvInputPort2 + 3, "p2 down" },
- {"P2 Left" , BIT_DIGITAL , DrvInputPort2 + 0, "p2 left" },
- {"P2 Right" , BIT_DIGITAL , DrvInputPort2 + 1, "p2 right" },
- {"P2 Fire 1" , BIT_DIGITAL , DrvInputPort2 + 4, "p2 fire 1" },
- {"P2 Fire 2" , BIT_DIGITAL , DrvInputPort2 + 5, "p2 fire 2" },
-
- {"P3 Coin" , BIT_DIGITAL , DrvInputPort0 + 2, "p3 coin" },
- {"P3 Up" , BIT_DIGITAL , DrvInputPort3 + 2, "p3 up" },
- {"P3 Down" , BIT_DIGITAL , DrvInputPort3 + 3, "p3 down" },
- {"P3 Left" , BIT_DIGITAL , DrvInputPort3 + 0, "p3 left" },
- {"P3 Right" , BIT_DIGITAL , DrvInputPort3 + 1, "p3 right" },
- {"P3 Fire 1" , BIT_DIGITAL , DrvInputPort3 + 4, "p3 fire 1" },
- {"P3 Fire 2" , BIT_DIGITAL , DrvInputPort3 + 5, "p3 fire 2" },
-
- {"P4 Coin" , BIT_DIGITAL , DrvInputPort0 + 3, "p4 coin" },
- {"P4 Up" , BIT_DIGITAL , DrvInputPort4 + 2, "p4 up" },
- {"P4 Down" , BIT_DIGITAL , DrvInputPort4 + 3, "p4 down" },
- {"P4 Left" , BIT_DIGITAL , DrvInputPort4 + 0, "p4 left" },
- {"P4 Right" , BIT_DIGITAL , DrvInputPort4 + 1, "p4 right" },
- {"P4 Fire 1" , BIT_DIGITAL , DrvInputPort4 + 4, "p4 fire 1" },
- {"P4 Fire 2" , BIT_DIGITAL , DrvInputPort4 + 5, "p4 fire 2" },
-
- {"Reset" , BIT_DIGITAL , &DrvReset , "reset" },
- {"Service 1" , BIT_DIGITAL , DrvInputPort0 + 4, "service" },
- {"Service 2" , BIT_DIGITAL , DrvInputPort0 + 5, "service2" },
- {"Service 3" , BIT_DIGITAL , DrvInputPort0 + 6, "service3" },
- {"Service 4" , BIT_DIGITAL , DrvInputPort0 + 7, "service4" },
- {"Dip 1" , BIT_DIPSWITCH, DrvDip + 0 , "dip" },
- {"Dip 2" , BIT_DIPSWITCH, DrvDip + 1 , "dip" },
- {"Dip 3" , BIT_DIPSWITCH, DrvDip + 2 , "dip" },
-};
-
-STDINPUTINFO(Tmnt)
-
-static struct BurnInputInfo Tmnt2pInputList[] =
-{
- {"P1 Coin" , BIT_DIGITAL , DrvInputPort0 + 0, "p1 coin" },
- {"P1 Start" , BIT_DIGITAL , DrvInputPort1 + 7, "p1 start" },
- {"P1 Up" , BIT_DIGITAL , DrvInputPort1 + 2, "p1 up" },
- {"P1 Down" , BIT_DIGITAL , DrvInputPort1 + 3, "p1 down" },
- {"P1 Left" , BIT_DIGITAL , DrvInputPort1 + 0, "p1 left" },
- {"P1 Right" , BIT_DIGITAL , DrvInputPort1 + 1, "p1 right" },
- {"P1 Fire 1" , BIT_DIGITAL , DrvInputPort1 + 4, "p1 fire 1" },
- {"P1 Fire 2" , BIT_DIGITAL , DrvInputPort1 + 5, "p1 fire 2" },
-
- {"P2 Coin" , BIT_DIGITAL , DrvInputPort0 + 1, "p2 coin" },
- {"P2 Start" , BIT_DIGITAL , DrvInputPort2 + 7, "p2 start" },
- {"P2 Up" , BIT_DIGITAL , DrvInputPort2 + 2, "p2 up" },
- {"P2 Down" , BIT_DIGITAL , DrvInputPort2 + 3, "p2 down" },
- {"P2 Left" , BIT_DIGITAL , DrvInputPort2 + 0, "p2 left" },
- {"P2 Right" , BIT_DIGITAL , DrvInputPort2 + 1, "p2 right" },
- {"P2 Fire 1" , BIT_DIGITAL , DrvInputPort2 + 4, "p2 fire 1" },
- {"P2 Fire 2" , BIT_DIGITAL , DrvInputPort2 + 5, "p2 fire 2" },
-
- {"Reset" , BIT_DIGITAL , &DrvReset , "reset" },
- {"Service 1" , BIT_DIGITAL , DrvInputPort0 + 4, "service" },
- {"Service 2" , BIT_DIGITAL , DrvInputPort0 + 5, "service2" },
- {"Dip 1" , BIT_DIPSWITCH, DrvDip + 0 , "dip" },
- {"Dip 2" , BIT_DIPSWITCH, DrvDip + 1 , "dip" },
- {"Dip 3" , BIT_DIPSWITCH, DrvDip + 2 , "dip" },
-};
-
-STDINPUTINFO(Tmnt2p)
-
-static struct BurnInputInfo MiaInputList[] =
-{
- {"P1 Coin" , BIT_DIGITAL , DrvInputPort0 + 0, "p1 coin" },
- {"P1 Start" , BIT_DIGITAL , DrvInputPort0 + 3, "p1 start" },
- {"P1 Up" , BIT_DIGITAL , DrvInputPort1 + 2, "p1 up" },
- {"P1 Down" , BIT_DIGITAL , DrvInputPort1 + 3, "p1 down" },
- {"P1 Left" , BIT_DIGITAL , DrvInputPort1 + 0, "p1 left" },
- {"P1 Right" , BIT_DIGITAL , DrvInputPort1 + 1, "p1 right" },
- {"P1 Fire 1" , BIT_DIGITAL , DrvInputPort1 + 4, "p1 fire 1" },
- {"P1 Fire 2" , BIT_DIGITAL , DrvInputPort1 + 5, "p1 fire 2" },
- {"P1 Fire 3" , BIT_DIGITAL , DrvInputPort1 + 6, "p1 fire 3" },
-
- {"P2 Coin" , BIT_DIGITAL , DrvInputPort0 + 1, "p2 coin" },
- {"P2 Start" , BIT_DIGITAL , DrvInputPort0 + 4, "p2 start" },
- {"P2 Up" , BIT_DIGITAL , DrvInputPort2 + 2, "p2 up" },
- {"P2 Down" , BIT_DIGITAL , DrvInputPort2 + 3, "p2 down" },
- {"P2 Left" , BIT_DIGITAL , DrvInputPort2 + 0, "p2 left" },
- {"P2 Right" , BIT_DIGITAL , DrvInputPort2 + 1, "p2 right" },
- {"P2 Fire 1" , BIT_DIGITAL , DrvInputPort2 + 4, "p2 fire 1" },
- {"P2 Fire 2" , BIT_DIGITAL , DrvInputPort2 + 5, "p2 fire 2" },
- {"P2 Fire 3" , BIT_DIGITAL , DrvInputPort2 + 6, "p2 fire 3" },
-
- {"Reset" , BIT_DIGITAL , &DrvReset , "reset" },
- {"Service" , BIT_DIGITAL , DrvInputPort0 + 6, "service" },
- {"Dip 1" , BIT_DIPSWITCH, DrvDip + 0 , "dip" },
- {"Dip 2" , BIT_DIPSWITCH, DrvDip + 1 , "dip" },
- {"Dip 3" , BIT_DIPSWITCH, DrvDip + 2 , "dip" },
-};
-
-STDINPUTINFO(Mia)
-
-static struct BurnInputInfo BlswhstlInputList[] =
-{
- {"P1 Coin" , BIT_DIGITAL , DrvInputPort0 + 0, "p1 coin" },
- {"P1 Start" , BIT_DIGITAL , DrvInputPort0 + 4, "p1 start" },
- {"P1 Up" , BIT_DIGITAL , DrvInputPort1 + 2, "p1 up" },
- {"P1 Down" , BIT_DIGITAL , DrvInputPort1 + 3, "p1 down" },
- {"P1 Left" , BIT_DIGITAL , DrvInputPort1 + 0, "p1 left" },
- {"P1 Right" , BIT_DIGITAL , DrvInputPort1 + 1, "p1 right" },
- {"P1 Fire 1" , BIT_DIGITAL , DrvInputPort1 + 4, "p1 fire 1" },
- {"P1 Fire 2" , BIT_DIGITAL , DrvInputPort1 + 5, "p1 fire 2" },
-
- {"P2 Coin" , BIT_DIGITAL , DrvInputPort0 + 1, "p2 coin" },
- {"P2 Start" , BIT_DIGITAL , DrvInputPort0 + 5, "p2 start" },
- {"P2 Up" , BIT_DIGITAL , DrvInputPort2 + 2, "p2 up" },
- {"P2 Down" , BIT_DIGITAL , DrvInputPort2 + 3, "p2 down" },
- {"P2 Left" , BIT_DIGITAL , DrvInputPort2 + 0, "p2 left" },
- {"P2 Right" , BIT_DIGITAL , DrvInputPort2 + 1, "p2 right" },
- {"P2 Fire 1" , BIT_DIGITAL , DrvInputPort2 + 4, "p2 fire 1" },
- {"P2 Fire 2" , BIT_DIGITAL , DrvInputPort2 + 5, "p2 fire 2" },
-
- {"Reset" , BIT_DIGITAL , &DrvReset , "reset" },
- {"Service" , BIT_DIGITAL , DrvInputPort0 + 2, "service" },
- {"Diagnostics" , BIT_DIGITAL , DrvInputPort0 + 3, "diag" },
-};
-
-STDINPUTINFO(Blswhstl)
-
-static struct BurnInputInfo Ssriders4pInputList[] =
-{
- {"P1 Coin" , BIT_DIGITAL , DrvInputPort0 + 0, "p1 coin" },
- {"P1 Up" , BIT_DIGITAL , DrvInputPort1 + 2, "p1 up" },
- {"P1 Down" , BIT_DIGITAL , DrvInputPort1 + 3, "p1 down" },
- {"P1 Left" , BIT_DIGITAL , DrvInputPort1 + 0, "p1 left" },
- {"P1 Right" , BIT_DIGITAL , DrvInputPort1 + 1, "p1 right" },
- {"P1 Fire 1" , BIT_DIGITAL , DrvInputPort1 + 4, "p1 fire 1" },
- {"P1 Fire 2" , BIT_DIGITAL , DrvInputPort1 + 5, "p1 fire 2" },
-
- {"P2 Coin" , BIT_DIGITAL , DrvInputPort0 + 1, "p2 coin" },
- {"P2 Up" , BIT_DIGITAL , DrvInputPort2 + 2, "p2 up" },
- {"P2 Down" , BIT_DIGITAL , DrvInputPort2 + 3, "p2 down" },
- {"P2 Left" , BIT_DIGITAL , DrvInputPort2 + 0, "p2 left" },
- {"P2 Right" , BIT_DIGITAL , DrvInputPort2 + 1, "p2 right" },
- {"P2 Fire 1" , BIT_DIGITAL , DrvInputPort2 + 4, "p2 fire 1" },
- {"P2 Fire 2" , BIT_DIGITAL , DrvInputPort2 + 5, "p2 fire 2" },
-
- {"P3 Coin" , BIT_DIGITAL , DrvInputPort0 + 2, "p3 coin" },
- {"P3 Up" , BIT_DIGITAL , DrvInputPort3 + 2, "p3 up" },
- {"P3 Down" , BIT_DIGITAL , DrvInputPort3 + 3, "p3 down" },
- {"P3 Left" , BIT_DIGITAL , DrvInputPort3 + 0, "p3 left" },
- {"P3 Right" , BIT_DIGITAL , DrvInputPort3 + 1, "p3 right" },
- {"P3 Fire 1" , BIT_DIGITAL , DrvInputPort3 + 4, "p3 fire 1" },
- {"P3 Fire 2" , BIT_DIGITAL , DrvInputPort3 + 5, "p3 fire 2" },
-
- {"P4 Coin" , BIT_DIGITAL , DrvInputPort0 + 3, "p4 coin" },
- {"P4 Up" , BIT_DIGITAL , DrvInputPort4 + 2, "p4 up" },
- {"P4 Down" , BIT_DIGITAL , DrvInputPort4 + 3, "p4 down" },
- {"P4 Left" , BIT_DIGITAL , DrvInputPort4 + 0, "p4 left" },
- {"P4 Right" , BIT_DIGITAL , DrvInputPort4 + 1, "p4 right" },
- {"P4 Fire 1" , BIT_DIGITAL , DrvInputPort4 + 4, "p4 fire 1" },
- {"P4 Fire 2" , BIT_DIGITAL , DrvInputPort4 + 5, "p4 fire 2" },
-
- {"Reset" , BIT_DIGITAL , &DrvReset , "reset" },
- {"Service 1" , BIT_DIGITAL , DrvInputPort0 + 4, "service" },
- {"Service 2" , BIT_DIGITAL , DrvInputPort0 + 5, "service2" },
- {"Service 3" , BIT_DIGITAL , DrvInputPort0 + 6, "service3" },
- {"Service 4" , BIT_DIGITAL , DrvInputPort0 + 7, "service4" },
- {"Diagnostics" , BIT_DIGITAL , DrvInputPort5 + 7, "diag" },
-};
-
-STDINPUTINFO(Ssriders4p)
-
-static struct BurnInputInfo SsridersInputList[] =
-{
- {"P1 Coin" , BIT_DIGITAL , DrvInputPort0 + 0, "p1 coin" },
- {"P1 Start" , BIT_DIGITAL , DrvInputPort1 + 7, "p1 start" },
- {"P1 Up" , BIT_DIGITAL , DrvInputPort1 + 2, "p1 up" },
- {"P1 Down" , BIT_DIGITAL , DrvInputPort1 + 3, "p1 down" },
- {"P1 Left" , BIT_DIGITAL , DrvInputPort1 + 0, "p1 left" },
- {"P1 Right" , BIT_DIGITAL , DrvInputPort1 + 1, "p1 right" },
- {"P1 Fire 1" , BIT_DIGITAL , DrvInputPort1 + 4, "p1 fire 1" },
- {"P1 Fire 2" , BIT_DIGITAL , DrvInputPort1 + 5, "p1 fire 2" },
-
- {"P2 Coin" , BIT_DIGITAL , DrvInputPort0 + 1, "p2 coin" },
- {"P2 Start" , BIT_DIGITAL , DrvInputPort2 + 7, "p2 start" },
- {"P2 Up" , BIT_DIGITAL , DrvInputPort2 + 2, "p2 up" },
- {"P2 Down" , BIT_DIGITAL , DrvInputPort2 + 3, "p2 down" },
- {"P2 Left" , BIT_DIGITAL , DrvInputPort2 + 0, "p2 left" },
- {"P2 Right" , BIT_DIGITAL , DrvInputPort2 + 1, "p2 right" },
- {"P2 Fire 1" , BIT_DIGITAL , DrvInputPort2 + 4, "p2 fire 1" },
- {"P2 Fire 2" , BIT_DIGITAL , DrvInputPort2 + 5, "p2 fire 2" },
-
- {"Reset" , BIT_DIGITAL , &DrvReset , "reset" },
- {"Service 1" , BIT_DIGITAL , DrvInputPort0 + 4, "service" },
- {"Service 2" , BIT_DIGITAL , DrvInputPort0 + 5, "service2" },
- {"Diagnostics" , BIT_DIGITAL , DrvInputPort5 + 7, "diag" },
-};
-
-STDINPUTINFO(Ssriders)
-
-static struct BurnInputInfo Ssriders4psInputList[] =
-{
- {"P1 Coin" , BIT_DIGITAL , DrvInputPort0 + 0, "p1 coin" },
- {"P1 Start" , BIT_DIGITAL , DrvInputPort1 + 7, "p1 start" },
- {"P1 Up" , BIT_DIGITAL , DrvInputPort1 + 2, "p1 up" },
- {"P1 Down" , BIT_DIGITAL , DrvInputPort1 + 3, "p1 down" },
- {"P1 Left" , BIT_DIGITAL , DrvInputPort1 + 0, "p1 left" },
- {"P1 Right" , BIT_DIGITAL , DrvInputPort1 + 1, "p1 right" },
- {"P1 Fire 1" , BIT_DIGITAL , DrvInputPort1 + 4, "p1 fire 1" },
- {"P1 Fire 2" , BIT_DIGITAL , DrvInputPort1 + 5, "p1 fire 2" },
-
- {"P2 Coin" , BIT_DIGITAL , DrvInputPort0 + 1, "p2 coin" },
- {"P2 Start" , BIT_DIGITAL , DrvInputPort2 + 7, "p2 start" },
- {"P2 Up" , BIT_DIGITAL , DrvInputPort2 + 2, "p2 up" },
- {"P2 Down" , BIT_DIGITAL , DrvInputPort2 + 3, "p2 down" },
- {"P2 Left" , BIT_DIGITAL , DrvInputPort2 + 0, "p2 left" },
- {"P2 Right" , BIT_DIGITAL , DrvInputPort2 + 1, "p2 right" },
- {"P2 Fire 1" , BIT_DIGITAL , DrvInputPort2 + 4, "p2 fire 1" },
- {"P2 Fire 2" , BIT_DIGITAL , DrvInputPort2 + 5, "p2 fire 2" },
-
- {"P3 Coin" , BIT_DIGITAL , DrvInputPort0 + 2, "p3 coin" },
- {"P3 Start" , BIT_DIGITAL , DrvInputPort3 + 7, "p3 start" },
- {"P3 Up" , BIT_DIGITAL , DrvInputPort3 + 2, "p3 up" },
- {"P3 Down" , BIT_DIGITAL , DrvInputPort3 + 3, "p3 down" },
- {"P3 Left" , BIT_DIGITAL , DrvInputPort3 + 0, "p3 left" },
- {"P3 Right" , BIT_DIGITAL , DrvInputPort3 + 1, "p3 right" },
- {"P3 Fire 1" , BIT_DIGITAL , DrvInputPort3 + 4, "p3 fire 1" },
- {"P3 Fire 2" , BIT_DIGITAL , DrvInputPort3 + 5, "p3 fire 2" },
-
- {"P4 Coin" , BIT_DIGITAL , DrvInputPort0 + 3, "p4 coin" },
- {"P4 Start" , BIT_DIGITAL , DrvInputPort4 + 7, "p4 start" },
- {"P4 Up" , BIT_DIGITAL , DrvInputPort4 + 2, "p4 up" },
- {"P4 Down" , BIT_DIGITAL , DrvInputPort4 + 3, "p4 down" },
- {"P4 Left" , BIT_DIGITAL , DrvInputPort4 + 0, "p4 left" },
- {"P4 Right" , BIT_DIGITAL , DrvInputPort4 + 1, "p4 right" },
- {"P4 Fire 1" , BIT_DIGITAL , DrvInputPort4 + 4, "p4 fire 1" },
- {"P4 Fire 2" , BIT_DIGITAL , DrvInputPort4 + 5, "p4 fire 2" },
-
- {"Reset" , BIT_DIGITAL , &DrvReset , "reset" },
- {"Service 1" , BIT_DIGITAL , DrvInputPort0 + 4, "service" },
- {"Service 2" , BIT_DIGITAL , DrvInputPort0 + 5, "service2" },
- {"Service 3" , BIT_DIGITAL , DrvInputPort0 + 6, "service3" },
- {"Service 4" , BIT_DIGITAL , DrvInputPort0 + 7, "service4" },
- {"Diagnostics" , BIT_DIGITAL , DrvInputPort5 + 7, "diag" },
-};
-
-STDINPUTINFO(Ssriders4ps)
-
-static struct BurnInputInfo Thndrx2InputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvInputPort1 + 0, "p1 coin" },
-
- {"P1 Start", BIT_DIGITAL, DrvInputPort0 + 7, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvInputPort0 + 2, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvInputPort0 + 3, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvInputPort0 + 0, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvInputPort0 + 1, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvInputPort0 + 4, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvInputPort0 + 5, "p1 fire 2" },
-
- {"P2 Coin", BIT_DIGITAL, DrvInputPort1 + 1, "p2 coin" },
-
- {"P2 Start", BIT_DIGITAL, DrvInputPort2 + 7, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvInputPort2 + 2, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvInputPort2 + 3, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvInputPort2 + 0, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvInputPort2 + 1, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvInputPort2 + 4, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvInputPort2 + 5, "p2 fire 2" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service", BIT_DIGITAL, DrvInputPort1 + 2, "service" },
- {"Diagnostics", BIT_DIGITAL, DrvInputPort1 + 3, "diag" },
-};
-
-STDINPUTINFO(Thndrx2)
-
-static struct BurnInputInfo LgtnfghtInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvInputPort0 + 0, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvInputPort0 + 3, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvInputPort1 + 2, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvInputPort1 + 3, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvInputPort1 + 0, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvInputPort1 + 1, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvInputPort1 + 4, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvInputPort1 + 5, "p1 fire 2" },
- {"P1 Button 3", BIT_DIGITAL, DrvInputPort1 + 6, "p1 fire 3" },
-
- {"P2 Coin", BIT_DIGITAL, DrvInputPort0 + 1, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvInputPort0 + 4, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvInputPort2 + 2, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvInputPort2 + 3, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvInputPort2 + 0, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvInputPort2 + 1, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvInputPort2 + 4, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvInputPort2 + 5, "p2 fire 2" },
- {"P2 Button 3", BIT_DIGITAL, DrvInputPort2 + 6, "p2 fire 3" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service", BIT_DIGITAL, DrvInputPort0 + 6, "service" },
- {"Dip A", BIT_DIPSWITCH, DrvDip + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDip + 1, "dip" },
- {"Dip C", BIT_DIPSWITCH, DrvDip + 2, "dip" },
-};
-
-STDINPUTINFO(Lgtnfght)
-
-static struct BurnInputInfo QgakumonInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvInputPort0 + 0, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvInputPort1 + 7, "p1 start" },
- {"P1 Button 1", BIT_DIGITAL, DrvInputPort1 + 2, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvInputPort1 + 3, "p1 fire 2" },
- {"P1 Button 3", BIT_DIGITAL, DrvInputPort1 + 0, "p1 fire 3" },
- {"P1 Button 4", BIT_DIGITAL, DrvInputPort1 + 1, "p1 fire 4" },
- {"P1 Push", BIT_DIGITAL, DrvInputPort1 + 4, "p1 fire 5" },
-
- {"P2 Coin", BIT_DIGITAL, DrvInputPort0 + 1, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvInputPort2 + 7, "p2 start" },
- {"P2 Button 1", BIT_DIGITAL, DrvInputPort2 + 2, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvInputPort2 + 3, "p2 fire 2" },
- {"P2 Button 3", BIT_DIGITAL, DrvInputPort2 + 0, "p2 fire 3" },
- {"P2 Button 4", BIT_DIGITAL, DrvInputPort2 + 1, "p2 fire 4" },
- {"P2 Push", BIT_DIGITAL, DrvInputPort2 + 4, "p2 fire 5" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service", BIT_DIGITAL, DrvInputPort0 + 4, "service" },
- {"Diagnostics", BIT_DIGITAL, DrvInputPort5 + 7, "diag" },
-};
-
-STDINPUTINFO(Qgakumon)
-
-static struct BurnInputInfo PunkshotInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvInputPort0 + 0, "p1 coin" },
- {"P1 Up", BIT_DIGITAL, DrvInputPort1 + 2, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvInputPort1 + 3, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvInputPort1 + 0, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvInputPort1 + 1, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvInputPort1 + 4, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvInputPort1 + 5, "p1 fire 2" },
-
- {"P2 Coin", BIT_DIGITAL, DrvInputPort0 + 1, "p2 coin" },
- {"P2 Up", BIT_DIGITAL, DrvInputPort2 + 2, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvInputPort2 + 3, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvInputPort2 + 0, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvInputPort2 + 1, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvInputPort2 + 4, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvInputPort2 + 5, "p2 fire 2" },
-
- {"P3 Coin", BIT_DIGITAL, DrvInputPort0 + 2, "p3 coin" },
- {"P3 Up", BIT_DIGITAL, DrvInputPort3 + 2, "p3 up" },
- {"P3 Down", BIT_DIGITAL, DrvInputPort3 + 3, "p3 down" },
- {"P3 Left", BIT_DIGITAL, DrvInputPort3 + 0, "p3 left" },
- {"P3 Right", BIT_DIGITAL, DrvInputPort3 + 1, "p3 right" },
- {"P3 Button 1", BIT_DIGITAL, DrvInputPort3 + 4, "p3 fire 1" },
- {"P3 Button 2", BIT_DIGITAL, DrvInputPort3 + 5, "p3 fire 2" },
-
- {"P4 Coin", BIT_DIGITAL, DrvInputPort0 + 3, "p4 coin" },
- {"P4 Up", BIT_DIGITAL, DrvInputPort4 + 2, "p4 up" },
- {"P4 Down", BIT_DIGITAL, DrvInputPort4 + 3, "p4 down" },
- {"P4 Left", BIT_DIGITAL, DrvInputPort4 + 0, "p4 left" },
- {"P4 Right", BIT_DIGITAL, DrvInputPort4 + 1, "p4 right" },
- {"P4 Button 1", BIT_DIGITAL, DrvInputPort4 + 4, "p4 fire 1" },
- {"P4 Button 2", BIT_DIGITAL, DrvInputPort4 + 5, "p4 fire 2" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service 1", BIT_DIGITAL, DrvInputPort0 + 4, "service" },
- {"Service 2", BIT_DIGITAL, DrvInputPort0 + 5, "service2" },
- {"Service 3", BIT_DIGITAL, DrvInputPort0 + 6, "service3" },
- {"Service 4", BIT_DIGITAL, DrvInputPort0 + 7, "service4" },
- {"Dip A", BIT_DIPSWITCH, DrvDip + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDip + 1, "dip" },
- {"Dip C", BIT_DIPSWITCH, DrvDip + 2, "dip" },
-};
-
-STDINPUTINFO(Punkshot)
-
-static struct BurnInputInfo Punkshot2InputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvInputPort0 + 0, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvInputPort5 + 0, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvInputPort1 + 2, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvInputPort1 + 3, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvInputPort1 + 0, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvInputPort1 + 1, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvInputPort1 + 4, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvInputPort1 + 5, "p1 fire 2" },
-
- {"P2 Coin", BIT_DIGITAL, DrvInputPort0 + 1, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvInputPort5 + 1, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvInputPort2 + 2, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvInputPort2 + 3, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvInputPort2 + 0, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvInputPort2 + 1, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvInputPort2 + 4, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvInputPort2 + 5, "p2 fire 2" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service", BIT_DIGITAL, DrvInputPort0 + 4, "service" },
- {"Dip A", BIT_DIPSWITCH, DrvDip + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDip + 1, "dip" },
- {"Dip C", BIT_DIPSWITCH, DrvDip + 2, "dip" },
-};
-
-STDINPUTINFO(Punkshot2)
-
-static inline void DrvClearOpposites(UINT8* nJoystickInputs)
-{
- if ((*nJoystickInputs & 0x03) == 0x03) {
- *nJoystickInputs &= ~0x03;
- }
- if ((*nJoystickInputs & 0x0c) == 0x0c) {
- *nJoystickInputs &= ~0x0c;
- }
-}
-
-static inline void DrvMakeInputs()
-{
- // Reset Inputs
- DrvInput[0] = DrvInput[1] = DrvInput[2] = DrvInput[3] = DrvInput[4] = DrvInput[5] = 0x00;
-
- // Compile Digital Inputs
- for (int i = 0; i < 8; i++) {
- DrvInput[0] |= (DrvInputPort0[i] & 1) << i;
- DrvInput[1] |= (DrvInputPort1[i] & 1) << i;
- DrvInput[2] |= (DrvInputPort2[i] & 1) << i;
- DrvInput[3] |= (DrvInputPort3[i] & 1) << i;
- DrvInput[4] |= (DrvInputPort4[i] & 1) << i;
- DrvInput[5] |= (DrvInputPort5[i] & 1) << i;
- }
-
- // Clear Opposites
- DrvClearOpposites(&DrvInput[0]);
- DrvClearOpposites(&DrvInput[1]);
- DrvClearOpposites(&DrvInput[2]);
- DrvClearOpposites(&DrvInput[3]);
- DrvClearOpposites(&DrvInput[4]);
-}
-
-static inline void SsridersMakeInputs()
-{
- DrvMakeInputs();
-
- DrvInput[5] ^= 0xf6;
- //if (DrvInputPort5[7]) DrvInput[5] -= 0x80;
-}
-
-static struct BurnDIPInfo TmntDIPList[]=
-{
- // Default Values
- {0x21, 0xff, 0xff, 0xff, NULL },
- {0x22, 0xff, 0xff, 0x5e, NULL },
- {0x23, 0xff, 0xff, 0xff, NULL },
-
- // Dip 1
- {0 , 0xfe, 0 , 16 , "Coinage" },
- {0x21, 0x01, 0x0f, 0x00, "5 Coins 1 Credit" },
- {0x21, 0x01, 0x0f, 0x02, "4 Coins 1 Credit" },
- {0x21, 0x01, 0x0f, 0x05, "3 Coins 1 Credit" },
- {0x21, 0x01, 0x0f, 0x08, "2 Coins 1 Credit" },
- {0x21, 0x01, 0x0f, 0x04, "3 Coins 2 Credits" },
- {0x21, 0x01, 0x0f, 0x01, "4 Coins 3 Credits" },
- {0x21, 0x01, 0x0f, 0x0f, "1 Coin 1 Credit" },
- {0x21, 0x01, 0x0f, 0x03, "3 Coins 4 Credits" },
- {0x21, 0x01, 0x0f, 0x07, "2 Coins 3 Credits" },
- {0x21, 0x01, 0x0f, 0x0e, "1 Coin 2 Credits" },
- {0x21, 0x01, 0x0f, 0x06, "2 Coins 5 Credits" },
- {0x21, 0x01, 0x0f, 0x0d, "1 Coin 3 Credits" },
- {0x21, 0x01, 0x0f, 0x0c, "1 Coin 4 Credits" },
- {0x21, 0x01, 0x0f, 0x0b, "1 Coin 5 Credits" },
- {0x21, 0x01, 0x0f, 0x0a, "1 Coin 6 Credits" },
- {0x21, 0x01, 0x0f, 0x09, "1 Coin 7 Credits" },
-
- // Dip 2
- {0 , 0xfe, 0 , 4 , "Lives" },
- {0x22, 0x01, 0x03, 0x03, "1" },
- {0x22, 0x01, 0x03, 0x02, "2" },
- {0x22, 0x01, 0x03, 0x01, "3" },
- {0x22, 0x01, 0x03, 0x00, "5" },
-
- {0 , 0xfe, 0 , 4 , "Difficulty" },
- {0x22, 0x01, 0x60, 0x60, "Easy" },
- {0x22, 0x01, 0x60, 0x40, "Normal" },
- {0x22, 0x01, 0x60, 0x20, "Difficult" },
- {0x22, 0x01, 0x60, 0x00, "Very Difficult" },
-
- {0 , 0xfe, 0 , 2 , "Demo Sounds" },
- {0x22, 0x01, 0x80, 0x80, "Off" },
- {0x22, 0x01, 0x80, 0x00, "On" },
-
- // Dip 3
- {0 , 0xfe, 0 , 2 , "Flip Screen" },
- {0x23, 0x01, 0x01, 0x01, "Off" },
- {0x23, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2 , "Test Mode" },
- {0x23, 0x01, 0x04, 0x04, "Off" },
- {0x23, 0x01, 0x04, 0x00, "On" },
-};
-
-STDDIPINFO(Tmnt)
-
-static struct BurnDIPInfo Tmnt2pDIPList[]=
-{
- // Default Values
- {0x13, 0xff, 0xff, 0xff, NULL },
- {0x14, 0xff, 0xff, 0x5e, NULL },
- {0x15, 0xff, 0xff, 0xff, NULL },
-
- // Dip 1
- {0 , 0xfe, 0 , 16 , "Coin A" },
- {0x13, 0x01, 0x0f, 0x02, "4 Coins 1 Credit" },
- {0x13, 0x01, 0x0f, 0x05, "3 Coins 1 Credit" },
- {0x13, 0x01, 0x0f, 0x08, "2 Coins 1 Credit" },
- {0x13, 0x01, 0x0f, 0x04, "3 Coins 2 Credits" },
- {0x13, 0x01, 0x0f, 0x01, "4 Coins 3 Credits" },
- {0x13, 0x01, 0x0f, 0x0f, "1 Coin 1 Credit" },
- {0x13, 0x01, 0x0f, 0x03, "3 Coins 4 Credits" },
- {0x13, 0x01, 0x0f, 0x07, "2 Coins 3 Credits" },
- {0x13, 0x01, 0x0f, 0x0e, "1 Coin 2 Credits" },
- {0x13, 0x01, 0x0f, 0x06, "2 Coins 5 Credits" },
- {0x13, 0x01, 0x0f, 0x0d, "1 Coin 3 Credits" },
- {0x13, 0x01, 0x0f, 0x0c, "1 Coin 4 Credits" },
- {0x13, 0x01, 0x0f, 0x0b, "1 Coin 5 Credits" },
- {0x13, 0x01, 0x0f, 0x0a, "1 Coin 6 Credits" },
- {0x13, 0x01, 0x0f, 0x09, "1 Coin 7 Credits" },
- {0x13, 0x01, 0x0f, 0x00, "Free Play" },
-
- {0 , 0xfe, 0 , 15 , "Coin B" },
- {0x13, 0x01, 0xf0, 0x20, "4 Coins 1 Credit" },
- {0x13, 0x01, 0xf0, 0x50, "3 Coins 1 Credit" },
- {0x13, 0x01, 0xf0, 0x80, "2 Coins 1 Credit" },
- {0x13, 0x01, 0xf0, 0x40, "3 Coins 2 Credits" },
- {0x13, 0x01, 0xf0, 0x10, "4 Coins 3 Credits" },
- {0x13, 0x01, 0xf0, 0xf0, "1 Coin 1 Credit" },
- {0x13, 0x01, 0xf0, 0x30, "3 Coins 4 Credits" },
- {0x13, 0x01, 0xf0, 0x70, "2 Coins 3 Credits" },
- {0x13, 0x01, 0xf0, 0xe0, "1 Coin 2 Credits" },
- {0x13, 0x01, 0xf0, 0x60, "2 Coins 5 Credits" },
- {0x13, 0x01, 0xf0, 0xd0, "1 Coin 3 Credits" },
- {0x13, 0x01, 0xf0, 0xc0, "1 Coin 4 Credits" },
- {0x13, 0x01, 0xf0, 0xb0, "1 Coin 5 Credits" },
- {0x13, 0x01, 0xf0, 0xa0, "1 Coin 6 Credits" },
- {0x13, 0x01, 0xf0, 0x90, "1 Coin 7 Credits" },
-
- // Dip 2
- {0 , 0xfe, 0 , 4 , "Lives" },
- {0x14, 0x01, 0x03, 0x03, "1" },
- {0x14, 0x01, 0x03, 0x02, "2" },
- {0x14, 0x01, 0x03, 0x01, "3" },
- {0x14, 0x01, 0x03, 0x00, "5" },
-
- {0 , 0xfe, 0 , 4 , "Difficulty" },
- {0x14, 0x01, 0x60, 0x60, "Easy" },
- {0x14, 0x01, 0x60, 0x40, "Normal" },
- {0x14, 0x01, 0x60, 0x20, "Difficult" },
- {0x14, 0x01, 0x60, 0x00, "Very Difficult" },
-
- {0 , 0xfe, 0 , 2 , "Demo Sounds" },
- {0x14, 0x01, 0x80, 0x80, "Off" },
- {0x14, 0x01, 0x80, 0x00, "On" },
-
- // Dip 3
- {0 , 0xfe, 0 , 2 , "Flip Screen" },
- {0x15, 0x01, 0x01, 0x01, "Off" },
- {0x15, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2 , "Test Mode" },
- {0x15, 0x01, 0x04, 0x04, "Off" },
- {0x15, 0x01, 0x04, 0x00, "On" },
-};
-
-STDDIPINFO(Tmnt2p)
-
-static struct BurnDIPInfo MiaDIPList[]=
-{
- // Default Values
- {0x14, 0xff, 0xff, 0xff, NULL },
- {0x15, 0xff, 0xff, 0x56, NULL },
- {0x16, 0xff, 0xff, 0xff, NULL },
-
- // Dip 1
- {0 , 0xfe, 0 , 16 , "Coin A" },
- {0x14, 0x01, 0x0f, 0x02, "4 Coins 1 Credit" },
- {0x14, 0x01, 0x0f, 0x05, "3 Coins 1 Credit" },
- {0x14, 0x01, 0x0f, 0x08, "2 Coins 1 Credit" },
- {0x14, 0x01, 0x0f, 0x04, "3 Coins 2 Credits" },
- {0x14, 0x01, 0x0f, 0x01, "4 Coins 3 Credits" },
- {0x14, 0x01, 0x0f, 0x0f, "1 Coin 1 Credit" },
- {0x14, 0x01, 0x0f, 0x03, "3 Coins 4 Credits" },
- {0x14, 0x01, 0x0f, 0x07, "2 Coins 3 Credits" },
- {0x14, 0x01, 0x0f, 0x0e, "1 Coin 2 Credits" },
- {0x14, 0x01, 0x0f, 0x06, "2 Coins 5 Credits" },
- {0x14, 0x01, 0x0f, 0x0d, "1 Coin 3 Credits" },
- {0x14, 0x01, 0x0f, 0x0c, "1 Coin 4 Credits" },
- {0x14, 0x01, 0x0f, 0x0b, "1 Coin 5 Credits" },
- {0x14, 0x01, 0x0f, 0x0a, "1 Coin 6 Credits" },
- {0x14, 0x01, 0x0f, 0x09, "1 Coin 7 Credits" },
- {0x14, 0x01, 0x0f, 0x00, "Free Play" },
-
- {0 , 0xfe, 0 , 15 , "Coin B" },
- {0x14, 0x01, 0xf0, 0x20, "4 Coins 1 Credit" },
- {0x14, 0x01, 0xf0, 0x50, "3 Coins 1 Credit" },
- {0x14, 0x01, 0xf0, 0x80, "2 Coins 1 Credit" },
- {0x14, 0x01, 0xf0, 0x40, "3 Coins 2 Credits" },
- {0x14, 0x01, 0xf0, 0x10, "4 Coins 3 Credits" },
- {0x14, 0x01, 0xf0, 0xf0, "1 Coin 1 Credit" },
- {0x14, 0x01, 0xf0, 0x30, "3 Coins 4 Credits" },
- {0x14, 0x01, 0xf0, 0x70, "2 Coins 3 Credits" },
- {0x14, 0x01, 0xf0, 0xe0, "1 Coin 2 Credits" },
- {0x14, 0x01, 0xf0, 0x60, "2 Coins 5 Credits" },
- {0x14, 0x01, 0xf0, 0xd0, "1 Coin 3 Credits" },
- {0x14, 0x01, 0xf0, 0xc0, "1 Coin 4 Credits" },
- {0x14, 0x01, 0xf0, 0xb0, "1 Coin 5 Credits" },
- {0x14, 0x01, 0xf0, 0xa0, "1 Coin 6 Credits" },
- {0x14, 0x01, 0xf0, 0x90, "1 Coin 7 Credits" },
-
- // Dip 2
- {0 , 0xfe, 0 , 4 , "Lives" },
- {0x15, 0x01, 0x03, 0x03, "2" },
- {0x15, 0x01, 0x03, 0x02, "3" },
- {0x15, 0x01, 0x03, 0x01, "5" },
- {0x15, 0x01, 0x03, 0x00, "7" },
-
- {0 , 0xfe, 0 , 4 , "Bonus Life" },
- {0x15, 0x01, 0x18, 0x18, "30k 80k" },
- {0x15, 0x01, 0x18, 0x10, "50k 100k" },
- {0x15, 0x01, 0x18, 0x08, "50k" },
- {0x15, 0x01, 0x18, 0x00, "100k" },
-
- {0 , 0xfe, 0 , 4 , "Difficulty" },
- {0x15, 0x01, 0x60, 0x60, "Easy" },
- {0x15, 0x01, 0x60, 0x40, "Normal" },
- {0x15, 0x01, 0x60, 0x20, "Difficult" },
- {0x15, 0x01, 0x60, 0x00, "Very Difficult" },
-
- {0 , 0xfe, 0 , 2 , "Demo Sounds" },
- {0x15, 0x01, 0x80, 0x80, "Off" },
- {0x15, 0x01, 0x80, 0x00, "On" },
-
- // Dip 3
- {0 , 0xfe, 0 , 2 , "Flip Screen" },
- {0x16, 0x01, 0x01, 0x01, "Off" },
- {0x16, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2 , "VRAM Character Check" },
- {0x16, 0x01, 0x02, 0x02, "Off" },
- {0x16, 0x01, 0x02, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2 , "Test Mode" },
- {0x16, 0x01, 0x04, 0x04, "Off" },
- {0x16, 0x01, 0x04, 0x00, "On" },
-};
-
-STDDIPINFO(Mia)
-
-static struct BurnDIPInfo LgtnfghtDIPList[]=
-{
- {0x14, 0xff, 0xff, 0x5e, NULL },
- {0x15, 0xff, 0xff, 0xff, NULL },
- {0x16, 0xff, 0xff, 0xfd, NULL },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x14, 0x01, 0x03, 0x03, "2" },
- {0x14, 0x01, 0x03, 0x02, "3" },
- {0x14, 0x01, 0x03, 0x01, "5" },
- {0x14, 0x01, 0x03, 0x00, "7" },
-
- {0 , 0xfe, 0 , 4, "Bonus Life" },
- {0x14, 0x01, 0x18, 0x18, "100000 400000" },
- {0x14, 0x01, 0x18, 0x10, "150000 500000" },
- {0x14, 0x01, 0x18, 0x08, "200000" },
- {0x14, 0x01, 0x18, 0x00, "None" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x14, 0x01, 0x60, 0x60, "Easy" },
- {0x14, 0x01, 0x60, 0x40, "Medium" },
- {0x14, 0x01, 0x60, 0x20, "Hard" },
- {0x14, 0x01, 0x60, 0x00, "Hardest" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x14, 0x01, 0x80, 0x80, "Off" },
- {0x14, 0x01, 0x80, 0x00, "On" },
-
- {0 , 0xfe, 0 , 16, "Coin A" },
- {0x15, 0x01, 0x0f, 0x02, "4 Coins 1 Credit" },
- {0x15, 0x01, 0x0f, 0x05, "3 Coins 1 Credit" },
- {0x15, 0x01, 0x0f, 0x08, "2 Coins 1 Credit" },
- {0x15, 0x01, 0x0f, 0x04, "3 Coins 2 Credits" },
- {0x15, 0x01, 0x0f, 0x01, "4 Coins 3 Credits" },
- {0x15, 0x01, 0x0f, 0x0f, "1 Coin 1 Credit" },
- {0x15, 0x01, 0x0f, 0x03, "3 Coins 4 Credits" },
- {0x15, 0x01, 0x0f, 0x07, "2 Coins 3 Credits" },
- {0x15, 0x01, 0x0f, 0x0e, "1 Coin 2 Credits" },
- {0x15, 0x01, 0x0f, 0x06, "2 Coins 5 Credits" },
- {0x15, 0x01, 0x0f, 0x0d, "1 Coin 3 Credits" },
- {0x15, 0x01, 0x0f, 0x0c, "1 Coin 4 Credits" },
- {0x15, 0x01, 0x0f, 0x0b, "1 Coin 5 Credits" },
- {0x15, 0x01, 0x0f, 0x0a, "1 Coin 6 Credits" },
- {0x15, 0x01, 0x0f, 0x09, "1 Coin 7 Credits" },
- {0x15, 0x01, 0x0f, 0x00, "Free Play" },
-
- {0 , 0xfe, 0 , 16, "Coin B" },
- {0x15, 0x01, 0xf0, 0x20, "4 Coins 1 Credit" },
- {0x15, 0x01, 0xf0, 0x50, "3 Coins 1 Credit" },
- {0x15, 0x01, 0xf0, 0x80, "2 Coins 1 Credit" },
- {0x15, 0x01, 0xf0, 0x40, "3 Coins 2 Credits" },
- {0x15, 0x01, 0xf0, 0x10, "4 Coins 3 Credits" },
- {0x15, 0x01, 0xf0, 0xf0, "1 Coin 1 Credit" },
- {0x15, 0x01, 0xf0, 0x30, "3 Coins 4 Credits" },
- {0x15, 0x01, 0xf0, 0x70, "2 Coins 3 Credits" },
- {0x15, 0x01, 0xf0, 0xe0, "1 Coin 2 Credits" },
- {0x15, 0x01, 0xf0, 0x60, "2 Coins 5 Credits" },
- {0x15, 0x01, 0xf0, 0xd0, "1 Coin 3 Credits" },
- {0x15, 0x01, 0xf0, 0xc0, "1 Coin 4 Credits" },
- {0x15, 0x01, 0xf0, 0xb0, "1 Coin 5 Credits" },
- {0x15, 0x01, 0xf0, 0xa0, "1 Coin 6 Credits" },
- {0x15, 0x01, 0xf0, 0x90, "1 Coin 7 Credits" },
- {0x15, 0x01, 0xf0, 0x00, "No Coin B" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x16, 0x01, 0x01, 0x01, "Off" },
- {0x16, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Sound" },
- {0x16, 0x01, 0x02, 0x02, "Mono" },
- {0x16, 0x01, 0x02, 0x00, "Stereo" },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x16, 0x01, 0x04, 0x04, "Off" },
- {0x16, 0x01, 0x04, 0x00, "On" },
-};
-
-STDDIPINFO(Lgtnfght)
-
-static struct BurnDIPInfo PunkshotDIPList[]=
-{
- {0x21, 0xff, 0xff, 0xff, NULL },
- {0x22, 0xff, 0xff, 0x7f, NULL },
- {0x23, 0xff, 0xff, 0xf0, NULL },
-
- {0 , 0xfe, 0 , 16, "Coinage" },
- {0x21, 0x01, 0x0f, 0x00, "5 Coins 1 Credit" },
- {0x21, 0x01, 0x0f, 0x02, "4 Coins 1 Credit" },
- {0x21, 0x01, 0x0f, 0x05, "3 Coins 1 Credit" },
- {0x21, 0x01, 0x0f, 0x08, "2 Coins 1 Credit" },
- {0x21, 0x01, 0x0f, 0x04, "3 Coins 2 Credits" },
- {0x21, 0x01, 0x0f, 0x01, "4 Coins 3 Credits" },
- {0x21, 0x01, 0x0f, 0x0f, "1 Coin 1 Credit" },
- {0x21, 0x01, 0x0f, 0x03, "3 Coins 4 Credits" },
- {0x21, 0x01, 0x0f, 0x07, "2 Coins 3 Credits" },
- {0x21, 0x01, 0x0f, 0x0e, "1 Coin 2 Credits" },
- {0x21, 0x01, 0x0f, 0x06, "2 Coins 5 Credits" },
- {0x21, 0x01, 0x0f, 0x0d, "1 Coin 3 Credits" },
- {0x21, 0x01, 0x0f, 0x0c, "1 Coin 4 Credits" },
- {0x21, 0x01, 0x0f, 0x0b, "1 Coin 5 Credits" },
- {0x21, 0x01, 0x0f, 0x0a, "1 Coin 6 Credits" },
- {0x21, 0x01, 0x0f, 0x09, "1 Coin 7 Credits" },
-
- {0 , 0xfe, 0 , 2, "Continue" },
- {0x21, 0x01, 0x10, 0x10, "Normal" },
- {0x21, 0x01, 0x10, 0x00, "1 Coin" },
-
- {0 , 0xfe, 0 , 4, "Energy" },
- {0x22, 0x01, 0x03, 0x03, "30" },
- {0x22, 0x01, 0x03, 0x02, "40" },
- {0x22, 0x01, 0x03, 0x01, "50" },
- {0x22, 0x01, 0x03, 0x00, "60" },
-
- {0 , 0xfe, 0 , 4, "Period Length" },
- {0x22, 0x01, 0x0c, 0x0c, "2 Minutes" },
- {0x22, 0x01, 0x0c, 0x08, "3 Minutes" },
- {0x22, 0x01, 0x0c, 0x04, "4 Minutes" },
- {0x22, 0x01, 0x0c, 0x00, "5 Minutes" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x22, 0x01, 0x60, 0x60, "Easy" },
- {0x22, 0x01, 0x60, 0x40, "Medium" },
- {0x22, 0x01, 0x60, 0x20, "Hard" },
- {0x22, 0x01, 0x60, 0x00, "Hardest" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x22, 0x01, 0x80, 0x80, "Off" },
- {0x22, 0x01, 0x80, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x23, 0x01, 0x10, 0x10, "Off" },
- {0x23, 0x01, 0x10, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x23, 0x01, 0x40, 0x40, "Off" },
- {0x23, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Freeze" },
- {0x23, 0x01, 0x80, 0x80, "Off" },
- {0x23, 0x01, 0x80, 0x00, "On" },
-};
-
-STDDIPINFO(Punkshot)
-
-static struct BurnDIPInfo Punkshot2DIPList[]=
-{
- {0x12, 0xff, 0xff, 0xff, NULL },
- {0x13, 0xff, 0xff, 0x7f, NULL },
- {0x14, 0xff, 0xff, 0xf0, NULL },
-
- {0 , 0xfe, 0 , 16, "Coinage" },
- {0x12, 0x01, 0x0f, 0x00, "5 Coins 1 Credit" },
- {0x12, 0x01, 0x0f, 0x02, "4 Coins 1 Credit" },
- {0x12, 0x01, 0x0f, 0x05, "3 Coins 1 Credit" },
- {0x12, 0x01, 0x0f, 0x08, "2 Coins 1 Credit" },
- {0x12, 0x01, 0x0f, 0x04, "3 Coins 2 Credits" },
- {0x12, 0x01, 0x0f, 0x01, "4 Coins 3 Credits" },
- {0x12, 0x01, 0x0f, 0x0f, "1 Coin 1 Credit" },
- {0x12, 0x01, 0x0f, 0x03, "3 Coins 4 Credits" },
- {0x12, 0x01, 0x0f, 0x07, "2 Coins 3 Credits" },
- {0x12, 0x01, 0x0f, 0x0e, "1 Coin 2 Credits" },
- {0x12, 0x01, 0x0f, 0x06, "2 Coins 5 Credits" },
- {0x12, 0x01, 0x0f, 0x0d, "1 Coin 3 Credits" },
- {0x12, 0x01, 0x0f, 0x0c, "1 Coin 4 Credits" },
- {0x12, 0x01, 0x0f, 0x0b, "1 Coin 5 Credits" },
- {0x12, 0x01, 0x0f, 0x0a, "1 Coin 6 Credits" },
- {0x12, 0x01, 0x0f, 0x09, "1 Coin 7 Credits" },
-
- {0 , 0xfe, 0 , 2, "Continue" },
- {0x12, 0x01, 0x10, 0x10, "Normal" },
- {0x12, 0x01, 0x10, 0x00, "1 Coin" },
-
- {0 , 0xfe, 0 , 4, "Energy" },
- {0x13, 0x01, 0x03, 0x03, "40" },
- {0x13, 0x01, 0x03, 0x02, "50" },
- {0x13, 0x01, 0x03, 0x01, "60" },
- {0x13, 0x01, 0x03, 0x00, "70" },
-
- {0 , 0xfe, 0 , 4, "Period Length" },
- {0x13, 0x01, 0x0c, 0x0c, "3 Minutes" },
- {0x13, 0x01, 0x0c, 0x08, "4 Minutes" },
- {0x13, 0x01, 0x0c, 0x04, "5 Minutes" },
- {0x13, 0x01, 0x0c, 0x00, "6 Minutes" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x13, 0x01, 0x60, 0x60, "Easy" },
- {0x13, 0x01, 0x60, 0x40, "Medium" },
- {0x13, 0x01, 0x60, 0x20, "Hard" },
- {0x13, 0x01, 0x60, 0x00, "Hardest" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x13, 0x01, 0x80, 0x80, "Off" },
- {0x13, 0x01, 0x80, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x14, 0x01, 0x10, 0x10, "Off" },
- {0x14, 0x01, 0x10, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x14, 0x01, 0x40, 0x40, "Off" },
- {0x14, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Freeze" },
- {0x14, 0x01, 0x80, 0x80, "Off" },
- {0x14, 0x01, 0x80, 0x00, "On" },
-};
-
-STDDIPINFO(Punkshot2)
-
-static struct BurnDIPInfo PunkshotjDIPList[]=
-{
- {0x12, 0xff, 0xff, 0xff, NULL },
- {0x13, 0xff, 0xff, 0x7f, NULL },
- {0x14, 0xff, 0xff, 0xf0, NULL },
-
- {0 , 0xfe, 0 , 16, "Coin A" },
- {0x12, 0x01, 0x0f, 0x02, "4 Coins 1 Credit" },
- {0x12, 0x01, 0x0f, 0x05, "3 Coins 1 Credit" },
- {0x12, 0x01, 0x0f, 0x08, "2 Coins 1 Credit" },
- {0x12, 0x01, 0x0f, 0x04, "3 Coins 2 Credits" },
- {0x12, 0x01, 0x0f, 0x01, "4 Coins 3 Credits" },
- {0x12, 0x01, 0x0f, 0x0f, "1 Coin 1 Credit" },
- {0x12, 0x01, 0x0f, 0x03, "3 Coins 4 Credits" },
- {0x12, 0x01, 0x0f, 0x07, "2 Coins 3 Credits" },
- {0x12, 0x01, 0x0f, 0x0e, "1 Coin 2 Credits" },
- {0x12, 0x01, 0x0f, 0x06, "2 Coins 5 Credits" },
- {0x12, 0x01, 0x0f, 0x0d, "1 Coin 3 Credits" },
- {0x12, 0x01, 0x0f, 0x0c, "1 Coin 4 Credits" },
- {0x12, 0x01, 0x0f, 0x0b, "1 Coin 5 Credits" },
- {0x12, 0x01, 0x0f, 0x0a, "1 Coin 6 Credits" },
- {0x12, 0x01, 0x0f, 0x09, "1 Coin 7 Credits" },
- {0x12, 0x01, 0x0f, 0x00, "Free Play" },
-
- {0 , 0xfe, 0 , 16, "Coin B" },
- {0x12, 0x01, 0xf0, 0x20, "4 Coins 1 Credit" },
- {0x12, 0x01, 0xf0, 0x50, "3 Coins 1 Credit" },
- {0x12, 0x01, 0xf0, 0x80, "2 Coins 1 Credit" },
- {0x12, 0x01, 0xf0, 0x40, "3 Coins 2 Credits" },
- {0x12, 0x01, 0xf0, 0x10, "4 Coins 3 Credits" },
- {0x12, 0x01, 0xf0, 0xf0, "1 Coin 1 Credit" },
- {0x12, 0x01, 0xf0, 0x30, "3 Coins 4 Credits" },
- {0x12, 0x01, 0xf0, 0x70, "2 Coins 3 Credits" },
- {0x12, 0x01, 0xf0, 0xe0, "1 Coin 2 Credits" },
- {0x12, 0x01, 0xf0, 0x60, "2 Coins 5 Credits" },
- {0x12, 0x01, 0xf0, 0xd0, "1 Coin 3 Credits" },
- {0x12, 0x01, 0xf0, 0xc0, "1 Coin 4 Credits" },
- {0x12, 0x01, 0xf0, 0xb0, "1 Coin 5 Credits" },
- {0x12, 0x01, 0xf0, 0xa0, "1 Coin 6 Credits" },
- {0x12, 0x01, 0xf0, 0x90, "1 Coin 7 Credits" },
- {0x12, 0x01, 0xf0, 0x00, "No Coin B" },
-
- {0 , 0xfe, 0 , 4, "Period Time" },
- {0x13, 0x01, 0x0c, 0x0c, "1 Minute" },
- {0x13, 0x01, 0x0c, 0x08, "2 Minutes" },
- {0x13, 0x01, 0x0c, 0x04, "3 Minutes" },
- {0x13, 0x01, 0x0c, 0x00, "4 Minutes" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x13, 0x01, 0x60, 0x60, "Easy" },
- {0x13, 0x01, 0x60, 0x40, "Medium" },
- {0x13, 0x01, 0x60, 0x20, "Hard" },
- {0x13, 0x01, 0x60, 0x00, "Hardest" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x13, 0x01, 0x80, 0x80, "Off" },
- {0x13, 0x01, 0x80, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x14, 0x01, 0x10, 0x10, "Off" },
- {0x14, 0x01, 0x10, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x14, 0x01, 0x40, 0x40, "Off" },
- {0x14, 0x01, 0x40, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Freeze" },
- {0x14, 0x01, 0x80, 0x80, "Off" },
- {0x14, 0x01, 0x80, 0x00, "On" },
-};
-
-STDDIPINFO(Punkshotj)
-
-static struct BurnRomInfo TmntRomDesc[] = {
- { "963-x23.j17", 0x020000, 0xa9549004, BRF_ESS | BRF_PRG }, // 0 68000 Program Code
- { "963-x24.k17", 0x020000, 0xe5cc9067, BRF_ESS | BRF_PRG }, // 1
- { "963-x21.j15", 0x010000, 0x5789cf92, BRF_ESS | BRF_PRG }, // 2
- { "963-x22.k15", 0x010000, 0x0a74e277, BRF_ESS | BRF_PRG }, // 3
-
- { "963e20.g13", 0x008000, 0x1692a6d6, BRF_ESS | BRF_PRG }, // 4 Z80 Program
-
- { "963a28.h27", 0x080000, 0xdb4769a8, BRF_GRA }, // 5 Tiles
- { "963a29.k27", 0x080000, 0x8069cd2e, BRF_GRA }, // 6
-
- { "963a17.h4", 0x080000, 0xb5239a44, BRF_GRA }, // 7 Sprites
- { "963a18.h6", 0x080000, 0xdd51adef, BRF_GRA }, // 8
- { "963a15.k4", 0x080000, 0x1f324eed, BRF_GRA }, // 9
- { "963a16.k6", 0x080000, 0xd4bd9984, BRF_GRA }, // 10
-
- { "963a30.g7", 0x000100, 0xabd82680, BRF_GRA }, // 11 PROMs
- { "963a31.g19", 0x000100, 0xf8004a1c, BRF_GRA }, // 12
-
- { "963a26.c13", 0x020000, 0xe2ac3063, BRF_SND }, // 13 K007232 Samples
-
- { "963a27.d18", 0x020000, 0x2dfd674b, BRF_SND }, // 14 UP7759C Samples
-
- { "963a25.d5", 0x080000, 0xfca078c7, BRF_SND }, // 15 Title Music Sample
-};
-
-STD_ROM_PICK(Tmnt)
-STD_ROM_FN(Tmnt)
-
-static struct BurnRomInfo TmntuRomDesc[] = {
- { "963-r23.j17", 0x020000, 0xa7f61195, BRF_ESS | BRF_PRG }, // 0 68000 Program Code
- { "963-r24.k17", 0x020000, 0x661e056a, BRF_ESS | BRF_PRG }, // 1
- { "963-r21.j15", 0x010000, 0xde047bb6, BRF_ESS | BRF_PRG }, // 2
- { "963-r22.k15", 0x010000, 0xd86a0888, BRF_ESS | BRF_PRG }, // 3
-
- { "963e20.g13", 0x008000, 0x1692a6d6, BRF_ESS | BRF_PRG }, // 4 Z80 Program
-
- { "963a28.h27", 0x080000, 0xdb4769a8, BRF_GRA }, // 5 Tiles
- { "963a29.k27", 0x080000, 0x8069cd2e, BRF_GRA }, // 6
-
- { "963a17.h4", 0x080000, 0xb5239a44, BRF_GRA }, // 7 Sprites
- { "963a18.h6", 0x080000, 0xdd51adef, BRF_GRA }, // 8
- { "963a15.k4", 0x080000, 0x1f324eed, BRF_GRA }, // 9
- { "963a16.k6", 0x080000, 0xd4bd9984, BRF_GRA }, // 10
-
- { "963a30.g7", 0x000100, 0xabd82680, BRF_GRA }, // 11 PROMs
- { "963a31.g19", 0x000100, 0xf8004a1c, BRF_GRA }, // 12
-
- { "963a26.c13", 0x020000, 0xe2ac3063, BRF_SND }, // 13 K007232 Samples
-
- { "963a27.d18", 0x020000, 0x2dfd674b, BRF_SND }, // 14 UP7759C Samples
-
- { "963a25.d5", 0x080000, 0xfca078c7, BRF_SND }, // 15 Title Music Sample
-};
-
-STD_ROM_PICK(Tmntu)
-STD_ROM_FN(Tmntu)
-
-static struct BurnRomInfo TmntuaRomDesc[] = {
- { "963-j23.j17", 0x020000, 0xf77314e2, BRF_ESS | BRF_PRG }, // 0 68000 Program Code
- { "963-j24.k17", 0x020000, 0x47f662d3, BRF_ESS | BRF_PRG }, // 1
- { "963-j21.j15", 0x010000, 0x7bee9fe8, BRF_ESS | BRF_PRG }, // 2
- { "963-j22.k15", 0x010000, 0x2efed09f, BRF_ESS | BRF_PRG }, // 3
-
- { "963e20.g13", 0x008000, 0x1692a6d6, BRF_ESS | BRF_PRG }, // 4 Z80 Program
-
- { "963a28.h27", 0x080000, 0xdb4769a8, BRF_GRA }, // 5 Tiles
- { "963a29.k27", 0x080000, 0x8069cd2e, BRF_GRA }, // 6
-
- { "963a17.h4", 0x080000, 0xb5239a44, BRF_GRA }, // 7 Sprites
- { "963a18.h6", 0x080000, 0xdd51adef, BRF_GRA }, // 8
- { "963a15.k4", 0x080000, 0x1f324eed, BRF_GRA }, // 9
- { "963a16.k6", 0x080000, 0xd4bd9984, BRF_GRA }, // 10
-
- { "963a30.g7", 0x000100, 0xabd82680, BRF_GRA }, // 11 PROMs
- { "963a31.g19", 0x000100, 0xf8004a1c, BRF_GRA }, // 12
-
- { "963a26.c13", 0x020000, 0xe2ac3063, BRF_SND }, // 13 K007232 Samples
-
- { "963a27.d18", 0x020000, 0x2dfd674b, BRF_SND }, // 14 UP7759C Samples
-
- { "963a25.d5", 0x080000, 0xfca078c7, BRF_SND }, // 15 Title Music Sample
-};
-
-STD_ROM_PICK(Tmntua)
-STD_ROM_FN(Tmntua)
-
-static struct BurnRomInfo TmntubRomDesc[] = {
- { "963-h23.j17", 0x020000, 0x718086e1, BRF_ESS | BRF_PRG }, // 0 68000 Program Code
- { "963-h24.k17", 0x020000, 0x2f7d66e1, BRF_ESS | BRF_PRG }, // 1
- { "963-h21.j15", 0x010000, 0x1944641e, BRF_ESS | BRF_PRG }, // 2
- { "963-h22.k15", 0x010000, 0x50ce5512, BRF_ESS | BRF_PRG }, // 3
-
- { "963e20.g13", 0x008000, 0x1692a6d6, BRF_ESS | BRF_PRG }, // 4 Z80 Program
-
- { "963a28.h27", 0x080000, 0xdb4769a8, BRF_GRA }, // 5 Tiles
- { "963a29.k27", 0x080000, 0x8069cd2e, BRF_GRA }, // 6
-
- { "963a17.h4", 0x080000, 0xb5239a44, BRF_GRA }, // 7 Sprites
- { "963a18.h6", 0x080000, 0xdd51adef, BRF_GRA }, // 8
- { "963a15.k4", 0x080000, 0x1f324eed, BRF_GRA }, // 9
- { "963a16.k6", 0x080000, 0xd4bd9984, BRF_GRA }, // 10
-
- { "963a30.g7", 0x000100, 0xabd82680, BRF_GRA }, // 11 PROMs
- { "963a31.g19", 0x000100, 0xf8004a1c, BRF_GRA }, // 12
-
- { "963a26.c13", 0x020000, 0xe2ac3063, BRF_SND }, // 13 K007232 Samples
-
- { "963a27.d18", 0x020000, 0x2dfd674b, BRF_SND }, // 14 UP7759C Samples
-
- { "963a25.d5", 0x080000, 0xfca078c7, BRF_SND }, // 15 Title Music Sample
-};
-
-STD_ROM_PICK(Tmntub)
-STD_ROM_FN(Tmntub)
-
-static struct BurnRomInfo TmhtRomDesc[] = {
- { "963-f23.j17", 0x020000, 0x9cb5e461, BRF_ESS | BRF_PRG }, // 0 68000 Program Code
- { "963-f24.k17", 0x020000, 0x2d902fab, BRF_ESS | BRF_PRG }, // 1
- { "963-f21.j15", 0x010000, 0x9fa25378, BRF_ESS | BRF_PRG }, // 2
- { "963-f22.k15", 0x010000, 0x2127ee53, BRF_ESS | BRF_PRG }, // 3
-
- { "963e20.g13", 0x008000, 0x1692a6d6, BRF_ESS | BRF_PRG }, // 4 Z80 Program
-
- { "963a28.h27", 0x080000, 0xdb4769a8, BRF_GRA }, // 5 Tiles
- { "963a29.k27", 0x080000, 0x8069cd2e, BRF_GRA }, // 6
-
- { "963a17.h4", 0x080000, 0xb5239a44, BRF_GRA }, // 7 Sprites
- { "963a18.h6", 0x080000, 0xdd51adef, BRF_GRA }, // 8
- { "963a15.k4", 0x080000, 0x1f324eed, BRF_GRA }, // 9
- { "963a16.k6", 0x080000, 0xd4bd9984, BRF_GRA }, // 10
-
- { "963a30.g7", 0x000100, 0xabd82680, BRF_GRA }, // 11 PROMs
- { "963a31.g19", 0x000100, 0xf8004a1c, BRF_GRA }, // 12
-
- { "963a26.c13", 0x020000, 0xe2ac3063, BRF_SND }, // 13 K007232 Samples
-
- { "963a27.d18", 0x020000, 0x2dfd674b, BRF_SND }, // 14 UP7759C Samples
-
- { "963a25.d5", 0x080000, 0xfca078c7, BRF_SND }, // 15 Title Music Sample
-};
-
-STD_ROM_PICK(Tmht)
-STD_ROM_FN(Tmht)
-
-static struct BurnRomInfo TmhtaRomDesc[] = {
- { "963-s23.j17", 0x020000, 0xb5af7eee, BRF_ESS | BRF_PRG }, // 0 68000 Program Code
- { "963-s24.k17", 0x020000, 0xbcb8ce8b, BRF_ESS | BRF_PRG }, // 1
- { "963-s21.j15", 0x010000, 0x0b88bfa6, BRF_ESS | BRF_PRG }, // 2
- { "963-s22.k15", 0x010000, 0x44ce6d4b, BRF_ESS | BRF_PRG }, // 3
-
- { "963e20.g13", 0x008000, 0x1692a6d6, BRF_ESS | BRF_PRG }, // 4 Z80 Program
-
- { "963a28.h27", 0x080000, 0xdb4769a8, BRF_GRA }, // 5 Tiles
- { "963a29.k27", 0x080000, 0x8069cd2e, BRF_GRA }, // 6
-
- { "963a17.h4", 0x080000, 0xb5239a44, BRF_GRA }, // 7 Sprites
- { "963a18.h6", 0x080000, 0xdd51adef, BRF_GRA }, // 8
- { "963a15.k4", 0x080000, 0x1f324eed, BRF_GRA }, // 9
- { "963a16.k6", 0x080000, 0xd4bd9984, BRF_GRA }, // 10
-
- { "963a30.g7", 0x000100, 0xabd82680, BRF_GRA }, // 11 PROMs
- { "963a31.g19", 0x000100, 0xf8004a1c, BRF_GRA }, // 12
-
- { "963a26.c13", 0x020000, 0xe2ac3063, BRF_SND }, // 13 K007232 Samples
-
- { "963a27.d18", 0x020000, 0x2dfd674b, BRF_SND }, // 14 UP7759C Samples
-
- { "963a25.d5", 0x080000, 0xfca078c7, BRF_SND }, // 15 Title Music Sample
-};
-
-STD_ROM_PICK(Tmhta)
-STD_ROM_FN(Tmhta)
-
-static struct BurnRomInfo TmhtbRomDesc[] = {
- { "unk3.i17", 0x020000, 0x537eb047, BRF_ESS | BRF_PRG }, // 0 68000 Program Code
- { "unk4.k17", 0x020000, 0x5afae564, BRF_ESS | BRF_PRG }, // 1
- { "unk2.j15", 0x010000, 0xee34de05, BRF_ESS | BRF_PRG }, // 2
- { "unk5.k15", 0x010000, 0x5ef58d4e, BRF_ESS | BRF_PRG }, // 3
-
- { "963e20.g13", 0x008000, 0x1692a6d6, BRF_ESS | BRF_PRG }, // 4 Z80 Program
-
- { "963a28.h27", 0x080000, 0xdb4769a8, BRF_GRA }, // 5 Tiles
- { "963a29.k27", 0x080000, 0x8069cd2e, BRF_GRA }, // 6
-
- { "963a17.h4", 0x080000, 0xb5239a44, BRF_GRA }, // 7 Sprites
- { "963a18.h6", 0x080000, 0xdd51adef, BRF_GRA }, // 8
- { "963a15.k4", 0x080000, 0x1f324eed, BRF_GRA }, // 9
- { "963a16.k6", 0x080000, 0xd4bd9984, BRF_GRA }, // 10
-
- { "963a30.g7", 0x000100, 0xabd82680, BRF_GRA }, // 11 PROMs
- { "963a31.g19", 0x000100, 0xf8004a1c, BRF_GRA }, // 12
-
- { "963a26.c13", 0x020000, 0xe2ac3063, BRF_SND }, // 13 K007232 Samples
-
- { "963a27.d18", 0x020000, 0x2dfd674b, BRF_SND }, // 14 UP7759C Samples
-
- { "963a25.d5", 0x080000, 0xfca078c7, BRF_SND }, // 15 Title Music Sample
-};
-
-STD_ROM_PICK(Tmhtb)
-STD_ROM_FN(Tmhtb)
-
-static struct BurnRomInfo TmntjRomDesc[] = {
- { "963_223.j17", 0x020000, 0x0d34a5ff, BRF_ESS | BRF_PRG }, // 0 68000 Program Code
- { "963_224.k17", 0x020000, 0x2fd453f2, BRF_ESS | BRF_PRG }, // 1
- { "963_221.j15", 0x010000, 0xfa8e25fd, BRF_ESS | BRF_PRG }, // 2
- { "963_222.k15", 0x010000, 0xca437a4f, BRF_ESS | BRF_PRG }, // 3
-
- { "963e20.g13", 0x008000, 0x1692a6d6, BRF_ESS | BRF_PRG }, // 4 Z80 Program
-
- { "963a28.h27", 0x080000, 0xdb4769a8, BRF_GRA }, // 5 Tiles
- { "963a29.k27", 0x080000, 0x8069cd2e, BRF_GRA }, // 6
-
- { "963a17.h4", 0x080000, 0xb5239a44, BRF_GRA }, // 7 Sprites
- { "963a18.h6", 0x080000, 0xdd51adef, BRF_GRA }, // 8
- { "963a15.k4", 0x080000, 0x1f324eed, BRF_GRA }, // 9
- { "963a16.k6", 0x080000, 0xd4bd9984, BRF_GRA }, // 10
-
- { "963a30.g7", 0x000100, 0xabd82680, BRF_GRA }, // 11 PROMs
- { "963a31.g19", 0x000100, 0xf8004a1c, BRF_GRA }, // 12
-
- { "963a26.c13", 0x020000, 0xe2ac3063, BRF_SND }, // 13 K007232 Samples
-
- { "963a27.d18", 0x020000, 0x2dfd674b, BRF_SND }, // 14 UP7759C Samples
-
- { "963a25.d5", 0x080000, 0xfca078c7, BRF_SND }, // 15 Title Music Sample
-};
-
-STD_ROM_PICK(Tmntj)
-STD_ROM_FN(Tmntj)
-
-static struct BurnRomInfo TmntaRomDesc[] = {
- { "tmnt j17.bin", 0x020000, 0x00819687, BRF_ESS | BRF_PRG }, // 0 68000 Program Code
- { "tmnt k17.bin", 0x020000, 0x6930e085, BRF_ESS | BRF_PRG }, // 1
- { "tmnt j15.bin", 0x010000, 0xfd1e2e01, BRF_ESS | BRF_PRG }, // 2
- { "tmnt k15.bin", 0x010000, 0xb01eea79, BRF_ESS | BRF_PRG }, // 3
-
- { "963e20.g13", 0x008000, 0x1692a6d6, BRF_ESS | BRF_PRG }, // 4 Z80 Program
-
- { "963a28.h27", 0x080000, 0xdb4769a8, BRF_GRA }, // 5 Tiles
- { "963a29.k27", 0x080000, 0x8069cd2e, BRF_GRA }, // 6
-
- { "963a17.h4", 0x080000, 0xb5239a44, BRF_GRA }, // 7 Sprites
- { "963a18.h6", 0x080000, 0xdd51adef, BRF_GRA }, // 8
- { "963a15.k4", 0x080000, 0x1f324eed, BRF_GRA }, // 9
- { "963a16.k6", 0x080000, 0xd4bd9984, BRF_GRA }, // 10
-
- { "963a30.g7", 0x000100, 0xabd82680, BRF_GRA }, // 11 PROMs
- { "963a31.g19", 0x000100, 0xf8004a1c, BRF_GRA }, // 12
-
- { "963a26.c13", 0x020000, 0xe2ac3063, BRF_SND }, // 13 K007232 Samples
-
- { "963a27.d18", 0x020000, 0x2dfd674b, BRF_SND }, // 14 UP7759C Samples
-
- { "963a25.d5", 0x080000, 0xfca078c7, BRF_SND }, // 15 Title Music Sample
-};
-
-STD_ROM_PICK(Tmnta)
-STD_ROM_FN(Tmnta)
-
-static struct BurnRomInfo Tmht2pRomDesc[] = {
- { "963-u23.j17", 0x020000, 0x58bec748, BRF_ESS | BRF_PRG }, // 0 68000 Program Code
- { "963-u24.k17", 0x020000, 0xdce87c8d, BRF_ESS | BRF_PRG }, // 1
- { "963-u21.j15", 0x010000, 0xabce5ead, BRF_ESS | BRF_PRG }, // 2
- { "963-u22.k15", 0x010000, 0x4ecc8d6b, BRF_ESS | BRF_PRG }, // 3
-
- { "963e20.g13", 0x008000, 0x1692a6d6, BRF_ESS | BRF_PRG }, // 4 Z80 Program
-
- { "963a28.h27", 0x080000, 0xdb4769a8, BRF_GRA }, // 5 Tiles
- { "963a29.k27", 0x080000, 0x8069cd2e, BRF_GRA }, // 6
-
- { "963a17.h4", 0x080000, 0xb5239a44, BRF_GRA }, // 7 Sprites
- { "963a18.h6", 0x080000, 0xdd51adef, BRF_GRA }, // 8
- { "963a15.k4", 0x080000, 0x1f324eed, BRF_GRA }, // 9
- { "963a16.k6", 0x080000, 0xd4bd9984, BRF_GRA }, // 10
-
- { "963a30.g7", 0x000100, 0xabd82680, BRF_GRA }, // 11 PROMs
- { "963a31.g19", 0x000100, 0xf8004a1c, BRF_GRA }, // 12
-
- { "963a26.c13", 0x020000, 0xe2ac3063, BRF_SND }, // 13 K007232 Samples
-
- { "963a27.d18", 0x020000, 0x2dfd674b, BRF_SND }, // 14 UP7759C Samples
-
- { "963a25.d5", 0x080000, 0xfca078c7, BRF_SND }, // 15 Title Music Sample
-};
-
-STD_ROM_PICK(Tmht2p)
-STD_ROM_FN(Tmht2p)
-
-static struct BurnRomInfo Tmht2paRomDesc[] = {
- { "963-_23.j17", 0x020000, 0x8698061a, BRF_ESS | BRF_PRG }, // 0 68000 Program Code
- { "963-_24.k17", 0x020000, 0x4036c075, BRF_ESS | BRF_PRG }, // 1
- { "963-_21.j15", 0x010000, 0xddcc979c, BRF_ESS | BRF_PRG }, // 2
- { "963-_22.k15", 0x010000, 0x71a38d27, BRF_ESS | BRF_PRG }, // 3
-
- { "963e20.g13", 0x008000, 0x1692a6d6, BRF_ESS | BRF_PRG }, // 4 Z80 Program
-
- { "963a28.h27", 0x080000, 0xdb4769a8, BRF_GRA }, // 5 Tiles
- { "963a29.k27", 0x080000, 0x8069cd2e, BRF_GRA }, // 6
-
- { "963a17.h4", 0x080000, 0xb5239a44, BRF_GRA }, // 7 Sprites
- { "963a18.h6", 0x080000, 0xdd51adef, BRF_GRA }, // 8
- { "963a15.k4", 0x080000, 0x1f324eed, BRF_GRA }, // 9
- { "963a16.k6", 0x080000, 0xd4bd9984, BRF_GRA }, // 10
-
- { "963a30.g7", 0x000100, 0xabd82680, BRF_GRA }, // 11 PROMs
- { "963a31.g19", 0x000100, 0xf8004a1c, BRF_GRA }, // 12
-
- { "963a26.c13", 0x020000, 0xe2ac3063, BRF_SND }, // 13 K007232 Samples
-
- { "963a27.d18", 0x020000, 0x2dfd674b, BRF_SND }, // 14 UP7759C Samples
-
- { "963a25.d5", 0x080000, 0xfca078c7, BRF_SND }, // 15 Title Music Sample
-};
-
-STD_ROM_PICK(Tmht2pa)
-STD_ROM_FN(Tmht2pa)
-
-static struct BurnRomInfo Tmnt2pjRomDesc[] = {
- { "963-123.j17", 0x020000, 0x6a3527c9, BRF_ESS | BRF_PRG }, // 0 68000 Program Code
- { "963-124.k17", 0x020000, 0x2c4bfa15, BRF_ESS | BRF_PRG }, // 1
- { "963-121.j15", 0x010000, 0x4181b733, BRF_ESS | BRF_PRG }, // 2
- { "963-122.k15", 0x010000, 0xc64eb5ff, BRF_ESS | BRF_PRG }, // 3
-
- { "963e20.g13", 0x008000, 0x1692a6d6, BRF_ESS | BRF_PRG }, // 4 Z80 Program
-
- { "963a28.h27", 0x080000, 0xdb4769a8, BRF_GRA }, // 5 Tiles
- { "963a29.k27", 0x080000, 0x8069cd2e, BRF_GRA }, // 6
-
- { "963a17.h4", 0x080000, 0xb5239a44, BRF_GRA }, // 7 Sprites
- { "963a18.h6", 0x080000, 0xdd51adef, BRF_GRA }, // 8
- { "963a15.k4", 0x080000, 0x1f324eed, BRF_GRA }, // 9
- { "963a16.k6", 0x080000, 0xd4bd9984, BRF_GRA }, // 10
-
- { "963a30.g7", 0x000100, 0xabd82680, BRF_GRA }, // 11 PROMs
- { "963a31.g19", 0x000100, 0xf8004a1c, BRF_GRA }, // 12
-
- { "963a26.c13", 0x020000, 0xe2ac3063, BRF_SND }, // 13 K007232 Samples
-
- { "963a27.d18", 0x020000, 0x2dfd674b, BRF_SND }, // 14 UP7759C Samples
-
- { "963a25.d5", 0x080000, 0xfca078c7, BRF_SND }, // 15 Title Music Sample
-};
-
-STD_ROM_PICK(Tmnt2pj)
-STD_ROM_FN(Tmnt2pj)
-
-static struct BurnRomInfo Tmnt2poRomDesc[] = {
- { "tmnt123.j17", 0x020000, 0x2d905183, BRF_ESS | BRF_PRG }, // 0 68000 Program Code
- { "tmnt124.k17", 0x020000, 0xe0125352, BRF_ESS | BRF_PRG }, // 1
- { "tmnt21.j15", 0x010000, 0x12deeafb, BRF_ESS | BRF_PRG }, // 2
- { "tmnt22.k15", 0x010000, 0xaec4f1c3, BRF_ESS | BRF_PRG }, // 3
-
- { "963e20.g13", 0x008000, 0x1692a6d6, BRF_ESS | BRF_PRG }, // 4 Z80 Program
-
- { "963a28.h27", 0x080000, 0xdb4769a8, BRF_GRA }, // 5 Tiles
- { "963a29.k27", 0x080000, 0x8069cd2e, BRF_GRA }, // 6
-
- { "963a17.h4", 0x080000, 0xb5239a44, BRF_GRA }, // 7 Sprites
- { "963a18.h6", 0x080000, 0xdd51adef, BRF_GRA }, // 8
- { "963a15.k4", 0x080000, 0x1f324eed, BRF_GRA }, // 9
- { "963a16.k6", 0x080000, 0xd4bd9984, BRF_GRA }, // 10
-
- { "963a30.g7", 0x000100, 0xabd82680, BRF_GRA }, // 11 PROMs
- { "963a31.g19", 0x000100, 0xf8004a1c, BRF_GRA }, // 12
-
- { "963a26.c13", 0x020000, 0xe2ac3063, BRF_SND }, // 13 K007232 Samples
-
- { "963a27.d18", 0x020000, 0x2dfd674b, BRF_SND }, // 14 UP7759C Samples
-
- { "963a25.d5", 0x080000, 0xfca078c7, BRF_SND }, // 15 Title Music Sample
-};
-
-STD_ROM_PICK(Tmnt2po)
-STD_ROM_FN(Tmnt2po)
-
-static struct BurnRomInfo MiaRomDesc[] = {
- { "808t20.h17", 0x020000, 0x6f0acb1d, BRF_ESS | BRF_PRG }, // 0 68000 Program Code
- { "808t21.j17", 0x020000, 0x42a30416, BRF_ESS | BRF_PRG }, // 1
-
- { "808e03.f4", 0x008000, 0x3d93a7cd, BRF_ESS | BRF_PRG }, // 2 Z80 Program
-
- { "808e12.f28", 0x010000, 0xd62f1fde, BRF_GRA }, // 3 Tiles
- { "808e13.h28", 0x010000, 0x1fa708f4, BRF_GRA }, // 4
- { "808e22.i28", 0x010000, 0x73d758f6, BRF_GRA }, // 5
- { "808e23.k28", 0x010000, 0x8ff08b21, BRF_GRA }, // 6
-
- { "808d17.j4", 0x080000, 0xd1299082, BRF_GRA }, // 7 Sprites
- { "808d15.h4", 0x080000, 0x2b22a6b6, BRF_GRA }, // 8
-
- { "808a18.f16", 0x000100, 0xeb95aede, BRF_GRA }, // 9 PROMs
-
- { "808d01.d4", 0x020000, 0xfd4d37c0, BRF_SND }, // 10 K007232 Samples
-};
-
-STD_ROM_PICK(Mia)
-STD_ROM_FN(Mia)
-
-static struct BurnRomInfo Mia2RomDesc[] = {
- { "808s20.h17", 0x020000, 0xcaa2897f, BRF_ESS | BRF_PRG }, // 0 68000 Program Code
- { "808s21.j17", 0x020000, 0x3d892ffb, BRF_ESS | BRF_PRG }, // 1
-
- { "808e03.f4", 0x008000, 0x3d93a7cd, BRF_ESS | BRF_PRG }, // 2 Z80 Program
-
- { "808e12.f28", 0x010000, 0xd62f1fde, BRF_GRA }, // 3 Tiles
- { "808e13.h28", 0x010000, 0x1fa708f4, BRF_GRA }, // 4
- { "808e22.i28", 0x010000, 0x73d758f6, BRF_GRA }, // 5
- { "808e23.k28", 0x010000, 0x8ff08b21, BRF_GRA }, // 6
-
- { "808d17.j4", 0x080000, 0xd1299082, BRF_GRA }, // 7 Sprites
- { "808d15.h4", 0x080000, 0x2b22a6b6, BRF_GRA }, // 8
-
- { "808a18.f16", 0x000100, 0xeb95aede, BRF_GRA }, // 9 PROMs
-
- { "808d01.d4", 0x020000, 0xfd4d37c0, BRF_SND }, // 10 K007232 Samples
-};
-
-STD_ROM_PICK(Mia2)
-STD_ROM_FN(Mia2)
-
-static struct BurnRomInfo CuebrickRomDesc[] = {
- { "903d25.g12", 0x010000, 0x8d575663, BRF_ESS | BRF_PRG }, // 0 68000 Program Code
- { "903d24.f12", 0x010000, 0x2973625d, BRF_ESS | BRF_PRG }, // 1
-
- { "903c29.k21", 0x010000, 0xfada986d, BRF_GRA }, // 2 Tiles
- { "903c27.k17", 0x010000, 0x5bd4b8e1, BRF_GRA }, // 3
- { "903c28.k19", 0x010000, 0x80d2bfaf, BRF_GRA }, // 4
- { "903c26.k15", 0x010000, 0xf808fa3d, BRF_GRA }, // 5
-
- { "903d23.k12", 0x010000, 0xc39fc9fd, BRF_GRA }, // 6 Sprites
- { "903d21.k8", 0x010000, 0x3c7bf8cd, BRF_GRA }, // 7
- { "903d22.k10", 0x010000, 0x95ad8591, BRF_GRA }, // 8
- { "903d20.k6", 0x010000, 0x2872a1bb, BRF_GRA }, // 9
-};
-
-STD_ROM_PICK(Cuebrick)
-STD_ROM_FN(Cuebrick)
-
-static struct BurnRomInfo BlswhstlRomDesc[] = {
- { "060_l02.e09", 0x020000, 0xe8b7b234, BRF_ESS | BRF_PRG }, // 0 68000 Program Code
- { "060_l03.g09", 0x020000, 0x3c26d281, BRF_ESS | BRF_PRG }, // 1
- { "060_l09.e11", 0x020000, 0x14628736, BRF_ESS | BRF_PRG }, // 2
- { "060_l10.g11", 0x020000, 0xf738ad4a, BRF_ESS | BRF_PRG }, // 3
-
- { "060j01.f3", 0x010000, 0xf9d9a673, BRF_ESS | BRF_PRG }, // 4 Z80 Program
-
- { "060e07.k16", 0x080000, 0xc400edf3, BRF_GRA }, // 5 Tiles
- { "060e08.k12", 0x080000, 0x70dddba1, BRF_GRA }, // 6
-
- { "060e06.k7", 0x080000, 0x09381492, BRF_GRA }, // 7 Sprites
- { "060e05.k3", 0x080000, 0x32454241, BRF_GRA }, // 8
-
- { "060e04.d1", 0x100000, 0xc680395d, BRF_SND }, // 9 K053260 Samples
-
- { "blswhstl.nv", 0x000080, 0x87434e3f, BRF_OPT },
-};
-
-STD_ROM_PICK(Blswhstl)
-STD_ROM_FN(Blswhstl)
-
-static struct BurnRomInfo BlswhstlaRomDesc[] = {
- { "060_m02.e09", 0x020000, 0xbc9dd08f, BRF_ESS | BRF_PRG }, // 0 68000 Program Code
- { "060_m03.g09", 0x020000, 0x7b6ee4a4, BRF_ESS | BRF_PRG }, // 1
- { "060_m09.e11", 0x020000, 0x14628736, BRF_ESS | BRF_PRG }, // 2
- { "060_m10.g11", 0x020000, 0xf738ad4a, BRF_ESS | BRF_PRG }, // 3
-
- { "060j01.f3", 0x010000, 0xf9d9a673, BRF_ESS | BRF_PRG }, // 4 Z80 Program
-
- { "060e07.k16", 0x080000, 0xc400edf3, BRF_GRA }, // 5 Tiles
- { "060e08.k12", 0x080000, 0x70dddba1, BRF_GRA }, // 6
-
- { "060e06.k7", 0x080000, 0x09381492, BRF_GRA }, // 7 Sprites
- { "060e05.k3", 0x080000, 0x32454241, BRF_GRA }, // 8
-
- { "060e04.d1", 0x100000, 0xc680395d, BRF_SND }, // 9 K053260 Samples
-
- { "blswhstl.nv", 0x000080, 0x87434e3f, BRF_OPT },
-};
-
-STD_ROM_PICK(Blswhstla)
-STD_ROM_FN(Blswhstla)
-
-static struct BurnRomInfo DetatwinRomDesc[] = {
- { "060_j02.e09", 0x020000, 0x11b761ac, BRF_ESS | BRF_PRG }, // 0 68000 Program Code
- { "060_j03.g09", 0x020000, 0x8d0b588c, BRF_ESS | BRF_PRG }, // 1
- { "060_j09.e11", 0x020000, 0xf2a5f15f, BRF_ESS | BRF_PRG }, // 2
- { "060_j10.g11", 0x020000, 0x36eefdbc, BRF_ESS | BRF_PRG }, // 3
-
- { "060j01.f3", 0x010000, 0xf9d9a673, BRF_ESS | BRF_PRG }, // 4 Z80 Program
-
- { "060e07.k16", 0x080000, 0xc400edf3, BRF_GRA }, // 5 Tiles
- { "060e08.k12", 0x080000, 0x70dddba1, BRF_GRA }, // 6
-
- { "060e06.k7", 0x080000, 0x09381492, BRF_GRA }, // 7 Sprites
- { "060e05.k3", 0x080000, 0x32454241, BRF_GRA }, // 8
-
- { "060e04.d1", 0x100000, 0xc680395d, BRF_SND }, // 9 K053260 Samples
-
- { "blswhstl.nv", 0x000080, 0x87434e3f, BRF_OPT },
-};
-
-STD_ROM_PICK(Detatwin)
-STD_ROM_FN(Detatwin)
-
-static struct BurnRomInfo SsridersRomDesc[] = {
- { "064eac02.8e", 0x040000, 0x5a5425f4, BRF_ESS | BRF_PRG }, // 0 68000 Program Code
- { "064eac03.8g", 0x040000, 0x093c00fb, BRF_ESS | BRF_PRG }, // 1
- { "064eab04.10e", 0x020000, 0xef2315bd, BRF_ESS | BRF_PRG }, // 2
- { "064eab05.10g", 0x020000, 0x51d6fbc4, BRF_ESS | BRF_PRG }, // 3
-
- { "064e01.2f", 0x010000, 0x44b9bc52, BRF_ESS | BRF_PRG }, // 4 Z80 Program
-
- { "064e12.16k", 0x080000, 0xe2bdc619, BRF_GRA }, // 5 Tiles
- { "064e11.12k", 0x080000, 0x2d8ca8b0, BRF_GRA }, // 6
-
- { "064e09.7l", 0x100000, 0x4160c372, BRF_GRA }, // 7 Sprites
- { "064e07.3l", 0x100000, 0x64dd673c, BRF_GRA }, // 8
-
- { "064e06.1d", 0x100000, 0x59810df9, BRF_SND }, // 9 K053260 Samples
-
- { "ssriders_eac.nv", 0x000080, 0xf6d641a7, BRF_OPT },
-};
-
-STD_ROM_PICK(Ssriders)
-STD_ROM_FN(Ssriders)
-
-static struct BurnRomInfo SsridersebdRomDesc[] = {
- { "064ebd02.8e", 0x040000, 0x8deef9ac, BRF_ESS | BRF_PRG }, // 0 68000 Program Code
- { "064ebd03.8g", 0x040000, 0x2370c107, BRF_ESS | BRF_PRG }, // 1
- { "064eab04.10e", 0x020000, 0xef2315bd, BRF_ESS | BRF_PRG }, // 2
- { "064eab05.10g", 0x020000, 0x51d6fbc4, BRF_ESS | BRF_PRG }, // 3
-
- { "064e01.2f", 0x010000, 0x44b9bc52, BRF_ESS | BRF_PRG }, // 4 Z80 Program
-
- { "064e12.16k", 0x080000, 0xe2bdc619, BRF_GRA }, // 5 Tiles
- { "064e11.12k", 0x080000, 0x2d8ca8b0, BRF_GRA }, // 6
-
- { "064e09.7l", 0x100000, 0x4160c372, BRF_GRA }, // 7 Sprites
- { "064e07.3l", 0x100000, 0x64dd673c, BRF_GRA }, // 8
-
- { "064e06.1d", 0x100000, 0x59810df9, BRF_SND }, // 9 K053260 Samples
-
- { "ssriders_ebd.nv", 0x000080, 0xcbc903f6, BRF_OPT },
-};
-
-STD_ROM_PICK(Ssridersebd)
-STD_ROM_FN(Ssridersebd)
-
-static struct BurnRomInfo SsridersebcRomDesc[] = {
- { "064ebc02.8e", 0x040000, 0x9bd7d164, BRF_ESS | BRF_PRG }, // 0 68000 Program Code
- { "064ebc03.8g", 0x040000, 0x40fd4165, BRF_ESS | BRF_PRG }, // 1
- { "064eab04.10e", 0x020000, 0xef2315bd, BRF_ESS | BRF_PRG }, // 2
- { "064eab05.10g", 0x020000, 0x51d6fbc4, BRF_ESS | BRF_PRG }, // 3
-
- { "064e01.2f", 0x010000, 0x44b9bc52, BRF_ESS | BRF_PRG }, // 4 Z80 Program
-
- { "064e12.16k", 0x080000, 0xe2bdc619, BRF_GRA }, // 5 Tiles
- { "064e11.12k", 0x080000, 0x2d8ca8b0, BRF_GRA }, // 6
-
- { "064e09.7l", 0x100000, 0x4160c372, BRF_GRA }, // 7 Sprites
- { "064e07.3l", 0x100000, 0x64dd673c, BRF_GRA }, // 8
-
- { "064e06.1d", 0x100000, 0x59810df9, BRF_SND }, // 9 K053260 Samples
-
- { "ssriders_ebc.nv", 0x000080, 0x1918e90f, BRF_OPT },
-};
-
-STD_ROM_PICK(Ssridersebc)
-STD_ROM_FN(Ssridersebc)
-
-static struct BurnRomInfo SsridersudaRomDesc[] = {
- { "064uda02.8e", 0x040000, 0x5129a6b7, BRF_ESS | BRF_PRG }, // 0 68000 Program Code
- { "064uda03.8g", 0x040000, 0x9f887214, BRF_ESS | BRF_PRG }, // 1
- { "064eab04.10e", 0x020000, 0xef2315bd, BRF_ESS | BRF_PRG }, // 2
- { "064eab05.10g", 0x020000, 0x51d6fbc4, BRF_ESS | BRF_PRG }, // 3
-
- { "064e01.2f", 0x010000, 0x44b9bc52, BRF_ESS | BRF_PRG }, // 4 Z80 Program
-
- { "064e12.16k", 0x080000, 0xe2bdc619, BRF_GRA }, // 5 Tiles
- { "064e11.12k", 0x080000, 0x2d8ca8b0, BRF_GRA }, // 6
-
- { "064e09.7l", 0x100000, 0x4160c372, BRF_GRA }, // 7 Sprites
- { "064e07.3l", 0x100000, 0x64dd673c, BRF_GRA }, // 8
-
- { "064e06.1d", 0x100000, 0x59810df9, BRF_SND }, // 9 K053260 Samples
-
- { "ssriders_uda.nv", 0x000080, 0x148c6d64, BRF_OPT },
-};
-
-STD_ROM_PICK(Ssridersuda)
-STD_ROM_FN(Ssridersuda)
-
-static struct BurnRomInfo SsriderseaaRomDesc[] = {
- { "064eaa02.8e", 0x040000, 0x4844660f, BRF_ESS | BRF_PRG }, // 0 68000 Program Code
- { "064eaa03.8g", 0x040000, 0x0b9bcc7c, BRF_ESS | BRF_PRG }, // 1
- { "064eaa04.10e", 0x020000, 0x5d917c1c, BRF_ESS | BRF_PRG }, // 2
- { "064eaa05.10g", 0x020000, 0xf4647b74, BRF_ESS | BRF_PRG }, // 3
-
- { "064eaa01.2f", 0x010000, 0xbce45d82, BRF_ESS | BRF_PRG }, // 4 Z80 Program
-
- { "064e12.16k", 0x080000, 0xe2bdc619, BRF_GRA }, // 5 Tiles
- { "064e11.12k", 0x080000, 0x2d8ca8b0, BRF_GRA }, // 6
-
- { "064e09.7l", 0x100000, 0x4160c372, BRF_GRA }, // 7 Sprites
- { "064e07.3l", 0x100000, 0x64dd673c, BRF_GRA }, // 8
-
- { "064e06.1d", 0x100000, 0x59810df9, BRF_SND }, // 9 K053260 Samples
-
- { "ssriders_eaa.nv", 0x000080, 0x74a45ef5, BRF_OPT },
-};
-
-STD_ROM_PICK(Ssriderseaa)
-STD_ROM_FN(Ssriderseaa)
-
-static struct BurnRomInfo SsridersuabRomDesc[] = {
- { "064uab02.8e", 0x040000, 0xf1a3c548, BRF_ESS | BRF_PRG }, // 0 68000 Program Code
- { "064uab03.8g", 0x040000, 0x66a61287, BRF_ESS | BRF_PRG }, // 1
- { "064eab04.10e", 0x020000, 0xef2315bd, BRF_ESS | BRF_PRG }, // 2
- { "064eab05.10g", 0x020000, 0x51d6fbc4, BRF_ESS | BRF_PRG }, // 3
-
- { "064e01.2f", 0x010000, 0x44b9bc52, BRF_ESS | BRF_PRG }, // 4 Z80 Program
-
- { "064e12.16k", 0x080000, 0xe2bdc619, BRF_GRA }, // 5 Tiles
- { "064e11.12k", 0x080000, 0x2d8ca8b0, BRF_GRA }, // 6
-
- { "064e09.7l", 0x100000, 0x4160c372, BRF_GRA }, // 7 Sprites
- { "064e07.3l", 0x100000, 0x64dd673c, BRF_GRA }, // 8
-
- { "064e06.1d", 0x100000, 0x59810df9, BRF_SND }, // 9 K053260 Samples
-
- { "ssriders_uab.nv", 0x000080, 0xfe08b210, BRF_OPT },
-};
-
-STD_ROM_PICK(Ssridersuab)
-STD_ROM_FN(Ssridersuab)
-
-static struct BurnRomInfo SsridersuacRomDesc[] = {
- { "064uac02.8e", 0x040000, 0x870473b6, BRF_ESS | BRF_PRG }, // 0 68000 Program Code
- { "064uac03.8g", 0x040000, 0xeadf289a, BRF_ESS | BRF_PRG }, // 1
- { "064eab04.10e", 0x020000, 0xef2315bd, BRF_ESS | BRF_PRG }, // 2
- { "064eab05.10g", 0x020000, 0x51d6fbc4, BRF_ESS | BRF_PRG }, // 3
-
- { "064e01.2f", 0x010000, 0x44b9bc52, BRF_ESS | BRF_PRG }, // 4 Z80 Program
-
- { "064e12.16k", 0x080000, 0xe2bdc619, BRF_GRA }, // 5 Tiles
- { "064e11.12k", 0x080000, 0x2d8ca8b0, BRF_GRA }, // 6
-
- { "064e09.7l", 0x100000, 0x4160c372, BRF_GRA }, // 7 Sprites
- { "064e07.3l", 0x100000, 0x64dd673c, BRF_GRA }, // 8
-
- { "064e06.1d", 0x100000, 0x59810df9, BRF_SND }, // 9 K053260 Samples
-
- { "ssriders_uac.nv", 0x000080, 0x26c8f1a0, BRF_OPT },
-};
-
-STD_ROM_PICK(Ssridersuac)
-STD_ROM_FN(Ssridersuac)
-
-static struct BurnRomInfo SsridersubcRomDesc[] = {
- { "064ubc02.8e", 0x040000, 0xaca7fda5, BRF_ESS | BRF_PRG }, // 0 68000 Program Code
- { "064ubc03.8g", 0x040000, 0xbb1fdeff, BRF_ESS | BRF_PRG }, // 1
- { "064eab04.10e", 0x020000, 0xef2315bd, BRF_ESS | BRF_PRG }, // 2
- { "064eab05.10g", 0x020000, 0x51d6fbc4, BRF_ESS | BRF_PRG }, // 3
-
- { "064e01.2f", 0x010000, 0x44b9bc52, BRF_ESS | BRF_PRG }, // 4 Z80 Program
-
- { "064e12.16k", 0x080000, 0xe2bdc619, BRF_GRA }, // 5 Tiles
- { "064e11.12k", 0x080000, 0x2d8ca8b0, BRF_GRA }, // 6
-
- { "064e09.7l", 0x100000, 0x4160c372, BRF_GRA }, // 7 Sprites
- { "064e07.3l", 0x100000, 0x64dd673c, BRF_GRA }, // 8
-
- { "064e06.1d", 0x100000, 0x59810df9, BRF_SND }, // 9 K053260 Samples
-
- { "ssriders_ubc.nv", 0x000080, 0x31c5504f, BRF_OPT },
-};
-
-STD_ROM_PICK(Ssridersubc)
-STD_ROM_FN(Ssridersubc)
-
-static struct BurnRomInfo SsridersabdRomDesc[] = {
- { "064abd02.8e", 0x040000, 0x713406cb, BRF_ESS | BRF_PRG }, // 0 68000 Program Code
- { "064abd03.8g", 0x040000, 0x680feb3c, BRF_ESS | BRF_PRG }, // 1
- { "064eab04.10e", 0x020000, 0xef2315bd, BRF_ESS | BRF_PRG }, // 2
- { "064eab05.10g", 0x020000, 0x51d6fbc4, BRF_ESS | BRF_PRG }, // 3
-
- { "064e01.2f", 0x010000, 0x44b9bc52, BRF_ESS | BRF_PRG }, // 4 Z80 Program
-
- { "064e12.16k", 0x080000, 0xe2bdc619, BRF_GRA }, // 5 Tiles
- { "064e11.12k", 0x080000, 0x2d8ca8b0, BRF_GRA }, // 6
-
- { "064e09.7l", 0x100000, 0x4160c372, BRF_GRA }, // 7 Sprites
- { "064e07.3l", 0x100000, 0x64dd673c, BRF_GRA }, // 8
-
- { "064e06.1d", 0x100000, 0x59810df9, BRF_SND }, // 9 K053260 Samples
-
- { "ssriders_abd.nv", 0x000080, 0xbfdafedf, BRF_OPT },
-};
-
-STD_ROM_PICK(Ssridersabd)
-STD_ROM_FN(Ssridersabd)
-
-static struct BurnRomInfo SsridersaddRomDesc[] = {
- { "064add02.8e", 0x040000, 0x06b0138e, BRF_ESS | BRF_PRG }, // 0 68000 Program Code
- { "064add03.8g", 0x040000, 0x03eb8b91, BRF_ESS | BRF_PRG }, // 1
- { "064eab04.10e", 0x020000, 0xef2315bd, BRF_ESS | BRF_PRG }, // 2
- { "064eab05.10g", 0x020000, 0x51d6fbc4, BRF_ESS | BRF_PRG }, // 3
-
- { "064e01.2f", 0x010000, 0x44b9bc52, BRF_ESS | BRF_PRG }, // 4 Z80 Program
-
- { "064e12.16k", 0x080000, 0xe2bdc619, BRF_GRA }, // 5 Tiles
- { "064e11.12k", 0x080000, 0x2d8ca8b0, BRF_GRA }, // 6
-
- { "064e09.7l", 0x100000, 0x4160c372, BRF_GRA }, // 7 Sprites
- { "064e07.3l", 0x100000, 0x64dd673c, BRF_GRA }, // 8
-
- { "064e06.1d", 0x100000, 0x59810df9, BRF_SND }, // 9 K053260 Samples
-
- { "ssriders_add.nv", 0x000080, 0xf06242d5, BRF_OPT },
-};
-
-STD_ROM_PICK(Ssridersadd)
-STD_ROM_FN(Ssridersadd)
-
-static struct BurnRomInfo SsridersjacRomDesc[] = {
- { "064jac02.8e", 0x040000, 0x64a35f6f, BRF_ESS | BRF_PRG }, // 0 68000 Program Code
- { "064jac03.8g", 0x040000, 0xb5957946, BRF_ESS | BRF_PRG }, // 1
- { "064eab04.10e", 0x020000, 0xef2315bd, BRF_ESS | BRF_PRG }, // 2
- { "064eab05.10g", 0x020000, 0x51d6fbc4, BRF_ESS | BRF_PRG }, // 3
-
- { "064e01.2f", 0x010000, 0x44b9bc52, BRF_ESS | BRF_PRG }, // 4 Z80 Program
-
- { "064e12.16k", 0x080000, 0xe2bdc619, BRF_GRA }, // 5 Tiles
- { "064e11.12k", 0x080000, 0x2d8ca8b0, BRF_GRA }, // 6
-
- { "064e09.7l", 0x100000, 0x4160c372, BRF_GRA }, // 7 Sprites
- { "064e07.3l", 0x100000, 0x64dd673c, BRF_GRA }, // 8
-
- { "064e06.1d", 0x100000, 0x59810df9, BRF_SND }, // 9 K053260 Samples
-
- { "ssriders_jac.nv", 0x000080, 0xeeb0c55f, BRF_OPT },
-};
-
-STD_ROM_PICK(Ssridersjac)
-STD_ROM_FN(Ssridersjac)
-
-static struct BurnRomInfo SsridersjadRomDesc[] = {
- { "064jad02.8e", 0x040000, 0x13709ee6, BRF_ESS | BRF_PRG }, // 0 68000 Program Code
- { "064jad03.8g", 0x040000, 0x2fa32229, BRF_ESS | BRF_PRG }, // 1
- { "064eab04.10e", 0x020000, 0xef2315bd, BRF_ESS | BRF_PRG }, // 2
- { "064eab05.10g", 0x020000, 0x51d6fbc4, BRF_ESS | BRF_PRG }, // 3
-
- { "064e01.2f", 0x010000, 0x44b9bc52, BRF_ESS | BRF_PRG }, // 4 Z80 Program
-
- { "064e12.16k", 0x080000, 0xe2bdc619, BRF_GRA }, // 5 Tiles
- { "064e11.12k", 0x080000, 0x2d8ca8b0, BRF_GRA }, // 6
-
- { "064e09.7l", 0x100000, 0x4160c372, BRF_GRA }, // 7 Sprites
- { "064e07.3l", 0x100000, 0x64dd673c, BRF_GRA }, // 8
-
- { "064e06.1d", 0x100000, 0x59810df9, BRF_SND }, // 9 K053260 Samples
-
- { "ssriders_jad.nv", 0x000080, 0x8962058c, BRF_OPT },
-};
-
-STD_ROM_PICK(Ssridersjad)
-STD_ROM_FN(Ssridersjad)
-
-static struct BurnRomInfo SsridersjbdRomDesc[] = {
- { "064jbd02.8e", 0x040000, 0x7acdc1e3, BRF_ESS | BRF_PRG }, // 0 68000 Program Code
- { "064jbd03.8g", 0x040000, 0x6a424918, BRF_ESS | BRF_PRG }, // 1
- { "064eab04.10e", 0x020000, 0xef2315bd, BRF_ESS | BRF_PRG }, // 2
- { "064eab05.10g", 0x020000, 0x51d6fbc4, BRF_ESS | BRF_PRG }, // 3
-
- { "064e01.2f", 0x010000, 0x44b9bc52, BRF_ESS | BRF_PRG }, // 4 Z80 Program
-
- { "064e12.16k", 0x080000, 0xe2bdc619, BRF_GRA }, // 5 Tiles
- { "064e11.12k", 0x080000, 0x2d8ca8b0, BRF_GRA }, // 6
-
- { "064e09.7l", 0x100000, 0x4160c372, BRF_GRA }, // 7 Sprites
- { "064e07.3l", 0x100000, 0x64dd673c, BRF_GRA }, // 8
-
- { "064e06.1d", 0x100000, 0x59810df9, BRF_SND }, // 9 K053260 Samples
-
- { "ssriders_jbd.nv", 0x000080, 0x006200e3, BRF_OPT },
-};
-
-STD_ROM_PICK(Ssridersjbd)
-STD_ROM_FN(Ssridersjbd)
-
-static struct BurnRomInfo ssridersbRomDesc[] = {
- { "sunsetb.03", 0x080000, 0x37ffe90b, BRF_ESS | BRF_PRG }, // 0 68000 Program Code
- { "sunsetb.04", 0x080000, 0x8ff647b7, BRF_ESS | BRF_PRG }, // 1
-
- { "064e12.16k", 0x080000, 0xe2bdc619, BRF_GRA }, // 2 Tiles
- { "064e11.12k", 0x080000, 0x2d8ca8b0, BRF_GRA }, // 3
-
- { "sunsetb.05", 0x080000, 0x8a0ff31a, BRF_GRA }, // 4 Sprites
- { "sunsetb.06", 0x080000, 0xfdf2c887, BRF_GRA }, // 5
- { "sunsetb.07", 0x080000, 0xa545b1ed, BRF_GRA }, // 6
- { "sunsetb.08", 0x080000, 0xf867cd38, BRF_GRA }, // 7
-
- { "sunsetb.01", 0x080000, 0x1a8b5ca2, BRF_SND }, // 8 OKI Samples
- { "sunsetb.02", 0x080000, 0x5d485523, BRF_SND }, // 9
-};
-
-STD_ROM_PICK(ssridersb)
-STD_ROM_FN(ssridersb)
-
-static struct BurnRomInfo thndrx2RomDesc[] = {
- { "073-ea-l02.11c", 0x020000, 0xeae02b51, BRF_ESS | BRF_PRG }, // 0 68000 Program Code
- { "073-ea-l03.12c", 0x020000, 0x738ed007, BRF_ESS | BRF_PRG }, // 1
-
- { "073-c01.4f", 0x010000, 0x44ebe83c, BRF_ESS | BRF_PRG }, // 2 Z80 Code
-
- { "073-c06.16k", 0x080000, 0x24e22b42, BRF_GRA }, // 3 Tiles
- { "073-c05.12k", 0x080000, 0x952a935f, BRF_GRA }, // 4
-
- { "073-c07.7k", 0x080000, 0x14e93f38, BRF_GRA }, // 5 Sprites
- { "073-c08.3k", 0x080000, 0x09fab3ab, BRF_GRA }, // 6
-
- { "073-b04.2d", 0x080000, 0x05287a0b, BRF_SND }, // 7 K053260 Samples
-
- { "thndrx2.nv", 0x000080, 0xca613e98, BRF_OPT },
-};
-
-STD_ROM_PICK(thndrx2)
-STD_ROM_FN(thndrx2)
-
-static struct BurnRomInfo thndrx2aRomDesc[] = {
- { "073-aa-m02.11c", 0x020000, 0x5b5b4cc0, BRF_ESS | BRF_PRG }, // 0 68000 Program Code
- { "073-aa-m03.12c", 0x020000, 0x320435a8, BRF_ESS | BRF_PRG }, // 1
-
- { "073-c01.4f", 0x010000, 0x44ebe83c, BRF_ESS | BRF_PRG }, // 2 Z80 Code
-
- { "073-c06.16k", 0x080000, 0x24e22b42, BRF_GRA }, // 3 Tiles
- { "073-c05.12k", 0x080000, 0x952a935f, BRF_GRA }, // 4
-
- { "073-c07.7k", 0x080000, 0x14e93f38, BRF_GRA }, // 5 Sprites
- { "073-c08.3k", 0x080000, 0x09fab3ab, BRF_GRA }, // 6
-
- { "073-b04.2d", 0x080000, 0x05287a0b, BRF_SND }, // 7 K053260 Samples
-
- { "thndrx2a.nv", 0x000080, 0xf7893d00, BRF_OPT },
-};
-
-STD_ROM_PICK(thndrx2a)
-STD_ROM_FN(thndrx2a)
-
-static struct BurnRomInfo thndrx2jRomDesc[] = {
- { "073-ja-k02.11c", 0x020000, 0x0c8b2d3f, BRF_ESS | BRF_PRG }, // 0 68000 Program Code
- { "073-ja-k03.12c", 0x020000, 0x3803b427, BRF_ESS | BRF_PRG }, // 1
-
- { "073-c01.4f", 0x010000, 0x44ebe83c, BRF_ESS | BRF_PRG }, // 2 Z80 Code
-
- { "073-c06.16k", 0x080000, 0x24e22b42, BRF_GRA }, // 3 Tiles
- { "073-c05.12k", 0x080000, 0x952a935f, BRF_GRA }, // 4
-
- { "073-c07.7k", 0x080000, 0x14e93f38, BRF_GRA }, // 5 Sprites
- { "073-c08.3k", 0x080000, 0x09fab3ab, BRF_GRA }, // 6
-
- { "073-b04.2d", 0x080000, 0x05287a0b, BRF_SND }, // 7 K053260 Samples
-
- { "thndrx2j.nv", 0x000080, 0x83b4799b, BRF_OPT },
-};
-
-STD_ROM_PICK(thndrx2j)
-STD_ROM_FN(thndrx2j)
-
-static struct BurnRomInfo lgtnfghtRomDesc[] = {
- { "939k02.e11", 0x020000, 0x2dfefa53, BRF_ESS | BRF_PRG }, // 0 68000 Program Code
- { "939k03.e15", 0x020000, 0x14f0c454, BRF_ESS | BRF_PRG }, // 1
-
- { "939e01.d7", 0x008000, 0x4a5fc848, BRF_ESS | BRF_PRG }, // 2 Z80 Code
-
- { "939a07.k14", 0x080000, 0x7955dfcf, BRF_GRA }, // 3 Tiles
- { "939a08.k19", 0x080000, 0xed95b385, BRF_GRA }, // 4
-
- { "939a06.k8", 0x080000, 0xe393c206, BRF_GRA }, // 5 Sprites
- { "939a05.k2", 0x080000, 0x3662d47a, BRF_GRA }, // 6
-
- { "939a04.c5", 0x080000, 0xc24e2b6e, BRF_SND }, // 7 K053260 Samples
-};
-
-STD_ROM_PICK(lgtnfght)
-STD_ROM_FN(lgtnfght)
-
-static struct BurnRomInfo lgtnfghtuRomDesc[] = {
- { "939m02.e11", 0x020000, 0x61a12184, BRF_ESS | BRF_PRG }, // 0 68000 Program Code
- { "939m03.e15", 0x020000, 0x6db6659d, BRF_ESS | BRF_PRG }, // 1
-
- { "939e01.d7", 0x008000, 0x4a5fc848, BRF_ESS | BRF_PRG }, // 2 Z80 Code
-
- { "939a07.k14", 0x080000, 0x7955dfcf, BRF_GRA }, // 3 Tiles
- { "939a08.k19", 0x080000, 0xed95b385, BRF_GRA }, // 4
-
- { "939a06.k8", 0x080000, 0xe393c206, BRF_GRA }, // 5 Sprites
- { "939a05.k2", 0x080000, 0x3662d47a, BRF_GRA }, // 6
-
- { "939a04.c5", 0x080000, 0xc24e2b6e, BRF_SND }, // 7 K053260 Samples
-};
-
-STD_ROM_PICK(lgtnfghtu)
-STD_ROM_FN(lgtnfghtu)
-
-static struct BurnRomInfo lgtnfghtaRomDesc[] = {
- { "939j_02.e11", 0x020000, 0xbbbb4a74, BRF_ESS | BRF_PRG }, // 0 68000 Program Code
- { "939j_03.e15", 0x020000, 0x8d4da7b7, BRF_ESS | BRF_PRG }, // 1
-
- { "939e01.d7", 0x008000, 0x4a5fc848, BRF_ESS | BRF_PRG }, // 2 Z80 Code
-
- { "939a07.k14", 0x080000, 0x7955dfcf, BRF_GRA }, // 3 Tiles
- { "939a08.k19", 0x080000, 0xed95b385, BRF_GRA }, // 4
-
- { "939a06.k8", 0x080000, 0xe393c206, BRF_GRA }, // 5 Sprites
- { "939a05.k2", 0x080000, 0x3662d47a, BRF_GRA }, // 6
-
- { "939a04.c5", 0x080000, 0xc24e2b6e, BRF_SND }, // 7 K053260 Samples
-};
-
-STD_ROM_PICK(lgtnfghta)
-STD_ROM_FN(lgtnfghta)
-
-static struct BurnRomInfo trigonRomDesc[] = {
- { "939j02.e11", 0x020000, 0x38381d1b, BRF_ESS | BRF_PRG }, // 0 68000 Program Code
- { "939j03.e15", 0x020000, 0xb5beddcd, BRF_ESS | BRF_PRG }, // 1
-
- { "939e01.d7", 0x008000, 0x4a5fc848, BRF_ESS | BRF_PRG }, // 2 Z80 Code
-
- { "939a07.k14", 0x080000, 0x7955dfcf, BRF_GRA }, // 3 Tiles
- { "939a08.k19", 0x080000, 0xed95b385, BRF_GRA }, // 4
-
- { "939a06.k8", 0x080000, 0xe393c206, BRF_GRA }, // 5 Sprites
- { "939a05.k2", 0x080000, 0x3662d47a, BRF_GRA }, // 6
-
- { "939a04.c5", 0x080000, 0xc24e2b6e, BRF_SND }, // 7 K053260 Samples
-};
-
-STD_ROM_PICK(trigon)
-STD_ROM_FN(trigon)
-
-static struct BurnRomInfo tmnt2RomDesc[] = {
- { "063uaa02.8e", 0x020000, 0x58d5c93d, BRF_ESS | BRF_PRG }, // 0 68000 Program Code
- { "063uaa03.8g", 0x020000, 0x0541fec9, BRF_ESS | BRF_PRG }, // 1
- { "063uaa04.10e", 0x020000, 0x1d441a7d, BRF_ESS | BRF_PRG }, // 2
- { "063uaa05.10g", 0x020000, 0x9c428273, BRF_ESS | BRF_PRG }, // 3
-
- { "063b01.2f", 0x010000, 0x364f548a, BRF_ESS | BRF_PRG }, // 4 Z80 Code
-
- { "063b12.16k", 0x080000, 0xd3283d19, BRF_GRA }, // 5 Tiles
- { "063b11.12k", 0x080000, 0x6ebc0c15, BRF_GRA }, // 6
-
- { "063b09.7l", 0x100000, 0x2d7a9d2a, BRF_GRA }, // 7 Sprites
- { "063b10.7k", 0x080000, 0xf2dd296e, BRF_GRA }, // 8
- { "063b07.3l", 0x100000, 0xd9bee7bf, BRF_GRA }, // 9
- { "063b08.3k", 0x080000, 0x3b1ae36f, BRF_GRA }, // 10
-
- { "063b06.1d", 0x200000, 0x1e510aa5, BRF_SND }, // 11 K053260 Samples
-
- { "tmnt2_uaa.nv", 0x000080, 0x284357bd, BRF_OPT },
-};
-
-STD_ROM_PICK(tmnt2)
-STD_ROM_FN(tmnt2)
-
-static struct BurnRomInfo tmnt22puRomDesc[] = {
- { "063uda02.8e", 0x020000, 0xaadffe3a, BRF_ESS | BRF_PRG }, // 0 68000 Program Code
- { "063uda03.8g", 0x020000, 0x125687a8, BRF_ESS | BRF_PRG }, // 1
- { "063uda04.10e", 0x020000, 0xfb5c7ded, BRF_ESS | BRF_PRG }, // 2
- { "063uda05.10g", 0x020000, 0x3c40fe66, BRF_ESS | BRF_PRG }, // 3
-
- { "063b01.2f", 0x010000, 0x364f548a, BRF_ESS | BRF_PRG }, // 4 Z80 Code
-
- { "063b12.16k", 0x080000, 0xd3283d19, BRF_GRA }, // 5 Tiles
- { "063b11.12k", 0x080000, 0x6ebc0c15, BRF_GRA }, // 6
-
- { "063b09.7l", 0x100000, 0x2d7a9d2a, BRF_GRA }, // 7 Sprites
- { "063b10.7k", 0x080000, 0xf2dd296e, BRF_GRA }, // 8
- { "063b07.3l", 0x100000, 0xd9bee7bf, BRF_GRA }, // 9
- { "063b08.3k", 0x080000, 0x3b1ae36f, BRF_GRA }, // 10
-
- { "063b06.1d", 0x200000, 0x1e510aa5, BRF_SND }, // 11 K053260 Samples
-
- { "tmnt2_uda.nv", 0x000080, 0x44928d33, BRF_OPT },
-};
-
-STD_ROM_PICK(tmnt22pu)
-STD_ROM_FN(tmnt22pu)
-
-static struct BurnRomInfo tmht22peRomDesc[] = {
- { "063eba02.8e", 0x020000, 0x99409094, BRF_ESS | BRF_PRG }, // 0 68000 Program Code
- { "063eba03.8g", 0x020000, 0x4d65650f, BRF_ESS | BRF_PRG }, // 1
- { "063eba04.10e", 0x020000, 0xf6e3b9c7, BRF_ESS | BRF_PRG }, // 2
- { "063eba05.10g", 0x020000, 0x1bad6696, BRF_ESS | BRF_PRG }, // 3
-
- { "063b01.2f", 0x010000, 0x364f548a, BRF_ESS | BRF_PRG }, // 4 Z80 Code
-
- { "063b12.16k", 0x080000, 0xd3283d19, BRF_GRA }, // 5 Tiles
- { "063b11.12k", 0x080000, 0x6ebc0c15, BRF_GRA }, // 6
-
- { "063b09.7l", 0x100000, 0x2d7a9d2a, BRF_GRA }, // 7 Sprites
- { "063b10.7k", 0x080000, 0xf2dd296e, BRF_GRA }, // 8
- { "063b07.3l", 0x100000, 0xd9bee7bf, BRF_GRA }, // 9
- { "063b08.3k", 0x080000, 0x3b1ae36f, BRF_GRA }, // 10
-
- { "063b06.1d", 0x200000, 0x1e510aa5, BRF_SND }, // 11 K053260 Samples
-
- { "tmnt2_eba.nv", 0x000080, 0xc0a3ed50, BRF_OPT },
-};
-
-STD_ROM_PICK(tmht22pe)
-STD_ROM_FN(tmht22pe)
-
-static struct BurnRomInfo tmht24peRomDesc[] = {
- { "063eaa02.8e", 0x020000, 0x665a68de, BRF_ESS | BRF_PRG }, // 0 68000 Program Code
- { "063eaa03.8g", 0x020000, 0x7b7fb3af, BRF_ESS | BRF_PRG }, // 1
- { "063eaa04.10e", 0x020000, 0x69f38e1d, BRF_ESS | BRF_PRG }, // 2
- { "063eaa05.10g", 0x020000, 0x818032af, BRF_ESS | BRF_PRG }, // 3
-
- { "063b01.2f", 0x010000, 0x364f548a, BRF_ESS | BRF_PRG }, // 4 Z80 Code
-
- { "063b12.16k", 0x080000, 0xd3283d19, BRF_GRA }, // 5 Tiles
- { "063b11.12k", 0x080000, 0x6ebc0c15, BRF_GRA }, // 6
-
- { "063b09.7l", 0x100000, 0x2d7a9d2a, BRF_GRA }, // 7 Sprites
- { "063b10.7k", 0x080000, 0xf2dd296e, BRF_GRA }, // 8
- { "063b07.3l", 0x100000, 0xd9bee7bf, BRF_GRA }, // 9
- { "063b08.3k", 0x080000, 0x3b1ae36f, BRF_GRA }, // 10
-
- { "063b06.1d", 0x200000, 0x1e510aa5, BRF_SND }, // 11 K053260 Samples
-
- { "tmnt2_eaa.nv", 0x000080, 0x124af18f, BRF_OPT },
-};
-
-STD_ROM_PICK(tmht24pe)
-STD_ROM_FN(tmht24pe)
-
-static struct BurnRomInfo tmnt2aRomDesc[] = {
- { "063ada02.8e", 0x020000, 0x4f11b587, BRF_ESS | BRF_PRG }, // 0 68000 Program Code
- { "063ada03.8g", 0x020000, 0x82a1b9ac, BRF_ESS | BRF_PRG }, // 1
- { "063ada04.10e", 0x020000, 0x05ad187a, BRF_ESS | BRF_PRG }, // 2
- { "063ada05.10g", 0x020000, 0xd4826547, BRF_ESS | BRF_PRG }, // 3
-
- { "063b01.2f", 0x010000, 0x364f548a, BRF_ESS | BRF_PRG }, // 4 Z80 Code
-
- { "063b12.16k", 0x080000, 0xd3283d19, BRF_GRA }, // 5 Tiles
- { "063b11.12k", 0x080000, 0x6ebc0c15, BRF_GRA }, // 6
-
- { "063b09.7l", 0x100000, 0x2d7a9d2a, BRF_GRA }, // 7 Sprites
- { "063b10.7k", 0x080000, 0xf2dd296e, BRF_GRA }, // 8
- { "063b07.3l", 0x100000, 0xd9bee7bf, BRF_GRA }, // 9
- { "063b08.3k", 0x080000, 0x3b1ae36f, BRF_GRA }, // 10
-
- { "063b06.1d", 0x200000, 0x1e510aa5, BRF_SND }, // 11 K053260 Samples
-
- { "tmnt2_ada.nv", 0x000080, 0x063068a0, BRF_OPT },
-};
-
-STD_ROM_PICK(tmnt2a)
-STD_ROM_FN(tmnt2a)
-
-static struct BurnRomInfo qgakumonRomDesc[] = {
- { "248jaa02.8e", 0x040000, 0xfab79410, BRF_ESS | BRF_PRG }, // 0 68000 Program Code
- { "248jaa03.8g", 0x040000, 0x8d888ef3, BRF_ESS | BRF_PRG }, // 1
- { "248jaa04.10e", 0x040000, 0x56cb16cb, BRF_ESS | BRF_PRG }, // 2
- { "248jaa05.10g", 0x040000, 0x27614fcd, BRF_ESS | BRF_PRG }, // 3
-
- { "248a01.2f", 0x010000, 0xa8a41cc6, BRF_ESS | BRF_PRG }, // 4 Z80 Code
-
- { "248a12.16k", 0x080000, 0x62870987, BRF_GRA }, // 5 Tiles
- { "248a11.12k", 0x080000, 0xfad2dbfd, BRF_GRA }, // 6
-
- { "248a09.7l", 0x100000, 0xa176e205, BRF_GRA }, // 7 Sprites
- { "248a07.3l", 0x100000, 0x9595589f, BRF_GRA }, // 8
-
- { "248a06.1d", 0x200000, 0x0fba1def, BRF_SND }, // 9 K053260 Samples
-
- { "qgakumon.nv", 0x000080, 0x847bd238, BRF_OPT },
-};
-
-STD_ROM_PICK(qgakumon)
-STD_ROM_FN(qgakumon)
-
-static struct BurnRomInfo punkshotRomDesc[] = {
- { "907-j02.i7", 0x020000, 0xdbb3a23b, BRF_ESS | BRF_PRG }, // 0 68000 Program Code
- { "907-j03.i10", 0x020000, 0x2151d1ab, BRF_ESS | BRF_PRG }, // 1
-
- { "907f01.e8", 0x008000, 0xf040c484, BRF_ESS | BRF_PRG }, // 2 Z80 Program
-
- { "907d06.e23", 0x040000, 0xf5cc38f4, BRF_GRA }, // 3 Tiles
- { "907d05.e22", 0x040000, 0xe25774c1, BRF_GRA }, // 4
-
- { "907d07.k2", 0x100000, 0xb0fe4543, BRF_GRA }, // 5 Sprites
- { "907d08.k7", 0x100000, 0xd5ac8d9d, BRF_GRA }, // 6
-
- { "907d04.d3", 0x080000, 0x090feb5e, BRF_SND }, // 7 K053260 Samples
-};
-
-STD_ROM_PICK(punkshot)
-STD_ROM_FN(punkshot)
-
-static struct BurnRomInfo punkshot2RomDesc[] = {
- { "907m02.i7", 0x020000, 0x59e14575, BRF_ESS | BRF_PRG }, // 0 68000 Program Code
- { "907m03.i10", 0x020000, 0xadb14b1e, BRF_ESS | BRF_PRG }, // 1
-
- { "907f01.e8", 0x008000, 0xf040c484, BRF_ESS | BRF_PRG }, // 2 Z80 Program
-
- { "907d06.e23", 0x040000, 0xf5cc38f4, BRF_GRA }, // 3 Tiles
- { "907d05.e22", 0x040000, 0xe25774c1, BRF_GRA }, // 4
-
- { "907d07.k2", 0x100000, 0xb0fe4543, BRF_GRA }, // 5 Sprites
- { "907d08.k7", 0x100000, 0xd5ac8d9d, BRF_GRA }, // 6
-
- { "907d04.d3", 0x080000, 0x090feb5e, BRF_SND }, // 7 K053260 Samples
-};
-
-STD_ROM_PICK(punkshot2)
-STD_ROM_FN(punkshot2)
-
-static struct BurnRomInfo punkshotjRomDesc[] = {
- { "907z02.i7", 0x020000, 0x7a3a5c89, BRF_ESS | BRF_PRG }, // 0 68000 Program Code
- { "907z03.i10", 0x020000, 0x22a3d9d6, BRF_ESS | BRF_PRG }, // 1
-
- { "907f01.e8", 0x008000, 0xf040c484, BRF_ESS | BRF_PRG }, // 2 Z80 Program
-
- { "907d06.e23", 0x040000, 0xf5cc38f4, BRF_GRA }, // 3 Tiles
- { "907d05.e22", 0x040000, 0xe25774c1, BRF_GRA }, // 4
-
- { "907d07.k2", 0x100000, 0xb0fe4543, BRF_GRA }, // 5 Sprites
- { "907d08.k7", 0x100000, 0xd5ac8d9d, BRF_GRA }, // 6
-
- { "907d04.d3", 0x080000, 0x090feb5e, BRF_SND }, // 7 K053260 Samples
-};
-
-STD_ROM_PICK(punkshotj)
-STD_ROM_FN(punkshotj)
-
-static INT32 TmntMemIndex()
-{
- UINT8 *Next; Next = Mem;
-
- Drv68KRom = Next; Next += 0x060000;
- DrvZ80Rom = Next; Next += 0x008000;
- DrvSoundRom = Next; Next += 0x020000;
- DrvUPD7759CRom = Next; Next += 0x020000;
- DrvTileRom = Next; Next += 0x100000;
- DrvSpriteRom = Next; Next += 0x200000;
-
- RamStart = Next;
-
- Drv68KRam = Next; Next += 0x004000;
- DrvZ80Ram = Next; Next += 0x000800;
- DrvPaletteRam = Next; Next += 0x001000;
-
- RamEnd = Next;
-
- konami_palette32 = (UINT32*)Next;
- DrvPalette = (UINT32*)Next; Next += 0x00400 * sizeof(UINT32);
- DrvTitleSample = (INT16*)Next; Next += 0x40000 * sizeof(INT16);
- DrvTiles = Next; Next += 0x008000 * 8 * 8;
- DrvSprites = Next; Next += 0x004000 * 16 * 16;
-
- MemEnd = Next;
-
- return 0;
-}
-
-static INT32 MiaMemIndex()
-{
- UINT8 *Next; Next = Mem;
-
- Drv68KRom = Next; Next += 0x040000;
- DrvZ80Rom = Next; Next += 0x008000;
- DrvSoundRom = Next; Next += 0x020000;
- DrvTileRom = Next; Next += 0x040000;
- DrvSpriteRom = Next; Next += 0x100000;
-
- RamStart = Next;
-
- Drv68KRam = Next; Next += 0x008000;
- DrvZ80Ram = Next; Next += 0x000800;
- DrvPaletteRam = Next; Next += 0x001000;
-
- RamEnd = Next;
-
- konami_palette32 = (UINT32*)Next;
- DrvPalette = (UINT32*)Next; Next += 0x00400 * sizeof(UINT32);
- DrvTiles = Next; Next += 0x002000 * 8 * 8;
- DrvSprites = Next; Next += 0x002000 * 16 * 16;
-
- MemEnd = Next;
-
- return 0;
-}
-
-static INT32 CuebrickMemIndex()
-{
- UINT8 *Next; Next = Mem;
-
- Drv68KRom = Next; Next += 0x020000;
- DrvTileRom = Next; Next += 0x040000;
- DrvSpriteRom = Next; Next += 0x040000;
-
- RamStart = Next;
-
- Drv68KRam = Next; Next += 0x008000;
- DrvPaletteRam = Next; Next += 0x001000;
-
- RamEnd = Next;
-
- konami_palette32 = (UINT32*)Next;
- DrvPalette = (UINT32*)Next; Next += 0x00400 * sizeof(UINT32);
- DrvTiles = Next; Next += 0x002000 * 8 * 8;
- DrvSprites = Next; Next += 0x001000 * 16 * 16;
- DrvNvRam = Next; Next += 0x400 * 0x20;
-
- MemEnd = Next;
-
- return 0;
-}
-
-static INT32 BlswhstlMemIndex()
-{
- UINT8 *Next; Next = Mem;
-
- Drv68KRom = Next; Next += 0x080000;
- DrvZ80Rom = Next; Next += 0x010000;
- DrvSoundRom = Next; Next += 0x100000;
- DrvTileRom = Next; Next += 0x100000;
- DrvSpriteRom = Next; Next += 0x100000;
-
- RamStart = Next;
-
- Drv68KRam = Next; Next += 0x004000;
- DrvZ80Ram = Next; Next += 0x000800;
- DrvPaletteRam = Next; Next += 0x001000;
- DrvSpriteRam = Next; Next += 0x004000;
-
- RamEnd = Next;
-
- DrvTiles = Next; Next += 0x008000 * 8 * 8;
- DrvSprites = Next; Next += 0x002000 * 16 * 16;
- konami_palette32 = (UINT32*)Next;
- DrvPalette = (UINT32*)Next; Next += 0x00810 * sizeof(UINT32);
-
- MemEnd = Next;
-
- return 0;
-}
-
-static INT32 SsridersMemIndex()
-{
- UINT8 *Next; Next = Mem;
-
- Drv68KRom = Next; Next += 0x0c0000;
- DrvZ80Rom = Next; Next += 0x010000;
- DrvSoundRom = Next; Next += 0x100000;
- DrvTileRom = Next; Next += 0x100000;
- DrvSpriteRom = Next; Next += 0x200000;
-
- RamStart = Next;
-
- Drv68KRam = Next; Next += 0x004080;
- DrvZ80Ram = Next; Next += 0x000800;
- DrvPaletteRam = Next; Next += 0x001000;
- DrvSpriteRam = Next; Next += 0x004000;
-
- RamEnd = Next;
-
- konami_palette32 = (UINT32*)Next;
- DrvPalette = (UINT32*)Next; Next += 0x00810 * sizeof(UINT32);
- DrvTiles = Next; Next += 0x008000 * 8 * 8;
- DrvSprites = Next; Next += 0x004000 * 16 * 16;
-
- MemEnd = Next;
-
- return 0;
-}
-
-static INT32 Tmnt2MemIndex()
-{
- UINT8 *Next; Next = Mem;
-
- Drv68KRom = Next; Next += 0x100000;
- DrvZ80Rom = Next; Next += 0x010000;
- DrvSoundRom = Next; Next += 0x200000;
- DrvTileRom = Next; Next += 0x100000;
- DrvSpriteRom = Next; Next += 0x400000;
-
- RamStart = Next;
-
- Drv68KRam = Next; Next += 0x005080;
- DrvZ80Ram = Next; Next += 0x000800;
- DrvPaletteRam = Next; Next += 0x001000;
- DrvSpriteRam = Next; Next += 0x004000;
-
- RamEnd = Next;
-
- konami_palette32 = (UINT32*)Next;
- DrvPalette = (UINT32*)Next; Next += 0x00810 * sizeof(UINT32);
- DrvTiles = Next; Next += 0x008000 * 8 * 8;
- DrvSprites = Next; Next += 0x008000 * 16 * 16;
-
- MemEnd = Next;
-
- return 0;
-}
-
-static INT32 Thndrx2MemIndex()
-{
- UINT8 *Next; Next = Mem;
-
- RamStart = Next;
-
- Drv68KRam = Next; Next += 0x004000;
- DrvZ80Ram = Next; Next += 0x000800;
- DrvPaletteRam = Next; Next += 0x001000;
-
- RamEnd = Next;
-
- Drv68KRom = Next; Next += 0x080000;
- DrvZ80Rom = Next; Next += 0x010000;
- DrvSoundRom = Next; Next += 0x080000;
- DrvTileRom = Next; Next += 0x100000;
- DrvSpriteRom = Next; Next += 0x100000;
-
- konami_palette32 = (UINT32*)Next;
- DrvPalette = (UINT32*)Next; Next += 0x00810 * sizeof(UINT32);
- DrvTiles = Next; Next += 0x008000 * 8 * 8;
- DrvSprites = Next; Next += 0x002000 * 16 * 16;
-
- MemEnd = Next;
-
- return 0;
-}
-
-static INT32 LgtnfghtMemIndex()
-{
- UINT8 *Next; Next = Mem;
-
- RamStart = Next;
-
- Drv68KRam = Next; Next += 0x004000;
- DrvZ80Ram = Next; Next += 0x000800;
- DrvPaletteRam = Next; Next += 0x001000;
- DrvSpriteRam = Next; Next += 0x004000;
-
- RamEnd = Next;
-
- Drv68KRom = Next; Next += 0x080000;
- DrvZ80Rom = Next; Next += 0x010000;
- DrvSoundRom = Next; Next += 0x080000;
- DrvTileRom = Next; Next += 0x100000;
- DrvSpriteRom = Next; Next += 0x100000;
-
- konami_palette32 = (UINT32*)Next;
- DrvPalette = (UINT32*)Next; Next += 0x00810 * sizeof(UINT32);
- DrvTiles = Next; Next += 0x008000 * 8 * 8;
- DrvSprites = Next; Next += 0x002000 * 16 * 16;
-
- MemEnd = Next;
-
- return 0;
-}
-
-static INT32 PunkshotMemIndex()
-{
- UINT8 *Next; Next = Mem;
-
- Drv68KRom = Next; Next += 0x040000;
- DrvZ80Rom = Next; Next += 0x010000;
- DrvSoundRom = Next; Next += 0x080000;
- DrvTileRom = Next; Next += 0x080000;
- DrvSpriteRom = Next; Next += 0x200000;
-
- RamStart = Next;
-
- Drv68KRam = Next; Next += 0x004000;
- DrvZ80Ram = Next; Next += 0x000800;
- DrvPaletteRam = Next; Next += 0x001000;
-
- RamEnd = Next;
-
- konami_palette32 = (UINT32*)Next;
- DrvPalette = (UINT32*)Next; Next += 0x00810 * sizeof(UINT32);
- DrvTiles = Next; Next += 0x004000 * 8 * 8;
- DrvSprites = Next; Next += 0x004000 * 16 * 16;
-
- MemEnd = Next;
-
- return 0;
-}
-
-static INT32 DrvDoReset()
-{
- SekOpen(0);
- SekReset();
- SekClose();
-
- ZetOpen(0);
- ZetReset();
- ZetClose();
-
- BurnYM2151Reset();
-
- KonamiICReset();
-
- bIrqEnable = 0;
- DrvSoundLatch = 0;
- TitleSoundLatch = 0;
- PlayTitleSample = 0;
- TitleSamplePos = 0;
- PriorityFlag = 0;
-
- return 0;
-}
-
-static INT32 TmntDoReset()
-{
- INT32 nRet = DrvDoReset();
-
- UPD7759Reset();
-
- UPD7759StartWrite(0, 0);
- UPD7759ResetWrite(0, 1);
-
- return nRet;
-}
-
-static INT32 CuebrickDoReset()
-{
- SekOpen(0);
- SekReset();
- SekClose();
-
- BurnYM2151Reset();
-
- KonamiICReset();
-
- bIrqEnable = 0;
- DrvNvRamBank = 0;
- PriorityFlag = 0;
- CuebrickSndIrqFire = 0;
-
- return 0;
-}
-
-static INT32 BlswhstlDoReset()
-{
- SekOpen(0);
- SekReset();
- SekClose();
-
- ZetOpen(0);
- ZetReset();
- ZetClose();
-
- BurnYM2151Reset();
- K053260Reset(0);
-
- KonamiICReset();
-
- EEPROMReset();
-
- if (EEPROMAvailable()) {
- InitEEPROMCount = 0;
- } else {
- InitEEPROMCount = 10;
- }
-
- BlswhstlTileRomBank = 0;
-
- K052109_irq_enabled = 0;
-
- return 0;
-}
-
-static INT32 SsridersDoReset()
-{
- static const UINT8 thndrx2_eeprom_data[128] = { // Enable stereo sound (Dink)
- 0x00, 0x00, 0x40, 0xC0, 0x80, 0x20, 0x00, 0x0E, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
- 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
- 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
- 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
- 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
- 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
- 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
- 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
- };
- static const UINT8 thndrx2j_eeprom_data[128] = { // Enable stereo sound (Dink)
- 0x00, 0x00, 0x40, 0xC0, 0x80, 0x20, 0x00, 0xD6, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
- 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
- 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
- 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
- 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
- 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
- 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
- 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
- };
- static const UINT8 thndrx2a_eeprom_data[128] = { // Enable stereo sound (Dink)
- 0x00, 0x00, 0x40, 0xC0, 0x80, 0x20, 0x00, 0x2E, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
- 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
- 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
- 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
- 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
- 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
- 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
- 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
- };
-
- SekOpen(0);
- SekReset();
- SekClose();
-
- ZetOpen(0);
- ZetReset();
- ZetClose();
-
- BurnYM2151Reset();
- K053260Reset(0);
-
- KonamiICReset();
-
- EEPROMReset();
-
- if (EEPROMAvailable()) {
- InitEEPROMCount = 0;
- } else {
- if (strncmp(BurnDrvGetTextA(DRV_NAME), "thndrx2j", 8) == 0) {
- EEPROMFill(thndrx2j_eeprom_data, 0, 128);
- } else
- if (strncmp(BurnDrvGetTextA(DRV_NAME), "thndrx2a", 8) == 0) {
- EEPROMFill(thndrx2a_eeprom_data, 0, 128);
- } else
- if (strncmp(BurnDrvGetTextA(DRV_NAME), "thndrx2", 7) == 0) {
- EEPROMFill(thndrx2_eeprom_data, 0, 128);
- } else {
- InitEEPROMCount = 10;
- }
- }
-
- K052109_irq_enabled = 0;
- DrvVBlank = 0;
-
- dim_c = 0;
- dim_v = 0;
-
- return 0;
-}
-
-static INT32 PunkshotDoReset()
-{
- SekOpen(0);
- SekReset();
- SekClose();
-
- ZetOpen(0);
- ZetReset();
- ZetClose();
-
- BurnYM2151Reset();
- K053260Reset(0);
-
- KonamiICReset();
-
- K052109_irq_enabled = 0;
- DrvVBlank = 0;
-
- return 0;
-}
-
-UINT8 __fastcall Tmnt68KReadByte(UINT32 a)
-{
- K052109WordNoA12Read(0x100000)
- K051937ByteRead(0x140000)
- K051960ByteRead(0x140400)
-
- switch (a) {
- case 0x0a0001: {
- return 0xff - DrvInput[0];
- }
-
- case 0x0a0003: {
- return 0xff - DrvInput[1];
- }
-
- case 0x0a0005: {
- return 0xff - DrvInput[2];
- }
-
- case 0x0a0007: {
- return 0xff - DrvInput[3];
- }
-
- case 0x0a0011: {
- return DrvDip[0];
- }
-
- case 0x0a0013: {
- return DrvDip[1];
- }
-
- case 0x0a0015: {
- return 0xff - DrvInput[4];
- }
-
- case 0x0a0019: {
- return DrvDip[2];
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("68K Read byte => %06X\n"), a);
- }
- }
-
- return 0;
-}
-
-void __fastcall Tmnt68KWriteByte(UINT32 a, UINT8 d)
-{
- K052109WordNoA12Write(0x100000)
- K015937ByteWrite(0x140000)
- K051960ByteWrite(0x140400)
-
- switch (a) {
- case 0x0a0001: {
- static INT32 Last;
- if (Last == 0x08 && (d & 0x08) == 0) {
- ZetOpen(0);
- ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
- ZetClose();
- }
- Last = d & 0x08;
-
- bIrqEnable = (d & 0x20) ? 1 : 0;
-
- K052109RMRDLine = d & 0x80;
- return;
- }
-
- case 0x0a0009: {
- DrvSoundLatch = d;
- return;
- }
-
- case 0x0a0011: {
- // watchdog write
- return;
- }
-
- case 0x0c0001: {
- PriorityFlag = (d & 0x0c) >> 2;
- return;
- }
-
- case 0x10e801: {
- // nop???
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("68K Write byte => %06X, %02X\n"), a, d);
- }
- }
-}
-
-UINT16 __fastcall Tmnt68KReadWord(UINT32 a)
-{
- switch (a) {
- default: {
- bprintf(PRINT_NORMAL, _T("68K Read word => %06X\n"), a);
- }
- }
-
- return 0;
-}
-
-void __fastcall Tmnt68KWriteWord(UINT32 a, UINT16 d)
-{
- K051960WordWrite(0x140400)
-
- switch (a) {
- default: {
- bprintf(PRINT_NORMAL, _T("68K Write word => %06X, %04X\n"), a, d);
- }
- }
-}
-
-UINT8 __fastcall Mia68KReadByte(UINT32 a)
-{
- K052109WordNoA12Read(0x100000)
- K051937ByteRead(0x140000)
- K051960ByteRead(0x140400)
-
- switch (a) {
- case 0x0a0001: {
- return 0xff - DrvInput[0];
- }
-
- case 0x0a0003: {
- return 0xff - DrvInput[1];
- }
-
- case 0x0a0005: {
- return 0xff - DrvInput[2];
- }
-
- case 0x0a0011: {
- return DrvDip[0];
- }
-
- case 0x0a0013: {
- return DrvDip[1];
- }
-
- case 0x0a0019: {
- return DrvDip[2];
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("68K Read byte => %06X\n"), a);
- }
- }
-
- return 0;
-}
-
-void __fastcall Mia68KWriteByte(UINT32 a, UINT8 d)
-{
- K052109WordNoA12Write(0x100000)
- K015937ByteWrite(0x140000)
- K051960ByteWrite(0x140400)
-
- switch (a) {
- case 0x0a0001: {
- static INT32 Last;
- if (Last == 0x08 && (d & 0x08) == 0) {
- ZetOpen(0);
- ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
- ZetClose();
- }
- Last = d & 0x08;
-
- bIrqEnable = (d & 0x20) ? 1 : 0;
-
- K052109RMRDLine = d & 0x80;
- return;
- }
-
- case 0x0a0009: {
- DrvSoundLatch = d;
- return;
- }
-
- case 0x0a0011: {
- // watchdog write
- return;
- }
-
- case 0x10e801: {
- // nop???
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("68K Write byte => %06X, %02X\n"), a, d);
- }
- }
-}
-
-UINT16 __fastcall Mia68KReadWord(UINT32 a)
-{
- switch (a) {
- default: {
- bprintf(PRINT_NORMAL, _T("68K Read word => %06X\n"), a);
- }
- }
-
- return 0;
-}
-
-void __fastcall Mia68KWriteWord(UINT32 a, UINT16 d)
-{
- K051960WordWrite(0x140400)
-
- switch (a) {
- default: {
- bprintf(PRINT_NORMAL, _T("68K Write word => %06X, %04X\n"), a, d);
- }
- }
-}
-
-UINT8 __fastcall Cuebrick68KReadByte(UINT32 a)
-{
- K052109WordNoA12Read(0x100000)
- K051937ByteRead(0x140000)
- K051960ByteRead(0x140400)
-
- if (a >= 0x0b0000 && a <= 0x0b03ff) {
- return DrvNvRam[(a - 0x0b0000) + (DrvNvRamBank * 0x400)];
- }
-
- switch (a) {
- case 0x0a0001: {
- return 0xff - DrvInput[0];
- }
-
- case 0x0a0003: {
- return 0xff - DrvInput[1];
- }
-
- case 0x0a0005: {
- return 0xff - DrvInput[2];
- }
-
- case 0x0a0011: {
- return DrvDip[1];
- }
-
- case 0x0a0013: {
- return DrvDip[0];
- }
-
- case 0x0a0019: {
- return DrvDip[2];
- }
-
- case 0x0c0000:
- return 0xff;
-
- case 0x0c0002: {
- return BurnYM2151ReadStatus();
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("68K Read byte => %06X\n"), a);
- }
- }
-
- return 0;
-}
-
-void __fastcall Cuebrick68KWriteByte(UINT32 a, UINT8 d)
-{
- K052109WordNoA12Write(0x100000)
- K015937ByteWrite(0x140000)
- K051960ByteWrite(0x140400)
-
- if (a >= 0x0b0000 && a <= 0x0b03ff) {
- DrvNvRam[(a - 0x0b0000) + (DrvNvRamBank * 0x400)] = d;
- return;
- }
-
- switch (a) {
- case 0x0a0001: {
- bIrqEnable = (d & 0x20) ? 1 : 0;
-
- K052109RMRDLine = d & 0x80;
- return;
- }
-
- case 0x0a0011: {
- // watchdog write
- return;
- }
-
- case 0x0b0400: {
- DrvNvRamBank = d;
- return;
- }
-
- case 0x0c0000: {
- BurnYM2151SelectRegister(d);
- return;
- }
-
- case 0x0c0002: {
- BurnYM2151WriteRegister(d);
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("68K Write byte => %06X, %02X\n"), a, d);
- }
- }
-}
-
-UINT16 __fastcall Cuebrick68KReadWord(UINT32 a)
-{
- if (a >= 0x0b0000 && a <= 0x0b03ff) {
- SEK_DEF_READ_WORD(0, a);
- return 0;
- }
-
- switch (a) {
- default: {
- bprintf(PRINT_NORMAL, _T("68K Read word => %06X\n"), a);
- }
- }
-
- return 0;
-}
-
-void __fastcall Cuebrick68KWriteWord(UINT32 a, UINT16 d)
-{
- K051960WordWrite(0x140400)
-
- if (a >= 0x0b0000 && a <= 0x0b03ff) {
- SEK_DEF_WRITE_WORD(0, a, d);
- return;
- }
-
- switch (a) {
- default: {
- bprintf(PRINT_NORMAL, _T("68K Write word => %06X, %04X\n"), a, d);
- }
- }
-}
-
-UINT8 __fastcall Blswhstl68KReadByte(UINT32 a)
-{
- if (a >= 0x180000 && a <= 0x183fff) {
- INT32 Offset = (a - 0x180000) >> 1;
-
- if (a & 1) {
- return K052109Read(Offset + 0x2000);
- } else {
- return K052109Read(Offset + 0x0000);
- }
- }
-
- if (a >= 0x300000 && a <= 0x303fff) {
- INT32 Offset = (a - 0x300000);
-
- if (Offset & (0x31 << 1)) {
- return DrvSpriteRam[Offset ^ 1];
- } else {
- Offset = ((Offset & (0x000e << 1)) >> 1) | ((Offset & (0x1fc0 << 1)) >> 3);
- return K053245ReadWord(0, Offset/2) >> ((~a & 1) << 3);
- }
- }
-
- if (a >= 0x500000 && a <= 0x50003f) {
- INT32 Offset = (a - 0x500000) >> 1;
- if (a & 1) {
- return K054000Read(Offset);
- } else {
- return 0;
- }
- }
-
- if (a >= 0x680000 && a <= 0x68001f) {
- INT32 Offset = (a - 0x680000) >> 1;
- Offset &= ~1;
-
- if (a & 1) {
- return K053244Read(0, Offset + 1);
- } else {
- return K053244Read(0, Offset + 0);
- }
- }
-
- switch (a) {
- case 0x700001: {
- return 0xff - DrvInput[1];
- }
-
- case 0x700003: {
- return 0xff - DrvInput[2];
- }
-
- case 0x700005: {
- UINT8 Res;
- static INT32 Toggle;
-
- Res = 0xff - DrvInput[0];
-
- if (InitEEPROMCount) {
- InitEEPROMCount--;
- Res &= 0xf7;
- }
-
- Toggle ^= 0x40;
-
- return Res ^ Toggle;
- }
-
- case 0x700007: {
- return 0xfe | (EEPROMRead() & 0x01);
- }
-
- case 0x780601:
- case 0x780603: {
- INT32 Offset = (a - 0x780601) >> 1;
- return K053260Read(0, Offset + 2);
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("68K Read byte => %06X\n"), a);
- }
- }
-
- return 0;
-}
-
-void __fastcall Blswhstl68KWriteByte(UINT32 a, UINT8 d)
-{
- if (a >= 0x180000 && a <= 0x183fff) {
- INT32 Offset = (a - 0x180000) >> 1;
-
- if (a & 1) {
- K052109Write(Offset + 0x2000, d);
- } else {
- K052109Write(Offset + 0x0000, d);
- }
- return;
- }
-
- if (a >= 0x300000 && a <= 0x303fff) {
- INT32 Offset = (a - 0x300000);
- DrvSpriteRam[Offset ^ 1] = d;
-
- if (!(Offset & (0x31 << 1))) {
- Offset = ((Offset & (0x000e << 1)) >> 1) | ((Offset & (0x1fc0 << 1)) >> 3);
-
- INT32 data = K053245ReadWord(0, Offset/2);
-
- if (a & 1) {
- data &= 0xff00;
- data |= d;
- } else {
- data &= 0x00ff;
- data |= d << 8;
- }
-
- K053245WriteWord(0, Offset / 2, data);
- }
- return;
- }
-
- if (a >= 0x500000 && a <= 0x50003f) {
- INT32 Offset = (a - 0x500000) >> 1;
- if (a & 1) K054000Write(Offset, d);
- return;
- }
-
- if (a >= 0x680000 && a <= 0x68001f) {
- INT32 Offset = (a - 0x680000) >> 1;
- Offset &= ~1;
-
- if (a & 1) {
- K053244Write(0, Offset + 1, d);
- } else {
- K053244Write(0, Offset + 0, d);
- }
- return;
- }
-
- if (a >= 0x780700 && a <= 0x78071f) {
- K053251Write((a - 0x780700) >> 1, d);
- return;
- }
-
- switch (a) {
- case 0x700201: {
- EEPROMWrite(d & 0x04, d & 0x02, d & 0x01);
- return;
- }
-
- case 0x700301: {
- K052109RMRDLine = d & 0x08;
- BlswhstlTileRomBank = (d & 0x80) >> 7;
- return;
- }
-
- case 0x700401: {
- // watchdog write
- return;
- }
-
- case 0x780601: {
- K053260Write(0, 0, d);
- return;
- }
-
- case 0x780605: {
- ZetOpen(0);
- ZetSetVector(0xff);
- ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
- ZetClose();
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("68K Write byte => %06X, %02X\n"), a, d);
- }
- }
-}
-
-UINT16 __fastcall Blswhstl68KReadWord(UINT32 a)
-{
- if (a >= 0x300000 && a <= 0x303fff) {
- UINT16 *SpriteRam = (UINT16*)DrvSpriteRam;
- INT32 Offset = (a - 0x300000) >> 1;
-
- if (Offset & 0x31) {
- return BURN_ENDIAN_SWAP_INT16(SpriteRam[Offset]);
- } else {
- Offset = ((Offset & 0x000e) >> 1) | ((Offset & 0x1fc0) >> 3);
- return K053245ReadWord(0, Offset);
- }
- }
-
- switch (a) {
- default: {
- bprintf(PRINT_NORMAL, _T("68K Read word => %06X\n"), a);
- }
- }
-
- return 0;
-}
-
-void __fastcall Blswhstl68KWriteWord(UINT32 a, UINT16 d)
-{
- if (a >= 0x180000 && a <= 0x183fff) {
- INT32 Offset = (a - 0x180000) >> 1;
-
- K052109Write(Offset + 0x2000, d >> 8);
- K052109Write(Offset + 0x0000, d & 0xff);
- return;
- }
-
- if (a >= 0x300000 && a <= 0x303fff) {
- UINT16 *SpriteRam = (UINT16*)DrvSpriteRam;
- INT32 Offset = (a - 0x300000) >> 1;
- SpriteRam[Offset] = BURN_ENDIAN_SWAP_INT16(d);
-
- if (!(Offset & 0x0031)) {
- Offset = ((Offset & 0x000e) >> 1) | ((Offset & 0x1fc0) >> 3);
- K053245WriteWord(0, Offset, d);
- }
- return;
- }
-
- if (a >= 0x500000 && a <= 0x50003f) {
- INT32 Offset = (a - 0x500000) >> 1;
- K054000Write(Offset, d & 0xff);
- return;
- }
-
- if (a >= 0x680000 && a <= 0x68001f) {
- INT32 Offset = (a - 0x680000) >> 1;
- Offset &= ~1;
-
- K053244Write(0, Offset + 1, d & 0xff);
- K053244Write(0, Offset + 0, d >> 8);
- return;
- }
-
- switch (a) {
- default: {
- bprintf(PRINT_NORMAL, _T("68K Write word => %06X, %04X\n"), a, d);
- }
- }
-}
-
-#ifdef _XBOX1
-#define pow powf
-#endif
-
-static void tmnt2_protection_write()
-{
- UINT32 src_addr, dst_addr, mod_addr, attr1, code, attr2, cbase, cmod, color;
- INT32 xoffs, yoffs, xmod, ymod, zmod, xzoom, yzoom, i;
- UINT16 *mcu;
- UINT16 src[4], mod[24];
- UINT8 keepaspect, xlock, ylock, zlock;
-
- mcu = (UINT16*)(Drv68KRam + 0x4800);
- if ((BURN_ENDIAN_SWAP_INT16(mcu[8]) & 0xff00) != 0x8200) return;
-
- src_addr = (BURN_ENDIAN_SWAP_INT16(mcu[0]) | (BURN_ENDIAN_SWAP_INT16(mcu[1])&0xff)<<16) >> 1;
- dst_addr = (BURN_ENDIAN_SWAP_INT16(mcu[2]) | (BURN_ENDIAN_SWAP_INT16(mcu[3])&0xff)<<16) >> 1;
- mod_addr = (BURN_ENDIAN_SWAP_INT16(mcu[4]) | (BURN_ENDIAN_SWAP_INT16(mcu[5])&0xff)<<16) >> 1;
- zlock = (BURN_ENDIAN_SWAP_INT16(mcu[8]) & 0xff) == 0x0001;
-
- for (i=0; i< 4; i++) src[i] = SekReadWord((src_addr + i) * 2);
- for (i=0; i<24; i++) mod[i] = SekReadWord((mod_addr + i) * 2);
-
- code = src[0]; // code
-
- i= src[1];
- attr1 = i>>2 & 0x3f00; // flip y, flip x and sprite size
- attr2 = i & 0x380; // mirror y, mirror x, shadow
- cbase = i & 0x01f; // base color
- cmod = mod[0x2a/2]>>8;
- color = (cbase != 0x0f && cmod <= 0x1f && !zlock) ? cmod : cbase;
-
- xoffs = (INT16)src[2]; // local x
- yoffs = (INT16)src[3]; // local y
-
- i = mod[0];
- attr2 |= i & 0x0060; // priority
- keepaspect = (i & 0x0014) == 0x0014;
- if (i & 0x8000) { attr1 |= 0x8000; } // active
- if (keepaspect) { attr1 |= 0x4000; } // keep aspect
- if (i & 0x4000) { attr1 ^= 0x1000; xoffs = -xoffs; } // flip x
-
- xmod = (INT16)mod[6]; // global x
- ymod = (INT16)mod[7]; // global y
- zmod = (INT16)mod[8]; // global z
- xzoom = mod[0x1c/2];
- yzoom = (keepaspect) ? xzoom : mod[0x1e/2];
-
- ylock = xlock = (i & 0x0020 && (!xzoom || xzoom == 0x100));
-
- if (!xlock)
- {
- i = xzoom - 0x4f00;
- if (i > 0)
- {
- i >>= 8;
- xoffs += (INT32)(pow(i, /*1.898461*/1.891292) * xoffs / 599.250121);
- }
- else if (i < 0)
- {
- i = (i>>3) + (i>>4) + (i>>5) + (i>>6) + xzoom;
- xoffs = (i > 0) ? (xoffs * i / 0x4f00) : 0;
- }
- }
- if (!ylock)
- {
- i = yzoom - 0x4f00;
- if (i > 0)
- {
- i >>= 8;
- yoffs += (INT32)(pow(i, /*1.898461*/1.891292) * yoffs / 599.250121);
- }
- else if (i < 0)
- {
- i = (i>>3) + (i>>4) + (i>>5) + (i>>6) + yzoom;
- yoffs = (i > 0) ? (yoffs * i / 0x4f00) : 0;
- }
-
- }
- if (!zlock) yoffs += zmod;
- xoffs += xmod;
- yoffs += ymod;
-
- SekWriteWord((dst_addr + 0) * 2, attr1);
- SekWriteWord((dst_addr + 2) * 2, code);
- SekWriteWord((dst_addr + 4) * 2, (UINT32)yoffs);
- SekWriteWord((dst_addr + 6) * 2, (UINT32)xoffs);
- SekWriteWord((dst_addr + 12) * 2, attr2 | color);
-}
-
-void __fastcall Tmnt268KProtWord(UINT32 a, UINT16 d)
-{
- *((UINT16*)(Drv68KRam + 0x4800 + (a & 0x1e))) = BURN_ENDIAN_SWAP_INT16(d);
-}
-
-void __fastcall Tmnt268KProtByte(UINT32 a, UINT8 d)
-{
- a &= 0x1f;
- Drv68KRam[0x4801 ^ a] = d;
-
- if (a == 0x18) tmnt2_protection_write();
-}
-
-static UINT16 ssriders_protection_r()
-{
- INT32 data = SekReadWord(0x105a0a);
- INT32 cmd = SekReadWord(0x1058fc);
-
- switch (cmd)
- {
- case 0x100b:
- return 0x0064;
-
- case 0x6003:
- return data & 0x000f;
-
- case 0x6004:
- return data & 0x001f;
-
- case 0x6000:
- return data & 0x0001;
-
- case 0x0000:
- return data & 0x00ff;
-
- case 0x6007:
- return data & 0x00ff;
-
- case 0x8abc:
- /* collision table */
- data = -SekReadWord(0x105818);
- data = ((data / 8 - 4) & 0x1f) * 0x40;
- data += ((SekReadWord(0x105cb0) + SekReadWord(0x1040c8) - 6) / 8 + 12) & 0x3f;
- return data;
-
- default:
- return 0xffff;
- }
-}
-
-static void ssriders_protection_w(INT32 offset)
-{
- offset >>= 1;
-
- if (offset == 1)
- {
- INT32 logical_pri,hardware_pri;
-
- /* create sprite priority attributes */
- hardware_pri = 1;
- for (logical_pri = 1;logical_pri < 0x100;logical_pri <<= 1)
- {
- INT32 i;
-
- for (i = 0;i < 128;i++)
- {
- if ((SekReadWord(0x180006 + 128*i) >> 8) == (UINT16)logical_pri)
- {
- K053245Write(0,((8*i) * 2)+1,hardware_pri);
- hardware_pri++;
- }
- }
- }
- }
-}
-
-UINT8 __fastcall Ssriders68KReadByte(UINT32 a)
-{
- if (a >= 0x180000 && a <= 0x183fff) {
- INT32 Offset = (a - 0x180000);
-
- if (Offset & (0x31 << 1)) {
- return DrvSpriteRam[Offset ^ 1];
- } else {
- Offset = ((Offset & (0x000e << 1)) >> 1) | ((Offset & (0x1fc0 << 1)) >> 3);
- return K053245ReadWord(0, Offset / 2) >> ((~a & 1) << 3);
- }
- }
-
- if ((a & 0xffff80) == 0x1c0500) {
- return Drv68KRam[0x4001 ^ (a & 0x7f)];
- }
-
- if (a >= 0x5a0000 && a <= 0x5a001f) {
- INT32 Offset = (a - 0x5a0000) >> 1;
- Offset &= ~1;
-
- if (a & 1) {
- return K053244Read(0, Offset + 1);
- } else {
- return K053244Read(0, Offset + 0);
- }
- }
-
- if (a >= 0x600000 && a <= 0x603fff) {
- INT32 Offset = (a - 0x600000) >> 1;
-
- if (a & 1) {
- return K052109Read(Offset + 0x2000);
- } else {
- return K052109Read(Offset + 0x0000);
- }
- }
-
- switch (a) {
- case 0x1c0800:
- case 0x1c0801:
- return ssriders_protection_r() >> ((~a & 1) << 3);
-
- case 0x1c0001: {
- return 0xff - DrvInput[1];
- }
-
- case 0x1c0003: {
- return 0xff - DrvInput[2];
- }
-
- case 0x1c0005: {
- return 0xff - DrvInput[3];
- }
-
- case 0x1c0007: {
- return 0xff - DrvInput[4];
- }
-
- case 0x1c0101: {
- return 0xff - DrvInput[0];
- }
-
- case 0x1c0103: {
- UINT8 Res;
- static INT32 Toggle;
-
- Res = DrvInput[5];
- if (DrvVBlank) Res |= 0x08;
- Res |= EEPROMRead() & 0x01;
-
- if (InitEEPROMCount) {
- InitEEPROMCount--;
- Res &= 0x7f;
- }
-
- Toggle ^= 0x04;
-
- return Res ^ Toggle;
- }
-
- case 0x1c0401: {
- // watchdog read
- return 0;
- }
-
- case 0x5c0601:
- case 0x5c0603: {
- INT32 Offset = (a - 0x5c0601) >> 1;
- return K053260Read(0, Offset + 2);
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("68K Read byte => %06X\n"), a);
- }
- }
-
- return 0;
-}
-
-void __fastcall Ssriders68KWriteByte(UINT32 a, UINT8 d)
-{
- if (a >= 0x180000 && a <= 0x183fff) {
- INT32 Offset = (a - 0x180000);
- DrvSpriteRam[Offset ^ 1] = d;
-
- if (!(Offset & (0x31 << 1))) {
- Offset = ((Offset & (0x000e << 1)) >> 1) | ((Offset & (0x1fc0 << 1)) >> 3);
-
- INT32 data = K053245ReadWord(0, Offset/2);
-
- if (a & 1) {
- data &= 0xff00;
- data |= d;
- } else {
- data &= 0x00ff;
- data |= d << 8;
- }
-
- K053245WriteWord(0, Offset/2, data);
-
- }
- return;
- }
-
- if ((a & ~3) == 0x1c0800) {
- bprintf (0, _T("protection write byte %x %x\n"), a, d);
- return;
- }
-
- // extra ram for tmnt2
- if ((a & 0xffff80) == 0x1c0500) {
- Drv68KRam[0x4001 ^ (a & 0x7f)] = d;
- //*((UINT16*)(Drv68KRam + 0x4000 + (a & 0x7e))) = d;
- return;
- }
-
- if (a >= 0x5a0000 && a <= 0x5a001f) {
- INT32 Offset = (a - 0x5a0000) >> 1;
- Offset &= ~1;
-
- K053244Write(0, Offset + (a&1), d);
- return;
- }
-
- if (a >= 0x5c0700 && a <= 0x5c071f) {
- K053251Write((a - 0x5c0700) >> 1, d);
- return;
- }
-
- if (a >= 0x600000 && a <= 0x603fff) {
- INT32 Offset = (a - 0x600000) >> 1;
-
- if (a & 1) {
- K052109Write(Offset + 0x2000, d);
- } else {
- K052109Write(Offset + 0x0000, d);
- }
- return;
- }
-
- switch (a) {
- case 0x1c0201: {
- EEPROMWrite(d & 0x04, d & 0x02, d & 0x01);
- K053244BankSelect(0, ((d & 0x20) >> 5) << 2);
- dim_c = d & 0x18;
- return;
- }
-
- case 0x1c0301: {
- K052109RMRDLine = d & 0x08;
- dim_v = (d & 0x70) >> 4;
- return;
- }
-
- case 0x5c0601: {
- K053260Write(0, 0, d);
- return;
- }
-
- case 0x5c0605: {
- ZetOpen(0);
- ZetSetVector(0xff);
- ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
- ZetClose();
- return;
- }
-
- case 0x1c0401: {
- // watchdog write
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("68K Write byte => %06X, %02X\n"), a, d);
- }
- }
-}
-
-UINT16 __fastcall Ssriders68KReadWord(UINT32 a)
-{
- if (a >= 0x180000 && a <= 0x183fff) {
- UINT16 *SpriteRam = (UINT16*)DrvSpriteRam;
- INT32 Offset = (a - 0x180000) >> 1;
-
- if (Offset & 0x31) {
- return BURN_ENDIAN_SWAP_INT16(SpriteRam[Offset]);
- } else {
- Offset = ((Offset & 0x000e) >> 1) | ((Offset & 0x1fc0) >> 3);
- return K053245ReadWord(0, Offset);
- }
- }
-
- if ((a & 0xffff80) == 0x1c0500) {
- return BURN_ENDIAN_SWAP_INT16(*((UINT16*)(Drv68KRam + 0x4000 + (a & 0x7e))));
- }
-
- if (a == 0x1c0800) return ssriders_protection_r();
-
- switch (a) {
- default: {
- bprintf(PRINT_NORMAL, _T("68K Read word => %06X\n"), a);
- }
- }
-
- return 0;
-}
-
-void __fastcall Ssriders68KWriteWord(UINT32 a, UINT16 d)
-{
- if (a >= 0x180000 && a <= 0x183fff) {
- UINT16 *SpriteRam = (UINT16*)DrvSpriteRam;
- INT32 Offset = (a - 0x180000) >> 1;
- SpriteRam[Offset] = BURN_ENDIAN_SWAP_INT16(d);
-
- if (!(Offset & 0x0031)) {
- Offset = ((Offset & 0x000e) >> 1) | ((Offset & 0x1fc0) >> 3);
- K053245WriteWord(0, Offset, d);
- }
- return;
- }
-
- if (a >= 0x5a0000 && a <= 0x5a001f) {
- INT32 Offset = (a - 0x5a0000) >> 1;
- Offset &= ~1;
-
- K053244Write(0, Offset + 1, d & 0xff);
- K053244Write(0, Offset + 0, d >> 8);
- return;
- }
-
- if ((a & 0xffff80) == 0x1c0500) {
- *((UINT16*)(Drv68KRam + 0x4000 + (a & 0x7e))) = BURN_ENDIAN_SWAP_INT16(d);
- return;
- }
-
- if (a == 0x1c0802) {
- ssriders_protection_w(2);
- return;
- }
-
- switch (a) {
- case 0x1c0800:
- case 0x1c0802: {
- ssriders_protection_w(a - 0x1c0800);
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("68K Write word => %06X, %04X\n"), a, d);
- }
- }
-}
-
-UINT8 __fastcall Thndrx268KReadByte(UINT32 a)
-{
- K052109WordNoA12Read(0x600000)
- K051937ByteRead(0x700000)
-
- if ((a & 0xffffc00) == 0x700400) {
- return K051960Read(a & 0x3ff);
- }
-
- if (a >= 0x500000 && a <= 0x50003f) {
- INT32 Offset = (a - 0x500000) >> 1;
- if (a & 1) {
- return K054000Read(Offset);
- } else {
- return 0;
- }
- }
-
- switch (a)
- {
- case 0x400001:
- case 0x400003:
- return K053260Read(0, ((a & 2) >> 1) + 2);
-
- case 0x500200:
- {
- INT32 ret = DrvInput[1]^0xff;
- if (InitEEPROMCount) {
- ret &= 0xf7;
- InitEEPROMCount--;
- }
- return ret;
- }
-
- case 0x500201:
- return DrvInput[0]^0xff;
-
- case 0x500202:
- {
- static INT32 toggle;
- toggle ^= 0x08;
- INT32 ret = 0xfe;
- ret |= (EEPROMRead() & 1);
- ret ^= toggle;
-
- return ret;
- }
-
- case 0x500203:
- return DrvInput[2]^0xff;
- }
-
-
- return 0;
-}
-
-void __fastcall Thndrx268KWriteWord(UINT32 a, UINT16 d)
-{
- if ((a & 0xffffc00) == 0x700400) {
- K051960Write((a & 0x3fe) | 0, d >> 8);
- K051960Write((a & 0x3fe) | 1, d & 0xff);
- return;
- }
-}
-
-void __fastcall Thndrx268KWriteByte(UINT32 a, UINT8 d)
-{
- K052109WordNoA12Write(0x600000)
- K015937ByteWrite(0x700000)
-
- if ((a & 0xffffc00) == 0x700400) {
- K051960Write(a & 0x3ff, d);
- return;
- }
-
- if (a >= 0x300000 && a <= 0x30001f) {
- if (a & 1) K053251Write((a - 0x300000) >> 1, d);
- return;
- }
-
- if (a >= 0x500000 && a <= 0x50003f) {
- INT32 Offset = (a - 0x500000) >> 1;
- if (a & 1) K054000Write(Offset, d);
- return;
- }
-
- switch (a)
- {
- case 0x400001:
- K053260Write(0, 0, d);
- return;
-
- case 0x500101:
- {
- EEPROMWriteBit(d & 0x01);
- EEPROMSetCSLine((d & 0x02) ? EEPROM_CLEAR_LINE : EEPROM_ASSERT_LINE);
- EEPROMSetClockLine((d & 0x04) ? EEPROM_ASSERT_LINE : EEPROM_CLEAR_LINE);
-
- // EEPROMWrite(d & 0x04, d & 0x02, d & 0x01);
-
- static INT32 last;
- if (last == 0 && (d & 0x20) != 0) {
- ZetSetVector(0xff);
- ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
- }
- last = d & 0x20;
-
- K052109RMRDLine = d & 0x40;
- }
- return;
- }
-}
-
-UINT16 __fastcall Lgtnfght68KReadWord(UINT32 a)
-{
- if (a >= 0xb0000 && a <= 0xb3fff) {
- UINT16 *SpriteRam = (UINT16*)DrvSpriteRam;
- INT32 Offset = (a - 0xb0000) >> 1;
-
- if (Offset & 0x31) {
- return BURN_ENDIAN_SWAP_INT16(SpriteRam[Offset]);
- } else {
- Offset = ((Offset & 0x000e) >> 1) | ((Offset & 0x1fc0) >> 3);
- return K053245ReadWord(0, Offset);
- }
- }
-
- return 0;
-}
-
-UINT8 __fastcall Lgtnfght68KReadByte(UINT32 a)
-{
- K052109WordNoA12Read(0x100000)
-
- if (a >= 0xb0000 && a <= 0xb3fff) {
- INT32 Offset = (a - 0xb0000);
-
- if (Offset & (0x31 << 1)) {
- return DrvSpriteRam[Offset ^ 1];
- } else {
- Offset = ((Offset & (0x000e << 1)) >> 1) | ((Offset & (0x1fc0 << 1)) >> 3);
- return K053245ReadWord(0, Offset / 2) >> ((~a & 1) << 3);
- }
- }
-
- if (a >= 0xc0000 && a <= 0xc001f) {
- INT32 Offset = (a - 0xc0000) >> 1;
- Offset &= ~1;
-
- if (a & 1) {
- return K053244Read(0, Offset + 1);
- } else {
- return K053244Read(0, Offset + 0);
- }
- }
-
- switch (a)
- {
- case 0x0a0001:
- return ~DrvInput[0] & 0xfb;
-
- case 0x0a0003:
- return ~DrvInput[1];
-
- case 0x0a0005:
- return ~DrvInput[2];
-
- case 0x0a0007:
- return DrvDip[0];
-
- case 0x0a0009:
- return DrvDip[1];
-
- case 0x0a0011:
- return DrvDip[2];
-
- case 0x0a0021:
- case 0x0a0023:
- return K053260Read(0, ((a & 2) >> 1) + 2); // k053260
- }
-
- return 0;
-}
-
-void __fastcall Lgtnfght68KWriteWord(UINT32 a, UINT16 d)
-{
- if (a >= 0xb0000 && a <= 0xb3fff) {
- UINT16 *SpriteRam = (UINT16*)DrvSpriteRam;
- INT32 Offset = (a - 0xb0000) >> 1;
- SpriteRam[Offset] = BURN_ENDIAN_SWAP_INT16(d);
-
- if (!(Offset & 0x0031)) {
- Offset = ((Offset & 0x000e) >> 1) | ((Offset & 0x1fc0) >> 3);
- K053245WriteWord(0, Offset, d);
- }
- return;
- }
-}
-
-void __fastcall Lgtnfght68KWriteByte(UINT32 a, UINT8 d)
-{
- K052109WordNoA12Write(0x100000)
-
- if (a >= 0x0e0000 && a <= 0x0e001f) {
- K053251Write((a - 0x0e0000) >> 1, d);
- return;
- }
-
- if (a >= 0xb0000 && a <= 0xb3fff) {
- INT32 Offset = (a - 0xb0000);
- DrvSpriteRam[Offset ^ 1] = d;
-
- if (!(Offset & (0x31 << 1))) {
- Offset = ((Offset & (0x000e << 1)) >> 1) | ((Offset & (0x1fc0 << 1)) >> 3);
-
- INT32 data = K053245ReadWord(0, Offset/2);
-
- if (a & 1) {
- data &= 0xff00;
- data |= d;
- } else {
- data &= 0x00ff;
- data |= d << 8;
- }
-
- K053245WriteWord(0, Offset/2, data);
-
- }
- return;
- }
-
- if (a >= 0xc0000 && a <= 0xc001f) {
- INT32 Offset = (a - 0xc0000) >> 1;
- Offset &= ~1;
-
- K053244Write(0, Offset + (a&1), d);
- return;
- }
-
- switch (a)
- {
- case 0xa0019:
- {
- static INT32 last;
- if (last == 0 && (d & 0x4) != 0) {
- ZetSetVector(0xff);
- ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
- }
- last = d & 0x4;
-
- K052109RMRDLine = d & 0x8;
- }
- return;
-
- case 0xa0021:
- K053260Write(0, 0, d);
- return;
-
- case 0xa0029: // watchdog
- return;
- }
-}
-
-UINT16 __fastcall Punkshot68KReadWord(UINT32 a)
-{
- if ((a & 0xfffc00) == 0x110400) {
- return K051960Read((a & 0x3fe) | 1) | (K051960Read((a & 0x3fe) | 0) << 8);
- }
-
- return 0;
-}
-
-UINT8 __fastcall Punkshot68KReadByte(UINT32 a)
-{
- K052109WordNoA12Read(0x100000)
- K051937ByteRead(0x110000)
- K051960ByteRead(0x110400)
-
- switch (a)
- {
- case 0x0a0000:
- return DrvDip[1];
-
- case 0x0a0001:
- return DrvDip[0];
-
- case 0x0a0003:
- return ~DrvInput[0];
-
- case 0x0a0002:
- return DrvDip[2] | (~DrvInput[5] & 0x0f);
-
- case 0x0a0005:
- return ~DrvInput[3];
-
- case 0x0a0004:
- return ~DrvInput[4];
-
- case 0x0a0007:
- return ~DrvInput[1];
-
- case 0x0a0006:
- return ~DrvInput[2];
-
- case 0x0a0041:
- case 0x0a0043:
- return K053260Read(0, ((a & 2) >> 1) | 2);
-
- case 0xfffffc:
- case 0xfffffd:
- case 0xfffffe:
- case 0xffffff:
- return BurnRandom();
- }
-
- return 0;
-}
-
-void __fastcall Punkshot68KWriteWord(UINT32 a, UINT16 d)
-{
- if ((a & 0xfffc00) == 0x110400) {
- K051960Write((a & 0x3fe) | 0, d >> 8);
- K051960Write((a & 0x3fe) | 1, d & 0xff);
-
- return;
- }
-
- if ((a & 0xff8000) == 0x100000) {
- SekWriteByte(a+1, d & 0xff);
- return;
- }
-}
-
-void __fastcall Punkshot68KWriteByte(UINT32 a, UINT8 d)
-{
- K052109WordNoA12Write(0x100000)
- K015937ByteWrite(0x110000)
- K051960ByteWrite(0x110400)
-
- if ((a & 0xffffe1) == 0xa0061) {
- K053251Write((a & 0x1f) >> 1, d);
- return;
- }
-
- switch (a)
- {
- case 0x0a0020:
- case 0x0a0021:
- {
- static INT32 last;
- K052109RMRDLine = d & 0x08;
-
- if (last == 0x04 && (d & 0x04) == 0x00) {
- ZetSetVector(0xff);
- ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
- }
-
- last = d & 0x04;
- }
- return;
-
- case 0x0a0041:
- K053260Write(0, 0, d);
- return;
-
- case 0x0a0081:
- // watchdog
- return;
- }
-}
-
-UINT8 __fastcall TmntZ80Read(UINT16 a)
-{
- if (a >= 0xb000 && a <= 0xb00d) {
- return K007232ReadReg(0, a - 0xb000);
- }
-
- switch (a) {
- case 0x9000: {
- return TitleSoundLatch;
- }
-
- case 0xa000: {
- ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
- return DrvSoundLatch;
- }
-
- case 0xc001: {
- return BurnYM2151ReadStatus();
- }
-
- case 0xf000: {
- return UPD7759BusyRead(0);
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 Read => %04X\n"), a);
- }
- }
-
- return 0;
-}
-
-void __fastcall TmntZ80Write(UINT16 a, UINT8 d)
-{
- if (a >= 0xb000 && a <= 0xb00d) {
- K007232WriteReg(0, (a - 0xb000), d);
- return;
- }
-
- switch (a) {
- case 0x9000: {
- TitleSoundLatch = d;
- if (d & 0x04) {
- PlayTitleSample = 1;
- } else {
- PlayTitleSample = 0;
- TitleSamplePos = 0;
- }
-
- UPD7759ResetWrite(0, d & 2);
- return;
- }
-
- case 0xc000: {
- BurnYM2151SelectRegister(d);
- return;
- }
-
- case 0xc001: {
- BurnYM2151WriteRegister(d);
- return;
- }
-
- case 0xd000: {
- UPD7759PortWrite(0, d);
- return;
- }
-
- case 0xe000: {
- UPD7759StartWrite(0, d);
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 Write => %04X, %02X\n"), a, d);
- }
- }
-}
-
-UINT8 __fastcall MiaZ80Read(UINT16 a)
-{
- if (a >= 0xb000 && a <= 0xb00d) {
- return K007232ReadReg(0, a - 0xb000);
- }
-
- switch (a) {
- case 0xa000: {
- ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
- return DrvSoundLatch;
- }
-
- case 0xc001: {
- return BurnYM2151ReadStatus();
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 Read => %04X\n"), a);
- }
- }
-
- return 0;
-}
-
-void __fastcall MiaZ80Write(UINT16 a, UINT8 d)
-{
- if (a >= 0xb000 && a <= 0xb00d) {
- K007232WriteReg(0, (a - 0xb000), d);
- return;
- }
-
- switch (a) {
- case 0xc000: {
- BurnYM2151SelectRegister(d);
- return;
- }
-
- case 0xc001: {
- BurnYM2151WriteRegister(d);
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 Write => %04X, %02X\n"), a, d);
- }
- }
-}
-
-UINT8 __fastcall BlswhstlZ80Read(UINT16 a)
-{
- if (a >= 0xfa00 && a <= 0xfa2f) {
- if (a == 0xfa00) ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
- return K053260Read(0, a - 0xfa00);
- }
-
- switch (a) {
- case 0xf801: {
- return BurnYM2151ReadStatus();
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 Read => %04X\n"), a);
- }
- }
-
- return 0;
-}
-
-void __fastcall BlswhstlZ80Write(UINT16 a, UINT8 d)
-{
- if (a >= 0xfa00 && a <= 0xfa2f) {
- K053260Write(0, (a - 0xfa00), d);
- return;
- }
-
- switch (a) {
- case 0xf800: {
- BurnYM2151SelectRegister(d);
- return;
- }
-
- case 0xf801: {
- BurnYM2151WriteRegister(d);
- return;
- }
-
- case 0xfc00: { // tmnt2 needs this
- ZetRun(100);
- ZetNmi();
- return;
- }
-
- default: {
- bprintf(PRINT_NORMAL, _T("Z80 Write => %04X, %02X\n"), a, d);
- }
- }
-}
-
-void __fastcall Thndrx2Z80Write(UINT16 a, UINT8 d)
-{
- if (a >= 0xfc00 && a <= 0xfc2f) {
- K053260Write(0, (a - 0xfc00), d);
- return;
- }
-
- switch (a)
- {
- case 0xf800:
- case 0xf810:
- BurnYM2151SelectRegister(d);
- return;
-
- case 0xf801:
- case 0xf811:
- BurnYM2151WriteRegister(d);
- return;
-
- case 0xfa00:
- ZetRun(100);
- ZetNmi();
- return;
- }
-}
-
-UINT8 __fastcall Thndrx2Z80Read(UINT16 a)
-{
- if (a >= 0xfc00 && a <= 0xfc2f) {
- if (a == 0xfc00) ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
- return K053260Read(0, a - 0xfc00);
- }
-
- switch (a)
- {
- case 0xf801:
- case 0xf811:
- return BurnYM2151ReadStatus();
- }
-
- return 0;
-}
-
-void __fastcall LgtnfghtZ80Write(UINT16 a, UINT8 d)
-{
- if (a >= 0xc000 && a <= 0xc02f) {
- K053260Write(0, (a - 0xc000), d);
- return;
- }
-
- switch (a)
- {
- case 0xa000:
- BurnYM2151SelectRegister(d);
- return;
-
- case 0xa001:
- BurnYM2151WriteRegister(d);
- return;
- }
-}
-
-UINT8 __fastcall LgtnfghtZ80Read(UINT16 a)
-{
- if (a >= 0xc000 && a <= 0xc02f) {
- if (a == 0xc000) ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
- return K053260Read(0, a - 0xc000);
- }
-
- switch (a)
- {
- case 0xa001:
- return BurnYM2151ReadStatus();
- }
-
- return 0;
-}
-
-static void shuffle(UINT16 *buf, INT32 len)
-{
- INT32 i;
- UINT16 t;
-
- if (len == 2) return;
-
- if (len % 4) return;
-
- len /= 2;
-
- for (i = 0;i < len/2;i++) {
- t = buf[len/2 + i];
- buf[len/2 + i] = buf[len + i];
- buf[len + i] = t;
- }
-
- shuffle(buf,len);
- shuffle(buf + len,len);
-}
-
-static void byte_shuffle(UINT8 *buf, INT32 len)
-{
- INT32 i;
- UINT8 t;
-
- if (len == 2) return;
-
- if (len % 4) return;
-
- len /= 2;
-
- for (i = 0;i < len/2;i++) {
- t = buf[len/2 + i];
- buf[len/2 + i] = buf[len + i];
- buf[len + i] = t;
- }
-
- byte_shuffle(buf,len);
- byte_shuffle(buf + len,len);
-}
-
-static void TmntUnscrambleGfx(UINT8 *pSrc, INT32 nLength)
-{
- INT32 bits[32];
- for (INT32 i = 0; i < nLength; i += 4) {
- for (INT32 j = 0; j < 4; j++) {
- for (INT32 k = 0; k < 8; k++) {
- bits[8*j + k] = (pSrc[i + j] >> k) & 1;
- }
- }
-
- for (INT32 j = 0; j < 4; j++) {
- pSrc[i + j] = 0;
- for (INT32 k = 0; k < 8; k++) {
- pSrc[i + j] |= bits[j + 4*k] << k;
- }
- }
- }
-}
-
-static void TmntUnscrambleSprites()
-{
- BurnLoadRom(DrvTempRom + 0x200000, 11, 1);
- UINT8 *SpriteConvTable = DrvTempRom + 0x200000;
-
- memcpy(DrvTempRom, DrvSpriteRom, 0x200000);
-
- for (INT32 A = 0; A < 0x80000; A++) {
- INT32 B, i, entry;
- INT32 bits[10];
-
- static const UINT8 bit_pick_table[10][8] = {
- { 3, 3, 3, 3, 3, 3, 3, 3 },
- { 0, 0, 5, 5, 5, 5, 5, 5 },
- { 1, 1, 0, 0, 0, 7, 7, 7 },
- { 2, 2, 1, 1, 1, 0, 0, 9 },
- { 4, 4, 2, 2, 2, 1, 1, 0 },
- { 5, 6, 4, 4, 4, 2, 2, 1 },
- { 6, 5, 6, 6, 6, 4, 4, 2 },
- { 7, 7, 7, 7, 8, 6, 6, 4 },
- { 8, 8, 8, 8, 7, 8, 8, 6 },
- { 9, 9, 9, 9, 9, 9, 9, 8 }
- };
-
- entry = SpriteConvTable[(A & 0x7f800) >> 11] & 7;
-
- for (i = 0;i < 10;i++)
- bits[i] = (A >> i) & 0x01;
-
- B = A & 0x7fc00;
-
- for (i = 0; i < 10;i++) B |= bits[bit_pick_table[i][entry]] << i;
-
- DrvSpriteRom[4*A+0] = DrvTempRom[4*B+0];
- DrvSpriteRom[4*A+1] = DrvTempRom[4*B+1];
- DrvSpriteRom[4*A+2] = DrvTempRom[4*B+2];
- DrvSpriteRom[4*A+3] = DrvTempRom[4*B+3];
- }
-}
-
-static void MiaUnscrambleSprites()
-{
- memcpy(DrvTempRom, DrvSpriteRom, 0x100000);
-
- for (INT32 A = 0; A < 0x40000; A++) {
- INT32 B, i;
- INT32 bits[8];
- for (i = 0; i < 8; i++) bits[i] = (A >> i) & 0x01;
-
- B = A & 0x3ff00;
-
- if ((A & 0x3c000) == 0x3c000) {
- B |= bits[3] << 0;
- B |= bits[5] << 1;
- B |= bits[0] << 2;
- B |= bits[1] << 3;
- B |= bits[2] << 4;
- B |= bits[4] << 5;
- B |= bits[6] << 6;
- B |= bits[7] << 7;
- } else {
- B |= bits[3] << 0;
- B |= bits[5] << 1;
- B |= bits[7] << 2;
- B |= bits[0] << 3;
- B |= bits[1] << 4;
- B |= bits[2] << 5;
- B |= bits[4] << 6;
- B |= bits[6] << 7;
- }
-
- DrvSpriteRom[4*A+0] = DrvTempRom[4*B+0];
- DrvSpriteRom[4*A+1] = DrvTempRom[4*B+1];
- DrvSpriteRom[4*A+2] = DrvTempRom[4*B+2];
- DrvSpriteRom[4*A+3] = DrvTempRom[4*B+3];
- }
-}
-
-static void TmntDecodeTitleSample()
-{
- for (INT32 i = 0; i < 0x40000; i++) {
- INT32 val = DrvTempRom[2 * i + 0] + (DrvTempRom[(2 * i) + 1] << 8);
- INT32 expo = val >> 13;
-
- val = (val >> 3) & (0x3ff);
- val -= 0x200;
-
- val <<= (expo-3);
-
- DrvTitleSample[i] = val;
- }
-}
-
-static void TmntTitleSampleSetRoute(double nVolume, INT32 nRouteDir)
-{
- TitleSampleGain = nVolume;
- TitleSampleOutputDir = nRouteDir;
-}
-
-static INT32 TilePlaneOffsets[4] = { 24, 16, 8, 0 };
-static INT32 TileXOffsets[8] = { 0, 1, 2, 3, 4, 5, 6, 7 };
-static INT32 TileYOffsets[8] = { 0, 32, 64, 96, 128, 160, 192, 224 };
-static INT32 SpritePlaneOffsets[4] = { 24, 16, 8, 0 };
-static INT32 SpritePlaneOffsets2[4] = { 0, 8, 16, 24 };
-static INT32 SpriteXOffsets[16] = { 0, 1, 2, 3, 4, 5, 6, 7, 256, 257, 258, 259, 260, 261, 262, 263 };
-static INT32 SpriteYOffsets[16] = { 0, 32, 64, 96, 128, 160, 192, 224, 512, 544, 576, 608, 640, 672, 704, 736 };
-
-static void K052109TmntCallback(INT32 Layer, INT32 Bank, INT32 *Code, INT32 *Colour, INT32*, INT32 *)
-{
- *Code |= ((*Colour & 0x03) << 8) | ((*Colour & 0x10) << 6) | ((*Colour & 0x0c) << 9) | (Bank << 13);
- *Colour = LayerColourBase[Layer] + ((*Colour & 0xe0) >> 5);
-}
-
-static void K052109MiaCallback(INT32 Layer, INT32 Bank, INT32 *Code, INT32 *Colour, INT32 *xFlip, INT32 *)
-{
- *xFlip = *Colour & 0x04;
-
- if (Layer == 0) {
- *Code |= ((*Colour & 0x01) << 8);
- *Colour = LayerColourBase[Layer] + ((*Colour & 0x80) >> 5) + ((*Colour & 0x10) >> 1);
- } else {
- *Code |= ((*Colour & 0x01) << 8) | ((*Colour & 0x18) << 6) | (Bank << 11);
- *Colour = LayerColourBase[Layer] + ((*Colour & 0xe0) >> 5);
- }
-}
-
-static void K052109CuebrickCallback(INT32 Layer, INT32, INT32 *Code, INT32 *Colour, INT32 *, INT32 *)
-{
- if (K052109RMRDLine == 0 && Layer == 0) {
- *Code |= ((*Colour & 0x01) << 8);
- *Colour = LayerColourBase[Layer] + ((*Colour & 0x0e) >> 1);
-
- } else {
- *Code |= ((*Colour & 0x0f) << 8);
- *Colour = LayerColourBase[Layer] + ((*Colour & 0xe0) >> 5);
- }
-}
-
-static void K052109BlswhstlCallback(INT32 Layer, INT32 Bank, INT32 *Code, INT32 *Colour, INT32 *, INT32 *)
-{
- *Code |= ((*Colour & 0x01) << 8) | ((*Colour & 0x10) << 5) | ((*Colour & 0x0c) << 8) | (Bank << 12) | (BlswhstlTileRomBank << 14);
- *Colour = LayerColourBase[Layer] + ((*Colour & 0xe0) >> 5);
-}
-
-static void K051960TmntCallback(INT32 *Code, INT32 *Colour, INT32*, INT32*)
-{
- *Code |= (*Colour & 0x10) << 9;
- *Colour = SpriteColourBase + (*Colour & 0x0f);
-}
-
-static void K051960MiaCallback(INT32* /*Code*/, INT32 *Colour, INT32*, INT32*)
-{
- *Colour = SpriteColourBase + (*Colour & 0x0f);
-}
-
-static void K051960CuebrickCallback(INT32* Code, INT32 *Colour, INT32*, INT32*)
-{
- *Colour = SpriteColourBase + (*Colour & 0x0f);
- *Code &= 0xfff;
-}
-
-static void K051960Thndrx2Callback(INT32* code, INT32 *color, INT32* priority, INT32*)
-{
- INT32 pri = 0x20 | ((*color & 0x60) >> 2);
- if (pri <= LayerPri[2]) *priority = 0x00;
- else if (pri > LayerPri[2] && pri <= LayerPri[1]) *priority = 0xf0;
- else if (pri > LayerPri[1] && pri <= LayerPri[0]) *priority = 0xfc;
- else *priority = 0xfe;
-
- *code &= 0x1fff;
- *color = SpriteColourBase + (*color & 0x0f);
-}
-
-static void K051960PunkshotCallback(INT32 *code, INT32 *color, INT32 *priority, INT32 *)
-{
- INT32 pri = 0x20 | ((*color & 0x60) >> 2);
- if (pri <= LayerPri[2]) *priority = 0x00;
- else if (pri > LayerPri[2] && pri <= LayerPri[1]) *priority = 0xf0;
- else if (pri > LayerPri[1] && pri <= LayerPri[0]) *priority = 0xfc;
- else *priority = 0xfe;
-
- *code |= (*color & 0x10) << 9;
- *code &= 0x3fff;
- *color = SpriteColourBase + (*color & 0x0f);
-}
-
-static void K053245BlswhstlCallback(INT32 *Code, INT32 *Colour, INT32 *Priority)
-{
- INT32 Pri = 0x20 | ((*Colour & 0x60) >> 2);
- if (Pri <= LayerPri[2]) *Priority = 0x00;
- else if (Pri > LayerPri[2] && Pri <= LayerPri[1]) *Priority = 0xf0;
- else if (Pri > LayerPri[1] && Pri <= LayerPri[0]) *Priority = 0xfc;
- else *Priority = 0xfe;
-
- *Code &= 0x1fff;
- *Colour = SpriteColourBase + (*Colour & 0x1f);
-}
-
-static void K053245SsridersCallback(INT32 *, INT32 *Colour, INT32 *Priority)
-{
- INT32 Pri = 0x20 | ((*Colour & 0x60) >> 2);
- if (Pri <= LayerPri[2]) *Priority = 0x00;
- else if (Pri > LayerPri[2] && Pri <= LayerPri[1]) *Priority = 0xf0;
- else if (Pri > LayerPri[1] && Pri <= LayerPri[0]) *Priority = 0xfc;
- else *Priority = 0xfe;
-
- *Colour = SpriteColourBase + (*Colour & 0x1f);
-}
-
-static void K053245LgtnfghtCallback(INT32 *code, INT32 *color, INT32 *priority)
-{
- INT32 pri = 0x20 | ((*color & 0x60) >> 2);
- if (pri <= LayerPri[2]) *priority = 0x00;
- else if (pri > LayerPri[2] && pri <= LayerPri[1]) *priority = 0xf0;
- else if (pri > LayerPri[1] && pri <= LayerPri[0]) *priority = 0xfc;
- else *priority = 0xfe;
-
- *color = SpriteColourBase + (*color & 0x1f);
- *code &= 0x3fff;
-}
-
-static void DrvK007232VolCallback(INT32 v)
-{
- K007232SetVolume(0, 0, (v >> 4) * 0x11, 0);
- K007232SetVolume(0, 1, 0, (v & 0x0f) * 0x11);
-}
-
-static void CuebrickYM2151IrqHandler(INT32 Irq)
-{
- CuebrickSndIrqFire = Irq;
-}
-
-static INT32 TmntInit()
-{
- GenericTilesInit();
-
- INT32 nRet = 0, nLen;
-
- // Allocate and Blank all required memory
- Mem = NULL;
- TmntMemIndex();
- nLen = MemEnd - (UINT8 *)0;
- if ((Mem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(Mem, 0, nLen);
- TmntMemIndex();
-
- K052109Init(DrvTileRom, DrvTiles, 0x0fffff);
- K052109SetCallback(K052109TmntCallback);
- K051960Init(DrvSpriteRom, DrvSprites, 0x1fffff);
- K051960SetCallback(K051960TmntCallback);
-
- // Load 68000 Program Roms
- nRet = BurnLoadRom(Drv68KRom + 0x000001, 0, 2); if (nRet != 0) return 1;
- nRet = BurnLoadRom(Drv68KRom + 0x000000, 1, 2); if (nRet != 0) return 1;
- nRet = BurnLoadRom(Drv68KRom + 0x040001, 2, 2); if (nRet != 0) return 1;
- nRet = BurnLoadRom(Drv68KRom + 0x040000, 3, 2); if (nRet != 0) return 1;
-
- // Load Z80 Program Roms
- nRet = BurnLoadRom(DrvZ80Rom, 4, 1); if (nRet != 0) return 1;
-
- // Load and decode the tiles
- nRet = BurnLoadRom(DrvTileRom + 0x000000, 5, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTileRom + 0x080000, 6, 1); if (nRet != 0) return 1;
- shuffle((UINT16*)DrvTileRom, 0x080000);
- TmntUnscrambleGfx(DrvTileRom, 0x100000);
- GfxDecode(0x100000 / 32, 4, 8, 8, TilePlaneOffsets, TileXOffsets, TileYOffsets, 0x100, DrvTileRom, DrvTiles);
-
- // Load the sprites
- DrvTempRom = (UINT8 *)BurnMalloc(0x200100);
- nRet = BurnLoadRom(DrvSpriteRom + 0x000000, 7, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvSpriteRom + 0x080000, 8, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvSpriteRom + 0x100000, 9, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvSpriteRom + 0x180000, 10, 1); if (nRet != 0) return 1;
- shuffle((UINT16*)DrvSpriteRom, 0x100000);
- TmntUnscrambleGfx(DrvSpriteRom, 0x200000);
- TmntUnscrambleSprites();
-
- // Decode the sprites
- GfxDecode(0x200000 / 128, 4, 16, 16, SpritePlaneOffsets, SpriteXOffsets, SpriteYOffsets, 0x400, DrvSpriteRom, DrvSprites);
-
- // Load K007232 Sample Roms
- nRet = BurnLoadRom(DrvSoundRom + 0x00000, 13, 1); if (nRet != 0) return 1;
-
- // Load UPD7759C Sample Roms
- nRet = BurnLoadRom(DrvUPD7759CRom + 0x00000, 14, 1); if (nRet != 0) return 1;
-
- // Load title sample
- memset(DrvTempRom, 0, 0x080000);
- nRet = BurnLoadRom(DrvTempRom + 0x00000, 15, 1); if (nRet != 0) return 1;
- TmntDecodeTitleSample();
-
- BurnFree(DrvTempRom);
-
- // Setup the 68000 emulation
- SekInit(0, 0x68000);
- SekOpen(0);
- SekMapMemory(Drv68KRom , 0x000000, 0x05ffff, MAP_ROM);
- SekMapMemory(Drv68KRam , 0x060000, 0x063fff, MAP_RAM);
- SekMapMemory(DrvPaletteRam , 0x080000, 0x080fff, MAP_RAM);
- SekSetReadWordHandler(0, Tmnt68KReadWord);
- SekSetWriteWordHandler(0, Tmnt68KWriteWord);
- SekSetReadByteHandler(0, Tmnt68KReadByte);
- SekSetWriteByteHandler(0, Tmnt68KWriteByte);
- SekClose();
-
- // Setup the Z80 emulation
- ZetInit(0);
- ZetOpen(0);
- ZetSetReadHandler(TmntZ80Read);
- ZetSetWriteHandler(TmntZ80Write);
- ZetMapArea(0x0000, 0x7fff, 0, DrvZ80Rom );
- ZetMapArea(0x0000, 0x7fff, 2, DrvZ80Rom );
- ZetMapArea(0x8000, 0x87ff, 0, DrvZ80Ram );
- ZetMapArea(0x8000, 0x87ff, 1, DrvZ80Ram );
- ZetMapArea(0x8000, 0x87ff, 2, DrvZ80Ram );
- ZetClose();
-
- // Setup the YM2151 emulation
- BurnYM2151Init(3579545);
- BurnYM2151SetAllRoutes(1.00, BURN_SND_ROUTE_BOTH);
-
- K007232Init(0, 3579545, DrvSoundRom, 0x20000);
- K007232SetPortWriteHandler(0, DrvK007232VolCallback);
- K007232PCMSetAllRoutes(0, 0.33, BURN_SND_ROUTE_BOTH);
-
- UPD7759Init(0, UPD7759_STANDARD_CLOCK, DrvUPD7759CRom);
- UPD7759SetRoute(0, 0.60, BURN_SND_ROUTE_BOTH);
-
- TmntTitleSampleSetRoute(1.00, BURN_SND_ROUTE_BOTH);
-
- LayerColourBase[0] = 0;
- LayerColourBase[1] = 32;
- LayerColourBase[2] = 40;
- SpriteColourBase = 16;
-
- // Reset the driver
- TmntDoReset();
-
- return 0;
-}
-
-static INT32 MiaInit()
-{
- GenericTilesInit();
-
- INT32 nRet = 0, nLen;
-
- // Allocate and Blank all required memory
- Mem = NULL;
- MiaMemIndex();
- nLen = MemEnd - (UINT8 *)0;
- if ((Mem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(Mem, 0, nLen);
- MiaMemIndex();
-
- K052109Init(DrvTileRom, DrvTiles, 0x03ffff);
- K052109SetCallback(K052109MiaCallback);
- K051960Init(DrvSpriteRom, DrvSprites, 0x0fffff);
- K051960SetCallback(K051960MiaCallback);
-
- // Load 68000 Program Roms
- nRet = BurnLoadRom(Drv68KRom + 0x000001, 0, 2); if (nRet != 0) return 1;
- nRet = BurnLoadRom(Drv68KRom + 0x000000, 1, 2); if (nRet != 0) return 1;
-
- // Load Z80 Program Roms
- nRet = BurnLoadRom(DrvZ80Rom, 2, 1); if (nRet != 0) return 1;
-
- // Load and decode the tiles
- nRet = BurnLoadRom(DrvTileRom + 0x000000, 3, 2); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTileRom + 0x000001, 4, 2); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTileRom + 0x020000, 5, 2); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTileRom + 0x020001, 6, 2); if (nRet != 0) return 1;
- shuffle((UINT16*)DrvTileRom, 0x020000);
- TmntUnscrambleGfx(DrvTileRom, 0x040000);
- GfxDecode(0x2000, 4, 8, 8, TilePlaneOffsets, TileXOffsets, TileYOffsets, 0x100, DrvTileRom, DrvTiles);
-
- // Load the sprites
- DrvTempRom = (UINT8 *)BurnMalloc(0x100000);
- nRet = BurnLoadRom(DrvSpriteRom + 0x000000, 7, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvSpriteRom + 0x080000, 8, 1); if (nRet != 0) return 1;
- shuffle((UINT16*)DrvSpriteRom, 0x080000);
- TmntUnscrambleGfx(DrvSpriteRom, 0x100000);
- MiaUnscrambleSprites();
-
- // Decode the sprites
- GfxDecode(0x2000, 4, 16, 16, SpritePlaneOffsets, SpriteXOffsets, SpriteYOffsets, 0x400, DrvSpriteRom, DrvSprites);
-
- // Load K007232 Sample Roms
- nRet = BurnLoadRom(DrvSoundRom + 0x00000, 10, 1); if (nRet != 0) return 1;
-
- BurnFree(DrvTempRom);
-
- // Setup the 68000 emulation
- SekInit(0, 0x68000);
- SekOpen(0);
- SekMapMemory(Drv68KRom , 0x000000, 0x03ffff, MAP_ROM);
- SekMapMemory(Drv68KRam + 0x0000 , 0x040000, 0x043fff, MAP_RAM);
- SekMapMemory(Drv68KRam + 0x4000 , 0x060000, 0x063fff, MAP_RAM);
- SekMapMemory(DrvPaletteRam , 0x080000, 0x080fff, MAP_RAM);
- SekSetReadWordHandler(0, Mia68KReadWord);
- SekSetWriteWordHandler(0, Mia68KWriteWord);
- SekSetReadByteHandler(0, Mia68KReadByte);
- SekSetWriteByteHandler(0, Mia68KWriteByte);
- SekClose();
-
- // Setup the Z80 emulation
- ZetInit(0);
- ZetOpen(0);
- ZetSetReadHandler(MiaZ80Read);
- ZetSetWriteHandler(MiaZ80Write);
- ZetMapArea(0x0000, 0x7fff, 0, DrvZ80Rom );
- ZetMapArea(0x0000, 0x7fff, 2, DrvZ80Rom );
- ZetMapArea(0x8000, 0x87ff, 0, DrvZ80Ram );
- ZetMapArea(0x8000, 0x87ff, 1, DrvZ80Ram );
- ZetMapArea(0x8000, 0x87ff, 2, DrvZ80Ram );
- ZetClose();
-
- // Setup the YM2151 emulation
- BurnYM2151Init(3579545);
- BurnYM2151SetAllRoutes(1.00, BURN_SND_ROUTE_BOTH);
-
- K007232Init(0, 3579545, DrvSoundRom, 0x20000);
- K007232SetPortWriteHandler(0, DrvK007232VolCallback);
- K007232PCMSetAllRoutes(0, 0.20, BURN_SND_ROUTE_BOTH);
-
- LayerColourBase[0] = 0;
- LayerColourBase[1] = 32;
- LayerColourBase[2] = 40;
- SpriteColourBase = 16;
-
- // Reset the driver
- DrvDoReset();
-
- return 0;
-}
-
-static INT32 CuebrickInit()
-{
- GenericTilesInit();
-
- INT32 nRet = 0, nLen;
-
- // Allocate and Blank all required memory
- Mem = NULL;
- CuebrickMemIndex();
- nLen = MemEnd - (UINT8 *)0;
- if ((Mem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(Mem, 0, nLen);
- CuebrickMemIndex();
-
- K052109Init(DrvTileRom, DrvTiles, 0x03ffff);
- K052109SetCallback(K052109CuebrickCallback);
-
- K051960Init(DrvSpriteRom, DrvSprites, 0x03ffff);
- K051960SetCallback(K051960CuebrickCallback);
-
- // Load 68000 Program Roms
- nRet = BurnLoadRom(Drv68KRom + 0x000001, 0, 2); if (nRet != 0) return 1;
- nRet = BurnLoadRom(Drv68KRom + 0x000000, 1, 2); if (nRet != 0) return 1;
-
- // Load and decode the tiles
- nRet = BurnLoadRom(DrvTileRom + 0x000000, 2, 2); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTileRom + 0x000001, 3, 2); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTileRom + 0x020000, 4, 2); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTileRom + 0x020001, 5, 2); if (nRet != 0) return 1;
- byte_shuffle(DrvTileRom, 0x040000);
- GfxDecode(0x2000, 4, 8, 8, TilePlaneOffsets, TileXOffsets, TileYOffsets, 0x100, DrvTileRom, DrvTiles);
-
- // Load the sprites
- nRet = BurnLoadRom(DrvSpriteRom + 0x000000, 6, 2); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvSpriteRom + 0x000001, 7, 2); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvSpriteRom + 0x020000, 8, 2); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvSpriteRom + 0x020001, 9, 2); if (nRet != 0) return 1;
- byte_shuffle(DrvSpriteRom, 0x040000);
- GfxDecode(0x0800, 4, 16, 16, SpritePlaneOffsets, SpriteXOffsets, SpriteYOffsets, 0x400, DrvSpriteRom, DrvSprites);
-
- // Setup the 68000 emulation
- SekInit(0, 0x68000);
- SekOpen(0);
- SekMapMemory(Drv68KRom , 0x000000, 0x01ffff, MAP_ROM);
- SekMapMemory(Drv68KRam + 0x0000 , 0x040000, 0x043fff, MAP_RAM);
- SekMapMemory(DrvPaletteRam , 0x080000, 0x080fff, MAP_RAM);
- SekSetReadWordHandler(0, Cuebrick68KReadWord);
- SekSetWriteWordHandler(0, Cuebrick68KWriteWord);
- SekSetReadByteHandler(0, Cuebrick68KReadByte);
- SekSetWriteByteHandler(0, Cuebrick68KWriteByte);
- SekClose();
-
- // Setup the YM2151 emulation
- BurnYM2151Init(3579545);
- BurnYM2151SetIrqHandler(&CuebrickYM2151IrqHandler);
- BurnYM2151SetAllRoutes(1.00, BURN_SND_ROUTE_BOTH);
-
- LayerColourBase[0] = 0;
- LayerColourBase[1] = 32;
- LayerColourBase[2] = 40;
- SpriteColourBase = 16;
-
- // Reset the driver
- CuebrickDoReset();
-
- return 0;
-}
-
-static INT32 BlswhstlInit()
-{
- GenericTilesInit();
-
- INT32 nRet = 0, nLen;
-
- // Allocate and Blank all required memory
- Mem = NULL;
- BlswhstlMemIndex();
- nLen = MemEnd - (UINT8 *)0;
- if ((Mem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(Mem, 0, nLen);
- BlswhstlMemIndex();
-
- K052109Init(DrvTileRom, DrvTiles, 0x0fffff);
- K052109SetCallback(K052109BlswhstlCallback);
- K052109AdjustScroll(8, 0);
-
- K053245Init(0, DrvSpriteRom, DrvSprites, 0xfffff, K053245BlswhstlCallback);
- K053245SetSpriteOffset(0, -112, 16);
-
- // Load 68000 Program Roms
- nRet = BurnLoadRom(Drv68KRom + 0x000001, 0, 2); if (nRet != 0) return 1;
- nRet = BurnLoadRom(Drv68KRom + 0x000000, 1, 2); if (nRet != 0) return 1;
- nRet = BurnLoadRom(Drv68KRom + 0x040001, 2, 2); if (nRet != 0) return 1;
- nRet = BurnLoadRom(Drv68KRom + 0x040000, 3, 2); if (nRet != 0) return 1;
-
- // Load Z80 Program Roms
- nRet = BurnLoadRom(DrvZ80Rom, 4, 1); if (nRet != 0) return 1;
-
- // Load and decode the tiles
- nRet = BurnLoadRom(DrvTileRom + 0x000000, 5, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTileRom + 0x080000, 6, 1); if (nRet != 0) return 1;
- BurnByteswap(DrvTileRom, 0x100000);
- konami_rom_deinterleave_2(DrvTileRom, 0x100000);
- GfxDecode(0x8000, 4, 8, 8, TilePlaneOffsets, TileXOffsets, TileYOffsets, 0x100, DrvTileRom, DrvTiles);
-
- // Load the sprites
- nRet = BurnLoadRom(DrvSpriteRom + 0x000000, 7, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvSpriteRom + 0x080000, 8, 1); if (nRet != 0) return 1;
- BurnByteswap(DrvSpriteRom, 0x100000);
- konami_rom_deinterleave_2(DrvSpriteRom, 0x100000);
- K053245GfxDecode(DrvSpriteRom, DrvSprites, 0x100000);
-
- // Load K053260 Sample Roms
- nRet = BurnLoadRom(DrvSoundRom + 0x00000, 9, 1); if (nRet != 0) return 1;
-
- // Setup the 68000 emulation
- SekInit(0, 0x68000);
- SekOpen(0);
- SekMapMemory(Drv68KRom , 0x000000, 0x07ffff, MAP_ROM);
- SekMapMemory(Drv68KRam , 0x204000, 0x207fff, MAP_RAM);
- SekMapMemory(DrvPaletteRam , 0x400000, 0x400fff, MAP_RAM);
- SekSetReadWordHandler(0, Blswhstl68KReadWord);
- SekSetWriteWordHandler(0, Blswhstl68KWriteWord);
- SekSetReadByteHandler(0, Blswhstl68KReadByte);
- SekSetWriteByteHandler(0, Blswhstl68KWriteByte);
- SekClose();
-
- // Setup the Z80 emulation
- ZetInit(0);
- ZetOpen(0);
- ZetSetReadHandler(BlswhstlZ80Read);
- ZetSetWriteHandler(BlswhstlZ80Write);
- ZetMapArea(0x0000, 0xefff, 0, DrvZ80Rom );
- ZetMapArea(0x0000, 0xefff, 2, DrvZ80Rom );
- ZetMapArea(0xf000, 0xf7ff, 0, DrvZ80Ram );
- ZetMapArea(0xf000, 0xf7ff, 1, DrvZ80Ram );
- ZetMapArea(0xf000, 0xf7ff, 2, DrvZ80Ram );
- ZetClose();
-
- // Setup the YM2151 emulation
- BurnYM2151Init(3579545);
- BurnYM2151SetRoute(BURN_SND_YM2151_YM2151_ROUTE_1, 0.70, BURN_SND_ROUTE_LEFT);
- BurnYM2151SetRoute(BURN_SND_YM2151_YM2151_ROUTE_2, 0.70, BURN_SND_ROUTE_RIGHT);
-
- K053260Init(0, 3579545, DrvSoundRom, 0x100000);
- K053260SetRoute(0, BURN_SND_K053260_ROUTE_1, 0.50, BURN_SND_ROUTE_RIGHT);
- K053260SetRoute(0, BURN_SND_K053260_ROUTE_2, 0.50, BURN_SND_ROUTE_LEFT);
-
- EEPROMInit(&BlswhstlEEPROMInterface);
-
- // Reset the driver
- BlswhstlDoReset();
-
- return 0;
-}
-
-static INT32 SsridersInit()
-{
- GenericTilesInit();
-
- INT32 nRet = 0, nLen;
-
- // Allocate and Blank all required memory
- Mem = NULL;
- SsridersMemIndex();
- nLen = MemEnd - (UINT8 *)0;
- if ((Mem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(Mem, 0, nLen);
- SsridersMemIndex();
-
- K052109Init(DrvTileRom, DrvTiles, 0x0fffff);
- K052109SetCallback(K052109TmntCallback);
- K052109AdjustScroll(8, 0);
-
- K053245Init(0, DrvSpriteRom, DrvSprites, 0x1fffff, K053245LgtnfghtCallback);
- K053245SetSpriteOffset(0, -112, 16);
- K05324xSetZRejection(0);
-
- // Load 68000 Program Roms
- nRet = BurnLoadRom(Drv68KRom + 0x000001, 0, 2); if (nRet != 0) return 1;
- nRet = BurnLoadRom(Drv68KRom + 0x000000, 1, 2); if (nRet != 0) return 1;
- nRet = BurnLoadRom(Drv68KRom + 0x080001, 2, 2); if (nRet != 0) return 1;
- nRet = BurnLoadRom(Drv68KRom + 0x080000, 3, 2); if (nRet != 0) return 1;
-
- // Load Z80 Program Roms
- nRet = BurnLoadRom(DrvZ80Rom, 4, 1); if (nRet != 0) return 1;
-
- // Load and decode the tiles
- nRet = BurnLoadRom(DrvTileRom + 0x000000, 5, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTileRom + 0x080000, 6, 1); if (nRet != 0) return 1;
- konami_rom_deinterleave_2(DrvTileRom, 0x100000);
- GfxDecode(0x8000, 4, 8, 8, TilePlaneOffsets, TileXOffsets, TileYOffsets, 0x100, DrvTileRom, DrvTiles);
-
- // Load the sprites
- nRet = BurnLoadRom(DrvSpriteRom + 0x000000, 7, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvSpriteRom + 0x100000, 8, 1); if (nRet != 0) return 1;
- konami_rom_deinterleave_2(DrvSpriteRom, 0x200000);
- K053245GfxDecode(DrvSpriteRom, DrvSprites, 0x200000);
-
- // Load K053260 Sample Roms
- nRet = BurnLoadRom(DrvSoundRom + 0x00000, 9, 1); if (nRet != 0) return 1;
-
- // Setup the 68000 emulation
- SekInit(0, 0x68000);
- SekOpen(0);
- SekMapMemory(Drv68KRom , 0x000000, 0x0bffff, MAP_ROM);
- SekMapMemory(Drv68KRam , 0x104000, 0x107fff, MAP_RAM);
- SekMapMemory(DrvPaletteRam , 0x140000, 0x140fff, MAP_RAM);
- SekSetReadWordHandler(0, Ssriders68KReadWord);
- SekSetWriteWordHandler(0, Ssriders68KWriteWord);
- SekSetReadByteHandler(0, Ssriders68KReadByte);
- SekSetWriteByteHandler(0, Ssriders68KWriteByte);
- SekClose();
-
- // Setup the Z80 emulation
- ZetInit(0);
- ZetOpen(0);
- ZetSetReadHandler(BlswhstlZ80Read);
- ZetSetWriteHandler(BlswhstlZ80Write);
- ZetMapArea(0x0000, 0xefff, 0, DrvZ80Rom );
- ZetMapArea(0x0000, 0xefff, 2, DrvZ80Rom );
- ZetMapArea(0xf000, 0xf7ff, 0, DrvZ80Ram );
- ZetMapArea(0xf000, 0xf7ff, 1, DrvZ80Ram );
- ZetMapArea(0xf000, 0xf7ff, 2, DrvZ80Ram );
- ZetClose();
-
- // Setup the YM2151 emulation
- BurnYM2151Init(3579545);
- BurnYM2151SetRoute(BURN_SND_YM2151_YM2151_ROUTE_1, 1.00, BURN_SND_ROUTE_LEFT);
- BurnYM2151SetRoute(BURN_SND_YM2151_YM2151_ROUTE_2, 1.00, BURN_SND_ROUTE_RIGHT);
-
- K053260Init(0, 3579545, DrvSoundRom, 0x100000);
- K053260SetRoute(0, BURN_SND_K053260_ROUTE_1, 0.70, BURN_SND_ROUTE_LEFT);
- K053260SetRoute(0, BURN_SND_K053260_ROUTE_2, 0.70, BURN_SND_ROUTE_RIGHT);
-
- EEPROMInit(&BlswhstlEEPROMInterface);
-
- // Reset the driver
- SsridersDoReset();
-
- return 0;
-}
-
-static INT32 Thndrx2Init()
-{
- GenericTilesInit();
-
- INT32 nRet = 0, nLen;
-
- // Allocate and Blank all required memory
- Mem = NULL;
- Thndrx2MemIndex();
- nLen = MemEnd - (UINT8 *)0;
- if ((Mem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(Mem, 0, nLen);
- Thndrx2MemIndex();
-
- K052109Init(DrvTileRom, DrvTiles, 0x0fffff);
- K052109SetCallback(K052109TmntCallback);
- K052109AdjustScroll(8, 0);
-
- K051960Init(DrvSpriteRom, DrvSprites, 0x0fffff);
- K051960SetCallback(K051960Thndrx2Callback);
- K051960SetSpriteOffset(8, 0);
-
- // Load 68000 Program Roms
- nRet = BurnLoadRom(Drv68KRom + 0x000001, 0, 2); if (nRet != 0) return 1;
- nRet = BurnLoadRom(Drv68KRom + 0x000000, 1, 2); if (nRet != 0) return 1;
-
- // Load Z80 Program Roms
- nRet = BurnLoadRom(DrvZ80Rom, 2, 1); if (nRet != 0) return 1;
-
- // Load and decode the tiles
- nRet = BurnLoadRom(DrvTileRom + 0x000000, 3, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTileRom + 0x080000, 4, 1); if (nRet != 0) return 1;
- konami_rom_deinterleave_2(DrvTileRom, 0x100000);
- GfxDecode(0x8000, 4, 8, 8, TilePlaneOffsets, TileXOffsets, TileYOffsets, 0x100, DrvTileRom, DrvTiles);
-
- // Load the sprites
- nRet = BurnLoadRom(DrvSpriteRom + 0x000000, 5, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvSpriteRom + 0x080000, 6, 1); if (nRet != 0) return 1;
- konami_rom_deinterleave_2(DrvSpriteRom, 0x100000);
- GfxDecode(0x2000, 4, 16, 16, SpritePlaneOffsets2, SpriteXOffsets, SpriteYOffsets, 0x400, DrvSpriteRom, DrvSprites);
-
- // Load K053260 Sample Roms
- nRet = BurnLoadRom(DrvSoundRom + 0x00000, 7, 1); if (nRet != 0) return 1;
-
- // Setup the 68000 emulation
- SekInit(0, 0x68000);
- SekOpen(0);
- SekMapMemory(Drv68KRom , 0x000000, 0x03ffff, MAP_ROM);
- SekMapMemory(Drv68KRam , 0x100000, 0x103fff, MAP_RAM);
- SekMapMemory(DrvPaletteRam , 0x200000, 0x200fff, MAP_RAM);
- SekSetWriteWordHandler(0, Thndrx268KWriteWord);
- SekSetReadByteHandler(0, Thndrx268KReadByte);
- SekSetWriteByteHandler(0, Thndrx268KWriteByte);
- SekClose();
-
- // Setup the Z80 emulation
- ZetInit(0);
- ZetOpen(0);
- ZetSetReadHandler(Thndrx2Z80Read);
- ZetSetWriteHandler(Thndrx2Z80Write);
- ZetMapArea(0x0000, 0xefff, 0, DrvZ80Rom );
- ZetMapArea(0x0000, 0xefff, 2, DrvZ80Rom );
- ZetMapArea(0xf000, 0xf7ff, 0, DrvZ80Ram );
- ZetMapArea(0xf000, 0xf7ff, 1, DrvZ80Ram );
- ZetMapArea(0xf000, 0xf7ff, 2, DrvZ80Ram );
- ZetClose();
-
- // Setup the YM2151 emulation
- BurnYM2151Init(3579545);
- BurnYM2151SetRoute(BURN_SND_YM2151_YM2151_ROUTE_1, 1.00, BURN_SND_ROUTE_LEFT);
- BurnYM2151SetRoute(BURN_SND_YM2151_YM2151_ROUTE_2, 1.00, BURN_SND_ROUTE_RIGHT);
-
- K053260Init(0, 3579545, DrvSoundRom, 0x80000);
- K053260SetRoute(0, BURN_SND_K053260_ROUTE_1, 0.75, BURN_SND_ROUTE_LEFT);
- K053260SetRoute(0, BURN_SND_K053260_ROUTE_2, 0.75, BURN_SND_ROUTE_RIGHT);
-
- EEPROMInit(&thndrx2_eeprom_interface);
-
- // Reset the driver
- SsridersDoReset();
-
- return 0;
-}
-
-static INT32 LgtnfghtInit()
-{
- GenericTilesInit();
-
- INT32 nRet = 0, nLen;
-
- // Allocate and Blank all required memory
- Mem = NULL;
- LgtnfghtMemIndex();
- nLen = MemEnd - (UINT8 *)0;
- if ((Mem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(Mem, 0, nLen);
- LgtnfghtMemIndex();
-
- K052109Init(DrvTileRom, DrvTiles, 0x0fffff);
- K052109SetCallback(K052109TmntCallback);
- K052109AdjustScroll(8, 0);
-
- K053245Init(0, DrvSpriteRom, DrvSprites, 0x0fffff, K053245LgtnfghtCallback);
- K053245SetSpriteOffset(0, -112, 16);
- K05324xSetZRejection(0);
-
- // Load 68000 Program Roms
- nRet = BurnLoadRom(Drv68KRom + 0x000001, 0, 2); if (nRet != 0) return 1;
- nRet = BurnLoadRom(Drv68KRom + 0x000000, 1, 2); if (nRet != 0) return 1;
-
- // Load Z80 Program Roms
- nRet = BurnLoadRom(DrvZ80Rom, 2, 1); if (nRet != 0) return 1;
-
- // Load and decode the tiles
- nRet = BurnLoadRom(DrvTileRom + 0x000000, 3, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTileRom + 0x080000, 4, 1); if (nRet != 0) return 1;
- konami_rom_deinterleave_2(DrvTileRom, 0x100000);
- GfxDecode(0x8000, 4, 8, 8, TilePlaneOffsets, TileXOffsets, TileYOffsets, 0x100, DrvTileRom, DrvTiles);
-
- // Load the sprites
- nRet = BurnLoadRom(DrvSpriteRom + 0x000000, 5, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvSpriteRom + 0x080000, 6, 1); if (nRet != 0) return 1;
- konami_rom_deinterleave_2(DrvSpriteRom, 0x100000);
- K053245GfxDecode(DrvSpriteRom, DrvSprites, 0x100000);
-
- // Load K053260 Sample Roms
- nRet = BurnLoadRom(DrvSoundRom + 0x00000, 7, 1); if (nRet != 0) return 1;
-
- // Setup the 68000 emulation
- SekInit(0, 0x68000);
- SekOpen(0);
- SekMapMemory(Drv68KRom , 0x000000, 0x03ffff, MAP_ROM);
- SekMapMemory(DrvPaletteRam , 0x080000, 0x080fff, MAP_RAM);
- SekMapMemory(Drv68KRam , 0x090000, 0x093fff, MAP_RAM);
- SekSetReadWordHandler(0, Lgtnfght68KReadWord);
- SekSetWriteWordHandler(0, Lgtnfght68KWriteWord);
- SekSetReadByteHandler(0, Lgtnfght68KReadByte);
- SekSetWriteByteHandler(0, Lgtnfght68KWriteByte);
- SekClose();
-
- // Setup the Z80 emulation
- ZetInit(0);
- ZetOpen(0);
- ZetSetReadHandler(LgtnfghtZ80Read);
- ZetSetWriteHandler(LgtnfghtZ80Write);
- ZetMapArea(0x0000, 0x7fff, 0, DrvZ80Rom );
- ZetMapArea(0x0000, 0x7fff, 2, DrvZ80Rom );
- ZetMapArea(0x8000, 0x87ff, 0, DrvZ80Ram );
- ZetMapArea(0x8000, 0x87ff, 1, DrvZ80Ram );
- ZetMapArea(0x8000, 0x87ff, 2, DrvZ80Ram );
- ZetClose();
-
- // Setup the YM2151 emulation
- BurnYM2151Init(3579545);
- BurnYM2151SetRoute(BURN_SND_YM2151_YM2151_ROUTE_1, 1.00, BURN_SND_ROUTE_LEFT);
- BurnYM2151SetRoute(BURN_SND_YM2151_YM2151_ROUTE_2, 1.00, BURN_SND_ROUTE_RIGHT);
-
- K053260Init(0, 3579545, DrvSoundRom, 0x80000);
- K053260SetRoute(0, BURN_SND_K053260_ROUTE_1, 0.70, BURN_SND_ROUTE_LEFT);
- K053260SetRoute(0, BURN_SND_K053260_ROUTE_2, 0.70, BURN_SND_ROUTE_RIGHT);
-
- EEPROMInit(&thndrx2_eeprom_interface);
-
- NoDim = 1;
-
- // Reset the driver
- SsridersDoReset();
-
- return 0;
-}
-
-static INT32 Tmnt2Init()
-{
- GenericTilesInit();
-
- INT32 nRet = 0, nLen;
-
- // Allocate and Blank all required memory
- Mem = NULL;
- Tmnt2MemIndex();
- nLen = MemEnd - (UINT8 *)0;
- if ((Mem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(Mem, 0, nLen);
- Tmnt2MemIndex();
-
- K052109Init(DrvTileRom, DrvTiles, 0x0fffff);
- K052109SetCallback(K052109TmntCallback);
- K052109AdjustScroll(8, 0);
-
- K053245Init(0, DrvSpriteRom, DrvSprites, 0x3fffff, K053245SsridersCallback);
- K053245SetSpriteOffset(0, -112, 16);
- K05324xSetZRejection(0);
-
- // Load 68000 Program Roms
- nRet = BurnLoadRom(Drv68KRom + 0x000001, 0, 2); if (nRet != 0) return 1;
- nRet = BurnLoadRom(Drv68KRom + 0x000000, 1, 2); if (nRet != 0) return 1;
- nRet = BurnLoadRom(Drv68KRom + 0x040001, 2, 2); if (nRet != 0) return 1;
- nRet = BurnLoadRom(Drv68KRom + 0x040000, 3, 2); if (nRet != 0) return 1;
-
- // Load Z80 Program Roms
- nRet = BurnLoadRom(DrvZ80Rom, 4, 1); if (nRet != 0) return 1;
-
- // Load and decode the tiles
- nRet = BurnLoadRom(DrvTileRom + 0x000000, 5, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTileRom + 0x080000, 6, 1); if (nRet != 0) return 1;
- konami_rom_deinterleave_2(DrvTileRom, 0x100000);
- GfxDecode(0x8000, 4, 8, 8, TilePlaneOffsets, TileXOffsets, TileYOffsets, 0x100, DrvTileRom, DrvTiles);
-
- // Load the sprites
- nRet = BurnLoadRom(DrvSpriteRom + 0x000000, 7, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvSpriteRom + 0x100000, 8, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvSpriteRom + 0x200000, 9, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvSpriteRom + 0x300000, 10, 1); if (nRet != 0) return 1;
- konami_rom_deinterleave_2(DrvSpriteRom, 0x400000);
- K053245GfxDecode(DrvSpriteRom, DrvSprites, 0x400000);
-
- // Load K053260 Sample Roms
- nRet = BurnLoadRom(DrvSoundRom + 0x00000, 11, 1); if (nRet != 0) return 1;
-
- // Setup the 68000 emulation
- SekInit(0, 0x68000);
- SekOpen(0);
- SekMapMemory(Drv68KRom , 0x000000, 0x0fffff, MAP_ROM);
- SekMapMemory(Drv68KRam , 0x104000, 0x107fff, MAP_RAM);
- SekMapMemory(DrvPaletteRam , 0x140000, 0x140fff, MAP_RAM);
- SekSetReadWordHandler(0, Ssriders68KReadWord);
- SekSetWriteWordHandler(0, Ssriders68KWriteWord);
- SekSetReadByteHandler(0, Ssriders68KReadByte);
- SekSetWriteByteHandler(0, Ssriders68KWriteByte);
-
- SekMapHandler(1, 0x1c0800, 0x1c081f, MAP_WRITE);
- SekSetWriteWordHandler(1, Tmnt268KProtWord);
- SekSetWriteByteHandler(1, Tmnt268KProtByte);
- SekClose();
-
- // Setup the Z80 emulation
- ZetInit(0);
- ZetOpen(0);
- ZetSetReadHandler(BlswhstlZ80Read);
- ZetSetWriteHandler(BlswhstlZ80Write);
- ZetMapArea(0x0000, 0xefff, 0, DrvZ80Rom );
- ZetMapArea(0x0000, 0xefff, 2, DrvZ80Rom );
- ZetMapArea(0xf000, 0xf7ff, 0, DrvZ80Ram );
- ZetMapArea(0xf000, 0xf7ff, 1, DrvZ80Ram );
- ZetMapArea(0xf000, 0xf7ff, 2, DrvZ80Ram );
- ZetClose();
-
- // Setup the YM2151 emulation
- BurnYM2151Init(3579545);
- BurnYM2151SetRoute(BURN_SND_YM2151_YM2151_ROUTE_1, 1.00, BURN_SND_ROUTE_LEFT);
- BurnYM2151SetRoute(BURN_SND_YM2151_YM2151_ROUTE_2, 1.00, BURN_SND_ROUTE_RIGHT);
-
- K053260Init(0, 3579545, DrvSoundRom, 0x200000);
- K053260SetRoute(0, BURN_SND_K053260_ROUTE_1, 0.75, BURN_SND_ROUTE_LEFT);
- K053260SetRoute(0, BURN_SND_K053260_ROUTE_2, 0.75, BURN_SND_ROUTE_RIGHT);
-
- EEPROMInit(&BlswhstlEEPROMInterface);
-
- // Reset the driver
- SsridersDoReset();
-
- return 0;
-}
-
-static INT32 QgakumonInit()
-{
- GenericTilesInit();
-
- INT32 nRet = 0, nLen;
-
- // Allocate and Blank all required memory
- Mem = NULL;
- Tmnt2MemIndex();
- nLen = MemEnd - (UINT8 *)0;
- if ((Mem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(Mem, 0, nLen);
- Tmnt2MemIndex();
-
- K052109Init(DrvTileRom, DrvTiles, 0x0fffff);
- K052109SetCallback(K052109TmntCallback);
- K052109AdjustScroll(0, 0);
-
- K053245Init(0, DrvSpriteRom, DrvSprites, 0x3fffff, K053245SsridersCallback);
- K053245SetSpriteOffset(0, -112, 16);
- K05324xSetZRejection(0);
-
- // Load 68000 Program Roms
- nRet = BurnLoadRom(Drv68KRom + 0x000001, 0, 2); if (nRet != 0) return 1;
- nRet = BurnLoadRom(Drv68KRom + 0x000000, 1, 2); if (nRet != 0) return 1;
- nRet = BurnLoadRom(Drv68KRom + 0x080001, 2, 2); if (nRet != 0) return 1;
- nRet = BurnLoadRom(Drv68KRom + 0x080000, 3, 2); if (nRet != 0) return 1;
-
- // Load Z80 Program Roms
- nRet = BurnLoadRom(DrvZ80Rom, 4, 1); if (nRet != 0) return 1;
-
- // Load and decode the tiles
- nRet = BurnLoadRom(DrvTileRom + 0x000000, 5, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTileRom + 0x080000, 6, 1); if (nRet != 0) return 1;
- konami_rom_deinterleave_2(DrvTileRom, 0x100000);
- GfxDecode(0x8000, 4, 8, 8, TilePlaneOffsets, TileXOffsets, TileYOffsets, 0x100, DrvTileRom, DrvTiles);
-
- // Load the sprites
- nRet = BurnLoadRom(DrvSpriteRom + 0x000000, 7, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvSpriteRom + 0x200000, 8, 1); if (nRet != 0) return 1;
- konami_rom_deinterleave_2(DrvSpriteRom, 0x400000);
- K053245GfxDecode(DrvSpriteRom, DrvSprites, 0x400000);
-
- // Load K053260 Sample Roms
- nRet = BurnLoadRom(DrvSoundRom + 0x00000, 9, 1); if (nRet != 0) return 1;
-
- // Setup the 68000 emulation
- SekInit(0, 0x68000);
- SekOpen(0);
- SekMapMemory(Drv68KRom , 0x000000, 0x0fffff, MAP_ROM);
- SekMapMemory(Drv68KRam , 0x104000, 0x107fff, MAP_RAM);
- SekMapMemory(DrvPaletteRam , 0x140000, 0x140fff, MAP_RAM);
- SekSetReadWordHandler(0, Ssriders68KReadWord);
- SekSetWriteWordHandler(0, Ssriders68KWriteWord);
- SekSetReadByteHandler(0, Ssriders68KReadByte);
- SekSetWriteByteHandler(0, Ssriders68KWriteByte);
-
- SekMapHandler(1, 0x1c0800, 0x1c081f, MAP_WRITE);
- SekSetWriteWordHandler(1, Tmnt268KProtWord);
- SekSetWriteByteHandler(1, Tmnt268KProtByte);
- SekClose();
-
- // Setup the Z80 emulation
- ZetInit(0);
- ZetOpen(0);
- ZetSetReadHandler(BlswhstlZ80Read);
- ZetSetWriteHandler(BlswhstlZ80Write);
- ZetMapArea(0x0000, 0xefff, 0, DrvZ80Rom );
- ZetMapArea(0x0000, 0xefff, 2, DrvZ80Rom );
- ZetMapArea(0xf000, 0xf7ff, 0, DrvZ80Ram );
- ZetMapArea(0xf000, 0xf7ff, 1, DrvZ80Ram );
- ZetMapArea(0xf000, 0xf7ff, 2, DrvZ80Ram );
- ZetClose();
-
- // Setup the YM2151 emulation
- BurnYM2151Init(3579545);
- BurnYM2151SetRoute(BURN_SND_YM2151_YM2151_ROUTE_1, 1.00, BURN_SND_ROUTE_LEFT);
- BurnYM2151SetRoute(BURN_SND_YM2151_YM2151_ROUTE_2, 1.00, BURN_SND_ROUTE_RIGHT);
-
- K053260Init(0, 3579545, DrvSoundRom, 0x200000);
- K053260SetRoute(0, BURN_SND_K053260_ROUTE_1, 0.75, BURN_SND_ROUTE_LEFT);
- K053260SetRoute(0, BURN_SND_K053260_ROUTE_2, 0.75, BURN_SND_ROUTE_RIGHT);
-
- EEPROMInit(&BlswhstlEEPROMInterface);
-
- // Reset the driver
- SsridersDoReset();
-
- return 0;
-}
-
-static INT32 PunkshotInit()
-{
- GenericTilesInit();
-
- INT32 nRet = 0, nLen;
-
- // Allocate and Blank all required memory
- Mem = NULL;
- PunkshotMemIndex();
- nLen = MemEnd - (UINT8 *)0;
- if ((Mem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(Mem, 0, nLen);
- PunkshotMemIndex();
-
- K052109Init(DrvTileRom, DrvTiles, 0x07ffff);
- K052109SetCallback(K052109TmntCallback);
- K052109AdjustScroll(8, 0);
-
- K051960Init(DrvSpriteRom, DrvSprites, 0x1fffff);
- K051960SetCallback(K051960PunkshotCallback);
- K051960SetSpriteOffset(8, 0);
-
- // Load 68000 Program Roms
- nRet = BurnLoadRom(Drv68KRom + 0x000001, 0, 2); if (nRet != 0) return 1;
- nRet = BurnLoadRom(Drv68KRom + 0x000000, 1, 2); if (nRet != 0) return 1;
-
- // Load Z80 Program Roms
- nRet = BurnLoadRom(DrvZ80Rom, 2, 1); if (nRet != 0) return 1;
-
- // Load and decode the tiles
- nRet = BurnLoadRom(DrvTileRom + 0x000000, 3, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvTileRom + 0x040000, 4, 1); if (nRet != 0) return 1;
- konami_rom_deinterleave_2(DrvTileRom, 0x80000);
- GfxDecode(0x4000, 4, 8, 8, TilePlaneOffsets, TileXOffsets, TileYOffsets, 0x100, DrvTileRom, DrvTiles);
-
- // Load the sprites
- nRet = BurnLoadRom(DrvSpriteRom + 0x000000, 5, 1); if (nRet != 0) return 1;
- nRet = BurnLoadRom(DrvSpriteRom + 0x100000, 6, 1); if (nRet != 0) return 1;
- konami_rom_deinterleave_2(DrvSpriteRom, 0x200000);
- GfxDecode(0x4000, 4, 16, 16, SpritePlaneOffsets2, SpriteXOffsets, SpriteYOffsets, 0x400, DrvSpriteRom, DrvSprites);
-
- // Load K053260 Sample Roms
- nRet = BurnLoadRom(DrvSoundRom + 0x00000, 7, 1); if (nRet != 0) return 1;
-
- // Setup the 68000 emulation
- SekInit(0, 0x68000);
- SekOpen(0);
- SekMapMemory(Drv68KRom , 0x000000, 0x03ffff, MAP_ROM);
- SekMapMemory(Drv68KRam , 0x080000, 0x083fff, MAP_RAM);
- SekMapMemory(DrvPaletteRam , 0x090000, 0x090fff, MAP_RAM);
- SekSetReadWordHandler(0, Punkshot68KReadWord);
- SekSetWriteWordHandler(0, Punkshot68KWriteWord);
- SekSetReadByteHandler(0, Punkshot68KReadByte);
- SekSetWriteByteHandler(0, Punkshot68KWriteByte);
- SekClose();
-
- ZetInit(0);
- ZetOpen(0);
- ZetSetReadHandler(Thndrx2Z80Read);
- ZetSetWriteHandler(Thndrx2Z80Write);
- ZetMapArea(0x0000, 0xefff, 0, DrvZ80Rom );
- ZetMapArea(0x0000, 0xefff, 2, DrvZ80Rom );
- ZetMapArea(0xf000, 0xf7ff, 0, DrvZ80Ram );
- ZetMapArea(0xf000, 0xf7ff, 1, DrvZ80Ram );
- ZetMapArea(0xf000, 0xf7ff, 2, DrvZ80Ram );
- ZetClose();
-
- // Setup the YM2151 emulation
- BurnYM2151Init(3579545);
- BurnYM2151SetAllRoutes(1.00, BURN_SND_ROUTE_BOTH);
-
- K053260Init(0, 3579545, DrvSoundRom, 0x80000);
- K053260PCMSetAllRoutes(0, 0.70, BURN_SND_ROUTE_BOTH);
-
- // Reset the driver
- PunkshotDoReset();
-
- return 0;
-}
-
-static INT32 CommonExit()
-{
- SekExit();
-
- BurnYM2151Exit();
-
- GenericTilesExit();
-
- KonamiICExit();
-
- BurnFree(Mem);
-
- bIrqEnable = 0;
- DrvSoundLatch = 0;
- TitleSoundLatch = 0;
- PlayTitleSample = 0;
- TitleSamplePos = 0;
- SpriteColourBase = 0;
- memset(LayerColourBase, 0, 3);
- memset(LayerPri, 0, 3);
- PriorityFlag = 0;
-
- DrvNvRamBank = 0;
- CuebrickSndIrqFire = 0;
- BlswhstlTileRomBank = 0;
- DrvVBlank = 0;
- InitEEPROMCount = 0;
-
- return 0;
-}
-
-static INT32 CommonZ80Exit()
-{
- ZetExit();
-
- return CommonExit();
-}
-
-static INT32 TmntExit()
-{
- UPD7759Exit();
- K007232Exit();
-
- return CommonZ80Exit();
-}
-
-static INT32 MiaExit()
-{
- K007232Exit();
-
- return CommonZ80Exit();
-}
-
-static INT32 BlswhstlExit()
-{
- K053260Exit();
- EEPROMExit();
- NoDim = 0;
-
- return CommonZ80Exit();
-}
-
-static INT32 PunkshotExit()
-{
- K053260Exit();
-
- return CommonZ80Exit();
-}
-
-static inline UINT8 pal5bit(UINT8 bits)
-{
- bits &= 0x1f;
- return (bits << 3) | (bits >> 2);
-}
-
-static void DrvCalcPalette()
-{
- UINT16 *PaletteRam = (UINT16*)DrvPaletteRam;
-
- for (INT32 i = 0; i < 0x800; i += 2) {
- INT32 Offset = i & ~1;
- UINT32 Data = (BURN_ENDIAN_SWAP_INT16(PaletteRam[Offset]) << 8) | BURN_ENDIAN_SWAP_INT16(PaletteRam[Offset + 1]);
-
- DrvPalette[Offset >> 1] = (pal5bit(Data >> 0) << 16) | (pal5bit(Data >> 5) << 8) | pal5bit(Data >> 10);
- }
-}
-
-static void BlswhstlCalcPalette()
-{
- UINT16 *PaletteRam = (UINT16*)DrvPaletteRam;
-
- for (INT32 i = 0; i < 0x800; i++) {
- UINT32 Data = BURN_ENDIAN_SWAP_INT16(PaletteRam[i]);
-
- DrvPalette[i] = (pal5bit(Data >> 0) << 16) | (pal5bit(Data >> 5) << 8) | pal5bit(Data >> 10);
- }
-}
-
-static void sortlayers(INT32 *layer,INT32 *pri)
-{
-#define SWAP(a,b) \
- if (pri[a] < pri[b]) \
- { \
- INT32 t; \
- t = pri[a]; pri[a] = pri[b]; pri[b] = t; \
- t = layer[a]; layer[a] = layer[b]; layer[b] = t; \
- }
-
- SWAP(0,1)
- SWAP(0,2)
- SWAP(1,2)
-}
-
-static inline void BlswhstlCalcPaletteWithContrast(INT32 i, INT32 brt)
-{
- INT32 r,g,b;
- UINT16 *PaletteRam = (UINT16*)DrvPaletteRam;
-
- UINT32 Data = BURN_ENDIAN_SWAP_INT16(PaletteRam[i]);
-
- r = pal5bit(Data >> 0);
- g = pal5bit(Data >> 5);
- b = pal5bit(Data >> 10);
-
- r = (r * brt) / 100;
- g = (g * brt) / 100;
- b = (b * brt) / 100;
-
- DrvPalette[i] = (r<<16) | (g<<8) | b;
-}
-
-static void PaletteDim(INT32 dimslayer)
-{
- INT32 i, dim, en, cb, ce, brt;
-
- dim = dim_v | ((~dim_c & 0x10) >> 1);
- en = (K053251GetPriority(5) && K053251GetPriority(5) != 0x3e);
-
- brt = 100;
- if (en) brt -= 40*dim/8;
-
- if (brt < 100 && !NoDim) {
- cb = LayerColourBase[dimslayer] << 4;
- ce = cb + 128;
-
- for (i = 0; i < cb; i++)
- BlswhstlCalcPaletteWithContrast(i, brt);
-
- for (i = cb; i < ce; i++) // text
- BlswhstlCalcPaletteWithContrast(i, 100);
-
- for (i = ce; i < 2048; i++)
- BlswhstlCalcPaletteWithContrast(i, brt);
-
- if (~dim_c & 0x10) {
- konami_set_highlight_over_sprites_mode(1);
- konami_set_highlight_mode(1);
- } else {
- konami_set_highlight_over_sprites_mode(0);
- konami_set_highlight_mode(0);
- }
-
- } else {
- BlswhstlCalcPalette();
- }
-}
-
-static void TmntDraw()
-{
- DrvCalcPalette();
- K052109UpdateScroll();
-
- K052109RenderLayer(2, K052109_OPAQUE, 0);
- if ((PriorityFlag & 1) == 1) K051960SpritesRender(0, 0);
- K052109RenderLayer(1, 0, 0);
- if ((PriorityFlag & 1) == 0) K051960SpritesRender(0, 0);
- K052109RenderLayer(0, 0, 0);
-
- KonamiBlendCopy(DrvPalette);
-}
-
-static void BlswhstlDraw()
-{
- INT32 Layer[3];
-
- K052109UpdateScroll();
-
- INT32 BGColourBase = K053251GetPaletteIndex(0);
- SpriteColourBase = K053251GetPaletteIndex(1);
- LayerColourBase[0] = K053251GetPaletteIndex(2);
- LayerColourBase[1] = K053251GetPaletteIndex(4);
- LayerColourBase[2] = K053251GetPaletteIndex(3);
-
- LayerPri[0] = K053251GetPriority(2);
- LayerPri[1] = K053251GetPriority(4);
- LayerPri[2] = K053251GetPriority(3);
- Layer[0] = 0;
- Layer[1] = 1;
- Layer[2] = 2;
-
- KonamiClearBitmaps(DrvPalette[16 * BGColourBase]);
-
- sortlayers(Layer, LayerPri);
-
- PaletteDim(Layer[2]);
-
- if (nBurnLayer & 1) K052109RenderLayer(Layer[0], 0, 1);
- if (nBurnLayer & 2) K052109RenderLayer(Layer[1], 0, 2);
- if (nBurnLayer & 4) K052109RenderLayer(Layer[2], 0, 4);
-
- if (nSpriteEnable & 1) K053245SpritesRender(0);
-
- KonamiBlendCopy(DrvPalette);
-}
-
-static INT32 Thndrx2Draw()
-{
- INT32 Layer[3];
-
- BlswhstlCalcPalette();
- K052109UpdateScroll();
-
- INT32 BGColourBase = K053251GetPaletteIndex(0);
- SpriteColourBase = K053251GetPaletteIndex(1);
- LayerColourBase[0] = K053251GetPaletteIndex(2);
- LayerColourBase[1] = K053251GetPaletteIndex(4);
- LayerColourBase[2] = K053251GetPaletteIndex(3);
-
- LayerPri[0] = K053251GetPriority(2);
- LayerPri[1] = K053251GetPriority(4);
- LayerPri[2] = K053251GetPriority(3);
- Layer[0] = 0;
- Layer[1] = 1;
- Layer[2] = 2;
-
- KonamiClearBitmaps(DrvPalette[16 * BGColourBase]);
-
- sortlayers(Layer, LayerPri);
-
- if (nBurnLayer & 1) K052109RenderLayer(Layer[0], 0, 1);
- if (nBurnLayer & 2) K052109RenderLayer(Layer[1], 0, 2);
- if (nBurnLayer & 4) K052109RenderLayer(Layer[2], 0, 4);
-
- if (nSpriteEnable & 1) K051960SpritesRender(-1, -1);
-
- KonamiBlendCopy(DrvPalette);
-
- return 0;
-}
-
-static INT32 PunkshotDraw()
-{
- INT32 Layer[3];
-
- BlswhstlCalcPalette();
- K052109UpdateScroll();
-
-// INT32 BGColourBase = K053251GetPaletteIndex(0);
- SpriteColourBase = K053251GetPaletteIndex(1);
- LayerColourBase[0] = K053251GetPaletteIndex(2);
- LayerColourBase[1] = K053251GetPaletteIndex(4);
- LayerColourBase[2] = K053251GetPaletteIndex(3);
-
- LayerPri[0] = K053251GetPriority(2);
- LayerPri[1] = K053251GetPriority(4);
- LayerPri[2] = K053251GetPriority(3);
- Layer[0] = 0;
- Layer[1] = 1;
- Layer[2] = 2;
-
- sortlayers(Layer, LayerPri);
-
- if (nBurnLayer & 1) K052109RenderLayer(Layer[0], K052109_OPAQUE, 1);
- if (nBurnLayer & 2) K052109RenderLayer(Layer[1], 0, 2);
- if (nBurnLayer & 4) K052109RenderLayer(Layer[2], 0, 4);
-
- if (nSpriteEnable & 1) K051960SpritesRender(-1, -1);
-
- KonamiBlendCopy(DrvPalette);
-
- return 0;
-}
-
-static void RenderTitleSample(INT16 *pSoundBuf, INT32 nLength)
-{
- double Addr = TitleSamplePos;
- double Step = (double)20000 / nBurnSoundRate;
-
- for (INT32 i = 0; i < nLength; i += 2) {
- if (Addr > 0x3ffff) break;
- INT16 Sample = DrvTitleSample[(INT32)Addr];
-
- INT16 nLeftSample = 0, nRightSample = 0;
-
- if ((TitleSampleOutputDir & BURN_SND_ROUTE_LEFT) == BURN_SND_ROUTE_LEFT) {
- nLeftSample += (INT32)(Sample * TitleSampleGain);
- }
- if ((TitleSampleOutputDir & BURN_SND_ROUTE_RIGHT) == BURN_SND_ROUTE_RIGHT) {
- nRightSample += (INT32)(Sample * TitleSampleGain);
- }
-
- pSoundBuf[i + 0] += nLeftSample;
- pSoundBuf[i + 1] += nRightSample;
-
- Addr += Step;
- }
-
- TitleSamplePos = Addr;
-}
-
-static INT32 TmntFrame()
-{
- INT32 nInterleave = nBurnSoundLen;
- INT32 nSoundBufferPos = 0;
-
- if (DrvReset) TmntDoReset();
-
- DrvMakeInputs();
-
- nCyclesTotal[0] = 8000000 / 60;
- nCyclesTotal[1] = 3579545 / 60;
- nCyclesDone[0] = nCyclesDone[1] = 0;
-
- SekNewFrame();
- ZetNewFrame();
-
- for (INT32 i = 0; i < nInterleave; i++) {
- INT32 nCurrentCPU, nNext;
-
- // Run 68000
- nCurrentCPU = 0;
- SekOpen(0);
- nNext = (i + 1) * nCyclesTotal[nCurrentCPU] / nInterleave;
- nCyclesSegment = nNext - nCyclesDone[nCurrentCPU];
- nCyclesDone[nCurrentCPU] += SekRun(nCyclesSegment);
- if (i == (nInterleave - 1) && bIrqEnable) SekSetIRQLine(5, CPU_IRQSTATUS_AUTO);
- SekClose();
-
- // Run Z80
- nCurrentCPU = 1;
- ZetOpen(0);
- nNext = (i + 1) * nCyclesTotal[nCurrentCPU] / nInterleave;
- nCyclesSegment = nNext - nCyclesDone[nCurrentCPU];
- nCyclesSegment = ZetRun(nCyclesSegment);
- nCyclesDone[nCurrentCPU] += nCyclesSegment;
- ZetClose();
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen / nInterleave;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- BurnYM2151Render(pSoundBuf, nSegmentLength);
- K007232Update(0, pSoundBuf, nSegmentLength);
- UPD7759Update(0, pSoundBuf, nSegmentLength);
- if (PlayTitleSample) RenderTitleSample(pSoundBuf, nSegmentLength);
- nSoundBufferPos += nSegmentLength;
- }
- }
-
- // Make sure the buffer is entirely filled.
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
-
- if (nSegmentLength) {
- BurnYM2151Render(pSoundBuf, nSegmentLength);
- K007232Update(0, pSoundBuf, nSegmentLength);
- UPD7759Update(0, pSoundBuf, nSegmentLength);
- if (PlayTitleSample) RenderTitleSample(pSoundBuf, nSegmentLength);
- }
- }
-
- if (pBurnDraw) TmntDraw();
-
- return 0;
-}
-
-static INT32 MiaFrame()
-{
- INT32 nInterleave = nBurnSoundLen;
- INT32 nSoundBufferPos = 0;
-
- if (DrvReset) DrvDoReset();
-
- DrvMakeInputs();
-
- nCyclesTotal[0] = 8000000 / 60;
- nCyclesTotal[1] = 3579545 / 60;
- nCyclesDone[0] = nCyclesDone[1] = 0;
-
- SekNewFrame();
- ZetNewFrame();
-
- for (INT32 i = 0; i < nInterleave; i++) {
- INT32 nCurrentCPU, nNext;
-
- // Run 68000
- nCurrentCPU = 0;
- SekOpen(0);
- nNext = (i + 1) * nCyclesTotal[nCurrentCPU] / nInterleave;
- nCyclesSegment = nNext - nCyclesDone[nCurrentCPU];
- nCyclesDone[nCurrentCPU] += SekRun(nCyclesSegment);
- if (i == (nInterleave - 1) && bIrqEnable) SekSetIRQLine(5, CPU_IRQSTATUS_AUTO);
- SekClose();
-
- // Run Z80
- nCurrentCPU = 1;
- ZetOpen(0);
- nNext = (i + 1) * nCyclesTotal[nCurrentCPU] / nInterleave;
- nCyclesSegment = nNext - nCyclesDone[nCurrentCPU];
- nCyclesSegment = ZetRun(nCyclesSegment);
- nCyclesDone[nCurrentCPU] += nCyclesSegment;
- ZetClose();
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen / nInterleave;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- BurnYM2151Render(pSoundBuf, nSegmentLength);
- K007232Update(0, pSoundBuf, nSegmentLength);
- nSoundBufferPos += nSegmentLength;
- }
- }
-
- // Make sure the buffer is entirely filled.
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
-
- if (nSegmentLength) {
- BurnYM2151Render(pSoundBuf, nSegmentLength);
- K007232Update(0, pSoundBuf, nSegmentLength);
- }
- }
-
- if (pBurnDraw) TmntDraw();
-
- return 0;
-}
-
-static INT32 CuebrickFrame()
-{
- INT32 nInterleave = 10;
- INT32 nSoundBufferPos = 0;
-
- if (DrvReset) CuebrickDoReset();
-
- DrvMakeInputs();
-
- nCyclesTotal[0] = 8000000 / 60;
- nCyclesDone[0] = 0;
-
- SekNewFrame();
- SekOpen(0);
-
- for (INT32 i = 0; i < nInterleave; i++) {
- INT32 nCurrentCPU, nNext;
-
- // Run 68000
- nCurrentCPU = 0;
- nNext = (i + 1) * nCyclesTotal[nCurrentCPU] / nInterleave;
- nCyclesSegment = nNext - nCyclesDone[nCurrentCPU];
- nCyclesDone[nCurrentCPU] += SekRun(nCyclesSegment);
- if (i == (nInterleave - 1) && bIrqEnable) SekSetIRQLine(5, CPU_IRQSTATUS_AUTO);
- if (CuebrickSndIrqFire) SekSetIRQLine(6, CPU_IRQSTATUS_AUTO);
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen / nInterleave;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- BurnYM2151Render(pSoundBuf, nSegmentLength);
- nSoundBufferPos += nSegmentLength;
- }
- }
-
- // Make sure the buffer is entirely filled.
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
-
- if (nSegmentLength) {
- BurnYM2151Render(pSoundBuf, nSegmentLength);
- }
- }
-
- SekClose();
-
- if (pBurnDraw) TmntDraw();
-
- return 0;
-}
-
-static INT32 BlswhstlFrame()
-{
- INT32 nInterleave = 32;
- INT32 nSoundBufferPos = 0;
-
- if (DrvReset) BlswhstlDoReset();
-
- DrvMakeInputs();
-
- nCyclesTotal[0] = 16000000 / 60;
- nCyclesTotal[1] = 3579545 / 60;
- nCyclesDone[0] = nCyclesDone[1] = 0;
-
- SekNewFrame();
- ZetNewFrame();
-
- for (INT32 i = 0; i < nInterleave; i++) {
- INT32 nCurrentCPU, nNext;
-
- // Run 68000
- nCurrentCPU = 0;
- SekOpen(0);
- nNext = (i + 1) * nCyclesTotal[nCurrentCPU] / nInterleave;
- nCyclesSegment = nNext - nCyclesDone[nCurrentCPU];
- nCyclesDone[nCurrentCPU] += SekRun(nCyclesSegment);
- if (i == (nInterleave - 1) && K052109_irq_enabled) SekSetIRQLine(4, CPU_IRQSTATUS_AUTO);
- SekClose();
-
- // Run Z80
- nCurrentCPU = 1;
- ZetOpen(0);
- nNext = (i + 1) * nCyclesTotal[nCurrentCPU] / nInterleave;
- nCyclesSegment = nNext - nCyclesDone[nCurrentCPU];
- nCyclesSegment = ZetRun(nCyclesSegment);
- nCyclesDone[nCurrentCPU] += nCyclesSegment;
- ZetClose();
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen / nInterleave;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- BurnYM2151Render(pSoundBuf, nSegmentLength);
- K053260Update(0, pSoundBuf, nSegmentLength);
- nSoundBufferPos += nSegmentLength;
- }
- }
-
- // Make sure the buffer is entirely filled.
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
-
- if (nSegmentLength) {
- BurnYM2151Render(pSoundBuf, nSegmentLength);
- K053260Update(0, pSoundBuf, nSegmentLength);
- }
- }
-
- if (pBurnDraw) BlswhstlDraw();
-
- K053245ClearBuffer(0);
-
- return 0;
-}
-
-static INT32 SsridersFrame()
-{
- INT32 nInterleave = 256;
- INT32 nSoundBufferPos = 0;
-
- if (DrvReset) SsridersDoReset();
-
- SsridersMakeInputs();
-
- nCyclesTotal[0] = 16000000 / 60;
- nCyclesTotal[1] = 8000000 / 60;
- nCyclesDone[0] = nCyclesDone[1] = 0;
-
- SekNewFrame();
- ZetNewFrame();
-
- for (INT32 i = 0; i < nInterleave; i++) {
- INT32 nCurrentCPU, nNext;
-
- // Run 68000
- nCurrentCPU = 0;
- SekOpen(0);
- nNext = (i + 1) * nCyclesTotal[nCurrentCPU] / nInterleave;
- nCyclesSegment = nNext - nCyclesDone[nCurrentCPU];
- nCyclesDone[nCurrentCPU] += SekRun(nCyclesSegment);
- if (i == 19) DrvVBlank = 0;
- if (i == 240) DrvVBlank = 1;
- SekClose();
-
- // Run Z80
- nCurrentCPU = 1;
- ZetOpen(0);
- nNext = (i + 1) * nCyclesTotal[nCurrentCPU] / nInterleave;
- nCyclesSegment = nNext - nCyclesDone[nCurrentCPU];
- nCyclesSegment = ZetRun(nCyclesSegment);
- nCyclesDone[nCurrentCPU] += nCyclesSegment;
- ZetClose();
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen / nInterleave;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- BurnYM2151Render(pSoundBuf, nSegmentLength);
- K053260Update(0, pSoundBuf, nSegmentLength);
- nSoundBufferPos += nSegmentLength;
- }
- }
-
- SekOpen(0);
- if (K052109_irq_enabled) SekSetIRQLine(4, CPU_IRQSTATUS_AUTO);
- SekClose();
-
- // Make sure the buffer is entirely filled.
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
-
- if (nSegmentLength) {
- BurnYM2151Render(pSoundBuf, nSegmentLength);
- K053260Update(0, pSoundBuf, nSegmentLength);
- }
- }
-
- if (pBurnDraw) BlswhstlDraw();
-
- return 0;
-}
-
-static INT32 Thndrx2Frame()
-{
- INT32 nInterleave = 100;
- INT32 nSoundBufferPos = 0;
-
- if (DrvReset) SsridersDoReset();
-
- DrvMakeInputs();
-
- nCyclesTotal[0] = 12000000 / 60;
- nCyclesTotal[1] = 3579545 / 60;
- nCyclesDone[0] = nCyclesDone[1] = 0;
-
- SekNewFrame();
- ZetNewFrame();
-
- SekOpen(0);
- ZetOpen(0);
-
- for (INT32 i = 0; i < nInterleave; i++) {
- INT32 nCurrentCPU, nNext;
-
- // Run 68000
- nCurrentCPU = 0;
- nNext = (i + 1) * nCyclesTotal[nCurrentCPU] / nInterleave;
- nCyclesSegment = nNext - nCyclesDone[nCurrentCPU];
- nCyclesDone[nCurrentCPU] += SekRun(nCyclesSegment);
-
- // Run Z80
- nCurrentCPU = 1;
- nNext = (i + 1) * nCyclesTotal[nCurrentCPU] / nInterleave;
- nCyclesSegment = nNext - nCyclesDone[nCurrentCPU];
- nCyclesSegment = ZetRun(nCyclesSegment);
- nCyclesDone[nCurrentCPU] += nCyclesSegment;
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen / nInterleave;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- BurnYM2151Render(pSoundBuf, nSegmentLength);
- K053260Update(0, pSoundBuf, nSegmentLength);
- nSoundBufferPos += nSegmentLength;
- }
- }
-
- if (K052109_irq_enabled) SekSetIRQLine(4, CPU_IRQSTATUS_AUTO);
-
- // Make sure the buffer is entirely filled.
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
-
- if (nSegmentLength) {
- BurnYM2151Render(pSoundBuf, nSegmentLength);
- K053260Update(0, pSoundBuf, nSegmentLength);
- }
- }
-
- ZetClose();
- SekClose();
-
- if (pBurnDraw) Thndrx2Draw();
-
- return 0;
-}
-
-static INT32 LgtnfghtFrame()
-{
- INT32 nInterleave = 100;
- INT32 nSoundBufferPos = 0;
-
- if (DrvReset) SsridersDoReset();
-
- DrvMakeInputs();
-
- nCyclesTotal[0] = 12000000 / 60;
- nCyclesTotal[1] = 3579545 / 60;
- nCyclesDone[0] = nCyclesDone[1] = 0;
-
- SekNewFrame();
- ZetNewFrame();
-
- SekOpen(0);
- ZetOpen(0);
-
- for (INT32 i = 0; i < nInterleave; i++) {
- INT32 nCurrentCPU, nNext;
-
- // Run 68000
- nCurrentCPU = 0;
- nNext = (i + 1) * nCyclesTotal[nCurrentCPU] / nInterleave;
- nCyclesSegment = nNext - nCyclesDone[nCurrentCPU];
- nCyclesDone[nCurrentCPU] += SekRun(nCyclesSegment);
-
- // Run Z80
- nCurrentCPU = 1;
- nNext = (i + 1) * nCyclesTotal[nCurrentCPU] / nInterleave;
- nCyclesSegment = nNext - nCyclesDone[nCurrentCPU];
- nCyclesSegment = ZetRun(nCyclesSegment);
- nCyclesDone[nCurrentCPU] += nCyclesSegment;
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen / nInterleave;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- BurnYM2151Render(pSoundBuf, nSegmentLength);
- K053260Update(0, pSoundBuf, nSegmentLength);
- nSoundBufferPos += nSegmentLength;
- }
- }
-
- if (K052109_irq_enabled) SekSetIRQLine(5, CPU_IRQSTATUS_AUTO);
-
- // Make sure the buffer is entirely filled.
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
-
- if (nSegmentLength) {
- BurnYM2151Render(pSoundBuf, nSegmentLength);
- K053260Update(0, pSoundBuf, nSegmentLength);
- }
- }
-
- ZetClose();
- SekClose();
-
- if (pBurnDraw) BlswhstlDraw();
-
- return 0;
-}
-
-static INT32 Tmnt2Frame()
-{
- INT32 nInterleave = 262;
- INT32 nSoundBufferPos = 0;
-
- if (DrvReset) SsridersDoReset();
-
- SsridersMakeInputs();
-
- nCyclesTotal[0] = 16000000 / 60;
- nCyclesTotal[1] = 8000000 / 60;
- nCyclesDone[0] = nCyclesDone[1] = 0;
-
- SekNewFrame();
- ZetNewFrame();
-
- for (INT32 i = 0; i < nInterleave; i++) {
- INT32 nCurrentCPU, nNext;
-
- // Run 68000
- nCurrentCPU = 0;
- SekOpen(0);
- nNext = (i + 1) * nCyclesTotal[nCurrentCPU] / nInterleave;
- nCyclesSegment = nNext - nCyclesDone[nCurrentCPU];
- nCyclesDone[nCurrentCPU] += SekRun(nCyclesSegment);
- if (i == 19) DrvVBlank = 0;
- if (i == 243) DrvVBlank = 1;
- if (i == 243 && K052109_irq_enabled) SekSetIRQLine(4, CPU_IRQSTATUS_AUTO);
- SekClose();
-
- // Run Z80
- nCurrentCPU = 1;
- ZetOpen(0);
- nNext = (i + 1) * nCyclesTotal[nCurrentCPU] / nInterleave;
- nCyclesSegment = nNext - nCyclesDone[nCurrentCPU];
- nCyclesSegment = ZetRun(nCyclesSegment);
- nCyclesDone[nCurrentCPU] += nCyclesSegment;
- ZetClose();
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen / nInterleave;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- BurnYM2151Render(pSoundBuf, nSegmentLength);
- K053260Update(0, pSoundBuf, nSegmentLength);
- nSoundBufferPos += nSegmentLength;
- }
- }
-
- // Make sure the buffer is entirely filled.
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
-
- if (nSegmentLength) {
- BurnYM2151Render(pSoundBuf, nSegmentLength);
- K053260Update(0, pSoundBuf, nSegmentLength);
- }
- }
-
- if (pBurnDraw) BlswhstlDraw();
-
- return 0;
-}
-
-static INT32 PunkshotFrame()
-{
- INT32 nInterleave = 256;
- INT32 nSoundBufferPos = 0;
-
- if (DrvReset) PunkshotDoReset();
-
- DrvMakeInputs();
-
- nCyclesTotal[0] = 12000000 / 60;
- nCyclesTotal[1] = 3579545 / 60;
- nCyclesDone[0] = nCyclesDone[1] = 0;
-
- SekNewFrame();
- ZetNewFrame();
-
- SekOpen(0);
- ZetOpen(0);
-
- for (INT32 i = 0; i < nInterleave; i++) {
- INT32 nCurrentCPU, nNext;
-
- // Run 68000
- nCurrentCPU = 0;
- nNext = (i + 1) * nCyclesTotal[nCurrentCPU] / nInterleave;
- nCyclesSegment = nNext - nCyclesDone[nCurrentCPU];
- nCyclesDone[nCurrentCPU] += SekRun(nCyclesSegment);
-
- // Run Z80
- nCurrentCPU = 1;
- nNext = (i + 1) * nCyclesTotal[nCurrentCPU] / nInterleave;
- nCyclesSegment = nNext - nCyclesDone[nCurrentCPU];
- nCyclesSegment = ZetRun(nCyclesSegment);
- nCyclesDone[nCurrentCPU] += nCyclesSegment;
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen / nInterleave;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- BurnYM2151Render(pSoundBuf, nSegmentLength);
- K053260Update(0, pSoundBuf, nSegmentLength);
- nSoundBufferPos += nSegmentLength;
- }
- }
-
- if (K052109_irq_enabled) SekSetIRQLine(4, CPU_IRQSTATUS_AUTO);
-
- // Make sure the buffer is entirely filled.
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
-
- if (nSegmentLength) {
- BurnYM2151Render(pSoundBuf, nSegmentLength);
- K053260Update(0, pSoundBuf, nSegmentLength);
- }
- }
-
- ZetClose();
- SekClose();
-
- if (pBurnDraw) PunkshotDraw();
-
- return 0;
-}
-
-static INT32 DrvScan(INT32 nAction, INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin != NULL) { // Return minimum compatible version
- *pnMin = 0x029693;
- }
-
- if (nAction & ACB_MEMORY_RAM) {
- memset(&ba, 0, sizeof(ba));
- ba.Data = RamStart;
- ba.nLen = RamEnd-RamStart;
- ba.szName = "All Ram";
- BurnAcb(&ba);
- }
-
- KonamiICScan(nAction);
-
- if (nAction & ACB_DRIVER_DATA) {
- SekScan(nAction);
-
- BurnYM2151Scan(nAction);
-
- // Scan critical driver variables
- SCAN_VAR(nCyclesDone);
- SCAN_VAR(nCyclesSegment);
- SCAN_VAR(DrvDip);
- SCAN_VAR(DrvInput);
- SCAN_VAR(bIrqEnable);
- SCAN_VAR(DrvSoundLatch);
- SCAN_VAR(TitleSoundLatch);
- SCAN_VAR(PlayTitleSample);
- SCAN_VAR(TitleSamplePos);
- SCAN_VAR(PriorityFlag);
-
- BurnRandomScan(nAction);
- }
-
- return 0;
-}
-
-static INT32 TmntScan(INT32 nAction, INT32 *pnMin)
-{
- if (nAction & ACB_DRIVER_DATA) {
- ZetScan(nAction);
- K007232Scan(nAction, pnMin);
- UPD7759Scan(0, nAction, pnMin);
- }
-
- return DrvScan(nAction, pnMin);
-}
-
-static INT32 MiaScan(INT32 nAction, INT32 *pnMin)
-{
- if (nAction & ACB_DRIVER_DATA) {
- ZetScan(nAction);
- K007232Scan(nAction, pnMin);
- }
-
- return DrvScan(nAction, pnMin);
-}
-
-static INT32 CuebrickScan(INT32 nAction, INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (nAction & ACB_NVRAM) {
- memset(&ba, 0, sizeof(ba));
- ba.Data = DrvNvRam;
- ba.nLen = 0x400 * 0x20;
- ba.szName = "NV RAM";
- BurnAcb(&ba);
- }
-
- if (nAction & ACB_DRIVER_DATA) {
- KonamiICScan(nAction);
- SCAN_VAR(CuebrickSndIrqFire);
- }
-
- return DrvScan(nAction, pnMin);
-}
-
-static INT32 BlswhstlScan(INT32 nAction, INT32 *pnMin)
-{
- if (nAction & ACB_DRIVER_DATA) {
- ZetScan(nAction);
- K053260Scan(nAction);
-
- SCAN_VAR(InitEEPROMCount);
- }
-
- EEPROMScan(nAction, pnMin);
-
- return DrvScan(nAction, pnMin);
-}
-
-static INT32 SsridersScan(INT32 nAction, INT32 *pnMin)
-{
- if (nAction & ACB_DRIVER_DATA) {
- ZetScan(nAction);
- K053260Scan(nAction);
-
- SCAN_VAR(InitEEPROMCount);
- SCAN_VAR(DrvVBlank);
- }
-
- EEPROMScan(nAction, pnMin);
-
- return DrvScan(nAction, pnMin);
-}
-
-static INT32 Thndrx2aScan(INT32 nAction, INT32 *pnMin)
-{
- if (nAction & ACB_DRIVER_DATA) {
- ZetScan(nAction);
- K053260Scan(nAction);
- }
-
- return DrvScan(nAction, pnMin);
-}
-
-struct BurnDriver BurnDrvTmnt = {
- "tmnt", NULL, NULL, NULL, "1989",
- "Teenage Mutant Ninja Turtles (World 4 Players, version X)\0", NULL, "Konami", "GX963",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 4, HARDWARE_KONAMI_68K_Z80, GBF_SCRFIGHT, 0,
- NULL, TmntRomInfo, TmntRomName, NULL, NULL, TmntInputInfo, TmntDIPInfo,
- TmntInit, TmntExit, TmntFrame, NULL, TmntScan,
- NULL, 0x400, 304, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvTmntu = {
- "tmntu", "tmnt", NULL, NULL, "1989",
- "Teenage Mutant Ninja Turtles (US 4 Players, version R)\0", NULL, "Konami", "GX963",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 4, HARDWARE_KONAMI_68K_Z80, GBF_SCRFIGHT, 0,
- NULL, TmntuRomInfo, TmntuRomName, NULL, NULL, TmntInputInfo, TmntDIPInfo,
- TmntInit, TmntExit, TmntFrame, NULL, TmntScan,
- NULL, 0x400, 304, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvTmntua = {
- "tmntua", "tmnt", NULL, NULL, "1989",
- "Teenage Mutant Ninja Turtles (US 4 Players, version J)\0", NULL, "Konami", "GX963",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 4, HARDWARE_KONAMI_68K_Z80, GBF_SCRFIGHT, 0,
- NULL, TmntuaRomInfo, TmntuaRomName, NULL, NULL, TmntInputInfo, TmntDIPInfo,
- TmntInit, TmntExit, TmntFrame, NULL, TmntScan,
- NULL, 0x400, 304, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvTmntub = {
- "tmntub", "tmnt", NULL, NULL, "1989",
- "Teenage Mutant Ninja Turtles (US 4 Players, version H)\0", NULL, "Konami", "GX963",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 4, HARDWARE_KONAMI_68K_Z80, GBF_SCRFIGHT, 0,
- NULL, TmntubRomInfo, TmntubRomName, NULL, NULL, TmntInputInfo, TmntDIPInfo,
- TmntInit, TmntExit, TmntFrame, NULL, TmntScan,
- NULL, 0x400, 304, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvTmht = {
- "tmht", "tmnt", NULL, NULL, "1989",
- "Teenage Mutant Hero Turtles (UK 4 Players, version F)\0", NULL, "Konami", "GX963",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 4, HARDWARE_KONAMI_68K_Z80, GBF_SCRFIGHT, 0,
- NULL, TmhtRomInfo, TmhtRomName, NULL, NULL, TmntInputInfo, TmntDIPInfo,
- TmntInit, TmntExit, TmntFrame, NULL, TmntScan,
- NULL, 0x400, 304, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvTmhta = {
- "tmhta", "tmnt", NULL, NULL, "1989",
- "Teenage Mutant Hero Turtles (UK 4 Players, version S)\0", NULL, "Konami", "GX963",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 4, HARDWARE_KONAMI_68K_Z80, GBF_SCRFIGHT, 0,
- NULL, TmhtaRomInfo, TmhtaRomName, NULL, NULL, TmntInputInfo, TmntDIPInfo,
- TmntInit, TmntExit, TmntFrame, NULL, TmntScan,
- NULL, 0x400, 304, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvTmhtb = {
- "tmhtb", "tmnt", NULL, NULL, "1989",
- "Teenage Mutant Hero Turtles (UK 4 Players, version ?)\0", NULL, "Konami", "GX963",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 4, HARDWARE_KONAMI_68K_Z80, GBF_SCRFIGHT, 0,
- NULL, TmhtbRomInfo, TmhtbRomName, NULL, NULL, TmntInputInfo, TmntDIPInfo,
- TmntInit, TmntExit, TmntFrame, NULL, TmntScan,
- NULL, 0x400, 304, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvTmntj = {
- "tmntj", "tmnt", NULL, NULL, "1990",
- "Teenage Mutant Ninja Turtles (Japan 4 Players, version 2)\0", NULL, "Konami", "GX963",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 4, HARDWARE_KONAMI_68K_Z80, GBF_SCRFIGHT, 0,
- NULL, TmntjRomInfo, TmntjRomName, NULL, NULL, TmntInputInfo, TmntDIPInfo,
- TmntInit, TmntExit, TmntFrame, NULL, TmntScan,
- NULL, 0x400, 304, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvTmnta = {
- "tmnta", "tmnt", NULL, NULL, "1990",
- "Teenage Mutant Ninja Turtles (Asia 4 Players, version ?)\0", NULL, "Konami", "GX963",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 4, HARDWARE_KONAMI_68K_Z80, GBF_SCRFIGHT, 0,
- NULL, TmntaRomInfo, TmntaRomName, NULL, NULL, TmntInputInfo, TmntDIPInfo,
- TmntInit, TmntExit, TmntFrame, NULL, TmntScan,
- NULL, 0x400, 304, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvTmht2p = {
- "tmht2p", "tmnt", NULL, NULL, "1989",
- "Teenage Mutant Hero Turtles (UK 2 Players, version U)\0", NULL, "Konami", "GX963",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_KONAMI_68K_Z80, GBF_SCRFIGHT, 0,
- NULL, Tmht2pRomInfo, Tmht2pRomName, NULL, NULL, Tmnt2pInputInfo, Tmnt2pDIPInfo,
- TmntInit, TmntExit, TmntFrame, NULL, TmntScan,
- NULL, 0x400, 304, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvTmht2pa = {
- "tmht2pa", "tmnt", NULL, NULL, "1989",
- "Teenage Mutant Hero Turtles (UK 2 Players, version ?)\0", NULL, "Konami", "GX963",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_KONAMI_68K_Z80, GBF_SCRFIGHT, 0,
- NULL, Tmht2paRomInfo, Tmht2paRomName, NULL, NULL, Tmnt2pInputInfo, Tmnt2pDIPInfo,
- TmntInit, TmntExit, TmntFrame, NULL, TmntScan,
- NULL, 0x400, 304, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvTmht2pj = {
- "tmnt2pj", "tmnt", NULL, NULL, "1990",
- "Teenage Mutant Ninja Turtles (Japan 2 Players, version 1)\0", NULL, "Konami", "GX963",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_KONAMI_68K_Z80, GBF_SCRFIGHT, 0,
- NULL, Tmnt2pjRomInfo, Tmnt2pjRomName, NULL, NULL, Tmnt2pInputInfo, Tmnt2pDIPInfo,
- TmntInit, TmntExit, TmntFrame, NULL, TmntScan,
- NULL, 0x400, 304, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvTmht2po = {
- "tmnt2po", "tmnt", NULL, NULL, "1989",
- "Teenage Mutant Ninja Turtles (Oceania 2 Players, version ?)\0", NULL, "Konami", "GX963",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_KONAMI_68K_Z80, GBF_SCRFIGHT, 0,
- NULL, Tmnt2poRomInfo, Tmnt2poRomName, NULL, NULL, Tmnt2pInputInfo, Tmnt2pDIPInfo,
- TmntInit, TmntExit, TmntFrame, NULL, TmntScan,
- NULL, 0x400, 304, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvMia = {
- "mia", NULL, NULL, NULL, "1989",
- "M.I.A. - Missing in Action (version T)\0", NULL, "Konami", "GX808",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_KONAMI_68K_Z80, GBF_PLATFORM, 0,
- NULL, MiaRomInfo, MiaRomName, NULL, NULL, MiaInputInfo, MiaDIPInfo,
- MiaInit, MiaExit, MiaFrame, NULL, MiaScan,
- NULL, 0x400, 304, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvMia2 = {
- "mia2", "mia", NULL, NULL, "1989",
- "M.I.A. - Missing in Action (version S)\0", NULL, "Konami", "GX808",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_KONAMI_68K_Z80, GBF_PLATFORM, 0,
- NULL, Mia2RomInfo, Mia2RomName, NULL, NULL, MiaInputInfo, MiaDIPInfo,
- MiaInit, MiaExit, MiaFrame, NULL, MiaScan,
- NULL, 0x400, 304, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvCuebrick = {
- "cuebrick", NULL, NULL, NULL, "1989",
- "Cue Brick (World, version D)\0", NULL, "Konami", "GX903",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_KONAMI_68K_Z80, GBF_PUZZLE, 0,
- NULL, CuebrickRomInfo, CuebrickRomName, NULL, NULL, MiaInputInfo, MiaDIPInfo,
- CuebrickInit, CommonExit, CuebrickFrame, NULL, CuebrickScan,
- NULL, 0x400, 304, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvBlswhstl = {
- "blswhstl", NULL, NULL, NULL, "1991",
- "Bells & Whistles (World, version L)\0", NULL, "Konami", "GX060",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED, 2, HARDWARE_KONAMI_68K_Z80, GBF_VERSHOOT, 0,
- NULL, BlswhstlRomInfo, BlswhstlRomName, NULL, NULL, BlswhstlInputInfo, NULL,
- BlswhstlInit, BlswhstlExit, BlswhstlFrame, NULL, BlswhstlScan,
- NULL, 0x810, 224, 280, 3, 4
-};
-
-struct BurnDriver BurnDrvBlswhstla = {
- "blswhstla", "blswhstl", NULL, NULL, "1991",
- "Bells & Whistles (Asia, version M)\0", NULL, "Konami", "GX060",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED, 2, HARDWARE_KONAMI_68K_Z80, GBF_VERSHOOT, 0,
- NULL, BlswhstlaRomInfo, BlswhstlaRomName, NULL, NULL, BlswhstlInputInfo, NULL,
- BlswhstlInit, BlswhstlExit, BlswhstlFrame, NULL, BlswhstlScan,
- NULL, 0x810, 224, 280, 3, 4
-};
-
-struct BurnDriver BurnDrvDetatwin = {
- "detatwin", "blswhstl", NULL, NULL, "1991",
- "Detana!! Twin Bee (Japan ver. J)\0", NULL, "Konami", "GX060",
- L"\u51FA\u305F\u306A!! Twin Bee \u30C4\u30A4\u30F3\u30D3\u30FC (Japan, version J)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED, 2, HARDWARE_KONAMI_68K_Z80, GBF_VERSHOOT, 0,
- NULL, DetatwinRomInfo, DetatwinRomName, NULL, NULL, BlswhstlInputInfo, NULL,
- BlswhstlInit, BlswhstlExit, BlswhstlFrame, NULL, BlswhstlScan,
- NULL, 0x810, 224, 280, 3, 4
-};
-
-struct BurnDriver BurnDrvSsriders = {
- "ssriders", NULL, NULL, NULL, "1991",
- "Sunset Riders (4 Players ver. EAC)\0", NULL, "Konami", "GX064",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 4, HARDWARE_KONAMI_68K_Z80, GBF_PLATFORM, 0,
- NULL, SsridersRomInfo, SsridersRomName, NULL, NULL, Ssriders4pInputInfo, NULL,
- SsridersInit, BlswhstlExit, SsridersFrame, NULL, SsridersScan,
- NULL, 0x810, 288, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvSsridersebd = {
- "ssridersebd", "ssriders", NULL, NULL, "1991",
- "Sunset Riders (2 Players ver. EBD)\0", NULL, "Konami", "GX064",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_KONAMI_68K_Z80, GBF_PLATFORM, 0,
- NULL, SsridersebdRomInfo, SsridersebdRomName, NULL, NULL, SsridersInputInfo, NULL,
- SsridersInit, BlswhstlExit, SsridersFrame, NULL, SsridersScan,
- NULL, 0x810, 288, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvSsridersebc = {
- "ssridersebc", "ssriders", NULL, NULL, "1991",
- "Sunset Riders (2 Players ver. EBC)\0", NULL, "Konami", "GX064",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_KONAMI_68K_Z80, GBF_PLATFORM, 0,
- NULL, SsridersebcRomInfo, SsridersebcRomName, NULL, NULL, SsridersInputInfo, NULL,
- SsridersInit, BlswhstlExit, SsridersFrame, NULL, SsridersScan,
- NULL, 0x810, 288, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvSsridersuda = {
- "ssridersuda", "ssriders", NULL, NULL, "1991",
- "Sunset Riders (4 Players ver. UDA)\0", NULL, "Konami", "GX064",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 4, HARDWARE_KONAMI_68K_Z80, GBF_PLATFORM, 0,
- NULL, SsridersudaRomInfo, SsridersudaRomName, NULL, NULL, Ssriders4psInputInfo, NULL,
- SsridersInit, BlswhstlExit, SsridersFrame, NULL, SsridersScan,
- NULL, 0x810, 288, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvSsriderseaa = {
- "ssriderseaa", "ssriders", NULL, NULL, "1991",
- "Sunset Riders (4 Players ver. EAA)\0", NULL, "Konami", "GX064",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 4, HARDWARE_KONAMI_68K_Z80, GBF_PLATFORM, 0,
- NULL, SsriderseaaRomInfo, SsriderseaaRomName, NULL, NULL, Ssriders4psInputInfo, NULL,
- SsridersInit, BlswhstlExit, SsridersFrame, NULL, SsridersScan,
- NULL, 0x810, 288, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvSsridersuab = {
- "ssridersuab", "ssriders", NULL, NULL, "1991",
- "Sunset Riders (4 Players ver. UAB)\0", NULL, "Konami", "GX064",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 4, HARDWARE_KONAMI_68K_Z80, GBF_PLATFORM, 0,
- NULL, SsridersuabRomInfo, SsridersuabRomName, NULL, NULL, Ssriders4pInputInfo, NULL,
- SsridersInit, BlswhstlExit, SsridersFrame, NULL, SsridersScan,
- NULL, 0x810, 288, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvSsridersuac = {
- "ssridersuac", "ssriders", NULL, NULL, "1991",
- "Sunset Riders (4 Players ver. UAC)\0", NULL, "Konami", "GX064",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 4, HARDWARE_KONAMI_68K_Z80, GBF_PLATFORM, 0,
- NULL, SsridersuacRomInfo, SsridersuacRomName, NULL, NULL, Ssriders4pInputInfo, NULL,
- SsridersInit, BlswhstlExit, SsridersFrame, NULL, SsridersScan,
- NULL, 0x810, 288, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvSsridersubc = {
- "ssridersubc", "ssriders", NULL, NULL, "1991",
- "Sunset Riders (2 Players ver. UBC)\0", NULL, "Konami", "GX064",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_KONAMI_68K_Z80, GBF_PLATFORM, 0,
- NULL, SsridersubcRomInfo, SsridersubcRomName, NULL, NULL, SsridersInputInfo, NULL,
- SsridersInit, BlswhstlExit, SsridersFrame, NULL, SsridersScan,
- NULL, 0x810, 288, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvSsridersabd = {
- "ssridersabd", "ssriders", NULL, NULL, "1991",
- "Sunset Riders (2 Players ver. ABD)\0", NULL, "Konami", "GX064",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_KONAMI_68K_Z80, GBF_PLATFORM, 0,
- NULL, SsridersabdRomInfo, SsridersabdRomName, NULL, NULL, SsridersInputInfo, NULL,
- SsridersInit, BlswhstlExit, SsridersFrame, NULL, SsridersScan,
- NULL, 0x810, 288, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvSsridersadd = {
- "ssridersadd", "ssriders", NULL, NULL, "1991",
- "Sunset Riders (4 Players ver. ADD)\0", NULL, "Konami", "GX064",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 4, HARDWARE_KONAMI_68K_Z80, GBF_PLATFORM, 0,
- NULL, SsridersaddRomInfo, SsridersaddRomName, NULL, NULL, Ssriders4psInputInfo, NULL,
- SsridersInit, BlswhstlExit, SsridersFrame, NULL, SsridersScan,
- NULL, 0x810, 288, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvSsridersjac = {
- "ssridersjac", "ssriders", NULL, NULL, "1991",
- "Sunset Riders (4 Players ver. JAC)\0", NULL, "Konami", "GX064",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_KONAMI_68K_Z80, GBF_PLATFORM, 0,
- NULL, SsridersjacRomInfo, SsridersjacRomName, NULL, NULL, SsridersInputInfo, NULL,
- SsridersInit, BlswhstlExit, SsridersFrame, NULL, SsridersScan,
- NULL, 0x810, 288, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvSsridersjad = {
- "ssridersjad", "ssriders", NULL, NULL, "1991",
- "Sunset Riders (4 Players ver. JAD)\0", NULL, "Konami", "GX064",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_KONAMI_68K_Z80, GBF_PLATFORM, 0,
- NULL, SsridersjadRomInfo, SsridersjadRomName, NULL, NULL, SsridersInputInfo, NULL,
- SsridersInit, BlswhstlExit, SsridersFrame, NULL, SsridersScan,
- NULL, 0x810, 288, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvSsridersjbd = {
- "ssridersjbd", "ssriders", NULL, NULL, "1991",
- "Sunset Riders (2 Players ver. JBD)\0", NULL, "Konami", "GX064",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_KONAMI_68K_Z80, GBF_PLATFORM, 0,
- NULL, SsridersjbdRomInfo, SsridersjbdRomName, NULL, NULL, SsridersInputInfo, NULL,
- SsridersInit, BlswhstlExit, SsridersFrame, NULL, SsridersScan,
- NULL, 0x810, 288, 224, 4, 3
-};
-
-static INT32 SsridersbInit()
-{
- return 1;
-}
-
-struct BurnDriverD BurnDrvSsridersb = {
- "ssridersb", "ssriders", NULL, NULL, "1991",
- "Sunset Riders (bootleg 4 Players ver. ADD)\0", NULL, "Konami", "GX064",
- NULL, NULL, NULL, NULL,
- BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_KONAMI_68K_Z80, GBF_PLATFORM, 0,
- NULL, ssridersbRomInfo, ssridersbRomName, NULL, NULL, Ssriders4psInputInfo, NULL,
- SsridersbInit, CommonExit, SsridersFrame, NULL, SsridersScan,
- NULL, 0x810, 288, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvThndrx2 = {
- "thndrx2", NULL, NULL, NULL, "1991",
- "Thunder Cross II (World)\0", NULL, "Konami", "GX073",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_KONAMI_68K_Z80, GBF_HORSHOOT, 0,
- NULL, thndrx2RomInfo, thndrx2RomName, NULL, NULL, Thndrx2InputInfo, NULL,
- Thndrx2Init, BlswhstlExit, Thndrx2Frame, NULL, Thndrx2aScan,
- NULL, 0x800, 288, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvThndrx2a = {
- "thndrx2a", "thndrx2", NULL, NULL, "1991",
- "Thunder Cross II (Asia)\0", NULL, "Konami", "GX073",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_KONAMI_68K_Z80, GBF_HORSHOOT, 0,
- NULL, thndrx2aRomInfo, thndrx2aRomName, NULL, NULL, Thndrx2InputInfo, NULL,
- Thndrx2Init, BlswhstlExit, Thndrx2Frame, NULL, Thndrx2aScan,
- NULL, 0x800, 288, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvThndrx2j = {
- "thndrx2j", "thndrx2", NULL, NULL, "1991",
- "Thunder Cross II (Japan)\0", NULL, "Konami", "GX073",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_KONAMI_68K_Z80, GBF_HORSHOOT, 0,
- NULL, thndrx2jRomInfo, thndrx2jRomName, NULL, NULL, Thndrx2InputInfo, NULL,
- Thndrx2Init, BlswhstlExit, Thndrx2Frame, NULL, Thndrx2aScan,
- NULL, 0x800, 288, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvLgtnfght = {
- "lgtnfght", NULL, NULL, NULL, "1990",
- "Lightning Fighters (World)\0", NULL, "Konami", "GX939",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED, 2, HARDWARE_KONAMI_68K_Z80, GBF_VERSHOOT, 0,
- NULL, lgtnfghtRomInfo, lgtnfghtRomName, NULL, NULL, LgtnfghtInputInfo, LgtnfghtDIPInfo,
- LgtnfghtInit, BlswhstlExit, LgtnfghtFrame, NULL, Thndrx2aScan,
- NULL, 0x800, 224, 288, 3, 4
-};
-
-struct BurnDriver BurnDrvLgtnfghtu = {
- "lgtnfghtu", "lgtnfght", NULL, NULL, "1990",
- "Lightning Fighters (US)\0", NULL, "Konami", "GX939",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED, 2, HARDWARE_KONAMI_68K_Z80, GBF_VERSHOOT, 0,
- NULL, lgtnfghtuRomInfo, lgtnfghtuRomName, NULL, NULL, LgtnfghtInputInfo, LgtnfghtDIPInfo,
- LgtnfghtInit, BlswhstlExit, LgtnfghtFrame, NULL, Thndrx2aScan,
- NULL, 0x800, 224, 288, 3, 4
-};
-
-struct BurnDriver BurnDrvLgtnfghta = {
- "lgtnfghta", "lgtnfght", NULL, NULL, "1990",
- "Lightning Fighters (Asia)\0", NULL, "Konami", "GX939",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED, 2, HARDWARE_KONAMI_68K_Z80, GBF_VERSHOOT, 0,
- NULL, lgtnfghtaRomInfo, lgtnfghtaRomName, NULL, NULL, LgtnfghtInputInfo, LgtnfghtDIPInfo,
- LgtnfghtInit, BlswhstlExit, LgtnfghtFrame, NULL, Thndrx2aScan,
- NULL, 0x800, 224, 288, 3, 4
-};
-
-struct BurnDriver BurnDrvTrigon = {
- "trigon", "lgtnfght", NULL, NULL, "1990",
- "Trigon (Japan)\0", NULL, "Konami", "GX939",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED, 2, HARDWARE_KONAMI_68K_Z80, GBF_VERSHOOT, 0,
- NULL, trigonRomInfo, trigonRomName, NULL, NULL, LgtnfghtInputInfo, LgtnfghtDIPInfo,
- LgtnfghtInit, BlswhstlExit, LgtnfghtFrame, NULL, Thndrx2aScan,
- NULL, 0x800, 224, 288, 3, 4
-};
-
-struct BurnDriver BurnDrvTmnt2 = {
- "tmnt2", NULL, NULL, NULL, "1991",
- "Teenage Mutant Ninja Turtles - Turtles in Time (4 Players ver. UAA)\0", NULL, "Konami", "GX063",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 4, HARDWARE_KONAMI_68K_Z80, GBF_SCRFIGHT, 0,
- NULL, tmnt2RomInfo, tmnt2RomName, NULL, NULL, Ssriders4pInputInfo, NULL,
- Tmnt2Init, BlswhstlExit, Tmnt2Frame, NULL, SsridersScan,
- NULL, 0x800, 288, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvTmnt22pu = {
- "tmnt22pu", "tmnt2", NULL, NULL, "1991",
- "Teenage Mutant Ninja Turtles - Turtles in Time (2 Players ver. UDA)\0", NULL, "Konami", "GX063",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_KONAMI_68K_Z80, GBF_SCRFIGHT, 0,
- NULL, tmnt22puRomInfo, tmnt22puRomName, NULL, NULL, SsridersInputInfo, NULL,
- Tmnt2Init, BlswhstlExit, Tmnt2Frame, NULL, SsridersScan,
- NULL, 0x800, 288, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvTmht22pe = {
- "tmht22pe", "tmnt2", NULL, NULL, "1991",
- "Teenage Mutant Hero Turtles - Turtles in Time (2 Players ver. EBA)\0", NULL, "Konami", "GX063",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_KONAMI_68K_Z80, GBF_SCRFIGHT, 0,
- NULL, tmht22peRomInfo, tmht22peRomName, NULL, NULL, SsridersInputInfo, NULL,
- Tmnt2Init, BlswhstlExit, Tmnt2Frame, NULL, SsridersScan,
- NULL, 0x800, 288, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvTmht24pe = {
- "tmht24pe", "tmnt2", NULL, NULL, "1991",
- "Teenage Mutant Hero Turtles - Turtles in Time (4 Players ver. EAA)\0", NULL, "Konami", "GX063",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_KONAMI_68K_Z80, GBF_SCRFIGHT, 0,
- NULL, tmht24peRomInfo, tmht24peRomName, NULL, NULL, SsridersInputInfo, NULL,
- Tmnt2Init, BlswhstlExit, Tmnt2Frame, NULL, SsridersScan,
- NULL, 0x800, 288, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvTmnt2a = {
- "tmnt2a", "tmnt2", NULL, NULL, "1991",
- "Teenage Mutant Ninja Turtles - Turtles in Time (4 Players ver. ADA)\0", NULL, "Konami", "GX063",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 4, HARDWARE_KONAMI_68K_Z80, GBF_SCRFIGHT, 0,
- NULL, tmnt2aRomInfo, tmnt2aRomName, NULL, NULL, Ssriders4psInputInfo, NULL,
- Tmnt2Init, BlswhstlExit, Tmnt2Frame, NULL, SsridersScan,
- NULL, 0x800, 288, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvQgakumon = {
- "qgakumon", NULL, NULL, NULL, "1993",
- "Quiz Gakumon no Susume (Japan ver. JA2 Type L)\0", NULL, "Konami", "GX248",
- L"\u30AF\u30A4\u30BA \u5B66\u554F\u30CE\u30B9\u30B9\u30E1 Gakumon no Susume (Japan ver. JA2 Type L)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_KONAMI_68K_Z80, GBF_QUIZ, 0,
- NULL, qgakumonRomInfo, qgakumonRomName, NULL, NULL, QgakumonInputInfo, NULL,
- QgakumonInit, BlswhstlExit, Tmnt2Frame, NULL, SsridersScan,
- NULL, 0x800, 304, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvPunkshot = {
- "punkshot", NULL, NULL, NULL, "1990",
- "Punk Shot (US 4 Players)\0", NULL, "Konami", "GX907",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 4, HARDWARE_KONAMI_68K_Z80, GBF_SPORTSMISC, 0,
- NULL, punkshotRomInfo, punkshotRomName, NULL, NULL, PunkshotInputInfo, PunkshotDIPInfo,
- PunkshotInit, PunkshotExit, PunkshotFrame, NULL, Thndrx2aScan,
- NULL, 0x800, 288, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvPunkshot2 = {
- "punkshot2", "punkshot", NULL, NULL, "1990",
- "Punk Shot (US 2 Players)\0", NULL, "Konami", "GX907",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_KONAMI_68K_Z80, GBF_SPORTSMISC, 0,
- NULL, punkshot2RomInfo, punkshot2RomName, NULL, NULL, Punkshot2InputInfo, Punkshot2DIPInfo,
- PunkshotInit, PunkshotExit, PunkshotFrame, NULL, Thndrx2aScan,
- NULL, 0x800, 288, 224, 4, 3
-};
-
-struct BurnDriver BurnDrvPunkshotj = {
- "punkshotj", "punkshot", NULL, NULL, "1990",
- "Punk Shot (Japan 2 Players)\0", NULL, "Konami", "GX907",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_KONAMI_68K_Z80, GBF_SPORTSMISC, 0,
- NULL, punkshotjRomInfo, punkshotjRomName, NULL, NULL, Punkshot2InputInfo, PunkshotjDIPInfo,
- PunkshotInit, PunkshotExit, PunkshotFrame, NULL, Thndrx2aScan,
- NULL, 0x800, 288, 224, 4, 3
-};
diff --git a/jan/src/burn/drv/konami/d_tp84.cpp b/jan/src/burn/drv/konami/d_tp84.cpp
deleted file mode 100644
index 2fee7a53c..000000000
--- a/jan/src/burn/drv/konami/d_tp84.cpp
+++ /dev/null
@@ -1,1113 +0,0 @@
-// FB Alpha Time Pilot '84 driver module
-// Based on MAME driver by Marc Lafontaine
-
-#include "tiles_generic.h"
-#include "m6809_intf.h"
-#include "z80_intf.h"
-#include "sn76496.h"
-#include "flt_rc.h"
-
-static UINT8 *AllMem;
-static UINT8 *MemEnd;
-static UINT8 *AllRam;
-static UINT8 *RamEnd;
-static UINT8 *DrvM6809ROM0;
-static UINT8 *DrvM6809ROM1;
-static UINT8 *DrvZ80ROM;
-static UINT8 *DrvGfxROM0;
-static UINT8 *DrvGfxROM1;
-static UINT8 *DrvColPROM;
-static UINT8 *DrvTransTable;
-static UINT8 *DrvSprRAM;
-static UINT8 *DrvColRAM0;
-static UINT8 *DrvColRAM1;
-static UINT8 *DrvVidRAM0;
-static UINT8 *DrvVidRAM1;
-static UINT8 *DrvSprBuf;
-static UINT8 *DrvShareRAM;
-static UINT8 *DrvZ80RAM;
-
-static UINT32 *DrvPalette;
-static UINT8 DrvRecalc;
-
-static INT16 *pSoundBuffer[3];
-
-static UINT8 palettebank;
-static UINT8 flipscreenx;
-static UINT8 flipscreeny;
-static UINT8 soundlatch;
-static UINT8 scrollx;
-static UINT8 scrolly;
-static UINT8 sub_irqmask;
-
-static INT32 scanline;
-static INT32 watchdog;
-
-static UINT8 DrvJoy1[8];
-static UINT8 DrvJoy2[8];
-static UINT8 DrvJoy3[8];
-static UINT8 DrvDips[3];
-static UINT8 DrvInputs[3];
-static UINT8 DrvReset;
-
-static struct BurnInputInfo Tp84InputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy1 + 0, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 3, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy2 + 2, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy2 + 3, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy2 + 0, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy2 + 1, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy2 + 4, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy2 + 5, "p1 fire 2" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy1 + 1, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy1 + 4, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvJoy3 + 2, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy3 + 3, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy3 + 0, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy3 + 1, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy3 + 4, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy3 + 5, "p2 fire 2" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service", BIT_DIGITAL, DrvJoy1 + 2, "service" },
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip" },
-};
-
-STDINPUTINFO(Tp84)
-
-static struct BurnDIPInfo Tp84DIPList[]=
-{
- {0x12, 0xff, 0xff, 0xff, NULL },
- {0x13, 0xff, 0xff, 0x52, NULL },
-
- {0 , 0xfe, 0 , 16, "Coin A" },
- {0x12, 0x01, 0x0f, 0x02, "4 Coins 1 Credits" },
- {0x12, 0x01, 0x0f, 0x05, "3 Coins 1 Credits" },
- {0x12, 0x01, 0x0f, 0x08, "2 Coins 1 Credits" },
- {0x12, 0x01, 0x0f, 0x04, "3 Coins 2 Credits" },
- {0x12, 0x01, 0x0f, 0x01, "4 Coins 3 Credits" },
- {0x12, 0x01, 0x0f, 0x0f, "1 Coin 1 Credits" },
- {0x12, 0x01, 0x0f, 0x03, "3 Coins 4 Credits" },
- {0x12, 0x01, 0x0f, 0x07, "2 Coins 3 Credits" },
- {0x12, 0x01, 0x0f, 0x0e, "1 Coin 2 Credits" },
- {0x12, 0x01, 0x0f, 0x06, "2 Coins 5 Credits" },
- {0x12, 0x01, 0x0f, 0x0d, "1 Coin 3 Credits" },
- {0x12, 0x01, 0x0f, 0x0c, "1 Coin 4 Credits" },
- {0x12, 0x01, 0x0f, 0x0b, "1 Coin 5 Credits" },
- {0x12, 0x01, 0x0f, 0x0a, "1 Coin 6 Credits" },
- {0x12, 0x01, 0x0f, 0x09, "1 Coin 7 Credits" },
- {0x12, 0x01, 0x0f, 0x00, "Free Play" },
-
- {0 , 0xfe, 0 , 16, "Coin B" },
- {0x12, 0x01, 0xf0, 0x20, "4 Coins 1 Credits" },
- {0x12, 0x01, 0xf0, 0x50, "3 Coins 1 Credits" },
- {0x12, 0x01, 0xf0, 0x80, "2 Coins 1 Credits" },
- {0x12, 0x01, 0xf0, 0x40, "3 Coins 2 Credits" },
- {0x12, 0x01, 0xf0, 0x10, "4 Coins 3 Credits" },
- {0x12, 0x01, 0xf0, 0xf0, "1 Coin 1 Credits" },
- {0x12, 0x01, 0xf0, 0x30, "3 Coins 4 Credits" },
- {0x12, 0x01, 0xf0, 0x70, "2 Coins 3 Credits" },
- {0x12, 0x01, 0xf0, 0xe0, "1 Coin 2 Credits" },
- {0x12, 0x01, 0xf0, 0x60, "2 Coins 5 Credits" },
- {0x12, 0x01, 0xf0, 0xd0, "1 Coin 3 Credits" },
- {0x12, 0x01, 0xf0, 0xc0, "1 Coin 4 Credits" },
- {0x12, 0x01, 0xf0, 0xb0, "1 Coin 5 Credits" },
- {0x12, 0x01, 0xf0, 0xa0, "1 Coin 6 Credits" },
- {0x12, 0x01, 0xf0, 0x90, "1 Coin 7 Credits" },
- {0x12, 0x01, 0xf0, 0x00, "Invalid" },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x13, 0x01, 0x03, 0x03, "2" },
- {0x13, 0x01, 0x03, 0x02, "3" },
- {0x13, 0x01, 0x03, 0x01, "5" },
- {0x13, 0x01, 0x03, 0x00, "7" },
-
- {0 , 0xfe, 0 , 2, "Cabinet" },
- {0x13, 0x01, 0x04, 0x00, "Upright" },
- {0x13, 0x01, 0x04, 0x04, "Cocktail" },
-
- {0 , 0xfe, 0 , 4, "Bonus Life" },
- {0x13, 0x01, 0x18, 0x18, "10000 and every 50000"},
- {0x13, 0x01, 0x18, 0x10, "20000 and every 60000"},
- {0x13, 0x01, 0x18, 0x08, "30000 and every 70000"},
- {0x13, 0x01, 0x18, 0x00, "40000 and every 80000"},
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x13, 0x01, 0x60, 0x60, "Easy" },
- {0x13, 0x01, 0x60, 0x40, "Normal" },
- {0x13, 0x01, 0x60, 0x20, "Hard" },
- {0x13, 0x01, 0x60, 0x00, "Hardest" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x13, 0x01, 0x80, 0x80, "Off" },
- {0x13, 0x01, 0x80, 0x00, "On" },
-};
-
-STDDIPINFO(Tp84)
-
-static struct BurnDIPInfo Tp84aDIPList[]=
-{
- {0x12, 0xff, 0xff, 0xff, NULL },
- {0x13, 0xff, 0xff, 0x52, NULL },
-
- {0 , 0xfe, 0 , 16, "Coin A" },
- {0x12, 0x01, 0x0f, 0x02, "4 Coins 1 Credits" },
- {0x12, 0x01, 0x0f, 0x05, "3 Coins 1 Credits" },
- {0x12, 0x01, 0x0f, 0x08, "2 Coins 1 Credits" },
- {0x12, 0x01, 0x0f, 0x04, "3 Coins 2 Credits" },
- {0x12, 0x01, 0x0f, 0x01, "4 Coins 3 Credits" },
- {0x12, 0x01, 0x0f, 0x0f, "1 Coin 1 Credits" },
- {0x12, 0x01, 0x0f, 0x03, "3 Coins 4 Credits" },
- {0x12, 0x01, 0x0f, 0x07, "2 Coins 3 Credits" },
- {0x12, 0x01, 0x0f, 0x0e, "1 Coin 2 Credits" },
- {0x12, 0x01, 0x0f, 0x06, "2 Coins 5 Credits" },
- {0x12, 0x01, 0x0f, 0x0d, "1 Coin 3 Credits" },
- {0x12, 0x01, 0x0f, 0x0c, "1 Coin 4 Credits" },
- {0x12, 0x01, 0x0f, 0x0b, "1 Coin 5 Credits" },
- {0x12, 0x01, 0x0f, 0x0a, "1 Coin 6 Credits" },
- {0x12, 0x01, 0x0f, 0x09, "1 Coin 7 Credits" },
- {0x12, 0x01, 0x0f, 0x00, "Free Play" },
-
- {0 , 0xfe, 0 , 16, "Coin B" },
- {0x12, 0x01, 0xf0, 0x20, "4 Coins 1 Credits" },
- {0x12, 0x01, 0xf0, 0x50, "3 Coins 1 Credits" },
- {0x12, 0x01, 0xf0, 0x80, "2 Coins 1 Credits" },
- {0x12, 0x01, 0xf0, 0x40, "3 Coins 2 Credits" },
- {0x12, 0x01, 0xf0, 0x10, "4 Coins 3 Credits" },
- {0x12, 0x01, 0xf0, 0xf0, "1 Coin 1 Credits" },
- {0x12, 0x01, 0xf0, 0x30, "3 Coins 4 Credits" },
- {0x12, 0x01, 0xf0, 0x70, "2 Coins 3 Credits" },
- {0x12, 0x01, 0xf0, 0xe0, "1 Coin 2 Credits" },
- {0x12, 0x01, 0xf0, 0x60, "2 Coins 5 Credits" },
- {0x12, 0x01, 0xf0, 0xd0, "1 Coin 3 Credits" },
- {0x12, 0x01, 0xf0, 0xc0, "1 Coin 4 Credits" },
- {0x12, 0x01, 0xf0, 0xb0, "1 Coin 5 Credits" },
- {0x12, 0x01, 0xf0, 0xa0, "1 Coin 6 Credits" },
- {0x12, 0x01, 0xf0, 0x90, "1 Coin 7 Credits" },
- {0x12, 0x01, 0xf0, 0x00, "Invalid" },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x13, 0x01, 0x03, 0x03, "3" },
- {0x13, 0x01, 0x03, 0x02, "4" },
- {0x13, 0x01, 0x03, 0x01, "5" },
- {0x13, 0x01, 0x03, 0x00, "7" },
-
- {0 , 0xfe, 0 , 2, "Cabinet" },
- {0x13, 0x01, 0x04, 0x00, "Upright" },
- {0x13, 0x01, 0x04, 0x04, "Cocktail" },
-
- {0 , 0xfe, 0 , 4, "Bonus Life" },
- {0x13, 0x01, 0x18, 0x18, "10000 and every 50000"},
- {0x13, 0x01, 0x18, 0x10, "20000 and every 60000"},
- {0x13, 0x01, 0x18, 0x08, "30000 and every 70000"},
- {0x13, 0x01, 0x18, 0x00, "40000 and every 80000"},
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x13, 0x01, 0x60, 0x60, "Easy" },
- {0x13, 0x01, 0x60, 0x40, "Normal" },
- {0x13, 0x01, 0x60, 0x20, "Hard" },
- {0x13, 0x01, 0x60, 0x00, "Hardest" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x13, 0x01, 0x80, 0x80, "Off" },
- {0x13, 0x01, 0x80, 0x00, "On" },
-};
-
-STDDIPINFO(Tp84a)
-
-static void tp84_main_write(UINT16 address, UINT8 data)
-{
- switch (address)
- {
- case 0x2000:
- watchdog = 0;
- return;
-
- case 0x2800:
- palettebank = data;
- return;
-
- case 0x3000:
- return;
-
- case 0x3004:
- flipscreenx = data & 0x01;
- return;
-
- case 0x3005:
- flipscreeny = data & 0x01;
- return;
-
- case 0x3800:
- ZetSetVector(0xff);
- ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
- return;
-
- case 0x3a00:
- soundlatch = data;
- return;
-
- case 0x3c00:
- scrollx = data;
- return;
-
- case 0x3e00:
- scrolly = data;
- return;
- }
-}
-
-static UINT8 tp84_main_read(UINT16 address)
-{
- switch (address)
- {
- case 0x2800:
- return DrvInputs[0];
-
- case 0x2820:
- return DrvInputs[1];
-
- case 0x2840:
- return DrvInputs[2];
-
- case 0x2860:
- return DrvDips[0];
-
- case 0x3000:
- return DrvDips[1];
- }
-
- return 0;
-}
-
-static void tp84b_main_write(UINT16 address, UINT8 data)
-{
- switch (address)
- {
- case 0x1800:
- watchdog = 0;
- return;
-
- case 0x1a00:
- palettebank = data;
- return;
-
- case 0x1c00:
- return;
-
- case 0x1c04:
- flipscreenx = data & 0x01;
- return;
-
- case 0x1c05:
- flipscreeny = data & 0x01;
- return;
-
- case 0x1e00:
- ZetSetVector(0xff);
- ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
- return;
-
- case 0x1e80:
- soundlatch = data;
- return;
-
- case 0x1f00:
- scrollx = data;
- return;
-
- case 0x1f80:
- scrolly = data;
- return;
- }
-}
-
-static UINT8 tp84b_main_read(UINT16 address)
-{
- switch (address)
- {
- case 0x1a00:
- return DrvInputs[0];
-
- case 0x1a20:
- return DrvInputs[1];
-
- case 0x1a40:
- return DrvInputs[2];
-
- case 0x1a60:
- return DrvDips[0];
-
- case 0x1c00:
- return DrvDips[1];
- }
-
- return 0;
-}
-
-static void tp84_sub_write(UINT16 address, UINT8 data)
-{
- switch (address)
- {
- case 0x4000:
- sub_irqmask = data & 0x01;
- return;
- }
-}
-
-static UINT8 tp84_sub_read(UINT16 address)
-{
- switch (address)
- {
- case 0x2000:
- return (M6809TotalCycles() / 100); // ((1536000 / 256) / 60)
- }
-
- return 0;
-}
-
-static void __fastcall tp84_sound_write(UINT16 address, UINT8 data)
-{
- if ((address & 0xfe00) == 0xa000) {
- INT32 C = 0;
- if (address & 0x008) C += 47000; // 47000pF = 0.047uF
- if (address & 0x010) C += 470000; // 470000pF = 0.47uF
- filter_rc_set_RC(0, FLT_RC_LOWPASS, 1000, 2200, 1000, CAP_P(C));
-
- C = 0;
- if (address & 0x080) C += 470000; // 470000pF = 0.47uF
- filter_rc_set_RC(1, FLT_RC_LOWPASS, 1000, 2200, 1000, CAP_P(C));
-
- C = 0;
- if (address & 0x100) C += 470000; // 470000pF = 0.47uF
- filter_rc_set_RC(2, FLT_RC_LOWPASS, 1000, 2200, 1000, CAP_P(C));
- return;
- }
-
- switch (address)
- {
- case 0xc000:
- return; // nop
-
- case 0xc001:
- SN76496Write(0, data);
- return;
-
- case 0xc003:
- SN76496Write(1, data);
- return;
-
- case 0xc004:
- SN76496Write(2, data);
- return;
- }
-}
-
-static UINT8 __fastcall tp84_sound_read(UINT16 address)
-{
- switch (address)
- {
- case 0x6000:
- ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
- return soundlatch;
-
- case 0x8000:
- return (ZetTotalCycles() >> 10) & 0xf;
- }
-
- return 0;
-}
-
-static int DrvDoReset(INT32 clear_mem)
-{
- if (clear_mem) {
- memset (AllRam, 0, RamEnd - AllRam);
- }
-
- M6809Open(0);
- M6809Reset();
- M6809Close();
-
- M6809Open(1);
- M6809Reset();
- M6809Close();
-
- ZetOpen(0);
- ZetReset();
- ZetClose();
-
- palettebank = 0;
- flipscreenx = 0;
- flipscreeny = 0;
- soundlatch = 0;
- scrollx = 0;
- scrolly = 0;
- sub_irqmask = 0;
-
- watchdog = 0;
-
- HiscoreReset();
-
- return 0;
-}
-
-static INT32 DrvGfxDecode()
-{
- INT32 Plane[4] = { ((0x8000/2) * 8) + 4, ((0x8000/2) * 8) + 0, 4, 0 };
- INT32 XOffs[16] = { STEP4(0,1), STEP4(64,1), STEP4(128,1), STEP4(192,1) };
- INT32 YOffs[16] = { STEP8(0,8), STEP8(256,8) };
-
- UINT8 *tmp = (UINT8*)BurnMalloc(0x8000);
- if (tmp == NULL) {
- return 1;
- }
-
- memcpy (tmp, DrvGfxROM0, 0x4000);
-
- GfxDecode(0x00400, 2, 8, 8, Plane + 2, XOffs, YOffs, 0x080, tmp, DrvGfxROM0);
-
- memcpy (tmp, DrvGfxROM1, 0x8000);
-
- GfxDecode(0x00100, 4, 16, 16, Plane + 0, XOffs, YOffs, 0x200, tmp, DrvGfxROM1);
-
- BurnFree(tmp);
-
- return 0;
-}
-
-static INT32 MemIndex()
-{
- UINT8 *Next; Next = AllMem;
-
- DrvM6809ROM0 = Next; Next += 0x008000;
- DrvM6809ROM1 = Next; Next += 0x002000;
- DrvZ80ROM = Next; Next += 0x002000;
-
- DrvGfxROM0 = Next; Next += 0x010000;
- DrvGfxROM1 = Next; Next += 0x010000;
-
- DrvColPROM = Next; Next += 0x000500;
-
- DrvTransTable = Next; Next += 0x001000;
-
- DrvPalette = (UINT32*)Next; Next += 0x1000 * sizeof(UINT32);
-
- DrvSprBuf = Next; Next += 0x60 * 256;
-
- AllRam = Next;
-
- DrvSprRAM = Next; Next += 0x000800;
- DrvColRAM0 = Next; Next += 0x000400;
- DrvColRAM1 = Next; Next += 0x000400;
- DrvVidRAM0 = Next; Next += 0x000400;
- DrvVidRAM1 = Next; Next += 0x000400;
- DrvShareRAM = Next; Next += 0x000800;
-
- DrvZ80RAM = Next; Next += 0x000400;
-
- RamEnd = Next;
-
- pSoundBuffer[0] = (INT16*)Next; Next += nBurnSoundLen * sizeof(INT16);
- pSoundBuffer[1] = (INT16*)Next; Next += nBurnSoundLen * sizeof(INT16);
- pSoundBuffer[2] = (INT16*)Next; Next += nBurnSoundLen * sizeof(INT16);
-
- MemEnd = Next;
-
- return 0;
-}
-
-static int DrvInit()
-{
- AllMem = NULL;
- MemIndex();
- int nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(DrvM6809ROM0 + 0x00000, 0, 1)) return 1;
- if (BurnLoadRom(DrvM6809ROM0 + 0x02000, 1, 1)) return 1;
- if (BurnLoadRom(DrvM6809ROM0 + 0x04000, 2, 1)) return 1;
- if (BurnLoadRom(DrvM6809ROM0 + 0x06000, 3, 1)) return 1;
-
- if (BurnLoadRom(DrvM6809ROM1 + 0x00000, 4, 1)) return 1;
-
- if (BurnLoadRom(DrvZ80ROM + 0x00000, 5, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x00000, 6, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x02000, 7, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM1 + 0x00000, 8, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x02000, 9, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x04000, 10, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x06000, 11, 1)) return 1;
-
- if (BurnLoadRom(DrvColPROM + 0x00000, 12, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x00100, 13, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x00200, 14, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x00300, 15, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x00400, 16, 1)) return 1;
-
- DrvGfxDecode();
- }
-
- M6809Init(2);
- M6809Open(0);
- M6809MapMemory(DrvVidRAM0, 0x4000, 0x43ff, MAP_RAM);
- M6809MapMemory(DrvVidRAM1, 0x4400, 0x47ff, MAP_RAM);
- M6809MapMemory(DrvColRAM0, 0x4800, 0x4bff, MAP_RAM);
- M6809MapMemory(DrvColRAM1, 0x4c00, 0x4fff, MAP_RAM);
- M6809MapMemory(DrvShareRAM, 0x5000, 0x57ff, MAP_RAM);
- M6809MapMemory(DrvM6809ROM0, 0x8000, 0xffff, MAP_ROM);
- M6809SetWriteHandler(tp84_main_write);
- M6809SetReadHandler(tp84_main_read);
- M6809Close();
-
- M6809Open(1);
- M6809MapMemory(DrvSprRAM, 0x6000, 0x67ff, MAP_RAM);
- M6809MapMemory(DrvShareRAM, 0x8000, 0x87ff, MAP_RAM);
- M6809MapMemory(DrvM6809ROM1, 0xe000, 0xffff, MAP_ROM);
- M6809SetWriteHandler(tp84_sub_write);
- M6809SetReadHandler(tp84_sub_read);
- M6809Close();
-
- ZetInit(0);
- ZetOpen(0);
- ZetMapMemory(DrvZ80ROM, 0x0000, 0x3fff, MAP_ROM);
- ZetMapMemory(DrvZ80RAM, 0x4000, 0x43ff, MAP_RAM);
- ZetSetWriteHandler(tp84_sound_write);
- ZetSetReadHandler(tp84_sound_read);
- ZetClose();
-
- SN76489AInit(0, 3579545, 0);
- SN76489AInit(1, 3579545, 1);
- SN76489AInit(2, 3579545, 1);
- SN76496SetRoute(0, 0.75, BURN_SND_ROUTE_BOTH);
- SN76496SetRoute(1, 0.75, BURN_SND_ROUTE_BOTH);
- SN76496SetRoute(2, 0.75, BURN_SND_ROUTE_BOTH);
-
- filter_rc_init(0, FLT_RC_LOWPASS, 1000, 2200, 1000, CAP_P(0), 0);
- filter_rc_init(1, FLT_RC_LOWPASS, 1000, 2200, 1000, CAP_P(0), 1);
- filter_rc_init(2, FLT_RC_LOWPASS, 1000, 2200, 1000, CAP_P(0), 1);
-
- filter_rc_set_route(0, 1.00, BURN_SND_ROUTE_BOTH);
- filter_rc_set_route(1, 1.00, BURN_SND_ROUTE_BOTH);
- filter_rc_set_route(2, 1.00, BURN_SND_ROUTE_BOTH);
-
- GenericTilesInit();
-
- DrvDoReset(1);
-
- return 0;
-}
-
-static int DrvbInit()
-{
- AllMem = NULL;
- MemIndex();
- int nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(DrvM6809ROM0 + 0x00000, 0, 1)) return 1;
- if (BurnLoadRom(DrvM6809ROM0 + 0x04000, 1, 1)) return 1;
-
- if (BurnLoadRom(DrvM6809ROM1 + 0x00000, 2, 1)) return 1;
-
- if (BurnLoadRom(DrvZ80ROM + 0x00000, 3, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x00000, 4, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM1 + 0x00000, 5, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x04000, 6, 1)) return 1;
-
- if (BurnLoadRom(DrvColPROM + 0x00000, 7, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x00100, 8, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x00200, 9, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x00300, 10, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x00400, 11, 1)) return 1;
-
- DrvGfxDecode();
- }
-
- M6809Init(2);
- M6809Open(0);
- M6809MapMemory(DrvVidRAM0, 0x0000, 0x03ff, MAP_RAM);
- M6809MapMemory(DrvVidRAM1, 0x0400, 0x07ff, MAP_RAM);
- M6809MapMemory(DrvColRAM0, 0x0800, 0x0bff, MAP_RAM);
- M6809MapMemory(DrvColRAM1, 0x0c00, 0x0fff, MAP_RAM);
- M6809MapMemory(DrvShareRAM, 0x1000, 0x17ff, MAP_RAM);
- M6809MapMemory(DrvM6809ROM0, 0x8000, 0xffff, MAP_ROM);
- M6809SetWriteHandler(tp84b_main_write);
- M6809SetReadHandler(tp84b_main_read);
- M6809Close();
-
- M6809Open(1);
- M6809MapMemory(DrvSprRAM, 0x6000, 0x67ff, MAP_RAM);
- M6809MapMemory(DrvShareRAM, 0x8000, 0x87ff, MAP_RAM);
- M6809MapMemory(DrvM6809ROM1, 0xe000, 0xffff, MAP_ROM);
- M6809SetWriteHandler(tp84_sub_write);
- M6809SetReadHandler(tp84_sub_read);
- M6809Close();
-
- ZetInit(0);
- ZetOpen(0);
- ZetMapMemory(DrvZ80ROM, 0x0000, 0x3fff, MAP_ROM);
- ZetMapMemory(DrvZ80RAM, 0x4000, 0x43ff, MAP_RAM);
- ZetSetWriteHandler(tp84_sound_write);
- ZetSetReadHandler(tp84_sound_read);
- ZetClose();
-
- SN76489AInit(0, 3579545, 0);
- SN76489AInit(1, 3579545, 1);
- SN76489AInit(2, 3579545, 1);
- SN76496SetRoute(0, 0.75, BURN_SND_ROUTE_BOTH);
- SN76496SetRoute(1, 0.75, BURN_SND_ROUTE_BOTH);
- SN76496SetRoute(2, 0.75, BURN_SND_ROUTE_BOTH);
-
- filter_rc_init(0, FLT_RC_LOWPASS, 1000, 2200, 1000, CAP_P(0), 0);
- filter_rc_init(1, FLT_RC_LOWPASS, 1000, 2200, 1000, CAP_P(0), 1);
- filter_rc_init(2, FLT_RC_LOWPASS, 1000, 2200, 1000, CAP_P(0), 1);
-
- filter_rc_set_route(0, 1.00, BURN_SND_ROUTE_BOTH);
- filter_rc_set_route(1, 1.00, BURN_SND_ROUTE_BOTH);
- filter_rc_set_route(2, 1.00, BURN_SND_ROUTE_BOTH);
-
- GenericTilesInit();
-
- DrvDoReset(1);
-
- return 0;
-}
-
-static int DrvExit()
-{
- GenericTilesExit();
-
- M6809Exit();
- ZetExit();
-
- SN76496Exit();
- filter_rc_exit();
-
- BurnFree (AllMem);
- AllMem = NULL;
-
- return 0;
-}
-
-static void DrvPaletteInit()
-{
- UINT32 pens[0x100];
-
- for (INT32 i = 0; i < 0x100; i++)
- {
- INT32 bit0 = (DrvColPROM[i + 0x000] >> 0) & 0x01;
- INT32 bit1 = (DrvColPROM[i + 0x000] >> 1) & 0x01;
- INT32 bit2 = (DrvColPROM[i + 0x000] >> 2) & 0x01;
- INT32 bit3 = (DrvColPROM[i + 0x000] >> 3) & 0x01;
- INT32 r = ((bit0 * 1424) + (bit1 * 3134) + (bit2 * 6696) + (bit3 * 14246) + 50) / 100;
-
- bit0 = (DrvColPROM[i + 0x100] >> 0) & 0x01;
- bit1 = (DrvColPROM[i + 0x100] >> 1) & 0x01;
- bit2 = (DrvColPROM[i + 0x100] >> 2) & 0x01;
- bit3 = (DrvColPROM[i + 0x100] >> 3) & 0x01;
- INT32 g = ((bit0 * 1424) + (bit1 * 3134) + (bit2 * 6696) + (bit3 * 14246) + 50) / 100;
-
- bit0 = (DrvColPROM[i + 0x200] >> 0) & 0x01;
- bit1 = (DrvColPROM[i + 0x200] >> 1) & 0x01;
- bit2 = (DrvColPROM[i + 0x200] >> 2) & 0x01;
- bit3 = (DrvColPROM[i + 0x200] >> 3) & 0x01;
- INT32 b = ((bit0 * 1424) + (bit1 * 3134) + (bit2 * 6696) + (bit3 * 14246) + 50) / 100;
-
- pens[i] = BurnHighCol(r,g,b,0);
- }
-
- for (INT32 i = 0; i < 0x200; i++)
- {
- for (INT32 j = 0; j < 8; j++)
- {
- UINT8 ctabentry = ((~i & 0x100) >> 1) | (j << 4) | (DrvColPROM[i + 0x300] & 0x0f);
- DrvPalette[((i & 0x100) << 3) | (j << 8) | (i & 0xff)] = pens[ctabentry];
-
- DrvTransTable[((i & 0x100) << 3) | (j << 8) | (i & 0xff)] = DrvColPROM[i + 0x300] & 0x0f;
- }
- }
-}
-
-static void draw_bg_layer()
-{
- INT32 palbank = ((palettebank & 0x07) << 6) | ((palettebank & 0x18) << 1);
-
- for (INT32 offs = 0; offs < 32 * 32; offs++)
- {
- INT32 sx = (offs & 0x1f) * 8;
- INT32 sy = (offs / 0x20) * 8;
-
- sx -= scrollx;
- if (sx < -7) sx += 256;
- sy -= scrolly;
- if (sy < -7) sy += 256;
-
- INT32 attr = DrvColRAM0[offs];
- INT32 code = DrvVidRAM0[offs] | ((attr & 0x30) << 4);
- INT32 color = (attr & 0x0f) | palbank;
- INT32 flipy = attr & 0x80;
- INT32 flipx = attr & 0x40;
-
- if (flipy) {
- if (flipx) {
- Render8x8Tile_FlipXY_Clip(pTransDraw, code, sx, sy - 16, color, 2, 0, DrvGfxROM0);
- } else {
- Render8x8Tile_FlipY_Clip(pTransDraw, code, sx, sy - 16, color, 2, 0, DrvGfxROM0);
- }
- } else {
- if (flipx) {
- Render8x8Tile_FlipX_Clip(pTransDraw, code, sx, sy - 16, color, 2, 0, DrvGfxROM0);
- } else {
- Render8x8Tile_Clip(pTransDraw, code, sx, sy - 16, color, 2, 0, DrvGfxROM0);
- }
- }
- }
-}
-
-static void draw_fg_layer()
-{
- INT32 palbank = ((palettebank & 0x07) << 6) | ((palettebank & 0x18) << 1);
-
- for (INT32 offs = 0; offs < 32 * 32; offs++)
- {
- INT32 sx = (offs & 0x1f) * 8;
- INT32 sy = (offs / 0x20) * 8;
-
- if (sx >= 16 && sx < 240) continue;
-
- INT32 attr = DrvColRAM1[offs];
- INT32 code = DrvVidRAM1[offs] | ((attr & 0x30) << 4);
- INT32 color = (attr & 0x0f) | palbank;
- INT32 flipy = attr & 0x80;
- INT32 flipx = attr & 0x40;
-
- if (flipy) {
- if (flipx) {
- Render8x8Tile_FlipXY_Clip(pTransDraw, code, sx, sy - 16, color, 2, 0, DrvGfxROM0);
- } else {
- Render8x8Tile_FlipY_Clip(pTransDraw, code, sx, sy - 16, color, 2, 0, DrvGfxROM0);
- }
- } else {
- if (flipx) {
- Render8x8Tile_FlipX_Clip(pTransDraw, code, sx, sy - 16, color, 2, 0, DrvGfxROM0);
- } else {
- Render8x8Tile_Clip(pTransDraw, code, sx, sy - 16, color, 2, 0, DrvGfxROM0);
- }
- }
- }
-}
-
-static void draw_sprites()
-{
- INT32 palbank = ((palettebank & 0x07) << 4);
-
- for (INT32 line = 16; line < 240; line++)
- {
- UINT8 *sprram = DrvSprBuf + line * 0x60;
- UINT16 *dst = pTransDraw + ((line - 16) * nScreenWidth);
-
- for (INT32 offs = 0x5c; offs >= 0; offs -= 4)
- {
- INT32 sy = 240 - sprram[offs + 3];
- if (sy < (line-15) || sy > line) continue;
-
- INT32 sx = sprram[offs + 0];
- INT32 code = sprram[offs + 1];
- INT32 attr = sprram[offs + 2];
- INT32 color = (attr & 0x0f) | palbank | 0x80;
- INT32 flipx = ~attr & 0x40;
- INT32 flipy = attr & 0x80;
-
- {
- UINT8 *gfx = DrvGfxROM1 + (code * 0x100);
- color = (color << 4);
- flipx = (flipx ? 0x0f : 0);
- flipy = (flipy ? 0xf0 : 0);
- gfx += (((line - sy) * 0x10) ^ flipy);
-
- for (INT32 x = 0; x < 16; x++, sx++)
- {
- if (sx < 0 || sx >= nScreenWidth) continue;
-
- INT32 pxl = gfx[x^flipx]+color;
-
- if (DrvTransTable[pxl]) {
- dst[sx] = pxl;
- }
- }
- }
- }
- }
-}
-
-static INT32 DrvDraw()
-{
- if (DrvRecalc) {
- DrvPaletteInit();
- DrvRecalc = 0;
- }
-
- if (~nBurnLayer & 1) BurnTransferClear();
- if ( nBurnLayer & 1) draw_bg_layer();
- if ( nSpriteEnable & 1) draw_sprites();
- if ( nBurnLayer & 2) draw_fg_layer();
-
- BurnTransferCopy(DrvPalette);
-
- return 0;
-}
-
-static INT32 DrvFrame()
-{
- watchdog++;
- if (watchdog == 120) {
- DrvDoReset(0);
- }
-
- if (DrvReset) {
- DrvDoReset(1);
- }
-
- M6809NewFrame();
- ZetNewFrame();
-
- {
- memset (DrvInputs, 0xff, 3);
-
- for (INT32 i = 0; i < 8; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- DrvInputs[2] ^= (DrvJoy3[i] & 1) << i;
- }
- }
-
- INT32 nSoundBufferPos = 0;
- INT32 nInterleave = 256;
- INT32 nCyclesTotal[3] = { 1536000 / 60, 1536000 / 60, 3579545 / 60 };
- INT32 nCyclesDone[3] = { 0, 0, 0 };
-
- ZetOpen(0);
-
- for (INT32 i = 0; i < nInterleave; i++)
- {
- scanline = i;
-
- M6809Open(0);
- INT32 nSegment = ((i + 1) * nCyclesTotal[0]) / nInterleave;
- nCyclesDone[0] += M6809Run(nSegment - nCyclesDone[0]);
- if (i == (nInterleave - 1)) M6809SetIRQLine(0, CPU_IRQSTATUS_AUTO);
- M6809Close();
-
- M6809Open(1);
- nSegment = ((i + 1) * nCyclesTotal[1]) / nInterleave;
- nCyclesDone[1] += M6809Run(nSegment - nCyclesDone[1]);
- if (i == (nInterleave - 1) && sub_irqmask) M6809SetIRQLine(0, CPU_IRQSTATUS_AUTO);
- M6809Close();
-
- nSegment = ((i + 1) * nCyclesTotal[2]) / nInterleave;
- nCyclesDone[2] += ZetRun(nSegment - nCyclesDone[2]);
-
- memcpy (DrvSprBuf + i * 0x60, DrvSprRAM + 0x7a0, 0x60);
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen / nInterleave;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- memset (pSoundBuf, 0, nSegmentLength * sizeof(INT16) * 2);
-
- SN76496UpdateToBuffer(0, pSoundBuffer[0], nSegmentLength);
- SN76496UpdateToBuffer(1, pSoundBuffer[1], nSegmentLength);
- SN76496UpdateToBuffer(2, pSoundBuffer[2], nSegmentLength);
-
- filter_rc_update(0, pSoundBuffer[0], pSoundBuf, nSegmentLength);
- filter_rc_update(1, pSoundBuffer[1], pSoundBuf, nSegmentLength);
- filter_rc_update(2, pSoundBuffer[2], pSoundBuf, nSegmentLength);
- nSoundBufferPos += nSegmentLength;
- }
- }
-
- ZetClose();
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- if (nSegmentLength) {
- memset (pSoundBuf, 0, nSegmentLength * sizeof(INT16) * 2);
-
- SN76496UpdateToBuffer(0, pSoundBuffer[0], nSegmentLength);
- SN76496UpdateToBuffer(1, pSoundBuffer[1], nSegmentLength);
- SN76496UpdateToBuffer(2, pSoundBuffer[2], nSegmentLength);
-
- filter_rc_update(0, pSoundBuffer[0], pSoundBuf, nSegmentLength);
- filter_rc_update(1, pSoundBuffer[1], pSoundBuf, nSegmentLength);
- filter_rc_update(2, pSoundBuffer[2], pSoundBuf, nSegmentLength);
- }
- }
-
- if (pBurnDraw) {
- DrvDraw();
- }
-
- return 0;
-}
-
-static INT32 DrvScan(INT32 nAction,INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin) {
- *pnMin = 0x029705;
- }
-
- if (nAction & ACB_VOLATILE) {
- memset(&ba, 0, sizeof(ba));
- ba.Data = AllRam;
- ba.nLen = RamEnd - AllRam;
- ba.szName = "All Ram";
- BurnAcb(&ba);
-
- M6809Scan(nAction);
- ZetScan(nAction);
-
- SN76496Scan(nAction, pnMin);
-
- SCAN_VAR(palettebank);
- SCAN_VAR(flipscreenx);
- SCAN_VAR(flipscreeny);
- SCAN_VAR(soundlatch);
- SCAN_VAR(scrollx);
- SCAN_VAR(scrolly);
- SCAN_VAR(sub_irqmask);
- }
-
- return 0;
-}
-
-
-// Time Pilot '84 (set 1)
-
-static struct BurnRomInfo tp84RomDesc[] = {
- { "388_f04.7j", 0x2000, 0x605f61c7, 1 | BRF_PRG | BRF_ESS }, // 0 M6809 #0 Code
- { "388_05.8j", 0x2000, 0x4b4629a4, 1 | BRF_PRG | BRF_ESS }, // 1
- { "388_f06.9j", 0x2000, 0xdbd5333b, 1 | BRF_PRG | BRF_ESS }, // 2
- { "388_07.10j", 0x2000, 0xa45237c4, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "388_f08.10d", 0x2000, 0x36462ff1, 2 | BRF_PRG | BRF_ESS }, // 4 M6809 #1 Code
-
- { "388j13.6a", 0x2000, 0xc44414da, 3 | BRF_PRG | BRF_ESS }, // 5 Z80 Code
-
- { "388_h02.2j", 0x2000, 0x05c7508f, 4 | BRF_GRA }, // 6 Characters
- { "388_d01.1j", 0x2000, 0x498d90b7, 4 | BRF_GRA }, // 7
-
- { "388_e09.12a", 0x2000, 0xcd682f30, 5 | BRF_GRA }, // 8 Sprites
- { "388_e10.13a", 0x2000, 0x888d4bd6, 5 | BRF_GRA }, // 9
- { "388_e11.14a", 0x2000, 0x9a220b39, 5 | BRF_GRA }, // 10
- { "388_e12.15a", 0x2000, 0xfac98397, 5 | BRF_GRA }, // 11
-
- { "388d14.2c", 0x0100, 0xd737eaba, 6 | BRF_GRA }, // 12 Color PROMs
- { "388d15.2d", 0x0100, 0x2f6a9a2a, 6 | BRF_GRA }, // 13
- { "388d16.1e", 0x0100, 0x2e21329b, 6 | BRF_GRA }, // 14
- { "388d18.1f", 0x0100, 0x61d2d398, 6 | BRF_GRA }, // 15
- { "388j17.16c", 0x0100, 0x13c4e198, 6 | BRF_GRA }, // 16
-};
-
-STD_ROM_PICK(tp84)
-STD_ROM_FN(tp84)
-
-struct BurnDriver BurnDrvTp84 = {
- "tp84", NULL, NULL, NULL, "1984",
- "Time Pilot '84 (set 1)\0", NULL, "Konami", "GX388",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_KONAMI, GBF_VERSHOOT, 0,
- NULL, tp84RomInfo, tp84RomName, NULL, NULL, Tp84InputInfo, Tp84DIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x1000,
- 224, 256, 3, 4
-};
-
-
-// Time Pilot '84 (set 2)
-
-static struct BurnRomInfo tp84aRomDesc[] = {
- { "388_f04.7j", 0x2000, 0x605f61c7, 1 | BRF_PRG | BRF_ESS }, // 0 M6809 #0 Code
- { "388_f05.8j", 0x2000, 0xe97d5093, 1 | BRF_PRG | BRF_ESS }, // 1
- { "388_f06.9j", 0x2000, 0xdbd5333b, 1 | BRF_PRG | BRF_ESS }, // 2
- { "388_f07.10j", 0x2000, 0x8fbdb4ef, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "388_f08.10d", 0x2000, 0x36462ff1, 2 | BRF_PRG | BRF_ESS }, // 4 M6809 #1 Code
-
- { "388j13.6a", 0x2000, 0xc44414da, 3 | BRF_PRG | BRF_ESS }, // 5 Z80 Code
-
- { "388_h02.2j", 0x2000, 0x05c7508f, 4 | BRF_GRA }, // 6 Characters
- { "388_d01.1j", 0x2000, 0x498d90b7, 4 | BRF_GRA }, // 7
-
- { "388_e09.12a", 0x2000, 0xcd682f30, 5 | BRF_GRA }, // 8 Sprites
- { "388_e10.13a", 0x2000, 0x888d4bd6, 5 | BRF_GRA }, // 9
- { "388_e11.14a", 0x2000, 0x9a220b39, 5 | BRF_GRA }, // 10
- { "388_e12.15a", 0x2000, 0xfac98397, 5 | BRF_GRA }, // 11
-
- { "388d14.2c", 0x0100, 0xd737eaba, 6 | BRF_GRA }, // 12 Color PROMs
- { "388d15.2d", 0x0100, 0x2f6a9a2a, 6 | BRF_GRA }, // 13
- { "388d16.1e", 0x0100, 0x2e21329b, 6 | BRF_GRA }, // 14
- { "388d18.1f", 0x0100, 0x61d2d398, 6 | BRF_GRA }, // 15
- { "388d17.16c", 0x0100, 0xaf8f839c, 6 | BRF_GRA }, // 16
-};
-
-STD_ROM_PICK(tp84a)
-STD_ROM_FN(tp84a)
-
-struct BurnDriver BurnDrvTp84a = {
- "tp84a", "tp84", NULL, NULL, "1984",
- "Time Pilot '84 (set 2)\0", NULL, "Konami", "GX388",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_KONAMI, GBF_VERSHOOT, 0,
- NULL, tp84aRomInfo, tp84aRomName, NULL, NULL, Tp84InputInfo, Tp84aDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x1000,
- 224, 256, 3, 4
-};
-
-
-// Time Pilot '84 (set 3)
-
-static struct BurnRomInfo tp84bRomDesc[] = {
- { "388j05.8j", 0x4000, 0xa59e2fda, 1 | BRF_PRG | BRF_ESS }, // 0 M6809 #0 Code
- { "388j07.10j", 0x4000, 0xd25d18e6, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "388j08.10d", 0x2000, 0x2aea6b42, 2 | BRF_PRG | BRF_ESS }, // 2 M6809 #1 Code
-
- { "388j13.6a", 0x2000, 0xc44414da, 3 | BRF_PRG | BRF_ESS }, // 3 Z80 Code
-
- { "388j02.2j", 0x4000, 0xe1225f53, 4 | BRF_GRA }, // 4 Characters
-
- { "388j09.12a", 0x4000, 0xaec90936, 5 | BRF_GRA }, // 5 Sprites
- { "388j11.14a", 0x4000, 0x29257f03, 5 | BRF_GRA }, // 6
-
- { "388j14.2c", 0x0100, 0xd737eaba, 6 | BRF_GRA }, // 7 Color PROMs
- { "388j15.2d", 0x0100, 0x2f6a9a2a, 6 | BRF_GRA }, // 8
- { "388j16.1e", 0x0100, 0x2e21329b, 6 | BRF_GRA }, // 9
- { "388j18.1f", 0x0100, 0x61d2d398, 6 | BRF_GRA }, // 10
- { "388j17.16c", 0x0100, 0x13c4e198, 6 | BRF_GRA }, // 11
-};
-
-STD_ROM_PICK(tp84b)
-STD_ROM_FN(tp84b)
-
-struct BurnDriver BurnDrvTp84b = {
- "tp84b", "tp84", NULL, NULL, "1984",
- "Time Pilot '84 (set 3)\0", NULL, "Konami", "GX388",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_KONAMI, GBF_VERSHOOT, 0,
- NULL, tp84bRomInfo, tp84bRomName, NULL, NULL, Tp84InputInfo, Tp84DIPInfo,
- DrvbInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x1000,
- 224, 256, 3, 4
-};
diff --git a/jan/src/burn/drv/konami/d_trackfld.cpp b/jan/src/burn/drv/konami/d_trackfld.cpp
deleted file mode 100644
index 3989df365..000000000
--- a/jan/src/burn/drv/konami/d_trackfld.cpp
+++ /dev/null
@@ -1,2328 +0,0 @@
-// FB Alpha Track & Field driver module
-// Based on MAME driver by Chris Hardy.
-
-// To fix / Oddities:
-// Watchdog timer doesn't get reset by Mastkin
-// Wizz Quiz needs some work.
-
-#include "tiles_generic.h"
-#include "m6809_intf.h"
-#include "m6800_intf.h"
-#include "z80_intf.h"
-#include "bitswap.h"
-#include "vlm5030.h"
-#include "sn76496.h"
-#include "dac.h"
-
-static UINT8 *AllMem;
-static UINT8 *MemEnd;
-static UINT8 *AllRam;
-static UINT8 *RamEnd;
-static UINT8 *DrvM6809ROM;
-static UINT8 *DrvM6809ROMDec;
-static UINT8 *DrvQuizROM;
-static UINT8 *DrvZ80ROM0;
-static UINT8 *DrvZ80ROM1;
-static UINT8 *DrvGfxROM0;
-static UINT8 *DrvGfxROM1;
-static UINT8 *DrvColPROM;
-static UINT8 *DrvSndROM;
-static UINT8 *DrvNVRAM;
-static UINT8 *DrvSprRAM0;
-static UINT8 *DrvSprRAM1;
-static UINT8 *DrvColRAM;
-static UINT8 *DrvVidRAM;
-static UINT8 *DrvZ80RAM0;
-static UINT8 *DrvZ80RAM1;
-static UINT8 *DrvM6800RAM;
-
-static UINT32 *DrvPalette;
-static UINT8 DrvRecalc;
-
-static UINT8 bg_bank;
-static UINT8 soundlatch;
-static UINT8 flipscreen;
-static UINT8 irq_mask;
-static UINT8 nmi_mask;
-static UINT16 last_addr;
-static UINT8 last_sound_irq;
-static UINT8 SN76496_latch;
-
-static UINT8 DrvJoy1[8];
-static UINT8 DrvJoy2[8];
-static UINT8 DrvJoy3[8];
-static UINT8 DrvDips[3];
-static UINT8 DrvInputs[3];
-static UINT8 DrvReset;
-
-static INT32 watchdog;
-static INT32 nowatchdog = 0;
-static INT32 game_select;
-static INT32 nSpriteMask, nCharMask;
-
-static struct BurnInputInfo TrackfldInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy1 + 0, "p1 coin"},
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 3, "p1 start"},
- {"P1 Button 1", BIT_DIGITAL, DrvJoy2 + 2, "p1 fire 1"},
- {"P1 Button 2", BIT_DIGITAL, DrvJoy2 + 1, "p1 fire 2"},
- {"P1 Button 3", BIT_DIGITAL, DrvJoy2 + 0, "p1 fire 3"},
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy1 + 1, "p2 coin"},
- {"P2 Start", BIT_DIGITAL, DrvJoy1 + 4, "p2 start"},
- {"P2 Button 1", BIT_DIGITAL, DrvJoy2 + 6, "p2 fire 1"},
- {"P2 Button 2", BIT_DIGITAL, DrvJoy2 + 5, "p2 fire 2"},
- {"P2 Button 3", BIT_DIGITAL, DrvJoy2 + 4, "p2 fire 3"},
-
- {"P3 Start", BIT_DIGITAL, DrvJoy2 + 3, "p3 start"},
- {"P3 Button 1", BIT_DIGITAL, DrvJoy3 + 2, "p3 fire 1"},
- {"P3 Button 2", BIT_DIGITAL, DrvJoy3 + 1, "p3 fire 2"},
- {"P3 Button 3", BIT_DIGITAL, DrvJoy3 + 0, "p3 fire 3"},
-
- {"P4 Start", BIT_DIGITAL, DrvJoy3 + 3, "p4 start"},
- {"P4 Button 1", BIT_DIGITAL, DrvJoy3 + 6, "p4 fire 1"},
- {"P4 Button 2", BIT_DIGITAL, DrvJoy3 + 5, "p4 fire 2"},
- {"P4 Button 3", BIT_DIGITAL, DrvJoy3 + 4, "p4 fire 3"},
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset"},
- {"Service", BIT_DIGITAL, DrvJoy1 + 2, "service"},
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip"},
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip"},
-};
-
-STDINPUTINFO(Trackfld)
-
-static struct BurnInputInfo YieartfInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy1 + 0, "p1 coin"},
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 3, "p1 start"},
- {"P1 Up", BIT_DIGITAL, DrvJoy2 + 2, "p1 up"},
- {"P1 Down", BIT_DIGITAL, DrvJoy2 + 3, "p1 down"},
- {"P1 Left", BIT_DIGITAL, DrvJoy2 + 0, "p1 left"},
- {"P1 Right", BIT_DIGITAL, DrvJoy2 + 1, "p1 right"},
- {"P1 Button 1", BIT_DIGITAL, DrvJoy2 + 4, "p1 fire 1"},
- {"P1 Button 2", BIT_DIGITAL, DrvJoy2 + 5, "p1 fire 2"},
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy1 + 1, "p2 coin"},
- {"P2 Start", BIT_DIGITAL, DrvJoy1 + 4, "p2 start"},
- {"P2 Up", BIT_DIGITAL, DrvJoy3 + 2, "p2 up"},
- {"P2 Down", BIT_DIGITAL, DrvJoy3 + 3, "p2 down"},
- {"P2 Left", BIT_DIGITAL, DrvJoy3 + 0, "p2 left"},
- {"P2 Right", BIT_DIGITAL, DrvJoy3 + 1, "p2 right"},
- {"P2 Button 1", BIT_DIGITAL, DrvJoy3 + 4, "p2 fire 1"},
- {"P2 Button 2", BIT_DIGITAL, DrvJoy3 + 5, "p2 fire 2"},
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset"},
- {"Service", BIT_DIGITAL, DrvJoy1 + 2, "service"},
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip"},
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip"},
- {"Dip C", BIT_DIPSWITCH, DrvDips + 2, "dip"},
-};
-
-STDINPUTINFO(Yieartf)
-
-static struct BurnInputInfo ReaktorInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy1 + 0, "p1 coin"},
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 3, "p1 start"},
- {"P1 Up", BIT_DIGITAL, DrvJoy2 + 2, "p1 up"},
- {"P1 Down", BIT_DIGITAL, DrvJoy2 + 3, "p1 down"},
- {"P1 Left", BIT_DIGITAL, DrvJoy2 + 0, "p1 left"},
- {"P1 Right", BIT_DIGITAL, DrvJoy2 + 1, "p1 right"},
- {"P1 Button 1", BIT_DIGITAL, DrvJoy2 + 4, "p1 fire 1"},
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset"},
- {"Service", BIT_DIGITAL, DrvJoy1 + 2, "service"},
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip"},
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip"},
-};
-
-STDINPUTINFO(Reaktor)
-
-static struct BurnInputInfo WizzquizInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy1 + 0, "p1 coin"},
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 3, "p1 start"},
- {"P1 Button 1", BIT_DIGITAL, DrvJoy2 + 6, "p1 fire 1"},
- {"P1 Button 2", BIT_DIGITAL, DrvJoy2 + 5, "p1 fire 2"},
- {"P1 Button 3", BIT_DIGITAL, DrvJoy2 + 4, "p1 fire 3"},
- {"P1 Button 4", BIT_DIGITAL, DrvJoy2 + 3, "p1 fire 4"},
- {"P1 Button 5", BIT_DIGITAL, DrvJoy3 + 3, "p1 fire 5"},
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy1 + 1, "p2 coin"},
- {"P2 Start", BIT_DIGITAL, DrvJoy1 + 4, "p2 start"},
- {"P2 Button 1", BIT_DIGITAL, DrvJoy2 + 2, "p2 fire 1"},
- {"P2 Button 2", BIT_DIGITAL, DrvJoy2 + 1, "p2 fire 2"},
- {"P2 Button 3", BIT_DIGITAL, DrvJoy2 + 0, "p2 fire 3"},
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset"},
- {"Service", BIT_DIGITAL, DrvJoy1 + 2, "service"},
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip"},
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip"},
-};
-
-STDINPUTINFO(Wizzquiz)
-
-static struct BurnInputInfo MastkinInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy1 + 0, "p1 coin"},
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 3, "p1 start"},
- {"P1 Up", BIT_DIGITAL, DrvJoy2 + 2, "p1 up"},
- {"P1 Down", BIT_DIGITAL, DrvJoy2 + 3, "p1 down"},
- {"P1 Left", BIT_DIGITAL, DrvJoy2 + 0, "p1 left"},
- {"P1 Right", BIT_DIGITAL, DrvJoy2 + 1, "p1 right"},
- {"P1 Button 1", BIT_DIGITAL, DrvJoy2 + 4, "p1 fire 1"},
- {"P1 Button 2", BIT_DIGITAL, DrvJoy2 + 5, "p1 fire 2"},
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset"},
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip"},
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip"},
-};
-
-STDINPUTINFO(Mastkin)
-
-static struct BurnDIPInfo TrackfldDIPList[]=
-{
- {0x14, 0xff, 0xff, 0xff, NULL },
- {0x15, 0xff, 0xff, 0x59, NULL },
-
- {0 , 0xfe, 0 , 16, "Coin A" },
- {0x14, 0x01, 0x0f, 0x02, "4 Coins 1 Credits" },
- {0x14, 0x01, 0x0f, 0x05, "3 Coins 1 Credits" },
- {0x14, 0x01, 0x0f, 0x08, "2 Coins 1 Credits" },
- {0x14, 0x01, 0x0f, 0x04, "3 Coins 2 Credits" },
- {0x14, 0x01, 0x0f, 0x01, "4 Coins 3 Credits" },
- {0x14, 0x01, 0x0f, 0x0f, "1 Coin 1 Credits" },
- {0x14, 0x01, 0x0f, 0x03, "3 Coins 4 Credits" },
- {0x14, 0x01, 0x0f, 0x07, "2 Coins 3 Credits" },
- {0x14, 0x01, 0x0f, 0x0e, "1 Coin 2 Credits" },
- {0x14, 0x01, 0x0f, 0x06, "2 Coins 5 Credits" },
- {0x14, 0x01, 0x0f, 0x0d, "1 Coin 3 Credits" },
- {0x14, 0x01, 0x0f, 0x0c, "1 Coin 4 Credits" },
- {0x14, 0x01, 0x0f, 0x0b, "1 Coin 5 Credits" },
- {0x14, 0x01, 0x0f, 0x0a, "1 Coin 6 Credits" },
- {0x14, 0x01, 0x0f, 0x09, "1 Coin 7 Credits" },
- {0x14, 0x01, 0x0f, 0x00, "Free Play" },
-
- {0 , 0xfe, 0 , 16, "Coin B" },
- {0x14, 0x01, 0xf0, 0x20, "4 Coins 1 Credits" },
- {0x14, 0x01, 0xf0, 0x50, "3 Coins 1 Credits" },
- {0x14, 0x01, 0xf0, 0x80, "2 Coins 1 Credits" },
- {0x14, 0x01, 0xf0, 0x40, "3 Coins 2 Credits" },
- {0x14, 0x01, 0xf0, 0x10, "4 Coins 3 Credits" },
- {0x14, 0x01, 0xf0, 0xf0, "1 Coin 1 Credits" },
- {0x14, 0x01, 0xf0, 0x30, "3 Coins 4 Credits" },
- {0x14, 0x01, 0xf0, 0x70, "2 Coins 3 Credits" },
- {0x14, 0x01, 0xf0, 0xe0, "1 Coin 2 Credits" },
- {0x14, 0x01, 0xf0, 0x60, "2 Coins 5 Credits" },
- {0x14, 0x01, 0xf0, 0xd0, "1 Coin 3 Credits" },
- {0x14, 0x01, 0xf0, 0xc0, "1 Coin 4 Credits" },
- {0x14, 0x01, 0xf0, 0xb0, "1 Coin 5 Credits" },
- {0x14, 0x01, 0xf0, 0xa0, "1 Coin 6 Credits" },
- {0x14, 0x01, 0xf0, 0x90, "1 Coin 7 Credits" },
- {0x14, 0x01, 0xf0, 0x00, "Free Play" },
-
- {0 , 0xfe, 0 , 2, "Lives" },
- {0x15, 0x01, 0x01, 0x01, "1" },
- {0x15, 0x01, 0x01, 0x00, "2" },
-
- {0 , 0xfe, 0 , 2, "After Last Event" },
- {0x15, 0x01, 0x02, 0x02, "Game Over" },
- {0x15, 0x01, 0x02, 0x00, "Game Continues" },
-
- {0 , 0xfe, 0 , 2, "Cabinet" },
- {0x15, 0x01, 0x04, 0x00, "Upright" },
- {0x15, 0x01, 0x04, 0x04, "Cocktail" },
-
- {0 , 0xfe, 0 , 2, "Bonus Life" },
- {0x15, 0x01, 0x08, 0x08, "None" },
- {0x15, 0x01, 0x08, 0x00, "100000" },
-
- {0 , 0xfe, 0 , 2, "World Records" },
- {0x15, 0x01, 0x10, 0x10, "Don't Erase" },
- {0x15, 0x01, 0x10, 0x00, "Erase on Reset" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x15, 0x01, 0x60, 0x60, "Easy" },
- {0x15, 0x01, 0x60, 0x40, "Normal" },
- {0x15, 0x01, 0x60, 0x20, "Hard" },
- {0x15, 0x01, 0x60, 0x00, "Difficult" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x15, 0x01, 0x80, 0x80, "Off" },
- {0x15, 0x01, 0x80, 0x00, "On" },
-};
-
-STDDIPINFO(Trackfld)
-
-static struct BurnDIPInfo YieartfDIPList[]=
-{
- {0x12, 0xff, 0xff, 0xff, NULL },
- {0x13, 0xff, 0xff, 0x5b, NULL },
- {0x14, 0xff, 0xff, 0xff, NULL },
-
- {0 , 0xfe, 0 , 16, "Coin A" },
- {0x12, 0x01, 0x0f, 0x02, "4 Coins 1 Credits" },
- {0x12, 0x01, 0x0f, 0x05, "3 Coins 1 Credits" },
- {0x12, 0x01, 0x0f, 0x08, "2 Coins 1 Credits" },
- {0x12, 0x01, 0x0f, 0x04, "3 Coins 2 Credits" },
- {0x12, 0x01, 0x0f, 0x01, "4 Coins 3 Credits" },
- {0x12, 0x01, 0x0f, 0x0f, "1 Coin 1 Credits" },
- {0x12, 0x01, 0x0f, 0x03, "3 Coins 4 Credits" },
- {0x12, 0x01, 0x0f, 0x07, "2 Coins 3 Credits" },
- {0x12, 0x01, 0x0f, 0x0e, "1 Coin 2 Credits" },
- {0x12, 0x01, 0x0f, 0x06, "2 Coins 5 Credits" },
- {0x12, 0x01, 0x0f, 0x0d, "1 Coin 3 Credits" },
- {0x12, 0x01, 0x0f, 0x0c, "1 Coin 4 Credits" },
- {0x12, 0x01, 0x0f, 0x0b, "1 Coin 5 Credits" },
- {0x12, 0x01, 0x0f, 0x0a, "1 Coin 6 Credits" },
- {0x12, 0x01, 0x0f, 0x09, "1 Coin 7 Credits" },
- {0x12, 0x01, 0x0f, 0x00, "Free Play" },
-
- {0 , 0xfe, 0 , 15, "Coin B" },
- {0x12, 0x01, 0xf0, 0x20, "4 Coins 1 Credits" },
- {0x12, 0x01, 0xf0, 0x50, "3 Coins 1 Credits" },
- {0x12, 0x01, 0xf0, 0x80, "2 Coins 1 Credits" },
- {0x12, 0x01, 0xf0, 0x40, "3 Coins 2 Credits" },
- {0x12, 0x01, 0xf0, 0x10, "4 Coins 3 Credits" },
- {0x12, 0x01, 0xf0, 0xf0, "1 Coin 1 Credits" },
- {0x12, 0x01, 0xf0, 0x30, "3 Coins 4 Credits" },
- {0x12, 0x01, 0xf0, 0x70, "2 Coins 3 Credits" },
- {0x12, 0x01, 0xf0, 0xe0, "1 Coin 2 Credits" },
- {0x12, 0x01, 0xf0, 0x60, "2 Coins 5 Credits" },
- {0x12, 0x01, 0xf0, 0xd0, "1 Coin 3 Credits" },
- {0x12, 0x01, 0xf0, 0xc0, "1 Coin 4 Credits" },
- {0x12, 0x01, 0xf0, 0xb0, "1 Coin 5 Credits" },
- {0x12, 0x01, 0xf0, 0xa0, "1 Coin 6 Credits" },
- {0x12, 0x01, 0xf0, 0x90, "1 Coin 7 Credits" },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x13, 0x01, 0x03, 0x03, "1" },
- {0x13, 0x01, 0x03, 0x02, "2" },
- {0x13, 0x01, 0x03, 0x01, "3" },
- {0x13, 0x01, 0x03, 0x00, "5" },
-
- {0 , 0xfe, 0 , 2, "Cabinet" },
- {0x13, 0x01, 0x04, 0x00, "Upright" },
- {0x13, 0x01, 0x04, 0x04, "Cocktail" },
-
- {0 , 0xfe, 0 , 2, "Bonus Life" },
- {0x13, 0x01, 0x08, 0x08, "30000 80000" },
- {0x13, 0x01, 0x08, 0x00, "40000 90000" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x13, 0x01, 0x30, 0x30, "Easy" },
- {0x13, 0x01, 0x30, 0x10, "Normal" },
- {0x13, 0x01, 0x30, 0x20, "Difficult" },
- {0x13, 0x01, 0x30, 0x00, "Very Difficult" },
-
- {0 , 0xfe, 0 , 0, "Demo Sounds" },
- {0x13, 0x01, 0x80, 0x80, "Off" },
- {0x13, 0x01, 0x80, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x14, 0x01, 0x01, 0x01, "Off" },
- {0x14, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Upright Controls" },
- {0x14, 0x01, 0x02, 0x02, "Single" },
- {0x14, 0x01, 0x02, 0x00, "Dual" },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x14, 0x01, 0x04, 0x04, "Off" },
- {0x14, 0x01, 0x04, 0x00, "On" },
-};
-
-STDDIPINFO(Yieartf)
-
-static struct BurnDIPInfo ReaktorDIPList[]=
-{
- {0x09, 0xff, 0xff, 0xbf, NULL },
- {0x0a, 0xff, 0xff, 0xef, NULL },
-
- {0 , 0xfe, 0 , 2, "Pricing" },
- {0x09, 0x01, 0x01, 0x01, "10p / 25c per play" },
- {0x09, 0x01, 0x01, 0x00, "20p / 50c per play" },
-
- {0 , 0xfe, 0 , 2, "Coinage Type" },
- {0x09, 0x01, 0x10, 0x10, "English (10p / 20p)" },
- {0x09, 0x01, 0x10, 0x00, "American (25c / 50c)" },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x09, 0x01, 0x60, 0x60, "2" },
- {0x09, 0x01, 0x60, 0x40, "3" },
- {0x09, 0x01, 0x60, 0x20, "4" },
- {0x09, 0x01, 0x60, 0x00, "5" },
-
- {0 , 0xfe, 0 , 2, "Bonus Life" },
- {0x09, 0x01, 0x80, 0x80, "20000" },
- {0x09, 0x01, 0x80, 0x00, "30000" },
-
- {0 , 0xfe, 0 , 2, "Game Orientation" },
- {0x0a, 0x01, 0x01, 0x01, "For Vertical Monitor" },
- {0x0a, 0x01, 0x01, 0x00, "For Horizontal Monitor" },
-
- {0 , 0xfe, 0 , 2, "Free Play" },
- {0x0a, 0x01, 0x08, 0x08, "Off" },
- {0x0a, 0x01, 0x08, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Wipe Highscores" },
- {0x0a, 0x01, 0x10, 0x00, "Off" },
- {0x0a, 0x01, 0x10, 0x10, "On" },
-};
-
-STDDIPINFO(Reaktor)
-
-static struct BurnDIPInfo WizzquizDIPList[]=
-{
- {0x0e, 0xff, 0xff, 0xff, NULL },
- {0x0f, 0xff, 0xff, 0xff, NULL },
-
- {0 , 0xfe, 0 , 17, "Coin A" },
- {0x0e, 0x01, 0x0f, 0x02, "4 Coins 1 Credits" },
- {0x0e, 0x01, 0x0f, 0x05, "3 Coins 1 Credits" },
- {0x0e, 0x01, 0x0f, 0x08, "2 Coins 1 Credits" },
- {0x0e, 0x01, 0x0f, 0x04, "3 Coins 2 Credits" },
- {0x0e, 0x01, 0x0f, 0x01, "4 Coins 3 Credits" },
- {0x0e, 0x01, 0x0f, 0x0f, "1 Coin 1 Credits" },
- {0x0e, 0x01, 0x0f, 0x03, "3 Coins 4 Credits" },
- {0x0e, 0x01, 0x0f, 0x07, "2 Coins 3 Credits" },
- {0x0e, 0x01, 0x0f, 0x0e, "1 Coin 2 Credits" },
- {0x0e, 0x01, 0x0f, 0x06, "2 Coins 5 Credits" },
- {0x0e, 0x01, 0x0f, 0x0d, "1 Coin 3 Credits" },
- {0x0e, 0x01, 0x0f, 0x0c, "1 Coin 4 Credits" },
- {0x0e, 0x01, 0x0f, 0x0b, "1 Coin 5 Credits" },
- {0x0e, 0x01, 0x0f, 0x0a, "1 Coin 6 Credits" },
- {0x0e, 0x01, 0x0f, 0x09, "1 Coin 7 Credits" },
- {0x0e, 0x01, 0x0f, 0x00, "Free Play" },
- {0x0e, 0x01, 0x0f, 0x00, "No Coin A" },
-
- {0 , 0xfe, 0 , 17, "Coin B" },
- {0x0e, 0x01, 0xf0, 0x20, "4 Coins 1 Credits" },
- {0x0e, 0x01, 0xf0, 0x50, "3 Coins 1 Credits" },
- {0x0e, 0x01, 0xf0, 0x80, "2 Coins 1 Credits" },
- {0x0e, 0x01, 0xf0, 0x40, "3 Coins 2 Credits" },
- {0x0e, 0x01, 0xf0, 0x10, "4 Coins 3 Credits" },
- {0x0e, 0x01, 0xf0, 0xf0, "1 Coin 1 Credits" },
- {0x0e, 0x01, 0xf0, 0x30, "3 Coins 4 Credits" },
- {0x0e, 0x01, 0xf0, 0x70, "2 Coins 3 Credits" },
- {0x0e, 0x01, 0xf0, 0xe0, "1 Coin 2 Credits" },
- {0x0e, 0x01, 0xf0, 0x60, "2 Coins 5 Credits" },
- {0x0e, 0x01, 0xf0, 0xd0, "1 Coin 3 Credits" },
- {0x0e, 0x01, 0xf0, 0xc0, "1 Coin 4 Credits" },
- {0x0e, 0x01, 0xf0, 0xb0, "1 Coin 5 Credits" },
- {0x0e, 0x01, 0xf0, 0xa0, "1 Coin 6 Credits" },
- {0x0e, 0x01, 0xf0, 0x90, "1 Coin 7 Credits" },
- {0x0e, 0x01, 0xf0, 0x00, "Free Play" },
- {0x0e, 0x01, 0xf0, 0x00, "No Coin B" },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x0f, 0x01, 0x03, 0x03, "3" },
- {0x0f, 0x01, 0x03, 0x02, "4" },
- {0x0f, 0x01, 0x03, 0x01, "5" },
- {0x0f, 0x01, 0x03, 0x00, "6" },
-
- {0 , 0xfe, 0 , 2, "Bonus Life" },
- {0x0f, 0x01, 0x04, 0x00, "8,000 Points" },
- {0x0f, 0x01, 0x04, 0x04, "10,000 Points" },
-
- {0 , 0xfe, 0 , 0, "Show Correct Answer" },
- {0x0f, 0x01, 0x40, 0x40, "No" },
- {0x0f, 0x01, 0x40, 0x00, "Yes" },
-
- {0 , 0xfe, 0 , 0, "Credit Limit" },
- {0x0f, 0x01, 0x80, 0x80, "99 Credits" },
- {0x0f, 0x01, 0x80, 0x00, "9 Credits" },
-};
-
-STDDIPINFO(Wizzquiz)
-
-static struct BurnDIPInfo MastkinDIPList[]=
-{
- {0x09, 0xff, 0xff, 0xD6, NULL },
- {0x0a, 0xff, 0xff, 0x00, NULL },
-
- {0 , 0xfe, 0 , 2, "Allow Continue" },
- {0x09, 0x01, 0x01, 0x01, "Off" },
- {0x09, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Timer Speed" },
- {0x09, 0x01, 0x02, 0x02, "Normal" },
- {0x09, 0x01, 0x02, 0x00, "Fast" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x09, 0x01, 0x0c, 0x0c, "Easy" },
- {0x09, 0x01, 0x0c, 0x04, "Normal" },
- {0x09, 0x01, 0x0c, 0x08, "Hard" },
- {0x09, 0x01, 0x0c, 0x00, "Very Hard" },
-
- {0 , 0xfe, 0 , 2, "Lives" },
- {0x09, 0x01, 0x10, 0x10, "4" },
- {0x09, 0x01, 0x10, 0x00, "5" },
-
- {0 , 0xfe, 0 , 2, "Internal speed" },
- {0x09, 0x01, 0x20, 0x20, "Slow" },
- {0x09, 0x01, 0x20, 0x00, "Fast" },
-
- {0 , 0xfe, 0 , 0, "Coin B" },
- {0x0a, 0x01, 0x0f, 0x0a, "4 Coins 1 Credits" },
- {0x0a, 0x01, 0x0f, 0x09, "3 Coins 1 Credits" },
- {0x0a, 0x01, 0x0f, 0x05, "2 Coins 1 Credits" },
- {0x0a, 0x01, 0x0f, 0x06, "2 Coins 2 Credits" },
- {0x0a, 0x01, 0x0f, 0x00, "1 Coin 1 Credits" },
- {0x0a, 0x01, 0x0f, 0x07, "2 Coins 3 Credits" },
- {0x0a, 0x01, 0x0f, 0x08, "2 Coins 4 Credits" },
- {0x0a, 0x01, 0x0f, 0x01, "1 Coin 2 Credits" },
- {0x0a, 0x01, 0x0f, 0x02, "1 Coin 3 Credits" },
- {0x0a, 0x01, 0x0f, 0x03, "1 Coin 4 Credits" },
- {0x0a, 0x01, 0x0f, 0x04, "1 Coin 5 Credits" },
-
- {0 , 0xfe, 0 , 11, "Coin A" },
- {0x0a, 0x01, 0xf0, 0xa0, "4 Coins 1 Credits" },
- {0x0a, 0x01, 0xf0, 0x90, "3 Coins 1 Credits" },
- {0x0a, 0x01, 0xf0, 0x50, "2 Coins 1 Credits" },
- {0x0a, 0x01, 0xf0, 0x60, "2 Coins 2 Credits" },
- {0x0a, 0x01, 0xf0, 0x00, "1 Coin 1 Credits" },
- {0x0a, 0x01, 0xf0, 0x70, "2 Coins 3 Credits" },
- {0x0a, 0x01, 0xf0, 0x80, "2 Coins 4 Credits" },
- {0x0a, 0x01, 0xf0, 0x10, "1 Coin 2 Credits" },
- {0x0a, 0x01, 0xf0, 0x20, "1 Coin 3 Credits" },
- {0x0a, 0x01, 0xf0, 0x30, "1 Coin 4 Credits" },
- {0x0a, 0x01, 0xf0, 0x40, "1 Coin 5 Credits" },
-};
-
-STDDIPINFO(Mastkin)
-
-static void trackfld_main_write(UINT16 address, UINT8 data)
-{
- if ((address & 0xfc80) == 0x1000) address &= ~0x7;
- if ((address & 0xff00) == 0x1200) address &= ~0x4;
-
- switch (address & ~0x78)
- {
- case 0x1000:
- watchdog = 0;
- return;
-
- case 0x1080:
- case 0x10b0:
- flipscreen = data; //?
- return;
-
- case 0x1081:
- case 0x10b1:
- {
- if (last_sound_irq == 0 && data)
- {
- ZetSetVector(0xff);
- ZetSetIRQLine(0, CPU_IRQSTATUS_HOLD);
- }
-
- last_sound_irq = data;
- }
- return;
-
- case 0x1082:
- nmi_mask = data & 0x01;
- return;
-
- case 0x1083:
- case 0x1084:
- case 0x10b3:
- case 0x10b4:
- // coin counter
- return;
-
- case 0x1085:
- case 0x1086:
- return; // nop
-
- case 0x1087:
- case 0x10b7:
- irq_mask = data & 0x01;
- return;
-
- case 0x1100:
- soundlatch = data;
- return;
- }
-}
-
-static UINT8 trackfld_main_read(UINT16 address)
-{
- //if ((address & 0xfc80) == 0x1080) address &= ~0x7f;
- //if ((address & 0xffff) == 0x1200) address &= ~0x7c;
-
- switch (address)
- {
- case 0x0000: // yieartf
- return (vlm5030_bsy(0) ? 1 : 0);
-
- case 0x1080: // flipscreen_w;
- return 0;
-
- case 0x1200:
- return DrvDips[1];
-
- case 0x1280:
- return DrvInputs[0];
-
- case 0x1281:
- return DrvInputs[1];
-
- case 0x1282:
- return DrvInputs[2];
-
- case 0x1283:
- return DrvDips[0];
-
- case 0x1300: // yieartf
- return DrvDips[2];
- }
- //bprintf(0, _T("mr %X. "), address);
- return 0;
-}
-
-static void yieartf_main_write(UINT16 address, UINT8 data)
-{
- switch (address)
- {
- case 0x0000:
- SN76496_latch = data;
- return;
-
- case 0x0001:
- SN76496Write(0, SN76496_latch);
- return;
-
- case 0x0002:
- {
- vlm5030_st(0, (data >> 1) & 1);
- vlm5030_rst(0, (data >> 2) & 1);
- }
- return;
-
- case 0x0003:
- vlm5030_data_write(0, data);
- return;
-
- case 0x1100:
- return; // no soundlatch
- }
-
- trackfld_main_write(address, data);
-}
-
-static void __fastcall reaktor_main_write(UINT16 address, UINT8 data)
-{
- if (address == 0x9081)
- {
- if (last_sound_irq == 0 && data)
- {
- ZetClose();
- ZetOpen(1);
- ZetSetVector(0xff);
- ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
- ZetRun(100);
- ZetSetIRQLine(0,CPU_IRQSTATUS_NONE);
- ZetClose();
- ZetOpen(0);
- }
- last_sound_irq = data;
- return;
- }
-
- if (address == 0x9100) {
- soundlatch = data;
- return;
- }
-
- if ((address & 0xfc00) == 0x9000) {
- trackfld_main_write(address - 0x8000, data);
- return;
- }
-
- //bprintf (0, _T("wb %4.4x, %2.2x\n"), address, data);
-}
-
-static UINT8 __fastcall reaktor_main_read(UINT16 address)
-{
- if ((address & 0xfc00) == 0x9000) {
- return trackfld_main_read(address - 0x8000);
- }
-
-// bprintf (0, _T("rb %4.4x\n"), address);
- return 0;
-}
-
-static void wizzquiz_bank(UINT8 data)
-{
- for (INT32 i = 0; i < 8; i++)
- {
- if ((data & (1 << i)) == 0)
- {
- M6800MapMemory(DrvQuizROM + (i * 0x8000), 0x6000, 0xdfff, MAP_ROM);
- return;
- }
- }
-}
-
-static void wizzquiz_main_write(UINT16 address, UINT8 data)
-{
-// if (address != 0x1000)
-// bprintf (0, _T("%4.4x, %2.2x\n"), address, data);
-
-// if (address < 0x80) {
-// DrvM6800RAM[address] = data;
-// return;
-// }
-
- switch (address)
- {
- case 0xc000:
- wizzquiz_bank(data);
- return;
- }
-
- trackfld_main_write(address, data);
-}
-
-static UINT8 wizzquiz_main_read(UINT16 address)
-{
-// if (address != 0x1000) bprintf (0, _T("rb %4.4x\n"), address);
-
-// if (address < 0x80) {
-// return DrvM6800RAM[address];
-// }
-
- switch (address)
- {
- case 0x1000:
- watchdog = 0;
- return 0;
- }
-
- return trackfld_main_read(address);
-}
-
-
-static void __fastcall trackfld_sound_write(UINT16 address, UINT8 data)
-{
- UINT16 unmasked = address;
- if (address < 0xe000) address &= ~0x1fff;
- if (address > 0xe000) address &= ~0x1ff8;
-
- switch (address)
- {
- case 0xa000:
- SN76496_latch = data;
- return;
-
- case 0xc000:
- SN76496Write(0, SN76496_latch);
- return;
-
- case 0xe000:
- DACWrite(0, data);
- return;
-
- case 0xe003:
- {
- INT32 addr = (unmasked & 0x380) ^ last_addr;
-
- if (addr & 0x100) vlm5030_st(0, (unmasked & 0x100) >> 8);
- if (addr & 0x200) vlm5030_rst(0, (unmasked & 0x200) >> 9);
- last_addr = unmasked & 0x380;
- }
- return;
-
- case 0xe004:
- vlm5030_data_write(0, data);
- return;
- }
-}
-
-static UINT8 __fastcall trackfld_sound_read(UINT16 address)
-{
- if (address < 0xe000) address &= ~0x1fff;
- if (address > 0xe000) address &= ~0x1ff8;
-
- switch (address)
- {
- case 0x6000:
- return soundlatch;
-
- case 0x8000:
- return (ZetTotalCycles() / 1024) & 0xf;
-
- case 0xc000:
- SN76496Write(0, SN76496_latch);
- return 0xff;
-
- case 0xe001:
- return 0; // nop
-
- case 0xe002:
- return (vlm5030_bsy(0) ? 0x10 : 0);
- }
-
- return 0;
-}
-
-static INT32 DrvSyncDAC()
-{
- return (INT32)(float)(nBurnSoundLen * (ZetTotalCycles() / (3579545.000 / (nBurnFPS / 100.000))));
-}
-
-static UINT32 DrvVLM5030Sync(INT32 samples_rate)
-{
- return (samples_rate * ZetTotalCycles()) / (3579545 / 60);
-}
-
-static UINT32 DrvVLM5030Sync2(INT32 samples_rate)
-{
- return (samples_rate * M6809TotalCycles()) / (1536000 / 60);
-}
-
-static INT32 DrvDoReset(INT32 clear_mem)
-{
- if (clear_mem) {
- memset (AllRam, 0, RamEnd - AllRam);
- }
-
- if (game_select == 4) {
- // M6800Open(0);
- M6800Reset();
- wizzquiz_bank(0);
- // M6800Close();
- }
-
- if (game_select == 3) {
- ZetOpen(0);
- ZetReset();
- ZetClose();
- }
-
- if (game_select == 1 || game_select == 2) {
- M6809Open(0);
- M6809Reset();
- M6809Close();
- }
-
- if (game_select == 1 || game_select == 3 || game_select == 4) {
- ZetOpen(1);
- ZetReset();
- vlm5030Reset(0);
- SN76496Reset();
- DACReset();
- ZetClose();
- }
-
- if (game_select == 2) {
- vlm5030Reset(0);
- SN76496Reset();
- }
-
- bg_bank = 0;
- soundlatch = 0;
- flipscreen = 0;
- irq_mask = 0;
- nmi_mask = 0;
- last_addr = 0;
- last_sound_irq = 0;
- SN76496_latch = 0;
-
- return 0;
-}
-
-static INT32 MemIndex()
-{
- UINT8 *Next; Next = AllMem;
-
- DrvZ80ROM0 = Next;
- DrvM6809ROM = Next; Next += 0x010000;
- DrvM6809ROMDec = Next; Next += 0x010000;
-
- DrvQuizROM = Next; Next += 0x040000;
-
- DrvZ80ROM1 = Next; Next += 0x010000;
-
- DrvGfxROM0 = Next; Next += 0x020000;
- DrvGfxROM1 = Next; Next += 0x010000;
-
- DrvColPROM = Next; Next += 0x000220;
-
- DrvSndROM = Next; Next += 0x002000;
-
- DrvPalette = (UINT32*)Next; Next += 0x0200 * sizeof(UINT32);
-
- AllRam = Next;
-
- DrvNVRAM = Next; Next += 0x000800;
- DrvM6800RAM = Next; Next += 0x000100;
- DrvSprRAM0 = Next; Next += 0x000400;
- DrvSprRAM1 = Next; Next += 0x000400;
- DrvColRAM = Next; Next += 0x000800;
- DrvVidRAM = Next; Next += 0x000800;
- DrvZ80RAM0 = Next; Next += 0x000c00;
- DrvZ80RAM1 = Next; Next += 0x000400;
-
- RamEnd = Next;
-
- MemEnd = Next;
-
- return 0;
-}
-
-static INT32 DrvGfxDecode() // 0, 100
-{
- INT32 Plane1[4] = { STEP4(0,1) };
- INT32 XOffs1[8] = { STEP8(0,4) };
- INT32 YOffs1[8] = { STEP8(0,32) };
-
- INT32 Plane0[4] = { (0x8000*8)+4, (0x8000*8), 4, 0 };
- INT32 XOffs0[16] = { STEP4(0,1), STEP4(64,1), STEP4(128,1), STEP4(192,1) };
- INT32 YOffs0[16] = { STEP8(0,8), STEP8(256,8) };
-
- UINT8 *tmp = (UINT8*)BurnMalloc(0x10000);
- if (tmp == NULL) {
- return 1;
- }
-
- memcpy (tmp, DrvGfxROM0, 0x10000);
-
- GfxDecode(0x0200, 4, 16, 16, Plane0, XOffs0, YOffs0, 0x200, tmp, DrvGfxROM0);
-
- memset (tmp, 0, 0x10000);
- memcpy (tmp, DrvGfxROM1, 0x8000);
-
- GfxDecode(0x0400, 4, 8, 8, Plane1, XOffs1, YOffs1, 0x100, tmp, DrvGfxROM1);
-
- BurnFree(tmp);
-
- return 0;
-}
-
-static void M6809Decode()
-{
- for (INT32 i = 0x6000; i < 0x10000; i++) {
- DrvM6809ROMDec[i] = DrvM6809ROM[i] ^ (((i&2)?0x80:0x20)|((i&8)?0x08:0x02));
- }
-}
-
-static void CommonSoundInit()
-{
- ZetInit(1);
- ZetOpen(1);
- ZetMapMemory(DrvZ80ROM1, 0x0000, 0x3fff, MAP_ROM);
- for (INT32 i = 0; i < 0x2000; i+=0x400) {
- ZetMapMemory(DrvZ80RAM1, 0x4000+i, 0x43ff+i, MAP_RAM);
- }
- ZetSetWriteHandler(trackfld_sound_write);
- ZetSetReadHandler(trackfld_sound_read);
- ZetClose();
-
- vlm5030Init(0, 3579545, DrvVLM5030Sync, DrvSndROM, 0x2000, 0);
- vlm5030SetAllRoutes(0, 1.00, BURN_SND_ROUTE_BOTH);
-
- SN76496Init(0, 1789772, 1);
- SN76496SetRoute(0, 1.00, BURN_SND_ROUTE_BOTH);
-
- DACInit(0, 0, 1, DrvSyncDAC);
- DACSetRoute(0, 0.80, BURN_SND_ROUTE_BOTH);
-}
-
-static INT32 DrvInit()
-{
- game_select = 1;
-
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(DrvM6809ROM + 0x6000, 0, 1)) return 1;
- if (BurnLoadRom(DrvM6809ROM + 0x8000, 1, 1)) return 1;
- if (BurnLoadRom(DrvM6809ROM + 0xa000, 2, 1)) return 1;
- if (BurnLoadRom(DrvM6809ROM + 0xc000, 3, 1)) return 1;
- if (BurnLoadRom(DrvM6809ROM + 0xe000, 4, 1)) return 1;
-
- if (BurnLoadRom(DrvZ80ROM1 + 0x0000, 5, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x0000, 6, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x2000, 7, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x8000, 8, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0xa000, 9, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM1 + 0x0000, 10, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x2000, 11, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x4000, 12, 1)) return 1;
-
- if (BurnLoadRom(DrvColPROM + 0x0000, 13, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x0020, 14, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x0120, 15, 1)) return 1;
-
- if (BurnLoadRom(DrvSndROM + 0x0000, 16, 1)) return 1;
-
- DrvGfxDecode();
- M6809Decode();
- }
-
- M6809Init(1);
- M6809Open(0);
- M6809MapMemory(DrvSprRAM1, 0x1800, 0x1bff, MAP_RAM);
- // spr2 00-3f, scroll 40-5f
- M6809MapMemory(DrvSprRAM0, 0x1c00, 0x1fff, MAP_RAM);
- // spr 00-3f, scroll 40-5f
- M6809MapMemory(DrvNVRAM, 0x2800, 0x2fff, MAP_RAM);
- M6809MapMemory(DrvVidRAM, 0x3000, 0x37ff, MAP_RAM);
- M6809MapMemory(DrvColRAM, 0x3800, 0x3fff, MAP_RAM);
- M6809MapMemory(DrvM6809ROM + 0x6000, 0x6000, 0xffff, MAP_READ);
- M6809MapMemory(DrvM6809ROMDec + 0x6000, 0x6000, 0xffff, MAP_FETCH);
- M6809SetWriteHandler(trackfld_main_write);
- M6809SetReadHandler(trackfld_main_read);
- M6809Close();
-
- ZetInit(0); // reaktor
- CommonSoundInit();
-
- nSpriteMask = 0xff;
- nCharMask = 0x3ff;
-
- GenericTilesInit();
-
- DrvDoReset(1);
-
- return 0;
-}
-
-static void TrackfldnzDecode()
-{
- for (INT32 i = 0x6000; i < 0x10000; i++)
- DrvM6809ROM[i] = BITSWAP08(DrvM6809ROM[i], 6, 7, 5, 4, 3, 2, 1, 0);
-}
-
-static INT32 TrackfldnzInit()
-{
- game_select = 1;
-
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(DrvM6809ROM + 0x6000, 0, 1)) return 1;
- if (BurnLoadRom(DrvM6809ROM + 0x8000, 1, 1)) return 1;
- if (BurnLoadRom(DrvM6809ROM + 0xa000, 2, 1)) return 1;
- if (BurnLoadRom(DrvM6809ROM + 0xc000, 3, 1)) return 1;
- if (BurnLoadRom(DrvM6809ROM + 0xe000, 4, 1)) return 1;
-
- if (BurnLoadRom(DrvZ80ROM1 + 0x0000, 5, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x0000, 6, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x2000, 7, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x8000, 8, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0xa000, 9, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM1 + 0x0000, 10, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x2000, 11, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x4000, 12, 1)) return 1;
-
- if (BurnLoadRom(DrvColPROM + 0x0000, 13, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x0020, 14, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x0120, 15, 1)) return 1;
-
- if (BurnLoadRom(DrvSndROM + 0x0000, 16, 1)) return 1;
-
- DrvGfxDecode();
- TrackfldnzDecode(); // before M6809Decode
- M6809Decode();
- }
-
- M6809Init(1);
- M6809Open(0);
- M6809MapMemory(DrvSprRAM1, 0x1800, 0x1bff, MAP_RAM);
- // spr2 00-3f, scroll 40-5f
- M6809MapMemory(DrvSprRAM0, 0x1c00, 0x1fff, MAP_RAM);
- // spr 00-3f, scroll 40-5f
- M6809MapMemory(DrvNVRAM, 0x2800, 0x2fff, MAP_RAM);
- M6809MapMemory(DrvVidRAM, 0x3000, 0x37ff, MAP_RAM);
- M6809MapMemory(DrvColRAM, 0x3800, 0x3fff, MAP_RAM);
- M6809MapMemory(DrvM6809ROM + 0x6000, 0x6000, 0xffff, MAP_READ);
- M6809MapMemory(DrvM6809ROMDec + 0x6000, 0x6000, 0xffff, MAP_FETCH);
- M6809SetWriteHandler(trackfld_main_write);
- M6809SetReadHandler(trackfld_main_read);
- M6809Close();
-
- ZetInit(0); // reaktor
- CommonSoundInit();
-
- nSpriteMask = 0xff;
- nCharMask = 0x3ff;
-
- GenericTilesInit();
-
- DrvDoReset(1);
-
- return 0;
-}
-
-static INT32 YieartfInit()
-{
- game_select = 2;
-
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(DrvM6809ROM + 0x8000, 0, 1)) return 1;
- if (BurnLoadRom(DrvM6809ROM + 0xa000, 1, 1)) return 1;
- if (BurnLoadRom(DrvM6809ROM + 0xc000, 2, 1)) return 1;
- if (BurnLoadRom(DrvM6809ROM + 0xe000, 3, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x0000, 4, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x4000, 5, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x8000, 6, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0xc000, 7, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM1 + 0x0000, 8, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x2000, 9, 1)) return 1;
-
- if (BurnLoadRom(DrvColPROM + 0x0000, 10, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x0020, 11, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x0120, 12, 1)) return 1;
-
- if (BurnLoadRom(DrvSndROM + 0x0000, 13, 1)) return 1;
-
- DrvGfxDecode();
- }
-
- M6809Init(1);
- M6809Open(0);
- M6809MapMemory(DrvSprRAM1, 0x1800, 0x1bff, MAP_RAM);
- // spr2 00-3f, scroll 40-5f
- M6809MapMemory(DrvSprRAM0, 0x1c00, 0x1fff, MAP_RAM);
- // spr 00-3f, scroll 40-5f
- M6809MapMemory(DrvNVRAM, 0x2800, 0x2fff, MAP_RAM);
- M6809MapMemory(DrvVidRAM, 0x3000, 0x37ff, MAP_RAM);
- M6809MapMemory(DrvColRAM, 0x3800, 0x3fff, MAP_RAM);
- M6809MapMemory(DrvM6809ROM + 0x6000, 0x6000, 0xffff, MAP_ROM);
- M6809SetWriteHandler(yieartf_main_write);
- M6809SetReadHandler(trackfld_main_read);
- M6809Close();
-
- vlm5030Init(0, 3579545, DrvVLM5030Sync2, DrvSndROM, 0x2000, 1);
- vlm5030SetAllRoutes(0, 1.00, BURN_SND_ROUTE_BOTH);
-
- SN76496Init(0, 1536000, 0);
- SN76496SetRoute(0, 1.00, BURN_SND_ROUTE_BOTH);
-
- nSpriteMask = 0x1ff;
- nCharMask = 0x1ff;
-
- GenericTilesInit();
-
- DrvDoReset(1);
-
- return 0;
-}
-
-static INT32 ReaktorInit()
-{
- game_select = 3;
-
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(DrvZ80ROM0 + 0x0000, 0, 1)) return 1;
-
- if (BurnLoadRom(DrvZ80ROM1 + 0x0000, 1, 1)) return 1;
- memmove(DrvZ80ROM1, DrvZ80ROM1 + 0x2000, 0x2000);
- memset(DrvZ80ROM1 + 0x2000, 0, 0x2000);
-
- UINT8 *tmp = (UINT8*)BurnMalloc(0x4000);
-
- if (BurnLoadRom(tmp + 0x0000, 2, 1)) return 1;
- memcpy (DrvGfxROM0 + 0x0000, tmp + 0x2000, 0x2000);
- if (BurnLoadRom(tmp + 0x0000, 3, 1)) return 1;
- memcpy (DrvGfxROM0 + 0x8000, tmp + 0x2000, 0x2000);
- if (BurnLoadRom(DrvGfxROM0 + 0x2000, 4, 1)) return 1;
- if (BurnLoadRom(tmp + 0x0000, 5, 1)) return 1;
- memcpy (DrvGfxROM0 + 0xa000, tmp + 0x2000, 0x2000);
-
- BurnFree(tmp);
-
- if (BurnLoadRom(DrvGfxROM1 + 0x0000, 6, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x2000, 7, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x4000, 8, 1)) return 1;
-
- if (BurnLoadRom(DrvColPROM + 0x0000, 9, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x0020, 10, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x0120, 11, 1)) return 1;
-
- if (BurnLoadRom(DrvSndROM + 0x0000, 12, 1)) return 1;
-
- DrvGfxDecode();
- }
-
- ZetInit(0);
- ZetOpen(0);
- ZetMapMemory(DrvZ80ROM0, 0x0000, 0x7fff, MAP_ROM);
- ZetMapMemory(DrvSprRAM1, 0x9800, 0x9bff, MAP_RAM);
- ZetMapMemory(DrvSprRAM0, 0x9c00, 0x9fff, MAP_RAM);
- ZetMapMemory(DrvZ80RAM0, 0xa800, 0xabff, MAP_RAM);
- ZetMapMemory(DrvNVRAM, 0xac00, 0xafff, MAP_RAM);
- ZetMapMemory(DrvVidRAM, 0xb000, 0xb7ff, MAP_RAM);
- ZetMapMemory(DrvColRAM, 0xb800, 0xbfff, MAP_RAM);
- ZetSetWriteHandler(reaktor_main_write);
- ZetSetReadHandler(reaktor_main_read);
- ZetClose();
-
- CommonSoundInit();
-
- nSpriteMask = 0xff;
- nCharMask = 0x3ff;
-
- GenericTilesInit();
-
- DrvDoReset(1);
-
- return 0;
-}
-
-static void wizzquizSwap(UINT8 *rom)
-{
- UINT8 *tmp = (UINT8*)BurnMalloc(0x8000);
-
- memcpy (tmp + 0x2000, rom + 0x0000, 0x6000);
- memcpy (tmp + 0x0000, rom + 0x6000, 0x2000);
-
- BurnFree(tmp);
-}
-
-static void wizzquizDecode(UINT8 *rom, INT32 len)
-{
- for (INT32 i = 0; i < len; i++)
- rom[i] = BITSWAP08(rom[i],0,1,2,3,4,5,6,7);
-}
-
-static INT32 WizzquizInit()
-{
- game_select = 4;
-
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(DrvM6809ROM + 0x0000, 0, 1)) return 1;
-
- if (BurnLoadRom(DrvQuizROM + 0x00000, 1, 1)) return 1;
- if (BurnLoadRom(DrvQuizROM + 0x08000, 2, 1)) return 1;
- if (BurnLoadRom(DrvQuizROM + 0x10000, 3, 1)) return 1;
- if (BurnLoadRom(DrvQuizROM + 0x18000, 4, 1)) return 1;
- if (BurnLoadRom(DrvQuizROM + 0x20000, 5, 1)) return 1;
- if (BurnLoadRom(DrvQuizROM + 0x28000, 6, 1)) return 1;
- if (BurnLoadRom(DrvQuizROM + 0x30000, 7, 1)) return 1;
- if (BurnLoadRom(DrvQuizROM + 0x38000, 8, 1)) return 1;
-
- if (BurnLoadRom(DrvZ80ROM1 + 0x0000, 9, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x0000, 10, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x8000, 11, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM1 + 0x0000, 12, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x2000, 13, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x4000, 14, 1)) return 1;
-
- if (BurnLoadRom(DrvColPROM + 0x0000, 15, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x0020, 16, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x0120, 17, 1)) return 1;
-
- wizzquizDecode(DrvM6809ROM, 0x02000);
- for (INT32 i = 0; i < 8; i++) {
- wizzquizDecode(DrvQuizROM + i * 0x8000, 0x8000);
- wizzquizSwap(DrvQuizROM + i * 0x8000);
- }
-
- DrvGfxDecode();
- }
-
- M6800Init(1);
-// M6800Open(0);
- M6800MapMemory(DrvM6800RAM, 0x0000, 0x00ff, MAP_RAM);
- M6800MapMemory(DrvSprRAM1, 0x1800, 0x1bff, MAP_RAM);
- M6800MapMemory(DrvSprRAM0, 0x1c00, 0x1fff, MAP_RAM);
- M6800MapMemory(DrvZ80ROM0, 0x2800, 0x2bff, MAP_RAM);
- M6800MapMemory(DrvNVRAM, 0x2c00, 0x2fff, MAP_RAM);
- M6800MapMemory(DrvVidRAM, 0x3000, 0x37ff, MAP_RAM);
- M6800MapMemory(DrvColRAM, 0x3800, 0x3fff, MAP_RAM);
- M6800MapMemory(DrvM6809ROM, 0xe000, 0xffff, MAP_ROM);
- M6800SetWriteHandler(wizzquiz_main_write);
- M6800SetReadHandler(wizzquiz_main_read);
-// M6800Close();
-
- ZetInit(0); // reaktor
-
- CommonSoundInit();
-
- nSpriteMask = 0x7f;
- nCharMask = 0x3ff;
-
- GenericTilesInit();
-
- DrvDoReset(1);
-
- return 0;
-}
-
-static void MastkinPaletteCreate()
-{
- for (INT32 i = 0; i < 0x20; i++)
- {
- DrvColPROM[i] = i * 4;
- }
-
- for (INT32 i = 0; i < 0x200; i++)
- {
- DrvColPROM[i + 0x20] = (i & 0x0f) ? ((i + i / 16) & 0x0f) : 0;
- }
-}
-
-static INT32 MastkinInit()
-{
- game_select = 1;
- nowatchdog = 1;
-
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(DrvM6809ROM + 0x8000, 0, 1)) return 1;
- if (BurnLoadRom(DrvM6809ROM + 0xa000, 1, 1)) return 1;
- if (BurnLoadRom(DrvM6809ROM + 0xe000, 2, 1)) return 1;
-
- if (BurnLoadRom(DrvZ80ROM1 + 0x0000, 3, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x0000, 4, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x2000, 5, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x8000, 6, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0xa000, 7, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM1 + 0x0000, 8, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x2000, 9, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x4000, 10, 1)) return 1;
-
-#if 0
- if (BurnLoadRom(DrvColPROM + 0x0000, 11, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x0020, 12, 1)) return 1;
- if (BurnLoadRom(DrvColPROM + 0x0120, 13, 1)) return 1;
-#endif
-
- if (BurnLoadRom(DrvSndROM + 0x0000, 14, 1)) return 1;
-
- MastkinPaletteCreate();
- DrvGfxDecode();
- }
-
- M6809Init(1);
- M6809Open(0);
- M6809MapMemory(DrvSprRAM1, 0x1800, 0x1bff, MAP_RAM);
- // spr2 00-3f, scroll 40-5f
- M6809MapMemory(DrvSprRAM0, 0x1c00, 0x1fff, MAP_RAM);
- // spr 00-3f, scroll 40-5f
- M6809MapMemory(DrvZ80RAM0, 0x2000, 0x2bff, MAP_RAM);
- M6809MapMemory(DrvNVRAM, 0x2c00, 0x2fff, MAP_RAM);
- M6809MapMemory(DrvVidRAM, 0x3000, 0x37ff, MAP_RAM);
- M6809MapMemory(DrvColRAM, 0x3800, 0x3fff, MAP_RAM);
- M6809MapMemory(DrvM6809ROM + 0x6000, 0x6000, 0xffff, MAP_ROM);
- M6809SetWriteHandler(trackfld_main_write);
- M6809SetReadHandler(trackfld_main_read);
- M6809Close();
-
- ZetInit(0); // reaktor
- CommonSoundInit();
-
- nSpriteMask = 0xff;
- nCharMask = 0x3ff;
-
- GenericTilesInit();
-
- DrvDoReset(1);
-
- return 0;
-}
-
-
-static INT32 DrvExit()
-{
- GenericTilesExit();
-
- if (game_select == 4) M6800Exit();
- if (game_select == 1 || game_select == 2) M6809Exit();
- if (game_select == 1 || game_select == 3) ZetExit();
-
- vlm5030Exit();
- if (game_select == 1 || game_select == 3) DACExit();
- SN76496Exit();
-
- nowatchdog = 0;
-
- BurnFree(AllMem);
-
- return 0;
-}
-
-static void DrvPaletteInit()
-{
- UINT32 tab[0x20];
-
- for (INT32 i = 0; i < 0x20; i++)
- {
- INT32 bit0 = (DrvColPROM[i] >> 0) & 0x01;
- INT32 bit1 = (DrvColPROM[i] >> 1) & 0x01;
- INT32 bit2 = (DrvColPROM[i] >> 2) & 0x01;
- INT32 r = bit0 * 33 + bit1 * 71 + bit2 * 151;
-
- bit0 = (DrvColPROM[i] >> 3) & 0x01;
- bit1 = (DrvColPROM[i] >> 4) & 0x01;
- bit2 = (DrvColPROM[i] >> 5) & 0x01;
- INT32 g = bit0 * 33 + bit1 * 71 + bit2 * 151;
-
- bit0 = (DrvColPROM[i] >> 6) & 0x01;
- bit1 = (DrvColPROM[i] >> 7) & 0x01;
- INT32 b = bit0 * 81 + bit1 * 174;
-
- tab[i] = BurnHighCol(r,g,b,0);
- }
-
- for (INT32 i = 0; i < 0x100; i++)
- {
- DrvPalette[0x000 + i] = tab[(DrvColPROM[i + 0x020] & 0x0f) | 0x00];
- DrvPalette[0x100 + i] = tab[(DrvColPROM[i + 0x120] & 0x0f) | 0x10];
- }
-}
-
-static void draw_layers()
-{
- for (INT32 offs = 0; offs < 64 * 32; offs++)
- {
- INT32 sx = (offs & 0x3f) * 8;
- INT32 sy = (offs / 0x40) * 8;
-
- sy -= 16;
-
- INT32 attr = DrvColRAM[offs];
- INT32 code = DrvVidRAM[offs] + (((attr & 0xc0) << 2) | (bg_bank ? 0x400 : 0));
- INT32 color = attr & 0x0f;
- INT32 flipx = attr & 0x10;
- INT32 flipy = attr & 0x20;
-
- code &= nCharMask;
-
- sx -= DrvSprRAM1[0x40+(sy/8)+2] + ((DrvSprRAM0[0x40+(sy/8)+2] & 1) * 256);
- if (sx < -7) sx += 512;
-
- if (flipx) {
- if (flipy) {
- Render8x8Tile_FlipXY_Clip(pTransDraw, code, sx, sy, color, 4, 0x100, DrvGfxROM1);
- } else {
- Render8x8Tile_FlipX_Clip(pTransDraw, code, sx, sy, color, 4, 0x100, DrvGfxROM1);
- }
- } else {
- if (flipy) {
- Render8x8Tile_FlipY_Clip(pTransDraw, code, sx, sy, color, 4, 0x100, DrvGfxROM1);
- } else {
- Render8x8Tile_Clip(pTransDraw, code, sx, sy, color, 4, 0x100, DrvGfxROM1);
- }
- }
- }
-}
-
-static void draw_single_sprite(INT32 code, INT32 color, INT32 sx, INT32 sy, INT32 flipx, INT32 flipy)
-{
- if (flipy) {
- if (flipx) {
- Render16x16Tile_Mask_FlipXY_Clip(pTransDraw, code, sx, sy, color, 4, 0, 0, DrvGfxROM0);
- } else {
- Render16x16Tile_Mask_FlipY_Clip(pTransDraw, code, sx, sy, color, 4, 0, 0, DrvGfxROM0);
- }
- } else {
- if (flipx) {
- Render16x16Tile_Mask_FlipX_Clip(pTransDraw, code, sx, sy, color, 4, 0, 0, DrvGfxROM0);
- } else {
- Render16x16Tile_Mask_Clip(pTransDraw, code, sx, sy, color, 4, 0, 0, DrvGfxROM0);
- }
- }
-}
-
-static void draw_sprites()
-{
- for (INT32 offs = 0x40 - 2; offs >= 0; offs -= 2)
- {
- INT32 attr = DrvSprRAM1[offs];
- INT32 code = DrvSprRAM0[offs + 1];
- INT32 color = attr & 0x0f;
- if (game_select == 2 && (attr & 1)) code |= 0x100; // yiear
- // code += m_sprite_bank1 + m_sprite_bank2; // atlantol
- code &= nSpriteMask;
- INT32 flipx = ~attr & 0x40;
- INT32 flipy = attr & 0x80;
- INT32 sx = DrvSprRAM0[offs] - 1;
- INT32 sy = 240 - DrvSprRAM1[offs + 1];
-
- sy -= 16;
-
- if (flipscreen)
- {
- sy = 240 - sy;
- flipy = !flipy;
- }
-
- draw_single_sprite(code, color, sx , sy + 1, flipx, flipy);
- draw_single_sprite(code, color, sx - 256, sy + 1, flipx, flipy);
- }
-}
-
-static INT32 DrvDraw()
-{
- if (DrvRecalc) {
- DrvPaletteInit();
- DrvRecalc = 1;
- }
-
- BurnTransferClear();
-
- if (nBurnLayer & 1) draw_layers();
- if (nBurnLayer & 2) draw_sprites();
-
- BurnTransferCopy(DrvPalette);
-
- return 0;
-}
-
-static INT32 DrvFrame()
-{
- watchdog++;
- if (watchdog >= 120 && !nowatchdog) {
- bprintf(0, _T("Watchdog tripped.\n"));
- DrvDoReset(0);
- }
-
- if (DrvReset) {
- DrvDoReset(1);
- }
-
- M6809NewFrame();
- ZetNewFrame();
-
- {
- memset (DrvInputs, 0xff, 3);
- for (INT32 i = 0; i < 8; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- DrvInputs[2] ^= (DrvJoy3[i] & 1) << i;
- }
- }
-
- INT32 nInterleave = 256;
- INT32 nCyclesTotal[2] = { 1536000 / 60, 3579545 / 60 };
- INT32 nCyclesDone[2] = { 0, 0 };
-
- M6809Open(0);
- ZetOpen(1);
-
- for (INT32 i = 0; i < nInterleave; i++)
- {
- nCyclesDone[0] += M6809Run(nCyclesTotal[0] / nInterleave);
-
- if (i == (nInterleave-1) && irq_mask) M6809SetIRQLine(0, CPU_IRQSTATUS_AUTO);
-
- nCyclesDone[1] += ZetRun(nCyclesTotal[1] / nInterleave);
- }
-
- if (pBurnSoundOut) {
- vlm5030Update(0, pBurnSoundOut, nBurnSoundLen);
- SN76496Update(0, pBurnSoundOut, nBurnSoundLen);
- DACUpdate(pBurnSoundOut, nBurnSoundLen);
- }
-
- ZetClose();
- M6809Close();
-
- if (pBurnDraw) {
- DrvDraw();
- }
-
- return 0;
-}
-
-static INT32 YieartfFrame()
-{
- watchdog++;
- if (watchdog >= 120) {
- DrvDoReset(0);
- }
-
- if (DrvReset) {
- DrvDoReset(1);
- }
-
- M6809NewFrame();
-
- {
- memset (DrvInputs, 0xff, 3);
- for (INT32 i = 0; i < 8; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- DrvInputs[2] ^= (DrvJoy3[i] & 1) << i;
- }
- }
-
- INT32 nInterleave = 256;
- INT32 nCyclesTotal[2] = { 1536000 / 60 };
- INT32 nCyclesDone[2] = { 0, 0 };
- INT32 nSoundBufferPos = 0;
-
- M6809Open(0);
-
- for (INT32 i = 0; i < nInterleave; i++)
- {
- nCyclesDone[0] += M6809Run(nCyclesTotal[0] / nInterleave);
-
- if ((i & 0xff) == 0xff && irq_mask) M6809SetIRQLine(0x00, CPU_IRQSTATUS_AUTO);
- if ((i & 0x1f) == 0x1f && nmi_mask) M6809SetIRQLine(0x20, CPU_IRQSTATUS_AUTO);
-
- // Render Sound Segment
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen / nInterleave;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- SN76496Update(0, pSoundBuf, nSegmentLength);
- nSoundBufferPos += nSegmentLength;
- }
- }
-
- // Make sure the buffer is entirely filled.
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- if (nSegmentLength) {
- SN76496Update(0, pSoundBuf, nSegmentLength);
- }
- vlm5030Update(0, pBurnSoundOut, nBurnSoundLen);
- }
-
- M6809Close();
-
- if (pBurnDraw) {
- DrvDraw();
- }
-
- return 0;
-}
-
-static INT32 ReaktorFrame()
-{
- watchdog++;
- if (watchdog >= 120) {
- DrvDoReset(0);
- }
-
- if (DrvReset) {
- DrvDoReset(1);
- }
-
- ZetNewFrame();
-
- {
- memset (DrvInputs, 0xff, 3);
- for (INT32 i = 0; i < 8; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- DrvInputs[2] ^= (DrvJoy3[i] & 1) << i;
- }
- }
-
- INT32 nInterleave = 256;
- INT32 nCyclesTotal[2] = { 3072000 / 60, 3579545 / 60 };
- INT32 nCyclesDone[2] = { 0, 0 };
-
- for (INT32 i = 0; i < nInterleave; i++)
- {
- ZetOpen(0);
- nCyclesDone[0] += ZetRun(nCyclesTotal[0] / nInterleave);
- if (i == (nInterleave-1) && irq_mask) ZetSetIRQLine(0, CPU_IRQSTATUS_AUTO);
- ZetClose();
-
- ZetOpen(1);
- nCyclesDone[1] += ZetRun(nCyclesTotal[1] / nInterleave);
- ZetClose();
-
- }
-
- ZetOpen(1);
-
- if (pBurnSoundOut) {
- vlm5030Update(0, pBurnSoundOut, nBurnSoundLen);
- SN76496Update(0, pBurnSoundOut, nBurnSoundLen);
- DACUpdate(pBurnSoundOut, nBurnSoundLen);
- }
-
- ZetClose();
-
-
- if (pBurnDraw) {
- DrvDraw();
- }
-
- return 0;
-}
-
-static INT32 WizzquizFrame()
-{
- watchdog++;
- if (watchdog >= 120) {
- DrvDoReset(0);
- }
-
- if (DrvReset) {
- DrvDoReset(1);
- }
-
- M6800NewFrame();
- ZetNewFrame();
-
- {
- memset (DrvInputs, 0xff, 3);
- for (INT32 i = 0; i < 8; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- DrvInputs[2] ^= (DrvJoy3[i] & 1) << i;
- }
- }
-
- INT32 nInterleave = 256;
- INT32 nCyclesTotal[2] = { 2048000 / 60, 3579545 / 60 };
- INT32 nCyclesDone[2] = { 0, 0 };
-
-// M6800Open(0);
- ZetOpen(1);
-
- for (INT32 i = 0; i < nInterleave; i++)
- {
- nCyclesDone[0] += M6800Run(nCyclesTotal[0] / nInterleave);
-
- if (i == 239 && irq_mask) M6800SetIRQLine(M6800_INPUT_LINE_NMI, CPU_IRQSTATUS_AUTO);
-
- nCyclesDone[1] += ZetRun(nCyclesTotal[1] / nInterleave);
- }
-
- if (pBurnSoundOut) {
- vlm5030Update(0, pBurnSoundOut, nBurnSoundLen);
- SN76496Update(0, pBurnSoundOut, nBurnSoundLen);
- DACUpdate(pBurnSoundOut, nBurnSoundLen);
- }
-
- ZetClose();
-// M6800Close();
-
- if (pBurnDraw) {
- DrvDraw();
- }
-
- return 0;
-}
-
-static INT32 DrvScan(INT32 nAction, INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin) {
- *pnMin = 0x029705;
- }
-
- if (nAction & ACB_VOLATILE) {
- memset(&ba, 0, sizeof(ba));
- ba.Data = AllRam;
- ba.nLen = RamEnd - AllRam;
- ba.szName = "All Ram";
- BurnAcb(&ba);
-
- if (game_select == 4) M6800Scan(nAction);
- if (game_select == 1 || game_select == 2) M6809Scan(nAction);
- if (game_select == 1 || game_select == 3) ZetScan(nAction);
- if (game_select == 1 || game_select == 3) DACScan(nAction, pnMin);
-
- SN76496Scan(nAction, pnMin);
- vlm5030Scan(nAction);
-
- SCAN_VAR(watchdog);
- SCAN_VAR(bg_bank);
- SCAN_VAR(soundlatch);
- SCAN_VAR(flipscreen);
- SCAN_VAR(irq_mask);
- SCAN_VAR(nmi_mask);
- SCAN_VAR(last_addr);
- SCAN_VAR(last_sound_irq);
- SCAN_VAR(SN76496_latch);
- }
-
- return 0;
-}
-
-
-// Track & Field
-
-static struct BurnRomInfo trackfldRomDesc[] = {
- { "a01_e01.bin", 0x2000, 0x2882f6d4, 1 | BRF_PRG | BRF_ESS }, // 0 maincpu
- { "a02_e02.bin", 0x2000, 0x1743b5ee, 1 | BRF_PRG | BRF_ESS }, // 1
- { "a03_k03.bin", 0x2000, 0x6c0d1ee9, 1 | BRF_PRG | BRF_ESS }, // 2
- { "a04_e04.bin", 0x2000, 0x21d6c448, 1 | BRF_PRG | BRF_ESS }, // 3
- { "a05_e05.bin", 0x2000, 0xf08c7b7e, 1 | BRF_PRG | BRF_ESS }, // 4
-
- { "c2_d13.bin", 0x2000, 0x95bf79b6, 2 | BRF_PRG | BRF_ESS }, // 5 audiocpu
-
- { "c11_d06.bin", 0x2000, 0x82e2185a, 3 | BRF_GRA }, // 6 gfx1
- { "c12_d07.bin", 0x2000, 0x800ff1f1, 3 | BRF_GRA }, // 7
- { "c13_d08.bin", 0x2000, 0xd9faf183, 3 | BRF_GRA }, // 8
- { "c14_d09.bin", 0x2000, 0x5886c802, 3 | BRF_GRA }, // 9
-
- { "h16_e12.bin", 0x2000, 0x50075768, 4 | BRF_GRA }, // 10 gfx2
- { "h15_e11.bin", 0x2000, 0xdda9e29f, 4 | BRF_GRA }, // 11
- { "h14_e10.bin", 0x2000, 0xc2166a5c, 4 | BRF_GRA }, // 12
-
- { "361b16.f1", 0x0020, 0xd55f30b5, 5 | BRF_GRA }, // 13 proms
- { "361b17.b16", 0x0100, 0xd2ba4d32, 5 | BRF_GRA }, // 14
- { "361b18.e15", 0x0100, 0x053e5861, 5 | BRF_GRA }, // 15
-
- { "c9_d15.bin", 0x2000, 0xf546a56b, 6 | BRF_GRA }, // 16 vlm
-};
-
-STD_ROM_PICK(trackfld)
-STD_ROM_FN(trackfld)
-
-struct BurnDriver BurnDrvTrackfld = {
- "trackfld", NULL, NULL, NULL, "1983",
- "Track & Field\0", NULL, "Konami", "Miscellaneous",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_PREFIX_KONAMI, GBF_SPORTSMISC, 0,
- NULL, trackfldRomInfo, trackfldRomName, NULL, NULL, TrackfldInputInfo, TrackfldDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x200,
- 256, 224, 4, 3
-};
-
-
-// Track & Field (Centuri)
-
-static struct BurnRomInfo trackfldcRomDesc[] = {
- { "f01.1a", 0x2000, 0x4e32b360, 1 | BRF_PRG | BRF_ESS }, // 0 maincpu
- { "f02.2a", 0x2000, 0x4e7ebf07, 1 | BRF_PRG | BRF_ESS }, // 1
- { "l03.3a", 0x2000, 0xfef4c0ea, 1 | BRF_PRG | BRF_ESS }, // 2
- { "f04.4a", 0x2000, 0x73940f2d, 1 | BRF_PRG | BRF_ESS }, // 3
- { "f05.5a", 0x2000, 0x363fd761, 1 | BRF_PRG | BRF_ESS }, // 4
-
- { "c2_d13.bin", 0x2000, 0x95bf79b6, 2 | BRF_PRG | BRF_ESS }, // 5 audiocpu
-
- { "c11_d06.bin", 0x2000, 0x82e2185a, 3 | BRF_GRA }, // 6 gfx1
- { "c12_d07.bin", 0x2000, 0x800ff1f1, 3 | BRF_GRA }, // 7
- { "c13_d08.bin", 0x2000, 0xd9faf183, 3 | BRF_GRA }, // 8
- { "c14_d09.bin", 0x2000, 0x5886c802, 3 | BRF_GRA }, // 9
-
- { "h16_e12.bin", 0x2000, 0x50075768, 4 | BRF_GRA }, // 10 gfx2
- { "h15_e11.bin", 0x2000, 0xdda9e29f, 4 | BRF_GRA }, // 11
- { "h14_e10.bin", 0x2000, 0xc2166a5c, 4 | BRF_GRA }, // 12
-
- { "361b16.f1", 0x0020, 0xd55f30b5, 5 | BRF_GRA }, // 13 proms
- { "361b17.b16", 0x0100, 0xd2ba4d32, 5 | BRF_GRA }, // 14
- { "361b18.e15", 0x0100, 0x053e5861, 5 | BRF_GRA }, // 15
-
- { "c9_d15.bin", 0x2000, 0xf546a56b, 6 | BRF_GRA }, // 16 vlm
-};
-
-STD_ROM_PICK(trackfldc)
-STD_ROM_FN(trackfldc)
-
-struct BurnDriver BurnDrvTrackfldc = {
- "trackfldc", "trackfld", NULL, NULL, "1983",
- "Track & Field (Centuri)\0", NULL, "Konami (Centuri license)", "Miscellaneous",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_MISC_PRE90S, GBF_SPORTSMISC, 0,
- NULL, trackfldcRomInfo, trackfldcRomName, NULL, NULL, TrackfldInputInfo, TrackfldDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x200,
- 256, 224, 4, 3
-};
-
-
-// Hyper Olympic
-
-static struct BurnRomInfo hyprolymRomDesc[] = {
- { "361-d01.a01", 0x2000, 0x82257fb7, 1 | BRF_PRG | BRF_ESS }, // 0 maincpu
- { "361-d02.a02", 0x2000, 0x15b83099, 1 | BRF_PRG | BRF_ESS }, // 1
- { "361-d03.a03", 0x2000, 0xe54cc960, 1 | BRF_PRG | BRF_ESS }, // 2
- { "361-d04.a04", 0x2000, 0xd099b1e8, 1 | BRF_PRG | BRF_ESS }, // 3
- { "361-d05.a05", 0x2000, 0x974ff815, 1 | BRF_PRG | BRF_ESS }, // 4
-
- { "c2_d13.bin", 0x2000, 0x95bf79b6, 2 | BRF_PRG | BRF_ESS }, // 5 audiocpu
-
- { "c11_d06.bin", 0x2000, 0x82e2185a, 3 | BRF_GRA }, // 6 gfx1
- { "c12_d07.bin", 0x2000, 0x800ff1f1, 3 | BRF_GRA }, // 7
- { "c13_d08.bin", 0x2000, 0xd9faf183, 3 | BRF_GRA }, // 8
- { "c14_d09.bin", 0x2000, 0x5886c802, 3 | BRF_GRA }, // 9
-
- { "361-d12.h16", 0x2000, 0x768bb63d, 4 | BRF_GRA }, // 10 gfx2
- { "361-d11.h15", 0x2000, 0x3af0e2a8, 4 | BRF_GRA }, // 11
- { "h14_e10.bin", 0x2000, 0xc2166a5c, 4 | BRF_GRA }, // 12
-
- { "361b16.f1", 0x0020, 0xd55f30b5, 5 | BRF_GRA }, // 13 proms
- { "361b17.b16", 0x0100, 0xd2ba4d32, 5 | BRF_GRA }, // 14
- { "361b18.e15", 0x0100, 0x053e5861, 5 | BRF_GRA }, // 15
-
- { "c9_d15.bin", 0x2000, 0xf546a56b, 6 | BRF_GRA }, // 16 vlm
-};
-
-STD_ROM_PICK(hyprolym)
-STD_ROM_FN(hyprolym)
-
-struct BurnDriver BurnDrvHyprolym = {
- "hyprolym", "trackfld", NULL, NULL, "1983",
- "Hyper Olympic\0", NULL, "Konami", "Miscellaneous",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_MISC_PRE90S, GBF_SPORTSMISC, 0,
- NULL, hyprolymRomInfo, hyprolymRomName, NULL, NULL, TrackfldInputInfo, TrackfldDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x200,
- 256, 224, 4, 3
-};
-
-
-// Track & Field (NZ bootleg?)
-
-static struct BurnRomInfo trackfldnzRomDesc[] = {
- { "gold.7a", 0x2000, 0x77ea4509, 1 | BRF_PRG | BRF_ESS }, // 0 maincpu
- { "gold.6a", 0x2000, 0xa13f3131, 1 | BRF_PRG | BRF_ESS }, // 1
- { "gold.5a", 0x2000, 0xb0abe171, 1 | BRF_PRG | BRF_ESS }, // 2
- { "gold.4a", 0x2000, 0xfee9b922, 1 | BRF_PRG | BRF_ESS }, // 3
- { "gold.2a", 0x2000, 0xad6dc048, 1 | BRF_PRG | BRF_ESS }, // 4
-
- { "gold.2d", 0x2000, 0x95bf79b6, 2 | BRF_PRG | BRF_ESS }, // 5 audiocpu
-
- { "gold.20a", 0x2000, 0x82e2185a, 3 | BRF_GRA }, // 6 gfx1
- { "gold.21a", 0x2000, 0x800ff1f1, 3 | BRF_GRA }, // 7
- { "gold.17a", 0x2000, 0xd9faf183, 3 | BRF_GRA }, // 8
- { "gold.19a", 0x2000, 0x5886c802, 3 | BRF_GRA }, // 9
-
- { "gold.2k", 0x2000, 0x50075768, 4 | BRF_GRA }, // 10 gfx2
- { "gold.4k", 0x2000, 0xdda9e29f, 4 | BRF_GRA }, // 11
- { "gold.5k", 0x2000, 0xc2166a5c, 4 | BRF_GRA }, // 12
-
- { "gold.2g", 0x0020, 0xd55f30b5, 5 | BRF_GRA }, // 13 proms
- { "gold.18d", 0x0100, 0xd2ba4d32, 5 | BRF_GRA }, // 14
- { "gold.4j", 0x0100, 0x053e5861, 5 | BRF_GRA }, // 15
-
- { "gold.d9", 0x2000, 0xf546a56b, 6 | BRF_GRA }, // 16 vlm
-};
-
-STD_ROM_PICK(trackfldnz)
-STD_ROM_FN(trackfldnz)
-
-struct BurnDriver BurnDrvTrackfldnz = {
- "trackfldnz", "trackfld", NULL, NULL, "1982",
- "Track & Field (NZ bootleg?)\0", NULL, "bootleg? (Goldberg Enterprizes Inc.)", "Miscellaneous",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_MISC_PRE90S, GBF_SPORTSMISC, 0,
- NULL, trackfldnzRomInfo, trackfldnzRomName, NULL, NULL, TrackfldInputInfo, TrackfldDIPInfo,
- TrackfldnzInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x200,
- 256, 224, 4, 3
-};
-
-
-// Hyper Olympic (bootleg, set 1)
-
-static struct BurnRomInfo hyprolymbRomDesc[] = {
- { "blue.a1", 0x2000, 0x82257fb7, 1 | BRF_PRG | BRF_ESS }, // 0 maincpu
- { "2.a2", 0x2000, 0x15b83099, 1 | BRF_PRG | BRF_ESS }, // 1
- { "3.a4", 0x2000, 0x2d6fc308, 1 | BRF_PRG | BRF_ESS }, // 2
- { "4.a5", 0x2000, 0xd099b1e8, 1 | BRF_PRG | BRF_ESS }, // 3
- { "5.a7", 0x2000, 0x974ff815, 1 | BRF_PRG | BRF_ESS }, // 4
-
- { "c2_d13.bin", 0x2000, 0x95bf79b6, 2 | BRF_PRG | BRF_ESS }, // 5 audiocpu
-
- { "2764.1", 0x2000, 0xa4cddeb8, 3 | BRF_SND }, // 6 adpcm
- { "2764.2", 0x2000, 0xe9919365, 3 | BRF_SND }, // 7
- { "2764.3", 0x2000, 0xc3ec42e1, 3 | BRF_SND }, // 8
- { "2764.4", 0x2000, 0x76998389, 3 | BRF_SND }, // 9
-
- { "6.a18", 0x2000, 0x82e2185a, 4 | BRF_GRA }, // 10 gfx1
- { "7.a19", 0x2000, 0x800ff1f1, 4 | BRF_GRA }, // 11
- { "8.a21", 0x2000, 0xd9faf183, 4 | BRF_GRA }, // 12
- { "9.a22", 0x2000, 0x5886c802, 4 | BRF_GRA }, // 13
-
- { "12.h22", 0x2000, 0x768bb63d, 5 | BRF_GRA }, // 14 gfx2
- { "11.h21", 0x2000, 0x3af0e2a8, 5 | BRF_GRA }, // 15
- { "10.h19", 0x2000, 0xc2166a5c, 5 | BRF_GRA }, // 16
-
- { "361b16.e1", 0x0020, 0xd55f30b5, 6 | BRF_GRA }, // 17 proms
- { "361b17.b15", 0x0100, 0xd2ba4d32, 6 | BRF_GRA }, // 18
- { "361b18.f22", 0x0100, 0x053e5861, 6 | BRF_GRA }, // 19
-
- { "pal16l8.e4", 0x0104, 0x641efc84, 7 | BRF_OPT }, // 20 plds
- { "pal16l8.e6", 0x0104, 0x122f23e6, 7 | BRF_OPT }, // 21
-};
-
-STD_ROM_PICK(hyprolymb)
-STD_ROM_FN(hyprolymb)
-
-static INT32 bootInit()
-{
- return 1;
-}
-
-struct BurnDriver BurnDrvHyprolymb = {
- "hyprolymb", "trackfld", NULL, NULL, "1983",
- "Hyper Olympic (bootleg, set 1)\0", NULL, "bootleg", "Miscellaneous",
- NULL, NULL, NULL, NULL,
- 0 | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_MISC_PRE90S, GBF_SPORTSMISC, 0,
- NULL, hyprolymbRomInfo, hyprolymbRomName, NULL, NULL, TrackfldInputInfo, TrackfldDIPInfo,
- bootInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x200,
- 256, 224, 4, 3
-};
-
-
-// Hyper Olympic (bootleg, set 2)
-
-static struct BurnRomInfo hyprolymbaRomDesc[] = {
- { "1.a1", 0x2000, 0x9aee2d5a, 1 | BRF_PRG | BRF_ESS }, // 0 maincpu
- { "2.a2", 0x2000, 0x15b83099, 1 | BRF_PRG | BRF_ESS }, // 1
- { "3.a4", 0x2000, 0x2d6fc308, 1 | BRF_PRG | BRF_ESS }, // 2
- { "4.a5", 0x2000, 0xd099b1e8, 1 | BRF_PRG | BRF_ESS }, // 3
- { "5.a7", 0x2000, 0x974ff815, 1 | BRF_PRG | BRF_ESS }, // 4
-
- { "c2_d13.bin", 0x2000, 0x95bf79b6, 2 | BRF_PRG | BRF_ESS }, // 5 audiocpu
-
- { "2764.1", 0x2000, 0xa4cddeb8, 3 | BRF_SND }, // 6 adpcm
- { "2764.2", 0x2000, 0xe9919365, 3 | BRF_SND }, // 7
- { "2764.3", 0x2000, 0xc3ec42e1, 3 | BRF_SND }, // 8
- { "2764.4", 0x2000, 0x76998389, 3 | BRF_SND }, // 9
-
- { "6.a18", 0x2000, 0x82e2185a, 4 | BRF_GRA }, // 10 gfx1
- { "7.a19", 0x2000, 0x800ff1f1, 4 | BRF_GRA }, // 11
- { "8.a21", 0x2000, 0xd9faf183, 4 | BRF_GRA }, // 12
- { "9.a22", 0x2000, 0x5886c802, 4 | BRF_GRA }, // 13
-
- { "12.h22", 0x2000, 0x768bb63d, 5 | BRF_GRA }, // 14 gfx2
- { "11.h21", 0x2000, 0x3af0e2a8, 5 | BRF_GRA }, // 15
- { "10.h19", 0x2000, 0xc2166a5c, 5 | BRF_GRA }, // 16
-
- { "361b16.e1", 0x0020, 0xd55f30b5, 6 | BRF_GRA }, // 17 proms
- { "361b17.b15", 0x0100, 0xd2ba4d32, 6 | BRF_GRA }, // 18
- { "361b18.f22", 0x0100, 0x053e5861, 6 | BRF_GRA }, // 19
-
- { "pal16l8.e4", 0x0104, 0x641efc84, 7 | BRF_OPT }, // 20 plds
- { "pal16l8.e6", 0x0104, 0x122f23e6, 7 | BRF_OPT }, // 21
-};
-
-STD_ROM_PICK(hyprolymba)
-STD_ROM_FN(hyprolymba)
-
-struct BurnDriver BurnDrvHyprolymba = {
- "hyprolymba", "trackfld", NULL, NULL, "1983",
- "Hyper Olympic (bootleg, set 2)\0", NULL, "bootleg", "Miscellaneous",
- NULL, NULL, NULL, NULL,
- 0 | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_MISC_PRE90S, GBF_SPORTSMISC, 0,
- NULL, hyprolymbaRomInfo, hyprolymbaRomName, NULL, NULL, TrackfldInputInfo, TrackfldDIPInfo,
- bootInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x200,
- 256, 224, 4, 3
-};
-
-
-// Hipoly (bootleg of Hyper Olympic)
-
-static struct BurnRomInfo hipolyRomDesc[] = {
- { "2.1a", 0x2000, 0x82257fb7, 1 | BRF_PRG | BRF_ESS }, // 0 maincpu
- { "2.2a", 0x2000, 0x15b83099, 1 | BRF_PRG | BRF_ESS }, // 1
- { "2.4a", 0x2000, 0x93a32a97, 1 | BRF_PRG | BRF_ESS }, // 2
- { "2.5a", 0x2000, 0xd099b1e8, 1 | BRF_PRG | BRF_ESS }, // 3
- { "2.7a", 0x2000, 0x974ff815, 1 | BRF_PRG | BRF_ESS }, // 4
-
- { "1.2c", 0x2000, 0x95bf79b6, 2 | BRF_PRG | BRF_ESS }, // 5 audiocpu
-
- { "1.11d", 0x2000, 0x102d3a78, 3 | BRF_SND }, // 6 adpcm
- { "1.10d", 0x2000, 0xe9919365, 3 | BRF_SND }, // 7
- { "1.11c", 0x2000, 0xc3ec42e1, 3 | BRF_SND }, // 8
- { "1.10c", 0x2000, 0x76998389, 3 | BRF_SND }, // 9
-
- { "2.18a", 0x2000, 0x8d28864f, 4 | BRF_GRA }, // 10 gfx1
- { "2.19a", 0x2000, 0x800ff1f1, 4 | BRF_GRA }, // 11
- { "2.21a", 0x2000, 0xd9faf183, 4 | BRF_GRA }, // 12
- { "2.22a", 0x2000, 0x5886c802, 4 | BRF_GRA }, // 13
-
- { "2.22h", 0x2000, 0x6c107a9c, 5 | BRF_GRA }, // 14 gfx2
- { "2.21h", 0x2000, 0x21847e56, 5 | BRF_GRA }, // 15
- { "2.19h", 0x2000, 0xc2166a5c, 5 | BRF_GRA }, // 16
-
- { "361b16.e1", 0x0020, 0xd55f30b5, 6 | BRF_GRA }, // 17 proms
- { "361b17.b15", 0x0100, 0xd2ba4d32, 6 | BRF_GRA }, // 18
- { "361b18.f22", 0x0100, 0x053e5861, 6 | BRF_GRA }, // 19
-
- { "pal16l8.e4", 0x0104, 0x00000000, 7 | BRF_NODUMP | BRF_OPT }, // 20 plds
- { "pal16l8.e6", 0x0104, 0x00000000, 7 | BRF_NODUMP | BRF_OPT }, // 21
-};
-
-STD_ROM_PICK(hipoly)
-STD_ROM_FN(hipoly)
-
-struct BurnDriver BurnDrvHipoly = {
- "hipoly", "trackfld", NULL, NULL, "1983",
- "Hipoly (bootleg of Hyper Olympic)\0", NULL, "bootleg", "Miscellaneous",
- NULL, NULL, NULL, NULL,
- BDF_CLONE, 2, HARDWARE_MISC_PRE90S, GBF_SPORTSMISC, 0,
- NULL, hipolyRomInfo, hipolyRomName, NULL, NULL, TrackfldInputInfo, TrackfldDIPInfo,
- bootInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x200,
- 256, 224, 4, 3
-};
-
-
-// Atlant Olimpic
-
-static struct BurnRomInfo atlantolRomDesc[] = {
- { "atl37", 0x20000, 0xaca8da51, 1 | BRF_PRG | BRF_ESS }, // 0 maincpu
-
- { "atl35", 0x20000, 0x03331597, 2 | BRF_PRG | BRF_ESS }, // 1 audiocpu
-
- { "atl36", 0x20000, 0x0bae8489, 3 | BRF_SND }, // 2 adpcm
-
- { "atl38", 0x20000, 0xdbbcbcda, 4 | BRF_GRA }, // 3 gfx1
- { "atl39", 0x20000, 0xd08f067f, 4 | BRF_GRA }, // 4
-
- { "atl40", 0x20000, 0xc915f53a, 5 | BRF_GRA }, // 5 gfx2
-
- { "361b16.f1", 0x00020, 0xd55f30b5, 6 | BRF_GRA }, // 6 proms
- { "361b17.b16", 0x00100, 0xd2ba4d32, 6 | BRF_GRA }, // 7
- { "361b18.e15", 0x00100, 0x053e5861, 6 | BRF_GRA }, // 8
-};
-
-STD_ROM_PICK(atlantol)
-STD_ROM_FN(atlantol)
-
-struct BurnDriver BurnDrvAtlantol = {
- "atlantol", "trackfld", NULL, NULL, "1996",
- "Atlant Olimpic\0", NULL, "bootleg", "Miscellaneous",
- NULL, NULL, NULL, NULL,
- 0 | BDF_CLONE, 2, HARDWARE_MISC_POST90S, GBF_SPORTSMISC, 0,
- NULL, atlantolRomInfo, atlantolRomName, NULL, NULL, TrackfldInputInfo, TrackfldDIPInfo, //AtlantolInputInfo, AtlantolDIPInfo,
- bootInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0,
- 256, 224, 4, 3
-};
-
-
-// Yie Ar Kung-Fu (GX361 conversion)
-
-static struct BurnRomInfo yieartfRomDesc[] = {
- { "2.2a", 0x2000, 0x349430e9, 1 | BRF_PRG | BRF_ESS }, // 0 maincpu
- { "3.3a", 0x2000, 0x17d8337b, 1 | BRF_PRG | BRF_ESS }, // 1
- { "4.4a", 0x2000, 0xa89a2166, 1 | BRF_PRG | BRF_ESS }, // 2
- { "5.5a", 0x2000, 0xff1599eb, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "a.15c", 0x4000, 0x45109b29, 2 | BRF_GRA }, // 4 gfx1
- { "b.16c", 0x4000, 0x1d650790, 2 | BRF_GRA }, // 5
- { "c.17c", 0x4000, 0xe6aa945b, 2 | BRF_GRA }, // 6
- { "d.18c", 0x4000, 0xcc187c22, 2 | BRF_GRA }, // 7
-
- { "6.16h", 0x2000, 0x05a23af3, 3 | BRF_GRA }, // 8 gfx2
- { "7.15h", 0x2000, 0x988154fa, 3 | BRF_GRA }, // 9
-
- { "yiear.clr", 0x0020, 0xc283d71f, 4 | BRF_GRA }, // 10 proms
- { "prom1.b16", 0x0100, 0x93dc32a0, 4 | BRF_GRA }, // 11
- { "prom2.e15", 0x0100, 0xe7e0f9e5, 4 | BRF_GRA }, // 12
-
- { "01.snd", 0x2000, 0xf75a1539, 5 | BRF_GRA }, // 13 vlm
-};
-
-STD_ROM_PICK(yieartf)
-STD_ROM_FN(yieartf)
-
-struct BurnDriver BurnDrvYieartf = {
- "yieartf", "yiear", NULL, NULL, "1985",
- "Yie Ar Kung-Fu (GX361 conversion)\0", NULL, "Konami", "Miscellaneous",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_KONAMI, GBF_VSFIGHT, 0,
- NULL, yieartfRomInfo, yieartfRomName, NULL, NULL, YieartfInputInfo, YieartfDIPInfo,
- YieartfInit, DrvExit, YieartfFrame, DrvDraw, DrvScan, &DrvRecalc, 0x200,
- 256, 224, 4, 3
-};
-
-
-// Reaktor (Track & Field conversion)
-
-static struct BurnRomInfo reaktorRomDesc[] = {
- { "prog3.bin", 0x8000, 0x8ba956fa, 1 | BRF_PRG | BRF_ESS }, // 0 maincpu
-
- { "2c.bin", 0x4000, 0x105a8beb, 2 | BRF_PRG | BRF_ESS }, // 1 audiocpu
-
- { "11c.bin", 0x4000, 0xd24553fa, 3 | BRF_GRA }, // 2 gfx1
- { "14c.bin", 0x4000, 0x4d0ab831, 3 | BRF_GRA }, // 3
- { "12c.bin", 0x2000, 0xd0d39e66, 3 | BRF_GRA }, // 4
- { "15c.bin", 0x4000, 0xbf1e608d, 3 | BRF_GRA }, // 5
-
- { "16h.bin", 0x4000, 0xcb062c3b, 4 | BRF_GRA }, // 6 gfx2
- { "15h.bin", 0x4000, 0xdf83e659, 4 | BRF_GRA }, // 7
- { "14h.bin", 0x4000, 0x5ca53215, 4 | BRF_GRA }, // 8
-
- { "361b16.f1", 0x0020, 0xd55f30b5, 5 | BRF_GRA }, // 9 proms
- { "361b17.b16", 0x0100, 0xd2ba4d32, 5 | BRF_GRA }, // 10
- { "361b18.e15", 0x0100, 0x053e5861, 5 | BRF_GRA }, // 11
-
- { "c9_d15.bin", 0x2000, 0xf546a56b, 6 | BRF_GRA }, // 12 vlm
-};
-
-STD_ROM_PICK(reaktor)
-STD_ROM_FN(reaktor)
-
-struct BurnDriver BurnDrvReaktor = {
- "reaktor", NULL, NULL, NULL, "1987",
- "Reaktor (Track & Field conversion)\0", NULL, "Zilec", "Miscellaneous",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED, 2, HARDWARE_MISC_PRE90S, GBF_BREAKOUT, 0,
- NULL, reaktorRomInfo, reaktorRomName, NULL, NULL, ReaktorInputInfo, ReaktorDIPInfo,
- ReaktorInit, DrvExit, ReaktorFrame, DrvDraw, DrvScan, &DrvRecalc, 0x200,
- 224, 256, 3, 4
-};
-
-
-// Wizz Quiz (Konami version)
-
-static struct BurnRomInfo wizzquizRomDesc[] = {
- { "pros.rom", 0x2000, 0x4c858841, 1 | BRF_PRG | BRF_ESS }, // 0 maincpu
-
- { "sn1.rom", 0x8000, 0x0ae28676, 2 | BRF_GRA }, // 1 user1
- { "sn2.rom", 0x8000, 0xf2b7374a, 2 | BRF_GRA }, // 2
- { "tvmov1.rom", 0x8000, 0x921f551d, 2 | BRF_GRA }, // 3
- { "tvmov2.rom", 0x8000, 0x1ed44df6, 2 | BRF_GRA }, // 4
- { "sport1.rom", 0x8000, 0x3b7f2ce4, 2 | BRF_GRA }, // 5
- { "sport2.rom", 0x8000, 0x14dbfa23, 2 | BRF_GRA }, // 6
- { "pop1.rom", 0x8000, 0x61f60def, 2 | BRF_GRA }, // 7
- { "pop2.rom", 0x8000, 0x5a5b41cd, 2 | BRF_GRA }, // 8
-
- { "zandz.2c", 0x2000, 0x3daca93a, 3 | BRF_PRG | BRF_ESS }, // 9 audiocpu
-
- { "rom.11c", 0x2000, 0x87d060d4, 4 | BRF_GRA }, // 10 gfx1
- { "rom.14c", 0x2000, 0x5bff1607, 4 | BRF_GRA }, // 11
-
- { "rom.16h", 0x2000, 0xe6728bda, 5 | BRF_GRA }, // 12 gfx2
- { "rom.15h", 0x2000, 0x9c067ef4, 5 | BRF_GRA }, // 13
- { "rom.14h", 0x2000, 0x3bbad920, 5 | BRF_GRA }, // 14
-
- { "361b16.f1", 0x0020, 0xd55f30b5, 6 | BRF_GRA }, // 15 proms
- { "361b17.b16", 0x0100, 0xd2ba4d32, 6 | BRF_GRA }, // 16
- { "361b18.e15", 0x0100, 0x053e5861, 6 | BRF_GRA }, // 17
-};
-
-STD_ROM_PICK(wizzquiz)
-STD_ROM_FN(wizzquiz)
-
-struct BurnDriver BurnDrvWizzquiz = {
- "wizzquiz", NULL, NULL, NULL, "1985",
- "Wizz Quiz (Konami version)\0", NULL, "Zilec-Zenitone (Konami license)", "Miscellaneous",
- NULL, NULL, NULL, NULL,
- 0, 2, HARDWARE_MISC_PRE90S, GBF_QUIZ, 0,
- NULL, wizzquizRomInfo, wizzquizRomName, NULL, NULL, WizzquizInputInfo, WizzquizDIPInfo,
- WizzquizInit, DrvExit, WizzquizFrame, DrvDraw, DrvScan, &DrvRecalc, 0x200,
- 256, 256, 4, 3
-};
-
-
-// Wizz Quiz (version 4)
-
-static struct BurnRomInfo wizzquizaRomDesc[] = {
- { "ic9_a1.bin", 0x2000, 0x608e1ff3, 1 | BRF_PRG | BRF_ESS }, // 0 maincpu
-
- { "ic1_q06.bin", 0x8000, 0xc62f25b1, 2 | BRF_GRA }, // 1 user1
- { "ic2_q28.bin", 0x8000, 0x2bd00476, 2 | BRF_GRA }, // 2
- { "ic3_q27.bin", 0x8000, 0x46d28aaf, 2 | BRF_GRA }, // 3
- { "ic4_q23.bin", 0x8000, 0x3f46f702, 2 | BRF_GRA }, // 4
- { "ic5_q26.bin", 0x8000, 0x9d130515, 2 | BRF_GRA }, // 5
- { "ic6_q09.bin", 0x8000, 0x636f89b4, 2 | BRF_GRA }, // 6
- { "ic7_q15.bin", 0x8000, 0xb35332b1, 2 | BRF_GRA }, // 7
- { "ic8_q19.bin", 0x8000, 0x8d152da0, 2 | BRF_GRA }, // 8
-
- { "02c.bin", 0x2000, 0x3daca93a, 3 | BRF_PRG | BRF_ESS }, // 9 audiocpu
-
- { "11c.bin", 0x2000, 0x87d060d4, 4 | BRF_GRA }, // 10 gfx1
- { "14c.bin", 0x2000, 0x5bff1607, 4 | BRF_GRA }, // 11
-
- { "16h.bin", 0x2000, 0xe6728bda, 5 | BRF_GRA }, // 12 gfx2
- { "15h.bin", 0x2000, 0x9c067ef4, 5 | BRF_GRA }, // 13
- { "14h.bin", 0x2000, 0x3bbad920, 5 | BRF_GRA }, // 14
-
- { "361b16.f1", 0x0020, 0xd55f30b5, 6 | BRF_GRA }, // 15 proms
- { "361b17.b16", 0x0100, 0xd2ba4d32, 6 | BRF_GRA }, // 16
- { "361b18.e15", 0x0100, 0x053e5861, 6 | BRF_GRA }, // 17
-};
-
-STD_ROM_PICK(wizzquiza)
-STD_ROM_FN(wizzquiza)
-
-struct BurnDriver BurnDrvWizzquiza = {
- "wizzquiza", "wizzquiz", NULL, NULL, "1985",
- "Wizz Quiz (version 4)\0", NULL, "Zilec-Zenitone", "Miscellaneous",
- NULL, NULL, NULL, NULL,
- 0 | BDF_CLONE, 2, HARDWARE_MISC_PRE90S, GBF_QUIZ, 0,
- NULL, wizzquizaRomInfo, wizzquizaRomName, NULL, NULL, WizzquizInputInfo, WizzquizDIPInfo,
- WizzquizInit, DrvExit, WizzquizFrame, DrvDraw, DrvScan, &DrvRecalc, 0x200,
- 256, 256, 4, 3
-};
-
-
-// The Masters of Kin
-
-static struct BurnRomInfo mastkinRomDesc[] = {
- { "mk3", 0x2000, 0x9f80d6ae, 1 | BRF_PRG | BRF_ESS }, // 0 maincpu
- { "mk4", 0x2000, 0x99f361e7, 1 | BRF_PRG | BRF_ESS }, // 1
- { "mk5", 0x2000, 0x143d76ce, 1 | BRF_PRG | BRF_ESS }, // 2
-
- { "mk1", 0x2000, 0x95bf79b6, 2 | BRF_PRG | BRF_ESS }, // 3 audiocpu
-
- { "mk6", 0x2000, 0x18fbe047, 3 | BRF_GRA }, // 4 gfx1
- { "mk7", 0x2000, 0x47dee791, 3 | BRF_GRA }, // 5
- { "mk8", 0x2000, 0x9c091ead, 3 | BRF_GRA }, // 6
- { "mk9", 0x2000, 0x5c8ed3fe, 3 | BRF_GRA }, // 7
-
- { "mk12", 0x2000, 0x8b1a19cf, 4 | BRF_GRA }, // 8 gfx2
- { "mk11", 0x2000, 0x1a56d24d, 4 | BRF_GRA }, // 9
- { "mk10", 0x2000, 0xe7d05634, 4 | BRF_GRA }, // 10
-
- { "prom.1", 0x0020, 0x00000000, 5 | BRF_NODUMP | BRF_GRA }, // 11 proms
- { "prom.3", 0x0100, 0x00000000, 5 | BRF_NODUMP | BRF_GRA }, // 12
- { "prom.2", 0x0100, 0x00000000, 5 | BRF_NODUMP | BRF_GRA }, // 13
-
- { "mk2", 0x2000, 0xf546a56b, 6 | BRF_GRA }, // 14 vlm
-};
-
-STD_ROM_PICK(mastkin)
-STD_ROM_FN(mastkin)
-
-struct BurnDriver BurnDrvMastkin = {
- "mastkin", NULL, NULL, NULL, "1988",
- "The Masters of Kin\0", "Colors are wrong", "Du Tech", "Miscellaneous",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_MISC_PRE90S, GBF_SCRFIGHT, 0,
- NULL, mastkinRomInfo, mastkinRomName, NULL, NULL, MastkinInputInfo, MastkinDIPInfo,
- MastkinInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x200,
- 256, 224, 4, 3
-};
diff --git a/jan/src/burn/drv/konami/d_tutankhm.cpp b/jan/src/burn/drv/konami/d_tutankhm.cpp
deleted file mode 100644
index 9ca0ddfea..000000000
--- a/jan/src/burn/drv/konami/d_tutankhm.cpp
+++ /dev/null
@@ -1,580 +0,0 @@
-// FB Alpha Tutankham driver module
-// Based on MAME driver by Mirko Buffoni & Rob Jarrett
-
-#include "tiles_generic.h"
-#include "m6809_intf.h"
-#include "z80_intf.h"
-#include "timeplt_snd.h"
-
-static UINT8 *AllMem;
-static UINT8 *MemEnd;
-static UINT8 *AllRam;
-static UINT8 *RamEnd;
-static UINT8 *DrvM6809ROM;
-static UINT8 *DrvZ80ROM;
-static UINT8 *DrvVidRAM;
-static UINT8 *DrvM6809RAM;
-static UINT8 *DrvZ80RAM;
-static UINT8 *DrvPalRAM;
-
-static INT16 *pAY8910Buffer[6];
-
-static UINT32 *DrvPalette;
-static UINT8 DrvRecalc;
-
-static UINT8 scrolldata;
-static UINT8 sound_mute;
-static UINT8 irq_enable;
-static UINT8 flipscreenx;
-static UINT8 flipscreeny;
-static UINT8 nRomBank;
-
-static UINT8 DrvJoy1[8];
-static UINT8 DrvJoy2[8];
-static UINT8 DrvJoy3[8];
-static UINT8 DrvDips[2];
-static UINT8 DrvInputs[3];
-static UINT8 DrvReset;
-
-static INT32 watchdog;
-
-static struct BurnInputInfo TutankhmInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy1 + 0, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 3, "p1 start" },
- {"P1 Left Stick Up", BIT_DIGITAL, DrvJoy2 + 2, "p1 up" },
- {"P1 Left Stick Down", BIT_DIGITAL, DrvJoy2 + 3, "p1 down" },
- {"P1 Left Stick Left", BIT_DIGITAL, DrvJoy2 + 0, "p1 left" },
- {"P1 Left Stick Right", BIT_DIGITAL, DrvJoy2 + 1, "p1 right" },
- {"P1 Right Stick Left", BIT_DIGITAL, DrvJoy2 + 4, "p3 left" },
- {"P1 Right Stick Right",BIT_DIGITAL, DrvJoy2 + 5, "p3 right" },
- {"P1 Flash Bomb", BIT_DIGITAL, DrvJoy2 + 6, "p1 fire 1" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy1 + 1, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy1 + 4, "p2 start" },
- {"P2 Left Stick Up", BIT_DIGITAL, DrvJoy3 + 2, "p2 up" },
- {"P2 Left Stick Down", BIT_DIGITAL, DrvJoy3 + 3, "p2 down" },
- {"P2 Left Stick Left", BIT_DIGITAL, DrvJoy3 + 0, "p2 left" },
- {"P2 Left Stick Right", BIT_DIGITAL, DrvJoy3 + 1, "p2 right" },
- {"P2 Right Stick Left", BIT_DIGITAL, DrvJoy3 + 4, "p4 left" },
- {"P2 Right Stick Right",BIT_DIGITAL, DrvJoy3 + 5, "p4 right" },
- {"P2 Flash Bomb", BIT_DIGITAL, DrvJoy3 + 6, "p2 fire 1" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service", BIT_DIGITAL, DrvJoy1 + 2, "service" },
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip" },
-};
-
-STDINPUTINFO(Tutankhm)
-
-static struct BurnDIPInfo TutankhmDIPList[]=
-{
- {0x14, 0xff, 0xff, 0x6b, NULL },
- {0x15, 0xff, 0xff, 0xff, NULL },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x14, 0x01, 0x03, 0x03, "3" },
- {0x14, 0x01, 0x03, 0x01, "4" },
- {0x14, 0x01, 0x03, 0x02, "5" },
- {0x14, 0x01, 0x03, 0x00, "255 (Cheat)" },
-
- {0 , 0xfe, 0 , 2, "Cabinet" },
- {0x14, 0x01, 0x04, 0x00, "Upright" },
- {0x14, 0x01, 0x04, 0x04, "Cocktail" },
-
- {0 , 0xfe, 0 , 2, "Bonus Life" },
- {0x14, 0x01, 0x08, 0x08, "30000" },
- {0x14, 0x01, 0x08, 0x00, "40000" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x14, 0x01, 0x30, 0x30, "Easy" },
- {0x14, 0x01, 0x30, 0x20, "Normal" },
- {0x14, 0x01, 0x30, 0x10, "Hard" },
- {0x14, 0x01, 0x30, 0x00, "Hardest" },
-
- {0 , 0xfe, 0 , 2, "Flash Bomb" },
- {0x14, 0x01, 0x40, 0x40, "1 per Life" },
- {0x14, 0x01, 0x40, 0x00, "1 per Game" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x14, 0x01, 0x80, 0x80, "Off" },
- {0x14, 0x01, 0x80, 0x00, "On" },
-
- {0 , 0xfe, 0 , 16, "Coin A" },
- {0x15, 0x01, 0x0f, 0x02, "4 Coins 1 Credits" },
- {0x15, 0x01, 0x0f, 0x05, "3 Coins 1 Credits" },
- {0x15, 0x01, 0x0f, 0x08, "2 Coins 1 Credits" },
- {0x15, 0x01, 0x0f, 0x04, "3 Coins 2 Credits" },
- {0x15, 0x01, 0x0f, 0x01, "4 Coins 3 Credits" },
- {0x15, 0x01, 0x0f, 0x0f, "1 Coin 1 Credits" },
- {0x15, 0x01, 0x0f, 0x03, "3 Coins 4 Credits" },
- {0x15, 0x01, 0x0f, 0x07, "2 Coins 3 Credits" },
- {0x15, 0x01, 0x0f, 0x0e, "1 Coin 2 Credits" },
- {0x15, 0x01, 0x0f, 0x06, "2 Coins 5 Credits" },
- {0x15, 0x01, 0x0f, 0x0d, "1 Coin 3 Credits" },
- {0x15, 0x01, 0x0f, 0x0c, "1 Coin 4 Credits" },
- {0x15, 0x01, 0x0f, 0x0b, "1 Coin 5 Credits" },
- {0x15, 0x01, 0x0f, 0x0a, "1 Coin 6 Credits" },
- {0x15, 0x01, 0x0f, 0x09, "1 Coin 7 Credits" },
- {0x15, 0x01, 0x0f, 0x00, "Free Play" },
-
- {0 , 0xfe, 0 , 16, "Coin B" },
- {0x15, 0x01, 0xf0, 0x20, "4 Coins 1 Credits" },
- {0x15, 0x01, 0xf0, 0x50, "3 Coins 1 Credits" },
- {0x15, 0x01, 0xf0, 0x80, "2 Coins 1 Credits" },
- {0x15, 0x01, 0xf0, 0x40, "3 Coins 2 Credits" },
- {0x15, 0x01, 0xf0, 0x10, "4 Coins 3 Credits" },
- {0x15, 0x01, 0xf0, 0xf0, "1 Coin 1 Credits" },
- {0x15, 0x01, 0xf0, 0x30, "3 Coins 4 Credits" },
- {0x15, 0x01, 0xf0, 0x70, "2 Coins 3 Credits" },
- {0x15, 0x01, 0xf0, 0xe0, "1 Coin 2 Credits" },
- {0x15, 0x01, 0xf0, 0x60, "2 Coins 5 Credits" },
- {0x15, 0x01, 0xf0, 0xd0, "1 Coin 3 Credits" },
- {0x15, 0x01, 0xf0, 0xc0, "1 Coin 4 Credits" },
- {0x15, 0x01, 0xf0, 0xb0, "1 Coin 5 Credits" },
- {0x15, 0x01, 0xf0, 0xa0, "1 Coin 6 Credits" },
- {0x15, 0x01, 0xf0, 0x90, "1 Coin 7 Credits" },
- {0x15, 0x01, 0xf0, 0x00, "No Coin B" },
-};
-
-STDDIPINFO(Tutankhm)
-
-static void bankswitch(INT32 data)
-{
- nRomBank = data;
-
- INT32 bank = 0x10000 + (data & 0x0f) * 0x1000;
-
- M6809MapMemory(DrvM6809ROM + bank, 0x9000, 0x9fff, MAP_ROM);
-}
-
-static void tutankhm_write(UINT16 address, UINT8 data)
-{
- if ((address & 0xfff0) == 0x8000) {
- DrvPalRAM[address & 0x0f] = data;
- return;
- }
-
- switch (address)
- {
- case 0x8100:
- scrolldata = data;
- return;
-
- case 0x8200:
- irq_enable = data & 1;
- if (!irq_enable) {
- M6809SetIRQLine(0, CPU_IRQSTATUS_NONE);
- }
- return;
-
- case 0x8202:
- // coin counter
- return;
-
- case 0x8204:
- return;
-
- case 0x8205:
- sound_mute = data & 1;
- return;
-
- case 0x8206:
- flipscreenx = data & 1;
- return;
-
- case 0x8207:
- flipscreeny = data & 1;
- return;
-
- case 0x8300:
- bankswitch(data);
- return;
-
- case 0x8600:
- ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
- return;
-
- case 0x8700:
- TimepltSndSoundlatch(data);
- return;
- }
-}
-
-static UINT8 tutankhm_read(UINT16 address)
-{
- switch (address)
- {
- case 0x8120:
- watchdog = 0;
- return 0;
-
- case 0x8160:
- return DrvDips[1];
-
- case 0x8180:
- return DrvInputs[0];
-
- case 0x81a0:
- return DrvInputs[1];
-
- case 0x81c0:
- return DrvInputs[2];
-
- case 0x81e0:
- return DrvDips[0];
-
- case 0x8200:
- return 0;
- }
-
- return 0;
-}
-
-static INT32 DrvDoReset(INT32 clear_ram)
-{
- if (clear_ram) {
- memset(AllRam, 0, RamEnd - AllRam);
- }
-
- M6809Open(0);
- M6809Reset();
- bankswitch(0);
- M6809Close();
-
- TimepltSndReset();
-
- irq_enable = 0;
- sound_mute = 0;
- watchdog = 0;
- scrolldata = 0;
- flipscreenx = 0;
- flipscreeny = 0;
-
- return 0;
-}
-
-static INT32 MemIndex()
-{
- UINT8 *Next; Next = AllMem;
-
- DrvM6809ROM = Next; Next += 0x020000;
- DrvZ80ROM = Next; Next += 0x003000;
-
- DrvPalette = (UINT32*)Next; Next += 0x0010 * sizeof(UINT32);
-
- AllRam = Next;
-
- DrvVidRAM = Next; Next += 0x008000;
- DrvM6809RAM = Next; Next += 0x000800;
- DrvZ80RAM = Next; Next += 0x000400;
- DrvPalRAM = Next; Next += 0x000010;
-
- RamEnd = Next;
-
- pAY8910Buffer[0] = (INT16*)Next; Next += nBurnSoundLen * sizeof(INT16);
- pAY8910Buffer[1] = (INT16*)Next; Next += nBurnSoundLen * sizeof(INT16);
- pAY8910Buffer[2] = (INT16*)Next; Next += nBurnSoundLen * sizeof(INT16);
- pAY8910Buffer[3] = (INT16*)Next; Next += nBurnSoundLen * sizeof(INT16);
- pAY8910Buffer[4] = (INT16*)Next; Next += nBurnSoundLen * sizeof(INT16);
- pAY8910Buffer[5] = (INT16*)Next; Next += nBurnSoundLen * sizeof(INT16);
-
- MemEnd = Next;
-
- return 0;
-}
-
-static INT32 DrvInit()
-{
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(DrvM6809ROM + 0x0a000, 0, 1)) return 1;
- if (BurnLoadRom(DrvM6809ROM + 0x0b000, 1, 1)) return 1;
- if (BurnLoadRom(DrvM6809ROM + 0x0c000, 2, 1)) return 1;
- if (BurnLoadRom(DrvM6809ROM + 0x0d000, 3, 1)) return 1;
- if (BurnLoadRom(DrvM6809ROM + 0x0e000, 4, 1)) return 1;
- if (BurnLoadRom(DrvM6809ROM + 0x0f000, 5, 1)) return 1;
- if (BurnLoadRom(DrvM6809ROM + 0x10000, 6, 1)) return 1;
- if (BurnLoadRom(DrvM6809ROM + 0x11000, 7, 1)) return 1;
- if (BurnLoadRom(DrvM6809ROM + 0x12000, 8, 1)) return 1;
- if (BurnLoadRom(DrvM6809ROM + 0x13000, 9, 1)) return 1;
- if (BurnLoadRom(DrvM6809ROM + 0x14000, 10, 1)) return 1;
- if (BurnLoadRom(DrvM6809ROM + 0x15000, 11, 1)) return 1;
- if (BurnLoadRom(DrvM6809ROM + 0x16000, 12, 1)) return 1;
- if (BurnLoadRom(DrvM6809ROM + 0x17000, 13, 1)) return 1;
- if (BurnLoadRom(DrvM6809ROM + 0x18000, 14, 1)) return 1;
-
- if (BurnLoadRom(DrvZ80ROM + 0x00000, 15, 1)) return 1;
- if (BurnLoadRom(DrvZ80ROM + 0x01000, 16, 1)) return 1;
- }
-
- M6809Init(1);
- M6809Open(0);
- M6809MapMemory(DrvVidRAM, 0x0000, 0x7fff, MAP_RAM);
- M6809MapMemory(DrvM6809RAM, 0x8800, 0x8fff, MAP_RAM);
- M6809MapMemory(DrvM6809ROM + 0xa000, 0xa000, 0xffff, MAP_ROM);
- M6809SetWriteHandler(tutankhm_write);
- M6809SetReadHandler(tutankhm_read);
- M6809Close();
-
- TimepltSndInit(DrvZ80ROM, DrvZ80RAM, 0);
-
- GenericTilesInit();
-
- DrvDoReset(1);
-
- return 0;
-}
-
-static INT32 DrvExit()
-{
- GenericTilesExit();
-
- M6809Exit();
-
- TimepltSndExit();
-
- BurnFree (AllMem);
-
- return 0;
-}
-
-static void DrvPaletteUpdate()
-{
- for (INT32 i = 0; i < 0x10; i++) {
- INT32 r = (DrvPalRAM[i] >> 0) & 7;
- INT32 g = (DrvPalRAM[i] >> 3) & 7;
- INT32 b = (DrvPalRAM[i] >> 6) & 3;
-
- r = (r << 5) | (r << 2) | (r >> 1);
- g = (g << 5) | (g << 2) | (g >> 1);
- b |= (b << 6) | (b << 4) | (b << 2);
-
- DrvPalette[i] = BurnHighCol(r,g,b,0);
- }
-}
-
-static void draw_layer()
-{
- INT32 flipx = (flipscreenx) ? 255 : 0;
- INT32 flipy = (flipscreeny) ? 255 : 0;
-
- for (INT32 y = 16; y < 256 - 16; y++)
- {
- UINT16 *dst = pTransDraw + (y - 16) * nScreenWidth;
-
- for (INT32 x = 0; x < nScreenWidth; x++)
- {
- UINT8 effx = x ^ flipx;
- UINT8 yscroll = (effx < 192) ? scrolldata : 0;
- UINT8 effy = (y ^ flipy) + yscroll;
- dst[x] = (DrvVidRAM[effy * 128 + effx / 2] >> (4 * (effx & 1))) & 0xf;
- }
- }
-}
-
-static INT32 DrvDraw()
-{
-// if (DrvRecalc) {
- DrvPaletteUpdate();
- DrvRecalc = 0;
-// }
-
- draw_layer();
-
- BurnTransferCopy(DrvPalette);
-
- return 0;
-}
-
-static INT32 DrvFrame()
-{
- watchdog++;
- if (watchdog >= 180) {
- DrvDoReset(0);
- }
-
- if (DrvReset) {
- DrvDoReset(1);
- }
-
- ZetNewFrame();
-
- {
- memset (DrvInputs, 0xff, 3);
- for (INT32 i = 0; i < 8; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- DrvInputs[2] ^= (DrvJoy3[i] & 1) << i;
- }
-
- // Clear opposites
- if ((DrvInputs[1] & 0x0c) == 0) DrvInputs[1] |= 0x0c;
- if ((DrvInputs[1] & 0x03) == 0) DrvInputs[1] |= 0x03;
- if ((DrvInputs[1] & 0x30) == 0) DrvInputs[1] |= 0x30;
- if ((DrvInputs[2] & 0x0c) == 0) DrvInputs[2] |= 0x0c;
- if ((DrvInputs[2] & 0x03) == 0) DrvInputs[2] |= 0x03;
- if ((DrvInputs[2] & 0x30) == 0) DrvInputs[2] |= 0x30;
- }
-
- INT32 nInterleave = 256;
- INT32 nCyclesTotal[2] = { 1536000 / 60, 1789772 / 60 };
- INT32 nCyclesDone[2] = { 0, 0 };
- INT32 nSoundBufferPos = 0;
-
- M6809Open(0);
- ZetOpen(0);
-
- for (INT32 i = 0; i < nInterleave; i++)
- {
- INT32 nSegment = (nCyclesTotal[0] * (i + 1)) / nInterleave;
- nCyclesDone[0] += M6809Run(nSegment - nCyclesDone[0]);
- if (i == (nInterleave - 1) && irq_enable && (nCurrentFrame & 1)) M6809SetIRQLine(0, CPU_IRQSTATUS_ACK);
-
- nSegment = (nCyclesTotal[1] * i) / nInterleave;
- nCyclesDone[1] += ZetRun(nSegment - nCyclesDone[1]);
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen / nInterleave;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- if (!sound_mute) TimepltSndUpdate(pAY8910Buffer, pSoundBuf, nSegmentLength);
- nSoundBufferPos += nSegmentLength;
- }
- }
-
- ZetClose();
- M6809Close();
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
-
- if (sound_mute) {
- memset (pBurnSoundOut, 0, nBurnSoundLen * sizeof(INT16) * 2);
- } else {
- TimepltSndUpdate(pAY8910Buffer, pSoundBuf, nSegmentLength);
- }
- }
-
- if (pBurnDraw) {
- DrvDraw();
- }
-
- return 0;
-}
-
-static INT32 DrvScan(INT32 nAction,INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin) {
- *pnMin = 0x029521;
- }
-
- if (nAction & ACB_VOLATILE) {
- memset(&ba, 0, sizeof(ba));
-
- ba.Data = AllRam;
- ba.nLen = RamEnd - AllRam;
- ba.szName = "All Ram";
- BurnAcb(&ba);
-
- M6809Scan(nAction);
- TimepltSndScan(nAction, pnMin);
-
- SCAN_VAR(scrolldata);
- SCAN_VAR(sound_mute);
- SCAN_VAR(irq_enable);
- SCAN_VAR(flipscreenx);
- SCAN_VAR(flipscreeny);
- SCAN_VAR(nRomBank);
- }
-
- if (nAction & ACB_WRITE) {
- M6809Open(0);
- bankswitch(nRomBank);
- M6809Close();
- }
-
- return 0;
-}
-
-
-// Tutankham
-
-static struct BurnRomInfo tutankhmRomDesc[] = {
- { "m1.1h", 0x1000, 0xda18679f, 1 | BRF_PRG | BRF_ESS }, // 0 M6809 Code
- { "m2.2h", 0x1000, 0xa0f02c85, 1 | BRF_PRG | BRF_ESS }, // 1
- { "3j.3h", 0x1000, 0xea03a1ab, 1 | BRF_PRG | BRF_ESS }, // 2
- { "m4.4h", 0x1000, 0xbd06fad0, 1 | BRF_PRG | BRF_ESS }, // 3
- { "m5.5h", 0x1000, 0xbf9fd9b0, 1 | BRF_PRG | BRF_ESS }, // 4
- { "j6.6h", 0x1000, 0xfe079c5b, 1 | BRF_PRG | BRF_ESS }, // 5
- { "c1.1i", 0x1000, 0x7eb59b21, 1 | BRF_PRG | BRF_ESS }, // 6
- { "c2.2i", 0x1000, 0x6615eff3, 1 | BRF_PRG | BRF_ESS }, // 7
- { "c3.3i", 0x1000, 0xa10d4444, 1 | BRF_PRG | BRF_ESS }, // 8
- { "c4.4i", 0x1000, 0x58cd143c, 1 | BRF_PRG | BRF_ESS }, // 9
- { "c5.5i", 0x1000, 0xd7e7ae95, 1 | BRF_PRG | BRF_ESS }, // 10
- { "c6.6i", 0x1000, 0x91f62b82, 1 | BRF_PRG | BRF_ESS }, // 11
- { "c7.7i", 0x1000, 0xafd0a81f, 1 | BRF_PRG | BRF_ESS }, // 12
- { "c8.8i", 0x1000, 0xdabb609b, 1 | BRF_PRG | BRF_ESS }, // 13
- { "c9.9i", 0x1000, 0x8ea9c6a6, 1 | BRF_PRG | BRF_ESS }, // 14
-
- { "s1.7a", 0x1000, 0xb52d01fa, 2 | BRF_PRG | BRF_ESS }, // 15 Z80 Code
- { "s2.8a", 0x1000, 0x9db5c0ce, 2 | BRF_PRG | BRF_ESS }, // 16
-};
-
-STD_ROM_PICK(tutankhm)
-STD_ROM_FN(tutankhm)
-
-struct BurnDriver BurnDrvTutankhm = {
- "tutankhm", NULL, NULL, NULL, "1982",
- "Tutankham\0", NULL, "Konami", "GX350",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED, 4, HARDWARE_PREFIX_KONAMI, GBF_MAZE, 0,
- NULL, tutankhmRomInfo, tutankhmRomName, NULL, NULL, TutankhmInputInfo, TutankhmDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x10,
- 224, 256, 3, 4
-};
-
-
-// Tutankham (Stern Electronics)
-
-static struct BurnRomInfo tutankhmsRomDesc[] = {
- { "m1.1h", 0x1000, 0xda18679f, 1 | BRF_PRG | BRF_ESS }, // 0 M6809 Code
- { "m2.2h", 0x1000, 0xa0f02c85, 1 | BRF_PRG | BRF_ESS }, // 1
- { "3a.3h", 0x1000, 0x2d62d7b1, 1 | BRF_PRG | BRF_ESS }, // 2
- { "m4.4h", 0x1000, 0xbd06fad0, 1 | BRF_PRG | BRF_ESS }, // 3
- { "m5.5h", 0x1000, 0xbf9fd9b0, 1 | BRF_PRG | BRF_ESS }, // 4
- { "a6.6h", 0x1000, 0xc43b3865, 1 | BRF_PRG | BRF_ESS }, // 5
- { "c1.1i", 0x1000, 0x7eb59b21, 1 | BRF_PRG | BRF_ESS }, // 6
- { "c2.2i", 0x1000, 0x6615eff3, 1 | BRF_PRG | BRF_ESS }, // 7
- { "c3.3i", 0x1000, 0xa10d4444, 1 | BRF_PRG | BRF_ESS }, // 8
- { "c4.4i", 0x1000, 0x58cd143c, 1 | BRF_PRG | BRF_ESS }, // 9
- { "c5.5i", 0x1000, 0xd7e7ae95, 1 | BRF_PRG | BRF_ESS }, // 10
- { "c6.6i", 0x1000, 0x91f62b82, 1 | BRF_PRG | BRF_ESS }, // 11
- { "c7.7i", 0x1000, 0xafd0a81f, 1 | BRF_PRG | BRF_ESS }, // 12
- { "c8.8i", 0x1000, 0xdabb609b, 1 | BRF_PRG | BRF_ESS }, // 13
- { "c9.9i", 0x1000, 0x8ea9c6a6, 1 | BRF_PRG | BRF_ESS }, // 14
-
- { "s1.7a", 0x1000, 0xb52d01fa, 2 | BRF_PRG | BRF_ESS }, // 15 Z80 Code
- { "s2.8a", 0x1000, 0x9db5c0ce, 2 | BRF_PRG | BRF_ESS }, // 16
-};
-
-STD_ROM_PICK(tutankhms)
-STD_ROM_FN(tutankhms)
-
-struct BurnDriver BurnDrvTutankhms = {
- "tutankhms", "tutankhm", NULL, NULL, "1982",
- "Tutankham (Stern Electronics)\0", NULL, "Konami (Stern Electronics license)", "GX350",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED, 4, HARDWARE_PREFIX_KONAMI, GBF_MAZE, 0,
- NULL, tutankhmsRomInfo, tutankhmsRomName, NULL, NULL, TutankhmInputInfo, TutankhmDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x10,
- 224, 256, 3, 4
-};
diff --git a/jan/src/burn/drv/konami/d_twin16.cpp b/jan/src/burn/drv/konami/d_twin16.cpp
deleted file mode 100644
index 3e9c9370e..000000000
--- a/jan/src/burn/drv/konami/d_twin16.cpp
+++ /dev/null
@@ -1,2246 +0,0 @@
-// FB Alpha Twin16 driver module
-// Based on MAME driver by Phil Stroffolino
-
-#include "tiles_generic.h"
-#include "m68000_intf.h"
-#include "z80_intf.h"
-#include "burn_ym2151.h"
-#include "upd7759.h"
-#include "k007232.h"
-
-static UINT8 *AllMem;
-static UINT8 *AllRam;
-static UINT8 *RamEnd;
-static UINT8 *MemEnd;
-static UINT8 *Drv68KROM0;
-static UINT8 *Drv68KROM1;
-static UINT8 *DrvZ80ROM;
-static UINT8 *DrvGfxROM0;
-static UINT8 *DrvGfxROM1;
-static UINT8 *DrvGfxROM2;
-static UINT8 *DrvSndROM0;
-static UINT8 *DrvSndROM1;
-static UINT8 *DrvShareRAM;
-static UINT8 *Drv68KRAM0;
-static UINT8 *DrvPalRAM;
-static UINT8 *DrvVidRAM2;
-static UINT8 *DrvVidRAM;
-static UINT8 *DrvSprRAM;
-static UINT8 *DrvSprBuf;
-static UINT8 *DrvNvRAM;
-static UINT8 *DrvNvRAMBank;
-static UINT8 *Drv68KRAM1;
-static UINT8 *DrvFgRAM;
-static UINT8 *DrvTileRAM;
-static UINT8 *DrvSprGfxRAM;
-static UINT8 *DrvGfxExp;
-
-static UINT8 *DrvZ80RAM;
-
-static UINT32 *DrvPalette;
-static UINT8 DrvRecalc;
-
-static UINT16 *scrollx;
-static UINT16 *scrolly;
-
-static UINT8 *soundlatch;
-static UINT8 *soundlatch2;
-
-static INT32 video_register;
-static INT32 gfx_bank;
-
-static INT32 twin16_CPUA_register;
-static INT32 twin16_CPUB_register;
-
-static INT32 need_process_spriteram;
-static INT32 twin16_custom_video;
-static INT32 is_vulcan = 0;
-
-static UINT8 DrvJoy1[16];
-static UINT8 DrvJoy2[16];
-static UINT8 DrvJoy3[16];
-static UINT8 DrvJoy4[16];
-static UINT8 DrvInputs[4];
-static UINT8 DrvDips[3];
-static UINT8 DrvReset;
-
-static struct BurnInputInfo DrvInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy1 + 0, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 3, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy2 + 2, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy2 + 3, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy2 + 0, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy2 + 1, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy2 + 4, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy2 + 5, "p1 fire 2" },
- {"P1 Button 3", BIT_DIGITAL, DrvJoy2 + 6, "p1 fire 3" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy1 + 1, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy1 + 4, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvJoy3 + 2, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy3 + 3, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy3 + 0, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy3 + 1, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy3 + 4, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy3 + 5, "p2 fire 2" },
- {"P2 Button 3", BIT_DIGITAL, DrvJoy3 + 6, "p2 fire 3" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service", BIT_DIGITAL, DrvJoy1 + 6, "service" },
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip" },
- {"Dip C", BIT_DIPSWITCH, DrvDips + 2, "dip" },
-};
-
-STDINPUTINFO(Drv)
-
-static struct BurnInputInfo DevilwInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy1 + 0, "p1 coin" },
- {"P1 Up", BIT_DIGITAL, DrvJoy2 + 2, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy2 + 3, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy2 + 0, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy2 + 1, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy2 + 4, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy2 + 5, "p1 fire 2" },
- {"P1 Button 3", BIT_DIGITAL, DrvJoy2 + 6, "p1 fire 3" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy1 + 1, "p2 coin" },
- {"P2 Up", BIT_DIGITAL, DrvJoy3 + 2, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy3 + 3, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy3 + 0, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy3 + 1, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy3 + 4, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy3 + 5, "p2 fire 2" },
- {"P2 Button 3", BIT_DIGITAL, DrvJoy3 + 6, "p2 fire 3" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service", BIT_DIGITAL, DrvJoy1 + 6, "service" },
- {"Map Button", BIT_DIGITAL, DrvJoy1 + 3, "service2" },
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip" },
- {"Dip C", BIT_DIPSWITCH, DrvDips + 2, "dip" },
-};
-
-STDINPUTINFO(Devilw)
-
-static struct BurnInputInfo DarkadvInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy1 + 0, "p1 coin" },
- {"P1 Up", BIT_DIGITAL, DrvJoy2 + 2, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy2 + 3, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy2 + 0, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy2 + 1, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy2 + 4, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy2 + 5, "p1 fire 2" },
- {"P1 Button 3", BIT_DIGITAL, DrvJoy2 + 6, "p1 fire 3" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy1 + 1, "p2 coin" },
- {"P2 Up", BIT_DIGITAL, DrvJoy3 + 2, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy3 + 3, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy3 + 0, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy3 + 1, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy3 + 4, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy3 + 5, "p2 fire 2" },
- {"P2 Button 3", BIT_DIGITAL, DrvJoy3 + 6, "p2 fire 3" },
-
- {"P3 Coin", BIT_DIGITAL, DrvJoy1 + 2, "p3 coin" },
- {"P3 Up", BIT_DIGITAL, DrvJoy4 + 2, "p3 up" },
- {"P3 Down", BIT_DIGITAL, DrvJoy4 + 3, "p3 down" },
- {"P3 Left", BIT_DIGITAL, DrvJoy4 + 0, "p3 left" },
- {"P3 Right", BIT_DIGITAL, DrvJoy4 + 1, "p3 right" },
- {"P3 Button 1", BIT_DIGITAL, DrvJoy4 + 4, "p3 fire 1" },
- {"P3 Button 2", BIT_DIGITAL, DrvJoy4 + 5, "p3 fire 2" },
- {"P3 Button 3", BIT_DIGITAL, DrvJoy4 + 6, "p3 fire 3" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service 1", BIT_DIGITAL, DrvJoy1 + 6, "service" },
- {"Service 2", BIT_DIGITAL, DrvJoy1 + 7, "service2" },
- {"Service 3", BIT_DIGITAL, DrvJoy2 + 7, "service3" },
- {"Map Button", BIT_DIGITAL, DrvJoy1 + 3, "service4" },
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip" },
- {"Dip C", BIT_DIPSWITCH, DrvDips + 2, "dip" },
-};
-
-STDINPUTINFO(Darkadv)
-
-#define coinage_dips(offs) \
- {0 , 0xfe, 0 , 16, "Coin A" }, \
- {offs, 0x01, 0x0f, 0x02, "4 Coins 1 Credit " }, \
- {offs, 0x01, 0x0f, 0x05, "3 Coins 1 Credit " }, \
- {offs, 0x01, 0x0f, 0x08, "2 Coins 1 Credit " }, \
- {offs, 0x01, 0x0f, 0x04, "3 Coins 2 Credits" }, \
- {offs, 0x01, 0x0f, 0x01, "4 Coins 3 Credits" }, \
- {offs, 0x01, 0x0f, 0x0f, "1 Coin 1 Credit " }, \
- {offs, 0x01, 0x0f, 0x03, "3 Coins 4 Credits" }, \
- {offs, 0x01, 0x0f, 0x07, "2 Coins 3 Credits" }, \
- {offs, 0x01, 0x0f, 0x0e, "1 Coin 2 Credits" }, \
- {offs, 0x01, 0x0f, 0x06, "2 Coins 5 Credits" }, \
- {offs, 0x01, 0x0f, 0x0d, "1 Coin 3 Credits" }, \
- {offs, 0x01, 0x0f, 0x0c, "1 Coin 4 Credits" }, \
- {offs, 0x01, 0x0f, 0x0b, "1 Coin 5 Credits" }, \
- {offs, 0x01, 0x0f, 0x0a, "1 Coin 6 Credits" }, \
- {offs, 0x01, 0x0f, 0x09, "1 Coin 7 Credits" }, \
- {offs, 0x01, 0x0f, 0x00, "Free Play" }, \
- \
- {0 , 0xfe, 0 , 16, "Coin B" }, \
- {offs, 0x01, 0xf0, 0x20, "4 Coins 1 Credit " }, \
- {offs, 0x01, 0xf0, 0x50, "3 Coins 1 Credit " }, \
- {offs, 0x01, 0xf0, 0x80, "2 Coins 1 Credit " }, \
- {offs, 0x01, 0xf0, 0x40, "3 Coins 2 Credits" }, \
- {offs, 0x01, 0xf0, 0x10, "4 Coins 3 Credits" }, \
- {offs, 0x01, 0xf0, 0xf0, "1 Coin 1 Credit " }, \
- {offs, 0x01, 0xf0, 0x30, "3 Coins 4 Credits" }, \
- {offs, 0x01, 0xf0, 0x70, "2 Coins 3 Credits" }, \
- {offs, 0x01, 0xf0, 0xe0, "1 Coin 2 Credits" }, \
- {offs, 0x01, 0xf0, 0x60, "2 Coins 5 Credits" }, \
- {offs, 0x01, 0xf0, 0xd0, "1 Coin 3 Credits" }, \
- {offs, 0x01, 0xf0, 0xc0, "1 Coin 4 Credits" }, \
- {offs, 0x01, 0xf0, 0xb0, "1 Coin 5 Credits" }, \
- {offs, 0x01, 0xf0, 0xa0, "1 Coin 6 Credits" }, \
- {offs, 0x01, 0xf0, 0x90, "1 Coin 7 Credits" }, \
- {offs, 0x01, 0xf0, 0x00, "Disabled" },
-
-static struct BurnDIPInfo DevilwDIPList[]=
-{
- {0x13, 0xff, 0xff, 0xff, NULL },
- {0x14, 0xff, 0xff, 0x5e, NULL },
- {0x15, 0xff, 0xff, 0xff, NULL },
-
- coinage_dips(0x13)
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x14, 0x01, 0x03, 0x03, "2" },
- {0x14, 0x01, 0x03, 0x02, "3" },
- {0x14, 0x01, 0x03, 0x01, "5" },
- {0x14, 0x01, 0x03, 0x00, "7" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x14, 0x01, 0x60, 0x60, "Easy" },
- {0x14, 0x01, 0x60, 0x40, "Normal" },
- {0x14, 0x01, 0x60, 0x20, "Difficult" },
- {0x14, 0x01, 0x60, 0x00, "Very Difficult" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x14, 0x01, 0x80, 0x80, "Off" },
- {0x14, 0x01, 0x80, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x15, 0x01, 0x01, 0x01, "Off" },
- {0x15, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x15, 0x01, 0x04, 0x04, "Off" },
- {0x15, 0x01, 0x04, 0x00, "On" },
-};
-
-STDDIPINFO(Devilw)
-
-static struct BurnDIPInfo DarkadvDIPList[]=
-{
- {0x1d, 0xff, 0xff, 0xff, NULL },
- {0x1e, 0xff, 0xff, 0x5e, NULL },
- {0x1f, 0xff, 0xff, 0xff, NULL },
-
- {0 , 0xfe, 0 , 16, "Coinage" },
- {0x1d, 0x01, 0x0f, 0x02, "4 Coins 1 Credit" },
- {0x1d, 0x01, 0x0f, 0x05, "3 Coins 1 Credit" },
- {0x1d, 0x01, 0x0f, 0x08, "2 Coins 1 Credit" },
- {0x1d, 0x01, 0x0f, 0x04, "3 Coins 2 Credits" },
- {0x1d, 0x01, 0x0f, 0x01, "4 Coins 3 Credits" },
- {0x1d, 0x01, 0x0f, 0x0f, "1 Coin 1 Credit" },
- {0x1d, 0x01, 0x0f, 0x03, "3 Coins 4 Credits" },
- {0x1d, 0x01, 0x0f, 0x07, "2 Coins 3 Credits" },
- {0x1d, 0x01, 0x0f, 0x0e, "1 Coin 2 Credits" },
- {0x1d, 0x01, 0x0f, 0x06, "2 Coins 5 Credits" },
- {0x1d, 0x01, 0x0f, 0x0d, "1 Coin 3 Credits" },
- {0x1d, 0x01, 0x0f, 0x0c, "1 Coin 4 Credits" },
- {0x1d, 0x01, 0x0f, 0x0b, "1 Coin 5 Credits" },
- {0x1d, 0x01, 0x0f, 0x0a, "1 Coin 6 Credits" },
- {0x1d, 0x01, 0x0f, 0x09, "1 Coin 7 Credits" },
- {0x1d, 0x01, 0x0f, 0x00, "Invalid" },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x1e, 0x01, 0x03, 0x03, "2" },
- {0x1e, 0x01, 0x03, 0x02, "3" },
- {0x1e, 0x01, 0x03, 0x01, "5" },
- {0x1e, 0x01, 0x03, 0x00, "7" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x1e, 0x01, 0x60, 0x60, "Easy" },
- {0x1e, 0x01, 0x60, 0x40, "Normal" },
- {0x1e, 0x01, 0x60, 0x20, "Difficult" },
- {0x1e, 0x01, 0x60, 0x00, "Very Difficult" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x1e, 0x01, 0x80, 0x80, "Off" },
- {0x1e, 0x01, 0x80, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x1f, 0x01, 0x01, 0x01, "Off" },
- {0x1f, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x1f, 0x01, 0x04, 0x04, "Off" },
- {0x1f, 0x01, 0x04, 0x00, "On" },
-};
-
-STDDIPINFO(Darkadv)
-
-static struct BurnDIPInfo VulcanDIPList[]=
-{
- {0x14, 0xff, 0xff, 0xff, NULL },
- {0x15, 0xff, 0xff, 0x5a, NULL },
- {0x16, 0xff, 0xff, 0xfd, NULL },
-
- coinage_dips(0x14)
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x15, 0x01, 0x03, 0x03, "2" },
- {0x15, 0x01, 0x03, 0x02, "3" },
- {0x15, 0x01, 0x03, 0x01, "4" },
- {0x15, 0x01, 0x03, 0x00, "7" },
-
- {0 , 0xfe, 0 , 2, "Cabinet" },
- {0x15, 0x01, 0x04, 0x00, "Upright" },
- {0x15, 0x01, 0x04, 0x04, "Cocktail" },
-
- {0 , 0xfe, 0 , 4, "Bonus Life" },
- {0x15, 0x01, 0x18, 0x18, "20K 70K" },
- {0x15, 0x01, 0x18, 0x10, "30K 80K" },
- {0x15, 0x01, 0x18, 0x08, "20K" },
- {0x15, 0x01, 0x18, 0x00, "70K" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x15, 0x01, 0x60, 0x60, "Easy" },
- {0x15, 0x01, 0x60, 0x40, "Normal" },
- {0x15, 0x01, 0x60, 0x20, "Difficult" },
- {0x15, 0x01, 0x60, 0x00, "Very Difficult" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x15, 0x01, 0x80, 0x80, "Off" },
- {0x15, 0x01, 0x80, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x16, 0x01, 0x01, 0x01, "Off" },
- {0x16, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Upright Controls" },
- {0x16, 0x01, 0x02, 0x02, "Single" },
- {0x16, 0x01, 0x02, 0x00, "Dual" },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x16, 0x01, 0x04, 0x04, "Off" },
- {0x16, 0x01, 0x04, 0x00, "On" },
-};
-
-STDDIPINFO(Vulcan)
-
-static struct BurnDIPInfo Gradius2DIPList[]=
-{
- {0x14, 0xff, 0xff, 0xff, NULL },
- {0x15, 0xff, 0xff, 0x5a, NULL },
- {0x16, 0xff, 0xff, 0xfd, NULL },
-
- coinage_dips(0x14)
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x15, 0x01, 0x03, 0x03, "2" },
- {0x15, 0x01, 0x03, 0x02, "3" },
- {0x15, 0x01, 0x03, 0x01, "4" },
- {0x15, 0x01, 0x03, 0x00, "7" },
-
- {0 , 0xfe, 0 , 2, "Cabinet" },
- {0x15, 0x01, 0x04, 0x00, "Upright" },
- {0x15, 0x01, 0x04, 0x04, "Cocktail" },
-
- {0 , 0xfe, 0 , 4, "Bonus Life" },
- {0x15, 0x01, 0x18, 0x18, "20K 150K" },
- {0x15, 0x01, 0x18, 0x10, "30K 200K" },
- {0x15, 0x01, 0x18, 0x08, "20K" },
- {0x15, 0x01, 0x18, 0x00, "70K" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x15, 0x01, 0x60, 0x60, "Easy" },
- {0x15, 0x01, 0x60, 0x40, "Normal" },
- {0x15, 0x01, 0x60, 0x20, "Difficult" },
- {0x15, 0x01, 0x60, 0x00, "Very Difficult" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x15, 0x01, 0x80, 0x80, "Off" },
- {0x15, 0x01, 0x80, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x16, 0x01, 0x01, 0x01, "Off" },
- {0x16, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Upright Controls" },
- {0x16, 0x01, 0x02, 0x02, "Single" },
- {0x16, 0x01, 0x02, 0x00, "Dual" },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x16, 0x01, 0x04, 0x04, "Off" },
- {0x16, 0x01, 0x04, 0x00, "On" },
-};
-
-STDDIPINFO(Gradius2)
-
-static struct BurnDIPInfo FroundDIPList[]=
-{
- {0x14, 0xff, 0xff, 0xff, NULL },
- {0x15, 0xff, 0xff, 0x42, NULL },
- {0x16, 0xff, 0xff, 0xfd, NULL },
-
- coinage_dips(0x14)
-
- {0 , 0xfe, 0 , 4, "Energy" },
- {0x15, 0x01, 0x03, 0x03, "18" },
- {0x15, 0x01, 0x03, 0x02, "20" },
- {0x15, 0x01, 0x03, 0x01, "22" },
- {0x15, 0x01, 0x03, 0x00, "24" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x15, 0x01, 0x60, 0x60, "Easy" },
- {0x15, 0x01, 0x60, 0x40, "Normal" },
- {0x15, 0x01, 0x60, 0x20, "Difficult" },
- {0x15, 0x01, 0x60, 0x00, "Very Difficult" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x15, 0x01, 0x80, 0x80, "Off" },
- {0x15, 0x01, 0x80, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x16, 0x01, 0x01, 0x01, "Off" },
- {0x16, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x16, 0x01, 0x04, 0x04, "Off" },
- {0x16, 0x01, 0x04, 0x00, "On" },
-};
-
-STDDIPINFO(Fround)
-
-static struct BurnDIPInfo MiajDIPList[]=
-{
- {0x14, 0xff, 0xff, 0xff, NULL },
- {0x15, 0xff, 0xff, 0x52, NULL },
- {0x16, 0xff, 0xff, 0xff, NULL },
-
- coinage_dips(0x14)
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x15, 0x01, 0x03, 0x03, "2" },
- {0x15, 0x01, 0x03, 0x02, "3" },
- {0x15, 0x01, 0x03, 0x01, "5" },
- {0x15, 0x01, 0x03, 0x00, "7" },
-
- {0 , 0xfe, 0 , 4, "Bonus Life" },
- {0x15, 0x01, 0x18, 0x18, "30K 80K" },
- {0x15, 0x01, 0x18, 0x10, "50K 100K" },
- {0x15, 0x01, 0x18, 0x08, "50K" },
- {0x15, 0x01, 0x18, 0x00, "100K" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x15, 0x01, 0x60, 0x60, "Easy" },
- {0x15, 0x01, 0x60, 0x40, "Normal" },
- {0x15, 0x01, 0x60, 0x20, "Difficult" },
- {0x15, 0x01, 0x60, 0x00, "Very Difficult" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x15, 0x01, 0x80, 0x80, "Off" },
- {0x15, 0x01, 0x80, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x16, 0x01, 0x01, 0x01, "Off" },
- {0x16, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "VRAM Character Check" },
- {0x16, 0x01, 0x02, 0x02, "Off" },
- {0x16, 0x01, 0x02, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x16, 0x01, 0x04, 0x04, "Off" },
- {0x16, 0x01, 0x04, 0x00, "On" },
-};
-
-STDDIPINFO(Miaj)
-
-static struct BurnDIPInfo CuebrckjDIPList[]=
-{
- {0x14, 0xff, 0xff, 0xff, NULL },
- {0x15, 0xff, 0xff, 0x5a, NULL },
- {0x16, 0xff, 0xff, 0xff, NULL },
-
- coinage_dips(0x14)
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x15, 0x01, 0x03, 0x03, "1" },
- {0x15, 0x01, 0x03, 0x02, "2" },
- {0x15, 0x01, 0x03, 0x01, "3" },
- {0x15, 0x01, 0x03, 0x00, "4" },
-
- {0 , 0xfe, 0 , 2, "Cabinet" },
- {0x15, 0x01, 0x04, 0x00, "Upright" },
- {0x15, 0x01, 0x04, 0x04, "Cocktail" },
-
- {0 , 0xfe, 0 , 4, "Machine Name" },
- {0x15, 0x01, 0x18, 0x18, "None" },
- {0x15, 0x01, 0x18, 0x10, "Lewis" },
- {0x15, 0x01, 0x18, 0x08, "Johnson" },
- {0x15, 0x01, 0x18, 0x00, "George" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x15, 0x01, 0x60, 0x60, "Easy" },
- {0x15, 0x01, 0x60, 0x40, "Normal" },
- {0x15, 0x01, 0x60, 0x20, "Hard" },
- {0x15, 0x01, 0x60, 0x00, "Hardest" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x15, 0x01, 0x80, 0x80, "Off" },
- {0x15, 0x01, 0x80, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x16, 0x01, 0x01, 0x01, "Off" },
- {0x16, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Upright Controls" },
- {0x16, 0x01, 0x02, 0x02, "Single" },
- {0x16, 0x01, 0x02, 0x00, "Dual" },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x16, 0x01, 0x04, 0x04, "Off" },
- {0x16, 0x01, 0x04, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Mode" },
- {0x16, 0x01, 0x08, 0x08, "3" },
- {0x16, 0x01, 0x08, 0x00, "4" },
-};
-
-STDDIPINFO(Cuebrckj)
-
-static void twin16_spriteram_process()
-{
- INT32 dx = BURN_ENDIAN_SWAP_INT16(scrollx[0]);
- INT32 dy = BURN_ENDIAN_SWAP_INT16(scrolly[0]);
-
- UINT16 *spriteram16 = (UINT16*)DrvSprRAM;
- UINT16 *source = spriteram16;
- UINT16 *finish = spriteram16 + 0x1800;
-
- memset(&spriteram16[0x1800], 0, 0x800);
-
- while (source < finish)
- {
- INT32 priority = BURN_ENDIAN_SWAP_INT16(source[0]);
- if (priority & 0x8000 )
- {
- UINT16 *dest = &spriteram16[0x1800 + ((priority & 0xff) << 2)];
-
- INT32 xpos = (BURN_ENDIAN_SWAP_INT16(source[4]) << 16) | BURN_ENDIAN_SWAP_INT16(source[5]);
- INT32 ypos = (BURN_ENDIAN_SWAP_INT16(source[6]) << 16) | BURN_ENDIAN_SWAP_INT16(source[7]);
-
- INT32 attributes = BURN_ENDIAN_SWAP_INT16(source[2])&0x03ff;
- if (priority & 0x0200) attributes |= 0x4000;
-
- attributes |= 0x8000;
-
- dest[0] = source[3];
- dest[1] = BURN_ENDIAN_SWAP_INT16(((xpos >> 8) - dx) & 0xffff);
- dest[2] = BURN_ENDIAN_SWAP_INT16(((ypos >> 8) - dy) & 0xffff);
- dest[3] = BURN_ENDIAN_SWAP_INT16(attributes);
- }
-
- source += 0x50/2;
- }
-
- need_process_spriteram = 0;
-}
-
-static void fround_CPU_register_w(INT32 data)
-{
- INT32 old = twin16_CPUA_register;
- twin16_CPUA_register = data;
- if (twin16_CPUA_register != old)
- {
- if ((old & 0x08) == 0 && (twin16_CPUA_register & 0x08)) {
- ZetSetVector(0xff);
- ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
- }
- }
-}
-
-static void twin16_CPUA_register_w(INT32 data)
-{
- if (twin16_CPUA_register != data)
- {
- if ((twin16_CPUA_register & 0x08) == 0 && (data & 0x08)) {
- ZetSetVector(0xff);
- ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
- }
-
- if ((twin16_CPUA_register & 0x40) && (data & 0x40) == 0)
- twin16_spriteram_process();
-
- if ((twin16_CPUA_register & 0x10) == 0 && (data & 0x10)) {
- SekClose();
- SekOpen(1);
- SekSetIRQLine(6, CPU_IRQSTATUS_AUTO);
- SekClose();
- SekOpen(0);
- }
-
- twin16_CPUA_register = data;
- }
-}
-
-static void twin16_CPUB_register_w(INT32 data)
-{
- INT32 old = twin16_CPUB_register;
- twin16_CPUB_register = data;
- if (twin16_CPUB_register != old)
- {
- if ((old & 0x01) == 0 && (twin16_CPUB_register & 0x01))
- {
- SekClose();
- SekOpen(0);
- SekSetIRQLine(6, CPU_IRQSTATUS_AUTO);
- SekClose();
- SekOpen(1);
- }
-
- INT32 offset = (twin16_CPUB_register & 4) << 17;
- SekMapMemory(DrvGfxROM1 + 0x100000 + offset, 0x700000, 0x77ffff, MAP_ROM);
- }
-}
-
-void __fastcall twin16_main_write_word(UINT32 address, UINT16 data)
-{
- switch (address)
- {
- case 0xc0002:
- case 0xc0006:
- case 0xc000a:
- scrollx[((address - 2) & 0x0c) >> 2] = BURN_ENDIAN_SWAP_INT16(data);
- return;
-
- case 0xc0004:
- case 0xc0008:
- case 0xc000c:
- scrolly[((address - 4) & 0x0c) >> 2] = BURN_ENDIAN_SWAP_INT16(data);
- return;
-
- case 0xe0000:
- gfx_bank = BURN_ENDIAN_SWAP_INT16(data);
- return;
- }
-}
-
-void __fastcall twin16_main_write_byte(UINT32 address, UINT8 data)
-{
- switch (address)
- {
- case 0xa0001:
- if (twin16_custom_video == 1) {
- fround_CPU_register_w(data);
- } else {
- twin16_CPUA_register_w(data);
- }
- return;
-
- case 0xa0008:
- case 0xa0009:
- *soundlatch = data;
- ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
- return;
-
- case 0xa0011: // watchdog
- return;
-
- case 0xb0400:
- {
- *DrvNvRAMBank = data & 0x1f;
- int offset = data & 0x1f;
- SekMapMemory(DrvNvRAM + offset * 0x400, 0x0b0000, 0x0b03ff, MAP_RAM);
- }
- return;
-
- case 0xc0001:
- video_register = data;
- return;
- }
-}
-
-UINT16 __fastcall twin16_main_read_word(UINT32 address)
-{
- switch (address)
- {
- case 0x0c000e:
- case 0x0c000f: {
- static INT32 ret = 0;
- ret = 1-ret;
- return ret;
- }
-
- case 0x0a0000:
- case 0x0a0002:
- case 0x0a0004:
- case 0x0a0006:
- return DrvInputs[(address - 0x0a0000)/2];
-
- case 0x0a0010:
- return DrvDips[1];
-
- case 0x0a0012:
- return DrvDips[0];
-
- case 0x0a0018:
- return DrvDips[2];
- }
-
- return 0;
-}
-
-UINT8 __fastcall twin16_main_read_byte(UINT32 address)
-{
- switch (address)
- {
- case 0x0c000e:
- case 0x0c000f: {
- static INT32 ret = 0;
- ret = 1-ret;
- return ret;
- }
-
- case 0x0a0000:
- case 0x0a0001:
- case 0x0a0002:
- case 0x0a0003:
- case 0x0a0004:
- case 0x0a0005:
- case 0x0a0006:
- case 0x0a0007:
- return DrvInputs[(address - 0x0a0000)/2];
-
- case 0x0a0010:
- case 0x0a0011:
- return DrvDips[1];
-
- case 0x0a0012:
- case 0x0a0013:
- return DrvDips[0];
-
- case 0x0a0018:
- case 0x0a0019:
- return DrvDips[2];
- }
-
- return 0;
-}
-
-static inline void twin16_tile_write(INT32 offset)
-{
- DrvGfxExp[(offset << 1) + 2] = DrvTileRAM[offset + 0] >> 4;
- DrvGfxExp[(offset << 1) + 3] = DrvTileRAM[offset + 0] & 0x0f;
- DrvGfxExp[(offset << 1) + 0] = DrvTileRAM[offset + 1] >> 4;
- DrvGfxExp[(offset << 1) + 1] = DrvTileRAM[offset + 1] & 0x0f;
-}
-
-void __fastcall twin16_sub_write_word(UINT32 address, UINT16 data)
-{
- if ((address & 0xfc0000) == 0x500000) {
- INT32 offset = address & 0x3ffff;
- *((UINT16*)(DrvTileRAM + offset)) = BURN_ENDIAN_SWAP_INT16(data);
- twin16_tile_write(offset);
- return;
- }
-}
-
-void __fastcall twin16_sub_write_byte(UINT32 address, UINT8 data)
-{
- switch (address)
- {
- case 0xa0001:
- twin16_CPUB_register_w(data);
- return;
- }
-
- if ((address & 0xfc0000) == 0x500000) {
- INT32 offset = address & 0x3ffff;
- DrvTileRAM[offset^1] = data;
- twin16_tile_write(offset & ~1);
- return;
- }
-}
-
-void __fastcall twin16_sound_write(UINT16 address, UINT8 data)
-{
- switch (address)
- {
- case 0x9000:
- *soundlatch2 = data;
- UPD7759ResetWrite(0, data & 2);
- return;
-
- case 0xc000:
- BurnYM2151SelectRegister(data);
- return;
-
- case 0xc001:
- BurnYM2151WriteRegister(data);
- return;
-
- case 0xd000:
- UPD7759PortWrite(0, data);
- return;
-
- case 0xe000:
- UPD7759StartWrite(0, data & 1);
- return;
- }
-
- if ((address & 0xfff0) == 0xb000) {
- K007232WriteReg(0, address & 0x0f, data);
- return;
- }
-}
-
-UINT8 __fastcall twin16_sound_read(UINT16 address)
-{
- switch (address)
- {
- case 0x9000:
- return *soundlatch2;
-
- case 0xa000:
- ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
- return *soundlatch;
-
- case 0xc000:
- case 0xc001:
- return BurnYM2151ReadStatus();
-
- case 0xf000:
- return UPD7759BusyRead(0) ? 1 : 0;
- }
-
- if ((address & 0xfff0) == 0xb000) {
- return K007232ReadReg(0, address & 0x0f);
- }
-
- return 0;
-}
-
-static void DrvK007232VolCallback(INT32 v)
-{
- K007232SetVolume(0, 0, (v >> 0x4) * 0x11, 0);
- K007232SetVolume(0, 1, 0, (v & 0x0f) * 0x11);
-}
-
-static INT32 DrvDoReset()
-{
- DrvReset = 0;
-
- memset (AllRam, 0, RamEnd - AllRam);
-
- SekOpen(0);
- SekReset();
- SekClose();
-
- SekOpen(1);
- SekReset();
- SekClose();
-
- ZetOpen(0);
- ZetReset();
- ZetClose();
-
- BurnYM2151Reset();
-
- UPD7759Reset();
-
- gfx_bank = 0x3210; // for other than fround
- video_register = 0;
-
- twin16_CPUA_register = 0;
- twin16_CPUB_register = 0;
-
- return 0;
-}
-
-static INT32 MemIndex()
-{
- UINT8 *Next; Next = AllMem;
-
- Drv68KROM0 = Next; Next += 0x040000;
- Drv68KROM1 = Next; Next += 0x040000;
- DrvZ80ROM = Next; Next += 0x008000;
-
- DrvGfxROM0 = Next; Next += 0x008000;
- DrvGfxROM1 = Next; Next += 0x200000;
- DrvGfxROM2 = Next; Next += 0x020000;
-
- DrvSndROM0 = Next; Next += 0x020000;
- DrvSndROM1 = Next; Next += 0x020000;
-
- DrvGfxExp = Next; Next += 0x400000;
- DrvNvRAM = Next; Next += 0x008000;
-
- DrvPalette = (UINT32*)Next; Next += 0x0400 * sizeof(UINT32);
-
- AllRam = Next;
-
- DrvSprRAM = Next; Next += 0x004000;
- DrvSprBuf = Next; Next += 0x004000;
- DrvShareRAM = Next; Next += 0x010000;
- Drv68KRAM0 = Next; Next += 0x004000;
- DrvPalRAM = Next; Next += 0x001000;
- DrvVidRAM2 = Next; Next += 0x006000;
- DrvVidRAM = Next; Next += 0x004000;
- Drv68KRAM1 = Next; Next += 0x004000;
- DrvFgRAM = Next; Next += 0x004000;
- DrvTileRAM = Next; Next += 0x040000;
- DrvSprGfxRAM = Next; Next += 0x020000;
-
- DrvZ80RAM = Next; Next += 0x001000;
-
- DrvNvRAMBank = Next; Next += 0x000001;
-
- scrollx = (UINT16*)Next; Next += 0x00004 * sizeof(UINT16);
- scrolly = (UINT16*)Next; Next += 0x00004 * sizeof(UINT16);
-
- soundlatch = Next; Next += 0x000001;
- soundlatch2 = Next; Next += 0x000001;
-
- RamEnd = Next;
-
- MemEnd = Next;
-
- return 0;
-}
-
-static void expand4bpp(UINT8 *src, UINT8 *dst, INT32 len)
-{
- for (INT32 i = len-1; i > 0; i--) {
- dst[i * 2 + 0] = src[i] >> 4;
- dst[i * 2 + 1] = src[i] & 0x0f;
- }
-}
-
-static void gfxdecode()
-{
- UINT16 *src = (UINT16*)DrvGfxROM1;
- UINT16 *dst = (UINT16*)BurnMalloc(0x200000);
- for (INT32 i = 0; i < 0x80000; i++)
- {
- dst[i * 2 + 0] = src[i + 0x80000];
- dst[i * 2 + 1] = src[i + 0x00000];
- }
- memcpy (src, dst, 0x200000);
- BurnFree(dst);
-}
-
-static INT32 load68k(UINT8 *rom, INT32 offs)
-{
- if (BurnLoadRom(rom + 0x000001, offs+0, 2)) return 1;
- if (BurnLoadRom(rom + 0x000000, offs+1, 2)) return 1;
- if (BurnLoadRom(rom + 0x020001, offs+2, 2)) return 1;
- if (BurnLoadRom(rom + 0x020000, offs+3, 2)) return 1;
-
- return 0;
-}
-
-static INT32 DrvInit(INT32 (pLoadCallback)())
-{
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (pLoadCallback != NULL) {
- if (pLoadCallback()) return 1;
- }
-
- gfxdecode();
- expand4bpp(DrvGfxROM0, DrvGfxROM0, 0x4000);
-
- if (twin16_custom_video == 1)
- {
- BurnByteswap(DrvGfxROM1, 0x200000);
- expand4bpp(DrvGfxROM1, DrvGfxExp, 0x200000);
- BurnByteswap(DrvGfxROM1, 0x200000);
- }
- }
-
- SekInit(0, 0x68000);
- SekOpen(0);
- SekMapMemory(Drv68KROM0, 0x000000, 0x03ffff, MAP_ROM);
- SekMapMemory(DrvShareRAM, 0x040000, 0x04ffff, MAP_RAM);
- SekMapMemory(Drv68KRAM0, 0x060000, 0x063fff, MAP_RAM);
- SekMapMemory(DrvPalRAM, 0x080000, 0x080fff, MAP_RAM);
- SekMapMemory(DrvNvRAM, 0x0b0000, 0x0b03ff, MAP_RAM);
- SekMapMemory(DrvVidRAM2, 0x100000, 0x105fff, MAP_RAM);
- SekMapMemory(DrvVidRAM, 0x120000, 0x123fff, MAP_RAM);
- SekMapMemory(DrvSprRAM, 0x140000, 0x143fff, MAP_RAM);
- SekMapMemory(DrvGfxROM1, 0x500000, 0x6fffff, MAP_ROM);
- SekSetWriteWordHandler(0, twin16_main_write_word);
- SekSetWriteByteHandler(0, twin16_main_write_byte);
- SekSetReadWordHandler(0, twin16_main_read_word);
- SekSetReadByteHandler(0, twin16_main_read_byte);
- SekClose();
-
- SekInit(1, 0x68000);
- SekOpen(1);
- SekMapMemory(Drv68KROM1, 0x000000, 0x03ffff, MAP_ROM);
- SekMapMemory(DrvShareRAM, 0x040000, 0x04ffff, MAP_RAM);
- SekMapMemory(Drv68KRAM1, 0x060000, 0x063fff, MAP_RAM);
- SekMapMemory(DrvGfxROM2, 0x080000, 0x09ffff, MAP_ROM);
- SekMapMemory(DrvSprRAM, 0x400000, 0x403fff, MAP_RAM);
- SekMapMemory(DrvVidRAM, 0x480000, 0x483fff, MAP_RAM);
- SekMapMemory(DrvTileRAM, 0x500000, 0x53ffff, MAP_ROM);
- SekMapMemory(DrvGfxROM1, 0x600000, 0x6fffff, MAP_ROM);
- SekMapMemory(DrvGfxROM1 + 0x100000, 0x700000, 0x77ffff, MAP_ROM);
- SekMapMemory(DrvSprGfxRAM, 0x780000, 0x79ffff, MAP_RAM);
- SekSetWriteWordHandler(0, twin16_sub_write_word);
- SekSetWriteByteHandler(0, twin16_sub_write_byte);
- SekClose();
-
- ZetInit(0);
- ZetOpen(0);
- ZetMapArea(0x0000, 0x7fff, 0, DrvZ80ROM);
- ZetMapArea(0x0000, 0x7fff, 2, DrvZ80ROM);
- ZetMapArea(0x8000, 0x8fff, 0, DrvZ80RAM);
- ZetMapArea(0x8000, 0x8fff, 1, DrvZ80RAM);
- ZetMapArea(0x8000, 0x8fff, 2, DrvZ80RAM);
- ZetSetWriteHandler(twin16_sound_write);
- ZetSetReadHandler(twin16_sound_read);
- ZetClose();
-
- K007232Init(0, 3579545, DrvSndROM0, 0x20000);
- K007232SetPortWriteHandler(0, DrvK007232VolCallback);
- K007232PCMSetAllRoutes(0, 0.12, BURN_SND_ROUTE_BOTH);
-
- BurnYM2151Init(3579545);
- BurnYM2151SetRoute(BURN_SND_YM2151_YM2151_ROUTE_1, 1.00, BURN_SND_ROUTE_LEFT);
- BurnYM2151SetRoute(BURN_SND_YM2151_YM2151_ROUTE_2, 1.00, BURN_SND_ROUTE_RIGHT);
-
- UPD7759Init(0, UPD7759_STANDARD_CLOCK, DrvSndROM1);
- UPD7759SetRoute(0, 0.20, BURN_SND_ROUTE_BOTH);
-
- GenericTilesInit();
-
- DrvDoReset();
-
- return 0;
-}
-
-static INT32 DrvExit()
-{
- GenericTilesExit();
-
- SekExit();
- ZetExit();
-
- K007232Exit();
- UPD7759Exit();
- BurnYM2151Exit();
-
- BurnFree (AllMem);
-
- is_vulcan = 0;
- twin16_custom_video = 0;
-
- return 0;
-}
-
-static inline void DrvRecalcPal()
-{
- UINT8 r,g,b;
- UINT16 *p = (UINT16*)DrvPalRAM;
- for (INT32 i = 0; i < 0x1000 / 2; i+=2)
- {
- INT32 d = ((BURN_ENDIAN_SWAP_INT16(p[i+0]) & 0xff) << 8) | (BURN_ENDIAN_SWAP_INT16(p[i+1]) & 0xff);
-
- r = (d >> 0) & 0x1f;
- g = (d >> 5) & 0x1f;
- b = (d >> 10) & 0x1f;
-
- r = (r << 3) | (r >> 2);
- g = (g << 3) | (g >> 2);
- b = (b << 3) | (b >> 2);
-
- DrvPalette[i/2] = BurnHighCol(r, g, b, 0);
- }
-}
-
-static void draw_fg_layer()
-{
- INT32 flipx = (video_register & 2) ? 0x1f8 : 0;
- INT32 flipy = (video_register & 1) ? 0x0f8 : 0;
-
- UINT16 *vram = (UINT16*)DrvVidRAM2;
-
- for (INT32 offs = 0x80; offs < 0x780; offs++)
- {
- INT32 sx = (offs & 0x3f) << 3;
- INT32 sy = (offs >> 6) << 3;
-
- sx ^= flipx;
- sy ^= flipy;
-
- if (flipx) sx -= 192;
- sy -= 16;
-
- if (sx >= nScreenWidth) continue;
-
- INT32 attr = BURN_ENDIAN_SWAP_INT16(vram[offs]);
- INT32 code = attr & 0x1ff;
- INT32 color = (attr >> 9) & 0x0f;
-
- if (code == 0) continue;
-
- if (sx >= 0 && sx < nScreenWidth-7 && sy >= 0 && sy < nScreenHeight-7) {
- if (flipx) {
- Render8x8Tile_Mask_FlipXY(pTransDraw, code, sx, sy, color, 4, 0, 0, DrvGfxROM0);
- } else {
- Render8x8Tile_Mask(pTransDraw, code, sx, sy, color, 4, 0, 0, DrvGfxROM0);
- }
- } else {
- if (flipx) {
- Render8x8Tile_Mask_FlipXY_Clip(pTransDraw, code, sx, sy, color, 4, 0, 0, DrvGfxROM0);
- } else {
- Render8x8Tile_Mask_Clip(pTransDraw, code, sx, sy, color, 4, 0, 0, DrvGfxROM0);
- }
- }
- }
-}
-
-static void draw_layer(INT32 opaque)
-{
- INT32 o = 0;
- INT32 banks[4];
- if (((video_register & 8) >> 3) != opaque) o = 1;
-
- UINT16 *vram = (UINT16*)(DrvVidRAM + (o << 13));
- banks[3] = gfx_bank >> 12;
- banks[2] = (gfx_bank >> 8) & 0x0f;
- banks[1] = (gfx_bank >> 4) & 0x0f;
- banks[0] = gfx_bank & 0xf;
-
- INT32 dx = BURN_ENDIAN_SWAP_INT16(scrollx[1+o]);
- INT32 dy = BURN_ENDIAN_SWAP_INT16(scrolly[1+o]);
-
- INT32 flipx = 0;
- INT32 flipy = 0;
-
- if (video_register & 2) {
- dx = 256-dx-64;
- flipx = 1;
- }
-
- if (video_register & 1) {
- dy = 256-dy;
- flipy = 1;
- }
- if (is_vulcan) flipy ^= 1;
-
- INT32 palette = o;
-
- for (INT32 offs = 0; offs < 64 * 64; offs++)
- {
- INT32 sx = (offs & 0x3f) << 3;
- INT32 sy = (offs >> 6) << 3;
- if (video_register & 2) sx ^= 0x1f8;
- if (video_register & 1) sy ^= 0x1f8;
-
- sx = (sx - dx) & 0x1ff;
- sy = (sy - dy) & 0x1ff;
- if (sx >= 320) sx-=512;
- if (sy >= 256) sy-=512;
-
- sy -= 16;
-
- INT32 code = BURN_ENDIAN_SWAP_INT16(vram[offs]);
- INT32 color = (0x20 + (code >> 13) + 8 * palette);
- code = (code & 0x7ff) | (banks[(code >> 11) & 3] << 11);
-
- if (sx >= 0 && sx < nScreenWidth-7 && sy >= 0 && sy < nScreenHeight-7) {
- if (opaque) {
- if (flipy) {
- if (flipx) {
- Render8x8Tile_FlipXY(pTransDraw, code, sx, sy, color, 4, 0, DrvGfxExp);
- } else {
- Render8x8Tile_FlipY(pTransDraw, code, sx, sy, color, 4, 0, DrvGfxExp);
- }
- } else {
- if (flipx) {
- Render8x8Tile_FlipX(pTransDraw, code, sx, sy, color, 4, 0, DrvGfxExp);
- } else {
- Render8x8Tile(pTransDraw, code, sx, sy, color, 4, 0, DrvGfxExp);
- }
- }
- } else {
- if (code == 0) continue;
-
- if (flipy) {
- if (flipx) {
- Render8x8Tile_Mask_FlipXY(pTransDraw, code, sx, sy, color, 4, 0, 0, DrvGfxExp);
- } else {
- Render8x8Tile_Mask_FlipY(pTransDraw, code, sx, sy, color, 4, 0, 0, DrvGfxExp);
- }
- } else {
- if (flipx) {
- Render8x8Tile_Mask_FlipX(pTransDraw, code, sx, sy, color, 4, 0, 0, DrvGfxExp);
- } else {
- Render8x8Tile_Mask(pTransDraw, code, sx, sy, color, 4, 0, 0, DrvGfxExp);
- }
- }
- }
- } else {
- if (sy < -7 || sy >= nScreenHeight || sx >= nScreenWidth) continue;
-
- if (opaque) {
- if (flipy) {
- if (flipx) {
- Render8x8Tile_FlipXY_Clip(pTransDraw, code, sx, sy, color, 4, 0, DrvGfxExp);
- } else {
- Render8x8Tile_FlipY_Clip(pTransDraw, code, sx, sy, color, 4, 0, DrvGfxExp);
- }
- } else {
- if (flipx) {
- Render8x8Tile_FlipX_Clip(pTransDraw, code, sx, sy, color, 4, 0, DrvGfxExp);
- } else {
- Render8x8Tile_Clip(pTransDraw, code, sx, sy, color, 4, 0, DrvGfxExp);
- }
- }
- } else {
- if (code == 0) continue;
-
- if (flipy) {
- if (flipx) {
- Render8x8Tile_Mask_FlipXY_Clip(pTransDraw, code, sx, sy, color, 4, 0, 0, DrvGfxExp);
- } else {
- Render8x8Tile_Mask_FlipY_Clip(pTransDraw, code, sx, sy, color, 4, 0, 0, DrvGfxExp);
- }
- } else {
- if (flipx) {
- Render8x8Tile_Mask_FlipX_Clip(pTransDraw, code, sx, sy, color, 4, 0, 0, DrvGfxExp);
- } else {
- Render8x8Tile_Mask_Clip(pTransDraw, code, sx, sy, color, 4, 0, 0, DrvGfxExp);
- }
- }
- }
- }
- }
-}
-
-static void draw_sprite(UINT16 *pen_data, INT32 pal_base, INT32 xpos, INT32 ypos, INT32 width, INT32 height, INT32 flipx, INT32 flipy)
-{
- if (xpos >= 320) xpos -= 0x10000;
- if (ypos >= 256) ypos -= 0x10000;
-
- for (INT32 y = 0; y < height; y++)
- {
- INT32 sy = (flipy) ? (ypos + height - 1 - y) : (ypos + y);
-
- if (sy >= 16 && sy < 240)
- {
- UINT16 *dest = pTransDraw + (sy - 16) * nScreenWidth;
-
- for (INT32 x = 0; x < width; x++)
- {
- INT32 sx = (flipx) ? (xpos + width - 1 - x) : (xpos + x);
-
- if (sx >= 0 && sx < 320)
- {
- INT32 pen = BURN_ENDIAN_SWAP_INT16(pen_data[x/4]);
-
- pen = (pen >> ((~x & 3) << 2)) & 0x0f;
-
- if (pen) dest[sx] = pal_base + pen;
- }
- }
- }
-
- pen_data += width/4;
- }
-}
-
-static void draw_sprites(INT32 priority)
-{
- UINT16 *twin16_sprite_gfx_ram = (UINT16*)DrvSprGfxRAM;
- UINT16 *twin16_gfx_rom = (UINT16*)DrvGfxROM1;
- UINT16 *buffered_spriteram16 = (UINT16*)DrvSprBuf;
-
- UINT16 *source = 0x1800+buffered_spriteram16;
- UINT16 *finish = 0x1800+buffered_spriteram16 + 0x800 - 4;
-
- for (; source < finish; source += 4)
- {
- INT32 attributes = BURN_ENDIAN_SWAP_INT16(source[3]);
- INT32 prio = (attributes&0x4000) >> 14;
- if (prio != priority) continue;
-
- INT32 code = BURN_ENDIAN_SWAP_INT16(source[0]);
-
- if (code != 0xffff && attributes & 0x8000)
- {
- INT32 xpos = BURN_ENDIAN_SWAP_INT16(source[1]);
- INT32 ypos = BURN_ENDIAN_SWAP_INT16(source[2]);
-
- INT32 pal_base = ((attributes&0xf)+0x10)*16;
- INT32 height = 16<<((attributes>>6)&0x3);
- INT32 width = 16<<((attributes>>4)&0x3);
- INT32 flipy = attributes&0x0200;
- INT32 flipx = attributes&0x0100;
- UINT16 *pen_data = 0;
-
- if( twin16_custom_video == 1 )
- {
- pen_data = twin16_gfx_rom + 0x80000;
- }
- else
- {
- switch( (code>>12)&0x3 )
- {
- case 0:
- pen_data = twin16_gfx_rom;
- break;
-
- case 1:
- pen_data = twin16_gfx_rom + 0x40000;
- break;
-
- case 2:
- pen_data = twin16_gfx_rom + 0x80000;
- if( code&0x4000 ) pen_data += 0x40000;
- break;
-
- case 3:
- pen_data = twin16_sprite_gfx_ram;
- break;
- }
-
- code &= 0xfff;
- }
-
- if (height == 64 && width == 64)
- {
- code &= ~8;
- }
- else if (height == 32 && width == 32)
- {
- code &= ~3;
- }
- else if (height == 32 && width == 16)
- {
- code &= ~1;
- }
- else if (height == 16 && width == 32)
- {
- code &= ~1;
- }
-
- pen_data += code << 6;
-
- if( video_register&1 )
- {
- if (ypos>65000) ypos=ypos-65536;
- ypos = 256-ypos-height;
- flipy = !flipy;
- }
- if( video_register&2 )
- {
- if (xpos>65000) xpos=xpos-65536;
- xpos = 320-xpos-width;
- flipx = !flipx;
- }
-
- draw_sprite(pen_data, pal_base, xpos, ypos, width, height, flipx, flipy);
- }
- }
-}
-
-static INT32 DrvDraw()
-{
- if (DrvRecalc) {
- DrvRecalcPal();
- }
-
- if (nBurnLayer & 1) draw_layer(1);
- if (nSpriteEnable & 1) draw_sprites(1);
- if (nBurnLayer & 2) draw_layer(0);
- if (nSpriteEnable & 2) draw_sprites(0);
- if (nBurnLayer & 4) draw_fg_layer();
-
- BurnTransferCopy(DrvPalette);
-
- return 0;
-}
-
-static INT32 DrvFrame()
-{
- if (DrvReset) {
- DrvDoReset();
- }
-
- {
- memset (DrvInputs, 0xff, sizeof ( DrvInputs ));
-
- for (INT32 i = 0; i < 16; i++)
- {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- DrvInputs[2] ^= (DrvJoy3[i] & 1) << i;
- DrvInputs[3] ^= (DrvJoy4[i] & 1) << i;
- }
-
- // Clear Opposites
- if ((DrvInputs[1] & 0x0c) == 0) DrvInputs[1] |= 0x0c;
- if ((DrvInputs[1] & 0x03) == 0) DrvInputs[1] |= 0x03;
- if ((DrvInputs[2] & 0x0c) == 0) DrvInputs[2] |= 0x0c;
- if ((DrvInputs[2] & 0x03) == 0) DrvInputs[2] |= 0x03;
- if ((DrvInputs[3] & 0x0c) == 0) DrvInputs[3] |= 0x0c;
- if ((DrvInputs[3] & 0x03) == 0) DrvInputs[3] |= 0x03;
- }
-
- INT32 nSegment;
- INT32 nSoundBufferPos = 0;
- INT32 nInterleave = 100;
- if (twin16_custom_video == 0 && is_vulcan == 0) nInterleave = 1000; // devilw
-
- INT32 nTotalCycles[3] = { (twin16_custom_video == 1) ? 10000000 / 60 : 9216000 / 60, 9216000 / 60, 3579545 / 60 };
- INT32 nCyclesDone[3] = { 0, 0, 0 };
-
- ZetOpen(0);
-
- for (INT32 i = 0; i < nInterleave; i++)
- {
- SekOpen(0);
- nSegment = (nTotalCycles[0] - nCyclesDone[0]) / (nInterleave - i);
- nCyclesDone[0] += SekRun(nSegment);
- if ((twin16_CPUA_register & 0x20) && i == nInterleave-1) SekSetIRQLine(5, CPU_IRQSTATUS_AUTO);
- SekClose();
-
- if (twin16_custom_video != 1) {
- SekOpen(1);
- nCyclesDone[1] += SekRun(nSegment);
- if ((twin16_CPUB_register & 0x02) && i == nInterleave-1) SekSetIRQLine(5, CPU_IRQSTATUS_AUTO);
- SekClose();
- }
-
- nSegment = (nTotalCycles[2] - nCyclesDone[2]) / (nInterleave - i);
-
- nCyclesDone[1] += ZetRun(nSegment);
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen / nInterleave;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- BurnYM2151Render(pSoundBuf, nSegmentLength);
- UPD7759Update(0, pSoundBuf, nSegmentLength);
- K007232Update(0, pSoundBuf, nSegmentLength);
- nSoundBufferPos += nSegmentLength;
- }
- }
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
- if (nSegmentLength) {
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- BurnYM2151Render(pSoundBuf, nSegmentLength);
- UPD7759Update(0, pSoundBuf, nSegmentLength);
- K007232Update(0, pSoundBuf, nSegmentLength);
- }
- }
-
- ZetClose();
-
- if (pBurnDraw) {
- DrvDraw();
- }
-
- if(~twin16_CPUA_register & 0x40 && need_process_spriteram)
- twin16_spriteram_process();
-
- need_process_spriteram = 1;
-
- memcpy (DrvSprBuf, DrvSprRAM, 0x4000);
-
- return 0;
-}
-
-static INT32 DrvScan(INT32 nAction,INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin) {
- *pnMin = 0x029702;
- }
-
- if (nAction & ACB_MEMORY_RAM) {
- ba.Data = AllRam;
- ba.nLen = RamEnd - AllRam;
- ba.nAddress = 0x000000;
- ba.szName = "All RAM";
- BurnAcb(&ba);
- }
-
- if (nAction & ACB_NVRAM) {
- ba.Data = DrvNvRAM;
- ba.nLen = 0x008000;
- ba.nAddress = 0xb00000;
- ba.szName = "Cue Brick NV RAM";
- BurnAcb(&ba);
- }
-
- if (nAction & ACB_DRIVER_DATA) {
- SekScan(nAction);
- ZetScan(nAction);
-
- UPD7759Scan(0, nAction, pnMin);
- BurnYM2151Scan(nAction);
- K007232Scan(nAction, pnMin);
-
- SCAN_VAR(gfx_bank);
- SCAN_VAR(video_register);
- SCAN_VAR(twin16_CPUA_register);
- SCAN_VAR(twin16_CPUB_register);
- }
-
- if (nAction & ACB_WRITE) {
- if (twin16_custom_video != 1) {
- for (INT32 i = 0; i < 0x40000; i+=2) {
- twin16_tile_write(i);
- }
- }
-
- SekOpen(0);
- SekMapMemory(DrvNvRAM + (*DrvNvRAMBank * 0x400), 0x0b0000, 0x0b03ff, MAP_RAM);
- SekClose();
-
- SekOpen(1);
- INT32 offset = (twin16_CPUB_register & 4) << 17;
- SekMapMemory(DrvGfxROM1 + 0x100000 + offset, 0x700000, 0x77ffff, MAP_ROM);
- SekClose();
- }
-
- return 0;
-}
-
-
-// Devil World
-
-static struct BurnRomInfo devilwRomDesc[] = {
- { "687_t05.6n", 0x10000, 0x8ab7dc61, 1 | BRF_PRG | BRF_ESS }, // 0 68K #0 Code
- { "687_t04.4n", 0x10000, 0xc69924da, 1 | BRF_PRG | BRF_ESS }, // 1
- { "687_t09.6r", 0x10000, 0xfae97de0, 1 | BRF_PRG | BRF_ESS }, // 2
- { "687_t08.4r", 0x10000, 0x8c898d67, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "687_q07.10n", 0x10000, 0x53110c0b, 2 | BRF_PRG | BRF_ESS }, // 4 68K #1 Code
- { "687_q06.8n", 0x10000, 0x9c53a0c5, 2 | BRF_PRG | BRF_ESS }, // 5
- { "687_q13.10s", 0x10000, 0x36ae6014, 2 | BRF_PRG | BRF_ESS }, // 6
- { "687_q12.8s", 0x10000, 0x6d012167, 2 | BRF_PRG | BRF_ESS }, // 7
-
- { "687_l03.10a", 0x08000, 0x7201983c, 3 | BRF_PRG | BRF_ESS }, // 8 Z80 Code
-
- { "687_m14.d8", 0x04000, 0xd7338557, 4 | BRF_GRA }, // 9 Characters
-
- { "687i17.p16", 0x80000, 0x66cb3923, 5 | BRF_GRA }, // 10 Sprites / Bg Tiles
- { "687i18.p18", 0x80000, 0xa1c7d0db, 5 | BRF_GRA }, // 11
- { "687i15.p13", 0x80000, 0xeec8c5b2, 5 | BRF_GRA }, // 12
- { "687i16.p15", 0x80000, 0x746cf48b, 5 | BRF_GRA }, // 13
-
- { "687_l11.10r", 0x10000, 0x399deee8, 6 | BRF_GRA }, // 14 Sprites / Bg Tiles
- { "687_l10.8r", 0x10000, 0x117c91ee, 6 | BRF_GRA }, // 15
-
- { "687_i01.5a", 0x20000, 0xd4992dfb, 7 | BRF_SND }, // 16 K007232 Samples
-
- { "687_i02.7c", 0x20000, 0xe5947501, 8 | BRF_SND }, // 17 UPD7759 Samples
-};
-
-STD_ROM_PICK(devilw)
-STD_ROM_FN(devilw)
-
-static INT32 devilwCallback()
-{
- if (load68k(Drv68KROM0, 0)) return 1;
- if (load68k(Drv68KROM1, 4)) return 1;
-
- if (BurnLoadRom(DrvZ80ROM + 0x000000, 8, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x000000, 9, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM1 + 0x000000, 10, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x080000, 11, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x100000, 12, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x180000, 13, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM2 + 0x000001, 14, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x000000, 15, 2)) return 1;
-
- if (BurnLoadRom(DrvSndROM0 + 0x000000, 16, 1)) return 1;
- if (BurnLoadRom(DrvSndROM1 + 0x000000, 17, 1)) return 1;
-
- return 0;
-}
-
-static INT32 devilwInit()
-{
- twin16_custom_video = 0;
-
- return DrvInit(devilwCallback);
-}
-
-struct BurnDriver BurnDrvDevilw = {
- "devilw", NULL, NULL, NULL, "1987",
- "Devil World\0", NULL, "Konami", "GX687",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_PREFIX_KONAMI, GBF_SHOOT, 0,
- NULL, devilwRomInfo, devilwRomName, NULL, NULL, DevilwInputInfo, DevilwDIPInfo,
- devilwInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x400,
- 320, 224, 4, 3
-};
-
-
-// Majuu no Ohkoku
-
-static struct BurnRomInfo majuuRomDesc[] = {
- { "687_s05.6n", 0x10000, 0xbd99b434, 1 | BRF_PRG | BRF_ESS }, // 0 68K #0 Code
- { "687_s04.4n", 0x10000, 0x3df732e2, 1 | BRF_PRG | BRF_ESS }, // 1
- { "687_s09.6r", 0x10000, 0x1f6efec3, 1 | BRF_PRG | BRF_ESS }, // 2
- { "687_s08.4r", 0x10000, 0x8a16c8c6, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "687_q07.10n", 0x10000, 0x53110c0b, 2 | BRF_PRG | BRF_ESS }, // 4 68K #1 Code
- { "687_q06.8n", 0x10000, 0x9c53a0c5, 2 | BRF_PRG | BRF_ESS }, // 5
- { "687_q13.10s", 0x10000, 0x36ae6014, 2 | BRF_PRG | BRF_ESS }, // 6
- { "687_q12.8s", 0x10000, 0x6d012167, 2 | BRF_PRG | BRF_ESS }, // 7
-
- { "687_l03.10a", 0x08000, 0x7201983c, 3 | BRF_PRG | BRF_ESS }, // 8 Z80 Code
-
- { "687_l14.d8", 0x04000, 0x20ecccd6, 4 | BRF_GRA }, // 9 Characters
-
- { "687i17.p16", 0x80000, 0x66cb3923, 5 | BRF_GRA }, // 10 Sprites / Bg Tiles
- { "687i18.p18", 0x80000, 0xa1c7d0db, 5 | BRF_GRA }, // 11
- { "687i15.p13", 0x80000, 0xeec8c5b2, 5 | BRF_GRA }, // 12
- { "687i16.p15", 0x80000, 0x746cf48b, 5 | BRF_GRA }, // 13
-
- { "687_l11.10r", 0x10000, 0x399deee8, 6 | BRF_GRA }, // 14 Sprites / Bg Tiles
- { "687_l10.8r", 0x10000, 0x117c91ee, 6 | BRF_GRA }, // 15
-
- { "687_i01.5a", 0x20000, 0xd4992dfb, 7 | BRF_SND }, // 16 K007232 Samples
-
- { "687_i02.7c", 0x20000, 0xe5947501, 8 | BRF_SND }, // 17 UPD7759 Samples
-};
-
-STD_ROM_PICK(majuu)
-STD_ROM_FN(majuu)
-
-struct BurnDriver BurnDrvMajuu = {
- "majuu", "devilw", NULL, NULL, "1987",
- "Majuu no Ohkoku\0", NULL, "Konami", "GX687",
- L"\u9B54\u7363\u306E\u738B\u56FD\0Majuu no Ohkoku\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_KONAMI, GBF_SHOOT, 0,
- NULL, majuuRomInfo, majuuRomName, NULL, NULL, DevilwInputInfo, DevilwDIPInfo,
- devilwInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x400,
- 320, 224, 4, 3
-};
-
-
-// Dark Adventure
-
-static struct BurnRomInfo darkadvRomDesc[] = {
- { "687_n05.6n", 0x10000, 0xa9195b0b, 1 | BRF_PRG | BRF_ESS }, // 0 68K #0 Code
- { "687_n04.4n", 0x10000, 0x65b55105, 1 | BRF_PRG | BRF_ESS }, // 1
- { "687_n09.6r", 0x10000, 0x1c6b594c, 1 | BRF_PRG | BRF_ESS }, // 2
- { "687_n08.4r", 0x10000, 0xa9603196, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "687_n07.10n", 0x10000, 0x6154322a, 2 | BRF_PRG | BRF_ESS }, // 4 68K #1 Code
- { "687_n06.8n", 0x10000, 0x37a72e8b, 2 | BRF_PRG | BRF_ESS }, // 5
- { "687_n13.10s", 0x10000, 0xf1c252af, 2 | BRF_PRG | BRF_ESS }, // 6
- { "687_n12.8s", 0x10000, 0xda221944, 2 | BRF_PRG | BRF_ESS }, // 7
-
- { "687_n03.10a", 0x08000, 0xa24c682f, 3 | BRF_PRG | BRF_ESS }, // 8 Z80 Code
-
- { "687_n14.d8", 0x04000, 0xc76ac6d2, 4 | BRF_GRA }, // 9 Characters
-
- { "687i17.p16", 0x80000, 0x66cb3923, 5 | BRF_GRA }, // 10 Sprites / Bg Tiles
- { "687i18.p18", 0x80000, 0xa1c7d0db, 5 | BRF_GRA }, // 11
- { "687i15.p13", 0x80000, 0xeec8c5b2, 5 | BRF_GRA }, // 12
- { "687i16.p15", 0x80000, 0x746cf48b, 5 | BRF_GRA }, // 13
-
- { "687_l11.10r", 0x10000, 0x399deee8, 6 | BRF_GRA }, // 14 Sprites / Bg Tiles
- { "687_l10.8r", 0x10000, 0x117c91ee, 6 | BRF_GRA }, // 15
-
- { "687_i01.5a", 0x20000, 0xd4992dfb, 7 | BRF_SND }, // 16 K007232 Samples
-
- { "687_i02.7c", 0x20000, 0xe5947501, 8 | BRF_SND }, // 17 UPD7759 Samples
-};
-
-STD_ROM_PICK(darkadv)
-STD_ROM_FN(darkadv)
-
-struct BurnDriver BurnDrvDarkadv = {
- "darkadv", "devilw", NULL, NULL, "1987",
- "Dark Adventure\0", NULL, "Konami", "GX687",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 3, HARDWARE_PREFIX_KONAMI, GBF_SHOOT, 0,
- NULL, darkadvRomInfo, darkadvRomName, NULL, NULL, DarkadvInputInfo, DarkadvDIPInfo,
- devilwInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x400,
- 320, 224, 4, 3
-};
-
-
-// Vulcan Venture (New)
-
-static struct BurnRomInfo vulcanRomDesc[] = {
- { "785_w05.6n", 0x10000, 0x6e0e99cd, 1 | BRF_PRG | BRF_ESS }, // 0 68K #0 Code
- { "785_w04.4n", 0x10000, 0x23ec74ca, 1 | BRF_PRG | BRF_ESS }, // 1
- { "785_w09.6r", 0x10000, 0x377e4f28, 1 | BRF_PRG | BRF_ESS }, // 2
- { "785_w08.4r", 0x10000, 0x813d41ea, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "785_p07.10n", 0x10000, 0x686d549d, 2 | BRF_PRG | BRF_ESS }, // 4 68K #1 Code
- { "785_p06.8n", 0x10000, 0x70c94bee, 2 | BRF_PRG | BRF_ESS }, // 5
- { "785_p13.10s", 0x10000, 0x478fdb0a, 2 | BRF_PRG | BRF_ESS }, // 6
- { "785_p12.8s", 0x10000, 0x38ea402a, 2 | BRF_PRG | BRF_ESS }, // 7
-
- { "785_g03.10a", 0x08000, 0x67a3b50d, 3 | BRF_PRG | BRF_ESS }, // 0 Z80 Code
-
- { "785_h14.d8", 0x04000, 0x02f4b16f, 4 | BRF_GRA }, // 9 Characters
-
- { "785f17.p16", 0x80000, 0x4e7a7b82, 5 | BRF_GRA }, // 10 Sprites / Bg Tiles
- { "785f18.p18", 0x80000, 0x3f604e9a, 5 | BRF_GRA }, // 11
- { "785f15.p13", 0x80000, 0x5bd239ac, 5 | BRF_GRA }, // 12
- { "785f16.p15", 0x80000, 0x95c6b8a3, 5 | BRF_GRA }, // 13
-
- { "785_f01.5a", 0x20000, 0xa0d8d69e, 7 | BRF_SND }, // 14 K007232 Samples
-
- { "785_f02.7c", 0x20000, 0xc39f5ca4, 8 | BRF_SND }, // 15 UPD7759 Samples
-};
-
-STD_ROM_PICK(vulcan)
-STD_ROM_FN(vulcan)
-
-static INT32 vulcanCallback()
-{
- if (load68k(Drv68KROM0, 0)) return 1;
- if (load68k(Drv68KROM1, 4)) return 1;
-
- if (BurnLoadRom(DrvZ80ROM + 0x000000, 8, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x000000, 9, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM1 + 0x000000, 10, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x080000, 11, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x100000, 12, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x180000, 13, 1)) return 1;
-
- if (BurnLoadRom(DrvSndROM0 + 0x000000, 14, 1)) return 1;
- if (BurnLoadRom(DrvSndROM1 + 0x000000, 15, 1)) return 1;
-
- return 0;
-}
-
-static INT32 vulcanInit()
-{
- is_vulcan = 1;
- twin16_custom_video = 0;
-
- return DrvInit(vulcanCallback);
-}
-
-struct BurnDriver BurnDrvVulcan = {
- "vulcan", NULL, NULL, NULL, "1988",
- "Vulcan Venture (New)\0", NULL, "Konami", "GX785",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_PREFIX_KONAMI, GBF_HORSHOOT, 0,
- NULL, vulcanRomInfo, vulcanRomName, NULL, NULL, DrvInputInfo, VulcanDIPInfo,
- vulcanInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x400,
- 320, 224, 4, 3
-};
-
-
-// Vulcan Venture (Old)
-
-static struct BurnRomInfo vulcanaRomDesc[] = {
- { "785_r05.6n", 0x10000, 0x1777a57b, 1 | BRF_PRG | BRF_ESS }, // 0 68K #0 Code
- { "785_r04.4n", 0x10000, 0x790cbdf3, 1 | BRF_PRG | BRF_ESS }, // 1
- { "785_u09.6r", 0x10000, 0x1aba7010, 1 | BRF_PRG | BRF_ESS }, // 2
- { "785_k08.4r", 0x10000, 0x36bb1be1, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "785_p07.10n", 0x10000, 0x686d549d, 2 | BRF_PRG | BRF_ESS }, // 4 68K #1 Code
- { "785_p06.8n", 0x10000, 0x70c94bee, 2 | BRF_PRG | BRF_ESS }, // 5
- { "785_p13.10s", 0x10000, 0x478fdb0a, 2 | BRF_PRG | BRF_ESS }, // 6
- { "785_p12.8s", 0x10000, 0x38ea402a, 2 | BRF_PRG | BRF_ESS }, // 7
-
- { "785_g03.10a", 0x08000, 0x67a3b50d, 3 | BRF_PRG | BRF_ESS }, // 8 Z80 Code
-
- { "785_h14.d8", 0x04000, 0x02f4b16f, 4 | BRF_GRA }, // 9 Characters
-
- { "785f17.p16", 0x80000, 0x4e7a7b82, 5 | BRF_GRA }, // 10 Sprites / Bg Tiles
- { "785f18.p18", 0x80000, 0x3f604e9a, 5 | BRF_GRA }, // 11
- { "785f15.p13", 0x80000, 0x5bd239ac, 5 | BRF_GRA }, // 12
- { "785f16.p15", 0x80000, 0x95c6b8a3, 5 | BRF_GRA }, // 13
-
- { "785_f01.5a", 0x20000, 0xa0d8d69e, 7 | BRF_SND }, // 14 K007232 Samples
-
- { "785_f02.7c", 0x20000, 0xc39f5ca4, 8 | BRF_SND }, // 15 UPD7759 Samples
-};
-
-STD_ROM_PICK(vulcana)
-STD_ROM_FN(vulcana)
-
-struct BurnDriver BurnDrvVulcana = {
- "vulcana", "vulcan", NULL, NULL, "1988",
- "Vulcan Venture (Old)\0", NULL, "Konami", "GX785",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_KONAMI, GBF_HORSHOOT, 0,
- NULL, vulcanaRomInfo, vulcanaRomName, NULL, NULL, DrvInputInfo, VulcanDIPInfo,
- vulcanInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x400,
- 320, 224, 4, 3
-};
-
-
-// Vulcan Venture (Oldest)
-
-static struct BurnRomInfo vulcanbRomDesc[] = {
- { "785_n05.6n", 0x10000, 0x6371d475, 1 | BRF_PRG | BRF_ESS }, // 0 68K #0 Code
- { "785_n04.4n", 0x10000, 0xb6f24b9e, 1 | BRF_PRG | BRF_ESS }, // 1
- { "785_r09.6r", 0x10000, 0xfbfd1543, 1 | BRF_PRG | BRF_ESS }, // 2
- { "785_r08.4r", 0x10000, 0x36bb1be1, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "785_g07.10n", 0x10000, 0xee09dd5d, 2 | BRF_PRG | BRF_ESS }, // 4 68K #1 Code
- { "785_g06.8n", 0x10000, 0x85ab7af7, 2 | BRF_PRG | BRF_ESS }, // 5
- { "785_g13.10s", 0x10000, 0x274f325d, 2 | BRF_PRG | BRF_ESS }, // 6
- { "785_g12.8s", 0x10000, 0x1625f933, 2 | BRF_PRG | BRF_ESS }, // 7
-
- { "785_g03.10a", 0x08000, 0x67a3b50d, 3 | BRF_PRG | BRF_ESS }, // 8 Z80 Code
-
- { "785_h14.d8", 0x04000, 0x02f4b16f, 4 | BRF_GRA }, // 9 Characters
-
- { "785f17.p16", 0x80000, 0x4e7a7b82, 5 | BRF_GRA }, // 10 Sprites / Bg Tiles
- { "785f18.p18", 0x80000, 0x3f604e9a, 5 | BRF_GRA }, // 11
- { "785f15.p13", 0x80000, 0x5bd239ac, 5 | BRF_GRA }, // 12
- { "785f16.p15", 0x80000, 0x95c6b8a3, 5 | BRF_GRA }, // 13
-
- { "785_f01.5a", 0x20000, 0xa0d8d69e, 7 | BRF_SND }, // 14 K007232 Samples
-
- { "785_f02.7c", 0x20000, 0xc39f5ca4, 8 | BRF_SND }, // 15 UPD7759 Samples
-};
-
-STD_ROM_PICK(vulcanb)
-STD_ROM_FN(vulcanb)
-
-struct BurnDriver BurnDrvVulcanb = {
- "vulcanb", "vulcan", NULL, NULL, "1988",
- "Vulcan Venture (Oldest)\0", NULL, "Konami", "GX785",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_KONAMI, GBF_HORSHOOT, 0,
- NULL, vulcanbRomInfo, vulcanbRomName, NULL, NULL, DrvInputInfo, VulcanDIPInfo,
- vulcanInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x400,
- 320, 224, 4, 3
-};
-
-
-// Gradius II - GOFER no Yabou (Japan New ver.)
-
-static struct BurnRomInfo gradius2RomDesc[] = {
- { "785_x05.6n", 0x10000, 0x8a23a7b8, 1 | BRF_PRG | BRF_ESS }, // 0 68K #0 Code
- { "785_x04.4n", 0x10000, 0x88e466ce, 1 | BRF_PRG | BRF_ESS }, // 1
- { "785_x09.6r", 0x10000, 0x3f3d7d7a, 1 | BRF_PRG | BRF_ESS }, // 2
- { "785_x08.4r", 0x10000, 0xc39c8efd, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "785_p07.10n", 0x10000, 0x686d549d, 2 | BRF_PRG | BRF_ESS }, // 4 68K #1 Code
- { "785_p06.8n", 0x10000, 0x70c94bee, 2 | BRF_PRG | BRF_ESS }, // 5
- { "785_p13.10s", 0x10000, 0x478fdb0a, 2 | BRF_PRG | BRF_ESS }, // 6
- { "785_p12.8s", 0x10000, 0x38ea402a, 2 | BRF_PRG | BRF_ESS }, // 7
-
- { "785_g03.10a", 0x08000, 0x67a3b50d, 3 | BRF_PRG | BRF_ESS }, // 8 Z80 Code
-
- { "785_g14.d8", 0x04000, 0x9dcdad9d, 4 | BRF_GRA }, // 9 Characters
-
- { "785f17.p16", 0x80000, 0x4e7a7b82, 5 | BRF_GRA }, // 10 Sprites / Bg Tiles
- { "785f18.p18", 0x80000, 0x3f604e9a, 5 | BRF_GRA }, // 11
- { "785f15.p13", 0x80000, 0x5bd239ac, 5 | BRF_GRA }, // 12
- { "785f16.p15", 0x80000, 0x95c6b8a3, 5 | BRF_GRA }, // 13
-
- { "785_f01.5a", 0x20000, 0xa0d8d69e, 7 | BRF_SND }, // 14 K007232 Samples
-
- { "785_f02.7c", 0x20000, 0xc39f5ca4, 8 | BRF_SND }, // 15 UPD7759 Samples
-};
-
-STD_ROM_PICK(gradius2)
-STD_ROM_FN(gradius2)
-
-struct BurnDriver BurnDrvGradius2 = {
- "gradius2", "vulcan", NULL, NULL, "1988",
- "Gradius II - GOFER no Yabou (Japan New ver.)\0", NULL, "Konami", "GX785",
- L"Gradius II - GOFER \u306E\u91CE\u671B (Japan New ver.)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_KONAMI, GBF_HORSHOOT, 0,
- NULL, gradius2RomInfo, gradius2RomName, NULL, NULL, DrvInputInfo, Gradius2DIPInfo,
- vulcanInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x400,
- 320, 224, 4, 3
-};
-
-
-// Gradius II - GOFER no Yabou (Japan Old ver.)
-
-static struct BurnRomInfo gradius2aRomDesc[] = {
- { "785_p05.6n", 0x10000, 0x4db0e736, 1 | BRF_PRG | BRF_ESS }, // 0 68K #0 Code
- { "785_p04.4n", 0x10000, 0x765b99e6, 1 | BRF_PRG | BRF_ESS }, // 1
- { "785_t09.6r", 0x10000, 0x4e3f4965, 1 | BRF_PRG | BRF_ESS }, // 2
- { "785_j08.4r", 0x10000, 0x2b1c9108, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "785_p07.10n", 0x10000, 0x686d549d, 2 | BRF_PRG | BRF_ESS }, // 4 68K #1 Code
- { "785_p06.8n", 0x10000, 0x70c94bee, 2 | BRF_PRG | BRF_ESS }, // 5
- { "785_p13.10s", 0x10000, 0x478fdb0a, 2 | BRF_PRG | BRF_ESS }, // 6
- { "785_p12.8s", 0x10000, 0x38ea402a, 2 | BRF_PRG | BRF_ESS }, // 7
-
- { "785_g03.10a", 0x08000, 0x67a3b50d, 3 | BRF_PRG | BRF_ESS }, // 8 Z80 Code
-
- { "785_g14.d8", 0x04000, 0x9dcdad9d, 4 | BRF_GRA }, // 9 Characters
-
- { "785f17.p16", 0x80000, 0x4e7a7b82, 5 | BRF_GRA }, // 10 Sprites / Bg Tiles
- { "785f18.p18", 0x80000, 0x3f604e9a, 5 | BRF_GRA }, // 11
- { "785f15.p13", 0x80000, 0x5bd239ac, 5 | BRF_GRA }, // 12
- { "785f16.p15", 0x80000, 0x95c6b8a3, 5 | BRF_GRA }, // 13
-
- { "785_f01.5a", 0x20000, 0xa0d8d69e, 7 | BRF_SND }, // 14 K007232 Samples
-
- { "785_f02.7c", 0x20000, 0xc39f5ca4, 8 | BRF_SND }, // 15 UPD7759 Samples
-};
-
-STD_ROM_PICK(gradius2a)
-STD_ROM_FN(gradius2a)
-
-struct BurnDriver BurnDrvGradius2a = {
- "gradius2a", "vulcan", NULL, NULL, "1988",
- "Gradius II - GOFER no Yabou (Japan Old ver.)\0", NULL, "Konami", "GX785",
- L"Gradius II - GOFER \u306E\u91CE\u671B (Japan Old ver.)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_KONAMI, GBF_HORSHOOT, 0,
- NULL, gradius2aRomInfo, gradius2aRomName, NULL, NULL, DrvInputInfo, VulcanDIPInfo,
- vulcanInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x400,
- 320, 224, 4, 3
-};
-
-
-// Gradius II - GOFER no Yabou (Japan Older ver.)
-
-static struct BurnRomInfo gradius2bRomDesc[] = {
- { "785_p05.6n", 0x10000, 0x4db0e736, 1 | BRF_PRG | BRF_ESS }, // 0 68K #0 Code
- { "785_p04.4n", 0x10000, 0x765b99e6, 1 | BRF_PRG | BRF_ESS }, // 1
- { "785_j09.6r", 0x10000, 0x6d96a7e3, 1 | BRF_PRG | BRF_ESS }, // 2
- { "785_j08.4r", 0x10000, 0x2b1c9108, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "785_p07.10n", 0x10000, 0x686d549d, 2 | BRF_PRG | BRF_ESS }, // 4 68K #1 Code
- { "785_p06.8n", 0x10000, 0x70c94bee, 2 | BRF_PRG | BRF_ESS }, // 5
- { "785_p13.10s", 0x10000, 0x478fdb0a, 2 | BRF_PRG | BRF_ESS }, // 6
- { "785_p12.8s", 0x10000, 0x38ea402a, 2 | BRF_PRG | BRF_ESS }, // 7
-
- { "785_g03.10a", 0x08000, 0x67a3b50d, 3 | BRF_PRG | BRF_ESS }, // 8 Z80 Code
-
- { "785_g14.d8", 0x04000, 0x9dcdad9d, 4 | BRF_GRA }, // 9 Characters
-
- { "785f17.p16", 0x80000, 0x4e7a7b82, 5 | BRF_GRA }, // 10 Sprites / Bg Tiles
- { "785f18.p18", 0x80000, 0x3f604e9a, 5 | BRF_GRA }, // 11
- { "785f15.p13", 0x80000, 0x5bd239ac, 5 | BRF_GRA }, // 12
- { "785f16.p15", 0x80000, 0x95c6b8a3, 5 | BRF_GRA }, // 13
-
- { "785_f01.5a", 0x20000, 0xa0d8d69e, 7 | BRF_GRA }, // 14 K007232 Samples
-
- { "785_f02.7c", 0x20000, 0xc39f5ca4, 8 | BRF_GRA }, // 15 UPD7759 Samples
-};
-
-STD_ROM_PICK(gradius2b)
-STD_ROM_FN(gradius2b)
-
-struct BurnDriver BurnDrvGradius2b = {
- "gradius2b", "vulcan", NULL, NULL, "1988",
- "Gradius II - GOFER no Yabou (Japan Older ver.)\0", NULL, "Konami", "GX785",
- L"Gradius II - GOFER \u306E\u91CE\u671B (Japan Older ver.)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_KONAMI, GBF_HORSHOOT, 0,
- NULL, gradius2bRomInfo, gradius2bRomName, NULL, NULL, DrvInputInfo, VulcanDIPInfo,
- vulcanInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x400,
- 320, 224, 4, 3
-};
-
-
-// The Final Round (ver. M)
-
-static struct BurnRomInfo froundRomDesc[] = {
- { "870_m21.bin", 0x20000, 0x436dbffb, 1 | BRF_PRG | BRF_ESS }, // 0 68K #0 Code
- { "870_m20.bin", 0x20000, 0xb1c79d6a, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "870_f03.10a", 0x08000, 0xa645c727, 3 | BRF_PRG | BRF_ESS }, // 2 Z80 Code
-
- { "870_f14.d8", 0x04000, 0xc9b46615, 4 | BRF_PRG | BRF_ESS }, // 3 Characters
-
- { "870c18.p18", 0x80000, 0x07927fe8, 5 | BRF_GRA }, // 4 Sprites / Bg Tiles
- { "870c17.p16", 0x80000, 0x2bc99ff8, 5 | BRF_GRA }, // 5
- { "870c16.p15", 0x80000, 0x41df6a1b, 5 | BRF_GRA }, // 6
- { "870c15.p13", 0x80000, 0x8c9281df, 5 | BRF_GRA }, // 7
-
- { "870_c01.5a", 0x20000, 0x6af96546, 7 | BRF_GRA }, // 8 K007232 Samples
-
- { "870_c02.7c", 0x20000, 0x54e12c6d, 8 | BRF_GRA }, // 9 UPD7759 Samples
-};
-
-STD_ROM_PICK(fround)
-STD_ROM_FN(fround)
-
-static INT32 froundCallback()
-{
- if (BurnLoadRom(Drv68KROM0 + 0x000001, 0, 2)) return 1;
- if (BurnLoadRom(Drv68KROM0 + 0x000000, 1, 2)) return 1;
-
- if (BurnLoadRom(DrvZ80ROM + 0x000000, 2, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x000000, 3, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM1 + 0x000000, 4, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x080000, 5, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x100000, 6, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x180000, 7, 1)) return 1;
-
- if (BurnLoadRom(DrvSndROM0 + 0x000000, 8, 1)) return 1;
- if (BurnLoadRom(DrvSndROM1 + 0x000000, 9, 1)) return 1;
-
- return 0;
-}
-
-static INT32 froundInit()
-{
- twin16_custom_video = 1;
-
- return DrvInit(froundCallback);
-}
-
-struct BurnDriver BurnDrvFround = {
- "fround", NULL, NULL, NULL, "1988",
- "The Final Round (ver. M)\0", NULL, "Konami", "GX870",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_PREFIX_KONAMI, GBF_SPORTSMISC, 0,
- NULL, froundRomInfo, froundRomName, NULL, NULL, DrvInputInfo, FroundDIPInfo,
- froundInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x400,
- 320, 224, 4, 3
-};
-
-
-// The Final Round (ver. L)
-
-static struct BurnRomInfo froundlRomDesc[] = {
- { "870_l21.bin", 0x20000, 0xe21a3a19, 1 | BRF_PRG | BRF_ESS }, // 0 68K #0 Code
- { "870_l20.bin", 0x20000, 0x0ce9786f, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "870_f03.10a", 0x08000, 0xa645c727, 3 | BRF_PRG | BRF_ESS }, // 2 Z80 Code
-
- { "870_f14.d8", 0x04000, 0xc9b46615, 4 | BRF_PRG | BRF_ESS }, // 3 Characters
-
- { "870c18.p18", 0x80000, 0x07927fe8, 5 | BRF_GRA }, // 4 Sprites / Bg Tiles
- { "870c17.p16", 0x80000, 0x2bc99ff8, 5 | BRF_GRA }, // 5
- { "870c16.p15", 0x80000, 0x41df6a1b, 5 | BRF_GRA }, // 6
- { "870c15.p13", 0x80000, 0x8c9281df, 5 | BRF_GRA }, // 7
-
- { "870_c01.5a", 0x20000, 0x6af96546, 7 | BRF_GRA }, // 8 K007232 Samples
-
- { "870_c02.7c", 0x20000, 0x54e12c6d, 8 | BRF_GRA }, // 9 UPD7759 Samples
-};
-
-STD_ROM_PICK(froundl)
-STD_ROM_FN(froundl)
-
-struct BurnDriver BurnDrvFroundl = {
- "froundl", "fround", NULL, NULL, "1988",
- "The Final Round (ver. L)\0", NULL, "Konami", "GX870",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_KONAMI, GBF_SPORTSMISC, 0,
- NULL, froundlRomInfo, froundlRomName, NULL, NULL, DrvInputInfo, FroundDIPInfo,
- froundInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x400,
- 320, 224, 4, 3
-};
-
-
-// Hard Puncher (Japan)
-
-static struct BurnRomInfo hpuncherRomDesc[] = {
- { "870_h05.6n", 0x10000, 0x2bcfeef3, 1 | BRF_PRG | BRF_ESS }, // 0 68K #0 Code
- { "870_h04.4n", 0x10000, 0xb9f97fd3, 1 | BRF_PRG | BRF_ESS }, // 1
- { "870_h09.6r", 0x10000, 0x96a4f8b1, 1 | BRF_PRG | BRF_ESS }, // 2
- { "870_h08.4r", 0x10000, 0x46d65156, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "870_h07.10n", 0x10000, 0xb4dda612, 2 | BRF_PRG | BRF_ESS }, // 4 68K #1 Code
- { "870_h06.8n", 0x10000, 0x696ba702, 2 | BRF_PRG | BRF_ESS }, // 5
-
- { "870_g03.10a", 0x08000, 0xdb9c10c8, 3 | BRF_PRG | BRF_ESS }, // 6 Z80 Code
-
- { "870_f14.d8", 0x04000, 0xc9b46615, 4 | BRF_GRA }, // 7 Characters
-
- { "870c17.p16", 0x80000, 0x2bc99ff8, 5 | BRF_GRA }, // 8 Sprites / Bg Tiles
- { "870c18.p18", 0x80000, 0x07927fe8, 5 | BRF_GRA }, // 9
- { "870c15.p13", 0x80000, 0x8c9281df, 5 | BRF_GRA }, // 10
- { "870c16.p15", 0x80000, 0x41df6a1b, 5 | BRF_GRA }, // 11
-
- { "870_c01.5a", 0x20000, 0x6af96546, 7 | BRF_GRA }, // 12 K007232 Samples
-
- { "870_c02.7c", 0x20000, 0x54e12c6d, 8 | BRF_GRA }, // 13 UPD7759 Samples
-};
-
-STD_ROM_PICK(hpuncher)
-STD_ROM_FN(hpuncher)
-
-static INT32 hpuncherCallback()
-{
- if (load68k(Drv68KROM0, 0)) return 1;
-
- if (BurnLoadRom(Drv68KROM1 + 0x000001, 4, 2)) return 1;
- if (BurnLoadRom(Drv68KROM1 + 0x000000, 5, 2)) return 1;
-
- if (BurnLoadRom(DrvZ80ROM + 0x000000, 6, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x000000, 7, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM1 + 0x000000, 8, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x080000, 9, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x100000, 10, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x180000, 11, 1)) return 1;
-
- if (BurnLoadRom(DrvSndROM0 + 0x000000, 12, 1)) return 1;
- if (BurnLoadRom(DrvSndROM1 + 0x000000, 13, 1)) return 1;
-
- return 0;
-}
-
-static INT32 hpuncherInit()
-{
- twin16_custom_video = 2;
-
- return DrvInit(hpuncherCallback);
-}
-
-struct BurnDriver BurnDrvHpuncher = {
- "hpuncher", "fround", NULL, NULL, "1988",
- "Hard Puncher (Japan)\0", NULL, "Konami", "GX870",
- L"Hard Puncher \uFF0D\u8840\u307E\u307F\u308C\u306E\u6804\u5149\uFF0D (Japan)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_KONAMI, GBF_SPORTSMISC, 0,
- NULL, hpuncherRomInfo, hpuncherRomName, NULL, NULL, DrvInputInfo, FroundDIPInfo,
- hpuncherInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x400,
- 320, 224, 4, 3
-};
-
-
-// M.I.A. - Missing in Action (version R) (Japan)
-
-static struct BurnRomInfo miajRomDesc[] = {
- { "808_r05.6n", 0x10000, 0x91fd83f4, 1 | BRF_PRG | BRF_ESS }, // 0 68K #0 Code
- { "808_r04.4n", 0x10000, 0xf1c8c597, 1 | BRF_PRG | BRF_ESS }, // 1
- { "808_r09.6r", 0x10000, 0xf74d4467, 1 | BRF_PRG | BRF_ESS }, // 2
- { "808_r08.4r", 0x10000, 0x26f21704, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "808_e07.10n", 0x10000, 0x297bdcea, 2 | BRF_PRG | BRF_ESS }, // 4 68K #1 Code
- { "808_e06.8n", 0x10000, 0x8f576b33, 2 | BRF_PRG | BRF_ESS }, // 5
- { "808_e13.10s", 0x10000, 0x1fa708f4, 2 | BRF_PRG | BRF_ESS }, // 6
- { "808_e12.8s", 0x10000, 0xd62f1fde, 2 | BRF_PRG | BRF_ESS }, // 7
-
- { "808_e03.10a", 0x08000, 0x3d93a7cd, 3 | BRF_PRG | BRF_ESS }, // 8 Z80 Code
-
- { "808_e14.d8", 0x04000, 0xb9d36525, 4 | BRF_GRA }, // 9 Characters
-
- { "808d17.p16", 0x80000, 0xd1299082, 5 | BRF_GRA }, // 10 Sprites / Bg Tiles
- { "808d15.p13", 0x80000, 0x2b22a6b6, 5 | BRF_GRA }, // 11
-
- { "808_d01.5a", 0x20000, 0xfd4d37c0, 7 | BRF_GRA }, // 12 K007232 Samples
-};
-
-STD_ROM_PICK(miaj)
-STD_ROM_FN(miaj)
-
-static INT32 miajCallback()
-{
- if (load68k(Drv68KROM0, 0)) return 1;
- if (load68k(Drv68KROM1, 4)) return 1;
-
- if (BurnLoadRom(DrvZ80ROM + 0x000000, 8, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x000000, 9, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM1 + 0x000000, 10, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x100000, 11, 1)) return 1;
-
- if (BurnLoadRom(DrvSndROM0 + 0x000000, 12, 1)) return 1;
-
- return 0;
-}
-
-static INT32 miajInit()
-{
- twin16_custom_video = 2;
-
- return DrvInit(miajCallback);
-}
-
-struct BurnDriver BurnDrvMiaj = {
- "miaj", "mia", NULL, NULL, "1989",
- "M.I.A. - Missing in Action (version R) (Japan)\0", NULL, "Konami", "GX808",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_KONAMI, GBF_PLATFORM, 0,
- NULL, miajRomInfo, miajRomName, NULL, NULL, DrvInputInfo, MiajDIPInfo,
- miajInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x400,
- 320, 224, 4, 3
-};
-
-
-// Cue Brick (Japan)
-
-static struct BurnRomInfo cuebrckjRomDesc[] = {
- { "903_e05.6n", 0x10000, 0x8b556220, 1 | BRF_PRG | BRF_ESS }, // 0 68K #0 Code
- { "903_e04.4n", 0x10000, 0xbf9c7927, 1 | BRF_PRG | BRF_ESS }, // 1
- { "903_e09.6r", 0x10000, 0x2a77554d, 1 | BRF_PRG | BRF_ESS }, // 2
- { "903_e08.4r", 0x10000, 0xc0a430c1, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "903_d07.10n", 0x10000, 0xfc0edce7, 2 | BRF_PRG | BRF_ESS }, // 4 68K #1 Code
- { "903_d06.8n", 0x10000, 0xb2cef6fe, 2 | BRF_PRG | BRF_ESS }, // 5
- { "903_e13.10s", 0x10000, 0x4fb5fb80, 2 | BRF_PRG | BRF_ESS }, // 6
- { "903_e12.8s", 0x10000, 0x883e3097, 2 | BRF_PRG | BRF_ESS }, // 7
-
- { "903_d03.10a", 0x08000, 0x455e855a, 3 | BRF_PRG | BRF_ESS }, // 8 Z80 Code
-
- { "903_e14.d8", 0x04000, 0xddbebbd5, 4 | BRF_GRA }, // 9 Characters
-
- { "903_e11.10r", 0x10000, 0x5c41faf8, 6 | BRF_GRA }, // 10 Sprites / Bg Tiles
- { "903_e10.8r", 0x10000, 0x417576d4, 6 | BRF_GRA }, // 11
-};
-
-STD_ROM_PICK(cuebrckj)
-STD_ROM_FN(cuebrckj)
-
-static INT32 cuebrckjCallback()
-{
- if (load68k(Drv68KROM0, 0)) return 1;
- if (load68k(Drv68KROM1, 4)) return 1;
-
- if (BurnLoadRom(DrvZ80ROM + 0x000000, 8, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x000000, 9, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM2 + 0x000001, 10, 2)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x000000, 11, 2)) return 1;
-
- return 0;
-}
-
-static INT32 cuebrckjInit()
-{
- twin16_custom_video = 2;
-
- return DrvInit(cuebrckjCallback);
-}
-
-struct BurnDriver BurnDrvCuebrckj = {
- "cuebrickj", "cuebrick", NULL, NULL, "1989",
- "Cue Brick (Japan)\0", NULL, "Konami", "GX903",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_KONAMI, GBF_PUZZLE, 0,
- NULL, cuebrckjRomInfo, cuebrckjRomName, NULL, NULL, DrvInputInfo, CuebrckjDIPInfo,
- cuebrckjInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x400,
- 320, 224, 4, 3
-};
diff --git a/jan/src/burn/drv/konami/d_ultraman.cpp b/jan/src/burn/drv/konami/d_ultraman.cpp
deleted file mode 100644
index eaba18efa..000000000
--- a/jan/src/burn/drv/konami/d_ultraman.cpp
+++ /dev/null
@@ -1,691 +0,0 @@
-// FB Alpha Ultraman driver module
-// Based on MAME driver by Manuel Abadia
-
-#include "tiles_generic.h"
-#include "m68000_intf.h"
-#include "z80_intf.h"
-#include "burn_ym2151.h"
-#include "msm6295.h"
-#include "konamiic.h"
-
-static UINT8 *AllMem;
-static UINT8 *Drv68KROM;
-static UINT8 *DrvZ80ROM;
-static UINT8 *DrvGfxROM0;
-static UINT8 *DrvGfxROM1;
-static UINT8 *DrvGfxROM2;
-static UINT8 *DrvGfxROM3;
-static UINT8 *DrvGfxROMExp0;
-static UINT8 *DrvGfxROMExp1;
-static UINT8 *DrvGfxROMExp2;
-static UINT8 *DrvGfxROMExp3;
-static UINT8 *DrvSndROM;
-static UINT8 *AllRam;
-static UINT8 *Drv68KRAM;
-static UINT8 *DrvPalRAM;
-static UINT8 *DrvZ80RAM;
-static UINT8 *soundlatch;
-static UINT8 *RamEnd;
-static UINT8 *MemEnd;
-
-static UINT32 *DrvPalette;
-static UINT8 DrvRecalc;
-
-static INT32 bank0;
-static INT32 bank1;
-static INT32 bank2;
-
-static UINT8 DrvJoy1[16];
-static UINT8 DrvJoy2[16];
-static UINT8 DrvJoy3[16];
-static UINT8 DrvDips[2];
-static UINT8 DrvReset;
-static UINT8 DrvInputs[3];
-
-static struct BurnInputInfo UltramanInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy1 + 6, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy2 + 0, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy2 + 1, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy2 + 2, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy2 + 3, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy2 + 4, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy2 + 5, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy2 + 6, "p1 fire 2" },
- {"P1 Button 3", BIT_DIGITAL, DrvJoy2 + 7, "p1 fire 3" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy1 + 7, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy3 + 0, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvJoy3 + 1, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy3 + 2, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy3 + 3, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy3 + 4, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy3 + 5, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy3 + 6, "p2 fire 2" },
- {"P2 Button 3", BIT_DIGITAL, DrvJoy3 + 7, "p2 fire 3" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Diagnostics", BIT_DIGITAL, DrvJoy1 + 4, "diag" },
- {"Service", BIT_DIGITAL, DrvJoy1 + 5, "service" },
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip" },
-};
-
-STDINPUTINFO(Ultraman)
-
-static struct BurnDIPInfo UltramanDIPList[]=
-{
- {0x15, 0xff, 0xff, 0xff, NULL },
- {0x16, 0xff, 0xff, 0x74, NULL },
-
- {0 , 0xfe, 0 , 16, "Coin A" },
- {0x15, 0x01, 0x0f, 0x02, "4 Coins 1 Credit" },
- {0x15, 0x01, 0x0f, 0x05, "3 Coins 1 Credit" },
- {0x15, 0x01, 0x0f, 0x08, "2 Coins 1 Credit" },
- {0x15, 0x01, 0x0f, 0x04, "3 Coins 2 Credits" },
- {0x15, 0x01, 0x0f, 0x01, "4 Coins 3 Credits" },
- {0x15, 0x01, 0x0f, 0x0f, "1 Coin 1 Credit" },
- {0x15, 0x01, 0x0f, 0x03, "3 Coins 4 Credits" },
- {0x15, 0x01, 0x0f, 0x07, "2 Coins 3 Credits" },
- {0x15, 0x01, 0x0f, 0x0e, "1 Coin 2 Credits" },
- {0x15, 0x01, 0x0f, 0x06, "2 Coins 5 Credits" },
- {0x15, 0x01, 0x0f, 0x0d, "1 Coin 3 Credits" },
- {0x15, 0x01, 0x0f, 0x0c, "1 Coin 4 Credits" },
- {0x15, 0x01, 0x0f, 0x0b, "1 Coin 5 Credits" },
- {0x15, 0x01, 0x0f, 0x0a, "1 Coin 6 Credits" },
- {0x15, 0x01, 0x0f, 0x09, "1 Coin 7 Credits" },
- {0x15, 0x01, 0x0f, 0x00, "Free Play" },
-
- {0 , 0xfe, 0 , 16, "Coin B" },
- {0x15, 0x01, 0xf0, 0x20, "4 Coins 1 Credit" },
- {0x15, 0x01, 0xf0, 0x50, "3 Coins 1 Credit" },
- {0x15, 0x01, 0xf0, 0x80, "2 Coins 1 Credit" },
- {0x15, 0x01, 0xf0, 0x40, "3 Coins 2 Credits" },
- {0x15, 0x01, 0xf0, 0x10, "4 Coins 3 Credits" },
- {0x15, 0x01, 0xf0, 0xf0, "1 Coin 1 Credit" },
- {0x15, 0x01, 0xf0, 0x30, "3 Coins 4 Credits" },
- {0x15, 0x01, 0xf0, 0x70, "2 Coins 3 Credits" },
- {0x15, 0x01, 0xf0, 0xe0, "1 Coin 2 Credits" },
- {0x15, 0x01, 0xf0, 0x60, "2 Coins 5 Credits" },
- {0x15, 0x01, 0xf0, 0xd0, "1 Coin 3 Credits" },
- {0x15, 0x01, 0xf0, 0xc0, "1 Coin 4 Credits" },
- {0x15, 0x01, 0xf0, 0xb0, "1 Coin 5 Credits" },
- {0x15, 0x01, 0xf0, 0xa0, "1 Coin 6 Credits" },
- {0x15, 0x01, 0xf0, 0x90, "1 Coin 7 Credits" },
- {0x15, 0x01, 0xf0, 0x00, "No Coin B" },
-
- {0 , 0xfe, 0 , 2, "Allow Continue" },
- {0x16, 0x01, 0x04, 0x00, "No" },
- {0x16, 0x01, 0x04, 0x04, "Yes" },
-
- {0 , 0xfe, 0 , 2, "Demo Sounds" },
- {0x16, 0x01, 0x08, 0x08, "Off" },
- {0x16, 0x01, 0x08, 0x00, "On" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x16, 0x01, 0x30, 0x10, "Easy" },
- {0x16, 0x01, 0x30, 0x30, "Normal" },
- {0x16, 0x01, 0x30, 0x20, "Hard" },
- {0x16, 0x01, 0x30, 0x00, "Very Hard" },
-
- {0 , 0xfe, 0 , 2, "Upright Controls" },
- {0x16, 0x01, 0x40, 0x40, "Single" },
- {0x16, 0x01, 0x40, 0x00, "Dual" },
-
-// {0 , 0xfe, 0 , 2, "Cabinet" },
-// {0x16, 0x01, 0x80, 0x00, "Upright" },
-// {0x16, 0x01, 0x80, 0x80, "Cocktail" },
-};
-
-STDDIPINFO(Ultraman)
-
-void __fastcall ultraman_write_byte(UINT32 address, UINT8 data)
-{
- switch (address)
- {
- case 0x1c0019:
- {
- if (((data & 0x02) >> 1) != bank0) {
- bank0 = (data & 0x02) >> 1;
- K051316RedrawTiles(0);
- }
-
- if (((data & 0x08) >> 3) != bank1) {
- bank1 = (data & 0x08) >> 3;
- K051316RedrawTiles(1);
- }
-
- if (((data & 0x20) >> 5) != bank2) {
- bank2 = (data & 0x20) >> 5;
- K051316RedrawTiles(2);
- }
-
- K051316WrapEnable(0,data & 0x01);
- K051316WrapEnable(1,data & 0x04);
- K051316WrapEnable(2,data & 0x10);
- }
- return;
-
- case 0x1c0021:
- ZetNmi();
- return;
-
- case 0x1c0029:
- *soundlatch = data;
- return;
-
- case 0x1c0031: // watchdog
- return;
- }
-
- if ((address & 0xfff001) == 0x204001) {
- K051316Write(0, (address >> 1) & 0x7ff, data);
- return;
- }
-
- if ((address & 0xfff001) == 0x205001) {
- K051316Write(1, (address >> 1) & 0x7ff, data);
- return;
- }
-
- if ((address & 0xfff001) == 0x206001) {
- K051316Write(2, (address >> 1) & 0x7ff, data);
- return;
- }
-
- if ((address & 0xffffe1) == 0x207f81) {
- K051316WriteCtrl(0, (address >> 1) & 0x0f, data);
- return;
- }
-
- if ((address & 0xffffe1) == 0x207fa1) {
- K051316WriteCtrl(1, (address >> 1) & 0x0f, data);
- return;
- }
-
- if ((address & 0xffffe1) == 0x207fc1) {
- K051316WriteCtrl(2, (address >> 1) & 0x0f, data);
- return;
- }
-
- if ((address & 0xfffff1) == 0x304001) {
- K051937Write((address >> 1) & 0x007, data);
- return;
- }
-
- if ((address & 0xfff801) == 0x304801) {
- K051960Write((address >> 1) & 0x3ff, data);
- return;
- }
-
-}
-
-UINT8 __fastcall ultraman_read_byte(UINT32 address)
-{
- switch (address)
- {
- case 0x1c0001:
- return DrvInputs[0];
-
- case 0x1c0003:
- return DrvInputs[1];
-
- case 0x1c0005:
- return DrvInputs[2];
-
- case 0x1c0007:
- return DrvDips[0];
-
- case 0x1c0009:
- return DrvDips[1];
- }
-
- if ((address & 0xfff000) == 0x204000) {
- return K051316Read(0, (address >> 1) & 0x7ff);
- }
-
- if ((address & 0xfff000) == 0x205000) {
- return K051316Read(1, (address >> 1) & 0x7ff);
- }
-
- if ((address & 0xfff000) == 0x206000) {
- return K051316Read(2, (address >> 1) & 0x7ff);
- }
-
- if ((address & 0xfffff0) == 0x304000) {
- return K051937Read((address >> 1) & 0x007);
- }
-
- if ((address & 0xfff800) == 0x304800) {
- return K051960Read((address >> 1) & 0x3ff);
- }
-
- return 0;
-}
-
-void __fastcall ultraman_sound_write(UINT16 address, UINT8 data)
-{
- switch (address)
- {
- case 0xd000:
- return;
-
- case 0xe000:
- MSM6295Command(0, data);
- return;
-
- case 0xf000:
- BurnYM2151SelectRegister(data);
- return;
-
- case 0xf001:
- BurnYM2151WriteRegister(data);
- return;
- }
-}
-
-UINT8 __fastcall ultraman_sound_read(UINT16 address)
-{
- switch (address)
- {
- case 0xc000:
- return *soundlatch;
-
- case 0xe000:
- return MSM6295ReadStatus(0);
-
- case 0xf000:
- case 0xf001:
- return BurnYM2151ReadStatus();
- }
-
- return 0;
-}
-
-static void K051960Callback(INT32 *, INT32 *color, INT32 *priority, INT32 *shadow)
-{
- *priority = (*color & 0x80) >> 7;
- *color = 0xc0 + ((*color & 0x7e) >> 1);
- *shadow = 0;
-}
-
-static void K051316Callback0(INT32 *code, INT32 *color, INT32 *)
-{
- *code |= ((*color & 0x07) << 8) | (bank0 << 11);
- *color = ((*color & 0xf8) >> 3);
-}
-
-static void K051316Callback1(INT32 *code, INT32 *color, INT32 *)
-{
- *code |= ((*color & 0x07) << 8) | (bank1 << 11);
- *color = 0x40 + ((*color & 0xf8) >> 3);
-}
-
-static void K051316Callback2(INT32 *code, INT32 *color, INT32 *)
-{
- *code |= ((*color & 0x07) << 8) | (bank2 << 11);
- *color = 0x80 + ((*color & 0xf8) >> 3);
-}
-
-static INT32 DrvDoReset()
-{
- DrvReset = 0;
-
- memset (AllRam, 0, RamEnd - AllRam);
-
- SekOpen(0);
- SekReset();
- SekClose();
-
- ZetOpen(0);
- ZetReset();
- ZetClose();
-
- BurnYM2151Reset();
- MSM6295Reset(0);
-
- KonamiICReset();
-
- bank0 = bank1 = bank2 = 0;
-
- return 0;
-}
-
-static INT32 MemIndex()
-{
- UINT8 *Next; Next = AllMem;
-
- Drv68KROM = Next; Next += 0x040000;
- DrvZ80ROM = Next; Next += 0x010000;
-
- DrvGfxROM0 = Next; Next += 0x100000;
- DrvGfxROM1 = Next; Next += 0x080000;
- DrvGfxROM2 = Next; Next += 0x080000;
- DrvGfxROM3 = Next; Next += 0x080000;
- DrvGfxROMExp0 = Next; Next += 0x200000;
- DrvGfxROMExp1 = Next; Next += 0x100000;
- DrvGfxROMExp2 = Next; Next += 0x100000;
- DrvGfxROMExp3 = Next; Next += 0x100000;
-
- MSM6295ROM = Next;
- DrvSndROM = Next; Next += 0x040000;
-
- konami_palette32= (UINT32*)Next;
- DrvPalette = (UINT32*)Next; Next += 0x2000 * sizeof(UINT32);
-
- AllRam = Next;
-
- Drv68KRAM = Next; Next += 0x010000;
- DrvPalRAM = Next; Next += 0x004000;
-
- DrvZ80RAM = Next; Next += 0x004000;
-
- soundlatch = Next; Next += 0x000001;
-
- RamEnd = Next;
- MemEnd = Next;
-
- return 0;
-}
-
-static INT32 DrvGfxDecode()
-{
- INT32 Plane0[4] = { STEP4(0,8) };
- INT32 XOffs0[16] = { STEP8(0, 1), STEP8(256, 1) };
- INT32 YOffs0[16] = { STEP8(0,32), STEP8(512,32) };
- INT32 Plane1[4] = { STEP4(0,1) };
- INT32 XOffs1[16] = { STEP16(0,4) };
- INT32 YOffs1[16] = { STEP16(0,64) };
-
- GfxDecode(0x02000, 4, 16, 16, Plane0, XOffs0, YOffs0, 0x400, DrvGfxROM0, DrvGfxROMExp0);
- GfxDecode(0x01000, 4, 16, 16, Plane1, XOffs1, YOffs1, 0x400, DrvGfxROM1, DrvGfxROMExp1);
- GfxDecode(0x01000, 4, 16, 16, Plane1, XOffs1, YOffs1, 0x400, DrvGfxROM2, DrvGfxROMExp2);
- GfxDecode(0x01000, 4, 16, 16, Plane1, XOffs1, YOffs1, 0x400, DrvGfxROM3, DrvGfxROMExp3);
-
- return 0;
-}
-
-static INT32 DrvInit()
-{
- GenericTilesInit();
-
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(Drv68KROM + 0x000001, 0, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x000000, 1, 2)) return 1;
-
- if (BurnLoadRom(DrvZ80ROM + 0x000000, 2, 1)) return 1;
-
- if (BurnLoadRomExt(DrvGfxROM0 + 0x000000, 3, 4, 2)) return 1;
- if (BurnLoadRomExt(DrvGfxROM0 + 0x000002, 4, 4, 2)) return 1;
-
- if (BurnLoadRom(DrvGfxROM1 + 0x000000, 5, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x020000, 6, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x040000, 7, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x060000, 8, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM2 + 0x000000, 9, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x020000, 10, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x040000, 11, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM2 + 0x060000, 12, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM3 + 0x000000, 13, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM3 + 0x020000, 14, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM3 + 0x040000, 15, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM3 + 0x060000, 16, 1)) return 1;
-
- if (BurnLoadRom(DrvSndROM + 0x000000, 17, 1)) return 1;
-
- DrvGfxDecode();
- }
-
- SekInit(0, 0x68000);
- SekOpen(0);
- SekMapMemory(Drv68KROM, 0x000000, 0x03ffff, MAP_ROM);
- SekMapMemory(Drv68KRAM, 0x080000, 0x08ffff, MAP_RAM);
- SekMapMemory(DrvPalRAM, 0x180000, 0x183fff, MAP_RAM);
- SekSetWriteByteHandler(0, ultraman_write_byte);
- SekSetReadByteHandler(0, ultraman_read_byte);
- SekClose();
-
- ZetInit(0);
- ZetOpen(0);
- ZetMapArea(0x0000, 0x7fff, 0, DrvZ80ROM);
- ZetMapArea(0x0000, 0x7fff, 2, DrvZ80ROM);
- ZetMapArea(0x8000, 0xbfff, 0, DrvZ80RAM);
- ZetMapArea(0x8000, 0xbfff, 1, DrvZ80RAM);
- ZetMapArea(0x8000, 0xbfff, 2, DrvZ80RAM);
- ZetSetWriteHandler(ultraman_sound_write);
- ZetSetReadHandler(ultraman_sound_read);
- ZetClose();
-
- K051960Init(DrvGfxROM0, DrvGfxROMExp0, 0xfffff);
- K051960SetCallback(K051960Callback);
- K051960SetSpriteOffset(9, 0);
-
- K051316Init(0, DrvGfxROM1, DrvGfxROMExp1, 0x7ffff, K051316Callback0, 4, 0);
- K051316SetOffset(0, -105, -16);
-
- K051316Init(1, DrvGfxROM2, DrvGfxROMExp2, 0x7ffff, K051316Callback1, 4, 0);
- K051316SetOffset(1, -105, -16);
-
- K051316Init(2, DrvGfxROM3, DrvGfxROMExp3, 0x7ffff, K051316Callback2, 4, 0);
- K051316SetOffset(2, -105, -16);
-
- BurnYM2151Init(4000000);
- BurnYM2151SetRoute(BURN_SND_YM2151_YM2151_ROUTE_1, 1.00, BURN_SND_ROUTE_LEFT);
- BurnYM2151SetRoute(BURN_SND_YM2151_YM2151_ROUTE_2, 1.00, BURN_SND_ROUTE_RIGHT);
-
- MSM6295Init(0, 1056000 / 132, 1);
- MSM6295SetRoute(0, 0.50, BURN_SND_ROUTE_BOTH);
-
- DrvDoReset();
-
- return 0;
-}
-
-static INT32 DrvExit()
-{
- GenericTilesExit();
-
- KonamiICExit();
-
- SekExit();
- ZetExit();
-
- BurnYM2151Exit();
- MSM6295Exit(0);
-
- BurnFree (AllMem);
-
- return 0;
-}
-
-static inline void DrvRecalcPalette()
-{
- UINT8 r,g,b;
- UINT16 *p = (UINT16*)DrvPalRAM;
- for (INT32 i = 0; i < 0x4000 / 2; i++) {
- r = (BURN_ENDIAN_SWAP_INT16(p[i]) >> 10) & 0x1f;
- g = (BURN_ENDIAN_SWAP_INT16(p[i]) >> 5) & 0x1f;
- b = (BURN_ENDIAN_SWAP_INT16(p[i]) >> 0) & 0x1f;
-
- r = (r << 3) | (r >> 2);
- g = (g << 3) | (g >> 2);
- b = (b << 3) | (b >> 2);
-
- DrvPalette[i] = (r << 16) + (g << 8) + b;
- }
-}
-
-static INT32 DrvDraw()
-{
- if (DrvRecalc) {
- DrvRecalcPalette();
- }
-
- KonamiClearBitmaps(0);
-
- K051316_zoom_draw(2, 0);
- K051316_zoom_draw(1, 0);
- K051960SpritesRender(0, 0);
- K051316_zoom_draw(0, 0);
- K051960SpritesRender(1, 1);
-
- KonamiBlendCopy(DrvPalette);
-
- return 0;
-}
-
-static INT32 DrvFrame()
-{
- if (DrvReset) {
- DrvDoReset();
- }
-
- SekNewFrame();
- ZetNewFrame();
-
- {
- memset (DrvInputs, 0xff, 3);
- for (INT32 i = 0; i < 8; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- DrvInputs[2] ^= (DrvJoy3[i] & 1) << i;
- }
-
- // Clear Opposites
- if ((DrvInputs[1] & 0x18) == 0) DrvInputs[1] |= 0x18;
- if ((DrvInputs[1] & 0x06) == 0) DrvInputs[1] |= 0x06;
- if ((DrvInputs[2] & 0x18) == 0) DrvInputs[2] |= 0x18;
- if ((DrvInputs[2] & 0x06) == 0) DrvInputs[2] |= 0x06;
- }
-
- INT32 nInterleave = 100;
- INT32 nSoundBufferPos = 0;
- INT32 nCyclesTotal[2] = { 12000000 / 60, 4000000 / 60 };
- INT32 nCyclesDone[2] = { 0, 0 };
-
- SekOpen(0);
- ZetOpen(0);
-
- for (INT32 i = 0; i < nInterleave; i++) {
- INT32 nCyclesSegment = nCyclesTotal[0] / nInterleave;
-
- nCyclesDone[0] += SekRun(nCyclesSegment);
-
- nCyclesSegment = nCyclesTotal[1] / nInterleave;
-
- nCyclesDone[1] += ZetRun(nCyclesSegment);
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen / nInterleave;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- BurnYM2151Render(pSoundBuf, nSegmentLength);
- MSM6295Render(0, pSoundBuf, nSegmentLength);
- nSoundBufferPos += nSegmentLength;
- }
- }
-
- SekSetIRQLine(4, CPU_IRQSTATUS_AUTO);
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
- if (nSegmentLength) {
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- BurnYM2151Render(pSoundBuf, nSegmentLength);
- MSM6295Render(0, pSoundBuf, nSegmentLength);
- }
- }
-
- ZetClose();
- SekClose();
-
- if (pBurnDraw) {
- DrvDraw();
- }
-
- return 0;
-}
-
-static INT32 DrvScan(INT32 nAction,INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin) {
- *pnMin = 0x029705;
- }
-
- if (nAction & ACB_VOLATILE) {
- memset(&ba, 0, sizeof(ba));
-
- ba.Data = AllRam;
- ba.nLen = RamEnd - AllRam;
- ba.szName = "All Ram";
- BurnAcb(&ba);
-
- SekScan(nAction);
- ZetScan(nAction);
-
- BurnYM2151Scan(nAction);
- MSM6295Scan(0, nAction);
-
- KonamiICScan(nAction);
-
- SCAN_VAR(bank0);
- SCAN_VAR(bank1);
- SCAN_VAR(bank2);
- }
-
- return 0;
-}
-
-
-// Ultraman (Japan)
-
-static struct BurnRomInfo ultramanRomDesc[] = {
- { "910-b01.c11", 0x20000, 0x3d9e4323, 1 | BRF_PRG | BRF_ESS }, // 0 68k Code
- { "910-b02.d11", 0x20000, 0xd24c82e9, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "910-a05.d05", 0x08000, 0xebaef189, 2 | BRF_PRG | BRF_ESS }, // 2 Z80 Code
-
- { "910-a19.l04", 0x80000, 0x2dc9ffdc, 3 | BRF_GRA }, // 3 K051960 Sprites
- { "910-a20.l01", 0x80000, 0xa4298dce, 3 | BRF_GRA }, // 4
-
- { "910-a07.j15", 0x20000, 0x8b43a64e, 4 | BRF_GRA }, // 5 K051316 #0 Tiles
- { "910-a08.j16", 0x20000, 0xc3829826, 4 | BRF_GRA }, // 6
- { "910-a09.j18", 0x20000, 0xee10b519, 4 | BRF_GRA }, // 7
- { "910-a10.j19", 0x20000, 0xcffbb0c3, 4 | BRF_GRA }, // 8
-
- { "910-a11.l15", 0x20000, 0x17a5581d, 5 | BRF_GRA }, // 9 K051316 #1 Tiles
- { "910-a12.l16", 0x20000, 0x39763fb5, 5 | BRF_GRA }, // 10
- { "910-a13.l18", 0x20000, 0x66b25a4f, 5 | BRF_GRA }, // 11
- { "910-a14.l19", 0x20000, 0x09fbd412, 5 | BRF_GRA }, // 12
-
- { "910-a15.m15", 0x20000, 0x6d5bfbb7, 6 | BRF_GRA }, // 13 K051316 #2 Tiles
- { "910-a16.m16", 0x20000, 0x5f6f8c3d, 6 | BRF_GRA }, // 14
- { "910-a17.m18", 0x20000, 0x1f3ec4ff, 6 | BRF_GRA }, // 15
- { "910-a18.m19", 0x20000, 0xfdc42929, 6 | BRF_GRA }, // 16
-
- { "910-a06.c06", 0x40000, 0x28fa99c9, 7 | BRF_SND }, // 17 MSM6295 Samples
-
- { "910-a21.f14", 0x00100, 0x64460fbc, 0 | BRF_OPT }, // 18 Priority Prom
-};
-
-STD_ROM_PICK(ultraman)
-STD_ROM_FN(ultraman)
-
-struct BurnDriver BurnDrvUltraman = {
- "ultraman", NULL, NULL, NULL, "1991",
- "Ultraman (Japan)\0", NULL, "Banpresto / Bandai", "GX910",
- L"\uFEFF\u30A6\u30EB\u30c8\u30E9\u30DE\u30f3 \u7A7A\u60F3\u7279\u64AE\u30B7\u30EA\u30FC\u30BA (Japan)\0Ultraman\0", NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_PREFIX_KONAMI, GBF_VSFIGHT, 0,
- NULL, ultramanRomInfo, ultramanRomName, NULL, NULL, UltramanInputInfo, UltramanDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x2000,
- 288, 224, 4, 3
-};
diff --git a/jan/src/burn/drv/konami/d_vendetta.cpp b/jan/src/burn/drv/konami/d_vendetta.cpp
deleted file mode 100644
index 49e136066..000000000
--- a/jan/src/burn/drv/konami/d_vendetta.cpp
+++ /dev/null
@@ -1,1276 +0,0 @@
-// FB Alpha Vendetta / Crime Fighters 2 / Escape Kids driver module
-// Based on MAME driver by Ernesto Corvi
-
-#include "tiles_generic.h"
-#include "z80_intf.h"
-#include "burn_ym2151.h"
-#include "konami_intf.h"
-#include "konamiic.h"
-#include "k053260.h"
-#include "eeprom.h"
-
-static UINT8 *AllMem;
-static UINT8 *MemEnd;
-static UINT8 *AllRam;
-static UINT8 *RamEnd;
-static UINT8 *DrvKonROM;
-static UINT8 *DrvZ80ROM;
-static UINT8 *DrvGfxROM0;
-static UINT8 *DrvGfxROMExp0;
-static UINT8 *DrvGfxROM1;
-static UINT8 *DrvGfxROMExp1;
-static UINT8 *DrvSndROM;
-static UINT8 *DrvKonRAM;
-static UINT8 *DrvPalRAM;
-static UINT8 *DrvZ80RAM;
-
-static UINT32 *DrvPalette;
-static UINT8 DrvRecalc;
-
-static UINT8 *nDrvBank;
-
-static INT32 videobank;
-static INT32 init_eeprom_count;
-static INT32 irq_enabled;
-static INT32 vblank = 0;
-static INT32 bankoffset;
-
-static INT32 bg_colorbase;
-static INT32 sprite_colorbase;
-static INT32 layer_colorbase[3];
-static INT32 layerpri[3];
-
-static UINT8 DrvJoy1[8];
-static UINT8 DrvJoy2[8];
-static UINT8 DrvJoy3[8];
-static UINT8 DrvJoy4[8];
-static UINT8 DrvJoy5[8];
-static UINT8 DrvJoy6;
-static UINT8 DrvReset;
-static UINT8 DrvInputs[5];
-
-static INT32 nCyclesDone[2];
-
-static struct BurnInputInfo Vendet4pInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy1 + 7, "p1 coin" },
- {"P1 Up", BIT_DIGITAL, DrvJoy1 + 2, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy1 + 3, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy1 + 1, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy1 + 0, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy1 + 4, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy1 + 5, "p1 fire 2" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy2 + 7, "p2 coin" },
- {"P2 Up", BIT_DIGITAL, DrvJoy2 + 2, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy2 + 3, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy2 + 1, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy2 + 0, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy2 + 4, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy2 + 5, "p2 fire 2" },
-
- {"P3 Coin", BIT_DIGITAL, DrvJoy3 + 7, "p3 coin" },
- {"P3 Up", BIT_DIGITAL, DrvJoy3 + 2, "p3 up" },
- {"P3 Down", BIT_DIGITAL, DrvJoy3 + 3, "p3 down" },
- {"P3 Left", BIT_DIGITAL, DrvJoy3 + 1, "p3 left" },
- {"P3 Right", BIT_DIGITAL, DrvJoy3 + 0, "p3 right" },
- {"P3 Button 1", BIT_DIGITAL, DrvJoy3 + 4, "p3 fire 1" },
- {"P3 Button 2", BIT_DIGITAL, DrvJoy3 + 5, "p3 fire 2" },
-
- {"P4 Coin", BIT_DIGITAL, DrvJoy4 + 7, "p4 coin" },
- {"P4 Up", BIT_DIGITAL, DrvJoy4 + 2, "p4 up" },
- {"P4 Down", BIT_DIGITAL, DrvJoy4 + 3, "p4 down" },
- {"P4 Left", BIT_DIGITAL, DrvJoy4 + 1, "p4 left" },
- {"P4 Right", BIT_DIGITAL, DrvJoy4 + 0, "p4 right" },
- {"P4 Button 1", BIT_DIGITAL, DrvJoy4 + 4, "p4 fire 1" },
- {"P4 Button 2", BIT_DIGITAL, DrvJoy4 + 5, "p4 fire 2" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Diagnostics", BIT_DIGITAL, &DrvJoy6, "diag" },
-};
-
-STDINPUTINFO(Vendet4p)
-
-static struct BurnInputInfo VendettaInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy1 + 7, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy5 + 0, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy1 + 2, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy1 + 3, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy1 + 1, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy1 + 0, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy1 + 4, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy1 + 5, "p1 fire 2" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy2 + 7, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy5 + 1, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvJoy2 + 2, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy2 + 3, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy2 + 1, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy2 + 0, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy2 + 4, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy2 + 5, "p2 fire 2" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Diagnostics", BIT_DIGITAL, &DrvJoy6, "diag" },
- {"Service", BIT_DIGITAL, DrvJoy5 + 4, "service" },
-};
-
-STDINPUTINFO(Vendetta)
-
-static struct BurnInputInfo EsckidsInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy1 + 7, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy5 + 0, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy1 + 2, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy1 + 3, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy1 + 1, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy1 + 0, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy1 + 4, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy1 + 5, "p1 fire 2" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy2 + 7, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy5 + 1, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvJoy2 + 2, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy2 + 3, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy2 + 1, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy2 + 0, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy2 + 4, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy2 + 5, "p2 fire 2" },
-
- {"P3 Coin", BIT_DIGITAL, DrvJoy3 + 7, "p3 coin" },
- {"P3 Start", BIT_DIGITAL, DrvJoy5 + 2, "p3 start" },
- {"P3 Up", BIT_DIGITAL, DrvJoy3 + 2, "p3 up" },
- {"P3 Down", BIT_DIGITAL, DrvJoy3 + 3, "p3 down" },
- {"P3 Left", BIT_DIGITAL, DrvJoy3 + 1, "p3 left" },
- {"P3 Right", BIT_DIGITAL, DrvJoy3 + 0, "p3 right" },
- {"P3 Button 1", BIT_DIGITAL, DrvJoy3 + 4, "p3 fire 1" },
- {"P3 Button 2", BIT_DIGITAL, DrvJoy3 + 5, "p3 fire 2" },
-
- {"P4 Coin", BIT_DIGITAL, DrvJoy4 + 7, "p4 coin" },
- {"P4 Start", BIT_DIGITAL, DrvJoy5 + 3, "p4 start" },
- {"P4 Up", BIT_DIGITAL, DrvJoy4 + 2, "p4 up" },
- {"P4 Down", BIT_DIGITAL, DrvJoy4 + 3, "p4 down" },
- {"P4 Left", BIT_DIGITAL, DrvJoy4 + 1, "p4 left" },
- {"P4 Right", BIT_DIGITAL, DrvJoy4 + 0, "p4 right" },
- {"P4 Button 1", BIT_DIGITAL, DrvJoy4 + 4, "p4 fire 1" },
- {"P4 Button 2", BIT_DIGITAL, DrvJoy4 + 5, "p4 fire 2" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Diagnostics", BIT_DIGITAL, &DrvJoy6, "diag" },
- {"Service 1", BIT_DIGITAL, DrvJoy5 + 4, "service" },
- {"Service 2", BIT_DIGITAL, DrvJoy5 + 5, "service2" },
- {"Service 3", BIT_DIGITAL, DrvJoy5 + 6, "service3" },
- {"Service 4", BIT_DIGITAL, DrvJoy5 + 7, "service4" },
-};
-
-STDINPUTINFO(Esckids)
-
-static struct BurnInputInfo EsckidsjInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy1 + 7, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy5 + 0, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy1 + 2, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy1 + 3, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy1 + 1, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy1 + 0, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy1 + 4, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy1 + 5, "p1 fire 2" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy2 + 7, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy5 + 1, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvJoy2 + 2, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy2 + 3, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy2 + 1, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy2 + 0, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy2 + 4, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy2 + 5, "p2 fire 2" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Diagnostics", BIT_DIGITAL, &DrvJoy6, "diag" },
- {"Service 1", BIT_DIGITAL, DrvJoy5 + 4, "service" },
- {"Service 2", BIT_DIGITAL, DrvJoy5 + 5, "service2" },
-};
-
-STDINPUTINFO(Esckidsj)
-
-void vendetta_main_write(UINT16 address, UINT8 data)
-{
- switch (address)
- {
- case 0x5fe0:
- K052109RMRDLine = data & 0x08;
- K053246_set_OBJCHA_line(data & 0x20);
- return;
-
- case 0x5fe2:
- {
- if (data == 0xff) return;
-
- EEPROMWrite(data & 0x10, data & 0x08, data & 0x20);
-
- irq_enabled = (data >> 6) & 1;
-
- videobank = data & 1;
- }
- return;
-
- case 0x5fe4:
- ZetSetVector(0xff);
- ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
- return;
-
- case 0x5fe6:
- case 0x5fe7:
- K053260Write(0, address & 1, data);
- return;
- }
-
- if ((address & 0xffe0) == 0x5f80) {
- K054000Write(address, data);
- return;
- }
-
- if ((address & 0xfff0) == 0x5fa0) {
- K053251Write(address & 0x0f, data);
- return;
- }
-
- if ((address & 0xfff8) == 0x5fb0) {
- K053246Write(address & 7, data);
- return;
- }
-
- if (videobank) {
- if ((address & 0xf000) == 0x4000) {
- address ^= 1;
- K053247Write(address & 0x0fff, data);
- return;
- }
-
- if ((address & 0xf000) == 0x6000) {
- DrvPalRAM[address & 0xfff] = data;
- return;
- }
- }
-
- if ((address & 0xc000) == 0x4000) {
- K052109Write(address & 0x3fff, data);
- return;
- }
-}
-
-UINT8 vendetta_main_read(UINT16 address)
-{
- switch (address)
- {
- case 0x5fc0:
- return DrvInputs[0];
-
- case 0x5fc1:
- return DrvInputs[1];
-
- case 0x5fc2:
- return DrvInputs[2];
-
- case 0x5fc3:
- return DrvInputs[3];
-
- case 0x5fd0:
- {
- INT32 res = (EEPROMRead() & 1) | vblank | ((DrvJoy6 << 2) ^ 0xf6);
-
- if (init_eeprom_count > 0)
- {
- init_eeprom_count--;
- res &= 0xfb;
- }
- return res;
- }
-
- case 0x5fd1:
- return DrvInputs[4];
-
- case 0x5fe4:
- ZetSetVector(0xff);
- ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
- return 0;
-
- case 0x5fe6:
- case 0x5fe7:
- return K053260Read(0, (address & 1)+2);
-
- case 0x5fe8:
- case 0x5fe9:
- return K053246Read(address & 1);
-
- case 0x5fea:
- return 0; // watchdog
- }
-
- if ((address & 0xffe0) == 0x5f80) {
- return K054000Read(address);
- }
-
- if (videobank) {
- if ((address & 0xf000) == 0x4000) {
- address ^= 1;
- return K053247Read(address & 0x0fff);
- }
-
- if ((address & 0xf000) == 0x6000) {
- return DrvPalRAM[address & 0x0fff];
- }
- }
-
- if ((address & 0xc000) == 0x4000) {
- return K052109Read(address & 0x3fff);
- }
-
- return 0;
-}
-
-void esckids_main_write(UINT16 address, UINT8 data)
-{
- switch (address)
- {
- case 0x3fd0:
- K052109RMRDLine = data & 0x08;
- K053246_set_OBJCHA_line(data & 0x20);
- return;
-
- case 0x3fd2:
- {
- if (data == 0xff) return;
-
- EEPROMWrite(data & 0x10, data & 0x08, data & 0x20);
-
- irq_enabled = (data >> 6) & 1;
-
- videobank = data & 1;
- }
- return;
-
- case 0x3fd4:
- ZetSetVector(0xff);
- ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
- return;
-
- case 0x3fd6:
- case 0x3fd7:
- K053260Write(0, address & 1, data);
- return;
- }
-
- if ((address & 0xfff0) == 0x3fb0) {
- K053251Write(address & 0x0f, data);
- return;
- }
-
- if ((address & 0xfff8) == 0x3fa0) {
- K053246Write(address & 7, data);
- return;
- }
-
- if (videobank) {
- if ((address & 0xf000) == 0x2000) {
- address ^= 1;
- K053247Write(address & 0x0fff, data);
- return;
- }
-
- if ((address & 0xf000) == 0x4000) {
- DrvPalRAM[address & 0xfff] = data;
- return;
- }
- }
-
- if (address >= 0x2000 && address <= 0x5fff) {
- K052109Write(address - 0x2000, data);
- return;
- }
-}
-
-UINT8 esckids_main_read(UINT16 address)
-{
- switch (address)
- {
- case 0x3f80:
- return DrvInputs[0];
-
- case 0x3f81:
- return DrvInputs[1];
-
- case 0x3f82:
- return DrvInputs[2];
-
- case 0x3f83:
- return DrvInputs[3];
-
- case 0x3f92:
- {
- INT32 res = (EEPROMRead() & 1) | vblank | ((DrvJoy6 << 2) ^ 0xf6);
-
- if (init_eeprom_count > 0)
- {
- init_eeprom_count--;
- res &= 0xfb;
- }
- return res;
- }
-
- case 0x3f93:
- return DrvInputs[4];
-
- case 0x3fd4:
- ZetSetVector(0xff);
- ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
- return 0;
-
- case 0x3fd6:
- case 0x3fd7:
- return K053260Read(0, (address & 1)+2);
-
- case 0x3fd8:
- case 0x3fd9:
- return K053246Read(address & 1);
-
- }
-
- if (videobank) {
- if ((address & 0xf000) == 0x2000) {
- address ^= 1;
- return K053247Read(address & 0x0fff);
- }
-
- if ((address & 0xf000) == 0x4000) {
- return DrvPalRAM[address & 0x0fff];
- }
- }
-
- if (address >= 0x2000 && address <= 0x5fff) {
- return K052109Read(address - 0x2000);
- }
-
- return 0;
-}
-
-void __fastcall vendetta_sound_write(UINT16 address, UINT8 data)
-{
- switch (address)
- {
- case 0xf800:
- BurnYM2151SelectRegister(data);
- return;
-
- case 0xf801:
- BurnYM2151WriteRegister(data);
- return;
-
- case 0xfa00:
- nCyclesDone[1] += ZetRun(100);
- ZetNmi();
- return;
- }
-
- if (address >= 0xfc00 && address < 0xfc30) {
- K053260Write(0, address & 0xff, data);
- return;
- }
-}
-
-UINT8 __fastcall vendetta_sound_read(UINT16 address)
-{
- switch (address)
- {
- case 0xf800:
- return 0xff;
- case 0xf801:
- return BurnYM2151ReadStatus();
- }
-
- if (address >= 0xfc00 && address < 0xfc30) {
- if ((address & 0x3f) == 0x01) ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
-
- return K053260Read(0, address & 0xff);
- }
-
- return 0;
-}
-
-static void vendetta_set_lines(INT32 lines)
-{
- nDrvBank[0] = lines;
-
- if (lines < 0x1c) {
- konamiMapMemory(DrvKonROM + 0x10000 + (lines * 0x2000), 0x0000 | bankoffset, 0x1fff | bankoffset, MAP_ROM);
- }
-}
-
-static void K052109Callback(INT32 layer, INT32 bank, INT32 *code, INT32 *color, INT32 *, INT32 *)
-{
- *code |= ((*color & 0x03) << 8) | ((*color & 0x30) << 6) | ((*color & 0x0c) << 10) | (bank << 14);
- *color = layer_colorbase[layer] + ((*color & 0xc0) >> 6);
-}
-
-static void EsckidsK052109Callback(INT32 layer, INT32 bank, INT32 *code, INT32 *color, INT32 *, INT32 *)
-{
- *code |= ((*color & 0x03) << 8) | ((*color & 0x10) << 6) | ((*color & 0x0c) << 9) | (bank << 13);
- *color = layer_colorbase[layer] + ((*color & 0xe0) >> 5);
-}
-
-static void VendettaK053247Callback(INT32 *code, INT32 *color, INT32 *priority)
-{
- INT32 pri = (*color & 0x03e0) >> 4;
- if (pri <= layerpri[2]) *priority = 0;
- else if (pri > layerpri[2] && pri <= layerpri[1]) *priority = 0xf0;
- else if (pri > layerpri[1] && pri <= layerpri[0]) *priority = 0xf0 | 0xcc;
- else *priority = 0xf0 | 0xcc | 0xaa;
-
- *code &= 0x7fff;
-
- *color = sprite_colorbase + (*color & 0x001f);
-}
-
-static INT32 DrvDoReset()
-{
- DrvReset = 0;
-
- memset (AllRam, 0, RamEnd - AllRam);
-
- konamiOpen(0);
- konamiReset();
- konamiClose();
-
- ZetOpen(0);
- ZetReset();
- ZetClose();
-
- BurnYM2151Reset();
-
- KonamiICReset();
-
- K053260Reset(0);
-
- EEPROMReset();
-
- videobank = 0;
-
- if (EEPROMAvailable()) {
- init_eeprom_count = 0;
- } else {
- init_eeprom_count = 1000;
- }
-
- irq_enabled = 0;
- videobank = 0;
-
- return 0;
-}
-
-static INT32 MemIndex()
-{
- UINT8 *Next; Next = AllMem;
-
- DrvKonROM = Next; Next += 0x050000;
- DrvZ80ROM = Next; Next += 0x010000;
-
- DrvGfxROM0 = Next; Next += 0x100000;
- DrvGfxROMExp0 = Next; Next += 0x200000;
- DrvGfxROM1 = Next; Next += 0x400000;
- DrvGfxROMExp1 = Next; Next += 0x800000;
-
- DrvSndROM = Next; Next += 0x100000;
-
- DrvPalette = (UINT32*)Next; Next += 0x800 * sizeof(UINT32);
-
- AllRam = Next;
-
- DrvZ80RAM = Next; Next += 0x000800;
-
- DrvKonRAM = Next; Next += 0x002000;
- DrvPalRAM = Next; Next += 0x001000;
-
- nDrvBank = Next; Next += 0x000001;
-
- RamEnd = Next;
- MemEnd = Next;
-
- return 0;
-}
-
-static const eeprom_interface vendetta_eeprom_intf =
-{
- 7, // address bits
- 8, // data bits
- "011000", // read command
- "011100", // write command
- 0, // erase command
- "0100000000000", // lock command
- "0100110000000", // unlock command
- 0,
- 0
-};
-
-static INT32 DrvInit(INT32 nGame)
-{
- GenericTilesInit();
-
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(DrvKonROM + 0x010000, 0, 1)) return 1;
-
- if (BurnLoadRom(DrvZ80ROM + 0x000000, 1, 1)) return 1;
-
- if (BurnLoadRomExt(DrvGfxROM0 + 0x000000, 2, 4, 2)) return 1;
- if (BurnLoadRomExt(DrvGfxROM0 + 0x000002, 3, 4, 2)) return 1;
-
- if (BurnLoadRomExt(DrvGfxROM1 + 0x000000, 4, 8, 2)) return 1;
- if (BurnLoadRomExt(DrvGfxROM1 + 0x000002, 5, 8, 2)) return 1;
- if (BurnLoadRomExt(DrvGfxROM1 + 0x000004, 6, 8, 2)) return 1;
- if (BurnLoadRomExt(DrvGfxROM1 + 0x000006, 7, 8, 2)) return 1;
-
- if (BurnLoadRom(DrvSndROM + 0x000000, 8, 1)) return 1;
-
- K052109GfxDecode(DrvGfxROM0, DrvGfxROMExp0, 0x100000);
- K053247GfxDecode(DrvGfxROM1, DrvGfxROMExp1, 0x400000);
- }
-
- if (nGame) // escape kids
- {
- memcpy (DrvKonROM + 0x08000, DrvKonROM + 0x28000, 0x8000);
-
- konamiInit(0);
- konamiOpen(0);
- konamiMapMemory(DrvKonRAM, 0x0000, 0x1fff, MAP_RAM);
- konamiMapMemory(DrvKonROM + 0x10000, 0x6000, 0x7fff, MAP_ROM);
- konamiMapMemory(DrvKonROM + 0x08000, 0x8000, 0xffff, MAP_ROM);
- konamiSetWriteHandler(esckids_main_write);
- konamiSetReadHandler(esckids_main_read);
- konamiSetlinesCallback(vendetta_set_lines);
- konamiClose();
-
- K052109Init(DrvGfxROM0, DrvGfxROMExp0, 0x0fffff);
- K052109SetCallback(EsckidsK052109Callback);
- K052109AdjustScroll(8, -8);
-
- K053247Init(DrvGfxROM1, DrvGfxROMExp1, 0x3fffff, VendettaK053247Callback, 1);
- K053247SetSpriteOffset(-11, -14);
-
- bankoffset = 0x6000;
- } else {
- memcpy (DrvKonROM + 0x08000, DrvKonROM + 0x48000, 0x8000);
-
- konamiInit(0);
- konamiOpen(0);
- konamiMapMemory(DrvKonROM + 0x10000, 0x0000, 0x1fff, MAP_ROM);
- konamiMapMemory(DrvKonRAM, 0x2000, 0x3fff, MAP_RAM);
- konamiMapMemory(DrvKonROM + 0x08000, 0x8000, 0xffff, MAP_ROM);
- konamiSetWriteHandler(vendetta_main_write);
- konamiSetReadHandler(vendetta_main_read);
- konamiSetlinesCallback(vendetta_set_lines);
- konamiClose();
-
- K052109Init(DrvGfxROM0, DrvGfxROMExp0, 0x0fffff);
- K052109SetCallback(K052109Callback);
- K052109AdjustScroll(0, 0);
-
- K053247Init(DrvGfxROM1, DrvGfxROMExp1, 0x3fffff, VendettaK053247Callback, 1);
- K053247SetSpriteOffset(-53+2, -22);
-
- bankoffset = 0;
- }
-
- ZetInit(0);
- ZetOpen(0);
- ZetMapArea(0x0000, 0xefff, 0, DrvZ80ROM);
- ZetMapArea(0x0000, 0xefff, 2, DrvZ80ROM);
- ZetMapArea(0xf000, 0xf7ff, 0, DrvZ80RAM);
- ZetMapArea(0xf000, 0xf7ff, 1, DrvZ80RAM);
- ZetMapArea(0xf000, 0xf7ff, 2, DrvZ80RAM);
- ZetSetWriteHandler(vendetta_sound_write);
- ZetSetReadHandler(vendetta_sound_read);
- ZetClose();
-
- EEPROMInit(&vendetta_eeprom_intf);
-
- BurnYM2151Init(3579545);
- BurnYM2151SetRoute(BURN_SND_YM2151_YM2151_ROUTE_1, 1.00, BURN_SND_ROUTE_LEFT);
- BurnYM2151SetRoute(BURN_SND_YM2151_YM2151_ROUTE_2, 1.00, BURN_SND_ROUTE_RIGHT);
-
- K053260Init(0, 3579545, DrvSndROM, 0x100000 >> nGame);
- K053260SetRoute(0, BURN_SND_K053260_ROUTE_1, 0.75, BURN_SND_ROUTE_LEFT);
- K053260SetRoute(0, BURN_SND_K053260_ROUTE_2, 0.75, BURN_SND_ROUTE_RIGHT);
-
- DrvDoReset();
-
- return 0;
-}
-
-static INT32 DrvExit()
-{
- GenericTilesExit();
-
- KonamiICExit();
-
- konamiExit();
- ZetExit();
-
- EEPROMExit();
-
- BurnYM2151Exit();
- K053260Exit();
-
- BurnFree (AllMem);
-
- return 0;
-}
-
-static INT32 DrvDraw()
-{
- KonamiRecalcPalette(DrvPalRAM, DrvPalette, 0x1000);
-
- K052109UpdateScroll();
-
- INT32 layer[3];
-
- bg_colorbase = K053251GetPaletteIndex(0);
- sprite_colorbase = K053251GetPaletteIndex(1);
- layer_colorbase[0] = K053251GetPaletteIndex(2);
- layer_colorbase[1] = K053251GetPaletteIndex(3);
- layer_colorbase[2] = K053251GetPaletteIndex(4);
-
- layerpri[0] = K053251GetPriority(2);
- layerpri[1] = K053251GetPriority(3);
- layerpri[2] = K053251GetPriority(4);
- layer[0] = 0;
- layer[1] = 1;
- layer[2] = 2;
-
- konami_sortlayers3(layer,layerpri);
-
- if (nBurnLayer & 1) K052109RenderLayer(layer[0], K052109_OPAQUE, 1);
- if (nBurnLayer & 2) K052109RenderLayer(layer[1], 0, 2);
- if (nBurnLayer & 4) K052109RenderLayer(layer[2], 0, 4);
-
- if (nSpriteEnable & 1) K053247SpritesRender();
-
- KonamiBlendCopy(DrvPalette);
-
- return 0;
-}
-
-static INT32 DrvFrame()
-{
- if (DrvReset) {
- DrvDoReset();
- }
-
- ZetNewFrame();
- konamiNewFrame();
-
- {
- memset (DrvInputs, 0xff, 5);
- for (INT32 i = 0; i < 8; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- DrvInputs[2] ^= (DrvJoy3[i] & 1) << i;
- DrvInputs[3] ^= (DrvJoy4[i] & 1) << i;
- DrvInputs[4] ^= (DrvJoy5[i] & 1) << i;
- }
-
- // Clear Opposites
- if ((DrvInputs[0] & 0x0c) == 0) DrvInputs[0] |= 0x0c;
- if ((DrvInputs[0] & 0x03) == 0) DrvInputs[0] |= 0x03;
- if ((DrvInputs[1] & 0x0c) == 0) DrvInputs[1] |= 0x0c;
- if ((DrvInputs[1] & 0x03) == 0) DrvInputs[1] |= 0x03;
- if ((DrvInputs[2] & 0x0c) == 0) DrvInputs[2] |= 0x0c;
- if ((DrvInputs[2] & 0x03) == 0) DrvInputs[2] |= 0x03;
- if ((DrvInputs[3] & 0x0c) == 0) DrvInputs[3] |= 0x0c;
- if ((DrvInputs[3] & 0x03) == 0) DrvInputs[3] |= 0x03;
- }
-
- INT32 nInterleave = 100;
- INT32 nSoundBufferPos = 0;
- INT32 nCyclesTotal[2] = { 6000000 / 60, 3579545 / 60 };
-
- nCyclesDone[0] = nCyclesDone[1] = 0;
-
- ZetOpen(0);
- konamiOpen(0);
-
- vblank = 8;
-
- INT32 trigger_vblank = (nInterleave / 256) * 240;
-
- for (INT32 i = 0; i < nInterleave; i++) {
- INT32 nNext, nCyclesSegment;
-
- nNext = (i + 1) * nCyclesTotal[0] / nInterleave;
- nCyclesSegment = nNext - nCyclesDone[0];
- nCyclesSegment = konamiRun(nCyclesSegment);
- nCyclesDone[0] += nCyclesSegment;
-
- nNext = (i + 1) * nCyclesTotal[1] / nInterleave;
- nCyclesSegment = nNext - nCyclesDone[1];
- nCyclesSegment = ZetRun(nCyclesSegment);
- nCyclesDone[1] += nCyclesSegment;
-
- if (i == trigger_vblank) vblank = 0; // or 8?
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen / nInterleave;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- BurnYM2151Render(pSoundBuf, nSegmentLength);
- K053260Update(0, pSoundBuf, nSegmentLength);
- nSoundBufferPos += nSegmentLength;
- }
- }
-
- if (irq_enabled) konamiSetIrqLine(KONAMI_IRQ_LINE, CPU_IRQSTATUS_AUTO);
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- if (nSegmentLength) {
- BurnYM2151Render(pSoundBuf, nSegmentLength);
- K053260Update(0, pSoundBuf, nSegmentLength);
- }
- }
-
- konamiClose();
- ZetClose();
-
- if (pBurnDraw) {
- DrvDraw();
- }
-
- return 0;
-}
-
-static INT32 DrvScan(INT32 nAction,INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin) {
- *pnMin = 0x029705;
- }
-
- if (nAction & ACB_VOLATILE) {
- memset(&ba, 0, sizeof(ba));
-
- ba.Data = AllRam;
- ba.nLen = RamEnd - AllRam;
- ba.szName = "All Ram";
- BurnAcb(&ba);
-
- konamiCpuScan(nAction);
- ZetScan(nAction);
-
- BurnYM2151Scan(nAction);
- K053260Scan(nAction);
-
- KonamiICScan(nAction);
-
- EEPROMScan(nAction, pnMin);
-
- SCAN_VAR(irq_enabled);
- SCAN_VAR(videobank);
- SCAN_VAR(nCyclesDone[1]);
- }
-
- if (nAction & ACB_WRITE) {
- konamiOpen(0);
- vendetta_set_lines(nDrvBank[0]);
- konamiClose();
- }
-
- return 0;
-}
-
-
-// Vendetta (World, 4 Players ver. T)
-
-static struct BurnRomInfo vendettaRomDesc[] = {
- { "081t01.17c", 0x040000, 0xe76267f5, 1 | BRF_PRG | BRF_ESS }, // 0 Konami Custom Code
-
- { "081b02", 0x010000, 0x4c604d9b, 2 | BRF_PRG | BRF_ESS }, // 1 Z80 Code
-
- { "081a09", 0x080000, 0xb4c777a9, 3 | BRF_GRA }, // 2 K052109 Tiles
- { "081a08", 0x080000, 0x272ac8d9, 3 | BRF_GRA }, // 3
-
- { "081a04", 0x100000, 0x464b9aa4, 4 | BRF_GRA }, // 4 K053247 Tiles
- { "081a05", 0x100000, 0x4e173759, 4 | BRF_GRA }, // 5
- { "081a06", 0x100000, 0xe9fe6d80, 4 | BRF_GRA }, // 6
- { "081a07", 0x100000, 0x8a22b29a, 4 | BRF_GRA }, // 7
-
- { "081a03", 0x100000, 0x14b6baea, 5 | BRF_SND }, // 8 K053260 Samples
-
- { "vendetta.nv", 0x000080, 0xfbac4e30, BRF_OPT },
-};
-
-STD_ROM_PICK(vendetta)
-STD_ROM_FN(vendetta)
-
-static INT32 VendettaInit()
-{
- return DrvInit(0);
-}
-
-struct BurnDriver BurnDrvVendetta = {
- "vendetta", NULL, NULL, NULL, "1991",
- "Vendetta (World, 4 Players ver. T)\0", NULL, "Konami", "GX081",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 4, HARDWARE_PREFIX_KONAMI, GBF_SCRFIGHT, 0,
- NULL, vendettaRomInfo, vendettaRomName, NULL, NULL, Vendet4pInputInfo, NULL,
- VendettaInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 304, 224, 4, 3
-};
-
-
-// Vendetta (US, 4 Players ver. R)
-
-static struct BurnRomInfo vendettarRomDesc[] = {
- { "081r01.17c", 0x040000, 0x84796281, 1 | BRF_PRG | BRF_ESS }, // 0 Konami Custom Code
-
- { "081b02", 0x010000, 0x4c604d9b, 2 | BRF_PRG | BRF_ESS }, // 1 Z80 Code
-
- { "081a09", 0x080000, 0xb4c777a9, 3 | BRF_GRA }, // 2 K052109 Tiles
- { "081a08", 0x080000, 0x272ac8d9, 3 | BRF_GRA }, // 3
-
- { "081a04", 0x100000, 0x464b9aa4, 4 | BRF_GRA }, // 4 K053247 Tiles
- { "081a05", 0x100000, 0x4e173759, 4 | BRF_GRA }, // 5
- { "081a06", 0x100000, 0xe9fe6d80, 4 | BRF_GRA }, // 6
- { "081a07", 0x100000, 0x8a22b29a, 4 | BRF_GRA }, // 7
-
- { "081a03", 0x100000, 0x14b6baea, 5 | BRF_SND }, // 8 K053260 Samples
-
- { "vendettar.nv", 0x000080, 0xec3f0449, BRF_OPT },
-};
-
-STD_ROM_PICK(vendettar)
-STD_ROM_FN(vendettar)
-
-struct BurnDriver BurnDrvVendettar = {
- "vendettar", "vendetta", NULL, NULL, "1991",
- "Vendetta (US, 4 Players ver. R)\0", NULL, "Konami", "GX081",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 4, HARDWARE_PREFIX_KONAMI, GBF_SCRFIGHT, 0,
- NULL, vendettarRomInfo, vendettarRomName, NULL, NULL, Vendet4pInputInfo, NULL,
- VendettaInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 304, 224, 4, 3
-};
-
-
-// Vendetta (Asia, 4 Players ver. Z)
-
-static struct BurnRomInfo vendettazRomDesc[] = {
- { "081z01.17c", 0x040000, 0x4d225a8d, 1 | BRF_PRG | BRF_ESS }, // 0 Konami Custom Code
-
- { "081b02", 0x010000, 0x4c604d9b, 2 | BRF_PRG | BRF_ESS }, // 1 Z80 Code
-
- { "081a09", 0x080000, 0xb4c777a9, 3 | BRF_GRA }, // 2 K052109 Tiles
- { "081a08", 0x080000, 0x272ac8d9, 3 | BRF_GRA }, // 3
-
- { "081a04", 0x100000, 0x464b9aa4, 4 | BRF_GRA }, // 4 K053247 Tiles
- { "081a05", 0x100000, 0x4e173759, 4 | BRF_GRA }, // 5
- { "081a06", 0x100000, 0xe9fe6d80, 4 | BRF_GRA }, // 6
- { "081a07", 0x100000, 0x8a22b29a, 4 | BRF_GRA }, // 7
-
- { "081a03", 0x100000, 0x14b6baea, 5 | BRF_SND }, // 8 K053260 Samples
-
- { "vendetta.nv", 0x000080, 0xfbac4e30, BRF_OPT },
-};
-
-STD_ROM_PICK(vendettaz)
-STD_ROM_FN(vendettaz)
-
-struct BurnDriver BurnDrvVendettaz = {
- "vendettaz", "vendetta", NULL, NULL, "1991",
- "Vendetta (Asia, 4 Players ver. Z)\0", NULL, "Konami", "GX081",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 4, HARDWARE_PREFIX_KONAMI, GBF_SCRFIGHT, 0,
- NULL, vendettazRomInfo, vendettazRomName, NULL, NULL, Vendet4pInputInfo, NULL,
- VendettaInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 304, 224, 4, 3
-};
-
-
-// Vendetta (World, 2 Players ver. W)
-
-static struct BurnRomInfo vendetta2pRomDesc[] = {
- { "081w01.17c", 0x040000, 0xcee57132, 1 | BRF_PRG | BRF_ESS }, // 0 Konami Custom Code
-
- { "081b02", 0x010000, 0x4c604d9b, 2 | BRF_PRG | BRF_ESS }, // 1 Z80 Code
-
- { "081a09", 0x080000, 0xb4c777a9, 3 | BRF_GRA }, // 2 K052109 Tiles
- { "081a08", 0x080000, 0x272ac8d9, 3 | BRF_GRA }, // 3
-
- { "081a04", 0x100000, 0x464b9aa4, 4 | BRF_GRA }, // 4 K053247 Tiles
- { "081a05", 0x100000, 0x4e173759, 4 | BRF_GRA }, // 5
- { "081a06", 0x100000, 0xe9fe6d80, 4 | BRF_GRA }, // 6
- { "081a07", 0x100000, 0x8a22b29a, 4 | BRF_GRA }, // 7
-
- { "081a03", 0x100000, 0x14b6baea, 5 | BRF_SND }, // 8 K053260 Samples
-
- { "vendetta.nv", 0x000080, 0xfbac4e30, BRF_OPT },
-};
-
-STD_ROM_PICK(vendetta2p)
-STD_ROM_FN(vendetta2p)
-
-struct BurnDriver BurnDrvVendetta2p = {
- "vendetta2p", "vendetta", NULL, NULL, "1991",
- "Vendetta (World, 2 Players ver. W)\0", NULL, "Konami", "GX081",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_KONAMI, GBF_SCRFIGHT, 0,
- NULL, vendetta2pRomInfo, vendetta2pRomName, NULL, NULL, VendettaInputInfo, NULL,
- VendettaInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 304, 224, 4, 3
-};
-
-
-// Vendetta (World, 2 Players ver. EB-A?)
-
-static struct BurnRomInfo vendetta2pebaRomDesc[] = {
- { "081-eb-a01.17c", 0x040000, 0x8430bb52, 1 | BRF_PRG | BRF_ESS }, // 0 Konami Custom Code
-
- { "081b02", 0x010000, 0x4c604d9b, 2 | BRF_PRG | BRF_ESS }, // 1 Z80 Code
-
- { "081a09", 0x080000, 0xb4c777a9, 3 | BRF_GRA }, // 2 K052109 Tiles
- { "081a08", 0x080000, 0x272ac8d9, 3 | BRF_GRA }, // 3
-
- { "081a04", 0x100000, 0x464b9aa4, 4 | BRF_GRA }, // 4 K053247 Tiles
- { "081a05", 0x100000, 0x4e173759, 4 | BRF_GRA }, // 5
- { "081a06", 0x100000, 0xe9fe6d80, 4 | BRF_GRA }, // 6
- { "081a07", 0x100000, 0x8a22b29a, 4 | BRF_GRA }, // 7
-
- { "081a03", 0x100000, 0x14b6baea, 5 | BRF_SND }, // 8 K053260 Samples
-
- { "vendetta.nv", 0x000080, 0xfbac4e30, BRF_OPT },
-};
-
-STD_ROM_PICK(vendetta2peba)
-STD_ROM_FN(vendetta2peba)
-
-struct BurnDriver BurnDrvVendetta2peba = {
- "vendetta2peba", "vendetta", NULL, NULL, "1991",
- "Vendetta (World, 2 Players ver. EB-A?)\0", NULL, "Konami", "GX081",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_KONAMI, GBF_SCRFIGHT, 0,
- NULL, vendetta2pebaRomInfo, vendetta2pebaRomName, NULL, NULL, VendettaInputInfo, NULL,
- VendettaInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 304, 224, 4, 3
-};
-
-
-// Vendetta (World, 2 Players ver. ?)
-
-static struct BurnRomInfo vendetta2punRomDesc[] = {
- /* program rom labeled as 1 */
- { "1.17c", 0x040000, 0xb4edde48, 1 | BRF_PRG | BRF_ESS }, // 0 Konami Custom Code
-
- { "081b02", 0x010000, 0x4c604d9b, 2 | BRF_PRG | BRF_ESS }, // 1 Z80 Code
-
- { "081a09", 0x080000, 0xb4c777a9, 3 | BRF_GRA }, // 2 K052109 Tiles
- { "081a08", 0x080000, 0x272ac8d9, 3 | BRF_GRA }, // 3
-
- { "081a04", 0x100000, 0x464b9aa4, 4 | BRF_GRA }, // 4 K053247 Tiles
- { "081a05", 0x100000, 0x4e173759, 4 | BRF_GRA }, // 5
- { "081a06", 0x100000, 0xe9fe6d80, 4 | BRF_GRA }, // 6
- { "081a07", 0x100000, 0x8a22b29a, 4 | BRF_GRA }, // 7
-
- { "081a03", 0x100000, 0x14b6baea, 5 | BRF_SND }, // 8 K053260 Samples
-
- { "vendetta.nv", 0x000080, 0xfbac4e30, BRF_OPT },
-};
-
-STD_ROM_PICK(vendetta2pun)
-STD_ROM_FN(vendetta2pun)
-
-struct BurnDriver BurnDrvVendetta2pun = {
- "vendetta2pun", "vendetta", NULL, NULL, "1991",
- "Vendetta (World, 2 Players ver. ?)\0", NULL, "Konami", "GX081",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_KONAMI, GBF_SCRFIGHT, 0,
- NULL, vendetta2punRomInfo, vendetta2punRomName, NULL, NULL, VendettaInputInfo, NULL,
- VendettaInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 304, 224, 4, 3
-};
-
-
-// Vendetta (Asia, 2 Players ver. U)
-
-static struct BurnRomInfo vendetta2puRomDesc[] = {
- { "081u01.17c", 0x040000, 0xb4d9ade5, 1 | BRF_PRG | BRF_ESS }, // 0 Konami Custom Code
-
- { "081b02", 0x010000, 0x4c604d9b, 2 | BRF_PRG | BRF_ESS }, // 1 Z80 Code
-
- { "081a09", 0x080000, 0xb4c777a9, 3 | BRF_GRA }, // 2 K052109 Tiles
- { "081a08", 0x080000, 0x272ac8d9, 3 | BRF_GRA }, // 3
-
- { "081a04", 0x100000, 0x464b9aa4, 4 | BRF_GRA }, // 4 K053247 Tiles
- { "081a05", 0x100000, 0x4e173759, 4 | BRF_GRA }, // 5
- { "081a06", 0x100000, 0xe9fe6d80, 4 | BRF_GRA }, // 6
- { "081a07", 0x100000, 0x8a22b29a, 4 | BRF_GRA }, // 7
-
- { "081a03", 0x100000, 0x14b6baea, 5 | BRF_SND }, // 8 K053260 Samples
-
- { "vendetta.nv", 0x000080, 0xfbac4e30, BRF_OPT },
-};
-
-STD_ROM_PICK(vendetta2pu)
-STD_ROM_FN(vendetta2pu)
-
-struct BurnDriver BurnDrvVendetta2pu = {
- "vendetta2pu", "vendetta", NULL, NULL, "1991",
- "Vendetta (Asia, 2 Players ver. U)\0", NULL, "Konami", "GX081",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_KONAMI, GBF_SCRFIGHT, 0,
- NULL, vendetta2puRomInfo, vendetta2puRomName, NULL, NULL, VendettaInputInfo, NULL,
- VendettaInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 304, 224, 4, 3
-};
-
-
-// Vendetta (Asia, 2 Players ver. D)
-
-static struct BurnRomInfo vendetta2pdRomDesc[] = {
- { "081d01.17c", 0x040000, 0x335da495, 1 | BRF_PRG | BRF_ESS }, // 0 Konami Custom Code
-
- { "081b02", 0x010000, 0x4c604d9b, 2 | BRF_PRG | BRF_ESS }, // 1 Z80 Code
-
- { "081a09", 0x080000, 0xb4c777a9, 3 | BRF_GRA }, // 2 K052109 Tiles
- { "081a08", 0x080000, 0x272ac8d9, 3 | BRF_GRA }, // 3
-
- { "081a04", 0x100000, 0x464b9aa4, 4 | BRF_GRA }, // 4 K053247 Tiles
- { "081a05", 0x100000, 0x4e173759, 4 | BRF_GRA }, // 5
- { "081a06", 0x100000, 0xe9fe6d80, 4 | BRF_GRA }, // 6
- { "081a07", 0x100000, 0x8a22b29a, 4 | BRF_GRA }, // 7
-
- { "081a03", 0x100000, 0x14b6baea, 5 | BRF_SND }, // 8 K053260 Samples
-
- { "vendetta.nv", 0x000080, 0xfbac4e30, BRF_OPT },
-};
-
-STD_ROM_PICK(vendetta2pd)
-STD_ROM_FN(vendetta2pd)
-
-struct BurnDriver BurnDrvVendetta2pd = {
- "vendetta2pd", "vendetta", NULL, NULL, "1991",
- "Vendetta (Asia, 2 Players ver. D)\0", NULL, "Konami", "GX081",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_KONAMI, GBF_SCRFIGHT, 0,
- NULL, vendetta2pdRomInfo, vendetta2pdRomName, NULL, NULL, VendettaInputInfo, NULL,
- VendettaInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 304, 224, 4, 3
-};
-
-
-// Crime Fighters 2 (Japan, 2 Players ver. P)
-
-static struct BurnRomInfo vendettajRomDesc[] = {
- { "081p01.17c", 0x040000, 0x5fe30242, 1 | BRF_PRG | BRF_ESS }, // 0 Konami Custom Code
-
- { "081b02", 0x010000, 0x4c604d9b, 2 | BRF_PRG | BRF_ESS }, // 1 Z80 Code
-
- { "081a09", 0x080000, 0xb4c777a9, 3 | BRF_GRA }, // 2 K052109 Tiles
- { "081a08", 0x080000, 0x272ac8d9, 3 | BRF_GRA }, // 3
-
- { "081a04", 0x100000, 0x464b9aa4, 4 | BRF_GRA }, // 4 K053247 Tiles
- { "081a05", 0x100000, 0x4e173759, 4 | BRF_GRA }, // 5
- { "081a06", 0x100000, 0xe9fe6d80, 4 | BRF_GRA }, // 6
- { "081a07", 0x100000, 0x8a22b29a, 4 | BRF_GRA }, // 7
-
- { "081a03", 0x100000, 0x14b6baea, 5 | BRF_SND }, // 8 K053260 Samples
-
- { "vendettaj.nv", 0x000080, 0x3550a54e, BRF_OPT },
-};
-
-STD_ROM_PICK(vendettaj)
-STD_ROM_FN(vendettaj)
-
-struct BurnDriver BurnDrvVendettaj = {
- "vendettaj", "vendetta", NULL, NULL, "1991",
- "Crime Fighters 2 (Japan, 2 Players ver. P)\0", NULL, "Konami", "GX081",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_KONAMI, GBF_SCRFIGHT, 0,
- NULL, vendettajRomInfo, vendettajRomName, NULL, NULL, VendettaInputInfo, NULL,
- VendettaInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 304, 224, 4, 3
-};
-
-
-// Escape Kids (Asia, 4 Players)
-
-static struct BurnRomInfo esckidsRomDesc[] = {
- { "17c.bin", 0x020000, 0x9dfba99c, 1 | BRF_PRG | BRF_ESS }, // 0 Konami Custom Code
-
- { "975f02", 0x010000, 0x994fb229, 2 | BRF_PRG | BRF_ESS }, // 1 Z80 Code
-
- { "975c09", 0x080000, 0xbc52210e, 3 | BRF_GRA }, // 2 K052109 Tiles
- { "975c08", 0x080000, 0xfcff9256, 3 | BRF_GRA }, // 3
-
- { "975c04", 0x100000, 0x15688a6f, 4 | BRF_GRA }, // 4 K053247 Tiles
- { "975c05", 0x100000, 0x1ff33bb7, 4 | BRF_GRA }, // 5
- { "975c06", 0x100000, 0x36d410f9, 4 | BRF_GRA }, // 6
- { "975c07", 0x100000, 0x97ec541e, 4 | BRF_GRA }, // 7
-
- { "975c03", 0x080000, 0xdc4a1707, 5 | BRF_SND }, // 8 K053260 Samples
-
- { "esckids.nv", 0x000080, 0xa8522e1f, BRF_OPT },
-};
-
-STD_ROM_PICK(esckids)
-STD_ROM_FN(esckids)
-
-static INT32 EsckidsInit()
-{
- return DrvInit(1);
-}
-
-struct BurnDriver BurnDrvEsckids = {
- "esckids", NULL, NULL, NULL, "1991",
- "Escape Kids (Asia, 4 Players)\0", NULL, "Konami", "GX975",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 4, HARDWARE_PREFIX_KONAMI, GBF_MISC, 0,
- NULL, esckidsRomInfo, esckidsRomName, NULL, NULL, EsckidsInputInfo, NULL,
- EsckidsInit, DrvExit, DrvFrame, DrvDraw, NULL, &DrvRecalc, 0x800,
- 288, 240, 4, 3
-};
-
-
-// Escape Kids (Japan, 2 Players)
-
-static struct BurnRomInfo esckidsjRomDesc[] = {
- { "975r01", 0x020000, 0x7b5c5572, 1 | BRF_PRG | BRF_ESS }, // 0 Konami Custom Code
-
- { "975f02", 0x010000, 0x994fb229, 2 | BRF_PRG | BRF_ESS }, // 1 Z80 Code
-
- { "975c09", 0x080000, 0xbc52210e, 3 | BRF_GRA }, // 2 K052109 Tiles
- { "975c08", 0x080000, 0xfcff9256, 3 | BRF_GRA }, // 3
-
- { "975c04", 0x100000, 0x15688a6f, 4 | BRF_GRA }, // 4 K053247 Tiles
- { "975c05", 0x100000, 0x1ff33bb7, 4 | BRF_GRA }, // 5
- { "975c06", 0x100000, 0x36d410f9, 4 | BRF_GRA }, // 6
- { "975c07", 0x100000, 0x97ec541e, 4 | BRF_GRA }, // 7
-
- { "975c03", 0x080000, 0xdc4a1707, 5 | BRF_SND }, // 8 K053260 Samples
-
- { "esckidsj.nv", 0x000080, 0x985e2a2d, BRF_OPT },
-};
-
-STD_ROM_PICK(esckidsj)
-STD_ROM_FN(esckidsj)
-
-struct BurnDriver BurnDrvEsckidsj = {
- "esckidsj", "esckids", NULL, NULL, "1991",
- "Escape Kids (Japan, 2 Players)\0", NULL, "Konami", "GX975",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_KONAMI, GBF_MISC, 0,
- NULL, esckidsjRomInfo, esckidsjRomName, NULL, NULL, EsckidsjInputInfo, NULL,
- EsckidsInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 288, 240, 4, 3
-};
diff --git a/jan/src/burn/drv/konami/d_xexex.cpp b/jan/src/burn/drv/konami/d_xexex.cpp
deleted file mode 100644
index 7d3593fb3..000000000
--- a/jan/src/burn/drv/konami/d_xexex.cpp
+++ /dev/null
@@ -1,995 +0,0 @@
-// FB Alpha Xexex driver module
-// Based on MAME driver by Olivier Galibert
-
-#include "tiles_generic.h"
-#include "m68000_intf.h"
-#include "z80_intf.h"
-#include "konamiic.h"
-#include "burn_ym2151.h"
-#include "k054539.h"
-#include "eeprom.h"
-
-static UINT8 *AllMem;
-static UINT8 *Drv68KROM;
-static UINT8 *DrvZ80ROM;
-static UINT8 *DrvGfxROM0;
-static UINT8 *DrvGfxROM1;
-static UINT8 *DrvGfxROM2;
-static UINT8 *DrvGfxROMExp0;
-static UINT8 *DrvGfxROMExp1;
-static UINT8 *DrvGfxROMExp2;
-static UINT8 *DrvSndROM;
-static UINT8 *DrvEeprom;
-static UINT8 *AllRam;
-static UINT8 *Drv68KRAM;
-static UINT8 *DrvZ80RAM;
-static UINT8 *DrvSprRAM;
-static UINT8 *DrvPalRAM;
-static UINT8 *RamEnd;
-static UINT8 *MemEnd;
-
-static UINT8 *soundlatch;
-static UINT8 *soundlatch2;
-static UINT8 *soundlatch3;
-
-static UINT32 *DrvPalette;
-static UINT8 DrvRecalc;
-
-static INT32 layerpri[4];
-static INT32 layer_colorbase[4];
-static INT32 sprite_colorbase;
-
-static UINT8 DrvJoy1[8];
-static UINT8 DrvJoy2[8];
-static UINT8 DrvJoy3[8];
-static UINT8 DrvJoy4[8];
-static UINT8 DrvReset;
-static UINT16 DrvInputs[4];
-static UINT8 DrvDips[2];
-
-static INT32 z80_bank;
-static INT32 sound_nmi_enable;
-static INT32 irq5_timer;
-static UINT16 control_data;
-static INT32 enable_alpha;
-
-static struct BurnInputInfo XexexInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy1 + 0, "p1 coin"},
- {"P1 Start", BIT_DIGITAL, DrvJoy2 + 7, "p1 start"},
- {"P1 Up", BIT_DIGITAL, DrvJoy2 + 2, "p1 up"},
- {"P1 Down", BIT_DIGITAL, DrvJoy2 + 3, "p1 down"},
- {"P1 Left", BIT_DIGITAL, DrvJoy2 + 0, "p1 left"},
- {"P1 Right", BIT_DIGITAL, DrvJoy2 + 1, "p1 right"},
- {"P1 Button 1", BIT_DIGITAL, DrvJoy2 + 4, "p1 fire 1"},
- {"P1 Button 2", BIT_DIGITAL, DrvJoy2 + 5, "p1 fire 2"},
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy1 + 1, "p2 coin"},
- {"P2 Start", BIT_DIGITAL, DrvJoy3 + 7, "p2 start"},
- {"P2 Up", BIT_DIGITAL, DrvJoy3 + 2, "p2 up"},
- {"P2 Down", BIT_DIGITAL, DrvJoy3 + 3, "p2 down"},
- {"P2 Left", BIT_DIGITAL, DrvJoy3 + 0, "p2 left"},
- {"P2 Right", BIT_DIGITAL, DrvJoy3 + 1, "p2 right"},
- {"P2 Button 1", BIT_DIGITAL, DrvJoy3 + 4, "p2 fire 1"},
- {"P2 Button 2", BIT_DIGITAL, DrvJoy3 + 5, "p2 fire 2"},
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset"},
- {"Service 1", BIT_DIGITAL, DrvJoy1 + 4, "service"},
- {"Service 2", BIT_DIGITAL, DrvJoy1 + 5, "service"},
- {"Service Mode", BIT_DIGITAL, DrvJoy4 + 3, "diagnostics"},
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip"},
-};
-
-STDINPUTINFO(Xexex)
-
-static struct BurnDIPInfo XexexDIPList[]=
-{
- {0x14, 0xff, 0xff, 0x00, NULL },
-
- {0 , 0xfe, 0 , 2, "PCM Volume Boost" },
- {0x14, 0x01, 0x08, 0x00, "Off" },
- {0x14, 0x01, 0x08, 0x08, "On" },
-};
-
-STDDIPINFO(Xexex)
-
-static void xexex_objdma()
-{
- UINT16 *dst = (UINT16*)K053247Ram;
- UINT16 *src = (UINT16*)DrvSprRAM;
- INT32 num_inactive = 256;
- INT32 counter = 256;
-
- do
- {
- if (*src & 0x8000)
- {
- dst[0] = src[0x0]; dst[1] = src[0x2];
- dst[2] = src[0x4]; dst[3] = src[0x6];
- dst[4] = src[0x8]; dst[5] = src[0xa];
- dst[6] = src[0xc]; dst[7] = src[0xe];
- dst += 8;
- num_inactive--;
- }
- src += 0x40;
- }
- while (--counter);
-
- if (num_inactive) do { *dst = 0; dst += 8; } while (--num_inactive);
-}
-
-static void update_de000()
-{
- K053246_set_OBJCHA_line((control_data & 0x100) >> 8);
- EEPROMWrite((control_data & 0x04), (control_data & 0x02), (control_data & 0x01));
- enable_alpha = ~control_data & 0x200;
-
-}
-
-static void __fastcall xexex_main_write_word(UINT32 address, UINT16 data)
-{
- if ((address & 0xffffc0) == 0x0c0000) {
- K056832WordWrite(address & 0x3e, data);
- return;
- }
-
- if ((address & 0xfffff8) == 0x0c2000) {
- K053246Write((address & 0x06) + 0, data >> 8);
- K053246Write((address & 0x06) + 1, data&0xff);
- return;
- }
-
- if ((address & 0xfffff0) == 0x0c8000) {
- K053250RegWrite(0, address, data);
- return;
- }
-
- if ((address & 0xffffe0) == 0x0ca000) {
- K054338WriteWord(address, data);
- return;
- }
-
- if ((address & 0xfffff8) == 0x0d8000) {
- return; // regsb
- }
-
- if ((address & 0xffc000) == 0x180000) {
- K056832RamWriteWord(address & 0x1fff, data);
- return;
- }
-
- switch (address)
- {
- case 0x0de000:
- control_data = data;
- update_de000();
- return;
- }
-}
-
-static void __fastcall xexex_main_write_byte(UINT32 address, UINT8 data)
-{
- if ((address & 0xffffc0) == 0x0c0000) {
- K056832ByteWrite(address & 0x3f, data);
- return;
- }
-
- if ((address & 0xfffff8) == 0x0c2000) {
- K053246Write((address & 0x07) ^ 0, data);
- return;
- }
-
- if ((address & 0xfffff0) == 0x0c8000) {
- K053250RegWrite(0, address, data);
- return;
- }
-
- if ((address & 0xffffe0) == 0x0ca000) {
- K054338WriteByte(address, data);
- return;
- }
-
- if ((address & 0xffffe1) == 0x0cc001) {
- K053251Write((address / 2) & 0xf, data);
- return;
- }
-
- if ((address & 0xffffe0) == 0x0d0000) {
- // k053252
- return;
- }
-
- if ((address & 0xfffff8) == 0x0d8000) {
- return; // regsb
- }
-
- if ((address & 0xffc000) == 0x180000) {
- K056832RamWriteByte(address & 0x1fff, data);
- return;
- }
-
- switch (address)
- {
- case 0x0d4000:
- case 0x0d4001:
- ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
- return;
-
- case 0x0d6001:
- case 0x0d6003:
- case 0x0d6005:
- case 0x0d6007:
- case 0x0d6009:
- return; // nop
-
- case 0x0d600c:
- case 0x0d600d:
- *soundlatch = data;
- return;
-
- case 0x0d600e:
- case 0x0d600f:
- *soundlatch2 = data;
- return;
-
- case 0x0de000:
- control_data = (control_data & 0x00ff) | (data << 8);
- update_de000();
- return;
-
- case 0x0de001:
- control_data = (control_data & 0xff00) | (data << 0);
- update_de000();
- return;
-
- case 0x170000:
- return; // watchdog
- }
-}
-
-static UINT16 __fastcall xexex_main_read_word(UINT32 address)
-{
- if ((address & 0xfffff0) == 0x0c8000) {
- return K053250RegRead(0, address);
- }
-
- if ((address & 0xffc000) == 0x180000) {
- return K056832RamReadWord(address & 0x1fff);
- }
-
- if ((address & 0xffe000) == 0x190000) {
- return K056832RomWordRead(address);
- }
-
- if ((address & 0xffe000) == 0x1a0000) {
- return K053250RomRead(0, address);
- }
-
- switch (address)
- {
- case 0x0c4000:
- return K053246Read(1) + (K053246Read(0) << 8);
-
- case 0x0da000:
- return DrvInputs[1];
-
- case 0x0da002:
- return DrvInputs[2];
-
- case 0x0dc000:
- return DrvInputs[0];
-
- case 0x0dc002:
- return (DrvInputs[3] & 0x8) | 2 | (EEPROMRead() ? 0x01 : 0);
-
- case 0x0de000:
- return control_data;
- }
-
- return 0;
-}
-
-static UINT8 __fastcall xexex_main_read_byte(UINT32 address)
-{
- if ((address & 0xfffff0) == 0x0c8000) {
- return K053250RegRead(0, address);
- }
-
- if ((address & 0xffc000) == 0x180000) {
- return K056832RamReadByte(address & 0x1fff);
- }
-
- if ((address & 0xffe000) == 0x190000) {
- return K056832RomWordRead(address) >> ((~address & 1) * 8);
- }
-
- if ((address & 0xffe000) == 0x1a0000) {
- return K053250RomRead(0, address) >> ((~address & 1) * 8);
- }
-
- switch (address)
- {
- case 0x0c4000:
- case 0x0c4001:
- return K053246Read((address & 1)); // ^ 1? ??
-
- case 0x0d6011:
- return 0; // nop
-
- case 0x0d6015:
- return *soundlatch3;
-
- case 0x0da000:
- return DrvInputs[1] >> 8;
-
- case 0x0da001:
- return DrvInputs[1];
-
- case 0x0da002:
- return DrvInputs[2] >> 8;
-
- case 0x0da003:
- return DrvInputs[2];
-
- case 0x0dc000:
- return DrvInputs[0] >> 8;
-
- case 0x0dc001:
- return DrvInputs[0];
-
- case 0x0dc002:
- return 0;
-
- case 0x0dc003:
- return (DrvInputs[3] & 0x8) | 2 | (EEPROMRead() ? 0x01 : 0);
- }
-
- return 0;
-}
-
-static void bankswitch(INT32 data)
-{
- z80_bank = data;
- ZetMapMemory(DrvZ80ROM + ((data & 0x07) * 0x4000), 0x8000, 0xbfff, MAP_ROM);
-}
-
-static void __fastcall xexex_sound_write(UINT16 address, UINT8 data)
-{
- switch (address)
- {
- case 0xec00:
- BurnYM2151SelectRegister(data);
- return;
-
- case 0xec01:
- BurnYM2151WriteRegister(data);
- return;
-
- case 0xf000:
- *soundlatch3 = data;
- return;
-
- case 0xf800:
- bankswitch(data);
- return;
- }
-
- if (address >= 0xe000 && address <= 0xe22f) {
- return K054539Write(0, address & 0x3ff, data);
- }
-}
-
-static UINT8 __fastcall xexex_sound_read(UINT16 address)
-{
- if (address >= 0xe000 && address <= 0xe22f) {
- return K054539Read(0, address & 0x3ff);
- }
-
- switch (address)
- {
- case 0xec00:
- case 0xec01:
- return BurnYM2151ReadStatus();
-
- case 0xf002:
- ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
- return *soundlatch;
-
- case 0xf003:
- ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
- return *soundlatch2;
- }
-
- return 0;
-}
-
-static void xexex_sprite_callback(INT32 */*code*/, INT32 *color, INT32 *priority)
-{
- INT32 pri = (*color & 0x3e0) >> 4;
-
- if (pri <= layerpri[3]) *priority = 0x0000;
- else if (pri > layerpri[3] && pri <= layerpri[2]) *priority = 0xff00;
- else if (pri > layerpri[2] && pri <= layerpri[1]) *priority = 0xfff0;
- else if (pri > layerpri[1] && pri <= layerpri[0]) *priority = 0xfffc;
- else *priority = 0xfffe;
-
- *color = sprite_colorbase | (*color & 0x001f);
-}
-
-static void xexex_tile_callback(INT32 layer, INT32 */*code*/, INT32 *color, INT32 */*flags*/)
-{
- *color = layer_colorbase[layer] | (*color >> 2 & 0x0f);
-}
-
-static const eeprom_interface xexex_eeprom_interface =
-{
- 7,
- 8,
- "011000",
- "011100",
- "0100100000000",
- "0100000000000",
- "0100110000000",
- 0,
- 0
-};
-
-static INT32 DrvDoReset()
-{
- memset (AllRam, 0, RamEnd - AllRam);
-
- SekOpen(0);
- SekReset();
- SekClose();
-
- ZetOpen(0);
- ZetReset();
- bankswitch(2);
- ZetClose();
-
- KonamiICReset();
-
- BurnYM2151Reset();
- K054539Reset(0);
-
- EEPROMReset();
-
- if (EEPROMAvailable() == 0) {
- EEPROMFill(DrvEeprom, 0, 128);
- }
-
- control_data = 0;
- irq5_timer = 0;
-
- for (INT32 i = 0; i < 4; i++)
- {
- layer_colorbase[i] = 0;
- layerpri[i] = 0;
- }
-
- sound_nmi_enable = 0;
- z80_bank = 0;
-
- return 0;
-}
-
-static INT32 MemIndex()
-{
- UINT8 *Next; Next = AllMem;
-
- Drv68KROM = Next; Next += 0x100000;
- DrvZ80ROM = Next; Next += 0x020000;
-
- DrvGfxROM0 = Next; Next += 0x200000;
- DrvGfxROMExp0 = Next; Next += 0x400000;
- DrvGfxROM1 = Next; Next += 0x400000;
- DrvGfxROMExp1 = Next; Next += 0x800000;
- DrvGfxROM2 = Next; Next += 0x080000;
- DrvGfxROMExp2 = Next; Next += 0x100000;
-
- DrvSndROM = Next; Next += 0x400000;
-
- DrvEeprom = Next; Next += 0x000080;
-
- konami_palette32 = (UINT32*)Next;
- DrvPalette = (UINT32*)Next; Next += 0x1000 * sizeof(UINT32);
-
- AllRam = Next;
-
- Drv68KRAM = Next; Next += 0x010000;
- DrvSprRAM = Next; Next += 0x008000;
- DrvPalRAM = Next; Next += 0x002000;
-
- DrvZ80RAM = Next; Next += 0x002000;
-
- soundlatch = Next; Next += 0x000001;
- soundlatch2 = Next; Next += 0x000001;
- soundlatch3 = Next; Next += 0x000001;
-
- RamEnd = Next;
- MemEnd = Next;
-
- return 0;
-}
-
-static void XexexApanCallback(double one, double two)
-{
- //bprintf(0, _T("apan %f, %f. "), one, two); - wip
-}
-
-static INT32 DrvInit()
-{
- BurnSetRefreshRate(54.25);
- GenericTilesInit();
-
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(Drv68KROM + 0x000001, 0, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x000000, 1, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x080001, 2, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x080000, 3, 2)) return 1;
-
- if (BurnLoadRom(DrvZ80ROM + 0x000000, 4, 1)) return 1;
-
- if (BurnLoadRomExt(DrvGfxROM0 + 0x000000, 5, 4, 2)) return 1;
- if (BurnLoadRomExt(DrvGfxROM0 + 0x000002, 6, 4, 2)) return 1;
-
- if (BurnLoadRomExt(DrvGfxROM1 + 0x000000, 7, 8, 2)) return 1;
- if (BurnLoadRomExt(DrvGfxROM1 + 0x000002, 8, 8, 2)) return 1;
- if (BurnLoadRomExt(DrvGfxROM1 + 0x000004, 9, 8, 2)) return 1;
- if (BurnLoadRomExt(DrvGfxROM1 + 0x000006, 10, 8, 2)) return 1;
-
- if (BurnLoadRom(DrvGfxROM2 + 0x000000, 11, 1)) return 1;
-
- if (BurnLoadRom(DrvSndROM + 0x000000, 12, 1)) return 1;
- if (BurnLoadRom(DrvSndROM + 0x200000, 13, 1)) return 1;
-
- if (BurnLoadRom(DrvEeprom + 0x000000, 14, 1)) return 1;
-
- K053247GfxDecode(DrvGfxROM0, DrvGfxROMExp0, 0x200000);
- K053247GfxDecode(DrvGfxROM1, DrvGfxROMExp1, 0x400000);
- }
-
- K054338Init();
-
- K053250Init(0, DrvGfxROM2, DrvGfxROMExp2, 0x80000);
- K053250SetOffsets(0, -45, -16);
-
- K056832Init(DrvGfxROM0, DrvGfxROMExp0, 0x200000, xexex_tile_callback);
- K056832SetGlobalOffsets(40, 0);
- K056832SetLayerOffsets(0, -2, 16);
- K056832SetLayerOffsets(1, 2, 16);
- K056832SetLayerOffsets(2, 4, 16);
- K056832SetLayerOffsets(3, 6, 16);
-
- K053247Init(DrvGfxROM1, DrvGfxROMExp1, 0x3fffff, xexex_sprite_callback, 1);
- K053247SetSpriteOffset(-88, -32);
-
- SekInit(0, 0x68000);
- SekOpen(0);
- SekMapMemory(Drv68KROM, 0x000000, 0x07ffff, MAP_ROM);
- SekMapMemory(Drv68KRAM, 0x080000, 0x08ffff, MAP_RAM);
- SekMapMemory(DrvSprRAM, 0x090000, 0x097fff, MAP_RAM);
- SekMapMemory(DrvSprRAM, 0x098000, 0x09ffff, MAP_RAM);
- SekMapMemory((UINT8*)K053250Ram, 0x0c6000, 0x0c7fff, MAP_RAM);
- SekMapMemory(Drv68KROM + 0x080000, 0x100000, 0x17ffff, MAP_ROM);
- SekMapMemory(DrvPalRAM, 0x1b0000, 0x1b1fff, MAP_RAM);
- SekSetWriteWordHandler(0, xexex_main_write_word);
- SekSetWriteByteHandler(0, xexex_main_write_byte);
- SekSetReadWordHandler(0, xexex_main_read_word);
- SekSetReadByteHandler(0, xexex_main_read_byte);
- SekClose();
-
- ZetInit(0);
- ZetOpen(0);
- ZetMapMemory(DrvZ80ROM, 0x0000, 0x7fff, MAP_ROM);
- ZetMapMemory(DrvZ80RAM, 0xc000, 0xdfff, MAP_RAM);
- ZetSetWriteHandler(xexex_sound_write);
- ZetSetReadHandler(xexex_sound_read);
- ZetClose();
-
- EEPROMInit(&xexex_eeprom_interface);
-
- BurnYM2151Init(4000000);
- BurnYM2151SetRoute(BURN_SND_YM2151_YM2151_ROUTE_1, 0.50, BURN_SND_ROUTE_BOTH);
- BurnYM2151SetRoute(BURN_SND_YM2151_YM2151_ROUTE_2, 0.50, BURN_SND_ROUTE_BOTH);
-
- K054539Init(0, 48000, DrvSndROM, 0x300000);
- K054539SetRoute(0, BURN_SND_K054539_ROUTE_1, (DrvDips[0] & 0x08) ? 1.40 : 1.10, BURN_SND_ROUTE_BOTH);
- K054539SetRoute(0, BURN_SND_K054539_ROUTE_2, (DrvDips[0] & 0x08) ? 1.40 : 1.10, BURN_SND_ROUTE_BOTH);
- K054539SetApanCallback(0, XexexApanCallback);
-
- DrvDoReset();
-
- return 0;
-}
-
-static INT32 DrvExit()
-{
- GenericTilesExit();
-
- KonamiICExit();
-
- SekExit();
- ZetExit();
-
- EEPROMExit();
-
- BurnYM2151Exit();
- K054539Exit();
-
- BurnFree (AllMem);
-
- return 0;
-}
-
-static void DrvPaletteRecalc()
-{
- UINT16 *pal = (UINT16*)DrvPalRAM;
-
- for (INT32 i = 0; i < 0x2000/2; i+=2) {
- DrvPalette[i/2] = ((pal[i+0] & 0xff) << 16) + pal[i+1];
- }
-}
-
-static INT32 DrvDraw()
-{
- DrvPaletteRecalc();
-
- INT32 layer[4], bg_colorbase, plane, alpha;
-
- sprite_colorbase = K053251GetPaletteIndex(0);
-
- bg_colorbase = K053251GetPaletteIndex(1);
-
- layer_colorbase[0] = 0x70;
-
- for (plane = 1; plane < 4; plane++)
- {
- layer_colorbase[plane] = K053251GetPaletteIndex(plane+1);
- }
-
- layer[0] = 1;
- layerpri[0] = K053251GetPriority(2);
- layer[1] = 2;
- layerpri[1] = K053251GetPriority(3);
- layer[2] = 3;
- layerpri[2] = K053251GetPriority(4);
- layer[3] = -1;
- layerpri[3] = K053251GetPriority(1);
-
- konami_sortlayers4(layer, layerpri);
-
- KonamiClearBitmaps(0);
-
- for (plane = 0; plane < 4; plane++)
- {
- if (layer[plane] < 0)
- {
- if (nSpriteEnable & 2) K053250Draw(0, bg_colorbase, 0, 1 << plane);
- }
- else if (!enable_alpha || layer[plane] != 1)
- {
- if (nBurnLayer & (1 << layer[plane])) K056832Draw(layer[plane], 0, 1 << plane);
- }
- }
-
- if (nSpriteEnable & 1) K053247SpritesRender();
-
- if (enable_alpha)
- {
- alpha = K054338_set_alpha_level(1);
-
- // this kludge fixes: flashy transitions in intro, cutscene after stage 3
- // is missing several effects, continue screen is missing "zooming!" numbers.
- if (alpha < 0x10)
- alpha = 0x10;
-
- if (alpha > 0)
- {
- if (nBurnLayer & 8) K056832Draw(1, K056832_SET_ALPHA(255-alpha), 0);
- }
- }
-
- if (nBurnLayer & 8) K056832Draw(0, 0, 0);
-
- KonamiBlendCopy(DrvPalette);
-
- return 0;
-}
-
-static INT32 DrvFrame()
-{
- if (DrvReset) {
- DrvDoReset();
- }
-
- {
- memset (DrvInputs, 0xff, 3 * sizeof(INT16));
- for (INT32 i = 0; i < 8; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- DrvInputs[2] ^= (DrvJoy3[i] & 1) << i;
- }
-
- DrvInputs[3] = (DrvJoy4[3]) ? 0x00 : 0x08; // Service Mode
- }
-
- INT32 nInterleave = 120;
- INT32 nSoundBufferPos = 0;
- INT32 nCyclesTotal[2] = { (16000000 * 100) / 5425, (8000000 * 100) / 5425 };
- INT32 nCyclesDone[2] = { 0, 0 };
-
- SekOpen(0);
- ZetOpen(0);
-
- for (INT32 i = 0; i < nInterleave; i++) {
- INT32 nNext, nCyclesSegment;
-
- nNext = (i + 1) * nCyclesTotal[0] / nInterleave;
- nCyclesSegment = nNext - nCyclesDone[0];
- nCyclesDone[0] += SekRun(nCyclesSegment);
-
- if (i == 0 && control_data & 0x20) {
- SekSetIRQLine(6, CPU_IRQSTATUS_AUTO);
- }
-
- if (i != 0 && i != ((nInterleave/2)-1)) {
- if (irq5_timer > 0) {
- irq5_timer--;
- if (irq5_timer == 0 && control_data & 0x40) {
- SekSetIRQLine(5, CPU_IRQSTATUS_AUTO);
- }
- }
- }
-
- if (i == ((nInterleave/2)-1)) {
- if (K053246_is_IRQ_enabled()) {
- xexex_objdma();
- irq5_timer = 5; // lots of testing led to this number.
- }
-
- if (control_data & 0x0800)
- SekSetIRQLine(4, CPU_IRQSTATUS_AUTO);
- }
-
- nNext = (i + 1) * nCyclesTotal[1] / nInterleave;
- nCyclesSegment = nNext - nCyclesDone[1];
- nCyclesDone[1] += ZetRun(nCyclesSegment);
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen / nInterleave;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- BurnYM2151Render(pSoundBuf, nSegmentLength);
- nSoundBufferPos += nSegmentLength;
- }
- }
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- if (nSegmentLength) {
- BurnYM2151Render(pSoundBuf, nSegmentLength);
- }
- K054539Update(0, pBurnSoundOut, nBurnSoundLen);
- }
-
- ZetClose();
- SekClose();
-
- if (pBurnDraw) {
- DrvDraw();
- }
-
- return 0;
-}
-
-static INT32 DrvScan(INT32 nAction, INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin) {
- *pnMin = 0x029732;
- }
-
- if (nAction & ACB_VOLATILE) {
- memset(&ba, 0, sizeof(ba));
-
- ba.Data = AllRam;
- ba.nLen = RamEnd - AllRam;
- ba.szName = "All Ram";
- BurnAcb(&ba);
-
- SekScan(nAction);
- ZetScan(nAction);
-
- BurnYM2151Scan(nAction);
- K054539Scan(nAction);
-
- KonamiICScan(nAction);
-
- SCAN_VAR(z80_bank);
- SCAN_VAR(sound_nmi_enable);
-
- SCAN_VAR(irq5_timer);
-
- SCAN_VAR(control_data);
- SCAN_VAR(enable_alpha);
- }
-
- if (nAction & ACB_WRITE) {
- ZetOpen(0);
- bankswitch(z80_bank);
- ZetClose();
- }
-
- EEPROMScan(nAction, pnMin);
-
- return 0;
-}
-
-
-
-// Xexex (ver EAA)
-
-static struct BurnRomInfo xexexRomDesc[] = {
- { "067eaa01.16d", 0x040000, 0x3ebcb066, 1 | BRF_PRG | BRF_ESS }, // 0 68K Code
- { "067eaa02.16f", 0x040000, 0x36ea7a48, 1 | BRF_PRG | BRF_ESS }, // 1
- { "067b03.13d", 0x040000, 0x97833086, 1 | BRF_PRG | BRF_ESS }, // 2
- { "067b04.13f", 0x040000, 0x26ec5dc8, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "067eaa05.4e", 0x020000, 0x0e33d6ec, 2 | BRF_PRG | BRF_ESS }, // 4 Z80 Code
-
- { "067b14.1n", 0x100000, 0x02a44bfa, 3 | BRF_GRA }, // 5 K056832 Characters
- { "067b13.2n", 0x100000, 0x633c8eb5, 3 | BRF_GRA }, // 6
-
- { "067b12.17n", 0x100000, 0x08d611b0, 4 | BRF_GRA }, // 7 K056832 Sprites
- { "067b11.19n", 0x100000, 0xa26f7507, 4 | BRF_GRA }, // 8
- { "067b10.20n", 0x100000, 0xee31db8d, 4 | BRF_GRA }, // 9
- { "067b09.22n", 0x100000, 0x88f072ef, 4 | BRF_GRA }, // 10
-
- { "067b08.22f", 0x080000, 0xca816b7b, 5 | BRF_GRA }, // 11 K053250 Tiles
-
- { "067b06.3e", 0x200000, 0x3b12fce4, 6 | BRF_SND }, // 12 K054539 Samples
- { "067b07.1e", 0x100000, 0xec87fe1b, 6 | BRF_SND }, // 13
-
- { "er5911.19b", 0x000080, 0x155624cc, 7 | BRF_PRG | BRF_ESS }, // 14 eeprom data
-};
-
-STD_ROM_PICK(xexex)
-STD_ROM_FN(xexex)
-
-struct BurnDriver BurnDrvXexex = {
- "xexex", NULL, NULL, NULL, "1991",
- "Xexex (ver EAA)\0", NULL, "Konami", "GX067",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 2, HARDWARE_PREFIX_KONAMI, GBF_HORSHOOT, 0,
- NULL, xexexRomInfo, xexexRomName, NULL, NULL, XexexInputInfo, XexexDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 384, 256, 4, 3
-};
-
-
-// Orius (ver UAA)
-
-static struct BurnRomInfo oriusRomDesc[] = {
- { "067uaa01.16d", 0x040000, 0xf1263d3e, 1 | BRF_PRG | BRF_ESS }, // 0 68K Code
- { "067uaa02.16f", 0x040000, 0x77709f64, 1 | BRF_PRG | BRF_ESS }, // 1
- { "067b03.13d", 0x040000, 0x97833086, 1 | BRF_PRG | BRF_ESS }, // 2
- { "067b04.13f", 0x040000, 0x26ec5dc8, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "067uaa05.4e", 0x020000, 0x0e33d6ec, 2 | BRF_PRG | BRF_ESS }, // 4 Z80 Code
-
- { "067b14.1n", 0x100000, 0x02a44bfa, 3 | BRF_GRA }, // 5 K056832 Characters
- { "067b13.2n", 0x100000, 0x633c8eb5, 3 | BRF_GRA }, // 6
-
- { "067b12.17n", 0x100000, 0x08d611b0, 4 | BRF_GRA }, // 7 K056832 Sprites
- { "067b11.19n", 0x100000, 0xa26f7507, 4 | BRF_GRA }, // 8
- { "067b10.20n", 0x100000, 0xee31db8d, 4 | BRF_GRA }, // 9
- { "067b09.22n", 0x100000, 0x88f072ef, 4 | BRF_GRA }, // 10
-
- { "067b08.22f", 0x080000, 0xca816b7b, 5 | BRF_GRA }, // 11 K053250 Tiles
-
- { "067b06.3e", 0x200000, 0x3b12fce4, 6 | BRF_SND }, // 12 K054539 Samples
- { "067b07.1e", 0x100000, 0xec87fe1b, 6 | BRF_SND }, // 13
-
- { "er5911.19b", 0x000080, 0x547ee4e4, 7 | BRF_PRG | BRF_ESS }, // 14 eeprom data
-};
-
-STD_ROM_PICK(orius)
-STD_ROM_FN(orius)
-
-struct BurnDriver BurnDrvOrius = {
- "orius", "xexex", NULL, NULL, "1991",
- "Orius (ver UAA)\0", NULL, "Konami", "GX067",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_KONAMI, GBF_HORSHOOT, 0,
- NULL, oriusRomInfo, oriusRomName, NULL, NULL, XexexInputInfo, XexexDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 384, 256, 4, 3
-};
-
-
-// Xexex (ver AAA)
-
-static struct BurnRomInfo xexexaRomDesc[] = {
- { "067aaa01.16d", 0x040000, 0xcf557144, 1 | BRF_PRG | BRF_ESS }, // 0 68K Code
- { "067aaa02.16f", 0x040000, 0xb7b98d52, 1 | BRF_PRG | BRF_ESS }, // 1
- { "067b03.13d", 0x040000, 0x97833086, 1 | BRF_PRG | BRF_ESS }, // 2
- { "067b04.13f", 0x040000, 0x26ec5dc8, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "067eaa05.4e", 0x020000, 0x0e33d6ec, 2 | BRF_PRG | BRF_ESS }, // 4 Z80 Code
-
- { "067b14.1n", 0x100000, 0x02a44bfa, 3 | BRF_GRA }, // 5 K056832 Characters
- { "067b13.2n", 0x100000, 0x633c8eb5, 3 | BRF_GRA }, // 6
-
- { "067b12.17n", 0x100000, 0x08d611b0, 4 | BRF_GRA }, // 7 K056832 Sprites
- { "067b11.19n", 0x100000, 0xa26f7507, 4 | BRF_GRA }, // 8
- { "067b10.20n", 0x100000, 0xee31db8d, 4 | BRF_GRA }, // 9
- { "067b09.22n", 0x100000, 0x88f072ef, 4 | BRF_GRA }, // 10
-
- { "067b08.22f", 0x080000, 0xca816b7b, 5 | BRF_GRA }, // 11 K053250 Tiles
-
- { "067b06.3e", 0x200000, 0x3b12fce4, 6 | BRF_SND }, // 12 K054539 Samples
- { "067b07.1e", 0x100000, 0xec87fe1b, 6 | BRF_SND }, // 13
-
- { "er5911.19b", 0x000080, 0x051c14c6, 7 | BRF_PRG | BRF_ESS }, // 14 eeprom data
-};
-
-STD_ROM_PICK(xexexa)
-STD_ROM_FN(xexexa)
-
-struct BurnDriver BurnDrvXexexa = {
- "xexexa", "xexex", NULL, NULL, "1991",
- "Xexex (ver AAA)\0", NULL, "Konami", "GX067",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_KONAMI, GBF_HORSHOOT, 0,
- NULL, xexexaRomInfo, xexexaRomName, NULL, NULL, XexexInputInfo, XexexDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 384, 256, 4, 3
-};
-
-
-// Xexex (ver JAA)
-
-static struct BurnRomInfo xexexjRomDesc[] = {
- { "067jaa01.16d", 0x040000, 0x06e99784, 1 | BRF_PRG | BRF_ESS }, // 0 68K Code
- { "067jaa02.16f", 0x040000, 0x30ae5bc4, 1 | BRF_PRG | BRF_ESS }, // 1
- { "067b03.13d", 0x040000, 0x97833086, 1 | BRF_PRG | BRF_ESS }, // 2
- { "067b04.13f", 0x040000, 0x26ec5dc8, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "067jaa05.4e", 0x020000, 0x2f4dd0a8, 2 | BRF_PRG | BRF_ESS }, // 4 Z80 Code
-
- { "067b14.1n", 0x100000, 0x02a44bfa, 3 | BRF_GRA }, // 5 K056832 Characters
- { "067b13.2n", 0x100000, 0x633c8eb5, 3 | BRF_GRA }, // 6
-
- { "067b12.17n", 0x100000, 0x08d611b0, 4 | BRF_GRA }, // 7 K056832 Sprites
- { "067b11.19n", 0x100000, 0xa26f7507, 4 | BRF_GRA }, // 8
- { "067b10.20n", 0x100000, 0xee31db8d, 4 | BRF_GRA }, // 9
- { "067b09.22n", 0x100000, 0x88f072ef, 4 | BRF_GRA }, // 10
-
- { "067b08.22f", 0x080000, 0xca816b7b, 5 | BRF_GRA }, // 11 K053250 Tiles
-
- { "067b06.3e", 0x200000, 0x3b12fce4, 6 | BRF_SND }, // 12 K054539 Samples
- { "067b07.1e", 0x100000, 0xec87fe1b, 6 | BRF_SND }, // 13
-
- { "er5911.19b", 0x000080, 0x79a79c7b, 7 | BRF_PRG | BRF_ESS }, // 14 eeprom data
-};
-
-STD_ROM_PICK(xexexj)
-STD_ROM_FN(xexexj)
-
-struct BurnDriver BurnDrvXexexj = {
- "xexexj", "xexex", NULL, NULL, "1991",
- "Xexex (ver JAA)\0", NULL, "Konami", "GX067",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_KONAMI, GBF_HORSHOOT, 0,
- NULL, xexexjRomInfo, xexexjRomName, NULL, NULL, XexexInputInfo, XexexDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 384, 256, 4, 3
-};
diff --git a/jan/src/burn/drv/konami/d_xmen.cpp b/jan/src/burn/drv/konami/d_xmen.cpp
deleted file mode 100644
index 27153bce9..000000000
--- a/jan/src/burn/drv/konami/d_xmen.cpp
+++ /dev/null
@@ -1,1077 +0,0 @@
-// FB Alpha X-Men driver module
-// Based on MAME driver by Nicola Salmoria
-
-#include "tiles_generic.h"
-#include "m68000_intf.h"
-#include "z80_intf.h"
-#include "konamiic.h"
-#include "burn_ym2151.h"
-#include "k054539.h"
-#include "eeprom.h"
-
-static UINT8 *AllMem;
-static UINT8 *MemEnd;
-static UINT8 *AllRam;
-static UINT8 *RamEnd;
-static UINT8 *Drv68KROM;
-static UINT8 *DrvZ80ROM;
-static UINT8 *DrvGfxROM0;
-static UINT8 *DrvGfxROMExp0;
-static UINT8 *DrvGfxROM1;
-static UINT8 *DrvGfxROMExp1;
-static UINT8 *DrvSndROM;
-static UINT8 *Drv68KRAM;
-static UINT8 *DrvPalRAM;
-static UINT8 *DrvZ80RAM;
-
-static UINT32 *DrvPalette;
-static UINT8 DrvRecalc;
-
-static UINT8 *soundlatch;
-static UINT8 *soundlatch2;
-static UINT8 *nDrvZ80Bank;
-
-static INT32 interrupt_enable;
-static INT32 init_eeprom_count;
-
-static INT32 sprite_colorbase;
-static INT32 bg_colorbase;
-static INT32 layerpri[3];
-static INT32 layer_colorbase[3];
-
-static UINT8 DrvJoy1[16];
-static UINT8 DrvJoy2[16];
-static UINT8 DrvJoy3[16];
-static UINT8 DrvReset;
-static UINT16 DrvInputs[3];
-
-static struct BurnInputInfo XmenInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy2 + 7, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy3 + 8, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy2 + 0, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy2 + 1, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy2 + 2, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy2 + 3, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy2 + 4, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy2 + 5, "p1 fire 2" },
- {"P1 Button 3", BIT_DIGITAL, DrvJoy2 + 6, "p1 fire 3" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy1 + 7, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy3 + 9, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvJoy1 + 0, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy1 + 1, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy1 + 2, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy1 + 3, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy1 + 4, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy1 + 5, "p2 fire 2" },
- {"P2 Button 3", BIT_DIGITAL, DrvJoy1 + 6, "p2 fire 3" },
-
- {"P3 Coin", BIT_DIGITAL, DrvJoy2 + 15, "p3 coin" },
- {"P3 Start", BIT_DIGITAL, DrvJoy3 + 10, "p3 start" },
- {"P3 Up", BIT_DIGITAL, DrvJoy2 + 8, "p3 up" },
- {"P3 Down", BIT_DIGITAL, DrvJoy2 + 9, "p3 down" },
- {"P3 Left", BIT_DIGITAL, DrvJoy2 + 10, "p3 left" },
- {"P3 Right", BIT_DIGITAL, DrvJoy2 + 11, "p3 right" },
- {"P3 Button 1", BIT_DIGITAL, DrvJoy2 + 12, "p3 fire 1" },
- {"P3 Button 2", BIT_DIGITAL, DrvJoy2 + 13, "p3 fire 2" },
- {"P3 Button 3", BIT_DIGITAL, DrvJoy2 + 14, "p3 fire 3" },
-
- {"P4 Coin", BIT_DIGITAL, DrvJoy1 + 15, "p4 coin" },
- {"P4 Start", BIT_DIGITAL, DrvJoy3 + 11, "p4 start" },
- {"P4 Up", BIT_DIGITAL, DrvJoy1 + 8, "p4 up" },
- {"P4 Down", BIT_DIGITAL, DrvJoy1 + 9, "p4 down" },
- {"P4 Left", BIT_DIGITAL, DrvJoy1 + 10, "p4 left" },
- {"P4 Right", BIT_DIGITAL, DrvJoy1 + 11, "p4 right" },
- {"P4 Button 1", BIT_DIGITAL, DrvJoy1 + 12, "p4 fire 1" },
- {"P4 Button 2", BIT_DIGITAL, DrvJoy1 + 13, "p4 fire 2" },
- {"P4 Button 3", BIT_DIGITAL, DrvJoy1 + 14, "p4 fire 3" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Diagnostics", BIT_DIGITAL, DrvJoy3 + 14, "diag" },
-};
-
-STDINPUTINFO(Xmen)
-
-static struct BurnInputInfo Xmen2pInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy2 + 7, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy3 + 8, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy2 + 0, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy2 + 1, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy2 + 2, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy2 + 3, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy2 + 4, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy2 + 5, "p1 fire 2" },
- {"P1 Button 3", BIT_DIGITAL, DrvJoy2 + 6, "p1 fire 3" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy1 + 7, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy3 + 9, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvJoy1 + 0, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy1 + 1, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy1 + 2, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy1 + 3, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy1 + 4, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy1 + 5, "p2 fire 2" },
- {"P2 Button 3", BIT_DIGITAL, DrvJoy1 + 6, "p2 fire 3" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Diagnostics", BIT_DIGITAL, DrvJoy3 + 14, "diag" },
- {"Service 1", BIT_DIGITAL, DrvJoy3 + 0, "service" },
- {"Service 2", BIT_DIGITAL, DrvJoy3 + 1, "service2" },
-};
-
-STDINPUTINFO(Xmen2p)
-
-void __fastcall xmen_main_write_byte(UINT32 address, UINT8 data)
-{
- switch (address)
- {
- case 0x108000:
- K052109RMRDLine = data & 0x02;
- K053246_set_OBJCHA_line(data & 0x01);
- return;
-
- case 0x108001:
- EEPROMWrite(data & 0x08, data & 0x10, data & 0x04);
- return;
-
- case 0x10804d:
- *soundlatch = data;
- return;
-
- case 0x10804e:
- case 0x10804f:
- ZetSetIRQLine(0, CPU_IRQSTATUS_ACK);
- return;
-
- case 0x10a001:
- // watchdog
- return;
-
- case 0x18fa01:
- interrupt_enable = data & 0x04;
- return;
- }
-
- if (address >= 0x18c000 && address <= 0x197fff) {
- if (address & 1) K052109Write((address - 0x18c000) >> 1, data);
- return;
- }
-
- if ((address & 0xfff000) == 0x100000) {
- K053247Write((address & 0xfff) ^ 1, data);
- return;
- }
-
- if ((address & 0xfffff8) == 0x108020) {
- K053246Write((address & 0x007)^1, data);
- return;
- }
-
- if ((address & 0xffffe0) == 0x108060) {
- if (address & 1) K053251Write((address >> 1) & 0x0f, data);
- return;
- }
-}
-
-void __fastcall xmen_main_write_word(UINT32 address, UINT16 data)
-{
- if ((address & 0xfff000) == 0x100000) {
- K053247Write(address & 0xffe, data | 0x10000);
- return;
- }
-
- if ((address & 0xfffff8) == 0x108020) {
- K053246Write((address & 0x006), 0x10000|data);
- return;
- }
-}
-
-UINT8 __fastcall xmen_main_read_byte(UINT32 address)
-{
- switch (address)
- {
- case 0x108054:
- case 0x108055:
- return *soundlatch2;
-
- case 0x10a000:
- case 0x10a001:
- return DrvInputs[0] >> ((~address & 1) << 3);
-
- case 0x10a002:
- case 0x10a003:
- return DrvInputs[1] >> ((~address & 1) << 3);
-
- case 0x10a004:
- if (init_eeprom_count > 0) {
- init_eeprom_count--;
- return 0xbf;
- }
- return DrvInputs[2] >> 8;
-
- case 0x10a005: // eeprom_r
- init_eeprom_count--;
- return (DrvInputs[2] & 0xbf) | (EEPROMRead() << 6);
-
- case 0x10a00c:
- case 0x10a00d:
- return K053246Read(~address & 1);
- }
-
- if ((address & 0xfff000) == 0x100000) {
- return K053247Read((address & 0xfff)^1);
- }
-
- if (address >= 0x18c000 && address <= 0x197fff) {
- return K052109Read((address - 0x18c000) >> 1);
- }
-
- return 0;
-}
-
-UINT16 __fastcall xmen_main_read_word(UINT32 /*address*/)
-{
- return 0;
-}
-
-static void bankswitch(INT32 bank)
-{
- nDrvZ80Bank[0] = bank & 7;
-
- ZetMapArea(0x8000, 0xbfff, 0, DrvZ80ROM + nDrvZ80Bank[0] * 0x4000);
- ZetMapArea(0x8000, 0xbfff, 2, DrvZ80ROM + nDrvZ80Bank[0] * 0x4000);
-}
-
-void __fastcall xmen_sound_write(UINT16 address, UINT8 data)
-{
- switch (address)
- {
- case 0xe800:
- case 0xec00:
- BurnYM2151SelectRegister(data);
- return;
-
- case 0xe801:
- case 0xec01:
- BurnYM2151WriteRegister(data);
- return;
-
- case 0xf000:
- *soundlatch2 = data;
- return;
-
- case 0xf800:
- bankswitch(data);
- return;
- }
-
- if (address >= 0xe000 && address <= 0xe22f) {
- return K054539Write(0, address & 0x3ff, data);
- }
-}
-
-UINT8 __fastcall xmen_sound_read(UINT16 address)
-{
- switch (address)
- {
- case 0xe800:
- case 0xe801:
- case 0xec00:
- case 0xec01:
- return BurnYM2151ReadStatus();
-
- case 0xf002:
- ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
- return *soundlatch;
- }
-
- if (address >= 0xe000 && address <= 0xe22f) {
- return K054539Read(0, address & 0x3ff);
- }
-
- return 0;
-}
-
-static void K052109Callback(INT32 layer, INT32 , INT32 *, INT32 *color, INT32 *, INT32 *)
-{
- if (layer == 0)
- *color = layer_colorbase[layer] + ((*color & 0xf0) >> 4);
- else
- *color = layer_colorbase[layer] + ((*color & 0x7c) >> 2);
-}
-
-static void XmenK053247Callback(INT32 *code, INT32 *color, INT32 *priority_mask)
-{
- INT32 pri = (*color & 0x00e0) >> 4;
- if (pri <= layerpri[2]) *priority_mask = 0x00;
- else if (pri > layerpri[2] && pri <= layerpri[1]) *priority_mask = 0xf0;
- else if (pri > layerpri[1] && pri <= layerpri[0]) *priority_mask = 0xfc;
- else *priority_mask = 0xfe;
-
- *color = (sprite_colorbase + (*color & 0x001f)) & 0x7f;
- *code &= 0x7fff;
-}
-
-static INT32 DrvDoReset()
-{
- DrvReset = 0;
-
- memset (AllRam, 0, RamEnd - AllRam);
-
- SekOpen(0);
- SekReset();
- SekClose();
-
- ZetOpen(0);
- ZetReset();
- ZetClose();
-
- BurnYM2151Reset();
- K054539Reset(0);
-
- KonamiICReset();
-
- EEPROMReset();
-
- if (EEPROMAvailable()) {
- init_eeprom_count = 0;
- } else {
- init_eeprom_count = 10;
- }
-
- interrupt_enable = 0;
-
- return 0;
-}
-
-static INT32 MemIndex()
-{
- UINT8 *Next; Next = AllMem;
-
- Drv68KROM = Next; Next += 0x100000;
- DrvZ80ROM = Next; Next += 0x020000;
-
- DrvGfxROM0 = Next; Next += 0x200000;
- DrvGfxROMExp0 = Next; Next += 0x400000;
- DrvGfxROM1 = Next; Next += 0x400000;
- DrvGfxROMExp1 = Next; Next += 0x800000;
-
- DrvSndROM = Next; Next += 0x200000;
-
- konami_palette32 = (UINT32*)Next;
- DrvPalette = (UINT32*)Next; Next += 0x800 * sizeof(UINT32);
-
- AllRam = Next;
-
- DrvPalRAM = Next; Next += 0x001000;
- Drv68KRAM = Next; Next += 0x005000;
-
- DrvZ80RAM = Next; Next += 0x002000;
-
- soundlatch = Next; Next += 0x000001;
- soundlatch2 = Next; Next += 0x000001;
-
- nDrvZ80Bank = Next; Next += 0x000001;
-
- RamEnd = Next;
-
- MemEnd = Next;
-
- return 0;
-}
-
-static const eeprom_interface xmen_eeprom_intf =
-{
- 7, // address bits
- 8, // data bits
- "011000", // read command
- "011100", // write command
- 0, // erase command
- "0100000000000", // lock command
- "0100110000000", // unlock command
- 0,
- 0
-};
-
-static INT32 DrvInit()
-{
- GenericTilesInit();
-
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(Drv68KROM + 0x000001, 0, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x000000, 1, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x080001, 2, 2)) return 1;
- if (BurnLoadRom(Drv68KROM + 0x080000, 3, 2)) return 1;
-
- if (BurnLoadRom(DrvZ80ROM + 0x000000, 4, 1)) return 1;
-
- if (BurnLoadRomExt(DrvGfxROM0 + 0x000000, 5, 4, 2)) return 1;
- if (BurnLoadRomExt(DrvGfxROM0 + 0x000002, 6, 4, 2)) return 1;
-
- if (BurnLoadRomExt(DrvGfxROM1 + 0x000000, 7, 8, 2)) return 1;
- if (BurnLoadRomExt(DrvGfxROM1 + 0x000002, 8, 8, 2)) return 1;
- if (BurnLoadRomExt(DrvGfxROM1 + 0x000004, 9, 8, 2)) return 1;
- if (BurnLoadRomExt(DrvGfxROM1 + 0x000006, 10, 8, 2)) return 1;
-
- if (BurnLoadRom(DrvSndROM + 0x000000, 11, 1)) return 1;
-
- K052109GfxDecode(DrvGfxROM0, DrvGfxROMExp0, 0x200000);
- K053247GfxDecode(DrvGfxROM1, DrvGfxROMExp1, 0x400000);
- }
-
- SekInit(0, 0x68000);
- SekOpen(0);
- SekMapMemory(Drv68KROM, 0x000000, 0x0fffff, MAP_ROM);
- SekMapMemory(Drv68KRAM + 0x00000, 0x101000, 0x101fff, MAP_RAM);
- SekMapMemory(DrvPalRAM, 0x104000, 0x104fff, MAP_RAM);
- SekMapMemory(Drv68KRAM + 0x01000, 0x110000, 0x113fff, MAP_RAM);
- SekSetWriteByteHandler(0, xmen_main_write_byte);
- SekSetWriteWordHandler(0, xmen_main_write_word);
- SekSetReadByteHandler(0, xmen_main_read_byte);
- SekSetReadWordHandler(0, xmen_main_read_word);
- SekClose();
-
- ZetInit(0);
- ZetOpen(0);
- ZetMapArea(0x0000, 0x7fff, 0, DrvZ80ROM);
- ZetMapArea(0x0000, 0x7fff, 2, DrvZ80ROM);
- ZetMapArea(0x8000, 0xbfff, 0, DrvZ80ROM + 0x8000);
- ZetMapArea(0x8000, 0xbfff, 2, DrvZ80ROM + 0x8000);
- ZetMapArea(0xc000, 0xdfff, 0, DrvZ80RAM);
- ZetMapArea(0xc000, 0xdfff, 1, DrvZ80RAM);
- ZetMapArea(0xc000, 0xdfff, 2, DrvZ80RAM);
- ZetSetWriteHandler(xmen_sound_write);
- ZetSetReadHandler(xmen_sound_read);
- ZetClose();
-
- EEPROMInit(&xmen_eeprom_intf);
-
- K052109Init(DrvGfxROM0, DrvGfxROMExp0, 0x1fffff);
- K052109SetCallback(K052109Callback);
- K052109AdjustScroll(8, 0);
-
- K053247Init(DrvGfxROM1, DrvGfxROMExp1, 0x3fffff, XmenK053247Callback, 1);
- K053247SetSpriteOffset(514, -158);
-
- BurnYM2151Init(4000000);
- BurnYM2151SetRoute(BURN_SND_YM2151_YM2151_ROUTE_1, 0.20, BURN_SND_ROUTE_LEFT);
- BurnYM2151SetRoute(BURN_SND_YM2151_YM2151_ROUTE_2, 0.20, BURN_SND_ROUTE_RIGHT);
-
- K054539Init(0, 48000, DrvSndROM, 0x200000);
- K054539SetRoute(0, BURN_SND_K054539_ROUTE_1, 1.00, BURN_SND_ROUTE_LEFT);
- K054539SetRoute(0, BURN_SND_K054539_ROUTE_2, 1.00, BURN_SND_ROUTE_RIGHT);
-
- DrvDoReset();
-
- return 0;
-}
-
-static INT32 DrvExit()
-{
- GenericTilesExit();
-
- KonamiICExit();
-
- SekExit();
- ZetExit();
-
- BurnYM2151Exit();
- K054539Exit();
-
- EEPROMExit();
-
- BurnFree (AllMem);
-
- return 0;
-}
-
-static inline void DrvRecalcPalette()
-{
- UINT8 r,g,b;
- UINT16 *p = (UINT16*)DrvPalRAM;
- for (INT32 i = 0; i < 0x1000 / 2; i++) {
- INT32 d = BURN_ENDIAN_SWAP_INT16(p[i]);
-
- r = (d >> 0) & 0x1f;
- g = (d >> 5) & 0x1f;
- b = (d >> 10) & 0x1f;
-
- r = (r << 3) | (r >> 2);
- g = (g << 3) | (g >> 2);
- b = (b << 3) | (b >> 2);
-
- DrvPalette[i] = (r << 16) | (g << 8) | b;
- }
-}
-
-static INT32 DrvDraw()
-{
- if (DrvRecalc) {
- DrvRecalcPalette();
- }
-
- K052109UpdateScroll();
-
- INT32 layer[3];
-
- bg_colorbase = K053251GetPaletteIndex(4);
- sprite_colorbase = K053251GetPaletteIndex(1);
- layer_colorbase[0] = K053251GetPaletteIndex(3);
- layer_colorbase[1] = K053251GetPaletteIndex(0);
- layer_colorbase[2] = K053251GetPaletteIndex(2);
-
- layerpri[0] = K053251GetPriority(3);
- layerpri[1] = K053251GetPriority(0);
- layerpri[2] = K053251GetPriority(2);
- layer[0] = 0;
- layer[1] = 1;
- layer[2] = 2;
-
- konami_sortlayers3(layer,layerpri);
-
- KonamiClearBitmaps(DrvPalette[16 * bg_colorbase+1]);
-
- if (nBurnLayer & 1) K052109RenderLayer(layer[0], 0, 1);
- if (nBurnLayer & 2) K052109RenderLayer(layer[1], 0, 2);
- if (nBurnLayer & 4) K052109RenderLayer(layer[2], 0, 4);
-
- if (nSpriteEnable & 1) K053247SpritesRender();
-
- KonamiBlendCopy(DrvPalette);
-
- return 0;
-}
-
-static INT32 DrvFrame()
-{
- if (DrvReset) {
- DrvDoReset();
- }
-
- {
- memset (DrvInputs, 0xff, 3 * sizeof(INT16));
- for (INT32 i = 0; i < 16; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- DrvInputs[2] ^= (DrvJoy3[i] & 1) << i;
- }
-
- // Clear Opposites
- if ((DrvInputs[1] & 0x0c) == 0) DrvInputs[1] |= 0x0c;
- if ((DrvInputs[1] & 0x03) == 0) DrvInputs[1] |= 0x03;
- if ((DrvInputs[0] & 0x0c) == 0) DrvInputs[0] |= 0x0c;
- if ((DrvInputs[0] & 0x03) == 0) DrvInputs[0] |= 0x03;
- if ((DrvInputs[1] & 0xc00) == 0) DrvInputs[1] |= 0xc00;
- if ((DrvInputs[1] & 0x300) == 0) DrvInputs[1] |= 0x300;
- if ((DrvInputs[0] & 0xc00) == 0) DrvInputs[0] |= 0xc00;
- if ((DrvInputs[0] & 0x300) == 0) DrvInputs[0] |= 0x300;
- }
-
- INT32 nInterleave = nBurnSoundLen;
- INT32 nSoundBufferPos = 0;
- INT32 nCyclesTotal[2] = { 16000000 / 60, 8000000 / 60 };
- INT32 nCyclesDone[2] = { 0, 0 };
-
- SekOpen(0);
- ZetOpen(0);
-
- for (INT32 i = 0; i < nInterleave; i++) {
- INT32 nNext, nCyclesSegment;
-
- nNext = (i + 1) * nCyclesTotal[0] / nInterleave;
- nCyclesSegment = nNext - nCyclesDone[0];
- nCyclesSegment = SekRun(nCyclesSegment);
- nCyclesDone[0] += nCyclesSegment;
-
- if (i == (nInterleave / 2) && interrupt_enable) {
- SekSetIRQLine(3, CPU_IRQSTATUS_AUTO);
- }
-
- nNext = (i + 1) * nCyclesTotal[1] / nInterleave;
- nCyclesSegment = nNext - nCyclesDone[1];
- nCyclesSegment = ZetRun(nCyclesSegment);
- nCyclesDone[1] += nCyclesSegment;
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen / nInterleave;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- BurnYM2151Render(pSoundBuf, nSegmentLength);
- nSoundBufferPos += nSegmentLength;
- }
- }
-
- if (interrupt_enable) SekSetIRQLine(5, CPU_IRQSTATUS_AUTO);
-
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- if (nSegmentLength) {
- BurnYM2151Render(pSoundBuf, nSegmentLength);
- }
- K054539Update(0, pBurnSoundOut, nBurnSoundLen);
- }
-
- ZetClose();
- SekClose();
-
- if (pBurnDraw) {
- DrvDraw();
- }
-
- return 0;
-}
-
-static INT32 DrvScan(INT32 nAction, INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin) {
- *pnMin = 0x029705;
- }
-
- if (nAction & ACB_VOLATILE) {
- memset(&ba, 0, sizeof(ba));
-
- ba.Data = AllRam;
- ba.nLen = RamEnd - AllRam;
- ba.szName = "All Ram";
- BurnAcb(&ba);
-
- SekScan(nAction);
- ZetScan(nAction);
-
- BurnYM2151Scan(nAction);
-
- K054539Scan(nAction);
-
- KonamiICScan(nAction);
- EEPROMScan(nAction, pnMin);
-
- SCAN_VAR(interrupt_enable);
- SCAN_VAR(init_eeprom_count);
- }
-
- if (nAction & ACB_WRITE) {
- ZetOpen(0);
- bankswitch(nDrvZ80Bank[0]);
- ZetClose();
- }
-
- EEPROMScan(nAction, pnMin);
-
- return 0;
-}
-
-
-// X-Men (4 Players ver UBB)
-
-static struct BurnRomInfo xmenRomDesc[] = {
- { "065-ubb04.10d", 0x020000, 0xf896c93b, 1 | BRF_PRG | BRF_ESS }, // 0 68k Code
- { "065-ubb05.10f", 0x020000, 0xe02e5d64, 1 | BRF_PRG | BRF_ESS }, // 1
- { "065-a02.9d", 0x040000, 0xb31dc44c, 1 | BRF_PRG | BRF_ESS }, // 2
- { "065-a03.9f", 0x040000, 0x13842fe6, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "065-a01.6f", 0x020000, 0x147d3a4d, 2 | BRF_PRG | BRF_ESS }, // 4 Z80 Code
-
- { "065-a08.15l", 0x100000, 0x6b649aca, 3 | BRF_GRA }, // 5 Background Tiles
- { "065-a07.16l", 0x100000, 0xc5dc8fc4, 3 | BRF_GRA }, // 6
-
- { "065-a09.2h", 0x100000, 0xea05d52f, 4 | BRF_GRA }, // 7 Sprites
- { "065-a10.2l", 0x100000, 0x96b91802, 4 | BRF_GRA }, // 8
- { "065-a12.1h", 0x100000, 0x321ed07a, 4 | BRF_GRA }, // 9
- { "065-a11.1l", 0x100000, 0x46da948e, 4 | BRF_GRA }, // 10
-
- { "065-a06.1f", 0x200000, 0x5adbcee0, 5 | BRF_SND }, // 11 K054539 Samples
-
- { "xmen_ubb.nv", 0x000080, 0x52f334ba, BRF_OPT },
-};
-
-STD_ROM_PICK(xmen)
-STD_ROM_FN(xmen)
-
-struct BurnDriver BurnDrvXmen = {
- "xmen", NULL, NULL, NULL, "1992",
- "X-Men (4 Players ver UBB)\0", NULL, "Konami", "GX065",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING, 4, HARDWARE_PREFIX_KONAMI, GBF_SCRFIGHT, 0,
- NULL, xmenRomInfo, xmenRomName, NULL, NULL, XmenInputInfo, NULL,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 288, 224, 4, 3
-};
-
-
-// X-Men (4 Players ver AEA)
-
-static struct BurnRomInfo xmenaRomDesc[] = {
- { "065-aea04.10d", 0x020000, 0x0e8d2e98, 1 | BRF_PRG | BRF_ESS }, // 0 68k Code
- { "065-aea05.10f", 0x020000, 0x0b742a4e, 1 | BRF_PRG | BRF_ESS }, // 1
- { "065-a02.9d", 0x040000, 0xb31dc44c, 1 | BRF_PRG | BRF_ESS }, // 2
- { "065-a03.9f", 0x040000, 0x13842fe6, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "065-a01.6f", 0x020000, 0x147d3a4d, 2 | BRF_PRG | BRF_ESS }, // 4 Z80 Code
-
- { "065-a08.15l", 0x100000, 0x6b649aca, 3 | BRF_GRA }, // 5 Background Tiles
- { "065-a07.16l", 0x100000, 0xc5dc8fc4, 3 | BRF_GRA }, // 6
-
- { "065-a09.2h", 0x100000, 0xea05d52f, 4 | BRF_GRA }, // 7 Sprites
- { "065-a10.2l", 0x100000, 0x96b91802, 4 | BRF_GRA }, // 8
- { "065-a12.1h", 0x100000, 0x321ed07a, 4 | BRF_GRA }, // 9
- { "065-a11.1l", 0x100000, 0x46da948e, 4 | BRF_GRA }, // 10
-
- { "065-a06.1f", 0x200000, 0x5adbcee0, 5 | BRF_SND }, // 11 K054539 Samples
-
- { "xmen_aea.nv", 0x000080, 0xd73d4f20, BRF_OPT },
-};
-
-STD_ROM_PICK(xmena)
-STD_ROM_FN(xmena)
-
-struct BurnDriver BurnDrvXmena = {
- "xmena", "xmen", NULL, NULL, "1992",
- "X-Men (4 Players ver AEA)\0", NULL, "Konami", "GX065",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 4, HARDWARE_PREFIX_KONAMI, GBF_SCRFIGHT, 0,
- NULL, xmenaRomInfo, xmenaRomName, NULL, NULL, XmenInputInfo, NULL,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 288, 224, 4, 3
-};
-
-
-// X-Men (4 Players ver ADA)
-
-static struct BurnRomInfo xmenaaRomDesc[] = {
- { "065-ada04.10d", 0x020000, 0xb8276624, 1 | BRF_PRG | BRF_ESS }, // 0 68k Code
- { "065-ada05.10f", 0x020000, 0xc68582ad, 1 | BRF_PRG | BRF_ESS }, // 1
- { "065-a02.9d", 0x040000, 0xb31dc44c, 1 | BRF_PRG | BRF_ESS }, // 2
- { "065-a03.9f", 0x040000, 0x13842fe6, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "065-a01.6f", 0x020000, 0x147d3a4d, 2 | BRF_PRG | BRF_ESS }, // 4 Z80 Code
-
- { "065-a08.15l", 0x100000, 0x6b649aca, 3 | BRF_GRA }, // 5 Background Tiles
- { "065-a07.16l", 0x100000, 0xc5dc8fc4, 3 | BRF_GRA }, // 6
-
- { "065-a09.2h", 0x100000, 0xea05d52f, 4 | BRF_GRA }, // 7 Sprites
- { "065-a10.2l", 0x100000, 0x96b91802, 4 | BRF_GRA }, // 8
- { "065-a12.1h", 0x100000, 0x321ed07a, 4 | BRF_GRA }, // 9
- { "065-a11.1l", 0x100000, 0x46da948e, 4 | BRF_GRA }, // 10
-
- { "065-a06.1f", 0x200000, 0x5adbcee0, 5 | BRF_SND }, // 11 K054539 Samples
-
- { "xmen_ada.nv", 0x000080, 0xa77a3891, BRF_OPT },
-};
-
-STD_ROM_PICK(xmenaa)
-STD_ROM_FN(xmenaa)
-
-struct BurnDriver BurnDrvXmenaa = {
- "xmenaa", "xmen", NULL, NULL, "1992",
- "X-Men (4 Players ver ADA)\0", NULL, "Konami", "GX065",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 4, HARDWARE_PREFIX_KONAMI, GBF_SCRFIGHT, 0,
- NULL, xmenaaRomInfo, xmenaaRomName, NULL, NULL, XmenInputInfo, NULL,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 288, 224, 4, 3
-};
-
-
-// X-Men (4 Players ver EBA)
-
-static struct BurnRomInfo xmeneRomDesc[] = {
- { "065-eba04.10d", 0x020000, 0x3588c5ec, 1 | BRF_PRG | BRF_ESS }, // 0 68k Code
- { "065-eba05.10f", 0x020000, 0x79ce32f8, 1 | BRF_PRG | BRF_ESS }, // 1
- { "065-a02.9d", 0x040000, 0xb31dc44c, 1 | BRF_PRG | BRF_ESS }, // 2
- { "065-a03.9f", 0x040000, 0x13842fe6, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "065-a01.6f", 0x020000, 0x147d3a4d, 2 | BRF_PRG | BRF_ESS }, // 4 Z80 Code
-
- { "065-a08.15l", 0x100000, 0x6b649aca, 3 | BRF_GRA }, // 5 Background Tiles
- { "065-a07.16l", 0x100000, 0xc5dc8fc4, 3 | BRF_GRA }, // 6
-
- { "065-a09.2h", 0x100000, 0xea05d52f, 4 | BRF_GRA }, // 7 Sprites
- { "065-a10.2l", 0x100000, 0x96b91802, 4 | BRF_GRA }, // 8
- { "065-a12.1h", 0x100000, 0x321ed07a, 4 | BRF_GRA }, // 9
- { "065-a11.1l", 0x100000, 0x46da948e, 4 | BRF_GRA }, // 10
-
- { "065-a06.1f", 0x200000, 0x5adbcee0, 5 | BRF_SND }, // 11 K054539 Samples
-
- { "xmen_eba.nv", 0x000080, 0x37f8e77a, BRF_OPT },
-};
-
-STD_ROM_PICK(xmene)
-STD_ROM_FN(xmene)
-
-struct BurnDriver BurnDrvXmene = {
- "xmene", "xmen", NULL, NULL, "1992",
- "X-Men (4 Players ver EBA)\0", NULL, "Konami", "GX065",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 4, HARDWARE_PREFIX_KONAMI, GBF_SCRFIGHT, 0,
- NULL, xmeneRomInfo, xmeneRomName, NULL, NULL, XmenInputInfo, NULL,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 288, 224, 4, 3
-};
-
-
-// X-Men (4 Players ver JBA)
-
-static struct BurnRomInfo xmenjRomDesc[] = {
- { "065-jba04.10d", 0x020000, 0xd86cf5eb, 1 | BRF_PRG | BRF_ESS }, // 0 68k Code
- { "065-jba05.10f", 0x020000, 0xabbc8126, 1 | BRF_PRG | BRF_ESS }, // 1
- { "065-a02.9d", 0x040000, 0xb31dc44c, 1 | BRF_PRG | BRF_ESS }, // 2
- { "065-a03.9f", 0x040000, 0x13842fe6, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "065-a01.6f", 0x020000, 0x147d3a4d, 2 | BRF_PRG | BRF_ESS }, // 4 Z80 Code
-
- { "065-a08.15l", 0x100000, 0x6b649aca, 3 | BRF_GRA }, // 5 Background Tiles
- { "065-a07.16l", 0x100000, 0xc5dc8fc4, 3 | BRF_GRA }, // 6
-
- { "065-a09.2h", 0x100000, 0xea05d52f, 4 | BRF_GRA }, // 7 Sprites
- { "065-a10.2l", 0x100000, 0x96b91802, 4 | BRF_GRA }, // 8
- { "065-a12.1h", 0x100000, 0x321ed07a, 4 | BRF_GRA }, // 9
- { "065-a11.1l", 0x100000, 0x46da948e, 4 | BRF_GRA }, // 10
-
- { "065-a06.1f", 0x200000, 0x5adbcee0, 5 | BRF_SND }, // 11 K054539 Samples
-
- { "xmen_jba.nv", 0x000080, 0x7439cea7, BRF_OPT },
-};
-
-STD_ROM_PICK(xmenj)
-STD_ROM_FN(xmenj)
-
-struct BurnDriver BurnDrvXmenj = {
- "xmenj", "xmen", NULL, NULL, "1992",
- "X-Men (4 Players ver JBA)\0", NULL, "Konami", "GX065",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 4, HARDWARE_PREFIX_KONAMI, GBF_SCRFIGHT, 0,
- NULL, xmenjRomInfo, xmenjRomName, NULL, NULL, XmenInputInfo, NULL,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 288, 224, 4, 3
-};
-
-
-// X-Men (2 Players ver EAA)
-
-static struct BurnRomInfo xmen2peRomDesc[] = {
- { "065-eaa04.10d", 0x020000, 0x502861e7, 1 | BRF_PRG | BRF_ESS }, // 0 68k Code
- { "065-eaa05.10f", 0x020000, 0xca6071bf, 1 | BRF_PRG | BRF_ESS }, // 1
- { "065-a02.9d", 0x040000, 0xb31dc44c, 1 | BRF_PRG | BRF_ESS }, // 2
- { "065-a03.9f", 0x040000, 0x13842fe6, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "065-a01.6f", 0x020000, 0x147d3a4d, 2 | BRF_PRG | BRF_ESS }, // 4 Z80 Code
-
- { "065-a08.15l", 0x100000, 0x6b649aca, 3 | BRF_GRA }, // 5 Background Tiles
- { "065-a07.16l", 0x100000, 0xc5dc8fc4, 3 | BRF_GRA }, // 6
-
- { "065-a09.2h", 0x100000, 0xea05d52f, 4 | BRF_GRA }, // 7 Sprites
- { "065-a10.2l", 0x100000, 0x96b91802, 4 | BRF_GRA }, // 8
- { "065-a12.1h", 0x100000, 0x321ed07a, 4 | BRF_GRA }, // 9
- { "065-a11.1l", 0x100000, 0x46da948e, 4 | BRF_GRA }, // 10
-
- { "065-a06.1f", 0x200000, 0x5adbcee0, 5 | BRF_SND }, // 11 K054539 Samples
-
- { "xmen_eaa.nv", 0x000080, 0x1cbcb653, BRF_OPT },
-};
-
-STD_ROM_PICK(xmen2pe)
-STD_ROM_FN(xmen2pe)
-
-struct BurnDriver BurnDrvXmen2pe = {
- "xmen2pe", "xmen", NULL, NULL, "1992",
- "X-Men (2 Players ver EAA)\0", NULL, "Konami", "GX065",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_KONAMI, GBF_SCRFIGHT, 0,
- NULL, xmen2peRomInfo, xmen2peRomName, NULL, NULL, Xmen2pInputInfo, NULL,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 288, 224, 4, 3
-};
-
-
-// X-Men (2 Players ver UAB)
-
-static struct BurnRomInfo xmen2puRomDesc[] = {
- { "065-uab04.10d", 0x020000, 0xff003db1, 1 | BRF_PRG | BRF_ESS }, // 0 68k Code
- { "065-uab05.10f", 0x020000, 0x4e99a943, 1 | BRF_PRG | BRF_ESS }, // 1
- { "065-a02.9d", 0x040000, 0xb31dc44c, 1 | BRF_PRG | BRF_ESS }, // 2
- { "065-a03.9f", 0x040000, 0x13842fe6, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "065-a01.6f", 0x020000, 0x147d3a4d, 2 | BRF_PRG | BRF_ESS }, // 4 Z80 Code
-
- { "065-a08.15l", 0x100000, 0x6b649aca, 3 | BRF_GRA }, // 5 Background Tiles
- { "065-a07.16l", 0x100000, 0xc5dc8fc4, 3 | BRF_GRA }, // 6
-
- { "065-a09.2h", 0x100000, 0xea05d52f, 4 | BRF_GRA }, // 7 Sprites
- { "065-a10.2l", 0x100000, 0x96b91802, 4 | BRF_GRA }, // 8
- { "065-a12.1h", 0x100000, 0x321ed07a, 4 | BRF_GRA }, // 9
- { "065-a11.1l", 0x100000, 0x46da948e, 4 | BRF_GRA }, // 10
-
- { "065-a06.1f", 0x200000, 0x5adbcee0, 5 | BRF_SND }, // 11 K054539 Samples
-
- { "xmen_uab.nv", 0x000080, 0x79b76593, BRF_OPT },
-};
-
-STD_ROM_PICK(xmen2pu)
-STD_ROM_FN(xmen2pu)
-
-struct BurnDriver BurnDrvXmen2pu = {
- "xmen2pu", "xmen", NULL, NULL, "1992",
- "X-Men (2 Players ver UAB)\0", NULL, "Konami", "GX065",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_KONAMI, GBF_SCRFIGHT, 0,
- NULL, xmen2puRomInfo, xmen2puRomName, NULL, NULL, Xmen2pInputInfo, NULL,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 288, 224, 4, 3
-};
-
-
-// X-Men (2 Players ver AAA)
-
-static struct BurnRomInfo xmen2paRomDesc[] = {
- { "065-aaa04.10d", 0x020000, 0x7f8b27c2, 1 | BRF_PRG | BRF_ESS }, // 0 68k Code
- { "065-aaa05.10f", 0x020000, 0x841ed636, 1 | BRF_PRG | BRF_ESS }, // 1
- { "065-a02.9d", 0x040000, 0xb31dc44c, 1 | BRF_PRG | BRF_ESS }, // 2
- { "065-a03.9f", 0x040000, 0x13842fe6, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "065-a01.6f", 0x020000, 0x147d3a4d, 2 | BRF_PRG | BRF_ESS }, // 4 Z80 Code
-
- { "065-a08.15l", 0x100000, 0x6b649aca, 3 | BRF_GRA }, // 5 Background Tiles
- { "065-a07.16l", 0x100000, 0xc5dc8fc4, 3 | BRF_GRA }, // 6
-
- { "065-a09.2h", 0x100000, 0xea05d52f, 4 | BRF_GRA }, // 7 Sprites
- { "065-a10.2l", 0x100000, 0x96b91802, 4 | BRF_GRA }, // 8
- { "065-a12.1h", 0x100000, 0x321ed07a, 4 | BRF_GRA }, // 9
- { "065-a11.1l", 0x100000, 0x46da948e, 4 | BRF_GRA }, // 10
-
- { "065-a06.1f", 0x200000, 0x5adbcee0, 5 | BRF_SND }, // 11 K054539 Samples
-
- { "xmen_aaa.nv", 0x000080, 0x750fd447, BRF_OPT },
-};
-
-STD_ROM_PICK(xmen2pa)
-STD_ROM_FN(xmen2pa)
-
-struct BurnDriver BurnDrvXmen2pa = {
- "xmen2pa", "xmen", NULL, NULL, "1992",
- "X-Men (2 Players ver AAA)\0", NULL, "Konami", "GX065",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_KONAMI, GBF_SCRFIGHT, 0,
- NULL, xmen2paRomInfo, xmen2paRomName, NULL, NULL, Xmen2pInputInfo, NULL,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 288, 224, 4, 3
-};
-
-
-// X-Men (2 Players ver JAA)
-
-static struct BurnRomInfo xmen2pjRomDesc[] = {
- { "065-jaa04.10d", 0x020000, 0x66746339, 1 | BRF_PRG | BRF_ESS }, // 0 68k Code
- { "065-jaa05.10f", 0x020000, 0x1215b706, 1 | BRF_PRG | BRF_ESS }, // 1
- { "065-a02.9d", 0x040000, 0xb31dc44c, 1 | BRF_PRG | BRF_ESS }, // 2
- { "065-a03.9f", 0x040000, 0x13842fe6, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "065-a01.6f", 0x020000, 0x147d3a4d, 2 | BRF_PRG | BRF_ESS }, // 4 Z80 Code
-
- { "065-a08.15l", 0x100000, 0x6b649aca, 3 | BRF_GRA }, // 5 Background Tiles
- { "065-a07.16l", 0x100000, 0xc5dc8fc4, 3 | BRF_GRA }, // 6
-
- { "065-a09.2h", 0x100000, 0xea05d52f, 4 | BRF_GRA }, // 7 Sprites
- { "065-a10.2l", 0x100000, 0x96b91802, 4 | BRF_GRA }, // 8
- { "065-a12.1h", 0x100000, 0x321ed07a, 4 | BRF_GRA }, // 9
- { "065-a11.1l", 0x100000, 0x46da948e, 4 | BRF_GRA }, // 10
-
- { "065-a06.1f", 0x200000, 0x5adbcee0, 5 | BRF_SND }, // 11 K054539 Samples
-
- { "xmen_jaa.nv", 0x000080, 0x849a9e19, BRF_OPT },
-};
-
-STD_ROM_PICK(xmen2pj)
-STD_ROM_FN(xmen2pj)
-
-struct BurnDriver BurnDrvXmen2pj = {
- "xmen2pj", "xmen", NULL, NULL, "1992",
- "X-Men (2 Players ver JAA)\0", NULL, "Konami", "GX065",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_KONAMI, GBF_SCRFIGHT, 0,
- NULL, xmen2pjRomInfo, xmen2pjRomName, NULL, NULL, Xmen2pInputInfo, NULL,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 288, 224, 4, 3
-};
-
-
-// X-Men (6 Players ver ECB)
-
-static struct BurnRomInfo xmen6pRomDesc[] = {
- { "065-ecb04.18g", 0x020000, 0x258eb21f, 1 | BRF_PRG | BRF_ESS }, // 0 68k Code
- { "065-ecb05.18j", 0x020000, 0x25997bcd, 1 | BRF_PRG | BRF_ESS }, // 1
- { "065-a02.17g", 0x040000, 0xb31dc44c, 1 | BRF_PRG | BRF_ESS }, // 2
- { "065-a03.17j", 0x040000, 0x13842fe6, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "065-a01.7b", 0x020000, 0x147d3a4d, 2 | BRF_PRG | BRF_ESS }, // 4 Z80 Code
-
- { "065-a08.1l", 0x100000, 0x6b649aca, 3 | BRF_GRA }, // 5 Background Tiles
- { "065-a07.1h", 0x100000, 0xc5dc8fc4, 3 | BRF_GRA }, // 6
-
- { "065-a09.12l", 0x100000, 0xea05d52f, 4 | BRF_GRA }, // 7 Sprites
- { "065-a10.17l", 0x100000, 0x96b91802, 4 | BRF_GRA }, // 8
- { "065-a12.22h", 0x100000, 0x321ed07a, 4 | BRF_GRA }, // 9
- { "065-a11.22l", 0x100000, 0x46da948e, 4 | BRF_GRA }, // 10
-
- { "065-a06.1d", 0x200000, 0x5adbcee0, 5 | BRF_SND }, // 11 K054539 Samples
-
- { "xmen_ecb.nv", 0x000080, 0x462c6e1a, BRF_OPT },
-};
-
-STD_ROM_PICK(xmen6p)
-STD_ROM_FN(xmen6p)
-
-struct BurnDriverD BurnDrvXmen6p = {
- "xmen6p", "xmen", NULL, NULL, "1992",
- "X-Men (6 Players ver ECB)\0", NULL, "Konami", "GX065",
- NULL, NULL, NULL, NULL,
- BDF_CLONE, 6, HARDWARE_PREFIX_KONAMI, GBF_SCRFIGHT, 0,
- NULL, xmen6pRomInfo, xmen6pRomName, NULL, NULL, XmenInputInfo, NULL,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 256, 256, 4, 3
-};
-
-
-// X-Men (6 Players ver UCB)
-
-static struct BurnRomInfo xmen6puRomDesc[] = {
- { "065-ucb04.18g", 0x020000, 0x0f09b8e0, 1 | BRF_PRG | BRF_ESS }, // 0 68k Code
- { "065-ucb05.18j", 0x020000, 0x867becbf, 1 | BRF_PRG | BRF_ESS }, // 1
- { "065-a02.17g", 0x040000, 0xb31dc44c, 1 | BRF_PRG | BRF_ESS }, // 2
- { "065-a03.17j", 0x040000, 0x13842fe6, 1 | BRF_PRG | BRF_ESS }, // 3
-
- { "065-a01.7b", 0x020000, 0x147d3a4d, 2 | BRF_PRG | BRF_ESS }, // 4 Z80 Code
-
- { "065-a08.1l", 0x100000, 0x6b649aca, 3 | BRF_GRA }, // 5 Background Tiles
- { "065-a07.1h", 0x100000, 0xc5dc8fc4, 3 | BRF_GRA }, // 6
-
- { "065-a09.12l", 0x100000, 0xea05d52f, 4 | BRF_GRA }, // 7 Sprites
- { "065-a10.17l", 0x100000, 0x96b91802, 4 | BRF_GRA }, // 8
- { "065-a12.22h", 0x100000, 0x321ed07a, 4 | BRF_GRA }, // 9
- { "065-a11.22l", 0x100000, 0x46da948e, 4 | BRF_GRA }, // 10
-
- { "065-a06.1d", 0x200000, 0x5adbcee0, 5 | BRF_SND }, // 11 K054539 Samples
-
- { "xmen_ucb.nv", 0x000080, 0xf3d0f682, BRF_OPT },
-};
-
-STD_ROM_PICK(xmen6pu)
-STD_ROM_FN(xmen6pu)
-
-struct BurnDriverD BurnDrvXmen6pu = {
- "xmen6pu", "xmen", NULL, NULL, "1992",
- "X-Men (6 Players ver UCB)\0", NULL, "Konami", "GX065",
- NULL, NULL, NULL, NULL,
- BDF_CLONE, 6, HARDWARE_PREFIX_KONAMI, GBF_SCRFIGHT, 0,
- NULL, xmen6puRomInfo, xmen6puRomName, NULL, NULL, XmenInputInfo, NULL,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x800,
- 256, 256, 4, 3
-};
diff --git a/jan/src/burn/drv/konami/d_yiear.cpp b/jan/src/burn/drv/konami/d_yiear.cpp
deleted file mode 100644
index 995f33208..000000000
--- a/jan/src/burn/drv/konami/d_yiear.cpp
+++ /dev/null
@@ -1,601 +0,0 @@
-// FB Alpha Yie Ar Kung-Fu driver module
-// Based on MAME driver by Enrique Sanchez (?)
-
-#include "tiles_generic.h"
-#include "m6809_intf.h"
-#include "vlm5030.h"
-#include "sn76496.h"
-
-static UINT8 *AllMem;
-static UINT8 *DrvM6809ROM;
-static UINT8 *DrvGfxROM0;
-static UINT8 *DrvGfxROM1;
-static UINT8 *DrvVLMROM;
-static UINT8 *DrvColPROM;
-static UINT32 *DrvPalette;
-static UINT8 DrvRecalc;
-static UINT8 *AllRam;
-static UINT8 *DrvM6809RAM;
-static UINT8 *DrvVidRAM;
-static UINT8 *DrvSprRAM0;
-static UINT8 *DrvSprRAM1;
-static UINT8 *flipscreen;
-static UINT8 *nmi_enable;
-static UINT8 *irq_enable;
-static UINT8 *RamEnd;
-static UINT8 *MemEnd;
-
-static UINT8 DrvJoy1[8];
-static UINT8 DrvJoy2[8];
-static UINT8 DrvJoy3[8];
-static UINT8 DrvInputs[3];
-static UINT8 DrvDips[3];
-static UINT8 DrvReset;
-
-static UINT8 sn76496_latch;
-
-static struct BurnInputInfo YiearInputList[] = {
- {"P1 Coin", BIT_DIGITAL, DrvJoy1 + 0, "p1 coin" },
- {"P1 Start", BIT_DIGITAL, DrvJoy1 + 3, "p1 start" },
- {"P1 Up", BIT_DIGITAL, DrvJoy2 + 2, "p1 up" },
- {"P1 Down", BIT_DIGITAL, DrvJoy2 + 3, "p1 down" },
- {"P1 Left", BIT_DIGITAL, DrvJoy2 + 0, "p1 left" },
- {"P1 Right", BIT_DIGITAL, DrvJoy2 + 1, "p1 right" },
- {"P1 Button 1", BIT_DIGITAL, DrvJoy2 + 4, "p1 fire 1" },
- {"P1 Button 2", BIT_DIGITAL, DrvJoy2 + 5, "p1 fire 2" },
- {"P1 Button 3", BIT_DIGITAL, DrvJoy2 + 6, "p1 fire 3" },
-
- {"P2 Coin", BIT_DIGITAL, DrvJoy1 + 1, "p2 coin" },
- {"P2 Start", BIT_DIGITAL, DrvJoy1 + 4, "p2 start" },
- {"P2 Up", BIT_DIGITAL, DrvJoy3 + 2, "p2 up" },
- {"P2 Down", BIT_DIGITAL, DrvJoy3 + 3, "p2 down" },
- {"P2 Left", BIT_DIGITAL, DrvJoy3 + 0, "p2 left" },
- {"P2 Right", BIT_DIGITAL, DrvJoy3 + 1, "p2 right" },
- {"P2 Button 1", BIT_DIGITAL, DrvJoy3 + 4, "p2 fire 1" },
- {"P2 Button 2", BIT_DIGITAL, DrvJoy3 + 5, "p2 fire 2" },
- {"P2 Button 3", BIT_DIGITAL, DrvJoy3 + 6, "p2 fire 3" },
-
- {"Reset", BIT_DIGITAL, &DrvReset, "reset" },
- {"Service", BIT_DIGITAL, DrvJoy1 + 2, "service" },
- {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip" },
- {"Dip C", BIT_DIPSWITCH, DrvDips + 2, "dip" },
-};
-
-STDINPUTINFO(Yiear)
-
-static struct BurnDIPInfo YiearDIPList[]=
-{
- {0x14, 0xff, 0xff, 0xff, NULL },
- {0x15, 0xff, 0xff, 0x5b, NULL },
- {0x16, 0xff, 0xff, 0xff, NULL },
-
- {0 , 0xfe, 0 , 16, "Coin A" },
- {0x14, 0x01, 0x0f, 0x02, "4 Coins 1 Credits" },
- {0x14, 0x01, 0x0f, 0x05, "3 Coins 1 Credits" },
- {0x14, 0x01, 0x0f, 0x08, "2 Coins 1 Credits" },
- {0x14, 0x01, 0x0f, 0x04, "3 Coins 2 Credits" },
- {0x14, 0x01, 0x0f, 0x01, "4 Coins 3 Credits" },
- {0x14, 0x01, 0x0f, 0x0f, "1 Coin 1 Credits" },
- {0x14, 0x01, 0x0f, 0x03, "3 Coins 4 Credits" },
- {0x14, 0x01, 0x0f, 0x07, "2 Coins 3 Credits" },
- {0x14, 0x01, 0x0f, 0x0e, "1 Coin 2 Credits" },
- {0x14, 0x01, 0x0f, 0x06, "2 Coins 5 Credits" },
- {0x14, 0x01, 0x0f, 0x0d, "1 Coin 3 Credits" },
- {0x14, 0x01, 0x0f, 0x0c, "1 Coin 4 Credits" },
- {0x14, 0x01, 0x0f, 0x0b, "1 Coin 5 Credits" },
- {0x14, 0x01, 0x0f, 0x0a, "1 Coin 6 Credits" },
- {0x14, 0x01, 0x0f, 0x09, "1 Coin 7 Credits" },
- {0x14, 0x01, 0x0f, 0x00, "Free Play" },
-
- {0 , 0xfe, 0 , 16, "Coin B" },
- {0x14, 0x01, 0xf0, 0x20, "4 Coins 1 Credits" },
- {0x14, 0x01, 0xf0, 0x50, "3 Coins 1 Credits" },
- {0x14, 0x01, 0xf0, 0x80, "2 Coins 1 Credits" },
- {0x14, 0x01, 0xf0, 0x40, "3 Coins 2 Credits" },
- {0x14, 0x01, 0xf0, 0x10, "4 Coins 3 Credits" },
- {0x14, 0x01, 0xf0, 0xf0, "1 Coin 1 Credits" },
- {0x14, 0x01, 0xf0, 0x30, "3 Coins 4 Credits" },
- {0x14, 0x01, 0xf0, 0x70, "2 Coins 3 Credits" },
- {0x14, 0x01, 0xf0, 0xe0, "1 Coin 2 Credits" },
- {0x14, 0x01, 0xf0, 0x60, "2 Coins 5 Credits" },
- {0x14, 0x01, 0xf0, 0xd0, "1 Coin 3 Credits" },
- {0x14, 0x01, 0xf0, 0xc0, "1 Coin 4 Credits" },
- {0x14, 0x01, 0xf0, 0xb0, "1 Coin 5 Credits" },
- {0x14, 0x01, 0xf0, 0xa0, "1 Coin 6 Credits" },
- {0x14, 0x01, 0xf0, 0x90, "1 Coin 7 Credits" },
- {0x14, 0x01, 0xf0, 0x00, "Invalid" },
-
- {0 , 0xfe, 0 , 4, "Lives" },
- {0x15, 0x01, 0x03, 0x03, "1" },
- {0x15, 0x01, 0x03, 0x02, "2" },
- {0x15, 0x01, 0x03, 0x01, "3" },
- {0x15, 0x01, 0x03, 0x00, "5" },
-
- {0 , 0xfe, 0 , 2, "Cabinet" },
- {0x15, 0x01, 0x04, 0x00, "Upright" },
- {0x15, 0x01, 0x04, 0x04, "Cocktail" },
-
- {0 , 0xfe, 0 , 2, "Bonus Life" },
- {0x15, 0x01, 0x08, 0x08, "30000 80000" },
- {0x15, 0x01, 0x08, 0x00, "40000 90000" },
-
- {0 , 0xfe, 0 , 4, "Difficulty" },
- {0x15, 0x01, 0x30, 0x30, "Easy" },
- {0x15, 0x01, 0x30, 0x10, "Normal" },
- {0x15, 0x01, 0x30, 0x20, "Difficult" },
- {0x15, 0x01, 0x30, 0x00, "Very Difficult" },
-
- {0 , 0xfe, 0 , 0, "Demo Sounds" },
- {0x15, 0x01, 0x80, 0x80, "Off" },
- {0x15, 0x01, 0x80, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Flip Screen" },
- {0x16, 0x01, 0x01, 0x01, "Off" },
- {0x16, 0x01, 0x01, 0x00, "On" },
-
- {0 , 0xfe, 0 , 2, "Upright Controls" },
- {0x16, 0x01, 0x02, 0x02, "Single" },
- {0x16, 0x01, 0x02, 0x00, "Dual" },
-
- {0 , 0xfe, 0 , 2, "Service Mode" },
- {0x16, 0x01, 0x04, 0x04, "Off" },
- {0x16, 0x01, 0x04, 0x00, "On" },
-};
-
-STDDIPINFO(Yiear)
-
-static void yiear_write(UINT16 address, UINT8 data)
-{
- switch (address)
- {
- case 0x4000:
- *flipscreen = data & 0x01;
- *nmi_enable = data & 0x02;
- *irq_enable = data & 0x04;
- // coincounter = data & 0x18; (0 -> 8, 1 -> 10)
- return;
-
- case 0x4800:
- sn76496_latch = data;
- return;
-
- case 0x4900:
- SN76496Write(0, sn76496_latch);
- return;
-
- case 0x4a00:
- vlm5030_st(0, (data >> 1) & 1);
- vlm5030_rst(0, (data >> 2) & 1);
- return;
-
- case 0x4b00:
- vlm5030_data_write(0, data);
- return;
- }
-}
-
-static UINT8 yiear_read(UINT16 address)
-{
- switch (address)
- {
- case 0x0000:
- return vlm5030_bsy(0) ? 1 : 0;
-
- case 0x4c00:
- return DrvDips[1];
-
- case 0x4d00:
- return DrvDips[2];
-
- case 0x4e00:
- return DrvInputs[0];
-
- case 0x4e01:
- return DrvInputs[1];
-
- case 0x4e02:
- return DrvInputs[2];
-
- case 0x4e03:
- return DrvDips[2];
- }
-
- return 0;
-}
-
-static UINT32 vlm_sync(INT32 samples_rate)
-{
- return (samples_rate * M6809TotalCycles()) / 25600;
-}
-
-static INT32 DrvDoReset()
-{
- memset (AllRam, 0, RamEnd - AllRam);
-
- M6809Open(0);
- M6809Reset();
- M6809Close();
-
- vlm5030Reset(0);
-
- sn76496_latch = 0;
-
- HiscoreReset();
-
- return 0;
-}
-
-static INT32 MemIndex()
-{
- UINT8 *Next; Next = AllMem;
-
- DrvM6809ROM = Next; Next += 0x008000;
-
- DrvGfxROM0 = Next; Next += 0x008000;
- DrvGfxROM1 = Next; Next += 0x020000;
-
- DrvVLMROM = Next; Next += 0x002000;
-
- DrvColPROM = Next; Next += 0x000020;
-;
- DrvPalette = (UINT32*)Next; Next += 0x20 * sizeof(UINT32);
-
- AllRam = Next;
-
- DrvM6809RAM = Next; // 0x800
- DrvSprRAM0 = Next; Next += 0x000400;
- DrvSprRAM1 = Next; Next += 0x000400;
-
- DrvVidRAM = Next; Next += 0x000800;
-
- flipscreen = Next; Next += 0x000001;
- nmi_enable = Next; Next += 0x000001;
- irq_enable = Next; Next += 0x000001;
-
- RamEnd = Next;
- MemEnd = Next;
-
- return 0;
-}
-
-static void DrvGfxDecode()
-{
- INT32 Plane0[4] = { 4, 0, (0x2000*8)+4, (0x2000*8)+0 };
- INT32 Plane1[4] = { 4, 0, (0x8000*8)+4, (0x8000*8)+0 };
- INT32 XOffs[16] = { STEP4(0,1), STEP4(64,1), STEP4(128,1), STEP4(192,1) };
- INT32 YOffs[16] = { STEP8(0,8), STEP8(256,8) };
-
- UINT8 *tmp = (UINT8*)BurnMalloc(0x10000);
-
- memcpy (tmp, DrvGfxROM0, 0x04000);
-
- GfxDecode(0x200, 4, 8, 8, Plane0, XOffs, YOffs, 0x080, tmp, DrvGfxROM0);
-
- memcpy (tmp, DrvGfxROM1, 0x10000);
-
- GfxDecode(0x200, 4, 16, 16, Plane1, XOffs, YOffs, 0x200, tmp, DrvGfxROM1);
-
- BurnFree(tmp);
-}
-
-static void DrvPaletteInit()
-{
- for (INT32 i = 0; i < 32; i++)
- {
- INT32 bit0 = (DrvColPROM[i] >> 0) & 0x01;
- INT32 bit1 = (DrvColPROM[i] >> 1) & 0x01;
- INT32 bit2 = (DrvColPROM[i] >> 2) & 0x01;
- INT32 r = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
-
- bit0 = (DrvColPROM[i] >> 3) & 0x01;
- bit1 = (DrvColPROM[i] >> 4) & 0x01;
- bit2 = (DrvColPROM[i] >> 5) & 0x01;
- INT32 g = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
-
- bit0 = 0;
- bit1 = (DrvColPROM[i] >> 6) & 0x01;
- bit2 = (DrvColPROM[i] >> 7) & 0x01;
- INT32 b = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
-
- DrvPalette[i] = BurnHighCol(r,g,b,0);
- }
-}
-
-static INT32 DrvInit()
-{
-// BurnSetRefreshRate(60.58);
-
- AllMem = NULL;
- MemIndex();
- INT32 nLen = MemEnd - (UINT8 *)0;
- if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
- memset(AllMem, 0, nLen);
- MemIndex();
-
- {
- if (BurnLoadRom(DrvM6809ROM + 0x0000, 0, 1)) return 1;
- if (BurnLoadRom(DrvM6809ROM + 0x4000, 1, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM0 + 0x0000, 2, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM0 + 0x2000, 3, 1)) return 1;
-
- if (BurnLoadRom(DrvGfxROM1 + 0x0000, 4, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x4000, 5, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0x8000, 6, 1)) return 1;
- if (BurnLoadRom(DrvGfxROM1 + 0xc000, 7, 1)) return 1;
-
- if (BurnLoadRom(DrvColPROM + 0x0000, 8, 1)) return 1;
-
- if (BurnLoadRom(DrvVLMROM + 0x0000, 9, 1)) return 1;
-
- DrvGfxDecode();
- DrvPaletteInit();
- }
-
- M6809Init(1);
- M6809Open(0);
- M6809MapMemory(DrvM6809RAM, 0x5000, 0x57ff, MAP_RAM);
- M6809MapMemory(DrvVidRAM, 0x5800, 0x5fff, MAP_RAM);
- M6809MapMemory(DrvM6809ROM, 0x8000, 0xffff, MAP_ROM);
- M6809SetWriteHandler(yiear_write);
- M6809SetReadHandler(yiear_read);
- M6809Close();
-
- SN76489AInit(0, 1536000, 0);
- SN76496SetRoute(0, 1.00, BURN_SND_ROUTE_BOTH);
-
- vlm5030Init(0, 3579545, vlm_sync, DrvVLMROM, 0x2000, 1);
- vlm5030SetAllRoutes(0, 1.00, BURN_SND_ROUTE_BOTH);
-
- GenericTilesInit();
-
- DrvDoReset();
-
- return 0;
-}
-
-static INT32 DrvExit()
-{
- GenericTilesExit();
-
- M6809Exit();
- vlm5030Exit();
- SN76496Exit();
-
- BurnFree (AllMem);
-
- return 0;
-}
-
-static void draw_layer()
-{
- for (INT32 offs = 32 * 2; offs < 32 * 30; offs++)
- {
- INT32 sx = (offs & 0x1f) * 8;
- INT32 sy = ((offs / 0x20) * 8) - 16;
-
- INT32 attr = DrvVidRAM[offs*2+0];
- INT32 code = DrvVidRAM[offs*2+1] | ((attr & 0x10) << 4);
- INT32 flipx = attr & 0x80;
- INT32 flipy = attr & 0x40;
-
- if (flipy) {
- if (flipx) {
- Render8x8Tile_FlipXY(pTransDraw, code, sx, sy, 0, 4, 0x10, DrvGfxROM0);
- } else {
- Render8x8Tile_FlipY(pTransDraw, code, sx, sy, 0, 4, 0x10, DrvGfxROM0);
- }
- } else {
- if (flipx) {
- Render8x8Tile_FlipX(pTransDraw, code, sx, sy, 0, 4, 0x10, DrvGfxROM0);
- } else {
- Render8x8Tile(pTransDraw, code, sx, sy, 0, 4, 0x10, DrvGfxROM0);
- }
- }
- }
-}
-
-static void draw_sprites()
-{
- for (INT32 offs = 0x30 - 2; offs >= 0; offs -= 2)
- {
- INT32 attr = DrvSprRAM0[offs + 0];
- INT32 code = DrvSprRAM1[offs + 1] + 256 * (attr & 0x01);
- INT32 flipx = ~attr & 0x40;
- INT32 flipy = attr & 0x80;
- INT32 sy = 240 - DrvSprRAM0[offs + 1];
- INT32 sx = DrvSprRAM1 [offs + 0];
-
- if (0) // if (*flipscreen)
- {
- sy = 240 - sy;
- flipy = !flipy;
- }
-
- if (offs < 0x26) sy++;
-
- if (flipy) {
- if (flipx) {
- Render16x16Tile_Mask_FlipXY_Clip(pTransDraw, code, sx, sy - 16, 0, 4, 0, 0, DrvGfxROM1);
- } else {
- Render16x16Tile_Mask_FlipY_Clip(pTransDraw, code, sx, sy - 16, 0, 4, 0, 0, DrvGfxROM1);
- }
- } else {
- if (flipx) {
- Render16x16Tile_Mask_FlipX_Clip(pTransDraw, code, sx, sy - 16, 0, 4, 0, 0, DrvGfxROM1);
- } else {
- Render16x16Tile_Mask_Clip(pTransDraw, code, sx, sy - 16, 0, 4, 0, 0, DrvGfxROM1);
- }
- }
- }
-}
-
-static INT32 DrvDraw()
-{
- if (DrvRecalc) {
- DrvPaletteInit();
- DrvRecalc = 0;
- }
-
- draw_layer();
- draw_sprites();
-
- BurnTransferCopy(DrvPalette);
-
- return 0;
-}
-
-static INT32 DrvFrame()
-{
- if (DrvReset) {
- DrvDoReset();
- }
-
- {
- memset (DrvInputs, 0xff, 3);
- for (INT32 i = 0; i < 8; i++) {
- DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
- DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
- DrvInputs[2] ^= (DrvJoy3[i] & 1) << i;
- }
- }
-
- M6809NewFrame();
-
- INT32 nInterleave = 256;
- INT32 nCyclesTotal[1] = { 1536000 / 60 };
- INT32 nCyclesDone[1] = { 0 };
- INT32 nSoundBufferPos = 0;
-
- M6809Open(0);
-
- for (INT32 i = 0; i < nInterleave; i++)
- {
- nCyclesDone[0] += M6809Run(nCyclesTotal[0] / nInterleave);
-
- if (*nmi_enable && (i & 0x1f) == 0) // copy shao-lin's road
- M6809SetIRQLine(0x20, CPU_IRQSTATUS_AUTO); // 480x/second (8x/frame)
-
- if (i == 240 && *irq_enable) M6809SetIRQLine(0, CPU_IRQSTATUS_AUTO);
-
- // Render Sound Segment
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen / nInterleave;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- SN76496Update(0, pSoundBuf, nSegmentLength);
- nSoundBufferPos += nSegmentLength;
- }
- }
-
- // Make sure the buffer is entirely filled.
- if (pBurnSoundOut) {
- INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
- INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
- if (nSegmentLength) {
- SN76496Update(0, pSoundBuf, nSegmentLength);
- }
- // vlm5030 won't interlace, so just run it at the end of the frame..
- vlm5030Update(0, pBurnSoundOut, nBurnSoundLen);
- }
-
- M6809Close();
-
- if (pBurnDraw) {
- DrvDraw();
- }
-
- return 0;
-}
-
-static INT32 DrvScan(INT32 nAction,INT32 *pnMin)
-{
- struct BurnArea ba;
-
- if (pnMin) {
- *pnMin = 0x029705;
- }
-
- if (nAction & ACB_VOLATILE) {
- memset(&ba, 0, sizeof(ba));
- ba.Data = AllRam;
- ba.nLen = RamEnd - AllRam;
- ba.szName = "All Ram";
- BurnAcb(&ba);
-
- M6809Scan(nAction);
-
- vlm5030Scan(nAction);
- SN76496Scan(nAction, pnMin);
-
- SCAN_VAR(sn76496_latch);
- }
-
- return 0;
-}
-
-
-// Yie Ar Kung-Fu (program code I)
-
-static struct BurnRomInfo yiearRomDesc[] = {
- { "407_i08.10d", 0x4000, 0xe2d7458b, 1 | BRF_PRG | BRF_ESS }, // 0 M6809 Code
- { "407_i07.8d", 0x4000, 0x7db7442e, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "407_c01.6h", 0x2000, 0xb68fd91d, 2 | BRF_GRA }, // 2 Background Tiles
- { "407_c02.7h", 0x2000, 0xd9b167c6, 2 | BRF_GRA }, // 3
-
- { "407_d05.16h", 0x4000, 0x45109b29, 3 | BRF_GRA }, // 4 Sprites
- { "407_d06.17h", 0x4000, 0x1d650790, 3 | BRF_GRA }, // 5
- { "407_d03.14h", 0x4000, 0xe6aa945b, 3 | BRF_GRA }, // 6
- { "407_d04.15h", 0x4000, 0xcc187c22, 3 | BRF_GRA }, // 7
-
- { "407c10.1g", 0x0020, 0xc283d71f, 4 | BRF_GRA }, // 8 Color PROM
-
- { "407_c09.8b", 0x2000, 0xf75a1539, 5 | BRF_GRA }, // 9 VLM Samples
-};
-
-STD_ROM_PICK(yiear)
-STD_ROM_FN(yiear)
-
-struct BurnDriver BurnDrvYiear = {
- "yiear", NULL, NULL, NULL, "1985",
- "Yie Ar Kung-Fu (program code I)\0", NULL, "Konami", "GX407",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_KONAMI, GBF_VSFIGHT, 0,
- NULL, yiearRomInfo, yiearRomName, NULL, NULL, YiearInputInfo, YiearDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x20,
- 256, 224, 4, 3
-};
-
-
-// Yie Ar Kung-Fu (program code G)
-
-static struct BurnRomInfo yiear2RomDesc[] = {
- { "407_g08.10d", 0x4000, 0x49ecd9dd, 1 | BRF_PRG | BRF_ESS }, // 0 M6809 Code
- { "407_g07.8d", 0x4000, 0xbc2e1208, 1 | BRF_PRG | BRF_ESS }, // 1
-
- { "407_c01.6h", 0x2000, 0xb68fd91d, 2 | BRF_GRA }, // 2 Background Tiles
- { "407_c02.7h", 0x2000, 0xd9b167c6, 2 | BRF_GRA }, // 3
-
- { "407_d05.16h", 0x4000, 0x45109b29, 3 | BRF_GRA }, // 4 Sprites
- { "407_d06.17h", 0x4000, 0x1d650790, 3 | BRF_GRA }, // 5
- { "407_d03.14h", 0x4000, 0xe6aa945b, 3 | BRF_GRA }, // 6
- { "407_d04.15h", 0x4000, 0xcc187c22, 3 | BRF_GRA }, // 7
-
- { "407c10.1g", 0x0020, 0xc283d71f, 4 | BRF_GRA }, // 8 Color PROM
-
- { "407_c09.8b", 0x2000, 0xf75a1539, 5 | BRF_GRA }, // 9 VLM Samples
-};
-
-STD_ROM_PICK(yiear2)
-STD_ROM_FN(yiear2)
-
-struct BurnDriver BurnDrvYiear2 = {
- "yiear2", "yiear", NULL, NULL, "1985",
- "Yie Ar Kung-Fu (program code G)\0", NULL, "Konami", "GX407",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_CLONE | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_KONAMI, GBF_VSFIGHT, 0,
- NULL, yiear2RomInfo, yiear2RomName, NULL, NULL, YiearInputInfo, YiearDIPInfo,
- DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x20,
- 256, 224, 4, 3
-};
diff --git a/jan/src/burn/drv/konami/k007342_k007420.cpp b/jan/src/burn/drv/konami/k007342_k007420.cpp
deleted file mode 100644
index 9e7946e56..000000000
--- a/jan/src/burn/drv/konami/k007342_k007420.cpp
+++ /dev/null
@@ -1,420 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:Fabio Priuli,Acho A. Tang, R. Belmont
-
-#include "tiles_generic.h"
-
-#define K007342_OPAQUE (1<<16)
-
-UINT8 *K007342VidRAM[1] = { NULL };
-UINT8 *K007342ScrRAM[1] = { NULL };
-UINT8 K007342Regs[1][8];
-
-static INT32 GlobalXOffsets = 0;
-static INT32 GlobalYOffsets = 0;
-static UINT8 *GfxBase;
-static UINT8 *ColorRAM[2];
-static UINT8 *VideoRAM[2];
-
-static void (*pCallback)(INT32 layer, INT32 bank, INT32 *code, INT32 *color, INT32 *flags) = NULL;
-
-void K007342Init(UINT8 *gfx, void (*Callback)(INT32 layer, INT32 bank, INT32 *code, INT32 *color, INT32 *flags))
-{
- GfxBase = gfx;
- pCallback = Callback;
-
- for (INT32 i = 0; i < 2; i++) {
- ColorRAM[i] = K007342VidRAM[0] + i * 0x1000;
- VideoRAM[i] = ColorRAM[i] + 0x0800;
- }
-
- GlobalXOffsets = 0;
- GlobalYOffsets = 0;
-}
-
-void K007342SetOffsets(INT32 x, INT32 y)
-{
- GlobalXOffsets = x;
- GlobalYOffsets = y;
-}
-
-void K007342Reset()
-{
- memset (K007342Regs[0], 0, 8);
-}
-
-INT32 K007342_irq_enabled()
-{
- return (K007342Regs[0][0] & 0x02);
-}
-
-void K007342DrawLayer(INT32 layer, INT32 baseflags, INT32 /*priority*/)
-{
-// INT32 flipscreen = K007342Regs[0][0] & 0x10;
-
- INT32 scrollx0 = ((K007342Regs[0][2] & 0x01) * 256) + K007342Regs[0][3];
- INT32 scrollx1 = ((K007342Regs[0][2] & 0x02) * 128) + K007342Regs[0][5];
- INT32 scrolly0 = K007342Regs[0][4];
- INT32 scrolly1 = K007342Regs[0][6];
-
- INT32 scrollx = ((layer) ? scrollx1 : scrollx0);
- INT32 scrolly = ((layer) ? scrolly1 : scrolly0);
-
- scrollx = (scrollx + GlobalXOffsets) & 0x1ff;
- scrolly = (scrolly + GlobalYOffsets) & 0xff;
-
- INT32 scroll_ctrl = K007342Regs[0][2] & 0x1c;
- INT32 opaque = baseflags & K007342_OPAQUE;
- INT32 category_select = baseflags & 1;
-
- if (scroll_ctrl == 0x00 || scroll_ctrl == 0x08 || layer == 1)
- {
- for (INT32 offs = 0; offs < 64 * 32; offs++)
- {
- INT32 sx = (offs & 0x3f) * 8;
- INT32 sy = (offs / 0x40) * 8;
-
- INT32 ofst = (offs & 0x1f) + (((offs / 0x40) + (offs & 0x20)) * 0x20);
-
- sx -= scrollx;
- if (sx < -7) sx += 512;
- sy -= scrolly;
- if (sy < -7) sy += 256;
- if (sx >= nScreenWidth || sy >= nScreenHeight) continue;
-
- INT32 code = VideoRAM[layer][ofst];
- INT32 color = ColorRAM[layer][ofst];
-
- INT32 flags = (color >> 4) & 3;
-
- INT32 category = (color >> 7) & 1;
- if (category_select != category) continue; // right?
-
- if (pCallback) {
- pCallback(layer, K007342Regs[0][1], &code, &color, &flags);
- }
-
- INT32 flipx = flags & 1;
- INT32 flipy = flags & 2;
-
- if (opaque) {
- if (flipy) {
- if (flipx) {
- Render8x8Tile_FlipXY_Clip(pTransDraw, code, sx, sy, color, 4, 0, GfxBase);
- } else {
- Render8x8Tile_FlipY_Clip(pTransDraw, code, sx, sy, color, 4, 0, GfxBase);
- }
- } else {
- if (flipx) {
- Render8x8Tile_FlipX_Clip(pTransDraw, code, sx, sy, color, 4, 0, GfxBase);
- } else {
- Render8x8Tile_Clip(pTransDraw, code, sx, sy, color, 4, 0, GfxBase);
- }
- }
- } else {
- if (flipy) {
- if (flipx) {
- Render8x8Tile_Mask_FlipXY_Clip(pTransDraw, code, sx, sy, color, 4, 0, 0, GfxBase);
- } else {
- Render8x8Tile_Mask_FlipY_Clip(pTransDraw, code, sx, sy, color, 4, 0, 0, GfxBase);
- }
- } else {
- if (flipx) {
- Render8x8Tile_Mask_FlipX_Clip(pTransDraw, code, sx, sy, color, 4, 0, 0, GfxBase);
- } else {
- Render8x8Tile_Mask_Clip(pTransDraw, code, sx, sy, color, 4, 0, 0, GfxBase);
- }
- }
- }
- }
- }
- else if (scroll_ctrl == 0x0c) // 32 columns
- {
- for (INT32 y = 0; y < nScreenHeight + 8; y+=8)
- {
- for (INT32 x = 0; x < nScreenWidth + 8; x+=8)
- {
- INT32 sxx = (scrollx + x) & 0x1ff;
-
- INT32 yscroll = (K007342ScrRAM[0][((sxx/8)&0x1f) * 2] + (K007342ScrRAM[0][((sxx/8)&0x1f) * 2 + 1] * 256) + GlobalYOffsets) & 0xff;
-
- INT32 syy = (yscroll + y) & 0xff;
-
- INT32 ofst = ((sxx / 8) & 0x1f) + (((syy / 8) + ((sxx / 8) & 0x20)) * 0x20);
-
- INT32 code = VideoRAM[layer][ofst];
- INT32 color = ColorRAM[layer][ofst];
-
- INT32 flags = (color >> 4) & 3;
- INT32 category = color >> 7;
-
- if (category_select != category) continue; // right?
-
- if (pCallback) {
- pCallback(layer, K007342Regs[0][1], &code, &color, &flags);
- }
-
- INT32 flipx = (flags & 1) * 0x07;
- INT32 flipy = (flags & 2) * 0x38;
-
- if (opaque) {
- if (flipy) {
- if (flipx) {
- Render8x8Tile_FlipXY_Clip(pTransDraw, code, x - (scrollx & 7), y - (yscroll & 7), color, 4, 0, GfxBase);
- } else {
- Render8x8Tile_FlipY_Clip(pTransDraw, code, x - (scrollx & 7), y - (yscroll & 7), color, 4, 0, GfxBase);
- }
- } else {
- if (flipx) {
- Render8x8Tile_FlipX_Clip(pTransDraw, code, x - (scrollx & 7), y - (yscroll & 7), color, 4, 0, GfxBase);
- } else {
- Render8x8Tile_Clip(pTransDraw, code, x - (scrollx & 7), y - (yscroll & 7), color, 4, 0, GfxBase);
- }
- }
- } else {
- if (flipy) {
- if (flipx) {
- Render8x8Tile_Mask_FlipXY_Clip(pTransDraw, code, x - (scrollx & 7), y - (yscroll & 7), color, 4, 0, 0, GfxBase);
- } else {
- Render8x8Tile_Mask_FlipY_Clip(pTransDraw, code, x - (scrollx & 7), y - (yscroll & 7), color, 4, 0, 0, GfxBase);
- }
- } else {
- if (flipx) {
- Render8x8Tile_Mask_FlipX_Clip(pTransDraw, code, x - (scrollx & 7), y - (yscroll & 7), color, 4, 0, 0, GfxBase);
- } else {
- Render8x8Tile_Mask_Clip(pTransDraw, code, x - (scrollx & 7), y - (yscroll & 7), color, 4, 0, 0, GfxBase);
- }
- }
- }
- }
- }
- }
- else if (scroll_ctrl == 0x14) // 256 rows
- {
- for (INT32 y = 0; y < nScreenHeight; y++)
- {
- INT32 syy = (y + scrolly) & 0xff;
- INT32 xscroll = (K007342ScrRAM[0][syy * 2] + (K007342ScrRAM[0][syy * 2 + 1] * 256) + GlobalXOffsets) & 0x1ff;
-
- UINT16 *dest = pTransDraw + y * nScreenWidth;
-
- for (INT32 x = 0; x < nScreenWidth + 8; x += 8)
- {
- INT32 sxx = (xscroll + x) & 0x1ff;
- INT32 ofst = ((sxx / 8) & 0x1f) + (((syy / 8) + ((sxx / 8) & 0x20)) * 0x20);
-
-// return (col & 0x1f) + ((row & 0x1f) << 5) + ((col & 0x20) << 5);
-
- INT32 code = VideoRAM[layer][ofst];
- INT32 color = ColorRAM[layer][ofst];
-
- INT32 flags = (color >> 4) & 3;
- INT32 category = color >> 7;
-
- if (category_select != category) continue; // right?
-
- if (pCallback) {
- pCallback(layer, K007342Regs[0][1], &code, &color, &flags);
- }
-
- INT32 flipx = (flags & 1) * 0x07;
- INT32 flipy = (flags & 2) * 0x38;
-
- {
- color *= 16;
- INT32 sxxx = x - (xscroll & 7);
- UINT8 *base = GfxBase + (code * 0x40) + (((y & 7) * 8) ^ flipy);
-
- for (INT32 xx = 0; xx < 8; xx++, sxxx++)
- {
- if (sxxx < 0) continue;
- if (sxxx >= nScreenWidth) break;
-
- INT32 pxl = base[xx ^ flipx];
-
- if (pxl || opaque) {
- dest[sxxx] = pxl + color;
- }
- }
- }
- }
- }
- }
-}
-
-INT32 K007342Scan(INT32 nAction)
-{
- if (nAction & ACB_DRIVER_DATA) {
- SCAN_VAR(K007342Regs);
- }
-
- return 0;
-}
-
-static INT32 K007420GlobalXOffset = 0;
-static INT32 K007420GlobalYOffset = 0;
-
-UINT8 *K007420RAM[1] = { NULL };
-static INT32 K007420_banklimit = ~0;
-static void (*pSprCallback)(INT32 *code, INT32 *color) = NULL;
-
-void K007420Init(INT32 banklimit, void (*Callback)(INT32 *code, INT32 *color))
-{
- pSprCallback = Callback;
- K007420_banklimit = banklimit;
-
- K007420GlobalXOffset = K007420GlobalYOffset = 0;
-}
-
-void K007420SetOffsets(INT32 x, INT32 y)
-{
- K007420GlobalXOffset = x;
- K007420GlobalYOffset = y;
-}
-
-void K007420DrawSprites(UINT8 *gfxbase)
-{
- INT32 codemask = K007420_banklimit;
- INT32 bankmask = ~K007420_banklimit;
-
- UINT8 *m_ram = K007420RAM[0];
-
- for (INT32 offs = 0x200 - 8; offs >= 0; offs -= 8)
- {
- INT32 ox, oy, code, color, flipx, flipy, zoom, w, h, x, y, bank;
- static const INT32 xoffset[4] = { 0, 1, 4, 5 };
- static const INT32 yoffset[4] = { 0, 2, 8, 10 };
-
- code = m_ram[offs + 1];
- color = m_ram[offs + 2];
- ox = m_ram[offs + 3] - ((m_ram[offs + 4] & 0x80) << 1);
- oy = 256 - m_ram[offs + 0];
- flipx = m_ram[offs + 4] & 0x04;
- flipy = m_ram[offs + 4] & 0x08;
-
- pSprCallback(&code, &color);
-
- bank = code & bankmask;
- code &= codemask;
-
- zoom = m_ram[offs + 5] | ((m_ram[offs + 4] & 0x03) << 8);
- if (!zoom)
- continue;
- zoom = 0x10000 * 128 / zoom;
-
- switch (m_ram[offs + 4] & 0x70)
- {
- case 0x30: w = h = 1; break;
- case 0x20: w = 2; h = 1; code &= (~1); break;
- case 0x10: w = 1; h = 2; code &= (~2); break;
- case 0x00: w = h = 2; code &= (~3); break;
- case 0x40: w = h = 4; code &= (~3); break;
- default: w = 1; h = 1;
- }
-
- if (K007342Regs[0][2] & 0x10)
- {
- ox = 256 - ox - ((zoom * w + (1 << 12)) >> 13);
- oy = 256 - oy - ((zoom * h + (1 << 12)) >> 13);
- flipx = !flipx;
- flipy = !flipy;
- }
-
- if (zoom == 0x10000)
- {
- INT32 sx, sy;
-
- for (y = 0; y < h; y++)
- {
- sy = oy + 8 * y;
-
- for (x = 0; x < w; x++)
- {
- INT32 c = code;
-
- sx = ox + 8 * x;
- if (flipx)
- c += xoffset[(w - 1 - x)];
- else
- c += xoffset[x];
-
- if (flipy)
- c += yoffset[(h - 1 - y)];
- else
- c += yoffset[y];
-
- if (c & bankmask)
- continue;
- else
- c += bank;
-
- if (flipy) {
- if (flipx) {
- Render8x8Tile_Mask_FlipXY_Clip(pTransDraw, c, sx - K007420GlobalXOffset, sy - K007420GlobalYOffset, color, 4, 0, 0, gfxbase);
- } else {
- Render8x8Tile_Mask_FlipY_Clip(pTransDraw, c, sx - K007420GlobalXOffset, sy - K007420GlobalYOffset, color, 4, 0, 0, gfxbase);
- }
- } else {
- if (flipx) {
- Render8x8Tile_Mask_FlipX_Clip(pTransDraw, c, sx - K007420GlobalXOffset, sy - K007420GlobalYOffset, color, 4, 0, 0, gfxbase);
- } else {
- Render8x8Tile_Mask_Clip(pTransDraw, c, sx - K007420GlobalXOffset, sy - K007420GlobalYOffset, color, 4, 0, 0, gfxbase);
- }
- }
-
- if (K007342Regs[0][2] & 0x80) { // wrap
- if (flipy) {
- if (flipx) {
- Render8x8Tile_Mask_FlipXY_Clip(pTransDraw, c, sx - K007420GlobalXOffset, (sy-K007420GlobalYOffset)-256, color, 4, 0, 0, gfxbase);
- } else {
- Render8x8Tile_Mask_FlipY_Clip(pTransDraw, c, sx - K007420GlobalXOffset, (sy-K007420GlobalYOffset)-256, color, 4, 0, 0, gfxbase);
- }
- } else {
- if (flipx) {
- Render8x8Tile_Mask_FlipX_Clip(pTransDraw, c, sx - K007420GlobalXOffset, (sy-K007420GlobalYOffset)-256, color, 4, 0, 0, gfxbase);
- } else {
- Render8x8Tile_Mask_Clip(pTransDraw, c, sx - K007420GlobalXOffset, (sy-K007420GlobalYOffset)-256, color, 4, 0, 0, gfxbase);
- }
- }
- }
- }
- }
- }
- else
- {
- INT32 sx, sy, zw, zh;
- for (y = 0; y < h; y++)
- {
- sy = oy + ((zoom * y + (1 << 12)) >> 13);
- zh = (oy + ((zoom * (y + 1) + (1 << 12)) >> 13)) - sy;
-
- for (x = 0; x < w; x++)
- {
- INT32 c = code;
-
- sx = ox + ((zoom * x + (1<<12)) >> 13);
- zw = (ox + ((zoom * (x + 1) + (1 << 12)) >> 13)) - sx;
- if (flipx)
- c += xoffset[(w - 1 - x)];
- else
- c += xoffset[x];
-
- if (flipy)
- c += yoffset[(h - 1 - y)];
- else
- c += yoffset[y];
-
- if (c & bankmask)
- continue;
- else
- c += bank;
-
- RenderZoomedTile(pTransDraw, gfxbase, c, color*16, 0, sx - K007420GlobalXOffset, (sy-K007420GlobalYOffset), flipx, flipy, 8, 8, (zw << 16) / 8,(zh << 16) / 8);
-
- if (K007342Regs[0][2] & 0x80) { // wrap
- RenderZoomedTile(pTransDraw, gfxbase, c, color*16, 0, sx - K007420GlobalXOffset, (sy-K007420GlobalYOffset)-256, flipx, flipy, 8, 8, (zw << 16) / 8,(zh << 16) / 8);
- }
- }
- }
- }
- }
-}
diff --git a/jan/src/burn/drv/konami/k007342_k007420.h b/jan/src/burn/drv/konami/k007342_k007420.h
deleted file mode 100644
index 27dfa90eb..000000000
--- a/jan/src/burn/drv/konami/k007342_k007420.h
+++ /dev/null
@@ -1,20 +0,0 @@
-extern UINT8 *K007342VidRAM[1];
-extern UINT8 *K007342ScrRAM[1];
-extern UINT8 K007342Regs[1][8];
-extern UINT8 *K007420RAM[1];
-
-void K007342Init(UINT8 *gfx, void (*Callback)(INT32 layer, INT32 bank, INT32 *code, INT32 *color, INT32 *flags));
-void K007342SetOffsets(INT32 x, INT32 y);
-void K007342Reset();
-INT32 K007342_irq_enabled();
-
-#define K007342_OPAQUE (1<<16)
-
-void K007342DrawLayer(INT32 layer, INT32 baseflags, INT32 priority);
-INT32 K007342Scan(INT32 nAction);
-
-void K007420Init(INT32 banklimit, void (*Callback)(INT32 *code, INT32 *color));
-void K007420SetOffsets(INT32 x, INT32 y);
-void K007420DrawSprites(UINT8 *gfxbase);
-
-
diff --git a/jan/src/burn/drv/konami/k051316.cpp b/jan/src/burn/drv/konami/k051316.cpp
deleted file mode 100644
index 34e6e0338..000000000
--- a/jan/src/burn/drv/konami/k051316.cpp
+++ /dev/null
@@ -1,362 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:Fabio Priuli,Acho A. Tang, R. Belmont
-
-#include "tiles_generic.h"
-#include "konamiic.h"
-
-static UINT16 *K051316TileMap[3];
-static void (*K051316Callback[3])(INT32 *code,INT32 *color,INT32 *flags);
-static INT32 K051316Depth[3];
-static INT32 K051316TransColor[3];
-static UINT32 K051316TransMask[3];
-static UINT8 *K051316Gfx[3];
-static UINT8 *K051316GfxExp[3];
-static INT32 K051316Mask[3];
-static INT32 K051316Offs[3][2];
-
-static UINT8 *K051316Ram[3];
-static UINT8 K051316Ctrl[3][16];
-static UINT8 K051316Wrap[3];
-
-// Decode 4bpp graphics
-static void K051316GfxExpand(UINT8 *src, UINT8 *dst, INT32 len)
-{
- for (INT32 i = 0; i < len; i++) {
- INT32 d = src[i];
- dst[i * 2 + 0] = d >> 4;
- dst[i * 2 + 1] = d & 0x0f;
- }
-}
-
-void K051316Init(INT32 chip, UINT8 *gfx, UINT8 *gfxexp, INT32 mask, void (*callback)(INT32 *code,INT32 *color,INT32 *flags), INT32 bpp, INT32 transp)
-{
- K051316Ram[chip] = (UINT8*)BurnMalloc(0x800);
- K051316TileMap[chip] = (UINT16*)BurnMalloc(((32 * 16) * (32 * 16)) * sizeof(UINT16));
-
- K051316Callback[chip] = callback;
-
- K051316Depth[chip] = bpp;
- K051316Gfx[chip] = gfx;
- K051316GfxExp[chip] = gfxexp;
-
- K051316Mask[chip] = mask;
-
- if (bpp == 4) {
- K051316GfxExpand(gfx, gfxexp, mask+1);
- }
-
- KonamiAllocateBitmaps();
-
- KonamiIC_K051316InUse = 1;
-
- K051316Offs[chip][0] = K051316Offs[chip][1] = 0;
-
- K051316TransMask[chip] = 0;
- K051316TransColor[chip] = transp & 0xff;
-
- if (transp & 0x200) {
- K051316TransMask[chip] = transp & 0xff;
- K051316TransColor[chip] = 0;
- }
-}
-
-void K051316Reset()
-{
- for (INT32 i = 0; i < 3; i++)
- {
- if (K051316Ram[i]) {
- memset (K051316Ram[i], 0, 0x800);
- }
-
- memset (K051316Ctrl[i], 0, 16);
-
- K051316Wrap[i] = 0;
-
- if (K051316TileMap[i]) {
- memset (K051316TileMap[i], 0, (32 * 16) * (32 * 16) * sizeof(INT16));
- }
- }
-}
-
-void K051316Exit()
-{
- for (INT32 i = 0; i < 3; i++)
- {
- BurnFree (K051316Ram[i]);
- BurnFree (K051316TileMap[i]);
- K051316Callback[i] = NULL;
- }
-}
-
-void K051316SetOffset(INT32 chip, INT32 xoffs, INT32 yoffs)
-{
- K051316Offs[chip][0] = xoffs;
- K051316Offs[chip][1] = yoffs;
-}
-
-UINT8 K051316ReadRom(INT32 chip, INT32 offset)
-{
- if ((K051316Ctrl[chip][0x0e] & 0x01) == 0)
- {
- INT32 addr = offset + (K051316Ctrl[chip][0x0c] << 11) + (K051316Ctrl[chip][0x0d] << 19);
- if (K051316Depth[chip] <= 4) addr /= 2;
- addr &= K051316Mask[chip];
-
- return K051316Gfx[chip][addr];
- }
-
- return 0;
-}
-
-UINT8 K051316Read(INT32 chip, INT32 offset)
-{
- return K051316Ram[chip][offset];
-}
-
-static inline void K051316_write_tile(INT32 offset, INT32 chip)
-{
- offset &= 0x3ff;
-
- INT32 sx = (offset & 0x1f) << 4;
- INT32 sy = (offset >> 5) << 4;
-
- INT32 code = K051316Ram[chip][offset];
- INT32 color = K051316Ram[chip][offset + 0x400];
- INT32 flags = 0;
-
- (*K051316Callback[chip])(&code,&color,&flags);
-
- UINT8 *src = K051316GfxExp[chip] + (code * 16 * 16);
- UINT16 *dst;
-
- color <<= K051316Depth[chip];
-
- INT32 flipx = flags & 1;
- INT32 flipy = flags & 2;
- if (flipx) flipx = 0x0f;
- if (flipy) flipy = 0x0f;
-
- INT32 tmask = K051316TransMask[chip];
-
- for (INT32 y = 0; y < 16; y++, sy++)
- {
- dst = K051316TileMap[chip] + ((sy << 9) + sx);
-
- for (INT32 x = 0; x < 16; x++)
- {
- INT32 pxl = src[((y^flipy) << 4) | (x ^ flipx)];
-
- if (tmask) {
- if ((pxl & tmask) == tmask) {
- dst[x] = color | pxl;
- } else {
- dst[x] = 0x8000 | color | pxl;
- }
- } else {
- if (pxl != K051316TransColor[chip]) {
- dst[x] = color | pxl;
- } else {
- dst[x] = 0x8000 | color | pxl;
- }
- }
- }
- }
-}
-
-void K051316Write(INT32 chip, INT32 offset, INT32 data)
-{
- K051316Ram[chip][offset] = data;
- K051316_write_tile(offset & 0x3ff, chip);
-}
-
-void K051316WriteCtrl(INT32 chip, INT32 offset, INT32 data)
-{
- K051316Ctrl[chip][offset & 0x0f] = data;
-}
-
-void K051316WrapEnable(INT32 chip, INT32 status)
-{
- K051316Wrap[chip] = status;
-}
-
-static inline void copy_roz(INT32 chip, UINT32 startx, UINT32 starty, INT32 incxx, INT32 incxy, INT32 incyx, INT32 incyy, INT32 wrap, INT32 transp, INT32 flags)
-{
- UINT32 hshift = 512 << 16;
- UINT32 wshift = 512 << 16;
-
- if (flags & 0x200) transp = 0; // force opaque
-
- INT32 priority = flags & 0xff;
-
- if (flags & 0x100) // indexed colors
- {
- UINT16 *dst = pTransDraw;
- UINT16 *src = K051316TileMap[chip];
-
- for (INT32 sy = 0; sy < nScreenHeight; sy++, startx+=incyx, starty+=incyy)
- {
- UINT32 cx = startx;
- UINT32 cy = starty;
-
- if (wrap) {
- if (transp) {
- for (INT32 x = 0; x < nScreenWidth; x++, cx+=incxx, cy+=incxy, dst++)
- {
- INT32 pxl = src[(((cy >> 16) & 0x1ff) << 9) | ((cx >> 16) & 0x1ff)];
-
- if (!(pxl & 0x8000)) {
- *dst = pxl;
- }
- }
- } else {
- for (INT32 x = 0; x < nScreenWidth; x++, cx+=incxx, cy+=incxy, dst++) {
- *dst = src[(((cy >> 16) & 0x1ff) << 9) | ((cx >> 16) & 0x1ff)] & 0x7fff;
- }
- }
- } else {
- if (transp) {
- for (INT32 x = 0; x < nScreenWidth; x++, cx+=incxx, cy+=incxy, dst++)
- {
- if (cx < wshift && cy < hshift) {
- INT32 pxl = src[(((cy >> 16) & 0x1ff) << 9) | ((cx >> 16) & 0x1ff)];
- if (!(pxl & 0x8000)) {
- *dst = pxl;
- }
- }
- }
- } else {
- for (INT32 x = 0; x < nScreenWidth; x++, cx+=incxx, cy+=incxy, dst++)
- {
- UINT32 pos = ((cy >> 16) << 9) | (cx >> 16);
-
- if (pos >= 0x40000) continue;
-
- *dst = src[pos] & 0x7fff;
- }
- }
- }
- }
- }
- else // 32-bit colors
- {
- UINT32 *dst = konami_bitmap32;
- UINT8 *pri = konami_priority_bitmap;
- UINT16 *src = K051316TileMap[chip];
- UINT32 *pal = konami_palette32;
-
- for (INT32 sy = 0; sy < nScreenHeight; sy++, startx+=incyx, starty+=incyy)
- {
- UINT32 cx = startx;
- UINT32 cy = starty;
-
- if (wrap) {
- if (transp) {
- for (INT32 x = 0; x < nScreenWidth; x++, cx+=incxx, cy+=incxy, dst++, pri++)
- {
- INT32 pxl = src[(((cy >> 16) & 0x1ff) << 9) | ((cx >> 16) & 0x1ff)];
-
- if (!(pxl & 0x8000)) {
- *dst = pal[pxl];
- *pri = priority;
- }
- }
- } else {
- for (INT32 x = 0; x < nScreenWidth; x++, cx+=incxx, cy+=incxy, dst++, pri++) {
- *dst = pal[src[(((cy >> 16) & 0x1ff) << 9) | ((cx >> 16) & 0x1ff)] & 0x7fff];
- *pri = priority;
- }
- }
- } else {
- if (transp) {
- for (INT32 x = 0; x < nScreenWidth; x++, cx+=incxx, cy+=incxy, dst++, pri++)
- {
- if (cx < wshift && cy < hshift) {
- INT32 pxl = src[(((cy >> 16) & 0x1ff) << 9) | ((cx >> 16) & 0x1ff)];
- if (!(pxl & 0x8000)) {
- *dst = pal[pxl];
- *pri = priority;
- }
- }
- }
- } else {
- for (INT32 x = 0; x < nScreenWidth; x++, cx+=incxx, cy+=incxy, dst++, pri++)
- {
- UINT32 pos = ((cy >> 16) << 9) | (cx >> 16);
-
- if (pos >= 0x40000) continue;
-
- *dst = pal[src[pos] & 0x7fff];
- *pri = priority;
- }
- }
- }
- }
- }
-}
-
-void K051316_zoom_draw(INT32 chip, INT32 flags)
-{
- UINT32 startx,starty;
- INT32 incxx,incxy,incyx,incyy;
-
- startx = 256 * ((INT16)(256 * K051316Ctrl[chip][0x00] + K051316Ctrl[chip][0x01]));
- incxx = (INT16)(256 * K051316Ctrl[chip][0x02] + K051316Ctrl[chip][0x03]);
- incyx = (INT16)(256 * K051316Ctrl[chip][0x04] + K051316Ctrl[chip][0x05]);
- starty = 256 * ((INT16)(256 * K051316Ctrl[chip][0x06] + K051316Ctrl[chip][0x07]));
- incxy = (INT16)(256 * K051316Ctrl[chip][0x08] + K051316Ctrl[chip][0x09]);
- incyy = (INT16)(256 * K051316Ctrl[chip][0x0a] + K051316Ctrl[chip][0x0b]);
-
- startx -= (16 + K051316Offs[chip][1]) * incyx;
- starty -= (16 + K051316Offs[chip][1]) * incyy;
-
- startx -= (89 + K051316Offs[chip][0]) * incxx;
- starty -= (89 + K051316Offs[chip][0]) * incxy;
-
- INT32 transp = K051316TransColor[chip] + 1;
-
- copy_roz(chip, startx << 5,starty << 5,incxx << 5,incxy << 5,incyx << 5,incyy << 5, K051316Wrap[chip], transp, flags); // transp..
-}
-
-void K051316RedrawTiles(INT32 chip)
-{
- if (K051316Ram[chip]) {
- for (INT32 j = 0; j < 0x400; j++) {
- K051316_write_tile(j, chip);
- }
- }
-}
-
-void K051316Scan(INT32 nAction)
-{
- struct BurnArea ba;
-
- if (nAction & ACB_MEMORY_RAM) {
- for (INT32 i = 0; i < 3; i++) {
- if (K051316Ram[i]) {
- memset(&ba, 0, sizeof(ba));
- ba.Data = K051316Ram[i];
- ba.nLen = 0x800;
- ba.szName = "K052109 Ram";
- BurnAcb(&ba);
- }
-
- memset(&ba, 0, sizeof(ba));
- ba.Data = K051316Ctrl[i];
- ba.nLen = 0x010;
- ba.szName = "K052109 Control";
- BurnAcb(&ba);
- }
- }
-
- if (nAction & ACB_DRIVER_DATA) {
- SCAN_VAR(K051316Wrap[0]);
- SCAN_VAR(K051316Wrap[1]);
- SCAN_VAR(K051316Wrap[2]);
- }
-
- if (nAction & ACB_WRITE) {
- K051316RedrawTiles(0);
- K051316RedrawTiles(1);
- K051316RedrawTiles(2);
- }
-}
diff --git a/jan/src/burn/drv/konami/k051733.cpp b/jan/src/burn/drv/konami/k051733.cpp
deleted file mode 100644
index 7b07f46ef..000000000
--- a/jan/src/burn/drv/konami/k051733.cpp
+++ /dev/null
@@ -1,119 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:Fabio Priuli,Acho A. Tang, R. Belmont
-
-#include "burnint.h"
-
-static UINT8 K051733Ram[0x20];
-static UINT8 K051733RNG;
-
-void K051733Reset()
-{
- memset (K051733Ram, 0, 0x20);
- K051733RNG = 0;
-}
-
-void K051733Write(INT32 offset, INT32 data)
-{
- K051733Ram[offset & 0x1f] = data;
-}
-
-static INT32 int_sqrt(UINT32 op)
-{
- UINT32 i,step;
-
- i = 0x8000;
- step = 0x4000;
- while (step)
- {
- if (i*i == op) return i;
- else if (i*i > op) i -= step;
- else i += step;
- step >>= 1;
- }
- return i;
-}
-
-UINT8 K051733Read(INT32 offset)
-{
- INT32 op1 = (K051733Ram[0x00] << 8) | K051733Ram[0x01];
- INT32 op2 = (K051733Ram[0x02] << 8) | K051733Ram[0x03];
- INT32 op3 = (K051733Ram[0x04] << 8) | K051733Ram[0x05];
- INT32 rad = (K051733Ram[0x06] << 8) | K051733Ram[0x07];
- INT32 yobj1c = (K051733Ram[0x08] << 8) | K051733Ram[0x09];
- INT32 xobj1c = (K051733Ram[0x0a] << 8) | K051733Ram[0x0b];
- INT32 yobj2c = (K051733Ram[0x0c] << 8) | K051733Ram[0x0d];
- INT32 xobj2c = (K051733Ram[0x0e] << 8) | K051733Ram[0x0f];
-
- offset &= 0x1f;
-
- switch (offset)
- {
- case 0x00:
- if (op2) return (op1 / op2) >> 8;
- else return 0xff;
-
- case 0x01:
- if (op2) return (op1 / op2) & 0xff;
- else return 0xff;
-
- case 0x02:
- if (op2) return (op1 % op2) >> 8;
- else return 0xff;
-
- case 0x03:
- if (op2) return (op1 % op2) & 0xff;
- else return 0xff;
-
- case 0x04:
- return int_sqrt(op3<<16) >> 8;
-
- case 0x05:
- return int_sqrt(op3<<16) & 0xff;
-
- case 0x06:
- K051733RNG += K051733Ram[0x13];
- return K051733RNG;
-
- case 0x07: {
- if (xobj1c + rad < xobj2c)
- return 0xff;
-
- if (xobj2c + rad < xobj1c)
- return 0xff;
-
- if (yobj1c + rad < yobj2c)
- return 0xff;
-
- if (yobj2c + rad < yobj1c)
- return 0xff;
-
- return 0;
- }
-
- case 0x0e:
- return (xobj2c - xobj1c) >> 8;
-
- case 0x0f:
- return (xobj2c - xobj1c) & 0xff;
-
- default:
- return K051733Ram[offset];
- }
-
- return 0;
-}
-
-void K051733Scan(INT32 nAction)
-{
- struct BurnArea ba;
-
- if (nAction & ACB_MEMORY_RAM) {
- memset(&ba, 0, sizeof(ba));
- ba.Data = K051733Ram;
- ba.nLen = 0x20;
- ba.szName = "K051733 Ram";
- BurnAcb(&ba);
-
- SCAN_VAR(K051733RNG);
- }
-}
diff --git a/jan/src/burn/drv/konami/k051960.cpp b/jan/src/burn/drv/konami/k051960.cpp
deleted file mode 100644
index 9d6f20e84..000000000
--- a/jan/src/burn/drv/konami/k051960.cpp
+++ /dev/null
@@ -1,355 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:Fabio Priuli,Acho A. Tang, R. Belmont
-
-// K051960
-
-#include "tiles_generic.h"
-#include "konamiic.h"
-
-INT32 K051960_irq_enabled;
-INT32 K051960_nmi_enabled;
-INT32 K051960_spriteflip;
-
-static UINT8 *K051960Ram = NULL;
-static UINT8 K051960SpriteRomBank[3];
-INT32 K051960ReadRoms;
-static INT32 K051960RomOffset;
-static UINT8 *K051960Rom;
-static UINT32 K051960RomMask;
-static UINT8 *K051960RomExp;
-static UINT32 K051960RomExpMask;
-static UINT8 blank_tile[0x100];
-static INT32 nBpp = 0;
-
-static INT32 nSpriteXOffset;
-static INT32 nSpriteYOffset;
-
-typedef void (*K051960_Callback)(INT32 *Code, INT32 *Colour, INT32 *Priority, INT32 *Shadow);
-static K051960_Callback K051960Callback;
-
-void K051960SpritesRender(INT32 min_priority, INT32 max_priority)
-{
-#define NUM_SPRITES 128
- INT32 Offset, PriCode;
- INT32 SortedList[NUM_SPRITES];
-
- for (Offset = 0; Offset < NUM_SPRITES; Offset++) SortedList[Offset] = -1;
-
- for (Offset = 0; Offset < 0x400; Offset += 8) {
- if (K051960Ram[Offset] & 0x80) {
- if (max_priority == -1) /* draw front to back when using priority buffer */
- SortedList[(K051960Ram[Offset] & 0x7f) ^ 0x7f] = Offset;
- else
- SortedList[K051960Ram[Offset] & 0x7f] = Offset;
- }
- }
-
- for (PriCode = 0; PriCode < NUM_SPRITES; PriCode++) {
- INT32 ox, oy, Code, Colour, Pri, Shadow, Size, w, h, x, y, xFlip, yFlip, xZoom, yZoom;
-
- static const INT32 xOffset[8] = { 0, 1, 4, 5, 16, 17, 20, 21 };
- static const INT32 yOffset[8] = { 0, 2, 8, 10, 32, 34, 40, 42 };
- static const INT32 Width[8] = { 1, 2, 1, 2, 4, 2, 4, 8 };
- static const INT32 Height[8] = { 1, 1, 2, 2, 2, 4, 4, 8 };
-
- Offset = SortedList[PriCode];
- if (Offset == -1) continue;
-
- Code = K051960Ram[Offset + 2] + ((K051960Ram[Offset + 1] & 0x1f) << 8);
- Colour = K051960Ram[Offset + 3] & 0xff;
- Pri = 0;
- Shadow = Colour & 0x80;
- K051960Callback(&Code, &Colour, &Pri, &Shadow);
-
- if (max_priority != -1)
- if (Pri < min_priority || Pri > max_priority)
- continue;
-
- if (Pri == 1 && (nSpriteEnable & 2) == 0) continue;
- if (Pri == 2 && (nSpriteEnable & 4) == 0) continue;
- if (Pri == 3 && (nSpriteEnable & 8) == 0) continue;
-
- Size = (K051960Ram[Offset + 1] & 0xe0) >> 5;
- w = Width[Size];
- h = Height[Size];
-
- if (w >= 2) Code &= ~0x01;
- if (h >= 2) Code &= ~0x02;
- if (w >= 4) Code &= ~0x04;
- if (h >= 4) Code &= ~0x08;
- if (w >= 8) Code &= ~0x10;
- if (h >= 8) Code &= ~0x20;
-
- ox = (256 * K051960Ram[Offset + 6] + K051960Ram[Offset + 7]) & 0x01ff;
- oy = 256 - ((256 * K051960Ram[Offset + 4] + K051960Ram[Offset + 5]) & 0x01ff);
-
- xFlip = K051960Ram[Offset + 6] & 0x02;
- yFlip = K051960Ram[Offset + 4] & 0x02;
- xZoom = (K051960Ram[Offset + 6] & 0xfc) >> 2;
- yZoom = (K051960Ram[Offset + 4] & 0xfc) >> 2;
- xZoom = 0x10000 / 128 * (128 - xZoom);
- yZoom = 0x10000 / 128 * (128 - yZoom);
-
- if (xZoom == 0x10000 && yZoom == 0x10000) {
- INT32 sx,sy;
-
- for (y = 0; y < h; y++) {
- sy = oy + 16 * y;
- sy -= nSpriteYOffset;
- sy -= 16;
-
- for (x = 0; x < w; x++) {
- INT32 c = Code;
-
- sx = ox + 16 * x;
- if (xFlip) c += xOffset[(w - 1 - x) & 7];
- else c += xOffset[x];
- if (yFlip) c += yOffset[(h - 1 - y) & 7];
- else c += yOffset[y];
-
- sx &= 0x1ff;
- sx -= 104;
- sx -= nSpriteXOffset;
-
- c &= K051960RomExpMask;
-
- if (Shadow) {
- konami_render_zoom_shadow_tile(K051960RomExp, c, nBpp, Colour, sx, sy, xFlip, yFlip, 16, 16, 0x10000, 0x10000, (max_priority ==-1) ? Pri:0xffffffff, 0);
- } else {
- if (max_priority == -1) {
- konami_draw_16x16_prio_tile(K051960RomExp, c, nBpp, Colour, sx, sy, xFlip, yFlip, Pri);
- } else {
- konami_draw_16x16_tile(K051960RomExp, c, nBpp, Colour, sx, sy, xFlip, yFlip);
- }
- }
- }
- }
- } else {
- INT32 sx, sy, zw, zh;
-
- for (y = 0; y < h; y++) {
- sy = oy + ((yZoom * y + (1 << 11)) >> 12);
- zh = (oy + ((yZoom * (y + 1) + (1 << 11)) >> 12)) - sy;
- sy -=nSpriteYOffset;
- sy -= 16;
-
- for (x = 0; x < w; x++) {
- INT32 c = Code;
-
- sx = ox + ((xZoom * x + (1 << 11)) >> 12);
- zw = (ox + ((xZoom * (x + 1) + (1 << 11)) >> 12)) - sx;
- if (xFlip) c += xOffset[(w - 1 - x) & 7];
- else c += xOffset[x];
- if (yFlip) c += yOffset[(h - 1 - y) & 7];
- else c += yOffset[y];
-
- sx &= 0x1ff;
- sx -= 104;
- sx -= nSpriteXOffset;
-
- c &= K051960RomExpMask;
-
- if (Shadow) {
- konami_render_zoom_shadow_tile(K051960RomExp, c, nBpp, Colour, sx, sy, xFlip, yFlip, 16, 16, zw << 12, zh << 12, (max_priority ==-1) ? Pri:0xffffffff, 0);
- } else {
- if (max_priority == -1) {
- konami_draw_16x16_priozoom_tile(K051960RomExp, c, nBpp, Colour, 0, sx, sy, xFlip, yFlip, 16, 16, zw << 12, zh << 12, Pri);
- } else {
- konami_draw_16x16_zoom_tile(K051960RomExp, c, nBpp, Colour, 0, sx, sy, xFlip, yFlip, 16, 16, zw << 12, zh << 12);
- }
- }
- }
- }
- }
- }
-}
-
-UINT8 K0519060FetchRomData(UINT32 Offset)
-{
- INT32 Code, Colour, Pri, Shadow, Off1, Addr;
-
- Addr = K051960RomOffset + (K051960SpriteRomBank[0] << 8) + ((K051960SpriteRomBank[1] & 0x03) << 16);
- Code = (Addr & 0x3ffe0) >> 5;
- Off1 = Addr & 0x1f;
- Colour = ((K051960SpriteRomBank[1] & 0xfc) >> 2) + ((K051960SpriteRomBank[2] & 0x03) << 6);
- Pri = 0;
- Shadow = Colour & 0x80;
- K051960Callback(&Code, &Colour, &Pri, &Shadow);
-
- Addr = (Code << 7) | (Off1 << 2) | Offset;
- Addr &= K051960RomMask;
-
- return K051960Rom[Addr];
-}
-
-UINT8 K051960Read(UINT32 Offset)
-{
- if (K051960ReadRoms) {
- K051960RomOffset = (Offset & 0x3fc) >> 2;
- K0519060FetchRomData(Offset & 3);
- }
-
- return K051960Ram[Offset];
-}
-
-void K051960Write(UINT32 Offset, UINT8 Data)
-{
- K051960Ram[Offset] = Data;
-}
-
-
-UINT8 K052109_051960_r(INT32 offset)
-{
- if (K052109RMRDLine == 0)
- {
- if (offset >= 0x3800 && offset < 0x3808)
- return K051937Read(offset - 0x3800);
- else if (offset < 0x3c00)
- return K052109Read(offset);
- else
- return K051960Read(offset - 0x3c00);
- }
- else return K052109Read(offset);
-}
-
-void K052109_051960_w(INT32 offset, INT32 data)
-{
- if (offset >= 0x3800 && offset < 0x3808)
- K051937Write(offset - 0x3800,data);
- else if (offset < 0x3c00)
- K052109Write(offset, data);
- else
- K051960Write(offset - 0x3c00,data);
-}
-
-void K051960SetCallback(void (*Callback)(INT32 *Code, INT32 *Colour, INT32 *Priority, INT32 *Shadow))
-{
- K051960Callback = Callback;
-}
-
-void K051960SetSpriteOffset(INT32 x, INT32 y)
-{
- nSpriteXOffset = x;
- nSpriteYOffset = y;
-}
-
-void K051960Reset()
-{
- memset(K051960SpriteRomBank, 0, 3);
- K051960ReadRoms = 0;
- K051960RomOffset = 0;
-
- K051960_irq_enabled = 0;
- K051960_nmi_enabled = 0;
- K051960_spriteflip = 0;
-}
-
-void K051960GfxDecode(UINT8 *src, UINT8 *dst, INT32 len)
-{
- INT32 Plane[4] = { STEP4(0, 8) };
- INT32 XOffs[16] = { STEP8(0, 1), STEP8(256, 1) };
- INT32 YOffs[16] = { STEP8(0,32), STEP8(512,32) };
-
- GfxDecode(len >> 7, 4, 16, 16, Plane, XOffs, YOffs, 0x400, src, dst);
-}
-
-void K051960Init(UINT8* pRomSrc, UINT8* pRomSrcExp, UINT32 RomMask)
-{
- nSpriteXOffset = nSpriteYOffset = 0;
-
- K051960Ram = (UINT8*)BurnMalloc(0x400);
-
- K051960RomMask = RomMask;
- K051960RomExpMask = (RomMask * 2) / (16 * 16);
-
- K051960Rom = pRomSrc;
- K051960RomExp = pRomSrcExp;
-
- KonamiIC_K051960InUse = 1;
-
- memset (blank_tile, 0, 0x100);
-
- nSpriteXOffset = nSpriteYOffset = 0;
-
- KonamiAllocateBitmaps();
-
- nBpp = 4;
-}
-
-void K051960SetBpp(INT32 bpp)
-{
- nBpp = bpp;
-}
-
-void K051960Exit()
-{
- BurnFree(K051960Ram);
-
- K051960Callback = NULL;
- K051960RomMask = 0;
- K051960Rom = NULL;
- K051960RomExpMask = 0;
- K051960RomExp = NULL;
- memset(K051960SpriteRomBank, 0, 3);
- K051960ReadRoms = 0;
- K051960RomOffset = 0;
-
- K051960Callback = NULL;
-}
-
-void K051960Scan(INT32 nAction)
-{
- struct BurnArea ba;
-
- if (nAction & ACB_MEMORY_RAM) {
- memset(&ba, 0, sizeof(ba));
- ba.Data = K051960Ram;
- ba.nLen = 0x400;
- ba.szName = "K051960 Ram";
- BurnAcb(&ba);
- }
-
- if (nAction & ACB_DRIVER_DATA) {
- SCAN_VAR(K051960SpriteRomBank);
- SCAN_VAR(K051960ReadRoms);
- SCAN_VAR(K051960RomOffset);
- SCAN_VAR(K051960_irq_enabled);
- SCAN_VAR(K051960_nmi_enabled);
- SCAN_VAR(K051960_spriteflip);
- }
-}
-
-void K051937Write(UINT32 Offset, UINT8 Data)
-{
- if (Offset == 0) {
- K051960_irq_enabled = Data & 0x01;
- K051960_nmi_enabled = Data & 0x04;
- K051960_spriteflip = Data & 0x08;
- K051960ReadRoms = Data & 0x20;
- return;
- }
-
- if (Offset >= 2 && Offset <= 4) {
- K051960SpriteRomBank[Offset - 2] = Data;
- return;
- }
-}
-
-UINT8 K051937Read(UINT32 Offset)
-{
- if (K051960ReadRoms && Offset >= 4 && Offset < 8)
- {
- return K0519060FetchRomData(Offset & 3);
- }
- else
- {
- if (Offset == 0)
- {
- static INT32 counter;
- return (counter++) & 1;
- }
-
- return 0;
- }
-}
-
diff --git a/jan/src/burn/drv/konami/k052109.cpp b/jan/src/burn/drv/konami/k052109.cpp
deleted file mode 100644
index 73f72b8ae..000000000
--- a/jan/src/burn/drv/konami/k052109.cpp
+++ /dev/null
@@ -1,486 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:Fabio Priuli,Acho A. Tang, R. Belmont
-
-// K052109
-
-#include "tiles_generic.h"
-#include "konamiic.h"
-
-static UINT8 *K052109Ram = NULL;
-
-typedef void (*K052109_Callback)(INT32 Layer, INT32 Bank, INT32 *Code, INT32 *Colour, INT32 *xFlip, INT32 *Priority);
-static K052109_Callback K052109Callback;
-static INT32 K052109ScrollX[3];
-static INT32 K052109ScrollY[3];
-static UINT8 K052109ScrollCtrl;
-static UINT8 K052109CharRomBank[4];
-static UINT8 K052109CharRomBank2[4];
-INT32 K052109RMRDLine;
-static UINT8 K052109RomSubBank;
-static UINT32 K052109RomMask;
-static UINT8 *K052109Rom;
-static UINT32 K052109RomExpMask;
-static UINT8 *K052109RomExp;
-
-static INT32 K052109FlipEnable;
-INT32 K052109_irq_enabled;
-
-static INT32 K052109ScrollXOff[3];
-static INT32 K052109ScrollYOff[3];
-
-static INT32 K052109EnableRows[3];
-static INT32 K052109EnableLine[3];
-static INT32 K052109ScrollRows[3][256];
-static INT32 K052109EnableCols[3];
-static INT32 K052109ScrollCols[3][64];
-
-static INT32 has_extra_video_ram = 0; // xmen kludge
-
-static void update_scroll_one(INT32 nLayer, INT32 control, INT32 ram_offset)
-{
- K052109EnableLine[nLayer] = 0;
- K052109EnableRows[nLayer] = 1;
- K052109EnableCols[nLayer] = 1;
-
- UINT8 *sourceram = K052109Ram + ram_offset;
-
- if ((control & 0x03) == 0x02 || (control & 0x03) == 0x03)
- {
- K052109EnableLine[nLayer] = 1;
-
- K052109EnableRows[nLayer] = 256;
-
- INT32 andval = ((control & 0x03) == 0x02) ? 0xfff8 : 0xffff;
- UINT8 *scrollram = &sourceram[0x1a00];
- INT32 yscroll = sourceram[0x180c];
-
- for (INT32 offs = 0; offs < 256; offs++)
- {
- INT32 xscroll = scrollram[2 * (offs & andval) + 0] + 256 * scrollram[2 * (offs & andval) + 1];
- K052109ScrollRows[nLayer][(offs + yscroll)&0xff] = xscroll - 6;
- }
-
- K052109EnableCols[nLayer] = 1;
- K052109ScrollCols[nLayer][0] = yscroll;
- }
- else if ((control & 0x04) == 0x04)
- {
- // K052109EnableLine[nLayer] = 1;
-
- UINT8 *scrollram = &sourceram[0x1800];
- INT32 xscroll = (sourceram[0x1a00] + 256 * sourceram[0x1a01]) - 6;
-
- K052109EnableCols[nLayer] = 64;
- for (INT32 offs = 0; offs < 512/8; offs++)
- {
- K052109ScrollCols[nLayer][(((offs*8)+xscroll)&0x1f8)/8] = scrollram[offs];
- }
-
- K052109EnableRows[nLayer] = 1;
- K052109ScrollRows[nLayer][0] = K052109ScrollX[nLayer] = xscroll;
- }
- else
- {
- K052109EnableRows[nLayer] = K052109EnableCols[nLayer] = 1;
- K052109ScrollX[nLayer] = (sourceram[0x1a00] + 256 * sourceram[0x1a01]) - 6;
- K052109ScrollY[nLayer] = sourceram[0x180c];
- }
-}
-
-void K052109UpdateScroll()
-{
- update_scroll_one(1, K052109ScrollCtrl >> 0, 0x0000);
- update_scroll_one(2, K052109ScrollCtrl >> 3, 0x2000);
-}
-
-void K052109AdjustScroll(INT32 x, INT32 y)
-{
- for (INT32 i = 0; i < 3; i++) {
- K052109ScrollXOff[i] = x;
- K052109ScrollYOff[i] = y;
- }
-}
-
-void K052109RenderLayerLineScroll(INT32 nLayer, INT32 Flags, INT32 Priority)
-{
- INT32 Category = Flags & 0xff;
- INT32 Opaque = (Flags >> 16) & 1;
-
- UINT32 *dst = konami_bitmap32;
- UINT8 *pdst = konami_priority_bitmap;
-
- INT32 ram_offset = nLayer * 0x800;
-
- INT32 rowdiv = 256 / K052109EnableRows[nLayer];
-
- for (INT32 y = 0; y < nScreenHeight; y++)
- {
- for (INT32 x = 0; x < nScreenWidth + 8; x+=8)
- {
- INT32 yy = (y + (K052109ScrollCols[nLayer][0] + K052109ScrollYOff[nLayer] + 16)) & 0xff;
- INT32 xx = (x + (K052109ScrollRows[nLayer][yy/rowdiv] + K052109ScrollXOff[nLayer] + 104)) & 0x1ff;
-
- INT32 TileIndex = (xx/8) + ((yy/8)*64);
-
- INT32 Colour = K052109Ram[TileIndex + ram_offset];
- INT32 Code = K052109Ram[TileIndex + 0x2000 + ram_offset] + (K052109Ram[TileIndex + 0x4000 + ram_offset] << 8);
-
- INT32 Bank = K052109CharRomBank[(Colour & 0x0c) >> 2];
- if (has_extra_video_ram) Bank = (Colour & 0x0c) >> 2; // kludge for X-Men
-
- Colour = (Colour & 0xf3) | ((Bank & 0x03) << 2);
- Bank >>= 2;
-
- INT32 yFlip = Colour & 0x02;
- INT32 xFlip = 0;
- INT32 Prio = 0;
-
- K052109Callback(nLayer, Bank, &Code, &Colour, &xFlip, &Prio);
-
- if (Prio != Category && Category) continue;
-
- if (xFlip && !(K052109FlipEnable & 1)) xFlip = 0;
- if (yFlip && !(K052109FlipEnable & 2)) yFlip = 0;
-
- UINT8 *src = K052109RomExp + ((Code & K052109RomExpMask) * 0x40) + ((yFlip ? (~yy & 7) : (yy & 7)) * 8);
- UINT32 *pal = konami_palette32 + (Colour * 16);
-
- if (xFlip) xFlip = 0x07;
-
- INT32 xv = xx & 0x07;
-
- for (INT32 dx = 0; dx < 8; dx++)
- {
- if ((x+dx-xv) < 0 || (x+dx-xv) >= nScreenWidth) continue;
-
- INT32 pxl = src[dx^xFlip];
- if (!Opaque && !pxl) continue;
-
- dst[x+dx-xv] = pal[pxl];
- pdst[x+dx-xv] = Priority;
- }
- }
-
- pdst += nScreenWidth;
- dst += nScreenWidth;
- }
-}
-
-void K052109RenderLayer(INT32 nLayer, INT32 Flags, INT32 Priority)
-{
- nLayer &= 0x03;
-
- // Row and line scroll.
- if (K052109EnableLine[nLayer]) {
- K052109RenderLayerLineScroll(nLayer, Flags, Priority);
- return;
- }
-
- INT32 EnableCategory = Flags & 0x100;
- INT32 Category = Flags & 0xff;
-
- Priority = (EnableCategory) ? Category : Priority;
-
- INT32 Opaque = (Flags >> 16) & 1;
- INT32 ram_offset = nLayer * 0x800;
-
- INT32 mx, my, Bank, Code, Colour, x, y, xFlip = 0, yFlip, TileIndex = 0;
-
- for (my = 0; my < 32; my++) {
- for (mx = 0; mx < 64; mx++) {
- TileIndex = (my << 6) | mx;
-
- Colour = K052109Ram[TileIndex + ram_offset];
- Code = K052109Ram[TileIndex + 0x2000 + ram_offset] + (K052109Ram[TileIndex + 0x4000 + ram_offset] << 8);
-
- Bank = K052109CharRomBank[(Colour & 0x0c) >> 2];
- if (has_extra_video_ram) Bank = (Colour & 0x0c) >> 2; // kludge for X-Men
-
- Colour = (Colour & 0xf3) | ((Bank & 0x03) << 2);
- Bank >>= 2;
-
- yFlip = Colour & 0x02;
-
- INT32 Prio = 0;
-
- K052109Callback(nLayer, Bank, &Code, &Colour, &xFlip, &Prio);
-
- if (Prio != Category && EnableCategory) continue;
-
- if (xFlip && !(K052109FlipEnable & 1)) xFlip = 0;
- if (yFlip && !(K052109FlipEnable & 2)) yFlip = 0;
-
- x = 8 * mx;
- y = 8 * my;
-
- INT32 scrollx = K052109ScrollX[nLayer] + K052109ScrollXOff[nLayer];
- INT32 scrolly = K052109ScrollYOff[nLayer];
-
- x -= (scrollx + 104) & 0x1ff;
- if (x < -7) x += 512;
-
- if (K052109EnableCols[nLayer] == 64) {
- scrolly += K052109ScrollCols[nLayer][((mx*8)&0x1ff)/8];
- } else {
- scrolly += K052109ScrollY[nLayer];
- }
-
- y -= (scrolly + 16) & 0xff;
- if (y < -7) y += 256;
-
- if (x >= nScreenWidth || y >= nScreenHeight) continue;
-
- {
- UINT32 *dst = konami_bitmap32 + y * nScreenWidth + x;
- UINT8 *pri = konami_priority_bitmap + y * nScreenWidth + x;
- UINT8 *gfx = K052109RomExp + (Code & K052109RomExpMask) * 0x40;
-
- INT32 flip = 0;
- if (xFlip) flip |= 0x07;
- if (yFlip) flip |= 0x38;
-
- UINT32 *pal = konami_palette32 + (Colour * 16);
- INT32 trans = (Opaque) ? 0xffff : 0;
-
- for (INT32 yy = 0; yy < 8; yy++, y++)
- {
- if (y >= 0 && y < nScreenHeight)
- {
- for (INT32 xx = 0; xx < 8; xx++)
- {
- if ((x+xx) >= 0 && (x+xx) < nScreenWidth)
- {
- INT32 pxl = gfx[((yy*8)+xx)^flip];
-
- if (pxl != trans)
- {
- dst[xx] = pal[pxl];
- pri[xx] = Priority;
- }
- }
- }
- }
-
- dst += nScreenWidth;
- pri += nScreenWidth;
- }
- }
- }
- }
-}
-
-UINT8 K052109Read(UINT32 Offset)
-{
- if (Offset > 0x5fff) return 0;
-
- if (K052109RMRDLine) {
- INT32 Flags = 0;
- INT32 Code = (Offset & 0x1fff) >> 5;
- INT32 Colour = K052109RomSubBank;
- INT32 Bank = K052109CharRomBank[(Colour & 0x0c) >> 2] >> 2;
- Bank |= (K052109CharRomBank2[(Colour & 0x0c) >> 2] >> 2);
-
- if (has_extra_video_ram)
- Code |= Colour << 8; /* kludge for X-Men */
- else
- K052109Callback(0, Bank, &Code, &Colour, &Flags, &Flags /*actually priority*/);
-
- INT32 Addr = (Code << 5) + (Offset & 0x1f);
- Addr &= K052109RomMask;
-
- return K052109Rom[Addr];
- }
-
- return K052109Ram[Offset];
-}
-
-void K052109Write(UINT32 Offset, UINT8 Data)
-{
- if (Offset > 0x5fff) return;
-
- K052109Ram[Offset] = Data;
-
- if (Offset >= 0x4000) has_extra_video_ram = 1; /* kludge for X-Men */
-
- if ((Offset & 0x1fff) >= 0x1800) {
- switch (Offset) {
- case 0x1c80: {
- K052109ScrollCtrl = Data;
- return;
- }
-
- case 0x1d00: {
- K052109_irq_enabled = Data & 0x04;
- return;
- }
-
- case 0x1d80: {
- K052109CharRomBank[0] = Data & 0x0f;
- K052109CharRomBank[1] = (Data >> 4) & 0x0f;
- return;
- }
-
- case 0x1e00: // Normal..
- case 0x3e00: // Suprise Attack
- {
- K052109RomSubBank = Data;
- return;
- }
-
- case 0x1e80: {
- // flip
- K052109FlipEnable = ((Data & 0x06) >> 1);
- return;
- }
-
- case 0x1f00: {
- K052109CharRomBank[2] = Data & 0x0f;
- K052109CharRomBank[3] = (Data >> 4) & 0x0f;
- return;
- }
-
- case 0x3d80: // Surprise Attack (rom test)
- {
-// K052109CharRomBank2[0];
-// K052109CharRomBank2[1];
- return;
- }
-
- case 0x3f00: // Surprise Attack (rom test)
- {
-// K052109CharRomBank2[2];
-// K052109CharRomBank2[3];
- return;
- }
-
- case 0x180c:
- case 0x180d:
- case 0x1a00:
- case 0x1a01:
- case 0x380c:
- case 0x380d:
- case 0x3a00:
- case 0x3a01: {
- // Scroll Writes
- return;
- }
-
- case 0x1c00: {
- //???
- return;
- }
- }
- }
-}
-
-void K052109SetCallback(void (*Callback)(INT32 Layer, INT32 Bank, INT32 *Code, INT32 *Colour, INT32 *xFlip, INT32 *Priority))
-{
- K052109Callback = Callback;
-}
-
-void K052109Reset()
-{
- memset(K052109ScrollX, 0, 3 * sizeof(INT32));
- memset(K052109ScrollY, 0, 3 * sizeof(INT32));
- K052109ScrollCtrl = 0;
- memset(K052109CharRomBank, 0, 4);
- memset(K052109CharRomBank2,0, 4);
- K052109RMRDLine = 0;
- K052109RomSubBank = 0;
- K052109_irq_enabled = 0;
- memset (K052109Ram, 0, 0x6000);
-
- memset (K052109EnableRows, 0, 3 * sizeof(INT32));
- memset (K052109EnableLine, 0, 3 * sizeof(INT32));
- memset (K052109ScrollRows, 0, 256 * 3 * sizeof(INT32));
- memset (K052109EnableCols, 0, 3 * sizeof(INT32));
- memset (K052109ScrollCols, 0, 64 * 3 * sizeof(INT32));
-}
-
-void K052109GfxDecode(UINT8 *src, UINT8 *dst, INT32 nLen)
-{
- INT32 Plane[4] = { STEP4(24, -8) };
- INT32 XOffs[8] = { STEP8(0, 1) };
- INT32 YOffs[8] = { STEP8(0, 32) };
-
- GfxDecode((nLen * 2) / (8 * 8), 4, 8, 8, Plane, XOffs, YOffs, 0x100, src, dst);
-}
-
-void K052109Init(UINT8 *pRomSrc, UINT8 *pRomSrcExp, UINT32 RomMask)
-{
- K052109Ram = (UINT8*)BurnMalloc(0x6000);
-
- K052109RomMask = RomMask;
- K052109RomExpMask = (RomMask * 2) / (8 * 8);
-
- K052109Rom = pRomSrc;
- K052109RomExp = pRomSrcExp;
-
- KonamiIC_K052109InUse = 1;
-
- for (INT32 i = 0; i < 3; i++) {
- K052109ScrollXOff[i]=0;
- K052109ScrollYOff[i]=0;
- }
-
- KonamiAllocateBitmaps();
-
- has_extra_video_ram = 0;
-}
-
-void K052109Exit()
-{
- BurnFree(K052109Ram);
-
- K052109Callback = NULL;
- K052109RomMask = 0;
- K052109Rom = NULL;
-
- memset(K052109ScrollX, 0, 3);
- memset(K052109ScrollY, 0, 3);
- K052109ScrollCtrl = 0;
- memset(K052109CharRomBank, 0, 4);
- K052109RMRDLine = 0;
- K052109RomSubBank = 0;
- K052109FlipEnable = 0;
- K052109_irq_enabled = 0;
-
- has_extra_video_ram = 0;
-}
-
-void K052109Scan(INT32 nAction)
-{
- struct BurnArea ba;
-
- if (nAction & ACB_MEMORY_RAM) {
- memset(&ba, 0, sizeof(ba));
- ba.Data = K052109Ram;
- ba.nLen = 0x6000;
- ba.szName = "K052109 Ram";
- BurnAcb(&ba);
- }
-
- if (nAction & ACB_DRIVER_DATA) {
- SCAN_VAR(K052109ScrollX[0]);
- SCAN_VAR(K052109ScrollX[1]);
- SCAN_VAR(K052109ScrollX[2]);
- SCAN_VAR(K052109ScrollY[0]);
- SCAN_VAR(K052109ScrollY[1]);
- SCAN_VAR(K052109ScrollY[2]);
- SCAN_VAR(K052109ScrollCtrl);
- SCAN_VAR(K052109ScrollCtrl);
- SCAN_VAR(K052109CharRomBank[0]);
- SCAN_VAR(K052109CharRomBank[1]);
- SCAN_VAR(K052109CharRomBank[2]);
- SCAN_VAR(K052109CharRomBank[3]);
- SCAN_VAR(K052109CharRomBank2[0]);
- SCAN_VAR(K052109CharRomBank2[1]);
- SCAN_VAR(K052109CharRomBank2[2]);
- SCAN_VAR(K052109CharRomBank2[3]);
- SCAN_VAR(K052109RMRDLine);
- SCAN_VAR(K052109RomSubBank);
- SCAN_VAR(K052109FlipEnable);
- SCAN_VAR(K052109_irq_enabled);
- SCAN_VAR(has_extra_video_ram);
- }
-}
diff --git a/jan/src/burn/drv/konami/k053245.cpp b/jan/src/burn/drv/konami/k053245.cpp
deleted file mode 100644
index ff018f63c..000000000
--- a/jan/src/burn/drv/konami/k053245.cpp
+++ /dev/null
@@ -1,399 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:David Haywood
-
-// k053245
-
-#include "tiles_generic.h"
-#include "konamiic.h"
-
-static void (*K053245Callback[2])(INT32 *code,INT32 *color,INT32 *priority);
-
-UINT8 *K053245Ram[2];
-static UINT8 *K053245Buf[2];
-static UINT8 *K053245Gfx[2];
-static UINT8 *K053245GfxExp[2];
-static INT32 K053245Mask[2];
-static INT32 K053245MaskExp[2];
-static INT32 K053245_dx[2];
-static INT32 K053245_dy[2];
-
-static INT32 nBpp[2];
-static UINT8 K053244Regs[2][0x10];
-static INT32 K053244Bank[2];
-
-static INT32 K053245Active = 0;
-
-INT32 K05324xZRejection = -1;
-
-INT32 K053245Reset()
-{
- for (INT32 i = 0; i < K053245Active; i++) {
- memset (K053245Ram[i], 0, 0x800);
- memset (K053245Buf[i], 0, 0x800);
- memset (K053244Regs[i], 0, 0x10);
-
- K053244Bank[i] = 0;
- }
-
- return 0;
-}
-
-void K053245GfxDecode(UINT8 *src, UINT8 *dst, INT32 len)
-{
- INT32 Plane[4] = { STEP4(24, -8) };
- INT32 XOffs[16] = { STEP8(0, 1), STEP8(256, 1) };
- INT32 YOffs[16] = { STEP8(0,32), STEP8(512,32) };
-
- GfxDecode(len >> 7, 4, 16, 16, Plane, XOffs, YOffs, 0x400, src, dst);
-}
-
-void K053245Init(INT32 chip, UINT8 *gfx, UINT8 *gfxexp, INT32 mask, void (*callback)(INT32 *code,INT32 *color,INT32 *priority))
-{
- K053245Ram[chip] = (UINT8*)BurnMalloc(0x800); // enough
- K053245Buf[chip] = (UINT8*)BurnMalloc(0x800); // enough
-
- K053245Mask[chip] = mask;
- K053245MaskExp[chip] = (mask * 2) / (16 * 16);
-
- K053245Gfx[chip] = gfx;
- K053245GfxExp[chip] = gfxexp;
-
- K053245Callback[chip] = callback;
-
- K053245Active++;
-
- KonamiIC_K053245InUse = 1;
-
- KonamiAllocateBitmaps();
-
- K053245Reset();
-
- nBpp[chip] = 4;
-}
-
-void K053245SetBpp(INT32 chip, INT32 bpp)
-{
- nBpp[chip] = bpp;
-}
-
-void K053245Exit()
-{
- for (INT32 i = 0; i < K053245Active; i++) {
- BurnFree (K053245Ram[i]);
- BurnFree (K053245Buf[i]);
-
- K053245_dx[i] = 0;
- K053245_dy[i] = 0;
- }
-
- K053245Active = 0;
-}
-
-// Useful functions
-
-void K053245SetSpriteOffset(INT32 chip,INT32 offsx, INT32 offsy)
-{
- K053245_dx[chip] = offsx;
- K053245_dy[chip] = offsy;
-}
-
-void K053245ClearBuffer(INT32 chip)
-{
- UINT16 *buf = (UINT16*)K053245Buf[chip];
-
- for (INT32 i = 0; i < 0x800/2; i+=8) buf[i] = 0;
-}
-
-void K053245UpdateBuffer(INT32 chip)
-{
- memcpy (K053245Buf[chip], K053245Ram[chip], 0x800);
-}
-
-void K053244BankSelect(INT32 chip, INT32 bank)
-{
- K053244Bank[chip] = bank;
-}
-
-
-// 8 bit read/write handlers
-
-UINT8 K053245Read(INT32 chip, INT32 offset)
-{
- return K053245Ram[chip][offset ^ 1]; //
-}
-
-void K053245Write(INT32 chip, INT32 offset, INT32 data)
-{
- K053245Ram[chip][offset ^ 1] = data; //
-}
-
-UINT16 K053245ReadWord(INT32 chip, INT32 offset)
-{
- UINT16 *ret = (UINT16*)K053245Ram[chip];
-
-#if 0
- INT32 r = ret[offset];
-
- return (r << 8) | (r >> 8);
-#else
- return BURN_ENDIAN_SWAP_INT16(ret[offset]);
-#endif
-}
-
-void K053245WriteWord(INT32 chip, INT32 offset, INT32 data)
-{
- UINT16 *ret = (UINT16*)K053245Ram[chip];
-
-#if 0
- ret[offset] = (data << 8) | (data >> 8);
-#else
- ret[offset] = BURN_ENDIAN_SWAP_INT16(data);
-#endif
-}
-
-UINT8 K053244Read(INT32 chip, INT32 offset)
-{
- if (K053244Regs[chip][5] & 0x10 && (offset & 0x0c) == 0x0c)
- {
- INT32 addr = (K053244Bank[chip] << 19) | ((K053244Regs[chip][11] & 0x07) << 18);
- addr |= (K053244Regs[chip][8] << 10) | (K053244Regs[chip][ 9] << 2);
- addr |= (offset & 3) ^ 1;
- addr &= K053245Mask[chip];
-
- return K053245Gfx[chip][addr];
- }
- else if (offset == 0x06) {
- K053245UpdateBuffer(chip);
- }
-
- return 0;
-}
-
-void K053244Write(INT32 chip, INT32 offset, INT32 data)
-{
- K053244Regs[chip][offset] = data;
-
- if (offset == 0x06) {
- K053245UpdateBuffer(chip);
- }
-}
-
-void K05324xSetZRejection(INT32 z)
-{
- K05324xZRejection = z;
-}
-
-// Sprite Rendering
-
-void K053245SpritesRender(INT32 chip)
-{
-#define NUM_SPRITES 128
- INT32 offs,pri_code,i;
- INT32 sortedlist[NUM_SPRITES];
- INT32 flipscreenX, flipscreenY, spriteoffsX, spriteoffsY;
-
- flipscreenX = K053244Regs[chip][5] & 0x01;
- flipscreenY = K053244Regs[chip][5] & 0x02;
- spriteoffsX = (K053244Regs[chip][0] << 8) | K053244Regs[chip][1];
- spriteoffsY = (K053244Regs[chip][2] << 8) | K053244Regs[chip][3];
-
- for (offs = 0;offs < NUM_SPRITES;offs++)
- sortedlist[offs] = -1;
-
- UINT16 *sprbuf = (UINT16*)K053245Buf[chip];
-
- UINT8 *gfxdata = K053245GfxExp[chip];
-
- /* prebuild a sorted table */
- for (i=0x800/2, offs=0; offs= 0; pri_code--)
- {
- INT32 ox,oy,color,code,size,w,h,x,y,flipx,flipy,mirrorx,mirrory,shadow,zoomx,zoomy,pri;
-
- offs = sortedlist[pri_code];
- if (offs == -1) continue;
-
- code = BURN_ENDIAN_SWAP_INT16(sprbuf[offs+1]);
- code = ((code & 0xffe1) + ((code & 0x0010) >> 2) + ((code & 0x0008) << 1)
- + ((code & 0x0004) >> 1) + ((code & 0x0002) << 2));
- color = BURN_ENDIAN_SWAP_INT16(sprbuf[offs+6]) & 0x00ff;
- pri = 0;
-
- (*K053245Callback[chip])(&code,&color,&pri);
-
- size = (BURN_ENDIAN_SWAP_INT16(sprbuf[offs]) & 0x0f00) >> 8;
-
- w = 1 << (size & 0x03);
- h = 1 << ((size >> 2) & 0x03);
-
- /* zoom control:
- 0x40 = normal scale
- <0x40 enlarge (0x20 = double size)
- >0x40 reduce (0x80 = half size)
- */
- zoomy = BURN_ENDIAN_SWAP_INT16(sprbuf[offs+4]);
- if (zoomy > 0x2000) continue;
- if (zoomy) zoomy = (0x400000+zoomy/2) / zoomy;
- else zoomy = 2 * 0x400000;
- if ((BURN_ENDIAN_SWAP_INT16(sprbuf[offs]) & 0x4000) == 0)
- {
- zoomx = BURN_ENDIAN_SWAP_INT16(sprbuf[offs+5]);
- if (zoomx > 0x2000) continue;
- if (zoomx) zoomx = (0x400000+zoomx/2) / zoomx;
- else zoomx = 2 * 0x400000;
-// else zoomx = zoomy; /* workaround for TMNT2 */
- }
- else zoomx = zoomy;
-
- ox = BURN_ENDIAN_SWAP_INT16(sprbuf[offs+3]) + spriteoffsX;
- oy = BURN_ENDIAN_SWAP_INT16(sprbuf[offs+2]);
-
- ox += K053245_dx[chip];
- oy += K053245_dy[chip];
-
- flipx = BURN_ENDIAN_SWAP_INT16(sprbuf[offs]) & 0x1000;
- flipy = BURN_ENDIAN_SWAP_INT16(sprbuf[offs]) & 0x2000;
- mirrorx = BURN_ENDIAN_SWAP_INT16(sprbuf[offs+6]) & 0x0100;
- if (mirrorx) flipx = 0; // documented and confirmed
- mirrory = BURN_ENDIAN_SWAP_INT16(sprbuf[offs+6]) & 0x0200;
- shadow = BURN_ENDIAN_SWAP_INT16(sprbuf[offs+6]) & 0x0080;
-
- if (flipscreenX)
- {
- ox = 512 - ox;
- if (!mirrorx) flipx = !flipx;
- }
- if (flipscreenY)
- {
- oy = -oy;
- if (!mirrory) flipy = !flipy;
- }
-
- ox = (ox + 0x5d) & 0x3ff;
- if (ox >= 768) ox -= 1024;
- oy = (-(oy + spriteoffsY + 0x07)) & 0x3ff;
- if (oy >= 640) oy -= 1024;
-
- /* the coordinates given are for the *center* of the sprite */
- ox -= (zoomx * w) >> 13;
- oy -= (zoomy * h) >> 13;
-
- for (y = 0;y < h;y++)
- {
- INT32 sx,sy,zw,zh;
-
- sy = oy + ((zoomy * y + (1<<11)) >> 12);
- zh = (oy + ((zoomy * (y+1) + (1<<11)) >> 12)) - sy;
-
- for (x = 0;x < w;x++)
- {
- INT32 c,fx,fy;
-
- sx = ox + ((zoomx * x + (1<<11)) >> 12);
- zw = (ox + ((zoomx * (x+1) + (1<<11)) >> 12)) - sx;
- c = code;
- if (mirrorx)
- {
- if ((flipx == 0) ^ (2*x < w))
- {
- /* mirror left/right */
- c += (w-x-1);
- fx = 1;
- }
- else
- {
- c += x;
- fx = 0;
- }
- }
- else
- {
- if (flipx) c += w-1-x;
- else c += x;
- fx = flipx;
- }
- if (mirrory)
- {
- if ((flipy == 0) ^ (2*y >= h))
- {
- /* mirror top/bottom */
- c += 8*(h-y-1);
- fy = 1;
- }
- else
- {
- c += 8*y;
- fy = 0;
- }
- }
- else
- {
- if (flipy) c += 8*(h-1-y);
- else c += 8*y;
- fy = flipy;
- }
-
- c = ((c & 0x3f) | (code & ~0x3f)) & K053245MaskExp[chip];
-
- if (shadow) {
- konami_render_zoom_shadow_tile(gfxdata, c, nBpp[chip], color, sx, sy, fx, fy, 16, 16, zw << 12, zh << 12, pri, 0);
- continue;
- }
-
- if (zoomx == 0x10000 && zoomy == 0x10000)
- {
- konami_draw_16x16_prio_tile(gfxdata, c, nBpp[chip], color, sx, sy, fx, fy, pri);
- }
- else
- {
- konami_draw_16x16_priozoom_tile(gfxdata, c, nBpp[chip], color, 0, sx, sy, fx, fy, 16, 16, zw << 12, zh << 12, pri);
- }
- }
- }
- }
-}
-
-void K053245Scan(INT32 nAction)
-{
- struct BurnArea ba;
-
- if (nAction & ACB_MEMORY_RAM) {
- for (INT32 i = 0; i < 2; i++) {
- if (K053245Ram[i]) {
- memset(&ba, 0, sizeof(ba));
- ba.Data = K053245Ram[i];
- ba.nLen = 0x800;
- ba.szName = "K053245 Ram";
- BurnAcb(&ba);
-
- ba.Data = K053245Buf[i];
- ba.nLen = 0x800;
- ba.szName = "K053245 Buffer";
- BurnAcb(&ba);
- }
-
- memset(&ba, 0, sizeof(ba));
- ba.Data = K053244Regs[i];
- ba.nLen = 0x010;
- ba.szName = "K053244 Registers";
- BurnAcb(&ba);
- }
- }
-
- if (nAction & ACB_DRIVER_DATA) {
- SCAN_VAR(K053244Bank[0]);
- SCAN_VAR(K053244Bank[1]);
- }
-}
diff --git a/jan/src/burn/drv/konami/k053247.cpp b/jan/src/burn/drv/konami/k053247.cpp
deleted file mode 100644
index 28fcce337..000000000
--- a/jan/src/burn/drv/konami/k053247.cpp
+++ /dev/null
@@ -1,1225 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:David Haywood
-
-// k053247
-
-#include "tiles_generic.h"
-#include "konamiic.h"
-
-#define K053247_CUSTOMSHADOW 0x20000000
-#define K053247_SHDSHIFT 20
-
-static UINT8 K053246Regs[8];
-static UINT8 K053246_OBJCHA_line;
-UINT8 *K053247Ram;
-static UINT16 K053247Regs[16];
-
-static UINT8 *K053246Gfx;
-static UINT32 K053246Mask;
-static UINT8 *K053246GfxExp;
-static UINT32 K053246MaskExp;
-
-static INT32 K053247_dx;
-static INT32 K053247_dy;
-static INT32 K053247_wraparound;
-
-static INT32 nBpp = 4;
-
-static INT32 K053247Flags;
-
-void (*K053247Callback)(INT32 *code, INT32 *color, INT32 *priority);
-
-void K053247Reset()
-{
- memset (K053247Ram, 0, 0x1000);
- memset (K053247Regs, 0, 16 * sizeof (UINT16));
- memset (K053246Regs, 0, 8);
-
- K053246_OBJCHA_line = 0; // clear
-}
-
-void K053247Scan(INT32 nAction)
-{
- struct BurnArea ba;
-
- if (nAction & ACB_MEMORY_RAM) {
- memset(&ba, 0, sizeof(ba));
- ba.Data = K053247Ram;
- ba.nLen = 0x1000;
- ba.szName = "K053247 Ram";
- BurnAcb(&ba);
-
- ba.Data = K053247Regs;
- ba.nLen = 0x0010 * sizeof(UINT16);
- ba.szName = "K053247 Regs";
- BurnAcb(&ba);
-
- ba.Data = K053246Regs;
- ba.nLen = 0x0008;
- ba.szName = "K053246 Regs";
- BurnAcb(&ba);
-
- SCAN_VAR(K053246_OBJCHA_line);
- SCAN_VAR(K053247_wraparound);
- }
-}
-
-void K053247Init(UINT8 *gfxrom, UINT8 *gfxromexp, INT32 gfxlen, void (*Callback)(INT32 *code, INT32 *color, INT32 *priority), INT32 flags)
-{
- K053247Ram = (UINT8*)BurnMalloc(0x1000);
-
- K053246Gfx = gfxrom;
- K053246Mask = gfxlen;
-
- K053246GfxExp = gfxromexp;
- K053246MaskExp = ((gfxlen * 2) + 1) / 0x100;
-
- K053247Callback = Callback;
-
- K053247_dx = 0;
- K053247_dy = 0;
- K053247_wraparound = 1;
-
- KonamiAllocateBitmaps();
-
- K053247Flags = flags; // 0x02 highlight, 0x01 shadow
-
- KonamiIC_K053247InUse = 1;
-
- nBpp = 4;
-}
-
-void K053247SetBpp(INT32 bpp)
-{
- nBpp = bpp;
-}
-
-void K053247Exit()
-{
- BurnFree (K053247Ram);
-
- K053247Flags = 0;
-
- memset (K053247Regs, 0, 16 * sizeof(UINT16));
-}
-
-void K053247Export(UINT8 **ram, UINT8 **gfx, void (**callback)(INT32 *, INT32 *, INT32 *), INT32 *dx, INT32 *dy)
-{
- if (ram) *ram = K053247Ram;
- if (gfx) *gfx = K053246Gfx;
-
- if (dx) *dx = K053247_dx;
- if (dy) *dy = K053247_dy;
-
- if(callback) *callback = K053247Callback;
-}
-
-void K053247GfxDecode(UINT8 *src, UINT8 *dst, INT32 len) // 16x16
-{
- for (INT32 i = 0; i < len; i++)
- {
- INT32 t = src[i^1];
- dst[(i << 1) + 0] = t >> 4;
- dst[(i << 1) + 1] = t & 0x0f;
- }
-}
-
-void K053247SetSpriteOffset(INT32 offsx, INT32 offsy)
-{
- K053247_dx = offsx;
- K053247_dy = offsy;
-}
-
-void K053247WrapEnable(INT32 status)
-{
- K053247_wraparound = status;
-}
-
-UINT8 K053247Read(INT32 offset)
-{
- return K053247Ram[offset & 0xfff];
-}
-
-UINT16 K053247ReadWord(INT32 offset)
-{
- return *((UINT16*)(K053247Ram + (offset & 0xffe)));
-}
-
-void K053247WriteWord(INT32 offset, UINT16 data)
-{
- *((UINT16*)(K053247Ram + (offset & 0xffe))) = BURN_ENDIAN_SWAP_INT16(data);
-}
-
-void K053247Write(INT32 offset, INT32 data)
-{
- if (data & 0x10000) { // use word
- *((UINT16*)(K053247Ram + (offset & 0xffe))) = BURN_ENDIAN_SWAP_INT16(data);
- } else {
- K053247Ram[offset & 0xfff] = data;
- }
-}
-
-void K053247WriteRegsByte(INT32 offset, UINT8 data)
-{
- UINT8 *regs = (UINT8*)&K053247Regs;
-
- regs[(offset & 0x1f)^1] = data;
-}
-
-void K053247WriteRegsWord(INT32 offset, UINT16 data)
-{
- K053247Regs[(offset & 0x1e) / 2] = data;
-}
-
-UINT16 K053247ReadRegs(INT32 offset)
-{
- return K053247Regs[offset & 0xf];
-}
-
-UINT16 K053246ReadRegs(INT32 offset)
-{
- return K053246Regs[offset & 7];
-}
-
-UINT8 K053246Read(INT32 offset)
-{
- if (K053246_OBJCHA_line) // assert_line
- {
- INT32 addr;
-
- addr = (K053246Regs[6] << 17) | (K053246Regs[7] << 9) | (K053246Regs[4] << 1) | ((offset & 1) ^ 1);
- addr &= K053246Mask;
-
- return K053246Gfx[addr];
- }
- else
- {
- return 0;
- }
-}
-
-void K053246Write(INT32 offset, INT32 data)
-{
- if (data & 0x10000) { // handle it as a word
- *((UINT16*)(K053246Regs + (offset & 6))) = BURN_ENDIAN_SWAP_INT16(data);
- } else {
- K053246Regs[offset & 7] = data;
- }
-}
-
-void K053246_set_OBJCHA_line(INT32 state)
-{
- K053246_OBJCHA_line = state;
-}
-
-INT32 K053246_is_IRQ_enabled()
-{
- return K053246Regs[5] & 0x10;
-}
-
-void K053247SpritesRender()
-{
-#define NUM_SPRITES 256
-
-
- UINT8 dtable[256];
- UINT8 stable[256];
- UINT8 *wtable;
-
- memset(dtable, 1, 256);
- dtable[0] = 0;
- memset(stable, 2, 256);
- stable[0] = 0;
-
- static const INT32 xoffset[8] = { 0, 1, 4, 5, 16, 17, 20, 21 };
- static const INT32 yoffset[8] = { 0, 2, 8, 10, 32, 34, 40, 42 };
-
- INT32 sortedlist[NUM_SPRITES];
- INT32 offs,zcode;
- INT32 ox,oy,color,code,size,w,h,x,y,xa,ya,flipx,flipy,mirrorx,mirrory,shadow,zoomx,zoomy,primask;
- INT32 nozoom,count,temp,shdmask;
-
- INT32 flipscreenx = K053246Regs[5] & 0x01;
- INT32 flipscreeny = K053246Regs[5] & 0x02;
- INT32 offx = (INT16)((K053246Regs[0] << 8) | K053246Regs[1]);
- INT32 offy = (INT16)((K053246Regs[2] << 8) | K053246Regs[3]);
-
- UINT16 *SprRam = (UINT16*)K053247Ram;
-
- UINT8 *gfxbase = K053246GfxExp;
-
- INT32 screen_width = nScreenWidth-1;
-
- if (K053247Flags & 1) {
- if (K053247Flags & 2) {
- shdmask = 3;
- } else {
- shdmask = 0;
- }
- } else {
- shdmask = -1;
- }
-
- // Prebuild a sorted table by descending Z-order.
- zcode = K05324xZRejection;
- offs = count = 0;
-
- if (zcode == -1)
- {
- for (; offs<0x800; offs+=8)
- if (BURN_ENDIAN_SWAP_INT16(SprRam[offs]) & 0x8000) sortedlist[count++] = offs;
- }
- else
- {
- for (; offs<0x800; offs+=8)
- if ((BURN_ENDIAN_SWAP_INT16(SprRam[offs]) & 0x8000) && ((BURN_ENDIAN_SWAP_INT16(SprRam[offs]) & 0xff) != zcode)) sortedlist[count++] = offs;
- }
-
- w = count;
- count--;
- h = count;
-
- if (!(K053247Regs[0xc/2] & 0x10))
- {
- // sort objects in decending order(smaller z closer) when OPSET PRI is clear
- for (y=0; y= code) { zcode = code; sortedlist[x] = offs; sortedlist[y] = offs = temp; }
- }
- }
- }
-
- for (INT32 i = count; i >= 0; i--)
- {
- offs = sortedlist[i];
-
- code = BURN_ENDIAN_SWAP_INT16(SprRam[offs+1]);
- shadow = color = BURN_ENDIAN_SWAP_INT16(SprRam[offs+6]);
- primask = 0;
-
- (*K053247Callback)(&code,&color,&primask);
-
- temp = BURN_ENDIAN_SWAP_INT16(SprRam[offs]);
-
- size = (temp & 0x0f00) >> 8;
- w = 1 << (size & 0x03);
- h = 1 << ((size >> 2) & 0x03);
-
- /* the sprite can start at any point in the 8x8 grid. We have to */
- /* adjust the offsets to draw it correctly. Simpsons does this all the time. */
- xa = 0;
- ya = 0;
- if (code & 0x01) xa += 1;
- if (code & 0x02) ya += 1;
- if (code & 0x04) xa += 2;
- if (code & 0x08) ya += 2;
- if (code & 0x10) xa += 4;
- if (code & 0x20) ya += 4;
- code &= ~0x3f;
-
- oy = (INT16)BURN_ENDIAN_SWAP_INT16(SprRam[offs+2]);
- ox = (INT16)BURN_ENDIAN_SWAP_INT16(SprRam[offs+3]);
-
- ox += K053247_dx;
- oy -= K053247_dy;
-
- if (K053247_wraparound)
- {
- offx &= 0x3ff;
- offy &= 0x3ff;
- oy &= 0x3ff;
- ox &= 0x3ff;
- }
-
- y = zoomy = BURN_ENDIAN_SWAP_INT16(SprRam[offs+4]) & 0x3ff;
- if (zoomy) zoomy = (0x400000+(zoomy>>1)) / zoomy; else zoomy = 0x800000;
- if (!(temp & 0x4000))
- {
- x = zoomx = BURN_ENDIAN_SWAP_INT16(SprRam[offs+5]) & 0x3ff;
- if (zoomx) zoomx = (0x400000+(zoomx>>1)) / zoomx;
- else zoomx = 0x800000;
- }
- else { zoomx = zoomy; x = y; }
-
- if ( K053246Regs[5] & 0x08 ) // Check only "Bit #3 is '1'?" (NOTE: good guess)
- {
- zoomx >>= 1; // Fix sprite width to HALF size
- ox = (ox >> 1) + 1; // Fix sprite draw position
- if (flipscreenx) ox += screen_width;
- nozoom = 0;
- }
- else
- nozoom = (x == 0x40 && y == 0x40);
-
- flipx = temp & 0x1000;
- flipy = temp & 0x2000;
- mirrorx = shadow & 0x4000;
- if (mirrorx) flipx = 0; // documented and confirmed
- mirrory = shadow & 0x8000;
-
- INT32 highlight = 0;
-
- wtable = dtable;
-
- if (color == -1)
- {
- // drop the entire sprite to shadow unconditionally
- if (shdmask < 0) continue;
- color = 0;
- shadow = -1;
-
- wtable = stable;
- }
- else
- {
- if (shdmask >= 0)
- {
- shadow = (color & 0x20000000) ? (color >> 20) : (shadow >> 10);
-
- if (shadow &= 3) {
- if (((shadow-1) & shdmask) == 1) highlight = 1;
- }
- }
- else
- shadow = 0;
- }
-
- color &= 0xffff; // strip attribute flags
-
- if (flipscreenx)
- {
- ox = -ox;
- if (!mirrorx) flipx = !flipx;
- }
- if (flipscreeny)
- {
- oy = -oy;
- if (!mirrory) flipy = !flipy;
- }
-
- // apply wrapping and global offsets
- if (K053247_wraparound)
- {
- ox = ( ox - offx) & 0x3ff;
- oy = (-oy - offy) & 0x3ff;
- if (ox >= 0x300) ox -= 0x400;
- if (oy >= 0x280) oy -= 0x400;
- }
- else
- {
- ox = ox - offx;
- oy = -oy - offy;
- }
-
- // apply global and display window offsets
-
- /* the coordinates given are for the *center* of the sprite */
- ox -= (zoomx * w) >> 13;
- oy -= (zoomy * h) >> 13;
-
- dtable[15] = shadow ? 2 : 1;
-
- for (y = 0;y < h;y++)
- {
- INT32 sx,sy,zw,zh;
-
- sy = oy + ((zoomy * y + (1<<11)) >> 12);
- zh = (oy + ((zoomy * (y+1) + (1<<11)) >> 12)) - sy;
-
- for (x = 0;x < w;x++)
- {
- INT32 c,fx,fy;
-
- sx = ox + ((zoomx * x + (1<<11)) >> 12);
- zw = (ox + ((zoomx * (x+1) + (1<<11)) >> 12)) - sx;
- c = code;
- if (mirrorx)
- {
- if ((flipx == 0) ^ ((x<<1) < w))
- {
- /* mirror left/right */
- c += xoffset[(w-1-x+xa)&7];
- fx = 1;
- }
- else
- {
- c += xoffset[(x+xa)&7];
- fx = 0;
- }
- }
- else
- {
- if (flipx) c += xoffset[(w-1-x+xa)&7];
- else c += xoffset[(x+xa)&7];
- fx = flipx;
- }
-
- if (mirrory)
- {
- if ((flipy == 0) ^ ((y<<1) >= h))
- {
- /* mirror top/bottom */
- c += yoffset[(h-1-y+ya)&7];
- fy = 1;
- }
- else
- {
- c += yoffset[(y+ya)&7];
- fy = 0;
- }
- }
- else
- {
- if (flipy) c += yoffset[(h-1-y+ya)&7];
- else c += yoffset[(y+ya)&7];
- fy = flipy;
- }
-
- c &= K053246MaskExp;
-
- if (shadow || wtable == stable) {
- if (mirrory && h == 1)
- konami_render_zoom_shadow_tile(gfxbase, c, nBpp, color, sx, sy, fx, !fy, 16, 16, zw << 12, zh << 12, primask, highlight);
-
- konami_render_zoom_shadow_tile(gfxbase, c, nBpp, color, sx, sy, fx, fy, 16, 16, zw << 12, zh << 12, primask, highlight);
- continue;
- }
-
- if (mirrory && h == 1)
- {
- if (nozoom) {
- konami_draw_16x16_prio_tile(gfxbase, c, nBpp, color, sx, sy, fx, !fy, primask);
- } else {
- konami_draw_16x16_priozoom_tile(gfxbase, c, nBpp, color, 0, sx, sy, fx, !fy, 16, 16, zw<<12, zh<<12, primask);
- }
- }
-
- if (nozoom) {
- konami_draw_16x16_prio_tile(gfxbase, c, nBpp, color, sx, sy, fx, fy, primask);
- } else {
- konami_draw_16x16_priozoom_tile(gfxbase, c, nBpp, color, 0, sx, sy, fx, fy, 16, 16, zw<<12, zh<<12, primask);
- }
- } // end of X loop
- } // end of Y loop
-
- } // end of sprite-list loop
-#undef NUM_SPRITES
-}
-
-static inline UINT32 alpha_blend_r32(UINT32 d, UINT32 s, UINT32 p)
-{
- if (p == 0) return d;
-
- INT32 a = 256 - p;
-
- return (((((s & 0xff00ff) * p) + ((d & 0xff00ff) * a)) & 0xff00ff00) |
- ((((s & 0x00ff00) * p) + ((d & 0x00ff00) * a)) & 0x00ff0000)) >> 8;
-}
-
-static inline UINT32 shadow_blend(UINT32 d)
-{
- return ((((d & 0xff00ff) * 0x9d) & 0xff00ff00) + (((d & 0x00ff00) * 0x9d) & 0x00ff0000)) / 0x100;
-}
-
-static inline UINT32 highlight_blend(UINT32 d)
-{
- INT32 r = ((d&0xff0000)+0x220000);
- if (r > 0xff0000) r = 0xff0000;
-
- INT32 g = ((d&0x00ff00)+0x002200);
- if (g > 0x00ff00) g = 0x00ff00;
-
- INT32 b = ((d&0x0000ff)+0x000022);
- if (b > 0x0000ff) b = 0x0000ff;
- return r|g|b;
-}
-
-#define GX_ZBUFW 512
-#define GX_ZBUFH 256
-
-void zdrawgfxzoom32GP(UINT32 code, UINT32 color, INT32 flipx, INT32 flipy, INT32 sx, INT32 sy,
- INT32 scalex, INT32 scaley, INT32 alpha, INT32 drawmode, INT32 zcode, INT32 pri, UINT8* gx_objzbuf, UINT8* gx_shdzbuf)
-{
-#define FP 19
-#define FPONE (1<> 4) && (K053247Flags & 2);// for fba
- //INT32 highlight_enable = drawmode >> 4;// for fba
- drawmode &= 0xf;
-
- // cull illegal and transparent objects
- if (!scalex || !scaley) return;
-
- // find shadow pens and cull invisible shadows
- granularity = shdpen = ((1 << nBpp) /*- 1*/);
- shdpen--;
-
- if (zcode >= 0)
- {
- if (drawmode == 5) { drawmode = 4; shdpen = 1; }
- }
- else
- if (drawmode >= 4) return;
-
- // alpha blend necessary?
- if (drawmode & 2)
- {
- if (alpha <= 0) return;
- if (alpha >= 255) drawmode &= ~2;
- }
-
- // fill internal data structure with default values
- ozbuf_ptr = gx_objzbuf;
- szbuf_ptr = gx_shdzbuf;
-
- src_pitch = 16;
- src_fw = 16;
- src_fh = 16;
- src_base = K053246GfxExp + (code * 0x100);
-
- pal_base = konami_palette32 + (color << nBpp);
- shd_base = konami_palette32; // m_palette->shadow_table(); // iq_132
-
- dst_ptr = konami_bitmap32;
- dst_pitch = nScreenWidth;
- dst_minx = 0;
- dst_maxx = (nScreenWidth - 1);
- dst_miny = 0;
- dst_maxy = (nScreenHeight - 1);
- dst_x = sx;
- dst_y = sy;
-
- // cull off-screen objects
- if (dst_x > dst_maxx || dst_y > dst_maxy) return;
- nozoom = (scalex == 0x10000 && scaley == 0x10000);
- if (nozoom)
- {
- dst_h = dst_w = 16;
- src_fdy = src_fdx = 1;
- }
- else
- {
- dst_w = ((scalex<<4)+0x8000)>>16;
- dst_h = ((scaley<<4)+0x8000)>>16;
- if (!dst_w || !dst_h) return;
-
- src_fw <<= FP;
- src_fh <<= FP;
- src_fdx = src_fw / dst_w;
- src_fdy = src_fh / dst_h;
- }
- dst_lastx = dst_x + dst_w - 1;
- if (dst_lastx < dst_minx) return;
- dst_lasty = dst_y + dst_h - 1;
- if (dst_lasty < dst_miny) return;
-
- // clip destination
- dst_skipx = 0;
- eax = dst_minx; if ((eax -= dst_x) > 0) { dst_skipx = eax; dst_w -= eax; dst_x = dst_minx; }
- eax = dst_lastx; if ((eax -= dst_maxx) > 0) dst_w -= eax;
- dst_skipy = 0;
- eax = dst_miny; if ((eax -= dst_y) > 0) { dst_skipy = eax; dst_h -= eax; dst_y = dst_miny; }
- eax = dst_lasty; if ((eax -= dst_maxy) > 0) dst_h -= eax;
-
- // calculate zoom factors and clip source
- if (nozoom)
- {
- if (!flipx) src_fbx = 0; else { src_fbx = src_fw - 1; src_fdx = -src_fdx; }
- if (!flipy) src_fby = 0; else { src_fby = src_fh - 1; src_fdy = -src_fdy; src_pitch = -src_pitch; }
- }
- else
- {
- if (!flipx) src_fbx = FPENT; else { src_fbx = src_fw - FPENT - 1; src_fdx = -src_fdx; }
- if (!flipy) src_fby = FPENT; else { src_fby = src_fh - FPENT - 1; src_fdy = -src_fdy; }
- }
- src_fbx += dst_skipx * src_fdx;
- src_fby += dst_skipy * src_fdy;
-
- // adjust insertion points and pre-entry constants
- eax = (dst_y - dst_miny) * GX_ZBUFW + (dst_x - dst_minx) + dst_w;
- z8 = (UINT8)zcode;
- p8 = (UINT8)pri;
- ozbuf_ptr += eax;
- szbuf_ptr += eax << 1;
- dst_ptr += dst_y * dst_pitch + dst_x + dst_w;
- dst_w = -dst_w;
-
- if (!nozoom)
- {
- ecx = src_fby; src_fby += src_fdy;
- ecx >>= FP; src_fx = src_fbx;
- src_x = src_fbx; src_fx += src_fdx;
- ecx <<= 4; src_ptr = src_base;
- src_x >>= FP; src_ptr += ecx;
- ecx = dst_w;
-
- if (zcode < 0) // no shadow and z-buffering
- {
- do {
- do {
- eax = src_ptr[src_x];
- src_x = src_fx;
- src_fx += src_fdx;
- src_x >>= FP;
- if (!eax || eax >= shdpen) continue;
- dst_ptr [ecx] = pal_base[eax];
- }
- while (++ecx);
-
- ecx = src_fby; src_fby += src_fdy;
- dst_ptr += dst_pitch;
- ecx >>= FP; src_fx = src_fbx;
- src_x = src_fbx; src_fx += src_fdx;
- ecx <<= 4; src_ptr = src_base;
- src_x >>= FP; src_ptr += ecx;
- ecx = dst_w;
- }
- while (--dst_h);
- }
- else
- {
- switch (drawmode)
- {
- case 0: // all pens solid
- do {
- do {
- eax = src_ptr[src_x];
- src_x = src_fx;
- src_fx += src_fdx;
- src_x >>= FP;
- if (!eax || ozbuf_ptr[ecx] < z8) continue;
- eax = pal_base[eax];
- ozbuf_ptr[ecx] = z8;
- dst_ptr [ecx] = eax;
- }
- while (++ecx);
-
- ecx = src_fby; src_fby += src_fdy;
- ozbuf_ptr += GX_ZBUFW;
- dst_ptr += dst_pitch;
- ecx >>= FP; src_fx = src_fbx;
- src_x = src_fbx; src_fx += src_fdx;
- ecx <<= 4; src_ptr = src_base;
- src_x >>= FP; src_ptr += ecx;
- ecx = dst_w;
- }
- while (--dst_h);
- break;
-
- case 1: // solid pens only
- do {
- do {
- eax = src_ptr[src_x];
- src_x = src_fx;
- src_fx += src_fdx;
- src_x >>= FP;
- if (!eax || eax >= shdpen || ozbuf_ptr[ecx] < z8) continue;
- eax = pal_base[eax];
- ozbuf_ptr[ecx] = z8;
- dst_ptr [ecx] = eax;
- }
- while (++ecx);
-
- ecx = src_fby; src_fby += src_fdy;
- ozbuf_ptr += GX_ZBUFW;
- dst_ptr += dst_pitch;
- ecx >>= FP; src_fx = src_fbx;
- src_x = src_fbx; src_fx += src_fdx;
- ecx <<= 4; src_ptr = src_base;
- src_x >>= FP; src_ptr += ecx;
- ecx = dst_w;
- }
- while (--dst_h);
- break;
-
- case 2: // all pens solid with alpha blending
- do {
- do {
- eax = src_ptr[src_x];
- src_x = src_fx;
- src_fx += src_fdx;
- src_x >>= FP;
- if (!eax || ozbuf_ptr[ecx] < z8) continue;
- ozbuf_ptr[ecx] = z8;
-
- dst_ptr[ecx] = alpha_blend_r32(pal_base[eax], dst_ptr[ecx], alpha);
- }
- while (++ecx);
-
- ecx = src_fby; src_fby += src_fdy;
- ozbuf_ptr += GX_ZBUFW;
- dst_ptr += dst_pitch;
- ecx >>= FP; src_fx = src_fbx;
- src_x = src_fbx; src_fx += src_fdx;
- ecx <<= 4; src_ptr = src_base;
- src_x >>= FP; src_ptr += ecx;
- ecx = dst_w;
- }
- while (--dst_h);
- break;
-
- case 3: // solid pens only with alpha blending
- do {
- do {
- eax = src_ptr[src_x];
- src_x = src_fx;
- src_fx += src_fdx;
- src_x >>= FP;
- if (!eax || eax >= shdpen || ozbuf_ptr[ecx] < z8) continue;
- ozbuf_ptr[ecx] = z8;
-
- dst_ptr[ecx] = alpha_blend_r32(pal_base[eax], dst_ptr[ecx], alpha);
- }
- while (++ecx);
-
- ecx = src_fby; src_fby += src_fdy;
- ozbuf_ptr += GX_ZBUFW;
- dst_ptr += dst_pitch;
- ecx >>= FP; src_fx = src_fbx;
- src_x = src_fbx; src_fx += src_fdx;
- ecx <<= 4; src_ptr = src_base;
- src_x >>= FP; src_ptr += ecx;
- ecx = dst_w;
- }
- while (--dst_h);
- break;
-
- case 4: // shadow pens only
- do {
- do {
- eax = src_ptr[src_x];
- src_x = src_fx;
- src_fx += src_fdx;
- src_x >>= FP;
- if (eax < shdpen || szbuf_ptr[ecx*2] < z8 || szbuf_ptr[ecx*2+1] <= p8) continue;
- //UINT32 pix = dst_ptr[ecx];
- szbuf_ptr[ecx*2] = z8;
- szbuf_ptr[ecx*2+1] = p8;
-
- // the shadow tables are 15-bit lookup tables which accept RGB15... lossy, nasty, yuck!
- if (highlight_enable) {
- dst_ptr[ecx] = highlight_blend(dst_ptr[ecx]);
- } else {
- dst_ptr[ecx] = shadow_blend(dst_ptr[ecx]); //shd_base[pix.as_rgb15()];
- }
- //dst_ptr[ecx] =(eax>>3&0x001f);lend_r32( eax, 0x00000000, 128);
- }
- while (++ecx);
-
- ecx = src_fby; src_fby += src_fdy;
- szbuf_ptr += (GX_ZBUFW<<1);
- dst_ptr += dst_pitch;
- ecx >>= FP; src_fx = src_fbx;
- src_x = src_fbx; src_fx += src_fdx;
- ecx <<= 4; src_ptr = src_base;
- src_x >>= FP; src_ptr += ecx;
- ecx = dst_w;
- }
- while (--dst_h);
- break;
- } // switch (drawmode)
- } // if (zcode < 0)
- } // if (!nozoom)
- else
- {
- src_ptr = src_base + (src_fby<<4) + src_fbx;
- src_fdy = src_fdx * dst_w + src_pitch;
- ecx = dst_w;
-
- if (zcode < 0) // no shadow and z-buffering
- {
- do {
- do {
- eax = *src_ptr;
- src_ptr += src_fdx;
- if (!eax || eax >= shdpen) continue;
- dst_ptr[ecx] = pal_base[eax];
- }
- while (++ecx);
-
- src_ptr += src_fdy;
- dst_ptr += dst_pitch;
- ecx = dst_w;
- }
- while (--dst_h);
- }
- else
- {
- switch (drawmode)
- {
- case 0: // all pens solid
- do {
- do {
- eax = *src_ptr;
- src_ptr += src_fdx;
- if (!eax || ozbuf_ptr[ecx] < z8) continue;
- eax = pal_base[eax];
- ozbuf_ptr[ecx] = z8;
- dst_ptr[ecx] = eax;
- }
- while (++ecx);
-
- src_ptr += src_fdy;
- ozbuf_ptr += GX_ZBUFW;
- dst_ptr += dst_pitch;
- ecx = dst_w;
- }
- while (--dst_h);
- break;
-
- case 1: // solid pens only
- do {
- do {
- eax = *src_ptr;
- src_ptr += src_fdx;
- if (!eax || eax >= shdpen || ozbuf_ptr[ecx] < z8) continue;
- eax = pal_base[eax];
- ozbuf_ptr[ecx] = z8;
- dst_ptr[ecx] = eax;
- }
- while (++ecx);
-
- src_ptr += src_fdy;
- ozbuf_ptr += GX_ZBUFW;
- dst_ptr += dst_pitch;
- ecx = dst_w;
- }
- while (--dst_h);
- break;
-
- case 2: // all pens solid with alpha blending
- do {
- do {
- eax = *src_ptr;
- src_ptr += src_fdx;
- if (!eax || ozbuf_ptr[ecx] < z8) continue;
- ozbuf_ptr[ecx] = z8;
-
- dst_ptr[ecx] = alpha_blend_r32(pal_base[eax], dst_ptr[ecx], alpha);
- }
- while (++ecx);
-
- src_ptr += src_fdy;
- ozbuf_ptr += GX_ZBUFW;
- dst_ptr += dst_pitch;
- ecx = dst_w;
- }
- while (--dst_h);
- break;
-
- case 3: // solid pens only with alpha blending
- do {
- do {
- eax = *src_ptr;
- src_ptr += src_fdx;
- if (!eax || eax >= shdpen || ozbuf_ptr[ecx] < z8) continue;
- ozbuf_ptr[ecx] = z8;
-
- dst_ptr[ecx] = alpha_blend_r32(pal_base[eax], dst_ptr[ecx], alpha);
- }
- while (++ecx);
-
- src_ptr += src_fdy;
- ozbuf_ptr += GX_ZBUFW;
- dst_ptr += dst_pitch;
- ecx = dst_w;
- }
- while (--dst_h);
- break;
-
- case 4: // shadow pens only
- do {
- do {
- eax = *src_ptr;
- src_ptr += src_fdx;
- if (eax < shdpen || szbuf_ptr[ecx*2] < z8 || szbuf_ptr[ecx*2+1] <= p8) continue;
- //UINT32 pix = dst_ptr[ecx];
- szbuf_ptr[ecx*2] = z8;
- szbuf_ptr[ecx*2+1] = p8;
-
- // the shadow tables are 15-bit lookup tables which accept RGB15... lossy, nasty, yuck!
- if (highlight_enable) {
- dst_ptr[ecx] = highlight_blend(dst_ptr[ecx]);
- } else {
- dst_ptr[ecx] = shadow_blend(dst_ptr[ecx]); //shd_base[pix.as_rgb15()];
- }
- }
- while (++ecx);
-
- src_ptr += src_fdy;
- szbuf_ptr += (GX_ZBUFW<<1);
- dst_ptr += dst_pitch;
- ecx = dst_w;
- }
- while (--dst_h);
- break;
- }
- }
- }
-#undef FP
-#undef FPONE
-#undef FPHALF
-#undef FPENT
-}
-
-
-
-
-
-void k053247_draw_yxloop_gx(
- INT32 code,
- INT32 color,
- INT32 height, INT32 width,
- INT32 zoomx, INT32 zoomy, INT32 flipx, INT32 flipy,
- INT32 ox, INT32 oy,
- INT32 xa, INT32 ya,
- INT32 mirrorx, INT32 mirrory,
- INT32 nozoom,
- /* gx specifics */
- INT32 pri,
- INT32 zcode, INT32 alpha, INT32 drawmode,
- UINT8* gx_objzbuf, UINT8* gx_shdzbuf,
- /* non-gx specifics */
- INT32 /*primask*/,
- UINT8* /*whichtable*/
- )
- {
- static const INT32 xoffset[8] = { 0, 1, 4, 5, 16, 17, 20, 21 };
- static const INT32 yoffset[8] = { 0, 2, 8, 10, 32, 34, 40, 42 };
- INT32 zw,zh;
- INT32 fx, fy, sx, sy;
- INT32 tempcode;
-
- for (INT32 y=0; y> 12);
- zh = (oy + ((zoomy * (y+1) + (1<<11)) >> 12)) - sy;
-
- for (INT32 x=0; x> 12);
- zw = (ox + ((zoomx * (x+1) + (1<<11)) >> 12)) - sx;
- tempcode = code;
-
- if (mirrorx)
- {
- if ((!flipx)^((x<<1)=height))
- {
- /* mirror top/bottom */
- tempcode += yoffset[(height-1-y+ya)&7];
- fy = 1;
- }
- else
- {
- tempcode += yoffset[(y+ya)&7];
- fy = 0;
- }
- }
- else
- {
- if (flipy) tempcode += yoffset[(height-1-y+ya)&7];
- else tempcode += yoffset[(y+ya)&7];
- fy = flipy;
- }
-
- {
- if (nozoom) { zw = zh = 0x10; }
-
- zdrawgfxzoom32GP(
- tempcode,
- color,
- fx,fy,
- sx,sy,
- zw << 12, zh << 12, alpha, drawmode, zcode, pri,
- gx_objzbuf, gx_shdzbuf
- );
-
- }
- } // end of X loop
- } // end of Y loop
- }
-
-
-
-
-void k053247_draw_single_sprite_gxcore(UINT8 *gx_objzbuf, UINT8 *gx_shdzbuf, INT32 code, UINT16 *gx_spriteram, INT32 offs,
- INT32 color, INT32 alpha, INT32 drawmode, INT32 zcode, INT32 pri,
- INT32 /*primask*/, INT32 /*shadow*/, UINT8 */*drawmode_table*/, UINT8 */*shadowmode_table*/, INT32 /*shdmask*/)
- {
- INT32 xa,ya,ox,oy,flipx,flipy,mirrorx,mirrory,zoomx,zoomy,scalex,scaley,nozoom;
- INT32 temp, temp4;
- INT32 flipscreenx = K053246Regs[5] & 0x01;
- INT32 flipscreeny = K053246Regs[5] & 0x02;
-
- xa = ya = 0;
- if (code & 0x01) xa += 1;
- if (code & 0x02) ya += 1;
- if (code & 0x04) xa += 2;
- if (code & 0x08) ya += 2;
- if (code & 0x10) xa += 4;
- if (code & 0x20) ya += 4;
- code &= ~0x3f;
-
- temp4 = gx_spriteram[offs];
-
- // mask off the upper 6 bits of coordinate and zoom registers
- oy = gx_spriteram[offs+2] & 0x3ff;
- ox = gx_spriteram[offs+3] & 0x3ff;
-
- scaley = zoomy = gx_spriteram[offs+4] & 0x3ff;
- if (zoomy) zoomy = (0x400000+(zoomy>>1)) / zoomy;
- else zoomy = 0x800000;
- if (!(temp4 & 0x4000))
- {
- scalex = zoomx = gx_spriteram[offs+5] & 0x3ff;
- if (zoomx) zoomx = (0x400000+(zoomx>>1)) / zoomx;
- else zoomx = 0x800000;
- }
- else { zoomx = zoomy; scalex = scaley; }
-
- nozoom = (scalex == 0x40 && scaley == 0x40);
-
- flipx = temp4 & 0x1000;
- flipy = temp4 & 0x2000;
-
- temp = gx_spriteram[offs+6];
- mirrorx = temp & 0x4000;
- if (mirrorx) flipx = 0; // only applies to x mirror, proven
- mirrory = temp & 0x8000;
-
- INT32 objset1 = K053246ReadRegs(5);
- // for Escape Kids (GX975)
- if ( objset1 & 8 ) // Check only "Bit #3 is '1'?"
- {
- INT32 screenwidth = nScreenWidth-1;
-
- zoomx = zoomx>>1; // Fix sprite width to HALF size
- ox = (ox>>1) + 1; // Fix sprite draw position
-
- if (flipscreenx) ox += screenwidth;
- nozoom = 0;
- }
-
- if (flipscreenx) { ox = -ox; if (!mirrorx) flipx = !flipx; }
- if (flipscreeny) { oy = -oy; if (!mirrory) flipy = !flipy; }
-
- INT32 k053247_opset = K053247ReadRegs(0xc/2);
- INT32 wrapsize, xwraplim, ywraplim;
- if (k053247_opset & 0x40)
- {
- wrapsize = 512;
- xwraplim = 512 - 64;
- ywraplim = 512 - 128;
- }
- else
- {
- wrapsize = 1024;
- xwraplim = 1024 - 384;
- ywraplim = 1024 - 512;
- }
-
- // get "display window" offsets
- INT32 offx = (INT16)((K053246Regs[0] << 8) | K053246Regs[1]);
- INT32 offy = (INT16)((K053246Regs[2] << 8) | K053246Regs[3]);
-
- // apply wrapping and global offsets
- temp = wrapsize-1;
-
- ox += K053247_dx;
- oy -= K053247_dy;
-
- ox = ( ox - offx) & temp;
- oy = (-oy - offy) & temp;
- if (ox >= xwraplim) ox -= wrapsize;
- if (oy >= ywraplim) oy -= wrapsize;
-
- temp = temp4>>8 & 0x0f;
- INT32 width = 1 << (temp & 3);
- INT32 height = 1 << (temp>>2 & 3);
-
- ox -= (zoomx * width) >> 13;
- oy -= (zoomy * height) >> 13;
-
- k053247_draw_yxloop_gx( code,
- color,
- height, width,
- zoomx, zoomy, flipx, flipy,
- ox, oy,
- xa, ya,
- mirrorx, mirrory,
- nozoom,
- pri,
- zcode, alpha, drawmode,
- gx_objzbuf, gx_shdzbuf,
- 0,NULL
- );
- }
diff --git a/jan/src/burn/drv/konami/k053250.cpp b/jan/src/burn/drv/konami/k053250.cpp
deleted file mode 100644
index d01711c32..000000000
--- a/jan/src/burn/drv/konami/k053250.cpp
+++ /dev/null
@@ -1,490 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:Olivier Galibert
-
-#include "tiles_generic.h"
-#include "konamiic.h"
-
-static INT32 global_offx = 0;
-static INT32 global_offy = 0;
-static INT32 unpacked_size = 0;
-static UINT8 *k053250Rom;
-static UINT8 *k053250RomExp;
-
-UINT16 *K053250Ram;
-static UINT8 regs[8];
-static INT32 page = 0;
-
-static UINT16 *buffer[2];
-static INT32 frame = -1;
-
-#define ORIENTATION_FLIP_X 0x0001 /* mirror everything in the X direction */
-#define ORIENTATION_FLIP_Y 0x0002 /* mirror everything in the Y direction */
-#define ORIENTATION_SWAP_XY 0x0004 /* mirror along the top-left/bottom-right diagonal */
-
-void K053250SetOffsets(INT32 , int offx, int offy)
-{
- global_offx = offx;
- global_offy = offy;
-}
-
-static void unpack_nibbles(INT32 , UINT8 *src, UINT8 *dst, INT32 size)
-{
- for(INT32 i=0; i> 4;
- dst[2*i+1] = src[i] & 15;
- }
-
- unpacked_size = 2*size;
-}
-
-void K053250Init(INT32 , UINT8 *rom, UINT8 *romexp, INT32 size)
-{
- KonamiAllocateBitmaps();
-
- K053250Ram = (UINT16*)BurnMalloc(0x6000);
- buffer[0] = K053250Ram + 0x2000;
- buffer[1] = K053250Ram + 0x2800;
-
- k053250Rom = rom;
- k053250RomExp = romexp;
-
- unpack_nibbles(0, rom, romexp, size);
-
- KonamiIC_K053250InUse = 1;
-}
-
-void K053250Reset()
-{
- page = 0;
- frame = -1;
- memset (regs, 0, 8);
-}
-
-void K053250Exit()
-{
- BurnFree (K053250Ram);
-}
-
-void K053250Scan(INT32 nAction)
-{
- struct BurnArea ba;
-
- if (nAction & ACB_MEMORY_RAM) {
- memset(&ba, 0, sizeof(ba));
- ba.Data = K053250Ram;
- ba.nLen = 0x6000;
- ba.szName = "K053250 Ram";
- BurnAcb(&ba);
- }
-
- if (nAction & ACB_DRIVER_DATA) {
- ba.Data = regs;
- ba.nLen = 8;
- ba.szName = "K053250 Regs";
- BurnAcb(&ba);
-
- SCAN_VAR(page);
- }
-}
-
-// utility function to render a clipped scanline vertically or horizontally
-static inline void pdraw_scanline32(UINT32 *palette, UINT8 *source, int linepos, int scroll, int zoom, UINT32 clipmask, UINT32 wrapmask, UINT32 orientation, UINT8 pri)
-{
-// a sixteen-bit fixed point resolution should be adequate to our application
-#define FIXPOINT_PRECISION 16
-#define FIXPOINT_PRECISION_HALF (1<<(FIXPOINT_PRECISION-1))
-
- int end_pixel, flip, dst_min, dst_max, dst_start, dst_length;
-
- UINT32 src_wrapmask;
- UINT8 *src_base;
- int src_fx, src_fdx;
- int pix_data, dst_offset;
- UINT32 *pal_base;
- UINT8 *pri_base = konami_priority_bitmap;
- UINT32 *dst_base = konami_bitmap32;
- int dst_adv;
-
- // flip X and flip Y also switch role when the X Y coordinates are swapped
- if (!(orientation & ORIENTATION_SWAP_XY))
- {
- flip = orientation & ORIENTATION_FLIP_X;
- dst_min = 0; //cliprect.min_x;
- dst_max = nScreenWidth - 1; //cliprect.max_x;
- }
- else
- {
- flip = orientation & ORIENTATION_FLIP_Y;
- dst_min = 0; //cliprect.min_y;
- dst_max = nScreenHeight - 1; //cliprect.max_y;
- }
-
- if (clipmask)
- {
- // reject scanlines that are outside of the target bitmap's right(bottom) clip boundary
- dst_start = -scroll;
- if (dst_start > dst_max) return;
-
- // calculate target length
- dst_length = clipmask + 1;
- if (zoom) dst_length = (dst_length << 6) / zoom;
-
- // reject scanlines that are outside of the target bitmap's left(top) clip boundary
- end_pixel = dst_start + dst_length - 1;
- if (end_pixel < dst_min) return;
-
- // clip scanline tail
- if ((end_pixel -= dst_max) > 0) dst_length -= end_pixel;
-
- // reject 0-length scanlines
- if (dst_length <= 0) return;
-
- // calculate zoom factor
- src_fdx = zoom << (FIXPOINT_PRECISION-6);
-
- // clip scanline head
- end_pixel = dst_min;
- if ((end_pixel -= dst_start) > 0)
- {
- // chop scanline to the correct length and move target start location to the left(top) clip boundary
- dst_length -= end_pixel;
- dst_start = dst_min;
-
- // and skip the source for the left(top) clip region
- src_fx = end_pixel * src_fdx + FIXPOINT_PRECISION_HALF;
- }
- else
- // the point five bias is to ensure even distribution of stretched or shrinked pixels
- src_fx = FIXPOINT_PRECISION_HALF;
-
- // adjust flipped source
- if (flip)
- {
- // start from the target's clipped end if the scanline is flipped
- dst_start = dst_max + dst_min - dst_start - (dst_length-1);
-
- // and move source start location to the opposite end
- src_fx += (dst_length-1) * src_fdx - 1;
- src_fdx = -src_fdx;
- }
- }
- else
- {
- // draw wrapped scanline at virtual bitmap boundary when source clipping is off
- dst_start = dst_min;
- dst_length = dst_max - dst_min + 1; // target scanline spans the entire visible area
- src_fdx = zoom << (FIXPOINT_PRECISION-6);
-
- // pre-advance source for the clipped region
- if (!flip)
- src_fx = (scroll + dst_min) * src_fdx + FIXPOINT_PRECISION_HALF;
- else
- {
- src_fx = (scroll + dst_max) * src_fdx + FIXPOINT_PRECISION_HALF-1;
- src_fdx = -src_fdx;
- }
- }
-
- if (!(orientation & ORIENTATION_SWAP_XY))
- {
- // calculate target increment for horizontal scanlines which is exactly one
- dst_adv = 1;
- dst_offset = dst_length;
- pri_base = konami_priority_bitmap + (linepos * nScreenWidth) + dst_start + dst_offset; //&priority.pix8(linepos, dst_start + dst_offset);
- dst_base = konami_bitmap32 + (linepos * nScreenWidth) + dst_start + dst_length; //&bitmap.pix32(linepos, dst_start + dst_length);
- }
- else
- {
- // calculate target increment for vertical scanlines which is the bitmap's pitch value
- dst_adv = nScreenWidth;
- dst_offset= dst_length * dst_adv;
- pri_base = konami_priority_bitmap + (dst_start * nScreenWidth) + linepos + dst_offset; //&priority.pix8(dst_start, linepos + dst_offset);
- dst_base = konami_bitmap32 + (dst_start * nScreenWidth) + linepos + dst_offset; //&bitmap.pix32(dst_start, linepos + dst_offset);
- }
-
- // generalized
- src_base = source;
-
- // there is no need to wrap source offsets along with source clipping
- // so we set all bits of the wrapmask to one
- src_wrapmask = (clipmask) ? ~0 : wrapmask;
-
- pal_base = palette;
- dst_offset = -dst_offset; // negate target offset in order to terminated draw loop at 0 condition
-
- if (pri)
- {
- // draw scanline and update priority bitmap
- do
- {
- pix_data = src_base[(src_fx>>FIXPOINT_PRECISION) & src_wrapmask];
- src_fx += src_fdx;
-
- if (pix_data)
- {
- pix_data = pal_base[pix_data];
- pri_base[dst_offset] = pri;
- dst_base[dst_offset] = pix_data;
- }
- }
- while (dst_offset += dst_adv);
- }
- else
- {
- // draw scanline but do not update priority bitmap
- do
- {
- pix_data = src_base[(src_fx>>FIXPOINT_PRECISION) & src_wrapmask];
- src_fx += src_fdx;
-
- if (pix_data)
- {
- dst_base[dst_offset] = pal_base[pix_data];
- }
- }
- while (dst_offset += dst_adv);
- }
-
-#undef FIXPOINT_PRECISION
-#undef FIXPOINT_PRECISION_HALF
-}
-
-void K053250Draw(INT32 , int colorbase, int /*flags*/, int priority)
-{
- UINT8 *pix_ptr;
- UINT32 *pal_base, *pal_ptr;
- UINT8 *unpacked = k053250RomExp;
- UINT32 src_clipmask, src_wrapmask, dst_wrapmask;
- int linedata_offs, line_pos, line_start, line_end, scroll_corr;
- int color, offset, zoom, scroll, passes, i;
- bool wrap500 = false;
-
- UINT16 *line_ram = buffer[page]; // pointer to physical line RAM
- int map_scrollx = short(regs[0] << 8 | regs[1]) - global_offx; // signed horizontal scroll value
- int map_scrolly = short(regs[2] << 8 | regs[3]) - global_offy; // signed vertical scroll value
- UINT8 ctrl = regs[4]; // register four is the main control register
-
- // copy visible boundary values to more accessible locations
- int dst_minx = 0; //cliprect.min_x;
- int dst_maxx = (nScreenWidth - 1); //cliprect.max_x;
- int dst_miny = 0; //cliprect.min_y;
- int dst_maxy = (nScreenHeight - 1); //cliprect.max_y;
-
- int orientation = 0; // orientation defaults to no swapping and no flipping
- int dst_height = 512; // virtual bitmap height defaults to 512 pixels
- int linedata_adv = 4; // line info packets are four words(eight bytes) apart
-
- // switch X and Y parameters when the first bit of the control register is cleared
- if (!(ctrl & 0x01)) orientation |= ORIENTATION_SWAP_XY;
-
- // invert X parameters when the forth bit of the control register is set
- if (ctrl & 0x08) orientation |= ORIENTATION_FLIP_X;
-
- // invert Y parameters when the fifth bit of the control register is set
- if (ctrl & 0x10) orientation |= ORIENTATION_FLIP_Y;
-
- switch (ctrl >> 5) // the upper four bits of the control register select source and target dimensions
- {
- case 0 :
- // Xexex: L6 galaxies
- // Metam: L4 forest, L5 arena, L6 tower interior, final boss
-
- // crop source offset between 0 and 255 inclusive,
- // and set virtual bitmap height to 256 pixels
- src_wrapmask = src_clipmask = 0xff;
- dst_height = 0x100;
- break;
- case 1 :
- // Xexex: prologue, L7 nebulae
-
- // the source offset is cropped to 0 and 511 inclusive
- src_wrapmask = src_clipmask = 0x1ff;
- break;
- case 4 :
- // Xexex: L1 sky and boss, L3 planet, L5 poly-face, L7 battle ship patches
- // Metam: L1 summoning circle, L3 caves, L6 gargoyle towers
-
- // crop source offset between 0 and 255 inclusive,
- // and allow source offset to wrap back at 0x500 to -0x300
- src_wrapmask = src_clipmask = 0xff;
- wrap500 = true;
- break;
-// case 2 : // Xexex: title
-// case 7 : // Xexex: L4 organic stage
- default:
- // crop source offset between 0 and 1023 inclusive,
- // keep other dimensions to their defaults
- src_wrapmask = src_clipmask = 0x3ff;
- break;
- }
-
- // disable source clipping when the third bit of the control register is set
- if (ctrl & 0x04) src_clipmask = 0;
-
- if (!(orientation & ORIENTATION_SWAP_XY)) // normal orientaion with no X Y switching
- {
- line_start = dst_miny; // the first scanline starts at the minimum Y clip location
- line_end = dst_maxy; // the last scanline ends at the maximum Y clip location
- scroll_corr = map_scrollx; // concentrate global X scroll
- linedata_offs = map_scrolly; // determine where to get info for the first line
-
- if (orientation & ORIENTATION_FLIP_X)
- {
- scroll_corr = -scroll_corr; // X scroll adjustment should be negated in X flipped scenarioes
- }
-
- if (orientation & ORIENTATION_FLIP_Y)
- {
- linedata_adv = -linedata_adv; // traverse line RAM backward in Y flipped scenarioes
- linedata_offs += nScreenHeight - 1; // and get info for the first line from the bottom
- }
-
- dst_wrapmask = ~0; // scanlines don't seem to wrap horizontally in normal orientation
- passes = 1; // draw scanline in a single pass
- }
- else // orientaion with X and Y parameters switched
- {
- line_start = dst_minx; // the first scanline starts at the minimum X clip location
- line_end = dst_maxx; // the last scanline ends at the maximum X clip location
- scroll_corr = map_scrolly; // concentrate global Y scroll
- linedata_offs = map_scrollx; // determine where to get info for the first line
-
- if (orientation & ORIENTATION_FLIP_Y)
- {
- scroll_corr = 0x100 - scroll_corr; // apply common vertical correction
-
- // Y correction (ref: 1st and 5th boss)
- scroll_corr -= 2; // apply unique vertical correction
-
- // X correction (ref: 1st boss, seems to undo non-rotated global X offset)
- linedata_offs -= 5; // apply unique horizontal correction
- }
-
- if (orientation & ORIENTATION_FLIP_X)
- {
- linedata_adv = -linedata_adv; // traverse line RAM backward in X flipped scenarioes
- linedata_offs += nScreenWidth - 1; // and get info for the first line from the bottom
- }
-
- if (src_clipmask)
- {
- // determine target wrap boundary and draw scanline in two passes if the source is clipped
- dst_wrapmask = dst_height - 1;
- passes = 2;
- }
- else
- {
- // otherwise disable target wraparound and draw scanline in a single pass
- dst_wrapmask = ~0;
- passes = 1;
- }
- }
-
- linedata_offs *= 4; // each line info packet has four words(eight bytes)
- linedata_offs &= 0x7ff; // and it should wrap at the four-kilobyte boundary
- linedata_offs += line_start * linedata_adv; // pre-advance line info offset for the clipped region
-
- // load physical palette base
- pal_base = konami_palette32 + (colorbase << 4);
-
- // walk the target bitmap within the visible area vertically or horizontally, one line at a time
- for (line_pos=line_start; line_pos <= line_end; linedata_offs += linedata_adv, line_pos++)
- {
- linedata_offs &= 0x7ff; // line info data wraps at the four-kilobyte boundary
-
- color = line_ram[linedata_offs]; // get scanline color code
- if (color == 0xffff) continue; // reject scanline if color code equals minus one
-
- offset = line_ram[linedata_offs + 1]; // get first pixel offset in ROM
- if (!(color & 0xff) && !offset) continue; // reject scanline if both color and pixel offset are 0
-
- // calculate physical palette location
- // there can be thirty-two color codes and each code represents sixteen pens
- pal_ptr = pal_base + ((color & 0x1f) << 4);
-
- // calculate physical pixel location
- // each offset unit represents 256 pixels and should wrap at ROM boundary for safety
- pix_ptr = unpacked + ((offset << 8) % unpacked_size);
-
- // get scanline zoom factor
- // For example, 0x20 doubles the length, 0x40 maintains a one-to-one length,
- // and 0x80 halves the length. The zoom center is at the beginning of the
- // scanline therefore it is not necessary to adjust render start position
- zoom = line_ram[linedata_offs + 2];
-
- scroll = (short)line_ram[linedata_offs + 3]; // get signed local scroll value for the current scanline
-
- // scavenged from old code; improves Xexex' first level sky
- if (wrap500 && scroll >= 0x500) scroll -= 0x800;
-
- scroll += scroll_corr; // apply final scroll correction
- scroll &= dst_wrapmask; // wraparound scroll value if necessary
-
- // draw scanlines wrapped at virtual bitmap boundary in two passes
- // this should not impose too much overhead due to clipping performed by the render code
- i = passes;
- do
- {
- /*
- Parameter descriptions:
-
- bitmap : pointer to a MAME bitmap as the render target
- pal_ptr : pointer to the palette's physical location relative to the scanline
- pix_ptr : pointer to the physical start location of source pixels in ROM
- cliprect : pointer to a rectangle structue which describes the visible area of the target bitmap
- line_pos : scanline render position relative to the target bitmap
- should be a Y offset to the target bitmap in normal orientaion,
- or an X offset to the target bitmap if X,Y are swapped
- scroll : source scroll value of the scanline
- zoom : source zoom factor of the scanline
- src_clipmask : source offset clip mask; source pixels with offsets beyond the scope of this mask will not be drawn
- src_wrapmask : source offset wrap mask; wraps source offset around, no effect when src_clipmask is set
- orientation : flags indicating whether scanlines should be drawn horizontally, vertically, forward or backward
- priority : value to be written to the priority bitmap, no effect when equals 0
- */
- pdraw_scanline32(pal_ptr, pix_ptr,line_pos, scroll, zoom, src_clipmask, src_wrapmask, orientation, (UINT8)priority);
-
- // shift scanline position one virtual screen upward to render the wrapped end if necessary
- scroll -= dst_height;
- }
- while (--i);
- }
-}
-
-static void k053250_dma(INT32 , int limiter)
-{
- int current_frame = nCurrentFrame;
-
- if (limiter && current_frame == frame)
- return; // make sure we only do DMA transfer once per frame
-
- frame = current_frame;
- memcpy(buffer[page], K053250Ram, 0x1000);
- page ^= 1;
-}
-
-UINT16 K053250RegRead(INT32 , INT32 offset)
-{
- return regs[(offset/2)&7];
-}
-
-void K053250RegWrite(INT32 , INT32 offset, UINT8 data)
-{
- if (offset & 1)
- {
- offset = (offset / 2) & 7;
-
- // start LVC DMA transfer at the falling edge of control register's bit1
- if (offset == 4 && !(data & 2) && (regs[4] & 2))
- k053250_dma(0,1);
-
- regs[offset] = data;
- }
-}
-
-UINT16 K053250RomRead(INT32 , INT32 offset)
-{
- offset = (offset/2)&0xfff;
-
- return k053250Rom[0x80000 * regs[6] + 0x800 * regs[7] + offset/2];
-}
diff --git a/jan/src/burn/drv/konami/k053251.cpp b/jan/src/burn/drv/konami/k053251.cpp
deleted file mode 100644
index b57b51c70..000000000
--- a/jan/src/burn/drv/konami/k053251.cpp
+++ /dev/null
@@ -1,77 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:Fabio Priuli,Acho A. Tang, R. Belmont
-
-#include "burnint.h"
-
-static UINT8 K053251Ram[0x10];
-static INT32 K053251PalIndex[6];
-
-void K053251ResetIndexes()
-{
- K053251PalIndex[0] = 32 * ((K053251Ram[9] >> 0) & 0x03);
- K053251PalIndex[1] = 32 * ((K053251Ram[9] >> 2) & 0x03);
- K053251PalIndex[2] = 32 * ((K053251Ram[9] >> 4) & 0x03);
- K053251PalIndex[3] = 16 * ((K053251Ram[10] >> 0) & 0x07);
- K053251PalIndex[4] = 16 * ((K053251Ram[10] >> 3) & 0x07);
-}
-
-void K053251Reset()
-{
- memset (K053251Ram, 0, sizeof(K053251Ram));
- memset (K053251PalIndex, 0, sizeof(K053251PalIndex));
- K053251ResetIndexes();
-}
-
-void K053251Write(INT32 offset, INT32 data)
-{
- data &= 0x3f;
- offset &= 0x0f;
-
- K053251Ram[offset] = data & 0xff;
-
- if (offset == 9)
- {
- for (INT32 i = 0; i < 3; i++) {
- K053251PalIndex[0+i] = 32 * ((data >> 2*i) & 0x03);
- }
- }
- else if (offset == 10)
- {
- for (INT32 i = 0; i < 2; i++) {
- K053251PalIndex[3+i] = 16 * ((data >> 3*i) & 0x07);
- }
- }
-}
-
-INT32 K053251GetPriority(INT32 idx)
-{
- return K053251Ram[idx & 0x0f];
-}
-
-INT32 K053251GetPaletteIndex(INT32 idx)
-{
- return K053251PalIndex[idx];
-}
-
-void K053251Scan(INT32 nAction)
-{
- struct BurnArea ba;
-
- if (nAction & ACB_MEMORY_RAM) {
- memset(&ba, 0, sizeof(ba));
- ba.Data = &K053251Ram;
- ba.nLen = sizeof(K053251Ram);
- ba.szName = "K053251 Ram";
- BurnAcb(&ba);
-
- SCAN_VAR(K053251PalIndex[0]);
- SCAN_VAR(K053251PalIndex[1]);
- SCAN_VAR(K053251PalIndex[2]);
- SCAN_VAR(K053251PalIndex[3]);
- SCAN_VAR(K053251PalIndex[4]);
-
- if (nAction & ACB_WRITE) {
- K053251ResetIndexes();
- }
- }
-}
diff --git a/jan/src/burn/drv/konami/k053936.cpp b/jan/src/burn/drv/konami/k053936.cpp
deleted file mode 100644
index e56bff199..000000000
--- a/jan/src/burn/drv/konami/k053936.cpp
+++ /dev/null
@@ -1,719 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:David Haywood
-
-#include "tiles_generic.h"
-#include "konamiic.h"
-
-#define MAX_K053936 2
-
-static INT32 nRamLen[MAX_K053936] = { 0, 0 };
-static INT32 nWidth[MAX_K053936] = { 0, 0 };
-static INT32 nHeight[MAX_K053936] = { 0, 0 };
-static UINT16 *tscreen[MAX_K053936] = { NULL, NULL };
-static UINT8 *ramptr[MAX_K053936] = { NULL, NULL };
-static UINT8 *rambuf[MAX_K053936] = { NULL, NULL };
-
-static INT32 K053936Wrap[MAX_K053936] = { 0, 0 };
-static INT32 K053936Offset[MAX_K053936][2] = { { 0, 0 }, { 0, 0 } };
-
-static INT32 glfgreat_mode = 0;
-
-static void (*pTileCallback0)(INT32 offset, UINT16 *ram, INT32 *code, INT32 *color, INT32 *sx, INT32 *sy, INT32 *fx, INT32 *fy);
-static void (*pTileCallback1)(INT32 offset, UINT16 *ram, INT32 *code, INT32 *color, INT32 *sx, INT32 *sy, INT32 *fx, INT32 *fy);
-
-void K053936Reset()
-{
- for (INT32 i = 0; i < MAX_K053936; i++) {
- if (rambuf[i]) {
- memset (rambuf[i], 0xff, nRamLen[i]);
- }
- }
-}
-
-void K053936Init(INT32 chip, UINT8 *ram, INT32 len, INT32 w, INT32 h, void (*pCallback)(INT32 offset, UINT16 *ram, INT32 *code, INT32 *color, INT32 *sx, INT32 *sy, INT32 *fx, INT32 *fy))
-{
- ramptr[chip] = ram;
-
- nRamLen[chip] = len;
-
- if (rambuf[chip] == NULL) {
- rambuf[chip] = (UINT8*)BurnMalloc(len);
- memset (rambuf[chip], 0xff, len);
- }
-
- nWidth[chip] = w;
- nHeight[chip] = h;
-
- if (tscreen[chip] == NULL) {
- tscreen[chip] = (UINT16*)BurnMalloc(w * h * 2);
-
- for (INT32 i = 0; i < w*h; i++) {
- tscreen[chip][i] = 0x8000;
- }
- }
-
- if (chip == 0) {
- pTileCallback0 = pCallback;
- }
- if (chip == 1) {
- pTileCallback1 = pCallback;
- }
-
- KonamiAllocateBitmaps();
-
- KonamiIC_K053936InUse = 1;
-}
-
-void K053936Exit()
-{
- for (INT32 i = 0; i < MAX_K053936; i++) {
- nRamLen[i] = 0;
- nWidth[i] = 0;
- nHeight[i] = 0;
- BurnFree (tscreen[i]);
- ramptr[i] = NULL;
- BurnFree (rambuf[i]);
- K053936Wrap[i] = 0;
- K053936Offset[i][0] = K053936Offset[i][1] = 0;
- }
-
- KonamiIC_K053936InUse = 0;
-}
-
-void K053936PredrawTiles3(INT32 chip, UINT8 *gfx, INT32 tile_size_x, INT32 tile_size_y, INT32 transparent)
-{
- UINT16 *ram = (UINT16*)ramptr[chip];
- UINT16 *buf = (UINT16*)rambuf[chip];
-
- INT32 tilemap_height = nHeight[chip];
- INT32 tilemap_width = nWidth[chip];
- INT32 tilemap_wide = tilemap_width / tile_size_x;
- INT32 tilemap_high = tilemap_height / tile_size_y;
-
- INT32 xflip = (tile_size_x - 1);
- INT32 yflip = (tile_size_y - 1);
-
- for (INT32 i = 0; i < tilemap_wide * tilemap_high; i++)
- {
- if (ram[i] != buf[i])
- {
- INT32 sx = (i % tilemap_wide) * tile_size_x;
- INT32 sy = (i / tilemap_wide) * tile_size_y;
-
- INT32 flipx = 0;
- INT32 flipy = 0;
- INT32 code = 0;
- INT32 color = 0;
-
- if (chip==0)
- pTileCallback0(i, ram, &code, &color, &sx, &sy, &flipx, &flipy);
- else
- pTileCallback1(i, ram, &code, &color, &sx, &sy, &flipx, &flipy);
-
- // draw tile
- {
- INT32 flip = 0;
- if (flipx) flip += xflip;
- if (flipy) flip += yflip;
- UINT8 *src = gfx + (code * tile_size_x * tile_size_y);
- UINT16 *dst = tscreen[chip] + (sy * tilemap_width) + sx;
-
- for (INT32 y = 0; y < tile_size_y; y++) {
- for (INT32 x = 0; x < tile_size_x; x++) {
- dst[x] = src[((y*tile_size_x)+x)^flip] + color;
- if (src[x] == transparent) dst[x] |= 0x8000;
- }
- dst += tilemap_width;
- }
- }
-
- buf[i] = ram[i];
- }
- }
-}
-
-void K053936PredrawTiles2(INT32 chip, UINT8 *gfx)
-{
- UINT16 *ram = (UINT16*)ramptr[chip];
- UINT16 *buf = (UINT16*)rambuf[chip];
-
- for (INT32 i = 0; i < (nWidth[chip] / 16) * (nHeight[chip] / 16); i++)
- {
- if (ram[(i*2)+0] != buf[(i*2)+0] || ram[(i*2)+1] != buf[(i*2)+1])
- {
- INT32 sx = (i % (nWidth[chip]/16)) * 16;
- INT32 sy = i / (nWidth[chip]/16) * 16;
- INT32 code = 0;
- INT32 color = 0;
- INT32 flipx = 0;
- INT32 flipy = 0;
-
- if (chip) {
- pTileCallback1(i, ram, &code, &color, &sx, &sy, &flipx, &flipy);
- } else {
- pTileCallback0(i, ram, &code, &color, &sx, &sy, &flipx, &flipy);
- }
-
- // draw tile
- {
- INT32 flip = 0;
- if (flipx) flip = 0x0f;
- if (flipy) flip |= 0xf0;
-
- UINT8 *src = gfx + (code * 16 * 16);
- UINT16 *dst = tscreen[chip] + (sy * nWidth[chip]) + sx;
-
- for (INT32 y = 0; y < 16; y++) {
- for (INT32 x = 0; x < 16; x++) {
- INT32 pxl = src[((y << 4) | x) ^ flip];
- if (pxl == 0) pxl |= 0x8000;
- dst[x] = (pxl | color);
- }
- dst += nWidth[chip];
- }
- }
- }
- buf[(i*2)+0] = ram[(i*2)+0];
- buf[(i*2)+1] = ram[(i*2)+1];
- }
-}
-
-void K053936PredrawTiles(INT32 chip, UINT8 *gfx, INT32 transparent, INT32 tcol)
-{
- INT32 twidth = nWidth[chip];
- UINT16 *ram = (UINT16*)ramptr[chip];
- UINT16 *buf = (UINT16*)rambuf[chip];
-
- for (INT32 i = 0; i < nRamLen[chip] / 2; i++)
- {
- if (ram[i] != buf[i]) {
- INT32 sx = 0;
- INT32 sy = 0;
- INT32 code = 0;
- INT32 color = 0;
- INT32 fx = 0;
- INT32 fy = 0;
-
- if (chip) {
- pTileCallback1(i, ram, &code, &color, &sx, &sy, &fx, &fy);
- } else {
- pTileCallback0(i, ram, &code, &color, &sx, &sy, &fx, &fy);
- }
-
- if (code == -1) continue;
-
- // draw tile
- {
- if (fy) fy = 0xf0;
- if (fx) fy |= 0x0f;
-
- UINT8 *src = gfx + (code * 16 * 16);
- UINT16 *sdst = tscreen[chip] + (sy * twidth) + sx;
-
- for (INT32 y = 0; y < 16; y++) {
- for (INT32 x = 0; x < 16; x++) {
- INT32 pxl = src[((y << 4) | x) ^ fy];
- if (transparent) {
- if (pxl == tcol) pxl |= 0x8000;
- }
-
- sdst[x] = pxl | color;
- }
- sdst += twidth;
- }
- }
- }
- buf[i] = ram[i];
- }
-}
-
-static inline void copy_roz(INT32 chip, INT32 minx, INT32 maxx, INT32 miny, INT32 maxy, UINT32 startx, UINT32 starty, INT32 incxx, INT32 incxy, INT32 incyx, INT32 incyy, INT32 transp, INT32 priority)
-{
- if (incxx == (1 << 16) && incxy == 0 && incyx == 0 && incyy == (1 << 16) && K053936Wrap[chip])
- {
- INT32 scrollx = startx >> 16;
- INT32 scrolly = starty >> 16;
-
- for (INT32 sy = 0; sy < nScreenHeight; sy++) {
- UINT8 *pri = konami_priority_bitmap + (sy * nScreenWidth);
- UINT16 *src = tscreen[chip] + (((scrolly + sy) % nHeight[chip]) * nWidth[chip]);
- UINT32 *dst = konami_bitmap32 + (sy * nScreenWidth);
-
- for (INT32 sx = 0; sx < nScreenWidth; sx++) {
- INT32 pxl = src[(scrollx+sx)%nWidth[chip]];
- if ((pxl & 0x8000)!=0 && transp) continue;
-
- dst[sx] = konami_palette32[pxl & 0x7fff];
- pri[sx] = priority;
- }
- }
- return;
- }
-
- UINT8 *pri = konami_priority_bitmap;
- UINT32 *dst = konami_bitmap32;
- UINT32 *pal = konami_palette32;
- UINT16 *src = tscreen[chip];
-
- INT32 width = nWidth[chip];
- INT32 hmask = nHeight[chip] - 1;
- INT32 wmask = nWidth[chip] - 1;
-
- INT32 wrap = K053936Wrap[chip];
-
- for (INT32 sy = miny; sy < maxy; sy++, startx+=incyx, starty+=incyy)
- {
- UINT32 cx = startx;
- UINT32 cy = starty;
-
- if (transp) {
- if (wrap) {
- for (INT32 x = minx; x < maxx; x++, cx+=incxx, cy+=incxy, dst++, pri++)
- {
- INT32 pxl = src[(((cy >> 16) & hmask) * width) + ((cx >> 16) & wmask)];
-
- if (!(pxl & 0x8000)) {
- *dst = pal[pxl];
- *pri = priority;
- }
- }
- } else {
- for (INT32 x = minx; x < maxx; x++, cx+=incxx, cy+=incxy, dst++, pri++)
- {
- INT32 yy = cy >> 16;
- if (yy > hmask || yy < 0) continue;
- INT32 xx = cx >> 16;
- if (xx > wmask || xx < 0) continue;
-
- INT32 pxl = src[(yy * width) + xx];
-
- if (!(pxl & 0x8000)) {
- *dst = pal[pxl];
- *pri = priority;
- }
- }
- }
- } else {
- if (wrap) {
- for (INT32 x = minx; x < maxx; x++, cx+=incxx, cy+=incxy, dst++, pri++) {
- *dst = pal[src[(((cy >> 16) & hmask) * width) + ((cx >> 16) & wmask)] & 0x7fff];
- *pri = priority;
- }
- } else {
- for (INT32 x = minx; x < maxx; x++, cx+=incxx, cy+=incxy, dst++, pri++) {
- INT32 yy = cy >> 16;
- if (yy > hmask || yy < 0) continue;
- INT32 xx = cx >> 16;
- if (xx > wmask || xx < 0) continue;
-
- *dst = pal[src[(yy * width) + xx] & 0x7fff];
- *pri = priority;
- }
- }
- }
- }
-}
-
-void K053936Draw(INT32 chip, UINT16 *ctrl, UINT16 *linectrl, INT32 flags)
-{
- INT32 transp = flags & 0xff;
- INT32 priority = (flags >> 8) & 0xff;
-
- if (ctrl[0x07] & 0x0040 && linectrl) // Super!
- {
- UINT32 startx,starty;
- INT32 incxx,incxy;
-
- INT32 minx, maxx, maxy, miny, y;
-
- if ((ctrl[0x07] & 0x0002) && ctrl[0x09] && glfgreat_mode) // glfgreat
- {
- minx = ctrl[0x08] + K053936Offset[chip][0]+2;
- maxx = ctrl[0x09] + K053936Offset[chip][0]+2 - 1;
- if (minx < 0) minx = 0;
- if (maxx > nScreenWidth) maxx = nScreenWidth;
-
- y = ctrl[0x0a] + K053936Offset[chip][1]-2;
- if (y < 0) y = 0;
- maxy = ctrl[0x0b] + K053936Offset[chip][1]-2 - 1;
- if (maxy > nScreenHeight) maxy = nScreenHeight;
- }
- else
- {
- minx = 0;
- maxx = nScreenWidth;
-
- y = 0;
- maxy = nScreenHeight;
- }
-
- while (y <= maxy)
- {
- UINT16 *lineaddr = linectrl + 4*((y - K053936Offset[chip][1]) & 0x1ff);
- miny = maxy = y;
-
- startx = 256 * (INT16)(lineaddr[0] + ctrl[0x00]);
- starty = 256 * (INT16)(lineaddr[1] + ctrl[0x01]);
- incxx = (INT16)(lineaddr[2]);
- incxy = (INT16)(lineaddr[3]);
-
- if (ctrl[0x06] & 0x8000) incxx *= 256;
- if (ctrl[0x06] & 0x0080) incxy *= 256;
-
- startx -= K053936Offset[chip][0] * incxx;
- starty -= K053936Offset[chip][0] * incxy;
-
- copy_roz(chip, minx, maxx, miny, maxy, startx << 5, starty << 5, incxx << 5, incxy << 5, 0, 0, transp, priority);
-
- y++;
- }
- }
- else // simple
- {
- UINT32 startx, starty;
- INT32 incxx, incxy, incyx, incyy;
-
- startx = 256 * (INT16)(ctrl[0x00]);
- starty = 256 * (INT16)(ctrl[0x01]);
- incyx = (INT16)(ctrl[0x02]);
- incyy = (INT16)(ctrl[0x03]);
- incxx = (INT16)(ctrl[0x04]);
- incxy = (INT16)(ctrl[0x05]);
-
- if (ctrl[0x06] & 0x4000)
- {
- incyx *= 256;
- incyy *= 256;
- }
-
- if (ctrl[0x06] & 0x0040)
- {
- incxx *= 256;
- incxy *= 256;
- }
-
- startx -= K053936Offset[chip][1] * incyx;
- starty -= K053936Offset[chip][1] * incyy;
-
- startx -= K053936Offset[chip][0] * incxx;
- starty -= K053936Offset[chip][0] * incxy;
-
- copy_roz(chip, 0, nScreenWidth, 0, nScreenHeight, startx << 5, starty << 5, incxx << 5, incxy << 5, incyx << 5, incyy << 5, transp, priority);
- }
-}
-
-void K053936EnableWrap(INT32 chip, INT32 status)
-{
- K053936Wrap[chip] = status;
-}
-
-void K053936SetOffset(INT32 chip, INT32 xoffs, INT32 yoffs)
-{
- K053936Offset[chip][0] = xoffs;
- K053936Offset[chip][1] = yoffs;
-}
-
-void K053936Scan(INT32 nAction)
-{
- if (nAction & ACB_DRIVER_DATA) {
- SCAN_VAR(K053936Wrap[0]);
- SCAN_VAR(K053936Wrap[1]);
- }
-}
-
-
-// this is not safe to hook up to any other driver than mystwarr!!!!!!!!
-
-static INT32 K053936_clip_enabled[2];
-static INT32 K053936_cliprect[2][4];
-static INT32 K053936_offset[2][2];
-static INT32 K053936_enable[2] = { 0, 0 };
-static INT32 K053936_color[2] = { 0, 0 };
-UINT16 *m_k053936_0_ctrl_16 = NULL;
-UINT16 *m_k053936_0_linectrl_16 = NULL;
-UINT16 *m_k053936_0_ctrl = NULL;
-UINT16 *m_k053936_0_linectrl = NULL;
-UINT16 *K053936_external_bitmap = NULL;
-
-void K053936GpInit()
-{
-
-}
-
-void K053936GPExit()
-{
- K053936_clip_enabled[0] = K053936_clip_enabled[1] = 0;
- K053936_enable[0] = K053936_enable[1] = 0;
- K053936_color[0] = K053936_color[1] = 0;
- memset(K053936_cliprect,0,sizeof(K053936_cliprect)); //2*4*sizeof(INT32));
- memset(K053936_offset,0,sizeof(K053936_offset)); //2*2*sizeof(INT32));
- m_k053936_0_ctrl_16 = NULL;
- m_k053936_0_linectrl_16 = NULL;
- m_k053936_0_ctrl = NULL;
- m_k053936_0_linectrl = NULL;
- K053936_external_bitmap = NULL;
-}
-
-static inline UINT32 alpha_blend(UINT32 d, UINT32 s, UINT32 p)
-{
- if (p == 0) return d;
-
- INT32 a = 256 - p;
-
- return (((((s & 0xff00ff) * p) + ((d & 0xff00ff) * a)) & 0xff00ff00) |
- ((((s & 0x00ff00) * p) + ((d & 0x00ff00) * a)) & 0x00ff0000)) >> 8;
-}
-
-void K053936GP_set_colorbase(INT32 chip, INT32 color_base)
-{
- K053936_color[chip] = color_base;
-}
-
-void K053936GP_enable(INT32 chip, INT32 enable)
-{
- K053936_enable[chip] = enable;
-}
-
-void K053936GP_set_offset(INT32 chip, INT32 xoffs, INT32 yoffs) { K053936_offset[chip][0] = xoffs; K053936_offset[chip][1] = yoffs; }
-
-void K053936GP_clip_enable(INT32 chip, INT32 status) { K053936_clip_enabled[chip] = status; }
-
-void K053936GP_set_cliprect(INT32 chip, INT32 minx, INT32 maxx, INT32 miny, INT32 maxy)
-{
- K053936_cliprect[chip][0] = minx;
- K053936_cliprect[chip][1] = maxx;
- K053936_cliprect[chip][2] = miny;
- K053936_cliprect[chip][3] = maxy;
-}
-
-static inline void K053936GP_copyroz32clip(INT32 chip, UINT16 *src_bitmap, INT32 *my_clip, UINT32 _startx,UINT32 _starty,INT32 _incxx,INT32 _incxy,INT32 _incyx,INT32 _incyy,
- INT32 tilebpp, INT32 blend, INT32 alpha, INT32 clip, INT32 pixeldouble_output)
-{
- static const INT32 colormask[8]={1,3,7,0xf,0x1f,0x3f,0x7f,0xff};
- INT32 cy, cx;
- INT32 ecx;
- INT32 src_pitch, incxy, incxx;
- INT32 src_minx, src_maxx, src_miny, src_maxy, cmask;
- UINT16 *src_base;
- INT32 src_size;
-
- const UINT32 *pal_base;
- INT32 dst_ptr;
- INT32 dst_size;
- INT32 dst_base2;
-
- INT32 tx, dst_pitch;
- UINT32 *dst_base;
- INT32 starty, incyy, startx, incyx, ty, sx, sy;
-
- incxy = _incxy; incxx = _incxx; incyy = _incyy; incyx = _incyx;
- starty = _starty; startx = _startx;
-
- INT32 color_base = K053936_color[chip];
-
- if (clip) // set source clip range to some extreme values when disabled
- {
- src_minx = K053936_cliprect[chip][0];
- src_maxx = K053936_cliprect[chip][1];
- src_miny = K053936_cliprect[chip][2];
- src_maxy = K053936_cliprect[chip][3];
- }
- // this simply isn't safe to do!
- else { src_minx = src_miny = -0x10000; src_maxx = src_maxy = 0x10000; }
-
- // set target clip range
- sx = my_clip[0];
- tx = my_clip[1] - sx + 1;
- sy = my_clip[2];
- ty = my_clip[3] - sy + 1;
-
- startx += sx * incxx + sy * incyx;
- starty += sx * incxy + sy * incyy;
-
- // adjust entry points and other loop constants
- dst_pitch = nScreenWidth;
- dst_base = konami_bitmap32;
- dst_base2 = sy * dst_pitch + sx + tx;
- ecx = tx = -tx;
-
- tilebpp = (tilebpp-1) & 7;
- pal_base = konami_palette32;
- cmask = colormask[tilebpp];
-
- src_pitch = 0x2000;
- src_base = src_bitmap;
- src_size = 0x2000 * 0x2000;
- dst_size = nScreenWidth * nScreenHeight;
- dst_ptr = 0;//dst_base;
- cy = starty;
- cx = startx;
-
- if (blend > 0)
- {
- dst_ptr += dst_pitch; // draw blended
- starty += incyy;
- startx += incyx;
-
- do {
- do {
- INT32 srcx = (cx >> 16) & 0x1fff;
- INT32 srcy = (cy >> 16) & 0x1fff;
- INT32 pixel;
- INT32 offs;
- offs = srcy * src_pitch + srcx;
-
- cx += incxx;
- cy += incxy;
-
- if (offs>=src_size||offs<0)
- continue;
-
- if (srcx < src_minx || srcx > src_maxx || srcy < src_miny || srcy > src_maxy)
- continue;
-
- pixel = src_base[offs]|color_base;
- if (!(pixel & cmask))
- continue;
-// this one below is borked.
- if ((dst_ptr+ecx+dst_base2)> 16) & 0x1fff;
- INT32 srcy = (cy >> 16) & 0x1fff;
- INT32 pixel;
- INT32 offs;
-
- offs = srcy * src_pitch + srcx;
-
- cx += incxx;
- cy += incxy;
-
- if (offs>=src_size||offs<0)
- continue;
-
- if (srcx < src_minx || srcx > src_maxx || srcy < src_miny || srcy > src_maxy)
- continue;
-
- pixel = src_base[offs]|color_base;
- if (!(pixel & cmask))
- continue;
-
- if ((dst_ptr+ecx+dst_base2)= 0x100)
- d -= 0x200;
- m_shd_rgb[i] = d;
- }
-}
-
-void K054338_export_config(INT32 **shd_rgb)
-{
- *shd_rgb = m_shd_rgb;
-}
-
-// k054338 BG color fill
-void K054338_fill_solid_bg()
-{
- UINT32 bgcolor;
- UINT32 *pLine;
- INT32 x, y;
-
- bgcolor = (K054338_read_register(K338_REG_BGC_R)&0xff)<<16;
- bgcolor |= K054338_read_register(K338_REG_BGC_GB);
-
- /* and fill the screen with it */
- for (y = 0; y < nScreenHeight; y++)
- {
- pLine = konami_bitmap32;
- pLine += (nScreenWidth*y);
- for (x = 0; x < nScreenWidth; x++)
- *pLine++ = bgcolor;
- }
-}
-
-// Unified k054338/K055555 BG color fill
-void K054338_fill_backcolor(INT32 palette_offset, INT32 mode) // (see p.67)
-{
- INT32 clipx, clipy, clipw, cliph, i, dst_pitch;
- INT32 BGC_CBLK, BGC_SET;
- UINT32 *dst_ptr, *pal_ptr;
- INT32 bgcolor;
-
- clipx = 0 & ~3;
- clipy = 0;
- clipw = ((nScreenWidth - 1) + 4) & ~3;
- cliph = (nScreenHeight-1) + 1;
-
- dst_ptr = konami_bitmap32 + palette_offset;
- dst_pitch = nScreenWidth;
- dst_ptr += 0;
-
- BGC_SET = 0;
- pal_ptr = konami_palette32;
-
- if (!mode)
- {
- // single color output from CLTC
- bgcolor = (int)(k54338_regs[K338_REG_BGC_R]&0xff)<<16 | (int)k54338_regs[K338_REG_BGC_GB];
- }
- else
- {
- BGC_CBLK = K055555ReadRegister(0);
- BGC_SET = K055555ReadRegister(1);
- pal_ptr += BGC_CBLK << 9;
-
- // single color output from PCU2
- if (!(BGC_SET & 2)) { bgcolor = *pal_ptr; mode = 0; } else bgcolor = 0;
- }
-
- if (!mode)
- {
- // single color fill
- dst_ptr += clipw;
- i = clipw = -clipw;
- do
- {
- do { dst_ptr[i] = dst_ptr[i+1] = dst_ptr[i+2] = dst_ptr[i+3] = bgcolor; } while (i += 4);
- dst_ptr += dst_pitch;
- i = clipw;
- }
- while (--cliph);
- }
- else
- {
- if (!(BGC_SET & 1))
- {
- // vertical gradient fill
- pal_ptr += clipy;
- dst_ptr += clipw;
- bgcolor = *pal_ptr++;
- i = clipw = -clipw;
- do
- {
- do { dst_ptr[i] = dst_ptr[i+1] = dst_ptr[i+2] = dst_ptr[i+3] = bgcolor; } while (i += 4);
- dst_ptr += dst_pitch;
- bgcolor = *pal_ptr++;
- i = clipw;
- }
- while (--cliph);
- }
- else
- {
- // horizontal gradient fill
- pal_ptr += clipx;
- clipw <<= 2;
- do
- {
- memcpy(dst_ptr, pal_ptr, clipw);
- dst_ptr += dst_pitch;
- }
- while (--cliph);
- }
- }
-}
-
-// addition blending unimplemented (requires major changes to drawgfx and tilemap.c)
-INT32 K054338_set_alpha_level(INT32 pblend)
-{
- UINT16 *regs;
- INT32 ctrl, mixpri, mixset, mixlv;
-
- if (pblend <= 0 || pblend > 3)
- {
- // alpha_set_level(255);
- return(255);
- }
-
- regs = k54338_regs;
- ctrl = k54338_regs[K338_REG_CONTROL];
- mixpri = ctrl & K338_CTL_MIXPRI;
- mixset = regs[K338_REG_PBLEND + (pblend>>1 & 1)] >> (~pblend<<3 & 8);
- mixlv = mixset & 0x1f;
-
- if (k054338_alphainverted) mixlv = 0x1f - mixlv;
-
- if (!(mixset & 0x20))
- {
- mixlv = mixlv<<3 | mixlv>>2;
- // alpha_set_level(mixlv); // source x alpha/255 + target x (255-alpha)/255
- }
- else
- {
- if (!mixpri)
- {
- // source x alpha + target (clipped at 255)
- }
- else
- {
- // source + target x alpha (clipped at 255)
- }
-
- // DUMMY
- if (mixlv && mixlv<0x1f) mixlv = 0x10;
- mixlv = mixlv<<3 | mixlv>>2;
- // alpha_set_level(mixlv);
- }
-
- return(mixlv);
-}
-
-void K054338_invert_alpha(INT32 invert)
-{
- k054338_alphainverted = invert;
-}
diff --git a/jan/src/burn/drv/konami/k055555.cpp b/jan/src/burn/drv/konami/k055555.cpp
deleted file mode 100644
index 2023026c3..000000000
--- a/jan/src/burn/drv/konami/k055555.cpp
+++ /dev/null
@@ -1,90 +0,0 @@
-// 055555
-
-// license:BSD-3-Clause
-// copyright-holders:David Haywood
-
-#include "burnint.h"
-#include "konamiic.h"
-
-static UINT8 m_regs[128];
-INT32 K055555_enabled = 0;
-
-void K055555WriteReg(UINT8 regnum, UINT8 regdat)
-{
- m_regs[regnum & 0x7f] = regdat;
-}
-
-#if 0
-void K055555LongWrite(INT32 offset, UINT32 data)
-{
- UINT8 regnum, regdat;
-
- if (ACCESSING_BITS_24_31)
- {
- regnum = offset<<1;
- regdat = data>>24;
- }
- else
- {
- if (ACCESSING_BITS_8_15)
- {
- regnum = (offset<<1)+1;
- regdat = data>>8;
- }
- else
- {
- return;
- }
- }
- k055555_write_reg(regnum, regdat);
-}
-#endif
-
-void K055555WordWrite(INT32 offset, UINT16 data)
-{
- K055555WriteReg((offset / 2) & 0x7f, data&0xff);
-}
-
-void K055555ByteWrite(INT32 offset, UINT8 data)
-{
- K055555WriteReg((offset / 2) & 0x7f, data&0xff);
-}
-
-INT32 K055555ReadRegister(INT32 regnum)
-{
- return m_regs[regnum & 0x7f];
-}
-
-INT32 K055555GetPaletteIndex(INT32 idx)
-{
- return m_regs[(K55_PALBASE_A + idx) & 0x7f];
-}
-
-void K055555Reset()
-{
- memset(m_regs, 0, 128 * sizeof(UINT8));
-}
-
-void K055555Init()
-{
- K055555_enabled = 1;
- KonamiIC_K055555InUse = 1;
-}
-
-void K055555Exit()
-{
- K055555_enabled = 0;
-}
-
-void K055555Scan(INT32 nAction)
-{
- struct BurnArea ba;
-
- if (nAction & ACB_DRIVER_DATA) {
- memset(&ba, 0, sizeof(ba));
- ba.Data = m_regs;
- ba.nLen = 128;
- ba.szName = "K055555 Regs";
- BurnAcb(&ba);
- }
-}
diff --git a/jan/src/burn/drv/konami/k056832.cpp b/jan/src/burn/drv/konami/k056832.cpp
deleted file mode 100644
index fbe00ba2e..000000000
--- a/jan/src/burn/drv/konami/k056832.cpp
+++ /dev/null
@@ -1,967 +0,0 @@
-// Based on MAME sources by David Haywood
-
-#include "tiles_generic.h"
-#include "konamiic.h"
-
-#define K056832_FLIPY 0x00002
-#define K056832_FLIPX 0x00001
-
-static UINT16 k056832Regs[0x20];
-static UINT16 k056832Regsb[0x20];
-static UINT16 *K056832VideoRAM;
-
-static UINT8 *K056832Rom;
-static UINT8 *K056832RomExp;
-static UINT8 *K056832TransTab;
-
-static INT32 K056832RomExpMask;
-
-static INT32 m_layer_offs[8][2];
-static INT32 global_clip[4];
-
-static INT32 m_use_ext_linescroll;
-static INT32 m_layer_association;
-static INT32 m_active_layer;
-static INT32 m_layer_assoc_with_page[16];
-static INT32 m_selected_page;
-static INT32 m_selected_page_x4096;
-static INT32 m_lsram_page[8][2];
-static INT32 m_default_layer_association;
-static INT32 m_uses_tile_banks;
-static INT32 m_cur_tile_bank;
-static INT32 m_layer_tile_mode[8];
-static INT32 m_page_tile_mode[16];
-static INT32 m_num_gfx_banks;
-static INT32 m_cur_gfx_banks;
-static INT32 tilemap_flip;
-static INT32 m_rom_half;
-static INT32 K056832_metamorphic_textfix = 0;
-
-#define CLIP_MINX global_clip[0]
-#define CLIP_MAXX global_clip[1]
-#define CLIP_MINY global_clip[2]
-#define CLIP_MAXY global_clip[3]
-
-static void (*m_callback)(INT32 layer, INT32 *code, INT32 *color, INT32 *flags);
-
-void K056832Reset()
-{
- memset (K056832VideoRAM, 0, 0x2000 * 0x11 * 2);
-
- for (INT32 i = 0; i < 0x20; i++) {
- k056832Regs[i] = 0;
- k056832Regsb[i] = 0;
- }
-
- m_cur_gfx_banks = 0;
- m_uses_tile_banks = 0;
- m_cur_tile_bank = 0;
- m_active_layer = 0;
- tilemap_flip = 0;
- m_rom_half = 0;
- m_selected_page = 0;
- m_selected_page_x4096 = 0;
-}
-
-static void CalculateTranstab()
-{
- INT32 explen = (K056832RomExpMask + 1);
-
- K056832TransTab = (UINT8*)BurnMalloc(explen);
-
- memset (K056832TransTab, 1, explen);
-
- for (INT32 i = 0; i < explen*0x40; i+= 0x40) {
- for (INT32 j = 0; j < 0x40; j++) {
- if (K056832RomExp[i+j]) {
- K056832TransTab[i/0x40] = 0;
- break;
- }
- }
- }
-}
-
-void K056832Init(UINT8 *rom, UINT8 *romexp, INT32 rom_size, void (*cb)(INT32 layer, INT32 *code, INT32 *color, INT32 *flags))
-{
- KonamiIC_K056832InUse = 1;
-
- for (INT32 i = 0; i < 8; i++) {
- m_layer_offs[i][0] = m_layer_offs[i][1] = 0;
- m_lsram_page[i][0] = i;
- m_lsram_page[i][1] = i << 11;
- m_layer_tile_mode[i] = 1;
- }
-
- for (INT32 i = 0; i < 16; i++) {
- m_page_tile_mode[i] = 1;
- }
-
- K056832SetGlobalOffsets(0, 0);
-
- KonamiAllocateBitmaps();
-
- m_callback = cb;
-
- K056832Rom = rom;
- K056832RomExp = romexp;
- K056832RomExpMask = ((rom_size * 2) / 0x40) - 1;
- m_num_gfx_banks = rom_size / 0x2000;
-
- CalculateTranstab();
-
- m_use_ext_linescroll = 0; // enable later, no reset.
- m_default_layer_association = 1;
- m_layer_association = m_default_layer_association;
-
- K056832VideoRAM = (UINT16*)BurnMalloc(0x2000 * 0x11 * 2);
-
- K056832Reset();
-}
-
-void K056832Exit()
-{
- BurnFree (K056832VideoRAM);
- BurnFree (K056832TransTab);
-
- K056832_metamorphic_textfix = 0;
-
- m_callback = NULL;
-}
-
-void K056832SetLayerAssociation(INT32 status)
-{
- m_layer_association = m_default_layer_association = status;
-}
-
-void K056832SetGlobalOffsets(INT32 minx, INT32 miny)
-{
- CLIP_MINX = (minx < 0) ? 0 : minx;
- CLIP_MAXX = CLIP_MINX + nScreenWidth;
- CLIP_MINY = (miny < 0) ? 0 : miny;
- CLIP_MAXY = CLIP_MINY + nScreenHeight;
-}
-
-void K056832SetLayerOffsets(INT32 layer, INT32 xoffs, INT32 yoffs)
-{
- m_layer_offs[layer & 3][0] = xoffs;
- m_layer_offs[layer & 3][1] = yoffs;
-}
-
-void K056832SetExtLinescroll()
-{
- m_use_ext_linescroll = 1;
-}
-
-INT32 K056832IsIrqEnabled()
-{
- return k056832Regs[3] & 1;
-}
-
-void K056832ReadAvac(INT32 *mode, INT32 *data)
-{
- *mode = k056832Regs[0x04/2] & 7;
- *data = k056832Regs[0x38/2];
-}
-
-UINT16 K056832ReadRegister(INT32 reg)
-{
- return k056832Regs[reg & 0x1f];
-}
-
-INT32 K056832GetLookup( INT32 bits )
-{
- INT32 res;
-
- res = (k056832Regs[0x1c] >> (bits << 2)) & 0x0f;
-
- if (m_uses_tile_banks) /* Asterix */
- res |= m_cur_tile_bank << 4;
-
- return res;
-}
-
-static void mark_all_tilemaps_dirty()
-{ // this sets the page/layer associations.
- for (INT32 i = 0; i < 16; i++)
- {
- if (m_layer_assoc_with_page[i] != -1)
- {
- m_page_tile_mode[i] = m_layer_tile_mode[m_layer_assoc_with_page[i]];
- }
- }
-}
-
-static void k056832_change_rambank()
-{
- INT32 bank = k056832Regs[0x19];
-
- if (k056832Regs[0] & 0x02) // external linescroll enable
- m_selected_page = 16;
- else
- m_selected_page = ((bank >> 1) & 0xc) | (bank & 3);
-
- m_selected_page_x4096 = m_selected_page << 12;
-
- mark_all_tilemaps_dirty();
-}
-
-#if 0
-static INT32 k056832_get_current_rambank()
-{
- INT32 bank = k056832Regs[0x19];
-
- return ((bank >> 1) & 0xc) | (bank & 3);
-}
-#endif
-
-static void k056832_change_rombank()
-{
- INT32 bank;
-
- if (m_uses_tile_banks) /* Asterix */
- bank = (k056832Regs[0x1a] >> 8) | (k056832Regs[0x1b] << 4) | (m_cur_tile_bank << 6);
- else
- bank = k056832Regs[0x1a] | (k056832Regs[0x1b] << 16);
-
- m_cur_gfx_banks = bank % m_num_gfx_banks;
-}
-
-void K056832SetTileBank(INT32 bank)
-{
- m_uses_tile_banks = 1;
-
- m_cur_tile_bank = bank;
-
- k056832_change_rombank();
-}
-
-static void k056832_update_page_layout()
-{
- m_layer_association = m_default_layer_association;
-
- INT32 m_y[4] = { 0, 0, 0, 0 }; // not sure why initializing these is necessary
- INT32 m_x[4] = { 0, 0, 0, 0 }; // as they should be all set below, but it causes
- INT32 m_h[4] = { 0, 0, 0, 0 }; // a hang in monster maulers otherswise. -iq
- INT32 m_w[4] = { 0, 0, 0, 0 };
-
- for (INT32 layer = 0; layer < 4; layer++)
- {
- m_y[layer] = (k056832Regs[0x08|layer] & 0x18) >> 3;
- m_x[layer] = (k056832Regs[0x0c|layer] & 0x18) >> 3;
- m_h[layer] = (k056832Regs[0x08|layer] & 0x03) >> 0;
- m_w[layer] = (k056832Regs[0x0c|layer] & 0x03) >> 0;
-
- if (!m_y[layer] && !m_x[layer] && m_h[layer] == 3 && m_w[layer] == 3)
- {
- m_layer_association = 0;
- break;
- }
- }
-
- // disable all tilemaps
- for (INT32 page_idx = 0; page_idx < 16; page_idx++)
- {
- m_layer_assoc_with_page[page_idx] = -1;
- }
-
- // enable associated tilemaps
- for (INT32 layer = 0; layer < 4; layer++)
- {
- INT32 rowstart = m_y[layer];
- INT32 colstart = m_x[layer];
- INT32 rowspan = m_h[layer] + 1;
- INT32 colspan = m_w[layer] + 1;
-
- INT32 setlayer = (m_layer_association) ? layer : m_active_layer;
-
- for (INT32 r = 0; r < rowspan; r++)
- {
- for (INT32 c = 0; c < colspan; c++)
- {
- INT32 page_idx = (((rowstart + r) & 3) << 2) + ((colstart + c) & 3);
- if (m_layer_assoc_with_page[page_idx] == -1)
- m_layer_assoc_with_page[page_idx] = setlayer;
- }
- }
- }
-
- mark_all_tilemaps_dirty();
-}
-
-static void k056832_word_write_update(INT32 offset) // (offset/2)&0x1f internally
-{
- offset = (offset / 2) & 0x1f;
-
- UINT16 data = k056832Regs[offset];
-
- if (offset >= 0x10/2 && offset <= 0x1e/2)
- {
- m_active_layer = offset & 3;
- k056832_update_page_layout();
- return;
- }
-
- switch (offset)
- {
- case 0x00/2:
- tilemap_flip = 0;
- if (data & 0x20) tilemap_flip |= K056832_FLIPY;
- if (data & 0x10) tilemap_flip |= K056832_FLIPX;
- k056832_change_rambank();
- break;
-
- case 0x08/2:
- for (INT32 layer = 0; layer < 4; layer++) {
- m_layer_tile_mode[layer] = data & (1 << layer);
-
- INT32 tilemode = m_layer_tile_mode[layer];
-
- for (INT32 i = 0; i < 16; i++)
- {
- if (m_layer_assoc_with_page[i] == layer)
- {
- m_page_tile_mode[i] = tilemode;
- //mark_page_dirty(i);
- }
- }
- }
- break;
-
- case 0x32/2:
- k056832_change_rambank();
- break;
-
- case 0x34/2:
- case 0x36/2:
- k056832_change_rombank();
- break;
- }
-}
-
-void K056832WordWrite(INT32 offset, UINT16 data)
-{
- k056832Regs[(offset / 2) & 0x1f] = data;
- k056832_word_write_update(offset);
-}
-
-void K056832ByteWrite(INT32 offset, UINT8 data)
-{
- UINT8 *regs = (UINT8*)&k056832Regs;
- regs[(offset & 0x3f) ^ 1] = data;
-
- k056832_word_write_update(offset);
-}
-
-UINT16 K056832RomWordRead(UINT16 offset)
-{
- offset &= 0x1ffe;
-
- INT32 addr = 0x2000 * m_cur_gfx_banks + offset;
-
- return K056832Rom[addr+1] | (K056832Rom[addr] << 8);
-}
-
-void K056832HalfRamWriteWord(UINT32 offset, UINT16 data)
-{
- K056832VideoRAM[m_selected_page_x4096 + (offset & 0xffe) + 1] = data;
-}
-
-void K056832HalfRamWriteByte(UINT32 offset, UINT8 data)
-{
- UINT8 *ram = (UINT8*)(K056832VideoRAM + (m_selected_page_x4096 + (offset & 0xffe) + 1));
-
- ram[(offset & 1) ^ 1] = data;
-}
-
-UINT16 K056832HalfRamReadWord(UINT32 offset)
-{
- return K056832VideoRAM[m_selected_page_x4096 + (offset & 0xffe) + (((offset >> 12) ^ 1) & 1)];
-}
-
-UINT8 K056832HalfRamReadByte(UINT32 offset)
-{
- UINT8 *ram = (UINT8*)(K056832VideoRAM + m_selected_page_x4096 + ((offset & 0xffe) + (((offset >> 12) ^ 1) & 1)));
- return ram[(offset & 1) ^ 1];
-}
-
-void K056832RamWriteWord(UINT32 offset, UINT16 data)
-{
- offset = (offset & 0x1fff) / 2;
-
- K056832VideoRAM[m_selected_page_x4096 + (offset)] = data;
-}
-
-void K056832RamWriteByte(UINT32 offset, UINT8 data)
-{
- UINT8 *ram = (UINT8*)(K056832VideoRAM + m_selected_page_x4096);
-
- ram[(offset & 0x1fff) ^ 1] = data;
-}
-
-UINT16 K056832RamReadWord(UINT32 offset)
-{
- return K056832VideoRAM[m_selected_page_x4096 + ((offset & 0x1fff) / 2)];
-}
-
-UINT8 K056832RamReadByte(UINT32 offset)
-{
- UINT8 *ram = (UINT8*)(K056832VideoRAM + m_selected_page_x4096);
-
- m_rom_half = 0;
-
- return ram[(offset & 0x1fff) ^ 1];
-}
-
-UINT16 K056832RomWord8000Read(INT32 offset)
-{
- int addr = 0x8000 * m_cur_gfx_banks + (offset & 0x7ffe);
-
- return K056832Rom[addr + 2] | (K056832Rom[addr] << 8);
-}
-
-void K056832WritebRegsWord(INT32 offset, UINT16 data)
-{
- k056832Regsb[(offset & 0x1f)/2] = data;
-}
-
-void K056832WritebRegsByte(INT32 offset, UINT8 data)
-{
- UINT8 *regs = (UINT8*)&k056832Regsb;
-
- regs[(offset & 0x1f)^1] = data;
-}
-
-UINT16 K056832mwRomWordRead(INT32 address)
-{
- INT32 offset = (address / 2) & 0x1fff;
- INT32 bank = (0x800 * m_cur_gfx_banks) * 5;
-
- if (k056832Regsb[0x02] & 0x08)
- {
- UINT16 temp = K056832Rom[((offset / 4) * 5) + 4 + bank];
-
- switch (offset & 3)
- {
- case 0: return ((temp & 0x80) << 5) | ((temp & 0x40) >> 2);
- case 1: return ((temp & 0x20) << 7) | ((temp & 0x10) >> 0);
- case 2: return ((temp & 0x08) << 9) | ((temp & 0x04) << 2);
- case 3: return ((temp & 0x02) << 11) | ((temp & 0x01) << 4);
- }
- }
- else
- {
- INT32 addr = ((offset >> 1) * 5) + ((offset & 1) * 2) + bank;
-
- return K056832Rom[addr + 1] | (K056832Rom[addr] << 8);
- }
-
- return 0;
-}
-
-
-static inline UINT32 alpha_blend(UINT32 d, UINT32 s, UINT32 p)
-{
- if (p == 0) return d;
-
- INT32 a = 256 - p;
-
- return (((((s & 0xff00ff) * p) + ((d & 0xff00ff) * a)) & 0xff00ff00) |
- ((((s & 0x00ff00) * p) + ((d & 0x00ff00) * a)) & 0x00ff0000)) >> 8;
-}
-
-static void draw_layer_internal(INT32 layer, INT32 pageIndex, INT32 *clip, INT32 scrollx, INT32 scrolly, INT32 flags, INT32 priority)
-{
- static const struct K056832_SHIFTMASKS
- {
- INT32 flips, palm1, pals2, palm2;
- }
- k056832_shiftmasks[4] = {{6, 0x3f, 0, 0x00}, {4, 0x0f, 2, 0x30}, {2, 0x03, 2, 0x3c}, {0, 0x00, 2, 0x3f}};
- const struct K056832_SHIFTMASKS *smptr;
-
- scrollx &= 0x1ff;
- scrolly &= 0xff;
-
- INT32 minx = clip[0];
- INT32 maxx = clip[1];
- INT32 miny = clip[2];
- INT32 maxy = clip[3];
-
- INT32 alpha_enable = flags & K056832_LAYER_ALPHA;
- INT32 alpha = (flags >> 8) & 0xff;
- INT32 opaque = flags & K056832_LAYER_OPAQUE;
-
- if (alpha == 255) alpha_enable = 0;
-
- for (INT32 offs = 0; offs < 64 * 32; offs++)
- {
- INT32 sx = (offs & 0x3f) * 8;
- INT32 sy = (offs / 0x40) * 8;
-
- sx -= scrollx;
- if (sx < -7) sx += 512;
- sy -= scrolly;
- if (sy < -7) sy += 256;
-
- if (tilemap_flip & 1) sx = (512 - 8) - sx;
- if (tilemap_flip & 2) sy = (256 - 8) - sy;
-
- if (sy < (miny-7) || sy > maxy || sx < (minx-7) || sx > maxx) continue;
-
- UINT16 *pMem = &K056832VideoRAM[(pageIndex << 12) + (offs << 1)];
-
- INT32 attr = pMem[0];
- INT32 code = pMem[1];
-
- if (m_layer_association)
- {
- layer = m_layer_assoc_with_page[pageIndex];
- if (layer == -1)
- layer = 0; // use layer 0's palette info for unmapped pages
- }
- else
- layer = m_active_layer;
-
- INT32 fbits = (k056832Regs[3] >> 6) & 3;
- INT32 flip = (k056832Regs[1] >> (layer << 1)) & 0x3; // tile-flip override (see p.20 3.2.2 "REG2")
- smptr = &k056832_shiftmasks[fbits];
-
- flip &= (attr >> smptr->flips) & 3;
- INT32 color = (attr & smptr->palm1) | (attr >> smptr->pals2 & smptr->palm2);
- INT32 g_flags = flip & 3;
-
- m_callback(layer, &code, &color, &g_flags);
-
- // hack - mystic warriors' water level - iq
- if (g_flags & 0x8000) {
- alpha_enable = 1;
- alpha = (g_flags >> 16) & 0xff;
- }
-
- // code &= K056832RomExpMask; // mask in callback if necessary
-
- if (!opaque) {
- if (K056832TransTab[code]) continue;
- }
-
- {
- if (tilemap_flip & 1) g_flags ^= 1;
- if (tilemap_flip & 2) g_flags ^= 2;
-
- UINT8 *rom = K056832RomExp + (code * 0x40);
- UINT32 *pal = konami_palette32 + (color * 16); // if > 4 bit, adjust in tilemap callback
-
- INT32 flip_tile = 0;
- if (g_flags & 0x01) flip_tile |= 0x07;
- if (g_flags & 0x02) flip_tile |= 0x38;
-
- UINT8 *pri = konami_priority_bitmap + ((sy - CLIP_MINY) * nScreenWidth) - CLIP_MINX;
- UINT32 *dst = konami_bitmap32 + ((sy - CLIP_MINY) * nScreenWidth) - CLIP_MINX;
-
- {
- if (alpha_enable) {
- for (INT32 iy = 0; iy < 8; iy++, dst += nScreenWidth, pri += nScreenWidth) {
- INT32 yy = sy+iy;
-
- if (yy < miny || yy > maxy) continue;
-
- for (INT32 ix = 0; ix < 8; ix++) {
- INT32 xx = sx+ix;
-
- if (xx < minx || xx > maxx) continue;
-
- INT32 pxl = rom[((iy*8)+ix)^flip_tile];
-
- if (pxl || opaque) {
- dst[xx] = alpha_blend(dst[xx], pal[pxl], alpha);
- pri[xx] = priority;
- }
- }
- }
- } else {
- for (INT32 iy = 0; iy < 8; iy++, dst += nScreenWidth, pri += nScreenWidth) {
- INT32 yy = sy+iy;
-
- if (yy < miny || yy > maxy) continue;
-
- for (INT32 ix = 0; ix < 8; ix++) {
- INT32 xx = sx+ix;
-
- if (xx < minx || xx > maxx) continue;
-
- INT32 pxl = rom[((iy*8)+ix)^flip_tile];
-
- if (pxl || opaque) {
- dst[xx] = pal[pxl];
- pri[xx] = priority;
- }
- }
- }
- }
- }
- }
- }
-}
-
-#define K056832_PAGE_COLS 64
-#define K056832_PAGE_ROWS 32
-#define K056832_PAGE_HEIGHT (K056832_PAGE_ROWS*8)
-#define K056832_PAGE_WIDTH (K056832_PAGE_COLS*8)
-
-#define K056832_PAGE_COUNT 16
-
-void K056832Draw(INT32 layer, UINT32 flags, UINT32 priority)
-{
- UINT16 *m_videoram = K056832VideoRAM;
- UINT16 *m_regs = k056832Regs;
-
- UINT32 last_dx, last_visible, last_active;
- INT32 sx, sy, ay, tx, ty, width, height;
- INT32 clipw, clipx, cliph, clipy, clipmaxy;
- INT32 line_height, line_endy, line_starty, line_y;
- INT32 sdat_start, sdat_walk, sdat_adv, sdat_wrapmask, sdat_offs;
- INT32 pageIndex, flipx, flipy, corr, r, c;
- INT32 cminy, cmaxy, cminx, cmaxx;
- INT32 dminy, dmaxy, dminx, dmaxx;
- UINT16 *p_scroll_data;
- UINT16 ram16[2];
- INT32 tmap;
-
- INT32 tmap_scrollx=0,tmap_scrolly=0;
-
- INT32 clip_data[4] = {0, 0, 0, 0}; // minx, maxx, miny, maxy
-
- INT32 rowstart = (m_regs[0x08|layer] & 0x18) >> 3;
- INT32 colstart = (m_regs[0x0c|layer] & 0x18) >> 3;
- INT32 rowspan = ((m_regs[0x08|layer] & 0x03) >> 0) + 1;
- INT32 colspan = ((m_regs[0x0c|layer] & 0x03) >> 0) + 1;
- INT32 dy = (INT16)m_regs[0x10|layer];
- INT32 dx = (INT16)m_regs[0x14|layer];;
- INT32 scrollbank = ((m_regs[0x18] >> 1) & 0xc) | (m_regs[0x18] & 3);
- INT32 scrollmode = m_regs[0x05] >> (m_lsram_page[layer][0] << 1) & 3;
-
- if (m_use_ext_linescroll)
- {
- scrollbank = K056832_PAGE_COUNT;
- }
-
- height = rowspan * K056832_PAGE_HEIGHT;
- width = colspan * K056832_PAGE_WIDTH;
-
- cminx = CLIP_MINX;
- cmaxx = CLIP_MAXX - 1;
- cminy = CLIP_MINY;
- cmaxy = CLIP_MAXY - 1;
-
- // flip correction registers
- flipy = m_regs[0] & 0x20;
- if (flipy)
- {
- corr = m_regs[0x3c/2];
- if (corr & 0x400)
- corr |= 0xfffff800;
- }
- else
- corr = 0;
-
- dy += corr;
- ay = (UINT32)(dy - m_layer_offs[layer][1]) % height;
-
- flipx = m_regs[0] & 0x10;
- if (flipx)
- {
- corr = m_regs[0x3a/2];
- if (corr & 0x800)
- corr |= 0xfffff000;
- }
- else
- corr = 0;
-
- corr -= m_layer_offs[layer][0];
-
- switch( scrollmode )
- {
- case 0: // linescroll
- p_scroll_data = &m_videoram[scrollbank<<12] + (m_lsram_page[layer][1]>>1);
- line_height = 1;
- sdat_wrapmask = 0x3ff;
- sdat_adv = 2;
- break;
- case 2: // rowscroll
- p_scroll_data = &m_videoram[scrollbank << 12] + (m_lsram_page[layer][1] >> 1);
- line_height = 8;
- sdat_wrapmask = 0x3ff;
- sdat_adv = 16;
- break;
- default: // xyscroll
- p_scroll_data = ram16;
- line_height = K056832_PAGE_HEIGHT;
- sdat_wrapmask = 0;
- sdat_adv = 0;
- ram16[0] = 0;
- ram16[1] = dx;
- }
- if (flipy)
- sdat_adv = -sdat_adv;
-
- last_active = m_active_layer;
-
- for (r = 0; r < rowspan; r++)
- {
- if (rowspan > 1)
- {
- sy = ay;
- ty = r * K056832_PAGE_HEIGHT;
-
- if (!flipy)
- {
- // handle bottom-edge wraparoundness and cull off-screen tilemaps
- if ((r == 0) && (sy > height - K056832_PAGE_HEIGHT)) sy -= height;
- if ((sy + K056832_PAGE_HEIGHT <= ty) || (sy - K056832_PAGE_HEIGHT >= ty)) continue;
-
- // switch frame of reference and clip y
- if ((ty -= sy) >= 0)
- {
- cliph = K056832_PAGE_HEIGHT - ty;
- clipy = line_starty = ty;
- line_endy = K056832_PAGE_HEIGHT;
- sdat_start = 0;
- }
- else
- {
- cliph = K056832_PAGE_HEIGHT + ty;
- ty = -ty;
- clipy = line_starty = 0;
- line_endy = cliph;
- sdat_start = ty;
- if (scrollmode == 2) { sdat_start &= ~7; line_starty -= ty & 7; }
- }
- }
- else
- {
- ty += K056832_PAGE_HEIGHT;
-
- // handle top-edge wraparoundness and cull off-screen tilemaps
- if ((r == rowspan - 1) && (sy < K056832_PAGE_HEIGHT)) sy += height;
- if ((sy + K056832_PAGE_HEIGHT <= ty) || (sy - K056832_PAGE_HEIGHT >= ty)) continue;
-
- // switch frame of reference and clip y
- if ((ty -= sy) <= 0)
- {
- cliph = K056832_PAGE_HEIGHT + ty;
- clipy = line_starty = -ty;
- line_endy = K056832_PAGE_HEIGHT;
- sdat_start = K056832_PAGE_HEIGHT - 1;
- if (scrollmode == 2) sdat_start &= ~7;
- }
- else
- {
- cliph = K056832_PAGE_HEIGHT - ty;
- clipy = line_starty = 0;
- line_endy = cliph;
- sdat_start = cliph - 1;
- if (scrollmode == 2)
- {
- sdat_start &= ~7;
- line_starty -= ty & 7;
- }
- }
- }
- }
- else
- {
- cliph = line_endy = K056832_PAGE_HEIGHT;
- clipy = line_starty = 0;
-
- if (!flipy)
- sdat_start = dy;
- else
- /*
- doesn't work with Metamorphic Force and Martial Champion (software Y-flipped) but
- LE2U (naturally Y-flipped) seems to expect this condition as an override.
-
- sdat_start = K056832_PAGE_HEIGHT-1 -dy;
- */
- sdat_start = K056832_PAGE_HEIGHT - 1;
-
- if (scrollmode == 2) {
- if (K056832_metamorphic_textfix) sdat_start = dy - 8; // fix for Metamorphic Force "Break the Statue"
- sdat_start &= ~7;
- line_starty -= dy & 7;
- }
- }
-
- sdat_start += r * K056832_PAGE_HEIGHT;
- sdat_start <<= 1;
-
- clipmaxy = clipy + cliph - 1;
-
- for (c = 0; c < colspan; c++)
- {
- pageIndex = (((rowstart + r) & 3) << 2) + ((colstart + c) & 3);
-
- if (m_layer_association)
- {
- if (m_layer_assoc_with_page[pageIndex] != layer)
- continue;
- }
- else
- {
- if (m_layer_assoc_with_page[pageIndex] == -1)
- continue;
-
- m_active_layer = layer;
- }
-
- if (K055555_enabled == 0) // are we using k055555 palette?
- {
- if (!pageIndex)
- m_active_layer = 0;
- }
-
- // if (update_linemap(pageIndex, flags)) // unnecessary?
- // continue;
-
- if (!m_page_tile_mode[pageIndex]) continue; // this was hidden in update_linemap()
-
- tmap = pageIndex;
-
- tmap_scrolly = ay;
-
- last_dx = 0x100000;
- last_visible = 0;
-
- for (sdat_walk = sdat_start, line_y = line_starty; line_y < line_endy; sdat_walk += sdat_adv, line_y += line_height)
- {
- dminy = line_y;
- dmaxy = line_y + line_height - 1;
-
- if (dminy < clipy) dminy = clipy;
- if (dmaxy > clipmaxy) dmaxy = clipmaxy;
- if (dminy > cmaxy || dmaxy < cminy) continue;
-
- sdat_offs = sdat_walk & sdat_wrapmask;
-
- clip_data[2] = (dminy < cminy ) ? cminy : dminy;
- clip_data[3] = (dmaxy > cmaxy ) ? cmaxy : dmaxy;
-
- if ((scrollmode == 2) && (flags & K056832_DRAW_FLAG_MIRROR) && (flipy))
- dx = ((INT32)p_scroll_data[sdat_offs + 0x1e0 + 14]<<16 | (INT32)p_scroll_data[sdat_offs + 0x1e0 + 15]) + corr;
- else
- dx = ((INT32)p_scroll_data[sdat_offs]<<16 | (INT32)p_scroll_data[sdat_offs + 1]) + corr;
-
- if ((INT32)last_dx == dx) { if (last_visible) draw_layer_internal(layer, tmap, clip_data, tmap_scrollx, tmap_scrolly, flags, priority); continue; }
- last_dx = dx;
-
- if (colspan > 1)
- {
- //sx = (UINT32)dx % width;
- sx = (UINT32)dx & (width-1);
-
- //tx = c * K056832_PAGE_WIDTH;
- tx = c << 9;
-
- if (!flipx)
- {
- // handle right-edge wraparoundness and cull off-screen tilemaps
- if ((c == 0) && (sx > width - K056832_PAGE_WIDTH)) sx -= width;
- if ((sx + K056832_PAGE_WIDTH <= tx) || (sx - K056832_PAGE_WIDTH >= tx))
- { last_visible = 0; continue; }
-
- // switch frame of reference and clip x
- if ((tx -= sx) <= 0) { clipw = K056832_PAGE_WIDTH + tx; clipx = 0; }
- else { clipw = K056832_PAGE_WIDTH - tx; clipx = tx; }
- }
- else
- {
- tx += K056832_PAGE_WIDTH;
-
- // handle left-edge wraparoundness and cull off-screen tilemaps
- if ((c == colspan-1) && (sx < K056832_PAGE_WIDTH)) sx += width;
- if ((sx + K056832_PAGE_WIDTH <= tx) || (sx - K056832_PAGE_WIDTH >= tx))
- { last_visible = 0; continue; }
-
- // switch frame of reference and clip y
- if ((tx -= sx) >= 0) { clipw = K056832_PAGE_WIDTH - tx; clipx = 0; }
- else { clipw = K056832_PAGE_WIDTH + tx; clipx = -tx; }
- }
- }
- else { clipw = K056832_PAGE_WIDTH; clipx = 0; }
-
- last_visible = 1;
-
- dminx = clipx;
- dmaxx = clipx + clipw - 1;
-
- clip_data[0] = (dminx < cminx ) ? cminx : dminx;
- clip_data[1] = (dmaxx > cmaxx ) ? cmaxx : dmaxx;
-
- // soccer superstars visible area is >512 pixels, this causes problems with the logic because
- // the tilemaps are 512 pixels across. Assume that if the limits were set as below that we
- // want the tilemap to be drawn on the right hand side.. this is probably not the correct
- // logic, but it works.
- if ((clip_data[0]>0) && (clip_data[1]==511))
- clip_data[1]=cmaxx;
-
- tmap_scrollx = dx;
-
- draw_layer_internal(layer, tmap, clip_data, tmap_scrollx, tmap_scrolly, flags, priority);
- }
- }
- }
-
- m_active_layer = last_active;
-}
-
-int K056832GetLayerAssociation()
-{
- return m_layer_association;
-}
-
-void K056832Metamorphic_Fixup()
-{ // Metmorphic Force (metamrph)'s scroll data has a different offset. Notably, this fixes the jumbled up "Break the Statue" text. (for those familiar with the game)
- K056832_metamorphic_textfix = 1;
-}
-
-// some of these this may not be necessary to save...
-void K056832Scan(INT32 nAction)
-{
- struct BurnArea ba;
-
- if (nAction & ACB_MEMORY_RAM) {
- memset(&ba, 0, sizeof(ba));
- ba.Data = (UINT8*)K056832VideoRAM;
- ba.nLen = 0x2000 * 0x11 * 2;
- ba.szName = "K056832 Video RAM";
- BurnAcb(&ba);
- }
-
- if (nAction & ACB_DRIVER_DATA) {
- for (INT32 i = 0; i < 0x20; i++) {
- SCAN_VAR(k056832Regs[i]);
- SCAN_VAR(k056832Regsb[i]);
- }
-
- for (INT32 i = 0; i < 16; i++) {
- SCAN_VAR(m_layer_assoc_with_page[i]);
- }
-
- for (INT32 i = 0; i < 8; i++) {
- SCAN_VAR(m_layer_tile_mode[i]);
- SCAN_VAR(m_lsram_page[i][0]);
- SCAN_VAR(m_lsram_page[i][1]);
- }
-
- SCAN_VAR(m_use_ext_linescroll); // ?
- SCAN_VAR(m_layer_association); // ?
- SCAN_VAR(m_active_layer);
- SCAN_VAR(m_selected_page);
- SCAN_VAR(m_selected_page_x4096);
- SCAN_VAR(m_default_layer_association);
- SCAN_VAR(m_uses_tile_banks);
- SCAN_VAR(m_cur_tile_bank);
- SCAN_VAR(m_cur_gfx_banks);
- SCAN_VAR(m_num_gfx_banks);
- SCAN_VAR(tilemap_flip);
- SCAN_VAR(m_rom_half);
- }
-}
diff --git a/jan/src/burn/drv/konami/konamigx.cpp b/jan/src/burn/drv/konami/konamigx.cpp
deleted file mode 100644
index 74035adb0..000000000
--- a/jan/src/burn/drv/konami/konamigx.cpp
+++ /dev/null
@@ -1,706 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:R. Belmont, Acho A. Tang, Phil Stroffolino, Olivier Galibert
-
-#include "tiles_generic.h"
-#include "konamiic.h"
-
-static INT32 konamigx_wrport1_0 = 0;
-
-//static UINT8 m_sound_ctrl;
-//static UINT8 m_sound_intck;
-//static UINT32 m_fantjour_dma[8];
-//static INT32 m_konamigx_current_frame;
-static INT32 m_gx_objdma, m_gx_primode;
-
-#define GX_MAX_SPRITES 512
-#define GX_MAX_LAYERS 6
-#define GX_MAX_OBJECTS (GX_MAX_SPRITES + GX_MAX_LAYERS)
-
-static struct GX_OBJ { INT32 order, offs, code, color; } *gx_objpool;
-static UINT16 *gx_spriteram;
-
-static INT32 *K054338_shdRGB;
-
-static UINT8 *gx_shdzbuf, *gx_objzbuf;
-
-static INT32 k053247_vrcbk[4];
-static INT32 k053247_opset;
-static INT32 k053247_coreg;
-static INT32 k053247_coregshift;
-
-static INT32 opri;
-static INT32 oinprion;
-static INT32 vcblk[6];
-static INT32 ocblk;
-static INT32 vinmix;
-static INT32 vmixon;
-static INT32 osinmix;
-static INT32 osmixon;
-
-void konamigx_precache_registers()
-{
- // (see sprite color coding scheme on p.46 & 47)
- static const INT32 coregmasks[5] = {0xf,0xe,0xc,0x8,0x0};
- static const INT32 coregshifts[5]= {4,5,6,7,8};
- INT32 i;
-
- i = K053247ReadRegs(0x8/2);
- k053247_vrcbk[0] = (i & 0x000f) << 14;
- k053247_vrcbk[1] = (i & 0x0f00) << 6;
- i = K053247ReadRegs(0xa/2);
- k053247_vrcbk[2] = (i & 0x000f) << 14;
- k053247_vrcbk[3] = (i & 0x0f00) << 6;
-
- // COREG == OBJSET2+1C == bit8-11 of OPSET ??? (see p.50 last table, needs p.49 to confirm)
- k053247_opset = K053247ReadRegs(0xc/2);
-
- i = k053247_opset & 7; if (i > 4) i = 4;
-
- k053247_coreg = K053247ReadRegs(0xc/2)>>8 & 0xf;
- k053247_coreg =(k053247_coreg & coregmasks[i]) << 12;
-
- k053247_coregshift = coregshifts[i];
-
- opri = K055555ReadRegister(K55_PRIINP_8);
- oinprion = K055555ReadRegister(K55_OINPRI_ON);
- vcblk[0] = K055555ReadRegister(K55_PALBASE_A);
- vcblk[1] = K055555ReadRegister(K55_PALBASE_B);
- vcblk[2] = K055555ReadRegister(K55_PALBASE_C);
- vcblk[3] = K055555ReadRegister(K55_PALBASE_D);
- vcblk[4] = K055555ReadRegister(K55_PALBASE_SUB1);
- vcblk[5] = K055555ReadRegister(K55_PALBASE_SUB2);
- ocblk = K055555ReadRegister(K55_PALBASE_OBJ);
- vinmix = K055555ReadRegister(K55_BLEND_ENABLES);
- vmixon = K055555ReadRegister(K55_VINMIX_ON);
- osinmix = K055555ReadRegister(K55_OSBLEND_ENABLES);
- osmixon = K055555ReadRegister(K55_OSBLEND_ON);
-}
-
-void konamigx_mixer_init(INT32 objdma)
-{
- m_gx_objdma = 0;
- m_gx_primode = 0;
-
- gx_shdzbuf = (UINT8*)BurnMalloc(512 * 256 * 2);
- gx_objzbuf = (UINT8*)BurnMalloc(512 * 256 * 2);
-
- gx_objpool = (struct GX_OBJ*)BurnMalloc(GX_MAX_OBJECTS * sizeof(GX_OBJ));
-
- K054338_export_config(&K054338_shdRGB);
-
- gx_spriteram = (UINT16*)K053247Ram;
-
- if (objdma)
- {
- gx_spriteram = (UINT16*)BurnMalloc(0x1000);
- m_gx_objdma = 1;
- }
- else
- gx_spriteram = (UINT16*)K053247Ram;
-
-// m_palette->set_shadow_dRGB32(3,-80,-80,-80, 0);
- K054338_invert_alpha(1);
-}
-
-void konamigx_mixer_exit()
-{
- BurnFree(gx_shdzbuf);
- BurnFree(gx_objzbuf);
- if (m_gx_objdma && gx_spriteram) {
- BurnFree(gx_spriteram);
- }
- BurnFree(gx_objpool);
- m_gx_objdma = 0;
-}
-
-static void gx_wipezbuf(INT32 noshadow)
-{
-#define GX_ZBUFW 512
-
- INT32 w = (nScreenWidth); // - 1); - sept.2.2016, fixes lines of pixels
- INT32 h = (nScreenHeight); // - 1); - around gaiapolis's intro - dink
-
- UINT8 *zptr = gx_objzbuf;
- INT32 ecx = h;
-
- do { memset(zptr, -1, w); zptr += GX_ZBUFW; } while (--ecx);
-
- if (!noshadow)
- {
- zptr = gx_shdzbuf;
- w <<= 1;
- ecx = h;
- do { memset(zptr, -1, w); zptr += (GX_ZBUFW<<1); } while (--ecx);
- }
-}
-
-void konamigx_mixer_primode(INT32 mode)
-{
- m_gx_primode = mode;
-}
-
-static void gx_draw_basic_tilemaps(INT32 mixerflags, INT32 code)
-{
- INT32 temp1,temp2,temp3,temp4;
- INT32 i = code<<1;
- INT32 j = mixerflags>>i & 3;
- INT32 k = 0;
-
- INT32 disp = K055555ReadRegister(K55_INPUT_ENABLES);
- if (disp & (1<>(i+16); temp3 = 3; }
- else
- {
- temp1 = vinmix;
- temp2 = vinmix>>i & 3;
- temp3 = vmixon>>i & 3;
- }
-
- /* blend layer only when:
- 1) vinmix != 0xff
- 2) its internal mix code is set
- 3) all mix code bits are internal(overriden until tile blending has been implemented)
- 4) 0 > alpha < 255;
- */
- if (temp1!=0xff && temp2 /*&& temp3==3*/)
- {
- temp4 = K054338_set_alpha_level(temp2);
-
- if (temp4 <= 0) return;
- if (temp4 < 255) k = K056832_SET_ALPHA(temp4);
- }
-
- if (mixerflags & 1<<(code+12)) k |= K056382_DRAW_FLAG_FORCE_XYSCROLL;
-
- if (nBurnLayer & (1 << code)) K056832Draw(code, k, 0);
- }
-}
-
-static void gx_draw_basic_extended_tilemaps_1(INT32 mixerflags, INT32 code, INT32 sub1, INT32 sub1flags, INT32 rushingheroes_hack, INT32 offs)
-{
- INT32 temp1,temp2,temp3,temp4;
- INT32 i = code<<1;
- INT32 j = mixerflags>>i & 3;
- INT32 k = 0;
- static INT32 parity = 0;
- parity ^= 1;
-
- sub1 ^= 0; // kill warnings
-
- INT32 disp = K055555ReadRegister(K55_INPUT_ENABLES);
- if ((disp & K55_INP_SUB1) || (rushingheroes_hack))
- {
- INT32 alpha = 255;
-
- if (j == GXMIX_BLEND_NONE) { temp1 = 0xff; temp2 = temp3 = 0; } else
- if (j == GXMIX_BLEND_FORCE) { temp1 = 0x00; temp2 = mixerflags>>24; temp3 = 3; }
- else
- {
- temp1 = osinmix;
- temp2 = osinmix>>2 & 3;
- temp3 = osmixon>>2 & 3;
- }
-
- if (temp1!=0xff && temp2 /*&& temp3==3*/)
- {
- alpha = temp4 = K054338_set_alpha_level(temp2);
-
- if (temp4 <= 0) return;
- if (temp4 < 255) k = (j == GXMIX_BLEND_FAST) ? ~parity : 1;
- }
-
- INT32 l = sub1flags & 0xf;
-
- if (offs == -2)
- {
-
- INT32 pixeldouble_output = 0;
-
- INT32 width = nScreenWidth;
-
- if (width>512) // vsnetscr case
- pixeldouble_output = 1;
-
- if (nSpriteEnable & 4 && K053936_external_bitmap)
- K053936GP_0_zoom_draw(K053936_external_bitmap, l, k, alpha, pixeldouble_output, m_k053936_0_ctrl_16, m_k053936_0_linectrl_16, m_k053936_0_ctrl, m_k053936_0_linectrl);
- }
- else
- {
- if (nSpriteEnable & 2)
- if (KonamiIC_K053250InUse) K053250Draw(0, vcblk[4]<>i & 3;
-// INT32 k = 0;
-// static INT32 parity = 0;
-// parity ^= 1;
-
- sub2 ^= 0; // kill warnings
-
- INT32 disp = K055555ReadRegister(K55_INPUT_ENABLES);
- if (disp & K55_INP_SUB2)
- {
- //INT32 alpha = 255;
- if (j == GXMIX_BLEND_NONE) { temp1 = 0xff; temp2 = temp3 = 0; } else
- if (j == GXMIX_BLEND_FORCE) { temp1 = 0x00; temp2 = mixerflags>>26; temp3 = 3; }
- else
- {
- temp1 = osinmix;
- temp2 = osinmix>>4 & 3;
- temp3 = osmixon>>4 & 3;
- }
-
- if (temp1!=0xff && temp2 /*&& temp3==3*/)
- {
- //alpha =
- temp4 = K054338_set_alpha_level(temp2);
-
- if (temp4 <= 0) return;
- //if (temp4 < 255) k = (j == GXMIX_BLEND_FAST) ? ~parity : 1;
- }
-
- INT32 l = sub2flags & 0xf;
-
- if (offs == -3)
- {
- if (extra_bitmap) // soccer superstars roz layer
- {
-#if 0 // iq_132
- INT32 xx,yy;
- INT32 width = screen.width();
- INT32 height = screen.height();
- const pen_t *paldata = m_palette->pens();
-
- // the output size of the roz layer has to be doubled horizontally
- // so that it aligns with the sprites and normal tilemaps. This appears
- // to be done as a post-processing / mixing step effect
- //
- // - todo, use the pixeldouble_output I just added for vsnet instead?
- for (yy=0;yypix16(yy);
- UINT32* dst = &bitmap.pix32(yy);
- INT32 shiftpos = 0;
- for (xx=0;xx("k053250_2")->draw(bitmap, cliprect, vcblk[5]<order;
- INT32 offs = objptr->offs;
- INT32 code = objptr->code;
- INT32 color = objptr->color;
-
- /* entries >=0 in our list are sprites */
- if (offs >= 0)
- {
- if (!(disp & K55_INP_OBJ)) continue;
-
- INT32 drawmode = order>>4 & 0xf;
-
- INT32 alpha = 255;
- INT32 pri = 0;
- INT32 zcode = -1; // negative zcode values turn off z-buffering
-
- if (drawmode & 2)
- {
- alpha = color>>K055555_MIXSHIFT & 3;
- if (alpha) alpha = K054338_set_alpha_level(alpha);
- if (alpha <= 0) continue;
- }
- color &= K055555_COLORMASK;
-
- if (drawmode >= 4) {
- // m_palette->set_shadow_mode(order & 0x0f);
- drawmode |= (order & 0x0f)<<4;
- }
-
- if (!(mixerflags & GXMIX_NOZBUF))
- {
- zcode = order>>16 & 0xff;
- pri = order>>24 & 0xff;
- }
-
- if (nSpriteEnable & 1)
- k053247_draw_single_sprite_gxcore(gx_objzbuf, gx_shdzbuf,code,gx_spriteram,offs,color,alpha,drawmode,zcode,pri,0,0,NULL,NULL,0);
- }
- else
- {
- switch (offs)
- {
- case -1:
- gx_draw_basic_tilemaps(mixerflags, code);
- continue;
- case -2:
- case -4:
- gx_draw_basic_extended_tilemaps_1(mixerflags, code, sub1, sub1flags, rushingheroes_hack, offs);
- continue;
- case -3:
- case -5:
- gx_draw_basic_extended_tilemaps_2(mixerflags, code, sub2, sub2flags, extra_bitmap, offs);
- continue;
- }
- continue;
- }
- }
-}
-
-void konamigx_mixer(INT32 sub1 /*extra tilemap 1*/, INT32 sub1flags, INT32 sub2 /*extra tilemap 2*/, INT32 sub2flags, INT32 mixerflags, INT32 extra_bitmap /*extra tilemap 3*/, INT32 rushingheroes_hack)
-{
- INT32 objbuf[GX_MAX_OBJECTS];
- INT32 shadowon[3], shdpri[3], layerid[6], layerpri[6];
-
- struct GX_OBJ *objpool, *objptr;
- INT32 cltc_shdpri, /*prflp,*/ disp;
-
- // abort if object database failed to initialize
- objpool = gx_objpool;
- if (!objpool) return;
-
- // clear screen with backcolor and update flicker pulse
- if (konamigx_wrport1_0 & 0x20)
- K054338_fill_backcolor(K055555ReadRegister(0) << 9, K055555ReadRegister(1));
- else
- K054338_fill_solid_bg();
-
- // abort if video has been disabled
- disp = K055555ReadRegister(K55_INPUT_ENABLES);
- if (!disp) return;
- cltc_shdpri = K054338_read_register(K338_REG_CONTROL);
-
- if (!rushingheroes_hack) // Slam Dunk 2 never sets this. It's either part of the protection, or type4 doesn't use it
- {
- if (!(cltc_shdpri & K338_CTL_KILL)) return;
- }
-
- // demote shadows by one layer when this bit is set??? (see p.73 8.6)
- cltc_shdpri &= K338_CTL_SHDPRI;
-
- // wipe z-buffer
- if (mixerflags & GXMIX_NOZBUF)
- mixerflags |= GXMIX_NOSHADOW;
- else
- gx_wipezbuf(mixerflags & GXMIX_NOSHADOW);
-
- // cache global parameters
- konamigx_precache_registers();
-
- // init OBJSET2 and mixer parameters (see p.51 and chapter 7)
- layerid[0] = 0; layerid[1] = 1; layerid[2] = 2; layerid[3] = 3; layerid[4] = 4; layerid[5] = 5;
-
- // invert layer priority when this flag is set (not used by any GX game?)
- //prflp = K055555ReadRegister(K55_CONTROL) & K55_CTL_FLIPPRI;
-
- layerpri[0] = K055555ReadRegister(K55_PRIINP_0);
- layerpri[1] = K055555ReadRegister(K55_PRIINP_3);
- layerpri[3] = K055555ReadRegister(K55_PRIINP_7);
- layerpri[4] = K055555ReadRegister(K55_PRIINP_9);
- layerpri[5] = K055555ReadRegister(K55_PRIINP_10);
-
- INT32 shdprisel;
-
- if (m_gx_primode == -1)
- {
- // Lethal Enforcer hack (requires pixel color comparison)
- layerpri[2] = K055555ReadRegister(K55_PRIINP_3) + 0x20;
- shdprisel = 0x3f;
- }
- else
- {
- layerpri[2] = K055555ReadRegister(K55_PRIINP_6);
- shdprisel = K055555ReadRegister(K55_SHD_PRI_SEL);
- }
-
- // SHDPRISEL filters shadows by different priority comparison methods (UNIMPLEMENTED, see detail on p.66)
- if (!(shdprisel & 0x03)) shadowon[0] = 0;
- if (!(shdprisel & 0x0c)) shadowon[1] = 0;
- if (!(shdprisel & 0x30)) shadowon[2] = 0;
-
- shdpri[0] = K055555ReadRegister(K55_SHAD1_PRI);
- shdpri[1] = K055555ReadRegister(K55_SHAD2_PRI);
- shdpri[2] = K055555ReadRegister(K55_SHAD3_PRI);
-
- INT32 spri_min = 0;
-
- shadowon[2] = shadowon[1] = shadowon[0] = 0;
-
- INT32 k = 0;
- if (!(mixerflags & GXMIX_NOSHADOW))
- {
- INT32 i,j;
- // only enable shadows beyond a +/-7 RGB threshold
- for (j=0,i=0; i<3; j+=3,i++)
- {
- k = K054338_shdRGB[j ]; if (k < -7 || k > 7) { shadowon[i] = 1; continue; }
- k = K054338_shdRGB[j+1]; if (k < -7 || k > 7) { shadowon[i] = 1; continue; }
- k = K054338_shdRGB[j+2]; if (k < -7 || k > 7) { shadowon[i] = 1; }
- }
-
- // SHDON specifies layers on which shadows can be projected (see detail on p.65 7.2.8)
- INT32 temp = K055555ReadRegister(K55_SHD_ON);
- for (i=0; i<4; i++) if (!(temp>>i & 1) && spri_min < layerpri[i]) spri_min = layerpri[i]; // HACK
-
- // update shadows status
- K054338_update_all_shadows();
- }
-
- // pre-sort layers
- for (INT32 j=0; j<5; j++)
- {
- INT32 temp1 = layerpri[j];
- for (INT32 i=j+1; i<6; i++)
- {
- INT32 temp2 = layerpri[i];
- if ((UINT32)temp1 <= (UINT32)temp2)
- {
- layerpri[i] = temp1; layerpri[j] = temp1 = temp2;
- temp2 = layerid[i]; layerid[i] = layerid[j]; layerid[j] = temp2;
- }
- }
- }
-
- // build object database and create indices
- objptr = objpool;
- INT32 nobj = 0;
-
- for (INT32 i=5; i>=0; i--)
- {
- INT32 offs;
-
- INT32 code = layerid[i];
- switch (code)
- {
- /*
- Background layers are represented by negative offset values as follow:
-
- 0+ : normal sprites
- -1 : tile layer A - D
- -2 : K053936 ROZ+ layer 1
- -3 : K053936 ROZ+ layer 2
- -4 : K053250 LVC layer 1
- -5 : K053250 LVC layer 2
- */
- case 4 :
- offs = -128;
- if (sub1flags & 0xf) { if (sub1flags & GXSUB_K053250) offs = -4; else if (sub1) offs = -2; }
- break;
- case 5 :
- offs = -128;
- if (sub2flags & 0xf) { if (sub2flags & GXSUB_K053250) offs = -5; else if (sub2) offs = -3; }
- if (extra_bitmap) offs = -3;
- break;
- default: offs = -1;
- }
-
- if (offs != -128)
- {
- objptr->order = layerpri[i]<<24;
- objptr->code = code;
- objptr->offs = offs;
- objptr++;
-
- objbuf[nobj] = nobj;
- nobj++;
- }
- }
-
-// i = j = 0xff;
- INT32 l = 0;
-
- for (INT32 offs=0; offs<0x800; offs+=8)
- {
- INT32 pri = 0;
-
- if (!(gx_spriteram[offs] & 0x8000)) continue;
-
- INT32 zcode = gx_spriteram[offs] & 0xff;
-
- // invert z-order when opset_pri is set (see p.51 OPSET PRI)
- if (k053247_opset & 0x10) zcode = 0xff - zcode;
-
- INT32 code = gx_spriteram[offs+1];
- INT32 color = k = gx_spriteram[offs+6];
- l = gx_spriteram[offs+7];
-
- K053247Callback(&code, &color, &pri);
-
- /*
- shadow = shadow code
- spri = shadow priority
- temp1 = add solid object
- temp2 = solid pens draw mode
- temp3 = add shadow object
- temp4 = shadow pens draw mode
- */
- INT32 temp4 = 0;
- INT32 temp3 = 0;
- INT32 temp2 = 0;
- INT32 temp1 = 0;
- INT32 spri = 0;
- INT32 shadow = 0;
-
- if (color & K055555_FULLSHADOW)
- {
- shadow = 3; // use default intensity and color
- spri = pri; // retain host priority
- temp3 = 1; // add shadow
- temp4 = 5; // draw full shadow
- }
- else
- {
- shadow = k>>10 & 3;
- if (shadow) // object has shadow?
- {
- INT32 k053246_objset1 = K053246ReadRegs(5);
-
- if (shadow != 1 || k053246_objset1 & 0x20)
- {
- shadow--;
- temp1 = 1; // add solid
- temp2 = 1; // draw partial solid
- if (shadowon[shadow])
- {
- temp3 = 1; // add shadow
- temp4 = 4; // draw partial shadow
- }
- }
- else
- {
- // drop the entire sprite to shadow if its shadow code is 1 and SD0EN is off (see p.48)
- shadow = 0;
- if (!shadowon[0]) continue;
- temp3 = 1; // add shadow
- temp4 = 5; // draw full shadow
- }
- }
- else
- {
- temp1 = 1; // add solid
- temp2 = 0; // draw full solid
- }
-
- if (temp1)
- {
- // tag sprite for alpha blending
- if (color>>K055555_MIXSHIFT & 3) temp2 |= 2;
- }
-
- if (temp3)
- {
- // determine shadow priority
- spri = (k053247_opset & 0x20) ? pri : shdpri[shadow]; // (see p.51 OPSET SDSEL)
- }
- }
-
- switch (m_gx_primode & 0xf)
- {
- // Dadandarn zcode suppression
- case 1:
- zcode = 0;
- break;
-
- // Daisukiss bad shadow filter
- case 4:
- if (k & 0x3000 || k == 0x0800) continue;
-
- // Tokkae shadow masking (INACCURATE)
- case 5:
- if (spri < spri_min) spri = spri_min;
- break;
- }
-
- /*
- default sort order:
- fedcba9876543210fedcba9876543210
- xxxxxxxx------------------------ (priority)
- --------xxxxxxxx---------------- (zcode)
- ----------------xxxxxxxx-------- (offset)
- ------------------------xxxx---- (shadow mode)
- ----------------------------xxxx (shadow code)
- */
- if (temp1)
- {
-
- // add objects with solid or alpha pens
- INT32 order = pri<<24 | zcode<<16 | offs<<(8-3) | temp2<<4;
- objptr->order = order;
- objptr->offs = offs;
- objptr->code = code;
- objptr->color = color;
- objptr++;
-
- objbuf[nobj] = nobj;
- nobj++;
- }
-
- if (temp3 && !(color & K055555_SKIPSHADOW) && !(mixerflags & GXMIX_NOSHADOW))
- {
- // add objects with shadows if enabled
- INT32 order = spri<<24 | zcode<<16 | offs<<(8-3) | temp4<<4 | shadow;
- objptr->order = order;
- objptr->offs = offs;
- objptr->code = code;
- objptr->color = color;
- objptr++;
-
- objbuf[nobj] = nobj;
- nobj++;
- }
- }
-
- // sort objects in decending order (SLOW)
- k = nobj;
- l = nobj - 1;
-
- for (INT32 j=0; j>= 1;
-
- for (INT32 i = 0; i < len/2; i++)
- {
- INT32 t = buf[len/2 + i];
- buf[len/2 + i] = buf[len + i];
- buf[len + i] = t;
- }
-
- shuffle(buf, len);
- shuffle(buf + len, len);
-}
-
-void konami_rom_deinterleave_2(UINT8 *src, INT32 len)
-{
- shuffle((UINT16*)src,len/2);
-}
-
-void konami_rom_deinterleave_4(UINT8 *src, INT32 len)
-{
- konami_rom_deinterleave_2(src, len);
- konami_rom_deinterleave_2(src, len);
-}
-
-void KonamiRecalcPalette(UINT8 *src, UINT32 *dst, INT32 len)
-{
- konami_palette32 = dst;
-
- UINT8 r,g,b;
- UINT16 *p = (UINT16*)src;
- for (INT32 i = 0; i < len / 2; i++) {
- UINT16 d = BURN_ENDIAN_SWAP_INT16((p[i] << 8) | (p[i] >> 8));
-
- r = (d >> 0) & 0x1f;
- g = (d >> 5) & 0x1f;
- b = (d >> 10) & 0x1f;
-
- r = (r << 3) | (r >> 2);
- g = (g << 3) | (g >> 2);
- b = (b << 3) | (b >> 2);
-
- dst[i] = (r << 16) | (g << 8) | b; // 32-bit colors
- }
-}
-
-void KonamiICReset()
-{
- if (KonamiIC_K051960InUse) K051960Reset();
- if (KonamiIC_K052109InUse) K052109Reset();
- if (KonamiIC_K051316InUse) K051316Reset();
- if (KonamiIC_K053245InUse) K053245Reset();
- if (KonamiIC_K053247InUse) K053247Reset();
- if (KonamiIC_K053936InUse) K053936Reset();
- if (KonamiIC_K053250InUse) K053250Reset();
- if (KonamiIC_K055555InUse) K055555Reset();
- if (KonamiIC_K054338InUse) K054338Reset();
- if (KonamiIC_K056832InUse) K056832Reset();
-
- K053251Reset();
- K054000Reset();
- K051733Reset();
-}
-
-void KonamiICExit()
-{
- if (konami_bitmap32) {
- BurnFree (konami_bitmap32);
- konami_bitmap32 = NULL;
- }
-
- if (konami_priority_bitmap) {
- BurnFree(konami_priority_bitmap);
- konami_priority_bitmap = NULL;
- }
-
- previous_depth = 0;
- if (palette_lut) {
- BurnFree(palette_lut);
- }
- palette_lut = NULL;
-
- if (KonamiIC_K051960InUse) K051960Exit();
- if (KonamiIC_K052109InUse) K052109Exit();
- if (KonamiIC_K051316InUse) K051316Exit();
- if (KonamiIC_K053245InUse) K053245Exit();
- if (KonamiIC_K053247InUse) K053247Exit();
- if (KonamiIC_K053936InUse) K053936Exit();
- if (KonamiIC_K053250InUse) K053250Exit();
- if (KonamiIC_K055555InUse) K055555Exit();
- if (KonamiIC_K054338InUse) K054338Exit();
- if (KonamiIC_K056832InUse) K056832Exit();
-
- KonamiIC_K051960InUse = 0;
- KonamiIC_K052109InUse = 0;
- KonamiIC_K051316InUse = 0;
- KonamiIC_K053245InUse = 0;
- KonamiIC_K053247InUse = 0;
- KonamiIC_K053250InUse = 0;
- KonamiIC_K055555InUse = 0;
- KonamiIC_K054338InUse = 0;
- KonamiIC_K056832InUse = 0;
-
- highlight_over_sprites_mode = 0;
- highlight_mode = 0;
-
- K05324xZRejection = -1;
-}
-
-void KonamiICScan(INT32 nAction)
-{
- if (KonamiIC_K051960InUse) K051960Scan(nAction);
- if (KonamiIC_K052109InUse) K052109Scan(nAction);
- if (KonamiIC_K051316InUse) K051316Scan(nAction);
- if (KonamiIC_K053245InUse) K053245Scan(nAction);
- if (KonamiIC_K053247InUse) K053247Scan(nAction);
- if (KonamiIC_K053936InUse) K053936Scan(nAction);
- if (KonamiIC_K053250InUse) K053250Scan(nAction);
- if (KonamiIC_K055555InUse) K055555Scan(nAction);
- if (KonamiIC_K054338InUse) K054338Scan(nAction);
- if (KonamiIC_K056832InUse) K056832Scan(nAction);
-
- K053251Scan(nAction);
- K054000Scan(nAction);
- K051733Scan(nAction);
-}
-
-void KonamiAllocateBitmaps()
-{
- INT32 width, height;
- BurnDrvGetVisibleSize(&width, &height);
-
- if (konami_bitmap32 == NULL) {
- konami_bitmap32 = (UINT32*)BurnMalloc(width * height * sizeof(INT32));
- }
-
- if (konami_priority_bitmap == NULL) {
- konami_priority_bitmap = (UINT8*)BurnMalloc(width * height * sizeof(INT8));
- }
-}
-
-void KonamiClearBitmaps(UINT32 color)
-{
- if (konami_priority_bitmap && konami_bitmap32) {
- for (INT32 i = 0; i < nScreenWidth * nScreenHeight; i++) {
- konami_priority_bitmap[i] = 0;
- konami_bitmap32[i] = color;
- }
- }
-}
-
-void KonamiBlendCopy(UINT32 *pPalette)
-{
- pBurnDrvPalette = pPalette;
-
- UINT32 *bmp = konami_bitmap32;
-
- if (previous_depth != 2 && nBurnBpp == 2) {
- if (palette_lut == NULL) {
- palette_lut = (UINT16*)BurnMalloc((1 << 24) * 2);
-
- for (INT32 i = 0; i < (1 << 24); i++) {
- palette_lut[i] = BurnHighCol(i / 0x10000, (i / 0x100) & 0xff, i & 0xff, 0);
- }
- }
- }
-
- previous_depth = nBurnBpp;
-
- switch (nBurnBpp)
- {
- case 4:
- {
- memcpy (pBurnDraw, bmp, nScreenWidth * nScreenHeight * sizeof(INT32));
- }
- break;
-
- case 2:
- {
- UINT16 *dst = (UINT16*)pBurnDraw;
- for (INT32 i = 0; i < nScreenWidth * nScreenHeight; i++, dst++, bmp++) {
- *dst = palette_lut[*bmp];
- }
- }
- break;
-
- case 3:
- {
- UINT8 *dst = pBurnDraw;
- for (INT32 i = 0; i < nScreenWidth * nScreenHeight; i++, dst+=3, bmp++) {
- dst[0] = *bmp;
- dst[1] = *bmp / 0x100;
- dst[2] = *bmp / 0x10000;
- }
- }
- break;
-#if 0
- case 2:
- {
- UINT16 *dst = (UINT16*)pBurnDraw;
- for (INT32 i = 0; i < nScreenWidth * nScreenHeight; i++, dst++, bmp++) {
- *dst = *bmp / 0x10000;
- *dst += (*bmp / 0x400) & 0x3f;
- *dst += (*bmp / 8) & 0x1f;
- }
-
- }
- break;
-#endif
- default:
- for (INT32 i = 0; i < nScreenWidth * nScreenHeight; i++) {
- PutPix(pBurnDraw + (i * nBurnBpp), BurnHighCol((bmp[i]>>16)&0xff, (bmp[i]>>8)&0xff, bmp[i]&0xff, 0));
- }
- // bprintf (0, _T("Unsupported KonamiBlendCopy bit depth! %d\n"), nBurnBpp);
- break;
- }
-}
-
-void konami_draw_16x16_priozoom_tile(UINT8 *gfx, INT32 code, INT32 bpp, INT32 color, INT32 t, INT32 sx, INT32 sy, INT32 fx, INT32 fy, INT32 width, INT32 height, INT32 zoomx, INT32 zoomy, UINT32 priority)
-{
- // Based on MAME sources for tile zooming
- UINT8 *gfx_base = gfx + (code * width * height);
- int dh = (zoomy * height + 0x8000) / 0x10000;
- int dw = (zoomx * width + 0x8000) / 0x10000;
-
- priority |= 1<<31; // always on!
-
- UINT32 *pal = konami_palette32 + (color << bpp);
-
- if (dw && dh)
- {
- int dx = (width * 0x10000) / dw;
- int dy = (height * 0x10000) / dh;
- int ex = sx + dw;
- int ey = sy + dh;
- int x_index_base = 0;
- int y_index = 0;
-
- if (fx) {
- x_index_base = (dw - 1) * dx;
- dx = -dx;
- }
-
- if (fy) {
- y_index = (dh - 1) * dy;
- dy = -dy;
- }
-
- for (INT32 y = sy; y < ey; y++)
- {
- if (y >= 0 && y < nScreenHeight)
- {
- UINT8 *src = gfx_base + (y_index / 0x10000) * width;
- UINT32 *dst = konami_bitmap32 + y * nScreenWidth;
- UINT8 *prio = konami_priority_bitmap + y * nScreenWidth;
-
- for (INT32 x = sx, x_index = x_index_base; x < ex; x++)
- {
- if (x >= 0 && x < nScreenWidth) {
- INT32 pxl = src[x_index>>16];
-
- if (pxl != t) {
- if ((priority & (1 << (prio[x]&0x1f)))==0) {
- dst[x] = pal[pxl];
- }
- prio[x] |= 0x1f;
- }
- }
- x_index += dx;
- }
- }
-
- y_index += dy;
- }
- }
-}
-
-void konami_draw_16x16_zoom_tile(UINT8 *gfxbase, INT32 code, INT32 bpp, INT32 color, INT32 t, INT32 sx, INT32 sy, INT32 fx, INT32 fy, INT32 width, INT32 height, INT32 zoomx, INT32 zoomy)
-{
- UINT8 *gfx_base = gfxbase + (code * width * height);
- int dh = (zoomy * height + 0x8000) / 0x10000;
- int dw = (zoomx * width + 0x8000) / 0x10000;
-
- UINT32 *pal = konami_palette32 + (color << bpp);
-
- if (dw && dh)
- {
- int dx = (width * 0x10000) / dw;
- int dy = (height * 0x10000) / dh;
- int ex = sx + dw;
- int ey = sy + dh;
- int x_index_base = 0;
- int y_index = 0;
-
- if (fx) {
- x_index_base = (dw - 1) * dx;
- dx = -dx;
- }
-
- if (fy) {
- y_index = (dh - 1) * dy;
- dy = -dy;
- }
-
- for (INT32 y = sy; y < ey; y++)
- {
- if (y >= 0 && y < nScreenHeight)
- {
- UINT8 *src = gfx_base + (y_index / 0x10000) * width;
- UINT32 *dst = konami_bitmap32 + y * nScreenWidth;
-
- for (INT32 x = sx, x_index = x_index_base; x < ex; x++)
- {
- if (x >= 0 && x < nScreenWidth) {
- INT32 pxl = src[x_index>>16];
-
- if (pxl != t) {
- dst[x] = pal[pxl];
- }
- }
-
- x_index += dx;
- }
- }
-
- y_index += dy;
- }
- }
-}
-
-void konami_set_highlight_mode(INT32 mode)
-{
- highlight_mode = mode;
-}
-
-void konami_set_highlight_over_sprites_mode(INT32 mode)
-{
- highlight_over_sprites_mode = mode;
-}
-
-static inline UINT32 shadow_blend(UINT32 d)
-{
- return ((((d & 0xff00ff) * 0x9d) & 0xff00ff00) + (((d & 0x00ff00) * 0x9d) & 0x00ff0000)) / 0x100;
-}
-
-static inline UINT32 highlight_blend(UINT32 d)
-{
- INT32 r = ((d&0xff0000)+0x220000);
- if (r > 0xff0000) r = 0xff0000;
-
- INT32 g = ((d&0x00ff00)+0x002200);
- if (g > 0x00ff00) g = 0x00ff00;
-
- INT32 b = ((d&0x0000ff)+0x000022);
- if (b > 0x0000ff) b = 0x0000ff;
- return r|g|b;
-}
-
-void konami_draw_16x16_prio_tile(UINT8 *gfxbase, INT32 code, INT32 bpp, INT32 color, INT32 sx, INT32 sy, INT32 flipx, INT32 flipy, UINT32 priority)
-{
- INT32 flip = 0;
- if (flipx) flip |= 0x0f;
- if (flipy) flip |= 0xf0;
-
- UINT8 *gfx = gfxbase + code * 0x100;
-
- UINT8 *pri = konami_priority_bitmap + (sy * nScreenWidth) + sx;
- UINT32 *dst = konami_bitmap32 + (sy * nScreenWidth) + sx;
- UINT32 *pal = konami_palette32 + (color << bpp);
-
- priority |= 1 << 31; // always on!
-
- for (INT32 y = 0; y < 16; y++, sy++)
- {
- if (sy >= 0 && sy < nScreenHeight)
- {
- for (INT32 x = 0; x < 16; x++)
- {
- if ((sx+x) >= 0 && (sx+x) < nScreenWidth)
- {
- INT32 pxl = gfx[((y*16)+x)^flip];
-
- if (pxl) {
- if ((priority & (1 << (pri[x]&0x1f)))==0) {
- if (pri[x] & 0x20) {
- dst[x] = highlight_mode ? highlight_blend(pal[pxl]) : shadow_blend(pal[pxl]);//pal[pxl];
- } else {
- dst[x] = pal[pxl];
- }
- }
- pri[x] |= 0x1f;
- }
- }
- }
- }
-
- pri += nScreenWidth;
- dst += nScreenWidth;
- }
-}
-
-void konami_draw_16x16_tile(UINT8 *gfxbase, INT32 code, INT32 bpp, INT32 color, INT32 sx, INT32 sy, INT32 flipx, INT32 flipy)
-{
- INT32 flip = 0;
- if (flipx) flip |= 0x0f;
- if (flipy) flip |= 0xf0;
-
- UINT8 *gfx = gfxbase + code * 0x100;
-
- UINT32 *pal = konami_palette32 + (color << bpp);
- UINT32 *dst = konami_bitmap32 + (sy * nScreenWidth) + sx;
-
- for (INT32 y = 0; y < 16; y++, sy++)
- {
- if (sy >= 0 && sy < nScreenHeight)
- {
- for (INT32 x = 0; x < 16; x++)
- {
- if ((sx+x) >= 0 && (sx+x) < nScreenWidth)
- {
- INT32 pxl = gfx[((y*16)+x)^flip];
-
- if (pxl) {
- dst[x] = pal[pxl];
- }
- }
- }
- }
-
- dst += nScreenWidth;
- }
-}
-
-void konami_render_zoom_shadow_tile(UINT8 *gfxbase, INT32 code, INT32 bpp, INT32 color, INT32 sx, INT32 sy, INT32 fx, INT32 fy, INT32 width, INT32 height, INT32 zoomx, INT32 zoomy, UINT32 priority, INT32 /*highlight*/)
-{
- // Based on MAME sources for tile zooming
- UINT8 *gfx_base = gfxbase + (code * width * height);
- int dh = (zoomy * height + 0x8000) / 0x10000;
- int dw = (zoomx * width + 0x8000) / 0x10000;
-
- INT32 shadow_color = (1 << bpp) - 1;
-
- UINT32 *pal = konami_palette32 + (color << bpp);
-
- if (dw && dh)
- {
- int dx = (width * 0x10000) / dw;
- int dy = (height * 0x10000) / dh;
- int ex = sx + dw;
- int ey = sy + dh;
- int x_index_base = 0;
- int y_index = 0;
-
- if (fx) {
- x_index_base = (dw - 1) * dx;
- dx = -dx;
- }
-
- if (fy) {
- y_index = (dh - 1) * dy;
- dy = -dy;
- }
-
- if (priority == 0xffffffff)
- {
- for (INT32 y = sy; y < ey; y++)
- {
- if (y >= 0 && y < nScreenHeight)
- {
- UINT8 *src = gfx_base + (y_index / 0x10000) * width;
- UINT32 *dst = konami_bitmap32 + y * nScreenWidth;
- UINT8 *pri = konami_priority_bitmap + y * nScreenWidth;
-
- for (INT32 x = sx, x_index = x_index_base; x < ex; x++)
- {
- if (x >= 0 && x < nScreenWidth) {
- INT32 pxl = src[x_index>>16];
-
- if (pxl) {
- if (pxl == shadow_color) {
- dst[x] = highlight_mode ? highlight_blend(dst[x]) : shadow_blend(dst[x]);
- if (highlight_over_sprites_mode)
- pri[x] |= 0x20;
- } else {
- if (pri[x] & 0x20) {
- dst[x] = highlight_mode ? highlight_blend(dst[x]) : shadow_blend(dst[x]);//pal[pxl];
- } else {
- dst[x] = pal[pxl];
- }
- }
- }
- }
-
- x_index += dx;
- }
- }
-
- y_index += dy;
- }
- } else {
- priority |= 1<<31; // always on!
-
- for (INT32 y = sy; y < ey; y++)
- {
- if (y >= 0 && y < nScreenHeight)
- {
- UINT8 *src = gfx_base + (y_index / 0x10000) * width;
- UINT32 *dst = konami_bitmap32 + y * nScreenWidth;
- UINT8 *pri = konami_priority_bitmap + y * nScreenWidth;
-
- for (INT32 x = sx, x_index = x_index_base; x < ex; x++)
- {
- if (x >= 0 && x < nScreenWidth) {
- INT32 pxl = src[x_index>>16];
-
- if (pxl) {
- if (pxl == shadow_color) {
- if ((priority & (1 << (pri[x]&0x1f)))==0 && (pri[x] & 0x80) == 0) {
- dst[x] = highlight_mode ? highlight_blend(dst[x]) : shadow_blend(dst[x]);
- pri[x] = 0x80;
- if (highlight_over_sprites_mode)
- pri[x] |= 0x20;
- }
- } else {
- if ((priority & (1 << (pri[x]&0x1f)))==0) {
- if (pri[x] & 0x20) {
- dst[x] = highlight_mode ? highlight_blend(dst[x]) : shadow_blend(dst[x]);//pal[pxl];
- } else {
- dst[x] = pal[pxl];
- }
- pri[x] = (pri[x]&0x80)|0x1f;
- }
- }
- }
- }
-
- x_index += dx;
- }
- }
-
- y_index += dy;
- }
- }
- }
-}
diff --git a/jan/src/burn/drv/konami/konamiic.h b/jan/src/burn/drv/konami/konamiic.h
deleted file mode 100644
index 8f7a7a96f..000000000
--- a/jan/src/burn/drv/konami/konamiic.h
+++ /dev/null
@@ -1,501 +0,0 @@
-// konamiic.cpp
-//---------------------------------------------------------------------------------------------------------------
-extern UINT32 KonamiIC_K051960InUse;
-extern UINT32 KonamiIC_K052109InUse;
-extern UINT32 KonamiIC_K051316InUse;
-extern UINT32 KonamiIC_K053245InUse;
-extern UINT32 KonamiIC_K053247InUse;
-extern UINT32 KonamiIC_K053936InUse;
-extern UINT32 KonamiIC_K053250InUse;
-extern UINT32 KonamiIC_K055555InUse;
-extern UINT32 KonamiIC_K054338InUse;
-extern UINT32 KonamiIC_K056832InUse;
-
-extern UINT8 *konami_priority_bitmap;
-extern UINT32 *konami_bitmap32;
-extern UINT32 *konami_palette32;
-
-void KonamiClearBitmaps(UINT32 color);
-void KonamiBlendCopy(UINT32 *palette);
-
-void KonamiICReset();
-void KonamiICExit();
-void KonamiICScan(INT32 nAction);
-
-void konami_sortlayers3( int *layer, int *pri );
-void konami_sortlayers4( int *layer, int *pri );
-void konami_sortlayers5( int *layer, int *pri );
-
-void KonamiRecalcPalette(UINT8 *src, UINT32 *dst, INT32 len);
-
-void konami_rom_deinterleave_2(UINT8 *src, INT32 len);
-void konami_rom_deinterleave_4(UINT8 *src, INT32 len);
-
-// internal
-void KonamiAllocateBitmaps();
-void konami_draw_16x16_tile(UINT8 *gfx, INT32 code, INT32 bpp, INT32 color, INT32 sx, INT32 sy, INT32 flipx, INT32 flipy);
-void konami_draw_16x16_prio_tile(UINT8 *gfx, INT32 code, INT32 bpp, INT32 color, INT32 sx, INT32 sy, INT32 flipx, INT32 flipy, UINT32 priority);
-void konami_draw_16x16_zoom_tile(UINT8 *gfx, INT32 code, INT32 bpp, INT32 color, INT32 t, INT32 sx, INT32 sy, INT32 fx, INT32 fy, INT32 width, INT32 height, INT32 zoomx, INT32 zoomy);
-void konami_draw_16x16_priozoom_tile(UINT8 *gfx, INT32 code, INT32 bpp, INT32 color, INT32 t, INT32 sx, INT32 sy, INT32 fx, INT32 fy, INT32 width, INT32 height, INT32 zoomx, INT32 zoomy, UINT32 priority);
-void konami_render_zoom_shadow_tile(UINT8 *gfx, INT32 code, INT32 bpp, INT32 color, INT32 sx, INT32 sy, INT32 fx, INT32 fy, INT32 width, INT32 height, INT32 zoomx, INT32 zoomy, UINT32 priority, INT32 shadow);
-void konami_set_highlight_mode(INT32 mode);
-void konami_set_highlight_over_sprites_mode(INT32 mode);
-
-// k051960 / k052109 shared
-//---------------------------------------------------------------------------------------------------------------
-void K052109_051960_w(INT32 offset, INT32 data);
-UINT8 K052109_051960_r(INT32 offset);
-
-// k051960.cpp
-//---------------------------------------------------------------------------------------------------------------
-extern INT32 K051960ReadRoms;
-extern INT32 K052109_irq_enabled;
-void K051960SpritesRender(INT32 min_priority, INT32 max_priority);
-UINT8 K0519060FetchRomData(UINT32 Offset);
-UINT8 K051960Read(UINT32 Offset);
-void K051960Write(UINT32 Offset, UINT8 Data);
-void K051960SetCallback(void (*Callback)(INT32 *Code, INT32 *Colour, INT32 *Priority, INT32 *Shadow));
-void K051960SetSpriteOffset(INT32 x, INT32 y);
-void K051960Reset();
-void K051960GfxDecode(UINT8 *src, UINT8 *dst, INT32 len);
-void K051960Init(UINT8* pRomSrc, UINT8* pRomSrcExp, UINT32 RomMask);
-void K051960Exit();
-void K051960Scan(INT32 nAction);
-void K051960SetBpp(INT32 bpp);
-
-void K051937Write(UINT32 Offset, UINT8 Data);
-UINT8 K051937Read(UINT32 Offset);
-
-// k052109.cpp
-//---------------------------------------------------------------------------------------------------------------
-extern INT32 K052109RMRDLine;
-extern INT32 K051960_irq_enabled;
-extern INT32 K051960_nmi_enabled;
-extern INT32 K051960_spriteflip;
-
-void K052109UpdateScroll();
-void K052109AdjustScroll(INT32 x, INT32 y);
-
-#define K052109_OPAQUE 0x10000
-#define K052109_CATEGORY(x) (0x100|((x)&0xff))
-
-void K052109RenderLayer(INT32 nLayer, INT32 Flags, INT32 Priority);
-UINT8 K052109Read(UINT32 Offset);
-void K052109Write(UINT32 Offset, UINT8 Data);
-void K052109SetCallback(void (*Callback)(INT32 Layer, INT32 Bank, INT32 *Code, INT32 *Colour, INT32 *xFlip, INT32 *priority));
-void K052109Reset();
-void K052109GfxDecode(UINT8 *src, UINT8 *dst, INT32 nLen);
-void K052109Init(UINT8 *pRomSrc, UINT8* pRomSrcExp, UINT32 RomMask);
-void K052109Exit();
-void K052109Scan(INT32 nAction);
-
-#define K051960ByteRead(nStartAddress) \
-if (a >= nStartAddress && a <= nStartAddress + 0x3ff) { \
- return K051960Read(a - nStartAddress); \
-}
-
-#define K051960ByteWrite(nStartAddress) \
-if (a >= nStartAddress && a <= nStartAddress + 0x3ff) { \
- K051960Write((a - nStartAddress), d); \
- return; \
-}
-
-#define K051960WordWrite(nStartAddress) \
-if (a >= nStartAddress && a <= nStartAddress + 0x3ff) { \
- if (a & 1) { \
- K051960Write((a - nStartAddress) + 1, d & 0xff); \
- } else { \
- K051960Write((a - nStartAddress) + 0, (d >> 8) & 0xff); \
- } \
- return; \
-}
-
-#define K051937ByteRead(nStartAddress) \
-if (a >= nStartAddress && a <= nStartAddress + 7) { \
- INT32 Offset = (a - nStartAddress); \
- \
- if (Offset == 0) { \
- static INT32 Counter; \
- return (Counter++) & 1; \
- } \
- \
- if (K051960ReadRoms && (Offset >= 0x04 && Offset <= 0x07)) { \
- return K0519060FetchRomData(Offset & 3); \
- } \
- \
- return 0; \
-}
-
-#define K015937ByteWrite(nStartAddress) \
-if (a >= nStartAddress && a <= nStartAddress + 7) { \
- K051937Write((a - nStartAddress), d); \
- return; \
-}
-
-#define K052109WordNoA12Read(nStartAddress) \
-if (a >= nStartAddress && a <= nStartAddress + 0x7fff) { \
- INT32 Offset = (a - nStartAddress) >> 1; \
- Offset = ((Offset & 0x3000) >> 1) | (Offset & 0x07ff); \
- \
- if (a & 1) { \
- return K052109Read(Offset + 0x2000); \
- } else { \
- return K052109Read(Offset + 0x0000); \
- } \
-}
-
-
-#define K052109WordNoA12Write(nStartAddress) \
-if (a >= nStartAddress && a <= nStartAddress + 0x7fff) { \
- INT32 Offset = (a - nStartAddress) >> 1; \
- Offset = ((Offset & 0x3000) >> 1) | (Offset & 0x07ff); \
- \
- if (a & 1) { \
- K052109Write(Offset + 0x2000, d); \
- } else { \
- K052109Write(Offset + 0x0000, d); \
- } \
- return; \
-}
-
-
-// K056832.cpp
-//---------------------------------------------------------------------------------------------------------------
-#define K056832_LAYER_ALPHA 0x00100000
-#define K056832_LAYER_OPAQUE 0x00400000
-#define K056832_DRAW_FLAG_MIRROR 0x00800000
-#define K056382_DRAW_FLAG_FORCE_XYSCROLL 0x00800000 // same as flag mirror
-
-#define K056832_SET_ALPHA(x) (K056832_LAYER_ALPHA | ((x)<<8))
-
-void K056832Reset();
-void K056832Init(UINT8 *rom, UINT8 *romexp, INT32 rom_size, void (*cb)(INT32 layer, INT32 *code, INT32 *color, INT32 *flags));
-void K056832Exit();
-void K056832Scan(INT32 nAction);
-void K056832SetLayerAssociation(INT32 status);
-void K056832SetGlobalOffsets(INT32 minx, INT32 miny);
-void K056832SetLayerOffsets(INT32 layer, INT32 xoffs, INT32 yoffs);
-void K056832SetExtLinescroll();
-INT32 K056832IsIrqEnabled();
-void K056832ReadAvac(INT32 *mode, INT32 *data);
-UINT16 K056832ReadRegister(int reg);
-INT32 K056832GetLookup(INT32 bits);
-void K056832SetTileBank(int bank);
-void K056832WordWrite(INT32 offset, UINT16 data);
-void K056832ByteWrite(INT32 offset, UINT8 data);
-UINT16 K056832RomWordRead(UINT16 offset);
-void K056832HalfRamWriteWord(UINT32 offset, UINT16 data);
-void K056832HalfRamWriteByte(UINT32 offset, UINT8 data);
-UINT16 K056832HalfRamReadWord(UINT32 offset);
-UINT8 K056832HalfRamReadByte(UINT32 offset);
-void K056832RamWriteWord(UINT32 offset, UINT16 data);
-void K056832RamWriteByte(UINT32 offset, UINT8 data);
-UINT16 K056832RamReadWord(UINT32 offset);
-UINT8 K056832RamReadByte(UINT32 offset);
-UINT16 K056832RomWord8000Read(INT32 offset);
-void K056832WritebRegsWord(INT32 offset, UINT16 data);
-void K056832WritebRegsByte(INT32 offset, UINT8 data);
-UINT16 K056832mwRomWordRead(INT32 address);
-void K056832Draw(INT32 layer, UINT32 flags, UINT32 priority);
-INT32 K056832GetLayerAssociation();
-void K056832Metamorphic_Fixup();
-
-// K051316.cpp
-//---------------------------------------------------------------------------------------------------------------
-void K051316Init(INT32 chip, UINT8 *gfx, UINT8 *gfxexp, INT32 mask, void (*callback)(INT32 *code,INT32 *color,INT32 *flags), INT32 bpp, INT32 transp);
-void K051316Reset();
-void K051316Exit();
-
-#define K051316_16BIT (1<<8)
-
-void K051316RedrawTiles(INT32 chip);
-
-UINT8 K051316ReadRom(INT32 chip, INT32 offset);
-UINT8 K051316Read(INT32 chip, INT32 offset);
-void K051316Write(INT32 chip, INT32 offset, INT32 data);
-
-void K051316WriteCtrl(INT32 chip, INT32 offset, INT32 data);
-void K051316WrapEnable(INT32 chip, INT32 status);
-void K051316SetOffset(INT32 chip, INT32 xoffs, INT32 yoffs);
-void K051316_zoom_draw(INT32 chip, INT32 flags);
-void K051316Scan(INT32 nAction);
-
-// K053245 / k053247 shared
-//---------------------------------------------------------------------------------------------------------------
-extern INT32 K05324xZRejection;
-void K05324xSetZRejection(INT32 z);
-
-// K053245.cpp
-//---------------------------------------------------------------------------------------------------------------
-INT32 K053245Reset();
-void K053245GfxDecode(UINT8 *src, UINT8 *dst, INT32 len);
-void K053245Init(INT32 chip, UINT8 *gfx, UINT8 *gfxexp, INT32 mask, void (*callback)(INT32 *code,INT32 *color,INT32 *priority));
-void K053245Exit();
-void K053245SetBpp(INT32 chip, INT32 bpp);
-
-void K053245SpritesRender(INT32 chip);
-
-void K053245SetSpriteOffset(INT32 chip,INT32 offsx, INT32 offsy);
-void K053245ClearBuffer(INT32 chip);
-void K053245UpdateBuffer(INT32 chip);
-void K053244BankSelect(INT32 chip, INT32 bank);
-
-UINT16 K053245ReadWord(INT32 chip, INT32 offset);
-void K053245WriteWord(INT32 chip, INT32 offset, INT32 data);
-
-UINT8 K053245Read(INT32 chip, INT32 offset);
-void K053245Write(INT32 chip, INT32 offset, INT32 data);
-UINT8 K053244Read(INT32 chip, INT32 offset);
-void K053244Write(INT32 chip, INT32 offset, INT32 data);
-
-void K053245Scan(INT32 nAction);
-
-extern UINT8 *K053245Ram[2];
-
-// K053251.cpp
-//---------------------------------------------------------------------------------------------------------------
-void K053251Reset();
-
-void K053251Write(INT32 offset, INT32 data);
-
-INT32 K053251GetPriority(INT32 idx);
-INT32 K053251GetPaletteIndex(INT32 idx);
-
-void K053251Write(INT32 offset, INT32 data);
-
-void K053251Scan(INT32 nAction);
-
-// K053247.cpp
-//---------------------------------------------------------------------------------------------------------------
-void K053247Reset();
-void K053247Init(UINT8 *gfxrom, UINT8 *gfxromexp, INT32 gfxlen, void (*Callback)(INT32 *code, INT32 *color, INT32 *priority), INT32 flags);
-void K053247Exit();
-void K053247Scan(INT32 nAction);
-
-void K053247SetBpp(INT32 bpp);
-
-extern UINT8 *K053247Ram;
-extern void (*K053247Callback)(INT32 *code, INT32 *color, INT32 *priority);
-
-void K053247Export(UINT8 **ram, UINT8 **gfx, void (**callback)(INT32 *, INT32 *, INT32 *), INT32 *dx, INT32 *dy);
-void K053247GfxDecode(UINT8 *src, UINT8 *dst, INT32 len); // 16x16
-void K053247SetSpriteOffset(INT32 offsx, INT32 offsy);
-void K053247WrapEnable(INT32 status);
-
-void K053246_set_OBJCHA_line(INT32 state); // 1 assert, 0 clear
-INT32 K053246_is_IRQ_enabled();
-
-UINT8 K053247Read(INT32 offset);
-void K053247Write(INT32 offset, INT32 data);
-UINT8 K053246Read(INT32 offset);
-void K053246Write(INT32 offset, INT32 data);
-
-void K053247WriteRegsByte(INT32 offset, UINT8 data);
-void K053247WriteRegsWord(INT32 offset, UINT16 data);
-UINT16 K053247ReadRegs(INT32 offset);
-UINT16 K053246ReadRegs(INT32 offset);
-
-void K053247SpritesRender();
-
-UINT16 K053247ReadWord(INT32 offset);
-void K053247WriteWord(INT32 offset, UINT16 data);
-
-// k054000.cpp
-//------------------------------------------------------------------------------------------
-void K054000Reset();
-void K054000Write(INT32 offset, INT32 data);
-UINT8 K054000Read(INT32 address);
-void K054000Scan(INT32 nAction);
-
-// K051733.cpp
-//------------------------------------------------------------------------------------------
-void K051733Reset();
-void K051733Write(INT32 offset, INT32 data);
-UINT8 K051733Read(INT32 offset);
-void K051733Scan(INT32 nAction);
-
-// K053936.cpp
-//------------------------------------------------------------------------------------------
-
-void K053936Init(INT32 chip, UINT8 *ram, INT32 len, INT32 w, INT32 h, void (*pCallback)(INT32 offset, UINT16 *ram, INT32 *code, INT32 *color, INT32 *sx, INT32 *sy, INT32 *fx, INT32 *fy));
-
-void K053936Reset();
-void K053936Exit();
-void K053936Scan(INT32 nAction);
-
-void K053936EnableWrap(INT32 chip, INT32 status);
-void K053936SetOffset(INT32 chip, INT32 xoffs, INT32 yoffs);
-void K053936PredrawTiles3(INT32 chip, UINT8 *gfx, INT32 tile_size_x, INT32 tile_size_y, INT32 transparent);
-void K053936PredrawTiles2(INT32 chip, UINT8 *gfx);
-void K053936PredrawTiles(INT32 chip, UINT8 *gfx, INT32 transparent, INT32 tcol /*transparent color*/);
-void K053936Draw(INT32 chip, UINT16 *ctrl, UINT16 *linectrl, INT32 transp);
-
-extern UINT16 *m_k053936_0_ctrl_16;
-extern UINT16 *m_k053936_0_linectrl_16;
-extern UINT16 *m_k053936_0_ctrl;
-extern UINT16 *m_k053936_0_linectrl;
-extern UINT16 *K053936_external_bitmap;
-
-void K053936GP_set_colorbase(INT32 chip, INT32 color_base);
-void K053936GP_enable(int chip, int enable);
-void K053936GP_set_offset(int chip, int xoffs, int yoffs);
-void K053936GP_clip_enable(int chip, int status);
-void K053936GP_set_cliprect(int chip, int minx, int maxx, int miny, int maxy);
-void K053936GP_0_zoom_draw(UINT16 *bitmap, int tilebpp, int blend, int alpha, int pixeldouble_output, UINT16* temp_m_k053936_0_ctrl_16, UINT16* temp_m_k053936_0_linectrl_16,UINT16* temp_m_k053936_0_ctrl, UINT16* temp_m_k053936_0_linectrl);
-void K053936GpInit();
-void K053936GPExit();
-
-// k053250.cpp
-//------------------------------------------------------------------------------------------
-
-extern UINT16 *K053250Ram; // allocated in k053250Init
-
-void K053250Init(INT32 chip, UINT8 *rom, UINT8 *romexp, INT32 size);
-void K053250SetOffsets(INT32 chip, int offx, int offy);
-void K053250Reset();
-void K053250Scan(INT32 nAction);
-void K053250Exit();
-
-void K053250Draw(INT32 chip, int colorbase, int flags, int priority);
-
-UINT16 K053250RegRead(INT32 chip, INT32 offset);
-void K053250RegWrite(INT32 chip, INT32 offset, UINT8 data);
-UINT16 K053250RomRead(INT32 chip, INT32 offset);
-
-
-// k054338.cpp
-//------------------------------------------------------------------------------------------
-
-#define K338_REG_BGC_R 0
-#define K338_REG_BGC_GB 1
-#define K338_REG_SHAD1R 2
-#define K338_REG_BRI3 11
-#define K338_REG_PBLEND 13
-#define K338_REG_CONTROL 15
-
-#define K338_CTL_KILL 0x01 /* 0 = no video output, 1 = enable */
-#define K338_CTL_MIXPRI 0x02
-#define K338_CTL_SHDPRI 0x04
-#define K338_CTL_BRTPRI 0x08
-#define K338_CTL_WAILSL 0x10
-#define K338_CTL_CLIPSL 0x20
-
-void K054338Init();
-void K054338Reset();
-void K054338Exit();
-void K054338Scan(INT32 nAction);
-void K054338WriteWord(INT32 offset, UINT16 data);
-void K054338WriteByte(INT32 offset, UINT8 data);
-INT32 K054338_read_register(int reg);
-void K054338_fill_solid_bg();
-void K054338_fill_backcolor(int palette_offset, int mode);
-INT32 K054338_set_alpha_level(int pblend);
-void K054338_invert_alpha(int invert);
-void K054338_update_all_shadows();
-void K054338_export_config(int **shdRGB);
-
-
-// k055555.cpp
-//------------------------------------------------------------------------------------------
-
-#define K55_PALBASE_BG 0 // background palette
-#define K55_CONTROL 1 // control register
-#define K55_COLSEL_0 2 // layer A, B color depth
-#define K55_COLSEL_1 3 // layer C, D color depth
-#define K55_COLSEL_2 4 // object, S1 color depth
-#define K55_COLSEL_3 5 // S2, S3 color depth
-
-#define K55_PRIINP_0 7 // layer A pri 0
-#define K55_PRIINP_1 8 // layer A pri 1
-#define K55_PRIINP_2 9 // layer A "COLPRI"
-#define K55_PRIINP_3 10 // layer B pri 0
-#define K55_PRIINP_4 11 // layer B pri 1
-#define K55_PRIINP_5 12 // layer B "COLPRI"
-#define K55_PRIINP_6 13 // layer C pri
-#define K55_PRIINP_7 14 // layer D pri
-#define K55_PRIINP_8 15 // OBJ pri
-#define K55_PRIINP_9 16 // sub 1 (GP:PSAC) pri
-#define K55_PRIINP_10 17 // sub 2 (GX:PSAC) pri
-#define K55_PRIINP_11 18 // sub 3 pri
-
-#define K55_OINPRI_ON 19 // object priority bits selector
-
-#define K55_PALBASE_A 23 // layer A palette
-#define K55_PALBASE_B 24 // layer B palette
-#define K55_PALBASE_C 25 // layer C palette
-#define K55_PALBASE_D 26 // layer D palette
-#define K55_PALBASE_OBJ 27 // OBJ palette
-#define K55_PALBASE_SUB1 28 // SUB1 palette
-#define K55_PALBASE_SUB2 29 // SUB2 palette
-#define K55_PALBASE_SUB3 30 // SUB3 palette
-
-#define K55_BLEND_ENABLES 33 // blend enables for tilemaps
-#define K55_VINMIX_ON 34 // additional blend enables for tilemaps
-#define K55_OSBLEND_ENABLES 35 // obj/sub blend enables
-#define K55_OSBLEND_ON 36 // not sure, related to obj/sub blend
-
-#define K55_SHAD1_PRI 37 // shadow/highlight 1 priority
-#define K55_SHAD2_PRI 38 // shadow/highlight 2 priority
-#define K55_SHAD3_PRI 39 // shadow/highlight 3 priority
-#define K55_SHD_ON 40 // shadow/highlight
-#define K55_SHD_PRI_SEL 41 // shadow/highlight
-
-#define K55_VBRI 42 // VRAM layer brightness enable
-#define K55_OSBRI 43 // obj/sub brightness enable, part 1
-#define K55_OSBRI_ON 44 // obj/sub brightness enable, part 2
-#define K55_INPUT_ENABLES 45 // input enables
-
-/* bit masks for the control register */
-#define K55_CTL_GRADDIR 0x01 // 0=vertical, 1=horizontal
-#define K55_CTL_GRADENABLE 0x02 // 0=BG is base color only, 1=gradient
-#define K55_CTL_FLIPPRI 0x04 // 0=standard Konami priority, 1=reverse
-#define K55_CTL_SDSEL 0x08 // 0=normal shadow timing, 1=(not used by GX)
-
-/* bit masks for the input enables */
-#define K55_INP_VRAM_A 0x01
-#define K55_INP_VRAM_B 0x02
-#define K55_INP_VRAM_C 0x04
-#define K55_INP_VRAM_D 0x08
-#define K55_INP_OBJ 0x10
-#define K55_INP_SUB1 0x20
-#define K55_INP_SUB2 0x40
-#define K55_INP_SUB3 0x80
-
-#define K055555_COLORMASK 0x0000ffff
-#define K055555_MIXSHIFT 16
-#define K055555_BRTSHIFT 18
-#define K055555_SKIPSHADOW 0x40000000
-#define K055555_FULLSHADOW 0x80000000
-
-extern INT32 K055555_enabled;
-void K055555WriteReg(UINT8 regnum, UINT8 regdat);
-void K055555LongWrite(INT32 offset, UINT32 data); // not implimented
-void K055555WordWrite(INT32 offset, UINT16 data);
-void K055555ByteWrite(INT32 offset, UINT8 data);
-INT32 K055555ReadRegister(INT32 regnum);
-INT32 K055555GetPaletteIndex(INT32 idx);
-void K055555Reset();
-void K055555Init();
-void K055555Exit();
-void K055555Scan(INT32 nAction);
-
-
-// konamigx.cpp
-#define GXMIX_BLEND_AUTO 0 // emulate all blend effects
-#define GXMIX_BLEND_NONE 1 // disable all blend effects
-#define GXMIX_BLEND_FAST 2 // simulate translucency
-#define GXMIX_BLEND_FORCE 3 // force mix code on selected layer(s)
-#define GXMIX_NOLINESCROLL 0x1000 // disable linescroll on selected layer(s)
-#define GXMIX_NOSHADOW 0x10000000 // disable all shadows (shadow pens will be skipped)
-#define GXMIX_NOZBUF 0x20000000 // disable z-buffering (shadow pens will be drawn as solid)
-
-// Sub Layer Flags
-#define GXSUB_K053250 0x10 // chip type: 0=K053936 ROZ+, 1=K053250 LVC
-#define GXSUB_4BPP 0x04 // 16 colors
-#define GXSUB_5BPP 0x05 // 32 colors
-#define GXSUB_8BPP 0x08 // 256 colors
-
-void konamigx_mixer_init(int objdma);
-void konamigx_mixer_exit();
-void konamigx_mixer_primode(int mode);
-void konamigx_mixer(int sub1 /*extra tilemap 1*/, int sub1flags, int sub2 /*extra tilemap 2*/, int sub2flags, int mixerflags, int extra_bitmap /*extra tilemap 3*/, int rushingheroes_hack);
diff --git a/jan/src/burn/drv/konami/timeplt_snd.cpp b/jan/src/burn/drv/konami/timeplt_snd.cpp
deleted file mode 100644
index 385a1ed96..000000000
--- a/jan/src/burn/drv/konami/timeplt_snd.cpp
+++ /dev/null
@@ -1,241 +0,0 @@
-// Time pilot, pooyan, rallyx, tutankhm, and rocnrope sound
-// Based on MAME driver by Nicola Salmoria
-
-#include "burnint.h"
-#include "z80_intf.h"
-#include "flt_rc.h"
-#include "driver.h"
-extern "C" {
-#include "ay8910.h"
-}
-
-static UINT8 soundlatch;
-static UINT8 *z80rom;
-static UINT8 *z80ram;
-static INT32 z80_select = 0;
-static INT32 locomotnmode = 0;
-
-static void filter_write(INT32 num, UINT8 d)
-{
- INT32 C = 0;
- if (d & 1) C += 220000; /* 220000pF = 0.220uF */
- if (d & 2) C += 47000; /* 47000pF = 0.047uF */
- filter_rc_set_RC(num, FLT_RC_LOWPASS, 1000, 5100, 0, CAP_P(C));
-}
-
-static void __fastcall timeplt_sound_write(UINT16 address, UINT8 data)
-{
- //bprintf(0, _T("tpsw %X %X\n"), address, data);
- if (!locomotnmode && address >= 0x8000 /*&& address <= 0xffff*/) {
- INT32 Offset = address & 0xfff;
- filter_write(3, (Offset >> 0) & 3);
- filter_write(4, (Offset >> 2) & 3);
- filter_write(5, (Offset >> 4) & 3);
- filter_write(0, (Offset >> 6) & 3);
- filter_write(1, (Offset >> 8) & 3);
- filter_write(2, (Offset >> 10) & 3);
- return;
- }
-
- if (locomotnmode && address >= 0x3000 && address <= 0x3fff) {
- INT32 Offset = address & 0xfff;
- filter_write(3, (Offset >> 0) & 3);
- filter_write(4, (Offset >> 2) & 3);
- filter_write(5, (Offset >> 4) & 3);
- filter_write(0, (Offset >> 6) & 3);
- filter_write(1, (Offset >> 8) & 3);
- filter_write(2, (Offset >> 10) & 3);
- return;
- }
-
- switch (address & 0xf000)
- {
- case 0x4000:
- AY8910Write(0, 1, data);
- return;
-
- case 0x5000:
- AY8910Write(0, 0, data);
- return;
-
- case 0x6000:
- AY8910Write(1, 1, data);
- return;
-
- case 0x7000:
- AY8910Write(1, 0, data);
- return;
- }
-}
-
-static UINT8 __fastcall timeplt_sound_read(UINT16 address)
-{
- switch (address & 0xf000)
- {
- case 0x4000:
- return AY8910Read(0);
-
- case 0x6000:
- return AY8910Read(1);
- }
-
- return 0;
-}
-
-static UINT8 AY8910_0_portA(UINT32)
-{
- ZetSetIRQLine(0, CPU_IRQSTATUS_NONE);
- return soundlatch;
-}
-
-static UINT8 AY8910_0_portB(UINT32)
-{
- static const int timeplt_timer[10] = {
- 0x00, 0x10, 0x20, 0x30, 0x40, 0x90, 0xa0, 0xb0, 0xa0, 0xd0
- };
-
- return timeplt_timer[(ZetTotalCycles() >> 9) % 10];
-}
-
-void TimepltSndSoundlatch(UINT8 data)
-{
- soundlatch = data;
-}
-
-void TimepltSndReset()
-{
- ZetOpen(z80_select);
- ZetReset();
- ZetClose();
-
- AY8910Reset(0);
- AY8910Reset(1);
- soundlatch = 0;
-}
-
-void TimepltSndInit(UINT8 *rom, UINT8 *ram, INT32 z80number)
-{
- z80rom = rom;
- z80ram = ram;
- z80_select = z80number;
-
- ZetInit(z80_select);
- ZetOpen(z80_select);
- ZetMapMemory(z80rom, 0x0000, 0x2fff, MAP_ROM);
- ZetMapMemory(z80ram, 0x3000, 0x33ff, MAP_RAM);
- ZetMapMemory(z80ram, 0x3400, 0x37ff, MAP_RAM);
- ZetMapMemory(z80ram, 0x3800, 0x3bff, MAP_RAM);
- ZetMapMemory(z80ram, 0x3c00, 0x3fff, MAP_RAM);
- ZetSetWriteHandler(timeplt_sound_write);
- ZetSetReadHandler(timeplt_sound_read);
- ZetClose();
-
- AY8910Init(0, 1789772, nBurnSoundRate, &AY8910_0_portA, &AY8910_0_portB, NULL, NULL);
- AY8910Init(1, 1789772, nBurnSoundRate,NULL, NULL, NULL, NULL);
- AY8910SetAllRoutes(0, 0.60, BURN_SND_ROUTE_BOTH);
- AY8910SetAllRoutes(1, 0.60, BURN_SND_ROUTE_BOTH);
-
- filter_rc_init(0, FLT_RC_LOWPASS, 1000, 5100, 0, CAP_P(0), 0);
- filter_rc_init(1, FLT_RC_LOWPASS, 1000, 5100, 0, CAP_P(0), 1);
- filter_rc_init(2, FLT_RC_LOWPASS, 1000, 5100, 0, CAP_P(0), 1);
- filter_rc_init(3, FLT_RC_LOWPASS, 1000, 5100, 0, CAP_P(0), 1);
- filter_rc_init(4, FLT_RC_LOWPASS, 1000, 5100, 0, CAP_P(0), 1);
- filter_rc_init(5, FLT_RC_LOWPASS, 1000, 5100, 0, CAP_P(0), 1);
-
- filter_rc_set_route(0, 1.00, BURN_SND_ROUTE_BOTH);
- filter_rc_set_route(1, 1.00, BURN_SND_ROUTE_BOTH);
- filter_rc_set_route(2, 1.00, BURN_SND_ROUTE_BOTH);
- filter_rc_set_route(3, 1.00, BURN_SND_ROUTE_BOTH);
- filter_rc_set_route(4, 1.00, BURN_SND_ROUTE_BOTH);
- filter_rc_set_route(5, 1.00, BURN_SND_ROUTE_BOTH);
- locomotnmode = 0;
-}
-
-void LocomotnSndInit(UINT8 *rom, UINT8 *ram, INT32 z80number)
-{
- z80rom = rom;
- z80ram = ram;
- z80_select = z80number;
-
- ZetInit(z80_select);
- ZetOpen(z80_select);
- ZetMapMemory(z80rom, 0x0000, 0x1fff, MAP_ROM);
- ZetMapMemory(z80ram, 0x2000, 0x23ff, MAP_RAM);
- ZetMapMemory(z80ram, 0x2400, 0x27ff, MAP_RAM);
- ZetMapMemory(z80ram, 0x2800, 0x2bff, MAP_RAM);
- ZetMapMemory(z80ram, 0x2c00, 0x2fff, MAP_RAM);
- ZetSetWriteHandler(timeplt_sound_write);
- ZetSetReadHandler(timeplt_sound_read);
- ZetClose();
-
- AY8910Init(0, 1789772, nBurnSoundRate, &AY8910_0_portA, &AY8910_0_portB, NULL, NULL);
- AY8910Init(1, 1789772, nBurnSoundRate,NULL, NULL, NULL, NULL);
- AY8910SetAllRoutes(0, 0.60, BURN_SND_ROUTE_BOTH);
- AY8910SetAllRoutes(1, 0.60, BURN_SND_ROUTE_BOTH);
-
- filter_rc_init(0, FLT_RC_LOWPASS, 1000, 5100, 0, CAP_P(0), 0);
- filter_rc_init(1, FLT_RC_LOWPASS, 1000, 5100, 0, CAP_P(0), 1);
- filter_rc_init(2, FLT_RC_LOWPASS, 1000, 5100, 0, CAP_P(0), 1);
- filter_rc_init(3, FLT_RC_LOWPASS, 1000, 5100, 0, CAP_P(0), 1);
- filter_rc_init(4, FLT_RC_LOWPASS, 1000, 5100, 0, CAP_P(0), 1);
- filter_rc_init(5, FLT_RC_LOWPASS, 1000, 5100, 0, CAP_P(0), 1);
-
- filter_rc_set_route(0, 1.00, BURN_SND_ROUTE_BOTH);
- filter_rc_set_route(1, 1.00, BURN_SND_ROUTE_BOTH);
- filter_rc_set_route(2, 1.00, BURN_SND_ROUTE_BOTH);
- filter_rc_set_route(3, 1.00, BURN_SND_ROUTE_BOTH);
- filter_rc_set_route(4, 1.00, BURN_SND_ROUTE_BOTH);
- filter_rc_set_route(5, 1.00, BURN_SND_ROUTE_BOTH);
- locomotnmode = 1;
-}
-
-void TimepltSndVol(double vol0, double vol1)
-{
- filter_rc_set_route(0, vol0, BURN_SND_ROUTE_BOTH);
- filter_rc_set_route(1, vol0, BURN_SND_ROUTE_BOTH);
- filter_rc_set_route(2, vol0, BURN_SND_ROUTE_BOTH);
- filter_rc_set_route(3, vol1, BURN_SND_ROUTE_BOTH);
- filter_rc_set_route(4, vol1, BURN_SND_ROUTE_BOTH);
- filter_rc_set_route(5, vol1, BURN_SND_ROUTE_BOTH);
-}
-
-void TimepltSndExit()
-{
- if (z80_select == 0) ZetExit();
-
- AY8910Exit(0);
- AY8910Exit(1);
- filter_rc_exit();
-
- z80_select = 0;
- z80rom = NULL;
- z80ram = NULL;
- locomotnmode = 0;
-}
-
-void TimepltSndUpdate(INT16 **pAY8910Buffer, INT16 *pSoundBuf, INT32 nSegmentLength)
-{
- if (nSegmentLength <= 0) return;
-
- AY8910Update(0, &pAY8910Buffer[0], nSegmentLength);
- AY8910Update(1, &pAY8910Buffer[3], nSegmentLength);
-
- filter_rc_update(0, pAY8910Buffer[0], pSoundBuf, nSegmentLength);
- filter_rc_update(1, pAY8910Buffer[1], pSoundBuf, nSegmentLength);
- filter_rc_update(2, pAY8910Buffer[2], pSoundBuf, nSegmentLength);
- filter_rc_update(3, pAY8910Buffer[3], pSoundBuf, nSegmentLength);
- filter_rc_update(4, pAY8910Buffer[4], pSoundBuf, nSegmentLength);
- filter_rc_update(5, pAY8910Buffer[5], pSoundBuf, nSegmentLength);
-}
-
-INT32 TimepltSndScan(INT32 nAction, INT32 *pnMin)
-{
- if (nAction & ACB_VOLATILE) {
- if (z80_select == 0) ZetScan(nAction);
- AY8910Scan(nAction, pnMin);
-
- SCAN_VAR(soundlatch);
- }
-
- return 0;
-}
diff --git a/jan/src/burn/drv/konami/timeplt_snd.h b/jan/src/burn/drv/konami/timeplt_snd.h
deleted file mode 100644
index cc796374d..000000000
--- a/jan/src/burn/drv/konami/timeplt_snd.h
+++ /dev/null
@@ -1,8 +0,0 @@
-void TimepltSndSoundlatch(UINT8 data);
-void TimepltSndReset();
-void TimepltSndInit(UINT8 *rom, UINT8 *ram, INT32 z80number);
-void LocomotnSndInit(UINT8 *rom, UINT8 *ram, INT32 z80number);
-void TimepltSndVol(double vol0, double vol1);
-void TimepltSndExit();
-void TimepltSndUpdate(INT16 **pAY8910Buffer, INT16 *pSoundBuf, INT32 nSegmentLength);
-INT32 TimepltSndScan(INT32 nAction, INT32 *pnMin);
diff --git a/jan/src/burn/drv/megadrive/d_megadrive.cpp b/jan/src/burn/drv/megadrive/d_megadrive.cpp
deleted file mode 100644
index f20bb020a..000000000
--- a/jan/src/burn/drv/megadrive/d_megadrive.cpp
+++ /dev/null
@@ -1,41418 +0,0 @@
-#include "burnint.h"
-#include "megadrive.h"
-
-// Driver generated by database on http://www.barryharris.me.uk
-
-static struct BurnInputInfo MegadriveInputList[] = {
- {"P1 Start", BIT_DIGITAL, MegadriveJoy1 + 7, "p1 start" },
- {"P1 Up", BIT_DIGITAL, MegadriveJoy1 + 0, "p1 up" },
- {"P1 Down", BIT_DIGITAL, MegadriveJoy1 + 1, "p1 down" },
- {"P1 Left", BIT_DIGITAL, MegadriveJoy1 + 2, "p1 left" },
- {"P1 Right", BIT_DIGITAL, MegadriveJoy1 + 3, "p1 right" },
- {"P1 Button A", BIT_DIGITAL, MegadriveJoy1 + 6, "p1 fire 1" },
- {"P1 Button B", BIT_DIGITAL, MegadriveJoy1 + 4, "p1 fire 2" },
- {"P1 Button C", BIT_DIGITAL, MegadriveJoy1 + 5, "p1 fire 3" },
- {"P1 Button X", BIT_DIGITAL, MegadriveJoy1 + 10, "p1 fire 4" },
- {"P1 Button Y", BIT_DIGITAL, MegadriveJoy1 + 9, "p1 fire 5" },
- {"P1 Button Z", BIT_DIGITAL, MegadriveJoy1 + 8, "p1 fire 6" },
- {"P1 Mode", BIT_DIGITAL, MegadriveJoy1 + 11, "p1 select" },
-
- {"P2 Start", BIT_DIGITAL, MegadriveJoy2 + 7, "p2 start" },
- {"P2 Up", BIT_DIGITAL, MegadriveJoy2 + 0, "p2 up" },
- {"P2 Down", BIT_DIGITAL, MegadriveJoy2 + 1, "p2 down" },
- {"P2 Left", BIT_DIGITAL, MegadriveJoy2 + 2, "p2 left" },
- {"P2 Right", BIT_DIGITAL, MegadriveJoy2 + 3, "p2 right" },
- {"P2 Button A", BIT_DIGITAL, MegadriveJoy2 + 6, "p2 fire 1" },
- {"P2 Button B", BIT_DIGITAL, MegadriveJoy2 + 4, "p2 fire 2" },
- {"P2 Button C", BIT_DIGITAL, MegadriveJoy2 + 5, "p2 fire 3" },
- {"P2 Button X", BIT_DIGITAL, MegadriveJoy2 + 10, "p2 fire 4" },
- {"P2 Button Y", BIT_DIGITAL, MegadriveJoy2 + 9, "p2 fire 5" },
- {"P2 Button Z", BIT_DIGITAL, MegadriveJoy2 + 8, "p2 fire 6" },
- {"P2 Mode", BIT_DIGITAL, MegadriveJoy2 + 11, "p2 select" },
-
- {"Reset", BIT_DIGITAL, &MegadriveReset, "reset" },
- {"Dip A", BIT_DIPSWITCH, MegadriveDIP + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, MegadriveDIP + 1, "dip" },
-};
-
-STDINPUTINFO(Megadrive)
-
-static struct BurnInputInfo Megadrive4pInputList[] = {
- {"P1 Start", BIT_DIGITAL, MegadriveJoy1 + 7, "p1 start" },
- {"P1 Up", BIT_DIGITAL, MegadriveJoy1 + 0, "p1 up" },
- {"P1 Down", BIT_DIGITAL, MegadriveJoy1 + 1, "p1 down" },
- {"P1 Left", BIT_DIGITAL, MegadriveJoy1 + 2, "p1 left" },
- {"P1 Right", BIT_DIGITAL, MegadriveJoy1 + 3, "p1 right" },
- {"P1 Button A", BIT_DIGITAL, MegadriveJoy1 + 6, "p1 fire 1" },
- {"P1 Button B", BIT_DIGITAL, MegadriveJoy1 + 4, "p1 fire 2" },
- {"P1 Button C", BIT_DIGITAL, MegadriveJoy1 + 5, "p1 fire 3" },
- {"P1 Button X", BIT_DIGITAL, MegadriveJoy1 + 10, "p1 fire 4" },
- {"P1 Button Y", BIT_DIGITAL, MegadriveJoy1 + 9, "p1 fire 5" },
- {"P1 Button Z", BIT_DIGITAL, MegadriveJoy1 + 8, "p1 fire 6" },
- {"P1 Mode", BIT_DIGITAL, MegadriveJoy1 + 11, "p1 select" },
-
- {"P2 Start", BIT_DIGITAL, MegadriveJoy2 + 7, "p2 start" },
- {"P2 Up", BIT_DIGITAL, MegadriveJoy2 + 0, "p2 up" },
- {"P2 Down", BIT_DIGITAL, MegadriveJoy2 + 1, "p2 down" },
- {"P2 Left", BIT_DIGITAL, MegadriveJoy2 + 2, "p2 left" },
- {"P2 Right", BIT_DIGITAL, MegadriveJoy2 + 3, "p2 right" },
- {"P2 Button A", BIT_DIGITAL, MegadriveJoy2 + 6, "p2 fire 1" },
- {"P2 Button B", BIT_DIGITAL, MegadriveJoy2 + 4, "p2 fire 2" },
- {"P2 Button C", BIT_DIGITAL, MegadriveJoy2 + 5, "p2 fire 3" },
- {"P2 Button X", BIT_DIGITAL, MegadriveJoy2 + 10, "p2 fire 4" },
- {"P2 Button Y", BIT_DIGITAL, MegadriveJoy2 + 9, "p2 fire 5" },
- {"P2 Button Z", BIT_DIGITAL, MegadriveJoy2 + 8, "p2 fire 6" },
- {"P2 Mode", BIT_DIGITAL, MegadriveJoy2 + 11, "p2 select" },
-
- {"P3 Start", BIT_DIGITAL, MegadriveJoy3 + 7, "p3 start" },
- {"P3 Up", BIT_DIGITAL, MegadriveJoy3 + 0, "p3 up" },
- {"P3 Down", BIT_DIGITAL, MegadriveJoy3 + 1, "p3 down" },
- {"P3 Left", BIT_DIGITAL, MegadriveJoy3 + 2, "p3 left" },
- {"P3 Right", BIT_DIGITAL, MegadriveJoy3 + 3, "p3 right" },
- {"P3 Button A", BIT_DIGITAL, MegadriveJoy3 + 6, "p3 fire 1" },
- {"P3 Button B", BIT_DIGITAL, MegadriveJoy3 + 4, "p3 fire 2" },
- {"P3 Button C", BIT_DIGITAL, MegadriveJoy3 + 5, "p3 fire 3" },
- {"P3 Button X", BIT_DIGITAL, MegadriveJoy3 + 10, "p3 fire 4" },
- {"P3 Button Y", BIT_DIGITAL, MegadriveJoy3 + 9, "p3 fire 5" },
- {"P3 Button Z", BIT_DIGITAL, MegadriveJoy3 + 8, "p3 fire 6" },
- {"P3 Mode", BIT_DIGITAL, MegadriveJoy3 + 11, "p3 select" },
-
- {"P4 Start", BIT_DIGITAL, MegadriveJoy4 + 7, "p4 start" },
- {"P4 Up", BIT_DIGITAL, MegadriveJoy4 + 0, "p4 up" },
- {"P4 Down", BIT_DIGITAL, MegadriveJoy4 + 1, "p4 down" },
- {"P4 Left", BIT_DIGITAL, MegadriveJoy4 + 2, "p4 left" },
- {"P4 Right", BIT_DIGITAL, MegadriveJoy4 + 3, "p4 right" },
- {"P4 Button A", BIT_DIGITAL, MegadriveJoy4 + 6, "p4 fire 1" },
- {"P4 Button B", BIT_DIGITAL, MegadriveJoy4 + 4, "p4 fire 2" },
- {"P4 Button C", BIT_DIGITAL, MegadriveJoy4 + 5, "p4 fire 3" },
- {"P4 Button X", BIT_DIGITAL, MegadriveJoy4 + 10, "p4 fire 4" },
- {"P4 Button Y", BIT_DIGITAL, MegadriveJoy4 + 9, "p4 fire 5" },
- {"P4 Button Z", BIT_DIGITAL, MegadriveJoy4 + 8, "p4 fire 6" },
- {"P4 Mode", BIT_DIGITAL, MegadriveJoy4 + 11, "p4 select" },
-
- {"Reset", BIT_DIGITAL, &MegadriveReset, "reset" },
- {"Dip A", BIT_DIPSWITCH, MegadriveDIP + 0, "dip" },
- {"Dip B", BIT_DIPSWITCH, MegadriveDIP + 1, "dip" },
-};
-
-STDINPUTINFO(Megadrive4p)
-
-static struct BurnDIPInfo MegadriveDIPList[] = {
- {0x1a, 0xff, 0xff, 0x01, NULL },
-
- {0, 0xfe, 0, 5, "Hardware" },
- {0x19, 0x01, 0xc1, 0x01, "Auto Detect" },
- {0x19, 0x01, 0xc1, 0x00, "Japan NTSC" },
- {0x19, 0x01, 0xc1, 0x40, "Japan PAL" },
- {0x19, 0x01, 0xc1, 0x80, "USA" },
- {0x19, 0x01, 0xc1, 0xc0, "Europe" },
-
- {0, 0xfe, 0, 2, "CD-ROM" },
- {0x19, 0x01, 0x20, 0x20, "No" },
- {0x19, 0x01, 0x20, 0x00, "Yes" },
-
- {0, 0xfe, 0, 3, "32-Col Mode Draw" },
- {0x1a, 0x01, 0x03, 0x00, "No Change" },
- {0x1a, 0x01, 0x03, 0x01, "Center" },
- {0x1a, 0x01, 0x03, 0x02, "Inner Zoom" },
-};
-
-static struct BurnDIPInfo AutoDetectRegionDIPList[] = {
- {0x19, 0xff, 0xff, 0x21, NULL},
-};
-
-static struct BurnDIPInfo PALRegionDIPList[] = {
- {0x19, 0xff, 0xff, 0xe0, NULL},
-};
-
-static struct BurnDIPInfo JNTSCRegionDIPList[] = {
- {0x19, 0xff, 0xff, 0x20, NULL},
-};
-
-static struct BurnDIPInfo Megadrive4pDIPList[] = {
- {0x32, 0xff, 0xff, 0x01, NULL },
-
- {0, 0xfe, 0, 5, "Hardware" },
- {0x31, 0x01, 0xc1, 0x01, "Auto Detect" },
- {0x31, 0x01, 0xc1, 0x00, "Japan NTSC" },
- {0x31, 0x01, 0xc1, 0x40, "Japan PAL" },
- {0x31, 0x01, 0xc1, 0x80, "USA" },
- {0x31, 0x01, 0xc1, 0xc0, "Europe" },
-
- {0, 0xfe, 0, 2, "CD-ROM" },
- {0x31, 0x01, 0x20, 0x20, "No" },
- {0x31, 0x01, 0x20, 0x00, "Yes" },
-
- {0, 0xfe, 0, 3, "32-Col Mode Draw" },
- {0x32, 0x01, 0x03, 0x00, "No Change" },
- {0x32, 0x01, 0x03, 0x01, "Center" },
- {0x32, 0x01, 0x03, 0x02, "Inner Zoom" },
-};
-
-static struct BurnDIPInfo AutoDetectRegion4pDIPList[] = {
- {0x31, 0xff, 0xff, 0x21, NULL},
-};
-
-STDDIPINFOEXT(Megadrive, AutoDetectRegion, Megadrive)
-STDDIPINFOEXT(MegadrivePAL, PALRegion, Megadrive)
-STDDIPINFOEXT(MegadriveJNTSC, JNTSCRegion, Megadrive)
-STDDIPINFOEXT(Megadrive4p, AutoDetectRegion4p, Megadrive4p)
-
-INT32 MegadriveGetZipName(char** pszName, UINT32 i)
-{
- static char szFilename[MAX_PATH];
- char* pszGameName = NULL;
-
- if (pszName == NULL) {
- return 1;
- }
-
- if (i == 0) {
- pszGameName = BurnDrvGetTextA(DRV_NAME);
- } else {
- pszGameName = BurnDrvGetTextA(DRV_PARENT);
- }
-
- if (pszGameName == NULL) {
- *pszName = NULL;
- return 1;
- }
-
- // remove the "md_"
- for (UINT32 j = 0; j < strlen(pszGameName); j++) {
- szFilename[j] = pszGameName[j + 3];
- }
-
- *pszName = szFilename;
-
- return 0;
-}
-
-// F-22 Interceptor (Euro, USA, 199109)
-static struct BurnRomInfo md_f22aRomDesc[] = {
- { "f-22_intercept_f-202-4.u1", 0x080000, 0x649771f8, BRF_PRG | SEGA_MD_ROM_LOAD_NORMAL | SEGA_MD_ROM_OFFS_000000 },
- { "f-22_intercept_f-202-1.u2", 0x020000, 0xd3d7cbb8, BRF_PRG | SEGA_MD_ROM_LOAD16_BYTE | SEGA_MD_ROM_OFFS_080000 },
-};
-
-STD_ROM_PICK(md_f22a)
-STD_ROM_FN(md_f22a)
-
-struct BurnDriver BurnDrvmd_f22a = {
- "md_f22a", "md_f22", NULL, NULL, "1991",
- "F-22 Interceptor (Euro, USA, 199109)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_f22aRomInfo, md_f22aRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// FIFA 97 Gold Edition (Euro, USA)
-static struct BurnRomInfo md_fifa97RomDesc[] = {
- { "fifa_97_b1", 0x200000, 0x2bedb061, BRF_PRG | SEGA_MD_ROM_LOAD_NORMAL | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_fifa97)
-STD_ROM_FN(md_fifa97)
-
-struct BurnDriver BurnDrvmd_fifa97 = {
- "md_fifa97", NULL, NULL, NULL, "1996",
- "FIFA 97 Gold Edition (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_fifa97RomInfo, md_fifa97RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// James Bond 007 - The Duel (Euro, Rev. A)
-static struct BurnRomInfo md_jb007RomDesc[] = {
- { "mpr-15312a", 0x080000, 0x66635364, BRF_PRG | SEGA_MD_ROM_LOAD_NORMAL | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_jb007)
-STD_ROM_FN(md_jb007)
-
-struct BurnDriver BurnDrvmd_jb007 = {
- "md_jb007", NULL, NULL, NULL, "1992",
- "James Bond 007 - The Duel (Euro, Rev. A)\0", NULL, "Domark", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_jb007RomInfo, md_jb007RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// James Pond - Underwater Agent (Euro, USA)
-static struct BurnRomInfo md_jpondRomDesc[] = {
- { "james_pond_u1_jam03", 0x080000, 0xd0e7b466, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_jpond)
-STD_ROM_FN(md_jpond)
-
-struct BurnDriver BurnDrvmd_jpond = {
- "md_jpond", NULL, NULL, NULL, "1993",
- "James Pond - Underwater Agent (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_jpondRomInfo, md_jpondRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// James Pond II - Codename RoboCod (Euro, USA)
-static struct BurnRomInfo md_robocodRomDesc[] = {
- { "pond_ii_robocod_ro_b02", 0x080000, 0xc32b5d66, BRF_PRG | SEGA_MD_ROM_LOAD_NORMAL | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_robocod)
-STD_ROM_FN(md_robocod)
-
-struct BurnDriver BurnDrvmd_robocod = {
- "md_robocod", NULL, NULL, NULL, "1991",
- "James Pond II - Codename RoboCod (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_robocodRomInfo, md_robocodRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Lotus Turbo Challenge (Euro, USA)
-static struct BurnRomInfo md_lotustRomDesc[] = {
- { "lotus_turbo_lot03.u1", 0x100000, 0xb83ccb7a, BRF_PRG | SEGA_MD_ROM_LOAD_NORMAL | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_lotust)
-STD_ROM_FN(md_lotust)
-
-struct BurnDriver BurnDrvmd_lotust = {
- "md_lotust", NULL, NULL, NULL, "1992",
- "Lotus Turbo Challenge (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_lotustRomInfo, md_lotustRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NHL '94 (Euro, USA)
-static struct BurnRomInfo md_nhl94RomDesc[] = {
- { "nhl94_hl9402", 0x100000, 0xacecd225, BRF_PRG | SEGA_MD_ROM_LOAD_NORMAL | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nhl94)
-STD_ROM_FN(md_nhl94)
-
-struct BurnDriver BurnDrvmd_nhl94 = {
- "md_nhl94", NULL, NULL, NULL, "1993",
- "NHL '94 (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_nhl94RomInfo, md_nhl94RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// PGA Tour Golf II (Euro, USA)
-static struct BurnRomInfo md_pga2aRomDesc[] = {
- { "pga_tour_golf_pgt04", 0x100000, 0x8d980bb4, BRF_PRG | SEGA_MD_ROM_LOAD_NORMAL | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_pga2a)
-STD_ROM_FN(md_pga2a)
-
-struct BurnDriver BurnDrvmd_pga2a = {
- "md_pga2a", "md_pga2", NULL, NULL, "1992",
- "PGA Tour Golf II (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_pga2aRomInfo, md_pga2aRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Rise of the Robots (Euro)
-static struct BurnRomInfo md_riseroboRomDesc[] = {
- { "es133-1_rise_of_the_robots.u1", 0x200000, 0xed583ef7, BRF_PRG | SEGA_MD_ROM_LOAD_NORMAL | SEGA_MD_ROM_OFFS_000000 },
- { "es133-2_rise_of_the_robots.u2", 0x100000, 0xfcf18470, BRF_PRG | SEGA_MD_ROM_LOAD_NORMAL | SEGA_MD_ROM_OFFS_200000 },
-};
-
-STD_ROM_PICK(md_riserobo)
-STD_ROM_FN(md_riserobo)
-
-struct BurnDriver BurnDrvmd_riserobo = {
- "md_riserobo", NULL, NULL, NULL, "1994",
- "Rise of the Robots (Euro)\0", NULL, "Acclaim Entertainment", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_riseroboRomInfo, md_riseroboRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Splatterhouse Part 2 (Jpn)
-static struct BurnRomInfo md_splatth2jRomDesc[] = {
- { "sh2j", 0x100000, 0xadbd991b, BRF_PRG | SEGA_MD_ROM_LOAD_NORMAL | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_splatth2j)
-STD_ROM_FN(md_splatth2j)
-
-struct BurnDriver BurnDrvmd_splatth2j = {
- "md_splatth2j", "md_splatth2", NULL, NULL, "1992",
- "Splatterhouse Part 2 (Jpn)\0", NULL, "Namcot", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_splatth2jRomInfo, md_splatth2jRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Zero Tolerance (Euro, USA)
-static struct BurnRomInfo md_zerotolRomDesc[] = {
- { "zetsg_lo_7500-00034a.u2", 0x100000, 0xb9c2d518, BRF_PRG | SEGA_MD_ROM_LOAD16_BYTE | SEGA_MD_ROM_OFFS_000000 },
- { "zetsg_hi_7500-00033a.u1", 0x100000, 0xaf362b8c, BRF_PRG | SEGA_MD_ROM_LOAD16_BYTE | SEGA_MD_ROM_OFFS_000001 },
-};
-
-STD_ROM_PICK(md_zerotol)
-STD_ROM_FN(md_zerotol)
-
-struct BurnDriver BurnDrvmd_zerotol = {
- "md_zerotol", NULL, NULL, NULL, "1994",
- "Zero Tolerance (Euro, USA)\0", NULL, "Accolade", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_zerotolRomInfo, md_zerotolRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Adventures of Batman & Robin (Euro)
-static struct BurnRomInfo md_advbatrRomDesc[] = {
- { "mpr-18019.ic1", 0x200000, 0x355e8c39, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_advbatr)
-STD_ROM_FN(md_advbatr)
-
-struct BurnDriver BurnDrvmd_advbatr = {
- "md_advbatr", NULL, NULL, NULL, "1995",
- "The Adventures of Batman & Robin (Euro)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_advbatrRomInfo, md_advbatrRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Adventures of Mighty Max (Euro)
-static struct BurnRomInfo md_mightmaxRomDesc[] = {
- { "mpr-17434.ic1", 0x100000, 0x24f1a3bb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_mightmax)
-STD_ROM_FN(md_mightmax)
-
-struct BurnDriver BurnDrvmd_mightmax = {
- "md_mightmax", NULL, NULL, NULL, "1994",
- "The Adventures of Mighty Max (Euro)\0", NULL, "Ocean", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_mightmaxRomInfo, md_mightmaxRomName, NULL, NULL, MegadriveInputInfo, MegadrivePALDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Alex Kidd in the Enchanted Castle (Euro, Rev. A)
-static struct BurnRomInfo md_alexkiddRomDesc[] = {
- { "mpr-12608a.ic1", 0x040000, 0x778a0f00, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_alexkidd)
-STD_ROM_FN(md_alexkidd)
-
-struct BurnDriver BurnDrvmd_alexkidd = {
- "md_alexkidd", NULL, NULL, NULL, "1990",
- "Alex Kidd in the Enchanted Castle (Euro, Rev. A)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_alexkiddRomInfo, md_alexkiddRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Alisia Dragoon (Euro)
-static struct BurnRomInfo md_alisiadRomDesc[] = {
- { "mpr-14680.ic1", 0x100000, 0x28165bd1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_alisiad)
-STD_ROM_FN(md_alisiad)
-
-struct BurnDriver BurnDrvmd_alisiad = {
- "md_alisiad", NULL, NULL, NULL, "1992",
- "Alisia Dragoon (Euro)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_alisiadRomInfo, md_alisiadRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Andre Agassi Tennis (Euro)
-static struct BurnRomInfo md_agassiRomDesc[] = {
- { "mpr-15488.ic1", 0x080000, 0x224256c7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_agassi)
-STD_ROM_FN(md_agassi)
-
-struct BurnDriver BurnDrvmd_agassi = {
- "md_agassi", NULL, NULL, NULL, "1992",
- "Andre Agassi Tennis (Euro)\0", NULL, "TecMagik", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_agassiRomInfo, md_agassiRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Another World (Euro)
-static struct BurnRomInfo md_anotherwRomDesc[] = {
- { "mpr-15498.ic1", 0x100000, 0xe9742041, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_anotherw)
-STD_ROM_FN(md_anotherw)
-
-struct BurnDriver BurnDrvmd_anotherw = {
- "md_anotherw", NULL, NULL, NULL, "1993",
- "Another World (Euro)\0", NULL, "Virgin Games", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_anotherwRomInfo, md_anotherwRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Arcade Classics (Euro, USA)
-static struct BurnRomInfo md_arcadeclRomDesc[] = {
- { "mpr-18815.ic1", 0x080000, 0x8aed2090, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_arcadecl)
-STD_ROM_FN(md_arcadecl)
-
-struct BurnDriver BurnDrvmd_arcadecl = {
- "md_arcadecl", NULL, NULL, NULL, "1996",
- "Arcade Classics (Euro, USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_arcadeclRomInfo, md_arcadeclRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Art Alive (World)
-static struct BurnRomInfo md_artaliveRomDesc[] = {
- { "mpr-14384.ic1", 0x020000, 0xf1b72cdd, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_artalive)
-STD_ROM_FN(md_artalive)
-
-struct BurnDriver BurnDrvmd_artalive = {
- "md_artalive", NULL, NULL, NULL, "1991",
- "Art Alive (World)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_artaliveRomInfo, md_artaliveRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Streets of Rage (Euro, USA, Rev. A) ~ Bare Knuckle - Ikari no Tetsuken (Jpn, Rev. A)
-static struct BurnRomInfo md_sorRomDesc[] = {
- { "mpr-14125a.ic1", 0x080000, 0x4052e845, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sor)
-STD_ROM_FN(md_sor)
-
-struct BurnDriver BurnDrvmd_sor = {
- "md_sor", NULL, NULL, NULL, "1991",
- "Streets of Rage (Euro, USA, Rev. A) ~ Bare Knuckle - Ikari no Tetsuken (Jpn, Rev. A)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_sorRomInfo, md_sorRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Streets of Rage (Euro, USA) ~ Bare Knuckle - Ikari no Tetsuken (Jpn)
-static struct BurnRomInfo md_soraRomDesc[] = {
- { "mpr-14125.ic1", 0x080000, 0xbff227c6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sora)
-STD_ROM_FN(md_sora)
-
-struct BurnDriver BurnDrvmd_sora = {
- "md_sora", "md_sor", NULL, NULL, "1991",
- "Streets of Rage (Euro, USA) ~ Bare Knuckle - Ikari no Tetsuken (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_soraRomInfo, md_soraRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Batman (Euro)
-static struct BurnRomInfo md_batmanRomDesc[] = {
- { "mpr-14561.ic1", 0x080000, 0x61c60c35, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_batman)
-STD_ROM_FN(md_batman)
-
-struct BurnDriver BurnDrvmd_batman = {
- "md_batman", NULL, NULL, NULL, "1990",
- "Batman (Euro)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_batmanRomInfo, md_batmanRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Ferrari Grand Prix Challenge (Euro, Rev. A)
-static struct BurnRomInfo md_ferrariRomDesc[] = {
- { "mpr-14770a.ic1", 0x100000, 0x250111df, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ferrari)
-STD_ROM_FN(md_ferrari)
-
-struct BurnDriver BurnDrvmd_ferrari = {
- "md_ferrari", NULL, NULL, NULL, "1992",
- "Ferrari Grand Prix Challenge (Euro, Rev. A)\0", NULL, "Flying Edge", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_ferrariRomInfo, md_ferrariRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Game Toshokan (Jpn, Rev. A)
-static struct BurnRomInfo md_gametoRomDesc[] = {
- { "mpr-12750a.ic1", 0x020000, 0xc185c819, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_gameto)
-STD_ROM_FN(md_gameto)
-
-struct BurnDriver BurnDrvmd_gameto = {
- "md_gameto", NULL, NULL, NULL, "1990",
- "Game Toshokan (Jpn, Rev. A)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_EEPROM, GBF_MISC, 0,
- MegadriveGetZipName, md_gametoRomInfo, md_gametoRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Ghouls'n Ghosts (Euro, USA, Kor, Rev. A)
-static struct BurnRomInfo md_ghoulsRomDesc[] = {
- { "mpr-12605a t04.ic1", 0x020000, 0xd367c3cc, BRF_PRG | SEGA_MD_ROM_LOAD_NORMAL | SEGA_MD_ROM_OFFS_000000 },
- { "mpr-12606a w57.ic2", 0x080000, 0x5291d097, BRF_PRG | SEGA_MD_ROM_LOAD_NORMAL_CONTINUE_020000_080000 | SEGA_MD_ROM_OFFS_080000 },
-};
-
-STD_ROM_PICK(md_ghouls)
-STD_ROM_FN(md_ghouls)
-
-struct BurnDriver BurnDrvmd_ghouls = {
- "md_ghouls", NULL, NULL, NULL, "1989",
- "Ghouls'n Ghosts (Euro, USA, Kor, Rev. A)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_ghoulsRomInfo, md_ghoulsRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Ghouls'n Ghosts (Euro, USA)
-static struct BurnRomInfo md_ghouls1RomDesc[] = {
- { "mpr-12605 t02.ic1", 0x020000, 0x1066c6ab, BRF_PRG | SEGA_MD_ROM_LOAD_NORMAL | SEGA_MD_ROM_OFFS_000000 },
- { "mpr-12606 r32.ic2", 0x080000, 0xd0be7777, BRF_PRG | SEGA_MD_ROM_LOAD_NORMAL_CONTINUE_020000_080000 | SEGA_MD_ROM_OFFS_080000 },
-};
-
-STD_ROM_PICK(md_ghouls1)
-STD_ROM_FN(md_ghouls1)
-
-struct BurnDriver BurnDrvmd_ghouls1 = {
- "md_ghouls1", "md_ghouls", NULL, NULL, "1989",
- "Ghouls'n Ghosts (Euro, USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_ghouls1RomInfo, md_ghouls1RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Greatest Heavyweights (Euro)
-static struct BurnRomInfo md_ghwRomDesc[] = {
- { "mpr-16211.ic1", 0x200000, 0x9778c181, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ghw)
-STD_ROM_FN(md_ghw)
-
-struct BurnDriver BurnDrvmd_ghw = {
- "md_ghw", NULL, NULL, NULL, "1994",
- "Greatest Heavyweights (Euro)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_EEPROM, GBF_MISC, 0,
- MegadriveGetZipName, md_ghwRomInfo, md_ghwRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Capt'n Havoc (Euro)
-static struct BurnRomInfo md_havocRomDesc[] = {
- { "mdch 9642.bin", 0x100000, 0x76e6d20d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_havoc)
-STD_ROM_FN(md_havoc)
-
-struct BurnDriver BurnDrvmd_havoc = {
- "md_havoc", NULL, NULL, NULL, "1994",
- "Capt'n Havoc (Euro)\0", NULL, "Codemasters", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_havocRomInfo, md_havocRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Home Alone (Euro, USA)
-static struct BurnRomInfo md_homeaRomDesc[] = {
- { "mpr-14996.ic1", 0x080000, 0xaa0d4387, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_homea)
-STD_ROM_FN(md_homea)
-
-struct BurnDriver BurnDrvmd_homea = {
- "md_homea", NULL, NULL, NULL, "1992",
- "Home Alone (Euro, USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_homeaRomInfo, md_homeaRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Joe Montana II Sports Talk Football (World)
-static struct BurnRomInfo md_joemont2aRomDesc[] = {
- { "mpr-14356.ic1", 0x100000, 0xf2363a4a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_joemont2a)
-STD_ROM_FN(md_joemont2a)
-
-struct BurnDriver BurnDrvmd_joemont2a = {
- "md_joemont2a", "md_joemont2", NULL, NULL, "1991",
- "Joe Montana II Sports Talk Football (World)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_joemont2aRomInfo, md_joemont2aRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Talmit's Adventure (Euro)
-static struct BurnRomInfo md_talmitRomDesc[] = {
- { "lrog453-eta.bin", 0x100000, 0x05dc3ffc, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_talmit)
-STD_ROM_FN(md_talmit)
-
-struct BurnDriver BurnDrvmd_talmit = {
- "md_talmit", NULL, NULL, NULL, "1991",
- "Talmit's Adventure (Euro)\0", NULL, "Namco", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_talmitRomInfo, md_talmitRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Marvel Land (Jpn)
-static struct BurnRomInfo md_marvlandjRomDesc[] = {
- { "lrog452-mml.bin", 0x100000, 0x5d162d21, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_marvlandj)
-STD_ROM_FN(md_marvlandj)
-
-struct BurnDriver BurnDrvmd_marvlandj = {
- "md_marvlandj", "md_talmit", NULL, NULL, "1991",
- "Marvel Land (Jpn)\0", NULL, "Namcot", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_marvlandjRomInfo, md_marvlandjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Mega Bomberman (Euro, Kor)
-static struct BurnRomInfo md_megabombRomDesc[] = {
- { "mpr-17108.ic1", 0x100000, 0x54ab3beb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_megabomb)
-STD_ROM_FN(md_megabomb)
-
-struct BurnDriver BurnDrvmd_megabomb = {
- "md_megabomb", NULL, NULL, NULL, "1994",
- "Mega Bomberman (Euro, Kor)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_megabombRomInfo, md_megabombRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Mega Games 6 Vol. 3 (Euro)
-static struct BurnRomInfo md_megaga63RomDesc[] = {
- { "mpr-18871.ic1", 0x300000, 0xfe3e7e4f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_megaga63)
-STD_ROM_FN(md_megaga63)
-
-struct BurnDriver BurnDrvmd_megaga63 = {
- "md_megaga63", NULL, NULL, NULL, "1995",
- "Mega Games 6 Vol. 3 (Euro)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_megaga63RomInfo, md_megaga63RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Micro Machines 2 - Turbo Tournament (Euro, J-Cart)
-static struct BurnRomInfo md_micromc2RomDesc[] = {
- { "mdm_2bead.bin", 0x100000, 0x42bfb7eb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_micromc2)
-STD_ROM_FN(md_micromc2)
-
-struct BurnDriver BurnDrvmd_micromc2 = {
- "md_micromc2", NULL, NULL, NULL, "1994",
- "Micro Machines 2 - Turbo Tournament (Euro, J-Cart)\0", NULL, "Codemasters", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 4, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_CM_JCART_SEPROM, GBF_MISC, 0,
- MegadriveGetZipName, md_micromc2RomInfo, md_micromc2RomName, NULL, NULL, Megadrive4pInputInfo, Megadrive4pDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Micro Machines Turbo Tournament 96 (Euro, v1.1, J-Cart)
-static struct BurnRomInfo md_microm96RomDesc[] = {
- { "mm96mdeddb.bin", 0x100000, 0x23319d0d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_microm96)
-STD_ROM_FN(md_microm96)
-
-struct BurnDriver BurnDrvmd_microm96 = {
- "md_microm96", NULL, NULL, NULL, "1995",
- "Micro Machines Turbo Tournament 96 (Euro, v1.1, J-Cart)\0", NULL, "Codemasters", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 4, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_CM_JCART_SEPROM, GBF_MISC, 0,
- MegadriveGetZipName, md_microm96RomInfo, md_microm96RomName, NULL, NULL, Megadrive4pInputInfo, Megadrive4pDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Pete Sampras Tennis (Euro, USA, J-Cart)
-static struct BurnRomInfo md_samprasRomDesc[] = {
- { "mdst6636.bin", 0x100000, 0x94e505b2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sampras)
-STD_ROM_FN(md_sampras)
-
-struct BurnDriver BurnDrvmd_sampras = {
- "md_sampras", NULL, NULL, NULL, "1994",
- "Pete Sampras Tennis (Euro, USA, J-Cart)\0", NULL, "Codemasters", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_16BIT_ONLY, 4, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_CM_JCART, GBF_MISC, 0,
- MegadriveGetZipName, md_samprasRomInfo, md_samprasRomName, NULL, NULL, Megadrive4pInputInfo, Megadrive4pDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Phantasy Star II (Euro, USA, Rev. A)
-static struct BurnRomInfo md_pstar2RomDesc[] = {
- { "mpr-12851a.ic1", 0x080000, 0x74714110, BRF_PRG | SEGA_MD_ROM_LOAD_NORMAL | SEGA_MD_ROM_OFFS_000000 },
- { "mpr-12852a.ic2", 0x080000, 0xe304231a, BRF_PRG | SEGA_MD_ROM_LOAD_NORMAL | SEGA_MD_ROM_OFFS_080000 },
-};
-
-STD_ROM_PICK(md_pstar2)
-STD_ROM_FN(md_pstar2)
-
-struct BurnDriver BurnDrvmd_pstar2 = {
- "md_pstar2", NULL, NULL, NULL, "1989",
- "Phantasy Star II (Euro, USA, Rev. A)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_pstar2RomInfo, md_pstar2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Shining Force II (Euro)
-static struct BurnRomInfo md_shinfrc2RomDesc[] = {
- { "mpr-16933.ic1", 0x200000, 0x83cb46d1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_shinfrc2)
-STD_ROM_FN(md_shinfrc2)
-
-struct BurnDriver BurnDrvmd_shinfrc2 = {
- "md_shinfrc2", NULL, NULL, NULL, "1994",
- "Shining Force II (Euro)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_shinfrc2RomInfo, md_shinfrc2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Smurfs (Euro, Rev. A)
-static struct BurnRomInfo md_smurfsRomDesc[] = {
- { "mpr-17019a.ic1", 0x100000, 0x88b30eff, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_smurfs)
-STD_ROM_FN(md_smurfs)
-
-struct BurnDriver BurnDrvmd_smurfs = {
- "md_smurfs", NULL, NULL, NULL, "1995",
- "The Smurfs (Euro, Rev. A)\0", NULL, "Infogrames", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_smurfsRomInfo, md_smurfsRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Soleil (Spa)
-static struct BurnRomInfo md_soleilsRomDesc[] = {
- { "mpr-17512.ic1", 0x200000, 0x9ed4c323, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_soleils)
-STD_ROM_FN(md_soleils)
-
-struct BurnDriver BurnDrvmd_soleils = {
- "md_soleils", "md_soleil", NULL, NULL, "1994",
- "Soleil (Spa)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_soleilsRomInfo, md_soleilsRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Soleil (Fra)
-static struct BurnRomInfo md_soleilfRomDesc[] = {
- { "mpr-17513.ic1", 0x200000, 0x08dc1ead, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_soleilf)
-STD_ROM_FN(md_soleilf)
-
-struct BurnDriver BurnDrvmd_soleilf = {
- "md_soleilf", "md_soleil", NULL, NULL, "1994",
- "Soleil (Fra)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_soleilfRomInfo, md_soleilfRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Soleil (Ger)
-static struct BurnRomInfo md_soleilgRomDesc[] = {
- { "mpr-17514.ic1", 0x200000, 0x332b9ecd, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_soleilg)
-STD_ROM_FN(md_soleilg)
-
-struct BurnDriver BurnDrvmd_soleilg = {
- "md_soleilg", "md_soleil", NULL, NULL, "1994",
- "Soleil (Ger)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_soleilgRomInfo, md_soleilgRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Sonic the Hedgehog 3 (Euro)
-static struct BurnRomInfo md_sonic3RomDesc[] = {
- { "mpr-16342.ic1", 0x200000, 0x6a632503, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sonic3)
-STD_ROM_FN(md_sonic3)
-
-struct BurnDriver BurnDrvmd_sonic3 = {
- "md_sonic3", NULL, NULL, NULL, "1994",
- "Sonic the Hedgehog 3 (Euro)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_FRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_sonic3RomInfo, md_sonic3RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Sonic the Hedgehog 3 (Jpn, Kor)
-static struct BurnRomInfo md_sonic3jRomDesc[] = {
- { "mpr-16343.ic1", 0x200000, 0xf4951d1f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sonic3j)
-STD_ROM_FN(md_sonic3j)
-
-struct BurnDriver BurnDrvmd_sonic3j = {
- "md_sonic3j", "md_sonic3", NULL, NULL, "1994",
- "Sonic the Hedgehog 3 (Jpn, Kor)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_FRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_sonic3jRomInfo, md_sonic3jRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Sonic Compilation (Euro, Earlier)
-static struct BurnRomInfo md_soniccmp1RomDesc[] = {
- { "mpr-18203.ic1", 0x200000, 0xfe61c79e, BRF_PRG | SEGA_MD_ROM_LOAD_NORMAL | SEGA_MD_ROM_OFFS_000000 },
- { "mpr-18204.ic2", 0x100000, 0x21d42146, BRF_PRG | SEGA_MD_ROM_LOAD_NORMAL | SEGA_MD_ROM_OFFS_200000 },
-};
-
-STD_ROM_PICK(md_soniccmp1)
-STD_ROM_FN(md_soniccmp1)
-
-struct BurnDriver BurnDrvmd_soniccmp1 = {
- "md_soniccmp1", "md_soniccmp", NULL, NULL, "1995",
- "Sonic Compilation (Euro, Earlier)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_soniccmp1RomInfo, md_soniccmp1RomName, NULL, NULL, MegadriveInputInfo, MegadrivePALDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Sonic Spinball (Euro)
-static struct BurnRomInfo md_sspinRomDesc[] = {
- { "mpr-16077.ic1", 0x100000, 0xaea0786d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sspin)
-STD_ROM_FN(md_sspin)
-
-struct BurnDriver BurnDrvmd_sspin = {
- "md_sspin", NULL, NULL, NULL, "1993",
- "Sonic Spinball (Euro)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_sspinRomInfo, md_sspinRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Space Harrier II (World)
-static struct BurnRomInfo md_sharrierRomDesc[] = {
- { "mpr-12355.ic1", 0x080000, 0xe5c9cbb0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sharrier)
-STD_ROM_FN(md_sharrier)
-
-struct BurnDriver BurnDrvmd_sharrier = {
- "md_sharrier", NULL, NULL, NULL, "1989",
- "Space Harrier II (World)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_sharrierRomInfo, md_sharrierRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Story of Thor - A Successor of The Light (Fra)
-static struct BurnRomInfo md_thorfRomDesc[] = {
- { "mpr-17720.ic1", 0x200000, 0x5385f970, BRF_PRG | SEGA_MD_ROM_LOAD_NORMAL | SEGA_MD_ROM_OFFS_000000 },
- { "mpr-17721.ic2", 0x100000, 0x158fa2aa, BRF_PRG | SEGA_MD_ROM_LOAD_NORMAL | SEGA_MD_ROM_OFFS_200000 },
-};
-
-STD_ROM_PICK(md_thorf)
-STD_ROM_FN(md_thorf)
-
-struct BurnDriver BurnDrvmd_thorf = {
- "md_thorf", "md_thor", NULL, NULL, "1995",
- "The Story of Thor - A Successor of The Light (Fra)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_thorfRomInfo, md_thorfRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Super Monaco GP (Euro, Jpn, Rev. A)
-static struct BurnRomInfo md_smgpRomDesc[] = {
- { "mpr-13250a.ic1", 0x080000, 0xbe91b28a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_smgp)
-STD_ROM_FN(md_smgp)
-
-struct BurnDriver BurnDrvmd_smgp = {
- "md_smgp", NULL, NULL, NULL, "1990",
- "Super Monaco GP (Euro, Jpn, Rev. A)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_smgpRomInfo, md_smgpRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Super Smash TV (Euro, USA)
-static struct BurnRomInfo md_ssmashtvRomDesc[] = {
- { "mpr-15040.ic1", 0x080000, 0xf22412b6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ssmashtv)
-STD_ROM_FN(md_ssmashtv)
-
-struct BurnDriver BurnDrvmd_ssmashtv = {
- "md_ssmashtv", NULL, NULL, NULL, "1992",
- "Super Smash TV (Euro, USA)\0", NULL, "Flying Edge", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_ssmashtvRomInfo, md_ssmashtvRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Addams Family (Euro, USA)
-static struct BurnRomInfo md_addfamRomDesc[] = {
- { "mpr-16147.ic1", 0x100000, 0x71f58614, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_addfam)
-STD_ROM_FN(md_addfam)
-
-struct BurnDriver BurnDrvmd_addfam = {
- "md_addfam", NULL, NULL, NULL, "1994",
- "The Addams Family (Euro, USA)\0", NULL, "Flying Edge", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_addfamRomInfo, md_addfamRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Light Crusader (Euro)
-static struct BurnRomInfo md_lightcRomDesc[] = {
- { "mpr-18090.ic1", 0x200000, 0x52c7252b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_lightc)
-STD_ROM_FN(md_lightc)
-
-struct BurnDriver BurnDrvmd_lightc = {
- "md_lightc", NULL, NULL, NULL, "1995",
- "Light Crusader (Euro)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_lightcRomInfo, md_lightcRomName, NULL, NULL, MegadriveInputInfo, MegadrivePALDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// ESPN Speedworld (USA, Prototype)
-static struct BurnRomInfo md_espnspedpRomDesc[] = {
- { "u4.bin", 0x080000, 0x525788b1, BRF_PRG | SEGA_MD_ROM_LOAD16_BYTE | SEGA_MD_ROM_OFFS_000000 },
- { "u5.bin", 0x080000, 0xada9c9a8, BRF_PRG | SEGA_MD_ROM_LOAD16_BYTE | SEGA_MD_ROM_OFFS_000001 },
- { "u1.bin", 0x080000, 0xe8ee1029, BRF_PRG | SEGA_MD_ROM_LOAD16_BYTE | SEGA_MD_ROM_OFFS_100000 },
- { "u2.bin", 0x080000, 0x0f3ec491, BRF_PRG | SEGA_MD_ROM_LOAD16_BYTE | SEGA_MD_ROM_OFFS_100001 },
-};
-
-STD_ROM_PICK(md_espnspedp)
-STD_ROM_FN(md_espnspedp)
-
-struct BurnDriver BurnDrvmd_espnspedp = {
- "md_espnspedp", "md_espnsped", NULL, NULL, "1994",
- "ESPN Speedworld (USA, Prototype)\0", NULL, "Sony Imagesoft", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_espnspedpRomInfo, md_espnspedpRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// ESPN Sunday Night NFL (USA, Prototype)
-static struct BurnRomInfo md_espnnflpRomDesc[] = {
- { "u4.bin", 0x080000, 0x9f427221, BRF_PRG | SEGA_MD_ROM_LOAD16_BYTE | SEGA_MD_ROM_OFFS_000000 },
- { "u5.bin", 0x080000, 0x3445f0e8, BRF_PRG | SEGA_MD_ROM_LOAD16_BYTE | SEGA_MD_ROM_OFFS_000001 },
- { "u1.bin", 0x080000, 0x5d05efc5, BRF_PRG | SEGA_MD_ROM_LOAD16_BYTE | SEGA_MD_ROM_OFFS_100000 },
- { "u2.bin", 0x080000, 0x7ae6fd4b, BRF_PRG | SEGA_MD_ROM_LOAD16_BYTE | SEGA_MD_ROM_OFFS_100001 },
-};
-
-STD_ROM_PICK(md_espnnflp)
-STD_ROM_FN(md_espnnflp)
-
-struct BurnDriver BurnDrvmd_espnnflp = {
- "md_espnnflp", "md_espnnfl", NULL, NULL, "1994",
- "ESPN Sunday Night NFL (USA, Prototype)\0", NULL, "Sony Imagesoft", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_espnnflpRomInfo, md_espnnflpRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Incredible Crash Dummies (Euro, USA)
-static struct BurnRomInfo md_crashdumRomDesc[] = {
- { "mpr-16259.ic1", 0x100000, 0x1f6e574a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_crashdum)
-STD_ROM_FN(md_crashdum)
-
-struct BurnDriver BurnDrvmd_crashdum = {
- "md_crashdum", NULL, NULL, NULL, "1993",
- "The Incredible Crash Dummies (Euro, USA)\0", NULL, "Flying Edge", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_crashdumRomInfo, md_crashdumRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// ESWAT - City Under Siege (Euro, USA, Rev. A)
-static struct BurnRomInfo md_eswatRomDesc[] = {
- { "mpr-13192a.ic1", 0x080000, 0xe72f8a36, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_eswat)
-STD_ROM_FN(md_eswat)
-
-struct BurnDriver BurnDrvmd_eswat = {
- "md_eswat", NULL, NULL, NULL, "1990",
- "ESWAT - City Under Siege (Euro, USA, Rev. A)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_eswatRomInfo, md_eswatRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Evander Holyfield's 'Real Deal' Boxing (World)
-static struct BurnRomInfo md_evanderRomDesc[] = {
- { "mpr-14860.ic1", 0x080000, 0x4fef37c8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_evander)
-STD_ROM_FN(md_evander)
-
-struct BurnDriver BurnDrvmd_evander = {
- "md_evander", NULL, NULL, NULL, "1992",
- "Evander Holyfield's 'Real Deal' Boxing (World)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_EEPROM, GBF_MISC, 0,
- MegadriveGetZipName, md_evanderRomInfo, md_evanderRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Ex-Mutants (Euro, USA)
-static struct BurnRomInfo md_exmutantRomDesc[] = {
- { "mpr-15225.ic1", 0x100000, 0x33b1979f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_exmutant)
-STD_ROM_FN(md_exmutant)
-
-struct BurnDriver BurnDrvmd_exmutant = {
- "md_exmutant", NULL, NULL, NULL, "1992",
- "Ex-Mutants (Euro, USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_exmutantRomInfo, md_exmutantRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Galaxy Force II (World, Rev. B)
-static struct BurnRomInfo md_gforce2RomDesc[] = {
- { "mpr-14248b.ic1", 0x100000, 0xd15f5c3c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_gforce2)
-STD_ROM_FN(md_gforce2)
-
-struct BurnDriver BurnDrvmd_gforce2 = {
- "md_gforce2", NULL, NULL, NULL, "1991",
- "Galaxy Force II (World, Rev. B)\0", NULL, "CRI ~ Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_gforce2RomInfo, md_gforce2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Mutant League Football (Euro, USA)
-static struct BurnRomInfo md_mlfootbRomDesc[] = {
- { "mlf03.u1", 0x100000, 0xdce29c9d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_mlfootb)
-STD_ROM_FN(md_mlfootb)
-
-struct BurnDriver BurnDrvmd_mlfootb = {
- "md_mlfootb", NULL, NULL, NULL, "1993",
- "Mutant League Football (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_mlfootbRomInfo, md_mlfootbRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Pink Goes to Hollywood (Euro, USA)
-static struct BurnRomInfo md_pinkRomDesc[] = {
- { "mpr-16065.ic1", 0x100000, 0xb5804771, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_pink)
-STD_ROM_FN(md_pink)
-
-struct BurnDriver BurnDrvmd_pink = {
- "md_pink", NULL, NULL, NULL, "1993",
- "Pink Goes to Hollywood (Euro, USA)\0", NULL, "TecMagik", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_pinkRomInfo, md_pinkRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Spider-Man and X-Men - Arcade's Revenge (Euro, USA)
-static struct BurnRomInfo md_spidxmenRomDesc[] = {
- { "mpr-15709.ic1", 0x100000, 0x4a4414ea, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_spidxmen)
-STD_ROM_FN(md_spidxmen)
-
-struct BurnDriver BurnDrvmd_spidxmen = {
- "md_spidxmen", NULL, NULL, NULL, "1994",
- "Spider-Man and X-Men - Arcade's Revenge (Euro, USA)\0", NULL, "Flying Edge", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_spidxmenRomInfo, md_spidxmenRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Zoom! (World)
-static struct BurnRomInfo md_zoomRomDesc[] = {
- { "mpr-12807.ic1", 0x040000, 0x724d6965, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_zoom)
-STD_ROM_FN(md_zoom)
-
-struct BurnDriver BurnDrvmd_zoom = {
- "md_zoom", NULL, NULL, NULL, "1990",
- "Zoom! (World)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_zoomRomInfo, md_zoomRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Zany Golf (Euro, USA, v1.1)
-static struct BurnRomInfo md_zanygolfRomDesc[] = {
- { "zany golf (euro, usa) (v1.1).bin", 0x080000, 0x74ed7607, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_zanygolf)
-STD_ROM_FN(md_zanygolf)
-
-struct BurnDriver BurnDrvmd_zanygolf = {
- "md_zanygolf", NULL, NULL, NULL, "1990",
- "Zany Golf (Euro, USA, v1.1)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_zanygolfRomInfo, md_zanygolfRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Bugs Bunny in Double Trouble (Euro)
-static struct BurnRomInfo md_bugsbunRomDesc[] = {
- { "mpr-18887.ic1", 0x200000, 0xcec0a0bb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_bugsbun)
-STD_ROM_FN(md_bugsbun)
-
-struct BurnDriver BurnDrvmd_bugsbun = {
- "md_bugsbun", NULL, NULL, NULL, "1996",
- "Bugs Bunny in Double Trouble (Euro)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_bugsbunRomInfo, md_bugsbunRomName, NULL, NULL, MegadriveInputInfo, MegadrivePALDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Kid Chameleon (Euro, Korea, USA)
-static struct BurnRomInfo md_kidchamRomDesc[] = {
- { "mpr-14557.ic1", 0x100000, 0xce36e6cc, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_kidcham)
-STD_ROM_FN(md_kidcham)
-
-struct BurnDriver BurnDrvmd_kidcham = {
- "md_kidcham", NULL, NULL, NULL, "1992",
- "Kid Chameleon (Euro, Korea, USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_kidchamRomInfo, md_kidchamRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// FIFA Soccer 95 (Kor)
-static struct BurnRomInfo md_fifa95kRomDesc[] = {
- { "lh5370hd.bin", 0x200000, 0x012591f9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_fifa95k)
-STD_ROM_FN(md_fifa95k)
-
-struct BurnDriver BurnDrvmd_fifa95k = {
- "md_fifa95k", "md_fifa95", NULL, NULL, "1994",
- "FIFA Soccer 95 (Kor)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_fifa95kRomInfo, md_fifa95kRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Shinobi III - Return of the Ninja Master (Euro)
-static struct BurnRomInfo md_shinobi3RomDesc[] = {
- { "mpr-15798.ic1", 0x100000, 0x0b6d3eb5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_shinobi3)
-STD_ROM_FN(md_shinobi3)
-
-struct BurnDriver BurnDrvmd_shinobi3 = {
- "md_shinobi3", NULL, NULL, NULL, "1993",
- "Shinobi III - Return of the Ninja Master (Euro)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_shinobi3RomInfo, md_shinobi3RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Thunder Force II (Euro, USA)
-static struct BurnRomInfo md_tf2RomDesc[] = {
- { "mpr-12559.ic1", 0x080000, 0x9b1561b3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_tf2)
-STD_ROM_FN(md_tf2)
-
-struct BurnDriver BurnDrvmd_tf2 = {
- "md_tf2", NULL, NULL, NULL, "1989",
- "Thunder Force II (Euro, USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_tf2RomInfo, md_tf2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// QuackShot Starring Donald Duck ~ QuackShot - Guruzia Ou no Hihou (World)
-static struct BurnRomInfo md_quackshtRomDesc[] = {
- { "mpr-14371.ic1", 0x080000, 0x5dd28dd7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP_CONTINUE_040000_100000 | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_quacksht)
-STD_ROM_FN(md_quacksht)
-
-struct BurnDriver BurnDrvmd_quacksht = {
- "md_quacksht", NULL, NULL, NULL, "1991",
- "QuackShot Starring Donald Duck ~ QuackShot - Guruzia Ou no Hihou (World)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_quackshtRomInfo, md_quackshtRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Herzog Zwei (Euro, USA)
-static struct BurnRomInfo md_herzogRomDesc[] = {
- { "mpr-12929.ic1", 0x080000, 0xa605b65b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_herzog)
-STD_ROM_FN(md_herzog)
-
-struct BurnDriver BurnDrvmd_herzog = {
- "md_herzog", NULL, NULL, NULL, "1990",
- "Herzog Zwei (Euro, USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_herzogRomInfo, md_herzogRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Landstalker - Le Trsor du Roi Nole (Fra)
-static struct BurnRomInfo md_landstlkfRomDesc[] = {
- { "mpr-15976.ic1", 0x200000, 0x5de7d917, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_landstlkf)
-STD_ROM_FN(md_landstlkf)
-
-struct BurnDriver BurnDrvmd_landstlkf = {
- "md_landstlkf", "md_landstlk", NULL, NULL, "1993",
- "Landstalker - Le Tresor du Roi Nole (Fra)\0", NULL, "Sega", "Sega Megadrive",
- L"Landstalker - Le Tr\u00e9sor du Roi Nole (Fra)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM | HARDWARE_SEGA_MEGADRIVE_SRAM_10000, GBF_MISC, 0,
- MegadriveGetZipName, md_landstlkfRomInfo, md_landstlkfRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Sonic the Hedgehog (Euro, USA)
-static struct BurnRomInfo md_sonicRomDesc[] = {
- { "mpr-13913.ic1", 0x080000, 0xf9394e97, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sonic)
-STD_ROM_FN(md_sonic)
-
-struct BurnDriver BurnDrvmd_sonic = {
- "md_sonic", NULL, NULL, NULL, "1991",
- "Sonic the Hedgehog (Euro, USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_sonicRomInfo, md_sonicRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Aero the Acro-Bat 2 (Euro)
-static struct BurnRomInfo md_aero2RomDesc[] = {
- { "mpr-17303.ic1", 0x200000, 0xa451f9a1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_aero2)
-STD_ROM_FN(md_aero2)
-
-struct BurnDriver BurnDrvmd_aero2 = {
- "md_aero2", NULL, NULL, NULL, "1994",
- "Aero the Acro-Bat 2 (Euro)\0", NULL, "Sunsoft", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_aero2RomInfo, md_aero2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Batman Returns (World)
-static struct BurnRomInfo md_batmanrnRomDesc[] = {
- { "mpr-14998.ic1", 0x100000, 0x4a3225c0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_batmanrn)
-STD_ROM_FN(md_batmanrn)
-
-struct BurnDriver BurnDrvmd_batmanrn = {
- "md_batmanrn", NULL, NULL, NULL, "1992",
- "Batman Returns (World)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_batmanrnRomInfo, md_batmanrnRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Super Thunder Blade (World)
-static struct BurnRomInfo md_stbladRomDesc[] = {
- { "mpr-12354.bin", 0x080000, 0xb13087ee, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_stblad)
-STD_ROM_FN(md_stblad)
-
-struct BurnDriver BurnDrvmd_stblad = {
- "md_stblad", NULL, NULL, NULL, "1989",
- "Super Thunder Blade (World)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_stbladRomInfo, md_stbladRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// FIFA Soccer 95 (Euro, USA)
-static struct BurnRomInfo md_fifa95RomDesc[] = {
- { "fifa95b1.bin", 0x200000, 0xb389d036, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_fifa95)
-STD_ROM_FN(md_fifa95)
-
-struct BurnDriver BurnDrvmd_fifa95 = {
- "md_fifa95", NULL, NULL, NULL, "1994",
- "FIFA Soccer 95 (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_fifa95RomInfo, md_fifa95RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Skitchin (Euro, USA)
-static struct BurnRomInfo md_skitchinRomDesc[] = {
- { "skitchin skit09.bin", 0x200000, 0xf785f9d7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_skitchin)
-STD_ROM_FN(md_skitchin)
-
-struct BurnDriver BurnDrvmd_skitchin = {
- "md_skitchin", NULL, NULL, NULL, "1993",
- "Skitchin (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_skitchinRomInfo, md_skitchinRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Paperboy 2 (Euro, USA)
-static struct BurnRomInfo md_paperbo2RomDesc[] = {
- { "mpr-15320.ic1", 0x100000, 0x1de28bb1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_paperbo2)
-STD_ROM_FN(md_paperbo2)
-
-struct BurnDriver BurnDrvmd_paperbo2 = {
- "md_paperbo2", NULL, NULL, NULL, "1992",
- "Paperboy 2 (Euro, USA)\0", NULL, "Tengen", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_paperbo2RomInfo, md_paperbo2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Jewel Master (Euro, USA, Rev. A)
-static struct BurnRomInfo md_jewelmsRomDesc[] = {
- { "mpr-14118a.ic1", 0x080000, 0xcee98813, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_jewelms)
-STD_ROM_FN(md_jewelms)
-
-struct BurnDriver BurnDrvmd_jewelms = {
- "md_jewelms", NULL, NULL, NULL, "1991",
- "Jewel Master (Euro, USA, Rev. A)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_jewelmsRomInfo, md_jewelmsRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Side Pocket (USA)
-static struct BurnRomInfo md_sidepockuRomDesc[] = {
- { "mpr-15008.ic1", 0x100000, 0xaf9f275d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sidepocku)
-STD_ROM_FN(md_sidepocku)
-
-struct BurnDriver BurnDrvmd_sidepocku = {
- "md_sidepocku", "md_sidepock", NULL, NULL, "1992",
- "Side Pocket (USA)\0", NULL, "Data East", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_sidepockuRomInfo, md_sidepockuRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Psycho Pinball (Euro, 199410)
-static struct BurnRomInfo md_psychoRomDesc[] = {
- { "mdppf821.bin", 0x200000, 0x32dd8351, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_psycho)
-STD_ROM_FN(md_psycho)
-
-struct BurnDriver BurnDrvmd_psycho = {
- "md_psycho", NULL, NULL, NULL, "1994",
- "Psycho Pinball (Euro, 199410)\0", NULL, "Codemasters", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_psychoRomInfo, md_psychoRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Psycho Pinball (Euro, 199409)
-static struct BurnRomInfo md_psycho1RomDesc[] = {
- { "mdpp021f.bin", 0x200000, 0x1ab8f1a1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_psycho1)
-STD_ROM_FN(md_psycho1)
-
-struct BurnDriver BurnDrvmd_psycho1 = {
- "md_psycho1", "md_psycho", NULL, NULL, "1994",
- "Psycho Pinball (Euro, 199409)\0", NULL, "Codemasters", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_psycho1RomInfo, md_psycho1RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Micro Machines (Euro, USA)
-static struct BurnRomInfo md_micromacRomDesc[] = {
- { "mdmmacd3.bin", 0x080000, 0x50081a0b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_micromac)
-STD_ROM_FN(md_micromac)
-
-struct BurnDriver BurnDrvmd_micromac = {
- "md_micromac", NULL, NULL, NULL, "1993",
- "Micro Machines (Euro, USA)\0", NULL, "Codemasters", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_micromacRomInfo, md_micromacRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// 2 in 1 - Psycho Pinball & Micro Machines (Euro)
-static struct BurnRomInfo md_2psymmacRomDesc[] = {
- { "mdppf821.bin", 0x200000, 0x32dd8351, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
- { "mdmm_acd3.bin", 0x080000, 0x50081a0b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_200000 },
-};
-
-STD_ROM_PICK(md_2psymmac)
-STD_ROM_FN(md_2psymmac)
-
-struct BurnDriver BurnDrvmd_2psymmac = {
- "md_2psymmac", NULL, NULL, NULL, "1993",
- "2 in 1 - Psycho Pinball & Micro Machines (Euro)\0", NULL, "Codemasters", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_2psymmacRomInfo, md_2psymmacRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// 13 Ma Jiang - 98 Mei Shao Nu Pian (Chi)
-static struct BurnRomInfo md_13mahjanRomDesc[] = {
- { "13 mahjong 98 (unl).bin", 0x0a0000, 0x68b372f6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_13mahjan)
-STD_ROM_FN(md_13mahjan)
-
-struct BurnDriver BurnDrvmd_13mahjan = {
- "md_13mahjan", NULL, NULL, NULL, "1998",
- "13 Ma Jiang - 98 Mei Shao Nu Pian (Chi)\0", NULL, "BBD", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_13mahjanRomInfo, md_13mahjanRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// 16 Ton (Jpn, SegaNet)
-static struct BurnRomInfo md_16tonRomDesc[] = {
- { "16 ton (jpn) (sn).bin", 0x040000, 0x537f04b6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_16ton)
-STD_ROM_FN(md_16ton)
-
-struct BurnDriver BurnDrvmd_16ton = {
- "md_16ton", NULL, NULL, NULL, "1991",
- "16 Ton (Jpn, SegaNet)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_16tonRomInfo, md_16tonRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// 16 Ton (Jpn, Game no Kandume MegaCD Rip)
-static struct BurnRomInfo md_16tongnkRomDesc[] = {
- { "16 ton (jpn) (gnk).bin", 0x040000, 0x98149eaf, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_16tongnk)
-STD_ROM_FN(md_16tongnk)
-
-struct BurnDriver BurnDrvmd_16tongnk = {
- "md_16tongnk", "md_16ton", NULL, NULL, "1991",
- "16 Ton (Jpn, Game no Kandume MegaCD Rip)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_16tongnkRomInfo, md_16tongnkRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// 16 Zhang Ma Jiang (Chi)
-static struct BurnRomInfo md_16zhanRomDesc[] = {
- { "16 zhang ma jiang (chi) (unl).bin", 0x100000, 0x36407c82, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_16zhan)
-STD_ROM_FN(md_16zhan)
-
-struct BurnDriver BurnDrvmd_16zhan = {
- "md_16zhan", NULL, NULL, NULL, "199?",
- "16 Zhang Ma Jiang (Chi)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_16zhanRomInfo, md_16zhanRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// 3 Ninjas Kick Back (USA)
-static struct BurnRomInfo md_3ninjaRomDesc[] = {
- { "3 ninjas kick back (usa).bin", 0x200000, 0xe5a24999, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_3ninja)
-STD_ROM_FN(md_3ninja)
-
-struct BurnDriver BurnDrvmd_3ninja = {
- "md_3ninja", NULL, NULL, NULL, "1994",
- "3 Ninjas Kick Back (USA)\0", NULL, "Psygnosis", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_3ninjaRomInfo, md_3ninjaRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// 3 in 1 Flashback - World Championship Soccer - Tecmo World Cup 92 (Pirate)
-static struct BurnRomInfo md_3in1fwtRomDesc[] = {
- { "3-in-1 flashback - world champ. soccer - tecmo world cup 92 (pirate).bin", 0x200000, 0xa8fd28d7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_3in1fwt)
-STD_ROM_FN(md_3in1fwt)
-
-struct BurnDriver BurnDrvmd_3in1fwt = {
- "md_3in1fwt", NULL, NULL, NULL, "199?",
- "3 in 1 Flashback - World Championship Soccer - Tecmo World Cup 92 (Pirate)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_3in1fwtRomInfo, md_3in1fwtRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// 3 in 1 Road Rash - Ms. Pac-Man - Block Out (Pirate)
-static struct BurnRomInfo md_3in1rmbRomDesc[] = {
- { "3-in-1 road rash - ms. pac-man - block out (pirate).bin", 0x100000, 0x13c96154, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_3in1rmb)
-STD_ROM_FN(md_3in1rmb)
-
-struct BurnDriver BurnDrvmd_3in1rmb = {
- "md_3in1rmb", NULL, NULL, NULL, "199?",
- "3 in 1 Road Rash - Ms. Pac-Man - Block Out (Pirate)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_3in1rmbRomInfo, md_3in1rmbRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// 6-Pak (USA)
-static struct BurnRomInfo md_6pakRomDesc[] = {
- { "6-pak (usa).bin", 0x300000, 0x1a6f45dc, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_6pak)
-STD_ROM_FN(md_6pak)
-
-struct BurnDriver BurnDrvmd_6pak = {
- "md_6pak", NULL, NULL, NULL, "1996",
- "6-Pak (USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_6pakRomInfo, md_6pakRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// 688 Attack Sub (Euro, USA)
-static struct BurnRomInfo md_688atsubRomDesc[] = {
- { "mpr-13956.bin", 0x100000, 0xf2c58bf7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_688atsub)
-STD_ROM_FN(md_688atsub)
-
-struct BurnDriver BurnDrvmd_688atsub = {
- "md_688atsub", NULL, NULL, NULL, "1991",
- "688 Attack Sub (Euro, USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_688atsubRomInfo, md_688atsubRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// A Ressha de Ikou MD - Take the "A" Train (Jpn)
-static struct BurnRomInfo md_aresshmdRomDesc[] = {
- { "a ressha de ikou md (jpn).bin", 0x080000, 0x3d45de4f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_aresshmd)
-STD_ROM_FN(md_aresshmd)
-
-struct BurnDriver BurnDrvmd_aresshmd = {
- "md_aresshmd", NULL, NULL, NULL, "1992",
- "A Ressha de Ikou MD - Take the 'A' Train (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_aresshmdRomInfo, md_aresshmdRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Aa Harimanada (Jpn)
-static struct BurnRomInfo md_aaharimaRomDesc[] = {
- { "aa harimanada (jpn).bin", 0x200000, 0x065f6021, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_aaharima)
-STD_ROM_FN(md_aaharima)
-
-struct BurnDriver BurnDrvmd_aaharima = {
- "md_aaharima", NULL, NULL, NULL, "1993",
- "Aa Harimanada (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_aaharimaRomInfo, md_aaharimaRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// AAAHH!!! Real Monsters (Euro)
-static struct BurnRomInfo md_aaahhrmRomDesc[] = {
- { "aaahh!!! real monsters (euro).bin", 0x200000, 0x7ad115ff, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_aaahhrm)
-STD_ROM_FN(md_aaahhrm)
-
-struct BurnDriver BurnDrvmd_aaahhrm = {
- "md_aaahhrm", NULL, NULL, NULL, "1995",
- "AAAHH!!! Real Monsters (Euro)\0", NULL, "Viacom New Media", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_aaahhrmRomInfo, md_aaahhrmRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// AAAHH!!! Real Monsters (USA)
-static struct BurnRomInfo md_aaahhrmuRomDesc[] = {
- { "aaahh!!! real monsters (usa).bin", 0x200000, 0xfdc80bfc, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_aaahhrmu)
-STD_ROM_FN(md_aaahhrmu)
-
-struct BurnDriver BurnDrvmd_aaahhrmu = {
- "md_aaahhrmu", "md_aaahhrm", NULL, NULL, "1995",
- "AAAHH!!! Real Monsters (USA)\0", NULL, "Viacom New Media", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_aaahhrmuRomInfo, md_aaahhrmuRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Action 52 (USA)
-static struct BurnRomInfo md_action52RomDesc[] = {
- { "action 52 (usa) (unl).bin", 0x200000, 0x29ff58ae, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_action52)
-STD_ROM_FN(md_action52)
-
-struct BurnDriver BurnDrvmd_action52 = {
- "md_action52", NULL, NULL, NULL, "1993",
- "Action 52 (USA)\0", NULL, "Active Enterprises", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_action52RomInfo, md_action52RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Action 52 (USA, Alt)
-static struct BurnRomInfo md_action52aRomDesc[] = {
- { "action 52 (usa) (alt) (unl).bin", 0x200000, 0x8809d666, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_action52a)
-STD_ROM_FN(md_action52a)
-
-struct BurnDriver BurnDrvmd_action52a = {
- "md_action52a", "md_action52", NULL, NULL, "1993",
- "Action 52 (USA, Alt)\0", NULL, "Active Enterprises", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_action52aRomInfo, md_action52aRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Addams Family Values (Euro)
-static struct BurnRomInfo md_addfamvRomDesc[] = {
- { "addams family values (euro).bin", 0x200000, 0xb906b992, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_addfamv)
-STD_ROM_FN(md_addfamv)
-
-struct BurnDriver BurnDrvmd_addfamv = {
- "md_addfamv", NULL, NULL, NULL, "1994",
- "Addams Family Values (Euro)\0", NULL, "Ocean", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_addfamvRomInfo, md_addfamvRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Addams Family (USA, Prototype)
-static struct BurnRomInfo md_addfamp1RomDesc[] = {
- { "addams family, the (usa) (beta).bin", 0x100000, 0x2803a5ca, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_addfamp1)
-STD_ROM_FN(md_addfamp1)
-
-struct BurnDriver BurnDrvmd_addfamp1 = {
- "md_addfamp1", "md_addfam", NULL, NULL, "1994",
- "The Addams Family (USA, Prototype)\0", NULL, "Flying Edge", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_addfamp1RomInfo, md_addfamp1RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Addams Family (USA, Prototype, Alt)
-static struct BurnRomInfo md_addfamp2RomDesc[] = {
- { "addams family, the (usa) (beta) (alt).bin", 0x100000, 0x3a173e1f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_addfamp2)
-STD_ROM_FN(md_addfamp2)
-
-struct BurnDriver BurnDrvmd_addfamp2 = {
- "md_addfamp2", "md_addfam", NULL, NULL, "1994",
- "The Addams Family (USA, Prototype, Alt)\0", NULL, "Flying Edge", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_addfamp2RomInfo, md_addfamp2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Advanced Daisenryaku - Deutsch Dengeki Sakusen (Jpn, Rev. A)
-static struct BurnRomInfo md_advdaisnRomDesc[] = {
- { "mpr-13842a.bin", 0x100000, 0xe0d5e18a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_advdaisn)
-STD_ROM_FN(md_advdaisn)
-
-struct BurnDriver BurnDrvmd_advdaisn = {
- "md_advdaisn", NULL, NULL, NULL, "1991",
- "Advanced Daisenryaku - Deutsch Dengeki Sakusen (Jpn, Rev. A)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_advdaisnRomInfo, md_advdaisnRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Adventures of Batman & Robin (Prototype, 19950406)
-static struct BurnRomInfo md_advbatrp12RomDesc[] = {
- { "adventures of batman & robin, the (prototype - apr 06, 1995).bin", 0x200000, 0xf05cf389, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_advbatrp12)
-STD_ROM_FN(md_advbatrp12)
-
-struct BurnDriver BurnDrvmd_advbatrp12 = {
- "md_advbatrp12", "md_advbatr", NULL, NULL, "1995",
- "The Adventures of Batman & Robin (Prototype, 19950406)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_advbatrp12RomInfo, md_advbatrp12RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Adventures of Batman & Robin (Prototype, 19950410)
-static struct BurnRomInfo md_advbatrp11RomDesc[] = {
- { "adventures of batman & robin, the (prototype - apr 10, 1995).bin", 0x200000, 0xd4f3a070, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_advbatrp11)
-STD_ROM_FN(md_advbatrp11)
-
-struct BurnDriver BurnDrvmd_advbatrp11 = {
- "md_advbatrp11", "md_advbatr", NULL, NULL, "1995",
- "The Adventures of Batman & Robin (Prototype, 19950410)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_advbatrp11RomInfo, md_advbatrp11RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Adventures of Batman & Robin (Prototype, 19950411)
-static struct BurnRomInfo md_advbatrp10RomDesc[] = {
- { "adventures of batman & robin, the (prototype - apr 11, 1995).bin", 0x200000, 0xb5b5a290, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_advbatrp10)
-STD_ROM_FN(md_advbatrp10)
-
-struct BurnDriver BurnDrvmd_advbatrp10 = {
- "md_advbatrp10", "md_advbatr", NULL, NULL, "1995",
- "The Adventures of Batman & Robin (Prototype, 19950411)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_advbatrp10RomInfo, md_advbatrp10RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Adventures of Batman & Robin (Prototype, 19950418)
-static struct BurnRomInfo md_advbatrp09RomDesc[] = {
- { "adventures of batman & robin, the (prototype - apr 18, 1995).bin", 0x200000, 0x6874142b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_advbatrp09)
-STD_ROM_FN(md_advbatrp09)
-
-struct BurnDriver BurnDrvmd_advbatrp09 = {
- "md_advbatrp09", "md_advbatr", NULL, NULL, "1995",
- "The Adventures of Batman & Robin (Prototype, 19950418)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_advbatrp09RomInfo, md_advbatrp09RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Adventures of Batman & Robin (Prototype, 19950419)
-static struct BurnRomInfo md_advbatrp08RomDesc[] = {
- { "adventures of batman & robin, the (prototype - apr 19, 1995).bin", 0x200000, 0x7002da56, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_advbatrp08)
-STD_ROM_FN(md_advbatrp08)
-
-struct BurnDriver BurnDrvmd_advbatrp08 = {
- "md_advbatrp08", "md_advbatr", NULL, NULL, "1995",
- "The Adventures of Batman & Robin (Prototype, 19950419)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_advbatrp08RomInfo, md_advbatrp08RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Adventures of Batman & Robin (Prototype, 19950421)
-static struct BurnRomInfo md_advbatrp07RomDesc[] = {
- { "adventures of batman & robin, the (prototype - apr 21, 1995).bin", 0x200000, 0x61f02f13, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_advbatrp07)
-STD_ROM_FN(md_advbatrp07)
-
-struct BurnDriver BurnDrvmd_advbatrp07 = {
- "md_advbatrp07", "md_advbatr", NULL, NULL, "1995",
- "The Adventures of Batman & Robin (Prototype, 19950421)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_advbatrp07RomInfo, md_advbatrp07RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Adventures of Batman & Robin (Prototype, 19950422)
-static struct BurnRomInfo md_advbatrp06RomDesc[] = {
- { "adventures of batman & robin, the (prototype - apr 22, 1995).bin", 0x200000, 0xeb8236b2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_advbatrp06)
-STD_ROM_FN(md_advbatrp06)
-
-struct BurnDriver BurnDrvmd_advbatrp06 = {
- "md_advbatrp06", "md_advbatr", NULL, NULL, "1995",
- "The Adventures of Batman & Robin (Prototype, 19950422)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_advbatrp06RomInfo, md_advbatrp06RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Adventures of Batman & Robin (Prototype, 19950424)
-static struct BurnRomInfo md_advbatrp05RomDesc[] = {
- { "adventures of batman & robin, the (prototype - apr 24, 1995).bin", 0x200000, 0x253947f8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_advbatrp05)
-STD_ROM_FN(md_advbatrp05)
-
-struct BurnDriver BurnDrvmd_advbatrp05 = {
- "md_advbatrp05", "md_advbatr", NULL, NULL, "1995",
- "The Adventures of Batman & Robin (Prototype, 19950424)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_advbatrp05RomInfo, md_advbatrp05RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Adventures of Batman & Robin (Prototype, 19950426)
-static struct BurnRomInfo md_advbatrp04RomDesc[] = {
- { "adventures of batman & robin, the (prototype - apr 26, 1995).bin", 0x200000, 0xbc79f7ee, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_advbatrp04)
-STD_ROM_FN(md_advbatrp04)
-
-struct BurnDriver BurnDrvmd_advbatrp04 = {
- "md_advbatrp04", "md_advbatr", NULL, NULL, "1995",
- "The Adventures of Batman & Robin (Prototype, 19950426)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_advbatrp04RomInfo, md_advbatrp04RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Adventures of Batman & Robin (Prototype, 19950427)
-static struct BurnRomInfo md_advbatrp03RomDesc[] = {
- { "adventures of batman & robin, the (prototype - apr 27, 1995).bin", 0x200000, 0xfdac8190, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_advbatrp03)
-STD_ROM_FN(md_advbatrp03)
-
-struct BurnDriver BurnDrvmd_advbatrp03 = {
- "md_advbatrp03", "md_advbatr", NULL, NULL, "1995",
- "The Adventures of Batman & Robin (Prototype, 19950427)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_advbatrp03RomInfo, md_advbatrp03RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Adventures of Batman & Robin (Prototype, 19950428)
-static struct BurnRomInfo md_advbatrp02RomDesc[] = {
- { "adventures of batman & robin, the (prototype - apr 28, 1995).bin", 0x200000, 0x27a1524b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_advbatrp02)
-STD_ROM_FN(md_advbatrp02)
-
-struct BurnDriver BurnDrvmd_advbatrp02 = {
- "md_advbatrp02", "md_advbatr", NULL, NULL, "1995",
- "The Adventures of Batman & Robin (Prototype, 19950428)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_advbatrp02RomInfo, md_advbatrp02RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Adventures of Batman & Robin (Prototype, 19950501)
-static struct BurnRomInfo md_advbatrp01RomDesc[] = {
- { "adventures of batman & robin, the (prototype - may 01, 1995).bin", 0x200000, 0x589aa203, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_advbatrp01)
-STD_ROM_FN(md_advbatrp01)
-
-struct BurnDriver BurnDrvmd_advbatrp01 = {
- "md_advbatrp01", "md_advbatr", NULL, NULL, "1995",
- "The Adventures of Batman & Robin (Prototype, 19950501)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_advbatrp01RomInfo, md_advbatrp01RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Adventures of Batman & Robin (USA)
-static struct BurnRomInfo md_advbatruRomDesc[] = {
- { "adventures of batman & robin, the (usa).bin", 0x200000, 0x0caaa4ac, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_advbatru)
-STD_ROM_FN(md_advbatru)
-
-struct BurnDriver BurnDrvmd_advbatru = {
- "md_advbatru", "md_advbatr", NULL, NULL, "1995",
- "The Adventures of Batman & Robin (USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_advbatruRomInfo, md_advbatruRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Adventures of Mighty Max (USA)
-static struct BurnRomInfo md_mightmaxuRomDesc[] = {
- { "adventures of mighty max, the (usa).bin", 0x100000, 0x55f13a00, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_mightmaxu)
-STD_ROM_FN(md_mightmaxu)
-
-struct BurnDriver BurnDrvmd_mightmaxu = {
- "md_mightmaxu", "md_mightmax", NULL, NULL, "1994",
- "The Adventures of Mighty Max (USA)\0", NULL, "Ocean", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_mightmaxuRomInfo, md_mightmaxuRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Adventures of Rocky and Bullwinkle and Friends (USA)
-static struct BurnRomInfo md_rockybwRomDesc[] = {
- { "adventures of rocky and bullwinkle and friends, the (usa).bin", 0x100000, 0xef02d57b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_rockybw)
-STD_ROM_FN(md_rockybw)
-
-struct BurnDriver BurnDrvmd_rockybw = {
- "md_rockybw", NULL, NULL, NULL, "1993",
- "The Adventures of Rocky and Bullwinkle and Friends (USA)\0", NULL, "Absolute Entertainment", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_rockybwRomInfo, md_rockybwRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Adventurous Boy - Mao Xian Xiao Zi (Chi)
-static struct BurnRomInfo md_adveboyRomDesc[] = {
- { "adventurous boy - mao xian xiao zi (chi) (unl).bin", 0x080000, 0xd4403913, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_adveboy)
-STD_ROM_FN(md_adveboy)
-
-struct BurnDriver BurnDrvmd_adveboy = {
- "md_adveboy", NULL, NULL, NULL, "199?",
- "Adventurous Boy - Mao Xian Xiao Zi (Chi)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_adveboyRomInfo, md_adveboyRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Aero the Acro-Bat (Euro)
-static struct BurnRomInfo md_aeroRomDesc[] = {
- { "mpr-16603.bin", 0x100000, 0x1a3eaf57, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_aero)
-STD_ROM_FN(md_aero)
-
-struct BurnDriver BurnDrvmd_aero = {
- "md_aero", NULL, NULL, NULL, "1993",
- "Aero the Acro-Bat (Euro)\0", NULL, "Sunsoft", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_aeroRomInfo, md_aeroRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Aero the Acro-Bat (Prototype)
-static struct BurnRomInfo md_aeropRomDesc[] = {
- { "aero the acro-bat (beta).bin", 0x100000, 0xdcd14b10, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_aerop)
-STD_ROM_FN(md_aerop)
-
-struct BurnDriver BurnDrvmd_aerop = {
- "md_aerop", "md_aero", NULL, NULL, "1993",
- "Aero the Acro-Bat (Prototype)\0", NULL, "Sunsoft", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_aeropRomInfo, md_aeropRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Aero the Acro-Bat (USA)
-static struct BurnRomInfo md_aerouRomDesc[] = {
- { "aero the acro-bat (usa).bin", 0x100000, 0xa3a7a8b5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_aerou)
-STD_ROM_FN(md_aerou)
-
-struct BurnDriver BurnDrvmd_aerou = {
- "md_aerou", "md_aero", NULL, NULL, "1993",
- "Aero the Acro-Bat (USA)\0", NULL, "Sunsoft", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_aerouRomInfo, md_aerouRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Aero the Acro-Bat 2 (USA)
-static struct BurnRomInfo md_aero2uRomDesc[] = {
- { "aero the acro-bat 2 (usa).bin", 0x200000, 0x39eb74eb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_aero2u)
-STD_ROM_FN(md_aero2u)
-
-struct BurnDriver BurnDrvmd_aero2u = {
- "md_aero2u", "md_aero2", NULL, NULL, "1994",
- "Aero the Acro-Bat 2 (USA)\0", NULL, "Sunsoft", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_aero2uRomInfo, md_aero2uRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Aerobiz (USA)
-static struct BurnRomInfo md_aerobizRomDesc[] = {
- { "aerobiz (usa).bin", 0x100000, 0xcfaa9bce, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_aerobiz)
-STD_ROM_FN(md_aerobiz)
-
-struct BurnDriver BurnDrvmd_aerobiz = {
- "md_aerobiz", NULL, NULL, NULL, "1992",
- "Aerobiz (USA)\0", NULL, "Koei", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_aerobizRomInfo, md_aerobizRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Air Management - Oozora ni Kakeru (Jpn)
-static struct BurnRomInfo md_airmanagRomDesc[] = {
- { "air management - oozora ni kakeru (jpn).bin", 0x100000, 0xb3db0c71, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_airmanag)
-STD_ROM_FN(md_airmanag)
-
-struct BurnDriver BurnDrvmd_airmanag = {
- "md_airmanag", "md_aerobiz", NULL, NULL, "1992",
- "Air Management - Oozora ni Kakeru (Jpn)\0", NULL, "Koei", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_airmanagRomInfo, md_airmanagRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Aerobiz Supersonic (USA)
-static struct BurnRomInfo md_aerobizsRomDesc[] = {
- { "aerobiz supersonic (usa).bin", 0x100000, 0x9377f1b5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_aerobizs)
-STD_ROM_FN(md_aerobizs)
-
-struct BurnDriver BurnDrvmd_aerobizs = {
- "md_aerobizs", NULL, NULL, NULL, "1994",
- "Aerobiz Supersonic (USA)\0", NULL, "Koei", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_aerobizsRomInfo, md_aerobizsRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Air Management II - Koukuuou o Mezase (Jpn)
-static struct BurnRomInfo md_airmang2RomDesc[] = {
- { "air management ii - koukuuou o mezase (jpn).bin", 0x100000, 0x4582817b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_airmang2)
-STD_ROM_FN(md_airmang2)
-
-struct BurnDriver BurnDrvmd_airmang2 = {
- "md_airmang2", "md_aerobizs", NULL, NULL, "1994",
- "Air Management II - Koukuuou o Mezase (Jpn)\0", NULL, "Koei", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_airmang2RomInfo, md_airmang2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// After Burner II (Euro, USA)
-static struct BurnRomInfo md_aburner2RomDesc[] = {
- { "mpr-13261.bin", 0x080000, 0xccafe00e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_aburner2)
-STD_ROM_FN(md_aburner2)
-
-struct BurnDriver BurnDrvmd_aburner2 = {
- "md_aburner2", NULL, NULL, NULL, "1990",
- "After Burner II (Euro, USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_aburner2RomInfo, md_aburner2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// After Burner II (Jpn)
-static struct BurnRomInfo md_aburner2jRomDesc[] = {
- { "mpr-12941.bin", 0x080000, 0x4ff37e66, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_aburner2j)
-STD_ROM_FN(md_aburner2j)
-
-struct BurnDriver BurnDrvmd_aburner2j = {
- "md_aburner2j", "md_aburner2", NULL, NULL, "1990",
- "After Burner II (Jpn)\0", NULL, "Denpa Shinbunsha", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_aburner2jRomInfo, md_aburner2jRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Air Buster: Trouble Specialty Raid Unit (USA)
-static struct BurnRomInfo md_airbustrRomDesc[] = {
- { "air buster (usa).bin", 0x080000, 0xf3d65baa, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_airbustr)
-STD_ROM_FN(md_airbustr)
-
-struct BurnDriver BurnDrvmd_airbustr = {
- "md_airbustr", NULL, NULL, NULL, "1991",
- "Air Buster: Trouble Specialty Raid Unit (USA)\0", NULL, "Kaneko", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_airbustrRomInfo, md_airbustrRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Aero Blasters: Trouble Specialty Raid Unit (Jpn)
-static struct BurnRomInfo md_aeroblstRomDesc[] = {
- { "aero blasters (jpn).bin", 0x080000, 0xa00da987, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_aeroblst)
-STD_ROM_FN(md_aeroblst)
-
-struct BurnDriver BurnDrvmd_aeroblst = {
- "md_aeroblst", "md_airbustr", NULL, NULL, "1991",
- "Aero Blasters: Trouble Specialty Raid Unit (Jpn)\0", NULL, "Kaneko", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_aeroblstRomInfo, md_aeroblstRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Air Diver (USA)
-static struct BurnRomInfo md_airdiverRomDesc[] = {
- { "air diver (usa).bin", 0x080000, 0x2041885e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_airdiver)
-STD_ROM_FN(md_airdiver)
-
-struct BurnDriver BurnDrvmd_airdiver = {
- "md_airdiver", NULL, NULL, NULL, "1990",
- "Air Diver (USA)\0", NULL, "Seismic", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_airdiverRomInfo, md_airdiverRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Air Diver (Jpn)
-static struct BurnRomInfo md_airdiverjRomDesc[] = {
- { "air diver (jpn).bin", 0x080000, 0x9e2d5b91, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_airdiverj)
-STD_ROM_FN(md_airdiverj)
-
-struct BurnDriver BurnDrvmd_airdiverj = {
- "md_airdiverj", "md_airdiver", NULL, NULL, "1990",
- "Air Diver (Jpn)\0", NULL, "Asmik Ace", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_airdiverjRomInfo, md_airdiverjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Disney's Aladdin (Euro)
-static struct BurnRomInfo md_aladdinRomDesc[] = {
- { "mpr-15939.bin", 0x200000, 0xd1845e8f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_aladdin)
-STD_ROM_FN(md_aladdin)
-
-struct BurnDriver BurnDrvmd_aladdin = {
- "md_aladdin", NULL, NULL, NULL, "1993",
- "Disney's Aladdin (Euro)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_aladdinRomInfo, md_aladdinRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Disney's Aladdin (Jpn)
-static struct BurnRomInfo md_aladdinjRomDesc[] = {
- { "aladdin (jpn).bin", 0x200000, 0xfb5aacf0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_aladdinj)
-STD_ROM_FN(md_aladdinj)
-
-struct BurnDriver BurnDrvmd_aladdinj = {
- "md_aladdinj", "md_aladdin", NULL, NULL, "1993",
- "Disney's Aladdin (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_aladdinjRomInfo, md_aladdinjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Disney's Aladdin (USA)
-static struct BurnRomInfo md_aladdinuRomDesc[] = {
- { "aladdin (usa).bin", 0x200000, 0xed427ea9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_aladdinu)
-STD_ROM_FN(md_aladdinu)
-
-struct BurnDriver BurnDrvmd_aladdinu = {
- "md_aladdinu", "md_aladdin", NULL, NULL, "1993",
- "Disney's Aladdin (USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_aladdinuRomInfo, md_aladdinuRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Disney's Aladdin (USA, Prototype)
-static struct BurnRomInfo md_aladdinupRomDesc[] = {
- { "aladdin (usa) (beta).bin", 0x200000, 0x8c60ef73, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_aladdinup)
-STD_ROM_FN(md_aladdinup)
-
-struct BurnDriver BurnDrvmd_aladdinup = {
- "md_aladdinup", "md_aladdin", NULL, NULL, "1993",
- "Disney's Aladdin (USA, Prototype)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_aladdinupRomInfo, md_aladdinupRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Aladdin II
-static struct BurnRomInfo md_aladdin2RomDesc[] = {
- { "aladdin ii (unl).bin", 0x200000, 0xbe5f9397, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_aladdin2)
-STD_ROM_FN(md_aladdin2)
-
-struct BurnDriver BurnDrvmd_aladdin2 = {
- "md_aladdin2", NULL, NULL, NULL, "199?",
- "Aladdin II\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_aladdin2RomInfo, md_aladdin2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Alex Kidd in the Enchanted Castle (Euro)
-static struct BurnRomInfo md_alexkidd1RomDesc[] = {
- { "alex kidd in the enchanted castle (euro).bin", 0x040000, 0xc3a52529, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_alexkidd1)
-STD_ROM_FN(md_alexkidd1)
-
-struct BurnDriver BurnDrvmd_alexkidd1 = {
- "md_alexkidd1", "md_alexkidd", NULL, NULL, "1990",
- "Alex Kidd in the Enchanted Castle (Euro)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_alexkidd1RomInfo, md_alexkidd1RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Alex Kidd in the Enchanted Castle (Jpn)
-static struct BurnRomInfo md_alexkiddjRomDesc[] = {
- { "alex kidd - tenkuu majou (jpn).bin", 0x040000, 0x8a5ed856, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_alexkiddj)
-STD_ROM_FN(md_alexkiddj)
-
-struct BurnDriver BurnDrvmd_alexkiddj = {
- "md_alexkiddj", "md_alexkidd", NULL, NULL, "1989",
- "Alex Kidd in the Enchanted Castle (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_alexkiddjRomInfo, md_alexkiddjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Alex Kidd - Cheongong Maseong (Kor)
-static struct BurnRomInfo md_alexkiddkRomDesc[] = {
- { "alex kidd - cheongong maseong (kor).bin", 0x040000, 0x5b0678fb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_alexkiddk)
-STD_ROM_FN(md_alexkiddk)
-
-struct BurnDriver BurnDrvmd_alexkiddk = {
- "md_alexkiddk", "md_alexkidd", NULL, NULL, "1990",
- "Alex Kidd - Cheongong Maseong (Kor)\0", NULL, "Samsung", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_alexkiddkRomInfo, md_alexkiddkRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Alex Kidd in the Enchanted Castle (USA)
-static struct BurnRomInfo md_alexkidduRomDesc[] = {
- { "alex kidd in the enchanted castle (usa).bin", 0x040000, 0x47dba0ac, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_alexkiddu)
-STD_ROM_FN(md_alexkiddu)
-
-struct BurnDriver BurnDrvmd_alexkiddu = {
- "md_alexkiddu", "md_alexkidd", NULL, NULL, "1989",
- "Alex Kidd in the Enchanted Castle (USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_alexkidduRomInfo, md_alexkidduRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Alien (Euro, USA, Rev. A)
-static struct BurnRomInfo md_alien3RomDesc[] = {
- { "mpr-15061a.bin", 0x080000, 0xb327fd1b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_alien3)
-STD_ROM_FN(md_alien3)
-
-struct BurnDriver BurnDrvmd_alien3 = {
- "md_alien3", NULL, NULL, NULL, "1993",
- "Alien3 (Euro, USA, Rev. A)\0", NULL, "Arena Entertainment", "Sega Megadrive",
- L"Alien\u00b3 (Euro, USA, Rev. A)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_alien3RomInfo, md_alien3RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Alien (Euro, USA)
-static struct BurnRomInfo md_alien3aRomDesc[] = {
- { "mpr-15061.bin", 0x080000, 0xa3b00d6e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_alien3a)
-STD_ROM_FN(md_alien3a)
-
-struct BurnDriver BurnDrvmd_alien3a = {
- "md_alien3a", "md_alien3", NULL, NULL, "1993",
- "Alien3 (Euro, USA)\0", NULL, "Arena Entertainment", "Sega Megadrive",
- L"Alien\u00b3 (Euro, USA)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_alien3aRomInfo, md_alien3aRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Alien Soldier (Euro)
-static struct BurnRomInfo md_aliensolRomDesc[] = {
- { "alien soldier (euro).bin", 0x200000, 0x0496e06c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_aliensol)
-STD_ROM_FN(md_aliensol)
-
-struct BurnDriver BurnDrvmd_aliensol = {
- "md_aliensol", NULL, NULL, NULL, "1995",
- "Alien Soldier (Euro)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_aliensolRomInfo, md_aliensolRomName, NULL, NULL, MegadriveInputInfo, MegadrivePALDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Alien Soldier (Jpn)
-static struct BurnRomInfo md_aliensoljRomDesc[] = {
- { "alien soldier (jpn).bin", 0x200000, 0x90fa1539, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_aliensolj)
-STD_ROM_FN(md_aliensolj)
-
-struct BurnDriver BurnDrvmd_aliensolj = {
- "md_aliensolj", "md_aliensol", NULL, NULL, "1995",
- "Alien Soldier (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_aliensoljRomInfo, md_aliensoljRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Alien Storm (World)
-static struct BurnRomInfo md_astormRomDesc[] = {
- { "mpr-13941.bin", 0x080000, 0xf5ac8de5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_astorm)
-STD_ROM_FN(md_astorm)
-
-struct BurnDriver BurnDrvmd_astorm = {
- "md_astorm", NULL, NULL, NULL, "1991",
- "Alien Storm (World)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_astormRomInfo, md_astormRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Alisia Dragoon (Jpn)
-static struct BurnRomInfo md_alisiadjRomDesc[] = {
- { "alisia dragoon (jpn).bin", 0x100000, 0x4d476722, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_alisiadj)
-STD_ROM_FN(md_alisiadj)
-
-struct BurnDriver BurnDrvmd_alisiadj = {
- "md_alisiadj", "md_alisiad", NULL, NULL, "1992",
- "Alisia Dragoon (Jpn)\0", NULL, "Game Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_alisiadjRomInfo, md_alisiadjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Alisia Dragoon (USA)
-static struct BurnRomInfo md_alisiaduRomDesc[] = {
- { "alisia dragoon (usa).bin", 0x100000, 0xd28d5c40, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_alisiadu)
-STD_ROM_FN(md_alisiadu)
-
-struct BurnDriver BurnDrvmd_alisiadu = {
- "md_alisiadu", "md_alisiad", NULL, NULL, "1992",
- "Alisia Dragoon (USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_alisiaduRomInfo, md_alisiaduRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Altered Beast (Euro, USA)
-static struct BurnRomInfo md_altbeastRomDesc[] = {
- { "mpr-12538.bin", 0x080000, 0x154d59bb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_altbeast)
-STD_ROM_FN(md_altbeast)
-
-struct BurnDriver BurnDrvmd_altbeast = {
- "md_altbeast", NULL, NULL, NULL, "1989",
- "Altered Beast (Euro, USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_altbeastRomInfo, md_altbeastRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Juuouki (Jpn, v1.1)
-static struct BurnRomInfo md_juuoukiRomDesc[] = {
- { "juuouki (jpn) (v1.1).bin", 0x080000, 0xb2233e87, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_juuouki)
-STD_ROM_FN(md_juuouki)
-
-struct BurnDriver BurnDrvmd_juuouki = {
- "md_juuouki", "md_altbeast", NULL, NULL, "1988",
- "Juuouki (Jpn, v1.1)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_juuoukiRomInfo, md_juuoukiRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Juuouki (Jpn)
-static struct BurnRomInfo md_juuouki1RomDesc[] = {
- { "juuouki (jpn).bin", 0x080000, 0x1b7c96c0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_juuouki1)
-STD_ROM_FN(md_juuouki1)
-
-struct BurnDriver BurnDrvmd_juuouki1 = {
- "md_juuouki1", "md_altbeast", NULL, NULL, "1988",
- "Juuouki (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_juuouki1RomInfo, md_juuouki1RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// American Gladiators (USA)
-static struct BurnRomInfo md_amergladRomDesc[] = {
- { "american gladiators (usa).bin", 0x100000, 0x9952fa85, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_amerglad)
-STD_ROM_FN(md_amerglad)
-
-struct BurnDriver BurnDrvmd_amerglad = {
- "md_amerglad", NULL, NULL, NULL, "1992",
- "American Gladiators (USA)\0", NULL, "GameTek", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_amergladRomInfo, md_amergladRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Andre Agassi Tennis (USA)
-static struct BurnRomInfo md_agassiuRomDesc[] = {
- { "andre agassi tennis (usa).bin", 0x080000, 0xe755dd51, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_agassiu)
-STD_ROM_FN(md_agassiu)
-
-struct BurnDriver BurnDrvmd_agassiu = {
- "md_agassiu", "md_agassi", NULL, NULL, "1992",
- "Andre Agassi Tennis (USA)\0", NULL, "TecMagik", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_agassiuRomInfo, md_agassiuRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Andre Agassi Tennis (USA, Prototype)
-static struct BurnRomInfo md_agassiupRomDesc[] = {
- { "andre agassi tennis (usa) (beta).bin", 0x080000, 0x3bbf700d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_agassiup)
-STD_ROM_FN(md_agassiup)
-
-struct BurnDriver BurnDrvmd_agassiup = {
- "md_agassiup", "md_agassi", NULL, NULL, "1992",
- "Andre Agassi Tennis (USA, Prototype)\0", NULL, "TecMagik", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_agassiupRomInfo, md_agassiupRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Animaniacs (Euro)
-static struct BurnRomInfo md_animaniaRomDesc[] = {
- { "fx014a1.bin", 0x100000, 0x92b6f255, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_animania)
-STD_ROM_FN(md_animania)
-
-struct BurnDriver BurnDrvmd_animania = {
- "md_animania", NULL, NULL, NULL, "1994",
- "Animaniacs (Euro)\0", NULL, "Konami", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_animaniaRomInfo, md_animaniaRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Animaniacs (USA)
-static struct BurnRomInfo md_animaniauRomDesc[] = {
- { "animaniacs (usa).bin", 0x100000, 0x86224d86, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_animaniau)
-STD_ROM_FN(md_animaniau)
-
-struct BurnDriver BurnDrvmd_animaniau = {
- "md_animaniau", "md_animania", NULL, NULL, "1994",
- "Animaniacs (USA)\0", NULL, "Konami", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_animaniauRomInfo, md_animaniauRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Out of This World (USA)
-static struct BurnRomInfo md_ootwRomDesc[] = {
- { "out of this world (usa).bin", 0x100000, 0x2da36e01, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ootw)
-STD_ROM_FN(md_ootw)
-
-struct BurnDriver BurnDrvmd_ootw = {
- "md_ootw", "md_anotherw", NULL, NULL, "1993",
- "Out of This World (USA)\0", NULL, "Virgin Games", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_ootwRomInfo, md_ootwRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Out of this World (Prototype)
-static struct BurnRomInfo md_ootwpRomDesc[] = {
- { "out of this world (beta).bin", 0x100000, 0x3aad905a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ootwp)
-STD_ROM_FN(md_ootwp)
-
-struct BurnDriver BurnDrvmd_ootwp = {
- "md_ootwp", "md_anotherw", NULL, NULL, "1993",
- "Out of this World (Prototype)\0", NULL, "Virgin Games", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_ootwpRomInfo, md_ootwpRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Aq Renkan Awa (Chi)
-static struct BurnRomInfo md_aqrenkRomDesc[] = {
- { "aq renkan awa (chi) (unl).bin", 0x100000, 0x2c6cbd77, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_aqrenk)
-STD_ROM_FN(md_aqrenk)
-
-struct BurnDriver BurnDrvmd_aqrenk = {
- "md_aqrenk", NULL, NULL, NULL, "1995",
- "Aq Renkan Awa (Chi)\0", NULL, "C&E", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_aqrenkRomInfo, md_aqrenkRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Aquatic Games Starring James Pond and the Aquabats (Euro, USA)
-static struct BurnRomInfo md_aquagameRomDesc[] = {
- { "aqua01.bin", 0x080000, 0x400f4ba7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_aquagame)
-STD_ROM_FN(md_aquagame)
-
-struct BurnDriver BurnDrvmd_aquagame = {
- "md_aquagame", NULL, NULL, NULL, "1992",
- "The Aquatic Games Starring James Pond and the Aquabats (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_aquagameRomInfo, md_aquagameRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Arch Rivals (Euro, USA)
-static struct BurnRomInfo md_archrivlRomDesc[] = {
- { "mpr-14764.bin", 0x080000, 0xe389d7e7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_archrivl)
-STD_ROM_FN(md_archrivl)
-
-struct BurnDriver BurnDrvmd_archrivl = {
- "md_archrivl", NULL, NULL, NULL, "1992",
- "Arch Rivals (Euro, USA)\0", NULL, "Flying Edge", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_archrivlRomInfo, md_archrivlRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Arcus Odyssey (USA)
-static struct BurnRomInfo md_arcusRomDesc[] = {
- { "arcus odyssey (usa).bin", 0x100000, 0xbc4d9b20, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_arcus)
-STD_ROM_FN(md_arcus)
-
-struct BurnDriver BurnDrvmd_arcus = {
- "md_arcus", NULL, NULL, NULL, "1991",
- "Arcus Odyssey (USA)\0", NULL, "Renovation", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_arcusRomInfo, md_arcusRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Arcus Odyssey (Jpn)
-static struct BurnRomInfo md_arcusjRomDesc[] = {
- { "arcus odyssey (jpn).bin", 0x100000, 0x41c5fb4f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_arcusj)
-STD_ROM_FN(md_arcusj)
-
-struct BurnDriver BurnDrvmd_arcusj = {
- "md_arcusj", "md_arcus", NULL, NULL, "1991",
- "Arcus Odyssey (Jpn)\0", NULL, "Wolf Team", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_arcusjRomInfo, md_arcusjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Disney's Ariel the Little Mermaid (Euro, USA)
-static struct BurnRomInfo md_arielRomDesc[] = {
- { "mpr-15153.bin", 0x080000, 0x58e297df, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ariel)
-STD_ROM_FN(md_ariel)
-
-struct BurnDriver BurnDrvmd_ariel = {
- "md_ariel", NULL, NULL, NULL, "1992",
- "Disney's Ariel the Little Mermaid (Euro, USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_arielRomInfo, md_arielRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Arnold Palmer Tournament Golf (Euro, USA)
-static struct BurnRomInfo md_arnoldpRomDesc[] = {
- { "mpr-12645.bin", 0x080000, 0x35b995ef, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_arnoldp)
-STD_ROM_FN(md_arnoldp)
-
-struct BurnDriver BurnDrvmd_arnoldp = {
- "md_arnoldp", NULL, NULL, NULL, "1989",
- "Arnold Palmer Tournament Golf (Euro, USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_arnoldpRomInfo, md_arnoldpRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Naomichi Ozaki no Super Masters (Jpn)
-static struct BurnRomInfo md_smastersRomDesc[] = {
- { "naomichi ozaki no super masters (jpn).bin", 0x080000, 0x088ba825, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_smasters)
-STD_ROM_FN(md_smasters)
-
-struct BurnDriver BurnDrvmd_smasters = {
- "md_smasters", "md_arnoldp", NULL, NULL, "1989",
- "Naomichi Ozaki no Super Masters (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_smastersRomInfo, md_smastersRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Arrow Flash (World)
-static struct BurnRomInfo md_arrowRomDesc[] = {
- { "mpr-13396.bin", 0x080000, 0xd49f8444, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_arrow)
-STD_ROM_FN(md_arrow)
-
-struct BurnDriver BurnDrvmd_arrow = {
- "md_arrow", NULL, NULL, NULL, "1990",
- "Arrow Flash (World)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_arrowRomInfo, md_arrowRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Arrow Flash (USA, Prototype)
-static struct BurnRomInfo md_arrowpRomDesc[] = {
- { "arrowflash.a04c.bin", 0x080000, 0x4d89e66b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_arrowp)
-STD_ROM_FN(md_arrowp)
-
-struct BurnDriver BurnDrvmd_arrowp = {
- "md_arrowp", "md_arrow", NULL, NULL, "1990",
- "Arrow Flash (USA, Prototype)\0", NULL, "Renovation", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_arrowpRomInfo, md_arrowpRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Art of Fighting (Euro)
-static struct BurnRomInfo md_aofRomDesc[] = {
- { "art of fighting (euro).bin", 0x200000, 0x9970c422, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_aof)
-STD_ROM_FN(md_aof)
-
-struct BurnDriver BurnDrvmd_aof = {
- "md_aof", NULL, NULL, NULL, "1994",
- "Art of Fighting (Euro)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_aofRomInfo, md_aofRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Art of Fighting (Prototype, 19940711)
-static struct BurnRomInfo md_aofpRomDesc[] = {
- { "art of fighting (prototype - jul 11, 1994).bin", 0x200000, 0x19ce567d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_aofp)
-STD_ROM_FN(md_aofp)
-
-struct BurnDriver BurnDrvmd_aofp = {
- "md_aofp", "md_aof", NULL, NULL, "1994",
- "Art of Fighting (Prototype, 19940711)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_aofpRomInfo, md_aofpRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Art of Fighting (USA)
-static struct BurnRomInfo md_aofuRomDesc[] = {
- { "art of fighting (usa).bin", 0x200000, 0xc9a57e07, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_aofu)
-STD_ROM_FN(md_aofu)
-
-struct BurnDriver BurnDrvmd_aofu = {
- "md_aofu", "md_aof", NULL, NULL, "1994",
- "Art of Fighting (USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_aofuRomInfo, md_aofuRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Ryuuko no Ken (Jpn)
-static struct BurnRomInfo md_ryukokenRomDesc[] = {
- { "ryuuko no ken (jpn).bin", 0x200000, 0x054cf5f6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ryukoken)
-STD_ROM_FN(md_ryukoken)
-
-struct BurnDriver BurnDrvmd_ryukoken = {
- "md_ryukoken", "md_aof", NULL, NULL, "1994",
- "Ryuuko no Ken (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_ryukokenRomInfo, md_ryukokenRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Astrix and the Great Rescue (Euro)
-static struct BurnRomInfo md_astergreRomDesc[] = {
- { "mpr-15961+mpr-15962.bin", 0x200000, 0x4735fee6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_astergre)
-STD_ROM_FN(md_astergre)
-
-struct BurnDriver BurnDrvmd_astergre = {
- "md_astergre", NULL, NULL, NULL, "1993",
- "Asterix and the Great Rescue (Euro)\0", NULL, "Sega", "Sega Megadrive",
- L"Ast\u00e9rix and the Great Rescue (Euro)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_astergreRomInfo, md_astergreRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Astrix and the Great Rescue (USA)
-static struct BurnRomInfo md_astergreuRomDesc[] = {
- { "asterix and the great rescue (usa).bin", 0x200000, 0x7f112cd8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_astergreu)
-STD_ROM_FN(md_astergreu)
-
-struct BurnDriver BurnDrvmd_astergreu = {
- "md_astergreu", "md_astergre", NULL, NULL, "1994",
- "Asterix and the Great Rescue (USA)\0", NULL, "Sega", "Sega Megadrive",
- L"Ast\u00e9rix and the Great Rescue (USA)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_astergreuRomInfo, md_astergreuRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Astrix and the Power of the Gods (Euro)
-static struct BurnRomInfo md_asterpgRomDesc[] = {
- { "mpr-17719.bin", 0x200000, 0x4ff1d83f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_asterpg)
-STD_ROM_FN(md_asterpg)
-
-struct BurnDriver BurnDrvmd_asterpg = {
- "md_asterpg", NULL, NULL, NULL, "1995",
- "Asterix and the Power of the Gods (Euro)\0", NULL, "Sega", "Sega Megadrive",
- L"Ast\u00e9rix and the Power of the Gods (Euro)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_asterpgRomInfo, md_asterpgRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Astrix and the Power of the Gods (Euro, Prototype)
-static struct BurnRomInfo md_asterpgpRomDesc[] = {
- { "asterix and the power of the gods (euro) (beta).bin", 0x200000, 0x45c8b5b7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_asterpgp)
-STD_ROM_FN(md_asterpgp)
-
-struct BurnDriver BurnDrvmd_asterpgp = {
- "md_asterpgp", "md_asterpg", NULL, NULL, "1995",
- "Asterix and the Power of the Gods (Euro, Prototype)\0", NULL, "Sega", "Sega Megadrive",
- L"Ast\u00e9rix and the Power of the Gods (Euro, Prototype)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_asterpgpRomInfo, md_asterpgpRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Atomic Robo-Kid (USA)
-static struct BurnRomInfo md_atomroboRomDesc[] = {
- { "atomic robo-kid (usa).bin", 0x080000, 0x7cd8169e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_atomrobo)
-STD_ROM_FN(md_atomrobo)
-
-struct BurnDriver BurnDrvmd_atomrobo = {
- "md_atomrobo", NULL, NULL, NULL, "1990",
- "Atomic Robo-Kid (USA)\0", NULL, "Treco", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_atomroboRomInfo, md_atomroboRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Atomic Robo-Kid (Jpn)
-static struct BurnRomInfo md_atomrobojRomDesc[] = {
- { "mpr-13483.bin", 0x080000, 0xe833067e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_atomroboj)
-STD_ROM_FN(md_atomroboj)
-
-struct BurnDriver BurnDrvmd_atomroboj = {
- "md_atomroboj", "md_atomrobo", NULL, NULL, "1990",
- "Atomic Robo-Kid (Jpn)\0", NULL, "Treco", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_atomrobojRomInfo, md_atomrobojRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Atomic Runner (Euro)
-static struct BurnRomInfo md_atomrunRomDesc[] = {
- { "mpr-15286.bin", 0x100000, 0xb3c05418, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_atomrun)
-STD_ROM_FN(md_atomrun)
-
-struct BurnDriver BurnDrvmd_atomrun = {
- "md_atomrun", NULL, NULL, NULL, "1992",
- "Atomic Runner (Euro)\0", NULL, "Data East", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_atomrunRomInfo, md_atomrunRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Atomic Runner (USA)
-static struct BurnRomInfo md_atomrunuRomDesc[] = {
- { "atomic runner (usa).bin", 0x100000, 0x0677c210, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_atomrunu)
-STD_ROM_FN(md_atomrunu)
-
-struct BurnDriver BurnDrvmd_atomrunu = {
- "md_atomrunu", "md_atomrun", NULL, NULL, "1992",
- "Atomic Runner (USA)\0", NULL, "Data East", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_atomrunuRomInfo, md_atomrunuRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Chelnov (Jpn)
-static struct BurnRomInfo md_chelnovRomDesc[] = {
- { "chelnov (jpn).bin", 0x100000, 0xb2fe74d8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_chelnov)
-STD_ROM_FN(md_chelnov)
-
-struct BurnDriver BurnDrvmd_chelnov = {
- "md_chelnov", "md_atomrun", NULL, NULL, "1992",
- "Chelnov (Jpn)\0", NULL, "Data East", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_chelnovRomInfo, md_chelnovRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// ATP Tour Championship Tennis (Euro)
-static struct BurnRomInfo md_atptourRomDesc[] = {
- { "atp tour (euro).bin", 0x200000, 0x1a3da8c5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_atptour)
-STD_ROM_FN(md_atptour)
-
-struct BurnDriver BurnDrvmd_atptour = {
- "md_atptour", NULL, NULL, NULL, "1995",
- "ATP Tour Championship Tennis (Euro)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_atptourRomInfo, md_atptourRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// ATP Tour Championship Tennis (Prototype, 19940802)
-static struct BurnRomInfo md_atptourp4RomDesc[] = {
- { "atp tour championship tennis (prototype - aug 02, 1994).bin", 0x200000, 0x686a9fa1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_atptourp4)
-STD_ROM_FN(md_atptourp4)
-
-struct BurnDriver BurnDrvmd_atptourp4 = {
- "md_atptourp4", "md_atptour", NULL, NULL, "1994",
- "ATP Tour Championship Tennis (Prototype, 19940802)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_atptourp4RomInfo, md_atptourp4RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// ATP Tour Championship Tennis (Prototype, 19940805)
-static struct BurnRomInfo md_atptourp3RomDesc[] = {
- { "atp tour championship tennis (prototype - aug 05, 1994).bin", 0x200000, 0xa1fef967, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_atptourp3)
-STD_ROM_FN(md_atptourp3)
-
-struct BurnDriver BurnDrvmd_atptourp3 = {
- "md_atptourp3", "md_atptour", NULL, NULL, "1994",
- "ATP Tour Championship Tennis (Prototype, 19940805)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_atptourp3RomInfo, md_atptourp3RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// ATP Tour Championship Tennis (Prototype, 19940808)
-static struct BurnRomInfo md_atptourp2RomDesc[] = {
- { "atp tour championship tennis (prototype - aug 08, 1994).bin", 0x200000, 0xe6398864, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_atptourp2)
-STD_ROM_FN(md_atptourp2)
-
-struct BurnDriver BurnDrvmd_atptourp2 = {
- "md_atptourp2", "md_atptour", NULL, NULL, "1994",
- "ATP Tour Championship Tennis (Prototype, 19940808)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_atptourp2RomInfo, md_atptourp2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// ATP Tour Championship Tennis (Prototype, 19940719)
-static struct BurnRomInfo md_atptourp6RomDesc[] = {
- { "atp tour championship tennis (prototype - jul 19, 1994).bin", 0x200000, 0xcb927488, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_atptourp6)
-STD_ROM_FN(md_atptourp6)
-
-struct BurnDriver BurnDrvmd_atptourp6 = {
- "md_atptourp6", "md_atptour", NULL, NULL, "1994",
- "ATP Tour Championship Tennis (Prototype, 19940719)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_atptourp6RomInfo, md_atptourp6RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// ATP Tour Championship Tennis (Prototype, 19940723)
-static struct BurnRomInfo md_atptourp5RomDesc[] = {
- { "atp tour championship tennis (prototype - jul 23, 1994).bin", 0x200000, 0xa15d5051, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_atptourp5)
-STD_ROM_FN(md_atptourp5)
-
-struct BurnDriver BurnDrvmd_atptourp5 = {
- "md_atptourp5", "md_atptour", NULL, NULL, "1994",
- "ATP Tour Championship Tennis (Prototype, 19940723)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_atptourp5RomInfo, md_atptourp5RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// ATP Tour Championship Tennis (Prototype, 19940509)
-static struct BurnRomInfo md_atptourp7RomDesc[] = {
- { "atp tour championship tennis (prototype - may 09, 1994).bin", 0x200000, 0xb17a8dbc, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_atptourp7)
-STD_ROM_FN(md_atptourp7)
-
-struct BurnDriver BurnDrvmd_atptourp7 = {
- "md_atptourp7", "md_atptour", NULL, NULL, "1994",
- "ATP Tour Championship Tennis (Prototype, 19940509)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_atptourp7RomInfo, md_atptourp7RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// ATP Tour Championship Tennis (Prototype, 19940908)
-static struct BurnRomInfo md_atptourp1RomDesc[] = {
- { "atp tour championship tennis (prototype - sep 08, 1994).bin", 0x200000, 0xb83f4ca4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_atptourp1)
-STD_ROM_FN(md_atptourp1)
-
-struct BurnDriver BurnDrvmd_atptourp1 = {
- "md_atptourp1", "md_atptour", NULL, NULL, "1994",
- "ATP Tour Championship Tennis (Prototype, 19940908)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_atptourp1RomInfo, md_atptourp1RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// ATP Tour Championship Tennis (USA)
-static struct BurnRomInfo md_atptouruRomDesc[] = {
- { "atp tour championship tennis (usa).bin", 0x200000, 0x8c822884, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_atptouru)
-STD_ROM_FN(md_atptouru)
-
-struct BurnDriver BurnDrvmd_atptouru = {
- "md_atptouru", "md_atptour", NULL, NULL, "1994",
- "ATP Tour Championship Tennis (USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_atptouruRomInfo, md_atptouruRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Australian Rugby League (Euro)
-static struct BurnRomInfo md_austrarlRomDesc[] = {
- { "australian rugby league (euro).bin", 0x200000, 0xac5bc26a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_austrarl)
-STD_ROM_FN(md_austrarl)
-
-struct BurnDriver BurnDrvmd_austrarl = {
- "md_austrarl", NULL, NULL, NULL, "1994",
- "Australian Rugby League (Euro)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_austrarlRomInfo, md_austrarlRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Awesome Possum (USA)
-static struct BurnRomInfo md_awepossmRomDesc[] = {
- { "awesome possum (usa).bin", 0x200000, 0x1f07577f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_awepossm)
-STD_ROM_FN(md_awepossm)
-
-struct BurnDriver BurnDrvmd_awepossm = {
- "md_awepossm", NULL, NULL, NULL, "1993",
- "Awesome Possum (USA)\0", NULL, "Tengen", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_awepossmRomInfo, md_awepossmRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Awesome Possum (USA, Prototype)
-static struct BurnRomInfo md_awepossmpRomDesc[] = {
- { "awesome possum (usa) (beta).bin", 0x200000, 0x0158dc53, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_awepossmp)
-STD_ROM_FN(md_awepossmp)
-
-struct BurnDriver BurnDrvmd_awepossmp = {
- "md_awepossmp", "md_awepossm", NULL, NULL, "1993",
- "Awesome Possum (USA, Prototype)\0", NULL, "Tengen", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_awepossmpRomInfo, md_awepossmpRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Aworg (Jpn, SegaNet)
-static struct BurnRomInfo md_aworgRomDesc[] = {
- { "aworg (jpn) (sn).bin", 0x040000, 0x069c27c1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_aworg)
-STD_ROM_FN(md_aworg)
-
-struct BurnDriver BurnDrvmd_aworg = {
- "md_aworg", NULL, NULL, NULL, "1991",
- "Aworg (Jpn, SegaNet)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_aworgRomInfo, md_aworgRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// AWS Pro Moves Soccer (USA)
-static struct BurnRomInfo md_awsproRomDesc[] = {
- { "aws pro moves soccer (usa).bin", 0x080000, 0x707017e5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_awspro)
-STD_ROM_FN(md_awspro)
-
-struct BurnDriver BurnDrvmd_awspro = {
- "md_awspro", NULL, NULL, NULL, "1993",
- "AWS Pro Moves Soccer (USA)\0", NULL, "ASCII Entertainment", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_awsproRomInfo, md_awsproRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Ayrton Senna's Super Monaco GP II (Euro, Jpn)
-static struct BurnRomInfo md_smgp2RomDesc[] = {
- { "mpr-14861.bin", 0x100000, 0x60af0f76, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_smgp2)
-STD_ROM_FN(md_smgp2)
-
-struct BurnDriver BurnDrvmd_smgp2 = {
- "md_smgp2", NULL, NULL, NULL, "1992",
- "Ayrton Senna's Super Monaco GP II (Euro, Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_smgp2RomInfo, md_smgp2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Ayrton Senna's Super Monaco GP II (USA)
-static struct BurnRomInfo md_smgp2uRomDesc[] = {
- { "ayrton senna's super monaco gp ii (usa).bin", 0x100000, 0xeac8ded6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_smgp2u)
-STD_ROM_FN(md_smgp2u)
-
-struct BurnDriver BurnDrvmd_smgp2u = {
- "md_smgp2u", "md_smgp2", NULL, NULL, "1992",
- "Ayrton Senna's Super Monaco GP II (USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_smgp2uRomInfo, md_smgp2uRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// B.O.B. (Euro, USA)
-static struct BurnRomInfo md_bobRomDesc[] = {
- { "b.o.b. (euro, usa).bin", 0x100000, 0xeaa2acb7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_bob)
-STD_ROM_FN(md_bob)
-
-struct BurnDriver BurnDrvmd_bob = {
- "md_bob", NULL, NULL, NULL, "1993",
- "B.O.B. (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_bobRomInfo, md_bobRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// B.O.B. (USA, Prototype)
-static struct BurnRomInfo md_bobpRomDesc[] = {
- { "b.o.b. (usa) (beta).bin", 0x100000, 0xe3e8421e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_bobp)
-STD_ROM_FN(md_bobp)
-
-struct BurnDriver BurnDrvmd_bobp = {
- "md_bobp", "md_bob", NULL, NULL, "1993",
- "B.O.B. (USA, Prototype)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_bobpRomInfo, md_bobpRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Space Funky B.O.B. (Jpn)
-static struct BurnRomInfo md_spacebobRomDesc[] = {
- { "space funky b.o.b. (jpn).bin", 0x100000, 0xe9310d3b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_spacebob)
-STD_ROM_FN(md_spacebob)
-
-struct BurnDriver BurnDrvmd_spacebob = {
- "md_spacebob", "md_bob", NULL, NULL, "1993",
- "Space Funky B.O.B. (Jpn)\0", NULL, "Electronic Arts Victor", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_spacebobRomInfo, md_spacebobRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Baby Boom (Prototype, 19940811)
-static struct BurnRomInfo md_babyboomRomDesc[] = {
- { "baby boom (prototype - aug 11, 1994).bin", 0x200000, 0xbd697054, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_babyboom)
-STD_ROM_FN(md_babyboom)
-
-struct BurnDriver BurnDrvmd_babyboom = {
- "md_babyboom", NULL, NULL, NULL, "199?",
- "Baby Boom (Prototype, 19940811)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_babyboomRomInfo, md_babyboomRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Baby Boom (Prototype, 19940603)
-static struct BurnRomInfo md_babyboom1RomDesc[] = {
- { "baby boom (prototype - jun 03, 1994).bin", 0x200000, 0xc0d97f6f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_babyboom1)
-STD_ROM_FN(md_babyboom1)
-
-struct BurnDriver BurnDrvmd_babyboom1 = {
- "md_babyboom1", "md_babyboom", NULL, NULL, "199?",
- "Baby Boom (Prototype, 19940603)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_babyboom1RomInfo, md_babyboom1RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Baby Boom (Prototype, 19940606)
-static struct BurnRomInfo md_babyboom2RomDesc[] = {
- { "baby boom (prototype - jun 06, 1994).bin", 0x200000, 0x6e0cf48d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_babyboom2)
-STD_ROM_FN(md_babyboom2)
-
-struct BurnDriver BurnDrvmd_babyboom2 = {
- "md_babyboom2", "md_babyboom", NULL, NULL, "199?",
- "Baby Boom (Prototype, 19940606)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_babyboom2RomInfo, md_babyboom2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Baby's Day Out (USA, Prototype)
-static struct BurnRomInfo md_babydRomDesc[] = {
- { "baby's day out (usa) (prototype).bin", 0x100000, 0xb2e7cc49, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_babyd)
-STD_ROM_FN(md_babyd)
-
-struct BurnDriver BurnDrvmd_babyd = {
- "md_babyd", NULL, NULL, NULL, "199?",
- "Baby's Day Out (USA, Prototype)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_babydRomInfo, md_babydRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Baby's Day Out (USA, Prototype, Earlier)
-static struct BurnRomInfo md_babydoRomDesc[] = {
- { "baby's day out (usa) (prototype) (earlier).bin", 0x100000, 0x459b891c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_babydo)
-STD_ROM_FN(md_babydo)
-
-struct BurnDriver BurnDrvmd_babydo = {
- "md_babydo", "md_babyd", NULL, NULL, "199?",
- "Baby's Day Out (USA, Prototype, Earlier)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_babydoRomInfo, md_babydoRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Back to the Future Part III (Euro)
-static struct BurnRomInfo md_backtof3RomDesc[] = {
- { "mpr-14328.bin", 0x080000, 0x2737f92e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_backtof3)
-STD_ROM_FN(md_backtof3)
-
-struct BurnDriver BurnDrvmd_backtof3 = {
- "md_backtof3", NULL, NULL, NULL, "1991",
- "Back to the Future Part III (Euro)\0", NULL, "Imageworks", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_backtof3RomInfo, md_backtof3RomName, NULL, NULL, MegadriveInputInfo, MegadrivePALDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Back to the Future Part III (USA)
-static struct BurnRomInfo md_backtof3uRomDesc[] = {
- { "back to the future part iii (usa).bin", 0x080000, 0x66a388c3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_backtof3u)
-STD_ROM_FN(md_backtof3u)
-
-struct BurnDriver BurnDrvmd_backtof3u = {
- "md_backtof3u", "md_backtof3", NULL, NULL, "1991",
- "Back to the Future Part III (USA)\0", NULL, "Arena Entertainment", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_backtof3uRomInfo, md_backtof3uRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Bahamut Senki (Jpn)
-static struct BurnRomInfo md_bahamutsRomDesc[] = {
- { "mpr-13677.bin", 0x080000, 0xb1e268da, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_bahamuts)
-STD_ROM_FN(md_bahamuts)
-
-struct BurnDriver BurnDrvmd_bahamuts = {
- "md_bahamuts", NULL, NULL, NULL, "1991",
- "Bahamut Senki (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_bahamutsRomInfo, md_bahamutsRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Ball Jacks (Euro, Jpn)
-static struct BurnRomInfo md_balljackRomDesc[] = {
- { "ball jacks (euro, jpn).bin", 0x040000, 0xf5c3c54f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_balljack)
-STD_ROM_FN(md_balljack)
-
-struct BurnDriver BurnDrvmd_balljack = {
- "md_balljack", NULL, NULL, NULL, "1993",
- "Ball Jacks (Euro, Jpn)\0", NULL, "Namco", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_balljackRomInfo, md_balljackRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Ballz 3D (Euro, USA)
-static struct BurnRomInfo md_ballz3dRomDesc[] = {
- { "ballz 3d - fighting at its ballziest (euro, usa).bin", 0x200000, 0xb362b705, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ballz3d)
-STD_ROM_FN(md_ballz3d)
-
-struct BurnDriver BurnDrvmd_ballz3d = {
- "md_ballz3d", NULL, NULL, NULL, "1994",
- "Ballz 3D (Euro, USA)\0", NULL, "Accolade", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_ballz3dRomInfo, md_ballz3dRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Barbie Super Model (USA)
-static struct BurnRomInfo md_barbiesmRomDesc[] = {
- { "barbie super model (usa).bin", 0x100000, 0x81c9662b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_barbiesm)
-STD_ROM_FN(md_barbiesm)
-
-struct BurnDriver BurnDrvmd_barbiesm = {
- "md_barbiesm", NULL, NULL, NULL, "1992",
- "Barbie Super Model (USA)\0", NULL, "Hi Tech Expressions", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_barbiesmRomInfo, md_barbiesmRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Barbie Vacation Adventure (USA, Prototype)
-static struct BurnRomInfo md_barbvacRomDesc[] = {
- { "barbie vacation adventure (usa) (prototype).bin", 0x100000, 0x10e0ba69, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_barbvac)
-STD_ROM_FN(md_barbvac)
-
-struct BurnDriver BurnDrvmd_barbvac = {
- "md_barbvac", NULL, NULL, NULL, "1994",
- "Barbie Vacation Adventure (USA, Prototype)\0", NULL, "Hi Tech Expressions", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_barbvacRomInfo, md_barbvacRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Barkley Shut Up and Jam! (Euro, USA)
-static struct BurnRomInfo md_barkleyRomDesc[] = {
- { "barkley shut up and jam! (euro, usa).bin", 0x100000, 0x63fbf497, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_barkley)
-STD_ROM_FN(md_barkley)
-
-struct BurnDriver BurnDrvmd_barkley = {
- "md_barkley", NULL, NULL, NULL, "1993",
- "Barkley Shut Up and Jam! (Euro, USA)\0", NULL, "Accolade", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_barkleyRomInfo, md_barkleyRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Barkley Shut Up and Jam! 2 (USA)
-static struct BurnRomInfo md_barkley2RomDesc[] = {
- { "barkley shut up and jam! 2 (usa).bin", 0x200000, 0x321bb6bd, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_barkley2)
-STD_ROM_FN(md_barkley2)
-
-struct BurnDriver BurnDrvmd_barkley2 = {
- "md_barkley2", NULL, NULL, NULL, "1995",
- "Barkley Shut Up and Jam! 2 (USA)\0", NULL, "Accolade", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_barkley2RomInfo, md_barkley2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Barkley Shut Up and Jam! 2 (USA, Prototype)
-static struct BurnRomInfo md_barkley2pRomDesc[] = {
- { "barkley shut up and jam! 2 (usa) (beta).bin", 0x200000, 0xde27357b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_barkley2p)
-STD_ROM_FN(md_barkley2p)
-
-struct BurnDriver BurnDrvmd_barkley2p = {
- "md_barkley2p", "md_barkley2", NULL, NULL, "1995",
- "Barkley Shut Up and Jam! 2 (USA, Prototype)\0", NULL, "Accolade", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_barkley2pRomInfo, md_barkley2pRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Barney's Hide & Seek Game (USA)
-static struct BurnRomInfo md_barneyRomDesc[] = {
- { "barney's hide & seek game (usa).bin", 0x100000, 0x1efa9d53, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_barney)
-STD_ROM_FN(md_barney)
-
-struct BurnDriver BurnDrvmd_barney = {
- "md_barney", NULL, NULL, NULL, "1993",
- "Barney's Hide & Seek Game (USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_barneyRomInfo, md_barneyRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Barver Battle Saga - Tai Kong Zhan Shi (Chi)
-static struct BurnRomInfo md_barverRomDesc[] = {
- { "barver battle saga - tai kong zhan shi (chi) (unl).bin", 0x200000, 0xd37a37c6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_barver)
-STD_ROM_FN(md_barver)
-
-struct BurnDriver BurnDrvmd_barver = {
- "md_barver", NULL, NULL, NULL, "199?",
- "Barver Battle Saga - Tai Kong Zhan Shi (Chi)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_barverRomInfo, md_barverRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// BASS Masters Classic (USA)
-static struct BurnRomInfo md_bassmcRomDesc[] = {
- { "bass masters classic (usa).bin", 0x200000, 0xcf1ff00a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_bassmc)
-STD_ROM_FN(md_bassmc)
-
-struct BurnDriver BurnDrvmd_bassmc = {
- "md_bassmc", NULL, NULL, NULL, "1995",
- "BASS Masters Classic (USA)\0", NULL, "Black Pearl", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_bassmcRomInfo, md_bassmcRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// BASS Masters Classic - Pro Edition (USA)
-static struct BurnRomInfo md_bassmproRomDesc[] = {
- { "bass masters classic - pro edition (usa).bin", 0x200000, 0x9eddeb3d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_bassmpro)
-STD_ROM_FN(md_bassmpro)
-
-struct BurnDriver BurnDrvmd_bassmpro = {
- "md_bassmpro", NULL, NULL, NULL, "1996",
- "BASS Masters Classic - Pro Edition (USA)\0", NULL, "THQ", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_bassmproRomInfo, md_bassmproRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Batman (Jpn)
-static struct BurnRomInfo md_batmanjRomDesc[] = {
- { "batman (jpn).bin", 0x080000, 0xd7b4febf, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_batmanj)
-STD_ROM_FN(md_batmanj)
-
-struct BurnDriver BurnDrvmd_batmanj = {
- "md_batmanj", "md_batman", NULL, NULL, "1990",
- "Batman (Jpn)\0", NULL, "Sunsoft", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_batmanjRomInfo, md_batmanjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Batman (USA)
-static struct BurnRomInfo md_batmanuRomDesc[] = {
- { "batman (usa).bin", 0x080000, 0x017410ae, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_batmanu)
-STD_ROM_FN(md_batmanu)
-
-struct BurnDriver BurnDrvmd_batmanu = {
- "md_batmanu", "md_batman", NULL, NULL, "1990",
- "Batman (USA)\0", NULL, "Sunsoft", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_batmanuRomInfo, md_batmanuRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Batman - Revenge of the Joker (USA)
-static struct BurnRomInfo md_batmanrjRomDesc[] = {
- { "batman - revenge of the joker (usa).bin", 0x100000, 0xcaa044a1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_batmanrj)
-STD_ROM_FN(md_batmanrj)
-
-struct BurnDriver BurnDrvmd_batmanrj = {
- "md_batmanrj", NULL, NULL, NULL, "1992",
- "Batman - Revenge of the Joker (USA)\0", NULL, "Sunsoft", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_batmanrjRomInfo, md_batmanrjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Batman Forever (World)
-static struct BurnRomInfo md_batmanfRomDesc[] = {
- { "batman forever (world).bin", 0x300000, 0x8b723d01, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_batmanf)
-STD_ROM_FN(md_batmanf)
-
-struct BurnDriver BurnDrvmd_batmanf = {
- "md_batmanf", NULL, NULL, NULL, "1995",
- "Batman Forever (World)\0", NULL, "Acclaim Entertainment", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_batmanfRomInfo, md_batmanfRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Battle Golfer Yui (Jpn)
-static struct BurnRomInfo md_battlyuiRomDesc[] = {
- { "battle golfer yui (jpn).bin", 0x080000, 0x4aa03e4e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_battlyui)
-STD_ROM_FN(md_battlyui)
-
-struct BurnDriver BurnDrvmd_battlyui = {
- "md_battlyui", NULL, NULL, NULL, "1991",
- "Battle Golfer Yui (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_battlyuiRomInfo, md_battlyuiRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Battle Mania Daiginjou (Jpn, Kor)
-static struct BurnRomInfo md_btlmanidRomDesc[] = {
- { "battle mania daiginjou (jpn, kor).bin", 0x100000, 0x312fa0f2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_btlmanid)
-STD_ROM_FN(md_btlmanid)
-
-struct BurnDriver BurnDrvmd_btlmanid = {
- "md_btlmanid", NULL, NULL, NULL, "1993",
- "Battle Mania Daiginjou (Jpn, Kor)\0", NULL, "Vic Tokai", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_btlmanidRomInfo, md_btlmanidRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Battle Squadron (Euro, USA)
-static struct BurnRomInfo md_battlesqRomDesc[] = {
- { "battle squadron (euro, usa).bin", 0x080000, 0x0feaa8bf, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_battlesq)
-STD_ROM_FN(md_battlesq)
-
-struct BurnDriver BurnDrvmd_battlesq = {
- "md_battlesq", NULL, NULL, NULL, "1990",
- "Battle Squadron (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_battlesqRomInfo, md_battlesqRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Battlemaster (USA)
-static struct BurnRomInfo md_battlemsRomDesc[] = {
- { "battlemaster (usa).bin", 0x080000, 0xfd2b35e3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_battlems)
-STD_ROM_FN(md_battlems)
-
-struct BurnDriver BurnDrvmd_battlems = {
- "md_battlems", NULL, NULL, NULL, "1991",
- "Battlemaster (USA)\0", NULL, "Arena Entertainment", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_battlemsRomInfo, md_battlemsRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// BattleTech (USA)
-static struct BurnRomInfo md_btechRomDesc[] = {
- { "battletech - a game of armored combat (usa).bin", 0x200000, 0x409e5d14, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_btech)
-STD_ROM_FN(md_btech)
-
-struct BurnDriver BurnDrvmd_btech = {
- "md_btech", NULL, NULL, NULL, "1994",
- "BattleTech (USA)\0", NULL, "Extreme Entertainment Group", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_btechRomInfo, md_btechRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Battletoads & Double Dragon - The Ultimate Team (USA)
-static struct BurnRomInfo md_btoadsddRomDesc[] = {
- { "battletoads & double dragon (usa).bin", 0x100000, 0x8239dd17, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_btoadsdd)
-STD_ROM_FN(md_btoadsdd)
-
-struct BurnDriver BurnDrvmd_btoadsdd = {
- "md_btoadsdd", NULL, NULL, NULL, "1993",
- "Battletoads & Double Dragon - The Ultimate Team (USA)\0", NULL, "Tradewest", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_btoadsddRomInfo, md_btoadsddRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Battletoads (World)
-static struct BurnRomInfo md_btoadsRomDesc[] = {
- { "battletoads (world).bin", 0x080000, 0xd10e103a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_btoads)
-STD_ROM_FN(md_btoads)
-
-struct BurnDriver BurnDrvmd_btoads = {
- "md_btoads", NULL, NULL, NULL, "1991",
- "Battletoads (World)\0", NULL, "Tradewest", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_btoadsRomInfo, md_btoadsRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Beastball (Prototype)
-static struct BurnRomInfo md_beastbalRomDesc[] = {
- { "beast ball.bin", 0x0fb8e0, 0x6a176576, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_beastbal)
-STD_ROM_FN(md_beastbal)
-
-struct BurnDriver BurnDrvmd_beastbal = {
- "md_beastbal", NULL, NULL, NULL, "199?",
- "Beastball (Prototype)\0", NULL, "Spectrum Holobyte", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_beastbalRomInfo, md_beastbalRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Beast Wrestler (USA)
-static struct BurnRomInfo md_beastwRomDesc[] = {
- { "beast wrestler (usa).bin", 0x100000, 0x0ca5bb64, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_beastw)
-STD_ROM_FN(md_beastw)
-
-struct BurnDriver BurnDrvmd_beastw = {
- "md_beastw", NULL, NULL, NULL, "1991",
- "Beast Wrestler (USA)\0", NULL, "Renovation", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_beastwRomInfo, md_beastwRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Beast Warriors (Jpn)
-static struct BurnRomInfo md_beastwjRomDesc[] = {
- { "beast warriors (jpn).bin", 0x100000, 0x4646c694, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_beastwj)
-STD_ROM_FN(md_beastwj)
-
-struct BurnDriver BurnDrvmd_beastwj = {
- "md_beastwj", "md_beastw", NULL, NULL, "1991",
- "Beast Warriors (Jpn)\0", NULL, "Riot", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_beastwjRomInfo, md_beastwjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Disney's Beauty and the Beast - Belle's Quest (USA)
-static struct BurnRomInfo md_beautyRomDesc[] = {
- { "beauty and the beast - belle's quest (usa).bin", 0x100000, 0xbefb6fae, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_beauty)
-STD_ROM_FN(md_beauty)
-
-struct BurnDriver BurnDrvmd_beauty = {
- "md_beauty", NULL, NULL, NULL, "1993",
- "Disney's Beauty and the Beast - Belle's Quest (USA)\0", NULL, "Sunsoft", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_beautyRomInfo, md_beautyRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Disney's Beauty and the Beast - Roar of the Beast (USA)
-static struct BurnRomInfo md_beautyrbRomDesc[] = {
- { "beauty and the beast - roar of the beast (usa).bin", 0x100000, 0x13e7b519, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_beautyrb)
-STD_ROM_FN(md_beautyrb)
-
-struct BurnDriver BurnDrvmd_beautyrb = {
- "md_beautyrb", NULL, NULL, NULL, "1993",
- "Disney's Beauty and the Beast - Roar of the Beast (USA)\0", NULL, "Sunsoft", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_beautyrbRomInfo, md_beautyrbRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Beavis and Butt-Head (Euro)
-static struct BurnRomInfo md_beavisRomDesc[] = {
- { "beavis and butt-head (euro).bin", 0x200000, 0xc7b6435e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_beavis)
-STD_ROM_FN(md_beavis)
-
-struct BurnDriver BurnDrvmd_beavis = {
- "md_beavis", NULL, NULL, NULL, "1994",
- "Beavis and Butt-Head (Euro)\0", NULL, "Viacom New Media", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_beavisRomInfo, md_beavisRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Beavis and Butt-Head (USA)
-static struct BurnRomInfo md_beavisuRomDesc[] = {
- { "beavis and butt-head (usa).bin", 0x200000, 0xf5d7b948, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_beavisu)
-STD_ROM_FN(md_beavisu)
-
-struct BurnDriver BurnDrvmd_beavisu = {
- "md_beavisu", "md_beavis", NULL, NULL, "1994",
- "Beavis and Butt-Head (USA)\0", NULL, "Viacom New Media", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_beavisuRomInfo, md_beavisuRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Beavis and Butt-Head (USA, Prototype)
-static struct BurnRomInfo md_beavisupRomDesc[] = {
- { "beavis and butt-head (usa) (beta).bin", 0x200000, 0x81ed5335, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_beavisup)
-STD_ROM_FN(md_beavisup)
-
-struct BurnDriver BurnDrvmd_beavisup = {
- "md_beavisup", "md_beavis", NULL, NULL, "1994",
- "Beavis and Butt-Head (USA, Prototype)\0", NULL, "Viacom New Media", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_beavisupRomInfo, md_beavisupRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Berenstain Bears' Camping Adventure (USA)
-static struct BurnRomInfo md_berensRomDesc[] = {
- { "berenstain bears' camping adventure, the (usa).bin", 0x100000, 0x1f86237b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_berens)
-STD_ROM_FN(md_berens)
-
-struct BurnDriver BurnDrvmd_berens = {
- "md_berens", NULL, NULL, NULL, "1994",
- "The Berenstain Bears' Camping Adventure (USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_berensRomInfo, md_berensRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Berenstain Bears' Camping Adventure (Prototype, 19940428)
-static struct BurnRomInfo md_berensp19RomDesc[] = {
- { "berenstain bears' camping adventure, the (prototype - apr 28, 1994).bin", 0x100000, 0xf222e946, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_berensp19)
-STD_ROM_FN(md_berensp19)
-
-struct BurnDriver BurnDrvmd_berensp19 = {
- "md_berensp19", "md_berens", NULL, NULL, "1994",
- "The Berenstain Bears' Camping Adventure (Prototype, 19940428)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_berensp19RomInfo, md_berensp19RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Berenstain Bears' Camping Adventure (Prototype, 19940429)
-static struct BurnRomInfo md_berensp18RomDesc[] = {
- { "berenstain bears' camping adventure, the (prototype - apr 29, 1994).bin", 0x100000, 0xe21493b4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_berensp18)
-STD_ROM_FN(md_berensp18)
-
-struct BurnDriver BurnDrvmd_berensp18 = {
- "md_berensp18", "md_berens", NULL, NULL, "1994",
- "The Berenstain Bears' Camping Adventure (Prototype, 19940429)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_berensp18RomInfo, md_berensp18RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Berenstain Bears' Camping Adventure (Prototype, 19940801)
-static struct BurnRomInfo md_berensp05RomDesc[] = {
- { "berenstain bears' camping adventure, the (prototype - aug 01, 1994).bin", 0x100000, 0xb7cd465c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_berensp05)
-STD_ROM_FN(md_berensp05)
-
-struct BurnDriver BurnDrvmd_berensp05 = {
- "md_berensp05", "md_berens", NULL, NULL, "1994",
- "The Berenstain Bears' Camping Adventure (Prototype, 19940801)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_berensp05RomInfo, md_berensp05RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Berenstain Bears' Camping Adventure (Prototype, 19940802)
-static struct BurnRomInfo md_berensp04RomDesc[] = {
- { "berenstain bears' camping adventure, the (prototype - aug 02, 1994).bin", 0x100000, 0x383ad564, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_berensp04)
-STD_ROM_FN(md_berensp04)
-
-struct BurnDriver BurnDrvmd_berensp04 = {
- "md_berensp04", "md_berens", NULL, NULL, "1994",
- "The Berenstain Bears' Camping Adventure (Prototype, 19940802)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_berensp04RomInfo, md_berensp04RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Berenstain Bears' Camping Adventure (Prototype, 19940803)
-static struct BurnRomInfo md_berensp03RomDesc[] = {
- { "berenstain bears' camping adventure, the (prototype - aug 03, 1994).bin", 0x100000, 0x18f268a6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_berensp03)
-STD_ROM_FN(md_berensp03)
-
-struct BurnDriver BurnDrvmd_berensp03 = {
- "md_berensp03", "md_berens", NULL, NULL, "1994",
- "The Berenstain Bears' Camping Adventure (Prototype, 19940803)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_berensp03RomInfo, md_berensp03RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Berenstain Bears' Camping Adventure (Prototype, 19940805)
-static struct BurnRomInfo md_berensp02RomDesc[] = {
- { "berenstain bears' camping adventure, the (prototype - aug 05, 1994).bin", 0x100000, 0x24159b6f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_berensp02)
-STD_ROM_FN(md_berensp02)
-
-struct BurnDriver BurnDrvmd_berensp02 = {
- "md_berensp02", "md_berens", NULL, NULL, "1994",
- "The Berenstain Bears' Camping Adventure (Prototype, 19940805)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_berensp02RomInfo, md_berensp02RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Berenstain Bears' Camping Adventure (Prototype, 19940808)
-static struct BurnRomInfo md_berensp01RomDesc[] = {
- { "berenstain bears' camping adventure, the (prototype - aug 08, 1994).bin", 0x100000, 0x58b6b0fc, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_berensp01)
-STD_ROM_FN(md_berensp01)
-
-struct BurnDriver BurnDrvmd_berensp01 = {
- "md_berensp01", "md_berens", NULL, NULL, "1994",
- "The Berenstain Bears' Camping Adventure (Prototype, 19940808)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_berensp01RomInfo, md_berensp01RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Berenstain Bears' Camping Adventure (Prototype, 19940709)
-static struct BurnRomInfo md_berensp08RomDesc[] = {
- { "berenstain bears' camping adventure, the (prototype - jul 09, 1994).bin", 0x100000, 0xbf6aa405, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_berensp08)
-STD_ROM_FN(md_berensp08)
-
-struct BurnDriver BurnDrvmd_berensp08 = {
- "md_berensp08", "md_berens", NULL, NULL, "1994",
- "The Berenstain Bears' Camping Adventure (Prototype, 19940709)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_berensp08RomInfo, md_berensp08RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Berenstain Bears' Camping Adventure (Prototype, 19940716)
-static struct BurnRomInfo md_berensp07RomDesc[] = {
- { "berenstain bears' camping adventure, the (prototype - jul 16, 1994).bin", 0x100000, 0xc84aad8e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_berensp07)
-STD_ROM_FN(md_berensp07)
-
-struct BurnDriver BurnDrvmd_berensp07 = {
- "md_berensp07", "md_berens", NULL, NULL, "1994",
- "The Berenstain Bears' Camping Adventure (Prototype, 19940716)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_berensp07RomInfo, md_berensp07RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Berenstain Bears' Camping Adventure (Prototype, 19940720)
-static struct BurnRomInfo md_berensp06RomDesc[] = {
- { "berenstain bears' camping adventure, the (prototype - jul 20, 1994).bin", 0x100000, 0xabee4c5e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_berensp06)
-STD_ROM_FN(md_berensp06)
-
-struct BurnDriver BurnDrvmd_berensp06 = {
- "md_berensp06", "md_berens", NULL, NULL, "1994",
- "The Berenstain Bears' Camping Adventure (Prototype, 19940720)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_berensp06RomInfo, md_berensp06RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Berenstain Bears' Camping Adventure (Prototype, 19940602)
-static struct BurnRomInfo md_berensp10RomDesc[] = {
- { "berenstain bears' camping adventure, the (prototype - jun 02, 1994).bin", 0x100000, 0x83cf19e4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_berensp10)
-STD_ROM_FN(md_berensp10)
-
-struct BurnDriver BurnDrvmd_berensp10 = {
- "md_berensp10", "md_berens", NULL, NULL, "1994",
- "The Berenstain Bears' Camping Adventure (Prototype, 19940602)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_berensp10RomInfo, md_berensp10RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Berenstain Bears' Camping Adventure (Prototype, 19940610)
-static struct BurnRomInfo md_berensp09RomDesc[] = {
- { "berenstain bears' camping adventure, the (prototype - jun 10, 1994).bin", 0x100000, 0xa748e2cf, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_berensp09)
-STD_ROM_FN(md_berensp09)
-
-struct BurnDriver BurnDrvmd_berensp09 = {
- "md_berensp09", "md_berens", NULL, NULL, "1994",
- "The Berenstain Bears' Camping Adventure (Prototype, 19940610)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_berensp09RomInfo, md_berensp09RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Berenstain Bears' Camping Adventure (Prototype, 19940323)
-static struct BurnRomInfo md_berensp20RomDesc[] = {
- { "berenstain bears' camping adventure, the (prototype - mar 23, 1994).bin", 0x100000, 0xbfbcd7cc, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_berensp20)
-STD_ROM_FN(md_berensp20)
-
-struct BurnDriver BurnDrvmd_berensp20 = {
- "md_berensp20", "md_berens", NULL, NULL, "1994",
- "The Berenstain Bears' Camping Adventure (Prototype, 19940323)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_berensp20RomInfo, md_berensp20RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Berenstain Bears' Camping Adventure (Prototype, 19940506)
-static struct BurnRomInfo md_berensp17RomDesc[] = {
- { "berenstain bears' camping adventure, the (prototype - may 06, 1994).bin", 0x100000, 0x713c14d8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_berensp17)
-STD_ROM_FN(md_berensp17)
-
-struct BurnDriver BurnDrvmd_berensp17 = {
- "md_berensp17", "md_berens", NULL, NULL, "1994",
- "The Berenstain Bears' Camping Adventure (Prototype, 19940506)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_berensp17RomInfo, md_berensp17RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Berenstain Bears' Camping Adventure (Prototype, 19940511)
-static struct BurnRomInfo md_berensp16RomDesc[] = {
- { "berenstain bears' camping adventure, the (prototype - may 11, 1994).bin", 0x100000, 0xf7b81c6a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_berensp16)
-STD_ROM_FN(md_berensp16)
-
-struct BurnDriver BurnDrvmd_berensp16 = {
- "md_berensp16", "md_berens", NULL, NULL, "1994",
- "The Berenstain Bears' Camping Adventure (Prototype, 19940511)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_berensp16RomInfo, md_berensp16RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Berenstain Bears' Camping Adventure (Prototype, 19940517)
-static struct BurnRomInfo md_berensp15RomDesc[] = {
- { "berenstain bears' camping adventure, the (prototype - may 17, 1994).bin", 0x100000, 0xe1855ade, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_berensp15)
-STD_ROM_FN(md_berensp15)
-
-struct BurnDriver BurnDrvmd_berensp15 = {
- "md_berensp15", "md_berens", NULL, NULL, "1994",
- "The Berenstain Bears' Camping Adventure (Prototype, 19940517)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_berensp15RomInfo, md_berensp15RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Berenstain Bears' Camping Adventure (Prototype, 19940519)
-static struct BurnRomInfo md_berensp14RomDesc[] = {
- { "berenstain bears' camping adventure, the (prototype - may 19, 1994).bin", 0x100000, 0x07c9f71f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_berensp14)
-STD_ROM_FN(md_berensp14)
-
-struct BurnDriver BurnDrvmd_berensp14 = {
- "md_berensp14", "md_berens", NULL, NULL, "1994",
- "The Berenstain Bears' Camping Adventure (Prototype, 19940519)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_berensp14RomInfo, md_berensp14RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Berenstain Bears' Camping Adventure (Prototype, 19940523)
-static struct BurnRomInfo md_berensp13RomDesc[] = {
- { "berenstain bears' camping adventure, the (prototype - may 23, 1994).bin", 0x100000, 0x913887b7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_berensp13)
-STD_ROM_FN(md_berensp13)
-
-struct BurnDriver BurnDrvmd_berensp13 = {
- "md_berensp13", "md_berens", NULL, NULL, "1994",
- "The Berenstain Bears' Camping Adventure (Prototype, 19940523)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_berensp13RomInfo, md_berensp13RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Berenstain Bears' Camping Adventure (Prototype, 19940526)
-static struct BurnRomInfo md_berensp12RomDesc[] = {
- { "berenstain bears' camping adventure, the (prototype - may 26, 1994).bin", 0x100000, 0xd33c0fa4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_berensp12)
-STD_ROM_FN(md_berensp12)
-
-struct BurnDriver BurnDrvmd_berensp12 = {
- "md_berensp12", "md_berens", NULL, NULL, "1994",
- "The Berenstain Bears' Camping Adventure (Prototype, 19940526)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_berensp12RomInfo, md_berensp12RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Berenstain Bears' Camping Adventure (Prototype, 19940530)
-static struct BurnRomInfo md_berensp11RomDesc[] = {
- { "berenstain bears' camping adventure, the (prototype - may 30, 1994).bin", 0x100000, 0x9c3bf429, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_berensp11)
-STD_ROM_FN(md_berensp11)
-
-struct BurnDriver BurnDrvmd_berensp11 = {
- "md_berensp11", "md_berens", NULL, NULL, "1994",
- "The Berenstain Bears' Camping Adventure (Prototype, 19940530)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_berensp11RomInfo, md_berensp11RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Best of the Best - Championship Karate (USA)
-static struct BurnRomInfo md_bestofRomDesc[] = {
- { "best of the best - championship karate (usa).bin", 0x100000, 0xc3d6a5d4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_bestof)
-STD_ROM_FN(md_bestof)
-
-struct BurnDriver BurnDrvmd_bestof = {
- "md_bestof", NULL, NULL, NULL, "1993",
- "Best of the Best - Championship Karate (USA)\0", NULL, "Electro Brain", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_bestofRomInfo, md_bestofRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Best of the Best - Championship Karate (Euro, Prototype)
-static struct BurnRomInfo md_bestofpRomDesc[] = {
- { "best of the best - championship karate (euro) (beta).bin", 0x100000, 0xf842240b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_bestofp)
-STD_ROM_FN(md_bestofp)
-
-struct BurnDriver BurnDrvmd_bestofp = {
- "md_bestofp", "md_bestof", NULL, NULL, "1993",
- "Best of the Best - Championship Karate (Euro, Prototype)\0", NULL, "Electro Brain", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_bestofpRomInfo, md_bestofpRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Kick Boxing (Jpn, Kor)
-static struct BurnRomInfo md_kickboxRomDesc[] = {
- { "mpr-15333.bin", 0x100000, 0x9bdc230c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_kickbox)
-STD_ROM_FN(md_kickbox)
-
-struct BurnDriver BurnDrvmd_kickbox = {
- "md_kickbox", "md_bestof", NULL, NULL, "1993",
- "The Kick Boxing (Jpn, Kor)\0", NULL, "Micro World", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_kickboxRomInfo, md_kickboxRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Beyond Zero Tolerance (USA, Prototype)
-static struct BurnRomInfo md_beyondztRomDesc[] = {
- { "beyond zero tolerance (usa) (prototype).bin", 0x200000, 0xc61ed2ed, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_beyondzt)
-STD_ROM_FN(md_beyondzt)
-
-struct BurnDriver BurnDrvmd_beyondzt = {
- "md_beyondzt", NULL, NULL, NULL, "1995",
- "Beyond Zero Tolerance (USA, Prototype)\0", NULL, "Accolade", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_beyondztRomInfo, md_beyondztRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Bible Adventures (USA)
-static struct BurnRomInfo md_bibleadvRomDesc[] = {
- { "bible adventures (usa) (unl).bin", 0x080000, 0x64446b77, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_bibleadv)
-STD_ROM_FN(md_bibleadv)
-
-struct BurnDriver BurnDrvmd_bibleadv = {
- "md_bibleadv", NULL, NULL, NULL, "1995",
- "Bible Adventures (USA)\0", NULL, "Wisdom Tree", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_bibleadvRomInfo, md_bibleadvRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Bill Walsh College Football (Euro, USA)
-static struct BurnRomInfo md_billwlshRomDesc[] = {
- { "bwcf01.bin", 0x100000, 0x3ed83362, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_billwlsh)
-STD_ROM_FN(md_billwlsh)
-
-struct BurnDriver BurnDrvmd_billwlsh = {
- "md_billwlsh", NULL, NULL, NULL, "1993",
- "Bill Walsh College Football (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_billwlshRomInfo, md_billwlshRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Bill Walsh College Football 95 (USA)
-static struct BurnRomInfo md_billwl95RomDesc[] = {
- { "bill walsh college football 95 (usa).bin", 0x200000, 0xa582f45a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_billwl95)
-STD_ROM_FN(md_billwl95)
-
-struct BurnDriver BurnDrvmd_billwl95 = {
- "md_billwl95", NULL, NULL, NULL, "1994",
- "Bill Walsh College Football 95 (USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_billwl95RomInfo, md_billwl95RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Bimini Run (USA)
-static struct BurnRomInfo md_biminiRomDesc[] = {
- { "bimini run (usa).bin", 0x080000, 0xd4dc5188, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_bimini)
-STD_ROM_FN(md_bimini)
-
-struct BurnDriver BurnDrvmd_bimini = {
- "md_bimini", NULL, NULL, NULL, "1990",
- "Bimini Run (USA)\0", NULL, "Nuvision Entertainment", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_biminiRomInfo, md_biminiRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Bio Hazard Battle (Euro, USA)
-static struct BurnRomInfo md_biohazrbRomDesc[] = {
- { "mpr-15204.bin", 0x100000, 0x95b0ea2b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_biohazrb)
-STD_ROM_FN(md_biohazrb)
-
-struct BurnDriver BurnDrvmd_biohazrb = {
- "md_biohazrb", NULL, NULL, NULL, "1992",
- "Bio Hazard Battle (Euro, USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_biohazrbRomInfo, md_biohazrbRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Bio Hazard Battle (USA, Prototype)
-static struct BurnRomInfo md_biohazrbpRomDesc[] = {
- { "bio hazard battle (usa) (beta).bin", 0x100000, 0xdd10dd1a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_biohazrbp)
-STD_ROM_FN(md_biohazrbp)
-
-struct BurnDriver BurnDrvmd_biohazrbp = {
- "md_biohazrbp", "md_biohazrb", NULL, NULL, "1992",
- "Bio Hazard Battle (USA, Prototype)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_biohazrbpRomInfo, md_biohazrbpRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Crying - Aseimei Sensou (Jpn)
-static struct BurnRomInfo md_cryingRomDesc[] = {
- { "crying - aseimei sensou (jpn).bin", 0x100000, 0x4aba1d6a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_crying)
-STD_ROM_FN(md_crying)
-
-struct BurnDriver BurnDrvmd_crying = {
- "md_crying", "md_biohazrb", NULL, NULL, "1992",
- "Crying - Aseimei Sensou (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_cryingRomInfo, md_cryingRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Blades of Vengeance (Euro, USA)
-static struct BurnRomInfo md_bladevenRomDesc[] = {
- { "blades of vengeance (euro, usa).bin", 0x100000, 0x74c65a49, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_bladeven)
-STD_ROM_FN(md_bladeven)
-
-struct BurnDriver BurnDrvmd_bladeven = {
- "md_bladeven", NULL, NULL, NULL, "1993",
- "Blades of Vengeance (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_bladevenRomInfo, md_bladevenRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Blaster Master 2 (USA)
-static struct BurnRomInfo md_bmaster2RomDesc[] = {
- { "blaster master 2 (usa).bin", 0x100000, 0xc11e4ba1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_bmaster2)
-STD_ROM_FN(md_bmaster2)
-
-struct BurnDriver BurnDrvmd_bmaster2 = {
- "md_bmaster2", NULL, NULL, NULL, "1993",
- "Blaster Master 2 (USA)\0", NULL, "Sunsoft", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_bmaster2RomInfo, md_bmaster2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Blaster Master 2 (USA, Prototype)
-static struct BurnRomInfo md_bmaster2pRomDesc[] = {
- { "blaster master 2 (usa) (beta).bin", 0x100000, 0x08f78c70, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_bmaster2p)
-STD_ROM_FN(md_bmaster2p)
-
-struct BurnDriver BurnDrvmd_bmaster2p = {
- "md_bmaster2p", "md_bmaster2", NULL, NULL, "1993",
- "Blaster Master 2 (USA, Prototype)\0", NULL, "Sunsoft", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_bmaster2pRomInfo, md_bmaster2pRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Blockbuster World Video Game Championship II (USA)
-static struct BurnRomInfo md_blockbRomDesc[] = {
- { "blockbuster world video game championship ii (usa).bin", 0x400000, 0x4385e366, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_blockb)
-STD_ROM_FN(md_blockb)
-
-struct BurnDriver BurnDrvmd_blockb = {
- "md_blockb", NULL, NULL, NULL, "1995",
- "Blockbuster World Video Game Championship II (USA)\0", NULL, "Acclaim Entertainment", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_blockbRomInfo, md_blockbRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Blockout (World)
-static struct BurnRomInfo md_blockoutRomDesc[] = {
- { "bloc-u1_blo03+bloc-u2_blo03.bin,mpr-14247.bin", 0x020000, 0x5e2966f1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_blockout)
-STD_ROM_FN(md_blockout)
-
-struct BurnDriver BurnDrvmd_blockout = {
- "md_blockout", NULL, NULL, NULL, "1991",
- "Blockout (World)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_blockoutRomInfo, md_blockoutRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Bloodshot ~ Battle Frenzy (Euro)
-static struct BurnRomInfo md_bloodshtRomDesc[] = {
- { "es210.bin", 0x200000, 0xf9f2bceb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_bloodsht)
-STD_ROM_FN(md_bloodsht)
-
-struct BurnDriver BurnDrvmd_bloodsht = {
- "md_bloodsht", NULL, NULL, NULL, "1994",
- "Bloodshot ~ Battle Frenzy (Euro)\0", NULL, "Acclaim Entertainment", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_bloodshtRomInfo, md_bloodshtRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Blue Almanac (Jpn)
-static struct BurnRomInfo md_bluealmaRomDesc[] = {
- { "blue almanac (jpn).bin", 0x100000, 0x7222ebb3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_bluealma)
-STD_ROM_FN(md_bluealma)
-
-struct BurnDriver BurnDrvmd_bluealma = {
- "md_bluealma", NULL, NULL, NULL, "1991",
- "Blue Almanac (Jpn)\0", NULL, "Kodansha", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_bluealmaRomInfo, md_bluealmaRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Body Count (Euro)
-static struct BurnRomInfo md_bodycoRomDesc[] = {
- { "body count (euro).bin", 0x100000, 0x3575a030, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_bodyco)
-STD_ROM_FN(md_bodyco)
-
-struct BurnDriver BurnDrvmd_bodyco = {
- "md_bodyco", NULL, NULL, NULL, "1994",
- "Body Count (Euro)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_bodycoRomInfo, md_bodycoRomName, NULL, NULL, MegadriveInputInfo, MegadrivePALDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Body Count (Bra)
-static struct BurnRomInfo md_bodycobRomDesc[] = {
- { "mpr-16252 w51.ic1", 0x100000, 0x649607d1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_bodycob)
-STD_ROM_FN(md_bodycob)
-
-struct BurnDriver BurnDrvmd_bodycob = {
- "md_bodycob", "md_bodyco", NULL, NULL, "1994",
- "Body Count (Bra)\0", NULL, "Tec Toy", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_bodycobRomInfo, md_bodycobRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Body Count (Euro, Prototype)
-static struct BurnRomInfo md_bodycopRomDesc[] = {
- { "body count (euro) (beta).bin", 0x100000, 0xb4ffb6ce, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_bodycop)
-STD_ROM_FN(md_bodycop)
-
-struct BurnDriver BurnDrvmd_bodycop = {
- "md_bodycop", "md_bodyco", NULL, NULL, "1994",
- "Body Count (Euro, Prototype)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_bodycopRomInfo, md_bodycopRomName, NULL, NULL, MegadriveInputInfo, MegadrivePALDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Body Count (USA, Prototype, 19940208)
-static struct BurnRomInfo md_bodycop4RomDesc[] = {
- { "body count (prototype - feb 08, 1994).bin", 0x0ff900, 0xc5fed897, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_bodycop4)
-STD_ROM_FN(md_bodycop4)
-
-struct BurnDriver BurnDrvmd_bodycop4 = {
- "md_bodycop4", "md_bodyco", NULL, NULL, "1994",
- "Body Count (USA, Prototype, 19940208)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_bodycop4RomInfo, md_bodycop4RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Body Count (USA, Prototype, 19940127)
-static struct BurnRomInfo md_bodycop5RomDesc[] = {
- { "body count (prototype - jan 27, 1994).bin", 0x100000, 0x66ca4e71, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_bodycop5)
-STD_ROM_FN(md_bodycop5)
-
-struct BurnDriver BurnDrvmd_bodycop5 = {
- "md_bodycop5", "md_bodyco", NULL, NULL, "1994",
- "Body Count (USA, Prototype, 19940127)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_bodycop5RomInfo, md_bodycop5RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Body Count (USA, Prototype, 19940303)
-static struct BurnRomInfo md_bodycop3RomDesc[] = {
- { "body count (prototype - mar 03, 1994).bin", 0x100000, 0x6abc6e77, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_bodycop3)
-STD_ROM_FN(md_bodycop3)
-
-struct BurnDriver BurnDrvmd_bodycop3 = {
- "md_bodycop3", "md_bodyco", NULL, NULL, "1994",
- "Body Count (USA, Prototype, 19940303)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_bodycop3RomInfo, md_bodycop3RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Body Count (USA, Prototype, 19940308)
-static struct BurnRomInfo md_bodycop2RomDesc[] = {
- { "body count (prototype - mar 08, 1994).bin", 0x100000, 0x8965213f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_bodycop2)
-STD_ROM_FN(md_bodycop2)
-
-struct BurnDriver BurnDrvmd_bodycop2 = {
- "md_bodycop2", "md_bodyco", NULL, NULL, "1994",
- "Body Count (USA, Prototype, 19940308)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_bodycop2RomInfo, md_bodycop2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Bonanza Bros. (Euro, Jpn, Rev. A)
-static struct BurnRomInfo md_bnzabrosRomDesc[] = {
- { "mpr-13905a.bin", 0x080000, 0xc6aac589, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_bnzabros)
-STD_ROM_FN(md_bnzabros)
-
-struct BurnDriver BurnDrvmd_bnzabros = {
- "md_bnzabros", NULL, NULL, NULL, "1991",
- "Bonanza Bros. (Euro, Jpn, Rev. A)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_bnzabrosRomInfo, md_bnzabrosRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Bonanza Bros. (Euro, Jpn)
-static struct BurnRomInfo md_bnzabros1RomDesc[] = {
- { "bonanza bros. (euro, jpn).bin", 0x080000, 0xadf6476c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_bnzabros1)
-STD_ROM_FN(md_bnzabros1)
-
-struct BurnDriver BurnDrvmd_bnzabros1 = {
- "md_bnzabros1", "md_bnzabros", NULL, NULL, "1991",
- "Bonanza Bros. (Euro, Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_bnzabros1RomInfo, md_bnzabros1RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Bonanza Bros. (USA, Kor)
-static struct BurnRomInfo md_bnzabrosuRomDesc[] = {
- { "bonanza bros. (usa, kor).bin", 0x080000, 0x20d1ad4c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_bnzabrosu)
-STD_ROM_FN(md_bnzabrosu)
-
-struct BurnDriver BurnDrvmd_bnzabrosu = {
- "md_bnzabrosu", "md_bnzabros", NULL, NULL, "1991",
- "Bonanza Bros. (USA, Kor)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_bnzabrosuRomInfo, md_bnzabrosuRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Bonkers (Euro, USA)
-static struct BurnRomInfo md_bonkersRomDesc[] = {
- { "bonkers (euro, usa).bin", 0x100000, 0xd1e66017, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_bonkers)
-STD_ROM_FN(md_bonkers)
-
-struct BurnDriver BurnDrvmd_bonkers = {
- "md_bonkers", NULL, NULL, NULL, "1994",
- "Bonkers (Euro, USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_bonkersRomInfo, md_bonkersRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Bonkers (USA, Prototype, 19940328)
-static struct BurnRomInfo md_bonkersp5RomDesc[] = {
- { "bonkers (prototype - mar 28, 1994).bin", 0x100000, 0xcd67c588, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_bonkersp5)
-STD_ROM_FN(md_bonkersp5)
-
-struct BurnDriver BurnDrvmd_bonkersp5 = {
- "md_bonkersp5", "md_bonkers", NULL, NULL, "1994",
- "Bonkers (USA, Prototype, 19940328)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_bonkersp5RomInfo, md_bonkersp5RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Bonkers (USA, Prototype, 19940503)
-static struct BurnRomInfo md_bonkersp4RomDesc[] = {
- { "bonkers (prototype - may 03, 1994).bin", 0x100000, 0xe4cd0d61, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_bonkersp4)
-STD_ROM_FN(md_bonkersp4)
-
-struct BurnDriver BurnDrvmd_bonkersp4 = {
- "md_bonkersp4", "md_bonkers", NULL, NULL, "1994",
- "Bonkers (USA, Prototype, 19940503)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_bonkersp4RomInfo, md_bonkersp4RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Bonkers (USA, Prototype, 19941004)
-static struct BurnRomInfo md_bonkersp3RomDesc[] = {
- { "bonkers (prototype - oct 04, 1994).bin", 0x100000, 0x913cc834, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_bonkersp3)
-STD_ROM_FN(md_bonkersp3)
-
-struct BurnDriver BurnDrvmd_bonkersp3 = {
- "md_bonkersp3", "md_bonkers", NULL, NULL, "1994",
- "Bonkers (USA, Prototype, 19941004)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_bonkersp3RomInfo, md_bonkersp3RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Bonkers (USA, Prototype, 19941025)
-static struct BurnRomInfo md_bonkersp2RomDesc[] = {
- { "bonkers (prototype - oct 25, 1994).bin", 0x100000, 0x3e5edc4f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_bonkersp2)
-STD_ROM_FN(md_bonkersp2)
-
-struct BurnDriver BurnDrvmd_bonkersp2 = {
- "md_bonkersp2", "md_bonkers", NULL, NULL, "1994",
- "Bonkers (USA, Prototype, 19941025)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_bonkersp2RomInfo, md_bonkersp2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Bonkers (USA, Prototype, 19941029)
-static struct BurnRomInfo md_bonkersp1RomDesc[] = {
- { "bonkers (prototype - oct 29, 1994).bin", 0x100000, 0x7b84793e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_bonkersp1)
-STD_ROM_FN(md_bonkersp1)
-
-struct BurnDriver BurnDrvmd_bonkersp1 = {
- "md_bonkersp1", "md_bonkers", NULL, NULL, "1994",
- "Bonkers (USA, Prototype, 19941029)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_bonkersp1RomInfo, md_bonkersp1RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Boogerman - A Pick and Flick Adventure (Euro)
-static struct BurnRomInfo md_boogerRomDesc[] = {
- { "boogerman - a pick and flick adventure (euro).bin", 0x300000, 0xdbc4340c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_booger)
-STD_ROM_FN(md_booger)
-
-struct BurnDriver BurnDrvmd_booger = {
- "md_booger", NULL, NULL, NULL, "1994",
- "Boogerman - A Pick and Flick Adventure (Euro)\0", NULL, "Interplay", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_boogerRomInfo, md_boogerRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Boogerman - A Pick and Flick Adventure (USA)
-static struct BurnRomInfo md_boogeruRomDesc[] = {
- { "boogerman - a pick and flick adventure (usa).bin", 0x300000, 0x1a7a2bec, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_boogeru)
-STD_ROM_FN(md_boogeru)
-
-struct BurnDriver BurnDrvmd_boogeru = {
- "md_boogeru", "md_booger", NULL, NULL, "1994",
- "Boogerman - A Pick and Flick Adventure (USA)\0", NULL, "Interplay", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_boogeruRomInfo, md_boogeruRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Boxing Legends of the Ring (USA)
-static struct BurnRomInfo md_boxinglgRomDesc[] = {
- { "boxing legends of the ring (usa).bin", 0x100000, 0x00f225ac, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_boxinglg)
-STD_ROM_FN(md_boxinglg)
-
-struct BurnDriver BurnDrvmd_boxinglg = {
- "md_boxinglg", NULL, NULL, NULL, "1993",
- "Boxing Legends of the Ring (USA)\0", NULL, "Electro Brain", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_boxinglgRomInfo, md_boxinglgRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Chavez II (USA)
-static struct BurnRomInfo md_chavez2RomDesc[] = {
- { "chavez ii (usa).bin", 0x100000, 0x5bc0dbb8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_chavez2)
-STD_ROM_FN(md_chavez2)
-
-struct BurnDriver BurnDrvmd_chavez2 = {
- "md_chavez2", "md_boxinglg", NULL, NULL, "1993",
- "Chavez II (USA)\0", NULL, "American Softworks", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_chavez2RomInfo, md_chavez2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Bram Stoker's Dracula (Euro)
-static struct BurnRomInfo md_draculaRomDesc[] = {
- { "bram stoker's dracula (euro).bin", 0x100000, 0x9ba5a063, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_dracula)
-STD_ROM_FN(md_dracula)
-
-struct BurnDriver BurnDrvmd_dracula = {
- "md_dracula", NULL, NULL, NULL, "1993",
- "Bram Stoker's Dracula (Euro)\0", NULL, "Sony Imagesoft", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_draculaRomInfo, md_draculaRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Bram Stoker's Dracula (USA)
-static struct BurnRomInfo md_draculauRomDesc[] = {
- { "bram stoker's dracula (usa).bin", 0x100000, 0x077084a6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_draculau)
-STD_ROM_FN(md_draculau)
-
-struct BurnDriver BurnDrvmd_draculau = {
- "md_draculau", "md_dracula", NULL, NULL, "1993",
- "Bram Stoker's Dracula (USA)\0", NULL, "Sony Imagesoft", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_draculauRomInfo, md_draculauRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Brett Hull Hockey '95 (USA)
-static struct BurnRomInfo md_bretthRomDesc[] = {
- { "brett hull hockey '95 (usa).bin", 0x200000, 0xf7775a09, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_bretth)
-STD_ROM_FN(md_bretth)
-
-struct BurnDriver BurnDrvmd_bretth = {
- "md_bretth", NULL, NULL, NULL, "1994",
- "Brett Hull Hockey '95 (USA)\0", NULL, "Accolade", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_bretthRomInfo, md_bretthRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Brian Lara Cricket (Euro, 199506)
-static struct BurnRomInfo md_brianlarRomDesc[] = {
- { "brian lara cricket (euro) (june 1995).bin", 0x100000, 0x408cf5c3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_brianlar)
-STD_ROM_FN(md_brianlar)
-
-struct BurnDriver BurnDrvmd_brianlar = {
- "md_brianlar", NULL, NULL, NULL, "1995",
- "Brian Lara Cricket (Euro, 199506)\0", NULL, "Codemasters", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_brianlarRomInfo, md_brianlarRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Brian Lara Cricket (Euro, 199503)
-static struct BurnRomInfo md_brianlar1RomDesc[] = {
- { "brian lara cricket (euro) (march 1995).bin", 0x100000, 0x90f5c2b7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_brianlar1)
-STD_ROM_FN(md_brianlar1)
-
-struct BurnDriver BurnDrvmd_brianlar1 = {
- "md_brianlar1", "md_brianlar", NULL, NULL, "1995",
- "Brian Lara Cricket (Euro, 199503)\0", NULL, "Codemasters", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_brianlar1RomInfo, md_brianlar1RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Brian Lara Cricket 96 (Euro, 199604)
-static struct BurnRomInfo md_brianl96RomDesc[] = {
- { "brian lara cricket 96 (euro) (april 1996).bin", 0x100000, 0xfe52f7e1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_brianl96)
-STD_ROM_FN(md_brianl96)
-
-struct BurnDriver BurnDrvmd_brianl96 = {
- "md_brianl96", NULL, NULL, NULL, "1996",
- "Brian Lara Cricket 96 (Euro, 199604)\0", NULL, "Codemasters", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_CODE_MASTERS, GBF_MISC, 0,
- MegadriveGetZipName, md_brianl96RomInfo, md_brianl96RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Brian Lara Cricket 96 (Euro, 199603)
-static struct BurnRomInfo md_brianl96aRomDesc[] = {
- { "mdbl_9844.bin", 0x100000, 0xfa3024af, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_brianl96a)
-STD_ROM_FN(md_brianl96a)
-
-struct BurnDriver BurnDrvmd_brianl96a = {
- "md_brianl96a", "md_brianl96", NULL, NULL, "1996",
- "Brian Lara Cricket 96 (Euro, 199603)\0", NULL, "Codemasters", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_CODE_MASTERS, GBF_MISC, 0,
- MegadriveGetZipName, md_brianl96aRomInfo, md_brianl96aRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Brutal - Paws of Fury (Euro)
-static struct BurnRomInfo md_brutalRomDesc[] = {
- { "brutal - paws of fury (euro).bin", 0x200000, 0x7e9a8d32, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_brutal)
-STD_ROM_FN(md_brutal)
-
-struct BurnDriver BurnDrvmd_brutal = {
- "md_brutal", NULL, NULL, NULL, "1994",
- "Brutal - Paws of Fury (Euro)\0", NULL, "GameTek", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_brutalRomInfo, md_brutalRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Brutal - Paws of Fury (USA)
-static struct BurnRomInfo md_brutaluRomDesc[] = {
- { "brutal - paws of fury (usa).bin", 0x200000, 0x98d502cd, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_brutalu)
-STD_ROM_FN(md_brutalu)
-
-struct BurnDriver BurnDrvmd_brutalu = {
- "md_brutalu", "md_brutal", NULL, NULL, "1994",
- "Brutal - Paws of Fury (USA)\0", NULL, "GameTek", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_brutaluRomInfo, md_brutaluRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Bubba'n'Stix (Euro)
-static struct BurnRomInfo md_bubbaRomDesc[] = {
- { "bubba'n'stix (euro).bin", 0x100000, 0xb467432e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_bubba)
-STD_ROM_FN(md_bubba)
-
-struct BurnDriver BurnDrvmd_bubba = {
- "md_bubba", NULL, NULL, NULL, "1994",
- "Bubba'n'Stix (Euro)\0", NULL, "Core Design", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_bubbaRomInfo, md_bubbaRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Bubba'n'Stix (Euro, Prototype)
-static struct BurnRomInfo md_bubbapRomDesc[] = {
- { "bubba'n'stix (euro) (beta).bin", 0x100000, 0xa8731cb4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_bubbap)
-STD_ROM_FN(md_bubbap)
-
-struct BurnDriver BurnDrvmd_bubbap = {
- "md_bubbap", "md_bubba", NULL, NULL, "1994",
- "Bubba'n'Stix (Euro, Prototype)\0", NULL, "Core Design", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_bubbapRomInfo, md_bubbapRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Bubba'n'Stix (USA)
-static struct BurnRomInfo md_bubbauRomDesc[] = {
- { "bubba'n'stix - a strategy adventure (usa).bin", 0x100000, 0xd45cb46f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_bubbau)
-STD_ROM_FN(md_bubbau)
-
-struct BurnDriver BurnDrvmd_bubbau = {
- "md_bubbau", "md_bubba", NULL, NULL, "1993",
- "Bubba'n'Stix (USA)\0", NULL, "Core Design", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_bubbauRomInfo, md_bubbauRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Bubble and Squeak (Euro)
-static struct BurnRomInfo md_bubblesqRomDesc[] = {
- { "bubble and squeak (euro).bin", 0x080000, 0x86151bf1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_bubblesq)
-STD_ROM_FN(md_bubblesq)
-
-struct BurnDriver BurnDrvmd_bubblesq = {
- "md_bubblesq", NULL, NULL, NULL, "1994",
- "Bubble and Squeak (Euro)\0", NULL, "Sunsoft", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_bubblesqRomInfo, md_bubblesqRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Bubble and Squeak (USA)
-static struct BurnRomInfo md_bubblesquRomDesc[] = {
- { "bubble and squeak (usa).bin", 0x080000, 0x28c4a006, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_bubblesqu)
-STD_ROM_FN(md_bubblesqu)
-
-struct BurnDriver BurnDrvmd_bubblesqu = {
- "md_bubblesqu", "md_bubblesq", NULL, NULL, "1994",
- "Bubble and Squeak (USA)\0", NULL, "Sunsoft", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_bubblesquRomInfo, md_bubblesquRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Bubsy in Claws Encounters of the Furred Kind (Euro, USA)
-static struct BurnRomInfo md_bubsyRomDesc[] = {
- { "bubsy in claws encounters of the furred kind (euro, usa).bin", 0x200000, 0x3e30d365, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_bubsy)
-STD_ROM_FN(md_bubsy)
-
-struct BurnDriver BurnDrvmd_bubsy = {
- "md_bubsy", NULL, NULL, NULL, "1993",
- "Bubsy in Claws Encounters of the Furred Kind (Euro, USA)\0", NULL, "Accolade", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_bubsyRomInfo, md_bubsyRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Bubsy II (Euro, USA)
-static struct BurnRomInfo md_bubsy2RomDesc[] = {
- { "bu2sg.bin", 0x200000, 0xf8beff56, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_bubsy2)
-STD_ROM_FN(md_bubsy2)
-
-struct BurnDriver BurnDrvmd_bubsy2 = {
- "md_bubsy2", NULL, NULL, NULL, "1994",
- "Bubsy II (Euro, USA)\0", NULL, "Accolade", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_bubsy2RomInfo, md_bubsy2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Buck Rogers - Countdown to Doomsday (Euro, USA)
-static struct BurnRomInfo md_buckrogRomDesc[] = {
- { "buc05.bin", 0x100000, 0x44e3bfff, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_buckrog)
-STD_ROM_FN(md_buckrog)
-
-struct BurnDriver BurnDrvmd_buckrog = {
- "md_buckrog", NULL, NULL, NULL, "1991",
- "Buck Rogers - Countdown to Doomsday (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM | HARDWARE_SEGA_MEGADRIVE_SRAM_04000, GBF_MISC, 0,
- MegadriveGetZipName, md_buckrogRomInfo, md_buckrogRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Budokan - The Martial Spirit (Euro)
-static struct BurnRomInfo md_budokanRomDesc[] = {
- { "budokan - the martial spirit (euro).bin", 0x080000, 0x97add5bd, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_budokan)
-STD_ROM_FN(md_budokan)
-
-struct BurnDriver BurnDrvmd_budokan = {
- "md_budokan", NULL, NULL, NULL, "1990",
- "Budokan - The Martial Spirit (Euro)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_budokanRomInfo, md_budokanRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Budokan - The Martial Spirit (USA)
-static struct BurnRomInfo md_budokanuRomDesc[] = {
- { "budokan - the martial spirit (usa).bin", 0x080000, 0xacd9f5fc, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_budokanu)
-STD_ROM_FN(md_budokanu)
-
-struct BurnDriver BurnDrvmd_budokanu = {
- "md_budokanu", "md_budokan", NULL, NULL, "1990",
- "Budokan - The Martial Spirit (USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_budokanuRomInfo, md_budokanuRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Bugs Bunny in Double Trouble (USA)
-static struct BurnRomInfo md_bugsbunuRomDesc[] = {
- { "bugs bunny in double trouble (usa).bin", 0x200000, 0x365305a2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_bugsbunu)
-STD_ROM_FN(md_bugsbunu)
-
-struct BurnDriver BurnDrvmd_bugsbunu = {
- "md_bugsbunu", "md_bugsbun", NULL, NULL, "1996",
- "Bugs Bunny in Double Trouble (USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_bugsbunuRomInfo, md_bugsbunuRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Bulls versus Blazers and the NBA Playoffs (Euro, USA)
-static struct BurnRomInfo md_bullvsblRomDesc[] = {
- { "bulls versus blazers and the nba playoffs (euro, usa).bin", 0x100000, 0xd4e4b4e8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_bullvsbl)
-STD_ROM_FN(md_bullvsbl)
-
-struct BurnDriver BurnDrvmd_bullvsbl = {
- "md_bullvsbl", NULL, NULL, NULL, "1993",
- "Bulls versus Blazers and the NBA Playoffs (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_bullvsblRomInfo, md_bullvsblRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Bulls Vs Lakers and the NBA Playoffs (Euro, USA)
-static struct BurnRomInfo md_bullvslaRomDesc[] = {
- { "bulls vs lakers and the nba playoffs (euro, usa).bin", 0x100000, 0xe56023a0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_bullvsla)
-STD_ROM_FN(md_bullvsla)
-
-struct BurnDriver BurnDrvmd_bullvsla = {
- "md_bullvsla", NULL, NULL, NULL, "1992",
- "Bulls Vs Lakers and the NBA Playoffs (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_bullvslaRomInfo, md_bullvslaRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Burning Force (Euro)
-static struct BurnRomInfo md_burnforcRomDesc[] = {
- { "burning force (euro).bin", 0x080000, 0x776ff6ff, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_burnforc)
-STD_ROM_FN(md_burnforc)
-
-struct BurnDriver BurnDrvmd_burnforc = {
- "md_burnforc", NULL, NULL, NULL, "1991",
- "Burning Force (Euro)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_burnforcRomInfo, md_burnforcRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Burning Force (Jpn)
-static struct BurnRomInfo md_burnforcjRomDesc[] = {
- { "burning force (jpn).bin", 0x080000, 0x0c1deb47, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_burnforcj)
-STD_ROM_FN(md_burnforcj)
-
-struct BurnDriver BurnDrvmd_burnforcj = {
- "md_burnforcj", "md_burnforc", NULL, NULL, "1990",
- "Burning Force (Jpn)\0", NULL, "Namcot", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_burnforcjRomInfo, md_burnforcjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Burning Force (USA)
-static struct BurnRomInfo md_burnforcuRomDesc[] = {
- { "burning force (usa).bin", 0x080000, 0xbdc8f02c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_burnforcu)
-STD_ROM_FN(md_burnforcu)
-
-struct BurnDriver BurnDrvmd_burnforcu = {
- "md_burnforcu", "md_burnforc", NULL, NULL, "1990",
- "Burning Force (USA)\0", NULL, "Namco", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_burnforcuRomInfo, md_burnforcuRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Cadash (USA, Asia, Kor)
-static struct BurnRomInfo md_cadashRomDesc[] = {
- { "cadash (usa, asia, kor).bin", 0x080000, 0x13bdf374, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_cadash)
-STD_ROM_FN(md_cadash)
-
-struct BurnDriver BurnDrvmd_cadash = {
- "md_cadash", NULL, NULL, NULL, "1992",
- "Cadash (USA, Asia, Kor)\0", NULL, "Taito", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_cadashRomInfo, md_cadashRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Caesars Palace (USA)
-static struct BurnRomInfo md_caesarsRomDesc[] = {
- { "caesars palace (usa).bin", 0x080000, 0x8fdaa9bb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_caesars)
-STD_ROM_FN(md_caesars)
-
-struct BurnDriver BurnDrvmd_caesars = {
- "md_caesars", NULL, NULL, NULL, "1993",
- "Caesars Palace (USA)\0", NULL, "Virgin Interactive", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_caesarsRomInfo, md_caesarsRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Cal Ripken Jr. Baseball (USA)
-static struct BurnRomInfo md_calripknRomDesc[] = {
- { "cal ripken jr. baseball (usa).bin", 0x100000, 0x9b1c96c0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_calripkn)
-STD_ROM_FN(md_calripkn)
-
-struct BurnDriver BurnDrvmd_calripkn = {
- "md_calripkn", NULL, NULL, NULL, "1992",
- "Cal Ripken Jr. Baseball (USA)\0", NULL, "Mindscape", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_calripknRomInfo, md_calripknRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Cal.50 - Caliber Fifty (USA)
-static struct BurnRomInfo md_cal50RomDesc[] = {
- { "caliber .50 (usa).bin", 0x100000, 0x44f4fa05, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_cal50)
-STD_ROM_FN(md_cal50)
-
-struct BurnDriver BurnDrvmd_cal50 = {
- "md_cal50", NULL, NULL, NULL, "1991",
- "Cal.50 - Caliber Fifty (USA)\0", NULL, "Mentrix Software", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_cal50RomInfo, md_cal50RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// California Games (Euro, USA)
-static struct BurnRomInfo md_calgamesRomDesc[] = {
- { "mpr-14372.bin", 0x080000, 0x43b1b672, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_calgames)
-STD_ROM_FN(md_calgames)
-
-struct BurnDriver BurnDrvmd_calgames = {
- "md_calgames", NULL, NULL, NULL, "1991",
- "California Games (Euro, USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_calgamesRomInfo, md_calgamesRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Cannon Fodder (Euro)
-static struct BurnRomInfo md_cfodderRomDesc[] = {
- { "cannon fodder (euro).bin", 0x180000, 0xad217654, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_cfodder)
-STD_ROM_FN(md_cfodder)
-
-struct BurnDriver BurnDrvmd_cfodder = {
- "md_cfodder", NULL, NULL, NULL, "1994",
- "Cannon Fodder (Euro)\0", NULL, "Virgin Interactive", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_cfodderRomInfo, md_cfodderRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Captain America and the Avengers (Euro)
-static struct BurnRomInfo md_captavenRomDesc[] = {
- { "mpr-15499.bin", 0x100000, 0x43225612, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_captaven)
-STD_ROM_FN(md_captaven)
-
-struct BurnDriver BurnDrvmd_captaven = {
- "md_captaven", NULL, NULL, NULL, "1992",
- "Captain America and the Avengers (Euro)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_captavenRomInfo, md_captavenRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Captain America and the Avengers (USA)
-static struct BurnRomInfo md_captavenuRomDesc[] = {
- { "captain america and the avengers (usa).bin", 0x100000, 0xe0639ca2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_captavenu)
-STD_ROM_FN(md_captavenu)
-
-struct BurnDriver BurnDrvmd_captavenu = {
- "md_captavenu", "md_captaven", NULL, NULL, "1992",
- "Captain America and the Avengers (USA)\0", NULL, "Data East", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_captavenuRomInfo, md_captavenuRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Captain America and the Avengers (USA, Prototype)
-static struct BurnRomInfo md_captavenupRomDesc[] = {
- { "captain america and the avengers (usa) (beta).bin", 0x100000, 0xbaac59c0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_captavenup)
-STD_ROM_FN(md_captavenup)
-
-struct BurnDriver BurnDrvmd_captavenup = {
- "md_captavenup", "md_captaven", NULL, NULL, "1992",
- "Captain America and the Avengers (USA, Prototype)\0", NULL, "Data East", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_captavenupRomInfo, md_captavenupRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Captain Lang (Jpn)
-static struct BurnRomInfo md_captlangRomDesc[] = {
- { "captain lang (japan).bin", 0x100000, 0x61ba8199, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_captlang)
-STD_ROM_FN(md_captlang)
-
-struct BurnDriver BurnDrvmd_captlang = {
- "md_captlang", "md_havoc", NULL, NULL, "1994",
- "Captain Lang (Jpn)\0", NULL, "Data East", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_captlangRomInfo, md_captlangRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Captain Planet and the Planeteers (Euro)
-static struct BurnRomInfo md_captplanRomDesc[] = {
- { "captain planet and the planeteers (euro).bin", 0x080000, 0x7672efa5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_captplan)
-STD_ROM_FN(md_captplan)
-
-struct BurnDriver BurnDrvmd_captplan = {
- "md_captplan", NULL, NULL, NULL, "1993",
- "Captain Planet and the Planeteers (Euro)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_captplanRomInfo, md_captplanRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Captain Planet and the Planeteers (USA)
-static struct BurnRomInfo md_captplanuRomDesc[] = {
- { "captain planet and the planeteers (usa).bin", 0x080000, 0xbf2cbd3a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_captplanu)
-STD_ROM_FN(md_captplanu)
-
-struct BurnDriver BurnDrvmd_captplanu = {
- "md_captplanu", "md_captplan", NULL, NULL, "1993",
- "Captain Planet and the Planeteers (USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_captplanuRomInfo, md_captplanuRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Castle of Illusion Starring Mickey Mouse (Euro, USA)
-static struct BurnRomInfo md_castlillRomDesc[] = {
- { "castle of illusion starring mickey mouse (euro, usa).bin", 0x080000, 0xba4e9fd0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_castlill)
-STD_ROM_FN(md_castlill)
-
-struct BurnDriver BurnDrvmd_castlill = {
- "md_castlill", NULL, NULL, NULL, "1990",
- "Castle of Illusion Starring Mickey Mouse (Euro, USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_castlillRomInfo, md_castlillRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Castle of Illusion - Fushigi no Oshiro Daibouken (Jpn)
-static struct BurnRomInfo md_castlilljRomDesc[] = {
- { "mpr-13498.bin", 0x080000, 0xce8333c6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_castlillj)
-STD_ROM_FN(md_castlillj)
-
-struct BurnDriver BurnDrvmd_castlillj = {
- "md_castlillj", "md_castlill", NULL, NULL, "1990",
- "Castle of Illusion - Fushigi no Oshiro Daibouken (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_castlilljRomInfo, md_castlilljRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Castlevania - The New Generation (Euro)
-static struct BurnRomInfo md_cvaniaRomDesc[] = {
- { "castlevania - the new generation (euro).bin", 0x100000, 0x4dd4e4a5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_cvania)
-STD_ROM_FN(md_cvania)
-
-struct BurnDriver BurnDrvmd_cvania = {
- "md_cvania", NULL, NULL, NULL, "1994",
- "Castlevania - The New Generation (Euro)\0", NULL, "Konami", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_cvaniaRomInfo, md_cvaniaRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Castlevania - The New Generation (Euro, Prototype)
-static struct BurnRomInfo md_cvaniapRomDesc[] = {
- { "castlevania - the new generation (euro) (beta).bin", 0x100000, 0x84cd103a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_cvaniap)
-STD_ROM_FN(md_cvaniap)
-
-struct BurnDriver BurnDrvmd_cvaniap = {
- "md_cvaniap", "md_cvania", NULL, NULL, "1994",
- "Castlevania - The New Generation (Euro, Prototype)\0", NULL, "Konami", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_cvaniapRomInfo, md_cvaniapRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Castlevania - Bloodlines (USA)
-static struct BurnRomInfo md_cvaniauRomDesc[] = {
- { "castlevania - bloodlines (usa).bin", 0x100000, 0xfb1ea6df, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_cvaniau)
-STD_ROM_FN(md_cvaniau)
-
-struct BurnDriver BurnDrvmd_cvaniau = {
- "md_cvaniau", "md_cvania", NULL, NULL, "1994",
- "Castlevania - Bloodlines (USA)\0", NULL, "Konami", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_cvaniauRomInfo, md_cvaniauRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Akumajou Dracula - Vampire Killer (Jpn)
-static struct BurnRomInfo md_akumajoRomDesc[] = {
- { "akumajou dracula - vampire killer (jpn).bin", 0x100000, 0x91b57d2b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_akumajo)
-STD_ROM_FN(md_akumajo)
-
-struct BurnDriver BurnDrvmd_akumajo = {
- "md_akumajo", "md_cvania", NULL, NULL, "1994",
- "Akumajou Dracula - Vampire Killer (Jpn)\0", NULL, "Konami", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_akumajoRomInfo, md_akumajoRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Centurion - Defender of Rome (Euro, USA)
-static struct BurnRomInfo md_centurRomDesc[] = {
- { "centurion - defender of rome (euro, usa).bin", 0x0c0000, 0x21283b14, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_centur)
-STD_ROM_FN(md_centur)
-
-struct BurnDriver BurnDrvmd_centur = {
- "md_centur", NULL, NULL, NULL, "1991",
- "Centurion - Defender of Rome (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_centurRomInfo, md_centurRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Chakan (Euro, USA)
-static struct BurnRomInfo md_chakanRomDesc[] = {
- { "chakan (euro, usa).bin", 0x100000, 0x046a48de, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_chakan)
-STD_ROM_FN(md_chakan)
-
-struct BurnDriver BurnDrvmd_chakan = {
- "md_chakan", NULL, NULL, NULL, "1992",
- "Chakan (Euro, USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_chakanRomInfo, md_chakanRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Champions World Class Soccer (World)
-static struct BurnRomInfo md_champwcsRomDesc[] = {
- { "s357.bin", 0x100000, 0x883e33db, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_champwcs)
-STD_ROM_FN(md_champwcs)
-
-struct BurnDriver BurnDrvmd_champwcs = {
- "md_champwcs", NULL, NULL, NULL, "1993",
- "Champions World Class Soccer (World)\0", NULL, "Flying Edge", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_champwcsRomInfo, md_champwcsRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Championship Bowling (USA)
-static struct BurnRomInfo md_champbwlRomDesc[] = {
- { "championship bowling (usa).bin", 0x080000, 0x1bf92520, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_champbwl)
-STD_ROM_FN(md_champbwl)
-
-struct BurnDriver BurnDrvmd_champbwl = {
- "md_champbwl", NULL, NULL, NULL, "1993",
- "Championship Bowling (USA)\0", NULL, "Mentrix Software", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_champbwlRomInfo, md_champbwlRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Boogie Woogie Bowling (Jpn)
-static struct BurnRomInfo md_boogieRomDesc[] = {
- { "boogie woogie bowling (jpn).bin", 0x080000, 0xccf52828, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_boogie)
-STD_ROM_FN(md_boogie)
-
-struct BurnDriver BurnDrvmd_boogie = {
- "md_boogie", "md_champbwl", NULL, NULL, "1993",
- "Boogie Woogie Bowling (Jpn)\0", NULL, "Visco", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_boogieRomInfo, md_boogieRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Championship Pool (USA)
-static struct BurnRomInfo md_champoolRomDesc[] = {
- { "championship pool (usa).bin", 0x100000, 0x253512cf, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_champool)
-STD_ROM_FN(md_champool)
-
-struct BurnDriver BurnDrvmd_champool = {
- "md_champool", NULL, NULL, NULL, "1993",
- "Championship Pool (USA)\0", NULL, "Mindscape", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_champoolRomInfo, md_champoolRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Championship Pro-Am (USA)
-static struct BurnRomInfo md_cproamRomDesc[] = {
- { "championship pro-am (usa).bin", 0x040000, 0xb496de28, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_cproam)
-STD_ROM_FN(md_cproam)
-
-struct BurnDriver BurnDrvmd_cproam = {
- "md_cproam", NULL, NULL, NULL, "1992",
- "Championship Pro-Am (USA)\0", NULL, "Tradewest", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_cproamRomInfo, md_cproamRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Chao Ji Da Fu Weng (Chi)
-static struct BurnRomInfo md_cjfuwengRomDesc[] = {
- { "chao ji da fu weng (chi) (unl).bin", 0x100000, 0x2e2ea687, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_cjfuweng)
-STD_ROM_FN(md_cjfuweng)
-
-struct BurnDriver BurnDrvmd_cjfuweng = {
- "md_cjfuweng", NULL, NULL, NULL, "199?",
- "Chao Ji Da Fu Weng (Chi)\0", NULL, "Gametec?", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_cjfuwengRomInfo, md_cjfuwengRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Chaos Engine (Euro)
-static struct BurnRomInfo md_chaosengRomDesc[] = {
- { "chaos engine, the (euro).bin", 0x180000, 0xbd9eecf4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_chaoseng)
-STD_ROM_FN(md_chaoseng)
-
-struct BurnDriver BurnDrvmd_chaoseng = {
- "md_chaoseng", NULL, NULL, NULL, "1992",
- "The Chaos Engine (Euro)\0", NULL, "Microprose", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_chaosengRomInfo, md_chaosengRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Soldiers of Fortune (USA)
-static struct BurnRomInfo md_soldfortRomDesc[] = {
- { "soldiers of fortune (usa).bin", 0x180000, 0xa84d28a1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_soldfort)
-STD_ROM_FN(md_soldfort)
-
-struct BurnDriver BurnDrvmd_soldfort = {
- "md_soldfort", "md_chaoseng", NULL, NULL, "1993",
- "Soldiers of Fortune (USA)\0", NULL, "Spectrum Holobyte", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_soldfortRomInfo, md_soldfortRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Chaos Engine 2 (Euro, Prototype)
-static struct BurnRomInfo md_chaosen2RomDesc[] = {
- { "chaos engine 2, the (euro) (prototype).bin", 0x100000, 0x3fb045c2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_chaosen2)
-STD_ROM_FN(md_chaosen2)
-
-struct BurnDriver BurnDrvmd_chaosen2 = {
- "md_chaosen2", NULL, NULL, NULL, "199?",
- "The Chaos Engine 2 (Euro, Prototype)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_chaosen2RomInfo, md_chaosen2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Chase H.Q. II (USA)
-static struct BurnRomInfo md_chasehq2RomDesc[] = {
- { "chase h.q. ii (usa).bin", 0x080000, 0xf39e4bf2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_chasehq2)
-STD_ROM_FN(md_chasehq2)
-
-struct BurnDriver BurnDrvmd_chasehq2 = {
- "md_chasehq2", NULL, NULL, NULL, "1992",
- "Chase H.Q. II (USA)\0", NULL, "Taito", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_chasehq2RomInfo, md_chasehq2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Super H.Q. (Jpn)
-static struct BurnRomInfo md_superhqRomDesc[] = {
- { "super h.q. (jpn).bin", 0x080000, 0xab2c52b0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_superhq)
-STD_ROM_FN(md_superhq)
-
-struct BurnDriver BurnDrvmd_superhq = {
- "md_superhq", "md_chasehq2", NULL, NULL, "1992",
- "Super H.Q. (Jpn)\0", NULL, "Taito", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_superhqRomInfo, md_superhqRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Cheese Cat-Astrophe Starring Speedy Gonzales (Euro)
-static struct BurnRomInfo md_cheeseRomDesc[] = {
- { "cheese cat-astrophe starring speedy gonzales (euro).bin", 0x200000, 0xff634b28, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_cheese)
-STD_ROM_FN(md_cheese)
-
-struct BurnDriver BurnDrvmd_cheese = {
- "md_cheese", NULL, NULL, NULL, "1995",
- "Cheese Cat-Astrophe Starring Speedy Gonzales (Euro)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_cheeseRomInfo, md_cheeseRomName, NULL, NULL, MegadriveInputInfo, MegadrivePALDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Chester Cheetah - Too Cool to Fool (USA)
-static struct BurnRomInfo md_chesterRomDesc[] = {
- { "chester cheetah - too cool to fool (usa).bin", 0x100000, 0x250e3ec3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_chester)
-STD_ROM_FN(md_chester)
-
-struct BurnDriver BurnDrvmd_chester = {
- "md_chester", NULL, NULL, NULL, "1992",
- "Chester Cheetah - Too Cool to Fool (USA)\0", NULL, "Kaneko", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_chesterRomInfo, md_chesterRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Chester Cheetah - Wild Wild Quest (USA)
-static struct BurnRomInfo md_chesterwRomDesc[] = {
- { "chester cheetah - wild wild quest (usa).bin", 0x100000, 0xb97b735d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_chesterw)
-STD_ROM_FN(md_chesterw)
-
-struct BurnDriver BurnDrvmd_chesterw = {
- "md_chesterw", NULL, NULL, NULL, "1992",
- "Chester Cheetah - Wild Wild Quest (USA)\0", NULL, "Kaneko", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_chesterwRomInfo, md_chesterwRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Chi Chi's Pro Challenge Golf (USA)
-static struct BurnRomInfo md_chichiRomDesc[] = {
- { "chi chi's pro challenge golf (usa).bin", 0x100000, 0x9c3973a4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_chichi)
-STD_ROM_FN(md_chichi)
-
-struct BurnDriver BurnDrvmd_chichi = {
- "md_chichi", NULL, NULL, NULL, "1993",
- "Chi Chi's Pro Challenge Golf (USA)\0", NULL, "Virgin Interactive", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_chichiRomInfo, md_chichiRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Chibi Maruko-chan - Wakuwaku Shopping (Jpn)
-static struct BurnRomInfo md_chibimRomDesc[] = {
- { "chibi maruko-chan - wakuwaku shopping (jpn).bin", 0x080000, 0x91a144b8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_chibim)
-STD_ROM_FN(md_chibim)
-
-struct BurnDriver BurnDrvmd_chibim = {
- "md_chibim", NULL, NULL, NULL, "1992",
- "Chibi Maruko-chan - Wakuwaku Shopping (Jpn)\0", NULL, "Namcot", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_chibimRomInfo, md_chibimRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Chiki Chiki Boys (Euro, USA)
-static struct BurnRomInfo md_chikiRomDesc[] = {
- { "chiki chiki boys (euro, usa).bin", 0x100000, 0x813a7d62, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_chiki)
-STD_ROM_FN(md_chiki)
-
-struct BurnDriver BurnDrvmd_chiki = {
- "md_chiki", NULL, NULL, NULL, "1992",
- "Chiki Chiki Boys (Euro, USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_chikiRomInfo, md_chikiRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Chiki Chiki Boys (Jpn, Kor)
-static struct BurnRomInfo md_chikijRomDesc[] = {
- { "chiki chiki boys (jpn, kor).bin", 0x100000, 0x06918c17, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_chikij)
-STD_ROM_FN(md_chikij)
-
-struct BurnDriver BurnDrvmd_chikij = {
- "md_chikij", "md_chiki", NULL, NULL, "1992",
- "Chiki Chiki Boys (Jpn, Kor)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_chikijRomInfo, md_chikijRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Chinese Chess
-static struct BurnRomInfo md_chinesecRomDesc[] = {
- { "chinese chess (unl).bin", 0x080000, 0x475215a0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_chinesec)
-STD_ROM_FN(md_chinesec)
-
-struct BurnDriver BurnDrvmd_chinesec = {
- "md_chinesec", NULL, NULL, NULL, "199?",
- "Chinese Chess\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_chinesecRomInfo, md_chinesecRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Chuck Rock (Euro)
-static struct BurnRomInfo md_chuckrckRomDesc[] = {
- { "chuck rock (euro).bin", 0x100000, 0x7cd40bea, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_chuckrck)
-STD_ROM_FN(md_chuckrck)
-
-struct BurnDriver BurnDrvmd_chuckrck = {
- "md_chuckrck", NULL, NULL, NULL, "1992",
- "Chuck Rock (Euro)\0", NULL, "Virgin Games", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_chuckrckRomInfo, md_chuckrckRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Chuck Rock (USA)
-static struct BurnRomInfo md_chuckrckuRomDesc[] = {
- { "chuck rock (usa).bin", 0x100000, 0xf8ac454a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_chuckrcku)
-STD_ROM_FN(md_chuckrcku)
-
-struct BurnDriver BurnDrvmd_chuckrcku = {
- "md_chuckrcku", "md_chuckrck", NULL, NULL, "1992",
- "Chuck Rock (USA)\0", NULL, "Virgin Games", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_chuckrckuRomInfo, md_chuckrckuRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Chuck Rock II - Son of Chuck (Euro)
-static struct BurnRomInfo md_chukrck2RomDesc[] = {
- { "chuck rock ii - son of chuck (euro).bin", 0x100000, 0x1ade9488, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_chukrck2)
-STD_ROM_FN(md_chukrck2)
-
-struct BurnDriver BurnDrvmd_chukrck2 = {
- "md_chukrck2", NULL, NULL, NULL, "1993",
- "Chuck Rock II - Son of Chuck (Euro)\0", NULL, "Core Design", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_chukrck2RomInfo, md_chukrck2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Chuck Rock II (Jpn)
-static struct BurnRomInfo md_chukrck2jRomDesc[] = {
- { "chuck rock ii (jpn).bin", 0x100000, 0xbfd24be8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_chukrck2j)
-STD_ROM_FN(md_chukrck2j)
-
-struct BurnDriver BurnDrvmd_chukrck2j = {
- "md_chukrck2j", "md_chukrck2", NULL, NULL, "1994",
- "Chuck Rock II (Jpn)\0", NULL, "Virgin Games", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_chukrck2jRomInfo, md_chukrck2jRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Chuck Rock II - Son of Chuck (USA)
-static struct BurnRomInfo md_chukrck2uRomDesc[] = {
- { "chuck rock ii - son of chuck (usa).bin", 0x100000, 0x408b1cdb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_chukrck2u)
-STD_ROM_FN(md_chukrck2u)
-
-struct BurnDriver BurnDrvmd_chukrck2u = {
- "md_chukrck2u", "md_chukrck2", NULL, NULL, "1993",
- "Chuck Rock II - Son of Chuck (USA)\0", NULL, "Virgin Games", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_chukrck2uRomInfo, md_chukrck2uRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Chuck Rock II - Son of Chuck (USA, Prototype)
-static struct BurnRomInfo md_chukrck2upRomDesc[] = {
- { "chuck rock ii - son of chuck (usa) (beta).bin", 0x100000, 0xd6a3b324, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_chukrck2up)
-STD_ROM_FN(md_chukrck2up)
-
-struct BurnDriver BurnDrvmd_chukrck2up = {
- "md_chukrck2up", "md_chukrck2", NULL, NULL, "1993",
- "Chuck Rock II - Son of Chuck (USA, Prototype)\0", NULL, "Virgin Games", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_chukrck2upRomInfo, md_chukrck2upRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Chuck's Excellent Art Tool Animator (USA)
-static struct BurnRomInfo md_excelartRomDesc[] = {
- { "chuck's excellent art tool animator (usa) (unl).bin", 0x060000, 0x6360ee58, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_excelart)
-STD_ROM_FN(md_excelart)
-
-struct BurnDriver BurnDrvmd_excelart = {
- "md_excelart", NULL, NULL, NULL, "199?",
- "Chuck's Excellent Art Tool Animator (USA)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_excelartRomInfo, md_excelartRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Classic Collection (Euro)
-static struct BurnRomInfo md_classiccRomDesc[] = {
- { "classic collection (euro).bin", 0x200000, 0x73f948b1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_classicc)
-STD_ROM_FN(md_classicc)
-
-struct BurnDriver BurnDrvmd_classicc = {
- "md_classicc", NULL, NULL, NULL, "1994",
- "Classic Collection (Euro)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_classiccRomInfo, md_classiccRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Clay Fighter (Euro)
-static struct BurnRomInfo md_clayfghtRomDesc[] = {
- { "mpr-17510.bin", 0x200000, 0x1aaf7707, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_clayfght)
-STD_ROM_FN(md_clayfght)
-
-struct BurnDriver BurnDrvmd_clayfght = {
- "md_clayfght", NULL, NULL, NULL, "1994",
- "Clay Fighter (Euro)\0", NULL, "Interplay", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_clayfghtRomInfo, md_clayfghtRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Clay Fighter (USA)
-static struct BurnRomInfo md_clayfghtuRomDesc[] = {
- { "clay fighter (usa).bin", 0x200000, 0xb12c1bc1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_clayfghtu)
-STD_ROM_FN(md_clayfghtu)
-
-struct BurnDriver BurnDrvmd_clayfghtu = {
- "md_clayfghtu", "md_clayfght", NULL, NULL, "1994",
- "Clay Fighter (USA)\0", NULL, "Interplay", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_clayfghtuRomInfo, md_clayfghtuRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Cliffhanger (Euro)
-static struct BurnRomInfo md_cliffhRomDesc[] = {
- { "cliffhanger (euro).bin", 0x100000, 0x35bff1fd, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_cliffh)
-STD_ROM_FN(md_cliffh)
-
-struct BurnDriver BurnDrvmd_cliffh = {
- "md_cliffh", NULL, NULL, NULL, "1993",
- "Cliffhanger (Euro)\0", NULL, "Sony Imagesoft", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_cliffhRomInfo, md_cliffhRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Cliffhanger (Prototype)
-static struct BurnRomInfo md_cliffhpRomDesc[] = {
- { "cliffhanger (beta).bin", 0x100000, 0x628251fd, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_cliffhp)
-STD_ROM_FN(md_cliffhp)
-
-struct BurnDriver BurnDrvmd_cliffhp = {
- "md_cliffhp", "md_cliffh", NULL, NULL, "1993",
- "Cliffhanger (Prototype)\0", NULL, "Sony Imagesoft", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_cliffhpRomInfo, md_cliffhpRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Cliffhanger (USA)
-static struct BurnRomInfo md_cliffhuRomDesc[] = {
- { "cliffhanger (usa).bin", 0x100000, 0x9cbf44d3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_cliffhu)
-STD_ROM_FN(md_cliffhu)
-
-struct BurnDriver BurnDrvmd_cliffhu = {
- "md_cliffhu", "md_cliffh", NULL, NULL, "1993",
- "Cliffhanger (USA)\0", NULL, "Sony Imagesoft", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_cliffhuRomInfo, md_cliffhuRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Clue (USA)
-static struct BurnRomInfo md_clueRomDesc[] = {
- { "clue (usa).bin", 0x080000, 0x7753a296, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_clue)
-STD_ROM_FN(md_clue)
-
-struct BurnDriver BurnDrvmd_clue = {
- "md_clue", NULL, NULL, NULL, "1992",
- "Clue (USA)\0", NULL, "Parker Brothers", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_clueRomInfo, md_clueRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Coach K College Basketball (USA)
-static struct BurnRomInfo md_coachkRomDesc[] = {
- { "coach k college basketball (usa).bin", 0x200000, 0x67c309c6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_coachk)
-STD_ROM_FN(md_coachk)
-
-struct BurnDriver BurnDrvmd_coachk = {
- "md_coachk", NULL, NULL, NULL, "1995",
- "Coach K College Basketball (USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_coachkRomInfo, md_coachkRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// College Football USA 96 (USA)
-static struct BurnRomInfo md_colleg96RomDesc[] = {
- { "college football usa 96 (usa).bin", 0x200000, 0xb9075385, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_colleg96)
-STD_ROM_FN(md_colleg96)
-
-struct BurnDriver BurnDrvmd_colleg96 = {
- "md_colleg96", NULL, NULL, NULL, "1995",
- "College Football USA 96 (USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_colleg96RomInfo, md_colleg96RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// College Football USA 97 (USA)
-static struct BurnRomInfo md_colleg97RomDesc[] = {
- { "college football usa 97 (usa).bin", 0x200000, 0x2ebb90a3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_colleg97)
-STD_ROM_FN(md_colleg97)
-
-struct BurnDriver BurnDrvmd_colleg97 = {
- "md_colleg97", NULL, NULL, NULL, "1996",
- "College Football USA 97 (USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_colleg97RomInfo, md_colleg97RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// College Football's National Championship (USA)
-static struct BurnRomInfo md_collncRomDesc[] = {
- { "college football's national championship (usa).bin", 0x200000, 0x172c5dbb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_collnc)
-STD_ROM_FN(md_collnc)
-
-struct BurnDriver BurnDrvmd_collnc = {
- "md_collnc", NULL, NULL, NULL, "1994",
- "College Football's National Championship (USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_collncRomInfo, md_collncRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// College Football's National Championship (Prototype, 19940413)
-static struct BurnRomInfo md_collncp19RomDesc[] = {
- { "college football's national championship (prototype - apr 13, 1994).bin", 0x200000, 0xd9772def, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_collncp19)
-STD_ROM_FN(md_collncp19)
-
-struct BurnDriver BurnDrvmd_collncp19 = {
- "md_collncp19", "md_collnc", NULL, NULL, "1994",
- "College Football's National Championship (Prototype, 19940413)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_collncp19RomInfo, md_collncp19RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// College Football's National Championship (Prototype, 19940418)
-static struct BurnRomInfo md_collncp18RomDesc[] = {
- { "college football's national championship (prototype - apr 18, 1994).bin", 0x200000, 0xe0a1705f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_collncp18)
-STD_ROM_FN(md_collncp18)
-
-struct BurnDriver BurnDrvmd_collncp18 = {
- "md_collncp18", "md_collnc", NULL, NULL, "1994",
- "College Football's National Championship (Prototype, 19940418)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_collncp18RomInfo, md_collncp18RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// College Football's National Championship (Prototype, 19940419)
-static struct BurnRomInfo md_collncp17RomDesc[] = {
- { "college football's national championship (prototype - apr 19, 1994).bin", 0x200000, 0xd5fe66c3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_collncp17)
-STD_ROM_FN(md_collncp17)
-
-struct BurnDriver BurnDrvmd_collncp17 = {
- "md_collncp17", "md_collnc", NULL, NULL, "1994",
- "College Football's National Championship (Prototype, 19940419)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_collncp17RomInfo, md_collncp17RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// College Football's National Championship (Prototype, 19940429)
-static struct BurnRomInfo md_collncp16RomDesc[] = {
- { "college football's national championship (prototype - apr 29, 1994).bin", 0x200000, 0x99da1973, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_collncp16)
-STD_ROM_FN(md_collncp16)
-
-struct BurnDriver BurnDrvmd_collncp16 = {
- "md_collncp16", "md_collnc", NULL, NULL, "1994",
- "College Football's National Championship (Prototype, 19940429)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_collncp16RomInfo, md_collncp16RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// College Football's National Championship (Prototype, 19940601)
-static struct BurnRomInfo md_collncp08RomDesc[] = {
- { "college football's national championship (prototype - jun 01, 1994).bin", 0x200000, 0x994dbc8f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_collncp08)
-STD_ROM_FN(md_collncp08)
-
-struct BurnDriver BurnDrvmd_collncp08 = {
- "md_collncp08", "md_collnc", NULL, NULL, "1994",
- "College Football's National Championship (Prototype, 19940601)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_collncp08RomInfo, md_collncp08RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// College Football's National Championship (Prototype, 19940603)
-static struct BurnRomInfo md_collncp07RomDesc[] = {
- { "college football's national championship (prototype - jun 03, 1994).bin", 0x200000, 0x9ca29321, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_collncp07)
-STD_ROM_FN(md_collncp07)
-
-struct BurnDriver BurnDrvmd_collncp07 = {
- "md_collncp07", "md_collnc", NULL, NULL, "1994",
- "College Football's National Championship (Prototype, 19940603)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_collncp07RomInfo, md_collncp07RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// College Football's National Championship (Prototype, 19940607)
-static struct BurnRomInfo md_collncp06RomDesc[] = {
- { "college football's national championship (prototype - jun 07, 1994).bin", 0x200000, 0xb40b791e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_collncp06)
-STD_ROM_FN(md_collncp06)
-
-struct BurnDriver BurnDrvmd_collncp06 = {
- "md_collncp06", "md_collnc", NULL, NULL, "1994",
- "College Football's National Championship (Prototype, 19940607)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_collncp06RomInfo, md_collncp06RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// College Football's National Championship (Prototype, 19940608)
-static struct BurnRomInfo md_collncp05RomDesc[] = {
- { "college football's national championship (prototype - jun 08, 1994).bin", 0x200000, 0xd008debc, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_collncp05)
-STD_ROM_FN(md_collncp05)
-
-struct BurnDriver BurnDrvmd_collncp05 = {
- "md_collncp05", "md_collnc", NULL, NULL, "1994",
- "College Football's National Championship (Prototype, 19940608)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_collncp05RomInfo, md_collncp05RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// College Football's National Championship (Prototype, 19940614)
-static struct BurnRomInfo md_collncp04RomDesc[] = {
- { "college football's national championship (prototype - jun 14, 1994).bin", 0x200000, 0xecef7de7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_collncp04)
-STD_ROM_FN(md_collncp04)
-
-struct BurnDriver BurnDrvmd_collncp04 = {
- "md_collncp04", "md_collnc", NULL, NULL, "1994",
- "College Football's National Championship (Prototype, 19940614)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_collncp04RomInfo, md_collncp04RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// College Football's National Championship (Prototype, 19940615)
-static struct BurnRomInfo md_collncp03RomDesc[] = {
- { "college football's national championship (prototype - jun 15, 1994).bin", 0x200000, 0xc7e5a998, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_collncp03)
-STD_ROM_FN(md_collncp03)
-
-struct BurnDriver BurnDrvmd_collncp03 = {
- "md_collncp03", "md_collnc", NULL, NULL, "1994",
- "College Football's National Championship (Prototype, 19940615)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_collncp03RomInfo, md_collncp03RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// College Football's National Championship (Prototype, 19940618)
-static struct BurnRomInfo md_collncp02RomDesc[] = {
- { "college football's national championship (prototype - jun 18, 1994).bin", 0x200000, 0x74988a9d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_collncp02)
-STD_ROM_FN(md_collncp02)
-
-struct BurnDriver BurnDrvmd_collncp02 = {
- "md_collncp02", "md_collnc", NULL, NULL, "1994",
- "College Football's National Championship (Prototype, 19940618)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_collncp02RomInfo, md_collncp02RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// College Football's National Championship (Prototype, 19940620)
-static struct BurnRomInfo md_collncp01RomDesc[] = {
- { "college football's national championship (prototype - jun 20, 1994).bin", 0x200000, 0x898c17fa, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_collncp01)
-STD_ROM_FN(md_collncp01)
-
-struct BurnDriver BurnDrvmd_collncp01 = {
- "md_collncp01", "md_collnc", NULL, NULL, "1994",
- "College Football's National Championship (Prototype, 19940620)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_collncp01RomInfo, md_collncp01RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// College Football's National Championship (Prototype, 19940503)
-static struct BurnRomInfo md_collncp15RomDesc[] = {
- { "college football's national championship (prototype - may 03, 1994).bin", 0x200000, 0xdb1a3f66, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_collncp15)
-STD_ROM_FN(md_collncp15)
-
-struct BurnDriver BurnDrvmd_collncp15 = {
- "md_collncp15", "md_collnc", NULL, NULL, "1994",
- "College Football's National Championship (Prototype, 19940503)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_collncp15RomInfo, md_collncp15RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// College Football's National Championship (Prototype, 19940506)
-static struct BurnRomInfo md_collncp14RomDesc[] = {
- { "college football's national championship (prototype - may 06, 1994).bin", 0x200000, 0x0a538e75, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_collncp14)
-STD_ROM_FN(md_collncp14)
-
-struct BurnDriver BurnDrvmd_collncp14 = {
- "md_collncp14", "md_collnc", NULL, NULL, "1994",
- "College Football's National Championship (Prototype, 19940506)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_collncp14RomInfo, md_collncp14RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// College Football's National Championship (Prototype, 19940511-A)
-static struct BurnRomInfo md_collncp13RomDesc[] = {
- { "college football's national championship (prototype - may 11, 1994 - a).bin", 0x200000, 0xce65b294, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_collncp13)
-STD_ROM_FN(md_collncp13)
-
-struct BurnDriver BurnDrvmd_collncp13 = {
- "md_collncp13", "md_collnc", NULL, NULL, "1994",
- "College Football's National Championship (Prototype, 19940511-A)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_collncp13RomInfo, md_collncp13RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// College Football's National Championship (Prototype, 19940517-A)
-static struct BurnRomInfo md_collncp12RomDesc[] = {
- { "college football's national championship (prototype - may 17, 1994 - a).bin", 0x200000, 0x8cfd4c86, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_collncp12)
-STD_ROM_FN(md_collncp12)
-
-struct BurnDriver BurnDrvmd_collncp12 = {
- "md_collncp12", "md_collnc", NULL, NULL, "1994",
- "College Football's National Championship (Prototype, 19940517-A)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_collncp12RomInfo, md_collncp12RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// College Football's National Championship (Prototype, 19940520)
-static struct BurnRomInfo md_collncp11RomDesc[] = {
- { "college football's national championship (prototype - may 20, 1994).bin", 0x200000, 0xf285385e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_collncp11)
-STD_ROM_FN(md_collncp11)
-
-struct BurnDriver BurnDrvmd_collncp11 = {
- "md_collncp11", "md_collnc", NULL, NULL, "1994",
- "College Football's National Championship (Prototype, 19940520)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_collncp11RomInfo, md_collncp11RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// College Football's National Championship (Prototype, 19940525)
-static struct BurnRomInfo md_collncp10RomDesc[] = {
- { "college football's national championship (prototype - may 25, 1994).bin", 0x200000, 0x482e334a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_collncp10)
-STD_ROM_FN(md_collncp10)
-
-struct BurnDriver BurnDrvmd_collncp10 = {
- "md_collncp10", "md_collnc", NULL, NULL, "1994",
- "College Football's National Championship (Prototype, 19940525)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_collncp10RomInfo, md_collncp10RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// College Football's National Championship (Prototype, 19940531)
-static struct BurnRomInfo md_collncp09RomDesc[] = {
- { "college football's national championship (prototype - may 31, 1994).bin", 0x200000, 0xc6766745, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_collncp09)
-STD_ROM_FN(md_collncp09)
-
-struct BurnDriver BurnDrvmd_collncp09 = {
- "md_collncp09", "md_collnc", NULL, NULL, "1994",
- "College Football's National Championship (Prototype, 19940531)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_collncp09RomInfo, md_collncp09RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// College Football's National Championship II (USA)
-static struct BurnRomInfo md_collnc2RomDesc[] = {
- { "college football's national championship ii (usa).bin", 0x200000, 0x65b64413, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_collnc2)
-STD_ROM_FN(md_collnc2)
-
-struct BurnDriver BurnDrvmd_collnc2 = {
- "md_collnc2", NULL, NULL, NULL, "1995",
- "College Football's National Championship II (USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_collnc2RomInfo, md_collnc2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// College Slam (USA)
-static struct BurnRomInfo md_collslamRomDesc[] = {
- { "college slam (usa).bin", 0x400000, 0x96a42431, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_collslam)
-STD_ROM_FN(md_collslam)
-
-struct BurnDriver BurnDrvmd_collslam = {
- "md_collslam", NULL, NULL, NULL, "1996",
- "College Slam (USA)\0", NULL, "Acclaim Entertainment", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_C_SLAM, GBF_MISC, 0,
- MegadriveGetZipName, md_collslamRomInfo, md_collslamRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Columns (World, v1.1)
-static struct BurnRomInfo md_columnsRomDesc[] = {
- { "columns (world) (v1.1).bin", 0x020000, 0xd783c244, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_columns)
-STD_ROM_FN(md_columns)
-
-struct BurnDriver BurnDrvmd_columns = {
- "md_columns", NULL, NULL, NULL, "1990",
- "Columns (World, v1.1)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_columnsRomInfo, md_columnsRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Columns (World)
-static struct BurnRomInfo md_columns1RomDesc[] = {
- { "mpr-13193.bin", 0x020000, 0x03163d7a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_columns1)
-STD_ROM_FN(md_columns1)
-
-struct BurnDriver BurnDrvmd_columns1 = {
- "md_columns1", "md_columns", NULL, NULL, "1990",
- "Columns (World)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_columns1RomInfo, md_columns1RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Columns III - Revenge of Columns (USA)
-static struct BurnRomInfo md_columns3RomDesc[] = {
- { "columns iii - revenge of columns (usa).bin", 0x080000, 0xdc678f6d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_columns3)
-STD_ROM_FN(md_columns3)
-
-struct BurnDriver BurnDrvmd_columns3 = {
- "md_columns3", NULL, NULL, NULL, "1993",
- "Columns III - Revenge of Columns (USA)\0", NULL, "Vic Tokai", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_columns3RomInfo, md_columns3RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Columns III - Taiketsu! Columns World (Jpn, Kor)
-static struct BurnRomInfo md_columns3jRomDesc[] = {
- { "columns iii - taiketsu! columns world (jpn, kor).bin", 0x080000, 0xcd07462f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_columns3j)
-STD_ROM_FN(md_columns3j)
-
-struct BurnDriver BurnDrvmd_columns3j = {
- "md_columns3j", "md_columns3", NULL, NULL, "1993",
- "Columns III - Taiketsu! Columns World (Jpn, Kor)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_columns3jRomInfo, md_columns3jRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Combat Aces (Prototype)
-static struct BurnRomInfo md_combatRomDesc[] = {
- { "combat aces (beta).bin", 0x080000, 0x84560d5a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_combat)
-STD_ROM_FN(md_combat)
-
-struct BurnDriver BurnDrvmd_combat = {
- "md_combat", NULL, NULL, NULL, "199?",
- "Combat Aces (Prototype)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_combatRomInfo, md_combatRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Combat Cars (Euro, USA)
-static struct BurnRomInfo md_combatcaRomDesc[] = {
- { "combat cars (euro, usa).bin", 0x100000, 0xe439b101, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_combatca)
-STD_ROM_FN(md_combatca)
-
-struct BurnDriver BurnDrvmd_combatca = {
- "md_combatca", NULL, NULL, NULL, "1994",
- "Combat Cars (Euro, USA)\0", NULL, "Accolade", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_combatcaRomInfo, md_combatcaRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Comix Zone (Euro)
-static struct BurnRomInfo md_comixRomDesc[] = {
- { "mpr-18301.bin", 0x200000, 0x1318e923, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_comix)
-STD_ROM_FN(md_comix)
-
-struct BurnDriver BurnDrvmd_comix = {
- "md_comix", NULL, NULL, NULL, "1995",
- "Comix Zone (Euro)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_comixRomInfo, md_comixRomName, NULL, NULL, MegadriveInputInfo, MegadrivePALDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Comix Zone (Euro, Prototype, 19950628)
-static struct BurnRomInfo md_comixpRomDesc[] = {
- { "comix zone (euro) (prototype - jun 28, 1995).bin", 0x200000, 0x939efd4c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_comixp)
-STD_ROM_FN(md_comixp)
-
-struct BurnDriver BurnDrvmd_comixp = {
- "md_comixp", "md_comix", NULL, NULL, "1995",
- "Comix Zone (Euro, Prototype, 19950628)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_comixpRomInfo, md_comixpRomName, NULL, NULL, MegadriveInputInfo, MegadrivePALDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Comix Zone (Jpn)
-static struct BurnRomInfo md_comixjRomDesc[] = {
- { "comix zone (jpn).bin", 0x200000, 0x7a6027b8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_comixj)
-STD_ROM_FN(md_comixj)
-
-struct BurnDriver BurnDrvmd_comixj = {
- "md_comixj", "md_comix", NULL, NULL, "1995",
- "Comix Zone (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_comixjRomInfo, md_comixjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Comix Zone (Euro, Prototype, 19950712)
-static struct BurnRomInfo md_comixup01RomDesc[] = {
- { "comix zone (prototype - jul 12, 1995).bin", 0x200000, 0xe28c89c1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_comixup01)
-STD_ROM_FN(md_comixup01)
-
-struct BurnDriver BurnDrvmd_comixup01 = {
- "md_comixup01", "md_comix", NULL, NULL, "1995",
- "Comix Zone (Euro, Prototype, 19950712)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_comixup01RomInfo, md_comixup01RomName, NULL, NULL, MegadriveInputInfo, MegadrivePALDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Comix Zone (USA, Prototype, 19950601-B)
-static struct BurnRomInfo md_comixup08RomDesc[] = {
- { "comix zone (prototype - jun 01, 1995 - b).bin", 0x200000, 0xbbe03cb6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_comixup08)
-STD_ROM_FN(md_comixup08)
-
-struct BurnDriver BurnDrvmd_comixup08 = {
- "md_comixup08", "md_comix", NULL, NULL, "1995",
- "Comix Zone (USA, Prototype, 19950601-B)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_comixup08RomInfo, md_comixup08RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Comix Zone (USA, Prototype, 19950601-C)
-static struct BurnRomInfo md_comixup07RomDesc[] = {
- { "comix zone (prototype - jun 01, 1995 - c).bin", 0x200000, 0x413b9a94, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_comixup07)
-STD_ROM_FN(md_comixup07)
-
-struct BurnDriver BurnDrvmd_comixup07 = {
- "md_comixup07", "md_comix", NULL, NULL, "1995",
- "Comix Zone (USA, Prototype, 19950601-C)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_comixup07RomInfo, md_comixup07RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Comix Zone (USA, Prototype, 19950601-D)
-static struct BurnRomInfo md_comixup06RomDesc[] = {
- { "comix zone (prototype - jun 01, 1995 - d).bin", 0x200000, 0x9ae93c9d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_comixup06)
-STD_ROM_FN(md_comixup06)
-
-struct BurnDriver BurnDrvmd_comixup06 = {
- "md_comixup06", "md_comix", NULL, NULL, "1995",
- "Comix Zone (USA, Prototype, 19950601-D)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_comixup06RomInfo, md_comixup06RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Comix Zone (USA, Prototype, 19950601)
-static struct BurnRomInfo md_comixup05RomDesc[] = {
- { "comix zone (prototype - jun 01, 1995).bin", 0x200000, 0xba506835, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_comixup05)
-STD_ROM_FN(md_comixup05)
-
-struct BurnDriver BurnDrvmd_comixup05 = {
- "md_comixup05", "md_comix", NULL, NULL, "1995",
- "Comix Zone (USA, Prototype, 19950601)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_comixup05RomInfo, md_comixup05RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Comix Zone (USA, Prototype, 19950602-B)
-static struct BurnRomInfo md_comixup04RomDesc[] = {
- { "comix zone (prototype - jun 02, 1995 - b).bin", 0x200000, 0xb5f0dae5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_comixup04)
-STD_ROM_FN(md_comixup04)
-
-struct BurnDriver BurnDrvmd_comixup04 = {
- "md_comixup04", "md_comix", NULL, NULL, "1995",
- "Comix Zone (USA, Prototype, 19950602-B)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_comixup04RomInfo, md_comixup04RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Comix Zone (USA, Prototype, 19950602)
-static struct BurnRomInfo md_comixup03RomDesc[] = {
- { "comix zone (prototype - jun 02, 1995).bin", 0x200000, 0x1a4abcf3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_comixup03)
-STD_ROM_FN(md_comixup03)
-
-struct BurnDriver BurnDrvmd_comixup03 = {
- "md_comixup03", "md_comix", NULL, NULL, "1995",
- "Comix Zone (USA, Prototype, 19950602)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_comixup03RomInfo, md_comixup03RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Comix Zone (USA, Prototype, 19950603)
-static struct BurnRomInfo md_comixup02RomDesc[] = {
- { "comix zone (prototype - jun 03, 1995).bin", 0x200000, 0xaff32614, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_comixup02)
-STD_ROM_FN(md_comixup02)
-
-struct BurnDriver BurnDrvmd_comixup02 = {
- "md_comixup02", "md_comix", NULL, NULL, "1995",
- "Comix Zone (USA, Prototype, 19950603)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_comixup02RomInfo, md_comixup02RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Comix Zone (Prototype, 19950526)
-static struct BurnRomInfo md_comixup10RomDesc[] = {
- { "comix zone (prototype - may 26, 1995).bin", 0x200000, 0x36029a1f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_comixup10)
-STD_ROM_FN(md_comixup10)
-
-struct BurnDriver BurnDrvmd_comixup10 = {
- "md_comixup10", "md_comix", NULL, NULL, "1995",
- "Comix Zone (Prototype, 19950526)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_comixup10RomInfo, md_comixup10RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Comix Zone (Prototype, 19950530)
-static struct BurnRomInfo md_comixup09RomDesc[] = {
- { "comix zone (prototype - may 30, 1995).bin", 0x200000, 0xa72eca2c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_comixup09)
-STD_ROM_FN(md_comixup09)
-
-struct BurnDriver BurnDrvmd_comixup09 = {
- "md_comixup09", "md_comix", NULL, NULL, "1995",
- "Comix Zone (Prototype, 19950530)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_comixup09RomInfo, md_comixup09RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Comix Zone (Kor, Prototype, 19950609)
-static struct BurnRomInfo md_comixkpRomDesc[] = {
- { "comix zone (kor) (prototype - jun 09, 1995).bin", 0x200000, 0xe45a15f4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_comixkp)
-STD_ROM_FN(md_comixkp)
-
-struct BurnDriver BurnDrvmd_comixkp = {
- "md_comixkp", "md_comix", NULL, NULL, "1995",
- "Comix Zone (Kor, Prototype, 19950609)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_comixkpRomInfo, md_comixkpRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Comix Zone (Sega Channel, Prototype, 19950612)
-static struct BurnRomInfo md_comixscRomDesc[] = {
- { "comix zone (sega channel) (prototype - jun 12, 1995).bin", 0x200000, 0xc77db9e1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_comixsc)
-STD_ROM_FN(md_comixsc)
-
-struct BurnDriver BurnDrvmd_comixsc = {
- "md_comixsc", "md_comix", NULL, NULL, "1995",
- "Comix Zone (Sega Channel, Prototype, 19950612)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_comixscRomInfo, md_comixscRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Comix Zone (USA)
-static struct BurnRomInfo md_comixuRomDesc[] = {
- { "comix zone (usa).bin", 0x200000, 0x17da0354, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_comixu)
-STD_ROM_FN(md_comixu)
-
-struct BurnDriver BurnDrvmd_comixu = {
- "md_comixu", "md_comix", NULL, NULL, "1995",
- "Comix Zone (USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_comixuRomInfo, md_comixuRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Comix Zone (USA, Prototype)
-static struct BurnRomInfo md_comixupRomDesc[] = {
- { "comix zone (usa) (beta).bin", 0x200000, 0x2efcb6ee, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_comixup)
-STD_ROM_FN(md_comixup)
-
-struct BurnDriver BurnDrvmd_comixup = {
- "md_comixup", "md_comix", NULL, NULL, "1995",
- "Comix Zone (USA, Prototype)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_comixupRomInfo, md_comixupRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Congo (Prototype)
-static struct BurnRomInfo md_congoRomDesc[] = {
- { "congo (unknown) (prototype).bin", 0x0f7d36, 0x13746716, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_congo)
-STD_ROM_FN(md_congo)
-
-struct BurnDriver BurnDrvmd_congo = {
- "md_congo", NULL, NULL, NULL, "199?",
- "Congo (Prototype)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_congoRomInfo, md_congoRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Cool Spot (Euro)
-static struct BurnRomInfo md_coolspotRomDesc[] = {
- { "mpr-15477.bin", 0x100000, 0x5f09fa41, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_coolspot)
-STD_ROM_FN(md_coolspot)
-
-struct BurnDriver BurnDrvmd_coolspot = {
- "md_coolspot", NULL, NULL, NULL, "1994",
- "Cool Spot (Euro)\0", NULL, "Virgin Games", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_coolspotRomInfo, md_coolspotRomName, NULL, NULL, MegadriveInputInfo, MegadrivePALDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Cool Spot (Jpn, Kor)
-static struct BurnRomInfo md_coolspotjRomDesc[] = {
- { "cool spot (jpn, kor).bin", 0x100000, 0xe869efb1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_coolspotj)
-STD_ROM_FN(md_coolspotj)
-
-struct BurnDriver BurnDrvmd_coolspotj = {
- "md_coolspotj", "md_coolspot", NULL, NULL, "1994",
- "Cool Spot (Jpn, Kor)\0", NULL, "Virgin Games", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_coolspotjRomInfo, md_coolspotjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Cool Spot (USA)
-static struct BurnRomInfo md_coolspotuRomDesc[] = {
- { "cool spot (usa).bin", 0x100000, 0xf024c1a1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_coolspotu)
-STD_ROM_FN(md_coolspotu)
-
-struct BurnDriver BurnDrvmd_coolspotu = {
- "md_coolspotu", "md_coolspot", NULL, NULL, "1994",
- "Cool Spot (USA)\0", NULL, "Virgin Games", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_coolspotuRomInfo, md_coolspotuRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Cool Spot (USA, Prototype)
-static struct BurnRomInfo md_coolspotupRomDesc[] = {
- { "cool spot (usa) (beta).bin", 0x100000, 0x0ebaa4a8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_coolspotup)
-STD_ROM_FN(md_coolspotup)
-
-struct BurnDriver BurnDrvmd_coolspotup = {
- "md_coolspotup", "md_coolspot", NULL, NULL, "1994",
- "Cool Spot (USA, Prototype)\0", NULL, "Virgin Games", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_coolspotupRomInfo, md_coolspotupRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Corporation (Euro)
-static struct BurnRomInfo md_corporatRomDesc[] = {
- { "mpr-15065.bin", 0x100000, 0xa80d18aa, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_corporat)
-STD_ROM_FN(md_corporat)
-
-struct BurnDriver BurnDrvmd_corporat = {
- "md_corporat", NULL, NULL, NULL, "1992",
- "Corporation (Euro)\0", NULL, "Virgin Games", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_corporatRomInfo, md_corporatRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Cyber-Cop (USA)
-static struct BurnRomInfo md_cybercopRomDesc[] = {
- { "cyber-cop (usa).bin", 0x100000, 0x01e719c8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_cybercop)
-STD_ROM_FN(md_cybercop)
-
-struct BurnDriver BurnDrvmd_cybercop = {
- "md_cybercop", "md_corporat", NULL, NULL, "1992",
- "Cyber-Cop (USA)\0", NULL, "Virgin Games", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_cybercopRomInfo, md_cybercopRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Cosmic Spacehead (Euro, USA)
-static struct BurnRomInfo md_cosmicRomDesc[] = {
- { "cosmic spacehead (euro, usa).bin", 0x100000, 0xc593d31c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_cosmic)
-STD_ROM_FN(md_cosmic)
-
-struct BurnDriver BurnDrvmd_cosmic = {
- "md_cosmic", NULL, NULL, NULL, "1993",
- "Cosmic Spacehead (Euro, USA)\0", NULL, "Codemasters", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_cosmicRomInfo, md_cosmicRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Crack Down (Euro, Jpn, Rev. A)
-static struct BurnRomInfo md_crkdownRomDesc[] = {
- { "mpr-13578a.bin", 0x080000, 0xd012a47a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_crkdown)
-STD_ROM_FN(md_crkdown)
-
-struct BurnDriver BurnDrvmd_crkdown = {
- "md_crkdown", NULL, NULL, NULL, "1990",
- "Crack Down (Euro, Jpn, Rev. A)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_crkdownRomInfo, md_crkdownRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Crack Down (Euro, Jpn)
-static struct BurnRomInfo md_crkdown1RomDesc[] = {
- { "crack down (euro, jpn).bin", 0x080000, 0x538aaa5d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_crkdown1)
-STD_ROM_FN(md_crkdown1)
-
-struct BurnDriver BurnDrvmd_crkdown1 = {
- "md_crkdown1", "md_crkdown", NULL, NULL, "1990",
- "Crack Down (Euro, Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_crkdown1RomInfo, md_crkdown1RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Crack Down (USA)
-static struct BurnRomInfo md_crkdownuRomDesc[] = {
- { "crack down (usa).bin", 0x080000, 0xb9ce9051, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_crkdownu)
-STD_ROM_FN(md_crkdownu)
-
-struct BurnDriver BurnDrvmd_crkdownu = {
- "md_crkdownu", "md_crkdown", NULL, NULL, "1991",
- "Crack Down (USA)\0", NULL, "Sage's Creation", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_crkdownuRomInfo, md_crkdownuRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Crayon Shin-chan - Arashi o Yobu Enji (Jpn)
-static struct BurnRomInfo md_crayonRomDesc[] = {
- { "crayon shin-chan - arashi o yobu enji (jpn).bin", 0x200000, 0x97fc42d2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_crayon)
-STD_ROM_FN(md_crayon)
-
-struct BurnDriver BurnDrvmd_crayon = {
- "md_crayon", NULL, NULL, NULL, "1994",
- "Crayon Shin-chan - Arashi o Yobu Enji (Jpn)\0", NULL, "Ma-Ba", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_crayonRomInfo, md_crayonRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Cross Fire (USA)
-static struct BurnRomInfo md_xfireRomDesc[] = {
- { "cross fire (usa).bin", 0x080000, 0xcc73f3a9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_xfire)
-STD_ROM_FN(md_xfire)
-
-struct BurnDriver BurnDrvmd_xfire = {
- "md_xfire", NULL, NULL, NULL, "1991",
- "Cross Fire (USA)\0", NULL, "Kyugo Boueki", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_xfireRomInfo, md_xfireRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Super Airwolf (Jpn)
-static struct BurnRomInfo md_superairRomDesc[] = {
- { "mpr-13814.bin", 0x080000, 0xfa451982, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_superair)
-STD_ROM_FN(md_superair)
-
-struct BurnDriver BurnDrvmd_superair = {
- "md_superair", "md_xfire", NULL, NULL, "1991",
- "Super Airwolf (Jpn)\0", NULL, "Kyugo Boueki", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_superairRomInfo, md_superairRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Crue Ball (Euro, USA)
-static struct BurnRomInfo md_crueballRomDesc[] = {
- { "crue06.bin", 0x080000, 0x4b195fc0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_crueball)
-STD_ROM_FN(md_crueball)
-
-struct BurnDriver BurnDrvmd_crueball = {
- "md_crueball", NULL, NULL, NULL, "1992",
- "Crue Ball (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_crueballRomInfo, md_crueballRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Crue Ball (Jpn)
-static struct BurnRomInfo md_crueballjRomDesc[] = {
- { "crue ball (jpn).bin", 0x080000, 0x514c53e2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_crueballj)
-STD_ROM_FN(md_crueballj)
-
-struct BurnDriver BurnDrvmd_crueballj = {
- "md_crueballj", "md_crueball", NULL, NULL, "1993",
- "Crue Ball (Jpn)\0", NULL, "Electronic Arts Victor", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_crueballjRomInfo, md_crueballjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Twisted Flipper (USA, Prototype)
-static struct BurnRomInfo md_twistedfRomDesc[] = {
- { "twisted flipper (usa) (beta).bin", 0x080000, 0x6dd47554, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_twistedf)
-STD_ROM_FN(md_twistedf)
-
-struct BurnDriver BurnDrvmd_twistedf = {
- "md_twistedf", "md_crueball", NULL, NULL, "199?",
- "Twisted Flipper (USA, Prototype)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_twistedfRomInfo, md_twistedfRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Crystal's Pony Tale (USA)
-static struct BurnRomInfo md_crystlptRomDesc[] = {
- { "crystal's pony tale (usa).bin", 0x100000, 0x6cf7a4df, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_crystlpt)
-STD_ROM_FN(md_crystlpt)
-
-struct BurnDriver BurnDrvmd_crystlpt = {
- "md_crystlpt", NULL, NULL, NULL, "1994",
- "Crystal's Pony Tale (USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_crystlptRomInfo, md_crystlptRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Crystal's Pony Tale (USA, Prototype, 19940701)
-static struct BurnRomInfo md_crystlptp06RomDesc[] = {
- { "crystal's pony tale (prototype - jul 01, 1994).bin", 0x100000, 0x16ac2e4f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_crystlptp06)
-STD_ROM_FN(md_crystlptp06)
-
-struct BurnDriver BurnDrvmd_crystlptp06 = {
- "md_crystlptp06", "md_crystlpt", NULL, NULL, "1994",
- "Crystal's Pony Tale (USA, Prototype, 19940701)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_crystlptp06RomInfo, md_crystlptp06RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Crystal's Pony Tale (USA, Prototype, 19940702)
-static struct BurnRomInfo md_crystlptp05RomDesc[] = {
- { "crystal's pony tale (prototype - jul 02, 1994).bin", 0x100000, 0x24bc4354, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_crystlptp05)
-STD_ROM_FN(md_crystlptp05)
-
-struct BurnDriver BurnDrvmd_crystlptp05 = {
- "md_crystlptp05", "md_crystlpt", NULL, NULL, "1994",
- "Crystal's Pony Tale (USA, Prototype, 19940702)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_crystlptp05RomInfo, md_crystlptp05RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Crystal's Pony Tale (USA, Prototype, 19940703)
-static struct BurnRomInfo md_crystlptp04RomDesc[] = {
- { "crystal's pony tale (prototype - jul 03, 1994).bin", 0x100000, 0x6d67a87c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_crystlptp04)
-STD_ROM_FN(md_crystlptp04)
-
-struct BurnDriver BurnDrvmd_crystlptp04 = {
- "md_crystlptp04", "md_crystlpt", NULL, NULL, "1994",
- "Crystal's Pony Tale (USA, Prototype, 19940703)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_crystlptp04RomInfo, md_crystlptp04RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Crystal's Pony Tale (USA, Prototype, 19940712-B)
-static struct BurnRomInfo md_crystlptp03RomDesc[] = {
- { "crystal's pony tale (prototype - jul 12, 1994 - b).bin", 0x100000, 0x3577dc72, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_crystlptp03)
-STD_ROM_FN(md_crystlptp03)
-
-struct BurnDriver BurnDrvmd_crystlptp03 = {
- "md_crystlptp03", "md_crystlpt", NULL, NULL, "1994",
- "Crystal's Pony Tale (USA, Prototype, 19940712-B)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_crystlptp03RomInfo, md_crystlptp03RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Crystal's Pony Tale (USA, Prototype, 19940712)
-static struct BurnRomInfo md_crystlptp02RomDesc[] = {
- { "crystal's pony tale (prototype - jul 12, 1994).bin", 0x0ff554, 0x2bfc0a53, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_crystlptp02)
-STD_ROM_FN(md_crystlptp02)
-
-struct BurnDriver BurnDrvmd_crystlptp02 = {
- "md_crystlptp02", "md_crystlpt", NULL, NULL, "1994",
- "Crystal's Pony Tale (USA, Prototype, 19940712)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_crystlptp02RomInfo, md_crystlptp02RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Crystal's Pony Tale (USA, Prototype, 19940713)
-static struct BurnRomInfo md_crystlptp01RomDesc[] = {
- { "crystal's pony tale (prototype - jul 13, 1994).bin", 0x100000, 0xc67b6dba, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_crystlptp01)
-STD_ROM_FN(md_crystlptp01)
-
-struct BurnDriver BurnDrvmd_crystlptp01 = {
- "md_crystlptp01", "md_crystlpt", NULL, NULL, "1994",
- "Crystal's Pony Tale (USA, Prototype, 19940713)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_crystlptp01RomInfo, md_crystlptp01RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Crystal's Pony Tale (USA, Prototype, 19940601)
-static struct BurnRomInfo md_crystlptp12RomDesc[] = {
- { "crystal's pony tale (prototype - jun 01, 1994).bin", 0x100000, 0x14c6347c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_crystlptp12)
-STD_ROM_FN(md_crystlptp12)
-
-struct BurnDriver BurnDrvmd_crystlptp12 = {
- "md_crystlptp12", "md_crystlpt", NULL, NULL, "1994",
- "Crystal's Pony Tale (USA, Prototype, 19940601)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_crystlptp12RomInfo, md_crystlptp12RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Crystal's Pony Tale (USA, Prototype, 19940606)
-static struct BurnRomInfo md_crystlptp11RomDesc[] = {
- { "crystal's pony tale (prototype - jun 06, 1994).bin", 0x100000, 0x83e8cac9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_crystlptp11)
-STD_ROM_FN(md_crystlptp11)
-
-struct BurnDriver BurnDrvmd_crystlptp11 = {
- "md_crystlptp11", "md_crystlpt", NULL, NULL, "1994",
- "Crystal's Pony Tale (USA, Prototype, 19940606)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_crystlptp11RomInfo, md_crystlptp11RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Crystal's Pony Tale (USA, Prototype, 19940610)
-static struct BurnRomInfo md_crystlptp10RomDesc[] = {
- { "crystal's pony tale (prototype - jun 10, 1994).bin", 0x100000, 0x9e1dd267, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_crystlptp10)
-STD_ROM_FN(md_crystlptp10)
-
-struct BurnDriver BurnDrvmd_crystlptp10 = {
- "md_crystlptp10", "md_crystlpt", NULL, NULL, "1994",
- "Crystal's Pony Tale (USA, Prototype, 19940610)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_crystlptp10RomInfo, md_crystlptp10RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Crystal's Pony Tale (USA, Prototype, 19940623)
-static struct BurnRomInfo md_crystlptp09RomDesc[] = {
- { "crystal's pony tale (prototype - jun 23, 1994).bin", 0x100000, 0x4ccc19af, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_crystlptp09)
-STD_ROM_FN(md_crystlptp09)
-
-struct BurnDriver BurnDrvmd_crystlptp09 = {
- "md_crystlptp09", "md_crystlpt", NULL, NULL, "1994",
- "Crystal's Pony Tale (USA, Prototype, 19940623)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_crystlptp09RomInfo, md_crystlptp09RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Crystal's Pony Tale (USA, Prototype, 19940628)
-static struct BurnRomInfo md_crystlptp08RomDesc[] = {
- { "crystal's pony tale (prototype - jun 28, 1994).bin", 0x100000, 0x03be7f66, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_crystlptp08)
-STD_ROM_FN(md_crystlptp08)
-
-struct BurnDriver BurnDrvmd_crystlptp08 = {
- "md_crystlptp08", "md_crystlpt", NULL, NULL, "1994",
- "Crystal's Pony Tale (USA, Prototype, 19940628)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_crystlptp08RomInfo, md_crystlptp08RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Crystal's Pony Tale (USA, Prototype, 19940630)
-static struct BurnRomInfo md_crystlptp07RomDesc[] = {
- { "crystal's pony tale (prototype - jun 30, 1994).bin", 0x100000, 0xdd8c73fb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_crystlptp07)
-STD_ROM_FN(md_crystlptp07)
-
-struct BurnDriver BurnDrvmd_crystlptp07 = {
- "md_crystlptp07", "md_crystlpt", NULL, NULL, "1994",
- "Crystal's Pony Tale (USA, Prototype, 19940630)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_crystlptp07RomInfo, md_crystlptp07RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Crystal's Pony Tale (USA, Prototype, 19940511)
-static struct BurnRomInfo md_crystlptp15RomDesc[] = {
- { "crystal's pony tale (prototype - may 11, 1994).bin", 0x100000, 0xeac9d74b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_crystlptp15)
-STD_ROM_FN(md_crystlptp15)
-
-struct BurnDriver BurnDrvmd_crystlptp15 = {
- "md_crystlptp15", "md_crystlpt", NULL, NULL, "1994",
- "Crystal's Pony Tale (USA, Prototype, 19940511)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_crystlptp15RomInfo, md_crystlptp15RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Crystal's Pony Tale (USA, Prototype, 19940519)
-static struct BurnRomInfo md_crystlptp14RomDesc[] = {
- { "crystal's pony tale (prototype - may 19, 1994).bin", 0x100000, 0xdc50b741, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_crystlptp14)
-STD_ROM_FN(md_crystlptp14)
-
-struct BurnDriver BurnDrvmd_crystlptp14 = {
- "md_crystlptp14", "md_crystlpt", NULL, NULL, "1994",
- "Crystal's Pony Tale (USA, Prototype, 19940519)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_crystlptp14RomInfo, md_crystlptp14RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Crystal's Pony Tale (USA, Prototype, 19940526)
-static struct BurnRomInfo md_crystlptp13RomDesc[] = {
- { "crystal's pony tale (prototype - may 26, 1994).bin", 0x100000, 0xa2eaba55, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_crystlptp13)
-STD_ROM_FN(md_crystlptp13)
-
-struct BurnDriver BurnDrvmd_crystlptp13 = {
- "md_crystlptp13", "md_crystlpt", NULL, NULL, "1994",
- "Crystal's Pony Tale (USA, Prototype, 19940526)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_crystlptp13RomInfo, md_crystlptp13RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Curse (Jpn)
-static struct BurnRomInfo md_curseRomDesc[] = {
- { "curse (jpn).bin", 0x080000, 0xa4fbf9a9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_curse)
-STD_ROM_FN(md_curse)
-
-struct BurnDriver BurnDrvmd_curse = {
- "md_curse", NULL, NULL, NULL, "1989",
- "Curse (Jpn)\0", NULL, "Micronet", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_curseRomInfo, md_curseRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Cutie Suzuki no Ringside Angel (Jpn)
-static struct BurnRomInfo md_cutiesuzRomDesc[] = {
- { "cutie suzuki no ringside angel (jpn).bin", 0x080000, 0x13795dca, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_cutiesuz)
-STD_ROM_FN(md_cutiesuz)
-
-struct BurnDriver BurnDrvmd_cutiesuz = {
- "md_cutiesuz", NULL, NULL, NULL, "1990",
- "Cutie Suzuki no Ringside Angel (Jpn)\0", NULL, "Asmik Ace", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_cutiesuzRomInfo, md_cutiesuzRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// CutThroat Island (Euro, USA)
-static struct BurnRomInfo md_cutthrRomDesc[] = {
- { "cutthroat island (euro, usa).bin", 0x200000, 0xebabbc70, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_cutthr)
-STD_ROM_FN(md_cutthr)
-
-struct BurnDriver BurnDrvmd_cutthr = {
- "md_cutthr", NULL, NULL, NULL, "1995",
- "CutThroat Island (Euro, USA)\0", NULL, "Acclaim Entertainment", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_cutthrRomInfo, md_cutthrRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// CutThroat Island (Prototye)
-static struct BurnRomInfo md_cutthrpRomDesc[] = {
- { "cipreview.bin", 0x200000, 0x7f4939f2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_cutthrp)
-STD_ROM_FN(md_cutthrp)
-
-struct BurnDriver BurnDrvmd_cutthrp = {
- "md_cutthrp", "md_cutthr", NULL, NULL, "1995",
- "CutThroat Island (Prototye)\0", NULL, "Acclaim Entertainment", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_cutthrpRomInfo, md_cutthrpRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// CyberBall (World)
-static struct BurnRomInfo md_cyberbalRomDesc[] = {
- { "mpr-13201.bin", 0x080000, 0x76120e96, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_cyberbal)
-STD_ROM_FN(md_cyberbal)
-
-struct BurnDriver BurnDrvmd_cyberbal = {
- "md_cyberbal", NULL, NULL, NULL, "1990",
- "CyberBall (World)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_cyberbalRomInfo, md_cyberbalRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Cyborg Justice (Euro, USA)
-static struct BurnRomInfo md_cyborgjRomDesc[] = {
- { "mpr-15468.bin", 0x080000, 0xab0d1269, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_cyborgj)
-STD_ROM_FN(md_cyborgj)
-
-struct BurnDriver BurnDrvmd_cyborgj = {
- "md_cyborgj", NULL, NULL, NULL, "1993",
- "Cyborg Justice (Euro, USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_cyborgjRomInfo, md_cyborgjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Cyborg Justice (Prototype)
-static struct BurnRomInfo md_cyborgjpRomDesc[] = {
- { "cyborg justice (beta).bin", 0x080000, 0x91daf11e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_cyborgjp)
-STD_ROM_FN(md_cyborgjp)
-
-struct BurnDriver BurnDrvmd_cyborgjp = {
- "md_cyborgjp", "md_cyborgj", NULL, NULL, "1993",
- "Cyborg Justice (Prototype)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_cyborgjpRomInfo, md_cyborgjpRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Daffy Duck in Hollywood (Euro)
-static struct BurnRomInfo md_daffyRomDesc[] = {
- { "daffy duck in hollywood (euro).bin", 0x200000, 0x1fdc66b0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_daffy)
-STD_ROM_FN(md_daffy)
-
-struct BurnDriver BurnDrvmd_daffy = {
- "md_daffy", NULL, NULL, NULL, "1994",
- "Daffy Duck in Hollywood (Euro)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_daffyRomInfo, md_daffyRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Daffy Duck in Hollywood (Euro, Prototype)
-static struct BurnRomInfo md_daffypRomDesc[] = {
- { "daffy duck in hollywood (euro) (beta).bin", 0x200000, 0x0eaa4740, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_daffyp)
-STD_ROM_FN(md_daffyp)
-
-struct BurnDriver BurnDrvmd_daffyp = {
- "md_daffyp", "md_daffy", NULL, NULL, "1994",
- "Daffy Duck in Hollywood (Euro, Prototype)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_daffypRomInfo, md_daffypRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Dahna Megami Tanjou (Jpn)
-static struct BurnRomInfo md_dahnamRomDesc[] = {
- { "dahna megami tanjou (jpn).bin", 0x100000, 0x4602584f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_dahnam)
-STD_ROM_FN(md_dahnam)
-
-struct BurnDriver BurnDrvmd_dahnam = {
- "md_dahnam", NULL, NULL, NULL, "1991",
- "Dahna Megami Tanjou (Jpn)\0", NULL, "IGS", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_dahnamRomInfo, md_dahnamRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Dahna (Kor)
-static struct BurnRomInfo md_dahnamkRomDesc[] = {
- { "mpr-14636.bin", 0x100000, 0x10829ea1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_dahnamk)
-STD_ROM_FN(md_dahnamk)
-
-struct BurnDriver BurnDrvmd_dahnamk = {
- "md_dahnamk", "md_dahnam", NULL, NULL, "199?",
- "Dahna (Kor)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_dahnamkRomInfo, md_dahnamkRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Hercules
-static struct BurnRomInfo md_herculesRomDesc[] = {
- { "hercules (unl).bin", 0x100000, 0xff75d9d0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_hercules)
-STD_ROM_FN(md_hercules)
-
-struct BurnDriver BurnDrvmd_hercules = {
- "md_hercules", "md_dahnam", NULL, NULL, "199?",
- "Hercules\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_herculesRomInfo, md_herculesRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Dangerous Seed (Jpn)
-static struct BurnRomInfo md_dangseedRomDesc[] = {
- { "dangerous seed (jpn).bin", 0x080000, 0xa2990031, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_dangseed)
-STD_ROM_FN(md_dangseed)
-
-struct BurnDriver BurnDrvmd_dangseed = {
- "md_dangseed", NULL, NULL, NULL, "1990",
- "Dangerous Seed (Jpn)\0", NULL, "Namcot", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_dangseedRomInfo, md_dangseedRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Dark Castle (Euro, USA)
-static struct BurnRomInfo md_darkcastRomDesc[] = {
- { "dark castle (euro, usa).bin", 0x080000, 0x0464aca4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_darkcast)
-STD_ROM_FN(md_darkcast)
-
-struct BurnDriver BurnDrvmd_darkcast = {
- "md_darkcast", NULL, NULL, NULL, "1991",
- "Dark Castle (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_darkcastRomInfo, md_darkcastRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Darwin 4081 (Jpn, Kor)
-static struct BurnRomInfo md_darwinRomDesc[] = {
- { "darwin 4081 (jpn, kor).bin", 0x080000, 0x7a33b0cb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_darwin)
-STD_ROM_FN(md_darwin)
-
-struct BurnDriver BurnDrvmd_darwin = {
- "md_darwin", NULL, NULL, NULL, "1990",
- "Darwin 4081 (Jpn, Kor)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_darwinRomInfo, md_darwinRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Dashin' Desperadoes (USA)
-static struct BurnRomInfo md_dashdesRomDesc[] = {
- { "dashin' desperadoes (usa).bin", 0x100000, 0xdcb76fb7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_dashdes)
-STD_ROM_FN(md_dashdes)
-
-struct BurnDriver BurnDrvmd_dashdes = {
- "md_dashdes", NULL, NULL, NULL, "1993",
- "Dashin' Desperadoes (USA)\0", NULL, "Data East", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_dashdesRomInfo, md_dashdesRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Dashin' Desperadoes (Euro, Prototype)
-static struct BurnRomInfo md_dashdesp1RomDesc[] = {
- { "dashin' desperadoes (usa) (beta).bin", 0x100000, 0x98d224a5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_dashdesp1)
-STD_ROM_FN(md_dashdesp1)
-
-struct BurnDriver BurnDrvmd_dashdesp1 = {
- "md_dashdesp1", "md_dashdes", NULL, NULL, "1993",
- "Dashin' Desperadoes (Euro, Prototype)\0", NULL, "Data East", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_dashdesp1RomInfo, md_dashdesp1RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Dashin' Desperadoes (USA, Prototype)
-static struct BurnRomInfo md_dashdesp2RomDesc[] = {
- { "dashin' desperadoes (beta).bin", 0x100000, 0xadaffc3f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_dashdesp2)
-STD_ROM_FN(md_dashdesp2)
-
-struct BurnDriver BurnDrvmd_dashdesp2 = {
- "md_dashdesp2", "md_dashdes", NULL, NULL, "1993",
- "Dashin' Desperadoes (USA, Prototype)\0", NULL, "Data East", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_dashdesp2RomInfo, md_dashdesp2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// David Crane's Amazing Tennis (USA)
-static struct BurnRomInfo md_amazntenRomDesc[] = {
- { "david crane's amazing tennis (usa).bin", 0x100000, 0x9177088c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_amaznten)
-STD_ROM_FN(md_amaznten)
-
-struct BurnDriver BurnDrvmd_amaznten = {
- "md_amaznten", NULL, NULL, NULL, "1992",
- "David Crane's Amazing Tennis (USA)\0", NULL, "Absolute Entertainment", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_amazntenRomInfo, md_amazntenRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// David Robinson's Supreme Court (Euro, USA)
-static struct BurnRomInfo md_drscRomDesc[] = {
- { "mpr-14835.bin", 0x080000, 0x512b7599, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_drsc)
-STD_ROM_FN(md_drsc)
-
-struct BurnDriver BurnDrvmd_drsc = {
- "md_drsc", NULL, NULL, NULL, "1992",
- "David Robinson's Supreme Court (Euro, USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_drscRomInfo, md_drscRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// David Robinson Basketball (Jpn)
-static struct BurnRomInfo md_drscjRomDesc[] = {
- { "david robinson basketball (jpn).bin", 0x080000, 0x56164b00, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_drscj)
-STD_ROM_FN(md_drscj)
-
-struct BurnDriver BurnDrvmd_drscj = {
- "md_drscj", "md_drsc", NULL, NULL, "1992",
- "David Robinson Basketball (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_drscjRomInfo, md_drscjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Davis Cup World Tour (Euro, USA, 199307)
-static struct BurnRomInfo md_daviscupRomDesc[] = {
- { "davis cup world tour (euro, usa) (july 1993).bin", 0x100000, 0x894686f0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_daviscup)
-STD_ROM_FN(md_daviscup)
-
-struct BurnDriver BurnDrvmd_daviscup = {
- "md_daviscup", NULL, NULL, NULL, "1993",
- "Davis Cup World Tour (Euro, USA, 199307)\0", NULL, "Tengen", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_daviscupRomInfo, md_daviscupRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Davis Cup World Tour (Euro, USA, 199306)
-static struct BurnRomInfo md_daviscupaRomDesc[] = {
- { "davis cup world tour (euro, usa) (june 1993).bin", 0x100000, 0x7c6b0646, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_daviscupa)
-STD_ROM_FN(md_daviscupa)
-
-struct BurnDriver BurnDrvmd_daviscupa = {
- "md_daviscupa", "md_daviscup", NULL, NULL, "1993",
- "Davis Cup World Tour (Euro, USA, 199306)\0", NULL, "Tengen", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_daviscupaRomInfo, md_daviscupaRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Davis Cup World Tour Tennis 2 (Prototype 1)
-static struct BurnRomInfo md_daviscp2RomDesc[] = {
- { "davis cup world tour tennis 2 (beta 1).bin", 0x200000, 0x6f4183c0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_daviscp2)
-STD_ROM_FN(md_daviscp2)
-
-struct BurnDriver BurnDrvmd_daviscp2 = {
- "md_daviscp2", NULL, NULL, NULL, "199?",
- "Davis Cup World Tour Tennis 2 (Prototype 1)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_daviscp2RomInfo, md_daviscp2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Davis Cup II (USA, Prototype)
-static struct BurnRomInfo md_daviscp2aRomDesc[] = {
- { "davis cup ii (usa) (prototype).bin", 0x200000, 0x76f2bed8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_daviscp2a)
-STD_ROM_FN(md_daviscp2a)
-
-struct BurnDriver BurnDrvmd_daviscp2a = {
- "md_daviscp2a", "md_daviscp2", NULL, NULL, "199?",
- "Davis Cup II (USA, Prototype)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_daviscp2aRomInfo, md_daviscp2aRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Daze Before Christmas (Oceania)
-static struct BurnRomInfo md_dazexmasRomDesc[] = {
- { "daze before christmas (aus).bin", 0x200000, 0xb95e25c9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_dazexmas)
-STD_ROM_FN(md_dazexmas)
-
-struct BurnDriver BurnDrvmd_dazexmas = {
- "md_dazexmas", NULL, NULL, NULL, "1994",
- "Daze Before Christmas (Oceania)\0", NULL, "Sunsoft", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_dazexmasRomInfo, md_dazexmasRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Daze Before Christmas (Oceania, Prototype)
-static struct BurnRomInfo md_dazexmaspRomDesc[] = {
- { "daze before christmas (aus) (beta).bin", 0x200000, 0x317c9491, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_dazexmasp)
-STD_ROM_FN(md_dazexmasp)
-
-struct BurnDriver BurnDrvmd_dazexmasp = {
- "md_dazexmasp", "md_dazexmas", NULL, NULL, "1994",
- "Daze Before Christmas (Oceania, Prototype)\0", NULL, "Sunsoft", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_dazexmaspRomInfo, md_dazexmaspRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Deadly Moves (USA)
-static struct BurnRomInfo md_deadlymvRomDesc[] = {
- { "deadly moves (usa).bin", 0x100000, 0x35cbd237, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_deadlymv)
-STD_ROM_FN(md_deadlymv)
-
-struct BurnDriver BurnDrvmd_deadlymv = {
- "md_deadlymv", NULL, NULL, NULL, "1992",
- "Deadly Moves (USA)\0", NULL, "Kaneko", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_deadlymvRomInfo, md_deadlymvRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Power Athlete (Jpn, Kor)
-static struct BurnRomInfo md_powerathRomDesc[] = {
- { "power athlete (jpn, kor).bin", 0x100000, 0xb41b77cf, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_powerath)
-STD_ROM_FN(md_powerath)
-
-struct BurnDriver BurnDrvmd_powerath = {
- "md_powerath", "md_deadlymv", NULL, NULL, "1992",
- "Power Athlete (Jpn, Kor)\0", NULL, "Kaneko", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_powerathRomInfo, md_powerathRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Death and Return of Superman (USA)
-static struct BurnRomInfo md_deathretRomDesc[] = {
- { "death and return of superman, the (usa).bin", 0x200000, 0x982242d3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_deathret)
-STD_ROM_FN(md_deathret)
-
-struct BurnDriver BurnDrvmd_deathret = {
- "md_deathret", NULL, NULL, NULL, "1995",
- "The Death and Return of Superman (USA)\0", NULL, "Sunsoft", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_deathretRomInfo, md_deathretRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Death Duel (USA)
-static struct BurnRomInfo md_deathdlRomDesc[] = {
- { "death duel (usa).bin", 0x100000, 0xa9804dcc, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_deathdl)
-STD_ROM_FN(md_deathdl)
-
-struct BurnDriver BurnDrvmd_deathdl = {
- "md_deathdl", NULL, NULL, NULL, "1992",
- "Death Duel (USA)\0", NULL, "Razorsoft", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_deathdlRomInfo, md_deathdlRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// DecapAttack (Euro, USA, Kor)
-static struct BurnRomInfo md_decapattRomDesc[] = {
- { "mpr-14249.bin", 0x080000, 0x73dc0dd8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_decapatt)
-STD_ROM_FN(md_decapatt)
-
-struct BurnDriver BurnDrvmd_decapatt = {
- "md_decapatt", NULL, NULL, NULL, "1991",
- "DecapAttack (Euro, USA, Kor)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_decapattRomInfo, md_decapattRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Demolition Man (Euro, USA)
-static struct BurnRomInfo md_demomanRomDesc[] = {
- { "demolition man (euro, usa).bin", 0x200000, 0x5ff71877, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_demoman)
-STD_ROM_FN(md_demoman)
-
-struct BurnDriver BurnDrvmd_demoman = {
- "md_demoman", NULL, NULL, NULL, "1995",
- "Demolition Man (Euro, USA)\0", NULL, "Acclaim Entertainment", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_demomanRomInfo, md_demomanRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Demolition Man (USA, Prototype)
-static struct BurnRomInfo md_demomanpRomDesc[] = {
- { "demolition man (usa) (beta).bin", 0x200000, 0x57ffad7a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_demomanp)
-STD_ROM_FN(md_demomanp)
-
-struct BurnDriver BurnDrvmd_demomanp = {
- "md_demomanp", "md_demoman", NULL, NULL, "1995",
- "Demolition Man (USA, Prototype)\0", NULL, "Acclaim Entertainment", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_demomanpRomInfo, md_demomanpRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Desert Demolition (Euro, USA)
-static struct BurnRomInfo md_desrtdemRomDesc[] = {
- { "desert demolition starring road runner and wile e. coyote (euro, usa).bin", 0x100000, 0xc287343d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_desrtdem)
-STD_ROM_FN(md_desrtdem)
-
-struct BurnDriver BurnDrvmd_desrtdem = {
- "md_desrtdem", NULL, NULL, NULL, "1994",
- "Desert Demolition (Euro, USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_desrtdemRomInfo, md_desrtdemRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Desert Demolition (Prototype, 19941206)
-static struct BurnRomInfo md_desrtdemp9RomDesc[] = {
- { "desert demolition (prototype - dec 06, 1994).bin", 0x0ed0ad, 0xd27fe9e5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_desrtdemp9)
-STD_ROM_FN(md_desrtdemp9)
-
-struct BurnDriver BurnDrvmd_desrtdemp9 = {
- "md_desrtdemp9", "md_desrtdem", NULL, NULL, "1994",
- "Desert Demolition (Prototype, 19941206)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_desrtdemp9RomInfo, md_desrtdemp9RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Desert Demolition (Prototype, 19941208)
-static struct BurnRomInfo md_desrtdemp8RomDesc[] = {
- { "desert demolition (prototype - dec 08, 1994).bin", 0x0fdfb8, 0x69aaeab6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_desrtdemp8)
-STD_ROM_FN(md_desrtdemp8)
-
-struct BurnDriver BurnDrvmd_desrtdemp8 = {
- "md_desrtdemp8", "md_desrtdem", NULL, NULL, "1994",
- "Desert Demolition (Prototype, 19941208)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_desrtdemp8RomInfo, md_desrtdemp8RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Desert Demolition (Prototype, 19941212-B)
-static struct BurnRomInfo md_desrtdemp7RomDesc[] = {
- { "desert demolition (prototype - dec 12, 1994 - b).bin", 0x100000, 0x16f19283, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_desrtdemp7)
-STD_ROM_FN(md_desrtdemp7)
-
-struct BurnDriver BurnDrvmd_desrtdemp7 = {
- "md_desrtdemp7", "md_desrtdem", NULL, NULL, "1994",
- "Desert Demolition (Prototype, 19941212-B)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_desrtdemp7RomInfo, md_desrtdemp7RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Desert Demolition (Prototype, 19941212)
-static struct BurnRomInfo md_desrtdemp6RomDesc[] = {
- { "desert demolition (prototype - dec 12, 1994).bin", 0x0ec988, 0x5dad49d7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_desrtdemp6)
-STD_ROM_FN(md_desrtdemp6)
-
-struct BurnDriver BurnDrvmd_desrtdemp6 = {
- "md_desrtdemp6", "md_desrtdem", NULL, NULL, "1994",
- "Desert Demolition (Prototype, 19941212)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_desrtdemp6RomInfo, md_desrtdemp6RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Desert Demolition (Prototype, 19941213)
-static struct BurnRomInfo md_desrtdemp5RomDesc[] = {
- { "desert demolition (prototype - dec 13, 1994).bin", 0x0fde9c, 0x375dee15, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_desrtdemp5)
-STD_ROM_FN(md_desrtdemp5)
-
-struct BurnDriver BurnDrvmd_desrtdemp5 = {
- "md_desrtdemp5", "md_desrtdem", NULL, NULL, "1994",
- "Desert Demolition (Prototype, 19941213)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_desrtdemp5RomInfo, md_desrtdemp5RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Desert Demolition (Prototype, 19941214)
-static struct BurnRomInfo md_desrtdemp4RomDesc[] = {
- { "desert demolition (prototype - dec 14, 1994).bin", 0x0fde9c, 0x39f9f304, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_desrtdemp4)
-STD_ROM_FN(md_desrtdemp4)
-
-struct BurnDriver BurnDrvmd_desrtdemp4 = {
- "md_desrtdemp4", "md_desrtdem", NULL, NULL, "1994",
- "Desert Demolition (Prototype, 19941214)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_desrtdemp4RomInfo, md_desrtdemp4RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Desert Demolition (Prototype, 19941215)
-static struct BurnRomInfo md_desrtdemp3RomDesc[] = {
- { "desert demolition (prototype - dec 15, 1994).bin", 0x0fde9c, 0x5109736a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_desrtdemp3)
-STD_ROM_FN(md_desrtdemp3)
-
-struct BurnDriver BurnDrvmd_desrtdemp3 = {
- "md_desrtdemp3", "md_desrtdem", NULL, NULL, "1994",
- "Desert Demolition (Prototype, 19941215)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_desrtdemp3RomInfo, md_desrtdemp3RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Desert Demolition (Prototype, 19941216)
-static struct BurnRomInfo md_desrtdemp2RomDesc[] = {
- { "desert demolition (prototype - dec 16, 1994).bin", 0x100000, 0x573fabfb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_desrtdemp2)
-STD_ROM_FN(md_desrtdemp2)
-
-struct BurnDriver BurnDrvmd_desrtdemp2 = {
- "md_desrtdemp2", "md_desrtdem", NULL, NULL, "1994",
- "Desert Demolition (Prototype, 19941216)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_desrtdemp2RomInfo, md_desrtdemp2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Desert Demolition (Prototype, 19941219)
-static struct BurnRomInfo md_desrtdemp1RomDesc[] = {
- { "desert demolition (prototype - dec 19, 1994).bin", 0x0fde9c, 0xb0ece758, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_desrtdemp1)
-STD_ROM_FN(md_desrtdemp1)
-
-struct BurnDriver BurnDrvmd_desrtdemp1 = {
- "md_desrtdemp1", "md_desrtdem", NULL, NULL, "1994",
- "Desert Demolition (Prototype, 19941219)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_desrtdemp1RomInfo, md_desrtdemp1RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Desert Strike (Euro, USA)
-static struct BurnRomInfo md_dstrikeRomDesc[] = {
- { "desert strike (euro, usa).bin", 0x100000, 0x67a9860b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_dstrike)
-STD_ROM_FN(md_dstrike)
-
-struct BurnDriver BurnDrvmd_dstrike = {
- "md_dstrike", NULL, NULL, NULL, "1992",
- "Desert Strike (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_dstrikeRomInfo, md_dstrikeRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Desert Strike (Jpn, Kor)
-static struct BurnRomInfo md_dstrikejRomDesc[] = {
- { "desert strike (jpn, kor).bin", 0x100000, 0x1e740145, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_dstrikej)
-STD_ROM_FN(md_dstrikej)
-
-struct BurnDriver BurnDrvmd_dstrikej = {
- "md_dstrikej", "md_dstrike", NULL, NULL, "1993",
- "Desert Strike (Jpn, Kor)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_dstrikejRomInfo, md_dstrikejRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Devilish - The Next Possession (USA)
-static struct BurnRomInfo md_devilishRomDesc[] = {
- { "devilish - the next possession (usa).bin", 0x080000, 0xd3f300ac, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_devilish)
-STD_ROM_FN(md_devilish)
-
-struct BurnDriver BurnDrvmd_devilish = {
- "md_devilish", NULL, NULL, NULL, "1992",
- "Devilish - The Next Possession (USA)\0", NULL, "Sage's Creation", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_devilishRomInfo, md_devilishRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Bad Omen (Jpn, Kor)
-static struct BurnRomInfo md_badomenRomDesc[] = {
- { "bad omen (jpn, kor).bin", 0x080000, 0x975693ce, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_badomen)
-STD_ROM_FN(md_badomen)
-
-struct BurnDriver BurnDrvmd_badomen = {
- "md_badomen", "md_devilish", NULL, NULL, "1992",
- "Bad Omen (Jpn, Kor)\0", NULL, "Hot-B", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_badomenRomInfo, md_badomenRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Dial Q o Mawase! (Jpn)
-static struct BurnRomInfo md_dialqoRomDesc[] = {
- { "dial q o mawase! (jpn) (unl).bin", 0x100000, 0xc632e5af, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_dialqo)
-STD_ROM_FN(md_dialqo)
-
-struct BurnDriver BurnDrvmd_dialqo = {
- "md_dialqo", NULL, NULL, NULL, "199?",
- "Dial Q o Mawase! (Jpn)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_dialqoRomInfo, md_dialqoRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Dick Tracy (World)
-static struct BurnRomInfo md_dicktrRomDesc[] = {
- { "mpr-13661.bin", 0x080000, 0xef887533, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_dicktr)
-STD_ROM_FN(md_dicktr)
-
-struct BurnDriver BurnDrvmd_dicktr = {
- "md_dicktr", NULL, NULL, NULL, "1991",
- "Dick Tracy (World)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_dicktrRomInfo, md_dicktrRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Dick Vitale's 'Awesome, Baby!' College Hoops (USA)
-static struct BurnRomInfo md_dickvitlRomDesc[] = {
- { "dick vitale's 'awesome, baby!' college hoops (usa).bin", 0x200000, 0x1312cf22, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_dickvitl)
-STD_ROM_FN(md_dickvitl)
-
-struct BurnDriver BurnDrvmd_dickvitl = {
- "md_dickvitl", NULL, NULL, NULL, "1994",
- "Dick Vitale's 'Awesome, Baby!' College Hoops (USA)\0", NULL, "Time Warner Interactive", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_dickvitlRomInfo, md_dickvitlRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Dino Dini's Soccer (Euro)
-static struct BurnRomInfo md_dinodiniRomDesc[] = {
- { "dino dini's soccer (euro).bin", 0x100000, 0x4608f53a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_dinodini)
-STD_ROM_FN(md_dinodini)
-
-struct BurnDriverD BurnDrvmd_dinodini = {
- "md_dinodini", NULL, NULL, NULL, "1994",
- "Dino Dini's Soccer (Euro)\0", NULL, "Virgin Interactive", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_dinodiniRomInfo, md_dinodiniRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Dino Land (USA)
-static struct BurnRomInfo md_dinolandRomDesc[] = {
- { "dino land (usa).bin", 0x080000, 0x5fe351b8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_dinoland)
-STD_ROM_FN(md_dinoland)
-
-struct BurnDriver BurnDrvmd_dinoland = {
- "md_dinoland", NULL, NULL, NULL, "1991",
- "Dino Land (USA)\0", NULL, "Renovation", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_dinolandRomInfo, md_dinolandRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Chou Touryuu Retsuden - Dino Land (Jpn)
-static struct BurnRomInfo md_dinolandjRomDesc[] = {
- { "chou touryuu retsuden - dino land (jpn).bin", 0x080000, 0x81f939de, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_dinolandj)
-STD_ROM_FN(md_dinolandj)
-
-struct BurnDriver BurnDrvmd_dinolandj = {
- "md_dinolandj", "md_dinoland", NULL, NULL, "1991",
- "Chou Touryuu Retsuden - Dino Land (Jpn)\0", NULL, "Wolf Team", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_dinolandjRomInfo, md_dinolandjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// A Dinosaur's Tale (USA)
-static struct BurnRomInfo md_dinotaleRomDesc[] = {
- { "dinosaur's tale, a (usa).bin", 0x100000, 0x70155b5b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_dinotale)
-STD_ROM_FN(md_dinotale)
-
-struct BurnDriver BurnDrvmd_dinotale = {
- "md_dinotale", NULL, NULL, NULL, "1993",
- "A Dinosaur's Tale (USA)\0", NULL, "Hi-Tech Expression", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_dinotaleRomInfo, md_dinotaleRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Tom Mason's Dinosaurs for Hire (USA)
-static struct BurnRomInfo md_dinohireRomDesc[] = {
- { "dinosaurs for hire (usa).bin", 0x100000, 0x39351146, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_dinohire)
-STD_ROM_FN(md_dinohire)
-
-struct BurnDriver BurnDrvmd_dinohire = {
- "md_dinohire", NULL, NULL, NULL, "1993",
- "Tom Mason's Dinosaurs for Hire (USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_dinohireRomInfo, md_dinohireRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Tom Mason's Dinosaurs for Hire (Prototype, 19930426)
-static struct BurnRomInfo md_dinohirep3RomDesc[] = {
- { "dinosaurs for hire (prototype - apr 26, 1993).bin", 0x100000, 0x54c77d3e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_dinohirep3)
-STD_ROM_FN(md_dinohirep3)
-
-struct BurnDriver BurnDrvmd_dinohirep3 = {
- "md_dinohirep3", "md_dinohire", NULL, NULL, "1993",
- "Tom Mason's Dinosaurs for Hire (Prototype, 19930426)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_dinohirep3RomInfo, md_dinohirep3RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Tom Mason's Dinosaurs for Hire (Prototype, 19930427)
-static struct BurnRomInfo md_dinohirep2RomDesc[] = {
- { "dinosaurs for hire (prototype - apr 27, 1993).bin", 0x100000, 0x16000453, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_dinohirep2)
-STD_ROM_FN(md_dinohirep2)
-
-struct BurnDriver BurnDrvmd_dinohirep2 = {
- "md_dinohirep2", "md_dinohire", NULL, NULL, "1993",
- "Tom Mason's Dinosaurs for Hire (Prototype, 19930427)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_dinohirep2RomInfo, md_dinohirep2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Tom Mason's Dinosaurs for Hire (Prototype, 19930502)
-static struct BurnRomInfo md_dinohirep1RomDesc[] = {
- { "dinosaurs for hire (prototype - may 02, 1993).bin", 0x100000, 0x8954dee9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_dinohirep1)
-STD_ROM_FN(md_dinohirep1)
-
-struct BurnDriver BurnDrvmd_dinohirep1 = {
- "md_dinohirep1", "md_dinohire", NULL, NULL, "1993",
- "Tom Mason's Dinosaurs for Hire (Prototype, 19930502)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_dinohirep1RomInfo, md_dinohirep1RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Disney Collection - Mickey and Donald (Euro)
-static struct BurnRomInfo md_disneyclRomDesc[] = {
- { "disney collection, the (euro).bin", 0x100000, 0xadfde883, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_disneycl)
-STD_ROM_FN(md_disneycl)
-
-struct BurnDriver BurnDrvmd_disneycl = {
- "md_disneycl", NULL, NULL, NULL, "1996",
- "The Disney Collection - Mickey and Donald (Euro)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_disneyclRomInfo, md_disneyclRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Divine Sealing (Jpn)
-static struct BurnRomInfo md_divineRomDesc[] = {
- { "divine sealing (jpn) (unl).bin", 0x100000, 0xca72973c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_divine)
-STD_ROM_FN(md_divine)
-
-struct BurnDriver BurnDrvmd_divine = {
- "md_divine", NULL, NULL, NULL, "1991",
- "Divine Sealing (Jpn)\0", NULL, "CYX", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_divineRomInfo, md_divineRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// DJ Boy (Euro)
-static struct BurnRomInfo md_djboyRomDesc[] = {
- { "mpr-14560.bin", 0x080000, 0x860e749a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_djboy)
-STD_ROM_FN(md_djboy)
-
-struct BurnDriver BurnDrvmd_djboy = {
- "md_djboy", NULL, NULL, NULL, "1991",
- "DJ Boy (Euro)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_djboyRomInfo, md_djboyRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// DJ Boy (Jpn)
-static struct BurnRomInfo md_djboyjRomDesc[] = {
- { "dj boy (jpn).bin", 0x080000, 0x202abaa8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_djboyj)
-STD_ROM_FN(md_djboyj)
-
-struct BurnDriver BurnDrvmd_djboyj = {
- "md_djboyj", "md_djboy", NULL, NULL, "1990",
- "DJ Boy (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_djboyjRomInfo, md_djboyjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// DJ Boy (USA)
-static struct BurnRomInfo md_djboyuRomDesc[] = {
- { "dj boy (usa).bin", 0x080000, 0xdc9f02db, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_djboyu)
-STD_ROM_FN(md_djboyu)
-
-struct BurnDriver BurnDrvmd_djboyu = {
- "md_djboyu", "md_djboy", NULL, NULL, "1990",
- "DJ Boy (USA)\0", NULL, "Kaneko", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_djboyuRomInfo, md_djboyuRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Ikazuse! Koi no Doki Doki Penguin Land MD (Jpn, SegaNet)
-static struct BurnRomInfo md_dokidokiRomDesc[] = {
- { "ikazuse! koi no doki doki penguin land md (jpn) (sn).bin", 0x040000, 0x0053bfd6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_dokidoki)
-STD_ROM_FN(md_dokidoki)
-
-struct BurnDriver BurnDrvmd_dokidoki = {
- "md_dokidoki", NULL, NULL, NULL, "1991",
- "Ikazuse! Koi no Doki Doki Penguin Land MD (Jpn, SegaNet)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_dokidokiRomInfo, md_dokidokiRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Ikazuse! Koi no Doki Doki Penguin Land MD (Jpn, Game no Kandume MegaCD Rip)
-static struct BurnRomInfo md_dokidokignkRomDesc[] = {
- { "ikazuse! koi no doki doki penguin land md (jpn) (gnk).bin", 0x040000, 0x22736650, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_dokidokignk)
-STD_ROM_FN(md_dokidokignk)
-
-struct BurnDriver BurnDrvmd_dokidokignk = {
- "md_dokidokignk", "md_dokidoki", NULL, NULL, "1991",
- "Ikazuse! Koi no Doki Doki Penguin Land MD (Jpn, Game no Kandume MegaCD Rip)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_dokidokignkRomInfo, md_dokidokignkRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Dominus (USA, Prototype)
-static struct BurnRomInfo md_dominusRomDesc[] = {
- { "dominus (usa) (prototype).bin", 0x0c0000, 0x30006ebd, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_dominus)
-STD_ROM_FN(md_dominus)
-
-struct BurnDriver BurnDrvmd_dominus = {
- "md_dominus", NULL, NULL, NULL, "199?",
- "Dominus (USA, Prototype)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_dominusRomInfo, md_dominusRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Donald in Maui Mallard (Euro)
-static struct BurnRomInfo md_mauimallRomDesc[] = {
- { "donald in maui mallard (euro).bin", 0x300000, 0xb2dd857f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_mauimall)
-STD_ROM_FN(md_mauimall)
-
-struct BurnDriver BurnDrvmd_mauimall = {
- "md_mauimall", NULL, NULL, NULL, "1995",
- "Donald in Maui Mallard (Euro)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_mauimallRomInfo, md_mauimallRomName, NULL, NULL, MegadriveInputInfo, MegadrivePALDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Donald in Maui Mallard (Bra)
-static struct BurnRomInfo md_mauimallbRomDesc[] = {
- { "mpr-19625-u.ic1", 0x300000, 0x5f9b9a48, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_mauimallb)
-STD_ROM_FN(md_mauimallb)
-
-struct BurnDriver BurnDrvmd_mauimallb = {
- "md_mauimallb", "md_mauimall", NULL, NULL, "1995",
- "Donald in Maui Mallard (Bra)\0", NULL, "Tec Toy", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_mauimallbRomInfo, md_mauimallbRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Doom Troopers - The Mutant Chronicles (USA)
-static struct BurnRomInfo md_doomtropRomDesc[] = {
- { "doom troopers - the mutant chronicles (usa).bin", 0x200000, 0x11194414, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_doomtrop)
-STD_ROM_FN(md_doomtrop)
-
-struct BurnDriver BurnDrvmd_doomtrop = {
- "md_doomtrop", NULL, NULL, NULL, "1995",
- "Doom Troopers - The Mutant Chronicles (USA)\0", NULL, "Playmates Interactive", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_doomtropRomInfo, md_doomtropRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Doraemon - Yume Dorobou to 7-nin no Gozans (Jpn)
-static struct BurnRomInfo md_doraemonRomDesc[] = {
- { "doraemon - yume dorobou to 7-nin no gozans (jpn).bin", 0x080000, 0xeeed1130, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_doraemon)
-STD_ROM_FN(md_doraemon)
-
-struct BurnDriver BurnDrvmd_doraemon = {
- "md_doraemon", NULL, NULL, NULL, "1993",
- "Doraemon - Yume Dorobou to 7-nin no Gozans (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_doraemonRomInfo, md_doraemonRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Double Clutch (Euro)
-static struct BurnRomInfo md_doubleclRomDesc[] = {
- { "double clutch (euro).bin", 0x040000, 0xd98c623c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_doublecl)
-STD_ROM_FN(md_doublecl)
-
-struct BurnDriver BurnDrvmd_doublecl = {
- "md_doublecl", NULL, NULL, NULL, "1992",
- "Double Clutch (Euro)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_doubleclRomInfo, md_doubleclRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Double Dragon (Euro, USA)
-static struct BurnRomInfo md_ddragonRomDesc[] = {
- { "double dragon (euro, usa).bin", 0x080000, 0x054f5d53, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ddragon)
-STD_ROM_FN(md_ddragon)
-
-struct BurnDriver BurnDrvmd_ddragon = {
- "md_ddragon", NULL, NULL, NULL, "1993",
- "Double Dragon (Euro, USA)\0", NULL, "Ballistic", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_ddragonRomInfo, md_ddragonRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Double Dragon II - The Revenge (Jpn)
-static struct BurnRomInfo md_ddragon2RomDesc[] = {
- { "double dragon ii - the revenge (jpn).bin", 0x080000, 0xa8bfdbd6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ddragon2)
-STD_ROM_FN(md_ddragon2)
-
-struct BurnDriverD BurnDrvmd_ddragon2 = {
- "md_ddragon2", NULL, NULL, NULL, "1991",
- "Double Dragon II - The Revenge (Jpn)\0", NULL, "Palsoft", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_ddragon2RomInfo, md_ddragon2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Double Dragon 3 - The Arcade Game (Euro, USA)
-static struct BurnRomInfo md_ddragon3RomDesc[] = {
- { "double dragon 3 - the arcade game (euro, usa).bin", 0x100000, 0xb36ab75c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ddragon3)
-STD_ROM_FN(md_ddragon3)
-
-struct BurnDriver BurnDrvmd_ddragon3 = {
- "md_ddragon3", NULL, NULL, NULL, "1992",
- "Double Dragon 3 - The Arcade Game (Euro, USA)\0", NULL, "Flying Edge", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_ddragon3RomInfo, md_ddragon3RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Double Dragon V - The Shadow Falls (USA)
-static struct BurnRomInfo md_ddragon5RomDesc[] = {
- { "double dragon v - the shadow falls (usa).bin", 0x300000, 0x27e59e35, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ddragon5)
-STD_ROM_FN(md_ddragon5)
-
-struct BurnDriver BurnDrvmd_ddragon5 = {
- "md_ddragon5", NULL, NULL, NULL, "1994",
- "Double Dragon V - The Shadow Falls (USA)\0", NULL, "Tradewest", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_ddragon5RomInfo, md_ddragon5RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Dr. Robotnik's Mean Bean Machine (Euro)
-static struct BurnRomInfo md_drrobotnRomDesc[] = {
- { "dr. robotnik's mean bean machine (euro).bin", 0x100000, 0x70680706, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_drrobotn)
-STD_ROM_FN(md_drrobotn)
-
-struct BurnDriver BurnDrvmd_drrobotn = {
- "md_drrobotn", NULL, NULL, NULL, "1993",
- "Dr. Robotnik's Mean Bean Machine (Euro)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_drrobotnRomInfo, md_drrobotnRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Dr. Robotnik's Mean Bean Machine (USA, Prototype)
-static struct BurnRomInfo md_drrobotnupRomDesc[] = {
- { "dr. robotnik's mean bean machine (usa) (beta).bin", 0x100000, 0x4d0e5273, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_drrobotnup)
-STD_ROM_FN(md_drrobotnup)
-
-struct BurnDriver BurnDrvmd_drrobotnup = {
- "md_drrobotnup", "md_drrobotn", NULL, NULL, "1993",
- "Dr. Robotnik's Mean Bean Machine (USA, Prototype)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_drrobotnupRomInfo, md_drrobotnupRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Dr. Robotnik's Mean Bean Machine (USA)
-static struct BurnRomInfo md_drrobotnuRomDesc[] = {
- { "dr. robotnik's mean bean machine (usa).bin", 0x100000, 0xc7ca517f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_drrobotnu)
-STD_ROM_FN(md_drrobotnu)
-
-struct BurnDriver BurnDrvmd_drrobotnu = {
- "md_drrobotnu", "md_drrobotn", NULL, NULL, "1993",
- "Dr. Robotnik's Mean Bean Machine (USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_drrobotnuRomInfo, md_drrobotnuRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Dong Gu Ri Te Chi Jak Jeon (Kor)
-static struct BurnRomInfo md_dongguriRomDesc[] = {
- { "dong gu ri te chi jak jeon (kor).bin", 0x100000, 0xe32f0b1c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_dongguri)
-STD_ROM_FN(md_dongguri)
-
-struct BurnDriver BurnDrvmd_dongguri = {
- "md_dongguri", "md_drrobotn", NULL, NULL, "199?",
- "Dong Gu Ri Te Chi Jak Jeon (Kor)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_dongguriRomInfo, md_dongguriRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Dragon - The Bruce Lee Story (Euro)
-static struct BurnRomInfo md_dragonRomDesc[] = {
- { "dragon - the bruce lee story (euro).bin", 0x200000, 0xfdeed51d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_dragon)
-STD_ROM_FN(md_dragon)
-
-struct BurnDriver BurnDrvmd_dragon = {
- "md_dragon", NULL, NULL, NULL, "1993",
- "Dragon - The Bruce Lee Story (Euro)\0", NULL, "Virgin Interactive", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_dragonRomInfo, md_dragonRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Dragon - The Bruce Lee Story (USA)
-static struct BurnRomInfo md_dragonuRomDesc[] = {
- { "dragon - the bruce lee story (usa).bin", 0x200000, 0xefe850e5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_dragonu)
-STD_ROM_FN(md_dragonu)
-
-struct BurnDriver BurnDrvmd_dragonu = {
- "md_dragonu", "md_dragon", NULL, NULL, "1994",
- "Dragon - The Bruce Lee Story (USA)\0", NULL, "Acclaim Entertainment", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_dragonuRomInfo, md_dragonuRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Dragon Ball Z - Buyuu Retsuden (Jpn)
-static struct BurnRomInfo md_dbzRomDesc[] = {
- { "dragon ball z - buyuu retsuden (jpn).bin", 0x200000, 0xaf8f3371, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_dbz)
-STD_ROM_FN(md_dbz)
-
-struct BurnDriver BurnDrvmd_dbz = {
- "md_dbz", NULL, NULL, NULL, "1994",
- "Dragon Ball Z - Buyuu Retsuden (Jpn)\0", NULL, "Bandai", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_dbzRomInfo, md_dbzRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Dragon Ball Z - L'Appel du Destin (Fra)
-static struct BurnRomInfo md_dbzfRomDesc[] = {
- { "dragon ball z - l'appel du destin (france).bin", 0x200000, 0xf035c737, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_dbzf)
-STD_ROM_FN(md_dbzf)
-
-struct BurnDriver BurnDrvmd_dbzf = {
- "md_dbzf", "md_dbz", NULL, NULL, "1994",
- "Dragon Ball Z - L'Appel du Destin (Fra)\0", NULL, "Bandai", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_dbzfRomInfo, md_dbzfRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Dragon Slayer - Eiyuu Densetsu (Jpn)
-static struct BurnRomInfo md_dslayedRomDesc[] = {
- { "dragon slayer - eiyuu densetsu (jpn).bin", 0x200000, 0x01bc1604, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_dslayed)
-STD_ROM_FN(md_dslayed)
-
-struct BurnDriverD BurnDrvmd_dslayed = {
- "md_dslayed", NULL, NULL, NULL, "1994",
- "Dragon Slayer - Eiyuu Densetsu (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_dslayedRomInfo, md_dslayedRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Dragon Slayer - Eiyuu Densetsu II (Jpn)
-static struct BurnRomInfo md_dslayed2RomDesc[] = {
- { "dragon slayer - eiyuu densetsu ii (jpn).bin", 0x200000, 0x46924dc3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_dslayed2)
-STD_ROM_FN(md_dslayed2)
-
-struct BurnDriverD BurnDrvmd_dslayed2 = {
- "md_dslayed2", NULL, NULL, NULL, "1995",
- "Dragon Slayer - Eiyuu Densetsu II (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_dslayed2RomInfo, md_dslayed2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Dragon's Eye Plus - Shanghai III (Jpn)
-static struct BurnRomInfo md_shangh3RomDesc[] = {
- { "dragon's eye plus - shanghai iii (jpn).bin", 0x040000, 0x81f0c3cf, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_shangh3)
-STD_ROM_FN(md_shangh3)
-
-struct BurnDriver BurnDrvmd_shangh3 = {
- "md_shangh3", NULL, NULL, NULL, "1991",
- "Dragon's Eye Plus - Shanghai III (Jpn)\0", NULL, "Home Data", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_shangh3RomInfo, md_shangh3RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Dragon's Fury (Euro, USA)
-static struct BurnRomInfo md_dfuryRomDesc[] = {
- { "dragon's fury (euro, usa).bin", 0x080000, 0x58037bc6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_dfury)
-STD_ROM_FN(md_dfury)
-
-struct BurnDriver BurnDrvmd_dfury = {
- "md_dfury", NULL, NULL, NULL, "1992",
- "Dragon's Fury (Euro, USA)\0", NULL, "Tengen", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_dfuryRomInfo, md_dfuryRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Dragon's Lair (USA, Prototype)
-static struct BurnRomInfo md_dlairRomDesc[] = {
- { "dragon's lair (usa, prototype).bin", 0x080000, 0xa33eb522, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_dlair)
-STD_ROM_FN(md_dlair)
-
-struct BurnDriver BurnDrvmd_dlair = {
- "md_dlair", NULL, NULL, NULL, "199?",
- "Dragon's Lair (USA, Prototype)\0", NULL, "Taito", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_dlairRomInfo, md_dlairRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Devil Crash MD (Jpn)
-static struct BurnRomInfo md_devlcrshRomDesc[] = {
- { "devil crash md (jpn).bin", 0x080000, 0x4c4caad8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_devlcrsh)
-STD_ROM_FN(md_devlcrsh)
-
-struct BurnDriver BurnDrvmd_devlcrsh = {
- "md_devlcrsh", "md_dfury", NULL, NULL, "1993",
- "Devil Crash MD (Jpn)\0", NULL, "Technosoft", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_devlcrshRomInfo, md_devlcrshRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Dragon's Revenge (Euro, USA)
-static struct BurnRomInfo md_dragnrevRomDesc[] = {
- { "dragon's revenge (euro, usa).bin", 0x100000, 0x841edbc0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_dragnrev)
-STD_ROM_FN(md_dragnrev)
-
-struct BurnDriver BurnDrvmd_dragnrev = {
- "md_dragnrev", NULL, NULL, NULL, "1993",
- "Dragon's Revenge (Euro, USA)\0", NULL, "Tengen", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_dragnrevRomInfo, md_dragnrevRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Dragon's Revenge (Jpn)
-static struct BurnRomInfo md_dragnrevjRomDesc[] = {
- { "dragon's revenge (japan).bin", 0x100000, 0xd8d2efd7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_dragnrevj)
-STD_ROM_FN(md_dragnrevj)
-
-struct BurnDriver BurnDrvmd_dragnrevj = {
- "md_dragnrevj", "md_dragnrev", NULL, NULL, "1993",
- "Dragon's Revenge (Jpn)\0", NULL, "Tengen", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_dragnrevjRomInfo, md_dragnrevjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Duke Nukem 3D (Bra)
-static struct BurnRomInfo md_dukenk3dRomDesc[] = {
- { "duke nukem 3d (bra).bin", 0x400000, 0x6bd2accb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_dukenk3d)
-STD_ROM_FN(md_dukenk3d)
-
-struct BurnDriver BurnDrvmd_dukenk3d = {
- "md_dukenk3d", NULL, NULL, NULL, "1998",
- "Duke Nukem 3D (Bra)\0", NULL, "Tec Toy", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_dukenk3dRomInfo, md_dukenk3dRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Dune II - Battle for Arrakis (Euro)
-static struct BurnRomInfo md_dune2RomDesc[] = {
- { "dune ii - battle for arrakis (euro).bin", 0x100000, 0xb58ae71d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_dune2)
-STD_ROM_FN(md_dune2)
-
-struct BurnDriver BurnDrvmd_dune2 = {
- "md_dune2", NULL, NULL, NULL, "1993",
- "Dune II - Battle for Arrakis (Euro)\0", NULL, "Virgin Interactive", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_dune2RomInfo, md_dune2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Dune II - Kampf um den Wustenplaneten (Ger)
-static struct BurnRomInfo md_dune2gRomDesc[] = {
- { "dune ii - kampf um den wustenplaneten (germany).bin", 0x100000, 0x39790728, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_dune2g)
-STD_ROM_FN(md_dune2g)
-
-struct BurnDriver BurnDrvmd_dune2g = {
- "md_dune2g", "md_dune2", NULL, NULL, "1993",
- "Dune II - Kampf um den Wustenplaneten (Ger)\0", NULL, "Virgin Interactive", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_dune2gRomInfo, md_dune2gRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Dune - The Battle for Arrakis (USA)
-static struct BurnRomInfo md_duneuRomDesc[] = {
- { "dune - the battle for arrakis (usa).bin", 0x100000, 0x4dea40ba, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_duneu)
-STD_ROM_FN(md_duneu)
-
-struct BurnDriver BurnDrvmd_duneu = {
- "md_duneu", "md_dune2", NULL, NULL, "1993",
- "Dune - The Battle for Arrakis (USA)\0", NULL, "Virgin Interactive", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_duneuRomInfo, md_duneuRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Dungeons & Dragons - Warriors of the Eternal Sun (Euro, USA)
-static struct BurnRomInfo md_ddwaresRomDesc[] = {
- { "dungeons & dragons - warriors of the eternal sun (euro, usa).bin", 0x100000, 0xaf4a9cd7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ddwares)
-STD_ROM_FN(md_ddwares)
-
-struct BurnDriver BurnDrvmd_ddwares = {
- "md_ddwares", NULL, NULL, NULL, "1992",
- "Dungeons & Dragons - Warriors of the Eternal Sun (Euro, USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_ddwaresRomInfo, md_ddwaresRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Dyna Brothers (Jpn)
-static struct BurnRomInfo md_dynabrRomDesc[] = {
- { "dyna brothers (jpn).bin", 0x100000, 0x360c1b20, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_dynabr)
-STD_ROM_FN(md_dynabr)
-
-struct BurnDriver BurnDrvmd_dynabr = {
- "md_dynabr", NULL, NULL, NULL, "1992",
- "Dyna Brothers (Jpn)\0", NULL, "CRI", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_dynabrRomInfo, md_dynabrRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Dyna Brothers 2 (Jpn)
-static struct BurnRomInfo md_dynabr2RomDesc[] = {
- { "dyna brothers 2 (jpn).bin", 0x200000, 0x47e0a64e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_dynabr2)
-STD_ROM_FN(md_dynabr2)
-
-struct BurnDriver BurnDrvmd_dynabr2 = {
- "md_dynabr2", NULL, NULL, NULL, "1993",
- "Dyna Brothers 2 (Jpn)\0", NULL, "CRI", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_dynabr2RomInfo, md_dynabr2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Dyna Brothers 2 - Sega Channel Special (Jpn, Sega Channel)
-static struct BurnRomInfo md_dynabr2spRomDesc[] = {
- { "dyna brothers 2 - sega channel special (jpn).bin", 0x280000, 0xba3554bc, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_dynabr2sp)
-STD_ROM_FN(md_dynabr2sp)
-
-struct BurnDriver BurnDrvmd_dynabr2sp = {
- "md_dynabr2sp", "md_dynabr2", NULL, NULL, "1991",
- "Dyna Brothers 2 - Sega Channel Special (Jpn, Sega Channel)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_dynabr2spRomInfo, md_dynabr2spRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Dynamite Duke (World, Rev. A)
-static struct BurnRomInfo md_dyndukeRomDesc[] = {
- { "mpr-13438a.bin", 0x080000, 0x246f0bda, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_dynduke)
-STD_ROM_FN(md_dynduke)
-
-struct BurnDriver BurnDrvmd_dynduke = {
- "md_dynduke", NULL, NULL, NULL, "1990",
- "Dynamite Duke (World, Rev. A)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_dyndukeRomInfo, md_dyndukeRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Dynamite Duke (World)
-static struct BurnRomInfo md_dynduke1RomDesc[] = {
- { "mpr-13438.bin", 0x080000, 0x39d01c8c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_dynduke1)
-STD_ROM_FN(md_dynduke1)
-
-struct BurnDriver BurnDrvmd_dynduke1 = {
- "md_dynduke1", "md_dynduke", NULL, NULL, "1990",
- "Dynamite Duke (World)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_dynduke1RomInfo, md_dynduke1RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Dynamite Headdy (Euro, USA)
-static struct BurnRomInfo md_dheadRomDesc[] = {
- { "mpr-16990.bin", 0x200000, 0x3dfeeb77, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_dhead)
-STD_ROM_FN(md_dhead)
-
-struct BurnDriver BurnDrvmd_dhead = {
- "md_dhead", NULL, NULL, NULL, "1994",
- "Dynamite Headdy (Euro, USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_dheadRomInfo, md_dheadRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Dynamite Headdy (Jpn)
-static struct BurnRomInfo md_dheadjRomDesc[] = {
- { "dynamite headdy (jpn).bin", 0x200000, 0xd03cdb53, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_dheadj)
-STD_ROM_FN(md_dheadj)
-
-struct BurnDriver BurnDrvmd_dheadj = {
- "md_dheadj", "md_dhead", NULL, NULL, "1994",
- "Dynamite Headdy (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_dheadjRomInfo, md_dheadjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Dynamite Headdy (Jpn, Prototype)
-static struct BurnRomInfo md_dheadjpRomDesc[] = {
- { "dynamite headdy (jpn) (beta).bin", 0x200000, 0x5c25e934, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_dheadjp)
-STD_ROM_FN(md_dheadjp)
-
-struct BurnDriver BurnDrvmd_dheadjp = {
- "md_dheadjp", "md_dhead", NULL, NULL, "1994",
- "Dynamite Headdy (Jpn, Prototype)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_dheadjpRomInfo, md_dheadjpRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Dynamite Headdy (Prototype, 19940614-CABEZA)
-static struct BurnRomInfo md_dheadp3RomDesc[] = {
- { "dynamite headdy (prototype - jun 14, 1994 - cabeza).bin", 0x200000, 0x971ef24c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_dheadp3)
-STD_ROM_FN(md_dheadp3)
-
-struct BurnDriver BurnDrvmd_dheadp3 = {
- "md_dheadp3", "md_dhead", NULL, NULL, "1994",
- "Dynamite Headdy (Prototype, 19940614-CABEZA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_dheadp3RomInfo, md_dheadp3RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Dynamite Headdy (Prototype, 19940616)
-static struct BurnRomInfo md_dheadp2RomDesc[] = {
- { "dynamite headdy (prototype - jun 16, 1994).bin", 0x200000, 0xf8a96719, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_dheadp2)
-STD_ROM_FN(md_dheadp2)
-
-struct BurnDriver BurnDrvmd_dheadp2 = {
- "md_dheadp2", "md_dhead", NULL, NULL, "1994",
- "Dynamite Headdy (Prototype, 19940616)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_dheadp2RomInfo, md_dheadp2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Dynamite Headdy (Prototype, 19940622)
-static struct BurnRomInfo md_dheadp1RomDesc[] = {
- { "dynamite headdy (prototype - jun 22, 1994).bin", 0x200000, 0x61001ec8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_dheadp1)
-STD_ROM_FN(md_dheadp1)
-
-struct BurnDriver BurnDrvmd_dheadp1 = {
- "md_dheadp1", "md_dhead", NULL, NULL, "1994",
- "Dynamite Headdy (Prototype, 19940622)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_dheadp1RomInfo, md_dheadp1RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// EA Hockey (Euro)
-static struct BurnRomInfo md_eahockeyRomDesc[] = {
- { "ea hockey (euro).bin", 0x080000, 0x9bfc279c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_eahockey)
-STD_ROM_FN(md_eahockey)
-
-struct BurnDriver BurnDrvmd_eahockey = {
- "md_eahockey", NULL, NULL, NULL, "1991",
- "EA Hockey (Euro)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_eahockeyRomInfo, md_eahockeyRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// EA Hockey (Jpn)
-static struct BurnRomInfo md_eahockeyjRomDesc[] = {
- { "ea hockey (jpn).bin", 0x080000, 0x9dcdc894, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_eahockeyj)
-STD_ROM_FN(md_eahockeyj)
-
-struct BurnDriver BurnDrvmd_eahockeyj = {
- "md_eahockeyj", "md_eahockey", NULL, NULL, "1992",
- "EA Hockey (Jpn)\0", NULL, "Electronic Arts Victor", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_eahockeyjRomInfo, md_eahockeyjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NHL Hockey (USA)
-static struct BurnRomInfo md_nhlRomDesc[] = {
- { "nhl hockey (usa).bin", 0x080000, 0x2641653f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nhl)
-STD_ROM_FN(md_nhl)
-
-struct BurnDriver BurnDrvmd_nhl = {
- "md_nhl", NULL, NULL, NULL, "1991",
- "NHL Hockey (USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_nhlRomInfo, md_nhlRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// EA Sports Double Header (Euro)
-static struct BurnRomInfo md_easportsRomDesc[] = {
- { "ea304.bin", 0x100000, 0xa0b54cbc, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_easports)
-STD_ROM_FN(md_easports)
-
-struct BurnDriver BurnDrvmd_easports = {
- "md_easports", NULL, NULL, NULL, "1993",
- "EA Sports Double Header (Euro)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_easportsRomInfo, md_easportsRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Earnest Evans (USA)
-static struct BurnRomInfo md_earnestRomDesc[] = {
- { "earnest evans (usa).bin", 0x100000, 0xa243816d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_earnest)
-STD_ROM_FN(md_earnest)
-
-struct BurnDriver BurnDrvmd_earnest = {
- "md_earnest", NULL, NULL, NULL, "1992",
- "Earnest Evans (USA)\0", NULL, "Renovation", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_earnestRomInfo, md_earnestRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Earthworm Jim (Euro)
-static struct BurnRomInfo md_ejimRomDesc[] = {
- { "earthworm jim (euro).bin", 0x300000, 0x1c07b337, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ejim)
-STD_ROM_FN(md_ejim)
-
-struct BurnDriver BurnDrvmd_ejim = {
- "md_ejim", NULL, NULL, NULL, "1994",
- "Earthworm Jim (Euro)\0", NULL, "Virgin Interactive", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_ejimRomInfo, md_ejimRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Earthworm Jim (USA)
-static struct BurnRomInfo md_ejimuRomDesc[] = {
- { "earthworm jim (usa).bin", 0x300000, 0xdf3acf59, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ejimu)
-STD_ROM_FN(md_ejimu)
-
-struct BurnDriver BurnDrvmd_ejimu = {
- "md_ejimu", "md_ejim", NULL, NULL, "1994",
- "Earthworm Jim (USA)\0", NULL, "Playmates Interactive", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_ejimuRomInfo, md_ejimuRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Earthworm Jim 2 (Euro)
-static struct BurnRomInfo md_ejim2RomDesc[] = {
- { "earthworm jim 2 (euro).bin", 0x300000, 0xaf235fdf, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ejim2)
-STD_ROM_FN(md_ejim2)
-
-struct BurnDriver BurnDrvmd_ejim2 = {
- "md_ejim2", NULL, NULL, NULL, "1995",
- "Earthworm Jim 2 (Euro)\0", NULL, "Virgin Interactive", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_ejim2RomInfo, md_ejim2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Earthworm Jim 2 (USA)
-static struct BurnRomInfo md_ejim2uRomDesc[] = {
- { "earthworm jim 2 (usa).bin", 0x300000, 0xd57f8ba7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ejim2u)
-STD_ROM_FN(md_ejim2u)
-
-struct BurnDriver BurnDrvmd_ejim2u = {
- "md_ejim2u", "md_ejim2", NULL, NULL, "1996",
- "Earthworm Jim 2 (USA)\0", NULL, "Playmates Interactive", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_ejim2uRomInfo, md_ejim2uRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Ecco the Dolphin (Euro, USA, Kor)
-static struct BurnRomInfo md_eccoRomDesc[] = {
- { "mpr-15265.bin", 0x100000, 0x45547390, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ecco)
-STD_ROM_FN(md_ecco)
-
-struct BurnDriver BurnDrvmd_ecco = {
- "md_ecco", NULL, NULL, NULL, "1993",
- "Ecco the Dolphin (Euro, USA, Kor)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_eccoRomInfo, md_eccoRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Ecco the Dolphin (Jpn)
-static struct BurnRomInfo md_eccojRomDesc[] = {
- { "mpr-15702.bin", 0x100000, 0x6520304d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_eccoj)
-STD_ROM_FN(md_eccoj)
-
-struct BurnDriver BurnDrvmd_eccoj = {
- "md_eccoj", "md_ecco", NULL, NULL, "1993",
- "Ecco the Dolphin (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_eccojRomInfo, md_eccojRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Ecco - The Tides of Time (Euro)
-static struct BurnRomInfo md_ecco2RomDesc[] = {
- { "ecco - the tides of time (euro).bin", 0x200000, 0x7b1bf89c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ecco2)
-STD_ROM_FN(md_ecco2)
-
-struct BurnDriver BurnDrvmd_ecco2 = {
- "md_ecco2", NULL, NULL, NULL, "1994",
- "Ecco - The Tides of Time (Euro)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_ecco2RomInfo, md_ecco2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Ecco - The Tides of Time (USA, Prototype)
-static struct BurnRomInfo md_ecco2pRomDesc[] = {
- { "ecco - the tides of time (beta).bin", 0x200000, 0x8db60749, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ecco2p)
-STD_ROM_FN(md_ecco2p)
-
-struct BurnDriver BurnDrvmd_ecco2p = {
- "md_ecco2p", "md_ecco2", NULL, NULL, "1994",
- "Ecco - The Tides of Time (USA, Prototype)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_ecco2pRomInfo, md_ecco2pRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Ecco - The Tides of Time (USA, Prototype, Alt)
-static struct BurnRomInfo md_ecco2p1RomDesc[] = {
- { "ecco - the tides of time (beta, alt).bin", 0x200000, 0x1d1470ea, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ecco2p1)
-STD_ROM_FN(md_ecco2p1)
-
-struct BurnDriver BurnDrvmd_ecco2p1 = {
- "md_ecco2p1", "md_ecco2", NULL, NULL, "1994",
- "Ecco - The Tides of Time (USA, Prototype, Alt)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_ecco2p1RomInfo, md_ecco2p1RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Ecco - The Tides of Time (USA, Prototype, 19940429)
-static struct BurnRomInfo md_ecco2p2RomDesc[] = {
- { "ecco ii - the tides of time (prototype - apr 29, 1994).bin", 0x200000, 0x5af83ecb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ecco2p2)
-STD_ROM_FN(md_ecco2p2)
-
-struct BurnDriver BurnDrvmd_ecco2p2 = {
- "md_ecco2p2", "md_ecco2", NULL, NULL, "1994",
- "Ecco - The Tides of Time (USA, Prototype, 19940429)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_ecco2p2RomInfo, md_ecco2p2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Ecco the Dolphin II (Jpn)
-static struct BurnRomInfo md_ecco2jRomDesc[] = {
- { "mpr-16996.bin", 0x200000, 0x062d439c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ecco2j)
-STD_ROM_FN(md_ecco2j)
-
-struct BurnDriver BurnDrvmd_ecco2j = {
- "md_ecco2j", "md_ecco2", NULL, NULL, "1994",
- "Ecco the Dolphin II (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_ecco2jRomInfo, md_ecco2jRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Ecco - The Tides of Time (USA, Prototype X11, 19940413)
-static struct BurnRomInfo md_ecco2px11RomDesc[] = {
- { "ecco - the tides of time (prototype x11 - apr 13, 1994).bin", 0x200000, 0xb5d64817, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ecco2px11)
-STD_ROM_FN(md_ecco2px11)
-
-struct BurnDriver BurnDrvmd_ecco2px11 = {
- "md_ecco2px11", "md_ecco2", NULL, NULL, "1994",
- "Ecco - The Tides of Time (USA, Prototype X11, 19940413)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_ecco2px11RomInfo, md_ecco2px11RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Ecco - The Tides of Time (USA)
-static struct BurnRomInfo md_ecco2uRomDesc[] = {
- { "ecco - the tides of time (usa).bin", 0x200000, 0xccb21f98, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ecco2u)
-STD_ROM_FN(md_ecco2u)
-
-struct BurnDriver BurnDrvmd_ecco2u = {
- "md_ecco2u", "md_ecco2", NULL, NULL, "1994",
- "Ecco - The Tides of Time (USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_ecco2uRomInfo, md_ecco2uRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Ecco Jr. (USA, Oceania, 199502)
-static struct BurnRomInfo md_eccojrRomDesc[] = {
- { "ecco jr. (usa, aus) (february 1995).bin", 0x100000, 0x6c6f4b89, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_eccojr)
-STD_ROM_FN(md_eccojr)
-
-struct BurnDriver BurnDrvmd_eccojr = {
- "md_eccojr", NULL, NULL, NULL, "1995",
- "Ecco Jr. (USA, Oceania, 199502)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_eccojrRomInfo, md_eccojrRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Ecco Jr. (USA, Oceania, 199503)
-static struct BurnRomInfo md_eccojr1RomDesc[] = {
- { "ecco jr. (usa, aus) (march 1995).bin", 0x100000, 0x3c517975, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_eccojr1)
-STD_ROM_FN(md_eccojr1)
-
-struct BurnDriver BurnDrvmd_eccojr1 = {
- "md_eccojr1", "md_eccojr", NULL, NULL, "1995",
- "Ecco Jr. (USA, Oceania, 199503)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_eccojr1RomInfo, md_eccojr1RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// El Viento (USA)
-static struct BurnRomInfo md_elvientoRomDesc[] = {
- { "mpr-14336.bin", 0x100000, 0x070a1ceb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_elviento)
-STD_ROM_FN(md_elviento)
-
-struct BurnDriver BurnDrvmd_elviento = {
- "md_elviento", NULL, NULL, NULL, "1991",
- "El Viento (USA)\0", NULL, "Renovation", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_elvientoRomInfo, md_elvientoRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// El Viento (Jpn)
-static struct BurnRomInfo md_elvientojRomDesc[] = {
- { "el viento (jpn).bin", 0x100000, 0x6091c36e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_elvientoj)
-STD_ROM_FN(md_elvientoj)
-
-struct BurnDriver BurnDrvmd_elvientoj = {
- "md_elvientoj", "md_elviento", NULL, NULL, "1991",
- "El Viento (Jpn)\0", NULL, "Wolf Team", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_elvientojRomInfo, md_elvientojRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Elemental Master (USA)
-static struct BurnRomInfo md_elemastRomDesc[] = {
- { "elemental master (usa).bin", 0x080000, 0x390918c6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_elemast)
-STD_ROM_FN(md_elemast)
-
-struct BurnDriver BurnDrvmd_elemast = {
- "md_elemast", NULL, NULL, NULL, "1993",
- "Elemental Master (USA)\0", NULL, "Renovation", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_elemastRomInfo, md_elemastRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Elemental Master (Jpn)
-static struct BurnRomInfo md_elemastjRomDesc[] = {
- { "elemental master (jpn).bin", 0x080000, 0x5f553e29, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_elemastj)
-STD_ROM_FN(md_elemastj)
-
-struct BurnDriver BurnDrvmd_elemastj = {
- "md_elemastj", "md_elemast", NULL, NULL, "1990",
- "Elemental Master (Jpn)\0", NULL, "Technosoft", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_elemastjRomInfo, md_elemastjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Eliminate Down (Jpn)
-static struct BurnRomInfo md_elimdownRomDesc[] = {
- { "eliminate down (jpn).bin", 0x100000, 0x48467542, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_elimdown)
-STD_ROM_FN(md_elimdown)
-
-struct BurnDriver BurnDrvmd_elimdown = {
- "md_elimdown", NULL, NULL, NULL, "1993",
- "Eliminate Down (Jpn)\0", NULL, "Soft Vision", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_elimdownRomInfo, md_elimdownRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Elitserien 95 (Swe)
-static struct BurnRomInfo md_elit95RomDesc[] = {
- { "swed9584.bin", 0x200000, 0xe10a25c0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_elit95)
-STD_ROM_FN(md_elit95)
-
-struct BurnDriver BurnDrvmd_elit95 = {
- "md_elit95", NULL, NULL, NULL, "1994",
- "Elitserien 95 (Swe)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_elit95RomInfo, md_elit95RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Elitserien 96 (Swe)
-static struct BurnRomInfo md_elit96RomDesc[] = {
- { "elitserien 96 (sweden).bin", 0x200000, 0x9821d0a3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_elit96)
-STD_ROM_FN(md_elit96)
-
-struct BurnDriver BurnDrvmd_elit96 = {
- "md_elit96", NULL, NULL, NULL, "1995",
- "Elitserien 96 (Swe)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_elit96RomInfo, md_elit96RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Empire of Steel (Euro)
-static struct BurnRomInfo md_empsteelRomDesc[] = {
- { "empire of steel (euro).bin", 0x100000, 0xe5517b77, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_empsteel)
-STD_ROM_FN(md_empsteel)
-
-struct BurnDriver BurnDrvmd_empsteel = {
- "md_empsteel", NULL, NULL, NULL, "1992",
- "Empire of Steel (Euro)\0", NULL, "Flying Edge", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_empsteelRomInfo, md_empsteelRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Steel Empire (USA)
-static struct BurnRomInfo md_steelempRomDesc[] = {
- { "steel empire (usa).bin", 0x100000, 0xd0e7a0b6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_steelemp)
-STD_ROM_FN(md_steelemp)
-
-struct BurnDriver BurnDrvmd_steelemp = {
- "md_steelemp", "md_empsteel", NULL, NULL, "1992",
- "Steel Empire (USA)\0", NULL, "Flying Edge", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_steelempRomInfo, md_steelempRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Koutetsu Teikoku (Jpn)
-static struct BurnRomInfo md_koteteikRomDesc[] = {
- { "koutetsu teikoku (jpn).bin", 0x100000, 0x755d0b8a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_koteteik)
-STD_ROM_FN(md_koteteik)
-
-struct BurnDriver BurnDrvmd_koteteik = {
- "md_koteteik", "md_empsteel", NULL, NULL, "1992",
- "Koutetsu Teikoku (Jpn)\0", NULL, "Hot-B", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_koteteikRomInfo, md_koteteikRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Escape from Mars Starring Taz (Euro)
-static struct BurnRomInfo md_tazmarsRomDesc[] = {
- { "taz in escape from mars (euro).bin", 0x200000, 0x62100099, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_tazmars)
-STD_ROM_FN(md_tazmars)
-
-struct BurnDriver BurnDrvmd_tazmars = {
- "md_tazmars", NULL, NULL, NULL, "1994",
- "Escape from Mars Starring Taz (Euro)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_tazmarsRomInfo, md_tazmarsRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Escape from Mars Starring Taz (Prototype, 19940418)
-static struct BurnRomInfo md_tazmarsp10RomDesc[] = {
- { "taz in escape from mars (prototype - apr 18, 1994).bin", 0x200000, 0xbfa776ec, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_tazmarsp10)
-STD_ROM_FN(md_tazmarsp10)
-
-struct BurnDriver BurnDrvmd_tazmarsp10 = {
- "md_tazmarsp10", "md_tazmars", NULL, NULL, "1994",
- "Escape from Mars Starring Taz (Prototype, 19940418)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_tazmarsp10RomInfo, md_tazmarsp10RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Escape from Mars Starring Taz (Prototype, 19940602)
-static struct BurnRomInfo md_tazmarsp06RomDesc[] = {
- { "taz in escape from mars (prototype - jun 02, 1994).bin", 0x200000, 0x39f345c2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_tazmarsp06)
-STD_ROM_FN(md_tazmarsp06)
-
-struct BurnDriver BurnDrvmd_tazmarsp06 = {
- "md_tazmarsp06", "md_tazmars", NULL, NULL, "1994",
- "Escape from Mars Starring Taz (Prototype, 19940602)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_tazmarsp06RomInfo, md_tazmarsp06RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Escape from Mars Starring Taz (Prototype, 19940607)
-static struct BurnRomInfo md_tazmarsp05RomDesc[] = {
- { "taz in escape from mars (prototype - jun 07, 1994).bin", 0x200000, 0x3481e709, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_tazmarsp05)
-STD_ROM_FN(md_tazmarsp05)
-
-struct BurnDriver BurnDrvmd_tazmarsp05 = {
- "md_tazmarsp05", "md_tazmars", NULL, NULL, "1994",
- "Escape from Mars Starring Taz (Prototype, 19940607)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_tazmarsp05RomInfo, md_tazmarsp05RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Escape from Mars Starring Taz (Prototype, 19940610)
-static struct BurnRomInfo md_tazmarsp04RomDesc[] = {
- { "taz in escape from mars (prototype - jun 10, 1994).bin", 0x200000, 0x832f4cb4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_tazmarsp04)
-STD_ROM_FN(md_tazmarsp04)
-
-struct BurnDriver BurnDrvmd_tazmarsp04 = {
- "md_tazmarsp04", "md_tazmars", NULL, NULL, "1994",
- "Escape from Mars Starring Taz (Prototype, 19940610)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_tazmarsp04RomInfo, md_tazmarsp04RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Escape from Mars Starring Taz (Prototype, 19940614)
-static struct BurnRomInfo md_tazmarsp03RomDesc[] = {
- { "taz in escape from mars (prototype - jun 14, 1994).bin", 0x200000, 0x2badb65b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_tazmarsp03)
-STD_ROM_FN(md_tazmarsp03)
-
-struct BurnDriver BurnDrvmd_tazmarsp03 = {
- "md_tazmarsp03", "md_tazmars", NULL, NULL, "1994",
- "Escape from Mars Starring Taz (Prototype, 19940614)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_tazmarsp03RomInfo, md_tazmarsp03RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Escape from Mars Starring Taz (Prototype, 19940618-A)
-static struct BurnRomInfo md_tazmarsp02RomDesc[] = {
- { "taz in escape from mars (prototype - jun 18, 1994 - a).bin", 0x200000, 0x3c4b1e9c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_tazmarsp02)
-STD_ROM_FN(md_tazmarsp02)
-
-struct BurnDriver BurnDrvmd_tazmarsp02 = {
- "md_tazmarsp02", "md_tazmars", NULL, NULL, "1994",
- "Escape from Mars Starring Taz (Prototype, 19940618-A)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_tazmarsp02RomInfo, md_tazmarsp02RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Escape from Mars Starring Taz (Prototype, 19940620)
-static struct BurnRomInfo md_tazmarsp01RomDesc[] = {
- { "taz in escape from mars (prototype - jun 20, 1994).bin", 0x200000, 0xf00f4203, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_tazmarsp01)
-STD_ROM_FN(md_tazmarsp01)
-
-struct BurnDriver BurnDrvmd_tazmarsp01 = {
- "md_tazmarsp01", "md_tazmars", NULL, NULL, "1994",
- "Escape from Mars Starring Taz (Prototype, 19940620)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_tazmarsp01RomInfo, md_tazmarsp01RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Escape from Mars Starring Taz (Prototype, 19940309)
-static struct BurnRomInfo md_tazmarsp11RomDesc[] = {
- { "taz in escape from mars (prototype - mar 09, 1994).bin", 0x1d9936, 0xe3c2271e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_tazmarsp11)
-STD_ROM_FN(md_tazmarsp11)
-
-struct BurnDriver BurnDrvmd_tazmarsp11 = {
- "md_tazmarsp11", "md_tazmars", NULL, NULL, "1994",
- "Escape from Mars Starring Taz (Prototype, 19940309)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_tazmarsp11RomInfo, md_tazmarsp11RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Escape from Mars Starring Taz (Prototype, 19940509)
-static struct BurnRomInfo md_tazmarsp09RomDesc[] = {
- { "taz in escape from mars (prototype - may 09, 1994).bin", 0x200000, 0x11727086, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_tazmarsp09)
-STD_ROM_FN(md_tazmarsp09)
-
-struct BurnDriver BurnDrvmd_tazmarsp09 = {
- "md_tazmarsp09", "md_tazmars", NULL, NULL, "1994",
- "Escape from Mars Starring Taz (Prototype, 19940509)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_tazmarsp09RomInfo, md_tazmarsp09RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Escape from Mars Starring Taz (Prototype, 19940518)
-static struct BurnRomInfo md_tazmarsp08RomDesc[] = {
- { "taz in escape from mars (prototype - may 18, 1994).bin", 0x0b9584, 0x6e2666de, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_tazmarsp08)
-STD_ROM_FN(md_tazmarsp08)
-
-struct BurnDriver BurnDrvmd_tazmarsp08 = {
- "md_tazmarsp08", "md_tazmars", NULL, NULL, "1994",
- "Escape from Mars Starring Taz (Prototype, 19940518)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_tazmarsp08RomInfo, md_tazmarsp08RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Escape from Mars Starring Taz (Prototype, 19940523)
-static struct BurnRomInfo md_tazmarsp07RomDesc[] = {
- { "taz in escape from mars (prototype - may 23, 1994).bin", 0x200000, 0xea344fd2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_tazmarsp07)
-STD_ROM_FN(md_tazmarsp07)
-
-struct BurnDriver BurnDrvmd_tazmarsp07 = {
- "md_tazmarsp07", "md_tazmars", NULL, NULL, "1994",
- "Escape from Mars Starring Taz (Prototype, 19940523)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_tazmarsp07RomInfo, md_tazmarsp07RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Escape from Mars Starring Taz (USA)
-static struct BurnRomInfo md_tazmarsuRomDesc[] = {
- { "taz in escape from mars (usa).bin", 0x200000, 0x62009f8c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_tazmarsu)
-STD_ROM_FN(md_tazmarsu)
-
-struct BurnDriver BurnDrvmd_tazmarsu = {
- "md_tazmarsu", "md_tazmars", NULL, NULL, "1994",
- "Escape from Mars Starring Taz (USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_tazmarsuRomInfo, md_tazmarsuRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// ESPN Baseball Tonight (USA)
-static struct BurnRomInfo md_espnbbRomDesc[] = {
- { "espn baseball tonight (usa).bin", 0x200000, 0x96d8440c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_espnbb)
-STD_ROM_FN(md_espnbb)
-
-struct BurnDriver BurnDrvmd_espnbb = {
- "md_espnbb", NULL, NULL, NULL, "1995",
- "ESPN Baseball Tonight (USA)\0", NULL, "Sony Imagesoft", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_espnbbRomInfo, md_espnbbRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// ESPN National Hockey Night (USA)
-static struct BurnRomInfo md_espnhnRomDesc[] = {
- { "espn national hockey night (usa).bin", 0x200000, 0x1d08828c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_espnhn)
-STD_ROM_FN(md_espnhn)
-
-struct BurnDriver BurnDrvmd_espnhn = {
- "md_espnhn", NULL, NULL, NULL, "1994",
- "ESPN National Hockey Night (USA)\0", NULL, "Sony Imagesoft", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_espnhnRomInfo, md_espnhnRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// ESPN National Hockey Night (USA, Prototype)
-static struct BurnRomInfo md_espnhnpRomDesc[] = {
- { "espn national hockey night (usa) (beta).bin", 0x200000, 0xa427814a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_espnhnp)
-STD_ROM_FN(md_espnhnp)
-
-struct BurnDriver BurnDrvmd_espnhnp = {
- "md_espnhnp", "md_espnhn", NULL, NULL, "1994",
- "ESPN National Hockey Night (USA, Prototype)\0", NULL, "Sony Imagesoft", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_espnhnpRomInfo, md_espnhnpRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// ESPN Speedworld (USA)
-static struct BurnRomInfo md_espnspedRomDesc[] = {
- { "espn speed world (usa).bin", 0x200000, 0xf50be478, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_espnsped)
-STD_ROM_FN(md_espnsped)
-
-struct BurnDriver BurnDrvmd_espnsped = {
- "md_espnsped", NULL, NULL, NULL, "1994",
- "ESPN Speedworld (USA)\0", NULL, "Sony Imagesoft", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_espnspedRomInfo, md_espnspedRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// ESPN Sunday Night NFL (USA)
-static struct BurnRomInfo md_espnnflRomDesc[] = {
- { "espn sunday night nfl (usa).bin", 0x200000, 0x61e9c309, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_espnnfl)
-STD_ROM_FN(md_espnnfl)
-
-struct BurnDriver BurnDrvmd_espnnfl = {
- "md_espnnfl", NULL, NULL, NULL, "1994",
- "ESPN Sunday Night NFL (USA)\0", NULL, "Sony Imagesoft", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_espnnflRomInfo, md_espnnflRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Cyber Police ESWAT (Jpn, Rev. 0)
-static struct BurnRomInfo md_eswatjRomDesc[] = {
- { "mpr-13192.bin", 0x080000, 0x87b636a2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_eswatj)
-STD_ROM_FN(md_eswatj)
-
-struct BurnDriver BurnDrvmd_eswatj = {
- "md_eswatj", "md_eswat", NULL, NULL, "1990",
- "Cyber Police ESWAT (Jpn, Rev. 0)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_eswatjRomInfo, md_eswatjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Eternal Champions (Euro)
-static struct BurnRomInfo md_eternalcRomDesc[] = {
- { "mpr-16212+mpr-16213.bin", 0x300000, 0xb9512f5e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_eternalc)
-STD_ROM_FN(md_eternalc)
-
-struct BurnDriver BurnDrvmd_eternalc = {
- "md_eternalc", NULL, NULL, NULL, "1994",
- "Eternal Champions (Euro)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_eternalcRomInfo, md_eternalcRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Eternal Champions (Euro, Prototype)
-static struct BurnRomInfo md_eternalcpRomDesc[] = {
- { "eternal champions (euro) (beta).bin", 0x300000, 0xe0665f06, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_eternalcp)
-STD_ROM_FN(md_eternalcp)
-
-struct BurnDriver BurnDrvmd_eternalcp = {
- "md_eternalcp", "md_eternalc", NULL, NULL, "1994",
- "Eternal Champions (Euro, Prototype)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_eternalcpRomInfo, md_eternalcpRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Eternal Champions (Jpn, Kor)
-static struct BurnRomInfo md_eternalcjRomDesc[] = {
- { "eternal champions (jpn, kor).bin", 0x300000, 0x66aa3c64, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_eternalcj)
-STD_ROM_FN(md_eternalcj)
-
-struct BurnDriver BurnDrvmd_eternalcj = {
- "md_eternalcj", "md_eternalc", NULL, NULL, "1994",
- "Eternal Champions (Jpn, Kor)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_eternalcjRomInfo, md_eternalcjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Eternal Champions (Jpn, Prototype, 19931117)
-static struct BurnRomInfo md_eternalcjpRomDesc[] = {
- { "eternal champions (jpn) (prototype - nov 17, 1993).bin", 0x2ff4b0, 0xc486b439, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_eternalcjp)
-STD_ROM_FN(md_eternalcjp)
-
-struct BurnDriver BurnDrvmd_eternalcjp = {
- "md_eternalcjp", "md_eternalc", NULL, NULL, "1994",
- "Eternal Champions (Jpn, Prototype, 19931117)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_eternalcjpRomInfo, md_eternalcjpRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Eternal Champions (USA)
-static struct BurnRomInfo md_eternalcuRomDesc[] = {
- { "eternal champions (usa).bin", 0x300000, 0x48f1a42e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_eternalcu)
-STD_ROM_FN(md_eternalcu)
-
-struct BurnDriver BurnDrvmd_eternalcu = {
- "md_eternalcu", "md_eternalc", NULL, NULL, "1994",
- "Eternal Champions (USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_eternalcuRomInfo, md_eternalcuRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// European Club Soccer (Euro)
-static struct BurnRomInfo md_euroclubRomDesc[] = {
- { "mpr-14776.bin", 0x080000, 0x6a5cf104, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_euroclub)
-STD_ROM_FN(md_euroclub)
-
-struct BurnDriver BurnDrvmd_euroclub = {
- "md_euroclub", NULL, NULL, NULL, "1992",
- "European Club Soccer (Euro)\0", NULL, "Virgin Games", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_euroclubRomInfo, md_euroclubRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// World Trophy Soccer (USA)
-static struct BurnRomInfo md_worldtsRomDesc[] = {
- { "world trophy soccer (usa).bin", 0x080000, 0x6e3edc7c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_worldts)
-STD_ROM_FN(md_worldts)
-
-struct BurnDriver BurnDrvmd_worldts = {
- "md_worldts", "md_euroclub", NULL, NULL, "1992",
- "World Trophy Soccer (USA)\0", NULL, "Virgin Games", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_worldtsRomInfo, md_worldtsRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// J. League Champion Soccer (Jpn)
-static struct BurnRomInfo md_jlcsRomDesc[] = {
- { "j. league champion soccer (jpn).bin", 0x080000, 0x453c405e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_jlcs)
-STD_ROM_FN(md_jlcs)
-
-struct BurnDriver BurnDrvmd_jlcs = {
- "md_jlcs", "md_euroclub", NULL, NULL, "1993",
- "J. League Champion Soccer (Jpn)\0", NULL, "Game Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_jlcsRomInfo, md_jlcsRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Exile (USA)
-static struct BurnRomInfo md_exileRomDesc[] = {
- { "exile (usa).bin", 0x100000, 0x1b569dc2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_exile)
-STD_ROM_FN(md_exile)
-
-struct BurnDriver BurnDrvmd_exile = {
- "md_exile", NULL, NULL, NULL, "1991",
- "Exile (USA)\0", NULL, "Renovation", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_exileRomInfo, md_exileRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Exile - Toki no Hazama e (Jpn)
-static struct BurnRomInfo md_exilejRomDesc[] = {
- { "exile - toki no hazama e (jpn).bin", 0x100000, 0x880bf311, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_exilej)
-STD_ROM_FN(md_exilej)
-
-struct BurnDriver BurnDrvmd_exilej = {
- "md_exilej", "md_exile", NULL, NULL, "1991",
- "Exile - Toki no Hazama e (Jpn)\0", NULL, "Riot", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_exilejRomInfo, md_exilejRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Exo Squad (Euro)
-static struct BurnRomInfo md_exosquadRomDesc[] = {
- { "exo squad (euro).bin", 0x100000, 0xb599b9f9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_exosquad)
-STD_ROM_FN(md_exosquad)
-
-struct BurnDriver BurnDrvmd_exosquad = {
- "md_exosquad", NULL, NULL, NULL, "1995",
- "Exo Squad (Euro)\0", NULL, "Virgin Interactive", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_exosquadRomInfo, md_exosquadRomName, NULL, NULL, MegadriveInputInfo, MegadrivePALDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Exo Squad (USA)
-static struct BurnRomInfo md_exosquaduRomDesc[] = {
- { "exo squad (usa).bin", 0x100000, 0x10ec03f3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_exosquadu)
-STD_ROM_FN(md_exosquadu)
-
-struct BurnDriver BurnDrvmd_exosquadu = {
- "md_exosquadu", "md_exosquad", NULL, NULL, "1995",
- "Exo Squad (USA)\0", NULL, "Playmates Interactive", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_exosquaduRomInfo, md_exosquaduRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Exo Squad (USA, Prototype)
-static struct BurnRomInfo md_exosquadupRomDesc[] = {
- { "exo squad (usa) (beta).bin", 0x100000, 0x70edf964, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_exosquadup)
-STD_ROM_FN(md_exosquadup)
-
-struct BurnDriver BurnDrvmd_exosquadup = {
- "md_exosquadup", "md_exosquad", NULL, NULL, "1995",
- "Exo Squad (USA, Prototype)\0", NULL, "Playmates Interactive", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_exosquadupRomInfo, md_exosquadupRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Exodus - Journey to the Promised Land (USA)
-static struct BurnRomInfo md_exodusRomDesc[] = {
- { "exodus - journey to the promised land (usa) (unl).bin", 0x080000, 0x22e6fc04, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_exodus)
-STD_ROM_FN(md_exodus)
-
-struct BurnDriver BurnDrvmd_exodus = {
- "md_exodus", NULL, NULL, NULL, "1993",
- "Exodus - Journey to the Promised Land (USA)\0", NULL, "Wisdom Tree", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_exodusRomInfo, md_exodusRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// F-117 Night Storm (Euro, USA)
-static struct BurnRomInfo md_f117RomDesc[] = {
- { "f-117 night storm (euro, usa).bin", 0x200000, 0x1bf67a07, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_f117)
-STD_ROM_FN(md_f117)
-
-struct BurnDriver BurnDrvmd_f117 = {
- "md_f117", NULL, NULL, NULL, "1993",
- "F-117 Night Storm (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_f117RomInfo, md_f117RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// F-117 Stealth - Operation Night Storm (Jpn)
-static struct BurnRomInfo md_f117jRomDesc[] = {
- { "f-117 stealth - operation night storm (jpn).bin", 0x200000, 0xea6e421a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_f117j)
-STD_ROM_FN(md_f117j)
-
-struct BurnDriver BurnDrvmd_f117j = {
- "md_f117j", "md_f117", NULL, NULL, "1994",
- "F-117 Stealth - Operation Night Storm (Jpn)\0", NULL, "Electronic Arts Victor", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_f117jRomInfo, md_f117jRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// F-15 Strike Eagle II (Euro)
-static struct BurnRomInfo md_f15se2RomDesc[] = {
- { "f-15 strike eagle ii (euro).bin", 0x100000, 0xe98ee370, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_f15se2)
-STD_ROM_FN(md_f15se2)
-
-struct BurnDriver BurnDrvmd_f15se2 = {
- "md_f15se2", NULL, NULL, NULL, "1993",
- "F-15 Strike Eagle II (Euro)\0", NULL, "Microprose", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_f15se2RomInfo, md_f15se2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// F-15 Strike Eagle II (USA)
-static struct BurnRomInfo md_f15se2uRomDesc[] = {
- { "f-15 strike eagle ii (usa).bin", 0x100000, 0x412c4d60, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_f15se2u)
-STD_ROM_FN(md_f15se2u)
-
-struct BurnDriver BurnDrvmd_f15se2u = {
- "md_f15se2u", "md_f15se2", NULL, NULL, "1993",
- "F-15 Strike Eagle II (USA)\0", NULL, "Microprose", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_f15se2uRomInfo, md_f15se2uRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// F-15 Strike Eagle II (USA, Prototype)
-static struct BurnRomInfo md_f15se2upRomDesc[] = {
- { "f-15 strike eagle ii (usa) (beta).bin", 0x100000, 0xfd4f5a01, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_f15se2up)
-STD_ROM_FN(md_f15se2up)
-
-struct BurnDriver BurnDrvmd_f15se2up = {
- "md_f15se2up", "md_f15se2", NULL, NULL, "1993",
- "F-15 Strike Eagle II (USA, Prototype)\0", NULL, "Microprose", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_f15se2upRomInfo, md_f15se2upRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// F-22 Interceptor (Euro, USA, 199206)
-static struct BurnRomInfo md_f22RomDesc[] = {
- { "f-22 interceptor (euro, usa) (june 1992).bin", 0x0c0000, 0xdd19b2b3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_f22)
-STD_ROM_FN(md_f22)
-
-struct BurnDriver BurnDrvmd_f22 = {
- "md_f22", NULL, NULL, NULL, "1991",
- "F-22 Interceptor (Euro, USA, 199206)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_f22RomInfo, md_f22RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// F-22 Interceptor (Euro, USA, Prototype)
-static struct BurnRomInfo md_f22pRomDesc[] = {
- { "f-22 interceptor (euro, usa) (beta).bin", 0x0c0000, 0xd6a880a4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_f22p)
-STD_ROM_FN(md_f22p)
-
-struct BurnDriver BurnDrvmd_f22p = {
- "md_f22p", "md_f22", NULL, NULL, "1991",
- "F-22 Interceptor (Euro, USA, Prototype)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_f22pRomInfo, md_f22pRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// F-22 Interceptor (Jpn)
-static struct BurnRomInfo md_f22jRomDesc[] = {
- { "f-22 interceptor (jpn).bin", 0x0c0000, 0xfb55c785, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_f22j)
-STD_ROM_FN(md_f22j)
-
-struct BurnDriver BurnDrvmd_f22j = {
- "md_f22j", "md_f22", NULL, NULL, "1993",
- "F-22 Interceptor (Jpn)\0", NULL, "Electronic Arts Victor", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_f22jRomInfo, md_f22jRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// F1 (Euro)
-static struct BurnRomInfo md_f1RomDesc[] = {
- { "mpr-15834.bin", 0x100000, 0xfbdd4520, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_f1)
-STD_ROM_FN(md_f1)
-
-struct BurnDriver BurnDrvmd_f1 = {
- "md_f1", NULL, NULL, NULL, "1993",
- "F1 (Euro)\0", NULL, "Tengen", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_f1RomInfo, md_f1RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Formula One (USA)
-static struct BurnRomInfo md_formula1RomDesc[] = {
- { "formula one (usa).bin", 0x100000, 0xccd73738, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_formula1)
-STD_ROM_FN(md_formula1)
-
-struct BurnDriver BurnDrvmd_formula1 = {
- "md_formula1", "md_f1", NULL, NULL, "1993",
- "Formula One (USA)\0", NULL, "Tengen", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_formula1RomInfo, md_formula1RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// F1 - World Championship Edition (Euro)
-static struct BurnRomInfo md_f1wcRomDesc[] = {
- { "f1 - world championship edition (euro).bin", 0x200000, 0x74cee0a7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_f1wc)
-STD_ROM_FN(md_f1wc)
-
-struct BurnDriver BurnDrvmd_f1wc = {
- "md_f1wc", NULL, NULL, NULL, "1993",
- "F1 - World Championship Edition (Euro)\0", NULL, "Domark", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_f1wcRomInfo, md_f1wcRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// F1 - World Championship Edition (Euro, Prototype)
-static struct BurnRomInfo md_f1wcpRomDesc[] = {
- { "f1 - world championship edition (euro) (beta).bin", 0x200000, 0x2269ed6b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_f1wcp)
-STD_ROM_FN(md_f1wcp)
-
-struct BurnDriver BurnDrvmd_f1wcp = {
- "md_f1wcp", "md_f1wc", NULL, NULL, "1993",
- "F1 - World Championship Edition (Euro, Prototype)\0", NULL, "Domark", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_f1wcpRomInfo, md_f1wcpRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// F1 Circus MD (Jpn)
-static struct BurnRomInfo md_f1circusRomDesc[] = {
- { "f1 circus md (jpn).bin", 0x080000, 0x5d30befb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_f1circus)
-STD_ROM_FN(md_f1circus)
-
-struct BurnDriver BurnDrvmd_f1circus = {
- "md_f1circus", NULL, NULL, NULL, "1991",
- "F1 Circus MD (Jpn)\0", NULL, "Nichibutsu", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_f1circusRomInfo, md_f1circusRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Faery Tale Adventure (Euro, USA)
-static struct BurnRomInfo md_faerytalRomDesc[] = {
- { "faery tale adventure, the (euro, usa).bin", 0x080000, 0x963f4969, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_faerytal)
-STD_ROM_FN(md_faerytal)
-
-struct BurnDriver BurnDrvmd_faerytal = {
- "md_faerytal", NULL, NULL, NULL, "1991",
- "The Faery Tale Adventure (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_faerytalRomInfo, md_faerytalRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Family Feud (USA)
-static struct BurnRomInfo md_famfeudRomDesc[] = {
- { "family feud (usa).bin", 0x080000, 0x1aa628b0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_famfeud)
-STD_ROM_FN(md_famfeud)
-
-struct BurnDriver BurnDrvmd_famfeud = {
- "md_famfeud", NULL, NULL, NULL, "1993",
- "Family Feud (USA)\0", NULL, "GameTek", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_famfeudRomInfo, md_famfeudRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Fantasia (World, Rev. A)
-static struct BurnRomInfo md_fantasiaRomDesc[] = {
- { "mpr-14028a.bin", 0x080000, 0xfc43df2d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_fantasia)
-STD_ROM_FN(md_fantasia)
-
-struct BurnDriver BurnDrvmd_fantasia = {
- "md_fantasia", NULL, NULL, NULL, "1991",
- "Fantasia (World, Rev. A)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_fantasiaRomInfo, md_fantasiaRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Fantasia (World)
-static struct BurnRomInfo md_fantasia1RomDesc[] = {
- { "mpr-14028.bin", 0x080000, 0xd351b242, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_fantasia1)
-STD_ROM_FN(md_fantasia1)
-
-struct BurnDriver BurnDrvmd_fantasia1 = {
- "md_fantasia1", "md_fantasia", NULL, NULL, "1991",
- "Fantasia (World)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_fantasia1RomInfo, md_fantasia1RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Fantastic Dizzy (Euro, USA)
-static struct BurnRomInfo md_fantdizzRomDesc[] = {
- { "fantastic dizzy (euro, usa).bin", 0x080000, 0x46447e7a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_fantdizz)
-STD_ROM_FN(md_fantdizz)
-
-struct BurnDriver BurnDrvmd_fantdizz = {
- "md_fantdizz", NULL, NULL, NULL, "1991",
- "Fantastic Dizzy (Euro, USA)\0", NULL, "Codemasters", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_fantdizzRomInfo, md_fantdizzRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Fantastic Dizzy (Euro, USA, Alt)
-static struct BurnRomInfo md_fantdizz1RomDesc[] = {
- { "fantastic dizzy (euro, usa) (alt).bin", 0x080000, 0x86b2a235, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_fantdizz1)
-STD_ROM_FN(md_fantdizz1)
-
-struct BurnDriver BurnDrvmd_fantdizz1 = {
- "md_fantdizz1", "md_fantdizz", NULL, NULL, "1991",
- "Fantastic Dizzy (Euro, USA, Alt)\0", NULL, "Codemasters", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_fantdizz1RomInfo, md_fantdizz1RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Fastest 1 (Jpn)
-static struct BurnRomInfo md_fastest1RomDesc[] = {
- { "fastest 1 (jpn).bin", 0x080000, 0xbb43f0de, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_fastest1)
-STD_ROM_FN(md_fastest1)
-
-struct BurnDriver BurnDrvmd_fastest1 = {
- "md_fastest1", NULL, NULL, NULL, "1991",
- "Fastest 1 (Jpn)\0", NULL, "Human Entertainment", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_fastest1RomInfo, md_fastest1RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Fatal Fury (Euro, Kor)
-static struct BurnRomInfo md_fatfuryRomDesc[] = {
- { "fatal fury (euro, kor).bin", 0x180000, 0x2e730a91, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_fatfury)
-STD_ROM_FN(md_fatfury)
-
-struct BurnDriver BurnDrvmd_fatfury = {
- "md_fatfury", NULL, NULL, NULL, "1993",
- "Fatal Fury (Euro, Kor)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_fatfuryRomInfo, md_fatfuryRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Fatal Fury (USA)
-static struct BurnRomInfo md_fatfuryuRomDesc[] = {
- { "fatal fury (usa).bin", 0x180000, 0x98d49170, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_fatfuryu)
-STD_ROM_FN(md_fatfuryu)
-
-struct BurnDriver BurnDrvmd_fatfuryu = {
- "md_fatfuryu", "md_fatfury", NULL, NULL, "1993",
- "Fatal Fury (USA)\0", NULL, "Takara", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_fatfuryuRomInfo, md_fatfuryuRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Garou Densetsu - Shukumei no Tatakai (Jpn)
-static struct BurnRomInfo md_garouRomDesc[] = {
- { "garou densetsu - shukumei no tatakai (jpn).bin", 0x180000, 0xbf3e3fa4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_garou)
-STD_ROM_FN(md_garou)
-
-struct BurnDriver BurnDrvmd_garou = {
- "md_garou", "md_fatfury", NULL, NULL, "1993",
- "Garou Densetsu - Shukumei no Tatakai (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_garouRomInfo, md_garouRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Fatal Fury 2 (USA, Kor)
-static struct BurnRomInfo md_fatfury2RomDesc[] = {
- { "fatal fury 2 (usa, kor).bin", 0x300000, 0x1b1754cb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_fatfury2)
-STD_ROM_FN(md_fatfury2)
-
-struct BurnDriver BurnDrvmd_fatfury2 = {
- "md_fatfury2", NULL, NULL, NULL, "1994",
- "Fatal Fury 2 (USA, Kor)\0", NULL, "Takara", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_fatfury2RomInfo, md_fatfury2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Garou Densetsu 2 - Aratanaru Tatakai (Jpn)
-static struct BurnRomInfo md_garou2RomDesc[] = {
- { "mpr-16704+mpr-16710.bin", 0x300000, 0x2af4427f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_garou2)
-STD_ROM_FN(md_garou2)
-
-struct BurnDriver BurnDrvmd_garou2 = {
- "md_garou2", "md_fatfury2", NULL, NULL, "1994",
- "Garou Densetsu 2 - Aratanaru Tatakai (Jpn)\0", NULL, "Takara", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_garou2RomInfo, md_garou2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Fatal Labyrinth (Euro, USA)
-static struct BurnRomInfo md_fatallabRomDesc[] = {
- { "fatal labyrinth (euro, usa).bin", 0x020000, 0x5f0bd984, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_fatallab)
-STD_ROM_FN(md_fatallab)
-
-struct BurnDriver BurnDrvmd_fatallab = {
- "md_fatallab", NULL, NULL, NULL, "1991",
- "Fatal Labyrinth (Euro, USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_fatallabRomInfo, md_fatallabRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Shi no Meikyuu - Labyrinth of Death (Jpn, SegaNet)
-static struct BurnRomInfo md_labdeathRomDesc[] = {
- { "shi no meikyuu - labyrinth of death (jpn) (sn).bin", 0x040000, 0xa6d7e02d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_labdeath)
-STD_ROM_FN(md_labdeath)
-
-struct BurnDriver BurnDrvmd_labdeath = {
- "md_labdeath", "md_fatallab", NULL, NULL, "1991",
- "Shi no Meikyuu - Labyrinth of Death (Jpn, SegaNet)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_labdeathRomInfo, md_labdeathRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Shi no Meikyuu - Labyrinth of Death (Jpn, Game no Kandume MegaCD Rip)
-static struct BurnRomInfo md_labdeathgnkRomDesc[] = {
- { "shi no meikyuu - labyrinth of death (jpn) (gnk).bin", 0x020000, 0x40c44cd3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_labdeathgnk)
-STD_ROM_FN(md_labdeathgnk)
-
-struct BurnDriver BurnDrvmd_labdeathgnk = {
- "md_labdeathgnk", "md_fatallab", NULL, NULL, "1991",
- "Shi no Meikyuu - Labyrinth of Death (Jpn, Game no Kandume MegaCD Rip)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_labdeathgnkRomInfo, md_labdeathgnkRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Fatal Rewind (Euro, USA)
-static struct BurnRomInfo md_fatalrewRomDesc[] = {
- { "fatal rewind (euro, usa).bin", 0x080000, 0xe91aed05, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_fatalrew)
-STD_ROM_FN(md_fatalrew)
-
-struct BurnDriver BurnDrvmd_fatalrew = {
- "md_fatalrew", NULL, NULL, NULL, "1991",
- "Fatal Rewind (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_fatalrewRomInfo, md_fatalrewRomName, NULL, NULL, MegadriveInputInfo, MegadrivePALDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Killing Game Show (Jpn)
-static struct BurnRomInfo md_killshowRomDesc[] = {
- { "killing game show, the (jpn).bin", 0x100000, 0xb8e7668a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_killshow)
-STD_ROM_FN(md_killshow)
-
-struct BurnDriver BurnDrvmd_killshow = {
- "md_killshow", "md_fatalrew", NULL, NULL, "1993",
- "The Killing Game Show (Jpn)\0", NULL, "Electronic Arts Victor", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_killshowRomInfo, md_killshowRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Feng Kuang Tao Hua Yuan (Chi)
-static struct BurnRomInfo md_fengkuanRomDesc[] = {
- { "feng kuang tao hua yuan (chi) (unl).bin", 0x100000, 0x8d40d64f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_fengkuan)
-STD_ROM_FN(md_fengkuan)
-
-struct BurnDriver BurnDrvmd_fengkuan = {
- "md_fengkuan", NULL, NULL, NULL, "199?",
- "Feng Kuang Tao Hua Yuan (Chi)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_fengkuanRomInfo, md_fengkuanRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Feng Shen Ying Jie Chuan (Chi)
-static struct BurnRomInfo md_fengshenRomDesc[] = {
- { "feng shen ying jie chuan (chi) (unl).bin", 0x200000, 0x6a382b60, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_fengshen)
-STD_ROM_FN(md_fengshen)
-
-struct BurnDriver BurnDrvmd_fengshen = {
- "md_fengshen", NULL, NULL, NULL, "1996",
- "Feng Shen Ying Jie Chuan (Chi)\0", NULL, "Chuanpu Technologies", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_fengshenRomInfo, md_fengshenRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Feng Shen Ying Jie Zhuan (Chi, Alt?)
-static struct BurnRomInfo md_fengshenaRomDesc[] = {
- { "unknown chinese game 1 (chi).bin", 0x200000, 0xdfacb9ff, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_fengshena)
-STD_ROM_FN(md_fengshena)
-
-struct BurnDriver BurnDrvmd_fengshena = {
- "md_fengshena", "md_fengshen", NULL, NULL, "1996",
- "Feng Shen Ying Jie Zhuan (Chi, Alt?)\0", NULL, "Chuanpu Technologies", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_fengshenaRomInfo, md_fengshenaRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Frias Frustradas do Pica-Pau (Bra)
-static struct BurnRomInfo md_feriasRomDesc[] = {
- { "ferias frustradas do pica-pau (bra).bin", 0x100000, 0x7b2e416d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ferias)
-STD_ROM_FN(md_ferias)
-
-struct BurnDriver BurnDrvmd_ferias = {
- "md_ferias", NULL, NULL, NULL, "1995",
- "Ferias Frustradas do Pica-Pau (Bra)\0", NULL, "Tec Toy", "Sega Megadrive",
- L"F\u00e9rias Frustradas do Pica-Pau (Bra)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_feriasRomInfo, md_feriasRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Ferrari Grand Prix Challenge (Prototype)
-static struct BurnRomInfo md_ferraripRomDesc[] = {
- { "ferrari grand prix challenge (beta).bin", 0x100000, 0xd48d02d4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ferrarip)
-STD_ROM_FN(md_ferrarip)
-
-struct BurnDriver BurnDrvmd_ferrarip = {
- "md_ferrarip", "md_ferrari", NULL, NULL, "1992",
- "Ferrari Grand Prix Challenge (Prototype)\0", NULL, "Flying Edge", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_ferraripRomInfo, md_ferraripRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Ferrari Grand Prix Challenge (USA)
-static struct BurnRomInfo md_ferrariuRomDesc[] = {
- { "ferrari grand prix challenge (usa).bin", 0x100000, 0xf73f6bec, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ferrariu)
-STD_ROM_FN(md_ferrariu)
-
-struct BurnDriver BurnDrvmd_ferrariu = {
- "md_ferrariu", "md_ferrari", NULL, NULL, "1992",
- "Ferrari Grand Prix Challenge (USA)\0", NULL, "Flying Edge", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_ferrariuRomInfo, md_ferrariuRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Fever Pitch Soccer (Euro)
-static struct BurnRomInfo md_feverpitRomDesc[] = {
- { "fever pitch soccer (euro).bin", 0x200000, 0xfac29677, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_feverpit)
-STD_ROM_FN(md_feverpit)
-
-struct BurnDriver BurnDrvmd_feverpit = {
- "md_feverpit", NULL, NULL, NULL, "1995",
- "Fever Pitch Soccer (Euro)\0", NULL, "U.S. Gold", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_feverpitRomInfo, md_feverpitRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Head-On Soccer (USA)
-static struct BurnRomInfo md_headonRomDesc[] = {
- { "head-on soccer (usa).bin", 0x200000, 0xdcffa327, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_headon)
-STD_ROM_FN(md_headon)
-
-struct BurnDriver BurnDrvmd_headon = {
- "md_headon", "md_feverpit", NULL, NULL, "1995",
- "Head-On Soccer (USA)\0", NULL, "U.S. Gold", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_headonRomInfo, md_headonRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Fido Dido (USA, Prototype)
-static struct BurnRomInfo md_fidodidoRomDesc[] = {
- { "fido dido (usa) (prototype).bin", 0x100000, 0xc6d4a240, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_fidodido)
-STD_ROM_FN(md_fidodido)
-
-struct BurnDriver BurnDrvmd_fidodido = {
- "md_fidodido", NULL, NULL, NULL, "1994",
- "Fido Dido (USA, Prototype)\0", NULL, "Kaneko", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_fidodidoRomInfo, md_fidodidoRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// FIFA International Soccer (Euro, USA)
-static struct BurnRomInfo md_fifaRomDesc[] = {
- { "soccer10.bin", 0x200000, 0xbddbb763, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_fifa)
-STD_ROM_FN(md_fifa)
-
-struct BurnDriver BurnDrvmd_fifa = {
- "md_fifa", NULL, NULL, NULL, "1994",
- "FIFA International Soccer (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_fifaRomInfo, md_fifaRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Futbol Argentino 98 - Pasion de Multitudes (Pirate)
-static struct BurnRomInfo md_futbolRomDesc[] = {
- { "futbol argentino 98 - pasion de multitudes (unl).bin", 0x200000, 0x5c015888, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_futbol)
-STD_ROM_FN(md_futbol)
-
-struct BurnDriver BurnDrvmd_futbol = {
- "md_futbol", "md_fifa95", NULL, NULL, "199?",
- "Futbol Argentino 98 - Pasion de Multitudes (Pirate)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_futbolRomInfo, md_futbolRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// FIFA Soccer 96 (Euro, USA)
-static struct BurnRomInfo md_fifa96RomDesc[] = {
- { "fifa01.bin", 0x200000, 0xbad30ffa, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_fifa96)
-STD_ROM_FN(md_fifa96)
-
-struct BurnDriver BurnDrvmd_fifa96 = {
- "md_fifa96", NULL, NULL, NULL, "1995",
- "FIFA Soccer 96 (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_fifa96RomInfo, md_fifa96RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// FIFA Soccer 99 (Pirate)
-static struct BurnRomInfo md_fifa99RomDesc[] = {
- { "fifa soccer 99 (pirate) (unl).bin", 0x200000, 0xc5c5a4b0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_fifa99)
-STD_ROM_FN(md_fifa99)
-
-struct BurnDriver BurnDrvmd_fifa99 = {
- "md_fifa99", "md_fifa96", NULL, NULL, "199?",
- "FIFA Soccer 99 (Pirate)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_fifa99RomInfo, md_fifa99RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// FIFA Soccer 2000 Gold Edition (Pirate)
-static struct BurnRomInfo md_fifa2kRomDesc[] = {
- { "fifa soccer 2000 gold edition (pirate) (unl).bin", 0x200000, 0x647df504, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_fifa2k)
-STD_ROM_FN(md_fifa2k)
-
-struct BurnDriver BurnDrvmd_fifa2k = {
- "md_fifa2k", "md_fifa97", NULL, NULL, "199?",
- "FIFA Soccer 2000 Gold Edition (Pirate)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_fifa2kRomInfo, md_fifa2kRomName, NULL, NULL, MegadriveInputInfo, MegadrivePALDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// FIFA 98 - Road to World Cup (Euro)
-static struct BurnRomInfo md_fifa98RomDesc[] = {
- { "fifa 98 - road to world cup (euro).bin", 0x200000, 0x96947f57, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_fifa98)
-STD_ROM_FN(md_fifa98)
-
-struct BurnDriver BurnDrvmd_fifa98 = {
- "md_fifa98", NULL, NULL, NULL, "1997",
- "FIFA 98 - Road to World Cup (Euro)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_fifa98RomInfo, md_fifa98RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Fighting Masters (USA)
-static struct BurnRomInfo md_fightmasRomDesc[] = {
- { "fighting masters (usa).bin", 0x080000, 0x5f51983b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_fightmas)
-STD_ROM_FN(md_fightmas)
-
-struct BurnDriver BurnDrvmd_fightmas = {
- "md_fightmas", NULL, NULL, NULL, "1992",
- "Fighting Masters (USA)\0", NULL, "Treco", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_fightmasRomInfo, md_fightmasRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Fighting Masters (Jpn, Kor)
-static struct BurnRomInfo md_fightmasjRomDesc[] = {
- { "fighting masters (jpn, kor).bin", 0x080000, 0x39be80ec, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_fightmasj)
-STD_ROM_FN(md_fightmasj)
-
-struct BurnDriver BurnDrvmd_fightmasj = {
- "md_fightmasj", "md_fightmas", NULL, NULL, "1991",
- "Fighting Masters (Jpn, Kor)\0", NULL, "Treco", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_fightmasjRomInfo, md_fightmasjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Final Zone (USA) ~ FZ Senki Axis (Jpn)
-static struct BurnRomInfo md_fzoneRomDesc[] = {
- { "final zone -- fz senki axis (usa, jpn).bin", 0x080000, 0x731fa4a1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_fzone)
-STD_ROM_FN(md_fzone)
-
-struct BurnDriver BurnDrvmd_fzone = {
- "md_fzone", NULL, NULL, NULL, "1990",
- "Final Zone (USA) ~ FZ Senki Axis (Jpn)\0", NULL, "Wolf Team", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_fzoneRomInfo, md_fzoneRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Fire Mustang (Jpn)
-static struct BurnRomInfo md_firemustRomDesc[] = {
- { "fire mustang (jpn).bin", 0x080000, 0xeb7e36c3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_firemust)
-STD_ROM_FN(md_firemust)
-
-struct BurnDriver BurnDrvmd_firemust = {
- "md_firemust", NULL, NULL, NULL, "1991",
- "Fire Mustang (Jpn)\0", NULL, "Taito", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_firemustRomInfo, md_firemustRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Fire Shark (Euro)
-static struct BurnRomInfo md_fireshrkRomDesc[] = {
- { "mpr-14341.bin", 0x080000, 0x2351ce61, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_fireshrk)
-STD_ROM_FN(md_fireshrk)
-
-struct BurnDriver BurnDrvmd_fireshrk = {
- "md_fireshrk", NULL, NULL, NULL, "1991",
- "Fire Shark (Euro)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_fireshrkRomInfo, md_fireshrkRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Fire Shark (USA)
-static struct BurnRomInfo md_fireshrkuRomDesc[] = {
- { "fire shark (usa).bin", 0x080000, 0x570b5024, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_fireshrku)
-STD_ROM_FN(md_fireshrku)
-
-struct BurnDriver BurnDrvmd_fireshrku = {
- "md_fireshrku", "md_fireshrk", NULL, NULL, "1990",
- "Fire Shark (USA)\0", NULL, "Dreamworks Games", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_fireshrkuRomInfo, md_fireshrkuRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Fire Shark (USA, Alt)
-static struct BurnRomInfo md_fireshrku1RomDesc[] = {
- { "fire shark (usa) (alt).bin", 0x080000, 0x9c175146, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_fireshrku1)
-STD_ROM_FN(md_fireshrku1)
-
-struct BurnDriver BurnDrvmd_fireshrku1 = {
- "md_fireshrku1", "md_fireshrk", NULL, NULL, "1990",
- "Fire Shark (USA, Alt)\0", NULL, "Dreamworks Games", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_fireshrku1RomInfo, md_fireshrku1RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Same! Same! Same! (Jpn)
-static struct BurnRomInfo md_samesameRomDesc[] = {
- { "mpr-13301.bin", 0x080000, 0x77bbd841, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_samesame)
-STD_ROM_FN(md_samesame)
-
-struct BurnDriver BurnDrvmd_samesame = {
- "md_samesame", "md_fireshrk", NULL, NULL, "1990",
- "Same! Same! Same! (Jpn)\0", NULL, "Toaplan", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_samesameRomInfo, md_samesameRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Flashback (Euro, Rev. A)
-static struct BurnRomInfo md_flashbRomDesc[] = {
- { "mpr-15410a.bin", 0x180000, 0x6f311c83, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_flashb)
-STD_ROM_FN(md_flashb)
-
-struct BurnDriver BurnDrvmd_flashb = {
- "md_flashb", NULL, NULL, NULL, "1993",
- "Flashback (Euro, Rev. A)\0", NULL, "U.S. Gold", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_flashbRomInfo, md_flashbRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Flashback (Jpn)
-static struct BurnRomInfo md_flashbjRomDesc[] = {
- { "flashback (jpn).bin", 0x180000, 0xb790e3b4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_flashbj)
-STD_ROM_FN(md_flashbj)
-
-struct BurnDriver BurnDrvmd_flashbj = {
- "md_flashbj", "md_flashb", NULL, NULL, "1993",
- "Flashback (Jpn)\0", NULL, "Sunsoft", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_flashbjRomInfo, md_flashbjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Flashback - The Quest for Identity (USA)
-static struct BurnRomInfo md_flashbuRomDesc[] = {
- { "flashback - the quest for identity (usa).bin", 0x180000, 0x23a9616d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_flashbu)
-STD_ROM_FN(md_flashbu)
-
-struct BurnDriver BurnDrvmd_flashbu = {
- "md_flashbu", "md_flashb", NULL, NULL, "1993",
- "Flashback - The Quest for Identity (USA)\0", NULL, "U.S. Gold", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_flashbuRomInfo, md_flashbuRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Flashback - The Quest for Identity (USA, Alt)
-static struct BurnRomInfo md_flashbu1RomDesc[] = {
- { "flashback - the quest for identity (usa) (alt).bin", 0x180000, 0x33cd2b65, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_flashbu1)
-STD_ROM_FN(md_flashbu1)
-
-struct BurnDriver BurnDrvmd_flashbu1 = {
- "md_flashbu1", "md_flashb", NULL, NULL, "1993",
- "Flashback - The Quest for Identity (USA, Alt)\0", NULL, "U.S. Gold", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_flashbu1RomInfo, md_flashbu1RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Flash Point (Jpn, Prototype)
-static struct BurnRomInfo md_flashpRomDesc[] = {
- { "flash point (japan) (proto).bin", 0x020000, 0x0655074d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_flashp)
-STD_ROM_FN(md_flashp)
-
-struct BurnDriver BurnDrvmd_flashp = {
- "md_flashp", NULL, NULL, NULL, "199?",
- "Flash Point (Jpn, Prototype)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_flashpRomInfo, md_flashpRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Flicky (Euro, USA)
-static struct BurnRomInfo md_flickyRomDesc[] = {
- { "flicky (euro, usa).bin", 0x020000, 0x4291c8ab, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_flicky)
-STD_ROM_FN(md_flicky)
-
-struct BurnDriver BurnDrvmd_flicky = {
- "md_flicky", NULL, NULL, NULL, "1991",
- "Flicky (Euro, USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_flickyRomInfo, md_flickyRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Flink (Euro)
-static struct BurnRomInfo md_flinkRomDesc[] = {
- { "flink (euro).bin", 0x100000, 0xbef9a4f4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_flink)
-STD_ROM_FN(md_flink)
-
-struct BurnDriver BurnDrvmd_flink = {
- "md_flink", NULL, NULL, NULL, "1994",
- "Flink (Euro)\0", NULL, "Sony Imagesoft", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_flinkRomInfo, md_flinkRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Flintstones (Euro)
-static struct BurnRomInfo md_flintRomDesc[] = {
- { "flintstones, the (euro).bin", 0x080000, 0x21845d61, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_flint)
-STD_ROM_FN(md_flint)
-
-struct BurnDriver BurnDrvmd_flint = {
- "md_flint", NULL, NULL, NULL, "1993",
- "The Flintstones (Euro)\0", NULL, "Taito", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_flintRomInfo, md_flintRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Flintstones (Jpn)
-static struct BurnRomInfo md_flintjRomDesc[] = {
- { "flintstone (jpn).bin", 0x080000, 0x920a3031, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_flintj)
-STD_ROM_FN(md_flintj)
-
-struct BurnDriver BurnDrvmd_flintj = {
- "md_flintj", "md_flint", NULL, NULL, "1993",
- "The Flintstones (Jpn)\0", NULL, "Taito", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_flintjRomInfo, md_flintjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Flintstones (USA)
-static struct BurnRomInfo md_flintuRomDesc[] = {
- { "flintstones, the (usa).bin", 0x080000, 0x7c982c59, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_flintu)
-STD_ROM_FN(md_flintu)
-
-struct BurnDriver BurnDrvmd_flintu = {
- "md_flintu", "md_flint", NULL, NULL, "1993",
- "The Flintstones (USA)\0", NULL, "Taito", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_flintuRomInfo, md_flintuRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Foreman for Real (World)
-static struct BurnRomInfo md_foremanRomDesc[] = {
- { "foreman for real (world).bin", 0x300000, 0x36248f90, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_foreman)
-STD_ROM_FN(md_foreman)
-
-struct BurnDriver BurnDrvmd_foreman = {
- "md_foreman", NULL, NULL, NULL, "1995",
- "Foreman for Real (World)\0", NULL, "Acclaim Entertainment", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_foremanRomInfo, md_foremanRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Forgotten Worlds (World, v1.1)
-static struct BurnRomInfo md_forgottnRomDesc[] = {
- { "forgotten worlds (world) (v1.1).bin", 0x080000, 0x95513985, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_forgottn)
-STD_ROM_FN(md_forgottn)
-
-struct BurnDriver BurnDrvmd_forgottn = {
- "md_forgottn", NULL, NULL, NULL, "1989",
- "Forgotten Worlds (World, v1.1)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_forgottnRomInfo, md_forgottnRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Forgotten Worlds (World)
-static struct BurnRomInfo md_forgottn1RomDesc[] = {
- { "mpr-12672.bin", 0x080000, 0xd0ee6434, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_forgottn1)
-STD_ROM_FN(md_forgottn1)
-
-struct BurnDriver BurnDrvmd_forgottn1 = {
- "md_forgottn1", "md_forgottn", NULL, NULL, "1989",
- "Forgotten Worlds (World)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_forgottn1RomInfo, md_forgottn1RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Mary Shelley's Frankenstein (USA)
-static struct BurnRomInfo md_frankenRomDesc[] = {
- { "mary shelley's frankenstein (usa).bin", 0x200000, 0x48993dc3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_franken)
-STD_ROM_FN(md_franken)
-
-struct BurnDriver BurnDrvmd_franken = {
- "md_franken", NULL, NULL, NULL, "1994",
- "Mary Shelley's Frankenstein (USA)\0", NULL, "Sony Imagesoft", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_frankenRomInfo, md_frankenRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Frank Thomas Big Hurt Baseball (Euro, USA)
-static struct BurnRomInfo md_bighurtRomDesc[] = {
- { "frank thomas big hurt baseball (euro, usa).bin", 0x400000, 0x863e0950, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_bighurt)
-STD_ROM_FN(md_bighurt)
-
-struct BurnDriver BurnDrvmd_bighurt = {
- "md_bighurt", NULL, NULL, NULL, "1995",
- "Frank Thomas Big Hurt Baseball (Euro, USA)\0", NULL, "Acclaim Entertainment", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_C_SLAM, GBF_MISC, 0,
- MegadriveGetZipName, md_bighurtRomInfo, md_bighurtRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Frogger (USA)
-static struct BurnRomInfo md_froggerRomDesc[] = {
- { "frogger (usa).bin", 0x080000, 0xea2e48c0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_frogger)
-STD_ROM_FN(md_frogger)
-
-struct BurnDriver BurnDrvmd_frogger = {
- "md_frogger", NULL, NULL, NULL, "1998",
- "Frogger (USA)\0", NULL, "Majesco", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_froggerRomInfo, md_froggerRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Fun 'N Games (Euro)
-static struct BurnRomInfo md_funngameRomDesc[] = {
- { "fun 'n' games (euro).bin", 0x100000, 0xda4ab3cd, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_funngame)
-STD_ROM_FN(md_funngame)
-
-struct BurnDriver BurnDrvmd_funngame = {
- "md_funngame", NULL, NULL, NULL, "1993",
- "Fun 'N Games (Euro)\0", NULL, "Sony Imagesoft", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_funngameRomInfo, md_funngameRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Fun 'N' Games (USA)
-static struct BurnRomInfo md_funngameuRomDesc[] = {
- { "fun 'n' games (usa).bin", 0x100000, 0xb5ae351d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_funngameu)
-STD_ROM_FN(md_funngameu)
-
-struct BurnDriver BurnDrvmd_funngameu = {
- "md_funngameu", "md_funngame", NULL, NULL, "1993",
- "Fun 'N' Games (USA)\0", NULL, "Tradewest", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_funngameuRomInfo, md_funngameuRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Fun Car Rally (USA, Prototype)
-static struct BurnRomInfo md_funcarRomDesc[] = {
- { "fun car rally (usa) (prototype).bin", 0x100000, 0x42e27845, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_funcar)
-STD_ROM_FN(md_funcar)
-
-struct BurnDriver BurnDrvmd_funcar = {
- "md_funcar", NULL, NULL, NULL, "199?",
- "Fun Car Rally (USA, Prototype)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_funcarRomInfo, md_funcarRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// G-LOC Air Battle (World)
-static struct BurnRomInfo md_glocRomDesc[] = {
- { "mpr-15326.bin", 0x100000, 0xf2af886e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_gloc)
-STD_ROM_FN(md_gloc)
-
-struct BurnDriver BurnDrvmd_gloc = {
- "md_gloc", NULL, NULL, NULL, "1993",
- "G-LOC Air Battle (World)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_glocRomInfo, md_glocRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// G-LOC Air Battle (World, Prototype)
-static struct BurnRomInfo md_glocpRomDesc[] = {
- { "g-loc air battle (world) (beta).bin", 0x100000, 0x175c7e63, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_glocp)
-STD_ROM_FN(md_glocp)
-
-struct BurnDriver BurnDrvmd_glocp = {
- "md_glocp", "md_gloc", NULL, NULL, "1993",
- "G-LOC Air Battle (World, Prototype)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_glocpRomInfo, md_glocpRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Gadget Twins (USA)
-static struct BurnRomInfo md_gadgetRomDesc[] = {
- { "gadget twins (usa).bin", 0x100000, 0x7ae5e248, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_gadget)
-STD_ROM_FN(md_gadget)
-
-struct BurnDriver BurnDrvmd_gadget = {
- "md_gadget", NULL, NULL, NULL, "1992",
- "Gadget Twins (USA)\0", NULL, "GameTek", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_gadgetRomInfo, md_gadgetRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Gaiares (Jpn, USA)
-static struct BurnRomInfo md_gaiaresRomDesc[] = {
- { "gaiares (usa, jpn).bin", 0x100000, 0x5d8bf68b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_gaiares)
-STD_ROM_FN(md_gaiares)
-
-struct BurnDriver BurnDrvmd_gaiares = {
- "md_gaiares", NULL, NULL, NULL, "1990",
- "Gaiares (Jpn, USA)\0", NULL, "Renovation", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_gaiaresRomInfo, md_gaiaresRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Gain Ground (World)
-static struct BurnRomInfo md_ggroundRomDesc[] = {
- { "gain ground (world).bin", 0x080000, 0x8641a2ab, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_gground)
-STD_ROM_FN(md_gground)
-
-struct BurnDriver BurnDrvmd_gground = {
- "md_gground", NULL, NULL, NULL, "1991",
- "Gain Ground (World)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_ggroundRomInfo, md_ggroundRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Gain Ground (USA, Prototype)
-static struct BurnRomInfo md_gground1pRomDesc[] = {
- { "gainground.a760.bin", 0x080000, 0x83e7b8ae, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_gground1p)
-STD_ROM_FN(md_gground1p)
-
-struct BurnDriver BurnDrvmd_gground1p = {
- "md_gground1p", "md_gground", NULL, NULL, "1991",
- "Gain Ground (USA, Prototype)\0", NULL, "Renovation", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_gground1pRomInfo, md_gground1pRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Galaxy Force II (World)
-static struct BurnRomInfo md_gforce2aRomDesc[] = {
- { "galaxy force ii (world).bin", 0x100000, 0xcae883c5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_gforce2a)
-STD_ROM_FN(md_gforce2a)
-
-struct BurnDriver BurnDrvmd_gforce2a = {
- "md_gforce2a", "md_gforce2", NULL, NULL, "1991",
- "Galaxy Force II (World)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_gforce2aRomInfo, md_gforce2aRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Gambler Jikochuushinha - Katayama Masayuki no Mahjong Doujou (Jpn)
-static struct BurnRomInfo md_gamblerRomDesc[] = {
- { "gambler jiko chuushinha - katayama masayuki no mahjong doujou (jpn).bin", 0x080000, 0x05650b7a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_gambler)
-STD_ROM_FN(md_gambler)
-
-struct BurnDriver BurnDrvmd_gambler = {
- "md_gambler", NULL, NULL, NULL, "1990",
- "Gambler Jikochuushinha - Katayama Masayuki no Mahjong Doujou (Jpn)\0", NULL, "Game Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_gamblerRomInfo, md_gamblerRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Game no Kandume Otokuyou (Jpn)
-static struct BurnRomInfo md_gamenkoRomDesc[] = {
- { "game no kandume otokuyou (jpn).bin", 0x300000, 0xcdad7e6b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_gamenko)
-STD_ROM_FN(md_gamenko)
-
-struct BurnDriver BurnDrvmd_gamenko = {
- "md_gamenko", NULL, NULL, NULL, "199?",
- "Game no Kandume Otokuyou (Jpn)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_GAME_KANDUME, GBF_MISC, 0,
- MegadriveGetZipName, md_gamenkoRomInfo, md_gamenkoRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Garfield - Caught in the Act (Euro, USA)
-static struct BurnRomInfo md_garfieldRomDesc[] = {
- { "garfield - caught in the act (euro, usa).bin", 0x200000, 0xf0ff078e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_garfield)
-STD_ROM_FN(md_garfield)
-
-struct BurnDriver BurnDrvmd_garfield = {
- "md_garfield", NULL, NULL, NULL, "1995",
- "Garfield - Caught in the Act (Euro, USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_garfieldRomInfo, md_garfieldRomName, NULL, NULL, MegadriveInputInfo, MegadrivePALDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Gargoyles (USA)
-static struct BurnRomInfo md_gargoyleRomDesc[] = {
- { "gargoyles (usa).bin", 0x300000, 0x2d965364, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_gargoyle)
-STD_ROM_FN(md_gargoyle)
-
-struct BurnDriver BurnDrvmd_gargoyle = {
- "md_gargoyle", NULL, NULL, NULL, "1995",
- "Gargoyles (USA)\0", NULL, "Disney Interactive", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_gargoyleRomInfo, md_gargoyleRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Gauntlet IV (Euro, USA, 199309)
-static struct BurnRomInfo md_gauntlt4RomDesc[] = {
- { "gauntlet iv (euro, usa) (september 1993).bin", 0x100000, 0xf9d60510, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_gauntlt4)
-STD_ROM_FN(md_gauntlt4)
-
-struct BurnDriver BurnDrvmd_gauntlt4 = {
- "md_gauntlt4", NULL, NULL, NULL, "1993",
- "Gauntlet IV (Euro, USA, 199309)\0", NULL, "Tengen", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_gauntlt4RomInfo, md_gauntlt4RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Gauntlet IV (Euro, USA, 199308)
-static struct BurnRomInfo md_gauntlt4aRomDesc[] = {
- { "gauntlet iv (euro, usa) (august 1993).bin", 0x100000, 0x3bf46dce, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_gauntlt4a)
-STD_ROM_FN(md_gauntlt4a)
-
-struct BurnDriver BurnDrvmd_gauntlt4a = {
- "md_gauntlt4a", "md_gauntlt4", NULL, NULL, "1993",
- "Gauntlet IV (Euro, USA, 199308)\0", NULL, "Tengen", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_gauntlt4aRomInfo, md_gauntlt4aRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Gauntlet (Jpn)
-static struct BurnRomInfo md_gauntlt4jRomDesc[] = {
- { "gauntlet (jpn).bin", 0x100000, 0xf9872055, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_gauntlt4j)
-STD_ROM_FN(md_gauntlt4j)
-
-struct BurnDriver BurnDrvmd_gauntlt4j = {
- "md_gauntlt4j", "md_gauntlt4", NULL, NULL, "1993",
- "Gauntlet (Jpn)\0", NULL, "Tengen", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_gauntlt4jRomInfo, md_gauntlt4jRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Gemfire (USA)
-static struct BurnRomInfo md_gemfireRomDesc[] = {
- { "gemfire (usa).bin", 0x100000, 0x3d36135b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_gemfire)
-STD_ROM_FN(md_gemfire)
-
-struct BurnDriver BurnDrvmd_gemfire = {
- "md_gemfire", NULL, NULL, NULL, "1992",
- "Gemfire (USA)\0", NULL, "Koei", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_gemfireRomInfo, md_gemfireRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Royal Blood (Jpn)
-static struct BurnRomInfo md_royalbldRomDesc[] = {
- { "royal blood (jpn).bin", 0x100000, 0x0e0107f1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_royalbld)
-STD_ROM_FN(md_royalbld)
-
-struct BurnDriver BurnDrvmd_royalbld = {
- "md_royalbld", "md_gemfire", NULL, NULL, "1992",
- "Royal Blood (Jpn)\0", NULL, "Koei", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_royalbldRomInfo, md_royalbldRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// General Chaos (Euro, USA)
-static struct BurnRomInfo md_genchaosRomDesc[] = {
- { "general chaos (euro, usa).bin", 0x100000, 0xf1ecc4df, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_genchaos)
-STD_ROM_FN(md_genchaos)
-
-struct BurnDriver BurnDrvmd_genchaos = {
- "md_genchaos", NULL, NULL, NULL, "1994",
- "General Chaos (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_genchaosRomInfo, md_genchaosRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// General Chaos Daikonsen (Jpn)
-static struct BurnRomInfo md_genchaosjRomDesc[] = {
- { "general chaos daikonsen (jpn).bin", 0x100000, 0x05cc7369, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_genchaosj)
-STD_ROM_FN(md_genchaosj)
-
-struct BurnDriver BurnDrvmd_genchaosj = {
- "md_genchaosj", "md_genchaos", NULL, NULL, "1994",
- "General Chaos Daikonsen (Jpn)\0", NULL, "Electronic Arts Victor", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_genchaosjRomInfo, md_genchaosjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Generations Lost (Euro, USA)
-static struct BurnRomInfo md_genelostRomDesc[] = {
- { "generations lost (euro, usa).bin", 0x100000, 0x131f36a6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_genelost)
-STD_ROM_FN(md_genelost)
-
-struct BurnDriver BurnDrvmd_genelost = {
- "md_genelost", NULL, NULL, NULL, "1994",
- "Generations Lost (Euro, USA)\0", NULL, "Time Warner Interactive", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_genelostRomInfo, md_genelostRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Genghis Khan II - Clan of the Gray Wolf (USA)
-static struct BurnRomInfo md_genghis2RomDesc[] = {
- { "genghis khan ii - clan of the gray wolf (usa).bin", 0x100000, 0x87a281ae, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_genghis2)
-STD_ROM_FN(md_genghis2)
-
-struct BurnDriver BurnDrvmd_genghis2 = {
- "md_genghis2", NULL, NULL, NULL, "1993",
- "Genghis Khan II - Clan of the Gray Wolf (USA)\0", NULL, "Koei", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_genghis2RomInfo, md_genghis2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Aoki Ookami to Shiroki Mejika - Genchou Hishi (Jpn)
-static struct BurnRomInfo md_genchohiRomDesc[] = {
- { "aoki ookami to shiroki meshika - genchou hishi (jpn).bin", 0x140000, 0x10be1d93, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_genchohi)
-STD_ROM_FN(md_genchohi)
-
-struct BurnDriver BurnDrvmd_genchohi = {
- "md_genchohi", "md_genghis2", NULL, NULL, "1993",
- "Aoki Ookami to Shiroki Mejika - Genchou Hishi (Jpn)\0", NULL, "Koei", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_genchohiRomInfo, md_genchohiRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// George Foreman's KO Boxing (Euro)
-static struct BurnRomInfo md_georgekoRomDesc[] = {
- { "george foreman's ko boxing (euro).bin", 0x100000, 0xbd556381, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_georgeko)
-STD_ROM_FN(md_georgeko)
-
-struct BurnDriver BurnDrvmd_georgeko = {
- "md_georgeko", NULL, NULL, NULL, "1992",
- "George Foreman's KO Boxing (Euro)\0", NULL, "Flying Edge", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_georgekoRomInfo, md_georgekoRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// George Foreman's KO Boxing (USA)
-static struct BurnRomInfo md_georgekouRomDesc[] = {
- { "george foreman's ko boxing (usa).bin", 0x100000, 0xe1fdc787, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_georgekou)
-STD_ROM_FN(md_georgekou)
-
-struct BurnDriver BurnDrvmd_georgekou = {
- "md_georgekou", "md_georgeko", NULL, NULL, "1992",
- "George Foreman's KO Boxing (USA)\0", NULL, "Flying Edge", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_georgekouRomInfo, md_georgekouRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Ghostbusters (World, v1.1)
-static struct BurnRomInfo md_ghostbstRomDesc[] = {
- { "ghostbusters (world) (v1.1).bin", 0x080000, 0x792df93b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ghostbst)
-STD_ROM_FN(md_ghostbst)
-
-struct BurnDriver BurnDrvmd_ghostbst = {
- "md_ghostbst", NULL, NULL, NULL, "1990",
- "Ghostbusters (World, v1.1)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_ghostbstRomInfo, md_ghostbstRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Ghostbusters (World)
-static struct BurnRomInfo md_ghostbst1RomDesc[] = {
- { "ghostbusters (world).bin", 0x080000, 0x00419da3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ghostbst1)
-STD_ROM_FN(md_ghostbst1)
-
-struct BurnDriver BurnDrvmd_ghostbst1 = {
- "md_ghostbst1", "md_ghostbst", NULL, NULL, "1990",
- "Ghostbusters (World)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_ghostbst1RomInfo, md_ghostbst1RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Dai Makaimura (Jpn)
-static struct BurnRomInfo md_daimakaiRomDesc[] = {
- { "dai makaimura (jpn).bin", 0x0a0000, 0x5659f379, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_daimakai)
-STD_ROM_FN(md_daimakai)
-
-struct BurnDriver BurnDrvmd_daimakai = {
- "md_daimakai", "md_ghouls", NULL, NULL, "1989",
- "Dai Makaimura (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_daimakaiRomInfo, md_daimakaiRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// GleyLancer (Jpn)
-static struct BurnRomInfo md_gleylancRomDesc[] = {
- { "advanced busterhawk gleylancer (jpn).bin", 0x100000, 0x42cf9b5b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_gleylanc)
-STD_ROM_FN(md_gleylanc)
-
-struct BurnDriver BurnDrvmd_gleylanc = {
- "md_gleylanc", NULL, NULL, NULL, "1992",
- "GleyLancer (Jpn)\0", NULL, "NCS", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_gleylancRomInfo, md_gleylancRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Mick & Mack as the Global Gladiators (Euro)
-static struct BurnRomInfo md_mickmackRomDesc[] = {
- { "mpr-15237.bin", 0x100000, 0x5c218c6a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_mickmack)
-STD_ROM_FN(md_mickmack)
-
-struct BurnDriver BurnDrvmd_mickmack = {
- "md_mickmack", NULL, NULL, NULL, "1993",
- "Mick & Mack as the Global Gladiators (Euro)\0", NULL, "Virgin Games", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_mickmackRomInfo, md_mickmackRomName, NULL, NULL, MegadriveInputInfo, MegadrivePALDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Mick & Mack as the Global Gladiators (USA)
-static struct BurnRomInfo md_mickmackuRomDesc[] = {
- { "mick & mack as the global gladiators (usa).bin", 0x100000, 0x40f17bb3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_mickmacku)
-STD_ROM_FN(md_mickmacku)
-
-struct BurnDriver BurnDrvmd_mickmacku = {
- "md_mickmacku", "md_mickmack", NULL, NULL, "1992",
- "Mick & Mack as the Global Gladiators (USA)\0", NULL, "Virgin Games", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_mickmackuRomInfo, md_mickmackuRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Mick & Mack as the Global Gladiators (USA, Prototype)
-static struct BurnRomInfo md_mickmackupRomDesc[] = {
- { "mick & mack as the global gladiators (usa) (beta).bin", 0x100000, 0x08c2af21, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_mickmackup)
-STD_ROM_FN(md_mickmackup)
-
-struct BurnDriver BurnDrvmd_mickmackup = {
- "md_mickmackup", "md_mickmack", NULL, NULL, "1992",
- "Mick & Mack as the Global Gladiators (USA, Prototype)\0", NULL, "Virgin Games", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_mickmackupRomInfo, md_mickmackupRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Gods (Euro)
-static struct BurnRomInfo md_godsRomDesc[] = {
- { "gods (euro).bin", 0x100000, 0x6c415016, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_gods)
-STD_ROM_FN(md_gods)
-
-struct BurnDriver BurnDrvmd_gods = {
- "md_gods", NULL, NULL, NULL, "1993",
- "Gods (Euro)\0", NULL, "Accolade", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_godsRomInfo, md_godsRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Gods (Jpn)
-static struct BurnRomInfo md_godsjRomDesc[] = {
- { "gods (jpn).bin", 0x100000, 0xe4f50206, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_godsj)
-STD_ROM_FN(md_godsj)
-
-struct BurnDriver BurnDrvmd_godsj = {
- "md_godsj", "md_gods", NULL, NULL, "1993",
- "Gods (Jpn)\0", NULL, "PCM Complete", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_godsjRomInfo, md_godsjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Gods (USA)
-static struct BurnRomInfo md_godsuRomDesc[] = {
- { "gods (usa).bin", 0x100000, 0xfd234ccd, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_godsu)
-STD_ROM_FN(md_godsu)
-
-struct BurnDriver BurnDrvmd_godsu = {
- "md_godsu", "md_gods", NULL, NULL, "1992",
- "Gods (USA)\0", NULL, "Mindscape", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_godsuRomInfo, md_godsuRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Gods (USA, Prototype)
-static struct BurnRomInfo md_godsupRomDesc[] = {
- { "gods (usa) (beta).bin", 0x100000, 0x2c06bb64, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_godsup)
-STD_ROM_FN(md_godsup)
-
-struct BurnDriver BurnDrvmd_godsup = {
- "md_godsup", "md_gods", NULL, NULL, "1992",
- "Gods (USA, Prototype)\0", NULL, "Mindscape", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_godsupRomInfo, md_godsupRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Golden Axe (World, v1.1)
-static struct BurnRomInfo md_goldnaxeRomDesc[] = {
- { "golden axe (world) (v1.1).bin", 0x080000, 0x665d7df9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_goldnaxe)
-STD_ROM_FN(md_goldnaxe)
-
-struct BurnDriver BurnDrvmd_goldnaxe = {
- "md_goldnaxe", NULL, NULL, NULL, "1989",
- "Golden Axe (World, v1.1)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_goldnaxeRomInfo, md_goldnaxeRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Golden Axe (World)
-static struct BurnRomInfo md_goldnaxe1RomDesc[] = {
- { "mpr-12806.bin", 0x080000, 0xe8182b90, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_goldnaxe1)
-STD_ROM_FN(md_goldnaxe1)
-
-struct BurnDriver BurnDrvmd_goldnaxe1 = {
- "md_goldnaxe1", "md_goldnaxe", NULL, NULL, "1989",
- "Golden Axe (World)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_goldnaxe1RomInfo, md_goldnaxe1RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Golden Axe II (World)
-static struct BurnRomInfo md_goldnax2RomDesc[] = {
- { "mpr-14272.bin", 0x080000, 0x725e0a18, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_goldnax2)
-STD_ROM_FN(md_goldnax2)
-
-struct BurnDriver BurnDrvmd_goldnax2 = {
- "md_goldnax2", NULL, NULL, NULL, "1991",
- "Golden Axe II (World)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_goldnax2RomInfo, md_goldnax2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Golden Axe II (World, Prototype)
-static struct BurnRomInfo md_goldnax2pRomDesc[] = {
- { "golden axe ii (world) (beta).bin", 0x080000, 0xe62ea1bb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_goldnax2p)
-STD_ROM_FN(md_goldnax2p)
-
-struct BurnDriver BurnDrvmd_goldnax2p = {
- "md_goldnax2p", "md_goldnax2", NULL, NULL, "1991",
- "Golden Axe II (World, Prototype)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_goldnax2pRomInfo, md_goldnax2pRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Golden Axe III (Jpn)
-static struct BurnRomInfo md_goldnax3RomDesc[] = {
- { "golden axe iii (jpn).bin", 0x100000, 0xc7862ea3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_goldnax3)
-STD_ROM_FN(md_goldnax3)
-
-struct BurnDriver BurnDrvmd_goldnax3 = {
- "md_goldnax3", NULL, NULL, NULL, "1993",
- "Golden Axe III (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_goldnax3RomInfo, md_goldnax3RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Uchuu Senkan Gomora (Jpn)
-static struct BurnRomInfo md_gomoraRomDesc[] = {
- { "uchuu senkan gomora (jpn).bin", 0x100000, 0xc511e8d2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_gomora)
-STD_ROM_FN(md_gomora)
-
-struct BurnDriver BurnDrvmd_gomora = {
- "md_gomora", NULL, NULL, NULL, "1991",
- "Uchuu Senkan Gomora (Jpn)\0", NULL, "UPL", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_gomoraRomInfo, md_gomoraRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Goofy's Hysterical History Tour (USA)
-static struct BurnRomInfo md_goofyRomDesc[] = {
- { "goofy's hysterical history tour (usa).bin", 0x100000, 0x4e1cc833, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_goofy)
-STD_ROM_FN(md_goofy)
-
-struct BurnDriver BurnDrvmd_goofy = {
- "md_goofy", NULL, NULL, NULL, "1993",
- "Goofy's Hysterical History Tour (USA)\0", NULL, "Absolute Entertainment", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_goofyRomInfo, md_goofyRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Gouketsuji Ichizoku (Jpn)
-static struct BurnRomInfo md_gouketsuRomDesc[] = {
- { "gouketsuji ichizoku (jpn).bin", 0x300000, 0xabe9c415, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_gouketsu)
-STD_ROM_FN(md_gouketsu)
-
-struct BurnDriver BurnDrvmd_gouketsu = {
- "md_gouketsu", NULL, NULL, NULL, "1994",
- "Gouketsuji Ichizoku (Jpn)\0", NULL, "Atlus", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_gouketsuRomInfo, md_gouketsuRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Granada (Jpn, USA, v1.1)
-static struct BurnRomInfo md_granadaRomDesc[] = {
- { "granada (usa, jpn) (v1.1).bin", 0x080000, 0xe89d1e66, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_granada)
-STD_ROM_FN(md_granada)
-
-struct BurnDriver BurnDrvmd_granada = {
- "md_granada", NULL, NULL, NULL, "1990",
- "Granada (Jpn, USA, v1.1)\0", NULL, "Renovation ~ Wolf Team", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_granadaRomInfo, md_granadaRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Granada (Jpn, USA)
-static struct BurnRomInfo md_granada1RomDesc[] = {
- { "granada (usa, jpn).bin", 0x080000, 0x7f45719b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_granada1)
-STD_ROM_FN(md_granada1)
-
-struct BurnDriver BurnDrvmd_granada1 = {
- "md_granada1", "md_granada", NULL, NULL, "1990",
- "Granada (Jpn, USA)\0", NULL, "Renovation ~ Wolf Team", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_granada1RomInfo, md_granada1RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// GrandSlam - The Tennis Tournament (Euro)
-static struct BurnRomInfo md_grandslRomDesc[] = {
- { "mpr-15208.bin", 0x080000, 0x8c2670de, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_grandsl)
-STD_ROM_FN(md_grandsl)
-
-struct BurnDriver BurnDrvmd_grandsl = {
- "md_grandsl", NULL, NULL, NULL, "1992",
- "GrandSlam - The Tennis Tournament (Euro)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_grandslRomInfo, md_grandslRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// GrandSlam - The Tennis Tournament '92 (Jpn)
-static struct BurnRomInfo md_grandsljRomDesc[] = {
- { "grandslam - the tennis tournament '92 (jpn).bin", 0x080000, 0x30cf37d0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_grandslj)
-STD_ROM_FN(md_grandslj)
-
-struct BurnDriver BurnDrvmd_grandslj = {
- "md_grandslj", "md_grandsl", NULL, NULL, "1992",
- "GrandSlam - The Tennis Tournament '92 (Jpn)\0", NULL, "Nihon Telenet", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_grandsljRomInfo, md_grandsljRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Jennifer Capriati Tennis (USA)
-static struct BurnRomInfo md_jennifctRomDesc[] = {
- { "jennifer capriati tennis (usa).bin", 0x080000, 0xab2abc8e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_jennifct)
-STD_ROM_FN(md_jennifct)
-
-struct BurnDriver BurnDrvmd_jennifct = {
- "md_jennifct", "md_grandsl", NULL, NULL, "1992",
- "Jennifer Capriati Tennis (USA)\0", NULL, "Renovation", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_jennifctRomInfo, md_jennifctRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Great Circus Mystery - Mickey to Minnie Magical Adventure 2 (Jpn)
-static struct BurnRomInfo md_greatcirjRomDesc[] = {
- { "great circus mystery - mickey to minnie magical adventure 2 (jpn).bin", 0x200000, 0x5aa0f3a0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_greatcirj)
-STD_ROM_FN(md_greatcirj)
-
-struct BurnDriver BurnDrvmd_greatcirj = {
- "md_greatcirj", "md_mickeycm", NULL, NULL, "1994",
- "Great Circus Mystery - Mickey to Minnie Magical Adventure 2 (Jpn)\0", NULL, "Capcom", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_greatcirjRomInfo, md_greatcirjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Great Circus Mystery Starring Mickey & Minnie (USA)
-static struct BurnRomInfo md_mickeycmRomDesc[] = {
- { "great circus mystery starring mickey & minnie, the (usa).bin", 0x200000, 0x14744883, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_mickeycm)
-STD_ROM_FN(md_mickeycm)
-
-struct BurnDriver BurnDrvmd_mickeycm = {
- "md_mickeycm", NULL, NULL, NULL, "1994",
- "The Great Circus Mystery Starring Mickey & Minnie (USA)\0", NULL, "Capcom", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_mickeycmRomInfo, md_mickeycmRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Great Waldo Search (USA)
-static struct BurnRomInfo md_waldoRomDesc[] = {
- { "great waldo search, the (usa).bin", 0x100000, 0x8c5c93b8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_waldo)
-STD_ROM_FN(md_waldo)
-
-struct BurnDriver BurnDrvmd_waldo = {
- "md_waldo", NULL, NULL, NULL, "1992",
- "The Great Waldo Search (USA)\0", NULL, "THQ", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_waldoRomInfo, md_waldoRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Greatest Heavyweights (Jpn)
-static struct BurnRomInfo md_ghwjRomDesc[] = {
- { "greatest heavyweights (jpn).bin", 0x200000, 0x7ef8b162, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ghwj)
-STD_ROM_FN(md_ghwj)
-
-struct BurnDriver BurnDrvmd_ghwj = {
- "md_ghwj", "md_ghw", NULL, NULL, "1994",
- "Greatest Heavyweights (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_EEPROM, GBF_MISC, 0,
- MegadriveGetZipName, md_ghwjRomInfo, md_ghwjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Greatest Heavyweights (USA)
-static struct BurnRomInfo md_ghwuRomDesc[] = {
- { "greatest heavyweights (usa).bin", 0x200000, 0x6e3621d5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ghwu)
-STD_ROM_FN(md_ghwu)
-
-struct BurnDriver BurnDrvmd_ghwu = {
- "md_ghwu", "md_ghw", NULL, NULL, "1994",
- "Greatest Heavyweights (USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_EEPROM, GBF_MISC, 0,
- MegadriveGetZipName, md_ghwuRomInfo, md_ghwuRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Greendog - The Beached Surfer Dude! (Euro, USA)
-static struct BurnRomInfo md_greendogRomDesc[] = {
- { "mpr-14993.bin", 0x080000, 0xc4820a03, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_greendog)
-STD_ROM_FN(md_greendog)
-
-struct BurnDriver BurnDrvmd_greendog = {
- "md_greendog", NULL, NULL, NULL, "1992",
- "Greendog - The Beached Surfer Dude! (Euro, USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_greendogRomInfo, md_greendogRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Grind Stormer (USA)
-static struct BurnRomInfo md_grindstRomDesc[] = {
- { "grind stormer (usa).bin", 0x100000, 0x7e6bef15, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_grindst)
-STD_ROM_FN(md_grindst)
-
-struct BurnDriver BurnDrvmd_grindst = {
- "md_grindst", NULL, NULL, NULL, "1994",
- "Grind Stormer (USA)\0", NULL, "Tengen", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_grindstRomInfo, md_grindstRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// V-Five (Jpn)
-static struct BurnRomInfo md_vfiveRomDesc[] = {
- { "v-v (jpn).bin", 0x100000, 0xad9d0ec0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_vfive)
-STD_ROM_FN(md_vfive)
-
-struct BurnDriver BurnDrvmd_vfive = {
- "md_vfive", "md_grindst", NULL, NULL, "1994",
- "V-Five (Jpn)\0", NULL, "Tengen", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_vfiveRomInfo, md_vfiveRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Growl (USA)
-static struct BurnRomInfo md_growlRomDesc[] = {
- { "growl (usa).bin", 0x080000, 0xf60ef143, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_growl)
-STD_ROM_FN(md_growl)
-
-struct BurnDriver BurnDrvmd_growl = {
- "md_growl", NULL, NULL, NULL, "1991",
- "Growl (USA)\0", NULL, "Taito", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_growlRomInfo, md_growlRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Runark (Jpn, Kor)
-static struct BurnRomInfo md_runarkRomDesc[] = {
- { "runark (jpn, kor).bin", 0x080000, 0x0894d8fb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_runark)
-STD_ROM_FN(md_runark)
-
-struct BurnDriver BurnDrvmd_runark = {
- "md_runark", "md_growl", NULL, NULL, "1991",
- "Runark (Jpn, Kor)\0", NULL, "Taito", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_runarkRomInfo, md_runarkRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Gunship (Euro)
-static struct BurnRomInfo md_gunshipRomDesc[] = {
- { "gunship (euro).bin", 0x100000, 0xda1440c9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_gunship)
-STD_ROM_FN(md_gunship)
-
-struct BurnDriver BurnDrvmd_gunship = {
- "md_gunship", NULL, NULL, NULL, "1993",
- "Gunship (Euro)\0", NULL, "U.S. Gold", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_gunshipRomInfo, md_gunshipRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Gunstar Heroes (Euro)
-static struct BurnRomInfo md_gunstarRomDesc[] = {
- { "gunstar heroes (euro).bin", 0x100000, 0x866ed9d0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_gunstar)
-STD_ROM_FN(md_gunstar)
-
-struct BurnDriver BurnDrvmd_gunstar = {
- "md_gunstar", NULL, NULL, NULL, "1993",
- "Gunstar Heroes (Euro)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_gunstarRomInfo, md_gunstarRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Gunstar Heroes (Jpn)
-static struct BurnRomInfo md_gunstarjRomDesc[] = {
- { "gunstar heroes (jpn).bin", 0x100000, 0x1cfd0383, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_gunstarj)
-STD_ROM_FN(md_gunstarj)
-
-struct BurnDriver BurnDrvmd_gunstarj = {
- "md_gunstarj", "md_gunstar", NULL, NULL, "1993",
- "Gunstar Heroes (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_gunstarjRomInfo, md_gunstarjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Gunstar Heroes (Jpn, Sample)
-static struct BurnRomInfo md_gunstarjsRomDesc[] = {
- { "gunstar heroes (jpn) (sample).bin", 0x100000, 0x6f90b502, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_gunstarjs)
-STD_ROM_FN(md_gunstarjs)
-
-struct BurnDriver BurnDrvmd_gunstarjs = {
- "md_gunstarjs", "md_gunstar", NULL, NULL, "1993",
- "Gunstar Heroes (Jpn, Sample)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_gunstarjsRomInfo, md_gunstarjsRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Gunstar Heroes (USA)
-static struct BurnRomInfo md_gunstaruRomDesc[] = {
- { "gunstar heroes (usa).bin", 0x100000, 0xb813cf0d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_gunstaru)
-STD_ROM_FN(md_gunstaru)
-
-struct BurnDriver BurnDrvmd_gunstaru = {
- "md_gunstaru", "md_gunstar", NULL, NULL, "1993",
- "Gunstar Heroes (USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_gunstaruRomInfo, md_gunstaruRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Gynoug (Euro)
-static struct BurnRomInfo md_gynougRomDesc[] = {
- { "mpr-14439.bin", 0x080000, 0x03405102, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_gynoug)
-STD_ROM_FN(md_gynoug)
-
-struct BurnDriver BurnDrvmd_gynoug = {
- "md_gynoug", NULL, NULL, NULL, "1991",
- "Gynoug (Euro)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_gynougRomInfo, md_gynougRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Gynoug (Jpn)
-static struct BurnRomInfo md_gynougjRomDesc[] = {
- { "gynoug (jpn).bin", 0x080000, 0x1b69241f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_gynougj)
-STD_ROM_FN(md_gynougj)
-
-struct BurnDriver BurnDrvmd_gynougj = {
- "md_gynougj", "md_gynoug", NULL, NULL, "1991",
- "Gynoug (Jpn)\0", NULL, "NCS", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_gynougjRomInfo, md_gynougjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Wings of Wor (USA)
-static struct BurnRomInfo md_wingsworRomDesc[] = {
- { "wings of wor (usa).bin", 0x080000, 0x210a2fcd, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wingswor)
-STD_ROM_FN(md_wingswor)
-
-struct BurnDriver BurnDrvmd_wingswor = {
- "md_wingswor", "md_gynoug", NULL, NULL, "1991",
- "Wings of Wor (USA)\0", NULL, "Dreamworks Games", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_wingsworRomInfo, md_wingsworRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Hard Drivin' (World)
-static struct BurnRomInfo md_harddrivRomDesc[] = {
- { "mpr-13489.bin", 0x040000, 0x3225baaf, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_harddriv)
-STD_ROM_FN(md_harddriv)
-
-struct BurnDriver BurnDrvmd_harddriv = {
- "md_harddriv", NULL, NULL, NULL, "1991",
- "Hard Drivin' (World)\0", NULL, "Tengen", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_harddrivRomInfo, md_harddrivRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// HardBall '94 (Euro, USA)
-static struct BurnRomInfo md_hardbl94RomDesc[] = {
- { "hardball '94 (euro, usa).bin", 0x200000, 0xea9c4878, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_hardbl94)
-STD_ROM_FN(md_hardbl94)
-
-struct BurnDriver BurnDrvmd_hardbl94 = {
- "md_hardbl94", NULL, NULL, NULL, "1994",
- "HardBall '94 (Euro, USA)\0", NULL, "Accolade", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_hardbl94RomInfo, md_hardbl94RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// HardBall '95 (USA)
-static struct BurnRomInfo md_hardbl95RomDesc[] = {
- { "hardball '95 (usa).bin", 0x300000, 0xed10bc9e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_hardbl95)
-STD_ROM_FN(md_hardbl95)
-
-struct BurnDriver BurnDrvmd_hardbl95 = {
- "md_hardbl95", NULL, NULL, NULL, "1995",
- "HardBall '95 (USA)\0", NULL, "Accolade", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_hardbl95RomInfo, md_hardbl95RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// HardBall III (USA)
-static struct BurnRomInfo md_hardbal3RomDesc[] = {
- { "hardball iii (usa).bin", 0x200000, 0xa4f2f011, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_hardbal3)
-STD_ROM_FN(md_hardbal3)
-
-struct BurnDriver BurnDrvmd_hardbal3 = {
- "md_hardbal3", NULL, NULL, NULL, "1993",
- "HardBall III (USA)\0", NULL, "Accolade", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_hardbal3RomInfo, md_hardbal3RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// HardBall! (USA)
-static struct BurnRomInfo md_hardballRomDesc[] = {
- { "hardball! (usa).bin", 0x100000, 0xbd1b9a04, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_hardball)
-STD_ROM_FN(md_hardball)
-
-struct BurnDriver BurnDrvmd_hardball = {
- "md_hardball", NULL, NULL, NULL, "1991",
- "HardBall! (USA)\0", NULL, "Ballistic", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_hardballRomInfo, md_hardballRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Haunting Starring Polterguy (Euro, USA)
-static struct BurnRomInfo md_hauntingRomDesc[] = {
- { "haunting starring polterguy (euro, usa).bin", 0x200000, 0xc9fc876d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_haunting)
-STD_ROM_FN(md_haunting)
-
-struct BurnDriver BurnDrvmd_haunting = {
- "md_haunting", NULL, NULL, NULL, "1993",
- "Haunting Starring Polterguy (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_hauntingRomInfo, md_hauntingRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// High Seas Havoc (USA)
-static struct BurnRomInfo md_havocuRomDesc[] = {
- { "high seas havoc (usa).bin", 0x100000, 0x17be551c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_havocu)
-STD_ROM_FN(md_havocu)
-
-struct BurnDriver BurnDrvmd_havocu = {
- "md_havocu", "md_havoc", NULL, NULL, "1993",
- "High Seas Havoc (USA)\0", NULL, "Data East", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_havocuRomInfo, md_havocuRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Heavy Nova (USA)
-static struct BurnRomInfo md_heavynovRomDesc[] = {
- { "heavy nova (usa).bin", 0x100000, 0xf6b6a9d8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_heavynov)
-STD_ROM_FN(md_heavynov)
-
-struct BurnDriver BurnDrvmd_heavynov = {
- "md_heavynov", NULL, NULL, NULL, "1992",
- "Heavy Nova (USA)\0", NULL, "Micronet", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_heavynovRomInfo, md_heavynovRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Heavy Unit - Mega Drive Special (Jpn)
-static struct BurnRomInfo md_hvyunitRomDesc[] = {
- { "heavy unit - mega drive special (jpn).bin", 0x080000, 0x1acbe608, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_hvyunit)
-STD_ROM_FN(md_hvyunit)
-
-struct BurnDriver BurnDrvmd_hvyunit = {
- "md_hvyunit", NULL, NULL, NULL, "1990",
- "Heavy Unit - Mega Drive Special (Jpn)\0", NULL, "Toho", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_hvyunitRomInfo, md_hvyunitRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Hei Tao 2 - Super Big 2 (Chi)
-static struct BurnRomInfo md_heitaoRomDesc[] = {
- { "hei tao 2 - super big 2 (chi) (unl).bin", 0x100000, 0x31449113, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_heitao)
-STD_ROM_FN(md_heitao)
-
-struct BurnDriver BurnDrvmd_heitao = {
- "md_heitao", NULL, NULL, NULL, "199?",
- "Hei Tao 2 - Super Big 2 (Chi)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_heitaoRomInfo, md_heitaoRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Hellfire (Euro)
-static struct BurnRomInfo md_hellfireRomDesc[] = {
- { "mpr-14430.bin", 0x080000, 0xcf30acec, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_hellfire)
-STD_ROM_FN(md_hellfire)
-
-struct BurnDriver BurnDrvmd_hellfire = {
- "md_hellfire", NULL, NULL, NULL, "1991",
- "Hellfire (Euro)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_hellfireRomInfo, md_hellfireRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Hellfire (Jpn)
-static struct BurnRomInfo md_hellfirejRomDesc[] = {
- { "hellfire (jpn).bin", 0x080000, 0x8e5e13ba, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_hellfirej)
-STD_ROM_FN(md_hellfirej)
-
-struct BurnDriver BurnDrvmd_hellfirej = {
- "md_hellfirej", "md_hellfire", NULL, NULL, "1990",
- "Hellfire (Jpn)\0", NULL, "NCS", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_hellfirejRomInfo, md_hellfirejRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Hellfire (USA)
-static struct BurnRomInfo md_hellfireuRomDesc[] = {
- { "hellfire (usa).bin", 0x080000, 0x184018f9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_hellfireu)
-STD_ROM_FN(md_hellfireu)
-
-struct BurnDriver BurnDrvmd_hellfireu = {
- "md_hellfireu", "md_hellfire", NULL, NULL, "1991",
- "Hellfire (USA)\0", NULL, "Seismic", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_hellfireuRomInfo, md_hellfireuRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Herzog Zwei (Jpn)
-static struct BurnRomInfo md_herzogjRomDesc[] = {
- { "herzog zwei (jpn).bin", 0x080000, 0x4cf676b3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_herzogj)
-STD_ROM_FN(md_herzogj)
-
-struct BurnDriver BurnDrvmd_herzogj = {
- "md_herzogj", "md_herzog", NULL, NULL, "1989",
- "Herzog Zwei (Jpn)\0", NULL, "Technosoft", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_herzogjRomInfo, md_herzogjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Hit the Ice (USA)
-static struct BurnRomInfo md_hiticeRomDesc[] = {
- { "hit the ice (usa).bin", 0x080000, 0x85b23606, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_hitice)
-STD_ROM_FN(md_hitice)
-
-struct BurnDriver BurnDrvmd_hitice = {
- "md_hitice", NULL, NULL, NULL, "1992",
- "Hit the Ice (USA)\0", NULL, "Taito", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_hiticeRomInfo, md_hiticeRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Home Alone (USA, Prototype)
-static struct BurnRomInfo md_homeapRomDesc[] = {
- { "home alone (usa) (beta).bin", 0x100000, 0x3a235fb9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_homeap)
-STD_ROM_FN(md_homeap)
-
-struct BurnDriver BurnDrvmd_homeap = {
- "md_homeap", "md_homea", NULL, NULL, "1992",
- "Home Alone (USA, Prototype)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_homeapRomInfo, md_homeapRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Home Alone 2 - Lost in New York (USA)
-static struct BurnRomInfo md_homea2RomDesc[] = {
- { "home alone 2 - lost in new york (usa).bin", 0x080000, 0xcbf87c14, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_homea2)
-STD_ROM_FN(md_homea2)
-
-struct BurnDriver BurnDrvmd_homea2 = {
- "md_homea2", NULL, NULL, NULL, "1993",
- "Home Alone 2 - Lost in New York (USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_homea2RomInfo, md_homea2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Honoo no Toukyuuji - Dodge Danpei (Jpn)
-static struct BurnRomInfo md_ddanpeiRomDesc[] = {
- { "mpr-14856.bin", 0x080000, 0x630f07c6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ddanpei)
-STD_ROM_FN(md_ddanpei)
-
-struct BurnDriver BurnDrvmd_ddanpei = {
- "md_ddanpei", NULL, NULL, NULL, "1992",
- "Honoo no Toukyuuji - Dodge Danpei (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_ddanpeiRomInfo, md_ddanpeiRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Hook (Euro)
-static struct BurnRomInfo md_hookRomDesc[] = {
- { "hook (euro).bin", 0x100000, 0xa154433a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_hook)
-STD_ROM_FN(md_hook)
-
-struct BurnDriver BurnDrvmd_hook = {
- "md_hook", NULL, NULL, NULL, "1992",
- "Hook (Euro)\0", NULL, "Sony Imagesoft", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_hookRomInfo, md_hookRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Hook (USA)
-static struct BurnRomInfo md_hookuRomDesc[] = {
- { "hook (usa).bin", 0x100000, 0x2c48e712, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_hooku)
-STD_ROM_FN(md_hooku)
-
-struct BurnDriver BurnDrvmd_hooku = {
- "md_hooku", "md_hook", NULL, NULL, "1992",
- "Hook (USA)\0", NULL, "Sony Imagesoft", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_hookuRomInfo, md_hookuRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Humans (USA)
-static struct BurnRomInfo md_humansRomDesc[] = {
- { "humans, the (usa).bin", 0x100000, 0xa0cf4366, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_humans)
-STD_ROM_FN(md_humans)
-
-struct BurnDriver BurnDrvmd_humans = {
- "md_humans", NULL, NULL, NULL, "1992",
- "The Humans (USA)\0", NULL, "GameTek", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_humansRomInfo, md_humansRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Hurricanes (Euro)
-static struct BurnRomInfo md_hurricanRomDesc[] = {
- { "hurricanes (euro).bin", 0x200000, 0xdeccc874, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_hurrican)
-STD_ROM_FN(md_hurrican)
-
-struct BurnDriver BurnDrvmd_hurrican = {
- "md_hurrican", NULL, NULL, NULL, "1994",
- "Hurricanes (Euro)\0", NULL, "U.S. Gold", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_hurricanRomInfo, md_hurricanRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Hybrid Front (Jpn)
-static struct BurnRomInfo md_hybridfRomDesc[] = {
- { "hybrid front, the (jpn).bin", 0x200000, 0xa1f1cfe7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_hybridf)
-STD_ROM_FN(md_hybridf)
-
-struct BurnDriver BurnDrvmd_hybridf = {
- "md_hybridf", NULL, NULL, NULL, "1994",
- "The Hybrid Front (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_hybridfRomInfo, md_hybridfRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Hybrid Front (Jpn, Prototype)
-static struct BurnRomInfo md_hybridfpRomDesc[] = {
- { "hybrid front, the (jpn) (beta).bin", 0x300000, 0x04f02687, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_hybridfp)
-STD_ROM_FN(md_hybridfp)
-
-struct BurnDriver BurnDrvmd_hybridfp = {
- "md_hybridfp", "md_hybridf", NULL, NULL, "1994",
- "The Hybrid Front (Jpn, Prototype)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_hybridfpRomInfo, md_hybridfpRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Hyokkori Hyoutan Jima - Daitouryou o Mezase! (Jpn)
-static struct BurnRomInfo md_hyokkohjRomDesc[] = {
- { "hyokkori hyoutanjima - daitouryou o mezase! (jpn).bin", 0x080000, 0x72253bdb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_hyokkohj)
-STD_ROM_FN(md_hyokkohj)
-
-struct BurnDriver BurnDrvmd_hyokkohj = {
- "md_hyokkohj", NULL, NULL, NULL, "1992",
- "Hyokkori Hyoutan Jima - Daitouryou o Mezase! (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_hyokkohjRomInfo, md_hyokkohjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Hyper Dunk (Euro)
-static struct BurnRomInfo md_hyperdnkRomDesc[] = {
- { "hyper dunk (euro).bin", 0x200000, 0xf27c576a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_hyperdnk)
-STD_ROM_FN(md_hyperdnk)
-
-struct BurnDriver BurnDrvmd_hyperdnk = {
- "md_hyperdnk", NULL, NULL, NULL, "1994",
- "Hyper Dunk (Euro)\0", NULL, "Konami", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_hyperdnkRomInfo, md_hyperdnkRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Hyper Dunk - The Playoff Edition (Jpn)
-static struct BurnRomInfo md_hyperdnkjRomDesc[] = {
- { "fz009a1.bin", 0x200000, 0x5baf53d7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_hyperdnkj)
-STD_ROM_FN(md_hyperdnkj)
-
-struct BurnDriver BurnDrvmd_hyperdnkj = {
- "md_hyperdnkj", "md_hyperdnk", NULL, NULL, "1994",
- "Hyper Dunk - The Playoff Edition (Jpn)\0", NULL, "Konami", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_hyperdnkjRomInfo, md_hyperdnkjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Hyper Dunk - The Playoff Edition (Jpn, Prototype)
-static struct BurnRomInfo md_hyperdnkjpRomDesc[] = {
- { "hyper dunk - the playoff edition (jpn) (beta).in", 0x200000, 0xdb124bbb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_hyperdnkjp)
-STD_ROM_FN(md_hyperdnkjp)
-
-struct BurnDriver BurnDrvmd_hyperdnkjp = {
- "md_hyperdnkjp", "md_hyperdnk", NULL, NULL, "1994",
- "Hyper Dunk - The Playoff Edition (Jpn, Prototype)\0", NULL, "Konami", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_hyperdnkjpRomInfo, md_hyperdnkjpRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Double Dribble - The Playoff Edition (USA)
-static struct BurnRomInfo md_ddribbleRomDesc[] = {
- { "double dribble - the playoff edition (usa).bin", 0x200000, 0x8352b1d0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ddribble)
-STD_ROM_FN(md_ddribble)
-
-struct BurnDriver BurnDrvmd_ddribble = {
- "md_ddribble", "md_hyperdnk", NULL, NULL, "1994",
- "Double Dribble - The Playoff Edition (USA)\0", NULL, "Konami", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_ddribbleRomInfo, md_ddribbleRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Hyper Marbles (Jpn, SegaNet)
-static struct BurnRomInfo md_hypermRomDesc[] = {
- { "hyper marbles (jpn) (sn).bin", 0x040000, 0x83bb2799, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_hyperm)
-STD_ROM_FN(md_hyperm)
-
-struct BurnDriver BurnDrvmd_hyperm = {
- "md_hyperm", NULL, NULL, NULL, "1991",
- "Hyper Marbles (Jpn, SegaNet)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_hypermRomInfo, md_hypermRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Hyper Marbles (Jpn, Game no Kandume MegaCD Rip)
-static struct BurnRomInfo md_hypermgnkRomDesc[] = {
- { "hyper marbles (jpn) (gnk).bin", 0x040000, 0x9ed72146, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_hypermgnk)
-STD_ROM_FN(md_hypermgnk)
-
-struct BurnDriver BurnDrvmd_hypermgnk = {
- "md_hypermgnk", "md_hyperm", NULL, NULL, "1991",
- "Hyper Marbles (Jpn, Game no Kandume MegaCD Rip)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_hypermgnkRomInfo, md_hypermgnkRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// IMG International Tour Tennis (Euro, USA)
-static struct BurnRomInfo md_imgittRomDesc[] = {
- { "img international tour tennis (euro, usa).bin", 0x200000, 0xe04ffc2b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_imgitt)
-STD_ROM_FN(md_imgitt)
-
-struct BurnDriver BurnDrvmd_imgitt = {
- "md_imgitt", NULL, NULL, NULL, "1994",
- "IMG International Tour Tennis (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_imgittRomInfo, md_imgittRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Immortal (Euro, USA)
-static struct BurnRomInfo md_immortalRomDesc[] = {
- { "immortal, the (euro, usa).bin", 0x100000, 0xf653c508, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_immortal)
-STD_ROM_FN(md_immortal)
-
-struct BurnDriver BurnDrvmd_immortal = {
- "md_immortal", NULL, NULL, NULL, "1993",
- "The Immortal (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_immortalRomInfo, md_immortalRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Wizard of the Immortal (Jpn)
-static struct BurnRomInfo md_immortaljRomDesc[] = {
- { "wizard of the immortal (jpn).bin", 0x200000, 0xc99fad92, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_immortalj)
-STD_ROM_FN(md_immortalj)
-
-struct BurnDriver BurnDrvmd_immortalj = {
- "md_immortalj", "md_immortal", NULL, NULL, "1993",
- "Wizard of the Immortal (Jpn)\0", NULL, "Electronic Arts Victor", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_immortaljRomInfo, md_immortaljRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Incredible Crash Dummies (USA, Prototype)
-static struct BurnRomInfo md_crashdumpRomDesc[] = {
- { "incredible crash dummies, the (usa) (beta).bin", 0x100000, 0x623a920f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_crashdump)
-STD_ROM_FN(md_crashdump)
-
-struct BurnDriver BurnDrvmd_crashdump = {
- "md_crashdump", "md_crashdum", NULL, NULL, "1993",
- "The Incredible Crash Dummies (USA, Prototype)\0", NULL, "Flying Edge", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_crashdumpRomInfo, md_crashdumpRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Incredible Hulk (Euro, USA)
-static struct BurnRomInfo md_hulkRomDesc[] = {
- { "incredible hulk, the (euro, usa).bin", 0x200000, 0x84a5a2dc, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_hulk)
-STD_ROM_FN(md_hulk)
-
-struct BurnDriver BurnDrvmd_hulk = {
- "md_hulk", NULL, NULL, NULL, "1994",
- "The Incredible Hulk (Euro, USA)\0", NULL, "U.S. Gold", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_hulkRomInfo, md_hulkRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Indiana Jones and the Last Crusade (Euro)
-static struct BurnRomInfo md_indycrusRomDesc[] = {
- { "mpr-15207.bin", 0x100000, 0xeb8f4374, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_indycrus)
-STD_ROM_FN(md_indycrus)
-
-struct BurnDriver BurnDrvmd_indycrus = {
- "md_indycrus", NULL, NULL, NULL, "1992",
- "Indiana Jones and the Last Crusade (Euro)\0", NULL, "U.S. Gold", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_indycrusRomInfo, md_indycrusRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Indiana Jones and the Last Crusade (USA)
-static struct BurnRomInfo md_indycrusuRomDesc[] = {
- { "indiana jones and the last crusade (usa).bin", 0x100000, 0x3599a3fd, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_indycrusu)
-STD_ROM_FN(md_indycrusu)
-
-struct BurnDriver BurnDrvmd_indycrusu = {
- "md_indycrusu", "md_indycrus", NULL, NULL, "1992",
- "Indiana Jones and the Last Crusade (USA)\0", NULL, "U.S. Gold", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_indycrusuRomInfo, md_indycrusuRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Insector X (USA)
-static struct BurnRomInfo md_insectxRomDesc[] = {
- { "insector x (usa).bin", 0x080000, 0x70626304, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_insectx)
-STD_ROM_FN(md_insectx)
-
-struct BurnDriver BurnDrvmd_insectx = {
- "md_insectx", NULL, NULL, NULL, "1990",
- "Insector X (USA)\0", NULL, "Sage's Creation", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_insectxRomInfo, md_insectxRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Insector X (Jpn, Kor)
-static struct BurnRomInfo md_insectxjRomDesc[] = {
- { "insector x (jpn, kor).bin", 0x080000, 0x9625c434, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_insectxj)
-STD_ROM_FN(md_insectxj)
-
-struct BurnDriver BurnDrvmd_insectxj = {
- "md_insectxj", "md_insectx", NULL, NULL, "1990",
- "Insector X (Jpn, Kor)\0", NULL, "Hot-B", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_insectxjRomInfo, md_insectxjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Instruments of Chaos Starring Young Indiana Jones (USA)
-static struct BurnRomInfo md_instchRomDesc[] = {
- { "instruments of chaos starring young indiana jones (usa).bin", 0x100000, 0x4e384ef0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_instch)
-STD_ROM_FN(md_instch)
-
-struct BurnDriver BurnDrvmd_instch = {
- "md_instch", NULL, NULL, NULL, "1994",
- "Instruments of Chaos Starring Young Indiana Jones (USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_instchRomInfo, md_instchRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Instruments of Chaos Starring Young Indiana Jones (Prototype)
-static struct BurnRomInfo md_instchp1RomDesc[] = {
- { "instruments of chaos starring young indiana jones (usa) (beta).bin", 0x180000, 0xad6c2050, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_instchp1)
-STD_ROM_FN(md_instchp1)
-
-struct BurnDriver BurnDrvmd_instchp1 = {
- "md_instchp1", "md_instch", NULL, NULL, "1994",
- "Instruments of Chaos Starring Young Indiana Jones (Prototype)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_instchp1RomInfo, md_instchp1RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Instruments of Chaos Starring Young Indiana Jones (Prototype, 19941229)
-static struct BurnRomInfo md_instchp2RomDesc[] = {
- { "instruments of chaos starring young indiana jones (prototype - dec 29, 1994).bin", 0x100000, 0x94b02351, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_instchp2)
-STD_ROM_FN(md_instchp2)
-
-struct BurnDriver BurnDrvmd_instchp2 = {
- "md_instchp2", "md_instch", NULL, NULL, "1994",
- "Instruments of Chaos Starring Young Indiana Jones (Prototype, 19941229)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_instchp2RomInfo, md_instchp2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Instruments of Chaos Starring Young Indiana Jones (Prototype, 19941228-A)
-static struct BurnRomInfo md_instchp3RomDesc[] = {
- { "instruments of chaos starring young indiana jones (prototype - dec 28, 1994 - a).bin", 0x0ff73c, 0xf285ad46, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_instchp3)
-STD_ROM_FN(md_instchp3)
-
-struct BurnDriver BurnDrvmd_instchp3 = {
- "md_instchp3", "md_instch", NULL, NULL, "1994",
- "Instruments of Chaos Starring Young Indiana Jones (Prototype, 19941228-A)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_instchp3RomInfo, md_instchp3RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Instruments of Chaos Starring Young Indiana Jones (Prototype, 19940101)
-static struct BurnRomInfo md_instchp8RomDesc[] = {
- { "instruments of chaos starring young indiana jones (prototype - jan 01, 1994).bin", 0x100000, 0x263f1a4c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_instchp8)
-STD_ROM_FN(md_instchp8)
-
-struct BurnDriver BurnDrvmd_instchp8 = {
- "md_instchp8", "md_instch", NULL, NULL, "1994",
- "Instruments of Chaos Starring Young Indiana Jones (Prototype, 19940101)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_instchp8RomInfo, md_instchp8RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Instruments of Chaos Starring Young Indiana Jones (Prototype, 19940103)
-static struct BurnRomInfo md_instchp7RomDesc[] = {
- { "instruments of chaos starring young indiana jones (prototype - jan 03, 1994).bin", 0x100000, 0x3c46d83d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_instchp7)
-STD_ROM_FN(md_instchp7)
-
-struct BurnDriver BurnDrvmd_instchp7 = {
- "md_instchp7", "md_instch", NULL, NULL, "1994",
- "Instruments of Chaos Starring Young Indiana Jones (Prototype, 19940103)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_instchp7RomInfo, md_instchp7RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Instruments of Chaos Starring Young Indiana Jones (Prototype, 19940126)
-static struct BurnRomInfo md_instchp6RomDesc[] = {
- { "instruments of chaos starring young indiana jones (prototype - jan 26, 1994).bin", 0x100000, 0xf3498542, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_instchp6)
-STD_ROM_FN(md_instchp6)
-
-struct BurnDriver BurnDrvmd_instchp6 = {
- "md_instchp6", "md_instch", NULL, NULL, "1994",
- "Instruments of Chaos Starring Young Indiana Jones (Prototype, 19940126)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_instchp6RomInfo, md_instchp6RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Instruments of Chaos Starring Young Indiana Jones (Prototype, 19940127)
-static struct BurnRomInfo md_instchp5RomDesc[] = {
- { "instruments of chaos starring young indiana jones (prototype - jan 27, 1994).bin", 0x100000, 0xf43112c3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_instchp5)
-STD_ROM_FN(md_instchp5)
-
-struct BurnDriver BurnDrvmd_instchp5 = {
- "md_instchp5", "md_instch", NULL, NULL, "1994",
- "Instruments of Chaos Starring Young Indiana Jones (Prototype, 19940127)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_instchp5RomInfo, md_instchp5RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Instruments of Chaos Starring Young Indiana Jones (Prototype, 19940923-A)
-static struct BurnRomInfo md_instchp4RomDesc[] = {
- { "instruments of chaos starring young indiana jones (prototype - sep 23, 1994 - a).bin", 0x0fe3c4, 0x14443a29, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_instchp4)
-STD_ROM_FN(md_instchp4)
-
-struct BurnDriver BurnDrvmd_instchp4 = {
- "md_instchp4", "md_instch", NULL, NULL, "1994",
- "Instruments of Chaos Starring Young Indiana Jones (Prototype, 19940923-A)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_instchp4RomInfo, md_instchp4RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Instruments of Chaos Starring Young Indiana Jones (Prototype, 19931228)
-static struct BurnRomInfo md_instchp9RomDesc[] = {
- { "instruments of chaos starring young indiana jones (prototype - dec 28, 1993).bin", 0x100000, 0x51ca641c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_instchp9)
-STD_ROM_FN(md_instchp9)
-
-struct BurnDriver BurnDrvmd_instchp9 = {
- "md_instchp9", "md_instch", NULL, NULL, "1994",
- "Instruments of Chaos Starring Young Indiana Jones (Prototype, 19931228)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_instchp9RomInfo, md_instchp9RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// International Rugby (Euro)
-static struct BurnRomInfo md_intrugbyRomDesc[] = {
- { "international rugby (euro).bin", 0x080000, 0xd97d1699, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_intrugby)
-STD_ROM_FN(md_intrugby)
-
-struct BurnDriver BurnDrvmd_intrugby = {
- "md_intrugby", NULL, NULL, NULL, "1993",
- "International Rugby (Euro)\0", NULL, "Domark", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_intrugbyRomInfo, md_intrugbyRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// International Superstar Soccer Deluxe (Euro)
-static struct BurnRomInfo md_issdxRomDesc[] = {
- { "international superstar soccer deluxe (euro).bin", 0x200000, 0x9bb3b180, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_issdx)
-STD_ROM_FN(md_issdx)
-
-struct BurnDriver BurnDrvmd_issdx = {
- "md_issdx", NULL, NULL, NULL, "1996",
- "International Superstar Soccer Deluxe (Euro)\0", NULL, "Konami", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_issdxRomInfo, md_issdxRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Ronaldinho 98 (Pirate)
-static struct BurnRomInfo md_dinho98RomDesc[] = {
- { "ronaldinho 98 (pirate).bin", 0x200000, 0xdd27c84e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_dinho98)
-STD_ROM_FN(md_dinho98)
-
-struct BurnDriver BurnDrvmd_dinho98 = {
- "md_dinho98", "md_issdx", NULL, NULL, "199?",
- "Ronaldinho 98 (Pirate)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_dinho98RomInfo, md_dinho98RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Ishido - The Way of Stones (USA)
-static struct BurnRomInfo md_ishidoRomDesc[] = {
- { "mb834200a.bin", 0x020000, 0xb1de7d5e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ishido)
-STD_ROM_FN(md_ishido)
-
-struct BurnDriver BurnDrvmd_ishido = {
- "md_ishido", NULL, NULL, NULL, "1990",
- "Ishido - The Way of Stones (USA)\0", NULL, "Accolade", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_ishidoRomInfo, md_ishidoRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// It Came from the Desert (USA)
-static struct BurnRomInfo md_itcameRomDesc[] = {
- { "it came from the desert (usa).bin", 0x080000, 0x25afb4f7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_itcame)
-STD_ROM_FN(md_itcame)
-
-struct BurnDriver BurnDrvmd_itcame = {
- "md_itcame", NULL, NULL, NULL, "1990",
- "It Came from the Desert (USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_itcameRomInfo, md_itcameRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Itchy and Scratchy Game (USA, Prototype)
-static struct BurnRomInfo md_itchyRomDesc[] = {
- { "itchy and scratchy game, the (usa) (prototype).bin", 0x100000, 0x81b7725d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_itchy)
-STD_ROM_FN(md_itchy)
-
-struct BurnDriver BurnDrvmd_itchy = {
- "md_itchy", NULL, NULL, NULL, "1994",
- "The Itchy and Scratchy Game (USA, Prototype)\0", NULL, "Acclaim Entertainment", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_itchyRomInfo, md_itchyRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Izzy's Quest for the Olympic Rings (Euro, USA)
-static struct BurnRomInfo md_izzyqstRomDesc[] = {
- { "izzy's quest for the olympic rings (euro, usa).bin", 0x200000, 0x77b416e4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_izzyqst)
-STD_ROM_FN(md_izzyqst)
-
-struct BurnDriver BurnDrvmd_izzyqst = {
- "md_izzyqst", NULL, NULL, NULL, "1995",
- "Izzy's Quest for the Olympic Rings (Euro, USA)\0", NULL, "U.S. Gold", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_izzyqstRomInfo, md_izzyqstRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// J. League Pro Striker '93 (Jpn, v1.3)
-static struct BurnRomInfo md_jlpsRomDesc[] = {
- { "j. league pro striker (jpn) (v1.3).bin", 0x100000, 0x2d5b7a11, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_jlps)
-STD_ROM_FN(md_jlps)
-
-struct BurnDriver BurnDrvmd_jlps = {
- "md_jlps", NULL, NULL, NULL, "1993",
- "J. League Pro Striker '93 (Jpn, v1.3)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_jlpsRomInfo, md_jlpsRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// J. League Pro Striker '93 (Jpn, v1.0)
-static struct BurnRomInfo md_jlpsaRomDesc[] = {
- { "j. league pro striker (jpn) (v1.0).bin", 0x100000, 0xec229156, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_jlpsa)
-STD_ROM_FN(md_jlpsa)
-
-struct BurnDriver BurnDrvmd_jlpsa = {
- "md_jlpsa", "md_jlps", NULL, NULL, "1993",
- "J. League Pro Striker '93 (Jpn, v1.0)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_jlpsaRomInfo, md_jlpsaRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// J. League Pro Striker 2 (Jpn)
-static struct BurnRomInfo md_jlps2RomDesc[] = {
- { "mpr-16857.bin", 0x200000, 0x9fe71002, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_jlps2)
-STD_ROM_FN(md_jlps2)
-
-struct BurnDriver BurnDrvmd_jlps2 = {
- "md_jlps2", NULL, NULL, NULL, "1994",
- "J. League Pro Striker 2 (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_jlps2RomInfo, md_jlps2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Pro Striker Final Stage (Jpn)
-static struct BurnRomInfo md_prostrfsRomDesc[] = {
- { "j. league pro striker final stage (jpn).bin", 0x200000, 0xe35e25fb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_prostrfs)
-STD_ROM_FN(md_prostrfs)
-
-struct BurnDriver BurnDrvmd_prostrfs = {
- "md_prostrfs", NULL, NULL, NULL, "1995",
- "Pro Striker Final Stage (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_prostrfsRomInfo, md_prostrfsRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// J. League Pro Striker Perfect (Jpn)
-static struct BurnRomInfo md_jlpspRomDesc[] = {
- { "mpr-16267.bin", 0x100000, 0x0abed379, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_jlpsp)
-STD_ROM_FN(md_jlpsp)
-
-struct BurnDriver BurnDrvmd_jlpsp = {
- "md_jlpsp", NULL, NULL, NULL, "1993",
- "J. League Pro Striker Perfect (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_jlpspRomInfo, md_jlpspRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Jack Nicklaus' Power Challenge Golf (Euro, USA)
-static struct BurnRomInfo md_nicklausRomDesc[] = {
- { "jack nicklaus' power challenge golf (euro, usa).bin", 0x100000, 0x5545e909, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nicklaus)
-STD_ROM_FN(md_nicklaus)
-
-struct BurnDriver BurnDrvmd_nicklaus = {
- "md_nicklaus", NULL, NULL, NULL, "1993",
- "Jack Nicklaus' Power Challenge Golf (Euro, USA)\0", NULL, "Accolade", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_nicklausRomInfo, md_nicklausRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// James 'Buster' Douglas Knockout Boxing (Euro, USA)
-static struct BurnRomInfo md_jbdougkoRomDesc[] = {
- { "mpr-13262.bin", 0x080000, 0x87bbcf2a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_jbdougko)
-STD_ROM_FN(md_jbdougko)
-
-struct BurnDriver BurnDrvmd_jbdougko = {
- "md_jbdougko", NULL, NULL, NULL, "1990",
- "James 'Buster' Douglas Knockout Boxing (Euro, USA)\0", NULL, "Taito", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_jbdougkoRomInfo, md_jbdougkoRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Final Blow (Jpn)
-static struct BurnRomInfo md_finalbRomDesc[] = {
- { "final blow (jpn).bin", 0x080000, 0x48ad505d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_finalb)
-STD_ROM_FN(md_finalb)
-
-struct BurnDriver BurnDrvmd_finalb = {
- "md_finalb", "md_jbdougko", NULL, NULL, "1990",
- "Final Blow (Jpn)\0", NULL, "Taito", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_finalbRomInfo, md_finalbRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// James Bond 007 - The Duel (USA)
-static struct BurnRomInfo md_jb007uRomDesc[] = {
- { "james bond 007 - the duel (usa).bin", 0x080000, 0x4e614548, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_jb007u)
-STD_ROM_FN(md_jb007u)
-
-struct BurnDriver BurnDrvmd_jb007u = {
- "md_jb007u", "md_jb007", NULL, NULL, "1992",
- "James Bond 007 - The Duel (USA)\0", NULL, "Domark", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_jb007uRomInfo, md_jb007uRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// James Bond 007 - The Duel (Jpn)
-static struct BurnRomInfo md_jb007jRomDesc[] = {
- { "007 shitou - the duel (jpn).bin", 0x080000, 0xaeb4b262, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_jb007j)
-STD_ROM_FN(md_jb007j)
-
-struct BurnDriver BurnDrvmd_jb007j = {
- "md_jb007j", "md_jb007", NULL, NULL, "1993",
- "James Bond 007 - The Duel (Jpn)\0", NULL, "Tengen", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_jb007jRomInfo, md_jb007jRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// James Pond II - Codename RoboCod (Jpn, Kor)
-static struct BurnRomInfo md_robocodjRomDesc[] = {
- { "james pond ii - codename robocod (jpn, kor).bin", 0x080000, 0x98794702, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_robocodj)
-STD_ROM_FN(md_robocodj)
-
-struct BurnDriver BurnDrvmd_robocodj = {
- "md_robocodj", "md_robocod", NULL, NULL, "1993",
- "James Pond II - Codename RoboCod (Jpn, Kor)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_robocodjRomInfo, md_robocodjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// James Pond 3 - Operation Starfish (Euro, USA)
-static struct BurnRomInfo md_jpond3RomDesc[] = {
- { "james pond 3 - operation starfish (euro, usa).bin", 0x200000, 0x26f64b2a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_jpond3)
-STD_ROM_FN(md_jpond3)
-
-struct BurnDriver BurnDrvmd_jpond3 = {
- "md_jpond3", NULL, NULL, NULL, "1993",
- "James Pond 3 - Operation Starfish (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_jpond3RomInfo, md_jpond3RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Jammit (USA)
-static struct BurnRomInfo md_jammitRomDesc[] = {
- { "jammit (usa).bin", 0x200000, 0xd91b52b8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_jammit)
-STD_ROM_FN(md_jammit)
-
-struct BurnDriver BurnDrvmd_jammit = {
- "md_jammit", NULL, NULL, NULL, "1994",
- "Jammit (USA)\0", NULL, "Virgin Interactive", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_jammitRomInfo, md_jammitRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Janou Touryuumon (Jpn)
-static struct BurnRomInfo md_janoutRomDesc[] = {
- { "janou touryuumon (jpn).bin", 0x100000, 0xb5ef97c6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_janout)
-STD_ROM_FN(md_janout)
-
-struct BurnDriver BurnDrvmd_janout = {
- "md_janout", NULL, NULL, NULL, "1993",
- "Janou Touryuumon (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_janoutRomInfo, md_janoutRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Jantei Monogatari (Jpn)
-static struct BurnRomInfo md_janteiRomDesc[] = {
- { "jantei monogatari (jpn).bin", 0x100000, 0x8a1b19ad, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_jantei)
-STD_ROM_FN(md_jantei)
-
-struct BurnDriver BurnDrvmd_jantei = {
- "md_jantei", NULL, NULL, NULL, "1991",
- "Jantei Monogatari (Jpn)\0", NULL, "Reno", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_janteiRomInfo, md_janteiRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Jelly Boy (Euro, Prototype)
-static struct BurnRomInfo md_jellyboyRomDesc[] = {
- { "jelly boy (euro) (prototype).bin", 0x100000, 0x7cfadc16, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_jellyboy)
-STD_ROM_FN(md_jellyboy)
-
-struct BurnDriver BurnDrvmd_jellyboy = {
- "md_jellyboy", NULL, NULL, NULL, "199?",
- "Jelly Boy (Euro, Prototype)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_jellyboyRomInfo, md_jellyboyRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Jeopardy! (USA)
-static struct BurnRomInfo md_jeopardyRomDesc[] = {
- { "jeopardy! (usa).bin", 0x080000, 0x56cff3f1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_jeopardy)
-STD_ROM_FN(md_jeopardy)
-
-struct BurnDriver BurnDrvmd_jeopardy = {
- "md_jeopardy", NULL, NULL, NULL, "1992",
- "Jeopardy! (USA)\0", NULL, "GameTek", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_jeopardyRomInfo, md_jeopardyRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Jeopardy! Deluxe (USA)
-static struct BurnRomInfo md_jeoparddRomDesc[] = {
- { "jeopardy! deluxe (usa).bin", 0x080000, 0x25e2f9d2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_jeopardd)
-STD_ROM_FN(md_jeopardd)
-
-struct BurnDriver BurnDrvmd_jeopardd = {
- "md_jeopardd", NULL, NULL, NULL, "1993",
- "Jeopardy! Deluxe (USA)\0", NULL, "GameTek", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_jeoparddRomInfo, md_jeoparddRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Jeopardy! Sports Edition (USA)
-static struct BurnRomInfo md_jeopardsRomDesc[] = {
- { "jeopardy! sports edition (usa).bin", 0x080000, 0x13f924d2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_jeopards)
-STD_ROM_FN(md_jeopards)
-
-struct BurnDriver BurnDrvmd_jeopards = {
- "md_jeopards", NULL, NULL, NULL, "1993",
- "Jeopardy! Sports Edition (USA)\0", NULL, "GameTek", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_jeopardsRomInfo, md_jeopardsRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Jerry Glanville's Pigskin Footbrawl (USA)
-static struct BurnRomInfo md_pigskinfRomDesc[] = {
- { "jerry glanville's pigskin footbrawl (usa).bin", 0x100000, 0xe7f48d30, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_pigskinf)
-STD_ROM_FN(md_pigskinf)
-
-struct BurnDriver BurnDrvmd_pigskinf = {
- "md_pigskinf", NULL, NULL, NULL, "1992",
- "Jerry Glanville's Pigskin Footbrawl (USA)\0", NULL, "Razorsoft", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_pigskinfRomInfo, md_pigskinfRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Jewel Master (Jpn)
-static struct BurnRomInfo md_jewelmsjRomDesc[] = {
- { "jewel master (jpn).bin", 0x080000, 0x2cf6926c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_jewelmsj)
-STD_ROM_FN(md_jewelmsj)
-
-struct BurnDriver BurnDrvmd_jewelmsj = {
- "md_jewelmsj", "md_jewelms", NULL, NULL, "1991",
- "Jewel Master (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_jewelmsjRomInfo, md_jewelmsjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Jim Power - The Arcade Game (USA, Prototype)
-static struct BurnRomInfo md_jimpowerRomDesc[] = {
- { "jim power - the arcade game (usa) (prototype) (bad dump).bin", 0x100000, 0x1cf3238b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_jimpower)
-STD_ROM_FN(md_jimpower)
-
-struct BurnDriver BurnDrvmd_jimpower = {
- "md_jimpower", NULL, NULL, NULL, "199?",
- "Jim Power - The Arcade Game (USA, Prototype)\0", "imperfect graphics", "Loriciel", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_jimpowerRomInfo, md_jimpowerRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Jimmy White's Whirlwind Snooker (Euro)
-static struct BurnRomInfo md_jimmywwsRomDesc[] = {
- { "jimmy white's whirlwind snooker (euro).bin", 0x080000, 0x0aef5b1f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_jimmywws)
-STD_ROM_FN(md_jimmywws)
-
-struct BurnDriver BurnDrvmd_jimmywws = {
- "md_jimmywws", NULL, NULL, NULL, "1991",
- "Jimmy White's Whirlwind Snooker (Euro)\0", NULL, "Virgin Games", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_jimmywwsRomInfo, md_jimmywwsRomName, NULL, NULL, MegadriveInputInfo, MegadrivePALDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Jiu Ji Ma Jiang II - Ye Yan Bian (Chi)
-static struct BurnRomInfo md_jiujimRomDesc[] = {
- { "jiu ji ma jiang ii - ye yan bian (chi) (unl).bin", 0x100000, 0xe9829b22, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_jiujim)
-STD_ROM_FN(md_jiujim)
-
-struct BurnDriver BurnDrvmd_jiujim = {
- "md_jiujim", NULL, NULL, NULL, "199?",
- "Jiu Ji Ma Jiang II - Ye Yan Bian (Chi)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_jiujimRomInfo, md_jiujimRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Joe & Mac (USA)
-static struct BurnRomInfo md_joemacRomDesc[] = {
- { "joe & mac (usa).bin", 0x100000, 0x85bcc1c7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_joemac)
-STD_ROM_FN(md_joemac)
-
-struct BurnDriver BurnDrvmd_joemac = {
- "md_joemac", NULL, NULL, NULL, "1991",
- "Joe & Mac (USA)\0", NULL, "Takara", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_joemacRomInfo, md_joemacRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Joe Montana Football (World)
-static struct BurnRomInfo md_joemontRomDesc[] = {
- { "mpr-13654.bin", 0x080000, 0x8aa6a1dd, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_joemont)
-STD_ROM_FN(md_joemont)
-
-struct BurnDriver BurnDrvmd_joemont = {
- "md_joemont", NULL, NULL, NULL, "1990",
- "Joe Montana Football (World)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_joemontRomInfo, md_joemontRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Joe Montana II Sports Talk Football (World, Rev. A)
-static struct BurnRomInfo md_joemont2RomDesc[] = {
- { "mpr-14356a.bin", 0x100000, 0xa45da893, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_joemont2)
-STD_ROM_FN(md_joemont2)
-
-struct BurnDriver BurnDrvmd_joemont2 = {
- "md_joemont2", NULL, NULL, NULL, "1991",
- "Joe Montana II Sports Talk Football (World, Rev. A)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_joemont2RomInfo, md_joemont2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// John Madden Football '92 (Euro, USA)
-static struct BurnRomInfo md_madden92RomDesc[] = {
- { "john madden football '92 (euro, usa).bin", 0x080000, 0x046e3945, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_madden92)
-STD_ROM_FN(md_madden92)
-
-struct BurnDriver BurnDrvmd_madden92 = {
- "md_madden92", NULL, NULL, NULL, "1991",
- "John Madden Football '92 (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_madden92RomInfo, md_madden92RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// John Madden Football '93 (Euro, USA)
-static struct BurnRomInfo md_madden93RomDesc[] = {
- { "jmf302.bin", 0x100000, 0xca323b3e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_madden93)
-STD_ROM_FN(md_madden93)
-
-struct BurnDriver BurnDrvmd_madden93 = {
- "md_madden93", NULL, NULL, NULL, "1992",
- "John Madden Football '93 (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_madden93RomInfo, md_madden93RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// John Madden Football '93 - Championship Edition (USA)
-static struct BurnRomInfo md_madd93ceRomDesc[] = {
- { "john madden football '93 - championship edition (usa).bin", 0x100000, 0xca534b1a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_madd93ce)
-STD_ROM_FN(md_madd93ce)
-
-struct BurnDriver BurnDrvmd_madd93ce = {
- "md_madd93ce", NULL, NULL, NULL, "1992",
- "John Madden Football '93 - Championship Edition (USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_madd93ceRomInfo, md_madd93ceRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// John Madden Football (Euro, USA)
-static struct BurnRomInfo md_maddenRomDesc[] = {
- { "john madden football (euro, usa).bin", 0x080000, 0x90fb8818, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_madden)
-STD_ROM_FN(md_madden)
-
-struct BurnDriver BurnDrvmd_madden = {
- "md_madden", NULL, NULL, NULL, "1990",
- "John Madden Football (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_maddenRomInfo, md_maddenRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// John Madden Football - Pro Football (Jpn)
-static struct BurnRomInfo md_maddenjRomDesc[] = {
- { "john madden football - pro football (jpn).bin", 0x080000, 0x0460611c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_maddenj)
-STD_ROM_FN(md_maddenj)
-
-struct BurnDriver BurnDrvmd_maddenj = {
- "md_maddenj", "md_madden", NULL, NULL, "1992",
- "John Madden Football - Pro Football (Jpn)\0", NULL, "Electronic Arts Victor", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_maddenjRomInfo, md_maddenjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Super One on One - Jordan Vs Bird (Euro, USA, v1.1)
-static struct BurnRomInfo md_jordanbRomDesc[] = {
- { "jordan vs bird (euro, usa) (v1.1).bin", 0x080000, 0x4d3ddd7c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_jordanb)
-STD_ROM_FN(md_jordanb)
-
-struct BurnDriver BurnDrvmd_jordanb = {
- "md_jordanb", NULL, NULL, NULL, "1992",
- "Super One on One - Jordan Vs Bird (Euro, USA, v1.1)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_jordanbRomInfo, md_jordanbRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Super One on One - Jordan Vs Bird (Euro, USA)
-static struct BurnRomInfo md_jordanb1RomDesc[] = {
- { "jordan vs bird (euro, usa).bin", 0x080000, 0x22d77e6d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_jordanb1)
-STD_ROM_FN(md_jordanb1)
-
-struct BurnDriver BurnDrvmd_jordanb1 = {
- "md_jordanb1", "md_jordanb", NULL, NULL, "1992",
- "Super One on One - Jordan Vs Bird (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_jordanb1RomInfo, md_jordanb1RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Super One on One - Jordan Vs Bird (Jpn)
-static struct BurnRomInfo md_jordanbjRomDesc[] = {
- { "jordan vs bird - one on one (jpn).bin", 0x080000, 0x8837e896, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_jordanbj)
-STD_ROM_FN(md_jordanbj)
-
-struct BurnDriver BurnDrvmd_jordanbj = {
- "md_jordanbj", "md_jordanb", NULL, NULL, "1993",
- "Super One on One - Jordan Vs Bird (Jpn)\0", NULL, "Electronic Arts Victor", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_jordanbjRomInfo, md_jordanbjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Joshua & The Battle of Jericho (USA)
-static struct BurnRomInfo md_joshuaRomDesc[] = {
- { "joshua & the battle of jericho (usa) (unl).bin", 0x040000, 0xda9e25aa, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_joshua)
-STD_ROM_FN(md_joshua)
-
-struct BurnDriver BurnDrvmd_joshua = {
- "md_joshua", NULL, NULL, NULL, "1992",
- "Joshua & The Battle of Jericho (USA)\0", NULL, "Wisdom Tree", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_joshuaRomInfo, md_joshuaRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Judge Dredd (World)
-static struct BurnRomInfo md_jdreddRomDesc[] = {
- { "judge dredd (world).bin", 0x200000, 0xea342ed8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_jdredd)
-STD_ROM_FN(md_jdredd)
-
-struct BurnDriver BurnDrvmd_jdredd = {
- "md_jdredd", NULL, NULL, NULL, "1995",
- "Judge Dredd (World)\0", NULL, "Acclaim Entertainment", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_jdreddRomInfo, md_jdreddRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Judge Dredd (USA, Prototype, Alt)
-static struct BurnRomInfo md_jdreddp2RomDesc[] = {
- { "judge dredd (usa) (beta) (alt).bin", 0x200000, 0xe649f784, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_jdreddp2)
-STD_ROM_FN(md_jdreddp2)
-
-struct BurnDriver BurnDrvmd_jdreddp2 = {
- "md_jdreddp2", "md_jdredd", NULL, NULL, "1995",
- "Judge Dredd (USA, Prototype, Alt)\0", NULL, "Acclaim Entertainment", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_jdreddp2RomInfo, md_jdreddp2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Judge Dredd (USA, Prototype)
-static struct BurnRomInfo md_jdreddp1RomDesc[] = {
- { "judge dredd (usa) (beta).bin", 0x200000, 0x8d46f4da, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_jdreddp1)
-STD_ROM_FN(md_jdreddp1)
-
-struct BurnDriver BurnDrvmd_jdreddp1 = {
- "md_jdreddp1", "md_jdredd", NULL, NULL, "1995",
- "Judge Dredd (USA, Prototype)\0", NULL, "Acclaim Entertainment", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_jdreddp1RomInfo, md_jdreddp1RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Junction (Jpn, USA)
-static struct BurnRomInfo md_junctionRomDesc[] = {
- { "junction (usa, jpn).bin", 0x080000, 0x94cdce8d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_junction)
-STD_ROM_FN(md_junction)
-
-struct BurnDriver BurnDrvmd_junction = {
- "md_junction", NULL, NULL, NULL, "1990",
- "Junction (Jpn, USA)\0", NULL, "Micronet", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_junctionRomInfo, md_junctionRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Disney's The Jungle Book (Euro)
-static struct BurnRomInfo md_jungleRomDesc[] = {
- { "jungle book, the (euro).bin", 0x200000, 0xb9709a99, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_jungle)
-STD_ROM_FN(md_jungle)
-
-struct BurnDriver BurnDrvmd_jungle = {
- "md_jungle", NULL, NULL, NULL, "1994",
- "Disney's The Jungle Book (Euro)\0", NULL, "Virgin Interactive", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_jungleRomInfo, md_jungleRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Disney's The Jungle Book (USA)
-static struct BurnRomInfo md_jungleuRomDesc[] = {
- { "jungle book, the (usa).bin", 0x200000, 0x3fb6d92e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_jungleu)
-STD_ROM_FN(md_jungleu)
-
-struct BurnDriver BurnDrvmd_jungleu = {
- "md_jungleu", "md_jungle", NULL, NULL, "1994",
- "Disney's The Jungle Book (USA)\0", NULL, "Virgin Interactive", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_jungleuRomInfo, md_jungleuRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Jungle Strike (Euro, USA)
-static struct BurnRomInfo md_jstrikeRomDesc[] = {
- { "jungle strike (euro, usa).bin", 0x200000, 0xa5d29735, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_jstrike)
-STD_ROM_FN(md_jstrike)
-
-struct BurnDriver BurnDrvmd_jstrike = {
- "md_jstrike", NULL, NULL, NULL, "1993",
- "Jungle Strike (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_jstrikeRomInfo, md_jstrikeRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Jungle Strike (USA, Prototype)
-static struct BurnRomInfo md_jstrikepRomDesc[] = {
- { "jungle strike (usa) (beta).bin", 0x200000, 0x0cd540d4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_jstrikep)
-STD_ROM_FN(md_jstrikep)
-
-struct BurnDriver BurnDrvmd_jstrikep = {
- "md_jstrikep", "md_jstrike", NULL, NULL, "1993",
- "Jungle Strike (USA, Prototype)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_jstrikepRomInfo, md_jstrikepRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Jungle Strike - Uketsugareta Kyouki (Jpn)
-static struct BurnRomInfo md_jstrikejRomDesc[] = {
- { "jungle strike - uketsugareta kyouki (jpn).bin", 0x200000, 0xba7a870b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_jstrikej)
-STD_ROM_FN(md_jstrikej)
-
-struct BurnDriver BurnDrvmd_jstrikej = {
- "md_jstrikej", "md_jstrike", NULL, NULL, "1993",
- "Jungle Strike - Uketsugareta Kyouki (Jpn)\0", NULL, "Electronic Arts Victor", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_jstrikejRomInfo, md_jstrikejRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Jurassic Park (Euro)
-static struct BurnRomInfo md_jparkRomDesc[] = {
- { "mpr-15679.bin", 0x200000, 0x448341f6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_jpark)
-STD_ROM_FN(md_jpark)
-
-struct BurnDriver BurnDrvmd_jpark = {
- "md_jpark", NULL, NULL, NULL, "1993",
- "Jurassic Park (Euro)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_jparkRomInfo, md_jparkRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Jurassic Park (Jpn)
-static struct BurnRomInfo md_jparkjRomDesc[] = {
- { "jurassic park (jpn).bin", 0x200000, 0xec8e5783, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_jparkj)
-STD_ROM_FN(md_jparkj)
-
-struct BurnDriver BurnDrvmd_jparkj = {
- "md_jparkj", "md_jpark", NULL, NULL, "1993",
- "Jurassic Park (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_jparkjRomInfo, md_jparkjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Jurassic Park (USA)
-static struct BurnRomInfo md_jparkuRomDesc[] = {
- { "jurassic park (usa).bin", 0x200000, 0x7b31deef, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_jparku)
-STD_ROM_FN(md_jparku)
-
-struct BurnDriver BurnDrvmd_jparku = {
- "md_jparku", "md_jpark", NULL, NULL, "1993",
- "Jurassic Park (USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_jparkuRomInfo, md_jparkuRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Jurassic Park (USA, Prototype)
-static struct BurnRomInfo md_jparkupRomDesc[] = {
- { "jurassic park (usa) (beta).bin", 0x200000, 0xcf890eed, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_jparkup)
-STD_ROM_FN(md_jparkup)
-
-struct BurnDriver BurnDrvmd_jparkup = {
- "md_jparkup", "md_jpark", NULL, NULL, "1993",
- "Jurassic Park (USA, Prototype)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_jparkupRomInfo, md_jparkupRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Jurassic Park - Rampage Edition (Euro, USA)
-static struct BurnRomInfo md_jparkreRomDesc[] = {
- { "jurassic park - rampage edition (euro, usa).bin", 0x200000, 0x98b4aa1b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_jparkre)
-STD_ROM_FN(md_jparkre)
-
-struct BurnDriver BurnDrvmd_jparkre = {
- "md_jparkre", NULL, NULL, NULL, "1994",
- "Jurassic Park - Rampage Edition (Euro, USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_jparkreRomInfo, md_jparkreRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Jurassic Park - Rampage Edition (Prototype, 19940708)
-static struct BurnRomInfo md_jparkrep6RomDesc[] = {
- { "jurassic park - rampage edition (prototype - jul 08, 1994).bin", 0x200000, 0xf4c78bd0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_jparkrep6)
-STD_ROM_FN(md_jparkrep6)
-
-struct BurnDriver BurnDrvmd_jparkrep6 = {
- "md_jparkrep6", "md_jparkre", NULL, NULL, "1994",
- "Jurassic Park - Rampage Edition (Prototype, 19940708)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_jparkrep6RomInfo, md_jparkrep6RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Jurassic Park - Rampage Edition (Prototype, 19940713)
-static struct BurnRomInfo md_jparkrep5RomDesc[] = {
- { "jurassic park - rampage edition (prototype - jul 13, 1994).bin", 0x200000, 0x8475a105, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_jparkrep5)
-STD_ROM_FN(md_jparkrep5)
-
-struct BurnDriver BurnDrvmd_jparkrep5 = {
- "md_jparkrep5", "md_jparkre", NULL, NULL, "1994",
- "Jurassic Park - Rampage Edition (Prototype, 19940713)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_jparkrep5RomInfo, md_jparkrep5RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Jurassic Park - Rampage Edition (Prototype, 19940714)
-static struct BurnRomInfo md_jparkrep4RomDesc[] = {
- { "jurassic park - rampage edition (prototype - jul 14, 1994).bin", 0x200000, 0x9bf0e28d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_jparkrep4)
-STD_ROM_FN(md_jparkrep4)
-
-struct BurnDriver BurnDrvmd_jparkrep4 = {
- "md_jparkrep4", "md_jparkre", NULL, NULL, "1994",
- "Jurassic Park - Rampage Edition (Prototype, 19940714)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_jparkrep4RomInfo, md_jparkrep4RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Jurassic Park - Rampage Edition (Prototype, 19940715)
-static struct BurnRomInfo md_jparkrep3RomDesc[] = {
- { "jurassic park - rampage edition (prototype - jul 15, 1994).bin", 0x200000, 0xd2202be5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_jparkrep3)
-STD_ROM_FN(md_jparkrep3)
-
-struct BurnDriver BurnDrvmd_jparkrep3 = {
- "md_jparkrep3", "md_jparkre", NULL, NULL, "1994",
- "Jurassic Park - Rampage Edition (Prototype, 19940715)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_jparkrep3RomInfo, md_jparkrep3RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Jurassic Park - Rampage Edition (Prototype, 19940717)
-static struct BurnRomInfo md_jparkrep2RomDesc[] = {
- { "jurassic park - rampage edition (prototype - jul 17, 1994).bin", 0x200000, 0x2eae6140, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_jparkrep2)
-STD_ROM_FN(md_jparkrep2)
-
-struct BurnDriver BurnDrvmd_jparkrep2 = {
- "md_jparkrep2", "md_jparkre", NULL, NULL, "1994",
- "Jurassic Park - Rampage Edition (Prototype, 19940717)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_jparkrep2RomInfo, md_jparkrep2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Jurassic Park - Rampage Edition (Prototype, 19940718)
-static struct BurnRomInfo md_jparkrep1RomDesc[] = {
- { "jurassic park - rampage edition (prototype - jul 18, 1994).bin", 0x200000, 0x1a62b826, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_jparkrep1)
-STD_ROM_FN(md_jparkrep1)
-
-struct BurnDriver BurnDrvmd_jparkrep1 = {
- "md_jparkrep1", "md_jparkre", NULL, NULL, "1994",
- "Jurassic Park - Rampage Edition (Prototype, 19940718)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_jparkrep1RomInfo, md_jparkrep1RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Jurassic Park - Rampage Edition (Prototype, 19940620)
-static struct BurnRomInfo md_jparkrep9RomDesc[] = {
- { "jurassic park - rampage edition (prototype - jun 20, 1994).bin", 0x1f6e60, 0x1280fa5c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_jparkrep9)
-STD_ROM_FN(md_jparkrep9)
-
-struct BurnDriver BurnDrvmd_jparkrep9 = {
- "md_jparkrep9", "md_jparkre", NULL, NULL, "1994",
- "Jurassic Park - Rampage Edition (Prototype, 19940620)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_jparkrep9RomInfo, md_jparkrep9RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Jurassic Park - Rampage Edition (Prototype, 19940622)
-static struct BurnRomInfo md_jparkrep8RomDesc[] = {
- { "jurassic park - rampage edition (prototype - jun 22, 1994).bin", 0x200000, 0x53582f2b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_jparkrep8)
-STD_ROM_FN(md_jparkrep8)
-
-struct BurnDriver BurnDrvmd_jparkrep8 = {
- "md_jparkrep8", "md_jparkre", NULL, NULL, "1994",
- "Jurassic Park - Rampage Edition (Prototype, 19940622)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_jparkrep8RomInfo, md_jparkrep8RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Jurassic Park - Rampage Edition (Prototype, 19940630)
-static struct BurnRomInfo md_jparkrep7RomDesc[] = {
- { "jurassic park - rampage edition (prototype - jun 30, 1994).bin", 0x200000, 0xbff4b396, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_jparkrep7)
-STD_ROM_FN(md_jparkrep7)
-
-struct BurnDriver BurnDrvmd_jparkrep7 = {
- "md_jparkrep7", "md_jparkre", NULL, NULL, "1994",
- "Jurassic Park - Rampage Edition (Prototype, 19940630)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_jparkrep7RomInfo, md_jparkrep7RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Justice League Task Force (World)
-static struct BurnRomInfo md_jleagueRomDesc[] = {
- { "justice league task force (world).bin", 0x300000, 0x2a60ebe9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_jleague)
-STD_ROM_FN(md_jleague)
-
-struct BurnDriver BurnDrvmd_jleague = {
- "md_jleague", NULL, NULL, NULL, "1995",
- "Justice League Task Force (World)\0", NULL, "Acclaim Entertainment", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_jleagueRomInfo, md_jleagueRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Ka-Ge-Ki - Fists of Steel (USA)
-static struct BurnRomInfo md_kagekiRomDesc[] = {
- { "ka-ge-ki - fists of steel (usa).bin", 0x100000, 0xeffc0fa6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_kageki)
-STD_ROM_FN(md_kageki)
-
-struct BurnDriver BurnDrvmd_kageki = {
- "md_kageki", NULL, NULL, NULL, "1991",
- "Ka-Ge-Ki - Fists of Steel (USA)\0", NULL, "Sage's Creation", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_kagekiRomInfo, md_kagekiRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Ka-Ge-Ki (Jpn)
-static struct BurnRomInfo md_kagekijRomDesc[] = {
- { "ka-ge-ki (jpn).bin", 0x100000, 0x391866a1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_kagekij)
-STD_ROM_FN(md_kagekij)
-
-struct BurnDriver BurnDrvmd_kagekij = {
- "md_kagekij", "md_kageki", NULL, NULL, "1991",
- "Ka-Ge-Ki (Jpn)\0", NULL, "Hot-B", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_kagekijRomInfo, md_kagekijRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Kawasaki Superbike Challenge (Euro, USA)
-static struct BurnRomInfo md_kawasakiRomDesc[] = {
- { "kawasaki superbike challenge (euro, usa).bin", 0x100000, 0x631cc8e9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_kawasaki)
-STD_ROM_FN(md_kawasaki)
-
-struct BurnDriver BurnDrvmd_kawasaki = {
- "md_kawasaki", NULL, NULL, NULL, "1994",
- "Kawasaki Superbike Challenge (Euro, USA)\0", NULL, "Time Warner Interactive", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_kawasakiRomInfo, md_kawasakiRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Kawasaki Superbike Challenge (USA, Prototype)
-static struct BurnRomInfo md_kawasakipRomDesc[] = {
- { "kawasaki superbike challenge (usa) (beta).bin", 0x100000, 0x55934d1b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_kawasakip)
-STD_ROM_FN(md_kawasakip)
-
-struct BurnDriver BurnDrvmd_kawasakip = {
- "md_kawasakip", "md_kawasaki", NULL, NULL, "1994",
- "Kawasaki Superbike Challenge (USA, Prototype)\0", NULL, "Time Warner Interactive", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_kawasakipRomInfo, md_kawasakipRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Kick Off 3 - European Challenge (Euro)
-static struct BurnRomInfo md_kickoff3RomDesc[] = {
- { "kick off 3 - european challenge (euro).bin", 0x100000, 0xbc37401a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_kickoff3)
-STD_ROM_FN(md_kickoff3)
-
-struct BurnDriver BurnDrvmd_kickoff3 = {
- "md_kickoff3", NULL, NULL, NULL, "1994",
- "Kick Off 3 - European Challenge (Euro)\0", NULL, "Vic Tokai", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_kickoff3RomInfo, md_kickoff3RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Chameleon Kid (Jpn)
-static struct BurnRomInfo md_kidchamjRomDesc[] = {
- { "chameleon kid (jpn).bin", 0x100000, 0x50217c80, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_kidchamj)
-STD_ROM_FN(md_kidchamj)
-
-struct BurnDriver BurnDrvmd_kidchamj = {
- "md_kidchamj", "md_kidcham", NULL, NULL, "1992",
- "Chameleon Kid (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_kidchamjRomInfo, md_kidchamjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Kidou Keisatsu Patlabor - 98-shiki Kidou Seyo! (Jpn)
-static struct BurnRomInfo md_patlaborRomDesc[] = {
- { "kidou keisatsu patlabor - 98-shiki kidou seyo! (jpn).bin", 0x080000, 0x21a0e749, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_patlabor)
-STD_ROM_FN(md_patlabor)
-
-struct BurnDriver BurnDrvmd_patlabor = {
- "md_patlabor", NULL, NULL, NULL, "1992",
- "Kidou Keisatsu Patlabor - 98-shiki Kidou Seyo! (Jpn)\0", NULL, "Ma-Ba", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_patlaborRomInfo, md_patlaborRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Tougiou King Colossus (Jpn)
-static struct BurnRomInfo md_kingcolRomDesc[] = {
- { "mpr-14929.bin", 0x100000, 0xffe7b3c7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_kingcol)
-STD_ROM_FN(md_kingcol)
-
-struct BurnDriver BurnDrvmd_kingcol = {
- "md_kingcol", NULL, NULL, NULL, "1992",
- "Tougiou King Colossus (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_kingcolRomInfo, md_kingcolRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// King of the Monsters (Euro)
-static struct BurnRomInfo md_kotmRomDesc[] = {
- { "king of the monsters (euro).bin", 0x100000, 0x7a94fd49, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_kotm)
-STD_ROM_FN(md_kotm)
-
-struct BurnDriver BurnDrvmd_kotm = {
- "md_kotm", NULL, NULL, NULL, "1993",
- "King of the Monsters (Euro)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_kotmRomInfo, md_kotmRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// King of the Monsters (USA)
-static struct BurnRomInfo md_kotmuRomDesc[] = {
- { "king of the monsters (usa).bin", 0x100000, 0xf390d406, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_kotmu)
-STD_ROM_FN(md_kotmu)
-
-struct BurnDriver BurnDrvmd_kotmu = {
- "md_kotmu", "md_kotm", NULL, NULL, "1993",
- "King of the Monsters (USA)\0", NULL, "Takara", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_kotmuRomInfo, md_kotmuRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// King of the Monsters (Jpn)
-static struct BurnRomInfo md_kotmjRomDesc[] = {
- { "king of the monsters (jpn).bin", 0x100000, 0x3af7e74e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_kotmj)
-STD_ROM_FN(md_kotmj)
-
-struct BurnDriver BurnDrvmd_kotmj = {
- "md_kotmj", "md_kotm", NULL, NULL, "1993",
- "King of the Monsters (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_kotmjRomInfo, md_kotmjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// King of the Monsters 2 (USA)
-static struct BurnRomInfo md_kotm2RomDesc[] = {
- { "king of the monsters 2 (usa).bin", 0x200000, 0xee1638ac, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_kotm2)
-STD_ROM_FN(md_kotm2)
-
-struct BurnDriver BurnDrvmd_kotm2 = {
- "md_kotm2", NULL, NULL, NULL, "1994",
- "King of the Monsters 2 (USA)\0", NULL, "Takara", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_kotm2RomInfo, md_kotm2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// King Salmon - The Big Catch (USA)
-static struct BurnRomInfo md_kingsalRomDesc[] = {
- { "king salmon - the big catch (usa).bin", 0x080000, 0xf516e7d9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_kingsal)
-STD_ROM_FN(md_kingsal)
-
-struct BurnDriver BurnDrvmd_kingsal = {
- "md_kingsal", NULL, NULL, NULL, "1993",
- "King Salmon - The Big Catch (USA)\0", NULL, "Vic Tokai", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_kingsalRomInfo, md_kingsalRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// King Salmon (Jpn)
-static struct BurnRomInfo md_kingsaljRomDesc[] = {
- { "king salmon (jpn).bin", 0x080000, 0x2cfc9f61, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_kingsalj)
-STD_ROM_FN(md_kingsalj)
-
-struct BurnDriver BurnDrvmd_kingsalj = {
- "md_kingsalj", "md_kingsal", NULL, NULL, "1992",
- "King Salmon (Jpn)\0", NULL, "Hot-B", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_kingsaljRomInfo, md_kingsaljRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// King's Bounty - The Conqueror's Quest (Euro, USA)
-static struct BurnRomInfo md_kingsbtyRomDesc[] = {
- { "king's bounty - the conqueror's quest (euro, usa).bin", 0x080000, 0xaa68a92e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_kingsbty)
-STD_ROM_FN(md_kingsbty)
-
-struct BurnDriver BurnDrvmd_kingsbty = {
- "md_kingsbty", NULL, NULL, NULL, "1991",
- "King's Bounty - The Conqueror's Quest (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_kingsbtyRomInfo, md_kingsbtyRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Kishi Densetsu (Jpn)
-static struct BurnRomInfo md_kishidenRomDesc[] = {
- { "kishi densetsu (jpn).bin", 0x180000, 0x22e1f04a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_kishiden)
-STD_ROM_FN(md_kishiden)
-
-struct BurnDriver BurnDrvmd_kishiden = {
- "md_kishiden", NULL, NULL, NULL, "1993",
- "Kishi Densetsu (Jpn)\0", NULL, "Kodansha", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_kishidenRomInfo, md_kishidenRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Kiss Shot (Jpn, SegaNet)
-static struct BurnRomInfo md_kissshotRomDesc[] = {
- { "kiss shot (jpn) (sn).bin", 0x040000, 0xe487088c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_kissshot)
-STD_ROM_FN(md_kissshot)
-
-struct BurnDriver BurnDrvmd_kissshot = {
- "md_kissshot", NULL, NULL, NULL, "1991",
- "Kiss Shot (Jpn, SegaNet)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_kissshotRomInfo, md_kissshotRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Klax (Euro, USA)
-static struct BurnRomInfo md_klaxRomDesc[] = {
- { "klax (euro, usa).bin", 0x040000, 0x248cd09e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_klax)
-STD_ROM_FN(md_klax)
-
-struct BurnDriver BurnDrvmd_klax = {
- "md_klax", NULL, NULL, NULL, "1990",
- "Klax (Euro, USA)\0", NULL, "Tengen", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_klaxRomInfo, md_klaxRomName, NULL, NULL, MegadriveInputInfo, MegadrivePALDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Klax (Jpn)
-static struct BurnRomInfo md_klaxjRomDesc[] = {
- { "klax (jpn).bin", 0x040000, 0x1afcc1da, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_klaxj)
-STD_ROM_FN(md_klaxj)
-
-struct BurnDriver BurnDrvmd_klaxj = {
- "md_klaxj", "md_klax", NULL, NULL, "1990",
- "Klax (Jpn)\0", NULL, "Namcot", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_klaxjRomInfo, md_klaxjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Krusty's Super Fun House (Euro, USA, v1.1)
-static struct BurnRomInfo md_krustyRomDesc[] = {
- { "krusty's super fun house (euro, usa) (v1.1).bin", 0x080000, 0x56976261, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_krusty)
-STD_ROM_FN(md_krusty)
-
-struct BurnDriver BurnDrvmd_krusty = {
- "md_krusty", NULL, NULL, NULL, "1992",
- "Krusty's Super Fun House (Euro, USA, v1.1)\0", NULL, "Flying Edge", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_krustyRomInfo, md_krustyRomName, NULL, NULL, MegadriveInputInfo, MegadrivePALDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Krusty's Super Fun House (Euro, USA)
-static struct BurnRomInfo md_krusty1RomDesc[] = {
- { "krusty's super fun house (euro, usa).bin", 0x080000, 0xf764005e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_krusty1)
-STD_ROM_FN(md_krusty1)
-
-struct BurnDriver BurnDrvmd_krusty1 = {
- "md_krusty1", "md_krusty", NULL, NULL, "1992",
- "Krusty's Super Fun House (Euro, USA)\0", NULL, "Flying Edge", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_krusty1RomInfo, md_krusty1RomName, NULL, NULL, MegadriveInputInfo, MegadrivePALDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Kyuukai Douchuuki (Jpn)
-static struct BurnRomInfo md_kyukaidkRomDesc[] = {
- { "kyuukai douchuuki (jpn).bin", 0x080000, 0xde48dce3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_kyukaidk)
-STD_ROM_FN(md_kyukaidk)
-
-struct BurnDriver BurnDrvmd_kyukaidk = {
- "md_kyukaidk", NULL, NULL, NULL, "1991",
- "Kyuukai Douchuuki (Jpn)\0", NULL, "Namcot", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_kyukaidkRomInfo, md_kyukaidkRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// La Russa Baseball 95 (USA, Oceania)
-static struct BurnRomInfo md_laruss95RomDesc[] = {
- { "la russa baseball 95 (usa, aus).bin", 0x200000, 0x3f848a92, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_laruss95)
-STD_ROM_FN(md_laruss95)
-
-struct BurnDriver BurnDrvmd_laruss95 = {
- "md_laruss95", NULL, NULL, NULL, "1994",
- "La Russa Baseball 95 (USA, Oceania)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_laruss95RomInfo, md_laruss95RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Lakers versus Celtics and the NBA Playoffs (USA)
-static struct BurnRomInfo md_lakersRomDesc[] = {
- { "lakers versus celtics and the nba playoffs (usa).bin", 0x080000, 0x0e33fc75, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_lakers)
-STD_ROM_FN(md_lakers)
-
-struct BurnDriver BurnDrvmd_lakers = {
- "md_lakers", NULL, NULL, NULL, "1991",
- "Lakers versus Celtics and the NBA Playoffs (USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_lakersRomInfo, md_lakersRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Landstalker - The Treasures of King Nole (Euro)
-static struct BurnRomInfo md_landstlkRomDesc[] = {
- { "landstalker - the treasures of king nole (euro).bin", 0x200000, 0xe3c65277, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_landstlk)
-STD_ROM_FN(md_landstlk)
-
-struct BurnDriver BurnDrvmd_landstlk = {
- "md_landstlk", NULL, NULL, NULL, "1993",
- "Landstalker - The Treasures of King Nole (Euro)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM | HARDWARE_SEGA_MEGADRIVE_SRAM_10000, GBF_MISC, 0,
- MegadriveGetZipName, md_landstlkRomInfo, md_landstlkRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Landstalker - Die Schtze von Knig Nolo (Ger)
-static struct BurnRomInfo md_landstlkgRomDesc[] = {
- { "landstalker - die schatze von konig nolo (germany).bin", 0x200000, 0x10fedb8f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_landstlkg)
-STD_ROM_FN(md_landstlkg)
-
-struct BurnDriver BurnDrvmd_landstlkg = {
- "md_landstlkg", "md_landstlk", NULL, NULL, "1993",
- "Landstalker - Die Schatze von Konig Nolo (Ger)\0", NULL, "Sega", "Sega Megadrive",
- L"Landstalker - Die Sch\u00E4tze von K\u00F6nig Nolo (Ger)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM | HARDWARE_SEGA_MEGADRIVE_SRAM_10000, GBF_MISC, 0,
- MegadriveGetZipName, md_landstlkgRomInfo, md_landstlkgRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Landstalker - Koutei no Zaihou (Jpn)
-static struct BurnRomInfo md_landstlkjRomDesc[] = {
- { "landstalker - koutei no zaihou (jpn).bin", 0x200000, 0x60d4cedb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_landstlkj)
-STD_ROM_FN(md_landstlkj)
-
-struct BurnDriver BurnDrvmd_landstlkj = {
- "md_landstlkj", "md_landstlk", NULL, NULL, "1992",
- "Landstalker - Koutei no Zaihou (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM | HARDWARE_SEGA_MEGADRIVE_SRAM_10000, GBF_MISC, 0,
- MegadriveGetZipName, md_landstlkjRomInfo, md_landstlkjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Landstalker - The Treasures of King Nole (USA)
-static struct BurnRomInfo md_landstlkuRomDesc[] = {
- { "landstalker (usa).bin", 0x200000, 0xfbbb5b97, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_landstlku)
-STD_ROM_FN(md_landstlku)
-
-struct BurnDriver BurnDrvmd_landstlku = {
- "md_landstlku", "md_landstlk", NULL, NULL, "1992",
- "Landstalker - The Treasures of King Nole (USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM | HARDWARE_SEGA_MEGADRIVE_SRAM_10000, GBF_MISC, 0,
- MegadriveGetZipName, md_landstlkuRomInfo, md_landstlkuRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Landstalker - Treasure of King Nole (USA, Prototype)
-static struct BurnRomInfo md_landstlkupRomDesc[] = {
- { "landstalker (usa) (beta).bin", 0x200000, 0x70483d03, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_landstlkup)
-STD_ROM_FN(md_landstlkup)
-
-struct BurnDriver BurnDrvmd_landstlkup = {
- "md_landstlkup", "md_landstlk", NULL, NULL, "1992",
- "Landstalker - Treasure of King Nole (USA, Prototype)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM | HARDWARE_SEGA_MEGADRIVE_SRAM_10000, GBF_MISC, 0,
- MegadriveGetZipName, md_landstlkupRomInfo, md_landstlkupRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Langrisser (Jpn)
-static struct BurnRomInfo md_langrissRomDesc[] = {
- { "mpr-13845.bin", 0x080000, 0xb6ea5016, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_langriss)
-STD_ROM_FN(md_langriss)
-
-struct BurnDriver BurnDrvmd_langriss = {
- "md_langriss", "md_warsong", NULL, NULL, "1991",
- "Langrisser (Jpn)\0", NULL, "NCS", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_langrissRomInfo, md_langrissRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Langrisser II (Jpn, v1.2)
-static struct BurnRomInfo md_langris2RomDesc[] = {
- { "langrisser ii (jpn) (v1.2).bin", 0x200000, 0x4967c9f9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_langris2)
-STD_ROM_FN(md_langris2)
-
-struct BurnDriver BurnDrvmd_langris2 = {
- "md_langris2", NULL, NULL, NULL, "1994",
- "Langrisser II (Jpn, v1.2)\0", NULL, "NCS", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_langris2RomInfo, md_langris2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Langrisser II (Jpn, v1.1)
-static struct BurnRomInfo md_langris2aRomDesc[] = {
- { "langrisser ii (jpn) (v1.1).bin", 0x200000, 0x0caa0593, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_langris2a)
-STD_ROM_FN(md_langris2a)
-
-struct BurnDriver BurnDrvmd_langris2a = {
- "md_langris2a", "md_langris2", NULL, NULL, "1994",
- "Langrisser II (Jpn, v1.1)\0", NULL, "NCS", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_langris2aRomInfo, md_langris2aRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Langrisser II (Jpn)
-static struct BurnRomInfo md_langris2bRomDesc[] = {
- { "langrisser ii (jpn).bin", 0x200000, 0x7f891dfc, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_langris2b)
-STD_ROM_FN(md_langris2b)
-
-struct BurnDriver BurnDrvmd_langris2b = {
- "md_langris2b", "md_langris2", NULL, NULL, "1994",
- "Langrisser II (Jpn)\0", NULL, "NCS", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_langris2bRomInfo, md_langris2bRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Last Action Hero (Euro, USA)
-static struct BurnRomInfo md_lastactRomDesc[] = {
- { "last action hero (euro, usa).bin", 0x100000, 0x15357dde, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_lastact)
-STD_ROM_FN(md_lastact)
-
-struct BurnDriver BurnDrvmd_lastact = {
- "md_lastact", NULL, NULL, NULL, "1993",
- "Last Action Hero (Euro, USA)\0", NULL, "Sony Imagesoft", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_lastactRomInfo, md_lastactRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Last Battle (Euro, USA, Kor)
-static struct BurnRomInfo md_lastbtleRomDesc[] = {
- { "mpr-12578.bin", 0x080000, 0xbbfaad77, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_lastbtle)
-STD_ROM_FN(md_lastbtle)
-
-struct BurnDriver BurnDrvmd_lastbtle = {
- "md_lastbtle", NULL, NULL, NULL, "1989",
- "Last Battle (Euro, USA, Kor)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_lastbtleRomInfo, md_lastbtleRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Hokuto no Ken - Shin Seikimatsu Kyuuseishu Densetsu (Jpn)
-static struct BurnRomInfo md_hokutoRomDesc[] = {
- { "hokuto no ken - shin seikimatsu kyuuseishu densetsu (jpn).bin", 0x080000, 0x1b6585e7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_hokuto)
-STD_ROM_FN(md_hokuto)
-
-struct BurnDriver BurnDrvmd_hokuto = {
- "md_hokuto", "md_lastbtle", NULL, NULL, "1989",
- "Hokuto no Ken - Shin Seikimatsu Kyuuseishu Densetsu (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_hokutoRomInfo, md_hokutoRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Lawnmower Man (Euro, USA)
-static struct BurnRomInfo md_lawnmowrRomDesc[] = {
- { "lawnmower man, the (euro, usa).bin", 0x100000, 0xa7cacd59, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_lawnmowr)
-STD_ROM_FN(md_lawnmowr)
-
-struct BurnDriver BurnDrvmd_lawnmowr = {
- "md_lawnmowr", NULL, NULL, NULL, "1994",
- "The Lawnmower Man (Euro, USA)\0", NULL, "Time Warner Interactive", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_lawnmowrRomInfo, md_lawnmowrRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Galahad (Euro, USA)
-static struct BurnRomInfo md_galahadRomDesc[] = {
- { "gal01.bin", 0x100000, 0x679557bc, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_galahad)
-STD_ROM_FN(md_galahad)
-
-struct BurnDriver BurnDrvmd_galahad = {
- "md_galahad", NULL, NULL, NULL, "1992",
- "Galahad (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_galahadRomInfo, md_galahadRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Lemmings (Euro)
-static struct BurnRomInfo md_lemmingsRomDesc[] = {
- { "mpr-15233.bin", 0x100000, 0x6a1a4579, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_lemmings)
-STD_ROM_FN(md_lemmings)
-
-struct BurnDriver BurnDrvmd_lemmings = {
- "md_lemmings", NULL, NULL, NULL, "1992",
- "Lemmings (Euro)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_lemmingsRomInfo, md_lemmingsRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Lemmings (Jpn, USA, Kor, v1.1)
-static struct BurnRomInfo md_lemmingsjuRomDesc[] = {
- { "sunsoft_lem8_j.bin", 0x100000, 0x68c70362, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_lemmingsju)
-STD_ROM_FN(md_lemmingsju)
-
-struct BurnDriver BurnDrvmd_lemmingsju = {
- "md_lemmingsju", "md_lemmings", NULL, NULL, "1992",
- "Lemmings (Jpn, USA, Kor, v1.1)\0", NULL, "Sunsoft", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_lemmingsjuRomInfo, md_lemmingsjuRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Lemmings (Jpn, USA)
-static struct BurnRomInfo md_lemmingsju1RomDesc[] = {
- { "lemmings (usa, jpn).bin", 0x100000, 0xf015c2ad, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_lemmingsju1)
-STD_ROM_FN(md_lemmingsju1)
-
-struct BurnDriver BurnDrvmd_lemmingsju1 = {
- "md_lemmingsju1", "md_lemmings", NULL, NULL, "1992",
- "Lemmings (Jpn, USA)\0", NULL, "Sunsoft", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_lemmingsju1RomInfo, md_lemmingsju1RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Lemmings 2 - The Tribes (Euro)
-static struct BurnRomInfo md_lemming2RomDesc[] = {
- { "lemmings 2 - the tribes (euro).bin", 0x200000, 0x741eb624, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_lemming2)
-STD_ROM_FN(md_lemming2)
-
-struct BurnDriver BurnDrvmd_lemming2 = {
- "md_lemming2", NULL, NULL, NULL, "1994",
- "Lemmings 2 - The Tribes (Euro)\0", NULL, "Psygnosis", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_lemming2RomInfo, md_lemming2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Lemmings 2 - The Tribes (USA)
-static struct BurnRomInfo md_lemming2uRomDesc[] = {
- { "lemmings 2 - the tribes (usa).bin", 0x200000, 0xde59a3a3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_lemming2u)
-STD_ROM_FN(md_lemming2u)
-
-struct BurnDriver BurnDrvmd_lemming2u = {
- "md_lemming2u", "md_lemming2", NULL, NULL, "1994",
- "Lemmings 2 - The Tribes (USA)\0", NULL, "Psygnosis", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_lemming2uRomInfo, md_lemming2uRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Lethal Enforcers (Euro)
-static struct BurnRomInfo md_lethalenRomDesc[] = {
- { "lethal enforcers (euro).bin", 0x200000, 0xca2bf99d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_lethalen)
-STD_ROM_FN(md_lethalen)
-
-struct BurnDriver BurnDrvmd_lethalen = {
- "md_lethalen", NULL, NULL, NULL, "1993",
- "Lethal Enforcers (Euro)\0", NULL, "Konami", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_lethalenRomInfo, md_lethalenRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Lethal Enforcers (Jpn)
-static struct BurnRomInfo md_lethalenjRomDesc[] = {
- { "fz008.bin", 0x200000, 0xf25f1e49, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_lethalenj)
-STD_ROM_FN(md_lethalenj)
-
-struct BurnDriver BurnDrvmd_lethalenj = {
- "md_lethalenj", "md_lethalen", NULL, NULL, "1993",
- "Lethal Enforcers (Jpn)\0", NULL, "Konami", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_lethalenjRomInfo, md_lethalenjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Lethal Enforcers (USA)
-static struct BurnRomInfo md_lethalenuRomDesc[] = {
- { "lethal enforcers (usa).bin", 0x200000, 0x51d9a84a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_lethalenu)
-STD_ROM_FN(md_lethalenu)
-
-struct BurnDriver BurnDrvmd_lethalenu = {
- "md_lethalenu", "md_lethalen", NULL, NULL, "1993",
- "Lethal Enforcers (USA)\0", NULL, "Konami", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_lethalenuRomInfo, md_lethalenuRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Lethal Enforcers II - Gun Fighters (Euro)
-static struct BurnRomInfo md_le2RomDesc[] = {
- { "lethal enforcers ii - gun fighters (euro).bin", 0x200000, 0x4bfe045c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_le2)
-STD_ROM_FN(md_le2)
-
-struct BurnDriver BurnDrvmd_le2 = {
- "md_le2", NULL, NULL, NULL, "1994",
- "Lethal Enforcers II - Gun Fighters (Euro)\0", NULL, "Konami", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_le2RomInfo, md_le2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Lethal Enforcers II - Gun Fighters (USA)
-static struct BurnRomInfo md_le2uRomDesc[] = {
- { "lethal enforcers ii - gun fighters (usa).bin", 0x200000, 0xe5fdd28b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_le2u)
-STD_ROM_FN(md_le2u)
-
-struct BurnDriver BurnDrvmd_le2u = {
- "md_le2u", "md_le2", NULL, NULL, "1994",
- "Lethal Enforcers II - Gun Fighters (USA)\0", NULL, "Konami", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_le2uRomInfo, md_le2uRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// LHX Attack Chopper (Euro, USA)
-static struct BurnRomInfo md_lhxRomDesc[] = {
- { "lhx04.bin", 0x100000, 0x70c3428d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_lhx)
-STD_ROM_FN(md_lhx)
-
-struct BurnDriver BurnDrvmd_lhx = {
- "md_lhx", NULL, NULL, NULL, "1992",
- "LHX Attack Chopper (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_lhxRomInfo, md_lhxRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// LHX Attack Chopper (Jpn)
-static struct BurnRomInfo md_lhxjRomDesc[] = {
- { "lhx attack chopper (jpn).bin", 0x100000, 0x224ff103, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_lhxj)
-STD_ROM_FN(md_lhxj)
-
-struct BurnDriver BurnDrvmd_lhxj = {
- "md_lhxj", "md_lhx", NULL, NULL, "1993",
- "LHX Attack Chopper (Jpn)\0", NULL, "Electronic Arts Victor", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_lhxjRomInfo, md_lhxjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Liberty or Death (USA)
-static struct BurnRomInfo md_libertyRomDesc[] = {
- { "liberty or death (usa).bin", 0x200000, 0x2adb0364, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_liberty)
-STD_ROM_FN(md_liberty)
-
-struct BurnDriver BurnDrvmd_liberty = {
- "md_liberty", NULL, NULL, NULL, "1994",
- "Liberty or Death (USA)\0", NULL, "Koei", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_libertyRomInfo, md_libertyRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Light Crusader (Jpn)
-static struct BurnRomInfo md_lightcjRomDesc[] = {
- { "light crusader (jpn).bin", 0x200000, 0x237076a4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_lightcj)
-STD_ROM_FN(md_lightcj)
-
-struct BurnDriver BurnDrvmd_lightcj = {
- "md_lightcj", "md_lightc", NULL, NULL, "1995",
- "Light Crusader (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_lightcjRomInfo, md_lightcjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Light Crusader (Kor)
-static struct BurnRomInfo md_lightckRomDesc[] = {
- { "light crusader (kor).bin", 0x200000, 0x6d0cbcb2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_lightck)
-STD_ROM_FN(md_lightck)
-
-struct BurnDriver BurnDrvmd_lightck = {
- "md_lightck", "md_lightc", NULL, NULL, "1995",
- "Light Crusader (Kor)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_lightckRomInfo, md_lightckRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Light Crusader (Prototype, 19950608)
-static struct BurnRomInfo md_lightcpRomDesc[] = {
- { "light crusader (prototype - jun 08, 1995).bin", 0x200000, 0xe350ccfa, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_lightcp)
-STD_ROM_FN(md_lightcp)
-
-struct BurnDriver BurnDrvmd_lightcp = {
- "md_lightcp", "md_lightc", NULL, NULL, "1995",
- "Light Crusader (Prototype, 19950608)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_lightcpRomInfo, md_lightcpRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Light Crusader (USA)
-static struct BurnRomInfo md_lightcuRomDesc[] = {
- { "light crusader (usa).bin", 0x200000, 0xbeb715dc, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_lightcu)
-STD_ROM_FN(md_lightcu)
-
-struct BurnDriver BurnDrvmd_lightcu = {
- "md_lightcu", "md_lightc", NULL, NULL, "1995",
- "Light Crusader (USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_lightcuRomInfo, md_lightcuRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Lion King (World)
-static struct BurnRomInfo md_lionkingRomDesc[] = {
- { "mpr-17270.bin", 0x300000, 0x5696a5bc, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_lionking)
-STD_ROM_FN(md_lionking)
-
-struct BurnDriver BurnDrvmd_lionking = {
- "md_lionking", NULL, NULL, NULL, "1994",
- "The Lion King (World)\0", NULL, "Virgin Interactive", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_lionkingRomInfo, md_lionkingRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Lobo (USA, Prototype)
-static struct BurnRomInfo md_loboRomDesc[] = {
- { "lobo (usa) (prototype).bin", 0x300000, 0xb5e09338, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_lobo)
-STD_ROM_FN(md_lobo)
-
-struct BurnDriver BurnDrvmd_lobo = {
- "md_lobo", NULL, NULL, NULL, "1996",
- "Lobo (USA, Prototype)\0", NULL, "Ocean", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_loboRomInfo, md_loboRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Long (Chi)
-static struct BurnRomInfo md_longRomDesc[] = {
- { "long (chi) (unl).bin", 0x040000, 0x1b86e623, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_long)
-STD_ROM_FN(md_long)
-
-struct BurnDriver BurnDrvmd_long = {
- "md_long", NULL, NULL, NULL, "199?",
- "Long (Chi)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_longRomInfo, md_longRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Lord Monarch - Tokoton Sentou Densetsu (Jpn)
-static struct BurnRomInfo md_lordmonRomDesc[] = {
- { "lord monarch - tokoton sentou densetsu (jpn).bin", 0x200000, 0x238bf5db, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_lordmon)
-STD_ROM_FN(md_lordmon)
-
-struct BurnDriver BurnDrvmd_lordmon = {
- "md_lordmon", NULL, NULL, NULL, "1994",
- "Lord Monarch - Tokoton Sentou Densetsu (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_lordmonRomInfo, md_lordmonRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Lost Vikings (Euro)
-static struct BurnRomInfo md_lostvikRomDesc[] = {
- { "lost vikings, the (euro).bin", 0x100000, 0x1f14efc6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_lostvik)
-STD_ROM_FN(md_lostvik)
-
-struct BurnDriver BurnDrvmd_lostvik = {
- "md_lostvik", NULL, NULL, NULL, "1993",
- "The Lost Vikings (Euro)\0", NULL, "Interplay", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_lostvikRomInfo, md_lostvikRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Lost Vikings (Euro, Prototype)
-static struct BurnRomInfo md_lostvikpRomDesc[] = {
- { "lost vikings, the (euro) (beta).bin", 0x100000, 0x17bed25f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_lostvikp)
-STD_ROM_FN(md_lostvikp)
-
-struct BurnDriver BurnDrvmd_lostvikp = {
- "md_lostvikp", "md_lostvik", NULL, NULL, "1993",
- "The Lost Vikings (Euro, Prototype)\0", NULL, "Interplay", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_lostvikpRomInfo, md_lostvikpRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Lost Vikings (USA)
-static struct BurnRomInfo md_lostvikuRomDesc[] = {
- { "lost vikings, the (usa).bin", 0x100000, 0x7ba49edb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_lostviku)
-STD_ROM_FN(md_lostviku)
-
-struct BurnDriver BurnDrvmd_lostviku = {
- "md_lostviku", "md_lostvik", NULL, NULL, "1992",
- "The Lost Vikings (USA)\0", NULL, "Interplay", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_lostvikuRomInfo, md_lostvikuRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Lost World - Jurassic Park (Euro, USA)
-static struct BurnRomInfo md_lostwrldRomDesc[] = {
- { "lost world, the - jurassic park (euro, usa).bin", 0x400000, 0x140a284c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_lostwrld)
-STD_ROM_FN(md_lostwrld)
-
-struct BurnDriver BurnDrvmd_lostwrld = {
- "md_lostwrld", NULL, NULL, NULL, "1997",
- "The Lost World - Jurassic Park (Euro, USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_lostwrldRomInfo, md_lostwrldRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Lotus II (Euro, USA)
-static struct BurnRomInfo md_lotus2RomDesc[] = {
- { "lot205.bin", 0x100000, 0x1d8ee010, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_lotus2)
-STD_ROM_FN(md_lotus2)
-
-struct BurnDriver BurnDrvmd_lotus2 = {
- "md_lotus2", NULL, NULL, NULL, "1993",
- "Lotus II (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_lotus2RomInfo, md_lotus2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Lotus II (USA, Prototype)
-static struct BurnRomInfo md_lotus2pRomDesc[] = {
- { "lotus ii (usa) (beta).bin", 0x100000, 0x2997b7d4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_lotus2p)
-STD_ROM_FN(md_lotus2p)
-
-struct BurnDriver BurnDrvmd_lotus2p = {
- "md_lotus2p", "md_lotus2", NULL, NULL, "1993",
- "Lotus II (USA, Prototype)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_lotus2pRomInfo, md_lotus2pRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// M-1 Abrams Battle Tank (Euro, USA)
-static struct BurnRomInfo md_m1abramsRomDesc[] = {
- { "m-1 abrams battle tank (euro, usa).bin", 0x080000, 0x1e2f74cf, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_m1abrams)
-STD_ROM_FN(md_m1abrams)
-
-struct BurnDriver BurnDrvmd_m1abrams = {
- "md_m1abrams", NULL, NULL, NULL, "1991",
- "M-1 Abrams Battle Tank (Euro, USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_m1abramsRomInfo, md_m1abramsRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Ma Qiao E Mo Ta - Devilish Mahjong Tower (Chi)
-static struct BurnRomInfo md_maqiaoRomDesc[] = {
- { "ma qiao e mo ta - devilish mahjong tower (chi) (unl).bin", 0x100000, 0x12e35994, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_maqiao)
-STD_ROM_FN(md_maqiao)
-
-struct BurnDriver BurnDrvmd_maqiao = {
- "md_maqiao", NULL, NULL, NULL, "1994",
- "Ma Qiao E Mo Ta - Devilish Mahjong Tower (Chi)\0", NULL, "C&E", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_maqiaoRomInfo, md_maqiaoRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Madden NFL '94 (Euro, USA)
-static struct BurnRomInfo md_madden94RomDesc[] = {
- { "madden nfl '94 (euro, usa).bin", 0x200000, 0xd14b811b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_madden94)
-STD_ROM_FN(md_madden94)
-
-struct BurnDriver BurnDrvmd_madden94 = {
- "md_madden94", NULL, NULL, NULL, "1994",
- "Madden NFL '94 (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_madden94RomInfo, md_madden94RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Madden NFL 95 (Euro, USA)
-static struct BurnRomInfo md_madden95RomDesc[] = {
- { "madden nfl 95 (euro, usa).bin", 0x200000, 0xdb0be0c2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_madden95)
-STD_ROM_FN(md_madden95)
-
-struct BurnDriver BurnDrvmd_madden95 = {
- "md_madden95", NULL, NULL, NULL, "1994",
- "Madden NFL 95 (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_madden95RomInfo, md_madden95RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Madden NFL 96 (Euro, USA)
-static struct BurnRomInfo md_madden96RomDesc[] = {
- { "madden nfl 96 (euro, usa).bin", 0x200000, 0xf126918b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_madden96)
-STD_ROM_FN(md_madden96)
-
-struct BurnDriver BurnDrvmd_madden96 = {
- "md_madden96", NULL, NULL, NULL, "1995",
- "Madden NFL 96 (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_madden96RomInfo, md_madden96RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Madden NFL 97 (Euro, USA)
-static struct BurnRomInfo md_madden97RomDesc[] = {
- { "madden nfl 97 (euro, usa).bin", 0x200000, 0xc4b4e112, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_madden97)
-STD_ROM_FN(md_madden97)
-
-struct BurnDriver BurnDrvmd_madden97 = {
- "md_madden97", NULL, NULL, NULL, "1997",
- "Madden NFL 97 (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_madden97RomInfo, md_madden97RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Madden NFL 98 (USA)
-static struct BurnRomInfo md_madden98RomDesc[] = {
- { "madden nfl 98 (usa).bin", 0x200000, 0xe051ea62, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_madden98)
-STD_ROM_FN(md_madden98)
-
-struct BurnDriver BurnDrvmd_madden98 = {
- "md_madden98", NULL, NULL, NULL, "1997",
- "Madden NFL 98 (USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_madden98RomInfo, md_madden98RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Madou Monogatari I (Jpn)
-static struct BurnRomInfo md_madoumonRomDesc[] = {
- { "madou monogatari i (jpn).bin", 0x200000, 0xdd82c401, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_madoumon)
-STD_ROM_FN(md_madoumon)
-
-struct BurnDriver BurnDrvmd_madoumon = {
- "md_madoumon", NULL, NULL, NULL, "1996",
- "Madou Monogatari I (Jpn)\0", NULL, "Compile", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_madoumonRomInfo, md_madoumonRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Scholastic's The Magic School Bus (USA)
-static struct BurnRomInfo md_msbRomDesc[] = {
- { "magic school bus, the (usa).bin", 0x100000, 0x1a5d4412, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_msb)
-STD_ROM_FN(md_msb)
-
-struct BurnDriver BurnDrvmd_msb = {
- "md_msb", NULL, NULL, NULL, "1995",
- "Scholastic's The Magic School Bus (USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_msbRomInfo, md_msbRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Scholastic's The Magic School Bus (Prototype, 19950411)
-static struct BurnRomInfo md_msbp05RomDesc[] = {
- { "magic school bus, the (prototype - apr 11, 1995).bin", 0x0fdfbc, 0x883023bc, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_msbp05)
-STD_ROM_FN(md_msbp05)
-
-struct BurnDriver BurnDrvmd_msbp05 = {
- "md_msbp05", "md_msb", NULL, NULL, "1995",
- "Scholastic's The Magic School Bus (Prototype, 19950411)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_msbp05RomInfo, md_msbp05RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Scholastic's The Magic School Bus (Prototype, 19950421)
-static struct BurnRomInfo md_msbp04RomDesc[] = {
- { "magic school bus, the (prototype - apr 21, 1995).bin", 0x0fcfdc, 0x7844b7ad, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_msbp04)
-STD_ROM_FN(md_msbp04)
-
-struct BurnDriver BurnDrvmd_msbp04 = {
- "md_msbp04", "md_msb", NULL, NULL, "1995",
- "Scholastic's The Magic School Bus (Prototype, 19950421)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_msbp04RomInfo, md_msbp04RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Scholastic's The Magic School Bus (Prototype, 19950425)
-static struct BurnRomInfo md_msbp03RomDesc[] = {
- { "magic school bus, the (prototype - apr 25, 1995).bin", 0x0fd5e0, 0xb6bd2d87, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_msbp03)
-STD_ROM_FN(md_msbp03)
-
-struct BurnDriver BurnDrvmd_msbp03 = {
- "md_msbp03", "md_msb", NULL, NULL, "1995",
- "Scholastic's The Magic School Bus (Prototype, 19950425)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_msbp03RomInfo, md_msbp03RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Scholastic's The Magic School Bus (Prototype, 19950428)
-static struct BurnRomInfo md_msbp02RomDesc[] = {
- { "magic school bus, the (prototype - apr 28, 1995).bin", 0x0fe89c, 0x9b6bae87, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_msbp02)
-STD_ROM_FN(md_msbp02)
-
-struct BurnDriver BurnDrvmd_msbp02 = {
- "md_msbp02", "md_msb", NULL, NULL, "1995",
- "Scholastic's The Magic School Bus (Prototype, 19950428)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_msbp02RomInfo, md_msbp02RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Magic School Bus (Prototype, 19950202)
-static struct BurnRomInfo md_msbp11RomDesc[] = {
- { "magic school bus, the (prototype - feb 02, 1995).bin", 0x100000, 0x7805b5c9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_msbp11)
-STD_ROM_FN(md_msbp11)
-
-struct BurnDriver BurnDrvmd_msbp11 = {
- "md_msbp11", "md_msb", NULL, NULL, "1995",
- "The Magic School Bus (Prototype, 19950202)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_msbp11RomInfo, md_msbp11RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Magic School Bus (Prototype, 19950217)
-static struct BurnRomInfo md_msbp10RomDesc[] = {
- { "magic school bus, the (prototype - feb 17, 1995).bin", 0x0df6bc, 0x2b7a88c0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_msbp10)
-STD_ROM_FN(md_msbp10)
-
-struct BurnDriver BurnDrvmd_msbp10 = {
- "md_msbp10", "md_msb", NULL, NULL, "1995",
- "The Magic School Bus (Prototype, 19950217)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_msbp10RomInfo, md_msbp10RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Magic School Bus (Prototype, 19950112)
-static struct BurnRomInfo md_msbp12RomDesc[] = {
- { "magic school bus, the (prototype - jan 12, 1995).bin", 0x0eb2e4, 0x946346f9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_msbp12)
-STD_ROM_FN(md_msbp12)
-
-struct BurnDriver BurnDrvmd_msbp12 = {
- "md_msbp12", "md_msb", NULL, NULL, "1995",
- "The Magic School Bus (Prototype, 19950112)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_msbp12RomInfo, md_msbp12RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Magic School Bus (Prototype, 19950307)
-static struct BurnRomInfo md_msbp09RomDesc[] = {
- { "magic school bus, the (prototype - mar 07, 1995).bin", 0x0e9aa8, 0x26c71eb8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_msbp09)
-STD_ROM_FN(md_msbp09)
-
-struct BurnDriver BurnDrvmd_msbp09 = {
- "md_msbp09", "md_msb", NULL, NULL, "1995",
- "The Magic School Bus (Prototype, 19950307)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_msbp09RomInfo, md_msbp09RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Magic School Bus (Prototype, 19950314)
-static struct BurnRomInfo md_msbp08RomDesc[] = {
- { "magic school bus, the (prototype - mar 14, 1995).bin", 0x0f1c30, 0x37a6a1af, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_msbp08)
-STD_ROM_FN(md_msbp08)
-
-struct BurnDriver BurnDrvmd_msbp08 = {
- "md_msbp08", "md_msb", NULL, NULL, "1995",
- "The Magic School Bus (Prototype, 19950314)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_msbp08RomInfo, md_msbp08RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Magic School Bus (Prototype, 19950327)
-static struct BurnRomInfo md_msbp07RomDesc[] = {
- { "magic school bus, the (prototype - mar 27, 1995).bin", 0x0f52e8, 0xb065da40, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_msbp07)
-STD_ROM_FN(md_msbp07)
-
-struct BurnDriver BurnDrvmd_msbp07 = {
- "md_msbp07", "md_msb", NULL, NULL, "1995",
- "The Magic School Bus (Prototype, 19950327)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_msbp07RomInfo, md_msbp07RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Scholastic's The Magic School Bus (Prototype, 19950331)
-static struct BurnRomInfo md_msbp06RomDesc[] = {
- { "magic school bus, the (prototype - mar 31, 1995).bin", 0x0f93c0, 0xcd788def, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_msbp06)
-STD_ROM_FN(md_msbp06)
-
-struct BurnDriver BurnDrvmd_msbp06 = {
- "md_msbp06", "md_msb", NULL, NULL, "1995",
- "Scholastic's The Magic School Bus (Prototype, 19950331)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_msbp06RomInfo, md_msbp06RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Scholastic's The Magic School Bus (Prototype, 19950505)
-static struct BurnRomInfo md_msbp01RomDesc[] = {
- { "magic school bus, the (prototype - may 05, 1995).bin", 0x0fea00, 0xa2315f1c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_msbp01)
-STD_ROM_FN(md_msbp01)
-
-struct BurnDriver BurnDrvmd_msbp01 = {
- "md_msbp01", "md_msb", NULL, NULL, "1995",
- "Scholastic's The Magic School Bus (Prototype, 19950505)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_msbp01RomInfo, md_msbp01RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Magical Hat no Buttobi Turbo! Daibouken (Jpn)
-static struct BurnRomInfo md_magichatRomDesc[] = {
- { "magical hat no buttobi turbo! daibouken (jpn).bin", 0x080000, 0xe43e853d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_magichat)
-STD_ROM_FN(md_magichat)
-
-struct BurnDriver BurnDrvmd_magichat = {
- "md_magichat", NULL, NULL, NULL, "1990",
- "Magical Hat no Buttobi Turbo! Daibouken (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_magichatRomInfo, md_magichatRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Magical Taruruuto-kun (Jpn)
-static struct BurnRomInfo md_mtaruruRomDesc[] = {
- { "magical taruruuto-kun (jpn).bin", 0x080000, 0xf11060a5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_mtaruru)
-STD_ROM_FN(md_mtaruru)
-
-struct BurnDriver BurnDrvmd_mtaruru = {
- "md_mtaruru", NULL, NULL, NULL, "1992",
- "Magical Taruruuto-kun (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_mtaruruRomInfo, md_mtaruruRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Mahjong Cop Ryuu - Shiro Ookami no Yabou (Jpn)
-static struct BurnRomInfo md_mahjongcRomDesc[] = {
- { "mahjong cop ryuu - shiro ookami no yabou (jpn).bin", 0x040000, 0x1ccbc782, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_mahjongc)
-STD_ROM_FN(md_mahjongc)
-
-struct BurnDriver BurnDrvmd_mahjongc = {
- "md_mahjongc", NULL, NULL, NULL, "1989",
- "Mahjong Cop Ryuu - Shiro Ookami no Yabou (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_mahjongcRomInfo, md_mahjongcRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Mamono Hunter Youko - Dai 7 no Keishou (Jpn)
-static struct BurnRomInfo md_mamonoRomDesc[] = {
- { "mamono hunter youko - dai 7 no keishou (jpn).bin", 0x080000, 0x10bb359b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_mamono)
-STD_ROM_FN(md_mamono)
-
-struct BurnDriver BurnDrvmd_mamono = {
- "md_mamono", NULL, NULL, NULL, "1991",
- "Mamono Hunter Youko - Dai 7 no Keishou (Jpn)\0", NULL, "NCS", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_mamonoRomInfo, md_mamonoRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// S.S. Lucifer - Man Overboard! (Euro)
-static struct BurnRomInfo md_manoverRomDesc[] = {
- { "mdss12c4.bin", 0x100000, 0xcae0e3a6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_manover)
-STD_ROM_FN(md_manover)
-
-struct BurnDriver BurnDrvmd_manover = {
- "md_manover", NULL, NULL, NULL, "1994",
- "S.S. Lucifer - Man Overboard! (Euro)\0", NULL, "Codemasters", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_manoverRomInfo, md_manoverRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Newman Haas IndyCar Featuring Nigel Mansell ~ Nigel Mansell Indy Car (World)
-static struct BurnRomInfo md_newmanhRomDesc[] = {
- { "newman haas indy car featuring nigel mansell -- nigel mansell indy car (world).bin", 0x200000, 0x1233a229, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_newmanh)
-STD_ROM_FN(md_newmanh)
-
-struct BurnDriver BurnDrvmd_newmanh = {
- "md_newmanh", NULL, NULL, NULL, "1994",
- "Newman Haas IndyCar Featuring Nigel Mansell ~ Nigel Mansell Indy Car (World)\0", NULL, "Acclaim Entertainment", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_newmanhRomInfo, md_newmanhRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Marble Madness (Euro, USA)
-static struct BurnRomInfo md_marbleRomDesc[] = {
- { "mar01.bin", 0x080000, 0x79eba28a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_marble)
-STD_ROM_FN(md_marble)
-
-struct BurnDriver BurnDrvmd_marble = {
- "md_marble", NULL, NULL, NULL, "1993",
- "Marble Madness (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_marbleRomInfo, md_marbleRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Mario Andretti Racing (Euro, USA)
-static struct BurnRomInfo md_andrettiRomDesc[] = {
- { "mario andretti racing (euro, usa).bin", 0x200000, 0x7f1dc0aa, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_andretti)
-STD_ROM_FN(md_andretti)
-
-struct BurnDriver BurnDrvmd_andretti = {
- "md_andretti", NULL, NULL, NULL, "1994",
- "Mario Andretti Racing (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_andrettiRomInfo, md_andrettiRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Mario Lemieux Hockey (Euro, USA)
-static struct BurnRomInfo md_mariolhRomDesc[] = {
- { "mpr-14376.bin", 0x080000, 0xf664eb6c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_mariolh)
-STD_ROM_FN(md_mariolh)
-
-struct BurnDriver BurnDrvmd_mariolh = {
- "md_mariolh", NULL, NULL, NULL, "1991",
- "Mario Lemieux Hockey (Euro, USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_mariolhRomInfo, md_mariolhRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Marko's Magic Football (Euro)
-static struct BurnRomInfo md_markoRomDesc[] = {
- { "mpr-16825.bin", 0x200000, 0x2307b905, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_marko)
-STD_ROM_FN(md_marko)
-
-struct BurnDriver BurnDrvmd_marko = {
- "md_marko", NULL, NULL, NULL, "1994",
- "Marko's Magic Football (Euro)\0", NULL, "Domark", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_markoRomInfo, md_markoRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Marko's Magic Football (Euro, Prototype)
-static struct BurnRomInfo md_markopRomDesc[] = {
- { "marko's magic football (euro) (beta).bin", 0x200000, 0x0273e564, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_markop)
-STD_ROM_FN(md_markop)
-
-struct BurnDriver BurnDrvmd_markop = {
- "md_markop", "md_marko", NULL, NULL, "1994",
- "Marko's Magic Football (Euro, Prototype)\0", NULL, "Domark", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_markopRomInfo, md_markopRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Marko (USA)
-static struct BurnRomInfo md_markouRomDesc[] = {
- { "marko's magic football (usa).bin", 0x200000, 0x2b8c8cce, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_markou)
-STD_ROM_FN(md_markou)
-
-struct BurnDriver BurnDrvmd_markou = {
- "md_markou", "md_marko", NULL, NULL, "1994",
- "Marko (USA)\0", NULL, "Domark", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_markouRomInfo, md_markouRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Marsupilami (Euro)
-static struct BurnRomInfo md_marsupRomDesc[] = {
- { "marsupilami (euro).bin", 0x200000, 0xe09bbd70, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_marsup)
-STD_ROM_FN(md_marsup)
-
-struct BurnDriver BurnDrvmd_marsup = {
- "md_marsup", NULL, NULL, NULL, "1995",
- "Marsupilami (Euro)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_marsupRomInfo, md_marsupRomName, NULL, NULL, MegadriveInputInfo, MegadrivePALDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Marsupilami (USA)
-static struct BurnRomInfo md_marsupuRomDesc[] = {
- { "marsupilami (usa).bin", 0x200000, 0xc76558df, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_marsupu)
-STD_ROM_FN(md_marsupu)
-
-struct BurnDriver BurnDrvmd_marsupu = {
- "md_marsupu", "md_marsup", NULL, NULL, "1995",
- "Marsupilami (USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_marsupuRomInfo, md_marsupuRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Master of Monsters (USA)
-static struct BurnRomInfo md_mastermRomDesc[] = {
- { "master of monsters (usa).bin", 0x080000, 0x91354820, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_masterm)
-STD_ROM_FN(md_masterm)
-
-struct BurnDriver BurnDrvmd_masterm = {
- "md_masterm", NULL, NULL, NULL, "1991",
- "Master of Monsters (USA)\0", NULL, "Renovation", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_mastermRomInfo, md_mastermRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Master of Monsters (Jpn)
-static struct BurnRomInfo md_mastermjRomDesc[] = {
- { "mpr-14120.bin", 0x080000, 0xd51ee8c2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_mastermj)
-STD_ROM_FN(md_mastermj)
-
-struct BurnDriver BurnDrvmd_mastermj = {
- "md_mastermj", "md_masterm", NULL, NULL, "1991",
- "Master of Monsters (Jpn)\0", NULL, "Toshiba EMI", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_mastermjRomInfo, md_mastermjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Master of Weapon (Jpn)
-static struct BurnRomInfo md_mweaponRomDesc[] = {
- { "master of weapon (jpn).bin", 0x080000, 0x12ad6178, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_mweapon)
-STD_ROM_FN(md_mweapon)
-
-struct BurnDriver BurnDrvmd_mweapon = {
- "md_mweapon", NULL, NULL, NULL, "1991",
- "Master of Weapon (Jpn)\0", NULL, "Taito", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_mweaponRomInfo, md_mweaponRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Maten no Soumetsu (Jpn)
-static struct BurnRomInfo md_matenRomDesc[] = {
- { "maten no soumetsu (jpn).bin", 0x100000, 0xb804a105, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_maten)
-STD_ROM_FN(md_maten)
-
-struct BurnDriver BurnDrvmd_maten = {
- "md_maten", NULL, NULL, NULL, "1993",
- "Maten no Soumetsu (Jpn)\0", NULL, "Kodansha", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_matenRomInfo, md_matenRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Math Blaster - Episode 1 (USA)
-static struct BurnRomInfo md_mathblstRomDesc[] = {
- { "math blaster - episode 1 (usa).bin", 0x100000, 0xd055a462, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_mathblst)
-STD_ROM_FN(md_mathblst)
-
-struct BurnDriver BurnDrvmd_mathblst = {
- "md_mathblst", NULL, NULL, NULL, "1994",
- "Math Blaster - Episode 1 (USA)\0", NULL, "Davidson & Associates", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_mathblstRomInfo, md_mathblstRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Mazin Wars (Euro)
-static struct BurnRomInfo md_mazinwarRomDesc[] = {
- { "mazin wars (euro).bin", 0x100000, 0x4b07a105, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_mazinwar)
-STD_ROM_FN(md_mazinwar)
-
-struct BurnDriver BurnDrvmd_mazinwar = {
- "md_mazinwar", NULL, NULL, NULL, "1993",
- "Mazin Wars (Euro)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_mazinwarRomInfo, md_mazinwarRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Mazin Saga (Asia)
-static struct BurnRomInfo md_mazinsagaRomDesc[] = {
- { "mazin saga (asia).bin", 0x100000, 0x36459b59, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_mazinsaga)
-STD_ROM_FN(md_mazinsaga)
-
-struct BurnDriver BurnDrvmd_mazinsaga = {
- "md_mazinsaga", "md_mazinwar", NULL, NULL, "1993",
- "Mazin Saga (Asia)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_mazinsagaRomInfo, md_mazinsagaRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Mazin Saga (Jpn, Kor)
-static struct BurnRomInfo md_mazinsagjRomDesc[] = {
- { "mazin saga (jpn, kor).bin", 0x100000, 0x45b3a34b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_mazinsagj)
-STD_ROM_FN(md_mazinsagj)
-
-struct BurnDriver BurnDrvmd_mazinsagj = {
- "md_mazinsagj", "md_mazinwar", NULL, NULL, "1993",
- "Mazin Saga (Jpn, Kor)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_mazinsagjRomInfo, md_mazinsagjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Mazin Saga (USA)
-static struct BurnRomInfo md_mazinsaguRomDesc[] = {
- { "mazin saga - mutant fighter (usa).bin", 0x100000, 0x1bd9fef1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_mazinsagu)
-STD_ROM_FN(md_mazinsagu)
-
-struct BurnDriver BurnDrvmd_mazinsagu = {
- "md_mazinsagu", "md_mazinwar", NULL, NULL, "1993",
- "Mazin Saga (USA)\0", NULL, "Vic Tokai", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_mazinsaguRomInfo, md_mazinsaguRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// McDonald's Treasure Land Adventure (Euro)
-static struct BurnRomInfo md_mcdonaldRomDesc[] = {
- { "mcdonald's treasure land adventure (euro).bin", 0x100000, 0x6ab6a8da, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_mcdonald)
-STD_ROM_FN(md_mcdonald)
-
-struct BurnDriver BurnDrvmd_mcdonald = {
- "md_mcdonald", NULL, NULL, NULL, "1993",
- "McDonald's Treasure Land Adventure (Euro)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_mcdonaldRomInfo, md_mcdonaldRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// McDonald's Treasure Land Adventure (Jpn)
-static struct BurnRomInfo md_mcdonaldjRomDesc[] = {
- { "mcdonald's treasure land adventure (jpn).bin", 0x100000, 0xfebcfd06, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_mcdonaldj)
-STD_ROM_FN(md_mcdonaldj)
-
-struct BurnDriver BurnDrvmd_mcdonaldj = {
- "md_mcdonaldj", "md_mcdonald", NULL, NULL, "1993",
- "McDonald's Treasure Land Adventure (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_mcdonaldjRomInfo, md_mcdonaldjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// McDonald's Treasure Land Adventure (Jpn, Prototype)
-static struct BurnRomInfo md_mcdonaldjpRomDesc[] = {
- { "mcdonald's treasure land adventure (jpn) (beta).bin", 0x100000, 0x7bf477e8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_mcdonaldjp)
-STD_ROM_FN(md_mcdonaldjp)
-
-struct BurnDriver BurnDrvmd_mcdonaldjp = {
- "md_mcdonaldjp", "md_mcdonald", NULL, NULL, "1993",
- "McDonald's Treasure Land Adventure (Jpn, Prototype)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_mcdonaldjpRomInfo, md_mcdonaldjpRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// McDonald's Treasure Land Adventure (USA)
-static struct BurnRomInfo md_mcdonalduRomDesc[] = {
- { "mcdonald's treasure land adventure (usa).bin", 0x100000, 0x04ef4899, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_mcdonaldu)
-STD_ROM_FN(md_mcdonaldu)
-
-struct BurnDriver BurnDrvmd_mcdonaldu = {
- "md_mcdonaldu", "md_mcdonald", NULL, NULL, "1993",
- "McDonald's Treasure Land Adventure (USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_mcdonalduRomInfo, md_mcdonalduRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Medal City (Jpn, SegaNet)
-static struct BurnRomInfo md_medalcRomDesc[] = {
- { "medal city (jpn) (sn).bin", 0x040000, 0x3ef4135d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_medalc)
-STD_ROM_FN(md_medalc)
-
-struct BurnDriver BurnDrvmd_medalc = {
- "md_medalc", NULL, NULL, NULL, "1991",
- "Medal City (Jpn, SegaNet)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_medalcRomInfo, md_medalcRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Mega Bomberman (USA)
-static struct BurnRomInfo md_megabombuRomDesc[] = {
- { "mega bomberman (usa).bin", 0x100000, 0x4bd6667d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_megabombu)
-STD_ROM_FN(md_megabombu)
-
-struct BurnDriver BurnDrvmd_megabombu = {
- "md_megabombu", "md_megabomb", NULL, NULL, "1994",
- "Mega Bomberman (USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_megabombuRomInfo, md_megabombuRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Mega Bomberman - 8 Player Demo
-static struct BurnRomInfo md_megabm8RomDesc[] = {
- { "mega bomberman - 8 player demo (unl).bin", 0x100000, 0xd41c0d81, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_megabm8)
-STD_ROM_FN(md_megabm8)
-
-struct BurnDriver BurnDrvmd_megabm8 = {
- "md_megabm8", NULL, NULL, NULL, "199?",
- "Mega Bomberman - 8 Player Demo\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_megabm8RomInfo, md_megabm8RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Mega Games I (Euro)
-static struct BurnRomInfo md_megaga1RomDesc[] = {
- { "mpr-15009.bin", 0x100000, 0xdb753224, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_megaga1)
-STD_ROM_FN(md_megaga1)
-
-struct BurnDriver BurnDrvmd_megaga1 = {
- "md_megaga1", NULL, NULL, NULL, "1992",
- "Mega Games I (Euro)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_megaga1RomInfo, md_megaga1RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Mega Games 2 (Euro)
-static struct BurnRomInfo md_megaga2RomDesc[] = {
- { "mega games 2 (euro).bin", 0x200000, 0x30d59f2f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_megaga2)
-STD_ROM_FN(md_megaga2)
-
-struct BurnDriver BurnDrvmd_megaga2 = {
- "md_megaga2", NULL, NULL, NULL, "1993",
- "Mega Games 2 (Euro)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_megaga2RomInfo, md_megaga2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Mega Games 3 (Euro, Asia)
-static struct BurnRomInfo md_megaga3RomDesc[] = {
- { "mega games 3 (euro, asia).bin", 0x200000, 0xb4247d98, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_megaga3)
-STD_ROM_FN(md_megaga3)
-
-struct BurnDriver BurnDrvmd_megaga3 = {
- "md_megaga3", NULL, NULL, NULL, "1993",
- "Mega Games 3 (Euro, Asia)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_megaga3RomInfo, md_megaga3RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Mega Games 6 Vol. 1 (Euro)
-static struct BurnRomInfo md_megaga61RomDesc[] = {
- { "mpr-18002+mpr18003.bin", 0x300000, 0xb66fb80d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_megaga61)
-STD_ROM_FN(md_megaga61)
-
-struct BurnDriver BurnDrvmd_megaga61 = {
- "md_megaga61", NULL, NULL, NULL, "1995",
- "Mega Games 6 Vol. 1 (Euro)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_megaga61RomInfo, md_megaga61RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Mega Games 6 Vol. 2 (Euro)
-static struct BurnRomInfo md_megaga62RomDesc[] = {
- { "mega games 6 vol. 2 (euro).bin", 0x300000, 0xe8d10db9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_megaga62)
-STD_ROM_FN(md_megaga62)
-
-struct BurnDriver BurnDrvmd_megaga62 = {
- "md_megaga62", NULL, NULL, NULL, "1995",
- "Mega Games 6 Vol. 2 (Euro)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_megaga62RomInfo, md_megaga62RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Mega Games 10 (Bra)
-static struct BurnRomInfo md_megaga10RomDesc[] = {
- { "mega games 10 (bra).bin", 0x400000, 0xc19ae368, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_megaga10)
-STD_ROM_FN(md_megaga10)
-
-struct BurnDriver BurnDrvmd_megaga10 = {
- "md_megaga10", NULL, NULL, NULL, "199?",
- "Mega Games 10 (Bra)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_megaga10RomInfo, md_megaga10RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Mega Man - The Wily Wars (Euro)
-static struct BurnRomInfo md_megamanRomDesc[] = {
- { "mega man - the wily wars (euro).bin", 0x200000, 0xdcf6e8b2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_megaman)
-STD_ROM_FN(md_megaman)
-
-struct BurnDriver BurnDrvmd_megaman = {
- "md_megaman", NULL, NULL, NULL, "1994",
- "Mega Man - The Wily Wars (Euro)\0", NULL, "Capcom", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_EEPROM, GBF_MISC, 0,
- MegadriveGetZipName, md_megamanRomInfo, md_megamanRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Rockman Mega World (Jpn)
-static struct BurnRomInfo md_rockmanRomDesc[] = {
- { "rockman mega world (jpn).bin", 0x200000, 0x4d87235e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_rockman)
-STD_ROM_FN(md_rockman)
-
-struct BurnDriver BurnDrvmd_rockman = {
- "md_rockman", "md_megaman", NULL, NULL, "1994",
- "Rockman Mega World (Jpn)\0", NULL, "Capcom", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_rockmanRomInfo, md_rockmanRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Rockman Mega World (Jpn, Alt)
-static struct BurnRomInfo md_rockman1RomDesc[] = {
- { "rockman mega world (jpn) (alt).bin", 0x200000, 0x85c956ef, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_rockman1)
-STD_ROM_FN(md_rockman1)
-
-struct BurnDriver BurnDrvmd_rockman1 = {
- "md_rockman1", "md_megaman", NULL, NULL, "1994",
- "Rockman Mega World (Jpn, Alt)\0", NULL, "Capcom", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_rockman1RomInfo, md_rockman1RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Mega SWIV (Euro)
-static struct BurnRomInfo md_megaswivRomDesc[] = {
- { "mega swiv (euro).bin", 0x100000, 0x78c2f046, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_megaswiv)
-STD_ROM_FN(md_megaswiv)
-
-struct BurnDriver BurnDrvmd_megaswiv = {
- "md_megaswiv", NULL, NULL, NULL, "1994",
- "Mega SWIV (Euro)\0", NULL, "Time Warner Interactive", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_megaswivRomInfo, md_megaswivRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Mega SWIV (Euro, Pirate)
-static struct BurnRomInfo md_megaswivbRomDesc[] = {
- { "mega swiv (euro) (pirate).bin", 0x100000, 0x1ec66bf7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_megaswivb)
-STD_ROM_FN(md_megaswivb)
-
-struct BurnDriver BurnDrvmd_megaswivb = {
- "md_megaswivb", "md_megaswiv", NULL, NULL, "1994",
- "Mega SWIV (Euro, Pirate)\0", NULL, "Time Warner Interactive", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_megaswivbRomInfo, md_megaswivbRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Mega Turrican (Euro)
-static struct BurnRomInfo md_megaturrRomDesc[] = {
- { "mega turrican (euro).bin", 0x100000, 0xb1d15d0f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_megaturr)
-STD_ROM_FN(md_megaturr)
-
-struct BurnDriver BurnDrvmd_megaturr = {
- "md_megaturr", NULL, NULL, NULL, "1994",
- "Mega Turrican (Euro)\0", NULL, "Sony Imagesoft", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_megaturrRomInfo, md_megaturrRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Mega Turrican (USA)
-static struct BurnRomInfo md_megaturruRomDesc[] = {
- { "mega turrican (usa).bin", 0x100000, 0xfe898cc9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_megaturru)
-STD_ROM_FN(md_megaturru)
-
-struct BurnDriver BurnDrvmd_megaturru = {
- "md_megaturru", "md_megaturr", NULL, NULL, "1994",
- "Mega Turrican (USA)\0", NULL, "Data East", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_megaturruRomInfo, md_megaturruRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Mega-Lo-Mania (Euro, v1.1)
-static struct BurnRomInfo md_megaloRomDesc[] = {
- { "mega-lo-mania (euro) (v1.1).bin", 0x100000, 0xab9fed30, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_megalo)
-STD_ROM_FN(md_megalo)
-
-struct BurnDriver BurnDrvmd_megalo = {
- "md_megalo", NULL, NULL, NULL, "1992",
- "Mega-Lo-Mania (Euro, v1.1)\0", NULL, "Virgin Games", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_megaloRomInfo, md_megaloRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Mega-Lo-Mania (Euro)
-static struct BurnRomInfo md_megalo1RomDesc[] = {
- { "mpr-15230.bin", 0x100000, 0x2148d56d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_megalo1)
-STD_ROM_FN(md_megalo1)
-
-struct BurnDriver BurnDrvmd_megalo1 = {
- "md_megalo1", "md_megalo", NULL, NULL, "1992",
- "Mega-Lo-Mania (Euro)\0", NULL, "Virgin Games", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_megalo1RomInfo, md_megalo1RomName, NULL, NULL, MegadriveInputInfo, MegadrivePALDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Mega-Lo-Mania (Fra)
-static struct BurnRomInfo md_megalofRomDesc[] = {
- { "mega-lo-mania (france).bin", 0x100000, 0x3b3231ed, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_megalof)
-STD_ROM_FN(md_megalof)
-
-struct BurnDriver BurnDrvmd_megalof = {
- "md_megalof", "md_megalo", NULL, NULL, "1992",
- "Mega-Lo-Mania (Fra)\0", NULL, "Virgin Games", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_megalofRomInfo, md_megalofRomName, NULL, NULL, MegadriveInputInfo, MegadrivePALDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Mega-Lo-Mania (Jpn)
-static struct BurnRomInfo md_megalojRomDesc[] = {
- { "mega-lo-mania (jpn).bin", 0x100000, 0xa60d8619, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_megaloj)
-STD_ROM_FN(md_megaloj)
-
-struct BurnDriver BurnDrvmd_megaloj = {
- "md_megaloj", "md_megalo", NULL, NULL, "1993",
- "Mega-Lo-Mania (Jpn)\0", NULL, "CRI", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_megalojRomInfo, md_megalojRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Tyrants - Fight through Time (USA)
-static struct BurnRomInfo md_tyrantRomDesc[] = {
- { "tyrants - fight through time (usa).bin", 0x100000, 0xa744921e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_tyrant)
-STD_ROM_FN(md_tyrant)
-
-struct BurnDriver BurnDrvmd_tyrant = {
- "md_tyrant", "md_megalo", NULL, NULL, "1992",
- "Tyrants - Fight through Time (USA)\0", NULL, "Virgin Games", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_tyrantRomInfo, md_tyrantRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// MegaMind (Jpn, SegaNet)
-static struct BurnRomInfo md_megamindRomDesc[] = {
- { "megamind (jpn) (sn).bin", 0x040000, 0x76df2ae2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_megamind)
-STD_ROM_FN(md_megamind)
-
-struct BurnDriver BurnDrvmd_megamind = {
- "md_megamind", NULL, NULL, NULL, "1991",
- "MegaMind (Jpn, SegaNet)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_megamindRomInfo, md_megamindRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// MegaPanel (Jpn)
-static struct BurnRomInfo md_megapanlRomDesc[] = {
- { "megapanel (jpn).bin", 0x040000, 0x6240f579, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_megapanl)
-STD_ROM_FN(md_megapanl)
-
-struct BurnDriver BurnDrvmd_megapanl = {
- "md_megapanl", NULL, NULL, NULL, "1990",
- "MegaPanel (Jpn)\0", NULL, "Namcot", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_megapanlRomInfo, md_megapanlRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Menacer 6-Game Cartridge (Euro, USA)
-static struct BurnRomInfo md_menacerRomDesc[] = {
- { "mpr-15075.bin", 0x100000, 0x936b85f7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_menacer)
-STD_ROM_FN(md_menacer)
-
-struct BurnDriver BurnDrvmd_menacer = {
- "md_menacer", NULL, NULL, NULL, "1992",
- "Menacer 6-Game Cartridge (Euro, USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_menacerRomInfo, md_menacerRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Meng Huan Shui Guo Pan - 777 Casino (Chi)
-static struct BurnRomInfo md_menghuRomDesc[] = {
- { "meng huan shui guo pan - 777 casino (chi) (unl).bin", 0x100000, 0x42dc03e4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_menghu)
-STD_ROM_FN(md_menghu)
-
-struct BurnDriver BurnDrvmd_menghu = {
- "md_menghu", NULL, NULL, NULL, "199?",
- "Meng Huan Shui Guo Pan - 777 Casino (Chi)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_menghuRomInfo, md_menghuRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Mercs (Euro, USA) ~ Senjou no Ookami II (Jpn)
-static struct BurnRomInfo md_mercsRomDesc[] = {
- { "mpr-14242.bin", 0x100000, 0x16113a72, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_mercs)
-STD_ROM_FN(md_mercs)
-
-struct BurnDriver BurnDrvmd_mercs = {
- "md_mercs", NULL, NULL, NULL, "1991",
- "Mercs (Euro, USA) ~ Senjou no Ookami II (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_mercsRomInfo, md_mercsRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Metal Fangs (Jpn)
-static struct BurnRomInfo md_metalfngRomDesc[] = {
- { "metal fangs (jpn).bin", 0x080000, 0xa8df1c4c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_metalfng)
-STD_ROM_FN(md_metalfng)
-
-struct BurnDriver BurnDrvmd_metalfng = {
- "md_metalfng", NULL, NULL, NULL, "1993",
- "Metal Fangs (Jpn)\0", NULL, "Victor Interactive Software", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_metalfngRomInfo, md_metalfngRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Michael Jackson's Moonwalker (World, Rev. A)
-static struct BurnRomInfo md_mwalkRomDesc[] = {
- { "mpr-13285a.bin", 0x080000, 0x11ce1f9e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_mwalk)
-STD_ROM_FN(md_mwalk)
-
-struct BurnDriver BurnDrvmd_mwalk = {
- "md_mwalk", NULL, NULL, NULL, "1990",
- "Michael Jackson's Moonwalker (World, Rev. A)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_mwalkRomInfo, md_mwalkRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Michael Jackson's Moonwalker (World)
-static struct BurnRomInfo md_mwalk1RomDesc[] = {
- { "mpr-13285.bin", 0x080000, 0x6a70791b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_mwalk1)
-STD_ROM_FN(md_mwalk1)
-
-struct BurnDriver BurnDrvmd_mwalk1 = {
- "md_mwalk1", "md_mwalk", NULL, NULL, "1990",
- "Michael Jackson's Moonwalker (World)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_mwalk1RomInfo, md_mwalk1RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Mickey Mania - The Timeless Adventures of Mickey Mouse (Euro)
-static struct BurnRomInfo md_mmaniaRomDesc[] = {
- { "mpr-17089.bin", 0x200000, 0xcb5a8b85, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_mmania)
-STD_ROM_FN(md_mmania)
-
-struct BurnDriver BurnDrvmd_mmania = {
- "md_mmania", NULL, NULL, NULL, "1994",
- "Mickey Mania - The Timeless Adventures of Mickey Mouse (Euro)\0", NULL, "Sony Imagesoft", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_mmaniaRomInfo, md_mmaniaRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Mickey Mania - The Timeless Adventures of Mickey Mouse (Jpn)
-static struct BurnRomInfo md_mmaniajRomDesc[] = {
- { "mickey mania - the timeless adventures of mickey mouse (jpn).bin", 0x200000, 0x23180cf7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_mmaniaj)
-STD_ROM_FN(md_mmaniaj)
-
-struct BurnDriver BurnDrvmd_mmaniaj = {
- "md_mmaniaj", "md_mmania", NULL, NULL, "1995",
- "Mickey Mania - The Timeless Adventures of Mickey Mouse (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_mmaniajRomInfo, md_mmaniajRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Mickey Mania - The Timeless Adventures of Mickey Mouse (USA)
-static struct BurnRomInfo md_mmaniauRomDesc[] = {
- { "mickey mania - the timeless adventures of mickey mouse (usa).bin", 0x200000, 0x629e5963, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_mmaniau)
-STD_ROM_FN(md_mmaniau)
-
-struct BurnDriver BurnDrvmd_mmaniau = {
- "md_mmaniau", "md_mmania", NULL, NULL, "1994",
- "Mickey Mania - The Timeless Adventures of Mickey Mouse (USA)\0", NULL, "Sony Imagesoft", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_mmaniauRomInfo, md_mmaniauRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Mickey Mania - The Timeless Adventures of Mickey Mouse (USA, Prototype)
-static struct BurnRomInfo md_mmaniaupRomDesc[] = {
- { "mickey mania - the timeless adventures of mickey mouse (usa) (beta).bin", 0x200000, 0x7fc1bdf0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_mmaniaup)
-STD_ROM_FN(md_mmaniaup)
-
-struct BurnDriver BurnDrvmd_mmaniaup = {
- "md_mmaniaup", "md_mmania", NULL, NULL, "1994",
- "Mickey Mania - The Timeless Adventures of Mickey Mouse (USA, Prototype)\0", NULL, "Sony Imagesoft", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_mmaniaupRomInfo, md_mmaniaupRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Mickey's Ultimate Challenge (USA)
-static struct BurnRomInfo md_mickeyucRomDesc[] = {
- { "mickey's ultimate challenge (usa).bin", 0x100000, 0x30b512ee, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_mickeyuc)
-STD_ROM_FN(md_mickeyuc)
-
-struct BurnDriver BurnDrvmd_mickeyuc = {
- "md_mickeyuc", NULL, NULL, NULL, "1994",
- "Mickey's Ultimate Challenge (USA)\0", NULL, "Hi Tech Expressions", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_mickeyucRomInfo, md_mickeyucRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Micro Machines (Euro, USA, Alt)
-static struct BurnRomInfo md_micromacaRomDesc[] = {
- { "micro machines (euro, usa) (alt).bin", 0x080000, 0xe5cf560d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_micromaca)
-STD_ROM_FN(md_micromaca)
-
-struct BurnDriver BurnDrvmd_micromaca = {
- "md_micromaca", "md_micromac", NULL, NULL, "1993",
- "Micro Machines (Euro, USA, Alt)\0", NULL, "Codemasters", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_micromacaRomInfo, md_micromacaRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Micro Machines (Euro, USA, Alt 2)
-static struct BurnRomInfo md_micromacbRomDesc[] = {
- { "micro machines (euro, usa) (alt2).bin", 0x080000, 0x7ffbd1ad, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_micromacb)
-STD_ROM_FN(md_micromacb)
-
-struct BurnDriver BurnDrvmd_micromacb = {
- "md_micromacb", "md_micromac", NULL, NULL, "1993",
- "Micro Machines (Euro, USA, Alt 2)\0", NULL, "Codemasters", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_micromacbRomInfo, md_micromacbRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Micro Machines (Can)
-static struct BurnRomInfo md_micromaccRomDesc[] = {
- { "micro machines (canada).bin", 0x080000, 0x54e4cff1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_micromacc)
-STD_ROM_FN(md_micromacc)
-
-struct BurnDriver BurnDrvmd_micromacc = {
- "md_micromacc", "md_micromac", NULL, NULL, "1993",
- "Micro Machines (Can)\0", NULL, "Codemasters", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_micromaccRomInfo, md_micromaccRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Micro Machines Turbo Tournament 96 (Euro, J-Cart)
-static struct BurnRomInfo md_microm96aRomDesc[] = {
- { "mm96md7cc3.bin", 0x100000, 0x7492b1de, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_microm96a)
-STD_ROM_FN(md_microm96a)
-
-struct BurnDriver BurnDrvmd_microm96a = {
- "md_microm96a", "md_microm96", NULL, NULL, "1995",
- "Micro Machines Turbo Tournament 96 (Euro, J-Cart)\0", NULL, "Codemasters", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 4, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_CM_JCART_SEPROM, GBF_MISC, 0,
- MegadriveGetZipName, md_microm96aRomInfo, md_microm96aRomName, NULL, NULL, Megadrive4pInputInfo, Megadrive4pDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Micro Machines 2 - Turbo Tournament (Euro, J-Cart, Alt)
-static struct BurnRomInfo md_micromc2aRomDesc[] = {
- { "micro machines 2 - turbo tournament (euro) (j-cart) (alt).bin", 0x100000, 0x01c22a5d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_micromc2a)
-STD_ROM_FN(md_micromc2a)
-
-struct BurnDriver BurnDrvmd_micromc2a = {
- "md_micromc2a", "md_micromc2", NULL, NULL, "1994",
- "Micro Machines 2 - Turbo Tournament (Euro, J-Cart, Alt)\0", NULL, "Codemasters", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 4, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_CM_JCART_SEPROM, GBF_MISC, 0,
- MegadriveGetZipName, md_micromc2aRomInfo, md_micromc2aRomName, NULL, NULL, Megadrive4pInputInfo, Megadrive4pDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Micro Machines Military (Euro, J-Cart)
-static struct BurnRomInfo md_micrommRomDesc[] = {
- { "micro machines military (euro) (j-cart).bin", 0x100000, 0xb3abb15e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_micromm)
-STD_ROM_FN(md_micromm)
-
-struct BurnDriver BurnDrvmd_micromm = {
- "md_micromm", NULL, NULL, NULL, "1996",
- "Micro Machines Military (Euro, J-Cart)\0", NULL, "Codemasters", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 4, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_CM_JCART_SEPROM, GBF_MISC, 0,
- MegadriveGetZipName, md_micrommRomInfo, md_micrommRomName, NULL, NULL, Megadrive4pInputInfo, Megadrive4pDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Midnight Resistance (USA)
-static struct BurnRomInfo md_midresRomDesc[] = {
- { "midnight resistance (usa).bin", 0x100000, 0x187c6af6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_midres)
-STD_ROM_FN(md_midres)
-
-struct BurnDriver BurnDrvmd_midres = {
- "md_midres", NULL, NULL, NULL, "1991",
- "Midnight Resistance (USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_midresRomInfo, md_midresRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Midnight Resistance (Jpn)
-static struct BurnRomInfo md_midresjRomDesc[] = {
- { "midnight resistance (jpn).bin", 0x100000, 0x8f3f6e4d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_midresj)
-STD_ROM_FN(md_midresj)
-
-struct BurnDriver BurnDrvmd_midresj = {
- "md_midresj", "md_midres", NULL, NULL, "1991",
- "Midnight Resistance (Jpn)\0", NULL, "Data East", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_midresjRomInfo, md_midresjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Arcade's Greatest Hits (Euro)
-static struct BurnRomInfo md_arcadeghRomDesc[] = {
- { "midway presents arcade's greatest hits (euro).bin", 0x080000, 0xc0dce0e5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_arcadegh)
-STD_ROM_FN(md_arcadegh)
-
-struct BurnDriver BurnDrvmd_arcadegh = {
- "md_arcadegh", NULL, NULL, NULL, "1996",
- "Arcade's Greatest Hits (Euro)\0", NULL, "Midway", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_arcadeghRomInfo, md_arcadeghRomName, NULL, NULL, MegadriveInputInfo, MegadrivePALDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Mig-29 Fighter Pilot (Euro)
-static struct BurnRomInfo md_mig29RomDesc[] = {
- { "mpr-15659.bin", 0x100000, 0x70b0a5d7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_mig29)
-STD_ROM_FN(md_mig29)
-
-struct BurnDriver BurnDrvmd_mig29 = {
- "md_mig29", NULL, NULL, NULL, "1993",
- "Mig-29 Fighter Pilot (Euro)\0", NULL, "Domark", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_mig29RomInfo, md_mig29RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Mig-29 Fighter Pilot (Jpn)
-static struct BurnRomInfo md_mig29jRomDesc[] = {
- { "mig-29 fighter pilot (jpn).bin", 0x100000, 0x3d239046, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_mig29j)
-STD_ROM_FN(md_mig29j)
-
-struct BurnDriver BurnDrvmd_mig29j = {
- "md_mig29j", "md_mig29", NULL, NULL, "1993",
- "Mig-29 Fighter Pilot (Jpn)\0", NULL, "Tengen", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_mig29jRomInfo, md_mig29jRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Mig-29 Fighter Pilot (USA)
-static struct BurnRomInfo md_mig29uRomDesc[] = {
- { "mig-29 fighter pilot (usa).bin", 0x100000, 0x59ccabb2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_mig29u)
-STD_ROM_FN(md_mig29u)
-
-struct BurnDriver BurnDrvmd_mig29u = {
- "md_mig29u", "md_mig29", NULL, NULL, "1993",
- "Mig-29 Fighter Pilot (USA)\0", NULL, "Domark", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_mig29uRomInfo, md_mig29uRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Might and Magic - Gates to Another World (Euro, USA)
-static struct BurnRomInfo md_mightmagRomDesc[] = {
- { "might and magic - gates to another world (euro, usa).bin", 0x0c0000, 0xf509145f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_mightmag)
-STD_ROM_FN(md_mightmag)
-
-struct BurnDriver BurnDrvmd_mightmag = {
- "md_mightmag", NULL, NULL, NULL, "1991",
- "Might and Magic - Gates to Another World (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_mightmagRomInfo, md_mightmagRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Might and Magic III - Isles of Terra (USA, Prototype)
-static struct BurnRomInfo md_mightmg3RomDesc[] = {
- { "might and magic iii - isles of terra (usa) (prototype).bin", 0x200000, 0x6ef7104a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_mightmg3)
-STD_ROM_FN(md_mightmg3)
-
-struct BurnDriver BurnDrvmd_mightmg3 = {
- "md_mightmg3", NULL, NULL, NULL, "1993",
- "Might and Magic III - Isles of Terra (USA, Prototype)\0", NULL, "FCI?", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_mightmg3RomInfo, md_mightmg3RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Mighty Morphin Power Rangers (Euro)
-static struct BurnRomInfo md_mmprRomDesc[] = {
- { "mighty morphin power rangers (euro).bin", 0x200000, 0x7f96e663, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_mmpr)
-STD_ROM_FN(md_mmpr)
-
-struct BurnDriver BurnDrvmd_mmpr = {
- "md_mmpr", NULL, NULL, NULL, "1994",
- "Mighty Morphin Power Rangers (Euro)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_mmprRomInfo, md_mmprRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Mighty Morphin Power Rangers (USA)
-static struct BurnRomInfo md_mmpruRomDesc[] = {
- { "mighty morphin power rangers (usa).bin", 0x200000, 0x715158a9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_mmpru)
-STD_ROM_FN(md_mmpru)
-
-struct BurnDriver BurnDrvmd_mmpru = {
- "md_mmpru", "md_mmpr", NULL, NULL, "1994",
- "Mighty Morphin Power Rangers (USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_mmpruRomInfo, md_mmpruRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Mighty Morphin Power Rangers (USA, Prototype, 19940804)
-static struct BurnRomInfo md_mmprp4RomDesc[] = {
- { "mighty morphin power rangers (prototype - aug 04, 1994).bin", 0x200000, 0xf3ae5aaf, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_mmprp4)
-STD_ROM_FN(md_mmprp4)
-
-struct BurnDriver BurnDrvmd_mmprp4 = {
- "md_mmprp4", "md_mmpr", NULL, NULL, "1994",
- "Mighty Morphin Power Rangers (USA, Prototype, 19940804)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_mmprp4RomInfo, md_mmprp4RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Mighty Morphin Power Rangers (USA, Prototype, 19940808)
-static struct BurnRomInfo md_mmprp3RomDesc[] = {
- { "mighty morphin power rangers (prototype - aug 08, 1994).bin", 0x200000, 0x57644549, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_mmprp3)
-STD_ROM_FN(md_mmprp3)
-
-struct BurnDriver BurnDrvmd_mmprp3 = {
- "md_mmprp3", "md_mmpr", NULL, NULL, "1994",
- "Mighty Morphin Power Rangers (USA, Prototype, 19940808)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_mmprp3RomInfo, md_mmprp3RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Mighty Morphin Power Rangers (Prototype, 19940809)
-static struct BurnRomInfo md_mmprp2RomDesc[] = {
- { "mighty morphin power rangers (prototype - aug 09, 1994).bin", 0x200000, 0x4356fe0a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_mmprp2)
-STD_ROM_FN(md_mmprp2)
-
-struct BurnDriver BurnDrvmd_mmprp2 = {
- "md_mmprp2", "md_mmpr", NULL, NULL, "1994",
- "Mighty Morphin Power Rangers (Prototype, 19940809)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_mmprp2RomInfo, md_mmprp2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Mighty Morphin Power Rangers (Prototype, 19940810)
-static struct BurnRomInfo md_mmprp1RomDesc[] = {
- { "mighty morphin power rangers (prototype - aug 10, 1994).bin", 0x200000, 0xe79cd214, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_mmprp1)
-STD_ROM_FN(md_mmprp1)
-
-struct BurnDriver BurnDrvmd_mmprp1 = {
- "md_mmprp1", "md_mmpr", NULL, NULL, "1994",
- "Mighty Morphin Power Rangers (Prototype, 19940810)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_mmprp1RomInfo, md_mmprp1RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Mighty Morphin Power Rangers (Prototype, 19940708)
-static struct BurnRomInfo md_mmprp6RomDesc[] = {
- { "mighty morphin power rangers (prototype - jul 08, 1994).bin", 0x200000, 0xe6916c54, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_mmprp6)
-STD_ROM_FN(md_mmprp6)
-
-struct BurnDriver BurnDrvmd_mmprp6 = {
- "md_mmprp6", "md_mmpr", NULL, NULL, "1994",
- "Mighty Morphin Power Rangers (Prototype, 19940708)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_mmprp6RomInfo, md_mmprp6RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Mighty Morphin Power Rangers (Prototype, 19940718)
-static struct BurnRomInfo md_mmprp5RomDesc[] = {
- { "mighty morphin power rangers (prototype - jul 18, 1994).bin", 0x200000, 0x5accdb1a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_mmprp5)
-STD_ROM_FN(md_mmprp5)
-
-struct BurnDriver BurnDrvmd_mmprp5 = {
- "md_mmprp5", "md_mmpr", NULL, NULL, "1994",
- "Mighty Morphin Power Rangers (Prototype, 19940718)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_mmprp5RomInfo, md_mmprp5RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Mighty Morphin Power Rangers - The Movie (Euro)
-static struct BurnRomInfo md_mmprtmRomDesc[] = {
- { "mighty morphin power rangers - the movie (euro).bin", 0x200000, 0x254a4972, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_mmprtm)
-STD_ROM_FN(md_mmprtm)
-
-struct BurnDriver BurnDrvmd_mmprtm = {
- "md_mmprtm", NULL, NULL, NULL, "1995",
- "Mighty Morphin Power Rangers - The Movie (Euro)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_mmprtmRomInfo, md_mmprtmRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Mighty Morphin Power Rangers - The Movie (USA)
-static struct BurnRomInfo md_mmprtmuRomDesc[] = {
- { "mighty morphin power rangers - the movie (usa).bin", 0x200000, 0xaa941cbc, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_mmprtmu)
-STD_ROM_FN(md_mmprtmu)
-
-struct BurnDriver BurnDrvmd_mmprtmu = {
- "md_mmprtmu", "md_mmprtm", NULL, NULL, "1995",
- "Mighty Morphin Power Rangers - The Movie (USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_mmprtmuRomInfo, md_mmprtmuRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Mighty Morphin Power Rangers - The Movie (USA, Prototype, 19950713)
-static struct BurnRomInfo md_mmprtmp4RomDesc[] = {
- { "mighty morphin power rangers - the movie (prototype - jul 13, 1995).bin", 0x200000, 0x227bf7fd, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_mmprtmp4)
-STD_ROM_FN(md_mmprtmp4)
-
-struct BurnDriver BurnDrvmd_mmprtmp4 = {
- "md_mmprtmp4", "md_mmprtm", NULL, NULL, "1995",
- "Mighty Morphin Power Rangers - The Movie (USA, Prototype, 19950713)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_mmprtmp4RomInfo, md_mmprtmp4RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Mighty Morphin Power Rangers - The Movie (USA, Prototype, 19950717)
-static struct BurnRomInfo md_mmprtmp3RomDesc[] = {
- { "mighty morphin power rangers - the movie (prototype - jul 17, 1995).bin", 0x200000, 0x579de657, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_mmprtmp3)
-STD_ROM_FN(md_mmprtmp3)
-
-struct BurnDriver BurnDrvmd_mmprtmp3 = {
- "md_mmprtmp3", "md_mmprtm", NULL, NULL, "1995",
- "Mighty Morphin Power Rangers - The Movie (USA, Prototype, 19950717)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_mmprtmp3RomInfo, md_mmprtmp3RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Mighty Morphin Power Rangers - The Movie (USA, Prototype, 19950722)
-static struct BurnRomInfo md_mmprtmp2RomDesc[] = {
- { "mighty morphin power rangers - the movie (prototype - jul 22, 1995).bin", 0x200000, 0xc2ca3a8b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_mmprtmp2)
-STD_ROM_FN(md_mmprtmp2)
-
-struct BurnDriver BurnDrvmd_mmprtmp2 = {
- "md_mmprtmp2", "md_mmprtm", NULL, NULL, "1995",
- "Mighty Morphin Power Rangers - The Movie (USA, Prototype, 19950722)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_mmprtmp2RomInfo, md_mmprtmp2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Mighty Morphin Power Rangers - The Movie (USA, Prototype, 19950724)
-static struct BurnRomInfo md_mmprtmp1RomDesc[] = {
- { "mighty morphin power rangers - the movie (prototype - jul 24, 1995).bin", 0x200000, 0x3429fa3a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_mmprtmp1)
-STD_ROM_FN(md_mmprtmp1)
-
-struct BurnDriver BurnDrvmd_mmprtmp1 = {
- "md_mmprtmp1", "md_mmprtm", NULL, NULL, "1995",
- "Mighty Morphin Power Rangers - The Movie (USA, Prototype, 19950724)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_mmprtmp1RomInfo, md_mmprtmp1RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Mike Ditka Power Football (Euro, USA)
-static struct BurnRomInfo md_ditkapfRomDesc[] = {
- { "mike ditka power football (euro, usa).bin", 0x100000, 0x6078b310, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ditkapf)
-STD_ROM_FN(md_ditkapf)
-
-struct BurnDriver BurnDrvmd_ditkapf = {
- "md_ditkapf", NULL, NULL, NULL, "1991",
- "Mike Ditka Power Football (Euro, USA)\0", NULL, "Ballistic", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_ditkapfRomInfo, md_ditkapfRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Mike Ditka Power Football (Euro, USA, Alt)
-static struct BurnRomInfo md_ditkapf1RomDesc[] = {
- { "mike ditka power football (euro, usa) (alt).bin", 0x100000, 0xde50ca8e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ditkapf1)
-STD_ROM_FN(md_ditkapf1)
-
-struct BurnDriver BurnDrvmd_ditkapf1 = {
- "md_ditkapf1", "md_ditkapf", NULL, NULL, "1991",
- "Mike Ditka Power Football (Euro, USA, Alt)\0", NULL, "Ballistic", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_ditkapf1RomInfo, md_ditkapf1RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Minnesota Fats - Pool Legend (USA)
-static struct BurnRomInfo md_mfpoolRomDesc[] = {
- { "minnesota fats - pool legend (usa).bin", 0x100000, 0x38174f40, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_mfpool)
-STD_ROM_FN(md_mfpool)
-
-struct BurnDriver BurnDrvmd_mfpool = {
- "md_mfpool", NULL, NULL, NULL, "1995",
- "Minnesota Fats - Pool Legend (USA)\0", NULL, "Data East", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_mfpoolRomInfo, md_mfpoolRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Chou Kyuukai Miracle Nine (Jpn)
-static struct BurnRomInfo md_miracle9RomDesc[] = {
- { "chou kyuukai miracle nine (jpn).bin", 0x200000, 0x6d8c2206, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_miracle9)
-STD_ROM_FN(md_miracle9)
-
-struct BurnDriver BurnDrvmd_miracle9 = {
- "md_miracle9", NULL, NULL, NULL, "1995",
- "Chou Kyuukai Miracle Nine (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_miracle9RomInfo, md_miracle9RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Miracle Piano Teaching System (USA)
-static struct BurnRomInfo md_miraclepRomDesc[] = {
- { "miracle piano teaching system, the (usa).bin", 0x080000, 0xa719542e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_miraclep)
-STD_ROM_FN(md_miraclep)
-
-struct BurnDriver BurnDrvmd_miraclep = {
- "md_miraclep", NULL, NULL, NULL, "1992",
- "The Miracle Piano Teaching System (USA)\0", NULL, "Software Toolworks", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_miraclepRomInfo, md_miraclepRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// MK 5 - Mortal Combat - SubZero
-static struct BurnRomInfo md_mk5RomDesc[] = {
- { "mk 5 - mortal combat - subzero (unl).bin", 0x200000, 0x11e367a1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_mk5)
-STD_ROM_FN(md_mk5)
-
-struct BurnDriver BurnDrvmd_mk5 = {
- "md_mk5", NULL, NULL, NULL, "199?",
- "MK 5 - Mortal Combat - SubZero\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_mk5RomInfo, md_mk5RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// MK 5 - Mortal Combat - SubZero (Pirate)
-static struct BurnRomInfo md_mk5aRomDesc[] = {
- { "mk 5 - mortal combat - subzero (unl) (pirate).bin", 0x200000, 0x41203006, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_mk5a)
-STD_ROM_FN(md_mk5a)
-
-struct BurnDriver BurnDrvmd_mk5a = {
- "md_mk5a", "md_mk5", NULL, NULL, "199?",
- "MK 5 - Mortal Combat - SubZero (Pirate)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_mk5aRomInfo, md_mk5aRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// MLBPA Baseball (USA)
-static struct BurnRomInfo md_mlbpaRomDesc[] = {
- { "mlbpa baseball (usa).bin", 0x200000, 0x14a8064d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_mlbpa)
-STD_ROM_FN(md_mlbpa)
-
-struct BurnDriver BurnDrvmd_mlbpa = {
- "md_mlbpa", NULL, NULL, NULL, "1992",
- "MLBPA Baseball (USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_mlbpaRomInfo, md_mlbpaRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Monopoly (USA)
-static struct BurnRomInfo md_monopolyRomDesc[] = {
- { "monopoly (usa).bin", 0x080000, 0xc10268da, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_monopoly)
-STD_ROM_FN(md_monopoly)
-
-struct BurnDriver BurnDrvmd_monopoly = {
- "md_monopoly", NULL, NULL, NULL, "1992",
- "Monopoly (USA)\0", NULL, "Parker Brothers", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_monopolyRomInfo, md_monopolyRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Monopoly (USA, Prototype)
-static struct BurnRomInfo md_monopolypRomDesc[] = {
- { "monopoly (usa) (beta).bin", 0x080000, 0xdfbcc3fa, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_monopolyp)
-STD_ROM_FN(md_monopolyp)
-
-struct BurnDriver BurnDrvmd_monopolyp = {
- "md_monopolyp", "md_monopoly", NULL, NULL, "1992",
- "Monopoly (USA, Prototype)\0", NULL, "Parker Brothers", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_monopolypRomInfo, md_monopolypRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Monster World IV (Jpn)
-static struct BurnRomInfo md_mworld4RomDesc[] = {
- { "monster world iv (jpn).bin", 0x200000, 0x36a3aaa4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_mworld4)
-STD_ROM_FN(md_mworld4)
-
-struct BurnDriver BurnDrvmd_mworld4 = {
- "md_mworld4", NULL, NULL, NULL, "1994",
- "Monster World IV (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_mworld4RomInfo, md_mworld4RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Mortal Kombat (World, v1.1)
-static struct BurnRomInfo md_mkRomDesc[] = {
- { "mortal kombat (world) (v1.1).bin", 0x200000, 0x33f19ab6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_mk)
-STD_ROM_FN(md_mk)
-
-struct BurnDriver BurnDrvmd_mk = {
- "md_mk", NULL, NULL, NULL, "1993",
- "Mortal Kombat (World, v1.1)\0", NULL, "Arena", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_mkRomInfo, md_mkRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Mortal Kombat (World)
-static struct BurnRomInfo md_mkaRomDesc[] = {
- { "s215_ver_1.00.bin", 0x200000, 0x1aa3a207, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_mka)
-STD_ROM_FN(md_mka)
-
-struct BurnDriver BurnDrvmd_mka = {
- "md_mka", "md_mk", NULL, NULL, "1993",
- "Mortal Kombat (World)\0", NULL, "Arena", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_mkaRomInfo, md_mkaRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Mortal Kombat II (World)
-static struct BurnRomInfo md_mk2RomDesc[] = {
- { "s376-u2.1+s382-u1.1.bin", 0x300000, 0xa9e013d8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_mk2)
-STD_ROM_FN(md_mk2)
-
-struct BurnDriver BurnDrvmd_mk2 = {
- "md_mk2", NULL, NULL, NULL, "1994",
- "Mortal Kombat II (World)\0", NULL, "Acclaim Entertainment", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_mk2RomInfo, md_mk2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Mortal Kombat 3 (Euro)
-static struct BurnRomInfo md_mk3RomDesc[] = {
- { "mortal_kombat_3_pal.bin", 0x400000, 0xaf6de3e8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_mk3)
-STD_ROM_FN(md_mk3)
-
-struct BurnDriver BurnDrvmd_mk3 = {
- "md_mk3", NULL, NULL, NULL, "1995",
- "Mortal Kombat 3 (Euro)\0", NULL, "Acclaim Entertainment", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_mk3RomInfo, md_mk3RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Mortal Kombat 3 (USA)
-static struct BurnRomInfo md_mk3uRomDesc[] = {
- { "mortal kombat 3 (usa).bin", 0x400000, 0xdd638af6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_mk3u)
-STD_ROM_FN(md_mk3u)
-
-struct BurnDriver BurnDrvmd_mk3u = {
- "md_mk3u", "md_mk3", NULL, NULL, "1995",
- "Mortal Kombat 3 (USA)\0", NULL, "Williams", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_mk3uRomInfo, md_mk3uRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Mr. Nutz (Euro)
-static struct BurnRomInfo md_mrnutzRomDesc[] = {
- { "mr. nutz (euro).bin", 0x100000, 0x0786ea0b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_mrnutz)
-STD_ROM_FN(md_mrnutz)
-
-struct BurnDriver BurnDrvmd_mrnutz = {
- "md_mrnutz", NULL, NULL, NULL, "1994",
- "Mr. Nutz (Euro)\0", NULL, "Ocean", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_mrnutzRomInfo, md_mrnutzRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Mr. Nutz - Hoppin' Mad (Prototype)
-static struct BurnRomInfo md_mrnutz2RomDesc[] = {
- { "mr. nutz - hoppin' mad (proto).bin", 0x100000, 0x2bfcaa3e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_mrnutz2)
-STD_ROM_FN(md_mrnutz2)
-
-struct BurnDriver BurnDrvmd_mrnutz2 = {
- "md_mrnutz2", NULL, NULL, NULL, "1994",
- "Mr. Nutz - Hoppin' Mad (Prototype)\0", NULL, "Ocean", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_mrnutz2RomInfo, md_mrnutz2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Ms. Pac-Man (Euro, USA)
-static struct BurnRomInfo md_mspacmanRomDesc[] = {
- { "ms. pac-man (euro, usa).bin", 0x020000, 0xaf041be6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_mspacman)
-STD_ROM_FN(md_mspacman)
-
-struct BurnDriver BurnDrvmd_mspacman = {
- "md_mspacman", NULL, NULL, NULL, "1991",
- "Ms. Pac-Man (Euro, USA)\0", NULL, "Tengen ~ Time Warner Interactive", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_mspacmanRomInfo, md_mspacmanRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Ms. Pac-Man (Pirate, Ripped from Golden 10 in 1)
-static struct BurnRomInfo md_mspacmanpirRomDesc[] = {
- { "ms. pac-man (usa) (pirate).bin", 0x020000, 0x39b51b26, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_mspacmanpir)
-STD_ROM_FN(md_mspacmanpir)
-
-struct BurnDriver BurnDrvmd_mspacmanpir = {
- "md_mspacmanpir", "md_mspacman", NULL, NULL, "199?",
- "Ms. Pac-Man (Pirate, Ripped from Golden 10 in 1)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_mspacmanpirRomInfo, md_mspacmanpirRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Muhammad Ali Heavyweight Boxing (Euro)
-static struct BurnRomInfo md_muhammadRomDesc[] = {
- { "muhammad ali heavyweight boxing (euro).bin", 0x100000, 0x8ea4717b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_muhammad)
-STD_ROM_FN(md_muhammad)
-
-struct BurnDriver BurnDrvmd_muhammad = {
- "md_muhammad", NULL, NULL, NULL, "1992",
- "Muhammad Ali Heavyweight Boxing (Euro)\0", NULL, "Virgin Games", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_muhammadRomInfo, md_muhammadRomName, NULL, NULL, MegadriveInputInfo, MegadrivePALDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Muhammad Ali Heavyweight Boxing (USA)
-static struct BurnRomInfo md_muhammaduRomDesc[] = {
- { "muhammad ali heavyweight boxing (usa).bin", 0x100000, 0xb638b6a3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_muhammadu)
-STD_ROM_FN(md_muhammadu)
-
-struct BurnDriver BurnDrvmd_muhammadu = {
- "md_muhammadu", "md_muhammad", NULL, NULL, "1992",
- "Muhammad Ali Heavyweight Boxing (USA)\0", NULL, "Virgin Games", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_muhammaduRomInfo, md_muhammaduRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Muhammad Ali Heavyweight Boxing (USA, Prototype)
-static struct BurnRomInfo md_muhammadupRomDesc[] = {
- { "muhammad ali heavyweight boxing (usa) (beta).bin", 0x100000, 0x7b852653, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_muhammadup)
-STD_ROM_FN(md_muhammadup)
-
-struct BurnDriver BurnDrvmd_muhammadup = {
- "md_muhammadup", "md_muhammad", NULL, NULL, "1992",
- "Muhammad Ali Heavyweight Boxing (USA, Prototype)\0", NULL, "Virgin Games", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_muhammadupRomInfo, md_muhammadupRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// MUSHA - Metallic Uniframe Super Hybrid Armor (USA)
-static struct BurnRomInfo md_mushaRomDesc[] = {
- { "musha - metallic uniframe super hybrid armor (usa).bin", 0x080000, 0x58a7f7b4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_musha)
-STD_ROM_FN(md_musha)
-
-struct BurnDriver BurnDrvmd_musha = {
- "md_musha", NULL, NULL, NULL, "1990",
- "MUSHA - Metallic Uniframe Super Hybrid Armor (USA)\0", NULL, "Seismic", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_mushaRomInfo, md_mushaRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Musha Aleste - Full Metal Fighter Ellinor (Jpn)
-static struct BurnRomInfo md_mushajRomDesc[] = {
- { "musha aleste - full metal fighter ellinor (jpn).bin", 0x080000, 0x8fde18ab, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_mushaj)
-STD_ROM_FN(md_mushaj)
-
-struct BurnDriver BurnDrvmd_mushaj = {
- "md_mushaj", "md_musha", NULL, NULL, "1990",
- "Musha Aleste - Full Metal Fighter Ellinor (Jpn)\0", NULL, "Toaplan", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_mushajRomInfo, md_mushajRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Mutant League Football (Jpn)
-static struct BurnRomInfo md_mlfootbjRomDesc[] = {
- { "mutant league football (jpn).bin", 0x100000, 0x2a97e6af, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_mlfootbj)
-STD_ROM_FN(md_mlfootbj)
-
-struct BurnDriver BurnDrvmd_mlfootbj = {
- "md_mlfootbj", "md_mlfootb", NULL, NULL, "1993",
- "Mutant League Football (Jpn)\0", NULL, "Electronic Arts Victor", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_mlfootbjRomInfo, md_mlfootbjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Mutant League Hockey (Euro, USA)
-static struct BurnRomInfo md_mlhockeyRomDesc[] = {
- { "mutant league hockey (euro, usa).bin", 0x200000, 0x3529180f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_mlhockey)
-STD_ROM_FN(md_mlhockey)
-
-struct BurnDriver BurnDrvmd_mlhockey = {
- "md_mlhockey", NULL, NULL, NULL, "1994",
- "Mutant League Hockey (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_mlhockeyRomInfo, md_mlhockeyRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Mystic Defender (Euro, USA, Rev. A)
-static struct BurnRomInfo md_mystdefRomDesc[] = {
- { "mpr-12707a.bin", 0x080000, 0x50fd5d93, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_mystdef)
-STD_ROM_FN(md_mystdef)
-
-struct BurnDriver BurnDrvmd_mystdef = {
- "md_mystdef", NULL, NULL, NULL, "1989",
- "Mystic Defender (Euro, USA, Rev. A)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_mystdefRomInfo, md_mystdefRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Mystic Defender (Euro, USA)
-static struct BurnRomInfo md_mystdefaRomDesc[] = {
- { "mpr-12707.bin", 0x080000, 0xf9ce1ab8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_mystdefa)
-STD_ROM_FN(md_mystdefa)
-
-struct BurnDriver BurnDrvmd_mystdefa = {
- "md_mystdefa", "md_mystdef", NULL, NULL, "1989",
- "Mystic Defender (Euro, USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_mystdefaRomInfo, md_mystdefaRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Kujaku Ou 2 - Geneijou (Jpn)
-static struct BurnRomInfo md_kujaku2RomDesc[] = {
- { "kujaku ou 2 - geneijou (jpn).bin", 0x060000, 0xaffd56bc, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_kujaku2)
-STD_ROM_FN(md_kujaku2)
-
-struct BurnDriver BurnDrvmd_kujaku2 = {
- "md_kujaku2", "md_mystdef", NULL, NULL, "1989",
- "Kujaku Ou 2 - Geneijou (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_kujaku2RomInfo, md_kujaku2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// On Dal Jang Goon (Kor)
-static struct BurnRomInfo md_ondalRomDesc[] = {
- { "on dal jang goon (kor).bin", 0x080000, 0x67ccb1ca, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ondal)
-STD_ROM_FN(md_ondal)
-
-struct BurnDriver BurnDrvmd_ondal = {
- "md_ondal", "md_mystdef", NULL, NULL, "1990?",
- "On Dal Jang Goon (Kor)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_ondalRomInfo, md_ondalRomName, NULL, NULL, MegadriveInputInfo, MegadriveJNTSCDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Mystical Fighter (USA)
-static struct BurnRomInfo md_mysticfRomDesc[] = {
- { "mystical fighter (usa).bin", 0x080000, 0xb2f2a69b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_mysticf)
-STD_ROM_FN(md_mysticf)
-
-struct BurnDriver BurnDrvmd_mysticf = {
- "md_mysticf", NULL, NULL, NULL, "1992",
- "Mystical Fighter (USA)\0", NULL, "Dreamworks", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_mysticfRomInfo, md_mysticfRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Maou Renjishi (Jpn)
-static struct BurnRomInfo md_maourenRomDesc[] = {
- { "maou renjishi (jpn).bin", 0x080000, 0x24a7f28c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_maouren)
-STD_ROM_FN(md_maouren)
-
-struct BurnDriver BurnDrvmd_maouren = {
- "md_maouren", "md_mysticf", NULL, NULL, "1991",
- "Maou Renjishi (Jpn)\0", NULL, "Taito", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_maourenRomInfo, md_maourenRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Fushigi no Umi no Nadia (Jpn)
-static struct BurnRomInfo md_nadiaRomDesc[] = {
- { "namcot_mfn_mb838200-20.bin", 0x100000, 0x4762062a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nadia)
-STD_ROM_FN(md_nadia)
-
-struct BurnDriver BurnDrvmd_nadia = {
- "md_nadia", NULL, NULL, NULL, "1991",
- "Fushigi no Umi no Nadia (Jpn)\0", NULL, "Namcot", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_nadiaRomInfo, md_nadiaRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Nakajima Satoru Kanshuu F1 Grand Prix (Jpn)
-static struct BurnRomInfo md_nakaf1gpRomDesc[] = {
- { "nakajima satoru kanshuu f1 grand prix (jpn).bin", 0x100000, 0x93be47cf, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nakaf1gp)
-STD_ROM_FN(md_nakaf1gp)
-
-struct BurnDriver BurnDrvmd_nakaf1gp = {
- "md_nakaf1gp", NULL, NULL, NULL, "1991",
- "Nakajima Satoru Kanshuu F1 Grand Prix (Jpn)\0", NULL, "Varie", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_nakaf1gpRomInfo, md_nakaf1gpRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Nakajima Satoru Kanshuu F1 Hero MD (Jpn)
-static struct BurnRomInfo md_f1heromdRomDesc[] = {
- { "nakajima satoru kanshuu f1 hero md (jpn).bin", 0x100000, 0x24f87987, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_f1heromd)
-STD_ROM_FN(md_f1heromd)
-
-struct BurnDriver BurnDrvmd_f1heromd = {
- "md_f1heromd", NULL, NULL, NULL, "1992",
- "Nakajima Satoru Kanshuu F1 Hero MD (Jpn)\0", NULL, "Varie", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_f1heromdRomInfo, md_f1heromdRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Nakajima Satoru Kanshuu F1 Super License (Jpn)
-static struct BurnRomInfo md_nakaf1slRomDesc[] = {
- { "nakajima satoru kanshuu f1 super license (jpn).bin", 0x100000, 0x8774bc79, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nakaf1sl)
-STD_ROM_FN(md_nakaf1sl)
-
-struct BurnDriver BurnDrvmd_nakaf1sl = {
- "md_nakaf1sl", NULL, NULL, NULL, "1992",
- "Nakajima Satoru Kanshuu F1 Super License (Jpn)\0", NULL, "Varie", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_nakaf1slRomInfo, md_nakaf1slRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NBA Action (USA)
-static struct BurnRomInfo md_nbaactRomDesc[] = {
- { "nba action (usa).bin", 0x200000, 0x99c348ba, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nbaact)
-STD_ROM_FN(md_nbaact)
-
-struct BurnDriver BurnDrvmd_nbaact = {
- "md_nbaact", NULL, NULL, NULL, "1994",
- "NBA Action (USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_nbaactRomInfo, md_nbaactRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NBA Action (Prototype, 19940104)
-static struct BurnRomInfo md_nbaactp3RomDesc[] = {
- { "nba action (prototype - jan 04, 1994).bin", 0x200000, 0x2491df2f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nbaactp3)
-STD_ROM_FN(md_nbaactp3)
-
-struct BurnDriver BurnDrvmd_nbaactp3 = {
- "md_nbaactp3", "md_nbaact", NULL, NULL, "1994",
- "NBA Action (Prototype, 19940104)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_nbaactp3RomInfo, md_nbaactp3RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NBA Action (Prototype, 19940116)
-static struct BurnRomInfo md_nbaactp2RomDesc[] = {
- { "nba action (prototype - jan 16, 1994).bin", 0x200000, 0xfe43c79d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nbaactp2)
-STD_ROM_FN(md_nbaactp2)
-
-struct BurnDriver BurnDrvmd_nbaactp2 = {
- "md_nbaactp2", "md_nbaact", NULL, NULL, "1994",
- "NBA Action (Prototype, 19940116)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_nbaactp2RomInfo, md_nbaactp2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NBA Action (Prototype, 19940127, Broken - C08 missing)
-static struct BurnRomInfo md_nbaactp1RomDesc[] = {
- { "nba action (prototype - jan 27, 1994) (broken - c08 missing).bin", 0x200000, 0x176a4bc5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nbaactp1)
-STD_ROM_FN(md_nbaactp1)
-
-struct BurnDriver BurnDrvmd_nbaactp1 = {
- "md_nbaactp1", "md_nbaact", NULL, NULL, "1994",
- "NBA Action (Prototype, 19940127, Broken - C08 missing)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_nbaactp1RomInfo, md_nbaactp1RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NBA Action '95 (Euro, USA)
-static struct BurnRomInfo md_nbaact95RomDesc[] = {
- { "nba action '95 starring david robinson (euro, usa).bin", 0x200000, 0xaa7006d6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nbaact95)
-STD_ROM_FN(md_nbaact95)
-
-struct BurnDriver BurnDrvmd_nbaact95 = {
- "md_nbaact95", NULL, NULL, NULL, "1995",
- "NBA Action '95 (Euro, USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_nbaact95RomInfo, md_nbaact95RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NBA Action '95 (Prototype, 19941202-B)
-static struct BurnRomInfo md_nbaact95p23RomDesc[] = {
- { "nba action '95 (prototype - dec 02, 1994 - b).bin", 0x200000, 0x04bf6f6e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nbaact95p23)
-STD_ROM_FN(md_nbaact95p23)
-
-struct BurnDriver BurnDrvmd_nbaact95p23 = {
- "md_nbaact95p23", "md_nbaact95", NULL, NULL, "1994",
- "NBA Action '95 (Prototype, 19941202-B)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_nbaact95p23RomInfo, md_nbaact95p23RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NBA Action '95 (Prototype, 19941209)
-static struct BurnRomInfo md_nbaact95p22RomDesc[] = {
- { "nba action '95 (prototype - dec 09, 1994).bin", 0x200000, 0x2b198487, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nbaact95p22)
-STD_ROM_FN(md_nbaact95p22)
-
-struct BurnDriver BurnDrvmd_nbaact95p22 = {
- "md_nbaact95p22", "md_nbaact95", NULL, NULL, "1994",
- "NBA Action '95 (Prototype, 19941209)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_nbaact95p22RomInfo, md_nbaact95p22RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NBA Action '95 (Prototype, 19941215)
-static struct BurnRomInfo md_nbaact95p21RomDesc[] = {
- { "nba action '95 (prototype - dec 15, 1994).bin", 0x200000, 0x10a3b46d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nbaact95p21)
-STD_ROM_FN(md_nbaact95p21)
-
-struct BurnDriver BurnDrvmd_nbaact95p21 = {
- "md_nbaact95p21", "md_nbaact95", NULL, NULL, "1994",
- "NBA Action '95 (Prototype, 19941215)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_nbaact95p21RomInfo, md_nbaact95p21RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NBA Action '95 (Prototype, 19941222-A)
-static struct BurnRomInfo md_nbaact95p20RomDesc[] = {
- { "nba action '95 (prototype - dec 22, 1994 - a).bin", 0x200000, 0xf92ba323, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nbaact95p20)
-STD_ROM_FN(md_nbaact95p20)
-
-struct BurnDriver BurnDrvmd_nbaact95p20 = {
- "md_nbaact95p20", "md_nbaact95", NULL, NULL, "1994",
- "NBA Action '95 (Prototype, 19941222-A)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_nbaact95p20RomInfo, md_nbaact95p20RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NBA Action '95 (Prototype, 19941224-A)
-static struct BurnRomInfo md_nbaact95p19RomDesc[] = {
- { "nba action '95 (prototype - dec 24, 1994 - a).bin", 0x200000, 0xddb04550, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nbaact95p19)
-STD_ROM_FN(md_nbaact95p19)
-
-struct BurnDriver BurnDrvmd_nbaact95p19 = {
- "md_nbaact95p19", "md_nbaact95", NULL, NULL, "1994",
- "NBA Action '95 (Prototype, 19941224-A)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_nbaact95p19RomInfo, md_nbaact95p19RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NBA Action '95 (Prototype, 19941229)
-static struct BurnRomInfo md_nbaact95p18RomDesc[] = {
- { "nba action '95 (prototype - dec 29, 1994).bin", 0x200000, 0xdcebe32a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nbaact95p18)
-STD_ROM_FN(md_nbaact95p18)
-
-struct BurnDriver BurnDrvmd_nbaact95p18 = {
- "md_nbaact95p18", "md_nbaact95", NULL, NULL, "1994",
- "NBA Action '95 (Prototype, 19941229)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_nbaact95p18RomInfo, md_nbaact95p18RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NBA Action '95 (Prototype, 19941230)
-static struct BurnRomInfo md_nbaact95p17RomDesc[] = {
- { "nba action '95 (prototype - dec 30, 1994).bin", 0x200000, 0xd87956c9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nbaact95p17)
-STD_ROM_FN(md_nbaact95p17)
-
-struct BurnDriver BurnDrvmd_nbaact95p17 = {
- "md_nbaact95p17", "md_nbaact95", NULL, NULL, "1994",
- "NBA Action '95 (Prototype, 19941230)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_nbaact95p17RomInfo, md_nbaact95p17RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NBA Action '95 (Prototype, 19941231)
-static struct BurnRomInfo md_nbaact95p16RomDesc[] = {
- { "nba action '95 (prototype - dec 31, 1994).bin", 0x200000, 0x582a378f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nbaact95p16)
-STD_ROM_FN(md_nbaact95p16)
-
-struct BurnDriver BurnDrvmd_nbaact95p16 = {
- "md_nbaact95p16", "md_nbaact95", NULL, NULL, "1994",
- "NBA Action '95 (Prototype, 19941231)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_nbaact95p16RomInfo, md_nbaact95p16RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NBA Action '95 (Prototype, 19950201, Alt)
-static struct BurnRomInfo md_nbaact95p03RomDesc[] = {
- { "nba action '95 (prototype - feb 01, 1995).bin", 0x200000, 0x2c02a79d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nbaact95p03)
-STD_ROM_FN(md_nbaact95p03)
-
-struct BurnDriver BurnDrvmd_nbaact95p03 = {
- "md_nbaact95p03", "md_nbaact95", NULL, NULL, "1995",
- "NBA Action '95 (Prototype, 19950201, Alt)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_nbaact95p03RomInfo, md_nbaact95p03RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NBA Action '95 (Prototype, 19950201)
-static struct BurnRomInfo md_nbaact95p02RomDesc[] = {
- { "nba action '95 (prototype - feb 1, 1995).bin", 0x1ff49e, 0xc4a0a624, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nbaact95p02)
-STD_ROM_FN(md_nbaact95p02)
-
-struct BurnDriver BurnDrvmd_nbaact95p02 = {
- "md_nbaact95p02", "md_nbaact95", NULL, NULL, "1995",
- "NBA Action '95 (Prototype, 19950201)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_nbaact95p02RomInfo, md_nbaact95p02RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NBA Action '95 (Prototype, 19950202)
-static struct BurnRomInfo md_nbaact95p01RomDesc[] = {
- { "nba action '95 (prototype - feb 2, 1995).bin", 0x1fe1f0, 0xa9167903, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nbaact95p01)
-STD_ROM_FN(md_nbaact95p01)
-
-struct BurnDriver BurnDrvmd_nbaact95p01 = {
- "md_nbaact95p01", "md_nbaact95", NULL, NULL, "1995",
- "NBA Action '95 (Prototype, 19950202)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_nbaact95p01RomInfo, md_nbaact95p01RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NBA Action '95 (Prototype, 19950103)
-static struct BurnRomInfo md_nbaact95p15RomDesc[] = {
- { "nba action '95 (prototype - jan 03, 1995).bin", 0x200000, 0x374af160, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nbaact95p15)
-STD_ROM_FN(md_nbaact95p15)
-
-struct BurnDriver BurnDrvmd_nbaact95p15 = {
- "md_nbaact95p15", "md_nbaact95", NULL, NULL, "1995",
- "NBA Action '95 (Prototype, 19950103)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_nbaact95p15RomInfo, md_nbaact95p15RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NBA Action '95 (Prototype, 19950108)
-static struct BurnRomInfo md_nbaact95p14RomDesc[] = {
- { "nba action '95 (prototype - jan 08, 1995).bin", 0x200000, 0x0a6b7b9e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nbaact95p14)
-STD_ROM_FN(md_nbaact95p14)
-
-struct BurnDriver BurnDrvmd_nbaact95p14 = {
- "md_nbaact95p14", "md_nbaact95", NULL, NULL, "1995",
- "NBA Action '95 (Prototype, 19950108)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_nbaact95p14RomInfo, md_nbaact95p14RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NBA Action '95 (Prototype, 19950112)
-static struct BurnRomInfo md_nbaact95p13RomDesc[] = {
- { "nba action '95 (prototype - jan 12, 1995).bin", 0x200000, 0xb47ff025, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nbaact95p13)
-STD_ROM_FN(md_nbaact95p13)
-
-struct BurnDriver BurnDrvmd_nbaact95p13 = {
- "md_nbaact95p13", "md_nbaact95", NULL, NULL, "1995",
- "NBA Action '95 (Prototype, 19950112)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_nbaact95p13RomInfo, md_nbaact95p13RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NBA Action '95 (Prototype, 19950115-A)
-static struct BurnRomInfo md_nbaact95p12RomDesc[] = {
- { "nba action '95 (prototype - jan 15, 1995 - a).bin", 0x200000, 0x9c6a1f27, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nbaact95p12)
-STD_ROM_FN(md_nbaact95p12)
-
-struct BurnDriver BurnDrvmd_nbaact95p12 = {
- "md_nbaact95p12", "md_nbaact95", NULL, NULL, "1995",
- "NBA Action '95 (Prototype, 19950115-A)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_nbaact95p12RomInfo, md_nbaact95p12RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NBA Action '95 (Prototype, 19950121)
-static struct BurnRomInfo md_nbaact95p11RomDesc[] = {
- { "nba action '95 (prototype - jan 21, 1995).bin", 0x200000, 0xe337bdfb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nbaact95p11)
-STD_ROM_FN(md_nbaact95p11)
-
-struct BurnDriver BurnDrvmd_nbaact95p11 = {
- "md_nbaact95p11", "md_nbaact95", NULL, NULL, "1995",
- "NBA Action '95 (Prototype, 19950121)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_nbaact95p11RomInfo, md_nbaact95p11RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NBA Action '95 (Prototype, 19950122-B)
-static struct BurnRomInfo md_nbaact95p10RomDesc[] = {
- { "nba action '95 (prototype - jan 22, 1995 - b).bin", 0x200000, 0x7bd7ca47, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nbaact95p10)
-STD_ROM_FN(md_nbaact95p10)
-
-struct BurnDriver BurnDrvmd_nbaact95p10 = {
- "md_nbaact95p10", "md_nbaact95", NULL, NULL, "1995",
- "NBA Action '95 (Prototype, 19950122-B)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_nbaact95p10RomInfo, md_nbaact95p10RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NBA Action '95 (Prototype, 19950124-B)
-static struct BurnRomInfo md_nbaact95p09RomDesc[] = {
- { "nba action '95 (prototype - jan 24, 1995 - b).bin", 0x200000, 0x15abcf41, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nbaact95p09)
-STD_ROM_FN(md_nbaact95p09)
-
-struct BurnDriver BurnDrvmd_nbaact95p09 = {
- "md_nbaact95p09", "md_nbaact95", NULL, NULL, "1995",
- "NBA Action '95 (Prototype, 19950124-B)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_nbaact95p09RomInfo, md_nbaact95p09RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NBA Action '95 (Prototype, 19950127-A)
-static struct BurnRomInfo md_nbaact95p08RomDesc[] = {
- { "nba action '95 (prototype - jan 27, 1995 - a).bin", 0x1fe190, 0x79c7fb00, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nbaact95p08)
-STD_ROM_FN(md_nbaact95p08)
-
-struct BurnDriver BurnDrvmd_nbaact95p08 = {
- "md_nbaact95p08", "md_nbaact95", NULL, NULL, "1995",
- "NBA Action '95 (Prototype, 19950127-A)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_nbaact95p08RomInfo, md_nbaact95p08RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NBA Action '95 (Prototype, 19950127-B)
-static struct BurnRomInfo md_nbaact95p07RomDesc[] = {
- { "nba action '95 (prototype - jan 27, 1995 - b).bin", 0x1fe190, 0xef7f608b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nbaact95p07)
-STD_ROM_FN(md_nbaact95p07)
-
-struct BurnDriver BurnDrvmd_nbaact95p07 = {
- "md_nbaact95p07", "md_nbaact95", NULL, NULL, "1995",
- "NBA Action '95 (Prototype, 19950127-B)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_nbaact95p07RomInfo, md_nbaact95p07RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NBA Action '95 (Prototype, 19950128-A)
-static struct BurnRomInfo md_nbaact95p06RomDesc[] = {
- { "nba action '95 (prototype - jan 28, 1995 - a).bin", 0x200000, 0x57c2c69c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nbaact95p06)
-STD_ROM_FN(md_nbaact95p06)
-
-struct BurnDriver BurnDrvmd_nbaact95p06 = {
- "md_nbaact95p06", "md_nbaact95", NULL, NULL, "1995",
- "NBA Action '95 (Prototype, 19950128-A)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_nbaact95p06RomInfo, md_nbaact95p06RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NBA Action '95 (Prototype, 19950128)
-static struct BurnRomInfo md_nbaact95p05RomDesc[] = {
- { "nba action '95 (prototype - jan 28, 1995).bin", 0x1fe19e, 0x97d7075d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nbaact95p05)
-STD_ROM_FN(md_nbaact95p05)
-
-struct BurnDriver BurnDrvmd_nbaact95p05 = {
- "md_nbaact95p05", "md_nbaact95", NULL, NULL, "1995",
- "NBA Action '95 (Prototype, 19950128)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_nbaact95p05RomInfo, md_nbaact95p05RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NBA Action '95 (Prototype, 19950130)
-static struct BurnRomInfo md_nbaact95p04RomDesc[] = {
- { "nba action '95 (prototype - jan 30, 1995).bin", 0x200000, 0x2fac80b2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nbaact95p04)
-STD_ROM_FN(md_nbaact95p04)
-
-struct BurnDriver BurnDrvmd_nbaact95p04 = {
- "md_nbaact95p04", "md_nbaact95", NULL, NULL, "1995",
- "NBA Action '95 (Prototype, 19950130)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_nbaact95p04RomInfo, md_nbaact95p04RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NBA Action '95 (Prototype, 19941118)
-static struct BurnRomInfo md_nbaact95p25RomDesc[] = {
- { "nba action '95 (prototype - nov 18, 1994).bin", 0x200000, 0x2d411e4b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nbaact95p25)
-STD_ROM_FN(md_nbaact95p25)
-
-struct BurnDriver BurnDrvmd_nbaact95p25 = {
- "md_nbaact95p25", "md_nbaact95", NULL, NULL, "1994",
- "NBA Action '95 (Prototype, 19941118)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_nbaact95p25RomInfo, md_nbaact95p25RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NBA Action '95 (Prototype, 19941123-A)
-static struct BurnRomInfo md_nbaact95p24RomDesc[] = {
- { "nba action '95 (prototype - nov 23, 1994 - a).bin", 0x200000, 0x4650cfcc, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nbaact95p24)
-STD_ROM_FN(md_nbaact95p24)
-
-struct BurnDriver BurnDrvmd_nbaact95p24 = {
- "md_nbaact95p24", "md_nbaact95", NULL, NULL, "1994",
- "NBA Action '95 (Prototype, 19941123-A)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_nbaact95p24RomInfo, md_nbaact95p24RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NBA All-Star Challenge (Euro, USA)
-static struct BurnRomInfo md_nbaallstRomDesc[] = {
- { "nba all-star challenge (euro, usa).bin", 0x100000, 0xc4674adf, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nbaallst)
-STD_ROM_FN(md_nbaallst)
-
-struct BurnDriver BurnDrvmd_nbaallst = {
- "md_nbaallst", NULL, NULL, NULL, "1992",
- "NBA All-Star Challenge (Euro, USA)\0", NULL, "Flying Edge", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_nbaallstRomInfo, md_nbaallstRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NBA Hang Time (Euro)
-static struct BurnRomInfo md_nbahangRomDesc[] = {
- { "nba hang time (euro).bin", 0x300000, 0xedb4d4aa, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nbahang)
-STD_ROM_FN(md_nbahang)
-
-struct BurnDriver BurnDrvmd_nbahang = {
- "md_nbahang", NULL, NULL, NULL, "1996",
- "NBA Hang Time (Euro)\0", NULL, "Midway", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_nbahangRomInfo, md_nbahangRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NBA Hang Time (USA)
-static struct BurnRomInfo md_nbahanguRomDesc[] = {
- { "nba hang time (usa).bin", 0x300000, 0x176b0338, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nbahangu)
-STD_ROM_FN(md_nbahangu)
-
-struct BurnDriver BurnDrvmd_nbahangu = {
- "md_nbahangu", "md_nbahang", NULL, NULL, "1996",
- "NBA Hang Time (USA)\0", NULL, "Midway", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_nbahanguRomInfo, md_nbahanguRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NBA Jam (Euro, USA, v1.1)
-static struct BurnRomInfo md_nbajamRomDesc[] = {
- { "nba jam (euro, usa) (v1.1).bin", 0x200000, 0xeb8360e6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nbajam)
-STD_ROM_FN(md_nbajam)
-
-struct BurnDriver BurnDrvmd_nbajam = {
- "md_nbajam", NULL, NULL, NULL, "1993",
- "NBA Jam (Euro, USA, v1.1)\0", NULL, "Arena", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_NBA_JAM, GBF_MISC, 0,
- MegadriveGetZipName, md_nbajamRomInfo, md_nbajamRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NBA Jam (Euro, USA)
-static struct BurnRomInfo md_nbajam1RomDesc[] = {
- { "s285_ver_1.00.bin", 0x200000, 0x10fa248f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nbajam1)
-STD_ROM_FN(md_nbajam1)
-
-struct BurnDriver BurnDrvmd_nbajam1 = {
- "md_nbajam1", "md_nbajam", NULL, NULL, "1993",
- "NBA Jam (Euro, USA)\0", NULL, "Arena", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_NBA_JAM, GBF_MISC, 0,
- MegadriveGetZipName, md_nbajam1RomInfo, md_nbajam1RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NBA Jam (Jpn)
-static struct BurnRomInfo md_nbajamjRomDesc[] = {
- { "nba jam (jpn).bin", 0x200000, 0xa6c6305a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nbajamj)
-STD_ROM_FN(md_nbajamj)
-
-struct BurnDriver BurnDrvmd_nbajamj = {
- "md_nbajamj", "md_nbajam", NULL, NULL, "1994",
- "NBA Jam (Jpn)\0", NULL, "Acclaim Japan", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_NBA_JAM, GBF_MISC, 0,
- MegadriveGetZipName, md_nbajamjRomInfo, md_nbajamjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NBA Jam (Jpn, Prototype)
-static struct BurnRomInfo md_nbajamjpRomDesc[] = {
- { "jamod0.ic1", 0x080000, 0x8506240d, BRF_PRG | SEGA_MD_ROM_LOAD16_BYTE | SEGA_MD_ROM_OFFS_000000 },
- { "jamev0.ic2", 0x080000, 0x2e597f94, BRF_PRG | SEGA_MD_ROM_LOAD16_BYTE | SEGA_MD_ROM_OFFS_000001 },
- { "jamod1.ic3", 0x080000, 0x762c4fac, BRF_PRG | SEGA_MD_ROM_LOAD16_BYTE | SEGA_MD_ROM_OFFS_100000 },
- { "jamev1.ic4", 0x080000, 0x8735b9f6, BRF_PRG | SEGA_MD_ROM_LOAD16_BYTE | SEGA_MD_ROM_OFFS_100001 },
-};
-
-STD_ROM_PICK(md_nbajamjp)
-STD_ROM_FN(md_nbajamjp)
-
-struct BurnDriver BurnDrvmd_nbajamjp = {
- "md_nbajamjp", "md_nbajam", NULL, NULL, "1994",
- "NBA Jam (Jpn, Prototype)\0", NULL, "Acclaim Japan", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_NBA_JAM, GBF_MISC, 0,
- MegadriveGetZipName, md_nbajamjpRomInfo, md_nbajamjpRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NBA Jam Tournament Edition (World)
-static struct BurnRomInfo md_nbajamteRomDesc[] = {
- { "nba jam tournament edition (world).bin", 0x300000, 0xe9ffcb37, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nbajamte)
-STD_ROM_FN(md_nbajamte)
-
-struct BurnDriver BurnDrvmd_nbajamte = {
- "md_nbajamte", NULL, NULL, NULL, "1995",
- "NBA Jam Tournament Edition (World)\0", NULL, "Acclaim Entertainment", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_NBA_JAM_TE, GBF_MISC, 0,
- MegadriveGetZipName, md_nbajamteRomInfo, md_nbajamteRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NBA Jam Tournament Edition (World, 2002 Fix Release)
-static struct BurnRomInfo md_nbajamtefRomDesc[] = {
- { "nba jam tournament edition (world) (fixed).bin", 0x300000, 0x6e25ebf0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nbajamtef)
-STD_ROM_FN(md_nbajamtef)
-
-struct BurnDriver BurnDrvmd_nbajamtef = {
- "md_nbajamtef", "md_nbajamte", NULL, NULL, "2002?",
- "NBA Jam Tournament Edition (World, 2002 Fix Release)\0", NULL, "Acclaim Entertainment", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_NBA_JAM_TE, GBF_MISC, 0,
- MegadriveGetZipName, md_nbajamtefRomInfo, md_nbajamtefRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NBA Live 95 (Euro, USA)
-static struct BurnRomInfo md_nbaliv95RomDesc[] = {
- { "nba live 95 (euro, usa).bin", 0x200000, 0x66018abc, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nbaliv95)
-STD_ROM_FN(md_nbaliv95)
-
-struct BurnDriver BurnDrvmd_nbaliv95 = {
- "md_nbaliv95", NULL, NULL, NULL, "1994",
- "NBA Live 95 (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_nbaliv95RomInfo, md_nbaliv95RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NBA Live 95 (Kor)
-static struct BurnRomInfo md_nbaliv95kRomDesc[] = {
- { "lh5370hc.bin", 0x200000, 0x779c1244, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nbaliv95k)
-STD_ROM_FN(md_nbaliv95k)
-
-struct BurnDriver BurnDrvmd_nbaliv95k = {
- "md_nbaliv95k", "md_nbaliv95", NULL, NULL, "1994",
- "NBA Live 95 (Kor)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_nbaliv95kRomInfo, md_nbaliv95kRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NBA Live 96 (Euro, USA)
-static struct BurnRomInfo md_nbaliv96RomDesc[] = {
- { "nba live 96 (euro, usa).bin", 0x200000, 0x49de0062, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nbaliv96)
-STD_ROM_FN(md_nbaliv96)
-
-struct BurnDriver BurnDrvmd_nbaliv96 = {
- "md_nbaliv96", NULL, NULL, NULL, "1995",
- "NBA Live 96 (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_nbaliv96RomInfo, md_nbaliv96RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NBA Live 97 (Euro, USA)
-static struct BurnRomInfo md_nbaliv97RomDesc[] = {
- { "nba live 97 (euro, usa).bin", 0x200000, 0x7024843a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nbaliv97)
-STD_ROM_FN(md_nbaliv97)
-
-struct BurnDriver BurnDrvmd_nbaliv97 = {
- "md_nbaliv97", NULL, NULL, NULL, "1996",
- "NBA Live 97 (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_nbaliv97RomInfo, md_nbaliv97RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NBA Live 98 (USA)
-static struct BurnRomInfo md_nbaliv98RomDesc[] = {
- { "nba live 98 (usa).bin", 0x200000, 0x23473a8a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nbaliv98)
-STD_ROM_FN(md_nbaliv98)
-
-struct BurnDriver BurnDrvmd_nbaliv98 = {
- "md_nbaliv98", NULL, NULL, NULL, "1997",
- "NBA Live 98 (USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_nbaliv98RomInfo, md_nbaliv98RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NBA Playoffs - Bulls Vs Blazers (Jpn)
-static struct BurnRomInfo md_bullvsbljRomDesc[] = {
- { "nba playoffs - bulls vs blazers (jpn).bin", 0x100000, 0xeae8c000, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_bullvsblj)
-STD_ROM_FN(md_bullvsblj)
-
-struct BurnDriver BurnDrvmd_bullvsblj = {
- "md_bullvsblj", "md_bullvsbl", NULL, NULL, "1993",
- "NBA Playoffs - Bulls Vs Blazers (Jpn)\0", NULL, "Electronic Arts Victor", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_bullvsbljRomInfo, md_bullvsbljRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NBA Playoffs - Bulls Vs Blazers (Jpn, Alt)
-static struct BurnRomInfo md_bullvsblj1RomDesc[] = {
- { "nba playoffs - bulls vs blazers (jpn) (alt).bin", 0x100000, 0x4565ce1f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_bullvsblj1)
-STD_ROM_FN(md_bullvsblj1)
-
-struct BurnDriver BurnDrvmd_bullvsblj1 = {
- "md_bullvsblj1", "md_bullvsbl", NULL, NULL, "1993",
- "NBA Playoffs - Bulls Vs Blazers (Jpn, Alt)\0", NULL, "Electronic Arts Victor", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_bullvsblj1RomInfo, md_bullvsblj1RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NBA Pro Basketball - Bulls Vs Lakers (Jpn)
-static struct BurnRomInfo md_bullvslajRomDesc[] = {
- { "nba pro basketball - bulls vs lakers (jpn).bin", 0x100000, 0x4416ce39, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_bullvslaj)
-STD_ROM_FN(md_bullvslaj)
-
-struct BurnDriver BurnDrvmd_bullvslaj = {
- "md_bullvslaj", "md_bullvsla", NULL, NULL, "1993",
- "NBA Pro Basketball - Bulls Vs Lakers (Jpn)\0", NULL, "Electronic Arts Victor", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_bullvslajRomInfo, md_bullvslajRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NBA Pro Basketball '94 (Jpn)
-static struct BurnRomInfo md_nbapro94RomDesc[] = {
- { "nba pro basketball '94 (jpn).bin", 0x200000, 0xeea19bce, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nbapro94)
-STD_ROM_FN(md_nbapro94)
-
-struct BurnDriver BurnDrvmd_nbapro94 = {
- "md_nbapro94", NULL, NULL, NULL, "1994",
- "NBA Pro Basketball '94 (Jpn)\0", NULL, "Electronic Arts Victor", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_nbapro94RomInfo, md_nbapro94RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NBA Showdown '94 (Euro, USA)
-static struct BurnRomInfo md_nbashowRomDesc[] = {
- { "nba showdown '94 (euro, usa).bin", 0x200000, 0x160b7090, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nbashow)
-STD_ROM_FN(md_nbashow)
-
-struct BurnDriver BurnDrvmd_nbashow = {
- "md_nbashow", NULL, NULL, NULL, "1994",
- "NBA Showdown '94 (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_nbashowRomInfo, md_nbashowRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NBA Showdown '94 (USA, Prototype, Hacked)
-static struct BurnRomInfo md_nbashowpRomDesc[] = {
- { "nba showdown '94 (usa) (beta).bin", 0x200000, 0x6643a308, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nbashowp)
-STD_ROM_FN(md_nbashowp)
-
-struct BurnDriver BurnDrvmd_nbashowp = {
- "md_nbashowp", "md_nbashow", NULL, NULL, "1994",
- "NBA Showdown '94 (USA, Prototype, Hacked)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_nbashowpRomInfo, md_nbashowpRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NCAA Final Four Basketball (USA)
-static struct BurnRomInfo md_ncaabaskRomDesc[] = {
- { "ncaa final four basketball (usa).bin", 0x180000, 0xed0c1303, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ncaabask)
-STD_ROM_FN(md_ncaabask)
-
-struct BurnDriver BurnDrvmd_ncaabask = {
- "md_ncaabask", NULL, NULL, NULL, "1994",
- "NCAA Final Four Basketball (USA)\0", NULL, "Mindscape", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_ncaabaskRomInfo, md_ncaabaskRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NCAA Football (USA)
-static struct BurnRomInfo md_ncaafootRomDesc[] = {
- { "ncaa football (usa).bin", 0x100000, 0x081012f0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ncaafoot)
-STD_ROM_FN(md_ncaafoot)
-
-struct BurnDriver BurnDrvmd_ncaafoot = {
- "md_ncaafoot", NULL, NULL, NULL, "1994",
- "NCAA Football (USA)\0", NULL, "Mindscape", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_ncaafootRomInfo, md_ncaafootRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Nekketsu Koukou Dodgeball Bu - Soccer Hen MD (Jpn)
-static struct BurnRomInfo md_neksoccrRomDesc[] = {
- { "nekketsu koukou dodgeball bu - soccer hen md (jpn).bin", 0x080000, 0xf49c3a86, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_neksoccr)
-STD_ROM_FN(md_neksoccr)
-
-struct BurnDriver BurnDrvmd_neksoccr = {
- "md_neksoccr", NULL, NULL, NULL, "1992",
- "Nekketsu Koukou Dodgeball Bu - Soccer Hen MD (Jpn)\0", NULL, "Palsoft", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_neksoccrRomInfo, md_neksoccrRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// New 3D Golf Simulation - Devil's Course (Jpn)
-static struct BurnRomInfo md_n3dgdeviRomDesc[] = {
- { "new 3d golf simulation devil's course (jpn).bin", 0x180000, 0xbd090c67, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_n3dgdevi)
-STD_ROM_FN(md_n3dgdevi)
-
-struct BurnDriver BurnDrvmd_n3dgdevi = {
- "md_n3dgdevi", NULL, NULL, NULL, "1994",
- "New 3D Golf Simulation - Devil's Course (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_n3dgdeviRomInfo, md_n3dgdeviRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// New 3D Golf Simulation - Harukanaru Augusta (Jpn)
-static struct BurnRomInfo md_n3dgauguRomDesc[] = {
- { "mpr-16076.bin", 0x180000, 0xd2a9bf92, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_n3dgaugu)
-STD_ROM_FN(md_n3dgaugu)
-
-struct BurnDriver BurnDrvmd_n3dgaugu = {
- "md_n3dgaugu", NULL, NULL, NULL, "1993",
- "New 3D Golf Simulation - Harukanaru Augusta (Jpn)\0", NULL, "T & E Soft", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_n3dgauguRomInfo, md_n3dgauguRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// New 3D Golf Simulation - Waialae no Kiseki (Jpn)
-static struct BurnRomInfo md_n3dgwaiaRomDesc[] = {
- { "new 3d golf simulation waialae no kiseki (jpn).bin", 0x180000, 0xcbe2c1f6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_n3dgwaia)
-STD_ROM_FN(md_n3dgwaia)
-
-struct BurnDriver BurnDrvmd_n3dgwaia = {
- "md_n3dgwaia", NULL, NULL, NULL, "1994",
- "New 3D Golf Simulation - Waialae no Kiseki (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_n3dgwaiaRomInfo, md_n3dgwaiaRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NFL '95 (Euro, USA)
-static struct BurnRomInfo md_nfl95RomDesc[] = {
- { "nfl '95 (euro, usa).bin", 0x200000, 0xb58e4a81, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nfl95)
-STD_ROM_FN(md_nfl95)
-
-struct BurnDriver BurnDrvmd_nfl95 = {
- "md_nfl95", NULL, NULL, NULL, "1994",
- "NFL '95 (Euro, USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_nfl95RomInfo, md_nfl95RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NFL '95 (Prototype, 19940801)
-static struct BurnRomInfo md_nfl95p21RomDesc[] = {
- { "nfl '95 (prototype - aug 01, 1994).bin", 0x200000, 0x5a57ea4e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nfl95p21)
-STD_ROM_FN(md_nfl95p21)
-
-struct BurnDriver BurnDrvmd_nfl95p21 = {
- "md_nfl95p21", "md_nfl95", NULL, NULL, "1994",
- "NFL '95 (Prototype, 19940801)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_nfl95p21RomInfo, md_nfl95p21RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NFL '95 (Prototype, 19940805)
-static struct BurnRomInfo md_nfl95p20RomDesc[] = {
- { "nfl '95 (prototype - aug 05, 1994).bin", 0x200000, 0x88d51773, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nfl95p20)
-STD_ROM_FN(md_nfl95p20)
-
-struct BurnDriver BurnDrvmd_nfl95p20 = {
- "md_nfl95p20", "md_nfl95", NULL, NULL, "1994",
- "NFL '95 (Prototype, 19940805)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_nfl95p20RomInfo, md_nfl95p20RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NFL '95 (Prototype, 19940810)
-static struct BurnRomInfo md_nfl95p19RomDesc[] = {
- { "nfl '95 (prototype - aug 10, 1994).bin", 0x200000, 0xa3c5710b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nfl95p19)
-STD_ROM_FN(md_nfl95p19)
-
-struct BurnDriver BurnDrvmd_nfl95p19 = {
- "md_nfl95p19", "md_nfl95", NULL, NULL, "1994",
- "NFL '95 (Prototype, 19940810)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_nfl95p19RomInfo, md_nfl95p19RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NFL '95 (Prototype, 19940812)
-static struct BurnRomInfo md_nfl95p18RomDesc[] = {
- { "nfl '95 (prototype - aug 12, 1994).bin", 0x200000, 0x3d23633b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nfl95p18)
-STD_ROM_FN(md_nfl95p18)
-
-struct BurnDriver BurnDrvmd_nfl95p18 = {
- "md_nfl95p18", "md_nfl95", NULL, NULL, "1994",
- "NFL '95 (Prototype, 19940812)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_nfl95p18RomInfo, md_nfl95p18RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NFL '95 (Prototype, 19940812, Alt)
-static struct BurnRomInfo md_nfl95p17RomDesc[] = {
- { "nfl '95 (prototype - aug 12, 1994 - b).bin", 0x200000, 0xcc86a259, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nfl95p17)
-STD_ROM_FN(md_nfl95p17)
-
-struct BurnDriver BurnDrvmd_nfl95p17 = {
- "md_nfl95p17", "md_nfl95", NULL, NULL, "1994",
- "NFL '95 (Prototype, 19940812, Alt)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_nfl95p17RomInfo, md_nfl95p17RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NFL '95 (Prototype, 19940817-B)
-static struct BurnRomInfo md_nfl95p16RomDesc[] = {
- { "nfl '95 (prototype - aug 17, 1994 - b).bin", 0x200000, 0xa6015c29, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nfl95p16)
-STD_ROM_FN(md_nfl95p16)
-
-struct BurnDriver BurnDrvmd_nfl95p16 = {
- "md_nfl95p16", "md_nfl95", NULL, NULL, "1994",
- "NFL '95 (Prototype, 19940817-B)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_nfl95p16RomInfo, md_nfl95p16RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NFL '95 (Prototype, 19940817)
-static struct BurnRomInfo md_nfl95p15RomDesc[] = {
- { "nfl '95 (prototype - aug 17, 1994).bin", 0x200000, 0x655966c8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nfl95p15)
-STD_ROM_FN(md_nfl95p15)
-
-struct BurnDriver BurnDrvmd_nfl95p15 = {
- "md_nfl95p15", "md_nfl95", NULL, NULL, "1994",
- "NFL '95 (Prototype, 19940817)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_nfl95p15RomInfo, md_nfl95p15RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NFL '95 (Prototype, 19940822)
-static struct BurnRomInfo md_nfl95p14RomDesc[] = {
- { "nfl '95 (prototype - aug 22, 1994).bin", 0x200000, 0xb01434e5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nfl95p14)
-STD_ROM_FN(md_nfl95p14)
-
-struct BurnDriver BurnDrvmd_nfl95p14 = {
- "md_nfl95p14", "md_nfl95", NULL, NULL, "1994",
- "NFL '95 (Prototype, 19940822)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_nfl95p14RomInfo, md_nfl95p14RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NFL '95 (Prototype, 19940830)
-static struct BurnRomInfo md_nfl95p13RomDesc[] = {
- { "nfl '95 (prototype - aug 30, 1994).bin", 0x200000, 0xd0e0a436, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nfl95p13)
-STD_ROM_FN(md_nfl95p13)
-
-struct BurnDriver BurnDrvmd_nfl95p13 = {
- "md_nfl95p13", "md_nfl95", NULL, NULL, "1994",
- "NFL '95 (Prototype, 19940830)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_nfl95p13RomInfo, md_nfl95p13RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NFL '95 (Prototype, 19940831)
-static struct BurnRomInfo md_nfl95p12RomDesc[] = {
- { "nfl '95 (prototype - aug 31, 1994).bin", 0x200000, 0xc360521e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nfl95p12)
-STD_ROM_FN(md_nfl95p12)
-
-struct BurnDriver BurnDrvmd_nfl95p12 = {
- "md_nfl95p12", "md_nfl95", NULL, NULL, "1994",
- "NFL '95 (Prototype, 19940831)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_nfl95p12RomInfo, md_nfl95p12RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NFL '95 (Prototype, 19940901)
-static struct BurnRomInfo md_nfl95p11RomDesc[] = {
- { "nfl '95 (prototype - sep 01, 1994).bin", 0x200000, 0x9240fcaa, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nfl95p11)
-STD_ROM_FN(md_nfl95p11)
-
-struct BurnDriver BurnDrvmd_nfl95p11 = {
- "md_nfl95p11", "md_nfl95", NULL, NULL, "1994",
- "NFL '95 (Prototype, 19940901)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_nfl95p11RomInfo, md_nfl95p11RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NFL '95 (Prototype, 19940902)
-static struct BurnRomInfo md_nfl95p10RomDesc[] = {
- { "nfl '95 (prototype - sep 02, 1994).bin", 0x200000, 0xff049a49, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nfl95p10)
-STD_ROM_FN(md_nfl95p10)
-
-struct BurnDriver BurnDrvmd_nfl95p10 = {
- "md_nfl95p10", "md_nfl95", NULL, NULL, "1994",
- "NFL '95 (Prototype, 19940902)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_nfl95p10RomInfo, md_nfl95p10RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NFL '95 (Prototype, 19940904)
-static struct BurnRomInfo md_nfl95p09RomDesc[] = {
- { "nfl '95 (prototype - sep 04, 1994).bin", 0x200000, 0x60604d40, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nfl95p09)
-STD_ROM_FN(md_nfl95p09)
-
-struct BurnDriver BurnDrvmd_nfl95p09 = {
- "md_nfl95p09", "md_nfl95", NULL, NULL, "1994",
- "NFL '95 (Prototype, 19940904)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_nfl95p09RomInfo, md_nfl95p09RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NFL '95 (Prototype, 19940905-B)
-static struct BurnRomInfo md_nfl95p08RomDesc[] = {
- { "nfl '95 (prototype - sep 05, 1994 - b).bin", 0x200000, 0x123985a5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nfl95p08)
-STD_ROM_FN(md_nfl95p08)
-
-struct BurnDriver BurnDrvmd_nfl95p08 = {
- "md_nfl95p08", "md_nfl95", NULL, NULL, "1994",
- "NFL '95 (Prototype, 19940905-B)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_nfl95p08RomInfo, md_nfl95p08RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NFL '95 (Prototype, 19940905)
-static struct BurnRomInfo md_nfl95p07RomDesc[] = {
- { "nfl '95 (prototype - sep 05, 1994).bin", 0x200000, 0xdbdf61ac, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nfl95p07)
-STD_ROM_FN(md_nfl95p07)
-
-struct BurnDriver BurnDrvmd_nfl95p07 = {
- "md_nfl95p07", "md_nfl95", NULL, NULL, "1994",
- "NFL '95 (Prototype, 19940905)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_nfl95p07RomInfo, md_nfl95p07RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NFL '95 (Prototype, 19940906)
-static struct BurnRomInfo md_nfl95p06RomDesc[] = {
- { "nfl '95 (prototype - sep 06, 1994).bin", 0x200000, 0x624b8699, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nfl95p06)
-STD_ROM_FN(md_nfl95p06)
-
-struct BurnDriver BurnDrvmd_nfl95p06 = {
- "md_nfl95p06", "md_nfl95", NULL, NULL, "1994",
- "NFL '95 (Prototype, 19940906)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_nfl95p06RomInfo, md_nfl95p06RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NFL '95 (Prototype, 19940907)
-static struct BurnRomInfo md_nfl95p05RomDesc[] = {
- { "nfl '95 (prototype - sep 07, 1994).bin", 0x200000, 0xae8aa4be, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nfl95p05)
-STD_ROM_FN(md_nfl95p05)
-
-struct BurnDriver BurnDrvmd_nfl95p05 = {
- "md_nfl95p05", "md_nfl95", NULL, NULL, "1994",
- "NFL '95 (Prototype, 19940907)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_nfl95p05RomInfo, md_nfl95p05RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NFL '95 (Prototype, 19940908)
-static struct BurnRomInfo md_nfl95p04RomDesc[] = {
- { "nfl '95 (prototype - sep 08, 1994).bin", 0x200000, 0x22c5e289, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nfl95p04)
-STD_ROM_FN(md_nfl95p04)
-
-struct BurnDriver BurnDrvmd_nfl95p04 = {
- "md_nfl95p04", "md_nfl95", NULL, NULL, "1994",
- "NFL '95 (Prototype, 19940908)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_nfl95p04RomInfo, md_nfl95p04RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NFL '95 (Prototype, 19940909)
-static struct BurnRomInfo md_nfl95p03RomDesc[] = {
- { "nfl '95 (prototype - sep 09, 1994).bin", 0x200000, 0x55df1066, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nfl95p03)
-STD_ROM_FN(md_nfl95p03)
-
-struct BurnDriver BurnDrvmd_nfl95p03 = {
- "md_nfl95p03", "md_nfl95", NULL, NULL, "1994",
- "NFL '95 (Prototype, 19940909)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_nfl95p03RomInfo, md_nfl95p03RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NFL '95 (Prototype, 19940911-B)
-static struct BurnRomInfo md_nfl95p02RomDesc[] = {
- { "nfl '95 (prototype - sep 11, 1994 - b).bin", 0x200000, 0x111ac6a0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nfl95p02)
-STD_ROM_FN(md_nfl95p02)
-
-struct BurnDriver BurnDrvmd_nfl95p02 = {
- "md_nfl95p02", "md_nfl95", NULL, NULL, "1994",
- "NFL '95 (Prototype, 19940911-B)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_nfl95p02RomInfo, md_nfl95p02RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NFL '95 (Prototype, 19940911)
-static struct BurnRomInfo md_nfl95p01RomDesc[] = {
- { "nfl '95 (prototype - sep 11, 1994).bin", 0x200000, 0x21614c4f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nfl95p01)
-STD_ROM_FN(md_nfl95p01)
-
-struct BurnDriver BurnDrvmd_nfl95p01 = {
- "md_nfl95p01", "md_nfl95", NULL, NULL, "1994",
- "NFL '95 (Prototype, 19940911)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_nfl95p01RomInfo, md_nfl95p01RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NFL 98 (USA)
-static struct BurnRomInfo md_nfl98RomDesc[] = {
- { "nfl 98 (usa).bin", 0x200000, 0xf73ec54c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nfl98)
-STD_ROM_FN(md_nfl98)
-
-struct BurnDriver BurnDrvmd_nfl98 = {
- "md_nfl98", NULL, NULL, NULL, "1997",
- "NFL 98 (USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_nfl98RomInfo, md_nfl98RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NFL Football '94 Starring Joe Montana (USA)
-static struct BurnRomInfo md_nfl94RomDesc[] = {
- { "nfl football '94 starring joe montana (usa).bin", 0x200000, 0x0d486ed5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nfl94)
-STD_ROM_FN(md_nfl94)
-
-struct BurnDriver BurnDrvmd_nfl94 = {
- "md_nfl94", NULL, NULL, NULL, "1993",
- "NFL Football '94 Starring Joe Montana (USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_nfl94RomInfo, md_nfl94RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NFL Football '94 Starring Joe Montana (Jpn)
-static struct BurnRomInfo md_nfl94jRomDesc[] = {
- { "nfl football '94 (jpn).bin", 0x200000, 0xe490dc4a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nfl94j)
-STD_ROM_FN(md_nfl94j)
-
-struct BurnDriver BurnDrvmd_nfl94j = {
- "md_nfl94j", "md_nfl94", NULL, NULL, "1994",
- "NFL Football '94 Starring Joe Montana (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_nfl94jRomInfo, md_nfl94jRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NFL Quarterback Club (World)
-static struct BurnRomInfo md_nflqbRomDesc[] = {
- { "nfl quarterback club (world).bin", 0x300000, 0x94542eaf, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nflqb)
-STD_ROM_FN(md_nflqb)
-
-struct BurnDriver BurnDrvmd_nflqb = {
- "md_nflqb", NULL, NULL, NULL, "1994",
- "NFL Quarterback Club (World)\0", NULL, "Acclaim Entertainment", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_NBA_JAM_TE, GBF_MISC, 0,
- MegadriveGetZipName, md_nflqbRomInfo, md_nflqbRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NFL Quarterback Club 96 (Euro, USA)
-static struct BurnRomInfo md_nflqb96RomDesc[] = {
- { "nfl quarterback club 96 (euro, usa).bin", 0x400000, 0xd5a37cab, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nflqb96)
-STD_ROM_FN(md_nflqb96)
-
-struct BurnDriver BurnDrvmd_nflqb96 = {
- "md_nflqb96", NULL, NULL, NULL, "1996",
- "NFL Quarterback Club 96 (Euro, USA)\0", NULL, "Acclaim Entertainment", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_NFL_QB_96, GBF_MISC, 0,
- MegadriveGetZipName, md_nflqb96RomInfo, md_nflqb96RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NFL Sports Talk Football '93 Starring Joe Montana (Euro, USA)
-static struct BurnRomInfo md_nflsportRomDesc[] = {
- { "mpr-15005+mpr-15006.bin", 0x180000, 0xce0b1fe1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nflsport)
-STD_ROM_FN(md_nflsport)
-
-struct BurnDriver BurnDrvmd_nflsport = {
- "md_nflsport", NULL, NULL, NULL, "1992",
- "NFL Sports Talk Football '93 Starring Joe Montana (Euro, USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_nflsportRomInfo, md_nflsportRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NHK Taiga Drama - Taiheiki (Jpn)
-static struct BurnRomInfo md_nhktaidrRomDesc[] = {
- { "nhk taiga drama - taiheiki (jpn).bin", 0x100000, 0x09fbb30e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nhktaidr)
-STD_ROM_FN(md_nhktaidr)
-
-struct BurnDriver BurnDrvmd_nhktaidr = {
- "md_nhktaidr", NULL, NULL, NULL, "1991",
- "NHK Taiga Drama - Taiheiki (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_nhktaidrRomInfo, md_nhktaidrRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NHL 95 (Euro, USA)
-static struct BurnRomInfo md_nhl95RomDesc[] = {
- { "nhl 95 (euro, usa).bin", 0x200000, 0xe8ee917e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nhl95)
-STD_ROM_FN(md_nhl95)
-
-struct BurnDriver BurnDrvmd_nhl95 = {
- "md_nhl95", NULL, NULL, NULL, "1995",
- "NHL 95 (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_nhl95RomInfo, md_nhl95RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NHL 96 (Euro, USA)
-static struct BurnRomInfo md_nhl96RomDesc[] = {
- { "nhl 96 (euro, usa).bin", 0x200000, 0x8135702c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nhl96)
-STD_ROM_FN(md_nhl96)
-
-struct BurnDriver BurnDrvmd_nhl96 = {
- "md_nhl96", NULL, NULL, NULL, "1995",
- "NHL 96 (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_nhl96RomInfo, md_nhl96RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NHL 97 (Euro, USA)
-static struct BurnRomInfo md_nhl97RomDesc[] = {
- { "nhl 97 (euro, usa).bin", 0x200000, 0xf067c103, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nhl97)
-STD_ROM_FN(md_nhl97)
-
-struct BurnDriver BurnDrvmd_nhl97 = {
- "md_nhl97", NULL, NULL, NULL, "1996",
- "NHL 97 (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_nhl97RomInfo, md_nhl97RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NHL 98 (USA)
-static struct BurnRomInfo md_nhl98RomDesc[] = {
- { "nhl 98 (usa).bin", 0x200000, 0x7b64cd98, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nhl98)
-STD_ROM_FN(md_nhl98)
-
-struct BurnDriver BurnDrvmd_nhl98 = {
- "md_nhl98", NULL, NULL, NULL, "1997",
- "NHL 98 (USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_nhl98RomInfo, md_nhl98RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NHL All-Star Hockey '95 (USA)
-static struct BurnRomInfo md_nhlasRomDesc[] = {
- { "nhl all-star hockey '95 (usa).bin", 0x200000, 0xe6c0218b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nhlas)
-STD_ROM_FN(md_nhlas)
-
-struct BurnDriver BurnDrvmd_nhlas = {
- "md_nhlas", NULL, NULL, NULL, "1995",
- "NHL All-Star Hockey '95 (USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_nhlasRomInfo, md_nhlasRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NHL All-Star Hockey '95 (Prototype, 19941201-B)
-static struct BurnRomInfo md_nhlasp03RomDesc[] = {
- { "nhl all-star hockey '95 (prototype - dec 01, 1994 - b).bin", 0x1ffffa, 0xc209d720, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nhlasp03)
-STD_ROM_FN(md_nhlasp03)
-
-struct BurnDriver BurnDrvmd_nhlasp03 = {
- "md_nhlasp03", "md_nhlas", NULL, NULL, "1994",
- "NHL All-Star Hockey '95 (Prototype, 19941201-B)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_nhlasp03RomInfo, md_nhlasp03RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NHL All-Star Hockey '95 (Prototype, 19941201)
-static struct BurnRomInfo md_nhlasp02RomDesc[] = {
- { "nhl all-star hockey '95 (prototype - dec 01, 1994).bin", 0x1ffffa, 0x112e4cb3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nhlasp02)
-STD_ROM_FN(md_nhlasp02)
-
-struct BurnDriver BurnDrvmd_nhlasp02 = {
- "md_nhlasp02", "md_nhlas", NULL, NULL, "1994",
- "NHL All-Star Hockey '95 (Prototype, 19941201)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_nhlasp02RomInfo, md_nhlasp02RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NHL All-Star Hockey '95 (Prototype, 19941202)
-static struct BurnRomInfo md_nhlasp01RomDesc[] = {
- { "nhl all-star hockey '95 (prototype - dec 02, 1994).bin", 0x1ffffa, 0x01d6a6c7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nhlasp01)
-STD_ROM_FN(md_nhlasp01)
-
-struct BurnDriver BurnDrvmd_nhlasp01 = {
- "md_nhlasp01", "md_nhlas", NULL, NULL, "1994",
- "NHL All-Star Hockey '95 (Prototype, 19941202)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_nhlasp01RomInfo, md_nhlasp01RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NHL All-Star Hockey '95 (Prototype, 19941107)
-static struct BurnRomInfo md_nhlasp12RomDesc[] = {
- { "nhl all-star hockey '95 (prototype - nov 07, 1994).bin", 0x200000, 0xe8f2c88f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nhlasp12)
-STD_ROM_FN(md_nhlasp12)
-
-struct BurnDriver BurnDrvmd_nhlasp12 = {
- "md_nhlasp12", "md_nhlas", NULL, NULL, "1994",
- "NHL All-Star Hockey '95 (Prototype, 19941107)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_nhlasp12RomInfo, md_nhlasp12RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NHL All-Star Hockey '95 (Prototype, 19941109)
-static struct BurnRomInfo md_nhlasp11RomDesc[] = {
- { "nhl all-star hockey '95 (prototype - nov 09, 1994).bin", 0x1ffff9, 0x82624073, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nhlasp11)
-STD_ROM_FN(md_nhlasp11)
-
-struct BurnDriver BurnDrvmd_nhlasp11 = {
- "md_nhlasp11", "md_nhlas", NULL, NULL, "1994",
- "NHL All-Star Hockey '95 (Prototype, 19941109)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_nhlasp11RomInfo, md_nhlasp11RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NHL All-Star Hockey '95 (Prototype, 19941119)
-static struct BurnRomInfo md_nhlasp10RomDesc[] = {
- { "nhl all-star hockey '95 (prototype - nov 19, 1994).bin", 0x200000, 0xcd0f588a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nhlasp10)
-STD_ROM_FN(md_nhlasp10)
-
-struct BurnDriver BurnDrvmd_nhlasp10 = {
- "md_nhlasp10", "md_nhlas", NULL, NULL, "1994",
- "NHL All-Star Hockey '95 (Prototype, 19941119)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_nhlasp10RomInfo, md_nhlasp10RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NHL All-Star Hockey '95 (Prototype, 19941121)
-static struct BurnRomInfo md_nhlasp09RomDesc[] = {
- { "nhl all-star hockey '95 (prototype - nov 21, 1994).bin", 0x200000, 0xcfe4059d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nhlasp09)
-STD_ROM_FN(md_nhlasp09)
-
-struct BurnDriver BurnDrvmd_nhlasp09 = {
- "md_nhlasp09", "md_nhlas", NULL, NULL, "1994",
- "NHL All-Star Hockey '95 (Prototype, 19941121)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_nhlasp09RomInfo, md_nhlasp09RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NHL All-Star Hockey '95 (Prototype, 19941122)
-static struct BurnRomInfo md_nhlasp08RomDesc[] = {
- { "nhl all-star hockey '95 (prototype - nov 22, 1994).bin", 0x1ffffa, 0x81d30fe6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nhlasp08)
-STD_ROM_FN(md_nhlasp08)
-
-struct BurnDriver BurnDrvmd_nhlasp08 = {
- "md_nhlasp08", "md_nhlas", NULL, NULL, "1994",
- "NHL All-Star Hockey '95 (Prototype, 19941122)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_nhlasp08RomInfo, md_nhlasp08RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NHL All-Star Hockey '95 (Prototype, 19941123)
-static struct BurnRomInfo md_nhlasp07RomDesc[] = {
- { "nhl all-star hockey '95 (prototype - nov 23, 1994).bin", 0x1ffffa, 0x88d4fc38, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nhlasp07)
-STD_ROM_FN(md_nhlasp07)
-
-struct BurnDriver BurnDrvmd_nhlasp07 = {
- "md_nhlasp07", "md_nhlas", NULL, NULL, "1994",
- "NHL All-Star Hockey '95 (Prototype, 19941123)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_nhlasp07RomInfo, md_nhlasp07RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NHL All-Star Hockey '95 (Prototype, 19941127)
-static struct BurnRomInfo md_nhlasp06RomDesc[] = {
- { "nhl all-star hockey '95 (prototype - nov 27, 1994).bin", 0x1ffffa, 0x658ffe52, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nhlasp06)
-STD_ROM_FN(md_nhlasp06)
-
-struct BurnDriver BurnDrvmd_nhlasp06 = {
- "md_nhlasp06", "md_nhlas", NULL, NULL, "1994",
- "NHL All-Star Hockey '95 (Prototype, 19941127)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_nhlasp06RomInfo, md_nhlasp06RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NHL All-Star Hockey '95 (Prototype, 19941128)
-static struct BurnRomInfo md_nhlasp05RomDesc[] = {
- { "nhl all-star hockey '95 (prototype - nov 28, 1994).bin", 0x1ffffa, 0x51ad0056, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nhlasp05)
-STD_ROM_FN(md_nhlasp05)
-
-struct BurnDriver BurnDrvmd_nhlasp05 = {
- "md_nhlasp05", "md_nhlas", NULL, NULL, "1994",
- "NHL All-Star Hockey '95 (Prototype, 19941128)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_nhlasp05RomInfo, md_nhlasp05RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NHL All-Star Hockey '95 (Prototype, 19941129)
-static struct BurnRomInfo md_nhlasp04RomDesc[] = {
- { "nhl all-star hockey '95 (prototype - nov 29, 1994).bin", 0x1ffffa, 0xa060a60b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nhlasp04)
-STD_ROM_FN(md_nhlasp04)
-
-struct BurnDriver BurnDrvmd_nhlasp04 = {
- "md_nhlasp04", "md_nhlas", NULL, NULL, "1994",
- "NHL All-Star Hockey '95 (Prototype, 19941129)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_nhlasp04RomInfo, md_nhlasp04RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NHL All-Star Hockey '95 (Prototype, 19941001)
-static struct BurnRomInfo md_nhlasp14RomDesc[] = {
- { "nhl all-star hockey '95 (prototype - oct 01, 1994).bin", 0x1ffff9, 0xb1c0fbb2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nhlasp14)
-STD_ROM_FN(md_nhlasp14)
-
-struct BurnDriver BurnDrvmd_nhlasp14 = {
- "md_nhlasp14", "md_nhlas", NULL, NULL, "1994",
- "NHL All-Star Hockey '95 (Prototype, 19941001)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_nhlasp14RomInfo, md_nhlasp14RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NHL All-Star Hockey '95 (Prototype, 19941021)
-static struct BurnRomInfo md_nhlasp13RomDesc[] = {
- { "nhl all-star hockey '95 (prototype - oct 21, 1994).bin", 0x200000, 0x17eb2238, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nhlasp13)
-STD_ROM_FN(md_nhlasp13)
-
-struct BurnDriver BurnDrvmd_nhlasp13 = {
- "md_nhlasp13", "md_nhlas", NULL, NULL, "1994",
- "NHL All-Star Hockey '95 (Prototype, 19941021)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_nhlasp13RomInfo, md_nhlasp13RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NHL All-Star Hockey '95 (Prototype, 19940914)
-static struct BurnRomInfo md_nhlasp16RomDesc[] = {
- { "nhl all-star hockey '95 (prototype - sep 14, 1994).bin", 0x200000, 0x5d4bc48d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nhlasp16)
-STD_ROM_FN(md_nhlasp16)
-
-struct BurnDriver BurnDrvmd_nhlasp16 = {
- "md_nhlasp16", "md_nhlas", NULL, NULL, "1994",
- "NHL All-Star Hockey '95 (Prototype, 19940914)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_nhlasp16RomInfo, md_nhlasp16RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NHL All-Star Hockey '95 (Prototype, 19940929)
-static struct BurnRomInfo md_nhlasp15RomDesc[] = {
- { "nhl all-star hockey '95 (prototype - sep 29, 1994).bin", 0x1ffff9, 0x96bae44f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nhlasp15)
-STD_ROM_FN(md_nhlasp15)
-
-struct BurnDriver BurnDrvmd_nhlasp15 = {
- "md_nhlasp15", "md_nhlas", NULL, NULL, "1994",
- "NHL All-Star Hockey '95 (Prototype, 19940929)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_nhlasp15RomInfo, md_nhlasp15RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NHLPA Hockey 93 (Euro, USA, v1.1)
-static struct BurnRomInfo md_nhlpa93RomDesc[] = {
- { "h9306.bin", 0x080000, 0xf361d0bf, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nhlpa93)
-STD_ROM_FN(md_nhlpa93)
-
-struct BurnDriver BurnDrvmd_nhlpa93 = {
- "md_nhlpa93", NULL, NULL, NULL, "1992",
- "NHLPA Hockey 93 (Euro, USA, v1.1)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_EA_NHLPA, GBF_MISC, 0,
- MegadriveGetZipName, md_nhlpa93RomInfo, md_nhlpa93RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// NHLPA Hockey 93 (Euro, USA)
-static struct BurnRomInfo md_nhlpa93aRomDesc[] = {
- { "nhlpa hockey 93 (euro, usa).bin", 0x080000, 0xcbbf4262, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nhlpa93a)
-STD_ROM_FN(md_nhlpa93a)
-
-struct BurnDriver BurnDrvmd_nhlpa93a = {
- "md_nhlpa93a", "md_nhlpa93", NULL, NULL, "1992",
- "NHLPA Hockey 93 (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_EA_NHLPA, GBF_MISC, 0,
- MegadriveGetZipName, md_nhlpa93aRomInfo, md_nhlpa93aRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Nigel Mansell's World Championship Racing (Euro)
-static struct BurnRomInfo md_mansellRomDesc[] = {
- { "nigel mansell's world championship racing (euro).bin", 0x100000, 0x3fe3d63b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_mansell)
-STD_ROM_FN(md_mansell)
-
-struct BurnDriver BurnDrvmd_mansell = {
- "md_mansell", NULL, NULL, NULL, "1993",
- "Nigel Mansell's World Championship Racing (Euro)\0", NULL, "Konami", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_mansellRomInfo, md_mansellRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Nigel Mansell's World Championship Racing (USA)
-static struct BurnRomInfo md_manselluRomDesc[] = {
- { "nigel mansell's world championship racing (usa).bin", 0x100000, 0x6bc57b2c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_mansellu)
-STD_ROM_FN(md_mansellu)
-
-struct BurnDriver BurnDrvmd_mansellu = {
- "md_mansellu", "md_mansell", NULL, NULL, "1993",
- "Nigel Mansell's World Championship Racing (USA)\0", NULL, "GameTek", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_manselluRomInfo, md_manselluRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Nightmare Circus (Bra)
-static struct BurnRomInfo md_ncircRomDesc[] = {
- { "nightmare circus (bra).bin", 0x200000, 0x06da3217, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ncirc)
-STD_ROM_FN(md_ncirc)
-
-struct BurnDriver BurnDrvmd_ncirc = {
- "md_ncirc", NULL, NULL, NULL, "1995",
- "Nightmare Circus (Bra)\0", NULL, "Tec Toy", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_ncircRomInfo, md_ncircRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Nightmare Circus (Bra, Alt)
-static struct BurnRomInfo md_ncirc1RomDesc[] = {
- { "nightmare circus (bra) (alt).bin", 0x200000, 0x31de5a94, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ncirc1)
-STD_ROM_FN(md_ncirc1)
-
-struct BurnDriver BurnDrvmd_ncirc1 = {
- "md_ncirc1", "md_ncirc", NULL, NULL, "1995",
- "Nightmare Circus (Bra, Alt)\0", NULL, "Tec Toy", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_ncirc1RomInfo, md_ncirc1RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Nightmare Circus (Prototype)
-static struct BurnRomInfo md_ncircpRomDesc[] = {
- { "nightmare circus (prototype).bin", 0x400000, 0xee96f1b8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ncircp)
-STD_ROM_FN(md_ncircp)
-
-struct BurnDriver BurnDrvmd_ncircp = {
- "md_ncircp", "md_ncirc", NULL, NULL, "199?",
- "Nightmare Circus (Prototype)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_ncircpRomInfo, md_ncircpRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Nikkan Sports Pro Yakyuu Van (Jpn)
-static struct BurnRomInfo md_nikkanRomDesc[] = {
- { "nikkan sports pro yakyuu van (jpn).bin", 0x080000, 0xc3655a59, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nikkan)
-STD_ROM_FN(md_nikkan)
-
-struct BurnDriver BurnDrvmd_nikkan = {
- "md_nikkan", NULL, NULL, NULL, "1991",
- "Nikkan Sports Pro Yakyuu Van (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_nikkanRomInfo, md_nikkanRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Ninja Burai Densetsu (Jpn)
-static struct BurnRomInfo md_ninjabRomDesc[] = {
- { "ninja burai densetsu (jpn).bin", 0x100000, 0xa8d828a0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ninjab)
-STD_ROM_FN(md_ninjab)
-
-struct BurnDriver BurnDrvmd_ninjab = {
- "md_ninjab", NULL, NULL, NULL, "1991",
- "Ninja Burai Densetsu (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_ninjabRomInfo, md_ninjabRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Ninja Gaiden (Jpn, Prototype)
-static struct BurnRomInfo md_ngaidenRomDesc[] = {
- { "ninja gaiden (jpn) (prototype) (bad dump).bin", 0x100000, 0x0d7f74ba, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ngaiden)
-STD_ROM_FN(md_ngaiden)
-
-struct BurnDriver BurnDrvmd_ngaiden = {
- "md_ngaiden", NULL, NULL, NULL, "1992",
- "Ninja Gaiden (Jpn, Prototype)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_ngaidenRomInfo, md_ngaidenRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// No Escape (USA)
-static struct BurnRomInfo md_noescapeRomDesc[] = {
- { "no escape (usa).bin", 0x200000, 0x44ee5f20, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_noescape)
-STD_ROM_FN(md_noescape)
-
-struct BurnDriver BurnDrvmd_noescape = {
- "md_noescape", NULL, NULL, NULL, "1994",
- "No Escape (USA)\0", NULL, "Psygnosis", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_noescapeRomInfo, md_noescapeRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Nobunaga no Yabou - Bushou Fuuunroku (Jpn)
-static struct BurnRomInfo md_nobubufuRomDesc[] = {
- { "mpr-14456.bin", 0x100000, 0x30bf8637, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nobubufu)
-STD_ROM_FN(md_nobubufu)
-
-struct BurnDriver BurnDrvmd_nobubufu = {
- "md_nobubufu", NULL, NULL, NULL, "1991",
- "Nobunaga no Yabou - Bushou Fuuunroku (Jpn)\0", NULL, "Koei", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_nobubufuRomInfo, md_nobubufuRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Nobunaga no Yabou - Haouden (Jpn)
-static struct BurnRomInfo md_nobuhaoRomDesc[] = {
- { "nobunaga no yabou - haouden (jpn).bin", 0x200000, 0x96c01fc6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nobuhao)
-STD_ROM_FN(md_nobuhao)
-
-struct BurnDriver BurnDrvmd_nobuhao = {
- "md_nobuhao", NULL, NULL, NULL, "1994",
- "Nobunaga no Yabou - Haouden (Jpn)\0", NULL, "Koei", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_nobuhaoRomInfo, md_nobuhaoRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Nobunaga's Ambition (USA)
-static struct BurnRomInfo md_nobuambRomDesc[] = {
- { "nobunaga's ambition (usa).bin", 0x080000, 0xb9bc07bc, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nobuamb)
-STD_ROM_FN(md_nobuamb)
-
-struct BurnDriver BurnDrvmd_nobuamb = {
- "md_nobuamb", NULL, NULL, NULL, "1993",
- "Nobunaga's Ambition (USA)\0", NULL, "Koei", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_nobuambRomInfo, md_nobuambRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Nobunaga no Yabou - Zenkokuban (Jpn)
-static struct BurnRomInfo md_nobuzenkRomDesc[] = {
- { "nobunaga no yabou - zenkoku ban (jpn).bin", 0x080000, 0x1381b313, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nobuzenk)
-STD_ROM_FN(md_nobuzenk)
-
-struct BurnDriver BurnDrvmd_nobuzenk = {
- "md_nobuzenk", "md_nobuamb", NULL, NULL, "1993",
- "Nobunaga no Yabou - Zenkokuban (Jpn)\0", NULL, "Koei", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_nobuzenkRomInfo, md_nobuzenkRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Normy's Beach Babe-O-Rama (Euro, USA)
-static struct BurnRomInfo md_normyRomDesc[] = {
- { "normy's beach babe-o-rama (euro, usa).bin", 0x100000, 0xb56a8220, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_normy)
-STD_ROM_FN(md_normy)
-
-struct BurnDriver BurnDrvmd_normy = {
- "md_normy", NULL, NULL, NULL, "1994",
- "Normy's Beach Babe-O-Rama (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_normyRomInfo, md_normyRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Olympic Gold (Euro)
-static struct BurnRomInfo md_olympgldRomDesc[] = {
- { "mpr-14753.bin", 0x080000, 0x924e57d3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_olympgld)
-STD_ROM_FN(md_olympgld)
-
-struct BurnDriver BurnDrvmd_olympgld = {
- "md_olympgld", NULL, NULL, NULL, "1992",
- "Olympic Gold (Euro)\0", NULL, "U.S. Gold", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_olympgldRomInfo, md_olympgldRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Olympic Gold (Jpn, Kor)
-static struct BurnRomInfo md_olympgldjRomDesc[] = {
- { "olympic gold (jpn, kor).bin", 0x080000, 0xe9c925b8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_olympgldj)
-STD_ROM_FN(md_olympgldj)
-
-struct BurnDriver BurnDrvmd_olympgldj = {
- "md_olympgldj", "md_olympgld", NULL, NULL, "1992",
- "Olympic Gold (Jpn, Kor)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_olympgldjRomInfo, md_olympgldjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Olympic Gold (USA)
-static struct BurnRomInfo md_olympglduRomDesc[] = {
- { "olympic gold (usa).bin", 0x080000, 0x339594b4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_olympgldu)
-STD_ROM_FN(md_olympgldu)
-
-struct BurnDriver BurnDrvmd_olympgldu = {
- "md_olympgldu", "md_olympgld", NULL, NULL, "1992",
- "Olympic Gold (USA)\0", NULL, "U.S. Gold", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_olympglduRomInfo, md_olympglduRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Olympic Gold (USA, Alt)
-static struct BurnRomInfo md_olympgldu1RomDesc[] = {
- { "olympic gold (usa) (alt).bin", 0x080000, 0xaf639376, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_olympgldu1)
-STD_ROM_FN(md_olympgldu1)
-
-struct BurnDriver BurnDrvmd_olympgldu1 = {
- "md_olympgldu1", "md_olympgld", NULL, NULL, "1992",
- "Olympic Gold (USA, Alt)\0", NULL, "U.S. Gold", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_olympgldu1RomInfo, md_olympgldu1RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Olympic Summer Games (Euro, USA)
-static struct BurnRomInfo md_olympsumRomDesc[] = {
- { "olympic summer games (euro, usa).bin", 0x200000, 0x9e470fb9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_olympsum)
-STD_ROM_FN(md_olympsum)
-
-struct BurnDriver BurnDrvmd_olympsum = {
- "md_olympsum", NULL, NULL, NULL, "1996",
- "Olympic Summer Games (Euro, USA)\0", NULL, "Black Pearl", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_olympsumRomInfo, md_olympsumRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Onslaught (Euro, USA)
-static struct BurnRomInfo md_onslauRomDesc[] = {
- { "onslaught (euro, usa).bin", 0x080000, 0x9f19d6df, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_onslau)
-STD_ROM_FN(md_onslau)
-
-struct BurnDriver BurnDrvmd_onslau = {
- "md_onslau", NULL, NULL, NULL, "1991",
- "Onslaught (Euro, USA)\0", NULL, "Ballistic", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_onslauRomInfo, md_onslauRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Ooze (Euro)
-static struct BurnRomInfo md_oozeRomDesc[] = {
- { "ooze, the (euro).bin", 0x100000, 0xe16b102c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ooze)
-STD_ROM_FN(md_ooze)
-
-struct BurnDriver BurnDrvmd_ooze = {
- "md_ooze", NULL, NULL, NULL, "1995",
- "The Ooze (Euro)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_oozeRomInfo, md_oozeRomName, NULL, NULL, MegadriveInputInfo, MegadrivePALDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Ooze (Jpn, USA)
-static struct BurnRomInfo md_oozejuRomDesc[] = {
- { "ooze, the (usa, jpn).bin", 0x100000, 0x1c0dd42f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_oozeju)
-STD_ROM_FN(md_oozeju)
-
-struct BurnDriver BurnDrvmd_oozeju = {
- "md_oozeju", "md_ooze", NULL, NULL, "1995",
- "The Ooze (Jpn, USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_oozejuRomInfo, md_oozejuRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Ooze (Euro, Prototype, 19950728)
-static struct BurnRomInfo md_oozep01RomDesc[] = {
- { "ooze, the (euro) (prototype - jul 28, 1995).bin", 0x100000, 0x7cf868e7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_oozep01)
-STD_ROM_FN(md_oozep01)
-
-struct BurnDriver BurnDrvmd_oozep01 = {
- "md_oozep01", "md_ooze", NULL, NULL, "1995",
- "The Ooze (Euro, Prototype, 19950728)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_oozep01RomInfo, md_oozep01RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Ooze (Prototype, 19950615)
-static struct BurnRomInfo md_oozep07RomDesc[] = {
- { "ooze, the (prototype - jun 15, 1995).bin", 0x0e35ce, 0x921106fd, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_oozep07)
-STD_ROM_FN(md_oozep07)
-
-struct BurnDriver BurnDrvmd_oozep07 = {
- "md_oozep07", "md_ooze", NULL, NULL, "1995",
- "The Ooze (Prototype, 19950615)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_oozep07RomInfo, md_oozep07RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Ooze (Prototype, 19950619)
-static struct BurnRomInfo md_oozep06RomDesc[] = {
- { "ooze, the (prototype - jun 19, 1995).bin", 0x100000, 0xfa39281d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_oozep06)
-STD_ROM_FN(md_oozep06)
-
-struct BurnDriver BurnDrvmd_oozep06 = {
- "md_oozep06", "md_ooze", NULL, NULL, "1995",
- "The Ooze (Prototype, 19950619)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_oozep06RomInfo, md_oozep06RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Ooze (Prototype, 19950629-B)
-static struct BurnRomInfo md_oozep03RomDesc[] = {
- { "ooze, the (prototype - jun 29, 1995 - b).bin", 0x0ee456, 0xca93e93b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_oozep03)
-STD_ROM_FN(md_oozep03)
-
-struct BurnDriver BurnDrvmd_oozep03 = {
- "md_oozep03", "md_ooze", NULL, NULL, "1995",
- "The Ooze (Prototype, 19950629-B)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_oozep03RomInfo, md_oozep03RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Ooze (Prototype, 19950629)
-static struct BurnRomInfo md_oozep02RomDesc[] = {
- { "ooze, the (prototype - jun 29, 1995).bin", 0x100000, 0x1776763b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_oozep02)
-STD_ROM_FN(md_oozep02)
-
-struct BurnDriver BurnDrvmd_oozep02 = {
- "md_oozep02", "md_ooze", NULL, NULL, "1995",
- "The Ooze (Prototype, 19950629)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_oozep02RomInfo, md_oozep02RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Ooze (Prototype 104, 19950622)
-static struct BurnRomInfo md_oozep05RomDesc[] = {
- { "ooze, the (prototype 104 - jun 22, 1995).bin", 0x0ebea8, 0xce1f139f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_oozep05)
-STD_ROM_FN(md_oozep05)
-
-struct BurnDriver BurnDrvmd_oozep05 = {
- "md_oozep05", "md_ooze", NULL, NULL, "1995",
- "The Ooze (Prototype 104, 19950622)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_oozep05RomInfo, md_oozep05RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Ooze (Prototype 112, 19950626)
-static struct BurnRomInfo md_oozep04RomDesc[] = {
- { "ooze, the (prototype 112 - jun 26, 1995).bin", 0x0ec570, 0x70419442, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_oozep04)
-STD_ROM_FN(md_oozep04)
-
-struct BurnDriver BurnDrvmd_oozep04 = {
- "md_oozep04", "md_ooze", NULL, NULL, "1995",
- "The Ooze (Prototype 112, 19950626)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_oozep04RomInfo, md_oozep04RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Operation Europe - Path to Victory 1939-45 (USA)
-static struct BurnRomInfo md_opeuropeRomDesc[] = {
- { "operation europe - path to victory 1939-45 (usa).bin", 0x100000, 0xe7cba1d8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_opeurope)
-STD_ROM_FN(md_opeurope)
-
-struct BurnDriver BurnDrvmd_opeurope = {
- "md_opeurope", NULL, NULL, NULL, "1994",
- "Operation Europe - Path to Victory 1939-45 (USA)\0", NULL, "Koei", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_opeuropeRomInfo, md_opeuropeRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Europa Sensen (Jpn)
-static struct BurnRomInfo md_eurosensRomDesc[] = {
- { "europa sensen (jpn).bin", 0x100000, 0xb0416c60, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_eurosens)
-STD_ROM_FN(md_eurosens)
-
-struct BurnDriver BurnDrvmd_eurosens = {
- "md_eurosens", "md_opeurope", NULL, NULL, "1993",
- "Europa Sensen (Jpn)\0", NULL, "Koei", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_eurosensRomInfo, md_eurosensRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Osomatsu-kun Hachamecha Gekijou (Jpn)
-static struct BurnRomInfo md_osomatsuRomDesc[] = {
- { "osomatsu-kun hachamecha gekijou (jpn).bin", 0x040000, 0x2453350c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_osomatsu)
-STD_ROM_FN(md_osomatsu)
-
-struct BurnDriver BurnDrvmd_osomatsu = {
- "md_osomatsu", NULL, NULL, NULL, "1988",
- "Osomatsu-kun Hachamecha Gekijou (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_osomatsuRomInfo, md_osomatsuRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Ottifants (Euro)
-static struct BurnRomInfo md_ottifantRomDesc[] = {
- { "ottifants, the (euro).bin", 0x100000, 0x41ac8003, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ottifant)
-STD_ROM_FN(md_ottifant)
-
-struct BurnDriver BurnDrvmd_ottifant = {
- "md_ottifant", NULL, NULL, NULL, "1993",
- "The Ottifants (Euro)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_ottifantRomInfo, md_ottifantRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Ottifants (Ger, Prototype)
-static struct BurnRomInfo md_ottifantgRomDesc[] = {
- { "ottifants, the (germany) (beta).bin", 0x100000, 0xc6e3dd23, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ottifantg)
-STD_ROM_FN(md_ottifantg)
-
-struct BurnDriver BurnDrvmd_ottifantg = {
- "md_ottifantg", "md_ottifant", NULL, NULL, "1993",
- "The Ottifants (Ger, Prototype)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_ottifantgRomInfo, md_ottifantgRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Outlander (Euro)
-static struct BurnRomInfo md_outlandrRomDesc[] = {
- { "outlander (euro).bin", 0x100000, 0xfe6f2350, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_outlandr)
-STD_ROM_FN(md_outlandr)
-
-struct BurnDriver BurnDrvmd_outlandr = {
- "md_outlandr", NULL, NULL, NULL, "1992",
- "Outlander (Euro)\0", NULL, "Mindscape", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_outlandrRomInfo, md_outlandrRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Outlander (USA)
-static struct BurnRomInfo md_outlandruRomDesc[] = {
- { "outlander (usa).bin", 0x100000, 0xc5ba7bbf, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_outlandru)
-STD_ROM_FN(md_outlandru)
-
-struct BurnDriver BurnDrvmd_outlandru = {
- "md_outlandru", "md_outlandr", NULL, NULL, "1992",
- "Outlander (USA)\0", NULL, "Mindscape", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_outlandruRomInfo, md_outlandruRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// OutRun (Euro, USA)
-static struct BurnRomInfo md_outrunRomDesc[] = {
- { "outrun (euro, usa).bin", 0x100000, 0xfdd9a8d2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_outrun)
-STD_ROM_FN(md_outrun)
-
-struct BurnDriver BurnDrvmd_outrun = {
- "md_outrun", NULL, NULL, NULL, "1991",
- "OutRun (Euro, USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_outrunRomInfo, md_outrunRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// OutRun (Jpn)
-static struct BurnRomInfo md_outrunjRomDesc[] = {
- { "outrun (jpn).bin", 0x100000, 0xee7d9f4a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_outrunj)
-STD_ROM_FN(md_outrunj)
-
-struct BurnDriver BurnDrvmd_outrunj = {
- "md_outrunj", "md_outrun", NULL, NULL, "1991",
- "OutRun (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_outrunjRomInfo, md_outrunjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// OutRun 2019 (Euro)
-static struct BurnRomInfo md_outr2019RomDesc[] = {
- { "mpr-15482.bin", 0x100000, 0x5cb3536a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_outr2019)
-STD_ROM_FN(md_outr2019)
-
-struct BurnDriver BurnDrvmd_outr2019 = {
- "md_outr2019", NULL, NULL, NULL, "1993",
- "OutRun 2019 (Euro)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_outr2019RomInfo, md_outr2019RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// OutRun 2019 (Jpn)
-static struct BurnRomInfo md_outr2019jRomDesc[] = {
- { "outrun 2019 (jpn).bin", 0x100000, 0x0eac7440, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_outr2019j)
-STD_ROM_FN(md_outr2019j)
-
-struct BurnDriver BurnDrvmd_outr2019j = {
- "md_outr2019j", "md_outr2019", NULL, NULL, "1993",
- "OutRun 2019 (Jpn)\0", NULL, "Sims", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_outr2019jRomInfo, md_outr2019jRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// OutRun 2019 (USA)
-static struct BurnRomInfo md_outr2019uRomDesc[] = {
- { "outrun 2019 (usa).bin", 0x100000, 0xe32e17e2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_outr2019u)
-STD_ROM_FN(md_outr2019u)
-
-struct BurnDriver BurnDrvmd_outr2019u = {
- "md_outr2019u", "md_outr2019", NULL, NULL, "1993",
- "OutRun 2019 (USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_outr2019uRomInfo, md_outr2019uRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// OutRun 2019 (USA, Prototype)
-static struct BurnRomInfo md_outr2019upRomDesc[] = {
- { "outrun 2019 (usa) (beta).bin", 0x100000, 0xd2ecddfa, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_outr2019up)
-STD_ROM_FN(md_outr2019up)
-
-struct BurnDriver BurnDrvmd_outr2019up = {
- "md_outr2019up", "md_outr2019", NULL, NULL, "1993",
- "OutRun 2019 (USA, Prototype)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_outr2019upRomInfo, md_outr2019upRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Junker's High (Jpn, Prototype)
-static struct BurnRomInfo md_junkerRomDesc[] = {
- { "junker's high (jpn) (beta) (bad dump).bin", 0x100000, 0x23534949, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_junker)
-STD_ROM_FN(md_junker)
-
-struct BurnDriver BurnDrvmd_junker = {
- "md_junker", "md_outr2019", NULL, NULL, "199?",
- "Junker's High (Jpn, Prototype)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_junkerRomInfo, md_junkerRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// OutRunners (USA)
-static struct BurnRomInfo md_orunnersRomDesc[] = {
- { "outrunners (usa).bin", 0x200000, 0xede636b9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_orunners)
-STD_ROM_FN(md_orunners)
-
-struct BurnDriver BurnDrvmd_orunners = {
- "md_orunners", NULL, NULL, NULL, "1994",
- "OutRunners (USA)\0", NULL, "Data East", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_orunnersRomInfo, md_orunnersRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// OutRunners (Jpn)
-static struct BurnRomInfo md_orunnersjRomDesc[] = {
- { "outrunners (jpn).bin", 0x200000, 0xe164a09f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_orunnersj)
-STD_ROM_FN(md_orunnersj)
-
-struct BurnDriver BurnDrvmd_orunnersj = {
- "md_orunnersj", "md_orunners", NULL, NULL, "1994",
- "OutRunners (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_orunnersjRomInfo, md_orunnersjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Pac-Attack (USA)
-static struct BurnRomInfo md_pacattakRomDesc[] = {
- { "pac-attack (usa).bin", 0x040000, 0x5df382f7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_pacattak)
-STD_ROM_FN(md_pacattak)
-
-struct BurnDriver BurnDrvmd_pacattak = {
- "md_pacattak", "md_pacpanic", NULL, NULL, "1993",
- "Pac-Attack (USA)\0", NULL, "Namco", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_pacattakRomInfo, md_pacattakRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Pac-Man 2 - The New Adventures (USA)
-static struct BurnRomInfo md_pacman2RomDesc[] = {
- { "pac-man 2 - the new adventures (usa).bin", 0x200000, 0xfe7a7ed1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_pacman2)
-STD_ROM_FN(md_pacman2)
-
-struct BurnDriver BurnDrvmd_pacman2 = {
- "md_pacman2", NULL, NULL, NULL, "1994",
- "Pac-Man 2 - The New Adventures (USA)\0", NULL, "Namco", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_pacman2RomInfo, md_pacman2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Pac-Mania (Euro, USA)
-static struct BurnRomInfo md_pacmaniaRomDesc[] = {
- { "mpr-14392.bin", 0x040000, 0x74bba09b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_pacmania)
-STD_ROM_FN(md_pacmania)
-
-struct BurnDriver BurnDrvmd_pacmania = {
- "md_pacmania", NULL, NULL, NULL, "1991",
- "Pac-Mania (Euro, USA)\0", NULL, "Tengen", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_pacmaniaRomInfo, md_pacmaniaRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Pac-Panic (Euro)
-static struct BurnRomInfo md_pacpanicRomDesc[] = {
- { "pac-panic (euro).bin", 0x040000, 0x3c427882, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_pacpanic)
-STD_ROM_FN(md_pacpanic)
-
-struct BurnDriver BurnDrvmd_pacpanic = {
- "md_pacpanic", NULL, NULL, NULL, "1993",
- "Pac-Panic (Euro)\0", NULL, "Namco", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_pacpanicRomInfo, md_pacpanicRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Pachinko Kuunyan (Jpn)
-static struct BurnRomInfo md_pachinkoRomDesc[] = {
- { "pachinko kuunyan (jpn).bin", 0x100000, 0x9d137e7f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_pachinko)
-STD_ROM_FN(md_pachinko)
-
-struct BurnDriver BurnDrvmd_pachinko = {
- "md_pachinko", NULL, NULL, NULL, "1992",
- "Pachinko Kuunyan (Jpn)\0", NULL, "Soft Vision International", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_pachinkoRomInfo, md_pachinkoRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// P.T.O. - Pacific Theater of Operations (USA)
-static struct BurnRomInfo md_ptoRomDesc[] = {
- { "pacific theater of operations (usa).bin", 0x100000, 0xd9d4c6e2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_pto)
-STD_ROM_FN(md_pto)
-
-struct BurnDriver BurnDrvmd_pto = {
- "md_pto", NULL, NULL, NULL, "1993",
- "P.T.O. - Pacific Theater of Operations (USA)\0", NULL, "Koei", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_ptoRomInfo, md_ptoRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Teitoku no Ketsudan (Jpn)
-static struct BurnRomInfo md_teiketsuRomDesc[] = {
- { "teitoku no ketsudan (jpn).bin", 0x100000, 0x9b08e4e4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_teiketsu)
-STD_ROM_FN(md_teiketsu)
-
-struct BurnDriver BurnDrvmd_teiketsu = {
- "md_teiketsu", "md_pto", NULL, NULL, "1992",
- "Teitoku no Ketsudan (Jpn)\0", NULL, "Koei", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_teiketsuRomInfo, md_teiketsuRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Paddle Fighter (Jpn, SegaNet)
-static struct BurnRomInfo md_paddleRomDesc[] = {
- { "paddle fighter (jpn) (sn).bin", 0x040000, 0x3d8147e6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_paddle)
-STD_ROM_FN(md_paddle)
-
-struct BurnDriver BurnDrvmd_paddle = {
- "md_paddle", NULL, NULL, NULL, "1991",
- "Paddle Fighter (Jpn, SegaNet)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_paddleRomInfo, md_paddleRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Paddle Fighter (Jpn, Game no Kandume MegaCD Rip)
-static struct BurnRomInfo md_paddlegnkRomDesc[] = {
- { "paddle fighter (jpn) (gnk).bin", 0x040000, 0xebef05a4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_paddlegnk)
-STD_ROM_FN(md_paddlegnk)
-
-struct BurnDriver BurnDrvmd_paddlegnk = {
- "md_paddlegnk", "md_paddle", NULL, NULL, "1991",
- "Paddle Fighter (Jpn, Game no Kandume MegaCD Rip)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_paddlegnkRomInfo, md_paddlegnkRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Pagemaster (Euro)
-static struct BurnRomInfo md_pagemstrRomDesc[] = {
- { "pagemaster, the (euro).bin", 0x200000, 0x79a180e2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_pagemstr)
-STD_ROM_FN(md_pagemstr)
-
-struct BurnDriver BurnDrvmd_pagemstr = {
- "md_pagemstr", NULL, NULL, NULL, "1994",
- "The Pagemaster (Euro)\0", NULL, "Fox Interactive", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_pagemstrRomInfo, md_pagemstrRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Pagemaster (USA)
-static struct BurnRomInfo md_pagemstruRomDesc[] = {
- { "pagemaster, the (usa).bin", 0x200000, 0x75a96d4e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_pagemstru)
-STD_ROM_FN(md_pagemstru)
-
-struct BurnDriver BurnDrvmd_pagemstru = {
- "md_pagemstru", "md_pagemstr", NULL, NULL, "1994",
- "The Pagemaster (USA)\0", NULL, "Fox Interactive", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_pagemstruRomInfo, md_pagemstruRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Pagemaster (USA, Prototype)
-static struct BurnRomInfo md_pagemstrupRomDesc[] = {
- { "pagemaster, the (usa) (beta).bin", 0x200000, 0x29895e3d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_pagemstrup)
-STD_ROM_FN(md_pagemstrup)
-
-struct BurnDriver BurnDrvmd_pagemstrup = {
- "md_pagemstrup", "md_pagemstr", NULL, NULL, "1994",
- "The Pagemaster (USA, Prototype)\0", NULL, "Fox Interactive", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_pagemstrupRomInfo, md_pagemstrupRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Panorama Cotton (Jpn)
-static struct BurnRomInfo md_pcottonRomDesc[] = {
- { "panorama cotton (jpn).bin", 0x280000, 0x9e57d92e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_pcotton)
-STD_ROM_FN(md_pcotton)
-
-struct BurnDriver BurnDrvmd_pcotton = {
- "md_pcotton", NULL, NULL, NULL, "1994",
- "Panorama Cotton (Jpn)\0", NULL, "Sunsoft", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_pcottonRomInfo, md_pcottonRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Paperboy (Euro, USA)
-static struct BurnRomInfo md_paperboyRomDesc[] = {
- { "paperboy (euro, usa).bin", 0x080000, 0x0a44819b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_paperboy)
-STD_ROM_FN(md_paperboy)
-
-struct BurnDriver BurnDrvmd_paperboy = {
- "md_paperboy", NULL, NULL, NULL, "1991",
- "Paperboy (Euro, USA)\0", NULL, "Tengen", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_paperboyRomInfo, md_paperboyRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Paperboy (Jpn)
-static struct BurnRomInfo md_paperboyjRomDesc[] = {
- { "mpr-14774.bin", 0x080000, 0xe14250ae, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_paperboyj)
-STD_ROM_FN(md_paperboyj)
-
-struct BurnDriver BurnDrvmd_paperboyj = {
- "md_paperboyj", "md_paperboy", NULL, NULL, "1992",
- "Paperboy (Jpn)\0", NULL, "Tengen", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_paperboyjRomInfo, md_paperboyjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Party Quiz Mega Q (Jpn)
-static struct BurnRomInfo md_partyqRomDesc[] = {
- { "party quiz mega q (jpn).bin", 0x100000, 0x9d4b447a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_partyq)
-STD_ROM_FN(md_partyq)
-
-struct BurnDriver BurnDrvmd_partyq = {
- "md_partyq", NULL, NULL, NULL, "1993",
- "Party Quiz Mega Q (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_partyqRomInfo, md_partyqRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Pebble Beach Golf Links (Euro)
-static struct BurnRomInfo md_pebbleRomDesc[] = {
- { "pebble beach golf links (euro).bin", 0x200000, 0x6cfc7297, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_pebble)
-STD_ROM_FN(md_pebble)
-
-struct BurnDriver BurnDrvmd_pebble = {
- "md_pebble", NULL, NULL, NULL, "1993",
- "Pebble Beach Golf Links (Euro)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_pebbleRomInfo, md_pebbleRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Pebble Beach Golf Links (USA)
-static struct BurnRomInfo md_pebbleuRomDesc[] = {
- { "pebble beach golf links (usa).bin", 0x200000, 0x95823c43, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_pebbleu)
-STD_ROM_FN(md_pebbleu)
-
-struct BurnDriver BurnDrvmd_pebbleu = {
- "md_pebbleu", "md_pebble", NULL, NULL, "1993",
- "Pebble Beach Golf Links (USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_pebbleuRomInfo, md_pebbleuRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// New 3D Golf Simulation - Pebble Beach no Hatou (Jpn)
-static struct BurnRomInfo md_n3dgpebbRomDesc[] = {
- { "new 3d golf simulation pebble beach no hatou (jpn).bin", 0x180000, 0x96ed2e5d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_n3dgpebb)
-STD_ROM_FN(md_n3dgpebb)
-
-struct BurnDriver BurnDrvmd_n3dgpebb = {
- "md_n3dgpebb", "md_pebble", NULL, NULL, "1993",
- "New 3D Golf Simulation - Pebble Beach no Hatou (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_n3dgpebbRomInfo, md_n3dgpebbRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Pel's World Tournament Soccer (Euro, USA)
-static struct BurnRomInfo md_pele2RomDesc[] = {
- { "pele ii - world tournament soccer (euro, usa).bin", 0x200000, 0x05a486e9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_pele2)
-STD_ROM_FN(md_pele2)
-
-struct BurnDriver BurnDrvmd_pele2 = {
- "md_pele2", NULL, NULL, NULL, "1994",
- "Pele's World Tournament Soccer (Euro, USA)\0", NULL, "Accolade", "Sega Megadrive",
- L"Pel\u00e9's World Tournament Soccer (Euro, USA)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_pele2RomInfo, md_pele2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Pel! (Euro, USA)
-static struct BurnRomInfo md_peleRomDesc[] = {
- { "pele! (euro, usa).bin", 0x100000, 0x5a8abe51, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_pele)
-STD_ROM_FN(md_pele)
-
-struct BurnDriver BurnDrvmd_pele = {
- "md_pele", NULL, NULL, NULL, "1993",
- "Pele! (Euro, USA)\0", NULL, "Accolade", "Sega Megadrive",
- L"Pel\u00e9! (Euro, USA)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_peleRomInfo, md_peleRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Pepenga Pengo (Jpn)
-static struct BurnRomInfo md_ppengoRomDesc[] = {
- { "pepenga pengo (jpn).bin", 0x100000, 0xd1e2324b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ppengo)
-STD_ROM_FN(md_ppengo)
-
-struct BurnDriver BurnDrvmd_ppengo = {
- "md_ppengo", NULL, NULL, NULL, "1995",
- "Pepenga Pengo (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_ppengoRomInfo, md_ppengoRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Pete Sampras Tennis (Euro, USA, J-Cart, Alt)
-static struct BurnRomInfo md_sampras1RomDesc[] = {
- { "mdstee_13.bin", 0x100000, 0xaa8b19bc, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sampras1)
-STD_ROM_FN(md_sampras1)
-
-struct BurnDriver BurnDrvmd_sampras1 = {
- "md_sampras1", "md_sampras", NULL, NULL, "1994",
- "Pete Sampras Tennis (Euro, USA, J-Cart, Alt)\0", NULL, "Codemasters", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_sampras1RomInfo, md_sampras1RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Pete Sampras Tennis (Euro, USA, J-Cart, Alt 2)
-static struct BurnRomInfo md_sampras2RomDesc[] = {
- { "pete sampras tennis (euro, usa) (j-cart).bin", 0x100000, 0x9ef5bbd1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sampras2)
-STD_ROM_FN(md_sampras2)
-
-struct BurnDriver BurnDrvmd_sampras2 = {
- "md_sampras2", "md_sampras", NULL, NULL, "1994",
- "Pete Sampras Tennis (Euro, USA, J-Cart, Alt 2)\0", NULL, "Codemasters", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_sampras2RomInfo, md_sampras2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// PGA European Tour (Euro, USA)
-static struct BurnRomInfo md_pgaeuroRomDesc[] = {
- { "euro03.bin", 0x100000, 0x8ca45acd, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_pgaeuro)
-STD_ROM_FN(md_pgaeuro)
-
-struct BurnDriver BurnDrvmd_pgaeuro = {
- "md_pgaeuro", NULL, NULL, NULL, "1994",
- "PGA European Tour (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_pgaeuroRomInfo, md_pgaeuroRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// PGA Tour 96 (Euro, USA)
-static struct BurnRomInfo md_pga96RomDesc[] = {
- { "pga9601.bin", 0x200000, 0x9698bbde, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_pga96)
-STD_ROM_FN(md_pga96)
-
-struct BurnDriver BurnDrvmd_pga96 = {
- "md_pga96", NULL, NULL, NULL, "1995",
- "PGA Tour 96 (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_pga96RomInfo, md_pga96RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// PGA Tour Golf (Euro, USA, v1.2)
-static struct BurnRomInfo md_pgaRomDesc[] = {
- { "pga09.bin", 0x080000, 0xc1f0b4e1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_pga)
-STD_ROM_FN(md_pga)
-
-struct BurnDriver BurnDrvmd_pga = {
- "md_pga", NULL, NULL, NULL, "1991",
- "PGA Tour Golf (Euro, USA, v1.2)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_pgaRomInfo, md_pgaRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// PGA Tour Golf (Euro, USA, v1.1)
-static struct BurnRomInfo md_pgaaRomDesc[] = {
- { "pga tour golf (euro, usa) (v1.1).bin", 0x080000, 0x0489ff8e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_pgaa)
-STD_ROM_FN(md_pgaa)
-
-struct BurnDriver BurnDrvmd_pgaa = {
- "md_pgaa", "md_pga", NULL, NULL, "1991",
- "PGA Tour Golf (Euro, USA, v1.1)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_pgaaRomInfo, md_pgaaRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// PGA Tour Golf II (Euro, USA, v1.1)
-static struct BurnRomInfo md_pga2RomDesc[] = {
- { "pga tour golf ii (euro, usa) (v1.1).bin", 0x100000, 0xe82b8606, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_pga2)
-STD_ROM_FN(md_pga2)
-
-struct BurnDriver BurnDrvmd_pga2 = {
- "md_pga2", NULL, NULL, NULL, "1992",
- "PGA Tour Golf II (Euro, USA, v1.1)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_pga2RomInfo, md_pga2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// PGA Tour Golf II (Jpn)
-static struct BurnRomInfo md_pga2jRomDesc[] = {
- { "pga tour golf ii (jpn).bin", 0x100000, 0xc05b7a4a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_pga2j)
-STD_ROM_FN(md_pga2j)
-
-struct BurnDriver BurnDrvmd_pga2j = {
- "md_pga2j", "md_pga2", NULL, NULL, "1993",
- "PGA Tour Golf II (Jpn)\0", NULL, "Electronic Arts Victor", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_pga2jRomInfo, md_pga2jRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// PGA Tour Golf III (Euro, USA)
-static struct BurnRomInfo md_pga3RomDesc[] = {
- { "pga tour golf iii (euro, usa).bin", 0x200000, 0xaeb3f65f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_pga3)
-STD_ROM_FN(md_pga3)
-
-struct BurnDriver BurnDrvmd_pga3 = {
- "md_pga3", NULL, NULL, NULL, "1994",
- "PGA Tour Golf III (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_pga3RomInfo, md_pga3RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Phantasy Star II (Euro, USA)
-static struct BurnRomInfo md_pstar2aRomDesc[] = {
- { "phantasy star ii (euro, usa).bin", 0x0c0000, 0x0d07d0ef, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_pstar2a)
-STD_ROM_FN(md_pstar2a)
-
-struct BurnDriver BurnDrvmd_pstar2a = {
- "md_pstar2a", "md_pstar2", NULL, NULL, "1989",
- "Phantasy Star II (Euro, USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_pstar2aRomInfo, md_pstar2aRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Phantasy Star II (Bra)
-static struct BurnRomInfo md_pstar2brRomDesc[] = {
- { "phantasy star ii (bra).bin", 0x0c0000, 0xe6688b66, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_pstar2br)
-STD_ROM_FN(md_pstar2br)
-
-struct BurnDriver BurnDrvmd_pstar2br = {
- "md_pstar2br", "md_pstar2", NULL, NULL, "199?",
- "Phantasy Star II (Bra)\0", NULL, "Tec Toy", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_pstar2brRomInfo, md_pstar2brRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Phantasy Star II - Kaerazaru Toki no Owari ni (Jpn)
-static struct BurnRomInfo md_pstar2jRomDesc[] = {
- { "mpr-12140+mpr-12181+mpr-12182.bin", 0x0c0000, 0xbec8eb5a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_pstar2j)
-STD_ROM_FN(md_pstar2j)
-
-struct BurnDriver BurnDrvmd_pstar2j = {
- "md_pstar2j", "md_pstar2", NULL, NULL, "1989",
- "Phantasy Star II - Kaerazaru Toki no Owari ni (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_pstar2jRomInfo, md_pstar2jRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Phantasy Star II - Amia's Adventure (Jpn, SegaNet)
-static struct BurnRomInfo md_ps2aaRomDesc[] = {
- { "phantasy star ii - amia's adventure (jpn) (sn).bin", 0x040000, 0xa3a724aa, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ps2aa)
-STD_ROM_FN(md_ps2aa)
-
-struct BurnDriver BurnDrvmd_ps2aa = {
- "md_ps2aa", NULL, NULL, NULL, "1991",
- "Phantasy Star II - Amia's Adventure (Jpn, SegaNet)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_ps2aaRomInfo, md_ps2aaRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Phantasy Star II - Anne's Adventure (Jpn, SegaNet)
-static struct BurnRomInfo md_ps2abRomDesc[] = {
- { "phantasy star ii - anne's adventure (jpn) (sn).bin", 0x040000, 0xfafa5b6f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ps2ab)
-STD_ROM_FN(md_ps2ab)
-
-struct BurnDriver BurnDrvmd_ps2ab = {
- "md_ps2ab", NULL, NULL, NULL, "1991",
- "Phantasy Star II - Anne's Adventure (Jpn, SegaNet)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_ps2abRomInfo, md_ps2abRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Phantasy Star II - Huey's Adventure (Jpn, SegaNet)
-static struct BurnRomInfo md_ps2acRomDesc[] = {
- { "phantasy star ii - huey's adventure (jpn) (sn).bin", 0x040000, 0x1a076f83, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ps2ac)
-STD_ROM_FN(md_ps2ac)
-
-struct BurnDriver BurnDrvmd_ps2ac = {
- "md_ps2ac", NULL, NULL, NULL, "1991",
- "Phantasy Star II - Huey's Adventure (Jpn, SegaNet)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_ps2acRomInfo, md_ps2acRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Phantasy Star II - Kinds's Adventure (Jpn, SegaNet)
-static struct BurnRomInfo md_ps2adRomDesc[] = {
- { "phantasy star ii - kinds's adventure (jpn) (sn).bin", 0x040000, 0xc334f308, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ps2ad)
-STD_ROM_FN(md_ps2ad)
-
-struct BurnDriver BurnDrvmd_ps2ad = {
- "md_ps2ad", NULL, NULL, NULL, "1991",
- "Phantasy Star II - Kinds's Adventure (Jpn, SegaNet)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_ps2adRomInfo, md_ps2adRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Phantasy Star II - Nei's Adventure (Jpn, SegaNet)
-static struct BurnRomInfo md_ps2aeRomDesc[] = {
- { "phantasy star ii - nei's adventure (jpn) (sn).bin", 0x040000, 0x3d9ad465, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ps2ae)
-STD_ROM_FN(md_ps2ae)
-
-struct BurnDriver BurnDrvmd_ps2ae = {
- "md_ps2ae", NULL, NULL, NULL, "1991",
- "Phantasy Star II - Nei's Adventure (Jpn, SegaNet)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_ps2aeRomInfo, md_ps2aeRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Phantasy Star II - Rudger's Adventure (Jpn, SegaNet)
-static struct BurnRomInfo md_ps2afRomDesc[] = {
- { "phantasy star ii - rudger's adventure (jpn) (sn).bin", 0x040000, 0x6b5916d2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ps2af)
-STD_ROM_FN(md_ps2af)
-
-struct BurnDriver BurnDrvmd_ps2af = {
- "md_ps2af", NULL, NULL, NULL, "1991",
- "Phantasy Star II - Rudger's Adventure (Jpn, SegaNet)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_ps2afRomInfo, md_ps2afRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Phantasy Star II - Shilka's Adventure (Jpn, SegaNet)
-static struct BurnRomInfo md_ps2agRomDesc[] = {
- { "phantasy star ii - shilka's adventure (jpn) (sn).bin", 0x040000, 0x1f83beb2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ps2ag)
-STD_ROM_FN(md_ps2ag)
-
-struct BurnDriver BurnDrvmd_ps2ag = {
- "md_ps2ag", NULL, NULL, NULL, "1991",
- "Phantasy Star II - Shilka's Adventure (Jpn, SegaNet)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_ps2agRomInfo, md_ps2agRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Phantasy Star II - Yushis's Adventure (Jpn, SegaNet)
-static struct BurnRomInfo md_ps2ahRomDesc[] = {
- { "phantasy star ii - yushis's adventure (jpn) (sn).bin", 0x040000, 0xd40c76d6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ps2ah)
-STD_ROM_FN(md_ps2ah)
-
-struct BurnDriver BurnDrvmd_ps2ah = {
- "md_ps2ah", NULL, NULL, NULL, "1991",
- "Phantasy Star II - Yushis's Adventure (Jpn, SegaNet)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_ps2ahRomInfo, md_ps2ahRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Phantasy Star III - Generations of Doom (Euro, USA, Kor)
-static struct BurnRomInfo md_pstar3RomDesc[] = {
- { "phantasy star iii - generations of doom (euro, usa, kor).bin", 0x0c0000, 0xc6b42b0f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_pstar3)
-STD_ROM_FN(md_pstar3)
-
-struct BurnDriver BurnDrvmd_pstar3 = {
- "md_pstar3", NULL, NULL, NULL, "1990",
- "Phantasy Star III - Generations of Doom (Euro, USA, Kor)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_pstar3RomInfo, md_pstar3RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Phantasy Star III - Generations of Doom (Bra)
-static struct BurnRomInfo md_pstar3brRomDesc[] = {
- { "phantasy star iii - generations of doom (bra).bin", 0x0c0000, 0x2e9b4c23, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_pstar3br)
-STD_ROM_FN(md_pstar3br)
-
-struct BurnDriver BurnDrvmd_pstar3br = {
- "md_pstar3br", "md_pstar3", NULL, NULL, "1998",
- "Phantasy Star III - Generations of Doom (Bra)\0", NULL, "Tec Toy", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_pstar3brRomInfo, md_pstar3brRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Phantasy Star III - Toki no Keishousha (Jpn)
-static struct BurnRomInfo md_pstar3jRomDesc[] = {
- { "phantasy star iii - toki no keishousha (jpn).bin", 0x0c0000, 0x6c48c06f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_pstar3j)
-STD_ROM_FN(md_pstar3j)
-
-struct BurnDriver BurnDrvmd_pstar3j = {
- "md_pstar3j", "md_pstar3", NULL, NULL, "1990",
- "Phantasy Star III - Toki no Keishousha (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_pstar3jRomInfo, md_pstar3jRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Phantasy Star - The End of the Millennium (USA)
-static struct BurnRomInfo md_pstar4uRomDesc[] = {
- { "phantasy star iv (usa).bin", 0x300000, 0xfe236442, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_pstar4u)
-STD_ROM_FN(md_pstar4u)
-
-struct BurnDriver BurnDrvmd_pstar4u = {
- "md_pstar4u", "md_pstar4", NULL, NULL, "1994",
- "Phantasy Star - The End of the Millennium (USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_pstar4uRomInfo, md_pstar4uRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Phantasy Star - The End of the Millennium (Euro)
-static struct BurnRomInfo md_pstar4RomDesc[] = {
- { "phantasy star iv (euro).bin", 0x300000, 0x389c2968, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_pstar4)
-STD_ROM_FN(md_pstar4)
-
-struct BurnDriver BurnDrvmd_pstar4 = {
- "md_pstar4", NULL, NULL, NULL, "1994",
- "Phantasy Star - The End of the Millennium (Euro)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_pstar4RomInfo, md_pstar4RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Phantasy Star - Sennenki no Owari ni (Jpn)
-static struct BurnRomInfo md_pstar4jRomDesc[] = {
- { "phantasy star - sennenki no owari ni (jpn).bin", 0x300000, 0xf0bfad42, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_pstar4j)
-STD_ROM_FN(md_pstar4j)
-
-struct BurnDriver BurnDrvmd_pstar4j = {
- "md_pstar4j", "md_pstar4", NULL, NULL, "1993",
- "Phantasy Star - Sennenki no Owari ni (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_pstar4jRomInfo, md_pstar4jRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Phantasy Star - The End of the Millennium (Prototype, 19940815)
-static struct BurnRomInfo md_pstar4p3RomDesc[] = {
- { "phantasy star iv (prototype - aug 15, 1994).bin", 0x300000, 0x60137f25, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_pstar4p3)
-STD_ROM_FN(md_pstar4p3)
-
-struct BurnDriver BurnDrvmd_pstar4p3 = {
- "md_pstar4p3", "md_pstar4", NULL, NULL, "1994",
- "Phantasy Star - The End of the Millennium (Prototype, 19940815)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_pstar4p3RomInfo, md_pstar4p3RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Phantasy Star - The End of the Millennium (Prototype, 19940608)
-static struct BurnRomInfo md_pstar4p4RomDesc[] = {
- { "phantasy star iv (prototype - jun 08, 1994).bin", 0x300000, 0xdc2e1c0a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_pstar4p4)
-STD_ROM_FN(md_pstar4p4)
-
-struct BurnDriver BurnDrvmd_pstar4p4 = {
- "md_pstar4p4", "md_pstar4", NULL, NULL, "1994",
- "Phantasy Star - The End of the Millennium (Prototype, 19940608)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_pstar4p4RomInfo, md_pstar4p4RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Phantasy Star - The End of the Millennium (Prototype, 19940530)
-static struct BurnRomInfo md_pstar4p5RomDesc[] = {
- { "phantasy star iv (prototype - may 30, 1994).bin", 0x300000, 0xb32b17e1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_pstar4p5)
-STD_ROM_FN(md_pstar4p5)
-
-struct BurnDriver BurnDrvmd_pstar4p5 = {
- "md_pstar4p5", "md_pstar4", NULL, NULL, "1994",
- "Phantasy Star - The End of the Millennium (Prototype, 19940530)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_pstar4p5RomInfo, md_pstar4p5RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Phantasy Star - The End of the Millennium (Prototype, 19941107)
-static struct BurnRomInfo md_pstar4p1RomDesc[] = {
- { "phantasy star iv (prototype - nov 07, 1994).bin", 0x300000, 0xbda29cdf, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_pstar4p1)
-STD_ROM_FN(md_pstar4p1)
-
-struct BurnDriver BurnDrvmd_pstar4p1 = {
- "md_pstar4p1", "md_pstar4", NULL, NULL, "1994",
- "Phantasy Star - The End of the Millennium (Prototype, 19941107)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_pstar4p1RomInfo, md_pstar4p1RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Phantasy Star - The End of the Millennium (Prototype, 19941027)
-static struct BurnRomInfo md_pstar4p2RomDesc[] = {
- { "phantasy star iv (prototype - oct 27, 1994).bin", 0x300000, 0x12a2590a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_pstar4p2)
-STD_ROM_FN(md_pstar4p2)
-
-struct BurnDriver BurnDrvmd_pstar4p2 = {
- "md_pstar4p2", "md_pstar4", NULL, NULL, "1994",
- "Phantasy Star - The End of the Millennium (Prototype, 19941027)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_pstar4p2RomInfo, md_pstar4p2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Phantom 2040 (Euro)
-static struct BurnRomInfo md_phantomRomDesc[] = {
- { "phantom 2040 (euro).bin", 0x200000, 0xb024882e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_phantom)
-STD_ROM_FN(md_phantom)
-
-struct BurnDriver BurnDrvmd_phantom = {
- "md_phantom", NULL, NULL, NULL, "1995",
- "Phantom 2040 (Euro)\0", NULL, "Viacom New Media", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_phantomRomInfo, md_phantomRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Phantom 2040 (USA)
-static struct BurnRomInfo md_phantomuRomDesc[] = {
- { "phantom 2040 (usa).bin", 0x200000, 0xfb36e1f3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_phantomu)
-STD_ROM_FN(md_phantomu)
-
-struct BurnDriver BurnDrvmd_phantomu = {
- "md_phantomu", "md_phantom", NULL, NULL, "1995",
- "Phantom 2040 (USA)\0", NULL, "Viacom New Media", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_phantomuRomInfo, md_phantomuRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Phelios (Euro)
-static struct BurnRomInfo md_pheliosRomDesc[] = {
- { "phelios (euro).bin", 0x080000, 0x13abc2b2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_phelios)
-STD_ROM_FN(md_phelios)
-
-struct BurnDriver BurnDrvmd_phelios = {
- "md_phelios", NULL, NULL, NULL, "1990",
- "Phelios (Euro)\0", NULL, "Namco", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_pheliosRomInfo, md_pheliosRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Phelios (Jpn)
-static struct BurnRomInfo md_pheliosjRomDesc[] = {
- { "phelios (jpn).bin", 0x080000, 0x94596174, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_pheliosj)
-STD_ROM_FN(md_pheliosj)
-
-struct BurnDriver BurnDrvmd_pheliosj = {
- "md_pheliosj", "md_phelios", NULL, NULL, "1990",
- "Phelios (Jpn)\0", NULL, "Namcot", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_pheliosjRomInfo, md_pheliosjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Phelios (USA)
-static struct BurnRomInfo md_pheliosuRomDesc[] = {
- { "phelios (usa).bin", 0x080000, 0x11c79320, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_pheliosu)
-STD_ROM_FN(md_pheliosu)
-
-struct BurnDriver BurnDrvmd_pheliosu = {
- "md_pheliosu", "md_phelios", NULL, NULL, "1990",
- "Phelios (USA)\0", NULL, "Namco", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_pheliosuRomInfo, md_pheliosuRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Pink Goes to Hollywood (USA, Prototype)
-static struct BurnRomInfo md_pinkpRomDesc[] = {
- { "pink goes to hollywood (usa) (beta).bin", 0x100000, 0x56087cff, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_pinkp)
-STD_ROM_FN(md_pinkp)
-
-struct BurnDriver BurnDrvmd_pinkp = {
- "md_pinkp", "md_pink", NULL, NULL, "1993",
- "Pink Goes to Hollywood (USA, Prototype)\0", NULL, "TecMagik", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_pinkpRomInfo, md_pinkpRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Pinocchio (Euro)
-static struct BurnRomInfo md_pinocRomDesc[] = {
- { "pinocchio (euro).bin", 0x300000, 0x28014bdc, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_pinoc)
-STD_ROM_FN(md_pinoc)
-
-struct BurnDriver BurnDrvmd_pinoc = {
- "md_pinoc", NULL, NULL, NULL, "1995",
- "Pinocchio (Euro)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_pinocRomInfo, md_pinocRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Pinocchio (USA)
-static struct BurnRomInfo md_pinocuRomDesc[] = {
- { "pinocchio (usa).bin", 0x300000, 0xcd4128d8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_pinocu)
-STD_ROM_FN(md_pinocu)
-
-struct BurnDriver BurnDrvmd_pinocu = {
- "md_pinocu", "md_pinoc", NULL, NULL, "1996",
- "Pinocchio (USA)\0", NULL, "THQ", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_pinocuRomInfo, md_pinocuRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Pirates of Dark Water (USA, January 1994)
-static struct BurnRomInfo md_piratedwRomDesc[] = {
- { "pirates of dark water, the (usa) (january 1994).bin", 0x200000, 0x0c45b9f7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_piratedw)
-STD_ROM_FN(md_piratedw)
-
-struct BurnDriver BurnDrvmd_piratedw = {
- "md_piratedw", NULL, NULL, NULL, "1994",
- "The Pirates of Dark Water (USA, January 1994)\0", NULL, "Sunsoft", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_piratedwRomInfo, md_piratedwRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Pirates of Dark Water (Euro, USA, May 1994)
-static struct BurnRomInfo md_piratedw1RomDesc[] = {
- { "pirates of dark water, the (euro, usa) (may 1994).bin", 0x200000, 0x0a62de34, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_piratedw1)
-STD_ROM_FN(md_piratedw1)
-
-struct BurnDriver BurnDrvmd_piratedw1 = {
- "md_piratedw1", "md_piratedw", NULL, NULL, "1994",
- "The Pirates of Dark Water (Euro, USA, May 1994)\0", NULL, "Sunsoft", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_piratedw1RomInfo, md_piratedw1RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Pirates! Gold (USA)
-static struct BurnRomInfo md_piratesRomDesc[] = {
- { "pirates! gold (usa).bin", 0x100000, 0xed50e75c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_pirates)
-STD_ROM_FN(md_pirates)
-
-struct BurnDriver BurnDrvmd_pirates = {
- "md_pirates", NULL, NULL, NULL, "1993",
- "Pirates! Gold (USA)\0", NULL, "Microprose", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_piratesRomInfo, md_piratesRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Pirates! Gold (USA, Prototype)
-static struct BurnRomInfo md_piratespRomDesc[] = {
- { "pirates! gold (usa) (beta).bin", 0x100000, 0x0a525641, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_piratesp)
-STD_ROM_FN(md_piratesp)
-
-struct BurnDriver BurnDrvmd_piratesp = {
- "md_piratesp", "md_pirates", NULL, NULL, "1993",
- "Pirates! Gold (USA, Prototype)\0", NULL, "Microprose", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_piratespRomInfo, md_piratespRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Pit-Fighter (World, Rev. A)
-static struct BurnRomInfo md_pitfightRomDesc[] = {
- { "mpr-14320a.bin", 0x100000, 0xd48a8b02, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_pitfight)
-STD_ROM_FN(md_pitfight)
-
-struct BurnDriver BurnDrvmd_pitfight = {
- "md_pitfight", NULL, NULL, NULL, "1991",
- "Pit-Fighter (World, Rev. A)\0", NULL, "Tengen", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_pitfightRomInfo, md_pitfightRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Pit-Fighter (World)
-static struct BurnRomInfo md_pitfight1RomDesc[] = {
- { "pit-fighter (world).bin", 0x100000, 0x1e0e0831, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_pitfight1)
-STD_ROM_FN(md_pitfight1)
-
-struct BurnDriver BurnDrvmd_pitfight1 = {
- "md_pitfight1", "md_pitfight", NULL, NULL, "1991",
- "Pit-Fighter (World)\0", NULL, "Tengen", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_pitfight1RomInfo, md_pitfight1RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Pitfall - The Mayan Adventure (Euro)
-static struct BurnRomInfo md_pitfallRomDesc[] = {
- { "pitfall - the mayan adventure (euro).bin", 0x200000, 0xc9198e19, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_pitfall)
-STD_ROM_FN(md_pitfall)
-
-struct BurnDriver BurnDrvmd_pitfall = {
- "md_pitfall", NULL, NULL, NULL, "1994",
- "Pitfall - The Mayan Adventure (Euro)\0", NULL, "Activision", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_pitfallRomInfo, md_pitfallRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Pitfall - The Mayan Adventure (USA)
-static struct BurnRomInfo md_pitfalluRomDesc[] = {
- { "pitfall - the mayan adventure (usa).bin", 0x200000, 0xf917e34f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_pitfallu)
-STD_ROM_FN(md_pitfallu)
-
-struct BurnDriver BurnDrvmd_pitfallu = {
- "md_pitfallu", "md_pitfall", NULL, NULL, "1994",
- "Pitfall - The Mayan Adventure (USA)\0", NULL, "Activision", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_pitfalluRomInfo, md_pitfalluRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Pocahontas (Euro)
-static struct BurnRomInfo md_pocahontRomDesc[] = {
- { "mpr-18875.bin", 0x400000, 0x165e7987, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_pocahont)
-STD_ROM_FN(md_pocahont)
-
-struct BurnDriver BurnDrvmd_pocahont = {
- "md_pocahont", NULL, NULL, NULL, "1996",
- "Pocahontas (Euro)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_pocahontRomInfo, md_pocahontRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Pocahontas (USA)
-static struct BurnRomInfo md_pocahontuRomDesc[] = {
- { "pocahontas (usa).bin", 0x400000, 0x6ddd1c6d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_pocahontu)
-STD_ROM_FN(md_pocahontu)
-
-struct BurnDriver BurnDrvmd_pocahontu = {
- "md_pocahontu", "md_pocahont", NULL, NULL, "1996",
- "Pocahontas (USA)\0", NULL, "Disney Interactive", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_pocahontuRomInfo, md_pocahontuRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Pocket Monsters
-static struct BurnRomInfo md_pokemonRomDesc[] = {
- { "pocket monsters (unl).bin", 0x200000, 0xf68f6367, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_pokemon)
-STD_ROM_FN(md_pokemon)
-
-struct BurnDriver BurnDrvmd_pokemon = {
- "md_pokemon", NULL, NULL, NULL, "199?",
- "Pocket Monsters\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_POKEMON, GBF_MISC, 0,
- MegadriveGetZipName, md_pokemonRomInfo, md_pokemonRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Pocket Monsters (Alt)
-static struct BurnRomInfo md_pokemonaRomDesc[] = {
- { "pocket monsters (unl) (alt).bin", 0x200000, 0xfb176667, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_pokemona)
-STD_ROM_FN(md_pokemona)
-
-struct BurnDriver BurnDrvmd_pokemona = {
- "md_pokemona", "md_pokemon", NULL, NULL, "199?",
- "Pocket Monsters (Alt)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_pokemonaRomInfo, md_pokemonaRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Pocket Monsters 2
-static struct BurnRomInfo md_pokemon2RomDesc[] = {
- { "pocket monsters 2 (unl).bin", 0x200000, 0x30f7031f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_pokemon2)
-STD_ROM_FN(md_pokemon2)
-
-struct BurnDriver BurnDrvmd_pokemon2 = {
- "md_pokemon2", NULL, NULL, NULL, "199?",
- "Pocket Monsters 2\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_POKEMON2, GBF_MISC, 0,
- MegadriveGetZipName, md_pokemon2RomInfo, md_pokemon2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Pokemon Crazy Drummer
-static struct BurnRomInfo md_pokecdRomDesc[] = {
- { "pokemon crazy drummer (unl).bin", 0x200000, 0x8838a25d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_pokecd)
-STD_ROM_FN(md_pokecd)
-
-struct BurnDriver BurnDrvmd_pokecd = {
- "md_pokecd", NULL, NULL, NULL, "199?",
- "Pokemon Crazy Drummer\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_pokecdRomInfo, md_pokecdRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Populous (Euro)
-static struct BurnRomInfo md_populousRomDesc[] = {
- { "populous (euro).bin", 0x080000, 0x83d56f64, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_populous)
-STD_ROM_FN(md_populous)
-
-struct BurnDriver BurnDrvmd_populous = {
- "md_populous", NULL, NULL, NULL, "1991",
- "Populous (Euro)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_populousRomInfo, md_populousRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Populous (Jpn)
-static struct BurnRomInfo md_populousjRomDesc[] = {
- { "populous (jpn).bin", 0x080000, 0x97c26818, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_populousj)
-STD_ROM_FN(md_populousj)
-
-struct BurnDriver BurnDrvmd_populousj = {
- "md_populousj", "md_populous", NULL, NULL, "1991",
- "Populous (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_populousjRomInfo, md_populousjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Populous (USA)
-static struct BurnRomInfo md_populousuRomDesc[] = {
- { "populous (usa).bin", 0x080000, 0xbd74b31e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_populousu)
-STD_ROM_FN(md_populousu)
-
-struct BurnDriver BurnDrvmd_populousu = {
- "md_populousu", "md_populous", NULL, NULL, "1991",
- "Populous (USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_populousuRomInfo, md_populousuRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Power Drive (Euro)
-static struct BurnRomInfo md_pdriveRomDesc[] = {
- { "power drive (euro).bin", 0x100000, 0x8c00ad61, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_pdrive)
-STD_ROM_FN(md_pdrive)
-
-struct BurnDriver BurnDrvmd_pdrive = {
- "md_pdrive", NULL, NULL, NULL, "1994",
- "Power Drive (Euro)\0", NULL, "U.S. Gold", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_pdriveRomInfo, md_pdriveRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Power Monger (Euro, USA)
-static struct BurnRomInfo md_pmongerRomDesc[] = {
- { "pm14.bin", 0x100000, 0xfb599b86, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_pmonger)
-STD_ROM_FN(md_pmonger)
-
-struct BurnDriver BurnDrvmd_pmonger = {
- "md_pmonger", NULL, NULL, NULL, "1993",
- "Power Monger (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_pmongerRomInfo, md_pmongerRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Power Monger (Jpn, Kor)
-static struct BurnRomInfo md_pmongerjRomDesc[] = {
- { "power monger (jpn, kor).bin", 0x100000, 0x553289b3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_pmongerj)
-STD_ROM_FN(md_pmongerj)
-
-struct BurnDriver BurnDrvmd_pmongerj = {
- "md_pmongerj", "md_pmonger", NULL, NULL, "1993",
- "Power Monger (Jpn, Kor)\0", NULL, "Electronic Arts Victor", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_pmongerjRomInfo, md_pmongerjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Powerball (USA)
-static struct BurnRomInfo md_powerbalRomDesc[] = {
- { "powerball (usa).bin", 0x080000, 0x7adf232f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_powerbal)
-STD_ROM_FN(md_powerbal)
-
-struct BurnDriver BurnDrvmd_powerbal = {
- "md_powerbal", NULL, NULL, NULL, "1991",
- "Powerball (USA)\0", NULL, "Namco", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_powerbalRomInfo, md_powerbalRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Wrestleball (Jpn)
-static struct BurnRomInfo md_wrstballRomDesc[] = {
- { "wrestleball (jpn).bin", 0x080000, 0xd563e07f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wrstball)
-STD_ROM_FN(md_wrstball)
-
-struct BurnDriver BurnDrvmd_wrstball = {
- "md_wrstball", "md_powerbal", NULL, NULL, "1991",
- "Wrestleball (Jpn)\0", NULL, "Namcot", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_wrstballRomInfo, md_wrstballRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Predator 2 (Euro, USA)
-static struct BurnRomInfo md_predatr2RomDesc[] = {
- { "predator 2 (euro, usa).bin", 0x100000, 0xbdba113e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_predatr2)
-STD_ROM_FN(md_predatr2)
-
-struct BurnDriver BurnDrvmd_predatr2 = {
- "md_predatr2", NULL, NULL, NULL, "1992",
- "Predator 2 (Euro, USA)\0", NULL, "Arena", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_predatr2RomInfo, md_predatr2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Premier Manager (Euro)
-static struct BurnRomInfo md_premiermRomDesc[] = {
- { "mpr-18473.bin", 0x100000, 0x303b889f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_premierm)
-STD_ROM_FN(md_premierm)
-
-struct BurnDriver BurnDrvmd_premierm = {
- "md_premierm", NULL, NULL, NULL, "1995",
- "Premier Manager (Euro)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_premiermRomInfo, md_premiermRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Premier Manager 97 (Euro)
-static struct BurnRomInfo md_premrm97RomDesc[] = {
- { "premier manager 97 (euro).bin", 0x100000, 0xfccbf69b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_premrm97)
-STD_ROM_FN(md_premrm97)
-
-struct BurnDriver BurnDrvmd_premrm97 = {
- "md_premrm97", NULL, NULL, NULL, "1996",
- "Premier Manager 97 (Euro)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_premrm97RomInfo, md_premrm97RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Primal Rage (Euro, USA)
-static struct BurnRomInfo md_primalRomDesc[] = {
- { "primal rage (euro, usa).bin", 0x300000, 0x2884c6d1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_primal)
-STD_ROM_FN(md_primal)
-
-struct BurnDriver BurnDrvmd_primal = {
- "md_primal", NULL, NULL, NULL, "1995",
- "Primal Rage (Euro, USA)\0", NULL, "Time Warner Interactive", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_primalRomInfo, md_primalRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Prime Time NFL Starring Deion Sanders (USA)
-static struct BurnRomInfo md_primetimRomDesc[] = {
- { "prime time nfl starring deion sanders (usa).bin", 0x200000, 0x5aa53cbc, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_primetim)
-STD_ROM_FN(md_primetim)
-
-struct BurnDriver BurnDrvmd_primetim = {
- "md_primetim", NULL, NULL, NULL, "1995",
- "Prime Time NFL Starring Deion Sanders (USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_primetimRomInfo, md_primetimRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Prince of Persia (Euro)
-static struct BurnRomInfo md_ppersiaRomDesc[] = {
- { "prince of persia (euro).bin", 0x100000, 0x61de6fe0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ppersia)
-STD_ROM_FN(md_ppersia)
-
-struct BurnDriver BurnDrvmd_ppersia = {
- "md_ppersia", NULL, NULL, NULL, "1993",
- "Prince of Persia (Euro)\0", NULL, "Domark", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_ppersiaRomInfo, md_ppersiaRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Prince of Persia (Prototype)
-static struct BurnRomInfo md_ppersiapRomDesc[] = {
- { "prince of persia (beta).bin", 0x100000, 0x505314b6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ppersiap)
-STD_ROM_FN(md_ppersiap)
-
-struct BurnDriver BurnDrvmd_ppersiap = {
- "md_ppersiap", "md_ppersia", NULL, NULL, "1993",
- "Prince of Persia (Prototype)\0", NULL, "Tengen", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_ppersiapRomInfo, md_ppersiapRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Prince of Persia (Prototype, Earlier)
-static struct BurnRomInfo md_ppersiap1RomDesc[] = {
- { "prince of persia (beta) (earlier).bin", 0x040000, 0x425e6a87, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ppersiap1)
-STD_ROM_FN(md_ppersiap1)
-
-struct BurnDriver BurnDrvmd_ppersiap1 = {
- "md_ppersiap1", "md_ppersia", NULL, NULL, "1993",
- "Prince of Persia (Prototype, Earlier)\0", NULL, "Tengen", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_ppersiap1RomInfo, md_ppersiap1RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Prince of Persia (USA)
-static struct BurnRomInfo md_ppersiauRomDesc[] = {
- { "prince of persia (usa).bin", 0x100000, 0x13c181a4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ppersiau)
-STD_ROM_FN(md_ppersiau)
-
-struct BurnDriver BurnDrvmd_ppersiau = {
- "md_ppersiau", "md_ppersia", NULL, NULL, "1993",
- "Prince of Persia (USA)\0", NULL, "Tengen", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_ppersiauRomInfo, md_ppersiauRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Prince of Persia 2 - The Shadow and the Flame (Euro, Prototype)
-static struct BurnRomInfo md_ppersia2RomDesc[] = {
- { "prince of persia 2 - the shadow and the flame (euro) (prototype).bin", 0x200000, 0x3ab44d46, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ppersia2)
-STD_ROM_FN(md_ppersia2)
-
-struct BurnDriver BurnDrvmd_ppersia2 = {
- "md_ppersia2", NULL, NULL, NULL, "199?",
- "Prince of Persia 2 - The Shadow and the Flame (Euro, Prototype)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_ppersia2RomInfo, md_ppersia2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Pro Quarterback (USA)
-static struct BurnRomInfo md_proqbRomDesc[] = {
- { "pro quarterback (usa).bin", 0x100000, 0xcc8b2b69, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_proqb)
-STD_ROM_FN(md_proqb)
-
-struct BurnDriver BurnDrvmd_proqb = {
- "md_proqb", NULL, NULL, NULL, "1992",
- "Pro Quarterback (USA)\0", NULL, "Tradewest", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_proqbRomInfo, md_proqbRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Pro Yakyuu Super League '91 (Jpn)
-static struct BurnRomInfo md_proyakyuRomDesc[] = {
- { "pro yakyuu super league '91 (jpn).bin", 0x080000, 0xa948ab7e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_proyakyu)
-STD_ROM_FN(md_proyakyu)
-
-struct BurnDriver BurnDrvmd_proyakyu = {
- "md_proyakyu", NULL, NULL, NULL, "1991",
- "Pro Yakyuu Super League '91 (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_proyakyuRomInfo, md_proyakyuRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Contra - Hard Corps (USA, Kor)
-static struct BurnRomInfo md_contraRomDesc[] = {
- { "contra - hard corps (usa, kor).bin", 0x200000, 0xc579f45e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_contra)
-STD_ROM_FN(md_contra)
-
-struct BurnDriver BurnDrvmd_contra = {
- "md_contra", NULL, NULL, NULL, "1994",
- "Contra - Hard Corps (USA, Kor)\0", NULL, "Konami", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_contraRomInfo, md_contraRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Contra - The Hard Corps (Jpn)
-static struct BurnRomInfo md_contrajRomDesc[] = {
- { "contra - the hard corps (jpn).bin", 0x200000, 0x2ab26380, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_contraj)
-STD_ROM_FN(md_contraj)
-
-struct BurnDriver BurnDrvmd_contraj = {
- "md_contraj", "md_contra", NULL, NULL, "1994",
- "Contra - The Hard Corps (Jpn)\0", NULL, "Konami", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_contrajRomInfo, md_contrajRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Probotector (Euro)
-static struct BurnRomInfo md_probotRomDesc[] = {
- { "probotector (euro).bin", 0x200000, 0xbc597d48, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_probot)
-STD_ROM_FN(md_probot)
-
-struct BurnDriver BurnDrvmd_probot = {
- "md_probot", "md_contra", NULL, NULL, "1994",
- "Probotector (Euro)\0", NULL, "Konami", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_probotRomInfo, md_probotRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Psy-O-Blade (Jpn)
-static struct BurnRomInfo md_psyobladRomDesc[] = {
- { "psy-o-blade (jpn).bin", 0x0a0000, 0x8ba7e6c5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_psyoblad)
-STD_ROM_FN(md_psyoblad)
-
-struct BurnDriver BurnDrvmd_psyoblad = {
- "md_psyoblad", NULL, NULL, NULL, "1990",
- "Psy-O-Blade (Jpn)\0", NULL, "Sigma", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_psyobladRomInfo, md_psyobladRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Puggsy (Euro)
-static struct BurnRomInfo md_puggsyRomDesc[] = {
- { "puggsy (euro).bin", 0x100000, 0x5d5c9ade, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_puggsy)
-STD_ROM_FN(md_puggsy)
-
-struct BurnDriver BurnDrvmd_puggsy = {
- "md_puggsy", NULL, NULL, NULL, "1993",
- "Puggsy (Euro)\0", NULL, "Psygnosis", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_puggsyRomInfo, md_puggsyRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Puggsy (Prototype)
-static struct BurnRomInfo md_puggsypRomDesc[] = {
- { "puggsy (beta).bin", 0x100000, 0x37fa4877, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_puggsyp)
-STD_ROM_FN(md_puggsyp)
-
-struct BurnDriver BurnDrvmd_puggsyp = {
- "md_puggsyp", "md_puggsy", NULL, NULL, "1993",
- "Puggsy (Prototype)\0", NULL, "Psygnosis", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_puggsypRomInfo, md_puggsypRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Puggsy (USA)
-static struct BurnRomInfo md_puggsyuRomDesc[] = {
- { "puggsy (usa).bin", 0x100000, 0x70132168, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_puggsyu)
-STD_ROM_FN(md_puggsyu)
-
-struct BurnDriver BurnDrvmd_puggsyu = {
- "md_puggsyu", "md_puggsy", NULL, NULL, "1993",
- "Puggsy (USA)\0", NULL, "Psygnosis", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_puggsyuRomInfo, md_puggsyuRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Pulseman (Jpn)
-static struct BurnRomInfo md_pulsemanRomDesc[] = {
- { "pulseman (jpn).bin", 0x200000, 0x138a104e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_pulseman)
-STD_ROM_FN(md_pulseman)
-
-struct BurnDriver BurnDrvmd_pulseman = {
- "md_pulseman", NULL, NULL, NULL, "1994",
- "Pulseman (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_pulsemanRomInfo, md_pulsemanRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Punisher (Euro)
-static struct BurnRomInfo md_punisherRomDesc[] = {
- { "punisher, the (euro).bin", 0x200000, 0x729edd17, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_punisher)
-STD_ROM_FN(md_punisher)
-
-struct BurnDriver BurnDrvmd_punisher = {
- "md_punisher", NULL, NULL, NULL, "1994",
- "The Punisher (Euro)\0", NULL, "Capcom", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_punisherRomInfo, md_punisherRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Punisher (USA)
-static struct BurnRomInfo md_punisheruRomDesc[] = {
- { "punisher, the (usa).bin", 0x200000, 0x695cd8b8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_punisheru)
-STD_ROM_FN(md_punisheru)
-
-struct BurnDriver BurnDrvmd_punisheru = {
- "md_punisheru", "md_punisher", NULL, NULL, "1994",
- "The Punisher (USA)\0", NULL, "Capcom", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_punisheruRomInfo, md_punisheruRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Putter Golf (Jpn, SegaNet)
-static struct BurnRomInfo md_putterRomDesc[] = {
- { "putter golf (jpn) (sn).bin", 0x040000, 0x20f168a6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_putter)
-STD_ROM_FN(md_putter)
-
-struct BurnDriver BurnDrvmd_putter = {
- "md_putter", NULL, NULL, NULL, "1991",
- "Putter Golf (Jpn, SegaNet)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_putterRomInfo, md_putterRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Putter Golf (Jpn, Game no Kandume MegaCD Rip)
-static struct BurnRomInfo md_puttergnkRomDesc[] = {
- { "putter golf (jpn) (gnk).bin", 0x040000, 0xa6557faa, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_puttergnk)
-STD_ROM_FN(md_puttergnk)
-
-struct BurnDriver BurnDrvmd_puttergnk = {
- "md_puttergnk", "md_putter", NULL, NULL, "1991",
- "Putter Golf (Jpn, Game no Kandume MegaCD Rip)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_puttergnkRomInfo, md_puttergnkRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Puyo Puyo (Jpn)
-static struct BurnRomInfo md_puyopuyoRomDesc[] = {
- { "puyo puyo (jpn).bin", 0x080000, 0x7f26614e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_puyopuyo)
-STD_ROM_FN(md_puyopuyo)
-
-struct BurnDriver BurnDrvmd_puyopuyo = {
- "md_puyopuyo", NULL, NULL, NULL, "1992",
- "Puyo Puyo (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_puyopuyoRomInfo, md_puyopuyoRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Puyo Puyo 2 (Jpn, v1.1)
-static struct BurnRomInfo md_puyopuy2RomDesc[] = {
- { "puyo puyo 2 (jpn) (v1.1).bin", 0x200000, 0x25b7b2aa, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_puyopuy2)
-STD_ROM_FN(md_puyopuy2)
-
-struct BurnDriver BurnDrvmd_puyopuy2 = {
- "md_puyopuy2", NULL, NULL, NULL, "1994",
- "Puyo Puyo 2 (Jpn, v1.1)\0", NULL, "Compile", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_puyopuy2RomInfo, md_puyopuy2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Puyo Puyo 2 (Jpn)
-static struct BurnRomInfo md_puyopuy2aRomDesc[] = {
- { "puyo puyo 2 (jpn).bin", 0x200000, 0x51ad7797, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_puyopuy2a)
-STD_ROM_FN(md_puyopuy2a)
-
-struct BurnDriver BurnDrvmd_puyopuy2a = {
- "md_puyopuy2a", "md_puyopuy2", NULL, NULL, "1994",
- "Puyo Puyo 2 (Jpn)\0", NULL, "Compile", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_puyopuy2aRomInfo, md_puyopuy2aRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Puzzle & Action - Ichidant-R (Jpn)
-static struct BurnRomInfo md_ichirRomDesc[] = {
- { "puzzle & action - ichidanto-r (jpn).bin", 0x200000, 0x7bdec762, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ichir)
-STD_ROM_FN(md_ichir)
-
-struct BurnDriver BurnDrvmd_ichir = {
- "md_ichir", NULL, NULL, NULL, "1995",
- "Puzzle & Action - Ichidant-R (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_ichirRomInfo, md_ichirRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Puzzle & Action - Tant-R (Jpn)
-static struct BurnRomInfo md_tantrRomDesc[] = {
- { "puzzle & action - tanto-r (jpn).bin", 0x200000, 0xd2d2d437, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_tantr)
-STD_ROM_FN(md_tantr)
-
-struct BurnDriver BurnDrvmd_tantr = {
- "md_tantr", NULL, NULL, NULL, "1994",
- "Puzzle & Action - Tant-R (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_tantrRomInfo, md_tantrRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Pyramid Magic (Jpn, SegaNet)
-static struct BurnRomInfo md_pyramidRomDesc[] = {
- { "pyramid magic (jpn) (sn).bin", 0x040000, 0x306d839e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_pyramid)
-STD_ROM_FN(md_pyramid)
-
-struct BurnDriver BurnDrvmd_pyramid = {
- "md_pyramid", NULL, NULL, NULL, "1991",
- "Pyramid Magic (Jpn, SegaNet)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_pyramidRomInfo, md_pyramidRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Pyramid Magic (Jpn, Game no Kandume MegaCD Rip)
-static struct BurnRomInfo md_pyramidgnkRomDesc[] = {
- { "pyramid magic (jpn) (gnk).bin", 0x040000, 0xb20272ea, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_pyramidgnk)
-STD_ROM_FN(md_pyramidgnk)
-
-struct BurnDriver BurnDrvmd_pyramidgnk = {
- "md_pyramidgnk", "md_pyramid", NULL, NULL, "1991",
- "Pyramid Magic (Jpn, Game no Kandume MegaCD Rip)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_pyramidgnkRomInfo, md_pyramidgnkRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Pyramid Magic II (Jpn, SegaNet)
-static struct BurnRomInfo md_pyramid2RomDesc[] = {
- { "pyramid magic ii (jpn) (sn).bin", 0x040000, 0xc9ddac72, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_pyramid2)
-STD_ROM_FN(md_pyramid2)
-
-struct BurnDriver BurnDrvmd_pyramid2 = {
- "md_pyramid2", NULL, NULL, NULL, "1991",
- "Pyramid Magic II (Jpn, SegaNet)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_pyramid2RomInfo, md_pyramid2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Pyramid Magic III (Jpn, SegaNet)
-static struct BurnRomInfo md_pyramid3RomDesc[] = {
- { "pyramid magic iii (jpn) (sn).bin", 0x040000, 0x8329820a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_pyramid3)
-STD_ROM_FN(md_pyramid3)
-
-struct BurnDriver BurnDrvmd_pyramid3 = {
- "md_pyramid3", NULL, NULL, NULL, "1991",
- "Pyramid Magic III (Jpn, SegaNet)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_pyramid3RomInfo, md_pyramid3RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Pyramid Magic Special (Jpn, SegaNet)
-static struct BurnRomInfo md_pyramidsRomDesc[] = {
- { "pyramid magic special (jpn) (sn).bin", 0x040000, 0x153a3afa, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_pyramids)
-STD_ROM_FN(md_pyramids)
-
-struct BurnDriver BurnDrvmd_pyramids = {
- "md_pyramids", NULL, NULL, NULL, "1991",
- "Pyramid Magic Special (Jpn, SegaNet)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_pyramidsRomInfo, md_pyramidsRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// QuackShot Starring Donald Duck ~ QuackShot - Guruzia Ou no Hihou (World, Alt)
-static struct BurnRomInfo md_quacksht1RomDesc[] = {
- { "quackshot starring donald duck -- quackshot - guruzia ou no hihou (world) (alt).bin", 0x080000, 0x88c8dd94, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_quacksht1)
-STD_ROM_FN(md_quacksht1)
-
-struct BurnDriver BurnDrvmd_quacksht1 = {
- "md_quacksht1", "md_quacksht", NULL, NULL, "1991",
- "QuackShot Starring Donald Duck ~ QuackShot - Guruzia Ou no Hihou (World, Alt)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_quacksht1RomInfo, md_quacksht1RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Quad Challenge (USA)
-static struct BurnRomInfo md_quadchalRomDesc[] = {
- { "quad challenge (usa).bin", 0x080000, 0x74736a80, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_quadchal)
-STD_ROM_FN(md_quadchal)
-
-struct BurnDriver BurnDrvmd_quadchal = {
- "md_quadchal", NULL, NULL, NULL, "1991",
- "Quad Challenge (USA)\0", NULL, "Namco", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_quadchalRomInfo, md_quadchalRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// MegaTrax (Jpn)
-static struct BurnRomInfo md_megatraxRomDesc[] = {
- { "megatrax (jpn).bin", 0x080000, 0xa0837741, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_megatrax)
-STD_ROM_FN(md_megatrax)
-
-struct BurnDriver BurnDrvmd_megatrax = {
- "md_megatrax", "md_quadchal", NULL, NULL, "1991",
- "MegaTrax (Jpn)\0", NULL, "Namcot", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_megatraxRomInfo, md_megatraxRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Queen of Poker Club (Tw)
-static struct BurnRomInfo md_qpokerRomDesc[] = {
- { "poker club (sachen).bin", 0x100000, 0xae28d9eb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_qpoker)
-STD_ROM_FN(md_qpoker)
-
-struct BurnDriver BurnDrvmd_qpoker = {
- "md_qpoker", NULL, NULL, NULL, "199?",
- "Queen of Poker Club (Tw)\0", NULL, "Sachen", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_qpokerRomInfo, md_qpokerRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// R.B.I. Baseball '93 (USA)
-static struct BurnRomInfo md_rbibb93RomDesc[] = {
- { "r.b.i. baseball '93 (usa).bin", 0x100000, 0xbeafce84, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_rbibb93)
-STD_ROM_FN(md_rbibb93)
-
-struct BurnDriver BurnDrvmd_rbibb93 = {
- "md_rbibb93", NULL, NULL, NULL, "1993",
- "R.B.I. Baseball '93 (USA)\0", NULL, "Tengen", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_rbibb93RomInfo, md_rbibb93RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// R.B.I. Baseball '94 (Euro, USA)
-static struct BurnRomInfo md_rbibb94RomDesc[] = {
- { "r.b.i. baseball '94 (euro, usa).bin", 0x200000, 0x4eb4d5e4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_rbibb94)
-STD_ROM_FN(md_rbibb94)
-
-struct BurnDriver BurnDrvmd_rbibb94 = {
- "md_rbibb94", NULL, NULL, NULL, "1994",
- "R.B.I. Baseball '94 (Euro, USA)\0", NULL, "Tengen", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_rbibb94RomInfo, md_rbibb94RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// R.B.I. Baseball 3 (USA)
-static struct BurnRomInfo md_rbibb3RomDesc[] = {
- { "r.b.i. baseball 3 (usa).bin", 0x080000, 0x4840348c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_rbibb3)
-STD_ROM_FN(md_rbibb3)
-
-struct BurnDriver BurnDrvmd_rbibb3 = {
- "md_rbibb3", NULL, NULL, NULL, "1991",
- "R.B.I. Baseball 3 (USA)\0", NULL, "Tengen", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_rbibb3RomInfo, md_rbibb3RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// R.B.I. Baseball 4 (USA)
-static struct BurnRomInfo md_rbibb4RomDesc[] = {
- { "r.b.i. baseball 4 (usa).bin", 0x100000, 0xfecf9b94, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_rbibb4)
-STD_ROM_FN(md_rbibb4)
-
-struct BurnDriver BurnDrvmd_rbibb4 = {
- "md_rbibb4", NULL, NULL, NULL, "1992",
- "R.B.I. Baseball 4 (USA)\0", NULL, "Tengen", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_rbibb4RomInfo, md_rbibb4RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// R.B.I. Baseball 4 (Prototype)
-static struct BurnRomInfo md_rbibb4pRomDesc[] = {
- { "r.b.i. baseball 4 (beta).bin", 0x100000, 0xf7420278, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_rbibb4p)
-STD_ROM_FN(md_rbibb4p)
-
-struct BurnDriver BurnDrvmd_rbibb4p = {
- "md_rbibb4p", "md_rbibb4", NULL, NULL, "1992",
- "R.B.I. Baseball 4 (Prototype)\0", NULL, "Tengen", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_rbibb4pRomInfo, md_rbibb4pRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// R.B.I. Baseball 4 (Jpn)
-static struct BurnRomInfo md_rbibb4jRomDesc[] = {
- { "r.b.i. baseball 4 (jpn).bin", 0x100000, 0x8f4e1005, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_rbibb4j)
-STD_ROM_FN(md_rbibb4j)
-
-struct BurnDriver BurnDrvmd_rbibb4j = {
- "md_rbibb4j", "md_rbibb4", NULL, NULL, "1992",
- "R.B.I. Baseball 4 (Jpn)\0", NULL, "Tengen", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_rbibb4jRomInfo, md_rbibb4jRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Race Drivin' (USA)
-static struct BurnRomInfo md_racedrivRomDesc[] = {
- { "race drivin' (usa).bin", 0x080000, 0xd737cf3d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_racedriv)
-STD_ROM_FN(md_racedriv)
-
-struct BurnDriver BurnDrvmd_racedriv = {
- "md_racedriv", NULL, NULL, NULL, "1993",
- "Race Drivin' (USA)\0", NULL, "Tengen", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_racedrivRomInfo, md_racedrivRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Radical Rex (Euro)
-static struct BurnRomInfo md_radrexRomDesc[] = {
- { "radical rex (euro).bin", 0x100000, 0xd02d3282, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_radrex)
-STD_ROM_FN(md_radrex)
-
-struct BurnDriver BurnDrvmd_radrex = {
- "md_radrex", NULL, NULL, NULL, "1994",
- "Radical Rex (Euro)\0", NULL, "Activision", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_radrexRomInfo, md_radrexRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Radical Rex (USA)
-static struct BurnRomInfo md_radrexuRomDesc[] = {
- { "radical rex (usa).bin", 0x100000, 0x2e6eec7e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_radrexu)
-STD_ROM_FN(md_radrexu)
-
-struct BurnDriver BurnDrvmd_radrexu = {
- "md_radrexu", "md_radrex", NULL, NULL, "1994",
- "Radical Rex (USA)\0", NULL, "Activision", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_radrexuRomInfo, md_radrexuRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Raiden Trad (USA) ~ Raiden Densetsu (Jpn)
-static struct BurnRomInfo md_raidenRomDesc[] = {
- { "raiden trad -- raiden densetsu (usa, jpn).bin", 0x100000, 0xf839a811, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_raiden)
-STD_ROM_FN(md_raiden)
-
-struct BurnDriver BurnDrvmd_raiden = {
- "md_raiden", NULL, NULL, NULL, "1991",
- "Raiden Trad (USA) ~ Raiden Densetsu (Jpn)\0", NULL, "Micronet", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_raidenRomInfo, md_raidenRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Rainbow Islands Extra (Jpn)
-static struct BurnRomInfo md_rbislandRomDesc[] = {
- { "rainbow islands extra (jpn).bin", 0x080000, 0xc74dcb35, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_rbisland)
-STD_ROM_FN(md_rbisland)
-
-struct BurnDriver BurnDrvmd_rbisland = {
- "md_rbisland", NULL, NULL, NULL, "1990",
- "Rainbow Islands Extra (Jpn)\0", NULL, "Taito", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_rbislandRomInfo, md_rbislandRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Rambo III (World, v1.1)
-static struct BurnRomInfo md_rambo3RomDesc[] = {
- { "rambo iii (world) (v1.1).bin", 0x040000, 0x4d47a647, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_rambo3)
-STD_ROM_FN(md_rambo3)
-
-struct BurnDriver BurnDrvmd_rambo3 = {
- "md_rambo3", NULL, NULL, NULL, "1989",
- "Rambo III (World, v1.1)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_rambo3RomInfo, md_rambo3RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Rambo III (World)
-static struct BurnRomInfo md_rambo3aRomDesc[] = {
- { "mpr-12651.bin", 0x040000, 0x2232f03d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_rambo3a)
-STD_ROM_FN(md_rambo3a)
-
-struct BurnDriver BurnDrvmd_rambo3a = {
- "md_rambo3a", "md_rambo3", NULL, NULL, "1989",
- "Rambo III (World)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_rambo3aRomInfo, md_rambo3aRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Rampart (USA)
-static struct BurnRomInfo md_rampartRomDesc[] = {
- { "rampart (usa).bin", 0x080000, 0x9c4dd057, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_rampart)
-STD_ROM_FN(md_rampart)
-
-struct BurnDriver BurnDrvmd_rampart = {
- "md_rampart", NULL, NULL, NULL, "1991",
- "Rampart (USA)\0", NULL, "Tengen", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_rampartRomInfo, md_rampartRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Rampart (Jpn, Kor)
-static struct BurnRomInfo md_rampartjRomDesc[] = {
- { "rampart (jpn, kor).bin", 0x080000, 0x16ead64c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_rampartj)
-STD_ROM_FN(md_rampartj)
-
-struct BurnDriver BurnDrvmd_rampartj = {
- "md_rampartj", "md_rampart", NULL, NULL, "1992",
- "Rampart (Jpn, Kor)\0", NULL, "Tengen", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_rampartjRomInfo, md_rampartjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Ranger-X (Euro)
-static struct BurnRomInfo md_rangerxRomDesc[] = {
- { "ranger-x (euro).bin", 0x100000, 0xb8c04804, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_rangerx)
-STD_ROM_FN(md_rangerx)
-
-struct BurnDriver BurnDrvmd_rangerx = {
- "md_rangerx", NULL, NULL, NULL, "1993",
- "Ranger-X (Euro)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_rangerxRomInfo, md_rangerxRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Ranger-X (USA)
-static struct BurnRomInfo md_rangerxuRomDesc[] = {
- { "ranger-x (usa).bin", 0x100000, 0x55915915, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_rangerxu)
-STD_ROM_FN(md_rangerxu)
-
-struct BurnDriver BurnDrvmd_rangerxu = {
- "md_rangerxu", "md_rangerx", NULL, NULL, "1993",
- "Ranger-X (USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_rangerxuRomInfo, md_rangerxuRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Ex-Ranza (Jpn)
-static struct BurnRomInfo md_exranzaRomDesc[] = {
- { "mpr-15585.bin", 0x100000, 0x349bb68d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_exranza)
-STD_ROM_FN(md_exranza)
-
-struct BurnDriver BurnDrvmd_exranza = {
- "md_exranza", "md_rangerx", NULL, NULL, "1993",
- "Ex-Ranza (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_exranzaRomInfo, md_exranzaRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Ex-Ranza (Jpn, Prototype)
-static struct BurnRomInfo md_exranzapRomDesc[] = {
- { "ex-ranza (jpn) (beta).bin", 0x100000, 0xc642fdf4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_exranzap)
-STD_ROM_FN(md_exranzap)
-
-struct BurnDriver BurnDrvmd_exranzap = {
- "md_exranzap", "md_rangerx", NULL, NULL, "1993",
- "Ex-Ranza (Jpn, Prototype)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_exranzapRomInfo, md_exranzapRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Ransei no Hasha (Jpn)
-static struct BurnRomInfo md_ranseiRomDesc[] = {
- { "ransei no hasha (jpn).bin", 0x100000, 0xa9a0083d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ransei)
-STD_ROM_FN(md_ransei)
-
-struct BurnDriver BurnDrvmd_ransei = {
- "md_ransei", NULL, NULL, NULL, "1991",
- "Ransei no Hasha (Jpn)\0", NULL, "Asmik Ace", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_ranseiRomInfo, md_ranseiRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Rastan Saga II (USA)
-static struct BurnRomInfo md_rastan2RomDesc[] = {
- { "rastan saga ii (usa).bin", 0x080000, 0xc7ee8965, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_rastan2)
-STD_ROM_FN(md_rastan2)
-
-struct BurnDriver BurnDrvmd_rastan2 = {
- "md_rastan2", NULL, NULL, NULL, "1990",
- "Rastan Saga II (USA)\0", NULL, "Taito", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_rastan2RomInfo, md_rastan2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Rastan Saga II (Jpn)
-static struct BurnRomInfo md_rastan2jRomDesc[] = {
- { "rastan saga ii (jpn).bin", 0x080000, 0xebacfb5a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_rastan2j)
-STD_ROM_FN(md_rastan2j)
-
-struct BurnDriver BurnDrvmd_rastan2j = {
- "md_rastan2j", "md_rastan2", NULL, NULL, "1990",
- "Rastan Saga II (Jpn)\0", NULL, "Taito", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_rastan2jRomInfo, md_rastan2jRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Red Zone (Euro, USA)
-static struct BurnRomInfo md_redzoneRomDesc[] = {
- { "red zone (euro, usa).bin", 0x200000, 0x56512ee5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_redzone)
-STD_ROM_FN(md_redzone)
-
-struct BurnDriver BurnDrvmd_redzone = {
- "md_redzone", NULL, NULL, NULL, "1994",
- "Red Zone (Euro, USA)\0", NULL, "Time Warner Interactive", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_redzoneRomInfo, md_redzoneRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Stimpy's Invention Starring Starring Ren Hok & Stimpy (Euro)
-static struct BurnRomInfo md_renstimRomDesc[] = {
- { "ren & stimpy show presents stimpy's invention, the (euro).bin", 0x100000, 0xc276c220, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_renstim)
-STD_ROM_FN(md_renstim)
-
-struct BurnDriver BurnDrvmd_renstim = {
- "md_renstim", NULL, NULL, NULL, "1993",
- "Stimpy's Invention Starring Starring Ren Hoek & Stimpy (Euro)\0", NULL, "Sega", "Sega Megadrive",
- L"Stimpy's Invention Starring Starring Ren Ho\u00EBk & Stimpy (Euro)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_renstimRomInfo, md_renstimRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Stimpy's Invention Starring Starring Ren Hok & Stimpy (USA)
-static struct BurnRomInfo md_renstimuRomDesc[] = {
- { "ren & stimpy show presents stimpy's invention, the (usa).bin", 0x100000, 0xd9503ba5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_renstimu)
-STD_ROM_FN(md_renstimu)
-
-struct BurnDriver BurnDrvmd_renstimu = {
- "md_renstimu", "md_renstim", NULL, NULL, "1993",
- "Stimpy's Invention Starring Starring Ren Hoek & Stimpy (USA)\0", NULL, "Sega", "Sega Megadrive",
- L"Stimpy's Invention Starring Starring Ren Ho\u00EBk & Stimpy (USA)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_renstimuRomInfo, md_renstimuRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Stimpy's Invention Starring Starring Ren Hok & Stimpy (USA, Prototype)
-static struct BurnRomInfo md_renstimupRomDesc[] = {
- { "ren & stimpy show presents stimpy's invention, the (usa) (beta).bin", 0x100000, 0xfcb86336, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_renstimup)
-STD_ROM_FN(md_renstimup)
-
-struct BurnDriver BurnDrvmd_renstimup = {
- "md_renstimup", "md_renstim", NULL, NULL, "1993",
- "Stimpy's Invention Starring Starring Ren Hoek & Stimpy (USA, Prototype)\0", NULL, "Sega", "Sega Megadrive",
- L"Stimpy's Invention Starring Starring Ren Ho\u00EBk & Stimpy (USA, Prototype)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_renstimupRomInfo, md_renstimupRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Rent a Hero (Jpn)
-static struct BurnRomInfo md_rentheroRomDesc[] = {
- { "mpr-14187.bin", 0x100000, 0x2e515f82, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_renthero)
-STD_ROM_FN(md_renthero)
-
-struct BurnDriver BurnDrvmd_renthero = {
- "md_renthero", NULL, NULL, NULL, "1991",
- "Rent a Hero (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_rentheroRomInfo, md_rentheroRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Resq (Euro, Prototype)
-static struct BurnRomInfo md_resqRomDesc[] = {
- { "resq (euro) (prototype).bin", 0x100000, 0x558e35e0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_resq)
-STD_ROM_FN(md_resq)
-
-struct BurnDriver BurnDrvmd_resq = {
- "md_resq", NULL, NULL, NULL, "199?",
- "Resq (Euro, Prototype)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_resqRomInfo, md_resqRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Revenge of Shinobi (Euro, USA, Rev. B)
-static struct BurnRomInfo md_revshinRomDesc[] = {
- { "mpr-12930b.bin", 0x080000, 0x4d35ebe4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_revshin)
-STD_ROM_FN(md_revshin)
-
-struct BurnDriver BurnDrvmd_revshin = {
- "md_revshin", NULL, NULL, NULL, "1989",
- "The Revenge of Shinobi (Euro, USA, Rev. B)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_revshinRomInfo, md_revshinRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Revenge of Shinobi (Euro, USA, Rev. A)
-static struct BurnRomInfo md_revshin1RomDesc[] = {
- { "revenge of shinobi, the (euro, usa) (rev a).bin", 0x080000, 0xfe91ab7e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_revshin1)
-STD_ROM_FN(md_revshin1)
-
-struct BurnDriver BurnDrvmd_revshin1 = {
- "md_revshin1", "md_revshin", NULL, NULL, "1989",
- "The Revenge of Shinobi (Euro, USA, Rev. A)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_revshin1RomInfo, md_revshin1RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Revenge of Shinobi (Euro, USA)
-static struct BurnRomInfo md_revshin2RomDesc[] = {
- { "revenge of shinobi, the (euro, usa).bin", 0x080000, 0x05f27994, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_revshin2)
-STD_ROM_FN(md_revshin2)
-
-struct BurnDriver BurnDrvmd_revshin2 = {
- "md_revshin2", "md_revshin", NULL, NULL, "1989",
- "The Revenge of Shinobi (Euro, USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_revshin2RomInfo, md_revshin2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Super Shinobi (Jpn)
-static struct BurnRomInfo md_supshinRomDesc[] = {
- { "mpr-12675.bin", 0x080000, 0x5c7e5ea6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_supshin)
-STD_ROM_FN(md_supshin)
-
-struct BurnDriver BurnDrvmd_supshin = {
- "md_supshin", "md_revshin", NULL, NULL, "1989",
- "The Super Shinobi (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_supshinRomInfo, md_supshinRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Revolution X (Euro, USA)
-static struct BurnRomInfo md_revxRomDesc[] = {
- { "revolution x (euro, usa).bin", 0x400000, 0x5fb0c5d4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_revx)
-STD_ROM_FN(md_revx)
-
-struct BurnDriver BurnDrvmd_revx = {
- "md_revx", NULL, NULL, NULL, "1995",
- "Revolution X (Euro, USA)\0", NULL, "Acclaim Entertainment", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_revxRomInfo, md_revxRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Richard Scarry's BusyTown (USA)
-static struct BurnRomInfo md_rsbtRomDesc[] = {
- { "richard scarry's busytown (usa).bin", 0x200000, 0x7bb60c3f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_rsbt)
-STD_ROM_FN(md_rsbt)
-
-struct BurnDriver BurnDrvmd_rsbt = {
- "md_rsbt", NULL, NULL, NULL, "1994",
- "Richard Scarry's BusyTown (USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_rsbtRomInfo, md_rsbtRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Richard Scarry's Busytown (Prototype, 19940809)
-static struct BurnRomInfo md_rsbtp6RomDesc[] = {
- { "richard scarry's busytown (prototype - aug 09, 1994).bin", 0x1fecec, 0xc48cbc30, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_rsbtp6)
-STD_ROM_FN(md_rsbtp6)
-
-struct BurnDriver BurnDrvmd_rsbtp6 = {
- "md_rsbtp6", "md_rsbt", NULL, NULL, "1994",
- "Richard Scarry's Busytown (Prototype, 19940809)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_rsbtp6RomInfo, md_rsbtp6RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Richard Scarry's Busytown (Prototype, 19940815)
-static struct BurnRomInfo md_rsbtp5RomDesc[] = {
- { "richard scarry's busytown (prototype - aug 15, 1994).bin", 0x200000, 0x650ed917, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_rsbtp5)
-STD_ROM_FN(md_rsbtp5)
-
-struct BurnDriver BurnDrvmd_rsbtp5 = {
- "md_rsbtp5", "md_rsbt", NULL, NULL, "1994",
- "Richard Scarry's Busytown (Prototype, 19940815)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_rsbtp5RomInfo, md_rsbtp5RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Richard Scarry's Busytown (Prototype, 19940816-B)
-static struct BurnRomInfo md_rsbtp4RomDesc[] = {
- { "richard scarry's busytown (prototype - aug 16, 1994 - b).bin", 0x200000, 0x760cff62, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_rsbtp4)
-STD_ROM_FN(md_rsbtp4)
-
-struct BurnDriver BurnDrvmd_rsbtp4 = {
- "md_rsbtp4", "md_rsbt", NULL, NULL, "1994",
- "Richard Scarry's Busytown (Prototype, 19940816-B)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_rsbtp4RomInfo, md_rsbtp4RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Richard Scarry's Busytown (Prototype, 19940817)
-static struct BurnRomInfo md_rsbtp3RomDesc[] = {
- { "richard scarry's busytown (prototype - aug 17, 1994).bin", 0x1ffaa4, 0x3b9c3f4a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_rsbtp3)
-STD_ROM_FN(md_rsbtp3)
-
-struct BurnDriver BurnDrvmd_rsbtp3 = {
- "md_rsbtp3", "md_rsbt", NULL, NULL, "1994",
- "Richard Scarry's Busytown (Prototype, 19940817)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_rsbtp3RomInfo, md_rsbtp3RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Richard Scarry's Busytown (Prototype, 19940825)
-static struct BurnRomInfo md_rsbtp2RomDesc[] = {
- { "richard scarry's busytown (prototype - aug 25, 1994).bin", 0x200000, 0xa0c013ba, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_rsbtp2)
-STD_ROM_FN(md_rsbtp2)
-
-struct BurnDriver BurnDrvmd_rsbtp2 = {
- "md_rsbtp2", "md_rsbt", NULL, NULL, "1994",
- "Richard Scarry's Busytown (Prototype, 19940825)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_rsbtp2RomInfo, md_rsbtp2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Richard Scarry's Busytown (Prototype, 19940826)
-static struct BurnRomInfo md_rsbtp1RomDesc[] = {
- { "richard scarry's busytown (prototype - aug 26, 1994).bin", 0x200000, 0x1ad270f3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_rsbtp1)
-STD_ROM_FN(md_rsbtp1)
-
-struct BurnDriver BurnDrvmd_rsbtp1 = {
- "md_rsbtp1", "md_rsbt", NULL, NULL, "1994",
- "Richard Scarry's Busytown (Prototype, 19940826)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_rsbtp1RomInfo, md_rsbtp1RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Richard Scarry's Busytown (Prototype, 19940721)
-static struct BurnRomInfo md_rsbtp7RomDesc[] = {
- { "richard scarry's busytown (prototype - jul 21, 1994).bin", 0x1f3008, 0x1e92d6ff, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_rsbtp7)
-STD_ROM_FN(md_rsbtp7)
-
-struct BurnDriver BurnDrvmd_rsbtp7 = {
- "md_rsbtp7", "md_rsbt", NULL, NULL, "1994",
- "Richard Scarry's Busytown (Prototype, 19940721)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_rsbtp7RomInfo, md_rsbtp7RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Riddle Wired (Jpn, SegaNet)
-static struct BurnRomInfo md_riddleRomDesc[] = {
- { "riddle wired (jpn) (sn).bin", 0x040000, 0xfae3d720, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_riddle)
-STD_ROM_FN(md_riddle)
-
-struct BurnDriver BurnDrvmd_riddle = {
- "md_riddle", NULL, NULL, NULL, "1991",
- "Riddle Wired (Jpn, SegaNet)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_riddleRomInfo, md_riddleRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Rings of Power (Euro, USA)
-static struct BurnRomInfo md_ringspowRomDesc[] = {
- { "rin09.bin", 0x100000, 0x41fcc497, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ringspow)
-STD_ROM_FN(md_ringspow)
-
-struct BurnDriver BurnDrvmd_ringspow = {
- "md_ringspow", NULL, NULL, NULL, "1991",
- "Rings of Power (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_EA_NHLPA, GBF_MISC, 0,
- MegadriveGetZipName, md_ringspowRomInfo, md_ringspowRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Risk (USA)
-static struct BurnRomInfo md_riskRomDesc[] = {
- { "risk (usa).bin", 0x080000, 0x80416d0d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_risk)
-STD_ROM_FN(md_risk)
-
-struct BurnDriver BurnDrvmd_risk = {
- "md_risk", NULL, NULL, NULL, "1994",
- "Risk (USA)\0", NULL, "Parker Brothers", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_riskRomInfo, md_riskRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Risky Woods (Euro, USA)
-static struct BurnRomInfo md_riskywRomDesc[] = {
- { "risky woods (euro, usa).bin", 0x100000, 0xd975e93c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_riskyw)
-STD_ROM_FN(md_riskyw)
-
-struct BurnDriver BurnDrvmd_riskyw = {
- "md_riskyw", NULL, NULL, NULL, "1992",
- "Risky Woods (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_riskywRomInfo, md_riskywRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Jashin Draxos (Jpn, Kor)
-static struct BurnRomInfo md_draxosRomDesc[] = {
- { "jashin draxos (jpn, kor).bin", 0x100000, 0x1ea07af2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_draxos)
-STD_ROM_FN(md_draxos)
-
-struct BurnDriver BurnDrvmd_draxos = {
- "md_draxos", "md_riskyw", NULL, NULL, "1993",
- "Jashin Draxos (Jpn, Kor)\0", NULL, "Electronic Arts Victor", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_draxosRomInfo, md_draxosRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Ristar (Euro, USA, 199409)
-static struct BurnRomInfo md_ristarRomDesc[] = {
- { "ristar (euro, usa) (september 1994).bin", 0x200000, 0x6511aa61, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ristar)
-STD_ROM_FN(md_ristar)
-
-struct BurnDriver BurnDrvmd_ristar = {
- "md_ristar", NULL, NULL, NULL, "1994",
- "Ristar (Euro, USA, 199409)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_ristarRomInfo, md_ristarRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Ristar (Euro, USA, 199408)
-static struct BurnRomInfo md_ristar1RomDesc[] = {
- { "ristar (euro, usa) (august 1994).bin", 0x200000, 0x9700139b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ristar1)
-STD_ROM_FN(md_ristar1)
-
-struct BurnDriver BurnDrvmd_ristar1 = {
- "md_ristar1", "md_ristar", NULL, NULL, "1994",
- "Ristar (Euro, USA, 199408)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_ristar1RomInfo, md_ristar1RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Ristar - The Shooting Star (Jpn, Kor)
-static struct BurnRomInfo md_ristarjRomDesc[] = {
- { "ristar - the shooting star (jpn, kor).bin", 0x200000, 0xce464f0e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ristarj)
-STD_ROM_FN(md_ristarj)
-
-struct BurnDriver BurnDrvmd_ristarj = {
- "md_ristarj", "md_ristar", NULL, NULL, "1995",
- "Ristar - The Shooting Star (Jpn, Kor)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_ristarjRomInfo, md_ristarjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Ristar (Prototype, 19940812)
-static struct BurnRomInfo md_ristarp2RomDesc[] = {
- { "ristar (prototype - aug 12, 1994).bin", 0x200000, 0x4371f046, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ristarp2)
-STD_ROM_FN(md_ristarp2)
-
-struct BurnDriver BurnDrvmd_ristarp2 = {
- "md_ristarp2", "md_ristar", NULL, NULL, "1994",
- "Ristar (Prototype, 19940812)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_ristarp2RomInfo, md_ristarp2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Ristar (Prototype, 19940826)
-static struct BurnRomInfo md_ristarp1RomDesc[] = {
- { "ristar (prototype - aug 26, 1994).bin", 0x200000, 0xd0c74fdd, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ristarp1)
-STD_ROM_FN(md_ristarp1)
-
-struct BurnDriver BurnDrvmd_ristarp1 = {
- "md_ristarp1", "md_ristar", NULL, NULL, "1994",
- "Ristar (Prototype, 19940826)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_ristarp1RomInfo, md_ristarp1RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Ristar (Prototype, 19940701)
-static struct BurnRomInfo md_ristarp4RomDesc[] = {
- { "ristar (prototype - jul 01, 1994).bin", 0x200000, 0x7c5c7a0a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ristarp4)
-STD_ROM_FN(md_ristarp4)
-
-struct BurnDriver BurnDrvmd_ristarp4 = {
- "md_ristarp4", "md_ristar", NULL, NULL, "1994",
- "Ristar (Prototype, 19940701)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_ristarp4RomInfo, md_ristarp4RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Ristar (Prototype, 19940718)
-static struct BurnRomInfo md_ristarp3RomDesc[] = {
- { "ristar (prototype - jul 18, 1994).bin", 0x200000, 0x6becccc9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ristarp3)
-STD_ROM_FN(md_ristarp3)
-
-struct BurnDriver BurnDrvmd_ristarp3 = {
- "md_ristarp3", "md_ristar", NULL, NULL, "1994",
- "Ristar (Prototype, 19940718)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_ristarp3RomInfo, md_ristarp3RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Road Rash (Euro, USA)
-static struct BurnRomInfo md_roadrashRomDesc[] = {
- { "road rash (euro, usa).bin", 0x0c0000, 0xdea53d19, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_roadrash)
-STD_ROM_FN(md_roadrash)
-
-struct BurnDriver BurnDrvmd_roadrash = {
- "md_roadrash", NULL, NULL, NULL, "1991",
- "Road Rash (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_roadrashRomInfo, md_roadrashRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Road Rash II (Euro, USA, v1.2)
-static struct BurnRomInfo md_rrash2RomDesc[] = {
- { "road rash ii (euro, usa) (v1.2).bin", 0x100000, 0x0876e992, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_rrash2)
-STD_ROM_FN(md_rrash2)
-
-struct BurnDriver BurnDrvmd_rrash2 = {
- "md_rrash2", NULL, NULL, NULL, "1992",
- "Road Rash II (Euro, USA, v1.2)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_rrash2RomInfo, md_rrash2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Road Rash II (Euro, USA)
-static struct BurnRomInfo md_rrash2aRomDesc[] = {
- { "rr205.bin", 0x100000, 0x7b29c209, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_rrash2a)
-STD_ROM_FN(md_rrash2a)
-
-struct BurnDriver BurnDrvmd_rrash2a = {
- "md_rrash2a", "md_rrash2", NULL, NULL, "1992",
- "Road Rash II (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_rrash2aRomInfo, md_rrash2aRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Road Rash II (Jpn)
-static struct BurnRomInfo md_rrash2jRomDesc[] = {
- { "road rash ii (jpn).bin", 0x100000, 0x9a5723b6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_rrash2j)
-STD_ROM_FN(md_rrash2j)
-
-struct BurnDriver BurnDrvmd_rrash2j = {
- "md_rrash2j", "md_rrash2", NULL, NULL, "1993",
- "Road Rash II (Jpn)\0", NULL, "Electronic Arts Victor", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_rrash2jRomInfo, md_rrash2jRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Road 3 Rash - Tour de Force (Euro, USA)
-static struct BurnRomInfo md_rrash3RomDesc[] = {
- { "rr3b3.bin", 0x200000, 0x15785956, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_rrash3)
-STD_ROM_FN(md_rrash3)
-
-struct BurnDriver BurnDrvmd_rrash3 = {
- "md_rrash3", NULL, NULL, NULL, "1995",
- "Road 3 Rash - Tour de Force (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_rrash3RomInfo, md_rrash3RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Road 3 Rash - World Warriors (USA, Prototype)
-static struct BurnRomInfo md_rrash3pRomDesc[] = {
- { "road rash 3 (usa) (alpha).bin", 0x200000, 0xb6626083, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_rrash3p)
-STD_ROM_FN(md_rrash3p)
-
-struct BurnDriver BurnDrvmd_rrash3p = {
- "md_rrash3p", "md_rrash3", NULL, NULL, "1995",
- "Road 3 Rash - World Warriors (USA, Prototype)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_rrash3pRomInfo, md_rrash3pRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// RoadBlasters (USA)
-static struct BurnRomInfo md_roadblstRomDesc[] = {
- { "roadblasters (usa).bin", 0x080000, 0xec6cd5f0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_roadblst)
-STD_ROM_FN(md_roadblst)
-
-struct BurnDriver BurnDrvmd_roadblst = {
- "md_roadblst", NULL, NULL, NULL, "1991",
- "RoadBlasters (USA)\0", NULL, "Tengen", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_roadblstRomInfo, md_roadblstRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// RoadBlasters (Jpn)
-static struct BurnRomInfo md_roadblstjRomDesc[] = {
- { "roadblasters (jpn).bin", 0x080000, 0xa0015440, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_roadblstj)
-STD_ROM_FN(md_roadblstj)
-
-struct BurnDriver BurnDrvmd_roadblstj = {
- "md_roadblstj", "md_roadblst", NULL, NULL, "1992",
- "RoadBlasters (Jpn)\0", NULL, "Tengen", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_roadblstjRomInfo, md_roadblstjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// RoboCop 3 (Euro, USA)
-static struct BurnRomInfo md_robocop3RomDesc[] = {
- { "robocop 3 (euro, usa).bin", 0x080000, 0x34fb7b27, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_robocop3)
-STD_ROM_FN(md_robocop3)
-
-struct BurnDriver BurnDrvmd_robocop3 = {
- "md_robocop3", NULL, NULL, NULL, "1993",
- "RoboCop 3 (Euro, USA)\0", NULL, "Flying Edge", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_robocop3RomInfo, md_robocop3RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// RoboCop versus The Terminator (Euro)
-static struct BurnRomInfo md_robotermRomDesc[] = {
- { "robocop versus the terminator (euro).bin", 0x200000, 0x85a93f8d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_roboterm)
-STD_ROM_FN(md_roboterm)
-
-struct BurnDriver BurnDrvmd_roboterm = {
- "md_roboterm", NULL, NULL, NULL, "1994",
- "RoboCop versus The Terminator (Euro)\0", NULL, "Virgin Interactive", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_robotermRomInfo, md_robotermRomName, NULL, NULL, MegadriveInputInfo, MegadrivePALDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// RoboCop versus The Terminator (Jpn, Kor)
-static struct BurnRomInfo md_robotermjRomDesc[] = {
- { "robocop versus the terminator (jpn, kor).bin", 0x200000, 0xd444e1f0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_robotermj)
-STD_ROM_FN(md_robotermj)
-
-struct BurnDriver BurnDrvmd_robotermj = {
- "md_robotermj", "md_roboterm", NULL, NULL, "1994",
- "RoboCop versus The Terminator (Jpn, Kor)\0", NULL, "Virgin Interactive", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_robotermjRomInfo, md_robotermjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// RoboCop versus The Terminator (Prototype)
-static struct BurnRomInfo md_robotermpRomDesc[] = {
- { "robocop versus the terminator (beta).bin", 0x200000, 0x2487049f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_robotermp)
-STD_ROM_FN(md_robotermp)
-
-struct BurnDriver BurnDrvmd_robotermp = {
- "md_robotermp", "md_roboterm", NULL, NULL, "1994",
- "RoboCop versus The Terminator (Prototype)\0", NULL, "Virgin Interactive", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_robotermpRomInfo, md_robotermpRomName, NULL, NULL, MegadriveInputInfo, MegadrivePALDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Robocop Versus The Terminator (Prototype, Alt)
-static struct BurnRomInfo md_robotermp1RomDesc[] = {
- { "robocop versus the terminator (beta) (alt).bin", 0x200000, 0xecebff29, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_robotermp1)
-STD_ROM_FN(md_robotermp1)
-
-struct BurnDriver BurnDrvmd_robotermp1 = {
- "md_robotermp1", "md_roboterm", NULL, NULL, "1994",
- "Robocop Versus The Terminator (Prototype, Alt)\0", NULL, "Virgin Interactive", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_robotermp1RomInfo, md_robotermp1RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// RoboCop versus The Terminator (USA)
-static struct BurnRomInfo md_robotermuRomDesc[] = {
- { "robocop versus the terminator (usa).bin", 0x200000, 0xbbad77a4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_robotermu)
-STD_ROM_FN(md_robotermu)
-
-struct BurnDriver BurnDrvmd_robotermu = {
- "md_robotermu", "md_roboterm", NULL, NULL, "1994",
- "RoboCop versus The Terminator (USA)\0", NULL, "Virgin Games", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_robotermuRomInfo, md_robotermuRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Robot Battler (Jpn, SegaNet)
-static struct BurnRomInfo md_robotbatRomDesc[] = {
- { "robot battler (jpn) (sn).bin", 0x040000, 0xfdf23eff, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_robotbat)
-STD_ROM_FN(md_robotbat)
-
-struct BurnDriver BurnDrvmd_robotbat = {
- "md_robotbat", NULL, NULL, NULL, "1991",
- "Robot Battler (Jpn, SegaNet)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_robotbatRomInfo, md_robotbatRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Robot Wreckage (USA, Prototype)
-static struct BurnRomInfo md_robowrekRomDesc[] = {
- { "robot wreckage (usa) (prototype).bin", 0x100000, 0xc67ddb14, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_robowrek)
-STD_ROM_FN(md_robowrek)
-
-struct BurnDriver BurnDrvmd_robowrek = {
- "md_robowrek", NULL, NULL, NULL, "199?",
- "Robot Wreckage (USA, Prototype)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_robowrekRomInfo, md_robowrekRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Rock n' Roll Racing (Euro)
-static struct BurnRomInfo md_rnrracinRomDesc[] = {
- { "rock n' roll racing (euro).bin", 0x100000, 0xbc5a0562, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_rnrracin)
-STD_ROM_FN(md_rnrracin)
-
-struct BurnDriver BurnDrvmd_rnrracin = {
- "md_rnrracin", NULL, NULL, NULL, "1994",
- "Rock n' Roll Racing (Euro)\0", NULL, "Interplay", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_rnrracinRomInfo, md_rnrracinRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Rock n' Roll Racing (USA)
-static struct BurnRomInfo md_rnrracinuRomDesc[] = {
- { "rock n' roll racing (usa).bin", 0x100000, 0x6abab577, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_rnrracinu)
-STD_ROM_FN(md_rnrracinu)
-
-struct BurnDriver BurnDrvmd_rnrracinu = {
- "md_rnrracinu", "md_rnrracin", NULL, NULL, "1994",
- "Rock n' Roll Racing (USA)\0", NULL, "Interplay", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_rnrracinuRomInfo, md_rnrracinuRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Rocket Knight Adventures (Euro)
-static struct BurnRomInfo md_rocketRomDesc[] = {
- { "fx004.bin", 0x100000, 0x8eedfd51, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_rocket)
-STD_ROM_FN(md_rocket)
-
-struct BurnDriver BurnDrvmd_rocket = {
- "md_rocket", NULL, NULL, NULL, "1993",
- "Rocket Knight Adventures (Euro)\0", NULL, "Konami", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_rocketRomInfo, md_rocketRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Rocket Knight Adventures (Jpn)
-static struct BurnRomInfo md_rocketjRomDesc[] = {
- { "rocket knight adventures (jpn).bin", 0x100000, 0xd1c8c1c5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_rocketj)
-STD_ROM_FN(md_rocketj)
-
-struct BurnDriver BurnDrvmd_rocketj = {
- "md_rocketj", "md_rocket", NULL, NULL, "1993",
- "Rocket Knight Adventures (Jpn)\0", NULL, "Konami", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_rocketjRomInfo, md_rocketjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Rocket Knight Adventures (USA)
-static struct BurnRomInfo md_rocketuRomDesc[] = {
- { "rocket knight adventures (usa).bin", 0x100000, 0xa6efec47, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_rocketu)
-STD_ROM_FN(md_rocketu)
-
-struct BurnDriver BurnDrvmd_rocketu = {
- "md_rocketu", "md_rocket", NULL, NULL, "1993",
- "Rocket Knight Adventures (USA)\0", NULL, "Konami", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_rocketuRomInfo, md_rocketuRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Roger Clements MVP Baseball (USA)
-static struct BurnRomInfo md_mvpbbRomDesc[] = {
- { "roger clements mvp baseball (usa).bin", 0x100000, 0x83699e34, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_mvpbb)
-STD_ROM_FN(md_mvpbb)
-
-struct BurnDriver BurnDrvmd_mvpbb = {
- "md_mvpbb", NULL, NULL, NULL, "1992",
- "Roger Clements MVP Baseball (USA)\0", NULL, "Flying Edge", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_mvpbbRomInfo, md_mvpbbRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Rolling Thunder 2 (Euro)
-static struct BurnRomInfo md_rthun2RomDesc[] = {
- { "rolling thunder 2 (euro).bin", 0x100000, 0xc440f292, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_rthun2)
-STD_ROM_FN(md_rthun2)
-
-struct BurnDriver BurnDrvmd_rthun2 = {
- "md_rthun2", NULL, NULL, NULL, "1991",
- "Rolling Thunder 2 (Euro)\0", NULL, "Namco", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_rthun2RomInfo, md_rthun2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Rolling Thunder 2 (Jpn)
-static struct BurnRomInfo md_rthun2jRomDesc[] = {
- { "rolling thunder 2 (jpn).bin", 0x100000, 0x965b2628, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_rthun2j)
-STD_ROM_FN(md_rthun2j)
-
-struct BurnDriver BurnDrvmd_rthun2j = {
- "md_rthun2j", "md_rthun2", NULL, NULL, "1991",
- "Rolling Thunder 2 (Jpn)\0", NULL, "Namcot", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_rthun2jRomInfo, md_rthun2jRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Rolling Thunder 2 (USA)
-static struct BurnRomInfo md_rthun2uRomDesc[] = {
- { "rolling thunder 2 (usa).bin", 0x100000, 0x3ace429b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_rthun2u)
-STD_ROM_FN(md_rthun2u)
-
-struct BurnDriver BurnDrvmd_rthun2u = {
- "md_rthun2u", "md_rthun2", NULL, NULL, "1991",
- "Rolling Thunder 2 (USA)\0", NULL, "Namco", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_rthun2uRomInfo, md_rthun2uRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Rolling Thunder 3 (USA)
-static struct BurnRomInfo md_rthun3RomDesc[] = {
- { "rolling thunder 3 (usa).bin", 0x180000, 0x64fb13aa, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_rthun3)
-STD_ROM_FN(md_rthun3)
-
-struct BurnDriver BurnDrvmd_rthun3 = {
- "md_rthun3", NULL, NULL, NULL, "1993",
- "Rolling Thunder 3 (USA)\0", NULL, "Namco", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_rthun3RomInfo, md_rthun3RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Rolo to the Rescue (Euro, USA)
-static struct BurnRomInfo md_roloRomDesc[] = {
- { "rolo to the rescue (euro, usa).bin", 0x080000, 0x306861a2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_rolo)
-STD_ROM_FN(md_rolo)
-
-struct BurnDriver BurnDrvmd_rolo = {
- "md_rolo", NULL, NULL, NULL, "1992",
- "Rolo to the Rescue (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_roloRomInfo, md_roloRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Zou! Zou! Zou! Rescue Daisakusen (Jpn)
-static struct BurnRomInfo md_zouzouRomDesc[] = {
- { "zou! zou! zou! rescue daisakusen (jpn).bin", 0x080000, 0x1a761e67, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_zouzou)
-STD_ROM_FN(md_zouzou)
-
-struct BurnDriver BurnDrvmd_zouzou = {
- "md_zouzou", "md_rolo", NULL, NULL, "1993",
- "Zou! Zou! Zou! Rescue Daisakusen (Jpn)\0", NULL, "Electronic Arts Victor", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_zouzouRomInfo, md_zouzouRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Romance of the Three Kingdoms II (USA)
-static struct BurnRomInfo md_roman3k2RomDesc[] = {
- { "romance of the three kingdoms ii (usa).bin", 0x100000, 0x3d842478, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_roman3k2)
-STD_ROM_FN(md_roman3k2)
-
-struct BurnDriver BurnDrvmd_roman3k2 = {
- "md_roman3k2", NULL, NULL, NULL, "1991",
- "Romance of the Three Kingdoms II (USA)\0", NULL, "Koei", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_roman3k2RomInfo, md_roman3k2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Sangokushi II (Jpn)
-static struct BurnRomInfo md_sangoku2RomDesc[] = {
- { "mpr-14455.bin", 0x100000, 0x437ba326, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sangoku2)
-STD_ROM_FN(md_sangoku2)
-
-struct BurnDriver BurnDrvmd_sangoku2 = {
- "md_sangoku2", "md_roman3k2", NULL, NULL, "1991",
- "Sangokushi II (Jpn)\0", NULL, "Koei", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_sangoku2RomInfo, md_sangoku2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Romance of the Three Kingdoms III - Dragon of Destiny (USA)
-static struct BurnRomInfo md_roman3k3RomDesc[] = {
- { "romance of the three kingdoms iii - dragon of destiny (usa).bin", 0x140000, 0x7e41c8fe, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_roman3k3)
-STD_ROM_FN(md_roman3k3)
-
-struct BurnDriver BurnDrvmd_roman3k3 = {
- "md_roman3k3", NULL, NULL, NULL, "1993",
- "Romance of the Three Kingdoms III - Dragon of Destiny (USA)\0", NULL, "Koei", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_roman3k3RomInfo, md_roman3k3RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Sangokushi III (Jpn)
-static struct BurnRomInfo md_sangoku3RomDesc[] = {
- { "sangokushi iii (jpn).bin", 0x180000, 0xa8de6aea, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sangoku3)
-STD_ROM_FN(md_sangoku3)
-
-struct BurnDriver BurnDrvmd_sangoku3 = {
- "md_sangoku3", "md_roman3k3", NULL, NULL, "1992",
- "Sangokushi III (Jpn)\0", NULL, "Koei", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_sangoku3RomInfo, md_sangoku3RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Rugby World Cup 1995 (Euro, USA)
-static struct BurnRomInfo md_rugbywcRomDesc[] = {
- { "rugby world cup 1995 (euro, usa).bin", 0x200000, 0x61f90a8a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_rugbywc)
-STD_ROM_FN(md_rugbywc)
-
-struct BurnDriver BurnDrvmd_rugbywc = {
- "md_rugbywc", NULL, NULL, NULL, "1994",
- "Rugby World Cup 1995 (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_rugbywcRomInfo, md_rugbywcRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Sagaia (USA)
-static struct BurnRomInfo md_sagaiaRomDesc[] = {
- { "sagaia (usa).bin", 0x100000, 0xf1e22f43, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sagaia)
-STD_ROM_FN(md_sagaia)
-
-struct BurnDriver BurnDrvmd_sagaia = {
- "md_sagaia", NULL, NULL, NULL, "1991",
- "Sagaia (USA)\0", NULL, "Taito", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_sagaiaRomInfo, md_sagaiaRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Darius II (Jpn)
-static struct BurnRomInfo md_darius2RomDesc[] = {
- { "darius ii (jpn).bin", 0x100000, 0x25dfe62a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_darius2)
-STD_ROM_FN(md_darius2)
-
-struct BurnDriver BurnDrvmd_darius2 = {
- "md_darius2", "md_sagaia", NULL, NULL, "1990",
- "Darius II (Jpn)\0", NULL, "Taito", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_darius2RomInfo, md_darius2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Bishoujo Senshi Sailor Moon (Jpn)
-static struct BurnRomInfo md_sailormnRomDesc[] = {
- { "bishoujo senshi sailor moon (jpn).bin", 0x200000, 0x5e246938, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sailormn)
-STD_ROM_FN(md_sailormn)
-
-struct BurnDriver BurnDrvmd_sailormn = {
- "md_sailormn", NULL, NULL, NULL, "1994",
- "Bishoujo Senshi Sailor Moon (Jpn)\0", NULL, "Ma-Ba", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_sailormnRomInfo, md_sailormnRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Saint Sword (USA)
-static struct BurnRomInfo md_sswordRomDesc[] = {
- { "saint sword (usa).bin", 0x080000, 0x44f66bff, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ssword)
-STD_ROM_FN(md_ssword)
-
-struct BurnDriver BurnDrvmd_ssword = {
- "md_ssword", NULL, NULL, NULL, "1991",
- "Saint Sword (USA)\0", NULL, "Taito", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_sswordRomInfo, md_sswordRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Saint Sword (Jpn)
-static struct BurnRomInfo md_sswordjRomDesc[] = {
- { "saint sword (jpn).bin", 0x080000, 0x3960a00f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sswordj)
-STD_ROM_FN(md_sswordj)
-
-struct BurnDriver BurnDrvmd_sswordj = {
- "md_sswordj", "md_ssword", NULL, NULL, "1991",
- "Saint Sword (Jpn)\0", NULL, "Taito", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_sswordjRomInfo, md_sswordjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Pete Sampras Tennis '96 (Euro, J-Cart)
-static struct BurnRomInfo md_sampra96RomDesc[] = {
- { "sampras tennis 96 (euro) (j-cart).bin", 0x200000, 0x14e3fb7b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sampra96)
-STD_ROM_FN(md_sampra96)
-
-struct BurnDriver BurnDrvmd_sampra96 = {
- "md_sampra96", NULL, NULL, NULL, "1995",
- "Pete Sampras Tennis '96 (Euro, J-Cart)\0", NULL, "Codemasters", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_sampra96RomInfo, md_sampra96RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Samurai Shodown (Euro)
-static struct BurnRomInfo md_samshoRomDesc[] = {
- { "samurai shodown (euro).bin", 0x300000, 0xc972014f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_samsho)
-STD_ROM_FN(md_samsho)
-
-struct BurnDriver BurnDrvmd_samsho = {
- "md_samsho", NULL, NULL, NULL, "1994",
- "Samurai Shodown (Euro)\0", NULL, "Takara", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_samshoRomInfo, md_samshoRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Samurai Shodown (USA)
-static struct BurnRomInfo md_samshouRomDesc[] = {
- { "samurai shodown (usa).bin", 0x300000, 0x5bb8b2d4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_samshou)
-STD_ROM_FN(md_samshou)
-
-struct BurnDriver BurnDrvmd_samshou = {
- "md_samshou", "md_samsho", NULL, NULL, "1994",
- "Samurai Shodown (USA)\0", NULL, "Takara", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_samshouRomInfo, md_samshouRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Samurai Spirits (Jpn)
-static struct BurnRomInfo md_samspirRomDesc[] = {
- { "samurai spirits (jpn).bin", 0x300000, 0x0ea2ae36, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_samspir)
-STD_ROM_FN(md_samspir)
-
-struct BurnDriver BurnDrvmd_samspir = {
- "md_samspir", "md_samsho", NULL, NULL, "1994",
- "Samurai Spirits (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_samspirRomInfo, md_samspirRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// San Guo Zhi Lie Zhuan - Luan Shi Qun Ying (Chi)
-static struct BurnRomInfo md_sanguoRomDesc[] = {
- { "san guo zhi lie zhuan - luan shi qun ying (chi).bin", 0x100000, 0x3b5cc398, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sanguo)
-STD_ROM_FN(md_sanguo)
-
-struct BurnDriver BurnDrvmd_sanguo = {
- "md_sanguo", "md_sangoret", NULL, NULL, "199?",
- "San Guo Zhi Lie Zhuan - Luan Shi Qun Ying (Chi)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_sanguoRomInfo, md_sanguoRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// San Guo Zhi V (Chi)
-static struct BurnRomInfo md_sanguo5RomDesc[] = {
- { "san guo zhi v (chi) (unl).bin", 0x200000, 0xcd7e53d0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sanguo5)
-STD_ROM_FN(md_sanguo5)
-
-struct BurnDriver BurnDrvmd_sanguo5 = {
- "md_sanguo5", NULL, NULL, NULL, "199?",
- "San Guo Zhi V (Chi)\0", NULL, "SKOB", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_sanguo5RomInfo, md_sanguo5RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// San San (Jpn)
-static struct BurnRomInfo md_sansanRomDesc[] = {
- { "san san (japan).bin", 0x100000, 0x5b85deed, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sansan)
-STD_ROM_FN(md_sansan)
-
-struct BurnDriver BurnDrvmd_sansan = {
- "md_sansan", NULL, NULL, NULL, "1994",
- "San San (Jpn)\0", NULL, "San San Co.", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_sansanRomInfo, md_sansanRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Sangokushi Retsuden - Ransei no Eiyuutachi (Jpn)
-static struct BurnRomInfo md_sangoretRomDesc[] = {
- { "sangokushi retsuden - ransei no eiyuutachi (jpn).bin", 0x100000, 0x0f56785a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sangoret)
-STD_ROM_FN(md_sangoret)
-
-struct BurnDriver BurnDrvmd_sangoret = {
- "md_sangoret", NULL, NULL, NULL, "1991",
- "Sangokushi Retsuden - Ransei no Eiyuutachi (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_sangoretRomInfo, md_sangoretRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Saturday Night Slammasters (Euro)
-static struct BurnRomInfo md_slammastRomDesc[] = {
- { "saturday night slammasters (euro).bin", 0x400000, 0x08fa5a3f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_slammast)
-STD_ROM_FN(md_slammast)
-
-struct BurnDriver BurnDrvmd_slammast = {
- "md_slammast", NULL, NULL, NULL, "1994",
- "Saturday Night Slammasters (Euro)\0", NULL, "Capcom", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_slammastRomInfo, md_slammastRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Saturday Night Slammasters (USA)
-static struct BurnRomInfo md_slammastuRomDesc[] = {
- { "saturday night slammasters (usa).bin", 0x400000, 0x2fb4eaba, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_slammastu)
-STD_ROM_FN(md_slammastu)
-
-struct BurnDriver BurnDrvmd_slammastu = {
- "md_slammastu", "md_slammast", NULL, NULL, "1994",
- "Saturday Night Slammasters (USA)\0", NULL, "Capcom", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_slammastuRomInfo, md_slammastuRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Scooby-Doo Mystery (USA)
-static struct BurnRomInfo md_scoobyRomDesc[] = {
- { "scooby doo mystery (usa).bin", 0x200000, 0x7bb9dd9b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_scooby)
-STD_ROM_FN(md_scooby)
-
-struct BurnDriver BurnDrvmd_scooby = {
- "md_scooby", NULL, NULL, NULL, "1995",
- "Scooby-Doo Mystery (USA)\0", NULL, "Acclaim Entertainment", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_scoobyRomInfo, md_scoobyRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Scrabble (Euro, Prototype)
-static struct BurnRomInfo md_scrabbleRomDesc[] = {
- { "scrabble (euro) (prototype).bin", 0x100000, 0x360b2610, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_scrabble)
-STD_ROM_FN(md_scrabble)
-
-struct BurnDriver BurnDrvmd_scrabble = {
- "md_scrabble", NULL, NULL, NULL, "199?",
- "Scrabble (Euro, Prototype)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_scrabbleRomInfo, md_scrabbleRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// SeaQuest DSV (Euro)
-static struct BurnRomInfo md_seaquestRomDesc[] = {
- { "seaquest dsv (euro).bin", 0x200000, 0x0bb511bd, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_seaquest)
-STD_ROM_FN(md_seaquest)
-
-struct BurnDriver BurnDrvmd_seaquest = {
- "md_seaquest", NULL, NULL, NULL, "1994",
- "SeaQuest DSV (Euro)\0", NULL, "THQ", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_seaquestRomInfo, md_seaquestRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// SeaQuest DSV (USA)
-static struct BurnRomInfo md_seaquestuRomDesc[] = {
- { "seaquest dsv (usa).bin", 0x200000, 0x25b05480, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_seaquestu)
-STD_ROM_FN(md_seaquestu)
-
-struct BurnDriver BurnDrvmd_seaquestu = {
- "md_seaquestu", "md_seaquest", NULL, NULL, "1994",
- "SeaQuest DSV (USA)\0", NULL, "Black Pearl", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_seaquestuRomInfo, md_seaquestuRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Second Samurai (Euro)
-static struct BurnRomInfo md_secondsRomDesc[] = {
- { "second samurai (euro).bin", 0x100000, 0x78e92143, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_seconds)
-STD_ROM_FN(md_seconds)
-
-struct BurnDriver BurnDrvmd_seconds = {
- "md_seconds", NULL, NULL, NULL, "1994",
- "The Second Samurai (Euro)\0", NULL, "Psygnosis", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_secondsRomInfo, md_secondsRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Sega Sports 1 (Euro)
-static struct BurnRomInfo md_segasprtRomDesc[] = {
- { "sega sports 1 (euro).bin", 0x280000, 0x07fedaf1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_segasprt)
-STD_ROM_FN(md_segasprt)
-
-struct BurnDriver BurnDrvmd_segasprt = {
- "md_segasprt", NULL, NULL, NULL, "1995",
- "Sega Sports 1 (Euro)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_segasprtRomInfo, md_segasprtRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Sega Top Five (Bra)
-static struct BurnRomInfo md_segatopRomDesc[] = {
- { "sega top five (bra).bin", 0x200000, 0x61069069, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_segatop)
-STD_ROM_FN(md_segatop)
-
-struct BurnDriver BurnDrvmd_segatop = {
- "md_segatop", NULL, NULL, NULL, "199?",
- "Sega Top Five (Bra)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_segatopRomInfo, md_segatopRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Sensible Soccer (Euro)
-static struct BurnRomInfo md_sensibleRomDesc[] = {
- { "mpr-16014.bin", 0x080000, 0xf9b396b8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sensible)
-STD_ROM_FN(md_sensible)
-
-struct BurnDriver BurnDrvmd_sensible = {
- "md_sensible", NULL, NULL, NULL, "1993",
- "Sensible Soccer (Euro)\0", NULL, "Renegade", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_sensibleRomInfo, md_sensibleRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Sensible Soccer (Prototype)
-static struct BurnRomInfo md_sensiblepRomDesc[] = {
- { "sensible soccer (beta).bin", 0x080000, 0xef52664d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sensiblep)
-STD_ROM_FN(md_sensiblep)
-
-struct BurnDriver BurnDrvmd_sensiblep = {
- "md_sensiblep", "md_sensible", NULL, NULL, "1993",
- "Sensible Soccer (Prototype)\0", NULL, "Renegade", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_sensiblepRomInfo, md_sensiblepRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Sensible Soccer - International Edition (Euro)
-static struct BurnRomInfo md_sensibieRomDesc[] = {
- { "sensible soccer - international edition (euro).bin", 0x080000, 0x04e3bcca, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sensibie)
-STD_ROM_FN(md_sensibie)
-
-struct BurnDriver BurnDrvmd_sensibie = {
- "md_sensibie", NULL, NULL, NULL, "1993",
- "Sensible Soccer - International Edition (Euro)\0", NULL, "Sony Imagesoft", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_sensibieRomInfo, md_sensibieRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Sesame Street Counting Cafe (USA)
-static struct BurnRomInfo md_sesameRomDesc[] = {
- { "sesame street counting cafe (usa).bin", 0x100000, 0x0a4f48c3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sesame)
-STD_ROM_FN(md_sesame)
-
-struct BurnDriver BurnDrvmd_sesame = {
- "md_sesame", NULL, NULL, NULL, "1994",
- "Sesame Street Counting Cafe (USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_sesameRomInfo, md_sesameRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Shadow Blasters (USA)
-static struct BurnRomInfo md_shadowRomDesc[] = {
- { "shadow blasters (usa).bin", 0x080000, 0x713d377b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_shadow)
-STD_ROM_FN(md_shadow)
-
-struct BurnDriver BurnDrvmd_shadow = {
- "md_shadow", NULL, NULL, NULL, "1990",
- "Shadow Blasters (USA)\0", NULL, "Sage's Creation", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_shadowRomInfo, md_shadowRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Shiten Myouou (Jpn)
-static struct BurnRomInfo md_shitenRomDesc[] = {
- { "shiten myouou (jpn).bin", 0x080000, 0x7e729693, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_shiten)
-STD_ROM_FN(md_shiten)
-
-struct BurnDriver BurnDrvmd_shiten = {
- "md_shiten", "md_shadow", NULL, NULL, "1990",
- "Shiten Myouou (Jpn)\0", NULL, "Sigma", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_shitenRomInfo, md_shitenRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Shadow Dancer - The Secret of Shinobi (World)
-static struct BurnRomInfo md_shdancerRomDesc[] = {
- { "mpr-13571.bin", 0x080000, 0xebe9ad10, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_shdancer)
-STD_ROM_FN(md_shdancer)
-
-struct BurnDriver BurnDrvmd_shdancer = {
- "md_shdancer", NULL, NULL, NULL, "1990",
- "Shadow Dancer - The Secret of Shinobi (World)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_shdancerRomInfo, md_shdancerRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Shadow of the Beast (Euro, USA)
-static struct BurnRomInfo md_beastRomDesc[] = {
- { "sha01.bin", 0x100000, 0xbd385c27, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_beast)
-STD_ROM_FN(md_beast)
-
-struct BurnDriver BurnDrvmd_beast = {
- "md_beast", NULL, NULL, NULL, "1991",
- "Shadow of the Beast (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_beastRomInfo, md_beastRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Shadow of the Beast - Mashou no Okite (Jpn)
-static struct BurnRomInfo md_beastjRomDesc[] = {
- { "shadow of the beast - mashou no okite (jpn).bin", 0x100000, 0x0cd09d31, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_beastj)
-STD_ROM_FN(md_beastj)
-
-struct BurnDriver BurnDrvmd_beastj = {
- "md_beastj", "md_beast", NULL, NULL, "1992",
- "Shadow of the Beast - Mashou no Okite (Jpn)\0", NULL, "Victor Interactive Software", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_beastjRomInfo, md_beastjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Shadow of the Beast II (Euro, USA)
-static struct BurnRomInfo md_beast2RomDesc[] = {
- { "shadow of the beast ii (euro, usa).bin", 0x100000, 0x2dede3db, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_beast2)
-STD_ROM_FN(md_beast2)
-
-struct BurnDriver BurnDrvmd_beast2 = {
- "md_beast2", NULL, NULL, NULL, "1992",
- "Shadow of the Beast II (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_beast2RomInfo, md_beast2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Shadowrun (USA)
-static struct BurnRomInfo md_shadowrnRomDesc[] = {
- { "shadowrun (usa).bin", 0x200000, 0xfbb92909, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_shadowrn)
-STD_ROM_FN(md_shadowrn)
-
-struct BurnDriver BurnDrvmd_shadowrn = {
- "md_shadowrn", NULL, NULL, NULL, "1994",
- "Shadowrun (USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_shadowrnRomInfo, md_shadowrnRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Shadowrun (Jpn)
-static struct BurnRomInfo md_shadowrnjRomDesc[] = {
- { "shadowrun (jpn).bin", 0x200000, 0xd32199f7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_shadowrnj)
-STD_ROM_FN(md_shadowrnj)
-
-struct BurnDriver BurnDrvmd_shadowrnj = {
- "md_shadowrnj", "md_shadowrn", NULL, NULL, "199?",
- "Shadowrun (Jpn)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_shadowrnjRomInfo, md_shadowrnjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Shadowrun (USA, Prototype, 19931228)
-static struct BurnRomInfo md_shadowrnp4RomDesc[] = {
- { "shadowrun (prototype - dec 28, 1993).bin", 0x200000, 0x2455add2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_shadowrnp4)
-STD_ROM_FN(md_shadowrnp4)
-
-struct BurnDriver BurnDrvmd_shadowrnp4 = {
- "md_shadowrnp4", "md_shadowrn", NULL, NULL, "1993",
- "Shadowrun (USA, Prototype, 19931228)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_shadowrnp4RomInfo, md_shadowrnp4RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Shadowrun (USA, Prototype, 19931231)
-static struct BurnRomInfo md_shadowrnp3RomDesc[] = {
- { "shadowrun (prototype - dec 31, 1993).bin", 0x200000, 0xbbb5e2fa, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_shadowrnp3)
-STD_ROM_FN(md_shadowrnp3)
-
-struct BurnDriver BurnDrvmd_shadowrnp3 = {
- "md_shadowrnp3", "md_shadowrn", NULL, NULL, "1993",
- "Shadowrun (USA, Prototype, 19931231)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_shadowrnp3RomInfo, md_shadowrnp3RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Shadowrun (USA, Prototype, 19940125-C)
-static struct BurnRomInfo md_shadowrnp2RomDesc[] = {
- { "shadowrun (prototype - jan 25, 1994 - c).bin", 0x200000, 0x6e2bbca8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_shadowrnp2)
-STD_ROM_FN(md_shadowrnp2)
-
-struct BurnDriver BurnDrvmd_shadowrnp2 = {
- "md_shadowrnp2", "md_shadowrn", NULL, NULL, "1994",
- "Shadowrun (USA, Prototype, 19940125-C)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_shadowrnp2RomInfo, md_shadowrnp2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Shadowrun (USA, Prototype, 19940125)
-static struct BurnRomInfo md_shadowrnp1RomDesc[] = {
- { "shadowrun (prototype - jan 25, 1994).bin", 0x200000, 0x2a964bcd, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_shadowrnp1)
-STD_ROM_FN(md_shadowrnp1)
-
-struct BurnDriver BurnDrvmd_shadowrnp1 = {
- "md_shadowrnp1", "md_shadowrn", NULL, NULL, "1994",
- "Shadowrun (USA, Prototype, 19940125)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_shadowrnp1RomInfo, md_shadowrnp1RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Shane Warne Cricket (Aus)
-static struct BurnRomInfo md_shanewarRomDesc[] = {
- { "shane warne cricket (aus).bin", 0x100000, 0x68865f6f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_shanewar)
-STD_ROM_FN(md_shanewar)
-
-struct BurnDriver BurnDrvmd_shanewar = {
- "md_shanewar", NULL, NULL, NULL, "1997",
- "Shane Warne Cricket (Aus)\0", NULL, "Codemasters", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_shanewarRomInfo, md_shanewarRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Shanghai II - Dragon's Eye (USA)
-static struct BurnRomInfo md_shangh2RomDesc[] = {
- { "shanghai ii - dragon's eye (usa).bin", 0x100000, 0xebe9e840, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_shangh2)
-STD_ROM_FN(md_shangh2)
-
-struct BurnDriver BurnDrvmd_shangh2 = {
- "md_shangh2", NULL, NULL, NULL, "1994",
- "Shanghai II - Dragon's Eye (USA)\0", NULL, "Activision", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_shangh2RomInfo, md_shangh2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Shanghai II - Dragon's Eye (USA, Prototype)
-static struct BurnRomInfo md_shangh2pRomDesc[] = {
- { "shanghai ii - dragon's eye (beta).bin", 0x100000, 0x154aca2d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_shangh2p)
-STD_ROM_FN(md_shangh2p)
-
-struct BurnDriver BurnDrvmd_shangh2p = {
- "md_shangh2p", "md_shangh2", NULL, NULL, "1994",
- "Shanghai II - Dragon's Eye (USA, Prototype)\0", NULL, "Activision", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_shangh2pRomInfo, md_shangh2pRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Shanghai II - Dragon's Eye (USA, Prototype, Alt)
-static struct BurnRomInfo md_shangh2p1RomDesc[] = {
- { "shanghai ii - dragon's eye (beta) (alt).bin", 0x100000, 0x5e33867b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_shangh2p1)
-STD_ROM_FN(md_shangh2p1)
-
-struct BurnDriver BurnDrvmd_shangh2p1 = {
- "md_shangh2p1", "md_shangh2", NULL, NULL, "1994",
- "Shanghai II - Dragon's Eye (USA, Prototype, Alt)\0", NULL, "Activision", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_shangh2p1RomInfo, md_shangh2p1RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Shaq Fu (Euro, USA)
-static struct BurnRomInfo md_shaqfuRomDesc[] = {
- { "sfb2_u1+sfb2_u2.bin", 0x300000, 0x499955f2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_shaqfu)
-STD_ROM_FN(md_shaqfu)
-
-struct BurnDriver BurnDrvmd_shaqfu = {
- "md_shaqfu", NULL, NULL, NULL, "1994",
- "Shaq Fu (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_shaqfuRomInfo, md_shaqfuRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Shi Jie Zhi Bang Zheng Ba Zhan - World Pro Baseball 94 (Chi)
-static struct BurnRomInfo md_shijieRomDesc[] = {
- { "shi jie zhi bang zheng ba zhan - world pro baseball 94 (chi) (unl).bin", 0x200000, 0x72dd884f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_shijie)
-STD_ROM_FN(md_shijie)
-
-struct BurnDriver BurnDrvmd_shijie = {
- "md_shijie", NULL, NULL, NULL, "1994",
- "Shi Jie Zhi Bang Zheng Ba Zhan - World Pro Baseball 94 (Chi)\0", NULL, "C&E", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_shijieRomInfo, md_shijieRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Shikinjoh (Jpn)
-static struct BurnRomInfo md_shikinjoRomDesc[] = {
- { "shikinjoh (jpn).bin", 0x080000, 0x5ea0c97d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_shikinjo)
-STD_ROM_FN(md_shikinjo)
-
-struct BurnDriver BurnDrvmd_shikinjo = {
- "md_shikinjo", NULL, NULL, NULL, "1991",
- "Shikinjoh (Jpn)\0", NULL, "Sunsoft", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_shikinjoRomInfo, md_shikinjoRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Shining Force (USA)
-static struct BurnRomInfo md_shinfrceRomDesc[] = {
- { "shining force (usa).bin", 0x180000, 0xe0594abe, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_shinfrce)
-STD_ROM_FN(md_shinfrce)
-
-struct BurnDriver BurnDrvmd_shinfrce = {
- "md_shinfrce", NULL, NULL, NULL, "1992",
- "Shining Force (USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_shinfrceRomInfo, md_shinfrceRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Shining Force (USA, Prototype)
-static struct BurnRomInfo md_shinfrcepRomDesc[] = {
- { "shining force (usa) (beta).bin", 0x180000, 0xce67143a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_shinfrcep)
-STD_ROM_FN(md_shinfrcep)
-
-struct BurnDriver BurnDrvmd_shinfrcep = {
- "md_shinfrcep", "md_shinfrce", NULL, NULL, "1992",
- "Shining Force (USA, Prototype)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_shinfrcepRomInfo, md_shinfrcepRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Shining Force - Kamigami no Isan (Jpn)
-static struct BurnRomInfo md_shinfrcejRomDesc[] = {
- { "shining force - kamigami no isan (jpn).bin", 0x180000, 0x9378fbcd, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_shinfrcej)
-STD_ROM_FN(md_shinfrcej)
-
-struct BurnDriver BurnDrvmd_shinfrcej = {
- "md_shinfrcej", "md_shinfrce", NULL, NULL, "1992",
- "Shining Force - Kamigami no Isan (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_shinfrcejRomInfo, md_shinfrcejRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Shining Force II - Koe no Fuuin (Jpn)
-static struct BurnRomInfo md_shinfrc2jRomDesc[] = {
- { "shining force ii - koe no fuuin (jpn).bin", 0x200000, 0x0288f3e1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_shinfrc2j)
-STD_ROM_FN(md_shinfrc2j)
-
-struct BurnDriver BurnDrvmd_shinfrc2j = {
- "md_shinfrc2j", "md_shinfrc2", NULL, NULL, "1993",
- "Shining Force II - Koe no Fuuin (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_shinfrc2jRomInfo, md_shinfrc2jRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Shining Force II (USA, Prototype, 19940404)
-static struct BurnRomInfo md_shinfrc2p2RomDesc[] = {
- { "shining force ii (prototype - apr 04, 1994).bin", 0x200000, 0x5843670c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_shinfrc2p2)
-STD_ROM_FN(md_shinfrc2p2)
-
-struct BurnDriver BurnDrvmd_shinfrc2p2 = {
- "md_shinfrc2p2", "md_shinfrc2", NULL, NULL, "1994",
- "Shining Force II (USA, Prototype, 19940404)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_shinfrc2p2RomInfo, md_shinfrc2p2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Shining Force II (USA, Prototype, 19940607)
-static struct BurnRomInfo md_shinfrc2p1RomDesc[] = {
- { "shining force ii (prototype - jun 07, 1994).bin", 0x200000, 0x03b68bba, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_shinfrc2p1)
-STD_ROM_FN(md_shinfrc2p1)
-
-struct BurnDriver BurnDrvmd_shinfrc2p1 = {
- "md_shinfrc2p1", "md_shinfrc2", NULL, NULL, "1994",
- "Shining Force II (USA, Prototype, 19940607)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_shinfrc2p1RomInfo, md_shinfrc2p1RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Shining Force II (USA)
-static struct BurnRomInfo md_shinfrc2uRomDesc[] = {
- { "shining force ii (usa).bin", 0x200000, 0x4815e075, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_shinfrc2u)
-STD_ROM_FN(md_shinfrc2u)
-
-struct BurnDriver BurnDrvmd_shinfrc2u = {
- "md_shinfrc2u", "md_shinfrc2", NULL, NULL, "1994",
- "Shining Force II (USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_shinfrc2uRomInfo, md_shinfrc2uRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Shining in the Darkness (Euro, USA)
-static struct BurnRomInfo md_shindarkRomDesc[] = {
- { "shining in the darkness (euro, usa).bin", 0x100000, 0x4d2785bc, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_shindark)
-STD_ROM_FN(md_shindark)
-
-struct BurnDriver BurnDrvmd_shindark = {
- "md_shindark", NULL, NULL, NULL, "1991",
- "Shining in the Darkness (Euro, USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_shindarkRomInfo, md_shindarkRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Shining in the Darkness (Bra)
-static struct BurnRomInfo md_shindarkbrRomDesc[] = {
- { "shining in the darkness (bra).bin", 0x100000, 0x3ee2bbc4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_shindarkbr)
-STD_ROM_FN(md_shindarkbr)
-
-struct BurnDriver BurnDrvmd_shindarkbr = {
- "md_shindarkbr", "md_shindark", NULL, NULL, "1994",
- "Shining in the Darkness (Bra)\0", NULL, "Tec Toy", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_shindarkbrRomInfo, md_shindarkbrRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Shining and the Darkness (Jpn)
-static struct BurnRomInfo md_shindarkjRomDesc[] = {
- { "mpr-13807.bin", 0x100000, 0x496af51c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_shindarkj)
-STD_ROM_FN(md_shindarkj)
-
-struct BurnDriver BurnDrvmd_shindarkj = {
- "md_shindarkj", "md_shindark", NULL, NULL, "1991",
- "Shining and the Darkness (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_shindarkjRomInfo, md_shindarkjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Shinobi III - Return of the Ninja Master (USA)
-static struct BurnRomInfo md_shinobi3uRomDesc[] = {
- { "shinobi iii - return of the ninja master (usa).bin", 0x100000, 0x5381506f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_shinobi3u)
-STD_ROM_FN(md_shinobi3u)
-
-struct BurnDriver BurnDrvmd_shinobi3u = {
- "md_shinobi3u", "md_shinobi3", NULL, NULL, "1993",
- "Shinobi III - Return of the Ninja Master (USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_shinobi3uRomInfo, md_shinobi3uRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Super Shinobi II (Jpn, Kor)
-static struct BurnRomInfo md_supshin2RomDesc[] = {
- { "super shinobi ii, the (jpn, kor).bin", 0x100000, 0x5b412816, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_supshin2)
-STD_ROM_FN(md_supshin2)
-
-struct BurnDriver BurnDrvmd_supshin2 = {
- "md_supshin2", "md_shinobi3", NULL, NULL, "1993",
- "The Super Shinobi II (Jpn, Kor)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_supshin2RomInfo, md_supshin2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Super Shinobi II (Jpn, Prototype)
-static struct BurnRomInfo md_supshin2p1RomDesc[] = {
- { "super shinobi ii, the (jpn) (beta).bin", 0x100000, 0xc47e8aea, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_supshin2p1)
-STD_ROM_FN(md_supshin2p1)
-
-struct BurnDriver BurnDrvmd_supshin2p1 = {
- "md_supshin2p1", "md_shinobi3", NULL, NULL, "1993",
- "The Super Shinobi II (Jpn, Prototype)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_supshin2p1RomInfo, md_supshin2p1RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Super Shinobi II (Jpn, Prototype, Earlier)
-static struct BurnRomInfo md_supshin2p2RomDesc[] = {
- { "super shinobi ii, the (jpn) (beta) (earlier).bin", 0x100000, 0x1ee5bce3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_supshin2p2)
-STD_ROM_FN(md_supshin2p2)
-
-struct BurnDriver BurnDrvmd_supshin2p2 = {
- "md_supshin2p2", "md_shinobi3", NULL, NULL, "1993",
- "The Super Shinobi II (Jpn, Prototype, Earlier)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_supshin2p2RomInfo, md_supshin2p2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Ship (Prototype)
-static struct BurnRomInfo md_shipRomDesc[] = {
- { "ship (prototype).bin", 0x020000, 0x4cdc9f16, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ship)
-STD_ROM_FN(md_ship)
-
-struct BurnDriver BurnDrvmd_ship = {
- "md_ship", NULL, NULL, NULL, "199?",
- "Ship (Prototype)\0", NULL, "Technopop", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_shipRomInfo, md_shipRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Shougi no Hoshi (Jpn)
-static struct BurnRomInfo md_shougiRomDesc[] = {
- { "shougi no hoshi (jpn).bin", 0x040000, 0x4148f816, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_shougi)
-STD_ROM_FN(md_shougi)
-
-struct BurnDriver BurnDrvmd_shougi = {
- "md_shougi", NULL, NULL, NULL, "1991",
- "Shougi no Hoshi (Jpn)\0", NULL, "Home Data", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_shougiRomInfo, md_shougiRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Shove It! ...The Warehouse Game (USA)
-static struct BurnRomInfo md_shoveitRomDesc[] = {
- { "shove it! ...the warehouse game (usa).bin", 0x020000, 0xc51f40cb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_shoveit)
-STD_ROM_FN(md_shoveit)
-
-struct BurnDriver BurnDrvmd_shoveit = {
- "md_shoveit", NULL, NULL, NULL, "1990",
- "Shove It! ...The Warehouse Game (USA)\0", NULL, "Dreamworks", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_shoveitRomInfo, md_shoveitRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Shijou Saidai no Soukoban (Jpn)
-static struct BurnRomInfo md_sokobanRomDesc[] = {
- { "shijou saidai no soukoban (jpn).bin", 0x040000, 0x40f4aacc, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sokoban)
-STD_ROM_FN(md_sokoban)
-
-struct BurnDriver BurnDrvmd_sokoban = {
- "md_sokoban", "md_shoveit", NULL, NULL, "1990",
- "Shijou Saidai no Soukoban (Jpn)\0", NULL, "NCS", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_sokobanRomInfo, md_sokobanRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Show do Milho (Bra)
-static struct BurnRomInfo md_sdmilhaoRomDesc[] = {
- { "show do milhao (bra).bin", 0x200000, 0x0a22df04, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sdmilhao)
-STD_ROM_FN(md_sdmilhao)
-
-struct BurnDriver BurnDrvmd_sdmilhao = {
- "md_sdmilhao", NULL, NULL, NULL, "2001",
- "Show do Milhao (Bra)\0", NULL, "Tec Toy", "Sega Megadrive",
- L"Show do Milh\u00e3o (Bra)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_sdmilhaoRomInfo, md_sdmilhaoRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Show do Milho Volume 2 (Bra)
-static struct BurnRomInfo md_sdmilha2RomDesc[] = {
- { "show do milhao volume 2 (bra).bin", 0x200000, 0x48ee66cb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sdmilha2)
-STD_ROM_FN(md_sdmilha2)
-
-struct BurnDriver BurnDrvmd_sdmilha2 = {
- "md_sdmilha2", NULL, NULL, NULL, "2002",
- "Show do Milhao Volume 2 (Bra)\0", NULL, "Tec Toy", "Sega Megadrive",
- L"Show do Milh\u00e3o Volume 2 (Bra)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_sdmilha2RomInfo, md_sdmilha2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Show do Milho Volume 2 (Bra, Alt)
-static struct BurnRomInfo md_sdmilha2aRomDesc[] = {
- { "show do milhao volume 2 (bra) (alt).bin", 0x200000, 0xd8c9ac6d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sdmilha2a)
-STD_ROM_FN(md_sdmilha2a)
-
-struct BurnDriver BurnDrvmd_sdmilha2a = {
- "md_sdmilha2a", "md_sdmilha2", NULL, NULL, "2002",
- "Show do Milhao Volume 2 (Bra, Alt)\0", NULL, "Tec Toy", "Sega Megadrive",
- L"Show do Milh\u00e3o Volume 2 (Bra, Alt)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_sdmilha2aRomInfo, md_sdmilha2aRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Shui Hu - Feng Yun Zhuan (Chi)
-static struct BurnRomInfo md_shuihuRomDesc[] = {
- { "shui hu - feng yun zhuan (chi) (unl).bin", 0x200000, 0x3e9e010c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_shuihu)
-STD_ROM_FN(md_shuihu)
-
-struct BurnDriver BurnDrvmd_shuihu = {
- "md_shuihu", NULL, NULL, NULL, "1999",
- "Shui Hu - Feng Yun Zhuan (Chi)\0", NULL, "Never Ending Soft Team", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_shuihuRomInfo, md_shuihuRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Shui Hu Zhuan (Chi)
-static struct BurnRomInfo md_shuihuzhRomDesc[] = {
- { "shui hu zhuan (chi) (unl).bin", 0x200000, 0x61e458c3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_shuihuzh)
-STD_ROM_FN(md_shuihuzh)
-
-struct BurnDriver BurnDrvmd_shuihuzh = {
- "md_shuihuzh", NULL, NULL, NULL, "1996",
- "Shui Hu Zhuan (Chi)\0", NULL, "Chuanpu Technologies", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_shuihuzhRomInfo, md_shuihuzhRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Shura no Mon (Jpn)
-static struct BurnRomInfo md_shuramonRomDesc[] = {
- { "shura no mon (jpn).bin", 0x100000, 0xe19da6e5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_shuramon)
-STD_ROM_FN(md_shuramon)
-
-struct BurnDriver BurnDrvmd_shuramon = {
- "md_shuramon", NULL, NULL, NULL, "1992",
- "Shura no Mon (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_shuramonRomInfo, md_shuramonRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Side Pocket (Euro)
-static struct BurnRomInfo md_sidepockRomDesc[] = {
- { "side pocket (euro).bin", 0x100000, 0x36e08145, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sidepock)
-STD_ROM_FN(md_sidepock)
-
-struct BurnDriver BurnDrvmd_sidepock = {
- "md_sidepock", NULL, NULL, NULL, "1992",
- "Side Pocket (Euro)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_sidepockRomInfo, md_sidepockRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Side Pocket (Jpn)
-static struct BurnRomInfo md_sidepockjRomDesc[] = {
- { "side pocket (jpn).bin", 0x100000, 0x336bbf3e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sidepockj)
-STD_ROM_FN(md_sidepockj)
-
-struct BurnDriver BurnDrvmd_sidepockj = {
- "md_sidepockj", "md_sidepock", NULL, NULL, "1992",
- "Side Pocket (Jpn)\0", NULL, "Data East", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_sidepockjRomInfo, md_sidepockjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Simpsons - Bart Vs The Space Mutants (Euro, USA, Rev. A)
-static struct BurnRomInfo md_bartvssmRomDesc[] = {
- { "mpr-14759a.bin", 0x080000, 0xdb70e8ca, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_bartvssm)
-STD_ROM_FN(md_bartvssm)
-
-struct BurnDriver BurnDrvmd_bartvssm = {
- "md_bartvssm", NULL, NULL, NULL, "1992",
- "The Simpsons - Bart Vs The Space Mutants (Euro, USA, Rev. A)\0", NULL, "Flying Edge", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_bartvssmRomInfo, md_bartvssmRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Simpsons - Bart Vs The Space Mutants (Euro, USA)
-static struct BurnRomInfo md_bartvssm1RomDesc[] = {
- { "simpsons, the - bart vs the space mutants (euro, usa).bin", 0x080000, 0xc8620574, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_bartvssm1)
-STD_ROM_FN(md_bartvssm1)
-
-struct BurnDriver BurnDrvmd_bartvssm1 = {
- "md_bartvssm1", "md_bartvssm", NULL, NULL, "1992",
- "The Simpsons - Bart Vs The Space Mutants (Euro, USA)\0", NULL, "Flying Edge", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_bartvssm1RomInfo, md_bartvssm1RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Simpsons - Bart's Nightmare (Euro, USA)
-static struct BurnRomInfo md_bartnighRomDesc[] = {
- { "simpsons, the - bart's nightmare (euro, usa).bin", 0x100000, 0x24d7507c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_bartnigh)
-STD_ROM_FN(md_bartnigh)
-
-struct BurnDriver BurnDrvmd_bartnigh = {
- "md_bartnigh", NULL, NULL, NULL, "1993",
- "The Simpsons - Bart's Nightmare (Euro, USA)\0", NULL, "Flying Edge", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_bartnighRomInfo, md_bartnighRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Skeleton Krew (Euro)
-static struct BurnRomInfo md_skelkrewRomDesc[] = {
- { "skeleton krew (euro).bin", 0x200000, 0x5f872737, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_skelkrew)
-STD_ROM_FN(md_skelkrew)
-
-struct BurnDriver BurnDrvmd_skelkrew = {
- "md_skelkrew", NULL, NULL, NULL, "1995",
- "Skeleton Krew (Euro)\0", NULL, "Core Design", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_skelkrewRomInfo, md_skelkrewRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Skeleton Krew (USA)
-static struct BurnRomInfo md_skelkrewuRomDesc[] = {
- { "skeleton krew (usa).bin", 0x200000, 0xc2e05acb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_skelkrewu)
-STD_ROM_FN(md_skelkrewu)
-
-struct BurnDriver BurnDrvmd_skelkrewu = {
- "md_skelkrewu", "md_skelkrew", NULL, NULL, "1995",
- "Skeleton Krew (USA)\0", NULL, "Core Design", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_skelkrewuRomInfo, md_skelkrewuRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// From TV Animation Slam Dunk - Kyougou Makkou Taiketsu! (Jpn)
-static struct BurnRomInfo md_slamdunkRomDesc[] = {
- { "from tv animation slam dunk - kyougou makkou taiketsu! (jpn).bin", 0x200000, 0xcdf5678f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_slamdunk)
-STD_ROM_FN(md_slamdunk)
-
-struct BurnDriver BurnDrvmd_slamdunk = {
- "md_slamdunk", NULL, NULL, NULL, "1995",
- "From TV Animation Slam Dunk - Kyougou Makkou Taiketsu! (Jpn)\0", NULL, "Bandai", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_slamdunkRomInfo, md_slamdunkRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Slam - Shaq vs. the Legends (Prototype)
-static struct BurnRomInfo md_slamshaqRomDesc[] = {
- { "slam - shaq vs. the legends (prototype).bin", 0x1f485a, 0xc19c200e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_slamshaq)
-STD_ROM_FN(md_slamshaq)
-
-struct BurnDriver BurnDrvmd_slamshaq = {
- "md_slamshaq", NULL, NULL, NULL, "199?",
- "Slam - Shaq vs. the Legends (Prototype)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_slamshaqRomInfo, md_slamshaqRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Slap Fight MD (Jpn)
-static struct BurnRomInfo md_slapfighRomDesc[] = {
- { "slap fight md (jpn).bin", 0x100000, 0xd6695695, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_slapfigh)
-STD_ROM_FN(md_slapfigh)
-
-struct BurnDriver BurnDrvmd_slapfigh = {
- "md_slapfigh", NULL, NULL, NULL, "1993",
- "Slap Fight MD (Jpn)\0", NULL, "Tengen", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_slapfighRomInfo, md_slapfighRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Slaughter Sport (USA)
-static struct BurnRomInfo md_slaughtrRomDesc[] = {
- { "slaughter sport (usa).bin", 0x0a0000, 0xaf9f9d9c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_slaughtr)
-STD_ROM_FN(md_slaughtr)
-
-struct BurnDriver BurnDrvmd_slaughtr = {
- "md_slaughtr", NULL, NULL, NULL, "1991",
- "Slaughter Sport (USA)\0", NULL, "Razorsoft", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_slaughtrRomInfo, md_slaughtrRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Fatman (Jpn)
-static struct BurnRomInfo md_fatmanRomDesc[] = {
- { "fatman (jpn).bin", 0x0a0000, 0x7867da3a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_fatman)
-STD_ROM_FN(md_fatman)
-
-struct BurnDriver BurnDrvmd_fatman = {
- "md_fatman", "md_slaughtr", NULL, NULL, "1990",
- "Fatman (Jpn)\0", NULL, "Sanritsu Denki", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_fatmanRomInfo, md_fatmanRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Smurfs Travel the World (Euro)
-static struct BurnRomInfo md_smurfstwRomDesc[] = {
- { "smurfs travel the world, the (euro).bin", 0x100000, 0xb28bdd69, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_smurfstw)
-STD_ROM_FN(md_smurfstw)
-
-struct BurnDriver BurnDrvmd_smurfstw = {
- "md_smurfstw", NULL, NULL, NULL, "1996",
- "The Smurfs Travel the World (Euro)\0", NULL, "Infogrames", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_smurfstwRomInfo, md_smurfstwRomName, NULL, NULL, MegadriveInputInfo, MegadrivePALDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Snake Rattle n' Roll (Euro)
-static struct BurnRomInfo md_snakernrRomDesc[] = {
- { "snake rattle n' roll (euro).bin", 0x080000, 0x543bed30, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_snakernr)
-STD_ROM_FN(md_snakernr)
-
-struct BurnDriver BurnDrvmd_snakernr = {
- "md_snakernr", NULL, NULL, NULL, "1993",
- "Snake Rattle n' Roll (Euro)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_snakernrRomInfo, md_snakernrRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Snow Bros. - Nick & Tom (Jpn)
-static struct BurnRomInfo md_snowbrosRomDesc[] = {
- { "snow bros. - nick & tom (jpn).bin", 0x100000, 0x11b56228, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_snowbros)
-STD_ROM_FN(md_snowbros)
-
-struct BurnDriver BurnDrvmd_snowbros = {
- "md_snowbros", NULL, NULL, NULL, "1993",
- "Snow Bros. - Nick & Tom (Jpn)\0", NULL, "Tengen", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_snowbrosRomInfo, md_snowbrosRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Socket (USA)
-static struct BurnRomInfo md_socketRomDesc[] = {
- { "socket (usa).bin", 0x100000, 0x3c14e15a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_socket)
-STD_ROM_FN(md_socket)
-
-struct BurnDriver BurnDrvmd_socket = {
- "md_socket", NULL, NULL, NULL, "1994",
- "Socket (USA)\0", NULL, "Vic Tokai", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_socketRomInfo, md_socketRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Time Dominator 1st (Jpn, Kor)
-static struct BurnRomInfo md_timedomRomDesc[] = {
- { "time dominator 1st (jpn, kor).bin", 0x100000, 0x7eba7a5c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_timedom)
-STD_ROM_FN(md_timedom)
-
-struct BurnDriver BurnDrvmd_timedom = {
- "md_timedom", "md_socket", NULL, NULL, "1994",
- "Time Dominator 1st (Jpn, Kor)\0", NULL, "Vic Tokai", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_timedomRomInfo, md_timedomRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Sol-Deace (USA)
-static struct BurnRomInfo md_soldeaceRomDesc[] = {
- { "sol-deace (usa).bin", 0x100000, 0xa77e4e9f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_soldeace)
-STD_ROM_FN(md_soldeace)
-
-struct BurnDriver BurnDrvmd_soldeace = {
- "md_soldeace", NULL, NULL, NULL, "1992",
- "Sol-Deace (USA)\0", NULL, "Renovation", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_soldeaceRomInfo, md_soldeaceRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Soleil (Euro)
-static struct BurnRomInfo md_soleilRomDesc[] = {
- { "mpr-17499.bin", 0x200000, 0xa30ebdb1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_soleil)
-STD_ROM_FN(md_soleil)
-
-struct BurnDriver BurnDrvmd_soleil = {
- "md_soleil", NULL, NULL, NULL, "1994",
- "Soleil (Euro)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_soleilRomInfo, md_soleilRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Crusader of Centy (USA)
-static struct BurnRomInfo md_crusaderRomDesc[] = {
- { "crusader of centy (usa).bin", 0x200000, 0x41858f6f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_crusader)
-STD_ROM_FN(md_crusader)
-
-struct BurnDriver BurnDrvmd_crusader = {
- "md_crusader", "md_soleil", NULL, NULL, "1994",
- "Crusader of Centy (USA)\0", NULL, "Atlus", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_crusaderRomInfo, md_crusaderRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Shin Souseiki Ragnacenty (Jpn)
-static struct BurnRomInfo md_ragnacenRomDesc[] = {
- { "shin souseiki ragnacenty (jpn).bin", 0x200000, 0x6a3f5ae2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ragnacen)
-STD_ROM_FN(md_ragnacen)
-
-struct BurnDriver BurnDrvmd_ragnacen = {
- "md_ragnacen", "md_soleil", NULL, NULL, "1994",
- "Shin Souseiki Ragnacenty (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_ragnacenRomInfo, md_ragnacenRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Shin Souseiki Ragnacenty (Jpn, Prototype)
-static struct BurnRomInfo md_ragnacenpRomDesc[] = {
- { "shin souseiki ragnacenty (jpn) (beta).bin", 0x100000, 0x43797455, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ragnacenp)
-STD_ROM_FN(md_ragnacenp)
-
-struct BurnDriver BurnDrvmd_ragnacenp = {
- "md_ragnacenp", "md_soleil", NULL, NULL, "1994",
- "Shin Souseiki Ragnacenty (Jpn, Prototype)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_ragnacenpRomInfo, md_ragnacenpRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Ragnacenty (Kor)
-static struct BurnRomInfo md_ragnacenkRomDesc[] = {
- { "ragnacenty (kor).bin", 0x200000, 0x77b5b10b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ragnacenk)
-STD_ROM_FN(md_ragnacenk)
-
-struct BurnDriver BurnDrvmd_ragnacenk = {
- "md_ragnacenk", "md_soleil", NULL, NULL, "1994",
- "Ragnacenty (Kor)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_ragnacenkRomInfo, md_ragnacenkRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Sonic & Knuckles (World)
-static struct BurnRomInfo md_skRomDesc[] = {
- { "mpr-16910-u.ic1", 0x200000, 0x0658f691, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
- { "mpr-16911-s.ic2", 0x040000, 0x4dcfd55c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_300000 },
-};
-
-STD_ROM_PICK(md_sk)
-STD_ROM_FN(md_sk)
-
-struct BurnDriver BurnDrvmd_sk = {
- "md_sk", NULL, NULL, NULL, "1994",
- "Sonic & Knuckles (World)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_skRomInfo, md_skRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Sonic & Knuckles (Prototype 0606, 19940606, 10.02)
-static struct BurnRomInfo md_skp10RomDesc[] = {
- { "sonic & knuckles (prototype 0606 - jun 06, 1994, 10.02).bin", 0x200000, 0x03a52f63, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_skp10)
-STD_ROM_FN(md_skp10)
-
-struct BurnDriver BurnDrvmd_skp10 = {
- "md_skp10", "md_sk", NULL, NULL, "1994",
- "Sonic & Knuckles (Prototype 0606, 19940606, 10.02)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_skp10RomInfo, md_skp10RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Sonic & Knuckles (Prototype 0608, 19940608, 05.03)
-static struct BurnRomInfo md_skp08RomDesc[] = {
- { "sonic & knuckles (prototype 0608 - jun 08, 1994, 05.03).bin", 0x200000, 0x7a6c1317, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_skp08)
-STD_ROM_FN(md_skp08)
-
-struct BurnDriver BurnDrvmd_skp08 = {
- "md_skp08", "md_sk", NULL, NULL, "1994",
- "Sonic & Knuckles (Prototype 0608, 19940608, 05.03)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_skp08RomInfo, md_skp08RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Sonic & Knuckles (Prototype 0610, 19940610, 07.49)
-static struct BurnRomInfo md_skp06RomDesc[] = {
- { "sonic & knuckles (prototype 0610 - jun 10, 1994, 07.49).bin", 0x200000, 0x7092f368, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_skp06)
-STD_ROM_FN(md_skp06)
-
-struct BurnDriver BurnDrvmd_skp06 = {
- "md_skp06", "md_sk", NULL, NULL, "1994",
- "Sonic & Knuckles (Prototype 0610, 19940610, 07.49)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_skp06RomInfo, md_skp06RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Sonic & Knuckles (Prototype 0612, 19940612, 18.27)
-static struct BurnRomInfo md_skp04RomDesc[] = {
- { "sonic & knuckles (prototype 0612 - jun 12, 1994, 18.27).bin", 0x200000, 0xb0a253e8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_skp04)
-STD_ROM_FN(md_skp04)
-
-struct BurnDriver BurnDrvmd_skp04 = {
- "md_skp04", "md_sk", NULL, NULL, "1994",
- "Sonic & Knuckles (Prototype 0612, 19940612, 18.27)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_skp04RomInfo, md_skp04RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Sonic & Knuckles (Prototype 0618, 19940618, 09.15)
-static struct BurnRomInfo md_skp02RomDesc[] = {
- { "sonic & knuckles (prototype 0618 - jun 18, 1994, 09.15).bin", 0x200000, 0x2615f5dc, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_skp02)
-STD_ROM_FN(md_skp02)
-
-struct BurnDriver BurnDrvmd_skp02 = {
- "md_skp02", "md_sk", NULL, NULL, "1994",
- "Sonic & Knuckles (Prototype 0618, 19940618, 09.15)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_skp02RomInfo, md_skp02RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Sonic & Knuckles (Prototype 0619, 19940619, 08.18)
-static struct BurnRomInfo md_skp01RomDesc[] = {
- { "sonic & knuckles (prototype 0619 - jun 19, 1994, 08.18).bin", 0x200000, 0x1ea5b9d1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_skp01)
-STD_ROM_FN(md_skp01)
-
-struct BurnDriver BurnDrvmd_skp01 = {
- "md_skp01", "md_sk", NULL, NULL, "1994",
- "Sonic & Knuckles (Prototype 0619, 19940619, 08.18)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_skp01RomInfo, md_skp01RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Sonic & Knuckles (Prototype 0606, 19940605, 22.25, S2K chip)
-static struct BurnRomInfo md_skp11RomDesc[] = {
- { "sonic & knuckles (s2k chip) (prototype 0606 - jun 05, 1994, 22.25).bin", 0x040000, 0xbd619ea9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_skp11)
-STD_ROM_FN(md_skp11)
-
-struct BurnDriver BurnDrvmd_skp11 = {
- "md_skp11", "md_sk", NULL, NULL, "1994",
- "Sonic & Knuckles (Prototype 0606, 19940605, 22.25, S2K chip)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_skp11RomInfo, md_skp11RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Sonic & Knuckles (Prototype 0608, 19940608, 03.35, S2K chip)
-static struct BurnRomInfo md_skp09RomDesc[] = {
- { "sonic & knuckles (s2k chip) (prototype 0608 - jun 08, 1994, 03.35).bin", 0x040000, 0x6a5dcbe6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_skp09)
-STD_ROM_FN(md_skp09)
-
-struct BurnDriver BurnDrvmd_skp09 = {
- "md_skp09", "md_sk", NULL, NULL, "1994",
- "Sonic & Knuckles (Prototype 0608, 19940608, 03.35, S2K chip)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_skp09RomInfo, md_skp09RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Sonic & Knuckles (Prototype 0610, 19940610, 03.11, S2K chip)
-static struct BurnRomInfo md_skp07RomDesc[] = {
- { "sonic & knuckles (s2k chip) (prototype 0610 - jun 10, 1994, 03.11).bin", 0x040000, 0x0f6ff22b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_skp07)
-STD_ROM_FN(md_skp07)
-
-struct BurnDriver BurnDrvmd_skp07 = {
- "md_skp07", "md_sk", NULL, NULL, "1994",
- "Sonic & Knuckles (Prototype 0610, 19940610, 03.11, S2K chip)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_skp07RomInfo, md_skp07RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Sonic & Knuckles (Prototype 0612, 19940612, 18.18, S2K chip)
-static struct BurnRomInfo md_skp05RomDesc[] = {
- { "sonic & knuckles (s2k chip) (prototype 0612 - jun 12, 1994, 18.18).bin", 0x040000, 0x9a5f8183, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_skp05)
-STD_ROM_FN(md_skp05)
-
-struct BurnDriver BurnDrvmd_skp05 = {
- "md_skp05", "md_sk", NULL, NULL, "1994",
- "Sonic & Knuckles (Prototype 0612, 19940612, 18.18, S2K chip)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_skp05RomInfo, md_skp05RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Sonic & Knuckles (Prototype 0618, 19940618, 9.07, S2K chip)
-static struct BurnRomInfo md_skp03RomDesc[] = {
- { "sonic & knuckles (s2k chip) (prototype 0618 - jun 18, 1994, 9.07).bin", 0x040000, 0x4dcfd55c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_skp03)
-STD_ROM_FN(md_skp03)
-
-struct BurnDriver BurnDrvmd_skp03 = {
- "md_skp03", "md_sk", NULL, NULL, "1994",
- "Sonic & Knuckles (Prototype 0618, 19940618, 9.07, S2K chip)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_skp03RomInfo, md_skp03RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Knuckles in Sonic 2 (Prototype 0524, 19940527, 10.46)
-static struct BurnRomInfo md_knucklpRomDesc[] = {
- { "knuckles in sonic 2 (prototype 0524 - may 27, 1994, 10.46).bin", 0x400000, 0x8878c1a8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_knucklp)
-STD_ROM_FN(md_knucklp)
-
-struct BurnDriver BurnDrvmd_knucklp = {
- "md_knucklp", NULL, NULL, NULL, "199?",
- "Knuckles in Sonic 2 (Prototype 0524, 19940527, 10.46)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_knucklpRomInfo, md_knucklpRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Sonic & Knuckles (Prototype 0525, 19940525, 15.28)
-static struct BurnRomInfo md_skp12RomDesc[] = {
- { "sonic & knuckles (prototype 0525 - may 25, 1994, 15.28).bin", 0x400000, 0x8e8dadd0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_skp12)
-STD_ROM_FN(md_skp12)
-
-struct BurnDriver BurnDrvmd_skp12 = {
- "md_skp12", "md_sk", NULL, NULL, "1994",
- "Sonic & Knuckles (Prototype 0525, 19940525, 15.28)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_skp12RomInfo, md_skp12RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Sonic 3C (Prototype 0408, 19940408, 17.29)
-static struct BurnRomInfo md_sonic3cRomDesc[] = {
- { "sonic 3c (prototype 0408 - apr 08, 1994, 17.29).bin", 0x400000, 0x59d23df5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sonic3c)
-STD_ROM_FN(md_sonic3c)
-
-struct BurnDriver BurnDrvmd_sonic3c = {
- "md_sonic3c", NULL, NULL, NULL, "199?",
- "Sonic 3C (Prototype 0408, 19940408, 17.29)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_FRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_sonic3cRomInfo, md_sonic3cRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Sonic 3C (Prototype 0517, 19940517, 17.08)
-static struct BurnRomInfo md_sonic3caRomDesc[] = {
- { "sonic 3c (prototype 0517 - may 17, 1994, 17.08).bin", 0x400000, 0x766c4b81, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sonic3ca)
-STD_ROM_FN(md_sonic3ca)
-
-struct BurnDriver BurnDrvmd_sonic3ca = {
- "md_sonic3ca", NULL, NULL, NULL, "199?",
- "Sonic 3C (Prototype 0517, 19940517, 17.08)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_FRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_sonic3caRomInfo, md_sonic3caRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Sonic 3D - Flickies' Island (Euro) ~ Sonic 3D Blast (USA, Kor)
-static struct BurnRomInfo md_sonic3dRomDesc[] = {
- { "sonic 3d blast -- sonic 3d - flickies' island (euro, usa, kor).bin", 0x400000, 0x44a2ca44, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sonic3d)
-STD_ROM_FN(md_sonic3d)
-
-struct BurnDriver BurnDrvmd_sonic3d = {
- "md_sonic3d", NULL, NULL, NULL, "1996",
- "Sonic 3D - Flickies' Island (Euro) ~ Sonic 3D Blast (USA, Kor)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_sonic3dRomInfo, md_sonic3dRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Sonic 3D Blast (Prototype 73, 19960703, 13.58)
-static struct BurnRomInfo md_sonic3dp8RomDesc[] = {
- { "sonic 3d blast (prototype 73 - jul 03, 1996, 13.58).bin", 0x200000, 0x93b75e99, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sonic3dp8)
-STD_ROM_FN(md_sonic3dp8)
-
-struct BurnDriver BurnDrvmd_sonic3dp8 = {
- "md_sonic3dp8", "md_sonic3d", NULL, NULL, "1996",
- "Sonic 3D Blast (Prototype 73, 19960703, 13.58)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_sonic3dp8RomInfo, md_sonic3dp8RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Sonic 3D Blast (Prototype 814, 19960815, 07.55)
-static struct BurnRomInfo md_sonic3dp7RomDesc[] = {
- { "sonic 3d blast (prototype 814 - aug 15, 1996, 07.55).bin", 0x400000, 0xd64e7675, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sonic3dp7)
-STD_ROM_FN(md_sonic3dp7)
-
-struct BurnDriver BurnDrvmd_sonic3dp7 = {
- "md_sonic3dp7", "md_sonic3d", NULL, NULL, "1996",
- "Sonic 3D Blast (Prototype 814, 19960815, 07.55)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_sonic3dp7RomInfo, md_sonic3dp7RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Sonic 3D Blast (Prototype 819, 19960819, 19.49)
-static struct BurnRomInfo md_sonic3dp6RomDesc[] = {
- { "sonic 3d blast (prototype 819 - aug 19, 1996, 19.49).bin", 0x400000, 0x2c43f43a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sonic3dp6)
-STD_ROM_FN(md_sonic3dp6)
-
-struct BurnDriver BurnDrvmd_sonic3dp6 = {
- "md_sonic3dp6", "md_sonic3d", NULL, NULL, "1996",
- "Sonic 3D Blast (Prototype 819, 19960819, 19.49)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_sonic3dp6RomInfo, md_sonic3dp6RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Sonic 3D Blast (Prototype 825, 19960826, 15.46)
-static struct BurnRomInfo md_sonic3dp5RomDesc[] = {
- { "sonic 3d blast (prototype 825 - aug 26, 1996, 15.46).bin", 0x400000, 0x465bcfbd, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sonic3dp5)
-STD_ROM_FN(md_sonic3dp5)
-
-struct BurnDriver BurnDrvmd_sonic3dp5 = {
- "md_sonic3dp5", "md_sonic3d", NULL, NULL, "1996",
- "Sonic 3D Blast (Prototype 825, 19960826, 15.46)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_sonic3dp5RomInfo, md_sonic3dp5RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Sonic 3D Blast (Prototype 830, 19960831, 08.19)
-static struct BurnRomInfo md_sonic3dp4RomDesc[] = {
- { "sonic 3d blast (prototype 830 - aug 31, 1996, 08.19).bin", 0x3fff06, 0x57640422, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sonic3dp4)
-STD_ROM_FN(md_sonic3dp4)
-
-struct BurnDriver BurnDrvmd_sonic3dp4 = {
- "md_sonic3dp4", "md_sonic3d", NULL, NULL, "1996",
- "Sonic 3D Blast (Prototype 830, 19960831, 08.19)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_sonic3dp4RomInfo, md_sonic3dp4RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Sonic 3D Blast (Prototype 831, 19960903, 10.07)
-static struct BurnRomInfo md_sonic3dp3RomDesc[] = {
- { "sonic 3d blast (prototype 831 - sep 03, 1996, 10.07).bin", 0x400000, 0x5933e453, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sonic3dp3)
-STD_ROM_FN(md_sonic3dp3)
-
-struct BurnDriver BurnDrvmd_sonic3dp3 = {
- "md_sonic3dp3", "md_sonic3d", NULL, NULL, "1996",
- "Sonic 3D Blast (Prototype 831, 19960903, 10.07)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_sonic3dp3RomInfo, md_sonic3dp3RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Sonic 3D Blast (Prototype 94, 19960904, 12.01)
-static struct BurnRomInfo md_sonic3dp2RomDesc[] = {
- { "sonic 3d blast (prototype 94 - sep 04, 1996, 12.01).bin", 0x400000, 0x2f2a4271, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sonic3dp2)
-STD_ROM_FN(md_sonic3dp2)
-
-struct BurnDriver BurnDrvmd_sonic3dp2 = {
- "md_sonic3dp2", "md_sonic3d", NULL, NULL, "1996",
- "Sonic 3D Blast (Prototype 94, 19960904, 12.01)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_sonic3dp2RomInfo, md_sonic3dp2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Sonic 3D Blast (USA, Prototype)
-static struct BurnRomInfo md_sonic3dp1RomDesc[] = {
- { "sonic 3d blast (usa) (beta).bin", 0x400000, 0xd20f385b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sonic3dp1)
-STD_ROM_FN(md_sonic3dp1)
-
-struct BurnDriver BurnDrvmd_sonic3dp1 = {
- "md_sonic3dp1", "md_sonic3d", NULL, NULL, "1996",
- "Sonic 3D Blast (USA, Prototype)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_sonic3dp1RomInfo, md_sonic3dp1RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Sonic Compilation (Euro) ~ Sonic Classics (USA, Kor)
-static struct BurnRomInfo md_soniccmpRomDesc[] = {
- { "mpr-19693.bin", 0x400000, 0xc696aee3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_soniccmp)
-STD_ROM_FN(md_soniccmp)
-
-struct BurnDriver BurnDrvmd_soniccmp = {
- "md_soniccmp", NULL, NULL, NULL, "1995",
- "Sonic Compilation (Euro) ~ Sonic Classics (USA, Kor)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_soniccmpRomInfo, md_soniccmpRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Sonic Crackers (Jpn, Prototype)
-static struct BurnRomInfo md_scrackRomDesc[] = {
- { "sonic crackers (jpn) (prototype).bin", 0x100000, 0x7fada88d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_scrack)
-STD_ROM_FN(md_scrack)
-
-struct BurnDriver BurnDrvmd_scrack = {
- "md_scrack", NULL, NULL, NULL, "199?",
- "Sonic Crackers (Jpn, Prototype)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_scrackRomInfo, md_scrackRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Sonic Eraser (Jpn, SegaNet)
-static struct BurnRomInfo md_sonicerRomDesc[] = {
- { "sonic eraser (jpn) (sn).bin", 0x040000, 0x62d8a0e7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sonicer)
-STD_ROM_FN(md_sonicer)
-
-struct BurnDriver BurnDrvmd_sonicer = {
- "md_sonicer", NULL, NULL, NULL, "1991",
- "Sonic Eraser (Jpn, SegaNet)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_sonicerRomInfo, md_sonicerRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Sonic Jam 6
-static struct BurnRomInfo md_sonicjamRomDesc[] = {
- { "sonic jam 6 (unl).bin", 0x200000, 0xbf39d897, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sonicjam)
-STD_ROM_FN(md_sonicjam)
-
-struct BurnDriver BurnDrvmd_sonicjam = {
- "md_sonicjam", NULL, NULL, NULL, "199?",
- "Sonic Jam 6\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_sonicjamRomInfo, md_sonicjamRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Sonic Jam 6 (Alt)
-static struct BurnRomInfo md_sonicjam1RomDesc[] = {
- { "sonic jam 6 (unl) (pirate).bin", 0x200000, 0x04f0c93e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sonicjam1)
-STD_ROM_FN(md_sonicjam1)
-
-struct BurnDriver BurnDrvmd_sonicjam1 = {
- "md_sonicjam1", "md_sonicjam", NULL, NULL, "199?",
- "Sonic Jam 6 (Alt)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_sonicjam1RomInfo, md_sonicjam1RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Sonic Spinball (Prototype)
-static struct BurnRomInfo md_sspinpRomDesc[] = {
- { "sonic spinball (beta).bin", 0x140000, 0xb1524979, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sspinp)
-STD_ROM_FN(md_sspinp)
-
-struct BurnDriver BurnDrvmd_sspinp = {
- "md_sspinp", "md_sspin", NULL, NULL, "1993",
- "Sonic Spinball (Prototype)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_sspinpRomInfo, md_sspinpRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Sonic Spinball (Jpn)
-static struct BurnRomInfo md_sspinjRomDesc[] = {
- { "sonic spinball (jpn).bin", 0x100000, 0xacd08ce8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sspinj)
-STD_ROM_FN(md_sspinj)
-
-struct BurnDriver BurnDrvmd_sspinj = {
- "md_sspinj", "md_sspin", NULL, NULL, "1993",
- "Sonic Spinball (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_sspinjRomInfo, md_sspinjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Sonic Spinball (USA)
-static struct BurnRomInfo md_sspinuRomDesc[] = {
- { "sonic spinball (usa).bin", 0x100000, 0x677206cb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sspinu)
-STD_ROM_FN(md_sspinu)
-
-struct BurnDriver BurnDrvmd_sspinu = {
- "md_sspinu", "md_sspin", NULL, NULL, "1993",
- "Sonic Spinball (USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_sspinuRomInfo, md_sspinuRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Sonic Spinball (USA, Alt)
-static struct BurnRomInfo md_sspinuaRomDesc[] = {
- { "sonic spinball (usa) (alt).bin", 0x100000, 0xe9960371, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sspinua)
-STD_ROM_FN(md_sspinua)
-
-struct BurnDriver BurnDrvmd_sspinua = {
- "md_sspinua", "md_sspin", NULL, NULL, "1993",
- "Sonic Spinball (USA, Alt)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_sspinuaRomInfo, md_sspinuaRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Sonic the Hedgehog (Jpn, Kor)
-static struct BurnRomInfo md_sonicjRomDesc[] = {
- { "mpr-13933.bin", 0x080000, 0xafe05eee, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sonicj)
-STD_ROM_FN(md_sonicj)
-
-struct BurnDriver BurnDrvmd_sonicj = {
- "md_sonicj", "md_sonic", NULL, NULL, "1991",
- "Sonic the Hedgehog (Jpn, Kor)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_sonicjRomInfo, md_sonicjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Sonic the Hedgehog (Pirate, Ripped from Golden 10 in 1)
-static struct BurnRomInfo md_sonicpirRomDesc[] = {
- { "sonic the hedgehog (euro, usa) (pirate).bin", 0x080000, 0x7a093f0b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sonicpir)
-STD_ROM_FN(md_sonicpir)
-
-struct BurnDriver BurnDrvmd_sonicpir = {
- "md_sonicpir", "md_sonic", NULL, NULL, "1991?",
- "Sonic the Hedgehog (Pirate, Ripped from Golden 10 in 1)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_sonicpirRomInfo, md_sonicpirRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Sonic the Hedgehog 2 (World, Rev. A)
-static struct BurnRomInfo md_sonic2RomDesc[] = {
- { "mpr-15000a.bin", 0x100000, 0x7b905383, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sonic2)
-STD_ROM_FN(md_sonic2)
-
-struct BurnDriver BurnDrvmd_sonic2 = {
- "md_sonic2", NULL, NULL, NULL, "1992",
- "Sonic the Hedgehog 2 (World, Rev. A)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_sonic2RomInfo, md_sonic2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Sonic the Hedgehog 2 (World)
-static struct BurnRomInfo md_sonic2aRomDesc[] = {
- { "sonic the hedgehog 2 (world).bin", 0x100000, 0x24ab4c3a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sonic2a)
-STD_ROM_FN(md_sonic2a)
-
-struct BurnDriver BurnDrvmd_sonic2a = {
- "md_sonic2a", "md_sonic2", NULL, NULL, "1992",
- "Sonic the Hedgehog 2 (World)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_sonic2aRomInfo, md_sonic2aRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Sonic the Hedgehog 2 (Beta 4, 19920918, 16.26)
-static struct BurnRomInfo md_sonic2p8RomDesc[] = {
- { "sonic the hedgehog 2 (beta 4 - sep 18, 1992, 16.26).bin", 0x100000, 0x8fda5cc5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sonic2p8)
-STD_ROM_FN(md_sonic2p8)
-
-struct BurnDriver BurnDrvmd_sonic2p8 = {
- "md_sonic2p8", "md_sonic2", NULL, NULL, "1992",
- "Sonic the Hedgehog 2 (Beta 4, 19920918, 16.26)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_sonic2p8RomInfo, md_sonic2p8RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Sonic the Hedgehog 2 (Beta 5, 19920921, 12.06)
-static struct BurnRomInfo md_sonic2p7RomDesc[] = {
- { "sonic the hedgehog 2 (beta 5 - sep 21, 1992, 12.06).bin", 0x100000, 0x066b9a89, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sonic2p7)
-STD_ROM_FN(md_sonic2p7)
-
-struct BurnDriver BurnDrvmd_sonic2p7 = {
- "md_sonic2p7", "md_sonic2", NULL, NULL, "1992",
- "Sonic the Hedgehog 2 (Beta 5, 19920921, 12.06)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_sonic2p7RomInfo, md_sonic2p7RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Sonic the Hedgehog 2 (Beta 6, 19920922, 18.47)
-static struct BurnRomInfo md_sonic2p6RomDesc[] = {
- { "sonic the hedgehog 2 (beta 6 - sep 22, 1992, 18.47).bin", 0x100000, 0xcebc64e0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sonic2p6)
-STD_ROM_FN(md_sonic2p6)
-
-struct BurnDriver BurnDrvmd_sonic2p6 = {
- "md_sonic2p6", "md_sonic2", NULL, NULL, "1992",
- "Sonic the Hedgehog 2 (Beta 6, 19920922, 18.47)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_sonic2p6RomInfo, md_sonic2p6RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Sonic the Hedgehog 2 (Beta 6, 19920922, 19.42)
-static struct BurnRomInfo md_sonic2p5RomDesc[] = {
- { "sonic the hedgehog 2 (beta 6 - sep 22, 1992, 19.42).bin", 0x100000, 0xcb036e6c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sonic2p5)
-STD_ROM_FN(md_sonic2p5)
-
-struct BurnDriver BurnDrvmd_sonic2p5 = {
- "md_sonic2p5", "md_sonic2", NULL, NULL, "1992",
- "Sonic the Hedgehog 2 (Beta 6, 19920922, 19.42)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_sonic2p5RomInfo, md_sonic2p5RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Sonic the Hedgehog 2 (Beta 7, 19920924, 09.26)
-static struct BurnRomInfo md_sonic2p4RomDesc[] = {
- { "sonic the hedgehog 2 (beta 7 - sep 24, 1992, 09.26).bin", 0x100000, 0xdc7be12c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sonic2p4)
-STD_ROM_FN(md_sonic2p4)
-
-struct BurnDriver BurnDrvmd_sonic2p4 = {
- "md_sonic2p4", "md_sonic2", NULL, NULL, "1992",
- "Sonic the Hedgehog 2 (Beta 7, 19920924, 09.26)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_sonic2p4RomInfo, md_sonic2p4RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Sonic the Hedgehog 2 (Beta 8, 19920924, 19.27)
-static struct BurnRomInfo md_sonic2p3RomDesc[] = {
- { "sonic the hedgehog 2 (beta 8 - sep 24, 1992, 19.27).bin", 0x100000, 0x6089fadd, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sonic2p3)
-STD_ROM_FN(md_sonic2p3)
-
-struct BurnDriver BurnDrvmd_sonic2p3 = {
- "md_sonic2p3", "md_sonic2", NULL, NULL, "1992",
- "Sonic the Hedgehog 2 (Beta 8, 19920924, 19.27)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_sonic2p3RomInfo, md_sonic2p3RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Sonic the Hedgehog 2 (Prototype)
-static struct BurnRomInfo md_sonic2p2RomDesc[] = {
- { "sonic the hedgehog 2 (prototype).bin", 0x100000, 0xeea21b5c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sonic2p2)
-STD_ROM_FN(md_sonic2p2)
-
-struct BurnDriver BurnDrvmd_sonic2p2 = {
- "md_sonic2p2", "md_sonic2", NULL, NULL, "1992",
- "Sonic the Hedgehog 2 (Prototype)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_sonic2p2RomInfo, md_sonic2p2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Sonic the Hedgehog 2 (World, Rev. 01a)
-static struct BurnRomInfo md_sonic2bRomDesc[] = {
- { "sonic the hedgehog 2 (world) (rev 01a).bin", 0x100000, 0x92d8817d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sonic2b)
-STD_ROM_FN(md_sonic2b)
-
-struct BurnDriver BurnDrvmd_sonic2b = {
- "md_sonic2b", "md_sonic2", NULL, NULL, "1992",
- "Sonic the Hedgehog 2 (World, Rev. 01a)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_sonic2bRomInfo, md_sonic2bRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Sonic the Hedgehog 2 (World, Rev. SC02)
-static struct BurnRomInfo md_sonic2cRomDesc[] = {
- { "sonic the hedgehog 2 (world) (rev sc02).bin", 0x100000, 0xf23ad4b3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sonic2c)
-STD_ROM_FN(md_sonic2c)
-
-struct BurnDriver BurnDrvmd_sonic2c = {
- "md_sonic2c", "md_sonic2", NULL, NULL, "1992",
- "Sonic the Hedgehog 2 (World, Rev. SC02)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_sonic2cRomInfo, md_sonic2cRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Sonic the Hedgehog 2 (World, Prototype)
-static struct BurnRomInfo md_sonic2p1RomDesc[] = {
- { "sonic the hedgehog 2 (world) (beta).bin", 0x100000, 0x39faaa70, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sonic2p1)
-STD_ROM_FN(md_sonic2p1)
-
-struct BurnDriver BurnDrvmd_sonic2p1 = {
- "md_sonic2p1", "md_sonic2", NULL, NULL, "1992",
- "Sonic the Hedgehog 2 (World, Prototype)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_sonic2p1RomInfo, md_sonic2p1RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Sonic the Hedgehog 3 (Pirate)
-static struct BurnRomInfo md_sonic3pirRomDesc[] = {
- { "sonic the hedgehog 3 (pirate).bin", 0x200000, 0xc818f6fd, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sonic3pir)
-STD_ROM_FN(md_sonic3pir)
-
-struct BurnDriver BurnDrvmd_sonic3pir = {
- "md_sonic3pir", "md_sonic3", NULL, NULL, "1994?",
- "Sonic the Hedgehog 3 (Pirate)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_FRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_sonic3pirRomInfo, md_sonic3pirRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Sonic the Hedgehog 3 (USA)
-static struct BurnRomInfo md_sonic3uRomDesc[] = {
- { "sonic the hedgehog 3 (usa).bin", 0x200000, 0x9bc192ce, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sonic3u)
-STD_ROM_FN(md_sonic3u)
-
-struct BurnDriver BurnDrvmd_sonic3u = {
- "md_sonic3u", "md_sonic3", NULL, NULL, "1994",
- "Sonic the Hedgehog 3 (USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_FRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_sonic3uRomInfo, md_sonic3uRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Sorcerer's Kingdom (USA, v1.1)
-static struct BurnRomInfo md_sorcerkRomDesc[] = {
- { "sorcerer's kingdom (usa) (v1.1).bin", 0x100000, 0xbb1fc9ce, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sorcerk)
-STD_ROM_FN(md_sorcerk)
-
-struct BurnDriver BurnDrvmd_sorcerk = {
- "md_sorcerk", NULL, NULL, NULL, "1992",
- "Sorcerer's Kingdom (USA, v1.1)\0", NULL, "Treco", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_sorcerkRomInfo, md_sorcerkRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Sorcerer's Kingdom (USA)
-static struct BurnRomInfo md_sorcerk1RomDesc[] = {
- { "sorcerer's kingdom (usa).bin", 0x100000, 0xcbe6c1ea, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sorcerk1)
-STD_ROM_FN(md_sorcerk1)
-
-struct BurnDriver BurnDrvmd_sorcerk1 = {
- "md_sorcerk1", "md_sorcerk", NULL, NULL, "1992",
- "Sorcerer's Kingdom (USA)\0", NULL, "Treco", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_sorcerk1RomInfo, md_sorcerk1RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Sorcer Kingdom (Jpn)
-static struct BurnRomInfo md_sorcerkjRomDesc[] = {
- { "sorcer kingdom (jpn).bin", 0x100000, 0x944135ca, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sorcerkj)
-STD_ROM_FN(md_sorcerkj)
-
-struct BurnDriver BurnDrvmd_sorcerkj = {
- "md_sorcerkj", "md_sorcerk", NULL, NULL, "1992",
- "Sorcer Kingdom (Jpn)\0", NULL, "NCS", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_sorcerkjRomInfo, md_sorcerkjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Sorcerian (Jpn)
-static struct BurnRomInfo md_sorcerRomDesc[] = {
- { "mpr-12906.bin", 0x080000, 0xa143a8c5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sorcer)
-STD_ROM_FN(md_sorcer)
-
-struct BurnDriver BurnDrvmd_sorcer = {
- "md_sorcer", NULL, NULL, NULL, "1990",
- "Sorcerian (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_sorcerRomInfo, md_sorcerRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Space Harrier II (Jpn, Launch Cart)
-static struct BurnRomInfo md_sharrierjRomDesc[] = {
- { "mpr-11934.bin", 0x080000, 0xedc0fb28, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sharrierj)
-STD_ROM_FN(md_sharrierj)
-
-struct BurnDriver BurnDrvmd_sharrierj = {
- "md_sharrierj", "md_sharrier", NULL, NULL, "1988",
- "Space Harrier II (Jpn, Launch Cart)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_sharrierjRomInfo, md_sharrierjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Space Invaders 91 (USA)
-static struct BurnRomInfo md_sinv91RomDesc[] = {
- { "space invaders 91 (usa).bin", 0x040000, 0xbb83b528, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sinv91)
-STD_ROM_FN(md_sinv91)
-
-struct BurnDriver BurnDrvmd_sinv91 = {
- "md_sinv91", NULL, NULL, NULL, "1991",
- "Space Invaders 91 (USA)\0", NULL, "Taito", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_sinv91RomInfo, md_sinv91RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Space Invaders 90 (Jpn)
-static struct BurnRomInfo md_sinv90RomDesc[] = {
- { "space invaders 90 (jpn).bin", 0x040000, 0x22adbd66, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sinv90)
-STD_ROM_FN(md_sinv90)
-
-struct BurnDriver BurnDrvmd_sinv90 = {
- "md_sinv90", "md_sinv91", NULL, NULL, "1990",
- "Space Invaders 90 (Jpn)\0", NULL, "Taito", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_sinv90RomInfo, md_sinv90RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Sparkster (Euro)
-static struct BurnRomInfo md_sparkstrRomDesc[] = {
- { "sparkster (euro).bin", 0x100000, 0xd63e9f2d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sparkstr)
-STD_ROM_FN(md_sparkstr)
-
-struct BurnDriver BurnDrvmd_sparkstr = {
- "md_sparkstr", NULL, NULL, NULL, "1994",
- "Sparkster (Euro)\0", NULL, "Konami", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_sparkstrRomInfo, md_sparkstrRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Sparkster (USA)
-static struct BurnRomInfo md_sparkstruRomDesc[] = {
- { "sparkster (usa).bin", 0x100000, 0x6bdb14ed, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sparkstru)
-STD_ROM_FN(md_sparkstru)
-
-struct BurnDriver BurnDrvmd_sparkstru = {
- "md_sparkstru", "md_sparkstr", NULL, NULL, "1994",
- "Sparkster (USA)\0", NULL, "Konami", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_sparkstruRomInfo, md_sparkstruRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Sparkster (Jpn)
-static struct BurnRomInfo md_sparkstrjRomDesc[] = {
- { "sparkster - rocket knight adventures 2 (jpn).bin", 0x100000, 0x914ec662, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sparkstrj)
-STD_ROM_FN(md_sparkstrj)
-
-struct BurnDriver BurnDrvmd_sparkstrj = {
- "md_sparkstrj", "md_sparkstr", NULL, NULL, "1994",
- "Sparkster (Jpn)\0", NULL, "Konami", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_sparkstrjRomInfo, md_sparkstrjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Speedball 2 (Euro)
-static struct BurnRomInfo md_speedbl2RomDesc[] = {
- { "mpr-14990.bin", 0x080000, 0x056a6e03, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_speedbl2)
-STD_ROM_FN(md_speedbl2)
-
-struct BurnDriver BurnDrvmd_speedbl2 = {
- "md_speedbl2", NULL, NULL, NULL, "1992",
- "Speedball 2 (Euro)\0", NULL, "Virgin Games", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_speedbl2RomInfo, md_speedbl2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Speedball 2 (Jpn)
-static struct BurnRomInfo md_speedbl2jRomDesc[] = {
- { "speedball 2 (jpn).bin", 0x080000, 0xf5442334, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_speedbl2j)
-STD_ROM_FN(md_speedbl2j)
-
-struct BurnDriver BurnDrvmd_speedbl2j = {
- "md_speedbl2j", "md_speedbl2", NULL, NULL, "1992",
- "Speedball 2 (Jpn)\0", NULL, "CRI", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_speedbl2jRomInfo, md_speedbl2jRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Speedball 2 - Brutal Deluxe (USA)
-static struct BurnRomInfo md_speedbl2uRomDesc[] = {
- { "speedball 2 - brutal deluxe (usa).bin", 0x080000, 0x9fc340a7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_speedbl2u)
-STD_ROM_FN(md_speedbl2u)
-
-struct BurnDriver BurnDrvmd_speedbl2u = {
- "md_speedbl2u", "md_speedbl2", NULL, NULL, "1991",
- "Speedball 2 - Brutal Deluxe (USA)\0", NULL, "Arena", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_speedbl2uRomInfo, md_speedbl2uRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Spider-Man (Euro, USA)
-static struct BurnRomInfo md_spidermnRomDesc[] = {
- { "spider-man (euro, usa) (acclaim).bin", 0x200000, 0x11b5b590, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_spidermn)
-STD_ROM_FN(md_spidermn)
-
-struct BurnDriver BurnDrvmd_spidermn = {
- "md_spidermn", NULL, NULL, NULL, "1995",
- "Spider-Man (Euro, USA)\0", NULL, "Acclaim Entertainment", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_spidermnRomInfo, md_spidermnRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Spider-Man (USA, Prototype)
-static struct BurnRomInfo md_spidermnp1RomDesc[] = {
- { "spider-man (usa) (acclaim) (beta).bin", 0x200000, 0xb88a710d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_spidermnp1)
-STD_ROM_FN(md_spidermnp1)
-
-struct BurnDriver BurnDrvmd_spidermnp1 = {
- "md_spidermnp1", "md_spidermn", NULL, NULL, "1995",
- "Spider-Man (USA, Prototype)\0", NULL, "Acclaim Entertainment", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_spidermnp1RomInfo, md_spidermnp1RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Spider-Man (USA, Prototype, Earlier)
-static struct BurnRomInfo md_spidermnp2RomDesc[] = {
- { "spider-man (usa) (acclaim) (beta) (earlier).bin", 0x200000, 0x83e1fe76, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_spidermnp2)
-STD_ROM_FN(md_spidermnp2)
-
-struct BurnDriver BurnDrvmd_spidermnp2 = {
- "md_spidermnp2", "md_spidermn", NULL, NULL, "1995",
- "Spider-Man (USA, Prototype, Earlier)\0", NULL, "Acclaim Entertainment", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_spidermnp2RomInfo, md_spidermnp2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Spider-Man vs. the Kingpin (World)
-static struct BurnRomInfo md_spidkingRomDesc[] = {
- { "mpr-14027.bin", 0x080000, 0x70ab775f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_spidking)
-STD_ROM_FN(md_spidking)
-
-struct BurnDriver BurnDrvmd_spidking = {
- "md_spidking", NULL, NULL, NULL, "1991",
- "Spider-Man vs. the Kingpin (World)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_spidkingRomInfo, md_spidkingRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Spider-Man & Venom - Maximum Carnage (World)
-static struct BurnRomInfo md_spidmaxcRomDesc[] = {
- { "spider-man and venom - maximum carnage (world).bin", 0x200000, 0x8fa0b6e6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_spidmaxc)
-STD_ROM_FN(md_spidmaxc)
-
-struct BurnDriver BurnDrvmd_spidmaxc = {
- "md_spidmaxc", NULL, NULL, NULL, "1994",
- "Spider-Man & Venom - Maximum Carnage (World)\0", NULL, "Acclaim Entertainment", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_spidmaxcRomInfo, md_spidmaxcRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Venom & Spider-Man - Separation Anxiety (Euro, USA)
-static struct BurnRomInfo md_venomRomDesc[] = {
- { "spider-man and venom - separation anxiety (euro, usa).bin", 0x300000, 0x512ade32, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_venom)
-STD_ROM_FN(md_venom)
-
-struct BurnDriver BurnDrvmd_venom = {
- "md_venom", NULL, NULL, NULL, "1995",
- "Venom & Spider-Man - Separation Anxiety (Euro, USA)\0", NULL, "Acclaim Entertainment", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_venomRomInfo, md_venomRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Spiritual Warfare (USA)
-static struct BurnRomInfo md_spiritwfRomDesc[] = {
- { "spiritual warfare (usa) (unl).bin", 0x080000, 0xd9a364ff, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_spiritwf)
-STD_ROM_FN(md_spiritwf)
-
-struct BurnDriver BurnDrvmd_spiritwf = {
- "md_spiritwf", NULL, NULL, NULL, "1994",
- "Spiritual Warfare (USA)\0", NULL, "Wisdom Tree", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_spiritwfRomInfo, md_spiritwfRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Spirou (Euro)
-static struct BurnRomInfo md_spirouRomDesc[] = {
- { "spirou (euro).bin", 0x100000, 0x6634b130, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_spirou)
-STD_ROM_FN(md_spirou)
-
-struct BurnDriver BurnDrvmd_spirou = {
- "md_spirou", NULL, NULL, NULL, "1996",
- "Spirou (Euro)\0", NULL, "Infogrames", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_spirouRomInfo, md_spirouRomName, NULL, NULL, MegadriveInputInfo, MegadrivePALDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Splatterhouse 2 (Euro)
-static struct BurnRomInfo md_splatth2RomDesc[] = {
- { "splatterhouse 2 (euro).bin", 0x100000, 0x2559e03c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_splatth2)
-STD_ROM_FN(md_splatth2)
-
-struct BurnDriver BurnDrvmd_splatth2 = {
- "md_splatth2", NULL, NULL, NULL, "1992",
- "Splatterhouse 2 (Euro)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_splatth2RomInfo, md_splatth2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Splatterhouse 2 (USA)
-static struct BurnRomInfo md_splatth2uRomDesc[] = {
- { "splatterhouse 2 (usa).bin", 0x100000, 0x2d1766e9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_splatth2u)
-STD_ROM_FN(md_splatth2u)
-
-struct BurnDriver BurnDrvmd_splatth2u = {
- "md_splatth2u", "md_splatth2", NULL, NULL, "1992",
- "Splatterhouse 2 (USA)\0", NULL, "Namco", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_splatth2uRomInfo, md_splatth2uRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Splatterhouse 3 (USA)
-static struct BurnRomInfo md_splatth3RomDesc[] = {
- { "splatterhouse 3 (usa).bin", 0x200000, 0x00f05d07, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_splatth3)
-STD_ROM_FN(md_splatth3)
-
-struct BurnDriver BurnDrvmd_splatth3 = {
- "md_splatth3", NULL, NULL, NULL, "1993",
- "Splatterhouse 3 (USA)\0", NULL, "Namco", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_splatth3RomInfo, md_splatth3RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Splatterhouse Part 3 (Jpn, Kor)
-static struct BurnRomInfo md_splatth3jRomDesc[] = {
- { "splatterhouse part 3 (jpn, kor).bin", 0x200000, 0x31b83d22, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_splatth3j)
-STD_ROM_FN(md_splatth3j)
-
-struct BurnDriver BurnDrvmd_splatth3j = {
- "md_splatth3j", "md_splatth3", NULL, NULL, "1993",
- "Splatterhouse Part 3 (Jpn, Kor)\0", NULL, "Namcot", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_splatth3jRomInfo, md_splatth3jRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Sport Games (Bra)
-static struct BurnRomInfo md_sportgRomDesc[] = {
- { "mpr-19945-mx.ic1", 0x400000, 0x25da0747, BRF_PRG | SEGA_MD_ROM_LOAD_NORMAL | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sportg)
-STD_ROM_FN(md_sportg)
-
-struct BurnDriver BurnDrvmd_sportg = {
- "md_sportg", NULL, NULL, NULL, "199?",
- "Sport Games (Bra)\0", NULL, "Tec Toy", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_sportgRomInfo, md_sportgRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Sports Talk Baseball (USA)
-static struct BurnRomInfo md_sporttbbRomDesc[] = {
- { "sports talk baseball (usa).bin", 0x100000, 0x0deb79c2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sporttbb)
-STD_ROM_FN(md_sporttbb)
-
-struct BurnDriver BurnDrvmd_sporttbb = {
- "md_sporttbb", NULL, NULL, NULL, "1992",
- "Sports Talk Baseball (USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_EEPROM, GBF_MISC, 0,
- MegadriveGetZipName, md_sporttbbRomInfo, md_sporttbbRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Spot Goes to Hollywood (Euro)
-static struct BurnRomInfo md_spotgoRomDesc[] = {
- { "mpr-18680+mpr-18681.bin", 0x300000, 0xfbe254ea, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_spotgo)
-STD_ROM_FN(md_spotgo)
-
-struct BurnDriver BurnDrvmd_spotgo = {
- "md_spotgo", NULL, NULL, NULL, "1996",
- "Spot Goes to Hollywood (Euro)\0", NULL, "Virgin Interactive", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_spotgoRomInfo, md_spotgoRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Spot Goes to Hollywood (USA)
-static struct BurnRomInfo md_spotgouRomDesc[] = {
- { "spot goes to hollywood (usa).bin", 0x300000, 0xbdad1cbc, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_spotgou)
-STD_ROM_FN(md_spotgou)
-
-struct BurnDriver BurnDrvmd_spotgou = {
- "md_spotgou", "md_spotgo", NULL, NULL, "1995",
- "Spot Goes to Hollywood (USA)\0", NULL, "Acclaim Entertainment", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_spotgouRomInfo, md_spotgouRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Star Control (USA)
-static struct BurnRomInfo md_starctrlRomDesc[] = {
- { "star control (usa).bin", 0x180000, 0x8e2bceaf, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_starctrl)
-STD_ROM_FN(md_starctrl)
-
-struct BurnDriver BurnDrvmd_starctrl = {
- "md_starctrl", NULL, NULL, NULL, "1991",
- "Star Control (USA)\0", NULL, "Ballistic", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_starctrlRomInfo, md_starctrlRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Star Cruiser (Jpn)
-static struct BurnRomInfo md_starcrusRomDesc[] = {
- { "star cruiser (jpn).bin", 0x080000, 0x2b75b52f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_starcrus)
-STD_ROM_FN(md_starcrus)
-
-struct BurnDriver BurnDrvmd_starcrus = {
- "md_starcrus", NULL, NULL, NULL, "1990",
- "Star Cruiser (Jpn)\0", NULL, "NCS", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_starcrusRomInfo, md_starcrusRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Star Trek - Deep Space Nine - Crossroads of Time (Euro)
-static struct BurnRomInfo md_stds9RomDesc[] = {
- { "star trek - deep space nine - crossroads of time (euro).bin", 0x100000, 0xd4b122f9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_stds9)
-STD_ROM_FN(md_stds9)
-
-struct BurnDriver BurnDrvmd_stds9 = {
- "md_stds9", NULL, NULL, NULL, "1995",
- "Star Trek - Deep Space Nine - Crossroads of Time (Euro)\0", NULL, "Virgin Interactive", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_stds9RomInfo, md_stds9RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Star Trek - Deep Space Nine - Crossroads of Time (USA)
-static struct BurnRomInfo md_stds9uRomDesc[] = {
- { "star trek - deep space nine - crossroads of time (usa).bin", 0x100000, 0xa771e1a4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_stds9u)
-STD_ROM_FN(md_stds9u)
-
-struct BurnDriver BurnDrvmd_stds9u = {
- "md_stds9u", "md_stds9", NULL, NULL, "1995",
- "Star Trek - Deep Space Nine - Crossroads of Time (USA)\0", NULL, "Playmates Interactive", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_stds9uRomInfo, md_stds9uRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Star Trek - The Next Generation - Echoes from the Past (USA, v1.1)
-static struct BurnRomInfo md_sttngRomDesc[] = {
- { "star trek - the next generation - echoes from the past (usa) (v1.1).bin", 0x200000, 0xef840ef2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sttng)
-STD_ROM_FN(md_sttng)
-
-struct BurnDriver BurnDrvmd_sttng = {
- "md_sttng", NULL, NULL, NULL, "1994",
- "Star Trek - The Next Generation - Echoes from the Past (USA, v1.1)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_sttngRomInfo, md_sttngRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Star Trek - The Next Generation - Echoes from the Past (USA)
-static struct BurnRomInfo md_sttngaRomDesc[] = {
- { "star trek - the next generation - echoes from the past (usa).bin", 0x200000, 0x272153fb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sttnga)
-STD_ROM_FN(md_sttnga)
-
-struct BurnDriver BurnDrvmd_sttnga = {
- "md_sttnga", "md_sttng", NULL, NULL, "1994",
- "Star Trek - The Next Generation - Echoes from the Past (USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_sttngaRomInfo, md_sttngaRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Star Trek - The Next Generation - Echoes from the Past (Prototype, 19941228)
-static struct BurnRomInfo md_sttngp06RomDesc[] = {
- { "star trek - the next generation - echoes from the past (prototype - dec 28, 1994).bin", 0x200000, 0x3ba670f9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sttngp06)
-STD_ROM_FN(md_sttngp06)
-
-struct BurnDriver BurnDrvmd_sttngp06 = {
- "md_sttngp06", "md_sttng", NULL, NULL, "1994",
- "Star Trek - The Next Generation - Echoes from the Past (Prototype, 19941228)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_sttngp06RomInfo, md_sttngp06RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Star Trek - The Next Generation - Echoes from the Past (Prototype, 19941229)
-static struct BurnRomInfo md_sttngp05RomDesc[] = {
- { "star trek - the next generation - echoes from the past (prototype - dec 29, 1994).bin", 0x200000, 0x316bbc43, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sttngp05)
-STD_ROM_FN(md_sttngp05)
-
-struct BurnDriver BurnDrvmd_sttngp05 = {
- "md_sttngp05", "md_sttng", NULL, NULL, "1994",
- "Star Trek - The Next Generation - Echoes from the Past (Prototype, 19941229)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_sttngp05RomInfo, md_sttngp05RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Star Trek - The Next Generation - Echoes from the Past (Prototype, 19940103)
-static struct BurnRomInfo md_sttngp04RomDesc[] = {
- { "star trek - the next generation - echoes from the past (prototype - jan 03, 1994).bin", 0x200000, 0xcac86b68, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sttngp04)
-STD_ROM_FN(md_sttngp04)
-
-struct BurnDriver BurnDrvmd_sttngp04 = {
- "md_sttngp04", "md_sttng", NULL, NULL, "1994",
- "Star Trek - The Next Generation - Echoes from the Past (Prototype, 19940103)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_sttngp04RomInfo, md_sttngp04RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Star Trek - The Next Generation - Echoes from the Past (Prototype, 19940110)
-static struct BurnRomInfo md_sttngp03RomDesc[] = {
- { "star trek - the next generation - echoes from the past (prototype - jan 10, 1994).bin", 0x200000, 0xd138ca3e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sttngp03)
-STD_ROM_FN(md_sttngp03)
-
-struct BurnDriver BurnDrvmd_sttngp03 = {
- "md_sttngp03", "md_sttng", NULL, NULL, "1994",
- "Star Trek - The Next Generation - Echoes from the Past (Prototype, 19940110)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_sttngp03RomInfo, md_sttngp03RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Star Trek - The Next Generation - Echoes from the Past (Prototype, 19940118)
-static struct BurnRomInfo md_sttngp02RomDesc[] = {
- { "star trek - the next generation - echoes from the past (prototype - jan 18, 1994).bin", 0x200000, 0xd8dab97a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sttngp02)
-STD_ROM_FN(md_sttngp02)
-
-struct BurnDriver BurnDrvmd_sttngp02 = {
- "md_sttngp02", "md_sttng", NULL, NULL, "1994",
- "Star Trek - The Next Generation - Echoes from the Past (Prototype, 19940118)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_sttngp02RomInfo, md_sttngp02RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Star Trek - The Next Generation - Echoes from the Past (Prototype, 19940125)
-static struct BurnRomInfo md_sttngp01RomDesc[] = {
- { "star trek - the next generation - echoes from the past (prototype - jan 25, 1994).bin", 0x200000, 0x63f29e6f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sttngp01)
-STD_ROM_FN(md_sttngp01)
-
-struct BurnDriver BurnDrvmd_sttngp01 = {
- "md_sttngp01", "md_sttng", NULL, NULL, "1994",
- "Star Trek - The Next Generation - Echoes from the Past (Prototype, 19940125)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_sttngp01RomInfo, md_sttngp01RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Starflight (Euro, USA, v1.1)
-static struct BurnRomInfo md_starflRomDesc[] = {
- { "starflight (euro, usa) (v1.1).bin", 0x100000, 0x1217dbea, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_starfl)
-STD_ROM_FN(md_starfl)
-
-struct BurnDriver BurnDrvmd_starfl = {
- "md_starfl", NULL, NULL, NULL, "1991",
- "Starflight (Euro, USA, v1.1)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_starflRomInfo, md_starflRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Starflight (Euro, USA)
-static struct BurnRomInfo md_starfl1RomDesc[] = {
- { "starflight (euro, usa).bin", 0x100000, 0xd550c928, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_starfl1)
-STD_ROM_FN(md_starfl1)
-
-struct BurnDriver BurnDrvmd_starfl1 = {
- "md_starfl1", "md_starfl", NULL, NULL, "1991",
- "Starflight (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_starfl1RomInfo, md_starfl1RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Stargate (Euro, USA)
-static struct BurnRomInfo md_stargateRomDesc[] = {
- { "stargate (euro, usa).bin", 0x200000, 0xe587069e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_stargate)
-STD_ROM_FN(md_stargate)
-
-struct BurnDriver BurnDrvmd_stargate = {
- "md_stargate", NULL, NULL, NULL, "1994",
- "Stargate (Euro, USA)\0", NULL, "Acclaim Entertainment", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_stargateRomInfo, md_stargateRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Stargate (Euro, Prototype)
-static struct BurnRomInfo md_stargatepRomDesc[] = {
- { "stargate (euro) (beta).bin", 0x200000, 0x8dc8ab23, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_stargatep)
-STD_ROM_FN(md_stargatep)
-
-struct BurnDriver BurnDrvmd_stargatep = {
- "md_stargatep", "md_stargate", NULL, NULL, "1994",
- "Stargate (Euro, Prototype)\0", NULL, "Acclaim Entertainment", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_stargatepRomInfo, md_stargatepRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Steel Talons (Euro, USA)
-static struct BurnRomInfo md_steeltalRomDesc[] = {
- { "steel talons (euro, usa).bin", 0x080000, 0x10e4ec63, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_steeltal)
-STD_ROM_FN(md_steeltal)
-
-struct BurnDriver BurnDrvmd_steeltal = {
- "md_steeltal", NULL, NULL, NULL, "1992",
- "Steel Talons (Euro, USA)\0", NULL, "Tengen", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_steeltalRomInfo, md_steeltalRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Steel Talons (Jpn, Kor)
-static struct BurnRomInfo md_steeltaljRomDesc[] = {
- { "steel talons (jpn, kor).bin", 0x080000, 0x04f388e6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_steeltalj)
-STD_ROM_FN(md_steeltalj)
-
-struct BurnDriver BurnDrvmd_steeltalj = {
- "md_steeltalj", "md_steeltal", NULL, NULL, "1993",
- "Steel Talons (Jpn, Kor)\0", NULL, "Tengen", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_steeltaljRomInfo, md_steeltaljRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Steel Talons (USA, Prototype)
-static struct BurnRomInfo md_steeltalpRomDesc[] = {
- { "steel talons (usa) (beta).bin", 0x080000, 0xc4052f18, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_steeltalp)
-STD_ROM_FN(md_steeltalp)
-
-struct BurnDriver BurnDrvmd_steeltalp = {
- "md_steeltalp", "md_steeltal", NULL, NULL, "1992",
- "Steel Talons (USA, Prototype)\0", NULL, "Tengen", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_steeltalpRomInfo, md_steeltalpRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Stone Protectors (USA, Prototype)
-static struct BurnRomInfo md_stonprotRomDesc[] = {
- { "stone protectors.bin", 0x200000, 0xfbf0d54f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_stonprot)
-STD_ROM_FN(md_stonprot)
-
-struct BurnDriver BurnDrvmd_stonprot = {
- "md_stonprot", NULL, NULL, NULL, "1994",
- "Stone Protectors (USA, Prototype)\0", NULL, "Vic Tokai", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_stonprotRomInfo, md_stonprotRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Stormlord (USA)
-static struct BurnRomInfo md_strmlordRomDesc[] = {
- { "stormlord (usa).bin", 0x080000, 0x39ab50a5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_strmlord)
-STD_ROM_FN(md_strmlord)
-
-struct BurnDriver BurnDrvmd_strmlord = {
- "md_strmlord", NULL, NULL, NULL, "1990",
- "Stormlord (USA)\0", NULL, "RazorSoft", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_strmlordRomInfo, md_strmlordRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Stormlord (Jpn)
-static struct BurnRomInfo md_strmlordjRomDesc[] = {
- { "stormlord (jpn).bin", 0x080000, 0x0b440fed, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_strmlordj)
-STD_ROM_FN(md_strmlordj)
-
-struct BurnDriver BurnDrvmd_strmlordj = {
- "md_strmlordj", "md_strmlord", NULL, NULL, "1990",
- "Stormlord (Jpn)\0", NULL, "Micro World", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_strmlordjRomInfo, md_strmlordjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Story of Thor (Euro)
-static struct BurnRomInfo md_thorRomDesc[] = {
- { "mpr-17588+mpr-17606.bin", 0x300000, 0x1110b0db, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_thor)
-STD_ROM_FN(md_thor)
-
-struct BurnDriver BurnDrvmd_thor = {
- "md_thor", NULL, NULL, NULL, "1995",
- "The Story of Thor (Euro)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_thorRomInfo, md_thorRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Story of Thor (Ger)
-static struct BurnRomInfo md_thorgRomDesc[] = {
- { "story of thor, the (germany).bin", 0x300000, 0xfa20d011, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_thorg)
-STD_ROM_FN(md_thorg)
-
-struct BurnDriver BurnDrvmd_thorg = {
- "md_thorg", "md_thor", NULL, NULL, "1995",
- "The Story of Thor (Ger)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_thorgRomInfo, md_thorgRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Story of Thor - Hikari o Tsugumono (Jpn)
-static struct BurnRomInfo md_thorjRomDesc[] = {
- { "story of thor, the - hikari o tsugumono (jpn).bin", 0x300000, 0x4f39783c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_thorj)
-STD_ROM_FN(md_thorj)
-
-struct BurnDriver BurnDrvmd_thorj = {
- "md_thorj", "md_thor", NULL, NULL, "1995",
- "The Story of Thor - Hikari o Tsugumono (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_thorjRomInfo, md_thorjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Story of Thor (Jpn, Prototype)
-static struct BurnRomInfo md_thorjpRomDesc[] = {
- { "story of thor, the (jpn) (beta) (bad dump).bin", 0x1b0000, 0xbfc11649, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_thorjp)
-STD_ROM_FN(md_thorjp)
-
-struct BurnDriver BurnDrvmd_thorjp = {
- "md_thorjp", "md_thor", NULL, NULL, "1994",
- "The Story of Thor (Jpn, Prototype)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_thorjpRomInfo, md_thorjpRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Story of Thor (Kor)
-static struct BurnRomInfo md_thorkRomDesc[] = {
- { "story of thor, the (kor).bin", 0x300000, 0xee1603c5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_thork)
-STD_ROM_FN(md_thork)
-
-struct BurnDriver BurnDrvmd_thork = {
- "md_thork", "md_thor", NULL, NULL, "1995",
- "The Story of Thor (Kor)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_thorkRomInfo, md_thorkRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Story of Thor (USA, Prototype, 19941004)
-static struct BurnRomInfo md_thorp2RomDesc[] = {
- { "story of thor, the (prototype - oct 04, 1994).bin", 0x300000, 0x9e486f91, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_thorp2)
-STD_ROM_FN(md_thorp2)
-
-struct BurnDriver BurnDrvmd_thorp2 = {
- "md_thorp2", "md_thor", NULL, NULL, "1994",
- "The Story of Thor (USA, Prototype, 19941004)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_thorp2RomInfo, md_thorp2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Story of Thor (USA, Prototype, 19941017)
-static struct BurnRomInfo md_thorp1RomDesc[] = {
- { "story of thor, the (prototype - oct 17, 1994).bin", 0x300000, 0xaa43d34a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_thorp1)
-STD_ROM_FN(md_thorp1)
-
-struct BurnDriver BurnDrvmd_thorp1 = {
- "md_thorp1", "md_thor", NULL, NULL, "1994",
- "The Story of Thor (USA, Prototype, 19941017)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_thorp1RomInfo, md_thorp1RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Beyond Oasis (USA, Prototype, 19941101)
-static struct BurnRomInfo md_beyoasispRomDesc[] = {
- { "beyond oasis (prototype - nov 01, 1994).bin", 0x300000, 0xfa59f847, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_beyoasisp)
-STD_ROM_FN(md_beyoasisp)
-
-struct BurnDriver BurnDrvmd_beyoasisp = {
- "md_beyoasisp", "md_thor", NULL, NULL, "1994",
- "Beyond Oasis (USA, Prototype, 19941101)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_beyoasispRomInfo, md_beyoasispRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Story of Thor (Spa)
-static struct BurnRomInfo md_thorsRomDesc[] = {
- { "story of thor, the (spain).bin", 0x300000, 0x4631f941, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_thors)
-STD_ROM_FN(md_thors)
-
-struct BurnDriver BurnDrvmd_thors = {
- "md_thors", "md_thor", NULL, NULL, "1995",
- "The Story of Thor (Spa)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_thorsRomInfo, md_thorsRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Beyond Oasis (USA)
-static struct BurnRomInfo md_beyoasisRomDesc[] = {
- { "beyond oasis (usa).bin", 0x300000, 0xc4728225, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_beyoasis)
-STD_ROM_FN(md_beyoasis)
-
-struct BurnDriver BurnDrvmd_beyoasis = {
- "md_beyoasis", "md_thor", NULL, NULL, "1995",
- "Beyond Oasis (USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_beyoasisRomInfo, md_beyoasisRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Street Fighter II' - Special Champion Edition (Euro)
-static struct BurnRomInfo md_sf2RomDesc[] = {
- { "mpr-15910+mpr-15911.bin", 0x300000, 0x56d41136, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sf2)
-STD_ROM_FN(md_sf2)
-
-struct BurnDriver BurnDrvmd_sf2 = {
- "md_sf2", NULL, NULL, NULL, "1993",
- "Street Fighter II' - Special Champion Edition (Euro)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_sf2RomInfo, md_sf2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Street Fighter II' Plus (Jpn, Asia, Kor)
-static struct BurnRomInfo md_sf2jRomDesc[] = {
- { "street fighter ii' plus (jpn, asia, kor).bin", 0x300000, 0x2e487ee3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sf2j)
-STD_ROM_FN(md_sf2j)
-
-struct BurnDriver BurnDrvmd_sf2j = {
- "md_sf2j", "md_sf2", NULL, NULL, "1993",
- "Street Fighter II' Plus (Jpn, Asia, Kor)\0", NULL, "Capcom", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_sf2jRomInfo, md_sf2jRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Street Fighter II' Turbo (Pirate)
-static struct BurnRomInfo md_sf2pirRomDesc[] = {
- { "street fighter ii' turbo (pirate).bin", 0x200000, 0xa85491ae, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sf2pir)
-STD_ROM_FN(md_sf2pir)
-
-struct BurnDriver BurnDrvmd_sf2pir = {
- "md_sf2pir", "md_sf2", NULL, NULL, "1993?",
- "Street Fighter II' Turbo (Pirate)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_sf2pirRomInfo, md_sf2pirRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Street Fighter II' - Special Champion Edition (USA)
-static struct BurnRomInfo md_sf2uRomDesc[] = {
- { "street fighter ii' - special champion edition (usa).bin", 0x300000, 0x13fe08a1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sf2u)
-STD_ROM_FN(md_sf2u)
-
-struct BurnDriver BurnDrvmd_sf2u = {
- "md_sf2u", "md_sf2", NULL, NULL, "1993",
- "Street Fighter II' - Special Champion Edition (USA)\0", NULL, "Capcom", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_sf2uRomInfo, md_sf2uRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Street Racer (Euro)
-static struct BurnRomInfo md_sracerRomDesc[] = {
- { "mpr-17987.bin", 0x100000, 0x1a58d5fe, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sracer)
-STD_ROM_FN(md_sracer)
-
-struct BurnDriver BurnDrvmd_sracer = {
- "md_sracer", NULL, NULL, NULL, "1995",
- "Street Racer (Euro)\0", NULL, "Ubi Soft", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_sracerRomInfo, md_sracerRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Street Smart (Jpn, USA)
-static struct BurnRomInfo md_ssmartRomDesc[] = {
- { "street smart (usa, jpn).bin", 0x080000, 0xb1dedfad, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ssmart)
-STD_ROM_FN(md_ssmart)
-
-struct BurnDriver BurnDrvmd_ssmart = {
- "md_ssmart", NULL, NULL, NULL, "1991",
- "Street Smart (Jpn, USA)\0", NULL, "Treco", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_ssmartRomInfo, md_ssmartRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Streets of Rage II (Euro) ~ Bare Knuckle II - Shitou e no Chingonka (Jpn)
-static struct BurnRomInfo md_sor2RomDesc[] = {
- { "mpr-15309.bin", 0x200000, 0x42e3efdc, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sor2)
-STD_ROM_FN(md_sor2)
-
-struct BurnDriver BurnDrvmd_sor2 = {
- "md_sor2", NULL, NULL, NULL, "1993",
- "Streets of Rage II (Euro) ~ Bare Knuckle II - Shitou e no Chingonka (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_sor2RomInfo, md_sor2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Streets of Rage 2 (USA)
-static struct BurnRomInfo md_sor2uRomDesc[] = {
- { "streets of rage 2 (usa).bin", 0x200000, 0xe01fa526, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sor2u)
-STD_ROM_FN(md_sor2u)
-
-struct BurnDriver BurnDrvmd_sor2u = {
- "md_sor2u", "md_sor2", NULL, NULL, "1992",
- "Streets of Rage 2 (USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_sor2uRomInfo, md_sor2uRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Bare Knuckle II (Jpn, Prototype)
-static struct BurnRomInfo md_bk2pRomDesc[] = {
- { "bare knuckle ii (jpn) (beta).bin", 0x130000, 0x0cf2acbe, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_bk2p)
-STD_ROM_FN(md_bk2p)
-
-struct BurnDriver BurnDrvmd_bk2p = {
- "md_bk2p", "md_sor2", NULL, NULL, "1992",
- "Bare Knuckle II (Jpn, Prototype)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_bk2pRomInfo, md_bk2pRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Streets of Rage 3 (Euro)
-static struct BurnRomInfo md_sor3RomDesc[] = {
- { "mpr-16834+mpr-16835.bin", 0x300000, 0x3b78135f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sor3)
-STD_ROM_FN(md_sor3)
-
-struct BurnDriver BurnDrvmd_sor3 = {
- "md_sor3", NULL, NULL, NULL, "1994",
- "Streets of Rage 3 (Euro)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_sor3RomInfo, md_sor3RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Streets of Rage 3 (Kor)
-static struct BurnRomInfo md_sor3kRomDesc[] = {
- { "streets of rage 3 (kor).bin", 0x300000, 0x90ef991e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sor3k)
-STD_ROM_FN(md_sor3k)
-
-struct BurnDriver BurnDrvmd_sor3k = {
- "md_sor3k", "md_sor3", NULL, NULL, "1994",
- "Streets of Rage 3 (Kor)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_sor3kRomInfo, md_sor3kRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Streets of Rage 3 (Euro, Prototype, 19940412)
-static struct BurnRomInfo md_sor3p5RomDesc[] = {
- { "streets of rage 3 (euro) (prototype - apr 12, 1994).bin", 0x300000, 0xa17ce5ab, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sor3p5)
-STD_ROM_FN(md_sor3p5)
-
-struct BurnDriver BurnDrvmd_sor3p5 = {
- "md_sor3p5", "md_sor3", NULL, NULL, "1994",
- "Streets of Rage 3 (Euro, Prototype, 19940412)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_sor3p5RomInfo, md_sor3p5RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Streets of Rage 3 (Euro, Prototype, 19940413)
-static struct BurnRomInfo md_sor3p4RomDesc[] = {
- { "streets of rage 3 (euro) (prototype - apr 13, 1994).bin", 0x300000, 0x164e42ae, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sor3p4)
-STD_ROM_FN(md_sor3p4)
-
-struct BurnDriver BurnDrvmd_sor3p4 = {
- "md_sor3p4", "md_sor3", NULL, NULL, "1994",
- "Streets of Rage 3 (Euro, Prototype, 19940413)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_sor3p4RomInfo, md_sor3p4RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Streets of Rage 3 (Euro, Prototype, 19940415)
-static struct BurnRomInfo md_sor3p3RomDesc[] = {
- { "streets of rage 3 (euro) (prototype - apr 15, 1994).bin", 0x300000, 0xc64f1e6b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sor3p3)
-STD_ROM_FN(md_sor3p3)
-
-struct BurnDriver BurnDrvmd_sor3p3 = {
- "md_sor3p3", "md_sor3", NULL, NULL, "1994",
- "Streets of Rage 3 (Euro, Prototype, 19940415)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_sor3p3RomInfo, md_sor3p3RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Streets of Rage 3 (Euro, Prototype, 19940420)
-static struct BurnRomInfo md_sor3p2RomDesc[] = {
- { "streets of rage 3 (euro) (prototype - apr 20, 1994).bin", 0x300000, 0x6ae4bd8e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sor3p2)
-STD_ROM_FN(md_sor3p2)
-
-struct BurnDriver BurnDrvmd_sor3p2 = {
- "md_sor3p2", "md_sor3", NULL, NULL, "1994",
- "Streets of Rage 3 (Euro, Prototype, 19940420)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_sor3p2RomInfo, md_sor3p2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Streets of Rage 3 (Euro, Prototype, 19940425)
-static struct BurnRomInfo md_sor3p1RomDesc[] = {
- { "streets of rage 3 (euro) (prototype - apr 25, 1994).bin", 0x300000, 0x7033878a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sor3p1)
-STD_ROM_FN(md_sor3p1)
-
-struct BurnDriver BurnDrvmd_sor3p1 = {
- "md_sor3p1", "md_sor3", NULL, NULL, "1994",
- "Streets of Rage 3 (Euro, Prototype, 19940425)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_sor3p1RomInfo, md_sor3p1RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Streets of Rage 3 (Prototype, 19940401)
-static struct BurnRomInfo md_sor3up06RomDesc[] = {
- { "streets of rage 3 (prototype - apr 01, 1994).bin", 0x300000, 0x797e75b7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sor3up06)
-STD_ROM_FN(md_sor3up06)
-
-struct BurnDriver BurnDrvmd_sor3up06 = {
- "md_sor3up06", "md_sor3", NULL, NULL, "1994",
- "Streets of Rage 3 (Prototype, 19940401)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_sor3up06RomInfo, md_sor3up06RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Streets of Rage 3 (Prototype, 19940404)
-static struct BurnRomInfo md_sor3up05RomDesc[] = {
- { "streets of rage 3 (prototype - apr 04, 1994).bin", 0x300000, 0x6b968f13, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sor3up05)
-STD_ROM_FN(md_sor3up05)
-
-struct BurnDriver BurnDrvmd_sor3up05 = {
- "md_sor3up05", "md_sor3", NULL, NULL, "1994",
- "Streets of Rage 3 (Prototype, 19940404)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_sor3up05RomInfo, md_sor3up05RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Streets of Rage 3 (Prototype, 19940408)
-static struct BurnRomInfo md_sor3up04RomDesc[] = {
- { "streets of rage 3 (prototype - apr 08, 1994).bin", 0x300000, 0xd4ba76c2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sor3up04)
-STD_ROM_FN(md_sor3up04)
-
-struct BurnDriver BurnDrvmd_sor3up04 = {
- "md_sor3up04", "md_sor3", NULL, NULL, "1994",
- "Streets of Rage 3 (Prototype, 19940408)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_sor3up04RomInfo, md_sor3up04RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Streets of Rage 3 (Prototype, 19940411)
-static struct BurnRomInfo md_sor3up03RomDesc[] = {
- { "streets of rage 3 (prototype - apr 11, 1994).bin", 0x300000, 0xfa5e5a82, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sor3up03)
-STD_ROM_FN(md_sor3up03)
-
-struct BurnDriver BurnDrvmd_sor3up03 = {
- "md_sor3up03", "md_sor3", NULL, NULL, "1994",
- "Streets of Rage 3 (Prototype, 19940411)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_sor3up03RomInfo, md_sor3up03RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Streets of Rage 3 (Prototype, 19940412)
-static struct BurnRomInfo md_sor3up02RomDesc[] = {
- { "streets of rage 3 (prototype - apr 12, 1994).bin", 0x300000, 0x3f52cb72, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sor3up02)
-STD_ROM_FN(md_sor3up02)
-
-struct BurnDriver BurnDrvmd_sor3up02 = {
- "md_sor3up02", "md_sor3", NULL, NULL, "1994",
- "Streets of Rage 3 (Prototype, 19940412)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_sor3up02RomInfo, md_sor3up02RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Streets of Rage 3 (Prototype, 19940413)
-static struct BurnRomInfo md_sor3up01RomDesc[] = {
- { "streets of rage 3 (prototype - apr 13, 1994).bin", 0x300000, 0x6b675807, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sor3up01)
-STD_ROM_FN(md_sor3up01)
-
-struct BurnDriver BurnDrvmd_sor3up01 = {
- "md_sor3up01", "md_sor3", NULL, NULL, "1994",
- "Streets of Rage 3 (Prototype, 19940413)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_sor3up01RomInfo, md_sor3up01RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Streets of Rage 3 (Prototype, 19940308)
-static struct BurnRomInfo md_sor3up10RomDesc[] = {
- { "streets of rage 3 (prototype - mar 08, 1994).bin", 0x300000, 0xea50b551, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sor3up10)
-STD_ROM_FN(md_sor3up10)
-
-struct BurnDriver BurnDrvmd_sor3up10 = {
- "md_sor3up10", "md_sor3", NULL, NULL, "1994",
- "Streets of Rage 3 (Prototype, 19940308)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_sor3up10RomInfo, md_sor3up10RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Streets of Rage 3 (Prototype, 19940317)
-static struct BurnRomInfo md_sor3up09RomDesc[] = {
- { "streets of rage 3 (prototype - mar 17, 1994).bin", 0x300000, 0x39ad962b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sor3up09)
-STD_ROM_FN(md_sor3up09)
-
-struct BurnDriver BurnDrvmd_sor3up09 = {
- "md_sor3up09", "md_sor3", NULL, NULL, "1994",
- "Streets of Rage 3 (Prototype, 19940317)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_sor3up09RomInfo, md_sor3up09RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Streets of Rage 3 (Prototype, 19940318)
-static struct BurnRomInfo md_sor3up08RomDesc[] = {
- { "streets of rage 3 (prototype - mar 18, 1994).bin", 0x300000, 0x60142484, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sor3up08)
-STD_ROM_FN(md_sor3up08)
-
-struct BurnDriver BurnDrvmd_sor3up08 = {
- "md_sor3up08", "md_sor3", NULL, NULL, "1994",
- "Streets of Rage 3 (Prototype, 19940318)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_sor3up08RomInfo, md_sor3up08RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Streets of Rage 3 (Prototype, 19940328)
-static struct BurnRomInfo md_sor3up07RomDesc[] = {
- { "streets of rage 3 (prototype - mar 28, 1994).bin", 0x300000, 0x8757f797, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sor3up07)
-STD_ROM_FN(md_sor3up07)
-
-struct BurnDriver BurnDrvmd_sor3up07 = {
- "md_sor3up07", "md_sor3", NULL, NULL, "1994",
- "Streets of Rage 3 (Prototype, 19940328)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_sor3up07RomInfo, md_sor3up07RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Streets of Rage 3 (USA)
-static struct BurnRomInfo md_sor3uRomDesc[] = {
- { "streets of rage 3 (usa).bin", 0x300000, 0xd5bb15d9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sor3u)
-STD_ROM_FN(md_sor3u)
-
-struct BurnDriver BurnDrvmd_sor3u = {
- "md_sor3u", "md_sor3", NULL, NULL, "1994",
- "Streets of Rage 3 (USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_sor3uRomInfo, md_sor3uRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Bare Knuckle III (Jpn)
-static struct BurnRomInfo md_bk3RomDesc[] = {
- { "bare knuckle iii (jpn).bin", 0x300000, 0x5d09236f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_bk3)
-STD_ROM_FN(md_bk3)
-
-struct BurnDriver BurnDrvmd_bk3 = {
- "md_bk3", "md_sor3", NULL, NULL, "1994",
- "Bare Knuckle III (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_bk3RomInfo, md_bk3RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Bare Knuckle III (Jpn, Prototype)
-static struct BurnRomInfo md_bk3pRomDesc[] = {
- { "bare knuckle iii (jpn) (beta).bin", 0x300000, 0xe7ff99db, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_bk3p)
-STD_ROM_FN(md_bk3p)
-
-struct BurnDriver BurnDrvmd_bk3p = {
- "md_bk3p", "md_sor3", NULL, NULL, "1994",
- "Bare Knuckle III (Jpn, Prototype)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_bk3pRomInfo, md_bk3pRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Strider (Euro, USA)
-static struct BurnRomInfo md_striderRomDesc[] = {
- { "mpr-13487.bin", 0x100000, 0xb9d099a4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_strider)
-STD_ROM_FN(md_strider)
-
-struct BurnDriver BurnDrvmd_strider = {
- "md_strider", NULL, NULL, NULL, "1990",
- "Strider (Euro, USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_striderRomInfo, md_striderRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Strider Hiryuu (Jpn, Kor)
-static struct BurnRomInfo md_striderjRomDesc[] = {
- { "strider hiryuu (jpn, kor).bin", 0x100000, 0x859173f2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_striderj)
-STD_ROM_FN(md_striderj)
-
-struct BurnDriver BurnDrvmd_striderj = {
- "md_striderj", "md_strider", NULL, NULL, "1990",
- "Strider Hiryuu (Jpn, Kor)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_striderjRomInfo, md_striderjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Strider II (Euro)
-static struct BurnRomInfo md_strider2RomDesc[] = {
- { "strider ii (euro).bin", 0x100000, 0xe85e5270, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_strider2)
-STD_ROM_FN(md_strider2)
-
-struct BurnDriver BurnDrvmd_strider2 = {
- "md_strider2", NULL, NULL, NULL, "1990",
- "Strider II (Euro)\0", NULL, "U.S. Gold", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_strider2RomInfo, md_strider2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Strider Returns - Journey from Darkness (USA)
-static struct BurnRomInfo md_strider2uRomDesc[] = {
- { "strider returns - journey from darkness (usa).bin", 0x100000, 0x42589b79, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_strider2u)
-STD_ROM_FN(md_strider2u)
-
-struct BurnDriver BurnDrvmd_strider2u = {
- "md_strider2u", "md_strider2", NULL, NULL, "1990",
- "Strider Returns - Journey from Darkness (USA)\0", NULL, "U.S. Gold", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_strider2uRomInfo, md_strider2uRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Striker (Euro)
-static struct BurnRomInfo md_strikerRomDesc[] = {
- { "striker (euro).bin", 0x200000, 0xcc5d7ab2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_striker)
-STD_ROM_FN(md_striker)
-
-struct BurnDriver BurnDrvmd_striker = {
- "md_striker", NULL, NULL, NULL, "1994",
- "Striker (Euro)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_strikerRomInfo, md_strikerRomName, NULL, NULL, MegadriveInputInfo, MegadrivePALDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Striker (Euro, Prototype)
-static struct BurnRomInfo md_strikerpRomDesc[] = {
- { "striker (euro) (beta).bin", 0x200000, 0xc10b270e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_strikerp)
-STD_ROM_FN(md_strikerp)
-
-struct BurnDriver BurnDrvmd_strikerp = {
- "md_strikerp", "md_striker", NULL, NULL, "1994",
- "Striker (Euro, Prototype)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_strikerpRomInfo, md_strikerpRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// SubTerrania (Euro)
-static struct BurnRomInfo md_subterrRomDesc[] = {
- { "mpr-16627.bin", 0x200000, 0xe8ced28d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_subterr)
-STD_ROM_FN(md_subterr)
-
-struct BurnDriver BurnDrvmd_subterr = {
- "md_subterr", NULL, NULL, NULL, "1994",
- "SubTerrania (Euro)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_subterrRomInfo, md_subterrRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// SubTerrania (Prototype)
-static struct BurnRomInfo md_subterrp1RomDesc[] = {
- { "subterrania (beta).bin", 0x200000, 0x3a1022d1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_subterrp1)
-STD_ROM_FN(md_subterrp1)
-
-struct BurnDriver BurnDrvmd_subterrp1 = {
- "md_subterrp1", "md_subterr", NULL, NULL, "1994",
- "SubTerrania (Prototype)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_subterrp1RomInfo, md_subterrp1RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// SubTerrania (Prototype, Earlier)
-static struct BurnRomInfo md_subterrp2RomDesc[] = {
- { "subterrania (beta) (earlier).bin", 0x140000, 0x9c13d25c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_subterrp2)
-STD_ROM_FN(md_subterrp2)
-
-struct BurnDriver BurnDrvmd_subterrp2 = {
- "md_subterrp2", "md_subterr", NULL, NULL, "1994",
- "SubTerrania (Prototype, Earlier)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_subterrp2RomInfo, md_subterrp2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// SubTerrania (Jpn)
-static struct BurnRomInfo md_subterrjRomDesc[] = {
- { "subterrania (jpn).bin", 0x200000, 0x7638ea91, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_subterrj)
-STD_ROM_FN(md_subterrj)
-
-struct BurnDriver BurnDrvmd_subterrj = {
- "md_subterrj", "md_subterr", NULL, NULL, "1994?",
- "SubTerrania (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_subterrjRomInfo, md_subterrjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// SubTerrania (Jpn, Prototype, 19940202)
-static struct BurnRomInfo md_subterrp3RomDesc[] = {
- { "subterrania (prototype - feb 02, 1994).bin", 0x200000, 0xb368e394, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_subterrp3)
-STD_ROM_FN(md_subterrp3)
-
-struct BurnDriver BurnDrvmd_subterrp3 = {
- "md_subterrp3", "md_subterr", NULL, NULL, "1994",
- "SubTerrania (Jpn, Prototype, 19940202)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_subterrp3RomInfo, md_subterrp3RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// SubTerrania (USA)
-static struct BurnRomInfo md_subterruRomDesc[] = {
- { "subterrania (usa).bin", 0x200000, 0xdc3c6c45, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_subterru)
-STD_ROM_FN(md_subterru)
-
-struct BurnDriver BurnDrvmd_subterru = {
- "md_subterru", "md_subterr", NULL, NULL, "1993",
- "SubTerrania (USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_subterruRomInfo, md_subterruRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Summer Challenge (Euro, USA)
-static struct BurnRomInfo md_summerRomDesc[] = {
- { "summer challenge (euro, usa).bin", 0x200000, 0xd7d53dc1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_summer)
-STD_ROM_FN(md_summer)
-
-struct BurnDriver BurnDrvmd_summer = {
- "md_summer", NULL, NULL, NULL, "1993",
- "Summer Challenge (Euro, USA)\0", NULL, "Accolade", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_summerRomInfo, md_summerRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Sunset Riders (Euro)
-static struct BurnRomInfo md_ssridersRomDesc[] = {
- { "mpr-15305.bin", 0x080000, 0x0ff33054, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ssriders)
-STD_ROM_FN(md_ssriders)
-
-struct BurnDriver BurnDrvmd_ssriders = {
- "md_ssriders", NULL, NULL, NULL, "1992",
- "Sunset Riders (Euro)\0", NULL, "Konami", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_ssridersRomInfo, md_ssridersRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Sunset Riders (USA)
-static struct BurnRomInfo md_ssridersuRomDesc[] = {
- { "sunset riders (usa).bin", 0x080000, 0xac30c297, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ssridersu)
-STD_ROM_FN(md_ssridersu)
-
-struct BurnDriver BurnDrvmd_ssridersu = {
- "md_ssridersu", "md_ssriders", NULL, NULL, "1992",
- "Sunset Riders (USA)\0", NULL, "Konami", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_ssridersuRomInfo, md_ssridersuRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Super Baseball 2020 (Euro, USA)
-static struct BurnRomInfo md_2020bbRomDesc[] = {
- { "super02.bin", 0x200000, 0xc17acee5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_2020bb)
-STD_ROM_FN(md_2020bb)
-
-struct BurnDriver BurnDrvmd_2020bb = {
- "md_2020bb", NULL, NULL, NULL, "1994",
- "Super Baseball 2020 (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_2020bbRomInfo, md_2020bbRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// 2020 Toshi Super Baseball (Jpn)
-static struct BurnRomInfo md_2020bbjRomDesc[] = {
- { "2020 toshi super baseball (jpn).bin", 0x200000, 0x2bbee127, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_2020bbj)
-STD_ROM_FN(md_2020bbj)
-
-struct BurnDriver BurnDrvmd_2020bbj = {
- "md_2020bbj", "md_2020bb", NULL, NULL, "1994",
- "2020 Toshi Super Baseball (Jpn)\0", NULL, "Electronic Arts Victor", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_2020bbjRomInfo, md_2020bbjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Super Battleship (USA)
-static struct BurnRomInfo md_sbshipRomDesc[] = {
- { "super battleship (usa).bin", 0x080000, 0x99ca1bfb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sbship)
-STD_ROM_FN(md_sbship)
-
-struct BurnDriver BurnDrvmd_sbship = {
- "md_sbship", NULL, NULL, NULL, "1993",
- "Super Battleship (USA)\0", NULL, "Mindscape", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_sbshipRomInfo, md_sbshipRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Garry Kitchen's Super Battletank - War in the Gulf (USA)
-static struct BurnRomInfo md_sbtankRomDesc[] = {
- { "super battletank - war in the gulf (usa).bin", 0x080000, 0xb0b5e3c9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sbtank)
-STD_ROM_FN(md_sbtank)
-
-struct BurnDriver BurnDrvmd_sbtank = {
- "md_sbtank", NULL, NULL, NULL, "1992",
- "Garry Kitchen's Super Battletank - War in the Gulf (USA)\0", NULL, "Absolute Entertainment", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_sbtankRomInfo, md_sbtankRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Super Daisenryaku (Jpn, Rev. 02)
-static struct BurnRomInfo md_supdaisnRomDesc[] = {
- { "mpr-12477a-h.ic1", 0x080000, 0x11645d6e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_supdaisn)
-STD_ROM_FN(md_supdaisn)
-
-struct BurnDriver BurnDrvmd_supdaisn = {
- "md_supdaisn", NULL, NULL, NULL, "1989",
- "Super Daisenryaku (Jpn, Rev. 02)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_supdaisnRomInfo, md_supdaisnRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Super Daisenryaku (Jpn)
-static struct BurnRomInfo md_supdaisnaRomDesc[] = {
- { "mpr-12477.ic1", 0x080000, 0xd50a166f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_supdaisna)
-STD_ROM_FN(md_supdaisna)
-
-struct BurnDriver BurnDrvmd_supdaisna = {
- "md_supdaisna", "md_supdaisn", NULL, NULL, "1989",
- "Super Daisenryaku (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_supdaisnaRomInfo, md_supdaisnaRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Super Fantasy Zone (Euro)
-static struct BurnRomInfo md_sfzoneRomDesc[] = {
- { "mpr-15124.bin", 0x100000, 0x927975be, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sfzone)
-STD_ROM_FN(md_sfzone)
-
-struct BurnDriver BurnDrvmd_sfzone = {
- "md_sfzone", NULL, NULL, NULL, "1993",
- "Super Fantasy Zone (Euro)\0", NULL, "Sunsoft", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_sfzoneRomInfo, md_sfzoneRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Super Fantasy Zone (Jpn)
-static struct BurnRomInfo md_sfzonejRomDesc[] = {
- { "super fantasy zone (jpn).bin", 0x100000, 0x767780d7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sfzonej)
-STD_ROM_FN(md_sfzonej)
-
-struct BurnDriver BurnDrvmd_sfzonej = {
- "md_sfzonej", "md_sfzone", NULL, NULL, "1992",
- "Super Fantasy Zone (Jpn)\0", NULL, "Sunsoft", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_sfzonejRomInfo, md_sfzonejRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Super Hang-On (World, Rev. A)
-static struct BurnRomInfo md_shangonRomDesc[] = {
- { "mpr-12640a.bin", 0x080000, 0x3877d107, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_shangon)
-STD_ROM_FN(md_shangon)
-
-struct BurnDriver BurnDrvmd_shangon = {
- "md_shangon", NULL, NULL, NULL, "1989",
- "Super Hang-On (World, Rev. A)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_shangonRomInfo, md_shangonRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Super Hang-On (World)
-static struct BurnRomInfo md_shangon1RomDesc[] = {
- { "mpr-12640.bin", 0x080000, 0xcb2201a3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_shangon1)
-STD_ROM_FN(md_shangon1)
-
-struct BurnDriver BurnDrvmd_shangon1 = {
- "md_shangon1", "md_shangon", NULL, NULL, "1989",
- "Super Hang-On (World)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_shangon1RomInfo, md_shangon1RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Super High Impact (USA)
-static struct BurnRomInfo md_shimpactRomDesc[] = {
- { "super high impact (usa).bin", 0x100000, 0xb870c2f7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_shimpact)
-STD_ROM_FN(md_shimpact)
-
-struct BurnDriver BurnDrvmd_shimpact = {
- "md_shimpact", NULL, NULL, NULL, "1992",
- "Super High Impact (USA)\0", NULL, "Arena", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_shimpactRomInfo, md_shimpactRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Super Hydlide (Euro)
-static struct BurnRomInfo md_suphydlRomDesc[] = {
- { "super hydlide (euro).bin", 0x080000, 0x1fe2d90b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_suphydl)
-STD_ROM_FN(md_suphydl)
-
-struct BurnDriver BurnDrvmd_suphydl = {
- "md_suphydl", NULL, NULL, NULL, "1991",
- "Super Hydlide (Euro)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_suphydlRomInfo, md_suphydlRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Super Hydlide (Jpn)
-static struct BurnRomInfo md_suphydljRomDesc[] = {
- { "mpr-12632.bin", 0x080000, 0x599be386, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_suphydlj)
-STD_ROM_FN(md_suphydlj)
-
-struct BurnDriver BurnDrvmd_suphydlj = {
- "md_suphydlj", "md_suphydl", NULL, NULL, "1989",
- "Super Hydlide (Jpn)\0", NULL, "Asmik Ace", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_suphydljRomInfo, md_suphydljRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Super Hydlide (USA)
-static struct BurnRomInfo md_suphydluRomDesc[] = {
- { "super hydlide (usa).bin", 0x080000, 0x1335ddaa, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_suphydlu)
-STD_ROM_FN(md_suphydlu)
-
-struct BurnDriver BurnDrvmd_suphydlu = {
- "md_suphydlu", "md_suphydl", NULL, NULL, "1989",
- "Super Hydlide (USA)\0", NULL, "Seismic", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_suphydluRomInfo, md_suphydluRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Super Kick Off (Euro)
-static struct BurnRomInfo md_skickoffRomDesc[] = {
- { "mpr-15420.bin", 0x080000, 0xf43793ff, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_skickoff)
-STD_ROM_FN(md_skickoff)
-
-struct BurnDriver BurnDrvmd_skickoff = {
- "md_skickoff", NULL, NULL, NULL, "1992",
- "Super Kick Off (Euro)\0", NULL, "U.S. Gold", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_skickoffRomInfo, md_skickoffRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Super League (Euro)
-static struct BurnRomInfo md_suprleagRomDesc[] = {
- { "super league (euro).bin", 0x080000, 0x55baec6e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_suprleag)
-STD_ROM_FN(md_suprleag)
-
-struct BurnDriver BurnDrvmd_suprleag = {
- "md_suprleag", NULL, NULL, NULL, "1990",
- "Super League (Euro)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_suprleagRomInfo, md_suprleagRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Super League (Jpn)
-static struct BurnRomInfo md_suprleagjRomDesc[] = {
- { "super league (jpn).bin", 0x080000, 0xea13cb1d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_suprleagj)
-STD_ROM_FN(md_suprleagj)
-
-struct BurnDriver BurnDrvmd_suprleagj = {
- "md_suprleagj", "md_suprleag", NULL, NULL, "1989",
- "Super League (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_suprleagjRomInfo, md_suprleagjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Tommy Lasorda Baseball (USA)
-static struct BurnRomInfo md_lasordaRomDesc[] = {
- { "mpr-12706.bin", 0x080000, 0x4fb50304, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_lasorda)
-STD_ROM_FN(md_lasorda)
-
-struct BurnDriver BurnDrvmd_lasorda = {
- "md_lasorda", "md_suprleag", NULL, NULL, "1989",
- "Tommy Lasorda Baseball (USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_lasordaRomInfo, md_lasordaRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Super Mario World ~ Super Mario Bros. (Pirate, Alt)
-static struct BurnRomInfo md_smbaRomDesc[] = {
- { "super mario world (unl).bin", 0x200000, 0xcf540ba6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_smba)
-STD_ROM_FN(md_smba)
-
-struct BurnDriver BurnDrvmd_smba = {
- "md_smba", "md_smb", NULL, NULL, "199?",
- "Super Mario World ~ Super Mario Bros. (Pirate, Alt)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_smbaRomInfo, md_smbaRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Super Mario World ~ Super Mario Bros. (Pirate, Alt 2)
-static struct BurnRomInfo md_smbbRomDesc[] = {
- { "super mario world (unl) (pirate).bin", 0x200000, 0x97c2695e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_smbb)
-STD_ROM_FN(md_smbb)
-
-struct BurnDriver BurnDrvmd_smbb = {
- "md_smbb", "md_smb", NULL, NULL, "199?",
- "Super Mario World ~ Super Mario Bros. (Pirate, Alt 2)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_smbbRomInfo, md_smbbRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Super Monaco GP (Euro, Jpn)
-static struct BurnRomInfo md_smgpaRomDesc[] = {
- { "super monaco gp (euro, jpn).bin", 0x080000, 0xb1823595, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_smgpa)
-STD_ROM_FN(md_smgpa)
-
-struct BurnDriver BurnDrvmd_smgpa = {
- "md_smgpa", "md_smgp", NULL, NULL, "1990",
- "Super Monaco GP (Euro, Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_smgpaRomInfo, md_smgpaRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Super Monaco GP (Jpn)
-static struct BurnRomInfo md_smgpjRomDesc[] = {
- { "mpr-13215.bin", 0x080000, 0x90f9bab3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_smgpj)
-STD_ROM_FN(md_smgpj)
-
-struct BurnDriver BurnDrvmd_smgpj = {
- "md_smgpj", "md_smgp", NULL, NULL, "1990",
- "Super Monaco GP (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_smgpjRomInfo, md_smgpjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Super Monaco GP (USA)
-static struct BurnRomInfo md_smgpuRomDesc[] = {
- { "super monaco gp (usa).bin", 0x080000, 0x725018ee, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_smgpu)
-STD_ROM_FN(md_smgpu)
-
-struct BurnDriver BurnDrvmd_smgpu = {
- "md_smgpu", "md_smgp", NULL, NULL, "1990",
- "Super Monaco GP (USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_smgpuRomInfo, md_smgpuRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Super Off Road (Euro, USA)
-static struct BurnRomInfo md_superoffRomDesc[] = {
- { "super off road (euro, usa).bin", 0x080000, 0x8f2fdada, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_superoff)
-STD_ROM_FN(md_superoff)
-
-struct BurnDriver BurnDrvmd_superoff = {
- "md_superoff", NULL, NULL, NULL, "1994",
- "Super Off Road (Euro, USA)\0", NULL, "Ballistic", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_superoffRomInfo, md_superoffRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Super Real Basketball (Euro)
-static struct BurnRomInfo md_srealbasRomDesc[] = {
- { "mpr-13432.bin", 0x080000, 0xf04765ba, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_srealbas)
-STD_ROM_FN(md_srealbas)
-
-struct BurnDriver BurnDrvmd_srealbas = {
- "md_srealbas", NULL, NULL, NULL, "1990",
- "Super Real Basketball (Euro)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_srealbasRomInfo, md_srealbasRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Super Real Basketball (Jpn, Kor)
-static struct BurnRomInfo md_srealbasjRomDesc[] = {
- { "mpr-12904.bin", 0x080000, 0x4346e11a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_srealbasj)
-STD_ROM_FN(md_srealbasj)
-
-struct BurnDriver BurnDrvmd_srealbasj = {
- "md_srealbasj", "md_srealbas", NULL, NULL, "1990",
- "Super Real Basketball (Jpn, Kor)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_srealbasjRomInfo, md_srealbasjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Pat Riley Basketball (USA)
-static struct BurnRomInfo md_patrileyRomDesc[] = {
- { "pat riley basketball (usa).bin", 0x080000, 0x3d9318a7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_patriley)
-STD_ROM_FN(md_patriley)
-
-struct BurnDriver BurnDrvmd_patriley = {
- "md_patriley", "md_srealbas", NULL, NULL, "1990",
- "Pat Riley Basketball (USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_patrileyRomInfo, md_patrileyRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Super Skidmarks (Euro, J-Cart)
-static struct BurnRomInfo md_sskidRomDesc[] = {
- { "super skidmarks (euro) (j-cart).bin", 0x200000, 0x4a9c62f9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sskid)
-STD_ROM_FN(md_sskid)
-
-struct BurnDriver BurnDrvmd_sskid = {
- "md_sskid", NULL, NULL, NULL, "1995",
- "Super Skidmarks (Euro, J-Cart)\0", NULL, "Codemasters", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_sskidRomInfo, md_sskidRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Super Skidmarks (USA, Prototype)
-static struct BurnRomInfo md_sskidpRomDesc[] = {
- { "super skidmarks (euro) (beta).bin", 0x200000, 0xa61a0f0c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sskidp)
-STD_ROM_FN(md_sskidp)
-
-struct BurnDriver BurnDrvmd_sskidp = {
- "md_sskidp", "md_sskid", NULL, NULL, "1995",
- "Super Skidmarks (USA, Prototype)\0", NULL, "Codemasters", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_sskidpRomInfo, md_sskidpRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Super Street Fighter II - The New Challengers (Euro)
-static struct BurnRomInfo md_ssf2RomDesc[] = {
- { "super street fighter ii - the new challengers (euro).bin", 0x500000, 0x682c192f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ssf2)
-STD_ROM_FN(md_ssf2)
-
-struct BurnDriver BurnDrvmd_ssf2 = {
- "md_ssf2", NULL, NULL, NULL, "1994",
- "Super Street Fighter II - The New Challengers (Euro)\0", NULL, "Capcom", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SSF2, GBF_MISC, 0,
- MegadriveGetZipName, md_ssf2RomInfo, md_ssf2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Super Street Fighter II - The New Challengers (Jpn)
-static struct BurnRomInfo md_ssf2jRomDesc[] = {
- { "super street fighter ii - the new challengers (jpn).bin", 0x500000, 0xd8eeb2bd, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ssf2j)
-STD_ROM_FN(md_ssf2j)
-
-struct BurnDriver BurnDrvmd_ssf2j = {
- "md_ssf2j", "md_ssf2", NULL, NULL, "1994",
- "Super Street Fighter II - The New Challengers (Jpn)\0", NULL, "Capcom", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SSF2, GBF_MISC, 0,
- MegadriveGetZipName, md_ssf2jRomInfo, md_ssf2jRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Super Street Fighter II - The New Challengers (USA)
-static struct BurnRomInfo md_ssf2uRomDesc[] = {
- { "super street fighter ii - the new challengers (usa).bin", 0x500000, 0x165defbf, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ssf2u)
-STD_ROM_FN(md_ssf2u)
-
-struct BurnDriver BurnDrvmd_ssf2u = {
- "md_ssf2u", "md_ssf2", NULL, NULL, "1994",
- "Super Street Fighter II - The New Challengers (USA)\0", NULL, "Capcom", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SSF2, GBF_MISC, 0,
- MegadriveGetZipName, md_ssf2uRomInfo, md_ssf2uRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Super Thunder Blade (Jpn, Launch Cart)
-static struct BurnRomInfo md_stbladjRomDesc[] = {
- { "mpr-11996.bin", 0x080000, 0x8bd77836, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_stbladj)
-STD_ROM_FN(md_stbladj)
-
-struct BurnDriver BurnDrvmd_stbladj = {
- "md_stbladj", "md_stblad", NULL, NULL, "1988",
- "Super Thunder Blade (Jpn, Launch Cart)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_stbladjRomInfo, md_stbladjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Super Volley Ball (USA)
-static struct BurnRomInfo md_svolleyRomDesc[] = {
- { "super volley ball (usa).bin", 0x040000, 0xa88fee44, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_svolley)
-STD_ROM_FN(md_svolley)
-
-struct BurnDriver BurnDrvmd_svolley = {
- "md_svolley", NULL, NULL, NULL, "1991",
- "Super Volley Ball (USA)\0", NULL, "Video System", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_svolleyRomInfo, md_svolleyRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Super Volley Ball (USA, Alt)
-static struct BurnRomInfo md_svolley1RomDesc[] = {
- { "super volley ball (usa) (alt).bin", 0x040000, 0x85102799, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_svolley1)
-STD_ROM_FN(md_svolley1)
-
-struct BurnDriver BurnDrvmd_svolley1 = {
- "md_svolley1", "md_svolley", NULL, NULL, "1991",
- "Super Volley Ball (USA, Alt)\0", NULL, "Video System", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_svolley1RomInfo, md_svolley1RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Super Volley Ball (Jpn)
-static struct BurnRomInfo md_svolleyjRomDesc[] = {
- { "super volley ball (jpn).bin", 0x040000, 0x9b5c28ea, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_svolleyj)
-STD_ROM_FN(md_svolleyj)
-
-struct BurnDriver BurnDrvmd_svolleyj = {
- "md_svolleyj", "md_svolley", NULL, NULL, "1991",
- "Super Volley Ball (Jpn)\0", NULL, "Video System", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_svolleyjRomInfo, md_svolleyjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Superman - The Man of Steel (Euro)
-static struct BurnRomInfo md_supermanRomDesc[] = {
- { "mpr-15327.bin", 0x100000, 0x7db434ba, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_superman)
-STD_ROM_FN(md_superman)
-
-struct BurnDriver BurnDrvmd_superman = {
- "md_superman", NULL, NULL, NULL, "1993",
- "Superman - The Man of Steel (Euro)\0", NULL, "Virgin Games", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_supermanRomInfo, md_supermanRomName, NULL, NULL, MegadriveInputInfo, MegadrivePALDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Superman (USA, Prototype)
-static struct BurnRomInfo md_supermanpRomDesc[] = {
- { "superman (usa) (beta).bin", 0x100000, 0x5cd0e1d4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_supermanp)
-STD_ROM_FN(md_supermanp)
-
-struct BurnDriver BurnDrvmd_supermanp = {
- "md_supermanp", "md_superman", NULL, NULL, "1992",
- "Superman (USA, Prototype)\0", NULL, "Sunsoft", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_supermanpRomInfo, md_supermanpRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Superman (USA)
-static struct BurnRomInfo md_supermanuRomDesc[] = {
- { "superman (usa).bin", 0x100000, 0x543a5869, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_supermanu)
-STD_ROM_FN(md_supermanu)
-
-struct BurnDriver BurnDrvmd_supermanu = {
- "md_supermanu", "md_superman", NULL, NULL, "1992",
- "Superman (USA)\0", NULL, "Sunsoft", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_supermanuRomInfo, md_supermanuRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Surging Aura (Jpn)
-static struct BurnRomInfo md_surgingRomDesc[] = {
- { "surging aura (jpn).bin", 0x200000, 0x65ac1d2b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_surging)
-STD_ROM_FN(md_surging)
-
-struct BurnDriver BurnDrvmd_surging = {
- "md_surging", NULL, NULL, NULL, "1995",
- "Surging Aura (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_surgingRomInfo, md_surgingRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Swamp Thing (USA, Prototype)
-static struct BurnRomInfo md_swampRomDesc[] = {
- { "swamp thing proto.bin", 0x400000, 0xe6ebe9d5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_swamp)
-STD_ROM_FN(md_swamp)
-
-struct BurnDriver BurnDrvmd_swamp = {
- "md_swamp", NULL, NULL, NULL, "1991",
- "Swamp Thing (USA, Prototype)\0", NULL, "NuVision", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_swampRomInfo, md_swampRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Sword of Sodan (Euro, USA)
-static struct BurnRomInfo md_swordsodRomDesc[] = {
- { "sword of sodan (euro, usa).bin", 0x080000, 0x9cb8468f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_swordsod)
-STD_ROM_FN(md_swordsod)
-
-struct BurnDriver BurnDrvmd_swordsod = {
- "md_swordsod", NULL, NULL, NULL, "1990",
- "Sword of Sodan (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_swordsodRomInfo, md_swordsodRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Sword of Sodan (Jpn)
-static struct BurnRomInfo md_swordsodjRomDesc[] = {
- { "sword of sodan (jpn).bin", 0x080000, 0x58edb3f3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_swordsodj)
-STD_ROM_FN(md_swordsodj)
-
-struct BurnDriver BurnDrvmd_swordsodj = {
- "md_swordsodj", "md_swordsod", NULL, NULL, "1990",
- "Sword of Sodan (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_swordsodjRomInfo, md_swordsodjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Syd of Valis (USA)
-static struct BurnRomInfo md_sydvalisRomDesc[] = {
- { "syd of valis (usa).bin", 0x080000, 0x37dc0108, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sydvalis)
-STD_ROM_FN(md_sydvalis)
-
-struct BurnDriver BurnDrvmd_sydvalis = {
- "md_sydvalis", NULL, NULL, NULL, "1992",
- "Syd of Valis (USA)\0", NULL, "Renovation", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_sydvalisRomInfo, md_sydvalisRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// SD Valis (Jpn)
-static struct BurnRomInfo md_sdvalisRomDesc[] = {
- { "sd valis (jpn).bin", 0x080000, 0x1aef72ea, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sdvalis)
-STD_ROM_FN(md_sdvalis)
-
-struct BurnDriver BurnDrvmd_sdvalis = {
- "md_sdvalis", "md_sydvalis", NULL, NULL, "1992",
- "SD Valis (Jpn)\0", NULL, "Laser Soft", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_sdvalisRomInfo, md_sdvalisRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Sword of Vermilion (Euro, USA)
-static struct BurnRomInfo md_vermilRomDesc[] = {
- { "mpr-13430+mpr-13431.bin", 0x0a0000, 0xea1bc9ab, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_vermil)
-STD_ROM_FN(md_vermil)
-
-struct BurnDriver BurnDrvmd_vermil = {
- "md_vermil", NULL, NULL, NULL, "1990",
- "Sword of Vermilion (Euro, USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_vermilRomInfo, md_vermilRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Vermilion (Jpn)
-static struct BurnRomInfo md_vermiljRomDesc[] = {
- { "vermilion (jpn).bin", 0x0a0000, 0xe400dfc3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_vermilj)
-STD_ROM_FN(md_vermilj)
-
-struct BurnDriver BurnDrvmd_vermilj = {
- "md_vermilj", "md_vermil", NULL, NULL, "1989",
- "Vermilion (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_vermiljRomInfo, md_vermiljRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Sylvester & Tweety in Cagey Capers (Euro)
-static struct BurnRomInfo md_sylvestrRomDesc[] = {
- { "sylvester & tweety in cagey capers (euro).bin", 0x200000, 0x89fc54ce, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sylvestr)
-STD_ROM_FN(md_sylvestr)
-
-struct BurnDriver BurnDrvmd_sylvestr = {
- "md_sylvestr", NULL, NULL, NULL, "1994",
- "Sylvester & Tweety in Cagey Capers (Euro)\0", NULL, "Time Warner Interactive", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_sylvestrRomInfo, md_sylvestrRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Sylvester and Tweety in Cagey Capers (USA)
-static struct BurnRomInfo md_sylvestruRomDesc[] = {
- { "sylvester and tweety in cagey capers (usa).bin", 0x200000, 0x9d9c786b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sylvestru)
-STD_ROM_FN(md_sylvestru)
-
-struct BurnDriver BurnDrvmd_sylvestru = {
- "md_sylvestru", "md_sylvestr", NULL, NULL, "1993",
- "Sylvester and Tweety in Cagey Capers (USA)\0", NULL, "Time Warner Interactive", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_sylvestruRomInfo, md_sylvestruRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Syndicate (Euro, USA)
-static struct BurnRomInfo md_syndicatRomDesc[] = {
- { "syndicate (euro, usa).bin", 0x200000, 0x95bbf87b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_syndicat)
-STD_ROM_FN(md_syndicat)
-
-struct BurnDriver BurnDrvmd_syndicat = {
- "md_syndicat", NULL, NULL, NULL, "1994",
- "Syndicate (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_syndicatRomInfo, md_syndicatRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// T2 - Terminator 2 - Judgment Day (Euro, USA)
-static struct BurnRomInfo md_term2RomDesc[] = {
- { "t2 - terminator 2 - judgment day (euro, usa).bin", 0x100000, 0x2f75e896, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_term2)
-STD_ROM_FN(md_term2)
-
-struct BurnDriver BurnDrvmd_term2 = {
- "md_term2", NULL, NULL, NULL, "1991",
- "T2 - Terminator 2 - Judgment Day (Euro, USA)\0", NULL, "Flying Edge", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_term2RomInfo, md_term2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// T2 - The Arcade Game (Euro, USA)
-static struct BurnRomInfo md_t2agRomDesc[] = {
- { "mpr-15238.bin", 0x100000, 0xa1264f17, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_t2ag)
-STD_ROM_FN(md_t2ag)
-
-struct BurnDriver BurnDrvmd_t2ag = {
- "md_t2ag", NULL, NULL, NULL, "1992",
- "T2 - The Arcade Game (Euro, USA)\0", NULL, "Acclaim Entertainment", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_t2agRomInfo, md_t2agRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// T2 - The Arcade Game (USA, Prototype)
-static struct BurnRomInfo md_t2agpRomDesc[] = {
- { "t2 - the arcade game (usa) (beta).bin", 0x100000, 0x94255703, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_t2agp)
-STD_ROM_FN(md_t2agp)
-
-struct BurnDriver BurnDrvmd_t2agp = {
- "md_t2agp", "md_t2ag", NULL, NULL, "1992",
- "T2 - The Arcade Game (USA, Prototype)\0", NULL, "Acclaim Entertainment", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_t2agpRomInfo, md_t2agpRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// T2 - The Arcade Game (Jpn)
-static struct BurnRomInfo md_t2agjRomDesc[] = {
- { "t2 - the arcade game (jpn).bin", 0x100000, 0x5e6fe52c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_t2agj)
-STD_ROM_FN(md_t2agj)
-
-struct BurnDriver BurnDrvmd_t2agj = {
- "md_t2agj", "md_t2ag", NULL, NULL, "1994",
- "T2 - The Arcade Game (Jpn)\0", NULL, "Acclaim Japan", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_t2agjRomInfo, md_t2agjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Taikou Risshiden (Jpn)
-static struct BurnRomInfo md_taikorisRomDesc[] = {
- { "taikou risshiden (jpn).bin", 0x140000, 0xf96fe15b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_taikoris)
-STD_ROM_FN(md_taikoris)
-
-struct BurnDriver BurnDrvmd_taikoris = {
- "md_taikoris", NULL, NULL, NULL, "1993",
- "Taikou Risshiden (Jpn)\0", NULL, "Koei", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_taikorisRomInfo, md_taikorisRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Taiwan Daheng (Chi)
-static struct BurnRomInfo md_taiwanRomDesc[] = {
- { "taiwan daheng (chi) (unl).bin", 0x100000, 0xbaf20f81, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_taiwan)
-STD_ROM_FN(md_taiwan)
-
-struct BurnDriver BurnDrvmd_taiwan = {
- "md_taiwan", NULL, NULL, NULL, "1994",
- "Taiwan Daheng (Chi)\0", NULL, "C&E", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_taiwanRomInfo, md_taiwanRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// TaleSpin (Euro, USA)
-static struct BurnRomInfo md_talespinRomDesc[] = {
- { "mpr-15058.bin", 0x080000, 0xf5c0c8d0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_talespin)
-STD_ROM_FN(md_talespin)
-
-struct BurnDriver BurnDrvmd_talespin = {
- "md_talespin", NULL, NULL, NULL, "1992",
- "TaleSpin (Euro, USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_talespinRomInfo, md_talespinRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Marvel Land (USA)
-static struct BurnRomInfo md_marvlandRomDesc[] = {
- { "marvel land (usa).bin", 0x100000, 0xcd7eeeb7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_marvland)
-STD_ROM_FN(md_marvland)
-
-struct BurnDriver BurnDrvmd_marvland = {
- "md_marvland", "md_talmit", NULL, NULL, "1991",
- "Marvel Land (USA)\0", NULL, "Namcot", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_marvlandRomInfo, md_marvlandRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Target Earth (USA)
-static struct BurnRomInfo md_trgearthRomDesc[] = {
- { "target earth (usa).bin", 0x080000, 0xcddf62d3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_trgearth)
-STD_ROM_FN(md_trgearth)
-
-struct BurnDriver BurnDrvmd_trgearth = {
- "md_trgearth", NULL, NULL, NULL, "1990",
- "Target Earth (USA)\0", NULL, "Dreamworks Games", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_trgearthRomInfo, md_trgearthRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Assault Suit Leynos (Jpn)
-static struct BurnRomInfo md_leynosRomDesc[] = {
- { "assault suit leynos (jpn).bin", 0x080000, 0x81a2c800, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_leynos)
-STD_ROM_FN(md_leynos)
-
-struct BurnDriver BurnDrvmd_leynos = {
- "md_leynos", "md_trgearth", NULL, NULL, "1990",
- "Assault Suit Leynos (Jpn)\0", NULL, "NCS", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_leynosRomInfo, md_leynosRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Task Force Harrier EX (USA)
-static struct BurnRomInfo md_taskfhexRomDesc[] = {
- { "task force harrier ex (usa).bin", 0x100000, 0xc8bb0257, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_taskfhex)
-STD_ROM_FN(md_taskfhex)
-
-struct BurnDriver BurnDrvmd_taskfhex = {
- "md_taskfhex", NULL, NULL, NULL, "1991",
- "Task Force Harrier EX (USA)\0", NULL, "Treco", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_taskfhexRomInfo, md_taskfhexRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Task Force Harrier EX (Jpn)
-static struct BurnRomInfo md_taskfhexjRomDesc[] = {
- { "task force harrier ex (jpn).bin", 0x100000, 0xe9a54eed, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_taskfhexj)
-STD_ROM_FN(md_taskfhexj)
-
-struct BurnDriver BurnDrvmd_taskfhexj = {
- "md_taskfhexj", "md_taskfhex", NULL, NULL, "1991",
- "Task Force Harrier EX (Jpn)\0", NULL, "Treco", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_taskfhexjRomInfo, md_taskfhexjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Truxton (Euro, USA) ~ Tatsujin (Jpn)
-static struct BurnRomInfo md_truxtonRomDesc[] = {
- { "truxton -- tatsujin (world).bin", 0x080000, 0x5bd0882d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_truxton)
-STD_ROM_FN(md_truxton)
-
-struct BurnDriver BurnDrvmd_truxton = {
- "md_truxton", NULL, NULL, NULL, "1989",
- "Truxton (Euro, USA) ~ Tatsujin (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_truxtonRomInfo, md_truxtonRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Taz-Mania (World)
-static struct BurnRomInfo md_tazmaniaRomDesc[] = {
- { "mpr-14838.bin", 0x080000, 0x0e901f45, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_tazmania)
-STD_ROM_FN(md_tazmania)
-
-struct BurnDriver BurnDrvmd_tazmania = {
- "md_tazmania", NULL, NULL, NULL, "1992",
- "Taz-Mania (World)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_tazmaniaRomInfo, md_tazmaniaRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// USA Basketball World Challenge (Euro, USA)
-static struct BurnRomInfo md_teamusaRomDesc[] = {
- { "team usa basketball (euro, usa).bin", 0x100000, 0xa0caf97e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_teamusa)
-STD_ROM_FN(md_teamusa)
-
-struct BurnDriver BurnDrvmd_teamusa = {
- "md_teamusa", NULL, NULL, NULL, "1992",
- "USA Basketball World Challenge (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_teamusaRomInfo, md_teamusaRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// USA Basketball World Challenge (Jpn)
-static struct BurnRomInfo md_dreamteamRomDesc[] = {
- { "dream team usa (jpn).bin", 0x100000, 0xe2e21b72, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_dreamteam)
-STD_ROM_FN(md_dreamteam)
-
-struct BurnDriver BurnDrvmd_dreamteam = {
- "md_dreamteam", "md_teamusa", NULL, NULL, "1992",
- "USA Basketball World Challenge (Jpn)\0", NULL, "Electronic Arts Victor", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_dreamteamRomInfo, md_dreamteamRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Techno Clash (Euro, USA)
-static struct BurnRomInfo md_technoclRomDesc[] = {
- { "techno clash (euro, usa).bin", 0x100000, 0x4e65e483, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_technocl)
-STD_ROM_FN(md_technocl)
-
-struct BurnDriver BurnDrvmd_technocl = {
- "md_technocl", NULL, NULL, NULL, "1993",
- "Techno Clash (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_technoclRomInfo, md_technoclRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Technocop (USA)
-static struct BurnRomInfo md_tecnocopRomDesc[] = {
- { "technocop (usa).bin", 0x080000, 0x7459ad06, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_tecnocop)
-STD_ROM_FN(md_tecnocop)
-
-struct BurnDriver BurnDrvmd_tecnocop = {
- "md_tecnocop", NULL, NULL, NULL, "1990",
- "Technocop (USA)\0", NULL, "Razorsoft", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_tecnocopRomInfo, md_tecnocopRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Boy Soccer Team III (Jpn, Pirate)
-static struct BurnRomInfo md_bsteam3RomDesc[] = {
- { "tecmo cup (jpn) (pirate).bin", 0x080000, 0xe889e218, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_bsteam3)
-STD_ROM_FN(md_bsteam3)
-
-struct BurnDriver BurnDrvmd_bsteam3 = {
- "md_bsteam3", "md_tecmocup", NULL, NULL, "199?",
- "Boy Soccer Team III (Jpn, Pirate)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_bsteam3RomInfo, md_bsteam3RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Tecmo Cup (Jpn, Prototype?)
-static struct BurnRomInfo md_tecmocupRomDesc[] = {
- { "tecmo cup (jpn) (prototype?) (bad dump).bin", 0x080000, 0x88fdd060, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_tecmocup)
-STD_ROM_FN(md_tecmocup)
-
-struct BurnDriver BurnDrvmd_tecmocup = {
- "md_tecmocup", NULL, NULL, NULL, "199?",
- "Tecmo Cup (Jpn, Prototype?)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_tecmocupRomInfo, md_tecmocupRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Tecmo Super Baseball (USA)
-static struct BurnRomInfo md_tecmobbRomDesc[] = {
- { "tecmo super baseball (usa).bin", 0x100000, 0x227a1178, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_tecmobb)
-STD_ROM_FN(md_tecmobb)
-
-struct BurnDriver BurnDrvmd_tecmobb = {
- "md_tecmobb", NULL, NULL, NULL, "1994",
- "Tecmo Super Baseball (USA)\0", NULL, "Tecmo", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_tecmobbRomInfo, md_tecmobbRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Tecmo Super Bowl (USA, 199310)
-static struct BurnRomInfo md_tecmosbwRomDesc[] = {
- { "tecmo super bowl (usa) (october 1993).bin", 0x100000, 0x21f27d34, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_tecmosbw)
-STD_ROM_FN(md_tecmosbw)
-
-struct BurnDriver BurnDrvmd_tecmosbw = {
- "md_tecmosbw", NULL, NULL, NULL, "1993",
- "Tecmo Super Bowl (USA, 199310)\0", NULL, "Tecmo", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_tecmosbwRomInfo, md_tecmosbwRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Tecmo Super Bowl (USA, 199309)
-static struct BurnRomInfo md_tecmosbwaRomDesc[] = {
- { "tecmo super bowl (usa) (september 1993).bin", 0x100000, 0xbd5933ee, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_tecmosbwa)
-STD_ROM_FN(md_tecmosbwa)
-
-struct BurnDriver BurnDrvmd_tecmosbwa = {
- "md_tecmosbwa", "md_tecmosbw", NULL, NULL, "1993",
- "Tecmo Super Bowl (USA, 199309)\0", NULL, "Tecmo", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_tecmosbwaRomInfo, md_tecmosbwaRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Tecmo Super Bowl (Jpn)
-static struct BurnRomInfo md_tecmosbwjRomDesc[] = {
- { "tecmo super bowl (jpn).bin", 0x100000, 0x90c6e20c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_tecmosbwj)
-STD_ROM_FN(md_tecmosbwj)
-
-struct BurnDriver BurnDrvmd_tecmosbwj = {
- "md_tecmosbwj", "md_tecmosbw", NULL, NULL, "1993",
- "Tecmo Super Bowl (Jpn)\0", NULL, "Tecmo", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_tecmosbwjRomInfo, md_tecmosbwjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Tecmo Super Bowl II (USA)
-static struct BurnRomInfo md_tecmosb2RomDesc[] = {
- { "tecmo super bowl ii - special edition (usa).bin", 0x200000, 0x0a0e67d8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_tecmosb2)
-STD_ROM_FN(md_tecmosb2)
-
-struct BurnDriver BurnDrvmd_tecmosb2 = {
- "md_tecmosb2", NULL, NULL, NULL, "1994",
- "Tecmo Super Bowl II (USA)\0", NULL, "Tecmo", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_tecmosb2RomInfo, md_tecmosb2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Tecmo Super Bowl II - Special Edition (Jpn)
-static struct BurnRomInfo md_tecmosb2jRomDesc[] = {
- { "tecmo super bowl ii - special edition (jpn).bin", 0x200000, 0x32fb633d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_tecmosb2j)
-STD_ROM_FN(md_tecmosb2j)
-
-struct BurnDriver BurnDrvmd_tecmosb2j = {
- "md_tecmosb2j", "md_tecmosb2", NULL, NULL, "1994",
- "Tecmo Super Bowl II - Special Edition (Jpn)\0", NULL, "Tecmo", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_tecmosb2jRomInfo, md_tecmosb2jRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Tecmo Super Bowl III - Final Edition (USA)
-static struct BurnRomInfo md_tecmosb3RomDesc[] = {
- { "tecmo super bowl iii - final edition (usa).bin", 0x200000, 0xaae4089f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_tecmosb3)
-STD_ROM_FN(md_tecmosb3)
-
-struct BurnDriver BurnDrvmd_tecmosb3 = {
- "md_tecmosb3", NULL, NULL, NULL, "1995",
- "Tecmo Super Bowl III - Final Edition (USA)\0", NULL, "Tecmo", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_tecmosb3RomInfo, md_tecmosb3RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Tecmo Super Hockey (USA)
-static struct BurnRomInfo md_tecmohckRomDesc[] = {
- { "tecmo super hockey (usa).bin", 0x100000, 0x5f86ddc9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_tecmohck)
-STD_ROM_FN(md_tecmohck)
-
-struct BurnDriver BurnDrvmd_tecmohck = {
- "md_tecmohck", NULL, NULL, NULL, "1994",
- "Tecmo Super Hockey (USA)\0", NULL, "Tecmo", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_tecmohckRomInfo, md_tecmohckRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Tecmo Super NBA Basketball (USA)
-static struct BurnRomInfo md_tecmonbaRomDesc[] = {
- { "tecmo super nba basketball (usa).bin", 0x100000, 0x53913991, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_tecmonba)
-STD_ROM_FN(md_tecmonba)
-
-struct BurnDriver BurnDrvmd_tecmonba = {
- "md_tecmonba", NULL, NULL, NULL, "1993",
- "Tecmo Super NBA Basketball (USA)\0", NULL, "Tecmo", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_tecmonbaRomInfo, md_tecmonbaRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Tecmo Super NBA Basketball (Jpn)
-static struct BurnRomInfo md_tecmonbajRomDesc[] = {
- { "tecmo super nba basketball (jpn).bin", 0x100000, 0x79f33eb6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_tecmonbaj)
-STD_ROM_FN(md_tecmonbaj)
-
-struct BurnDriver BurnDrvmd_tecmonbaj = {
- "md_tecmonbaj", "md_tecmonba", NULL, NULL, "1994",
- "Tecmo Super NBA Basketball (Jpn)\0", NULL, "Tecmo", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_tecmonbajRomInfo, md_tecmonbajRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Tecmo World Cup '92 (Jpn)
-static struct BurnRomInfo md_tecmow92RomDesc[] = {
- { "tecmo world cup '92 (jpn).bin", 0x040000, 0x5e93c8b0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_tecmow92)
-STD_ROM_FN(md_tecmow92)
-
-struct BurnDriver BurnDrvmd_tecmow92 = {
- "md_tecmow92", NULL, NULL, NULL, "1992",
- "Tecmo World Cup '92 (Jpn)\0", NULL, "Sims", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_tecmow92RomInfo, md_tecmow92RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Tecmo World Cup (USA)
-static struct BurnRomInfo md_tecmowcRomDesc[] = {
- { "tecmo world cup (usa).bin", 0x040000, 0xcaf8eb2c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_tecmowc)
-STD_ROM_FN(md_tecmowc)
-
-struct BurnDriver BurnDrvmd_tecmowc = {
- "md_tecmowc", NULL, NULL, NULL, "1990",
- "Tecmo World Cup (USA)\0", NULL, "Tecmo", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_tecmowcRomInfo, md_tecmowcRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Teddy Boy Blues (Jpn, SegaNet)
-static struct BurnRomInfo md_teddyboyRomDesc[] = {
- { "teddy boy blues (jpn) (sn).bin", 0x040000, 0x733d2eb3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_teddyboy)
-STD_ROM_FN(md_teddyboy)
-
-struct BurnDriver BurnDrvmd_teddyboy = {
- "md_teddyboy", NULL, NULL, NULL, "1991",
- "Teddy Boy Blues (Jpn, SegaNet)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_teddyboyRomInfo, md_teddyboyRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Teenage Mutant Hero Turtles - The Hyperstone Heist (Euro)
-static struct BurnRomInfo md_tmhthhRomDesc[] = {
- { "teenage mutant hero turtles - the hyperstone heist (euro).bin", 0x100000, 0x966d5286, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_tmhthh)
-STD_ROM_FN(md_tmhthh)
-
-struct BurnDriver BurnDrvmd_tmhthh = {
- "md_tmhthh", NULL, NULL, NULL, "1992",
- "Teenage Mutant Hero Turtles - The Hyperstone Heist (Euro)\0", NULL, "Konami", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_tmhthhRomInfo, md_tmhthhRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Teenage Mutant Ninja Turtles - Return of the Shredder (Jpn)
-static struct BurnRomInfo md_tmntshjRomDesc[] = {
- { "teenage mutant ninja turtles - return of the shredder (jpn).bin", 0x100000, 0x1b003498, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_tmntshj)
-STD_ROM_FN(md_tmntshj)
-
-struct BurnDriver BurnDrvmd_tmntshj = {
- "md_tmntshj", "md_tmhthh", NULL, NULL, "1992",
- "Teenage Mutant Ninja Turtles - Return of the Shredder (Jpn)\0", NULL, "Konami", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_tmntshjRomInfo, md_tmntshjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Teenage Mutant Ninja Turtles - The Hyperstone Heist (USA)
-static struct BurnRomInfo md_tmnthhRomDesc[] = {
- { "teenage mutant ninja turtles - the hyperstone heist (usa).bin", 0x100000, 0x679c41de, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_tmnthh)
-STD_ROM_FN(md_tmnthh)
-
-struct BurnDriver BurnDrvmd_tmnthh = {
- "md_tmnthh", "md_tmhthh", NULL, NULL, "1992",
- "Teenage Mutant Ninja Turtles - The Hyperstone Heist (USA)\0", NULL, "Konami", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_tmnthhRomInfo, md_tmnthhRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Teenage Mutant Hero Turtles - Tournament Fighters (Euro)
-static struct BurnRomInfo md_tmhttfRomDesc[] = {
- { "teenage mutant hero turtles - tournament fighters (euro).bin", 0x200000, 0x3cd2b7e6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_tmhttf)
-STD_ROM_FN(md_tmhttf)
-
-struct BurnDriver BurnDrvmd_tmhttf = {
- "md_tmhttf", NULL, NULL, NULL, "1993",
- "Teenage Mutant Hero Turtles - Tournament Fighters (Euro)\0", NULL, "Konami", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_tmhttfRomInfo, md_tmhttfRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Teenage Mutant Ninja Turtles - Tournament Fighters (Jpn)
-static struct BurnRomInfo md_tmnttfjRomDesc[] = {
- { "teenage mutant ninja turtles - tournament fighters (jpn).bin", 0x200000, 0x8843f2c9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_tmnttfj)
-STD_ROM_FN(md_tmnttfj)
-
-struct BurnDriver BurnDrvmd_tmnttfj = {
- "md_tmnttfj", "md_tmhttf", NULL, NULL, "1993",
- "Teenage Mutant Ninja Turtles - Tournament Fighters (Jpn)\0", NULL, "Konami", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_tmnttfjRomInfo, md_tmnttfjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Teenage Mutant Ninja Turtles - Tournament Fighters (USA)
-static struct BurnRomInfo md_tmnttfuRomDesc[] = {
- { "teenage mutant ninja turtles - tournament fighters (usa).bin", 0x200000, 0x95b5484d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_tmnttfu)
-STD_ROM_FN(md_tmnttfu)
-
-struct BurnDriver BurnDrvmd_tmnttfu = {
- "md_tmnttfu", "md_tmhttf", NULL, NULL, "1993",
- "Teenage Mutant Ninja Turtles - Tournament Fighters (USA)\0", NULL, "Konami", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_tmnttfuRomInfo, md_tmnttfuRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Tekken 3 Special
-static struct BurnRomInfo md_tekkn3spRomDesc[] = {
- { "tekken 3 special (unl).bin", 0x200000, 0x7fcae658, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_tekkn3sp)
-STD_ROM_FN(md_tekkn3sp)
-
-struct BurnDriver BurnDrvmd_tekkn3sp = {
- "md_tekkn3sp", NULL, NULL, NULL, "199?",
- "Tekken 3 Special\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_tekkn3spRomInfo, md_tekkn3spRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Tel-Tel Mahjong (Jpn)
-static struct BurnRomInfo md_telmahRomDesc[] = {
- { "tel-tel mahjong (jpn).bin", 0x040000, 0x44817e92, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_telmah)
-STD_ROM_FN(md_telmah)
-
-struct BurnDriver BurnDrvmd_telmah = {
- "md_telmah", NULL, NULL, NULL, "1990",
- "Tel-Tel Mahjong (Jpn)\0", NULL, "Sunsoft", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_telmahRomInfo, md_telmahRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Tel-Tel Stadium (Jpn)
-static struct BurnRomInfo md_telstadRomDesc[] = {
- { "md-tsd.bin", 0x080000, 0x54cf8c29, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_telstad)
-STD_ROM_FN(md_telstad)
-
-struct BurnDriver BurnDrvmd_telstad = {
- "md_telstad", NULL, NULL, NULL, "1990",
- "Tel-Tel Stadium (Jpn)\0", NULL, "Sunsoft", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_telstadRomInfo, md_telstadRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Telebradesco Residencia (Bra)
-static struct BurnRomInfo md_telebradRomDesc[] = {
- { "telebradesco residencia (bra).bin", 0x040000, 0x1db99045, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_telebrad)
-STD_ROM_FN(md_telebrad)
-
-struct BurnDriver BurnDrvmd_telebrad = {
- "md_telebrad", NULL, NULL, NULL, "199?",
- "Telebradesco Residencia (Bra)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_telebradRomInfo, md_telebradRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Terminator (Euro)
-static struct BurnRomInfo md_termintrRomDesc[] = {
- { "mpr-14925.bin", 0x100000, 0x15f4d302, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_termintr)
-STD_ROM_FN(md_termintr)
-
-struct BurnDriver BurnDrvmd_termintr = {
- "md_termintr", NULL, NULL, NULL, "1991",
- "The Terminator (Euro)\0", NULL, "Virgin Games", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_termintrRomInfo, md_termintrRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Terminator (USA)
-static struct BurnRomInfo md_termintruRomDesc[] = {
- { "terminator, the (usa).bin", 0x100000, 0x31a629be, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_termintru)
-STD_ROM_FN(md_termintru)
-
-struct BurnDriver BurnDrvmd_termintru = {
- "md_termintru", "md_termintr", NULL, NULL, "1991",
- "The Terminator (USA)\0", NULL, "Virgin Games", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_termintruRomInfo, md_termintruRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Test Drive II - The Duel (Euro, USA)
-static struct BurnRomInfo md_td2RomDesc[] = {
- { "test drive ii - the duel (euro, usa).bin", 0x100000, 0xf9bdf8c5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_td2)
-STD_ROM_FN(md_td2)
-
-struct BurnDriver BurnDrvmd_td2 = {
- "md_td2", NULL, NULL, NULL, "1992",
- "Test Drive II - The Duel (Euro, USA)\0", NULL, "Ballistic", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_td2RomInfo, md_td2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Tetris (Jpn)
-static struct BurnRomInfo md_tetrisRomDesc[] = {
- { "mpr-12356+mpr-12357.bin", 0x040000, 0x4ce90db0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_tetris)
-STD_ROM_FN(md_tetris)
-
-struct BurnDriver BurnDrvmd_tetris = {
- "md_tetris", NULL, NULL, NULL, "1989",
- "Tetris (Jpn)\0", NULL, "Tetris", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_tetrisRomInfo, md_tetrisRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Theme Park (Euro, USA)
-static struct BurnRomInfo md_themeprkRomDesc[] = {
- { "tpb10.bin", 0x200000, 0x289da2c5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_themeprk)
-STD_ROM_FN(md_themeprk)
-
-struct BurnDriver BurnDrvmd_themeprk = {
- "md_themeprk", NULL, NULL, NULL, "1995",
- "Theme Park (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_themeprkRomInfo, md_themeprkRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The New Zealand Story (Jpn)
-static struct BurnRomInfo md_tnzsRomDesc[] = {
- { "new zealand story, the (jpn).bin", 0x080000, 0x1c77ad21, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_tnzs)
-STD_ROM_FN(md_tnzs)
-
-struct BurnDriver BurnDrvmd_tnzs = {
- "md_tnzs", NULL, NULL, NULL, "1990",
- "The New Zealand Story (Jpn)\0", NULL, "Taito", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_tnzsRomInfo, md_tnzsRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Thomas the Tank Engine & Friends (USA)
-static struct BurnRomInfo md_thomasRomDesc[] = {
- { "thomas the tank engine & friends (usa).bin", 0x100000, 0x1a406299, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_thomas)
-STD_ROM_FN(md_thomas)
-
-struct BurnDriver BurnDrvmd_thomas = {
- "md_thomas", NULL, NULL, NULL, "1993",
- "Thomas the Tank Engine & Friends (USA)\0", NULL, "THQ", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_thomasRomInfo, md_thomasRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Thunder Force II MD (Jpn)
-static struct BurnRomInfo md_tf2jRomDesc[] = {
- { "thunder force ii md (jpn).bin", 0x080000, 0xe75ec3e0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_tf2j)
-STD_ROM_FN(md_tf2j)
-
-struct BurnDriver BurnDrvmd_tf2j = {
- "md_tf2j", "md_tf2", NULL, NULL, "1989",
- "Thunder Force II MD (Jpn)\0", NULL, "Technosoft", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_tf2jRomInfo, md_tf2jRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Thunder Force III (Jpn, USA)
-static struct BurnRomInfo md_tf3RomDesc[] = {
- { "thunder force iii (usa, jpn).bin", 0x080000, 0x1b3f399a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_tf3)
-STD_ROM_FN(md_tf3)
-
-struct BurnDriver BurnDrvmd_tf3 = {
- "md_tf3", NULL, NULL, NULL, "1990",
- "Thunder Force III (Jpn, USA)\0", NULL, "Technosoft", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_tf3RomInfo, md_tf3RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Thunder Force IV (Euro)
-static struct BurnRomInfo md_tf4RomDesc[] = {
- { "mpr-15209.bin", 0x100000, 0xe7e3c05b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_tf4)
-STD_ROM_FN(md_tf4)
-
-struct BurnDriver BurnDrvmd_tf4 = {
- "md_tf4", NULL, NULL, NULL, "1993",
- "Thunder Force IV (Euro)\0", NULL, "Technosoft", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_tf4RomInfo, md_tf4RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Thunder Force IV (Jpn)
-static struct BurnRomInfo md_tf4jRomDesc[] = {
- { "thunder force iv (jpn).bin", 0x100000, 0x8d606480, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_tf4j)
-STD_ROM_FN(md_tf4j)
-
-struct BurnDriver BurnDrvmd_tf4j = {
- "md_tf4j", "md_tf4", NULL, NULL, "1992",
- "Thunder Force IV (Jpn)\0", NULL, "Technosoft", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_tf4jRomInfo, md_tf4jRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Lightening Force - Quest for the Darkstar (USA)
-static struct BurnRomInfo md_lightforRomDesc[] = {
- { "lightening force - quest for the darkstar (usa).bin", 0x100000, 0xc8f8c0e0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_lightfor)
-STD_ROM_FN(md_lightfor)
-
-struct BurnDriver BurnDrvmd_lightfor = {
- "md_lightfor", "md_tf4", NULL, NULL, "1992",
- "Lightening Force - Quest for the Darkstar (USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_lightforRomInfo, md_lightforRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Thunder Fox (USA)
-static struct BurnRomInfo md_tfoxRomDesc[] = {
- { "thunder fox (usa).bin", 0x100000, 0x5463f50f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_tfox)
-STD_ROM_FN(md_tfox)
-
-struct BurnDriver BurnDrvmd_tfox = {
- "md_tfox", NULL, NULL, NULL, "1991",
- "Thunder Fox (USA)\0", NULL, "Taito", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_tfoxRomInfo, md_tfoxRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Thunder Fox (Jpn)
-static struct BurnRomInfo md_tfoxjRomDesc[] = {
- { "thunder fox (jpn).bin", 0x100000, 0xeca6cffa, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_tfoxj)
-STD_ROM_FN(md_tfoxj)
-
-struct BurnDriver BurnDrvmd_tfoxj = {
- "md_tfoxj", "md_tfox", NULL, NULL, "1991",
- "Thunder Fox (Jpn)\0", NULL, "Taito", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_tfoxjRomInfo, md_tfoxjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Thunder Pro Wrestling Retsuden (Jpn)
-static struct BurnRomInfo md_tpwresRomDesc[] = {
- { "mpr-14675.bin", 0x080000, 0x24408c73, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_tpwres)
-STD_ROM_FN(md_tpwres)
-
-struct BurnDriver BurnDrvmd_tpwres = {
- "md_tpwres", NULL, NULL, NULL, "1992",
- "Thunder Pro Wrestling Retsuden (Jpn)\0", NULL, "Human", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_tpwresRomInfo, md_tpwresRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Tick (USA)
-static struct BurnRomInfo md_tickRomDesc[] = {
- { "tick, the (usa).bin", 0x200000, 0x425132f0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_tick)
-STD_ROM_FN(md_tick)
-
-struct BurnDriver BurnDrvmd_tick = {
- "md_tick", NULL, NULL, NULL, "1994",
- "The Tick (USA)\0", NULL, "Fox Interactive", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_tickRomInfo, md_tickRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Time Killers (Euro)
-static struct BurnRomInfo md_timekillRomDesc[] = {
- { "time killers (euro).bin", 0x200000, 0xa4f48a1a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_timekill)
-STD_ROM_FN(md_timekill)
-
-struct BurnDriver BurnDrvmd_timekill = {
- "md_timekill", NULL, NULL, NULL, "1996",
- "Time Killers (Euro)\0", NULL, "Black Pearl", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_timekillRomInfo, md_timekillRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Time Killers (USA)
-static struct BurnRomInfo md_timekilluRomDesc[] = {
- { "time killers (usa).bin", 0x200000, 0x4b5f52ac, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_timekillu)
-STD_ROM_FN(md_timekillu)
-
-struct BurnDriver BurnDrvmd_timekillu = {
- "md_timekillu", "md_timekill", NULL, NULL, "1996",
- "Time Killers (USA)\0", NULL, "Black Pearl", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_timekilluRomInfo, md_timekilluRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// TinHead (USA)
-static struct BurnRomInfo md_tinheadRomDesc[] = {
- { "tinhead (usa).bin", 0x100000, 0xd6724b84, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_tinhead)
-STD_ROM_FN(md_tinhead)
-
-struct BurnDriver BurnDrvmd_tinhead = {
- "md_tinhead", NULL, NULL, NULL, "1993",
- "TinHead (USA)\0", NULL, "Ballistic", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_tinheadRomInfo, md_tinheadRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Tintin au Tibet (Euro)
-static struct BurnRomInfo md_tintinRomDesc[] = {
- { "tintin au tibet (euro).bin", 0x200000, 0x4243caf3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_tintin)
-STD_ROM_FN(md_tintin)
-
-struct BurnDriver BurnDrvmd_tintin = {
- "md_tintin", NULL, NULL, NULL, "1995",
- "Tintin au Tibet (Euro)\0", NULL, "Infogrames", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_tintinRomInfo, md_tintinRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Tiny Toon Adventures - Acme All-Stars (Euro)
-static struct BurnRomInfo md_ttacmeRomDesc[] = {
- { "mpr-17066.bin", 0x100000, 0x1227b2b2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ttacme)
-STD_ROM_FN(md_ttacme)
-
-struct BurnDriver BurnDrvmd_ttacme = {
- "md_ttacme", NULL, NULL, NULL, "1994",
- "Tiny Toon Adventures - Acme All-Stars (Euro)\0", NULL, "Konami", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_ttacmeRomInfo, md_ttacmeRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Tiny Toon Adventures - Acme All-Stars (USA, Kor)
-static struct BurnRomInfo md_ttacmeuRomDesc[] = {
- { "tiny toon adventures - acme all-stars (usa, kor).bin", 0x100000, 0x2f9faa1d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ttacmeu)
-STD_ROM_FN(md_ttacmeu)
-
-struct BurnDriver BurnDrvmd_ttacmeu = {
- "md_ttacmeu", "md_ttacme", NULL, NULL, "1994",
- "Tiny Toon Adventures - Acme All-Stars (USA, Kor)\0", NULL, "Konami", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_ttacmeuRomInfo, md_ttacmeuRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Tiny Toon Adventures - Buster's Hidden Treasure (Euro)
-static struct BurnRomInfo md_ttoonbhtRomDesc[] = {
- { "mpr-15406.bin", 0x080000, 0xd10fba51, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ttoonbht)
-STD_ROM_FN(md_ttoonbht)
-
-struct BurnDriver BurnDrvmd_ttoonbht = {
- "md_ttoonbht", NULL, NULL, NULL, "1993",
- "Tiny Toon Adventures - Buster's Hidden Treasure (Euro)\0", NULL, "Konami", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_ttoonbhtRomInfo, md_ttoonbhtRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Tiny Toon Adventures (Kor)
-static struct BurnRomInfo md_ttoonbhtkRomDesc[] = {
- { "tiny toon adventures (kor).bin", 0x080000, 0x4ca3a8fb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ttoonbhtk)
-STD_ROM_FN(md_ttoonbhtk)
-
-struct BurnDriver BurnDrvmd_ttoonbhtk = {
- "md_ttoonbhtk", "md_ttoonbht", NULL, NULL, "1993",
- "Tiny Toon Adventures (Kor)\0", NULL, "Konami", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_ttoonbhtkRomInfo, md_ttoonbhtkRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Tiny Toon Adventures - Buster's Hidden Treasure (USA)
-static struct BurnRomInfo md_ttoonbhtuRomDesc[] = {
- { "tiny toon adventures - buster's hidden treasure (usa).bin", 0x080000, 0xa26d3ae0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ttoonbhtu)
-STD_ROM_FN(md_ttoonbhtu)
-
-struct BurnDriver BurnDrvmd_ttoonbhtu = {
- "md_ttoonbhtu", "md_ttoonbht", NULL, NULL, "1993",
- "Tiny Toon Adventures - Buster's Hidden Treasure (USA)\0", NULL, "Konami", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_ttoonbhtuRomInfo, md_ttoonbhtuRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// TNN Bass Tournament of Champions (USA)
-static struct BurnRomInfo md_tnnbassRomDesc[] = {
- { "tnn bass tournament of champions (usa).bin", 0x100000, 0xc83ffa1b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_tnnbass)
-STD_ROM_FN(md_tnnbass)
-
-struct BurnDriver BurnDrvmd_tnnbass = {
- "md_tnnbass", NULL, NULL, NULL, "1993",
- "TNN Bass Tournament of Champions (USA)\0", NULL, "American Softworks", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_tnnbassRomInfo, md_tnnbassRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// TNN Outdoors Bass Tournament '96 (USA)
-static struct BurnRomInfo md_tnnoutRomDesc[] = {
- { "tnn outdoors bass tournament '96 (usa).bin", 0x200000, 0x5c523c0b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_tnnout)
-STD_ROM_FN(md_tnnout)
-
-struct BurnDriver BurnDrvmd_tnnout = {
- "md_tnnout", NULL, NULL, NULL, "1996",
- "TNN Outdoors Bass Tournament '96 (USA)\0", NULL, "American Softworks", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_tnnoutRomInfo, md_tnnoutRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Todd's Adventures in Slime World (USA)
-static struct BurnRomInfo md_slimewRomDesc[] = {
- { "todd's adventures in slime world (usa).bin", 0x080000, 0x652e8b7d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_slimew)
-STD_ROM_FN(md_slimew)
-
-struct BurnDriver BurnDrvmd_slimew = {
- "md_slimew", NULL, NULL, NULL, "1991",
- "Todd's Adventures in Slime World (USA)\0", NULL, "Renovation", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_slimewRomInfo, md_slimewRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Slime World (Jpn)
-static struct BurnRomInfo md_slimewjRomDesc[] = {
- { "slime world (jpn).bin", 0x080000, 0x7ff5529f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_slimewj)
-STD_ROM_FN(md_slimewj)
-
-struct BurnDriver BurnDrvmd_slimewj = {
- "md_slimewj", "md_slimew", NULL, NULL, "1992",
- "Slime World (Jpn)\0", NULL, "Micro World", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_slimewjRomInfo, md_slimewjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Toe Jam & Earl (World, Rev. A)
-static struct BurnRomInfo md_toejamRomDesc[] = {
- { "mpr-14236a.bin", 0x100000, 0x7a588f4b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_toejam)
-STD_ROM_FN(md_toejam)
-
-struct BurnDriver BurnDrvmd_toejam = {
- "md_toejam", NULL, NULL, NULL, "1992",
- "Toe Jam & Earl (World, Rev. A)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_toejamRomInfo, md_toejamRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Toe Jam & Earl (World)
-static struct BurnRomInfo md_toejamaRomDesc[] = {
- { "toe jam & earl (world).bin", 0x100000, 0xd1b36786, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_toejama)
-STD_ROM_FN(md_toejama)
-
-struct BurnDriver BurnDrvmd_toejama = {
- "md_toejama", "md_toejam", NULL, NULL, "1992",
- "Toe Jam & Earl (World)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_toejamaRomInfo, md_toejamaRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Toe Jam & Earl in Panic on Funkotron (Euro)
-static struct BurnRomInfo md_toejam2RomDesc[] = {
- { "mpr-16179.bin", 0x200000, 0x47b0a871, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_toejam2)
-STD_ROM_FN(md_toejam2)
-
-struct BurnDriver BurnDrvmd_toejam2 = {
- "md_toejam2", NULL, NULL, NULL, "1993",
- "Toe Jam & Earl in Panic on Funkotron (Euro)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_toejam2RomInfo, md_toejam2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Toe Jam & Earl in Panic auf Funkotron (Ger)
-static struct BurnRomInfo md_toejam2gRomDesc[] = {
- { "toe jam & earl in panic auf funkotron (germany).bin", 0x200000, 0x4081b9f2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_toejam2g)
-STD_ROM_FN(md_toejam2g)
-
-struct BurnDriver BurnDrvmd_toejam2g = {
- "md_toejam2g", "md_toejam2", NULL, NULL, "1993",
- "Toe Jam & Earl in Panic auf Funkotron (Ger)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_toejam2gRomInfo, md_toejam2gRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Toe Jam & Earl in Panic on Funkotron (Jpn)
-static struct BurnRomInfo md_toejam2jRomDesc[] = {
- { "toe jam & earl in panic on funkotron (jpn).bin", 0x200000, 0xe1b36850, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_toejam2j)
-STD_ROM_FN(md_toejam2j)
-
-struct BurnDriver BurnDrvmd_toejam2j = {
- "md_toejam2j", "md_toejam2", NULL, NULL, "1993",
- "Toe Jam & Earl in Panic on Funkotron (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_toejam2jRomInfo, md_toejam2jRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Toe Jam & Earl in Panic on Funkotron (USA)
-static struct BurnRomInfo md_toejam2uRomDesc[] = {
- { "toe jam & earl in panic on funkotron (usa).bin", 0x200000, 0xaa021bdd, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_toejam2u)
-STD_ROM_FN(md_toejam2u)
-
-struct BurnDriver BurnDrvmd_toejam2u = {
- "md_toejam2u", "md_toejam2", NULL, NULL, "1993",
- "Toe Jam & Earl in Panic on Funkotron (USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_toejam2uRomInfo, md_toejam2uRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Toki - Going Ape Spit ~ JuJu Densetsu (World, Rev. A)
-static struct BurnRomInfo md_tokiRomDesc[] = {
- { "mpr-14464a.bin", 0x080000, 0x7362c3f4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_toki)
-STD_ROM_FN(md_toki)
-
-struct BurnDriver BurnDrvmd_toki = {
- "md_toki", NULL, NULL, NULL, "1991",
- "Toki - Going Ape Spit ~ JuJu Densetsu (World, Rev. A)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_tokiRomInfo, md_tokiRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Toki - Going Ape Spit ~ JuJu Densetsu (World)
-static struct BurnRomInfo md_toki1RomDesc[] = {
- { "toki - going ape spit -- juju densetsu (world).bin", 0x080000, 0xd09b1ef1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_toki1)
-STD_ROM_FN(md_toki1)
-
-struct BurnDriver BurnDrvmd_toki1 = {
- "md_toki1", "md_toki", NULL, NULL, "1991",
- "Toki - Going Ape Spit ~ JuJu Densetsu (World)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_toki1RomInfo, md_toki1RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Tom and Jerry - Frantic Antics (USA, 1993)
-static struct BurnRomInfo md_tomjerryRomDesc[] = {
- { "tom and jerry - frantic antics (usa) (1993).bin", 0x100000, 0xb9992e1c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_tomjerry)
-STD_ROM_FN(md_tomjerry)
-
-struct BurnDriver BurnDrvmd_tomjerry = {
- "md_tomjerry", NULL, NULL, NULL, "1993",
- "Tom and Jerry - Frantic Antics (USA, 1993)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_tomjerryRomInfo, md_tomjerryRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Tom and Jerry - Frantic Antics (USA, 1994)
-static struct BurnRomInfo md_tomjerry1RomDesc[] = {
- { "tom and jerry - frantic antics (usa) (1994).bin", 0x100000, 0x3044460c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_tomjerry1)
-STD_ROM_FN(md_tomjerry1)
-
-struct BurnDriver BurnDrvmd_tomjerry1 = {
- "md_tomjerry1", "md_tomjerry", NULL, NULL, "1994",
- "Tom and Jerry - Frantic Antics (USA, 1994)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_tomjerry1RomInfo, md_tomjerry1RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Tony La Russa Baseball (USA, Oceania)
-static struct BurnRomInfo md_larussaRomDesc[] = {
- { "tony la russa baseball (usa, aus).bin", 0x100000, 0x24629c78, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_larussa)
-STD_ROM_FN(md_larussa)
-
-struct BurnDriver BurnDrvmd_larussa = {
- "md_larussa", NULL, NULL, NULL, "1993",
- "Tony La Russa Baseball (USA, Oceania)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_larussaRomInfo, md_larussaRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Top Gear 2 (USA)
-static struct BurnRomInfo md_topgear2RomDesc[] = {
- { "top gear 2 (usa).bin", 0x100000, 0xbd3074d2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_topgear2)
-STD_ROM_FN(md_topgear2)
-
-struct BurnDriver BurnDrvmd_topgear2 = {
- "md_topgear2", NULL, NULL, NULL, "1994",
- "Top Gear 2 (USA)\0", NULL, "Vic Tokai", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_topgear2RomInfo, md_topgear2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Top Pro Golf (Jpn)
-static struct BurnRomInfo md_topgolfRomDesc[] = {
- { "mpr-14853.bin", 0x100000, 0x62bad606, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_topgolf)
-STD_ROM_FN(md_topgolf)
-
-struct BurnDriver BurnDrvmd_topgolf = {
- "md_topgolf", NULL, NULL, NULL, "1992",
- "Top Pro Golf (Jpn)\0", NULL, "Soft Vision", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_topgolfRomInfo, md_topgolfRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Top Pro Golf 2 (Jpn)
-static struct BurnRomInfo md_topgolf2RomDesc[] = {
- { "top pro golf 2 (jpn).bin", 0x100000, 0xb8ce98b3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_topgolf2)
-STD_ROM_FN(md_topgolf2)
-
-struct BurnDriver BurnDrvmd_topgolf2 = {
- "md_topgolf2", "md_chichi", NULL, NULL, "1993",
- "Top Pro Golf 2 (Jpn)\0", NULL, "Soft Vision International", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_topgolf2RomInfo, md_topgolf2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Total Football (Euro)
-static struct BurnRomInfo md_totlfootRomDesc[] = {
- { "total football (euro).bin", 0x200000, 0x8360b66a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_totlfoot)
-STD_ROM_FN(md_totlfoot)
-
-struct BurnDriver BurnDrvmd_totlfoot = {
- "md_totlfoot", NULL, NULL, NULL, "1995",
- "Total Football (Euro)\0", NULL, "Domark", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_totlfootRomInfo, md_totlfootRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Toughman Contest (Euro, USA)
-static struct BurnRomInfo md_toughmanRomDesc[] = {
- { "toughman contest (euro, usa).bin", 0x400000, 0xe19fbc93, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_toughman)
-STD_ROM_FN(md_toughman)
-
-struct BurnDriver BurnDrvmd_toughman = {
- "md_toughman", NULL, NULL, NULL, "1995",
- "Toughman Contest (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_toughmanRomInfo, md_toughmanRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Toxic Crusaders (USA)
-static struct BurnRomInfo md_toxiccRomDesc[] = {
- { "toxic crusaders (usa).bin", 0x080000, 0x11fd46ce, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_toxicc)
-STD_ROM_FN(md_toxicc)
-
-struct BurnDriver BurnDrvmd_toxicc = {
- "md_toxicc", NULL, NULL, NULL, "1992",
- "Toxic Crusaders (USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_toxiccRomInfo, md_toxiccRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Toy Story (Euro)
-static struct BurnRomInfo md_toystoryRomDesc[] = {
- { "mpr-18848.bin", 0x400000, 0x8e89a9f3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_toystory)
-STD_ROM_FN(md_toystory)
-
-struct BurnDriver BurnDrvmd_toystory = {
- "md_toystory", NULL, NULL, NULL, "1996",
- "Toy Story (Euro)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_toystoryRomInfo, md_toystoryRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Toy Story (USA)
-static struct BurnRomInfo md_toystoryuRomDesc[] = {
- { "toy story (usa).bin", 0x400000, 0x829fe313, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_toystoryu)
-STD_ROM_FN(md_toystoryu)
-
-struct BurnDriver BurnDrvmd_toystoryu = {
- "md_toystoryu", "md_toystory", NULL, NULL, "1996",
- "Toy Story (USA)\0", NULL, "Disney Interactive", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_toystoryuRomInfo, md_toystoryuRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Toys (USA)
-static struct BurnRomInfo md_toysRomDesc[] = {
- { "mpr-15574.bin", 0x100000, 0xcbc9951b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_toys)
-STD_ROM_FN(md_toys)
-
-struct BurnDriver BurnDrvmd_toys = {
- "md_toys", NULL, NULL, NULL, "1993",
- "Toys (USA)\0", NULL, "Absolute Entertainment", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_toysRomInfo, md_toysRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Trampoline Terror! (USA)
-static struct BurnRomInfo md_trampterRomDesc[] = {
- { "trampoline terror! (usa).bin", 0x040000, 0xaabb349f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_trampter)
-STD_ROM_FN(md_trampter)
-
-struct BurnDriver BurnDrvmd_trampter = {
- "md_trampter", NULL, NULL, NULL, "1990",
- "Trampoline Terror! (USA)\0", NULL, "Dreamworks", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_trampterRomInfo, md_trampterRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Traysia (USA)
-static struct BurnRomInfo md_traysiaRomDesc[] = {
- { "traysia (usa).bin", 0x100000, 0x96184f4f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_traysia)
-STD_ROM_FN(md_traysia)
-
-struct BurnDriver BurnDrvmd_traysia = {
- "md_traysia", NULL, NULL, NULL, "1992",
- "Traysia (USA)\0", NULL, "Renovation", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_traysiaRomInfo, md_traysiaRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Minato no Traysia (Jpn)
-static struct BurnRomInfo md_traysiajRomDesc[] = {
- { "minato no traysia (jpn).bin", 0x100000, 0xbd89fd09, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_traysiaj)
-STD_ROM_FN(md_traysiaj)
-
-struct BurnDriver BurnDrvmd_traysiaj = {
- "md_traysiaj", "md_traysia", NULL, NULL, "1992",
- "Minato no Traysia (Jpn)\0", NULL, "Riot", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_traysiajRomInfo, md_traysiajRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Triple Play '96 (USA)
-static struct BurnRomInfo md_tplay96RomDesc[] = {
- { "triple play '96 (usa).bin", 0x400000, 0xf1748e91, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_tplay96)
-STD_ROM_FN(md_tplay96)
-
-struct BurnDriver BurnDrvmd_tplay96 = {
- "md_tplay96", NULL, NULL, NULL, "1995",
- "Triple Play '96 (USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_tplay96RomInfo, md_tplay96RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Triple Play Gold (USA)
-static struct BurnRomInfo md_tplaygldRomDesc[] = {
- { "triple play gold (usa).bin", 0x400000, 0xbbe69017, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_tplaygld)
-STD_ROM_FN(md_tplaygld)
-
-struct BurnDriver BurnDrvmd_tplaygld = {
- "md_tplaygld", NULL, NULL, NULL, "1996",
- "Triple Play Gold (USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_tplaygldRomInfo, md_tplaygldRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Triple Play Gold (USA, Alt)
-static struct BurnRomInfo md_tplaygldaRomDesc[] = {
- { "triple play gold (usa) (alt).bin", 0x400000, 0xa89638a0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_tplayglda)
-STD_ROM_FN(md_tplayglda)
-
-struct BurnDriver BurnDrvmd_tplayglda = {
- "md_tplayglda", "md_tplaygld", NULL, NULL, "1995",
- "Triple Play Gold (USA, Alt)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_tplaygldaRomInfo, md_tplaygldaRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Trouble Shooter (USA)
-static struct BurnRomInfo md_troubshtRomDesc[] = {
- { "trouble shooter (usa).bin", 0x080000, 0xbecfc39b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_troubsht)
-STD_ROM_FN(md_troubsht)
-
-struct BurnDriver BurnDrvmd_troubsht = {
- "md_troubsht", NULL, NULL, NULL, "1991",
- "Trouble Shooter (USA)\0", NULL, "Vic Tokai", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_troubshtRomInfo, md_troubshtRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Battle Mania (Jpn)
-static struct BurnRomInfo md_btlmaniaRomDesc[] = {
- { "battle mania (jpn).bin", 0x080000, 0xa76c4a29, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_btlmania)
-STD_ROM_FN(md_btlmania)
-
-struct BurnDriver BurnDrvmd_btlmania = {
- "md_btlmania", "md_troubsht", NULL, NULL, "1992",
- "Battle Mania (Jpn)\0", NULL, "Vic Tokai", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_btlmaniaRomInfo, md_btlmaniaRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Troy Aikman NFL Football (USA)
-static struct BurnRomInfo md_troyaikRomDesc[] = {
- { "troy aikman nfl football (usa).bin", 0x200000, 0x015f2713, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_troyaik)
-STD_ROM_FN(md_troyaik)
-
-struct BurnDriver BurnDrvmd_troyaik = {
- "md_troyaik", NULL, NULL, NULL, "1994",
- "Troy Aikman NFL Football (USA)\0", NULL, "Tradewest", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_troyaikRomInfo, md_troyaikRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// True Lies (World)
-static struct BurnRomInfo md_trueliesRomDesc[] = {
- { "true lies (world).bin", 0x200000, 0x18c09468, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_truelies)
-STD_ROM_FN(md_truelies)
-
-struct BurnDriver BurnDrvmd_truelies = {
- "md_truelies", NULL, NULL, NULL, "1995",
- "True Lies (World)\0", NULL, "Acclaim Entertainment", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_trueliesRomInfo, md_trueliesRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Tun Shi Tian Di III (China, Simple Chinese)
-static struct BurnRomInfo md_tunshiRomDesc[] = {
- { "tun shi tian di iii (chi) (simple chinese) (unl).bin", 0x200000, 0xea57b668, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_tunshi)
-STD_ROM_FN(md_tunshi)
-
-struct BurnDriver BurnDrvmd_tunshi = {
- "md_tunshi", NULL, NULL, NULL, "199?",
- "Tun Shi Tian Di III (China, Simple Chinese)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_tunshiRomInfo, md_tunshiRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Tun Shi Tian Di III (Chi)
-static struct BurnRomInfo md_tunshi1RomDesc[] = {
- { "tun shi tian di iii (chi) (unl).bin", 0x200000, 0xb23c4166, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_tunshi1)
-STD_ROM_FN(md_tunshi1)
-
-struct BurnDriver BurnDrvmd_tunshi1 = {
- "md_tunshi1", "md_tunshi", NULL, NULL, "199?",
- "Tun Shi Tian Di III (Chi)\0", NULL, "SKOB", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_tunshi1RomInfo, md_tunshi1RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Turbo OutRun (Euro, Jpn)
-static struct BurnRomInfo md_toutrunRomDesc[] = {
- { "turbo outrun (euro, jpn).bin", 0x080000, 0x0c661369, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_toutrun)
-STD_ROM_FN(md_toutrun)
-
-struct BurnDriver BurnDrvmd_toutrun = {
- "md_toutrun", NULL, NULL, NULL, "1992",
- "Turbo OutRun (Euro, Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_toutrunRomInfo, md_toutrunRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Turrican (Euro, USA)
-static struct BurnRomInfo md_turricanRomDesc[] = {
- { "turrican (euro, usa).bin", 0x080000, 0x634d67a6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_turrican)
-STD_ROM_FN(md_turrican)
-
-struct BurnDriver BurnDrvmd_turrican = {
- "md_turrican", NULL, NULL, NULL, "1991",
- "Turrican (Euro, USA)\0", NULL, "Ballistic", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_turricanRomInfo, md_turricanRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Twin Cobra (USA)
-static struct BurnRomInfo md_twincobrRomDesc[] = {
- { "twin cobra (usa).bin", 0x0a0000, 0x2c708248, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_twincobr)
-STD_ROM_FN(md_twincobr)
-
-struct BurnDriver BurnDrvmd_twincobr = {
- "md_twincobr", NULL, NULL, NULL, "1991",
- "Twin Cobra (USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_twincobrRomInfo, md_twincobrRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Kyuukyoku Tiger (Jpn)
-static struct BurnRomInfo md_ktigerRomDesc[] = {
- { "kyuukyoku tiger (jpn).bin", 0x0a0000, 0x61276d21, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ktiger)
-STD_ROM_FN(md_ktiger)
-
-struct BurnDriver BurnDrvmd_ktiger = {
- "md_ktiger", "md_twincobr", NULL, NULL, "1991",
- "Kyuukyoku Tiger (Jpn)\0", NULL, "Treco", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_ktigerRomInfo, md_ktigerRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Twinkle Tale (Jpn)
-static struct BurnRomInfo md_twinkletRomDesc[] = {
- { "twinkle tale (jpn).bin", 0x100000, 0xd757f924, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_twinklet)
-STD_ROM_FN(md_twinklet)
-
-struct BurnDriver BurnDrvmd_twinklet = {
- "md_twinklet", NULL, NULL, NULL, "1992",
- "Twinkle Tale (Jpn)\0", NULL, "Toyo Records", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_twinkletRomInfo, md_twinkletRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Twin Hawk (Euro) ~ Daisenpuu (Jpn)
-static struct BurnRomInfo md_twinhawkRomDesc[] = {
- { "twin hawk -- daisenpuu (euro, jpn).bin", 0x080000, 0xa2ec8c67, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_twinhawk)
-STD_ROM_FN(md_twinhawk)
-
-struct BurnDriver BurnDrvmd_twinhawk = {
- "md_twinhawk", NULL, NULL, NULL, "1990",
- "Twin Hawk (Euro) ~ Daisenpuu (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_twinhawkRomInfo, md_twinhawkRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Two Crude Dudes (Euro)
-static struct BurnRomInfo md_twocrudeRomDesc[] = {
- { "two crude dudes (euro).bin", 0x100000, 0xb6d90a10, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_twocrude)
-STD_ROM_FN(md_twocrude)
-
-struct BurnDriver BurnDrvmd_twocrude = {
- "md_twocrude", NULL, NULL, NULL, "1992",
- "Two Crude Dudes (Euro)\0", NULL, "Data East", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_twocrudeRomInfo, md_twocrudeRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Two Crude Dudes (USA)
-static struct BurnRomInfo md_twocrudeuRomDesc[] = {
- { "two crude dudes (usa).bin", 0x100000, 0x721b5744, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_twocrudeu)
-STD_ROM_FN(md_twocrudeu)
-
-struct BurnDriver BurnDrvmd_twocrudeu = {
- "md_twocrudeu", "md_twocrude", NULL, NULL, "1992",
- "Two Crude Dudes (USA)\0", NULL, "Data East", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_twocrudeuRomInfo, md_twocrudeuRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Crude Buster (Jpn)
-static struct BurnRomInfo md_crudebRomDesc[] = {
- { "crude buster (jpn).bin", 0x100000, 0xaffb4b00, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_crudeb)
-STD_ROM_FN(md_crudeb)
-
-struct BurnDriver BurnDrvmd_crudeb = {
- "md_crudeb", "md_twocrude", NULL, NULL, "1992",
- "Crude Buster (Jpn)\0", NULL, "Data East", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_crudebRomInfo, md_crudebRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Two Tribes - Populous II (Euro)
-static struct BurnRomInfo md_twotribeRomDesc[] = {
- { "mpr-15652.bin", 0x100000, 0xee988bd9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_twotribe)
-STD_ROM_FN(md_twotribe)
-
-struct BurnDriver BurnDrvmd_twotribe = {
- "md_twotribe", NULL, NULL, NULL, "1993",
- "Two Tribes - Populous II (Euro)\0", NULL, "Virgin Games", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_twotribeRomInfo, md_twotribeRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Ultimate Mortal Kombat 3 (Euro)
-static struct BurnRomInfo md_umk3RomDesc[] = {
- { "pal_ultimate_mk3.bin", 0x400000, 0xecfb5cb4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_umk3)
-STD_ROM_FN(md_umk3)
-
-struct BurnDriver BurnDrvmd_umk3 = {
- "md_umk3", NULL, NULL, NULL, "1996",
- "Ultimate Mortal Kombat 3 (Euro)\0", NULL, "Acclaim Entertainment", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_umk3RomInfo, md_umk3RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Ultimate Mortal Kombat 3 (USA)
-static struct BurnRomInfo md_umk3uRomDesc[] = {
- { "ultimate mortal kombat 3 (usa).bin", 0x400000, 0x7290770d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_umk3u)
-STD_ROM_FN(md_umk3u)
-
-struct BurnDriver BurnDrvmd_umk3u = {
- "md_umk3u", "md_umk3", NULL, NULL, "1996",
- "Ultimate Mortal Kombat 3 (USA)\0", NULL, "Williams", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_umk3uRomInfo, md_umk3uRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Ultimate Qix (USA)
-static struct BurnRomInfo md_ultqixRomDesc[] = {
- { "ultimate qix (usa).bin", 0x040000, 0xd83369d9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ultqix)
-STD_ROM_FN(md_ultqix)
-
-struct BurnDriver BurnDrvmd_ultqix = {
- "md_ultqix", NULL, NULL, NULL, "1991",
- "Ultimate Qix (USA)\0", NULL, "Taito", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_ultqixRomInfo, md_ultqixRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Volfied (Jpn)
-static struct BurnRomInfo md_volfiedRomDesc[] = {
- { "volfied (jpn).bin", 0x040000, 0xb0c5e3f7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_volfied)
-STD_ROM_FN(md_volfied)
-
-struct BurnDriver BurnDrvmd_volfied = {
- "md_volfied", "md_ultqix", NULL, NULL, "1991",
- "Volfied (Jpn)\0", NULL, "Taito", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_volfiedRomInfo, md_volfiedRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Ultimate Soccer (Euro)
-static struct BurnRomInfo md_ultsoccrRomDesc[] = {
- { "mpr-15819.bin", 0x100000, 0x83db6e58, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ultsoccr)
-STD_ROM_FN(md_ultsoccr)
-
-struct BurnDriver BurnDrvmd_ultsoccr = {
- "md_ultsoccr", NULL, NULL, NULL, "1993",
- "Ultimate Soccer (Euro)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_ultsoccrRomInfo, md_ultsoccrRomName, NULL, NULL, MegadriveInputInfo, MegadrivePALDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Ultraman (Jpn)
-static struct BurnRomInfo md_ultramanRomDesc[] = {
- { "ultraman (jpn).bin", 0x080000, 0x83b4d5fb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ultraman)
-STD_ROM_FN(md_ultraman)
-
-struct BurnDriver BurnDrvmd_ultraman = {
- "md_ultraman", NULL, NULL, NULL, "1993",
- "Ultraman (Jpn)\0", NULL, "Ma-Ba", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_ultramanRomInfo, md_ultramanRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Uncharted Waters (USA)
-static struct BurnRomInfo md_unchartdRomDesc[] = {
- { "uncharted waters (usa).bin", 0x100000, 0x4edaec59, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_unchartd)
-STD_ROM_FN(md_unchartd)
-
-struct BurnDriver BurnDrvmd_unchartd = {
- "md_unchartd", NULL, NULL, NULL, "1992",
- "Uncharted Waters (USA)\0", NULL, "Koei", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_unchartdRomInfo, md_unchartdRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Daikoukai Jidai (Jpn)
-static struct BurnRomInfo md_daikokaiRomDesc[] = {
- { "daikoukai jidai (jpn).bin", 0x100000, 0x5a652458, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_daikokai)
-STD_ROM_FN(md_daikokai)
-
-struct BurnDriver BurnDrvmd_daikokai = {
- "md_daikokai", "md_unchartd", NULL, NULL, "1992",
- "Daikoukai Jidai (Jpn)\0", NULL, "Koei", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_daikokaiRomInfo, md_daikokaiRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// New Horizons (USA)
-static struct BurnRomInfo md_newhorizRomDesc[] = {
- { "uncharted waters - new horizons (usa).bin", 0x200000, 0xead69824, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_newhoriz)
-STD_ROM_FN(md_newhoriz)
-
-struct BurnDriver BurnDrvmd_newhoriz = {
- "md_newhoriz", NULL, NULL, NULL, "1994",
- "New Horizons (USA)\0", NULL, "Koei", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_newhorizRomInfo, md_newhorizRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Daikoukai Jidai II (Jpn)
-static struct BurnRomInfo md_daikok2RomDesc[] = {
- { "daikoukai jidai ii (jpn).bin", 0x200000, 0xe040f0da, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_daikok2)
-STD_ROM_FN(md_daikok2)
-
-struct BurnDriver BurnDrvmd_daikok2 = {
- "md_daikok2", "md_newhoriz", NULL, NULL, "1994",
- "Daikoukai Jidai II (Jpn)\0", NULL, "Koei", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_daikok2RomInfo, md_daikok2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Undead Line (Jpn)
-static struct BurnRomInfo md_undeadRomDesc[] = {
- { "undead line (jpn).bin", 0x100000, 0xfb3ca1e6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_undead)
-STD_ROM_FN(md_undead)
-
-struct BurnDriver BurnDrvmd_undead = {
- "md_undead", NULL, NULL, NULL, "1991",
- "Undead Line (Jpn)\0", NULL, "Palsoft", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_undeadRomInfo, md_undeadRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Universal Soldier (Euro, USA)
-static struct BurnRomInfo md_univsoldRomDesc[] = {
- { "universal soldier (euro, usa).bin", 0x100000, 0x352ebd49, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_univsold)
-STD_ROM_FN(md_univsold)
-
-struct BurnDriver BurnDrvmd_univsold = {
- "md_univsold", NULL, NULL, NULL, "1992",
- "Universal Soldier (Euro, USA)\0", NULL, "Ballistic", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_univsoldRomInfo, md_univsoldRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Unnecessary Roughness 95 (USA)
-static struct BurnRomInfo md_unnecessRomDesc[] = {
- { "unnecessary roughness 95 (usa).bin", 0x200000, 0x9920e7b7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_unnecess)
-STD_ROM_FN(md_unnecess)
-
-struct BurnDriver BurnDrvmd_unnecess = {
- "md_unnecess", NULL, NULL, NULL, "1994",
- "Unnecessary Roughness 95 (USA)\0", NULL, "Accolade", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_unnecessRomInfo, md_unnecessRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Urban Strike (Euro, USA)
-static struct BurnRomInfo md_ustrikeRomDesc[] = {
- { "urban strike (euro, usa).bin", 0x200000, 0xcf690a75, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ustrike)
-STD_ROM_FN(md_ustrike)
-
-struct BurnDriver BurnDrvmd_ustrike = {
- "md_ustrike", NULL, NULL, NULL, "1994",
- "Urban Strike (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_ustrikeRomInfo, md_ustrikeRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Uzu Keobukseon (Kor)
-static struct BurnRomInfo md_uzukeoRomDesc[] = {
- { "uzu keobukseon (kor).bin", 0x080000, 0xa7255ba8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_uzukeo)
-STD_ROM_FN(md_uzukeo)
-
-struct BurnDriver BurnDrvmd_uzukeo = {
- "md_uzukeo", NULL, NULL, NULL, "199?",
- "Uzu Keobukseon (Kor)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_uzukeoRomInfo, md_uzukeoRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Valis (USA)
-static struct BurnRomInfo md_valisRomDesc[] = {
- { "valis (usa).bin", 0x100000, 0x13bc5b72, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_valis)
-STD_ROM_FN(md_valis)
-
-struct BurnDriver BurnDrvmd_valis = {
- "md_valis", NULL, NULL, NULL, "1991",
- "Valis (USA)\0", NULL, "Renovation", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_valisRomInfo, md_valisRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Mugen Senshi Valis (Jpn)
-static struct BurnRomInfo md_valisjRomDesc[] = {
- { "mugen senshi valis (jpn).bin", 0x100000, 0x24431625, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_valisj)
-STD_ROM_FN(md_valisj)
-
-struct BurnDriver BurnDrvmd_valisj = {
- "md_valisj", "md_valis", NULL, NULL, "1991",
- "Mugen Senshi Valis (Jpn)\0", NULL, "Riot", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_valisjRomInfo, md_valisjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Valis III (USA)
-static struct BurnRomInfo md_valis3RomDesc[] = {
- { "valis iii (usa).bin", 0x100000, 0x59a2a368, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_valis3)
-STD_ROM_FN(md_valis3)
-
-struct BurnDriver BurnDrvmd_valis3 = {
- "md_valis3", NULL, NULL, NULL, "1991",
- "Valis III (USA)\0", NULL, "Renovation", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_valis3RomInfo, md_valis3RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Valis III (Jpn, Rev. A)
-static struct BurnRomInfo md_valis3jRomDesc[] = {
- { "valis iii (jpn) (rev a).bin", 0x100000, 0x4d49a166, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_valis3j)
-STD_ROM_FN(md_valis3j)
-
-struct BurnDriver BurnDrvmd_valis3j = {
- "md_valis3j", "md_valis3", NULL, NULL, "1991",
- "Valis III (Jpn, Rev. A)\0", NULL, "Reno", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_valis3jRomInfo, md_valis3jRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Vapor Trail (USA)
-static struct BurnRomInfo md_vaportrRomDesc[] = {
- { "vapor trail (usa).bin", 0x100000, 0xc49e3a0a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_vaportr)
-STD_ROM_FN(md_vaportr)
-
-struct BurnDriver BurnDrvmd_vaportr = {
- "md_vaportr", NULL, NULL, NULL, "1991",
- "Vapor Trail (USA)\0", NULL, "Renovation", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_vaportrRomInfo, md_vaportrRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Kuuga - Operation Code "Vapor Trail" (Jpn)
-static struct BurnRomInfo md_kuugaRomDesc[] = {
- { "kuuga - operation code 'vapor trail' (jpn).bin", 0x100000, 0x83b6b6ba, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_kuuga)
-STD_ROM_FN(md_kuuga)
-
-struct BurnDriver BurnDrvmd_kuuga = {
- "md_kuuga", "md_vaportr", NULL, NULL, "1991",
- "Kuuga - Operation Code 'Vapor Trail' (Jpn)\0", NULL, "Riot", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_kuugaRomInfo, md_kuugaRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Vectorman (Euro, USA)
-static struct BurnRomInfo md_vecmanRomDesc[] = {
- { "vectorman (euro, usa).bin", 0x200000, 0xd38b3354, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_vecman)
-STD_ROM_FN(md_vecman)
-
-struct BurnDriver BurnDrvmd_vecman = {
- "md_vecman", NULL, NULL, NULL, "1995",
- "Vectorman (Euro, USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_vecmanRomInfo, md_vecmanRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Vectorman (Prototype)
-static struct BurnRomInfo md_vecmanp1RomDesc[] = {
- { "vectorman (beta).bin", 0x200000, 0xa315c8aa, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_vecmanp1)
-STD_ROM_FN(md_vecmanp1)
-
-struct BurnDriver BurnDrvmd_vecmanp1 = {
- "md_vecmanp1", "md_vecman", NULL, NULL, "1995",
- "Vectorman (Prototype)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_vecmanp1RomInfo, md_vecmanp1RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Vectorman (Prototype, Alt)
-static struct BurnRomInfo md_vecmanp2RomDesc[] = {
- { "vectorman (beta) (alt).bin", 0x200000, 0x2084d3da, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_vecmanp2)
-STD_ROM_FN(md_vecmanp2)
-
-struct BurnDriver BurnDrvmd_vecmanp2 = {
- "md_vecmanp2", "md_vecman", NULL, NULL, "1995",
- "Vectorman (Prototype, Alt)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_vecmanp2RomInfo, md_vecmanp2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Vectorman (Prototype, 19950724)
-static struct BurnRomInfo md_vecmanp3RomDesc[] = {
- { "vectorman (prototype - jul 24, 1995).bin", 0x200000, 0x0145738b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_vecmanp3)
-STD_ROM_FN(md_vecmanp3)
-
-struct BurnDriver BurnDrvmd_vecmanp3 = {
- "md_vecmanp3", "md_vecman", NULL, NULL, "1995",
- "Vectorman (Prototype, 19950724)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_vecmanp3RomInfo, md_vecmanp3RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Vectorman 2 (USA)
-static struct BurnRomInfo md_vecman2RomDesc[] = {
- { "vectorman 2 (usa).bin", 0x300000, 0xc1a24088, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_vecman2)
-STD_ROM_FN(md_vecman2)
-
-struct BurnDriver BurnDrvmd_vecman2 = {
- "md_vecman2", NULL, NULL, NULL, "1996",
- "Vectorman 2 (USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_vecman2RomInfo, md_vecman2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Vectorman 2 (Prototype)
-static struct BurnRomInfo md_vecman2p1RomDesc[] = {
- { "vectorman 2 (beta).bin", 0x200000, 0xada2b0ef, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_vecman2p1)
-STD_ROM_FN(md_vecman2p1)
-
-struct BurnDriver BurnDrvmd_vecman2p1 = {
- "md_vecman2p1", "md_vecman2", NULL, NULL, "1996",
- "Vectorman 2 (Prototype)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_vecman2p1RomInfo, md_vecman2p1RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Vectorman 2 (Prototype, 19960815)
-static struct BurnRomInfo md_vecman2p6RomDesc[] = {
- { "vectorman 2 (prototype - aug 15, 1996).bin", 0x300000, 0x998b087c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_vecman2p6)
-STD_ROM_FN(md_vecman2p6)
-
-struct BurnDriver BurnDrvmd_vecman2p6 = {
- "md_vecman2p6", "md_vecman2", NULL, NULL, "1996",
- "Vectorman 2 (Prototype, 19960815)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_vecman2p6RomInfo, md_vecman2p6RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Vectorman 2 (Prototype, 19960816)
-static struct BurnRomInfo md_vecman2p5RomDesc[] = {
- { "vectorman 2 (prototype - aug 16, 1996).bin", 0x300000, 0x2986e5ce, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_vecman2p5)
-STD_ROM_FN(md_vecman2p5)
-
-struct BurnDriver BurnDrvmd_vecman2p5 = {
- "md_vecman2p5", "md_vecman2", NULL, NULL, "1996",
- "Vectorman 2 (Prototype, 19960816)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_vecman2p5RomInfo, md_vecman2p5RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Vectorman 2 (Prototype, 19960819)
-static struct BurnRomInfo md_vecman2p4RomDesc[] = {
- { "vectorman 2 (prototype - aug 19, 1996).bin", 0x300000, 0x49efab7e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_vecman2p4)
-STD_ROM_FN(md_vecman2p4)
-
-struct BurnDriver BurnDrvmd_vecman2p4 = {
- "md_vecman2p4", "md_vecman2", NULL, NULL, "1996",
- "Vectorman 2 (Prototype, 19960819)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_vecman2p4RomInfo, md_vecman2p4RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Vectorman 2 (Prototype, 19960826)
-static struct BurnRomInfo md_vecman2p3RomDesc[] = {
- { "vectorman 2 (prototype - aug 26, 1996).bin", 0x2a8e46, 0xeb8124c8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_vecman2p3)
-STD_ROM_FN(md_vecman2p3)
-
-struct BurnDriver BurnDrvmd_vecman2p3 = {
- "md_vecman2p3", "md_vecman2", NULL, NULL, "1996",
- "Vectorman 2 (Prototype, 19960826)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_vecman2p3RomInfo, md_vecman2p3RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Vectorman 2 (Prototype, 19960827)
-static struct BurnRomInfo md_vecman2p2RomDesc[] = {
- { "vectorman 2 (prototype - aug 27, 1996).bin", 0x300000, 0x6333d89a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_vecman2p2)
-STD_ROM_FN(md_vecman2p2)
-
-struct BurnDriver BurnDrvmd_vecman2p2 = {
- "md_vecman2p2", "md_vecman2", NULL, NULL, "1996",
- "Vectorman 2 (Prototype, 19960827)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_vecman2p2RomInfo, md_vecman2p2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Verytex (Jpn)
-static struct BurnRomInfo md_verytexRomDesc[] = {
- { "verytex (jpn).bin", 0x080000, 0xbafc375f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_verytex)
-STD_ROM_FN(md_verytex)
-
-struct BurnDriver BurnDrvmd_verytex = {
- "md_verytex", NULL, NULL, NULL, "1991",
- "Verytex (Jpn)\0", NULL, "Asmik Ace", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_verytexRomInfo, md_verytexRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Viewpoint (USA)
-static struct BurnRomInfo md_viewpoinRomDesc[] = {
- { "viewpoint (usa).bin", 0x200000, 0x59c71866, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_viewpoin)
-STD_ROM_FN(md_viewpoin)
-
-struct BurnDriver BurnDrvmd_viewpoin = {
- "md_viewpoin", NULL, NULL, NULL, "1994",
- "Viewpoint (USA)\0", NULL, "American Sammy", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_viewpoinRomInfo, md_viewpoinRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Viewpoint (USA, Prototype)
-static struct BurnRomInfo md_viewpoinpRomDesc[] = {
- { "viewpoint (usa) (beta).bin", 0x180000, 0xf2e69ce7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_viewpoinp)
-STD_ROM_FN(md_viewpoinp)
-
-struct BurnDriver BurnDrvmd_viewpoinp = {
- "md_viewpoinp", "md_viewpoin", NULL, NULL, "1994",
- "Viewpoint (USA, Prototype)\0", NULL, "American Sammy", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_viewpoinpRomInfo, md_viewpoinpRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Virtua Fighter 2 - Genesis (Euro, USA)
-static struct BurnRomInfo md_vf2RomDesc[] = {
- { "mpr-19107+mpr-19108.bin", 0x400000, 0x937380f3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_vf2)
-STD_ROM_FN(md_vf2)
-
-struct BurnDriver BurnDrvmd_vf2 = {
- "md_vf2", NULL, NULL, NULL, "1997",
- "Virtua Fighter 2 - Genesis (Euro, USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_vf2RomInfo, md_vf2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Virtua Fighter 2 - Genesis (Kor)
-static struct BurnRomInfo md_vf2kRomDesc[] = {
- { "mpr-19369.bin", 0x400000, 0xa95d0949, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_vf2k)
-STD_ROM_FN(md_vf2k)
-
-struct BurnDriver BurnDrvmd_vf2k = {
- "md_vf2k", "md_vf2", NULL, NULL, "1997",
- "Virtua Fighter 2 - Genesis (Kor)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_vf2kRomInfo, md_vf2kRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Virtua Fighter 2 - Genesis (Prototype, 19960819)
-static struct BurnRomInfo md_vf2p5RomDesc[] = {
- { "virtua fighter 2 (prototype - aug 19, 1996).bin", 0x400000, 0xc5ee3974, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_vf2p5)
-STD_ROM_FN(md_vf2p5)
-
-struct BurnDriver BurnDrvmd_vf2p5 = {
- "md_vf2p5", "md_vf2", NULL, NULL, "1996",
- "Virtua Fighter 2 - Genesis (Prototype, 19960819)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_vf2p5RomInfo, md_vf2p5RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Virtua Fighter 2 - Genesis (Prototype, 19960830)
-static struct BurnRomInfo md_vf2p4RomDesc[] = {
- { "virtua fighter 2 (prototype - aug 30, 1996).bin", 0x400000, 0x6a0f3a7b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_vf2p4)
-STD_ROM_FN(md_vf2p4)
-
-struct BurnDriver BurnDrvmd_vf2p4 = {
- "md_vf2p4", "md_vf2", NULL, NULL, "1996",
- "Virtua Fighter 2 - Genesis (Prototype, 19960830)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_vf2p4RomInfo, md_vf2p4RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Virtua Fighter 2 - Genesis (Prototype, 19960913)
-static struct BurnRomInfo md_vf2p3RomDesc[] = {
- { "virtua fighter 2 (prototype - sep 13, 1996).bin", 0x400000, 0xfa5bad91, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_vf2p3)
-STD_ROM_FN(md_vf2p3)
-
-struct BurnDriver BurnDrvmd_vf2p3 = {
- "md_vf2p3", "md_vf2", NULL, NULL, "1996",
- "Virtua Fighter 2 - Genesis (Prototype, 19960913)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_vf2p3RomInfo, md_vf2p3RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Virtua Fighter 2 - Genesis (Prototype, 19960920)
-static struct BurnRomInfo md_vf2p2RomDesc[] = {
- { "virtua fighter 2 (prototype - sep 20, 1996).bin", 0x400000, 0xaf516dad, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_vf2p2)
-STD_ROM_FN(md_vf2p2)
-
-struct BurnDriver BurnDrvmd_vf2p2 = {
- "md_vf2p2", "md_vf2", NULL, NULL, "1996",
- "Virtua Fighter 2 - Genesis (Prototype, 19960920)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_vf2p2RomInfo, md_vf2p2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Virtua Fighter 2 - Genesis (Prototype, 19960927)
-static struct BurnRomInfo md_vf2p1RomDesc[] = {
- { "virtua fighter 2 (prototype - sep 27, 1996).bin", 0x400000, 0x95ab6ab6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_vf2p1)
-STD_ROM_FN(md_vf2p1)
-
-struct BurnDriver BurnDrvmd_vf2p1 = {
- "md_vf2p1", "md_vf2", NULL, NULL, "1996",
- "Virtua Fighter 2 - Genesis (Prototype, 19960927)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_vf2p1RomInfo, md_vf2p1RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Virtua Fighter 2 vs Tekken 2
-static struct BurnRomInfo md_vf2tekRomDesc[] = {
- { "virtua fighter 2 vs tekken 2 (unl).bin", 0x200000, 0x2cdb499d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_vf2tek)
-STD_ROM_FN(md_vf2tek)
-
-struct BurnDriver BurnDrvmd_vf2tek = {
- "md_vf2tek", NULL, NULL, NULL, "199?",
- "Virtua Fighter 2 vs Tekken 2\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_vf2tekRomInfo, md_vf2tekRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Virtual Bart (World)
-static struct BurnRomInfo md_vbartRomDesc[] = {
- { "virtual bart (world).bin", 0x200000, 0x8db9f378, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_vbart)
-STD_ROM_FN(md_vbart)
-
-struct BurnDriver BurnDrvmd_vbart = {
- "md_vbart", NULL, NULL, NULL, "1994",
- "Virtual Bart (World)\0", NULL, "Acclaim Entertainment", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_vbartRomInfo, md_vbartRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Virtual Pinball (Euro, USA)
-static struct BurnRomInfo md_vpinballRomDesc[] = {
- { "virtual pinball (euro, usa).bin", 0x100000, 0xd63473aa, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_vpinball)
-STD_ROM_FN(md_vpinball)
-
-struct BurnDriver BurnDrvmd_vpinball = {
- "md_vpinball", NULL, NULL, NULL, "1993",
- "Virtual Pinball (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_vpinballRomInfo, md_vpinballRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Vixen 357 (Jpn)
-static struct BurnRomInfo md_vixen357RomDesc[] = {
- { "vixen 357 (jpn).bin", 0x100000, 0x3afa2d7b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_vixen357)
-STD_ROM_FN(md_vixen357)
-
-struct BurnDriver BurnDrvmd_vixen357 = {
- "md_vixen357", NULL, NULL, NULL, "1992",
- "Vixen 357 (Jpn)\0", NULL, "NCS", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_vixen357RomInfo, md_vixen357RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// VR Troopers (Euro, USA)
-static struct BurnRomInfo md_vrtroopRomDesc[] = {
- { "vr troopers (euro, usa).bin", 0x200000, 0x2f35516e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_vrtroop)
-STD_ROM_FN(md_vrtroop)
-
-struct BurnDriver BurnDrvmd_vrtroop = {
- "md_vrtroop", NULL, NULL, NULL, "1994",
- "VR Troopers (Euro, USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_vrtroopRomInfo, md_vrtroopRomName, NULL, NULL, MegadriveInputInfo, MegadrivePALDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Wacky Races (USA, Prototype)
-static struct BurnRomInfo md_wackyracRomDesc[] = {
- { "wacky races (usa) (prototype).bin", 0x200000, 0x1b173f09, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wackyrac)
-STD_ROM_FN(md_wackyrac)
-
-struct BurnDriver BurnDrvmd_wackyrac = {
- "md_wackyrac", NULL, NULL, NULL, "199?",
- "Wacky Races (USA, Prototype)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_wackyracRomInfo, md_wackyracRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Wacky Worlds (USA)
-static struct BurnRomInfo md_wworldsRomDesc[] = {
- { "wacky worlds (usa).bin", 0x100000, 0x8af4552d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wworlds)
-STD_ROM_FN(md_wworlds)
-
-struct BurnDriver BurnDrvmd_wworlds = {
- "md_wworlds", NULL, NULL, NULL, "1994",
- "Wacky Worlds (USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_wworldsRomInfo, md_wworldsRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Wacky Worlds (Prototype, 19940808)
-static struct BurnRomInfo md_wworldsp3RomDesc[] = {
- { "wacky worlds (prototype - aug 08, 1994).bin", 0x100000, 0x48d33ea0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wworldsp3)
-STD_ROM_FN(md_wworldsp3)
-
-struct BurnDriver BurnDrvmd_wworldsp3 = {
- "md_wworldsp3", "md_wworlds", NULL, NULL, "1994",
- "Wacky Worlds (Prototype, 19940808)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_wworldsp3RomInfo, md_wworldsp3RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Wacky Worlds (Prototype, 19940817)
-static struct BurnRomInfo md_wworldsp2RomDesc[] = {
- { "wacky worlds (prototype - aug 17, 1994).bin", 0x0fcbb0, 0x4615970b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wworldsp2)
-STD_ROM_FN(md_wworldsp2)
-
-struct BurnDriver BurnDrvmd_wworldsp2 = {
- "md_wworldsp2", "md_wworlds", NULL, NULL, "1994",
- "Wacky Worlds (Prototype, 19940817)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_wworldsp2RomInfo, md_wworldsp2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Wacky Worlds (Prototype, 19940819)
-static struct BurnRomInfo md_wworldsp1RomDesc[] = {
- { "wacky worlds (prototype - aug 19, 1994).bin", 0x0fcb96, 0x7f286925, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wworldsp1)
-STD_ROM_FN(md_wworldsp1)
-
-struct BurnDriver BurnDrvmd_wworldsp1 = {
- "md_wworldsp1", "md_wworlds", NULL, NULL, "1994",
- "Wacky Worlds (Prototype, 19940819)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_wworldsp1RomInfo, md_wworldsp1RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Wani Wani World (Jpn)
-static struct BurnRomInfo md_waniwaniRomDesc[] = {
- { "wani wani world (jpn).bin", 0x080000, 0x56f0dbb2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_waniwani)
-STD_ROM_FN(md_waniwani)
-
-struct BurnDriver BurnDrvmd_waniwani = {
- "md_waniwani", NULL, NULL, NULL, "1992",
- "Wani Wani World (Jpn)\0", NULL, "Kaneko", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_waniwaniRomInfo, md_waniwaniRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Wardner (USA)
-static struct BurnRomInfo md_wardnerRomDesc[] = {
- { "wardner (usa).bin", 0x080000, 0x1e369ae2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wardner)
-STD_ROM_FN(md_wardner)
-
-struct BurnDriver BurnDrvmd_wardner = {
- "md_wardner", NULL, NULL, NULL, "1991",
- "Wardner (USA)\0", NULL, "Mentrix Software", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_wardnerRomInfo, md_wardnerRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Wardner no Mori Special (Jpn)
-static struct BurnRomInfo md_wardnerjRomDesc[] = {
- { "wardner no mori special (jpn).bin", 0x080000, 0x80f1035c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wardnerj)
-STD_ROM_FN(md_wardnerj)
-
-struct BurnDriver BurnDrvmd_wardnerj = {
- "md_wardnerj", "md_wardner", NULL, NULL, "1991",
- "Wardner no Mori Special (Jpn)\0", NULL, "Visco", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_wardnerjRomInfo, md_wardnerjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Warlock (Euro, USA)
-static struct BurnRomInfo md_warlockRomDesc[] = {
- { "warlock (euro, usa).bin", 0x200000, 0x0a46539b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_warlock)
-STD_ROM_FN(md_warlock)
-
-struct BurnDriver BurnDrvmd_warlock = {
- "md_warlock", NULL, NULL, NULL, "1994",
- "Warlock (Euro, USA)\0", NULL, "Acclaim Entertainment", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_warlockRomInfo, md_warlockRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Warlock (USA, Prototype)
-static struct BurnRomInfo md_warlockpRomDesc[] = {
- { "warlock (usa) (beta).bin", 0x200000, 0xc9b6edb3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_warlockp)
-STD_ROM_FN(md_warlockp)
-
-struct BurnDriver BurnDrvmd_warlockp = {
- "md_warlockp", "md_warlock", NULL, NULL, "1994",
- "Warlock (USA, Prototype)\0", NULL, "Acclaim Entertainment", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_warlockpRomInfo, md_warlockpRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Warpspeed (USA)
-static struct BurnRomInfo md_warpspedRomDesc[] = {
- { "warpspeed (usa).bin", 0x200000, 0x143697ed, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_warpsped)
-STD_ROM_FN(md_warpsped)
-
-struct BurnDriver BurnDrvmd_warpsped = {
- "md_warpsped", NULL, NULL, NULL, "1993",
- "Warpspeed (USA)\0", NULL, "Accolade", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_warpspedRomInfo, md_warpspedRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Warrior of Rome (USA)
-static struct BurnRomInfo md_warriorRomDesc[] = {
- { "warrior of rome (usa).bin", 0x100000, 0x5be10c6a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_warrior)
-STD_ROM_FN(md_warrior)
-
-struct BurnDriver BurnDrvmd_warrior = {
- "md_warrior", NULL, NULL, NULL, "1991",
- "Warrior of Rome (USA)\0", NULL, "Micronet", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_warriorRomInfo, md_warriorRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Caesar no Yabou (Jpn)
-static struct BurnRomInfo md_caesarRomDesc[] = {
- { "caesar no yabou (jpn).bin", 0x100000, 0x69796e93, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_caesar)
-STD_ROM_FN(md_caesar)
-
-struct BurnDriver BurnDrvmd_caesar = {
- "md_caesar", "md_warrior", NULL, NULL, "1991",
- "Caesar no Yabou (Jpn)\0", NULL, "Micronet", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_caesarRomInfo, md_caesarRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Warrior of Rome II (USA)
-static struct BurnRomInfo md_warrior2RomDesc[] = {
- { "warrior of rome ii (usa).bin", 0x100000, 0xcd8c472a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_warrior2)
-STD_ROM_FN(md_warrior2)
-
-struct BurnDriver BurnDrvmd_warrior2 = {
- "md_warrior2", NULL, NULL, NULL, "1992",
- "Warrior of Rome II (USA)\0", NULL, "Micronet", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_warrior2RomInfo, md_warrior2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Caesar no Yabou II (Jpn)
-static struct BurnRomInfo md_caesar2RomDesc[] = {
- { "caesar no yabou ii (jpn).bin", 0x100000, 0x4f327b3a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_caesar2)
-STD_ROM_FN(md_caesar2)
-
-struct BurnDriver BurnDrvmd_caesar2 = {
- "md_caesar2", "md_warrior2", NULL, NULL, "1992",
- "Caesar no Yabou II (Jpn)\0", NULL, "Micronet", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_caesar2RomInfo, md_caesar2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Warsong (USA)
-static struct BurnRomInfo md_warsongRomDesc[] = {
- { "warsong (usa).bin", 0x080000, 0x4b680285, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_warsong)
-STD_ROM_FN(md_warsong)
-
-struct BurnDriver BurnDrvmd_warsong = {
- "md_warsong", NULL, NULL, NULL, "1991",
- "Warsong (USA)\0", NULL, "Treco", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_warsongRomInfo, md_warsongRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// WaterWorld (Euro, Prototype)
-static struct BurnRomInfo md_waterwldRomDesc[] = {
- { "waterworld (euro) (prototype).bin", 0x200000, 0x51c80498, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_waterwld)
-STD_ROM_FN(md_waterwld)
-
-struct BurnDriver BurnDrvmd_waterwld = {
- "md_waterwld", NULL, NULL, NULL, "1995?",
- "WaterWorld (Euro, Prototype)\0", NULL, "Ocean", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_waterwldRomInfo, md_waterwldRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Wayne Gretzky and the NHLPA All-Stars (Euro, USA)
-static struct BurnRomInfo md_waynegRomDesc[] = {
- { "wayne gretzky and the nhlpa all-stars (euro, usa).bin", 0x200000, 0xc2c13b81, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wayneg)
-STD_ROM_FN(md_wayneg)
-
-struct BurnDriver BurnDrvmd_wayneg = {
- "md_wayneg", NULL, NULL, NULL, "1995",
- "Wayne Gretzky and the NHLPA All-Stars (Euro, USA)\0", NULL, "Time Warner Interactive", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_waynegRomInfo, md_waynegRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Wayne's World (USA)
-static struct BurnRomInfo md_waynewldRomDesc[] = {
- { "wayne's world (usa).bin", 0x100000, 0xd2cf6ebe, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_waynewld)
-STD_ROM_FN(md_waynewld)
-
-struct BurnDriver BurnDrvmd_waynewld = {
- "md_waynewld", NULL, NULL, NULL, "1993",
- "Wayne's World (USA)\0", NULL, "THQ", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_waynewldRomInfo, md_waynewldRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Weaponlord (USA)
-static struct BurnRomInfo md_weaponldRomDesc[] = {
- { "weaponlord (usa).bin", 0x300000, 0xb9895365, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_weaponld)
-STD_ROM_FN(md_weaponld)
-
-struct BurnDriver BurnDrvmd_weaponld = {
- "md_weaponld", NULL, NULL, NULL, "1995",
- "Weaponlord (USA)\0", NULL, "Namco", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_weaponldRomInfo, md_weaponldRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Wheel of Fortune (USA)
-static struct BurnRomInfo md_wheelforRomDesc[] = {
- { "wheel of fortune (usa).bin", 0x080000, 0xc8d8efc3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wheelfor)
-STD_ROM_FN(md_wheelfor)
-
-struct BurnDriver BurnDrvmd_wheelfor = {
- "md_wheelfor", NULL, NULL, NULL, "1992",
- "Wheel of Fortune (USA)\0", NULL, "GameTek", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_wheelforRomInfo, md_wheelforRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Where in the World Is Carmen Sandiego? (Euro, USA)
-static struct BurnRomInfo md_carmnwldRomDesc[] = {
- { "where in the world is carmen sandiego (euro, usa).bin", 0x100000, 0xeef372e8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_carmnwld)
-STD_ROM_FN(md_carmnwld)
-
-struct BurnDriver BurnDrvmd_carmnwld = {
- "md_carmnwld", NULL, NULL, NULL, "1992",
- "Where in the World Is Carmen Sandiego? (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_carmnwldRomInfo, md_carmnwldRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Where in the World Is Carmen Sandiego? (Bra)
-static struct BurnRomInfo md_carmnwldbRomDesc[] = {
- { "where in the world is carmen sandiego (bra).bin", 0x100000, 0x7d4450ad, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_carmnwldb)
-STD_ROM_FN(md_carmnwldb)
-
-struct BurnDriver BurnDrvmd_carmnwldb = {
- "md_carmnwldb", "md_carmnwld", NULL, NULL, "199?",
- "Where in the World Is Carmen Sandiego? (Bra)\0", NULL, "Tec Toy", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_carmnwldbRomInfo, md_carmnwldbRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Where in Time Is Carmen Sandiego? (Euro, USA)
-static struct BurnRomInfo md_carmntimRomDesc[] = {
- { "where in time is carmen sandiego (euro, usa).bin", 0x100000, 0xea19d4a4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_carmntim)
-STD_ROM_FN(md_carmntim)
-
-struct BurnDriver BurnDrvmd_carmntim = {
- "md_carmntim", NULL, NULL, NULL, "1992",
- "Where in Time Is Carmen Sandiego? (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_carmntimRomInfo, md_carmntimRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Where in Time Is Carmen Sandiego? (Bra)
-static struct BurnRomInfo md_carmntimbRomDesc[] = {
- { "where in time is carmen sandiego (bra).bin", 0x100000, 0xd523b552, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_carmntimb)
-STD_ROM_FN(md_carmntimb)
-
-struct BurnDriver BurnDrvmd_carmntimb = {
- "md_carmntimb", "md_carmntim", NULL, NULL, "199?",
- "Where in Time Is Carmen Sandiego? (Bra)\0", NULL, "Tec Toy", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_carmntimbRomInfo, md_carmntimbRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Whip Rush (USA)
-static struct BurnRomInfo md_whiprushRomDesc[] = {
- { "whip rush (usa).bin", 0x080000, 0x7eb6b86b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_whiprush)
-STD_ROM_FN(md_whiprush)
-
-struct BurnDriver BurnDrvmd_whiprush = {
- "md_whiprush", NULL, NULL, NULL, "1990",
- "Whip Rush (USA)\0", NULL, "Renovation", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_whiprushRomInfo, md_whiprushRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Whip Rush - Wakusei Voltegas no Nazo (Jpn)
-static struct BurnRomInfo md_whiprushjRomDesc[] = {
- { "whip rush - wakusei voltegas no nazo (jpn).bin", 0x080000, 0x8084b4d1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_whiprushj)
-STD_ROM_FN(md_whiprushj)
-
-struct BurnDriver BurnDrvmd_whiprushj = {
- "md_whiprushj", "md_whiprush", NULL, NULL, "1990",
- "Whip Rush - Wakusei Voltegas no Nazo (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_whiprushjRomInfo, md_whiprushjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Wild Snake (USA, Prototype)
-static struct BurnRomInfo md_wildsnakRomDesc[] = {
- { "wild snake (usa) (prototype).bin", 0x080000, 0x0c1a49e5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wildsnak)
-STD_ROM_FN(md_wildsnak)
-
-struct BurnDriver BurnDrvmd_wildsnak = {
- "md_wildsnak", NULL, NULL, NULL, "1994",
- "Wild Snake (USA, Prototype)\0", NULL, "Bullet-Proof Software", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_wildsnakRomInfo, md_wildsnakRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Williams Arcade's Greatest Hits (USA)
-static struct BurnRomInfo md_arcadeghuRomDesc[] = {
- { "williams arcade's greatest hits (usa).bin", 0x080000, 0xd68e9c00, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_arcadeghu)
-STD_ROM_FN(md_arcadeghu)
-
-struct BurnDriver BurnDrvmd_arcadeghu = {
- "md_arcadeghu", "md_arcadegh", NULL, NULL, "1996",
- "Williams Arcade's Greatest Hits (USA)\0", NULL, "Williams", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_arcadeghuRomInfo, md_arcadeghuRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Wimbledon Championship Tennis (Euro)
-static struct BurnRomInfo md_wimbledRomDesc[] = {
- { "wimbledon championship tennis (euro).bin", 0x100000, 0xb791a435, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wimbled)
-STD_ROM_FN(md_wimbled)
-
-struct BurnDriver BurnDrvmd_wimbled = {
- "md_wimbled", NULL, NULL, NULL, "1994",
- "Wimbledon Championship Tennis (Euro)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_wimbledRomInfo, md_wimbledRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Wimbledon Championship Tennis (Jpn)
-static struct BurnRomInfo md_wimbledjRomDesc[] = {
- { "wimbledon championship tennis (jpn).bin", 0x100000, 0x3e0c9daf, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wimbledj)
-STD_ROM_FN(md_wimbledj)
-
-struct BurnDriver BurnDrvmd_wimbledj = {
- "md_wimbledj", "md_wimbled", NULL, NULL, "1994",
- "Wimbledon Championship Tennis (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_wimbledjRomInfo, md_wimbledjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Wimbledon Championship Tennis (USA)
-static struct BurnRomInfo md_wimbleduRomDesc[] = {
- { "wimbledon championship tennis (usa).bin", 0x100000, 0xf9142aee, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wimbledu)
-STD_ROM_FN(md_wimbledu)
-
-struct BurnDriver BurnDrvmd_wimbledu = {
- "md_wimbledu", "md_wimbled", NULL, NULL, "1993",
- "Wimbledon Championship Tennis (USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_wimbleduRomInfo, md_wimbleduRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Wimbledon Championship Tennis (USA, Prototype)
-static struct BurnRomInfo md_wimbledupRomDesc[] = {
- { "wimbledon championship tennis (usa) (beta).bin", 0x100000, 0x9febc760, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wimbledup)
-STD_ROM_FN(md_wimbledup)
-
-struct BurnDriver BurnDrvmd_wimbledup = {
- "md_wimbledup", "md_wimbled", NULL, NULL, "1993",
- "Wimbledon Championship Tennis (USA, Prototype)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_wimbledupRomInfo, md_wimbledupRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Winter Challenge (Euro, USA, Rev. 1)
-static struct BurnRomInfo md_wintchalRomDesc[] = {
- { "acwcsg-1_(1-92).bin", 0x100000, 0xf57c7068, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wintchal)
-STD_ROM_FN(md_wintchal)
-
-struct BurnDriver BurnDrvmd_wintchal = {
- "md_wintchal", NULL, NULL, NULL, "1992",
- "Winter Challenge (Euro, USA, Rev. 1)\0", NULL, "Ballistic", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_wintchalRomInfo, md_wintchalRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Games: Winter Challenge (Euro, USA)
-static struct BurnRomInfo md_wintchal1RomDesc[] = {
- { "acwcsg_(12-91).bin", 0x100000, 0xdbc3ed1c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wintchal1)
-STD_ROM_FN(md_wintchal1)
-
-struct BurnDriver BurnDrvmd_wintchal1 = {
- "md_wintchal1", "md_wintchal", NULL, NULL, "1992",
- "The Games: Winter Challenge (Euro, USA)\0", NULL, "Ballistic", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_wintchal1RomInfo, md_wintchal1RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Winter Challenge (Prototype)
-static struct BurnRomInfo md_wintchalpRomDesc[] = {
- { "winter challenge (beta).bin", 0x100000, 0x60d2a8c4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wintchalp)
-STD_ROM_FN(md_wintchalp)
-
-struct BurnDriver BurnDrvmd_wintchalp = {
- "md_wintchalp", "md_wintchal", NULL, NULL, "1992",
- "Winter Challenge (Prototype)\0", NULL, "Ballistic", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_wintchalpRomInfo, md_wintchalpRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Winter Olympics (Euro)
-static struct BurnRomInfo md_wintolRomDesc[] = {
- { "winter olympics (euro).bin", 0x200000, 0xfa537a45, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wintol)
-STD_ROM_FN(md_wintol)
-
-struct BurnDriver BurnDrvmd_wintol = {
- "md_wintol", NULL, NULL, NULL, "1994",
- "Winter Olympics (Euro)\0", NULL, "U.S. Gold", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_wintolRomInfo, md_wintolRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Winter Olympics (Jpn)
-static struct BurnRomInfo md_wintoljRomDesc[] = {
- { "winter olympics (jpn).bin", 0x200000, 0x654a4684, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wintolj)
-STD_ROM_FN(md_wintolj)
-
-struct BurnDriver BurnDrvmd_wintolj = {
- "md_wintolj", "md_wintol", NULL, NULL, "1994",
- "Winter Olympics (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_wintoljRomInfo, md_wintoljRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Winter Olympic Games (USA)
-static struct BurnRomInfo md_wintoluRomDesc[] = {
- { "winter olympic games (usa).bin", 0x200000, 0xc5834437, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wintolu)
-STD_ROM_FN(md_wintolu)
-
-struct BurnDriver BurnDrvmd_wintolu = {
- "md_wintolu", "md_wintol", NULL, NULL, "1993",
- "Winter Olympic Games (USA)\0", NULL, "U.S. Gold", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_wintoluRomInfo, md_wintoluRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Wiz'n'Liz - The Frantic Wabbit Wescue (Euro)
-static struct BurnRomInfo md_wiznlizRomDesc[] = {
- { "wiz'n'liz - the frantic wabbit wescue (euro).bin", 0x100000, 0xf09353b4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wiznliz)
-STD_ROM_FN(md_wiznliz)
-
-struct BurnDriver BurnDrvmd_wiznliz = {
- "md_wiznliz", NULL, NULL, NULL, "1993",
- "Wiz'n'Liz - The Frantic Wabbit Wescue (Euro)\0", NULL, "Psygnosis", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_wiznlizRomInfo, md_wiznlizRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Wiz'n'Liz (USA)
-static struct BurnRomInfo md_wiznlizuRomDesc[] = {
- { "wiz'n'liz (usa).bin", 0x100000, 0xdf036b62, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wiznlizu)
-STD_ROM_FN(md_wiznlizu)
-
-struct BurnDriver BurnDrvmd_wiznlizu = {
- "md_wiznlizu", "md_wiznliz", NULL, NULL, "1993",
- "Wiz'n'Liz (USA)\0", NULL, "Psygnosis", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_wiznlizuRomInfo, md_wiznlizuRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Wolfchild (USA)
-static struct BurnRomInfo md_wolfchldRomDesc[] = {
- { "wolfchild (usa).bin", 0x100000, 0xeb5b1cbf, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wolfchld)
-STD_ROM_FN(md_wolfchld)
-
-struct BurnDriver BurnDrvmd_wolfchld = {
- "md_wolfchld", NULL, NULL, NULL, "1993",
- "Wolfchild (USA)\0", NULL, "JVC Musical Industries", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_wolfchldRomInfo, md_wolfchldRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Wolverine - Adamantium Rage (Euro, USA)
-static struct BurnRomInfo md_wolverinRomDesc[] = {
- { "wolverine - adamantium rage (euro, usa).bin", 0x200000, 0xd2437bb7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wolverin)
-STD_ROM_FN(md_wolverin)
-
-struct BurnDriver BurnDrvmd_wolverin = {
- "md_wolverin", NULL, NULL, NULL, "1994",
- "Wolverine - Adamantium Rage (Euro, USA)\0", NULL, "Acclaim Entertainment", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_wolverinRomInfo, md_wolverinRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Wonder Boy III - Monster Lair (Euro) ~ Monster Lair (Jpn)
-static struct BurnRomInfo md_wboy3RomDesc[] = {
- { "mpr-13619.bin", 0x080000, 0xc24bc5e4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wboy3)
-STD_ROM_FN(md_wboy3)
-
-struct BurnDriver BurnDrvmd_wboy3 = {
- "md_wboy3", NULL, NULL, NULL, "1991",
- "Wonder Boy III - Monster Lair (Euro) ~ Monster Lair (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_wboy3RomInfo, md_wboy3RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Wonder Boy in Monster World (Euro, USA)
-static struct BurnRomInfo md_wboymwRomDesc[] = {
- { "mpr-14556.bin", 0x0c0000, 0x1592f5b0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wboymw)
-STD_ROM_FN(md_wboymw)
-
-struct BurnDriver BurnDrvmd_wboymw = {
- "md_wboymw", NULL, NULL, NULL, "1992",
- "Wonder Boy in Monster World (Euro, USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_EEPROM, GBF_MISC, 0,
- MegadriveGetZipName, md_wboymwRomInfo, md_wboymwRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Wonder Boy V - Monster World III (Jpn, Kor)
-static struct BurnRomInfo md_wboy5RomDesc[] = {
- { "wonder boy v - monster world iii (jpn, kor).bin", 0x0a0000, 0x45a50f96, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wboy5)
-STD_ROM_FN(md_wboy5)
-
-struct BurnDriver BurnDrvmd_wboy5 = {
- "md_wboy5", "md_wboymw", NULL, NULL, "1991",
- "Wonder Boy V - Monster World III (Jpn, Kor)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_EEPROM, GBF_MISC, 0,
- MegadriveGetZipName, md_wboy5RomInfo, md_wboy5RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Turma da Mnica na Terra dos Monstros (Bra)
-static struct BurnRomInfo md_turmamonRomDesc[] = {
- { "turma da monica na terra dos monstros (bra).bin", 0x100000, 0xf8288de1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_turmamon)
-STD_ROM_FN(md_turmamon)
-
-struct BurnDriver BurnDrvmd_turmamon = {
- "md_turmamon", "md_wboymw", NULL, NULL, "1996",
- "Turma da Monica na Terra dos Monstros (Bra)\0", NULL, "Tec Toy", "Sega Megadrive",
- L"Turma da M\u00F4nica na Terra dos Monstros (Bra)\0", NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_EEPROM, GBF_MISC, 0,
- MegadriveGetZipName, md_turmamonRomInfo, md_turmamonRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Wonder Library (Jpn)
-static struct BurnRomInfo md_wondlibRomDesc[] = {
- { "wonder library (jpn).bin", 0x080000, 0x9350e754, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wondlib)
-STD_ROM_FN(md_wondlib)
-
-struct BurnDriver BurnDrvmd_wondlib = {
- "md_wondlib", NULL, NULL, NULL, "199?",
- "Wonder Library (Jpn)\0", NULL, "Victor", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_wondlibRomInfo, md_wondlibRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// World Championship Soccer II (Euro)
-static struct BurnRomInfo md_wcs2RomDesc[] = {
- { "world championship soccer ii (europe).bin", 0x100000, 0x6065774d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wcs2)
-STD_ROM_FN(md_wcs2)
-
-struct BurnDriver BurnDrvmd_wcs2 = {
- "md_wcs2", NULL, NULL, NULL, "1994",
- "World Championship Soccer II (Euro)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_wcs2RomInfo, md_wcs2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// World Championship Soccer II (USA)
-static struct BurnRomInfo md_wcs2uRomDesc[] = {
- { "world championship soccer ii (usa).bin", 0x100000, 0xc1dd1c8e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wcs2u)
-STD_ROM_FN(md_wcs2u)
-
-struct BurnDriver BurnDrvmd_wcs2u = {
- "md_wcs2u", "md_wcs2", NULL, NULL, "1994",
- "World Championship Soccer II (USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_wcs2uRomInfo, md_wcs2uRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// World Championship Soccer II (Prototype, 19940223)
-static struct BurnRomInfo md_wcs2p17RomDesc[] = {
- { "world championship soccer ii (prototype - feb 23, 1994).bin", 0x100000, 0xaab9e240, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wcs2p17)
-STD_ROM_FN(md_wcs2p17)
-
-struct BurnDriver BurnDrvmd_wcs2p17 = {
- "md_wcs2p17", "md_wcs2", NULL, NULL, "1994",
- "World Championship Soccer II (Prototype, 19940223)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_wcs2p17RomInfo, md_wcs2p17RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// World Championship Soccer II (Prototype, 19940309)
-static struct BurnRomInfo md_wcs2p12RomDesc[] = {
- { "world championship soccer ii (prototype - mar 09, 1994).bin", 0x100000, 0x71fa89cc, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wcs2p12)
-STD_ROM_FN(md_wcs2p12)
-
-struct BurnDriver BurnDrvmd_wcs2p12 = {
- "md_wcs2p12", "md_wcs2", NULL, NULL, "1994",
- "World Championship Soccer II (Prototype, 19940309)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_wcs2p12RomInfo, md_wcs2p12RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// World Championship Soccer II (Prototype, 19940323)
-static struct BurnRomInfo md_wcs2p08RomDesc[] = {
- { "world championship soccer ii (prototype - mar 23, 1994).bin", 0x100000, 0x3852e514, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wcs2p08)
-STD_ROM_FN(md_wcs2p08)
-
-struct BurnDriver BurnDrvmd_wcs2p08 = {
- "md_wcs2p08", "md_wcs2", NULL, NULL, "1994",
- "World Championship Soccer II (Prototype, 19940323)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_wcs2p08RomInfo, md_wcs2p08RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// World Championship Soccer II (Prototype, 19940324)
-static struct BurnRomInfo md_wcs2p07RomDesc[] = {
- { "world championship soccer ii (prototype - mar 24, 1994).bin", 0x100000, 0xa6d43b4a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wcs2p07)
-STD_ROM_FN(md_wcs2p07)
-
-struct BurnDriver BurnDrvmd_wcs2p07 = {
- "md_wcs2p07", "md_wcs2", NULL, NULL, "1994",
- "World Championship Soccer II (Prototype, 19940324)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_wcs2p07RomInfo, md_wcs2p07RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// World Championship Soccer II (Prototype, 19940325)
-static struct BurnRomInfo md_wcs2p06RomDesc[] = {
- { "world championship soccer ii (prototype - mar 25, 1994).bin", 0x100000, 0x6b3624fb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wcs2p06)
-STD_ROM_FN(md_wcs2p06)
-
-struct BurnDriver BurnDrvmd_wcs2p06 = {
- "md_wcs2p06", "md_wcs2", NULL, NULL, "1994",
- "World Championship Soccer II (Prototype, 19940325)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_wcs2p06RomInfo, md_wcs2p06RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// World Championship Soccer II (Prototype, 19940326)
-static struct BurnRomInfo md_wcs2p05RomDesc[] = {
- { "world championship soccer ii (prototype - mar 26, 1994).bin", 0x100000, 0x1ad7ed9c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wcs2p05)
-STD_ROM_FN(md_wcs2p05)
-
-struct BurnDriver BurnDrvmd_wcs2p05 = {
- "md_wcs2p05", "md_wcs2", NULL, NULL, "1994",
- "World Championship Soccer II (Prototype, 19940326)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_wcs2p05RomInfo, md_wcs2p05RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// World Championship Soccer II (Prototype, 19940327)
-static struct BurnRomInfo md_wcs2p04RomDesc[] = {
- { "world championship soccer ii (prototype - mar 27, 1994).bin", 0x100000, 0x4e141509, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wcs2p04)
-STD_ROM_FN(md_wcs2p04)
-
-struct BurnDriver BurnDrvmd_wcs2p04 = {
- "md_wcs2p04", "md_wcs2", NULL, NULL, "1994",
- "World Championship Soccer II (Prototype, 19940327)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_wcs2p04RomInfo, md_wcs2p04RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// World Championship Soccer II (Prototype, 19940329-B)
-static struct BurnRomInfo md_wcs2p03RomDesc[] = {
- { "world championship soccer ii (prototype - mar 29, 1994 - b).bin", 0x100000, 0xa6759340, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wcs2p03)
-STD_ROM_FN(md_wcs2p03)
-
-struct BurnDriver BurnDrvmd_wcs2p03 = {
- "md_wcs2p03", "md_wcs2", NULL, NULL, "1994",
- "World Championship Soccer II (Prototype, 19940329-B)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_wcs2p03RomInfo, md_wcs2p03RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// World Championship Soccer II (Prototype, 19940329)
-static struct BurnRomInfo md_wcs2p02RomDesc[] = {
- { "world championship soccer ii (prototype - mar 29, 1994).bin", 0x100000, 0x5f9c51f7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wcs2p02)
-STD_ROM_FN(md_wcs2p02)
-
-struct BurnDriver BurnDrvmd_wcs2p02 = {
- "md_wcs2p02", "md_wcs2", NULL, NULL, "1994",
- "World Championship Soccer II (Prototype, 19940329)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_wcs2p02RomInfo, md_wcs2p02RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// World Championship Soccer II (Prototype, 19940330)
-static struct BurnRomInfo md_wcs2p01RomDesc[] = {
- { "world championship soccer ii (prototype - mar 30, 1994).bin", 0x100000, 0x8dd49c92, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wcs2p01)
-STD_ROM_FN(md_wcs2p01)
-
-struct BurnDriver BurnDrvmd_wcs2p01 = {
- "md_wcs2p01", "md_wcs2", NULL, NULL, "1994",
- "World Championship Soccer II (Prototype, 19940330)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_wcs2p01RomInfo, md_wcs2p01RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// World Championship Soccer II (Prototype G, 19940222)
-static struct BurnRomInfo md_wcs2p18RomDesc[] = {
- { "world championship soccer ii (prototype g - feb 22, 1994).bin", 0x100000, 0x6fbfa14e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wcs2p18)
-STD_ROM_FN(md_wcs2p18)
-
-struct BurnDriver BurnDrvmd_wcs2p18 = {
- "md_wcs2p18", "md_wcs2", NULL, NULL, "1994",
- "World Championship Soccer II (Prototype G, 19940222)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_wcs2p18RomInfo, md_wcs2p18RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// World Championship Soccer II (Prototype J, 19940228)
-static struct BurnRomInfo md_wcs2p16RomDesc[] = {
- { "world championship soccer ii (prototype j - feb 28, 1994).bin", 0x100000, 0xe210a74c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wcs2p16)
-STD_ROM_FN(md_wcs2p16)
-
-struct BurnDriver BurnDrvmd_wcs2p16 = {
- "md_wcs2p16", "md_wcs2", NULL, NULL, "1994",
- "World Championship Soccer II (Prototype J, 19940228)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_wcs2p16RomInfo, md_wcs2p16RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// World Championship Soccer II (Prototype N, 19940303)
-static struct BurnRomInfo md_wcs2p15RomDesc[] = {
- { "world championship soccer ii (prototype n - mar 03, 1994).bin", 0x100000, 0x07b387a4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wcs2p15)
-STD_ROM_FN(md_wcs2p15)
-
-struct BurnDriver BurnDrvmd_wcs2p15 = {
- "md_wcs2p15", "md_wcs2", NULL, NULL, "1994",
- "World Championship Soccer II (Prototype N, 19940303)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_wcs2p15RomInfo, md_wcs2p15RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// World Championship Soccer II (Prototype O, 19940303)
-static struct BurnRomInfo md_wcs2p14RomDesc[] = {
- { "world championship soccer ii (prototype o - mar 03, 1994).bin", 0x100000, 0x5a458d42, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wcs2p14)
-STD_ROM_FN(md_wcs2p14)
-
-struct BurnDriver BurnDrvmd_wcs2p14 = {
- "md_wcs2p14", "md_wcs2", NULL, NULL, "1994",
- "World Championship Soccer II (Prototype O, 19940303)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_wcs2p14RomInfo, md_wcs2p14RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// World Championship Soccer II (Prototype P, 19940304)
-static struct BurnRomInfo md_wcs2p13RomDesc[] = {
- { "world championship soccer ii (prototype p - mar 04, 1994).bin", 0x100000, 0x8fe9f6ef, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wcs2p13)
-STD_ROM_FN(md_wcs2p13)
-
-struct BurnDriver BurnDrvmd_wcs2p13 = {
- "md_wcs2p13", "md_wcs2", NULL, NULL, "1994",
- "World Championship Soccer II (Prototype P, 19940304)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_wcs2p13RomInfo, md_wcs2p13RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// World Championship Soccer II (Prototype R, 19940309)
-static struct BurnRomInfo md_wcs2p11RomDesc[] = {
- { "world championship soccer ii (prototype r - mar 09, 1994).bin", 0x100000, 0x94625572, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wcs2p11)
-STD_ROM_FN(md_wcs2p11)
-
-struct BurnDriver BurnDrvmd_wcs2p11 = {
- "md_wcs2p11", "md_wcs2", NULL, NULL, "1994",
- "World Championship Soccer II (Prototype R, 19940309)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_wcs2p11RomInfo, md_wcs2p11RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// World Championship Soccer II (Prototype U, 19940314)
-static struct BurnRomInfo md_wcs2p10RomDesc[] = {
- { "world championship soccer ii (prototype u - mar 14, 1994).bin", 0x100000, 0x43ec107c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wcs2p10)
-STD_ROM_FN(md_wcs2p10)
-
-struct BurnDriver BurnDrvmd_wcs2p10 = {
- "md_wcs2p10", "md_wcs2", NULL, NULL, "1994",
- "World Championship Soccer II (Prototype U, 19940314)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_wcs2p10RomInfo, md_wcs2p10RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// World Championship Soccer II (Prototype Y, 19940318)
-static struct BurnRomInfo md_wcs2p09RomDesc[] = {
- { "world championship soccer ii (prototype y - mar 18, 1994).bin", 0x100000, 0xf6735b61, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wcs2p09)
-STD_ROM_FN(md_wcs2p09)
-
-struct BurnDriver BurnDrvmd_wcs2p09 = {
- "md_wcs2p09", "md_wcs2", NULL, NULL, "1994",
- "World Championship Soccer II (Prototype Y, 19940318)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_wcs2p09RomInfo, md_wcs2p09RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// World Championship Soccer II (USA, Prototype)
-static struct BurnRomInfo md_wcs2upRomDesc[] = {
- { "world championship soccer ii (usa) (beta).bin", 0x100000, 0xc1e21c1a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wcs2up)
-STD_ROM_FN(md_wcs2up)
-
-struct BurnDriver BurnDrvmd_wcs2up = {
- "md_wcs2up", "md_wcs2", NULL, NULL, "1994",
- "World Championship Soccer II (USA, Prototype)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_wcs2upRomInfo, md_wcs2upRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// World Class Leaderboard Golf (Euro)
-static struct BurnRomInfo md_wcleadRomDesc[] = {
- { "mpr-15278.bin", 0x080000, 0xdaca01c3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wclead)
-STD_ROM_FN(md_wclead)
-
-struct BurnDriver BurnDrvmd_wclead = {
- "md_wclead", NULL, NULL, NULL, "1992",
- "World Class Leaderboard Golf (Euro)\0", NULL, "U.S. Gold", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_wcleadRomInfo, md_wcleadRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// World Class Leaderboard Golf (USA)
-static struct BurnRomInfo md_wcleaduRomDesc[] = {
- { "world class leaderboard golf (usa).bin", 0x080000, 0x53434bab, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wcleadu)
-STD_ROM_FN(md_wcleadu)
-
-struct BurnDriver BurnDrvmd_wcleadu = {
- "md_wcleadu", "md_wclead", NULL, NULL, "1992",
- "World Class Leaderboard Golf (USA)\0", NULL, "U.S. Gold", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_wcleaduRomInfo, md_wcleaduRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// World Cup Italia '90 (Euro)
-static struct BurnRomInfo md_wcup90RomDesc[] = {
- { "mpr-13239.bin", 0x040000, 0xdd95f829, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wcup90)
-STD_ROM_FN(md_wcup90)
-
-struct BurnDriver BurnDrvmd_wcup90 = {
- "md_wcup90", NULL, NULL, NULL, "1990",
- "World Cup Italia '90 (Euro)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_wcup90RomInfo, md_wcup90RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// World Championship Soccer (USA, Rev. B) ~ World Cup Soccer (Jpn, Rev. B)
-static struct BurnRomInfo md_wcsRomDesc[] = {
- { "mpr-12607b.bin", 0x040000, 0xbf272bcb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wcs)
-STD_ROM_FN(md_wcs)
-
-struct BurnDriver BurnDrvmd_wcs = {
- "md_wcs", "md_wcup90", NULL, NULL, "1989",
- "World Championship Soccer (USA, Rev. B) ~ World Cup Soccer (Jpn, Rev. B)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_wcsRomInfo, md_wcsRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// World Championship Soccer (USA, v1.2) ~ World Cup Soccer (Jpn, v1.2)
-static struct BurnRomInfo md_wcsaRomDesc[] = {
- { "world cup soccer -- world championship soccer (usa, jpn) (v1.2).bin", 0x040000, 0xbf84ede6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wcsa)
-STD_ROM_FN(md_wcsa)
-
-struct BurnDriver BurnDrvmd_wcsa = {
- "md_wcsa", "md_wcup90", NULL, NULL, "1989",
- "World Championship Soccer (USA, v1.2) ~ World Cup Soccer (Jpn, v1.2)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_wcsaRomInfo, md_wcsaRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// World Championship Soccer (USA) ~ World Cup Soccer (Jpn)
-static struct BurnRomInfo md_wcsbRomDesc[] = {
- { "world cup soccer -- world championship soccer (usa, jpn).bin", 0x040000, 0xb01c3d70, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wcsb)
-STD_ROM_FN(md_wcsb)
-
-struct BurnDriver BurnDrvmd_wcsb = {
- "md_wcsb", "md_wcup90", NULL, NULL, "1989",
- "World Championship Soccer (USA) ~ World Cup Soccer (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_wcsbRomInfo, md_wcsbRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// World Cup USA 94 (Euro, USA, Kor)
-static struct BurnRomInfo md_wcup94RomDesc[] = {
- { "world cup usa 94 (euro, usa, kor).bin", 0x100000, 0x0171b47f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wcup94)
-STD_ROM_FN(md_wcup94)
-
-struct BurnDriver BurnDrvmd_wcup94 = {
- "md_wcup94", NULL, NULL, NULL, "1994",
- "World Cup USA 94 (Euro, USA, Kor)\0", NULL, "U.S. Gold", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_wcup94RomInfo, md_wcup94RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// World Heroes (USA)
-static struct BurnRomInfo md_whRomDesc[] = {
- { "world heroes (usa).bin", 0x200000, 0x0f4d22ec, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wh)
-STD_ROM_FN(md_wh)
-
-struct BurnDriver BurnDrvmd_wh = {
- "md_wh", NULL, NULL, NULL, "1994",
- "World Heroes (USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_whRomInfo, md_whRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// World Heroes (Jpn)
-static struct BurnRomInfo md_whjRomDesc[] = {
- { "world heroes (jpn).bin", 0x200000, 0x56e3ceff, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_whj)
-STD_ROM_FN(md_whj)
-
-struct BurnDriver BurnDrvmd_whj = {
- "md_whj", "md_wh", NULL, NULL, "199?",
- "World Heroes (Jpn)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_whjRomInfo, md_whjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// World Heroes (USA, Prototype, 19940331-B)
-static struct BurnRomInfo md_whp02RomDesc[] = {
- { "world heroes (euro) (prototype - mar 31, 1994 - b).bin", 0x200000, 0xd210aa6e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_whp02)
-STD_ROM_FN(md_whp02)
-
-struct BurnDriver BurnDrvmd_whp02 = {
- "md_whp02", "md_wh", NULL, NULL, "1994",
- "World Heroes (USA, Prototype, 19940331-B)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_whp02RomInfo, md_whp02RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// World Heroes (USA, Prototype, 19940331)
-static struct BurnRomInfo md_whp01RomDesc[] = {
- { "world heroes (euro) (prototype - mar 31, 1994).bin", 0x200000, 0x92e1bf14, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_whp01)
-STD_ROM_FN(md_whp01)
-
-struct BurnDriver BurnDrvmd_whp01 = {
- "md_whp01", "md_wh", NULL, NULL, "1994",
- "World Heroes (USA, Prototype, 19940331)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_whp01RomInfo, md_whp01RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// World Heroes (Jpn, Prototype, 19940408)
-static struct BurnRomInfo md_whjp4RomDesc[] = {
- { "world heroes (jpn) (prototype - apr 08, 1994).bin", 0x200000, 0x2bea7215, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_whjp4)
-STD_ROM_FN(md_whjp4)
-
-struct BurnDriver BurnDrvmd_whjp4 = {
- "md_whjp4", "md_wh", NULL, NULL, "1994",
- "World Heroes (Jpn, Prototype, 19940408)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_whjp4RomInfo, md_whjp4RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// World Heroes (Jpn, Prototype, 19940415)
-static struct BurnRomInfo md_whjp3RomDesc[] = {
- { "world heroes (jpn) (prototype - apr 15, 1994).bin", 0x200000, 0x6dec07b3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_whjp3)
-STD_ROM_FN(md_whjp3)
-
-struct BurnDriver BurnDrvmd_whjp3 = {
- "md_whjp3", "md_wh", NULL, NULL, "1994",
- "World Heroes (Jpn, Prototype, 19940415)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_whjp3RomInfo, md_whjp3RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// World Heroes (Jpn, Prototype, 19940420-B)
-static struct BurnRomInfo md_whjp2RomDesc[] = {
- { "world heroes (jpn) (prototype - apr 20, 1994 - b).bin", 0x200000, 0xf5ffb191, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_whjp2)
-STD_ROM_FN(md_whjp2)
-
-struct BurnDriver BurnDrvmd_whjp2 = {
- "md_whjp2", "md_wh", NULL, NULL, "1994",
- "World Heroes (Jpn, Prototype, 19940420-B)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_whjp2RomInfo, md_whjp2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// World Heroes (Jpn, Prototype, 19940420, broken - C05 missing)
-static struct BurnRomInfo md_whjp1RomDesc[] = {
- { "world heroes (jpn) (prototype - apr 20, 1994) (broken - c05 missing).bin", 0x200000, 0xb43b518c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_whjp1)
-STD_ROM_FN(md_whjp1)
-
-struct BurnDriver BurnDrvmd_whjp1 = {
- "md_whjp1", "md_wh", NULL, NULL, "1994",
- "World Heroes (Jpn, Prototype, 19940420, broken - C05 missing)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_whjp1RomInfo, md_whjp1RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// World Heroes (Jpn, Prototype, 19940330)
-static struct BurnRomInfo md_whjp5RomDesc[] = {
- { "world heroes (jpn) (prototype - mar 30, 1994).bin", 0x200000, 0x3f93181a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_whjp5)
-STD_ROM_FN(md_whjp5)
-
-struct BurnDriver BurnDrvmd_whjp5 = {
- "md_whjp5", "md_wh", NULL, NULL, "1994",
- "World Heroes (Jpn, Prototype, 19940330)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_whjp5RomInfo, md_whjp5RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// World Heroes (USA, Prototype, 19940223)
-static struct BurnRomInfo md_whp13RomDesc[] = {
- { "world heroes (usa) (prototype - feb 23, 1994).bin", 0x200000, 0xf5db477e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_whp13)
-STD_ROM_FN(md_whp13)
-
-struct BurnDriver BurnDrvmd_whp13 = {
- "md_whp13", "md_wh", NULL, NULL, "1994",
- "World Heroes (USA, Prototype, 19940223)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_whp13RomInfo, md_whp13RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// World Heroes (USA, Prototype, 19940303)
-static struct BurnRomInfo md_whp12RomDesc[] = {
- { "world heroes (usa) (prototype - mar 03, 1994).bin", 0x200000, 0x24a63aef, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_whp12)
-STD_ROM_FN(md_whp12)
-
-struct BurnDriver BurnDrvmd_whp12 = {
- "md_whp12", "md_wh", NULL, NULL, "1994",
- "World Heroes (USA, Prototype, 19940303)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_whp12RomInfo, md_whp12RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// World Heroes (USA, Prototype, 19940307)
-static struct BurnRomInfo md_whp11RomDesc[] = {
- { "world heroes (usa) (prototype - mar 07, 1994).bin", 0x200000, 0x45c29350, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_whp11)
-STD_ROM_FN(md_whp11)
-
-struct BurnDriver BurnDrvmd_whp11 = {
- "md_whp11", "md_wh", NULL, NULL, "1994",
- "World Heroes (USA, Prototype, 19940307)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_whp11RomInfo, md_whp11RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// World Heroes (USA, Prototype, 19940309)
-static struct BurnRomInfo md_whp10RomDesc[] = {
- { "world heroes (usa) (prototype - mar 09, 1994).bin", 0x200000, 0x2c7f9e64, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_whp10)
-STD_ROM_FN(md_whp10)
-
-struct BurnDriver BurnDrvmd_whp10 = {
- "md_whp10", "md_wh", NULL, NULL, "1994",
- "World Heroes (USA, Prototype, 19940309)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_whp10RomInfo, md_whp10RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// World Heroes (USA, Prototype, 19940315)
-static struct BurnRomInfo md_whp09RomDesc[] = {
- { "world heroes (usa) (prototype - mar 15, 1994).bin", 0x200000, 0x2c0b2f4f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_whp09)
-STD_ROM_FN(md_whp09)
-
-struct BurnDriver BurnDrvmd_whp09 = {
- "md_whp09", "md_wh", NULL, NULL, "1994",
- "World Heroes (USA, Prototype, 19940315)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_whp09RomInfo, md_whp09RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// World Heroes (USA, Prototype, 19940316)
-static struct BurnRomInfo md_whp08RomDesc[] = {
- { "world heroes (usa) (prototype - mar 16, 1994).bin", 0x200000, 0x19c74e2a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_whp08)
-STD_ROM_FN(md_whp08)
-
-struct BurnDriver BurnDrvmd_whp08 = {
- "md_whp08", "md_wh", NULL, NULL, "1994",
- "World Heroes (USA, Prototype, 19940316)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_whp08RomInfo, md_whp08RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// World Heroes (USA, Prototype, 19940318)
-static struct BurnRomInfo md_whp07RomDesc[] = {
- { "world heroes (usa) (prototype - mar 18, 1994).bin", 0x200000, 0x2bc2a6bb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_whp07)
-STD_ROM_FN(md_whp07)
-
-struct BurnDriver BurnDrvmd_whp07 = {
- "md_whp07", "md_wh", NULL, NULL, "1994",
- "World Heroes (USA, Prototype, 19940318)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_whp07RomInfo, md_whp07RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// World Heroes (USA, Prototype, 19940322, broken - C07 missing)
-static struct BurnRomInfo md_whp06RomDesc[] = {
- { "world heroes (usa) (prototype - mar 22, 1994) (broken - c07 missing).bin", 0x200000, 0x5c3c0931, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_whp06)
-STD_ROM_FN(md_whp06)
-
-struct BurnDriver BurnDrvmd_whp06 = {
- "md_whp06", "md_wh", NULL, NULL, "1994",
- "World Heroes (USA, Prototype, 19940322, broken - C07 missing)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_whp06RomInfo, md_whp06RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// World Heroes (USA, Prototype, 19940323)
-static struct BurnRomInfo md_whp05RomDesc[] = {
- { "world heroes (usa) (prototype - mar 23, 1994).bin", 0x200000, 0x587e6739, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_whp05)
-STD_ROM_FN(md_whp05)
-
-struct BurnDriver BurnDrvmd_whp05 = {
- "md_whp05", "md_wh", NULL, NULL, "1994",
- "World Heroes (USA, Prototype, 19940323)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_whp05RomInfo, md_whp05RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// World Heroes (USA, Prototype, 19940324)
-static struct BurnRomInfo md_whp04RomDesc[] = {
- { "world heroes (usa) (prototype - mar 24, 1994).bin", 0x200000, 0x8a656942, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_whp04)
-STD_ROM_FN(md_whp04)
-
-struct BurnDriver BurnDrvmd_whp04 = {
- "md_whp04", "md_wh", NULL, NULL, "1994",
- "World Heroes (USA, Prototype, 19940324)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_whp04RomInfo, md_whp04RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// World Heroes (USA, Prototype, 19940330)
-static struct BurnRomInfo md_whp03RomDesc[] = {
- { "world heroes (usa) (prototype - mar 30, 1994).bin", 0x200000, 0x50c797cb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_whp03)
-STD_ROM_FN(md_whp03)
-
-struct BurnDriver BurnDrvmd_whp03 = {
- "md_whp03", "md_wh", NULL, NULL, "1994",
- "World Heroes (USA, Prototype, 19940330)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_whp03RomInfo, md_whp03RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// World of Illusion Starring Mickey Mouse and Donald Duck (Euro)
-static struct BurnRomInfo md_worldillRomDesc[] = {
- { "mpr-15271.bin", 0x100000, 0x121c6a49, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_worldill)
-STD_ROM_FN(md_worldill)
-
-struct BurnDriver BurnDrvmd_worldill = {
- "md_worldill", NULL, NULL, NULL, "1992",
- "World of Illusion Starring Mickey Mouse and Donald Duck (Euro)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_worldillRomInfo, md_worldillRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// World of Illusion - Fushigi na Magic Box (Jpn)
-static struct BurnRomInfo md_worldilljRomDesc[] = {
- { "world of illusion - fushigi na magic box (jpn).bin", 0x100000, 0xcb9ee238, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_worldillj)
-STD_ROM_FN(md_worldillj)
-
-struct BurnDriver BurnDrvmd_worldillj = {
- "md_worldillj", "md_worldill", NULL, NULL, "1992",
- "World of Illusion - Fushigi na Magic Box (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_worldilljRomInfo, md_worldilljRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// World of Illusion - Fushigi na Magic Box (Jpn, Prototype)
-static struct BurnRomInfo md_worldilljpRomDesc[] = {
- { "world of illusion - fushigi na magic box (jpn) (beta).bin", 0x100000, 0x577f680f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_worldilljp)
-STD_ROM_FN(md_worldilljp)
-
-struct BurnDriver BurnDrvmd_worldilljp = {
- "md_worldilljp", "md_worldill", NULL, NULL, "1992",
- "World of Illusion - Fushigi na Magic Box (Jpn, Prototype)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_worldilljpRomInfo, md_worldilljpRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// World of Illusion Starring Mickey Mouse and Donald Duck (USA, Kor)
-static struct BurnRomInfo md_worldilluRomDesc[] = {
- { "world of illusion starring mickey mouse and donald duck (usa, kor).bin", 0x100000, 0x921ebd1c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_worldillu)
-STD_ROM_FN(md_worldillu)
-
-struct BurnDriver BurnDrvmd_worldillu = {
- "md_worldillu", "md_worldill", NULL, NULL, "1992",
- "World of Illusion Starring Mickey Mouse and Donald Duck (USA, Kor)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_worldilluRomInfo, md_worldilluRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// World Series Baseball '95 (USA)
-static struct BurnRomInfo md_wsb95RomDesc[] = {
- { "world series baseball '95 (usa).bin", 0x300000, 0x25130077, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wsb95)
-STD_ROM_FN(md_wsb95)
-
-struct BurnDriver BurnDrvmd_wsb95 = {
- "md_wsb95", NULL, NULL, NULL, "1995",
- "World Series Baseball '95 (USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_wsb95RomInfo, md_wsb95RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// World Series Baseball '95 (USA, Prototype, 19941208)
-static struct BurnRomInfo md_wsb95p23RomDesc[] = {
- { "world series baseball '95 (prototype - dec 08, 1994).bin", 0x300000, 0x8846b050, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wsb95p23)
-STD_ROM_FN(md_wsb95p23)
-
-struct BurnDriver BurnDrvmd_wsb95p23 = {
- "md_wsb95p23", "md_wsb95", NULL, NULL, "1994",
- "World Series Baseball '95 (USA, Prototype, 19941208)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_wsb95p23RomInfo, md_wsb95p23RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// World Series Baseball '95 (USA, Prototype, 19941214)
-static struct BurnRomInfo md_wsb95p22RomDesc[] = {
- { "world series baseball '95 (prototype - dec 14, 1994).bin", 0x300000, 0x385be354, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wsb95p22)
-STD_ROM_FN(md_wsb95p22)
-
-struct BurnDriver BurnDrvmd_wsb95p22 = {
- "md_wsb95p22", "md_wsb95", NULL, NULL, "1994",
- "World Series Baseball '95 (USA, Prototype, 19941214)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_wsb95p22RomInfo, md_wsb95p22RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// World Series Baseball '95 (USA, Prototype, 19941228-SB)
-static struct BurnRomInfo md_wsb95p21RomDesc[] = {
- { "world series baseball '95 (prototype - dec 28, 1994 - sb).bin", 0x300000, 0x9e6dbc7c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wsb95p21)
-STD_ROM_FN(md_wsb95p21)
-
-struct BurnDriver BurnDrvmd_wsb95p21 = {
- "md_wsb95p21", "md_wsb95", NULL, NULL, "1994",
- "World Series Baseball '95 (USA, Prototype, 19941228-SB)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_wsb95p21RomInfo, md_wsb95p21RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// World Series Baseball '95 (USA, Prototype, 19950202)
-static struct BurnRomInfo md_wsb95p09RomDesc[] = {
- { "world series baseball '95 (prototype - feb 02, 1995).bin", 0x300000, 0xa947fe5c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wsb95p09)
-STD_ROM_FN(md_wsb95p09)
-
-struct BurnDriver BurnDrvmd_wsb95p09 = {
- "md_wsb95p09", "md_wsb95", NULL, NULL, "1995",
- "World Series Baseball '95 (USA, Prototype, 19950202)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_wsb95p09RomInfo, md_wsb95p09RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// World Series Baseball '95 (USA, Prototype, 19950203)
-static struct BurnRomInfo md_wsb95p08RomDesc[] = {
- { "world series baseball '95 (prototype - feb 03, 1995).bin", 0x300000, 0x1f3754fc, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wsb95p08)
-STD_ROM_FN(md_wsb95p08)
-
-struct BurnDriver BurnDrvmd_wsb95p08 = {
- "md_wsb95p08", "md_wsb95", NULL, NULL, "1995",
- "World Series Baseball '95 (USA, Prototype, 19950203)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_wsb95p08RomInfo, md_wsb95p08RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// World Series Baseball '95 (USA, Prototype, 19950207)
-static struct BurnRomInfo md_wsb95p07RomDesc[] = {
- { "world series baseball '95 (prototype - feb 07, 1995).bin", 0x300000, 0xe4056559, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wsb95p07)
-STD_ROM_FN(md_wsb95p07)
-
-struct BurnDriver BurnDrvmd_wsb95p07 = {
- "md_wsb95p07", "md_wsb95", NULL, NULL, "1995",
- "World Series Baseball '95 (USA, Prototype, 19950207)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_wsb95p07RomInfo, md_wsb95p07RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// World Series Baseball '95 (USA, Prototype, 19950209-B)
-static struct BurnRomInfo md_wsb95p06RomDesc[] = {
- { "world series baseball '95 (prototype - feb 09, 1995 - b).bin", 0x300000, 0x33bb9eda, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wsb95p06)
-STD_ROM_FN(md_wsb95p06)
-
-struct BurnDriver BurnDrvmd_wsb95p06 = {
- "md_wsb95p06", "md_wsb95", NULL, NULL, "1995",
- "World Series Baseball '95 (USA, Prototype, 19950209-B)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_wsb95p06RomInfo, md_wsb95p06RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// World Series Baseball '95 (USA, Prototype, 19950209)
-static struct BurnRomInfo md_wsb95p05RomDesc[] = {
- { "world series baseball '95 (prototype - feb 09, 1995).bin", 0x300000, 0x83be98cf, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wsb95p05)
-STD_ROM_FN(md_wsb95p05)
-
-struct BurnDriver BurnDrvmd_wsb95p05 = {
- "md_wsb95p05", "md_wsb95", NULL, NULL, "1995",
- "World Series Baseball '95 (USA, Prototype, 19950209)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_wsb95p05RomInfo, md_wsb95p05RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// World Series Baseball '95 (USA, Prototype, 19950211)
-static struct BurnRomInfo md_wsb95p04RomDesc[] = {
- { "world series baseball '95 (prototype - feb 11, 1995).bin", 0x300000, 0xa0664fe9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wsb95p04)
-STD_ROM_FN(md_wsb95p04)
-
-struct BurnDriver BurnDrvmd_wsb95p04 = {
- "md_wsb95p04", "md_wsb95", NULL, NULL, "1995",
- "World Series Baseball '95 (USA, Prototype, 19950211)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_wsb95p04RomInfo, md_wsb95p04RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// World Series Baseball '95 (USA, Prototype, 19950212)
-static struct BurnRomInfo md_wsb95p03RomDesc[] = {
- { "world series baseball '95 (prototype - feb 12, 1995).bin", 0x300000, 0x45da8f18, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wsb95p03)
-STD_ROM_FN(md_wsb95p03)
-
-struct BurnDriver BurnDrvmd_wsb95p03 = {
- "md_wsb95p03", "md_wsb95", NULL, NULL, "1995",
- "World Series Baseball '95 (USA, Prototype, 19950212)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_wsb95p03RomInfo, md_wsb95p03RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// World Series Baseball '95 (USA, Prototype, 19950213)
-static struct BurnRomInfo md_wsb95p02RomDesc[] = {
- { "world series baseball '95 (prototype - feb 13, 1995).bin", 0x300000, 0x9f30ae30, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wsb95p02)
-STD_ROM_FN(md_wsb95p02)
-
-struct BurnDriver BurnDrvmd_wsb95p02 = {
- "md_wsb95p02", "md_wsb95", NULL, NULL, "1995",
- "World Series Baseball '95 (USA, Prototype, 19950213)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_wsb95p02RomInfo, md_wsb95p02RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// World Series Baseball '95 (USA, Prototype, 19950214)
-static struct BurnRomInfo md_wsb95p01RomDesc[] = {
- { "world series baseball '95 (prototype - feb 14, 1995).bin", 0x300000, 0xf300a857, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wsb95p01)
-STD_ROM_FN(md_wsb95p01)
-
-struct BurnDriver BurnDrvmd_wsb95p01 = {
- "md_wsb95p01", "md_wsb95", NULL, NULL, "1995",
- "World Series Baseball '95 (USA, Prototype, 19950214)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_wsb95p01RomInfo, md_wsb95p01RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// World Series Baseball '95 (USA, Prototype, 19950101-TST)
-static struct BurnRomInfo md_wsb95p20RomDesc[] = {
- { "world series baseball '95 (prototype - jan 01, 1995 - tst).bin", 0x300000, 0xc7574372, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wsb95p20)
-STD_ROM_FN(md_wsb95p20)
-
-struct BurnDriver BurnDrvmd_wsb95p20 = {
- "md_wsb95p20", "md_wsb95", NULL, NULL, "1995",
- "World Series Baseball '95 (USA, Prototype, 19950101-TST)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_wsb95p20RomInfo, md_wsb95p20RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// World Series Baseball '95 (USA, Prototype, 19950103-TST)
-static struct BurnRomInfo md_wsb95p19RomDesc[] = {
- { "world series baseball '95 (prototype - jan 03, 1995 - tst).bin", 0x300000, 0x498363f7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wsb95p19)
-STD_ROM_FN(md_wsb95p19)
-
-struct BurnDriver BurnDrvmd_wsb95p19 = {
- "md_wsb95p19", "md_wsb95", NULL, NULL, "1995",
- "World Series Baseball '95 (USA, Prototype, 19950103-TST)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_wsb95p19RomInfo, md_wsb95p19RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// World Series Baseball '95 (USA, Prototype, 19950105)
-static struct BurnRomInfo md_wsb95p18RomDesc[] = {
- { "world series baseball '95 (prototype - jan 05, 1995).bin", 0x300000, 0x1820abfb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wsb95p18)
-STD_ROM_FN(md_wsb95p18)
-
-struct BurnDriver BurnDrvmd_wsb95p18 = {
- "md_wsb95p18", "md_wsb95", NULL, NULL, "1995",
- "World Series Baseball '95 (USA, Prototype, 19950105)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_wsb95p18RomInfo, md_wsb95p18RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// World Series Baseball '95 (USA, Prototype, 19950109-TST)
-static struct BurnRomInfo md_wsb95p17RomDesc[] = {
- { "world series baseball '95 (prototype - jan 09, 1995 - tst).bin", 0x300000, 0x3de7cdbc, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wsb95p17)
-STD_ROM_FN(md_wsb95p17)
-
-struct BurnDriver BurnDrvmd_wsb95p17 = {
- "md_wsb95p17", "md_wsb95", NULL, NULL, "1995",
- "World Series Baseball '95 (USA, Prototype, 19950109-TST)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_wsb95p17RomInfo, md_wsb95p17RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// World Series Baseball '95 (USA, Prototype, 19950110)
-static struct BurnRomInfo md_wsb95p16RomDesc[] = {
- { "world series baseball '95 (prototype - jan 10, 1995).bin", 0x300000, 0xac2772b0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wsb95p16)
-STD_ROM_FN(md_wsb95p16)
-
-struct BurnDriver BurnDrvmd_wsb95p16 = {
- "md_wsb95p16", "md_wsb95", NULL, NULL, "1995",
- "World Series Baseball '95 (USA, Prototype, 19950110)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_wsb95p16RomInfo, md_wsb95p16RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// World Series Baseball '95 (USA, Prototype, 19950114-RM)
-static struct BurnRomInfo md_wsb95p15RomDesc[] = {
- { "world series baseball '95 (prototype - jan 14, 1995 - rm).bin", 0x301655, 0xf70b07cf, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wsb95p15)
-STD_ROM_FN(md_wsb95p15)
-
-struct BurnDriver BurnDrvmd_wsb95p15 = {
- "md_wsb95p15", "md_wsb95", NULL, NULL, "1995",
- "World Series Baseball '95 (USA, Prototype, 19950114-RM)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_wsb95p15RomInfo, md_wsb95p15RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// World Series Baseball '95 (USA, Prototype, 19950116)
-static struct BurnRomInfo md_wsb95p14RomDesc[] = {
- { "world series baseball '95 (prototype - jan 16, 1995).bin", 0x300000, 0xf0e22b21, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wsb95p14)
-STD_ROM_FN(md_wsb95p14)
-
-struct BurnDriver BurnDrvmd_wsb95p14 = {
- "md_wsb95p14", "md_wsb95", NULL, NULL, "1995",
- "World Series Baseball '95 (USA, Prototype, 19950116)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_wsb95p14RomInfo, md_wsb95p14RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// World Series Baseball '95 (USA, Prototype, 19950118-RM)
-static struct BurnRomInfo md_wsb95p13RomDesc[] = {
- { "world series baseball '95 (prototype - jan 18, 1995 - rm).bin", 0x3023d3, 0x5ce70f8f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wsb95p13)
-STD_ROM_FN(md_wsb95p13)
-
-struct BurnDriver BurnDrvmd_wsb95p13 = {
- "md_wsb95p13", "md_wsb95", NULL, NULL, "1995",
- "World Series Baseball '95 (USA, Prototype, 19950118-RM)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_wsb95p13RomInfo, md_wsb95p13RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// World Series Baseball '95 (USA, Prototype, 19950120)
-static struct BurnRomInfo md_wsb95p12RomDesc[] = {
- { "world series baseball '95 (prototype - jan 20, 1995).bin", 0x300000, 0x16c15e46, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wsb95p12)
-STD_ROM_FN(md_wsb95p12)
-
-struct BurnDriver BurnDrvmd_wsb95p12 = {
- "md_wsb95p12", "md_wsb95", NULL, NULL, "1995",
- "World Series Baseball '95 (USA, Prototype, 19950120)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_wsb95p12RomInfo, md_wsb95p12RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// World Series Baseball '95 (USA, Prototype, 19950125)
-static struct BurnRomInfo md_wsb95p11RomDesc[] = {
- { "world series baseball '95 (prototype - jan 25, 1995).bin", 0x300000, 0xb45d9e33, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wsb95p11)
-STD_ROM_FN(md_wsb95p11)
-
-struct BurnDriver BurnDrvmd_wsb95p11 = {
- "md_wsb95p11", "md_wsb95", NULL, NULL, "1995",
- "World Series Baseball '95 (USA, Prototype, 19950125)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_wsb95p11RomInfo, md_wsb95p11RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// World Series Baseball '95 (USA, Prototype, 19950130)
-static struct BurnRomInfo md_wsb95p10RomDesc[] = {
- { "world series baseball '95 (prototype - jan 30, 1995).bin", 0x300000, 0x6aa76a9d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wsb95p10)
-STD_ROM_FN(md_wsb95p10)
-
-struct BurnDriver BurnDrvmd_wsb95p10 = {
- "md_wsb95p10", "md_wsb95", NULL, NULL, "1995",
- "World Series Baseball '95 (USA, Prototype, 19950130)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_wsb95p10RomInfo, md_wsb95p10RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// World Series Baseball '96 (USA)
-static struct BurnRomInfo md_wsb96RomDesc[] = {
- { "world series baseball '96 (usa).bin", 0x300000, 0x04ee8272, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wsb96)
-STD_ROM_FN(md_wsb96)
-
-struct BurnDriver BurnDrvmd_wsb96 = {
- "md_wsb96", NULL, NULL, NULL, "1996",
- "World Series Baseball '96 (USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_wsb96RomInfo, md_wsb96RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// World Series Baseball '98 (USA)
-static struct BurnRomInfo md_wsb98RomDesc[] = {
- { "world series baseball '98 (usa).bin", 0x300000, 0x05b1ab53, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wsb98)
-STD_ROM_FN(md_wsb98)
-
-struct BurnDriver BurnDrvmd_wsb98 = {
- "md_wsb98", NULL, NULL, NULL, "1997",
- "World Series Baseball '98 (USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_wsb98RomInfo, md_wsb98RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// World Series Baseball (USA)
-static struct BurnRomInfo md_wsbRomDesc[] = {
- { "world series baseball (usa).bin", 0x200000, 0x57c1d5ec, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wsb)
-STD_ROM_FN(md_wsb)
-
-struct BurnDriver BurnDrvmd_wsb = {
- "md_wsb", NULL, NULL, NULL, "1994",
- "World Series Baseball (USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_wsbRomInfo, md_wsbRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// World Series Baseball (USA, Prototype, 19931222)
-static struct BurnRomInfo md_wsbp09RomDesc[] = {
- { "world series baseball (prototype - dec 22, 1993).bin", 0x1fc05d, 0x0dc0558d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wsbp09)
-STD_ROM_FN(md_wsbp09)
-
-struct BurnDriver BurnDrvmd_wsbp09 = {
- "md_wsbp09", "md_wsb", NULL, NULL, "1993",
- "World Series Baseball (USA, Prototype, 19931222)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_wsbp09RomInfo, md_wsbp09RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// World Series Baseball (USA, Prototype, 19931226)
-static struct BurnRomInfo md_wsbp08RomDesc[] = {
- { "world series baseball (prototype - dec 26, 1993).bin", 0x200000, 0x472e6a58, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wsbp08)
-STD_ROM_FN(md_wsbp08)
-
-struct BurnDriver BurnDrvmd_wsbp08 = {
- "md_wsbp08", "md_wsb", NULL, NULL, "1993",
- "World Series Baseball (USA, Prototype, 19931226)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_wsbp08RomInfo, md_wsbp08RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// World Series Baseball (USA, Prototype, 19931229)
-static struct BurnRomInfo md_wsbp07RomDesc[] = {
- { "world series baseball (prototype - dec 29, 1993).bin", 0x200000, 0xed949936, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wsbp07)
-STD_ROM_FN(md_wsbp07)
-
-struct BurnDriver BurnDrvmd_wsbp07 = {
- "md_wsbp07", "md_wsb", NULL, NULL, "1993",
- "World Series Baseball (USA, Prototype, 19931229)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_wsbp07RomInfo, md_wsbp07RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// World Series Baseball (USA, Prototype, 19940218)
-static struct BurnRomInfo md_wsbp03RomDesc[] = {
- { "world series baseball (prototype - feb 18, 1994).bin", 0x200000, 0x3cadfc50, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wsbp03)
-STD_ROM_FN(md_wsbp03)
-
-struct BurnDriver BurnDrvmd_wsbp03 = {
- "md_wsbp03", "md_wsb", NULL, NULL, "1994",
- "World Series Baseball (USA, Prototype, 19940218)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_wsbp03RomInfo, md_wsbp03RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// World Series Baseball (USA, Prototype, 19940103)
-static struct BurnRomInfo md_wsbp06RomDesc[] = {
- { "world series baseball (prototype - jan 03, 1994).bin", 0x200000, 0x4b53f035, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wsbp06)
-STD_ROM_FN(md_wsbp06)
-
-struct BurnDriver BurnDrvmd_wsbp06 = {
- "md_wsbp06", "md_wsb", NULL, NULL, "1994",
- "World Series Baseball (USA, Prototype, 19940103)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_wsbp06RomInfo, md_wsbp06RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// World Series Baseball (USA, Prototype, 19940106)
-static struct BurnRomInfo md_wsbp05RomDesc[] = {
- { "world series baseball (prototype - jan 06, 1994).bin", 0x200000, 0xb07de2d3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wsbp05)
-STD_ROM_FN(md_wsbp05)
-
-struct BurnDriver BurnDrvmd_wsbp05 = {
- "md_wsbp05", "md_wsb", NULL, NULL, "1994",
- "World Series Baseball (USA, Prototype, 19940106)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_wsbp05RomInfo, md_wsbp05RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// World Series Baseball (USA, Prototype, 19940116)
-static struct BurnRomInfo md_wsbp04RomDesc[] = {
- { "world series baseball (prototype - jan 16, 1994).bin", 0x200000, 0x5322133e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wsbp04)
-STD_ROM_FN(md_wsbp04)
-
-struct BurnDriver BurnDrvmd_wsbp04 = {
- "md_wsbp04", "md_wsb", NULL, NULL, "1994",
- "World Series Baseball (USA, Prototype, 19940116)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_wsbp04RomInfo, md_wsbp04RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// World Series Baseball (USA, Prototype, 19940304)
-static struct BurnRomInfo md_wsbp02RomDesc[] = {
- { "world series baseball (prototype - mar 04, 1994).bin", 0x1feaa2, 0xedda44a5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wsbp02)
-STD_ROM_FN(md_wsbp02)
-
-struct BurnDriver BurnDrvmd_wsbp02 = {
- "md_wsbp02", "md_wsb", NULL, NULL, "1994",
- "World Series Baseball (USA, Prototype, 19940304)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_wsbp02RomInfo, md_wsbp02RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// World Series Baseball (USA, Prototype, 19940527)
-static struct BurnRomInfo md_wsbp01RomDesc[] = {
- { "world series baseball (prototype - may 27, 1994).bin", 0x200000, 0xe473728a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wsbp01)
-STD_ROM_FN(md_wsbp01)
-
-struct BurnDriver BurnDrvmd_wsbp01 = {
- "md_wsbp01", "md_wsb", NULL, NULL, "1994",
- "World Series Baseball (USA, Prototype, 19940527)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_wsbp01RomInfo, md_wsbp01RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// World Series Baseball (USA, Prototype, 19931001)
-static struct BurnRomInfo md_wsbp10RomDesc[] = {
- { "world series baseball (prototype - oct 01, 1993).bin", 0x200000, 0x4f7ab92e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wsbp10)
-STD_ROM_FN(md_wsbp10)
-
-struct BurnDriver BurnDrvmd_wsbp10 = {
- "md_wsbp10", "md_wsb", NULL, NULL, "1993",
- "World Series Baseball (USA, Prototype, 19931001)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_wsbp10RomInfo, md_wsbp10RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Worms (Euro)
-static struct BurnRomInfo md_wormsRomDesc[] = {
- { "worms (euro).bin", 0x200000, 0xb9a8b299, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_worms)
-STD_ROM_FN(md_worms)
-
-struct BurnDriver BurnDrvmd_worms = {
- "md_worms", NULL, NULL, NULL, "1995",
- "Worms (Euro)\0", NULL, "Ocean", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_wormsRomInfo, md_wormsRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Worms (Euro, Prototype)
-static struct BurnRomInfo md_wormspRomDesc[] = {
- { "worms (euro) (beta).bin", 0x200000, 0x1d191694, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wormsp)
-STD_ROM_FN(md_wormsp)
-
-struct BurnDriver BurnDrvmd_wormsp = {
- "md_wormsp", "md_worms", NULL, NULL, "1995",
- "Worms (Euro, Prototype)\0", NULL, "Ocean", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_wormspRomInfo, md_wormspRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Wrestle War (Euro, Jpn)
-static struct BurnRomInfo md_wrestwarRomDesc[] = {
- { "mpr-14025.bin", 0x080000, 0x2d162a85, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wrestwar)
-STD_ROM_FN(md_wrestwar)
-
-struct BurnDriver BurnDrvmd_wrestwar = {
- "md_wrestwar", NULL, NULL, NULL, "1991",
- "Wrestle War (Euro, Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_wrestwarRomInfo, md_wrestwarRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Wrestle War (Jpn, Prototype)
-static struct BurnRomInfo md_wrestwarpRomDesc[] = {
- { "wrestle war (jpn) (beta).bin", 0x080000, 0x1cdee87b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wrestwarp)
-STD_ROM_FN(md_wrestwarp)
-
-struct BurnDriver BurnDrvmd_wrestwarp = {
- "md_wrestwarp", "md_wrestwar", NULL, NULL, "1991",
- "Wrestle War (Jpn, Prototype)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_wrestwarpRomInfo, md_wrestwarpRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Wu Kong Wai Zhuan (Chi)
-static struct BurnRomInfo md_wukongRomDesc[] = {
- { "wu kong wai zhuan (chi) (unl).bin", 0x200000, 0x880a916e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wukong)
-STD_ROM_FN(md_wukong)
-
-struct BurnDriver BurnDrvmd_wukong = {
- "md_wukong", NULL, NULL, NULL, "1996",
- "Wu Kong Wai Zhuan (Chi)\0", NULL, "Ming", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_wukongRomInfo, md_wukongRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// WWF Raw (World)
-static struct BurnRomInfo md_wwfrawRomDesc[] = {
- { "wwf raw (world).bin", 0x300000, 0x4ef5d411, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wwfraw)
-STD_ROM_FN(md_wwfraw)
-
-struct BurnDriver BurnDrvmd_wwfraw = {
- "md_wwfraw", NULL, NULL, NULL, "1994",
- "WWF Raw (World)\0", NULL, "Acclaim Entertainment", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_wwfrawRomInfo, md_wwfrawRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// WWF Royal Rumble (World)
-static struct BurnRomInfo md_wwfroyalRomDesc[] = {
- { "wwf royal rumble (world).bin", 0x200000, 0xb69dc53e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wwfroyal)
-STD_ROM_FN(md_wwfroyal)
-
-struct BurnDriver BurnDrvmd_wwfroyal = {
- "md_wwfroyal", NULL, NULL, NULL, "1994",
- "WWF Royal Rumble (World)\0", NULL, "Flying Edge", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_wwfroyalRomInfo, md_wwfroyalRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// WWF Super WrestleMania (Euro, USA)
-static struct BurnRomInfo md_wwfsupRomDesc[] = {
- { "mpr-15215.bin", 0x100000, 0xb929d6c5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wwfsup)
-STD_ROM_FN(md_wwfsup)
-
-struct BurnDriver BurnDrvmd_wwfsup = {
- "md_wwfsup", NULL, NULL, NULL, "1992",
- "WWF Super WrestleMania (Euro, USA)\0", NULL, "Flying Edge", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_wwfsupRomInfo, md_wwfsupRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// WWF WrestleMania - The Arcade Game (Euro, USA)
-static struct BurnRomInfo md_wwfagRomDesc[] = {
- { "9539d+9540d.bin", 0x400000, 0xa5d023f9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wwfag)
-STD_ROM_FN(md_wwfag)
-
-struct BurnDriver BurnDrvmd_wwfag = {
- "md_wwfag", NULL, NULL, NULL, "1995",
- "WWF WrestleMania - The Arcade Game (Euro, USA)\0", NULL, "Acclaim Entertainment", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_wwfagRomInfo, md_wwfagRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// WWF WrestleMania - The Arcade Game (USA, Prototype)
-static struct BurnRomInfo md_wwfagpRomDesc[] = {
- { "wwf wrestlemania - the arcade game (usa) (alpha).bin", 0x040000, 0x719d6155, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_wwfagp)
-STD_ROM_FN(md_wwfagp)
-
-struct BurnDriver BurnDrvmd_wwfagp = {
- "md_wwfagp", "md_wwfag", NULL, NULL, "1995",
- "WWF WrestleMania - The Arcade Game (USA, Prototype)\0", NULL, "Acclaim Entertainment", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_wwfagpRomInfo, md_wwfagpRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// X-Men (Euro)
-static struct BurnRomInfo md_xmenRomDesc[] = {
- { "mpr-15505.bin", 0x100000, 0x0b78ca97, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_xmen)
-STD_ROM_FN(md_xmen)
-
-struct BurnDriver BurnDrvmd_xmen = {
- "md_xmen", NULL, NULL, NULL, "1993",
- "X-Men (Euro)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_xmenRomInfo, md_xmenRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// X-Men (USA)
-static struct BurnRomInfo md_xmenuRomDesc[] = {
- { "x-men (usa).bin", 0x100000, 0xf71b21b4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_xmenu)
-STD_ROM_FN(md_xmenu)
-
-struct BurnDriver BurnDrvmd_xmenu = {
- "md_xmenu", "md_xmen", NULL, NULL, "1993",
- "X-Men (USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_xmenuRomInfo, md_xmenuRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// X-Men 2 - Clone Wars (Euro, USA)
-static struct BurnRomInfo md_xmen2RomDesc[] = {
- { "x-men 2 - clone wars (euro, usa).bin", 0x200000, 0x710bc628, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_xmen2)
-STD_ROM_FN(md_xmen2)
-
-struct BurnDriver BurnDrvmd_xmen2 = {
- "md_xmen2", NULL, NULL, NULL, "1995",
- "X-Men 2 - Clone Wars (Euro, USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_xmen2RomInfo, md_xmen2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// X-Men 2 - Clone Wars (Prototype, 19941202)
-static struct BurnRomInfo md_xmen2p12RomDesc[] = {
- { "x-men 2 - clone wars (prototype - dec 02, 1994).bin", 0x1fbe22, 0x7ad7a4e9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_xmen2p12)
-STD_ROM_FN(md_xmen2p12)
-
-struct BurnDriver BurnDrvmd_xmen2p12 = {
- "md_xmen2p12", "md_xmen2", NULL, NULL, "1994",
- "X-Men 2 - Clone Wars (Prototype, 19941202)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_xmen2p12RomInfo, md_xmen2p12RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// X-Men 2 - Clone Wars (Prototype, 19941203)
-static struct BurnRomInfo md_xmen2p11RomDesc[] = {
- { "x-men 2 - clone wars (prototype - dec 03, 1994).bin", 0x200000, 0x669b939c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_xmen2p11)
-STD_ROM_FN(md_xmen2p11)
-
-struct BurnDriver BurnDrvmd_xmen2p11 = {
- "md_xmen2p11", "md_xmen2", NULL, NULL, "1994",
- "X-Men 2 - Clone Wars (Prototype, 19941203)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_xmen2p11RomInfo, md_xmen2p11RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// X-Men 2 - Clone Wars (Prototype, 19941206)
-static struct BurnRomInfo md_xmen2p10RomDesc[] = {
- { "x-men 2 - clone wars (prototype - dec 06, 1994).bin", 0x200000, 0x5b1d0cf5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_xmen2p10)
-STD_ROM_FN(md_xmen2p10)
-
-struct BurnDriver BurnDrvmd_xmen2p10 = {
- "md_xmen2p10", "md_xmen2", NULL, NULL, "1994",
- "X-Men 2 - Clone Wars (Prototype, 19941206)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_xmen2p10RomInfo, md_xmen2p10RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// X-Men 2 - Clone Wars (Prototype, 19941207)
-static struct BurnRomInfo md_xmen2p09RomDesc[] = {
- { "x-men 2 - clone wars (prototype - dec 07, 1994).bin", 0x200000, 0x246a30da, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_xmen2p09)
-STD_ROM_FN(md_xmen2p09)
-
-struct BurnDriver BurnDrvmd_xmen2p09 = {
- "md_xmen2p09", "md_xmen2", NULL, NULL, "1994",
- "X-Men 2 - Clone Wars (Prototype, 19941207)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_xmen2p09RomInfo, md_xmen2p09RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// X-Men 2 - Clone Wars (Prototype, 19941208)
-static struct BurnRomInfo md_xmen2p08RomDesc[] = {
- { "x-men 2 - clone wars (prototype - dec 08, 1994).bin", 0x1feedc, 0xc6d90b1c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_xmen2p08)
-STD_ROM_FN(md_xmen2p08)
-
-struct BurnDriver BurnDrvmd_xmen2p08 = {
- "md_xmen2p08", "md_xmen2", NULL, NULL, "1994",
- "X-Men 2 - Clone Wars (Prototype, 19941208)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_xmen2p08RomInfo, md_xmen2p08RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// X-Men 2 - Clone Wars (Prototype, 19941209)
-static struct BurnRomInfo md_xmen2p07RomDesc[] = {
- { "x-men 2 - clone wars (prototype - dec 09, 1994).bin", 0x200000, 0x28307b58, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_xmen2p07)
-STD_ROM_FN(md_xmen2p07)
-
-struct BurnDriver BurnDrvmd_xmen2p07 = {
- "md_xmen2p07", "md_xmen2", NULL, NULL, "1994",
- "X-Men 2 - Clone Wars (Prototype, 19941209)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_xmen2p07RomInfo, md_xmen2p07RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// X-Men 2 - Clone Wars (Prototype, 19941210)
-static struct BurnRomInfo md_xmen2p06RomDesc[] = {
- { "x-men 2 - clone wars (prototype - dec 10, 1994).bin", 0x1ffaf0, 0x73e2effe, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_xmen2p06)
-STD_ROM_FN(md_xmen2p06)
-
-struct BurnDriver BurnDrvmd_xmen2p06 = {
- "md_xmen2p06", "md_xmen2", NULL, NULL, "1994",
- "X-Men 2 - Clone Wars (Prototype, 19941210)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_xmen2p06RomInfo, md_xmen2p06RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// X-Men 2 - Clone Wars (Prototype, 19941211-A)
-static struct BurnRomInfo md_xmen2p05RomDesc[] = {
- { "x-men 2 - clone wars (prototype - dec 11, 1994 - a).bin", 0x200000, 0x11415b86, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_xmen2p05)
-STD_ROM_FN(md_xmen2p05)
-
-struct BurnDriver BurnDrvmd_xmen2p05 = {
- "md_xmen2p05", "md_xmen2", NULL, NULL, "1994",
- "X-Men 2 - Clone Wars (Prototype, 19941211-A)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_xmen2p05RomInfo, md_xmen2p05RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// X-Men 2 - Clone Wars (Prototype, 19941211)
-static struct BurnRomInfo md_xmen2p04RomDesc[] = {
- { "x-men 2 - clone wars (prototype - dec 11, 1994).bin", 0x200000, 0x51876259, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_xmen2p04)
-STD_ROM_FN(md_xmen2p04)
-
-struct BurnDriver BurnDrvmd_xmen2p04 = {
- "md_xmen2p04", "md_xmen2", NULL, NULL, "1994",
- "X-Men 2 - Clone Wars (Prototype, 19941211)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_xmen2p04RomInfo, md_xmen2p04RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// X-Men 2 - Clone Wars (Prototype, 19941214)
-static struct BurnRomInfo md_xmen2p03RomDesc[] = {
- { "x-men 2 - clone wars (prototype - dec 14, 1994).bin", 0x200000, 0xcd662de6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_xmen2p03)
-STD_ROM_FN(md_xmen2p03)
-
-struct BurnDriver BurnDrvmd_xmen2p03 = {
- "md_xmen2p03", "md_xmen2", NULL, NULL, "1994",
- "X-Men 2 - Clone Wars (Prototype, 19941214)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_xmen2p03RomInfo, md_xmen2p03RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// X-Men 2 - Clone Wars (Prototype, 19941215)
-static struct BurnRomInfo md_xmen2p02RomDesc[] = {
- { "x-men 2 - clone wars (prototype - dec 15, 1994).bin", 0x1ffe54, 0xa5188e30, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_xmen2p02)
-STD_ROM_FN(md_xmen2p02)
-
-struct BurnDriver BurnDrvmd_xmen2p02 = {
- "md_xmen2p02", "md_xmen2", NULL, NULL, "1994",
- "X-Men 2 - Clone Wars (Prototype, 19941215)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_xmen2p02RomInfo, md_xmen2p02RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// X-Men 2 - Clone Wars (Prototype, 19941216)
-static struct BurnRomInfo md_xmen2p01RomDesc[] = {
- { "x-men 2 - clone wars (prototype - dec 16, 1994).bin", 0x200000, 0xe8c40972, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_xmen2p01)
-STD_ROM_FN(md_xmen2p01)
-
-struct BurnDriver BurnDrvmd_xmen2p01 = {
- "md_xmen2p01", "md_xmen2", NULL, NULL, "1994",
- "X-Men 2 - Clone Wars (Prototype, 19941216)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_xmen2p01RomInfo, md_xmen2p01RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// X-Men 2 - Clone Wars (Prototype, 19940506)
-static struct BurnRomInfo md_xmen2p19RomDesc[] = {
- { "x-men 2 - clone wars (prototype - may 06, 1994).bin", 0x200000, 0xa720ebb4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_xmen2p19)
-STD_ROM_FN(md_xmen2p19)
-
-struct BurnDriver BurnDrvmd_xmen2p19 = {
- "md_xmen2p19", "md_xmen2", NULL, NULL, "1994",
- "X-Men 2 - Clone Wars (Prototype, 19940506)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_xmen2p19RomInfo, md_xmen2p19RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// X-Men 2 - Clone Wars (Prototype, 19940510)
-static struct BurnRomInfo md_xmen2p18RomDesc[] = {
- { "x-men 2 - clone wars (prototype - may 10, 1994).bin", 0x200000, 0x9b5dd185, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_xmen2p18)
-STD_ROM_FN(md_xmen2p18)
-
-struct BurnDriver BurnDrvmd_xmen2p18 = {
- "md_xmen2p18", "md_xmen2", NULL, NULL, "1994",
- "X-Men 2 - Clone Wars (Prototype, 19940510)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_xmen2p18RomInfo, md_xmen2p18RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// X-Men 2 - Clone Wars (Prototype, 19941117)
-static struct BurnRomInfo md_xmen2p16RomDesc[] = {
- { "x-men 2 - clone wars (prototype - nov 17, 1994).bin", 0x200000, 0xd90cd0de, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_xmen2p16)
-STD_ROM_FN(md_xmen2p16)
-
-struct BurnDriver BurnDrvmd_xmen2p16 = {
- "md_xmen2p16", "md_xmen2", NULL, NULL, "1994",
- "X-Men 2 - Clone Wars (Prototype, 19941117)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_xmen2p16RomInfo, md_xmen2p16RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// X-Men 2 - Clone Wars (Prototype, 19941123)
-static struct BurnRomInfo md_xmen2p15RomDesc[] = {
- { "x-men 2 - clone wars (prototype - nov 23, 1994).bin", 0x200000, 0x4386a381, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_xmen2p15)
-STD_ROM_FN(md_xmen2p15)
-
-struct BurnDriver BurnDrvmd_xmen2p15 = {
- "md_xmen2p15", "md_xmen2", NULL, NULL, "1994",
- "X-Men 2 - Clone Wars (Prototype, 19941123)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_xmen2p15RomInfo, md_xmen2p15RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// X-Men 2 - Clone Wars (Prototype, 19941128)
-static struct BurnRomInfo md_xmen2p14RomDesc[] = {
- { "x-men 2 - clone wars (prototype - nov 28, 1994).bin", 0x200000, 0x70383a4d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_xmen2p14)
-STD_ROM_FN(md_xmen2p14)
-
-struct BurnDriver BurnDrvmd_xmen2p14 = {
- "md_xmen2p14", "md_xmen2", NULL, NULL, "1994",
- "X-Men 2 - Clone Wars (Prototype, 19941128)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_xmen2p14RomInfo, md_xmen2p14RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// X-Men 2 - Clone Wars (Prototype, 19941130)
-static struct BurnRomInfo md_xmen2p13RomDesc[] = {
- { "x-men 2 - clone wars (prototype - nov 30, 1994).bin", 0x200000, 0x331dae0a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_xmen2p13)
-STD_ROM_FN(md_xmen2p13)
-
-struct BurnDriver BurnDrvmd_xmen2p13 = {
- "md_xmen2p13", "md_xmen2", NULL, NULL, "1994",
- "X-Men 2 - Clone Wars (Prototype, 19941130)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_xmen2p13RomInfo, md_xmen2p13RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// X-Men 2 - Clone Wars (Prototype, 19941018)
-static struct BurnRomInfo md_xmen2p17RomDesc[] = {
- { "x-men 2 - clone wars (prototype - oct 18, 1994).bin", 0x200000, 0x52cff37d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_xmen2p17)
-STD_ROM_FN(md_xmen2p17)
-
-struct BurnDriver BurnDrvmd_xmen2p17 = {
- "md_xmen2p17", "md_xmen2", NULL, NULL, "1994",
- "X-Men 2 - Clone Wars (Prototype, 19941018)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_xmen2p17RomInfo, md_xmen2p17RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// X-perts (USA)
-static struct BurnRomInfo md_xpertsRomDesc[] = {
- { "x-perts (usa).bin", 0x400000, 0x57e8abfd, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_xperts)
-STD_ROM_FN(md_xperts)
-
-struct BurnDriver BurnDrvmd_xperts = {
- "md_xperts", NULL, NULL, NULL, "1996",
- "X-perts (USA)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_xpertsRomInfo, md_xpertsRomName, NULL, NULL, MegadriveInputInfo, MegadrivePALDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// X-perts (Prototype)
-static struct BurnRomInfo md_xpertspRomDesc[] = {
- { "x-perts (prototype).bin", 0x400000, 0x9d067249, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_xpertsp)
-STD_ROM_FN(md_xpertsp)
-
-struct BurnDriver BurnDrvmd_xpertsp = {
- "md_xpertsp", "md_xperts", NULL, NULL, "1996",
- "X-perts (Prototype)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_xpertspRomInfo, md_xpertspRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// XDR - X Dazedly Ray (Jpn)
-static struct BurnRomInfo md_xdrRomDesc[] = {
- { "xdr - x dazedly ray (jpn).bin", 0x080000, 0xab22d002, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_xdr)
-STD_ROM_FN(md_xdr)
-
-struct BurnDriver BurnDrvmd_xdr = {
- "md_xdr", NULL, NULL, NULL, "1990",
- "XDR - X Dazedly Ray (Jpn)\0", NULL, "Unipac", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_xdrRomInfo, md_xdrRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Xenon 2 - Megablast (Euro)
-static struct BurnRomInfo md_xenon2RomDesc[] = {
- { "mpr-15064.bin", 0x080000, 0x59abe7f9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_xenon2)
-STD_ROM_FN(md_xenon2)
-
-struct BurnDriver BurnDrvmd_xenon2 = {
- "md_xenon2", NULL, NULL, NULL, "1992",
- "Xenon 2 - Megablast (Euro)\0", NULL, "Virgin Games", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_xenon2RomInfo, md_xenon2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Xiao Monv - Magic Girl (Chi)
-static struct BurnRomInfo md_xiaomoRomDesc[] = {
- { "xiao monv - magic girl (chi) (unl).bin", 0x080000, 0x8e49a92e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_xiaomo)
-STD_ROM_FN(md_xiaomo)
-
-struct BurnDriver BurnDrvmd_xiaomo = {
- "md_xiaomo", NULL, NULL, NULL, "199?",
- "Xiao Monv - Magic Girl (Chi)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_xiaomoRomInfo, md_xiaomoRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Xin Qi Gai Wang Zi (Chi, Alt)
-static struct BurnRomInfo md_xinqig1RomDesc[] = {
- { "xin qi gai wang zi (chi) (alt) (unl).bin", 0x400000, 0xda5a4bfe, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_xinqig1)
-STD_ROM_FN(md_xinqig1)
-
-struct BurnDriver BurnDrvmd_xinqig1 = {
- "md_xinqig1", "md_xinqig", NULL, NULL, "1996",
- "Xin Qi Gai Wang Zi (Chi, Alt)\0", NULL, "C&E", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_BEGGAR, GBF_MISC, 0,
- MegadriveGetZipName, md_xinqig1RomInfo, md_xinqig1RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Xin Qi Gai Wang Zi (Chi)
-static struct BurnRomInfo md_xinqigRomDesc[] = {
- { "xin qi gai wang zi (chi) (unl).bin", 0x400000, 0xdd2f38b5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_xinqig)
-STD_ROM_FN(md_xinqig)
-
-struct BurnDriver BurnDrvmd_xinqig = {
- "md_xinqig", NULL, NULL, NULL, "1996",
- "Xin Qi Gai Wang Zi (Chi)\0", NULL, "C&E", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_BEGGAR, GBF_MISC, 0,
- MegadriveGetZipName, md_xinqigRomInfo, md_xinqigRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Ya Se Chuan Shuo (Chi)
-static struct BurnRomInfo md_yasechRomDesc[] = {
- { "ya se chuan shuo (chi) (unl).bin", 0x200000, 0x095b9a15, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_yasech)
-STD_ROM_FN(md_yasech)
-
-struct BurnDriver BurnDrvmd_yasech = {
- "md_yasech", NULL, NULL, NULL, "1995",
- "Ya Se Chuan Shuo (Chi)\0", NULL, "Chuanpu Technologies", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_yasechRomInfo, md_yasechRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Yang Jia Jiang - Yang Warrior Family (Chi)
-static struct BurnRomInfo md_yangjiRomDesc[] = {
- { "yang jia jiang - yang warrior family (chi) (unl).bin", 0x200000, 0x6604a79e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_yangji)
-STD_ROM_FN(md_yangji)
-
-struct BurnDriver BurnDrvmd_yangji = {
- "md_yangji", NULL, NULL, NULL, "199?",
- "Yang Jia Jiang - Yang Warrior Family (Chi)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_yangjiRomInfo, md_yangjiRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Yogi Bear's Cartoon Capers (Euro)
-static struct BurnRomInfo md_yogibearRomDesc[] = {
- { "yogi bear's cartoon capers (euro).bin", 0x100000, 0x204f97d8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_yogibear)
-STD_ROM_FN(md_yogibear)
-
-struct BurnDriver BurnDrvmd_yogibear = {
- "md_yogibear", NULL, NULL, NULL, "1994",
- "Yogi Bear's Cartoon Capers (Euro)\0", NULL, "Empire Interactive", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_yogibearRomInfo, md_yogibearRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Young Indiana Jones Chronicles (USA, Prototype)
-static struct BurnRomInfo md_youngindRomDesc[] = {
- { "young indiana jones chronicles, the (usa) (prototype).bin", 0x080000, 0x44f6be35, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_youngind)
-STD_ROM_FN(md_youngind)
-
-struct BurnDriver BurnDrvmd_youngind = {
- "md_youngind", NULL, NULL, NULL, "199?",
- "The Young Indiana Jones Chronicles (USA, Prototype)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_youngindRomInfo, md_youngindRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Ys III (USA)
-static struct BurnRomInfo md_ys3RomDesc[] = {
- { "ys iii (usa).bin", 0x100000, 0xea27976e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ys3)
-STD_ROM_FN(md_ys3)
-
-struct BurnDriver BurnDrvmd_ys3 = {
- "md_ys3", NULL, NULL, NULL, "1991",
- "Ys III (USA)\0", NULL, "Renovation", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_ys3RomInfo, md_ys3RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Ys - Wanderers from Ys (Jpn)
-static struct BurnRomInfo md_ys3jRomDesc[] = {
- { "ys - wanderers from ys (jpn).bin", 0x100000, 0x52da4e76, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ys3j)
-STD_ROM_FN(md_ys3j)
-
-struct BurnDriver BurnDrvmd_ys3j = {
- "md_ys3j", "md_ys3", NULL, NULL, "1991",
- "Ys - Wanderers from Ys (Jpn)\0", NULL, "Reno", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_ys3jRomInfo, md_ys3jRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Yu Yu Hakusho - Makyou Toitsusen (Jpn)
-static struct BurnRomInfo md_yuyumtRomDesc[] = {
- { "yuu yuu hakusho - makyou toitsusen (jpn).bin", 0x300000, 0x71ceac6f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_yuyumt)
-STD_ROM_FN(md_yuyumt)
-
-struct BurnDriver BurnDrvmd_yuyumt = {
- "md_yuyumt", "md_yuyusf", NULL, NULL, "1994",
- "Yu Yu Hakusho - Makyou Toitsusen (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_yuyumtRomInfo, md_yuyumtRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Yu Yu Hakusho - Sunset Fighters (Bra)
-static struct BurnRomInfo md_yuyusfRomDesc[] = {
- { "yuu yuu hakusho - sunset fighters (bra).bin", 0x300000, 0xfe3fb8ee, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_yuyusf)
-STD_ROM_FN(md_yuyusf)
-
-struct BurnDriver BurnDrvmd_yuyusf = {
- "md_yuyusf", NULL, NULL, NULL, "199?",
- "Yu Yu Hakusho - Sunset Fighters (Bra)\0", NULL, "Tec Toy", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_yuyusfRomInfo, md_yuyusfRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Yu Yu Hakusho Gaiden (Jpn)
-static struct BurnRomInfo md_yuyugRomDesc[] = {
- { "yuu yuu hakusho gaiden (jpn).bin", 0x200000, 0x7dc98176, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_yuyug)
-STD_ROM_FN(md_yuyug)
-
-struct BurnDriver BurnDrvmd_yuyug = {
- "md_yuyug", NULL, NULL, NULL, "1994",
- "Yu Yu Hakusho Gaiden (Jpn)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_yuyugRomInfo, md_yuyugRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Zan Yasha Enbukyoku (Jpn)
-static struct BurnRomInfo md_zanyashaRomDesc[] = {
- { "zan yasha enbukyoku (jpn).bin", 0x080000, 0x637fe8f3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_zanyasha)
-STD_ROM_FN(md_zanyasha)
-
-struct BurnDriver BurnDrvmd_zanyasha = {
- "md_zanyasha", NULL, NULL, NULL, "1991",
- "Zan Yasha Enbukyoku (Jpn)\0", NULL, "Wolf Team", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_zanyashaRomInfo, md_zanyashaRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Zany Golf (Euro, USA)
-static struct BurnRomInfo md_zanygolf1RomDesc[] = {
- { "zany golf (euro, usa).bin", 0x080000, 0xed5d12ea, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_zanygolf1)
-STD_ROM_FN(md_zanygolf1)
-
-struct BurnDriver BurnDrvmd_zanygolf1 = {
- "md_zanygolf1", "md_zanygolf", NULL, NULL, "1990",
- "Zany Golf (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_zanygolf1RomInfo, md_zanygolf1RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Zero the Kamikaze Squirrel (Euro)
-static struct BurnRomInfo md_zeroRomDesc[] = {
- { "zero the kamikaze squirrel (euro).bin", 0x200000, 0x45ff0b4b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_zero)
-STD_ROM_FN(md_zero)
-
-struct BurnDriver BurnDrvmd_zero = {
- "md_zero", NULL, NULL, NULL, "1994",
- "Zero the Kamikaze Squirrel (Euro)\0", NULL, "SunSoft", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_zeroRomInfo, md_zeroRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Zero the Kamikaze Squirrel (USA)
-static struct BurnRomInfo md_zerouRomDesc[] = {
- { "zero the kamikaze squirrel (usa).bin", 0x200000, 0x423968df, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_zerou)
-STD_ROM_FN(md_zerou)
-
-struct BurnDriver BurnDrvmd_zerou = {
- "md_zerou", "md_zero", NULL, NULL, "1994",
- "Zero the Kamikaze Squirrel (USA)\0", NULL, "SunSoft", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_zerouRomInfo, md_zerouRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Zero Wing (Euro)
-static struct BurnRomInfo md_zerowingRomDesc[] = {
- { "mpr-14463.bin", 0x100000, 0x89b744a3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_zerowing)
-STD_ROM_FN(md_zerowing)
-
-struct BurnDriver BurnDrvmd_zerowing = {
- "md_zerowing", NULL, NULL, NULL, "1991",
- "Zero Wing (Euro)\0", NULL, "Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_zerowingRomInfo, md_zerowingRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Zero Wing (Jpn)
-static struct BurnRomInfo md_zerowingjRomDesc[] = {
- { "zero wing (jpn).bin", 0x100000, 0x7e203d2b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_zerowingj)
-STD_ROM_FN(md_zerowingj)
-
-struct BurnDriver BurnDrvmd_zerowingj = {
- "md_zerowingj", "md_zerowing", NULL, NULL, "1991",
- "Zero Wing (Jpn)\0", NULL, "Toaplan", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_zerowingjRomInfo, md_zerowingjRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Zhuo Gui Da Shi - Ghost Hunter (Chi)
-static struct BurnRomInfo md_zhuoguRomDesc[] = {
- { "zhuo gui da shi - ghost hunter (chi) (unl).bin", 0x080000, 0x76c62a8b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_zhuogu)
-STD_ROM_FN(md_zhuogu)
-
-struct BurnDriver BurnDrvmd_zhuogu = {
- "md_zhuogu", NULL, NULL, NULL, "1994",
- "Zhuo Gui Da Shi - Ghost Hunter (Chi)\0", NULL, "Shenchi Technology", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_zhuoguRomInfo, md_zhuoguRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Zombie High (USA, Prototype)
-static struct BurnRomInfo md_zombhighRomDesc[] = {
- { "zombie high (usa) (prototype).bin", 0x0fa0ef, 0x7bea6194, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_zombhigh)
-STD_ROM_FN(md_zombhigh)
-
-struct BurnDriver BurnDrvmd_zombhigh = {
- "md_zombhigh", NULL, NULL, NULL, "199?",
- "Zombie High (USA, Prototype)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_zombhighRomInfo, md_zombhighRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Zombies (Euro)
-static struct BurnRomInfo md_zombiesRomDesc[] = {
- { "zombies (euro).bin", 0x100000, 0x179a1aa2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_zombies)
-STD_ROM_FN(md_zombies)
-
-struct BurnDriver BurnDrvmd_zombies = {
- "md_zombies", NULL, NULL, NULL, "1993",
- "Zombies (Euro)\0", NULL, "Konami", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_zombiesRomInfo, md_zombiesRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Zombies Ate My Neighbors (USA)
-static struct BurnRomInfo md_zombiesuRomDesc[] = {
- { "zombies ate my neighbors (usa).bin", 0x100000, 0x2bf3626f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_zombiesu)
-STD_ROM_FN(md_zombiesu)
-
-struct BurnDriver BurnDrvmd_zombiesu = {
- "md_zombiesu", "md_zombies", NULL, NULL, "1994",
- "Zombies Ate My Neighbors (USA)\0", NULL, "Konami", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_zombiesuRomInfo, md_zombiesuRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Zool (Euro)
-static struct BurnRomInfo md_zoolRomDesc[] = {
- { "zool04.bin", 0x100000, 0x1ee58b03, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_zool)
-STD_ROM_FN(md_zool)
-
-struct BurnDriver BurnDrvmd_zool = {
- "md_zool", NULL, NULL, NULL, "1993",
- "Zool (Euro)\0", NULL, "Electronic Arts", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_zoolRomInfo, md_zoolRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Zool (USA)
-static struct BurnRomInfo md_zooluRomDesc[] = {
- { "zool - ninja of the 'nth' dimension (usa).bin", 0x100000, 0xcb2939f1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_zoolu)
-STD_ROM_FN(md_zoolu)
-
-struct BurnDriver BurnDrvmd_zoolu = {
- "md_zoolu", "md_zool", NULL, NULL, "1993",
- "Zool (USA)\0", NULL, "GameTek", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_zooluRomInfo, md_zooluRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Zoop (Euro)
-static struct BurnRomInfo md_zoopRomDesc[] = {
- { "mpr-18564.bin", 0x080000, 0x2fdac6ab, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_zoop)
-STD_ROM_FN(md_zoop)
-
-struct BurnDriver BurnDrvmd_zoop = {
- "md_zoop", NULL, NULL, NULL, "1995",
- "Zoop (Euro)\0", NULL, "Viacom New Media", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_zoopRomInfo, md_zoopRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Zoop (USA)
-static struct BurnRomInfo md_zoopuRomDesc[] = {
- { "zoop (usa).bin", 0x080000, 0xa899befa, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_zoopu)
-STD_ROM_FN(md_zoopu)
-
-struct BurnDriver BurnDrvmd_zoopu = {
- "md_zoopu", "md_zoop", NULL, NULL, "1995",
- "Zoop (USA)\0", NULL, "Viacom New Media", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_zoopuRomInfo, md_zoopuRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Flux (Euro)
-static struct BurnRomInfo md_fluxRomDesc[] = {
- { "flux (euro).bin", 0x040000, 0x2a1da08c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_flux)
-STD_ROM_FN(md_flux)
-
-struct BurnDriver BurnDrvmd_flux = {
- "md_flux", NULL, NULL, NULL, "199?",
- "Flux (Euro)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_fluxRomInfo, md_fluxRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Mega Anser (Jpn)
-static struct BurnRomInfo md_meganserRomDesc[] = {
- { "mega anser (jpn).bin", 0x080000, 0x08ece367, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_meganser)
-STD_ROM_FN(md_meganser)
-
-struct BurnDriver BurnDrvmd_meganser = {
- "md_meganser", NULL, NULL, NULL, "199?",
- "Mega Anser (Jpn)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_meganserRomInfo, md_meganserRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// MegaNet (Bra)
-static struct BurnRomInfo md_meganetRomDesc[] = {
- { "meganet (bra).bin", 0x040000, 0xfab33cc2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_meganet)
-STD_ROM_FN(md_meganet)
-
-struct BurnDriver BurnDrvmd_meganet = {
- "md_meganet", NULL, NULL, NULL, "199?",
- "MegaNet (Bra)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_meganetRomInfo, md_meganetRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Sega Channel (Scientific Atlanta) (USA)
-static struct BurnRomInfo md_segachnlRomDesc[] = {
- { "sega channel (usa).bin", 0x040000, 0xbc79b6ed, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_segachnl)
-STD_ROM_FN(md_segachnl)
-
-struct BurnDriver BurnDrvmd_segachnl = {
- "md_segachnl", NULL, NULL, NULL, "199?",
- "Sega Channel (Scientific Atlanta) (USA)\0", NULL, "Scientific Atlanta", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_segachnlRomInfo, md_segachnlRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Sega Channel (General Instrument) (USA)
-static struct BurnRomInfo md_segachnlaRomDesc[] = {
- { "sega channel (general instruments) (usa).bin", 0x080000, 0x5df93f11, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_segachnla)
-STD_ROM_FN(md_segachnla)
-
-struct BurnDriver BurnDrvmd_segachnla = {
- "md_segachnla", "md_segachnl", NULL, NULL, "199?",
- "Sega Channel (General Instrument) (USA)\0", NULL, "Scientific Atlanta", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_segachnlaRomInfo, md_segachnlaRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Sega Channel Demo (USA)
-static struct BurnRomInfo md_segachdRomDesc[] = {
- { "sega channel demo (usa).bin", 0x080000, 0x2abae889, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_segachd)
-STD_ROM_FN(md_segachd)
-
-struct BurnDriver BurnDrvmd_segachd = {
- "md_segachd", NULL, NULL, NULL, "199?",
- "Sega Channel Demo (USA)\0", NULL, "Scientific Atlanta", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_segachdRomInfo, md_segachdRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// 12 in 1
-static struct BurnRomInfo md_12in1RomDesc[] = {
- { "12-in-1 (unl).bin", 0x200000, 0xa98bf454, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_12in1)
-STD_ROM_FN(md_12in1)
-
-struct BurnDriver BurnDrvmd_12in1 = {
- "md_12in1", NULL, NULL, NULL, "199?",
- "12 in 1\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_MC_12IN1, GBF_MISC, 0,
- MegadriveGetZipName, md_12in1RomInfo, md_12in1RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// 4 in 1 (Pirate)
-static struct BurnRomInfo md_4in1pbRomDesc[] = {
- { "4-in-1 (pirate).bin", 0x200000, 0xbe72857b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_4in1pb)
-STD_ROM_FN(md_4in1pb)
-
-struct BurnDriver BurnDrvmd_4in1pb = {
- "md_4in1pb", NULL, NULL, NULL, "199?",
- "4 in 1 (Pirate)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_MC_12IN1, GBF_MISC, 0,
- MegadriveGetZipName, md_4in1pbRomInfo, md_4in1pbRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// A Bug's Life
-static struct BurnRomInfo md_bugslifeRomDesc[] = {
- { "bug's life, a (unl).bin", 0x100000, 0x10458e09, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_bugslife)
-STD_ROM_FN(md_bugslife)
-
-struct BurnDriver BurnDrvmd_bugslife = {
- "md_bugslife", NULL, NULL, NULL, "199?",
- "A Bug's Life\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_BUGSLIFE, GBF_MISC, 0,
- MegadriveGetZipName, md_bugslifeRomInfo, md_bugslifeRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// A Bug's Life (Alt?)
-static struct BurnRomInfo md_bugslifeaRomDesc[] = {
- { "bug's life (unl).bin", 0x100000, 0xed1c1a67, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_bugslifea)
-STD_ROM_FN(md_bugslifea)
-
-struct BurnDriver BurnDrvmd_bugslifea = {
- "md_bugslifea", "md_bugslife", NULL, NULL, "199?",
- "A Bug's Life (Alt?)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_bugslifeaRomInfo, md_bugslifeaRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Chinese Fighter III (Chi)
-static struct BurnRomInfo md_chinf3RomDesc[] = {
- { "chinese fighter iii (unl).bin", 0x200000, 0xe833bc6e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_chinf3)
-STD_ROM_FN(md_chinf3)
-
-struct BurnDriver BurnDrvmd_chinf3 = {
- "md_chinf3", NULL, NULL, NULL, "199?",
- "Chinese Fighter III (Chi)\0", "Imperfect Protection Emulation", "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_CHINFIGHT3, GBF_MISC, 0,
- MegadriveGetZipName, md_chinf3RomInfo, md_chinf3RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Earth Defense (USA)
-static struct BurnRomInfo md_earthdefRomDesc[] = {
- { "earth defense (usa) (unl).bin", 0x080000, 0x3519c422, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_earthdef)
-STD_ROM_FN(md_earthdef)
-
-struct BurnDriver BurnDrvmd_earthdef = {
- "md_earthdef", NULL, NULL, NULL, "1995",
- "The Earth Defense (USA)\0", NULL, "Realtec", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_REALTEC, GBF_MISC, 0,
- MegadriveGetZipName, md_earthdefRomInfo, md_earthdefRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Funny World & Balloon Boy (USA)
-static struct BurnRomInfo md_funnywldRomDesc[] = {
- { "funny world & balloon boy (usa) (unl).bin", 0x080000, 0xa82f05f0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_funnywld)
-STD_ROM_FN(md_funnywld)
-
-struct BurnDriver BurnDrvmd_funnywld = {
- "md_funnywld", NULL, NULL, NULL, "1993",
- "Funny World & Balloon Boy (USA)\0", NULL, "Realtec", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_REALTEC, GBF_MISC, 0,
- MegadriveGetZipName, md_funnywldRomInfo, md_funnywldRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Golden 10 in 1 (Incomplete Dump)
-static struct BurnRomInfo md_golden10RomDesc[] = {
- { "golden 10-in-1 (bad dump).bin", 0x100000, 0x4fa3f82b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_golden10)
-STD_ROM_FN(md_golden10)
-
-struct BurnDriver BurnDrvmd_golden10 = {
- "md_golden10", NULL, NULL, NULL, "199?",
- "Golden 10 in 1 (Incomplete Dump)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_MC_12IN1, GBF_MISC, 0,
- MegadriveGetZipName, md_golden10RomInfo, md_golden10RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Hua Mu Lan - Mulan (Chi)
-static struct BurnRomInfo md_huamulRomDesc[] = {
- { "hua mu lan - mulan (chi) (unl).bin", 0x200000, 0x796882b8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_huamul)
-STD_ROM_FN(md_huamul)
-
-struct BurnDriver BurnDrvmd_huamul = {
- "md_huamul", NULL, NULL, NULL, "199?",
- "Hua Mu Lan - Mulan (Chi)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_MULAN, GBF_MISC, 0,
- MegadriveGetZipName, md_huamulRomInfo, md_huamulRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Huan Le Tao Qi Shu - Smart Mouse (Chi)
-static struct BurnRomInfo md_huanleRomDesc[] = {
- { "huan le tao qi shu - smart mouse (chi) (unl).bin", 0x080000, 0xdecdf740, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_huanle)
-STD_ROM_FN(md_huanle)
-
-struct BurnDriver BurnDrvmd_huanle = {
- "md_huanle", NULL, NULL, NULL, "199?",
- "Huan Le Tao Qi Shu - Smart Mouse (Chi)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SMOUSE, GBF_MISC, 0,
- MegadriveGetZipName, md_huanleRomInfo, md_huanleRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// K.O.F 98'
-static struct BurnRomInfo md_kof98RomDesc[] = {
- { "king of fighters '98, the (unl).bin", 0x200000, 0xcbc38eea, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_kof98)
-STD_ROM_FN(md_kof98)
-
-struct BurnDriver BurnDrvmd_kof98 = {
- "md_kof98", NULL, NULL, NULL, "199?",
- "K.O.F 98'\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_KOF98, GBF_MISC, 0,
- MegadriveGetZipName, md_kof98RomInfo, md_kof98RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The King of Fighters '99
-static struct BurnRomInfo md_kof99RomDesc[] = {
- { "the king of fighters 99 (unl).bin", 0x300000, 0x54638c11, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_kof99)
-STD_ROM_FN(md_kof99)
-
-struct BurnDriver BurnDrvmd_kof99 = {
- "md_kof99", NULL, NULL, NULL, "199?",
- "The King of Fighters '99\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_KOF99, GBF_MISC, 0,
- MegadriveGetZipName, md_kof99RomInfo, md_kof99RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The King of Fighters '99 (Alt)
-static struct BurnRomInfo md_kof99aRomDesc[] = {
- { "king of fighters 99 (unl).bin", 0x300000, 0xab82afbe, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_kof99a)
-STD_ROM_FN(md_kof99a)
-
-struct BurnDriver BurnDrvmd_kof99a = {
- "md_kof99a", "md_kof99", NULL, NULL, "199?",
- "The King of Fighters '99 (Alt)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_KOF99, GBF_MISC, 0,
- MegadriveGetZipName, md_kof99aRomInfo, md_kof99aRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Linghuan Daoshi Super Magician (Chi)
-static struct BurnRomInfo md_supmagicRomDesc[] = {
- { "elf wor (chi) (unl).bin", 0x100000, 0xe24ac6b2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_supmagic)
-STD_ROM_FN(md_supmagic)
-
-struct BurnDriver BurnDrvmd_supmagic = {
- "md_supmagic", NULL, NULL, NULL, "199?",
- "Linghuan Daoshi Super Magician (Chi)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_ELFWOR, GBF_MISC, 0,
- MegadriveGetZipName, md_supmagicRomInfo, md_supmagicRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Shi Zi Wang II - Lion King II
-static struct BurnRomInfo md_lionkin2RomDesc[] = {
- { "shi zi wang ii - the lion king ii, the (chi) (unl).bin", 0x200000, 0xaff46765, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_lionkin2)
-STD_ROM_FN(md_lionkin2)
-
-struct BurnDriver BurnDrvmd_lionkin2 = {
- "md_lionkin2", NULL, NULL, NULL, "199?",
- "Shi Zi Wang II - Lion King II\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_LIONK2, GBF_MISC, 0,
- MegadriveGetZipName, md_lionkin2RomInfo, md_lionkin2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Lion King 3
-static struct BurnRomInfo md_lionkin3RomDesc[] = {
- { "shi zi wang 3 - the lion king 3 (chi) (unl).bin", 0x200000, 0xc004219d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_lionkin3)
-STD_ROM_FN(md_lionkin3)
-
-struct BurnDriver BurnDrvmd_lionkin3 = {
- "md_lionkin3", NULL, NULL, NULL, "199?",
- "Lion King 3\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_LIONK3, GBF_MISC, 0,
- MegadriveGetZipName, md_lionkin3RomInfo, md_lionkin3RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Ma Jiang Qing Ren - Ji Ma Jiang Zhi (Chi)
-static struct BurnRomInfo md_majianRomDesc[] = {
- { "ma jiang qing ren - ji ma jiang zhi (chi) (unl).bin", 0x100000, 0xddd02ba4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_majian)
-STD_ROM_FN(md_majian)
-
-struct BurnDriver BurnDrvmd_majian = {
- "md_majian", NULL, NULL, NULL, "199?",
- "Ma Jiang Qing Ren - Ji Ma Jiang Zhi (Chi)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_MJLOVER, GBF_MISC, 0,
- MegadriveGetZipName, md_majianRomInfo, md_majianRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Ma Jiang Qing Ren - Ji Ma Jiang Zhi (Chi, Alt)
-static struct BurnRomInfo md_majianaRomDesc[] = {
- { "mahjong lover (unl).bin", 0x100000, 0xf6c2cff2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_majiana)
-STD_ROM_FN(md_majiana)
-
-struct BurnDriver BurnDrvmd_majiana = {
- "md_majiana", "md_majian", NULL, NULL, "199?",
- "Ma Jiang Qing Ren - Ji Ma Jiang Zhi (Chi, Alt)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_MJLOVER, GBF_MISC, 0,
- MegadriveGetZipName, md_majianaRomInfo, md_majianaRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Pokemon Stadium
-static struct BurnRomInfo md_pokestadRomDesc[] = {
- { "pokemon stadium (unl).bin", 0x200000, 0xfe187c5d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_pokestad)
-STD_ROM_FN(md_pokestad)
-
-struct BurnDriver BurnDrvmd_pokestad = {
- "md_pokestad", NULL, NULL, NULL, "199?",
- "Pokemon Stadium\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_KAIJU, GBF_MISC, 0,
- MegadriveGetZipName, md_pokestadRomInfo, md_pokestadRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Rockman X3
-static struct BurnRomInfo md_rockmnx3RomDesc[] = {
- { "rockman x3 (unl).bin", 0x200000, 0x3ee639f0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_rockmnx3)
-STD_ROM_FN(md_rockmnx3)
-
-struct BurnDriver BurnDrvmd_rockmnx3 = {
- "md_rockmnx3", NULL, NULL, NULL, "199?",
- "Rockman X3\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_ROCKMANX3, GBF_MISC, 0,
- MegadriveGetZipName, md_rockmnx3RomInfo, md_rockmnx3RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Soul Blade
-static struct BurnRomInfo md_soulbladRomDesc[] = {
- { "soul blade (unl).bin", 0x400000, 0xf26f88d1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_soulblad)
-STD_ROM_FN(md_soulblad)
-
-struct BurnDriver BurnDrvmd_soulblad = {
- "md_soulblad", NULL, NULL, NULL, "199?",
- "Soul Blade\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SOULBLAD, GBF_MISC, 0,
- MegadriveGetZipName, md_soulbladRomInfo, md_soulbladRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Soul Blade (Alt)
-static struct BurnRomInfo md_soulbladaRomDesc[] = {
- { "soul blade (unl)[p].bin", 0x300000, 0xdd1c7a79, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_soulblada)
-STD_ROM_FN(md_soulblada)
-
-struct BurnDriver BurnDrvmd_soulblada = {
- "md_soulblada", "md_soulblad", NULL, NULL, "199?",
- "Soul Blade (Alt)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_soulbladaRomInfo, md_soulbladaRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Squirrel King (Chi)
-static struct BurnRomInfo md_squirrelRomDesc[] = {
- { "squirrel king (chi) (unl).bin", 0x100000, 0xb8261ff5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_squirrel)
-STD_ROM_FN(md_squirrel)
-
-struct BurnDriver BurnDrvmd_squirrel = {
- "md_squirrel", NULL, NULL, NULL, "199?",
- "Squirrel King (Chi)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SQUIRRELK, GBF_MISC, 0,
- MegadriveGetZipName, md_squirrelRomInfo, md_squirrelRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Super 15 in 1 (Pirate)
-static struct BurnRomInfo md_s15in1RomDesc[] = {
- { "super 15-in-1 (pirate).bin", 0x200000, 0x6d17dfff, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_s15in1)
-STD_ROM_FN(md_s15in1)
-
-struct BurnDriver BurnDrvmd_s15in1 = {
- "md_s15in1", NULL, NULL, NULL, "199?",
- "Super 15 in 1 (Pirate)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_MC_SUP15IN1, GBF_MISC, 0,
- MegadriveGetZipName, md_s15in1RomInfo, md_s15in1RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Super 19 in 1 (Pirate)
-static struct BurnRomInfo md_s19in1RomDesc[] = {
- { "super 19-in-1 (pirate).bin", 0x400000, 0x0ad2b342, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_s19in1)
-STD_ROM_FN(md_s19in1)
-
-struct BurnDriver BurnDrvmd_s19in1 = {
- "md_s19in1", NULL, NULL, NULL, "199?",
- "Super 19 in 1 (Pirate)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_MC_SUP19IN1, GBF_MISC, 0,
- MegadriveGetZipName, md_s19in1RomInfo, md_s19in1RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Super Bubble Bobble MD (Chi)
-static struct BurnRomInfo md_suprbublRomDesc[] = {
- { "super bubble bobble (chi) (unl).bin", 0x100000, 0x4820a161, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_suprbubl)
-STD_ROM_FN(md_suprbubl)
-
-struct BurnDriver BurnDrvmd_suprbubl = {
- "md_suprbubl", NULL, NULL, NULL, "199?",
- "Super Bubble Bobble MD (Chi)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SBUBBOB, GBF_MISC, 0,
- MegadriveGetZipName, md_suprbublRomInfo, md_suprbublRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Super Donkey Kong 99 (Protected)
-static struct BurnRomInfo md_sdkong99RomDesc[] = {
- { "super donkey kong 99 (unl) (protected).bin", 0x300000, 0x43be4dd5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 | SEGA_MD_ROM_RELOAD_100000_300000 },
-};
-
-STD_ROM_PICK(md_sdkong99)
-STD_ROM_FN(md_sdkong99)
-
-struct BurnDriver BurnDrvmd_sdkong99 = {
- "md_sdkong99", NULL, NULL, NULL, "199?",
- "Super Donkey Kong 99 (Protected)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SDK99, GBF_MISC, 0,
- MegadriveGetZipName, md_sdkong99RomInfo, md_sdkong99RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Super King Kong 99
-static struct BurnRomInfo md_skkong99RomDesc[] = {
- { "super king kong 99 (unl).bin", 0x200000, 0x413dfee2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 | SEGA_MD_ROM_RELOAD_200000_200000 },
-};
-
-STD_ROM_PICK(md_skkong99)
-STD_ROM_FN(md_skkong99)
-
-struct BurnDriver BurnDrvmd_skkong99 = {
- "md_skkong99", "md_sdkong99", NULL, NULL, "199?",
- "Super King Kong 99\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SKINGKONG, GBF_MISC, 0,
- MegadriveGetZipName, md_skkong99RomInfo, md_skkong99RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Super Mario 2 1998
-static struct BurnRomInfo md_smario2RomDesc[] = {
- { "super mario 2 1998 (unl).bin", 0x200000, 0xf7e1b3e1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_smario2)
-STD_ROM_FN(md_smario2)
-
-struct BurnDriver BurnDrvmd_smario2 = {
- "md_smario2", NULL, NULL, NULL, "199?",
- "Super Mario 2 1998\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SMB2, GBF_MISC, 0,
- MegadriveGetZipName, md_smario2RomInfo, md_smario2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Super Mario World ~ Super Mario Bros. (Pirate)
-static struct BurnRomInfo md_smbRomDesc[] = {
- { "super mario bros. (unl).bin", 0x200000, 0x9cfa2bd8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_smb)
-STD_ROM_FN(md_smb)
-
-struct BurnDriver BurnDrvmd_smb = {
- "md_smb", NULL, NULL, NULL, "199?",
- "Super Mario World ~ Super Mario Bros. (Pirate)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SMB, GBF_MISC, 0,
- MegadriveGetZipName, md_smbRomInfo, md_smbRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Battle of Red Cliffs - Romance of the Three Kingdoms
-static struct BurnRomInfo md_redcliffRomDesc[] = {
- { "the battle of red cliffs - romance of the three kingdoms (unl).bin", 0x200005, 0x44463492, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_redcliff)
-STD_ROM_FN(md_redcliff)
-
-struct BurnDriver BurnDrvmd_redcliff = {
- "md_redcliff", NULL, NULL, NULL, "199?",
- "The Battle of Red Cliffs - Romance of the Three Kingdoms\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_REDCL_EN, GBF_MISC, 0,
- MegadriveGetZipName, md_redcliffRomInfo, md_redcliffRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// The Battle of Red Cliffs - Romance of the Three Kingdoms (Hacked out Protection?)
-static struct BurnRomInfo md_redcliffaRomDesc[] = {
- { "the battle of red cliffs (unl).bin", 0x200000, 0x63eca090, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_redcliffa)
-STD_ROM_FN(md_redcliffa)
-
-struct BurnDriver BurnDrvmd_redcliffa = {
- "md_redcliffa", "md_redcliff", NULL, NULL, "199?",
- "The Battle of Red Cliffs - Romance of the Three Kingdoms (Hacked out Protection?)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_redcliffaRomInfo, md_redcliffaRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Top Fighter 2000 MK VIII
-static struct BurnRomInfo md_topfightRomDesc[] = {
- { "top fighter 2000 mk viii (unl).bin", 0x200000, 0xf75519dc, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_topfight)
-STD_ROM_FN(md_topfight)
-
-struct BurnDriver BurnDrvmd_topfight = {
- "md_topfight", NULL, NULL, NULL, "199?",
- "Top Fighter 2000 MK VIII\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_TOPFIGHTER, GBF_MISC, 0,
- MegadriveGetZipName, md_topfightRomInfo, md_topfightRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Top Fighter 2005
-static struct BurnRomInfo md_topf2k5RomDesc[] = {
- { "top fighter 2005 (unl).bin", 0x200000, 0x174defe6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_topf2k5)
-STD_ROM_FN(md_topf2k5)
-
-struct BurnDriver BurnDrvmd_topf2k5 = {
- "md_topf2k5", NULL, NULL, NULL, "199?",
- "Top Fighter 2005\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_topf2k5RomInfo, md_topf2k5RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Whac-a-Critter (USA)
-static struct BurnRomInfo md_whacacriRomDesc[] = {
- { "whac-a-critter (usa) (unl).bin", 0x080000, 0x1bdd02b8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_whacacri)
-STD_ROM_FN(md_whacacri)
-
-struct BurnDriver BurnDrvmd_whacacri = {
- "md_whacacri", NULL, NULL, NULL, "1993",
- "Whac-a-Critter (USA)\0", NULL, "Realtec", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_REALTEC, GBF_MISC, 0,
- MegadriveGetZipName, md_whacacriRomInfo, md_whacacriRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Radica: Volume 1 (USA)
-static struct BurnRomInfo md_radicav1RomDesc[] = {
- { "radicav1.bin", 0x400000, 0x3b4c8438, BRF_PRG | SEGA_MD_ROM_LOAD_NORMAL | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_radicav1)
-STD_ROM_FN(md_radicav1)
-
-struct BurnDriver BurnDrvmd_radicav1 = {
- "md_radicav1", NULL, NULL, NULL, "2004",
- "Radica: Volume 1 (USA)\0", NULL, "Radica Games ~ Sega", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_RADICA, GBF_MISC, 0,
- MegadriveGetZipName, md_radicav1RomInfo, md_radicav1RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Radica: Street Fighter Pack (Euro)
-static struct BurnRomInfo md_radicasfRomDesc[] = {
- { "radicasf.bin", 0x400000, 0x868afb44, BRF_PRG | SEGA_MD_ROM_LOAD_NORMAL | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_radicasf)
-STD_ROM_FN(md_radicasf)
-
-struct BurnDriver BurnDrvmd_radicasf = {
- "md_radicasf", NULL, NULL, NULL, "2004",
- "Radica: Street Fighter Pack (Euro)\0", NULL, "Radica Games ~ Capcom", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_RADICA, GBF_MISC, 0,
- MegadriveGetZipName, md_radicasfRomInfo, md_radicasfRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Chinese Fighter III (Chi, Unprotected?)
-static struct BurnRomInfo md_chinf3aRomDesc[] = {
- { "chinese fighter iii (unl, alt).bin", 0x200000, 0x6f98247d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_chinf3a)
-STD_ROM_FN(md_chinf3a)
-
-struct BurnDriver BurnDrvmd_chinf3a = {
- "md_chinf3a", "md_chinf3", NULL, NULL, "199?",
- "Chinese Fighter III (Chi, Unprotected?)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_chinf3aRomInfo, md_chinf3aRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// K.O.F 98' (Unprotected?)
-static struct BurnRomInfo md_kof98aRomDesc[] = {
- { "king of fighters '98, the (unl) (pirate).bin", 0x200000, 0xc79e1074, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_kof98a)
-STD_ROM_FN(md_kof98a)
-
-struct BurnDriver BurnDrvmd_kof98a = {
- "md_kof98a", "md_kof98", NULL, NULL, "199?",
- "K.O.F 98' (Unprotected?)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_kof98aRomInfo, md_kof98aRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Shi Zi Wang II - Lion King II (Pirate, Hacked?)
-static struct BurnRomInfo md_lionkin2aRomDesc[] = {
- { "shi zi wang ii - the lion king ii, the (chi) (unl) (pirate).bin", 0x200000, 0x721b4981, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_lionkin2a)
-STD_ROM_FN(md_lionkin2a)
-
-struct BurnDriver BurnDrvmd_lionkin2a = {
- "md_lionkin2a", "md_lionkin2", NULL, NULL, "199?",
- "Shi Zi Wang II - Lion King II (Pirate, Hacked?)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_lionkin2aRomInfo, md_lionkin2aRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Super Donkey Kong 99 (Unprotected)
-static struct BurnRomInfo md_sdkong99aRomDesc[] = {
- { "super donkey kong 99 (unl).bin", 0x200000, 0x8e7d9177, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sdkong99a)
-STD_ROM_FN(md_sdkong99a)
-
-struct BurnDriver BurnDrvmd_sdkong99a = {
- "md_sdkong99a", "md_sdkong99", NULL, NULL, "199?",
- "Super Donkey Kong 99 (Unprotected)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_sdkong99aRomInfo, md_sdkong99aRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Bomboy (Tw)
-static struct BurnRomInfo md_bomboyRomDesc[] = {
- { "bomboy (unl).bin", 0x080000, 0x065d2019, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_bomboy)
-STD_ROM_FN(md_bomboy)
-
-struct BurnDriver BurnDrvmd_bomboy = {
- "md_bomboy", NULL, NULL, NULL, "1993",
- "Bomboy (Tw)\0", NULL, "Gamtec", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_bomboyRomInfo, md_bomboyRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Truco '96 (Arg)
-static struct BurnRomInfo md_truco96RomDesc[] = {
- { "truco96.bin", 0x100000, 0xcddbecfc, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_truco96)
-STD_ROM_FN(md_truco96)
-
-struct BurnDriver BurnDrvmd_truco96 = {
- "md_truco96", NULL, NULL, NULL, "1996",
- "Truco '96 (Arg)\0", NULL, "Miky", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_truco96RomInfo, md_truco96RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// TC 2000 (Arg)
-static struct BurnRomInfo md_tc2000RomDesc[] = {
- { "tc2000.bin", 0x100000, 0xcef91bdb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_tc2000)
-STD_ROM_FN(md_tc2000)
-
-struct BurnDriver BurnDrvmd_tc2000 = {
- "md_tc2000", NULL, NULL, NULL, "199?",
- "TC 2000 (Arg)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_tc2000RomInfo, md_tc2000RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Unknown Game 2 (Rockman-related?)
-static struct BurnRomInfo md_unknown2RomDesc[] = {
- { "xxx3.bin", 0x200000, 0x188da9f0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_unknown2)
-STD_ROM_FN(md_unknown2)
-
-struct BurnDriver BurnDrvmd_unknown2 = {
- "md_unknown2", NULL, NULL, NULL, "199?",
- "Unknown Game 2 (Rockman-related?)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_unknown2RomInfo, md_unknown2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Ultimate Soccer (Euro, Prototype)
-static struct BurnRomInfo md_ultsoccrpRomDesc[] = {
- { "world soccer (prototype).bin", 0x100000, 0x9d451f72, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ultsoccrp)
-STD_ROM_FN(md_ultsoccrp)
-
-struct BurnDriver BurnDrvmd_ultsoccrp = {
- "md_ultsoccrp", "md_ultsoccr", NULL, NULL, "199?",
- "Ultimate Soccer (Euro, Prototype)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_ultsoccrpRomInfo, md_ultsoccrpRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Duke Nukem 3D (Pirate)
-static struct BurnRomInfo md_dukenk3daRomDesc[] = {
- { "duke_nukem_3d.bin", 0x200000, 0x13e93c0d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_dukenk3da)
-STD_ROM_FN(md_dukenk3da)
-
-struct BurnDriverD BurnDrvmd_dukenk3da = {
- "md_dukenk3da", "md_dukenk3d", NULL, NULL, "199?",
- "Duke Nukem 3D (Pirate)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
- MegadriveGetZipName, md_dukenk3daRomInfo, md_dukenk3daRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// K.O.F 2000
-static struct BurnRomInfo md_kof2kRomDesc[] = {
- { "king of fighters 2000 (unl).bin", 0x200000, 0x34cbac5d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_kof2k)
-STD_ROM_FN(md_kof2k)
-
-struct BurnDriver BurnDrvmd_kof2k = {
- "md_kof2k", "md_kof98", NULL, NULL, "199?",
- "K.O.F 2000\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_kof2kRomInfo, md_kof2kRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Lion King 3 (Alt?)
-static struct BurnRomInfo md_lionkin3aRomDesc[] = {
- { "lion_king_3.bin", 0x200000, 0x87e86943, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_lionkin3a)
-STD_ROM_FN(md_lionkin3a)
-
-struct BurnDriver BurnDrvmd_lionkin3a = {
- "md_lionkin3a", "md_lionkin3", NULL, NULL, "199?",
- "Lion King 3 (Alt?)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_lionkin3aRomInfo, md_lionkin3aRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Lion King 3 (Alt 2?)
-static struct BurnRomInfo md_lionkin3bRomDesc[] = {
- { "lion king 3 (unl).bin", 0x200000, 0x8e0555e4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_lionkin3b)
-STD_ROM_FN(md_lionkin3b)
-
-struct BurnDriver BurnDrvmd_lionkin3b = {
- "md_lionkin3b", "md_lionkin3", NULL, NULL, "199?",
- "Lion King 3 (Alt 2?)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_lionkin3bRomInfo, md_lionkin3bRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Magic Bubble (Pirate)
-static struct BurnRomInfo md_mbubbleRomDesc[] = {
- { "magic_bubble.bin", 0x080000, 0xce4a0c46, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_mbubble)
-STD_ROM_FN(md_mbubble)
-
-struct BurnDriver BurnDrvmd_mbubble = {
- "md_mbubble", NULL, NULL, NULL, "199?",
- "Magic Bubble (Pirate)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_mbubbleRomInfo, md_mbubbleRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Magistr 16 (Rus)
-static struct BurnRomInfo md_magist16RomDesc[] = {
- { "magistr 16.bin", 0x400000, 0x2488e685, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_magist16)
-STD_ROM_FN(md_magist16)
-
-struct BurnDriver BurnDrvmd_magist16 = {
- "md_magist16", NULL, NULL, NULL, "199?",
- "Magistr 16 (Rus)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_magist16RomInfo, md_magist16RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Sonic Jam 6 (Hacked?)
-static struct BurnRomInfo md_sonicjam2RomDesc[] = {
- { "sonic_6.bin", 0x200000, 0x87d86501, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_sonicjam2)
-STD_ROM_FN(md_sonicjam2)
-
-struct BurnDriver BurnDrvmd_sonicjam2 = {
- "md_sonicjam2", "md_sonicjam", NULL, NULL, "199?",
- "Sonic Jam 6 (Hacked?)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_sonicjam2RomInfo, md_sonicjam2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Soul Edge vs Samurai Spirits (Pirate)
-static struct BurnRomInfo md_souledgeRomDesc[] = {
- { "soul edge vs samurai spirits (unl).bin", 0x200000, 0xb11bd611, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_souledge)
-STD_ROM_FN(md_souledge)
-
-struct BurnDriver BurnDrvmd_souledge = {
- "md_souledge", NULL, NULL, NULL, "199?",
- "Soul Edge vs Samurai Spirits (Pirate)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_souledgeRomInfo, md_souledgeRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Soul Edge vs Samurai Spirits (Pirate, Cracked)
-static struct BurnRomInfo md_souledgeaRomDesc[] = {
- { "soul edge vs samurai spirits (unl)[f1].bin", 0x200000, 0x74a6d7a7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_souledgea)
-STD_ROM_FN(md_souledgea)
-
-struct BurnDriver BurnDrvmd_souledgea = {
- "md_souledgea", "md_souledge", NULL, NULL, "199?",
- "Soul Edge vs Samurai Spirits (Pirate, Cracked)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_souledgeaRomInfo, md_souledgeaRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Super Mario 2 (Alt?)
-static struct BurnRomInfo md_smario2aRomDesc[] = {
- { "super_mario_2.bin", 0x200000, 0x0da6dc4b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_smario2a)
-STD_ROM_FN(md_smario2a)
-
-struct BurnDriver BurnDrvmd_smario2a = {
- "md_smario2a", "md_smario2", NULL, NULL, "199?",
- "Super Mario 2 (Alt?)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_smario2aRomInfo, md_smario2aRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Tetris (Pirate?)
-static struct BurnRomInfo md_tetris1RomDesc[] = {
- { "tetris.bin", 0x080000, 0xeb024ab2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_tetris1)
-STD_ROM_FN(md_tetris1)
-
-struct BurnDriver BurnDrvmd_tetris1 = {
- "md_tetris1", NULL, NULL, NULL, "199?",
- "Tetris (Pirate?)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_tetris1RomInfo, md_tetris1RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Voina Irak (Pirate)
-static struct BurnRomInfo md_virakRomDesc[] = {
- { "voina_irak.bin", 0x200000, 0xc7177e93, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_virak)
-STD_ROM_FN(md_virak)
-
-struct BurnDriver BurnDrvmd_virak = {
- "md_virak", NULL, NULL, NULL, "199?",
- "Voina Irak (Pirate)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_virakRomInfo, md_virakRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Dyno Blaze (Early Prototype)
-static struct BurnRomInfo md_dynoblazRomDesc[] = {
- { "dyno blaze (proto).bin", 0x1711c6, 0xd625e584, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_dynoblaz)
-STD_ROM_FN(md_dynoblaz)
-
-struct BurnDriver BurnDrvmd_dynoblaz = {
- "md_dynoblaz", NULL, NULL, NULL, "199?",
- "Dyno Blaze (Early Prototype)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_dynoblazRomInfo, md_dynoblazRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Assassins Creed (Rus)
-static struct BurnRomInfo md_asscreedRomDesc[] = {
- { "assassins creed (unl).bin", 0x100000, 0x3f2d6ccc, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_asscreed)
-STD_ROM_FN(md_asscreed)
-
-struct BurnDriver BurnDrvmd_asscreed = {
- "md_asscreed", "md_dlair", NULL, NULL, "199?",
- "Assassins Creed (Rus)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_asscreedRomInfo, md_asscreedRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Avatar (Rus)
-static struct BurnRomInfo md_avatarRomDesc[] = {
- { "avatar.bin", 0x110000, 0xd33e0ada, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_avatar)
-STD_ROM_FN(md_avatar)
-
-struct BurnDriver BurnDrvmd_avatar = {
- "md_avatar", "md_jimpower", NULL, NULL, "199?",
- "Avatar (Rus)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_avatarRomInfo, md_avatarRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Ben 10 (Rus)
-static struct BurnRomInfo md_ben10RomDesc[] = {
- { "ben 10 (unl)[rus].bin", 0x100000, 0xc8be0b26, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_ben10)
-STD_ROM_FN(md_ben10)
-
-struct BurnDriver BurnDrvmd_ben10 = {
- "md_ben10", NULL, NULL, NULL, "199?",
- "Ben 10 (Rus)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_ben10RomInfo, md_ben10RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Bomber
-static struct BurnRomInfo md_bomberRomDesc[] = {
- { "bomber [!].bin", 0x020000, 0x6389a658, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_bomber)
-STD_ROM_FN(md_bomber)
-
-struct BurnDriver BurnDrvmd_bomber = {
- "md_bomber", NULL, NULL, NULL, "2005",
- "Bomber\0", NULL, "TecToy", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_bomberRomInfo, md_bomberRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Chess (Rus)
-static struct BurnRomInfo md_chessRomDesc[] = {
- { "chess (unl).bin", 0x080000, 0x47380edd, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_chess)
-STD_ROM_FN(md_chess)
-
-struct BurnDriver BurnDrvmd_chess = {
- "md_chess", NULL, NULL, NULL, "1998",
- "Chess (Rus)\0", NULL, "BSComp", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_chessRomInfo, md_chessRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Chess (Rus, Alt)
-static struct BurnRomInfo md_chessaRomDesc[] = {
- { "chess (unl) [rus].bin", 0x080000, 0xa5cef7b6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_chessa)
-STD_ROM_FN(md_chessa)
-
-struct BurnDriver BurnDrvmd_chessa = {
- "md_chessa", "md_chess", NULL, NULL, "1998",
- "Chess (Rus, Alt)\0", NULL, "BSComp", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_chessaRomInfo, md_chessaRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Chess (Rus, v1.05)
-static struct BurnRomInfo md_chessbRomDesc[] = {
- { "chess (unl) [rus v1.05].bin", 0x100000, 0x10683e83, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_chessb)
-STD_ROM_FN(md_chessb)
-
-struct BurnDriver BurnDrvmd_chessb = {
- "md_chessb", "md_chess", NULL, NULL, "199?",
- "Chess (Rus, v1.05)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_chessbRomInfo, md_chessbRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Command & Conquer (Prototype)
-static struct BurnRomInfo md_commconqRomDesc[] = {
- { "command & conquer (beta).bin", 0x186286, 0x747fcc62, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_commconq)
-STD_ROM_FN(md_commconq)
-
-struct BurnDriver BurnDrvmd_commconq = {
- "md_commconq", NULL, NULL, NULL, "199?",
- "Command & Conquer (Prototype)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_commconqRomInfo, md_commconqRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Commandos (Rus)
-static struct BurnRomInfo md_commandsRomDesc[] = {
- { "commandos.bin", 0x200000, 0x28a88d6f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_commands)
-STD_ROM_FN(md_commands)
-
-struct BurnDriver BurnDrvmd_commands = {
- "md_commands", NULL, NULL, NULL, "199?",
- "Commandos (Rus)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_commandsRomInfo, md_commandsRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Counter Strike (Rus)
-static struct BurnRomInfo md_cstrikeRomDesc[] = {
- { "counter strike.bin", 0x200000, 0x9e7b83ba, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_cstrike)
-STD_ROM_FN(md_cstrike)
-
-struct BurnDriver BurnDrvmd_cstrike = {
- "md_cstrike", "md_lethalen", NULL, NULL, "199?",
- "Counter Strike (Rus)\0", NULL, "Glorysun", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_cstrikeRomInfo, md_cstrikeRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Crash Bandicoot (Rus)
-static struct BurnRomInfo md_crashRomDesc[] = {
- { "crash bandicoot.bin", 0x400000, 0xe06bd944, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_crash)
-STD_ROM_FN(md_crash)
-
-struct BurnDriver BurnDrvmd_crash = {
- "md_crash", "md_zero", NULL, NULL, "199?",
- "Crash Bandicoot (Rus)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_crashRomInfo, md_crashRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Death Caliber (Rus)
-static struct BurnRomInfo md_deathcalRomDesc[] = {
- { "death caliber.bin", 0x400000, 0x3cd2c797, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_deathcal)
-STD_ROM_FN(md_deathcal)
-
-struct BurnDriver BurnDrvmd_deathcal = {
- "md_deathcal", NULL, NULL, NULL, "199?",
- "Death Caliber (Rus)\0", NULL, "Tomsoft", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_deathcalRomInfo, md_deathcalRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Deer Hunter (Rus)
-static struct BurnRomInfo md_deerhuntRomDesc[] = {
- { "deer hunter.bin", 0x100000, 0xda11978b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_deerhunt)
-STD_ROM_FN(md_deerhunt)
-
-struct BurnDriver BurnDrvmd_deerhunt = {
- "md_deerhunt", NULL, NULL, NULL, "199?",
- "Deer Hunter (Rus)\0", NULL, "Tomsoft", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_deerhuntRomInfo, md_deerhuntRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Diablo (Rus)
-static struct BurnRomInfo md_diabloRomDesc[] = {
- { "diablo.bin", 0x100000, 0xbd642da0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_diablo)
-STD_ROM_FN(md_diablo)
-
-struct BurnDriver BurnDrvmd_diablo = {
- "md_diablo", "md_fatallab", NULL, NULL, "199?",
- "Diablo (Rus)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_diabloRomInfo, md_diabloRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Domino (Rus)
-static struct BurnRomInfo md_dominoRomDesc[] = {
- { "domino (unl).bin", 0x100000, 0xa64409be, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_domino)
-STD_ROM_FN(md_domino)
-
-struct BurnDriver BurnDrvmd_domino = {
- "md_domino", NULL, NULL, NULL, "199?",
- "Domino (Rus)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_dominoRomInfo, md_dominoRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// FIFA World Cup 2002 (Rus)
-static struct BurnRomInfo md_fifa2k2RomDesc[] = {
- { "fifa world cup 2002 (unl).bin", 0x100000, 0x852bff8e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_fifa2k2)
-STD_ROM_FN(md_fifa2k2)
-
-struct BurnDriver BurnDrvmd_fifa2k2 = {
- "md_fifa2k2", "md_wcs2", NULL, NULL, "199?",
- "FIFA World Cup 2002 (Rus)\0", NULL, "Glorysun", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_fifa2k2RomInfo, md_fifa2k2RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// FIFA 2003 (Rus)
-static struct BurnRomInfo md_fifa2k3RomDesc[] = {
- { "fifa 2003 (unl).bin", 0x200000, 0x419bcb02, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_fifa2k3)
-STD_ROM_FN(md_fifa2k3)
-
-struct BurnDriver BurnDrvmd_fifa2k3 = {
- "md_fifa2k3", "md_fifa95", NULL, NULL, "199?",
- "FIFA 2003 (Rus)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_fifa2k3RomInfo, md_fifa2k3RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// FIFA World Cup - South Africa 2010 (Rus)
-static struct BurnRomInfo md_fifa2k10RomDesc[] = {
- { "fifa 2010 (unl).bin", 0x400000, 0x851e8411, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_fifa2k10)
-STD_ROM_FN(md_fifa2k10)
-
-struct BurnDriver BurnDrvmd_fifa2k10 = {
- "md_fifa2k10", "md_fifa", NULL, NULL, "199?",
- "FIFA World Cup - South Africa 2010 (Rus)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_fifa2k10RomInfo, md_fifa2k10RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Finding Nemo (Rus)
-static struct BurnRomInfo md_nemoRomDesc[] = {
- { "finding nemo.bin", 0x0a0000, 0x89b92f66, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_nemo)
-STD_ROM_FN(md_nemo)
-
-struct BurnDriver BurnDrvmd_nemo = {
- "md_nemo", "md_jpond", NULL, NULL, "199?",
- "Finding Nemo (Rus)\0", NULL, "Glorysun", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_nemoRomInfo, md_nemoRomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Forsazh 5 Bystraya ~ Fast and the Furious 5 Quick (Rus)
-static struct BurnRomInfo md_fastfur5RomDesc[] = {
- { "fast and the furious 5 (unl).bin", 0x10b000, 0x29f4d87a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_fastfur5)
-STD_ROM_FN(md_fastfur5)
-
-struct BurnDriver BurnDrvmd_fastfur5 = {
- "md_fastfur5", "md_combatca", NULL, NULL, "199?",
- "Forsazh 5 Bystraya ~ Fast and the Furious 5 Quick (Rus)\0", NULL, "", "Sega Megadrive",
- NULL, NULL, NULL, NULL,
- BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
- MegadriveGetZipName, md_fastfur5RomInfo, md_fastfur5RomName, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
- MegadriveInit, MegadriveExit, MegadriveFrame, NULL, MegadriveScan,
- &bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
-};
-
-// Gran Turismo 5 (Rus)
-static struct BurnRomInfo md_gt5RomDesc[] = {
- { "gran turismo 5 (unl).bin", 0x12a0d0, 0xd4392181, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
-};
-
-STD_ROM_PICK(md_gt5)
-STD_ROM_FN(md_gt5)
-
-struct BurnDriver BurnDrvmd_gt5 = {
- "md_gt5", "md_funcar", NULL, NULL, "199?",
- "Gran Turismo 5 (Rus)\0", NULL, "